@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
@@ -1,125 +0,0 @@
1
- # Checkbox
2
-
3
- **`sonic-checkbox`** is a styled checkbox that writes its `value` into form data. Give it a `name` and a `formDataProvider` (on the field or an ancestor); checkboxes sharing a `name` build an array of the checked values. Label goes in the default slot or `label`, helper text in the `description` slot.
4
-
5
- ## Basic example
6
-
7
- <sonic-code>
8
- <template>
9
- <sonic-checkbox>
10
- Notify me of gate changes
11
- <span slot="description">One message per change, no spam.</span>
12
- </sonic-checkbox>
13
- </template>
14
- </sonic-code>
15
-
16
- ## Size
17
-
18
- With no `size`, the checkbox follows `md` (1rem).
19
-
20
- <sonic-code>
21
- <template>
22
- <div class="grid gap-2">
23
- <sonic-checkbox size="2xs">2xs</sonic-checkbox>
24
- <sonic-checkbox size="xs">xs</sonic-checkbox>
25
- <sonic-checkbox size="sm">sm</sonic-checkbox>
26
- <sonic-checkbox>Default</sonic-checkbox>
27
- <sonic-checkbox size="lg">lg</sonic-checkbox>
28
- <sonic-checkbox size="xl">xl</sonic-checkbox>
29
- <sonic-checkbox size="2xl">2xl</sonic-checkbox>
30
- </div>
31
- </template>
32
- </sonic-code>
33
-
34
- ## Checked and disabled
35
-
36
- `checked` sets the initial state. `disabled` blocks interaction and dims the control.
37
-
38
- <sonic-code>
39
- <template>
40
- <div class="grid gap-2">
41
- <sonic-checkbox checked>Checked</sonic-checkbox>
42
- <sonic-checkbox disabled>Disabled</sonic-checkbox>
43
- <sonic-checkbox disabled checked>Disabled and checked</sonic-checkbox>
44
- <sonic-checkbox>I accept the <sonic-link href="#" class="underline">terms</sonic-link></sonic-checkbox>
45
- </div>
46
- </template>
47
- </sonic-code>
48
-
49
- ## Form binding
50
-
51
- Checkboxes with the same `name` under one `formDataProvider` store an array of the checked `value`s. Initial state is read from that data, so a value already present checks the matching box. See [Data flow](/docs/getting-started/dataFlow).
52
-
53
- <sonic-code>
54
- <template>
55
- <div formDataProvider="checkbox-multiple-demo" class="grid gap-2">
56
- <sonic-checkbox name="extras" value="baggage" checked>Extra baggage</sonic-checkbox>
57
- <sonic-checkbox name="extras" value="meal">Meal</sonic-checkbox>
58
- <sonic-checkbox name="extras" value="lounge">Lounge access</sonic-checkbox>
59
- <div>Selected: <sonic-value dataProvider="checkbox-multiple-demo" key="extras"></sonic-value></div>
60
- </div>
61
- </template>
62
- </sonic-code>
63
-
64
- ## Single value
65
-
66
- `unique` stores a single value instead of an array: checking one box unchecks the others with the same `name`, and the checked box can be unchecked again (value `null`). `radio` does the same but cannot be unchecked by a click.
67
-
68
- <sonic-code>
69
- <template>
70
- <div formDataProvider="checkbox-unique-demo" class="grid gap-2">
71
- <sonic-checkbox unique name="cabin" value="economy">Economy</sonic-checkbox>
72
- <sonic-checkbox unique name="cabin" value="business">Business</sonic-checkbox>
73
- <div>Cabin: <sonic-value dataProvider="checkbox-unique-demo" key="cabin"></sonic-value></div>
74
- </div>
75
- </template>
76
- </sonic-code>
77
-
78
- ## Check all and indeterminate
79
-
80
- A checkbox with `checksAll` and the same `name` toggles every sibling value. It shows the indeterminate icon when only some are checked; its own `value` is never stored. With `unsetOnDisconnect`, a checkbox removes its value from the data when it leaves the DOM. `showAsIndeterminate` forces the indeterminate icon on any checkbox.
81
-
82
- <sonic-code>
83
- <template>
84
- <div formDataProvider="checkbox-check-all-demo" class="grid gap-2">
85
- <sonic-checkbox name="alerts" value="all" checksAll>All alerts</sonic-checkbox>
86
- <sonic-checkbox name="alerts" value="boarding">Boarding</sonic-checkbox>
87
- <sonic-checkbox name="alerts" value="gate">Gate change</sonic-checkbox>
88
- <div id="checkbox-removable" class="flex gap-2 items-center">
89
- <sonic-checkbox name="alerts" value="delay" unsetOnDisconnect>Delay</sonic-checkbox>
90
- <sonic-button size="xs" variant="ghost" onclick="document.getElementById('checkbox-removable').remove()">Remove</sonic-button>
91
- </div>
92
- <div>Selected: <sonic-value dataProvider="checkbox-check-all-demo" key="alerts"></sonic-value></div>
93
- </div>
94
- </template>
95
- </sonic-code>
96
-
97
- ## API reference
98
-
99
- | Attribute | Values | Description |
100
- |----------|---------|-------------|
101
- | `name` | string | Key in the form data (dot notation supported) |
102
- | `value` | string | Value stored when checked |
103
- | `formDataProvider` | string | Form data id; inherited from the closest ancestor when omitted |
104
- | `checked` | boolean | Initial checked state |
105
- | `unique` | boolean | Stores a single value; can be unchecked |
106
- | `radio` | boolean | Stores a single value; cannot be unchecked by a click |
107
- | `checksAll` | boolean | Toggles every checkbox with the same `name` |
108
- | `unsetOnDisconnect` | boolean | Removes the value from the data when the element is removed |
109
- | `showAsIndeterminate` | boolean | Forces the indeterminate icon |
110
- | `label` | string (HTML) | Label, rendered before the default slot |
111
- | `description` | string (HTML) | Helper text, rendered in the `description` slot |
112
- | `size` | `2xs` … `2xl` · `inherit` (default `md`) | Font size and box size |
113
- | `disabled` | boolean | Blocks interaction |
114
- | `required` | boolean | Native validation on form submit |
115
- | `autofocus` | boolean | Focuses the input on load |
116
- | `iconName` | string (default `check`) | Icon shown when checked |
117
- | `indeterminateIconName` | string (default `minus-small`) | Icon shown when indeterminate |
118
- | `data-aria-label` · `data-aria-labelledby` | string | Forwarded to the inner input as `aria-label` / `aria-labelledby` |
119
-
120
- | Slot | Description |
121
- |------|-------------|
122
- | *(default)* | Label content (text, links) |
123
- | `description` | Helper text under the label |
124
-
125
- Fires a `change` event on each click.
@@ -1,238 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en" data-doc-url="https://concorde.supersoniks.org/core/components/ui/form/fieldset" data-doc-id="core/components/ui/form/fieldset/fieldset">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Fieldset — Concorde by Supersoniks</title>
7
- <meta name="description" content="sonic-fieldset groups related form controls in a bordered container rendered as a native &lt;fieldset&gt;. Put fields in the default slot and title the group with a slotted sonic-legend or with the label an">
8
- <meta name="keywords" content="Concorde, supersoniks, core/components/ui/form/fieldset/fieldset, fieldset, Fieldset, UI component, form, sonic-fieldset, web component, , sonic-legend, label, description, sonic-form-layout, variant, default, ghost, shadow">
9
- <meta name="concorde-doc-id" content="core/components/ui/form/fieldset/fieldset">
10
- <link rel="canonical" href="https://concorde.supersoniks.org/core/components/ui/form/fieldset">
11
- <link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/core/components/ui/form/fieldset.md">
12
- </head>
13
- <body>
14
- <header>
15
- <p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/core/components/ui/form/fieldset">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
16
- </header>
17
- <main>
18
- <article>
19
- <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Fieldset</strong>. sonic-fieldset groups related form controls in a bordered container rendered as a native &lt;fieldset&gt;. Put fields in the default slot and title the group with a slotted sonic-legend or with the label an <span>Doc ID: <code>core/components/ui/form/fieldset/fieldset</code>. Keywords: Concorde, supersoniks, core/components/ui/form/fieldset/fieldset, fieldset, Fieldset, UI component, form, sonic-fieldset, web component, , sonic-legend, label, description, sonic-form-layout, variant, default, ghost, shadow. URL: <a href="https://concorde.supersoniks.org/core/components/ui/form/fieldset">https://concorde.supersoniks.org/core/components/ui/form/fieldset</a>.</span></p>
20
- <h1 id="fieldset">Fieldset</h1>
21
- <p><strong><code>sonic-fieldset</code></strong> groups related form controls in a bordered container rendered as a native <code>&lt;fieldset&gt;</code>. Put fields in the default slot and title the group with a slotted <code>sonic-legend</code> or with the <code>label</code> and <code>description</code> shorthand. Pair the body with <code>sonic-form-layout</code> for responsive columns.</p>
22
- <h2 id="basic-example">Basic example</h2>
23
- <pre><code>&lt;sonic-fieldset&gt;
24
- &lt;sonic-legend label=&quot;Passenger contact&quot;&gt;&lt;/sonic-legend&gt;
25
- &lt;sonic-form-layout&gt;
26
- &lt;sonic-input autocomplete=&quot;email&quot; label=&quot;Email&quot; name=&quot;email&quot; type=&quot;email&quot;&gt;&lt;/sonic-input&gt;
27
- &lt;sonic-input autocomplete=&quot;tel&quot; label=&quot;Phone&quot; name=&quot;phone&quot; type=&quot;tel&quot;&gt;&lt;/sonic-input&gt;
28
- &lt;/sonic-form-layout&gt;
29
- &lt;/sonic-fieldset&gt;
30
- </code></pre>
31
- <h2 id="variant">Variant</h2>
32
- <p>With no <code>variant</code>, the fieldset is <code>default</code> (bordered). <code>ghost</code> and <code>shadow</code> hide the border; <code>shadow</code> adds <code>--sc-shadow-lg</code>.</p>
33
- <pre><code>&lt;div class=&quot;grid gap-4&quot;&gt;
34
- &lt;sonic-fieldset variant=&quot;default&quot;&gt;
35
- &lt;sonic-legend label=&quot;Default&quot;&gt;&lt;/sonic-legend&gt;
36
- &lt;sonic-input label=&quot;Field&quot; name=&quot;a&quot;&gt;&lt;/sonic-input&gt;
37
- &lt;/sonic-fieldset&gt;
38
- &lt;sonic-fieldset variant=&quot;ghost&quot;&gt;
39
- &lt;sonic-legend label=&quot;Ghost&quot;&gt;&lt;/sonic-legend&gt;
40
- &lt;sonic-input label=&quot;Field&quot; name=&quot;b&quot;&gt;&lt;/sonic-input&gt;
41
- &lt;/sonic-fieldset&gt;
42
- &lt;sonic-fieldset variant=&quot;shadow&quot;&gt;
43
- &lt;sonic-legend label=&quot;Shadow&quot;&gt;&lt;/sonic-legend&gt;
44
- &lt;sonic-input label=&quot;Field&quot; name=&quot;c&quot;&gt;&lt;/sonic-input&gt;
45
- &lt;/sonic-fieldset&gt;
46
- &lt;/div&gt;
47
- </code></pre>
48
- <h2 id="tight">Tight</h2>
49
- <p><code>tight</code> removes horizontal padding, side borders and rounding, for a flat strip inside a parent.</p>
50
- <pre><code>&lt;sonic-fieldset tight variant=&quot;ghost&quot;&gt;
51
- &lt;sonic-legend label=&quot;Tight fieldset&quot;&gt;&lt;/sonic-legend&gt;
52
- &lt;sonic-input label=&quot;Field&quot; name=&quot;tight&quot;&gt;&lt;/sonic-input&gt;
53
- &lt;/sonic-fieldset&gt;
54
- </code></pre>
55
- <h2 id="legend">Legend</h2>
56
- <p><code>sonic-legend</code> takes <code>label</code> and <code>description</code>, or custom markup in its default slot with <code>sonic-legend-description</code> for the secondary line. <code>iconName</code> adds a leading <code>sonic-icon</code>. <strong><code>label</code> and <code>description</code> are rendered as HTML</strong>: pass trusted content only.</p>
57
- <pre><code>&lt;div class=&quot;grid gap-4&quot;&gt;
58
- &lt;sonic-fieldset&gt;
59
- &lt;sonic-legend label=&quot;Attributes&quot; description=&quot;Short description via attributes&quot;&gt;&lt;/sonic-legend&gt;
60
- &lt;sonic-input label=&quot;Field&quot; name=&quot;attr&quot;&gt;&lt;/sonic-input&gt;
61
- &lt;/sonic-fieldset&gt;
62
- &lt;sonic-fieldset&gt;
63
- &lt;sonic-legend iconLibrary=&quot;iconoir&quot; iconName=&quot;pin-alt&quot;&gt;
64
- Custom title in the default slot
65
- &lt;sonic-legend-description&gt;Description via sonic-legend-description&lt;/sonic-legend-description&gt;
66
- &lt;/sonic-legend&gt;
67
- &lt;sonic-input label=&quot;Field&quot; name=&quot;slot&quot;&gt;&lt;/sonic-input&gt;
68
- &lt;/sonic-fieldset&gt;
69
- &lt;/div&gt;
70
- </code></pre>
71
- <h2 id="shorthand-legend">Shorthand legend</h2>
72
- <p>When <code>label</code> is set on <code>sonic-fieldset</code>, it renders the <code>sonic-legend</code> itself and forwards <code>description</code> · <code>iconName</code> · <code>iconLibrary</code> · <code>iconPrefix</code>. Do not also slot a <code>sonic-legend</code>, or the group gets two titles.</p>
73
- <pre><code>&lt;sonic-fieldset
74
- label=&quot;Crew profile&quot;
75
- description=&quot;Basic crew member fields&quot;
76
- iconLibrary=&quot;iconoir&quot;
77
- iconName=&quot;user&quot;
78
- &gt;
79
- &lt;sonic-input label=&quot;Display name&quot; name=&quot;display_name&quot;&gt;&lt;/sonic-input&gt;
80
- &lt;/sonic-fieldset&gt;
81
- </code></pre>
82
- <h2 id="legend-actions">Legend actions</h2>
83
- <p><code>slot=&quot;suffix&quot;</code> on <code>sonic-legend</code> aligns menus or icon buttons to the end of the title row.</p>
84
- <pre><code>&lt;sonic-fieldset&gt;
85
- &lt;sonic-legend label=&quot;Passenger details&quot;&gt;
86
- &lt;sonic-pop class=&quot;inline-block&quot; slot=&quot;suffix&quot;&gt;
87
- &lt;sonic-button shape=&quot;circle&quot; variant=&quot;ghost&quot;&gt;
88
- &lt;sonic-icon library=&quot;iconoir&quot; size=&quot;lg&quot; name=&quot;more-vert&quot;&gt;&lt;/sonic-icon&gt;
89
- &lt;/sonic-button&gt;
90
- &lt;sonic-menu slot=&quot;content&quot; minWidth=&quot;12rem&quot;&gt;
91
- &lt;sonic-menu-item&gt;Legal notice&lt;/sonic-menu-item&gt;
92
- &lt;sonic-menu-item&gt;Terms of use&lt;/sonic-menu-item&gt;
93
- &lt;/sonic-menu&gt;
94
- &lt;/sonic-pop&gt;
95
- &lt;/sonic-legend&gt;
96
- &lt;sonic-form-layout&gt;
97
- &lt;sonic-input autocomplete=&quot;family-name&quot; label=&quot;Last name&quot; name=&quot;last_name&quot;&gt;&lt;/sonic-input&gt;
98
- &lt;sonic-input autocomplete=&quot;given-name&quot; label=&quot;First name&quot; name=&quot;first_name&quot;&gt;&lt;/sonic-input&gt;
99
- &lt;/sonic-form-layout&gt;
100
- &lt;/sonic-fieldset&gt;
101
- </code></pre>
102
- <p><sonic-alert status="warning" label="Disabled state and form association" text="Both attributes are set on the inner native fieldset only. Slotted Concorde fields are not disabled or re-associated by them: set disabled on each field instead."></sonic-alert></p>
103
- <h2 id="api-reference">API reference</h2>
104
- <h3 id="sonic-fieldset"><code>sonic-fieldset</code></h3>
105
- <table>
106
- <thead>
107
- <tr>
108
- <th>Attribute</th>
109
- <th>Values</th>
110
- <th>Description</th>
111
- </tr>
112
- </thead>
113
- <tbody><tr>
114
- <td><code>variant</code></td>
115
- <td><code>default</code> · <code>ghost</code> · <code>shadow</code> (default <code>default</code>)</td>
116
- <td>Border and shadow treatment</td>
117
- </tr>
118
- <tr>
119
- <td><code>tight</code></td>
120
- <td>boolean</td>
121
- <td>Removes horizontal padding, side borders and rounding</td>
122
- </tr>
123
- <tr>
124
- <td><code>label</code></td>
125
- <td>string</td>
126
- <td>Shorthand title; renders a <code>sonic-legend</code> when set</td>
127
- </tr>
128
- <tr>
129
- <td><code>description</code></td>
130
- <td>string</td>
131
- <td>Shorthand description (HTML)</td>
132
- </tr>
133
- <tr>
134
- <td><code>iconName</code></td>
135
- <td>string</td>
136
- <td>Shorthand legend icon <code>name</code></td>
137
- </tr>
138
- <tr>
139
- <td><code>iconLibrary</code></td>
140
- <td>string</td>
141
- <td>Shorthand legend icon <code>library</code></td>
142
- </tr>
143
- <tr>
144
- <td><code>iconPrefix</code></td>
145
- <td>string</td>
146
- <td>Shorthand legend icon <code>prefix</code></td>
147
- </tr>
148
- <tr>
149
- <td><code>disabled</code></td>
150
- <td>boolean</td>
151
- <td>Sets <code>disabled</code> on the inner native <code>&lt;fieldset&gt;</code></td>
152
- </tr>
153
- <tr>
154
- <td><code>form</code></td>
155
- <td>string</td>
156
- <td>Sets <code>form</code> on the inner native <code>&lt;fieldset&gt;</code></td>
157
- </tr>
158
- <tr>
159
- <td><code>dataProvider</code></td>
160
- <td>string</td>
161
- <td>Publisher key; matching publisher fields (e.g. <code>label</code>) fill the properties</td>
162
- </tr>
163
- </tbody></table>
164
- <table>
165
- <thead>
166
- <tr>
167
- <th>Slot</th>
168
- <th>Description</th>
169
- </tr>
170
- </thead>
171
- <tbody><tr>
172
- <td><em>(default)</em></td>
173
- <td>Optional <code>sonic-legend</code>, then the grouped fields</td>
174
- </tr>
175
- </tbody></table>
176
- <h3 id="sonic-legend"><code>sonic-legend</code></h3>
177
- <table>
178
- <thead>
179
- <tr>
180
- <th>Attribute</th>
181
- <th>Values</th>
182
- <th>Description</th>
183
- </tr>
184
- </thead>
185
- <tbody><tr>
186
- <td><code>label</code></td>
187
- <td>string</td>
188
- <td>Title (HTML)</td>
189
- </tr>
190
- <tr>
191
- <td><code>description</code></td>
192
- <td>string</td>
193
- <td>Description (HTML), wrapped in <code>sonic-legend-description</code></td>
194
- </tr>
195
- <tr>
196
- <td><code>iconName</code></td>
197
- <td>string</td>
198
- <td>Leading <code>sonic-icon</code> <code>name</code></td>
199
- </tr>
200
- <tr>
201
- <td><code>iconLibrary</code></td>
202
- <td>string</td>
203
- <td>Icon <code>library</code></td>
204
- </tr>
205
- <tr>
206
- <td><code>iconPrefix</code></td>
207
- <td>string</td>
208
- <td>Icon <code>prefix</code></td>
209
- </tr>
210
- <tr>
211
- <td><code>forceAutoFill</code></td>
212
- <td>boolean</td>
213
- <td>Lets a <code>label</code> or <code>description</code> set as a property override the attribute value</td>
214
- </tr>
215
- </tbody></table>
216
- <table>
217
- <thead>
218
- <tr>
219
- <th>Slot</th>
220
- <th>Description</th>
221
- </tr>
222
- </thead>
223
- <tbody><tr>
224
- <td><em>(default)</em></td>
225
- <td>Custom title and <code>sonic-legend-description</code></td>
226
- </tr>
227
- <tr>
228
- <td><code>suffix</code></td>
229
- <td>Trailing actions (menus, icon buttons)</td>
230
- </tr>
231
- </tbody></table>
232
- <h3 id="sonic-legend-description"><code>sonic-legend-description</code></h3>
233
- <p>No attributes. The default slot holds the muted line under the legend title.</p>
234
-
235
- </article>
236
- </main>
237
- </body>
238
- </html>
@@ -1,161 +0,0 @@
1
- # Fieldset
2
-
3
- **`sonic-fieldset`** groups related form controls in a bordered container rendered as a native `<fieldset>`. Put fields in the default slot and title the group with a slotted `sonic-legend` or with the `label` and `description` shorthand. Pair the body with `sonic-form-layout` for responsive columns.
4
-
5
- ## Basic example
6
-
7
- <sonic-code>
8
- <template>
9
- <sonic-fieldset>
10
- <sonic-legend label="Passenger contact"></sonic-legend>
11
- <sonic-form-layout>
12
- <sonic-input autocomplete="email" label="Email" name="email" type="email"></sonic-input>
13
- <sonic-input autocomplete="tel" label="Phone" name="phone" type="tel"></sonic-input>
14
- </sonic-form-layout>
15
- </sonic-fieldset>
16
- </template>
17
- </sonic-code>
18
-
19
- ## Variant
20
-
21
- With no `variant`, the fieldset is `default` (bordered). `ghost` and `shadow` hide the border; `shadow` adds `--sc-shadow-lg`.
22
-
23
- <sonic-code>
24
- <template>
25
- <div class="grid gap-4">
26
- <sonic-fieldset variant="default">
27
- <sonic-legend label="Default"></sonic-legend>
28
- <sonic-input label="Field" name="a"></sonic-input>
29
- </sonic-fieldset>
30
- <sonic-fieldset variant="ghost">
31
- <sonic-legend label="Ghost"></sonic-legend>
32
- <sonic-input label="Field" name="b"></sonic-input>
33
- </sonic-fieldset>
34
- <sonic-fieldset variant="shadow">
35
- <sonic-legend label="Shadow"></sonic-legend>
36
- <sonic-input label="Field" name="c"></sonic-input>
37
- </sonic-fieldset>
38
- </div>
39
- </template>
40
- </sonic-code>
41
-
42
- ## Tight
43
-
44
- `tight` removes horizontal padding, side borders and rounding, for a flat strip inside a parent.
45
-
46
- <sonic-code>
47
- <template>
48
- <sonic-fieldset tight variant="ghost">
49
- <sonic-legend label="Tight fieldset"></sonic-legend>
50
- <sonic-input label="Field" name="tight"></sonic-input>
51
- </sonic-fieldset>
52
- </template>
53
- </sonic-code>
54
-
55
- ## Legend
56
-
57
- `sonic-legend` takes `label` and `description`, or custom markup in its default slot with `sonic-legend-description` for the secondary line. `iconName` adds a leading `sonic-icon`. **`label` and `description` are rendered as HTML**: pass trusted content only.
58
-
59
- <sonic-code>
60
- <template>
61
- <div class="grid gap-4">
62
- <sonic-fieldset>
63
- <sonic-legend label="Attributes" description="Short description via attributes"></sonic-legend>
64
- <sonic-input label="Field" name="attr"></sonic-input>
65
- </sonic-fieldset>
66
- <sonic-fieldset>
67
- <sonic-legend iconLibrary="iconoir" iconName="pin-alt">
68
- Custom title in the default slot
69
- <sonic-legend-description>Description via sonic-legend-description</sonic-legend-description>
70
- </sonic-legend>
71
- <sonic-input label="Field" name="slot"></sonic-input>
72
- </sonic-fieldset>
73
- </div>
74
- </template>
75
- </sonic-code>
76
-
77
- ## Shorthand legend
78
-
79
- When `label` is set on `sonic-fieldset`, it renders the `sonic-legend` itself and forwards `description` · `iconName` · `iconLibrary` · `iconPrefix`. Do not also slot a `sonic-legend`, or the group gets two titles.
80
-
81
- <sonic-code>
82
- <template>
83
- <sonic-fieldset
84
- label="Crew profile"
85
- description="Basic crew member fields"
86
- iconLibrary="iconoir"
87
- iconName="user"
88
- >
89
- <sonic-input label="Display name" name="display_name"></sonic-input>
90
- </sonic-fieldset>
91
- </template>
92
- </sonic-code>
93
-
94
- ## Legend actions
95
-
96
- `slot="suffix"` on `sonic-legend` aligns menus or icon buttons to the end of the title row.
97
-
98
- <sonic-code>
99
- <template>
100
- <sonic-fieldset>
101
- <sonic-legend label="Passenger details">
102
- <sonic-pop class="inline-block" slot="suffix">
103
- <sonic-button shape="circle" variant="ghost">
104
- <sonic-icon library="iconoir" size="lg" name="more-vert"></sonic-icon>
105
- </sonic-button>
106
- <sonic-menu slot="content" minWidth="12rem">
107
- <sonic-menu-item>Legal notice</sonic-menu-item>
108
- <sonic-menu-item>Terms of use</sonic-menu-item>
109
- </sonic-menu>
110
- </sonic-pop>
111
- </sonic-legend>
112
- <sonic-form-layout>
113
- <sonic-input autocomplete="family-name" label="Last name" name="last_name"></sonic-input>
114
- <sonic-input autocomplete="given-name" label="First name" name="first_name"></sonic-input>
115
- </sonic-form-layout>
116
- </sonic-fieldset>
117
- </template>
118
- </sonic-code>
119
-
120
- <sonic-alert status="warning" label="Disabled state and form association" text="Both attributes are set on the inner native fieldset only. Slotted Concorde fields are not disabled or re-associated by them: set disabled on each field instead."></sonic-alert>
121
-
122
- ## API reference
123
-
124
- ### `sonic-fieldset`
125
-
126
- | Attribute | Values | Description |
127
- |----------|---------|-------------|
128
- | `variant` | `default` · `ghost` · `shadow` (default `default`) | Border and shadow treatment |
129
- | `tight` | boolean | Removes horizontal padding, side borders and rounding |
130
- | `label` | string | Shorthand title; renders a `sonic-legend` when set |
131
- | `description` | string | Shorthand description (HTML) |
132
- | `iconName` | string | Shorthand legend icon `name` |
133
- | `iconLibrary` | string | Shorthand legend icon `library` |
134
- | `iconPrefix` | string | Shorthand legend icon `prefix` |
135
- | `disabled` | boolean | Sets `disabled` on the inner native `<fieldset>` |
136
- | `form` | string | Sets `form` on the inner native `<fieldset>` |
137
- | `dataProvider` | string | Publisher key; matching publisher fields (e.g. `label`) fill the properties |
138
-
139
- | Slot | Description |
140
- |------|-------------|
141
- | *(default)* | Optional `sonic-legend`, then the grouped fields |
142
-
143
- ### `sonic-legend`
144
-
145
- | Attribute | Values | Description |
146
- |----------|---------|-------------|
147
- | `label` | string | Title (HTML) |
148
- | `description` | string | Description (HTML), wrapped in `sonic-legend-description` |
149
- | `iconName` | string | Leading `sonic-icon` `name` |
150
- | `iconLibrary` | string | Icon `library` |
151
- | `iconPrefix` | string | Icon `prefix` |
152
- | `forceAutoFill` | boolean | Lets a `label` or `description` set as a property override the attribute value |
153
-
154
- | Slot | Description |
155
- |------|-------------|
156
- | *(default)* | Custom title and `sonic-legend-description` |
157
- | `suffix` | Trailing actions (menus, icon buttons) |
158
-
159
- ### `sonic-legend-description`
160
-
161
- No attributes. The default slot holds the muted line under the legend title.
@@ -1,98 +0,0 @@
1
- # Form actions
2
-
3
- **`sonic-form-actions`** lays out form footer controls (submit, cancel) in a wrapping flex row with a `0.3rem` gap. Place it inside `sonic-form-layout`, where it spans the full width, or at the end of any block. Use `justify` and `direction` to arrange the controls.
4
-
5
- ## Basic example
6
-
7
- With no attributes, actions align to the start of the row.
8
-
9
- <sonic-code>
10
- <template>
11
- <form>
12
- <sonic-form-layout>
13
- <sonic-input label="First name"></sonic-input>
14
- <sonic-input label="Last name"></sonic-input>
15
- <sonic-form-actions>
16
- <sonic-button type="success"><sonic-icon name="check" library="iconoir"></sonic-icon> Check in</sonic-button>
17
- <sonic-button type="danger" variant="ghost"><sonic-icon name="undo" library="iconoir"></sonic-icon> Cancel</sonic-button>
18
- </sonic-form-actions>
19
- </sonic-form-layout>
20
- </form>
21
- </template>
22
- </sonic-code>
23
-
24
- ## Justify
25
-
26
- `justify` is the CSS `justify-content` of the row (default `flex-start`). Use `flex-end` for dialog-style footers or `center` for toolbars.
27
-
28
- <sonic-code>
29
- <template>
30
- <form>
31
- <sonic-form-layout>
32
- <sonic-input label="First name"></sonic-input>
33
- <sonic-input label="Last name"></sonic-input>
34
- <sonic-form-actions justify="flex-end">
35
- <sonic-button type="success"><sonic-icon name="check" library="iconoir"></sonic-icon> Submit</sonic-button>
36
- <sonic-button type="danger" variant="ghost"><sonic-icon name="undo" library="iconoir"></sonic-icon> Cancel</sonic-button>
37
- </sonic-form-actions>
38
- </sonic-form-layout>
39
- </form>
40
- </template>
41
- </sonic-code>
42
-
43
- ## Direction
44
-
45
- `direction` is the CSS `flex-direction` (default `row`). `row-reverse` swaps the visual order but keeps the DOM and focus order.
46
-
47
- <sonic-code>
48
- <template>
49
- <form>
50
- <sonic-form-layout>
51
- <sonic-input label="First name"></sonic-input>
52
- <sonic-input label="Last name"></sonic-input>
53
- <sonic-form-actions direction="row-reverse">
54
- <sonic-button type="success"><sonic-icon name="check" library="iconoir"></sonic-icon> Submit</sonic-button>
55
- <sonic-button type="danger" variant="ghost"><sonic-icon name="undo" library="iconoir"></sonic-icon> Cancel</sonic-button>
56
- </sonic-form-actions>
57
- </sonic-form-layout>
58
- </form>
59
- </template>
60
- </sonic-code>
61
-
62
- ## Mixed controls
63
-
64
- Any content can be slotted, such as a vertical `sonic-divider`. The default `alignItems` (`center`) keeps items of different heights aligned.
65
-
66
- <sonic-code>
67
- <template>
68
- <form>
69
- <sonic-form-layout>
70
- <sonic-input label="First name"></sonic-input>
71
- <sonic-input label="Last name"></sonic-input>
72
- <sonic-form-actions justify="center">
73
- <sonic-button type="info" minWidth="12rem">
74
- <sonic-icon name="nav-arrow-left" library="iconoir" slot="prefix"></sonic-icon>
75
- Previous step
76
- </sonic-button>
77
- <sonic-divider vertical></sonic-divider>
78
- <sonic-button type="info" minWidth="12rem">
79
- <sonic-icon name="nav-arrow-right" library="iconoir" slot="suffix"></sonic-icon>
80
- Next step
81
- </sonic-button>
82
- </sonic-form-actions>
83
- </sonic-form-layout>
84
- </form>
85
- </template>
86
- </sonic-code>
87
-
88
- ## API reference
89
-
90
- | Attribute | Values | Description |
91
- |----------|---------|-------------|
92
- | `direction` | `row` (default) · `column` · `row-reverse` · `column-reverse` | CSS `flex-direction` of the row |
93
- | `justify` | CSS `justify-content` value (default `flex-start`) | Distribution along the main axis |
94
- | `alignItems` | CSS `align-items` value (default `center`) | Cross-axis alignment |
95
-
96
- | Slot | Description |
97
- |------|-------------|
98
- | *(default)* | Footer controls |