@supersoniks/concorde 5.1.0 → 5.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. package/.agents/skills/concorde-docs/SKILL.md +153 -0
  2. package/.agents/skills/{concorde-component-docs/template.md → concorde-docs/templates/component.md} +6 -2
  3. package/.agents/skills/concorde-docs/templates/decorator.md +43 -0
  4. package/.agents/skills/concorde-docs/templates/guide.md +25 -0
  5. package/.claude/launch.json +15 -0
  6. package/.claude/vite.http.config.mjs +7 -0
  7. package/.taste-skill/after/desktop-fold.jpg +0 -0
  8. package/.taste-skill/after/desktop-page-01.jpg +0 -0
  9. package/.taste-skill/after/desktop-page-02.jpg +0 -0
  10. package/.taste-skill/after/desktop-page-03.jpg +0 -0
  11. package/.taste-skill/after/mobile-fold.jpg +0 -0
  12. package/.taste-skill/after/mobile-page-01.jpg +0 -0
  13. package/.taste-skill/after/report.json +4103 -0
  14. package/.taste-skill/after/tablet-fold.jpg +0 -0
  15. package/.taste-skill/after/tablet-page-01.jpg +0 -0
  16. package/.taste-skill/after/tablet-page-02.jpg +0 -0
  17. package/.taste-skill/before/desktop-fold.jpg +0 -0
  18. package/.taste-skill/before/desktop-page-01.jpg +0 -0
  19. package/.taste-skill/before/desktop-page-02.jpg +0 -0
  20. package/.taste-skill/before/mobile-fold.jpg +0 -0
  21. package/.taste-skill/before/mobile-page-01.jpg +0 -0
  22. package/.taste-skill/before/report.json +2556 -0
  23. package/.taste-skill/before/tablet-fold.jpg +0 -0
  24. package/.taste-skill/before/tablet-page-01.jpg +0 -0
  25. package/.taste-skill/direction.json +510 -0
  26. package/.taste-skill/notes.md +84 -0
  27. package/.taste-skill/prod/desktop-fold.jpg +0 -0
  28. package/.taste-skill/prod/desktop-page-01.jpg +0 -0
  29. package/.taste-skill/prod/desktop-page-02.jpg +0 -0
  30. package/.taste-skill/prod/desktop-page-03.jpg +0 -0
  31. package/.taste-skill/prod/mobile-fold.jpg +0 -0
  32. package/.taste-skill/prod/mobile-page-01.jpg +0 -0
  33. package/.taste-skill/prod/mobile-page-02.jpg +0 -0
  34. package/.taste-skill/prod/report.json +1973 -0
  35. package/.taste-skill/prod/tablet-fold.jpg +0 -0
  36. package/.taste-skill/prod/tablet-page-01.jpg +0 -0
  37. package/.taste-skill/prod/tablet-page-02.jpg +0 -0
  38. package/.tmp-cem/custom-elements.json +2013 -2013
  39. package/AUDIT.md +228 -0
  40. package/PLAN-AMELIORATION.md +220 -0
  41. package/PLAN-DOCS-AGENTS.md +80 -0
  42. package/README.md +3 -3
  43. package/ai/skills/concorde/SKILL.md +1 -1
  44. package/ai/skills/concorde-get-set-dp/SKILL.md +3 -3
  45. package/ai/skills/concorde-theme/SKILL.md +1 -1
  46. package/build-infos.json +1 -1
  47. package/concorde-core.bundle.js +16 -16
  48. package/concorde-core.es.js +235 -233
  49. package/dist/concorde-core.bundle.js +16 -16
  50. package/dist/concorde-core.es.js +235 -233
  51. package/dist/img/archive/concorde-001-2cv.webp +0 -0
  52. package/dist/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  53. package/dist/img/archive/concorde-red-arrows-2002.webm +0 -0
  54. package/dist/img/archive/credits.json +28 -0
  55. package/docs/.htaccess +75 -0
  56. package/docs/404.html +15 -0
  57. package/docs/404.md +5 -0
  58. package/docs/assets/index-BgG6FFPt.js +11765 -0
  59. package/docs/assets/index-x89XINSG.css +1 -0
  60. package/docs/core/components/functional/date/date.html +211 -0
  61. package/docs/core/components/functional/date/date.md +150 -0
  62. package/docs/core/components/functional/fetch/fetch.html +180 -0
  63. package/docs/core/components/functional/fetch/fetch.md +108 -0
  64. package/docs/core/components/functional/if/if.html +65 -0
  65. package/docs/core/components/functional/if/if.md +34 -0
  66. package/docs/core/components/functional/jsonata/jsonata.html +110 -0
  67. package/docs/core/components/functional/jsonata/jsonata.md +61 -0
  68. package/docs/core/components/functional/list/list.html +198 -0
  69. package/docs/core/components/functional/list/list.md +121 -0
  70. package/docs/core/components/functional/mix/mix.html +78 -0
  71. package/docs/core/components/functional/mix/mix.md +46 -0
  72. package/docs/core/components/functional/queue/queue.html +155 -0
  73. package/docs/core/components/functional/queue/queue.md +51 -0
  74. package/docs/core/components/functional/router/router.html +154 -0
  75. package/docs/core/components/functional/router/router.md +93 -0
  76. package/docs/core/components/functional/sdui/sdui-extension-points.html +127 -0
  77. package/docs/core/components/functional/sdui/sdui-extension-points.md +94 -0
  78. package/docs/core/components/functional/sdui/sdui.html +397 -0
  79. package/docs/core/components/functional/sdui/sdui.md +307 -0
  80. package/docs/core/components/functional/states/states.html +141 -0
  81. package/docs/core/components/functional/states/states.md +112 -0
  82. package/docs/core/components/functional/submit/submit.html +178 -0
  83. package/docs/core/components/functional/submit/submit.md +106 -0
  84. package/docs/{crawl/core → core}/components/functional/subscriber/subscriber.html +6 -5
  85. package/docs/core/components/functional/subscriber/subscriber.md +91 -0
  86. package/docs/core/components/functional/translation/translation.html +60 -0
  87. package/docs/core/components/functional/translation/translation.md +38 -0
  88. package/docs/core/components/functional/value/value.html +81 -0
  89. package/docs/core/components/functional/value/value.md +47 -0
  90. package/docs/core/components/ui/alert/alert.html +201 -0
  91. package/docs/core/components/ui/alert/alert.md +186 -0
  92. package/docs/core/components/ui/alert-messages/alert-messages.html +132 -0
  93. package/docs/core/components/ui/alert-messages/alert-messages.md +85 -0
  94. package/docs/core/components/ui/badge/badge.html +197 -0
  95. package/docs/core/components/ui/badge/badge.md +181 -0
  96. package/docs/core/components/ui/button/button.html +309 -0
  97. package/docs/core/components/ui/button/button.md +216 -0
  98. package/docs/core/components/ui/captcha/captcha.html +80 -0
  99. package/docs/core/components/ui/captcha/captcha.md +56 -0
  100. package/docs/core/components/ui/card/card.html +254 -0
  101. package/docs/core/components/ui/card/card.md +215 -0
  102. package/docs/core/components/ui/divider/divider.html +144 -0
  103. package/docs/core/components/ui/divider/divider.md +126 -0
  104. package/docs/core/components/ui/form/checkbox/checkbox.html +200 -0
  105. package/docs/core/components/ui/form/checkbox/checkbox.md +125 -0
  106. package/docs/core/components/ui/form/fieldset/fieldset.html +238 -0
  107. package/docs/core/components/ui/form/fieldset/fieldset.md +161 -0
  108. package/docs/core/components/ui/form/form-actions/form-actions.html +122 -0
  109. package/docs/core/components/ui/form/form-actions/form-actions.md +98 -0
  110. package/docs/core/components/ui/form/form-layout/form-layout.html +115 -0
  111. package/docs/core/components/ui/form/form-layout/form-layout.md +109 -0
  112. package/docs/core/components/ui/form/input/input.html +235 -0
  113. package/docs/core/components/ui/form/input/input.md +142 -0
  114. package/docs/core/components/ui/form/radio/radio.html +144 -0
  115. package/docs/core/components/ui/form/radio/radio.md +78 -0
  116. package/docs/core/components/ui/form/select/select.html +178 -0
  117. package/docs/core/components/ui/form/select/select.md +86 -0
  118. package/docs/core/components/ui/form/switch/switch.html +146 -0
  119. package/docs/core/components/ui/form/switch/switch.md +80 -0
  120. package/docs/core/components/ui/form/textarea/textarea.html +162 -0
  121. package/docs/core/components/ui/form/textarea/textarea.md +82 -0
  122. package/docs/core/components/ui/group/group.html +113 -0
  123. package/docs/core/components/ui/group/group.md +77 -0
  124. package/docs/core/components/ui/icon/icon.html +223 -0
  125. package/docs/core/components/ui/icon/icon.md +214 -0
  126. package/docs/core/components/ui/image/image.html +194 -0
  127. package/docs/core/components/ui/image/image.md +167 -0
  128. package/docs/core/components/ui/link/link.html +101 -0
  129. package/docs/core/components/ui/link/link.md +81 -0
  130. package/docs/core/components/ui/loader/loader.html +114 -0
  131. package/docs/core/components/ui/loader/loader.md +87 -0
  132. package/docs/{crawl/core → core}/components/ui/menu/menu.html +189 -116
  133. package/docs/core/components/ui/menu/menu.md +370 -0
  134. package/docs/core/components/ui/modal/modal.html +324 -0
  135. package/docs/core/components/ui/modal/modal.md +211 -0
  136. package/docs/core/components/ui/pop/pop.html +250 -0
  137. package/docs/core/components/ui/pop/pop.md +216 -0
  138. package/docs/core/components/ui/progress/progress.html +132 -0
  139. package/docs/core/components/ui/progress/progress.md +109 -0
  140. package/docs/core/components/ui/table/table.html +333 -0
  141. package/docs/core/components/ui/table/table.md +267 -0
  142. package/docs/core/components/ui/theme/theme.html +116 -0
  143. package/docs/core/components/ui/theme/theme.md +97 -0
  144. package/docs/core/components/ui/toast/toast.html +185 -0
  145. package/docs/core/components/ui/toast/toast.md +147 -0
  146. package/docs/core/components/ui/tooltip/tooltip.html +112 -0
  147. package/docs/core/components/ui/tooltip/tooltip.md +89 -0
  148. package/docs/docs/decorators/ancestor-attribute.html +71 -0
  149. package/docs/docs/decorators/ancestor-attribute.md +59 -0
  150. package/docs/docs/decorators/auto-subscribe.html +61 -0
  151. package/docs/docs/decorators/auto-subscribe.md +40 -0
  152. package/docs/docs/decorators/bind.html +86 -0
  153. package/docs/docs/decorators/bind.md +77 -0
  154. package/docs/docs/decorators/get.html +166 -0
  155. package/docs/docs/decorators/get.md +160 -0
  156. package/docs/docs/decorators/handle.html +139 -0
  157. package/docs/docs/decorators/handle.md +119 -0
  158. package/docs/docs/decorators/on-assign.html +72 -0
  159. package/docs/docs/decorators/on-assign.md +63 -0
  160. package/docs/docs/decorators/patch.html +76 -0
  161. package/docs/docs/decorators/patch.md +44 -0
  162. package/docs/docs/decorators/post.html +150 -0
  163. package/docs/docs/decorators/post.md +134 -0
  164. package/docs/docs/decorators/publish.html +74 -0
  165. package/docs/docs/decorators/publish.md +56 -0
  166. package/docs/docs/decorators/put.html +83 -0
  167. package/docs/docs/decorators/put.md +51 -0
  168. package/docs/docs/decorators/subscribe.html +91 -0
  169. package/docs/docs/decorators/subscribe.md +87 -0
  170. package/docs/docs/decorators/wait-for-ancestors.html +82 -0
  171. package/docs/docs/decorators/wait-for-ancestors.md +76 -0
  172. package/docs/docs/directives/sub.html +79 -0
  173. package/docs/docs/directives/sub.md +75 -0
  174. package/docs/docs/directives/t.html +91 -0
  175. package/docs/docs/directives/t.md +73 -0
  176. package/docs/{crawl/docs/_getting-started → docs/getting-started}/ai-agents.html +12 -11
  177. package/{src/docs/_getting-started → docs/docs/getting-started}/ai-agents.md +3 -3
  178. package/docs/docs/getting-started/components.html +27 -0
  179. package/docs/docs/getting-started/components.md +5 -0
  180. package/docs/{crawl/docs/_getting-started → docs/getting-started}/create-a-component.html +11 -14
  181. package/docs/{src/docs/_getting-started → docs/getting-started}/create-a-component.md +3 -6
  182. package/docs/{crawl/docs/_core-concept → docs/getting-started}/dataFlow.html +26 -29
  183. package/docs/{src/docs/_core-concept → docs/getting-started}/dataFlow.md +17 -18
  184. package/docs/docs/getting-started/installation.html +69 -0
  185. package/docs/docs/getting-started/installation.md +36 -0
  186. package/docs/{crawl/docs/_getting-started → docs/getting-started}/my-first-component.html +13 -22
  187. package/docs/{src/docs/_getting-started → docs/getting-started}/my-first-component.md +5 -14
  188. package/docs/docs/getting-started/start.html +47 -0
  189. package/{src/docs/_getting-started → docs/docs/getting-started}/start.md +1 -13
  190. package/docs/docs/getting-started/theming.html +334 -0
  191. package/{src/docs/_getting-started → docs/docs/getting-started}/theming.md +2 -2
  192. package/docs/docs/index.html +99 -0
  193. package/docs/{crawl/docs/_misc → docs/misc}/api-configuration.html +18 -18
  194. package/docs/{src/docs/_misc → docs/misc}/api-configuration.md +10 -12
  195. package/docs/{crawl/docs/_misc → docs/misc}/dataProviderKey.html +12 -11
  196. package/{src/docs/_misc → docs/docs/misc}/dataProviderKey.md +4 -4
  197. package/docs/{crawl/docs/_misc → docs/misc}/docs-mock-api.html +25 -28
  198. package/docs/{src/docs/_misc → docs/misc}/docs-mock-api.md +12 -13
  199. package/docs/{crawl/docs/_misc → docs/misc}/dynamic-path.html +16 -15
  200. package/{src/docs/_misc → docs/docs/misc}/dynamic-path.md +8 -8
  201. package/docs/{crawl/docs/_misc → docs/misc}/endpoint.html +16 -15
  202. package/{src/docs/_misc → docs/docs/misc}/endpoint.md +8 -8
  203. package/docs/{crawl/docs/_misc → docs/misc}/html-integration.html +12 -15
  204. package/docs/{src/docs/_misc → docs/misc}/html-integration.md +4 -5
  205. package/docs/docs-mock-api-sw.js +60 -223
  206. package/docs/docs-mock-api-sw.js.map +4 -4
  207. package/docs/hubs/decorators.html +443 -0
  208. package/docs/hubs/form-components.html +404 -0
  209. package/docs/hubs/remote-data.html +371 -0
  210. package/docs/img/archive/concorde-001-2cv.webp +0 -0
  211. package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  212. package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
  213. package/docs/img/archive/credits.json +28 -0
  214. package/docs/img/concorde/plane_01.jpg +0 -0
  215. package/docs/img/concorde/plane_02.jpg +0 -0
  216. package/docs/img/concorde/plane_03.jpg +0 -0
  217. package/docs/img/concorde/plane_04.jpg +0 -0
  218. package/docs/img/concorde/plane_05.jpg +0 -0
  219. package/docs/img/concorde/plane_06.jpg +0 -0
  220. package/docs/img/concorde/plane_07.jpg +0 -0
  221. package/docs/img/concorde/plane_08.jpg +0 -0
  222. package/docs/img/concorde/plane_09.jpg +0 -0
  223. package/docs/img/concorde/plane_10.jpg +0 -0
  224. package/docs/img/concorde/plane_11.jpg +0 -0
  225. package/docs/img/concorde/plane_12.jpg +0 -0
  226. package/docs/img/concorde/plane_13.jpg +0 -0
  227. package/docs/index.html +96 -67
  228. package/docs/index.md +22 -0
  229. package/docs/llms-full.txt +3329 -3295
  230. package/docs/llms.txt +94 -92
  231. package/docs/robots.txt +11 -10
  232. package/docs/sitemap.xml +78 -78
  233. package/docs/src/core/components/functional/date/date.md +91 -231
  234. package/docs/src/core/components/functional/fetch/fetch.md +66 -83
  235. package/docs/src/core/components/functional/if/if.md +28 -3
  236. package/docs/src/core/components/functional/jsonata/jsonata.md +42 -37
  237. package/docs/src/core/components/functional/list/list.md +99 -43
  238. package/docs/src/core/components/functional/mix/mix.md +31 -26
  239. package/docs/src/core/components/functional/queue/queue.md +40 -61
  240. package/docs/src/core/components/functional/router/router.md +64 -65
  241. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
  242. package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
  243. package/docs/src/core/components/functional/sdui/example.json +19 -86
  244. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
  245. package/docs/src/core/components/functional/sdui/sdui.md +196 -245
  246. package/docs/src/core/components/functional/states/states.md +86 -61
  247. package/docs/src/core/components/functional/submit/submit.md +64 -72
  248. package/docs/src/core/components/functional/translation/translation.md +38 -0
  249. package/docs/src/core/components/functional/value/value.md +34 -22
  250. package/docs/src/core/components/ui/alert/alert.md +139 -74
  251. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  252. package/docs/src/core/components/ui/badge/badge.md +137 -83
  253. package/docs/src/core/components/ui/button/button.md +139 -105
  254. package/docs/src/core/components/ui/captcha/captcha.md +50 -6
  255. package/docs/src/core/components/ui/card/card.md +183 -65
  256. package/docs/src/core/components/ui/divider/divider.md +104 -13
  257. package/docs/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  258. package/docs/src/core/components/ui/form/fieldset/fieldset.md +135 -103
  259. package/docs/src/core/components/ui/form/form-actions/form-actions.md +71 -50
  260. package/docs/src/core/components/ui/form/form-layout/form-layout.md +99 -34
  261. package/docs/src/core/components/ui/form/input/input.md +95 -95
  262. package/docs/src/core/components/ui/form/radio/radio.md +55 -34
  263. package/docs/src/core/components/ui/form/select/select.md +60 -45
  264. package/docs/src/core/components/ui/form/switch/switch.md +57 -34
  265. package/docs/src/core/components/ui/form/textarea/textarea.md +55 -38
  266. package/docs/src/core/components/ui/group/group.md +49 -47
  267. package/docs/src/core/components/ui/icon/icon.md +132 -43
  268. package/docs/src/core/components/ui/image/image.md +132 -72
  269. package/docs/src/core/components/ui/link/link.md +46 -8
  270. package/docs/src/core/components/ui/loader/loader.md +55 -23
  271. package/docs/src/core/components/ui/menu/menu.md +155 -114
  272. package/docs/src/core/components/ui/modal/modal.md +154 -62
  273. package/docs/src/core/components/ui/pop/pop.md +185 -65
  274. package/docs/src/core/components/ui/progress/progress.md +76 -30
  275. package/docs/src/core/components/ui/table/table.md +146 -334
  276. package/docs/src/core/components/ui/theme/theme.md +97 -0
  277. package/docs/src/core/components/ui/toast/toast.md +80 -99
  278. package/docs/src/core/components/ui/tooltip/tooltip.md +52 -45
  279. package/docs/src/docs/decorators/ancestor-attribute.md +59 -0
  280. package/docs/src/docs/decorators/auto-subscribe.md +40 -0
  281. package/docs/src/docs/decorators/bind.md +77 -0
  282. package/docs/src/docs/decorators/get.md +160 -0
  283. package/docs/src/docs/decorators/handle.md +119 -0
  284. package/docs/src/docs/decorators/on-assign.md +63 -0
  285. package/docs/src/docs/decorators/patch.md +44 -0
  286. package/docs/src/docs/decorators/post.md +134 -0
  287. package/docs/src/docs/decorators/publish.md +56 -0
  288. package/docs/src/docs/decorators/put.md +51 -0
  289. package/docs/src/docs/decorators/subscribe.md +87 -0
  290. package/docs/src/docs/decorators/wait-for-ancestors.md +76 -0
  291. package/docs/src/docs/directives/sub.md +75 -0
  292. package/docs/src/docs/directives/t.md +73 -0
  293. package/docs/src/docs/{_getting-started → getting-started}/ai-agents.md +3 -3
  294. package/docs/src/docs/getting-started/components.md +5 -0
  295. package/{src/docs/_getting-started → docs/src/docs/getting-started}/create-a-component.md +3 -6
  296. package/{src/docs/_core-concept → docs/src/docs/getting-started}/dataFlow.md +17 -18
  297. package/docs/src/docs/getting-started/installation.md +36 -0
  298. package/{src/docs/_getting-started → docs/src/docs/getting-started}/my-first-component.md +5 -14
  299. package/docs/src/docs/getting-started/start.md +35 -0
  300. package/docs/src/docs/getting-started/theming.md +253 -0
  301. package/{src/docs/_misc → docs/src/docs/misc}/api-configuration.md +10 -12
  302. package/docs/src/docs/{_misc → misc}/dataProviderKey.md +4 -4
  303. package/{src/docs/_misc → docs/src/docs/misc}/docs-mock-api.md +12 -13
  304. package/docs/src/docs/{_misc → misc}/dynamic-path.md +8 -8
  305. package/docs/src/docs/{_misc → misc}/endpoint.md +8 -8
  306. package/{src/docs/_misc → docs/src/docs/misc}/html-integration.md +4 -5
  307. package/docs/src/docs/search/docs-search.json +3729 -2949
  308. package/docs/src/tsconfig.json +176 -5
  309. package/index.html +94 -67
  310. package/package.json +11 -4
  311. package/public/docs-mock-api-sw.js +58 -223
  312. package/public/docs-mock-api-sw.js.map +4 -4
  313. package/public/img/archive/concorde-001-2cv.webp +0 -0
  314. package/public/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  315. package/public/img/archive/concorde-red-arrows-2002.webm +0 -0
  316. package/public/img/archive/credits.json +28 -0
  317. package/public/img/concorde/plane_01.jpg +0 -0
  318. package/public/img/concorde/plane_02.jpg +0 -0
  319. package/public/img/concorde/plane_03.jpg +0 -0
  320. package/public/img/concorde/plane_04.jpg +0 -0
  321. package/public/img/concorde/plane_05.jpg +0 -0
  322. package/public/img/concorde/plane_06.jpg +0 -0
  323. package/public/img/concorde/plane_07.jpg +0 -0
  324. package/public/img/concorde/plane_08.jpg +0 -0
  325. package/public/img/concorde/plane_09.jpg +0 -0
  326. package/public/img/concorde/plane_10.jpg +0 -0
  327. package/public/img/concorde/plane_11.jpg +0 -0
  328. package/public/img/concorde/plane_12.jpg +0 -0
  329. package/public/img/concorde/plane_13.jpg +0 -0
  330. package/public/robots.txt +11 -10
  331. package/scripts/docs-markdown-vite-plugin.ts +37 -0
  332. package/scripts/docs-public-url.mjs +50 -0
  333. package/scripts/docs.htaccess +75 -0
  334. package/scripts/generate-crawl-docs.mjs +207 -116
  335. package/scripts/generate-crawl-docs.test.mjs +124 -0
  336. package/scripts/post-build-docs.js +34 -50
  337. package/scripts/post-build.mjs +0 -0
  338. package/src/core/components/functional/date/date.md +91 -231
  339. package/src/core/components/functional/fetch/fetch.md +66 -83
  340. package/src/core/components/functional/if/if.md +28 -3
  341. package/src/core/components/functional/if/if.ts +0 -0
  342. package/src/core/components/functional/jsonata/jsonata.md +42 -37
  343. package/src/core/components/functional/list/list.demo.ts +0 -0
  344. package/src/core/components/functional/list/list.md +99 -43
  345. package/src/core/components/functional/mix/mix.md +31 -26
  346. package/src/core/components/functional/queue/queue.demo.ts +10 -7
  347. package/src/core/components/functional/queue/queue.md +40 -61
  348. package/src/core/components/functional/router/router.demo.ts +16 -16
  349. package/src/core/components/functional/router/router.md +64 -65
  350. package/src/core/components/functional/router/router.ts +0 -0
  351. package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
  352. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  353. package/src/core/components/functional/sdui/component-catalog.json +1 -1
  354. package/src/core/components/functional/sdui/example.json +19 -86
  355. package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  356. package/src/core/components/functional/sdui/sdui.md +187 -358
  357. package/src/core/components/functional/sdui/types.ts +0 -0
  358. package/src/core/components/functional/states/states.demo.ts +21 -22
  359. package/src/core/components/functional/states/states.md +86 -61
  360. package/src/core/components/functional/states/states.ts +1 -1
  361. package/src/core/components/functional/submit/submit.md +64 -72
  362. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  363. package/src/core/components/functional/translation/translation.md +38 -0
  364. package/src/core/components/functional/value/value.md +34 -22
  365. package/src/core/components/functional/value/value.ts +0 -0
  366. package/src/core/components/ui/_css/size.ts +0 -0
  367. package/src/core/components/ui/alert/alert.md +48 -58
  368. package/src/core/components/ui/badge/badge.md +27 -34
  369. package/src/core/components/ui/button/button.md +139 -106
  370. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  371. package/src/core/components/ui/captcha/captcha.md +17 -32
  372. package/src/core/components/ui/card/card.md +6 -6
  373. package/src/core/components/ui/divider/divider.md +8 -11
  374. package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  375. package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
  376. package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
  377. package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
  378. package/src/core/components/ui/form/input/input.md +95 -95
  379. package/src/core/components/ui/form/radio/radio.md +55 -34
  380. package/src/core/components/ui/form/select/select.md +60 -45
  381. package/src/core/components/ui/form/switch/switch.md +57 -34
  382. package/src/core/components/ui/form/textarea/textarea.md +55 -38
  383. package/src/core/components/ui/group/group.md +35 -33
  384. package/src/core/components/ui/icon/icon.md +4 -4
  385. package/src/core/components/ui/image/image.md +41 -107
  386. package/src/core/components/ui/link/link.md +6 -6
  387. package/src/core/components/ui/loader/loader.md +30 -55
  388. package/src/core/components/ui/menu/menu.md +27 -27
  389. package/src/core/components/ui/modal/modal.md +72 -96
  390. package/src/core/components/ui/modal/modal.ts +14 -11
  391. package/src/core/components/ui/pop/pop.md +80 -158
  392. package/src/core/components/ui/progress/progress.md +2 -2
  393. package/src/core/components/ui/table/table.md +91 -255
  394. package/src/core/components/ui/theme/theme.md +11 -36
  395. package/src/core/components/ui/toast/toast.md +48 -117
  396. package/src/core/components/ui/tooltip/tooltip.md +27 -62
  397. package/src/core/mixins/Subscriber.ts +0 -0
  398. package/src/core/utils/DataBindObserver.ts +0 -0
  399. package/src/core/utils/LocationHandler.spec.ts +80 -0
  400. package/src/core/utils/LocationHandler.ts +5 -9
  401. package/src/core/utils/Objects.ts +0 -0
  402. package/src/core/utils/route.ts +0 -0
  403. package/src/docs/code.ts +88 -75
  404. package/src/docs/components/docs-demo-sources.ts +70 -147
  405. package/src/docs/components/docs-lit-demo.ts +20 -40
  406. package/src/docs/components/docs-source-link.ts +0 -82
  407. package/src/docs/decorators/ancestor-attribute.md +59 -0
  408. package/src/docs/decorators/auto-subscribe.md +40 -0
  409. package/src/docs/decorators/bind.md +77 -0
  410. package/src/docs/decorators/get.md +160 -0
  411. package/src/docs/decorators/handle.md +119 -0
  412. package/src/docs/decorators/on-assign.md +63 -0
  413. package/src/docs/decorators/patch.md +44 -0
  414. package/src/docs/decorators/post.md +134 -0
  415. package/src/docs/decorators/publish.md +56 -0
  416. package/src/docs/decorators/put.md +51 -0
  417. package/src/docs/decorators/subscribe.md +87 -0
  418. package/src/docs/decorators/wait-for-ancestors.md +76 -0
  419. package/src/docs/directives/sub.md +75 -0
  420. package/src/docs/directives/t.md +73 -0
  421. package/src/docs/docs-location.spec.ts +46 -0
  422. package/src/docs/docs-location.ts +123 -32
  423. package/src/docs/docs.ts +6 -2
  424. package/src/docs/example/decorators-demo-bind-demos.ts +81 -116
  425. package/src/docs/example/decorators-demo-geo.ts +30 -19
  426. package/src/docs/example/decorators-demo-post.ts +88 -186
  427. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
  428. package/src/docs/example/decorators-demo.ts +85 -98
  429. package/src/docs/example/docs-api-config-demos.ts +19 -20
  430. package/src/docs/example/docs-boarding-pass-demo.ts +134 -0
  431. package/src/docs/example/docs-flight-demos.ts +147 -0
  432. package/src/docs/example/docs-jsonata-demos.ts +52 -52
  433. package/src/docs/example/docs-list-demos.ts +43 -123
  434. package/src/docs/example/docs-provider-keys.ts +33 -28
  435. package/src/docs/example/docs-queue-demos.ts +37 -77
  436. package/src/docs/example/docs-router-demos.ts +20 -25
  437. package/src/docs/example/docs-submit-demos.ts +48 -48
  438. package/src/docs/example/docs-toggle-demos.ts +4 -3
  439. package/src/docs/example/users.ts +0 -0
  440. package/src/docs/getting-started/ai-agents.md +76 -0
  441. package/src/docs/getting-started/components.md +5 -0
  442. package/src/docs/getting-started/create-a-component.md +136 -0
  443. package/src/docs/getting-started/dataFlow.md +87 -0
  444. package/src/docs/getting-started/installation.md +36 -0
  445. package/src/docs/getting-started/my-first-component.md +227 -0
  446. package/src/docs/getting-started/start.md +35 -0
  447. package/src/docs/getting-started/theming.md +253 -0
  448. package/src/docs/header/header.ts +240 -71
  449. package/src/docs/home/catalog.ts +44 -0
  450. package/src/docs/home/home.ts +520 -0
  451. package/src/docs/home/mach-stage.ts +389 -0
  452. package/src/docs/layout.ts +12 -11
  453. package/src/docs/misc/api-configuration.md +79 -0
  454. package/src/docs/misc/dataProviderKey.md +168 -0
  455. package/src/docs/misc/docs-mock-api.md +62 -0
  456. package/src/docs/misc/dynamic-path.md +71 -0
  457. package/src/docs/misc/endpoint.md +45 -0
  458. package/src/docs/misc/html-integration.md +14 -0
  459. package/src/docs/mock-api/api-config-mock.ts +5 -0
  460. package/src/docs/mock-api/fixtures.ts +0 -278
  461. package/src/docs/mock-api/flights.ts +89 -0
  462. package/src/docs/mock-api/router.ts +3 -4
  463. package/src/docs/mock-api/urls.ts +1 -2
  464. package/src/docs/navigation/components-index.ts +56 -0
  465. package/src/docs/navigation/navigation.ts +219 -232
  466. package/src/docs/navigation/pager.ts +67 -0
  467. package/src/docs/navigation/toc.ts +101 -0
  468. package/src/docs/search/docs-search.json +2419 -4374
  469. package/src/docs/search/markdown-renderer.ts +33 -7
  470. package/src/docs/search/page.ts +9 -6
  471. package/src/docs/search/search.ts +154 -122
  472. package/src/docs/shiki/index.ts +109 -0
  473. package/src/docs/tailwind/css/base/scrollbar.css +22 -0
  474. package/src/docs/tailwind/css/base/theme.css +96 -0
  475. package/src/docs/tailwind/css/base/typography.css +4 -0
  476. package/src/docs/tailwind/css/docs/boarding-pass.css +65 -0
  477. package/src/docs/tailwind/css/docs/content.css +32 -0
  478. package/src/docs/tailwind/css/docs/page.css +10 -0
  479. package/src/docs/tailwind/css/docs.css +9 -0
  480. package/src/docs/tailwind/css/home/hero.css +210 -0
  481. package/src/docs/tailwind/css/home/motion.css +84 -0
  482. package/src/docs/tailwind/css/home/sections.css +416 -0
  483. package/src/docs/tailwind/css/tailwind.css +7 -185
  484. package/src/tsconfig.json +23 -2
  485. package/src/tsconfig.tsbuildinfo +1 -1
  486. package/tailwind.config.js +8 -4
  487. package/vite.config.mts +11 -2
  488. package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
  489. package/.github/workflows/ci.yml +0 -21
  490. package/.github-export-ignore +0 -30
  491. package/CONTRIBUTING.md +0 -59
  492. package/DEV.md +0 -54
  493. package/LICENSE +0 -21
  494. package/OPEN_SOURCE_CHECKPOINT.md +0 -133
  495. package/concorde-3d.bundle.js +0 -3960
  496. package/concorde-3d.es.js +0 -33433
  497. package/concorde-hugging-face-infer.bundle.js +0 -32
  498. package/concorde-hugging-face-infer.es.js +0 -2952
  499. package/concorde-interactive.bundle.js +0 -1157
  500. package/concorde-interactive.es.js +0 -10734
  501. package/concorde-shader.bundle.js +0 -116
  502. package/concorde-shader.es.js +0 -8353
  503. package/concorde-webgpu.bundle.js +0 -307
  504. package/concorde-webgpu.es.js +0 -8627
  505. package/docs/assets/index-D8MVWqY6.js +0 -12251
  506. package/docs/assets/index-DiD0qYvE.css +0 -1
  507. package/docs/crawl/core/components/functional/date/date.html +0 -190
  508. package/docs/crawl/core/components/functional/fetch/fetch.html +0 -109
  509. package/docs/crawl/core/components/functional/if/if.html +0 -27
  510. package/docs/crawl/core/components/functional/jsonata/jsonata.html +0 -79
  511. package/docs/crawl/core/components/functional/list/list.html +0 -70
  512. package/docs/crawl/core/components/functional/mix/mix.html +0 -45
  513. package/docs/crawl/core/components/functional/queue/queue.html +0 -96
  514. package/docs/crawl/core/components/functional/router/router.html +0 -106
  515. package/docs/crawl/core/components/functional/sdui/sdui.html +0 -269
  516. package/docs/crawl/core/components/functional/states/states.html +0 -66
  517. package/docs/crawl/core/components/functional/submit/submit.html +0 -160
  518. package/docs/crawl/core/components/functional/value/value.html +0 -51
  519. package/docs/crawl/core/components/ui/alert/alert.html +0 -110
  520. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +0 -23
  521. package/docs/crawl/core/components/ui/badge/badge.html +0 -119
  522. package/docs/crawl/core/components/ui/button/button.html +0 -149
  523. package/docs/crawl/core/components/ui/captcha/captcha.html +0 -30
  524. package/docs/crawl/core/components/ui/card/card.html +0 -99
  525. package/docs/crawl/core/components/ui/divider/divider.html +0 -58
  526. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +0 -73
  527. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +0 -135
  528. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +0 -79
  529. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +0 -62
  530. package/docs/crawl/core/components/ui/form/input/input.html +0 -109
  531. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +0 -38
  532. package/docs/crawl/core/components/ui/form/radio/radio.html +0 -56
  533. package/docs/crawl/core/components/ui/form/select/select.html +0 -73
  534. package/docs/crawl/core/components/ui/form/switch/switch.html +0 -56
  535. package/docs/crawl/core/components/ui/form/textarea/textarea.html +0 -59
  536. package/docs/crawl/core/components/ui/group/group.html +0 -82
  537. package/docs/crawl/core/components/ui/icon/icon.html +0 -133
  538. package/docs/crawl/core/components/ui/image/image.html +0 -110
  539. package/docs/crawl/core/components/ui/link/link.html +0 -42
  540. package/docs/crawl/core/components/ui/loader/loader.html +0 -50
  541. package/docs/crawl/core/components/ui/modal/modal.html +0 -117
  542. package/docs/crawl/core/components/ui/pop/pop.html +0 -102
  543. package/docs/crawl/core/components/ui/progress/progress.html +0 -58
  544. package/docs/crawl/core/components/ui/table/table.html +0 -413
  545. package/docs/crawl/core/components/ui/toast/toast.html +0 -122
  546. package/docs/crawl/core/components/ui/tooltip/tooltip.html +0 -79
  547. package/docs/crawl/docs/_core-concept/overview.html +0 -66
  548. package/docs/crawl/docs/_core-concept/subscriber.html +0 -75
  549. package/docs/crawl/docs/_decorators/ancestor-attribute.html +0 -116
  550. package/docs/crawl/docs/_decorators/auto-subscribe.html +0 -202
  551. package/docs/crawl/docs/_decorators/bind.html +0 -141
  552. package/docs/crawl/docs/_decorators/get.html +0 -149
  553. package/docs/crawl/docs/_decorators/handle.html +0 -165
  554. package/docs/crawl/docs/_decorators/on-assign.html +0 -355
  555. package/docs/crawl/docs/_decorators/patch.html +0 -78
  556. package/docs/crawl/docs/_decorators/post.html +0 -139
  557. package/docs/crawl/docs/_decorators/publish.html +0 -61
  558. package/docs/crawl/docs/_decorators/put.html +0 -78
  559. package/docs/crawl/docs/_decorators/subscribe.html +0 -109
  560. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +0 -137
  561. package/docs/crawl/docs/_directives/sub.html +0 -93
  562. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +0 -100
  563. package/docs/crawl/docs/_getting-started/concorde-outside.html +0 -58
  564. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +0 -110
  565. package/docs/crawl/docs/_getting-started/pubsub.html +0 -62
  566. package/docs/crawl/docs/_getting-started/start.html +0 -76
  567. package/docs/crawl/docs/_getting-started/theming.html +0 -85
  568. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +0 -138
  569. package/docs/crawl/hubs/decorators.html +0 -547
  570. package/docs/crawl/hubs/form-components.html +0 -359
  571. package/docs/crawl/hubs/remote-data.html +0 -452
  572. package/docs/crawl/index.html +0 -101
  573. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
  574. package/docs/src/docs/_core-concept/overview.md +0 -57
  575. package/docs/src/docs/_core-concept/subscriber.md +0 -75
  576. package/docs/src/docs/_decorators/ancestor-attribute.md +0 -127
  577. package/docs/src/docs/_decorators/auto-subscribe.md +0 -202
  578. package/docs/src/docs/_decorators/bind.md +0 -167
  579. package/docs/src/docs/_decorators/get.md +0 -162
  580. package/docs/src/docs/_decorators/handle.md +0 -175
  581. package/docs/src/docs/_decorators/on-assign.md +0 -390
  582. package/docs/src/docs/_decorators/patch.md +0 -70
  583. package/docs/src/docs/_decorators/post.md +0 -146
  584. package/docs/src/docs/_decorators/publish.md +0 -55
  585. package/docs/src/docs/_decorators/put.md +0 -70
  586. package/docs/src/docs/_decorators/subscribe.md +0 -100
  587. package/docs/src/docs/_decorators/wait-for-ancestors.md +0 -163
  588. package/docs/src/docs/_directives/sub.md +0 -91
  589. package/docs/src/docs/_getting-started/concorde-manual-install.md +0 -133
  590. package/docs/src/docs/_getting-started/concorde-outside.md +0 -33
  591. package/docs/src/docs/_getting-started/my-first-subscriber.md +0 -120
  592. package/docs/src/docs/_getting-started/pubsub.md +0 -37
  593. package/docs/src/docs/_getting-started/start.md +0 -47
  594. package/docs/src/docs/_getting-started/theming.md +0 -91
  595. package/docs/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  596. package/docs/src/tsconfig.declarations.json +0 -22
  597. package/docs/src/tsconfig.emit.json +0 -23
  598. package/gitlab/job_github_mirror.sh +0 -39
  599. package/scripts/github-export.mjs +0 -150
  600. package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
  601. package/src/css.d.ts +0 -19
  602. package/src/docs/_core-concept/overview.md +0 -57
  603. package/src/docs/_core-concept/subscriber.md +0 -75
  604. package/src/docs/_decorators/ancestor-attribute.md +0 -128
  605. package/src/docs/_decorators/auto-subscribe.md +0 -202
  606. package/src/docs/_decorators/bind.md +0 -167
  607. package/src/docs/_decorators/get.md +0 -162
  608. package/src/docs/_decorators/handle.md +0 -175
  609. package/src/docs/_decorators/on-assign.md +0 -390
  610. package/src/docs/_decorators/patch.md +0 -70
  611. package/src/docs/_decorators/post.md +0 -146
  612. package/src/docs/_decorators/publish.md +0 -55
  613. package/src/docs/_decorators/put.md +0 -70
  614. package/src/docs/_decorators/subscribe.md +0 -100
  615. package/src/docs/_decorators/wait-for-ancestors.md +0 -163
  616. package/src/docs/_directives/sub.md +0 -91
  617. package/src/docs/_getting-started/concorde-manual-install.md +0 -133
  618. package/src/docs/_getting-started/concorde-outside.md +0 -33
  619. package/src/docs/_getting-started/my-first-subscriber.md +0 -120
  620. package/src/docs/_getting-started/pubsub.md +0 -37
  621. package/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  622. package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
  623. package/src/docs/example/docs-joke-demos.ts +0 -297
  624. package/src/docs/prism/index.ts +0 -6
  625. package/src/docs/prism/prism.css +0 -158
  626. package/src/docs/prism/prism.js +0 -1022
  627. package/src/tsconfig.declarations.json +0 -22
  628. package/src/tsconfig.emit.json +0 -23
@@ -1,129 +1,161 @@
1
1
  # Fieldset
2
2
 
3
- ## Variant
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
+
4
7
  <sonic-code>
5
8
  <template>
6
- <sonic-fieldset variant="default" >
7
- Default
8
- </sonic-fieldset>
9
- <sonic-fieldset variant="ghost" >
10
- Ghost
11
- </sonic-fieldset>
12
- <sonic-fieldset variant="shadow" >
13
- Shadow
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>
14
15
  </sonic-fieldset>
15
16
  </template>
16
17
  </sonic-code>
17
18
 
18
- ## Legend
19
+ ## Variant
20
+
21
+ With no `variant`, the fieldset is `default` (bordered). `ghost` and `shadow` hide the border; `shadow` adds `--sc-shadow-lg`.
22
+
19
23
  <sonic-code>
20
24
  <template>
21
- <sonic-fieldset>
22
- <sonic-legend label="Legend via attribut : label" description="Description via attribut : description">
23
- </sonic-legend>
24
- </sonic-fieldset>
25
- <sonic-fieldset>
26
- <sonic-legend iconLibrary="iconoir" iconName="pin-alt">
27
- Custom legend via <b>slot</b>
28
- <sonic-legend-description>
29
- Description via composant : sonic-legend-description
30
- </sonic-legend-description>
31
- </sonic-legend>
32
- </sonic-fieldset>
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>
33
39
  </template>
34
40
  </sonic-code>
35
41
 
42
+ ## Tight
43
+
44
+ `tight` removes horizontal padding, side borders and rounding, for a flat strip inside a parent.
36
45
 
37
- ## Short hand
38
46
  <sonic-code>
39
47
  <template>
40
- <sonic-fieldset
41
- label="All props on fieldset tag"
42
- description="Lorem ipsum dolor sit amet, consectetur adipiscing elit"
43
- iconLibrary="iconoir"
44
- iconName="user">
45
- </sonic-fieldset>
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>
46
52
  </template>
47
53
  </sonic-code>
48
54
 
49
- ## Example of use
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
+
50
59
  <sonic-code>
51
60
  <template>
52
- <sonic-div formDataProvider="user_create">
53
- <form action="/inscription?lang=fr" method="POST" class="mb-20" accept-charset="UTF-8" id="youpla">
54
- <sonic-fieldset form="formid" collapsible="true" collapsed="false">
55
- <sonic-legend iconLibrary="iconoir" iconName="user">
56
- Informations personnelles
57
- <span slot="description">Description du fieldset lorem ipsum dolor</span>
58
- <sonic-pop class="inline-block" slot="suffix">
59
- <sonic-button shape="circle" variant="ghost">
60
- <sonic-icon library="iconoir" size="lg" name="more-vert"></sonic-icon
61
- ></sonic-button>
62
- <sonic-menu slot="content" minWidth="12rem">
63
- <sonic-menu-item>Mentions légales</sonic-menu-item>
64
- <sonic-menu-item>Conditions générales d'utilisation</sonic-menu-item>
65
- </sonic-menu>
66
- </sonic-pop>
67
- </sonic-legend>
68
- <sonic-form-layout>
69
- <sonic-input autocomplete="family-name" label="Nom" name="nom"></sonic-input>
70
- <sonic-input autocomplete="given-name" label="Prénom" name="prenom"></sonic-input>
71
- <sonic-select autocomplete="sex" label="Sexe" name="sexe">
72
- <option value="" selected="selected">- Sélectionner -</option>
73
- <option value="-">Je préfère ne pas le dire</option>
74
- <option value="Homme">Homme</option>
75
- <option value="Femme">Femme</option>
76
- </sonic-select>
77
- <sonic-input autocomplete="bday" label="Date de naissance" name="date_naissance" type="date"></sonic-input>
78
- <sonic-divider></sonic-divider>
79
- <sonic-input autocomplete="email" label="e-mail" name="email" type="email"></sonic-input>
80
- <sonic-input
81
- autocomplete="email"
82
- label="Confirmer votre e-mail"
83
- name="email_confirmation"
84
- type="email"
85
- ></sonic-input>
86
- <sonic-input autocomplete="new-password" label="Mot de passe" name="password" type="password"></sonic-input>
87
- <sonic-input
88
- autocomplete="new-password"
89
- label="Confirmer votre mot de passe"
90
- name="password_confirmation"
91
- type="password"
92
- ></sonic-input>
93
- </sonic-form-layout>
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>
94
65
  </sonic-fieldset>
95
- <sonic-fieldset form="formid" collapsible="true" collapsed="false">
96
- <sonic-legend iconLibrary="iconoir" iconName="pin-alt"> Coordonnées </sonic-legend>
97
- <sonic-form-layout>
98
- <sonic-input autocomplete="postal-code" label="Code postal" name="cp"></sonic-input>
99
- <sonic-input autocomplete="address-level2" label="Ville" name="ville"></sonic-input>
100
- </sonic-form-layout>
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>
101
72
  </sonic-fieldset>
102
- <div class="">
103
- <sonic-button submit type="primary">
104
- <sonic-icon library="iconoir" name="check"></sonic-icon>
105
- S'inscrire
106
- </sonic-button>
107
- <sonic-tooltip class="inline-flex" label="Vous êtes sûr(e) ? 🙄">
108
- <sonic-button size="sm" variant="ghost"> Continuer sans m'inscrire </sonic-button>
109
- </sonic-tooltip>
110
- </div>
111
- </form>
112
- <div dataProvider="user_create" class="my-6 text-neutral-600 p-5 rounded-xl shadow-lg">
113
- <div class="font-bold text-lg text-neutral-400">Submitted informations...</div>
114
- <div class="text-lg my-2">
115
- <sonic-value key="nom" class="font-bold"></sonic-value>
116
- <sonic-value key="prenom"></sonic-value>
117
- </div>
118
- <div class="text-sm">
119
- <sonic-value key="sexe"></sonic-value>
120
- <sonic-value key="date_naissance"></sonic-value>
121
- </div>
122
- <div class="text-sm">
123
- <sonic-value key="email"></sonic-value>
124
- <sonic-value key="cp"></sonic-value>
125
- <sonic-value key="ville"></sonic-value></div>
126
73
  </div>
127
- </sonic-div>
128
74
  </template>
129
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,77 +1,98 @@
1
- # Form-actions
1
+ # Form actions
2
2
 
3
- ## Left by default
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.
4
8
 
5
9
  <sonic-code>
6
10
  <template>
7
- <form>
8
- <sonic-form-layout>
9
- <sonic-input label="First name"></sonic-input>
10
- <sonic-input label="Last name"></sonic-input>
11
- <sonic-form-actions>
12
- <sonic-button type="success"><sonic-icon name="check" library="iconoir"></sonic-icon> Submit</sonic-button>
13
- <sonic-button type="danger" variant="ghost"><sonic-icon name="undo" library="iconoir"></sonic-icon> Cancel</sonic-button>
14
- </sonic-form-actions>
15
- </sonic-form-layout>
16
- </form >
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>
17
21
  </template>
18
22
  </sonic-code>
19
23
 
20
24
  ## Justify
21
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
+
22
28
  <sonic-code>
23
29
  <template>
24
- <form>
25
- <sonic-form-layout>
26
- <sonic-input label="First name"></sonic-input>
27
- <sonic-input label="Last name"></sonic-input>
28
- <sonic-form-actions justify="flex-end">
29
- <sonic-button type="success"><sonic-icon name="check" library="iconoir"></sonic-icon> Submit</sonic-button>
30
- <sonic-button type="danger" variant="ghost"><sonic-icon name="undo" library="iconoir"></sonic-icon> Cancel</sonic-button>
31
- </sonic-form-actions>
32
- </sonic-form-layout>
33
- </form >
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>
34
40
  </template>
35
41
  </sonic-code>
36
42
 
37
43
  ## Direction
38
44
 
45
+ `direction` is the CSS `flex-direction` (default `row`). `row-reverse` swaps the visual order but keeps the DOM and focus order.
46
+
39
47
  <sonic-code>
40
48
  <template>
41
- <form>
42
- <sonic-form-layout>
43
- <sonic-input label="First name"></sonic-input>
44
- <sonic-input label="Last name"></sonic-input>
45
- <sonic-form-actions direction="row-reverse">
46
- <sonic-button type="success"><sonic-icon name="check" library="iconoir"></sonic-icon> Submit</sonic-button>
47
- <sonic-button type="danger" variant="ghost"><sonic-icon name="undo" library="iconoir"></sonic-icon> Cancel</sonic-button>
48
- </sonic-form-actions>
49
- </sonic-form-layout>
50
- </form >
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>
51
59
  </template>
52
60
  </sonic-code>
53
61
 
54
- ## Center
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.
55
65
 
56
66
  <sonic-code>
57
67
  <template>
58
- <form>
59
- <sonic-form-layout>
60
- <sonic-input label="First name"></sonic-input>
61
- <sonic-input label="Last name"></sonic-input>
62
- <sonic-form-actions justify="center" >
63
- <sonic-button type="info" minWidth="12rem">
64
- <sonic-icon name="nav-arrow-left" library="iconoir" slot="prefix"></sonic-icon>
65
- Left seats
66
- </sonic-button>
67
- <sonic-divider vertical></sonic-divider>
68
- <sonic-button type="info" minWidth="12rem">
69
- <sonic-icon name="nav-arrow-right" library="iconoir" slot="suffix"></sonic-icon>
70
- Right seats
71
- </sonic-button>
72
- </sonic-form-actions>
73
- </sonic-form-layout>
74
- </form >
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>
75
85
  </template>
76
86
  </sonic-code>
77
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 |
@@ -1,44 +1,109 @@
1
- # Form-layout
1
+ # Form layout
2
+
3
+ **`sonic-form-layout`** arranges slotted form controls in a responsive grid. Short fields (`sonic-input` · `sonic-select`) sit two per row when the host is wider than `440px`; every other child spans the full width. It has no attributes: wrap the body of a `form` or `sonic-fieldset` with it.
4
+
5
+ ## Basic example
6
+
7
+ <sonic-code>
8
+ <template>
9
+ <form>
10
+ <sonic-form-layout>
11
+ <sonic-input autocomplete="family-name" label="Last name" name="last_name"></sonic-input>
12
+ <sonic-input autocomplete="given-name" label="First name" name="first_name"></sonic-input>
13
+ <sonic-select autocomplete="sex" label="Gender" name="gender">
14
+ <option value="" selected="selected">— Select —</option>
15
+ <option value="prefer-not">Prefer not to say</option>
16
+ <option value="male">Male</option>
17
+ <option value="female">Female</option>
18
+ </sonic-select>
19
+ <sonic-input autocomplete="bday" label="Date of birth" name="birth_date" type="date"></sonic-input>
20
+ <sonic-divider></sonic-divider>
21
+ <sonic-input autocomplete="email" label="Email" name="email" type="email"></sonic-input>
22
+ <sonic-input
23
+ autocomplete="email"
24
+ label="Confirm email"
25
+ name="email_confirmation"
26
+ type="email"
27
+ ></sonic-input>
28
+ <sonic-input autocomplete="new-password" label="Password" name="password" type="password"></sonic-input>
29
+ <sonic-input
30
+ autocomplete="new-password"
31
+ label="Confirm password"
32
+ name="password_confirmation"
33
+ type="password"
34
+ ></sonic-input>
35
+ <sonic-divider></sonic-divider>
36
+ <sonic-textarea label="Special assistance" rows="5"></sonic-textarea>
37
+ <sonic-switch>Add priority boarding</sonic-switch>
38
+ <sonic-checkbox>Subscribe to newsletter</sonic-checkbox>
39
+ <sonic-checkbox>
40
+ I accept the
41
+ <sonic-link href="#" class="underline">terms and conditions</sonic-link>
42
+ </sonic-checkbox>
43
+ <sonic-form-actions>
44
+ <sonic-button type="success">Confirm passenger</sonic-button>
45
+ </sonic-form-actions>
46
+ </sonic-form-layout>
47
+ </form>
48
+ </template>
49
+ </sonic-code>
50
+
51
+ ## Responsive columns
52
+
53
+ The column count depends on the host width, not the viewport: two columns above `440px`, one below. When the layout holds exactly one short field, it stays single-column so the field does not sit in half an empty row.
54
+
55
+ <sonic-code>
56
+ <template>
57
+ <div class="grid gap-8">
58
+ <sonic-form-layout style="max-width: 20rem">
59
+ <sonic-divider align="left">Narrow host</sonic-divider>
60
+ <sonic-input label="Email" name="email_narrow" type="email"></sonic-input>
61
+ <sonic-input label="Confirm email" name="email_confirm_narrow" type="email"></sonic-input>
62
+ </sonic-form-layout>
63
+ <sonic-form-layout>
64
+ <sonic-divider align="left">Wide host</sonic-divider>
65
+ <sonic-input label="Email" name="email_wide" type="email"></sonic-input>
66
+ <sonic-input label="Confirm email" name="email_confirm_wide" type="email"></sonic-input>
67
+ </sonic-form-layout>
68
+ </div>
69
+ </template>
70
+ </sonic-code>
71
+
72
+ ## Full-width children
73
+
74
+ Any child that is not a short field spans the full row: `sonic-textarea` · `sonic-checkbox` · `sonic-switch` · `sonic-divider` · `sonic-form-actions` and plain elements. Slotted dividers lose their vertical margin to match the grid gap, and `sonic-submit` uses `display: contents` so its button joins the grid directly.
2
75
 
3
76
  <sonic-code>
4
77
  <template>
5
- <form>
6
78
  <sonic-form-layout>
7
- <sonic-input autocomplete="family-name" label="Nom" name="nom"></sonic-input>
8
- <sonic-input autocomplete="given-name" label="Prénom" name="prenom"></sonic-input>
9
- <sonic-select autocomplete="sex" label="Sexe" name="sexe">
10
- <option value="" selected="selected">- Sélectionner -</option>
11
- <option value="-">Je préfère ne pas le dire</option>
12
- <option value="Homme">Homme</option>
13
- <option value="Femme">Femme</option>
14
- </sonic-select>
15
- <sonic-input autocomplete="bday" label="Date de naissance" name="date_naissance" type="date"></sonic-input>
16
- <sonic-divider></sonic-divider>
17
- <sonic-input autocomplete="email" label="e-mail" name="email" type="email"></sonic-input>
18
- <sonic-input
19
- autocomplete="email"
20
- label="Confirmer votre e-mail"
21
- name="email_confirmation"
22
- type="email"
23
- ></sonic-input>
24
- <sonic-input autocomplete="new-password" label="Mot de passe" name="password" type="password"></sonic-input>
25
- <sonic-input
26
- autocomplete="new-password"
27
- label="Confirmer votre mot de passe"
28
- name="password_confirmation"
29
- type="password"
30
- ></sonic-input>
31
- <sonic-divider></sonic-divider>
32
- <sonic-textarea label="Message" rows="5">
33
- </sonic-textarea>
34
- <sonic-switch>Activer une superbe option</sonic-switch>
35
- <sonic-checkbox>Inscription à la newsletter</sonic-checkbox>
36
- <sonic-checkbox>J'ai lu et accepte les <sonic-link href="#" class="underline">Conditions générales de ventes</sonic-link></sonic-checkbox>
79
+ <sonic-input label="Subject" name="subject"></sonic-input>
80
+ <sonic-textarea label="Details" rows="4"></sonic-textarea>
37
81
  <sonic-form-actions>
38
- <sonic-button type="success">Valider</sonic-button>
82
+ <sonic-button type="primary">Send</sonic-button>
39
83
  </sonic-form-actions>
40
84
  </sonic-form-layout>
41
- </form >
42
85
  </template>
43
86
  </sonic-code>
44
87
 
88
+ ## Custom column wrapper
89
+
90
+ Add the class `form-item-container` to a wrapper element to keep it in the two-column flow like a short field.
91
+
92
+ <sonic-code>
93
+ <template>
94
+ <sonic-form-layout>
95
+ <sonic-input label="From" name="from" placeholder="CDG"></sonic-input>
96
+ <div class="form-item-container">
97
+ <sonic-input label="To" name="to" placeholder="JFK"></sonic-input>
98
+ </div>
99
+ </sonic-form-layout>
100
+ </template>
101
+ </sonic-code>
102
+
103
+ ## API reference
104
+
105
+ No attributes.
106
+
107
+ | Slot | Description |
108
+ |------|-------------|
109
+ | *(default)* | Fields and blocks in visual order; short fields and `form-item-container` share rows, everything else spans the full width |