@supersoniks/concorde 5.1.1 → 5.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/.agents/skills/concorde-docs/SKILL.md +153 -0
  2. package/.agents/skills/{concorde-component-docs/template.md → concorde-docs/templates/component.md} +6 -2
  3. package/.agents/skills/concorde-docs/templates/decorator.md +43 -0
  4. package/.agents/skills/concorde-docs/templates/guide.md +25 -0
  5. package/PLAN-DOCS-AGENTS.md +80 -0
  6. package/README.md +4 -4
  7. package/ai/README.md +29 -41
  8. package/ai/skills/concorde/SKILL.md +54 -324
  9. package/ai/skills/concorde/rules/composition.md +32 -0
  10. package/ai/skills/concorde/rules/data.md +47 -0
  11. package/ai/skills/concorde/rules/http.md +25 -0
  12. package/ai/skills/concorde/rules/lists-forms.md +35 -0
  13. package/ai/skills/concorde/rules/styling.md +46 -0
  14. package/ai/skills/concorde/rules/troubleshooting.md +45 -0
  15. package/build-infos.json +1 -1
  16. package/concorde-core.bundle.js +21 -21
  17. package/concorde-core.es.js +977 -980
  18. package/custom-elements-manifest.public.config.mjs +8 -0
  19. package/{.tmp-cem/custom-elements.json → custom-elements.json} +11758 -8904
  20. package/dist/concorde-core.bundle.js +21 -21
  21. package/dist/concorde-core.es.js +977 -980
  22. package/dist/docs-mock-api-sw.js +58 -223
  23. package/dist/docs-mock-api-sw.js.map +4 -4
  24. package/dist/img/concorde/plane_01.jpg +0 -0
  25. package/dist/img/concorde/plane_02.jpg +0 -0
  26. package/dist/img/concorde/plane_03.jpg +0 -0
  27. package/dist/img/concorde/plane_04.jpg +0 -0
  28. package/dist/img/concorde/plane_05.jpg +0 -0
  29. package/dist/img/concorde/plane_06.jpg +0 -0
  30. package/dist/img/concorde/plane_07.jpg +0 -0
  31. package/dist/img/concorde/plane_08.jpg +0 -0
  32. package/dist/img/concorde/plane_09.jpg +0 -0
  33. package/dist/img/concorde/plane_10.jpg +0 -0
  34. package/dist/img/concorde/plane_11.jpg +0 -0
  35. package/dist/img/concorde/plane_12.jpg +0 -0
  36. package/dist/img/concorde/plane_13.jpg +0 -0
  37. package/dist/img/og-concorde.jpg +0 -0
  38. package/dist/robots.txt +11 -10
  39. package/docs/.htaccess +82 -0
  40. package/docs/404.html +15 -0
  41. package/docs/404.md +5 -0
  42. package/docs/about.html +111 -0
  43. package/docs/about.md +22 -0
  44. package/docs/assets/{index-Bb-_LRyY.js → index-6sS76xWj.js} +2625 -3158
  45. package/docs/assets/index-DkdPbH0F.css +1 -0
  46. package/docs/core/components/functional/date/date.html +211 -0
  47. package/docs/core/components/functional/date/date.md +150 -0
  48. package/docs/core/components/functional/fetch/fetch.html +180 -0
  49. package/docs/core/components/functional/fetch/fetch.md +108 -0
  50. package/docs/core/components/functional/if/if.html +65 -0
  51. package/docs/core/components/functional/if/if.md +34 -0
  52. package/docs/core/components/functional/jsonata/jsonata.html +110 -0
  53. package/docs/core/components/functional/jsonata/jsonata.md +61 -0
  54. package/docs/core/components/functional/list/list.html +200 -0
  55. package/docs/core/components/functional/list/list.md +125 -0
  56. package/docs/core/components/functional/mix/mix.html +78 -0
  57. package/docs/core/components/functional/mix/mix.md +46 -0
  58. package/docs/core/components/functional/queue/queue.html +155 -0
  59. package/docs/core/components/functional/queue/queue.md +51 -0
  60. package/docs/core/components/functional/router/router.html +154 -0
  61. package/docs/core/components/functional/router/router.md +93 -0
  62. package/docs/core/components/functional/sdui/sdui-extension-points.html +127 -0
  63. package/docs/core/components/functional/sdui/sdui-extension-points.md +94 -0
  64. package/docs/core/components/functional/sdui/sdui.html +397 -0
  65. package/docs/core/components/functional/sdui/sdui.md +307 -0
  66. package/docs/core/components/functional/states/states.html +141 -0
  67. package/docs/core/components/functional/states/states.md +112 -0
  68. package/docs/core/components/functional/submit/submit.html +178 -0
  69. package/docs/core/components/functional/submit/submit.md +106 -0
  70. package/docs/core/components/functional/subscriber/subscriber.html +68 -0
  71. package/docs/core/components/functional/subscriber/subscriber.md +91 -0
  72. package/docs/core/components/functional/translation/translation.html +60 -0
  73. package/docs/core/components/functional/translation/translation.md +38 -0
  74. package/docs/core/components/functional/value/value.html +81 -0
  75. package/docs/core/components/functional/value/value.md +47 -0
  76. package/docs/core/components/ui/alert/alert.html +201 -0
  77. package/docs/core/components/ui/alert/alert.md +186 -0
  78. package/docs/core/components/ui/alert-messages/alert-messages.html +132 -0
  79. package/docs/core/components/ui/alert-messages/alert-messages.md +85 -0
  80. package/docs/core/components/ui/badge/badge.html +197 -0
  81. package/docs/core/components/ui/badge/badge.md +181 -0
  82. package/docs/core/components/ui/button/button.html +309 -0
  83. package/docs/core/components/ui/button/button.md +216 -0
  84. package/docs/core/components/ui/captcha/captcha.html +80 -0
  85. package/docs/core/components/ui/captcha/captcha.md +56 -0
  86. package/docs/core/components/ui/card/card.html +254 -0
  87. package/docs/core/components/ui/card/card.md +215 -0
  88. package/docs/core/components/ui/divider/divider.html +144 -0
  89. package/docs/core/components/ui/divider/divider.md +126 -0
  90. package/docs/core/components/ui/form/checkbox/checkbox.html +200 -0
  91. package/docs/core/components/ui/form/checkbox/checkbox.md +125 -0
  92. package/docs/core/components/ui/form/fieldset/fieldset.html +238 -0
  93. package/docs/core/components/ui/form/fieldset/fieldset.md +161 -0
  94. package/docs/core/components/ui/form/form-actions/form-actions.html +122 -0
  95. package/docs/core/components/ui/form/form-actions/form-actions.md +98 -0
  96. package/docs/core/components/ui/form/form-layout/form-layout.html +115 -0
  97. package/docs/core/components/ui/form/form-layout/form-layout.md +109 -0
  98. package/docs/core/components/ui/form/input/input.html +235 -0
  99. package/docs/core/components/ui/form/input/input.md +142 -0
  100. package/docs/core/components/ui/form/radio/radio.html +144 -0
  101. package/docs/core/components/ui/form/radio/radio.md +78 -0
  102. package/docs/core/components/ui/form/select/select.html +178 -0
  103. package/docs/core/components/ui/form/select/select.md +86 -0
  104. package/docs/core/components/ui/form/switch/switch.html +146 -0
  105. package/docs/core/components/ui/form/switch/switch.md +80 -0
  106. package/docs/core/components/ui/form/textarea/textarea.html +162 -0
  107. package/docs/core/components/ui/form/textarea/textarea.md +82 -0
  108. package/docs/core/components/ui/group/group.html +113 -0
  109. package/docs/core/components/ui/group/group.md +77 -0
  110. package/docs/core/components/ui/icon/icon.html +223 -0
  111. package/docs/core/components/ui/icon/icon.md +214 -0
  112. package/docs/core/components/ui/image/image.html +194 -0
  113. package/docs/core/components/ui/image/image.md +167 -0
  114. package/docs/core/components/ui/link/link.html +101 -0
  115. package/docs/core/components/ui/link/link.md +81 -0
  116. package/docs/core/components/ui/loader/loader.html +114 -0
  117. package/docs/core/components/ui/loader/loader.md +87 -0
  118. package/docs/core/components/ui/menu/menu.html +395 -0
  119. package/docs/core/components/ui/menu/menu.md +370 -0
  120. package/docs/core/components/ui/modal/modal.html +324 -0
  121. package/docs/core/components/ui/modal/modal.md +211 -0
  122. package/docs/core/components/ui/pop/pop.html +250 -0
  123. package/docs/core/components/ui/pop/pop.md +216 -0
  124. package/docs/core/components/ui/progress/progress.html +132 -0
  125. package/docs/core/components/ui/progress/progress.md +109 -0
  126. package/docs/core/components/ui/table/table.html +333 -0
  127. package/docs/core/components/ui/table/table.md +267 -0
  128. package/docs/core/components/ui/theme/theme.html +116 -0
  129. package/docs/core/components/ui/theme/theme.md +97 -0
  130. package/docs/core/components/ui/toast/toast.html +185 -0
  131. package/docs/core/components/ui/toast/toast.md +147 -0
  132. package/docs/core/components/ui/tooltip/tooltip.html +112 -0
  133. package/docs/core/components/ui/tooltip/tooltip.md +89 -0
  134. package/docs/custom-elements.json +16559 -0
  135. package/docs/docs/decorators/ancestor-attribute.html +71 -0
  136. package/docs/docs/decorators/ancestor-attribute.md +59 -0
  137. package/docs/docs/decorators/auto-subscribe.html +61 -0
  138. package/docs/docs/decorators/auto-subscribe.md +40 -0
  139. package/docs/docs/decorators/bind.html +87 -0
  140. package/docs/docs/decorators/bind.md +76 -0
  141. package/docs/docs/decorators/get.html +166 -0
  142. package/docs/docs/decorators/get.md +160 -0
  143. package/docs/docs/decorators/handle.html +139 -0
  144. package/docs/docs/decorators/handle.md +119 -0
  145. package/docs/docs/decorators/on-assign.html +72 -0
  146. package/docs/docs/decorators/on-assign.md +63 -0
  147. package/docs/docs/decorators/patch.html +76 -0
  148. package/docs/docs/decorators/patch.md +44 -0
  149. package/docs/docs/decorators/post.html +150 -0
  150. package/docs/docs/decorators/post.md +134 -0
  151. package/docs/docs/decorators/publish.html +74 -0
  152. package/docs/docs/decorators/publish.md +56 -0
  153. package/docs/docs/decorators/put.html +83 -0
  154. package/docs/docs/decorators/put.md +51 -0
  155. package/docs/docs/decorators/subscribe.html +91 -0
  156. package/docs/docs/decorators/subscribe.md +87 -0
  157. package/docs/docs/decorators/wait-for-ancestors.html +82 -0
  158. package/docs/docs/decorators/wait-for-ancestors.md +76 -0
  159. package/docs/docs/directives/sub.html +79 -0
  160. package/docs/docs/directives/sub.md +75 -0
  161. package/docs/docs/directives/t.html +91 -0
  162. package/docs/docs/directives/t.md +73 -0
  163. package/docs/docs/getting-started/ai-agents.html +130 -0
  164. package/docs/docs/getting-started/ai-agents.md +50 -0
  165. package/docs/docs/getting-started/components.html +27 -0
  166. package/docs/docs/getting-started/create-a-component.html +108 -0
  167. package/{src/docs/_getting-started → docs/docs/getting-started}/create-a-component.md +3 -6
  168. package/docs/docs/getting-started/dataFlow.html +174 -0
  169. package/{src/docs/_core-concept → docs/docs/getting-started}/dataFlow.md +18 -19
  170. package/docs/docs/getting-started/installation.html +69 -0
  171. package/docs/docs/getting-started/installation.md +36 -0
  172. package/docs/docs/getting-started/my-first-component.html +180 -0
  173. package/{src/docs/_getting-started → docs/docs/getting-started}/my-first-component.md +5 -14
  174. package/docs/docs/getting-started/start.html +47 -0
  175. package/{src/docs/_getting-started → docs/docs/getting-started}/start.md +1 -13
  176. package/docs/docs/getting-started/theming.html +334 -0
  177. package/docs/docs/index.html +99 -0
  178. package/docs/docs/misc/api-configuration.html +149 -0
  179. package/{src/docs/_misc → docs/docs/misc}/api-configuration.md +10 -12
  180. package/docs/docs/misc/dataProviderKey.html +136 -0
  181. package/{src/docs/_misc → docs/docs/misc}/dataProviderKey.md +4 -4
  182. package/docs/docs/misc/docs-mock-api.html +155 -0
  183. package/{src/docs/_misc → docs/docs/misc}/docs-mock-api.md +12 -13
  184. package/docs/docs/misc/dynamic-path.html +181 -0
  185. package/{src/docs/_misc → docs/docs/misc}/dynamic-path.md +8 -8
  186. package/docs/docs/misc/endpoint.html +51 -0
  187. package/{src/docs/_misc → docs/docs/misc}/endpoint.md +8 -8
  188. package/docs/docs/misc/html-integration.html +45 -0
  189. package/{src/docs/_misc → docs/docs/misc}/html-integration.md +4 -5
  190. package/docs/docs-mock-api-sw.js +58 -223
  191. package/docs/docs-mock-api-sw.js.map +4 -4
  192. package/docs/hubs/decorators.html +438 -0
  193. package/docs/hubs/form-components.html +404 -0
  194. package/docs/hubs/remote-data.html +367 -0
  195. package/docs/img/archive/concorde-001-2cv.webp +0 -0
  196. package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  197. package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
  198. package/docs/img/archive/credits.json +28 -0
  199. package/docs/img/concorde/plane_01.jpg +0 -0
  200. package/docs/img/concorde/plane_02.jpg +0 -0
  201. package/docs/img/concorde/plane_03.jpg +0 -0
  202. package/docs/img/concorde/plane_04.jpg +0 -0
  203. package/docs/img/concorde/plane_05.jpg +0 -0
  204. package/docs/img/concorde/plane_06.jpg +0 -0
  205. package/docs/img/concorde/plane_07.jpg +0 -0
  206. package/docs/img/concorde/plane_08.jpg +0 -0
  207. package/docs/img/concorde/plane_09.jpg +0 -0
  208. package/docs/img/concorde/plane_10.jpg +0 -0
  209. package/docs/img/concorde/plane_11.jpg +0 -0
  210. package/docs/img/concorde/plane_12.jpg +0 -0
  211. package/docs/img/concorde/plane_13.jpg +0 -0
  212. package/docs/img/og-concorde.jpg +0 -0
  213. package/docs/index.html +184 -68
  214. package/docs/index.md +22 -0
  215. package/docs/llms-full.txt +5779 -0
  216. package/docs/llms.txt +108 -0
  217. package/docs/privacy.html +122 -0
  218. package/docs/privacy.md +32 -0
  219. package/docs/robots.txt +11 -10
  220. package/docs/sitemap.xml +243 -0
  221. package/docs/src/core/components/functional/date/date.md +150 -0
  222. package/docs/src/core/components/functional/fetch/fetch.md +108 -0
  223. package/docs/src/core/components/functional/if/if.md +34 -0
  224. package/docs/src/core/components/functional/jsonata/jsonata.md +61 -0
  225. package/docs/src/core/components/functional/list/list.md +125 -0
  226. package/docs/src/core/components/functional/mix/mix.md +46 -0
  227. package/docs/src/core/components/functional/queue/queue.md +51 -0
  228. package/docs/src/core/components/functional/router/router.md +93 -0
  229. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
  230. package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
  231. package/docs/src/core/components/functional/sdui/default-library.json +108 -0
  232. package/docs/src/core/components/functional/sdui/example.json +32 -0
  233. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
  234. package/docs/src/core/components/functional/sdui/sdui.md +307 -0
  235. package/docs/src/core/components/functional/states/states.md +112 -0
  236. package/docs/src/core/components/functional/submit/submit.md +106 -0
  237. package/docs/src/core/components/functional/subscriber/subscriber.md +91 -0
  238. package/docs/src/core/components/functional/translation/translation.md +38 -0
  239. package/docs/src/core/components/functional/value/value.md +47 -0
  240. package/docs/src/core/components/ui/alert/alert.md +186 -0
  241. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  242. package/docs/src/core/components/ui/badge/badge.md +181 -0
  243. package/docs/src/core/components/ui/button/button.md +216 -0
  244. package/docs/src/core/components/ui/captcha/captcha.md +56 -0
  245. package/docs/src/core/components/ui/card/card.md +215 -0
  246. package/docs/src/core/components/ui/divider/divider.md +126 -0
  247. package/docs/src/core/components/ui/form/checkbox/checkbox.md +125 -0
  248. package/docs/src/core/components/ui/form/fieldset/fieldset.md +161 -0
  249. package/docs/src/core/components/ui/form/form-actions/form-actions.md +98 -0
  250. package/docs/src/core/components/ui/form/form-layout/form-layout.md +109 -0
  251. package/docs/src/core/components/ui/form/input/input.md +142 -0
  252. package/docs/src/core/components/ui/form/radio/radio.md +78 -0
  253. package/docs/src/core/components/ui/form/select/select.md +86 -0
  254. package/docs/src/core/components/ui/form/switch/switch.md +80 -0
  255. package/docs/src/core/components/ui/form/textarea/textarea.md +82 -0
  256. package/docs/src/core/components/ui/group/group.md +77 -0
  257. package/docs/src/core/components/ui/icon/icon.md +214 -0
  258. package/docs/src/core/components/ui/icon/icons.json +1 -0
  259. package/docs/src/core/components/ui/image/image.md +167 -0
  260. package/docs/src/core/components/ui/link/link.md +81 -0
  261. package/docs/src/core/components/ui/loader/loader.md +87 -0
  262. package/docs/src/core/components/ui/menu/menu.md +370 -0
  263. package/docs/src/core/components/ui/modal/modal.md +211 -0
  264. package/docs/src/core/components/ui/pop/pop.md +216 -0
  265. package/docs/src/core/components/ui/progress/progress.md +109 -0
  266. package/docs/src/core/components/ui/table/table.md +267 -0
  267. package/docs/src/core/components/ui/theme/theme.md +97 -0
  268. package/docs/src/core/components/ui/toast/toast.md +147 -0
  269. package/docs/src/core/components/ui/tooltip/tooltip.md +89 -0
  270. package/docs/src/docs/decorators/ancestor-attribute.md +59 -0
  271. package/docs/src/docs/decorators/auto-subscribe.md +40 -0
  272. package/docs/src/docs/decorators/bind.md +76 -0
  273. package/docs/src/docs/decorators/get.md +160 -0
  274. package/docs/src/docs/decorators/handle.md +119 -0
  275. package/docs/src/docs/decorators/on-assign.md +63 -0
  276. package/docs/src/docs/decorators/patch.md +44 -0
  277. package/docs/src/docs/decorators/post.md +134 -0
  278. package/docs/src/docs/decorators/publish.md +56 -0
  279. package/docs/src/docs/decorators/put.md +51 -0
  280. package/docs/src/docs/decorators/subscribe.md +87 -0
  281. package/docs/src/docs/decorators/wait-for-ancestors.md +76 -0
  282. package/docs/src/docs/directives/sub.md +75 -0
  283. package/docs/src/docs/directives/t.md +73 -0
  284. package/docs/src/docs/getting-started/ai-agents.md +50 -0
  285. package/docs/src/docs/getting-started/components.md +5 -0
  286. package/docs/src/docs/getting-started/create-a-component.md +136 -0
  287. package/docs/src/docs/getting-started/dataFlow.md +87 -0
  288. package/docs/src/docs/getting-started/installation.md +36 -0
  289. package/docs/src/docs/getting-started/my-first-component.md +227 -0
  290. package/docs/src/docs/getting-started/start.md +35 -0
  291. package/docs/src/docs/getting-started/theming.md +253 -0
  292. package/docs/src/docs/misc/api-configuration.md +79 -0
  293. package/docs/src/docs/misc/dataProviderKey.md +168 -0
  294. package/docs/src/docs/misc/docs-mock-api.md +62 -0
  295. package/docs/src/docs/misc/dynamic-path.md +71 -0
  296. package/docs/src/docs/misc/endpoint.md +45 -0
  297. package/docs/src/docs/misc/html-integration.md +14 -0
  298. package/docs/src/docs/search/docs-search.json +10332 -0
  299. package/docs/src/tag-list.json +1 -0
  300. package/docs/src/tsconfig-model.json +23 -0
  301. package/docs/src/tsconfig.json +1359 -0
  302. package/index.html +157 -5
  303. package/package.json +8 -4
  304. package/public/docs-mock-api-sw.js +58 -223
  305. package/public/docs-mock-api-sw.js.map +4 -4
  306. package/public/img/concorde/plane_01.jpg +0 -0
  307. package/public/img/concorde/plane_02.jpg +0 -0
  308. package/public/img/concorde/plane_03.jpg +0 -0
  309. package/public/img/concorde/plane_04.jpg +0 -0
  310. package/public/img/concorde/plane_05.jpg +0 -0
  311. package/public/img/concorde/plane_06.jpg +0 -0
  312. package/public/img/concorde/plane_07.jpg +0 -0
  313. package/public/img/concorde/plane_08.jpg +0 -0
  314. package/public/img/concorde/plane_09.jpg +0 -0
  315. package/public/img/concorde/plane_10.jpg +0 -0
  316. package/public/img/concorde/plane_11.jpg +0 -0
  317. package/public/img/concorde/plane_12.jpg +0 -0
  318. package/public/img/concorde/plane_13.jpg +0 -0
  319. package/public/img/og-concorde.jpg +0 -0
  320. package/public/robots.txt +11 -10
  321. package/scripts/ai-init.mjs +104 -379
  322. package/scripts/ai-init.test.mjs +81 -239
  323. package/scripts/docs-markdown-vite-plugin.ts +43 -0
  324. package/scripts/docs-public-url.mjs +56 -0
  325. package/scripts/docs.htaccess +82 -0
  326. package/scripts/generate-cem.mjs +244 -0
  327. package/scripts/generate-cem.test.mjs +122 -0
  328. package/scripts/generate-crawl-docs.mjs +233 -118
  329. package/scripts/generate-crawl-docs.test.mjs +124 -0
  330. package/scripts/generate-sdui-catalog.mjs +11 -10
  331. package/scripts/post-build-docs.js +37 -50
  332. package/scripts/pre-publish.mjs +2 -1
  333. package/scripts/site-pages.mjs +212 -0
  334. package/scripts/site-pages.test.mjs +116 -0
  335. package/site-pages/about.md +22 -0
  336. package/site-pages/privacy.md +32 -0
  337. package/src/core/components/functional/date/date.md +91 -231
  338. package/src/core/components/functional/fetch/fetch.md +66 -83
  339. package/src/core/components/functional/if/if.md +28 -3
  340. package/src/core/components/functional/jsonata/jsonata.md +42 -37
  341. package/src/core/components/functional/list/list.md +103 -43
  342. package/src/core/components/functional/mix/mix.md +31 -26
  343. package/src/core/components/functional/queue/queue.demo.ts +10 -7
  344. package/src/core/components/functional/queue/queue.md +40 -61
  345. package/src/core/components/functional/router/router.demo.ts +16 -16
  346. package/src/core/components/functional/router/router.md +64 -65
  347. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  348. package/src/core/components/functional/sdui/component-catalog.json +1 -1
  349. package/src/core/components/functional/sdui/example.json +19 -86
  350. package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  351. package/src/core/components/functional/sdui/sdui.md +187 -358
  352. package/src/core/components/functional/states/states.demo.ts +21 -22
  353. package/src/core/components/functional/states/states.md +86 -61
  354. package/src/core/components/functional/states/states.ts +1 -1
  355. package/src/core/components/functional/submit/submit.md +64 -72
  356. package/src/core/components/functional/translation/translation.md +38 -0
  357. package/src/core/components/functional/value/value.md +34 -22
  358. package/src/core/components/ui/alert/alert.md +48 -58
  359. package/src/core/components/ui/badge/badge.md +27 -34
  360. package/src/core/components/ui/button/button.md +139 -106
  361. package/src/core/components/ui/captcha/captcha.md +17 -32
  362. package/src/core/components/ui/card/card.md +6 -6
  363. package/src/core/components/ui/divider/divider.md +8 -11
  364. package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  365. package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
  366. package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
  367. package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
  368. package/src/core/components/ui/form/input/input.md +95 -95
  369. package/src/core/components/ui/form/radio/radio.md +55 -34
  370. package/src/core/components/ui/form/select/select.md +60 -45
  371. package/src/core/components/ui/form/switch/switch.md +57 -34
  372. package/src/core/components/ui/form/textarea/textarea.md +55 -38
  373. package/src/core/components/ui/group/group.md +35 -33
  374. package/src/core/components/ui/icon/icon.md +4 -4
  375. package/src/core/components/ui/image/image.md +41 -107
  376. package/src/core/components/ui/link/link.md +6 -6
  377. package/src/core/components/ui/loader/loader.md +30 -55
  378. package/src/core/components/ui/menu/menu.md +27 -27
  379. package/src/core/components/ui/modal/modal.md +72 -96
  380. package/src/core/components/ui/pop/pop.md +80 -158
  381. package/src/core/components/ui/progress/progress.md +2 -2
  382. package/src/core/components/ui/table/table.md +91 -255
  383. package/src/core/components/ui/theme/theme.md +11 -36
  384. package/src/core/components/ui/toast/toast.md +48 -117
  385. package/src/core/components/ui/tooltip/tooltip.md +27 -62
  386. package/src/core/decorators/subscriber/bind.ts +9 -14
  387. package/src/core/utils/LocationHandler.spec.ts +80 -0
  388. package/src/core/utils/LocationHandler.ts +5 -9
  389. package/src/docs/components/docs-demo-sources.ts +55 -140
  390. package/src/docs/components/docs-lit-demo.ts +1 -3
  391. package/src/docs/components/docs-source-link.ts +0 -82
  392. package/src/docs/decorators/ancestor-attribute.md +59 -0
  393. package/src/docs/decorators/auto-subscribe.md +40 -0
  394. package/src/docs/decorators/bind.md +76 -0
  395. package/src/docs/decorators/get.md +160 -0
  396. package/src/docs/decorators/handle.md +119 -0
  397. package/src/docs/decorators/on-assign.md +63 -0
  398. package/src/docs/decorators/patch.md +44 -0
  399. package/src/docs/decorators/post.md +134 -0
  400. package/src/docs/decorators/publish.md +56 -0
  401. package/src/docs/decorators/put.md +51 -0
  402. package/src/docs/decorators/subscribe.md +87 -0
  403. package/src/docs/decorators/wait-for-ancestors.md +76 -0
  404. package/src/docs/directives/sub.md +75 -0
  405. package/src/docs/directives/t.md +73 -0
  406. package/src/docs/docs-location.spec.ts +56 -0
  407. package/src/docs/docs-location.ts +133 -32
  408. package/src/docs/docs.ts +1 -2
  409. package/src/docs/example/decorators-demo-bind-demos.ts +83 -135
  410. package/src/docs/example/decorators-demo-geo.ts +30 -19
  411. package/src/docs/example/decorators-demo-post.ts +88 -186
  412. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
  413. package/src/docs/example/decorators-demo.ts +85 -98
  414. package/src/docs/example/docs-api-config-demos.ts +19 -20
  415. package/src/docs/example/docs-flight-demos.ts +147 -0
  416. package/src/docs/example/docs-jsonata-demos.ts +52 -52
  417. package/src/docs/example/docs-list-demos.ts +43 -123
  418. package/src/docs/example/docs-provider-keys.ts +21 -28
  419. package/src/docs/example/docs-queue-demos.ts +37 -77
  420. package/src/docs/example/docs-router-demos.ts +20 -25
  421. package/src/docs/example/docs-submit-demos.ts +48 -48
  422. package/src/docs/example/docs-toggle-demos.ts +4 -3
  423. package/src/docs/getting-started/ai-agents.md +50 -0
  424. package/src/docs/getting-started/components.md +5 -0
  425. package/src/docs/getting-started/create-a-component.md +136 -0
  426. package/src/docs/getting-started/dataFlow.md +87 -0
  427. package/src/docs/getting-started/installation.md +36 -0
  428. package/src/docs/getting-started/my-first-component.md +227 -0
  429. package/src/docs/getting-started/start.md +35 -0
  430. package/src/docs/getting-started/theming.md +253 -0
  431. package/src/docs/header/header.ts +11 -6
  432. package/src/docs/home/catalog.ts +1 -1
  433. package/src/docs/home/home.ts +20 -11
  434. package/src/docs/layout.ts +12 -13
  435. package/src/docs/misc/api-configuration.md +79 -0
  436. package/src/docs/misc/dataProviderKey.md +168 -0
  437. package/src/docs/misc/docs-mock-api.md +62 -0
  438. package/src/docs/misc/dynamic-path.md +71 -0
  439. package/src/docs/misc/endpoint.md +45 -0
  440. package/src/docs/misc/html-integration.md +14 -0
  441. package/src/docs/mock-api/api-config-mock.ts +5 -0
  442. package/src/docs/mock-api/fixtures.ts +0 -278
  443. package/src/docs/mock-api/flights.ts +89 -0
  444. package/src/docs/mock-api/router.ts +3 -4
  445. package/src/docs/mock-api/urls.ts +1 -2
  446. package/src/docs/navigation/navigation.ts +82 -103
  447. package/src/docs/navigation/toc.ts +7 -4
  448. package/src/docs/search/docs-search.json +2804 -5024
  449. package/src/docs/search/markdown-renderer.ts +31 -8
  450. package/src/docs/search/page.ts +9 -6
  451. package/src/docs/search/search.ts +154 -122
  452. package/src/docs/tailwind/css/docs/content.css +4 -5
  453. package/src/tsconfig.json +11 -5
  454. package/src/tsconfig.tsbuildinfo +1 -1
  455. package/vite.config.mts +11 -2
  456. package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
  457. package/ai/AGENTS.md +0 -56
  458. package/ai/cursor/rules/concorde-menu.mdc +0 -15
  459. package/ai/cursor/rules/concorde-scope.mdc +0 -14
  460. package/ai/cursor/rules/concorde-theme.mdc +0 -13
  461. package/ai/cursor/rules/concorde.mdc +0 -66
  462. package/ai/jetbrains/rules/concorde.md +0 -53
  463. package/ai/skills/concorde-get-set-dp/SKILL.md +0 -194
  464. package/ai/skills/concorde-imports/SKILL.md +0 -78
  465. package/ai/skills/concorde-menu/SKILL.md +0 -74
  466. package/ai/skills/concorde-scope/SKILL.md +0 -70
  467. package/ai/skills/concorde-theme/SKILL.md +0 -57
  468. package/docs/assets/index-CD4WyL6o.css +0 -1
  469. package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
  470. package/src/docs/_core-concept/overview.md +0 -57
  471. package/src/docs/_core-concept/subscriber.md +0 -75
  472. package/src/docs/_decorators/ancestor-attribute.md +0 -128
  473. package/src/docs/_decorators/auto-subscribe.md +0 -202
  474. package/src/docs/_decorators/bind.md +0 -167
  475. package/src/docs/_decorators/get.md +0 -162
  476. package/src/docs/_decorators/handle.md +0 -175
  477. package/src/docs/_decorators/on-assign.md +0 -390
  478. package/src/docs/_decorators/patch.md +0 -70
  479. package/src/docs/_decorators/post.md +0 -146
  480. package/src/docs/_decorators/publish.md +0 -55
  481. package/src/docs/_decorators/put.md +0 -70
  482. package/src/docs/_decorators/subscribe.md +0 -100
  483. package/src/docs/_decorators/wait-for-ancestors.md +0 -163
  484. package/src/docs/_directives/sub.md +0 -91
  485. package/src/docs/_getting-started/ai-agents.md +0 -76
  486. package/src/docs/_getting-started/concorde-manual-install.md +0 -133
  487. package/src/docs/_getting-started/concorde-outside.md +0 -33
  488. package/src/docs/_getting-started/my-first-subscriber.md +0 -120
  489. package/src/docs/_getting-started/pubsub.md +0 -37
  490. package/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  491. package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
  492. package/src/docs/example/docs-joke-demos.ts +0 -297
  493. /package/{src/docs/_getting-started → docs/docs/getting-started}/components.md +0 -0
  494. /package/{src/docs/_getting-started → docs/docs/getting-started}/theming.md +0 -0
@@ -0,0 +1,197 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-doc-url="https://concorde.supersoniks.org/core/components/ui/badge" data-doc-id="core/components/ui/badge/badge">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Badge — Concorde by Supersoniks</title>
7
+ <meta name="description" content="Badges are compact, non-interactive labels for status, counts, or categories. They mirror sonic-button styling (type, variant, size) without focus rings or click handling—use a button when the control">
8
+ <meta name="keywords" content="Concorde, supersoniks, core/components/ui/badge/badge, badge, Badge, UI component, sonic-badge, web component, sonic-button, type, variant, size, default, base-100, neutral, base-content, outline">
9
+ <meta name="concorde-doc-id" content="core/components/ui/badge/badge">
10
+ <link rel="canonical" href="https://concorde.supersoniks.org/core/components/ui/badge">
11
+ <link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/core/components/ui/badge.md">
12
+ </head>
13
+ <body>
14
+ <header>
15
+ <p><a href="/docs/index.html">Concorde documentation</a> · <a href="https://concorde.supersoniks.org/core/components/ui/badge">same URL (interactive)</a> · <a href="/llms.txt">llms.txt</a></p>
16
+ </header>
17
+ <main>
18
+ <article>
19
+ <p class="doc-lead" id="doc-summary"><strong>Concorde UI component — Badge</strong>. Badges are compact, non-interactive labels for status, counts, or categories. They mirror sonic-button styling (type, variant, size) without focus rings or click handling—use a button when the control <span>Doc ID: <code>core/components/ui/badge/badge</code>. Keywords: Concorde, supersoniks, core/components/ui/badge/badge, badge, Badge, UI component, sonic-badge, web component, sonic-button, type, variant, size, default, base-100, neutral, base-content, outline. URL: <a href="https://concorde.supersoniks.org/core/components/ui/badge">https://concorde.supersoniks.org/core/components/ui/badge</a>.</span></p>
20
+ <h1 id="badge">Badge</h1>
21
+ <p>Badges are <strong>compact, non-interactive</strong> labels for status, counts, or categories. They mirror <strong><code>sonic-button</code></strong> styling (<code>type</code>, <code>variant</code>, <code>size</code>) without focus rings or click handling—use a button when the control should be actionable.</p>
22
+ <h2 id="type">Type</h2>
23
+ <p><code>default</code> — subtle background (<code>base-100</code>). <code>neutral</code> — dark fill (<code>base-content</code>) with light text, useful on light backgrounds.</p>
24
+ <pre><code>&lt;div class=&quot;flex flex-wrap gap-2&quot;&gt;
25
+ &lt;sonic-badge&gt;Default&lt;/sonic-badge&gt;
26
+ &lt;sonic-badge type=&quot;primary&quot;&gt;Primary&lt;/sonic-badge&gt;
27
+ &lt;sonic-badge type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-badge&gt;
28
+ &lt;sonic-badge type=&quot;warning&quot;&gt;Warning&lt;/sonic-badge&gt;
29
+ &lt;sonic-badge type=&quot;info&quot;&gt;Info&lt;/sonic-badge&gt;
30
+ &lt;sonic-badge type=&quot;success&quot;&gt;Success&lt;/sonic-badge&gt;
31
+ &lt;sonic-badge type=&quot;danger&quot;&gt;Danger&lt;/sonic-badge&gt;
32
+ &lt;/div&gt;
33
+ </code></pre>
34
+ <h2 id="variant">Variant</h2>
35
+ <p>Default <strong><code>variant</code></strong> is filled. <strong><code>outline</code></strong> — border and text in the <code>type</code> color. <strong><code>ghost</code></strong> — text only, no padding (except in forced-colors mode).</p>
36
+ <pre><code>&lt;div class=&quot;grid gap-3&quot;&gt;
37
+ &lt;div class=&quot;flex items-center flex-wrap gap-3&quot;&gt;
38
+ &lt;sonic-badge variant=&quot;outline&quot;&gt;Default&lt;/sonic-badge&gt;
39
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;primary&quot;&gt;Primary&lt;/sonic-badge&gt;
40
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-badge&gt;
41
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;warning&quot;&gt;Warning&lt;/sonic-badge&gt;
42
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;info&quot;&gt;Info&lt;/sonic-badge&gt;
43
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;success&quot;&gt;Success&lt;/sonic-badge&gt;
44
+ &lt;sonic-badge variant=&quot;outline&quot; type=&quot;danger&quot;&gt;Danger&lt;/sonic-badge&gt;
45
+ &lt;/div&gt;
46
+ &lt;div class=&quot;flex items-center flex-wrap gap-3&quot;&gt;
47
+ &lt;sonic-badge variant=&quot;ghost&quot;&gt;Default&lt;/sonic-badge&gt;
48
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;primary&quot;&gt;Primary&lt;/sonic-badge&gt;
49
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;neutral&quot;&gt;Neutral&lt;/sonic-badge&gt;
50
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;warning&quot;&gt;Warning&lt;/sonic-badge&gt;
51
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;info&quot;&gt;Info&lt;/sonic-badge&gt;
52
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;success&quot;&gt;Success&lt;/sonic-badge&gt;
53
+ &lt;sonic-badge variant=&quot;ghost&quot; type=&quot;danger&quot;&gt;Danger&lt;/sonic-badge&gt;
54
+ &lt;/div&gt;
55
+ &lt;/div&gt;
56
+ </code></pre>
57
+ <h2 id="size">Size</h2>
58
+ <p>Default size is <code>md</code> (omit the <code>size</code> attribute). Typography and padding follow <code>sonic-button</code>.</p>
59
+ <pre><code>&lt;div class=&quot;flex flex-wrap items-center gap-2&quot;&gt;
60
+ &lt;sonic-badge size=&quot;2xs&quot;&gt;2Xs&lt;/sonic-badge&gt;
61
+ &lt;sonic-badge size=&quot;xs&quot;&gt;Xs&lt;/sonic-badge&gt;
62
+ &lt;sonic-badge size=&quot;sm&quot;&gt;Sm&lt;/sonic-badge&gt;
63
+ &lt;sonic-badge&gt;Md&lt;/sonic-badge&gt;
64
+ &lt;sonic-badge size=&quot;lg&quot;&gt;Lg&lt;/sonic-badge&gt;
65
+ &lt;sonic-badge size=&quot;xl&quot;&gt;Xl&lt;/sonic-badge&gt;
66
+ &lt;sonic-badge size=&quot;2xl&quot;&gt;2Xl&lt;/sonic-badge&gt;
67
+ &lt;/div&gt;
68
+ </code></pre>
69
+ <h2 id="prefix-and-suffix-slots">Prefix and suffix slots</h2>
70
+ <p>Icons or short text before / after the main label.</p>
71
+ <pre><code>&lt;sonic-badge type=&quot;info&quot; size=&quot;sm&quot;&gt;
72
+ &lt;sonic-icon slot=&quot;prefix&quot; name=&quot;airplane&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt;
73
+ Boarding
74
+ &lt;/sonic-badge&gt;
75
+ &lt;sonic-badge type=&quot;success&quot;&gt;
76
+ Landed
77
+ &lt;sonic-icon slot=&quot;suffix&quot; name=&quot;check&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt;
78
+ &lt;/sonic-badge&gt;
79
+ </code></pre>
80
+ <h2 id="empty-badges">Empty badges</h2>
81
+ <p>Badge with no text (visual dot). <code>min-width</code> / <code>min-height</code> keep a readable shape.</p>
82
+ <pre><code>&lt;div class=&quot;flex items-center flex-wrap gap-3&quot;&gt;
83
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;2xs&quot;&gt;&lt;/sonic-badge&gt;
84
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;xs&quot;&gt;&lt;/sonic-badge&gt;
85
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;sm&quot;&gt;&lt;/sonic-badge&gt;
86
+ &lt;sonic-badge type=&quot;danger&quot;&gt;&lt;/sonic-badge&gt;
87
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;lg&quot;&gt;&lt;/sonic-badge&gt;
88
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;xl&quot;&gt;&lt;/sonic-badge&gt;
89
+ &lt;sonic-badge type=&quot;danger&quot; size=&quot;2xl&quot;&gt;&lt;/sonic-badge&gt;
90
+ &lt;/div&gt;
91
+ </code></pre>
92
+ <h2 id="ellipsis">Ellipsis</h2>
93
+ <p>With <code>ellipsis</code>, long labels truncate. The parent must constrain width (<code>max-width</code>, grid, etc.).</p>
94
+ <pre><code>&lt;div class=&quot;grid grid-cols-2 gap-4 max-w-xl&quot;&gt;
95
+ &lt;sonic-badge ellipsis size=&quot;sm&quot; variant=&quot;outline&quot;&gt;
96
+ &lt;sonic-icon slot=&quot;prefix&quot; name=&quot;info-empty&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt;
97
+ CN 001 · CDG → JFK · Gate change: now boarding at gate B12, terminal 2E
98
+ &lt;/sonic-badge&gt;
99
+ &lt;sonic-badge ellipsis size=&quot;sm&quot;&gt;
100
+ &lt;sonic-icon slot=&quot;prefix&quot; name=&quot;info-empty&quot; library=&quot;iconoir&quot;&gt;&lt;/sonic-icon&gt;
101
+ CN 001 · CDG → JFK · Gate change: now boarding at gate B12, terminal 2E
102
+ &lt;/sonic-badge&gt;
103
+ &lt;/div&gt;
104
+ </code></pre>
105
+ <h2 id="badge-in-button">Badge in button</h2>
106
+ <p>Count inside a button (<code>slot=&quot;suffix&quot;</code>) or a badge absolutely positioned on a button / icon.</p>
107
+ <pre><code>&lt;div class=&quot;flex flex-wrap gap-4 items-center&quot;&gt;
108
+ &lt;sonic-button type=&quot;default&quot;&gt;
109
+ Departures &lt;sonic-badge slot=&quot;suffix&quot; type=&quot;danger&quot; size=&quot;xs&quot;&gt;5&lt;/sonic-badge&gt;
110
+ &lt;/sonic-button&gt;
111
+ &lt;div class=&quot;relative inline-block&quot;&gt;
112
+ &lt;sonic-button type=&quot;success&quot; class=&quot;relative&quot;&gt;Crew&lt;/sonic-button&gt;
113
+ &lt;sonic-badge
114
+ type=&quot;danger&quot;
115
+ size=&quot;xs&quot;
116
+ class=&quot;absolute right-1 top-0 pe-none transform -translate-y-1/2&quot;
117
+ &gt;12&lt;/sonic-badge
118
+ &gt;
119
+ &lt;/div&gt;
120
+ &lt;div class=&quot;relative inline-block&quot;&gt;
121
+ &lt;sonic-button type=&quot;neutral&quot; shape=&quot;circle&quot; variant=&quot;outline&quot;&gt;
122
+ &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;user&quot;&gt;&lt;/sonic-icon&gt;
123
+ &lt;/sonic-button&gt;
124
+ &lt;sonic-badge
125
+ type=&quot;danger&quot;
126
+ size=&quot;xs&quot;
127
+ class=&quot;absolute right-1 bottom-1 pe-none transform translate-y-1/2 translate-x-1/2&quot;
128
+ &gt;33&lt;/sonic-badge
129
+ &gt;
130
+ &lt;/div&gt;
131
+ &lt;div class=&quot;relative inline-block&quot;&gt;
132
+ &lt;sonic-button type=&quot;neutral&quot; shape=&quot;circle&quot; variant=&quot;outline&quot;&gt;
133
+ &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;user&quot;&gt;&lt;/sonic-icon&gt;
134
+ &lt;/sonic-button&gt;
135
+ &lt;sonic-badge
136
+ type=&quot;danger&quot;
137
+ size=&quot;xs&quot;
138
+ class=&quot;absolute right-2 bottom-2 pe-none transform translate-y-1/2 translate-x-1/2&quot;
139
+ &gt;&lt;/sonic-badge&gt;
140
+ &lt;/div&gt;
141
+ &lt;/div&gt;
142
+ </code></pre>
143
+ <h2 id="api-reference">API reference</h2>
144
+ <table>
145
+ <thead>
146
+ <tr>
147
+ <th>Attribute</th>
148
+ <th>Values</th>
149
+ <th>Description</th>
150
+ </tr>
151
+ </thead>
152
+ <tbody><tr>
153
+ <td><code>type</code></td>
154
+ <td><code>default</code> (default) · <code>primary</code> · <code>neutral</code> · <code>warning</code> · <code>info</code> · <code>success</code> · <code>danger</code></td>
155
+ <td>Semantic color (<code>--sc-*</code> tokens)</td>
156
+ </tr>
157
+ <tr>
158
+ <td><code>variant</code></td>
159
+ <td><code>default</code> (default) · <code>outline</code> · <code>ghost</code></td>
160
+ <td>Filled, bordered, or text-only</td>
161
+ </tr>
162
+ <tr>
163
+ <td><code>size</code></td>
164
+ <td><code>2xs</code> … <code>2xl</code> (default <code>md</code>) · <code>inherit</code></td>
165
+ <td>Typography and padding (aligned with <strong><code>sonic-button</code></strong>)</td>
166
+ </tr>
167
+ <tr>
168
+ <td><code>ellipsis</code></td>
169
+ <td>boolean</td>
170
+ <td>Single-line truncation; parent must constrain width</td>
171
+ </tr>
172
+ </tbody></table>
173
+ <table>
174
+ <thead>
175
+ <tr>
176
+ <th>Slot</th>
177
+ <th>Description</th>
178
+ </tr>
179
+ </thead>
180
+ <tbody><tr>
181
+ <td><em>(default)</em></td>
182
+ <td>Main label</td>
183
+ </tr>
184
+ <tr>
185
+ <td><code>prefix</code></td>
186
+ <td>Icon or short text before the label</td>
187
+ </tr>
188
+ <tr>
189
+ <td><code>suffix</code></td>
190
+ <td>Icon or short text after the label</td>
191
+ </tr>
192
+ </tbody></table>
193
+
194
+ </article>
195
+ </main>
196
+ </body>
197
+ </html>
@@ -0,0 +1,181 @@
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 |