@supersoniks/concorde 5.1.2 → 5.1.3-immutable.1

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 (497) hide show
  1. package/.agents/skills/concorde-docs/SKILL.md +1 -1
  2. package/.claude/skills +1 -0
  3. package/.github/workflows/ci.yml +21 -0
  4. package/.github-export-ignore +30 -0
  5. package/CONTRIBUTING.md +59 -0
  6. package/DEV.md +54 -0
  7. package/LICENSE +21 -0
  8. package/OPEN_SOURCE_CHECKPOINT.md +133 -0
  9. package/README.md +1 -1
  10. package/ai/README.md +29 -41
  11. package/ai/skills/concorde/SKILL.md +54 -324
  12. package/ai/skills/concorde/rules/composition.md +32 -0
  13. package/ai/skills/concorde/rules/data.md +47 -0
  14. package/ai/skills/concorde/rules/http.md +25 -0
  15. package/ai/skills/concorde/rules/lists-forms.md +35 -0
  16. package/ai/skills/concorde/rules/styling.md +46 -0
  17. package/ai/skills/concorde/rules/troubleshooting.md +45 -0
  18. package/build-infos.json +1 -1
  19. package/concorde-core.bundle.js +177 -177
  20. package/concorde-core.es.js +4993 -4833
  21. package/custom-elements-manifest.public.config.mjs +8 -0
  22. package/{.tmp-cem/custom-elements.json → custom-elements.json} +11722 -8868
  23. package/dist/concorde-core.bundle.js +177 -177
  24. package/dist/concorde-core.es.js +4993 -4833
  25. package/dist/docs-mock-api-sw.js +58 -223
  26. package/dist/docs-mock-api-sw.js.map +4 -4
  27. package/dist/img/og-concorde.jpg +0 -0
  28. package/dist/robots.txt +11 -10
  29. package/docs/assets/index-CD4WyL6o.css +1 -0
  30. package/docs/assets/index-D_alEsng.js +12122 -0
  31. package/docs/crawl/core/components/functional/date/date.html +190 -0
  32. package/docs/crawl/core/components/functional/fetch/fetch.html +109 -0
  33. package/docs/crawl/core/components/functional/if/if.html +27 -0
  34. package/docs/crawl/core/components/functional/jsonata/jsonata.html +79 -0
  35. package/docs/crawl/core/components/functional/list/list.html +70 -0
  36. package/docs/crawl/core/components/functional/mix/mix.html +45 -0
  37. package/docs/crawl/core/components/functional/queue/queue.html +96 -0
  38. package/docs/crawl/core/components/functional/router/router.html +106 -0
  39. package/docs/{core → crawl/core}/components/functional/sdui/sdui-extension-points.html +8 -9
  40. package/docs/crawl/core/components/functional/sdui/sdui.html +368 -0
  41. package/docs/crawl/core/components/functional/states/states.html +66 -0
  42. package/docs/crawl/core/components/functional/submit/submit.html +160 -0
  43. package/docs/{core → crawl/core}/components/functional/subscriber/subscriber.html +5 -6
  44. package/docs/crawl/core/components/functional/value/value.html +51 -0
  45. package/docs/{core → crawl/core}/components/ui/alert/alert.html +63 -53
  46. package/docs/{core → crawl/core}/components/ui/alert-messages/alert-messages.html +5 -6
  47. package/docs/{core → crawl/core}/components/ui/badge/badge.html +33 -33
  48. package/docs/crawl/core/components/ui/button/button.html +150 -0
  49. package/docs/crawl/core/components/ui/captcha/captcha.html +112 -0
  50. package/docs/{core → crawl/core}/components/ui/card/card.html +11 -12
  51. package/docs/{core → crawl/core}/components/ui/divider/divider.html +14 -14
  52. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +73 -0
  53. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +266 -0
  54. package/docs/{core → crawl/core}/components/ui/form/form-actions/form-actions.html +23 -23
  55. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +121 -0
  56. package/docs/crawl/core/components/ui/form/input/input.html +109 -0
  57. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +38 -0
  58. package/docs/crawl/core/components/ui/form/radio/radio.html +56 -0
  59. package/docs/crawl/core/components/ui/form/select/select.html +73 -0
  60. package/docs/crawl/core/components/ui/form/switch/switch.html +56 -0
  61. package/docs/crawl/core/components/ui/form/textarea/textarea.html +59 -0
  62. package/docs/crawl/core/components/ui/group/group.html +104 -0
  63. package/docs/{core → crawl/core}/components/ui/icon/icon.html +9 -10
  64. package/docs/crawl/core/components/ui/image/image.html +298 -0
  65. package/docs/{core → crawl/core}/components/ui/link/link.html +11 -12
  66. package/docs/crawl/core/components/ui/loader/loader.html +124 -0
  67. package/docs/{core → crawl/core}/components/ui/menu/menu.html +33 -34
  68. package/docs/crawl/core/components/ui/modal/modal.html +342 -0
  69. package/docs/crawl/core/components/ui/pop/pop.html +296 -0
  70. package/docs/{core → crawl/core}/components/ui/progress/progress.html +7 -8
  71. package/docs/crawl/core/components/ui/table/table.html +545 -0
  72. package/docs/crawl/core/components/ui/theme/theme.html +131 -0
  73. package/docs/crawl/core/components/ui/toast/toast.html +233 -0
  74. package/docs/crawl/core/components/ui/tooltip/tooltip.html +140 -0
  75. package/docs/{docs/getting-started → crawl/docs/_core-concept}/dataFlow.html +29 -26
  76. package/docs/crawl/docs/_core-concept/overview.html +66 -0
  77. package/docs/crawl/docs/_core-concept/subscriber.html +75 -0
  78. package/docs/crawl/docs/_decorators/ancestor-attribute.html +117 -0
  79. package/docs/crawl/docs/_decorators/auto-subscribe.html +202 -0
  80. package/docs/crawl/docs/_decorators/bind.html +141 -0
  81. package/docs/crawl/docs/_decorators/get.html +149 -0
  82. package/docs/crawl/docs/_decorators/handle.html +165 -0
  83. package/docs/crawl/docs/_decorators/on-assign.html +355 -0
  84. package/docs/crawl/docs/_decorators/patch.html +78 -0
  85. package/docs/crawl/docs/_decorators/post.html +139 -0
  86. package/docs/crawl/docs/_decorators/publish.html +61 -0
  87. package/docs/crawl/docs/_decorators/put.html +78 -0
  88. package/docs/crawl/docs/_decorators/subscribe.html +109 -0
  89. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +137 -0
  90. package/docs/crawl/docs/_directives/sub.html +93 -0
  91. package/docs/{docs/getting-started → crawl/docs/_getting-started}/ai-agents.html +11 -12
  92. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +100 -0
  93. package/docs/crawl/docs/_getting-started/concorde-outside.html +58 -0
  94. package/docs/{docs/getting-started → crawl/docs/_getting-started}/create-a-component.html +14 -11
  95. package/docs/{docs/getting-started → crawl/docs/_getting-started}/my-first-component.html +22 -13
  96. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +110 -0
  97. package/docs/crawl/docs/_getting-started/pubsub.html +62 -0
  98. package/docs/crawl/docs/_getting-started/start.html +76 -0
  99. package/docs/{docs/getting-started → crawl/docs/_getting-started}/theming.html +9 -10
  100. package/docs/{docs/misc → crawl/docs/_misc}/api-configuration.html +18 -18
  101. package/docs/{docs/misc → crawl/docs/_misc}/dataProviderKey.html +11 -12
  102. package/docs/{docs/misc → crawl/docs/_misc}/docs-mock-api.html +28 -25
  103. package/docs/{docs/misc → crawl/docs/_misc}/dynamic-path.html +15 -16
  104. package/docs/{docs/misc → crawl/docs/_misc}/endpoint.html +15 -16
  105. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
  106. package/docs/{docs/misc → crawl/docs/_misc}/html-integration.html +15 -12
  107. package/docs/crawl/hubs/decorators.html +547 -0
  108. package/docs/crawl/hubs/form-components.html +381 -0
  109. package/docs/crawl/hubs/remote-data.html +452 -0
  110. package/docs/crawl/index.html +103 -0
  111. package/docs/docs-mock-api-sw.js +223 -58
  112. package/docs/docs-mock-api-sw.js.map +4 -4
  113. package/docs/index.html +68 -95
  114. package/docs/llms-full.txt +3610 -2231
  115. package/docs/llms.txt +86 -94
  116. package/docs/robots.txt +10 -11
  117. package/docs/sitemap.xml +84 -78
  118. package/docs/src/core/components/functional/date/date.md +231 -91
  119. package/docs/src/core/components/functional/fetch/fetch.md +83 -66
  120. package/docs/src/core/components/functional/if/if.md +3 -28
  121. package/docs/src/core/components/functional/jsonata/jsonata.md +37 -42
  122. package/docs/src/core/components/functional/list/list.md +43 -99
  123. package/docs/src/core/components/functional/mix/mix.md +26 -31
  124. package/docs/src/core/components/functional/queue/queue.md +61 -40
  125. package/docs/src/core/components/functional/router/router.md +65 -64
  126. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  127. package/docs/src/core/components/functional/sdui/component-catalog.json +1 -1
  128. package/docs/src/core/components/functional/sdui/example.json +86 -19
  129. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  130. package/docs/src/core/components/functional/sdui/sdui.md +358 -187
  131. package/docs/src/core/components/functional/states/states.md +61 -86
  132. package/docs/src/core/components/functional/submit/submit.md +72 -64
  133. package/docs/src/core/components/functional/value/value.md +22 -34
  134. package/docs/src/core/components/ui/alert/alert.md +58 -48
  135. package/docs/src/core/components/ui/badge/badge.md +34 -27
  136. package/docs/src/core/components/ui/button/button.md +106 -139
  137. package/docs/src/core/components/ui/captcha/captcha.md +32 -17
  138. package/docs/src/core/components/ui/card/card.md +6 -6
  139. package/docs/src/core/components/ui/divider/divider.md +11 -8
  140. package/docs/src/core/components/ui/form/checkbox/checkbox.md +42 -90
  141. package/docs/src/core/components/ui/form/fieldset/fieldset.md +75 -31
  142. package/docs/src/core/components/ui/form/form-actions/form-actions.md +16 -14
  143. package/docs/src/core/components/ui/form/form-layout/form-layout.md +29 -19
  144. package/docs/src/core/components/ui/form/input/input.md +95 -95
  145. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +29 -0
  146. package/docs/src/core/components/ui/form/radio/radio.md +34 -55
  147. package/docs/src/core/components/ui/form/select/select.md +45 -60
  148. package/docs/src/core/components/ui/form/switch/switch.md +34 -57
  149. package/docs/src/core/components/ui/form/textarea/textarea.md +38 -55
  150. package/docs/src/core/components/ui/group/group.md +33 -35
  151. package/docs/src/core/components/ui/icon/icon.md +4 -4
  152. package/docs/src/core/components/ui/image/image.md +107 -41
  153. package/docs/src/core/components/ui/link/link.md +6 -6
  154. package/docs/src/core/components/ui/loader/loader.md +55 -30
  155. package/docs/src/core/components/ui/menu/menu.md +27 -27
  156. package/docs/src/core/components/ui/modal/modal.md +96 -72
  157. package/docs/src/core/components/ui/pop/pop.md +158 -80
  158. package/docs/src/core/components/ui/progress/progress.md +2 -2
  159. package/docs/src/core/components/ui/table/table.md +255 -91
  160. package/docs/src/core/components/ui/theme/theme.md +36 -11
  161. package/docs/src/core/components/ui/toast/toast.md +117 -48
  162. package/docs/src/core/components/ui/tooltip/tooltip.md +62 -27
  163. package/docs/{docs/getting-started → src/docs/_core-concept}/dataFlow.md +18 -17
  164. package/docs/src/docs/_core-concept/overview.md +57 -0
  165. package/docs/src/docs/_core-concept/subscriber.md +75 -0
  166. package/docs/src/docs/_decorators/ancestor-attribute.md +128 -0
  167. package/docs/src/docs/_decorators/auto-subscribe.md +202 -0
  168. package/docs/src/docs/_decorators/bind.md +167 -0
  169. package/docs/src/docs/_decorators/get.md +162 -0
  170. package/docs/src/docs/_decorators/handle.md +175 -0
  171. package/docs/src/docs/_decorators/on-assign.md +390 -0
  172. package/docs/src/docs/_decorators/patch.md +70 -0
  173. package/docs/src/docs/_decorators/post.md +146 -0
  174. package/docs/src/docs/_decorators/publish.md +55 -0
  175. package/docs/src/docs/_decorators/put.md +70 -0
  176. package/docs/src/docs/_decorators/subscribe.md +100 -0
  177. package/docs/src/docs/_decorators/wait-for-ancestors.md +163 -0
  178. package/docs/src/docs/_directives/sub.md +91 -0
  179. package/docs/src/docs/{getting-started → _getting-started}/ai-agents.md +3 -3
  180. package/docs/src/docs/_getting-started/concorde-manual-install.md +133 -0
  181. package/docs/src/docs/_getting-started/concorde-outside.md +33 -0
  182. package/docs/{docs/getting-started → src/docs/_getting-started}/create-a-component.md +6 -3
  183. package/docs/src/docs/{getting-started → _getting-started}/my-first-component.md +14 -5
  184. package/docs/src/docs/_getting-started/my-first-subscriber.md +120 -0
  185. package/docs/src/docs/_getting-started/pubsub.md +37 -0
  186. package/docs/src/docs/{getting-started → _getting-started}/start.md +13 -1
  187. package/docs/src/docs/{getting-started → _getting-started}/theming.md +2 -2
  188. package/docs/src/docs/{misc → _misc}/api-configuration.md +12 -10
  189. package/docs/src/docs/{misc → _misc}/dataProviderKey.md +4 -4
  190. package/docs/{docs/misc → src/docs/_misc}/docs-mock-api.md +13 -12
  191. package/docs/{docs/misc → src/docs/_misc}/dynamic-path.md +8 -8
  192. package/docs/{docs/misc → src/docs/_misc}/endpoint.md +8 -8
  193. package/docs/src/docs/_misc/formelement-subscriber-removal.md +115 -0
  194. package/docs/{docs/misc → src/docs/_misc}/html-integration.md +5 -4
  195. package/docs/src/docs/search/docs-search.json +4375 -2420
  196. package/docs/src/tsconfig.declarations.json +22 -0
  197. package/docs/src/tsconfig.emit.json +23 -0
  198. package/docs/src/tsconfig.json +2 -23
  199. package/gitlab/job_github_mirror.sh +39 -0
  200. package/index.html +89 -0
  201. package/package.json +22 -4
  202. package/public/img/og-concorde.jpg +0 -0
  203. package/scripts/ai-init.mjs +104 -379
  204. package/scripts/ai-init.test.mjs +81 -239
  205. package/scripts/docs-markdown-vite-plugin.ts +11 -5
  206. package/scripts/docs-public-url.mjs +6 -0
  207. package/scripts/docs.htaccess +7 -0
  208. package/scripts/generate-cem.mjs +244 -0
  209. package/scripts/generate-cem.test.mjs +122 -0
  210. package/scripts/generate-crawl-docs.mjs +29 -5
  211. package/scripts/generate-sdui-catalog.mjs +11 -10
  212. package/scripts/github-export.mjs +150 -0
  213. package/scripts/post-build-docs.js +3 -0
  214. package/scripts/post-build.mjs +0 -0
  215. package/scripts/pre-publish.mjs +2 -1
  216. package/scripts/site-pages.mjs +212 -0
  217. package/scripts/site-pages.test.mjs +116 -0
  218. package/site-pages/about.md +22 -0
  219. package/site-pages/privacy.md +32 -0
  220. package/src/core/components/functional/date/date.md +1 -1
  221. package/src/core/components/functional/example/example.ts +3 -1
  222. package/src/core/components/functional/if/if.ts +0 -0
  223. package/src/core/components/functional/list/list.demo.ts +0 -0
  224. package/src/core/components/functional/list/list.md +6 -2
  225. package/src/core/components/functional/list/list.ts +17 -4
  226. package/src/core/components/functional/mix/mix.md +0 -0
  227. package/src/core/components/functional/router/router.demo.ts +0 -0
  228. package/src/core/components/functional/router/router.ts +0 -0
  229. package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
  230. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  231. package/src/core/components/functional/sdui/component-catalog.json +2 -2
  232. package/src/core/components/functional/sdui/example.json +0 -0
  233. package/src/core/components/functional/sdui/sdui-immutable.spec.ts +74 -0
  234. package/src/core/components/functional/sdui/sdui.ts +33 -8
  235. package/src/core/components/functional/sdui/types.ts +0 -0
  236. package/src/core/components/functional/states/states.ts +0 -0
  237. package/src/core/components/functional/submit/submit.spec.ts +60 -0
  238. package/src/core/components/functional/submit/submit.ts +6 -3
  239. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  240. package/src/core/components/functional/value/value.md +0 -0
  241. package/src/core/components/functional/value/value.ts +0 -0
  242. package/src/core/components/ui/_css/size.ts +0 -0
  243. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  244. package/src/core/components/ui/card/card.md +1 -1
  245. package/src/core/components/ui/form/input/input.md +19 -1
  246. package/src/core/components/ui/form/input/input.ts +8 -2
  247. package/src/core/components/ui/form/radio/radio.md +14 -0
  248. package/src/core/components/ui/image/image.md +17 -17
  249. package/src/core/components/ui/modal/modal.md +2 -2
  250. package/src/core/decorators/subscriber/bind.ts +9 -14
  251. package/src/core/decorators/subscriber/subscribe.ts +15 -9
  252. package/src/core/decorators/subscriber/subscribe.type-test.ts +14 -5
  253. package/src/core/mixins/Subscriber.ts +0 -0
  254. package/src/core/utils/DataBindObserver.ts +0 -0
  255. package/src/core/utils/Objects.ts +0 -0
  256. package/src/core/utils/PublisherProxy.ts +166 -125
  257. package/src/core/utils/deepReadonly.spec.ts +66 -0
  258. package/src/core/utils/deepReadonly.ts +71 -0
  259. package/src/core/utils/immutableValue.spec.ts +54 -0
  260. package/src/core/utils/immutableValue.ts +102 -0
  261. package/src/core/utils/nestedDotForm.spec.ts +88 -0
  262. package/src/core/utils/publisherImmutable.spec.ts +76 -0
  263. package/src/core/utils/route.ts +0 -0
  264. package/src/core/utils/strictGet.spec.ts +61 -0
  265. package/src/core/utils/strictGet.ts +102 -0
  266. package/src/css.d.ts +19 -0
  267. package/src/docs/components/docs-demo-sources.ts +3 -3
  268. package/src/docs/decorators/bind.md +23 -24
  269. package/src/docs/docs-location.spec.ts +10 -0
  270. package/src/docs/docs-location.ts +10 -0
  271. package/src/docs/example/decorators-demo-bind-demos.ts +11 -28
  272. package/src/docs/example/docs-toggle-demos.ts +1 -1
  273. package/src/docs/example/users.ts +0 -0
  274. package/src/docs/getting-started/ai-agents.md +29 -55
  275. package/src/docs/getting-started/dataFlow.md +2 -2
  276. package/src/docs/home/home.ts +3 -1
  277. package/src/docs/misc/publisher-get-immutability-docs-crawl.json +902 -0
  278. package/src/docs/misc/publisher-get-immutability-docs-recheck.json +13 -0
  279. package/src/docs/misc/publisher-get-immutability-study.md +229 -0
  280. package/src/docs/navigation/navigation.ts +5 -1
  281. package/src/docs/search/docs-search.json +358 -58
  282. package/src/docs/search/markdown-renderer.ts +6 -1
  283. package/src/docs/tailwind/css/docs/content.css +4 -5
  284. package/src/tsconfig.declarations.json +22 -0
  285. package/src/tsconfig.emit.json +23 -0
  286. package/src/tsconfig.json +53 -5
  287. package/src/tsconfig.tsbuildinfo +1 -1
  288. package/.taste-skill/after/desktop-fold.jpg +0 -0
  289. package/.taste-skill/after/desktop-page-01.jpg +0 -0
  290. package/.taste-skill/after/desktop-page-02.jpg +0 -0
  291. package/.taste-skill/after/desktop-page-03.jpg +0 -0
  292. package/.taste-skill/after/mobile-fold.jpg +0 -0
  293. package/.taste-skill/after/mobile-page-01.jpg +0 -0
  294. package/.taste-skill/after/report.json +0 -4103
  295. package/.taste-skill/after/tablet-fold.jpg +0 -0
  296. package/.taste-skill/after/tablet-page-01.jpg +0 -0
  297. package/.taste-skill/after/tablet-page-02.jpg +0 -0
  298. package/.taste-skill/before/desktop-fold.jpg +0 -0
  299. package/.taste-skill/before/desktop-page-01.jpg +0 -0
  300. package/.taste-skill/before/desktop-page-02.jpg +0 -0
  301. package/.taste-skill/before/mobile-fold.jpg +0 -0
  302. package/.taste-skill/before/mobile-page-01.jpg +0 -0
  303. package/.taste-skill/before/report.json +0 -2556
  304. package/.taste-skill/before/tablet-fold.jpg +0 -0
  305. package/.taste-skill/before/tablet-page-01.jpg +0 -0
  306. package/.taste-skill/direction.json +0 -510
  307. package/.taste-skill/notes.md +0 -84
  308. package/.taste-skill/prod/desktop-fold.jpg +0 -0
  309. package/.taste-skill/prod/desktop-page-01.jpg +0 -0
  310. package/.taste-skill/prod/desktop-page-02.jpg +0 -0
  311. package/.taste-skill/prod/desktop-page-03.jpg +0 -0
  312. package/.taste-skill/prod/mobile-fold.jpg +0 -0
  313. package/.taste-skill/prod/mobile-page-01.jpg +0 -0
  314. package/.taste-skill/prod/mobile-page-02.jpg +0 -0
  315. package/.taste-skill/prod/report.json +0 -1973
  316. package/.taste-skill/prod/tablet-fold.jpg +0 -0
  317. package/.taste-skill/prod/tablet-page-01.jpg +0 -0
  318. package/.taste-skill/prod/tablet-page-02.jpg +0 -0
  319. package/AUDIT.md +0 -228
  320. package/PLAN-AMELIORATION.md +0 -220
  321. package/PLAN-DOCS-AGENTS.md +0 -80
  322. package/ai/AGENTS.md +0 -56
  323. package/ai/cursor/rules/concorde-menu.mdc +0 -15
  324. package/ai/cursor/rules/concorde-scope.mdc +0 -14
  325. package/ai/cursor/rules/concorde-theme.mdc +0 -13
  326. package/ai/cursor/rules/concorde.mdc +0 -66
  327. package/ai/jetbrains/rules/concorde.md +0 -53
  328. package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
  329. package/ai/skills/concorde-imports/SKILL.md +0 -78
  330. package/ai/skills/concorde-menu/SKILL.md +0 -74
  331. package/ai/skills/concorde-scope/SKILL.md +0 -70
  332. package/ai/skills/concorde-theme/SKILL.md +0 -57
  333. package/docs/.htaccess +0 -75
  334. package/docs/404.html +0 -15
  335. package/docs/404.md +0 -5
  336. package/docs/assets/index-BgG6FFPt.js +0 -11765
  337. package/docs/assets/index-x89XINSG.css +0 -1
  338. package/docs/core/components/functional/date/date.html +0 -211
  339. package/docs/core/components/functional/date/date.md +0 -150
  340. package/docs/core/components/functional/fetch/fetch.html +0 -180
  341. package/docs/core/components/functional/fetch/fetch.md +0 -108
  342. package/docs/core/components/functional/if/if.html +0 -65
  343. package/docs/core/components/functional/if/if.md +0 -34
  344. package/docs/core/components/functional/jsonata/jsonata.html +0 -110
  345. package/docs/core/components/functional/jsonata/jsonata.md +0 -61
  346. package/docs/core/components/functional/list/list.html +0 -198
  347. package/docs/core/components/functional/list/list.md +0 -121
  348. package/docs/core/components/functional/mix/mix.html +0 -78
  349. package/docs/core/components/functional/mix/mix.md +0 -46
  350. package/docs/core/components/functional/queue/queue.html +0 -155
  351. package/docs/core/components/functional/queue/queue.md +0 -51
  352. package/docs/core/components/functional/router/router.html +0 -154
  353. package/docs/core/components/functional/router/router.md +0 -93
  354. package/docs/core/components/functional/sdui/sdui-extension-points.md +0 -94
  355. package/docs/core/components/functional/sdui/sdui.html +0 -397
  356. package/docs/core/components/functional/sdui/sdui.md +0 -307
  357. package/docs/core/components/functional/states/states.html +0 -141
  358. package/docs/core/components/functional/states/states.md +0 -112
  359. package/docs/core/components/functional/submit/submit.html +0 -178
  360. package/docs/core/components/functional/submit/submit.md +0 -106
  361. package/docs/core/components/functional/subscriber/subscriber.md +0 -91
  362. package/docs/core/components/functional/translation/translation.html +0 -60
  363. package/docs/core/components/functional/translation/translation.md +0 -38
  364. package/docs/core/components/functional/value/value.html +0 -81
  365. package/docs/core/components/functional/value/value.md +0 -47
  366. package/docs/core/components/ui/alert/alert.md +0 -186
  367. package/docs/core/components/ui/alert-messages/alert-messages.md +0 -85
  368. package/docs/core/components/ui/badge/badge.md +0 -181
  369. package/docs/core/components/ui/button/button.html +0 -309
  370. package/docs/core/components/ui/button/button.md +0 -216
  371. package/docs/core/components/ui/captcha/captcha.html +0 -80
  372. package/docs/core/components/ui/captcha/captcha.md +0 -56
  373. package/docs/core/components/ui/card/card.md +0 -215
  374. package/docs/core/components/ui/divider/divider.md +0 -126
  375. package/docs/core/components/ui/form/checkbox/checkbox.html +0 -200
  376. package/docs/core/components/ui/form/checkbox/checkbox.md +0 -125
  377. package/docs/core/components/ui/form/fieldset/fieldset.html +0 -238
  378. package/docs/core/components/ui/form/fieldset/fieldset.md +0 -161
  379. package/docs/core/components/ui/form/form-actions/form-actions.md +0 -98
  380. package/docs/core/components/ui/form/form-layout/form-layout.html +0 -115
  381. package/docs/core/components/ui/form/form-layout/form-layout.md +0 -109
  382. package/docs/core/components/ui/form/input/input.html +0 -235
  383. package/docs/core/components/ui/form/input/input.md +0 -142
  384. package/docs/core/components/ui/form/radio/radio.html +0 -144
  385. package/docs/core/components/ui/form/radio/radio.md +0 -78
  386. package/docs/core/components/ui/form/select/select.html +0 -178
  387. package/docs/core/components/ui/form/select/select.md +0 -86
  388. package/docs/core/components/ui/form/switch/switch.html +0 -146
  389. package/docs/core/components/ui/form/switch/switch.md +0 -80
  390. package/docs/core/components/ui/form/textarea/textarea.html +0 -162
  391. package/docs/core/components/ui/form/textarea/textarea.md +0 -82
  392. package/docs/core/components/ui/group/group.html +0 -113
  393. package/docs/core/components/ui/group/group.md +0 -77
  394. package/docs/core/components/ui/icon/icon.md +0 -214
  395. package/docs/core/components/ui/image/image.html +0 -194
  396. package/docs/core/components/ui/image/image.md +0 -167
  397. package/docs/core/components/ui/link/link.md +0 -81
  398. package/docs/core/components/ui/loader/loader.html +0 -114
  399. package/docs/core/components/ui/loader/loader.md +0 -87
  400. package/docs/core/components/ui/menu/menu.md +0 -370
  401. package/docs/core/components/ui/modal/modal.html +0 -324
  402. package/docs/core/components/ui/modal/modal.md +0 -211
  403. package/docs/core/components/ui/pop/pop.html +0 -250
  404. package/docs/core/components/ui/pop/pop.md +0 -216
  405. package/docs/core/components/ui/progress/progress.md +0 -109
  406. package/docs/core/components/ui/table/table.html +0 -333
  407. package/docs/core/components/ui/table/table.md +0 -267
  408. package/docs/core/components/ui/theme/theme.html +0 -116
  409. package/docs/core/components/ui/theme/theme.md +0 -97
  410. package/docs/core/components/ui/toast/toast.html +0 -185
  411. package/docs/core/components/ui/toast/toast.md +0 -147
  412. package/docs/core/components/ui/tooltip/tooltip.html +0 -112
  413. package/docs/core/components/ui/tooltip/tooltip.md +0 -89
  414. package/docs/docs/decorators/ancestor-attribute.html +0 -71
  415. package/docs/docs/decorators/ancestor-attribute.md +0 -59
  416. package/docs/docs/decorators/auto-subscribe.html +0 -61
  417. package/docs/docs/decorators/auto-subscribe.md +0 -40
  418. package/docs/docs/decorators/bind.html +0 -86
  419. package/docs/docs/decorators/bind.md +0 -77
  420. package/docs/docs/decorators/get.html +0 -166
  421. package/docs/docs/decorators/get.md +0 -160
  422. package/docs/docs/decorators/handle.html +0 -139
  423. package/docs/docs/decorators/handle.md +0 -119
  424. package/docs/docs/decorators/on-assign.html +0 -72
  425. package/docs/docs/decorators/on-assign.md +0 -63
  426. package/docs/docs/decorators/patch.html +0 -76
  427. package/docs/docs/decorators/patch.md +0 -44
  428. package/docs/docs/decorators/post.html +0 -150
  429. package/docs/docs/decorators/post.md +0 -134
  430. package/docs/docs/decorators/publish.html +0 -74
  431. package/docs/docs/decorators/publish.md +0 -56
  432. package/docs/docs/decorators/put.html +0 -83
  433. package/docs/docs/decorators/put.md +0 -51
  434. package/docs/docs/decorators/subscribe.html +0 -91
  435. package/docs/docs/decorators/subscribe.md +0 -87
  436. package/docs/docs/decorators/wait-for-ancestors.html +0 -82
  437. package/docs/docs/decorators/wait-for-ancestors.md +0 -76
  438. package/docs/docs/directives/sub.html +0 -79
  439. package/docs/docs/directives/sub.md +0 -75
  440. package/docs/docs/directives/t.html +0 -91
  441. package/docs/docs/directives/t.md +0 -73
  442. package/docs/docs/getting-started/ai-agents.md +0 -76
  443. package/docs/docs/getting-started/components.html +0 -27
  444. package/docs/docs/getting-started/components.md +0 -5
  445. package/docs/docs/getting-started/installation.html +0 -69
  446. package/docs/docs/getting-started/installation.md +0 -36
  447. package/docs/docs/getting-started/my-first-component.md +0 -227
  448. package/docs/docs/getting-started/start.html +0 -47
  449. package/docs/docs/getting-started/start.md +0 -35
  450. package/docs/docs/getting-started/theming.md +0 -253
  451. package/docs/docs/index.html +0 -99
  452. package/docs/docs/misc/api-configuration.md +0 -79
  453. package/docs/docs/misc/dataProviderKey.md +0 -168
  454. package/docs/hubs/decorators.html +0 -443
  455. package/docs/hubs/form-components.html +0 -404
  456. package/docs/hubs/remote-data.html +0 -371
  457. package/docs/img/archive/concorde-001-2cv.webp +0 -0
  458. package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  459. package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
  460. package/docs/img/archive/credits.json +0 -28
  461. package/docs/index.md +0 -22
  462. package/docs/src/core/components/functional/translation/translation.md +0 -38
  463. package/docs/src/docs/decorators/ancestor-attribute.md +0 -59
  464. package/docs/src/docs/decorators/auto-subscribe.md +0 -40
  465. package/docs/src/docs/decorators/bind.md +0 -77
  466. package/docs/src/docs/decorators/get.md +0 -160
  467. package/docs/src/docs/decorators/handle.md +0 -119
  468. package/docs/src/docs/decorators/on-assign.md +0 -63
  469. package/docs/src/docs/decorators/patch.md +0 -44
  470. package/docs/src/docs/decorators/post.md +0 -134
  471. package/docs/src/docs/decorators/publish.md +0 -56
  472. package/docs/src/docs/decorators/put.md +0 -51
  473. package/docs/src/docs/decorators/subscribe.md +0 -87
  474. package/docs/src/docs/decorators/wait-for-ancestors.md +0 -76
  475. package/docs/src/docs/directives/sub.md +0 -75
  476. package/docs/src/docs/directives/t.md +0 -73
  477. package/docs/src/docs/getting-started/components.md +0 -5
  478. package/docs/src/docs/getting-started/create-a-component.md +0 -136
  479. package/docs/src/docs/getting-started/dataFlow.md +0 -87
  480. package/docs/src/docs/getting-started/installation.md +0 -36
  481. package/docs/src/docs/misc/docs-mock-api.md +0 -62
  482. package/docs/src/docs/misc/dynamic-path.md +0 -71
  483. package/docs/src/docs/misc/endpoint.md +0 -45
  484. package/docs/src/docs/misc/html-integration.md +0 -14
  485. /package/{docs → dist}/img/concorde/plane_01.jpg +0 -0
  486. /package/{docs → dist}/img/concorde/plane_02.jpg +0 -0
  487. /package/{docs → dist}/img/concorde/plane_03.jpg +0 -0
  488. /package/{docs → dist}/img/concorde/plane_04.jpg +0 -0
  489. /package/{docs → dist}/img/concorde/plane_05.jpg +0 -0
  490. /package/{docs → dist}/img/concorde/plane_06.jpg +0 -0
  491. /package/{docs → dist}/img/concorde/plane_07.jpg +0 -0
  492. /package/{docs → dist}/img/concorde/plane_08.jpg +0 -0
  493. /package/{docs → dist}/img/concorde/plane_09.jpg +0 -0
  494. /package/{docs → dist}/img/concorde/plane_10.jpg +0 -0
  495. /package/{docs → dist}/img/concorde/plane_11.jpg +0 -0
  496. /package/{docs → dist}/img/concorde/plane_12.jpg +0 -0
  497. /package/{docs → dist}/img/concorde/plane_13.jpg +0 -0
@@ -1,186 +0,0 @@
1
- # Alert
2
-
3
- Alerts **surface important feedback** inline—errors, confirmations, or contextual help. Use **`label`** / **`text`** for simple copy, or the **default slot** for rich content (links, buttons). Set **`announce`** when the message appears after an action so screen readers pick it up.
4
-
5
- ## Basic example
6
-
7
- <sonic-code>
8
- <template>
9
- <sonic-alert status="error" label="Gate change" text="CN 001 now departs from gate B12" background></sonic-alert>
10
- </template>
11
- </sonic-code>
12
-
13
- ## Status
14
-
15
- Color and icon follow `status`. With no `status`, behavior is `default`.
16
-
17
- <sonic-code>
18
- <template>
19
- <div class="grid gap-4">
20
- <sonic-alert label="Default">CN 001 · CDG → JFK.</sonic-alert>
21
- <sonic-alert status="success" label="Success">CN 001 has landed at JFK.</sonic-alert>
22
- <sonic-alert status="error" label="Error">CN 001 is cancelled.</sonic-alert>
23
- <sonic-alert status="warning" label="Warning">Turbulence expected over the Atlantic.</sonic-alert>
24
- <sonic-alert status="info" label="Info">Boarding starts in 20 minutes.</sonic-alert>
25
- </div>
26
- </template>
27
- </sonic-code>
28
-
29
- ## Accessibility (`announce`)
30
-
31
- 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"`.
32
-
33
- `sonic-alert-messages` sets `announce` on every rendered alert.
34
-
35
- <sonic-code>
36
- <template>
37
- <sonic-alert announce status="success" label="Checked in" text="Your boarding pass is ready."></sonic-alert>
38
- </template>
39
- </sonic-code>
40
-
41
- ## Content and icon
42
-
43
- `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.
44
-
45
- <sonic-code>
46
- <template>
47
- <sonic-alert status="info" noIcon label="No icon" text="Cruising altitude reached."></sonic-alert>
48
- </template>
49
- </sonic-code>
50
-
51
- ## Custom icon slot
52
-
53
- Project any markup into **`slot="icon"`** (icon, image, custom component). Keep it decorative with `aria-hidden="true"` when the message text already conveys meaning.
54
-
55
- <sonic-code>
56
- <template>
57
- <sonic-alert status="success" label="Upgrade confirmed" background>
58
- <sonic-icon slot="icon" library="iconoir" name="trophy" aria-hidden="true"></sonic-icon>
59
- You are now seated in first class.
60
- </sonic-alert>
61
- </template>
62
- </sonic-code>
63
-
64
- ## Size
65
-
66
- Default size is `md` (omit the `size` attribute). `inherit` follows the parent font size.
67
-
68
- <sonic-code>
69
- <template>
70
- <div class="grid gap-4">
71
- <sonic-alert status="error" label="Delayed" size="2xs">
72
- CN 001 departure moved to 18:40.
73
- </sonic-alert>
74
- <sonic-alert status="error" label="Delayed" size="xs">
75
- CN 001 departure moved to 18:40.
76
- </sonic-alert>
77
- <sonic-alert status="error" label="Delayed" size="sm">
78
- CN 001 departure moved to 18:40.
79
- </sonic-alert>
80
- <sonic-alert status="error" label="Delayed">
81
- CN 001 departure moved to 18:40.
82
- </sonic-alert>
83
- <sonic-alert status="error" label="Delayed" size="lg">
84
- CN 001 departure moved to 18:40.
85
- </sonic-alert>
86
- <sonic-alert status="error" label="Delayed" size="xl">
87
- CN 001 departure moved to 18:40.
88
- </sonic-alert>
89
- <sonic-alert status="error" label="Delayed" size="2xl">
90
- CN 001 departure moved to 18:40.
91
- </sonic-alert>
92
- </div>
93
- </template>
94
- </sonic-code>
95
-
96
- ## Alert with link
97
-
98
- Rich content in the slot (buttons, links).
99
-
100
- <sonic-code>
101
- <template>
102
- <sonic-alert status="info" label="Gate change">
103
- CN 001 now departs from gate B12<br />
104
- <div class="flex gap-2 mt-1">
105
- <sonic-button variant="outline" type="info" size="xs">View flight</sonic-button>
106
- <sonic-button variant="ghost" type="info" size="xs">Dismiss</sonic-button>
107
- </div>
108
- </sonic-alert>
109
- </template>
110
- </sonic-code>
111
-
112
- ## Background
113
-
114
- Tinted background from the `status` color (`color-mix` on `currentColor`).
115
-
116
- <sonic-code>
117
- <template>
118
- <div class="grid gap-4">
119
- <sonic-alert background label="Flight update">Boarding is now open at gate B12.</sonic-alert>
120
- <sonic-alert status="success" background label="Flight update">
121
- Boarding is now open at gate B12.
122
- </sonic-alert>
123
- <sonic-alert status="error" background label="Flight update">
124
- Boarding is now open at gate B12.
125
- </sonic-alert>
126
- <sonic-alert status="warning" background label="Flight update">
127
- Boarding is now open at gate B12.
128
- </sonic-alert>
129
- <sonic-alert status="info" background label="Flight update">
130
- Boarding is now open at gate B12.
131
- </sonic-alert>
132
- </div>
133
- </template>
134
- </sonic-code>
135
-
136
- ## Dismissible
137
-
138
- `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.
139
-
140
- <sonic-code>
141
- <template>
142
- <sonic-alert status="info" class="mb-3" dismissible label="Baggage claim moved to belt 4.">
143
- </sonic-alert>
144
- <sonic-alert class="mb-3" dismissible background label="Flight update">
145
- Boarding is now open at gate B12.
146
- </sonic-alert>
147
- </template>
148
- </sonic-code>
149
-
150
- ## Dismiss forever
151
-
152
- 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.
153
-
154
- <sonic-code>
155
- <template>
156
- <sonic-alert
157
- class="mb-3"
158
- dismissible
159
- background
160
- dismissForever
161
- label="Flight update"
162
- id="addressUniqueId"
163
- >
164
- Boarding is now open at gate B12.
165
- </sonic-alert>
166
- </template>
167
- </sonic-code>
168
-
169
- ## API reference
170
-
171
- | Attribute | Values | Description |
172
- |----------|---------|-------------|
173
- | `status` | `default` (default) · `info` · `success` · `warning` · `error` | Color and default icon |
174
- | `label` | string | Title (plain text) |
175
- | `text` | string | Short body (plain text), rendered before the slot |
176
- | `size` | `2xs` … `2xl` (default `md`) · `inherit` | Corner radius and typography |
177
- | `background` | boolean | Tinted background (`color-mix` on status color) |
178
- | `dismissible` | boolean | Close control; removes the element from the DOM |
179
- | `dismissForever` | boolean | Persists dismissal in `localStorage`; requires **`id`** |
180
- | `noIcon` | boolean | Hides the icon (including custom `icon` slot content) |
181
- | `announce` | boolean | `role="alert"` / `aria-live` for dynamically injected content |
182
-
183
- | Slot | Description |
184
- |------|-------------|
185
- | *(default)* | Message body (HTML, actions); rendered after `text` |
186
- | `icon` | Replaces the default `sonic-icon` |
@@ -1,85 +0,0 @@
1
- # Alert messages
2
-
3
- **`sonic-alert-messages`** renders a vertical stack of **`sonic-alert`** items from a **`messages`** array on a linked **data provider** (typical pattern: **`submitResultDataProvider`** after a form submit). Only entries with **`type="public"`** are shown. Each alert gets **`announce`** so screen readers pick up feedback after the request.
4
-
5
- ## With submit result
6
-
7
- Bind **`dataProvider`** to the same publisher as **`submitResultDataProvider`**. API **`messages`** entries need **`type`**: **`public`**, plus **`content`** and optional **`status`** (`warning` · `success` · `error` · `info`).
8
-
9
- <sonic-code>
10
- <template>
11
- <sonic-scope
12
- serviceURL="/docs-mock-api"
13
- formDataProvider="submit-example"
14
- submitResultDataProvider="submit-example-result"
15
- >
16
- <sonic-alert-messages dataProvider="submit-example-result" background class="mb-4"></sonic-alert-messages>
17
- <div class="grid gap-4 max-w-md">
18
- <sonic-input name="email" type="email" label="Email" value=""></sonic-input>
19
- <sonic-input name="password" type="password" label="Password" value=""></sonic-input>
20
- <sonic-submit endPoint="api/register" onClick>
21
- <sonic-button type="primary">Submit (empty fields → error messages)</sonic-button>
22
- </sonic-submit>
23
- </div>
24
- </sonic-scope>
25
- </template>
26
- </sonic-code>
27
-
28
- ## Shared alert props
29
-
30
- **`size`** · **`background`** and **`noIcon`** apply to every rendered **`sonic-alert`** in the list.
31
-
32
- <sonic-code>
33
- <template>
34
- <sonic-button
35
- size="sm"
36
- variant="outline"
37
- class="mb-3"
38
- onclick="SonicPublisherManager.get('submit-example-result').set({ messages: [{ type: 'public', content: 'Compact inline feedback without icons.', status: 'info' }] })"
39
- >
40
- Load sample messages
41
- </sonic-button>
42
- <sonic-alert-messages
43
- dataProvider="submit-example-result"
44
- size="sm"
45
- background
46
- noIcon
47
- ></sonic-alert-messages>
48
- </template>
49
- </sonic-code>
50
-
51
- ## Message shape
52
-
53
- Example JSON on the result publisher (or API response merged into it):
54
-
55
- <sonic-code language="typescript">
56
- <template>
57
- {
58
- "messages": [
59
- {
60
- "type": "public",
61
- "content": "The product has been added to your cart",
62
- "status": "success"
63
- }
64
- ]
65
- }
66
- </template>
67
- </sonic-code>
68
-
69
- ## API reference
70
-
71
- | Attribute | Values | Description |
72
- |----------|---------|-------------|
73
- | `dataProvider` | publisher id | Source object; **`messages`** array is auto-filled via **Subscriber** |
74
- | `size` | `2xs` … `2xl` (default `md`) | Passed to each **`sonic-alert`** |
75
- | `background` | boolean | Tinted background on each alert |
76
- | `noIcon` | boolean | Hides icons on each alert |
77
- | `messages` | `Message[]` | Usually set by the publisher; each item uses **`content`** as alert **`text`** |
78
-
79
- | Message field | Values | Description |
80
- |---------------|---------|-------------|
81
- | `type` | `public` | Required for the message to render |
82
- | `content` | string | Alert body (**`text`** on **`sonic-alert`**) |
83
- | `status` | `warning` · `success` · `error` · `info` | Alert **`status`**; defaults to **`default`** when omitted |
84
-
85
- No slots — alerts are generated from **`messages`**.
@@ -1,181 +0,0 @@
1
- # Badge
2
-
3
- Badges are **compact, non-interactive** labels for status, counts, or categories. They mirror **`sonic-button`** styling (`type`, `variant`, `size`) without focus rings or click handling—use a button when the control should be actionable.
4
-
5
- ## Type
6
-
7
- `default` — subtle background (`base-100`). `neutral` — dark fill (`base-content`) with light text, useful on light backgrounds.
8
-
9
- <sonic-code>
10
- <template>
11
- <div class="flex flex-wrap gap-2">
12
- <sonic-badge>Default</sonic-badge>
13
- <sonic-badge type="primary">Primary</sonic-badge>
14
- <sonic-badge type="neutral">Neutral</sonic-badge>
15
- <sonic-badge type="warning">Warning</sonic-badge>
16
- <sonic-badge type="info">Info</sonic-badge>
17
- <sonic-badge type="success">Success</sonic-badge>
18
- <sonic-badge type="danger">Danger</sonic-badge>
19
- </div>
20
- </template>
21
- </sonic-code>
22
-
23
- ## Variant
24
-
25
- Default **`variant`** is filled. **`outline`** — border and text in the `type` color. **`ghost`** — text only, no padding (except in forced-colors mode).
26
-
27
- <sonic-code>
28
- <template>
29
- <div class="grid gap-3">
30
- <div class="flex items-center flex-wrap gap-3">
31
- <sonic-badge variant="outline">Default</sonic-badge>
32
- <sonic-badge variant="outline" type="primary">Primary</sonic-badge>
33
- <sonic-badge variant="outline" type="neutral">Neutral</sonic-badge>
34
- <sonic-badge variant="outline" type="warning">Warning</sonic-badge>
35
- <sonic-badge variant="outline" type="info">Info</sonic-badge>
36
- <sonic-badge variant="outline" type="success">Success</sonic-badge>
37
- <sonic-badge variant="outline" type="danger">Danger</sonic-badge>
38
- </div>
39
- <div class="flex items-center flex-wrap gap-3">
40
- <sonic-badge variant="ghost">Default</sonic-badge>
41
- <sonic-badge variant="ghost" type="primary">Primary</sonic-badge>
42
- <sonic-badge variant="ghost" type="neutral">Neutral</sonic-badge>
43
- <sonic-badge variant="ghost" type="warning">Warning</sonic-badge>
44
- <sonic-badge variant="ghost" type="info">Info</sonic-badge>
45
- <sonic-badge variant="ghost" type="success">Success</sonic-badge>
46
- <sonic-badge variant="ghost" type="danger">Danger</sonic-badge>
47
- </div>
48
- </div>
49
- </template>
50
- </sonic-code>
51
-
52
- ## Size
53
-
54
- Default size is `md` (omit the `size` attribute). Typography and padding follow `sonic-button`.
55
-
56
- <sonic-code>
57
- <template>
58
- <div class="flex flex-wrap items-center gap-2">
59
- <sonic-badge size="2xs">2Xs</sonic-badge>
60
- <sonic-badge size="xs">Xs</sonic-badge>
61
- <sonic-badge size="sm">Sm</sonic-badge>
62
- <sonic-badge>Md</sonic-badge>
63
- <sonic-badge size="lg">Lg</sonic-badge>
64
- <sonic-badge size="xl">Xl</sonic-badge>
65
- <sonic-badge size="2xl">2Xl</sonic-badge>
66
- </div>
67
- </template>
68
- </sonic-code>
69
-
70
- ## Prefix and suffix slots
71
-
72
- Icons or short text before / after the main label.
73
-
74
- <sonic-code>
75
- <template>
76
- <sonic-badge type="info" size="sm">
77
- <sonic-icon slot="prefix" name="airplane" library="iconoir"></sonic-icon>
78
- Boarding
79
- </sonic-badge>
80
- <sonic-badge type="success">
81
- Landed
82
- <sonic-icon slot="suffix" name="check" library="iconoir"></sonic-icon>
83
- </sonic-badge>
84
- </template>
85
- </sonic-code>
86
-
87
- ## Empty badges
88
-
89
- Badge with no text (visual dot). `min-width` / `min-height` keep a readable shape.
90
-
91
- <sonic-code>
92
- <template>
93
- <div class="flex items-center flex-wrap gap-3">
94
- <sonic-badge type="danger" size="2xs"></sonic-badge>
95
- <sonic-badge type="danger" size="xs"></sonic-badge>
96
- <sonic-badge type="danger" size="sm"></sonic-badge>
97
- <sonic-badge type="danger"></sonic-badge>
98
- <sonic-badge type="danger" size="lg"></sonic-badge>
99
- <sonic-badge type="danger" size="xl"></sonic-badge>
100
- <sonic-badge type="danger" size="2xl"></sonic-badge>
101
- </div>
102
- </template>
103
- </sonic-code>
104
-
105
- ## Ellipsis
106
-
107
- With `ellipsis`, long labels truncate. The parent must constrain width (`max-width`, grid, etc.).
108
-
109
- <sonic-code>
110
- <template>
111
- <div class="grid grid-cols-2 gap-4 max-w-xl">
112
- <sonic-badge ellipsis size="sm" variant="outline">
113
- <sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon>
114
- CN 001 · CDG → JFK · Gate change: now boarding at gate B12, terminal 2E
115
- </sonic-badge>
116
- <sonic-badge ellipsis size="sm">
117
- <sonic-icon slot="prefix" name="info-empty" library="iconoir"></sonic-icon>
118
- CN 001 · CDG → JFK · Gate change: now boarding at gate B12, terminal 2E
119
- </sonic-badge>
120
- </div>
121
- </template>
122
- </sonic-code>
123
-
124
- ## Badge in button
125
-
126
- Count inside a button (`slot="suffix"`) or a badge absolutely positioned on a button / icon.
127
-
128
- <sonic-code>
129
- <template>
130
- <div class="flex flex-wrap gap-4 items-center">
131
- <sonic-button type="default">
132
- Departures <sonic-badge slot="suffix" type="danger" size="xs">5</sonic-badge>
133
- </sonic-button>
134
- <div class="relative inline-block">
135
- <sonic-button type="success" class="relative">Crew</sonic-button>
136
- <sonic-badge
137
- type="danger"
138
- size="xs"
139
- class="absolute right-1 top-0 pe-none transform -translate-y-1/2"
140
- >12</sonic-badge
141
- >
142
- </div>
143
- <div class="relative inline-block">
144
- <sonic-button type="neutral" shape="circle" variant="outline">
145
- <sonic-icon library="iconoir" name="user"></sonic-icon>
146
- </sonic-button>
147
- <sonic-badge
148
- type="danger"
149
- size="xs"
150
- class="absolute right-1 bottom-1 pe-none transform translate-y-1/2 translate-x-1/2"
151
- >33</sonic-badge
152
- >
153
- </div>
154
- <div class="relative inline-block">
155
- <sonic-button type="neutral" shape="circle" variant="outline">
156
- <sonic-icon library="iconoir" name="user"></sonic-icon>
157
- </sonic-button>
158
- <sonic-badge
159
- type="danger"
160
- size="xs"
161
- class="absolute right-2 bottom-2 pe-none transform translate-y-1/2 translate-x-1/2"
162
- ></sonic-badge>
163
- </div>
164
- </div>
165
- </template>
166
- </sonic-code>
167
-
168
- ## API reference
169
-
170
- | Attribute | Values | Description |
171
- |----------|---------|-------------|
172
- | `type` | `default` (default) · `primary` · `neutral` · `warning` · `info` · `success` · `danger` | Semantic color (`--sc-*` tokens) |
173
- | `variant` | `default` (default) · `outline` · `ghost` | Filled, bordered, or text-only |
174
- | `size` | `2xs` … `2xl` (default `md`) · `inherit` | Typography and padding (aligned with **`sonic-button`**) |
175
- | `ellipsis` | boolean | Single-line truncation; parent must constrain width |
176
-
177
- | Slot | Description |
178
- |------|-------------|
179
- | *(default)* | Main label |
180
- | `prefix` | Icon or short text before the label |
181
- | `suffix` | Icon or short text after the label |