@supersoniks/concorde 5.1.0 → 5.1.2
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 +153 -0
- package/.agents/skills/{concorde-component-docs/template.md → concorde-docs/templates/component.md} +6 -2
- package/.agents/skills/concorde-docs/templates/decorator.md +43 -0
- package/.agents/skills/concorde-docs/templates/guide.md +25 -0
- package/.claude/launch.json +15 -0
- package/.claude/vite.http.config.mjs +7 -0
- 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 +4103 -0
- 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 +2556 -0
- package/.taste-skill/before/tablet-fold.jpg +0 -0
- package/.taste-skill/before/tablet-page-01.jpg +0 -0
- package/.taste-skill/direction.json +510 -0
- package/.taste-skill/notes.md +84 -0
- 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 +1973 -0
- 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/.tmp-cem/custom-elements.json +2013 -2013
- package/AUDIT.md +228 -0
- package/PLAN-AMELIORATION.md +220 -0
- package/PLAN-DOCS-AGENTS.md +80 -0
- package/README.md +3 -3
- package/ai/skills/concorde/SKILL.md +1 -1
- package/ai/skills/concorde-get-set-dp/SKILL.md +3 -3
- package/ai/skills/concorde-theme/SKILL.md +1 -1
- package/build-infos.json +1 -1
- package/concorde-core.bundle.js +16 -16
- package/concorde-core.es.js +235 -233
- package/dist/concorde-core.bundle.js +16 -16
- package/dist/concorde-core.es.js +235 -233
- package/dist/img/archive/concorde-001-2cv.webp +0 -0
- package/dist/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
- package/dist/img/archive/concorde-red-arrows-2002.webm +0 -0
- package/dist/img/archive/credits.json +28 -0
- package/docs/.htaccess +75 -0
- package/docs/404.html +15 -0
- package/docs/404.md +5 -0
- package/docs/assets/index-BgG6FFPt.js +11765 -0
- package/docs/assets/index-x89XINSG.css +1 -0
- package/docs/core/components/functional/date/date.html +211 -0
- package/docs/core/components/functional/date/date.md +150 -0
- package/docs/core/components/functional/fetch/fetch.html +180 -0
- package/docs/core/components/functional/fetch/fetch.md +108 -0
- package/docs/core/components/functional/if/if.html +65 -0
- package/docs/core/components/functional/if/if.md +34 -0
- package/docs/core/components/functional/jsonata/jsonata.html +110 -0
- package/docs/core/components/functional/jsonata/jsonata.md +61 -0
- package/docs/core/components/functional/list/list.html +198 -0
- package/docs/core/components/functional/list/list.md +121 -0
- package/docs/core/components/functional/mix/mix.html +78 -0
- package/docs/core/components/functional/mix/mix.md +46 -0
- package/docs/core/components/functional/queue/queue.html +155 -0
- package/docs/core/components/functional/queue/queue.md +51 -0
- package/docs/core/components/functional/router/router.html +154 -0
- package/docs/core/components/functional/router/router.md +93 -0
- package/docs/core/components/functional/sdui/sdui-extension-points.html +127 -0
- package/docs/core/components/functional/sdui/sdui-extension-points.md +94 -0
- package/docs/core/components/functional/sdui/sdui.html +397 -0
- package/docs/core/components/functional/sdui/sdui.md +307 -0
- package/docs/core/components/functional/states/states.html +141 -0
- package/docs/core/components/functional/states/states.md +112 -0
- package/docs/core/components/functional/submit/submit.html +178 -0
- package/docs/core/components/functional/submit/submit.md +106 -0
- package/docs/{crawl/core → core}/components/functional/subscriber/subscriber.html +6 -5
- package/docs/core/components/functional/subscriber/subscriber.md +91 -0
- package/docs/core/components/functional/translation/translation.html +60 -0
- package/docs/core/components/functional/translation/translation.md +38 -0
- package/docs/core/components/functional/value/value.html +81 -0
- package/docs/core/components/functional/value/value.md +47 -0
- package/docs/core/components/ui/alert/alert.html +201 -0
- package/docs/core/components/ui/alert/alert.md +186 -0
- package/docs/core/components/ui/alert-messages/alert-messages.html +132 -0
- package/docs/core/components/ui/alert-messages/alert-messages.md +85 -0
- package/docs/core/components/ui/badge/badge.html +197 -0
- package/docs/core/components/ui/badge/badge.md +181 -0
- package/docs/core/components/ui/button/button.html +309 -0
- package/docs/core/components/ui/button/button.md +216 -0
- package/docs/core/components/ui/captcha/captcha.html +80 -0
- package/docs/core/components/ui/captcha/captcha.md +56 -0
- package/docs/core/components/ui/card/card.html +254 -0
- package/docs/core/components/ui/card/card.md +215 -0
- package/docs/core/components/ui/divider/divider.html +144 -0
- package/docs/core/components/ui/divider/divider.md +126 -0
- package/docs/core/components/ui/form/checkbox/checkbox.html +200 -0
- package/docs/core/components/ui/form/checkbox/checkbox.md +125 -0
- package/docs/core/components/ui/form/fieldset/fieldset.html +238 -0
- package/docs/core/components/ui/form/fieldset/fieldset.md +161 -0
- package/docs/core/components/ui/form/form-actions/form-actions.html +122 -0
- package/docs/core/components/ui/form/form-actions/form-actions.md +98 -0
- package/docs/core/components/ui/form/form-layout/form-layout.html +115 -0
- package/docs/core/components/ui/form/form-layout/form-layout.md +109 -0
- package/docs/core/components/ui/form/input/input.html +235 -0
- package/docs/core/components/ui/form/input/input.md +142 -0
- package/docs/core/components/ui/form/radio/radio.html +144 -0
- package/docs/core/components/ui/form/radio/radio.md +78 -0
- package/docs/core/components/ui/form/select/select.html +178 -0
- package/docs/core/components/ui/form/select/select.md +86 -0
- package/docs/core/components/ui/form/switch/switch.html +146 -0
- package/docs/core/components/ui/form/switch/switch.md +80 -0
- package/docs/core/components/ui/form/textarea/textarea.html +162 -0
- package/docs/core/components/ui/form/textarea/textarea.md +82 -0
- package/docs/core/components/ui/group/group.html +113 -0
- package/docs/core/components/ui/group/group.md +77 -0
- package/docs/core/components/ui/icon/icon.html +223 -0
- package/docs/core/components/ui/icon/icon.md +214 -0
- package/docs/core/components/ui/image/image.html +194 -0
- package/docs/core/components/ui/image/image.md +167 -0
- package/docs/core/components/ui/link/link.html +101 -0
- package/docs/core/components/ui/link/link.md +81 -0
- package/docs/core/components/ui/loader/loader.html +114 -0
- package/docs/core/components/ui/loader/loader.md +87 -0
- package/docs/{crawl/core → core}/components/ui/menu/menu.html +189 -116
- package/docs/core/components/ui/menu/menu.md +370 -0
- package/docs/core/components/ui/modal/modal.html +324 -0
- package/docs/core/components/ui/modal/modal.md +211 -0
- package/docs/core/components/ui/pop/pop.html +250 -0
- package/docs/core/components/ui/pop/pop.md +216 -0
- package/docs/core/components/ui/progress/progress.html +132 -0
- package/docs/core/components/ui/progress/progress.md +109 -0
- package/docs/core/components/ui/table/table.html +333 -0
- package/docs/core/components/ui/table/table.md +267 -0
- package/docs/core/components/ui/theme/theme.html +116 -0
- package/docs/core/components/ui/theme/theme.md +97 -0
- package/docs/core/components/ui/toast/toast.html +185 -0
- package/docs/core/components/ui/toast/toast.md +147 -0
- package/docs/core/components/ui/tooltip/tooltip.html +112 -0
- package/docs/core/components/ui/tooltip/tooltip.md +89 -0
- package/docs/docs/decorators/ancestor-attribute.html +71 -0
- package/docs/docs/decorators/ancestor-attribute.md +59 -0
- package/docs/docs/decorators/auto-subscribe.html +61 -0
- package/docs/docs/decorators/auto-subscribe.md +40 -0
- package/docs/docs/decorators/bind.html +86 -0
- package/docs/docs/decorators/bind.md +77 -0
- package/docs/docs/decorators/get.html +166 -0
- package/docs/docs/decorators/get.md +160 -0
- package/docs/docs/decorators/handle.html +139 -0
- package/docs/docs/decorators/handle.md +119 -0
- package/docs/docs/decorators/on-assign.html +72 -0
- package/docs/docs/decorators/on-assign.md +63 -0
- package/docs/docs/decorators/patch.html +76 -0
- package/docs/docs/decorators/patch.md +44 -0
- package/docs/docs/decorators/post.html +150 -0
- package/docs/docs/decorators/post.md +134 -0
- package/docs/docs/decorators/publish.html +74 -0
- package/docs/docs/decorators/publish.md +56 -0
- package/docs/docs/decorators/put.html +83 -0
- package/docs/docs/decorators/put.md +51 -0
- package/docs/docs/decorators/subscribe.html +91 -0
- package/docs/docs/decorators/subscribe.md +87 -0
- package/docs/docs/decorators/wait-for-ancestors.html +82 -0
- package/docs/docs/decorators/wait-for-ancestors.md +76 -0
- package/docs/docs/directives/sub.html +79 -0
- package/docs/docs/directives/sub.md +75 -0
- package/docs/docs/directives/t.html +91 -0
- package/docs/docs/directives/t.md +73 -0
- package/docs/{crawl/docs/_getting-started → docs/getting-started}/ai-agents.html +12 -11
- package/{src/docs/_getting-started → docs/docs/getting-started}/ai-agents.md +3 -3
- package/docs/docs/getting-started/components.html +27 -0
- package/docs/docs/getting-started/components.md +5 -0
- package/docs/{crawl/docs/_getting-started → docs/getting-started}/create-a-component.html +11 -14
- package/docs/{src/docs/_getting-started → docs/getting-started}/create-a-component.md +3 -6
- package/docs/{crawl/docs/_core-concept → docs/getting-started}/dataFlow.html +26 -29
- package/docs/{src/docs/_core-concept → docs/getting-started}/dataFlow.md +17 -18
- package/docs/docs/getting-started/installation.html +69 -0
- package/docs/docs/getting-started/installation.md +36 -0
- package/docs/{crawl/docs/_getting-started → docs/getting-started}/my-first-component.html +13 -22
- package/docs/{src/docs/_getting-started → docs/getting-started}/my-first-component.md +5 -14
- package/docs/docs/getting-started/start.html +47 -0
- package/{src/docs/_getting-started → docs/docs/getting-started}/start.md +1 -13
- package/docs/docs/getting-started/theming.html +334 -0
- package/{src/docs/_getting-started → docs/docs/getting-started}/theming.md +2 -2
- package/docs/docs/index.html +99 -0
- package/docs/{crawl/docs/_misc → docs/misc}/api-configuration.html +18 -18
- package/docs/{src/docs/_misc → docs/misc}/api-configuration.md +10 -12
- package/docs/{crawl/docs/_misc → docs/misc}/dataProviderKey.html +12 -11
- package/{src/docs/_misc → docs/docs/misc}/dataProviderKey.md +4 -4
- package/docs/{crawl/docs/_misc → docs/misc}/docs-mock-api.html +25 -28
- package/docs/{src/docs/_misc → docs/misc}/docs-mock-api.md +12 -13
- package/docs/{crawl/docs/_misc → docs/misc}/dynamic-path.html +16 -15
- package/{src/docs/_misc → docs/docs/misc}/dynamic-path.md +8 -8
- package/docs/{crawl/docs/_misc → docs/misc}/endpoint.html +16 -15
- package/{src/docs/_misc → docs/docs/misc}/endpoint.md +8 -8
- package/docs/{crawl/docs/_misc → docs/misc}/html-integration.html +12 -15
- package/docs/{src/docs/_misc → docs/misc}/html-integration.md +4 -5
- package/docs/docs-mock-api-sw.js +60 -223
- package/docs/docs-mock-api-sw.js.map +4 -4
- package/docs/hubs/decorators.html +443 -0
- package/docs/hubs/form-components.html +404 -0
- package/docs/hubs/remote-data.html +371 -0
- 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 +28 -0
- package/docs/img/concorde/plane_01.jpg +0 -0
- package/docs/img/concorde/plane_02.jpg +0 -0
- package/docs/img/concorde/plane_03.jpg +0 -0
- package/docs/img/concorde/plane_04.jpg +0 -0
- package/docs/img/concorde/plane_05.jpg +0 -0
- package/docs/img/concorde/plane_06.jpg +0 -0
- package/docs/img/concorde/plane_07.jpg +0 -0
- package/docs/img/concorde/plane_08.jpg +0 -0
- package/docs/img/concorde/plane_09.jpg +0 -0
- package/docs/img/concorde/plane_10.jpg +0 -0
- package/docs/img/concorde/plane_11.jpg +0 -0
- package/docs/img/concorde/plane_12.jpg +0 -0
- package/docs/img/concorde/plane_13.jpg +0 -0
- package/docs/index.html +96 -67
- package/docs/index.md +22 -0
- package/docs/llms-full.txt +3329 -3295
- package/docs/llms.txt +94 -92
- package/docs/robots.txt +11 -10
- package/docs/sitemap.xml +78 -78
- package/docs/src/core/components/functional/date/date.md +91 -231
- package/docs/src/core/components/functional/fetch/fetch.md +66 -83
- package/docs/src/core/components/functional/if/if.md +28 -3
- package/docs/src/core/components/functional/jsonata/jsonata.md +42 -37
- package/docs/src/core/components/functional/list/list.md +99 -43
- package/docs/src/core/components/functional/mix/mix.md +31 -26
- package/docs/src/core/components/functional/queue/queue.md +40 -61
- package/docs/src/core/components/functional/router/router.md +64 -65
- package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
- package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
- package/docs/src/core/components/functional/sdui/example.json +19 -86
- package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
- package/docs/src/core/components/functional/sdui/sdui.md +196 -245
- package/docs/src/core/components/functional/states/states.md +86 -61
- package/docs/src/core/components/functional/submit/submit.md +64 -72
- package/docs/src/core/components/functional/translation/translation.md +38 -0
- package/docs/src/core/components/functional/value/value.md +34 -22
- package/docs/src/core/components/ui/alert/alert.md +139 -74
- package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
- package/docs/src/core/components/ui/badge/badge.md +137 -83
- package/docs/src/core/components/ui/button/button.md +139 -105
- package/docs/src/core/components/ui/captcha/captcha.md +50 -6
- package/docs/src/core/components/ui/card/card.md +183 -65
- package/docs/src/core/components/ui/divider/divider.md +104 -13
- package/docs/src/core/components/ui/form/checkbox/checkbox.md +90 -42
- package/docs/src/core/components/ui/form/fieldset/fieldset.md +135 -103
- package/docs/src/core/components/ui/form/form-actions/form-actions.md +71 -50
- package/docs/src/core/components/ui/form/form-layout/form-layout.md +99 -34
- package/docs/src/core/components/ui/form/input/input.md +95 -95
- package/docs/src/core/components/ui/form/radio/radio.md +55 -34
- package/docs/src/core/components/ui/form/select/select.md +60 -45
- package/docs/src/core/components/ui/form/switch/switch.md +57 -34
- package/docs/src/core/components/ui/form/textarea/textarea.md +55 -38
- package/docs/src/core/components/ui/group/group.md +49 -47
- package/docs/src/core/components/ui/icon/icon.md +132 -43
- package/docs/src/core/components/ui/image/image.md +132 -72
- package/docs/src/core/components/ui/link/link.md +46 -8
- package/docs/src/core/components/ui/loader/loader.md +55 -23
- package/docs/src/core/components/ui/menu/menu.md +155 -114
- package/docs/src/core/components/ui/modal/modal.md +154 -62
- package/docs/src/core/components/ui/pop/pop.md +185 -65
- package/docs/src/core/components/ui/progress/progress.md +76 -30
- package/docs/src/core/components/ui/table/table.md +146 -334
- package/docs/src/core/components/ui/theme/theme.md +97 -0
- package/docs/src/core/components/ui/toast/toast.md +80 -99
- package/docs/src/core/components/ui/tooltip/tooltip.md +52 -45
- package/docs/src/docs/decorators/ancestor-attribute.md +59 -0
- package/docs/src/docs/decorators/auto-subscribe.md +40 -0
- package/docs/src/docs/decorators/bind.md +77 -0
- package/docs/src/docs/decorators/get.md +160 -0
- package/docs/src/docs/decorators/handle.md +119 -0
- package/docs/src/docs/decorators/on-assign.md +63 -0
- package/docs/src/docs/decorators/patch.md +44 -0
- package/docs/src/docs/decorators/post.md +134 -0
- package/docs/src/docs/decorators/publish.md +56 -0
- package/docs/src/docs/decorators/put.md +51 -0
- package/docs/src/docs/decorators/subscribe.md +87 -0
- package/docs/src/docs/decorators/wait-for-ancestors.md +76 -0
- package/docs/src/docs/directives/sub.md +75 -0
- package/docs/src/docs/directives/t.md +73 -0
- package/docs/src/docs/{_getting-started → getting-started}/ai-agents.md +3 -3
- package/docs/src/docs/getting-started/components.md +5 -0
- package/{src/docs/_getting-started → docs/src/docs/getting-started}/create-a-component.md +3 -6
- package/{src/docs/_core-concept → docs/src/docs/getting-started}/dataFlow.md +17 -18
- package/docs/src/docs/getting-started/installation.md +36 -0
- package/{src/docs/_getting-started → docs/src/docs/getting-started}/my-first-component.md +5 -14
- package/docs/src/docs/getting-started/start.md +35 -0
- package/docs/src/docs/getting-started/theming.md +253 -0
- package/{src/docs/_misc → docs/src/docs/misc}/api-configuration.md +10 -12
- package/docs/src/docs/{_misc → misc}/dataProviderKey.md +4 -4
- package/{src/docs/_misc → docs/src/docs/misc}/docs-mock-api.md +12 -13
- package/docs/src/docs/{_misc → misc}/dynamic-path.md +8 -8
- package/docs/src/docs/{_misc → misc}/endpoint.md +8 -8
- package/{src/docs/_misc → docs/src/docs/misc}/html-integration.md +4 -5
- package/docs/src/docs/search/docs-search.json +3729 -2949
- package/docs/src/tsconfig.json +176 -5
- package/index.html +94 -67
- package/package.json +11 -4
- package/public/docs-mock-api-sw.js +58 -223
- package/public/docs-mock-api-sw.js.map +4 -4
- package/public/img/archive/concorde-001-2cv.webp +0 -0
- package/public/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
- package/public/img/archive/concorde-red-arrows-2002.webm +0 -0
- package/public/img/archive/credits.json +28 -0
- package/public/img/concorde/plane_01.jpg +0 -0
- package/public/img/concorde/plane_02.jpg +0 -0
- package/public/img/concorde/plane_03.jpg +0 -0
- package/public/img/concorde/plane_04.jpg +0 -0
- package/public/img/concorde/plane_05.jpg +0 -0
- package/public/img/concorde/plane_06.jpg +0 -0
- package/public/img/concorde/plane_07.jpg +0 -0
- package/public/img/concorde/plane_08.jpg +0 -0
- package/public/img/concorde/plane_09.jpg +0 -0
- package/public/img/concorde/plane_10.jpg +0 -0
- package/public/img/concorde/plane_11.jpg +0 -0
- package/public/img/concorde/plane_12.jpg +0 -0
- package/public/img/concorde/plane_13.jpg +0 -0
- package/public/robots.txt +11 -10
- package/scripts/docs-markdown-vite-plugin.ts +37 -0
- package/scripts/docs-public-url.mjs +50 -0
- package/scripts/docs.htaccess +75 -0
- package/scripts/generate-crawl-docs.mjs +207 -116
- package/scripts/generate-crawl-docs.test.mjs +124 -0
- package/scripts/post-build-docs.js +34 -50
- package/scripts/post-build.mjs +0 -0
- package/src/core/components/functional/date/date.md +91 -231
- package/src/core/components/functional/fetch/fetch.md +66 -83
- package/src/core/components/functional/if/if.md +28 -3
- package/src/core/components/functional/if/if.ts +0 -0
- package/src/core/components/functional/jsonata/jsonata.md +42 -37
- package/src/core/components/functional/list/list.demo.ts +0 -0
- package/src/core/components/functional/list/list.md +99 -43
- package/src/core/components/functional/mix/mix.md +31 -26
- package/src/core/components/functional/queue/queue.demo.ts +10 -7
- package/src/core/components/functional/queue/queue.md +40 -61
- package/src/core/components/functional/router/router.demo.ts +16 -16
- package/src/core/components/functional/router/router.md +64 -65
- 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 +1 -1
- package/src/core/components/functional/sdui/example.json +19 -86
- package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
- package/src/core/components/functional/sdui/sdui.md +187 -358
- package/src/core/components/functional/sdui/types.ts +0 -0
- package/src/core/components/functional/states/states.demo.ts +21 -22
- package/src/core/components/functional/states/states.md +86 -61
- package/src/core/components/functional/states/states.ts +1 -1
- package/src/core/components/functional/submit/submit.md +64 -72
- package/src/core/components/functional/subscriber/subscriber.ts +0 -0
- package/src/core/components/functional/translation/translation.md +38 -0
- package/src/core/components/functional/value/value.md +34 -22
- 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/alert/alert.md +48 -58
- package/src/core/components/ui/badge/badge.md +27 -34
- package/src/core/components/ui/button/button.md +139 -106
- package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
- package/src/core/components/ui/captcha/captcha.md +17 -32
- package/src/core/components/ui/card/card.md +6 -6
- package/src/core/components/ui/divider/divider.md +8 -11
- package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
- package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
- package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
- package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
- package/src/core/components/ui/form/input/input.md +95 -95
- package/src/core/components/ui/form/radio/radio.md +55 -34
- package/src/core/components/ui/form/select/select.md +60 -45
- package/src/core/components/ui/form/switch/switch.md +57 -34
- package/src/core/components/ui/form/textarea/textarea.md +55 -38
- package/src/core/components/ui/group/group.md +35 -33
- package/src/core/components/ui/icon/icon.md +4 -4
- package/src/core/components/ui/image/image.md +41 -107
- package/src/core/components/ui/link/link.md +6 -6
- package/src/core/components/ui/loader/loader.md +30 -55
- package/src/core/components/ui/menu/menu.md +27 -27
- package/src/core/components/ui/modal/modal.md +72 -96
- package/src/core/components/ui/modal/modal.ts +14 -11
- package/src/core/components/ui/pop/pop.md +80 -158
- package/src/core/components/ui/progress/progress.md +2 -2
- package/src/core/components/ui/table/table.md +91 -255
- package/src/core/components/ui/theme/theme.md +11 -36
- package/src/core/components/ui/toast/toast.md +48 -117
- package/src/core/components/ui/tooltip/tooltip.md +27 -62
- package/src/core/mixins/Subscriber.ts +0 -0
- package/src/core/utils/DataBindObserver.ts +0 -0
- package/src/core/utils/LocationHandler.spec.ts +80 -0
- package/src/core/utils/LocationHandler.ts +5 -9
- package/src/core/utils/Objects.ts +0 -0
- package/src/core/utils/route.ts +0 -0
- package/src/docs/code.ts +88 -75
- package/src/docs/components/docs-demo-sources.ts +70 -147
- package/src/docs/components/docs-lit-demo.ts +20 -40
- package/src/docs/components/docs-source-link.ts +0 -82
- package/src/docs/decorators/ancestor-attribute.md +59 -0
- package/src/docs/decorators/auto-subscribe.md +40 -0
- package/src/docs/decorators/bind.md +77 -0
- package/src/docs/decorators/get.md +160 -0
- package/src/docs/decorators/handle.md +119 -0
- package/src/docs/decorators/on-assign.md +63 -0
- package/src/docs/decorators/patch.md +44 -0
- package/src/docs/decorators/post.md +134 -0
- package/src/docs/decorators/publish.md +56 -0
- package/src/docs/decorators/put.md +51 -0
- package/src/docs/decorators/subscribe.md +87 -0
- package/src/docs/decorators/wait-for-ancestors.md +76 -0
- package/src/docs/directives/sub.md +75 -0
- package/src/docs/directives/t.md +73 -0
- package/src/docs/docs-location.spec.ts +46 -0
- package/src/docs/docs-location.ts +123 -32
- package/src/docs/docs.ts +6 -2
- package/src/docs/example/decorators-demo-bind-demos.ts +81 -116
- package/src/docs/example/decorators-demo-geo.ts +30 -19
- package/src/docs/example/decorators-demo-post.ts +88 -186
- package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
- package/src/docs/example/decorators-demo.ts +85 -98
- package/src/docs/example/docs-api-config-demos.ts +19 -20
- package/src/docs/example/docs-boarding-pass-demo.ts +134 -0
- package/src/docs/example/docs-flight-demos.ts +147 -0
- package/src/docs/example/docs-jsonata-demos.ts +52 -52
- package/src/docs/example/docs-list-demos.ts +43 -123
- package/src/docs/example/docs-provider-keys.ts +33 -28
- package/src/docs/example/docs-queue-demos.ts +37 -77
- package/src/docs/example/docs-router-demos.ts +20 -25
- package/src/docs/example/docs-submit-demos.ts +48 -48
- package/src/docs/example/docs-toggle-demos.ts +4 -3
- package/src/docs/example/users.ts +0 -0
- package/src/docs/getting-started/ai-agents.md +76 -0
- package/src/docs/getting-started/components.md +5 -0
- package/src/docs/getting-started/create-a-component.md +136 -0
- package/src/docs/getting-started/dataFlow.md +87 -0
- package/src/docs/getting-started/installation.md +36 -0
- package/src/docs/getting-started/my-first-component.md +227 -0
- package/src/docs/getting-started/start.md +35 -0
- package/src/docs/getting-started/theming.md +253 -0
- package/src/docs/header/header.ts +240 -71
- package/src/docs/home/catalog.ts +44 -0
- package/src/docs/home/home.ts +520 -0
- package/src/docs/home/mach-stage.ts +389 -0
- package/src/docs/layout.ts +12 -11
- package/src/docs/misc/api-configuration.md +79 -0
- package/src/docs/misc/dataProviderKey.md +168 -0
- package/src/docs/misc/docs-mock-api.md +62 -0
- package/src/docs/misc/dynamic-path.md +71 -0
- package/src/docs/misc/endpoint.md +45 -0
- package/src/docs/misc/html-integration.md +14 -0
- package/src/docs/mock-api/api-config-mock.ts +5 -0
- package/src/docs/mock-api/fixtures.ts +0 -278
- package/src/docs/mock-api/flights.ts +89 -0
- package/src/docs/mock-api/router.ts +3 -4
- package/src/docs/mock-api/urls.ts +1 -2
- package/src/docs/navigation/components-index.ts +56 -0
- package/src/docs/navigation/navigation.ts +219 -232
- package/src/docs/navigation/pager.ts +67 -0
- package/src/docs/navigation/toc.ts +101 -0
- package/src/docs/search/docs-search.json +2419 -4374
- package/src/docs/search/markdown-renderer.ts +33 -7
- package/src/docs/search/page.ts +9 -6
- package/src/docs/search/search.ts +154 -122
- package/src/docs/shiki/index.ts +109 -0
- package/src/docs/tailwind/css/base/scrollbar.css +22 -0
- package/src/docs/tailwind/css/base/theme.css +96 -0
- package/src/docs/tailwind/css/base/typography.css +4 -0
- package/src/docs/tailwind/css/docs/boarding-pass.css +65 -0
- package/src/docs/tailwind/css/docs/content.css +32 -0
- package/src/docs/tailwind/css/docs/page.css +10 -0
- package/src/docs/tailwind/css/docs.css +9 -0
- package/src/docs/tailwind/css/home/hero.css +210 -0
- package/src/docs/tailwind/css/home/motion.css +84 -0
- package/src/docs/tailwind/css/home/sections.css +416 -0
- package/src/docs/tailwind/css/tailwind.css +7 -185
- package/src/tsconfig.json +23 -2
- package/src/tsconfig.tsbuildinfo +1 -1
- package/tailwind.config.js +8 -4
- package/vite.config.mts +11 -2
- package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
- package/.github/workflows/ci.yml +0 -21
- package/.github-export-ignore +0 -30
- package/CONTRIBUTING.md +0 -59
- package/DEV.md +0 -54
- package/LICENSE +0 -21
- package/OPEN_SOURCE_CHECKPOINT.md +0 -133
- package/concorde-3d.bundle.js +0 -3960
- package/concorde-3d.es.js +0 -33433
- package/concorde-hugging-face-infer.bundle.js +0 -32
- package/concorde-hugging-face-infer.es.js +0 -2952
- package/concorde-interactive.bundle.js +0 -1157
- package/concorde-interactive.es.js +0 -10734
- package/concorde-shader.bundle.js +0 -116
- package/concorde-shader.es.js +0 -8353
- package/concorde-webgpu.bundle.js +0 -307
- package/concorde-webgpu.es.js +0 -8627
- package/docs/assets/index-D8MVWqY6.js +0 -12251
- package/docs/assets/index-DiD0qYvE.css +0 -1
- package/docs/crawl/core/components/functional/date/date.html +0 -190
- package/docs/crawl/core/components/functional/fetch/fetch.html +0 -109
- package/docs/crawl/core/components/functional/if/if.html +0 -27
- package/docs/crawl/core/components/functional/jsonata/jsonata.html +0 -79
- package/docs/crawl/core/components/functional/list/list.html +0 -70
- package/docs/crawl/core/components/functional/mix/mix.html +0 -45
- package/docs/crawl/core/components/functional/queue/queue.html +0 -96
- package/docs/crawl/core/components/functional/router/router.html +0 -106
- package/docs/crawl/core/components/functional/sdui/sdui.html +0 -269
- package/docs/crawl/core/components/functional/states/states.html +0 -66
- package/docs/crawl/core/components/functional/submit/submit.html +0 -160
- package/docs/crawl/core/components/functional/value/value.html +0 -51
- package/docs/crawl/core/components/ui/alert/alert.html +0 -110
- package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +0 -23
- package/docs/crawl/core/components/ui/badge/badge.html +0 -119
- package/docs/crawl/core/components/ui/button/button.html +0 -149
- package/docs/crawl/core/components/ui/captcha/captcha.html +0 -30
- package/docs/crawl/core/components/ui/card/card.html +0 -99
- package/docs/crawl/core/components/ui/divider/divider.html +0 -58
- package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +0 -73
- package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +0 -135
- package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +0 -79
- package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +0 -62
- package/docs/crawl/core/components/ui/form/input/input.html +0 -109
- package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +0 -38
- package/docs/crawl/core/components/ui/form/radio/radio.html +0 -56
- package/docs/crawl/core/components/ui/form/select/select.html +0 -73
- package/docs/crawl/core/components/ui/form/switch/switch.html +0 -56
- package/docs/crawl/core/components/ui/form/textarea/textarea.html +0 -59
- package/docs/crawl/core/components/ui/group/group.html +0 -82
- package/docs/crawl/core/components/ui/icon/icon.html +0 -133
- package/docs/crawl/core/components/ui/image/image.html +0 -110
- package/docs/crawl/core/components/ui/link/link.html +0 -42
- package/docs/crawl/core/components/ui/loader/loader.html +0 -50
- package/docs/crawl/core/components/ui/modal/modal.html +0 -117
- package/docs/crawl/core/components/ui/pop/pop.html +0 -102
- package/docs/crawl/core/components/ui/progress/progress.html +0 -58
- package/docs/crawl/core/components/ui/table/table.html +0 -413
- package/docs/crawl/core/components/ui/toast/toast.html +0 -122
- package/docs/crawl/core/components/ui/tooltip/tooltip.html +0 -79
- package/docs/crawl/docs/_core-concept/overview.html +0 -66
- package/docs/crawl/docs/_core-concept/subscriber.html +0 -75
- package/docs/crawl/docs/_decorators/ancestor-attribute.html +0 -116
- package/docs/crawl/docs/_decorators/auto-subscribe.html +0 -202
- package/docs/crawl/docs/_decorators/bind.html +0 -141
- package/docs/crawl/docs/_decorators/get.html +0 -149
- package/docs/crawl/docs/_decorators/handle.html +0 -165
- package/docs/crawl/docs/_decorators/on-assign.html +0 -355
- package/docs/crawl/docs/_decorators/patch.html +0 -78
- package/docs/crawl/docs/_decorators/post.html +0 -139
- package/docs/crawl/docs/_decorators/publish.html +0 -61
- package/docs/crawl/docs/_decorators/put.html +0 -78
- package/docs/crawl/docs/_decorators/subscribe.html +0 -109
- package/docs/crawl/docs/_decorators/wait-for-ancestors.html +0 -137
- package/docs/crawl/docs/_directives/sub.html +0 -93
- package/docs/crawl/docs/_getting-started/concorde-manual-install.html +0 -100
- package/docs/crawl/docs/_getting-started/concorde-outside.html +0 -58
- package/docs/crawl/docs/_getting-started/my-first-subscriber.html +0 -110
- package/docs/crawl/docs/_getting-started/pubsub.html +0 -62
- package/docs/crawl/docs/_getting-started/start.html +0 -76
- package/docs/crawl/docs/_getting-started/theming.html +0 -85
- package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +0 -138
- package/docs/crawl/hubs/decorators.html +0 -547
- package/docs/crawl/hubs/form-components.html +0 -359
- package/docs/crawl/hubs/remote-data.html +0 -452
- package/docs/crawl/index.html +0 -101
- package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
- package/docs/src/docs/_core-concept/overview.md +0 -57
- package/docs/src/docs/_core-concept/subscriber.md +0 -75
- package/docs/src/docs/_decorators/ancestor-attribute.md +0 -127
- package/docs/src/docs/_decorators/auto-subscribe.md +0 -202
- package/docs/src/docs/_decorators/bind.md +0 -167
- package/docs/src/docs/_decorators/get.md +0 -162
- package/docs/src/docs/_decorators/handle.md +0 -175
- package/docs/src/docs/_decorators/on-assign.md +0 -390
- package/docs/src/docs/_decorators/patch.md +0 -70
- package/docs/src/docs/_decorators/post.md +0 -146
- package/docs/src/docs/_decorators/publish.md +0 -55
- package/docs/src/docs/_decorators/put.md +0 -70
- package/docs/src/docs/_decorators/subscribe.md +0 -100
- package/docs/src/docs/_decorators/wait-for-ancestors.md +0 -163
- package/docs/src/docs/_directives/sub.md +0 -91
- package/docs/src/docs/_getting-started/concorde-manual-install.md +0 -133
- package/docs/src/docs/_getting-started/concorde-outside.md +0 -33
- package/docs/src/docs/_getting-started/my-first-subscriber.md +0 -120
- package/docs/src/docs/_getting-started/pubsub.md +0 -37
- package/docs/src/docs/_getting-started/start.md +0 -47
- package/docs/src/docs/_getting-started/theming.md +0 -91
- package/docs/src/docs/_misc/formelement-subscriber-removal.md +0 -115
- package/docs/src/tsconfig.declarations.json +0 -22
- package/docs/src/tsconfig.emit.json +0 -23
- package/gitlab/job_github_mirror.sh +0 -39
- package/scripts/github-export.mjs +0 -150
- package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
- package/src/css.d.ts +0 -19
- package/src/docs/_core-concept/overview.md +0 -57
- package/src/docs/_core-concept/subscriber.md +0 -75
- package/src/docs/_decorators/ancestor-attribute.md +0 -128
- package/src/docs/_decorators/auto-subscribe.md +0 -202
- package/src/docs/_decorators/bind.md +0 -167
- package/src/docs/_decorators/get.md +0 -162
- package/src/docs/_decorators/handle.md +0 -175
- package/src/docs/_decorators/on-assign.md +0 -390
- package/src/docs/_decorators/patch.md +0 -70
- package/src/docs/_decorators/post.md +0 -146
- package/src/docs/_decorators/publish.md +0 -55
- package/src/docs/_decorators/put.md +0 -70
- package/src/docs/_decorators/subscribe.md +0 -100
- package/src/docs/_decorators/wait-for-ancestors.md +0 -163
- package/src/docs/_directives/sub.md +0 -91
- package/src/docs/_getting-started/concorde-manual-install.md +0 -133
- package/src/docs/_getting-started/concorde-outside.md +0 -33
- package/src/docs/_getting-started/my-first-subscriber.md +0 -120
- package/src/docs/_getting-started/pubsub.md +0 -37
- package/src/docs/_misc/formelement-subscriber-removal.md +0 -115
- package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
- package/src/docs/example/docs-joke-demos.ts +0 -297
- package/src/docs/prism/index.ts +0 -6
- package/src/docs/prism/prism.css +0 -158
- package/src/docs/prism/prism.js +0 -1022
- package/src/tsconfig.declarations.json +0 -22
- package/src/tsconfig.emit.json +0 -23
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import os from "node:os";
|
|
4
|
+
import path from "path";
|
|
5
|
+
import test from "node:test";
|
|
6
|
+
import {
|
|
7
|
+
generateHomepageMarkdown,
|
|
8
|
+
generateHtaccess,
|
|
9
|
+
generateNotFoundHtml,
|
|
10
|
+
generateNotFoundMarkdown,
|
|
11
|
+
pagePath,
|
|
12
|
+
writeAgentSiteArtifacts,
|
|
13
|
+
} from "./generate-crawl-docs.mjs";
|
|
14
|
+
|
|
15
|
+
function stripTags(html) {
|
|
16
|
+
return html
|
|
17
|
+
.replace(/<script[\s\S]*?<\/script>/gi, " ")
|
|
18
|
+
.replace(/<style[\s\S]*?<\/style>/gi, " ")
|
|
19
|
+
.replace(/<[^>]+>/g, " ")
|
|
20
|
+
.replace(/\s+/g, " ")
|
|
21
|
+
.trim();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
test("pagePath builds pretty public pathnames", () => {
|
|
25
|
+
assert.equal(
|
|
26
|
+
pagePath("docs/getting-started/start.md"),
|
|
27
|
+
"/docs/getting-started/start",
|
|
28
|
+
);
|
|
29
|
+
assert.equal(
|
|
30
|
+
pagePath("core/components/ui/button/button.md"),
|
|
31
|
+
"/core/components/ui/button",
|
|
32
|
+
);
|
|
33
|
+
assert.equal(
|
|
34
|
+
pagePath("core/components/functional/sdui/sdui-extension-points.md"),
|
|
35
|
+
"/core/components/functional/sdui/sdui-extension-points",
|
|
36
|
+
);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
test("homepage Markdown meets Accept negotiation body requirements", () => {
|
|
40
|
+
const md = generateHomepageMarkdown();
|
|
41
|
+
assert.match(md, /^# Concorde by Supersoniks/m);
|
|
42
|
+
assert.match(md, /@supersoniks\/concorde/);
|
|
43
|
+
assert.match(md, /llms\.txt/);
|
|
44
|
+
assert.match(md, /Accept: text\/markdown/);
|
|
45
|
+
assert.match(md, /docs\/getting-started\/start/);
|
|
46
|
+
assert.doesNotMatch(md, /\/crawl\//);
|
|
47
|
+
assert.doesNotMatch(md, /\/docs\/_getting-started\//);
|
|
48
|
+
assert.ok(md.length >= 500, `expected ≥500 chars, got ${md.length}`);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
test("404 Markdown explains the error and links agent entry points", () => {
|
|
52
|
+
const md = generateNotFoundMarkdown();
|
|
53
|
+
assert.ok(md.length >= 20);
|
|
54
|
+
assert.match(md, /not found/i);
|
|
55
|
+
assert.match(md, /llms\.txt|sitemap\.xml|docs\/index/);
|
|
56
|
+
assert.doesNotMatch(md, /\/crawl\//);
|
|
57
|
+
assert.match(md, /https:\/\/concorde\.supersoniks\.org/);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
test("404 HTML keeps a human-readable fallback", () => {
|
|
61
|
+
const html = generateNotFoundHtml();
|
|
62
|
+
assert.match(html, /<h1>Page not found<\/h1>/);
|
|
63
|
+
assert.match(html, /llms\.txt/);
|
|
64
|
+
assert.doesNotMatch(html, /\/crawl\//);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
test("htaccess maps components and negotiates Markdown/HTML", () => {
|
|
68
|
+
const conf = generateHtaccess();
|
|
69
|
+
assert.match(conf, /RewriteEngine On/);
|
|
70
|
+
assert.match(conf, /text\/markdown/);
|
|
71
|
+
assert.match(conf, /index\.md/);
|
|
72
|
+
assert.match(conf, /ErrorDocument 404 \/404\.md/);
|
|
73
|
+
assert.match(conf, /\$1\/\$2\/\$2\.md/);
|
|
74
|
+
assert.match(conf, /Googlebot/);
|
|
75
|
+
assert.match(conf, /index\.html \[END\]/);
|
|
76
|
+
assert.match(conf, /DirectorySlash Off/);
|
|
77
|
+
assert.doesNotMatch(conf, /docs\/_/);
|
|
78
|
+
assert.doesNotMatch(conf, /THE_REQUEST/);
|
|
79
|
+
assert.doesNotMatch(conf, /\^crawl\//);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
test("writeAgentSiteArtifacts emits negotiation files", () => {
|
|
83
|
+
const dir = fs.mkdtempSync(path.join(os.tmpdir(), "concorde-agent-"));
|
|
84
|
+
try {
|
|
85
|
+
writeAgentSiteArtifacts(dir);
|
|
86
|
+
for (const name of ["index.md", "404.md", "404.html", ".htaccess"]) {
|
|
87
|
+
const filePath = path.join(dir, name);
|
|
88
|
+
assert.ok(fs.existsSync(filePath), `missing ${name}`);
|
|
89
|
+
assert.ok(fs.statSync(filePath).size > 20, `${name} too small`);
|
|
90
|
+
}
|
|
91
|
+
} finally {
|
|
92
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
test("source index.html ships ≥500 chars of meaningful agent content with H1", () => {
|
|
97
|
+
const indexPath = path.resolve("index.html");
|
|
98
|
+
const html = fs.readFileSync(indexPath, "utf8");
|
|
99
|
+
assert.match(html, /id="docs-agent-content"/);
|
|
100
|
+
assert.match(html, /<h1>Concorde by Supersoniks<\/h1>/);
|
|
101
|
+
assert.match(html, /href="\/docs\/getting-started\/start"/);
|
|
102
|
+
assert.doesNotMatch(html, /\/docs\/_getting-started\//);
|
|
103
|
+
assert.doesNotMatch(html, /\/crawl\//);
|
|
104
|
+
|
|
105
|
+
const section = html.match(
|
|
106
|
+
/<section id="docs-agent-content"[^>]*>([\s\S]*?)<\/section>/,
|
|
107
|
+
);
|
|
108
|
+
assert.ok(section, "docs-agent-content section missing");
|
|
109
|
+
const text = stripTags(section[1]);
|
|
110
|
+
assert.ok(
|
|
111
|
+
text.length >= 500,
|
|
112
|
+
`agent section text expected ≥500 chars, got ${text.length}`,
|
|
113
|
+
);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
test("public robots.txt allows pathnames and drops /crawl/", () => {
|
|
117
|
+
const robots = fs.readFileSync(path.resolve("public/robots.txt"), "utf8");
|
|
118
|
+
assert.match(robots, /Allow: \//);
|
|
119
|
+
assert.match(robots, /Allow: \/docs\//);
|
|
120
|
+
assert.match(robots, /Allow: \/core\//);
|
|
121
|
+
assert.match(robots, /Allow: \/llms\.txt/);
|
|
122
|
+
assert.doesNotMatch(robots, /Allow: \/crawl\//);
|
|
123
|
+
assert.doesNotMatch(robots, /Googlebot[\s\S]*Disallow: \//);
|
|
124
|
+
});
|
|
@@ -4,54 +4,56 @@ import { generateCrawlDocs } from "./generate-crawl-docs.mjs";
|
|
|
4
4
|
|
|
5
5
|
const src = path.resolve("src");
|
|
6
6
|
const docs = path.resolve("docs");
|
|
7
|
-
|
|
8
|
-
* lister les fichiers d'un répertoire de manière récursive
|
|
9
|
-
*/
|
|
7
|
+
|
|
10
8
|
function listFiles(dir) {
|
|
11
9
|
let files = [];
|
|
12
10
|
let list = fs.readdirSync(dir);
|
|
13
11
|
list.forEach((file) => {
|
|
14
|
-
const
|
|
15
|
-
let stat = fs.statSync(
|
|
12
|
+
const filePath = dir + "/" + file;
|
|
13
|
+
let stat = fs.statSync(filePath);
|
|
16
14
|
if (stat && stat.isDirectory()) {
|
|
17
|
-
files = files.concat(listFiles(
|
|
15
|
+
files = files.concat(listFiles(filePath));
|
|
18
16
|
} else {
|
|
19
|
-
files.push(
|
|
17
|
+
files.push(filePath);
|
|
20
18
|
}
|
|
21
19
|
});
|
|
22
20
|
return files;
|
|
23
21
|
}
|
|
24
22
|
|
|
23
|
+
function ensureCopy(absSrc, absDest) {
|
|
24
|
+
fs.mkdirSync(path.dirname(absDest), { recursive: true });
|
|
25
|
+
fs.copyFileSync(absSrc, absDest);
|
|
26
|
+
}
|
|
27
|
+
|
|
25
28
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
29
|
+
* Publish markdown at the public pathname (`/docs/…/page.md`, `/core/…/page.md`)
|
|
30
|
+
* and keep a `/src/…` copy for non-md assets (and legacy MD until 301).
|
|
28
31
|
*/
|
|
29
32
|
function copyDocs() {
|
|
30
|
-
|
|
33
|
+
const files = listFiles(src);
|
|
31
34
|
for (const file of files) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
35
|
+
const isMd = /\.mdx?$/i.test(file);
|
|
36
|
+
const isJson = file.endsWith(".json");
|
|
37
|
+
if (!isMd && !isJson) continue;
|
|
38
|
+
|
|
39
|
+
const idx = file.indexOf("src/");
|
|
40
|
+
if (idx === -1) continue;
|
|
41
|
+
const underSrc = file.substring(idx); // src/docs/…/x.md
|
|
42
|
+
const withoutSrc = underSrc.replace(/^src\//, ""); // docs/…/x.md
|
|
43
|
+
|
|
44
|
+
// Always keep under docs/src/… (json + legacy md paths)
|
|
45
|
+
ensureCopy(file, path.join(docs, underSrc));
|
|
46
|
+
|
|
47
|
+
// Public MD URLs: /docs/… and /core/… (+ .md)
|
|
48
|
+
if (isMd && /^(docs|core)\//.test(withoutSrc)) {
|
|
49
|
+
ensureCopy(file, path.join(docs, withoutSrc));
|
|
45
50
|
}
|
|
46
51
|
}
|
|
47
52
|
}
|
|
53
|
+
|
|
48
54
|
copyDocs();
|
|
49
55
|
generateCrawlDocs();
|
|
50
56
|
|
|
51
|
-
/**
|
|
52
|
-
* Par rapport au projet, regarder si ../concorde_doc existe et si oui, remplacer le contenu de /concorde_doc par celui de contenu dans docs/ en dehors des fichiers spécifiques à git .git .gitignore .gitattributes)
|
|
53
|
-
*/
|
|
54
|
-
|
|
55
57
|
function copyToConcordeDoc() {
|
|
56
58
|
let concordeDoc = path.resolve("../concorde_doc");
|
|
57
59
|
|
|
@@ -60,15 +62,17 @@ function copyToConcordeDoc() {
|
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
try {
|
|
63
|
-
/* first remove all files/foilders in concorde_doc except .git folder and .gitignore file */
|
|
64
65
|
let files = listFiles(concordeDoc);
|
|
65
66
|
for (const file of files) {
|
|
66
67
|
if (file.indexOf(".git") == -1) {
|
|
67
68
|
fs.unlinkSync(file);
|
|
68
69
|
}
|
|
69
70
|
}
|
|
71
|
+
const legacyCrawl = path.join(concordeDoc, "crawl");
|
|
72
|
+
if (fs.existsSync(legacyCrawl)) {
|
|
73
|
+
fs.rmSync(legacyCrawl, { recursive: true, force: true });
|
|
74
|
+
}
|
|
70
75
|
|
|
71
|
-
/*then copy the new files*/
|
|
72
76
|
files = listFiles(docs);
|
|
73
77
|
for (const file of files) {
|
|
74
78
|
let idx = file.indexOf("docs/") + 5;
|
|
@@ -95,29 +99,9 @@ function copyToConcordeDoc() {
|
|
|
95
99
|
console.warn(
|
|
96
100
|
"copyToConcordeDoc: skipped (",
|
|
97
101
|
err.code || err.message,
|
|
98
|
-
") — docs/
|
|
102
|
+
") — docs/ pathnames (HTML + MD + hubs) were still generated.",
|
|
99
103
|
);
|
|
100
104
|
}
|
|
101
105
|
}
|
|
102
106
|
|
|
103
107
|
copyToConcordeDoc();
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* dans ../concorde_doc, faire un git add, commit et push
|
|
107
|
-
*/
|
|
108
|
-
/*
|
|
109
|
-
function gitConcordeDoc() {
|
|
110
|
-
let concordeDoc = path.resolve("../concorde_doc");
|
|
111
|
-
if (fs.existsSync(concordeDoc)) {
|
|
112
|
-
exec("cd " + concordeDoc + " && git add . && git commit -m 'update doc' && git push", (error, stdout, stderr) => {
|
|
113
|
-
if (error) {
|
|
114
|
-
console.error(`exec error: ${error}`);
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
console.log(`stdout: ${stdout}`);
|
|
118
|
-
console.error(`stderr: ${stderr}`);
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
gitConcordeDoc(); */
|
package/scripts/post-build.mjs
CHANGED
|
File without changes
|
|
@@ -1,290 +1,150 @@
|
|
|
1
1
|
# Date
|
|
2
2
|
|
|
3
|
-
|
|
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
4
|
|
|
5
|
-
|
|
5
|
+
## Basic example
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
<template>
|
|
9
|
-
<sonic-date></sonic-date>
|
|
10
|
-
</template>
|
|
11
|
-
</sonic-code>
|
|
12
|
-
|
|
13
|
-
## Now
|
|
14
|
-
|
|
15
|
-
Displays the **current date**.
|
|
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.
|
|
16
8
|
|
|
17
9
|
<sonic-code>
|
|
18
10
|
<template>
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
## Date
|
|
25
|
-
|
|
26
|
-
Displays a date from a **timestamp**.
|
|
27
|
-
|
|
28
|
-
<sonic-code>
|
|
29
|
-
<template>
|
|
30
|
-
<sonic-date date= "1640265629"></sonic-date>
|
|
31
|
-
</template>
|
|
32
|
-
</sonic-code>
|
|
33
|
-
|
|
34
|
-
## Date_string
|
|
35
|
-
|
|
36
|
-
Displays a date from a **string**.
|
|
37
|
-
|
|
38
|
-
<sonic-code>
|
|
39
|
-
<template>
|
|
40
|
-
<sonic-date date_string="July 20, 69 20:17:40 GMT+00:00"></sonic-date>
|
|
41
|
-
</template>
|
|
42
|
-
</sonic-code>
|
|
43
|
-
|
|
44
|
-
## Start_date / end_date
|
|
45
|
-
|
|
46
|
-
Displays a period of time **from start_date to end_date**.
|
|
47
|
-
When by itself **start_date** will act as **date**
|
|
48
|
-
if a **start_date is not specified** it will be set by the **current date**.
|
|
49
|
-
if the **end_date is anterior** to start date date it will be **used as the start_date**.
|
|
50
|
-
|
|
51
|
-
<sonic-code>
|
|
52
|
-
<template>
|
|
53
|
-
<!-- from start_date to end_date -->
|
|
54
|
-
<sonic-date start_date="1640265629" end_date= "1640365629"></sonic-date>
|
|
55
|
-
<br>
|
|
56
|
-
<!-- start_date is not specified -->
|
|
57
|
-
<sonic-date end_date= "2640365629"></sonic-date>
|
|
58
|
-
<br>
|
|
59
|
-
<!-- end_date is anterior -->
|
|
60
|
-
<sonic-date end_date= "640365629"></sonic-date>
|
|
61
|
-
</template>
|
|
62
|
-
</sonic-code>
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
## Start_date_string / end_date_string
|
|
66
|
-
|
|
67
|
-
<sonic-code>
|
|
68
|
-
<template>
|
|
69
|
-
<!-- from start_date to end_date -->
|
|
70
|
-
<sonic-date date_string="July 20, 90 20:17:40 GMT+00:00" end_date_string= "June 20, 94 20:17:40 GMT+00:00"></sonic-date>
|
|
71
|
-
<br>
|
|
72
|
-
<!-- start_date is not specified -->
|
|
73
|
-
<sonic-date end_date_string= "May 20, 34 20:17:40 GMT+00:00"></sonic-date>
|
|
74
|
-
<br>
|
|
75
|
-
<!-- end_date is anterior -->
|
|
76
|
-
<sonic-date end_date_string= "April 20, 06 20:17:40 GMT+00:00"></sonic-date>
|
|
77
|
-
</template>
|
|
78
|
-
</sonic-code>
|
|
79
|
-
|
|
80
|
-
## Wording_billet_periode_validite
|
|
81
|
-
|
|
82
|
-
<sonic-code>
|
|
83
|
-
<template>
|
|
84
|
-
<sonic-date wording_billet_periode_validite= "À partir du %s jusqu'au %s" start_date="1640265629" end_date= "1640365629"></sonic-date>
|
|
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>
|
|
85
16
|
</template>
|
|
86
17
|
</sonic-code>
|
|
87
18
|
|
|
19
|
+
## Date range
|
|
88
20
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
<sonic-code>
|
|
92
|
-
<template>
|
|
93
|
-
<b>narrow : </b>
|
|
94
|
-
<sonic-date weekday="narrow" now></sonic-date>
|
|
95
|
-
<br>
|
|
96
|
-
<b>short (default) : </b>
|
|
97
|
-
<sonic-date weekday="short" now></sonic-date>
|
|
98
|
-
<br>
|
|
99
|
-
<b>long : </b>
|
|
100
|
-
<sonic-date weekday="long" now></sonic-date>
|
|
101
|
-
<br>
|
|
102
|
-
<b>hidden : </b>
|
|
103
|
-
<sonic-date weekday="hidden" now></sonic-date>
|
|
104
|
-
</template>
|
|
105
|
-
</sonic-code>
|
|
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.
|
|
106
22
|
|
|
107
|
-
|
|
23
|
+
Without a start, the range starts now. If the end is before the start, the two are swapped.
|
|
108
24
|
|
|
109
25
|
<sonic-code>
|
|
110
26
|
<template>
|
|
111
|
-
<
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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>
|
|
116
32
|
</template>
|
|
117
33
|
</sonic-code>
|
|
118
34
|
|
|
119
|
-
##
|
|
35
|
+
## Range wording
|
|
120
36
|
|
|
121
|
-
|
|
122
|
-
<template>
|
|
123
|
-
<b>numeric : </b>
|
|
124
|
-
<sonic-date month="numeric" now></sonic-date>
|
|
125
|
-
<br>
|
|
126
|
-
<b>2-digit : </b>
|
|
127
|
-
<sonic-date month="2-digit" now></sonic-date>
|
|
128
|
-
<br>
|
|
129
|
-
<b>narrow : </b>
|
|
130
|
-
<sonic-date month="narrow" now></sonic-date>
|
|
131
|
-
<br>
|
|
132
|
-
<b>short (default) : </b>
|
|
133
|
-
<sonic-date month="short" now></sonic-date>
|
|
134
|
-
<br>
|
|
135
|
-
<b>long : </b>
|
|
136
|
-
<sonic-date month="long" now></sonic-date>
|
|
137
|
-
</template>
|
|
138
|
-
</sonic-code>
|
|
139
|
-
|
|
140
|
-
## Year
|
|
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**.
|
|
141
38
|
|
|
142
39
|
<sonic-code>
|
|
143
40
|
<template>
|
|
144
|
-
<
|
|
145
|
-
<sonic-date year="numeric" now></sonic-date>
|
|
146
|
-
<br>
|
|
147
|
-
<b>2-digit : </b>
|
|
148
|
-
<sonic-date year="2-digit" now></sonic-date>
|
|
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>
|
|
149
42
|
</template>
|
|
150
43
|
</sonic-code>
|
|
151
44
|
|
|
152
|
-
##
|
|
153
|
-
|
|
154
|
-
<sonic-code>
|
|
155
|
-
<template>
|
|
156
|
-
<b>numeric : </b>
|
|
157
|
-
<sonic-date hour="numeric" date_string= "June 20, 04 02:06:02 GMT+00:00"></sonic-date>
|
|
158
|
-
<br>
|
|
159
|
-
<b>2-digit (default) : </b>
|
|
160
|
-
<sonic-date hour="2-digit" date_string= "June 20, 04 02:06:02 GMT+00:00"></sonic-date>
|
|
161
|
-
<br>
|
|
162
|
-
<b>hidden : </b>
|
|
163
|
-
<sonic-date hour="hidden" date_string= "June 20, 04 02:06:02 GMT+00:00"></sonic-date>
|
|
164
|
-
</template>
|
|
165
|
-
</sonic-code>
|
|
45
|
+
## Format options
|
|
166
46
|
|
|
167
|
-
|
|
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.
|
|
168
48
|
|
|
169
49
|
<sonic-code>
|
|
170
50
|
<template>
|
|
171
|
-
<
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
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>
|
|
179
67
|
</template>
|
|
180
68
|
</sonic-code>
|
|
181
69
|
|
|
182
|
-
## Language
|
|
70
|
+
## Language
|
|
183
71
|
|
|
184
|
-
|
|
72
|
+
With no `language`, the component follows `<html lang>` and updates when it changes. Pass a BCP 47 tag to force one.
|
|
185
73
|
|
|
186
74
|
<sonic-code>
|
|
187
75
|
<template>
|
|
188
|
-
<
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
<br>
|
|
194
|
-
<b>zh : </b>
|
|
195
|
-
<sonic-date language="zh" now></sonic-date>
|
|
196
|
-
<br>
|
|
197
|
-
<b>ja : </b>
|
|
198
|
-
<sonic-date language="ja" now></sonic-date>
|
|
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>
|
|
199
81
|
</template>
|
|
200
82
|
</sonic-code>
|
|
201
83
|
|
|
202
|
-
##
|
|
203
|
-
|
|
204
|
-
For the list of supported timeZones, run <b class="text-info">Intl.supportedValuesOf('timeZone')</b> in the console
|
|
205
|
-
|
|
206
|
-
<sonic-code>
|
|
207
|
-
<template>
|
|
208
|
-
<b>Europe/London : </b>
|
|
209
|
-
<sonic-date time_zone="Europe/London" now></sonic-date>
|
|
210
|
-
<br>
|
|
211
|
-
<b>Europe/Paris : </b>
|
|
212
|
-
<sonic-date time_zone="Europe/Paris" now></sonic-date>
|
|
213
|
-
<br>
|
|
214
|
-
<b>America/Tijuana : </b>
|
|
215
|
-
<sonic-date time_zone="America/Tijuana" now></sonic-date>
|
|
216
|
-
</template>
|
|
217
|
-
</sonic-code>
|
|
84
|
+
## Time zone
|
|
218
85
|
|
|
219
|
-
|
|
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.
|
|
220
87
|
|
|
221
88
|
<sonic-code>
|
|
222
89
|
<template>
|
|
223
|
-
<
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
<sonic-date era="short" now></sonic-date>
|
|
228
|
-
<br>
|
|
229
|
-
<b>long : </b>
|
|
230
|
-
<sonic-date era="long" now></sonic-date>
|
|
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>
|
|
231
94
|
</template>
|
|
232
95
|
</sonic-code>
|
|
233
96
|
|
|
234
|
-
##
|
|
235
|
-
|
|
236
|
-
<sonic-alert status="error" background>Deprecated</sonic-alert>
|
|
237
|
-
|
|
238
|
-
<sonic-code>
|
|
239
|
-
<template>
|
|
240
|
-
<b>True statement : </b>
|
|
241
|
-
<sonic-date data-bind ::render-if="|10>2" now></sonic-date>
|
|
242
|
-
<br>
|
|
243
|
-
<b>False statement : </b>
|
|
244
|
-
<sonic-date data-bind ::render-if="|10<2" now></sonic-date>
|
|
245
|
-
</template>
|
|
246
|
-
</sonic-code>
|
|
97
|
+
## Custom parts
|
|
247
98
|
|
|
248
|
-
|
|
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.
|
|
249
100
|
|
|
250
101
|
<sonic-code>
|
|
251
102
|
<template>
|
|
252
|
-
<div class="relative max-w-
|
|
253
|
-
<div class="absolute top-0 h-1/2 w-full bg-gradient-to-b from-[rgba(0,0,10,.2)] z-10 "></div>
|
|
103
|
+
<div class="relative max-w-sm rounded-lg overflow-hidden">
|
|
254
104
|
<sonic-date
|
|
255
105
|
designMode
|
|
256
106
|
noShadowDom
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
language=
|
|
260
|
-
wording_billet_periode_validite=
|
|
261
|
-
|
|
262
|
-
month= "short"
|
|
263
|
-
weekday= "short"
|
|
264
|
-
hour= "2-digit"
|
|
265
|
-
minute= "2-digit"
|
|
266
|
-
class="py-4 drop-shadow-lg text-contrast-content p-4 inline-block text-center absolute left-0 z-20 text-sm"
|
|
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"
|
|
267
112
|
>
|
|
268
|
-
<template data-value="weekday">
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
<template data-value="
|
|
272
|
-
|
|
273
|
-
</template>
|
|
274
|
-
<template data-value="month">
|
|
275
|
-
<span class="text-xl block uppercase leading-tight font-bold"></span>
|
|
276
|
-
</template>
|
|
277
|
-
<template data-value="year">
|
|
278
|
-
<span class="text-lg mb-1 font-bold block uppercase leading-tight "></span>
|
|
279
|
-
</template>
|
|
280
|
-
<template data-value="to">
|
|
281
|
-
<span class="font-medium block my-1 text-3xl leading-none">↓</span>
|
|
282
|
-
</template>
|
|
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>
|
|
283
118
|
</sonic-date>
|
|
284
|
-
<sonic-image
|
|
285
|
-
ratio="1/1" src="https://picsum.photos/id/237/700/700">
|
|
286
|
-
</sonic-image>
|
|
119
|
+
<sonic-image src="img/concorde/plane_03.jpg" alt="Concorde specifications board" ratio="1/1" cover></sonic-image>
|
|
287
120
|
</div>
|
|
288
121
|
</template>
|
|
289
122
|
</sonic-code>
|
|
290
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.
|