@supersoniks/concorde 5.1.2 → 5.1.3-immutable.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/.agents/skills/concorde-docs/SKILL.md +1 -1
  2. package/.claude/skills +1 -0
  3. package/.github/workflows/ci.yml +21 -0
  4. package/.github-export-ignore +30 -0
  5. package/CONTRIBUTING.md +59 -0
  6. package/DEV.md +54 -0
  7. package/LICENSE +21 -0
  8. package/OPEN_SOURCE_CHECKPOINT.md +133 -0
  9. package/README.md +1 -1
  10. package/ai/README.md +29 -41
  11. package/ai/skills/concorde/SKILL.md +54 -324
  12. package/ai/skills/concorde/rules/composition.md +32 -0
  13. package/ai/skills/concorde/rules/data.md +47 -0
  14. package/ai/skills/concorde/rules/http.md +25 -0
  15. package/ai/skills/concorde/rules/lists-forms.md +35 -0
  16. package/ai/skills/concorde/rules/styling.md +46 -0
  17. package/ai/skills/concorde/rules/troubleshooting.md +45 -0
  18. package/build-infos.json +1 -1
  19. package/concorde-core.bundle.js +177 -177
  20. package/concorde-core.es.js +4993 -4833
  21. package/custom-elements-manifest.public.config.mjs +8 -0
  22. package/{.tmp-cem/custom-elements.json → custom-elements.json} +11722 -8868
  23. package/dist/concorde-core.bundle.js +177 -177
  24. package/dist/concorde-core.es.js +4993 -4833
  25. package/dist/docs-mock-api-sw.js +58 -223
  26. package/dist/docs-mock-api-sw.js.map +4 -4
  27. package/dist/img/og-concorde.jpg +0 -0
  28. package/dist/robots.txt +11 -10
  29. package/docs/assets/index-CD4WyL6o.css +1 -0
  30. package/docs/assets/index-D_alEsng.js +12122 -0
  31. package/docs/crawl/core/components/functional/date/date.html +190 -0
  32. package/docs/crawl/core/components/functional/fetch/fetch.html +109 -0
  33. package/docs/crawl/core/components/functional/if/if.html +27 -0
  34. package/docs/crawl/core/components/functional/jsonata/jsonata.html +79 -0
  35. package/docs/crawl/core/components/functional/list/list.html +70 -0
  36. package/docs/crawl/core/components/functional/mix/mix.html +45 -0
  37. package/docs/crawl/core/components/functional/queue/queue.html +96 -0
  38. package/docs/crawl/core/components/functional/router/router.html +106 -0
  39. package/docs/{core → crawl/core}/components/functional/sdui/sdui-extension-points.html +8 -9
  40. package/docs/crawl/core/components/functional/sdui/sdui.html +368 -0
  41. package/docs/crawl/core/components/functional/states/states.html +66 -0
  42. package/docs/crawl/core/components/functional/submit/submit.html +160 -0
  43. package/docs/{core → crawl/core}/components/functional/subscriber/subscriber.html +5 -6
  44. package/docs/crawl/core/components/functional/value/value.html +51 -0
  45. package/docs/{core → crawl/core}/components/ui/alert/alert.html +63 -53
  46. package/docs/{core → crawl/core}/components/ui/alert-messages/alert-messages.html +5 -6
  47. package/docs/{core → crawl/core}/components/ui/badge/badge.html +33 -33
  48. package/docs/crawl/core/components/ui/button/button.html +150 -0
  49. package/docs/crawl/core/components/ui/captcha/captcha.html +112 -0
  50. package/docs/{core → crawl/core}/components/ui/card/card.html +11 -12
  51. package/docs/{core → crawl/core}/components/ui/divider/divider.html +14 -14
  52. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +73 -0
  53. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +266 -0
  54. package/docs/{core → crawl/core}/components/ui/form/form-actions/form-actions.html +23 -23
  55. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +121 -0
  56. package/docs/crawl/core/components/ui/form/input/input.html +109 -0
  57. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +38 -0
  58. package/docs/crawl/core/components/ui/form/radio/radio.html +56 -0
  59. package/docs/crawl/core/components/ui/form/select/select.html +73 -0
  60. package/docs/crawl/core/components/ui/form/switch/switch.html +56 -0
  61. package/docs/crawl/core/components/ui/form/textarea/textarea.html +59 -0
  62. package/docs/crawl/core/components/ui/group/group.html +104 -0
  63. package/docs/{core → crawl/core}/components/ui/icon/icon.html +9 -10
  64. package/docs/crawl/core/components/ui/image/image.html +298 -0
  65. package/docs/{core → crawl/core}/components/ui/link/link.html +11 -12
  66. package/docs/crawl/core/components/ui/loader/loader.html +124 -0
  67. package/docs/{core → crawl/core}/components/ui/menu/menu.html +33 -34
  68. package/docs/crawl/core/components/ui/modal/modal.html +342 -0
  69. package/docs/crawl/core/components/ui/pop/pop.html +296 -0
  70. package/docs/{core → crawl/core}/components/ui/progress/progress.html +7 -8
  71. package/docs/crawl/core/components/ui/table/table.html +545 -0
  72. package/docs/crawl/core/components/ui/theme/theme.html +131 -0
  73. package/docs/crawl/core/components/ui/toast/toast.html +233 -0
  74. package/docs/crawl/core/components/ui/tooltip/tooltip.html +140 -0
  75. package/docs/{docs/getting-started → crawl/docs/_core-concept}/dataFlow.html +29 -26
  76. package/docs/crawl/docs/_core-concept/overview.html +66 -0
  77. package/docs/crawl/docs/_core-concept/subscriber.html +75 -0
  78. package/docs/crawl/docs/_decorators/ancestor-attribute.html +117 -0
  79. package/docs/crawl/docs/_decorators/auto-subscribe.html +202 -0
  80. package/docs/crawl/docs/_decorators/bind.html +141 -0
  81. package/docs/crawl/docs/_decorators/get.html +149 -0
  82. package/docs/crawl/docs/_decorators/handle.html +165 -0
  83. package/docs/crawl/docs/_decorators/on-assign.html +355 -0
  84. package/docs/crawl/docs/_decorators/patch.html +78 -0
  85. package/docs/crawl/docs/_decorators/post.html +139 -0
  86. package/docs/crawl/docs/_decorators/publish.html +61 -0
  87. package/docs/crawl/docs/_decorators/put.html +78 -0
  88. package/docs/crawl/docs/_decorators/subscribe.html +109 -0
  89. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +137 -0
  90. package/docs/crawl/docs/_directives/sub.html +93 -0
  91. package/docs/{docs/getting-started → crawl/docs/_getting-started}/ai-agents.html +11 -12
  92. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +100 -0
  93. package/docs/crawl/docs/_getting-started/concorde-outside.html +58 -0
  94. package/docs/{docs/getting-started → crawl/docs/_getting-started}/create-a-component.html +14 -11
  95. package/docs/{docs/getting-started → crawl/docs/_getting-started}/my-first-component.html +22 -13
  96. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +110 -0
  97. package/docs/crawl/docs/_getting-started/pubsub.html +62 -0
  98. package/docs/crawl/docs/_getting-started/start.html +76 -0
  99. package/docs/{docs/getting-started → crawl/docs/_getting-started}/theming.html +9 -10
  100. package/docs/{docs/misc → crawl/docs/_misc}/api-configuration.html +18 -18
  101. package/docs/{docs/misc → crawl/docs/_misc}/dataProviderKey.html +11 -12
  102. package/docs/{docs/misc → crawl/docs/_misc}/docs-mock-api.html +28 -25
  103. package/docs/{docs/misc → crawl/docs/_misc}/dynamic-path.html +15 -16
  104. package/docs/{docs/misc → crawl/docs/_misc}/endpoint.html +15 -16
  105. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
  106. package/docs/{docs/misc → crawl/docs/_misc}/html-integration.html +15 -12
  107. package/docs/crawl/hubs/decorators.html +547 -0
  108. package/docs/crawl/hubs/form-components.html +381 -0
  109. package/docs/crawl/hubs/remote-data.html +452 -0
  110. package/docs/crawl/index.html +103 -0
  111. package/docs/docs-mock-api-sw.js +223 -58
  112. package/docs/docs-mock-api-sw.js.map +4 -4
  113. package/docs/index.html +68 -95
  114. package/docs/llms-full.txt +3610 -2231
  115. package/docs/llms.txt +86 -94
  116. package/docs/robots.txt +10 -11
  117. package/docs/sitemap.xml +84 -78
  118. package/docs/src/core/components/functional/date/date.md +231 -91
  119. package/docs/src/core/components/functional/fetch/fetch.md +83 -66
  120. package/docs/src/core/components/functional/if/if.md +3 -28
  121. package/docs/src/core/components/functional/jsonata/jsonata.md +37 -42
  122. package/docs/src/core/components/functional/list/list.md +43 -99
  123. package/docs/src/core/components/functional/mix/mix.md +26 -31
  124. package/docs/src/core/components/functional/queue/queue.md +61 -40
  125. package/docs/src/core/components/functional/router/router.md +65 -64
  126. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  127. package/docs/src/core/components/functional/sdui/component-catalog.json +1 -1
  128. package/docs/src/core/components/functional/sdui/example.json +86 -19
  129. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  130. package/docs/src/core/components/functional/sdui/sdui.md +358 -187
  131. package/docs/src/core/components/functional/states/states.md +61 -86
  132. package/docs/src/core/components/functional/submit/submit.md +72 -64
  133. package/docs/src/core/components/functional/value/value.md +22 -34
  134. package/docs/src/core/components/ui/alert/alert.md +58 -48
  135. package/docs/src/core/components/ui/badge/badge.md +34 -27
  136. package/docs/src/core/components/ui/button/button.md +106 -139
  137. package/docs/src/core/components/ui/captcha/captcha.md +32 -17
  138. package/docs/src/core/components/ui/card/card.md +6 -6
  139. package/docs/src/core/components/ui/divider/divider.md +11 -8
  140. package/docs/src/core/components/ui/form/checkbox/checkbox.md +42 -90
  141. package/docs/src/core/components/ui/form/fieldset/fieldset.md +75 -31
  142. package/docs/src/core/components/ui/form/form-actions/form-actions.md +16 -14
  143. package/docs/src/core/components/ui/form/form-layout/form-layout.md +29 -19
  144. package/docs/src/core/components/ui/form/input/input.md +95 -95
  145. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +29 -0
  146. package/docs/src/core/components/ui/form/radio/radio.md +34 -55
  147. package/docs/src/core/components/ui/form/select/select.md +45 -60
  148. package/docs/src/core/components/ui/form/switch/switch.md +34 -57
  149. package/docs/src/core/components/ui/form/textarea/textarea.md +38 -55
  150. package/docs/src/core/components/ui/group/group.md +33 -35
  151. package/docs/src/core/components/ui/icon/icon.md +4 -4
  152. package/docs/src/core/components/ui/image/image.md +107 -41
  153. package/docs/src/core/components/ui/link/link.md +6 -6
  154. package/docs/src/core/components/ui/loader/loader.md +55 -30
  155. package/docs/src/core/components/ui/menu/menu.md +27 -27
  156. package/docs/src/core/components/ui/modal/modal.md +96 -72
  157. package/docs/src/core/components/ui/pop/pop.md +158 -80
  158. package/docs/src/core/components/ui/progress/progress.md +2 -2
  159. package/docs/src/core/components/ui/table/table.md +255 -91
  160. package/docs/src/core/components/ui/theme/theme.md +36 -11
  161. package/docs/src/core/components/ui/toast/toast.md +117 -48
  162. package/docs/src/core/components/ui/tooltip/tooltip.md +62 -27
  163. package/docs/{docs/getting-started → src/docs/_core-concept}/dataFlow.md +18 -17
  164. package/docs/src/docs/_core-concept/overview.md +57 -0
  165. package/docs/src/docs/_core-concept/subscriber.md +75 -0
  166. package/docs/src/docs/_decorators/ancestor-attribute.md +128 -0
  167. package/docs/src/docs/_decorators/auto-subscribe.md +202 -0
  168. package/docs/src/docs/_decorators/bind.md +167 -0
  169. package/docs/src/docs/_decorators/get.md +162 -0
  170. package/docs/src/docs/_decorators/handle.md +175 -0
  171. package/docs/src/docs/_decorators/on-assign.md +390 -0
  172. package/docs/src/docs/_decorators/patch.md +70 -0
  173. package/docs/src/docs/_decorators/post.md +146 -0
  174. package/docs/src/docs/_decorators/publish.md +55 -0
  175. package/docs/src/docs/_decorators/put.md +70 -0
  176. package/docs/src/docs/_decorators/subscribe.md +100 -0
  177. package/docs/src/docs/_decorators/wait-for-ancestors.md +163 -0
  178. package/docs/src/docs/_directives/sub.md +91 -0
  179. package/docs/src/docs/{getting-started → _getting-started}/ai-agents.md +3 -3
  180. package/docs/src/docs/_getting-started/concorde-manual-install.md +133 -0
  181. package/docs/src/docs/_getting-started/concorde-outside.md +33 -0
  182. package/docs/{docs/getting-started → src/docs/_getting-started}/create-a-component.md +6 -3
  183. package/docs/src/docs/{getting-started → _getting-started}/my-first-component.md +14 -5
  184. package/docs/src/docs/_getting-started/my-first-subscriber.md +120 -0
  185. package/docs/src/docs/_getting-started/pubsub.md +37 -0
  186. package/docs/src/docs/{getting-started → _getting-started}/start.md +13 -1
  187. package/docs/src/docs/{getting-started → _getting-started}/theming.md +2 -2
  188. package/docs/src/docs/{misc → _misc}/api-configuration.md +12 -10
  189. package/docs/src/docs/{misc → _misc}/dataProviderKey.md +4 -4
  190. package/docs/{docs/misc → src/docs/_misc}/docs-mock-api.md +13 -12
  191. package/docs/{docs/misc → src/docs/_misc}/dynamic-path.md +8 -8
  192. package/docs/{docs/misc → src/docs/_misc}/endpoint.md +8 -8
  193. package/docs/src/docs/_misc/formelement-subscriber-removal.md +115 -0
  194. package/docs/{docs/misc → src/docs/_misc}/html-integration.md +5 -4
  195. package/docs/src/docs/search/docs-search.json +4375 -2420
  196. package/docs/src/tsconfig.declarations.json +22 -0
  197. package/docs/src/tsconfig.emit.json +23 -0
  198. package/docs/src/tsconfig.json +2 -23
  199. package/gitlab/job_github_mirror.sh +39 -0
  200. package/index.html +89 -0
  201. package/package.json +22 -4
  202. package/public/img/og-concorde.jpg +0 -0
  203. package/scripts/ai-init.mjs +104 -379
  204. package/scripts/ai-init.test.mjs +81 -239
  205. package/scripts/docs-markdown-vite-plugin.ts +11 -5
  206. package/scripts/docs-public-url.mjs +6 -0
  207. package/scripts/docs.htaccess +7 -0
  208. package/scripts/generate-cem.mjs +244 -0
  209. package/scripts/generate-cem.test.mjs +122 -0
  210. package/scripts/generate-crawl-docs.mjs +29 -5
  211. package/scripts/generate-sdui-catalog.mjs +11 -10
  212. package/scripts/github-export.mjs +150 -0
  213. package/scripts/post-build-docs.js +3 -0
  214. package/scripts/post-build.mjs +0 -0
  215. package/scripts/pre-publish.mjs +2 -1
  216. package/scripts/site-pages.mjs +212 -0
  217. package/scripts/site-pages.test.mjs +116 -0
  218. package/site-pages/about.md +22 -0
  219. package/site-pages/privacy.md +32 -0
  220. package/src/core/components/functional/date/date.md +1 -1
  221. package/src/core/components/functional/example/example.ts +3 -1
  222. package/src/core/components/functional/if/if.ts +0 -0
  223. package/src/core/components/functional/list/list.demo.ts +0 -0
  224. package/src/core/components/functional/list/list.md +6 -2
  225. package/src/core/components/functional/list/list.ts +17 -4
  226. package/src/core/components/functional/mix/mix.md +0 -0
  227. package/src/core/components/functional/router/router.demo.ts +0 -0
  228. package/src/core/components/functional/router/router.ts +0 -0
  229. package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
  230. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  231. package/src/core/components/functional/sdui/component-catalog.json +2 -2
  232. package/src/core/components/functional/sdui/example.json +0 -0
  233. package/src/core/components/functional/sdui/sdui-immutable.spec.ts +74 -0
  234. package/src/core/components/functional/sdui/sdui.ts +33 -8
  235. package/src/core/components/functional/sdui/types.ts +0 -0
  236. package/src/core/components/functional/states/states.ts +0 -0
  237. package/src/core/components/functional/submit/submit.spec.ts +60 -0
  238. package/src/core/components/functional/submit/submit.ts +6 -3
  239. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  240. package/src/core/components/functional/value/value.md +0 -0
  241. package/src/core/components/functional/value/value.ts +0 -0
  242. package/src/core/components/ui/_css/size.ts +0 -0
  243. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  244. package/src/core/components/ui/card/card.md +1 -1
  245. package/src/core/components/ui/form/input/input.md +19 -1
  246. package/src/core/components/ui/form/input/input.ts +8 -2
  247. package/src/core/components/ui/form/radio/radio.md +14 -0
  248. package/src/core/components/ui/image/image.md +17 -17
  249. package/src/core/components/ui/modal/modal.md +2 -2
  250. package/src/core/decorators/subscriber/bind.ts +9 -14
  251. package/src/core/decorators/subscriber/subscribe.ts +15 -9
  252. package/src/core/decorators/subscriber/subscribe.type-test.ts +14 -5
  253. package/src/core/mixins/Subscriber.ts +0 -0
  254. package/src/core/utils/DataBindObserver.ts +0 -0
  255. package/src/core/utils/Objects.ts +0 -0
  256. package/src/core/utils/PublisherProxy.ts +166 -125
  257. package/src/core/utils/deepReadonly.spec.ts +66 -0
  258. package/src/core/utils/deepReadonly.ts +71 -0
  259. package/src/core/utils/immutableValue.spec.ts +54 -0
  260. package/src/core/utils/immutableValue.ts +102 -0
  261. package/src/core/utils/nestedDotForm.spec.ts +88 -0
  262. package/src/core/utils/publisherImmutable.spec.ts +76 -0
  263. package/src/core/utils/route.ts +0 -0
  264. package/src/core/utils/strictGet.spec.ts +61 -0
  265. package/src/core/utils/strictGet.ts +102 -0
  266. package/src/css.d.ts +19 -0
  267. package/src/docs/components/docs-demo-sources.ts +3 -3
  268. package/src/docs/decorators/bind.md +23 -24
  269. package/src/docs/docs-location.spec.ts +10 -0
  270. package/src/docs/docs-location.ts +10 -0
  271. package/src/docs/example/decorators-demo-bind-demos.ts +11 -28
  272. package/src/docs/example/docs-toggle-demos.ts +1 -1
  273. package/src/docs/example/users.ts +0 -0
  274. package/src/docs/getting-started/ai-agents.md +29 -55
  275. package/src/docs/getting-started/dataFlow.md +2 -2
  276. package/src/docs/home/home.ts +3 -1
  277. package/src/docs/misc/publisher-get-immutability-docs-crawl.json +902 -0
  278. package/src/docs/misc/publisher-get-immutability-docs-recheck.json +13 -0
  279. package/src/docs/misc/publisher-get-immutability-study.md +229 -0
  280. package/src/docs/navigation/navigation.ts +5 -1
  281. package/src/docs/search/docs-search.json +358 -58
  282. package/src/docs/search/markdown-renderer.ts +6 -1
  283. package/src/docs/tailwind/css/docs/content.css +4 -5
  284. package/src/tsconfig.declarations.json +22 -0
  285. package/src/tsconfig.emit.json +23 -0
  286. package/src/tsconfig.json +53 -5
  287. package/src/tsconfig.tsbuildinfo +1 -1
  288. package/.taste-skill/after/desktop-fold.jpg +0 -0
  289. package/.taste-skill/after/desktop-page-01.jpg +0 -0
  290. package/.taste-skill/after/desktop-page-02.jpg +0 -0
  291. package/.taste-skill/after/desktop-page-03.jpg +0 -0
  292. package/.taste-skill/after/mobile-fold.jpg +0 -0
  293. package/.taste-skill/after/mobile-page-01.jpg +0 -0
  294. package/.taste-skill/after/report.json +0 -4103
  295. package/.taste-skill/after/tablet-fold.jpg +0 -0
  296. package/.taste-skill/after/tablet-page-01.jpg +0 -0
  297. package/.taste-skill/after/tablet-page-02.jpg +0 -0
  298. package/.taste-skill/before/desktop-fold.jpg +0 -0
  299. package/.taste-skill/before/desktop-page-01.jpg +0 -0
  300. package/.taste-skill/before/desktop-page-02.jpg +0 -0
  301. package/.taste-skill/before/mobile-fold.jpg +0 -0
  302. package/.taste-skill/before/mobile-page-01.jpg +0 -0
  303. package/.taste-skill/before/report.json +0 -2556
  304. package/.taste-skill/before/tablet-fold.jpg +0 -0
  305. package/.taste-skill/before/tablet-page-01.jpg +0 -0
  306. package/.taste-skill/direction.json +0 -510
  307. package/.taste-skill/notes.md +0 -84
  308. package/.taste-skill/prod/desktop-fold.jpg +0 -0
  309. package/.taste-skill/prod/desktop-page-01.jpg +0 -0
  310. package/.taste-skill/prod/desktop-page-02.jpg +0 -0
  311. package/.taste-skill/prod/desktop-page-03.jpg +0 -0
  312. package/.taste-skill/prod/mobile-fold.jpg +0 -0
  313. package/.taste-skill/prod/mobile-page-01.jpg +0 -0
  314. package/.taste-skill/prod/mobile-page-02.jpg +0 -0
  315. package/.taste-skill/prod/report.json +0 -1973
  316. package/.taste-skill/prod/tablet-fold.jpg +0 -0
  317. package/.taste-skill/prod/tablet-page-01.jpg +0 -0
  318. package/.taste-skill/prod/tablet-page-02.jpg +0 -0
  319. package/AUDIT.md +0 -228
  320. package/PLAN-AMELIORATION.md +0 -220
  321. package/PLAN-DOCS-AGENTS.md +0 -80
  322. package/ai/AGENTS.md +0 -56
  323. package/ai/cursor/rules/concorde-menu.mdc +0 -15
  324. package/ai/cursor/rules/concorde-scope.mdc +0 -14
  325. package/ai/cursor/rules/concorde-theme.mdc +0 -13
  326. package/ai/cursor/rules/concorde.mdc +0 -66
  327. package/ai/jetbrains/rules/concorde.md +0 -53
  328. package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
  329. package/ai/skills/concorde-imports/SKILL.md +0 -78
  330. package/ai/skills/concorde-menu/SKILL.md +0 -74
  331. package/ai/skills/concorde-scope/SKILL.md +0 -70
  332. package/ai/skills/concorde-theme/SKILL.md +0 -57
  333. package/docs/.htaccess +0 -75
  334. package/docs/404.html +0 -15
  335. package/docs/404.md +0 -5
  336. package/docs/assets/index-BgG6FFPt.js +0 -11765
  337. package/docs/assets/index-x89XINSG.css +0 -1
  338. package/docs/core/components/functional/date/date.html +0 -211
  339. package/docs/core/components/functional/date/date.md +0 -150
  340. package/docs/core/components/functional/fetch/fetch.html +0 -180
  341. package/docs/core/components/functional/fetch/fetch.md +0 -108
  342. package/docs/core/components/functional/if/if.html +0 -65
  343. package/docs/core/components/functional/if/if.md +0 -34
  344. package/docs/core/components/functional/jsonata/jsonata.html +0 -110
  345. package/docs/core/components/functional/jsonata/jsonata.md +0 -61
  346. package/docs/core/components/functional/list/list.html +0 -198
  347. package/docs/core/components/functional/list/list.md +0 -121
  348. package/docs/core/components/functional/mix/mix.html +0 -78
  349. package/docs/core/components/functional/mix/mix.md +0 -46
  350. package/docs/core/components/functional/queue/queue.html +0 -155
  351. package/docs/core/components/functional/queue/queue.md +0 -51
  352. package/docs/core/components/functional/router/router.html +0 -154
  353. package/docs/core/components/functional/router/router.md +0 -93
  354. package/docs/core/components/functional/sdui/sdui-extension-points.md +0 -94
  355. package/docs/core/components/functional/sdui/sdui.html +0 -397
  356. package/docs/core/components/functional/sdui/sdui.md +0 -307
  357. package/docs/core/components/functional/states/states.html +0 -141
  358. package/docs/core/components/functional/states/states.md +0 -112
  359. package/docs/core/components/functional/submit/submit.html +0 -178
  360. package/docs/core/components/functional/submit/submit.md +0 -106
  361. package/docs/core/components/functional/subscriber/subscriber.md +0 -91
  362. package/docs/core/components/functional/translation/translation.html +0 -60
  363. package/docs/core/components/functional/translation/translation.md +0 -38
  364. package/docs/core/components/functional/value/value.html +0 -81
  365. package/docs/core/components/functional/value/value.md +0 -47
  366. package/docs/core/components/ui/alert/alert.md +0 -186
  367. package/docs/core/components/ui/alert-messages/alert-messages.md +0 -85
  368. package/docs/core/components/ui/badge/badge.md +0 -181
  369. package/docs/core/components/ui/button/button.html +0 -309
  370. package/docs/core/components/ui/button/button.md +0 -216
  371. package/docs/core/components/ui/captcha/captcha.html +0 -80
  372. package/docs/core/components/ui/captcha/captcha.md +0 -56
  373. package/docs/core/components/ui/card/card.md +0 -215
  374. package/docs/core/components/ui/divider/divider.md +0 -126
  375. package/docs/core/components/ui/form/checkbox/checkbox.html +0 -200
  376. package/docs/core/components/ui/form/checkbox/checkbox.md +0 -125
  377. package/docs/core/components/ui/form/fieldset/fieldset.html +0 -238
  378. package/docs/core/components/ui/form/fieldset/fieldset.md +0 -161
  379. package/docs/core/components/ui/form/form-actions/form-actions.md +0 -98
  380. package/docs/core/components/ui/form/form-layout/form-layout.html +0 -115
  381. package/docs/core/components/ui/form/form-layout/form-layout.md +0 -109
  382. package/docs/core/components/ui/form/input/input.html +0 -235
  383. package/docs/core/components/ui/form/input/input.md +0 -142
  384. package/docs/core/components/ui/form/radio/radio.html +0 -144
  385. package/docs/core/components/ui/form/radio/radio.md +0 -78
  386. package/docs/core/components/ui/form/select/select.html +0 -178
  387. package/docs/core/components/ui/form/select/select.md +0 -86
  388. package/docs/core/components/ui/form/switch/switch.html +0 -146
  389. package/docs/core/components/ui/form/switch/switch.md +0 -80
  390. package/docs/core/components/ui/form/textarea/textarea.html +0 -162
  391. package/docs/core/components/ui/form/textarea/textarea.md +0 -82
  392. package/docs/core/components/ui/group/group.html +0 -113
  393. package/docs/core/components/ui/group/group.md +0 -77
  394. package/docs/core/components/ui/icon/icon.md +0 -214
  395. package/docs/core/components/ui/image/image.html +0 -194
  396. package/docs/core/components/ui/image/image.md +0 -167
  397. package/docs/core/components/ui/link/link.md +0 -81
  398. package/docs/core/components/ui/loader/loader.html +0 -114
  399. package/docs/core/components/ui/loader/loader.md +0 -87
  400. package/docs/core/components/ui/menu/menu.md +0 -370
  401. package/docs/core/components/ui/modal/modal.html +0 -324
  402. package/docs/core/components/ui/modal/modal.md +0 -211
  403. package/docs/core/components/ui/pop/pop.html +0 -250
  404. package/docs/core/components/ui/pop/pop.md +0 -216
  405. package/docs/core/components/ui/progress/progress.md +0 -109
  406. package/docs/core/components/ui/table/table.html +0 -333
  407. package/docs/core/components/ui/table/table.md +0 -267
  408. package/docs/core/components/ui/theme/theme.html +0 -116
  409. package/docs/core/components/ui/theme/theme.md +0 -97
  410. package/docs/core/components/ui/toast/toast.html +0 -185
  411. package/docs/core/components/ui/toast/toast.md +0 -147
  412. package/docs/core/components/ui/tooltip/tooltip.html +0 -112
  413. package/docs/core/components/ui/tooltip/tooltip.md +0 -89
  414. package/docs/docs/decorators/ancestor-attribute.html +0 -71
  415. package/docs/docs/decorators/ancestor-attribute.md +0 -59
  416. package/docs/docs/decorators/auto-subscribe.html +0 -61
  417. package/docs/docs/decorators/auto-subscribe.md +0 -40
  418. package/docs/docs/decorators/bind.html +0 -86
  419. package/docs/docs/decorators/bind.md +0 -77
  420. package/docs/docs/decorators/get.html +0 -166
  421. package/docs/docs/decorators/get.md +0 -160
  422. package/docs/docs/decorators/handle.html +0 -139
  423. package/docs/docs/decorators/handle.md +0 -119
  424. package/docs/docs/decorators/on-assign.html +0 -72
  425. package/docs/docs/decorators/on-assign.md +0 -63
  426. package/docs/docs/decorators/patch.html +0 -76
  427. package/docs/docs/decorators/patch.md +0 -44
  428. package/docs/docs/decorators/post.html +0 -150
  429. package/docs/docs/decorators/post.md +0 -134
  430. package/docs/docs/decorators/publish.html +0 -74
  431. package/docs/docs/decorators/publish.md +0 -56
  432. package/docs/docs/decorators/put.html +0 -83
  433. package/docs/docs/decorators/put.md +0 -51
  434. package/docs/docs/decorators/subscribe.html +0 -91
  435. package/docs/docs/decorators/subscribe.md +0 -87
  436. package/docs/docs/decorators/wait-for-ancestors.html +0 -82
  437. package/docs/docs/decorators/wait-for-ancestors.md +0 -76
  438. package/docs/docs/directives/sub.html +0 -79
  439. package/docs/docs/directives/sub.md +0 -75
  440. package/docs/docs/directives/t.html +0 -91
  441. package/docs/docs/directives/t.md +0 -73
  442. package/docs/docs/getting-started/ai-agents.md +0 -76
  443. package/docs/docs/getting-started/components.html +0 -27
  444. package/docs/docs/getting-started/components.md +0 -5
  445. package/docs/docs/getting-started/installation.html +0 -69
  446. package/docs/docs/getting-started/installation.md +0 -36
  447. package/docs/docs/getting-started/my-first-component.md +0 -227
  448. package/docs/docs/getting-started/start.html +0 -47
  449. package/docs/docs/getting-started/start.md +0 -35
  450. package/docs/docs/getting-started/theming.md +0 -253
  451. package/docs/docs/index.html +0 -99
  452. package/docs/docs/misc/api-configuration.md +0 -79
  453. package/docs/docs/misc/dataProviderKey.md +0 -168
  454. package/docs/hubs/decorators.html +0 -443
  455. package/docs/hubs/form-components.html +0 -404
  456. package/docs/hubs/remote-data.html +0 -371
  457. package/docs/img/archive/concorde-001-2cv.webp +0 -0
  458. package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  459. package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
  460. package/docs/img/archive/credits.json +0 -28
  461. package/docs/index.md +0 -22
  462. package/docs/src/core/components/functional/translation/translation.md +0 -38
  463. package/docs/src/docs/decorators/ancestor-attribute.md +0 -59
  464. package/docs/src/docs/decorators/auto-subscribe.md +0 -40
  465. package/docs/src/docs/decorators/bind.md +0 -77
  466. package/docs/src/docs/decorators/get.md +0 -160
  467. package/docs/src/docs/decorators/handle.md +0 -119
  468. package/docs/src/docs/decorators/on-assign.md +0 -63
  469. package/docs/src/docs/decorators/patch.md +0 -44
  470. package/docs/src/docs/decorators/post.md +0 -134
  471. package/docs/src/docs/decorators/publish.md +0 -56
  472. package/docs/src/docs/decorators/put.md +0 -51
  473. package/docs/src/docs/decorators/subscribe.md +0 -87
  474. package/docs/src/docs/decorators/wait-for-ancestors.md +0 -76
  475. package/docs/src/docs/directives/sub.md +0 -75
  476. package/docs/src/docs/directives/t.md +0 -73
  477. package/docs/src/docs/getting-started/components.md +0 -5
  478. package/docs/src/docs/getting-started/create-a-component.md +0 -136
  479. package/docs/src/docs/getting-started/dataFlow.md +0 -87
  480. package/docs/src/docs/getting-started/installation.md +0 -36
  481. package/docs/src/docs/misc/docs-mock-api.md +0 -62
  482. package/docs/src/docs/misc/dynamic-path.md +0 -71
  483. package/docs/src/docs/misc/endpoint.md +0 -45
  484. package/docs/src/docs/misc/html-integration.md +0 -14
  485. /package/{docs → dist}/img/concorde/plane_01.jpg +0 -0
  486. /package/{docs → dist}/img/concorde/plane_02.jpg +0 -0
  487. /package/{docs → dist}/img/concorde/plane_03.jpg +0 -0
  488. /package/{docs → dist}/img/concorde/plane_04.jpg +0 -0
  489. /package/{docs → dist}/img/concorde/plane_05.jpg +0 -0
  490. /package/{docs → dist}/img/concorde/plane_06.jpg +0 -0
  491. /package/{docs → dist}/img/concorde/plane_07.jpg +0 -0
  492. /package/{docs → dist}/img/concorde/plane_08.jpg +0 -0
  493. /package/{docs → dist}/img/concorde/plane_09.jpg +0 -0
  494. /package/{docs → dist}/img/concorde/plane_10.jpg +0 -0
  495. /package/{docs → dist}/img/concorde/plane_11.jpg +0 -0
  496. /package/{docs → dist}/img/concorde/plane_12.jpg +0 -0
  497. /package/{docs → dist}/img/concorde/plane_13.jpg +0 -0
@@ -0,0 +1,545 @@
1
+ <!DOCTYPE html>
2
+ <html lang="fr" data-crawl-url="https://concorde.supersoniks.org/crawl/core/components/ui/table/table.html" data-doc-id="core/components/ui/table/table">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Table — Concorde</title>
7
+ <meta name="description" content="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">
8
+ <meta name="keywords" content="Concorde, supersoniks, core/components/ui/table/table, table, Table, UI component, sonic-table, web component, sonic-tr, sonic-th, sonic-td, size, maxHeight, sonic-thead, sonic-tbody, sonic-list">
9
+ <meta name="concorde-doc-id" content="core/components/ui/table/table">
10
+ <link rel="canonical" href="https://concorde.supersoniks.org/crawl/core/components/ui/table/table.html">
11
+ </head>
12
+ <body>
13
+ <header>
14
+ <p><a href="../../../../index.html">Concorde documentation (crawl)</a> · <a href="https://concorde.supersoniks.org/#core/components/ui/table/table.md/table" rel="nofollow">interactive version</a></p>
15
+ </header>
16
+ <main>
17
+ <article>
18
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Table</strong>. 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 <span>Doc ID: <code>core/components/ui/table/table</code>. Keywords: Concorde, supersoniks, core/components/ui/table/table, table, Table, UI component, sonic-table, web component, sonic-tr, sonic-th, sonic-td, size, maxHeight, sonic-thead, sonic-tbody, sonic-list. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/table/table.html">https://concorde.supersoniks.org/crawl/core/components/ui/table/table.html</a>.</span></p>
19
+ <h1 id="table">Table</h1>
20
+ <p><strong><code>sonic-table</code></strong> lays out tabular data with composable <strong><code>sonic-tr</code></strong> / <strong><code>sonic-th</code></strong> / <strong><code>sonic-td</code></strong> children. The root applies shared typography via <strong><code>size</code></strong>, scrolls horizontally when content overflows, and optionally caps height with <strong><code>maxHeight</code></strong>. Pair with <strong><code>sonic-thead</code></strong> and <strong><code>sonic-tbody</code></strong> for structure and with <strong><code>sonic-list</code></strong> to render fetched rows.</p>
21
+ <h2 id="basic-example">Basic example</h2>
22
+ <p>A header row plus body rows is enough for static tables; <strong><code>sonic-thead</code></strong> / <strong><code>sonic-tbody</code></strong> are optional for simple layouts.</p>
23
+ <pre><code>&lt;sonic-table&gt;
24
+ &lt;sonic-tr&gt;
25
+ &lt;sonic-th&gt;Id&lt;/sonic-th&gt;
26
+ &lt;sonic-th&gt;Name&lt;/sonic-th&gt;
27
+ &lt;sonic-th&gt;Email&lt;/sonic-th&gt;
28
+ &lt;/sonic-tr&gt;
29
+ &lt;sonic-tr&gt;
30
+ &lt;sonic-td&gt;1&lt;/sonic-td&gt;
31
+ &lt;sonic-td&gt;George Bluth&lt;/sonic-td&gt;
32
+ &lt;sonic-td&gt;george.bluth@reqres.in&lt;/sonic-td&gt;
33
+ &lt;/sonic-tr&gt;
34
+ &lt;sonic-tr&gt;
35
+ &lt;sonic-td&gt;2&lt;/sonic-td&gt;
36
+ &lt;sonic-td&gt;Janet Weaver&lt;/sonic-td&gt;
37
+ &lt;sonic-td&gt;janet.weaver@reqres.in&lt;/sonic-td&gt;
38
+ &lt;/sonic-tr&gt;
39
+ &lt;sonic-tr&gt;
40
+ &lt;sonic-td&gt;3&lt;/sonic-td&gt;
41
+ &lt;sonic-td&gt;Emma Wong&lt;/sonic-td&gt;
42
+ &lt;sonic-td&gt;emma.wong@reqres.in&lt;/sonic-td&gt;
43
+ &lt;/sonic-tr&gt;
44
+ &lt;/sonic-table&gt;
45
+ </code></pre>
46
+ <h2 id="list-and-fetch">List and fetch</h2>
47
+ <p>Place <strong><code>sonic-list</code></strong> inside <strong><code>sonic-tbody</code></strong> so each item template renders a <strong><code>sonic-tr</code></strong>. <strong><code>sonic-list</code></strong> sets row metadata (<code>even</code> / <code>odd</code> / <code>last</code>) on <strong><code>sonic-tr</code></strong> for striping and borders.</p>
48
+ <pre><code>&lt;sonic-table&gt;
49
+ &lt;sonic-thead&gt;
50
+ &lt;sonic-tr&gt;
51
+ &lt;sonic-th&gt;Id&lt;/sonic-th&gt;
52
+ &lt;sonic-th&gt;Name&lt;/sonic-th&gt;
53
+ &lt;sonic-th&gt;Email&lt;/sonic-th&gt;
54
+ &lt;/sonic-tr&gt;
55
+ &lt;/sonic-thead&gt;
56
+ &lt;sonic-tbody&gt;
57
+ &lt;sonic-list debug fetch serviceURL=&quot;/docs-mock-api&quot; dataProvider=&quot;api/users&quot; key=&quot;data&quot; displayContents&gt;
58
+ &lt;template&gt;
59
+ &lt;sonic-tr&gt;
60
+ &lt;sonic-td data-bind ::inner-html=&quot;$id&quot;&gt;&lt;/sonic-td&gt;
61
+ &lt;sonic-td data-bind ::inner-html=&quot;$first_name &lt;b&gt;$last_name&lt;/b&gt;&quot;&gt;&lt;/sonic-td&gt;
62
+ &lt;sonic-td data-bind ::inner-html=&quot;$email&quot;&gt;&lt;/sonic-td&gt;
63
+ &lt;/sonic-tr&gt;
64
+ </code></pre>
65
+ <h2 id="size">Size</h2>
66
+ <p>Default font size is <strong><code>md</code></strong> (omit <strong><code>size</code></strong>). Sizes follow the shared scale (<code>2xs</code> … <code>2xl</code>).</p>
67
+ <pre><code>&lt;div class=&quot;grid grid-cols-4 gap-3&quot;&gt;
68
+ &lt;sonic-table size=&quot;2xs&quot; bordered&gt;
69
+ &lt;sonic-tr&gt;&lt;sonic-td class=&quot;w-[5rem]&quot;&gt;2xs&lt;/sonic-td&gt;&lt;/sonic-tr&gt;
70
+ &lt;/sonic-table&gt;
71
+ &lt;sonic-table size=&quot;xs&quot; bordered&gt;
72
+ &lt;sonic-tr&gt;&lt;sonic-td class=&quot;w-[5rem]&quot;&gt;xs&lt;/sonic-td&gt;&lt;/sonic-tr&gt;
73
+ &lt;/sonic-table&gt;
74
+ &lt;sonic-table size=&quot;sm&quot; bordered&gt;
75
+ &lt;sonic-tr&gt;&lt;sonic-td class=&quot;w-[5rem]&quot;&gt;sm&lt;/sonic-td&gt;&lt;/sonic-tr&gt;
76
+ &lt;/sonic-table&gt;
77
+ &lt;sonic-table size=&quot;md&quot; bordered&gt;
78
+ &lt;sonic-tr&gt;&lt;sonic-td class=&quot;w-[5rem]&quot;&gt;md&lt;/sonic-td&gt;&lt;/sonic-tr&gt;
79
+ &lt;/sonic-table&gt;
80
+ &lt;sonic-table bordered&gt;
81
+ &lt;sonic-tr&gt;&lt;sonic-td class=&quot;w-[5rem]&quot;&gt;default&lt;/sonic-td&gt;&lt;/sonic-tr&gt;
82
+ &lt;/sonic-table&gt;
83
+ &lt;sonic-table size=&quot;lg&quot; bordered&gt;
84
+ &lt;sonic-tr&gt;&lt;sonic-td class=&quot;w-[5rem]&quot;&gt;lg&lt;/sonic-td&gt;&lt;/sonic-tr&gt;
85
+ &lt;/sonic-table&gt;
86
+ &lt;sonic-table size=&quot;xl&quot; bordered&gt;
87
+ &lt;sonic-tr&gt;&lt;sonic-td class=&quot;w-[5rem]&quot;&gt;xl&lt;/sonic-td&gt;&lt;/sonic-tr&gt;
88
+ &lt;/sonic-table&gt;
89
+ &lt;sonic-table size=&quot;2xl&quot; bordered&gt;
90
+ &lt;sonic-tr&gt;&lt;sonic-td class=&quot;w-[5rem]&quot;&gt;2xl&lt;/sonic-td&gt;&lt;/sonic-tr&gt;
91
+ &lt;/sonic-table&gt;
92
+ &lt;/div&gt;
93
+ </code></pre>
94
+ <h2 id="bordered">Bordered</h2>
95
+ <p>Set <strong><code>bordered</code></strong> on <strong><code>sonic-table</code></strong> for an outer frame and horizontal rules between rows.</p>
96
+ <pre><code>&lt;sonic-table bordered&gt;
97
+ &lt;sonic-thead&gt;
98
+ &lt;sonic-tr&gt;
99
+ &lt;sonic-th&gt;Id&lt;/sonic-th&gt;
100
+ &lt;sonic-th&gt;Name&lt;/sonic-th&gt;
101
+ &lt;sonic-th&gt;Email&lt;/sonic-th&gt;
102
+ &lt;/sonic-tr&gt;
103
+ &lt;/sonic-thead&gt;
104
+ &lt;sonic-tbody&gt;
105
+ &lt;sonic-tr&gt;
106
+ &lt;sonic-td&gt;1&lt;/sonic-td&gt;
107
+ &lt;sonic-td&gt;George Bluth&lt;/sonic-td&gt;
108
+ &lt;sonic-td&gt;george.bluth@reqres.in&lt;/sonic-td&gt;
109
+ &lt;/sonic-tr&gt;
110
+ &lt;sonic-tr&gt;
111
+ &lt;sonic-td&gt;2&lt;/sonic-td&gt;
112
+ &lt;sonic-td&gt;Janet Weaver&lt;/sonic-td&gt;
113
+ &lt;sonic-td&gt;janet.weaver@reqres.in&lt;/sonic-td&gt;
114
+ &lt;/sonic-tr&gt;
115
+ &lt;sonic-tr&gt;
116
+ &lt;sonic-td&gt;3&lt;/sonic-td&gt;
117
+ &lt;sonic-td&gt;Emma Wong&lt;/sonic-td&gt;
118
+ &lt;sonic-td&gt;emma.wong@reqres.in&lt;/sonic-td&gt;
119
+ &lt;/sonic-tr&gt;
120
+ &lt;/sonic-tbody&gt;
121
+ &lt;/sonic-table&gt;
122
+ </code></pre>
123
+ <h2 id="max-height">Max height</h2>
124
+ <p><strong><code>maxHeight</code></strong> applies to the scroll container (for example <code>8rem</code>), so the body scrolls vertically while the table can still scroll horizontally.</p>
125
+ <pre><code>&lt;sonic-table maxHeight=&quot;8rem&quot;&gt;
126
+ &lt;sonic-thead&gt;
127
+ &lt;sonic-tr&gt;
128
+ &lt;sonic-th&gt;Id&lt;/sonic-th&gt;
129
+ &lt;sonic-th&gt;Name&lt;/sonic-th&gt;
130
+ &lt;sonic-th&gt;Email&lt;/sonic-th&gt;
131
+ &lt;/sonic-tr&gt;
132
+ &lt;/sonic-thead&gt;
133
+ &lt;sonic-tbody&gt;
134
+ &lt;sonic-list fetch serviceURL=&quot;/docs-mock-api&quot; dataProvider=&quot;api/users&quot; key=&quot;data&quot; displayContents&gt;
135
+ &lt;template&gt;
136
+ &lt;sonic-tr&gt;
137
+ &lt;sonic-td data-bind ::inner-html=&quot;$id&quot;&gt;&lt;/sonic-td&gt;
138
+ &lt;sonic-td data-bind ::inner-html=&quot;$first_name &lt;b&gt;$last_name&lt;/b&gt;&quot;&gt;&lt;/sonic-td&gt;
139
+ &lt;sonic-td data-bind ::inner-html=&quot;$email&quot;&gt;&lt;/sonic-td&gt;
140
+ &lt;/sonic-tr&gt;
141
+ </code></pre>
142
+ <h2 id="type">Type</h2>
143
+ <p>Set <strong><code>type</code></strong> on <strong><code>sonic-th</code></strong> / <strong><code>sonic-td</code></strong> / <strong><code>sonic-tr</code></strong> for semantic text color (<code>primary</code> · <code>info</code> · <code>success</code> · <code>warning</code> · <code>danger</code> · <code>neutral</code> · <code>default</code>).</p>
144
+ <pre><code>&lt;sonic-table bordered&gt;
145
+ &lt;sonic-tr&gt;
146
+ &lt;sonic-th type=&quot;info&quot;&gt;Attribute type set on&lt;/sonic-th&gt;
147
+ &lt;sonic-th type=&quot;info&quot;&gt;sonic-th&lt;/sonic-th&gt;
148
+ &lt;/sonic-tr&gt;
149
+ &lt;sonic-tr&gt;
150
+ &lt;sonic-td type=&quot;danger&quot;&gt;Attribute type set on&lt;/sonic-td&gt;
151
+ &lt;sonic-td type=&quot;danger&quot;&gt;sonic-td&lt;/sonic-td&gt;
152
+ &lt;/sonic-tr&gt;
153
+ &lt;sonic-tr type=&quot;success&quot;&gt;
154
+ &lt;sonic-td&gt;Attribute type set on&lt;/sonic-td&gt;
155
+ &lt;sonic-td&gt;sonic-tr&lt;/sonic-td&gt;
156
+ &lt;/sonic-tr&gt;
157
+ &lt;/sonic-table&gt;
158
+ </code></pre>
159
+ <h2 id="colspan-and-rowspan">Colspan and rowspan</h2>
160
+ <p>Use <strong><code>colSpan</code></strong> and <strong><code>rowSpan</code></strong> on <strong><code>sonic-th</code></strong> or <strong><code>sonic-td</code></strong> (maps to <code>colspan</code> / <code>rowspan</code> on the cell).</p>
161
+ <pre><code>&lt;sonic-table&gt;
162
+ &lt;sonic-tbody&gt;
163
+ &lt;sonic-tr&gt;
164
+ &lt;sonic-td colspan=&quot;2&quot; class=&quot;bg-info text-neutral-0&quot;&gt;colspan: 2&lt;/sonic-td&gt;
165
+ &lt;sonic-td&gt;cell&lt;/sonic-td&gt;
166
+ &lt;/sonic-tr&gt;
167
+ &lt;sonic-tr&gt;
168
+ &lt;sonic-td&gt;cell&lt;/sonic-td&gt;
169
+ &lt;sonic-td&gt;cell&lt;/sonic-td&gt;
170
+ &lt;sonic-td rowspan=&quot;2&quot; class=&quot;bg-success text-neutral-0&quot;&gt;rowspan: 2&lt;/sonic-td&gt;
171
+ &lt;/sonic-tr&gt;
172
+ &lt;sonic-tr&gt;
173
+ &lt;sonic-td&gt;cell&lt;/sonic-td&gt;
174
+ &lt;sonic-td&gt;cell&lt;/sonic-td&gt;
175
+ &lt;/sonic-tr&gt;
176
+ &lt;/sonic-tbody&gt;
177
+ &lt;/sonic-table&gt;
178
+ </code></pre>
179
+ <h2 id="cell-alignment-and-width">Cell alignment and width</h2>
180
+ <p><strong><code>align</code></strong> sets horizontal alignment (<code>left</code> · <code>center</code> · <code>right</code>). <strong><code>minWidth</code></strong> / <strong><code>maxWidth</code></strong> / <strong><code>width</code></strong> set inline dimensions on the cell. <strong><code>vAlign</code></strong> is available on <strong><code>sonic-td</code></strong> only.</p>
181
+ <pre><code>&lt;sonic-table bordered&gt;
182
+ &lt;sonic-thead&gt;
183
+ &lt;sonic-tr&gt;
184
+ &lt;sonic-th width=&quot;7rem&quot;&gt;align&lt;/sonic-th&gt;
185
+ &lt;sonic-th minWidth=&quot;20rem&quot;&gt;minWidth&lt;/sonic-th&gt;
186
+ &lt;sonic-th&gt;maxWidth&lt;/sonic-th&gt;
187
+ &lt;sonic-th&gt;width&lt;/sonic-th&gt;
188
+ &lt;/sonic-tr&gt;
189
+ &lt;/sonic-thead&gt;
190
+ &lt;sonic-tbody&gt;
191
+ &lt;sonic-tr&gt;
192
+ &lt;sonic-td align=&quot;left&quot;&gt;Left&lt;/sonic-td&gt;
193
+ &lt;sonic-td&gt;20rem&lt;/sonic-td&gt;
194
+ &lt;sonic-td&gt;5rem&lt;/sonic-td&gt;
195
+ &lt;sonic-td&gt;15rem&lt;/sonic-td&gt;
196
+ &lt;/sonic-tr&gt;
197
+ &lt;sonic-tr&gt;
198
+ &lt;sonic-td align=&quot;center&quot;&gt;center&lt;/sonic-td&gt;
199
+ &lt;sonic-td&gt;20rem&lt;/sonic-td&gt;
200
+ &lt;sonic-td maxWidth=&quot;5rem&quot;&gt;5rem&lt;/sonic-td&gt;
201
+ &lt;sonic-td&gt;15rem&lt;/sonic-td&gt;
202
+ &lt;/sonic-tr&gt;
203
+ &lt;sonic-tr&gt;
204
+ &lt;sonic-td align=&quot;right&quot;&gt;right&lt;/sonic-td&gt;
205
+ &lt;sonic-td&gt;20rem&lt;/sonic-td&gt;
206
+ &lt;sonic-td maxWidth=&quot;5rem&quot;&gt;5rem — Lorem ipsum dolor&lt;/sonic-td&gt;
207
+ &lt;sonic-td width=&quot;60rem&quot;&gt;15rem — Lorem ipsum dolor sit amet, consectetur adipiscing elit.&lt;/sonic-td&gt;
208
+ &lt;/sonic-tr&gt;
209
+ &lt;/sonic-tbody&gt;
210
+ &lt;/sonic-table&gt;
211
+ </code></pre>
212
+ <h2 id="responsive-layout">Responsive layout</h2>
213
+ <p>Tables scroll horizontally by default when columns exceed the viewport. Use <strong><code>minWidth</code></strong> on wide columns to preserve readable line length.</p>
214
+ <pre><code>&lt;sonic-table bordered&gt;
215
+ &lt;sonic-thead&gt;
216
+ &lt;sonic-tr&gt;
217
+ &lt;sonic-th&gt;Id&lt;/sonic-th&gt;
218
+ &lt;sonic-th&gt;Name&lt;/sonic-th&gt;
219
+ &lt;sonic-th&gt;Email&lt;/sonic-th&gt;
220
+ &lt;sonic-th&gt;Comment&lt;/sonic-th&gt;
221
+ &lt;/sonic-tr&gt;
222
+ &lt;/sonic-thead&gt;
223
+ &lt;sonic-tbody&gt;
224
+ &lt;sonic-list fetch serviceURL=&quot;/docs-mock-api&quot; dataProvider=&quot;api/users&quot; key=&quot;data&quot; displayContents&gt;
225
+ &lt;template&gt;
226
+ &lt;sonic-tr&gt;
227
+ &lt;sonic-td data-bind ::inner-html=&quot;$id&quot;&gt;&lt;/sonic-td&gt;
228
+ &lt;sonic-td minWidth=&quot;10rem&quot; data-bind ::inner-html=&quot;$first_name &lt;b&gt;$last_name&lt;/b&gt;&quot;&gt;&lt;/sonic-td&gt;
229
+ &lt;sonic-td data-bind ::inner-html=&quot;$email&quot;&gt;&lt;/sonic-td&gt;
230
+ &lt;sonic-td minWidth=&quot;40rem&quot;&gt;
231
+ 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.
232
+ &lt;/sonic-td&gt;
233
+ &lt;/sonic-tr&gt;
234
+ </code></pre>
235
+ <h2 id="sticky-header-and-caption">Sticky header and caption</h2>
236
+ <p><strong><code>sonic-th</code></strong> uses <code>position: sticky</code> with <code>top: 0</code> inside the table. For page-level sticky headers, set <strong><code>noCustomScroll</code></strong> on <strong><code>sonic-table</code></strong> and position <strong><code>sonic-thead</code></strong> (for example <code>class=&quot;sticky top-16&quot;</code>). Add <strong><code>sonic-caption</code></strong> for a table title below the grid.</p>
237
+ <pre><code>&lt;sonic-table bordered noCustomScroll&gt;
238
+ &lt;sonic-thead class=&quot;sticky top-16&quot;&gt;
239
+ &lt;sonic-tr&gt;
240
+ &lt;sonic-th minWidth=&quot;max(20ch,12rem)&quot;&gt;Company&lt;/sonic-th&gt;
241
+ &lt;sonic-th type=&quot;success&quot;&gt;Contact&lt;/sonic-th&gt;
242
+ &lt;sonic-th&gt;Country&lt;/sonic-th&gt;
243
+ &lt;sonic-th align=&quot;center&quot;&gt;Quantity&lt;/sonic-th&gt;
244
+ &lt;sonic-th align=&quot;right&quot;&gt;Price&lt;/sonic-th&gt;
245
+ &lt;sonic-th&gt;&lt;/sonic-th&gt;
246
+ &lt;/sonic-tr&gt;
247
+ &lt;/sonic-thead&gt;
248
+ &lt;sonic-tbody&gt;
249
+ &lt;sonic-tr&gt;
250
+ &lt;sonic-td&gt;Alfreds Futterkiste&lt;/sonic-td&gt;
251
+ &lt;sonic-td&gt;Maria Anders&lt;/sonic-td&gt;
252
+ &lt;sonic-td&gt;Germany&lt;/sonic-td&gt;
253
+ &lt;sonic-td align=&quot;center&quot;&gt;2&lt;/sonic-td&gt;
254
+ &lt;sonic-td align=&quot;right&quot;&gt;40€&lt;/sonic-td&gt;
255
+ &lt;sonic-td align=&quot;right&quot;&gt;
256
+ &lt;sonic-button shape=&quot;circle&quot; variant=&quot;outline&quot; size=&quot;sm&quot;&gt;
257
+ &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;edit-pencil&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
258
+ &lt;/sonic-button&gt;
259
+ &lt;/sonic-td&gt;
260
+ &lt;/sonic-tr&gt;
261
+ &lt;sonic-tr&gt;
262
+ &lt;sonic-td&gt;Centro comercial Moctezuma&lt;/sonic-td&gt;
263
+ &lt;sonic-td colspan=&quot;2&quot; align=&quot;center&quot; class=&quot;text-center text-neutral-400&quot;&gt;no information yet&lt;/sonic-td&gt;
264
+ &lt;sonic-td align=&quot;center&quot;&gt;3&lt;/sonic-td&gt;
265
+ &lt;sonic-td align=&quot;right&quot;&gt;40€&lt;/sonic-td&gt;
266
+ &lt;sonic-td align=&quot;right&quot;&gt;
267
+ &lt;sonic-button shape=&quot;circle&quot; variant=&quot;outline&quot; size=&quot;sm&quot;&gt;
268
+ &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;edit-pencil&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
269
+ &lt;/sonic-button&gt;
270
+ &lt;/sonic-td&gt;
271
+ &lt;/sonic-tr&gt;
272
+ &lt;sonic-tr type=&quot;warning&quot;&gt;
273
+ &lt;sonic-td&gt;Laughing Bacchus Winecellars&lt;/sonic-td&gt;
274
+ &lt;sonic-td&gt;Yoshi Tannamuri&lt;/sonic-td&gt;
275
+ &lt;sonic-td&gt;Canada&lt;/sonic-td&gt;
276
+ &lt;sonic-td align=&quot;center&quot;&gt;0&lt;/sonic-td&gt;
277
+ &lt;sonic-td align=&quot;right&quot;&gt;40€&lt;/sonic-td&gt;
278
+ &lt;sonic-td align=&quot;right&quot;&gt;
279
+ &lt;sonic-button shape=&quot;circle&quot; variant=&quot;outline&quot; size=&quot;sm&quot;&gt;
280
+ &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;edit-pencil&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
281
+ &lt;/sonic-button&gt;
282
+ &lt;/sonic-td&gt;
283
+ &lt;/sonic-tr&gt;
284
+ &lt;sonic-tr&gt;
285
+ &lt;sonic-td&gt;Magazzini Alimentari Riuniti&lt;/sonic-td&gt;
286
+ &lt;sonic-td&gt;Giovanni Rovelli&lt;/sonic-td&gt;
287
+ &lt;sonic-td type=&quot;danger&quot;&gt;Italy&lt;/sonic-td&gt;
288
+ &lt;sonic-td align=&quot;center&quot;&gt;20&lt;/sonic-td&gt;
289
+ &lt;sonic-td align=&quot;right&quot;&gt;40€&lt;/sonic-td&gt;
290
+ &lt;sonic-td align=&quot;right&quot;&gt;
291
+ &lt;sonic-button shape=&quot;circle&quot; variant=&quot;outline&quot; size=&quot;sm&quot;&gt;
292
+ &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;edit-pencil&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
293
+ &lt;/sonic-button&gt;
294
+ &lt;/sonic-td&gt;
295
+ &lt;/sonic-tr&gt;
296
+ &lt;/sonic-tbody&gt;
297
+ &lt;sonic-caption&gt;Table caption&lt;/sonic-caption&gt;
298
+ &lt;/sonic-table&gt;
299
+ </code></pre>
300
+ <h2 id="api-reference">API reference</h2>
301
+ <h3 id="sonic-table"><code>sonic-table</code></h3>
302
+ <table>
303
+ <thead>
304
+ <tr>
305
+ <th>Attribute</th>
306
+ <th>Values</th>
307
+ <th>Description</th>
308
+ </tr>
309
+ </thead>
310
+ <tbody><tr>
311
+ <td><code>size</code></td>
312
+ <td><code>2xs</code> · <code>xs</code> · <code>sm</code> · <code>md</code> · <code>lg</code> · <code>xl</code> · <code>2xl</code> · <code>inherit</code> (default <code>md</code>)</td>
313
+ <td>Scales table font size via shared size tokens</td>
314
+ </tr>
315
+ <tr>
316
+ <td><code>bordered</code></td>
317
+ <td>boolean</td>
318
+ <td>Outer border and row dividers</td>
319
+ </tr>
320
+ <tr>
321
+ <td><code>noCustomScroll</code></td>
322
+ <td>boolean</td>
323
+ <td>Disables custom scrollbar styling on the horizontal scroll container</td>
324
+ </tr>
325
+ <tr>
326
+ <td><code>rounded</code></td>
327
+ <td>boolean</td>
328
+ <td>Reflected on the host; no default table styles</td>
329
+ </tr>
330
+ <tr>
331
+ <td><code>maxHeight</code></td>
332
+ <td>CSS length</td>
333
+ <td>Max height on the scroll container; enables vertical scrolling</td>
334
+ </tr>
335
+ </tbody></table>
336
+ <table>
337
+ <thead>
338
+ <tr>
339
+ <th>Slot</th>
340
+ <th>Description</th>
341
+ </tr>
342
+ </thead>
343
+ <tbody><tr>
344
+ <td><em>(default)</em></td>
345
+ <td>Table sections and rows (<code>sonic-thead</code>, <code>sonic-tbody</code>, <code>sonic-tr</code>, …)</td>
346
+ </tr>
347
+ </tbody></table>
348
+ <h3 id="sonic-thead--sonic-tbody--sonic-tfoot"><code>sonic-thead</code> · <code>sonic-tbody</code> · <code>sonic-tfoot</code></h3>
349
+ <table>
350
+ <thead>
351
+ <tr>
352
+ <th>Slot</th>
353
+ <th>Description</th>
354
+ </tr>
355
+ </thead>
356
+ <tbody><tr>
357
+ <td><em>(default)</em></td>
358
+ <td>Row elements (<code>sonic-tr</code>)</td>
359
+ </tr>
360
+ </tbody></table>
361
+ <p><code>sonic-tbody</code> wraps slotted rows in a native <code>&lt;tbody&gt;</code> and applies zebra / hover backgrounds to <strong><code>sonic-tr</code></strong> children.</p>
362
+ <h3 id="sonic-caption"><code>sonic-caption</code></h3>
363
+ <table>
364
+ <thead>
365
+ <tr>
366
+ <th>Slot</th>
367
+ <th>Description</th>
368
+ </tr>
369
+ </thead>
370
+ <tbody><tr>
371
+ <td><em>(default)</em></td>
372
+ <td>Caption text rendered as <code>table-caption</code></td>
373
+ </tr>
374
+ </tbody></table>
375
+ <h3 id="sonic-tr"><code>sonic-tr</code></h3>
376
+ <table>
377
+ <thead>
378
+ <tr>
379
+ <th>Attribute</th>
380
+ <th>Values</th>
381
+ <th>Description</th>
382
+ </tr>
383
+ </thead>
384
+ <tbody><tr>
385
+ <td><code>type</code></td>
386
+ <td><code>default</code> · <code>primary</code> · <code>info</code> · <code>success</code> · <code>warning</code> · <code>danger</code> · <code>neutral</code></td>
387
+ <td>Semantic text color for the row</td>
388
+ </tr>
389
+ <tr>
390
+ <td><code>even</code></td>
391
+ <td>boolean</td>
392
+ <td>Striping background; usually set by <strong><code>sonic-list</code></strong> metadata</td>
393
+ </tr>
394
+ <tr>
395
+ <td><code>odd</code></td>
396
+ <td>boolean</td>
397
+ <td>Alternate striping background; usually set by <strong><code>sonic-list</code></strong></td>
398
+ </tr>
399
+ <tr>
400
+ <td><code>last</code></td>
401
+ <td>boolean</td>
402
+ <td>Removes bottom cell border on the last row when <strong><code>bordered</code></strong></td>
403
+ </tr>
404
+ </tbody></table>
405
+ <table>
406
+ <thead>
407
+ <tr>
408
+ <th>Slot</th>
409
+ <th>Description</th>
410
+ </tr>
411
+ </thead>
412
+ <tbody><tr>
413
+ <td><em>(default)</em></td>
414
+ <td>Header or data cells (<code>sonic-th</code> / <code>sonic-td</code>)</td>
415
+ </tr>
416
+ </tbody></table>
417
+ <h3 id="sonic-th"><code>sonic-th</code></h3>
418
+ <table>
419
+ <thead>
420
+ <tr>
421
+ <th>Attribute</th>
422
+ <th>Values</th>
423
+ <th>Description</th>
424
+ </tr>
425
+ </thead>
426
+ <tbody><tr>
427
+ <td><code>type</code></td>
428
+ <td><code>default</code> · <code>primary</code> · <code>info</code> · <code>success</code> · <code>warning</code> · <code>danger</code> · <code>neutral</code></td>
429
+ <td>Semantic text color</td>
430
+ </tr>
431
+ <tr>
432
+ <td><code>align</code></td>
433
+ <td><code>left</code> · <code>center</code> · <code>right</code></td>
434
+ <td>Horizontal text alignment</td>
435
+ </tr>
436
+ <tr>
437
+ <td><code>colSpan</code></td>
438
+ <td>number</td>
439
+ <td>Column span</td>
440
+ </tr>
441
+ <tr>
442
+ <td><code>rowSpan</code></td>
443
+ <td>number</td>
444
+ <td>Row span</td>
445
+ </tr>
446
+ <tr>
447
+ <td><code>minWidth</code></td>
448
+ <td>CSS length</td>
449
+ <td>Minimum cell width</td>
450
+ </tr>
451
+ <tr>
452
+ <td><code>maxWidth</code></td>
453
+ <td>CSS length</td>
454
+ <td>Maximum cell width</td>
455
+ </tr>
456
+ <tr>
457
+ <td><code>width</code></td>
458
+ <td>CSS length</td>
459
+ <td>Cell width</td>
460
+ </tr>
461
+ <tr>
462
+ <td><code>noBorder</code></td>
463
+ <td>boolean</td>
464
+ <td>Removes the bottom border under the header cell</td>
465
+ </tr>
466
+ </tbody></table>
467
+ <table>
468
+ <thead>
469
+ <tr>
470
+ <th>Slot</th>
471
+ <th>Description</th>
472
+ </tr>
473
+ </thead>
474
+ <tbody><tr>
475
+ <td><em>(default)</em></td>
476
+ <td>Header label content</td>
477
+ </tr>
478
+ </tbody></table>
479
+ <h3 id="sonic-td"><code>sonic-td</code></h3>
480
+ <table>
481
+ <thead>
482
+ <tr>
483
+ <th>Attribute</th>
484
+ <th>Values</th>
485
+ <th>Description</th>
486
+ </tr>
487
+ </thead>
488
+ <tbody><tr>
489
+ <td><code>type</code></td>
490
+ <td><code>default</code> · <code>primary</code> · <code>info</code> · <code>success</code> · <code>warning</code> · <code>danger</code> · <code>neutral</code></td>
491
+ <td>Semantic text color</td>
492
+ </tr>
493
+ <tr>
494
+ <td><code>align</code></td>
495
+ <td><code>left</code> · <code>center</code> · <code>right</code></td>
496
+ <td>Horizontal text alignment</td>
497
+ </tr>
498
+ <tr>
499
+ <td><code>vAlign</code></td>
500
+ <td>CSS <code>vertical-align</code> value</td>
501
+ <td>Vertical alignment</td>
502
+ </tr>
503
+ <tr>
504
+ <td><code>colSpan</code></td>
505
+ <td>number</td>
506
+ <td>Column span</td>
507
+ </tr>
508
+ <tr>
509
+ <td><code>rowSpan</code></td>
510
+ <td>number</td>
511
+ <td>Row span</td>
512
+ </tr>
513
+ <tr>
514
+ <td><code>minWidth</code></td>
515
+ <td>CSS length</td>
516
+ <td>Minimum cell width</td>
517
+ </tr>
518
+ <tr>
519
+ <td><code>maxWidth</code></td>
520
+ <td>CSS length</td>
521
+ <td>Maximum cell width</td>
522
+ </tr>
523
+ <tr>
524
+ <td><code>width</code></td>
525
+ <td>CSS length</td>
526
+ <td>Cell width</td>
527
+ </tr>
528
+ </tbody></table>
529
+ <table>
530
+ <thead>
531
+ <tr>
532
+ <th>Slot</th>
533
+ <th>Description</th>
534
+ </tr>
535
+ </thead>
536
+ <tbody><tr>
537
+ <td><em>(default)</em></td>
538
+ <td>Cell content</td>
539
+ </tr>
540
+ </tbody></table>
541
+
542
+ </article>
543
+ </main>
544
+ </body>
545
+ </html>