@supersoniks/concorde 5.1.1 → 5.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/concorde-docs/SKILL.md +153 -0
- package/.agents/skills/{concorde-component-docs/template.md → concorde-docs/templates/component.md} +6 -2
- package/.agents/skills/concorde-docs/templates/decorator.md +43 -0
- package/.agents/skills/concorde-docs/templates/guide.md +25 -0
- package/PLAN-DOCS-AGENTS.md +80 -0
- package/README.md +4 -4
- package/ai/README.md +29 -41
- package/ai/skills/concorde/SKILL.md +54 -324
- package/ai/skills/concorde/rules/composition.md +32 -0
- package/ai/skills/concorde/rules/data.md +47 -0
- package/ai/skills/concorde/rules/http.md +25 -0
- package/ai/skills/concorde/rules/lists-forms.md +35 -0
- package/ai/skills/concorde/rules/styling.md +46 -0
- package/ai/skills/concorde/rules/troubleshooting.md +45 -0
- package/build-infos.json +1 -1
- package/concorde-core.bundle.js +21 -21
- package/concorde-core.es.js +977 -980
- package/custom-elements-manifest.public.config.mjs +8 -0
- package/{.tmp-cem/custom-elements.json → custom-elements.json} +11758 -8904
- package/dist/concorde-core.bundle.js +21 -21
- package/dist/concorde-core.es.js +977 -980
- package/dist/docs-mock-api-sw.js +58 -223
- package/dist/docs-mock-api-sw.js.map +4 -4
- package/dist/img/concorde/plane_01.jpg +0 -0
- package/dist/img/concorde/plane_02.jpg +0 -0
- package/dist/img/concorde/plane_03.jpg +0 -0
- package/dist/img/concorde/plane_04.jpg +0 -0
- package/dist/img/concorde/plane_05.jpg +0 -0
- package/dist/img/concorde/plane_06.jpg +0 -0
- package/dist/img/concorde/plane_07.jpg +0 -0
- package/dist/img/concorde/plane_08.jpg +0 -0
- package/dist/img/concorde/plane_09.jpg +0 -0
- package/dist/img/concorde/plane_10.jpg +0 -0
- package/dist/img/concorde/plane_11.jpg +0 -0
- package/dist/img/concorde/plane_12.jpg +0 -0
- package/dist/img/concorde/plane_13.jpg +0 -0
- package/dist/img/og-concorde.jpg +0 -0
- package/dist/robots.txt +11 -10
- package/docs/.htaccess +82 -0
- package/docs/404.html +15 -0
- package/docs/404.md +5 -0
- package/docs/about.html +111 -0
- package/docs/about.md +22 -0
- package/docs/assets/{index-Bb-_LRyY.js → index-6sS76xWj.js} +2625 -3158
- package/docs/assets/index-DkdPbH0F.css +1 -0
- package/docs/core/components/functional/date/date.html +211 -0
- package/docs/core/components/functional/date/date.md +150 -0
- package/docs/core/components/functional/fetch/fetch.html +180 -0
- package/docs/core/components/functional/fetch/fetch.md +108 -0
- package/docs/core/components/functional/if/if.html +65 -0
- package/docs/core/components/functional/if/if.md +34 -0
- package/docs/core/components/functional/jsonata/jsonata.html +110 -0
- package/docs/core/components/functional/jsonata/jsonata.md +61 -0
- package/docs/core/components/functional/list/list.html +200 -0
- package/docs/core/components/functional/list/list.md +125 -0
- package/docs/core/components/functional/mix/mix.html +78 -0
- package/docs/core/components/functional/mix/mix.md +46 -0
- package/docs/core/components/functional/queue/queue.html +155 -0
- package/docs/core/components/functional/queue/queue.md +51 -0
- package/docs/core/components/functional/router/router.html +154 -0
- package/docs/core/components/functional/router/router.md +93 -0
- package/docs/core/components/functional/sdui/sdui-extension-points.html +127 -0
- package/docs/core/components/functional/sdui/sdui-extension-points.md +94 -0
- package/docs/core/components/functional/sdui/sdui.html +397 -0
- package/docs/core/components/functional/sdui/sdui.md +307 -0
- package/docs/core/components/functional/states/states.html +141 -0
- package/docs/core/components/functional/states/states.md +112 -0
- package/docs/core/components/functional/submit/submit.html +178 -0
- package/docs/core/components/functional/submit/submit.md +106 -0
- package/docs/core/components/functional/subscriber/subscriber.html +68 -0
- package/docs/core/components/functional/subscriber/subscriber.md +91 -0
- package/docs/core/components/functional/translation/translation.html +60 -0
- package/docs/core/components/functional/translation/translation.md +38 -0
- package/docs/core/components/functional/value/value.html +81 -0
- package/docs/core/components/functional/value/value.md +47 -0
- package/docs/core/components/ui/alert/alert.html +201 -0
- package/docs/core/components/ui/alert/alert.md +186 -0
- package/docs/core/components/ui/alert-messages/alert-messages.html +132 -0
- package/docs/core/components/ui/alert-messages/alert-messages.md +85 -0
- package/docs/core/components/ui/badge/badge.html +197 -0
- package/docs/core/components/ui/badge/badge.md +181 -0
- package/docs/core/components/ui/button/button.html +309 -0
- package/docs/core/components/ui/button/button.md +216 -0
- package/docs/core/components/ui/captcha/captcha.html +80 -0
- package/docs/core/components/ui/captcha/captcha.md +56 -0
- package/docs/core/components/ui/card/card.html +254 -0
- package/docs/core/components/ui/card/card.md +215 -0
- package/docs/core/components/ui/divider/divider.html +144 -0
- package/docs/core/components/ui/divider/divider.md +126 -0
- package/docs/core/components/ui/form/checkbox/checkbox.html +200 -0
- package/docs/core/components/ui/form/checkbox/checkbox.md +125 -0
- package/docs/core/components/ui/form/fieldset/fieldset.html +238 -0
- package/docs/core/components/ui/form/fieldset/fieldset.md +161 -0
- package/docs/core/components/ui/form/form-actions/form-actions.html +122 -0
- package/docs/core/components/ui/form/form-actions/form-actions.md +98 -0
- package/docs/core/components/ui/form/form-layout/form-layout.html +115 -0
- package/docs/core/components/ui/form/form-layout/form-layout.md +109 -0
- package/docs/core/components/ui/form/input/input.html +235 -0
- package/docs/core/components/ui/form/input/input.md +142 -0
- package/docs/core/components/ui/form/radio/radio.html +144 -0
- package/docs/core/components/ui/form/radio/radio.md +78 -0
- package/docs/core/components/ui/form/select/select.html +178 -0
- package/docs/core/components/ui/form/select/select.md +86 -0
- package/docs/core/components/ui/form/switch/switch.html +146 -0
- package/docs/core/components/ui/form/switch/switch.md +80 -0
- package/docs/core/components/ui/form/textarea/textarea.html +162 -0
- package/docs/core/components/ui/form/textarea/textarea.md +82 -0
- package/docs/core/components/ui/group/group.html +113 -0
- package/docs/core/components/ui/group/group.md +77 -0
- package/docs/core/components/ui/icon/icon.html +223 -0
- package/docs/core/components/ui/icon/icon.md +214 -0
- package/docs/core/components/ui/image/image.html +194 -0
- package/docs/core/components/ui/image/image.md +167 -0
- package/docs/core/components/ui/link/link.html +101 -0
- package/docs/core/components/ui/link/link.md +81 -0
- package/docs/core/components/ui/loader/loader.html +114 -0
- package/docs/core/components/ui/loader/loader.md +87 -0
- package/docs/core/components/ui/menu/menu.html +395 -0
- package/docs/core/components/ui/menu/menu.md +370 -0
- package/docs/core/components/ui/modal/modal.html +324 -0
- package/docs/core/components/ui/modal/modal.md +211 -0
- package/docs/core/components/ui/pop/pop.html +250 -0
- package/docs/core/components/ui/pop/pop.md +216 -0
- package/docs/core/components/ui/progress/progress.html +132 -0
- package/docs/core/components/ui/progress/progress.md +109 -0
- package/docs/core/components/ui/table/table.html +333 -0
- package/docs/core/components/ui/table/table.md +267 -0
- package/docs/core/components/ui/theme/theme.html +116 -0
- package/docs/core/components/ui/theme/theme.md +97 -0
- package/docs/core/components/ui/toast/toast.html +185 -0
- package/docs/core/components/ui/toast/toast.md +147 -0
- package/docs/core/components/ui/tooltip/tooltip.html +112 -0
- package/docs/core/components/ui/tooltip/tooltip.md +89 -0
- package/docs/custom-elements.json +16559 -0
- package/docs/docs/decorators/ancestor-attribute.html +71 -0
- package/docs/docs/decorators/ancestor-attribute.md +59 -0
- package/docs/docs/decorators/auto-subscribe.html +61 -0
- package/docs/docs/decorators/auto-subscribe.md +40 -0
- package/docs/docs/decorators/bind.html +87 -0
- package/docs/docs/decorators/bind.md +76 -0
- package/docs/docs/decorators/get.html +166 -0
- package/docs/docs/decorators/get.md +160 -0
- package/docs/docs/decorators/handle.html +139 -0
- package/docs/docs/decorators/handle.md +119 -0
- package/docs/docs/decorators/on-assign.html +72 -0
- package/docs/docs/decorators/on-assign.md +63 -0
- package/docs/docs/decorators/patch.html +76 -0
- package/docs/docs/decorators/patch.md +44 -0
- package/docs/docs/decorators/post.html +150 -0
- package/docs/docs/decorators/post.md +134 -0
- package/docs/docs/decorators/publish.html +74 -0
- package/docs/docs/decorators/publish.md +56 -0
- package/docs/docs/decorators/put.html +83 -0
- package/docs/docs/decorators/put.md +51 -0
- package/docs/docs/decorators/subscribe.html +91 -0
- package/docs/docs/decorators/subscribe.md +87 -0
- package/docs/docs/decorators/wait-for-ancestors.html +82 -0
- package/docs/docs/decorators/wait-for-ancestors.md +76 -0
- package/docs/docs/directives/sub.html +79 -0
- package/docs/docs/directives/sub.md +75 -0
- package/docs/docs/directives/t.html +91 -0
- package/docs/docs/directives/t.md +73 -0
- package/docs/docs/getting-started/ai-agents.html +130 -0
- package/docs/docs/getting-started/ai-agents.md +50 -0
- package/docs/docs/getting-started/components.html +27 -0
- package/docs/docs/getting-started/create-a-component.html +108 -0
- package/{src/docs/_getting-started → docs/docs/getting-started}/create-a-component.md +3 -6
- package/docs/docs/getting-started/dataFlow.html +174 -0
- package/{src/docs/_core-concept → docs/docs/getting-started}/dataFlow.md +18 -19
- package/docs/docs/getting-started/installation.html +69 -0
- package/docs/docs/getting-started/installation.md +36 -0
- package/docs/docs/getting-started/my-first-component.html +180 -0
- package/{src/docs/_getting-started → docs/docs/getting-started}/my-first-component.md +5 -14
- package/docs/docs/getting-started/start.html +47 -0
- package/{src/docs/_getting-started → docs/docs/getting-started}/start.md +1 -13
- package/docs/docs/getting-started/theming.html +334 -0
- package/docs/docs/index.html +99 -0
- package/docs/docs/misc/api-configuration.html +149 -0
- package/{src/docs/_misc → docs/docs/misc}/api-configuration.md +10 -12
- package/docs/docs/misc/dataProviderKey.html +136 -0
- package/{src/docs/_misc → docs/docs/misc}/dataProviderKey.md +4 -4
- package/docs/docs/misc/docs-mock-api.html +155 -0
- package/{src/docs/_misc → docs/docs/misc}/docs-mock-api.md +12 -13
- package/docs/docs/misc/dynamic-path.html +181 -0
- package/{src/docs/_misc → docs/docs/misc}/dynamic-path.md +8 -8
- package/docs/docs/misc/endpoint.html +51 -0
- package/{src/docs/_misc → docs/docs/misc}/endpoint.md +8 -8
- package/docs/docs/misc/html-integration.html +45 -0
- package/{src/docs/_misc → docs/docs/misc}/html-integration.md +4 -5
- package/docs/docs-mock-api-sw.js +58 -223
- package/docs/docs-mock-api-sw.js.map +4 -4
- package/docs/hubs/decorators.html +438 -0
- package/docs/hubs/form-components.html +404 -0
- package/docs/hubs/remote-data.html +367 -0
- package/docs/img/archive/concorde-001-2cv.webp +0 -0
- package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
- package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
- package/docs/img/archive/credits.json +28 -0
- package/docs/img/concorde/plane_01.jpg +0 -0
- package/docs/img/concorde/plane_02.jpg +0 -0
- package/docs/img/concorde/plane_03.jpg +0 -0
- package/docs/img/concorde/plane_04.jpg +0 -0
- package/docs/img/concorde/plane_05.jpg +0 -0
- package/docs/img/concorde/plane_06.jpg +0 -0
- package/docs/img/concorde/plane_07.jpg +0 -0
- package/docs/img/concorde/plane_08.jpg +0 -0
- package/docs/img/concorde/plane_09.jpg +0 -0
- package/docs/img/concorde/plane_10.jpg +0 -0
- package/docs/img/concorde/plane_11.jpg +0 -0
- package/docs/img/concorde/plane_12.jpg +0 -0
- package/docs/img/concorde/plane_13.jpg +0 -0
- package/docs/img/og-concorde.jpg +0 -0
- package/docs/index.html +184 -68
- package/docs/index.md +22 -0
- package/docs/llms-full.txt +5779 -0
- package/docs/llms.txt +108 -0
- package/docs/privacy.html +122 -0
- package/docs/privacy.md +32 -0
- package/docs/robots.txt +11 -10
- package/docs/sitemap.xml +243 -0
- package/docs/src/core/components/functional/date/date.md +150 -0
- package/docs/src/core/components/functional/fetch/fetch.md +108 -0
- package/docs/src/core/components/functional/if/if.md +34 -0
- package/docs/src/core/components/functional/jsonata/jsonata.md +61 -0
- package/docs/src/core/components/functional/list/list.md +125 -0
- package/docs/src/core/components/functional/mix/mix.md +46 -0
- package/docs/src/core/components/functional/queue/queue.md +51 -0
- package/docs/src/core/components/functional/router/router.md +93 -0
- package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
- package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
- package/docs/src/core/components/functional/sdui/default-library.json +108 -0
- package/docs/src/core/components/functional/sdui/example.json +32 -0
- package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
- package/docs/src/core/components/functional/sdui/sdui.md +307 -0
- package/docs/src/core/components/functional/states/states.md +112 -0
- package/docs/src/core/components/functional/submit/submit.md +106 -0
- package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
- package/docs/src/core/components/functional/translation/translation.md +38 -0
- package/docs/src/core/components/functional/value/value.md +47 -0
- package/docs/src/core/components/ui/alert/alert.md +186 -0
- package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
- package/docs/src/core/components/ui/badge/badge.md +181 -0
- package/docs/src/core/components/ui/button/button.md +216 -0
- package/docs/src/core/components/ui/captcha/captcha.md +56 -0
- package/docs/src/core/components/ui/card/card.md +215 -0
- package/docs/src/core/components/ui/divider/divider.md +126 -0
- package/docs/src/core/components/ui/form/checkbox/checkbox.md +125 -0
- package/docs/src/core/components/ui/form/fieldset/fieldset.md +161 -0
- package/docs/src/core/components/ui/form/form-actions/form-actions.md +98 -0
- package/docs/src/core/components/ui/form/form-layout/form-layout.md +109 -0
- package/docs/src/core/components/ui/form/input/input.md +142 -0
- package/docs/src/core/components/ui/form/radio/radio.md +78 -0
- package/docs/src/core/components/ui/form/select/select.md +86 -0
- package/docs/src/core/components/ui/form/switch/switch.md +80 -0
- package/docs/src/core/components/ui/form/textarea/textarea.md +82 -0
- package/docs/src/core/components/ui/group/group.md +77 -0
- package/docs/src/core/components/ui/icon/icon.md +214 -0
- package/docs/src/core/components/ui/icon/icons.json +1 -0
- package/docs/src/core/components/ui/image/image.md +167 -0
- package/docs/src/core/components/ui/link/link.md +81 -0
- package/docs/src/core/components/ui/loader/loader.md +87 -0
- package/docs/src/core/components/ui/menu/menu.md +370 -0
- package/docs/src/core/components/ui/modal/modal.md +211 -0
- package/docs/src/core/components/ui/pop/pop.md +216 -0
- package/docs/src/core/components/ui/progress/progress.md +109 -0
- package/docs/src/core/components/ui/table/table.md +267 -0
- package/docs/src/core/components/ui/theme/theme.md +97 -0
- package/docs/src/core/components/ui/toast/toast.md +147 -0
- package/docs/src/core/components/ui/tooltip/tooltip.md +89 -0
- package/docs/src/docs/decorators/ancestor-attribute.md +59 -0
- package/docs/src/docs/decorators/auto-subscribe.md +40 -0
- package/docs/src/docs/decorators/bind.md +76 -0
- package/docs/src/docs/decorators/get.md +160 -0
- package/docs/src/docs/decorators/handle.md +119 -0
- package/docs/src/docs/decorators/on-assign.md +63 -0
- package/docs/src/docs/decorators/patch.md +44 -0
- package/docs/src/docs/decorators/post.md +134 -0
- package/docs/src/docs/decorators/publish.md +56 -0
- package/docs/src/docs/decorators/put.md +51 -0
- package/docs/src/docs/decorators/subscribe.md +87 -0
- package/docs/src/docs/decorators/wait-for-ancestors.md +76 -0
- package/docs/src/docs/directives/sub.md +75 -0
- package/docs/src/docs/directives/t.md +73 -0
- package/docs/src/docs/getting-started/ai-agents.md +50 -0
- package/docs/src/docs/getting-started/components.md +5 -0
- package/docs/src/docs/getting-started/create-a-component.md +136 -0
- package/docs/src/docs/getting-started/dataFlow.md +87 -0
- package/docs/src/docs/getting-started/installation.md +36 -0
- package/docs/src/docs/getting-started/my-first-component.md +227 -0
- package/docs/src/docs/getting-started/start.md +35 -0
- package/docs/src/docs/getting-started/theming.md +253 -0
- package/docs/src/docs/misc/api-configuration.md +79 -0
- package/docs/src/docs/misc/dataProviderKey.md +168 -0
- package/docs/src/docs/misc/docs-mock-api.md +62 -0
- package/docs/src/docs/misc/dynamic-path.md +71 -0
- package/docs/src/docs/misc/endpoint.md +45 -0
- package/docs/src/docs/misc/html-integration.md +14 -0
- package/docs/src/docs/search/docs-search.json +10332 -0
- package/docs/src/tag-list.json +1 -0
- package/docs/src/tsconfig-model.json +23 -0
- package/docs/src/tsconfig.json +1359 -0
- package/index.html +157 -5
- package/package.json +8 -4
- package/public/docs-mock-api-sw.js +58 -223
- package/public/docs-mock-api-sw.js.map +4 -4
- package/public/img/concorde/plane_01.jpg +0 -0
- package/public/img/concorde/plane_02.jpg +0 -0
- package/public/img/concorde/plane_03.jpg +0 -0
- package/public/img/concorde/plane_04.jpg +0 -0
- package/public/img/concorde/plane_05.jpg +0 -0
- package/public/img/concorde/plane_06.jpg +0 -0
- package/public/img/concorde/plane_07.jpg +0 -0
- package/public/img/concorde/plane_08.jpg +0 -0
- package/public/img/concorde/plane_09.jpg +0 -0
- package/public/img/concorde/plane_10.jpg +0 -0
- package/public/img/concorde/plane_11.jpg +0 -0
- package/public/img/concorde/plane_12.jpg +0 -0
- package/public/img/concorde/plane_13.jpg +0 -0
- package/public/img/og-concorde.jpg +0 -0
- package/public/robots.txt +11 -10
- package/scripts/ai-init.mjs +104 -379
- package/scripts/ai-init.test.mjs +81 -239
- package/scripts/docs-markdown-vite-plugin.ts +43 -0
- package/scripts/docs-public-url.mjs +56 -0
- package/scripts/docs.htaccess +82 -0
- package/scripts/generate-cem.mjs +244 -0
- package/scripts/generate-cem.test.mjs +122 -0
- package/scripts/generate-crawl-docs.mjs +233 -118
- package/scripts/generate-crawl-docs.test.mjs +124 -0
- package/scripts/generate-sdui-catalog.mjs +11 -10
- package/scripts/post-build-docs.js +37 -50
- package/scripts/pre-publish.mjs +2 -1
- package/scripts/site-pages.mjs +212 -0
- package/scripts/site-pages.test.mjs +116 -0
- package/site-pages/about.md +22 -0
- package/site-pages/privacy.md +32 -0
- package/src/core/components/functional/date/date.md +91 -231
- package/src/core/components/functional/fetch/fetch.md +66 -83
- package/src/core/components/functional/if/if.md +28 -3
- package/src/core/components/functional/jsonata/jsonata.md +42 -37
- package/src/core/components/functional/list/list.md +103 -43
- package/src/core/components/functional/mix/mix.md +31 -26
- package/src/core/components/functional/queue/queue.demo.ts +10 -7
- package/src/core/components/functional/queue/queue.md +40 -61
- package/src/core/components/functional/router/router.demo.ts +16 -16
- package/src/core/components/functional/router/router.md +64 -65
- package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
- package/src/core/components/functional/sdui/component-catalog.json +1 -1
- package/src/core/components/functional/sdui/example.json +19 -86
- package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
- package/src/core/components/functional/sdui/sdui.md +187 -358
- package/src/core/components/functional/states/states.demo.ts +21 -22
- package/src/core/components/functional/states/states.md +86 -61
- package/src/core/components/functional/states/states.ts +1 -1
- package/src/core/components/functional/submit/submit.md +64 -72
- package/src/core/components/functional/translation/translation.md +38 -0
- package/src/core/components/functional/value/value.md +34 -22
- package/src/core/components/ui/alert/alert.md +48 -58
- package/src/core/components/ui/badge/badge.md +27 -34
- package/src/core/components/ui/button/button.md +139 -106
- package/src/core/components/ui/captcha/captcha.md +17 -32
- package/src/core/components/ui/card/card.md +6 -6
- package/src/core/components/ui/divider/divider.md +8 -11
- package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
- package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
- package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
- package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
- package/src/core/components/ui/form/input/input.md +95 -95
- package/src/core/components/ui/form/radio/radio.md +55 -34
- package/src/core/components/ui/form/select/select.md +60 -45
- package/src/core/components/ui/form/switch/switch.md +57 -34
- package/src/core/components/ui/form/textarea/textarea.md +55 -38
- package/src/core/components/ui/group/group.md +35 -33
- package/src/core/components/ui/icon/icon.md +4 -4
- package/src/core/components/ui/image/image.md +41 -107
- package/src/core/components/ui/link/link.md +6 -6
- package/src/core/components/ui/loader/loader.md +30 -55
- package/src/core/components/ui/menu/menu.md +27 -27
- package/src/core/components/ui/modal/modal.md +72 -96
- package/src/core/components/ui/pop/pop.md +80 -158
- package/src/core/components/ui/progress/progress.md +2 -2
- package/src/core/components/ui/table/table.md +91 -255
- package/src/core/components/ui/theme/theme.md +11 -36
- package/src/core/components/ui/toast/toast.md +48 -117
- package/src/core/components/ui/tooltip/tooltip.md +27 -62
- package/src/core/decorators/subscriber/bind.ts +9 -14
- package/src/core/utils/LocationHandler.spec.ts +80 -0
- package/src/core/utils/LocationHandler.ts +5 -9
- package/src/docs/components/docs-demo-sources.ts +55 -140
- package/src/docs/components/docs-lit-demo.ts +1 -3
- package/src/docs/components/docs-source-link.ts +0 -82
- package/src/docs/decorators/ancestor-attribute.md +59 -0
- package/src/docs/decorators/auto-subscribe.md +40 -0
- package/src/docs/decorators/bind.md +76 -0
- package/src/docs/decorators/get.md +160 -0
- package/src/docs/decorators/handle.md +119 -0
- package/src/docs/decorators/on-assign.md +63 -0
- package/src/docs/decorators/patch.md +44 -0
- package/src/docs/decorators/post.md +134 -0
- package/src/docs/decorators/publish.md +56 -0
- package/src/docs/decorators/put.md +51 -0
- package/src/docs/decorators/subscribe.md +87 -0
- package/src/docs/decorators/wait-for-ancestors.md +76 -0
- package/src/docs/directives/sub.md +75 -0
- package/src/docs/directives/t.md +73 -0
- package/src/docs/docs-location.spec.ts +56 -0
- package/src/docs/docs-location.ts +133 -32
- package/src/docs/docs.ts +1 -2
- package/src/docs/example/decorators-demo-bind-demos.ts +83 -135
- package/src/docs/example/decorators-demo-geo.ts +30 -19
- package/src/docs/example/decorators-demo-post.ts +88 -186
- package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
- package/src/docs/example/decorators-demo.ts +85 -98
- package/src/docs/example/docs-api-config-demos.ts +19 -20
- package/src/docs/example/docs-flight-demos.ts +147 -0
- package/src/docs/example/docs-jsonata-demos.ts +52 -52
- package/src/docs/example/docs-list-demos.ts +43 -123
- package/src/docs/example/docs-provider-keys.ts +21 -28
- package/src/docs/example/docs-queue-demos.ts +37 -77
- package/src/docs/example/docs-router-demos.ts +20 -25
- package/src/docs/example/docs-submit-demos.ts +48 -48
- package/src/docs/example/docs-toggle-demos.ts +4 -3
- package/src/docs/getting-started/ai-agents.md +50 -0
- package/src/docs/getting-started/components.md +5 -0
- package/src/docs/getting-started/create-a-component.md +136 -0
- package/src/docs/getting-started/dataFlow.md +87 -0
- package/src/docs/getting-started/installation.md +36 -0
- package/src/docs/getting-started/my-first-component.md +227 -0
- package/src/docs/getting-started/start.md +35 -0
- package/src/docs/getting-started/theming.md +253 -0
- package/src/docs/header/header.ts +11 -6
- package/src/docs/home/catalog.ts +1 -1
- package/src/docs/home/home.ts +20 -11
- package/src/docs/layout.ts +12 -13
- package/src/docs/misc/api-configuration.md +79 -0
- package/src/docs/misc/dataProviderKey.md +168 -0
- package/src/docs/misc/docs-mock-api.md +62 -0
- package/src/docs/misc/dynamic-path.md +71 -0
- package/src/docs/misc/endpoint.md +45 -0
- package/src/docs/misc/html-integration.md +14 -0
- package/src/docs/mock-api/api-config-mock.ts +5 -0
- package/src/docs/mock-api/fixtures.ts +0 -278
- package/src/docs/mock-api/flights.ts +89 -0
- package/src/docs/mock-api/router.ts +3 -4
- package/src/docs/mock-api/urls.ts +1 -2
- package/src/docs/navigation/navigation.ts +82 -103
- package/src/docs/navigation/toc.ts +7 -4
- package/src/docs/search/docs-search.json +2804 -5024
- package/src/docs/search/markdown-renderer.ts +31 -8
- package/src/docs/search/page.ts +9 -6
- package/src/docs/search/search.ts +154 -122
- package/src/docs/tailwind/css/docs/content.css +4 -5
- package/src/tsconfig.json +11 -5
- package/src/tsconfig.tsbuildinfo +1 -1
- package/vite.config.mts +11 -2
- package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
- package/ai/AGENTS.md +0 -56
- package/ai/cursor/rules/concorde-menu.mdc +0 -15
- package/ai/cursor/rules/concorde-scope.mdc +0 -14
- package/ai/cursor/rules/concorde-theme.mdc +0 -13
- package/ai/cursor/rules/concorde.mdc +0 -66
- package/ai/jetbrains/rules/concorde.md +0 -53
- package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
- package/ai/skills/concorde-imports/SKILL.md +0 -78
- package/ai/skills/concorde-menu/SKILL.md +0 -74
- package/ai/skills/concorde-scope/SKILL.md +0 -70
- package/ai/skills/concorde-theme/SKILL.md +0 -57
- package/docs/assets/index-CD4WyL6o.css +0 -1
- package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
- package/src/docs/_core-concept/overview.md +0 -57
- package/src/docs/_core-concept/subscriber.md +0 -75
- package/src/docs/_decorators/ancestor-attribute.md +0 -128
- package/src/docs/_decorators/auto-subscribe.md +0 -202
- package/src/docs/_decorators/bind.md +0 -167
- package/src/docs/_decorators/get.md +0 -162
- package/src/docs/_decorators/handle.md +0 -175
- package/src/docs/_decorators/on-assign.md +0 -390
- package/src/docs/_decorators/patch.md +0 -70
- package/src/docs/_decorators/post.md +0 -146
- package/src/docs/_decorators/publish.md +0 -55
- package/src/docs/_decorators/put.md +0 -70
- package/src/docs/_decorators/subscribe.md +0 -100
- package/src/docs/_decorators/wait-for-ancestors.md +0 -163
- package/src/docs/_directives/sub.md +0 -91
- package/src/docs/_getting-started/ai-agents.md +0 -76
- package/src/docs/_getting-started/concorde-manual-install.md +0 -133
- package/src/docs/_getting-started/concorde-outside.md +0 -33
- package/src/docs/_getting-started/my-first-subscriber.md +0 -120
- package/src/docs/_getting-started/pubsub.md +0 -37
- package/src/docs/_misc/formelement-subscriber-removal.md +0 -115
- package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
- package/src/docs/example/docs-joke-demos.ts +0 -297
- /package/{src/docs/_getting-started → docs/docs/getting-started}/components.md +0 -0
- /package/{src/docs/_getting-started → docs/docs/getting-started}/theming.md +0 -0
|
@@ -1,70 +1,41 @@
|
|
|
1
1
|
# Image
|
|
2
2
|
|
|
3
|
-
**`sonic-image`** wraps a responsive
|
|
3
|
+
**`sonic-image`** wraps a responsive `<img>` with aspect ratio, `object-fit: cover`, optional rounded corners and a load transition. The host shows a placeholder background (`--sc-placeholder-bg`) until the file loads. With no `loading`, the image is `lazy`; set `loading="eager"` for above-the-fold images.
|
|
4
4
|
|
|
5
5
|
## Rounded
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
With no `rounded`, corners are square. Boolean `rounded` uses the theme token `--sc-rounded`; `full` draws a circle when paired with `ratio="1/1"`.
|
|
8
8
|
|
|
9
9
|
<sonic-code>
|
|
10
10
|
<template>
|
|
11
|
-
<div class="grid gap-6 grid-cols-3
|
|
11
|
+
<div class="grid gap-6 grid-cols-3 lg:grid-cols-4 items-end text-center text-xs">
|
|
12
12
|
<div>
|
|
13
|
-
<sonic-image
|
|
14
|
-
ratio="1/1"
|
|
15
|
-
src="https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg"
|
|
16
|
-
></sonic-image>
|
|
13
|
+
<sonic-image ratio="1/1" src="/img/concorde/plane_04.jpg" alt="Concorde on the apron"></sonic-image>
|
|
17
14
|
<p class="mt-2">default</p>
|
|
18
15
|
</div>
|
|
19
16
|
<div>
|
|
20
|
-
<sonic-image
|
|
21
|
-
rounded="sm"
|
|
22
|
-
ratio="1/1"
|
|
23
|
-
src="https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg"
|
|
24
|
-
></sonic-image>
|
|
17
|
+
<sonic-image rounded="sm" ratio="1/1" src="/img/concorde/plane_04.jpg" alt="Concorde on the apron"></sonic-image>
|
|
25
18
|
<p class="mt-2">sm</p>
|
|
26
19
|
</div>
|
|
27
20
|
<div>
|
|
28
|
-
<sonic-image
|
|
29
|
-
rounded
|
|
30
|
-
ratio="1/1"
|
|
31
|
-
src="https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg"
|
|
32
|
-
></sonic-image>
|
|
21
|
+
<sonic-image rounded ratio="1/1" src="/img/concorde/plane_04.jpg" alt="Concorde on the apron"></sonic-image>
|
|
33
22
|
<p class="mt-2">rounded</p>
|
|
34
23
|
</div>
|
|
35
24
|
<div>
|
|
36
|
-
<sonic-image
|
|
37
|
-
rounded="md"
|
|
38
|
-
ratio="1/1"
|
|
39
|
-
src="https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg"
|
|
40
|
-
></sonic-image>
|
|
25
|
+
<sonic-image rounded="md" ratio="1/1" src="/img/concorde/plane_04.jpg" alt="Concorde on the apron"></sonic-image>
|
|
41
26
|
<p class="mt-2">md</p>
|
|
42
27
|
</div>
|
|
43
28
|
<div>
|
|
44
|
-
<sonic-image
|
|
45
|
-
rounded="lg"
|
|
46
|
-
ratio="1/1"
|
|
47
|
-
src="https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg"
|
|
48
|
-
></sonic-image>
|
|
29
|
+
<sonic-image rounded="lg" ratio="1/1" src="/img/concorde/plane_04.jpg" alt="Concorde on the apron"></sonic-image>
|
|
49
30
|
<p class="mt-2">lg</p>
|
|
50
31
|
</div>
|
|
51
32
|
<div>
|
|
52
|
-
<sonic-image
|
|
53
|
-
rounded="xl"
|
|
54
|
-
ratio="1/1"
|
|
55
|
-
src="https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg"
|
|
56
|
-
></sonic-image>
|
|
33
|
+
<sonic-image rounded="xl" ratio="1/1" src="/img/concorde/plane_04.jpg" alt="Concorde on the apron"></sonic-image>
|
|
57
34
|
<p class="mt-2">xl</p>
|
|
58
35
|
</div>
|
|
59
|
-
<div
|
|
60
|
-
<
|
|
61
|
-
|
|
62
|
-
rounded="full"
|
|
63
|
-
ratio="1/1"
|
|
64
|
-
src="https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg"
|
|
65
|
-
></sonic-image>
|
|
66
|
-
<p class="mt-2">full</p>
|
|
67
|
-
</div>
|
|
36
|
+
<div>
|
|
37
|
+
<sonic-image rounded="full" ratio="1/1" src="/img/concorde/plane_04.jpg" alt="Concorde on the apron"></sonic-image>
|
|
38
|
+
<p class="mt-2">full</p>
|
|
68
39
|
</div>
|
|
69
40
|
</div>
|
|
70
41
|
</template>
|
|
@@ -72,70 +43,47 @@ Omit `rounded` for square corners. Boolean **`rounded`** uses the theme token `-
|
|
|
72
43
|
|
|
73
44
|
## Aspect ratio
|
|
74
45
|
|
|
75
|
-
|
|
46
|
+
`ratio` sets CSS `aspect-ratio` on the image (default `auto`). The image always fills the host width.
|
|
76
47
|
|
|
77
48
|
<sonic-code>
|
|
78
49
|
<template>
|
|
79
50
|
<div class="grid gap-8 grid-cols-2 items-center">
|
|
80
|
-
<sonic-image
|
|
81
|
-
|
|
82
|
-
></sonic-image>
|
|
83
|
-
<sonic-image
|
|
84
|
-
ratio="16/9"
|
|
85
|
-
src="https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg"
|
|
86
|
-
></sonic-image>
|
|
87
|
-
<sonic-image
|
|
88
|
-
ratio="1/1"
|
|
89
|
-
src="https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg"
|
|
90
|
-
></sonic-image>
|
|
91
|
-
<sonic-image
|
|
92
|
-
ratio="2/3"
|
|
93
|
-
src="https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg"
|
|
94
|
-
></sonic-image>
|
|
51
|
+
<sonic-image src="/img/concorde/plane_12.jpg" alt="Concorde at the gate"></sonic-image>
|
|
52
|
+
<sonic-image ratio="16/9" src="/img/concorde/plane_12.jpg" alt="Concorde at the gate"></sonic-image>
|
|
53
|
+
<sonic-image ratio="1/1" src="/img/concorde/plane_12.jpg" alt="Concorde at the gate"></sonic-image>
|
|
54
|
+
<sonic-image ratio="2/3" src="/img/concorde/plane_12.jpg" alt="Concorde at the gate"></sonic-image>
|
|
95
55
|
</div>
|
|
96
56
|
</template>
|
|
97
57
|
</sonic-code>
|
|
98
58
|
|
|
99
59
|
## Object position
|
|
100
60
|
|
|
101
|
-
|
|
61
|
+
`objectPosition` maps to CSS `object-position` (default `center center`). Use it on wide crops when the subject sits off-center.
|
|
102
62
|
|
|
103
63
|
<sonic-code>
|
|
104
64
|
<template>
|
|
105
65
|
<div class="grid gap-8 grid-cols-2 items-center">
|
|
106
|
-
<sonic-image
|
|
107
|
-
|
|
108
|
-
src="https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg"
|
|
109
|
-
></sonic-image>
|
|
110
|
-
<sonic-image
|
|
111
|
-
objectPosition="center top"
|
|
112
|
-
ratio="11/4"
|
|
113
|
-
src="https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg"
|
|
114
|
-
></sonic-image>
|
|
66
|
+
<sonic-image ratio="11/4" src="/img/concorde/plane_11.jpg" alt="Concorde flying over a field"></sonic-image>
|
|
67
|
+
<sonic-image objectPosition="center top" ratio="11/4" src="/img/concorde/plane_11.jpg" alt="Concorde flying over a field"></sonic-image>
|
|
115
68
|
</div>
|
|
116
69
|
</template>
|
|
117
70
|
</sonic-code>
|
|
118
71
|
|
|
119
72
|
## Cover
|
|
120
73
|
|
|
121
|
-
|
|
74
|
+
`cover` stretches the image over a **positioned** parent (`position: relative` with a height). `ratio` is ignored while `cover` is set.
|
|
122
75
|
|
|
123
76
|
<sonic-code>
|
|
124
77
|
<template>
|
|
125
78
|
<div class="h-96 relative rounded-lg overflow-hidden">
|
|
126
|
-
<sonic-image
|
|
127
|
-
cover
|
|
128
|
-
src="https://thegoodlife.fr/wp-content/uploads/sites/2/2022/03/compagnies-aeriennes-nostalgie-coeur-insert-03-dr.jpg"
|
|
129
|
-
></sonic-image>
|
|
79
|
+
<sonic-image cover src="/img/concorde/plane_10.jpg" alt="Concorde fleet parked in a star"></sonic-image>
|
|
130
80
|
</div>
|
|
131
81
|
</template>
|
|
132
82
|
</sonic-code>
|
|
133
83
|
|
|
134
84
|
## Load transition
|
|
135
85
|
|
|
136
|
-
Set
|
|
137
|
-
|
|
138
|
-
Click **Add image** to append small thumbnails and replay the transition. **Clear** resets the row.
|
|
86
|
+
Set `transition` to `fade` or `fade-scale-out`. The image stays transparent until the browser fires `load`, then animates in. **Changing `src` on an existing element does not replay the effect**: mount a new `sonic-image` instead (galleries, infinite scroll).
|
|
139
87
|
|
|
140
88
|
<sonic-code>
|
|
141
89
|
<template>
|
|
@@ -150,7 +98,8 @@ Click **Add image** to append small thumbnails and replay the transition. **Clea
|
|
|
150
98
|
img.rounded = 'md';
|
|
151
99
|
img.loading = 'eager';
|
|
152
100
|
img.style.width = '8rem';
|
|
153
|
-
|
|
101
|
+
var pics = ['01', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13'];
|
|
102
|
+
img.src = '/img/concorde/plane_' + pics[host.childElementCount % pics.length] + '.jpg';
|
|
154
103
|
host.appendChild(img);
|
|
155
104
|
})()"
|
|
156
105
|
>
|
|
@@ -167,7 +116,8 @@ Click **Add image** to append small thumbnails and replay the transition. **Clea
|
|
|
167
116
|
img.rounded = 'md';
|
|
168
117
|
img.loading = 'eager';
|
|
169
118
|
img.style.width = '8rem';
|
|
170
|
-
|
|
119
|
+
var pics = ['01', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13'];
|
|
120
|
+
img.src = '/img/concorde/plane_' + pics[host.childElementCount % pics.length] + '.jpg';
|
|
171
121
|
host.appendChild(img);
|
|
172
122
|
})()"
|
|
173
123
|
>
|
|
@@ -185,17 +135,17 @@ Click **Add image** to append small thumbnails and replay the transition. **Clea
|
|
|
185
135
|
</template>
|
|
186
136
|
</sonic-code>
|
|
187
137
|
|
|
188
|
-
## Accessibility
|
|
138
|
+
## Accessibility
|
|
189
139
|
|
|
190
|
-
Always set meaningful
|
|
140
|
+
Always set a meaningful `alt`. Use `alt=""` only for decorative images.
|
|
191
141
|
|
|
192
142
|
<sonic-code>
|
|
193
143
|
<template>
|
|
194
144
|
<sonic-image
|
|
195
145
|
rounded="md"
|
|
196
146
|
ratio="16/9"
|
|
197
|
-
alt="Concorde
|
|
198
|
-
src="
|
|
147
|
+
alt="Crowd gathered around Concorde at night"
|
|
148
|
+
src="/img/concorde/plane_07.jpg"
|
|
199
149
|
></sonic-image>
|
|
200
150
|
</template>
|
|
201
151
|
</sonic-code>
|
|
@@ -205,29 +155,13 @@ Always set meaningful **`alt`** text (empty string only for decorative images).
|
|
|
205
155
|
| Attribute | Values | Description |
|
|
206
156
|
|----------|---------|-------------|
|
|
207
157
|
| `src` | URL | Image URL passed to `<img src>` |
|
|
208
|
-
| `alt` | string | Accessible description;
|
|
209
|
-
| `loading` | `lazy` (default)
|
|
210
|
-
| `ratio` | CSS ratio
|
|
211
|
-
| `rounded` | `none` (default)
|
|
212
|
-
| `objectPosition` | CSS position | Maps to `object-position`
|
|
213
|
-
| `imageRendering` | CSS value | Maps to `image-rendering`
|
|
214
|
-
| `cover` | boolean | Absolutely fills a positioned parent
|
|
215
|
-
| `transition` | `fade
|
|
216
|
-
|
|
217
|
-
No slots
|
|
218
|
-
|
|
219
|
-
## API reference
|
|
220
|
-
|
|
221
|
-
| Attribute | Values | Description |
|
|
222
|
-
|----------|---------|-------------|
|
|
223
|
-
| `src` | URL | Image URL passed to `<img src>` |
|
|
224
|
-
| `alt` | string | Accessible description; use `""` only for decorative images |
|
|
225
|
-
| `loading` | `lazy` (default), `eager` | Native lazy loading |
|
|
226
|
-
| `ratio` | CSS ratio, `auto` (default) | Host `aspect-ratio` on the image (ignored when `cover` is set) |
|
|
227
|
-
| `rounded` | `none` (default), boolean, `base`, `sm`, `md`, `lg`, `xl`, `full` | Corner radius from theme tokens; `full` is a circle (often with `ratio="1/1"`) |
|
|
228
|
-
| `objectPosition` | CSS position | Maps to `object-position` (default `center center`) |
|
|
229
|
-
| `imageRendering` | CSS value | Maps to `image-rendering` (default `auto`) |
|
|
230
|
-
| `cover` | boolean | Absolutely fills a positioned parent; host aspect ratio is ignored |
|
|
231
|
-
| `transition` | `fade`, `fade-scale-out` | Opacity (and scale) animation after `load`; remount to replay on `src` change |
|
|
232
|
-
|
|
233
|
-
No slots — content is driven entirely by attributes on the inner `<img>`.
|
|
158
|
+
| `alt` | string | Accessible description; `""` only for decorative images |
|
|
159
|
+
| `loading` | `lazy` (default) · `eager` | Native lazy loading |
|
|
160
|
+
| `ratio` | CSS ratio (default `auto`) | `aspect-ratio` of the image; ignored when `cover` is set |
|
|
161
|
+
| `rounded` | `none` (default) · boolean · `base` · `sm` · `md` · `lg` · `xl` · `full` | Corner radius from theme tokens |
|
|
162
|
+
| `objectPosition` | CSS position (default `center center`) | Maps to `object-position` |
|
|
163
|
+
| `imageRendering` | CSS value (default `auto`) | Maps to `image-rendering` |
|
|
164
|
+
| `cover` | boolean | Absolutely fills a positioned parent |
|
|
165
|
+
| `transition` | `fade` · `fade-scale-out` | Entrance animation after `load`; not replayed on `src` change |
|
|
166
|
+
|
|
167
|
+
No slots.
|
|
@@ -26,7 +26,7 @@ Set **`pushstate`** on same-origin **`href`** values to intercept clicks and nav
|
|
|
26
26
|
|
|
27
27
|
<sonic-code>
|
|
28
28
|
<template>
|
|
29
|
-
<sonic-link href="
|
|
29
|
+
<sonic-link href="/core/components/ui/link" pushstate>Client navigation (pushstate)</sonic-link>
|
|
30
30
|
</template>
|
|
31
31
|
</sonic-code>
|
|
32
32
|
|
|
@@ -36,7 +36,7 @@ Default **`autoActive`** is **`partial`**: the host gets **`active`** when the c
|
|
|
36
36
|
|
|
37
37
|
<sonic-code>
|
|
38
38
|
<template>
|
|
39
|
-
<sonic-link href="
|
|
39
|
+
<sonic-link href="/core/components" class="[&[active]]:text-success">autoActive partial (default)</sonic-link>
|
|
40
40
|
</template>
|
|
41
41
|
</sonic-code>
|
|
42
42
|
|
|
@@ -47,9 +47,9 @@ Default **`autoActive`** is **`partial`**: the host gets **`active`** when the c
|
|
|
47
47
|
<sonic-code>
|
|
48
48
|
<template>
|
|
49
49
|
<div class="grid gap-3">
|
|
50
|
-
<sonic-link href="
|
|
51
|
-
<sonic-link href="
|
|
52
|
-
<sonic-link href="
|
|
50
|
+
<sonic-link href="/core/components/ui/link" autoActive="strict" class="[&[active]]:text-success">autoActive strict</sonic-link>
|
|
51
|
+
<sonic-link href="/core/components/ui/button" autoActive="strict" class="[&[active]]:text-success">autoActive strict (other page)</sonic-link>
|
|
52
|
+
<sonic-link href="/core/components" autoActive="strict-path-only" class="[&[active]]:text-success">autoActive strict-path-only</sonic-link>
|
|
53
53
|
</div>
|
|
54
54
|
</template>
|
|
55
55
|
</sonic-code>
|
|
@@ -58,7 +58,7 @@ Default **`autoActive`** is **`partial`**: the host gets **`active`** when the c
|
|
|
58
58
|
|
|
59
59
|
<sonic-code>
|
|
60
60
|
<template>
|
|
61
|
-
<sonic-link href="
|
|
61
|
+
<sonic-link href="/core/components/ui/link" autoActive="disabled" class="[&[active]]:text-success">autoActive disabled</sonic-link>
|
|
62
62
|
</template>
|
|
63
63
|
</sonic-code>
|
|
64
64
|
|
|
@@ -1,20 +1,10 @@
|
|
|
1
1
|
# Loader
|
|
2
2
|
|
|
3
|
-
**`sonic-loader`** shows a loading animation in the
|
|
4
|
-
|
|
5
|
-
## Basic example
|
|
6
|
-
|
|
7
|
-
Inline loaders fit content areas; they use the theme primary color unless **`currentColor`** is set.
|
|
8
|
-
|
|
9
|
-
<sonic-code>
|
|
10
|
-
<template>
|
|
11
|
-
<sonic-loader mode="inline"></sonic-loader>
|
|
12
|
-
</template>
|
|
13
|
-
</sonic-code>
|
|
3
|
+
**`sonic-loader`** shows a loading animation, either in the content flow or as a viewport overlay. With no `mode`, it is `fixed` (centered overlay); use `mode="inline"` inside content areas. For [Fetch](/core/components/functional/fetch) and [List](/core/components/functional/list), set their `loader` attribute instead of adding the tag yourself.
|
|
14
4
|
|
|
15
5
|
## Mode
|
|
16
6
|
|
|
17
|
-
|
|
7
|
+
`inline` renders an ellipsis animation in the document flow. `fixed` (default) covers the viewport with a centered animation; toggle it with the checkbox below.
|
|
18
8
|
|
|
19
9
|
<sonic-code>
|
|
20
10
|
<template>
|
|
@@ -22,30 +12,26 @@ Inline loaders fit content areas; they use the theme primary color unless **`cur
|
|
|
22
12
|
</template>
|
|
23
13
|
</sonic-code>
|
|
24
14
|
|
|
25
|
-
Use the checkbox below to toggle a **`fixed`** loader over the page (default **`mode`** on **`sonic-loader`**).
|
|
26
|
-
|
|
27
15
|
<docs-lit-demo for="docs-toggle-loader-demo"></docs-lit-demo>
|
|
28
16
|
|
|
29
|
-
##
|
|
17
|
+
## Alignment and color
|
|
30
18
|
|
|
31
|
-
|
|
19
|
+
`align` only affects `mode="inline"`: `left` · `center` (default) · `right`. Dots use `--sc-primary`; set `currentColor` to follow the host `color`.
|
|
32
20
|
|
|
33
21
|
<sonic-code>
|
|
34
22
|
<template>
|
|
35
23
|
<div class="grid gap-4">
|
|
36
24
|
<sonic-loader mode="inline" currentColor style="color: purple;"></sonic-loader>
|
|
37
|
-
<
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
<sonic-loader mode="inline" align="right"></sonic-loader>
|
|
41
|
-
</div>
|
|
25
|
+
<sonic-loader mode="inline" align="left"></sonic-loader>
|
|
26
|
+
<sonic-loader mode="inline" align="center"></sonic-loader>
|
|
27
|
+
<sonic-loader mode="inline" align="right"></sonic-loader>
|
|
42
28
|
</div>
|
|
43
29
|
</template>
|
|
44
30
|
</sonic-code>
|
|
45
31
|
|
|
46
|
-
##
|
|
32
|
+
## Delay
|
|
47
33
|
|
|
48
|
-
|
|
34
|
+
A `fixed` loader waits 0.5 s before fading in, so short requests show nothing. `inline` loaders appear at once. Set `noDelay` (or pass `noDelay: true` to `Loader.show()`) to show a `fixed` loader immediately.
|
|
49
35
|
|
|
50
36
|
<sonic-code>
|
|
51
37
|
<template>
|
|
@@ -53,42 +39,33 @@ By default **`mode="fixed"`** waits briefly before fading in. **`mode="inline"`*
|
|
|
53
39
|
</template>
|
|
54
40
|
</sonic-code>
|
|
55
41
|
|
|
56
|
-
## Accessibility
|
|
42
|
+
## Accessibility
|
|
57
43
|
|
|
58
|
-
The animation is
|
|
44
|
+
The animation is `aria-hidden` by default so screen readers are not flooded on every request. Set `announce` when the loader appears after a user action: the host gets `role="status"`, `aria-live="polite"` and a localized "Loading" label. For a busy button, use the `loading` attribute of `sonic-button` instead.
|
|
59
45
|
|
|
60
46
|
<sonic-code>
|
|
61
47
|
<template>
|
|
62
|
-
<
|
|
48
|
+
<div class="flex flex-wrap items-center gap-4">
|
|
49
|
+
<sonic-loader mode="inline" announce></sonic-loader>
|
|
50
|
+
<sonic-button loading>Confirm check-in</sonic-button>
|
|
51
|
+
</div>
|
|
63
52
|
</template>
|
|
64
53
|
</sonic-code>
|
|
65
54
|
|
|
66
55
|
## Show and hide programmatically
|
|
67
56
|
|
|
68
|
-
|
|
57
|
+
`Loader.show()` mounts one shared instance; `Loader.hide()` is reference-counted, so call it once per `show()`. **Without `container`, the loader goes to the theme pop container and `mode` is forced to `fixed`.**
|
|
69
58
|
|
|
70
59
|
<sonic-code language="javascript">
|
|
71
60
|
<template>
|
|
72
|
-
import { Loader } from "@supersoniks/concorde/
|
|
73
|
-
|
|
74
|
-
Loader.show({
|
|
75
|
-
mode: "fixed",
|
|
76
|
-
noDelay: false,
|
|
77
|
-
announce: true,
|
|
78
|
-
container: document.querySelector("#foo"),
|
|
79
|
-
});
|
|
61
|
+
import { Loader } from "@supersoniks/concorde/ui/loader";
|
|
80
62
|
|
|
63
|
+
Loader.show({ announce: true });
|
|
64
|
+
// …
|
|
81
65
|
Loader.hide();
|
|
82
|
-
</template>
|
|
83
|
-
</sonic-code>
|
|
84
|
-
|
|
85
|
-
## Composition
|
|
86
66
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
<sonic-code>
|
|
90
|
-
<template>
|
|
91
|
-
<sonic-button loading>Save changes</sonic-button>
|
|
67
|
+
// Inline loader inside a given element
|
|
68
|
+
Loader.show({ mode: "inline", container: document.querySelector("#results") });
|
|
92
69
|
</template>
|
|
93
70
|
</sonic-code>
|
|
94
71
|
|
|
@@ -96,17 +73,15 @@ Loader.hide();
|
|
|
96
73
|
|
|
97
74
|
| Attribute | Values | Description |
|
|
98
75
|
|----------|---------|-------------|
|
|
99
|
-
| `mode` | `inline` · `fixed` (default `fixed`) |
|
|
100
|
-
| `noDelay` | boolean | Skips the
|
|
101
|
-
| `announce` | boolean |
|
|
102
|
-
| `align` | `left` · `center` · `right` | Horizontal alignment
|
|
103
|
-
| `currentColor` | boolean |
|
|
104
|
-
|
|
105
|
-
This component has **no slots**. The animation markup is internal.
|
|
76
|
+
| `mode` | `inline` · `fixed` (default `fixed`) | In-flow ellipsis or viewport-centered overlay |
|
|
77
|
+
| `noDelay` | boolean | Skips the 0.5 s fade-in delay of `fixed` |
|
|
78
|
+
| `announce` | boolean | Adds `role="status"`, `aria-live="polite"` and a localized label |
|
|
79
|
+
| `align` | `left` · `center` · `right` (default `center`) | Horizontal alignment, `mode="inline"` only |
|
|
80
|
+
| `currentColor` | boolean | Dots use `currentColor` instead of `--sc-primary` |
|
|
106
81
|
|
|
107
|
-
|
|
82
|
+
No slots.
|
|
108
83
|
|
|
109
|
-
|
|
|
84
|
+
| Static method | Description |
|
|
110
85
|
|--------|-------------|
|
|
111
|
-
| `Loader.show(conf?)` | Mounts the shared
|
|
112
|
-
| `Loader.hide()` | Decrements the show counter
|
|
86
|
+
| `Loader.show(conf?)` | Mounts the shared instance. `conf`: `mode` · `noDelay` · `announce` · `container` |
|
|
87
|
+
| `Loader.hide()` | Decrements the show counter; removes the instance when it reaches zero |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Menu
|
|
2
2
|
|
|
3
|
-
**`sonic-menu`** lays out navigation or actions as a **`direction`** row or column of **`sonic-menu-item`** entries (ghost **`variant`** and block **`shape`** by default), optional **`sonic-divider`** separators, and overflow content in the **`more`** slot (popover “…” trigger). Set
|
|
3
|
+
**`sonic-menu`** lays out navigation or actions as a **`direction`** row or column of **`sonic-menu-item`** entries (ghost **`variant`** and block **`shape`** by default), optional **`sonic-divider`** separators, and overflow content in the **`more`** slot (popover “…” trigger). Set `href` / `pushstate` / `autoActive` on each `sonic-menu-item` (same API as `sonic-button`), not on the menu host.
|
|
4
4
|
|
|
5
5
|
## Basic example
|
|
6
6
|
|
|
@@ -40,11 +40,11 @@ Default **`direction`** is **`column`**. Use **`row`** for horizontal toolbars o
|
|
|
40
40
|
</sonic-menu-item>
|
|
41
41
|
<sonic-menu-item>
|
|
42
42
|
<sonic-icon library="iconoir" name="clock-outline" slot="prefix"></sonic-icon>
|
|
43
|
-
|
|
43
|
+
Flights
|
|
44
44
|
</sonic-menu-item>
|
|
45
45
|
<sonic-menu-item>
|
|
46
46
|
<sonic-icon library="iconoir" name="bag" slot="prefix"></sonic-icon>
|
|
47
|
-
|
|
47
|
+
Baggage
|
|
48
48
|
</sonic-menu-item>
|
|
49
49
|
<sonic-menu-item type="danger">
|
|
50
50
|
<sonic-icon library="iconoir" name="log-out" slot="prefix"></sonic-icon>
|
|
@@ -62,11 +62,11 @@ Default **`direction`** is **`column`**. Use **`row`** for horizontal toolbars o
|
|
|
62
62
|
</sonic-menu-item>
|
|
63
63
|
<sonic-menu-item>
|
|
64
64
|
<sonic-icon library="iconoir" name="clock-outline" slot="prefix"></sonic-icon>
|
|
65
|
-
|
|
65
|
+
Flights
|
|
66
66
|
</sonic-menu-item>
|
|
67
67
|
<sonic-menu-item>
|
|
68
68
|
<sonic-icon library="iconoir" name="bag" slot="prefix"></sonic-icon>
|
|
69
|
-
|
|
69
|
+
Baggage
|
|
70
70
|
</sonic-menu-item>
|
|
71
71
|
<sonic-menu-item type="danger">
|
|
72
72
|
<sonic-icon library="iconoir" name="log-out" slot="prefix"></sonic-icon>
|
|
@@ -91,11 +91,11 @@ Default **`direction`** is **`column`**. Use **`row`** for horizontal toolbars o
|
|
|
91
91
|
</sonic-menu-item>
|
|
92
92
|
<sonic-menu-item>
|
|
93
93
|
<sonic-icon library="iconoir" name="clock-outline" slot="prefix"></sonic-icon>
|
|
94
|
-
|
|
94
|
+
Flights
|
|
95
95
|
</sonic-menu-item>
|
|
96
96
|
<sonic-menu-item>
|
|
97
97
|
<sonic-icon library="iconoir" name="bag" slot="prefix"></sonic-icon>
|
|
98
|
-
|
|
98
|
+
Baggage
|
|
99
99
|
</sonic-menu-item>
|
|
100
100
|
</sonic-menu>
|
|
101
101
|
<sonic-menu size="sm" direction="row">
|
|
@@ -106,11 +106,11 @@ Default **`direction`** is **`column`**. Use **`row`** for horizontal toolbars o
|
|
|
106
106
|
</sonic-menu-item>
|
|
107
107
|
<sonic-menu-item>
|
|
108
108
|
<sonic-icon library="iconoir" name="clock-outline" slot="prefix"></sonic-icon>
|
|
109
|
-
|
|
109
|
+
Flights
|
|
110
110
|
</sonic-menu-item>
|
|
111
111
|
<sonic-menu-item>
|
|
112
112
|
<sonic-icon library="iconoir" name="bag" slot="prefix"></sonic-icon>
|
|
113
|
-
|
|
113
|
+
Baggage
|
|
114
114
|
</sonic-menu-item>
|
|
115
115
|
</sonic-menu>
|
|
116
116
|
<sonic-menu direction="row">
|
|
@@ -121,11 +121,11 @@ Default **`direction`** is **`column`**. Use **`row`** for horizontal toolbars o
|
|
|
121
121
|
</sonic-menu-item>
|
|
122
122
|
<sonic-menu-item>
|
|
123
123
|
<sonic-icon library="iconoir" name="clock-outline" slot="prefix"></sonic-icon>
|
|
124
|
-
|
|
124
|
+
Flights
|
|
125
125
|
</sonic-menu-item>
|
|
126
126
|
<sonic-menu-item>
|
|
127
127
|
<sonic-icon library="iconoir" name="bag" slot="prefix"></sonic-icon>
|
|
128
|
-
|
|
128
|
+
Baggage
|
|
129
129
|
</sonic-menu-item>
|
|
130
130
|
</sonic-menu>
|
|
131
131
|
<sonic-menu size="lg" direction="row">
|
|
@@ -136,11 +136,11 @@ Default **`direction`** is **`column`**. Use **`row`** for horizontal toolbars o
|
|
|
136
136
|
</sonic-menu-item>
|
|
137
137
|
<sonic-menu-item>
|
|
138
138
|
<sonic-icon library="iconoir" name="clock-outline" slot="prefix"></sonic-icon>
|
|
139
|
-
|
|
139
|
+
Flights
|
|
140
140
|
</sonic-menu-item>
|
|
141
141
|
<sonic-menu-item>
|
|
142
142
|
<sonic-icon library="iconoir" name="bag" slot="prefix"></sonic-icon>
|
|
143
|
-
|
|
143
|
+
Baggage
|
|
144
144
|
</sonic-menu-item>
|
|
145
145
|
</sonic-menu>
|
|
146
146
|
<sonic-menu size="xl" direction="row">
|
|
@@ -151,11 +151,11 @@ Default **`direction`** is **`column`**. Use **`row`** for horizontal toolbars o
|
|
|
151
151
|
</sonic-menu-item>
|
|
152
152
|
<sonic-menu-item>
|
|
153
153
|
<sonic-icon library="iconoir" name="clock-outline" slot="prefix"></sonic-icon>
|
|
154
|
-
|
|
154
|
+
Flights
|
|
155
155
|
</sonic-menu-item>
|
|
156
156
|
<sonic-menu-item>
|
|
157
157
|
<sonic-icon library="iconoir" name="bag" slot="prefix"></sonic-icon>
|
|
158
|
-
|
|
158
|
+
Baggage
|
|
159
159
|
</sonic-menu-item>
|
|
160
160
|
</sonic-menu>
|
|
161
161
|
</div>
|
|
@@ -243,11 +243,11 @@ Assign nodes to **`slot="more"`** to show the overflow popover. The trigger appe
|
|
|
243
243
|
</sonic-menu-item>
|
|
244
244
|
<sonic-menu-item>
|
|
245
245
|
<sonic-icon library="iconoir" name="clock-outline" slot="prefix"></sonic-icon>
|
|
246
|
-
|
|
246
|
+
Flights
|
|
247
247
|
</sonic-menu-item>
|
|
248
248
|
<sonic-menu-item>
|
|
249
249
|
<sonic-icon library="iconoir" name="bag" slot="prefix"></sonic-icon>
|
|
250
|
-
|
|
250
|
+
Baggage
|
|
251
251
|
</sonic-menu-item>
|
|
252
252
|
<sonic-menu slot="more">
|
|
253
253
|
<sonic-menu-item>
|
|
@@ -285,11 +285,11 @@ With **`scrollable`**, the main slot scrolls with edge fade masks; drag-to-scrol
|
|
|
285
285
|
</sonic-menu-item>
|
|
286
286
|
<sonic-menu-item>
|
|
287
287
|
<sonic-icon library="iconoir" name="clock-outline" slot="prefix"></sonic-icon>
|
|
288
|
-
|
|
288
|
+
Flights
|
|
289
289
|
</sonic-menu-item>
|
|
290
290
|
<sonic-menu-item>
|
|
291
291
|
<sonic-icon library="iconoir" name="bag" slot="prefix"></sonic-icon>
|
|
292
|
-
|
|
292
|
+
Baggage
|
|
293
293
|
</sonic-menu-item>
|
|
294
294
|
<sonic-menu-item variant="ghost">
|
|
295
295
|
<sonic-icon library="iconoir" name="home" slot="prefix"></sonic-icon>
|
|
@@ -301,11 +301,11 @@ With **`scrollable`**, the main slot scrolls with edge fade masks; drag-to-scrol
|
|
|
301
301
|
</sonic-menu-item>
|
|
302
302
|
<sonic-menu-item>
|
|
303
303
|
<sonic-icon library="iconoir" name="clock-outline" slot="prefix"></sonic-icon>
|
|
304
|
-
|
|
304
|
+
Flights
|
|
305
305
|
</sonic-menu-item>
|
|
306
306
|
<sonic-menu-item>
|
|
307
307
|
<sonic-icon library="iconoir" name="bag" slot="prefix"></sonic-icon>
|
|
308
|
-
|
|
308
|
+
Baggage
|
|
309
309
|
</sonic-menu-item>
|
|
310
310
|
<sonic-menu-item variant="ghost">
|
|
311
311
|
<sonic-icon library="iconoir" name="home" slot="prefix"></sonic-icon>
|
|
@@ -317,11 +317,11 @@ With **`scrollable`**, the main slot scrolls with edge fade masks; drag-to-scrol
|
|
|
317
317
|
</sonic-menu-item>
|
|
318
318
|
<sonic-menu-item>
|
|
319
319
|
<sonic-icon library="iconoir" name="clock-outline" slot="prefix"></sonic-icon>
|
|
320
|
-
|
|
320
|
+
Flights
|
|
321
321
|
</sonic-menu-item>
|
|
322
322
|
<sonic-menu-item>
|
|
323
323
|
<sonic-icon library="iconoir" name="bag" slot="prefix"></sonic-icon>
|
|
324
|
-
|
|
324
|
+
Baggage
|
|
325
325
|
</sonic-menu-item>
|
|
326
326
|
<sonic-menu-item>
|
|
327
327
|
<sonic-icon library="iconoir" name="settings" slot="prefix"></sonic-icon>
|
|
@@ -356,15 +356,15 @@ With **`scrollable`**, the main slot scrolls with edge fade masks; drag-to-scrol
|
|
|
356
356
|
|----------|---------|-------------|
|
|
357
357
|
| `direction` | `column` (default) · `row` | Vertical list or horizontal bar |
|
|
358
358
|
| `align` | `left` (default) · `center` · `right` | Alignment propagated to items (except square / circle **`shape`**) |
|
|
359
|
-
| `size` | `
|
|
360
|
-
| `shadow` | `sm` · `md` · `lg` | Shadow around the menu;
|
|
359
|
+
| `size` | `2xs` … `2xl` (default: items keep their own size) | Propagated to items and the **`more`** trigger when unset on the item |
|
|
360
|
+
| `shadow` | `none` · `sm` · `md` · `lg` | Shadow around the menu; none when omitted |
|
|
361
361
|
| `minWidth` | CSS length | Minimum width of the container (default `0`) |
|
|
362
362
|
| `scrollable` | boolean | Scroll with edge fade; auto-scroll when a single item is **`active`** |
|
|
363
363
|
| `moreShape` | `circle` (default) · `square` | Shape of the **`more`** slot trigger button |
|
|
364
364
|
|
|
365
365
|
| Slot | Description |
|
|
366
366
|
|------|-------------|
|
|
367
|
-
| *(default)* | Visible items:
|
|
367
|
+
| *(default)* | Visible items: `sonic-menu-item` · `sonic-divider` · nested `sonic-menu` |
|
|
368
368
|
| `more` | Popover content for the “…” control; shown only when the slot has assigned nodes |
|
|
369
369
|
|
|
370
|
-
**`sonic-menu-item`** extends **`sonic-button`** (defaults
|
|
370
|
+
**`sonic-menu-item`** extends **`sonic-button`** (defaults `variant="ghost"` and `shape="block"`). See [Button](/core/components/ui/button) for `type` · `variant` · `href` · `pushstate` · `autoActive` and the item slots.
|