@supersoniks/concorde 5.1.2 → 5.1.3-immutable.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 +1 -1
- package/.claude/skills +1 -0
- package/.github/workflows/ci.yml +21 -0
- package/.github-export-ignore +30 -0
- package/CONTRIBUTING.md +59 -0
- package/DEV.md +54 -0
- package/LICENSE +21 -0
- package/OPEN_SOURCE_CHECKPOINT.md +133 -0
- package/README.md +1 -1
- package/ai/README.md +29 -41
- package/ai/skills/concorde/SKILL.md +54 -324
- package/ai/skills/concorde/rules/composition.md +32 -0
- package/ai/skills/concorde/rules/data.md +47 -0
- package/ai/skills/concorde/rules/http.md +25 -0
- package/ai/skills/concorde/rules/lists-forms.md +35 -0
- package/ai/skills/concorde/rules/styling.md +46 -0
- package/ai/skills/concorde/rules/troubleshooting.md +45 -0
- package/build-infos.json +1 -1
- package/concorde-core.bundle.js +177 -177
- package/concorde-core.es.js +5183 -5018
- package/custom-elements-manifest.public.config.mjs +8 -0
- package/{.tmp-cem/custom-elements.json → custom-elements.json} +11722 -8868
- package/dist/concorde-core.bundle.js +177 -177
- package/dist/concorde-core.es.js +5183 -5018
- package/dist/docs-mock-api-sw.js +58 -223
- package/dist/docs-mock-api-sw.js.map +4 -4
- package/dist/img/og-concorde.jpg +0 -0
- package/dist/robots.txt +11 -10
- package/docs/assets/index-CD4WyL6o.css +1 -0
- package/docs/assets/index-D_alEsng.js +12122 -0
- package/docs/crawl/core/components/functional/date/date.html +190 -0
- package/docs/crawl/core/components/functional/fetch/fetch.html +109 -0
- package/docs/crawl/core/components/functional/if/if.html +27 -0
- package/docs/crawl/core/components/functional/jsonata/jsonata.html +79 -0
- package/docs/crawl/core/components/functional/list/list.html +70 -0
- package/docs/crawl/core/components/functional/mix/mix.html +45 -0
- package/docs/crawl/core/components/functional/queue/queue.html +96 -0
- package/docs/crawl/core/components/functional/router/router.html +106 -0
- package/docs/{core → crawl/core}/components/functional/sdui/sdui-extension-points.html +8 -9
- package/docs/crawl/core/components/functional/sdui/sdui.html +368 -0
- package/docs/crawl/core/components/functional/states/states.html +66 -0
- package/docs/crawl/core/components/functional/submit/submit.html +160 -0
- package/docs/{core → crawl/core}/components/functional/subscriber/subscriber.html +5 -6
- package/docs/crawl/core/components/functional/value/value.html +51 -0
- package/docs/{core → crawl/core}/components/ui/alert/alert.html +63 -53
- package/docs/{core → crawl/core}/components/ui/alert-messages/alert-messages.html +5 -6
- package/docs/{core → crawl/core}/components/ui/badge/badge.html +33 -33
- package/docs/crawl/core/components/ui/button/button.html +150 -0
- package/docs/crawl/core/components/ui/captcha/captcha.html +112 -0
- package/docs/{core → crawl/core}/components/ui/card/card.html +11 -12
- package/docs/{core → crawl/core}/components/ui/divider/divider.html +14 -14
- package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +73 -0
- package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +266 -0
- package/docs/{core → crawl/core}/components/ui/form/form-actions/form-actions.html +23 -23
- package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +121 -0
- package/docs/crawl/core/components/ui/form/input/input.html +109 -0
- package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +38 -0
- package/docs/crawl/core/components/ui/form/radio/radio.html +56 -0
- package/docs/crawl/core/components/ui/form/select/select.html +73 -0
- package/docs/crawl/core/components/ui/form/switch/switch.html +56 -0
- package/docs/crawl/core/components/ui/form/textarea/textarea.html +59 -0
- package/docs/crawl/core/components/ui/group/group.html +104 -0
- package/docs/{core → crawl/core}/components/ui/icon/icon.html +9 -10
- package/docs/crawl/core/components/ui/image/image.html +298 -0
- package/docs/{core → crawl/core}/components/ui/link/link.html +11 -12
- package/docs/crawl/core/components/ui/loader/loader.html +124 -0
- package/docs/{core → crawl/core}/components/ui/menu/menu.html +33 -34
- package/docs/crawl/core/components/ui/modal/modal.html +342 -0
- package/docs/crawl/core/components/ui/pop/pop.html +296 -0
- package/docs/{core → crawl/core}/components/ui/progress/progress.html +7 -8
- package/docs/crawl/core/components/ui/table/table.html +545 -0
- package/docs/crawl/core/components/ui/theme/theme.html +131 -0
- package/docs/crawl/core/components/ui/toast/toast.html +233 -0
- package/docs/crawl/core/components/ui/tooltip/tooltip.html +140 -0
- package/docs/{docs/getting-started → crawl/docs/_core-concept}/dataFlow.html +29 -26
- package/docs/crawl/docs/_core-concept/overview.html +66 -0
- package/docs/crawl/docs/_core-concept/subscriber.html +75 -0
- package/docs/crawl/docs/_decorators/ancestor-attribute.html +117 -0
- package/docs/crawl/docs/_decorators/auto-subscribe.html +202 -0
- package/docs/crawl/docs/_decorators/bind.html +141 -0
- package/docs/crawl/docs/_decorators/get.html +149 -0
- package/docs/crawl/docs/_decorators/handle.html +165 -0
- package/docs/crawl/docs/_decorators/on-assign.html +355 -0
- package/docs/crawl/docs/_decorators/patch.html +78 -0
- package/docs/crawl/docs/_decorators/post.html +139 -0
- package/docs/crawl/docs/_decorators/publish.html +61 -0
- package/docs/crawl/docs/_decorators/put.html +78 -0
- package/docs/crawl/docs/_decorators/subscribe.html +109 -0
- package/docs/crawl/docs/_decorators/wait-for-ancestors.html +137 -0
- package/docs/crawl/docs/_directives/sub.html +93 -0
- package/docs/{docs/getting-started → crawl/docs/_getting-started}/ai-agents.html +11 -12
- package/docs/crawl/docs/_getting-started/concorde-manual-install.html +100 -0
- package/docs/crawl/docs/_getting-started/concorde-outside.html +58 -0
- package/docs/{docs/getting-started → crawl/docs/_getting-started}/create-a-component.html +14 -11
- package/docs/{docs/getting-started → crawl/docs/_getting-started}/my-first-component.html +22 -13
- package/docs/crawl/docs/_getting-started/my-first-subscriber.html +110 -0
- package/docs/crawl/docs/_getting-started/pubsub.html +62 -0
- package/docs/crawl/docs/_getting-started/start.html +76 -0
- package/docs/{docs/getting-started → crawl/docs/_getting-started}/theming.html +9 -10
- package/docs/{docs/misc → crawl/docs/_misc}/api-configuration.html +18 -18
- package/docs/{docs/misc → crawl/docs/_misc}/dataProviderKey.html +11 -12
- package/docs/{docs/misc → crawl/docs/_misc}/docs-mock-api.html +28 -25
- package/docs/{docs/misc → crawl/docs/_misc}/dynamic-path.html +15 -16
- package/docs/{docs/misc → crawl/docs/_misc}/endpoint.html +15 -16
- package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
- package/docs/{docs/misc → crawl/docs/_misc}/html-integration.html +15 -12
- package/docs/crawl/hubs/decorators.html +547 -0
- package/docs/crawl/hubs/form-components.html +381 -0
- package/docs/crawl/hubs/remote-data.html +452 -0
- package/docs/crawl/index.html +103 -0
- package/docs/docs-mock-api-sw.js +223 -58
- package/docs/docs-mock-api-sw.js.map +4 -4
- package/docs/index.html +68 -95
- package/docs/llms-full.txt +3610 -2231
- package/docs/llms.txt +86 -94
- package/docs/robots.txt +10 -11
- package/docs/sitemap.xml +84 -78
- package/docs/src/core/components/functional/date/date.md +231 -91
- package/docs/src/core/components/functional/fetch/fetch.md +83 -66
- package/docs/src/core/components/functional/if/if.md +3 -28
- package/docs/src/core/components/functional/jsonata/jsonata.md +37 -42
- package/docs/src/core/components/functional/list/list.md +43 -99
- package/docs/src/core/components/functional/mix/mix.md +26 -31
- package/docs/src/core/components/functional/queue/queue.md +61 -40
- package/docs/src/core/components/functional/router/router.md +65 -64
- package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
- package/docs/src/core/components/functional/sdui/component-catalog.json +1 -1
- package/docs/src/core/components/functional/sdui/example.json +86 -19
- package/docs/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
- package/docs/src/core/components/functional/sdui/sdui.md +358 -187
- package/docs/src/core/components/functional/states/states.md +61 -86
- package/docs/src/core/components/functional/submit/submit.md +72 -64
- package/docs/src/core/components/functional/value/value.md +22 -34
- package/docs/src/core/components/ui/alert/alert.md +58 -48
- package/docs/src/core/components/ui/badge/badge.md +34 -27
- package/docs/src/core/components/ui/button/button.md +106 -139
- package/docs/src/core/components/ui/captcha/captcha.md +32 -17
- package/docs/src/core/components/ui/card/card.md +6 -6
- package/docs/src/core/components/ui/divider/divider.md +11 -8
- package/docs/src/core/components/ui/form/checkbox/checkbox.md +42 -90
- package/docs/src/core/components/ui/form/fieldset/fieldset.md +75 -31
- package/docs/src/core/components/ui/form/form-actions/form-actions.md +16 -14
- package/docs/src/core/components/ui/form/form-layout/form-layout.md +29 -19
- package/docs/src/core/components/ui/form/input/input.md +95 -95
- package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +29 -0
- package/docs/src/core/components/ui/form/radio/radio.md +34 -55
- package/docs/src/core/components/ui/form/select/select.md +45 -60
- package/docs/src/core/components/ui/form/switch/switch.md +34 -57
- package/docs/src/core/components/ui/form/textarea/textarea.md +38 -55
- package/docs/src/core/components/ui/group/group.md +33 -35
- package/docs/src/core/components/ui/icon/icon.md +4 -4
- package/docs/src/core/components/ui/image/image.md +107 -41
- package/docs/src/core/components/ui/link/link.md +6 -6
- package/docs/src/core/components/ui/loader/loader.md +55 -30
- package/docs/src/core/components/ui/menu/menu.md +27 -27
- package/docs/src/core/components/ui/modal/modal.md +96 -72
- package/docs/src/core/components/ui/pop/pop.md +158 -80
- package/docs/src/core/components/ui/progress/progress.md +2 -2
- package/docs/src/core/components/ui/table/table.md +255 -91
- package/docs/src/core/components/ui/theme/theme.md +36 -11
- package/docs/src/core/components/ui/toast/toast.md +117 -48
- package/docs/src/core/components/ui/tooltip/tooltip.md +62 -27
- package/docs/{docs/getting-started → src/docs/_core-concept}/dataFlow.md +18 -17
- package/docs/src/docs/_core-concept/overview.md +57 -0
- package/docs/src/docs/_core-concept/subscriber.md +75 -0
- package/docs/src/docs/_decorators/ancestor-attribute.md +128 -0
- package/docs/src/docs/_decorators/auto-subscribe.md +202 -0
- package/docs/src/docs/_decorators/bind.md +167 -0
- package/docs/src/docs/_decorators/get.md +162 -0
- package/docs/src/docs/_decorators/handle.md +175 -0
- package/docs/src/docs/_decorators/on-assign.md +390 -0
- package/docs/src/docs/_decorators/patch.md +70 -0
- package/docs/src/docs/_decorators/post.md +146 -0
- package/docs/src/docs/_decorators/publish.md +55 -0
- package/docs/src/docs/_decorators/put.md +70 -0
- package/docs/src/docs/_decorators/subscribe.md +100 -0
- package/docs/src/docs/_decorators/wait-for-ancestors.md +163 -0
- package/docs/src/docs/_directives/sub.md +91 -0
- package/docs/src/docs/{getting-started → _getting-started}/ai-agents.md +3 -3
- package/docs/src/docs/_getting-started/concorde-manual-install.md +133 -0
- package/docs/src/docs/_getting-started/concorde-outside.md +33 -0
- package/docs/{docs/getting-started → src/docs/_getting-started}/create-a-component.md +6 -3
- package/docs/src/docs/{getting-started → _getting-started}/my-first-component.md +14 -5
- package/docs/src/docs/_getting-started/my-first-subscriber.md +120 -0
- package/docs/src/docs/_getting-started/pubsub.md +37 -0
- package/docs/src/docs/{getting-started → _getting-started}/start.md +13 -1
- package/docs/src/docs/{getting-started → _getting-started}/theming.md +2 -2
- package/docs/src/docs/{misc → _misc}/api-configuration.md +12 -10
- package/docs/src/docs/{misc → _misc}/dataProviderKey.md +4 -4
- package/docs/{docs/misc → src/docs/_misc}/docs-mock-api.md +13 -12
- package/docs/{docs/misc → src/docs/_misc}/dynamic-path.md +8 -8
- package/docs/{docs/misc → src/docs/_misc}/endpoint.md +8 -8
- package/docs/src/docs/_misc/formelement-subscriber-removal.md +115 -0
- package/docs/{docs/misc → src/docs/_misc}/html-integration.md +5 -4
- package/docs/src/docs/search/docs-search.json +4375 -2420
- package/docs/src/tsconfig.declarations.json +22 -0
- package/docs/src/tsconfig.emit.json +23 -0
- package/docs/src/tsconfig.json +2 -23
- package/gitlab/job_github_mirror.sh +39 -0
- package/index.html +89 -0
- package/package.json +22 -4
- package/public/img/og-concorde.jpg +0 -0
- package/scripts/ai-init.mjs +104 -379
- package/scripts/ai-init.test.mjs +81 -239
- package/scripts/docs-markdown-vite-plugin.ts +11 -5
- package/scripts/docs-public-url.mjs +6 -0
- package/scripts/docs.htaccess +7 -0
- package/scripts/generate-cem.mjs +244 -0
- package/scripts/generate-cem.test.mjs +122 -0
- package/scripts/generate-crawl-docs.mjs +29 -5
- package/scripts/generate-sdui-catalog.mjs +11 -10
- package/scripts/github-export.mjs +150 -0
- package/scripts/post-build-docs.js +3 -0
- package/scripts/post-build.mjs +0 -0
- package/scripts/pre-publish.mjs +2 -1
- package/scripts/site-pages.mjs +212 -0
- package/scripts/site-pages.test.mjs +116 -0
- package/site-pages/about.md +22 -0
- package/site-pages/privacy.md +32 -0
- package/src/core/components/functional/date/date.md +1 -1
- package/src/core/components/functional/example/example.ts +3 -1
- package/src/core/components/functional/if/if.ts +0 -0
- package/src/core/components/functional/list/list.demo.ts +0 -0
- package/src/core/components/functional/list/list.md +6 -2
- package/src/core/components/functional/list/list.ts +17 -4
- package/src/core/components/functional/mix/mix.md +0 -0
- package/src/core/components/functional/router/router.demo.ts +0 -0
- package/src/core/components/functional/router/router.ts +0 -0
- package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
- package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
- package/src/core/components/functional/sdui/component-catalog.json +2 -2
- package/src/core/components/functional/sdui/example.json +0 -0
- package/src/core/components/functional/sdui/sdui-immutable.spec.ts +74 -0
- package/src/core/components/functional/sdui/sdui.ts +33 -8
- package/src/core/components/functional/sdui/types.ts +0 -0
- package/src/core/components/functional/states/states.ts +0 -0
- package/src/core/components/functional/submit/submit.spec.ts +60 -0
- package/src/core/components/functional/submit/submit.ts +6 -3
- package/src/core/components/functional/subscriber/subscriber.ts +0 -0
- package/src/core/components/functional/value/value.md +0 -0
- package/src/core/components/functional/value/value.ts +0 -0
- package/src/core/components/ui/_css/size.ts +0 -0
- package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
- package/src/core/components/ui/card/card.md +1 -1
- package/src/core/components/ui/form/input/input.md +19 -1
- package/src/core/components/ui/form/input/input.ts +8 -2
- package/src/core/components/ui/form/radio/radio.md +14 -0
- package/src/core/components/ui/image/image.md +17 -17
- package/src/core/components/ui/modal/modal.md +2 -2
- package/src/core/decorators/subscriber/bind.ts +9 -14
- package/src/core/decorators/subscriber/subscribe.ts +15 -9
- package/src/core/decorators/subscriber/subscribe.type-test.ts +14 -5
- package/src/core/mixins/Subscriber.ts +0 -0
- package/src/core/utils/DataBindObserver.ts +0 -0
- package/src/core/utils/Objects.ts +0 -0
- package/src/core/utils/PublisherProxy.ts +166 -125
- package/src/core/utils/deepReadonly.spec.ts +66 -0
- package/src/core/utils/deepReadonly.ts +71 -0
- package/src/core/utils/immutableValue.spec.ts +58 -0
- package/src/core/utils/immutableValue.ts +116 -0
- package/src/core/utils/nestedDotForm.spec.ts +88 -0
- package/src/core/utils/publisherImmutable.spec.ts +127 -0
- package/src/core/utils/route.ts +0 -0
- package/src/core/utils/strictGet.spec.ts +61 -0
- package/src/core/utils/strictGet.ts +102 -0
- package/src/css.d.ts +19 -0
- package/src/docs/components/docs-demo-sources.ts +3 -3
- package/src/docs/decorators/bind.md +23 -24
- package/src/docs/docs-location.spec.ts +10 -0
- package/src/docs/docs-location.ts +10 -0
- package/src/docs/example/decorators-demo-bind-demos.ts +11 -28
- package/src/docs/example/docs-toggle-demos.ts +1 -1
- package/src/docs/example/users.ts +0 -0
- package/src/docs/getting-started/ai-agents.md +51 -51
- package/src/docs/getting-started/dataFlow.md +2 -2
- package/src/docs/home/home.ts +3 -1
- package/src/docs/misc/publisher-get-immutability-docs-crawl.json +902 -0
- package/src/docs/misc/publisher-get-immutability-docs-recheck.json +13 -0
- package/src/docs/misc/publisher-get-immutability-study.md +229 -0
- package/src/docs/navigation/navigation.ts +5 -1
- package/src/docs/search/docs-search.json +358 -58
- package/src/docs/search/markdown-renderer.ts +6 -1
- package/src/docs/tailwind/css/docs/content.css +4 -5
- package/src/tsconfig.declarations.json +22 -0
- package/src/tsconfig.emit.json +23 -0
- package/src/tsconfig.json +53 -5
- package/src/tsconfig.tsbuildinfo +1 -1
- package/.taste-skill/after/desktop-fold.jpg +0 -0
- package/.taste-skill/after/desktop-page-01.jpg +0 -0
- package/.taste-skill/after/desktop-page-02.jpg +0 -0
- package/.taste-skill/after/desktop-page-03.jpg +0 -0
- package/.taste-skill/after/mobile-fold.jpg +0 -0
- package/.taste-skill/after/mobile-page-01.jpg +0 -0
- package/.taste-skill/after/report.json +0 -4103
- package/.taste-skill/after/tablet-fold.jpg +0 -0
- package/.taste-skill/after/tablet-page-01.jpg +0 -0
- package/.taste-skill/after/tablet-page-02.jpg +0 -0
- package/.taste-skill/before/desktop-fold.jpg +0 -0
- package/.taste-skill/before/desktop-page-01.jpg +0 -0
- package/.taste-skill/before/desktop-page-02.jpg +0 -0
- package/.taste-skill/before/mobile-fold.jpg +0 -0
- package/.taste-skill/before/mobile-page-01.jpg +0 -0
- package/.taste-skill/before/report.json +0 -2556
- package/.taste-skill/before/tablet-fold.jpg +0 -0
- package/.taste-skill/before/tablet-page-01.jpg +0 -0
- package/.taste-skill/direction.json +0 -510
- package/.taste-skill/notes.md +0 -84
- package/.taste-skill/prod/desktop-fold.jpg +0 -0
- package/.taste-skill/prod/desktop-page-01.jpg +0 -0
- package/.taste-skill/prod/desktop-page-02.jpg +0 -0
- package/.taste-skill/prod/desktop-page-03.jpg +0 -0
- package/.taste-skill/prod/mobile-fold.jpg +0 -0
- package/.taste-skill/prod/mobile-page-01.jpg +0 -0
- package/.taste-skill/prod/mobile-page-02.jpg +0 -0
- package/.taste-skill/prod/report.json +0 -1973
- package/.taste-skill/prod/tablet-fold.jpg +0 -0
- package/.taste-skill/prod/tablet-page-01.jpg +0 -0
- package/.taste-skill/prod/tablet-page-02.jpg +0 -0
- package/AUDIT.md +0 -228
- package/PLAN-AMELIORATION.md +0 -220
- package/PLAN-DOCS-AGENTS.md +0 -80
- package/ai/AGENTS.md +0 -56
- package/ai/cursor/rules/concorde-menu.mdc +0 -15
- package/ai/cursor/rules/concorde-scope.mdc +0 -14
- package/ai/cursor/rules/concorde-theme.mdc +0 -13
- package/ai/cursor/rules/concorde.mdc +0 -66
- package/ai/jetbrains/rules/concorde.md +0 -53
- package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
- package/ai/skills/concorde-imports/SKILL.md +0 -78
- package/ai/skills/concorde-menu/SKILL.md +0 -74
- package/ai/skills/concorde-scope/SKILL.md +0 -70
- package/ai/skills/concorde-theme/SKILL.md +0 -57
- package/docs/.htaccess +0 -75
- package/docs/404.html +0 -15
- package/docs/404.md +0 -5
- package/docs/assets/index-BgG6FFPt.js +0 -11765
- package/docs/assets/index-x89XINSG.css +0 -1
- package/docs/core/components/functional/date/date.html +0 -211
- package/docs/core/components/functional/date/date.md +0 -150
- package/docs/core/components/functional/fetch/fetch.html +0 -180
- package/docs/core/components/functional/fetch/fetch.md +0 -108
- package/docs/core/components/functional/if/if.html +0 -65
- package/docs/core/components/functional/if/if.md +0 -34
- package/docs/core/components/functional/jsonata/jsonata.html +0 -110
- package/docs/core/components/functional/jsonata/jsonata.md +0 -61
- package/docs/core/components/functional/list/list.html +0 -198
- package/docs/core/components/functional/list/list.md +0 -121
- package/docs/core/components/functional/mix/mix.html +0 -78
- package/docs/core/components/functional/mix/mix.md +0 -46
- package/docs/core/components/functional/queue/queue.html +0 -155
- package/docs/core/components/functional/queue/queue.md +0 -51
- package/docs/core/components/functional/router/router.html +0 -154
- package/docs/core/components/functional/router/router.md +0 -93
- package/docs/core/components/functional/sdui/sdui-extension-points.md +0 -94
- package/docs/core/components/functional/sdui/sdui.html +0 -397
- package/docs/core/components/functional/sdui/sdui.md +0 -307
- package/docs/core/components/functional/states/states.html +0 -141
- package/docs/core/components/functional/states/states.md +0 -112
- package/docs/core/components/functional/submit/submit.html +0 -178
- package/docs/core/components/functional/submit/submit.md +0 -106
- package/docs/core/components/functional/subscriber/subscriber.md +0 -91
- package/docs/core/components/functional/translation/translation.html +0 -60
- package/docs/core/components/functional/translation/translation.md +0 -38
- package/docs/core/components/functional/value/value.html +0 -81
- package/docs/core/components/functional/value/value.md +0 -47
- package/docs/core/components/ui/alert/alert.md +0 -186
- package/docs/core/components/ui/alert-messages/alert-messages.md +0 -85
- package/docs/core/components/ui/badge/badge.md +0 -181
- package/docs/core/components/ui/button/button.html +0 -309
- package/docs/core/components/ui/button/button.md +0 -216
- package/docs/core/components/ui/captcha/captcha.html +0 -80
- package/docs/core/components/ui/captcha/captcha.md +0 -56
- package/docs/core/components/ui/card/card.md +0 -215
- package/docs/core/components/ui/divider/divider.md +0 -126
- package/docs/core/components/ui/form/checkbox/checkbox.html +0 -200
- package/docs/core/components/ui/form/checkbox/checkbox.md +0 -125
- package/docs/core/components/ui/form/fieldset/fieldset.html +0 -238
- package/docs/core/components/ui/form/fieldset/fieldset.md +0 -161
- package/docs/core/components/ui/form/form-actions/form-actions.md +0 -98
- package/docs/core/components/ui/form/form-layout/form-layout.html +0 -115
- package/docs/core/components/ui/form/form-layout/form-layout.md +0 -109
- package/docs/core/components/ui/form/input/input.html +0 -235
- package/docs/core/components/ui/form/input/input.md +0 -142
- package/docs/core/components/ui/form/radio/radio.html +0 -144
- package/docs/core/components/ui/form/radio/radio.md +0 -78
- package/docs/core/components/ui/form/select/select.html +0 -178
- package/docs/core/components/ui/form/select/select.md +0 -86
- package/docs/core/components/ui/form/switch/switch.html +0 -146
- package/docs/core/components/ui/form/switch/switch.md +0 -80
- package/docs/core/components/ui/form/textarea/textarea.html +0 -162
- package/docs/core/components/ui/form/textarea/textarea.md +0 -82
- package/docs/core/components/ui/group/group.html +0 -113
- package/docs/core/components/ui/group/group.md +0 -77
- package/docs/core/components/ui/icon/icon.md +0 -214
- package/docs/core/components/ui/image/image.html +0 -194
- package/docs/core/components/ui/image/image.md +0 -167
- package/docs/core/components/ui/link/link.md +0 -81
- package/docs/core/components/ui/loader/loader.html +0 -114
- package/docs/core/components/ui/loader/loader.md +0 -87
- package/docs/core/components/ui/menu/menu.md +0 -370
- package/docs/core/components/ui/modal/modal.html +0 -324
- package/docs/core/components/ui/modal/modal.md +0 -211
- package/docs/core/components/ui/pop/pop.html +0 -250
- package/docs/core/components/ui/pop/pop.md +0 -216
- package/docs/core/components/ui/progress/progress.md +0 -109
- package/docs/core/components/ui/table/table.html +0 -333
- package/docs/core/components/ui/table/table.md +0 -267
- package/docs/core/components/ui/theme/theme.html +0 -116
- package/docs/core/components/ui/theme/theme.md +0 -97
- package/docs/core/components/ui/toast/toast.html +0 -185
- package/docs/core/components/ui/toast/toast.md +0 -147
- package/docs/core/components/ui/tooltip/tooltip.html +0 -112
- package/docs/core/components/ui/tooltip/tooltip.md +0 -89
- package/docs/docs/decorators/ancestor-attribute.html +0 -71
- package/docs/docs/decorators/ancestor-attribute.md +0 -59
- package/docs/docs/decorators/auto-subscribe.html +0 -61
- package/docs/docs/decorators/auto-subscribe.md +0 -40
- package/docs/docs/decorators/bind.html +0 -86
- package/docs/docs/decorators/bind.md +0 -77
- package/docs/docs/decorators/get.html +0 -166
- package/docs/docs/decorators/get.md +0 -160
- package/docs/docs/decorators/handle.html +0 -139
- package/docs/docs/decorators/handle.md +0 -119
- package/docs/docs/decorators/on-assign.html +0 -72
- package/docs/docs/decorators/on-assign.md +0 -63
- package/docs/docs/decorators/patch.html +0 -76
- package/docs/docs/decorators/patch.md +0 -44
- package/docs/docs/decorators/post.html +0 -150
- package/docs/docs/decorators/post.md +0 -134
- package/docs/docs/decorators/publish.html +0 -74
- package/docs/docs/decorators/publish.md +0 -56
- package/docs/docs/decorators/put.html +0 -83
- package/docs/docs/decorators/put.md +0 -51
- package/docs/docs/decorators/subscribe.html +0 -91
- package/docs/docs/decorators/subscribe.md +0 -87
- package/docs/docs/decorators/wait-for-ancestors.html +0 -82
- package/docs/docs/decorators/wait-for-ancestors.md +0 -76
- package/docs/docs/directives/sub.html +0 -79
- package/docs/docs/directives/sub.md +0 -75
- package/docs/docs/directives/t.html +0 -91
- package/docs/docs/directives/t.md +0 -73
- package/docs/docs/getting-started/ai-agents.md +0 -76
- package/docs/docs/getting-started/components.html +0 -27
- package/docs/docs/getting-started/components.md +0 -5
- package/docs/docs/getting-started/installation.html +0 -69
- package/docs/docs/getting-started/installation.md +0 -36
- package/docs/docs/getting-started/my-first-component.md +0 -227
- package/docs/docs/getting-started/start.html +0 -47
- package/docs/docs/getting-started/start.md +0 -35
- package/docs/docs/getting-started/theming.md +0 -253
- package/docs/docs/index.html +0 -99
- package/docs/docs/misc/api-configuration.md +0 -79
- package/docs/docs/misc/dataProviderKey.md +0 -168
- package/docs/hubs/decorators.html +0 -443
- package/docs/hubs/form-components.html +0 -404
- package/docs/hubs/remote-data.html +0 -371
- package/docs/img/archive/concorde-001-2cv.webp +0 -0
- package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
- package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
- package/docs/img/archive/credits.json +0 -28
- package/docs/index.md +0 -22
- package/docs/src/core/components/functional/translation/translation.md +0 -38
- package/docs/src/docs/decorators/ancestor-attribute.md +0 -59
- package/docs/src/docs/decorators/auto-subscribe.md +0 -40
- package/docs/src/docs/decorators/bind.md +0 -77
- package/docs/src/docs/decorators/get.md +0 -160
- package/docs/src/docs/decorators/handle.md +0 -119
- package/docs/src/docs/decorators/on-assign.md +0 -63
- package/docs/src/docs/decorators/patch.md +0 -44
- package/docs/src/docs/decorators/post.md +0 -134
- package/docs/src/docs/decorators/publish.md +0 -56
- package/docs/src/docs/decorators/put.md +0 -51
- package/docs/src/docs/decorators/subscribe.md +0 -87
- package/docs/src/docs/decorators/wait-for-ancestors.md +0 -76
- package/docs/src/docs/directives/sub.md +0 -75
- package/docs/src/docs/directives/t.md +0 -73
- package/docs/src/docs/getting-started/components.md +0 -5
- package/docs/src/docs/getting-started/create-a-component.md +0 -136
- package/docs/src/docs/getting-started/dataFlow.md +0 -87
- package/docs/src/docs/getting-started/installation.md +0 -36
- package/docs/src/docs/misc/docs-mock-api.md +0 -62
- package/docs/src/docs/misc/dynamic-path.md +0 -71
- package/docs/src/docs/misc/endpoint.md +0 -45
- package/docs/src/docs/misc/html-integration.md +0 -14
- /package/{docs → dist}/img/concorde/plane_01.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_02.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_03.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_04.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_05.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_06.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_07.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_08.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_09.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_10.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_11.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_12.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_13.jpg +0 -0
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
# sub()
|
|
2
|
-
|
|
3
|
-
`sub(path)` is a Lit directive that renders the current value of a store path and updates in place on every assignment. Use it inside `html` templates for read-only display; in a decorator, the same path goes to [@subscribe](/docs/decorators/subscribe). See [Data flow](/docs/getting-started/dataFlow) for the overall model.
|
|
4
|
-
|
|
5
|
-
## Import
|
|
6
|
-
|
|
7
|
-
<sonic-code language="typescript">
|
|
8
|
-
<template>
|
|
9
|
-
import { sub } from "@supersoniks/concorde/directives";
|
|
10
|
-
|
|
11
|
-
render() {
|
|
12
|
-
return html`<p>Altitude: ${sub("cockpit.altitude")} ft</p>`;
|
|
13
|
-
}
|
|
14
|
-
</template>
|
|
15
|
-
</sonic-code>
|
|
16
|
-
|
|
17
|
-
## DataProviderKey
|
|
18
|
-
|
|
19
|
-
Pass a [DataProviderKey](/docs/misc/dataProviderKey) instead of a string to get a typo-safe path. Until the publisher holds a value, nothing is rendered.
|
|
20
|
-
|
|
21
|
-
<sonic-code language="typescript">
|
|
22
|
-
<template>
|
|
23
|
-
import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
|
|
24
|
-
|
|
25
|
-
const flightKey = new DataProviderKey<{ code: string; gate: string }>("flight");
|
|
26
|
-
|
|
27
|
-
render() {
|
|
28
|
-
return html`<p>${sub(flightKey.code)} · gate ${sub(flightKey.gate)}</p>`;
|
|
29
|
-
}
|
|
30
|
-
</template>
|
|
31
|
-
</sonic-code>
|
|
32
|
-
|
|
33
|
-
## Dynamic path
|
|
34
|
-
|
|
35
|
-
`${prop}` placeholders resolve from properties of the component that renders the template; the directive re-subscribes when they change. While a placeholder is `null` or `undefined`, nothing is rendered. Rules: [Dynamic paths](/docs/misc/dynamic-path). `skipEmptyPlaceholder` is not available on `sub()`.
|
|
36
|
-
|
|
37
|
-
<sonic-code language="typescript">
|
|
38
|
-
<template>
|
|
39
|
-
const personKey = new DataProviderKey<OnBoard, { seatIndex: number }>(
|
|
40
|
-
"demoOnBoard.${seatIndex}",
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
@property({ type: Number }) seatIndex = 0;
|
|
44
|
-
|
|
45
|
-
render() {
|
|
46
|
-
return html`<strong>${sub(personKey.name)}</strong> · ${sub(personKey.role)}`;
|
|
47
|
-
}
|
|
48
|
-
</template>
|
|
49
|
-
</sonic-code>
|
|
50
|
-
|
|
51
|
-
<sonic-code>
|
|
52
|
-
<template>
|
|
53
|
-
<docs-demo-sources for="demo-sub-template"></docs-demo-sources>
|
|
54
|
-
<demo-sub-template></demo-sub-template>
|
|
55
|
-
</template>
|
|
56
|
-
</sonic-code>
|
|
57
|
-
|
|
58
|
-
## sub() or get()
|
|
59
|
-
|
|
60
|
-
`get(path)` from `@supersoniks/concorde/utils` returns a one-time snapshot: in a template it never updates. Use `sub()` in templates and `get` / `set` / `dp` in imperative code.
|
|
61
|
-
|
|
62
|
-
<sonic-code language="typescript">
|
|
63
|
-
<template>
|
|
64
|
-
html`${sub(flightKey.gate)}`; // updates on gate change
|
|
65
|
-
html`${get(flightKey.gate)}`; // frozen at first render
|
|
66
|
-
</template>
|
|
67
|
-
</sonic-code>
|
|
68
|
-
|
|
69
|
-
## API reference
|
|
70
|
-
|
|
71
|
-
| Argument | Type | Description |
|
|
72
|
-
|----------|------|-------------|
|
|
73
|
-
| `path` | `string` or `DataProviderKey<T, U>` | Path to read. Placeholders resolve on the template host |
|
|
74
|
-
|
|
75
|
-
The directive subscribes when its part connects and unsubscribes when it disconnects.
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en" data-doc-url="https://concorde.supersoniks.org/docs/directives/t" data-doc-id="docs/directives/t">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>t() — Concorde by Supersoniks</title>
|
|
7
|
-
<meta name="description" content="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.">
|
|
8
|
-
<meta name="keywords" content="Concorde, supersoniks, docs/directives/t, t, t(), directive, wordingProvider, localStorage, wording, are aliases of , . In plain HTML, use the [, serviceURL, t(key), labels[]">
|
|
9
|
-
<meta name="concorde-doc-id" content="docs/directives/t">
|
|
10
|
-
<link rel="canonical" href="https://concorde.supersoniks.org/docs/directives/t">
|
|
11
|
-
<link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/docs/directives/t.md">
|
|
12
|
-
</head>
|
|
13
|
-
<body>
|
|
14
|
-
<header>
|
|
15
|
-
<p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/docs/directives/t">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 directive — t()</strong>. 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. <span>Doc ID: <code>docs/directives/t</code>. Keywords: Concorde, supersoniks, docs/directives/t, t, t(), directive, wordingProvider, localStorage, wording, are aliases of , . In plain HTML, use the [, serviceURL, t(key), labels[]. URL: <a href="https://concorde.supersoniks.org/docs/directives/t">https://concorde.supersoniks.org/docs/directives/t</a>.</span></p>
|
|
20
|
-
<h1 id="t">t()</h1>
|
|
21
|
-
<p>Lit directive that renders a translated label by key. Keys are batched into one GET to the endpoint set by the nearest <code>wordingProvider</code> ancestor attribute, and results are cached in <code>localStorage</code>.</p>
|
|
22
|
-
<h2 id="import">Import</h2>
|
|
23
|
-
<pre><code class="language-typescript">import { t } from "@supersoniks/concorde/directives/Wording";
|
|
24
|
-
</code></pre>
|
|
25
|
-
<p><code>wording</code> and <code>w</code> are aliases of <code>t</code>. In plain HTML, use the <a href="/core/components/functional/translation"><code>sonic-t</code></a> element.</p>
|
|
26
|
-
<h2 id="usage">Usage</h2>
|
|
27
|
-
<p>Set <code>serviceURL</code> and <code>wordingProvider</code> on the host component or one of its ancestors, then call <code>t(key)</code> in a template. Attributes on elements <strong>inside</strong> the component's own template are not read. Click the button to bump the version and reload the labels.</p>
|
|
28
|
-
<p><docs-lit-demo for="docs-api-config-wording-demo"></docs-lit-demo></p>
|
|
29
|
-
<h2 id="endpoint-contract">Endpoint contract</h2>
|
|
30
|
-
<p>All keys requested in the same tick are sent in one request, appended to <code>wordingProvider</code> as <code>labels[]</code>:</p>
|
|
31
|
-
<pre><code class="language-shell">GET {serviceURL}/wording/labels?lang=fr&labels[]=greeting&labels[]=farewell
|
|
32
|
-
</code></pre>
|
|
33
|
-
<p>The response is a flat map of key to label:</p>
|
|
34
|
-
<pre><code class="language-json">{ "greeting": "Bonjour", "farewell": "Au revoir" }
|
|
35
|
-
</code></pre>
|
|
36
|
-
<p>Until the label arrives, <code>t()</code> renders an empty string.</p>
|
|
37
|
-
<h2 id="html-labels">HTML labels</h2>
|
|
38
|
-
<p><code>t()</code> escapes the label. Use <code>unsafeWording(key)</code> for labels that contain trusted HTML.</p>
|
|
39
|
-
<pre><code class="language-typescript">import { unsafeWording } from "@supersoniks/concorde/directives/Wording";
|
|
40
|
-
|
|
41
|
-
html`&lt;p&gt;${unsafeWording("terms.notice")}&lt;/p&gt;`;
|
|
42
|
-
</code></pre>
|
|
43
|
-
<h2 id="reloading-labels">Reloading labels</h2>
|
|
44
|
-
<p>Labels are fetched again when:</p>
|
|
45
|
-
<ul>
|
|
46
|
-
<li>the <code>lang</code> attribute of <code><html></code> changes</li>
|
|
47
|
-
<li>the number stored at <code>wordingVersionProvider</code> changes — bump it after publishing new labels to invalidate the <code>localStorage</code> cache</li>
|
|
48
|
-
</ul>
|
|
49
|
-
<h2 id="api-reference">API reference</h2>
|
|
50
|
-
<table>
|
|
51
|
-
<thead>
|
|
52
|
-
<tr>
|
|
53
|
-
<th>Function</th>
|
|
54
|
-
<th>Description</th>
|
|
55
|
-
</tr>
|
|
56
|
-
</thead>
|
|
57
|
-
<tbody><tr>
|
|
58
|
-
<td><code>t(key)</code> · <code>wording(key)</code> · <code>w(key)</code></td>
|
|
59
|
-
<td>Renders the escaped label for <code>key</code></td>
|
|
60
|
-
</tr>
|
|
61
|
-
<tr>
|
|
62
|
-
<td><code>unsafeWording(key)</code></td>
|
|
63
|
-
<td>Renders the label as HTML</td>
|
|
64
|
-
</tr>
|
|
65
|
-
<tr>
|
|
66
|
-
<td><code>isWordingReady(key)</code></td>
|
|
67
|
-
<td><code>true</code> once the label for <code>key</code> is loaded</td>
|
|
68
|
-
</tr>
|
|
69
|
-
</tbody></table>
|
|
70
|
-
<table>
|
|
71
|
-
<thead>
|
|
72
|
-
<tr>
|
|
73
|
-
<th>Ancestor attribute</th>
|
|
74
|
-
<th>Description</th>
|
|
75
|
-
</tr>
|
|
76
|
-
</thead>
|
|
77
|
-
<tbody><tr>
|
|
78
|
-
<td><code>wordingProvider</code></td>
|
|
79
|
-
<td>Endpoint path and query, relative to <code>serviceURL</code></td>
|
|
80
|
-
</tr>
|
|
81
|
-
<tr>
|
|
82
|
-
<td><code>wordingVersionProvider</code></td>
|
|
83
|
-
<td>DataProvider path holding a version number</td>
|
|
84
|
-
</tr>
|
|
85
|
-
</tbody></table>
|
|
86
|
-
<p>Other ancestor attributes (<code>serviceURL</code>, <code>token</code>, …) apply as for any request: see <a href="/docs/misc/api-configuration">API configuration</a>.</p>
|
|
87
|
-
|
|
88
|
-
</article>
|
|
89
|
-
</main>
|
|
90
|
-
</body>
|
|
91
|
-
</html>
|
|
@@ -1,73 +0,0 @@
|
|
|
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,76 +0,0 @@
|
|
|
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)).
|
|
@@ -1,27 +0,0 @@
|
|
|
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,69 +0,0 @@
|
|
|
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>
|
|
@@ -1,36 +0,0 @@
|
|
|
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.
|