@zeix/le-truc 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ai-context.md +234 -0
- package/.cursor/rules/use-bun-instead-of-node-vite-npm-pnpm.mdc +111 -0
- package/.editorconfig +12 -0
- package/.github/copilot-instructions.md +62 -0
- package/.github/workflows/codeql.yml +108 -0
- package/.github/workflows/static.yml +43 -0
- package/.prettierrc +17 -0
- package/CLAUDE.md +215 -0
- package/CODE_OF_CONDUCT.md +128 -0
- package/CONTRIBUTING.md +160 -0
- package/LICENSE +21 -0
- package/README.md +474 -0
- package/biome.json +295 -0
- package/bun.lock +239 -0
- package/docs/about.html +105 -0
- package/docs/assets/main.css +1 -0
- package/docs/assets/main.js +10 -0
- package/docs/assets/main.js.map +66 -0
- package/docs/components.html +293 -0
- package/docs/data-flow.html +308 -0
- package/docs/examples/basic-button.html +367 -0
- package/docs/examples/basic-counter.html +188 -0
- package/docs/examples/basic-hello.html +138 -0
- package/docs/examples/basic-number.html +271 -0
- package/docs/examples/basic-pluralize.html +214 -0
- package/docs/examples/card-callout.html +152 -0
- package/docs/examples/card-mediaqueries.html +138 -0
- package/docs/examples/context-media.html +198 -0
- package/docs/examples/empty.html +37 -0
- package/docs/examples/form-checkbox.html +233 -0
- package/docs/examples/form-combobox.html +420 -0
- package/docs/examples/form-listbox.html +434 -0
- package/docs/examples/form-radiogroup.html +296 -0
- package/docs/examples/form-spinbutton.html +402 -0
- package/docs/examples/form-textbox.html +361 -0
- package/docs/examples/layout.html +67 -0
- package/docs/examples/module-carousel.html +552 -0
- package/docs/examples/module-catalog.html +241 -0
- package/docs/examples/module-codeblock.html +270 -0
- package/docs/examples/module-dialog.html +343 -0
- package/docs/examples/module-lazyload.html +289 -0
- package/docs/examples/module-list.html +197 -0
- package/docs/examples/module-pagination.html +283 -0
- package/docs/examples/module-scrollarea.html +447 -0
- package/docs/examples/module-tabgroup.html +526 -0
- package/docs/examples/module-todo.html +367 -0
- package/docs/examples/module-with-type.html +63 -0
- package/docs/examples/nested-components.html +88 -0
- package/docs/examples/recursive.html +56 -0
- package/docs/examples/simple-text.html +39 -0
- package/docs/examples/snippet.html +93 -0
- package/docs/examples/with-styles.html +75 -0
- package/docs/getting-started.html +143 -0
- package/docs/index.html +112 -0
- package/docs/sitemap.xml +28 -0
- package/docs/styling.html +160 -0
- package/docs/sw.js +112 -0
- package/docs-src/api/README.md +478 -0
- package/docs-src/api/_media/LICENSE +21 -0
- package/docs-src/api/classes/CircularDependencyError.md +299 -0
- package/docs-src/api/classes/CircularMutationError.md +301 -0
- package/docs-src/api/classes/ContextRequestEvent.md +590 -0
- package/docs-src/api/classes/DependencyTimeoutError.md +301 -0
- package/docs-src/api/classes/InvalidCallbackError.md +303 -0
- package/docs-src/api/classes/InvalidComponentNameError.md +295 -0
- package/docs-src/api/classes/InvalidCustomElementError.md +301 -0
- package/docs-src/api/classes/InvalidEffectsError.md +301 -0
- package/docs-src/api/classes/InvalidPropertyNameError.md +307 -0
- package/docs-src/api/classes/InvalidReactivesError.md +307 -0
- package/docs-src/api/classes/InvalidSignalValueError.md +303 -0
- package/docs-src/api/classes/MissingElementError.md +307 -0
- package/docs-src/api/classes/NullishSignalValueError.md +299 -0
- package/docs-src/api/classes/StoreKeyExistsError.md +303 -0
- package/docs-src/api/classes/StoreKeyRangeError.md +299 -0
- package/docs-src/api/classes/StoreKeyReadonlyError.md +303 -0
- package/docs-src/api/functions/asBoolean.md +21 -0
- package/docs-src/api/functions/asEnum.md +31 -0
- package/docs-src/api/functions/asInteger.md +39 -0
- package/docs-src/api/functions/asJSON.md +49 -0
- package/docs-src/api/functions/asNumber.md +37 -0
- package/docs-src/api/functions/asString.md +37 -0
- package/docs-src/api/functions/createCollection.md +83 -0
- package/docs-src/api/functions/createSensor.md +71 -0
- package/docs-src/api/functions/dangerouslySetInnerHTML.md +48 -0
- package/docs-src/api/functions/defineComponent.md +65 -0
- package/docs-src/api/functions/isCollection.md +37 -0
- package/docs-src/api/functions/isParser.md +41 -0
- package/docs-src/api/functions/match.md +47 -0
- package/docs-src/api/functions/on.md +58 -0
- package/docs-src/api/functions/pass.md +53 -0
- package/docs-src/api/functions/provideContexts.md +47 -0
- package/docs-src/api/functions/read.md +47 -0
- package/docs-src/api/functions/requestContext.md +51 -0
- package/docs-src/api/functions/resolve.md +40 -0
- package/docs-src/api/functions/runEffects.md +51 -0
- package/docs-src/api/functions/runElementEffects.md +57 -0
- package/docs-src/api/functions/schedule.md +33 -0
- package/docs-src/api/functions/setAttribute.md +48 -0
- package/docs-src/api/functions/setProperty.md +52 -0
- package/docs-src/api/functions/setStyle.md +48 -0
- package/docs-src/api/functions/setText.md +42 -0
- package/docs-src/api/functions/show.md +42 -0
- package/docs-src/api/functions/toSignal.md +37 -0
- package/docs-src/api/functions/toggleAttribute.md +48 -0
- package/docs-src/api/functions/toggleClass.md +48 -0
- package/docs-src/api/functions/updateElement.md +53 -0
- package/docs-src/api/globals.md +131 -0
- package/docs-src/api/type-aliases/Cleanup.md +27 -0
- package/docs-src/api/type-aliases/Collection.md +91 -0
- package/docs-src/api/type-aliases/CollectionListener.md +27 -0
- package/docs-src/api/type-aliases/Component.md +17 -0
- package/docs-src/api/type-aliases/ComponentProp.md +11 -0
- package/docs-src/api/type-aliases/ComponentProps.md +11 -0
- package/docs-src/api/type-aliases/ComponentSetup.md +31 -0
- package/docs-src/api/type-aliases/ComponentUI.md +27 -0
- package/docs-src/api/type-aliases/Computed.md +49 -0
- package/docs-src/api/type-aliases/ComputedCallback.md +29 -0
- package/docs-src/api/type-aliases/Context.md +33 -0
- package/docs-src/api/type-aliases/ContextType.md +19 -0
- package/docs-src/api/type-aliases/DangerouslySetInnerHTMLOptions.md +27 -0
- package/docs-src/api/type-aliases/DiffResult.md +61 -0
- package/docs-src/api/type-aliases/Effect.md +35 -0
- package/docs-src/api/type-aliases/EffectCallback.md +23 -0
- package/docs-src/api/type-aliases/Effects.md +21 -0
- package/docs-src/api/type-aliases/ElementEffects.md +21 -0
- package/docs-src/api/type-aliases/ElementFromKey.md +21 -0
- package/docs-src/api/type-aliases/ElementQueries.md +27 -0
- package/docs-src/api/type-aliases/ElementUpdater.md +131 -0
- package/docs-src/api/type-aliases/EventHandler.md +31 -0
- package/docs-src/api/type-aliases/EventType.md +17 -0
- package/docs-src/api/type-aliases/Fallback.md +21 -0
- package/docs-src/api/type-aliases/Initializers.md +21 -0
- package/docs-src/api/type-aliases/LooseReader.md +31 -0
- package/docs-src/api/type-aliases/MatchHandlers.md +77 -0
- package/docs-src/api/type-aliases/MaybeCleanup.md +23 -0
- package/docs-src/api/type-aliases/MaybeSignal.md +17 -0
- package/docs-src/api/type-aliases/Parser.md +39 -0
- package/docs-src/api/type-aliases/ParserOrFallback.md +21 -0
- package/docs-src/api/type-aliases/PassedProp.md +25 -0
- package/docs-src/api/type-aliases/PassedProps.md +21 -0
- package/docs-src/api/type-aliases/Reactive.md +25 -0
- package/docs-src/api/type-aliases/Reader.md +31 -0
- package/docs-src/api/type-aliases/ReservedWords.md +11 -0
- package/docs-src/api/type-aliases/ResolveResult.md +29 -0
- package/docs-src/api/type-aliases/SensorEvents.md +25 -0
- package/docs-src/api/type-aliases/Signal.md +41 -0
- package/docs-src/api/type-aliases/State.md +85 -0
- package/docs-src/api/type-aliases/Store.md +29 -0
- package/docs-src/api/type-aliases/UI.md +11 -0
- package/docs-src/api/type-aliases/UnknownContext.md +13 -0
- package/docs-src/api/variables/CONTEXT_REQUEST.md +11 -0
- package/docs-src/api/variables/UNSET.md +23 -0
- package/docs-src/api/variables/batch.md +25 -0
- package/docs-src/api/variables/createComputed.md +41 -0
- package/docs-src/api/variables/createEffect.md +35 -0
- package/docs-src/api/variables/createState.md +37 -0
- package/docs-src/api/variables/createStore.md +42 -0
- package/docs-src/api/variables/diff.md +43 -0
- package/docs-src/api/variables/isAbortError.md +33 -0
- package/docs-src/api/variables/isAsyncFunction.md +39 -0
- package/docs-src/api/variables/isComputed.md +37 -0
- package/docs-src/api/variables/isEqual.md +49 -0
- package/docs-src/api/variables/isFunction.md +39 -0
- package/docs-src/api/variables/isMutableSignal.md +37 -0
- package/docs-src/api/variables/isNumber.md +33 -0
- package/docs-src/api/variables/isRecord.md +39 -0
- package/docs-src/api/variables/isRecordOrArray.md +39 -0
- package/docs-src/api/variables/isSignal.md +37 -0
- package/docs-src/api/variables/isState.md +37 -0
- package/docs-src/api/variables/isStore.md +37 -0
- package/docs-src/api/variables/isString.md +33 -0
- package/docs-src/api/variables/isSymbol.md +33 -0
- package/docs-src/api/variables/toError.md +33 -0
- package/docs-src/api/variables/valueString.md +33 -0
- package/docs-src/includes/menu.html +44 -0
- package/docs-src/pages/about.md +89 -0
- package/docs-src/pages/components.md +437 -0
- package/docs-src/pages/data-flow.md +449 -0
- package/docs-src/pages/getting-started.md +170 -0
- package/docs-src/pages/index.md +98 -0
- package/docs-src/pages/styling.md +165 -0
- package/eslint.config.js +64 -0
- package/examples/_common/clear.ts +49 -0
- package/examples/_common/fetch.ts +160 -0
- package/examples/_common/focus.ts +45 -0
- package/examples/_common/highlight.ts +5 -0
- package/examples/_global.css +463 -0
- package/examples/basic-button/basic-button.css +176 -0
- package/examples/basic-button/basic-button.html +46 -0
- package/examples/basic-button/basic-button.spec.ts +160 -0
- package/examples/basic-button/basic-button.ts +45 -0
- package/examples/basic-button/copyToClipboard.ts +37 -0
- package/examples/basic-counter/basic-counter.css +21 -0
- package/examples/basic-counter/basic-counter.html +24 -0
- package/examples/basic-counter/basic-counter.spec.ts +85 -0
- package/examples/basic-counter/basic-counter.ts +43 -0
- package/examples/basic-hello/basic-hello.html +34 -0
- package/examples/basic-hello/basic-hello.spec.ts +110 -0
- package/examples/basic-hello/basic-hello.ts +36 -0
- package/examples/basic-number/basic-number.html +79 -0
- package/examples/basic-number/basic-number.spec.ts +175 -0
- package/examples/basic-number/basic-number.ts +124 -0
- package/examples/basic-pluralize/basic-pluralize.html +64 -0
- package/examples/basic-pluralize/basic-pluralize.spec.ts +258 -0
- package/examples/basic-pluralize/basic-pluralize.ts +82 -0
- package/examples/card-callout/card-callout.css +79 -0
- package/examples/card-callout/card-callout.html +5 -0
- package/examples/card-mediaqueries/card-mediaqueries.html +29 -0
- package/examples/card-mediaqueries/card-mediaqueries.spec.ts +300 -0
- package/examples/card-mediaqueries/card-mediaqueries.ts +41 -0
- package/examples/context-media/context-media.html +3 -0
- package/examples/context-media/context-media.ts +127 -0
- package/examples/form-checkbox/form-checkbox.css +70 -0
- package/examples/form-checkbox/form-checkbox.html +13 -0
- package/examples/form-checkbox/form-checkbox.spec.ts +357 -0
- package/examples/form-checkbox/form-checkbox.ts +50 -0
- package/examples/form-checkbox/vanilla-checkbox.ts +101 -0
- package/examples/form-combobox/form-combobox.css +118 -0
- package/examples/form-combobox/form-combobox.html +74 -0
- package/examples/form-combobox/form-combobox.spec.ts +977 -0
- package/examples/form-combobox/form-combobox.ts +128 -0
- package/examples/form-listbox/form-listbox.css +71 -0
- package/examples/form-listbox/form-listbox.html +67 -0
- package/examples/form-listbox/form-listbox.spec.ts +1050 -0
- package/examples/form-listbox/form-listbox.ts +196 -0
- package/examples/form-listbox/mocks/timezones.json +495 -0
- package/examples/form-radiogroup/form-radiogroup.css +87 -0
- package/examples/form-radiogroup/form-radiogroup.html +51 -0
- package/examples/form-radiogroup/form-radiogroup.spec.ts +515 -0
- package/examples/form-radiogroup/form-radiogroup.ts +58 -0
- package/examples/form-spinbutton/form-spinbutton.css +95 -0
- package/examples/form-spinbutton/form-spinbutton.html +96 -0
- package/examples/form-spinbutton/form-spinbutton.spec.ts +688 -0
- package/examples/form-spinbutton/form-spinbutton.ts +111 -0
- package/examples/form-textbox/form-textbox.css +104 -0
- package/examples/form-textbox/form-textbox.html +53 -0
- package/examples/form-textbox/form-textbox.spec.ts +542 -0
- package/examples/form-textbox/form-textbox.ts +104 -0
- package/examples/main.css +22 -0
- package/examples/main.ts +23 -0
- package/examples/module-carousel/module-carousel.css +113 -0
- package/examples/module-carousel/module-carousel.html +208 -0
- package/examples/module-carousel/module-carousel.spec.ts +523 -0
- package/examples/module-carousel/module-carousel.ts +131 -0
- package/examples/module-catalog/module-catalog.css +22 -0
- package/examples/module-catalog/module-catalog.html +82 -0
- package/examples/module-catalog/module-catalog.spec.ts +396 -0
- package/examples/module-catalog/module-catalog.ts +37 -0
- package/examples/module-codeblock/module-codeblock.css +95 -0
- package/examples/module-codeblock/module-codeblock.html +28 -0
- package/examples/module-codeblock/module-codeblock.ts +47 -0
- package/examples/module-demo/module-demo.css +13 -0
- package/examples/module-dialog/module-dialog.css +96 -0
- package/examples/module-dialog/module-dialog.html +66 -0
- package/examples/module-dialog/module-dialog.spec.ts +557 -0
- package/examples/module-dialog/module-dialog.ts +81 -0
- package/examples/module-lazyload/mocks/empty.html +1 -0
- package/examples/module-lazyload/mocks/module-with-type.html +27 -0
- package/examples/module-lazyload/mocks/nested-components.html +52 -0
- package/examples/module-lazyload/mocks/recursive.html +20 -0
- package/examples/module-lazyload/mocks/simple-text.html +3 -0
- package/examples/module-lazyload/mocks/snippet.html +57 -0
- package/examples/module-lazyload/mocks/with-styles.html +39 -0
- package/examples/module-lazyload/module-lazyload.html +132 -0
- package/examples/module-lazyload/module-lazyload.spec.ts +734 -0
- package/examples/module-lazyload/module-lazyload.ts +89 -0
- package/examples/module-list/module-list.html +30 -0
- package/examples/module-list/module-list.spec.ts +592 -0
- package/examples/module-list/module-list.ts +99 -0
- package/examples/module-pagination/module-pagination.css +79 -0
- package/examples/module-pagination/module-pagination.html +16 -0
- package/examples/module-pagination/module-pagination.spec.ts +701 -0
- package/examples/module-pagination/module-pagination.ts +88 -0
- package/examples/module-scrollarea/module-scrollarea.css +77 -0
- package/examples/module-scrollarea/module-scrollarea.html +189 -0
- package/examples/module-scrollarea/module-scrollarea.spec.ts +445 -0
- package/examples/module-scrollarea/module-scrollarea.ts +81 -0
- package/examples/module-tabgroup/module-tabgroup.css +55 -0
- package/examples/module-tabgroup/module-tabgroup.html +269 -0
- package/examples/module-tabgroup/module-tabgroup.spec.ts +631 -0
- package/examples/module-tabgroup/module-tabgroup.ts +102 -0
- package/examples/module-toc/module-toc.css +34 -0
- package/examples/module-todo/module-todo.css +84 -0
- package/examples/module-todo/module-todo.html +92 -0
- package/examples/module-todo/module-todo.spec.ts +528 -0
- package/examples/module-todo/module-todo.ts +91 -0
- package/examples/section-hero/section-hero.css +37 -0
- package/examples/section-menu/section-menu.css +81 -0
- package/examples/server.ts +95 -0
- package/examples/test-setup.md +314 -0
- package/index.dev.js +1688 -0
- package/index.dev.ts +127 -0
- package/index.js +3 -0
- package/index.js.map +42 -0
- package/index.ts +127 -0
- package/package.json +64 -0
- package/playwright.config.ts +31 -0
- package/server/BUILD_SYSTEM.md +428 -0
- package/server/SERVER.md +286 -0
- package/server/build.ts +91 -0
- package/server/config.ts +130 -0
- package/server/effects/api.ts +28 -0
- package/server/effects/css.ts +31 -0
- package/server/effects/examples.ts +109 -0
- package/server/effects/js.ts +32 -0
- package/server/effects/menu.ts +34 -0
- package/server/effects/pages.ts +178 -0
- package/server/effects/service-worker.ts +57 -0
- package/server/effects/sitemap.ts +27 -0
- package/server/file-signals.ts +361 -0
- package/server/file-watcher.ts +77 -0
- package/server/io.ts +174 -0
- package/server/layout-engine.ts +470 -0
- package/server/layout-utils.ts +615 -0
- package/server/layouts/api.html +76 -0
- package/server/layouts/base.html +37 -0
- package/server/layouts/blog.html +115 -0
- package/server/layouts/example.html +104 -0
- package/server/layouts/overview.html +165 -0
- package/server/layouts/page.html +36 -0
- package/server/layouts/test.html +24 -0
- package/server/markdoc-helpers.ts +217 -0
- package/server/markdoc.config.ts +29 -0
- package/server/schema/callout.markdoc.ts +17 -0
- package/server/schema/carousel.markdoc.ts +118 -0
- package/server/schema/demo.markdoc.ts +74 -0
- package/server/schema/fence.markdoc.ts +84 -0
- package/server/schema/heading.markdoc.ts +23 -0
- package/server/schema/hero.markdoc.ts +59 -0
- package/server/schema/section.markdoc.ts +10 -0
- package/server/schema/slide.markdoc.ts +17 -0
- package/server/schema/source.markdoc.ts +53 -0
- package/server/schema/tabgroup.markdoc.ts +102 -0
- package/server/serve.ts +635 -0
- package/server/templates/README.md +352 -0
- package/server/templates/constants.ts +236 -0
- package/server/templates/fragments.ts +159 -0
- package/server/templates/hmr.ts +269 -0
- package/server/templates/menu.ts +33 -0
- package/server/templates/performance-hints.ts +94 -0
- package/server/templates/service-worker.ts +403 -0
- package/server/templates/sitemap.ts +57 -0
- package/server/templates/toc.ts +41 -0
- package/server/templates/utils.ts +378 -0
- package/src/component.ts +215 -0
- package/src/context.ts +156 -0
- package/src/effects/attribute.ts +82 -0
- package/src/effects/class.ts +28 -0
- package/src/effects/event.ts +67 -0
- package/src/effects/html.ts +60 -0
- package/src/effects/method.ts +57 -0
- package/src/effects/pass.ts +103 -0
- package/src/effects/property.ts +57 -0
- package/src/effects/style.ts +34 -0
- package/src/effects/text.ts +28 -0
- package/src/effects.ts +412 -0
- package/src/errors.ts +160 -0
- package/src/parsers/boolean.ts +14 -0
- package/src/parsers/json.ts +33 -0
- package/src/parsers/number.ts +55 -0
- package/src/parsers/string.ts +32 -0
- package/src/parsers.ts +90 -0
- package/src/scheduler.ts +47 -0
- package/src/signals/collection.ts +253 -0
- package/src/signals/sensor.ts +131 -0
- package/src/ui.ts +236 -0
- package/src/util.ts +187 -0
- package/tsconfig.json +34 -0
- package/types/examples/basic-button/basic-button.d.ts +16 -0
- package/types/examples/basic-hello/basic-hello.d.ts +18 -0
- package/types/index.d.ts +27 -0
- package/types/index.dev.d.ts +27 -0
- package/types/src/collection.d.ts +27 -0
- package/types/src/component.d.ts +32 -0
- package/types/src/context.d.ts +85 -0
- package/types/src/effects/attribute.d.ts +23 -0
- package/types/src/effects/callMethod.d.ts +23 -0
- package/types/src/effects/class.d.ts +13 -0
- package/types/src/effects/dangerouslySetInnerHTML.d.ts +18 -0
- package/types/src/effects/event.d.ts +18 -0
- package/types/src/effects/html.d.ts +17 -0
- package/types/src/effects/method.d.ts +22 -0
- package/types/src/effects/pass.d.ts +18 -0
- package/types/src/effects/property.d.ts +22 -0
- package/types/src/effects/setAttribute.d.ts +24 -0
- package/types/src/effects/setProperty.d.ts +23 -0
- package/types/src/effects/setStyle.d.ts +14 -0
- package/types/src/effects/setText.d.ts +13 -0
- package/types/src/effects/style.d.ts +13 -0
- package/types/src/effects/text.d.ts +12 -0
- package/types/src/effects/toggleClass.d.ts +14 -0
- package/types/src/effects.d.ts +153 -0
- package/types/src/errors.d.ts +99 -0
- package/types/src/events.d.ts +27 -0
- package/types/src/extractors.d.ts +23 -0
- package/types/src/parsers/boolean.d.ts +10 -0
- package/types/src/parsers/json.d.ts +13 -0
- package/types/src/parsers/number.d.ts +21 -0
- package/types/src/parsers/string.d.ts +19 -0
- package/types/src/parsers.d.ts +41 -0
- package/types/src/scheduler.d.ts +11 -0
- package/types/src/sensor.d.ts +27 -0
- package/types/src/signals/collection.d.ts +32 -0
- package/types/src/signals/sensor.d.ts +27 -0
- package/types/src/ui.d.ts +37 -0
- package/types/src/util.d.ts +65 -0
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
<module-tabgroup>
|
|
2
|
+
<div role="tablist">
|
|
3
|
+
<button
|
|
4
|
+
type="button"
|
|
5
|
+
role="tab"
|
|
6
|
+
id="trigger_module-todo_html"
|
|
7
|
+
aria-controls="panel_module-todo_html"
|
|
8
|
+
aria-selected="false"
|
|
9
|
+
tabindex="-1"
|
|
10
|
+
>
|
|
11
|
+
HTML
|
|
12
|
+
</button><button
|
|
13
|
+
type="button"
|
|
14
|
+
role="tab"
|
|
15
|
+
id="trigger_module-todo_css"
|
|
16
|
+
aria-controls="panel_module-todo_css"
|
|
17
|
+
aria-selected="false"
|
|
18
|
+
tabindex="-1"
|
|
19
|
+
>
|
|
20
|
+
CSS
|
|
21
|
+
</button><button
|
|
22
|
+
type="button"
|
|
23
|
+
role="tab"
|
|
24
|
+
id="trigger_module-todo_ts"
|
|
25
|
+
aria-controls="panel_module-todo_ts"
|
|
26
|
+
aria-selected="true"
|
|
27
|
+
tabindex="0"
|
|
28
|
+
>
|
|
29
|
+
TypeScript
|
|
30
|
+
</button>
|
|
31
|
+
</div> <div
|
|
32
|
+
role="tabpanel"
|
|
33
|
+
id="panel_module-todo_html"
|
|
34
|
+
aria-labelledby="trigger_module-todo_html"
|
|
35
|
+
hidden
|
|
36
|
+
>
|
|
37
|
+
<module-codeblock
|
|
38
|
+
language="html"
|
|
39
|
+
copy-success="Copied!"
|
|
40
|
+
copy-error="Error trying to copy to clipboard!"
|
|
41
|
+
>
|
|
42
|
+
<p class="meta">
|
|
43
|
+
<span class="file">module-todo.html</span>
|
|
44
|
+
<span class="language">html</span>
|
|
45
|
+
</p>
|
|
46
|
+
<pre class="shiki monokai" style="background-color:#272822;color:#F8F8F2" tabindex="0"><code><span class="line"><span style="color:#F8F8F2"><</span><span style="color:#F92672">module-todo</span><span style="color:#F8F8F2">></span></span>
|
|
47
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">form</span><span style="color:#A6E22E"> action</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"#"</span><span style="color:#F8F8F2">></span></span>
|
|
48
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">form-textbox</span><span style="color:#A6E22E"> clearable</span><span style="color:#F8F8F2">></span></span>
|
|
49
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">label</span><span style="color:#A6E22E"> for</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"add-todo"</span><span style="color:#F8F8F2">>What needs to be done?</</span><span style="color:#F92672">label</span><span style="color:#F8F8F2">></span></span>
|
|
50
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">div</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"input"</span><span style="color:#F8F8F2">></span></span>
|
|
51
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">input</span><span style="color:#A6E22E"> id</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"add-todo"</span><span style="color:#A6E22E"> type</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"text"</span><span style="color:#A6E22E"> value</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">""</span><span style="color:#F8F8F2"> /></span></span>
|
|
52
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">button</span><span style="color:#A6E22E"> type</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"button"</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"clear"</span><span style="color:#A6E22E"> aria-label</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"Clear input"</span><span style="color:#A6E22E"> hidden</span><span style="color:#F8F8F2">></span></span>
|
|
53
|
+
<span class="line"><span style="color:#F8F8F2"> ✕</span></span>
|
|
54
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">button</span><span style="color:#F8F8F2">></span></span>
|
|
55
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">div</span><span style="color:#F8F8F2">></span></span>
|
|
56
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">form-textbox</span><span style="color:#F8F8F2">></span></span>
|
|
57
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">basic-button</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"submit"</span><span style="color:#F8F8F2">></span></span>
|
|
58
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">button</span><span style="color:#A6E22E"> type</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"submit"</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"constructive"</span><span style="color:#A6E22E"> disabled</span><span style="color:#F8F8F2">></span></span>
|
|
59
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">span</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"label"</span><span style="color:#F8F8F2">>Add Todo</</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">></span></span>
|
|
60
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">button</span><span style="color:#F8F8F2">></span></span>
|
|
61
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">basic-button</span><span style="color:#F8F8F2">></span></span>
|
|
62
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">form</span><span style="color:#F8F8F2">></span></span>
|
|
63
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">module-list</span><span style="color:#A6E22E"> filter</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"all"</span><span style="color:#F8F8F2">></span></span>
|
|
64
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">ol</span><span style="color:#A6E22E"> data-container</span><span style="color:#F8F8F2">></</span><span style="color:#F92672">ol</span><span style="color:#F8F8F2">></span></span>
|
|
65
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">template</span><span style="color:#F8F8F2">></span></span>
|
|
66
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">li</span><span style="color:#F8F8F2">></span></span>
|
|
67
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">form-checkbox</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"todo"</span><span style="color:#F8F8F2">></span></span>
|
|
68
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">label</span><span style="color:#F8F8F2">></span></span>
|
|
69
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">input</span><span style="color:#A6E22E"> type</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"checkbox"</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"visually-hidden"</span><span style="color:#F8F8F2"> /></span></span>
|
|
70
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">span</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"label"</span><span style="color:#F8F8F2">></span></span>
|
|
71
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">slot</span><span style="color:#F8F8F2">></</span><span style="color:#F92672">slot</span><span style="color:#F8F8F2">></span></span>
|
|
72
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">></span></span>
|
|
73
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">label</span><span style="color:#F8F8F2">></span></span>
|
|
74
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">form-checkbox</span><span style="color:#F8F8F2">></span></span>
|
|
75
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">basic-button</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"delete"</span><span style="color:#F8F8F2">></span></span>
|
|
76
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">button</span></span>
|
|
77
|
+
<span class="line"><span style="color:#A6E22E"> type</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"button"</span></span>
|
|
78
|
+
<span class="line"><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"tertiary destructive small"</span></span>
|
|
79
|
+
<span class="line"><span style="color:#A6E22E"> aria-label</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"Delete"</span></span>
|
|
80
|
+
<span class="line"><span style="color:#F8F8F2"> ></span></span>
|
|
81
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">span</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"label"</span><span style="color:#F8F8F2">>✕</</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">></span></span>
|
|
82
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">button</span><span style="color:#F8F8F2">></span></span>
|
|
83
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">basic-button</span><span style="color:#F8F8F2">></span></span>
|
|
84
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">li</span><span style="color:#F8F8F2">></span></span>
|
|
85
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">template</span><span style="color:#F8F8F2">></span></span>
|
|
86
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">module-list</span><span style="color:#F8F8F2">></span></span>
|
|
87
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">footer</span><span style="color:#F8F8F2">></span></span>
|
|
88
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">basic-pluralize</span><span style="color:#F8F8F2">></span></span>
|
|
89
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">p</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"none"</span><span style="color:#F8F8F2">>Well done, all done!</</span><span style="color:#F92672">p</span><span style="color:#F8F8F2">></span></span>
|
|
90
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">p</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"some"</span><span style="color:#F8F8F2">></span></span>
|
|
91
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">span</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"count"</span><span style="color:#F8F8F2">></</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">></span></span>
|
|
92
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">span</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"one"</span><span style="color:#F8F8F2">>task</</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">></span></span>
|
|
93
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">span</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"other"</span><span style="color:#F8F8F2">>tasks</</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">></span></span>
|
|
94
|
+
<span class="line"><span style="color:#F8F8F2"> remaining</span></span>
|
|
95
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">p</span><span style="color:#F8F8F2">></span></span>
|
|
96
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">basic-pluralize</span><span style="color:#F8F8F2">></span></span>
|
|
97
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">form-radiogroup</span><span style="color:#A6E22E"> value</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"all"</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"split-button"</span><span style="color:#F8F8F2">></span></span>
|
|
98
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">fieldset</span><span style="color:#F8F8F2">></span></span>
|
|
99
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">legend</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"visually-hidden"</span><span style="color:#F8F8F2">>Filter</</span><span style="color:#F92672">legend</span><span style="color:#F8F8F2">></span></span>
|
|
100
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">label</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"selected"</span><span style="color:#F8F8F2">></span></span>
|
|
101
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">input</span></span>
|
|
102
|
+
<span class="line"><span style="color:#A6E22E"> type</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"radio"</span></span>
|
|
103
|
+
<span class="line"><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"visually-hidden"</span></span>
|
|
104
|
+
<span class="line"><span style="color:#A6E22E"> name</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"filter"</span></span>
|
|
105
|
+
<span class="line"><span style="color:#A6E22E"> value</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"all"</span></span>
|
|
106
|
+
<span class="line"><span style="color:#A6E22E"> checked</span></span>
|
|
107
|
+
<span class="line"><span style="color:#F8F8F2"> /></span></span>
|
|
108
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">>All</</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">></span></span>
|
|
109
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">label</span><span style="color:#F8F8F2">></span></span>
|
|
110
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">label</span><span style="color:#F8F8F2">></span></span>
|
|
111
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">input</span></span>
|
|
112
|
+
<span class="line"><span style="color:#A6E22E"> type</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"radio"</span></span>
|
|
113
|
+
<span class="line"><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"visually-hidden"</span></span>
|
|
114
|
+
<span class="line"><span style="color:#A6E22E"> name</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"filter"</span></span>
|
|
115
|
+
<span class="line"><span style="color:#A6E22E"> value</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"active"</span></span>
|
|
116
|
+
<span class="line"><span style="color:#F8F8F2"> /></span></span>
|
|
117
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">>Active</</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">></span></span>
|
|
118
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">label</span><span style="color:#F8F8F2">></span></span>
|
|
119
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">label</span><span style="color:#F8F8F2">></span></span>
|
|
120
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">input</span></span>
|
|
121
|
+
<span class="line"><span style="color:#A6E22E"> type</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"radio"</span></span>
|
|
122
|
+
<span class="line"><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"visually-hidden"</span></span>
|
|
123
|
+
<span class="line"><span style="color:#A6E22E"> name</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"filter"</span></span>
|
|
124
|
+
<span class="line"><span style="color:#A6E22E"> value</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"completed"</span></span>
|
|
125
|
+
<span class="line"><span style="color:#F8F8F2"> /></span></span>
|
|
126
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">>Completed</</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">></span></span>
|
|
127
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">label</span><span style="color:#F8F8F2">></span></span>
|
|
128
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">fieldset</span><span style="color:#F8F8F2">></span></span>
|
|
129
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">form-radiogroup</span><span style="color:#F8F8F2">></span></span>
|
|
130
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">basic-button</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"clear-completed"</span><span style="color:#F8F8F2">></span></span>
|
|
131
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">button</span><span style="color:#A6E22E"> type</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"button"</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"tertiary destructive"</span><span style="color:#F8F8F2">></span></span>
|
|
132
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">span</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"label"</span><span style="color:#F8F8F2">>Clear Completed</</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">></span></span>
|
|
133
|
+
<span class="line"><span style="color:#F8F8F2"> <</span><span style="color:#F92672">span</span><span style="color:#A6E22E"> class</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"badge"</span><span style="color:#F8F8F2">></</span><span style="color:#F92672">span</span><span style="color:#F8F8F2">></span></span>
|
|
134
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">button</span><span style="color:#F8F8F2">></span></span>
|
|
135
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">basic-button</span><span style="color:#F8F8F2">></span></span>
|
|
136
|
+
<span class="line"><span style="color:#F8F8F2"> </</span><span style="color:#F92672">footer</span><span style="color:#F8F8F2">></span></span>
|
|
137
|
+
<span class="line"><span style="color:#F8F8F2"></</span><span style="color:#F92672">module-todo</span><span style="color:#F8F8F2">></span></span>
|
|
138
|
+
<span class="line"></span></code></pre>
|
|
139
|
+
<basic-button class="copy">
|
|
140
|
+
<button type="button" class="secondary small">
|
|
141
|
+
<span class="label">Copy</span>
|
|
142
|
+
</button>
|
|
143
|
+
</basic-button>
|
|
144
|
+
</module-codeblock>
|
|
145
|
+
</div>
|
|
146
|
+
<div
|
|
147
|
+
role="tabpanel"
|
|
148
|
+
id="panel_module-todo_css"
|
|
149
|
+
aria-labelledby="trigger_module-todo_css"
|
|
150
|
+
hidden
|
|
151
|
+
>
|
|
152
|
+
<module-codeblock
|
|
153
|
+
language="css"
|
|
154
|
+
copy-success="Copied!"
|
|
155
|
+
copy-error="Error trying to copy to clipboard!"
|
|
156
|
+
>
|
|
157
|
+
<p class="meta">
|
|
158
|
+
<span class="file">module-todo.css</span>
|
|
159
|
+
<span class="language">css</span>
|
|
160
|
+
</p>
|
|
161
|
+
<pre class="shiki monokai" style="background-color:#272822;color:#F8F8F2" tabindex="0"><code><span class="line"><span style="color:#F92672">module-todo</span><span style="color:#F8F8F2"> {</span></span>
|
|
162
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> display</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">flex</span><span style="color:#F8F8F2">;</span></span>
|
|
163
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> flex-direction</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">column</span><span style="color:#F8F8F2">;</span></span>
|
|
164
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> gap</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">var</span><span style="color:#F8F8F2">(--space-l);</span></span>
|
|
165
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> container-type</span><span style="color:#F8F8F2">: inline-size;</span></span>
|
|
166
|
+
<span class="line"></span>
|
|
167
|
+
<span class="line"><span style="color:#F8F8F2"> > form {</span></span>
|
|
168
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> display</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">flex</span><span style="color:#F8F8F2">;</span></span>
|
|
169
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> flex-direction</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">column</span><span style="color:#F8F8F2">;</span></span>
|
|
170
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> align-items</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">flex-start</span><span style="color:#F8F8F2">;</span></span>
|
|
171
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> gap</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">var</span><span style="color:#F8F8F2">(--space-m);</span></span>
|
|
172
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> justify-content</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">space-between</span><span style="color:#F8F8F2">;</span></span>
|
|
173
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
174
|
+
<span class="line"></span>
|
|
175
|
+
<span class="line"><span style="color:#F92672"> ></span><span style="color:#F92672"> module-list</span><span style="color:#F8F8F2"> {</span></span>
|
|
176
|
+
<span class="line"><span style="color:#F8F8F2"> &[</span><span style="color:#66D9EF;font-style:italic">filter</span><span style="color:#F8F8F2">="completed"] li:not(:has([checked])) {</span></span>
|
|
177
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> display</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">none</span><span style="color:#F8F8F2">;</span></span>
|
|
178
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
179
|
+
<span class="line"></span>
|
|
180
|
+
<span class="line"><span style="color:#F8F8F2"> &[</span><span style="color:#A6E22E">filter</span><span style="color:#F92672">=</span><span style="color:#E6DB74">"active"</span><span style="color:#F8F8F2">] </span><span style="color:#F92672">li</span><span style="color:#A6E22E">:has</span><span style="color:#F8F8F2">([</span><span style="color:#A6E22E">checked</span><span style="color:#F8F8F2">]) {</span></span>
|
|
181
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> display</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">none</span><span style="color:#F8F8F2">;</span></span>
|
|
182
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
183
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
184
|
+
<span class="line"></span>
|
|
185
|
+
<span class="line"><span style="color:#F8F8F2"> & </span><span style="color:#F92672">ol</span><span style="color:#F8F8F2"> {</span></span>
|
|
186
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> display</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">flex</span><span style="color:#F8F8F2">;</span></span>
|
|
187
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> flex-direction</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">column</span><span style="color:#F8F8F2">;</span></span>
|
|
188
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> gap</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">var</span><span style="color:#F8F8F2">(--space-m);</span></span>
|
|
189
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> list-style</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">none</span><span style="color:#F8F8F2">;</span></span>
|
|
190
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> margin</span><span style="color:#F8F8F2">: </span><span style="color:#AE81FF">0</span><span style="color:#F8F8F2">;</span></span>
|
|
191
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> padding</span><span style="color:#F8F8F2">: </span><span style="color:#AE81FF">0</span><span style="color:#F8F8F2">;</span></span>
|
|
192
|
+
<span class="line"></span>
|
|
193
|
+
<span class="line"><span style="color:#F8F8F2"> & li {</span></span>
|
|
194
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> display</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">flex</span><span style="color:#F8F8F2">;</span></span>
|
|
195
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> justify-content</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">space-between</span><span style="color:#F8F8F2">;</span></span>
|
|
196
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> gap</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">var</span><span style="color:#F8F8F2">(--space-m);</span></span>
|
|
197
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> margin</span><span style="color:#F8F8F2">: </span><span style="color:#AE81FF">0</span><span style="color:#F8F8F2">;</span></span>
|
|
198
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> padding</span><span style="color:#F8F8F2">: </span><span style="color:#AE81FF">0</span><span style="color:#F8F8F2">;</span></span>
|
|
199
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
200
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
201
|
+
<span class="line"></span>
|
|
202
|
+
<span class="line"><span style="color:#F92672"> ></span><span style="color:#F92672"> footer</span><span style="color:#F8F8F2"> {</span></span>
|
|
203
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> display</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">grid</span><span style="color:#F8F8F2">;</span></span>
|
|
204
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> grid-template-columns</span><span style="color:#F8F8F2">: </span><span style="color:#AE81FF">1</span><span style="color:#F92672">fr</span><span style="color:#AE81FF"> 1</span><span style="color:#F92672">fr</span><span style="color:#F8F8F2">;</span></span>
|
|
205
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> grid-template-areas</span><span style="color:#F8F8F2">: </span><span style="color:#E6DB74">"filter filter"</span><span style="color:#E6DB74"> "count clear"</span><span style="color:#F8F8F2">;</span></span>
|
|
206
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> align-items</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">center</span><span style="color:#F8F8F2">;</span></span>
|
|
207
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> gap</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">var</span><span style="color:#F8F8F2">(--space-m);</span></span>
|
|
208
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> margin</span><span style="color:#F8F8F2">: </span><span style="color:#AE81FF">0</span><span style="color:#F8F8F2">;</span></span>
|
|
209
|
+
<span class="line"></span>
|
|
210
|
+
<span class="line"><span style="color:#F8F8F2"> & basic-pluralize {</span></span>
|
|
211
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> grid-area</span><span style="color:#F8F8F2">: count;</span></span>
|
|
212
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> justify-self</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">start</span><span style="color:#F8F8F2">;</span></span>
|
|
213
|
+
<span class="line"></span>
|
|
214
|
+
<span class="line"><span style="color:#F8F8F2"> & p {</span></span>
|
|
215
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> font-size</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">var</span><span style="color:#F8F8F2">(--font-size-s);</span></span>
|
|
216
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> margin</span><span style="color:#F8F8F2">: </span><span style="color:#AE81FF">0</span><span style="color:#F8F8F2">;</span></span>
|
|
217
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
218
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
219
|
+
<span class="line"></span>
|
|
220
|
+
<span class="line"><span style="color:#A6E22E"> .split-button</span><span style="color:#F8F8F2"> {</span></span>
|
|
221
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> grid-area</span><span style="color:#F8F8F2">: filter;</span></span>
|
|
222
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> justify-self</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">center</span><span style="color:#F8F8F2">;</span></span>
|
|
223
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
224
|
+
<span class="line"></span>
|
|
225
|
+
<span class="line"><span style="color:#A6E22E"> .clear-completed</span><span style="color:#F8F8F2"> {</span></span>
|
|
226
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> grid-area</span><span style="color:#F8F8F2">: clear;</span></span>
|
|
227
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> justify-self</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">end</span><span style="color:#F8F8F2">;</span></span>
|
|
228
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
229
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
230
|
+
<span class="line"><span style="color:#F8F8F2">}</span></span>
|
|
231
|
+
<span class="line"></span>
|
|
232
|
+
<span class="line"><span style="color:#F92672">@container</span><span style="color:#F8F8F2"> (width > 32rem) {</span></span>
|
|
233
|
+
<span class="line"><span style="color:#F92672"> module-todo</span><span style="color:#F8F8F2"> {</span></span>
|
|
234
|
+
<span class="line"><span style="color:#F8F8F2"> & form {</span></span>
|
|
235
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> flex-direction</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">row</span><span style="color:#F8F8F2">;</span></span>
|
|
236
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> align-items</span><span style="color:#F8F8F2">: </span><span style="color:#66D9EF">flex-end</span><span style="color:#F8F8F2">;</span></span>
|
|
237
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
238
|
+
<span class="line"></span>
|
|
239
|
+
<span class="line"><span style="color:#F8F8F2"> & </span><span style="color:#F92672">footer</span><span style="color:#F8F8F2"> {</span></span>
|
|
240
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> grid-template-columns</span><span style="color:#F8F8F2">: </span><span style="color:#AE81FF">1</span><span style="color:#F92672">fr</span><span style="color:#AE81FF"> 1</span><span style="color:#F92672">fr</span><span style="color:#AE81FF"> 1</span><span style="color:#F92672">fr</span><span style="color:#F8F8F2">;</span></span>
|
|
241
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> grid-template-areas</span><span style="color:#F8F8F2">: </span><span style="color:#E6DB74">"count filter clear"</span><span style="color:#F8F8F2">;</span></span>
|
|
242
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
243
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
244
|
+
<span class="line"><span style="color:#F8F8F2">}</span></span>
|
|
245
|
+
<span class="line"></span></code></pre>
|
|
246
|
+
<basic-button class="copy">
|
|
247
|
+
<button type="button" class="secondary small">
|
|
248
|
+
<span class="label">Copy</span>
|
|
249
|
+
</button>
|
|
250
|
+
</basic-button>
|
|
251
|
+
</module-codeblock>
|
|
252
|
+
</div>
|
|
253
|
+
<div
|
|
254
|
+
role="tabpanel"
|
|
255
|
+
id="panel_module-todo_ts"
|
|
256
|
+
aria-labelledby="trigger_module-todo_ts"
|
|
257
|
+
|
|
258
|
+
>
|
|
259
|
+
<module-codeblock
|
|
260
|
+
language="ts"
|
|
261
|
+
copy-success="Copied!"
|
|
262
|
+
copy-error="Error trying to copy to clipboard!"
|
|
263
|
+
>
|
|
264
|
+
<p class="meta">
|
|
265
|
+
<span class="file">module-todo.ts</span>
|
|
266
|
+
<span class="language">ts</span>
|
|
267
|
+
</p>
|
|
268
|
+
<pre class="shiki monokai" style="background-color:#272822;color:#F8F8F2" tabindex="0"><code><span class="line"><span style="color:#F92672">import</span><span style="color:#F8F8F2"> {</span></span>
|
|
269
|
+
<span class="line"><span style="color:#F92672"> type</span><span style="color:#F8F8F2"> Component,</span></span>
|
|
270
|
+
<span class="line"><span style="color:#F8F8F2"> createCollection,</span></span>
|
|
271
|
+
<span class="line"><span style="color:#F8F8F2"> defineComponent,</span></span>
|
|
272
|
+
<span class="line"><span style="color:#F8F8F2"> on,</span></span>
|
|
273
|
+
<span class="line"><span style="color:#F8F8F2"> pass,</span></span>
|
|
274
|
+
<span class="line"><span style="color:#F8F8F2"> setAttribute,</span></span>
|
|
275
|
+
<span class="line"><span style="color:#F8F8F2">} </span><span style="color:#F92672">from</span><span style="color:#E6DB74"> '../..'</span></span>
|
|
276
|
+
<span class="line"><span style="color:#F92672">import</span><span style="color:#F8F8F2"> { BasicButtonProps } </span><span style="color:#F92672">from</span><span style="color:#E6DB74"> '../basic-button/basic-button'</span></span>
|
|
277
|
+
<span class="line"><span style="color:#F92672">import</span><span style="color:#F8F8F2"> { BasicPluralizeProps } </span><span style="color:#F92672">from</span><span style="color:#E6DB74"> '../basic-pluralize/basic-pluralize'</span></span>
|
|
278
|
+
<span class="line"><span style="color:#F92672">import</span><span style="color:#F8F8F2"> { FormRadiogroupProps } </span><span style="color:#F92672">from</span><span style="color:#E6DB74"> '../form-radiogroup/form-radiogroup'</span></span>
|
|
279
|
+
<span class="line"><span style="color:#F92672">import</span><span style="color:#F8F8F2"> { FormTextboxProps } </span><span style="color:#F92672">from</span><span style="color:#E6DB74"> '../form-textbox/form-textbox'</span></span>
|
|
280
|
+
<span class="line"><span style="color:#F92672">import</span><span style="color:#F8F8F2"> { ModuleListProps } </span><span style="color:#F92672">from</span><span style="color:#E6DB74"> '../module-list/module-list'</span></span>
|
|
281
|
+
<span class="line"></span>
|
|
282
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic">type</span><span> </span><span style="color:#A6E22E;text-decoration:underline">ModuleTodoUI</span><span style="color:#F92672"> =</span><span style="color:#F8F8F2"> {</span></span>
|
|
283
|
+
<span class="line"><span style="color:#F8F8F2"> form</span><span style="color:#F92672">:</span><span> </span><span style="color:#A6E22E;text-decoration:underline">HTMLFormElement</span></span>
|
|
284
|
+
<span class="line"><span style="color:#F8F8F2"> textbox</span><span style="color:#F92672">:</span><span> </span><span style="color:#A6E22E;text-decoration:underline">Component</span><span style="color:#F8F8F2"><</span><span style="color:#A6E22E;text-decoration:underline">FormTextboxProps</span><span style="color:#F8F8F2">></span></span>
|
|
285
|
+
<span class="line"><span style="color:#F8F8F2"> submit</span><span style="color:#F92672">:</span><span> </span><span style="color:#A6E22E;text-decoration:underline">Component</span><span style="color:#F8F8F2"><</span><span style="color:#A6E22E;text-decoration:underline">BasicButtonProps</span><span style="color:#F8F8F2">></span></span>
|
|
286
|
+
<span class="line"><span style="color:#F8F8F2"> list</span><span style="color:#F92672">:</span><span> </span><span style="color:#A6E22E;text-decoration:underline">Component</span><span style="color:#F8F8F2"><</span><span style="color:#A6E22E;text-decoration:underline">ModuleListProps</span><span style="color:#F8F8F2">></span></span>
|
|
287
|
+
<span class="line"><span style="color:#F8F8F2"> count</span><span style="color:#F92672">:</span><span> </span><span style="color:#A6E22E;text-decoration:underline">Component</span><span style="color:#F8F8F2"><</span><span style="color:#A6E22E;text-decoration:underline">BasicPluralizeProps</span><span style="color:#F8F8F2">></span></span>
|
|
288
|
+
<span class="line"><span style="color:#F8F8F2"> filter</span><span style="color:#F92672">:</span><span> </span><span style="color:#A6E22E;text-decoration:underline">Component</span><span style="color:#F8F8F2"><</span><span style="color:#A6E22E;text-decoration:underline">FormRadiogroupProps</span><span style="color:#F8F8F2">></span></span>
|
|
289
|
+
<span class="line"><span style="color:#F8F8F2"> clearCompleted</span><span style="color:#F92672">:</span><span> </span><span style="color:#A6E22E;text-decoration:underline">Component</span><span style="color:#F8F8F2"><</span><span style="color:#A6E22E;text-decoration:underline">BasicButtonProps</span><span style="color:#F8F8F2">></span></span>
|
|
290
|
+
<span class="line"><span style="color:#F8F8F2">}</span></span>
|
|
291
|
+
<span class="line"></span>
|
|
292
|
+
<span class="line"><span style="color:#F92672">declare</span><span style="color:#F8F8F2"> global {</span></span>
|
|
293
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> interface</span><span> </span><span style="color:#A6E22E;text-decoration:underline">HTMLElementTagNameMap</span><span style="color:#F8F8F2"> {</span></span>
|
|
294
|
+
<span class="line"><span style="color:#E6DB74"> 'module-todo'</span><span style="color:#F92672">:</span><span> </span><span style="color:#A6E22E;text-decoration:underline">Component</span><span style="color:#F8F8F2"><{}></span></span>
|
|
295
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
296
|
+
<span class="line"><span style="color:#F8F8F2">}</span></span>
|
|
297
|
+
<span class="line"></span>
|
|
298
|
+
<span class="line"><span style="color:#F92672">export</span><span style="color:#F92672"> default</span><span style="color:#A6E22E"> defineComponent</span><span style="color:#F8F8F2"><{}, </span><span style="color:#A6E22E;text-decoration:underline">ModuleTodoUI</span><span style="color:#F8F8F2">>(</span></span>
|
|
299
|
+
<span class="line"><span style="color:#E6DB74"> 'module-todo'</span><span style="color:#F8F8F2">,</span></span>
|
|
300
|
+
<span class="line"><span style="color:#F8F8F2"> {},</span></span>
|
|
301
|
+
<span class="line"><span style="color:#F8F8F2"> ({ </span><span style="color:#FD971F;font-style:italic">first</span><span style="color:#F8F8F2"> }) </span><span style="color:#66D9EF;font-style:italic">=></span><span style="color:#F8F8F2"> ({</span></span>
|
|
302
|
+
<span class="line"><span style="color:#F8F8F2"> form: </span><span style="color:#A6E22E">first</span><span style="color:#F8F8F2">(</span><span style="color:#E6DB74">'form'</span><span style="color:#F8F8F2">, </span><span style="color:#E6DB74">'Add a form element to enter a new todo item.'</span><span style="color:#F8F8F2">),</span></span>
|
|
303
|
+
<span class="line"><span style="color:#F8F8F2"> textbox: </span><span style="color:#A6E22E">first</span><span style="color:#F8F8F2">(</span></span>
|
|
304
|
+
<span class="line"><span style="color:#E6DB74"> 'form-textbox'</span><span style="color:#F8F8F2">,</span></span>
|
|
305
|
+
<span class="line"><span style="color:#E6DB74"> 'Add <form-textbox> component to enter a new todo item.'</span><span style="color:#F8F8F2">,</span></span>
|
|
306
|
+
<span class="line"><span style="color:#F8F8F2"> ),</span></span>
|
|
307
|
+
<span class="line"><span style="color:#F8F8F2"> submit: </span><span style="color:#A6E22E">first</span><span style="color:#F8F8F2">(</span></span>
|
|
308
|
+
<span class="line"><span style="color:#E6DB74"> 'basic-button.submit'</span><span style="color:#F8F8F2">,</span></span>
|
|
309
|
+
<span class="line"><span style="color:#E6DB74"> 'Add <basic-button.submit> component to submit the form.'</span><span style="color:#F8F8F2">,</span></span>
|
|
310
|
+
<span class="line"><span style="color:#F8F8F2"> ),</span></span>
|
|
311
|
+
<span class="line"><span style="color:#F8F8F2"> list: </span><span style="color:#A6E22E">first</span><span style="color:#F8F8F2">(</span></span>
|
|
312
|
+
<span class="line"><span style="color:#E6DB74"> 'module-list'</span><span style="color:#F8F8F2">,</span></span>
|
|
313
|
+
<span class="line"><span style="color:#E6DB74"> 'Add <module-list> component to display a list of todo items.'</span><span style="color:#F8F8F2">,</span></span>
|
|
314
|
+
<span class="line"><span style="color:#F8F8F2"> ),</span></span>
|
|
315
|
+
<span class="line"><span style="color:#F8F8F2"> count: </span><span style="color:#A6E22E">first</span><span style="color:#F8F8F2">(</span></span>
|
|
316
|
+
<span class="line"><span style="color:#E6DB74"> 'basic-pluralize'</span><span style="color:#F8F8F2">,</span></span>
|
|
317
|
+
<span class="line"><span style="color:#E6DB74"> 'Add <basic-pluralize> component to display the number of todo items.'</span><span style="color:#F8F8F2">,</span></span>
|
|
318
|
+
<span class="line"><span style="color:#F8F8F2"> ),</span></span>
|
|
319
|
+
<span class="line"><span style="color:#F8F8F2"> filter: </span><span style="color:#A6E22E">first</span><span style="color:#F8F8F2">(</span></span>
|
|
320
|
+
<span class="line"><span style="color:#E6DB74"> 'form-radiogroup'</span><span style="color:#F8F8F2">,</span></span>
|
|
321
|
+
<span class="line"><span style="color:#E6DB74"> 'Add <form-radiogroup> component to filter todo items.'</span><span style="color:#F8F8F2">,</span></span>
|
|
322
|
+
<span class="line"><span style="color:#F8F8F2"> ),</span></span>
|
|
323
|
+
<span class="line"><span style="color:#F8F8F2"> clearCompleted: </span><span style="color:#A6E22E">first</span><span style="color:#F8F8F2">(</span></span>
|
|
324
|
+
<span class="line"><span style="color:#E6DB74"> 'basic-button.clear-completed'</span><span style="color:#F8F8F2">,</span></span>
|
|
325
|
+
<span class="line"><span style="color:#E6DB74"> 'Add <basic-button.clear-completed> component to clear completed todo items.'</span><span style="color:#F8F8F2">,</span></span>
|
|
326
|
+
<span class="line"><span style="color:#F8F8F2"> ),</span></span>
|
|
327
|
+
<span class="line"><span style="color:#F8F8F2"> }),</span></span>
|
|
328
|
+
<span class="line"><span style="color:#F8F8F2"> ({ </span><span style="color:#FD971F;font-style:italic">textbox</span><span style="color:#F8F8F2">, </span><span style="color:#FD971F;font-style:italic">list</span><span style="color:#F8F8F2">, </span><span style="color:#FD971F;font-style:italic">filter</span><span style="color:#F8F8F2"> }) </span><span style="color:#66D9EF;font-style:italic">=></span><span style="color:#F8F8F2"> {</span></span>
|
|
329
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> const</span><span style="color:#F8F8F2"> active </span><span style="color:#F92672">=</span><span style="color:#A6E22E"> createCollection</span><span style="color:#F8F8F2">(list, </span><span style="color:#E6DB74">'form-checkbox:not([checked])'</span><span style="color:#F8F8F2">)</span></span>
|
|
330
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> const</span><span style="color:#F8F8F2"> completed </span><span style="color:#F92672">=</span><span style="color:#A6E22E"> createCollection</span><span style="color:#F8F8F2">(list, </span><span style="color:#E6DB74">'form-checkbox[checked]'</span><span style="color:#F8F8F2">)</span></span>
|
|
331
|
+
<span class="line"></span>
|
|
332
|
+
<span class="line"><span style="color:#F92672"> return</span><span style="color:#F8F8F2"> {</span></span>
|
|
333
|
+
<span class="line"><span style="color:#F8F8F2"> form: </span><span style="color:#A6E22E">on</span><span style="color:#F8F8F2">(</span><span style="color:#E6DB74">'submit'</span><span style="color:#F8F8F2">, </span><span style="color:#FD971F;font-style:italic">e</span><span style="color:#66D9EF;font-style:italic"> =></span><span style="color:#F8F8F2"> {</span></span>
|
|
334
|
+
<span class="line"><span style="color:#F8F8F2"> e.</span><span style="color:#A6E22E">preventDefault</span><span style="color:#F8F8F2">()</span></span>
|
|
335
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> const</span><span style="color:#F8F8F2"> value </span><span style="color:#F92672">=</span><span style="color:#F8F8F2"> textbox.value.</span><span style="color:#A6E22E">trim</span><span style="color:#F8F8F2">()</span></span>
|
|
336
|
+
<span class="line"><span style="color:#F92672"> if</span><span style="color:#F8F8F2"> (</span><span style="color:#F92672">!</span><span style="color:#F8F8F2">value) </span><span style="color:#F92672">return</span></span>
|
|
337
|
+
<span class="line"><span style="color:#F8F8F2"> list.</span><span style="color:#A6E22E">add</span><span style="color:#F8F8F2">(</span><span style="color:#FD971F;font-style:italic">item</span><span style="color:#66D9EF;font-style:italic"> =></span><span style="color:#F8F8F2"> {</span></span>
|
|
338
|
+
<span class="line"><span style="color:#F8F8F2"> item.</span><span style="color:#A6E22E">querySelector</span><span style="color:#F8F8F2">(</span><span style="color:#E6DB74">'slot'</span><span style="color:#F8F8F2">)?.</span><span style="color:#A6E22E">replaceWith</span><span style="color:#F8F8F2">(value)</span></span>
|
|
339
|
+
<span class="line"><span style="color:#F8F8F2"> })</span></span>
|
|
340
|
+
<span class="line"><span style="color:#F8F8F2"> textbox.</span><span style="color:#A6E22E">clear</span><span style="color:#F8F8F2">()</span></span>
|
|
341
|
+
<span class="line"><span style="color:#F8F8F2"> }),</span></span>
|
|
342
|
+
<span class="line"><span style="color:#F8F8F2"> submit: </span><span style="color:#A6E22E">pass</span><span style="color:#F8F8F2">({ </span><span style="color:#A6E22E">disabled</span><span style="color:#F8F8F2">: () </span><span style="color:#66D9EF;font-style:italic">=></span><span style="color:#F92672"> !</span><span style="color:#F8F8F2">textbox.length }),</span></span>
|
|
343
|
+
<span class="line"><span style="color:#F8F8F2"> list: </span><span style="color:#A6E22E">setAttribute</span><span style="color:#F8F8F2">(</span><span style="color:#E6DB74">'filter'</span><span style="color:#F8F8F2">, () </span><span style="color:#66D9EF;font-style:italic">=></span><span style="color:#F8F8F2"> filter?.value </span><span style="color:#F92672">||</span><span style="color:#E6DB74"> 'all'</span><span style="color:#F8F8F2">),</span></span>
|
|
344
|
+
<span class="line"><span style="color:#F8F8F2"> count: </span><span style="color:#A6E22E">pass</span><span style="color:#F8F8F2">({ </span><span style="color:#A6E22E">count</span><span style="color:#F8F8F2">: () </span><span style="color:#66D9EF;font-style:italic">=></span><span style="color:#F8F8F2"> active.length }),</span></span>
|
|
345
|
+
<span class="line"><span style="color:#F8F8F2"> clearCompleted: [</span></span>
|
|
346
|
+
<span class="line"><span style="color:#A6E22E"> pass</span><span style="color:#F8F8F2">({</span></span>
|
|
347
|
+
<span class="line"><span style="color:#A6E22E"> disabled</span><span style="color:#F8F8F2">: () </span><span style="color:#66D9EF;font-style:italic">=></span><span style="color:#F92672"> !</span><span style="color:#F8F8F2">completed.length,</span></span>
|
|
348
|
+
<span class="line"><span style="color:#A6E22E"> badge</span><span style="color:#F8F8F2">: () </span><span style="color:#66D9EF;font-style:italic">=></span><span style="color:#F8F8F2"> (completed.length </span><span style="color:#F92672">?</span><span style="color:#A6E22E"> String</span><span style="color:#F8F8F2">(completed.length) </span><span style="color:#F92672">:</span><span style="color:#E6DB74"> ''</span><span style="color:#F8F8F2">),</span></span>
|
|
349
|
+
<span class="line"><span style="color:#F8F8F2"> }),</span></span>
|
|
350
|
+
<span class="line"><span style="color:#A6E22E"> on</span><span style="color:#F8F8F2">(</span><span style="color:#E6DB74">'click'</span><span style="color:#F8F8F2">, () </span><span style="color:#66D9EF;font-style:italic">=></span><span style="color:#F8F8F2"> {</span></span>
|
|
351
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> const</span><span style="color:#F8F8F2"> items </span><span style="color:#F92672">=</span><span style="color:#F8F8F2"> completed.</span><span style="color:#A6E22E">get</span><span style="color:#F8F8F2">()</span></span>
|
|
352
|
+
<span class="line"><span style="color:#F92672"> for</span><span style="color:#F8F8F2"> (</span><span style="color:#66D9EF;font-style:italic">let</span><span style="color:#F8F8F2"> i </span><span style="color:#F92672">=</span><span style="color:#F8F8F2"> items.length </span><span style="color:#F92672">-</span><span style="color:#AE81FF"> 1</span><span style="color:#F8F8F2">; i </span><span style="color:#F92672">>=</span><span style="color:#AE81FF"> 0</span><span style="color:#F8F8F2">; i</span><span style="color:#F92672">--</span><span style="color:#F8F8F2">)</span></span>
|
|
353
|
+
<span class="line"><span style="color:#F8F8F2"> items[i].</span><span style="color:#A6E22E">closest</span><span style="color:#F8F8F2">(</span><span style="color:#E6DB74">'li'</span><span style="color:#F8F8F2">)?.</span><span style="color:#A6E22E">remove</span><span style="color:#F8F8F2">()</span></span>
|
|
354
|
+
<span class="line"><span style="color:#F8F8F2"> }),</span></span>
|
|
355
|
+
<span class="line"><span style="color:#F8F8F2"> ],</span></span>
|
|
356
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
357
|
+
<span class="line"><span style="color:#F8F8F2"> },</span></span>
|
|
358
|
+
<span class="line"><span style="color:#F8F8F2">)</span></span>
|
|
359
|
+
<span class="line"></span></code></pre>
|
|
360
|
+
<basic-button class="copy">
|
|
361
|
+
<button type="button" class="secondary small">
|
|
362
|
+
<span class="label">Copy</span>
|
|
363
|
+
</button>
|
|
364
|
+
</basic-button>
|
|
365
|
+
</module-codeblock>
|
|
366
|
+
</div>
|
|
367
|
+
</module-tabgroup>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<module-tabgroup>
|
|
2
|
+
<div role="tablist">
|
|
3
|
+
<button
|
|
4
|
+
type="button"
|
|
5
|
+
role="tab"
|
|
6
|
+
id="trigger_module-with-type_html"
|
|
7
|
+
aria-controls="panel_module-with-type_html"
|
|
8
|
+
aria-selected="true"
|
|
9
|
+
tabindex="0"
|
|
10
|
+
>
|
|
11
|
+
HTML
|
|
12
|
+
</button>
|
|
13
|
+
</div> <div
|
|
14
|
+
role="tabpanel"
|
|
15
|
+
id="panel_module-with-type_html"
|
|
16
|
+
aria-labelledby="trigger_module-with-type_html"
|
|
17
|
+
|
|
18
|
+
>
|
|
19
|
+
<module-codeblock
|
|
20
|
+
language="html"
|
|
21
|
+
copy-success="Copied!"
|
|
22
|
+
copy-error="Error trying to copy to clipboard!"
|
|
23
|
+
>
|
|
24
|
+
<p class="meta">
|
|
25
|
+
<span class="file">module-with-type.html</span>
|
|
26
|
+
<span class="language">html</span>
|
|
27
|
+
</p>
|
|
28
|
+
<pre class="shiki monokai" style="background-color:#272822;color:#F8F8F2" tabindex="0"><code><span class="line"><span style="color:#F8F8F2"><</span><span style="color:#F92672">h3</span><span style="color:#F8F8F2">>Module Script Test</</span><span style="color:#F92672">h3</span><span style="color:#F8F8F2">></span></span>
|
|
29
|
+
<span class="line"><span style="color:#F8F8F2"><</span><span style="color:#F92672">p</span><span style="color:#F8F8F2">>This content includes a module script to test type attribute preservation:</</span><span style="color:#F92672">p</span><span style="color:#F8F8F2">></span></span>
|
|
30
|
+
<span class="line"></span>
|
|
31
|
+
<span class="line"><span style="color:#F8F8F2"><</span><span style="color:#F92672">div</span><span style="color:#A6E22E"> id</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"module-test-output"</span><span style="color:#F8F8F2">></</span><span style="color:#F92672">div</span><span style="color:#F8F8F2">></span></span>
|
|
32
|
+
<span class="line"></span>
|
|
33
|
+
<span class="line"><span style="color:#F8F8F2"><</span><span style="color:#F92672">script</span><span style="color:#A6E22E"> type</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"module"</span><span style="color:#F8F8F2">></span></span>
|
|
34
|
+
<span class="line"><span style="color:#88846F"> // Test ES6 module script execution</span></span>
|
|
35
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> const</span><span style="color:#F8F8F2"> output </span><span style="color:#F92672">=</span><span style="color:#F8F8F2"> document.</span><span style="color:#A6E22E">getElementById</span><span style="color:#F8F8F2">(</span><span style="color:#E6DB74">'module-test-output'</span><span style="color:#F8F8F2">);</span></span>
|
|
36
|
+
<span class="line"><span style="color:#F92672"> if</span><span style="color:#F8F8F2"> (output) {</span></span>
|
|
37
|
+
<span class="line"><span style="color:#F8F8F2"> output.textContent </span><span style="color:#F92672">=</span><span style="color:#E6DB74"> 'Module script executed successfully!'</span><span style="color:#F8F8F2">;</span></span>
|
|
38
|
+
<span class="line"><span style="color:#F8F8F2"> output.</span><span style="color:#A6E22E">setAttribute</span><span style="color:#F8F8F2">(</span><span style="color:#E6DB74">'data-module-executed'</span><span style="color:#F8F8F2">, </span><span style="color:#E6DB74">'true'</span><span style="color:#F8F8F2">);</span></span>
|
|
39
|
+
<span class="line"><span style="color:#F8F8F2"> }</span></span>
|
|
40
|
+
<span class="line"></span>
|
|
41
|
+
<span class="line"><span style="color:#88846F"> // Also test module features like import/export syntax</span></span>
|
|
42
|
+
<span class="line"><span style="color:#66D9EF;font-style:italic"> const</span><span style="color:#F8F8F2"> testData </span><span style="color:#F92672">=</span><span style="color:#F8F8F2"> { message: </span><span style="color:#E6DB74">'ES6 modules work!'</span><span style="color:#F8F8F2">, timestamp: Date.</span><span style="color:#A6E22E">now</span><span style="color:#F8F8F2">() };</span></span>
|
|
43
|
+
<span class="line"></span>
|
|
44
|
+
<span class="line"><span style="color:#88846F"> // Set a global for testing</span></span>
|
|
45
|
+
<span class="line"><span style="color:#F8F8F2"> window.moduleTestResult </span><span style="color:#F92672">=</span><span style="color:#F8F8F2"> testData;</span></span>
|
|
46
|
+
<span class="line"><span style="color:#F8F8F2"></</span><span style="color:#F92672">script</span><span style="color:#F8F8F2">></span></span>
|
|
47
|
+
<span class="line"></span>
|
|
48
|
+
<span class="line"><span style="color:#F8F8F2"><</span><span style="color:#F92672">script</span><span style="color:#A6E22E"> type</span><span style="color:#F8F8F2">=</span><span style="color:#E6DB74">"text/javascript"</span><span style="color:#F8F8F2">></span></span>
|
|
49
|
+
<span class="line"><span style="color:#88846F"> // Regular script for comparison</span></span>
|
|
50
|
+
<span class="line"><span style="color:#F8F8F2"> console.</span><span style="color:#A6E22E">log</span><span style="color:#F8F8F2">(</span><span style="color:#E6DB74">'Regular script also executed'</span><span style="color:#F8F8F2">);</span></span>
|
|
51
|
+
<span class="line"><span style="color:#F8F8F2"> window.regularScriptExecuted </span><span style="color:#F92672">=</span><span style="color:#AE81FF"> true</span><span style="color:#F8F8F2">;</span></span>
|
|
52
|
+
<span class="line"><span style="color:#F8F8F2"></</span><span style="color:#F92672">script</span><span style="color:#F8F8F2">></span></span>
|
|
53
|
+
<span class="line"></span>
|
|
54
|
+
<span class="line"><span style="color:#F8F8F2"><</span><span style="color:#F92672">p</span><span style="color:#F8F8F2">>This content tests both module and regular script execution.</</span><span style="color:#F92672">p</span><span style="color:#F8F8F2">></span></span>
|
|
55
|
+
<span class="line"></span></code></pre>
|
|
56
|
+
<basic-button class="copy">
|
|
57
|
+
<button type="button" class="secondary small">
|
|
58
|
+
<span class="label">Copy</span>
|
|
59
|
+
</button>
|
|
60
|
+
</basic-button>
|
|
61
|
+
</module-codeblock>
|
|
62
|
+
</div>
|
|
63
|
+
</module-tabgroup>
|