@supersoniks/concorde 5.1.1 → 5.1.3
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/PLAN-DOCS-AGENTS.md +80 -0
- package/README.md +4 -4
- 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 +21 -21
- package/concorde-core.es.js +977 -980
- package/custom-elements-manifest.public.config.mjs +8 -0
- package/{.tmp-cem/custom-elements.json → custom-elements.json} +11758 -8904
- package/dist/concorde-core.bundle.js +21 -21
- package/dist/concorde-core.es.js +977 -980
- package/dist/docs-mock-api-sw.js +58 -223
- package/dist/docs-mock-api-sw.js.map +4 -4
- package/dist/img/concorde/plane_01.jpg +0 -0
- package/dist/img/concorde/plane_02.jpg +0 -0
- package/dist/img/concorde/plane_03.jpg +0 -0
- package/dist/img/concorde/plane_04.jpg +0 -0
- package/dist/img/concorde/plane_05.jpg +0 -0
- package/dist/img/concorde/plane_06.jpg +0 -0
- package/dist/img/concorde/plane_07.jpg +0 -0
- package/dist/img/concorde/plane_08.jpg +0 -0
- package/dist/img/concorde/plane_09.jpg +0 -0
- package/dist/img/concorde/plane_10.jpg +0 -0
- package/dist/img/concorde/plane_11.jpg +0 -0
- package/dist/img/concorde/plane_12.jpg +0 -0
- package/dist/img/concorde/plane_13.jpg +0 -0
- package/dist/img/og-concorde.jpg +0 -0
- package/dist/robots.txt +11 -10
- package/docs/.htaccess +82 -0
- package/docs/404.html +15 -0
- package/docs/404.md +5 -0
- package/docs/about.html +111 -0
- package/docs/about.md +22 -0
- package/docs/assets/{index-Bb-_LRyY.js → index-6sS76xWj.js} +2625 -3158
- package/docs/assets/index-DkdPbH0F.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 +200 -0
- package/docs/core/components/functional/list/list.md +125 -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/core/components/functional/subscriber/subscriber.html +68 -0
- 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/core/components/ui/menu/menu.html +395 -0
- 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/custom-elements.json +16559 -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 +87 -0
- package/docs/docs/decorators/bind.md +76 -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/docs/getting-started/ai-agents.html +130 -0
- package/docs/docs/getting-started/ai-agents.md +50 -0
- package/docs/docs/getting-started/components.html +27 -0
- package/docs/docs/getting-started/create-a-component.html +108 -0
- package/{src/docs/_getting-started → docs/docs/getting-started}/create-a-component.md +3 -6
- package/docs/docs/getting-started/dataFlow.html +174 -0
- package/{src/docs/_core-concept → docs/docs/getting-started}/dataFlow.md +18 -19
- package/docs/docs/getting-started/installation.html +69 -0
- package/docs/docs/getting-started/installation.md +36 -0
- package/docs/docs/getting-started/my-first-component.html +180 -0
- package/{src/docs/_getting-started → docs/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/docs/docs/index.html +99 -0
- package/docs/docs/misc/api-configuration.html +149 -0
- package/{src/docs/_misc → docs/docs/misc}/api-configuration.md +10 -12
- package/docs/docs/misc/dataProviderKey.html +136 -0
- package/{src/docs/_misc → docs/docs/misc}/dataProviderKey.md +4 -4
- package/docs/docs/misc/docs-mock-api.html +155 -0
- package/{src/docs/_misc → docs/docs/misc}/docs-mock-api.md +12 -13
- package/docs/docs/misc/dynamic-path.html +181 -0
- package/{src/docs/_misc → docs/docs/misc}/dynamic-path.md +8 -8
- package/docs/docs/misc/endpoint.html +51 -0
- package/{src/docs/_misc → docs/docs/misc}/endpoint.md +8 -8
- package/docs/docs/misc/html-integration.html +45 -0
- package/{src/docs/_misc → docs/docs/misc}/html-integration.md +4 -5
- package/docs/docs-mock-api-sw.js +58 -223
- package/docs/docs-mock-api-sw.js.map +4 -4
- package/docs/hubs/decorators.html +438 -0
- package/docs/hubs/form-components.html +404 -0
- package/docs/hubs/remote-data.html +367 -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/img/og-concorde.jpg +0 -0
- package/docs/index.html +184 -68
- package/docs/index.md +22 -0
- package/docs/llms-full.txt +5779 -0
- package/docs/llms.txt +108 -0
- package/docs/privacy.html +122 -0
- package/docs/privacy.md +32 -0
- package/docs/robots.txt +11 -10
- package/docs/sitemap.xml +243 -0
- package/docs/src/core/components/functional/date/date.md +150 -0
- package/docs/src/core/components/functional/fetch/fetch.md +108 -0
- package/docs/src/core/components/functional/if/if.md +34 -0
- package/docs/src/core/components/functional/jsonata/jsonata.md +61 -0
- package/docs/src/core/components/functional/list/list.md +125 -0
- package/docs/src/core/components/functional/mix/mix.md +46 -0
- package/docs/src/core/components/functional/queue/queue.md +51 -0
- package/docs/src/core/components/functional/router/router.md +93 -0
- 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/default-library.json +108 -0
- package/docs/src/core/components/functional/sdui/example.json +32 -0
- package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
- package/docs/src/core/components/functional/sdui/sdui.md +307 -0
- package/docs/src/core/components/functional/states/states.md +112 -0
- package/docs/src/core/components/functional/submit/submit.md +106 -0
- package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
- package/docs/src/core/components/functional/translation/translation.md +38 -0
- package/docs/src/core/components/functional/value/value.md +47 -0
- package/docs/src/core/components/ui/alert/alert.md +186 -0
- package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
- package/docs/src/core/components/ui/badge/badge.md +181 -0
- package/docs/src/core/components/ui/button/button.md +216 -0
- package/docs/src/core/components/ui/captcha/captcha.md +56 -0
- package/docs/src/core/components/ui/card/card.md +215 -0
- package/docs/src/core/components/ui/divider/divider.md +126 -0
- package/docs/src/core/components/ui/form/checkbox/checkbox.md +125 -0
- package/docs/src/core/components/ui/form/fieldset/fieldset.md +161 -0
- package/docs/src/core/components/ui/form/form-actions/form-actions.md +98 -0
- package/docs/src/core/components/ui/form/form-layout/form-layout.md +109 -0
- package/docs/src/core/components/ui/form/input/input.md +142 -0
- package/docs/src/core/components/ui/form/radio/radio.md +78 -0
- package/docs/src/core/components/ui/form/select/select.md +86 -0
- package/docs/src/core/components/ui/form/switch/switch.md +80 -0
- package/docs/src/core/components/ui/form/textarea/textarea.md +82 -0
- package/docs/src/core/components/ui/group/group.md +77 -0
- package/docs/src/core/components/ui/icon/icon.md +214 -0
- package/docs/src/core/components/ui/icon/icons.json +1 -0
- package/docs/src/core/components/ui/image/image.md +167 -0
- package/docs/src/core/components/ui/link/link.md +81 -0
- package/docs/src/core/components/ui/loader/loader.md +87 -0
- package/docs/src/core/components/ui/menu/menu.md +370 -0
- package/docs/src/core/components/ui/modal/modal.md +211 -0
- package/docs/src/core/components/ui/pop/pop.md +216 -0
- package/docs/src/core/components/ui/progress/progress.md +109 -0
- package/docs/src/core/components/ui/table/table.md +267 -0
- package/docs/src/core/components/ui/theme/theme.md +97 -0
- package/docs/src/core/components/ui/toast/toast.md +147 -0
- package/docs/src/core/components/ui/tooltip/tooltip.md +89 -0
- 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 +76 -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/ai-agents.md +50 -0
- package/docs/src/docs/getting-started/components.md +5 -0
- package/docs/src/docs/getting-started/create-a-component.md +136 -0
- package/docs/src/docs/getting-started/dataFlow.md +87 -0
- package/docs/src/docs/getting-started/installation.md +36 -0
- package/docs/src/docs/getting-started/my-first-component.md +227 -0
- package/docs/src/docs/getting-started/start.md +35 -0
- package/docs/src/docs/getting-started/theming.md +253 -0
- package/docs/src/docs/misc/api-configuration.md +79 -0
- package/docs/src/docs/misc/dataProviderKey.md +168 -0
- package/docs/src/docs/misc/docs-mock-api.md +62 -0
- package/docs/src/docs/misc/dynamic-path.md +71 -0
- package/docs/src/docs/misc/endpoint.md +45 -0
- package/docs/src/docs/misc/html-integration.md +14 -0
- package/docs/src/docs/search/docs-search.json +10332 -0
- package/docs/src/tag-list.json +1 -0
- package/docs/src/tsconfig-model.json +23 -0
- package/docs/src/tsconfig.json +1359 -0
- package/index.html +157 -5
- package/package.json +8 -4
- package/public/docs-mock-api-sw.js +58 -223
- package/public/docs-mock-api-sw.js.map +4 -4
- 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/img/og-concorde.jpg +0 -0
- package/public/robots.txt +11 -10
- package/scripts/ai-init.mjs +104 -379
- package/scripts/ai-init.test.mjs +81 -239
- package/scripts/docs-markdown-vite-plugin.ts +43 -0
- package/scripts/docs-public-url.mjs +56 -0
- package/scripts/docs.htaccess +82 -0
- package/scripts/generate-cem.mjs +244 -0
- package/scripts/generate-cem.test.mjs +122 -0
- package/scripts/generate-crawl-docs.mjs +233 -118
- package/scripts/generate-crawl-docs.test.mjs +124 -0
- package/scripts/generate-sdui-catalog.mjs +11 -10
- package/scripts/post-build-docs.js +37 -50
- 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 +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/jsonata/jsonata.md +42 -37
- package/src/core/components/functional/list/list.md +103 -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/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/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/translation/translation.md +38 -0
- package/src/core/components/functional/value/value.md +34 -22
- 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/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/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/decorators/subscriber/bind.ts +9 -14
- package/src/core/utils/LocationHandler.spec.ts +80 -0
- package/src/core/utils/LocationHandler.ts +5 -9
- package/src/docs/components/docs-demo-sources.ts +55 -140
- package/src/docs/components/docs-lit-demo.ts +1 -3
- 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 +76 -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 +56 -0
- package/src/docs/docs-location.ts +133 -32
- package/src/docs/docs.ts +1 -2
- package/src/docs/example/decorators-demo-bind-demos.ts +83 -135
- 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-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 +21 -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/getting-started/ai-agents.md +50 -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 +11 -6
- package/src/docs/home/catalog.ts +1 -1
- package/src/docs/home/home.ts +20 -11
- package/src/docs/layout.ts +12 -13
- 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/navigation.ts +82 -103
- package/src/docs/navigation/toc.ts +7 -4
- package/src/docs/search/docs-search.json +2804 -5024
- package/src/docs/search/markdown-renderer.ts +31 -8
- package/src/docs/search/page.ts +9 -6
- package/src/docs/search/search.ts +154 -122
- package/src/docs/tailwind/css/docs/content.css +4 -5
- package/src/tsconfig.json +11 -5
- package/src/tsconfig.tsbuildinfo +1 -1
- package/vite.config.mts +11 -2
- package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
- 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/assets/index-CD4WyL6o.css +0 -1
- package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
- 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/ai-agents.md +0 -76
- 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/_getting-started → docs/docs/getting-started}/components.md +0 -0
- /package/{src/docs/_getting-started → docs/docs/getting-started}/theming.md +0 -0
|
@@ -35,24 +35,21 @@ export class DemoAncestorAttribute extends LitElement {
|
|
|
35
35
|
@ancestorAttribute("dataProvider")
|
|
36
36
|
dataProvider: string | null = null;
|
|
37
37
|
|
|
38
|
-
@ancestorAttribute("
|
|
39
|
-
|
|
38
|
+
@ancestorAttribute("gate")
|
|
39
|
+
gate: string | null = null;
|
|
40
40
|
|
|
41
41
|
render() {
|
|
42
42
|
return html`
|
|
43
43
|
<div
|
|
44
44
|
class="space-y-2 rounded border border-neutral-200 dark:border-neutral-700 p-3"
|
|
45
45
|
>
|
|
46
|
-
<p class="text-sm text-neutral-600 dark:text-neutral-400">
|
|
47
|
-
<code>@ancestorAttribute</code> — lecture unique au connect (défaut)
|
|
48
|
-
</p>
|
|
49
46
|
<p>
|
|
50
47
|
dataProvider:
|
|
51
48
|
<strong>${this.dataProvider ?? "null"}</strong>
|
|
52
49
|
</p>
|
|
53
50
|
<p>
|
|
54
|
-
|
|
55
|
-
<strong>${this.
|
|
51
|
+
gate:
|
|
52
|
+
<strong>${this.gate ?? "null"}</strong>
|
|
56
53
|
</p>
|
|
57
54
|
</div>
|
|
58
55
|
`;
|
|
@@ -86,43 +83,37 @@ export class DemoAncestorAttributeDynamicSection extends LitElement {
|
|
|
86
83
|
static styles = [tailwind];
|
|
87
84
|
|
|
88
85
|
/** Direct parent of the child — closest ancestor when set. */
|
|
89
|
-
@state() parentValue: string | null = "
|
|
86
|
+
@state() parentValue: string | null = "departures";
|
|
90
87
|
/** Grandparent — used when the parent has no attribute. */
|
|
91
|
-
@state() outerValue: string | null = "
|
|
88
|
+
@state() outerValue: string | null = "fleet";
|
|
92
89
|
/** Optional wrapper inserted between parent and child (wins over parent). */
|
|
93
90
|
@state() closerActive = false;
|
|
94
91
|
|
|
95
92
|
render() {
|
|
96
93
|
return html`
|
|
97
94
|
<div class="space-y-4">
|
|
98
|
-
<p class="text-sm text-neutral-600 dark:text-neutral-400">
|
|
99
|
-
The child always displays the <strong>nearest</strong> ancestor
|
|
100
|
-
<code>dataProvider</code>. Change a value, add a closer wrapper, or
|
|
101
|
-
remove an attribute — the property follows automatically.
|
|
102
|
-
</p>
|
|
103
|
-
|
|
104
95
|
<div class="flex flex-wrap gap-2">
|
|
105
96
|
<span class="text-xs text-neutral-500 self-center w-full"
|
|
106
97
|
>Parent</span
|
|
107
98
|
>
|
|
108
99
|
<sonic-button
|
|
109
100
|
size="sm"
|
|
110
|
-
@click=${() => (this.parentValue = "
|
|
101
|
+
@click=${() => (this.parentValue = "departures")}
|
|
111
102
|
>
|
|
112
|
-
|
|
103
|
+
departures
|
|
113
104
|
</sonic-button>
|
|
114
105
|
<sonic-button
|
|
115
106
|
size="sm"
|
|
116
|
-
@click=${() => (this.parentValue = "
|
|
107
|
+
@click=${() => (this.parentValue = "arrivals")}
|
|
117
108
|
>
|
|
118
|
-
|
|
109
|
+
arrivals
|
|
119
110
|
</sonic-button>
|
|
120
111
|
<sonic-button
|
|
121
112
|
size="sm"
|
|
122
113
|
variant="outline"
|
|
123
114
|
@click=${() => (this.parentValue = null)}
|
|
124
115
|
>
|
|
125
|
-
Remove
|
|
116
|
+
Remove attribute
|
|
126
117
|
</sonic-button>
|
|
127
118
|
</div>
|
|
128
119
|
|
|
@@ -135,7 +126,7 @@ export class DemoAncestorAttributeDynamicSection extends LitElement {
|
|
|
135
126
|
?disabled=${this.closerActive}
|
|
136
127
|
@click=${() => (this.closerActive = true)}
|
|
137
128
|
>
|
|
138
|
-
Add closer
|
|
129
|
+
Add closer (flights.CN001)
|
|
139
130
|
</sonic-button>
|
|
140
131
|
<sonic-button
|
|
141
132
|
size="sm"
|
|
@@ -151,22 +142,22 @@ export class DemoAncestorAttributeDynamicSection extends LitElement {
|
|
|
151
142
|
<span class="text-xs text-neutral-500 self-center w-full">Outer</span>
|
|
152
143
|
<sonic-button
|
|
153
144
|
size="sm"
|
|
154
|
-
@click=${() => (this.outerValue = "
|
|
145
|
+
@click=${() => (this.outerValue = "fleet")}
|
|
155
146
|
>
|
|
156
|
-
|
|
147
|
+
fleet
|
|
157
148
|
</sonic-button>
|
|
158
149
|
<sonic-button
|
|
159
150
|
size="sm"
|
|
160
|
-
@click=${() => (this.outerValue = "
|
|
151
|
+
@click=${() => (this.outerValue = "crew")}
|
|
161
152
|
>
|
|
162
|
-
|
|
153
|
+
crew
|
|
163
154
|
</sonic-button>
|
|
164
155
|
<sonic-button
|
|
165
156
|
size="sm"
|
|
166
157
|
variant="outline"
|
|
167
158
|
@click=${() => (this.outerValue = null)}
|
|
168
159
|
>
|
|
169
|
-
Remove
|
|
160
|
+
Remove attribute
|
|
170
161
|
</sonic-button>
|
|
171
162
|
</div>
|
|
172
163
|
|
|
@@ -175,23 +166,23 @@ export class DemoAncestorAttributeDynamicSection extends LitElement {
|
|
|
175
166
|
dataProvider=${this.outerValue ?? nothing}
|
|
176
167
|
>
|
|
177
168
|
<p class="text-xs text-neutral-400">
|
|
178
|
-
outer ${this.outerValue ?? "
|
|
169
|
+
outer: ${this.outerValue ?? "no dataProvider"}
|
|
179
170
|
</p>
|
|
180
171
|
<div
|
|
181
172
|
class="rounded border border-dashed border-neutral-300 dark:border-neutral-600 p-3 space-y-2"
|
|
182
173
|
dataProvider=${this.parentValue ?? nothing}
|
|
183
174
|
>
|
|
184
175
|
<p class="text-xs text-neutral-400">
|
|
185
|
-
parent ${this.parentValue ?? "
|
|
176
|
+
parent: ${this.parentValue ?? "no dataProvider"}
|
|
186
177
|
</p>
|
|
187
178
|
${this.closerActive
|
|
188
179
|
? html`
|
|
189
180
|
<div
|
|
190
181
|
class="rounded border border-amber-300 dark:border-amber-700 bg-amber-50 dark:bg-amber-950/30 p-2 space-y-2"
|
|
191
|
-
dataProvider="
|
|
182
|
+
dataProvider="flights.CN001"
|
|
192
183
|
>
|
|
193
184
|
<p class="text-xs text-amber-800 dark:text-amber-200">
|
|
194
|
-
closer
|
|
185
|
+
closer: flights.CN001
|
|
195
186
|
</p>
|
|
196
187
|
<demo-ancestor-attribute-dynamic></demo-ancestor-attribute-dynamic>
|
|
197
188
|
</div>
|
|
@@ -204,50 +195,57 @@ export class DemoAncestorAttributeDynamicSection extends LitElement {
|
|
|
204
195
|
}
|
|
205
196
|
}
|
|
206
197
|
|
|
198
|
+
const PASSENGERS = [
|
|
199
|
+
"Ada Lindqvist",
|
|
200
|
+
"Captain Leo Marchand",
|
|
201
|
+
"Mira Okafor",
|
|
202
|
+
"Jonas Berg",
|
|
203
|
+
];
|
|
204
|
+
|
|
207
205
|
@customElement("demo-on-assign")
|
|
208
206
|
export class DemoOnAssign extends LitElement {
|
|
209
207
|
static styles = [tailwind];
|
|
210
208
|
|
|
211
|
-
@state()
|
|
212
|
-
@state()
|
|
213
|
-
@state() lastUpdate
|
|
209
|
+
@state() passenger: { name: string; email: string } | null = null;
|
|
210
|
+
@state() settings: { theme: string; language: string } | null = null;
|
|
211
|
+
@state() lastUpdate = "";
|
|
214
212
|
|
|
213
|
+
/** Called once both paths hold a value, then on every later assignment. */
|
|
215
214
|
@onAssign("demoUser", "demoUserSettings")
|
|
216
|
-
handleDataReady(
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
215
|
+
handleDataReady(
|
|
216
|
+
user: { name: string; email: string },
|
|
217
|
+
settings: { theme: string; language: string },
|
|
218
|
+
) {
|
|
219
|
+
this.passenger = user;
|
|
220
|
+
this.settings = settings;
|
|
220
221
|
this.lastUpdate = new Date().toLocaleTimeString();
|
|
221
|
-
this.requestUpdate();
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
render() {
|
|
225
|
-
const { name, email, theme, language } = this.userWithSettings;
|
|
226
225
|
return html`
|
|
227
|
-
<div class="
|
|
228
|
-
<
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
${this.
|
|
232
|
-
? html`<
|
|
233
|
-
|
|
234
|
-
<p>${email
|
|
235
|
-
<p
|
|
236
|
-
<p
|
|
237
|
-
|
|
226
|
+
<div class="flex flex-col gap-3">
|
|
227
|
+
<div>
|
|
228
|
+
<sonic-button @click=${this.nextPassenger}>Next passenger</sonic-button>
|
|
229
|
+
</div>
|
|
230
|
+
${this.passenger && this.settings
|
|
231
|
+
? html`<div class="rounded border border-neutral-200 dark:border-neutral-700 p-3">
|
|
232
|
+
<p><strong>${this.passenger.name}</strong></p>
|
|
233
|
+
<p>${this.passenger.email}</p>
|
|
234
|
+
<p>Theme: ${this.settings.theme} · Language: ${this.settings.language}</p>
|
|
235
|
+
<p><small>Last update: ${this.lastUpdate}</small></p>
|
|
236
|
+
</div>`
|
|
237
|
+
: html`<p>Waiting for passenger and settings…</p>`}
|
|
238
238
|
</div>
|
|
239
239
|
`;
|
|
240
240
|
}
|
|
241
241
|
|
|
242
|
-
|
|
243
|
-
const
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
email: `user-${userNumber}@example.com`,
|
|
247
|
-
});
|
|
242
|
+
nextPassenger() {
|
|
243
|
+
const name = PASSENGERS[Math.floor(Math.random() * PASSENGERS.length)];
|
|
244
|
+
const slug = name.toLowerCase().replace("captain ", "").replace(" ", ".");
|
|
245
|
+
set(demoUserKey, { name, email: `${slug}@example.com` });
|
|
248
246
|
set(demoUserSettingsKey, {
|
|
249
247
|
theme: ["light", "dark", "auto"][Math.floor(Math.random() * 3)],
|
|
250
|
-
language: ["en", "fr", "
|
|
248
|
+
language: ["en", "fr", "sv"][Math.floor(Math.random() * 3)],
|
|
251
249
|
});
|
|
252
250
|
}
|
|
253
251
|
}
|
|
@@ -300,11 +298,10 @@ export class DemoOnAssignDynamic extends LitElement {
|
|
|
300
298
|
if (!users[idx] || !settings[idx]) return;
|
|
301
299
|
|
|
302
300
|
const randomNames = [
|
|
303
|
-
{ firstName: "
|
|
304
|
-
{ firstName: "
|
|
305
|
-
{ firstName: "
|
|
306
|
-
{ firstName: "
|
|
307
|
-
{ firstName: "Eve", lastName: "Adams" },
|
|
301
|
+
{ firstName: "Ada", lastName: "Lindqvist" },
|
|
302
|
+
{ firstName: "Leo", lastName: "Marchand" },
|
|
303
|
+
{ firstName: "Mira", lastName: "Okafor" },
|
|
304
|
+
{ firstName: "Jonas", lastName: "Berg" },
|
|
308
305
|
];
|
|
309
306
|
const randomThemes = ["light", "dark", "auto"];
|
|
310
307
|
const randomLanguages = ["en", "fr", "es", "de", "it"];
|
|
@@ -330,9 +327,9 @@ export class DemoOnAssignDynamic extends LitElement {
|
|
|
330
327
|
render() {
|
|
331
328
|
return html`
|
|
332
329
|
<div class="flex flex-col gap-2">
|
|
333
|
-
<sonic-select label="
|
|
334
|
-
<option value=${demoUsersKey.path}>First
|
|
335
|
-
<option value=${demoUsersAltKey.path}>Second
|
|
330
|
+
<sonic-select label="Passenger list" @change=${this.updateDataProvider}>
|
|
331
|
+
<option value=${demoUsersKey.path}>First list</option>
|
|
332
|
+
<option value=${demoUsersAltKey.path}>Second list</option>
|
|
336
333
|
</sonic-select>
|
|
337
334
|
<sonic-input
|
|
338
335
|
type="number"
|
|
@@ -345,7 +342,7 @@ export class DemoOnAssignDynamic extends LitElement {
|
|
|
345
342
|
>
|
|
346
343
|
</sonic-input>
|
|
347
344
|
<sonic-button @click=${this.updateCurrentUserData}
|
|
348
|
-
>Update current
|
|
345
|
+
>Update current passenger</sonic-button
|
|
349
346
|
>
|
|
350
347
|
<div class="flex flex-col gap-2 border p-2">
|
|
351
348
|
<div>
|
|
@@ -370,35 +367,32 @@ export class DemoOnAssignDynamic extends LitElement {
|
|
|
370
367
|
export class DemoAutoSubscribe extends LitElement {
|
|
371
368
|
static styles = [tailwind];
|
|
372
369
|
|
|
373
|
-
@state() displayText
|
|
374
|
-
@state() computedValue: number = 0;
|
|
370
|
+
@state() displayText = "";
|
|
375
371
|
|
|
372
|
+
/** Re-runs whenever `autoValue1` or `autoValue2` is assigned. */
|
|
376
373
|
@autoSubscribe()
|
|
377
374
|
updateDisplay() {
|
|
378
|
-
const
|
|
379
|
-
const
|
|
380
|
-
|
|
381
|
-
this.computedValue = value1 + value2;
|
|
382
|
-
this.displayText = `${value1} + ${value2} = ${this.computedValue}`;
|
|
375
|
+
const passengers = get(autoValue1Key) || 0;
|
|
376
|
+
const crew = get(autoValue2Key) || 0;
|
|
377
|
+
this.displayText = `${passengers} passengers + ${crew} crew = ${passengers + crew} on board`;
|
|
383
378
|
}
|
|
384
379
|
|
|
385
380
|
render() {
|
|
386
381
|
return html`
|
|
387
|
-
<p><strong>${this.displayText}</strong></p>
|
|
388
|
-
<div>
|
|
389
|
-
<sonic-button @click=${() => this.
|
|
390
|
-
>
|
|
382
|
+
<p class="mb-2"><strong>${this.displayText}</strong></p>
|
|
383
|
+
<div class="flex flex-wrap gap-2">
|
|
384
|
+
<sonic-button @click=${() => this.randomize(autoValue1Key, 100)}
|
|
385
|
+
>Board passengers</sonic-button
|
|
386
|
+
>
|
|
387
|
+
<sonic-button @click=${() => this.randomize(autoValue2Key, 12)}
|
|
388
|
+
>Change crew</sonic-button
|
|
391
389
|
>
|
|
392
|
-
<sonic-button @click=${() => this.randomizeValue("autoValue2")}
|
|
393
|
-
Randomize Value 2
|
|
394
|
-
</sonic-button>
|
|
395
390
|
</div>
|
|
396
391
|
`;
|
|
397
392
|
}
|
|
398
393
|
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
set(key, Math.floor(Math.random() * 100));
|
|
394
|
+
randomize(key: typeof autoValue1Key, max: number) {
|
|
395
|
+
set(key, Math.floor(Math.random() * max) + 1);
|
|
402
396
|
}
|
|
403
397
|
}
|
|
404
398
|
|
|
@@ -425,10 +419,10 @@ export class DemoWaitAncestorValue extends LitElement {
|
|
|
425
419
|
render() {
|
|
426
420
|
return html`
|
|
427
421
|
<p>
|
|
428
|
-
|
|
429
|
-
<strong>${this.dataProvider || "
|
|
422
|
+
dataProvider from ancestor:
|
|
423
|
+
<strong>${this.dataProvider || "none yet"}</strong>
|
|
430
424
|
</p>
|
|
431
|
-
<p>Initialized at: ${this.initializedAt || "
|
|
425
|
+
<p>Initialized at: ${this.initializedAt || "waiting for the parent…"}</p>
|
|
432
426
|
`;
|
|
433
427
|
}
|
|
434
428
|
}
|
|
@@ -500,11 +494,11 @@ export class DemoWaitAncestorValueMulti extends LitElement {
|
|
|
500
494
|
render() {
|
|
501
495
|
return html`
|
|
502
496
|
<p>
|
|
503
|
-
|
|
504
|
-
<strong>${this.dataProvider || "
|
|
497
|
+
dataProvider from ancestor:
|
|
498
|
+
<strong>${this.dataProvider || "none yet"}</strong>
|
|
505
499
|
</p>
|
|
506
500
|
<p>
|
|
507
|
-
Initialized at: ${this.initializedAt || "
|
|
501
|
+
Initialized at: ${this.initializedAt || "waiting for both ancestors…"}
|
|
508
502
|
</p>
|
|
509
503
|
`;
|
|
510
504
|
}
|
|
@@ -581,7 +575,7 @@ export class DemoWaitAncestorValueReady extends LitElement {
|
|
|
581
575
|
|
|
582
576
|
render() {
|
|
583
577
|
return html`
|
|
584
|
-
<p>
|
|
578
|
+
<p>dataProvider: <strong>${this.dataProvider || "none"}</strong></p>
|
|
585
579
|
<p>Initialized at: ${this.initializedAt}</p>
|
|
586
580
|
`;
|
|
587
581
|
}
|
|
@@ -600,12 +594,8 @@ export class DemoWaitAncestorsReadySection extends LitElement {
|
|
|
600
594
|
render() {
|
|
601
595
|
return html`
|
|
602
596
|
<div class="space-y-4">
|
|
603
|
-
<p class="text-sm text-neutral-600 dark:text-neutral-400">
|
|
604
|
-
Parent défini au chargement. Ajout dynamique de l’enfant —
|
|
605
|
-
initialisation immédiate si l’ancêtre est prêt.
|
|
606
|
-
</p>
|
|
607
597
|
<sonic-button ?disabled=${this.childInDom} @click=${this.addChild}>
|
|
608
|
-
${this.childInDom ? "Child added" : "Add child
|
|
598
|
+
${this.childInDom ? "Child added" : "Add child"}
|
|
609
599
|
</sonic-button>
|
|
610
600
|
<demo-wait-ancestor-ready dataProvider=${waitAncestorDemoKey.path}>
|
|
611
601
|
${this.childInDom
|
|
@@ -623,9 +613,6 @@ export class DemoWaitAncestorsStaticSection extends LitElement {
|
|
|
623
613
|
|
|
624
614
|
render() {
|
|
625
615
|
return html`
|
|
626
|
-
<p class="text-sm text-neutral-600 dark:text-neutral-400 mb-4">
|
|
627
|
-
Parent et enfant présents dès le chargement — pas de délai.
|
|
628
|
-
</p>
|
|
629
616
|
<demo-wait-ancestor-ready dataProvider=${waitAncestorDemoKey.path}>
|
|
630
617
|
<demo-wait-ancestor-value-ready></demo-wait-ancestor-value-ready>
|
|
631
618
|
</demo-wait-ancestor-ready>
|
|
@@ -4,7 +4,7 @@ import { get } from "@supersoniks/concorde/core/decorators/api";
|
|
|
4
4
|
import type { ApiResult } from "@supersoniks/concorde/core/utils/api";
|
|
5
5
|
import { Endpoint } from "@supersoniks/concorde/core/utils/endpoint";
|
|
6
6
|
import { set } from "@supersoniks/concorde/core/utils/PublisherProxy";
|
|
7
|
-
import {
|
|
7
|
+
import { t } from "@supersoniks/concorde/core/directives/Wording";
|
|
8
8
|
import { DOCS_MOCK_API_BASE } from "../mock-api/urls";
|
|
9
9
|
import {
|
|
10
10
|
DOCS_MOCK_EVENTS_API_TOKEN,
|
|
@@ -128,32 +128,31 @@ export class DocsApiConfigStaleTokenDemo extends LitElement {
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
/**
|
|
131
|
+
/** <code>t()</code> reads <code>serviceURL</code> / <code>wordingProvider</code> from the host and its ancestors. */
|
|
132
132
|
@customElement("docs-api-config-wording-demo")
|
|
133
133
|
export class DocsApiConfigWordingDemo extends LitElement {
|
|
134
134
|
static styles = [tailwind];
|
|
135
135
|
|
|
136
|
+
connectedCallback() {
|
|
137
|
+
this.setAttribute("serviceURL", DOCS_MOCK_API_BASE);
|
|
138
|
+
this.setAttribute("wordingProvider", "wording/labels?lang=fr");
|
|
139
|
+
this.setAttribute("wordingVersionProvider", docsApiConfWordingVersionKey.path);
|
|
140
|
+
super.connectedCallback();
|
|
141
|
+
}
|
|
142
|
+
|
|
136
143
|
render() {
|
|
137
144
|
return html`
|
|
138
|
-
<
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
145
|
+
<p class="text-sm space-y-2">
|
|
146
|
+
<span class="block">${t("api-config.greeting")}</span>
|
|
147
|
+
<span class="block">${t("api-config.farewell")}</span>
|
|
148
|
+
<span class="block text-neutral-500">${t("api-config.hint")}</span>
|
|
149
|
+
</p>
|
|
150
|
+
<sonic-button
|
|
151
|
+
size="sm"
|
|
152
|
+
class="mt-3"
|
|
153
|
+
@click=${() => set(docsApiConfWordingVersionKey, Date.now())}
|
|
154
|
+
>Bump wording version (reload)</sonic-button
|
|
142
155
|
>
|
|
143
|
-
<p class="text-sm space-y-2">
|
|
144
|
-
<span class="block">${wording("api-config.greeting")}</span>
|
|
145
|
-
<span class="block">${wording("api-config.farewell")}</span>
|
|
146
|
-
<span class="block text-neutral-500"
|
|
147
|
-
>${wording("api-config.hint")}</span
|
|
148
|
-
>
|
|
149
|
-
</p>
|
|
150
|
-
<sonic-button
|
|
151
|
-
size="sm"
|
|
152
|
-
class="mt-3"
|
|
153
|
-
@click=${() => set(docsApiConfWordingVersionKey, Date.now())}
|
|
154
|
-
>Bump wording version (reload)</sonic-button
|
|
155
|
-
>
|
|
156
|
-
</div>
|
|
157
156
|
`;
|
|
158
157
|
}
|
|
159
158
|
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { html, LitElement } from "lit";
|
|
2
|
+
import { customElement, property } from "lit/decorators.js";
|
|
3
|
+
import { DOCS_MOCK_API_BASE } from "../mock-api/urls";
|
|
4
|
+
import type { DocsFlight, DocsFlightStatus } from "../mock-api/flights";
|
|
5
|
+
import {
|
|
6
|
+
docsFlightDelayedSwitchKey,
|
|
7
|
+
docsFlightDirectionFilterKey,
|
|
8
|
+
docsFlightSearchFilterKey,
|
|
9
|
+
docsFlightStatusRadioKey,
|
|
10
|
+
} from "./docs-provider-keys";
|
|
11
|
+
import { tailwind } from "../tailwind";
|
|
12
|
+
|
|
13
|
+
import "../../core/components/functional/queue/queue";
|
|
14
|
+
import "../../core/components/ui/badge/badge";
|
|
15
|
+
import "../../core/components/ui/form/input/input";
|
|
16
|
+
import "../../core/components/ui/form/select/select";
|
|
17
|
+
import "../../core/components/ui/form/radio/radio";
|
|
18
|
+
import "../../core/components/ui/form/switch/switch";
|
|
19
|
+
|
|
20
|
+
const STATUS: Record<DocsFlightStatus, { label: string; type: string }> = {
|
|
21
|
+
"on-time": { label: "On time", type: "success" },
|
|
22
|
+
boarding: { label: "Boarding", type: "info" },
|
|
23
|
+
delayed: { label: "Delayed", type: "warning" },
|
|
24
|
+
landed: { label: "Landed", type: "neutral" },
|
|
25
|
+
cancelled: { label: "Cancelled", type: "danger" },
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const flightRow = (f: DocsFlight) => html`
|
|
29
|
+
<div
|
|
30
|
+
class="grid grid-cols-[3.5rem_4.5rem_1fr_auto] items-center gap-3 border-0 border-b border-dotted border-neutral-300 py-2 text-sm"
|
|
31
|
+
>
|
|
32
|
+
<span class="font-mono">${f.time}</span>
|
|
33
|
+
<span class="font-mono">${f.code}</span>
|
|
34
|
+
<span>${f.city} <span class="text-neutral-500">(${f.airport})</span></span>
|
|
35
|
+
<sonic-badge size="xs" type=${STATUS[f.status].type}
|
|
36
|
+
>${STATUS[f.status].label}</sonic-badge
|
|
37
|
+
>
|
|
38
|
+
</div>
|
|
39
|
+
`;
|
|
40
|
+
|
|
41
|
+
/** Flight board: a sonic-queue on `/flights`, filtered by `filterProvider`. */
|
|
42
|
+
@customElement("docs-flight-board")
|
|
43
|
+
export class DocsFlightBoard extends LitElement {
|
|
44
|
+
static styles = [tailwind];
|
|
45
|
+
|
|
46
|
+
@property() filterProvider = "";
|
|
47
|
+
@property() direction = "";
|
|
48
|
+
|
|
49
|
+
render() {
|
|
50
|
+
const direction = this.direction ? `&direction=${this.direction}` : "";
|
|
51
|
+
return html`
|
|
52
|
+
<sonic-queue
|
|
53
|
+
serviceURL=${DOCS_MOCK_API_BASE}
|
|
54
|
+
dataProviderExpression="flights?offset=$offset&limit=$limit${direction}"
|
|
55
|
+
dataFilterProvider=${this.filterProvider}
|
|
56
|
+
key="flights"
|
|
57
|
+
limit="8"
|
|
58
|
+
class="mt-4 block max-h-80 overflow-y-auto"
|
|
59
|
+
.items=${flightRow}
|
|
60
|
+
></sonic-queue>
|
|
61
|
+
`;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@customElement("docs-flight-search-demo")
|
|
66
|
+
export class DocsFlightSearchDemo extends LitElement {
|
|
67
|
+
static styles = [tailwind];
|
|
68
|
+
|
|
69
|
+
render() {
|
|
70
|
+
return html`
|
|
71
|
+
<sonic-input
|
|
72
|
+
formDataProvider=${docsFlightSearchFilterKey.path}
|
|
73
|
+
name="q"
|
|
74
|
+
label="Search flights"
|
|
75
|
+
placeholder="City, airport or flight number"
|
|
76
|
+
></sonic-input>
|
|
77
|
+
<docs-flight-board
|
|
78
|
+
filterProvider=${docsFlightSearchFilterKey.path}
|
|
79
|
+
direction="departures"
|
|
80
|
+
></docs-flight-board>
|
|
81
|
+
`;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@customElement("docs-flight-direction-demo")
|
|
86
|
+
export class DocsFlightDirectionDemo extends LitElement {
|
|
87
|
+
static styles = [tailwind];
|
|
88
|
+
|
|
89
|
+
render() {
|
|
90
|
+
return html`
|
|
91
|
+
<sonic-select
|
|
92
|
+
formDataProvider=${docsFlightDirectionFilterKey.path}
|
|
93
|
+
name="direction"
|
|
94
|
+
label="Board"
|
|
95
|
+
>
|
|
96
|
+
<option value="departures">Departures</option>
|
|
97
|
+
<option value="arrivals">Arrivals</option>
|
|
98
|
+
</sonic-select>
|
|
99
|
+
<docs-flight-board
|
|
100
|
+
filterProvider=${docsFlightDirectionFilterKey.path}
|
|
101
|
+
></docs-flight-board>
|
|
102
|
+
`;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@customElement("docs-flight-status-radio-demo")
|
|
107
|
+
export class DocsFlightStatusRadioDemo extends LitElement {
|
|
108
|
+
static styles = [tailwind];
|
|
109
|
+
|
|
110
|
+
render() {
|
|
111
|
+
return html`
|
|
112
|
+
<div
|
|
113
|
+
formDataProvider=${docsFlightStatusRadioKey.path}
|
|
114
|
+
class="flex flex-wrap gap-4"
|
|
115
|
+
>
|
|
116
|
+
<sonic-radio name="status" value="all" checked>All</sonic-radio>
|
|
117
|
+
<sonic-radio name="status" value="on-time">On time</sonic-radio>
|
|
118
|
+
<sonic-radio name="status" value="delayed">Delayed</sonic-radio>
|
|
119
|
+
<sonic-radio name="status" value="cancelled">Cancelled</sonic-radio>
|
|
120
|
+
</div>
|
|
121
|
+
<docs-flight-board
|
|
122
|
+
filterProvider=${docsFlightStatusRadioKey.path}
|
|
123
|
+
direction="arrivals"
|
|
124
|
+
></docs-flight-board>
|
|
125
|
+
`;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
@customElement("docs-flight-delayed-switch-demo")
|
|
130
|
+
export class DocsFlightDelayedSwitchDemo extends LitElement {
|
|
131
|
+
static styles = [tailwind];
|
|
132
|
+
|
|
133
|
+
render() {
|
|
134
|
+
return html`
|
|
135
|
+
<sonic-switch
|
|
136
|
+
formDataProvider=${docsFlightDelayedSwitchKey.path}
|
|
137
|
+
name="status"
|
|
138
|
+
value="delayed"
|
|
139
|
+
>Delayed flights only</sonic-switch
|
|
140
|
+
>
|
|
141
|
+
<docs-flight-board
|
|
142
|
+
filterProvider=${docsFlightDelayedSwitchKey.path}
|
|
143
|
+
direction="departures"
|
|
144
|
+
></docs-flight-board>
|
|
145
|
+
`;
|
|
146
|
+
}
|
|
147
|
+
}
|