@supersoniks/concorde 5.1.2 → 5.1.3-immutable.1
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/.agents/skills/concorde-docs/SKILL.md +1 -1
- package/.claude/skills +1 -0
- package/.github/workflows/ci.yml +21 -0
- package/.github-export-ignore +30 -0
- package/CONTRIBUTING.md +59 -0
- package/DEV.md +54 -0
- package/LICENSE +21 -0
- package/OPEN_SOURCE_CHECKPOINT.md +133 -0
- package/README.md +1 -1
- package/ai/README.md +29 -41
- package/ai/skills/concorde/SKILL.md +54 -324
- package/ai/skills/concorde/rules/composition.md +32 -0
- package/ai/skills/concorde/rules/data.md +47 -0
- package/ai/skills/concorde/rules/http.md +25 -0
- package/ai/skills/concorde/rules/lists-forms.md +35 -0
- package/ai/skills/concorde/rules/styling.md +46 -0
- package/ai/skills/concorde/rules/troubleshooting.md +45 -0
- package/build-infos.json +1 -1
- package/concorde-core.bundle.js +177 -177
- package/concorde-core.es.js +4993 -4833
- package/custom-elements-manifest.public.config.mjs +8 -0
- package/{.tmp-cem/custom-elements.json → custom-elements.json} +11722 -8868
- package/dist/concorde-core.bundle.js +177 -177
- package/dist/concorde-core.es.js +4993 -4833
- package/dist/docs-mock-api-sw.js +58 -223
- package/dist/docs-mock-api-sw.js.map +4 -4
- package/dist/img/og-concorde.jpg +0 -0
- package/dist/robots.txt +11 -10
- package/docs/assets/index-CD4WyL6o.css +1 -0
- package/docs/assets/index-D_alEsng.js +12122 -0
- package/docs/crawl/core/components/functional/date/date.html +190 -0
- package/docs/crawl/core/components/functional/fetch/fetch.html +109 -0
- package/docs/crawl/core/components/functional/if/if.html +27 -0
- package/docs/crawl/core/components/functional/jsonata/jsonata.html +79 -0
- package/docs/crawl/core/components/functional/list/list.html +70 -0
- package/docs/crawl/core/components/functional/mix/mix.html +45 -0
- package/docs/crawl/core/components/functional/queue/queue.html +96 -0
- package/docs/crawl/core/components/functional/router/router.html +106 -0
- package/docs/{core → crawl/core}/components/functional/sdui/sdui-extension-points.html +8 -9
- package/docs/crawl/core/components/functional/sdui/sdui.html +368 -0
- package/docs/crawl/core/components/functional/states/states.html +66 -0
- package/docs/crawl/core/components/functional/submit/submit.html +160 -0
- package/docs/{core → crawl/core}/components/functional/subscriber/subscriber.html +5 -6
- package/docs/crawl/core/components/functional/value/value.html +51 -0
- package/docs/{core → crawl/core}/components/ui/alert/alert.html +63 -53
- package/docs/{core → crawl/core}/components/ui/alert-messages/alert-messages.html +5 -6
- package/docs/{core → crawl/core}/components/ui/badge/badge.html +33 -33
- package/docs/crawl/core/components/ui/button/button.html +150 -0
- package/docs/crawl/core/components/ui/captcha/captcha.html +112 -0
- package/docs/{core → crawl/core}/components/ui/card/card.html +11 -12
- package/docs/{core → crawl/core}/components/ui/divider/divider.html +14 -14
- package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +73 -0
- package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +266 -0
- package/docs/{core → crawl/core}/components/ui/form/form-actions/form-actions.html +23 -23
- package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +121 -0
- package/docs/crawl/core/components/ui/form/input/input.html +109 -0
- package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +38 -0
- package/docs/crawl/core/components/ui/form/radio/radio.html +56 -0
- package/docs/crawl/core/components/ui/form/select/select.html +73 -0
- package/docs/crawl/core/components/ui/form/switch/switch.html +56 -0
- package/docs/crawl/core/components/ui/form/textarea/textarea.html +59 -0
- package/docs/crawl/core/components/ui/group/group.html +104 -0
- package/docs/{core → crawl/core}/components/ui/icon/icon.html +9 -10
- package/docs/crawl/core/components/ui/image/image.html +298 -0
- package/docs/{core → crawl/core}/components/ui/link/link.html +11 -12
- package/docs/crawl/core/components/ui/loader/loader.html +124 -0
- package/docs/{core → crawl/core}/components/ui/menu/menu.html +33 -34
- package/docs/crawl/core/components/ui/modal/modal.html +342 -0
- package/docs/crawl/core/components/ui/pop/pop.html +296 -0
- package/docs/{core → crawl/core}/components/ui/progress/progress.html +7 -8
- package/docs/crawl/core/components/ui/table/table.html +545 -0
- package/docs/crawl/core/components/ui/theme/theme.html +131 -0
- package/docs/crawl/core/components/ui/toast/toast.html +233 -0
- package/docs/crawl/core/components/ui/tooltip/tooltip.html +140 -0
- package/docs/{docs/getting-started → crawl/docs/_core-concept}/dataFlow.html +29 -26
- package/docs/crawl/docs/_core-concept/overview.html +66 -0
- package/docs/crawl/docs/_core-concept/subscriber.html +75 -0
- package/docs/crawl/docs/_decorators/ancestor-attribute.html +117 -0
- package/docs/crawl/docs/_decorators/auto-subscribe.html +202 -0
- package/docs/crawl/docs/_decorators/bind.html +141 -0
- package/docs/crawl/docs/_decorators/get.html +149 -0
- package/docs/crawl/docs/_decorators/handle.html +165 -0
- package/docs/crawl/docs/_decorators/on-assign.html +355 -0
- package/docs/crawl/docs/_decorators/patch.html +78 -0
- package/docs/crawl/docs/_decorators/post.html +139 -0
- package/docs/crawl/docs/_decorators/publish.html +61 -0
- package/docs/crawl/docs/_decorators/put.html +78 -0
- package/docs/crawl/docs/_decorators/subscribe.html +109 -0
- package/docs/crawl/docs/_decorators/wait-for-ancestors.html +137 -0
- package/docs/crawl/docs/_directives/sub.html +93 -0
- package/docs/{docs/getting-started → crawl/docs/_getting-started}/ai-agents.html +11 -12
- package/docs/crawl/docs/_getting-started/concorde-manual-install.html +100 -0
- package/docs/crawl/docs/_getting-started/concorde-outside.html +58 -0
- package/docs/{docs/getting-started → crawl/docs/_getting-started}/create-a-component.html +14 -11
- package/docs/{docs/getting-started → crawl/docs/_getting-started}/my-first-component.html +22 -13
- package/docs/crawl/docs/_getting-started/my-first-subscriber.html +110 -0
- package/docs/crawl/docs/_getting-started/pubsub.html +62 -0
- package/docs/crawl/docs/_getting-started/start.html +76 -0
- package/docs/{docs/getting-started → crawl/docs/_getting-started}/theming.html +9 -10
- package/docs/{docs/misc → crawl/docs/_misc}/api-configuration.html +18 -18
- package/docs/{docs/misc → crawl/docs/_misc}/dataProviderKey.html +11 -12
- package/docs/{docs/misc → crawl/docs/_misc}/docs-mock-api.html +28 -25
- package/docs/{docs/misc → crawl/docs/_misc}/dynamic-path.html +15 -16
- package/docs/{docs/misc → crawl/docs/_misc}/endpoint.html +15 -16
- package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
- package/docs/{docs/misc → crawl/docs/_misc}/html-integration.html +15 -12
- package/docs/crawl/hubs/decorators.html +547 -0
- package/docs/crawl/hubs/form-components.html +381 -0
- package/docs/crawl/hubs/remote-data.html +452 -0
- package/docs/crawl/index.html +103 -0
- package/docs/docs-mock-api-sw.js +223 -58
- package/docs/docs-mock-api-sw.js.map +4 -4
- package/docs/index.html +68 -95
- package/docs/llms-full.txt +3610 -2231
- package/docs/llms.txt +86 -94
- package/docs/robots.txt +10 -11
- package/docs/sitemap.xml +84 -78
- package/docs/src/core/components/functional/date/date.md +231 -91
- package/docs/src/core/components/functional/fetch/fetch.md +83 -66
- package/docs/src/core/components/functional/if/if.md +3 -28
- package/docs/src/core/components/functional/jsonata/jsonata.md +37 -42
- package/docs/src/core/components/functional/list/list.md +43 -99
- package/docs/src/core/components/functional/mix/mix.md +26 -31
- package/docs/src/core/components/functional/queue/queue.md +61 -40
- package/docs/src/core/components/functional/router/router.md +65 -64
- package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
- package/docs/src/core/components/functional/sdui/component-catalog.json +1 -1
- package/docs/src/core/components/functional/sdui/example.json +86 -19
- package/docs/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
- package/docs/src/core/components/functional/sdui/sdui.md +358 -187
- package/docs/src/core/components/functional/states/states.md +61 -86
- package/docs/src/core/components/functional/submit/submit.md +72 -64
- package/docs/src/core/components/functional/value/value.md +22 -34
- package/docs/src/core/components/ui/alert/alert.md +58 -48
- package/docs/src/core/components/ui/badge/badge.md +34 -27
- package/docs/src/core/components/ui/button/button.md +106 -139
- package/docs/src/core/components/ui/captcha/captcha.md +32 -17
- package/docs/src/core/components/ui/card/card.md +6 -6
- package/docs/src/core/components/ui/divider/divider.md +11 -8
- package/docs/src/core/components/ui/form/checkbox/checkbox.md +42 -90
- package/docs/src/core/components/ui/form/fieldset/fieldset.md +75 -31
- package/docs/src/core/components/ui/form/form-actions/form-actions.md +16 -14
- package/docs/src/core/components/ui/form/form-layout/form-layout.md +29 -19
- package/docs/src/core/components/ui/form/input/input.md +95 -95
- package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +29 -0
- package/docs/src/core/components/ui/form/radio/radio.md +34 -55
- package/docs/src/core/components/ui/form/select/select.md +45 -60
- package/docs/src/core/components/ui/form/switch/switch.md +34 -57
- package/docs/src/core/components/ui/form/textarea/textarea.md +38 -55
- package/docs/src/core/components/ui/group/group.md +33 -35
- package/docs/src/core/components/ui/icon/icon.md +4 -4
- package/docs/src/core/components/ui/image/image.md +107 -41
- package/docs/src/core/components/ui/link/link.md +6 -6
- package/docs/src/core/components/ui/loader/loader.md +55 -30
- package/docs/src/core/components/ui/menu/menu.md +27 -27
- package/docs/src/core/components/ui/modal/modal.md +96 -72
- package/docs/src/core/components/ui/pop/pop.md +158 -80
- package/docs/src/core/components/ui/progress/progress.md +2 -2
- package/docs/src/core/components/ui/table/table.md +255 -91
- package/docs/src/core/components/ui/theme/theme.md +36 -11
- package/docs/src/core/components/ui/toast/toast.md +117 -48
- package/docs/src/core/components/ui/tooltip/tooltip.md +62 -27
- package/docs/{docs/getting-started → src/docs/_core-concept}/dataFlow.md +18 -17
- package/docs/src/docs/_core-concept/overview.md +57 -0
- package/docs/src/docs/_core-concept/subscriber.md +75 -0
- package/docs/src/docs/_decorators/ancestor-attribute.md +128 -0
- package/docs/src/docs/_decorators/auto-subscribe.md +202 -0
- package/docs/src/docs/_decorators/bind.md +167 -0
- package/docs/src/docs/_decorators/get.md +162 -0
- package/docs/src/docs/_decorators/handle.md +175 -0
- package/docs/src/docs/_decorators/on-assign.md +390 -0
- package/docs/src/docs/_decorators/patch.md +70 -0
- package/docs/src/docs/_decorators/post.md +146 -0
- package/docs/src/docs/_decorators/publish.md +55 -0
- package/docs/src/docs/_decorators/put.md +70 -0
- package/docs/src/docs/_decorators/subscribe.md +100 -0
- package/docs/src/docs/_decorators/wait-for-ancestors.md +163 -0
- package/docs/src/docs/_directives/sub.md +91 -0
- package/docs/src/docs/{getting-started → _getting-started}/ai-agents.md +3 -3
- package/docs/src/docs/_getting-started/concorde-manual-install.md +133 -0
- package/docs/src/docs/_getting-started/concorde-outside.md +33 -0
- package/docs/{docs/getting-started → src/docs/_getting-started}/create-a-component.md +6 -3
- package/docs/src/docs/{getting-started → _getting-started}/my-first-component.md +14 -5
- package/docs/src/docs/_getting-started/my-first-subscriber.md +120 -0
- package/docs/src/docs/_getting-started/pubsub.md +37 -0
- package/docs/src/docs/{getting-started → _getting-started}/start.md +13 -1
- package/docs/src/docs/{getting-started → _getting-started}/theming.md +2 -2
- package/docs/src/docs/{misc → _misc}/api-configuration.md +12 -10
- package/docs/src/docs/{misc → _misc}/dataProviderKey.md +4 -4
- package/docs/{docs/misc → src/docs/_misc}/docs-mock-api.md +13 -12
- package/docs/{docs/misc → src/docs/_misc}/dynamic-path.md +8 -8
- package/docs/{docs/misc → src/docs/_misc}/endpoint.md +8 -8
- package/docs/src/docs/_misc/formelement-subscriber-removal.md +115 -0
- package/docs/{docs/misc → src/docs/_misc}/html-integration.md +5 -4
- package/docs/src/docs/search/docs-search.json +4375 -2420
- package/docs/src/tsconfig.declarations.json +22 -0
- package/docs/src/tsconfig.emit.json +23 -0
- package/docs/src/tsconfig.json +2 -23
- package/gitlab/job_github_mirror.sh +39 -0
- package/index.html +89 -0
- package/package.json +22 -4
- package/public/img/og-concorde.jpg +0 -0
- package/scripts/ai-init.mjs +104 -379
- package/scripts/ai-init.test.mjs +81 -239
- package/scripts/docs-markdown-vite-plugin.ts +11 -5
- package/scripts/docs-public-url.mjs +6 -0
- package/scripts/docs.htaccess +7 -0
- package/scripts/generate-cem.mjs +244 -0
- package/scripts/generate-cem.test.mjs +122 -0
- package/scripts/generate-crawl-docs.mjs +29 -5
- package/scripts/generate-sdui-catalog.mjs +11 -10
- package/scripts/github-export.mjs +150 -0
- package/scripts/post-build-docs.js +3 -0
- package/scripts/post-build.mjs +0 -0
- package/scripts/pre-publish.mjs +2 -1
- package/scripts/site-pages.mjs +212 -0
- package/scripts/site-pages.test.mjs +116 -0
- package/site-pages/about.md +22 -0
- package/site-pages/privacy.md +32 -0
- package/src/core/components/functional/date/date.md +1 -1
- package/src/core/components/functional/example/example.ts +3 -1
- package/src/core/components/functional/if/if.ts +0 -0
- package/src/core/components/functional/list/list.demo.ts +0 -0
- package/src/core/components/functional/list/list.md +6 -2
- package/src/core/components/functional/list/list.ts +17 -4
- package/src/core/components/functional/mix/mix.md +0 -0
- package/src/core/components/functional/router/router.demo.ts +0 -0
- package/src/core/components/functional/router/router.ts +0 -0
- package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
- package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
- package/src/core/components/functional/sdui/component-catalog.json +2 -2
- package/src/core/components/functional/sdui/example.json +0 -0
- package/src/core/components/functional/sdui/sdui-immutable.spec.ts +74 -0
- package/src/core/components/functional/sdui/sdui.ts +33 -8
- package/src/core/components/functional/sdui/types.ts +0 -0
- package/src/core/components/functional/states/states.ts +0 -0
- package/src/core/components/functional/submit/submit.spec.ts +60 -0
- package/src/core/components/functional/submit/submit.ts +6 -3
- package/src/core/components/functional/subscriber/subscriber.ts +0 -0
- package/src/core/components/functional/value/value.md +0 -0
- package/src/core/components/functional/value/value.ts +0 -0
- package/src/core/components/ui/_css/size.ts +0 -0
- package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
- package/src/core/components/ui/card/card.md +1 -1
- package/src/core/components/ui/form/input/input.md +19 -1
- package/src/core/components/ui/form/input/input.ts +8 -2
- package/src/core/components/ui/form/radio/radio.md +14 -0
- package/src/core/components/ui/image/image.md +17 -17
- package/src/core/components/ui/modal/modal.md +2 -2
- package/src/core/decorators/subscriber/bind.ts +9 -14
- package/src/core/decorators/subscriber/subscribe.ts +15 -9
- package/src/core/decorators/subscriber/subscribe.type-test.ts +14 -5
- package/src/core/mixins/Subscriber.ts +0 -0
- package/src/core/utils/DataBindObserver.ts +0 -0
- package/src/core/utils/Objects.ts +0 -0
- package/src/core/utils/PublisherProxy.ts +166 -125
- package/src/core/utils/deepReadonly.spec.ts +66 -0
- package/src/core/utils/deepReadonly.ts +71 -0
- package/src/core/utils/immutableValue.spec.ts +54 -0
- package/src/core/utils/immutableValue.ts +102 -0
- package/src/core/utils/nestedDotForm.spec.ts +88 -0
- package/src/core/utils/publisherImmutable.spec.ts +76 -0
- package/src/core/utils/route.ts +0 -0
- package/src/core/utils/strictGet.spec.ts +61 -0
- package/src/core/utils/strictGet.ts +102 -0
- package/src/css.d.ts +19 -0
- package/src/docs/components/docs-demo-sources.ts +3 -3
- package/src/docs/decorators/bind.md +23 -24
- package/src/docs/docs-location.spec.ts +10 -0
- package/src/docs/docs-location.ts +10 -0
- package/src/docs/example/decorators-demo-bind-demos.ts +11 -28
- package/src/docs/example/docs-toggle-demos.ts +1 -1
- package/src/docs/example/users.ts +0 -0
- package/src/docs/getting-started/ai-agents.md +29 -55
- package/src/docs/getting-started/dataFlow.md +2 -2
- package/src/docs/home/home.ts +3 -1
- package/src/docs/misc/publisher-get-immutability-docs-crawl.json +902 -0
- package/src/docs/misc/publisher-get-immutability-docs-recheck.json +13 -0
- package/src/docs/misc/publisher-get-immutability-study.md +229 -0
- package/src/docs/navigation/navigation.ts +5 -1
- package/src/docs/search/docs-search.json +358 -58
- package/src/docs/search/markdown-renderer.ts +6 -1
- package/src/docs/tailwind/css/docs/content.css +4 -5
- package/src/tsconfig.declarations.json +22 -0
- package/src/tsconfig.emit.json +23 -0
- package/src/tsconfig.json +53 -5
- package/src/tsconfig.tsbuildinfo +1 -1
- package/.taste-skill/after/desktop-fold.jpg +0 -0
- package/.taste-skill/after/desktop-page-01.jpg +0 -0
- package/.taste-skill/after/desktop-page-02.jpg +0 -0
- package/.taste-skill/after/desktop-page-03.jpg +0 -0
- package/.taste-skill/after/mobile-fold.jpg +0 -0
- package/.taste-skill/after/mobile-page-01.jpg +0 -0
- package/.taste-skill/after/report.json +0 -4103
- package/.taste-skill/after/tablet-fold.jpg +0 -0
- package/.taste-skill/after/tablet-page-01.jpg +0 -0
- package/.taste-skill/after/tablet-page-02.jpg +0 -0
- package/.taste-skill/before/desktop-fold.jpg +0 -0
- package/.taste-skill/before/desktop-page-01.jpg +0 -0
- package/.taste-skill/before/desktop-page-02.jpg +0 -0
- package/.taste-skill/before/mobile-fold.jpg +0 -0
- package/.taste-skill/before/mobile-page-01.jpg +0 -0
- package/.taste-skill/before/report.json +0 -2556
- package/.taste-skill/before/tablet-fold.jpg +0 -0
- package/.taste-skill/before/tablet-page-01.jpg +0 -0
- package/.taste-skill/direction.json +0 -510
- package/.taste-skill/notes.md +0 -84
- package/.taste-skill/prod/desktop-fold.jpg +0 -0
- package/.taste-skill/prod/desktop-page-01.jpg +0 -0
- package/.taste-skill/prod/desktop-page-02.jpg +0 -0
- package/.taste-skill/prod/desktop-page-03.jpg +0 -0
- package/.taste-skill/prod/mobile-fold.jpg +0 -0
- package/.taste-skill/prod/mobile-page-01.jpg +0 -0
- package/.taste-skill/prod/mobile-page-02.jpg +0 -0
- package/.taste-skill/prod/report.json +0 -1973
- package/.taste-skill/prod/tablet-fold.jpg +0 -0
- package/.taste-skill/prod/tablet-page-01.jpg +0 -0
- package/.taste-skill/prod/tablet-page-02.jpg +0 -0
- package/AUDIT.md +0 -228
- package/PLAN-AMELIORATION.md +0 -220
- package/PLAN-DOCS-AGENTS.md +0 -80
- package/ai/AGENTS.md +0 -56
- package/ai/cursor/rules/concorde-menu.mdc +0 -15
- package/ai/cursor/rules/concorde-scope.mdc +0 -14
- package/ai/cursor/rules/concorde-theme.mdc +0 -13
- package/ai/cursor/rules/concorde.mdc +0 -66
- package/ai/jetbrains/rules/concorde.md +0 -53
- package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
- package/ai/skills/concorde-imports/SKILL.md +0 -78
- package/ai/skills/concorde-menu/SKILL.md +0 -74
- package/ai/skills/concorde-scope/SKILL.md +0 -70
- package/ai/skills/concorde-theme/SKILL.md +0 -57
- package/docs/.htaccess +0 -75
- package/docs/404.html +0 -15
- package/docs/404.md +0 -5
- package/docs/assets/index-BgG6FFPt.js +0 -11765
- package/docs/assets/index-x89XINSG.css +0 -1
- package/docs/core/components/functional/date/date.html +0 -211
- package/docs/core/components/functional/date/date.md +0 -150
- package/docs/core/components/functional/fetch/fetch.html +0 -180
- package/docs/core/components/functional/fetch/fetch.md +0 -108
- package/docs/core/components/functional/if/if.html +0 -65
- package/docs/core/components/functional/if/if.md +0 -34
- package/docs/core/components/functional/jsonata/jsonata.html +0 -110
- package/docs/core/components/functional/jsonata/jsonata.md +0 -61
- package/docs/core/components/functional/list/list.html +0 -198
- package/docs/core/components/functional/list/list.md +0 -121
- package/docs/core/components/functional/mix/mix.html +0 -78
- package/docs/core/components/functional/mix/mix.md +0 -46
- package/docs/core/components/functional/queue/queue.html +0 -155
- package/docs/core/components/functional/queue/queue.md +0 -51
- package/docs/core/components/functional/router/router.html +0 -154
- package/docs/core/components/functional/router/router.md +0 -93
- package/docs/core/components/functional/sdui/sdui-extension-points.md +0 -94
- package/docs/core/components/functional/sdui/sdui.html +0 -397
- package/docs/core/components/functional/sdui/sdui.md +0 -307
- package/docs/core/components/functional/states/states.html +0 -141
- package/docs/core/components/functional/states/states.md +0 -112
- package/docs/core/components/functional/submit/submit.html +0 -178
- package/docs/core/components/functional/submit/submit.md +0 -106
- package/docs/core/components/functional/subscriber/subscriber.md +0 -91
- package/docs/core/components/functional/translation/translation.html +0 -60
- package/docs/core/components/functional/translation/translation.md +0 -38
- package/docs/core/components/functional/value/value.html +0 -81
- package/docs/core/components/functional/value/value.md +0 -47
- package/docs/core/components/ui/alert/alert.md +0 -186
- package/docs/core/components/ui/alert-messages/alert-messages.md +0 -85
- package/docs/core/components/ui/badge/badge.md +0 -181
- package/docs/core/components/ui/button/button.html +0 -309
- package/docs/core/components/ui/button/button.md +0 -216
- package/docs/core/components/ui/captcha/captcha.html +0 -80
- package/docs/core/components/ui/captcha/captcha.md +0 -56
- package/docs/core/components/ui/card/card.md +0 -215
- package/docs/core/components/ui/divider/divider.md +0 -126
- package/docs/core/components/ui/form/checkbox/checkbox.html +0 -200
- package/docs/core/components/ui/form/checkbox/checkbox.md +0 -125
- package/docs/core/components/ui/form/fieldset/fieldset.html +0 -238
- package/docs/core/components/ui/form/fieldset/fieldset.md +0 -161
- package/docs/core/components/ui/form/form-actions/form-actions.md +0 -98
- package/docs/core/components/ui/form/form-layout/form-layout.html +0 -115
- package/docs/core/components/ui/form/form-layout/form-layout.md +0 -109
- package/docs/core/components/ui/form/input/input.html +0 -235
- package/docs/core/components/ui/form/input/input.md +0 -142
- package/docs/core/components/ui/form/radio/radio.html +0 -144
- package/docs/core/components/ui/form/radio/radio.md +0 -78
- package/docs/core/components/ui/form/select/select.html +0 -178
- package/docs/core/components/ui/form/select/select.md +0 -86
- package/docs/core/components/ui/form/switch/switch.html +0 -146
- package/docs/core/components/ui/form/switch/switch.md +0 -80
- package/docs/core/components/ui/form/textarea/textarea.html +0 -162
- package/docs/core/components/ui/form/textarea/textarea.md +0 -82
- package/docs/core/components/ui/group/group.html +0 -113
- package/docs/core/components/ui/group/group.md +0 -77
- package/docs/core/components/ui/icon/icon.md +0 -214
- package/docs/core/components/ui/image/image.html +0 -194
- package/docs/core/components/ui/image/image.md +0 -167
- package/docs/core/components/ui/link/link.md +0 -81
- package/docs/core/components/ui/loader/loader.html +0 -114
- package/docs/core/components/ui/loader/loader.md +0 -87
- package/docs/core/components/ui/menu/menu.md +0 -370
- package/docs/core/components/ui/modal/modal.html +0 -324
- package/docs/core/components/ui/modal/modal.md +0 -211
- package/docs/core/components/ui/pop/pop.html +0 -250
- package/docs/core/components/ui/pop/pop.md +0 -216
- package/docs/core/components/ui/progress/progress.md +0 -109
- package/docs/core/components/ui/table/table.html +0 -333
- package/docs/core/components/ui/table/table.md +0 -267
- package/docs/core/components/ui/theme/theme.html +0 -116
- package/docs/core/components/ui/theme/theme.md +0 -97
- package/docs/core/components/ui/toast/toast.html +0 -185
- package/docs/core/components/ui/toast/toast.md +0 -147
- package/docs/core/components/ui/tooltip/tooltip.html +0 -112
- package/docs/core/components/ui/tooltip/tooltip.md +0 -89
- package/docs/docs/decorators/ancestor-attribute.html +0 -71
- package/docs/docs/decorators/ancestor-attribute.md +0 -59
- package/docs/docs/decorators/auto-subscribe.html +0 -61
- package/docs/docs/decorators/auto-subscribe.md +0 -40
- package/docs/docs/decorators/bind.html +0 -86
- package/docs/docs/decorators/bind.md +0 -77
- package/docs/docs/decorators/get.html +0 -166
- package/docs/docs/decorators/get.md +0 -160
- package/docs/docs/decorators/handle.html +0 -139
- package/docs/docs/decorators/handle.md +0 -119
- package/docs/docs/decorators/on-assign.html +0 -72
- package/docs/docs/decorators/on-assign.md +0 -63
- package/docs/docs/decorators/patch.html +0 -76
- package/docs/docs/decorators/patch.md +0 -44
- package/docs/docs/decorators/post.html +0 -150
- package/docs/docs/decorators/post.md +0 -134
- package/docs/docs/decorators/publish.html +0 -74
- package/docs/docs/decorators/publish.md +0 -56
- package/docs/docs/decorators/put.html +0 -83
- package/docs/docs/decorators/put.md +0 -51
- package/docs/docs/decorators/subscribe.html +0 -91
- package/docs/docs/decorators/subscribe.md +0 -87
- package/docs/docs/decorators/wait-for-ancestors.html +0 -82
- package/docs/docs/decorators/wait-for-ancestors.md +0 -76
- package/docs/docs/directives/sub.html +0 -79
- package/docs/docs/directives/sub.md +0 -75
- package/docs/docs/directives/t.html +0 -91
- package/docs/docs/directives/t.md +0 -73
- package/docs/docs/getting-started/ai-agents.md +0 -76
- package/docs/docs/getting-started/components.html +0 -27
- package/docs/docs/getting-started/components.md +0 -5
- package/docs/docs/getting-started/installation.html +0 -69
- package/docs/docs/getting-started/installation.md +0 -36
- package/docs/docs/getting-started/my-first-component.md +0 -227
- package/docs/docs/getting-started/start.html +0 -47
- package/docs/docs/getting-started/start.md +0 -35
- package/docs/docs/getting-started/theming.md +0 -253
- package/docs/docs/index.html +0 -99
- package/docs/docs/misc/api-configuration.md +0 -79
- package/docs/docs/misc/dataProviderKey.md +0 -168
- package/docs/hubs/decorators.html +0 -443
- package/docs/hubs/form-components.html +0 -404
- package/docs/hubs/remote-data.html +0 -371
- package/docs/img/archive/concorde-001-2cv.webp +0 -0
- package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
- package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
- package/docs/img/archive/credits.json +0 -28
- package/docs/index.md +0 -22
- package/docs/src/core/components/functional/translation/translation.md +0 -38
- package/docs/src/docs/decorators/ancestor-attribute.md +0 -59
- package/docs/src/docs/decorators/auto-subscribe.md +0 -40
- package/docs/src/docs/decorators/bind.md +0 -77
- package/docs/src/docs/decorators/get.md +0 -160
- package/docs/src/docs/decorators/handle.md +0 -119
- package/docs/src/docs/decorators/on-assign.md +0 -63
- package/docs/src/docs/decorators/patch.md +0 -44
- package/docs/src/docs/decorators/post.md +0 -134
- package/docs/src/docs/decorators/publish.md +0 -56
- package/docs/src/docs/decorators/put.md +0 -51
- package/docs/src/docs/decorators/subscribe.md +0 -87
- package/docs/src/docs/decorators/wait-for-ancestors.md +0 -76
- package/docs/src/docs/directives/sub.md +0 -75
- package/docs/src/docs/directives/t.md +0 -73
- package/docs/src/docs/getting-started/components.md +0 -5
- package/docs/src/docs/getting-started/create-a-component.md +0 -136
- package/docs/src/docs/getting-started/dataFlow.md +0 -87
- package/docs/src/docs/getting-started/installation.md +0 -36
- package/docs/src/docs/misc/docs-mock-api.md +0 -62
- package/docs/src/docs/misc/dynamic-path.md +0 -71
- package/docs/src/docs/misc/endpoint.md +0 -45
- package/docs/src/docs/misc/html-integration.md +0 -14
- /package/{docs → dist}/img/concorde/plane_01.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_02.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_03.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_04.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_05.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_06.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_07.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_08.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_09.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_10.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_11.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_12.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_13.jpg +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1em;margin-bottom:1em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;padding-inline-start:1.625em;margin-top:1em;margin-bottom:1em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;padding-inline-start:1.625em;margin-top:1em;margin-bottom:1em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:1rem;line-height:.95;letter-spacing:-.045em}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333;letter-spacing:-.03em;border-bottom:var(--sc-border-width) solid;padding-bottom:.15em}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:500;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--sc-base-content);font-weight:600;font-size:.875em;background-color:var(--sc-base-100);border-radius:calc(var(--sc-rounded) * .75);border-width:1px;border-color:var(--sc-base-200);padding:.15em .4em;font-family:var(--sc-font-family-monospace, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace)}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--sc-base-content);background-color:var(--sc-base-100);overflow-x:auto;font-weight:400;font-size:.8125rem;line-height:1.6;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:var(--sc-rounded);padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em;border-width:1px;border-style:solid;border-color:var(--sc-base-200);padding:1rem 1.25rem;font-family:var(--sc-font-family-monospace, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace)}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:400;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: var(--sc-base-content);--tw-prose-headings: var(--sc-base-900);--tw-prose-lead: var(--sc-base-content);--tw-prose-links: var(--sc-base-900);--tw-prose-bold: var(--sc-base-content);--tw-prose-counters: var(--sc-base-500);--tw-prose-bullets: var(--sc-base-300);--tw-prose-hr: var(--sc-base-200);--tw-prose-quotes: var(--sc-base-content);--tw-prose-quote-borders: var(--sc-base-200);--tw-prose-captions: var(--sc-base-500);--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: var(--sc-base-content);--tw-prose-pre-code: var(--sc-base-content);--tw-prose-pre-bg: var(--sc-base-100);--tw-prose-th-borders: var(--sc-base-300);--tw-prose-td-borders: var(--sc-base-200);--tw-prose-invert-body: var(--sc-base-300);--tw-prose-invert-headings: var(--sc-base);--tw-prose-invert-lead: var(--sc-base-400);--tw-prose-invert-links: var(--sc-base);--tw-prose-invert-bold: var(--sc-base);--tw-prose-invert-counters: var(--sc-base-400);--tw-prose-invert-bullets: var(--sc-base-600);--tw-prose-invert-hr: var(--sc-base-700);--tw-prose-invert-quotes: var(--sc-base-100);--tw-prose-invert-quote-borders: var(--sc-base-700);--tw-prose-invert-captions: var(--sc-base-400);--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: var(--sc-base);--tw-prose-invert-pre-code: var(--sc-base-300);--tw-prose-invert-pre-bg: var(--sc-base-900);--tw-prose-invert-th-borders: var(--sc-base-600);--tw-prose-invert-td-borders: var(--sc-base-700);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose{line-height:1.5}.prose :where(strong a):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:bolder}.prose :where(iframe[src*=youtu]):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:var(--sc-rounded-md)}.prose :where(h5):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-top-1{top:-.25rem}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.left-0{left:0}.right-1{right:.25rem}.right-2{right:.5rem}.top-0{top:0}.top-16{top:4rem}.top-\[4\.2rem\]{top:4.2rem}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-\[3000\]{z-index:3000}.col-span-2{grid-column:span 2 / span 2}.col-span-3{grid-column:span 3 / span 3}.m-0{margin:0}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-0{margin-bottom:0}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-5{margin-left:1.25rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.size-8{width:2rem;height:2rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-24{height:6rem}.h-3{height:.75rem}.h-4{height:1rem}.h-96{height:24rem}.h-full{height:100%}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-80{max-height:20rem}.max-h-\[60svh\]{max-height:60svh}.max-h-\[calc\(100svh_-_4\.2rem\)\]{max-height:calc(100svh - 4.2rem)}.min-h-\[100svh\]{min-height:100svh}.min-h-\[5rem\]{min-height:5rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-12{width:3rem}.w-16{width:4rem}.w-24{width:6rem}.w-\[30rem\]{width:30rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[8rem\]{min-width:8rem}.max-w-2xl{max-width:42rem}.max-w-\[30rem\]{max-width:30rem}.max-w-\[34rem\]{max-width:34rem}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-prose{max-width:70ch}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink,.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1\/2{--tw-translate-x: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1\/2{--tw-translate-y: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[55deg\]{--tw-rotate: 55deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[3\.5rem_4\.5rem_1fr_3rem\]{grid-template-columns:3.5rem 4.5rem 1fr 3rem}.grid-cols-\[3\.5rem_4\.5rem_1fr_3rem_auto\]{grid-template-columns:3.5rem 4.5rem 1fr 3rem auto}.grid-cols-\[3\.5rem_4\.5rem_1fr_auto\]{grid-template-columns:3.5rem 4.5rem 1fr auto}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_1fr_auto\]{grid-template-columns:auto 1fr auto}.grid-cols-\[minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-1{row-gap:.25rem}.gap-y-3{row-gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:var(--sc-rounded)}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--sc-rounded-lg)}.rounded-md{border-radius:var(--sc-rounded-md)}.border{border-width:var(--sc-border-width)}.border-0{border-width:0px}.border-b{border-bottom-width:var(--sc-border-width)}.border-b-\[\.18rem\]{border-bottom-width:.18rem}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-current{border-color:currentColor}.border-neutral-200{border-color:var(--sc-base-200)}.border-neutral-300{border-color:var(--sc-base-300)}.bg-base{background-color:var(--sc-base)}.bg-info{background-color:var(--sc-info)}.bg-neutral-0{background-color:var(--sc-base)}.bg-neutral-100{background-color:var(--sc-base-100)}.bg-neutral-50{background-color:var(--sc-base-50)}.bg-success{background-color:var(--sc-success)}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-16{padding-bottom:4rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pt-3{padding-top:.75rem}.pt-\[20vh\]{padding-top:20vh}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-headings{font-family:var(--sc-headings-font-family, var(--sc-font-family-base, sans-serif))}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-xl{font-size:1.25rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[1\.5\]{line-height:1.5}.leading-none{line-height:1}.leading-tight{line-height:1.25}.text-base{color:var(--sc-base)}.text-content{color:var(--sc-base-content)}.text-danger{color:var(--sc-danger)}.text-neutral-0{color:var(--sc-base)}.text-neutral-400{color:var(--sc-base-400)}.text-neutral-500{color:var(--sc-base-500)}.text-neutral-600{color:var(--sc-base-600)}.text-neutral-700{color:var(--sc-base-700)}.text-warning{color:var(--sc-warning)}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.underline-offset-4{text-underline-offset:4px}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}p{text-wrap:pretty}.custom-scroll{overflow:auto!important}.custom-scroll:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 2rem 2rem var(--sc-base-900)}.custom-scroll::-webkit-scrollbar{width:.5rem;height:.5rem;border:solid .15rem transparent;border-radius:var(--sc-rounded);background:transparent}.custom-scroll::-webkit-scrollbar-thumb{opacity:0;-webkit-transition:box-shadow .2s;transition:box-shadow .2s;border:solid .15rem transparent}:root{--sc-headings-font-family: "Schibsted Grotesk", system-ui, sans-serif;--sc-font-family-base: "Schibsted Grotesk", system-ui, sans-serif;--sc-headings-font-weight: 800;--sc-rounded: 0;--sc-border-width: 2px;--docs-signal: #ff6b1f;--docs-signal-ink: #1b1a17;--docs-green: #2f6b4f;--docs-green-deep: #24503c;--docs-green-ink: #1f4a36;--docs-red: #d42a2f;--docs-night: #1b1a17;--docs-night-ink: #ece6da}sonic-theme{--sc-rounded: 0;--sc-btn-rounded: 0;--sc-input-rounded: 0}[data-concorde-theme=light]{--sc-base: #e6e0d4;--sc-base-content: #1b1a17;--sc-primary: #1b1a17;--sc-primary-content: #e6e0d4;--sc-base-50: #ddd6c8;--sc-base-100: #d3cbbb;--sc-base-200: #bdb4a2;--sc-base-300: #a59c8a;--sc-base-400: #877f6f;--sc-base-500: #6c6558;--sc-base-600: #524c42;--sc-base-700: #39352e;--sc-base-800: #26231f;--sc-base-900: #1b1a17;--sc-info: #1f5fd1;--sc-info-content: #ffffff;--sc-success: #2f6b4f;--sc-success-content: #ffffff;--sc-warning: #ff6b1f;--sc-warning-content: #1b1a17;--sc-danger: #d42a2f;--sc-danger-content: #ffffff}[data-concorde-theme=dark]{--sc-base: #161513;--sc-base-content: #ece6da;--sc-primary: #ece6da;--sc-primary-content: #161513;--sc-base-50: #1e1d1a;--sc-base-100: #272522;--sc-base-200: #38352f;--sc-base-300: #4b4740;--sc-base-400: #69645a;--sc-base-500: #857f74;--sc-base-600: #a8a196;--sc-base-700: #c7c0b4;--sc-base-800: #ddd6ca;--sc-base-900: #ece6da;--sc-info: #5b8ff0;--sc-info-content: #161513;--sc-success: #4f9b74;--sc-success-content: #161513;--sc-warning: #ff7a33;--sc-warning-content: #161513;--sc-danger: #ef4a4f;--sc-danger-content: #161513;--docs-signal: #ff7a33;--docs-green: #4f9b74;--docs-green-deep: #1f3f31;--docs-green-ink: #79c39b;--docs-red: #ef4a4f;--docs-night: #0b0a09}[data-concorde-theme=light],[data-concorde-theme=dark]{--sc-input-bg: var(--sc-base-100);--sc-input-border-color: var(--sc-base-100)}html{font-family:var(--sc-font-family-base, sans-serif);scroll-behavior:smooth}body{background:var(--sc-base);color:var(--sc-base-content)}.prose :where(code):not(:where(pre *)){box-decoration-break:clone;white-space:nowrap;display:inline-block;padding:0 .25rem;font-size:.75em;border:none;margin-inline:2px;font-weight:400!important;background-color:var(--sc-base-50);-webkit-box-decoration-break:clone}docs-markdown-renderer :is(h1,h2,h3,h4)[id]{scroll-margin-top:5.5rem}docs-page.prose :where(img){max-width:100%}@media (max-width: 639px){docs-page sonic-code>div{overflow-x:auto}docs-page.prose :where(table){display:block;overflow-x:auto}}.bp-route{position:relative;height:2rem;border-bottom:2px dashed currentColor;opacity:.8}.bp-fly{position:absolute;top:calc(100% + 1px);transform:translateY(-50%);left:0;animation:bp-fly 3.2s cubic-bezier(.45,0,.25,1) infinite}@keyframes bp-fly{0%{left:0;translate:0 0;opacity:0}10%{opacity:1}30%{translate:0 -1rem}70%{translate:0 -1rem}90%{opacity:1;translate:0 0}to{left:calc(100% - 1.5rem);translate:0 0;opacity:0}}.bp-pop{animation:bp-pop .45s cubic-bezier(.3,1.6,.5,1)}@keyframes bp-pop{0%{transform:scale(.85);opacity:0}}.bp-barcode{background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='1'%3E%3Crect width='2' height='1'/%3E%3Crect x='4' width='1' height='1'/%3E%3C/svg%3E") repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='1'%3E%3Crect width='2' height='1'/%3E%3Crect x='4' width='1' height='1'/%3E%3C/svg%3E") repeat;-webkit-mask-size:8px 100%;mask-size:8px 100%}docs-boarding-pass-demo sonic-card{background:var(--sc-_bg)}.docs-home{--page-margin: 1rem;--step-small: .875rem;--step-body: clamp(1.0625rem, 1rem + .25vw, 1.1875rem);--step-lead: clamp(1.25rem, 1.1rem + .7vw, 1.625rem);--step-head: clamp(2.25rem, 1.4rem + 3.2vw, 4.25rem);--step-display: clamp(2.5rem, 1.2rem + 5.4vw, 6.25rem);--section-gap: clamp(6rem, 3rem + 9vw, 13rem);--sc-rounded-lg: 0;margin-inline:calc(-1 * var(--page-margin));padding-inline:var(--page-margin);overflow-x:clip;font-family:var(--sc-font-family-base);font-size:var(--step-body);line-height:1.45;color:var(--sc-base-content)}@media (min-width: 640px){.docs-home{--page-margin: 1.5rem}}@media (min-width: 1024px){.docs-home{--page-margin: 2.5rem}}@media (min-width: 1536px){.docs-home{--page-margin: 5rem}}.section-title{margin:0;font-family:var(--sc-headings-font-family);font-size:var(--step-head);font-weight:800;line-height:.95;letter-spacing:-.045em}.text-link{font-weight:600;text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:2px}.signal-button{--sc-primary: var(--docs-signal);--sc-primary-content: var(--docs-signal-ink)}.hero{position:relative;padding-top:clamp(3rem,8vh,6.5rem)}.hero-title{margin:0;font-family:var(--sc-headings-font-family);font-size:var(--step-display);font-weight:800;line-height:.88;letter-spacing:-.05em}.hero-lead{max-width:40ch;margin:2.25rem 0 0;font-size:var(--step-body)}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.75rem;margin-top:2.25rem}.hero-install{max-width:34rem;margin-top:2rem}.hero-install-code{margin:0!important}.hero-stage{position:relative;height:clamp(24rem,110vw,34rem);margin:3.5rem calc(-1 * var(--page-margin)) 0;background:var(--docs-signal);--bevel-x: calc(var(--mach-cell, 1rem) * 8);--bevel-y: calc(var(--mach-cell, 1rem) * 4);clip-path:polygon(var(--bevel-x) 0,100% 0,100% 100%,0 100%,0 var(--bevel-y))}.hero-mach{position:absolute;inset:0;display:block;overflow:hidden;background:var(--docs-signal);color:var(--docs-signal-ink);touch-action:pan-y;cursor:crosshair}.mach-canvas{position:absolute;inset:0;width:100%;height:100%}.mach-readout{position:absolute;left:var(--page-margin);bottom:2.75rem;display:flex;align-items:baseline;gap:.75rem;margin:0;font-family:var(--sc-headings-font-family);font-weight:800;line-height:.8;letter-spacing:-.05em;font-variant-numeric:tabular-nums;pointer-events:none}.mach-label{font-size:var(--step-lead);letter-spacing:-.02em}.mach-value{position:relative;display:inline-grid;font-size:clamp(4.5rem,2rem + 12vw,11rem)}.mach-layer{grid-area:1 / 1}.mach-layer:first-child{position:relative;z-index:1}.mach-ghost-a,.mach-ghost-b{opacity:0}.mach-ghost-a{color:var(--docs-red)}.mach-ghost-b{color:var(--docs-signal-ink)}.mach-dot{margin-inline:-.12em}.mach-note{position:absolute;left:var(--page-margin);bottom:1rem;margin:0;font-size:var(--step-small);font-weight:600;pointer-events:none}@media (min-width: 1024px){.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:max(40rem,calc(100svh - var(--docs-header-h, 4.4rem)));padding-top:0}.hero-copy{align-self:center;padding:3rem 2.5rem 3rem 0}.hero-title{font-size:clamp(2.75rem,.4rem + 4.3vw,5.5rem)}.hero-install{max-width:30rem}.hero-stage{height:auto;margin:0 calc(-1 * var(--page-margin)) 0 0}.mach-readout,.mach-note{left:3rem}.mach-readout{bottom:3.75rem}.mach-note{bottom:2rem}.mach-value{font-size:clamp(6rem,1rem + 9vw,13rem)}}.manifesto{margin-inline:calc(-1 * var(--page-margin));padding:clamp(3rem,1.5rem + 4vw,6rem) var(--page-margin);background:var(--docs-night);color:var(--docs-night-ink)}.manifesto-text{max-width:64rem;margin:0;font-family:var(--sc-headings-font-family);font-size:clamp(1.2rem,.85rem + 1.75vw,2.25rem);font-weight:600;line-height:1.12;letter-spacing:-.02em;text-wrap:balance}.index{padding-top:var(--section-gap)}.index-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1.5rem 2rem}.index-filters{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem}.index-filter{font-weight:600}.index-filter[aria-pressed=false]{opacity:.55}.index-filter[aria-pressed=false] .index-filter-mark{opacity:0}.index-wall{margin:3rem 0 0;font-family:var(--sc-headings-font-family);font-size:clamp(1.5rem,.8rem + 2.4vw,3rem);font-weight:800;line-height:1.08;letter-spacing:-.03em}.wall-item{display:inline-block;margin-right:.85em;white-space:nowrap}.wall-name{transition:color .2s ease}.wall-name:hover,.wall-name.is-focus{color:var(--docs-red)}.index-caption{position:sticky;bottom:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.25rem;margin-top:2.5rem;padding:1rem 0;background:var(--sc-base)}.index-caption-tag{color:var(--docs-green-ink);font-weight:600}.index-caption-all{margin-left:auto}.instruments{display:grid;grid-template-columns:minmax(0,1fr);margin:var(--section-gap) calc(-1 * var(--page-margin)) 0}.instr-title{padding:0 var(--page-margin) 2rem}.instr-field{display:grid;place-items:center;padding:2rem var(--page-margin);background:var(--docs-green-deep)}.instr-field{isolation:isolate}.instr-field:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--docs-night-ink);opacity:.16;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cg fill='%23000'%3E%3Crect width='128' height='2'/%3E%3Crect width='2' height='128'/%3E%3Cg opacity='.45'%3E%3Crect y='32' width='128' height='1'/%3E%3Crect y='64' width='128' height='1'/%3E%3Crect y='96' width='128' height='1'/%3E%3Crect x='32' width='1' height='128'/%3E%3Crect x='64' width='1' height='128'/%3E%3Crect x='96' width='1' height='128'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") 0 0 / 7.5rem 7.5rem repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cg fill='%23000'%3E%3Crect width='128' height='2'/%3E%3Crect width='2' height='128'/%3E%3Cg opacity='.45'%3E%3Crect y='32' width='128' height='1'/%3E%3Crect y='64' width='128' height='1'/%3E%3Crect y='96' width='128' height='1'/%3E%3Crect x='32' width='1' height='128'/%3E%3Crect x='64' width='1' height='128'/%3E%3Crect x='96' width='1' height='128'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") 0 0 / 7.5rem 7.5rem repeat;pointer-events:none}@media (max-width: 1023px){.instr-field{position:relative}}.instr-output{display:grid;gap:1.25rem;width:min(34rem,100%);padding:1.75rem;background:var(--sc-base);color:var(--sc-base-content);font-family:var(--sc-font-family-base);transition:background-color .35s ease,color .35s ease}.board-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.board-title{font-family:var(--sc-headings-font-family);font-size:var(--step-lead);font-weight:800;letter-spacing:-.02em}.board-airport,.board-label,.board-note{font-size:var(--step-small)}.board-passenger{display:grid;gap:.15rem;padding:1rem 1.25rem;background:var(--sc-base-100)}.board-name{font-family:var(--sc-headings-font-family);font-size:var(--step-head);font-weight:800;line-height:1;letter-spacing:-.04em;overflow-wrap:anywhere}.board-table{font-variant-numeric:tabular-nums}.board-mine{background:var(--sc-base-50);font-weight:600}@media (max-width: 639px){.instr-output{padding:1.25rem}.board-name{font-size:var(--step-lead)}.board-table{font-size:var(--step-small)}.board-table sonic-tr>:first-child{display:none}}.board-table sonic-td,.board-table sonic-th{white-space:nowrap}.board-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem}.instr-blocks{padding:1rem var(--page-margin) 0}.instr-block{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;max-width:34rem;padding-block:2rem}.instr-block sonic-group{display:block;max-width:100%;overflow-x:auto}.instr-claim{margin:0;font-size:var(--step-lead);font-weight:800;letter-spacing:-.02em;line-height:1.1}.instr-text{margin:0}.instr-code{margin:0!important}.host-snippets{display:grid;grid-template-columns:minmax(0,1fr)}.host-snippet{grid-area:1 / 1;min-width:0;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s .3s}.host-snippet.is-active{opacity:1;visibility:visible;transition:opacity .3s ease}@media (min-width: 1024px){.instruments{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.instr-field{position:sticky;top:var(--docs-header-h, 4.4rem);grid-column:1;grid-row:1 / span 2;height:calc(100svh - var(--docs-header-h, 4.4rem));align-self:start}.instr-title{grid-column:2;grid-row:1;padding:4.5rem var(--page-margin) 0 clamp(2rem,5vw,5rem)}.instr-blocks{grid-column:2;grid-row:2;padding:0 var(--page-margin) 4.5rem clamp(2rem,5vw,5rem)}.instr-block{padding-block:14vh}}.story{display:grid;gap:clamp(3rem,6vw,6rem);padding-top:var(--section-gap)}.story-figure{margin:0;margin-inline:calc(-1 * var(--page-margin))}.story img{display:block;width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 62%;object-position:50% 62%}.story-figure img{height:clamp(20rem,48vw,46rem)}.letter{display:grid;gap:2rem}.letter-body p{max-width:38rem;margin:0 0 1.1em;line-height:1.55}.letter-body .letter-sign{margin-top:1.75rem;font-size:var(--step-lead);font-weight:600}@media (min-width: 1024px){.letter{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:4rem}}.takeoff{display:grid;grid-template-columns:minmax(0,1fr)}.takeoff-copy{padding-top:var(--section-gap)}.takeoff-title{margin:0;font-family:var(--sc-headings-font-family);font-size:clamp(2.5rem,.5rem + 4.3vw,5.25rem);font-weight:800;line-height:.88;letter-spacing:-.05em}.takeoff-lead{max-width:34rem;margin:1.75rem 0 0}.takeoff-code{max-width:34rem;margin-top:1.25rem}.takeoff-command{margin:0!important}.takeoff-figure{margin:3rem calc(-1 * var(--page-margin)) 0;overflow:hidden;isolation:isolate;background:var(--sc-base)}.takeoff-figure video{display:block;width:100%;aspect-ratio:3 / 4;-o-object-fit:cover;object-fit:cover;transform:scale(1.18);filter:grayscale(1) brightness(1.45) contrast(1.5);mix-blend-mode:darken}[data-concorde-theme=dark] .takeoff-figure video{filter:none;mix-blend-mode:normal}@media (min-width: 1024px){.takeoff{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,5vw,5rem);align-items:start}.takeoff-figure{position:sticky;top:var(--docs-header-h, 4.4rem);margin:0 calc(-1 * var(--page-margin)) 0 0}}.home-footer{padding:var(--section-gap) 0 2rem;font-size:var(--step-small)}.footer-line{display:grid;gap:.5rem}.footer-links{display:flex;flex-wrap:wrap;gap:1.5rem;font-weight:600}.credits{max-width:72rem;margin:2rem 0 0}.credits a{text-decoration:underline;text-underline-offset:.2em}@media (min-width: 768px){.footer-line{grid-template-columns:1fr auto 1fr;align-items:baseline;gap:1.5rem}.footer-end{justify-self:end}}.hero-in{animation:hero-in .9s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d, 0ms)}@keyframes hero-in{0%{opacity:0;transform:translateY(1.5rem)}}.hero-stage{animation:stage-in 1.1s cubic-bezier(.7,0,.2,1) .25s both}@keyframes stage-in{0%{transform:translate(12%);opacity:0}}[data-reveal]{opacity:0;transform:translateY(1.5rem);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d, 0ms)}[data-reveal].is-visible{opacity:1;transform:none}docs-mach-stage[data-boom] .mach-ghost-a{animation:mach-split-a .9s ease-out both}docs-mach-stage[data-boom] .mach-ghost-b{animation:mach-split-b .9s ease-out both}@keyframes mach-split-a{0%{opacity:1;transform:translate(-.1em)}25%{opacity:1;transform:translate(.07em)}50%{opacity:.9;transform:translate(-.05em)}75%{opacity:.6;transform:translate(.02em)}to{opacity:0;transform:none}}@keyframes mach-split-b{0%{opacity:.4;transform:translate(.09em)}25%{opacity:.4;transform:translate(-.06em)}50%{opacity:.3;transform:translate(.04em)}75%{opacity:.15;transform:translate(-.02em)}to{opacity:0;transform:none}}.settle{overflow:hidden}.settle img{transform:scale(1.08);transition:transform 1.8s cubic-bezier(.2,.7,.2,1)}.settle.is-visible img{transform:none}@media (prefers-reduced-motion: reduce){.hero-in,.hero-stage{animation:none!important}.host-snippet{transition:none}[data-reveal],.settle img{opacity:1;transform:none;transition:none}}.hover\:bg-neutral-50:hover{background-color:var(--sc-base-50)}.hover\:underline:hover{text-decoration-line:underline}.prose-h1\:text-\[2\.4em\] :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:2.4em}.prose-code\:before\:content-none :is(:where(code):not(:where([class~=not-prose],[class~=not-prose] *))):before{--tw-content: none;content:var(--tw-content)}.prose-code\:after\:content-none :is(:where(code):not(:where([class~=not-prose],[class~=not-prose] *))):after{--tw-content: none;content:var(--tw-content)}.prose-pre\:font-mono :is(:where(pre):not(:where([class~=not-prose],[class~=not-prose] *))){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.prose-li\:my-\[\.2em\] :is(:where(li):not(:where([class~=not-prose],[class~=not-prose] *))){margin-top:.2em;margin-bottom:.2em}@media (min-width: 640px){.sm\:col-span-1{grid-column:span 1 / span 1}.sm\:block{display:block}.sm\:size-\[2\.4rem\]{width:2.4rem;height:2.4rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:gap-4{gap:1rem}.sm\:gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-4xl{font-size:2.25rem}.sm\:text-5xl{font-size:3rem}.sm\:prose-h1\:text-\[3\.25em\] :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:3.25em}}@media (min-width: 768px){.md\:block{display:block}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:block{display:block}.lg\:hidden{display:none}.lg\:w-\[19rem\]{width:19rem}.lg\:w-\[35rem\]{width:35rem}.lg\:max-w-\[35rem\]{max-width:35rem}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[14rem_minmax\(0\,1fr\)\]{grid-template-columns:14rem minmax(0,1fr)}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:leading-\[1\.5\]{line-height:1.5}}@media (min-width: 1280px){.xl\:mx-0{margin-left:0;margin-right:0}.xl\:block{display:block}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-\[15rem_minmax\(0\,1fr\)_13rem\]{grid-template-columns:15rem minmax(0,1fr) 13rem}.xl\:gap-12{gap:3rem}}@media (min-width: 1536px){.\32xl\:px-20{padding-left:5rem;padding-right:5rem}}.dark\:border-neutral-600:where(.dark,.dark *){border-color:var(--sc-base-600)}.dark\:border-neutral-700:where(.dark,.dark *){border-color:var(--sc-base-700)}.dark\:bg-neutral-300:where(.dark,.dark *){background-color:var(--sc-base-300)}.\[\&\[active\]\]\:text-success[active]{color:var(--sc-success)}[data-home] .\[\[data-home\]_\&\]\:hidden{display:none}
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en" data-doc-url="https://concorde.supersoniks.org/core/components/functional/date" data-doc-id="core/components/functional/date/date">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Date — Concorde by Supersoniks</title>
|
|
7
|
-
<meta name="description" content="sonic-date formats a date or a date range with Intl.DateTimeFormat. Pass a Unix timestamp in seconds (date) or a parsable string (date_string), add end_date for a range, and tune each part (weekday · ">
|
|
8
|
-
<meta name="keywords" content="Concorde, supersoniks, core/components/functional/date/date, date, Date, functional component, sonic-date, web component, Intl.DateTimeFormat, date_string, end_date, weekday, month, hour, now">
|
|
9
|
-
<meta name="concorde-doc-id" content="core/components/functional/date/date">
|
|
10
|
-
<link rel="canonical" href="https://concorde.supersoniks.org/core/components/functional/date">
|
|
11
|
-
<link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/core/components/functional/date.md">
|
|
12
|
-
</head>
|
|
13
|
-
<body>
|
|
14
|
-
<header>
|
|
15
|
-
<p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/core/components/functional/date">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
|
|
16
|
-
</header>
|
|
17
|
-
<main>
|
|
18
|
-
<article>
|
|
19
|
-
<p class="doc-lead" id="doc-summary"><strong>Concorde functional component — Date</strong>. sonic-date formats a date or a date range with Intl.DateTimeFormat. Pass a Unix timestamp in seconds (date) or a parsable string (date_string), add end_date for a range, and tune each part (weekday · <span>Doc ID: <code>core/components/functional/date/date</code>. Keywords: Concorde, supersoniks, core/components/functional/date/date, date, Date, functional component, sonic-date, web component, Intl.DateTimeFormat, date_string, end_date, weekday, month, hour, now. URL: <a href="https://concorde.supersoniks.org/core/components/functional/date">https://concorde.supersoniks.org/core/components/functional/date</a>.</span></p>
|
|
20
|
-
<h1 id="date">Date</h1>
|
|
21
|
-
<p><strong><code>sonic-date</code></strong> formats a date or a date range with <code>Intl.DateTimeFormat</code>. Pass a Unix timestamp in seconds (<code>date</code>) or a parsable string (<code>date_string</code>), add <code>end_date</code> for a range, and tune each part (<code>weekday</code> · <code>month</code> · <code>hour</code> …) with attributes. With no date and no <code>now</code>, it renders nothing.</p>
|
|
22
|
-
<h2 id="basic-example">Basic example</h2>
|
|
23
|
-
<p><code>date</code> is in <strong>seconds</strong>, not milliseconds. <code>date_string</code> accepts anything <code>new Date()</code> parses: prefer ISO 8601 with an explicit offset. <code>now</code> shows the current date.</p>
|
|
24
|
-
<pre><code class="language-en"><div class="grid gap-2">
|
|
25
|
-
<div>Departure: <sonic-date date="1781514000" language="en"></sonic-date></div>
|
|
26
|
-
<div>Arrival: <sonic-date date_string="2026-06-15T12:45:00Z" language="en"></sonic-date></div>
|
|
27
|
-
<div>Now: <sonic-date now language="en"></sonic-date></div>
|
|
28
|
-
</div>
|
|
29
|
-
</code></pre>
|
|
30
|
-
<h2 id="date-range">Date range</h2>
|
|
31
|
-
<p>Set <code>start_date</code> and <code>end_date</code> (or their <code>_string</code> variants). On two different days, only the dates are shown, with the "from … to …" wording. On the same day, the hours are kept. <code>hide_hours</code> drops them anyway.</p>
|
|
32
|
-
<p>Without a start, the range starts now. If the end is before the start, the two are swapped.</p>
|
|
33
|
-
<pre><code class="language-en"><div class="grid gap-2">
|
|
34
|
-
<sonic-date start_date_string="2026-06-15T09:00:00Z" end_date_string="2026-06-22T18:00:00Z" language="en" wording_billet_periode_validite="From %s to %s"></sonic-date>
|
|
35
|
-
<sonic-date start_date_string="2026-06-15T09:00:00Z" end_date_string="2026-06-15T12:45:00Z" language="en"></sonic-date>
|
|
36
|
-
<sonic-date start_date_string="2026-06-15T09:00:00Z" end_date_string="2026-06-15T12:45:00Z" language="en" hide_hours></sonic-date>
|
|
37
|
-
</div>
|
|
38
|
-
</code></pre>
|
|
39
|
-
<h2 id="range-wording">Range wording</h2>
|
|
40
|
-
<p><code>wording_billet_periode_validite</code> holds the range wording, with one <code>%s</code> per date. It defaults to the French <code>Du %s au %s</code>, whatever the language: <strong>set it for every non-French page</strong>.</p>
|
|
41
|
-
<pre><code class="language-en"><sonic-date start_date_string="2026-06-15" end_date_string="2026-06-22" language="en" wording_billet_periode_validite="Valid from %s until %s"></sonic-date>
|
|
42
|
-
</code></pre>
|
|
43
|
-
<h2 id="format-options">Format options</h2>
|
|
44
|
-
<p>Defaults: <code>weekday="short"</code> · <code>day="2-digit"</code> · <code>month="short"</code> · <code>year="numeric"</code> · <code>hour="2-digit"</code> · <code>minute="2-digit"</code>, 24-hour clock, no era. <code>hidden</code> removes a part.</p>
|
|
45
|
-
<pre><code class="language-en"><div class="grid grid-cols-[auto_1fr] gap-x-4 gap-y-1 text-sm">
|
|
46
|
-
<code>default</code><sonic-date date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
47
|
-
<code>weekday="long"</code><sonic-date weekday="long" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
48
|
-
<code>weekday="narrow"</code><sonic-date weekday="narrow" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
49
|
-
<code>weekday="hidden"</code><sonic-date weekday="hidden" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
50
|
-
<code>day="numeric"</code><sonic-date day="numeric" date_string="2026-06-05T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
51
|
-
<code>month="long"</code><sonic-date month="long" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
52
|
-
<code>month="narrow"</code><sonic-date month="narrow" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
53
|
-
<code>month="numeric"</code><sonic-date month="numeric" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
54
|
-
<code>month="2-digit"</code><sonic-date month="2-digit" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
55
|
-
<code>year="2-digit"</code><sonic-date year="2-digit" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
56
|
-
<code>hour="numeric"</code><sonic-date hour="numeric" date_string="2026-06-15T07:05:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
57
|
-
<code>hour12</code><sonic-date hour12 date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
58
|
-
<code>hour="hidden" minute="hidden"</code><sonic-date hour="hidden" minute="hidden" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
59
|
-
<code>era="short"</code><sonic-date era="short" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
60
|
-
</div>
|
|
61
|
-
</code></pre>
|
|
62
|
-
<h2 id="language">Language</h2>
|
|
63
|
-
<p>With no <code>language</code>, the component follows <code><html lang></code> and updates when it changes. Pass a BCP 47 tag to force one.</p>
|
|
64
|
-
<pre><code class="language-en"><div class="grid grid-cols-[auto_1fr] gap-x-4 gap-y-1 text-sm">
|
|
65
|
-
<code>en</code><sonic-date language="en" date_string="2026-06-15T09:00:00Z"></sonic-date>
|
|
66
|
-
<code>fr</code><sonic-date language="fr" date_string="2026-06-15T09:00:00Z"></sonic-date>
|
|
67
|
-
<code>ja</code><sonic-date language="ja" date_string="2026-06-15T09:00:00Z"></sonic-date>
|
|
68
|
-
</div>
|
|
69
|
-
</code></pre>
|
|
70
|
-
<h2 id="time-zone">Time zone</h2>
|
|
71
|
-
<p>With no <code>time_zone</code>, dates use the browser time zone. Pass an IANA name (<code>Intl.supportedValuesOf("timeZone")</code> lists them) to show local airport time.</p>
|
|
72
|
-
<pre><code class="language-en"><div class="grid gap-2">
|
|
73
|
-
<div>CN 001 departs CDG at <sonic-date date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" weekday="hidden" language="en"></sonic-date> (Paris)</div>
|
|
74
|
-
<div>and lands at JFK at <sonic-date date_string="2026-06-15T12:45:00Z" time_zone="America/New_York" weekday="hidden" language="en"></sonic-date> (New York)</div>
|
|
75
|
-
</div>
|
|
76
|
-
</code></pre>
|
|
77
|
-
<h2 id="custom-parts">Custom parts</h2>
|
|
78
|
-
<p>A child <code><template data-value="<part>"></code> wraps a part in your own markup: <code>weekday</code> · <code>day</code> · <code>month</code> · <code>year</code> · <code>hour</code> · <code>minute</code> · <code>literal</code>, plus <code>from</code> and <code>to</code> in ranges. An empty element receives the part value; a non-empty one replaces it. <code>designMode</code> drops the leading "from" word and the commas, for stacked layouts. Add <code>noShadowDom</code> so page styles reach the parts.</p>
|
|
79
|
-
<pre><code class="language-en"><div class="relative max-w-sm rounded-lg overflow-hidden">
|
|
80
|
-
<sonic-date
|
|
81
|
-
designMode
|
|
82
|
-
noShadowDom
|
|
83
|
-
start_date_string="2026-06-15"
|
|
84
|
-
end_date_string="2026-06-22"
|
|
85
|
-
language="en"
|
|
86
|
-
wording_billet_periode_validite="From %s to %s"
|
|
87
|
-
class="absolute top-0 left-0 z-10 p-4 text-center text-sm text-white drop-shadow-lg"
|
|
88
|
-
>
|
|
89
|
-
<template data-value="weekday"><span class="hidden"></span>
|
|
90
|
-
</code></pre>
|
|
91
|
-
<h2 id="api-reference">API reference</h2>
|
|
92
|
-
<table>
|
|
93
|
-
<thead>
|
|
94
|
-
<tr>
|
|
95
|
-
<th>Attribute</th>
|
|
96
|
-
<th>Values</th>
|
|
97
|
-
<th>Description</th>
|
|
98
|
-
</tr>
|
|
99
|
-
</thead>
|
|
100
|
-
<tbody><tr>
|
|
101
|
-
<td><code>date</code></td>
|
|
102
|
-
<td>number</td>
|
|
103
|
-
<td>Unix timestamp in seconds</td>
|
|
104
|
-
</tr>
|
|
105
|
-
<tr>
|
|
106
|
-
<td><code>date_string</code></td>
|
|
107
|
-
<td>string</td>
|
|
108
|
-
<td>Date parsed with <code>new Date()</code>. Overrides <code>date</code></td>
|
|
109
|
-
</tr>
|
|
110
|
-
<tr>
|
|
111
|
-
<td><code>start_date</code> / <code>start_date_string</code></td>
|
|
112
|
-
<td>number / string</td>
|
|
113
|
-
<td>Range start. Overrides <code>date</code></td>
|
|
114
|
-
</tr>
|
|
115
|
-
<tr>
|
|
116
|
-
<td><code>end_date</code> / <code>end_date_string</code></td>
|
|
117
|
-
<td>number / string</td>
|
|
118
|
-
<td>Range end. Swapped with the start when earlier</td>
|
|
119
|
-
</tr>
|
|
120
|
-
<tr>
|
|
121
|
-
<td><code>now</code></td>
|
|
122
|
-
<td>boolean</td>
|
|
123
|
-
<td>Uses the current date when no start is set</td>
|
|
124
|
-
</tr>
|
|
125
|
-
<tr>
|
|
126
|
-
<td><code>hide_hours</code></td>
|
|
127
|
-
<td>boolean</td>
|
|
128
|
-
<td>Hides hours and minutes in a same-day range</td>
|
|
129
|
-
</tr>
|
|
130
|
-
<tr>
|
|
131
|
-
<td><code>weekday</code></td>
|
|
132
|
-
<td><code>narrow</code> · <code>short</code> · <code>long</code> · <code>hidden</code> (default <code>short</code>)</td>
|
|
133
|
-
<td>Weekday format</td>
|
|
134
|
-
</tr>
|
|
135
|
-
<tr>
|
|
136
|
-
<td><code>day</code></td>
|
|
137
|
-
<td><code>numeric</code> · <code>2-digit</code> (default <code>2-digit</code>)</td>
|
|
138
|
-
<td>Day format</td>
|
|
139
|
-
</tr>
|
|
140
|
-
<tr>
|
|
141
|
-
<td><code>month</code></td>
|
|
142
|
-
<td><code>numeric</code> · <code>2-digit</code> · <code>narrow</code> · <code>short</code> · <code>long</code> (default <code>short</code>)</td>
|
|
143
|
-
<td>Month format</td>
|
|
144
|
-
</tr>
|
|
145
|
-
<tr>
|
|
146
|
-
<td><code>year</code></td>
|
|
147
|
-
<td><code>numeric</code> · <code>2-digit</code> (default <code>numeric</code>)</td>
|
|
148
|
-
<td>Year format</td>
|
|
149
|
-
</tr>
|
|
150
|
-
<tr>
|
|
151
|
-
<td><code>hour</code></td>
|
|
152
|
-
<td><code>numeric</code> · <code>2-digit</code> · <code>hidden</code> (default <code>2-digit</code>)</td>
|
|
153
|
-
<td>Hour format</td>
|
|
154
|
-
</tr>
|
|
155
|
-
<tr>
|
|
156
|
-
<td><code>minute</code></td>
|
|
157
|
-
<td><code>numeric</code> · <code>2-digit</code> · <code>hidden</code> (default <code>2-digit</code>)</td>
|
|
158
|
-
<td>Minute format</td>
|
|
159
|
-
</tr>
|
|
160
|
-
<tr>
|
|
161
|
-
<td><code>hour12</code></td>
|
|
162
|
-
<td>boolean</td>
|
|
163
|
-
<td>12-hour clock. Default is 24-hour</td>
|
|
164
|
-
</tr>
|
|
165
|
-
<tr>
|
|
166
|
-
<td><code>era</code></td>
|
|
167
|
-
<td><code>narrow</code> · <code>short</code> · <code>long</code></td>
|
|
168
|
-
<td>Shows the era. Hidden by default</td>
|
|
169
|
-
</tr>
|
|
170
|
-
<tr>
|
|
171
|
-
<td><code>language</code></td>
|
|
172
|
-
<td>BCP 47 tag</td>
|
|
173
|
-
<td>Locale. Defaults to <code><html lang></code></td>
|
|
174
|
-
</tr>
|
|
175
|
-
<tr>
|
|
176
|
-
<td><code>time_zone</code></td>
|
|
177
|
-
<td>IANA name</td>
|
|
178
|
-
<td>Time zone. Defaults to the browser one</td>
|
|
179
|
-
</tr>
|
|
180
|
-
<tr>
|
|
181
|
-
<td><code>wording_billet_periode_validite</code></td>
|
|
182
|
-
<td>string with two <code>%s</code> (default <code>Du %s au %s</code>)</td>
|
|
183
|
-
<td>Wording of a multi-day range</td>
|
|
184
|
-
</tr>
|
|
185
|
-
<tr>
|
|
186
|
-
<td><code>designMode</code></td>
|
|
187
|
-
<td>boolean</td>
|
|
188
|
-
<td>Removes the "from" word and commas</td>
|
|
189
|
-
</tr>
|
|
190
|
-
<tr>
|
|
191
|
-
<td><code>noShadowDom</code></td>
|
|
192
|
-
<td>boolean</td>
|
|
193
|
-
<td>Renders in light DOM so page styles apply to the parts</td>
|
|
194
|
-
</tr>
|
|
195
|
-
<tr>
|
|
196
|
-
<td><code>templates</code></td>
|
|
197
|
-
<td><code>HTMLTemplateElement[]</code> (property)</td>
|
|
198
|
-
<td>Part templates, instead of child <code><template></code> elements</td>
|
|
199
|
-
</tr>
|
|
200
|
-
<tr>
|
|
201
|
-
<td><code>renderIf</code></td>
|
|
202
|
-
<td>boolean</td>
|
|
203
|
-
<td>Deprecated: wrap the date in <a href="/core/components/functional/if">sonic-if</a> instead</td>
|
|
204
|
-
</tr>
|
|
205
|
-
</tbody></table>
|
|
206
|
-
<p>No slots. Child <code><template data-value></code> elements customise the parts.</p>
|
|
207
|
-
|
|
208
|
-
</article>
|
|
209
|
-
</main>
|
|
210
|
-
</body>
|
|
211
|
-
</html>
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
# Date
|
|
2
|
-
|
|
3
|
-
**`sonic-date`** formats a date or a date range with `Intl.DateTimeFormat`. Pass a Unix timestamp in seconds (`date`) or a parsable string (`date_string`), add `end_date` for a range, and tune each part (`weekday` · `month` · `hour` …) with attributes. With no date and no `now`, it renders nothing.
|
|
4
|
-
|
|
5
|
-
## Basic example
|
|
6
|
-
|
|
7
|
-
`date` is in **seconds**, not milliseconds. `date_string` accepts anything `new Date()` parses: prefer ISO 8601 with an explicit offset. `now` shows the current date.
|
|
8
|
-
|
|
9
|
-
<sonic-code>
|
|
10
|
-
<template>
|
|
11
|
-
<div class="grid gap-2">
|
|
12
|
-
<div>Departure: <sonic-date date="1781514000" language="en"></sonic-date></div>
|
|
13
|
-
<div>Arrival: <sonic-date date_string="2026-06-15T12:45:00Z" language="en"></sonic-date></div>
|
|
14
|
-
<div>Now: <sonic-date now language="en"></sonic-date></div>
|
|
15
|
-
</div>
|
|
16
|
-
</template>
|
|
17
|
-
</sonic-code>
|
|
18
|
-
|
|
19
|
-
## Date range
|
|
20
|
-
|
|
21
|
-
Set `start_date` and `end_date` (or their `_string` variants). On two different days, only the dates are shown, with the "from … to …" wording. On the same day, the hours are kept. `hide_hours` drops them anyway.
|
|
22
|
-
|
|
23
|
-
Without a start, the range starts now. If the end is before the start, the two are swapped.
|
|
24
|
-
|
|
25
|
-
<sonic-code>
|
|
26
|
-
<template>
|
|
27
|
-
<div class="grid gap-2">
|
|
28
|
-
<sonic-date start_date_string="2026-06-15T09:00:00Z" end_date_string="2026-06-22T18:00:00Z" language="en" wording_billet_periode_validite="From %s to %s"></sonic-date>
|
|
29
|
-
<sonic-date start_date_string="2026-06-15T09:00:00Z" end_date_string="2026-06-15T12:45:00Z" language="en"></sonic-date>
|
|
30
|
-
<sonic-date start_date_string="2026-06-15T09:00:00Z" end_date_string="2026-06-15T12:45:00Z" language="en" hide_hours></sonic-date>
|
|
31
|
-
</div>
|
|
32
|
-
</template>
|
|
33
|
-
</sonic-code>
|
|
34
|
-
|
|
35
|
-
## Range wording
|
|
36
|
-
|
|
37
|
-
`wording_billet_periode_validite` holds the range wording, with one `%s` per date. It defaults to the French `Du %s au %s`, whatever the language: **set it for every non-French page**.
|
|
38
|
-
|
|
39
|
-
<sonic-code>
|
|
40
|
-
<template>
|
|
41
|
-
<sonic-date start_date_string="2026-06-15" end_date_string="2026-06-22" language="en" wording_billet_periode_validite="Valid from %s until %s"></sonic-date>
|
|
42
|
-
</template>
|
|
43
|
-
</sonic-code>
|
|
44
|
-
|
|
45
|
-
## Format options
|
|
46
|
-
|
|
47
|
-
Defaults: `weekday="short"` · `day="2-digit"` · `month="short"` · `year="numeric"` · `hour="2-digit"` · `minute="2-digit"`, 24-hour clock, no era. `hidden` removes a part.
|
|
48
|
-
|
|
49
|
-
<sonic-code>
|
|
50
|
-
<template>
|
|
51
|
-
<div class="grid grid-cols-[auto_1fr] gap-x-4 gap-y-1 text-sm">
|
|
52
|
-
<code>default</code><sonic-date date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
53
|
-
<code>weekday="long"</code><sonic-date weekday="long" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
54
|
-
<code>weekday="narrow"</code><sonic-date weekday="narrow" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
55
|
-
<code>weekday="hidden"</code><sonic-date weekday="hidden" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
56
|
-
<code>day="numeric"</code><sonic-date day="numeric" date_string="2026-06-05T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
57
|
-
<code>month="long"</code><sonic-date month="long" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
58
|
-
<code>month="narrow"</code><sonic-date month="narrow" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
59
|
-
<code>month="numeric"</code><sonic-date month="numeric" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
60
|
-
<code>month="2-digit"</code><sonic-date month="2-digit" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
61
|
-
<code>year="2-digit"</code><sonic-date year="2-digit" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
62
|
-
<code>hour="numeric"</code><sonic-date hour="numeric" date_string="2026-06-15T07:05:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
63
|
-
<code>hour12</code><sonic-date hour12 date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
64
|
-
<code>hour="hidden" minute="hidden"</code><sonic-date hour="hidden" minute="hidden" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
65
|
-
<code>era="short"</code><sonic-date era="short" date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" language="en"></sonic-date>
|
|
66
|
-
</div>
|
|
67
|
-
</template>
|
|
68
|
-
</sonic-code>
|
|
69
|
-
|
|
70
|
-
## Language
|
|
71
|
-
|
|
72
|
-
With no `language`, the component follows `<html lang>` and updates when it changes. Pass a BCP 47 tag to force one.
|
|
73
|
-
|
|
74
|
-
<sonic-code>
|
|
75
|
-
<template>
|
|
76
|
-
<div class="grid grid-cols-[auto_1fr] gap-x-4 gap-y-1 text-sm">
|
|
77
|
-
<code>en</code><sonic-date language="en" date_string="2026-06-15T09:00:00Z"></sonic-date>
|
|
78
|
-
<code>fr</code><sonic-date language="fr" date_string="2026-06-15T09:00:00Z"></sonic-date>
|
|
79
|
-
<code>ja</code><sonic-date language="ja" date_string="2026-06-15T09:00:00Z"></sonic-date>
|
|
80
|
-
</div>
|
|
81
|
-
</template>
|
|
82
|
-
</sonic-code>
|
|
83
|
-
|
|
84
|
-
## Time zone
|
|
85
|
-
|
|
86
|
-
With no `time_zone`, dates use the browser time zone. Pass an IANA name (`Intl.supportedValuesOf("timeZone")` lists them) to show local airport time.
|
|
87
|
-
|
|
88
|
-
<sonic-code>
|
|
89
|
-
<template>
|
|
90
|
-
<div class="grid gap-2">
|
|
91
|
-
<div>CN 001 departs CDG at <sonic-date date_string="2026-06-15T09:00:00Z" time_zone="Europe/Paris" weekday="hidden" language="en"></sonic-date> (Paris)</div>
|
|
92
|
-
<div>and lands at JFK at <sonic-date date_string="2026-06-15T12:45:00Z" time_zone="America/New_York" weekday="hidden" language="en"></sonic-date> (New York)</div>
|
|
93
|
-
</div>
|
|
94
|
-
</template>
|
|
95
|
-
</sonic-code>
|
|
96
|
-
|
|
97
|
-
## Custom parts
|
|
98
|
-
|
|
99
|
-
A child `<template data-value="<part>">` wraps a part in your own markup: `weekday` · `day` · `month` · `year` · `hour` · `minute` · `literal`, plus `from` and `to` in ranges. An empty element receives the part value; a non-empty one replaces it. `designMode` drops the leading "from" word and the commas, for stacked layouts. Add `noShadowDom` so page styles reach the parts.
|
|
100
|
-
|
|
101
|
-
<sonic-code>
|
|
102
|
-
<template>
|
|
103
|
-
<div class="relative max-w-sm rounded-lg overflow-hidden">
|
|
104
|
-
<sonic-date
|
|
105
|
-
designMode
|
|
106
|
-
noShadowDom
|
|
107
|
-
start_date_string="2026-06-15"
|
|
108
|
-
end_date_string="2026-06-22"
|
|
109
|
-
language="en"
|
|
110
|
-
wording_billet_periode_validite="From %s to %s"
|
|
111
|
-
class="absolute top-0 left-0 z-10 p-4 text-center text-sm text-white drop-shadow-lg"
|
|
112
|
-
>
|
|
113
|
-
<template data-value="weekday"><span class="hidden"></span></template>
|
|
114
|
-
<template data-value="day"><span class="block text-4xl font-bold leading-none"></span></template>
|
|
115
|
-
<template data-value="month"><span class="block text-xl font-bold uppercase leading-tight"></span></template>
|
|
116
|
-
<template data-value="year"><span class="block text-lg font-bold leading-tight"></span></template>
|
|
117
|
-
<template data-value="to"><span class="block my-1 text-3xl leading-none">↓</span></template>
|
|
118
|
-
</sonic-date>
|
|
119
|
-
<sonic-image src="img/concorde/plane_03.jpg" alt="Concorde specifications board" ratio="1/1" cover></sonic-image>
|
|
120
|
-
</div>
|
|
121
|
-
</template>
|
|
122
|
-
</sonic-code>
|
|
123
|
-
|
|
124
|
-
## API reference
|
|
125
|
-
|
|
126
|
-
| Attribute | Values | Description |
|
|
127
|
-
|-----------|--------|-------------|
|
|
128
|
-
| `date` | number | Unix timestamp in seconds |
|
|
129
|
-
| `date_string` | string | Date parsed with `new Date()`. Overrides `date` |
|
|
130
|
-
| `start_date` / `start_date_string` | number / string | Range start. Overrides `date` |
|
|
131
|
-
| `end_date` / `end_date_string` | number / string | Range end. Swapped with the start when earlier |
|
|
132
|
-
| `now` | boolean | Uses the current date when no start is set |
|
|
133
|
-
| `hide_hours` | boolean | Hides hours and minutes in a same-day range |
|
|
134
|
-
| `weekday` | `narrow` · `short` · `long` · `hidden` (default `short`) | Weekday format |
|
|
135
|
-
| `day` | `numeric` · `2-digit` (default `2-digit`) | Day format |
|
|
136
|
-
| `month` | `numeric` · `2-digit` · `narrow` · `short` · `long` (default `short`) | Month format |
|
|
137
|
-
| `year` | `numeric` · `2-digit` (default `numeric`) | Year format |
|
|
138
|
-
| `hour` | `numeric` · `2-digit` · `hidden` (default `2-digit`) | Hour format |
|
|
139
|
-
| `minute` | `numeric` · `2-digit` · `hidden` (default `2-digit`) | Minute format |
|
|
140
|
-
| `hour12` | boolean | 12-hour clock. Default is 24-hour |
|
|
141
|
-
| `era` | `narrow` · `short` · `long` | Shows the era. Hidden by default |
|
|
142
|
-
| `language` | BCP 47 tag | Locale. Defaults to `<html lang>` |
|
|
143
|
-
| `time_zone` | IANA name | Time zone. Defaults to the browser one |
|
|
144
|
-
| `wording_billet_periode_validite` | string with two `%s` (default `Du %s au %s`) | Wording of a multi-day range |
|
|
145
|
-
| `designMode` | boolean | Removes the "from" word and commas |
|
|
146
|
-
| `noShadowDom` | boolean | Renders in light DOM so page styles apply to the parts |
|
|
147
|
-
| `templates` | `HTMLTemplateElement[]` (property) | Part templates, instead of child `<template>` elements |
|
|
148
|
-
| `renderIf` | boolean | Deprecated: wrap the date in [sonic-if](/core/components/functional/if) instead |
|
|
149
|
-
|
|
150
|
-
No slots. Child `<template data-value>` elements customise the parts.
|