@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
@@ -0,0 +1,201 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-doc-url="https://concorde.supersoniks.org/core/components/ui/alert" data-doc-id="core/components/ui/alert/alert">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Alert — Concorde by Supersoniks</title>
7
+ <meta name="description" content="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 messa">
8
+ <meta name="keywords" content="Concorde, supersoniks, core/components/ui/alert/alert, alert, Alert, UI component, sonic-alert, web component, label, text, announce, status, default, role, aria-live">
9
+ <meta name="concorde-doc-id" content="core/components/ui/alert/alert">
10
+ <link rel="canonical" href="https://concorde.supersoniks.org/core/components/ui/alert">
11
+ <link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/core/components/ui/alert.md">
12
+ </head>
13
+ <body>
14
+ <header>
15
+ <p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/core/components/ui/alert">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
16
+ </header>
17
+ <main>
18
+ <article>
19
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Alert</strong>. 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 messa <span>Doc ID: <code>core/components/ui/alert/alert</code>. Keywords: Concorde, supersoniks, core/components/ui/alert/alert, alert, Alert, UI component, sonic-alert, web component, label, text, announce, status, default, role, aria-live. URL: <a href="https://concorde.supersoniks.org/core/components/ui/alert">https://concorde.supersoniks.org/core/components/ui/alert</a>.</span></p>
20
+ <h1 id="alert">Alert</h1>
21
+ <p>Alerts <strong>surface important feedback</strong> inline—errors, confirmations, or contextual help. Use <strong><code>label</code></strong> / <strong><code>text</code></strong> for simple copy, or the <strong>default slot</strong> for rich content (links, buttons). Set <strong><code>announce</code></strong> when the message appears after an action so screen readers pick it up.</p>
22
+ <h2 id="basic-example">Basic example</h2>
23
+ <pre><code>&lt;sonic-alert status=&quot;error&quot; label=&quot;Gate change&quot; text=&quot;CN 001 now departs from gate B12&quot; background&gt;&lt;/sonic-alert&gt;
24
+ </code></pre>
25
+ <h2 id="status">Status</h2>
26
+ <p>Color and icon follow <code>status</code>. With no <code>status</code>, behavior is <code>default</code>.</p>
27
+ <pre><code>&lt;div class=&quot;grid gap-4&quot;&gt;
28
+ &lt;sonic-alert label=&quot;Default&quot;&gt;CN 001 · CDG → JFK.&lt;/sonic-alert&gt;
29
+ &lt;sonic-alert status=&quot;success&quot; label=&quot;Success&quot;&gt;CN 001 has landed at JFK.&lt;/sonic-alert&gt;
30
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Error&quot;&gt;CN 001 is cancelled.&lt;/sonic-alert&gt;
31
+ &lt;sonic-alert status=&quot;warning&quot; label=&quot;Warning&quot;&gt;Turbulence expected over the Atlantic.&lt;/sonic-alert&gt;
32
+ &lt;sonic-alert status=&quot;info&quot; label=&quot;Info&quot;&gt;Boarding starts in 20 minutes.&lt;/sonic-alert&gt;
33
+ &lt;/div&gt;
34
+ </code></pre>
35
+ <h2 id="accessibility-announce">Accessibility (<code>announce</code>)</h2>
36
+ <p>By default, an alert already in the DOM is <strong>not</strong> announced (no <code>role</code> / <code>aria-live</code>). Set <strong><code>announce</code></strong> when the message appears <strong>after</strong> user action (API response, validation, etc.): screen readers get <code>role=&quot;alert&quot;</code> for <code>error</code>, otherwise <code>role=&quot;status&quot;</code> and <code>aria-live=&quot;polite&quot;</code>.</p>
37
+ <p><code>sonic-alert-messages</code> sets <code>announce</code> on every rendered alert.</p>
38
+ <pre><code>&lt;sonic-alert announce status=&quot;success&quot; label=&quot;Checked in&quot; text=&quot;Your boarding pass is ready.&quot;&gt;&lt;/sonic-alert&gt;
39
+ </code></pre>
40
+ <h2 id="content-and-icon">Content and icon</h2>
41
+ <p><code>label</code> and <code>text</code> accept plain text only. The default slot is rendered after <code>text</code>. Use the <strong><code>icon</code></strong> slot to replace the default <code>sonic-icon</code>. <strong><code>noIcon</code></strong> hides the icon.</p>
42
+ <pre><code>&lt;sonic-alert status=&quot;info&quot; noIcon label=&quot;No icon&quot; text=&quot;Cruising altitude reached.&quot;&gt;&lt;/sonic-alert&gt;
43
+ </code></pre>
44
+ <h2 id="custom-icon-slot">Custom icon slot</h2>
45
+ <p>Project any markup into <strong><code>slot=&quot;icon&quot;</code></strong> (icon, image, custom component). Keep it decorative with <code>aria-hidden=&quot;true&quot;</code> when the message text already conveys meaning.</p>
46
+ <pre><code>&lt;sonic-alert status=&quot;success&quot; label=&quot;Upgrade confirmed&quot; background&gt;
47
+ &lt;sonic-icon slot=&quot;icon&quot; library=&quot;iconoir&quot; name=&quot;trophy&quot; aria-hidden=&quot;true&quot;&gt;&lt;/sonic-icon&gt;
48
+ You are now seated in first class.
49
+ &lt;/sonic-alert&gt;
50
+ </code></pre>
51
+ <h2 id="size">Size</h2>
52
+ <p>Default size is <code>md</code> (omit the <code>size</code> attribute). <code>inherit</code> follows the parent font size.</p>
53
+ <pre><code>&lt;div class=&quot;grid gap-4&quot;&gt;
54
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Delayed&quot; size=&quot;2xs&quot;&gt;
55
+ CN 001 departure moved to 18:40.
56
+ &lt;/sonic-alert&gt;
57
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Delayed&quot; size=&quot;xs&quot;&gt;
58
+ CN 001 departure moved to 18:40.
59
+ &lt;/sonic-alert&gt;
60
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Delayed&quot; size=&quot;sm&quot;&gt;
61
+ CN 001 departure moved to 18:40.
62
+ &lt;/sonic-alert&gt;
63
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Delayed&quot;&gt;
64
+ CN 001 departure moved to 18:40.
65
+ &lt;/sonic-alert&gt;
66
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Delayed&quot; size=&quot;lg&quot;&gt;
67
+ CN 001 departure moved to 18:40.
68
+ &lt;/sonic-alert&gt;
69
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Delayed&quot; size=&quot;xl&quot;&gt;
70
+ CN 001 departure moved to 18:40.
71
+ &lt;/sonic-alert&gt;
72
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Delayed&quot; size=&quot;2xl&quot;&gt;
73
+ CN 001 departure moved to 18:40.
74
+ &lt;/sonic-alert&gt;
75
+ &lt;/div&gt;
76
+ </code></pre>
77
+ <h2 id="alert-with-link">Alert with link</h2>
78
+ <p>Rich content in the slot (buttons, links).</p>
79
+ <pre><code>&lt;sonic-alert status=&quot;info&quot; label=&quot;Gate change&quot;&gt;
80
+ CN 001 now departs from gate B12&lt;br /&gt;
81
+ &lt;div class=&quot;flex gap-2 mt-1&quot;&gt;
82
+ &lt;sonic-button variant=&quot;outline&quot; type=&quot;info&quot; size=&quot;xs&quot;&gt;View flight&lt;/sonic-button&gt;
83
+ &lt;sonic-button variant=&quot;ghost&quot; type=&quot;info&quot; size=&quot;xs&quot;&gt;Dismiss&lt;/sonic-button&gt;
84
+ &lt;/div&gt;
85
+ &lt;/sonic-alert&gt;
86
+ </code></pre>
87
+ <h2 id="background">Background</h2>
88
+ <p>Tinted background from the <code>status</code> color (<code>color-mix</code> on <code>currentColor</code>).</p>
89
+ <pre><code>&lt;div class=&quot;grid gap-4&quot;&gt;
90
+ &lt;sonic-alert background label=&quot;Flight update&quot;&gt;Boarding is now open at gate B12.&lt;/sonic-alert&gt;
91
+ &lt;sonic-alert status=&quot;success&quot; background label=&quot;Flight update&quot;&gt;
92
+ Boarding is now open at gate B12.
93
+ &lt;/sonic-alert&gt;
94
+ &lt;sonic-alert status=&quot;error&quot; background label=&quot;Flight update&quot;&gt;
95
+ Boarding is now open at gate B12.
96
+ &lt;/sonic-alert&gt;
97
+ &lt;sonic-alert status=&quot;warning&quot; background label=&quot;Flight update&quot;&gt;
98
+ Boarding is now open at gate B12.
99
+ &lt;/sonic-alert&gt;
100
+ &lt;sonic-alert status=&quot;info&quot; background label=&quot;Flight update&quot;&gt;
101
+ Boarding is now open at gate B12.
102
+ &lt;/sonic-alert&gt;
103
+ &lt;/div&gt;
104
+ </code></pre>
105
+ <h2 id="dismissible">Dismissible</h2>
106
+ <p><code>dismissible</code> removes the alert from the DOM when the close control is clicked (i18n aria label). <strong><code>dismissible</code></strong> and <strong><code>background</code></strong> are independent: without <code>background</code>, close sits at the end of the row; with <code>background</code>, top-right.</p>
107
+ <pre><code>&lt;sonic-alert status=&quot;info&quot; class=&quot;mb-3&quot; dismissible label=&quot;Baggage claim moved to belt 4.&quot;&gt;
108
+ &lt;/sonic-alert&gt;
109
+ &lt;sonic-alert class=&quot;mb-3&quot; dismissible background label=&quot;Flight update&quot;&gt;
110
+ Boarding is now open at gate B12.
111
+ &lt;/sonic-alert&gt;
112
+ </code></pre>
113
+ <h2 id="dismiss-forever">Dismiss forever</h2>
114
+ <p>With <strong><code>dismissForever</code></strong>, dismissal is stored in <code>localStorage</code> (key <code>sonic-alert-dismissed</code>). A stable <strong><code>id</code></strong> on the element is <strong>required</strong>; without <code>id</code>, a warning is logged and nothing is persisted.</p>
115
+ <pre><code>&lt;sonic-alert
116
+ class=&quot;mb-3&quot;
117
+ dismissible
118
+ background
119
+ dismissForever
120
+ label=&quot;Flight update&quot;
121
+ id=&quot;addressUniqueId&quot;
122
+ &gt;
123
+ Boarding is now open at gate B12.
124
+ &lt;/sonic-alert&gt;
125
+ </code></pre>
126
+ <h2 id="api-reference">API reference</h2>
127
+ <table>
128
+ <thead>
129
+ <tr>
130
+ <th>Attribute</th>
131
+ <th>Values</th>
132
+ <th>Description</th>
133
+ </tr>
134
+ </thead>
135
+ <tbody><tr>
136
+ <td><code>status</code></td>
137
+ <td><code>default</code> (default) · <code>info</code> · <code>success</code> · <code>warning</code> · <code>error</code></td>
138
+ <td>Color and default icon</td>
139
+ </tr>
140
+ <tr>
141
+ <td><code>label</code></td>
142
+ <td>string</td>
143
+ <td>Title (plain text)</td>
144
+ </tr>
145
+ <tr>
146
+ <td><code>text</code></td>
147
+ <td>string</td>
148
+ <td>Short body (plain text), rendered before the slot</td>
149
+ </tr>
150
+ <tr>
151
+ <td><code>size</code></td>
152
+ <td><code>2xs</code> … <code>2xl</code> (default <code>md</code>) · <code>inherit</code></td>
153
+ <td>Corner radius and typography</td>
154
+ </tr>
155
+ <tr>
156
+ <td><code>background</code></td>
157
+ <td>boolean</td>
158
+ <td>Tinted background (<code>color-mix</code> on status color)</td>
159
+ </tr>
160
+ <tr>
161
+ <td><code>dismissible</code></td>
162
+ <td>boolean</td>
163
+ <td>Close control; removes the element from the DOM</td>
164
+ </tr>
165
+ <tr>
166
+ <td><code>dismissForever</code></td>
167
+ <td>boolean</td>
168
+ <td>Persists dismissal in <code>localStorage</code>; requires <strong><code>id</code></strong></td>
169
+ </tr>
170
+ <tr>
171
+ <td><code>noIcon</code></td>
172
+ <td>boolean</td>
173
+ <td>Hides the icon (including custom <code>icon</code> slot content)</td>
174
+ </tr>
175
+ <tr>
176
+ <td><code>announce</code></td>
177
+ <td>boolean</td>
178
+ <td><code>role=&quot;alert&quot;</code> / <code>aria-live</code> for dynamically injected content</td>
179
+ </tr>
180
+ </tbody></table>
181
+ <table>
182
+ <thead>
183
+ <tr>
184
+ <th>Slot</th>
185
+ <th>Description</th>
186
+ </tr>
187
+ </thead>
188
+ <tbody><tr>
189
+ <td><em>(default)</em></td>
190
+ <td>Message body (HTML, actions); rendered after <code>text</code></td>
191
+ </tr>
192
+ <tr>
193
+ <td><code>icon</code></td>
194
+ <td>Replaces the default <code>sonic-icon</code></td>
195
+ </tr>
196
+ </tbody></table>
197
+
198
+ </article>
199
+ </main>
200
+ </body>
201
+ </html>
@@ -0,0 +1,186 @@
1
+ # Alert
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
+
7
+ <sonic-code>
8
+ <template>
9
+ <sonic-alert status="error" label="Gate change" text="CN 001 now departs from gate B12" background></sonic-alert>
10
+ </template>
11
+ </sonic-code>
12
+
13
+ ## Status
14
+
15
+ Color and icon follow `status`. With no `status`, behavior is `default`.
16
+
17
+ <sonic-code>
18
+ <template>
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>
26
+ </template>
27
+ </sonic-code>
28
+
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.
34
+
35
+ <sonic-code>
36
+ <template>
37
+ <sonic-alert announce status="success" label="Checked in" text="Your boarding pass is ready."></sonic-alert>
38
+ </template>
39
+ </sonic-code>
40
+
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.
44
+
45
+ <sonic-code>
46
+ <template>
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>
92
+ </div>
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>
109
+ </template>
110
+ </sonic-code>
111
+
112
+ ## Background
113
+
114
+ Tinted background from the `status` color (`color-mix` on `currentColor`).
115
+
116
+ <sonic-code>
117
+ <template>
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>
133
+ </template>
134
+ </sonic-code>
135
+
136
+ ## Dismissible
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
+
140
+ <sonic-code>
141
+ <template>
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>
147
+ </template>
148
+ </sonic-code>
149
+
150
+ ## Dismiss forever
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
+
154
+ <sonic-code>
155
+ <template>
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>
166
+ </template>
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,132 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-doc-url="https://concorde.supersoniks.org/core/components/ui/alert-messages" data-doc-id="core/components/ui/alert-messages/alert-messages">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Alert messages — Concorde by Supersoniks</title>
7
+ <meta name="description" content="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 ty">
8
+ <meta name="keywords" content="Concorde, supersoniks, core/components/ui/alert-messages/alert-messages, alert-messages, Alert messages, UI component, sonic-alert-messages, web component, sonic-alert, messages, submitResultDataProvider, type=&quot;public&quot;, announce, dataProvider, type">
9
+ <meta name="concorde-doc-id" content="core/components/ui/alert-messages/alert-messages">
10
+ <link rel="canonical" href="https://concorde.supersoniks.org/core/components/ui/alert-messages">
11
+ <link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/core/components/ui/alert-messages.md">
12
+ </head>
13
+ <body>
14
+ <header>
15
+ <p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/core/components/ui/alert-messages">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
16
+ </header>
17
+ <main>
18
+ <article>
19
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Alert messages</strong>. 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 ty <span>Doc ID: <code>core/components/ui/alert-messages/alert-messages</code>. Keywords: Concorde, supersoniks, core/components/ui/alert-messages/alert-messages, alert-messages, Alert messages, UI component, sonic-alert-messages, web component, sonic-alert, messages, submitResultDataProvider, type=&quot;public&quot;, announce, dataProvider, type. URL: <a href="https://concorde.supersoniks.org/core/components/ui/alert-messages">https://concorde.supersoniks.org/core/components/ui/alert-messages</a>.</span></p>
20
+ <h1 id="alert-messages">Alert messages</h1>
21
+ <p><strong><code>sonic-alert-messages</code></strong> renders a vertical stack of <strong><code>sonic-alert</code></strong> items from a <strong><code>messages</code></strong> array on a linked <strong>data provider</strong> (typical pattern: <strong><code>submitResultDataProvider</code></strong> after a form submit). Only entries with <strong><code>type=&quot;public&quot;</code></strong> are shown. Each alert gets <strong><code>announce</code></strong> so screen readers pick up feedback after the request.</p>
22
+ <h2 id="with-submit-result">With submit result</h2>
23
+ <p>Bind <strong><code>dataProvider</code></strong> to the same publisher as <strong><code>submitResultDataProvider</code></strong>. API <strong><code>messages</code></strong> entries need <strong><code>type</code></strong>: <strong><code>public</code></strong>, plus <strong><code>content</code></strong> and optional <strong><code>status</code></strong> (<code>warning</code> · <code>success</code> · <code>error</code> · <code>info</code>).</p>
24
+ <pre><code>&lt;sonic-scope
25
+ serviceURL=&quot;/docs-mock-api&quot;
26
+ formDataProvider=&quot;submit-example&quot;
27
+ submitResultDataProvider=&quot;submit-example-result&quot;
28
+ &gt;
29
+ &lt;sonic-alert-messages dataProvider=&quot;submit-example-result&quot; background class=&quot;mb-4&quot;&gt;&lt;/sonic-alert-messages&gt;
30
+ &lt;div class=&quot;grid gap-4 max-w-md&quot;&gt;
31
+ &lt;sonic-input name=&quot;email&quot; type=&quot;email&quot; label=&quot;Email&quot; value=&quot;&quot;&gt;&lt;/sonic-input&gt;
32
+ &lt;sonic-input name=&quot;password&quot; type=&quot;password&quot; label=&quot;Password&quot; value=&quot;&quot;&gt;&lt;/sonic-input&gt;
33
+ &lt;sonic-submit endPoint=&quot;api/register&quot; onClick&gt;
34
+ &lt;sonic-button type=&quot;primary&quot;&gt;Submit (empty fields → error messages)&lt;/sonic-button&gt;
35
+ &lt;/sonic-submit&gt;
36
+ &lt;/div&gt;
37
+ &lt;/sonic-scope&gt;
38
+ </code></pre>
39
+ <h2 id="shared-alert-props">Shared alert props</h2>
40
+ <p><strong><code>size</code></strong> · <strong><code>background</code></strong> and <strong><code>noIcon</code></strong> apply to every rendered <strong><code>sonic-alert</code></strong> in the list.</p>
41
+ <pre><code>&lt;sonic-button
42
+ size=&quot;sm&quot;
43
+ variant=&quot;outline&quot;
44
+ class=&quot;mb-3&quot;
45
+ onclick=&quot;SonicPublisherManager.get(&#39;submit-example-result&#39;).set({ messages: [{ type: &#39;public&#39;, content: &#39;Compact inline feedback without icons.&#39;, status: &#39;info&#39; }] })&quot;
46
+ &gt;
47
+ Load sample messages
48
+ &lt;/sonic-button&gt;
49
+ &lt;sonic-alert-messages
50
+ dataProvider=&quot;submit-example-result&quot;
51
+ size=&quot;sm&quot;
52
+ background
53
+ noIcon
54
+ &gt;&lt;/sonic-alert-messages&gt;
55
+ </code></pre>
56
+ <h2 id="message-shape">Message shape</h2>
57
+ <p>Example JSON on the result publisher (or API response merged into it):</p>
58
+ <pre><code class="language-typescript">{
59
+ &quot;messages&quot;: [
60
+ {
61
+ &quot;type&quot;: &quot;public&quot;,
62
+ &quot;content&quot;: &quot;The product has been added to your cart&quot;,
63
+ &quot;status&quot;: &quot;success&quot;
64
+ }
65
+ ]
66
+ }
67
+ </code></pre>
68
+ <h2 id="api-reference">API reference</h2>
69
+ <table>
70
+ <thead>
71
+ <tr>
72
+ <th>Attribute</th>
73
+ <th>Values</th>
74
+ <th>Description</th>
75
+ </tr>
76
+ </thead>
77
+ <tbody><tr>
78
+ <td><code>dataProvider</code></td>
79
+ <td>publisher id</td>
80
+ <td>Source object; <strong><code>messages</code></strong> array is auto-filled via <strong>Subscriber</strong></td>
81
+ </tr>
82
+ <tr>
83
+ <td><code>size</code></td>
84
+ <td><code>2xs</code> … <code>2xl</code> (default <code>md</code>)</td>
85
+ <td>Passed to each <strong><code>sonic-alert</code></strong></td>
86
+ </tr>
87
+ <tr>
88
+ <td><code>background</code></td>
89
+ <td>boolean</td>
90
+ <td>Tinted background on each alert</td>
91
+ </tr>
92
+ <tr>
93
+ <td><code>noIcon</code></td>
94
+ <td>boolean</td>
95
+ <td>Hides icons on each alert</td>
96
+ </tr>
97
+ <tr>
98
+ <td><code>messages</code></td>
99
+ <td><code>Message[]</code></td>
100
+ <td>Usually set by the publisher; each item uses <strong><code>content</code></strong> as alert <strong><code>text</code></strong></td>
101
+ </tr>
102
+ </tbody></table>
103
+ <table>
104
+ <thead>
105
+ <tr>
106
+ <th>Message field</th>
107
+ <th>Values</th>
108
+ <th>Description</th>
109
+ </tr>
110
+ </thead>
111
+ <tbody><tr>
112
+ <td><code>type</code></td>
113
+ <td><code>public</code></td>
114
+ <td>Required for the message to render</td>
115
+ </tr>
116
+ <tr>
117
+ <td><code>content</code></td>
118
+ <td>string</td>
119
+ <td>Alert body (<strong><code>text</code></strong> on <strong><code>sonic-alert</code></strong>)</td>
120
+ </tr>
121
+ <tr>
122
+ <td><code>status</code></td>
123
+ <td><code>warning</code> · <code>success</code> · <code>error</code> · <code>info</code></td>
124
+ <td>Alert <strong><code>status</code></strong>; defaults to <strong><code>default</code></strong> when omitted</td>
125
+ </tr>
126
+ </tbody></table>
127
+ <p>No slots — alerts are generated from <strong><code>messages</code></strong>.</p>
128
+
129
+ </article>
130
+ </main>
131
+ </body>
132
+ </html>
@@ -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`**.