@supersoniks/concorde 5.1.0 → 5.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/concorde-docs/SKILL.md +153 -0
- package/.agents/skills/{concorde-component-docs/template.md → concorde-docs/templates/component.md} +6 -2
- package/.agents/skills/concorde-docs/templates/decorator.md +43 -0
- package/.agents/skills/concorde-docs/templates/guide.md +25 -0
- package/.claude/launch.json +15 -0
- package/.claude/vite.http.config.mjs +7 -0
- package/.taste-skill/after/desktop-fold.jpg +0 -0
- package/.taste-skill/after/desktop-page-01.jpg +0 -0
- package/.taste-skill/after/desktop-page-02.jpg +0 -0
- package/.taste-skill/after/desktop-page-03.jpg +0 -0
- package/.taste-skill/after/mobile-fold.jpg +0 -0
- package/.taste-skill/after/mobile-page-01.jpg +0 -0
- package/.taste-skill/after/report.json +4103 -0
- package/.taste-skill/after/tablet-fold.jpg +0 -0
- package/.taste-skill/after/tablet-page-01.jpg +0 -0
- package/.taste-skill/after/tablet-page-02.jpg +0 -0
- package/.taste-skill/before/desktop-fold.jpg +0 -0
- package/.taste-skill/before/desktop-page-01.jpg +0 -0
- package/.taste-skill/before/desktop-page-02.jpg +0 -0
- package/.taste-skill/before/mobile-fold.jpg +0 -0
- package/.taste-skill/before/mobile-page-01.jpg +0 -0
- package/.taste-skill/before/report.json +2556 -0
- package/.taste-skill/before/tablet-fold.jpg +0 -0
- package/.taste-skill/before/tablet-page-01.jpg +0 -0
- package/.taste-skill/direction.json +510 -0
- package/.taste-skill/notes.md +84 -0
- package/.taste-skill/prod/desktop-fold.jpg +0 -0
- package/.taste-skill/prod/desktop-page-01.jpg +0 -0
- package/.taste-skill/prod/desktop-page-02.jpg +0 -0
- package/.taste-skill/prod/desktop-page-03.jpg +0 -0
- package/.taste-skill/prod/mobile-fold.jpg +0 -0
- package/.taste-skill/prod/mobile-page-01.jpg +0 -0
- package/.taste-skill/prod/mobile-page-02.jpg +0 -0
- package/.taste-skill/prod/report.json +1973 -0
- package/.taste-skill/prod/tablet-fold.jpg +0 -0
- package/.taste-skill/prod/tablet-page-01.jpg +0 -0
- package/.taste-skill/prod/tablet-page-02.jpg +0 -0
- package/.tmp-cem/custom-elements.json +2013 -2013
- package/AUDIT.md +228 -0
- package/PLAN-AMELIORATION.md +220 -0
- package/PLAN-DOCS-AGENTS.md +80 -0
- package/README.md +3 -3
- package/ai/skills/concorde/SKILL.md +1 -1
- package/ai/skills/concorde-get-set-dp/SKILL.md +3 -3
- package/ai/skills/concorde-theme/SKILL.md +1 -1
- package/build-infos.json +1 -1
- package/concorde-core.bundle.js +16 -16
- package/concorde-core.es.js +235 -233
- package/dist/concorde-core.bundle.js +16 -16
- package/dist/concorde-core.es.js +235 -233
- package/dist/img/archive/concorde-001-2cv.webp +0 -0
- package/dist/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
- package/dist/img/archive/concorde-red-arrows-2002.webm +0 -0
- package/dist/img/archive/credits.json +28 -0
- package/docs/.htaccess +75 -0
- package/docs/404.html +15 -0
- package/docs/404.md +5 -0
- package/docs/assets/index-BgG6FFPt.js +11765 -0
- package/docs/assets/index-x89XINSG.css +1 -0
- package/docs/core/components/functional/date/date.html +211 -0
- package/docs/core/components/functional/date/date.md +150 -0
- package/docs/core/components/functional/fetch/fetch.html +180 -0
- package/docs/core/components/functional/fetch/fetch.md +108 -0
- package/docs/core/components/functional/if/if.html +65 -0
- package/docs/core/components/functional/if/if.md +34 -0
- package/docs/core/components/functional/jsonata/jsonata.html +110 -0
- package/docs/core/components/functional/jsonata/jsonata.md +61 -0
- package/docs/core/components/functional/list/list.html +198 -0
- package/docs/core/components/functional/list/list.md +121 -0
- package/docs/core/components/functional/mix/mix.html +78 -0
- package/docs/core/components/functional/mix/mix.md +46 -0
- package/docs/core/components/functional/queue/queue.html +155 -0
- package/docs/core/components/functional/queue/queue.md +51 -0
- package/docs/core/components/functional/router/router.html +154 -0
- package/docs/core/components/functional/router/router.md +93 -0
- package/docs/core/components/functional/sdui/sdui-extension-points.html +127 -0
- package/docs/core/components/functional/sdui/sdui-extension-points.md +94 -0
- package/docs/core/components/functional/sdui/sdui.html +397 -0
- package/docs/core/components/functional/sdui/sdui.md +307 -0
- package/docs/core/components/functional/states/states.html +141 -0
- package/docs/core/components/functional/states/states.md +112 -0
- package/docs/core/components/functional/submit/submit.html +178 -0
- package/docs/core/components/functional/submit/submit.md +106 -0
- package/docs/{crawl/core → core}/components/functional/subscriber/subscriber.html +6 -5
- package/docs/core/components/functional/subscriber/subscriber.md +91 -0
- package/docs/core/components/functional/translation/translation.html +60 -0
- package/docs/core/components/functional/translation/translation.md +38 -0
- package/docs/core/components/functional/value/value.html +81 -0
- package/docs/core/components/functional/value/value.md +47 -0
- package/docs/core/components/ui/alert/alert.html +201 -0
- package/docs/core/components/ui/alert/alert.md +186 -0
- package/docs/core/components/ui/alert-messages/alert-messages.html +132 -0
- package/docs/core/components/ui/alert-messages/alert-messages.md +85 -0
- package/docs/core/components/ui/badge/badge.html +197 -0
- package/docs/core/components/ui/badge/badge.md +181 -0
- package/docs/core/components/ui/button/button.html +309 -0
- package/docs/core/components/ui/button/button.md +216 -0
- package/docs/core/components/ui/captcha/captcha.html +80 -0
- package/docs/core/components/ui/captcha/captcha.md +56 -0
- package/docs/core/components/ui/card/card.html +254 -0
- package/docs/core/components/ui/card/card.md +215 -0
- package/docs/core/components/ui/divider/divider.html +144 -0
- package/docs/core/components/ui/divider/divider.md +126 -0
- package/docs/core/components/ui/form/checkbox/checkbox.html +200 -0
- package/docs/core/components/ui/form/checkbox/checkbox.md +125 -0
- package/docs/core/components/ui/form/fieldset/fieldset.html +238 -0
- package/docs/core/components/ui/form/fieldset/fieldset.md +161 -0
- package/docs/core/components/ui/form/form-actions/form-actions.html +122 -0
- package/docs/core/components/ui/form/form-actions/form-actions.md +98 -0
- package/docs/core/components/ui/form/form-layout/form-layout.html +115 -0
- package/docs/core/components/ui/form/form-layout/form-layout.md +109 -0
- package/docs/core/components/ui/form/input/input.html +235 -0
- package/docs/core/components/ui/form/input/input.md +142 -0
- package/docs/core/components/ui/form/radio/radio.html +144 -0
- package/docs/core/components/ui/form/radio/radio.md +78 -0
- package/docs/core/components/ui/form/select/select.html +178 -0
- package/docs/core/components/ui/form/select/select.md +86 -0
- package/docs/core/components/ui/form/switch/switch.html +146 -0
- package/docs/core/components/ui/form/switch/switch.md +80 -0
- package/docs/core/components/ui/form/textarea/textarea.html +162 -0
- package/docs/core/components/ui/form/textarea/textarea.md +82 -0
- package/docs/core/components/ui/group/group.html +113 -0
- package/docs/core/components/ui/group/group.md +77 -0
- package/docs/core/components/ui/icon/icon.html +223 -0
- package/docs/core/components/ui/icon/icon.md +214 -0
- package/docs/core/components/ui/image/image.html +194 -0
- package/docs/core/components/ui/image/image.md +167 -0
- package/docs/core/components/ui/link/link.html +101 -0
- package/docs/core/components/ui/link/link.md +81 -0
- package/docs/core/components/ui/loader/loader.html +114 -0
- package/docs/core/components/ui/loader/loader.md +87 -0
- package/docs/{crawl/core → core}/components/ui/menu/menu.html +189 -116
- package/docs/core/components/ui/menu/menu.md +370 -0
- package/docs/core/components/ui/modal/modal.html +324 -0
- package/docs/core/components/ui/modal/modal.md +211 -0
- package/docs/core/components/ui/pop/pop.html +250 -0
- package/docs/core/components/ui/pop/pop.md +216 -0
- package/docs/core/components/ui/progress/progress.html +132 -0
- package/docs/core/components/ui/progress/progress.md +109 -0
- package/docs/core/components/ui/table/table.html +333 -0
- package/docs/core/components/ui/table/table.md +267 -0
- package/docs/core/components/ui/theme/theme.html +116 -0
- package/docs/core/components/ui/theme/theme.md +97 -0
- package/docs/core/components/ui/toast/toast.html +185 -0
- package/docs/core/components/ui/toast/toast.md +147 -0
- package/docs/core/components/ui/tooltip/tooltip.html +112 -0
- package/docs/core/components/ui/tooltip/tooltip.md +89 -0
- package/docs/docs/decorators/ancestor-attribute.html +71 -0
- package/docs/docs/decorators/ancestor-attribute.md +59 -0
- package/docs/docs/decorators/auto-subscribe.html +61 -0
- package/docs/docs/decorators/auto-subscribe.md +40 -0
- package/docs/docs/decorators/bind.html +86 -0
- package/docs/docs/decorators/bind.md +77 -0
- package/docs/docs/decorators/get.html +166 -0
- package/docs/docs/decorators/get.md +160 -0
- package/docs/docs/decorators/handle.html +139 -0
- package/docs/docs/decorators/handle.md +119 -0
- package/docs/docs/decorators/on-assign.html +72 -0
- package/docs/docs/decorators/on-assign.md +63 -0
- package/docs/docs/decorators/patch.html +76 -0
- package/docs/docs/decorators/patch.md +44 -0
- package/docs/docs/decorators/post.html +150 -0
- package/docs/docs/decorators/post.md +134 -0
- package/docs/docs/decorators/publish.html +74 -0
- package/docs/docs/decorators/publish.md +56 -0
- package/docs/docs/decorators/put.html +83 -0
- package/docs/docs/decorators/put.md +51 -0
- package/docs/docs/decorators/subscribe.html +91 -0
- package/docs/docs/decorators/subscribe.md +87 -0
- package/docs/docs/decorators/wait-for-ancestors.html +82 -0
- package/docs/docs/decorators/wait-for-ancestors.md +76 -0
- package/docs/docs/directives/sub.html +79 -0
- package/docs/docs/directives/sub.md +75 -0
- package/docs/docs/directives/t.html +91 -0
- package/docs/docs/directives/t.md +73 -0
- package/docs/{crawl/docs/_getting-started → docs/getting-started}/ai-agents.html +12 -11
- package/{src/docs/_getting-started → docs/docs/getting-started}/ai-agents.md +3 -3
- package/docs/docs/getting-started/components.html +27 -0
- package/docs/docs/getting-started/components.md +5 -0
- package/docs/{crawl/docs/_getting-started → docs/getting-started}/create-a-component.html +11 -14
- package/docs/{src/docs/_getting-started → docs/getting-started}/create-a-component.md +3 -6
- package/docs/{crawl/docs/_core-concept → docs/getting-started}/dataFlow.html +26 -29
- package/docs/{src/docs/_core-concept → docs/getting-started}/dataFlow.md +17 -18
- package/docs/docs/getting-started/installation.html +69 -0
- package/docs/docs/getting-started/installation.md +36 -0
- package/docs/{crawl/docs/_getting-started → docs/getting-started}/my-first-component.html +13 -22
- package/docs/{src/docs/_getting-started → docs/getting-started}/my-first-component.md +5 -14
- package/docs/docs/getting-started/start.html +47 -0
- package/{src/docs/_getting-started → docs/docs/getting-started}/start.md +1 -13
- package/docs/docs/getting-started/theming.html +334 -0
- package/{src/docs/_getting-started → docs/docs/getting-started}/theming.md +2 -2
- package/docs/docs/index.html +99 -0
- package/docs/{crawl/docs/_misc → docs/misc}/api-configuration.html +18 -18
- package/docs/{src/docs/_misc → docs/misc}/api-configuration.md +10 -12
- package/docs/{crawl/docs/_misc → docs/misc}/dataProviderKey.html +12 -11
- package/{src/docs/_misc → docs/docs/misc}/dataProviderKey.md +4 -4
- package/docs/{crawl/docs/_misc → docs/misc}/docs-mock-api.html +25 -28
- package/docs/{src/docs/_misc → docs/misc}/docs-mock-api.md +12 -13
- package/docs/{crawl/docs/_misc → docs/misc}/dynamic-path.html +16 -15
- package/{src/docs/_misc → docs/docs/misc}/dynamic-path.md +8 -8
- package/docs/{crawl/docs/_misc → docs/misc}/endpoint.html +16 -15
- package/{src/docs/_misc → docs/docs/misc}/endpoint.md +8 -8
- package/docs/{crawl/docs/_misc → docs/misc}/html-integration.html +12 -15
- package/docs/{src/docs/_misc → docs/misc}/html-integration.md +4 -5
- package/docs/docs-mock-api-sw.js +60 -223
- package/docs/docs-mock-api-sw.js.map +4 -4
- package/docs/hubs/decorators.html +443 -0
- package/docs/hubs/form-components.html +404 -0
- package/docs/hubs/remote-data.html +371 -0
- package/docs/img/archive/concorde-001-2cv.webp +0 -0
- package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
- package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
- package/docs/img/archive/credits.json +28 -0
- package/docs/img/concorde/plane_01.jpg +0 -0
- package/docs/img/concorde/plane_02.jpg +0 -0
- package/docs/img/concorde/plane_03.jpg +0 -0
- package/docs/img/concorde/plane_04.jpg +0 -0
- package/docs/img/concorde/plane_05.jpg +0 -0
- package/docs/img/concorde/plane_06.jpg +0 -0
- package/docs/img/concorde/plane_07.jpg +0 -0
- package/docs/img/concorde/plane_08.jpg +0 -0
- package/docs/img/concorde/plane_09.jpg +0 -0
- package/docs/img/concorde/plane_10.jpg +0 -0
- package/docs/img/concorde/plane_11.jpg +0 -0
- package/docs/img/concorde/plane_12.jpg +0 -0
- package/docs/img/concorde/plane_13.jpg +0 -0
- package/docs/index.html +96 -67
- package/docs/index.md +22 -0
- package/docs/llms-full.txt +3329 -3295
- package/docs/llms.txt +94 -92
- package/docs/robots.txt +11 -10
- package/docs/sitemap.xml +78 -78
- package/docs/src/core/components/functional/date/date.md +91 -231
- package/docs/src/core/components/functional/fetch/fetch.md +66 -83
- package/docs/src/core/components/functional/if/if.md +28 -3
- package/docs/src/core/components/functional/jsonata/jsonata.md +42 -37
- package/docs/src/core/components/functional/list/list.md +99 -43
- package/docs/src/core/components/functional/mix/mix.md +31 -26
- package/docs/src/core/components/functional/queue/queue.md +40 -61
- package/docs/src/core/components/functional/router/router.md +64 -65
- package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
- package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
- package/docs/src/core/components/functional/sdui/example.json +19 -86
- package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
- package/docs/src/core/components/functional/sdui/sdui.md +196 -245
- package/docs/src/core/components/functional/states/states.md +86 -61
- package/docs/src/core/components/functional/submit/submit.md +64 -72
- package/docs/src/core/components/functional/translation/translation.md +38 -0
- package/docs/src/core/components/functional/value/value.md +34 -22
- package/docs/src/core/components/ui/alert/alert.md +139 -74
- package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
- package/docs/src/core/components/ui/badge/badge.md +137 -83
- package/docs/src/core/components/ui/button/button.md +139 -105
- package/docs/src/core/components/ui/captcha/captcha.md +50 -6
- package/docs/src/core/components/ui/card/card.md +183 -65
- package/docs/src/core/components/ui/divider/divider.md +104 -13
- package/docs/src/core/components/ui/form/checkbox/checkbox.md +90 -42
- package/docs/src/core/components/ui/form/fieldset/fieldset.md +135 -103
- package/docs/src/core/components/ui/form/form-actions/form-actions.md +71 -50
- package/docs/src/core/components/ui/form/form-layout/form-layout.md +99 -34
- package/docs/src/core/components/ui/form/input/input.md +95 -95
- package/docs/src/core/components/ui/form/radio/radio.md +55 -34
- package/docs/src/core/components/ui/form/select/select.md +60 -45
- package/docs/src/core/components/ui/form/switch/switch.md +57 -34
- package/docs/src/core/components/ui/form/textarea/textarea.md +55 -38
- package/docs/src/core/components/ui/group/group.md +49 -47
- package/docs/src/core/components/ui/icon/icon.md +132 -43
- package/docs/src/core/components/ui/image/image.md +132 -72
- package/docs/src/core/components/ui/link/link.md +46 -8
- package/docs/src/core/components/ui/loader/loader.md +55 -23
- package/docs/src/core/components/ui/menu/menu.md +155 -114
- package/docs/src/core/components/ui/modal/modal.md +154 -62
- package/docs/src/core/components/ui/pop/pop.md +185 -65
- package/docs/src/core/components/ui/progress/progress.md +76 -30
- package/docs/src/core/components/ui/table/table.md +146 -334
- package/docs/src/core/components/ui/theme/theme.md +97 -0
- package/docs/src/core/components/ui/toast/toast.md +80 -99
- package/docs/src/core/components/ui/tooltip/tooltip.md +52 -45
- package/docs/src/docs/decorators/ancestor-attribute.md +59 -0
- package/docs/src/docs/decorators/auto-subscribe.md +40 -0
- package/docs/src/docs/decorators/bind.md +77 -0
- package/docs/src/docs/decorators/get.md +160 -0
- package/docs/src/docs/decorators/handle.md +119 -0
- package/docs/src/docs/decorators/on-assign.md +63 -0
- package/docs/src/docs/decorators/patch.md +44 -0
- package/docs/src/docs/decorators/post.md +134 -0
- package/docs/src/docs/decorators/publish.md +56 -0
- package/docs/src/docs/decorators/put.md +51 -0
- package/docs/src/docs/decorators/subscribe.md +87 -0
- package/docs/src/docs/decorators/wait-for-ancestors.md +76 -0
- package/docs/src/docs/directives/sub.md +75 -0
- package/docs/src/docs/directives/t.md +73 -0
- package/docs/src/docs/{_getting-started → getting-started}/ai-agents.md +3 -3
- package/docs/src/docs/getting-started/components.md +5 -0
- package/{src/docs/_getting-started → docs/src/docs/getting-started}/create-a-component.md +3 -6
- package/{src/docs/_core-concept → docs/src/docs/getting-started}/dataFlow.md +17 -18
- package/docs/src/docs/getting-started/installation.md +36 -0
- package/{src/docs/_getting-started → docs/src/docs/getting-started}/my-first-component.md +5 -14
- package/docs/src/docs/getting-started/start.md +35 -0
- package/docs/src/docs/getting-started/theming.md +253 -0
- package/{src/docs/_misc → docs/src/docs/misc}/api-configuration.md +10 -12
- package/docs/src/docs/{_misc → misc}/dataProviderKey.md +4 -4
- package/{src/docs/_misc → docs/src/docs/misc}/docs-mock-api.md +12 -13
- package/docs/src/docs/{_misc → misc}/dynamic-path.md +8 -8
- package/docs/src/docs/{_misc → misc}/endpoint.md +8 -8
- package/{src/docs/_misc → docs/src/docs/misc}/html-integration.md +4 -5
- package/docs/src/docs/search/docs-search.json +3729 -2949
- package/docs/src/tsconfig.json +176 -5
- package/index.html +94 -67
- package/package.json +11 -4
- package/public/docs-mock-api-sw.js +58 -223
- package/public/docs-mock-api-sw.js.map +4 -4
- package/public/img/archive/concorde-001-2cv.webp +0 -0
- package/public/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
- package/public/img/archive/concorde-red-arrows-2002.webm +0 -0
- package/public/img/archive/credits.json +28 -0
- package/public/img/concorde/plane_01.jpg +0 -0
- package/public/img/concorde/plane_02.jpg +0 -0
- package/public/img/concorde/plane_03.jpg +0 -0
- package/public/img/concorde/plane_04.jpg +0 -0
- package/public/img/concorde/plane_05.jpg +0 -0
- package/public/img/concorde/plane_06.jpg +0 -0
- package/public/img/concorde/plane_07.jpg +0 -0
- package/public/img/concorde/plane_08.jpg +0 -0
- package/public/img/concorde/plane_09.jpg +0 -0
- package/public/img/concorde/plane_10.jpg +0 -0
- package/public/img/concorde/plane_11.jpg +0 -0
- package/public/img/concorde/plane_12.jpg +0 -0
- package/public/img/concorde/plane_13.jpg +0 -0
- package/public/robots.txt +11 -10
- package/scripts/docs-markdown-vite-plugin.ts +37 -0
- package/scripts/docs-public-url.mjs +50 -0
- package/scripts/docs.htaccess +75 -0
- package/scripts/generate-crawl-docs.mjs +207 -116
- package/scripts/generate-crawl-docs.test.mjs +124 -0
- package/scripts/post-build-docs.js +34 -50
- package/scripts/post-build.mjs +0 -0
- package/src/core/components/functional/date/date.md +91 -231
- package/src/core/components/functional/fetch/fetch.md +66 -83
- package/src/core/components/functional/if/if.md +28 -3
- package/src/core/components/functional/if/if.ts +0 -0
- package/src/core/components/functional/jsonata/jsonata.md +42 -37
- package/src/core/components/functional/list/list.demo.ts +0 -0
- package/src/core/components/functional/list/list.md +99 -43
- package/src/core/components/functional/mix/mix.md +31 -26
- package/src/core/components/functional/queue/queue.demo.ts +10 -7
- package/src/core/components/functional/queue/queue.md +40 -61
- package/src/core/components/functional/router/router.demo.ts +16 -16
- package/src/core/components/functional/router/router.md +64 -65
- package/src/core/components/functional/router/router.ts +0 -0
- package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
- package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
- package/src/core/components/functional/sdui/component-catalog.json +1 -1
- package/src/core/components/functional/sdui/example.json +19 -86
- package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
- package/src/core/components/functional/sdui/sdui.md +187 -358
- package/src/core/components/functional/sdui/types.ts +0 -0
- package/src/core/components/functional/states/states.demo.ts +21 -22
- package/src/core/components/functional/states/states.md +86 -61
- package/src/core/components/functional/states/states.ts +1 -1
- package/src/core/components/functional/submit/submit.md +64 -72
- package/src/core/components/functional/subscriber/subscriber.ts +0 -0
- package/src/core/components/functional/translation/translation.md +38 -0
- package/src/core/components/functional/value/value.md +34 -22
- package/src/core/components/functional/value/value.ts +0 -0
- package/src/core/components/ui/_css/size.ts +0 -0
- package/src/core/components/ui/alert/alert.md +48 -58
- package/src/core/components/ui/badge/badge.md +27 -34
- package/src/core/components/ui/button/button.md +139 -106
- package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
- package/src/core/components/ui/captcha/captcha.md +17 -32
- package/src/core/components/ui/card/card.md +6 -6
- package/src/core/components/ui/divider/divider.md +8 -11
- package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
- package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
- package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
- package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
- package/src/core/components/ui/form/input/input.md +95 -95
- package/src/core/components/ui/form/radio/radio.md +55 -34
- package/src/core/components/ui/form/select/select.md +60 -45
- package/src/core/components/ui/form/switch/switch.md +57 -34
- package/src/core/components/ui/form/textarea/textarea.md +55 -38
- package/src/core/components/ui/group/group.md +35 -33
- package/src/core/components/ui/icon/icon.md +4 -4
- package/src/core/components/ui/image/image.md +41 -107
- package/src/core/components/ui/link/link.md +6 -6
- package/src/core/components/ui/loader/loader.md +30 -55
- package/src/core/components/ui/menu/menu.md +27 -27
- package/src/core/components/ui/modal/modal.md +72 -96
- package/src/core/components/ui/modal/modal.ts +14 -11
- package/src/core/components/ui/pop/pop.md +80 -158
- package/src/core/components/ui/progress/progress.md +2 -2
- package/src/core/components/ui/table/table.md +91 -255
- package/src/core/components/ui/theme/theme.md +11 -36
- package/src/core/components/ui/toast/toast.md +48 -117
- package/src/core/components/ui/tooltip/tooltip.md +27 -62
- package/src/core/mixins/Subscriber.ts +0 -0
- package/src/core/utils/DataBindObserver.ts +0 -0
- package/src/core/utils/LocationHandler.spec.ts +80 -0
- package/src/core/utils/LocationHandler.ts +5 -9
- package/src/core/utils/Objects.ts +0 -0
- package/src/core/utils/route.ts +0 -0
- package/src/docs/code.ts +88 -75
- package/src/docs/components/docs-demo-sources.ts +70 -147
- package/src/docs/components/docs-lit-demo.ts +20 -40
- package/src/docs/components/docs-source-link.ts +0 -82
- package/src/docs/decorators/ancestor-attribute.md +59 -0
- package/src/docs/decorators/auto-subscribe.md +40 -0
- package/src/docs/decorators/bind.md +77 -0
- package/src/docs/decorators/get.md +160 -0
- package/src/docs/decorators/handle.md +119 -0
- package/src/docs/decorators/on-assign.md +63 -0
- package/src/docs/decorators/patch.md +44 -0
- package/src/docs/decorators/post.md +134 -0
- package/src/docs/decorators/publish.md +56 -0
- package/src/docs/decorators/put.md +51 -0
- package/src/docs/decorators/subscribe.md +87 -0
- package/src/docs/decorators/wait-for-ancestors.md +76 -0
- package/src/docs/directives/sub.md +75 -0
- package/src/docs/directives/t.md +73 -0
- package/src/docs/docs-location.spec.ts +46 -0
- package/src/docs/docs-location.ts +123 -32
- package/src/docs/docs.ts +6 -2
- package/src/docs/example/decorators-demo-bind-demos.ts +81 -116
- package/src/docs/example/decorators-demo-geo.ts +30 -19
- package/src/docs/example/decorators-demo-post.ts +88 -186
- package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
- package/src/docs/example/decorators-demo.ts +85 -98
- package/src/docs/example/docs-api-config-demos.ts +19 -20
- package/src/docs/example/docs-boarding-pass-demo.ts +134 -0
- package/src/docs/example/docs-flight-demos.ts +147 -0
- package/src/docs/example/docs-jsonata-demos.ts +52 -52
- package/src/docs/example/docs-list-demos.ts +43 -123
- package/src/docs/example/docs-provider-keys.ts +33 -28
- package/src/docs/example/docs-queue-demos.ts +37 -77
- package/src/docs/example/docs-router-demos.ts +20 -25
- package/src/docs/example/docs-submit-demos.ts +48 -48
- package/src/docs/example/docs-toggle-demos.ts +4 -3
- package/src/docs/example/users.ts +0 -0
- package/src/docs/getting-started/ai-agents.md +76 -0
- package/src/docs/getting-started/components.md +5 -0
- package/src/docs/getting-started/create-a-component.md +136 -0
- package/src/docs/getting-started/dataFlow.md +87 -0
- package/src/docs/getting-started/installation.md +36 -0
- package/src/docs/getting-started/my-first-component.md +227 -0
- package/src/docs/getting-started/start.md +35 -0
- package/src/docs/getting-started/theming.md +253 -0
- package/src/docs/header/header.ts +240 -71
- package/src/docs/home/catalog.ts +44 -0
- package/src/docs/home/home.ts +520 -0
- package/src/docs/home/mach-stage.ts +389 -0
- package/src/docs/layout.ts +12 -11
- package/src/docs/misc/api-configuration.md +79 -0
- package/src/docs/misc/dataProviderKey.md +168 -0
- package/src/docs/misc/docs-mock-api.md +62 -0
- package/src/docs/misc/dynamic-path.md +71 -0
- package/src/docs/misc/endpoint.md +45 -0
- package/src/docs/misc/html-integration.md +14 -0
- package/src/docs/mock-api/api-config-mock.ts +5 -0
- package/src/docs/mock-api/fixtures.ts +0 -278
- package/src/docs/mock-api/flights.ts +89 -0
- package/src/docs/mock-api/router.ts +3 -4
- package/src/docs/mock-api/urls.ts +1 -2
- package/src/docs/navigation/components-index.ts +56 -0
- package/src/docs/navigation/navigation.ts +219 -232
- package/src/docs/navigation/pager.ts +67 -0
- package/src/docs/navigation/toc.ts +101 -0
- package/src/docs/search/docs-search.json +2419 -4374
- package/src/docs/search/markdown-renderer.ts +33 -7
- package/src/docs/search/page.ts +9 -6
- package/src/docs/search/search.ts +154 -122
- package/src/docs/shiki/index.ts +109 -0
- package/src/docs/tailwind/css/base/scrollbar.css +22 -0
- package/src/docs/tailwind/css/base/theme.css +96 -0
- package/src/docs/tailwind/css/base/typography.css +4 -0
- package/src/docs/tailwind/css/docs/boarding-pass.css +65 -0
- package/src/docs/tailwind/css/docs/content.css +32 -0
- package/src/docs/tailwind/css/docs/page.css +10 -0
- package/src/docs/tailwind/css/docs.css +9 -0
- package/src/docs/tailwind/css/home/hero.css +210 -0
- package/src/docs/tailwind/css/home/motion.css +84 -0
- package/src/docs/tailwind/css/home/sections.css +416 -0
- package/src/docs/tailwind/css/tailwind.css +7 -185
- package/src/tsconfig.json +23 -2
- package/src/tsconfig.tsbuildinfo +1 -1
- package/tailwind.config.js +8 -4
- package/vite.config.mts +11 -2
- package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
- package/.github/workflows/ci.yml +0 -21
- package/.github-export-ignore +0 -30
- package/CONTRIBUTING.md +0 -59
- package/DEV.md +0 -54
- package/LICENSE +0 -21
- package/OPEN_SOURCE_CHECKPOINT.md +0 -133
- package/concorde-3d.bundle.js +0 -3960
- package/concorde-3d.es.js +0 -33433
- package/concorde-hugging-face-infer.bundle.js +0 -32
- package/concorde-hugging-face-infer.es.js +0 -2952
- package/concorde-interactive.bundle.js +0 -1157
- package/concorde-interactive.es.js +0 -10734
- package/concorde-shader.bundle.js +0 -116
- package/concorde-shader.es.js +0 -8353
- package/concorde-webgpu.bundle.js +0 -307
- package/concorde-webgpu.es.js +0 -8627
- package/docs/assets/index-D8MVWqY6.js +0 -12251
- package/docs/assets/index-DiD0qYvE.css +0 -1
- package/docs/crawl/core/components/functional/date/date.html +0 -190
- package/docs/crawl/core/components/functional/fetch/fetch.html +0 -109
- package/docs/crawl/core/components/functional/if/if.html +0 -27
- package/docs/crawl/core/components/functional/jsonata/jsonata.html +0 -79
- package/docs/crawl/core/components/functional/list/list.html +0 -70
- package/docs/crawl/core/components/functional/mix/mix.html +0 -45
- package/docs/crawl/core/components/functional/queue/queue.html +0 -96
- package/docs/crawl/core/components/functional/router/router.html +0 -106
- package/docs/crawl/core/components/functional/sdui/sdui.html +0 -269
- package/docs/crawl/core/components/functional/states/states.html +0 -66
- package/docs/crawl/core/components/functional/submit/submit.html +0 -160
- package/docs/crawl/core/components/functional/value/value.html +0 -51
- package/docs/crawl/core/components/ui/alert/alert.html +0 -110
- package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +0 -23
- package/docs/crawl/core/components/ui/badge/badge.html +0 -119
- package/docs/crawl/core/components/ui/button/button.html +0 -149
- package/docs/crawl/core/components/ui/captcha/captcha.html +0 -30
- package/docs/crawl/core/components/ui/card/card.html +0 -99
- package/docs/crawl/core/components/ui/divider/divider.html +0 -58
- package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +0 -73
- package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +0 -135
- package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +0 -79
- package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +0 -62
- package/docs/crawl/core/components/ui/form/input/input.html +0 -109
- package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +0 -38
- package/docs/crawl/core/components/ui/form/radio/radio.html +0 -56
- package/docs/crawl/core/components/ui/form/select/select.html +0 -73
- package/docs/crawl/core/components/ui/form/switch/switch.html +0 -56
- package/docs/crawl/core/components/ui/form/textarea/textarea.html +0 -59
- package/docs/crawl/core/components/ui/group/group.html +0 -82
- package/docs/crawl/core/components/ui/icon/icon.html +0 -133
- package/docs/crawl/core/components/ui/image/image.html +0 -110
- package/docs/crawl/core/components/ui/link/link.html +0 -42
- package/docs/crawl/core/components/ui/loader/loader.html +0 -50
- package/docs/crawl/core/components/ui/modal/modal.html +0 -117
- package/docs/crawl/core/components/ui/pop/pop.html +0 -102
- package/docs/crawl/core/components/ui/progress/progress.html +0 -58
- package/docs/crawl/core/components/ui/table/table.html +0 -413
- package/docs/crawl/core/components/ui/toast/toast.html +0 -122
- package/docs/crawl/core/components/ui/tooltip/tooltip.html +0 -79
- package/docs/crawl/docs/_core-concept/overview.html +0 -66
- package/docs/crawl/docs/_core-concept/subscriber.html +0 -75
- package/docs/crawl/docs/_decorators/ancestor-attribute.html +0 -116
- package/docs/crawl/docs/_decorators/auto-subscribe.html +0 -202
- package/docs/crawl/docs/_decorators/bind.html +0 -141
- package/docs/crawl/docs/_decorators/get.html +0 -149
- package/docs/crawl/docs/_decorators/handle.html +0 -165
- package/docs/crawl/docs/_decorators/on-assign.html +0 -355
- package/docs/crawl/docs/_decorators/patch.html +0 -78
- package/docs/crawl/docs/_decorators/post.html +0 -139
- package/docs/crawl/docs/_decorators/publish.html +0 -61
- package/docs/crawl/docs/_decorators/put.html +0 -78
- package/docs/crawl/docs/_decorators/subscribe.html +0 -109
- package/docs/crawl/docs/_decorators/wait-for-ancestors.html +0 -137
- package/docs/crawl/docs/_directives/sub.html +0 -93
- package/docs/crawl/docs/_getting-started/concorde-manual-install.html +0 -100
- package/docs/crawl/docs/_getting-started/concorde-outside.html +0 -58
- package/docs/crawl/docs/_getting-started/my-first-subscriber.html +0 -110
- package/docs/crawl/docs/_getting-started/pubsub.html +0 -62
- package/docs/crawl/docs/_getting-started/start.html +0 -76
- package/docs/crawl/docs/_getting-started/theming.html +0 -85
- package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +0 -138
- package/docs/crawl/hubs/decorators.html +0 -547
- package/docs/crawl/hubs/form-components.html +0 -359
- package/docs/crawl/hubs/remote-data.html +0 -452
- package/docs/crawl/index.html +0 -101
- package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
- package/docs/src/docs/_core-concept/overview.md +0 -57
- package/docs/src/docs/_core-concept/subscriber.md +0 -75
- package/docs/src/docs/_decorators/ancestor-attribute.md +0 -127
- package/docs/src/docs/_decorators/auto-subscribe.md +0 -202
- package/docs/src/docs/_decorators/bind.md +0 -167
- package/docs/src/docs/_decorators/get.md +0 -162
- package/docs/src/docs/_decorators/handle.md +0 -175
- package/docs/src/docs/_decorators/on-assign.md +0 -390
- package/docs/src/docs/_decorators/patch.md +0 -70
- package/docs/src/docs/_decorators/post.md +0 -146
- package/docs/src/docs/_decorators/publish.md +0 -55
- package/docs/src/docs/_decorators/put.md +0 -70
- package/docs/src/docs/_decorators/subscribe.md +0 -100
- package/docs/src/docs/_decorators/wait-for-ancestors.md +0 -163
- package/docs/src/docs/_directives/sub.md +0 -91
- package/docs/src/docs/_getting-started/concorde-manual-install.md +0 -133
- package/docs/src/docs/_getting-started/concorde-outside.md +0 -33
- package/docs/src/docs/_getting-started/my-first-subscriber.md +0 -120
- package/docs/src/docs/_getting-started/pubsub.md +0 -37
- package/docs/src/docs/_getting-started/start.md +0 -47
- package/docs/src/docs/_getting-started/theming.md +0 -91
- package/docs/src/docs/_misc/formelement-subscriber-removal.md +0 -115
- package/docs/src/tsconfig.declarations.json +0 -22
- package/docs/src/tsconfig.emit.json +0 -23
- package/gitlab/job_github_mirror.sh +0 -39
- package/scripts/github-export.mjs +0 -150
- package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
- package/src/css.d.ts +0 -19
- package/src/docs/_core-concept/overview.md +0 -57
- package/src/docs/_core-concept/subscriber.md +0 -75
- package/src/docs/_decorators/ancestor-attribute.md +0 -128
- package/src/docs/_decorators/auto-subscribe.md +0 -202
- package/src/docs/_decorators/bind.md +0 -167
- package/src/docs/_decorators/get.md +0 -162
- package/src/docs/_decorators/handle.md +0 -175
- package/src/docs/_decorators/on-assign.md +0 -390
- package/src/docs/_decorators/patch.md +0 -70
- package/src/docs/_decorators/post.md +0 -146
- package/src/docs/_decorators/publish.md +0 -55
- package/src/docs/_decorators/put.md +0 -70
- package/src/docs/_decorators/subscribe.md +0 -100
- package/src/docs/_decorators/wait-for-ancestors.md +0 -163
- package/src/docs/_directives/sub.md +0 -91
- package/src/docs/_getting-started/concorde-manual-install.md +0 -133
- package/src/docs/_getting-started/concorde-outside.md +0 -33
- package/src/docs/_getting-started/my-first-subscriber.md +0 -120
- package/src/docs/_getting-started/pubsub.md +0 -37
- package/src/docs/_misc/formelement-subscriber-removal.md +0 -115
- package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
- package/src/docs/example/docs-joke-demos.ts +0 -297
- package/src/docs/prism/index.ts +0 -6
- package/src/docs/prism/prism.css +0 -158
- package/src/docs/prism/prism.js +0 -1022
- package/src/tsconfig.declarations.json +0 -22
- package/src/tsconfig.emit.json +0 -23
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# t()
|
|
2
|
+
|
|
3
|
+
Lit directive that renders a translated label by key. Keys are batched into one GET to the endpoint set by the nearest `wordingProvider` ancestor attribute, and results are cached in `localStorage`.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
<sonic-code language="typescript">
|
|
8
|
+
<template>
|
|
9
|
+
import { t } from "@supersoniks/concorde/directives/Wording";
|
|
10
|
+
</template>
|
|
11
|
+
</sonic-code>
|
|
12
|
+
|
|
13
|
+
`wording` and `w` are aliases of `t`. In plain HTML, use the [`sonic-t`](/core/components/functional/translation) element.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
Set `serviceURL` and `wordingProvider` on the host component or one of its ancestors, then call `t(key)` in a template. Attributes on elements **inside** the component's own template are not read. Click the button to bump the version and reload the labels.
|
|
18
|
+
|
|
19
|
+
<docs-lit-demo for="docs-api-config-wording-demo"></docs-lit-demo>
|
|
20
|
+
|
|
21
|
+
## Endpoint contract
|
|
22
|
+
|
|
23
|
+
All keys requested in the same tick are sent in one request, appended to `wordingProvider` as `labels[]`:
|
|
24
|
+
|
|
25
|
+
<sonic-code language="shell">
|
|
26
|
+
<template>
|
|
27
|
+
GET {serviceURL}/wording/labels?lang=fr&labels[]=greeting&labels[]=farewell
|
|
28
|
+
</template>
|
|
29
|
+
</sonic-code>
|
|
30
|
+
|
|
31
|
+
The response is a flat map of key to label:
|
|
32
|
+
|
|
33
|
+
<sonic-code language="json">
|
|
34
|
+
<template>
|
|
35
|
+
{ "greeting": "Bonjour", "farewell": "Au revoir" }
|
|
36
|
+
</template>
|
|
37
|
+
</sonic-code>
|
|
38
|
+
|
|
39
|
+
Until the label arrives, `t()` renders an empty string.
|
|
40
|
+
|
|
41
|
+
## HTML labels
|
|
42
|
+
|
|
43
|
+
`t()` escapes the label. Use `unsafeWording(key)` for labels that contain trusted HTML.
|
|
44
|
+
|
|
45
|
+
<sonic-code language="typescript">
|
|
46
|
+
<template>
|
|
47
|
+
import { unsafeWording } from "@supersoniks/concorde/directives/Wording";
|
|
48
|
+
|
|
49
|
+
html`<p>${unsafeWording("terms.notice")}</p>`;
|
|
50
|
+
</template>
|
|
51
|
+
</sonic-code>
|
|
52
|
+
|
|
53
|
+
## Reloading labels
|
|
54
|
+
|
|
55
|
+
Labels are fetched again when:
|
|
56
|
+
|
|
57
|
+
- the `lang` attribute of `<html>` changes
|
|
58
|
+
- the number stored at `wordingVersionProvider` changes — bump it after publishing new labels to invalidate the `localStorage` cache
|
|
59
|
+
|
|
60
|
+
## API reference
|
|
61
|
+
|
|
62
|
+
| Function | Description |
|
|
63
|
+
|----------|-------------|
|
|
64
|
+
| `t(key)` · `wording(key)` · `w(key)` | Renders the escaped label for `key` |
|
|
65
|
+
| `unsafeWording(key)` | Renders the label as HTML |
|
|
66
|
+
| `isWordingReady(key)` | `true` once the label for `key` is loaded |
|
|
67
|
+
|
|
68
|
+
| Ancestor attribute | Description |
|
|
69
|
+
|--------------------|-------------|
|
|
70
|
+
| `wordingProvider` | Endpoint path and query, relative to `serviceURL` |
|
|
71
|
+
| `wordingVersionProvider` | DataProvider path holding a version number |
|
|
72
|
+
|
|
73
|
+
Other ancestor attributes (`serviceURL`, `token`, …) apply as for any request: see [API configuration](/docs/misc/api-configuration).
|
|
@@ -1,26 +1,27 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
|
-
<html lang="
|
|
2
|
+
<html lang="en" data-doc-url="https://concorde.supersoniks.org/docs/getting-started/ai-agents" data-doc-id="docs/getting-started/ai-agents">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>AI agents (skills & AGENTS.md) — Concorde</title>
|
|
6
|
+
<title>AI agents (skills & AGENTS.md) — Concorde by Supersoniks</title>
|
|
7
7
|
<meta name="description" content="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, migratio">
|
|
8
|
-
<meta name="keywords" content="Concorde, supersoniks, docs/
|
|
8
|
+
<meta name="keywords" content="Concorde, supersoniks, docs/getting-started/ai-agents, ai-agents, AI agents (skills & AGENTS.md), guide, AGENTS.md, yarn ai:sync, ai-init, yarn add @supersoniks/concorde, |
|
|
9
9
|
| Concorde repo (contributors) | , --skip-agents, --merge-agents, --force-agents">
|
|
10
|
-
<meta name="concorde-doc-id" content="docs/
|
|
11
|
-
<link rel="canonical" href="https://concorde.supersoniks.org/
|
|
10
|
+
<meta name="concorde-doc-id" content="docs/getting-started/ai-agents">
|
|
11
|
+
<link rel="canonical" href="https://concorde.supersoniks.org/docs/getting-started/ai-agents">
|
|
12
|
+
<link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/docs/getting-started/ai-agents.md">
|
|
12
13
|
</head>
|
|
13
14
|
<body>
|
|
14
15
|
<header>
|
|
15
|
-
<p><a href="
|
|
16
|
+
<p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/docs/getting-started/ai-agents">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
|
|
16
17
|
</header>
|
|
17
18
|
<main>
|
|
18
19
|
<article>
|
|
19
|
-
<p class="doc-lead" id="doc-summary"><strong>Concorde guide — AI agents (skills & AGENTS.md)</strong>. 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, migratio <span>Doc ID: <code>docs/
|
|
20
|
-
| Concorde repo (contributors) | , --skip-agents, --merge-agents, --force-agents. URL: <a href="https://concorde.supersoniks.org/
|
|
20
|
+
<p class="doc-lead" id="doc-summary"><strong>Concorde guide — AI agents (skills & AGENTS.md)</strong>. 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, migratio <span>Doc ID: <code>docs/getting-started/ai-agents</code>. Keywords: Concorde, supersoniks, docs/getting-started/ai-agents, ai-agents, AI agents (skills & AGENTS.md), guide, AGENTS.md, yarn ai:sync, ai-init, yarn add @supersoniks/concorde, |
|
|
21
|
+
| Concorde repo (contributors) | , --skip-agents, --merge-agents, --force-agents. URL: <a href="https://concorde.supersoniks.org/docs/getting-started/ai-agents">https://concorde.supersoniks.org/docs/getting-started/ai-agents</a>.</span></p>
|
|
21
22
|
<h1 id="ai-agents-skills--agentsmd">AI agents (skills & AGENTS.md)</h1>
|
|
22
23
|
<p>Concorde ships <strong>skills</strong>, <strong>rules</strong>, and a root <strong><code>AGENTS.md</code></strong> so Cursor, JetBrains AI Assistant, and other coding agents follow framework patterns (DataProvider, decorators, short imports, scope, theme, migrations).</p>
|
|
23
|
-
<p>On a <a href="
|
|
24
|
+
<p>On a <a href="/docs/getting-started/installation">starter</a> project, run <code>yarn ai:sync</code> after install. On an existing project, install Concorde first, then use <code>ai-init</code> below.</p>
|
|
24
25
|
<h2 id="dedicated-commands">Dedicated commands</h2>
|
|
25
26
|
<table>
|
|
26
27
|
<thead>
|
|
@@ -159,8 +160,8 @@ node node_modules/@supersoniks/concorde/scripts/ai-init.mjs
|
|
|
159
160
|
</tbody></table>
|
|
160
161
|
<h2 id="workflow">Workflow</h2>
|
|
161
162
|
<ol>
|
|
162
|
-
<li><strong>Starter project:</strong> <a href="
|
|
163
|
-
<li><strong>Existing
|
|
163
|
+
<li><strong>Starter project:</strong> <a href="/docs/getting-started/installation">Installation</a> — <code>yarn ai:sync</code> is wired in the kit.</li>
|
|
164
|
+
<li><strong>Existing project:</strong> run <strong><code>ai-init</code></strong> after <code>yarn add @supersoniks/concorde</code>.</li>
|
|
164
165
|
<li>Commit <code>.cursor/</code> and <code>.aiassistant/</code> (and <code>AGENTS.md</code> only if you opted in / it was created) if your team shares agent settings.</li>
|
|
165
166
|
<li>Re-run the same command when you bump <code>@supersoniks/concorde</code> to refresh skills from <code>node_modules/@supersoniks/concorde/ai/</code>.</li>
|
|
166
167
|
<li>In Cursor, skills under <code>.cursor/skills/</code> are picked up automatically; mention a skill in chat for focused tasks (e.g. migration → <code>concorde-get-set-dp</code>).</li>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
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
4
|
|
|
5
|
-
On a [starter](
|
|
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
6
|
|
|
7
7
|
## Dedicated commands
|
|
8
8
|
|
|
@@ -67,8 +67,8 @@ Everything **after** `<!-- concorde-ai -->` is replaced on each `ai-init` run (i
|
|
|
67
67
|
|
|
68
68
|
## Workflow
|
|
69
69
|
|
|
70
|
-
1. **Starter project:** [Installation](
|
|
71
|
-
2. **Existing
|
|
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
72
|
3. Commit `.cursor/` and `.aiassistant/` (and `AGENTS.md` only if you opted in / it was created) if your team shares agent settings.
|
|
73
73
|
4. Re-run the same command when you bump `@supersoniks/concorde` to refresh skills from `node_modules/@supersoniks/concorde/ai/`.
|
|
74
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`).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" data-doc-url="https://concorde.supersoniks.org/docs/getting-started/components" data-doc-id="docs/getting-started/components">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Components — Concorde by Supersoniks</title>
|
|
7
|
+
<meta name="description" content="Every Concorde web component, grouped like the sidebar. Pick one to see its live demos, attributes and import path.">
|
|
8
|
+
<meta name="keywords" content="Concorde, supersoniks, docs/getting-started/components, components, Components, guide">
|
|
9
|
+
<meta name="concorde-doc-id" content="docs/getting-started/components">
|
|
10
|
+
<link rel="canonical" href="https://concorde.supersoniks.org/docs/getting-started/components">
|
|
11
|
+
<link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/docs/getting-started/components.md">
|
|
12
|
+
</head>
|
|
13
|
+
<body>
|
|
14
|
+
<header>
|
|
15
|
+
<p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/docs/getting-started/components">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
|
|
16
|
+
</header>
|
|
17
|
+
<main>
|
|
18
|
+
<article>
|
|
19
|
+
<p class="doc-lead" id="doc-summary"><strong>Concorde guide — Components</strong>. Every Concorde web component, grouped like the sidebar. Pick one to see its live demos, attributes and import path. <span>Doc ID: <code>docs/getting-started/components</code>. Keywords: Concorde, supersoniks, docs/getting-started/components, components, Components, guide. URL: <a href="https://concorde.supersoniks.org/docs/getting-started/components">https://concorde.supersoniks.org/docs/getting-started/components</a>.</span></p>
|
|
20
|
+
<h1 id="components">Components</h1>
|
|
21
|
+
<p>Every Concorde web component, grouped like the sidebar. Pick one to see its live demos, attributes and import path.</p>
|
|
22
|
+
<p><docs-components-index></docs-components-index></p>
|
|
23
|
+
|
|
24
|
+
</article>
|
|
25
|
+
</main>
|
|
26
|
+
</body>
|
|
27
|
+
</html>
|
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
|
-
<html lang="
|
|
2
|
+
<html lang="en" data-doc-url="https://concorde.supersoniks.org/docs/getting-started/create-a-component" data-doc-id="docs/getting-started/create-a-component">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Creating components — Concorde</title>
|
|
6
|
+
<title>Creating components — Concorde by Supersoniks</title>
|
|
7
7
|
<meta name="description" content="> New app components: start with My first component and Data flow. The Subscriber mixin below is legacy.">
|
|
8
|
-
<meta name="keywords" content="Concorde, supersoniks, docs/
|
|
9
|
-
<meta name="concorde-doc-id" content="docs/
|
|
10
|
-
<link rel="canonical" href="https://concorde.supersoniks.org/
|
|
8
|
+
<meta name="keywords" content="Concorde, supersoniks, docs/getting-started/create-a-component, create-a-component, Creating components, guide, Subscriber, core, /components/destination/, /components/atoms, example.ts, ${this.text}">
|
|
9
|
+
<meta name="concorde-doc-id" content="docs/getting-started/create-a-component">
|
|
10
|
+
<link rel="canonical" href="https://concorde.supersoniks.org/docs/getting-started/create-a-component">
|
|
11
|
+
<link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/docs/getting-started/create-a-component.md">
|
|
11
12
|
</head>
|
|
12
13
|
<body>
|
|
13
14
|
<header>
|
|
14
|
-
<p><a href="
|
|
15
|
+
<p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/docs/getting-started/create-a-component">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
|
|
15
16
|
</header>
|
|
16
17
|
<main>
|
|
17
18
|
<article>
|
|
18
|
-
<p class="doc-lead" id="doc-summary"><strong>Concorde guide — Creating components</strong>. > New app components: start with My first component and Data flow. The Subscriber mixin below is legacy. <span>Doc ID: <code>docs/
|
|
19
|
+
<p class="doc-lead" id="doc-summary"><strong>Concorde guide — Creating components</strong>. > New app components: start with My first component and Data flow. The Subscriber mixin below is legacy. <span>Doc ID: <code>docs/getting-started/create-a-component</code>. Keywords: Concorde, supersoniks, docs/getting-started/create-a-component, create-a-component, Creating components, guide, Subscriber, core, /components/destination/, /components/atoms, example.ts, ${this.text}. URL: <a href="https://concorde.supersoniks.org/docs/getting-started/create-a-component">https://concorde.supersoniks.org/docs/getting-started/create-a-component</a>.</span></p>
|
|
19
20
|
<h1 id="creating-components">Creating components</h1>
|
|
20
21
|
<blockquote>
|
|
21
|
-
<p><strong>New app components:</strong> start with <a href="
|
|
22
|
+
<p><strong>New app components:</strong> start with <a href="/docs/getting-started/my-first-component">My first component</a> and <a href="/docs/getting-started/dataFlow">Data flow</a>. The <code>Subscriber</code> mixin below is legacy.</p>
|
|
22
23
|
</blockquote>
|
|
23
24
|
<h2 id="where-to-put-it">Where to put it?</h2>
|
|
24
25
|
<p>In this document, we consider the src directory of the project as the root.<br>
|
|
@@ -63,11 +64,7 @@ export class SonicComponent extends LitElement {
|
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
</code></pre>
|
|
66
|
-
<p>Regarding <
|
|
67
|
-
<ul>
|
|
68
|
-
<li><a href="../_core-concept/subscriber.html#subscriber">🔔 Subscriber</a></li>
|
|
69
|
-
<li><a href="./pubsub.html#pubsub">🥨 Sharing Data</a></li>
|
|
70
|
-
</ul>
|
|
67
|
+
<p>Regarding data sharing, see <a href="/docs/getting-started/dataFlow">Data flow</a>.</p>
|
|
71
68
|
<h3 id="naming-the-component">Naming the Component</h3>
|
|
72
69
|
<p>The class name is not necessarily important. However, it is important to <strong>give it a component name prefixed with "sonic"</strong> (or a prefix of your own) using the dedicated metadata already present in the copied document. For example, a button component would be named as follows:</p>
|
|
73
70
|
<pre><code class="language-typescript">@customElement("sonic-button")
|
|
@@ -78,7 +75,7 @@ For example, for a "title" component in the "event" destinat
|
|
|
78
75
|
</code></pre>
|
|
79
76
|
<h2 id="modifying-it">Modifying It</h2>
|
|
80
77
|
<h4 id="creating-reactive-properties-and-modifying-the-render-function">Creating Reactive Properties and Modifying the Render Function</h4>
|
|
81
|
-
<p>To do this, study the functioning of <a href="https://lit.dev">https://lit.dev</a> and also refer to <a href="
|
|
78
|
+
<p>To do this, study the functioning of <a href="https://lit.dev">https://lit.dev</a> and also refer to <a href="/docs/getting-started/dataFlow">Data flow</a>.</p>
|
|
82
79
|
<h4 id="html-structure-of-a-component">HTML Structure of a Component</h4>
|
|
83
80
|
<p>The HTML structure of a component should remain as simple as possible.</p>
|
|
84
81
|
<p>Ideally, there should be only one additional level of elements in addition to slots.</p>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Creating components
|
|
2
2
|
|
|
3
|
-
> **New app components:** start with [My first component](
|
|
3
|
+
> **New app components:** start with [My first component](/docs/getting-started/my-first-component) and [Data flow](/docs/getting-started/dataFlow). The `Subscriber` mixin below is legacy.
|
|
4
4
|
|
|
5
5
|
## Where to put it?
|
|
6
6
|
|
|
@@ -63,10 +63,7 @@ export class SonicComponent extends LitElement {
|
|
|
63
63
|
</template>
|
|
64
64
|
</sonic-code>
|
|
65
65
|
|
|
66
|
-
Regarding
|
|
67
|
-
|
|
68
|
-
- [🔔 Subscriber](#docs/_core-concept/subscriber.md/subscriber)
|
|
69
|
-
- [🥨 Sharing Data](#docs/_getting-started/pubsub.md/pubsub)
|
|
66
|
+
Regarding data sharing, see [Data flow](/docs/getting-started/dataFlow).
|
|
70
67
|
|
|
71
68
|
### Naming the Component
|
|
72
69
|
|
|
@@ -94,7 +91,7 @@ For example, for a "title" component in the "event" destination, the name would
|
|
|
94
91
|
|
|
95
92
|
#### Creating Reactive Properties and Modifying the Render Function
|
|
96
93
|
|
|
97
|
-
To do this, study the functioning of https://lit.dev and also refer to [
|
|
94
|
+
To do this, study the functioning of https://lit.dev and also refer to [Data flow](/docs/getting-started/dataFlow).
|
|
98
95
|
|
|
99
96
|
#### HTML Structure of a Component
|
|
100
97
|
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
|
-
<html lang="
|
|
2
|
+
<html lang="en" data-doc-url="https://concorde.supersoniks.org/docs/getting-started/dataFlow" data-doc-id="docs/getting-started/dataFlow">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>Data flow — Concorde</title>
|
|
7
|
-
<meta name="description" content="Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a DataProvider store
|
|
8
|
-
<meta name="keywords" content="Concorde, supersoniks, docs/
|
|
9
|
-
<meta name="concorde-doc-id" content="docs/
|
|
10
|
-
<link rel="canonical" href="https://concorde.supersoniks.org/
|
|
6
|
+
<title>Data flow — Concorde by Supersoniks</title>
|
|
7
|
+
<meta name="description" content="Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a DataProvider store.">
|
|
8
|
+
<meta name="keywords" content="Concorde, supersoniks, docs/getting-started/dataFlow, dataFlow, Data flow, guide, DataProvider, get, set, dp, DataProviderKey, sub(key), @subscribe, @state, @ancestorAttribute">
|
|
9
|
+
<meta name="concorde-doc-id" content="docs/getting-started/dataFlow">
|
|
10
|
+
<link rel="canonical" href="https://concorde.supersoniks.org/docs/getting-started/dataFlow">
|
|
11
|
+
<link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/docs/getting-started/dataFlow.md">
|
|
11
12
|
</head>
|
|
12
13
|
<body>
|
|
13
14
|
<header>
|
|
14
|
-
<p><a href="
|
|
15
|
+
<p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/docs/getting-started/dataFlow">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
|
|
15
16
|
</header>
|
|
16
17
|
<main>
|
|
17
18
|
<article>
|
|
18
|
-
<p class="doc-lead" id="doc-summary"><strong>Concorde
|
|
19
|
+
<p class="doc-lead" id="doc-summary"><strong>Concorde guide — Data flow</strong>. Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a DataProvider store. <span>Doc ID: <code>docs/getting-started/dataFlow</code>. Keywords: Concorde, supersoniks, docs/getting-started/dataFlow, dataFlow, Data flow, guide, DataProvider, get, set, dp, DataProviderKey, sub(key), @subscribe, @state, @ancestorAttribute. URL: <a href="https://concorde.supersoniks.org/docs/getting-started/dataFlow">https://concorde.supersoniks.org/docs/getting-started/dataFlow</a>.</span></p>
|
|
19
20
|
<h1 id="data-flow">Data flow</h1>
|
|
20
|
-
<p>Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a <strong>DataProvider</strong> store
|
|
21
|
+
<p>Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a <strong>DataProvider</strong> store.</p>
|
|
21
22
|
<h2 id="quick-map">Quick map</h2>
|
|
22
23
|
<table>
|
|
23
24
|
<thead>
|
|
@@ -68,11 +69,11 @@
|
|
|
68
69
|
</tr>
|
|
69
70
|
<tr>
|
|
70
71
|
<td>Derived / aggregate (JSONata)</td>
|
|
71
|
-
<td><code>derive()</code> or <code>sonic-jsonata</code> — <a href="
|
|
72
|
+
<td><code>derive()</code> or <code>sonic-jsonata</code> — <a href="/core/components/functional/jsonata">Jsonata</a></td>
|
|
72
73
|
</tr>
|
|
73
74
|
<tr>
|
|
74
75
|
<td>Offline doc demos</td>
|
|
75
|
-
<td><code>serviceURL="/docs-mock-api"</code> — <a href="
|
|
76
|
+
<td><code>serviceURL="/docs-mock-api"</code> — <a href="/docs/misc/docs-mock-api">Local API demos</a></td>
|
|
76
77
|
</tr>
|
|
77
78
|
</tbody></table>
|
|
78
79
|
<p>Skill: <code>concorde-get-set-dp</code> in the package <code>ai/</code> folder.</p>
|
|
@@ -86,8 +87,8 @@ set(cartKey, { items: [] });
|
|
|
86
87
|
dp(cartKey.items).set(["a", "b"]);
|
|
87
88
|
get(cartKey);
|
|
88
89
|
</code></pre>
|
|
89
|
-
<p>Dynamic paths (<code>users.${userId}</code>) → decorators or <code>sub()</code> — not <code>get("users.${id}")</code> in imperative code. Resolution rules: <a href="
|
|
90
|
-
<p><a href="
|
|
90
|
+
<p>Dynamic paths (<code>users.${userId}</code>) → decorators or <code>sub()</code> — not <code>get("users.${id}")</code> in imperative code. Resolution rules: <a href="/docs/misc/dynamic-path">Dynamic path placeholders</a>.</p>
|
|
91
|
+
<p><a href="/docs/misc/dataProviderKey">DataProviderKey</a></p>
|
|
91
92
|
<h2 id="decorators">Decorators</h2>
|
|
92
93
|
<table>
|
|
93
94
|
<thead>
|
|
@@ -98,7 +99,7 @@ get(cartKey);
|
|
|
98
99
|
</thead>
|
|
99
100
|
<tbody><tr>
|
|
100
101
|
<td><code>@subscribe</code></td>
|
|
101
|
-
<td>Read-only property from store — <a href="
|
|
102
|
+
<td>Read-only property from store — <a href="/docs/getting-started/my-first-component">data configuration</a> (type + key + scope)</td>
|
|
102
103
|
</tr>
|
|
103
104
|
<tr>
|
|
104
105
|
<td><code>@publish</code></td>
|
|
@@ -125,14 +126,14 @@ get(cartKey);
|
|
|
125
126
|
<td>HTTP PUT / PATCH into <code>ApiResult&lt;T&gt;</code></td>
|
|
126
127
|
</tr>
|
|
127
128
|
</tbody></table>
|
|
128
|
-
<p>Walkthrough: <a href="
|
|
129
|
+
<p>Walkthrough: <a href="/docs/getting-started/my-first-component">My first component</a></p>
|
|
129
130
|
<h2 id="http-and-lists">HTTP and lists</h2>
|
|
130
131
|
<ul>
|
|
131
|
-
<li><a href="
|
|
132
|
-
<li><a href="
|
|
133
|
-
<li><a href="
|
|
134
|
-
<li><a href="
|
|
135
|
-
<li><a href="
|
|
132
|
+
<li><a href="/docs/decorators/get">@get</a> — single GET on a component</li>
|
|
133
|
+
<li><a href="/docs/decorators/post">@post</a> — POST with body read from a <code>DataProviderKey</code></li>
|
|
134
|
+
<li><a href="/docs/decorators/put">@put</a> · <a href="/docs/decorators/patch">@patch</a> — PUT / PATCH (same options as <code>@post</code>)</li>
|
|
135
|
+
<li><a href="/core/components/functional/list">List</a> — <code>fetch</code> + <code>key="data"</code> + <code>/docs-mock-api/api/users</code></li>
|
|
136
|
+
<li><a href="/core/components/functional/queue">Queue</a> — lazy <code>offset=$offset&per_page=$limit</code> + optional <code>dataFilterProvider</code> (form → query)</li>
|
|
136
137
|
</ul>
|
|
137
138
|
<h2 id="starter-kit">Starter kit</h2>
|
|
138
139
|
<pre><code class="language-bash">npx @supersoniks/create-concorde-ts-starter my-app
|
|
@@ -142,8 +143,8 @@ get(cartKey);
|
|
|
142
143
|
<p>Use when you need <strong>client-side aggregations</strong> (groupby, top N, chart shapes) from existing DataProviders — without inline app JS in SDUI.</p>
|
|
143
144
|
<ul>
|
|
144
145
|
<li>Primitive: <code>derive({ inputs, compute, output, variables? })</code> from <code>@supersoniks/concorde/utils</code> (read-only output, debounce, generation, cycle detection, <code>{output}/_state_</code>).</li>
|
|
145
|
-
<li>SDUI adapter: <a href="
|
|
146
|
-
<li>vs <a href="
|
|
146
|
+
<li>SDUI adapter: <a href="/core/components/functional/jsonata"><code>sonic-jsonata</code></a> (<code>inputProvider</code> → <code>expression</code> → <code>outputProvider</code>, optional <code>formDataProvider</code>).</li>
|
|
147
|
+
<li>vs <a href="/core/components/functional/mix"><code>sonic-mix</code></a>: mix composes bidirectionally; jsonata <strong>computes</strong> unidirectionally.</li>
|
|
147
148
|
</ul>
|
|
148
149
|
<h2 id="legacy-integration">Legacy integration</h2>
|
|
149
150
|
<table>
|
|
@@ -154,20 +155,16 @@ get(cartKey);
|
|
|
154
155
|
</tr>
|
|
155
156
|
</thead>
|
|
156
157
|
<tbody><tr>
|
|
157
|
-
<td><code>Subscriber</code> / <code>Fetcher</code> mixins on app code</td>
|
|
158
|
-
<td><a href="./subscriber.html#subscriber">Legacy: Subscriber mixin</a>, <a href="../_getting-started/my-first-subscriber.html#my-first-subscriber">Legacy: My first subscriber</a></td>
|
|
159
|
-
</tr>
|
|
160
|
-
<tr>
|
|
161
158
|
<td><code>data-bind</code> HTML (plain HTML hosts)</td>
|
|
162
|
-
<td><a href="
|
|
159
|
+
<td><a href="/docs/misc/html-integration">HTML integration</a> — doc demos use Lit in <code>src/docs/example/</code></td>
|
|
163
160
|
</tr>
|
|
164
161
|
<tr>
|
|
165
162
|
<td><code>@onAssign</code></td>
|
|
166
|
-
<td><a href="
|
|
163
|
+
<td><a href="/docs/decorators/on-assign">@onAssign</a> (prefer <code>@handle</code>)</td>
|
|
167
164
|
</tr>
|
|
168
165
|
<tr>
|
|
169
166
|
<td><code>sonic-fetch</code> alone</td>
|
|
170
|
-
<td><a href="
|
|
167
|
+
<td><a href="/core/components/functional/fetch">Fetch</a></td>
|
|
171
168
|
</tr>
|
|
172
169
|
</tbody></table>
|
|
173
170
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Data flow
|
|
2
2
|
|
|
3
|
-
Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a **DataProvider** store
|
|
3
|
+
Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, data lives in a **DataProvider** store.
|
|
4
4
|
|
|
5
5
|
## Quick map
|
|
6
6
|
|
|
@@ -16,8 +16,8 @@ Recommended patterns for new Concorde apps (Lit + TypeScript). Under the hood, d
|
|
|
16
16
|
| HTTP POST (body from store) | `@post` + `Endpoint` + body `DataProviderKey` |
|
|
17
17
|
| HTTP PUT / PATCH (body from store) | `@put` / `@patch` — same model as `@post` |
|
|
18
18
|
| Forms | `formDataProvider` + `name` on fields (no Subscriber on form elements) |
|
|
19
|
-
| Derived / aggregate (JSONata) | `derive()` or `sonic-jsonata` — [Jsonata](
|
|
20
|
-
| Offline doc demos | `serviceURL="/docs-mock-api"` — [Local API demos](
|
|
19
|
+
| Derived / aggregate (JSONata) | `derive()` or `sonic-jsonata` — [Jsonata](/core/components/functional/jsonata) |
|
|
20
|
+
| Offline doc demos | `serviceURL="/docs-mock-api"` — [Local API demos](/docs/misc/docs-mock-api) |
|
|
21
21
|
|
|
22
22
|
Skill: `concorde-get-set-dp` in the package `ai/` folder.
|
|
23
23
|
|
|
@@ -36,15 +36,15 @@ get(cartKey);
|
|
|
36
36
|
</template>
|
|
37
37
|
</sonic-code>
|
|
38
38
|
|
|
39
|
-
Dynamic paths (`users.${userId}`) → decorators or `sub()` — not `get("users.${id}")` in imperative code. Resolution rules: [Dynamic path placeholders](
|
|
39
|
+
Dynamic paths (`users.${userId}`) → decorators or `sub()` — not `get("users.${id}")` in imperative code. Resolution rules: [Dynamic path placeholders](/docs/misc/dynamic-path).
|
|
40
40
|
|
|
41
|
-
[DataProviderKey](
|
|
41
|
+
[DataProviderKey](/docs/misc/dataProviderKey)
|
|
42
42
|
|
|
43
43
|
## Decorators
|
|
44
44
|
|
|
45
45
|
| Decorator | Role |
|
|
46
46
|
|-----------|------|
|
|
47
|
-
| `@subscribe` | Read-only property from store — [data configuration](
|
|
47
|
+
| `@subscribe` | Read-only property from store — [data configuration](/docs/getting-started/my-first-component) (type + key + scope) |
|
|
48
48
|
| `@publish` | Push property writes to store |
|
|
49
49
|
| `@handle` | Method called on assignment |
|
|
50
50
|
| `@ancestorAttribute` | Copy ancestor HTML attribute onto property |
|
|
@@ -52,15 +52,15 @@ Dynamic paths (`users.${userId}`) → decorators or `sub()` — not `get("users.
|
|
|
52
52
|
| `@post` | HTTP POST into `ApiResult<T>` (body from a publisher) |
|
|
53
53
|
| `@put` / `@patch` | HTTP PUT / PATCH into `ApiResult<T>` |
|
|
54
54
|
|
|
55
|
-
Walkthrough: [My first component](
|
|
55
|
+
Walkthrough: [My first component](/docs/getting-started/my-first-component)
|
|
56
56
|
|
|
57
57
|
## HTTP and lists
|
|
58
58
|
|
|
59
|
-
- [@get](
|
|
60
|
-
- [@post](
|
|
61
|
-
- [@put](
|
|
62
|
-
- [List](
|
|
63
|
-
- [Queue](
|
|
59
|
+
- [@get](/docs/decorators/get) — single GET on a component
|
|
60
|
+
- [@post](/docs/decorators/post) — POST with body read from a `DataProviderKey`
|
|
61
|
+
- [@put](/docs/decorators/put) · [@patch](/docs/decorators/patch) — PUT / PATCH (same options as `@post`)
|
|
62
|
+
- [List](/core/components/functional/list) — `fetch` + `key="data"` + `/docs-mock-api/api/users`
|
|
63
|
+
- [Queue](/core/components/functional/queue) — lazy `offset=$offset&per_page=$limit` + optional `dataFilterProvider` (form → query)
|
|
64
64
|
|
|
65
65
|
## Starter kit
|
|
66
66
|
|
|
@@ -75,14 +75,13 @@ Interactive routes mirror these patterns (`/concepts/*`, `/demo/*`).
|
|
|
75
75
|
Use when you need **client-side aggregations** (groupby, top N, chart shapes) from existing DataProviders — without inline app JS in SDUI.
|
|
76
76
|
|
|
77
77
|
- Primitive: `derive({ inputs, compute, output, variables? })` from `@supersoniks/concorde/utils` (read-only output, debounce, generation, cycle detection, `{output}/_state_`).
|
|
78
|
-
- SDUI adapter: [`sonic-jsonata`](
|
|
79
|
-
- vs [`sonic-mix`](
|
|
78
|
+
- SDUI adapter: [`sonic-jsonata`](/core/components/functional/jsonata) (`inputProvider` → `expression` → `outputProvider`, optional `formDataProvider`).
|
|
79
|
+
- vs [`sonic-mix`](/core/components/functional/mix): mix composes bidirectionally; jsonata **computes** unidirectionally.
|
|
80
80
|
|
|
81
81
|
## Legacy integration
|
|
82
82
|
|
|
83
83
|
| Topic | Page |
|
|
84
84
|
|-------|------|
|
|
85
|
-
| `
|
|
86
|
-
| `
|
|
87
|
-
|
|
|
88
|
-
| `sonic-fetch` alone | [Fetch](#core/components/functional/fetch/fetch.md/fetch) |
|
|
85
|
+
| `data-bind` HTML (plain HTML hosts) | [HTML integration](/docs/misc/html-integration) — doc demos use Lit in `src/docs/example/` |
|
|
86
|
+
| `@onAssign` | [@onAssign](/docs/decorators/on-assign) (prefer `@handle`) |
|
|
87
|
+
| `sonic-fetch` alone | [Fetch](/core/components/functional/fetch) |
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en" data-doc-url="https://concorde.supersoniks.org/docs/getting-started/installation" data-doc-id="docs/getting-started/installation">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Installation — Concorde by Supersoniks</title>
|
|
7
|
+
<meta name="description" content="Start a new project from the official starter. It sets up Vite, TypeScript, Lit, Tailwind and Concorde in one command.">
|
|
8
|
+
<meta name="keywords" content="Concorde, supersoniks, docs/getting-started/installation, installation, Installation, guide, npx concorde enable-short-paths, yarn ai:sync, yarn dev, tsc --noEmit, document.querySelector, renderRoot">
|
|
9
|
+
<meta name="concorde-doc-id" content="docs/getting-started/installation">
|
|
10
|
+
<link rel="canonical" href="https://concorde.supersoniks.org/docs/getting-started/installation">
|
|
11
|
+
<link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/docs/getting-started/installation.md">
|
|
12
|
+
</head>
|
|
13
|
+
<body>
|
|
14
|
+
<header>
|
|
15
|
+
<p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/docs/getting-started/installation">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
|
|
16
|
+
</header>
|
|
17
|
+
<main>
|
|
18
|
+
<article>
|
|
19
|
+
<p class="doc-lead" id="doc-summary"><strong>Concorde guide — Installation</strong>. Start a new project from the official starter. It sets up Vite, TypeScript, Lit, Tailwind and Concorde in one command. <span>Doc ID: <code>docs/getting-started/installation</code>. Keywords: Concorde, supersoniks, docs/getting-started/installation, installation, Installation, guide, npx concorde enable-short-paths, yarn ai:sync, yarn dev, tsc --noEmit, document.querySelector, renderRoot. URL: <a href="https://concorde.supersoniks.org/docs/getting-started/installation">https://concorde.supersoniks.org/docs/getting-started/installation</a>.</span></p>
|
|
20
|
+
<h1 id="installation">Installation</h1>
|
|
21
|
+
<p>Start a new project from the official starter. It sets up Vite, TypeScript, Lit, Tailwind and Concorde in one command.</p>
|
|
22
|
+
<h2 id="use-the-starter">Use the starter</h2>
|
|
23
|
+
<pre><code class="language-shell">npx @supersoniks/create-concorde-ts-starter my-app
|
|
24
|
+
cd my-app
|
|
25
|
+
yarn install
|
|
26
|
+
yarn dev --host
|
|
27
|
+
</code></pre>
|
|
28
|
+
<p>The project includes:</p>
|
|
29
|
+
<ul>
|
|
30
|
+
<li>an example component to copy from</li>
|
|
31
|
+
<li><code>npx concorde enable-short-paths</code> for short import paths</li>
|
|
32
|
+
<li><code>yarn ai:sync</code> for <a href="/docs/getting-started/ai-agents">AI agent skills</a></li>
|
|
33
|
+
</ul>
|
|
34
|
+
<p>Package: <a href="https://www.npmjs.com/package/@supersoniks/create-concorde-ts-starter">create-concorde-ts-starter</a>.</p>
|
|
35
|
+
<h2 id="stack">Stack</h2>
|
|
36
|
+
<table>
|
|
37
|
+
<thead>
|
|
38
|
+
<tr>
|
|
39
|
+
<th>Tool</th>
|
|
40
|
+
<th>Role</th>
|
|
41
|
+
</tr>
|
|
42
|
+
</thead>
|
|
43
|
+
<tbody><tr>
|
|
44
|
+
<td><a href="https://lit.dev">Lit</a></td>
|
|
45
|
+
<td>Base class, templates and reactive properties for web components</td>
|
|
46
|
+
</tr>
|
|
47
|
+
<tr>
|
|
48
|
+
<td><a href="https://www.typescriptlang.org">TypeScript</a></td>
|
|
49
|
+
<td>Decorators and typed store paths</td>
|
|
50
|
+
</tr>
|
|
51
|
+
<tr>
|
|
52
|
+
<td><a href="https://vite.dev">Vite</a></td>
|
|
53
|
+
<td>Dev server and build</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr>
|
|
56
|
+
<td><a href="https://tailwindcss.com">Tailwind</a></td>
|
|
57
|
+
<td>Optional, layout in your components. Concorde components ship their own styles, driven by <a href="/docs/getting-started/theming">theme</a> variables</td>
|
|
58
|
+
</tr>
|
|
59
|
+
</tbody></table>
|
|
60
|
+
<h2 id="gotchas">Gotchas</h2>
|
|
61
|
+
<ul>
|
|
62
|
+
<li><code>yarn dev</code> does not type-check. Run <code>tsc --noEmit</code> or a production build to catch type errors.</li>
|
|
63
|
+
<li>Scripts that query the global document (<code>document.querySelector</code>, jQuery plugins, icon replacers) cannot see inside a shadow root. Query from the component's <code>renderRoot</code>, or pass the element as slotted content.</li>
|
|
64
|
+
</ul>
|
|
65
|
+
|
|
66
|
+
</article>
|
|
67
|
+
</main>
|
|
68
|
+
</body>
|
|
69
|
+
</html>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Installation
|
|
2
|
+
|
|
3
|
+
Start a new project from the official starter. It sets up Vite, TypeScript, Lit, Tailwind and Concorde in one command.
|
|
4
|
+
|
|
5
|
+
## Use the starter
|
|
6
|
+
|
|
7
|
+
<sonic-code language="shell">
|
|
8
|
+
<template>
|
|
9
|
+
npx @supersoniks/create-concorde-ts-starter my-app
|
|
10
|
+
cd my-app
|
|
11
|
+
yarn install
|
|
12
|
+
yarn dev --host
|
|
13
|
+
</template>
|
|
14
|
+
</sonic-code>
|
|
15
|
+
|
|
16
|
+
The project includes:
|
|
17
|
+
|
|
18
|
+
- an example component to copy from
|
|
19
|
+
- `npx concorde enable-short-paths` for short import paths
|
|
20
|
+
- `yarn ai:sync` for [AI agent skills](/docs/getting-started/ai-agents)
|
|
21
|
+
|
|
22
|
+
Package: [create-concorde-ts-starter](https://www.npmjs.com/package/@supersoniks/create-concorde-ts-starter).
|
|
23
|
+
|
|
24
|
+
## Stack
|
|
25
|
+
|
|
26
|
+
| Tool | Role |
|
|
27
|
+
|------|------|
|
|
28
|
+
| [Lit](https://lit.dev) | Base class, templates and reactive properties for web components |
|
|
29
|
+
| [TypeScript](https://www.typescriptlang.org) | Decorators and typed store paths |
|
|
30
|
+
| [Vite](https://vite.dev) | Dev server and build |
|
|
31
|
+
| [Tailwind](https://tailwindcss.com) | Optional, layout in your components. Concorde components ship their own styles, driven by [theme](/docs/getting-started/theming) variables |
|
|
32
|
+
|
|
33
|
+
## Gotchas
|
|
34
|
+
|
|
35
|
+
- `yarn dev` does not type-check. Run `tsc --noEmit` or a production build to catch type errors.
|
|
36
|
+
- Scripts that query the global document (`document.querySelector`, jQuery plugins, icon replacers) cannot see inside a shadow root. Query from the component's `renderRoot`, or pass the element as slotted content.
|