@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
@@ -2414,13 +2414,373 @@
2414
2414
  }
2415
2415
  }
2416
2416
  },
2417
+ {
2418
+ "search": "Inline message in the page: title (label), body (text or default slot), icon from status. For HTML or actions, use the slot instead of label / text (plain text only).\n",
2419
+ "files": {
2420
+ "core/components/ui/alert/alert.md": {
2421
+ "title": "Alert",
2422
+ "hashes": {
2423
+ "alert": {
2424
+ "count": 1,
2425
+ "title": "",
2426
+ "type": "paragraph"
2427
+ }
2428
+ }
2429
+ }
2430
+ }
2431
+ },
2432
+ {
2433
+ "search": "Use status: default, info, success, warning, error.\n",
2434
+ "files": {
2435
+ "core/components/ui/alert/alert.md": {
2436
+ "title": "Alert",
2437
+ "hashes": {
2438
+ "alert": {
2439
+ "count": 1,
2440
+ "title": "",
2441
+ "type": "paragraph"
2442
+ }
2443
+ }
2444
+ }
2445
+ }
2446
+ },
2447
+ {
2448
+ "search": "Color and icon follow status. With no status, behavior is default.\n",
2449
+ "files": {
2450
+ "core/components/ui/alert/alert.md": {
2451
+ "title": "Alert",
2452
+ "hashes": {
2453
+ "status": {
2454
+ "count": 1,
2455
+ "title": "Status",
2456
+ "type": "paragraph"
2457
+ }
2458
+ }
2459
+ }
2460
+ }
2461
+ },
2462
+ {
2463
+ "search": "By default, an alert already in the DOM is not announced (no role / aria-live). Set announce when the message appears after user action (API response, validation, etc.): screen readers get role="alert" for error, otherwise role="status" and aria-live="polite".\n",
2464
+ "files": {
2465
+ "core/components/ui/alert/alert.md": {
2466
+ "title": "Alert",
2467
+ "hashes": {
2468
+ "accessibility-announce": {
2469
+ "count": 1,
2470
+ "title": "Accessibility (`announce`)",
2471
+ "type": "paragraph"
2472
+ }
2473
+ }
2474
+ }
2475
+ }
2476
+ },
2477
+ {
2478
+ "search": "sonic-alert-messages sets announce on every rendered alert.\n",
2479
+ "files": {
2480
+ "core/components/ui/alert/alert.md": {
2481
+ "title": "Alert",
2482
+ "hashes": {
2483
+ "accessibility-announce": {
2484
+ "count": 1,
2485
+ "title": "Accessibility (`announce`)",
2486
+ "type": "paragraph"
2487
+ }
2488
+ }
2489
+ }
2490
+ }
2491
+ },
2492
+ {
2493
+ "search": "label and text accept plain text only. The default slot is rendered after text. Use the icon slot to replace the default sonic-icon. noIcon hides the icon.\n",
2494
+ "files": {
2495
+ "core/components/ui/alert/alert.md": {
2496
+ "title": "Alert",
2497
+ "hashes": {
2498
+ "content-and-icon": {
2499
+ "count": 1,
2500
+ "title": "Content and icon",
2501
+ "type": "paragraph"
2502
+ }
2503
+ }
2504
+ }
2505
+ }
2506
+ },
2507
+ {
2508
+ "search": "Project any markup into slot="icon" (emoji, image, custom component). Keep it decorative with aria-hidden="true" when the message text already conveys meaning.\n",
2509
+ "files": {
2510
+ "core/components/ui/alert/alert.md": {
2511
+ "title": "Alert",
2512
+ "hashes": {
2513
+ "custom-icon-slot": {
2514
+ "count": 1,
2515
+ "title": "Custom icon slot",
2516
+ "type": "paragraph"
2517
+ }
2518
+ }
2519
+ }
2520
+ }
2521
+ },
2522
+ {
2523
+ "search": "Rich content in the slot (buttons, links).\n",
2524
+ "files": {
2525
+ "core/components/ui/alert/alert.md": {
2526
+ "title": "Alert",
2527
+ "hashes": {
2528
+ "alert-with-link": {
2529
+ "count": 1,
2530
+ "title": "Alert with link",
2531
+ "type": "paragraph"
2532
+ }
2533
+ }
2534
+ }
2535
+ }
2536
+ },
2537
+ {
2538
+ "search": "Tinted background from the status color (color-mix on currentColor).\n",
2539
+ "files": {
2540
+ "core/components/ui/alert/alert.md": {
2541
+ "title": "Alert",
2542
+ "hashes": {
2543
+ "background": {
2544
+ "count": 1,
2545
+ "title": "Background",
2546
+ "type": "paragraph"
2547
+ }
2548
+ }
2549
+ }
2550
+ }
2551
+ },
2552
+ {
2553
+ "search": "dismissible removes the alert from the DOM when the close control is clicked (i18n aria label). dismissible and background are independent: without background, close sits at the end of the row; with background, top-right.\n",
2554
+ "files": {
2555
+ "core/components/ui/alert/alert.md": {
2556
+ "title": "Alert",
2557
+ "hashes": {
2558
+ "dismissible": {
2559
+ "count": 1,
2560
+ "title": "Dismissible",
2561
+ "type": "paragraph"
2562
+ }
2563
+ }
2564
+ }
2565
+ }
2566
+ },
2567
+ {
2568
+ "search": "With dismissForever, dismissal is stored in localStorage (key sonic-alert-dismissed). A stable id on the element is required; without id, a warning is logged and nothing is persisted.\n",
2569
+ "files": {
2570
+ "core/components/ui/alert/alert.md": {
2571
+ "title": "Alert",
2572
+ "hashes": {
2573
+ "dismiss-forever": {
2574
+ "count": 1,
2575
+ "title": "Dismiss forever",
2576
+ "type": "paragraph"
2577
+ }
2578
+ }
2579
+ }
2580
+ }
2581
+ },
2417
2582
  {
2418
2583
  "search": "Badge",
2419
2584
  "files": {
2420
2585
  "core/components/ui/badge/badge.md": {
2421
2586
  "title": "Badge",
2422
2587
  "hashes": {
2423
- "badge": {
2588
+ "badge": {
2589
+ "count": 1,
2590
+ "title": "",
2591
+ "type": "page"
2592
+ }
2593
+ }
2594
+ }
2595
+ }
2596
+ },
2597
+ {
2598
+ "search": "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.\n",
2599
+ "files": {
2600
+ "core/components/ui/badge/badge.md": {
2601
+ "title": "Badge",
2602
+ "hashes": {
2603
+ "badge": {
2604
+ "count": 1,
2605
+ "title": "",
2606
+ "type": "paragraph"
2607
+ }
2608
+ }
2609
+ }
2610
+ }
2611
+ },
2612
+ {
2613
+ "search": "Colors come from theme tokens (--sc-primary, --sc-danger, …) or the semantic type values below. \n",
2614
+ "files": {
2615
+ "core/components/ui/badge/badge.md": {
2616
+ "title": "Badge",
2617
+ "hashes": {
2618
+ "badge": {
2619
+ "count": 1,
2620
+ "title": "",
2621
+ "type": "paragraph"
2622
+ }
2623
+ }
2624
+ }
2625
+ }
2626
+ },
2627
+ {
2628
+ "search": "default — subtle background (base-100). neutral — dark fill (base-content) with light text, useful on light backgrounds.\n",
2629
+ "files": {
2630
+ "core/components/ui/badge/badge.md": {
2631
+ "title": "Badge",
2632
+ "hashes": {
2633
+ "type": {
2634
+ "count": 1,
2635
+ "title": "Type",
2636
+ "type": "paragraph"
2637
+ }
2638
+ }
2639
+ }
2640
+ }
2641
+ },
2642
+ {
2643
+ "search": "outline — border and text in the type color. ghost — text only, no padding (except in forced-colors mode).\n",
2644
+ "files": {
2645
+ "core/components/ui/badge/badge.md": {
2646
+ "title": "Badge",
2647
+ "hashes": {
2648
+ "variant": {
2649
+ "count": 1,
2650
+ "title": "Variant",
2651
+ "type": "paragraph"
2652
+ }
2653
+ }
2654
+ }
2655
+ }
2656
+ },
2657
+ {
2658
+ "search": "Default size is md (omit the size attribute). Typography and padding follow sonic-button.\n",
2659
+ "files": {
2660
+ "core/components/ui/badge/badge.md": {
2661
+ "title": "Badge",
2662
+ "hashes": {
2663
+ "size": {
2664
+ "count": 1,
2665
+ "title": "Size",
2666
+ "type": "paragraph"
2667
+ }
2668
+ }
2669
+ }
2670
+ }
2671
+ },
2672
+ {
2673
+ "search": "Icons or short text before / after the main label.\n",
2674
+ "files": {
2675
+ "core/components/ui/badge/badge.md": {
2676
+ "title": "Badge",
2677
+ "hashes": {
2678
+ "prefix-and-suffix-slots": {
2679
+ "count": 1,
2680
+ "title": "Prefix and suffix slots",
2681
+ "type": "paragraph"
2682
+ }
2683
+ }
2684
+ }
2685
+ }
2686
+ },
2687
+ {
2688
+ "search": "Badge with no text (visual dot). min-width / min-height keep a readable shape.\n",
2689
+ "files": {
2690
+ "core/components/ui/badge/badge.md": {
2691
+ "title": "Badge",
2692
+ "hashes": {
2693
+ "empty-badges": {
2694
+ "count": 1,
2695
+ "title": "Empty badges",
2696
+ "type": "paragraph"
2697
+ }
2698
+ }
2699
+ }
2700
+ }
2701
+ },
2702
+ {
2703
+ "search": "With ellipsis, long labels truncate. The parent must constrain width (max-width, grid, etc.).\n",
2704
+ "files": {
2705
+ "core/components/ui/badge/badge.md": {
2706
+ "title": "Badge",
2707
+ "hashes": {
2708
+ "ellipsis": {
2709
+ "count": 1,
2710
+ "title": "Ellipsis",
2711
+ "type": "paragraph"
2712
+ }
2713
+ }
2714
+ }
2715
+ }
2716
+ },
2717
+ {
2718
+ "search": "Count inside a button (slot="suffix") or a badge absolutely positioned on a button / icon.\n",
2719
+ "files": {
2720
+ "core/components/ui/badge/badge.md": {
2721
+ "title": "Badge",
2722
+ "hashes": {
2723
+ "badge-in-button": {
2724
+ "count": 1,
2725
+ "title": "Badge in button",
2726
+ "type": "paragraph"
2727
+ }
2728
+ }
2729
+ }
2730
+ }
2731
+ },
2732
+ {
2733
+ "search": "Button",
2734
+ "files": {
2735
+ "core/components/ui/button/button.md": {
2736
+ "title": "Button",
2737
+ "hashes": {
2738
+ "button": {
2739
+ "count": 1,
2740
+ "title": "",
2741
+ "type": "page"
2742
+ }
2743
+ }
2744
+ }
2745
+ }
2746
+ },
2747
+ {
2748
+ "search": "The length of the button depends on the size of its content\n\n",
2749
+ "files": {
2750
+ "core/components/ui/button/button.md": {
2751
+ "title": "Button",
2752
+ "hashes": {
2753
+ "loading": {
2754
+ "count": 1,
2755
+ "title": "Loading",
2756
+ "type": "paragraph"
2757
+ }
2758
+ }
2759
+ }
2760
+ }
2761
+ },
2762
+ {
2763
+ "search": "Captcha",
2764
+ "files": {
2765
+ "core/components/ui/captcha/captcha.md": {
2766
+ "title": "Captcha",
2767
+ "hashes": {
2768
+ "captcha": {
2769
+ "count": 1,
2770
+ "title": "",
2771
+ "type": "page"
2772
+ }
2773
+ }
2774
+ }
2775
+ }
2776
+ },
2777
+ {
2778
+ "search": "Card",
2779
+ "files": {
2780
+ "core/components/ui/card/card.md": {
2781
+ "title": "Card",
2782
+ "hashes": {
2783
+ "card": {
2424
2784
  "count": 1,
2425
2785
  "title": "",
2426
2786
  "type": "page"
@@ -2430,29 +2790,29 @@
2430
2790
  }
2431
2791
  },
2432
2792
  {
2433
- "search": "Button",
2793
+ "search": "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.\n",
2434
2794
  "files": {
2435
- "core/components/ui/button/button.md": {
2436
- "title": "Button",
2795
+ "core/components/ui/card/card.md": {
2796
+ "title": "Card",
2437
2797
  "hashes": {
2438
- "button": {
2798
+ "card": {
2439
2799
  "count": 1,
2440
2800
  "title": "",
2441
- "type": "page"
2801
+ "type": "paragraph"
2442
2802
  }
2443
2803
  }
2444
2804
  }
2445
2805
  }
2446
2806
  },
2447
2807
  {
2448
- "search": "The length of the button depends on the size of its content\n\n",
2808
+ "search": "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).\n",
2449
2809
  "files": {
2450
- "core/components/ui/button/button.md": {
2451
- "title": "Button",
2810
+ "core/components/ui/card/card.md": {
2811
+ "title": "Card",
2452
2812
  "hashes": {
2453
- "loading": {
2813
+ "card": {
2454
2814
  "count": 1,
2455
- "title": "Loading",
2815
+ "title": "",
2456
2816
  "type": "paragraph"
2457
2817
  }
2458
2818
  }
@@ -2460,30 +2820,75 @@
2460
2820
  }
2461
2821
  },
2462
2822
  {
2463
- "search": "Captcha",
2823
+ "search": "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.\n",
2464
2824
  "files": {
2465
- "core/components/ui/captcha/captcha.md": {
2466
- "title": "Captcha",
2825
+ "core/components/ui/card/card.md": {
2826
+ "title": "Card",
2467
2827
  "hashes": {
2468
- "captcha": {
2828
+ "header": {
2469
2829
  "count": 1,
2470
- "title": "",
2471
- "type": "page"
2830
+ "title": "Header",
2831
+ "type": "paragraph"
2472
2832
  }
2473
2833
  }
2474
2834
  }
2475
2835
  }
2476
2836
  },
2477
2837
  {
2478
- "search": "Card",
2838
+ "search": "label and description accept HTML (rendered as markup). Prefer plain text when possible; use the slot for structured content.\n",
2479
2839
  "files": {
2480
2840
  "core/components/ui/card/card.md": {
2481
2841
  "title": "Card",
2482
2842
  "hashes": {
2483
- "card": {
2843
+ "header": {
2484
2844
  "count": 1,
2485
- "title": "",
2486
- "type": "page"
2845
+ "title": "Header",
2846
+ "type": "paragraph"
2847
+ }
2848
+ }
2849
+ }
2850
+ }
2851
+ },
2852
+ {
2853
+ "search": "Optional wrapper for the primary content area (typography, media, forms).\n",
2854
+ "files": {
2855
+ "core/components/ui/card/card.md": {
2856
+ "title": "Card",
2857
+ "hashes": {
2858
+ "main": {
2859
+ "count": 1,
2860
+ "title": "Main",
2861
+ "type": "paragraph"
2862
+ }
2863
+ }
2864
+ }
2865
+ }
2866
+ },
2867
+ {
2868
+ "search": "Optional footer for actions, metadata, or secondary text.\n",
2869
+ "files": {
2870
+ "core/components/ui/card/card.md": {
2871
+ "title": "Card",
2872
+ "hashes": {
2873
+ "footer": {
2874
+ "count": 1,
2875
+ "title": "Footer",
2876
+ "type": "paragraph"
2877
+ }
2878
+ }
2879
+ }
2880
+ }
2881
+ },
2882
+ {
2883
+ "search": "Header, media, body, and footer together.\n",
2884
+ "files": {
2885
+ "core/components/ui/card/card.md": {
2886
+ "title": "Card",
2887
+ "hashes": {
2888
+ "full-example": {
2889
+ "count": 1,
2890
+ "title": "Full example",
2891
+ "type": "paragraph"
2487
2892
  }
2488
2893
  }
2489
2894
  }
@@ -2879,6 +3284,126 @@
2879
3284
  }
2880
3285
  }
2881
3286
  },
3287
+ {
3288
+ "search": "Responsive <img> wrapper: aspect ratio, object-fit: cover, rounded corners, and optional fade-in on load. The host uses a light placeholder background (--sc-placeholder-bg) until the file is ready. Default loading is lazy; set loading="eager" for above-the-fold heroes.\n",
3289
+ "files": {
3290
+ "core/components/ui/image/image.md": {
3291
+ "title": "Image",
3292
+ "hashes": {
3293
+ "image": {
3294
+ "count": 1,
3295
+ "title": "",
3296
+ "type": "paragraph"
3297
+ }
3298
+ }
3299
+ }
3300
+ }
3301
+ },
3302
+ {
3303
+ "search": "Omit rounded for square corners. Boolean rounded uses the theme token --sc-rounded. Sizes: sm, md, lg, xl, full (circle — pair with ratio="1/1"), none (explicit reset).\n",
3304
+ "files": {
3305
+ "core/components/ui/image/image.md": {
3306
+ "title": "Image",
3307
+ "hashes": {
3308
+ "rounded": {
3309
+ "count": 1,
3310
+ "title": "Rounded",
3311
+ "type": "paragraph"
3312
+ }
3313
+ }
3314
+ }
3315
+ }
3316
+ },
3317
+ {
3318
+ "search": "ratio sets CSS aspect-ratio on the image (default auto). The image still fills the host width (width: 100%).\n",
3319
+ "files": {
3320
+ "core/components/ui/image/image.md": {
3321
+ "title": "Image",
3322
+ "hashes": {
3323
+ "aspect-ratio": {
3324
+ "count": 1,
3325
+ "title": "Aspect ratio",
3326
+ "type": "paragraph"
3327
+ }
3328
+ }
3329
+ }
3330
+ }
3331
+ },
3332
+ {
3333
+ "search": "objectPosition maps to CSS object-position (default center center). Useful on wide crops when the subject sits off-center.\n",
3334
+ "files": {
3335
+ "core/components/ui/image/image.md": {
3336
+ "title": "Image",
3337
+ "hashes": {
3338
+ "object-position": {
3339
+ "count": 1,
3340
+ "title": "Object position",
3341
+ "type": "paragraph"
3342
+ }
3343
+ }
3344
+ }
3345
+ }
3346
+ },
3347
+ {
3348
+ "search": "cover stretches the image to fill a positioned parent (position: relative + fixed height or inset). Aspect ratio on the host is ignored while cover is set.\n",
3349
+ "files": {
3350
+ "core/components/ui/image/image.md": {
3351
+ "title": "Image",
3352
+ "hashes": {
3353
+ "cover": {
3354
+ "count": 1,
3355
+ "title": "Cover",
3356
+ "type": "paragraph"
3357
+ }
3358
+ }
3359
+ }
3360
+ }
3361
+ },
3362
+ {
3363
+ "search": "Set transition to fade (default when the attribute is present) or fade-scale-out. The image stays at opacity: 0 until the browser fires load, then the loaded class runs the animation. Changing src on an existing element does not replay the effect — mount a new sonic-image when you need another entrance (galleries, infinite scroll).\n",
3364
+ "files": {
3365
+ "core/components/ui/image/image.md": {
3366
+ "title": "Image",
3367
+ "hashes": {
3368
+ "load-transition": {
3369
+ "count": 1,
3370
+ "title": "Load transition",
3371
+ "type": "paragraph"
3372
+ }
3373
+ }
3374
+ }
3375
+ }
3376
+ },
3377
+ {
3378
+ "search": "Click Add image to append small thumbnails and replay the transition. Clear resets the row.\n",
3379
+ "files": {
3380
+ "core/components/ui/image/image.md": {
3381
+ "title": "Image",
3382
+ "hashes": {
3383
+ "load-transition": {
3384
+ "count": 1,
3385
+ "title": "Load transition",
3386
+ "type": "paragraph"
3387
+ }
3388
+ }
3389
+ }
3390
+ }
3391
+ },
3392
+ {
3393
+ "search": "Always set meaningful alt text (empty string only for decorative images). \n",
3394
+ "files": {
3395
+ "core/components/ui/image/image.md": {
3396
+ "title": "Image",
3397
+ "hashes": {
3398
+ "accessibility-and-parts": {
3399
+ "count": 1,
3400
+ "title": "Accessibility and parts",
3401
+ "type": "paragraph"
3402
+ }
3403
+ }
3404
+ }
3405
+ }
3406
+ },
2882
3407
  {
2883
3408
  "search": "Link",
2884
3409
  "files": {
@@ -2954,6 +3479,111 @@
2954
3479
  }
2955
3480
  }
2956
3481
  },
3482
+ {
3483
+ "search": "Default placement is bottom. Placement is written side-align, like sonic-tooltip: side is top, right, bottom or left, align is start, center or end. Without align, content is aligned on the start of the trigger. If there is not enough room, content flips to the opposite side and stays inside the viewport.\n",
3484
+ "files": {
3485
+ "core/components/ui/pop/pop.md": {
3486
+ "title": "Pop",
3487
+ "hashes": {
3488
+ "placement": {
3489
+ "count": 1,
3490
+ "title": "Placement",
3491
+ "type": "paragraph"
3492
+ }
3493
+ }
3494
+ }
3495
+ }
3496
+ },
3497
+ {
3498
+ "search": "The former space syntax (placement="bottom center") still works but is deprecated.\n",
3499
+ "files": {
3500
+ "core/components/ui/pop/pop.md": {
3501
+ "title": "Pop",
3502
+ "hashes": {
3503
+ "placement": {
3504
+ "count": 1,
3505
+ "title": "Placement",
3506
+ "type": "paragraph"
3507
+ }
3508
+ }
3509
+ }
3510
+ }
3511
+ },
3512
+ {
3513
+ "search": "Default shadow is lg.\n",
3514
+ "files": {
3515
+ "core/components/ui/pop/pop.md": {
3516
+ "title": "Pop",
3517
+ "hashes": {
3518
+ "shadow": {
3519
+ "count": 1,
3520
+ "title": "Shadow",
3521
+ "type": "paragraph"
3522
+ }
3523
+ }
3524
+ }
3525
+ }
3526
+ },
3527
+ {
3528
+ "search": "By default, pop is vertically aligned to the middle. Use inline to align it on the text baseline, e.g. inside a sentence.\n",
3529
+ "files": {
3530
+ "core/components/ui/pop/pop.md": {
3531
+ "title": "Pop",
3532
+ "hashes": {
3533
+ "inline": {
3534
+ "count": 1,
3535
+ "title": "Inline",
3536
+ "type": "paragraph"
3537
+ }
3538
+ }
3539
+ }
3540
+ }
3541
+ },
3542
+ {
3543
+ "search": "By default, a click inside the content closes the pop, as well as a click outside. Add data-on-select="keep" on the content, or on any of its elements, to keep the pop open when interacting with it.\n",
3544
+ "files": {
3545
+ "core/components/ui/pop/pop.md": {
3546
+ "title": "Pop",
3547
+ "hashes": {
3548
+ "keep-open-on-select": {
3549
+ "count": 1,
3550
+ "title": "Keep open on select",
3551
+ "type": "paragraph"
3552
+ }
3553
+ }
3554
+ }
3555
+ }
3556
+ },
3557
+ {
3558
+ "search": "show() and hide() open and close the pop programmatically (see manual above). The pop dispatches a show event when it opens and a hide event when it closes.\n",
3559
+ "files": {
3560
+ "core/components/ui/pop/pop.md": {
3561
+ "title": "Pop",
3562
+ "hashes": {
3563
+ "methods-and-events": {
3564
+ "count": 1,
3565
+ "title": "Methods and events",
3566
+ "type": "paragraph"
3567
+ }
3568
+ }
3569
+ }
3570
+ }
3571
+ },
3572
+ {
3573
+ "search": "The content can be styled from outside with ::part(content).\n",
3574
+ "files": {
3575
+ "core/components/ui/pop/pop.md": {
3576
+ "title": "Pop",
3577
+ "hashes": {
3578
+ "styling": {
3579
+ "count": 1,
3580
+ "title": "Styling",
3581
+ "type": "paragraph"
3582
+ }
3583
+ }
3584
+ }
3585
+ }
3586
+ },
2957
3587
  {
2958
3588
  "search": "Progress bar",
2959
3589
  "files": {