atoms-element v5.0.0
git clone https://git.pyrossh.dev/atoms-element
A simple web component library for defining your custom elements. It works on both client and server.
index.test.js.snapshot
exports[`createElement styles are scoped and injected via SSR 1`] = `
"@scope (styled-element) {\\n\\n :scope {\\n display: flex;\\n }\\n .count {\\n color: magenta;\\n }\\n \\n}\\n"
`;
exports[`createElement with plain and declared attrs 1`] = `
"<!--lit-part Nrj3ntAoYvc=-->\\n <div>\\n <span>perPage: <!--lit-part-->5<!--/lit-part--></span>\\n <span>Count: <!--lit-part-->3<!--/lit-part--></span>\\n <!--lit-node 5--><button >Set</button>\\n </div>\\n <!--/lit-part-->"
`;
exports[`createElement without attrs 1`] = `
"<!--lit-part Wd91oPYJke0=--> <div></div> <!--/lit-part-->"
`;
exports[`createPage 1`] = `
"\\n <!DOCTYPE html>\\n <html lang=\\"en\\">\\n <head>\\n <meta charset=\\"utf-8\\" />\\n <meta http-equiv=\\"x-ua-compatible\\" content=\\"ie=edge\\" />\\n <meta http-equiv=\\"Content-Type\\" content=\\"text/html; charset=utf-8\\">\\n <meta name=\\"viewport\\" content=\\"width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=5.0, shrink-to-fit=no\\">\\n <link rel=\\"sitemap\\" type=\\"application/xml\\" href=\\"/sitemap.xml\\" />\\n <link rel=\\"icon\\" type=\\"image/png\\" href=\\"/assets/icon.png\\" />\\n \\n <title>123</title>\\n <meta name=\\"title\\" content=\\"123\\" />\\n <meta name=\\"description\\" content=\\"123\\" />\\n \\n <style id=\\"global\\">\\n \\n </style>\\n <script type=\\"module\\"><script>\\n </head>\\n <body>\\n \\n <div>\\n <app-header></app-header>\\n <main class=\\"flex flex-1 flex-col mt-20 items-center\\">\\n <h1 class=\\"text-5xl\\">123</h1>\\n </main>\\n </div>\\n \\n <script>\\n window.props = {\\"config\\":{\\"title\\":\\"123\\"}};\\n </script>\\n <script type=\\"module\\"><script>\\n </body>\\n </html>\\n "
`;
exports[`css tagged template ignores interpolated values 1`] = `
"\\n :scope {\\n display: flex;\\n }\\n button {\\n color: ;\\n }\\n "
`;
exports[`jsonAttr round-trips array attrs through SSR expansion 1`] = `
"<!--lit-part BlC1BjVGRpM=--><!--lit-node 0--><tag-list tags=\\"['rust','js']\\"><!--lit-part om80B80ddXw=--><ul><!--lit-part--><!--lit-part PuAyB/F8cHw=--><li><!--lit-part-->rust<!--/lit-part--></li><!--/lit-part--><!--lit-part PuAyB/F8cHw=--><li><!--lit-part-->js<!--/lit-part--></li><!--/lit-part--><!--/lit-part--></ul><!--/lit-part--></tag-list><!--/lit-part-->"
`;
exports[`render attribute keys 1`] = `
"<!--lit-part Jm3yLdRDsSk=-->\\n <div>\\n <app-counter name=\\"123\\" perPage=\\"1\\"></app-counter>\\n </div>\\n <!--/lit-part-->"
`;
exports[`render attributes within quotes 1`] = `
"<!--lit-part NYzZmKc0ApY=-->\\n <div>\\n <!--lit-node 1--><app-counter name=\\"123\\" class=\\"high\\" age=\\"1\\" details1=\\"{'name':'123','address':{'street':'1'}}\\" items=\\"[1,2,3]\\"></app-counter>\\n </div>\\n <!--/lit-part-->"
`;
exports[`render multi template 1`] = `
"<!--lit-part xbA0QwrFuvM=-->\\n <div>\\n <!--lit-part--><!--lit-part iq0TqtY/tw4=-->\\n <!--lit-node 0--><app-item meta=\\"{'index':1}\\" >\\n <!--lit-node 1--><button >+</button>\\n </app-item>\\n <!--/lit-part--><!--lit-part iq0TqtY/tw4=-->\\n <!--lit-node 0--><app-item meta=\\"{'index':2}\\" >\\n <!--lit-node 1--><button >+</button>\\n </app-item>\\n <!--/lit-part--><!--/lit-part-->\\n </div>\\n <!--/lit-part-->"
`;
exports[`render single template 1`] = `
"<!--lit-part Wd91oPYJke0=--> <div><!--lit-part 8PHODPkg0Ao=-->NoCountry <!--lit-part-->false<!--/lit-part--><?><!--/lit-part--></div> <!--/lit-part-->"
`;
exports[`render unsafeHTML 1`] = `
"<!--lit-part Wd91oPYJke0=--> <div><!--lit-part MbydkCRGgUo=--><div><p class=\\"123\\">this is unsafe</p></div><!--/lit-part--></div> <!--/lit-part-->"
`;
exports[`renderHtml 1`] = `
"<!--lit-part 4yM259EK+Bs=-->\\n <div>\\n <!--lit-node 1--><app-counter name=\\"123\\" class=\\"abc high\\" age=\\"1\\" details1=\\"{'name':'123','address':{'street':'1'}}\\" items=\\"[1,2,3]\\"></app-counter>\\n </div>\\n <!--/lit-part-->"
`;
exports[`renderHtml escapes text and attribute values 1`] = `
"<!--lit-part PkF/hiJU4II=--><!--lit-node 0--><div class=\\"a" onmouseover="alert(1)\\"><!--lit-part--><script>alert(1)</script><!--/lit-part--></div><!--/lit-part-->"
`;
exports[`watch resolves attribute values from preceding SSR markup via cheerio 1`] = `
"<!--lit-part vohwtdYoJ0A=-->\\n <watch-source value=\\"3\\"><!--lit-part 94tjhjhkEYE=--><span><!--lit-part-->3<!--/lit-part--></span><!--/lit-part--></watch-source>\\n <watch-source value=\\"4\\"><!--lit-part 94tjhjhkEYE=--><span><!--lit-part-->4<!--/lit-part--></span><!--/lit-part--></watch-source>\\n <watch-total><!--lit-part AEmR7W+R0Ak=--><div><!--lit-part-->3,4<!--/lit-part--></div><!--/lit-part--></watch-total>\\n <!--/lit-part-->"
`;