@supersoniks/concorde 5.1.1 → 5.1.3-immutable.1
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/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 +4 -4
- package/ai/README.md +29 -41
- package/ai/skills/concorde/SKILL.md +54 -324
- package/ai/skills/concorde/rules/composition.md +32 -0
- package/ai/skills/concorde/rules/data.md +47 -0
- package/ai/skills/concorde/rules/http.md +25 -0
- package/ai/skills/concorde/rules/lists-forms.md +35 -0
- package/ai/skills/concorde/rules/styling.md +46 -0
- package/ai/skills/concorde/rules/troubleshooting.md +45 -0
- package/build-infos.json +1 -1
- package/concorde-core.bundle.js +177 -177
- package/concorde-core.es.js +4993 -4833
- package/custom-elements-manifest.public.config.mjs +8 -0
- package/{.tmp-cem/custom-elements.json → custom-elements.json} +11758 -8904
- package/dist/concorde-core.bundle.js +177 -177
- package/dist/concorde-core.es.js +4993 -4833
- package/dist/docs-mock-api-sw.js +58 -223
- package/dist/docs-mock-api-sw.js.map +4 -4
- package/dist/img/concorde/plane_01.jpg +0 -0
- package/dist/img/concorde/plane_02.jpg +0 -0
- package/dist/img/concorde/plane_03.jpg +0 -0
- package/dist/img/concorde/plane_04.jpg +0 -0
- package/dist/img/concorde/plane_05.jpg +0 -0
- package/dist/img/concorde/plane_06.jpg +0 -0
- package/dist/img/concorde/plane_07.jpg +0 -0
- package/dist/img/concorde/plane_08.jpg +0 -0
- package/dist/img/concorde/plane_09.jpg +0 -0
- package/dist/img/concorde/plane_10.jpg +0 -0
- package/dist/img/concorde/plane_11.jpg +0 -0
- package/dist/img/concorde/plane_12.jpg +0 -0
- package/dist/img/concorde/plane_13.jpg +0 -0
- package/dist/img/og-concorde.jpg +0 -0
- package/dist/robots.txt +11 -10
- package/docs/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/crawl/core/components/functional/sdui/sdui-extension-points.html +126 -0
- 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/crawl/core/components/functional/subscriber/subscriber.html +67 -0
- package/docs/crawl/core/components/functional/value/value.html +51 -0
- package/docs/crawl/core/components/ui/alert/alert.html +211 -0
- package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +131 -0
- package/docs/crawl/core/components/ui/badge/badge.html +197 -0
- package/docs/crawl/core/components/ui/button/button.html +150 -0
- package/docs/crawl/core/components/ui/captcha/captcha.html +112 -0
- package/docs/crawl/core/components/ui/card/card.html +253 -0
- package/docs/crawl/core/components/ui/divider/divider.html +144 -0
- 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/crawl/core/components/ui/form/form-actions/form-actions.html +122 -0
- 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/crawl/core/components/ui/icon/icon.html +222 -0
- package/docs/crawl/core/components/ui/image/image.html +298 -0
- package/docs/crawl/core/components/ui/link/link.html +100 -0
- package/docs/crawl/core/components/ui/loader/loader.html +124 -0
- package/docs/crawl/core/components/ui/menu/menu.html +394 -0
- package/docs/crawl/core/components/ui/modal/modal.html +342 -0
- package/docs/crawl/core/components/ui/pop/pop.html +296 -0
- package/docs/crawl/core/components/ui/progress/progress.html +131 -0
- 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/crawl/docs/_core-concept/dataFlow.html +177 -0
- 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/crawl/docs/_getting-started/ai-agents.html +173 -0
- 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/crawl/docs/_getting-started/create-a-component.html +111 -0
- package/docs/crawl/docs/_getting-started/my-first-component.html +189 -0
- 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/crawl/docs/_getting-started/theming.html +333 -0
- package/docs/crawl/docs/_misc/api-configuration.html +149 -0
- package/docs/crawl/docs/_misc/dataProviderKey.html +135 -0
- package/docs/crawl/docs/_misc/docs-mock-api.html +158 -0
- package/docs/crawl/docs/_misc/dynamic-path.html +180 -0
- package/docs/crawl/docs/_misc/endpoint.html +50 -0
- package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
- package/docs/crawl/docs/_misc/html-integration.html +48 -0
- 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/index.html +1 -1
- package/docs/llms-full.txt +7174 -0
- package/docs/llms.txt +98 -0
- package/docs/sitemap.xml +243 -0
- package/docs/src/core/components/functional/date/date.md +290 -0
- package/docs/src/core/components/functional/fetch/fetch.md +125 -0
- package/docs/src/core/components/functional/if/if.md +9 -0
- package/docs/src/core/components/functional/jsonata/jsonata.md +56 -0
- package/docs/src/core/components/functional/list/list.md +65 -0
- package/docs/src/core/components/functional/mix/mix.md +41 -0
- package/docs/src/core/components/functional/queue/queue.md +72 -0
- package/docs/src/core/components/functional/router/router.md +94 -0
- package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
- package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
- package/docs/src/core/components/functional/sdui/default-library.json +108 -0
- package/docs/src/core/components/functional/sdui/example.json +99 -0
- package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
- package/docs/src/core/components/functional/sdui/sdui.md +478 -0
- package/docs/src/core/components/functional/states/states.md +87 -0
- package/docs/src/core/components/functional/submit/submit.md +114 -0
- package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
- package/docs/src/core/components/functional/value/value.md +35 -0
- package/docs/src/core/components/ui/alert/alert.md +196 -0
- package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
- package/docs/src/core/components/ui/badge/badge.md +188 -0
- package/docs/src/core/components/ui/button/button.md +183 -0
- package/docs/src/core/components/ui/captcha/captcha.md +71 -0
- package/docs/src/core/components/ui/card/card.md +215 -0
- package/docs/src/core/components/ui/divider/divider.md +129 -0
- package/docs/src/core/components/ui/form/checkbox/checkbox.md +77 -0
- package/docs/src/core/components/ui/form/fieldset/fieldset.md +205 -0
- package/docs/src/core/components/ui/form/form-actions/form-actions.md +100 -0
- package/docs/src/core/components/ui/form/form-layout/form-layout.md +119 -0
- package/docs/src/core/components/ui/form/input/input.md +142 -0
- package/docs/src/core/components/ui/form/radio/radio.md +57 -0
- package/docs/src/core/components/ui/form/select/select.md +71 -0
- package/docs/src/core/components/ui/form/switch/switch.md +57 -0
- package/docs/src/core/components/ui/form/textarea/textarea.md +65 -0
- package/docs/src/core/components/ui/group/group.md +75 -0
- package/docs/src/core/components/ui/icon/icon.md +214 -0
- package/docs/src/core/components/ui/icon/icons.json +1 -0
- package/docs/src/core/components/ui/image/image.md +233 -0
- package/docs/src/core/components/ui/link/link.md +81 -0
- package/docs/src/core/components/ui/loader/loader.md +112 -0
- package/docs/src/core/components/ui/menu/menu.md +370 -0
- package/docs/src/core/components/ui/modal/modal.md +235 -0
- package/docs/src/core/components/ui/pop/pop.md +294 -0
- package/docs/src/core/components/ui/progress/progress.md +109 -0
- package/docs/src/core/components/ui/table/table.md +431 -0
- package/docs/src/core/components/ui/theme/theme.md +122 -0
- package/docs/src/core/components/ui/toast/toast.md +216 -0
- package/docs/src/core/components/ui/tooltip/tooltip.md +124 -0
- package/{src → docs/src}/docs/_core-concept/subscriber.md +0 -0
- package/{src → docs/src}/docs/_getting-started/my-first-subscriber.md +0 -0
- package/{src → docs/src}/docs/_getting-started/pubsub.md +0 -0
- package/docs/src/docs/_getting-started/theming.md +253 -0
- package/docs/src/docs/search/docs-search.json +12242 -0
- package/docs/src/tag-list.json +1 -0
- package/docs/src/tsconfig-model.json +23 -0
- package/docs/src/tsconfig.declarations.json +22 -0
- package/docs/src/tsconfig.emit.json +23 -0
- package/docs/src/tsconfig.json +1332 -0
- package/gitlab/job_github_mirror.sh +39 -0
- package/index.html +157 -5
- package/package.json +22 -4
- package/public/docs-mock-api-sw.js +58 -223
- package/public/docs-mock-api-sw.js.map +4 -4
- package/public/img/concorde/plane_01.jpg +0 -0
- package/public/img/concorde/plane_02.jpg +0 -0
- package/public/img/concorde/plane_03.jpg +0 -0
- package/public/img/concorde/plane_04.jpg +0 -0
- package/public/img/concorde/plane_05.jpg +0 -0
- package/public/img/concorde/plane_06.jpg +0 -0
- package/public/img/concorde/plane_07.jpg +0 -0
- package/public/img/concorde/plane_08.jpg +0 -0
- package/public/img/concorde/plane_09.jpg +0 -0
- package/public/img/concorde/plane_10.jpg +0 -0
- package/public/img/concorde/plane_11.jpg +0 -0
- package/public/img/concorde/plane_12.jpg +0 -0
- package/public/img/concorde/plane_13.jpg +0 -0
- package/public/img/og-concorde.jpg +0 -0
- package/public/robots.txt +11 -10
- package/scripts/ai-init.mjs +104 -379
- package/scripts/ai-init.test.mjs +81 -239
- package/scripts/docs-markdown-vite-plugin.ts +43 -0
- package/scripts/docs-public-url.mjs +56 -0
- package/scripts/docs.htaccess +82 -0
- package/scripts/generate-cem.mjs +244 -0
- package/scripts/generate-cem.test.mjs +122 -0
- package/scripts/generate-crawl-docs.mjs +233 -118
- package/scripts/generate-crawl-docs.test.mjs +124 -0
- package/scripts/generate-sdui-catalog.mjs +11 -10
- package/scripts/github-export.mjs +150 -0
- package/scripts/post-build-docs.js +37 -50
- 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 +91 -231
- package/src/core/components/functional/example/example.ts +3 -1
- 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 +103 -43
- package/src/core/components/functional/list/list.ts +17 -4
- 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 +2 -2
- 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-immutable.spec.ts +74 -0
- package/src/core/components/functional/sdui/sdui.md +187 -358
- 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.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/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/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 +108 -90
- package/src/core/components/ui/form/input/input.ts +8 -2
- package/src/core/components/ui/form/radio/radio.md +65 -30
- package/src/core/components/ui/form/select/select.md +60 -45
- package/src/core/components/ui/form/switch/switch.md +57 -34
- package/src/core/components/ui/form/textarea/textarea.md +55 -38
- package/src/core/components/ui/group/group.md +35 -33
- package/src/core/components/ui/icon/icon.md +4 -4
- package/src/core/components/ui/image/image.md +41 -107
- package/src/core/components/ui/link/link.md +6 -6
- package/src/core/components/ui/loader/loader.md +30 -55
- package/src/core/components/ui/menu/menu.md +27 -27
- package/src/core/components/ui/modal/modal.md +72 -96
- package/src/core/components/ui/pop/pop.md +80 -158
- package/src/core/components/ui/progress/progress.md +2 -2
- package/src/core/components/ui/table/table.md +91 -255
- package/src/core/components/ui/theme/theme.md +11 -36
- package/src/core/components/ui/toast/toast.md +48 -117
- package/src/core/components/ui/tooltip/tooltip.md +27 -62
- package/src/core/decorators/subscriber/bind.ts +9 -14
- package/src/core/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/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/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 +54 -0
- package/src/core/utils/immutableValue.ts +102 -0
- package/src/core/utils/nestedDotForm.spec.ts +88 -0
- package/src/core/utils/publisherImmutable.spec.ts +76 -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 +55 -140
- package/src/docs/components/docs-lit-demo.ts +1 -3
- package/src/docs/components/docs-source-link.ts +0 -82
- package/src/docs/decorators/ancestor-attribute.md +59 -0
- package/src/docs/decorators/auto-subscribe.md +40 -0
- package/src/docs/decorators/bind.md +76 -0
- package/src/docs/decorators/get.md +160 -0
- package/src/docs/decorators/handle.md +119 -0
- package/src/docs/decorators/on-assign.md +63 -0
- package/src/docs/decorators/patch.md +44 -0
- package/src/docs/decorators/post.md +134 -0
- package/src/docs/decorators/publish.md +56 -0
- package/src/docs/decorators/put.md +51 -0
- package/src/docs/decorators/subscribe.md +87 -0
- package/src/docs/decorators/wait-for-ancestors.md +76 -0
- package/src/docs/directives/sub.md +75 -0
- package/src/docs/directives/t.md +73 -0
- package/src/docs/docs-location.spec.ts +56 -0
- package/src/docs/docs-location.ts +133 -32
- package/src/docs/docs.ts +1 -2
- package/src/docs/example/decorators-demo-bind-demos.ts +83 -135
- package/src/docs/example/decorators-demo-geo.ts +30 -19
- package/src/docs/example/decorators-demo-post.ts +88 -186
- package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
- package/src/docs/example/decorators-demo.ts +85 -98
- package/src/docs/example/docs-api-config-demos.ts +19 -20
- package/src/docs/example/docs-flight-demos.ts +147 -0
- package/src/docs/example/docs-jsonata-demos.ts +52 -52
- package/src/docs/example/docs-list-demos.ts +43 -123
- package/src/docs/example/docs-provider-keys.ts +21 -28
- package/src/docs/example/docs-queue-demos.ts +37 -77
- package/src/docs/example/docs-router-demos.ts +20 -25
- package/src/docs/example/docs-submit-demos.ts +48 -48
- package/src/docs/example/docs-toggle-demos.ts +4 -3
- package/src/docs/example/users.ts +0 -0
- package/src/docs/getting-started/ai-agents.md +50 -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/header/header.ts +11 -6
- package/src/docs/home/catalog.ts +1 -1
- package/src/docs/home/home.ts +20 -11
- package/src/docs/layout.ts +12 -13
- package/src/docs/misc/api-configuration.md +79 -0
- package/src/docs/misc/dataProviderKey.md +168 -0
- package/src/docs/misc/docs-mock-api.md +62 -0
- package/src/docs/misc/dynamic-path.md +71 -0
- package/src/docs/misc/endpoint.md +45 -0
- package/src/docs/misc/html-integration.md +14 -0
- package/src/docs/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/mock-api/api-config-mock.ts +5 -0
- package/src/docs/mock-api/fixtures.ts +0 -278
- package/src/docs/mock-api/flights.ts +89 -0
- package/src/docs/mock-api/router.ts +3 -4
- package/src/docs/mock-api/urls.ts +1 -2
- package/src/docs/navigation/navigation.ts +84 -101
- package/src/docs/navigation/toc.ts +7 -4
- package/src/docs/search/docs-search.json +3188 -5153
- package/src/docs/search/markdown-renderer.ts +31 -8
- package/src/docs/search/page.ts +9 -6
- package/src/docs/search/search.ts +154 -122
- package/src/docs/tailwind/css/docs/content.css +4 -5
- package/src/tsconfig.declarations.json +22 -0
- package/src/tsconfig.emit.json +23 -0
- package/src/tsconfig.json +53 -5
- package/src/tsconfig.tsbuildinfo +1 -1
- package/vite.config.mts +11 -2
- package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
- 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/ai/AGENTS.md +0 -56
- package/ai/cursor/rules/concorde-menu.mdc +0 -15
- package/ai/cursor/rules/concorde-scope.mdc +0 -14
- package/ai/cursor/rules/concorde-theme.mdc +0 -13
- package/ai/cursor/rules/concorde.mdc +0 -66
- package/ai/jetbrains/rules/concorde.md +0 -53
- package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
- package/ai/skills/concorde-imports/SKILL.md +0 -78
- package/ai/skills/concorde-menu/SKILL.md +0 -74
- package/ai/skills/concorde-scope/SKILL.md +0 -70
- package/ai/skills/concorde-theme/SKILL.md +0 -57
- package/docs/assets/index-Bb-_LRyY.js +0 -12280
- package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
- package/src/docs/example/docs-joke-demos.ts +0 -297
- /package/{src → docs/src}/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -0
- /package/{src → docs/src}/docs/_core-concept/dataFlow.md +0 -0
- /package/{src → docs/src}/docs/_core-concept/overview.md +0 -0
- /package/{src → docs/src}/docs/_decorators/ancestor-attribute.md +0 -0
- /package/{src → docs/src}/docs/_decorators/auto-subscribe.md +0 -0
- /package/{src → docs/src}/docs/_decorators/bind.md +0 -0
- /package/{src → docs/src}/docs/_decorators/get.md +0 -0
- /package/{src → docs/src}/docs/_decorators/handle.md +0 -0
- /package/{src → docs/src}/docs/_decorators/on-assign.md +0 -0
- /package/{src → docs/src}/docs/_decorators/patch.md +0 -0
- /package/{src → docs/src}/docs/_decorators/post.md +0 -0
- /package/{src → docs/src}/docs/_decorators/publish.md +0 -0
- /package/{src → docs/src}/docs/_decorators/put.md +0 -0
- /package/{src → docs/src}/docs/_decorators/subscribe.md +0 -0
- /package/{src → docs/src}/docs/_decorators/wait-for-ancestors.md +0 -0
- /package/{src → docs/src}/docs/_directives/sub.md +0 -0
- /package/{src → docs/src}/docs/_getting-started/ai-agents.md +0 -0
- /package/{src → docs/src}/docs/_getting-started/concorde-manual-install.md +0 -0
- /package/{src → docs/src}/docs/_getting-started/concorde-outside.md +0 -0
- /package/{src → docs/src}/docs/_getting-started/create-a-component.md +0 -0
- /package/{src → docs/src}/docs/_getting-started/my-first-component.md +0 -0
- /package/{src → docs/src}/docs/_getting-started/start.md +0 -0
- /package/{src → docs/src}/docs/_misc/api-configuration.md +0 -0
- /package/{src → docs/src}/docs/_misc/dataProviderKey.md +0 -0
- /package/{src → docs/src}/docs/_misc/docs-mock-api.md +0 -0
- /package/{src → docs/src}/docs/_misc/dynamic-path.md +0 -0
- /package/{src → docs/src}/docs/_misc/endpoint.md +0 -0
- /package/{src → docs/src}/docs/_misc/formelement-subscriber-removal.md +0 -0
- /package/{src → docs/src}/docs/_misc/html-integration.md +0 -0
- /package/src/docs/{_getting-started → getting-started}/components.md +0 -0
- /package/src/docs/{_getting-started → getting-started}/theming.md +0 -0
|
@@ -2,7 +2,7 @@ import { css, html, LitElement, nothing } from "lit";
|
|
|
2
2
|
import { customElement, property, state } from "lit/decorators.js";
|
|
3
3
|
import { unsafeHTML } from "lit/directives/unsafe-html.js";
|
|
4
4
|
import { tailwind } from "../tailwind";
|
|
5
|
-
import {
|
|
5
|
+
import type { DocsSource } from "./docs-source-link";
|
|
6
6
|
import { DOCS_SOURCE_RAW } from "./docs-source-raw";
|
|
7
7
|
import { resolveSourceExcerpt } from "./docs-source-excerpt";
|
|
8
8
|
import { docsCodeCSS, highlightDocsCode } from "../shiki";
|
|
@@ -24,7 +24,7 @@ export const DOCS_LIT_DEMO_REGISTRY: Record<string, DocsLitDemoConfig> = {
|
|
|
24
24
|
sources: [
|
|
25
25
|
{
|
|
26
26
|
path: "src/docs/example/docs-boarding-pass-demo.ts",
|
|
27
|
-
line:
|
|
27
|
+
line: 18,
|
|
28
28
|
label: "docs-boarding-pass-demo",
|
|
29
29
|
},
|
|
30
30
|
],
|
|
@@ -42,80 +42,39 @@ export const DOCS_LIT_DEMO_REGISTRY: Record<string, DocsLitDemoConfig> = {
|
|
|
42
42
|
sources: [
|
|
43
43
|
{
|
|
44
44
|
path: "src/docs/example/docs-toggle-demos.ts",
|
|
45
|
-
line:
|
|
45
|
+
line: 50,
|
|
46
46
|
label: "docs-toggle-loader-demo",
|
|
47
47
|
},
|
|
48
48
|
],
|
|
49
49
|
},
|
|
50
|
-
"docs-
|
|
51
|
-
sources: [
|
|
52
|
-
{ path: "src/docs/example/docs-joke-demos.ts", line: 111, label: "search" },
|
|
53
|
-
],
|
|
54
|
-
},
|
|
55
|
-
"docs-joke-lang-demo": {
|
|
50
|
+
"docs-flight-search-demo": {
|
|
56
51
|
sources: [
|
|
57
|
-
{ path: "src/docs/example/docs-
|
|
52
|
+
{ path: "src/docs/example/docs-flight-demos.ts", line: 65, label: "search" },
|
|
58
53
|
],
|
|
59
54
|
},
|
|
60
|
-
"docs-
|
|
55
|
+
"docs-flight-direction-demo": {
|
|
61
56
|
sources: [
|
|
62
|
-
{ path: "src/docs/example/docs-
|
|
57
|
+
{ path: "src/docs/example/docs-flight-demos.ts", line: 85, label: "direction" },
|
|
63
58
|
],
|
|
64
59
|
},
|
|
65
|
-
"docs-
|
|
60
|
+
"docs-flight-status-radio-demo": {
|
|
66
61
|
sources: [
|
|
67
|
-
{ path: "src/docs/example/docs-
|
|
62
|
+
{ path: "src/docs/example/docs-flight-demos.ts", line: 106, label: "radio" },
|
|
68
63
|
],
|
|
69
64
|
},
|
|
70
|
-
"docs-
|
|
65
|
+
"docs-flight-delayed-switch-demo": {
|
|
71
66
|
sources: [
|
|
72
|
-
{ path: "src/docs/example/docs-
|
|
67
|
+
{ path: "src/docs/example/docs-flight-demos.ts", line: 129, label: "switch" },
|
|
73
68
|
],
|
|
74
69
|
},
|
|
75
70
|
"docs-queue-users-demo": {
|
|
76
71
|
sources: [
|
|
77
|
-
{ path: "src/docs/example/docs-queue-demos.ts", line:
|
|
72
|
+
{ path: "src/docs/example/docs-queue-demos.ts", line: 45, label: "filter" },
|
|
78
73
|
],
|
|
79
74
|
},
|
|
80
75
|
"docs-queue-geo-demo": {
|
|
81
76
|
sources: [
|
|
82
|
-
{ path: "src/docs/example/docs-queue-demos.ts", line:
|
|
83
|
-
],
|
|
84
|
-
},
|
|
85
|
-
"docs-input-autocomplete-basic-demo": {
|
|
86
|
-
sources: [
|
|
87
|
-
{
|
|
88
|
-
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
89
|
-
line: 11,
|
|
90
|
-
label: "basic",
|
|
91
|
-
},
|
|
92
|
-
],
|
|
93
|
-
},
|
|
94
|
-
"docs-input-autocomplete-code-demo": {
|
|
95
|
-
sources: [
|
|
96
|
-
{
|
|
97
|
-
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
98
|
-
line: 36,
|
|
99
|
-
label: "code",
|
|
100
|
-
},
|
|
101
|
-
],
|
|
102
|
-
},
|
|
103
|
-
"docs-input-autocomplete-select-demo": {
|
|
104
|
-
sources: [
|
|
105
|
-
{
|
|
106
|
-
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
107
|
-
line: 63,
|
|
108
|
-
label: "select",
|
|
109
|
-
},
|
|
110
|
-
],
|
|
111
|
-
},
|
|
112
|
-
"docs-input-autocomplete-keyboard-demo": {
|
|
113
|
-
sources: [
|
|
114
|
-
{
|
|
115
|
-
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
116
|
-
line: 91,
|
|
117
|
-
label: "keyboard",
|
|
118
|
-
},
|
|
77
|
+
{ path: "src/docs/example/docs-queue-demos.ts", line: 26, label: "lazy load" },
|
|
119
78
|
],
|
|
120
79
|
},
|
|
121
80
|
"docs-users-list": {
|
|
@@ -136,29 +95,24 @@ export const DOCS_LIT_DEMO_REGISTRY: Record<string, DocsLitDemoConfig> = {
|
|
|
136
95
|
sources: [
|
|
137
96
|
{
|
|
138
97
|
path: "src/docs/example/docs-jsonata-demos.ts",
|
|
139
|
-
line:
|
|
98
|
+
line: 73,
|
|
140
99
|
label: "totals",
|
|
141
100
|
},
|
|
142
101
|
],
|
|
143
102
|
},
|
|
144
103
|
"docs-list-alternate-demo": {
|
|
145
104
|
sources: [
|
|
146
|
-
{ path: "src/docs/example/docs-list-demos.ts", line:
|
|
147
|
-
],
|
|
148
|
-
},
|
|
149
|
-
"docs-list-template-key-demo": {
|
|
150
|
-
sources: [
|
|
151
|
-
{ path: "src/docs/example/docs-list-demos.ts", line: 79, label: "templateKey" },
|
|
105
|
+
{ path: "src/docs/example/docs-list-demos.ts", line: 9, label: "alternate" },
|
|
152
106
|
],
|
|
153
107
|
},
|
|
154
108
|
"docs-list-separator-demo": {
|
|
155
109
|
sources: [
|
|
156
|
-
{ path: "src/docs/example/docs-list-demos.ts", line:
|
|
110
|
+
{ path: "src/docs/example/docs-list-demos.ts", line: 39, label: "separator" },
|
|
157
111
|
],
|
|
158
112
|
},
|
|
159
113
|
"docs-list-extract-values-demo": {
|
|
160
114
|
sources: [
|
|
161
|
-
{ path: "src/docs/example/docs-list-demos.ts", line:
|
|
115
|
+
{ path: "src/docs/example/docs-list-demos.ts", line: 75, label: "extractValues" },
|
|
162
116
|
],
|
|
163
117
|
},
|
|
164
118
|
"docs-router-basic-demo": {
|
|
@@ -237,14 +191,14 @@ export const DOCS_LIT_DEMO_REGISTRY: Record<string, DocsLitDemoConfig> = {
|
|
|
237
191
|
},
|
|
238
192
|
"docs-api-config-scoped-attrs-demo": {
|
|
239
193
|
sources: [
|
|
240
|
-
{ path: "src/docs/example/docs-api-config-demos.ts", line:
|
|
194
|
+
{ path: "src/docs/example/docs-api-config-demos.ts", line: 161, label: "scope" },
|
|
241
195
|
],
|
|
242
196
|
},
|
|
243
197
|
"docs-api-config-events-token-demo": {
|
|
244
198
|
sources: [
|
|
245
199
|
{
|
|
246
200
|
path: "src/docs/example/docs-api-config-demos.ts",
|
|
247
|
-
line:
|
|
201
|
+
line: 190,
|
|
248
202
|
label: "eventsApiToken",
|
|
249
203
|
},
|
|
250
204
|
],
|
|
@@ -261,49 +215,27 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
|
|
|
261
215
|
{ path: "src/docs/example/users.ts", label: "docs-user" },
|
|
262
216
|
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
263
217
|
],
|
|
264
|
-
"docs-
|
|
265
|
-
{ path: "src/docs/example/docs-
|
|
218
|
+
"docs-flight-search-demo": [
|
|
219
|
+
{ path: "src/docs/example/docs-flight-demos.ts", label: "flight demos" },
|
|
220
|
+
{ path: "src/docs/mock-api/flights.ts", label: "mock flights" },
|
|
266
221
|
],
|
|
267
222
|
"docs-jsonata-space-cats-demo": [
|
|
268
223
|
{ path: "src/docs/example/docs-jsonata-demos.ts", label: "jsonata demos" },
|
|
269
|
-
{ path: "src/docs/mock-api/fixtures-jsonata.ts", label: "fixtures" },
|
|
270
224
|
],
|
|
271
225
|
"docs-jsonata-table-totals-demo": [
|
|
272
226
|
{ path: "src/docs/example/docs-jsonata-demos.ts", label: "jsonata demos" },
|
|
273
|
-
{ path: "src/docs/mock-api/fixtures-jsonata.ts", label: "fixtures" },
|
|
274
227
|
],
|
|
275
|
-
"docs-
|
|
276
|
-
{ path: "src/docs/example/docs-
|
|
228
|
+
"docs-flight-direction-demo": [
|
|
229
|
+
{ path: "src/docs/example/docs-flight-demos.ts", label: "flight demos" },
|
|
230
|
+
{ path: "src/docs/mock-api/flights.ts", label: "mock flights" },
|
|
277
231
|
],
|
|
278
232
|
"docs-queue-geo-demo": [
|
|
279
233
|
{ path: "src/docs/example/docs-queue-demos.ts", label: "queue demos" },
|
|
280
|
-
|
|
281
|
-
"docs-input-autocomplete-basic-demo": [
|
|
282
|
-
{
|
|
283
|
-
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
284
|
-
label: "autocomplete demos",
|
|
285
|
-
},
|
|
286
|
-
],
|
|
287
|
-
"docs-input-autocomplete-code-demo": [
|
|
288
|
-
{
|
|
289
|
-
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
290
|
-
label: "autocomplete demos",
|
|
291
|
-
},
|
|
292
|
-
],
|
|
293
|
-
"docs-input-autocomplete-select-demo": [
|
|
294
|
-
{
|
|
295
|
-
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
296
|
-
label: "autocomplete demos",
|
|
297
|
-
},
|
|
298
|
-
],
|
|
299
|
-
"docs-input-autocomplete-keyboard-demo": [
|
|
300
|
-
{
|
|
301
|
-
path: "src/docs/example/docs-input-autocomplete-demos.ts",
|
|
302
|
-
label: "autocomplete demos",
|
|
303
|
-
},
|
|
234
|
+
{ path: "src/docs/mock-api/flights.ts", label: "mock flights" },
|
|
304
235
|
],
|
|
305
236
|
"docs-queue-users-demo": [
|
|
306
237
|
{ path: "src/docs/example/docs-queue-demos.ts", label: "queue demos" },
|
|
238
|
+
{ path: "src/docs/mock-api/flights.ts", label: "mock flights" },
|
|
307
239
|
],
|
|
308
240
|
"docs-toggle-if-demo": [
|
|
309
241
|
{ path: "src/docs/example/docs-toggle-demos.ts", label: "toggle demos" },
|
|
@@ -314,34 +246,31 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
|
|
|
314
246
|
"demo-publish": [
|
|
315
247
|
{
|
|
316
248
|
path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
|
|
317
|
-
line:
|
|
249
|
+
line: 81,
|
|
318
250
|
label: "demo-publish",
|
|
319
251
|
},
|
|
320
|
-
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
321
252
|
],
|
|
322
253
|
"demo-subscribe-dynamic": [
|
|
323
254
|
{
|
|
324
255
|
path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
|
|
325
|
-
line:
|
|
256
|
+
line: 263,
|
|
326
257
|
label: "demo-subscribe-dynamic",
|
|
327
258
|
},
|
|
328
|
-
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
329
259
|
],
|
|
330
260
|
"demo-sub-template": [
|
|
331
261
|
{
|
|
332
262
|
path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
|
|
333
|
-
line:
|
|
263
|
+
line: 244,
|
|
334
264
|
label: "demo-sub-template",
|
|
335
265
|
},
|
|
336
|
-
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
337
266
|
],
|
|
338
267
|
"demo-api-get": [
|
|
339
268
|
{
|
|
340
269
|
path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
|
|
341
|
-
line:
|
|
270
|
+
line: 121,
|
|
342
271
|
label: "demo-api-get",
|
|
343
272
|
},
|
|
344
|
-
{ path: "src/docs/example/decorators-demo-geo.ts", label: "
|
|
273
|
+
{ path: "src/docs/example/decorators-demo-geo.ts", label: "flights API" },
|
|
345
274
|
{ path: "src/docs/mock-api/router.ts", label: "mock router" },
|
|
346
275
|
],
|
|
347
276
|
"demo-api-get-method": [
|
|
@@ -349,28 +278,28 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
|
|
|
349
278
|
path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
|
|
350
279
|
label: "demo-api-get-method",
|
|
351
280
|
},
|
|
352
|
-
{ path: "src/docs/example/decorators-demo-geo.ts", label: "
|
|
281
|
+
{ path: "src/docs/example/decorators-demo-geo.ts", label: "flights API" },
|
|
353
282
|
],
|
|
354
283
|
"demo-api-get-configuration-key": [
|
|
355
284
|
{
|
|
356
285
|
path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
|
|
357
|
-
line:
|
|
286
|
+
line: 181,
|
|
358
287
|
label: "demo-api-get-configuration-key",
|
|
359
288
|
},
|
|
360
|
-
{ path: "src/docs/example/decorators-demo-geo.ts", label: "
|
|
289
|
+
{ path: "src/docs/example/decorators-demo-geo.ts", label: "flights API" },
|
|
361
290
|
],
|
|
362
291
|
"demo-api-get-publish-subscribe": [
|
|
363
292
|
{
|
|
364
293
|
path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
|
|
365
|
-
line:
|
|
294
|
+
line: 217,
|
|
366
295
|
label: "demo-api-get-publish-subscribe",
|
|
367
296
|
},
|
|
368
|
-
{ path: "src/docs/example/decorators-demo-geo.ts", label: "
|
|
297
|
+
{ path: "src/docs/example/decorators-demo-geo.ts", label: "flights API" },
|
|
369
298
|
],
|
|
370
299
|
"demo-api-post": [
|
|
371
300
|
{
|
|
372
301
|
path: "src/docs/example/decorators-demo-post.ts",
|
|
373
|
-
line:
|
|
302
|
+
line: 69,
|
|
374
303
|
label: "demo-api-post",
|
|
375
304
|
},
|
|
376
305
|
{ path: "src/docs/mock-api/router.ts", label: "mock router" },
|
|
@@ -385,15 +314,15 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
|
|
|
385
314
|
"demo-api-post-dynamic": [
|
|
386
315
|
{
|
|
387
316
|
path: "src/docs/example/decorators-demo-post.ts",
|
|
388
|
-
line:
|
|
317
|
+
line: 144,
|
|
389
318
|
label: "demo-api-post-dynamic",
|
|
390
319
|
},
|
|
391
|
-
{ path: "src/docs/mock-api/router.ts", label: "mock router (
|
|
320
|
+
{ path: "src/docs/mock-api/router.ts", label: "mock router (check-in sync)" },
|
|
392
321
|
],
|
|
393
322
|
"demo-api-post-publish": [
|
|
394
323
|
{
|
|
395
324
|
path: "src/docs/example/decorators-demo-post.ts",
|
|
396
|
-
line:
|
|
325
|
+
line: 191,
|
|
397
326
|
label: "demo-api-post-publish",
|
|
398
327
|
},
|
|
399
328
|
{ path: "src/docs/mock-api/router.ts", label: "mock router" },
|
|
@@ -401,27 +330,24 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
|
|
|
401
330
|
"demo-handle": [
|
|
402
331
|
{
|
|
403
332
|
path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
|
|
404
|
-
line:
|
|
333
|
+
line: 299,
|
|
405
334
|
label: "demo-handle",
|
|
406
335
|
},
|
|
407
|
-
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
408
336
|
],
|
|
409
337
|
"demo-handle-dynamic": [
|
|
410
338
|
{
|
|
411
339
|
path: "src/docs/example/decorators-demo-subscribe-publish-get-demos.ts",
|
|
412
|
-
line:
|
|
340
|
+
line: 330,
|
|
413
341
|
label: "demo-handle-dynamic",
|
|
414
342
|
},
|
|
415
|
-
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
416
343
|
],
|
|
417
344
|
"demo-bind": [
|
|
418
|
-
{ path: "src/docs/example/decorators-demo-bind-demos.ts", line:
|
|
419
|
-
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
345
|
+
{ path: "src/docs/example/decorators-demo-bind-demos.ts", line: 36, label: "demo-bind" },
|
|
420
346
|
],
|
|
421
347
|
"demo-bind-reflect": [
|
|
422
348
|
{
|
|
423
349
|
path: "src/docs/example/decorators-demo-bind-demos.ts",
|
|
424
|
-
line:
|
|
350
|
+
line: 74,
|
|
425
351
|
label: "demo-bind-reflect",
|
|
426
352
|
},
|
|
427
353
|
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
@@ -429,18 +355,17 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
|
|
|
429
355
|
"demo-bind-dynamic": [
|
|
430
356
|
{
|
|
431
357
|
path: "src/docs/example/decorators-demo-bind-demos.ts",
|
|
432
|
-
line:
|
|
358
|
+
line: 113,
|
|
433
359
|
label: "demo-bind-dynamic",
|
|
434
360
|
},
|
|
435
|
-
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
436
361
|
],
|
|
437
362
|
"demo-ancestor-attribute": [
|
|
438
|
-
{ path: "src/docs/example/decorators-demo.ts", line:
|
|
363
|
+
{ path: "src/docs/example/decorators-demo.ts", line: 31, label: "demo-ancestor-attribute" },
|
|
439
364
|
],
|
|
440
365
|
"demo-ancestor-attribute-dynamic-section": [
|
|
441
366
|
{
|
|
442
367
|
path: "src/docs/example/decorators-demo.ts",
|
|
443
|
-
line:
|
|
368
|
+
line: 81,
|
|
444
369
|
label: "demo-ancestor-attribute-dynamic",
|
|
445
370
|
},
|
|
446
371
|
{
|
|
@@ -450,25 +375,25 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
|
|
|
450
375
|
},
|
|
451
376
|
],
|
|
452
377
|
"demo-on-assign": [
|
|
453
|
-
{ path: "src/docs/example/decorators-demo.ts", line:
|
|
378
|
+
{ path: "src/docs/example/decorators-demo.ts", line: 205, label: "demo-on-assign" },
|
|
454
379
|
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
455
380
|
],
|
|
456
381
|
"demo-on-assign-dynamic": [
|
|
457
382
|
{
|
|
458
383
|
path: "src/docs/example/decorators-demo.ts",
|
|
459
|
-
line:
|
|
384
|
+
line: 253,
|
|
460
385
|
label: "demo-on-assign-dynamic",
|
|
461
386
|
},
|
|
462
387
|
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
463
388
|
],
|
|
464
389
|
"demo-auto-subscribe": [
|
|
465
|
-
{ path: "src/docs/example/decorators-demo.ts", line:
|
|
390
|
+
{ path: "src/docs/example/decorators-demo.ts", line: 366, label: "demo-auto-subscribe" },
|
|
466
391
|
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
467
392
|
],
|
|
468
393
|
"demo-wait-ancestors-section": [
|
|
469
394
|
{
|
|
470
395
|
path: "src/docs/example/decorators-demo.ts",
|
|
471
|
-
line:
|
|
396
|
+
line: 430,
|
|
472
397
|
label: "demo-wait-ancestors-section",
|
|
473
398
|
},
|
|
474
399
|
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
@@ -476,7 +401,7 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
|
|
|
476
401
|
"demo-wait-ancestors-multi-section": [
|
|
477
402
|
{
|
|
478
403
|
path: "src/docs/example/decorators-demo.ts",
|
|
479
|
-
line:
|
|
404
|
+
line: 507,
|
|
480
405
|
label: "demo-wait-ancestors-multi-section",
|
|
481
406
|
},
|
|
482
407
|
{ path: "src/docs/example/decorators-demo-init.ts", label: "demo data" },
|
|
@@ -484,14 +409,14 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
|
|
|
484
409
|
"demo-wait-ancestors-static-section": [
|
|
485
410
|
{
|
|
486
411
|
path: "src/docs/example/decorators-demo.ts",
|
|
487
|
-
line:
|
|
412
|
+
line: 610,
|
|
488
413
|
label: "demo-wait-ancestors-static-section",
|
|
489
414
|
},
|
|
490
415
|
],
|
|
491
416
|
"demo-wait-ancestors-ready-section": [
|
|
492
417
|
{
|
|
493
418
|
path: "src/docs/example/decorators-demo.ts",
|
|
494
|
-
line:
|
|
419
|
+
line: 584,
|
|
495
420
|
label: "demo-wait-ancestors-ready-section",
|
|
496
421
|
},
|
|
497
422
|
],
|
|
@@ -503,15 +428,6 @@ export const DOCS_DEMO_SOURCE_REGISTRY: Record<string, DocsSource[]> = {
|
|
|
503
428
|
{ path: "src/core/components/functional/list/list.demo.ts", label: "sonic-list-demo" },
|
|
504
429
|
{ path: "src/docs/mock-api/router.ts", label: "mock router" },
|
|
505
430
|
],
|
|
506
|
-
"queue-users-scroll": [
|
|
507
|
-
{ path: "src/docs/example/docs-queue-demos.ts", label: "docs-queue-users-demo" },
|
|
508
|
-
{ path: "src/docs/example/users.ts", label: "docs-user" },
|
|
509
|
-
],
|
|
510
|
-
/** Inline list.md fetch demo — component + mock. */
|
|
511
|
-
"list-users-fetch": [
|
|
512
|
-
{ path: "src/docs/example/docs-users-list.ts", label: "docs-users-list" },
|
|
513
|
-
{ path: "src/docs/mock-api/router.ts", label: "mock API" },
|
|
514
|
-
],
|
|
515
431
|
"docs-submit-demo": [
|
|
516
432
|
{ path: "src/docs/example/docs-submit-demos.ts", label: "submit demo" },
|
|
517
433
|
{ path: "src/docs/mock-api/router.ts", label: "mock API (POST register)" },
|
|
@@ -603,7 +519,6 @@ export class DocsDemoSources extends LitElement {
|
|
|
603
519
|
const sources = DOCS_DEMO_SOURCE_REGISTRY[this.forTag];
|
|
604
520
|
if (!sources?.length) return nothing;
|
|
605
521
|
return html`
|
|
606
|
-
${docsSourceLinks(sources)}
|
|
607
522
|
${this.showCode && this.highlighted
|
|
608
523
|
? html`
|
|
609
524
|
<pre
|
|
@@ -2,7 +2,6 @@ import { css, html, LitElement, nothing, PropertyValues } from "lit";
|
|
|
2
2
|
import { customElement, property } from "lit/decorators.js";
|
|
3
3
|
import { unsafeHTML } from "lit/directives/unsafe-html.js";
|
|
4
4
|
import { tailwind } from "../tailwind";
|
|
5
|
-
import { docsSourceLinks } from "./docs-source-link";
|
|
6
5
|
import {
|
|
7
6
|
DOCS_LIT_DEMO_REGISTRY,
|
|
8
7
|
type DocsLitDemoConfig,
|
|
@@ -40,7 +39,7 @@ export class DocsLitDemo extends LitElement {
|
|
|
40
39
|
margin: 1.1rem 0;
|
|
41
40
|
}
|
|
42
41
|
.preview {
|
|
43
|
-
border: 1px solid var(--sc-border, #e5e5e5);
|
|
42
|
+
border: 1px solid var(--sc-border-color, #e5e5e5);
|
|
44
43
|
border-radius: 0.375rem;
|
|
45
44
|
padding: 1rem;
|
|
46
45
|
margin-bottom: 0.75rem;
|
|
@@ -81,7 +80,6 @@ export class DocsLitDemo extends LitElement {
|
|
|
81
80
|
const excerpt = this.excerpt;
|
|
82
81
|
|
|
83
82
|
return html`
|
|
84
|
-
${docsSourceLinks(cfg.sources)}
|
|
85
83
|
<div class="preview" data-live-host></div>
|
|
86
84
|
${this.showCode && excerpt
|
|
87
85
|
? unsafeHTML(
|
|
@@ -1,88 +1,6 @@
|
|
|
1
|
-
import { html, nothing } from "lit";
|
|
2
|
-
import "../../core/components/ui/button/button";
|
|
3
|
-
import "../../core/components/ui/icon/icon";
|
|
4
|
-
|
|
5
|
-
declare const __DOCS_EDITOR_AVAILABLE__: boolean;
|
|
6
|
-
|
|
7
1
|
export type DocsSource = {
|
|
8
2
|
path: string;
|
|
9
3
|
line?: number;
|
|
10
4
|
column?: number;
|
|
11
5
|
label?: string;
|
|
12
6
|
};
|
|
13
|
-
|
|
14
|
-
const editorAvailable =
|
|
15
|
-
import.meta.env.DEV &&
|
|
16
|
-
typeof __DOCS_EDITOR_AVAILABLE__ !== "undefined" &&
|
|
17
|
-
__DOCS_EDITOR_AVAILABLE__;
|
|
18
|
-
|
|
19
|
-
function openDocsSource(source: DocsSource, event: Event) {
|
|
20
|
-
event.preventDefault();
|
|
21
|
-
if (!editorAvailable) return;
|
|
22
|
-
|
|
23
|
-
const params = new URLSearchParams({
|
|
24
|
-
path: source.path,
|
|
25
|
-
line: String(source.line ?? 1),
|
|
26
|
-
column: String(source.column ?? 1),
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
void fetch(`/__docs/open?${params}`).catch(() => {
|
|
30
|
-
console.warn("[docs] Could not open in editor:", source.path);
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export function docsSourceLink(source: DocsSource) {
|
|
35
|
-
if (!editorAvailable) return nothing;
|
|
36
|
-
const label = source.label ?? source.path.split("/").pop() ?? "source";
|
|
37
|
-
return html`
|
|
38
|
-
<sonic-button
|
|
39
|
-
variant="link"
|
|
40
|
-
size="2xs"
|
|
41
|
-
type="neutral"
|
|
42
|
-
title=${source.path}
|
|
43
|
-
@click=${(e: Event) => openDocsSource(source, e)}
|
|
44
|
-
>
|
|
45
|
-
<sonic-icon
|
|
46
|
-
library="heroicons"
|
|
47
|
-
name="arrow-top-right-on-square"
|
|
48
|
-
class="w-3 h-3 opacity-70"
|
|
49
|
-
></sonic-icon>
|
|
50
|
-
${label}
|
|
51
|
-
</sonic-button>
|
|
52
|
-
`;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export function docsSourceLinks(sources: DocsSource[]) {
|
|
56
|
-
if (sources.length === 0) return nothing;
|
|
57
|
-
return html`
|
|
58
|
-
<div
|
|
59
|
-
class="flex flex-wrap items-center gap-x-1 gap-y-1 mb-3 pb-3 border-b border-neutral-200/80 dark:border-neutral-700/80"
|
|
60
|
-
>
|
|
61
|
-
<span class="text-xs uppercase tracking-wide text-neutral-400 mr-1"
|
|
62
|
-
>Source</span
|
|
63
|
-
>
|
|
64
|
-
${editorAvailable
|
|
65
|
-
? sources.map((s, i) =>
|
|
66
|
-
i === 0
|
|
67
|
-
? docsSourceLink(s)
|
|
68
|
-
: html`<span class="text-neutral-300 dark:text-neutral-600"
|
|
69
|
-
>·</span
|
|
70
|
-
>${docsSourceLink(s)}`,
|
|
71
|
-
)
|
|
72
|
-
: sources.map(
|
|
73
|
-
(s, i) => html`
|
|
74
|
-
${i > 0
|
|
75
|
-
? html`<span class="text-neutral-300 dark:text-neutral-600"
|
|
76
|
-
>·</span
|
|
77
|
-
>`
|
|
78
|
-
: nothing}
|
|
79
|
-
<span
|
|
80
|
-
class="text-xs font-mono text-neutral-500 dark:text-neutral-400"
|
|
81
|
-
title=${s.path}
|
|
82
|
-
>${s.label ?? s.path.split("/").pop()}</span
|
|
83
|
-
>
|
|
84
|
-
`,
|
|
85
|
-
)}
|
|
86
|
-
</div>
|
|
87
|
-
`;
|
|
88
|
-
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# @ancestorAttribute
|
|
2
|
+
|
|
3
|
+
Copies the value of an attribute from the nearest element that carries it (the host itself, then its ancestors, across shadow roots) into a class property. Use it to pick up a scope such as `dataProvider` without passing it down by hand, typically to feed a dynamic key of [@subscribe](/docs/decorators/subscribe).
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
<sonic-code language="typescript">
|
|
8
|
+
<template>
|
|
9
|
+
import { ancestorAttribute } from "@supersoniks/concorde/decorators";
|
|
10
|
+
|
|
11
|
+
@ancestorAttribute("dataProvider")
|
|
12
|
+
dataProvider: string | null = null;
|
|
13
|
+
</template>
|
|
14
|
+
</sonic-code>
|
|
15
|
+
|
|
16
|
+
## Read once at connect
|
|
17
|
+
|
|
18
|
+
By default the value is read once, just before the component's `connectedCallback`, and never updated. The closest element with the attribute wins. If no ancestor has it, the property keeps its initial value.
|
|
19
|
+
|
|
20
|
+
<sonic-code>
|
|
21
|
+
<template>
|
|
22
|
+
<div dataProvider="flights.CN001" gate="B12">
|
|
23
|
+
<docs-demo-sources for="demo-ancestor-attribute"></docs-demo-sources>
|
|
24
|
+
<demo-ancestor-attribute></demo-ancestor-attribute>
|
|
25
|
+
</div>
|
|
26
|
+
</template>
|
|
27
|
+
</sonic-code>
|
|
28
|
+
|
|
29
|
+
An attribute present without a value (`<div gate>`) resolves to `""`. A camelCase name also matches its lowercase form (`dataProvider` and `dataprovider`).
|
|
30
|
+
|
|
31
|
+
## Follow DOM changes
|
|
32
|
+
|
|
33
|
+
With `{ dynamic: true }`, the property stays in sync while the component is connected: when an ancestor changes the attribute, when a closer ancestor gains or loses it, and when the component is moved. When no ancestor has the attribute, the property becomes `null`. Add `@state()` so Lit re-renders on each assignment.
|
|
34
|
+
|
|
35
|
+
<sonic-code language="typescript">
|
|
36
|
+
<template>
|
|
37
|
+
@ancestorAttribute("dataProvider", { dynamic: true })
|
|
38
|
+
@state()
|
|
39
|
+
dataProvider: string | null = null;
|
|
40
|
+
</template>
|
|
41
|
+
</sonic-code>
|
|
42
|
+
|
|
43
|
+
Change the parent or outer value, insert a closer wrapper, or remove an attribute: the child always shows the nearest one.
|
|
44
|
+
|
|
45
|
+
<sonic-code>
|
|
46
|
+
<template>
|
|
47
|
+
<docs-demo-sources for="demo-ancestor-attribute-dynamic-section"></docs-demo-sources>
|
|
48
|
+
<demo-ancestor-attribute-dynamic-section></demo-ancestor-attribute-dynamic-section>
|
|
49
|
+
</template>
|
|
50
|
+
</sonic-code>
|
|
51
|
+
|
|
52
|
+
Keys of [@subscribe](/docs/decorators/subscribe) and [@bind](/docs/decorators/bind) that use the property as a placeholder (`"${dataProvider}"`) are re-resolved on each change.
|
|
53
|
+
|
|
54
|
+
## API reference
|
|
55
|
+
|
|
56
|
+
| Argument | Type | Description |
|
|
57
|
+
|----------|------|-------------|
|
|
58
|
+
| `attributeName` | `string` | Attribute to look up on the host, then on its ancestors |
|
|
59
|
+
| `options.dynamic` | `boolean` (default `false`) | Keep the property in sync with attribute changes and reparenting until disconnect; assigns `null` when no ancestor has the attribute |
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# @autoSubscribe
|
|
2
|
+
|
|
3
|
+
Legacy decorator that re-runs a method whenever one of the store values it reads is assigned. For new code, prefer [@subscribe](/docs/decorators/subscribe) with a [`DataProviderKey`](/docs/misc/dataProviderKey): dependencies are explicit and typed.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
<sonic-code language="typescript">
|
|
8
|
+
<template>
|
|
9
|
+
import { autoSubscribe } from "@supersoniks/concorde/decorators";
|
|
10
|
+
import { get } from "@supersoniks/concorde/utils";
|
|
11
|
+
|
|
12
|
+
@autoSubscribe()
|
|
13
|
+
updateDisplay() {
|
|
14
|
+
this.total = get(passengersKey) + get(crewKey);
|
|
15
|
+
}
|
|
16
|
+
</template>
|
|
17
|
+
</sonic-code>
|
|
18
|
+
|
|
19
|
+
## Tracked reads
|
|
20
|
+
|
|
21
|
+
The method runs once after `connectedCallback`. Every store value read during that run becomes a dependency; assigning any of them runs the method again. Write the result to a `@state()` property (or call `requestUpdate()`) so the component re-renders.
|
|
22
|
+
|
|
23
|
+
<sonic-code>
|
|
24
|
+
<template>
|
|
25
|
+
<docs-demo-sources for="demo-auto-subscribe"></docs-demo-sources>
|
|
26
|
+
<demo-auto-subscribe></demo-auto-subscribe>
|
|
27
|
+
</template>
|
|
28
|
+
</sonic-code>
|
|
29
|
+
|
|
30
|
+
## Notes
|
|
31
|
+
|
|
32
|
+
- Several assignments in the same task trigger a single re-run (batched with `queueMicrotask`).
|
|
33
|
+
- Keep reads unconditional: a value read only behind a condition becomes a dependency the first time that branch runs.
|
|
34
|
+
- Subscriptions are removed in `disconnectedCallback`.
|
|
35
|
+
|
|
36
|
+
## API reference
|
|
37
|
+
|
|
38
|
+
| Argument | Type | Description |
|
|
39
|
+
|----------|------|-------------|
|
|
40
|
+
| none | | `@autoSubscribe()` takes no argument; apply it to a method of a custom element |
|