@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,121 +1,186 @@
1
1
  # Alert
2
2
 
3
+ Alerts **surface important feedback** inline—errors, confirmations, or contextual help. Use **`label`** / **`text`** for simple copy, or the **default slot** for rich content (links, buttons). Set **`announce`** when the message appears after an action so screen readers pick it up.
4
+
5
+ ## Basic example
6
+
3
7
  <sonic-code>
4
8
  <template>
5
- <sonic-alert status="error" label="Email error" text="This address is already in use" background></sonic-alert>
9
+ <sonic-alert status="error" label="Gate change" text="CN 001 now departs from gate B12" background></sonic-alert>
6
10
  </template>
7
11
  </sonic-code>
8
12
 
9
13
  ## Status
10
14
 
15
+ Color and icon follow `status`. With no `status`, behavior is `default`.
16
+
11
17
  <sonic-code>
12
18
  <template>
13
- <div class="grid gap-4">
14
- <sonic-alert label="Default"> This address is already in use. </sonic-alert>
15
- <sonic-alert status="success" label="Success"> This address is already in use. </sonic-alert>
16
- <sonic-alert status="error" label="Error"> This address is already in use. </sonic-alert>
17
- <sonic-alert status="warning" label="Warning"> This address is already in use. </sonic-alert>
18
- <sonic-alert status="info" label="Info"> This address is already in use. </sonic-alert>
19
- </div>
19
+ <div class="grid gap-4">
20
+ <sonic-alert label="Default">CN 001 · CDG → JFK.</sonic-alert>
21
+ <sonic-alert status="success" label="Success">CN 001 has landed at JFK.</sonic-alert>
22
+ <sonic-alert status="error" label="Error">CN 001 is cancelled.</sonic-alert>
23
+ <sonic-alert status="warning" label="Warning">Turbulence expected over the Atlantic.</sonic-alert>
24
+ <sonic-alert status="info" label="Info">Boarding starts in 20 minutes.</sonic-alert>
25
+ </div>
20
26
  </template>
21
27
  </sonic-code>
22
28
 
23
- ## Sizes
29
+ ## Accessibility (`announce`)
30
+
31
+ By default, an alert already in the DOM is **not** announced (no `role` / `aria-live`). Set **`announce`** when the message appears **after** user action (API response, validation, etc.): screen readers get `role="alert"` for `error`, otherwise `role="status"` and `aria-live="polite"`.
32
+
33
+ `sonic-alert-messages` sets `announce` on every rendered alert.
24
34
 
25
35
  <sonic-code>
26
36
  <template>
27
- <div class="grid gap-4">
28
- <sonic-alert status="error" label="Email error" size="2xs">
29
- This address is already in use. Lorem ipsum dolor sit amet.
30
- </sonic-alert>
31
- <sonic-alert status="error" label="Email error" size="xs">
32
- This address is already in use. Lorem ipsum dolor sit amet.
33
- </sonic-alert>
34
- <sonic-alert status="error" label="Email error" size="sm">
35
- This address is already in use. Lorem ipsum dolor sit amet.
36
- </sonic-alert>
37
- <sonic-alert status="error" label="Email error">
38
- This address is already in use. Lorem ipsum dolor sit amet.
39
- </sonic-alert>
40
- <sonic-alert status="error" label="Email error" size="lg">
41
- This address is already in use. Lorem ipsum dolor sit amet.
42
- </sonic-alert>
43
- <sonic-alert status="error" label="Email error" size="xl">
44
- This address is already in use. Lorem ipsum dolor sit amet.
45
- </sonic-alert>
46
- <sonic-alert status="error" label="Email error" size="2xl">
47
- This address is already in use. Lorem ipsum dolor sit amet.
48
- </sonic-alert>
49
- </div>
37
+ <sonic-alert announce status="success" label="Checked in" text="Your boarding pass is ready."></sonic-alert>
50
38
  </template>
51
39
  </sonic-code>
52
40
 
53
- ## Alert with link
41
+ ## Content and icon
42
+
43
+ `label` and `text` accept plain text only. The default slot is rendered after `text`. Use the **`icon`** slot to replace the default `sonic-icon`. **`noIcon`** hides the icon.
54
44
 
55
45
  <sonic-code>
56
46
  <template>
57
- <sonic-alert status="info" label="New messages !">
58
- You have 2 unread messages<br />
59
- <div class="flex gap-2 mt-1">
60
- <sonic-button variant="outline" type="info" size="xs">See messages</sonic-button>
61
- <sonic-button variant="ghost" type="info" size="xs">dismiss</sonic-button>
47
+ <sonic-alert status="info" noIcon label="No icon" text="Cruising altitude reached."></sonic-alert>
48
+ </template>
49
+ </sonic-code>
50
+
51
+ ## Custom icon slot
52
+
53
+ Project any markup into **`slot="icon"`** (icon, image, custom component). Keep it decorative with `aria-hidden="true"` when the message text already conveys meaning.
54
+
55
+ <sonic-code>
56
+ <template>
57
+ <sonic-alert status="success" label="Upgrade confirmed" background>
58
+ <sonic-icon slot="icon" library="iconoir" name="trophy" aria-hidden="true"></sonic-icon>
59
+ You are now seated in first class.
60
+ </sonic-alert>
61
+ </template>
62
+ </sonic-code>
63
+
64
+ ## Size
65
+
66
+ Default size is `md` (omit the `size` attribute). `inherit` follows the parent font size.
67
+
68
+ <sonic-code>
69
+ <template>
70
+ <div class="grid gap-4">
71
+ <sonic-alert status="error" label="Delayed" size="2xs">
72
+ CN 001 departure moved to 18:40.
73
+ </sonic-alert>
74
+ <sonic-alert status="error" label="Delayed" size="xs">
75
+ CN 001 departure moved to 18:40.
76
+ </sonic-alert>
77
+ <sonic-alert status="error" label="Delayed" size="sm">
78
+ CN 001 departure moved to 18:40.
79
+ </sonic-alert>
80
+ <sonic-alert status="error" label="Delayed">
81
+ CN 001 departure moved to 18:40.
82
+ </sonic-alert>
83
+ <sonic-alert status="error" label="Delayed" size="lg">
84
+ CN 001 departure moved to 18:40.
85
+ </sonic-alert>
86
+ <sonic-alert status="error" label="Delayed" size="xl">
87
+ CN 001 departure moved to 18:40.
88
+ </sonic-alert>
89
+ <sonic-alert status="error" label="Delayed" size="2xl">
90
+ CN 001 departure moved to 18:40.
91
+ </sonic-alert>
62
92
  </div>
63
- </sonic-alert>
93
+ </template>
94
+ </sonic-code>
95
+
96
+ ## Alert with link
97
+
98
+ Rich content in the slot (buttons, links).
99
+
100
+ <sonic-code>
101
+ <template>
102
+ <sonic-alert status="info" label="Gate change">
103
+ CN 001 now departs from gate B12<br />
104
+ <div class="flex gap-2 mt-1">
105
+ <sonic-button variant="outline" type="info" size="xs">View flight</sonic-button>
106
+ <sonic-button variant="ghost" type="info" size="xs">Dismiss</sonic-button>
107
+ </div>
108
+ </sonic-alert>
64
109
  </template>
65
110
  </sonic-code>
66
111
 
67
112
  ## Background
68
113
 
114
+ Tinted background from the `status` color (`color-mix` on `currentColor`).
115
+
69
116
  <sonic-code>
70
117
  <template>
71
- <div class="grid gap-4">
72
- <sonic-alert background label="Lorem ipsum dolor">
73
- This address is already in use.
74
- </sonic-alert>
75
- <sonic-alert status="success" background label="Lorem ipsum dolor">
76
- This address is already in use.
77
- </sonic-alert>
78
- <sonic-alert status="error" background label="Lorem ipsum dolor">
79
- This address is already in use.
80
- </sonic-alert>
81
- <sonic-alert status="warning" background label="Lorem ipsum dolor">
82
- This address is already in use.
83
- </sonic-alert>
84
- <sonic-alert status="info" background label="Lorem ipsum dolor">
85
- This address is already in use.
86
- </sonic-alert>
87
- </div>
118
+ <div class="grid gap-4">
119
+ <sonic-alert background label="Flight update">Boarding is now open at gate B12.</sonic-alert>
120
+ <sonic-alert status="success" background label="Flight update">
121
+ Boarding is now open at gate B12.
122
+ </sonic-alert>
123
+ <sonic-alert status="error" background label="Flight update">
124
+ Boarding is now open at gate B12.
125
+ </sonic-alert>
126
+ <sonic-alert status="warning" background label="Flight update">
127
+ Boarding is now open at gate B12.
128
+ </sonic-alert>
129
+ <sonic-alert status="info" background label="Flight update">
130
+ Boarding is now open at gate B12.
131
+ </sonic-alert>
132
+ </div>
88
133
  </template>
89
134
  </sonic-code>
90
135
 
91
136
  ## Dismissible
92
137
 
138
+ `dismissible` removes the alert from the DOM when the close control is clicked (i18n aria label). **`dismissible`** and **`background`** are independent: without `background`, close sits at the end of the row; with `background`, top-right.
139
+
93
140
  <sonic-code>
94
141
  <template>
95
- <sonic-alert class="mb-3" dismissible label="Lorem ipsum dolor">
96
- This address is already in use.
97
- </sonic-alert>
98
- <sonic-alert status="success" class="mb-3" dismissible label="Lorem ipsum dolor">
99
- This address is already in use.
100
- </sonic-alert>
101
- <sonic-alert status="error" class="mb-3" dismissible label="Lorem ipsum dolor">
102
- This address is already in use.
103
- </sonic-alert>
104
- <sonic-alert status="warning" class="mb-3" dismissible label="Lorem ipsum dolor">
105
- This address is already in use.
106
- </sonic-alert>
107
- <sonic-alert status="info" class="mb-3" dismissible label="Lorem ipsum dolor">
108
- This address is already in use.
109
- </sonic-alert>
142
+ <sonic-alert status="info" class="mb-3" dismissible label="Baggage claim moved to belt 4.">
143
+ </sonic-alert>
144
+ <sonic-alert class="mb-3" dismissible background label="Flight update">
145
+ Boarding is now open at gate B12.
146
+ </sonic-alert>
110
147
  </template>
111
148
  </sonic-code>
112
149
 
113
150
  ## Dismiss forever
114
151
 
152
+ With **`dismissForever`**, dismissal is stored in `localStorage` (key `sonic-alert-dismissed`). A stable **`id`** on the element is **required**; without `id`, a warning is logged and nothing is persisted.
153
+
115
154
  <sonic-code>
116
155
  <template>
117
- <sonic-alert class="mb-3" dismissible dismissForever label="Lorem ipsum dolor" id="addressUniqueId">
118
- This address is already in use.
119
- </sonic-alert>
156
+ <sonic-alert
157
+ class="mb-3"
158
+ dismissible
159
+ background
160
+ dismissForever
161
+ label="Flight update"
162
+ id="addressUniqueId"
163
+ >
164
+ Boarding is now open at gate B12.
165
+ </sonic-alert>
120
166
  </template>
121
167
  </sonic-code>
168
+
169
+ ## API reference
170
+
171
+ | Attribute | Values | Description |
172
+ |----------|---------|-------------|
173
+ | `status` | `default` (default) · `info` · `success` · `warning` · `error` | Color and default icon |
174
+ | `label` | string | Title (plain text) |
175
+ | `text` | string | Short body (plain text), rendered before the slot |
176
+ | `size` | `2xs` … `2xl` (default `md`) · `inherit` | Corner radius and typography |
177
+ | `background` | boolean | Tinted background (`color-mix` on status color) |
178
+ | `dismissible` | boolean | Close control; removes the element from the DOM |
179
+ | `dismissForever` | boolean | Persists dismissal in `localStorage`; requires **`id`** |
180
+ | `noIcon` | boolean | Hides the icon (including custom `icon` slot content) |
181
+ | `announce` | boolean | `role="alert"` / `aria-live` for dynamically injected content |
182
+
183
+ | Slot | Description |
184
+ |------|-------------|
185
+ | *(default)* | Message body (HTML, actions); rendered after `text` |
186
+ | `icon` | Replaces the default `sonic-icon` |
@@ -0,0 +1,85 @@
1
+ # Alert messages
2
+
3
+ **`sonic-alert-messages`** renders a vertical stack of **`sonic-alert`** items from a **`messages`** array on a linked **data provider** (typical pattern: **`submitResultDataProvider`** after a form submit). Only entries with **`type="public"`** are shown. Each alert gets **`announce`** so screen readers pick up feedback after the request.
4
+
5
+ ## With submit result
6
+
7
+ Bind **`dataProvider`** to the same publisher as **`submitResultDataProvider`**. API **`messages`** entries need **`type`**: **`public`**, plus **`content`** and optional **`status`** (`warning` · `success` · `error` · `info`).
8
+
9
+ <sonic-code>
10
+ <template>
11
+ <sonic-scope
12
+ serviceURL="/docs-mock-api"
13
+ formDataProvider="submit-example"
14
+ submitResultDataProvider="submit-example-result"
15
+ >
16
+ <sonic-alert-messages dataProvider="submit-example-result" background class="mb-4"></sonic-alert-messages>
17
+ <div class="grid gap-4 max-w-md">
18
+ <sonic-input name="email" type="email" label="Email" value=""></sonic-input>
19
+ <sonic-input name="password" type="password" label="Password" value=""></sonic-input>
20
+ <sonic-submit endPoint="api/register" onClick>
21
+ <sonic-button type="primary">Submit (empty fields → error messages)</sonic-button>
22
+ </sonic-submit>
23
+ </div>
24
+ </sonic-scope>
25
+ </template>
26
+ </sonic-code>
27
+
28
+ ## Shared alert props
29
+
30
+ **`size`** · **`background`** and **`noIcon`** apply to every rendered **`sonic-alert`** in the list.
31
+
32
+ <sonic-code>
33
+ <template>
34
+ <sonic-button
35
+ size="sm"
36
+ variant="outline"
37
+ class="mb-3"
38
+ onclick="SonicPublisherManager.get('submit-example-result').set({ messages: [{ type: 'public', content: 'Compact inline feedback without icons.', status: 'info' }] })"
39
+ >
40
+ Load sample messages
41
+ </sonic-button>
42
+ <sonic-alert-messages
43
+ dataProvider="submit-example-result"
44
+ size="sm"
45
+ background
46
+ noIcon
47
+ ></sonic-alert-messages>
48
+ </template>
49
+ </sonic-code>
50
+
51
+ ## Message shape
52
+
53
+ Example JSON on the result publisher (or API response merged into it):
54
+
55
+ <sonic-code language="typescript">
56
+ <template>
57
+ {
58
+ "messages": [
59
+ {
60
+ "type": "public",
61
+ "content": "The product has been added to your cart",
62
+ "status": "success"
63
+ }
64
+ ]
65
+ }
66
+ </template>
67
+ </sonic-code>
68
+
69
+ ## API reference
70
+
71
+ | Attribute | Values | Description |
72
+ |----------|---------|-------------|
73
+ | `dataProvider` | publisher id | Source object; **`messages`** array is auto-filled via **Subscriber** |
74
+ | `size` | `2xs` … `2xl` (default `md`) | Passed to each **`sonic-alert`** |
75
+ | `background` | boolean | Tinted background on each alert |
76
+ | `noIcon` | boolean | Hides icons on each alert |
77
+ | `messages` | `Message[]` | Usually set by the publisher; each item uses **`content`** as alert **`text`** |
78
+
79
+ | Message field | Values | Description |
80
+ |---------------|---------|-------------|
81
+ | `type` | `public` | Required for the message to render |
82
+ | `content` | string | Alert body (**`text`** on **`sonic-alert`**) |
83
+ | `status` | `warning` · `success` · `error` · `info` | Alert **`status`**; defaults to **`default`** when omitted |
84
+
85
+ No slots — alerts are generated from **`messages`**.
@@ -1,127 +1,181 @@
1
1
  # Badge
2
2
 
3
+ Badges are **compact, non-interactive** labels for status, counts, or categories. They mirror **`sonic-button`** styling (`type`, `variant`, `size`) without focus rings or click handling—use a button when the control should be actionable.
4
+
3
5
  ## Type
6
+
7
+ `default` — subtle background (`base-100`). `neutral` — dark fill (`base-content`) with light text, useful on light backgrounds.
8
+
4
9
  <sonic-code>
5
10
  <template>
6
- <sonic-badge>Default</sonic-badge>
7
- <sonic-badge type="primary">Primary</sonic-badge>
8
- <sonic-badge type="neutral">Neutral</sonic-badge>
9
- <sonic-badge type="warning">Warning</sonic-badge>
10
- <sonic-badge type="info">Info</sonic-badge>
11
- <sonic-badge type="success">Success</sonic-badge>
12
- <sonic-badge type="danger">Danger</sonic-badge>
13
- <sonic-badge type="contrast">Contrast</sonic-badge>
11
+ <div class="flex flex-wrap gap-2">
12
+ <sonic-badge>Default</sonic-badge>
13
+ <sonic-badge type="primary">Primary</sonic-badge>
14
+ <sonic-badge type="neutral">Neutral</sonic-badge>
15
+ <sonic-badge type="warning">Warning</sonic-badge>
16
+ <sonic-badge type="info">Info</sonic-badge>
17
+ <sonic-badge type="success">Success</sonic-badge>
18
+ <sonic-badge type="danger">Danger</sonic-badge>
19
+ </div>
14
20
  </template>
15
21
  </sonic-code>
16
22
 
23
+ ## Variant
24
+
25
+ Default **`variant`** is filled. **`outline`** — border and text in the `type` color. **`ghost`** — text only, no padding (except in forced-colors mode).
17
26
 
18
- ## Outline
19
27
  <sonic-code>
20
28
  <template>
21
- <div class="flex items-center flex-wrap gap-3">
22
- <sonic-badge variant="outline">Default</sonic-badge>
23
- <sonic-badge variant="outline" type="primary">Primary</sonic-badge>
24
- <sonic-badge variant="outline" type="neutral">Neutral</sonic-badge>
25
- <sonic-badge variant="outline" type="warning">Warning</sonic-badge>
26
- <sonic-badge variant="outline" type="info">Info</sonic-badge>
27
- <sonic-badge variant="outline" type="success">Success</sonic-badge>
28
- <sonic-badge variant="outline" type="danger">Danger</sonic-badge>
29
- <sonic-badge variant="outline" type="contrast">Contrast</sonic-badge>
30
- </div>
29
+ <div class="grid gap-3">
30
+ <div class="flex items-center flex-wrap gap-3">
31
+ <sonic-badge variant="outline">Default</sonic-badge>
32
+ <sonic-badge variant="outline" type="primary">Primary</sonic-badge>
33
+ <sonic-badge variant="outline" type="neutral">Neutral</sonic-badge>
34
+ <sonic-badge variant="outline" type="warning">Warning</sonic-badge>
35
+ <sonic-badge variant="outline" type="info">Info</sonic-badge>
36
+ <sonic-badge variant="outline" type="success">Success</sonic-badge>
37
+ <sonic-badge variant="outline" type="danger">Danger</sonic-badge>
38
+ </div>
39
+ <div class="flex items-center flex-wrap gap-3">
40
+ <sonic-badge variant="ghost">Default</sonic-badge>
41
+ <sonic-badge variant="ghost" type="primary">Primary</sonic-badge>
42
+ <sonic-badge variant="ghost" type="neutral">Neutral</sonic-badge>
43
+ <sonic-badge variant="ghost" type="warning">Warning</sonic-badge>
44
+ <sonic-badge variant="ghost" type="info">Info</sonic-badge>
45
+ <sonic-badge variant="ghost" type="success">Success</sonic-badge>
46
+ <sonic-badge variant="ghost" type="danger">Danger</sonic-badge>
47
+ </div>
48
+ </div>
31
49
  </template>
32
50
  </sonic-code>
33
51
 
34
- ## Ghost
52
+ ## Size
53
+
54
+ Default size is `md` (omit the `size` attribute). Typography and padding follow `sonic-button`.
55
+
35
56
  <sonic-code>
36
57
  <template>
37
- <div class="flex items-center flex-wrap gap-3">
38
- <sonic-badge variant="ghost">Default</sonic-badge>
39
- <sonic-badge variant="ghost" type="primary">Primary</sonic-badge>
40
- <sonic-badge variant="ghost" type="neutral">Neutral</sonic-badge>
41
- <sonic-badge variant="ghost" type="warning">Warning</sonic-badge>
42
- <sonic-badge variant="ghost" type="info">Info</sonic-badge>
43
- <sonic-badge variant="ghost" type="success">Success</sonic-badge>
44
- <sonic-badge variant="ghost" type="danger">Danger</sonic-badge>
45
- <sonic-badge variant="ghost" type="contrast">Contrast</sonic-badge>
46
- </div>
58
+ <div class="flex flex-wrap items-center gap-2">
59
+ <sonic-badge size="2xs">2Xs</sonic-badge>
60
+ <sonic-badge size="xs">Xs</sonic-badge>
61
+ <sonic-badge size="sm">Sm</sonic-badge>
62
+ <sonic-badge>Md</sonic-badge>
63
+ <sonic-badge size="lg">Lg</sonic-badge>
64
+ <sonic-badge size="xl">Xl</sonic-badge>
65
+ <sonic-badge size="2xl">2Xl</sonic-badge>
66
+ </div>
47
67
  </template>
48
68
  </sonic-code>
49
69
 
50
- ## Size
70
+ ## Prefix and suffix slots
71
+
72
+ Icons or short text before / after the main label.
73
+
51
74
  <sonic-code>
52
75
  <template>
53
- <sonic-badge size="2xs">2Xs badge</sonic-badge>
54
- <sonic-badge size="xs">Xs badge</sonic-badge>
55
- <sonic-badge size="sm">Sm badge</sonic-badge>
56
- <sonic-badge>Md badge</sonic-badge>
57
- <sonic-badge size="lg">Lg badge</sonic-badge>
58
- <sonic-badge size="xl">Xl badge</sonic-badge>
59
- <sonic-badge size="2xl">2Xl badge</sonic-badge>
76
+ <sonic-badge type="info" size="sm">
77
+ <sonic-icon slot="prefix" name="airplane" library="iconoir"></sonic-icon>
78
+ Boarding
79
+ </sonic-badge>
80
+ <sonic-badge type="success">
81
+ Landed
82
+ <sonic-icon slot="suffix" name="check" library="iconoir"></sonic-icon>
83
+ </sonic-badge>
60
84
  </template>
61
85
  </sonic-code>
62
86
 
63
-
64
87
  ## Empty badges
88
+
89
+ Badge with no text (visual dot). `min-width` / `min-height` keep a readable shape.
90
+
65
91
  <sonic-code>
66
92
  <template>
67
- <div class="flex items-center flex-wrap gap-3">
68
- <sonic-badge type="danger" size="2xs"></sonic-badge>
69
- <sonic-badge type="danger" size="xs"></sonic-badge>
70
- <sonic-badge type="danger" size="sm"></sonic-badge>
71
- <sonic-badge type="danger"></sonic-badge>
72
- <sonic-badge type="danger" size="lg"></sonic-badge>
73
- <sonic-badge type="danger" size="xl"></sonic-badge>
74
- <sonic-badge type="danger" size="2xl"></sonic-badge>
75
- </div>
93
+ <div class="flex items-center flex-wrap gap-3">
94
+ <sonic-badge type="danger" size="2xs"></sonic-badge>
95
+ <sonic-badge type="danger" size="xs"></sonic-badge>
96
+ <sonic-badge type="danger" size="sm"></sonic-badge>
97
+ <sonic-badge type="danger"></sonic-badge>
98
+ <sonic-badge type="danger" size="lg"></sonic-badge>
99
+ <sonic-badge type="danger" size="xl"></sonic-badge>
100
+ <sonic-badge type="danger" size="2xl"></sonic-badge>
101
+ </div>
76
102
  </template>
77
103
  </sonic-code>
78
104
 
79
-
80
105
  ## Ellipsis
106
+
107
+ With `ellipsis`, long labels truncate. The parent must constrain width (`max-width`, grid, etc.).
108
+
81
109
  <sonic-code>
82
110
  <template>
83
- <div class="grid grid-cols-3 gap-4" >
84
- <sonic-badge ellipsis size="sm" variant="outline" >
85
- <sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon> Lorem ipsum dolor sit consectetur adipiscing elit. Lorem ipsum dolor sit consectetur adipiscing elit.</sonic-badge>
86
- <sonic-badge ellipsis size="sm" > <sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon> Lorem ipsum dolor sit consectetur adipiscing elit. Lorem ipsum dolor sit consectetur adipiscing elit.</sonic-badge>
111
+ <div class="grid grid-cols-2 gap-4 max-w-xl">
112
+ <sonic-badge ellipsis size="sm" variant="outline">
113
+ <sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon>
114
+ CN 001 · CDG → JFK · Gate change: now boarding at gate B12, terminal 2E
115
+ </sonic-badge>
116
+ <sonic-badge ellipsis size="sm">
117
+ <sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon>
118
+ CN 001 · CDG → JFK · Gate change: now boarding at gate B12, terminal 2E
119
+ </sonic-badge>
87
120
  </div>
88
121
  </template>
89
122
  </sonic-code>
90
123
 
91
124
  ## Badge in button
125
+
126
+ Count inside a button (`slot="suffix"`) or a badge absolutely positioned on a button / icon.
127
+
92
128
  <sonic-code>
93
129
  <template>
94
- <div class="flex flex-wrap gap-4 items-center">
95
- <sonic-button type="default">
96
- Messages <sonic-badge slot="suffix" type="danger" size="xs">5</sonic-badge>
97
- </sonic-button>
98
- <div class="relative inline-block">
99
- <sonic-button type="success" class="relative"> Mon compte </sonic-button>
100
- <sonic-badge type="danger" size="xs" class="absolute right-1 top-0 pe-none transform -translate-y-1/2"
101
- >12</sonic-badge
102
- >
103
- </div>
104
- <div class="relative inline-block">
105
- <sonic-button type="neutral" shape="circle" variant="outline"
106
- ><sonic-icon library="iconoir" name="user"></sonic-icon>
107
- </sonic-button>
108
- <sonic-badge
109
- type="danger"
110
- size="xs"
111
- class="absolute right-1 bottom-1 pe-none transform translate-y-1/2 translate-x-1/2"
112
- >33</sonic-badge
113
- >
114
- </div>
115
- <div class="relative inline-block">
116
- <sonic-button type="neutral" shape="circle" variant="outline"
117
- ><sonic-icon library="iconoir" name="user"></sonic-icon>
130
+ <div class="flex flex-wrap gap-4 items-center">
131
+ <sonic-button type="default">
132
+ Departures <sonic-badge slot="suffix" type="danger" size="xs">5</sonic-badge>
118
133
  </sonic-button>
119
- <sonic-badge
120
- type="danger"
121
- size="xs"
122
- class="absolute right-2 bottom-2 pe-none transform translate-y-1/2 translate-x-1/2"
123
- ></sonic-badge>
134
+ <div class="relative inline-block">
135
+ <sonic-button type="success" class="relative">Crew</sonic-button>
136
+ <sonic-badge
137
+ type="danger"
138
+ size="xs"
139
+ class="absolute right-1 top-0 pe-none transform -translate-y-1/2"
140
+ >12</sonic-badge
141
+ >
142
+ </div>
143
+ <div class="relative inline-block">
144
+ <sonic-button type="neutral" shape="circle" variant="outline">
145
+ <sonic-icon library="iconoir" name="user"></sonic-icon>
146
+ </sonic-button>
147
+ <sonic-badge
148
+ type="danger"
149
+ size="xs"
150
+ class="absolute right-1 bottom-1 pe-none transform translate-y-1/2 translate-x-1/2"
151
+ >33</sonic-badge
152
+ >
153
+ </div>
154
+ <div class="relative inline-block">
155
+ <sonic-button type="neutral" shape="circle" variant="outline">
156
+ <sonic-icon library="iconoir" name="user"></sonic-icon>
157
+ </sonic-button>
158
+ <sonic-badge
159
+ type="danger"
160
+ size="xs"
161
+ class="absolute right-2 bottom-2 pe-none transform translate-y-1/2 translate-x-1/2"
162
+ ></sonic-badge>
163
+ </div>
124
164
  </div>
125
- </div>
126
165
  </template>
127
166
  </sonic-code>
167
+
168
+ ## API reference
169
+
170
+ | Attribute | Values | Description |
171
+ |----------|---------|-------------|
172
+ | `type` | `default` (default) · `primary` · `neutral` · `warning` · `info` · `success` · `danger` | Semantic color (`--sc-*` tokens) |
173
+ | `variant` | `default` (default) · `outline` · `ghost` | Filled, bordered, or text-only |
174
+ | `size` | `2xs` … `2xl` (default `md`) · `inherit` | Typography and padding (aligned with **`sonic-button`**) |
175
+ | `ellipsis` | boolean | Single-line truncation; parent must constrain width |
176
+
177
+ | Slot | Description |
178
+ |------|-------------|
179
+ | *(default)* | Main label |
180
+ | `prefix` | Icon or short text before the label |
181
+ | `suffix` | Icon or short text after the label |