@supersoniks/concorde 5.1.2 → 5.1.3-immutable.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/concorde-docs/SKILL.md +1 -1
- package/.claude/skills +1 -0
- package/.github/workflows/ci.yml +21 -0
- package/.github-export-ignore +30 -0
- package/CONTRIBUTING.md +59 -0
- package/DEV.md +54 -0
- package/LICENSE +21 -0
- package/OPEN_SOURCE_CHECKPOINT.md +133 -0
- package/README.md +1 -1
- package/ai/README.md +29 -41
- package/ai/skills/concorde/SKILL.md +54 -324
- package/ai/skills/concorde/rules/composition.md +32 -0
- package/ai/skills/concorde/rules/data.md +47 -0
- package/ai/skills/concorde/rules/http.md +25 -0
- package/ai/skills/concorde/rules/lists-forms.md +35 -0
- package/ai/skills/concorde/rules/styling.md +46 -0
- package/ai/skills/concorde/rules/troubleshooting.md +45 -0
- package/build-infos.json +1 -1
- package/concorde-core.bundle.js +177 -177
- package/concorde-core.es.js +5183 -5018
- package/custom-elements-manifest.public.config.mjs +8 -0
- package/{.tmp-cem/custom-elements.json → custom-elements.json} +11722 -8868
- package/dist/concorde-core.bundle.js +177 -177
- package/dist/concorde-core.es.js +5183 -5018
- package/dist/docs-mock-api-sw.js +58 -223
- package/dist/docs-mock-api-sw.js.map +4 -4
- package/dist/img/og-concorde.jpg +0 -0
- package/dist/robots.txt +11 -10
- package/docs/assets/index-CD4WyL6o.css +1 -0
- package/docs/assets/index-D_alEsng.js +12122 -0
- package/docs/crawl/core/components/functional/date/date.html +190 -0
- package/docs/crawl/core/components/functional/fetch/fetch.html +109 -0
- package/docs/crawl/core/components/functional/if/if.html +27 -0
- package/docs/crawl/core/components/functional/jsonata/jsonata.html +79 -0
- package/docs/crawl/core/components/functional/list/list.html +70 -0
- package/docs/crawl/core/components/functional/mix/mix.html +45 -0
- package/docs/crawl/core/components/functional/queue/queue.html +96 -0
- package/docs/crawl/core/components/functional/router/router.html +106 -0
- package/docs/{core → crawl/core}/components/functional/sdui/sdui-extension-points.html +8 -9
- package/docs/crawl/core/components/functional/sdui/sdui.html +368 -0
- package/docs/crawl/core/components/functional/states/states.html +66 -0
- package/docs/crawl/core/components/functional/submit/submit.html +160 -0
- package/docs/{core → crawl/core}/components/functional/subscriber/subscriber.html +5 -6
- package/docs/crawl/core/components/functional/value/value.html +51 -0
- package/docs/{core → crawl/core}/components/ui/alert/alert.html +63 -53
- package/docs/{core → crawl/core}/components/ui/alert-messages/alert-messages.html +5 -6
- package/docs/{core → crawl/core}/components/ui/badge/badge.html +33 -33
- package/docs/crawl/core/components/ui/button/button.html +150 -0
- package/docs/crawl/core/components/ui/captcha/captcha.html +112 -0
- package/docs/{core → crawl/core}/components/ui/card/card.html +11 -12
- package/docs/{core → crawl/core}/components/ui/divider/divider.html +14 -14
- package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +73 -0
- package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +266 -0
- package/docs/{core → crawl/core}/components/ui/form/form-actions/form-actions.html +23 -23
- package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +121 -0
- package/docs/crawl/core/components/ui/form/input/input.html +109 -0
- package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +38 -0
- package/docs/crawl/core/components/ui/form/radio/radio.html +56 -0
- package/docs/crawl/core/components/ui/form/select/select.html +73 -0
- package/docs/crawl/core/components/ui/form/switch/switch.html +56 -0
- package/docs/crawl/core/components/ui/form/textarea/textarea.html +59 -0
- package/docs/crawl/core/components/ui/group/group.html +104 -0
- package/docs/{core → crawl/core}/components/ui/icon/icon.html +9 -10
- package/docs/crawl/core/components/ui/image/image.html +298 -0
- package/docs/{core → crawl/core}/components/ui/link/link.html +11 -12
- package/docs/crawl/core/components/ui/loader/loader.html +124 -0
- package/docs/{core → crawl/core}/components/ui/menu/menu.html +33 -34
- package/docs/crawl/core/components/ui/modal/modal.html +342 -0
- package/docs/crawl/core/components/ui/pop/pop.html +296 -0
- package/docs/{core → crawl/core}/components/ui/progress/progress.html +7 -8
- package/docs/crawl/core/components/ui/table/table.html +545 -0
- package/docs/crawl/core/components/ui/theme/theme.html +131 -0
- package/docs/crawl/core/components/ui/toast/toast.html +233 -0
- package/docs/crawl/core/components/ui/tooltip/tooltip.html +140 -0
- package/docs/{docs/getting-started → crawl/docs/_core-concept}/dataFlow.html +29 -26
- package/docs/crawl/docs/_core-concept/overview.html +66 -0
- package/docs/crawl/docs/_core-concept/subscriber.html +75 -0
- package/docs/crawl/docs/_decorators/ancestor-attribute.html +117 -0
- package/docs/crawl/docs/_decorators/auto-subscribe.html +202 -0
- package/docs/crawl/docs/_decorators/bind.html +141 -0
- package/docs/crawl/docs/_decorators/get.html +149 -0
- package/docs/crawl/docs/_decorators/handle.html +165 -0
- package/docs/crawl/docs/_decorators/on-assign.html +355 -0
- package/docs/crawl/docs/_decorators/patch.html +78 -0
- package/docs/crawl/docs/_decorators/post.html +139 -0
- package/docs/crawl/docs/_decorators/publish.html +61 -0
- package/docs/crawl/docs/_decorators/put.html +78 -0
- package/docs/crawl/docs/_decorators/subscribe.html +109 -0
- package/docs/crawl/docs/_decorators/wait-for-ancestors.html +137 -0
- package/docs/crawl/docs/_directives/sub.html +93 -0
- package/docs/{docs/getting-started → crawl/docs/_getting-started}/ai-agents.html +11 -12
- package/docs/crawl/docs/_getting-started/concorde-manual-install.html +100 -0
- package/docs/crawl/docs/_getting-started/concorde-outside.html +58 -0
- package/docs/{docs/getting-started → crawl/docs/_getting-started}/create-a-component.html +14 -11
- package/docs/{docs/getting-started → crawl/docs/_getting-started}/my-first-component.html +22 -13
- package/docs/crawl/docs/_getting-started/my-first-subscriber.html +110 -0
- package/docs/crawl/docs/_getting-started/pubsub.html +62 -0
- package/docs/crawl/docs/_getting-started/start.html +76 -0
- package/docs/{docs/getting-started → crawl/docs/_getting-started}/theming.html +9 -10
- package/docs/{docs/misc → crawl/docs/_misc}/api-configuration.html +18 -18
- package/docs/{docs/misc → crawl/docs/_misc}/dataProviderKey.html +11 -12
- package/docs/{docs/misc → crawl/docs/_misc}/docs-mock-api.html +28 -25
- package/docs/{docs/misc → crawl/docs/_misc}/dynamic-path.html +15 -16
- package/docs/{docs/misc → crawl/docs/_misc}/endpoint.html +15 -16
- package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
- package/docs/{docs/misc → crawl/docs/_misc}/html-integration.html +15 -12
- package/docs/crawl/hubs/decorators.html +547 -0
- package/docs/crawl/hubs/form-components.html +381 -0
- package/docs/crawl/hubs/remote-data.html +452 -0
- package/docs/crawl/index.html +103 -0
- package/docs/docs-mock-api-sw.js +223 -58
- package/docs/docs-mock-api-sw.js.map +4 -4
- package/docs/index.html +68 -95
- package/docs/llms-full.txt +3610 -2231
- package/docs/llms.txt +86 -94
- package/docs/robots.txt +10 -11
- package/docs/sitemap.xml +84 -78
- package/docs/src/core/components/functional/date/date.md +231 -91
- package/docs/src/core/components/functional/fetch/fetch.md +83 -66
- package/docs/src/core/components/functional/if/if.md +3 -28
- package/docs/src/core/components/functional/jsonata/jsonata.md +37 -42
- package/docs/src/core/components/functional/list/list.md +43 -99
- package/docs/src/core/components/functional/mix/mix.md +26 -31
- package/docs/src/core/components/functional/queue/queue.md +61 -40
- package/docs/src/core/components/functional/router/router.md +65 -64
- package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
- package/docs/src/core/components/functional/sdui/component-catalog.json +1 -1
- package/docs/src/core/components/functional/sdui/example.json +86 -19
- package/docs/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
- package/docs/src/core/components/functional/sdui/sdui.md +358 -187
- package/docs/src/core/components/functional/states/states.md +61 -86
- package/docs/src/core/components/functional/submit/submit.md +72 -64
- package/docs/src/core/components/functional/value/value.md +22 -34
- package/docs/src/core/components/ui/alert/alert.md +58 -48
- package/docs/src/core/components/ui/badge/badge.md +34 -27
- package/docs/src/core/components/ui/button/button.md +106 -139
- package/docs/src/core/components/ui/captcha/captcha.md +32 -17
- package/docs/src/core/components/ui/card/card.md +6 -6
- package/docs/src/core/components/ui/divider/divider.md +11 -8
- package/docs/src/core/components/ui/form/checkbox/checkbox.md +42 -90
- package/docs/src/core/components/ui/form/fieldset/fieldset.md +75 -31
- package/docs/src/core/components/ui/form/form-actions/form-actions.md +16 -14
- package/docs/src/core/components/ui/form/form-layout/form-layout.md +29 -19
- package/docs/src/core/components/ui/form/input/input.md +95 -95
- package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +29 -0
- package/docs/src/core/components/ui/form/radio/radio.md +34 -55
- package/docs/src/core/components/ui/form/select/select.md +45 -60
- package/docs/src/core/components/ui/form/switch/switch.md +34 -57
- package/docs/src/core/components/ui/form/textarea/textarea.md +38 -55
- package/docs/src/core/components/ui/group/group.md +33 -35
- package/docs/src/core/components/ui/icon/icon.md +4 -4
- package/docs/src/core/components/ui/image/image.md +107 -41
- package/docs/src/core/components/ui/link/link.md +6 -6
- package/docs/src/core/components/ui/loader/loader.md +55 -30
- package/docs/src/core/components/ui/menu/menu.md +27 -27
- package/docs/src/core/components/ui/modal/modal.md +96 -72
- package/docs/src/core/components/ui/pop/pop.md +158 -80
- package/docs/src/core/components/ui/progress/progress.md +2 -2
- package/docs/src/core/components/ui/table/table.md +255 -91
- package/docs/src/core/components/ui/theme/theme.md +36 -11
- package/docs/src/core/components/ui/toast/toast.md +117 -48
- package/docs/src/core/components/ui/tooltip/tooltip.md +62 -27
- package/docs/{docs/getting-started → src/docs/_core-concept}/dataFlow.md +18 -17
- package/docs/src/docs/_core-concept/overview.md +57 -0
- package/docs/src/docs/_core-concept/subscriber.md +75 -0
- package/docs/src/docs/_decorators/ancestor-attribute.md +128 -0
- package/docs/src/docs/_decorators/auto-subscribe.md +202 -0
- package/docs/src/docs/_decorators/bind.md +167 -0
- package/docs/src/docs/_decorators/get.md +162 -0
- package/docs/src/docs/_decorators/handle.md +175 -0
- package/docs/src/docs/_decorators/on-assign.md +390 -0
- package/docs/src/docs/_decorators/patch.md +70 -0
- package/docs/src/docs/_decorators/post.md +146 -0
- package/docs/src/docs/_decorators/publish.md +55 -0
- package/docs/src/docs/_decorators/put.md +70 -0
- package/docs/src/docs/_decorators/subscribe.md +100 -0
- package/docs/src/docs/_decorators/wait-for-ancestors.md +163 -0
- package/docs/src/docs/_directives/sub.md +91 -0
- package/docs/src/docs/{getting-started → _getting-started}/ai-agents.md +3 -3
- package/docs/src/docs/_getting-started/concorde-manual-install.md +133 -0
- package/docs/src/docs/_getting-started/concorde-outside.md +33 -0
- package/docs/{docs/getting-started → src/docs/_getting-started}/create-a-component.md +6 -3
- package/docs/src/docs/{getting-started → _getting-started}/my-first-component.md +14 -5
- package/docs/src/docs/_getting-started/my-first-subscriber.md +120 -0
- package/docs/src/docs/_getting-started/pubsub.md +37 -0
- package/docs/src/docs/{getting-started → _getting-started}/start.md +13 -1
- package/docs/src/docs/{getting-started → _getting-started}/theming.md +2 -2
- package/docs/src/docs/{misc → _misc}/api-configuration.md +12 -10
- package/docs/src/docs/{misc → _misc}/dataProviderKey.md +4 -4
- package/docs/{docs/misc → src/docs/_misc}/docs-mock-api.md +13 -12
- package/docs/{docs/misc → src/docs/_misc}/dynamic-path.md +8 -8
- package/docs/{docs/misc → src/docs/_misc}/endpoint.md +8 -8
- package/docs/src/docs/_misc/formelement-subscriber-removal.md +115 -0
- package/docs/{docs/misc → src/docs/_misc}/html-integration.md +5 -4
- package/docs/src/docs/search/docs-search.json +4375 -2420
- package/docs/src/tsconfig.declarations.json +22 -0
- package/docs/src/tsconfig.emit.json +23 -0
- package/docs/src/tsconfig.json +2 -23
- package/gitlab/job_github_mirror.sh +39 -0
- package/index.html +89 -0
- package/package.json +22 -4
- package/public/img/og-concorde.jpg +0 -0
- package/scripts/ai-init.mjs +104 -379
- package/scripts/ai-init.test.mjs +81 -239
- package/scripts/docs-markdown-vite-plugin.ts +11 -5
- package/scripts/docs-public-url.mjs +6 -0
- package/scripts/docs.htaccess +7 -0
- package/scripts/generate-cem.mjs +244 -0
- package/scripts/generate-cem.test.mjs +122 -0
- package/scripts/generate-crawl-docs.mjs +29 -5
- package/scripts/generate-sdui-catalog.mjs +11 -10
- package/scripts/github-export.mjs +150 -0
- package/scripts/post-build-docs.js +3 -0
- package/scripts/post-build.mjs +0 -0
- package/scripts/pre-publish.mjs +2 -1
- package/scripts/site-pages.mjs +212 -0
- package/scripts/site-pages.test.mjs +116 -0
- package/site-pages/about.md +22 -0
- package/site-pages/privacy.md +32 -0
- package/src/core/components/functional/date/date.md +1 -1
- package/src/core/components/functional/example/example.ts +3 -1
- package/src/core/components/functional/if/if.ts +0 -0
- package/src/core/components/functional/list/list.demo.ts +0 -0
- package/src/core/components/functional/list/list.md +6 -2
- package/src/core/components/functional/list/list.ts +17 -4
- package/src/core/components/functional/mix/mix.md +0 -0
- package/src/core/components/functional/router/router.demo.ts +0 -0
- package/src/core/components/functional/router/router.ts +0 -0
- package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
- package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
- package/src/core/components/functional/sdui/component-catalog.json +2 -2
- package/src/core/components/functional/sdui/example.json +0 -0
- package/src/core/components/functional/sdui/sdui-immutable.spec.ts +74 -0
- package/src/core/components/functional/sdui/sdui.ts +33 -8
- package/src/core/components/functional/sdui/types.ts +0 -0
- package/src/core/components/functional/states/states.ts +0 -0
- package/src/core/components/functional/submit/submit.spec.ts +60 -0
- package/src/core/components/functional/submit/submit.ts +6 -3
- package/src/core/components/functional/subscriber/subscriber.ts +0 -0
- package/src/core/components/functional/value/value.md +0 -0
- package/src/core/components/functional/value/value.ts +0 -0
- package/src/core/components/ui/_css/size.ts +0 -0
- package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
- package/src/core/components/ui/card/card.md +1 -1
- package/src/core/components/ui/form/input/input.md +19 -1
- package/src/core/components/ui/form/input/input.ts +8 -2
- package/src/core/components/ui/form/radio/radio.md +14 -0
- package/src/core/components/ui/image/image.md +17 -17
- package/src/core/components/ui/modal/modal.md +2 -2
- package/src/core/decorators/subscriber/bind.ts +9 -14
- package/src/core/decorators/subscriber/subscribe.ts +15 -9
- package/src/core/decorators/subscriber/subscribe.type-test.ts +14 -5
- package/src/core/mixins/Subscriber.ts +0 -0
- package/src/core/utils/DataBindObserver.ts +0 -0
- package/src/core/utils/Objects.ts +0 -0
- package/src/core/utils/PublisherProxy.ts +166 -125
- package/src/core/utils/deepReadonly.spec.ts +66 -0
- package/src/core/utils/deepReadonly.ts +71 -0
- package/src/core/utils/immutableValue.spec.ts +58 -0
- package/src/core/utils/immutableValue.ts +116 -0
- package/src/core/utils/nestedDotForm.spec.ts +88 -0
- package/src/core/utils/publisherImmutable.spec.ts +127 -0
- package/src/core/utils/route.ts +0 -0
- package/src/core/utils/strictGet.spec.ts +61 -0
- package/src/core/utils/strictGet.ts +102 -0
- package/src/css.d.ts +19 -0
- package/src/docs/components/docs-demo-sources.ts +3 -3
- package/src/docs/decorators/bind.md +23 -24
- package/src/docs/docs-location.spec.ts +10 -0
- package/src/docs/docs-location.ts +10 -0
- package/src/docs/example/decorators-demo-bind-demos.ts +11 -28
- package/src/docs/example/docs-toggle-demos.ts +1 -1
- package/src/docs/example/users.ts +0 -0
- package/src/docs/getting-started/ai-agents.md +51 -51
- package/src/docs/getting-started/dataFlow.md +2 -2
- package/src/docs/home/home.ts +3 -1
- package/src/docs/misc/publisher-get-immutability-docs-crawl.json +902 -0
- package/src/docs/misc/publisher-get-immutability-docs-recheck.json +13 -0
- package/src/docs/misc/publisher-get-immutability-study.md +229 -0
- package/src/docs/navigation/navigation.ts +5 -1
- package/src/docs/search/docs-search.json +358 -58
- package/src/docs/search/markdown-renderer.ts +6 -1
- package/src/docs/tailwind/css/docs/content.css +4 -5
- package/src/tsconfig.declarations.json +22 -0
- package/src/tsconfig.emit.json +23 -0
- package/src/tsconfig.json +53 -5
- package/src/tsconfig.tsbuildinfo +1 -1
- package/.taste-skill/after/desktop-fold.jpg +0 -0
- package/.taste-skill/after/desktop-page-01.jpg +0 -0
- package/.taste-skill/after/desktop-page-02.jpg +0 -0
- package/.taste-skill/after/desktop-page-03.jpg +0 -0
- package/.taste-skill/after/mobile-fold.jpg +0 -0
- package/.taste-skill/after/mobile-page-01.jpg +0 -0
- package/.taste-skill/after/report.json +0 -4103
- package/.taste-skill/after/tablet-fold.jpg +0 -0
- package/.taste-skill/after/tablet-page-01.jpg +0 -0
- package/.taste-skill/after/tablet-page-02.jpg +0 -0
- package/.taste-skill/before/desktop-fold.jpg +0 -0
- package/.taste-skill/before/desktop-page-01.jpg +0 -0
- package/.taste-skill/before/desktop-page-02.jpg +0 -0
- package/.taste-skill/before/mobile-fold.jpg +0 -0
- package/.taste-skill/before/mobile-page-01.jpg +0 -0
- package/.taste-skill/before/report.json +0 -2556
- package/.taste-skill/before/tablet-fold.jpg +0 -0
- package/.taste-skill/before/tablet-page-01.jpg +0 -0
- package/.taste-skill/direction.json +0 -510
- package/.taste-skill/notes.md +0 -84
- package/.taste-skill/prod/desktop-fold.jpg +0 -0
- package/.taste-skill/prod/desktop-page-01.jpg +0 -0
- package/.taste-skill/prod/desktop-page-02.jpg +0 -0
- package/.taste-skill/prod/desktop-page-03.jpg +0 -0
- package/.taste-skill/prod/mobile-fold.jpg +0 -0
- package/.taste-skill/prod/mobile-page-01.jpg +0 -0
- package/.taste-skill/prod/mobile-page-02.jpg +0 -0
- package/.taste-skill/prod/report.json +0 -1973
- package/.taste-skill/prod/tablet-fold.jpg +0 -0
- package/.taste-skill/prod/tablet-page-01.jpg +0 -0
- package/.taste-skill/prod/tablet-page-02.jpg +0 -0
- package/AUDIT.md +0 -228
- package/PLAN-AMELIORATION.md +0 -220
- package/PLAN-DOCS-AGENTS.md +0 -80
- package/ai/AGENTS.md +0 -56
- package/ai/cursor/rules/concorde-menu.mdc +0 -15
- package/ai/cursor/rules/concorde-scope.mdc +0 -14
- package/ai/cursor/rules/concorde-theme.mdc +0 -13
- package/ai/cursor/rules/concorde.mdc +0 -66
- package/ai/jetbrains/rules/concorde.md +0 -53
- package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
- package/ai/skills/concorde-imports/SKILL.md +0 -78
- package/ai/skills/concorde-menu/SKILL.md +0 -74
- package/ai/skills/concorde-scope/SKILL.md +0 -70
- package/ai/skills/concorde-theme/SKILL.md +0 -57
- package/docs/.htaccess +0 -75
- package/docs/404.html +0 -15
- package/docs/404.md +0 -5
- package/docs/assets/index-BgG6FFPt.js +0 -11765
- package/docs/assets/index-x89XINSG.css +0 -1
- package/docs/core/components/functional/date/date.html +0 -211
- package/docs/core/components/functional/date/date.md +0 -150
- package/docs/core/components/functional/fetch/fetch.html +0 -180
- package/docs/core/components/functional/fetch/fetch.md +0 -108
- package/docs/core/components/functional/if/if.html +0 -65
- package/docs/core/components/functional/if/if.md +0 -34
- package/docs/core/components/functional/jsonata/jsonata.html +0 -110
- package/docs/core/components/functional/jsonata/jsonata.md +0 -61
- package/docs/core/components/functional/list/list.html +0 -198
- package/docs/core/components/functional/list/list.md +0 -121
- package/docs/core/components/functional/mix/mix.html +0 -78
- package/docs/core/components/functional/mix/mix.md +0 -46
- package/docs/core/components/functional/queue/queue.html +0 -155
- package/docs/core/components/functional/queue/queue.md +0 -51
- package/docs/core/components/functional/router/router.html +0 -154
- package/docs/core/components/functional/router/router.md +0 -93
- package/docs/core/components/functional/sdui/sdui-extension-points.md +0 -94
- package/docs/core/components/functional/sdui/sdui.html +0 -397
- package/docs/core/components/functional/sdui/sdui.md +0 -307
- package/docs/core/components/functional/states/states.html +0 -141
- package/docs/core/components/functional/states/states.md +0 -112
- package/docs/core/components/functional/submit/submit.html +0 -178
- package/docs/core/components/functional/submit/submit.md +0 -106
- package/docs/core/components/functional/subscriber/subscriber.md +0 -91
- package/docs/core/components/functional/translation/translation.html +0 -60
- package/docs/core/components/functional/translation/translation.md +0 -38
- package/docs/core/components/functional/value/value.html +0 -81
- package/docs/core/components/functional/value/value.md +0 -47
- package/docs/core/components/ui/alert/alert.md +0 -186
- package/docs/core/components/ui/alert-messages/alert-messages.md +0 -85
- package/docs/core/components/ui/badge/badge.md +0 -181
- package/docs/core/components/ui/button/button.html +0 -309
- package/docs/core/components/ui/button/button.md +0 -216
- package/docs/core/components/ui/captcha/captcha.html +0 -80
- package/docs/core/components/ui/captcha/captcha.md +0 -56
- package/docs/core/components/ui/card/card.md +0 -215
- package/docs/core/components/ui/divider/divider.md +0 -126
- package/docs/core/components/ui/form/checkbox/checkbox.html +0 -200
- package/docs/core/components/ui/form/checkbox/checkbox.md +0 -125
- package/docs/core/components/ui/form/fieldset/fieldset.html +0 -238
- package/docs/core/components/ui/form/fieldset/fieldset.md +0 -161
- package/docs/core/components/ui/form/form-actions/form-actions.md +0 -98
- package/docs/core/components/ui/form/form-layout/form-layout.html +0 -115
- package/docs/core/components/ui/form/form-layout/form-layout.md +0 -109
- package/docs/core/components/ui/form/input/input.html +0 -235
- package/docs/core/components/ui/form/input/input.md +0 -142
- package/docs/core/components/ui/form/radio/radio.html +0 -144
- package/docs/core/components/ui/form/radio/radio.md +0 -78
- package/docs/core/components/ui/form/select/select.html +0 -178
- package/docs/core/components/ui/form/select/select.md +0 -86
- package/docs/core/components/ui/form/switch/switch.html +0 -146
- package/docs/core/components/ui/form/switch/switch.md +0 -80
- package/docs/core/components/ui/form/textarea/textarea.html +0 -162
- package/docs/core/components/ui/form/textarea/textarea.md +0 -82
- package/docs/core/components/ui/group/group.html +0 -113
- package/docs/core/components/ui/group/group.md +0 -77
- package/docs/core/components/ui/icon/icon.md +0 -214
- package/docs/core/components/ui/image/image.html +0 -194
- package/docs/core/components/ui/image/image.md +0 -167
- package/docs/core/components/ui/link/link.md +0 -81
- package/docs/core/components/ui/loader/loader.html +0 -114
- package/docs/core/components/ui/loader/loader.md +0 -87
- package/docs/core/components/ui/menu/menu.md +0 -370
- package/docs/core/components/ui/modal/modal.html +0 -324
- package/docs/core/components/ui/modal/modal.md +0 -211
- package/docs/core/components/ui/pop/pop.html +0 -250
- package/docs/core/components/ui/pop/pop.md +0 -216
- package/docs/core/components/ui/progress/progress.md +0 -109
- package/docs/core/components/ui/table/table.html +0 -333
- package/docs/core/components/ui/table/table.md +0 -267
- package/docs/core/components/ui/theme/theme.html +0 -116
- package/docs/core/components/ui/theme/theme.md +0 -97
- package/docs/core/components/ui/toast/toast.html +0 -185
- package/docs/core/components/ui/toast/toast.md +0 -147
- package/docs/core/components/ui/tooltip/tooltip.html +0 -112
- package/docs/core/components/ui/tooltip/tooltip.md +0 -89
- package/docs/docs/decorators/ancestor-attribute.html +0 -71
- package/docs/docs/decorators/ancestor-attribute.md +0 -59
- package/docs/docs/decorators/auto-subscribe.html +0 -61
- package/docs/docs/decorators/auto-subscribe.md +0 -40
- package/docs/docs/decorators/bind.html +0 -86
- package/docs/docs/decorators/bind.md +0 -77
- package/docs/docs/decorators/get.html +0 -166
- package/docs/docs/decorators/get.md +0 -160
- package/docs/docs/decorators/handle.html +0 -139
- package/docs/docs/decorators/handle.md +0 -119
- package/docs/docs/decorators/on-assign.html +0 -72
- package/docs/docs/decorators/on-assign.md +0 -63
- package/docs/docs/decorators/patch.html +0 -76
- package/docs/docs/decorators/patch.md +0 -44
- package/docs/docs/decorators/post.html +0 -150
- package/docs/docs/decorators/post.md +0 -134
- package/docs/docs/decorators/publish.html +0 -74
- package/docs/docs/decorators/publish.md +0 -56
- package/docs/docs/decorators/put.html +0 -83
- package/docs/docs/decorators/put.md +0 -51
- package/docs/docs/decorators/subscribe.html +0 -91
- package/docs/docs/decorators/subscribe.md +0 -87
- package/docs/docs/decorators/wait-for-ancestors.html +0 -82
- package/docs/docs/decorators/wait-for-ancestors.md +0 -76
- package/docs/docs/directives/sub.html +0 -79
- package/docs/docs/directives/sub.md +0 -75
- package/docs/docs/directives/t.html +0 -91
- package/docs/docs/directives/t.md +0 -73
- package/docs/docs/getting-started/ai-agents.md +0 -76
- package/docs/docs/getting-started/components.html +0 -27
- package/docs/docs/getting-started/components.md +0 -5
- package/docs/docs/getting-started/installation.html +0 -69
- package/docs/docs/getting-started/installation.md +0 -36
- package/docs/docs/getting-started/my-first-component.md +0 -227
- package/docs/docs/getting-started/start.html +0 -47
- package/docs/docs/getting-started/start.md +0 -35
- package/docs/docs/getting-started/theming.md +0 -253
- package/docs/docs/index.html +0 -99
- package/docs/docs/misc/api-configuration.md +0 -79
- package/docs/docs/misc/dataProviderKey.md +0 -168
- package/docs/hubs/decorators.html +0 -443
- package/docs/hubs/form-components.html +0 -404
- package/docs/hubs/remote-data.html +0 -371
- package/docs/img/archive/concorde-001-2cv.webp +0 -0
- package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
- package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
- package/docs/img/archive/credits.json +0 -28
- package/docs/index.md +0 -22
- package/docs/src/core/components/functional/translation/translation.md +0 -38
- package/docs/src/docs/decorators/ancestor-attribute.md +0 -59
- package/docs/src/docs/decorators/auto-subscribe.md +0 -40
- package/docs/src/docs/decorators/bind.md +0 -77
- package/docs/src/docs/decorators/get.md +0 -160
- package/docs/src/docs/decorators/handle.md +0 -119
- package/docs/src/docs/decorators/on-assign.md +0 -63
- package/docs/src/docs/decorators/patch.md +0 -44
- package/docs/src/docs/decorators/post.md +0 -134
- package/docs/src/docs/decorators/publish.md +0 -56
- package/docs/src/docs/decorators/put.md +0 -51
- package/docs/src/docs/decorators/subscribe.md +0 -87
- package/docs/src/docs/decorators/wait-for-ancestors.md +0 -76
- package/docs/src/docs/directives/sub.md +0 -75
- package/docs/src/docs/directives/t.md +0 -73
- package/docs/src/docs/getting-started/components.md +0 -5
- package/docs/src/docs/getting-started/create-a-component.md +0 -136
- package/docs/src/docs/getting-started/dataFlow.md +0 -87
- package/docs/src/docs/getting-started/installation.md +0 -36
- package/docs/src/docs/misc/docs-mock-api.md +0 -62
- package/docs/src/docs/misc/dynamic-path.md +0 -71
- package/docs/src/docs/misc/endpoint.md +0 -45
- package/docs/src/docs/misc/html-integration.md +0 -14
- /package/{docs → dist}/img/concorde/plane_01.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_02.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_03.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_04.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_05.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_06.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_07.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_08.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_09.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_10.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_11.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_12.jpg +0 -0
- /package/{docs → dist}/img/concorde/plane_13.jpg +0 -0
|
@@ -1,65 +1,158 @@
|
|
|
1
1
|
# Table
|
|
2
2
|
|
|
3
|
-
**`sonic-table`** lays out tabular data with **`sonic-tr`**
|
|
3
|
+
**`sonic-table`** lays out tabular data with composable **`sonic-tr`** / **`sonic-th`** / **`sonic-td`** children. The root applies shared typography via **`size`**, scrolls horizontally when content overflows, and optionally caps height with **`maxHeight`**. Pair with **`sonic-thead`** and **`sonic-tbody`** for structure and with **`sonic-list`** to render fetched rows.
|
|
4
4
|
|
|
5
5
|
## Basic example
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
A header row plus body rows is enough for static tables; **`sonic-thead`** / **`sonic-tbody`** are optional for simple layouts.
|
|
8
|
+
|
|
9
|
+
<sonic-code>
|
|
10
|
+
<template>
|
|
11
|
+
<sonic-table>
|
|
12
|
+
<sonic-tr>
|
|
13
|
+
<sonic-th>Id</sonic-th>
|
|
14
|
+
<sonic-th>Name</sonic-th>
|
|
15
|
+
<sonic-th>Email</sonic-th>
|
|
16
|
+
</sonic-tr>
|
|
17
|
+
<sonic-tr>
|
|
18
|
+
<sonic-td>1</sonic-td>
|
|
19
|
+
<sonic-td>George Bluth</sonic-td>
|
|
20
|
+
<sonic-td>george.bluth@reqres.in</sonic-td>
|
|
21
|
+
</sonic-tr>
|
|
22
|
+
<sonic-tr>
|
|
23
|
+
<sonic-td>2</sonic-td>
|
|
24
|
+
<sonic-td>Janet Weaver</sonic-td>
|
|
25
|
+
<sonic-td>janet.weaver@reqres.in</sonic-td>
|
|
26
|
+
</sonic-tr>
|
|
27
|
+
<sonic-tr>
|
|
28
|
+
<sonic-td>3</sonic-td>
|
|
29
|
+
<sonic-td>Emma Wong</sonic-td>
|
|
30
|
+
<sonic-td>emma.wong@reqres.in</sonic-td>
|
|
31
|
+
</sonic-tr>
|
|
32
|
+
</sonic-table>
|
|
33
|
+
</template>
|
|
34
|
+
</sonic-code>
|
|
35
|
+
|
|
36
|
+
## List and fetch
|
|
37
|
+
|
|
38
|
+
Place **`sonic-list`** inside **`sonic-tbody`** so each item template renders a **`sonic-tr`**. **`sonic-list`** sets row metadata (`even` / `odd` / `last`) on **`sonic-tr`** for striping and borders.
|
|
39
|
+
|
|
40
|
+
<sonic-code>
|
|
41
|
+
<template>
|
|
42
|
+
<sonic-table>
|
|
43
|
+
<sonic-thead>
|
|
44
|
+
<sonic-tr>
|
|
45
|
+
<sonic-th>Id</sonic-th>
|
|
46
|
+
<sonic-th>Name</sonic-th>
|
|
47
|
+
<sonic-th>Email</sonic-th>
|
|
48
|
+
</sonic-tr>
|
|
49
|
+
</sonic-thead>
|
|
50
|
+
<sonic-tbody>
|
|
51
|
+
<sonic-list debug fetch serviceURL="/docs-mock-api" dataProvider="api/users" key="data" displayContents>
|
|
52
|
+
<template>
|
|
53
|
+
<sonic-tr>
|
|
54
|
+
<sonic-td data-bind ::inner-html="$id"></sonic-td>
|
|
55
|
+
<sonic-td data-bind ::inner-html="$first_name <b>$last_name</b>"></sonic-td>
|
|
56
|
+
<sonic-td data-bind ::inner-html="$email"></sonic-td>
|
|
57
|
+
</sonic-tr>
|
|
58
|
+
</template>
|
|
59
|
+
</sonic-list>
|
|
60
|
+
</sonic-tbody>
|
|
61
|
+
</sonic-table>
|
|
62
|
+
</template>
|
|
63
|
+
</sonic-code>
|
|
64
|
+
|
|
65
|
+
## Size
|
|
66
|
+
|
|
67
|
+
Default font size is **`md`** (omit **`size`**). Sizes follow the shared scale (`2xs` … `2xl`).
|
|
68
|
+
|
|
69
|
+
<sonic-code>
|
|
70
|
+
<template>
|
|
71
|
+
<div class="grid grid-cols-4 gap-3">
|
|
72
|
+
<sonic-table size="2xs" bordered>
|
|
73
|
+
<sonic-tr><sonic-td class="w-[5rem]">2xs</sonic-td></sonic-tr>
|
|
74
|
+
</sonic-table>
|
|
75
|
+
<sonic-table size="xs" bordered>
|
|
76
|
+
<sonic-tr><sonic-td class="w-[5rem]">xs</sonic-td></sonic-tr>
|
|
77
|
+
</sonic-table>
|
|
78
|
+
<sonic-table size="sm" bordered>
|
|
79
|
+
<sonic-tr><sonic-td class="w-[5rem]">sm</sonic-td></sonic-tr>
|
|
80
|
+
</sonic-table>
|
|
81
|
+
<sonic-table size="md" bordered>
|
|
82
|
+
<sonic-tr><sonic-td class="w-[5rem]">md</sonic-td></sonic-tr>
|
|
83
|
+
</sonic-table>
|
|
84
|
+
<sonic-table bordered>
|
|
85
|
+
<sonic-tr><sonic-td class="w-[5rem]">default</sonic-td></sonic-tr>
|
|
86
|
+
</sonic-table>
|
|
87
|
+
<sonic-table size="lg" bordered>
|
|
88
|
+
<sonic-tr><sonic-td class="w-[5rem]">lg</sonic-td></sonic-tr>
|
|
89
|
+
</sonic-table>
|
|
90
|
+
<sonic-table size="xl" bordered>
|
|
91
|
+
<sonic-tr><sonic-td class="w-[5rem]">xl</sonic-td></sonic-tr>
|
|
92
|
+
</sonic-table>
|
|
93
|
+
<sonic-table size="2xl" bordered>
|
|
94
|
+
<sonic-tr><sonic-td class="w-[5rem]">2xl</sonic-td></sonic-tr>
|
|
95
|
+
</sonic-table>
|
|
96
|
+
</div>
|
|
97
|
+
</template>
|
|
98
|
+
</sonic-code>
|
|
99
|
+
|
|
100
|
+
## Bordered
|
|
101
|
+
|
|
102
|
+
Set **`bordered`** on **`sonic-table`** for an outer frame and horizontal rules between rows.
|
|
8
103
|
|
|
9
104
|
<sonic-code>
|
|
10
105
|
<template>
|
|
11
106
|
<sonic-table bordered>
|
|
12
107
|
<sonic-thead>
|
|
13
108
|
<sonic-tr>
|
|
14
|
-
<sonic-th>
|
|
15
|
-
<sonic-th>
|
|
16
|
-
<sonic-th>
|
|
109
|
+
<sonic-th>Id</sonic-th>
|
|
110
|
+
<sonic-th>Name</sonic-th>
|
|
111
|
+
<sonic-th>Email</sonic-th>
|
|
17
112
|
</sonic-tr>
|
|
18
113
|
</sonic-thead>
|
|
19
114
|
<sonic-tbody>
|
|
20
115
|
<sonic-tr>
|
|
21
|
-
<sonic-td>
|
|
22
|
-
<sonic-td>
|
|
23
|
-
<sonic-td>
|
|
116
|
+
<sonic-td>1</sonic-td>
|
|
117
|
+
<sonic-td>George Bluth</sonic-td>
|
|
118
|
+
<sonic-td>george.bluth@reqres.in</sonic-td>
|
|
24
119
|
</sonic-tr>
|
|
25
120
|
<sonic-tr>
|
|
26
|
-
<sonic-td>
|
|
27
|
-
<sonic-td>
|
|
28
|
-
<sonic-td>
|
|
121
|
+
<sonic-td>2</sonic-td>
|
|
122
|
+
<sonic-td>Janet Weaver</sonic-td>
|
|
123
|
+
<sonic-td>janet.weaver@reqres.in</sonic-td>
|
|
29
124
|
</sonic-tr>
|
|
30
125
|
<sonic-tr>
|
|
31
|
-
<sonic-td>
|
|
32
|
-
<sonic-td>
|
|
33
|
-
<sonic-td>
|
|
126
|
+
<sonic-td>3</sonic-td>
|
|
127
|
+
<sonic-td>Emma Wong</sonic-td>
|
|
128
|
+
<sonic-td>emma.wong@reqres.in</sonic-td>
|
|
34
129
|
</sonic-tr>
|
|
35
130
|
</sonic-tbody>
|
|
36
131
|
</sonic-table>
|
|
37
132
|
</template>
|
|
38
133
|
</sonic-code>
|
|
39
134
|
|
|
40
|
-
##
|
|
135
|
+
## Max height
|
|
41
136
|
|
|
42
|
-
|
|
137
|
+
**`maxHeight`** applies to the scroll container (for example `8rem`), so the body scrolls vertically while the table can still scroll horizontally.
|
|
43
138
|
|
|
44
139
|
<sonic-code>
|
|
45
140
|
<template>
|
|
46
|
-
<sonic-table maxHeight="
|
|
141
|
+
<sonic-table maxHeight="8rem">
|
|
47
142
|
<sonic-thead>
|
|
48
143
|
<sonic-tr>
|
|
49
|
-
<sonic-th>
|
|
50
|
-
<sonic-th>
|
|
51
|
-
<sonic-th>
|
|
52
|
-
<sonic-th>Gate</sonic-th>
|
|
144
|
+
<sonic-th>Id</sonic-th>
|
|
145
|
+
<sonic-th>Name</sonic-th>
|
|
146
|
+
<sonic-th>Email</sonic-th>
|
|
53
147
|
</sonic-tr>
|
|
54
148
|
</sonic-thead>
|
|
55
149
|
<sonic-tbody>
|
|
56
|
-
<sonic-list fetch serviceURL="/docs-mock-api" dataProvider="
|
|
150
|
+
<sonic-list fetch serviceURL="/docs-mock-api" dataProvider="api/users" key="data" displayContents>
|
|
57
151
|
<template>
|
|
58
152
|
<sonic-tr>
|
|
59
|
-
<sonic-td data-bind ::inner-html="$
|
|
60
|
-
<sonic-td data-bind ::inner-html="$
|
|
61
|
-
<sonic-td
|
|
62
|
-
<sonic-td data-bind ::inner-html="$gate"></sonic-td>
|
|
153
|
+
<sonic-td data-bind ::inner-html="$id"></sonic-td>
|
|
154
|
+
<sonic-td data-bind ::inner-html="$first_name <b>$last_name</b>"></sonic-td>
|
|
155
|
+
<sonic-td data-bind ::inner-html="$email"></sonic-td>
|
|
63
156
|
</sonic-tr>
|
|
64
157
|
</template>
|
|
65
158
|
</sonic-list>
|
|
@@ -68,41 +161,23 @@ Put a **`sonic-list`** with `displayContents` inside **`sonic-tbody`** and rende
|
|
|
68
161
|
</template>
|
|
69
162
|
</sonic-code>
|
|
70
163
|
|
|
71
|
-
## Size
|
|
72
|
-
|
|
73
|
-
With no **`size`**, the table uses `md`.
|
|
74
|
-
|
|
75
|
-
<sonic-code>
|
|
76
|
-
<template>
|
|
77
|
-
<div class="grid grid-cols-4 gap-3">
|
|
78
|
-
<sonic-table size="2xs" bordered><sonic-tr><sonic-td>2xs</sonic-td></sonic-tr></sonic-table>
|
|
79
|
-
<sonic-table size="xs" bordered><sonic-tr><sonic-td>xs</sonic-td></sonic-tr></sonic-table>
|
|
80
|
-
<sonic-table size="sm" bordered><sonic-tr><sonic-td>sm</sonic-td></sonic-tr></sonic-table>
|
|
81
|
-
<sonic-table size="md" bordered><sonic-tr><sonic-td>md</sonic-td></sonic-tr></sonic-table>
|
|
82
|
-
<sonic-table size="lg" bordered><sonic-tr><sonic-td>lg</sonic-td></sonic-tr></sonic-table>
|
|
83
|
-
<sonic-table size="xl" bordered><sonic-tr><sonic-td>xl</sonic-td></sonic-tr></sonic-table>
|
|
84
|
-
<sonic-table size="2xl" bordered><sonic-tr><sonic-td>2xl</sonic-td></sonic-tr></sonic-table>
|
|
85
|
-
</div>
|
|
86
|
-
</template>
|
|
87
|
-
</sonic-code>
|
|
88
|
-
|
|
89
164
|
## Type
|
|
90
165
|
|
|
91
|
-
**`type`** on **`sonic-
|
|
166
|
+
Set **`type`** on **`sonic-th`** / **`sonic-td`** / **`sonic-tr`** for semantic text color (`primary` · `info` · `success` · `warning` · `danger` · `neutral` · `default`).
|
|
92
167
|
|
|
93
168
|
<sonic-code>
|
|
94
169
|
<template>
|
|
95
170
|
<sonic-table bordered>
|
|
96
171
|
<sonic-tr>
|
|
97
|
-
<sonic-th type="info">
|
|
172
|
+
<sonic-th type="info">Attribute type set on</sonic-th>
|
|
98
173
|
<sonic-th type="info">sonic-th</sonic-th>
|
|
99
174
|
</sonic-tr>
|
|
100
175
|
<sonic-tr>
|
|
101
|
-
<sonic-td type="danger">
|
|
176
|
+
<sonic-td type="danger">Attribute type set on</sonic-td>
|
|
102
177
|
<sonic-td type="danger">sonic-td</sonic-td>
|
|
103
178
|
</sonic-tr>
|
|
104
179
|
<sonic-tr type="success">
|
|
105
|
-
<sonic-td>
|
|
180
|
+
<sonic-td>Attribute type set on</sonic-td>
|
|
106
181
|
<sonic-td>sonic-tr</sonic-td>
|
|
107
182
|
</sonic-tr>
|
|
108
183
|
</sonic-table>
|
|
@@ -111,9 +186,11 @@ With no **`size`**, the table uses `md`.
|
|
|
111
186
|
|
|
112
187
|
## Colspan and rowspan
|
|
113
188
|
|
|
189
|
+
Use **`colSpan`** and **`rowSpan`** on **`sonic-th`** or **`sonic-td`** (maps to `colspan` / `rowspan` on the cell).
|
|
190
|
+
|
|
114
191
|
<sonic-code>
|
|
115
192
|
<template>
|
|
116
|
-
<sonic-table
|
|
193
|
+
<sonic-table>
|
|
117
194
|
<sonic-tbody>
|
|
118
195
|
<sonic-tr>
|
|
119
196
|
<sonic-td colspan="2" class="bg-info text-neutral-0">colspan: 2</sonic-td>
|
|
@@ -133,36 +210,73 @@ With no **`size`**, the table uses `md`.
|
|
|
133
210
|
</template>
|
|
134
211
|
</sonic-code>
|
|
135
212
|
|
|
136
|
-
##
|
|
213
|
+
## Cell alignment and width
|
|
137
214
|
|
|
138
|
-
**`align`** sets horizontal alignment
|
|
215
|
+
**`align`** sets horizontal alignment (`left` · `center` · `right`). **`minWidth`** / **`maxWidth`** / **`width`** set inline dimensions on the cell. **`vAlign`** is available on **`sonic-td`** only.
|
|
139
216
|
|
|
140
217
|
<sonic-code>
|
|
141
218
|
<template>
|
|
142
219
|
<sonic-table bordered>
|
|
143
220
|
<sonic-thead>
|
|
144
221
|
<sonic-tr>
|
|
145
|
-
<sonic-th width="
|
|
146
|
-
<sonic-th
|
|
147
|
-
<sonic-th>
|
|
222
|
+
<sonic-th width="7rem">align</sonic-th>
|
|
223
|
+
<sonic-th minWidth="20rem">minWidth</sonic-th>
|
|
224
|
+
<sonic-th>maxWidth</sonic-th>
|
|
225
|
+
<sonic-th>width</sonic-th>
|
|
148
226
|
</sonic-tr>
|
|
149
227
|
</sonic-thead>
|
|
150
228
|
<sonic-tbody>
|
|
151
229
|
<sonic-tr>
|
|
152
|
-
<sonic-td align="left">
|
|
153
|
-
<sonic-td
|
|
154
|
-
<sonic-td
|
|
230
|
+
<sonic-td align="left">Left</sonic-td>
|
|
231
|
+
<sonic-td>20rem</sonic-td>
|
|
232
|
+
<sonic-td>5rem</sonic-td>
|
|
233
|
+
<sonic-td>15rem</sonic-td>
|
|
155
234
|
</sonic-tr>
|
|
156
235
|
<sonic-tr>
|
|
157
236
|
<sonic-td align="center">center</sonic-td>
|
|
158
|
-
<sonic-td
|
|
159
|
-
<sonic-td
|
|
237
|
+
<sonic-td>20rem</sonic-td>
|
|
238
|
+
<sonic-td maxWidth="5rem">5rem</sonic-td>
|
|
239
|
+
<sonic-td>15rem</sonic-td>
|
|
160
240
|
</sonic-tr>
|
|
161
241
|
<sonic-tr>
|
|
162
242
|
<sonic-td align="right">right</sonic-td>
|
|
163
|
-
<sonic-td
|
|
164
|
-
<sonic-td
|
|
243
|
+
<sonic-td>20rem</sonic-td>
|
|
244
|
+
<sonic-td maxWidth="5rem">5rem — Lorem ipsum dolor</sonic-td>
|
|
245
|
+
<sonic-td width="60rem">15rem — Lorem ipsum dolor sit amet, consectetur adipiscing elit.</sonic-td>
|
|
246
|
+
</sonic-tr>
|
|
247
|
+
</sonic-tbody>
|
|
248
|
+
</sonic-table>
|
|
249
|
+
</template>
|
|
250
|
+
</sonic-code>
|
|
251
|
+
|
|
252
|
+
## Responsive layout
|
|
253
|
+
|
|
254
|
+
Tables scroll horizontally by default when columns exceed the viewport. Use **`minWidth`** on wide columns to preserve readable line length.
|
|
255
|
+
|
|
256
|
+
<sonic-code>
|
|
257
|
+
<template>
|
|
258
|
+
<sonic-table bordered>
|
|
259
|
+
<sonic-thead>
|
|
260
|
+
<sonic-tr>
|
|
261
|
+
<sonic-th>Id</sonic-th>
|
|
262
|
+
<sonic-th>Name</sonic-th>
|
|
263
|
+
<sonic-th>Email</sonic-th>
|
|
264
|
+
<sonic-th>Comment</sonic-th>
|
|
165
265
|
</sonic-tr>
|
|
266
|
+
</sonic-thead>
|
|
267
|
+
<sonic-tbody>
|
|
268
|
+
<sonic-list fetch serviceURL="/docs-mock-api" dataProvider="api/users" key="data" displayContents>
|
|
269
|
+
<template>
|
|
270
|
+
<sonic-tr>
|
|
271
|
+
<sonic-td data-bind ::inner-html="$id"></sonic-td>
|
|
272
|
+
<sonic-td minWidth="10rem" data-bind ::inner-html="$first_name <b>$last_name</b>"></sonic-td>
|
|
273
|
+
<sonic-td data-bind ::inner-html="$email"></sonic-td>
|
|
274
|
+
<sonic-td minWidth="40rem">
|
|
275
|
+
Phasellus suscipit vulputate lacus, in tempor turpis aliquam vel. Nunc eleifend, velit id ultrices elementum, ipsum felis porttitor dui, id laoreet diam nulla sed urna.
|
|
276
|
+
</sonic-td>
|
|
277
|
+
</sonic-tr>
|
|
278
|
+
</template>
|
|
279
|
+
</sonic-list>
|
|
166
280
|
</sonic-tbody>
|
|
167
281
|
</sonic-table>
|
|
168
282
|
</template>
|
|
@@ -170,14 +284,16 @@ With no **`size`**, the table uses `md`.
|
|
|
170
284
|
|
|
171
285
|
## Sticky header and caption
|
|
172
286
|
|
|
173
|
-
**`sonic-th`**
|
|
287
|
+
**`sonic-th`** uses `position: sticky` with `top: 0` inside the table. For page-level sticky headers, set **`noCustomScroll`** on **`sonic-table`** and position **`sonic-thead`** (for example `class="sticky top-16"`). Add **`sonic-caption`** for a table title below the grid.
|
|
174
288
|
|
|
175
289
|
<sonic-code>
|
|
176
290
|
<template>
|
|
177
291
|
<sonic-table bordered noCustomScroll>
|
|
178
292
|
<sonic-thead class="sticky top-16">
|
|
179
293
|
<sonic-tr>
|
|
180
|
-
<sonic-th minWidth="12rem">
|
|
294
|
+
<sonic-th minWidth="max(20ch,12rem)">Company</sonic-th>
|
|
295
|
+
<sonic-th type="success">Contact</sonic-th>
|
|
296
|
+
<sonic-th>Country</sonic-th>
|
|
181
297
|
<sonic-th align="center">Quantity</sonic-th>
|
|
182
298
|
<sonic-th align="right">Price</sonic-th>
|
|
183
299
|
<sonic-th></sonic-th>
|
|
@@ -185,37 +301,54 @@ With no **`size`**, the table uses `md`.
|
|
|
185
301
|
</sonic-thead>
|
|
186
302
|
<sonic-tbody>
|
|
187
303
|
<sonic-tr>
|
|
188
|
-
<sonic-td>
|
|
304
|
+
<sonic-td>Alfreds Futterkiste</sonic-td>
|
|
305
|
+
<sonic-td>Maria Anders</sonic-td>
|
|
306
|
+
<sonic-td>Germany</sonic-td>
|
|
189
307
|
<sonic-td align="center">2</sonic-td>
|
|
190
|
-
<sonic-td align="right">40
|
|
308
|
+
<sonic-td align="right">40€</sonic-td>
|
|
309
|
+
<sonic-td align="right">
|
|
310
|
+
<sonic-button shape="circle" variant="outline" size="sm">
|
|
311
|
+
<sonic-icon library="iconoir" name="edit-pencil" size="lg"></sonic-icon>
|
|
312
|
+
</sonic-button>
|
|
313
|
+
</sonic-td>
|
|
314
|
+
</sonic-tr>
|
|
315
|
+
<sonic-tr>
|
|
316
|
+
<sonic-td>Centro comercial Moctezuma</sonic-td>
|
|
317
|
+
<sonic-td colspan="2" align="center" class="text-center text-neutral-400">no information yet</sonic-td>
|
|
318
|
+
<sonic-td align="center">3</sonic-td>
|
|
319
|
+
<sonic-td align="right">40€</sonic-td>
|
|
191
320
|
<sonic-td align="right">
|
|
192
|
-
<sonic-button shape="circle" variant="outline" size="sm"
|
|
321
|
+
<sonic-button shape="circle" variant="outline" size="sm">
|
|
193
322
|
<sonic-icon library="iconoir" name="edit-pencil" size="lg"></sonic-icon>
|
|
194
323
|
</sonic-button>
|
|
195
324
|
</sonic-td>
|
|
196
325
|
</sonic-tr>
|
|
197
326
|
<sonic-tr type="warning">
|
|
198
|
-
<sonic-td>
|
|
327
|
+
<sonic-td>Laughing Bacchus Winecellars</sonic-td>
|
|
328
|
+
<sonic-td>Yoshi Tannamuri</sonic-td>
|
|
329
|
+
<sonic-td>Canada</sonic-td>
|
|
199
330
|
<sonic-td align="center">0</sonic-td>
|
|
200
|
-
<sonic-td align="right">
|
|
331
|
+
<sonic-td align="right">40€</sonic-td>
|
|
201
332
|
<sonic-td align="right">
|
|
202
|
-
<sonic-button shape="circle" variant="outline" size="sm"
|
|
333
|
+
<sonic-button shape="circle" variant="outline" size="sm">
|
|
203
334
|
<sonic-icon library="iconoir" name="edit-pencil" size="lg"></sonic-icon>
|
|
204
335
|
</sonic-button>
|
|
205
336
|
</sonic-td>
|
|
206
337
|
</sonic-tr>
|
|
207
338
|
<sonic-tr>
|
|
208
|
-
<sonic-td>
|
|
209
|
-
<sonic-td
|
|
210
|
-
<sonic-td
|
|
339
|
+
<sonic-td>Magazzini Alimentari Riuniti</sonic-td>
|
|
340
|
+
<sonic-td>Giovanni Rovelli</sonic-td>
|
|
341
|
+
<sonic-td type="danger">Italy</sonic-td>
|
|
342
|
+
<sonic-td align="center">20</sonic-td>
|
|
343
|
+
<sonic-td align="right">40€</sonic-td>
|
|
211
344
|
<sonic-td align="right">
|
|
212
|
-
<sonic-button shape="circle" variant="outline" size="sm"
|
|
345
|
+
<sonic-button shape="circle" variant="outline" size="sm">
|
|
213
346
|
<sonic-icon library="iconoir" name="edit-pencil" size="lg"></sonic-icon>
|
|
214
347
|
</sonic-button>
|
|
215
348
|
</sonic-td>
|
|
216
349
|
</sonic-tr>
|
|
217
350
|
</sonic-tbody>
|
|
218
|
-
<sonic-caption>
|
|
351
|
+
<sonic-caption>Table caption</sonic-caption>
|
|
219
352
|
</sonic-table>
|
|
220
353
|
</template>
|
|
221
354
|
</sonic-code>
|
|
@@ -226,41 +359,72 @@ With no **`size`**, the table uses `md`.
|
|
|
226
359
|
|
|
227
360
|
| Attribute | Values | Description |
|
|
228
361
|
|----------|---------|-------------|
|
|
229
|
-
| `size` | `2xs`
|
|
362
|
+
| `size` | `2xs` · `xs` · `sm` · `md` · `lg` · `xl` · `2xl` · `inherit` (default `md`) | Scales table font size via shared size tokens |
|
|
230
363
|
| `bordered` | boolean | Outer border and row dividers |
|
|
231
|
-
| `
|
|
232
|
-
| `
|
|
364
|
+
| `noCustomScroll` | boolean | Disables custom scrollbar styling on the horizontal scroll container |
|
|
365
|
+
| `rounded` | boolean | Reflected on the host; no default table styles |
|
|
366
|
+
| `maxHeight` | CSS length | Max height on the scroll container; enables vertical scrolling |
|
|
367
|
+
|
|
368
|
+
| Slot | Description |
|
|
369
|
+
|------|-------------|
|
|
370
|
+
| *(default)* | Table sections and rows (`sonic-thead`, `sonic-tbody`, `sonic-tr`, …) |
|
|
371
|
+
|
|
372
|
+
### `sonic-thead` · `sonic-tbody` · `sonic-tfoot`
|
|
233
373
|
|
|
234
374
|
| Slot | Description |
|
|
235
375
|
|------|-------------|
|
|
236
|
-
| *(default)* |
|
|
376
|
+
| *(default)* | Row elements (`sonic-tr`) |
|
|
377
|
+
|
|
378
|
+
`sonic-tbody` wraps slotted rows in a native `<tbody>` and applies zebra / hover backgrounds to **`sonic-tr`** children.
|
|
237
379
|
|
|
238
|
-
### `sonic-
|
|
380
|
+
### `sonic-caption`
|
|
239
381
|
|
|
240
|
-
|
|
382
|
+
| Slot | Description |
|
|
383
|
+
|------|-------------|
|
|
384
|
+
| *(default)* | Caption text rendered as `table-caption` |
|
|
241
385
|
|
|
242
386
|
### `sonic-tr`
|
|
243
387
|
|
|
244
388
|
| Attribute | Values | Description |
|
|
245
389
|
|----------|---------|-------------|
|
|
246
|
-
| `type` | `default` · `primary` · `info` · `success` · `warning` · `danger` · `neutral` |
|
|
247
|
-
| `even`
|
|
248
|
-
| `
|
|
390
|
+
| `type` | `default` · `primary` · `info` · `success` · `warning` · `danger` · `neutral` | Semantic text color for the row |
|
|
391
|
+
| `even` | boolean | Striping background; usually set by **`sonic-list`** metadata |
|
|
392
|
+
| `odd` | boolean | Alternate striping background; usually set by **`sonic-list`** |
|
|
393
|
+
| `last` | boolean | Removes bottom cell border on the last row when **`bordered`** |
|
|
394
|
+
|
|
395
|
+
| Slot | Description |
|
|
396
|
+
|------|-------------|
|
|
397
|
+
| *(default)* | Header or data cells (`sonic-th` / `sonic-td`) |
|
|
398
|
+
|
|
399
|
+
### `sonic-th`
|
|
400
|
+
|
|
401
|
+
| Attribute | Values | Description |
|
|
402
|
+
|----------|---------|-------------|
|
|
403
|
+
| `type` | `default` · `primary` · `info` · `success` · `warning` · `danger` · `neutral` | Semantic text color |
|
|
404
|
+
| `align` | `left` · `center` · `right` | Horizontal text alignment |
|
|
405
|
+
| `colSpan` | number | Column span |
|
|
406
|
+
| `rowSpan` | number | Row span |
|
|
407
|
+
| `minWidth` | CSS length | Minimum cell width |
|
|
408
|
+
| `maxWidth` | CSS length | Maximum cell width |
|
|
409
|
+
| `width` | CSS length | Cell width |
|
|
410
|
+
| `noBorder` | boolean | Removes the bottom border under the header cell |
|
|
249
411
|
|
|
250
412
|
| Slot | Description |
|
|
251
413
|
|------|-------------|
|
|
252
|
-
| *(default)* |
|
|
414
|
+
| *(default)* | Header label content |
|
|
253
415
|
|
|
254
|
-
### `sonic-
|
|
416
|
+
### `sonic-td`
|
|
255
417
|
|
|
256
418
|
| Attribute | Values | Description |
|
|
257
419
|
|----------|---------|-------------|
|
|
258
|
-
| `type` |
|
|
259
|
-
| `align` | `left` · `center` · `right` | Horizontal alignment |
|
|
260
|
-
| `vAlign` | CSS `vertical-align` | Vertical alignment
|
|
261
|
-
| `colSpan`
|
|
262
|
-
| `
|
|
263
|
-
| `
|
|
420
|
+
| `type` | `default` · `primary` · `info` · `success` · `warning` · `danger` · `neutral` | Semantic text color |
|
|
421
|
+
| `align` | `left` · `center` · `right` | Horizontal text alignment |
|
|
422
|
+
| `vAlign` | CSS `vertical-align` value | Vertical alignment |
|
|
423
|
+
| `colSpan` | number | Column span |
|
|
424
|
+
| `rowSpan` | number | Row span |
|
|
425
|
+
| `minWidth` | CSS length | Minimum cell width |
|
|
426
|
+
| `maxWidth` | CSS length | Maximum cell width |
|
|
427
|
+
| `width` | CSS length | Cell width |
|
|
264
428
|
|
|
265
429
|
| Slot | Description |
|
|
266
430
|
|------|-------------|
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# Theme
|
|
2
2
|
|
|
3
|
-
**`sonic-theme`**
|
|
3
|
+
**`sonic-theme`** wraps a Concorde UI: it registers **`--sc-*`** design tokens and provides the default slot for your app. With no **`theme`** attribute (or **`theme="custom"`**), only shared primitives and your overrides apply—built-in **`light`** / **`dark`** / **`auto`** palettes are opt-in. Set **`color`** and **`font`** when the host should carry base text and typography; add Tailwind **`bg-base`** and **`block`** (or **`min-h-screen`**) on the tag for a full surface fill. **Popovers**, **modals**, and **toasts** mount under the nearest connected theme (see [Pop container](#pop-container)). Import **`@supersoniks/concorde/theme`** once at the app entry. For the full public token list and brand overrides, see [Customization](#docs/_getting-started/theming.md/theming).
|
|
4
4
|
|
|
5
5
|
## Basic example
|
|
6
6
|
|
|
7
|
+
Wrap interactive components so tokens and overlays resolve from one root.
|
|
8
|
+
|
|
7
9
|
<sonic-code>
|
|
8
10
|
<template>
|
|
9
11
|
<sonic-theme color font class="block bg-base p-6 rounded-lg">
|
|
@@ -14,7 +16,9 @@
|
|
|
14
16
|
|
|
15
17
|
## Theme mode
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
**Default:** omit **`theme`** or set **`theme="custom"`**. The host loads core tokens (`--sc-rounded`, shadows, form defaults, …) and any **`--sc-*`** you set; it does **not** apply the built-in light or dark palette.
|
|
20
|
+
|
|
21
|
+
Set **`theme`** to **`light`** or **`dark`** for Concorde’s preset palettes. Set **`theme="auto"`** to follow **`prefers-color-scheme`** (light palette until the OS prefers dark).
|
|
18
22
|
|
|
19
23
|
<sonic-code>
|
|
20
24
|
<template>
|
|
@@ -39,21 +43,39 @@ With no `theme` (or `theme="custom"`), only the core tokens and your own `--sc-*
|
|
|
39
43
|
</template>
|
|
40
44
|
</sonic-code>
|
|
41
45
|
|
|
42
|
-
##
|
|
46
|
+
## Presentation
|
|
43
47
|
|
|
44
|
-
|
|
48
|
+
**`color`** sets text from **`--sc-base-content`**. **`font`** applies **`--sc-font-family-base`**, **`--sc-font-weight-base`**, and **`--sc-font-style-base`**. For the page or shell background, use **`bg-base`** on **`sonic-theme`** (maps to **`--sc-base`** in Tailwind) with **`block`** so the host paints the surface. Components keep their own fallbacks when **`color`** / **`font`** are omitted.
|
|
45
49
|
|
|
46
50
|
<sonic-code>
|
|
47
51
|
<template>
|
|
48
|
-
<sonic-theme theme="light" color font class="block bg-base p-6 rounded-lg">
|
|
49
|
-
<p>Body copy inherits
|
|
52
|
+
<sonic-theme theme="light" color font class="block bg-base p-6 min-h-[8rem] rounded-lg">
|
|
53
|
+
<p>Body copy inherits base content color and font from the theme host.</p>
|
|
54
|
+
</sonic-theme>
|
|
55
|
+
</template>
|
|
56
|
+
</sonic-code>
|
|
57
|
+
|
|
58
|
+
## Custom tokens
|
|
59
|
+
|
|
60
|
+
Override **primitives** on **`sonic-theme`** (or **`:root`** / a project stylesheet). Derived radii, shadows, and control rounding are computed from tokens such as **`--sc-rounded`**—avoid copying long lists of internal variables unless you have a specific need.
|
|
61
|
+
|
|
62
|
+
<sonic-code>
|
|
63
|
+
<template>
|
|
64
|
+
<sonic-theme
|
|
65
|
+
theme="custom"
|
|
66
|
+
color
|
|
67
|
+
font
|
|
68
|
+
class="block bg-base p-6 rounded-lg"
|
|
69
|
+
style="--sc-primary: #353429; --sc-rounded: 0.25rem;"
|
|
70
|
+
>
|
|
71
|
+
<sonic-button type="primary">Brand primary</sonic-button>
|
|
50
72
|
</sonic-theme>
|
|
51
73
|
</template>
|
|
52
74
|
</sonic-code>
|
|
53
75
|
|
|
54
76
|
## Pop container
|
|
55
77
|
|
|
56
|
-
|
|
78
|
+
**`Theme.getPopContainer()`** returns the last connected **`sonic-theme`**, or **`document.body`** if none is connected. When a theme disconnects, the previous connected instance is adopted. Imperative **`Modal.create()`** and declarative **`sonic-modal`** use the same container.
|
|
57
79
|
|
|
58
80
|
<sonic-code>
|
|
59
81
|
<template>
|
|
@@ -76,10 +98,11 @@ Overlays such as `sonic-modal` are appended to the last connected `sonic-theme`,
|
|
|
76
98
|
|
|
77
99
|
## Embedded iframes
|
|
78
100
|
|
|
79
|
-
On connect, the theme
|
|
101
|
+
On connect, the theme publishes resolved **`--sc-*`** values and linked font stylesheet URLs (Google Fonts / Adobe Fonts) to the **`sonic-theme`** data channel and **`postMessage`**s them to same-page iframes. Iframes can request a refresh by posting **`{ type: "GetSonicTheme" }`**.
|
|
80
102
|
|
|
81
103
|
<sonic-code language="javascript">
|
|
82
104
|
<template>
|
|
105
|
+
// Inside the iframe — ask the parent theme to rebroadcast tokens
|
|
83
106
|
window.parent.postMessage({ type: "GetSonicTheme" }, "*");
|
|
84
107
|
</template>
|
|
85
108
|
</sonic-code>
|
|
@@ -88,10 +111,12 @@ window.parent.postMessage({ type: "GetSonicTheme" }, "*");
|
|
|
88
111
|
|
|
89
112
|
| Attribute | Values | Description |
|
|
90
113
|
|----------|---------|-------------|
|
|
91
|
-
| `theme` | `custom` (default) · `light` · `dark` · `auto` |
|
|
114
|
+
| `theme` | omitted · `custom` (default) · `light` · `dark` · `auto` | Omitted or `custom`: core tokens and your `--sc-*` only. `light` / `dark`: fixed presets. `auto`: presets follow `prefers-color-scheme` |
|
|
92
115
|
| `color` | boolean | Host text color uses `--sc-base-content` |
|
|
93
|
-
| `font` | boolean | Host uses
|
|
116
|
+
| `font` | boolean | Host font uses `--sc-font-family-base` and related base weight/style tokens |
|
|
94
117
|
|
|
95
118
|
| Slot | Description |
|
|
96
119
|
|------|-------------|
|
|
97
|
-
| *(default)* | Application
|
|
120
|
+
| *(default)* | Application markup and Concorde components |
|
|
121
|
+
|
|
122
|
+
Surface background: Tailwind **`bg-base`** on **`sonic-theme`** (requires Concorde Tailwind color **`base`** → **`--sc-base`**).
|