@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
|
@@ -1,113 +1,73 @@
|
|
|
1
1
|
import { html, LitElement } from "lit";
|
|
2
2
|
import { customElement } from "lit/decorators.js";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
} from "../mock-api/urls";
|
|
7
|
-
import { docsQueueUsersFilterKey } from "./docs-provider-keys";
|
|
3
|
+
import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
|
|
4
|
+
import { DOCS_MOCK_API_BASE } from "../mock-api/urls";
|
|
5
|
+
import type { DocsFlight } from "../mock-api/flights";
|
|
8
6
|
import { tailwind } from "../tailwind";
|
|
9
7
|
|
|
10
8
|
import "../../core/components/functional/queue/queue";
|
|
11
|
-
import "../../core/components/ui/
|
|
9
|
+
import "../../core/components/ui/badge/badge";
|
|
12
10
|
import "../../core/components/ui/form/input/input";
|
|
13
11
|
|
|
14
|
-
|
|
12
|
+
const flightFilter = new DataProviderKey<{ q?: string }>("queueFlightFilter");
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<sonic-image
|
|
26
|
-
src=${avatar}
|
|
27
|
-
rounded="md"
|
|
28
|
-
ratio="1/1"
|
|
29
|
-
class="w-12 block"
|
|
30
|
-
></sonic-image>
|
|
31
|
-
<div>
|
|
32
|
-
<div>${first_name} <span class="font-bold">${last_name}</span></div>
|
|
33
|
-
<div class="text-sm text-neutral-500">${email}</div>
|
|
34
|
-
</div>
|
|
14
|
+
const flightRow = ({ time, code, city, airport, gate, status }: DocsFlight) =>
|
|
15
|
+
html`<div
|
|
16
|
+
class="grid grid-cols-[3.5rem_4.5rem_1fr_3rem_auto] items-center gap-3 border-0 border-b border-dotted border-neutral-300 py-2 text-sm"
|
|
17
|
+
>
|
|
18
|
+
<span class="font-mono">${time}</span>
|
|
19
|
+
<span class="font-mono">${code}</span>
|
|
20
|
+
<span>${city} <span class="text-neutral-500">(${airport})</span></span>
|
|
21
|
+
<span class="font-mono text-neutral-500">${gate}</span>
|
|
22
|
+
<sonic-badge size="xs">${status}</sonic-badge>
|
|
35
23
|
</div>`;
|
|
36
24
|
|
|
37
|
-
/**
|
|
25
|
+
/** Lazy load: batches of 4 departures, the next one loads on scroll. */
|
|
38
26
|
@customElement("docs-queue-geo-demo")
|
|
39
27
|
export class DocsQueueGeoDemo extends LitElement {
|
|
40
|
-
|
|
41
|
-
html`<div class="rounded bg-neutral-100 p-2 text-sm">
|
|
42
|
-
<div class="font-medium">${item.nom}</div>
|
|
43
|
-
${item.code
|
|
44
|
-
? html`<div class="text-neutral-500">${item.code}</div>`
|
|
45
|
-
: null}
|
|
46
|
-
</div>`;
|
|
28
|
+
static styles = [tailwind];
|
|
47
29
|
|
|
48
30
|
render() {
|
|
49
31
|
return html`
|
|
50
32
|
<sonic-queue
|
|
51
|
-
|
|
52
|
-
dataProviderExpression="
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
33
|
+
serviceURL=${DOCS_MOCK_API_BASE}
|
|
34
|
+
dataProviderExpression="flights?offset=$offset&limit=$limit&direction=departures"
|
|
35
|
+
key="flights"
|
|
36
|
+
limit="4"
|
|
37
|
+
class="block max-h-48 overflow-y-auto"
|
|
38
|
+
.items=${flightRow}
|
|
57
39
|
></sonic-queue>
|
|
58
40
|
`;
|
|
59
41
|
}
|
|
60
42
|
}
|
|
61
43
|
|
|
62
|
-
/**
|
|
63
|
-
* Users — lazy load + search (`q`), aligned with create-concorde-ts-starter demo-queue.
|
|
64
|
-
* Mock: `filterDocsUsers` + `paginateUsers` in `src/docs/mock-api/`.
|
|
65
|
-
*/
|
|
44
|
+
/** Filter: the `q` field is added to every request; a change reloads from offset 0. */
|
|
66
45
|
@customElement("docs-queue-users-demo")
|
|
67
46
|
export class DocsQueueUsersDemo extends LitElement {
|
|
68
47
|
static styles = [tailwind];
|
|
69
48
|
|
|
70
|
-
private items = userRow;
|
|
71
|
-
|
|
72
|
-
private separator = () => html`
|
|
73
|
-
<div class="my-1 border-t border-dashed border-neutral-200"></div>
|
|
74
|
-
`;
|
|
75
|
-
|
|
76
49
|
private noItems = () => html`
|
|
77
|
-
<p class="p-4 text-center text-sm
|
|
78
|
-
No users — try another search (e.g. <code>zzz</code>)
|
|
79
|
-
</p>
|
|
50
|
+
<p class="p-4 text-center text-sm text-neutral-500">No flight found.</p>
|
|
80
51
|
`;
|
|
81
52
|
|
|
82
53
|
render() {
|
|
83
54
|
return html`
|
|
84
|
-
<
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
></sonic-input>
|
|
92
|
-
</div>
|
|
93
|
-
<p class="mb-3 text-sm text-neutral-500">
|
|
94
|
-
Typing updates <code>?q=…</code> on each request. Scroll inside the box
|
|
95
|
-
to load the next batch (<code>offset</code> += <code>limit</code>).
|
|
96
|
-
</p>
|
|
55
|
+
<sonic-input
|
|
56
|
+
formDataProvider=${flightFilter.path}
|
|
57
|
+
name="q"
|
|
58
|
+
type="search"
|
|
59
|
+
label="Search flights"
|
|
60
|
+
placeholder="City, airport or flight number"
|
|
61
|
+
></sonic-input>
|
|
97
62
|
<sonic-queue
|
|
98
|
-
|
|
99
|
-
dataProviderExpression="
|
|
100
|
-
dataFilterProvider
|
|
63
|
+
serviceURL=${DOCS_MOCK_API_BASE}
|
|
64
|
+
dataProviderExpression="flights?offset=$offset&limit=$limit"
|
|
65
|
+
dataFilterProvider=${flightFilter.path}
|
|
66
|
+
key="flights"
|
|
101
67
|
limit="4"
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
serviceURL=${DOCS_MOCK_REQRES_SERVICE}
|
|
105
|
-
key="data"
|
|
106
|
-
class="grid max-h-96 max-w-md gap-2 overflow-y-auto"
|
|
107
|
-
.items=${this.items}
|
|
108
|
-
.separator=${this.separator}
|
|
68
|
+
class="mt-4 block max-h-48 overflow-y-auto"
|
|
69
|
+
.items=${flightRow}
|
|
109
70
|
.noItems=${this.noItems}
|
|
110
|
-
debug
|
|
111
71
|
></sonic-queue>
|
|
112
72
|
`;
|
|
113
73
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { html, LitElement } from "lit";
|
|
2
2
|
import { customElement, state } from "lit/decorators.js";
|
|
3
3
|
import { tailwind } from "../tailwind";
|
|
4
|
-
import {
|
|
4
|
+
import { DOC_ROUTER_PAGE_PATH, setDocsDemoSubHash } from "../docs-location";
|
|
5
5
|
|
|
6
6
|
import "../../core/components/functional/router/router";
|
|
7
7
|
import "../../core/components/ui/button/button";
|
|
@@ -16,7 +16,7 @@ const panel = (title: string, body?: string) => html`
|
|
|
16
16
|
`;
|
|
17
17
|
|
|
18
18
|
function navButton(label: string, subRoute: string, variant?: string) {
|
|
19
|
-
const href = `${
|
|
19
|
+
const href = `${DOC_ROUTER_PAGE_PATH}#${subRoute.replace(/^#/, "")}`;
|
|
20
20
|
return html`<sonic-button
|
|
21
21
|
size="xs"
|
|
22
22
|
variant=${variant ?? "default"}
|
|
@@ -24,7 +24,7 @@ function navButton(label: string, subRoute: string, variant?: string) {
|
|
|
24
24
|
href=${href}
|
|
25
25
|
@click=${(e: Event) => {
|
|
26
26
|
e.preventDefault();
|
|
27
|
-
setDocsDemoSubHash(subRoute,
|
|
27
|
+
setDocsDemoSubHash(subRoute, DOC_ROUTER_PAGE_PATH);
|
|
28
28
|
}}
|
|
29
29
|
>${label}</sonic-button
|
|
30
30
|
>`;
|
|
@@ -36,21 +36,21 @@ export class DocsRouterBasicDemo extends LitElement {
|
|
|
36
36
|
|
|
37
37
|
@state()
|
|
38
38
|
private routes = {
|
|
39
|
-
"#
|
|
40
|
-
"#
|
|
41
|
-
"#
|
|
42
|
-
"#
|
|
39
|
+
"#departures": () => panel("Departures", "CN 001 to New York boards at B12."),
|
|
40
|
+
"#arrivals": () => panel("Arrivals", "CN 002 from New York has landed."),
|
|
41
|
+
"#fleet": () => panel("Fleet", "Seven aircraft, cruising at Mach 2.04."),
|
|
42
|
+
"#crew": () => panel("Crew", "Captain Leo Marchand is on duty."),
|
|
43
43
|
fallback: () =>
|
|
44
|
-
panel("404", "No route matched
|
|
44
|
+
panel("404", "No route matched: routes.fallback is rendered."),
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
render() {
|
|
48
48
|
return html`
|
|
49
49
|
<div class="mb-4 flex flex-wrap gap-2">
|
|
50
|
-
${navButton("
|
|
51
|
-
${navButton("
|
|
52
|
-
${navButton("
|
|
53
|
-
${navButton("
|
|
50
|
+
${navButton("Departures", "departures")}
|
|
51
|
+
${navButton("Arrivals", "arrivals")}
|
|
52
|
+
${navButton("Fleet", "fleet")}
|
|
53
|
+
${navButton("Crew", "crew")}
|
|
54
54
|
${navButton("Unknown", "unknown", "outline")}
|
|
55
55
|
</div>
|
|
56
56
|
<sonic-router .routes=${this.routes}></sonic-router>
|
|
@@ -64,24 +64,19 @@ export class DocsRouterParamsDemo extends LitElement {
|
|
|
64
64
|
|
|
65
65
|
@state()
|
|
66
66
|
private routes = {
|
|
67
|
-
"#
|
|
68
|
-
panel("
|
|
69
|
-
"#
|
|
70
|
-
panel(
|
|
71
|
-
fallback: () => panel("No
|
|
67
|
+
"#flights/:code": ({ code }: { code: string }) =>
|
|
68
|
+
panel(`Flight ${code}`, "url-pattern: params is { code }"),
|
|
69
|
+
"#gates/([A-Z])(\\d+)": ([terminal, gate]: [string, string]) =>
|
|
70
|
+
panel(`Terminal ${terminal}, gate ${gate}`, "RegExp: params is [terminal, gate]"),
|
|
71
|
+
fallback: () => panel("No flight selected", "Pick a link above."),
|
|
72
72
|
};
|
|
73
73
|
|
|
74
74
|
render() {
|
|
75
75
|
return html`
|
|
76
|
-
<p class="mb-3 text-sm text-neutral-500">
|
|
77
|
-
Dynamic segments are passed to the route function (object for
|
|
78
|
-
<code>url-pattern</code>, array for capturing groups). Navigation uses
|
|
79
|
-
<code>history.replaceState</code> with a second hash segment so the doc
|
|
80
|
-
page does not reload.
|
|
81
|
-
</p>
|
|
82
76
|
<div class="mb-4 flex flex-wrap gap-2">
|
|
83
|
-
${navButton("#
|
|
84
|
-
${navButton("#
|
|
77
|
+
${navButton("#flights/CN001", "flights/CN001")}
|
|
78
|
+
${navButton("#flights/CN102", "flights/CN102")}
|
|
79
|
+
${navButton("#gates/B12", "gates/B12")}
|
|
85
80
|
</div>
|
|
86
81
|
<sonic-router .routes=${this.routes}></sonic-router>
|
|
87
82
|
`;
|
|
@@ -96,7 +96,7 @@ export class DocsSubmitDemo extends LitElement {
|
|
|
96
96
|
if (!r || (!r.id && !r.token && !r.error && !r.messages?.length)) {
|
|
97
97
|
return html`
|
|
98
98
|
<p class="mt-4 text-sm text-neutral-500">
|
|
99
|
-
|
|
99
|
+
Sign up to see the crew <code>id</code> and <code>token</code> here.
|
|
100
100
|
</p>
|
|
101
101
|
`;
|
|
102
102
|
}
|
|
@@ -120,19 +120,19 @@ export class DocsSubmitDemo extends LitElement {
|
|
|
120
120
|
<sonic-input
|
|
121
121
|
required
|
|
122
122
|
name="email"
|
|
123
|
-
type="email"
|
|
124
|
-
value="
|
|
123
|
+
type="email" label="Email"
|
|
124
|
+
value="ada.lindqvist@example.com"
|
|
125
125
|
></sonic-input>
|
|
126
126
|
<sonic-input
|
|
127
127
|
required
|
|
128
|
-
type="password"
|
|
128
|
+
type="password" label="Password"
|
|
129
129
|
name="password"
|
|
130
|
-
value="
|
|
130
|
+
value="concorde"
|
|
131
131
|
></sonic-input>
|
|
132
132
|
</div>
|
|
133
133
|
</sonic-submit>
|
|
134
134
|
<sonic-submit onClick>
|
|
135
|
-
<sonic-button type="success" class="w-full">
|
|
135
|
+
<sonic-button type="success" class="w-full">Join the crew</sonic-button>
|
|
136
136
|
</sonic-submit>
|
|
137
137
|
</sonic-scope>
|
|
138
138
|
${this.resultBlock()}
|
|
@@ -159,28 +159,28 @@ export class DocsSubmitClearDemo extends LitElement {
|
|
|
159
159
|
<sonic-input
|
|
160
160
|
required
|
|
161
161
|
name="email"
|
|
162
|
-
type="email"
|
|
163
|
-
value="
|
|
162
|
+
type="email" label="Email"
|
|
163
|
+
value="ada.lindqvist@example.com"
|
|
164
164
|
></sonic-input>
|
|
165
165
|
<sonic-input
|
|
166
166
|
required
|
|
167
|
-
type="password"
|
|
167
|
+
type="password" label="Password"
|
|
168
168
|
name="password"
|
|
169
|
-
value="
|
|
169
|
+
value="concorde"
|
|
170
170
|
></sonic-input>
|
|
171
171
|
</div>
|
|
172
|
-
<sonic-button type="success" class="w-full">
|
|
172
|
+
<sonic-button type="success" class="w-full">Check in and clear form</sonic-button>
|
|
173
173
|
</sonic-submit>
|
|
174
174
|
</sonic-scope>
|
|
175
175
|
<p class="mt-3 text-sm text-neutral-500">
|
|
176
|
-
After
|
|
177
|
-
the publisher
|
|
176
|
+
After check-in, <code>clearedDataOnSuccess="submit-clear-form"</code> resets
|
|
177
|
+
the publisher and empties the fields.
|
|
178
178
|
</p>
|
|
179
179
|
`;
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
/** `
|
|
183
|
+
/** `submitResultKey` keeps only a nested part of the JSON before writing the result publisher. */
|
|
184
184
|
@customElement("docs-submit-result-key-demo")
|
|
185
185
|
export class DocsSubmitResultKeyDemo extends LitElement {
|
|
186
186
|
static styles = [tailwind];
|
|
@@ -199,29 +199,29 @@ export class DocsSubmitResultKeyDemo extends LitElement {
|
|
|
199
199
|
submitResultDataProvider=${submitNestedResultKey.path}
|
|
200
200
|
class="max-w-lg block"
|
|
201
201
|
>
|
|
202
|
-
<sonic-submit onClick
|
|
202
|
+
<sonic-submit onClick submitResultKey="data">
|
|
203
203
|
<div class="mb-4 grid grid-cols-2 gap-4">
|
|
204
204
|
<sonic-input
|
|
205
205
|
required
|
|
206
206
|
name="email"
|
|
207
|
-
type="email"
|
|
208
|
-
value="
|
|
207
|
+
type="email" label="Email"
|
|
208
|
+
value="ada.lindqvist@example.com"
|
|
209
209
|
></sonic-input>
|
|
210
210
|
<sonic-input
|
|
211
211
|
required
|
|
212
|
-
type="password"
|
|
212
|
+
type="password" label="Password"
|
|
213
213
|
name="password"
|
|
214
|
-
value="
|
|
214
|
+
value="concorde"
|
|
215
215
|
></sonic-input>
|
|
216
216
|
</div>
|
|
217
|
-
<sonic-button type="primary" class="w-full">
|
|
217
|
+
<sonic-button type="primary" class="w-full">Check in (nested JSON)</sonic-button>
|
|
218
218
|
</sonic-submit>
|
|
219
219
|
</sonic-scope>
|
|
220
220
|
<sonic-divider align="left" class="mt-4">Stored in publisher</sonic-divider>
|
|
221
221
|
<div class="mt-2 text-sm">
|
|
222
222
|
${r?.id != null
|
|
223
223
|
? html`<div>id from <code>data</code> : ${r.id}</div>`
|
|
224
|
-
: html`<p class="text-neutral-500">
|
|
224
|
+
: html`<p class="text-neutral-500">Check in to extract <code>data.id</code> and <code>data.token</code>.</p>`}
|
|
225
225
|
</div>
|
|
226
226
|
`;
|
|
227
227
|
}
|
|
@@ -250,23 +250,23 @@ export class DocsSubmitFormDataDemo extends LitElement {
|
|
|
250
250
|
<sonic-input
|
|
251
251
|
required
|
|
252
252
|
name="email"
|
|
253
|
-
type="email"
|
|
254
|
-
value="
|
|
253
|
+
type="email" label="Email"
|
|
254
|
+
value="ada.lindqvist@example.com"
|
|
255
255
|
></sonic-input>
|
|
256
256
|
<sonic-input
|
|
257
257
|
required
|
|
258
|
-
type="password"
|
|
258
|
+
type="password" label="Password"
|
|
259
259
|
name="password"
|
|
260
|
-
value="
|
|
260
|
+
value="concorde"
|
|
261
261
|
></sonic-input>
|
|
262
262
|
</div>
|
|
263
|
-
<sonic-button type="primary" class="w-full">
|
|
263
|
+
<sonic-button type="primary" class="w-full">Send passenger details as FormData</sonic-button>
|
|
264
264
|
</sonic-submit>
|
|
265
265
|
</sonic-scope>
|
|
266
266
|
<div class="mt-3 text-sm">
|
|
267
267
|
${this.result?.token
|
|
268
268
|
? html`Token received: <span class="font-mono">${this.result.token}</span>`
|
|
269
|
-
: html`<p class="text-neutral-500">
|
|
269
|
+
: html`<p class="text-neutral-500">The mock accepts JSON and multipart on <code>/api/register</code>.</p>`}
|
|
270
270
|
</div>
|
|
271
271
|
`;
|
|
272
272
|
}
|
|
@@ -292,10 +292,10 @@ export class DocsSubmitGetDemo extends LitElement {
|
|
|
292
292
|
>
|
|
293
293
|
<sonic-submit onClick method="get">
|
|
294
294
|
<div class="mb-4 grid grid-cols-2 gap-4">
|
|
295
|
-
<sonic-input name="email" type="email" value="
|
|
296
|
-
<sonic-input name="password" type="password" value="
|
|
295
|
+
<sonic-input name="email" type="email" label="Crew email" value="leo.marchand@example.com"></sonic-input>
|
|
296
|
+
<sonic-input name="password" type="password" label="Crew code" value="mach2"></sonic-input>
|
|
297
297
|
</div>
|
|
298
|
-
<sonic-button type="neutral" class="w-full">
|
|
298
|
+
<sonic-button type="neutral" class="w-full">Look up crew member (GET)</sonic-button>
|
|
299
299
|
</sonic-submit>
|
|
300
300
|
</sonic-scope>
|
|
301
301
|
<div class="mt-3 space-y-1 text-sm">${resultLines(this.result)}</div>
|
|
@@ -324,25 +324,25 @@ export class DocsSubmitNativeDemo extends LitElement {
|
|
|
324
324
|
<sonic-input
|
|
325
325
|
required
|
|
326
326
|
name="email"
|
|
327
|
-
type="email"
|
|
328
|
-
value="
|
|
327
|
+
type="email" label="Email"
|
|
328
|
+
value="ada.lindqvist@example.com"
|
|
329
329
|
></sonic-input>
|
|
330
330
|
<sonic-input
|
|
331
331
|
required
|
|
332
|
-
type="password"
|
|
332
|
+
type="password" label="Password"
|
|
333
333
|
name="password"
|
|
334
|
-
value="
|
|
334
|
+
value="concorde"
|
|
335
335
|
></sonic-input>
|
|
336
336
|
</div>
|
|
337
337
|
<sonic-button type="success" class="w-full"
|
|
338
|
-
>
|
|
338
|
+
>Check in (native form POST)</sonic-button
|
|
339
339
|
>
|
|
340
340
|
</sonic-submit>
|
|
341
341
|
</sonic-scope>
|
|
342
342
|
</form>
|
|
343
343
|
<p class="mt-2 text-sm text-neutral-500">
|
|
344
|
-
|
|
345
|
-
|
|
344
|
+
The response loads in the iframe below: <code>target</code> avoids a
|
|
345
|
+
full page navigation.
|
|
346
346
|
</p>
|
|
347
347
|
<iframe
|
|
348
348
|
name="docs-submit-native-frame"
|
|
@@ -381,23 +381,23 @@ export class DocsSubmitEventDemo extends LitElement {
|
|
|
381
381
|
<sonic-input
|
|
382
382
|
required
|
|
383
383
|
name="email"
|
|
384
|
-
type="email"
|
|
385
|
-
value="
|
|
384
|
+
type="email" label="Email"
|
|
385
|
+
value="ada.lindqvist@example.com"
|
|
386
386
|
></sonic-input>
|
|
387
387
|
<sonic-input
|
|
388
388
|
required
|
|
389
|
-
type="password"
|
|
389
|
+
type="password" label="Password"
|
|
390
390
|
name="password"
|
|
391
|
-
value="
|
|
391
|
+
value="concorde"
|
|
392
392
|
></sonic-input>
|
|
393
393
|
</div>
|
|
394
|
-
<sonic-button type="primary" class="w-full">
|
|
394
|
+
<sonic-button type="primary" class="w-full">Board (listen to event)</sonic-button>
|
|
395
395
|
</sonic-submit>
|
|
396
396
|
</sonic-scope>
|
|
397
397
|
<p class="mt-3 text-sm">
|
|
398
398
|
${this.lastEvent
|
|
399
399
|
? html`Last <code>submit</code> event: <span class="font-mono">${this.lastEvent}</span>`
|
|
400
|
-
: html`<span class="text-neutral-500">Click
|
|
400
|
+
: html`<span class="text-neutral-500">Click Board: the handler reads <code>event.detail</code>.</span>`}
|
|
401
401
|
</p>
|
|
402
402
|
`;
|
|
403
403
|
}
|
|
@@ -426,14 +426,14 @@ export class DocsSubmitEndpointDemo extends LitElement {
|
|
|
426
426
|
<sonic-input
|
|
427
427
|
required
|
|
428
428
|
name="email"
|
|
429
|
-
type="email"
|
|
430
|
-
value="
|
|
429
|
+
type="email" label="Email"
|
|
430
|
+
value="ada.lindqvist@example.com"
|
|
431
431
|
></sonic-input>
|
|
432
432
|
<sonic-input
|
|
433
433
|
required
|
|
434
|
-
type="password"
|
|
434
|
+
type="password" label="Password"
|
|
435
435
|
name="password"
|
|
436
|
-
value="
|
|
436
|
+
value="concorde"
|
|
437
437
|
></sonic-input>
|
|
438
438
|
</div>
|
|
439
439
|
<sonic-button type="primary" class="w-full"
|
|
@@ -443,7 +443,7 @@ export class DocsSubmitEndpointDemo extends LitElement {
|
|
|
443
443
|
</sonic-scope>
|
|
444
444
|
<div class="mt-3 text-sm">
|
|
445
445
|
${this.result?.token
|
|
446
|
-
? html`
|
|
446
|
+
? html`Signed up: the scope <code>dataProvider</code> is <code>api/users</code> but the request went to <code>api/register</code>.`
|
|
447
447
|
: html`<p class="text-neutral-500">
|
|
448
448
|
<code>dataProvider=${usersListEndpoint.path}</code> but
|
|
449
449
|
<code>endPoint=${registerEndpoint.path}</code> on
|
|
@@ -28,7 +28,7 @@ export class DocsToggleIfDemo extends LitElement {
|
|
|
28
28
|
return html`
|
|
29
29
|
<div formDataProvider=${docsToggleVisibilityKey.path}>
|
|
30
30
|
<sonic-checkbox
|
|
31
|
-
label="Show
|
|
31
|
+
label="Show aircraft"
|
|
32
32
|
name="togglePlan"
|
|
33
33
|
unique
|
|
34
34
|
checked
|
|
@@ -36,9 +36,10 @@ export class DocsToggleIfDemo extends LitElement {
|
|
|
36
36
|
></sonic-checkbox>
|
|
37
37
|
<sonic-if .condition=${show} class="mt-4 block">
|
|
38
38
|
<sonic-image
|
|
39
|
-
src="
|
|
39
|
+
src="img/concorde/plane_07.jpg"
|
|
40
|
+
alt="Crowd gathered around Concorde at night"
|
|
40
41
|
rounded="md"
|
|
41
|
-
ratio="
|
|
42
|
+
ratio="3/2"
|
|
42
43
|
></sonic-image>
|
|
43
44
|
</sonic-if>
|
|
44
45
|
</div>
|
|
File without changes
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# AI agents (skills & AGENTS.md)
|
|
2
|
+
|
|
3
|
+
Concorde ships **skills**, **rules**, and a root **`AGENTS.md`** so Cursor, JetBrains AI Assistant, and other coding agents follow framework patterns (DataProvider, decorators, short imports, scope, theme, migrations).
|
|
4
|
+
|
|
5
|
+
On a [starter](/docs/getting-started/installation) project, run `yarn ai:sync` after install. On an existing project, install Concorde first, then use `ai-init` below.
|
|
6
|
+
|
|
7
|
+
## Dedicated commands
|
|
8
|
+
|
|
9
|
+
| Context | Command |
|
|
10
|
+
|---------|---------|
|
|
11
|
+
| [create-concorde-ts-starter](https://www.npmjs.com/package/@supersoniks/create-concorde-ts-starter) project | `yarn ai:sync` |
|
|
12
|
+
| Any consumer app (after `yarn add @supersoniks/concorde`) | `node node_modules/@supersoniks/concorde/scripts/ai-init.mjs` |
|
|
13
|
+
| Concorde repo (contributors) | `yarn ai-init` |
|
|
14
|
+
|
|
15
|
+
<sonic-code language="shell">
|
|
16
|
+
<template>
|
|
17
|
+
# Starter (from project root)
|
|
18
|
+
yarn ai:sync
|
|
19
|
+
|
|
20
|
+
# Manual / existing project
|
|
21
|
+
node node_modules/@supersoniks/concorde/scripts/ai-init.mjs
|
|
22
|
+
</template>
|
|
23
|
+
</sonic-code>
|
|
24
|
+
|
|
25
|
+
## Useful flags
|
|
26
|
+
|
|
27
|
+
| Flag | Effect |
|
|
28
|
+
|------|--------|
|
|
29
|
+
| `--skip-agents` | Never write `AGENTS.md` (skills / rules only) |
|
|
30
|
+
| `--merge-agents` | Opt-in: keep the project preamble and append / refresh the Concorde block |
|
|
31
|
+
| `--force-agents` | Opt-in: **replace** the whole `AGENTS.md` (destructive) |
|
|
32
|
+
| `--overlay <dir>` | Extra rules/skills + optional `AGENTS.concorde.md` for project-only Concorde agent notes |
|
|
33
|
+
| `--cursor-only` | Install only `.cursor/skills` and `.cursor/rules` |
|
|
34
|
+
| `--jetbrains-only` | Install only `.aiassistant/rules/` |
|
|
35
|
+
|
|
36
|
+
## `AGENTS.md` policy (non-invasive)
|
|
37
|
+
|
|
38
|
+
| Situation | Default |
|
|
39
|
+
|-----------|---------|
|
|
40
|
+
| No `AGENTS.md` | Create the Concorde guide |
|
|
41
|
+
| File with `<!-- concorde-ai -->` | Refresh the managed zone only |
|
|
42
|
+
| File **without** marker (project notes) | **Left untouched** — skills / rules are enough |
|
|
43
|
+
| `--merge-agents` / `--force-agents` / `--skip-agents` | See flags above |
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
[optional project preamble — short, project-only]
|
|
47
|
+
<!-- concorde-ai -->
|
|
48
|
+
<package ai/AGENTS.md>
|
|
49
|
+
[--- + overlay AGENTS.concorde.md]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Everything **after** `<!-- concorde-ai -->` is replaced on each `ai-init` run (idempotent). Do not paste a full copy of the Concorde guide above the marker — put project-specific notes in `AGENTS.concorde.md` (overlay). If the preamble duplicates package `AGENTS.md`, `ai-init` slims or drops it and prints a warning. Legacy filenames `AGENTS.overlay.md` / `AGENTS.starter.md` are still accepted with a deprecation warning.
|
|
53
|
+
|
|
54
|
+
## What gets installed
|
|
55
|
+
|
|
56
|
+
| Path | Role |
|
|
57
|
+
|------|------|
|
|
58
|
+
| `AGENTS.md` | Created only if missing; existing project-owned files are left alone unless `--merge-agents` / `--force-agents` |
|
|
59
|
+
| `.cursor/skills/concorde/` | Core Lit + DataProvider patterns |
|
|
60
|
+
| `.cursor/skills/concorde-imports/` | Short `@supersoniks/concorde/…` import paths |
|
|
61
|
+
| `.cursor/skills/concorde-scope/` | `serviceURL`, `formDataProvider`, API configuration |
|
|
62
|
+
| `.cursor/skills/concorde-theme/` | `sonic-theme` and `--sc-*` tokens |
|
|
63
|
+
| `.cursor/skills/concorde-menu/` | `sonic-menu` navigation |
|
|
64
|
+
| `.cursor/skills/concorde-get-set-dp/` | `get` / `set` / `dp` and `DataProviderKey` migration |
|
|
65
|
+
| `.cursor/rules/concorde.mdc` | Cursor rules (always-on patterns) |
|
|
66
|
+
| `.aiassistant/rules/concorde.md` | JetBrains AI Assistant rules |
|
|
67
|
+
|
|
68
|
+
## Workflow
|
|
69
|
+
|
|
70
|
+
1. **Starter project:** [Installation](/docs/getting-started/installation) — `yarn ai:sync` is wired in the kit.
|
|
71
|
+
2. **Existing project:** run **`ai-init`** after `yarn add @supersoniks/concorde`.
|
|
72
|
+
3. Commit `.cursor/` and `.aiassistant/` (and `AGENTS.md` only if you opted in / it was created) if your team shares agent settings.
|
|
73
|
+
4. Re-run the same command when you bump `@supersoniks/concorde` to refresh skills from `node_modules/@supersoniks/concorde/ai/`.
|
|
74
|
+
5. In Cursor, skills under `.cursor/skills/` are picked up automatically; mention a skill in chat for focused tasks (e.g. migration → `concorde-get-set-dp`).
|
|
75
|
+
|
|
76
|
+
Source files in the npm package: `node_modules/@supersoniks/concorde/ai/` (see also `ai/README.md` in the [Concorde repository](https://github.com/supersoniks/concorde)).
|