@supersoniks/concorde 5.0.2 → 5.0.3

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 (214) hide show
  1. package/build-infos.json +1 -1
  2. package/concorde-core.bundle.js +1 -1
  3. package/concorde-core.es.js +1 -1
  4. package/dist/concorde-core.bundle.js +1 -1
  5. package/dist/concorde-core.es.js +1 -1
  6. package/docs/altcha-widget.js +2662 -0
  7. package/docs/assets/index--GpD7R7a.css +1 -0
  8. package/docs/assets/index-BnK6OS7w.js +12115 -0
  9. package/docs/crawl/core/components/functional/date/date.html +190 -0
  10. package/docs/crawl/core/components/functional/fetch/fetch.html +109 -0
  11. package/docs/crawl/core/components/functional/if/if.html +27 -0
  12. package/docs/crawl/core/components/functional/jsonata/jsonata.html +79 -0
  13. package/docs/crawl/core/components/functional/list/list.html +70 -0
  14. package/docs/crawl/core/components/functional/mix/mix.html +45 -0
  15. package/docs/crawl/core/components/functional/queue/queue.html +96 -0
  16. package/docs/crawl/core/components/functional/router/router.html +106 -0
  17. package/docs/crawl/core/components/functional/sdui/sdui.html +269 -0
  18. package/docs/crawl/core/components/functional/states/states.html +66 -0
  19. package/docs/crawl/core/components/functional/submit/submit.html +160 -0
  20. package/docs/crawl/core/components/functional/subscriber/subscriber.html +67 -0
  21. package/docs/crawl/core/components/functional/value/value.html +51 -0
  22. package/docs/crawl/core/components/ui/alert/alert.html +140 -0
  23. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +23 -0
  24. package/docs/crawl/core/components/ui/badge/badge.html +148 -0
  25. package/docs/crawl/core/components/ui/button/button.html +150 -0
  26. package/docs/crawl/core/components/ui/captcha/captcha.html +30 -0
  27. package/docs/crawl/core/components/ui/card/card.html +143 -0
  28. package/docs/crawl/core/components/ui/divider/divider.html +58 -0
  29. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +73 -0
  30. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +135 -0
  31. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +79 -0
  32. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +62 -0
  33. package/docs/crawl/core/components/ui/form/input/input.html +109 -0
  34. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +38 -0
  35. package/docs/crawl/core/components/ui/form/radio/radio.html +56 -0
  36. package/docs/crawl/core/components/ui/form/select/select.html +73 -0
  37. package/docs/crawl/core/components/ui/form/switch/switch.html +56 -0
  38. package/docs/crawl/core/components/ui/form/textarea/textarea.html +59 -0
  39. package/docs/crawl/core/components/ui/group/group.html +82 -0
  40. package/docs/crawl/core/components/ui/icon/icon.html +133 -0
  41. package/docs/crawl/core/components/ui/image/image.html +186 -0
  42. package/docs/crawl/core/components/ui/link/link.html +42 -0
  43. package/docs/crawl/core/components/ui/loader/loader.html +50 -0
  44. package/docs/crawl/core/components/ui/menu/menu.html +322 -0
  45. package/docs/crawl/core/components/ui/modal/modal.html +117 -0
  46. package/docs/crawl/core/components/ui/pop/pop.html +178 -0
  47. package/docs/crawl/core/components/ui/progress/progress.html +58 -0
  48. package/docs/crawl/core/components/ui/table/table.html +413 -0
  49. package/docs/crawl/core/components/ui/toast/toast.html +122 -0
  50. package/docs/crawl/core/components/ui/tooltip/tooltip.html +79 -0
  51. package/docs/crawl/docs/_core-concept/dataFlow.html +177 -0
  52. package/docs/crawl/docs/_core-concept/overview.html +66 -0
  53. package/docs/crawl/docs/_core-concept/subscriber.html +75 -0
  54. package/docs/crawl/docs/_decorators/ancestor-attribute.html +116 -0
  55. package/docs/crawl/docs/_decorators/auto-subscribe.html +202 -0
  56. package/docs/crawl/docs/_decorators/bind.html +141 -0
  57. package/docs/crawl/docs/_decorators/get.html +149 -0
  58. package/docs/crawl/docs/_decorators/handle.html +165 -0
  59. package/docs/crawl/docs/_decorators/on-assign.html +355 -0
  60. package/docs/crawl/docs/_decorators/patch.html +78 -0
  61. package/docs/crawl/docs/_decorators/post.html +139 -0
  62. package/docs/crawl/docs/_decorators/publish.html +61 -0
  63. package/docs/crawl/docs/_decorators/put.html +78 -0
  64. package/docs/crawl/docs/_decorators/subscribe.html +109 -0
  65. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +137 -0
  66. package/docs/crawl/docs/_directives/sub.html +93 -0
  67. package/docs/crawl/docs/_getting-started/ai-agents.html +173 -0
  68. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +100 -0
  69. package/docs/crawl/docs/_getting-started/concorde-outside.html +58 -0
  70. package/docs/crawl/docs/_getting-started/create-a-component.html +111 -0
  71. package/docs/crawl/docs/_getting-started/my-first-component.html +189 -0
  72. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +110 -0
  73. package/docs/crawl/docs/_getting-started/pubsub.html +62 -0
  74. package/docs/crawl/docs/_getting-started/start.html +76 -0
  75. package/docs/crawl/docs/_getting-started/theming.html +85 -0
  76. package/docs/crawl/docs/_misc/api-configuration.html +149 -0
  77. package/docs/crawl/docs/_misc/dataProviderKey.html +135 -0
  78. package/docs/crawl/docs/_misc/docs-mock-api.html +158 -0
  79. package/docs/crawl/docs/_misc/dynamic-path.html +180 -0
  80. package/docs/crawl/docs/_misc/endpoint.html +50 -0
  81. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
  82. package/docs/crawl/docs/_misc/html-integration.html +48 -0
  83. package/docs/crawl/hubs/decorators.html +547 -0
  84. package/docs/crawl/hubs/form-components.html +359 -0
  85. package/docs/crawl/hubs/remote-data.html +452 -0
  86. package/docs/crawl/index.html +101 -0
  87. package/docs/css/docs.css +0 -0
  88. package/docs/docs-mock-api-sw.js +724 -0
  89. package/docs/docs-mock-api-sw.js.map +7 -0
  90. package/docs/fonts/ClashGrotesk-Bold.eot +0 -0
  91. package/docs/fonts/ClashGrotesk-Bold.ttf +0 -0
  92. package/docs/fonts/ClashGrotesk-Bold.woff +0 -0
  93. package/docs/fonts/ClashGrotesk-Bold.woff2 +0 -0
  94. package/docs/fonts/ClashGrotesk-Extralight.eot +0 -0
  95. package/docs/fonts/ClashGrotesk-Extralight.ttf +0 -0
  96. package/docs/fonts/ClashGrotesk-Extralight.woff +0 -0
  97. package/docs/fonts/ClashGrotesk-Extralight.woff2 +0 -0
  98. package/docs/fonts/ClashGrotesk-Light.eot +0 -0
  99. package/docs/fonts/ClashGrotesk-Light.ttf +0 -0
  100. package/docs/fonts/ClashGrotesk-Light.woff +0 -0
  101. package/docs/fonts/ClashGrotesk-Light.woff2 +0 -0
  102. package/docs/fonts/ClashGrotesk-Medium.eot +0 -0
  103. package/docs/fonts/ClashGrotesk-Medium.ttf +0 -0
  104. package/docs/fonts/ClashGrotesk-Medium.woff +0 -0
  105. package/docs/fonts/ClashGrotesk-Medium.woff2 +0 -0
  106. package/docs/fonts/ClashGrotesk-Regular.eot +0 -0
  107. package/docs/fonts/ClashGrotesk-Regular.ttf +0 -0
  108. package/docs/fonts/ClashGrotesk-Regular.woff +0 -0
  109. package/docs/fonts/ClashGrotesk-Regular.woff2 +0 -0
  110. package/docs/fonts/ClashGrotesk-Semibold.eot +0 -0
  111. package/docs/fonts/ClashGrotesk-Semibold.ttf +0 -0
  112. package/docs/fonts/ClashGrotesk-Semibold.woff +0 -0
  113. package/docs/fonts/ClashGrotesk-Semibold.woff2 +0 -0
  114. package/docs/fonts/ClashGrotesk-Variable.eot +0 -0
  115. package/docs/fonts/ClashGrotesk-Variable.ttf +0 -0
  116. package/docs/fonts/ClashGrotesk-Variable.woff +0 -0
  117. package/docs/fonts/ClashGrotesk-Variable.woff2 +0 -0
  118. package/docs/img/concorde-icon.svg +5 -0
  119. package/docs/img/concorde-logo.svg +1 -0
  120. package/docs/img/concorde.png +0 -0
  121. package/docs/img/concorde_def.png +0 -0
  122. package/docs/img/concorde_seuil.png.webp +0 -0
  123. package/docs/img/concorde_seuil_invert.png +0 -0
  124. package/docs/img/paul_metrand.jpg +0 -0
  125. package/docs/img/paul_metrand_xs.jpg +0 -0
  126. package/docs/index.html +93 -0
  127. package/docs/llms-full.txt +5945 -0
  128. package/docs/llms.txt +104 -0
  129. package/docs/robots.txt +16 -0
  130. package/docs/sitemap.xml +237 -0
  131. package/docs/src/core/components/functional/date/date.md +290 -0
  132. package/docs/src/core/components/functional/fetch/fetch.md +125 -0
  133. package/docs/src/core/components/functional/if/if.md +9 -0
  134. package/docs/src/core/components/functional/jsonata/jsonata.md +56 -0
  135. package/docs/src/core/components/functional/list/list.md +65 -0
  136. package/docs/src/core/components/functional/mix/mix.md +41 -0
  137. package/docs/src/core/components/functional/queue/queue.md +72 -0
  138. package/docs/src/core/components/functional/router/router.md +94 -0
  139. package/docs/src/core/components/functional/sdui/default-library.json +108 -0
  140. package/docs/src/core/components/functional/sdui/example.json +99 -0
  141. package/docs/src/core/components/functional/sdui/sdui.md +356 -0
  142. package/docs/src/core/components/functional/states/states.md +87 -0
  143. package/docs/src/core/components/functional/submit/submit.md +114 -0
  144. package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
  145. package/docs/src/core/components/functional/value/value.md +35 -0
  146. package/docs/src/core/components/ui/alert/alert.md +177 -0
  147. package/docs/src/core/components/ui/alert-messages/alert-messages.md +0 -0
  148. package/docs/src/core/components/ui/badge/badge.md +175 -0
  149. package/docs/src/core/components/ui/button/button.md +183 -0
  150. package/docs/src/core/components/ui/captcha/captcha.md +12 -0
  151. package/docs/src/core/components/ui/card/card.md +152 -0
  152. package/docs/src/core/components/ui/divider/divider.md +35 -0
  153. package/docs/src/core/components/ui/form/checkbox/checkbox.md +77 -0
  154. package/docs/src/core/components/ui/form/fieldset/fieldset.md +129 -0
  155. package/docs/src/core/components/ui/form/form-actions/form-actions.md +77 -0
  156. package/docs/src/core/components/ui/form/form-layout/form-layout.md +44 -0
  157. package/docs/src/core/components/ui/form/input/input.md +142 -0
  158. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +29 -0
  159. package/docs/src/core/components/ui/form/radio/radio.md +57 -0
  160. package/docs/src/core/components/ui/form/select/select.md +71 -0
  161. package/docs/src/core/components/ui/form/switch/switch.md +57 -0
  162. package/docs/src/core/components/ui/form/textarea/textarea.md +65 -0
  163. package/docs/src/core/components/ui/group/group.md +75 -0
  164. package/docs/src/core/components/ui/icon/icon.md +125 -0
  165. package/docs/src/core/components/ui/icon/icons.json +1 -0
  166. package/docs/src/core/components/ui/image/image.md +201 -0
  167. package/docs/src/core/components/ui/link/link.md +43 -0
  168. package/docs/src/core/components/ui/loader/loader.md +55 -0
  169. package/docs/src/core/components/ui/menu/menu.md +329 -0
  170. package/docs/src/core/components/ui/modal/modal.md +119 -0
  171. package/docs/src/core/components/ui/pop/pop.md +200 -0
  172. package/docs/src/core/components/ui/progress/progress.md +63 -0
  173. package/docs/src/core/components/ui/table/table.md +455 -0
  174. package/docs/src/core/components/ui/toast/toast.md +166 -0
  175. package/docs/src/core/components/ui/tooltip/tooltip.md +82 -0
  176. package/docs/src/docs/_core-concept/dataFlow.md +88 -0
  177. package/docs/src/docs/_core-concept/overview.md +57 -0
  178. package/docs/src/docs/_core-concept/subscriber.md +75 -0
  179. package/docs/src/docs/_decorators/ancestor-attribute.md +127 -0
  180. package/docs/src/docs/_decorators/auto-subscribe.md +202 -0
  181. package/docs/src/docs/_decorators/bind.md +167 -0
  182. package/docs/src/docs/_decorators/get.md +162 -0
  183. package/docs/src/docs/_decorators/handle.md +175 -0
  184. package/docs/src/docs/_decorators/on-assign.md +390 -0
  185. package/docs/src/docs/_decorators/patch.md +70 -0
  186. package/docs/src/docs/_decorators/post.md +146 -0
  187. package/docs/src/docs/_decorators/publish.md +55 -0
  188. package/docs/src/docs/_decorators/put.md +70 -0
  189. package/docs/src/docs/_decorators/subscribe.md +100 -0
  190. package/docs/src/docs/_decorators/wait-for-ancestors.md +163 -0
  191. package/docs/src/docs/_directives/sub.md +91 -0
  192. package/docs/src/docs/_getting-started/ai-agents.md +76 -0
  193. package/docs/src/docs/_getting-started/concorde-manual-install.md +133 -0
  194. package/docs/src/docs/_getting-started/concorde-outside.md +33 -0
  195. package/docs/src/docs/_getting-started/create-a-component.md +139 -0
  196. package/docs/src/docs/_getting-started/my-first-component.md +236 -0
  197. package/docs/src/docs/_getting-started/my-first-subscriber.md +120 -0
  198. package/docs/src/docs/_getting-started/pubsub.md +37 -0
  199. package/docs/src/docs/_getting-started/start.md +47 -0
  200. package/docs/src/docs/_getting-started/theming.md +91 -0
  201. package/docs/src/docs/_misc/api-configuration.md +81 -0
  202. package/docs/src/docs/_misc/dataProviderKey.md +168 -0
  203. package/docs/src/docs/_misc/docs-mock-api.md +63 -0
  204. package/docs/src/docs/_misc/dynamic-path.md +71 -0
  205. package/docs/src/docs/_misc/endpoint.md +45 -0
  206. package/docs/src/docs/_misc/formelement-subscriber-removal.md +115 -0
  207. package/docs/src/docs/_misc/html-integration.md +15 -0
  208. package/docs/src/docs/search/docs-search.json +10137 -0
  209. package/docs/src/tag-list.json +1 -0
  210. package/docs/src/tsconfig-model.json +23 -0
  211. package/docs/src/tsconfig.json +1224 -0
  212. package/docs/svg/regular/plane.svg +1 -0
  213. package/docs/svg/solid/plane.svg +1 -0
  214. package/package.json +1 -1
@@ -0,0 +1,175 @@
1
+ # Badge
2
+
3
+ A **non-interactive** pill for labels, counts, or highlights (counter, status, category). The API mirrors `sonic-button` (`type`, `variant`, `size`) without focus or click states.
4
+
5
+ Colors come from theme tokens (`--sc-primary`, `--sc-danger`, …) or the semantic `type` values below.
6
+
7
+ ## Type
8
+
9
+ `default` — subtle background (`base-100`). `neutral` — dark fill (`base-content`) with light text, useful on light backgrounds.
10
+
11
+ <sonic-code>
12
+ <template>
13
+ <div class="flex flex-wrap gap-2">
14
+ <sonic-badge>Default</sonic-badge>
15
+ <sonic-badge type="primary">Primary</sonic-badge>
16
+ <sonic-badge type="neutral">Neutral</sonic-badge>
17
+ <sonic-badge type="warning">Warning</sonic-badge>
18
+ <sonic-badge type="info">Info</sonic-badge>
19
+ <sonic-badge type="success">Success</sonic-badge>
20
+ <sonic-badge type="danger">Danger</sonic-badge>
21
+ </div>
22
+ </template>
23
+ </sonic-code>
24
+
25
+ ## Variant
26
+
27
+ `outline` — border and text in the `type` color. `ghost` — text only, no padding (except in forced-colors mode).
28
+
29
+ ## Outline
30
+
31
+ <sonic-code>
32
+ <template>
33
+ <div class="flex items-center flex-wrap gap-3">
34
+ <sonic-badge variant="outline">Default</sonic-badge>
35
+ <sonic-badge variant="outline" type="primary">Primary</sonic-badge>
36
+ <sonic-badge variant="outline" type="neutral">Neutral</sonic-badge>
37
+ <sonic-badge variant="outline" type="warning">Warning</sonic-badge>
38
+ <sonic-badge variant="outline" type="info">Info</sonic-badge>
39
+ <sonic-badge variant="outline" type="success">Success</sonic-badge>
40
+ <sonic-badge variant="outline" type="danger">Danger</sonic-badge>
41
+ </div>
42
+ </template>
43
+ </sonic-code>
44
+
45
+ ## Ghost
46
+
47
+ <sonic-code>
48
+ <template>
49
+ <div class="flex items-center flex-wrap gap-3">
50
+ <sonic-badge variant="ghost">Default</sonic-badge>
51
+ <sonic-badge variant="ghost" type="primary">Primary</sonic-badge>
52
+ <sonic-badge variant="ghost" type="neutral">Neutral</sonic-badge>
53
+ <sonic-badge variant="ghost" type="warning">Warning</sonic-badge>
54
+ <sonic-badge variant="ghost" type="info">Info</sonic-badge>
55
+ <sonic-badge variant="ghost" type="success">Success</sonic-badge>
56
+ <sonic-badge variant="ghost" type="danger">Danger</sonic-badge>
57
+ </div>
58
+ </template>
59
+ </sonic-code>
60
+
61
+ ## Size
62
+
63
+ Default size is `md` (omit the `size` attribute). Typography and padding follow `sonic-button`.
64
+
65
+ <sonic-code>
66
+ <template>
67
+ <div class="flex flex-wrap items-center gap-2">
68
+ <sonic-badge size="2xs">2Xs</sonic-badge>
69
+ <sonic-badge size="xs">Xs</sonic-badge>
70
+ <sonic-badge size="sm">Sm</sonic-badge>
71
+ <sonic-badge>Md</sonic-badge>
72
+ <sonic-badge size="lg">Lg</sonic-badge>
73
+ <sonic-badge size="xl">Xl</sonic-badge>
74
+ <sonic-badge size="2xl">2Xl</sonic-badge>
75
+ </div>
76
+ </template>
77
+ </sonic-code>
78
+
79
+ ## Prefix and suffix slots
80
+
81
+ Icons or short text before / after the main label.
82
+
83
+ <sonic-code>
84
+ <template>
85
+ <sonic-badge type="info" size="sm">
86
+ <sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon>
87
+ Info
88
+ </sonic-badge>
89
+ <sonic-badge type="success">
90
+ Verified
91
+ <sonic-icon slot="suffix" name="check" library="iconoir"></sonic-icon>
92
+ </sonic-badge>
93
+ </template>
94
+ </sonic-code>
95
+
96
+ ## Empty badges
97
+
98
+ Badge with no text (visual dot). `min-width` / `min-height` keep a readable shape.
99
+
100
+ <sonic-code>
101
+ <template>
102
+ <div class="flex items-center flex-wrap gap-3">
103
+ <sonic-badge type="danger" size="2xs"></sonic-badge>
104
+ <sonic-badge type="danger" size="xs"></sonic-badge>
105
+ <sonic-badge type="danger" size="sm"></sonic-badge>
106
+ <sonic-badge type="danger"></sonic-badge>
107
+ <sonic-badge type="danger" size="lg"></sonic-badge>
108
+ <sonic-badge type="danger" size="xl"></sonic-badge>
109
+ <sonic-badge type="danger" size="2xl"></sonic-badge>
110
+ </div>
111
+ </template>
112
+ </sonic-code>
113
+
114
+ ## Ellipsis
115
+
116
+ With `ellipsis`, long labels truncate. The parent must constrain width (`max-width`, grid, etc.).
117
+
118
+ <sonic-code>
119
+ <template>
120
+ <div class="grid grid-cols-2 gap-4 max-w-xl">
121
+ <sonic-badge ellipsis size="sm" variant="outline">
122
+ <sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon>
123
+ Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod.
124
+ </sonic-badge>
125
+ <sonic-badge ellipsis size="sm">
126
+ <sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon>
127
+ Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod.
128
+ </sonic-badge>
129
+ </div>
130
+ </template>
131
+ </sonic-code>
132
+
133
+ ## Badge in button
134
+
135
+ Count inside a button (`slot="suffix"`) or a badge absolutely positioned on a button / icon.
136
+
137
+ <sonic-code>
138
+ <template>
139
+ <div class="flex flex-wrap gap-4 items-center">
140
+ <sonic-button type="default">
141
+ Messages <sonic-badge slot="suffix" type="danger" size="xs">5</sonic-badge>
142
+ </sonic-button>
143
+ <div class="relative inline-block">
144
+ <sonic-button type="success" class="relative">My account</sonic-button>
145
+ <sonic-badge
146
+ type="danger"
147
+ size="xs"
148
+ class="absolute right-1 top-0 pe-none transform -translate-y-1/2"
149
+ >12</sonic-badge
150
+ >
151
+ </div>
152
+ <div class="relative inline-block">
153
+ <sonic-button type="neutral" shape="circle" variant="outline">
154
+ <sonic-icon library="iconoir" name="user"></sonic-icon>
155
+ </sonic-button>
156
+ <sonic-badge
157
+ type="danger"
158
+ size="xs"
159
+ class="absolute right-1 bottom-1 pe-none transform translate-y-1/2 translate-x-1/2"
160
+ >33</sonic-badge
161
+ >
162
+ </div>
163
+ <div class="relative inline-block">
164
+ <sonic-button type="neutral" shape="circle" variant="outline">
165
+ <sonic-icon library="iconoir" name="user"></sonic-icon>
166
+ </sonic-button>
167
+ <sonic-badge
168
+ type="danger"
169
+ size="xs"
170
+ class="absolute right-2 bottom-2 pe-none transform translate-y-1/2 translate-x-1/2"
171
+ ></sonic-badge>
172
+ </div>
173
+ </div>
174
+ </template>
175
+ </sonic-code>
@@ -0,0 +1,183 @@
1
+ # Button
2
+
3
+ ## Type
4
+ <sonic-code>
5
+ <template>
6
+ <div class="flex flex-wrap gap-2">
7
+ <sonic-button>Default</sonic-button>
8
+ <sonic-button type="primary">Primary</sonic-button>
9
+ <sonic-button type="neutral">Neutral</sonic-button>
10
+ <sonic-button type="warning">Warning</sonic-button>
11
+ <sonic-button type="info">Info</sonic-button>
12
+ <sonic-button type="success">Success</sonic-button>
13
+ <sonic-button type="danger">Danger</sonic-button>
14
+ <sonic-button type="custom" style="--sc-btn-custom-color: #fde68a; --sc-btn-custom-bg: #5b21b6">Custom</sonic-button>
15
+ </div>
16
+ </template>
17
+ </sonic-code>
18
+
19
+ ## Outline
20
+ <sonic-code>
21
+ <template>
22
+ <div class="flex flex-wrap gap-2">
23
+ <sonic-button variant="outline">Default</sonic-button>
24
+ <sonic-button variant="outline" type="primary">Primary</sonic-button>
25
+ <sonic-button variant="outline" type="neutral">Neutral</sonic-button>
26
+ <sonic-button variant="outline" type="warning">Warning</sonic-button>
27
+ <sonic-button variant="outline" type="info">Info</sonic-button>
28
+ <sonic-button variant="outline" type="success">Success</sonic-button>
29
+ <sonic-button variant="outline" type="danger">Danger</sonic-button>
30
+ <sonic-button variant="outline" type="custom" style="--sc-btn-custom-bg: #5b21b6">Custom</sonic-button>
31
+ </div>
32
+ </template>
33
+ </sonic-code>
34
+
35
+ ## Variant
36
+ <sonic-code>
37
+ <template>
38
+ <sonic-button variant="default">Default</sonic-button>
39
+ <sonic-button variant="outline">Outline</sonic-button>
40
+ <sonic-button variant="ghost">Ghost</sonic-button>
41
+ <sonic-button variant="link">Link</sonic-button>
42
+ <sonic-button variant="unstyled">Unstyled</sonic-button>
43
+ </template>
44
+ </sonic-code>
45
+
46
+ ## Size
47
+ <sonic-code>
48
+ <template>
49
+ <sonic-button size="2xs">2Xs button</sonic-button>
50
+ <sonic-button size="xs">Xs button</sonic-button>
51
+ <sonic-button size="sm">Sm button</sonic-button>
52
+ <sonic-button size="md">Md button</sonic-button>
53
+ <sonic-button>Default button</sonic-button>
54
+ <sonic-button size="lg">Lg button</sonic-button>
55
+ <sonic-button size="xl">Xl button</sonic-button>
56
+ <sonic-button size="2xl">2Xl button</sonic-button>
57
+ </template>
58
+ </sonic-code>
59
+
60
+ ## Shape
61
+ <sonic-code>
62
+ <template>
63
+ <sonic-button shape="circle"> 😂 </sonic-button>
64
+ <sonic-button shape="square"> 🚀 </sonic-button>
65
+ </template>
66
+ </sonic-code>
67
+
68
+ ## Loading
69
+ The length of the button depends on the size of its content
70
+ <sonic-code>
71
+ <template>
72
+ <sonic-button loading></sonic-button>
73
+ <sonic-button loading>Loading button</sonic-button>
74
+ <sonic-button loading><span slot="prefix">🚀</span>Loading with prefix<span slot="suffix">😂</span></sonic-button>
75
+ </template>
76
+ </sonic-code>
77
+
78
+ ## Swap
79
+ <sonic-code>
80
+ <template>
81
+ <sonic-button formDataProvider="button_swap_example" name="youpi" value="youpla" type="primary" shape="circle" variant="outline" class="mr-4">
82
+ <sonic-icon library="iconoir" swap="on" name="eye-empty"></sonic-icon>
83
+ <sonic-icon library="iconoir" swap="off" name="eye-off"></sonic-icon>
84
+ </sonic-button>
85
+ <sonic-button formDataProvider="button_swap_example" name="youpi" value="youpla" type="primary" variant="outline">
86
+ <sonic-icon library="iconoir" swap="on" slot="prefix" name="eye-empty"></sonic-icon>
87
+ <sonic-icon library="iconoir" swap="off" slot="prefix" name="eye-off"></sonic-icon>
88
+ Révélez
89
+ <span swap="off">...</span>
90
+ <span swap="on">moi !</span>
91
+ </sonic-button>
92
+ </template>
93
+ </sonic-code>
94
+
95
+ ## Reset
96
+ <sonic-code>
97
+ <template>
98
+ <div formDataProvider="button-reset-demo" class="mb-2">
99
+ <sonic-checkbox name="aChexbox" value="AValueToSet">Set A value</sonic-checkbox><br>
100
+ <sonic-button reset>Reset current formDataProvider</sonic-button>
101
+ </div>
102
+ <sonic-button reset="button-reset-demo">Reset formDataProvider by name</sonic-button>
103
+ </template>
104
+ </sonic-code>
105
+
106
+
107
+ ## GoBack
108
+ <sonic-code>
109
+ <template>
110
+ <sonic-button goBack type="primary" variant="outline" class="mr-4">
111
+ <sonic-icon library="iconoir" slot="prefix" name="arrow-left"></sonic-icon>
112
+ Retour classique
113
+ </sonic-button>
114
+ <sonic-button goBack="http://la-billetterie.net" type="primary" variant="outline" class="mr-4">
115
+ <sonic-icon library="iconoir" slot="prefix" name="arrow-left"></sonic-icon>
116
+ Retour url prédéfinie
117
+ </sonic-button>
118
+ </template>
119
+ </sonic-code>
120
+
121
+ ## Button with icon
122
+ <sonic-code>
123
+ <template>
124
+ <sonic-button goBack type="primary" variant="outline" class="mr-4">
125
+ <sonic-icon library="iconoir" slot="prefix" name="arrow-right" ></sonic-icon>
126
+ Button with icon
127
+ </sonic-button>
128
+ </template>
129
+ </sonic-code>
130
+
131
+
132
+ ## Button group
133
+ <sonic-code>
134
+ <template>
135
+ <sonic-group label="Code promo" class="mr-4">
136
+ <sonic-input placeholder="Entrez votre code ici..."></sonic-input>
137
+ <sonic-button type="primary" shape="square">
138
+ <sonic-icon library="iconoir" library="iconoir" name="gift"></sonic-icon>
139
+ </sonic-button>
140
+ </sonic-group>
141
+ <sonic-divider size="lg"></sonic-divider>
142
+ <div class="text-lg mb-2">Choose a subscription</div>
143
+ <sonic-group formDataProvider="subscriptionData">
144
+ <sonic-button radio minWidth="10rem" name="subscription" value="standard" type="default"
145
+ >😎 Standard</sonic-button
146
+ >
147
+ <sonic-button radio minWidth="10rem" name="subscription" value="premium" type="default">⭐ Premium</sonic-button>
148
+ <sonic-button radio minWidth="10rem" name="subscription" value="diamond" type="default">💎 Diamond</sonic-button>
149
+ </sonic-group>
150
+ </template>
151
+ </sonic-code>
152
+
153
+
154
+ ## Aria-label
155
+ <sonic-code>
156
+ <template>
157
+ <sonic-button data-aria-label="Custom aria label" type="primary" >
158
+ Button with aria label
159
+ </sonic-button>
160
+ <sonic-button data-aria-label="Custom aria label" href="https://google.fr" type="primary" >
161
+ Button link with aria label
162
+ </sonic-button>
163
+ </template>
164
+ </sonic-code>
165
+
166
+
167
+ ## Custom styles & active states with tailwind
168
+ <sonic-code>
169
+ <template>
170
+ <div formDataProvider="subscriptionData2">
171
+ <sonic-button
172
+ class="bg-neutral-100 transition-all text-center text-lg text-neutral-400 rounded-md min-w-[8rem] [&[active]]:text-danger-content [&[active]]:min-w-[13rem] [&[active]]:bg-danger [&[active]]:font-black [&[active]]:rounded-full"
173
+ variant="unstyled"
174
+ checkable unique
175
+ name="subscription"
176
+ value="premium"
177
+ type="default">
178
+ <span swap="off" class="inline-block py-2 px-3" >subscribe</span>
179
+ <span swap="on" class="inline-block py-2 px-3" >⭐ Premium</span>
180
+ </sonic-button>
181
+ </div>
182
+ </template>
183
+ </sonic-code>
@@ -0,0 +1,12 @@
1
+ # Captcha
2
+
3
+ <sonic-code>
4
+ <template>
5
+ <sonic-captcha formDataProvider="captchaTestDataProvider" key="6Leq5V0iAAAAAB-41DlWN335jDlcIuXmhNtdd00t">
6
+ <sonic-submit serviceURL="/docs-mock-api" endPoint="api/unknown" onclick>
7
+ <sonic-button class="mt-4">Submit with captcha</sonic-button>
8
+ </sonic-submit>
9
+ </sonic-captcha>
10
+ </template>
11
+ </sonic-code>
12
+
@@ -0,0 +1,152 @@
1
+ # Card
2
+
3
+ A **surface** for grouped content: padding, radius, shadow, and semantic **`type`** colors via shared theme tokens. Compose **`sonic-card-header`**, **`sonic-card-main`**, and **`sonic-card-footer`** inside the card, or put any markup in the default slot.
4
+
5
+ Default **`type`** is `base` (page background). Use `light` for a subtle gray panel, `invert` / `neutral` for high-contrast blocks, and `primary`, `info`, `success`, `warning`, or `danger` for tinted surfaces (divider tokens apply on colored types).
6
+
7
+ ## Type
8
+
9
+ <sonic-code>
10
+ <template>
11
+ <div class="flex flex-wrap gap-3">
12
+ <sonic-card type="base" class="min-w-[8rem]">Base</sonic-card>
13
+ <sonic-card type="light" class="min-w-[8rem]">Light</sonic-card>
14
+ <sonic-card type="primary" class="min-w-[8rem]">Primary</sonic-card>
15
+ <sonic-card type="info" class="min-w-[8rem]">Info</sonic-card>
16
+ <sonic-card type="success" class="min-w-[8rem]">Success</sonic-card>
17
+ <sonic-card type="warning" class="min-w-[8rem]">Warning</sonic-card>
18
+ <sonic-card type="danger" class="min-w-[8rem]">Danger</sonic-card>
19
+ <sonic-card type="neutral" class="min-w-[8rem]">Neutral</sonic-card>
20
+ <sonic-card type="invert" class="min-w-[8rem]">Invert</sonic-card>
21
+ </div>
22
+ </template>
23
+ </sonic-code>
24
+
25
+ ## Header
26
+
27
+ Quick titles with **`label`** and **`description`** attributes, or full control through the default slot. **`slot="suffix"`** aligns badges or actions on the right; suffix content does not shrink when the title wraps.
28
+
29
+ <sonic-code>
30
+ <template>
31
+ <div class="grid gap-4 max-w-xl">
32
+ <sonic-card>
33
+ <sonic-card-header
34
+ label="Account settings"
35
+ description="Manage your profile and preferences."
36
+ ></sonic-card-header>
37
+ <p class="m-0 text-sm opacity-80">Body content goes in the card slot or in <code>sonic-card-main</code>.</p>
38
+ </sonic-card>
39
+
40
+ <sonic-card type="neutral">
41
+ <sonic-card-header label="Notifications">
42
+ <sonic-card-header-description>
43
+ Choose what we email you about.
44
+ </sonic-card-header-description>
45
+ <sonic-badge slot="suffix" type="warning" size="xs">3 new</sonic-badge>
46
+ </sonic-card-header>
47
+ </sonic-card>
48
+
49
+ <sonic-card>
50
+ <sonic-card-header label="Team workspace" description="Shared with 12 members">
51
+ <sonic-button
52
+ slot="suffix"
53
+ shape="circle"
54
+ variant="outline"
55
+ size="sm"
56
+ type="default"
57
+ icon
58
+ data-aria-label="Workspace settings"
59
+ >
60
+ <sonic-icon library="iconoir" name="settings"></sonic-icon>
61
+ </sonic-button>
62
+ </sonic-card-header>
63
+ </sonic-card>
64
+
65
+ <sonic-card type="primary">
66
+ <sonic-card-header>
67
+ <div>Custom header</div>
68
+ <sonic-card-header-description>
69
+ Use the header slot when attributes are not enough.
70
+ </sonic-card-header-description>
71
+ <sonic-button slot="suffix" shape="circle" variant="ghost" size="sm" type="primary" icon>
72
+ <sonic-icon library="iconoir" name="nav-arrow-right"></sonic-icon>
73
+ </sonic-button>
74
+ </sonic-card-header>
75
+ </sonic-card>
76
+ </div>
77
+ </template>
78
+ </sonic-code>
79
+
80
+ `label` and `description` accept HTML (rendered as markup). Prefer plain text when possible; use the slot for structured content.
81
+
82
+ ## Main
83
+
84
+ Optional wrapper for the primary content area (typography, media, forms).
85
+
86
+ <sonic-code>
87
+ <template>
88
+ <sonic-card class="max-w-xl">
89
+ <sonic-card-header label="Release notes" description="Version 2.4"></sonic-card-header>
90
+ <sonic-card-main>
91
+ <p class="mt-0">
92
+ Improved performance on large lists and fixed an issue with keyboard navigation in menus.
93
+ </p>
94
+ <sonic-divider></sonic-divider>
95
+ <p class="mb-0 text-sm opacity-80">See the changelog for details.</p>
96
+ </sonic-card-main>
97
+ </sonic-card>
98
+ </template>
99
+ </sonic-code>
100
+
101
+ ## Footer
102
+
103
+ Optional footer for actions, metadata, or secondary text.
104
+
105
+ <sonic-code>
106
+ <template>
107
+ <sonic-card class="max-w-xl">
108
+ <sonic-card-header label="Confirm deletion"></sonic-card-header>
109
+ <sonic-card-main>
110
+ <p class="m-0">This project and all of its data will be removed permanently.</p>
111
+ </sonic-card-main>
112
+ <sonic-card-footer>
113
+ <sonic-divider></sonic-divider>
114
+ <div class="flex flex-wrap gap-2 justify-end">
115
+ <sonic-button variant="ghost" size="sm">Cancel</sonic-button>
116
+ <sonic-button type="danger" size="sm">Delete</sonic-button>
117
+ </div>
118
+ </sonic-card-footer>
119
+ </sonic-card>
120
+ </template>
121
+ </sonic-code>
122
+
123
+ ## Full example
124
+
125
+ Header, media, body, and footer together.
126
+
127
+ <sonic-code>
128
+ <template>
129
+ <sonic-card class="max-w-md">
130
+ <sonic-card-header label="Featured route" description="San Francisco → New York">
131
+ <sonic-icon slot="suffix" library="iconoir" name="airplane"></sonic-icon>
132
+ </sonic-card-header>
133
+ <sonic-card-main>
134
+ <sonic-image
135
+ rounded
136
+ ratio="16/9"
137
+ src="https://images.unsplash.com/photo-1436491865332-7a61a109cc05?w=800&q=80"
138
+ alt=""
139
+ ></sonic-image>
140
+ <p class="mb-0">
141
+ Nonstop flight with flexible dates. Prices shown include taxes and fees.
142
+ </p>
143
+ </sonic-card-main>
144
+ <sonic-card-footer>
145
+ <div class="flex items-center justify-between gap-3 flex-wrap">
146
+ <span class="text-sm font-semibold">From $249</span>
147
+ <sonic-button type="primary" size="sm">Book</sonic-button>
148
+ </div>
149
+ </sonic-card-footer>
150
+ </sonic-card>
151
+ </template>
152
+ </sonic-code>
@@ -0,0 +1,35 @@
1
+ # Divider
2
+
3
+ ## Default
4
+ <sonic-code>
5
+ <template>
6
+ <sonic-divider></sonic-divider>
7
+ </template>
8
+ </sonic-code>
9
+
10
+ ## Align
11
+ <sonic-code>
12
+ <template>
13
+ <sonic-divider label="Default centered label"></sonic-divider>
14
+ <sonic-divider label="Right" align="right"></sonic-divider>
15
+ <sonic-divider label="Center" align="center"></sonic-divider>
16
+ <sonic-divider label="Left" align="left"></sonic-divider>
17
+ </template>
18
+ </sonic-code>
19
+
20
+ ## Size
21
+ <sonic-code>
22
+ <template>
23
+ <sonic-divider size="xs" label="xs"></sonic-divider>
24
+ <sonic-divider size="sm" label="sm"></sonic-divider>
25
+ <sonic-divider size="md" label="md"></sonic-divider>
26
+ <sonic-divider size="lg" label="lg"></sonic-divider>
27
+ </template>
28
+ </sonic-code>
29
+
30
+ ## Custom
31
+ <sonic-code>
32
+ <template>
33
+ <sonic-divider><span class="mr-2">Lorem ipsum dolor sit amet</span><sonic-badge type="danger">+25</sonic-badge></sonic-divider>
34
+ </template>
35
+ </sonic-code>
@@ -0,0 +1,77 @@
1
+ # Checkbox
2
+
3
+ ## Size
4
+ <sonic-code>
5
+ <template>
6
+ <div class="grid gap-2">
7
+ <sonic-checkbox size="2xs">2xs checkbox</sonic-checkbox>
8
+ <sonic-checkbox size="xs">xs checkbox</sonic-checkbox>
9
+ <sonic-checkbox size="sm">sm checkbox</sonic-checkbox>
10
+ <sonic-checkbox>default checkbox</sonic-checkbox>
11
+ <sonic-checkbox size="lg">lg checkbox</sonic-checkbox>
12
+ <sonic-checkbox size="xl">xl checkbox</sonic-checkbox>
13
+ <sonic-checkbox size="2xl">2xl checkbox</sonic-checkbox>
14
+ </div>
15
+ </template>
16
+ </sonic-code>
17
+
18
+ ## Checked
19
+ <sonic-code>
20
+ <template>
21
+ <sonic-checkbox checked
22
+ >Already checked checkbox
23
+ </sonic-checkbox>
24
+ </template>
25
+ </sonic-code>
26
+
27
+ ## Disabled
28
+ <sonic-code>
29
+ <template>
30
+ <sonic-checkbox disabled
31
+ >Disabled checkbox
32
+ </sonic-checkbox>
33
+ </template>
34
+ </sonic-code>
35
+
36
+ ## Disabled and checked
37
+ <sonic-code>
38
+ <template>
39
+ <sonic-checkbox disabled checked
40
+ >Disabled but already checked checkbox
41
+ </sonic-checkbox>
42
+ </template>
43
+ </sonic-code>
44
+
45
+ ## Checkbox with link
46
+ <sonic-code>
47
+ <template>
48
+ <sonic-checkbox>Checkbox with <sonic-link href="#" class="underline text-info">link</sonic-link>
49
+ </template>
50
+ </sonic-code>
51
+
52
+ ## Check all checkbox
53
+ <sonic-code>
54
+ <template>
55
+ <div formDataProvider="checkbox-check-all-demo">
56
+ <sonic-checkbox name='someSharedName' value="all" checksAll>All</sonic-checkbox>
57
+ <sonic-divider></sonic-divider>
58
+ <div class="grid gap-2">
59
+ <sonic-checkbox name="someSharedName" value="foo">Foo</sonic-checkbox>
60
+ <sonic-checkbox name="someSharedName" value="bar">Bar</sonic-checkbox>
61
+ </div>
62
+ <sonic-divider></sonic-divider>
63
+ <div>
64
+ <span>Enabling unsetOnDisconect ensures that outdated or irrelevant values are not retained in the form state once their associated inputs are no longer rendered.</span>
65
+ <div id="prunable-checkbox" class="flex gap-2 items-center">
66
+ <sonic-checkbox name="someSharedName" value="baz">Baz</sonic-checkbox>
67
+ <sonic-button variant="ghost" shape="circle" unique name="toggleCheckboxExistance" onclick="document.getElementById('prunable-checkbox').remove();" value="true"><sonic-icon library="fontAwesome" prefix="solid" name="trash"></sonic-icon></sonic-button>
68
+ </div>
69
+ </div>
70
+ </template>
71
+ </sonic-code>
72
+
73
+ ## Example of use — blacklist + queue
74
+
75
+ Checked **`blacklistFlags`** values are sent to the mock API (`?blacklistFlags=racist,sexist,…`), which excludes jokes whose **`flags`** match (see `filterDocsJokes` in `src/docs/mock-api/fixtures.ts`).
76
+
77
+ <docs-lit-demo for="docs-joke-blacklist-demo"></docs-lit-demo>