diff --git a/.eleventy.cjs b/.eleventy.cjs
new file mode 100644
index 0000000..8a623a3
--- /dev/null
+++ b/.eleventy.cjs
@@ -0,0 +1,21 @@
+const syntaxHighlight = require('@11ty/eleventy-plugin-syntaxhighlight');
+
+module.exports = function (eleventyConfig) {
+ eleventyConfig.addPlugin(syntaxHighlight);
+ eleventyConfig.addPassthroughCopy('docs-src/docs.css');
+ eleventyConfig.addPassthroughCopy('docs-src/.nojekyll');
+ eleventyConfig.addPassthroughCopy(
+ 'node_modules/@webcomponents/webcomponentsjs'
+ );
+ eleventyConfig.addPassthroughCopy('node_modules/lit/polyfill-support.js');
+ return {
+ dir: {
+ input: 'docs-src',
+ output: 'docs',
+ },
+ templateExtensionAliases: {
+ '11ty.cjs': '11ty.js',
+ '11tydata.cjs': '11tydata.js',
+ },
+ };
+};
diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 0000000..5ef7aa1
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,6 @@
+node_modules/*
+docs/*
+docs-src/*
+rollup-config.js
+custom-elements.json
+web-dev-server.config.js
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..4fd1dc0
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,51 @@
+{
+ "root": true,
+ "extends": [
+ "eslint:recommended",
+ "plugin:@typescript-eslint/eslint-recommended",
+ "plugin:@typescript-eslint/recommended"
+ ],
+ "parser": "@typescript-eslint/parser",
+ "parserOptions": {
+ "ecmaVersion": 2020,
+ "sourceType": "module"
+ },
+ "plugins": ["@typescript-eslint"],
+ "env": {
+ "browser": true
+ },
+ "rules": {
+ "no-prototype-builtins": "off",
+ "@typescript-eslint/ban-types": "off",
+ "@typescript-eslint/explicit-function-return-type": "off",
+ "@typescript-eslint/explicit-module-boundary-types": "off",
+ "@typescript-eslint/no-explicit-any": "error",
+ "@typescript-eslint/no-empty-function": "off",
+ "@typescript-eslint/no-non-null-assertion": "off",
+ "@typescript-eslint/no-unused-vars": [
+ "warn",
+ {
+ "argsIgnorePattern": "^_"
+ }
+ ]
+ },
+ "overrides": [
+ {
+ "files": ["rollup.config.js", "web-test-runner.config.js"],
+ "env": {
+ "node": true
+ }
+ },
+ {
+ "files": [
+ "*_test.ts",
+ "**/custom_typings/*.ts",
+ "packages/labs/ssr/src/test/integration/tests/**",
+ "packages/labs/ssr/src/lib/util/parse5-utils.ts"
+ ],
+ "rules": {
+ "@typescript-eslint/no-explicit-any": "off"
+ }
+ }
+ ]
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a44f498
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,26 @@
+/node_modules/
+/lib/
+/test/
+custom-elements.json
+# top level source
+my-element.js
+my-element.js.map
+my-element.d.ts
+my-element.d.ts.map
+# only generated for size check
+my-element.bundled.js
+
+lwc-button.js
+lwc-button.js.map
+lwc-button.d.ts
+lwc-button.d.ts.map
+# only generated for size check
+lwc-button.bundled.js
+
+
+lwc-modal.js
+lwc-modal.js.map
+lwc-modal.d.ts
+lwc-modal.d.ts.map
+# only generated for size check
+lwc-modal.bundled.js
\ No newline at end of file
diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 0000000..d271d1f
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1,7 @@
+{
+ "trailingComma": "es5",
+ "tabWidth": 2,
+ "singleQuote": true,
+ "bracketSpacing": false,
+ "arrowParens": "always"
+}
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..ca11131
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,9 @@
+{
+ // See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
+ // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
+
+ // List of extensions which should be recommended for users of this workspace.
+ "recommendations": ["runem.lit-plugin"],
+ // List of extensions recommended by VS Code that should not be recommended for users of this workspace.
+ "unwantedRecommendations": []
+}
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..1e8f9b5
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,47 @@
+# @lit/lit-starter-ts
+
+## 1.0.5
+
+### Patch Changes
+
+- [#3561](https://github.com/lit/lit/pull/3561) [`e5c254e9`](https://github.com/lit/lit/commit/e5c254e96cb5d0f770ec616332e231559325c5c5) - Update dependency `@rollup/plugin-replace`
+
+## 1.0.4
+
+### Patch Changes
+
+- [#2922](https://github.com/lit/lit/pull/2922) [`da9db86a`](https://github.com/lit/lit/commit/da9db86a33cba710d439e254df2492f9f6dcbbee) - Update dependencies and remove unused dependencies
+
+## 1.0.3
+
+### Patch Changes
+
+- [#2757](https://github.com/lit/lit/pull/2757) [`55841c14`](https://github.com/lit/lit/commit/55841c14f52891357dd93680d3bc5b1da6c89c8a) - Update Rollup and Rollup plugins
+
+## 1.0.2
+
+### Patch Changes
+
+- [#2535](https://github.com/lit/lit/pull/2535) [`d1359856`](https://github.com/lit/lit/commit/d1359856698d1af381b335fb757f9282574690b0) - Update the README to indicate that issues and PRs should be filed on the main Lit repo.
+
+## 1.0.1
+
+### Patch Changes
+
+- [#2300](https://github.com/lit/lit/pull/2300) [`8b9dcb4d`](https://github.com/lit/lit/commit/8b9dcb4d10e4161083146ae40d0b12174a63d31d) - Fix starter kits so `npm run serve` serves the root directory, and add a link to the `/dev/index.html` component example from `/`.
+
+- Updated dependencies [[`fcc2b3d0`](https://github.com/lit/lit/commit/fcc2b3d0054e69e6f76588ea9f440117b6d0deed), [`49ecf623`](https://github.com/lit/lit/commit/49ecf6239033e9578184d46116e6b89676d091db), [`1d563e83`](https://github.com/lit/lit/commit/1d563e830c02a2d1a22e1e939f1ace971b1d1ae7)]:
+ - lit@2.1.0
+
+## 1.0.0
+
+### Patch Changes
+
+- [#2113](https://github.com/lit/lit/pull/2113) [`5b2f3642`](https://github.com/lit/lit/commit/5b2f3642ff91931b5b01f8bdd2ed98aba24f1047) - Dependency upgrades including TypeScript 4.4.2
+
+- [#2103](https://github.com/lit/lit/pull/2103) [`15a8356d`](https://github.com/lit/lit/commit/15a8356ddd59a1e80880a93acd21fadc9c24e14b) - Added Lit dev mode to test and serve commands, controlled via the MODE=dev or MODE=prod environment variables.
+
+- [#2117](https://github.com/lit/lit/pull/2117) [`eff2fbc7`](https://github.com/lit/lit/commit/eff2fbc7e45cfc2a7b8df21e18c84619dfbcb277) - Updated starter templates to use open-wc analyzer for generating custom-elements.json, and updated basic API docs generater included in the template to the new manifest format.
+
+- Updated dependencies [[`15a8356d`](https://github.com/lit/lit/commit/15a8356ddd59a1e80880a93acd21fadc9c24e14b), [`5fabe2b5`](https://github.com/lit/lit/commit/5fabe2b5ae4ab8fba9dc2d23a69105d32e4c0705), [`5b2f3642`](https://github.com/lit/lit/commit/5b2f3642ff91931b5b01f8bdd2ed98aba24f1047), [`5fabe2b5`](https://github.com/lit/lit/commit/5fabe2b5ae4ab8fba9dc2d23a69105d32e4c0705), [`5fabe2b5`](https://github.com/lit/lit/commit/5fabe2b5ae4ab8fba9dc2d23a69105d32e4c0705), [`0312f3e5`](https://github.com/lit/lit/commit/0312f3e533611eb3f4f9381594485a33ad003b74)]:
+ - lit@2.0.0
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..6ab8d4a
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,28 @@
+BSD 3-Clause License
+
+Copyright (c) 2019 Google LLC. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..53fa699
--- /dev/null
+++ b/README.md
@@ -0,0 +1,134 @@
+# LitElement TypeScript starter
+
+This project includes a sample component using LitElement with TypeScript.
+
+This template is generated from the `lit-starter-ts` package in [the main Lit
+repo](https://github.com/lit/lit). Issues and PRs for this template should be
+filed in that repo.
+
+## Setup
+
+Install dependencies:
+
+```bash
+npm i
+```
+
+## Build
+
+This sample uses the TypeScript compiler to produce JavaScript that runs in modern browsers.
+
+To build the JavaScript version of your component:
+
+```bash
+npm run build
+```
+
+To watch files and rebuild when the files are modified, run the following command in a separate shell:
+
+```bash
+npm run build:watch
+```
+
+Both the TypeScript compiler and lit-analyzer are configured to be very strict. You may want to change `tsconfig.json` to make them less strict.
+
+## Testing
+
+This sample uses modern-web.dev's
+[@web/test-runner](https://www.npmjs.com/package/@web/test-runner) for testing. See the
+[modern-web.dev testing documentation](https://modern-web.dev/docs/test-runner/overview) for
+more information.
+
+Tests can be run with the `test` script, which will run your tests against Lit's development mode (with more verbose errors) as well as against Lit's production mode:
+
+```bash
+npm test
+```
+
+For local testing during development, the `test:dev:watch` command will run your tests in Lit's development mode (with verbose errors) on every change to your source files:
+
+```bash
+npm test:watch
+```
+
+Alternatively the `test:prod` and `test:prod:watch` commands will run your tests in Lit's production mode.
+
+## Dev Server
+
+This sample uses modern-web.dev's [@web/dev-server](https://www.npmjs.com/package/@web/dev-server) for previewing the project without additional build steps. Web Dev Server handles resolving Node-style "bare" import specifiers, which aren't supported in browsers. It also automatically transpiles JavaScript and adds polyfills to support older browsers. See [modern-web.dev's Web Dev Server documentation](https://modern-web.dev/docs/dev-server/overview/) for more information.
+
+To run the dev server and open the project in a new browser tab:
+
+```bash
+npm run serve
+```
+
+There is a development HTML file located at `/dev/index.html` that you can view at http://localhost:8000/dev/index.html. Note that this command will serve your code using Lit's development mode (with more verbose errors). To serve your code against Lit's production mode, use `npm run serve:prod`.
+
+## Editing
+
+If you use VS Code, we highly recommend the [lit-plugin extension](https://marketplace.visualstudio.com/items?itemName=runem.lit-plugin), which enables some extremely useful features for lit-html templates:
+
+- Syntax highlighting
+- Type-checking
+- Code completion
+- Hover-over docs
+- Jump to definition
+- Linting
+- Quick Fixes
+
+The project is setup to recommend lit-plugin to VS Code users if they don't already have it installed.
+
+## Linting
+
+Linting of TypeScript files is provided by [ESLint](eslint.org) and [TypeScript ESLint](https://github.com/typescript-eslint/typescript-eslint). In addition, [lit-analyzer](https://www.npmjs.com/package/lit-analyzer) is used to type-check and lint lit-html templates with the same engine and rules as lit-plugin.
+
+The rules are mostly the recommended rules from each project, but some have been turned off to make LitElement usage easier. The recommended rules are pretty strict, so you may want to relax them by editing `.eslintrc.json` and `tsconfig.json`.
+
+To lint the project run:
+
+```bash
+npm run lint
+```
+
+## Formatting
+
+[Prettier](https://prettier.io/) is used for code formatting. It has been pre-configured according to the Lit's style. You can change this in `.prettierrc.json`.
+
+Prettier has not been configured to run when committing files, but this can be added with Husky and `pretty-quick`. See the [prettier.io](https://prettier.io/) site for instructions.
+
+## Static Site
+
+This project includes a simple website generated with the [eleventy](https://11ty.dev) static site generator and the templates and pages in `/docs-src`. The site is generated to `/docs` and intended to be checked in so that GitHub pages can serve the site [from `/docs` on the master branch](https://help.github.com/en/github/working-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site).
+
+To enable the site go to the GitHub settings and change the GitHub Pages "Source" setting to "master branch /docs folder".
+
+To build the site, run:
+
+```bash
+npm run docs
+```
+
+To serve the site locally, run:
+
+```bash
+npm run docs:serve
+```
+
+To watch the site files, and re-build automatically, run:
+
+```bash
+npm run docs:watch
+```
+
+The site will usually be served at http://localhost:8000.
+
+## Bundling and minification
+
+This starter project doesn't include any build-time optimizations like bundling or minification. We recommend publishing components as unoptimized JavaScript modules, and performing build-time optimizations at the application level. This gives build tools the best chance to deduplicate code, remove dead code, and so on.
+
+For information on building application projects that include LitElement components, see [Build for production](https://lit.dev/docs/tools/production/) on the Lit site.
+
+## More information
+
+See [Get started](https://lit.dev/docs/getting-started/) on the Lit site for more information.
diff --git a/dev/README.md b/dev/README.md
new file mode 100644
index 0000000..57a7ed9
--- /dev/null
+++ b/dev/README.md
@@ -0,0 +1 @@
+This directory contains HTML files containing your element for development. By running `npm run build:watch` and `npm run serve` you can edit and see changes without bundling.
diff --git a/dev/index.html b/dev/index.html
new file mode 100644
index 0000000..4d4cd68
--- /dev/null
+++ b/dev/index.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+ <my-element> Demo
+
+
+
+
+
+
+
+
+
+
This is child content 2
+
+
+
+
+
+
+
diff --git a/docs-src/.eleventyignore b/docs-src/.eleventyignore
new file mode 100644
index 0000000..195dc6b
--- /dev/null
+++ b/docs-src/.eleventyignore
@@ -0,0 +1,2 @@
+# Ignore files with a leading underscore; useful for e.g. readmes in source documentation
+_*.md
\ No newline at end of file
diff --git a/docs-src/.nojekyll b/docs-src/.nojekyll
new file mode 100644
index 0000000..e69de29
diff --git a/docs-src/_README.md b/docs-src/_README.md
new file mode 100644
index 0000000..75e1408
--- /dev/null
+++ b/docs-src/_README.md
@@ -0,0 +1,7 @@
+This directory contains the sources for the static site contained in the /docs/ directory. The site is based on the [eleventy](11ty.dev) static site generator.
+
+The site is intended to be used with GitHub pages. To enable the site go to the GitHub settings and change the GitHub Pages "Source" setting to "master branch /docs folder".
+
+To view the site locally, run `npm run docs:serve`.
+
+To edit the site, add to or edit the files in this directory then run `npm run docs` to build the site. The built files must be checked in and pushed to GitHub to appear on GitHub pages.
diff --git a/docs-src/_data/api.11tydata.js b/docs-src/_data/api.11tydata.js
new file mode 100644
index 0000000..874cd79
--- /dev/null
+++ b/docs-src/_data/api.11tydata.js
@@ -0,0 +1,16 @@
+/**
+ * @license
+ * Copyright 2021 Google LLC
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+const fs = require('fs');
+
+module.exports = () => {
+ const customElements = JSON.parse(
+ fs.readFileSync('custom-elements.json', 'utf-8')
+ );
+ return {
+ customElements,
+ };
+};
diff --git a/docs-src/_includes/example.11ty.cjs b/docs-src/_includes/example.11ty.cjs
new file mode 100644
index 0000000..187d493
--- /dev/null
+++ b/docs-src/_includes/example.11ty.cjs
@@ -0,0 +1,43 @@
+const page = require('./page.11ty.cjs');
+const relative = require('./relative-path.cjs');
+
+/**
+ * This template extends the page template and adds an examples list.
+ */
+module.exports = function (data) {
+ return page({
+ ...data,
+ content: renderExample(data),
+ });
+};
+
+const renderExample = ({name, content, collections, page}) => {
+ return `
+
Example: ${name}
+
+
+
+ ${content}
+
+
+ `;
+};
diff --git a/docs-src/_includes/footer.11ty.cjs b/docs-src/_includes/footer.11ty.cjs
new file mode 100644
index 0000000..a93a022
--- /dev/null
+++ b/docs-src/_includes/footer.11ty.cjs
@@ -0,0 +1,9 @@
+module.exports = function (data) {
+ return `
+`;
+};
diff --git a/docs-src/_includes/header.11ty.cjs b/docs-src/_includes/header.11ty.cjs
new file mode 100644
index 0000000..54d3732
--- /dev/null
+++ b/docs-src/_includes/header.11ty.cjs
@@ -0,0 +1,7 @@
+module.exports = function (data) {
+ return `
+
+
+
+```
diff --git a/docs-src/examples/name-property.md b/docs-src/examples/name-property.md
new file mode 100644
index 0000000..dfce7c8
--- /dev/null
+++ b/docs-src/examples/name-property.md
@@ -0,0 +1,15 @@
+---
+layout: example.11ty.cjs
+title: ⌲ Examples ⌲ Name Property
+tags: example
+name: Name Property
+description: Setting the name property
+---
+
+
+
+
HTML
+
+```html
+
+```
diff --git a/docs-src/index.md b/docs-src/index.md
new file mode 100644
index 0000000..4d93557
--- /dev/null
+++ b/docs-src/index.md
@@ -0,0 +1,76 @@
+---
+layout: page.11ty.cjs
+title: ⌲ Home
+---
+
+# <my-element>
+
+`` is an awesome element. It's a great introduction to building web components with LitElement, with nice documentation site as well.
+
+## As easy as HTML
+
+
+
+
+`` is just an HTML element. You can it anywhere you can use HTML!
+
+```html
+
+```
+
+
+
+
+
+
+
+
+
+## Configure with attributes
+
+
+
+
+`` can be configured with attributed in plain HTML.
+
+```html
+
+```
+
+
+
+
+
+
+
+
+
+## Declarative rendering
+
+
+
+
+`` can be used with declarative rendering libraries like Angular, React, Vue, and lit-html
+
+```js
+import {html, render} from 'lit-html';
+
+const name = 'lit-html';
+
+render(
+ html`
+
This is a <my-element>
+
+ `,
+ document.body
+);
+```
+
+
+
+
+
This is a <my-element>
+
+
+
+
diff --git a/docs-src/install.md b/docs-src/install.md
new file mode 100644
index 0000000..bf3a3b0
--- /dev/null
+++ b/docs-src/install.md
@@ -0,0 +1,32 @@
+---
+layout: page.11ty.cjs
+title: ⌲ Install
+---
+
+# Install
+
+`` is distributed on npm, so you can install it locally or use it via npm CDNs like unpkg.com.
+
+## Local Installation
+
+```bash
+npm i my-element
+```
+
+## CDN
+
+npm CDNs like [unpkg.com]() can directly serve files that have been published to npm. This works great for standard JavaScript modules that the browser can load natively.
+
+For this element to work from unpkg.com specifically, you need to include the `?module` query parameter, which tells unpkg.com to rewrite "bare" module specifiers to full URLs.
+
+### HTML
+
+```html
+
+```
+
+### JavaScript
+
+```html
+import {MyElement} from 'https://unpkg.com/my-element?module';
+```
diff --git a/docs-src/package.json b/docs-src/package.json
new file mode 100644
index 0000000..5bbefff
--- /dev/null
+++ b/docs-src/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "commonjs"
+}
diff --git a/docs/.nojekyll b/docs/.nojekyll
new file mode 100644
index 0000000..e69de29
diff --git a/docs/api/index.html b/docs/api/index.html
new file mode 100644
index 0000000..ecaf431
--- /dev/null
+++ b/docs/api/index.html
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+ ⌲ Docs
+
+
+
+
+
+
+
+
+
+
+
<my-element> <p>This is child content</p> </my-element>
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/examples/name-property/index.html b/docs/examples/name-property/index.html
new file mode 100644
index 0000000..4286e0e
--- /dev/null
+++ b/docs/examples/name-property/index.html
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+ ⌲ Examples ⌲ Name Property
+
+
+
+
+
+
+
+
+
+
+
<my-element>
+
A web component just for me.
+
+
+
+
+
+
+
Example: Name Property
+
+
+
+
+
HTML
+
<my-elementname="Earth"></my-element>
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
new file mode 100644
index 0000000..ad84ff8
--- /dev/null
+++ b/docs/index.html
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+ ⌲ Home
+
+
+
+
+
+
+
+
+
+
+
<my-element>
+
A web component just for me.
+
+
+
+
+
+
<my-element>
+
<my-element> is an awesome element. It's a great introduction to building web components with LitElement, with nice documentation site as well.
+
As easy as HTML
+
+
+
<my-element> is just an HTML element. You can it anywhere you can use HTML!
+
<my-element></my-element>
+
+
+
+
+
+
Configure with attributes
+
+
+
<my-element> can be configured with attributed in plain HTML.
+
<my-elementname="HTML"></my-element>
+
+
+
+
+
+
Declarative rendering
+
+
+
<my-element> can be used with declarative rendering libraries like Angular, React, Vue, and lit-html
+
import{html, render}from'lit-html';
const name ='lit-html';
render( html` <h2>This is a <my-element></h2> <my-element .name=${name}></my-element> `, document.body );
+
+
+
This is a <my-element>
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/install/index.html b/docs/install/index.html
new file mode 100644
index 0000000..05ad115
--- /dev/null
+++ b/docs/install/index.html
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+ ⌲ Install
+
+
+
+
+
+
+
+
+
+
+
<my-element>
+
A web component just for me.
+
+
+
+
+
+
Install
+
<my-element> is distributed on npm, so you can install it locally or use it via npm CDNs like unpkg.com.
+
Local Installation
+
npm i my-element
+
CDN
+
npm CDNs like unpkg.com can directly serve files that have been published to npm. This works great for standard JavaScript modules that the browser can load natively.
+
For this element to work from unpkg.com specifically, you need to include the ?module query parameter, which tells unpkg.com to rewrite "bare" module specifiers to full URLs.
import {MyElement} from 'https://unpkg.com/my-element?module';
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/node_modules/@webcomponents/webcomponentsjs/CHANGELOG.md b/docs/node_modules/@webcomponents/webcomponentsjs/CHANGELOG.md
new file mode 100644
index 0000000..06cd71e
--- /dev/null
+++ b/docs/node_modules/@webcomponents/webcomponentsjs/CHANGELOG.md
@@ -0,0 +1,76 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to [Semantic
+Versioning](https://semver.org/spec/v2.0.0.html).
+
+
+
+## [2.8.0] - 2023-03-30
+
+- Update dependencies ([#542](https://github.com/webcomponents/polyfills/pull/542))
+- Polyfill `Element.toggleAttribute()`. ([#541](https://github.com/webcomponents/polyfills/pull/541))
+
+## [2.7.0] - 2022-10-20
+
+- Polyfill `addEventListener/removeEventListener` event listener options,
+ including `{capture: boolean, once: boolean}`.
+ ([#469](https://github.com/webcomponents/polyfills/pull/469))
+- Make `webcomponents-loader.js` compatible with the Trusted Types API
+ ([#501](https://github.com/webcomponents/polyfills/pull/501))
+- Remove an arrow function in `webcomponents-loader.js`.
+ ([#507](https://github.com/webcomponents/polyfills/pull/507))
+
+## [2.6.0] - 2021-08-02
+
+- Add TS externs. ([#457](https://github.com/webcomponents/polyfills/pull/457))
+
+## [2.5.0] - 2020-10-21
+
+- Polyfill `Element#matches`.
+ ([#400](https://github.com/webcomponents/polyfills/pull/400))
+- Remove function declarations from platform polyfills to sastisfy internal lint
+ after import transforms.
+ ([#396](https://github.com/webcomponents/polyfills/pull/396))
+- Polyfill `Element#getAttributeNames`.
+ ([#393](https://github.com/webcomponents/polyfills/pull/393))
+- Add polyfills for ChildNode APIs.
+ ([#390](https://github.com/webcomponents/polyfills/pull/390))
+- Add polyfills for select ParentNode APIs.
+ ([#389](https://github.com/webcomponents/polyfills/pull/389))
+- Add `classList` support to `SVGElement`.
+ ([#391](https://github.com/webcomponents/polyfills/pull/391))
+- Add new entrypoints to webcomponentsjs for the 'platform' polyfills.
+ ([#385](https://github.com/webcomponents/polyfills/pull/385))
+
+## [2.4.4] - 2020-07-20
+
+- Fixed bug where Object.assign polyfill would copy non-enumerable properties.
+- Convert platform (`Array.from`, `CustomEvent`, `Promise` etc.) polyfills to
+ TypeScript ([#292](https://github.com/webcomponents/polyfills/pull/292))
+- Improve types for JSCompiler compatibility
+ ([#307](https://github.com/webcomponents/polyfills/pull/307))
+- README improvements
+ ([#128](https://github.com/webcomponents/polyfills/pull/128),
+ [#212](https://github.com/webcomponents/polyfills/pull/212),
+ [#214](https://github.com/webcomponents/polyfills/pull/214))
+
+## [2.4.3] - 2020-03-16
+
+- Maintenance release (no user-facing changes)
+
+## [2.4.2] - 2020-02-26
+
+- Remove unnecessary externs
+ ([#272](https://github.com/webcomponents/polyfills/pull/272))
+
+## [2.4.1] - 2020-01-09
+
+- Maintenance release (no user-facing changes)
+
+## [2.4.0] - 2019-11-12
+
+- Add on-demand patching mode
+ ([#189](https://github.com/webcomponents/polyfills/pull/189))
diff --git a/docs/node_modules/@webcomponents/webcomponentsjs/LICENSE.md b/docs/node_modules/@webcomponents/webcomponentsjs/LICENSE.md
new file mode 100644
index 0000000..bb3f440
--- /dev/null
+++ b/docs/node_modules/@webcomponents/webcomponentsjs/LICENSE.md
@@ -0,0 +1,19 @@
+# License
+
+Everything in this repo is BSD style license unless otherwise specified.
+
+Copyright (c) 2015 The Polymer Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+* Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/docs/node_modules/@webcomponents/webcomponentsjs/README.md b/docs/node_modules/@webcomponents/webcomponentsjs/README.md
new file mode 100644
index 0000000..60c93a9
--- /dev/null
+++ b/docs/node_modules/@webcomponents/webcomponentsjs/README.md
@@ -0,0 +1,259 @@
+[![Build Status](https://travis-ci.org/webcomponents/webcomponentsjs.svg?branch=master)](https://travis-ci.org/webcomponents/webcomponentsjs)
+
+# webcomponents.js (v1 spec polyfills)
+
+> **Note**. For polyfills that work with the older Custom Elements and Shadow DOM v0 specs,
+> see the [v0 branch](https://github.com/webcomponents/webcomponentsjs/tree/v0).
+
+> **Note**. For polyfills that include HTML Imports,
+> see the [v1 branch](https://github.com/webcomponents/webcomponentsjs/tree/v1).
+
+A suite of polyfills supporting the [Web Components](http://webcomponents.org) specs:
+
+- **Custom Elements v1**: allows authors to define their own custom tags ([spec](https://w3c.github.io/webcomponents/spec/custom/), [tutorial](https://developers.google.com/web/fundamentals/getting-started/primers/customelements), [polyfill](https://github.com/webcomponents/polyfills/tree/master/packages/custom-elements)).
+- **Shadow DOM v1**: provides encapsulation by hiding DOM subtrees under shadow roots ([spec](https://w3c.github.io/webcomponents/spec/shadow/), [tutorial](https://developers.google.com/web/fundamentals/getting-started/primers/shadowdom),
+ [shadydom polyfill](https://github.com/webcomponents/polyfills/tree/master/packages/shadydom), [shadycss polyfill](https://github.com/webcomponents/polyfills/tree/master/packages/shadycss)).
+
+For browsers that need it, there are also some minor polyfills included:
+
+- [`HTMLTemplateElement`](https://github.com/webcomponents/polyfills/tree/master/packages/template)
+- [`Promise`](https://github.com/taylorhakes/promise-polyfill)
+- `Event`, `CustomEvent`, `MouseEvent` constructors and `Object.assign`, `Array.from`
+ (see [webcomponents-platform](https://github.com/webcomponents/webcomponents-platform))
+- [`URL constructor`](https://github.com/webcomponents/polyfills/tree/master/packages/url)
+
+## How to use
+
+### Install polyfills
+
+```bash
+npm install @webcomponents/webcomponentsjs
+```
+
+You can also load the code from a CDN such as unpkg: https://unpkg.com/@webcomponents/webcomponentsjs@^2/
+
+### Using `webcomponents-bundle.js`
+
+The `webcomponents-bundle.js` contains all of the web components polyfills and is
+suitable for use on any supported browser. All of the polyfill code will be loaded
+but each polyfill will only be used based on feature detection.
+The bundle includes Custom Elements, Shady DOM/CSS and generic platform polyfills
+(such as ES6 Promise, Constructable events, etc.) (needed by Internet Explorer 11),
+and Template (needed by IE 11 and Edge).
+
+The `webcomponents-bundle.js` is very simple to use but it does load code
+that is not needed on most modern browsers, slowing page load. For best performance,
+use the `webcomponents-loader.js`.
+
+Here's an example:
+
+```html
+
+
+
+
+
+
+
+
+```
+
+### Using `webcomponents-loader.js`
+
+The `webcomponents-loader.js` is a client-side loader that dynamically loads the
+minimum polyfill bundle, using feature detection.
+
+`webcomponents-loader.js` can be loaded synchronously, or asynchronously depending on your needs.
+
+#### Inlining
+
+If you have inlined the source of `webcomponent-loader.js`, then you should specify `window.WebComponents.root` as the root from which to load the polyfills.
+For example:
+
+```html
+
+```
+
+This property is used to build the URL to the selected bundle, so you should
+only set it to values that are unable to be influenced by user-controlled data.
+If trusted types are enforced, this property should be a `TrustedScriptURL`.
+
+#### Synchronous
+
+When loaded synchronously, `webcomponents-loader.js` behaves similarly to `webcomponents-bundle.js`.
+
+The appropriate bundle will be loaded with `document.write()` to ensure that WebComponent polyfills are available for subsequent scripts and modules.
+
+Here's an example:
+
+```html
+
+
+
+
+
+
+
+
+```
+
+#### Asynchronous
+
+When loaded asychronously with the `defer` attribute, polyfill bundles will be loaded asynchronously,
+which means that scripts and modules that depend on webcomponents APIs _must_ be loaded
+using `WebComponents.waitFor` function.
+
+The `WebComponents.waitFor` function takes a callback function as an argument, and will evaluate that callback after the polyfill bundle has been loaded.
+
+The callback function should load scripts that need the polyfills (typically via `import('my-script.js')`) and
+should return a promise that resolves when all scripts have loaded.
+
+Here's an example:
+
+```html
+
+
+
+
+
+
+
+
+```
+
+The `WebComponents.waitFor` function may be called multiple times, and the callback functions will be processed in order.
+
+Here's a more complicated example:
+
+```html
+
+
+
+
+
+
+```
+
+#### Trusted Types
+
+If you're using the loader on a page that enforces the `trusted-types` Content
+Security Policy, you'll need to allow the `webcomponents-loader` policy name so
+that the loader can dynamically create and insert a `