diff --git a/packages/lit-dev-content/samples/base.json b/packages/lit-dev-content/samples/base.json index 331942d1f..e92720637 100644 --- a/packages/lit-dev-content/samples/base.json +++ b/packages/lit-dev-content/samples/base.json @@ -1,8 +1,3 @@ { - "files": { - "package.json": { - "content": "{\n \"dependencies\": {\n \"lit\": \"^2.0.0\",\n \"@lit/reactive-element\": \"^1.0.0\",\n \"lit-element\": \"^3.0.0\",\n \"lit-html\": \"^2.0.0\"\n }\n}", - "hidden": true - } - } + "extends": "/samples/v2-base.json" } diff --git a/packages/lit-dev-content/samples/tsconfig.json b/packages/lit-dev-content/samples/tsconfig.json index 97fcac0df..c57ff56c5 100644 --- a/packages/lit-dev-content/samples/tsconfig.json +++ b/packages/lit-dev-content/samples/tsconfig.json @@ -19,10 +19,13 @@ "examples/hello-world/simple-greeting.ts", // Comments in some locations get lost by TypeScript. See // https://github.com/lit/lit/issues/2158. - "docs/templates/lists-arrays/my-element.ts", - "docs/templates/lists-map/my-element.ts", + "v2-docs/templates/lists-arrays/my-element.ts", + "v2-docs/templates/lists-map/my-element.ts", + "v3-docs/templates/lists-arrays/my-element.ts", + "v3-docs/templates/lists-map/my-element.ts", // Mixin sample does not compile: https://github.com/lit/lit/issues/3865 - "docs/mixins/highlightable/**", + "v2-docs/mixins/highlightable/**", + "v3-docs/mixins/highlightable/**", // Intentionally doesn't compile for tutorial part. "tutorials/word-viewer/02/before/word-viewer.ts" ] diff --git a/packages/lit-dev-content/samples/v2-base.json b/packages/lit-dev-content/samples/v2-base.json new file mode 100644 index 000000000..331942d1f --- /dev/null +++ b/packages/lit-dev-content/samples/v2-base.json @@ -0,0 +1,8 @@ +{ + "files": { + "package.json": { + "content": "{\n \"dependencies\": {\n \"lit\": \"^2.0.0\",\n \"@lit/reactive-element\": \"^1.0.0\",\n \"lit-element\": \"^3.0.0\",\n \"lit-html\": \"^2.0.0\"\n }\n}", + "hidden": true + } + } +} diff --git a/packages/lit-dev-content/samples/docs/components/events/child/index.html b/packages/lit-dev-content/samples/v2-docs/components/events/child/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/child/index.html rename to packages/lit-dev-content/samples/v2-docs/components/events/child/index.html diff --git a/packages/lit-dev-content/samples/docs/components/events/child/my-element.ts b/packages/lit-dev-content/samples/v2-docs/components/events/child/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/child/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/components/events/child/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/components/events/child/project.json b/packages/lit-dev-content/samples/v2-docs/components/events/child/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/components/events/child/project.json rename to packages/lit-dev-content/samples/v2-docs/components/events/child/project.json index 85df3b2be..40c063e41 100644 --- a/packages/lit-dev-content/samples/docs/components/events/child/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/events/child/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-element.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/components/events/comm/index.html b/packages/lit-dev-content/samples/v2-docs/components/events/comm/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/comm/index.html rename to packages/lit-dev-content/samples/v2-docs/components/events/comm/index.html diff --git a/packages/lit-dev-content/samples/docs/components/events/comm/my-dispatcher.ts b/packages/lit-dev-content/samples/v2-docs/components/events/comm/my-dispatcher.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/comm/my-dispatcher.ts rename to packages/lit-dev-content/samples/v2-docs/components/events/comm/my-dispatcher.ts diff --git a/packages/lit-dev-content/samples/docs/components/events/comm/my-listener.ts b/packages/lit-dev-content/samples/v2-docs/components/events/comm/my-listener.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/comm/my-listener.ts rename to packages/lit-dev-content/samples/v2-docs/components/events/comm/my-listener.ts diff --git a/packages/lit-dev-content/samples/docs/components/events/comm/project.json b/packages/lit-dev-content/samples/v2-docs/components/events/comm/project.json similarity index 76% rename from packages/lit-dev-content/samples/docs/components/events/comm/project.json rename to packages/lit-dev-content/samples/v2-docs/components/events/comm/project.json index ac1042702..4be25b55c 100644 --- a/packages/lit-dev-content/samples/docs/components/events/comm/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/events/comm/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-dispatcher.ts": {}, "my-listener.ts": {}, diff --git a/packages/lit-dev-content/samples/docs/components/events/delegation/index.html b/packages/lit-dev-content/samples/v2-docs/components/events/delegation/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/delegation/index.html rename to packages/lit-dev-content/samples/v2-docs/components/events/delegation/index.html diff --git a/packages/lit-dev-content/samples/docs/components/events/delegation/my-element.ts b/packages/lit-dev-content/samples/v2-docs/components/events/delegation/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/delegation/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/components/events/delegation/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/components/style/basic/project.json b/packages/lit-dev-content/samples/v2-docs/components/events/delegation/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/components/style/basic/project.json rename to packages/lit-dev-content/samples/v2-docs/components/events/delegation/project.json index ddc8a7257..97447c28b 100644 --- a/packages/lit-dev-content/samples/docs/components/style/basic/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/events/delegation/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-element.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/components/events/dispatch/index.html b/packages/lit-dev-content/samples/v2-docs/components/events/dispatch/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/dispatch/index.html rename to packages/lit-dev-content/samples/v2-docs/components/events/dispatch/index.html diff --git a/packages/lit-dev-content/samples/docs/components/events/dispatch/my-dispatcher.ts b/packages/lit-dev-content/samples/v2-docs/components/events/dispatch/my-dispatcher.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/dispatch/my-dispatcher.ts rename to packages/lit-dev-content/samples/v2-docs/components/events/dispatch/my-dispatcher.ts diff --git a/packages/lit-dev-content/samples/docs/components/events/dispatch/my-listener.ts b/packages/lit-dev-content/samples/v2-docs/components/events/dispatch/my-listener.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/dispatch/my-listener.ts rename to packages/lit-dev-content/samples/v2-docs/components/events/dispatch/my-listener.ts diff --git a/packages/lit-dev-content/samples/docs/components/events/update/project.json b/packages/lit-dev-content/samples/v2-docs/components/events/dispatch/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/components/events/update/project.json rename to packages/lit-dev-content/samples/v2-docs/components/events/dispatch/project.json index a2e901bae..1df50e807 100644 --- a/packages/lit-dev-content/samples/docs/components/events/update/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/events/dispatch/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-dispatcher.ts": {}, "my-listener.ts": {}, diff --git a/packages/lit-dev-content/samples/docs/components/events/host/index.html b/packages/lit-dev-content/samples/v2-docs/components/events/host/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/host/index.html rename to packages/lit-dev-content/samples/v2-docs/components/events/host/index.html diff --git a/packages/lit-dev-content/samples/docs/components/events/host/my-element.ts b/packages/lit-dev-content/samples/v2-docs/components/events/host/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/host/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/components/events/host/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/components/events/host/project.json b/packages/lit-dev-content/samples/v2-docs/components/events/host/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/components/events/host/project.json rename to packages/lit-dev-content/samples/v2-docs/components/events/host/project.json index b4ce9dfb5..48d41e00c 100644 --- a/packages/lit-dev-content/samples/docs/components/events/host/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/events/host/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-element.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/components/events/list/index.html b/packages/lit-dev-content/samples/v2-docs/components/events/list/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/list/index.html rename to packages/lit-dev-content/samples/v2-docs/components/events/list/index.html diff --git a/packages/lit-dev-content/samples/docs/components/events/list/my-element.ts b/packages/lit-dev-content/samples/v2-docs/components/events/list/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/list/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/components/events/list/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/components/events/list/project.json b/packages/lit-dev-content/samples/v2-docs/components/events/list/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/components/events/list/project.json rename to packages/lit-dev-content/samples/v2-docs/components/events/list/project.json index b4ce9dfb5..48d41e00c 100644 --- a/packages/lit-dev-content/samples/docs/components/events/list/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/events/list/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-element.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/components/events/update/index.html b/packages/lit-dev-content/samples/v2-docs/components/events/update/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/update/index.html rename to packages/lit-dev-content/samples/v2-docs/components/events/update/index.html diff --git a/packages/lit-dev-content/samples/docs/components/events/update/my-dispatcher.ts b/packages/lit-dev-content/samples/v2-docs/components/events/update/my-dispatcher.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/update/my-dispatcher.ts rename to packages/lit-dev-content/samples/v2-docs/components/events/update/my-dispatcher.ts diff --git a/packages/lit-dev-content/samples/docs/components/events/update/my-listener.ts b/packages/lit-dev-content/samples/v2-docs/components/events/update/my-listener.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/events/update/my-listener.ts rename to packages/lit-dev-content/samples/v2-docs/components/events/update/my-listener.ts diff --git a/packages/lit-dev-content/samples/docs/components/events/dispatch/project.json b/packages/lit-dev-content/samples/v2-docs/components/events/update/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/components/events/dispatch/project.json rename to packages/lit-dev-content/samples/v2-docs/components/events/update/project.json index a2e901bae..1df50e807 100644 --- a/packages/lit-dev-content/samples/docs/components/events/dispatch/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/events/update/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-dispatcher.ts": {}, "my-listener.ts": {}, diff --git a/packages/lit-dev-content/samples/docs/components/overview/simple-greeting/index.html b/packages/lit-dev-content/samples/v2-docs/components/overview/simple-greeting/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/overview/simple-greeting/index.html rename to packages/lit-dev-content/samples/v2-docs/components/overview/simple-greeting/index.html diff --git a/packages/lit-dev-content/samples/docs/components/overview/simple-greeting/project.json b/packages/lit-dev-content/samples/v2-docs/components/overview/simple-greeting/project.json similarity index 72% rename from packages/lit-dev-content/samples/docs/components/overview/simple-greeting/project.json rename to packages/lit-dev-content/samples/v2-docs/components/overview/simple-greeting/project.json index ed9c5632c..6723e2246 100644 --- a/packages/lit-dev-content/samples/docs/components/overview/simple-greeting/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/overview/simple-greeting/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "simple-greeting.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/components/overview/simple-greeting/simple-greeting.ts b/packages/lit-dev-content/samples/v2-docs/components/overview/simple-greeting/simple-greeting.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/overview/simple-greeting/simple-greeting.ts rename to packages/lit-dev-content/samples/v2-docs/components/overview/simple-greeting/simple-greeting.ts diff --git a/packages/lit-dev-content/samples/docs/components/shadowdom/namedslots/index.html b/packages/lit-dev-content/samples/v2-docs/components/shadowdom/namedslots/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/shadowdom/namedslots/index.html rename to packages/lit-dev-content/samples/v2-docs/components/shadowdom/namedslots/index.html diff --git a/packages/lit-dev-content/samples/docs/components/shadowdom/namedslots/my-element.ts b/packages/lit-dev-content/samples/v2-docs/components/shadowdom/namedslots/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/shadowdom/namedslots/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/components/shadowdom/namedslots/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/components/shadowdom/namedslots/project.json b/packages/lit-dev-content/samples/v2-docs/components/shadowdom/namedslots/project.json similarity index 63% rename from packages/lit-dev-content/samples/docs/components/shadowdom/namedslots/project.json rename to packages/lit-dev-content/samples/v2-docs/components/shadowdom/namedslots/project.json index 2e5271863..445b3f003 100644 --- a/packages/lit-dev-content/samples/docs/components/shadowdom/namedslots/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/shadowdom/namedslots/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "index.html": {}, "my-element.ts": {} diff --git a/packages/lit-dev-content/samples/docs/components/shadowdom/renderroot/default-root.ts b/packages/lit-dev-content/samples/v2-docs/components/shadowdom/renderroot/default-root.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/shadowdom/renderroot/default-root.ts rename to packages/lit-dev-content/samples/v2-docs/components/shadowdom/renderroot/default-root.ts diff --git a/packages/lit-dev-content/samples/docs/components/shadowdom/renderroot/index.html b/packages/lit-dev-content/samples/v2-docs/components/shadowdom/renderroot/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/shadowdom/renderroot/index.html rename to packages/lit-dev-content/samples/v2-docs/components/shadowdom/renderroot/index.html diff --git a/packages/lit-dev-content/samples/docs/components/shadowdom/renderroot/light-dom.ts b/packages/lit-dev-content/samples/v2-docs/components/shadowdom/renderroot/light-dom.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/shadowdom/renderroot/light-dom.ts rename to packages/lit-dev-content/samples/v2-docs/components/shadowdom/renderroot/light-dom.ts diff --git a/packages/lit-dev-content/samples/docs/components/shadowdom/renderroot/project.json b/packages/lit-dev-content/samples/v2-docs/components/shadowdom/renderroot/project.json similarity index 70% rename from packages/lit-dev-content/samples/docs/components/shadowdom/renderroot/project.json rename to packages/lit-dev-content/samples/v2-docs/components/shadowdom/renderroot/project.json index 87338a315..b026e908e 100644 --- a/packages/lit-dev-content/samples/docs/components/shadowdom/renderroot/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/shadowdom/renderroot/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "default-root.ts": {}, "light-dom.ts": {}, diff --git a/packages/lit-dev-content/samples/docs/components/shadowdom/slots/index.html b/packages/lit-dev-content/samples/v2-docs/components/shadowdom/slots/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/shadowdom/slots/index.html rename to packages/lit-dev-content/samples/v2-docs/components/shadowdom/slots/index.html diff --git a/packages/lit-dev-content/samples/docs/components/shadowdom/slots/my-element.ts b/packages/lit-dev-content/samples/v2-docs/components/shadowdom/slots/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/shadowdom/slots/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/components/shadowdom/slots/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/components/shadowdom/slots/project.json b/packages/lit-dev-content/samples/v2-docs/components/shadowdom/slots/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/components/shadowdom/slots/project.json rename to packages/lit-dev-content/samples/v2-docs/components/shadowdom/slots/project.json index d16792921..7edbd6a2d 100644 --- a/packages/lit-dev-content/samples/docs/components/shadowdom/slots/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/shadowdom/slots/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "index.html": {}, "my-element.ts": {} diff --git a/packages/lit-dev-content/samples/docs/components/style/basic/index.html b/packages/lit-dev-content/samples/v2-docs/components/style/basic/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/style/basic/index.html rename to packages/lit-dev-content/samples/v2-docs/components/style/basic/index.html diff --git a/packages/lit-dev-content/samples/docs/components/style/basic/my-element.ts b/packages/lit-dev-content/samples/v2-docs/components/style/basic/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/style/basic/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/components/style/basic/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/components/style/maps/project.json b/packages/lit-dev-content/samples/v2-docs/components/style/basic/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/components/style/maps/project.json rename to packages/lit-dev-content/samples/v2-docs/components/style/basic/project.json index ddc8a7257..97447c28b 100644 --- a/packages/lit-dev-content/samples/docs/components/style/maps/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/style/basic/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-element.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/components/style/host/index.html b/packages/lit-dev-content/samples/v2-docs/components/style/host/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/style/host/index.html rename to packages/lit-dev-content/samples/v2-docs/components/style/host/index.html diff --git a/packages/lit-dev-content/samples/docs/components/style/host/my-element.ts b/packages/lit-dev-content/samples/v2-docs/components/style/host/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/style/host/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/components/style/host/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/components/style/host/project.json b/packages/lit-dev-content/samples/v2-docs/components/style/host/project.json similarity index 63% rename from packages/lit-dev-content/samples/docs/components/style/host/project.json rename to packages/lit-dev-content/samples/v2-docs/components/style/host/project.json index 0731b9883..b969c4c8b 100644 --- a/packages/lit-dev-content/samples/docs/components/style/host/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/style/host/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-element.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/components/style/maps/index.html b/packages/lit-dev-content/samples/v2-docs/components/style/maps/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/style/maps/index.html rename to packages/lit-dev-content/samples/v2-docs/components/style/maps/index.html diff --git a/packages/lit-dev-content/samples/docs/components/style/maps/my-element.ts b/packages/lit-dev-content/samples/v2-docs/components/style/maps/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/style/maps/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/components/style/maps/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/components/events/delegation/project.json b/packages/lit-dev-content/samples/v2-docs/components/style/maps/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/components/events/delegation/project.json rename to packages/lit-dev-content/samples/v2-docs/components/style/maps/project.json index ddc8a7257..97447c28b 100644 --- a/packages/lit-dev-content/samples/docs/components/events/delegation/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/style/maps/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-element.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/components/style/slottedselector/index.html b/packages/lit-dev-content/samples/v2-docs/components/style/slottedselector/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/style/slottedselector/index.html rename to packages/lit-dev-content/samples/v2-docs/components/style/slottedselector/index.html diff --git a/packages/lit-dev-content/samples/docs/components/style/slottedselector/my-element.ts b/packages/lit-dev-content/samples/v2-docs/components/style/slottedselector/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/style/slottedselector/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/components/style/slottedselector/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/components/style/slottedselector/project.json b/packages/lit-dev-content/samples/v2-docs/components/style/slottedselector/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/components/style/slottedselector/project.json rename to packages/lit-dev-content/samples/v2-docs/components/style/slottedselector/project.json index 85df3b2be..40c063e41 100644 --- a/packages/lit-dev-content/samples/docs/components/style/slottedselector/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/style/slottedselector/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-element.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/components/style/superstyles/index.html b/packages/lit-dev-content/samples/v2-docs/components/style/superstyles/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/style/superstyles/index.html rename to packages/lit-dev-content/samples/v2-docs/components/style/superstyles/index.html diff --git a/packages/lit-dev-content/samples/docs/components/style/superstyles/my-element.ts b/packages/lit-dev-content/samples/v2-docs/components/style/superstyles/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/style/superstyles/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/components/style/superstyles/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/components/style/superstyles/project.json b/packages/lit-dev-content/samples/v2-docs/components/style/superstyles/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/components/style/superstyles/project.json rename to packages/lit-dev-content/samples/v2-docs/components/style/superstyles/project.json index 45d10e91a..cb0dd4d18 100644 --- a/packages/lit-dev-content/samples/docs/components/style/superstyles/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/style/superstyles/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-element.ts": {}, "super-element.ts": {}, diff --git a/packages/lit-dev-content/samples/docs/components/style/superstyles/super-element.ts b/packages/lit-dev-content/samples/v2-docs/components/style/superstyles/super-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/style/superstyles/super-element.ts rename to packages/lit-dev-content/samples/v2-docs/components/style/superstyles/super-element.ts diff --git a/packages/lit-dev-content/samples/docs/components/style/theming/index.html b/packages/lit-dev-content/samples/v2-docs/components/style/theming/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/components/style/theming/index.html rename to packages/lit-dev-content/samples/v2-docs/components/style/theming/index.html diff --git a/packages/lit-dev-content/samples/docs/components/style/theming/my-element.ts b/packages/lit-dev-content/samples/v2-docs/components/style/theming/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/components/style/theming/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/components/style/theming/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/components/style/theming/project.json b/packages/lit-dev-content/samples/v2-docs/components/style/theming/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/components/style/theming/project.json rename to packages/lit-dev-content/samples/v2-docs/components/style/theming/project.json index 85df3b2be..40c063e41 100644 --- a/packages/lit-dev-content/samples/docs/components/style/theming/project.json +++ b/packages/lit-dev-content/samples/v2-docs/components/style/theming/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-element.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/composition/mediator-pattern/index.html b/packages/lit-dev-content/samples/v2-docs/composition/mediator-pattern/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/composition/mediator-pattern/index.html rename to packages/lit-dev-content/samples/v2-docs/composition/mediator-pattern/index.html diff --git a/packages/lit-dev-content/samples/docs/composition/mediator-pattern/mediator-element.ts b/packages/lit-dev-content/samples/v2-docs/composition/mediator-pattern/mediator-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/composition/mediator-pattern/mediator-element.ts rename to packages/lit-dev-content/samples/v2-docs/composition/mediator-pattern/mediator-element.ts diff --git a/packages/lit-dev-content/samples/docs/composition/mediator-pattern/project.json b/packages/lit-dev-content/samples/v2-docs/composition/mediator-pattern/project.json similarity index 72% rename from packages/lit-dev-content/samples/docs/composition/mediator-pattern/project.json rename to packages/lit-dev-content/samples/v2-docs/composition/mediator-pattern/project.json index 029fa8c86..0f547740d 100644 --- a/packages/lit-dev-content/samples/docs/composition/mediator-pattern/project.json +++ b/packages/lit-dev-content/samples/v2-docs/composition/mediator-pattern/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "mediator-element.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/controllers/mouse/index.html b/packages/lit-dev-content/samples/v2-docs/controllers/mouse/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/controllers/mouse/index.html rename to packages/lit-dev-content/samples/v2-docs/controllers/mouse/index.html diff --git a/packages/lit-dev-content/samples/docs/controllers/mouse/mouse-controller.ts b/packages/lit-dev-content/samples/v2-docs/controllers/mouse/mouse-controller.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/controllers/mouse/mouse-controller.ts rename to packages/lit-dev-content/samples/v2-docs/controllers/mouse/mouse-controller.ts diff --git a/packages/lit-dev-content/samples/docs/controllers/mouse/my-element.ts b/packages/lit-dev-content/samples/v2-docs/controllers/mouse/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/controllers/mouse/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/controllers/mouse/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/controllers/mouse/project.json b/packages/lit-dev-content/samples/v2-docs/controllers/mouse/project.json similarity index 72% rename from packages/lit-dev-content/samples/docs/controllers/mouse/project.json rename to packages/lit-dev-content/samples/v2-docs/controllers/mouse/project.json index 348e14694..767894c15 100644 --- a/packages/lit-dev-content/samples/docs/controllers/mouse/project.json +++ b/packages/lit-dev-content/samples/v2-docs/controllers/mouse/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-element.ts": {}, "mouse-controller.ts": {}, diff --git a/packages/lit-dev-content/samples/docs/controllers/names/index.html b/packages/lit-dev-content/samples/v2-docs/controllers/names/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/controllers/names/index.html rename to packages/lit-dev-content/samples/v2-docs/controllers/names/index.html diff --git a/packages/lit-dev-content/samples/docs/controllers/names/my-element.ts b/packages/lit-dev-content/samples/v2-docs/controllers/names/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/controllers/names/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/controllers/names/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/controllers/names/names-api.ts b/packages/lit-dev-content/samples/v2-docs/controllers/names/names-api.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/controllers/names/names-api.ts rename to packages/lit-dev-content/samples/v2-docs/controllers/names/names-api.ts diff --git a/packages/lit-dev-content/samples/docs/controllers/names/names-controller.ts b/packages/lit-dev-content/samples/v2-docs/controllers/names/names-controller.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/controllers/names/names-controller.ts rename to packages/lit-dev-content/samples/v2-docs/controllers/names/names-controller.ts diff --git a/packages/lit-dev-content/samples/docs/controllers/names/project.json b/packages/lit-dev-content/samples/v2-docs/controllers/names/project.json similarity index 79% rename from packages/lit-dev-content/samples/docs/controllers/names/project.json rename to packages/lit-dev-content/samples/v2-docs/controllers/names/project.json index 907115d96..695ba2ac9 100644 --- a/packages/lit-dev-content/samples/docs/controllers/names/project.json +++ b/packages/lit-dev-content/samples/v2-docs/controllers/names/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "names-controller.ts": {}, "my-element.ts": {}, diff --git a/packages/lit-dev-content/samples/docs/controllers/overview/clock-controller.ts b/packages/lit-dev-content/samples/v2-docs/controllers/overview/clock-controller.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/controllers/overview/clock-controller.ts rename to packages/lit-dev-content/samples/v2-docs/controllers/overview/clock-controller.ts diff --git a/packages/lit-dev-content/samples/docs/controllers/overview/index.html b/packages/lit-dev-content/samples/v2-docs/controllers/overview/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/controllers/overview/index.html rename to packages/lit-dev-content/samples/v2-docs/controllers/overview/index.html diff --git a/packages/lit-dev-content/samples/docs/controllers/overview/my-element.ts b/packages/lit-dev-content/samples/v2-docs/controllers/overview/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/controllers/overview/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/controllers/overview/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/controllers/overview/project.json b/packages/lit-dev-content/samples/v2-docs/controllers/overview/project.json similarity index 72% rename from packages/lit-dev-content/samples/docs/controllers/overview/project.json rename to packages/lit-dev-content/samples/v2-docs/controllers/overview/project.json index d37e76689..64e3d7266 100644 --- a/packages/lit-dev-content/samples/docs/controllers/overview/project.json +++ b/packages/lit-dev-content/samples/v2-docs/controllers/overview/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "clock-controller.ts": {}, "my-element.ts": {}, diff --git a/packages/lit-dev-content/samples/docs/libraries/localization/runtime/index.html b/packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/libraries/localization/runtime/index.html rename to packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/index.html diff --git a/packages/lit-dev-content/samples/docs/libraries/localization/runtime/index.ts b/packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/index.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/libraries/localization/runtime/index.ts rename to packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/index.ts diff --git a/packages/lit-dev-content/samples/docs/libraries/localization/runtime/locale-codes.ts b/packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/locale-codes.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/libraries/localization/runtime/locale-codes.ts rename to packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/locale-codes.ts diff --git a/packages/lit-dev-content/samples/docs/libraries/localization/runtime/locale-picker.ts b/packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/locale-picker.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/libraries/localization/runtime/locale-picker.ts rename to packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/locale-picker.ts diff --git a/packages/lit-dev-content/samples/docs/libraries/localization/runtime/locales/es-419.ts b/packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/locales/es-419.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/libraries/localization/runtime/locales/es-419.ts rename to packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/locales/es-419.ts diff --git a/packages/lit-dev-content/samples/docs/libraries/localization/runtime/locales/zh_CN.ts b/packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/locales/zh_CN.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/libraries/localization/runtime/locales/zh_CN.ts rename to packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/locales/zh_CN.ts diff --git a/packages/lit-dev-content/samples/docs/libraries/localization/runtime/localization.ts b/packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/localization.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/libraries/localization/runtime/localization.ts rename to packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/localization.ts diff --git a/packages/lit-dev-content/samples/docs/libraries/localization/runtime/project.json b/packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/project.json similarity index 85% rename from packages/lit-dev-content/samples/docs/libraries/localization/runtime/project.json rename to packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/project.json index 91ff9a01f..68ace9f61 100644 --- a/packages/lit-dev-content/samples/docs/libraries/localization/runtime/project.json +++ b/packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "x-greeter.ts": {}, "locale-picker.ts": {}, diff --git a/packages/lit-dev-content/samples/docs/libraries/localization/runtime/x-greeter.ts b/packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/x-greeter.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/libraries/localization/runtime/x-greeter.ts rename to packages/lit-dev-content/samples/v2-docs/libraries/localization/runtime/x-greeter.ts diff --git a/packages/lit-dev-content/samples/docs/mixins/highlightable/element-one.js b/packages/lit-dev-content/samples/v2-docs/mixins/highlightable/element-one.js similarity index 100% rename from packages/lit-dev-content/samples/docs/mixins/highlightable/element-one.js rename to packages/lit-dev-content/samples/v2-docs/mixins/highlightable/element-one.js diff --git a/packages/lit-dev-content/samples/docs/mixins/highlightable/element-one.ts b/packages/lit-dev-content/samples/v2-docs/mixins/highlightable/element-one.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/mixins/highlightable/element-one.ts rename to packages/lit-dev-content/samples/v2-docs/mixins/highlightable/element-one.ts diff --git a/packages/lit-dev-content/samples/docs/mixins/highlightable/element-two.js b/packages/lit-dev-content/samples/v2-docs/mixins/highlightable/element-two.js similarity index 100% rename from packages/lit-dev-content/samples/docs/mixins/highlightable/element-two.js rename to packages/lit-dev-content/samples/v2-docs/mixins/highlightable/element-two.js diff --git a/packages/lit-dev-content/samples/docs/mixins/highlightable/element-two.ts b/packages/lit-dev-content/samples/v2-docs/mixins/highlightable/element-two.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/mixins/highlightable/element-two.ts rename to packages/lit-dev-content/samples/v2-docs/mixins/highlightable/element-two.ts diff --git a/packages/lit-dev-content/samples/docs/mixins/highlightable/highlightable.js b/packages/lit-dev-content/samples/v2-docs/mixins/highlightable/highlightable.js similarity index 100% rename from packages/lit-dev-content/samples/docs/mixins/highlightable/highlightable.js rename to packages/lit-dev-content/samples/v2-docs/mixins/highlightable/highlightable.js diff --git a/packages/lit-dev-content/samples/docs/mixins/highlightable/highlightable.ts b/packages/lit-dev-content/samples/v2-docs/mixins/highlightable/highlightable.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/mixins/highlightable/highlightable.ts rename to packages/lit-dev-content/samples/v2-docs/mixins/highlightable/highlightable.ts diff --git a/packages/lit-dev-content/samples/docs/mixins/highlightable/index.html b/packages/lit-dev-content/samples/v2-docs/mixins/highlightable/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/mixins/highlightable/index.html rename to packages/lit-dev-content/samples/v2-docs/mixins/highlightable/index.html diff --git a/packages/lit-dev-content/samples/docs/mixins/highlightable/project.json b/packages/lit-dev-content/samples/v2-docs/mixins/highlightable/project.json similarity index 76% rename from packages/lit-dev-content/samples/docs/mixins/highlightable/project.json rename to packages/lit-dev-content/samples/v2-docs/mixins/highlightable/project.json index 02a498557..cae51530c 100644 --- a/packages/lit-dev-content/samples/docs/mixins/highlightable/project.json +++ b/packages/lit-dev-content/samples/v2-docs/mixins/highlightable/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "highlightable.ts": {}, "element-one.ts": {}, diff --git a/packages/lit-dev-content/samples/docs/templates/compose/index.html b/packages/lit-dev-content/samples/v2-docs/templates/compose/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/compose/index.html rename to packages/lit-dev-content/samples/v2-docs/templates/compose/index.html diff --git a/packages/lit-dev-content/samples/docs/templates/compose/my-page.ts b/packages/lit-dev-content/samples/v2-docs/templates/compose/my-page.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/compose/my-page.ts rename to packages/lit-dev-content/samples/v2-docs/templates/compose/my-page.ts diff --git a/packages/lit-dev-content/samples/docs/templates/compose/project.json b/packages/lit-dev-content/samples/v2-docs/templates/compose/project.json similarity index 70% rename from packages/lit-dev-content/samples/docs/templates/compose/project.json rename to packages/lit-dev-content/samples/v2-docs/templates/compose/project.json index ac8950d0c..c00fccd70 100644 --- a/packages/lit-dev-content/samples/docs/templates/compose/project.json +++ b/packages/lit-dev-content/samples/v2-docs/templates/compose/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-page.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/templates/composeimports/index.html b/packages/lit-dev-content/samples/v2-docs/templates/composeimports/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/composeimports/index.html rename to packages/lit-dev-content/samples/v2-docs/templates/composeimports/index.html diff --git a/packages/lit-dev-content/samples/docs/templates/composeimports/my-article.ts b/packages/lit-dev-content/samples/v2-docs/templates/composeimports/my-article.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/composeimports/my-article.ts rename to packages/lit-dev-content/samples/v2-docs/templates/composeimports/my-article.ts diff --git a/packages/lit-dev-content/samples/docs/templates/composeimports/my-footer.ts b/packages/lit-dev-content/samples/v2-docs/templates/composeimports/my-footer.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/composeimports/my-footer.ts rename to packages/lit-dev-content/samples/v2-docs/templates/composeimports/my-footer.ts diff --git a/packages/lit-dev-content/samples/docs/templates/composeimports/my-header.ts b/packages/lit-dev-content/samples/v2-docs/templates/composeimports/my-header.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/composeimports/my-header.ts rename to packages/lit-dev-content/samples/v2-docs/templates/composeimports/my-header.ts diff --git a/packages/lit-dev-content/samples/docs/templates/composeimports/my-page.ts b/packages/lit-dev-content/samples/v2-docs/templates/composeimports/my-page.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/composeimports/my-page.ts rename to packages/lit-dev-content/samples/v2-docs/templates/composeimports/my-page.ts diff --git a/packages/lit-dev-content/samples/docs/templates/composeimports/project.json b/packages/lit-dev-content/samples/v2-docs/templates/composeimports/project.json similarity index 78% rename from packages/lit-dev-content/samples/docs/templates/composeimports/project.json rename to packages/lit-dev-content/samples/v2-docs/templates/composeimports/project.json index c0b71884a..9f3a8b6dc 100644 --- a/packages/lit-dev-content/samples/docs/templates/composeimports/project.json +++ b/packages/lit-dev-content/samples/v2-docs/templates/composeimports/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-page.ts": {}, "my-header.ts": {}, diff --git a/packages/lit-dev-content/samples/docs/templates/define/index.html b/packages/lit-dev-content/samples/v2-docs/templates/define/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/define/index.html rename to packages/lit-dev-content/samples/v2-docs/templates/define/index.html diff --git a/packages/lit-dev-content/samples/docs/templates/define/my-element.ts b/packages/lit-dev-content/samples/v2-docs/templates/define/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/define/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/templates/define/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/templates/define/project.json b/packages/lit-dev-content/samples/v2-docs/templates/define/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/templates/define/project.json rename to packages/lit-dev-content/samples/v2-docs/templates/define/project.json index ddc8a7257..97447c28b 100644 --- a/packages/lit-dev-content/samples/docs/templates/define/project.json +++ b/packages/lit-dev-content/samples/v2-docs/templates/define/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-element.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/templates/design/index.html b/packages/lit-dev-content/samples/v2-docs/templates/design/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/design/index.html rename to packages/lit-dev-content/samples/v2-docs/templates/design/index.html diff --git a/packages/lit-dev-content/samples/docs/templates/design/project.json b/packages/lit-dev-content/samples/v2-docs/templates/design/project.json similarity index 72% rename from packages/lit-dev-content/samples/docs/templates/design/project.json rename to packages/lit-dev-content/samples/v2-docs/templates/design/project.json index 5aae6875a..55817f365 100644 --- a/packages/lit-dev-content/samples/docs/templates/design/project.json +++ b/packages/lit-dev-content/samples/v2-docs/templates/design/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "update-properties.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/templates/design/update-properties.ts b/packages/lit-dev-content/samples/v2-docs/templates/design/update-properties.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/design/update-properties.ts rename to packages/lit-dev-content/samples/v2-docs/templates/design/update-properties.ts diff --git a/packages/lit-dev-content/samples/docs/templates/expressions/index.html b/packages/lit-dev-content/samples/v2-docs/templates/expressions/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/expressions/index.html rename to packages/lit-dev-content/samples/v2-docs/templates/expressions/index.html diff --git a/packages/lit-dev-content/samples/docs/templates/expressions/my-element.ts b/packages/lit-dev-content/samples/v2-docs/templates/expressions/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/expressions/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/templates/expressions/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/templates/expressions/project.json b/packages/lit-dev-content/samples/v2-docs/templates/expressions/project.json similarity index 71% rename from packages/lit-dev-content/samples/docs/templates/expressions/project.json rename to packages/lit-dev-content/samples/v2-docs/templates/expressions/project.json index 6b81cf223..4329d1683 100644 --- a/packages/lit-dev-content/samples/docs/templates/expressions/project.json +++ b/packages/lit-dev-content/samples/v2-docs/templates/expressions/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-element.ts": {}, "index.html": {} diff --git a/packages/lit-dev-content/samples/docs/templates/lists-arrays/index.html b/packages/lit-dev-content/samples/v2-docs/templates/lists-arrays/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/lists-arrays/index.html rename to packages/lit-dev-content/samples/v2-docs/templates/lists-arrays/index.html diff --git a/packages/lit-dev-content/samples/docs/templates/lists-arrays/my-element.js b/packages/lit-dev-content/samples/v2-docs/templates/lists-arrays/my-element.js similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/lists-arrays/my-element.js rename to packages/lit-dev-content/samples/v2-docs/templates/lists-arrays/my-element.js diff --git a/packages/lit-dev-content/samples/docs/templates/lists-arrays/my-element.ts b/packages/lit-dev-content/samples/v2-docs/templates/lists-arrays/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/lists-arrays/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/templates/lists-arrays/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/templates/lists-arrays/project.json b/packages/lit-dev-content/samples/v2-docs/templates/lists-arrays/project.json similarity index 85% rename from packages/lit-dev-content/samples/docs/templates/lists-arrays/project.json rename to packages/lit-dev-content/samples/v2-docs/templates/lists-arrays/project.json index 03c78eada..e1af498aa 100644 --- a/packages/lit-dev-content/samples/docs/templates/lists-arrays/project.json +++ b/packages/lit-dev-content/samples/v2-docs/templates/lists-arrays/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "title": "repeat directive", "description": "Demo exploring use of the repeat directive.", "section": "Directives", diff --git a/packages/lit-dev-content/samples/docs/templates/lists-map/index.html b/packages/lit-dev-content/samples/v2-docs/templates/lists-map/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/lists-map/index.html rename to packages/lit-dev-content/samples/v2-docs/templates/lists-map/index.html diff --git a/packages/lit-dev-content/samples/docs/templates/lists-map/my-element.js b/packages/lit-dev-content/samples/v2-docs/templates/lists-map/my-element.js similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/lists-map/my-element.js rename to packages/lit-dev-content/samples/v2-docs/templates/lists-map/my-element.js diff --git a/packages/lit-dev-content/samples/docs/templates/lists-map/my-element.ts b/packages/lit-dev-content/samples/v2-docs/templates/lists-map/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/lists-map/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/templates/lists-map/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/templates/lists-map/project.json b/packages/lit-dev-content/samples/v2-docs/templates/lists-map/project.json similarity index 85% rename from packages/lit-dev-content/samples/docs/templates/lists-map/project.json rename to packages/lit-dev-content/samples/v2-docs/templates/lists-map/project.json index 142a745cf..471aeb270 100644 --- a/packages/lit-dev-content/samples/docs/templates/lists-map/project.json +++ b/packages/lit-dev-content/samples/v2-docs/templates/lists-map/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "title": "repeat directive", "description": "Demo exploring use of the repeat directive.", "section": "Directives", diff --git a/packages/lit-dev-content/samples/docs/templates/lists-repeat/index.html b/packages/lit-dev-content/samples/v2-docs/templates/lists-repeat/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/lists-repeat/index.html rename to packages/lit-dev-content/samples/v2-docs/templates/lists-repeat/index.html diff --git a/packages/lit-dev-content/samples/docs/templates/lists-repeat/my-element.ts b/packages/lit-dev-content/samples/v2-docs/templates/lists-repeat/my-element.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/templates/lists-repeat/my-element.ts rename to packages/lit-dev-content/samples/v2-docs/templates/lists-repeat/my-element.ts diff --git a/packages/lit-dev-content/samples/docs/templates/lists-repeat/project.json b/packages/lit-dev-content/samples/v2-docs/templates/lists-repeat/project.json similarity index 85% rename from packages/lit-dev-content/samples/docs/templates/lists-repeat/project.json rename to packages/lit-dev-content/samples/v2-docs/templates/lists-repeat/project.json index 5957e2cd4..bef8e3449 100644 --- a/packages/lit-dev-content/samples/docs/templates/lists-repeat/project.json +++ b/packages/lit-dev-content/samples/v2-docs/templates/lists-repeat/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "title": "repeat directive", "description": "Demo exploring use of the repeat directive.", "section": "Directives", diff --git a/packages/lit-dev-content/samples/docs/what-is-lit/icons.ts b/packages/lit-dev-content/samples/v2-docs/what-is-lit/icons.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/what-is-lit/icons.ts rename to packages/lit-dev-content/samples/v2-docs/what-is-lit/icons.ts diff --git a/packages/lit-dev-content/samples/docs/what-is-lit/index.html b/packages/lit-dev-content/samples/v2-docs/what-is-lit/index.html similarity index 100% rename from packages/lit-dev-content/samples/docs/what-is-lit/index.html rename to packages/lit-dev-content/samples/v2-docs/what-is-lit/index.html diff --git a/packages/lit-dev-content/samples/docs/what-is-lit/my-timer.ts b/packages/lit-dev-content/samples/v2-docs/what-is-lit/my-timer.ts similarity index 100% rename from packages/lit-dev-content/samples/docs/what-is-lit/my-timer.ts rename to packages/lit-dev-content/samples/v2-docs/what-is-lit/my-timer.ts diff --git a/packages/lit-dev-content/samples/docs/what-is-lit/project.json b/packages/lit-dev-content/samples/v2-docs/what-is-lit/project.json similarity index 74% rename from packages/lit-dev-content/samples/docs/what-is-lit/project.json rename to packages/lit-dev-content/samples/v2-docs/what-is-lit/project.json index 6dd984f46..bea518e1b 100644 --- a/packages/lit-dev-content/samples/docs/what-is-lit/project.json +++ b/packages/lit-dev-content/samples/v2-docs/what-is-lit/project.json @@ -1,5 +1,5 @@ { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", "files": { "my-timer.ts": {}, "index.html": {}, diff --git a/packages/lit-dev-content/samples/v3-base.json b/packages/lit-dev-content/samples/v3-base.json new file mode 100644 index 000000000..5cd61253b --- /dev/null +++ b/packages/lit-dev-content/samples/v3-base.json @@ -0,0 +1,8 @@ +{ + "files": { + "package.json": { + "content": "{\n \"dependencies\": {\n \"lit\": \"^3.0.0-pre.0\",\n \"@lit/reactive-element\": \"^2.0.0-pre.0\",\n \"lit-element\": \"^4.0.0-pre.0\",\n \"lit-html\": \"^3.0.0-pre.0\"\n }\n}", + "hidden": true + } + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/child/index.html b/packages/lit-dev-content/samples/v3-docs/components/events/child/index.html new file mode 100644 index 000000000..9a1b15c74 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/child/index.html @@ -0,0 +1,3 @@ + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/child/my-element.ts b/packages/lit-dev-content/samples/v3-docs/components/events/child/my-element.ts new file mode 100644 index 000000000..446d953cf --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/child/my-element.ts @@ -0,0 +1,16 @@ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; + +@customElement('my-element') +export class MyElement extends LitElement { + @property({type: Number}) count = 0; + protected render() { + return html` +

+

Click count: ${this.count}

+ `; + } + private _increment(e: Event) { + this.count++; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/child/project.json b/packages/lit-dev-content/samples/v3-docs/components/events/child/project.json new file mode 100644 index 000000000..816404c3d --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/child/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-element.ts": {}, + "index.html": {} + }, + "previewHeight": "100px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/comm/index.html b/packages/lit-dev-content/samples/v3-docs/components/events/comm/index.html new file mode 100644 index 000000000..0a600daea --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/comm/index.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/comm/my-dispatcher.ts b/packages/lit-dev-content/samples/v3-docs/components/events/comm/my-dispatcher.ts new file mode 100644 index 000000000..10e31167a --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/comm/my-dispatcher.ts @@ -0,0 +1,30 @@ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; + +@customElement('my-dispatcher') +class MyDispatcher extends LitElement { + @property() label = 'Check me!'; + defaultMessage = '🙂'; + @property() message = this.defaultMessage; + private _resetMessage?: ReturnType; + protected render() { + return html` + +
${this.message}
+ `; + } + private _tryChange(e: Event) { + const detail = {message: this.message}; + const event = new CustomEvent('checked', {detail, bubbles: true, composed: true, cancelable: true}); + this.dispatchEvent(event); + if (event.defaultPrevented) { + e.preventDefault(); + } + this.message = detail.message; + } + protected updated() { + clearTimeout(this._resetMessage); + this._resetMessage = + setTimeout(() => this.message = this.defaultMessage, 1000); + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/comm/my-listener.ts b/packages/lit-dev-content/samples/v3-docs/components/events/comm/my-listener.ts new file mode 100644 index 000000000..c2acc3166 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/comm/my-listener.ts @@ -0,0 +1,23 @@ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; + +@customElement('my-listener') +class MyListener extends LitElement { + @property() canCheck = false; + protected render() { + return html` +

+
+

${this.canCheck ? 'Allowing' : 'Preventing'} check

+

`; + } + private _checkedHandler(e: CustomEvent) { + if (!this.canCheck) { + e.preventDefault(); + e.detail.message = '✅ Prevented!!'; + } + } + private _clickHandler() { + this.canCheck = !this.canCheck; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/comm/project.json b/packages/lit-dev-content/samples/v3-docs/components/events/comm/project.json new file mode 100644 index 000000000..707799a7f --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/comm/project.json @@ -0,0 +1,9 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-dispatcher.ts": {}, + "my-listener.ts": {}, + "index.html": {} + }, + "previewHeight": "180px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/delegation/index.html b/packages/lit-dev-content/samples/v3-docs/components/events/delegation/index.html new file mode 100644 index 000000000..9a1b15c74 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/delegation/index.html @@ -0,0 +1,3 @@ + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/delegation/my-element.ts b/packages/lit-dev-content/samples/v3-docs/components/events/delegation/my-element.ts new file mode 100644 index 000000000..c8f8b534d --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/delegation/my-element.ts @@ -0,0 +1,21 @@ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; + +@customElement('my-element') +class MyElement extends LitElement { + @property() clicked = ''; + protected render() { + return html` +
+ + + +
+

Clicked: ${this.clicked}

+ `; + } + private _clickHandler(e: Event) { + this.clicked = e.target === e.currentTarget ? + 'container' : (e.target as HTMLDivElement).textContent!; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/delegation/project.json b/packages/lit-dev-content/samples/v3-docs/components/events/delegation/project.json new file mode 100644 index 000000000..d492ed013 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/delegation/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-element.ts": {}, + "index.html": {} + }, + "previewHeight": "80px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/dispatch/index.html b/packages/lit-dev-content/samples/v3-docs/components/events/dispatch/index.html new file mode 100644 index 000000000..0a600daea --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/dispatch/index.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/dispatch/my-dispatcher.ts b/packages/lit-dev-content/samples/v3-docs/components/events/dispatch/my-dispatcher.ts new file mode 100644 index 000000000..3e64679ff --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/dispatch/my-dispatcher.ts @@ -0,0 +1,24 @@ +import {LitElement, html} from 'lit'; +import {customElement, query} from 'lit/decorators.js'; + +@customElement('my-dispatcher') +class MyDispatcher extends LitElement { + @query('input', true) _input!: HTMLInputElement; + protected render() { + return html` +

Name:

+

+ `; + } + private _dispatchLogin() { + const name = this._input.value.trim(); + if (name) { + const options = { + detail: {name}, + bubbles: true, + composed: true + }; + this.dispatchEvent(new CustomEvent('mylogin', options)); + } + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/dispatch/my-listener.ts b/packages/lit-dev-content/samples/v3-docs/components/events/dispatch/my-listener.ts new file mode 100644 index 000000000..48ac9d745 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/dispatch/my-listener.ts @@ -0,0 +1,14 @@ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; +@customElement('my-listener') +class MyListener extends LitElement { + @property() name = ''; + protected render() { + return html` +

+

Login: ${this.name}

`; + } + private _loginListener(e: CustomEvent) { + this.name = e.detail.name; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/dispatch/project.json b/packages/lit-dev-content/samples/v3-docs/components/events/dispatch/project.json new file mode 100644 index 000000000..ed733e91d --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/dispatch/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-dispatcher.ts": {}, + "my-listener.ts": {}, + "index.html": {} + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/host/index.html b/packages/lit-dev-content/samples/v3-docs/components/events/host/index.html new file mode 100644 index 000000000..9a1b15c74 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/host/index.html @@ -0,0 +1,3 @@ + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/host/my-element.ts b/packages/lit-dev-content/samples/v3-docs/components/events/host/my-element.ts new file mode 100644 index 000000000..ee0bb9430 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/host/my-element.ts @@ -0,0 +1,25 @@ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; +@customElement('my-element') +class MyElement extends LitElement { + @property() hostName = ''; + @property() shadowName = ''; + constructor() { + super(); + this.addEventListener('click', + (e: Event) => this.hostName = (e.target as Element).localName); + } + protected createRenderRoot() { + const root = super.createRenderRoot(); + root.addEventListener('click', + (e: Event) => this.shadowName = (e.target as Element).localName); + return root; + } + protected render() { + return html` +

+

Component target: ${this.hostName}

+

Shadow target: ${this.shadowName}

+ `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/host/project.json b/packages/lit-dev-content/samples/v3-docs/components/events/host/project.json new file mode 100644 index 000000000..875a71aaf --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/host/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-element.ts": {}, + "index.html": {} + }, + "previewHeight": "120px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/list/index.html b/packages/lit-dev-content/samples/v3-docs/components/events/list/index.html new file mode 100644 index 000000000..9a1b15c74 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/list/index.html @@ -0,0 +1,3 @@ + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/list/my-element.ts b/packages/lit-dev-content/samples/v3-docs/components/events/list/my-element.ts new file mode 100644 index 000000000..39ea50868 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/list/my-element.ts @@ -0,0 +1,25 @@ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; +@customElement('my-element') +class MyElement extends LitElement { + @property() clicked = ''; + @property() focused = ''; + data = [1, 2, 3]; + protected render() { + return html` +
+ ${this.data.map(i => html` + + `)} +
+

Clicked: ${this.clicked}

+

Focused: ${this.focused}

+ `; + } + private _clickHandler(e: Event) { + this.clicked = (e.target as Element).getAttribute('key')!; + } + private _focusHandler(e: Event) { + this.focused = (e.target as Element).textContent!; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/list/project.json b/packages/lit-dev-content/samples/v3-docs/components/events/list/project.json new file mode 100644 index 000000000..875a71aaf --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/list/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-element.ts": {}, + "index.html": {} + }, + "previewHeight": "120px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/update/index.html b/packages/lit-dev-content/samples/v3-docs/components/events/update/index.html new file mode 100644 index 000000000..0a600daea --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/update/index.html @@ -0,0 +1,6 @@ + + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/update/my-dispatcher.ts b/packages/lit-dev-content/samples/v3-docs/components/events/update/my-dispatcher.ts new file mode 100644 index 000000000..c4d722319 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/update/my-dispatcher.ts @@ -0,0 +1,19 @@ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; + +@customElement('my-dispatcher') +class MyDispatcher extends LitElement { + @property({type: Boolean}) open = true; + protected render() { + return html` +

+

Content!

+ `; + } + private async _notify() { + this.open = !this.open; + await this.updateComplete; + const name = this.open ? 'opened' : 'closed'; + this.dispatchEvent(new CustomEvent(name, {bubbles: true, composed: true})); + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/update/my-listener.ts b/packages/lit-dev-content/samples/v3-docs/components/events/update/my-listener.ts new file mode 100644 index 000000000..ecf396e38 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/update/my-listener.ts @@ -0,0 +1,20 @@ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; + +@customElement('my-listener') +class MyListener extends LitElement { + @property({type: Number}) height: number|null = null; + protected render() { + return html` +

+

Height: ${this.height}px

`; + } + private _listener() { + this.height = null; + } + protected updated() { + if (this.height === null) { + requestAnimationFrame(() => this.height = this.getBoundingClientRect().height); + } + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/events/update/project.json b/packages/lit-dev-content/samples/v3-docs/components/events/update/project.json new file mode 100644 index 000000000..ed733e91d --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/events/update/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-dispatcher.ts": {}, + "my-listener.ts": {}, + "index.html": {} + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/overview/simple-greeting/index.html b/packages/lit-dev-content/samples/v3-docs/components/overview/simple-greeting/index.html new file mode 100644 index 000000000..41814caa5 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/overview/simple-greeting/index.html @@ -0,0 +1,14 @@ + + + + + + + + + Lit code sample + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/overview/simple-greeting/project.json b/packages/lit-dev-content/samples/v3-docs/components/overview/simple-greeting/project.json new file mode 100644 index 000000000..3754a884e --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/overview/simple-greeting/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "simple-greeting.ts": {}, + "index.html": {} + }, + "previewHeight": "80px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/overview/simple-greeting/simple-greeting.ts b/packages/lit-dev-content/samples/v3-docs/components/overview/simple-greeting/simple-greeting.ts new file mode 100644 index 000000000..c610c1915 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/overview/simple-greeting/simple-greeting.ts @@ -0,0 +1,21 @@ +import {LitElement, css, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; + +@customElement('simple-greeting') +export class SimpleGreeting extends LitElement { + // Define scoped styles right with your component, in plain CSS + static styles = css` + :host { + color: blue; + } + `; + + // Declare reactive properties + @property() + name?: string = 'World'; + + // Render the UI as a function of component state + render() { + return html`

Hello, ${this.name}!

`; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/shadowdom/namedslots/index.html b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/namedslots/index.html new file mode 100644 index 000000000..9bf7f3473 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/namedslots/index.html @@ -0,0 +1,13 @@ + + + +

Include me in slot "two".

+
+ +
+ + +

Include me in slot "one".

+

This one will not render at all.

+

No default slot, so this one won't render either.

+
diff --git a/packages/lit-dev-content/samples/v3-docs/components/shadowdom/namedslots/my-element.ts b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/namedslots/my-element.ts new file mode 100644 index 000000000..d77faf8c1 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/namedslots/my-element.ts @@ -0,0 +1,14 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; + +@customElement('my-element') +export class MyElement extends LitElement { + protected render() { + return html` +

+ + +

+ `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/shadowdom/namedslots/project.json b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/namedslots/project.json new file mode 100644 index 000000000..795d2cad9 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/namedslots/project.json @@ -0,0 +1,7 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "index.html": {}, + "my-element.ts": {} + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/shadowdom/renderroot/default-root.ts b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/renderroot/default-root.ts new file mode 100644 index 000000000..3d3210226 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/renderroot/default-root.ts @@ -0,0 +1,11 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; + +@customElement('default-root') +export class DefaultRoot extends LitElement { + protected render() { + return html` +

By default template renders into shadow DOM.

+ `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/shadowdom/renderroot/index.html b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/renderroot/index.html new file mode 100644 index 000000000..68192b58c --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/renderroot/index.html @@ -0,0 +1,19 @@ + + + + + + + + lit-element code sample + + + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/shadowdom/renderroot/light-dom.ts b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/renderroot/light-dom.ts new file mode 100644 index 000000000..33910ad28 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/renderroot/light-dom.ts @@ -0,0 +1,14 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; + +@customElement('light-dom') +export class LightDom extends LitElement { + protected render() { + return html` +

Custom rendering without shadow DOM (note, styling leaks in).

+ `; + } + protected createRenderRoot() { + return this; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/shadowdom/renderroot/project.json b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/renderroot/project.json new file mode 100644 index 000000000..823281af1 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/renderroot/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "default-root.ts": {}, + "light-dom.ts": {}, + "index.html": {} + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/shadowdom/slots/index.html b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/slots/index.html new file mode 100644 index 000000000..c4385b0f0 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/slots/index.html @@ -0,0 +1,13 @@ + + + +

Render me in a slot

+
+ +
+ + +

Render me in a slot

+

Me too

+

Me three

+
diff --git a/packages/lit-dev-content/samples/v3-docs/components/shadowdom/slots/my-element.ts b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/slots/my-element.ts new file mode 100644 index 000000000..d4adcbb9c --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/slots/my-element.ts @@ -0,0 +1,13 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; + +@customElement('my-element') +export class MyElement extends LitElement { + protected render() { + return html` +

+ +

+ `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/shadowdom/slots/project.json b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/slots/project.json new file mode 100644 index 000000000..ae770b022 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/shadowdom/slots/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "index.html": {}, + "my-element.ts": {} + }, + "previewHeight": "165px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/basic/index.html b/packages/lit-dev-content/samples/v3-docs/components/style/basic/index.html new file mode 100644 index 000000000..9a1b15c74 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/basic/index.html @@ -0,0 +1,3 @@ + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/basic/my-element.ts b/packages/lit-dev-content/samples/v3-docs/components/style/basic/my-element.ts new file mode 100644 index 000000000..8e77f7003 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/basic/my-element.ts @@ -0,0 +1,14 @@ +import {LitElement, html, css} from 'lit'; +import {customElement} from 'lit/decorators.js'; + +@customElement('my-element') +export class MyElement extends LitElement { + static styles = css` + p { + color: green; + } + `; + protected render() { + return html`

I am green!

`; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/basic/project.json b/packages/lit-dev-content/samples/v3-docs/components/style/basic/project.json new file mode 100644 index 000000000..d492ed013 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/basic/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-element.ts": {}, + "index.html": {} + }, + "previewHeight": "80px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/host/index.html b/packages/lit-dev-content/samples/v3-docs/components/style/host/index.html new file mode 100644 index 000000000..66dded812 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/host/index.html @@ -0,0 +1,4 @@ + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/host/my-element.ts b/packages/lit-dev-content/samples/v3-docs/components/style/host/my-element.ts new file mode 100644 index 000000000..5315173f9 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/host/my-element.ts @@ -0,0 +1,20 @@ +import {LitElement, html, css} from 'lit'; +import {customElement} from 'lit/decorators/custom-element.js'; + +@customElement('my-element') +export class MyElement extends LitElement { + static styles = css` + :host { + display: block; + background-color: lightgray; + padding: 8px; + } + :host(.blue) { + background-color: aliceblue; + color: darkgreen; + } + `; + protected render() { + return html`Hello World`; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/host/project.json b/packages/lit-dev-content/samples/v3-docs/components/style/host/project.json new file mode 100644 index 000000000..66be4d40e --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/host/project.json @@ -0,0 +1,7 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-element.ts": {}, + "index.html": {} + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/maps/index.html b/packages/lit-dev-content/samples/v3-docs/components/style/maps/index.html new file mode 100644 index 000000000..e71dc1ed0 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/maps/index.html @@ -0,0 +1,3 @@ + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/maps/my-element.ts b/packages/lit-dev-content/samples/v3-docs/components/style/maps/my-element.ts new file mode 100644 index 000000000..95edb6d42 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/maps/my-element.ts @@ -0,0 +1,23 @@ +import {LitElement, html, css} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; +import {classMap} from 'lit/directives/class-map.js'; +import {styleMap} from 'lit/directives/style-map.js'; + +@customElement('my-element') +export class MyElement extends LitElement { + static styles = css` + .someclass { border: 1px solid red; padding: 4px; } + .anotherclass { background-color: navy; } + `; + @property() + classes = { someclass: true, anotherclass: true }; + @property() + styles = { color: 'lightgreen', fontFamily: 'Roboto' }; + protected render() { + return html` +
+ Some content +
+ `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/maps/project.json b/packages/lit-dev-content/samples/v3-docs/components/style/maps/project.json new file mode 100644 index 000000000..d492ed013 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/maps/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-element.ts": {}, + "index.html": {} + }, + "previewHeight": "80px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/slottedselector/index.html b/packages/lit-dev-content/samples/v3-docs/components/style/slottedselector/index.html new file mode 100644 index 000000000..5a0320cfe --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/slottedselector/index.html @@ -0,0 +1,6 @@ + + + +

Slotted paragraph

+ Slotted span inside a div +
diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/slottedselector/my-element.ts b/packages/lit-dev-content/samples/v3-docs/components/style/slottedselector/my-element.ts new file mode 100644 index 000000000..69c4ccd59 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/slottedselector/my-element.ts @@ -0,0 +1,17 @@ +import {LitElement, html, css} from 'lit'; +import {customElement} from 'lit/decorators.js'; + +@customElement('my-element') +export class MyElement extends LitElement { + static styles = css` + ::slotted(*) { font-family: Roboto; } + ::slotted(p) { color: blue; } + div ::slotted(*) { color: red; } + `; + protected render() { + return html` + +
+ `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/slottedselector/project.json b/packages/lit-dev-content/samples/v3-docs/components/style/slottedselector/project.json new file mode 100644 index 000000000..816404c3d --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/slottedselector/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-element.ts": {}, + "index.html": {} + }, + "previewHeight": "100px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/superstyles/index.html b/packages/lit-dev-content/samples/v3-docs/components/style/superstyles/index.html new file mode 100644 index 000000000..9a1b15c74 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/superstyles/index.html @@ -0,0 +1,3 @@ + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/superstyles/my-element.ts b/packages/lit-dev-content/samples/v3-docs/components/style/superstyles/my-element.ts new file mode 100644 index 000000000..2a2551aa7 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/superstyles/my-element.ts @@ -0,0 +1,13 @@ +import {css} from 'lit'; +import {customElement} from 'lit/decorators.js'; +import {SuperElement} from './super-element.js'; + +@customElement('my-element') +export class MyElement extends SuperElement { + static styles = [ + SuperElement.styles, + css`div { + color: red; + }` + ]; +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/superstyles/project.json b/packages/lit-dev-content/samples/v3-docs/components/style/superstyles/project.json new file mode 100644 index 000000000..d13fee1bd --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/superstyles/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-element.ts": {}, + "super-element.ts": {}, + "index.html": {} + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/superstyles/super-element.ts b/packages/lit-dev-content/samples/v3-docs/components/style/superstyles/super-element.ts new file mode 100644 index 000000000..9e2a75b98 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/superstyles/super-element.ts @@ -0,0 +1,17 @@ +import {LitElement, html, css, CSSResultGroup} from 'lit'; +import {customElement} from 'lit/decorators.js'; + +@customElement('super-element') +export class SuperElement extends LitElement { + static styles = css` + div { + border: 1px solid gray; + padding: 8px; + } + ` as CSSResultGroup; + protected render() { + return html` +
Content
+ `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/theming/index.html b/packages/lit-dev-content/samples/v3-docs/components/style/theming/index.html new file mode 100644 index 000000000..d7b1d76cb --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/theming/index.html @@ -0,0 +1,20 @@ + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/theming/my-element.ts b/packages/lit-dev-content/samples/v3-docs/components/style/theming/my-element.ts new file mode 100644 index 000000000..3328dbe7c --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/theming/my-element.ts @@ -0,0 +1,19 @@ +import {LitElement, html, css} from 'lit'; +import {customElement} from 'lit/decorators.js'; + +@customElement('my-element') +export class MyElement extends LitElement { + static styles = css` + :host { + color: var(--my-element-text-color, black); + background: var(--my-element-background-color, white); + font-family: var(--my-element-font-family, Roboto); + display: block; + padding: 8px; + margin: 8px; + } + `; + protected render() { + return html`
Hello World
`; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/components/style/theming/project.json b/packages/lit-dev-content/samples/v3-docs/components/style/theming/project.json new file mode 100644 index 000000000..816404c3d --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/components/style/theming/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-element.ts": {}, + "index.html": {} + }, + "previewHeight": "100px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/composition/mediator-pattern/index.html b/packages/lit-dev-content/samples/v3-docs/composition/mediator-pattern/index.html new file mode 100644 index 000000000..c8ac8f56d --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/composition/mediator-pattern/index.html @@ -0,0 +1,14 @@ + + + + + + + + + Lit code sample + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/composition/mediator-pattern/mediator-element.ts b/packages/lit-dev-content/samples/v3-docs/composition/mediator-pattern/mediator-element.ts new file mode 100644 index 000000000..5bb0576cd --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/composition/mediator-pattern/mediator-element.ts @@ -0,0 +1,37 @@ +import {LitElement, html, css} from 'lit'; +import {customElement, property, state, query} from 'lit/decorators.js'; + +@customElement('mediator-element') +export class MediatorElement extends LitElement { + static styles = css` + :host { + font-family: sans-serif; + } + `; + + @property() + name = 'anonymous'; + @state() + _submitEnabled = false; + @query('input') + _input!: HTMLInputElement; + + _inputChanged(e: Event) { + this._submitEnabled = !!(e.target as HTMLInputElement).value; + } + + _updateName() { + this.name = this._input.value; + this._input.value = ''; + this._submitEnabled = false; + } + + render() { + return html`

Nickname: ${this.name}

+ + `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/composition/mediator-pattern/project.json b/packages/lit-dev-content/samples/v3-docs/composition/mediator-pattern/project.json new file mode 100644 index 000000000..75d1d4aa1 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/composition/mediator-pattern/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "mediator-element.ts": {}, + "index.html": {} + }, + "previewHeight": "120px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/controllers/mouse/index.html b/packages/lit-dev-content/samples/v3-docs/controllers/mouse/index.html new file mode 100644 index 000000000..c9feebd2d --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/controllers/mouse/index.html @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/controllers/mouse/mouse-controller.ts b/packages/lit-dev-content/samples/v3-docs/controllers/mouse/mouse-controller.ts new file mode 100644 index 000000000..4c91006dd --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/controllers/mouse/mouse-controller.ts @@ -0,0 +1,24 @@ +import {ReactiveControllerHost} from 'lit'; + +export class MouseController { + private host: ReactiveControllerHost; + pos = {x: 0, y: 0}; + + _onMouseMove = ({clientX, clientY}: MouseEvent) => { + this.pos = {x: clientX, y: clientY}; + this.host.requestUpdate(); + }; + + constructor(host: ReactiveControllerHost) { + this.host = host; + host.addController(this); + } + + hostConnected() { + window.addEventListener('mousemove', this._onMouseMove); + } + + hostDisconnected() { + window.removeEventListener('mousemove', this._onMouseMove); + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/controllers/mouse/my-element.ts b/packages/lit-dev-content/samples/v3-docs/controllers/mouse/my-element.ts new file mode 100644 index 000000000..e2a3c42f9 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/controllers/mouse/my-element.ts @@ -0,0 +1,18 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; +import {MouseController} from './mouse-controller.js'; + +@customElement('my-element') +class MyElement extends LitElement { + private mouse = new MouseController(this); + + render() { + return html` +

The mouse is at:

+
+        x: ${this.mouse.pos.x as number}
+        y: ${this.mouse.pos.y as number}
+      
+ `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/controllers/mouse/project.json b/packages/lit-dev-content/samples/v3-docs/controllers/mouse/project.json new file mode 100644 index 000000000..4b8291d7a --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/controllers/mouse/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-element.ts": {}, + "mouse-controller.ts": {}, + "index.html": {} + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/controllers/names/index.html b/packages/lit-dev-content/samples/v3-docs/controllers/names/index.html new file mode 100644 index 000000000..c9feebd2d --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/controllers/names/index.html @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/controllers/names/my-element.ts b/packages/lit-dev-content/samples/v3-docs/controllers/names/my-element.ts new file mode 100644 index 000000000..2c9d29ba7 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/controllers/names/my-element.ts @@ -0,0 +1,33 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; +import {NamesController} from './names-controller.js'; +import * as Names from './names-api.js'; + +@customElement('my-element') +export class MyElement extends LitElement { + private names = new NamesController(this); + + render() { + return html` +

Names List

+ Kind: + ${this.names.render({ + complete: (result: Names.Result) => html` +

List of ${this.names.kind}

+ + `, + initial: () => html`

Select a kind...

`, + pending: () => html`

Loading ${this.names.kind}...

`, + error: (e: any) => html`

${e}

` + })}`; + } + + private _kindChange(e: Event) { + this.names.kind = (e.target as HTMLSelectElement).value as Names.Kind; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/controllers/names/names-api.ts b/packages/lit-dev-content/samples/v3-docs/controllers/names/names-api.ts new file mode 100644 index 000000000..b0b4ecac0 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/controllers/names/names-api.ts @@ -0,0 +1,14 @@ +export type Result = Array<{name: string}>; +export type Kind = typeof kinds[number]; + +export const baseUrl = 'https://swapi.dev/api/'; + +export const kinds = [ + '', + 'people', + 'starships', + 'species', + 'planets', + // Inserted to demo an error state. + 'error' +] as const; diff --git a/packages/lit-dev-content/samples/v3-docs/controllers/names/names-controller.ts b/packages/lit-dev-content/samples/v3-docs/controllers/names/names-controller.ts new file mode 100644 index 000000000..59061c868 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/controllers/names/names-controller.ts @@ -0,0 +1,39 @@ +import {ReactiveControllerHost} from 'lit'; +import {initialState, StatusRenderer, Task} from '@lit-labs/task'; +import * as Names from './names-api.js'; + +export class NamesController { + host: ReactiveControllerHost; + value?: string[]; + readonly kinds = Names.kinds; + private task!: Task; + private _kind: Names.Kind = ''; + + constructor(host: ReactiveControllerHost) { + this.host = host; + this.task = new Task<[Names.Kind], Names.Result>(host, + async ([kind]: [Names.Kind]) => { + if (!kind?.trim()) { + return initialState; + } + try { + const response = await fetch(`${Names.baseUrl}${kind}`); + const data = await response.json(); + return data.results as Names.Result; + } catch { + throw new Error(`Failed to fetch "${kind}"`); + } + }, () => [this.kind] + ); + } + + set kind(value: Names.Kind) { + this._kind = value; + this.host.requestUpdate(); + } + get kind() { return this._kind; } + + render(renderFunctions: StatusRenderer) { + return this.task.render(renderFunctions); + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/controllers/names/project.json b/packages/lit-dev-content/samples/v3-docs/controllers/names/project.json new file mode 100644 index 000000000..e0665028d --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/controllers/names/project.json @@ -0,0 +1,10 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "names-controller.ts": {}, + "my-element.ts": {}, + "names-api.ts": {}, + "index.html": {} + }, + "previewHeight": "150px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/controllers/overview/clock-controller.ts b/packages/lit-dev-content/samples/v3-docs/controllers/overview/clock-controller.ts new file mode 100644 index 000000000..54a970b65 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/controllers/overview/clock-controller.ts @@ -0,0 +1,27 @@ +import {ReactiveController, ReactiveControllerHost} from 'lit'; + +export class ClockController implements ReactiveController { + host: ReactiveControllerHost; + + value = new Date(); + timeout: number; + private _timerID?: number; + + constructor(host: ReactiveControllerHost, timeout = 1000) { + (this.host = host).addController(this); + this.timeout = timeout; + } + hostConnected() { + // Start a timer when the host is connected + this._timerID = setInterval(() => { + this.value = new Date(); + // Update the host with new value + this.host.requestUpdate(); + }, this.timeout); + } + hostDisconnected() { + // Clear the timer when the host is disconnected + clearInterval(this._timerID); + this._timerID = undefined; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/controllers/overview/index.html b/packages/lit-dev-content/samples/v3-docs/controllers/overview/index.html new file mode 100644 index 000000000..c9feebd2d --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/controllers/overview/index.html @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/controllers/overview/my-element.ts b/packages/lit-dev-content/samples/v3-docs/controllers/overview/my-element.ts new file mode 100644 index 000000000..9286733c4 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/controllers/overview/my-element.ts @@ -0,0 +1,19 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; +import {ClockController} from './clock-controller.js'; + +@customElement('my-element') +class MyElement extends LitElement { + // Create the controller and store it + private clock = new ClockController(this, 100); + + // Use the controller in render() + render() { + const formattedTime = timeFormat.format(this.clock.value); + return html`Current time: ${formattedTime}`; + } +} + +const timeFormat = new Intl.DateTimeFormat('en-US', { + hour: 'numeric', minute: 'numeric', second: 'numeric', +}); diff --git a/packages/lit-dev-content/samples/v3-docs/controllers/overview/project.json b/packages/lit-dev-content/samples/v3-docs/controllers/overview/project.json new file mode 100644 index 000000000..cbe2222b4 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/controllers/overview/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "clock-controller.ts": {}, + "my-element.ts": {}, + "index.html": {} + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/index.html b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/index.html new file mode 100644 index 000000000..2e89f4951 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/index.html @@ -0,0 +1,22 @@ + + + lit-localize runtime example + + + + + + +
+ diff --git a/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/index.ts b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/index.ts new file mode 100644 index 000000000..6e9551010 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/index.ts @@ -0,0 +1,50 @@ +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ + +import {setLocaleFromUrl} from './localization.js'; +import {LOCALE_STATUS_EVENT} from '@lit/localize'; +import {html, render} from 'lit'; +import './locale-picker.js'; +import './x-greeter.js'; +import '@material/mwc-circular-progress'; + +const main = document.querySelector('main')!; +const spinner = document.querySelector('#spinner')!; + +// Update the locale to match the URL when the user moves backwards or forwards +// through history. +window.addEventListener('popstate', () => { + setLocaleFromUrl(); +}); + +// Display a spinner whenever a new locale is loading. +window.addEventListener(LOCALE_STATUS_EVENT, ({detail}) => { + if (detail.status === 'loading') { + console.log(`Loading new locale: ${detail.loadingLocale}`); + spinner.removeAttribute('hidden'); + } else if (detail.status === 'ready') { + console.log(`Loaded new locale: ${detail.readyLocale}`); + spinner.setAttribute('hidden', ''); + } else if (detail.status === 'error') { + console.error( + `Error loading locale ${detail.errorLocale}: ` + detail.errorMessage + ); + spinner.setAttribute('hidden', ''); + } +}); + +(async () => { + try { + // Defer first render until our initial locale is ready, to avoid a flash of + // the wrong locale. + await setLocaleFromUrl(); + } catch (e) { + // Either the URL locale code was invalid, or there was a problem loading + // the locale module. + console.error(`Error loading locale: ${(e as Error).message}`); + } + render(html` `, main); +})(); diff --git a/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/locale-codes.ts b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/locale-codes.ts new file mode 100644 index 000000000..21a61a263 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/locale-codes.ts @@ -0,0 +1,18 @@ +// Do not modify this file by hand! +// Re-generate this file by running lit-localize. + +/** + * The locale code that templates in this source code are written in. + */ +export const sourceLocale = `en`; + +/** + * The other locale codes that this application is localized into. Sorted + * lexicographically. + */ +export const targetLocales = [`es-419`, `zh_CN`] as const; + +/** + * All valid project locale codes. Sorted lexicographically. + */ +export const allLocales = [`en`, `es-419`, `zh_CN`] as const; diff --git a/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/locale-picker.ts b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/locale-picker.ts new file mode 100644 index 000000000..59efb6d5a --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/locale-picker.ts @@ -0,0 +1,49 @@ +/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */ + +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; +import {getLocale, setLocaleFromUrl} from './localization.js'; +import {allLocales} from './locale-codes.js'; +import {localized} from '@lit/localize'; + +const localeNames: { + [L in typeof allLocales[number]]: string; +} = { + en: 'English', + 'es-419': 'Español (Latinoamérica)‎', + zh_CN: '中文 (简体)', +}; + +// Note we use updateWhenLocaleChanges here so that we're always up to date with +// the active locale (the result of getLocale()) when the locale changes via a +// history navigation. +@localized() +@customElement('locale-picker') +export class LocalePicker extends LitElement { + render() { + return html` + + `; + } + + localeChanged(event: Event) { + const newLocale = (event.target as HTMLSelectElement).value; + if (newLocale !== getLocale()) { + const url = new URL(window.location.href); + url.searchParams.set('locale', newLocale); + window.history.pushState(null, '', url.toString()); + setLocaleFromUrl(); + } + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/locales/es-419.ts b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/locales/es-419.ts new file mode 100644 index 000000000..bb517c82e --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/locales/es-419.ts @@ -0,0 +1,11 @@ +// Do not modify this file by hand! +// Re-generate this file by running lit-localize + +import {html} from 'lit'; + +/* eslint-disable no-irregular-whitespace */ +/* eslint-disable @typescript-eslint/no-explicit-any */ + +export const templates = { + h3c44aff2d5f5ef6b: html`Hola Mundo!`, +}; diff --git a/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/locales/zh_CN.ts b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/locales/zh_CN.ts new file mode 100644 index 000000000..2d68abe5d --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/locales/zh_CN.ts @@ -0,0 +1,11 @@ +// Do not modify this file by hand! +// Re-generate this file by running lit-localize + +import {html} from 'lit'; + +/* eslint-disable no-irregular-whitespace */ +/* eslint-disable @typescript-eslint/no-explicit-any */ + +export const templates = { + h3c44aff2d5f5ef6b: html`你好, 世界!`, +}; diff --git a/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/localization.ts b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/localization.ts new file mode 100644 index 000000000..dda058ec9 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/localization.ts @@ -0,0 +1,14 @@ +import {configureLocalization} from '@lit/localize'; +import {sourceLocale, targetLocales} from './locale-codes.js'; + +export const {getLocale, setLocale} = configureLocalization({ + sourceLocale, + targetLocales, + loadLocale: (locale: string) => import(`./locales/${locale}.js`), +}); + +export const setLocaleFromUrl = async () => { + const url = new URL(window.location.href); + const locale = url.searchParams.get('locale') || sourceLocale; + await setLocale(locale); +}; diff --git a/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/project.json b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/project.json new file mode 100644 index 000000000..5d91b9395 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/project.json @@ -0,0 +1,13 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "x-greeter.ts": {}, + "locale-picker.ts": {}, + "index.ts": {}, + "index.html": {}, + "locales/es-419.ts": {}, + "locales/zh_CN.ts": {}, + "localization.ts": {}, + "locale-codes.ts": {} + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/x-greeter.ts b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/x-greeter.ts new file mode 100644 index 000000000..889d22c44 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/libraries/localization/runtime/x-greeter.ts @@ -0,0 +1,11 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; +import {msg, localized} from '@lit/localize'; + +@localized() +@customElement('x-greeter') +export class XGreeter extends LitElement { + render() { + return html`

${msg(html`Hello World!`)}

`; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/element-one.js b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/element-one.js new file mode 100644 index 000000000..a8b00d7b2 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/element-one.js @@ -0,0 +1,9 @@ +import {LitElement, html} from 'lit'; +import {Highlightable} from './highlightable.js'; + +export class ElementOne extends Highlightable(LitElement) { + render() { + return this.renderHighlight(html`

Simple highlight

`); + } +} +customElements.define('element-one', ElementOne); diff --git a/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/element-one.ts b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/element-one.ts new file mode 100644 index 000000000..94504aa63 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/element-one.ts @@ -0,0 +1,10 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; +import {Highlightable} from './highlightable.js' + +@customElement('element-one') +export class ElementOne extends Highlightable(LitElement) { + render(){ + return this.renderHighlight(html`

Simple highlight

`); + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/element-two.js b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/element-two.js new file mode 100644 index 000000000..8da1e16b3 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/element-two.js @@ -0,0 +1,25 @@ +import {LitElement, html, css} from 'lit'; +import {Highlightable} from './highlightable.js'; + +const HighlightableLitElement = Highlightable(LitElement); + +export class ElementTwo extends HighlightableLitElement { + static styles = [ + HighlightableLitElement.styles || [], + css`:host { display: block; }`, + ]; + render() { + return this.renderHighlight(html` + + `); + } + toggleHighlight(event) { + this.highlight = event.target.checked; + } +} +customElements.define('element-two', ElementTwo); diff --git a/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/element-two.ts b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/element-two.ts new file mode 100644 index 000000000..0e2990047 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/element-two.ts @@ -0,0 +1,26 @@ +import {LitElement, html, css} from 'lit'; +import {customElement} from 'lit/decorators.js'; +import {Highlightable} from './highlightable.js' + +const HighlightableLitElement = Highlightable(LitElement); + +@customElement('element-two') +export class ElementTwo extends HighlightableLitElement { + static styles = [ + HighlightableLitElement.styles || [], + css`:host { display: block; }` + ]; + render(){ + return this.renderHighlight(html` + + `); + } + private toggleHighlight(event: Event) { + this.highlight = (event.target as HTMLInputElement).checked; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/highlightable.js b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/highlightable.js new file mode 100644 index 000000000..fd0fa1497 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/highlightable.js @@ -0,0 +1,32 @@ +/* playground-fold */ +import {css, html} from 'lit'; +import {classMap} from 'lit/directives/class-map.js'; +/* playground-fold-end */ + +export const Highlightable = (superClass) => { + class HighlightableElement extends superClass { + static properties = { + highlight: {type: Boolean}, + }; + // Adds some styles... + static styles = [ + superClass.styles ?? [], + css`.highlight { background: yellow; }`, + ]; + + constructor() { + super(); + // ...a public `highlight` property/attribute... + this.highlight = false; + } + + // ...and a helper render method: + renderHighlight(content) { + return html` +
+ ${content} +
`; + } + } + return HighlightableElement; +}; diff --git a/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/highlightable.ts b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/highlightable.ts new file mode 100644 index 000000000..c649e05e1 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/highlightable.ts @@ -0,0 +1,35 @@ +/* playground-fold */ +import {LitElement, css, html} from 'lit'; +import {classMap} from 'lit/directives/class-map.js'; +import {property} from 'lit/decorators/property.js'; + +type Constructor = new (...args: any[]) => T; + +export declare class HighlightableInterface { + highlight: boolean; + renderHighlight(content: unknown): unknown; +} +/* playground-fold-end */ + +export const Highlightable = + >(superClass: T) => { + class HighlightableElement extends superClass { + // Adds some styles... + static styles = [ + (superClass as unknown as typeof LitElement).styles ?? [], + css`.highlight { background: yellow; }` + ]; + + // ...a public `highlight` property/attribute... + @property({type: Boolean}) highlight = false; + + // ...and a helper render method: + renderHighlight(content: unknown) { + return html` +
+ ${content} +
`; + } + } + return HighlightableElement as Constructor & T; + }; diff --git a/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/index.html b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/index.html new file mode 100644 index 000000000..6416a4125 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/index.html @@ -0,0 +1,14 @@ + + + + + + + + lit-element code sample + + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/project.json b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/project.json new file mode 100644 index 000000000..063cc1c37 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/mixins/highlightable/project.json @@ -0,0 +1,9 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "highlightable.ts": {}, + "element-one.ts": {}, + "element-two.ts": {}, + "index.html": {} + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/compose/index.html b/packages/lit-dev-content/samples/v3-docs/templates/compose/index.html new file mode 100644 index 000000000..32dfee477 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/compose/index.html @@ -0,0 +1,12 @@ + + + + + + + lit-element code sample + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/templates/compose/my-page.ts b/packages/lit-dev-content/samples/v3-docs/templates/compose/my-page.ts new file mode 100644 index 000000000..cb1278529 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/compose/my-page.ts @@ -0,0 +1,33 @@ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; + + +@customElement('my-page') +class MyPage extends LitElement { + + @property({attribute: false}) + article = { + title: 'My Nifty Article', + text: 'Some witty text.', + }; + + headerTemplate() { + return html`
${this.article.title}
`; + } + + articleTemplate() { + return html`
${this.article.text}
`; + } + + footerTemplate() { + return html`
Your footer here.
`; + } + + render() { + return html` + ${this.headerTemplate()} + ${this.articleTemplate()} + ${this.footerTemplate()} + `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/compose/project.json b/packages/lit-dev-content/samples/v3-docs/templates/compose/project.json new file mode 100644 index 000000000..d1d3014c4 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/compose/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-page.ts": {}, + "index.html": {} + }, + "previewHeight": "90px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/composeimports/index.html b/packages/lit-dev-content/samples/v3-docs/templates/composeimports/index.html new file mode 100644 index 000000000..32dfee477 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/composeimports/index.html @@ -0,0 +1,12 @@ + + + + + + + lit-element code sample + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/templates/composeimports/my-article.ts b/packages/lit-dev-content/samples/v3-docs/templates/composeimports/my-article.ts new file mode 100644 index 000000000..df8cc1e6b --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/composeimports/my-article.ts @@ -0,0 +1,11 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; + +@customElement('my-article') +class MyArticle extends LitElement { + render() { + return html` +
article
+ `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/composeimports/my-footer.ts b/packages/lit-dev-content/samples/v3-docs/templates/composeimports/my-footer.ts new file mode 100644 index 000000000..5a7bb688e --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/composeimports/my-footer.ts @@ -0,0 +1,11 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; + +@customElement('my-footer') +class MyFooter extends LitElement { + render() { + return html` +
footer
+ `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/composeimports/my-header.ts b/packages/lit-dev-content/samples/v3-docs/templates/composeimports/my-header.ts new file mode 100644 index 000000000..29a4af465 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/composeimports/my-header.ts @@ -0,0 +1,11 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; + +@customElement('my-header') +class MyHeader extends LitElement { + render() { + return html` +
header
+ `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/composeimports/my-page.ts b/packages/lit-dev-content/samples/v3-docs/templates/composeimports/my-page.ts new file mode 100644 index 000000000..7ce747f30 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/composeimports/my-page.ts @@ -0,0 +1,17 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; + +import './my-header.js'; +import './my-article.js'; +import './my-footer.js'; + +@customElement('my-page') +class MyPage extends LitElement { + render() { + return html` + + + + `; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/composeimports/project.json b/packages/lit-dev-content/samples/v3-docs/templates/composeimports/project.json new file mode 100644 index 000000000..b15e246dc --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/composeimports/project.json @@ -0,0 +1,10 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-page.ts": {}, + "my-header.ts": {}, + "my-article.ts": {}, + "my-footer.ts": {}, + "index.html": {} + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/define/index.html b/packages/lit-dev-content/samples/v3-docs/templates/define/index.html new file mode 100644 index 000000000..241701161 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/define/index.html @@ -0,0 +1,12 @@ + + + + + + + Lit code sample + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/templates/define/my-element.ts b/packages/lit-dev-content/samples/v3-docs/templates/define/my-element.ts new file mode 100644 index 000000000..d4c96c980 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/define/my-element.ts @@ -0,0 +1,10 @@ +import {LitElement, html} from 'lit'; +import {customElement} from 'lit/decorators.js'; + +@customElement('my-element') +class MyElement extends LitElement { + + render(){ + return html`

Hello from my template.

`; + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/define/project.json b/packages/lit-dev-content/samples/v3-docs/templates/define/project.json new file mode 100644 index 000000000..d492ed013 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/define/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-element.ts": {}, + "index.html": {} + }, + "previewHeight": "80px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/design/index.html b/packages/lit-dev-content/samples/v3-docs/templates/design/index.html new file mode 100644 index 000000000..cb310edd0 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/design/index.html @@ -0,0 +1,12 @@ + + + + + + + lit-element code sample + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/templates/design/project.json b/packages/lit-dev-content/samples/v3-docs/templates/design/project.json new file mode 100644 index 000000000..334d5d49e --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/design/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "update-properties.ts": {}, + "index.html": {} + }, + "previewHeight": "80px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/design/update-properties.ts b/packages/lit-dev-content/samples/v3-docs/templates/design/update-properties.ts new file mode 100644 index 000000000..b0b6a2bad --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/design/update-properties.ts @@ -0,0 +1,28 @@ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; + +@customElement('update-properties') +class UpdateProperties extends LitElement { + + @property() + message: string = 'Loading...'; + + constructor() { + super(); + this.loadStuff().then((content) => this.message = content); + } + + render() { + return html` +

${this.message}

+ `; + } + + loadStuff() { + return new Promise((resolve) => { + setTimeout(() => { + resolve('Content loaded.'); + }, 3000); + }); + } +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/expressions/index.html b/packages/lit-dev-content/samples/v3-docs/templates/expressions/index.html new file mode 100644 index 000000000..9a1b15c74 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/expressions/index.html @@ -0,0 +1,3 @@ + + + diff --git a/packages/lit-dev-content/samples/v3-docs/templates/expressions/my-element.ts b/packages/lit-dev-content/samples/v3-docs/templates/expressions/my-element.ts new file mode 100644 index 000000000..20651bbdf --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/expressions/my-element.ts @@ -0,0 +1,22 @@ +/* playground-fold */ +import {LitElement, html} from 'lit'; +import {property, customElement} from 'lit/decorators.js'; + +@customElement('my-element') +class MyElement extends LitElement { + @property() greeting = `Hiya, let's get some stuff done...`; + @property({type: Array}) todos = ['sleep!', 'eat', 'work', 'exercise']; + @property({type: Boolean}) show = false; + /* playground-fold-end */ + + render() { + return html` +

+ ${this.greeting} + +

+ ${this.show ? html` +
    ${this.todos.map(i => html`
  • ${i}
  • `)}
+ ` : ''}`; + }/* playground-fold */ +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/expressions/project.json b/packages/lit-dev-content/samples/v3-docs/templates/expressions/project.json new file mode 100644 index 000000000..be1f70184 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/expressions/project.json @@ -0,0 +1,8 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-element.ts": {}, + "index.html": {} + }, + "previewHeight": "160px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/lists-arrays/index.html b/packages/lit-dev-content/samples/v3-docs/templates/lists-arrays/index.html new file mode 100644 index 000000000..fe1517255 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/lists-arrays/index.html @@ -0,0 +1,7 @@ + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/templates/lists-arrays/my-element.js b/packages/lit-dev-content/samples/v3-docs/templates/lists-arrays/my-element.js new file mode 100644 index 000000000..fb56fe7af --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/lists-arrays/my-element.js @@ -0,0 +1,23 @@ +/* playground-fold */ +import {LitElement, html} from 'lit'; + +class MyElement extends LitElement { +/* playground-fold-end */ + +static properties = { + colors: {}, +}; + +constructor() { + super(); + this.colors = ['red', 'green', 'blue']; +} + +render() { + return html`

Colors: ${this.colors}

`; +} +/* playground-fold */ + +} +customElements.define('my-element', MyElement); +/* playground-fold-end */ diff --git a/packages/lit-dev-content/samples/v3-docs/templates/lists-arrays/my-element.ts b/packages/lit-dev-content/samples/v3-docs/templates/lists-arrays/my-element.ts new file mode 100644 index 000000000..e90fffa67 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/lists-arrays/my-element.ts @@ -0,0 +1,17 @@ +/* playground-fold */ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; + +@customElement('my-element') +class MyElement extends LitElement { +/* playground-fold-end */ + +@property() colors = ['red', 'green', 'blue']; + +render() { + return html`

Colors: ${this.colors}

`; +} +/* playground-fold */ + +} +/* playground-fold-end */ diff --git a/packages/lit-dev-content/samples/v3-docs/templates/lists-arrays/project.json b/packages/lit-dev-content/samples/v3-docs/templates/lists-arrays/project.json new file mode 100644 index 000000000..b7f478d38 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/lists-arrays/project.json @@ -0,0 +1,11 @@ +{ + "extends": "/samples/v3-base.json", + "title": "repeat directive", + "description": "Demo exploring use of the repeat directive.", + "section": "Directives", + "files": { + "my-element.ts": {}, + "index.html": {} + }, + "previewHeight": "50px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/lists-map/index.html b/packages/lit-dev-content/samples/v3-docs/templates/lists-map/index.html new file mode 100644 index 000000000..fe1517255 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/lists-map/index.html @@ -0,0 +1,7 @@ + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/templates/lists-map/my-element.js b/packages/lit-dev-content/samples/v3-docs/templates/lists-map/my-element.js new file mode 100644 index 000000000..18b0fc2f0 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/lists-map/my-element.js @@ -0,0 +1,29 @@ +/* playground-fold */ +import {LitElement, html} from 'lit'; + +class MyElement extends LitElement { +/* playground-fold-end */ + +static properties = { + colors: {}, +}; + +constructor() { + super(); + this.colors = ['red', 'green', 'blue']; +} + +render() { + return html` +
    + ${this.colors.map((color) => + html`
  • ${color}
  • ` + )} +
+ `; +} +/* playground-fold */ + +} +customElements.define('my-element', MyElement); +/* playground-fold-end */ diff --git a/packages/lit-dev-content/samples/v3-docs/templates/lists-map/my-element.ts b/packages/lit-dev-content/samples/v3-docs/templates/lists-map/my-element.ts new file mode 100644 index 000000000..97fb8afa3 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/lists-map/my-element.ts @@ -0,0 +1,23 @@ +/* playground-fold */ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; + +@customElement('my-element') +class MyElement extends LitElement { +/* playground-fold-end */ + +@property() colors = ['red', 'green', 'blue']; + +render() { + return html` +
    + ${this.colors.map((color) => + html`
  • ${color}
  • ` + )} +
+ `; +} +/* playground-fold */ + +} +/* playground-fold-end */ diff --git a/packages/lit-dev-content/samples/v3-docs/templates/lists-map/project.json b/packages/lit-dev-content/samples/v3-docs/templates/lists-map/project.json new file mode 100644 index 000000000..89932a6f2 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/lists-map/project.json @@ -0,0 +1,11 @@ +{ + "extends": "/samples/v3-base.json", + "title": "repeat directive", + "description": "Demo exploring use of the repeat directive.", + "section": "Directives", + "files": { + "my-element.ts": {}, + "index.html": {} + }, + "previewHeight": "85px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/templates/lists-repeat/index.html b/packages/lit-dev-content/samples/v3-docs/templates/lists-repeat/index.html new file mode 100644 index 000000000..fe1517255 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/lists-repeat/index.html @@ -0,0 +1,7 @@ + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/templates/lists-repeat/my-element.ts b/packages/lit-dev-content/samples/v3-docs/templates/lists-repeat/my-element.ts new file mode 100644 index 000000000..9a48488ae --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/lists-repeat/my-element.ts @@ -0,0 +1,42 @@ +/* playground-fold */ +import {LitElement, html} from 'lit'; +import {customElement, property} from 'lit/decorators.js'; +/* playground-fold-end */ + +import {repeat} from 'lit/directives/repeat.js'; +/* playground-fold */ + +@customElement('my-element') +class MyElement extends LitElement { + +private sort = 1; + +@property() employees = [ + {id: 0, givenName: 'Fred', familyName: 'Flintstone'}, + {id: 1, givenName: 'George', familyName: 'Jetson'}, + {id: 2, givenName: 'Barney', familyName: 'Rubble'}, + {id: 3, givenName: 'Cosmo', familyName: 'Spacely'} +]; +/* playground-fold-end */ + +render() { + return html` +
    + ${repeat(this.employees, (employee) => employee.id, (employee, index) => html` +
  • ${index}: ${employee.familyName}, ${employee.givenName}
  • + `)} +
+ + `; +} +/* playground-fold */ + +private toggleSort() { + this.sort *= -1; + this.employees = [...this.employees.sort((a, b) => + this.sort * (a.familyName.localeCompare(b.familyName) || + a.givenName.localeCompare(b.givenName)))]; +} + +} +/* playground-fold-end */ diff --git a/packages/lit-dev-content/samples/v3-docs/templates/lists-repeat/project.json b/packages/lit-dev-content/samples/v3-docs/templates/lists-repeat/project.json new file mode 100644 index 000000000..c35f00366 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/templates/lists-repeat/project.json @@ -0,0 +1,11 @@ +{ + "extends": "/samples/v3-base.json", + "title": "repeat directive", + "description": "Demo exploring use of the repeat directive.", + "section": "Directives", + "files": { + "my-element.ts": {}, + "index.html": {} + }, + "previewHeight": "130px" +} diff --git a/packages/lit-dev-content/samples/v3-docs/what-is-lit/icons.ts b/packages/lit-dev-content/samples/v3-docs/what-is-lit/icons.ts new file mode 100644 index 000000000..2d149f146 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/what-is-lit/icons.ts @@ -0,0 +1,5 @@ +import {html} from 'lit'; + +export const replay = html`Replay`; +export const pause = html`Pause`; +export const play = html`Play`; diff --git a/packages/lit-dev-content/samples/v3-docs/what-is-lit/index.html b/packages/lit-dev-content/samples/v3-docs/what-is-lit/index.html new file mode 100644 index 000000000..00c26fcf6 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/what-is-lit/index.html @@ -0,0 +1,18 @@ + + + + + + + + + + + + + diff --git a/packages/lit-dev-content/samples/v3-docs/what-is-lit/my-timer.ts b/packages/lit-dev-content/samples/v3-docs/what-is-lit/my-timer.ts new file mode 100644 index 000000000..058f1f7d6 --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/what-is-lit/my-timer.ts @@ -0,0 +1,81 @@ +import {LitElement, html, css} from 'lit'; +import {customElement, property, state} from 'lit/decorators.js'; +/* playground-fold */ +import {play, pause, replay} from './icons.js'; +/* playground-fold-end */ + +@customElement("my-timer") +export class MyTimer extends LitElement { + static styles = css`/* playground-fold */ + + :host { + display: inline-block; + min-width: 4em; + text-align: center; + padding: 0.2em; + margin: 0.2em 0.1em; + } + footer { + user-select: none; + font-size: 0.6em; + } + /* playground-fold-end */`; + + @property() duration = 60; + @state() private end: number | null = null; + @state() private remaining = 0; + + render() { + const {remaining, running} = this; + const min = Math.floor(remaining / 60000); + const sec = pad(min, Math.floor(remaining / 1000 % 60)); + const hun = pad(true, Math.floor(remaining % 1000 / 10)); + return html` + ${min ? `${min}:${sec}` : `${sec}.${hun}`} +
+ ${remaining === 0 ? '' : running ? + html`${pause}` : + html`${play}`} + ${replay} +
+ `; + } + /* playground-fold */ + + start() { + this.end = Date.now() + this.remaining; + this.tick(); + } + + pause() { + this.end = null; + } + + reset() { + const running = this.running; + this.remaining = this.duration * 1000; + this.end = running ? Date.now() + this.remaining : null; + } + + tick() { + if (this.running) { + this.remaining = Math.max(0, this.end! - Date.now()); + requestAnimationFrame(() => this.tick()); + } + } + + get running() { + return this.end && this.remaining; + } + + connectedCallback() { + super.connectedCallback(); + this.reset(); + }/* playground-fold-end */ + +} +/* playground-fold */ + +function pad(pad: unknown, val: number) { + return pad ? String(val).padStart(2, '0') : val; +}/* playground-fold-end */ diff --git a/packages/lit-dev-content/samples/v3-docs/what-is-lit/project.json b/packages/lit-dev-content/samples/v3-docs/what-is-lit/project.json new file mode 100644 index 000000000..7744524ef --- /dev/null +++ b/packages/lit-dev-content/samples/v3-docs/what-is-lit/project.json @@ -0,0 +1,9 @@ +{ + "extends": "/samples/v3-base.json", + "files": { + "my-timer.ts": {}, + "index.html": {}, + "icons.ts": {} + }, + "previewHeight": "125px" +} diff --git a/packages/lit-dev-content/site/docs/v2/components/events.md b/packages/lit-dev-content/site/docs/v2/components/events.md index 974bc39cc..e824bd51c 100644 --- a/packages/lit-dev-content/site/docs/v2/components/events.md +++ b/packages/lit-dev-content/site/docs/v2/components/events.md @@ -23,7 +23,7 @@ In addition to the standard `addEventListener` API, Lit introduces a declarative You can use `@` expressions in your template to add event listeners to elements in your component's template. Declarative event listeners are added when the template is rendered. -{% playground-example "docs/components/events/child/" "my-element.ts" %} +{% playground-example "v2-docs/components/events/child/" "my-element.ts" %} #### Customizing event listener options {#event-options-decorator} @@ -75,7 +75,7 @@ However, events fired from the component's shadow DOM are retargeted when heard Retargeting can interfere with event delegation, and to avoid it, event listeners can be added to the component's shadow root itself. Since the `shadowRoot` is not available in the `constructor`, event listeners can be added in the `createRenderRoot` method as follows. Please note that it's important to make sure to return the shadow root from the `createRenderRoot` method. -{% playground-example "docs/components/events/host/" "my-element.ts" %} +{% playground-example "v2-docs/components/events/host/" "my-element.ts" %} ### Adding event listeners to other elements @@ -108,7 +108,7 @@ Using event delegation can reduce the number of event listeners used and therefo Bubbling events can be heard on any ancestor element in the DOM. You can take advantage of this by adding a single event listener on an ancestor component to be notified of a bubbling event dispatched by any of its descendants in the DOM. Use the event's `target` property to take specific action based on the element that dispatched the event. -{% playground-example "docs/components/events/delegation/" "my-element.ts" %} +{% playground-example "v2-docs/components/events/delegation/" "my-element.ts" %} #### Asynchronously adding event listeners { #async-events } @@ -166,7 +166,7 @@ See the [documentation for `this` on MDN](https://developer.mozilla.org/en-US/do When listening to events on repeated items, it's often convenient to use [event delegation](#event-delegation) if the event bubbles. When an event does not bubble, a listener can be added on the repeated elements. Here's an example of both methods: -{% playground-example "docs/components/events/list/" "my-element.ts" %} +{% playground-example "v2-docs/components/events/list/" "my-element.ts" %} ## Dispatching events { #dispatching-events } @@ -195,13 +195,13 @@ Similarly, a menu component should dispatch an event when the user selects a men This typically means that a component should dispatch an event in response to another event to which it is listening. -{% playground-ide "docs/components/events/dispatch/" "my-dispatcher.ts" %} +{% playground-ide "v2-docs/components/events/dispatch/" "my-dispatcher.ts" %} ### Dispatching events after an element updates Often, an event should be fired only after an element updates and renders. This might be necessary if an event is intended to communicate a change in rendered state based on user interaction. In this case, the component's `updateComplete` Promise can be awaited after changing state, but before dispatching the event. -{% playground-ide "docs/components/events/update/" "my-dispatcher.ts" %} +{% playground-ide "v2-docs/components/events/update/" "my-dispatcher.ts" %} ### Using standard or custom events { #standard-custom-events } @@ -295,4 +295,4 @@ Another way to communicate between the dispatcher and listener is via the `preve Both of these techniques are used in the following example: -{% playground-ide "docs/components/events/comm/" "my-listener.ts" %} +{% playground-ide "v2-docs/components/events/comm/" "my-listener.ts" %} diff --git a/packages/lit-dev-content/site/docs/v2/components/overview.md b/packages/lit-dev-content/site/docs/v2/components/overview.md index 9cb1de6ba..6bfa6b491 100644 --- a/packages/lit-dev-content/site/docs/v2/components/overview.md +++ b/packages/lit-dev-content/site/docs/v2/components/overview.md @@ -25,4 +25,4 @@ Creating a Lit component involves a number of concepts: Here's a sample component: -{% playground-example "docs/components/overview/simple-greeting" "simple-greeting.ts" %} +{% playground-example "v2-docs/components/overview/simple-greeting" "simple-greeting.ts" %} diff --git a/packages/lit-dev-content/site/docs/v2/components/rendering.md b/packages/lit-dev-content/site/docs/v2/components/rendering.md index a192c596f..e15ff68a9 100644 --- a/packages/lit-dev-content/site/docs/v2/components/rendering.md +++ b/packages/lit-dev-content/site/docs/v2/components/rendering.md @@ -13,7 +13,7 @@ Add a template to your component to define what it should render. Templates can To define a template for a Lit component, add a `render()` method: -{% playground-example "docs/templates/define" "my-element.ts" %} +{% playground-example "v2-docs/templates/define" "my-element.ts" %} Write your template in HTML inside a JavaScript [tagged template literal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates) using Lit's [`html`](/docs/v2/api/templates/#html) tag function. @@ -52,7 +52,7 @@ For more information, see [Reactive properties](/docs/v2/components/properties/) You can compose Lit templates from other templates. The following example composes a template for a component called `` from smaller templates for the page's header, footer, and main content: -{% playground-example "docs/templates/compose" "my-page.ts" %} +{% playground-example "v2-docs/templates/compose" "my-page.ts" %} In this example, the individual templates are defined as instance methods, so a subclass could extend this component and override one or more templates. @@ -64,7 +64,7 @@ Move example to composition section, add xref. You can also compose templates by importing other elements and using them in your template: -{% playground-ide "docs/templates/composeimports" %} +{% playground-ide "v2-docs/templates/composeimports" %} ## When templates render diff --git a/packages/lit-dev-content/site/docs/v2/components/shadow-dom.md b/packages/lit-dev-content/site/docs/v2/components/shadow-dom.md index 770e06f35..c185ca4cf 100644 --- a/packages/lit-dev-content/site/docs/v2/components/shadow-dom.md +++ b/packages/lit-dev-content/site/docs/v2/components/shadow-dom.md @@ -144,7 +144,7 @@ To render children, your template needs to include one or more [`` element To render an element's children, create a `` for them in the element's template. The children aren't _moved_ in the DOM tree, but they're rendered _as if_ they were children of the ``. For example: -{% playground-ide "docs/components/shadowdom/slots/" %} +{% playground-ide "v2-docs/components/shadowdom/slots/" %} ### Using named slots @@ -158,7 +158,7 @@ To assign a child to a specific slot, ensure that the child's `slot` attribute m For example, `

...

` will only be placed in ``. -{% playground-ide "docs/components/shadowdom/namedslots/" %} +{% playground-ide "v2-docs/components/shadowdom/namedslots/" %} ### Specifying slot fallback content {#fallback} @@ -294,4 +294,4 @@ For example, to render the template into the main DOM tree as your element's chi -{% playground-ide "docs/components/shadowdom/renderroot/" %} +{% playground-ide "v2-docs/components/shadowdom/renderroot/" %} diff --git a/packages/lit-dev-content/site/docs/v2/components/styles.md b/packages/lit-dev-content/site/docs/v2/components/styles.md index 94f2315ce..045530ef5 100644 --- a/packages/lit-dev-content/site/docs/v2/components/styles.md +++ b/packages/lit-dev-content/site/docs/v2/components/styles.md @@ -17,7 +17,7 @@ Shadow DOM provides strong encapsulation for styling. If Lit did not use Shadow You define scoped styles in the static `styles` class field using the tagged template literal `css` function. Defining styles this way results in the most optimal performance: -{% playground-example "docs/components/style/basic" "my-element.ts" %} +{% playground-example "v2-docs/components/style/basic" "my-element.ts" %} The styles you add to your component are _scoped_ using shadow DOM. For a quick overview, see [Shadow DOM](#shadow-dom). @@ -76,7 +76,7 @@ static styles = css` Using an array of tagged template literals, a component can inherit the styles from a superclass, and add its own styles: -{% playground-ide "docs/components/style/superstyles" %} +{% playground-ide "v2-docs/components/style/superstyles" %} You can also use `super.styles` to reference the superclass's styles property in JavaScript. If you're using TypeScript, we recommend avoiding `super.styles` since the compiler doesn't always convert it correctly. Explicitly referencing the superclass, as shown in the example, avoids this issue. @@ -161,7 +161,7 @@ To create default styles for the host element, use the `:host` CSS pseudo-class * `:host` selects the host element. * :host(selector) selects the host element, but only if the host element matches _selector_. -{% playground-example "docs/components/style/host" "my-element.ts" %} +{% playground-example "v2-docs/components/style/host" "my-element.ts" %} Note that the host element can be affected by styles from outside the shadow tree, as well, so you should consider the styles you set in `:host` and `:host()` rules as _default styles_ that can be overridden by the user. For example: @@ -183,7 +183,7 @@ Use the `::slotted()` CSS pseudo-element to select children that are included in * `::slotted(p)` matches slotted paragraphs. * `p ::slotted(*)` matches slotted elements where the `` is a descendant of a paragraph element. -{% playground-example "docs/components/style/slottedselector" "my-element.ts" %} +{% playground-example "v2-docs/components/style/slottedselector" "my-element.ts" %} Note that **only direct slotted children** can be styled with `::slotted()`. @@ -310,7 +310,7 @@ To use `styleMap` and/or `classMap`: 2. Use `classMap` and/or `styleMap` in your element template: -{% playground-example "docs/components/style/maps" "my-element.ts" %} +{% playground-example "v2-docs/components/style/maps" "my-element.ts" %} See [classMap](/docs/v2/templates/directives/#classmap) and [styleMap](/docs/v2/templates/directives/#stylemap) for more information. @@ -318,7 +318,7 @@ See [classMap](/docs/v2/templates/directives/#classmap) and [styleMap](/docs/v2/ By using [CSS inheritance](#inheritance) and [CSS variables and custom properties](#customprops) together, it's easy to create themable elements. By applying css selectors to customize CSS custom properties, tree-based and per-instance theming is straightforward to apply. Here's an example: -{% playground-example "docs/components/style/theming" "my-element.ts" %} +{% playground-example "v2-docs/components/style/theming" "my-element.ts" %} ### CSS inheritance {#inheritance} diff --git a/packages/lit-dev-content/site/docs/v2/composition/component-composition.md b/packages/lit-dev-content/site/docs/v2/composition/component-composition.md index 3bb03ab82..0e926ae7c 100644 --- a/packages/lit-dev-content/site/docs/v2/composition/component-composition.md +++ b/packages/lit-dev-content/site/docs/v2/composition/component-composition.md @@ -83,7 +83,7 @@ A simple way to implement the mediator pattern is by having the owning component In the following example, the mediator element listens for events from the input and button elements in its shadow DOM. It controls the enabled state of the button so the user can only click **Submit** when there's text in the input. -{% playground-example "docs/composition/mediator-pattern" "mediator-element.ts" %} +{% playground-example "v2-docs/composition/mediator-pattern" "mediator-element.ts" %} Other mediator patterns include flux/Redux-style patterns where a store mediates changes and updates components via subscriptions. Having components directly subscribe to changes can help avoid needing every parent to pass along all data required by its children. diff --git a/packages/lit-dev-content/site/docs/v2/composition/controllers.md b/packages/lit-dev-content/site/docs/v2/composition/controllers.md index 571d38b55..9ccab7d21 100644 --- a/packages/lit-dev-content/site/docs/v2/composition/controllers.md +++ b/packages/lit-dev-content/site/docs/v2/composition/controllers.md @@ -21,7 +21,7 @@ You can use controllers to implement features that require their own state and a Reactive controllers allow you to build components by composing smaller pieces that aren't themselves components. They can be thought of as reusable, partial component definitions, with their own identity and state. -{% playground-ide "docs/controllers/overview" "clock-controller.ts" %} +{% playground-ide "v2-docs/controllers/overview" "clock-controller.ts" %} Reactive controllers are similar in many ways to class mixins. The main difference is that they have their own identity and don't add to the component's prototype, which helps contain their APIs and lets you use multiple controller instances per host component. See [Controllers and mixins](/docs/v2/composition/overview/#controllers-and-mixins) for more details. @@ -272,7 +272,7 @@ Reactive controllers can be used to connect to external inputs. For example, key This example shows how a controller can perform setup and cleanup work when its host is connected and disconnected, and request an update when an input changes: -{% playground-ide "docs/controllers/mouse" "my-element.ts" %} +{% playground-ide "v2-docs/controllers/mouse" "my-element.ts" %} ### Asynchronous tasks @@ -284,7 +284,7 @@ Controllers are a great way to bundle task execution and state to make it easy t You can use `Task` to create a custom controller with an API tailored for your specific task. Here we wrap `Task` in a `NamesController` that can fetch one of a specified list of names from a demo REST API. `NameController` exposes a `kind` property as an input, and a `render()` method that can render one of four templates depending on the task state. The task logic, and how it updates the host, are abstracted from the host component. -{% playground-ide "docs/controllers/names" %} +{% playground-ide "v2-docs/controllers/names" %} {% todo %} diff --git a/packages/lit-dev-content/site/docs/v2/composition/mixins.md b/packages/lit-dev-content/site/docs/v2/composition/mixins.md index 74be8dacc..8dfd0ca65 100644 --- a/packages/lit-dev-content/site/docs/v2/composition/mixins.md +++ b/packages/lit-dev-content/site/docs/v2/composition/mixins.md @@ -127,7 +127,7 @@ The mixin in the example below adds a `highlight` reactive property to the element and a `renderHighlight()` method that the user can call to wrap some content. The wrapped content is styled yellow when the `highlight` property/attribute is set. -{% playground-ide "docs/mixins/highlightable/" "highlightable.ts" %} +{% playground-ide "v2-docs/mixins/highlightable/" "highlightable.ts" %} Note in the example above, the user of the mixin is expected to call the `renderHighlight()` method from their `render()` method, as well as take care to add diff --git a/packages/lit-dev-content/site/docs/v2/index.md b/packages/lit-dev-content/site/docs/v2/index.md index 7873c22fb..ce94cab5c 100644 --- a/packages/lit-dev-content/site/docs/v2/index.md +++ b/packages/lit-dev-content/site/docs/v2/index.md @@ -37,7 +37,7 @@ Each Lit component is a self-contained unit of UI, assembled from smaller buildi Here’s a small but non-trivial component (a countdown timer) that illustrates what Lit code looks like and highlights several key features: -{% playground-ide "docs/what-is-lit/" %} +{% playground-ide "v2-docs/what-is-lit/" %} Some things to note: diff --git a/packages/lit-dev-content/site/docs/v2/internal/demos.md b/packages/lit-dev-content/site/docs/v2/internal/demos.md index 612ac10b4..44e8079e9 100644 --- a/packages/lit-dev-content/site/docs/v2/internal/demos.md +++ b/packages/lit-dev-content/site/docs/v2/internal/demos.md @@ -32,10 +32,10 @@ Additional `project.json` config options: - `previewHeight`: Height of the preview in pixels (default `120px`). ``` -{% raw %}{% playground-example "docs/templates/define" "my-element.ts" %}{% endraw %} +{% raw %}{% playground-example "v2-docs/templates/define" "my-element.ts" %}{% endraw %} ``` -{% playground-example "docs/templates/define" "my-element.ts" %} +{% playground-example "v2-docs/templates/define" "my-element.ts" %} ## Full IDE @@ -45,10 +45,10 @@ Arguments: 1. (Required) Path of the project dir from `samples/PATH/project.json`. ``` -{% raw %}{% playground-ide "docs/templates/define" %}{% endraw %} +{% raw %}{% playground-ide "v2-docs/templates/define" %}{% endraw %} ``` -{% playground-ide "docs/templates/define" %} +{% playground-ide "v2-docs/templates/define" %} ## Package versions @@ -57,6 +57,6 @@ configuration that resolve imports to `lit-next`: ```json { - "extends": "/samples/base.json", + "extends": "/samples/v2-base.json", } ``` \ No newline at end of file diff --git a/packages/lit-dev-content/site/docs/v2/internal/styles.md b/packages/lit-dev-content/site/docs/v2/internal/styles.md index 900f8775e..36582b804 100644 --- a/packages/lit-dev-content/site/docs/v2/internal/styles.md +++ b/packages/lit-dev-content/site/docs/v2/internal/styles.md @@ -146,8 +146,8 @@ customElements.define('my-element', MyElement); ## Interactive code snippet -{% playground-example "docs/templates/define" "my-element.ts" %} +{% playground-example "v2-docs/templates/define" "my-element.ts" %} ## Full IDE -{% playground-ide "docs/templates/define" %} +{% playground-ide "v2-docs/templates/define" %} diff --git a/packages/lit-dev-content/site/docs/v2/localization/runtime-mode.md b/packages/lit-dev-content/site/docs/v2/localization/runtime-mode.md index 071ba0e55..f29ea22b5 100644 --- a/packages/lit-dev-content/site/docs/v2/localization/runtime-mode.md +++ b/packages/lit-dev-content/site/docs/v2/localization/runtime-mode.md @@ -30,7 +30,7 @@ export const templates = { The following example demonstrates an application built with Lit Localize runtime mode: -{% playground-example "docs/libraries/localization/runtime" "x-greeter.ts" %} +{% playground-example "v2-docs/libraries/localization/runtime" "x-greeter.ts" %} The Lit GitHub repo includes full working examples ([JavaScript](https://github.com/lit/lit/tree/main/packages/localize/examples/runtime-js), diff --git a/packages/lit-dev-content/site/docs/v2/templates/expressions.md b/packages/lit-dev-content/site/docs/v2/templates/expressions.md index cc293e924..4346efc0d 100644 --- a/packages/lit-dev-content/site/docs/v2/templates/expressions.md +++ b/packages/lit-dev-content/site/docs/v2/templates/expressions.md @@ -118,7 +118,7 @@ html`` This basic example shows a variety of different kinds of expressions. -{% playground-example "docs/templates/expressions" "my-element.ts" %} +{% playground-example "v2-docs/templates/expressions" "my-element.ts" %} The following sections describe each kind of expression in more detail. For more information about the structure of templates, see [Well-formed HTML](#well-formed-html) and [Valid expression locations](#expression-locations). diff --git a/packages/lit-dev-content/site/docs/v2/templates/lists.md b/packages/lit-dev-content/site/docs/v2/templates/lists.md index 9c2673b9d..35fa8194d 100644 --- a/packages/lit-dev-content/site/docs/v2/templates/lists.md +++ b/packages/lit-dev-content/site/docs/v2/templates/lists.md @@ -17,7 +17,7 @@ Lit also provides a `repeat` directive to build certain kinds of dynamic lists m When an expression in the child position in returns an array or iterable, Lit renders all of the items in the array: -{% playground-example "docs/templates/lists-arrays/" "my-element.ts" %} +{% playground-example "v2-docs/templates/lists-arrays/" "my-element.ts" %} In most cases, you'll want to transform the array items into a more useful form. @@ -25,7 +25,7 @@ In most cases, you'll want to transform the array items into a more useful form. To render lists, you can use `map` to transform a list of data into a list of templates: -{% playground-example "docs/templates/lists-map/" "my-element.ts" %} +{% playground-example "v2-docs/templates/lists-map/" "my-element.ts" %} Note that this expression returns an array of `TemplateResult` objects. Lit will render an array or iterable of sub-templates and other values. @@ -68,7 +68,7 @@ Where: For example: -{% playground-example "docs/templates/lists-repeat/" "my-element.ts" %} +{% playground-example "v2-docs/templates/lists-repeat/" "my-element.ts" %} If you re-sort the `employees` array, the `repeat` directive reorders the existing DOM nodes. diff --git a/packages/lit-dev-content/site/docs/v3/components/events.md b/packages/lit-dev-content/site/docs/v3/components/events.md index 2aeba606c..48ae773a4 100644 --- a/packages/lit-dev-content/site/docs/v3/components/events.md +++ b/packages/lit-dev-content/site/docs/v3/components/events.md @@ -23,7 +23,7 @@ In addition to the standard `addEventListener` API, Lit introduces a declarative You can use `@` expressions in your template to add event listeners to elements in your component's template. Declarative event listeners are added when the template is rendered. -{% playground-example "docs/components/events/child/" "my-element.ts" %} +{% playground-example "v3-docs/components/events/child/" "my-element.ts" %} #### Customizing event listener options {#event-options-decorator} @@ -75,7 +75,7 @@ However, events fired from the component's shadow DOM are retargeted when heard Retargeting can interfere with event delegation, and to avoid it, event listeners can be added to the component's shadow root itself. Since the `shadowRoot` is not available in the `constructor`, event listeners can be added in the `createRenderRoot` method as follows. Please note that it's important to make sure to return the shadow root from the `createRenderRoot` method. -{% playground-example "docs/components/events/host/" "my-element.ts" %} +{% playground-example "v3-docs/components/events/host/" "my-element.ts" %} ### Adding event listeners to other elements @@ -108,7 +108,7 @@ Using event delegation can reduce the number of event listeners used and therefo Bubbling events can be heard on any ancestor element in the DOM. You can take advantage of this by adding a single event listener on an ancestor component to be notified of a bubbling event dispatched by any of its descendants in the DOM. Use the event's `target` property to take specific action based on the element that dispatched the event. -{% playground-example "docs/components/events/delegation/" "my-element.ts" %} +{% playground-example "v3-docs/components/events/delegation/" "my-element.ts" %} #### Asynchronously adding event listeners { #async-events } @@ -166,7 +166,7 @@ See the [documentation for `this` on MDN](https://developer.mozilla.org/en-US/do When listening to events on repeated items, it's often convenient to use [event delegation](#event-delegation) if the event bubbles. When an event does not bubble, a listener can be added on the repeated elements. Here's an example of both methods: -{% playground-example "docs/components/events/list/" "my-element.ts" %} +{% playground-example "v3-docs/components/events/list/" "my-element.ts" %} ## Dispatching events { #dispatching-events } @@ -195,13 +195,13 @@ Similarly, a menu component should dispatch an event when the user selects a men This typically means that a component should dispatch an event in response to another event to which it is listening. -{% playground-ide "docs/components/events/dispatch/" "my-dispatcher.ts" %} +{% playground-ide "v3-docs/components/events/dispatch/" "my-dispatcher.ts" %} ### Dispatching events after an element updates Often, an event should be fired only after an element updates and renders. This might be necessary if an event is intended to communicate a change in rendered state based on user interaction. In this case, the component's `updateComplete` Promise can be awaited after changing state, but before dispatching the event. -{% playground-ide "docs/components/events/update/" "my-dispatcher.ts" %} +{% playground-ide "v3-docs/components/events/update/" "my-dispatcher.ts" %} ### Using standard or custom events { #standard-custom-events } @@ -295,4 +295,4 @@ Another way to communicate between the dispatcher and listener is via the `preve Both of these techniques are used in the following example: -{% playground-ide "docs/components/events/comm/" "my-listener.ts" %} +{% playground-ide "v3-docs/components/events/comm/" "my-listener.ts" %} diff --git a/packages/lit-dev-content/site/docs/v3/components/overview.md b/packages/lit-dev-content/site/docs/v3/components/overview.md index a83aefb49..c365610e2 100644 --- a/packages/lit-dev-content/site/docs/v3/components/overview.md +++ b/packages/lit-dev-content/site/docs/v3/components/overview.md @@ -25,4 +25,4 @@ Creating a Lit component involves a number of concepts: Here's a sample component: -{% playground-example "docs/components/overview/simple-greeting" "simple-greeting.ts" %} +{% playground-example "v3-docs/components/overview/simple-greeting" "simple-greeting.ts" %} diff --git a/packages/lit-dev-content/site/docs/v3/components/rendering.md b/packages/lit-dev-content/site/docs/v3/components/rendering.md index c6ef8c55f..3f4addd91 100644 --- a/packages/lit-dev-content/site/docs/v3/components/rendering.md +++ b/packages/lit-dev-content/site/docs/v3/components/rendering.md @@ -13,7 +13,7 @@ Add a template to your component to define what it should render. Templates can To define a template for a Lit component, add a `render()` method: -{% playground-example "docs/templates/define" "my-element.ts" %} +{% playground-example "v3-docs/templates/define" "my-element.ts" %} Write your template in HTML inside a JavaScript [tagged template literal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates) using Lit's [`html`](/docs/v3/api/templates/#html) tag function. @@ -52,7 +52,7 @@ For more information, see [Reactive properties](/docs/v3/components/properties/) You can compose Lit templates from other templates. The following example composes a template for a component called `` from smaller templates for the page's header, footer, and main content: -{% playground-example "docs/templates/compose" "my-page.ts" %} +{% playground-example "v3-docs/templates/compose" "my-page.ts" %} In this example, the individual templates are defined as instance methods, so a subclass could extend this component and override one or more templates. @@ -64,7 +64,7 @@ Move example to composition section, add xref. You can also compose templates by importing other elements and using them in your template: -{% playground-ide "docs/templates/composeimports" %} +{% playground-ide "v3-docs/templates/composeimports" %} ## When templates render diff --git a/packages/lit-dev-content/site/docs/v3/components/shadow-dom.md b/packages/lit-dev-content/site/docs/v3/components/shadow-dom.md index 1b05ecab1..cf36a093f 100644 --- a/packages/lit-dev-content/site/docs/v3/components/shadow-dom.md +++ b/packages/lit-dev-content/site/docs/v3/components/shadow-dom.md @@ -144,7 +144,7 @@ To render children, your template needs to include one or more [`` element To render an element's children, create a `` for them in the element's template. The children aren't _moved_ in the DOM tree, but they're rendered _as if_ they were children of the ``. For example: -{% playground-ide "docs/components/shadowdom/slots/" %} +{% playground-ide "v3-docs/components/shadowdom/slots/" %} ### Using named slots @@ -158,7 +158,7 @@ To assign a child to a specific slot, ensure that the child's `slot` attribute m For example, `

...

` will only be placed in ``. -{% playground-ide "docs/components/shadowdom/namedslots/" %} +{% playground-ide "v3-docs/components/shadowdom/namedslots/" %} ### Specifying slot fallback content {#fallback} @@ -294,4 +294,4 @@ For example, to render the template into the main DOM tree as your element's chi -{% playground-ide "docs/components/shadowdom/renderroot/" %} +{% playground-ide "v3-docs/components/shadowdom/renderroot/" %} diff --git a/packages/lit-dev-content/site/docs/v3/components/styles.md b/packages/lit-dev-content/site/docs/v3/components/styles.md index e1cbf6a2e..aab79cc30 100644 --- a/packages/lit-dev-content/site/docs/v3/components/styles.md +++ b/packages/lit-dev-content/site/docs/v3/components/styles.md @@ -17,7 +17,7 @@ Shadow DOM provides strong encapsulation for styling. If Lit did not use Shadow You define scoped styles in the static `styles` class field using the tagged template literal `css` function. Defining styles this way results in the most optimal performance: -{% playground-example "docs/components/style/basic" "my-element.ts" %} +{% playground-example "v3-docs/components/style/basic" "my-element.ts" %} The styles you add to your component are _scoped_ using shadow DOM. For a quick overview, see [Shadow DOM](#shadow-dom). @@ -76,7 +76,7 @@ static styles = css` Using an array of tagged template literals, a component can inherit the styles from a superclass, and add its own styles: -{% playground-ide "docs/components/style/superstyles" %} +{% playground-ide "v3-docs/components/style/superstyles" %} You can also use `super.styles` to reference the superclass's styles property in JavaScript. If you're using TypeScript, we recommend avoiding `super.styles` since the compiler doesn't always convert it correctly. Explicitly referencing the superclass, as shown in the example, avoids this issue. @@ -161,7 +161,7 @@ To create default styles for the host element, use the `:host` CSS pseudo-class * `:host` selects the host element. * :host(selector) selects the host element, but only if the host element matches _selector_. -{% playground-example "docs/components/style/host" "my-element.ts" %} +{% playground-example "v3-docs/components/style/host" "my-element.ts" %} Note that the host element can be affected by styles from outside the shadow tree, as well, so you should consider the styles you set in `:host` and `:host()` rules as _default styles_ that can be overridden by the user. For example: @@ -183,7 +183,7 @@ Use the `::slotted()` CSS pseudo-element to select children that are included in * `::slotted(p)` matches slotted paragraphs. * `p ::slotted(*)` matches slotted elements where the `` is a descendant of a paragraph element. -{% playground-example "docs/components/style/slottedselector" "my-element.ts" %} +{% playground-example "v3-docs/components/style/slottedselector" "my-element.ts" %} Note that **only direct slotted children** can be styled with `::slotted()`. @@ -310,7 +310,7 @@ To use `styleMap` and/or `classMap`: 2. Use `classMap` and/or `styleMap` in your element template: -{% playground-example "docs/components/style/maps" "my-element.ts" %} +{% playground-example "v3-docs/components/style/maps" "my-element.ts" %} See [classMap](/docs/v3/templates/directives/#classmap) and [styleMap](/docs/v3/templates/directives/#stylemap) for more information. @@ -318,7 +318,7 @@ See [classMap](/docs/v3/templates/directives/#classmap) and [styleMap](/docs/v3/ By using [CSS inheritance](#inheritance) and [CSS variables and custom properties](#customprops) together, it's easy to create themable elements. By applying css selectors to customize CSS custom properties, tree-based and per-instance theming is straightforward to apply. Here's an example: -{% playground-example "docs/components/style/theming" "my-element.ts" %} +{% playground-example "v3-docs/components/style/theming" "my-element.ts" %} ### CSS inheritance {#inheritance} diff --git a/packages/lit-dev-content/site/docs/v3/composition/component-composition.md b/packages/lit-dev-content/site/docs/v3/composition/component-composition.md index 2c501310e..38cda5d61 100644 --- a/packages/lit-dev-content/site/docs/v3/composition/component-composition.md +++ b/packages/lit-dev-content/site/docs/v3/composition/component-composition.md @@ -83,7 +83,7 @@ A simple way to implement the mediator pattern is by having the owning component In the following example, the mediator element listens for events from the input and button elements in its shadow DOM. It controls the enabled state of the button so the user can only click **Submit** when there's text in the input. -{% playground-example "docs/composition/mediator-pattern" "mediator-element.ts" %} +{% playground-example "v3-docs/composition/mediator-pattern" "mediator-element.ts" %} Other mediator patterns include flux/Redux-style patterns where a store mediates changes and updates components via subscriptions. Having components directly subscribe to changes can help avoid needing every parent to pass along all data required by its children. diff --git a/packages/lit-dev-content/site/docs/v3/composition/controllers.md b/packages/lit-dev-content/site/docs/v3/composition/controllers.md index b91778362..7fd608050 100644 --- a/packages/lit-dev-content/site/docs/v3/composition/controllers.md +++ b/packages/lit-dev-content/site/docs/v3/composition/controllers.md @@ -21,7 +21,7 @@ You can use controllers to implement features that require their own state and a Reactive controllers allow you to build components by composing smaller pieces that aren't themselves components. They can be thought of as reusable, partial component definitions, with their own identity and state. -{% playground-ide "docs/controllers/overview" "clock-controller.ts" %} +{% playground-ide "v3-docs/controllers/overview" "clock-controller.ts" %} Reactive controllers are similar in many ways to class mixins. The main difference is that they have their own identity and don't add to the component's prototype, which helps contain their APIs and lets you use multiple controller instances per host component. See [Controllers and mixins](/docs/v3/composition/overview/#controllers-and-mixins) for more details. @@ -272,7 +272,7 @@ Reactive controllers can be used to connect to external inputs. For example, key This example shows how a controller can perform setup and cleanup work when its host is connected and disconnected, and request an update when an input changes: -{% playground-ide "docs/controllers/mouse" "my-element.ts" %} +{% playground-ide "v3-docs/controllers/mouse" "my-element.ts" %} ### Asynchronous tasks @@ -284,7 +284,7 @@ Controllers are a great way to bundle task execution and state to make it easy t You can use `Task` to create a custom controller with an API tailored for your specific task. Here we wrap `Task` in a `NamesController` that can fetch one of a specified list of names from a demo REST API. `NameController` exposes a `kind` property as an input, and a `render()` method that can render one of four templates depending on the task state. The task logic, and how it updates the host, are abstracted from the host component. -{% playground-ide "docs/controllers/names" %} +{% playground-ide "v3-docs/controllers/names" %} {% todo %} diff --git a/packages/lit-dev-content/site/docs/v3/composition/mixins.md b/packages/lit-dev-content/site/docs/v3/composition/mixins.md index 9a0451964..a59592e55 100644 --- a/packages/lit-dev-content/site/docs/v3/composition/mixins.md +++ b/packages/lit-dev-content/site/docs/v3/composition/mixins.md @@ -127,7 +127,7 @@ The mixin in the example below adds a `highlight` reactive property to the element and a `renderHighlight()` method that the user can call to wrap some content. The wrapped content is styled yellow when the `highlight` property/attribute is set. -{% playground-ide "docs/mixins/highlightable/" "highlightable.ts" %} +{% playground-ide "v3-docs/mixins/highlightable/" "highlightable.ts" %} Note in the example above, the user of the mixin is expected to call the `renderHighlight()` method from their `render()` method, as well as take care to add diff --git a/packages/lit-dev-content/site/docs/v3/index.md b/packages/lit-dev-content/site/docs/v3/index.md index 0e6562384..f22271c54 100644 --- a/packages/lit-dev-content/site/docs/v3/index.md +++ b/packages/lit-dev-content/site/docs/v3/index.md @@ -36,7 +36,7 @@ Each Lit component is a self-contained unit of UI, assembled from smaller buildi Here’s a small but non-trivial component (a countdown timer) that illustrates what Lit code looks like and highlights several key features: -{% playground-ide "docs/what-is-lit/" %} +{% playground-ide "v3-docs/what-is-lit/" %} Some things to note: diff --git a/packages/lit-dev-content/site/docs/v3/internal/demos.md b/packages/lit-dev-content/site/docs/v3/internal/demos.md index 612ac10b4..55e1bb39c 100644 --- a/packages/lit-dev-content/site/docs/v3/internal/demos.md +++ b/packages/lit-dev-content/site/docs/v3/internal/demos.md @@ -32,10 +32,10 @@ Additional `project.json` config options: - `previewHeight`: Height of the preview in pixels (default `120px`). ``` -{% raw %}{% playground-example "docs/templates/define" "my-element.ts" %}{% endraw %} +{% raw %}{% playground-example "v3-docs/templates/define" "my-element.ts" %}{% endraw %} ``` -{% playground-example "docs/templates/define" "my-element.ts" %} +{% playground-example "v3-docs/templates/define" "my-element.ts" %} ## Full IDE @@ -45,10 +45,10 @@ Arguments: 1. (Required) Path of the project dir from `samples/PATH/project.json`. ``` -{% raw %}{% playground-ide "docs/templates/define" %}{% endraw %} +{% raw %}{% playground-ide "v3-docs/templates/define" %}{% endraw %} ``` -{% playground-ide "docs/templates/define" %} +{% playground-ide "v3-docs/templates/define" %} ## Package versions @@ -57,6 +57,6 @@ configuration that resolve imports to `lit-next`: ```json { - "extends": "/samples/base.json", + "extends": "/samples/v3-base.json", } ``` \ No newline at end of file diff --git a/packages/lit-dev-content/site/docs/v3/internal/styles.md b/packages/lit-dev-content/site/docs/v3/internal/styles.md index 900f8775e..2aae10691 100644 --- a/packages/lit-dev-content/site/docs/v3/internal/styles.md +++ b/packages/lit-dev-content/site/docs/v3/internal/styles.md @@ -146,8 +146,8 @@ customElements.define('my-element', MyElement); ## Interactive code snippet -{% playground-example "docs/templates/define" "my-element.ts" %} +{% playground-example "v3-docs/templates/define" "my-element.ts" %} ## Full IDE -{% playground-ide "docs/templates/define" %} +{% playground-ide "v3-docs/templates/define" %} diff --git a/packages/lit-dev-content/site/docs/v3/localization/runtime-mode.md b/packages/lit-dev-content/site/docs/v3/localization/runtime-mode.md index 30e1e2eca..63fdbcab0 100644 --- a/packages/lit-dev-content/site/docs/v3/localization/runtime-mode.md +++ b/packages/lit-dev-content/site/docs/v3/localization/runtime-mode.md @@ -30,7 +30,7 @@ export const templates = { The following example demonstrates an application built with Lit Localize runtime mode: -{% playground-example "docs/libraries/localization/runtime" "x-greeter.ts" %} +{% playground-example "v3-docs/libraries/localization/runtime" "x-greeter.ts" %} The Lit GitHub repo includes full working examples ([JavaScript](https://github.com/lit/lit/tree/main/packages/localize/examples/runtime-js), diff --git a/packages/lit-dev-content/site/docs/v3/templates/expressions.md b/packages/lit-dev-content/site/docs/v3/templates/expressions.md index 88de1762e..a1cb470d6 100644 --- a/packages/lit-dev-content/site/docs/v3/templates/expressions.md +++ b/packages/lit-dev-content/site/docs/v3/templates/expressions.md @@ -118,7 +118,7 @@ html`` This basic example shows a variety of different kinds of expressions. -{% playground-example "docs/templates/expressions" "my-element.ts" %} +{% playground-example "v3-docs/templates/expressions" "my-element.ts" %} The following sections describe each kind of expression in more detail. For more information about the structure of templates, see [Well-formed HTML](#well-formed-html) and [Valid expression locations](#expression-locations). diff --git a/packages/lit-dev-content/site/docs/v3/templates/lists.md b/packages/lit-dev-content/site/docs/v3/templates/lists.md index 432335cf1..e25014d0f 100644 --- a/packages/lit-dev-content/site/docs/v3/templates/lists.md +++ b/packages/lit-dev-content/site/docs/v3/templates/lists.md @@ -17,7 +17,7 @@ Lit also provides a `repeat` directive to build certain kinds of dynamic lists m When an expression in the child position in returns an array or iterable, Lit renders all of the items in the array: -{% playground-example "docs/templates/lists-arrays/" "my-element.ts" %} +{% playground-example "v3-docs/templates/lists-arrays/" "my-element.ts" %} In most cases, you'll want to transform the array items into a more useful form. @@ -25,7 +25,7 @@ In most cases, you'll want to transform the array items into a more useful form. To render lists, you can use `map` to transform a list of data into a list of templates: -{% playground-example "docs/templates/lists-map/" "my-element.ts" %} +{% playground-example "v3-docs/templates/lists-map/" "my-element.ts" %} Note that this expression returns an array of `TemplateResult` objects. Lit will render an array or iterable of sub-templates and other values. @@ -68,7 +68,7 @@ Where: For example: -{% playground-example "docs/templates/lists-repeat/" "my-element.ts" %} +{% playground-example "v3-docs/templates/lists-repeat/" "my-element.ts" %} If you re-sort the `employees` array, the `repeat` directive reorders the existing DOM nodes. diff --git a/packages/lit-dev-tests/src/playwright/components-styles.spec.ts b/packages/lit-dev-tests/src/playwright/components-styles.spec.ts index 97c613af8..dc2c91289 100644 --- a/packages/lit-dev-tests/src/playwright/components-styles.spec.ts +++ b/packages/lit-dev-tests/src/playwright/components-styles.spec.ts @@ -19,7 +19,7 @@ test.describe('docs/components/styles', () => { // Wait for the exact playground preview we want to load. await page.waitForSelector( - 'litdev-example[project="docs/components/style/superstyles"] playground-preview [part="preview-loading-indicator"][aria-hidden="true"]' + 'litdev-example[project="v2-docs/components/style/superstyles"] playground-preview [part="preview-loading-indicator"][aria-hidden="true"]' ); // Wait for the loading bar to fade out. await page.waitForTimeout(250); @@ -27,7 +27,7 @@ test.describe('docs/components/styles', () => { await expect( await page .locator( - 'litdev-example[project="docs/components/style/superstyles"] playground-preview' + 'litdev-example[project="v2-docs/components/style/superstyles"] playground-preview' ) .screenshot() ).toMatchSnapshot('inheritingStylesPlaygroundPreview.png');