@supersoniks/concorde 5.1.1 → 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 (438) 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/.tmp-cem/custom-elements.json +503 -503
  6. package/PLAN-DOCS-AGENTS.md +80 -0
  7. package/README.md +3 -3
  8. package/ai/skills/concorde/SKILL.md +1 -1
  9. package/ai/skills/concorde-get-set-dp/SKILL.md +3 -3
  10. package/ai/skills/concorde-theme/SKILL.md +1 -1
  11. package/build-infos.json +1 -1
  12. package/concorde-core.bundle.js +1 -1
  13. package/concorde-core.es.js +1 -1
  14. package/dist/concorde-core.bundle.js +1 -1
  15. package/dist/concorde-core.es.js +1 -1
  16. package/docs/.htaccess +75 -0
  17. package/docs/404.html +15 -0
  18. package/docs/404.md +5 -0
  19. package/docs/assets/{index-Bb-_LRyY.js → index-BgG6FFPt.js} +2582 -3097
  20. package/docs/assets/index-x89XINSG.css +1 -0
  21. package/docs/core/components/functional/date/date.html +211 -0
  22. package/docs/core/components/functional/date/date.md +150 -0
  23. package/docs/core/components/functional/fetch/fetch.html +180 -0
  24. package/docs/core/components/functional/fetch/fetch.md +108 -0
  25. package/docs/core/components/functional/if/if.html +65 -0
  26. package/docs/core/components/functional/if/if.md +34 -0
  27. package/docs/core/components/functional/jsonata/jsonata.html +110 -0
  28. package/docs/core/components/functional/jsonata/jsonata.md +61 -0
  29. package/docs/core/components/functional/list/list.html +198 -0
  30. package/docs/core/components/functional/list/list.md +121 -0
  31. package/docs/core/components/functional/mix/mix.html +78 -0
  32. package/docs/core/components/functional/mix/mix.md +46 -0
  33. package/docs/core/components/functional/queue/queue.html +155 -0
  34. package/docs/core/components/functional/queue/queue.md +51 -0
  35. package/docs/core/components/functional/router/router.html +154 -0
  36. package/docs/core/components/functional/router/router.md +93 -0
  37. package/docs/core/components/functional/sdui/sdui-extension-points.html +127 -0
  38. package/docs/core/components/functional/sdui/sdui-extension-points.md +94 -0
  39. package/docs/core/components/functional/sdui/sdui.html +397 -0
  40. package/docs/core/components/functional/sdui/sdui.md +307 -0
  41. package/docs/core/components/functional/states/states.html +141 -0
  42. package/docs/core/components/functional/states/states.md +112 -0
  43. package/docs/core/components/functional/submit/submit.html +178 -0
  44. package/docs/core/components/functional/submit/submit.md +106 -0
  45. package/docs/core/components/functional/subscriber/subscriber.html +68 -0
  46. package/docs/core/components/functional/subscriber/subscriber.md +91 -0
  47. package/docs/core/components/functional/translation/translation.html +60 -0
  48. package/docs/core/components/functional/translation/translation.md +38 -0
  49. package/docs/core/components/functional/value/value.html +81 -0
  50. package/docs/core/components/functional/value/value.md +47 -0
  51. package/docs/core/components/ui/alert/alert.html +201 -0
  52. package/docs/core/components/ui/alert/alert.md +186 -0
  53. package/docs/core/components/ui/alert-messages/alert-messages.html +132 -0
  54. package/docs/core/components/ui/alert-messages/alert-messages.md +85 -0
  55. package/docs/core/components/ui/badge/badge.html +197 -0
  56. package/docs/core/components/ui/badge/badge.md +181 -0
  57. package/docs/core/components/ui/button/button.html +309 -0
  58. package/docs/core/components/ui/button/button.md +216 -0
  59. package/docs/core/components/ui/captcha/captcha.html +80 -0
  60. package/docs/core/components/ui/captcha/captcha.md +56 -0
  61. package/docs/core/components/ui/card/card.html +254 -0
  62. package/docs/core/components/ui/card/card.md +215 -0
  63. package/docs/core/components/ui/divider/divider.html +144 -0
  64. package/docs/core/components/ui/divider/divider.md +126 -0
  65. package/docs/core/components/ui/form/checkbox/checkbox.html +200 -0
  66. package/docs/core/components/ui/form/checkbox/checkbox.md +125 -0
  67. package/docs/core/components/ui/form/fieldset/fieldset.html +238 -0
  68. package/docs/core/components/ui/form/fieldset/fieldset.md +161 -0
  69. package/docs/core/components/ui/form/form-actions/form-actions.html +122 -0
  70. package/docs/core/components/ui/form/form-actions/form-actions.md +98 -0
  71. package/docs/core/components/ui/form/form-layout/form-layout.html +115 -0
  72. package/docs/core/components/ui/form/form-layout/form-layout.md +109 -0
  73. package/docs/core/components/ui/form/input/input.html +235 -0
  74. package/docs/core/components/ui/form/input/input.md +142 -0
  75. package/docs/core/components/ui/form/radio/radio.html +144 -0
  76. package/docs/core/components/ui/form/radio/radio.md +78 -0
  77. package/docs/core/components/ui/form/select/select.html +178 -0
  78. package/docs/core/components/ui/form/select/select.md +86 -0
  79. package/docs/core/components/ui/form/switch/switch.html +146 -0
  80. package/docs/core/components/ui/form/switch/switch.md +80 -0
  81. package/docs/core/components/ui/form/textarea/textarea.html +162 -0
  82. package/docs/core/components/ui/form/textarea/textarea.md +82 -0
  83. package/docs/core/components/ui/group/group.html +113 -0
  84. package/docs/core/components/ui/group/group.md +77 -0
  85. package/docs/core/components/ui/icon/icon.html +223 -0
  86. package/docs/core/components/ui/icon/icon.md +214 -0
  87. package/docs/core/components/ui/image/image.html +194 -0
  88. package/docs/core/components/ui/image/image.md +167 -0
  89. package/docs/core/components/ui/link/link.html +101 -0
  90. package/docs/core/components/ui/link/link.md +81 -0
  91. package/docs/core/components/ui/loader/loader.html +114 -0
  92. package/docs/core/components/ui/loader/loader.md +87 -0
  93. package/docs/core/components/ui/menu/menu.html +395 -0
  94. package/docs/core/components/ui/menu/menu.md +370 -0
  95. package/docs/core/components/ui/modal/modal.html +324 -0
  96. package/docs/core/components/ui/modal/modal.md +211 -0
  97. package/docs/core/components/ui/pop/pop.html +250 -0
  98. package/docs/core/components/ui/pop/pop.md +216 -0
  99. package/docs/core/components/ui/progress/progress.html +132 -0
  100. package/docs/core/components/ui/progress/progress.md +109 -0
  101. package/docs/core/components/ui/table/table.html +333 -0
  102. package/docs/core/components/ui/table/table.md +267 -0
  103. package/docs/core/components/ui/theme/theme.html +116 -0
  104. package/docs/core/components/ui/theme/theme.md +97 -0
  105. package/docs/core/components/ui/toast/toast.html +185 -0
  106. package/docs/core/components/ui/toast/toast.md +147 -0
  107. package/docs/core/components/ui/tooltip/tooltip.html +112 -0
  108. package/docs/core/components/ui/tooltip/tooltip.md +89 -0
  109. package/docs/docs/decorators/ancestor-attribute.html +71 -0
  110. package/docs/docs/decorators/ancestor-attribute.md +59 -0
  111. package/docs/docs/decorators/auto-subscribe.html +61 -0
  112. package/docs/docs/decorators/auto-subscribe.md +40 -0
  113. package/docs/docs/decorators/bind.html +86 -0
  114. package/docs/docs/decorators/bind.md +77 -0
  115. package/docs/docs/decorators/get.html +166 -0
  116. package/docs/docs/decorators/get.md +160 -0
  117. package/docs/docs/decorators/handle.html +139 -0
  118. package/docs/docs/decorators/handle.md +119 -0
  119. package/docs/docs/decorators/on-assign.html +72 -0
  120. package/docs/docs/decorators/on-assign.md +63 -0
  121. package/docs/docs/decorators/patch.html +76 -0
  122. package/docs/docs/decorators/patch.md +44 -0
  123. package/docs/docs/decorators/post.html +150 -0
  124. package/docs/docs/decorators/post.md +134 -0
  125. package/docs/docs/decorators/publish.html +74 -0
  126. package/docs/docs/decorators/publish.md +56 -0
  127. package/docs/docs/decorators/put.html +83 -0
  128. package/docs/docs/decorators/put.md +51 -0
  129. package/docs/docs/decorators/subscribe.html +91 -0
  130. package/docs/docs/decorators/subscribe.md +87 -0
  131. package/docs/docs/decorators/wait-for-ancestors.html +82 -0
  132. package/docs/docs/decorators/wait-for-ancestors.md +76 -0
  133. package/docs/docs/directives/sub.html +79 -0
  134. package/docs/docs/directives/sub.md +75 -0
  135. package/docs/docs/directives/t.html +91 -0
  136. package/docs/docs/directives/t.md +73 -0
  137. package/docs/docs/getting-started/ai-agents.html +174 -0
  138. package/{src/docs/_getting-started → docs/docs/getting-started}/ai-agents.md +3 -3
  139. package/docs/docs/getting-started/components.html +27 -0
  140. package/docs/docs/getting-started/create-a-component.html +108 -0
  141. package/{src/docs/_getting-started → docs/docs/getting-started}/create-a-component.md +3 -6
  142. package/docs/docs/getting-started/dataFlow.html +174 -0
  143. package/{src/docs/_core-concept → docs/docs/getting-started}/dataFlow.md +17 -18
  144. package/docs/docs/getting-started/installation.html +69 -0
  145. package/docs/docs/getting-started/installation.md +36 -0
  146. package/docs/docs/getting-started/my-first-component.html +180 -0
  147. package/{src/docs/_getting-started → docs/docs/getting-started}/my-first-component.md +5 -14
  148. package/docs/docs/getting-started/start.html +47 -0
  149. package/{src/docs/_getting-started → docs/docs/getting-started}/start.md +1 -13
  150. package/docs/docs/getting-started/theming.html +334 -0
  151. package/docs/docs/index.html +99 -0
  152. package/docs/docs/misc/api-configuration.html +149 -0
  153. package/{src/docs/_misc → docs/docs/misc}/api-configuration.md +10 -12
  154. package/docs/docs/misc/dataProviderKey.html +136 -0
  155. package/{src/docs/_misc → docs/docs/misc}/dataProviderKey.md +4 -4
  156. package/docs/docs/misc/docs-mock-api.html +155 -0
  157. package/{src/docs/_misc → docs/docs/misc}/docs-mock-api.md +12 -13
  158. package/docs/docs/misc/dynamic-path.html +181 -0
  159. package/{src/docs/_misc → docs/docs/misc}/dynamic-path.md +8 -8
  160. package/docs/docs/misc/endpoint.html +51 -0
  161. package/{src/docs/_misc → docs/docs/misc}/endpoint.md +8 -8
  162. package/docs/docs/misc/html-integration.html +45 -0
  163. package/{src/docs/_misc → docs/docs/misc}/html-integration.md +4 -5
  164. package/docs/docs-mock-api-sw.js +58 -223
  165. package/docs/docs-mock-api-sw.js.map +4 -4
  166. package/docs/hubs/decorators.html +443 -0
  167. package/docs/hubs/form-components.html +404 -0
  168. package/docs/hubs/remote-data.html +371 -0
  169. package/docs/img/archive/concorde-001-2cv.webp +0 -0
  170. package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  171. package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
  172. package/docs/img/archive/credits.json +28 -0
  173. package/docs/img/concorde/plane_01.jpg +0 -0
  174. package/docs/img/concorde/plane_02.jpg +0 -0
  175. package/docs/img/concorde/plane_03.jpg +0 -0
  176. package/docs/img/concorde/plane_04.jpg +0 -0
  177. package/docs/img/concorde/plane_05.jpg +0 -0
  178. package/docs/img/concorde/plane_06.jpg +0 -0
  179. package/docs/img/concorde/plane_07.jpg +0 -0
  180. package/docs/img/concorde/plane_08.jpg +0 -0
  181. package/docs/img/concorde/plane_09.jpg +0 -0
  182. package/docs/img/concorde/plane_10.jpg +0 -0
  183. package/docs/img/concorde/plane_11.jpg +0 -0
  184. package/docs/img/concorde/plane_12.jpg +0 -0
  185. package/docs/img/concorde/plane_13.jpg +0 -0
  186. package/docs/index.html +95 -68
  187. package/docs/index.md +22 -0
  188. package/docs/llms-full.txt +5795 -0
  189. package/docs/llms.txt +106 -0
  190. package/docs/robots.txt +11 -10
  191. package/docs/sitemap.xml +237 -0
  192. package/docs/src/core/components/functional/date/date.md +150 -0
  193. package/docs/src/core/components/functional/fetch/fetch.md +108 -0
  194. package/docs/src/core/components/functional/if/if.md +34 -0
  195. package/docs/src/core/components/functional/jsonata/jsonata.md +61 -0
  196. package/docs/src/core/components/functional/list/list.md +121 -0
  197. package/docs/src/core/components/functional/mix/mix.md +46 -0
  198. package/docs/src/core/components/functional/queue/queue.md +51 -0
  199. package/docs/src/core/components/functional/router/router.md +93 -0
  200. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
  201. package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
  202. package/docs/src/core/components/functional/sdui/default-library.json +108 -0
  203. package/docs/src/core/components/functional/sdui/example.json +32 -0
  204. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
  205. package/docs/src/core/components/functional/sdui/sdui.md +307 -0
  206. package/docs/src/core/components/functional/states/states.md +112 -0
  207. package/docs/src/core/components/functional/submit/submit.md +106 -0
  208. package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
  209. package/docs/src/core/components/functional/translation/translation.md +38 -0
  210. package/docs/src/core/components/functional/value/value.md +47 -0
  211. package/docs/src/core/components/ui/alert/alert.md +186 -0
  212. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  213. package/docs/src/core/components/ui/badge/badge.md +181 -0
  214. package/docs/src/core/components/ui/button/button.md +216 -0
  215. package/docs/src/core/components/ui/captcha/captcha.md +56 -0
  216. package/docs/src/core/components/ui/card/card.md +215 -0
  217. package/docs/src/core/components/ui/divider/divider.md +126 -0
  218. package/docs/src/core/components/ui/form/checkbox/checkbox.md +125 -0
  219. package/docs/src/core/components/ui/form/fieldset/fieldset.md +161 -0
  220. package/docs/src/core/components/ui/form/form-actions/form-actions.md +98 -0
  221. package/docs/src/core/components/ui/form/form-layout/form-layout.md +109 -0
  222. package/docs/src/core/components/ui/form/input/input.md +142 -0
  223. package/docs/src/core/components/ui/form/radio/radio.md +78 -0
  224. package/docs/src/core/components/ui/form/select/select.md +86 -0
  225. package/docs/src/core/components/ui/form/switch/switch.md +80 -0
  226. package/docs/src/core/components/ui/form/textarea/textarea.md +82 -0
  227. package/docs/src/core/components/ui/group/group.md +77 -0
  228. package/docs/src/core/components/ui/icon/icon.md +214 -0
  229. package/docs/src/core/components/ui/icon/icons.json +1 -0
  230. package/docs/src/core/components/ui/image/image.md +167 -0
  231. package/docs/src/core/components/ui/link/link.md +81 -0
  232. package/docs/src/core/components/ui/loader/loader.md +87 -0
  233. package/docs/src/core/components/ui/menu/menu.md +370 -0
  234. package/docs/src/core/components/ui/modal/modal.md +211 -0
  235. package/docs/src/core/components/ui/pop/pop.md +216 -0
  236. package/docs/src/core/components/ui/progress/progress.md +109 -0
  237. package/docs/src/core/components/ui/table/table.md +267 -0
  238. package/docs/src/core/components/ui/theme/theme.md +97 -0
  239. package/docs/src/core/components/ui/toast/toast.md +147 -0
  240. package/docs/src/core/components/ui/tooltip/tooltip.md +89 -0
  241. package/docs/src/docs/decorators/ancestor-attribute.md +59 -0
  242. package/docs/src/docs/decorators/auto-subscribe.md +40 -0
  243. package/docs/src/docs/decorators/bind.md +77 -0
  244. package/docs/src/docs/decorators/get.md +160 -0
  245. package/docs/src/docs/decorators/handle.md +119 -0
  246. package/docs/src/docs/decorators/on-assign.md +63 -0
  247. package/docs/src/docs/decorators/patch.md +44 -0
  248. package/docs/src/docs/decorators/post.md +134 -0
  249. package/docs/src/docs/decorators/publish.md +56 -0
  250. package/docs/src/docs/decorators/put.md +51 -0
  251. package/docs/src/docs/decorators/subscribe.md +87 -0
  252. package/docs/src/docs/decorators/wait-for-ancestors.md +76 -0
  253. package/docs/src/docs/directives/sub.md +75 -0
  254. package/docs/src/docs/directives/t.md +73 -0
  255. package/docs/src/docs/getting-started/ai-agents.md +76 -0
  256. package/docs/src/docs/getting-started/components.md +5 -0
  257. package/docs/src/docs/getting-started/create-a-component.md +136 -0
  258. package/docs/src/docs/getting-started/dataFlow.md +87 -0
  259. package/docs/src/docs/getting-started/installation.md +36 -0
  260. package/docs/src/docs/getting-started/my-first-component.md +227 -0
  261. package/docs/src/docs/getting-started/start.md +35 -0
  262. package/docs/src/docs/getting-started/theming.md +253 -0
  263. package/docs/src/docs/misc/api-configuration.md +79 -0
  264. package/docs/src/docs/misc/dataProviderKey.md +168 -0
  265. package/docs/src/docs/misc/docs-mock-api.md +62 -0
  266. package/docs/src/docs/misc/dynamic-path.md +71 -0
  267. package/docs/src/docs/misc/endpoint.md +45 -0
  268. package/docs/src/docs/misc/html-integration.md +14 -0
  269. package/docs/src/docs/search/docs-search.json +10287 -0
  270. package/docs/src/tag-list.json +1 -0
  271. package/docs/src/tsconfig-model.json +23 -0
  272. package/docs/src/tsconfig.json +1353 -0
  273. package/index.html +68 -5
  274. package/package.json +1 -1
  275. package/public/docs-mock-api-sw.js +58 -223
  276. package/public/docs-mock-api-sw.js.map +4 -4
  277. package/public/img/concorde/plane_01.jpg +0 -0
  278. package/public/img/concorde/plane_02.jpg +0 -0
  279. package/public/img/concorde/plane_03.jpg +0 -0
  280. package/public/img/concorde/plane_04.jpg +0 -0
  281. package/public/img/concorde/plane_05.jpg +0 -0
  282. package/public/img/concorde/plane_06.jpg +0 -0
  283. package/public/img/concorde/plane_07.jpg +0 -0
  284. package/public/img/concorde/plane_08.jpg +0 -0
  285. package/public/img/concorde/plane_09.jpg +0 -0
  286. package/public/img/concorde/plane_10.jpg +0 -0
  287. package/public/img/concorde/plane_11.jpg +0 -0
  288. package/public/img/concorde/plane_12.jpg +0 -0
  289. package/public/img/concorde/plane_13.jpg +0 -0
  290. package/public/robots.txt +11 -10
  291. package/scripts/docs-markdown-vite-plugin.ts +37 -0
  292. package/scripts/docs-public-url.mjs +50 -0
  293. package/scripts/docs.htaccess +75 -0
  294. package/scripts/generate-crawl-docs.mjs +207 -116
  295. package/scripts/generate-crawl-docs.test.mjs +124 -0
  296. package/scripts/post-build-docs.js +34 -50
  297. package/src/core/components/functional/date/date.md +91 -231
  298. package/src/core/components/functional/fetch/fetch.md +66 -83
  299. package/src/core/components/functional/if/if.md +28 -3
  300. package/src/core/components/functional/jsonata/jsonata.md +42 -37
  301. package/src/core/components/functional/list/list.md +99 -43
  302. package/src/core/components/functional/mix/mix.md +31 -26
  303. package/src/core/components/functional/queue/queue.demo.ts +10 -7
  304. package/src/core/components/functional/queue/queue.md +40 -61
  305. package/src/core/components/functional/router/router.demo.ts +16 -16
  306. package/src/core/components/functional/router/router.md +64 -65
  307. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  308. package/src/core/components/functional/sdui/component-catalog.json +1 -1
  309. package/src/core/components/functional/sdui/example.json +19 -86
  310. package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  311. package/src/core/components/functional/sdui/sdui.md +187 -358
  312. package/src/core/components/functional/states/states.demo.ts +21 -22
  313. package/src/core/components/functional/states/states.md +86 -61
  314. package/src/core/components/functional/states/states.ts +1 -1
  315. package/src/core/components/functional/submit/submit.md +64 -72
  316. package/src/core/components/functional/translation/translation.md +38 -0
  317. package/src/core/components/functional/value/value.md +34 -22
  318. package/src/core/components/ui/alert/alert.md +48 -58
  319. package/src/core/components/ui/badge/badge.md +27 -34
  320. package/src/core/components/ui/button/button.md +139 -106
  321. package/src/core/components/ui/captcha/captcha.md +17 -32
  322. package/src/core/components/ui/card/card.md +6 -6
  323. package/src/core/components/ui/divider/divider.md +8 -11
  324. package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  325. package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
  326. package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
  327. package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
  328. package/src/core/components/ui/form/input/input.md +95 -95
  329. package/src/core/components/ui/form/radio/radio.md +55 -34
  330. package/src/core/components/ui/form/select/select.md +60 -45
  331. package/src/core/components/ui/form/switch/switch.md +57 -34
  332. package/src/core/components/ui/form/textarea/textarea.md +55 -38
  333. package/src/core/components/ui/group/group.md +35 -33
  334. package/src/core/components/ui/icon/icon.md +4 -4
  335. package/src/core/components/ui/image/image.md +41 -107
  336. package/src/core/components/ui/link/link.md +6 -6
  337. package/src/core/components/ui/loader/loader.md +30 -55
  338. package/src/core/components/ui/menu/menu.md +27 -27
  339. package/src/core/components/ui/modal/modal.md +72 -96
  340. package/src/core/components/ui/pop/pop.md +80 -158
  341. package/src/core/components/ui/progress/progress.md +2 -2
  342. package/src/core/components/ui/table/table.md +91 -255
  343. package/src/core/components/ui/theme/theme.md +11 -36
  344. package/src/core/components/ui/toast/toast.md +48 -117
  345. package/src/core/components/ui/tooltip/tooltip.md +27 -62
  346. package/src/core/utils/LocationHandler.spec.ts +80 -0
  347. package/src/core/utils/LocationHandler.ts +5 -9
  348. package/src/docs/components/docs-demo-sources.ts +55 -140
  349. package/src/docs/components/docs-lit-demo.ts +1 -3
  350. package/src/docs/components/docs-source-link.ts +0 -82
  351. package/src/docs/decorators/ancestor-attribute.md +59 -0
  352. package/src/docs/decorators/auto-subscribe.md +40 -0
  353. package/src/docs/decorators/bind.md +77 -0
  354. package/src/docs/decorators/get.md +160 -0
  355. package/src/docs/decorators/handle.md +119 -0
  356. package/src/docs/decorators/on-assign.md +63 -0
  357. package/src/docs/decorators/patch.md +44 -0
  358. package/src/docs/decorators/post.md +134 -0
  359. package/src/docs/decorators/publish.md +56 -0
  360. package/src/docs/decorators/put.md +51 -0
  361. package/src/docs/decorators/subscribe.md +87 -0
  362. package/src/docs/decorators/wait-for-ancestors.md +76 -0
  363. package/src/docs/directives/sub.md +75 -0
  364. package/src/docs/directives/t.md +73 -0
  365. package/src/docs/docs-location.spec.ts +46 -0
  366. package/src/docs/docs-location.ts +123 -32
  367. package/src/docs/docs.ts +1 -2
  368. package/src/docs/example/decorators-demo-bind-demos.ts +81 -116
  369. package/src/docs/example/decorators-demo-geo.ts +30 -19
  370. package/src/docs/example/decorators-demo-post.ts +88 -186
  371. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
  372. package/src/docs/example/decorators-demo.ts +85 -98
  373. package/src/docs/example/docs-api-config-demos.ts +19 -20
  374. package/src/docs/example/docs-flight-demos.ts +147 -0
  375. package/src/docs/example/docs-jsonata-demos.ts +52 -52
  376. package/src/docs/example/docs-list-demos.ts +43 -123
  377. package/src/docs/example/docs-provider-keys.ts +21 -28
  378. package/src/docs/example/docs-queue-demos.ts +37 -77
  379. package/src/docs/example/docs-router-demos.ts +20 -25
  380. package/src/docs/example/docs-submit-demos.ts +48 -48
  381. package/src/docs/example/docs-toggle-demos.ts +4 -3
  382. package/src/docs/getting-started/ai-agents.md +76 -0
  383. package/src/docs/getting-started/components.md +5 -0
  384. package/src/docs/getting-started/create-a-component.md +136 -0
  385. package/src/docs/getting-started/dataFlow.md +87 -0
  386. package/src/docs/getting-started/installation.md +36 -0
  387. package/src/docs/getting-started/my-first-component.md +227 -0
  388. package/src/docs/getting-started/start.md +35 -0
  389. package/src/docs/getting-started/theming.md +253 -0
  390. package/src/docs/header/header.ts +11 -6
  391. package/src/docs/home/catalog.ts +1 -1
  392. package/src/docs/home/home.ts +17 -10
  393. package/src/docs/layout.ts +12 -13
  394. package/src/docs/misc/api-configuration.md +79 -0
  395. package/src/docs/misc/dataProviderKey.md +168 -0
  396. package/src/docs/misc/docs-mock-api.md +62 -0
  397. package/src/docs/misc/dynamic-path.md +71 -0
  398. package/src/docs/misc/endpoint.md +45 -0
  399. package/src/docs/misc/html-integration.md +14 -0
  400. package/src/docs/mock-api/api-config-mock.ts +5 -0
  401. package/src/docs/mock-api/fixtures.ts +0 -278
  402. package/src/docs/mock-api/flights.ts +89 -0
  403. package/src/docs/mock-api/router.ts +3 -4
  404. package/src/docs/mock-api/urls.ts +1 -2
  405. package/src/docs/navigation/navigation.ts +82 -103
  406. package/src/docs/navigation/toc.ts +7 -4
  407. package/src/docs/search/docs-search.json +2845 -5110
  408. package/src/docs/search/markdown-renderer.ts +25 -7
  409. package/src/docs/search/page.ts +9 -6
  410. package/src/docs/search/search.ts +154 -122
  411. package/vite.config.mts +11 -2
  412. package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
  413. package/docs/assets/index-CD4WyL6o.css +0 -1
  414. package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
  415. package/src/docs/_core-concept/overview.md +0 -57
  416. package/src/docs/_core-concept/subscriber.md +0 -75
  417. package/src/docs/_decorators/ancestor-attribute.md +0 -128
  418. package/src/docs/_decorators/auto-subscribe.md +0 -202
  419. package/src/docs/_decorators/bind.md +0 -167
  420. package/src/docs/_decorators/get.md +0 -162
  421. package/src/docs/_decorators/handle.md +0 -175
  422. package/src/docs/_decorators/on-assign.md +0 -390
  423. package/src/docs/_decorators/patch.md +0 -70
  424. package/src/docs/_decorators/post.md +0 -146
  425. package/src/docs/_decorators/publish.md +0 -55
  426. package/src/docs/_decorators/put.md +0 -70
  427. package/src/docs/_decorators/subscribe.md +0 -100
  428. package/src/docs/_decorators/wait-for-ancestors.md +0 -163
  429. package/src/docs/_directives/sub.md +0 -91
  430. package/src/docs/_getting-started/concorde-manual-install.md +0 -133
  431. package/src/docs/_getting-started/concorde-outside.md +0 -33
  432. package/src/docs/_getting-started/my-first-subscriber.md +0 -120
  433. package/src/docs/_getting-started/pubsub.md +0 -37
  434. package/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  435. package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
  436. package/src/docs/example/docs-joke-demos.ts +0 -297
  437. /package/{src/docs/_getting-started → docs/docs/getting-started}/components.md +0 -0
  438. /package/{src/docs/_getting-started → docs/docs/getting-started}/theming.md +0 -0
@@ -0,0 +1,47 @@
1
+ # Value
2
+
3
+ **`sonic-value`** prints one value from a data provider and updates when it changes. Set `dataProvider` (or inherit it from an ancestor) and point `key` at the field to show.
4
+
5
+ ## Basic example
6
+
7
+ The form below writes `cabin` into the `value-checkin` provider; `sonic-value` reads it back.
8
+
9
+ <sonic-code>
10
+ <template>
11
+ <div formDataProvider="value-checkin" class="flex flex-wrap gap-4 mb-3">
12
+ <sonic-radio name="cabin" value="Economy" checked>Economy</sonic-radio>
13
+ <sonic-radio name="cabin" value="Business">Business</sonic-radio>
14
+ <sonic-radio name="cabin" value="First">First</sonic-radio>
15
+ </div>
16
+ <p>Cabin: <sonic-value dataProvider="value-checkin" key="cabin"></sonic-value></p>
17
+ </template>
18
+ </sonic-code>
19
+
20
+ The value is rendered as HTML, not escaped: only display trusted data. When the value is an object or is missing, nothing is printed.
21
+
22
+ ## Nested key
23
+
24
+ `key` accepts a dot path, array indexes included.
25
+
26
+ <sonic-code>
27
+ <template>
28
+ <sonic-subscriber dataProvider="value-passenger" props='{"passenger":{"name":"Ada Lindqvist","seats":[{"number":"2A"}]}}'></sonic-subscriber>
29
+ <p>
30
+ <sonic-value dataProvider="value-passenger" key="passenger.name"></sonic-value>
31
+ is seated in
32
+ <sonic-value dataProvider="value-passenger" key="passenger.seats.0.number"></sonic-value>
33
+ </p>
34
+ </template>
35
+ </sonic-code>
36
+
37
+ ## API reference
38
+
39
+ | Attribute | Values | Description |
40
+ |-----------|--------|-------------|
41
+ | `dataProvider` | string | Provider to read. Inherited from the closest ancestor when omitted |
42
+ | `key` | string (required) | Dot path of the value in the provider |
43
+
44
+ | Slot | Description |
45
+ |------|-------------|
46
+ | *(default)* | Content rendered after the value |
47
+ | `prefix` · `suffix` | Rendered around the default slot, after the value |
@@ -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`**.