@supersoniks/concorde 5.0.5 โ†’ 5.1.0

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 (168) hide show
  1. package/.github/workflows/ci.yml +21 -0
  2. package/.github-export-ignore +30 -0
  3. package/.tmp-cem/custom-elements.json +13705 -0
  4. package/CONTRIBUTING.md +59 -0
  5. package/DEV.md +54 -0
  6. package/LICENSE +21 -0
  7. package/OPEN_SOURCE_CHECKPOINT.md +133 -0
  8. package/build-infos.json +1 -1
  9. package/concorde-3d.bundle.js +3960 -0
  10. package/concorde-3d.es.js +33433 -0
  11. package/concorde-core.bundle.js +196 -196
  12. package/concorde-core.es.js +3685 -3405
  13. package/concorde-hugging-face-infer.bundle.js +32 -0
  14. package/concorde-hugging-face-infer.es.js +2952 -0
  15. package/concorde-interactive.bundle.js +1157 -0
  16. package/concorde-interactive.es.js +10734 -0
  17. package/concorde-shader.bundle.js +116 -0
  18. package/concorde-shader.es.js +8353 -0
  19. package/concorde-webgpu.bundle.js +307 -0
  20. package/concorde-webgpu.es.js +8627 -0
  21. package/custom-elements-manifest.config.mjs +14 -0
  22. package/dist/concorde-core.bundle.js +196 -196
  23. package/dist/concorde-core.es.js +3685 -3405
  24. package/docs/assets/{index-wVZpLVYW.js โ†’ index-D8MVWqY6.js} +1351 -1222
  25. package/docs/assets/index-DiD0qYvE.css +1 -0
  26. package/docs/crawl/core/components/ui/alert/alert.html +71 -172
  27. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +5 -113
  28. package/docs/crawl/core/components/ui/badge/badge.html +79 -157
  29. package/docs/crawl/core/components/ui/button/button.html +0 -1
  30. package/docs/crawl/core/components/ui/captcha/captcha.html +8 -90
  31. package/docs/crawl/core/components/ui/card/card.html +68 -222
  32. package/docs/crawl/core/components/ui/divider/divider.html +31 -117
  33. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +101 -232
  34. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +52 -95
  35. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +38 -97
  36. package/docs/crawl/core/components/ui/form/input/input.html +3 -3
  37. package/docs/crawl/core/components/ui/form/textarea/textarea.html +3 -3
  38. package/docs/crawl/core/components/ui/group/group.html +38 -60
  39. package/docs/crawl/core/components/ui/icon/icon.html +47 -136
  40. package/docs/crawl/core/components/ui/image/image.html +56 -244
  41. package/docs/crawl/core/components/ui/link/link.html +9 -67
  42. package/docs/crawl/core/components/ui/loader/loader.html +23 -97
  43. package/docs/crawl/core/components/ui/menu/menu.html +90 -162
  44. package/docs/crawl/core/components/ui/modal/modal.html +50 -275
  45. package/docs/crawl/core/components/ui/pop/pop.html +66 -260
  46. package/docs/crawl/core/components/ui/progress/progress.html +30 -103
  47. package/docs/crawl/core/components/ui/table/table.html +171 -303
  48. package/docs/crawl/core/components/ui/toast/toast.html +59 -170
  49. package/docs/crawl/core/components/ui/tooltip/tooltip.html +29 -90
  50. package/docs/crawl/docs/_decorators/ancestor-attribute.html +2 -3
  51. package/docs/crawl/docs/_getting-started/concorde-outside.html +3 -3
  52. package/docs/crawl/docs/_getting-started/start.html +1 -1
  53. package/docs/crawl/docs/_getting-started/theming.html +63 -311
  54. package/docs/crawl/hubs/form-components.html +53 -75
  55. package/docs/crawl/index.html +6 -7
  56. package/docs/docs-mock-api-sw.js +0 -2
  57. package/docs/docs-mock-api-sw.js.map +2 -2
  58. package/docs/index.html +7 -9
  59. package/docs/llms-full.txt +456 -1703
  60. package/docs/llms.txt +32 -25
  61. package/docs/sitemap.xml +0 -3
  62. package/docs/src/core/components/functional/fetch/fetch.md +0 -0
  63. package/docs/src/core/components/functional/if/if.md +0 -0
  64. package/docs/src/core/components/functional/list/list.md +0 -0
  65. package/docs/src/core/components/functional/router/router.md +0 -0
  66. package/docs/src/core/components/functional/sdui/sdui.md +0 -0
  67. package/docs/src/core/components/functional/states/states.md +0 -0
  68. package/docs/src/core/components/functional/submit/submit.md +0 -0
  69. package/docs/src/core/components/ui/alert/alert.md +72 -147
  70. package/docs/src/core/components/ui/alert-messages/alert-messages.md +0 -85
  71. package/docs/src/core/components/ui/badge/badge.md +80 -141
  72. package/docs/src/core/components/ui/button/button.md +0 -1
  73. package/docs/src/core/components/ui/captcha/captcha.md +6 -65
  74. package/docs/src/core/components/ui/card/card.md +65 -183
  75. package/docs/src/core/components/ui/divider/divider.md +13 -107
  76. package/docs/src/core/components/ui/form/fieldset/fieldset.md +99 -175
  77. package/docs/src/core/components/ui/form/form-actions/form-actions.md +52 -75
  78. package/docs/src/core/components/ui/form/form-layout/form-layout.md +34 -109
  79. package/docs/src/core/components/ui/form/input/input.md +1 -1
  80. package/docs/src/core/components/ui/form/radio/radio.md +0 -0
  81. package/docs/src/core/components/ui/form/select/select.md +0 -0
  82. package/docs/src/core/components/ui/form/switch/switch.md +0 -0
  83. package/docs/src/core/components/ui/form/textarea/textarea.md +1 -1
  84. package/docs/src/core/components/ui/group/group.md +36 -36
  85. package/docs/src/core/components/ui/icon/icon.md +43 -132
  86. package/docs/src/core/components/ui/image/image.md +53 -179
  87. package/docs/src/core/components/ui/link/link.md +7 -45
  88. package/docs/src/core/components/ui/loader/loader.md +22 -79
  89. package/docs/src/core/components/ui/menu/menu.md +92 -133
  90. package/docs/src/core/components/ui/modal/modal.md +47 -163
  91. package/docs/src/core/components/ui/pop/pop.md +64 -262
  92. package/docs/src/core/components/ui/progress/progress.md +30 -76
  93. package/docs/src/core/components/ui/table/table.md +171 -147
  94. package/docs/src/core/components/ui/toast/toast.md +58 -108
  95. package/docs/src/core/components/ui/tooltip/tooltip.md +26 -68
  96. package/docs/src/docs/_core-concept/subscriber.md +0 -0
  97. package/docs/src/docs/_decorators/ancestor-attribute.md +2 -3
  98. package/docs/src/docs/_getting-started/concorde-outside.md +3 -3
  99. package/docs/src/docs/_getting-started/my-first-subscriber.md +0 -0
  100. package/docs/src/docs/_getting-started/pubsub.md +0 -0
  101. package/docs/src/docs/_getting-started/start.md +1 -1
  102. package/docs/src/docs/_getting-started/theming.md +61 -223
  103. package/docs/src/docs/search/docs-search.json +348 -3083
  104. package/docs/src/tsconfig.declarations.json +22 -0
  105. package/docs/src/tsconfig.emit.json +23 -0
  106. package/docs/src/tsconfig.json +3 -63
  107. package/gitlab/job_github_mirror.sh +39 -0
  108. package/package.json +36 -2
  109. package/scripts/generate-sdui-catalog.mjs +250 -0
  110. package/scripts/generate-sdui-catalog.spec.ts +91 -0
  111. package/scripts/github-export.mjs +150 -0
  112. package/scripts/post-build-docs.js +0 -0
  113. package/scripts/post-build.mjs +0 -0
  114. package/scripts/pre-build.mjs +15 -0
  115. package/src/core/components/functional/fetch/fetch.md +0 -0
  116. package/src/core/components/functional/if/if.md +0 -0
  117. package/src/core/components/functional/if/if.ts +0 -0
  118. package/src/core/components/functional/list/list.demo.ts +0 -0
  119. package/src/core/components/functional/list/list.md +0 -0
  120. package/src/core/components/functional/router/router.md +0 -0
  121. package/src/core/components/functional/router/router.ts +0 -0
  122. package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +5 -5
  123. package/src/core/components/functional/sdui/__fixtures__/descriptors.ts +251 -0
  124. package/src/core/components/functional/sdui/__snapshots__/sdui-action.spec.ts.snap +73 -0
  125. package/src/core/components/functional/sdui/__snapshots__/sdui-incremental.spec.ts.snap +50 -0
  126. package/src/core/components/functional/sdui/__snapshots__/sdui-partial.spec.ts.snap +50 -0
  127. package/src/core/components/functional/sdui/__snapshots__/sdui.regression.spec.ts.snap +461 -0
  128. package/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
  129. package/src/core/components/functional/sdui/component-catalog.json +3103 -0
  130. package/src/core/components/functional/sdui/component-catalog.spec.ts +23 -0
  131. package/src/core/components/functional/sdui/sdui-action.spec.ts +99 -0
  132. package/src/core/components/functional/sdui/sdui-dom-snapshot.ts +61 -0
  133. package/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
  134. package/src/core/components/functional/sdui/sdui-incremental.spec.ts +137 -0
  135. package/src/core/components/functional/sdui/sdui-partial.spec.ts +83 -0
  136. package/src/core/components/functional/sdui/sdui-partial.ts +19 -0
  137. package/src/core/components/functional/sdui/sdui-safe.spec.ts +188 -0
  138. package/src/core/components/functional/sdui/sdui-safe.ts +100 -0
  139. package/src/core/components/functional/sdui/sdui.md +122 -0
  140. package/src/core/components/functional/sdui/sdui.regression.spec.ts +64 -0
  141. package/src/core/components/functional/sdui/sdui.ts +442 -34
  142. package/src/core/components/functional/sdui/types.ts +49 -0
  143. package/src/core/components/functional/states/states.md +0 -0
  144. package/src/core/components/functional/submit/submit.md +0 -0
  145. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  146. package/src/core/components/functional/value/value.ts +0 -0
  147. package/src/core/components/ui/_css/size.ts +0 -0
  148. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  149. package/src/core/components/ui/form/radio/radio.md +0 -0
  150. package/src/core/components/ui/form/select/select.md +0 -0
  151. package/src/core/components/ui/form/switch/switch.md +0 -0
  152. package/src/core/mixins/Subscriber.ts +0 -0
  153. package/src/core/utils/DataBindObserver.ts +0 -0
  154. package/src/core/utils/Objects.ts +0 -0
  155. package/src/core/utils/route.ts +0 -0
  156. package/src/css.d.ts +19 -0
  157. package/src/docs/_core-concept/subscriber.md +0 -0
  158. package/src/docs/_getting-started/my-first-subscriber.md +0 -0
  159. package/src/docs/_getting-started/pubsub.md +0 -0
  160. package/src/docs/example/users.ts +0 -0
  161. package/src/docs/search/page.ts +0 -0
  162. package/src/tsconfig.declarations.json +22 -0
  163. package/src/tsconfig.emit.json +23 -0
  164. package/src/tsconfig.json +90 -0
  165. package/src/tsconfig.tsbuildinfo +1 -1
  166. package/docs/assets/index-CD4WyL6o.css +0 -1
  167. package/docs/crawl/core/components/ui/theme/theme.html +0 -131
  168. package/docs/src/core/components/ui/theme/theme.md +0 -122
@@ -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>Badge โ€” Concorde</title>
7
- <meta name="description" content="Badges are compact, non-interactive labels for status, counts, or categories. They mirror sonic-button styling (type, variant, size) without focus rings or click handlingโ€”use a button when the control">
8
- <meta name="keywords" content="Concorde, supersoniks, core/components/ui/badge/badge, badge, Badge, UI component, sonic-badge, web component, sonic-button, type, variant, size, default, base-100, neutral, base-content, outline">
7
+ <meta name="description" content="Messages &lt;sonic-badge slot=&quot;suffix&quot; type=&quot;danger&quot; size=&quot;xs&quot;&gt;5&lt;/sonic-badge&gt;">
8
+ <meta name="keywords" content="Concorde, supersoniks, core/components/ui/badge/badge, badge, Badge, UI component, sonic-badge, web component">
9
9
  <meta name="concorde-doc-id" content="core/components/ui/badge/badge">
10
10
  <link rel="canonical" href="https://concorde.supersoniks.org/crawl/core/components/ui/badge/badge.html">
11
11
  </head>
@@ -15,181 +15,103 @@
15
15
  </header>
16
16
  <main>
17
17
  <article>
18
- <p class="doc-lead" id="doc-summary"><strong>Concorde UI component โ€” Badge</strong>. Badges are compact, non-interactive labels for status, counts, or categories. They mirror sonic-button styling (type, variant, size) without focus rings or click handlingโ€”use a button when the control <span>Doc ID: <code>core/components/ui/badge/badge</code>. Keywords: Concorde, supersoniks, core/components/ui/badge/badge, badge, Badge, UI component, sonic-badge, web component, sonic-button, type, variant, size, default, base-100, neutral, base-content, outline. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/badge/badge.html">https://concorde.supersoniks.org/crawl/core/components/ui/badge/badge.html</a>.</span></p>
18
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component โ€” Badge</strong>. Messages &lt;sonic-badge slot=&quot;suffix&quot; type=&quot;danger&quot; size=&quot;xs&quot;&gt;5&lt;/sonic-badge&gt; <span>Doc ID: <code>core/components/ui/badge/badge</code>. Keywords: Concorde, supersoniks, core/components/ui/badge/badge, badge, Badge, UI component, sonic-badge, web component. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/badge/badge.html">https://concorde.supersoniks.org/crawl/core/components/ui/badge/badge.html</a>.</span></p>
19
19
  <h1 id="badge">Badge</h1>
20
- <p>Badges are <strong>compact, non-interactive</strong> labels for status, counts, or categories. They mirror <strong><code>sonic-button</code></strong> styling (<code>type</code>, <code>variant</code>, <code>size</code>) without focus rings or click handlingโ€”use a button when the control should be actionable.</p>
21
20
  <h2 id="type">Type</h2>
22
- <p><code>default</code> โ€” subtle background (<code>base-100</code>). <code>neutral</code> โ€” dark fill (<code>base-content</code>) with light text, useful on light backgrounds.</p>
23
- <pre><code>&lt;div class=&quot;flex flex-wrap gap-2&quot;&gt;
24
- &lt;sonic-badge&gt;Default&lt;/sonic-badge&gt;
25
- &lt;sonic-badge type=&quot;primary&quot;&gt;Primary&lt;/sonic-badge&gt;
26
- &lt;sonic-badge type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-badge&gt;
27
- &lt;sonic-badge type=&quot;warning&quot;&gt;Warning&lt;/sonic-badge&gt;
28
- &lt;sonic-badge type=&quot;info&quot;&gt;Info&lt;/sonic-badge&gt;
29
- &lt;sonic-badge type=&quot;success&quot;&gt;Success&lt;/sonic-badge&gt;
30
- &lt;sonic-badge type=&quot;danger&quot;&gt;Danger&lt;/sonic-badge&gt;
31
- &lt;/div&gt;
21
+ <pre><code>&lt;sonic-badge&gt;Default&lt;/sonic-badge&gt;
22
+ &lt;sonic-badge type=&quot;primary&quot;&gt;Primary&lt;/sonic-badge&gt;
23
+ &lt;sonic-badge type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-badge&gt;
24
+ &lt;sonic-badge type=&quot;warning&quot;&gt;Warning&lt;/sonic-badge&gt;
25
+ &lt;sonic-badge type=&quot;info&quot;&gt;Info&lt;/sonic-badge&gt;
26
+ &lt;sonic-badge type=&quot;success&quot;&gt;Success&lt;/sonic-badge&gt;
27
+ &lt;sonic-badge type=&quot;danger&quot;&gt;Danger&lt;/sonic-badge&gt;
28
+ &lt;sonic-badge type=&quot;contrast&quot;&gt;Contrast&lt;/sonic-badge&gt;
32
29
  </code></pre>
33
- <h2 id="variant">Variant</h2>
34
- <p>Default <strong><code>variant</code></strong> is filled. <strong><code>outline</code></strong> โ€” border and text in the <code>type</code> color. <strong><code>ghost</code></strong> โ€” text only, no padding (except in forced-colors mode).</p>
35
- <h3 id="outline">Outline</h3>
30
+ <h2 id="outline">Outline</h2>
36
31
  <pre><code>&lt;div class=&quot;flex items-center flex-wrap gap-3&quot;&gt;
37
- &lt;sonic-badge variant=&quot;outline&quot;&gt;Default&lt;/sonic-badge&gt;
38
- &lt;sonic-badge variant=&quot;outline&quot; type=&quot;primary&quot;&gt;Primary&lt;/sonic-badge&gt;
39
- &lt;sonic-badge variant=&quot;outline&quot; type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-badge&gt;
40
- &lt;sonic-badge variant=&quot;outline&quot; type=&quot;warning&quot;&gt;Warning&lt;/sonic-badge&gt;
41
- &lt;sonic-badge variant=&quot;outline&quot; type=&quot;info&quot;&gt;Info&lt;/sonic-badge&gt;
42
- &lt;sonic-badge variant=&quot;outline&quot; type=&quot;success&quot;&gt;Success&lt;/sonic-badge&gt;
43
- &lt;sonic-badge variant=&quot;outline&quot; type=&quot;danger&quot;&gt;Danger&lt;/sonic-badge&gt;
44
- &lt;/div&gt;
32
+ &lt;sonic-badge variant=&quot;outline&quot;&gt;Default&lt;/sonic-badge&gt;
33
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;primary&quot;&gt;Primary&lt;/sonic-badge&gt;
34
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-badge&gt;
35
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;warning&quot;&gt;Warning&lt;/sonic-badge&gt;
36
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;info&quot;&gt;Info&lt;/sonic-badge&gt;
37
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;success&quot;&gt;Success&lt;/sonic-badge&gt;
38
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;danger&quot;&gt;Danger&lt;/sonic-badge&gt;
39
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;contrast&quot;&gt;Contrast&lt;/sonic-badge&gt;
40
+ &lt;/div&gt;
45
41
  </code></pre>
46
- <h3 id="ghost">Ghost</h3>
42
+ <h2 id="ghost">Ghost</h2>
47
43
  <pre><code>&lt;div class=&quot;flex items-center flex-wrap gap-3&quot;&gt;
48
- &lt;sonic-badge variant=&quot;ghost&quot;&gt;Default&lt;/sonic-badge&gt;
49
- &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;primary&quot;&gt;Primary&lt;/sonic-badge&gt;
50
- &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-badge&gt;
51
- &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;warning&quot;&gt;Warning&lt;/sonic-badge&gt;
52
- &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;info&quot;&gt;Info&lt;/sonic-badge&gt;
53
- &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;success&quot;&gt;Success&lt;/sonic-badge&gt;
54
- &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;danger&quot;&gt;Danger&lt;/sonic-badge&gt;
55
- &lt;/div&gt;
44
+ &lt;sonic-badge variant=&quot;ghost&quot;&gt;Default&lt;/sonic-badge&gt;
45
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;primary&quot;&gt;Primary&lt;/sonic-badge&gt;
46
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-badge&gt;
47
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;warning&quot;&gt;Warning&lt;/sonic-badge&gt;
48
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;info&quot;&gt;Info&lt;/sonic-badge&gt;
49
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;success&quot;&gt;Success&lt;/sonic-badge&gt;
50
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;danger&quot;&gt;Danger&lt;/sonic-badge&gt;
51
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;contrast&quot;&gt;Contrast&lt;/sonic-badge&gt;
52
+ &lt;/div&gt;
56
53
  </code></pre>
57
54
  <h2 id="size">Size</h2>
58
- <p>Default size is <code>md</code> (omit the <code>size</code> attribute). Typography and padding follow <code>sonic-button</code>.</p>
59
- <pre><code>&lt;div class=&quot;flex flex-wrap items-center gap-2&quot;&gt;
60
- &lt;sonic-badge size=&quot;2xs&quot;&gt;2Xs&lt;/sonic-badge&gt;
61
- &lt;sonic-badge size=&quot;xs&quot;&gt;Xs&lt;/sonic-badge&gt;
62
- &lt;sonic-badge size=&quot;sm&quot;&gt;Sm&lt;/sonic-badge&gt;
63
- &lt;sonic-badge&gt;Md&lt;/sonic-badge&gt;
64
- &lt;sonic-badge size=&quot;lg&quot;&gt;Lg&lt;/sonic-badge&gt;
65
- &lt;sonic-badge size=&quot;xl&quot;&gt;Xl&lt;/sonic-badge&gt;
66
- &lt;sonic-badge size=&quot;2xl&quot;&gt;2Xl&lt;/sonic-badge&gt;
67
- &lt;/div&gt;
68
- </code></pre>
69
- <h2 id="prefix-and-suffix-slots">Prefix and suffix slots</h2>
70
- <p>Icons or short text before / after the main label.</p>
71
- <pre><code>&lt;sonic-badge type=&quot;info&quot; size=&quot;sm&quot;&gt;
72
- &lt;sonic-icon slot=&quot;prefix&quot; name=&quot;info-empty&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt;
73
- Info
74
- &lt;/sonic-badge&gt;
75
- &lt;sonic-badge type=&quot;success&quot;&gt;
76
- Verified
77
- &lt;sonic-icon slot=&quot;suffix&quot; name=&quot;check&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt;
78
- &lt;/sonic-badge&gt;
55
+ <pre><code>&lt;sonic-badge size=&quot;2xs&quot;&gt;2Xs badge&lt;/sonic-badge&gt;
56
+ &lt;sonic-badge size=&quot;xs&quot;&gt;Xs badge&lt;/sonic-badge&gt;
57
+ &lt;sonic-badge size=&quot;sm&quot;&gt;Sm badge&lt;/sonic-badge&gt;
58
+ &lt;sonic-badge&gt;Md badge&lt;/sonic-badge&gt;
59
+ &lt;sonic-badge size=&quot;lg&quot;&gt;Lg badge&lt;/sonic-badge&gt;
60
+ &lt;sonic-badge size=&quot;xl&quot;&gt;Xl badge&lt;/sonic-badge&gt;
61
+ &lt;sonic-badge size=&quot;2xl&quot;&gt;2Xl badge&lt;/sonic-badge&gt;
79
62
  </code></pre>
80
63
  <h2 id="empty-badges">Empty badges</h2>
81
- <p>Badge with no text (visual dot). <code>min-width</code> / <code>min-height</code> keep a readable shape.</p>
82
64
  <pre><code>&lt;div class=&quot;flex items-center flex-wrap gap-3&quot;&gt;
83
- &lt;sonic-badge type=&quot;danger&quot; size=&quot;2xs&quot;&gt;&lt;/sonic-badge&gt;
84
- &lt;sonic-badge type=&quot;danger&quot; size=&quot;xs&quot;&gt;&lt;/sonic-badge&gt;
85
- &lt;sonic-badge type=&quot;danger&quot; size=&quot;sm&quot;&gt;&lt;/sonic-badge&gt;
86
- &lt;sonic-badge type=&quot;danger&quot;&gt;&lt;/sonic-badge&gt;
87
- &lt;sonic-badge type=&quot;danger&quot; size=&quot;lg&quot;&gt;&lt;/sonic-badge&gt;
88
- &lt;sonic-badge type=&quot;danger&quot; size=&quot;xl&quot;&gt;&lt;/sonic-badge&gt;
89
- &lt;sonic-badge type=&quot;danger&quot; size=&quot;2xl&quot;&gt;&lt;/sonic-badge&gt;
90
- &lt;/div&gt;
65
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;2xs&quot;&gt;&lt;/sonic-badge&gt;
66
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;xs&quot;&gt;&lt;/sonic-badge&gt;
67
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;sm&quot;&gt;&lt;/sonic-badge&gt;
68
+ &lt;sonic-badge type=&quot;danger&quot;&gt;&lt;/sonic-badge&gt;
69
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;lg&quot;&gt;&lt;/sonic-badge&gt;
70
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;xl&quot;&gt;&lt;/sonic-badge&gt;
71
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;2xl&quot;&gt;&lt;/sonic-badge&gt;
72
+ &lt;/div&gt;
91
73
  </code></pre>
92
74
  <h2 id="ellipsis">Ellipsis</h2>
93
- <p>With <code>ellipsis</code>, long labels truncate. The parent must constrain width (<code>max-width</code>, grid, etc.).</p>
94
- <pre><code>&lt;div class=&quot;grid grid-cols-2 gap-4 max-w-xl&quot;&gt;
95
- &lt;sonic-badge ellipsis size=&quot;sm&quot; variant=&quot;outline&quot;&gt;
96
- &lt;sonic-icon slot=&quot;prefix&quot; name=&quot;info-empty&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt;
97
- Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod.
98
- &lt;/sonic-badge&gt;
99
- &lt;sonic-badge ellipsis size=&quot;sm&quot;&gt;
100
- &lt;sonic-icon slot=&quot;prefix&quot; name=&quot;info-empty&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt;
101
- Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod.
102
- &lt;/sonic-badge&gt;
75
+ <pre><code>&lt;div class=&quot;grid grid-cols-3 gap-4&quot; &gt;
76
+ &lt;sonic-badge ellipsis size=&quot;sm&quot; variant=&quot;outline&quot; &gt;
77
+ &lt;sonic-icon slot=&quot;prefix&quot; name=&quot;info-empty&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt; Lorem ipsum dolor sit consectetur adipiscing elit. Lorem ipsum dolor sit consectetur adipiscing elit.&lt;/sonic-badge&gt;
78
+ &lt;sonic-badge ellipsis size=&quot;sm&quot; &gt; &lt;sonic-icon slot=&quot;prefix&quot; name=&quot;info-empty&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt; Lorem ipsum dolor sit consectetur adipiscing elit. Lorem ipsum dolor sit consectetur adipiscing elit.&lt;/sonic-badge&gt;
103
79
  &lt;/div&gt;
104
80
  </code></pre>
105
81
  <h2 id="badge-in-button">Badge in button</h2>
106
- <p>Count inside a button (<code>slot=&quot;suffix&quot;</code>) or a badge absolutely positioned on a button / icon.</p>
107
82
  <pre><code>&lt;div class=&quot;flex flex-wrap gap-4 items-center&quot;&gt;
108
- &lt;sonic-button type=&quot;default&quot;&gt;
109
- Messages &lt;sonic-badge slot=&quot;suffix&quot; type=&quot;danger&quot; size=&quot;xs&quot;&gt;5&lt;/sonic-badge&gt;
83
+ &lt;sonic-button type=&quot;default&quot;&gt;
84
+ Messages &lt;sonic-badge slot=&quot;suffix&quot; type=&quot;danger&quot; size=&quot;xs&quot;&gt;5&lt;/sonic-badge&gt;
85
+ &lt;/sonic-button&gt;
86
+ &lt;div class=&quot;relative inline-block&quot;&gt;
87
+ &lt;sonic-button type=&quot;success&quot; class=&quot;relative&quot;&gt; Mon compte &lt;/sonic-button&gt;
88
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;xs&quot; class=&quot;absolute right-1 top-0 pe-none transform -translate-y-1/2&quot;
89
+ &gt;12&lt;/sonic-badge
90
+ &gt;
91
+ &lt;/div&gt;
92
+ &lt;div class=&quot;relative inline-block&quot;&gt;
93
+ &lt;sonic-button type=&quot;neutral&quot; shape=&quot;circle&quot; variant=&quot;outline&quot;
94
+ &gt;&lt;sonic-icon library=&quot;iconoir&quot; name=&quot;user&quot;&gt;&lt;/sonic-icon&gt;
95
+ &lt;/sonic-button&gt;
96
+ &lt;sonic-badge
97
+ type=&quot;danger&quot;
98
+ size=&quot;xs&quot;
99
+ class=&quot;absolute right-1 bottom-1 pe-none transform translate-y-1/2 translate-x-1/2&quot;
100
+ &gt;33&lt;/sonic-badge
101
+ &gt;
102
+ &lt;/div&gt;
103
+ &lt;div class=&quot;relative inline-block&quot;&gt;
104
+ &lt;sonic-button type=&quot;neutral&quot; shape=&quot;circle&quot; variant=&quot;outline&quot;
105
+ &gt;&lt;sonic-icon library=&quot;iconoir&quot; name=&quot;user&quot;&gt;&lt;/sonic-icon&gt;
110
106
  &lt;/sonic-button&gt;
111
- &lt;div class=&quot;relative inline-block&quot;&gt;
112
- &lt;sonic-button type=&quot;success&quot; class=&quot;relative&quot;&gt;My account&lt;/sonic-button&gt;
113
- &lt;sonic-badge
114
- type=&quot;danger&quot;
115
- size=&quot;xs&quot;
116
- class=&quot;absolute right-1 top-0 pe-none transform -translate-y-1/2&quot;
117
- &gt;12&lt;/sonic-badge
118
- &gt;
119
- &lt;/div&gt;
120
- &lt;div class=&quot;relative inline-block&quot;&gt;
121
- &lt;sonic-button type=&quot;neutral&quot; shape=&quot;circle&quot; variant=&quot;outline&quot;&gt;
122
- &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;user&quot;&gt;&lt;/sonic-icon&gt;
123
- &lt;/sonic-button&gt;
124
- &lt;sonic-badge
125
- type=&quot;danger&quot;
126
- size=&quot;xs&quot;
127
- class=&quot;absolute right-1 bottom-1 pe-none transform translate-y-1/2 translate-x-1/2&quot;
128
- &gt;33&lt;/sonic-badge
129
- &gt;
130
- &lt;/div&gt;
131
- &lt;div class=&quot;relative inline-block&quot;&gt;
132
- &lt;sonic-button type=&quot;neutral&quot; shape=&quot;circle&quot; variant=&quot;outline&quot;&gt;
133
- &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;user&quot;&gt;&lt;/sonic-icon&gt;
134
- &lt;/sonic-button&gt;
135
- &lt;sonic-badge
136
- type=&quot;danger&quot;
137
- size=&quot;xs&quot;
138
- class=&quot;absolute right-2 bottom-2 pe-none transform translate-y-1/2 translate-x-1/2&quot;
139
- &gt;&lt;/sonic-badge&gt;
140
- &lt;/div&gt;
107
+ &lt;sonic-badge
108
+ type=&quot;danger&quot;
109
+ size=&quot;xs&quot;
110
+ class=&quot;absolute right-2 bottom-2 pe-none transform translate-y-1/2 translate-x-1/2&quot;
111
+ &gt;&lt;/sonic-badge&gt;
141
112
  &lt;/div&gt;
113
+ &lt;/div&gt;
142
114
  </code></pre>
143
- <h2 id="api-reference">API reference</h2>
144
- <table>
145
- <thead>
146
- <tr>
147
- <th>Attribute</th>
148
- <th>Values</th>
149
- <th>Description</th>
150
- </tr>
151
- </thead>
152
- <tbody><tr>
153
- <td><code>type</code></td>
154
- <td><code>default</code> (default) ยท <code>primary</code> ยท <code>neutral</code> ยท <code>warning</code> ยท <code>info</code> ยท <code>success</code> ยท <code>danger</code></td>
155
- <td>Semantic color (<code>--sc-*</code> tokens)</td>
156
- </tr>
157
- <tr>
158
- <td><code>variant</code></td>
159
- <td><code>default</code> (default) ยท <code>outline</code> ยท <code>ghost</code></td>
160
- <td>Filled, bordered, or text-only</td>
161
- </tr>
162
- <tr>
163
- <td><code>size</code></td>
164
- <td><code>2xs</code> โ€ฆ <code>2xl</code> (default <code>md</code>)</td>
165
- <td>Typography and padding (aligned with <strong><code>sonic-button</code></strong>)</td>
166
- </tr>
167
- <tr>
168
- <td><code>ellipsis</code></td>
169
- <td>boolean</td>
170
- <td>Single-line truncation; parent must constrain width</td>
171
- </tr>
172
- </tbody></table>
173
- <table>
174
- <thead>
175
- <tr>
176
- <th>Slot</th>
177
- <th>Description</th>
178
- </tr>
179
- </thead>
180
- <tbody><tr>
181
- <td><em>(default)</em></td>
182
- <td>Main label</td>
183
- </tr>
184
- <tr>
185
- <td><code>prefix</code></td>
186
- <td>Icon or short text before the label</td>
187
- </tr>
188
- <tr>
189
- <td><code>suffix</code></td>
190
- <td>Icon or short text after the label</td>
191
- </tr>
192
- </tbody></table>
193
115
 
194
116
  </article>
195
117
  </main>
@@ -66,7 +66,6 @@
66
66
  <p>The length of the button depends on the size of its content</p>
67
67
  <pre><code>&lt;sonic-button loading&gt;&lt;/sonic-button&gt;
68
68
  &lt;sonic-button loading&gt;Loading button&lt;/sonic-button&gt;
69
- &lt;sonic-button loading&gt;&lt;span slot=&quot;prefix&quot;&gt;๐Ÿš€&lt;/span&gt;Loading with prefix&lt;span slot=&quot;suffix&quot;&gt;๐Ÿ˜‚&lt;/span&gt;&lt;/sonic-button&gt;
70
69
  </code></pre>
71
70
  <h2 id="swap">Swap</h2>
72
71
  <pre><code>&lt;sonic-button formDataProvider=&quot;button_swap_example&quot; name=&quot;youpi&quot; value=&quot;youpla&quot; type=&quot;primary&quot; shape=&quot;circle&quot; variant=&quot;outline&quot; class=&quot;mr-4&quot;&gt;
@@ -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>Captcha โ€” Concorde</title>
7
- <meta name="description" content="sonic-captcha embeds an ALTCHA widget and wires captchaToken / needsCaptchaValidation on the ancestor formDataProvider (or headersDataProvider). sonic-submit waits for a token before sending when vali">
8
- <meta name="keywords" content="Concorde, supersoniks, core/components/ui/captcha/captcha, captcha, Captcha, UI component, sonic-captcha, web component, captchaToken, needsCaptchaValidation, formDataProvider, headersDataProvider, sonic-submit, key, generateEncryptedKey">
7
+ <meta name="description" content="Captcha: Submit with captcha">
8
+ <meta name="keywords" content="Concorde, supersoniks, core/components/ui/captcha/captcha, captcha, Captcha, UI component, sonic-captcha, web component">
9
9
  <meta name="concorde-doc-id" content="core/components/ui/captcha/captcha">
10
10
  <link rel="canonical" href="https://concorde.supersoniks.org/crawl/core/components/ui/captcha/captcha.html">
11
11
  </head>
@@ -15,96 +15,14 @@
15
15
  </header>
16
16
  <main>
17
17
  <article>
18
- <p class="doc-lead" id="doc-summary"><strong>Concorde UI component โ€” Captcha</strong>. sonic-captcha embeds an ALTCHA widget and wires captchaToken / needsCaptchaValidation on the ancestor formDataProvider (or headersDataProvider). sonic-submit waits for a token before sending when vali <span>Doc ID: <code>core/components/ui/captcha/captcha</code>. Keywords: Concorde, supersoniks, core/components/ui/captcha/captcha, captcha, Captcha, UI component, sonic-captcha, web component, captchaToken, needsCaptchaValidation, formDataProvider, headersDataProvider, sonic-submit, key, generateEncryptedKey. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/captcha/captcha.html">https://concorde.supersoniks.org/crawl/core/components/ui/captcha/captcha.html</a>.</span></p>
18
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component โ€” Captcha</strong>. Captcha: Submit with captcha <span>Doc ID: <code>core/components/ui/captcha/captcha</code>. Keywords: Concorde, supersoniks, core/components/ui/captcha/captcha, captcha, Captcha, UI component, sonic-captcha, web component. URL: <a href="https://concorde.supersoniks.org/crawl/core/components/ui/captcha/captcha.html">https://concorde.supersoniks.org/crawl/core/components/ui/captcha/captcha.html</a>.</span></p>
19
19
  <h1 id="captcha">Captcha</h1>
20
- <p><strong><code>sonic-captcha</code></strong> embeds an <strong>ALTCHA</strong> widget and wires <strong><code>captchaToken</code></strong> / <strong><code>needsCaptchaValidation</code></strong> on the ancestor <strong><code>formDataProvider</code></strong> (or <strong><code>headersDataProvider</code></strong>). <strong><code>sonic-submit</code></strong> waits for a token before sending when validation is required. The widget loads only on <strong>HTTPS</strong>; on plain HTTP the host renders nothing.</p>
21
- <blockquote>
22
- <p>Live widget calls the Supersoniks challenge service โ€” not part of <a href="../../../../docs/_misc/docs-mock-api.html#docs-mock-api">docs mock API</a>.</p>
23
- </blockquote>
24
- <h2 id="basic-example">Basic example</h2>
25
- <p>Wrap the form scope and place <strong><code>sonic-submit</code></strong> in the default slot so the challenge appears above the action.</p>
26
- <pre><code>&lt;sonic-scope
27
- serviceURL=&quot;/docs-mock-api&quot;
28
- formDataProvider=&quot;captcha-docs-form&quot;
29
- submitResultDataProvider=&quot;captcha-docs-result&quot;
30
- &gt;
31
- &lt;sonic-captcha formDataProvider=&quot;captcha-docs-form&quot;&gt;
32
- &lt;sonic-input class=&quot;mb-3&quot; name=&quot;email&quot; type=&quot;email&quot; label=&quot;Email&quot; value=&quot;demo@example.com&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 with captcha&lt;/sonic-button&gt;
35
- &lt;/sonic-submit&gt;
36
- &lt;/sonic-captcha&gt;
37
- &lt;/sonic-scope&gt;
20
+ <pre><code>&lt;sonic-captcha formDataProvider=&quot;captchaTestDataProvider&quot; key=&quot;6Leq5V0iAAAAAB-41DlWN335jDlcIuXmhNtdd00t&quot;&gt;
21
+ &lt;sonic-submit serviceURL=&quot;/docs-mock-api&quot; endPoint=&quot;api/unknown&quot; onclick&gt;
22
+ &lt;sonic-button class=&quot;mt-4&quot;&gt;Submit with captcha&lt;/sonic-button&gt;
23
+ &lt;/sonic-submit&gt;
24
+ &lt;/sonic-captcha&gt;
38
25
  </code></pre>
39
- <h2 id="encrypted-site-key">Encrypted site key</h2>
40
- <p>Optional <strong><code>key</code></strong> skips client-side key generation. When omitted, the component derives an encrypted key on connect (after <strong><code>generateEncryptedKey</code></strong>).</p>
41
- <pre><code>&lt;sonic-captcha formDataProvider=&quot;captcha-docs-form&quot; key=&quot;6Leq5V0iAAAAAB-41DlWN335jDlcIuXmhNtdd00t&quot;&gt;
42
- &lt;sonic-button type=&quot;outline&quot; disabled&gt;Complete the challenge above to enable submit&lt;/sonic-button&gt;
43
- &lt;/sonic-captcha&gt;
44
- </code></pre>
45
- <h2 id="form-publisher-fields">Form publisher fields</h2>
46
- <p>On connect (HTTPS only), <strong><code>needsCaptchaValidation</code></strong> is set to <strong><code>true</code></strong> and <strong><code>captchaToken</code></strong> is cleared. When the ALTCHA widget reaches <strong><code>verified</code></strong>, <strong><code>captchaToken</code></strong> is written on the form publisher and <strong><code>sonic-captcha-validate</code></strong> fires (<code>detail.valid</code> ยท <strong><code>detail.state</code></strong> ยท optional <strong><code>detail.token</code></strong> / <strong><code>detail.payload</code></strong>). <strong><code>sonic-submit</code></strong> still listens for <strong><code>request_token</code></strong> to refresh the token immediately before send.</p>
47
- <pre><code class="language-typescript">{
48
- needsCaptchaValidation: true,
49
- captchaKey: &quot;โ€ฆ&quot;,
50
- captchaToken: &quot;โ€ฆ&quot;
51
- }
52
- </code></pre>
53
- <h2 id="api-reference">API reference</h2>
54
- <table>
55
- <thead>
56
- <tr>
57
- <th>Attribute</th>
58
- <th>Values</th>
59
- <th>Description</th>
60
- </tr>
61
- </thead>
62
- <tbody><tr>
63
- <td><code>formDataProvider</code></td>
64
- <td>publisher id</td>
65
- <td>Same as ancestor form scope; reads/writes <strong><code>needsCaptchaValidation</code></strong> ยท <strong><code>captchaKey</code></strong> ยท <strong><code>captchaToken</code></strong></td>
66
- </tr>
67
- <tr>
68
- <td><code>key</code></td>
69
- <td>string</td>
70
- <td>ALTCHA site key; auto-generated when empty</td>
71
- </tr>
72
- <tr>
73
- <td><code>action</code></td>
74
- <td>string</td>
75
- <td>Optional action name forwarded to the widget</td>
76
- </tr>
77
- <tr>
78
- <td><code>zIndex</code></td>
79
- <td>number (default <code>9999</code>)</td>
80
- <td>Stacking for the challenge overlay</td>
81
- </tr>
82
- </tbody></table>
83
- <table>
84
- <thead>
85
- <tr>
86
- <th>Slot</th>
87
- <th>Description</th>
88
- </tr>
89
- </thead>
90
- <tbody><tr>
91
- <td><em>(default)</em></td>
92
- <td>Form actions (typically <strong><code>sonic-submit</code></strong> and fields) rendered below the widget</td>
93
- </tr>
94
- </tbody></table>
95
- <table>
96
- <thead>
97
- <tr>
98
- <th>Event</th>
99
- <th>Description</th>
100
- </tr>
101
- </thead>
102
- <tbody><tr>
103
- <td><code>sonic-captcha-validate</code></td>
104
- <td>Fired when <strong><code>state</code></strong> is <strong><code>verified</code></strong> ยท <strong><code>error</code></strong> or <strong><code>expired</code></strong>; <strong><code>detail.valid</code></strong> is <strong><code>true</code></strong> only for <strong><code>verified</code></strong></td>
105
- </tr>
106
- </tbody></table>
107
- <p>Related: <a href="../../functional/submit/submit.html#submit">Submit</a> โ€” <strong><code>needsCaptchaValidation</code></strong> and deferred send.</p>
108
26
 
109
27
  </article>
110
28
  </main>