@supersoniks/concorde 5.0.4 → 5.0.5

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 (208) hide show
  1. package/.agents/skills/concorde-component-docs/SKILL.md +194 -0
  2. package/.agents/skills/concorde-component-docs/template.md +45 -0
  3. package/ai/cursor/rules/concorde-theme.mdc +1 -1
  4. package/ai/cursor/rules/concorde.mdc +1 -1
  5. package/ai/skills/concorde/SKILL.md +1 -1
  6. package/ai/skills/concorde-theme/SKILL.md +21 -10
  7. package/build-infos.json +1 -1
  8. package/concorde-core.bundle.js +528 -534
  9. package/concorde-core.es.js +4257 -4212
  10. package/dist/concorde-core.bundle.js +528 -534
  11. package/dist/concorde-core.es.js +4257 -4212
  12. package/dist/docs-mock-api-sw.js +2 -0
  13. package/dist/docs-mock-api-sw.js.map +2 -2
  14. package/docs/assets/index-CD4WyL6o.css +1 -0
  15. package/docs/assets/{index-D8MVWqY6.js → index-wVZpLVYW.js} +1221 -1350
  16. package/docs/crawl/core/components/ui/alert/alert.html +172 -71
  17. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +113 -5
  18. package/docs/crawl/core/components/ui/badge/badge.html +157 -79
  19. package/docs/crawl/core/components/ui/button/button.html +1 -0
  20. package/docs/crawl/core/components/ui/captcha/captcha.html +90 -8
  21. package/docs/crawl/core/components/ui/card/card.html +222 -68
  22. package/docs/crawl/core/components/ui/divider/divider.html +117 -31
  23. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +232 -101
  24. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +95 -52
  25. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +97 -38
  26. package/docs/crawl/core/components/ui/form/input/input.html +3 -3
  27. package/docs/crawl/core/components/ui/form/textarea/textarea.html +3 -3
  28. package/docs/crawl/core/components/ui/group/group.html +60 -38
  29. package/docs/crawl/core/components/ui/icon/icon.html +136 -47
  30. package/docs/crawl/core/components/ui/image/image.html +244 -56
  31. package/docs/crawl/core/components/ui/link/link.html +67 -9
  32. package/docs/crawl/core/components/ui/loader/loader.html +97 -23
  33. package/docs/crawl/core/components/ui/menu/menu.html +162 -90
  34. package/docs/crawl/core/components/ui/modal/modal.html +275 -50
  35. package/docs/crawl/core/components/ui/pop/pop.html +260 -66
  36. package/docs/crawl/core/components/ui/progress/progress.html +103 -30
  37. package/docs/crawl/core/components/ui/table/table.html +303 -171
  38. package/docs/crawl/core/components/ui/theme/theme.html +131 -0
  39. package/docs/crawl/core/components/ui/toast/toast.html +170 -59
  40. package/docs/crawl/core/components/ui/tooltip/tooltip.html +90 -29
  41. package/docs/crawl/docs/_decorators/ancestor-attribute.html +3 -2
  42. package/docs/crawl/docs/_getting-started/concorde-outside.html +3 -3
  43. package/docs/crawl/docs/_getting-started/start.html +1 -1
  44. package/docs/crawl/docs/_getting-started/theming.html +311 -63
  45. package/docs/crawl/hubs/form-components.html +75 -53
  46. package/docs/crawl/index.html +7 -6
  47. package/docs/docs-mock-api-sw.js +2 -0
  48. package/docs/docs-mock-api-sw.js.map +2 -2
  49. package/docs/index.html +9 -7
  50. package/docs/llms-full.txt +1703 -456
  51. package/docs/llms.txt +25 -32
  52. package/docs/sitemap.xml +3 -0
  53. package/docs/src/core/components/functional/fetch/fetch.md +0 -0
  54. package/docs/src/core/components/functional/if/if.md +0 -0
  55. package/docs/src/core/components/functional/list/list.md +0 -0
  56. package/docs/src/core/components/functional/router/router.md +0 -0
  57. package/docs/src/core/components/functional/sdui/sdui.md +0 -0
  58. package/docs/src/core/components/functional/states/states.md +0 -0
  59. package/docs/src/core/components/functional/submit/submit.md +0 -0
  60. package/docs/src/core/components/ui/alert/alert.md +147 -72
  61. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  62. package/docs/src/core/components/ui/badge/badge.md +141 -80
  63. package/docs/src/core/components/ui/button/button.md +1 -0
  64. package/docs/src/core/components/ui/captcha/captcha.md +65 -6
  65. package/docs/src/core/components/ui/card/card.md +183 -65
  66. package/docs/src/core/components/ui/divider/divider.md +107 -13
  67. package/docs/src/core/components/ui/form/fieldset/fieldset.md +175 -99
  68. package/docs/src/core/components/ui/form/form-actions/form-actions.md +75 -52
  69. package/docs/src/core/components/ui/form/form-layout/form-layout.md +109 -34
  70. package/docs/src/core/components/ui/form/input/input.md +1 -1
  71. package/docs/src/core/components/ui/form/radio/radio.md +0 -0
  72. package/docs/src/core/components/ui/form/select/select.md +0 -0
  73. package/docs/src/core/components/ui/form/switch/switch.md +0 -0
  74. package/docs/src/core/components/ui/form/textarea/textarea.md +1 -1
  75. package/docs/src/core/components/ui/group/group.md +36 -36
  76. package/docs/src/core/components/ui/icon/icon.md +132 -43
  77. package/docs/src/core/components/ui/image/image.md +179 -53
  78. package/docs/src/core/components/ui/link/link.md +45 -7
  79. package/docs/src/core/components/ui/loader/loader.md +79 -22
  80. package/docs/src/core/components/ui/menu/menu.md +133 -92
  81. package/docs/src/core/components/ui/modal/modal.md +163 -47
  82. package/docs/src/core/components/ui/pop/pop.md +262 -64
  83. package/docs/src/core/components/ui/progress/progress.md +76 -30
  84. package/docs/src/core/components/ui/table/table.md +147 -171
  85. package/docs/src/core/components/ui/theme/theme.md +122 -0
  86. package/docs/src/core/components/ui/toast/toast.md +108 -58
  87. package/docs/src/core/components/ui/tooltip/tooltip.md +68 -26
  88. package/docs/src/docs/_core-concept/subscriber.md +0 -0
  89. package/docs/src/docs/_decorators/ancestor-attribute.md +3 -2
  90. package/docs/src/docs/_getting-started/concorde-outside.md +3 -3
  91. package/docs/src/docs/_getting-started/my-first-subscriber.md +0 -0
  92. package/docs/src/docs/_getting-started/pubsub.md +0 -0
  93. package/docs/src/docs/_getting-started/start.md +1 -1
  94. package/docs/src/docs/_getting-started/theming.md +223 -61
  95. package/docs/src/docs/search/docs-search.json +3083 -348
  96. package/docs/src/tsconfig.json +63 -3
  97. package/gitlab/job_tests.sh +0 -0
  98. package/index.html +4 -2
  99. package/package.json +7 -1
  100. package/public/docs-mock-api-sw.js +2 -0
  101. package/public/docs-mock-api-sw.js.map +2 -2
  102. package/scripts/post-build-docs.js +0 -0
  103. package/scripts/post-build.mjs +0 -0
  104. package/src/core/components/functional/fetch/fetch.md +0 -0
  105. package/src/core/components/functional/if/if.md +0 -0
  106. package/src/core/components/functional/list/list.demo.ts +0 -0
  107. package/src/core/components/functional/list/list.md +0 -0
  108. package/src/core/components/functional/router/router.md +0 -0
  109. package/src/core/components/functional/router/router.ts +0 -0
  110. package/src/core/components/functional/sdui/sdui.md +0 -0
  111. package/src/core/components/functional/states/states.md +0 -0
  112. package/src/core/components/functional/submit/submit.md +0 -0
  113. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  114. package/src/core/components/ui/_css/align.ts +1 -0
  115. package/src/core/components/ui/_css/size.ts +0 -0
  116. package/src/core/components/ui/_css/type.ts +86 -8
  117. package/src/core/components/ui/_i18n/ui-aria-labels.ts +8 -0
  118. package/src/core/components/ui/alert/alert.md +21 -2
  119. package/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  120. package/src/core/components/ui/badge/badge.md +19 -6
  121. package/src/core/components/ui/badge/badge.ts +8 -9
  122. package/src/core/components/ui/button/button.ts +5 -15
  123. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  124. package/src/core/components/ui/captcha/captcha.md +65 -6
  125. package/src/core/components/ui/card/card.md +73 -10
  126. package/src/core/components/ui/card/card.ts +24 -22
  127. package/src/core/components/ui/divider/divider.md +107 -13
  128. package/src/core/components/ui/divider/divider.ts +40 -33
  129. package/src/core/components/ui/form/fieldset/fieldset.md +175 -99
  130. package/src/core/components/ui/form/fieldset/fieldset.ts +15 -28
  131. package/src/core/components/ui/form/fieldset/legend.ts +13 -13
  132. package/src/core/components/ui/form/form-actions/form-actions.md +75 -52
  133. package/src/core/components/ui/form/form-actions/form-actions.ts +7 -5
  134. package/src/core/components/ui/form/form-layout/form-layout.md +109 -34
  135. package/src/core/components/ui/form/form-layout/form-layout.ts +27 -24
  136. package/src/core/components/ui/form/radio/radio.md +0 -0
  137. package/src/core/components/ui/form/select/select.md +0 -0
  138. package/src/core/components/ui/form/switch/switch.md +0 -0
  139. package/src/core/components/ui/form/textarea/textarea.ts +4 -3
  140. package/src/core/components/ui/group/group.md +36 -36
  141. package/src/core/components/ui/group/group.ts +5 -10
  142. package/src/core/components/ui/icon/icon.md +132 -43
  143. package/src/core/components/ui/image/image.md +35 -3
  144. package/src/core/components/ui/link/link.md +43 -5
  145. package/src/core/components/ui/loader/loader.md +79 -22
  146. package/src/core/components/ui/loader/loader.ts +67 -27
  147. package/src/core/components/ui/loader/styles/fixed.ts +6 -11
  148. package/src/core/components/ui/menu/menu.md +133 -92
  149. package/src/core/components/ui/menu/menu.ts +53 -58
  150. package/src/core/components/ui/modal/modal.md +163 -47
  151. package/src/core/components/ui/modal/modal.ts +2 -4
  152. package/src/core/components/ui/pop/pop.md +217 -123
  153. package/src/core/components/ui/pop/pop.ts +0 -1
  154. package/src/core/components/ui/progress/progress.md +76 -30
  155. package/src/core/components/ui/progress/progress.ts +25 -56
  156. package/src/core/components/ui/table/table-caption.ts +2 -2
  157. package/src/core/components/ui/table/table-tbody.ts +3 -3
  158. package/src/core/components/ui/table/table-td.ts +23 -18
  159. package/src/core/components/ui/table/table-th.ts +8 -8
  160. package/src/core/components/ui/table/table-tr.ts +4 -4
  161. package/src/core/components/ui/table/table.md +147 -171
  162. package/src/core/components/ui/table/table.ts +20 -19
  163. package/src/core/components/ui/theme/theme-collection/auto.ts +15 -0
  164. package/src/core/components/ui/theme/theme-collection/core-variables.ts +8 -31
  165. package/src/core/components/ui/theme/theme-collection/dark.ts +1 -7
  166. package/src/core/components/ui/theme/theme-collection/light.ts +30 -26
  167. package/src/core/components/ui/theme/theme.md +122 -0
  168. package/src/core/components/ui/theme/theme.ts +30 -7
  169. package/src/core/components/ui/toast/toast-item.ts +6 -9
  170. package/src/core/components/ui/toast/toast.md +108 -58
  171. package/src/core/components/ui/toast/types.ts +1 -1
  172. package/src/core/components/ui/tooltip/tooltip.md +68 -26
  173. package/src/core/mixins/Subscriber.ts +0 -0
  174. package/src/core/utils/DataBindObserver.ts +0 -0
  175. package/src/core/utils/Objects.ts +0 -0
  176. package/src/core/utils/route.ts +0 -0
  177. package/src/docs/_core-concept/subscriber.md +0 -0
  178. package/src/docs/_getting-started/my-first-subscriber.md +0 -0
  179. package/src/docs/_getting-started/pubsub.md +0 -0
  180. package/src/docs/_getting-started/start.md +1 -1
  181. package/src/docs/_getting-started/theming.md +223 -61
  182. package/src/docs/code.ts +125 -58
  183. package/src/docs/example/users.ts +0 -0
  184. package/src/docs/header/header.ts +62 -54
  185. package/src/docs/mock-api/router.ts +2 -0
  186. package/src/docs/navigation/navigation.ts +6 -3
  187. package/src/docs/search/docs-search.json +2504 -399
  188. package/src/docs/search/markdown-renderer.ts +6 -6
  189. package/src/docs/search/page.ts +0 -0
  190. package/src/docs/search/search.ts +4 -4
  191. package/src/docs/tailwind/css/tailwind.css +6 -5
  192. package/src/tsconfig.json +18 -0
  193. package/src/tsconfig.tsbuildinfo +1 -1
  194. package/tailwind.config.js +19 -0
  195. package/.github/workflows/ci.yml +0 -21
  196. package/.github-export-ignore +0 -30
  197. package/CONTRIBUTING.md +0 -59
  198. package/DEV.md +0 -54
  199. package/LICENSE +0 -21
  200. package/OPEN_SOURCE_CHECKPOINT.md +0 -133
  201. package/docs/assets/index-DiD0qYvE.css +0 -1
  202. package/docs/src/tsconfig.declarations.json +0 -22
  203. package/docs/src/tsconfig.emit.json +0 -23
  204. package/gitlab/job_github_mirror.sh +0 -39
  205. package/scripts/github-export.mjs +0 -150
  206. package/src/css.d.ts +0 -19
  207. package/src/tsconfig.declarations.json +0 -22
  208. package/src/tsconfig.emit.json +0 -23
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>Alert — Concorde</title>
7
- <meta name="description" content="This address is already in use. Lorem ipsum dolor sit amet.">
8
- <meta name="keywords" content="Concorde, supersoniks, core/components/ui/alert/alert, alert, Alert, UI component, sonic-alert, web component">
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
9
  <meta name="concorde-doc-id" content="core/components/ui/alert/alert">
10
10
  <link rel="canonical" href="https://concorde.supersoniks.org/crawl/core/components/ui/alert/alert.html">
11
11
  </head>
@@ -15,94 +15,195 @@
15
15
  </header>
16
16
  <main>
17
17
  <article>
18
- <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Alert</strong>. This address is already in use. Lorem ipsum dolor sit amet. <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. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/alert/alert.html">https://concorde.supersoniks.org/crawl/core/components/ui/alert/alert.html</a>.</span></p>
18
+ <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/crawl/core/components/ui/alert/alert.html">https://concorde.supersoniks.org/crawl/core/components/ui/alert/alert.html</a>.</span></p>
19
19
  <h1 id="alert">Alert</h1>
20
+ <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>
21
+ <h2 id="basic-example">Basic example</h2>
20
22
  <pre><code>&lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot; text=&quot;This address is already in use&quot; background&gt;&lt;/sonic-alert&gt;
21
23
  </code></pre>
22
24
  <h2 id="status">Status</h2>
25
+ <p>Color and icon follow <code>status</code>. With no <code>status</code>, behavior is <code>default</code>.</p>
23
26
  <pre><code>&lt;div class=&quot;grid gap-4&quot;&gt;
24
- &lt;sonic-alert label=&quot;Default&quot;&gt; This address is already in use. &lt;/sonic-alert&gt;
25
- &lt;sonic-alert status=&quot;success&quot; label=&quot;Success&quot;&gt; This address is already in use. &lt;/sonic-alert&gt;
26
- &lt;sonic-alert status=&quot;error&quot; label=&quot;Error&quot;&gt; This address is already in use. &lt;/sonic-alert&gt;
27
- &lt;sonic-alert status=&quot;warning&quot; label=&quot;Warning&quot;&gt; This address is already in use. &lt;/sonic-alert&gt;
28
- &lt;sonic-alert status=&quot;info&quot; label=&quot;Info&quot;&gt; This address is already in use. &lt;/sonic-alert&gt;
29
- &lt;/div&gt;
27
+ &lt;sonic-alert label=&quot;Default&quot;&gt;This address is already in use.&lt;/sonic-alert&gt;
28
+ &lt;sonic-alert status=&quot;success&quot; label=&quot;Success&quot;&gt;This address is already in use.&lt;/sonic-alert&gt;
29
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Error&quot;&gt;This address is already in use.&lt;/sonic-alert&gt;
30
+ &lt;sonic-alert status=&quot;warning&quot; label=&quot;Warning&quot;&gt;This address is already in use.&lt;/sonic-alert&gt;
31
+ &lt;sonic-alert status=&quot;info&quot; label=&quot;Info&quot;&gt;This address is already in use.&lt;/sonic-alert&gt;
32
+ &lt;/div&gt;
33
+ </code></pre>
34
+ <h2 id="accessibility-announce">Accessibility (<code>announce</code>)</h2>
35
+ <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>
36
+ <p><code>sonic-alert-messages</code> sets <code>announce</code> on every rendered alert.</p>
37
+ <pre><code>&lt;sonic-alert announce status=&quot;success&quot; label=&quot;Saved&quot; text=&quot;Your changes were saved.&quot;&gt;&lt;/sonic-alert&gt;
38
+ </code></pre>
39
+ <h2 id="content-and-icon">Content and icon</h2>
40
+ <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>
41
+ <pre><code>&lt;sonic-alert status=&quot;info&quot; noIcon label=&quot;No icon&quot; text=&quot;Informational message.&quot;&gt;&lt;/sonic-alert&gt;
42
+ </code></pre>
43
+ <h2 id="custom-icon-slot">Custom icon slot</h2>
44
+ <p>Project any markup into <strong><code>slot=&quot;icon&quot;</code></strong> (emoji, image, custom component). Keep it decorative with <code>aria-hidden=&quot;true&quot;</code> when the message text already conveys meaning.</p>
45
+ <pre><code>&lt;sonic-alert status=&quot;success&quot; label=&quot;Achievement unlocked&quot; background&gt;
46
+ &lt;span slot=&quot;icon&quot; aria-hidden=&quot;true&quot; class=&quot;text-lg leading-none&quot;&gt;🎉&lt;/span&gt;
47
+ You unlocked a new badge.
48
+ &lt;/sonic-alert&gt;
30
49
  </code></pre>
31
50
  <h2 id="sizes">Sizes</h2>
32
51
  <pre><code>&lt;div class=&quot;grid gap-4&quot;&gt;
33
- &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot; size=&quot;2xs&quot;&gt;
34
- This address is already in use. Lorem ipsum dolor sit amet.
35
- &lt;/sonic-alert&gt;
36
- &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot; size=&quot;xs&quot;&gt;
37
- This address is already in use. Lorem ipsum dolor sit amet.
38
- &lt;/sonic-alert&gt;
39
- &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot; size=&quot;sm&quot;&gt;
40
- This address is already in use. Lorem ipsum dolor sit amet.
41
- &lt;/sonic-alert&gt;
42
- &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot;&gt;
43
- This address is already in use. Lorem ipsum dolor sit amet.
44
- &lt;/sonic-alert&gt;
45
- &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot; size=&quot;lg&quot;&gt;
46
- This address is already in use. Lorem ipsum dolor sit amet.
47
- &lt;/sonic-alert&gt;
48
- &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot; size=&quot;xl&quot;&gt;
49
- This address is already in use. Lorem ipsum dolor sit amet.
50
- &lt;/sonic-alert&gt;
51
- &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot; size=&quot;2xl&quot;&gt;
52
- This address is already in use. Lorem ipsum dolor sit amet.
53
- &lt;/sonic-alert&gt;
54
- &lt;/div&gt;
52
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot; size=&quot;2xs&quot;&gt;
53
+ This address is already in use. Lorem ipsum dolor sit amet.
54
+ &lt;/sonic-alert&gt;
55
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot; size=&quot;xs&quot;&gt;
56
+ This address is already in use. Lorem ipsum dolor sit amet.
57
+ &lt;/sonic-alert&gt;
58
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot; size=&quot;sm&quot;&gt;
59
+ This address is already in use. Lorem ipsum dolor sit amet.
60
+ &lt;/sonic-alert&gt;
61
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot;&gt;
62
+ This address is already in use. Lorem ipsum dolor sit amet.
63
+ &lt;/sonic-alert&gt;
64
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot; size=&quot;lg&quot;&gt;
65
+ This address is already in use. Lorem ipsum dolor sit amet.
66
+ &lt;/sonic-alert&gt;
67
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot; size=&quot;xl&quot;&gt;
68
+ This address is already in use. Lorem ipsum dolor sit amet.
69
+ &lt;/sonic-alert&gt;
70
+ &lt;sonic-alert status=&quot;error&quot; label=&quot;Email error&quot; size=&quot;2xl&quot;&gt;
71
+ This address is already in use. Lorem ipsum dolor sit amet.
72
+ &lt;/sonic-alert&gt;
73
+ &lt;/div&gt;
55
74
  </code></pre>
56
75
  <h2 id="alert-with-link">Alert with link</h2>
76
+ <p>Rich content in the slot (buttons, links).</p>
57
77
  <pre><code>&lt;sonic-alert status=&quot;info&quot; label=&quot;New messages !&quot;&gt;
58
- You have 2 unread messages&lt;br /&gt;
59
- &lt;div class=&quot;flex gap-2 mt-1&quot;&gt;
60
- &lt;sonic-button variant=&quot;outline&quot; type=&quot;info&quot; size=&quot;xs&quot;&gt;See messages&lt;/sonic-button&gt;
61
- &lt;sonic-button variant=&quot;ghost&quot; type=&quot;info&quot; size=&quot;xs&quot;&gt;dismiss&lt;/sonic-button&gt;
62
- &lt;/div&gt;
63
- &lt;/sonic-alert&gt;
78
+ You have 2 unread messages&lt;br /&gt;
79
+ &lt;div class=&quot;flex gap-2 mt-1&quot;&gt;
80
+ &lt;sonic-button variant=&quot;outline&quot; type=&quot;info&quot; size=&quot;xs&quot;&gt;See messages&lt;/sonic-button&gt;
81
+ &lt;sonic-button variant=&quot;ghost&quot; type=&quot;info&quot; size=&quot;xs&quot;&gt;Dismiss&lt;/sonic-button&gt;
82
+ &lt;/div&gt;
83
+ &lt;/sonic-alert&gt;
64
84
  </code></pre>
65
85
  <h2 id="background">Background</h2>
86
+ <p>Tinted background from the <code>status</code> color (<code>color-mix</code> on <code>currentColor</code>).</p>
66
87
  <pre><code>&lt;div class=&quot;grid gap-4&quot;&gt;
67
- &lt;sonic-alert background label=&quot;Lorem ipsum dolor&quot;&gt;
68
- This address is already in use.
69
- &lt;/sonic-alert&gt;
70
- &lt;sonic-alert status=&quot;success&quot; background label=&quot;Lorem ipsum dolor&quot;&gt;
71
- This address is already in use.
72
- &lt;/sonic-alert&gt;
73
- &lt;sonic-alert status=&quot;error&quot; background label=&quot;Lorem ipsum dolor&quot;&gt;
74
- This address is already in use.
75
- &lt;/sonic-alert&gt;
76
- &lt;sonic-alert status=&quot;warning&quot; background label=&quot;Lorem ipsum dolor&quot;&gt;
77
- This address is already in use.
78
- &lt;/sonic-alert&gt;
79
- &lt;sonic-alert status=&quot;info&quot; background label=&quot;Lorem ipsum dolor&quot;&gt;
80
- This address is already in use.
81
- &lt;/sonic-alert&gt;
82
- &lt;/div&gt;
88
+ &lt;sonic-alert background label=&quot;Lorem ipsum dolor&quot;&gt;This address is already in use.&lt;/sonic-alert&gt;
89
+ &lt;sonic-alert status=&quot;success&quot; background label=&quot;Lorem ipsum dolor&quot;&gt;
90
+ This address is already in use.
91
+ &lt;/sonic-alert&gt;
92
+ &lt;sonic-alert status=&quot;error&quot; background label=&quot;Lorem ipsum dolor&quot;&gt;
93
+ This address is already in use.
94
+ &lt;/sonic-alert&gt;
95
+ &lt;sonic-alert status=&quot;warning&quot; background label=&quot;Lorem ipsum dolor&quot;&gt;
96
+ This address is already in use.
97
+ &lt;/sonic-alert&gt;
98
+ &lt;sonic-alert status=&quot;info&quot; background label=&quot;Lorem ipsum dolor&quot;&gt;
99
+ This address is already in use.
100
+ &lt;/sonic-alert&gt;
101
+ &lt;/div&gt;
83
102
  </code></pre>
84
103
  <h2 id="dismissible">Dismissible</h2>
85
- <pre><code>&lt;sonic-alert class=&quot;mb-3&quot; dismissible label=&quot;Lorem ipsum dolor&quot;&gt;
86
- This address is already in use.
87
- &lt;/sonic-alert&gt;
88
- &lt;sonic-alert status=&quot;success&quot; class=&quot;mb-3&quot; dismissible label=&quot;Lorem ipsum dolor&quot;&gt;
89
- This address is already in use.
90
- &lt;/sonic-alert&gt;
91
- &lt;sonic-alert status=&quot;error&quot; class=&quot;mb-3&quot; dismissible label=&quot;Lorem ipsum dolor&quot;&gt;
92
- This address is already in use.
93
- &lt;/sonic-alert&gt;
94
- &lt;sonic-alert status=&quot;warning&quot; class=&quot;mb-3&quot; dismissible label=&quot;Lorem ipsum dolor&quot;&gt;
95
- This address is already in use.
96
- &lt;/sonic-alert&gt;
97
- &lt;sonic-alert status=&quot;info&quot; class=&quot;mb-3&quot; dismissible label=&quot;Lorem ipsum dolor&quot;&gt;
98
- This address is already in use.
99
- &lt;/sonic-alert&gt;
104
+ <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>
105
+ <pre><code>&lt;sonic-alert status=&quot;info&quot; class=&quot;mb-3&quot; dismissible label=&quot;This address is already in use.&quot;&gt;
106
+ &lt;/sonic-alert&gt;
107
+ &lt;sonic-alert class=&quot;mb-3&quot; dismissible background label=&quot;Lorem ipsum dolor&quot;&gt;
108
+ This address is already in use.
109
+ &lt;/sonic-alert&gt;
110
+ &lt;sonic-alert status=&quot;success&quot; class=&quot;mb-3&quot; dismissible background label=&quot;Lorem ipsum dolor&quot;&gt;
111
+ This address is already in use.
112
+ &lt;/sonic-alert&gt;
113
+ &lt;sonic-alert status=&quot;error&quot; class=&quot;mb-3&quot; dismissible background label=&quot;Lorem ipsum dolor&quot;&gt;
114
+ This address is already in use.
115
+ &lt;/sonic-alert&gt;
116
+ &lt;sonic-alert status=&quot;warning&quot; class=&quot;mb-3&quot; dismissible background label=&quot;Lorem ipsum dolor&quot;&gt;
117
+ This address is already in use.
118
+ &lt;/sonic-alert&gt;
119
+ &lt;sonic-alert status=&quot;info&quot; class=&quot;mb-3&quot; dismissible background label=&quot;Lorem ipsum dolor&quot;&gt;
120
+ This address is already in use.
121
+ &lt;/sonic-alert&gt;
100
122
  </code></pre>
101
123
  <h2 id="dismiss-forever">Dismiss forever</h2>
102
- <pre><code>&lt;sonic-alert class=&quot;mb-3&quot; dismissible dismissForever label=&quot;Lorem ipsum dolor&quot; id=&quot;addressUniqueId&quot;&gt;
103
- This address is already in use.
104
- &lt;/sonic-alert&gt;
124
+ <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>
125
+ <pre><code>&lt;sonic-alert
126
+ class=&quot;mb-3&quot;
127
+ dismissible
128
+ background
129
+ dismissForever
130
+ label=&quot;Lorem ipsum dolor&quot;
131
+ id=&quot;addressUniqueId&quot;
132
+ &gt;
133
+ This address is already in use.
134
+ &lt;/sonic-alert&gt;
105
135
  </code></pre>
136
+ <h2 id="api-reference">API reference</h2>
137
+ <table>
138
+ <thead>
139
+ <tr>
140
+ <th>Attribute</th>
141
+ <th>Values</th>
142
+ <th>Description</th>
143
+ </tr>
144
+ </thead>
145
+ <tbody><tr>
146
+ <td><code>status</code></td>
147
+ <td><code>default</code> · <code>info</code> · <code>success</code> · <code>warning</code> · <code>error</code></td>
148
+ <td>Color and default icon</td>
149
+ </tr>
150
+ <tr>
151
+ <td><code>label</code></td>
152
+ <td>string</td>
153
+ <td>Title (plain text)</td>
154
+ </tr>
155
+ <tr>
156
+ <td><code>text</code></td>
157
+ <td>string</td>
158
+ <td>Short body (plain text), rendered before the slot</td>
159
+ </tr>
160
+ <tr>
161
+ <td><code>size</code></td>
162
+ <td><code>2xs</code> … <code>2xl</code></td>
163
+ <td>Corner radius and typography</td>
164
+ </tr>
165
+ <tr>
166
+ <td><code>background</code></td>
167
+ <td>boolean</td>
168
+ <td>Tinted background (<code>color-mix</code> on status color)</td>
169
+ </tr>
170
+ <tr>
171
+ <td><code>dismissible</code></td>
172
+ <td>boolean</td>
173
+ <td>Close control; removes the element from the DOM</td>
174
+ </tr>
175
+ <tr>
176
+ <td><code>dismissForever</code></td>
177
+ <td>boolean</td>
178
+ <td>Persists dismissal in <code>localStorage</code>; requires <strong><code>id</code></strong></td>
179
+ </tr>
180
+ <tr>
181
+ <td><code>noIcon</code></td>
182
+ <td>boolean</td>
183
+ <td>Hides the icon (including custom <code>icon</code> slot content)</td>
184
+ </tr>
185
+ <tr>
186
+ <td><code>announce</code></td>
187
+ <td>boolean</td>
188
+ <td><code>role=&quot;alert&quot;</code> / <code>aria-live</code> for dynamically injected content</td>
189
+ </tr>
190
+ </tbody></table>
191
+ <table>
192
+ <thead>
193
+ <tr>
194
+ <th>Slot</th>
195
+ <th>Description</th>
196
+ </tr>
197
+ </thead>
198
+ <tbody><tr>
199
+ <td><em>(default)</em></td>
200
+ <td>Message body (HTML, actions); rendered after <code>text</code></td>
201
+ </tr>
202
+ <tr>
203
+ <td><code>icon</code></td>
204
+ <td>Replaces the default <code>sonic-icon</code></td>
205
+ </tr>
206
+ </tbody></table>
106
207
 
107
208
  </article>
108
209
  </main>
@@ -3,9 +3,9 @@
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Concorde — Concorde</title>
7
- <meta name="description" content="Concorde documentation: Concorde">
8
- <meta name="keywords" content="Concorde, supersoniks, core/components/ui/alert-messages/alert-messages, alert-messages, UI component, sonic-alert-messages, web component">
6
+ <title>Alert messages — Concorde</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
9
  <meta name="concorde-doc-id" content="core/components/ui/alert-messages/alert-messages">
10
10
  <link rel="canonical" href="https://concorde.supersoniks.org/crawl/core/components/ui/alert-messages/alert-messages.html">
11
11
  </head>
@@ -15,8 +15,116 @@
15
15
  </header>
16
16
  <main>
17
17
  <article>
18
- <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Concorde</strong>. Concorde documentation: Concorde <span>Doc ID: <code>core/components/ui/alert-messages/alert-messages</code>. Keywords: Concorde, supersoniks, core/components/ui/alert-messages/alert-messages, alert-messages, UI component, sonic-alert-messages, web component. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/alert-messages/alert-messages.html">https://concorde.supersoniks.org/crawl/core/components/ui/alert-messages/alert-messages.html</a>.</span></p>
19
-
18
+ <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/crawl/core/components/ui/alert-messages/alert-messages.html">https://concorde.supersoniks.org/crawl/core/components/ui/alert-messages/alert-messages.html</a>.</span></p>
19
+ <h1 id="alert-messages">Alert messages</h1>
20
+ <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>
21
+ <h2 id="with-submit-result">With submit result</h2>
22
+ <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>
23
+ <pre><code>&lt;sonic-scope
24
+ serviceURL=&quot;/docs-mock-api&quot;
25
+ formDataProvider=&quot;submit-example&quot;
26
+ submitResultDataProvider=&quot;submit-example-result&quot;
27
+ &gt;
28
+ &lt;sonic-alert-messages dataProvider=&quot;submit-example-result&quot; background class=&quot;mb-4&quot;&gt;&lt;/sonic-alert-messages&gt;
29
+ &lt;div class=&quot;grid gap-4 max-w-md&quot;&gt;
30
+ &lt;sonic-input name=&quot;email&quot; type=&quot;email&quot; label=&quot;Email&quot; value=&quot;&quot;&gt;&lt;/sonic-input&gt;
31
+ &lt;sonic-input name=&quot;password&quot; type=&quot;password&quot; label=&quot;Password&quot; value=&quot;&quot;&gt;&lt;/sonic-input&gt;
32
+ &lt;sonic-submit endPoint=&quot;api/register&quot; onClick&gt;
33
+ &lt;sonic-button type=&quot;primary&quot;&gt;Submit (empty fields → error messages)&lt;/sonic-button&gt;
34
+ &lt;/sonic-submit&gt;
35
+ &lt;/div&gt;
36
+ &lt;/sonic-scope&gt;
37
+ </code></pre>
38
+ <h2 id="shared-alert-props">Shared alert props</h2>
39
+ <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>
40
+ <pre><code>&lt;sonic-button
41
+ size=&quot;sm&quot;
42
+ variant=&quot;outline&quot;
43
+ class=&quot;mb-3&quot;
44
+ 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;
45
+ &gt;
46
+ Load sample messages
47
+ &lt;/sonic-button&gt;
48
+ &lt;sonic-alert-messages
49
+ dataProvider=&quot;submit-example-result&quot;
50
+ size=&quot;sm&quot;
51
+ background
52
+ noIcon
53
+ &gt;&lt;/sonic-alert-messages&gt;
54
+ </code></pre>
55
+ <h2 id="message-shape">Message shape</h2>
56
+ <p>Example JSON on the result publisher (or API response merged into it):</p>
57
+ <pre><code class="language-typescript">{
58
+ &quot;messages&quot;: [
59
+ {
60
+ &quot;type&quot;: &quot;public&quot;,
61
+ &quot;content&quot;: &quot;The product has been added to your cart&quot;,
62
+ &quot;status&quot;: &quot;success&quot;
63
+ }
64
+ ]
65
+ }
66
+ </code></pre>
67
+ <h2 id="api-reference">API reference</h2>
68
+ <table>
69
+ <thead>
70
+ <tr>
71
+ <th>Attribute</th>
72
+ <th>Values</th>
73
+ <th>Description</th>
74
+ </tr>
75
+ </thead>
76
+ <tbody><tr>
77
+ <td><code>dataProvider</code></td>
78
+ <td>publisher id</td>
79
+ <td>Source object; <strong><code>messages</code></strong> array is auto-filled via <strong>Subscriber</strong></td>
80
+ </tr>
81
+ <tr>
82
+ <td><code>size</code></td>
83
+ <td><code>2xs</code> … <code>2xl</code> (default <code>md</code>)</td>
84
+ <td>Passed to each <strong><code>sonic-alert</code></strong></td>
85
+ </tr>
86
+ <tr>
87
+ <td><code>background</code></td>
88
+ <td>boolean</td>
89
+ <td>Tinted background on each alert</td>
90
+ </tr>
91
+ <tr>
92
+ <td><code>noIcon</code></td>
93
+ <td>boolean</td>
94
+ <td>Hides icons on each alert</td>
95
+ </tr>
96
+ <tr>
97
+ <td><code>messages</code></td>
98
+ <td><code>Message[]</code></td>
99
+ <td>Usually set by the publisher; each item uses <strong><code>content</code></strong> as alert <strong><code>text</code></strong></td>
100
+ </tr>
101
+ </tbody></table>
102
+ <table>
103
+ <thead>
104
+ <tr>
105
+ <th>Message field</th>
106
+ <th>Values</th>
107
+ <th>Description</th>
108
+ </tr>
109
+ </thead>
110
+ <tbody><tr>
111
+ <td><code>type</code></td>
112
+ <td><code>public</code></td>
113
+ <td>Required for the message to render</td>
114
+ </tr>
115
+ <tr>
116
+ <td><code>content</code></td>
117
+ <td>string</td>
118
+ <td>Alert body (<strong><code>text</code></strong> on <strong><code>sonic-alert</code></strong>)</td>
119
+ </tr>
120
+ <tr>
121
+ <td><code>status</code></td>
122
+ <td><code>warning</code> · <code>success</code> · <code>error</code> · <code>info</code></td>
123
+ <td>Alert <strong><code>status</code></strong>; defaults to <strong><code>default</code></strong> when omitted</td>
124
+ </tr>
125
+ </tbody></table>
126
+ <p>No slots — alerts are generated from <strong><code>messages</code></strong>.</p>
127
+
20
128
  </article>
21
129
  </main>
22
130
  </body>