@supersoniks/concorde 5.0.0 → 5.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/.gitlab-ci.yml +0 -13
  2. package/build-infos.json +1 -1
  3. package/concorde-core.bundle.js +606 -689
  4. package/concorde-core.es.js +4511 -4329
  5. package/dist/concorde-core.bundle.js +606 -689
  6. package/dist/concorde-core.es.js +4511 -4329
  7. package/gitlab/job_tests.sh +25 -12
  8. package/index.html +3 -3
  9. package/package.json +16 -1
  10. package/scripts/post-build-docs.js +0 -0
  11. package/scripts/post-build.mjs +0 -0
  12. package/src/core/components/functional/fetch/fetch.md +0 -0
  13. package/src/core/components/functional/if/if.md +0 -0
  14. package/src/core/components/functional/list/list.demo.ts +0 -0
  15. package/src/core/components/functional/list/list.md +0 -0
  16. package/src/core/components/functional/list/list.ts +0 -0
  17. package/src/core/components/functional/router/router.md +0 -0
  18. package/src/core/components/functional/router/router.ts +0 -0
  19. package/src/core/components/functional/sdui/sdui.md +0 -0
  20. package/src/core/components/functional/states/states.md +0 -0
  21. package/src/core/components/functional/submit/submit.md +0 -0
  22. package/src/core/components/ui/_css/rounded.ts +36 -0
  23. package/src/core/components/ui/_css/size.ts +0 -0
  24. package/src/core/components/ui/_css/type.ts +49 -0
  25. package/src/core/components/ui/_i18n/ui-aria-labels.ts +104 -0
  26. package/src/core/components/ui/alert/alert.md +128 -72
  27. package/src/core/components/ui/alert/alert.spec.ts +145 -0
  28. package/src/core/components/ui/alert/alert.ts +86 -91
  29. package/src/core/components/ui/alert-messages/alert-messages.ts +1 -1
  30. package/src/core/components/ui/badge/badge.md +126 -78
  31. package/src/core/components/ui/badge/badge.ts +29 -81
  32. package/src/core/components/ui/button/button.md +1 -0
  33. package/src/core/components/ui/button/button.ts +11 -8
  34. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  35. package/src/core/components/ui/captcha/captcha.md +0 -0
  36. package/src/core/components/ui/card/card-header.ts +7 -2
  37. package/src/core/components/ui/card/card.md +120 -65
  38. package/src/core/components/ui/divider/divider.ts +4 -9
  39. package/src/core/components/ui/form/fieldset/legend-description.ts +1 -1
  40. package/src/core/components/ui/form/fieldset/legend.ts +1 -1
  41. package/src/core/components/ui/form/input/input.md +1 -1
  42. package/src/core/components/ui/form/input/input.ts +19 -15
  43. package/src/core/components/ui/form/radio/radio.md +0 -0
  44. package/src/core/components/ui/form/select/select.md +0 -0
  45. package/src/core/components/ui/form/switch/switch.md +0 -0
  46. package/src/core/components/ui/form/textarea/textarea.md +1 -1
  47. package/src/core/components/ui/image/image.md +147 -53
  48. package/src/core/components/ui/image/image.ts +10 -44
  49. package/src/core/components/ui/link/link.md +2 -2
  50. package/src/core/components/ui/link/link.ts +42 -37
  51. package/src/core/components/ui/loader/loader.md +0 -0
  52. package/src/core/components/ui/menu/menu.md +0 -0
  53. package/src/core/components/ui/modal/modal-close.ts +8 -12
  54. package/src/core/components/ui/modal/modal.md +0 -0
  55. package/src/core/components/ui/modal/modal.ts +18 -18
  56. package/src/core/components/ui/pop/pop.md +105 -1
  57. package/src/core/components/ui/pop/pop.ts +143 -148
  58. package/src/core/components/ui/table/table-caption.ts +0 -0
  59. package/src/core/components/ui/table/table.md +0 -0
  60. package/src/core/components/ui/table/table.ts +2 -8
  61. package/src/core/components/ui/theme/theme.ts +1 -1
  62. package/src/core/components/ui/toast/dismissed.ts +14 -0
  63. package/src/core/components/ui/toast/toast-item.ts +139 -91
  64. package/src/core/components/ui/toast/toast.ts +4 -7
  65. package/src/core/components/ui/tooltip/tooltip.ts +176 -154
  66. package/src/core/utils/LocationHandler.ts +12 -5
  67. package/src/core/utils/dismissed.ts +22 -0
  68. package/src/core/utils/positioning.spec.ts +208 -0
  69. package/src/core/utils/positioning.ts +183 -0
  70. package/src/core/utils/route.ts +0 -0
  71. package/src/directives.ts +2 -3
  72. package/src/docs/_core-concept/subscriber.md +0 -0
  73. package/src/docs/_getting-started/concorde-outside.md +3 -3
  74. package/src/docs/_getting-started/my-first-subscriber.md +0 -0
  75. package/src/docs/_getting-started/pubsub.md +0 -0
  76. package/src/docs/_getting-started/start.md +0 -0
  77. package/src/docs/code.ts +3 -1
  78. package/src/docs/example/users.ts +0 -0
  79. package/src/docs/search/docs-search.json +651 -21
  80. package/src/docs/search/page.ts +0 -0
  81. package/src/docs/tailwind/css/tailwind.css +13 -6
  82. package/src/tsconfig.json +45 -0
  83. package/src/tsconfig.tsbuildinfo +1 -1
  84. package/tailwind.config.js +50 -3
  85. package/vitest.setup.ts +49 -13
  86. package/.github/workflows/ci.yml +0 -21
  87. package/.github-export-ignore +0 -30
  88. package/CONTRIBUTING.md +0 -59
  89. package/DEV.md +0 -54
  90. package/LICENSE +0 -21
  91. package/OPEN_SOURCE_CHECKPOINT.md +0 -133
  92. package/concorde-3d.bundle.js +0 -3960
  93. package/concorde-3d.es.js +0 -33433
  94. package/concorde-hugging-face-infer.bundle.js +0 -32
  95. package/concorde-hugging-face-infer.es.js +0 -2952
  96. package/concorde-shader.bundle.js +0 -116
  97. package/concorde-shader.es.js +0 -8353
  98. package/concorde-webgpu.bundle.js +0 -307
  99. package/concorde-webgpu.es.js +0 -8627
  100. package/docs/altcha-widget.js +0 -2662
  101. package/docs/assets/index-BZiZXMU-.css +0 -1
  102. package/docs/assets/index-FmK4JaIM.js +0 -11992
  103. package/docs/crawl/core/components/functional/date/date.html +0 -190
  104. package/docs/crawl/core/components/functional/fetch/fetch.html +0 -109
  105. package/docs/crawl/core/components/functional/if/if.html +0 -27
  106. package/docs/crawl/core/components/functional/jsonata/jsonata.html +0 -79
  107. package/docs/crawl/core/components/functional/list/list.html +0 -70
  108. package/docs/crawl/core/components/functional/mix/mix.html +0 -45
  109. package/docs/crawl/core/components/functional/queue/queue.html +0 -96
  110. package/docs/crawl/core/components/functional/router/router.html +0 -106
  111. package/docs/crawl/core/components/functional/sdui/sdui.html +0 -269
  112. package/docs/crawl/core/components/functional/states/states.html +0 -66
  113. package/docs/crawl/core/components/functional/submit/submit.html +0 -160
  114. package/docs/crawl/core/components/functional/subscriber/subscriber.html +0 -67
  115. package/docs/crawl/core/components/functional/value/value.html +0 -51
  116. package/docs/crawl/core/components/ui/alert/alert.html +0 -110
  117. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +0 -23
  118. package/docs/crawl/core/components/ui/badge/badge.html +0 -119
  119. package/docs/crawl/core/components/ui/button/button.html +0 -149
  120. package/docs/crawl/core/components/ui/captcha/captcha.html +0 -30
  121. package/docs/crawl/core/components/ui/card/card.html +0 -99
  122. package/docs/crawl/core/components/ui/divider/divider.html +0 -58
  123. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +0 -73
  124. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +0 -135
  125. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +0 -79
  126. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +0 -62
  127. package/docs/crawl/core/components/ui/form/input/input.html +0 -109
  128. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +0 -106
  129. package/docs/crawl/core/components/ui/form/radio/radio.html +0 -56
  130. package/docs/crawl/core/components/ui/form/select/select.html +0 -73
  131. package/docs/crawl/core/components/ui/form/switch/switch.html +0 -56
  132. package/docs/crawl/core/components/ui/form/textarea/textarea.html +0 -59
  133. package/docs/crawl/core/components/ui/group/group.html +0 -82
  134. package/docs/crawl/core/components/ui/icon/icon.html +0 -133
  135. package/docs/crawl/core/components/ui/image/image.html +0 -110
  136. package/docs/crawl/core/components/ui/link/link.html +0 -42
  137. package/docs/crawl/core/components/ui/loader/loader.html +0 -50
  138. package/docs/crawl/core/components/ui/menu/menu.html +0 -322
  139. package/docs/crawl/core/components/ui/modal/modal.html +0 -117
  140. package/docs/crawl/core/components/ui/pop/pop.html +0 -102
  141. package/docs/crawl/core/components/ui/progress/progress.html +0 -58
  142. package/docs/crawl/core/components/ui/table/table.html +0 -413
  143. package/docs/crawl/core/components/ui/toast/toast.html +0 -122
  144. package/docs/crawl/core/components/ui/tooltip/tooltip.html +0 -79
  145. package/docs/crawl/docs/_core-concept/dataFlow.html +0 -177
  146. package/docs/crawl/docs/_core-concept/overview.html +0 -66
  147. package/docs/crawl/docs/_core-concept/subscriber.html +0 -75
  148. package/docs/crawl/docs/_decorators/ancestor-attribute.html +0 -116
  149. package/docs/crawl/docs/_decorators/auto-subscribe.html +0 -202
  150. package/docs/crawl/docs/_decorators/bind.html +0 -141
  151. package/docs/crawl/docs/_decorators/get.html +0 -149
  152. package/docs/crawl/docs/_decorators/handle.html +0 -165
  153. package/docs/crawl/docs/_decorators/on-assign.html +0 -355
  154. package/docs/crawl/docs/_decorators/patch.html +0 -78
  155. package/docs/crawl/docs/_decorators/post.html +0 -139
  156. package/docs/crawl/docs/_decorators/publish.html +0 -61
  157. package/docs/crawl/docs/_decorators/put.html +0 -78
  158. package/docs/crawl/docs/_decorators/subscribe.html +0 -109
  159. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +0 -137
  160. package/docs/crawl/docs/_directives/sub.html +0 -93
  161. package/docs/crawl/docs/_getting-started/ai-agents.html +0 -173
  162. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +0 -100
  163. package/docs/crawl/docs/_getting-started/concorde-outside.html +0 -58
  164. package/docs/crawl/docs/_getting-started/create-a-component.html +0 -111
  165. package/docs/crawl/docs/_getting-started/my-first-component.html +0 -189
  166. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +0 -110
  167. package/docs/crawl/docs/_getting-started/pubsub.html +0 -62
  168. package/docs/crawl/docs/_getting-started/start.html +0 -76
  169. package/docs/crawl/docs/_getting-started/theming.html +0 -85
  170. package/docs/crawl/docs/_misc/api-configuration.html +0 -149
  171. package/docs/crawl/docs/_misc/dataProviderKey.html +0 -135
  172. package/docs/crawl/docs/_misc/docs-mock-api.html +0 -158
  173. package/docs/crawl/docs/_misc/dynamic-path.html +0 -180
  174. package/docs/crawl/docs/_misc/endpoint.html +0 -50
  175. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +0 -138
  176. package/docs/crawl/docs/_misc/html-integration.html +0 -48
  177. package/docs/crawl/hubs/decorators.html +0 -547
  178. package/docs/crawl/hubs/form-components.html +0 -357
  179. package/docs/crawl/hubs/remote-data.html +0 -452
  180. package/docs/crawl/index.html +0 -101
  181. package/docs/css/docs.css +0 -0
  182. package/docs/docs-mock-api-sw.js +0 -720
  183. package/docs/docs-mock-api-sw.js.map +0 -7
  184. package/docs/fonts/ClashGrotesk-Bold.eot +0 -0
  185. package/docs/fonts/ClashGrotesk-Bold.ttf +0 -0
  186. package/docs/fonts/ClashGrotesk-Bold.woff +0 -0
  187. package/docs/fonts/ClashGrotesk-Bold.woff2 +0 -0
  188. package/docs/fonts/ClashGrotesk-Extralight.eot +0 -0
  189. package/docs/fonts/ClashGrotesk-Extralight.ttf +0 -0
  190. package/docs/fonts/ClashGrotesk-Extralight.woff +0 -0
  191. package/docs/fonts/ClashGrotesk-Extralight.woff2 +0 -0
  192. package/docs/fonts/ClashGrotesk-Light.eot +0 -0
  193. package/docs/fonts/ClashGrotesk-Light.ttf +0 -0
  194. package/docs/fonts/ClashGrotesk-Light.woff +0 -0
  195. package/docs/fonts/ClashGrotesk-Light.woff2 +0 -0
  196. package/docs/fonts/ClashGrotesk-Medium.eot +0 -0
  197. package/docs/fonts/ClashGrotesk-Medium.ttf +0 -0
  198. package/docs/fonts/ClashGrotesk-Medium.woff +0 -0
  199. package/docs/fonts/ClashGrotesk-Medium.woff2 +0 -0
  200. package/docs/fonts/ClashGrotesk-Regular.eot +0 -0
  201. package/docs/fonts/ClashGrotesk-Regular.ttf +0 -0
  202. package/docs/fonts/ClashGrotesk-Regular.woff +0 -0
  203. package/docs/fonts/ClashGrotesk-Regular.woff2 +0 -0
  204. package/docs/fonts/ClashGrotesk-Semibold.eot +0 -0
  205. package/docs/fonts/ClashGrotesk-Semibold.ttf +0 -0
  206. package/docs/fonts/ClashGrotesk-Semibold.woff +0 -0
  207. package/docs/fonts/ClashGrotesk-Semibold.woff2 +0 -0
  208. package/docs/fonts/ClashGrotesk-Variable.eot +0 -0
  209. package/docs/fonts/ClashGrotesk-Variable.ttf +0 -0
  210. package/docs/fonts/ClashGrotesk-Variable.woff +0 -0
  211. package/docs/fonts/ClashGrotesk-Variable.woff2 +0 -0
  212. package/docs/img/concorde-icon.svg +0 -5
  213. package/docs/img/concorde-logo.svg +0 -1
  214. package/docs/img/concorde.png +0 -0
  215. package/docs/img/concorde_def.png +0 -0
  216. package/docs/img/concorde_seuil.png.webp +0 -0
  217. package/docs/img/concorde_seuil_invert.png +0 -0
  218. package/docs/img/paul_metrand.jpg +0 -0
  219. package/docs/img/paul_metrand_xs.jpg +0 -0
  220. package/docs/index.html +0 -93
  221. package/docs/llms-full.txt +0 -5787
  222. package/docs/llms.txt +0 -104
  223. package/docs/robots.txt +0 -16
  224. package/docs/sitemap.xml +0 -237
  225. package/docs/src/core/components/functional/date/date.md +0 -290
  226. package/docs/src/core/components/functional/fetch/fetch.md +0 -125
  227. package/docs/src/core/components/functional/if/if.md +0 -9
  228. package/docs/src/core/components/functional/jsonata/jsonata.md +0 -56
  229. package/docs/src/core/components/functional/list/list.md +0 -65
  230. package/docs/src/core/components/functional/mix/mix.md +0 -41
  231. package/docs/src/core/components/functional/queue/queue.md +0 -72
  232. package/docs/src/core/components/functional/router/router.md +0 -94
  233. package/docs/src/core/components/functional/sdui/default-library.json +0 -108
  234. package/docs/src/core/components/functional/sdui/example.json +0 -99
  235. package/docs/src/core/components/functional/sdui/sdui.md +0 -356
  236. package/docs/src/core/components/functional/states/states.md +0 -87
  237. package/docs/src/core/components/functional/submit/submit.md +0 -114
  238. package/docs/src/core/components/functional/subscriber/subscriber.md +0 -91
  239. package/docs/src/core/components/functional/value/value.md +0 -35
  240. package/docs/src/core/components/ui/alert/alert.md +0 -121
  241. package/docs/src/core/components/ui/alert-messages/alert-messages.md +0 -0
  242. package/docs/src/core/components/ui/badge/badge.md +0 -127
  243. package/docs/src/core/components/ui/button/button.md +0 -182
  244. package/docs/src/core/components/ui/captcha/captcha.md +0 -12
  245. package/docs/src/core/components/ui/card/card.md +0 -97
  246. package/docs/src/core/components/ui/divider/divider.md +0 -35
  247. package/docs/src/core/components/ui/form/checkbox/checkbox.md +0 -77
  248. package/docs/src/core/components/ui/form/fieldset/fieldset.md +0 -129
  249. package/docs/src/core/components/ui/form/form-actions/form-actions.md +0 -77
  250. package/docs/src/core/components/ui/form/form-layout/form-layout.md +0 -44
  251. package/docs/src/core/components/ui/form/input/input.md +0 -142
  252. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -133
  253. package/docs/src/core/components/ui/form/radio/radio.md +0 -57
  254. package/docs/src/core/components/ui/form/select/select.md +0 -71
  255. package/docs/src/core/components/ui/form/switch/switch.md +0 -57
  256. package/docs/src/core/components/ui/form/textarea/textarea.md +0 -65
  257. package/docs/src/core/components/ui/group/group.md +0 -75
  258. package/docs/src/core/components/ui/icon/icon.md +0 -125
  259. package/docs/src/core/components/ui/icon/icons.json +0 -1
  260. package/docs/src/core/components/ui/image/image.md +0 -107
  261. package/docs/src/core/components/ui/link/link.md +0 -43
  262. package/docs/src/core/components/ui/loader/loader.md +0 -55
  263. package/docs/src/core/components/ui/menu/menu.md +0 -329
  264. package/docs/src/core/components/ui/modal/modal.md +0 -119
  265. package/docs/src/core/components/ui/pop/pop.md +0 -96
  266. package/docs/src/core/components/ui/progress/progress.md +0 -63
  267. package/docs/src/core/components/ui/table/table.md +0 -455
  268. package/docs/src/core/components/ui/toast/toast.md +0 -166
  269. package/docs/src/core/components/ui/tooltip/tooltip.md +0 -82
  270. package/docs/src/docs/_core-concept/dataFlow.md +0 -88
  271. package/docs/src/docs/_core-concept/overview.md +0 -57
  272. package/docs/src/docs/_core-concept/subscriber.md +0 -75
  273. package/docs/src/docs/_decorators/ancestor-attribute.md +0 -127
  274. package/docs/src/docs/_decorators/auto-subscribe.md +0 -202
  275. package/docs/src/docs/_decorators/bind.md +0 -167
  276. package/docs/src/docs/_decorators/get.md +0 -162
  277. package/docs/src/docs/_decorators/handle.md +0 -175
  278. package/docs/src/docs/_decorators/on-assign.md +0 -390
  279. package/docs/src/docs/_decorators/patch.md +0 -70
  280. package/docs/src/docs/_decorators/post.md +0 -146
  281. package/docs/src/docs/_decorators/publish.md +0 -55
  282. package/docs/src/docs/_decorators/put.md +0 -70
  283. package/docs/src/docs/_decorators/subscribe.md +0 -100
  284. package/docs/src/docs/_decorators/wait-for-ancestors.md +0 -163
  285. package/docs/src/docs/_directives/sub.md +0 -91
  286. package/docs/src/docs/_getting-started/ai-agents.md +0 -76
  287. package/docs/src/docs/_getting-started/concorde-manual-install.md +0 -133
  288. package/docs/src/docs/_getting-started/concorde-outside.md +0 -33
  289. package/docs/src/docs/_getting-started/create-a-component.md +0 -139
  290. package/docs/src/docs/_getting-started/my-first-component.md +0 -236
  291. package/docs/src/docs/_getting-started/my-first-subscriber.md +0 -120
  292. package/docs/src/docs/_getting-started/pubsub.md +0 -37
  293. package/docs/src/docs/_getting-started/start.md +0 -47
  294. package/docs/src/docs/_getting-started/theming.md +0 -91
  295. package/docs/src/docs/_misc/api-configuration.md +0 -81
  296. package/docs/src/docs/_misc/dataProviderKey.md +0 -168
  297. package/docs/src/docs/_misc/docs-mock-api.md +0 -63
  298. package/docs/src/docs/_misc/dynamic-path.md +0 -71
  299. package/docs/src/docs/_misc/endpoint.md +0 -45
  300. package/docs/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  301. package/docs/src/docs/_misc/html-integration.md +0 -15
  302. package/docs/src/docs/search/docs-search.json +0 -9512
  303. package/docs/src/tag-list.json +0 -1
  304. package/docs/src/tsconfig-model.json +0 -23
  305. package/docs/src/tsconfig.declarations.json +0 -22
  306. package/docs/src/tsconfig.emit.json +0 -23
  307. package/docs/src/tsconfig.json +0 -858
  308. package/docs/svg/regular/plane.svg +0 -1
  309. package/docs/svg/solid/plane.svg +0 -1
  310. package/gitlab/job_github_mirror.sh +0 -39
  311. package/scripts/github-export.mjs +0 -150
  312. package/src/css.d.ts +0 -19
  313. package/src/tsconfig.declarations.json +0 -22
  314. package/src/tsconfig.emit.json +0 -23
@@ -1,127 +1,175 @@
1
1
  # Badge
2
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
+
3
7
  ## Type
8
+
9
+ `default` — subtle background (`base-100`). `neutral` — dark fill (`base-content`) with light text, useful on light backgrounds.
10
+
4
11
  <sonic-code>
5
12
  <template>
6
- <sonic-badge>Default</sonic-badge>
7
- <sonic-badge type="primary">Primary</sonic-badge>
8
- <sonic-badge type="neutral">Neutral</sonic-badge>
9
- <sonic-badge type="warning">Warning</sonic-badge>
10
- <sonic-badge type="info">Info</sonic-badge>
11
- <sonic-badge type="success">Success</sonic-badge>
12
- <sonic-badge type="danger">Danger</sonic-badge>
13
- <sonic-badge type="contrast">Contrast</sonic-badge>
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>
14
22
  </template>
15
23
  </sonic-code>
16
24
 
25
+ ## Variant
26
+
27
+ `outline` — border and text in the `type` color. `ghost` — text only, no padding (except in forced-colors mode).
17
28
 
18
29
  ## Outline
30
+
19
31
  <sonic-code>
20
32
  <template>
21
- <div class="flex items-center flex-wrap gap-3">
22
- <sonic-badge variant="outline">Default</sonic-badge>
23
- <sonic-badge variant="outline" type="primary">Primary</sonic-badge>
24
- <sonic-badge variant="outline" type="neutral">Neutral</sonic-badge>
25
- <sonic-badge variant="outline" type="warning">Warning</sonic-badge>
26
- <sonic-badge variant="outline" type="info">Info</sonic-badge>
27
- <sonic-badge variant="outline" type="success">Success</sonic-badge>
28
- <sonic-badge variant="outline" type="danger">Danger</sonic-badge>
29
- <sonic-badge variant="outline" type="contrast">Contrast</sonic-badge>
30
- </div>
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>
31
42
  </template>
32
43
  </sonic-code>
33
44
 
34
45
  ## Ghost
46
+
35
47
  <sonic-code>
36
48
  <template>
37
49
  <div class="flex items-center flex-wrap gap-3">
38
- <sonic-badge variant="ghost">Default</sonic-badge>
39
- <sonic-badge variant="ghost" type="primary">Primary</sonic-badge>
40
- <sonic-badge variant="ghost" type="neutral">Neutral</sonic-badge>
41
- <sonic-badge variant="ghost" type="warning">Warning</sonic-badge>
42
- <sonic-badge variant="ghost" type="info">Info</sonic-badge>
43
- <sonic-badge variant="ghost" type="success">Success</sonic-badge>
44
- <sonic-badge variant="ghost" type="danger">Danger</sonic-badge>
45
- <sonic-badge variant="ghost" type="contrast">Contrast</sonic-badge>
46
- </div>
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>
47
58
  </template>
48
59
  </sonic-code>
49
60
 
50
61
  ## Size
62
+
63
+ Default size is `md` (omit the `size` attribute). Typography and padding follow `sonic-button`.
64
+
51
65
  <sonic-code>
52
66
  <template>
53
- <sonic-badge size="2xs">2Xs badge</sonic-badge>
54
- <sonic-badge size="xs">Xs badge</sonic-badge>
55
- <sonic-badge size="sm">Sm badge</sonic-badge>
56
- <sonic-badge>Md badge</sonic-badge>
57
- <sonic-badge size="lg">Lg badge</sonic-badge>
58
- <sonic-badge size="xl">Xl badge</sonic-badge>
59
- <sonic-badge size="2xl">2Xl badge</sonic-badge>
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>
60
76
  </template>
61
77
  </sonic-code>
62
78
 
79
+ ## Prefix and suffix slots
80
+
81
+ Icons or short text before / after the main label.
63
82
 
64
- ## Empty badges
65
83
  <sonic-code>
66
84
  <template>
67
- <div class="flex items-center flex-wrap gap-3">
68
- <sonic-badge type="danger" size="2xs"></sonic-badge>
69
- <sonic-badge type="danger" size="xs"></sonic-badge>
70
- <sonic-badge type="danger" size="sm"></sonic-badge>
71
- <sonic-badge type="danger"></sonic-badge>
72
- <sonic-badge type="danger" size="lg"></sonic-badge>
73
- <sonic-badge type="danger" size="xl"></sonic-badge>
74
- <sonic-badge type="danger" size="2xl"></sonic-badge>
75
- </div>
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>
76
93
  </template>
77
94
  </sonic-code>
78
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>
79
113
 
80
114
  ## Ellipsis
115
+
116
+ With `ellipsis`, long labels truncate. The parent must constrain width (`max-width`, grid, etc.).
117
+
81
118
  <sonic-code>
82
119
  <template>
83
- <div class="grid grid-cols-3 gap-4" >
84
- <sonic-badge ellipsis size="sm" variant="outline" >
85
- <sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon> Lorem ipsum dolor sit consectetur adipiscing elit. Lorem ipsum dolor sit consectetur adipiscing elit.</sonic-badge>
86
- <sonic-badge ellipsis size="sm" > <sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon> Lorem ipsum dolor sit consectetur adipiscing elit. Lorem ipsum dolor sit consectetur adipiscing elit.</sonic-badge>
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>
87
129
  </div>
88
130
  </template>
89
131
  </sonic-code>
90
132
 
91
133
  ## Badge in button
134
+
135
+ Count inside a button (`slot="suffix"`) or a badge absolutely positioned on a button / icon.
136
+
92
137
  <sonic-code>
93
138
  <template>
94
- <div class="flex flex-wrap gap-4 items-center">
95
- <sonic-button type="default">
96
- Messages <sonic-badge slot="suffix" type="danger" size="xs">5</sonic-badge>
97
- </sonic-button>
98
- <div class="relative inline-block">
99
- <sonic-button type="success" class="relative"> Mon compte </sonic-button>
100
- <sonic-badge type="danger" size="xs" class="absolute right-1 top-0 pe-none transform -translate-y-1/2"
101
- >12</sonic-badge
102
- >
103
- </div>
104
- <div class="relative inline-block">
105
- <sonic-button type="neutral" shape="circle" variant="outline"
106
- ><sonic-icon library="iconoir" name="user"></sonic-icon>
107
- </sonic-button>
108
- <sonic-badge
109
- type="danger"
110
- size="xs"
111
- class="absolute right-1 bottom-1 pe-none transform translate-y-1/2 translate-x-1/2"
112
- >33</sonic-badge
113
- >
114
- </div>
115
- <div class="relative inline-block">
116
- <sonic-button type="neutral" shape="circle" variant="outline"
117
- ><sonic-icon library="iconoir" name="user"></sonic-icon>
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>
118
142
  </sonic-button>
119
- <sonic-badge
120
- type="danger"
121
- size="xs"
122
- class="absolute right-2 bottom-2 pe-none transform translate-y-1/2 translate-x-1/2"
123
- ></sonic-badge>
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>
124
173
  </div>
125
- </div>
126
174
  </template>
127
175
  </sonic-code>
@@ -4,6 +4,7 @@ import {
4
4
  fontSize,
5
5
  Size,
6
6
  } from "@supersoniks/concorde/core/components/ui/_css/size";
7
+ import { typesBg } from "@supersoniks/concorde/core/components/ui/_css/type";
7
8
 
8
9
  const tagName = "sonic-badge";
9
10
  /**
@@ -15,125 +16,73 @@ const tagName = "sonic-badge";
15
16
  export class Badge extends LitElement {
16
17
  static styles = [
17
18
  fontSize,
19
+ typesBg,
18
20
  css`
19
21
  :host {
20
- --sc-badge-gap: 0.3em;
21
- --sc-badge-py: 0.35em;
22
- --sc-badge-px: 0.67em;
23
-
24
- --sc-badge-color: var(--sc-base-content, #000);
25
- --sc-badge-bg: var(--sc-base-100, rgba(0, 0, 0, 0.07));
26
-
27
- /*--sc-badge-border-width: var(--sc-form-border-width, 0.1rem);*/
28
- --sc-badge-border-width: 1px;
29
- --sc-badge-border-color: transparent;
30
- --sc-badge-border: var(--sc-badge-border-width) solid
31
- var(--sc-badge-border-color);
32
-
33
- --sc-badge-rounded: 0.85em;
34
- --sc-badge-fw: var(--sc-font-weight-base, 400);
22
+ --sc-_gap: 0.3em;
23
+ --sc-_py: 0.35em;
24
+ --sc-_px: 0.67em;
25
+ --sc-_rounded: 0.85em;
26
+ --sc-_fw: var(--sc-font-weight-base, 400);
27
+ --sc-_border-width: 1px;
28
+ --sc-_border-color: transparent;
35
29
 
36
30
  display: inline-flex;
37
31
  align-items: center;
32
+ gap: var(--sc-_gap);
38
33
  box-sizing: border-box;
39
- line-height: var(--sc-_lh);
40
- border-radius: var(--sc-badge-rounded);
41
-
42
- background: var(--sc-badge-bg);
43
- color: var(--sc-badge-color);
44
- font-family: var(--sc-badge-ff, var(--sc-font-family-base, sans-serif));
45
- font-weight: var(--sc-badge-fw);
46
- line-height: 1;
47
-
48
- padding-top: var(--sc-badge-py);
49
- padding-bottom: var(--sc-badge-py);
50
- padding-left: var(--sc-badge-px);
51
- padding-right: var(--sc-badge-px);
52
- /**Round pour lissage px */
53
- min-height: round(calc(var(--sc-badge-px) * 2), 1px);
54
- min-width: round(calc(var(--sc-badge-px) * 2), 1px);
55
- border: var(--sc-badge-border);
34
+ line-height: var(--sc-_lh, 1);
35
+ border-radius: var(--sc-_rounded);
36
+ font-family: var(--sc-font-family-base, sans-serif);
37
+ font-weight: var(--sc-_fw);
38
+ padding: var(--sc-_py) var(--sc-_px);
39
+ min-height: round(calc(var(--sc-_px) * 2), 1px);
40
+ min-width: round(calc(var(--sc-_px) * 2), 1px);
41
+ border: var(--sc-_border-width) solid var(--sc-_border-color);
56
42
  -webkit-print-color-adjust: exact;
57
43
  }
58
44
 
59
- /*TYPES*/
60
- :host([type="primary"]) {
61
- --sc-badge-color: var(--sc-primary-content, var(--sc-base, #fff));
62
- --sc-badge-bg: var(--sc-primary, var(--sc-base-content, #000));
63
- }
64
- :host([type="warning"]) {
65
- --sc-badge-color: var(--sc-warning-content, var(--sc-base, #fff));
66
- --sc-badge-bg: var(--sc-warning, var(--sc-base-content, #000));
67
- }
68
- :host([type="danger"]) {
69
- --sc-badge-color: var(--sc-danger-content, var(--sc-base, #fff));
70
- --sc-badge-bg: var(--sc-danger, var(--sc-base-content, #000));
71
- }
72
- :host([type="info"]) {
73
- --sc-badge-color: var(--sc-info-content, var(--sc-base, #fff));
74
- --sc-badge-bg: var(--sc-info, var(--sc-base-content, #000));
75
- }
76
- :host([type="success"]) {
77
- --sc-badge-color: var(--sc-success-content, var(--sc-base, #fff));
78
- --sc-badge-bg: var(--sc-success, var(--sc-base-content, #000));
79
- }
80
- :host([type="neutral"]) {
81
- --sc-badge-color: var(--sc-base, #fff);
82
- --sc-badge-bg: var(--sc-base-content, #000);
83
- }
84
-
85
- :host([contrast]),
86
- :host([type="contrast"]) {
87
- --sc-badge-color: var(--sc-contrast-content, #fff);
88
- --sc-badge-bg: var(--sc-contrast, #000);
89
- }
90
-
91
- /*SIZE*/
92
- :host {
93
- gap: var(--sc-badge-gap);
94
- }
95
-
96
45
  :host([size="2xs"]),
97
46
  :host([size="xs"]),
98
47
  :host([size="sm"]) {
99
- --sc-badge-gap: 0.35em;
48
+ --sc-_gap: 0.35em;
100
49
  }
101
50
 
102
51
  :host([size="lg"]),
103
52
  :host([size="xl"]) {
104
53
  --sc-_lh: 1.2;
105
- --sc-badge-gap: 0.5em;
54
+ --sc-_gap: 0.5em;
106
55
  }
107
56
 
108
57
  /*OUTLINE*/
109
58
  :host([variant="outline"][type]) {
110
- border-width: var(--sc-badge-border-width) !important;
111
- border-color: var(--sc-badge-bg);
112
- color: var(--sc-badge-bg);
59
+ border-width: var(--sc-_border-width) !important;
60
+ border-color: var(--sc-_bg);
61
+ color: var(--sc-_bg);
113
62
  background: transparent;
114
63
  }
115
64
 
116
65
  :host([variant="outline"][type="default"]) {
117
- border-color: var(--sc-base-content, #000);
118
- color: var(--sc-base-content, #000);
66
+ border-color: var(--sc-_color);
67
+ color: var(--sc-_color);
119
68
  background: transparent;
120
69
  }
121
70
 
122
71
  /*GHOST*/
123
72
  :host([variant="ghost"][type]) {
124
- color: var(--sc-badge-bg);
73
+ color: var(--sc-_bg);
125
74
  background: transparent;
126
75
  padding: 0;
127
76
  }
128
77
 
129
78
  @media (forced-colors: active) {
130
79
  :host([variant="ghost"][type]) {
131
- padding: var(--sc-badge-py) var(--sc-badge-px);
80
+ padding: var(--sc-_py) var(--sc-_px);
132
81
  }
133
82
  }
134
-
83
+ /* surcharge du default pour le ghost */
135
84
  :host([variant="ghost"][type="default"]) {
136
- color: var(--sc-badge-color);
85
+ color: var(--sc-_color);
137
86
  background: transparent;
138
87
  }
139
88
 
@@ -169,7 +118,6 @@ export class Badge extends LitElement {
169
118
  | "danger"
170
119
  | "success"
171
120
  | "info"
172
- | "contrast"
173
121
  | "neutral" = "default";
174
122
  /**
175
123
  * Le composant par defaut sans se paramètre à forte afordance
@@ -71,6 +71,7 @@ The length of the button depends on the size of its content
71
71
  <template>
72
72
  <sonic-button loading></sonic-button>
73
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>
74
75
  </template>
75
76
  </sonic-code>
76
77
 
@@ -1,4 +1,6 @@
1
- import LocationHandler from "@supersoniks/concorde/core/utils/LocationHandler";
1
+ import LocationHandler, {
2
+ type AutoActiveMode,
3
+ } from "@supersoniks/concorde/core/utils/LocationHandler";
2
4
  import { html, LitElement, css, CSSResultGroup } from "lit";
3
5
  import {
4
6
  customElement,
@@ -381,8 +383,9 @@ export class Button extends FormCheckable(FormElement(LitElement)) {
381
383
  position: relative;
382
384
  }
383
385
 
384
- :host([loading]) slot {
385
- opacity: 0 !important;
386
+ :host([loading]) slot,
387
+ :host([loading]) slot::slotted(*) {
388
+ visibility: hidden !important;
386
389
  pointer-events: none;
387
390
  }
388
391
  /*Loading*/
@@ -395,8 +398,8 @@ export class Button extends FormCheckable(FormElement(LitElement)) {
395
398
  align-items: center;
396
399
  justify-content: center;
397
400
  line-height: 0;
398
- height: var(--sc-btn-ff);
399
- width: var(--sc-btn-ff);
401
+ height: var(--sc-btn-fs);
402
+ width: var(--sc-btn-fs);
400
403
  animation: rotation 2s infinite linear;
401
404
  }
402
405
 
@@ -479,8 +482,7 @@ export class Button extends FormCheckable(FormElement(LitElement)) {
479
482
  * - strict-path-only : l'url courante match exactement avec le path du bouton sans les query params
480
483
  * - disabled : aucune activation / désactivation
481
484
  */
482
- @property({ type: String }) autoActive: "strict" | "partial" | "disabled" =
483
- "partial";
485
+ @property({ type: String }) autoActive: AutoActiveMode = "partial";
484
486
 
485
487
  /**
486
488
  * Laisse apparaitre un loader en remplacement du contenu du bouton.
@@ -627,7 +629,7 @@ export class Button extends FormCheckable(FormElement(LitElement)) {
627
629
  flexDirection: this.direction,
628
630
  alignItems: this.alignItems,
629
631
  justifyContent: this.justify,
630
- align: this.align,
632
+ textAlign: this.align,
631
633
  minWidth: this.minWidth,
632
634
  };
633
635
 
@@ -640,6 +642,7 @@ export class Button extends FormCheckable(FormElement(LitElement)) {
640
642
  aria-expanded=${ifDefined(this.sonicAriaExpanded)}
641
643
  aria-label=${ifDefined(this.ariaLabel)}
642
644
  aria-labelledby=${ifDefined(this.ariaLabelledby)}
645
+ aria-busy=${ifDefined(this.loading ? "true" : undefined)}
643
646
  ?disabled=${this.disabled}
644
647
  @click=${this.handleChange}
645
648
  @pointerdown=${this.handleRepeatStart}
File without changes
File without changes
@@ -10,7 +10,7 @@ export class CardHeader extends LitElement {
10
10
  css`
11
11
  :host {
12
12
  --sc-card-header-mb: 1.35rem;
13
- --sc-card-header-font-size: 1.875rem;
13
+ --sc-card-header-font-size: 1.5rem;
14
14
  --sc-card-header-font-weight: var(--sc-headings-font-weight, 700);
15
15
  --sc-card-header-font-style: var(--sc-headings-font-style, normal);
16
16
  --sc-card-header-family: var(
@@ -42,8 +42,13 @@ export class CardHeader extends LitElement {
42
42
  flex-shrink: 0;
43
43
  }
44
44
 
45
+ ::slotted([slot="suffix"]) {
46
+ flex-shrink: 0;
47
+ }
48
+
49
+ sonic-card-header-description,
45
50
  ::slotted(sonic-card-header-description) {
46
- margin-top: 0.1em;
51
+ margin-top: 0.12em;
47
52
  }
48
53
  `,
49
54
  ];