@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,223 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-doc-url="https://concorde.supersoniks.org/core/components/ui/icon" data-doc-id="core/components/ui/icon/icon">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Icon — Concorde by Supersoniks</title>
7
+ <meta name="description" content="sonic-icon renders inline SVG icons from the bundled core set or from CDN libraries. Set name (and library / prefix when needed); scale with size. Icons inherit currentColor and are aria-hidden by def">
8
+ <meta name="keywords" content="Concorde, supersoniks, core/components/ui/icon/icon, icon, Icon, UI component, sonic-icon, web component, name, library, prefix, size, currentColor, aria-hidden, icons.json">
9
+ <meta name="concorde-doc-id" content="core/components/ui/icon/icon">
10
+ <link rel="canonical" href="https://concorde.supersoniks.org/core/components/ui/icon">
11
+ <link rel="alternate" type="text/markdown" href="https://concorde.supersoniks.org/core/components/ui/icon.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/icon">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 — Icon</strong>. sonic-icon renders inline SVG icons from the bundled core set or from CDN libraries. Set name (and library / prefix when needed); scale with size. Icons inherit currentColor and are aria-hidden by def <span>Doc ID: <code>core/components/ui/icon/icon</code>. Keywords: Concorde, supersoniks, core/components/ui/icon/icon, icon, Icon, UI component, sonic-icon, web component, name, library, prefix, size, currentColor, aria-hidden, icons.json. URL: <a href="https://concorde.supersoniks.org/core/components/ui/icon">https://concorde.supersoniks.org/core/components/ui/icon</a>.</span></p>
20
+ <h1 id="icon">Icon</h1>
21
+ <p><strong><code>sonic-icon</code></strong> renders inline SVG icons from the <strong>bundled core set</strong> or from <strong>CDN libraries</strong>. Set <strong><code>name</code></strong> (and <strong><code>library</code></strong> / <strong><code>prefix</code></strong> when needed); scale with <strong><code>size</code></strong>. Icons inherit <strong><code>currentColor</code></strong> and are <strong><code>aria-hidden</code></strong> by default—keep visible text nearby or label the control that contains them.</p>
22
+ <h2 id="core-library">Core library</h2>
23
+ <p>Omit <strong><code>library</code></strong> to use the bundled set in <code>icons.json</code>. Available <strong><code>name</code></strong> values: <code>cancel</code> · <code>check</code> · <code>check-circled-outline</code> · <code>emoji-puzzled</code> · <code>info-empty</code> · <code>loader</code> · <code>minus-small</code> · <code>more-horiz</code> · <code>more-vert</code> · <code>nav-arrow-down</code> · <code>warning-circled-outline</code>.</p>
24
+ <pre><code>&lt;div class=&quot;grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-8&quot;&gt;
25
+ &lt;div class=&quot;text-center&quot;&gt;
26
+ &lt;sonic-icon name=&quot;cancel&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
27
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;cancel&lt;/div&gt;
28
+ &lt;/div&gt;
29
+ &lt;div class=&quot;text-center&quot;&gt;
30
+ &lt;sonic-icon name=&quot;check&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
31
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;check&lt;/div&gt;
32
+ &lt;/div&gt;
33
+ &lt;div class=&quot;text-center&quot;&gt;
34
+ &lt;sonic-icon name=&quot;check-circled-outline&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
35
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;check-circled-outline&lt;/div&gt;
36
+ &lt;/div&gt;
37
+ &lt;div class=&quot;text-center&quot;&gt;
38
+ &lt;sonic-icon name=&quot;emoji-puzzled&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
39
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;emoji-puzzled&lt;/div&gt;
40
+ &lt;/div&gt;
41
+ &lt;div class=&quot;text-center&quot;&gt;
42
+ &lt;sonic-icon name=&quot;info-empty&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
43
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;info-empty&lt;/div&gt;
44
+ &lt;/div&gt;
45
+ &lt;div class=&quot;text-center&quot;&gt;
46
+ &lt;sonic-icon name=&quot;loader&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
47
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;loader&lt;/div&gt;
48
+ &lt;/div&gt;
49
+ &lt;div class=&quot;text-center&quot;&gt;
50
+ &lt;sonic-icon name=&quot;minus-small&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
51
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;minus-small&lt;/div&gt;
52
+ &lt;/div&gt;
53
+ &lt;div class=&quot;text-center&quot;&gt;
54
+ &lt;sonic-icon name=&quot;more-horiz&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
55
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;more-horiz&lt;/div&gt;
56
+ &lt;/div&gt;
57
+ &lt;div class=&quot;text-center&quot;&gt;
58
+ &lt;sonic-icon name=&quot;more-vert&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
59
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;more-vert&lt;/div&gt;
60
+ &lt;/div&gt;
61
+ &lt;div class=&quot;text-center&quot;&gt;
62
+ &lt;sonic-icon name=&quot;nav-arrow-down&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
63
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;nav-arrow-down&lt;/div&gt;
64
+ &lt;/div&gt;
65
+ &lt;div class=&quot;text-center&quot;&gt;
66
+ &lt;sonic-icon name=&quot;warning-circled-outline&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
67
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;warning-circled-outline&lt;/div&gt;
68
+ &lt;/div&gt;
69
+ &lt;/div&gt;
70
+ </code></pre>
71
+ <h2 id="external-libraries">External libraries</h2>
72
+ <p>Set <strong><code>library</code></strong> to load SVGs from a built-in CDN template. <strong><code>prefix</code></strong> falls back to each library’s default when omitted (<code>outline</code> for <strong><code>heroicons</code></strong>, <strong><code>regular</code></strong> for <strong><code>fontAwesome</code></strong> and <strong><code>material</code></strong>, and so on).</p>
73
+ <pre><code>&lt;div class=&quot;grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-8&quot;&gt;
74
+ &lt;sonic-link href=&quot;https://heroicons.com/&quot; target=&quot;_blank&quot; class=&quot;text-center underline&quot;&gt;
75
+ &lt;sonic-icon library=&quot;heroicons&quot; prefix=&quot;outline&quot; name=&quot;academic-cap&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
76
+ &lt;br /&gt;
77
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;heroicons&lt;/div&gt;
78
+ &lt;/sonic-link&gt;
79
+ &lt;sonic-link href=&quot;https://iconoir.com/&quot; target=&quot;_blank&quot; class=&quot;text-center underline&quot;&gt;
80
+ &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;2x2-cell&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
81
+ &lt;br /&gt;
82
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;iconoir&lt;/div&gt;
83
+ &lt;/sonic-link&gt;
84
+ &lt;sonic-link href=&quot;https://materialdesignicons.com/&quot; target=&quot;_blank&quot; class=&quot;text-center underline&quot;&gt;
85
+ &lt;sonic-icon library=&quot;material&quot; prefix=&quot;outline&quot; name=&quot;email&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
86
+ &lt;br /&gt;
87
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;material design&lt;/div&gt;
88
+ &lt;/sonic-link&gt;
89
+ &lt;sonic-link href=&quot;https://fontawesome.com/search?o=r&amp;m=free&amp;s=regular&quot; target=&quot;_blank&quot; class=&quot;text-center underline&quot;&gt;
90
+ &lt;sonic-icon library=&quot;fontAwesome&quot; prefix=&quot;regular&quot; name=&quot;user&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
91
+ &lt;br /&gt;
92
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;fontAwesome regular&lt;/div&gt;
93
+ &lt;/sonic-link&gt;
94
+ &lt;sonic-link href=&quot;https://fontawesome.com/search?o=r&amp;m=free&amp;s=solid&quot; target=&quot;_blank&quot; class=&quot;text-center underline&quot;&gt;
95
+ &lt;sonic-icon library=&quot;fontAwesome&quot; prefix=&quot;solid&quot; name=&quot;book&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
96
+ &lt;br /&gt;
97
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;fontAwesome solid&lt;/div&gt;
98
+ &lt;/sonic-link&gt;
99
+ &lt;sonic-link href=&quot;https://feathericons.com/&quot; target=&quot;_blank&quot; class=&quot;text-center underline&quot;&gt;
100
+ &lt;sonic-icon library=&quot;feathers&quot; name=&quot;activity&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
101
+ &lt;br /&gt;
102
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;feathers&lt;/div&gt;
103
+ &lt;/sonic-link&gt;
104
+ &lt;sonic-link href=&quot;https://lucide.dev/&quot; target=&quot;_blank&quot; class=&quot;text-center underline&quot;&gt;
105
+ &lt;sonic-icon library=&quot;lucide&quot; name=&quot;album&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
106
+ &lt;br /&gt;
107
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;lucide&lt;/div&gt;
108
+ &lt;/sonic-link&gt;
109
+ &lt;/div&gt;
110
+ </code></pre>
111
+ <h2 id="custom-library">Custom library</h2>
112
+ <p>Use <strong><code>library=&quot;custom&quot;</code></strong> with SVG files on your origin. On an ancestor (for example <strong><code>sonic-scope</code></strong> or <strong><code>sonic-code</code></strong>), set <strong><code>customIconLibraryPath</code></strong> to a URL template with <strong><code>$prefix</code></strong> and <strong><code>$name</code></strong> placeholders, and optionally <strong><code>customIconDefaultPrefix</code></strong> when <strong><code>prefix</code></strong> is omitted.</p>
113
+ <pre><code>&lt;sonic-scope
114
+ customIconLibraryPath=&quot;/svg/$prefix/$name.svg&quot;
115
+ customIconDefaultPrefix=&quot;regular&quot;
116
+ &gt;
117
+ &lt;div class=&quot;grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-8&quot;&gt;
118
+ &lt;div class=&quot;text-center&quot;&gt;
119
+ &lt;sonic-icon library=&quot;custom&quot; prefix=&quot;regular&quot; name=&quot;plane&quot;&gt;&lt;/sonic-icon&gt;
120
+ &lt;br /&gt;
121
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;regular&lt;/div&gt;
122
+ &lt;/div&gt;
123
+ &lt;div class=&quot;text-center&quot;&gt;
124
+ &lt;sonic-icon library=&quot;custom&quot; prefix=&quot;solid&quot; name=&quot;plane&quot;&gt;&lt;/sonic-icon&gt;
125
+ &lt;br /&gt;
126
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;solid&lt;/div&gt;
127
+ &lt;/div&gt;
128
+ &lt;div class=&quot;text-center&quot;&gt;
129
+ &lt;sonic-icon library=&quot;custom&quot; name=&quot;plane&quot;&gt;&lt;/sonic-icon&gt;
130
+ &lt;br /&gt;
131
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;default prefix&lt;/div&gt;
132
+ &lt;/div&gt;
133
+ &lt;/div&gt;
134
+ &lt;/sonic-scope&gt;
135
+ </code></pre>
136
+ <h2 id="size">Size</h2>
137
+ <p>Omit <strong><code>size</code></strong> for the default scale (<code>1em</code> height, inherited from the font size). Steps go from <code>2xs</code> to <code>3xl</code>.</p>
138
+ <pre><code>&lt;div class=&quot;grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-8&quot;&gt;
139
+ &lt;div class=&quot;text-center&quot;&gt;
140
+ &lt;sonic-icon library=&quot;heroicons&quot; prefix=&quot;outline&quot; name=&quot;academic-cap&quot; size=&quot;2xs&quot;&gt;&lt;/sonic-icon&gt;
141
+ &lt;br /&gt;
142
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;2xs&lt;/div&gt;
143
+ &lt;/div&gt;
144
+ &lt;div class=&quot;text-center&quot;&gt;
145
+ &lt;sonic-icon library=&quot;heroicons&quot; prefix=&quot;outline&quot; name=&quot;academic-cap&quot; size=&quot;xs&quot;&gt;&lt;/sonic-icon&gt;
146
+ &lt;br /&gt;
147
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;xs&lt;/div&gt;
148
+ &lt;/div&gt;
149
+ &lt;div class=&quot;text-center&quot;&gt;
150
+ &lt;sonic-icon library=&quot;heroicons&quot; prefix=&quot;outline&quot; name=&quot;academic-cap&quot; size=&quot;sm&quot;&gt;&lt;/sonic-icon&gt;
151
+ &lt;br /&gt;
152
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;sm&lt;/div&gt;
153
+ &lt;/div&gt;
154
+ &lt;div class=&quot;text-center&quot;&gt;
155
+ &lt;sonic-icon library=&quot;heroicons&quot; prefix=&quot;outline&quot; name=&quot;academic-cap&quot;&gt;&lt;/sonic-icon&gt;
156
+ &lt;br /&gt;
157
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;default&lt;/div&gt;
158
+ &lt;/div&gt;
159
+ &lt;div class=&quot;text-center&quot;&gt;
160
+ &lt;sonic-icon library=&quot;heroicons&quot; prefix=&quot;outline&quot; name=&quot;academic-cap&quot; size=&quot;lg&quot;&gt;&lt;/sonic-icon&gt;
161
+ &lt;br /&gt;
162
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;lg&lt;/div&gt;
163
+ &lt;/div&gt;
164
+ &lt;div class=&quot;text-center&quot;&gt;
165
+ &lt;sonic-icon library=&quot;heroicons&quot; prefix=&quot;outline&quot; name=&quot;academic-cap&quot; size=&quot;xl&quot;&gt;&lt;/sonic-icon&gt;
166
+ &lt;br /&gt;
167
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;xl&lt;/div&gt;
168
+ &lt;/div&gt;
169
+ &lt;div class=&quot;text-center&quot;&gt;
170
+ &lt;sonic-icon library=&quot;heroicons&quot; prefix=&quot;outline&quot; name=&quot;academic-cap&quot; size=&quot;2xl&quot;&gt;&lt;/sonic-icon&gt;
171
+ &lt;br /&gt;
172
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;2xl&lt;/div&gt;
173
+ &lt;/div&gt;
174
+ &lt;div class=&quot;text-center&quot;&gt;
175
+ &lt;sonic-icon library=&quot;heroicons&quot; prefix=&quot;outline&quot; name=&quot;academic-cap&quot; size=&quot;3xl&quot;&gt;&lt;/sonic-icon&gt;
176
+ &lt;br /&gt;
177
+ &lt;div class=&quot;text-xs mt-1&quot;&gt;3xl&lt;/div&gt;
178
+ &lt;/div&gt;
179
+ &lt;/div&gt;
180
+ </code></pre>
181
+ <h2 id="accessibility">Accessibility</h2>
182
+ <p>On connect, the host sets <strong><code>aria-hidden=&quot;true&quot;</code></strong>. Treat icons as decorative unless the surrounding control already has an accessible name. Do not rely on <strong><code>sonic-icon</code></strong> alone for meaning—use visible text or <strong><code>aria-label</code></strong> on the parent button / link.</p>
183
+ <pre><code>&lt;sonic-button type=&quot;neutral&quot; variant=&quot;outline&quot; shape=&quot;circle&quot; aria-label=&quot;Flight details&quot;&gt;
184
+ &lt;sonic-icon library=&quot;iconoir&quot; name=&quot;airplane&quot;&gt;&lt;/sonic-icon&gt;
185
+ &lt;/sonic-button&gt;
186
+ </code></pre>
187
+ <h2 id="api-reference">API reference</h2>
188
+ <table>
189
+ <thead>
190
+ <tr>
191
+ <th>Attribute</th>
192
+ <th>Values</th>
193
+ <th>Description</th>
194
+ </tr>
195
+ </thead>
196
+ <tbody><tr>
197
+ <td><code>name</code></td>
198
+ <td>string</td>
199
+ <td>Icon id in the core bundle or in the remote library</td>
200
+ </tr>
201
+ <tr>
202
+ <td><code>library</code></td>
203
+ <td><code>heroicons</code> · <code>iconoir</code> · <code>feathers</code> · <code>lucide</code> · <code>material</code> · <code>fontAwesome</code> · <code>custom</code></td>
204
+ <td>CDN or custom template; omit for bundled core icons</td>
205
+ </tr>
206
+ <tr>
207
+ <td><code>prefix</code></td>
208
+ <td>string</td>
209
+ <td>Library-specific variant; defaults per library when empty</td>
210
+ </tr>
211
+ <tr>
212
+ <td><code>size</code></td>
213
+ <td><code>2xs</code> · <code>xs</code> · <code>sm</code> · <code>lg</code> · <code>xl</code> · <code>2xl</code> · <code>3xl</code> (default <code>1em</code>, no attribute)</td>
214
+ <td><code>em</code>-based SVG scale on the host</td>
215
+ </tr>
216
+ </tbody></table>
217
+ <p>Ancestor attributes (for <strong><code>library=&quot;custom&quot;</code></strong> only): <strong><code>customIconLibraryPath</code></strong> (URL template with <strong><code>$prefix</code></strong> and <strong><code>$name</code></strong>) and <strong><code>customIconDefaultPrefix</code></strong>. May be set on <strong><code>sonic-scope</code></strong>, theme roots, or globally in the document.</p>
218
+ <p>No slots — the component inlines fetched or bundled SVG markup.</p>
219
+
220
+ </article>
221
+ </main>
222
+ </body>
223
+ </html>
@@ -0,0 +1,214 @@
1
+ # Icon
2
+
3
+ **`sonic-icon`** renders inline SVG icons from the **bundled core set** or from **CDN libraries**. Set **`name`** (and **`library`** / **`prefix`** when needed); scale with **`size`**. Icons inherit **`currentColor`** and are **`aria-hidden`** by default—keep visible text nearby or label the control that contains them.
4
+
5
+ ## Core library
6
+
7
+ Omit **`library`** to use the bundled set in `icons.json`. Available **`name`** values: `cancel` · `check` · `check-circled-outline` · `emoji-puzzled` · `info-empty` · `loader` · `minus-small` · `more-horiz` · `more-vert` · `nav-arrow-down` · `warning-circled-outline`.
8
+
9
+ <sonic-code>
10
+ <template>
11
+ <div class="grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-8">
12
+ <div class="text-center">
13
+ <sonic-icon name="cancel" size="lg"></sonic-icon>
14
+ <div class="text-xs mt-1">cancel</div>
15
+ </div>
16
+ <div class="text-center">
17
+ <sonic-icon name="check" size="lg"></sonic-icon>
18
+ <div class="text-xs mt-1">check</div>
19
+ </div>
20
+ <div class="text-center">
21
+ <sonic-icon name="check-circled-outline" size="lg"></sonic-icon>
22
+ <div class="text-xs mt-1">check-circled-outline</div>
23
+ </div>
24
+ <div class="text-center">
25
+ <sonic-icon name="emoji-puzzled" size="lg"></sonic-icon>
26
+ <div class="text-xs mt-1">emoji-puzzled</div>
27
+ </div>
28
+ <div class="text-center">
29
+ <sonic-icon name="info-empty" size="lg"></sonic-icon>
30
+ <div class="text-xs mt-1">info-empty</div>
31
+ </div>
32
+ <div class="text-center">
33
+ <sonic-icon name="loader" size="lg"></sonic-icon>
34
+ <div class="text-xs mt-1">loader</div>
35
+ </div>
36
+ <div class="text-center">
37
+ <sonic-icon name="minus-small" size="lg"></sonic-icon>
38
+ <div class="text-xs mt-1">minus-small</div>
39
+ </div>
40
+ <div class="text-center">
41
+ <sonic-icon name="more-horiz" size="lg"></sonic-icon>
42
+ <div class="text-xs mt-1">more-horiz</div>
43
+ </div>
44
+ <div class="text-center">
45
+ <sonic-icon name="more-vert" size="lg"></sonic-icon>
46
+ <div class="text-xs mt-1">more-vert</div>
47
+ </div>
48
+ <div class="text-center">
49
+ <sonic-icon name="nav-arrow-down" size="lg"></sonic-icon>
50
+ <div class="text-xs mt-1">nav-arrow-down</div>
51
+ </div>
52
+ <div class="text-center">
53
+ <sonic-icon name="warning-circled-outline" size="lg"></sonic-icon>
54
+ <div class="text-xs mt-1">warning-circled-outline</div>
55
+ </div>
56
+ </div>
57
+ </template>
58
+ </sonic-code>
59
+
60
+ ## External libraries
61
+
62
+ Set **`library`** to load SVGs from a built-in CDN template. **`prefix`** falls back to each library’s default when omitted (`outline` for **`heroicons`**, **`regular`** for **`fontAwesome`** and **`material`**, and so on).
63
+
64
+ <sonic-code>
65
+ <template>
66
+ <div class="grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-8">
67
+ <sonic-link href="https://heroicons.com/" target="_blank" class="text-center underline">
68
+ <sonic-icon library="heroicons" prefix="outline" name="academic-cap" size="lg"></sonic-icon>
69
+ <br />
70
+ <div class="text-xs mt-1">heroicons</div>
71
+ </sonic-link>
72
+ <sonic-link href="https://iconoir.com/" target="_blank" class="text-center underline">
73
+ <sonic-icon library="iconoir" name="2x2-cell" size="lg"></sonic-icon>
74
+ <br />
75
+ <div class="text-xs mt-1">iconoir</div>
76
+ </sonic-link>
77
+ <sonic-link href="https://materialdesignicons.com/" target="_blank" class="text-center underline">
78
+ <sonic-icon library="material" prefix="outline" name="email" size="lg"></sonic-icon>
79
+ <br />
80
+ <div class="text-xs mt-1">material design</div>
81
+ </sonic-link>
82
+ <sonic-link href="https://fontawesome.com/search?o=r&m=free&s=regular" target="_blank" class="text-center underline">
83
+ <sonic-icon library="fontAwesome" prefix="regular" name="user" size="lg"></sonic-icon>
84
+ <br />
85
+ <div class="text-xs mt-1">fontAwesome regular</div>
86
+ </sonic-link>
87
+ <sonic-link href="https://fontawesome.com/search?o=r&m=free&s=solid" target="_blank" class="text-center underline">
88
+ <sonic-icon library="fontAwesome" prefix="solid" name="book" size="lg"></sonic-icon>
89
+ <br />
90
+ <div class="text-xs mt-1">fontAwesome solid</div>
91
+ </sonic-link>
92
+ <sonic-link href="https://feathericons.com/" target="_blank" class="text-center underline">
93
+ <sonic-icon library="feathers" name="activity" size="lg"></sonic-icon>
94
+ <br />
95
+ <div class="text-xs mt-1">feathers</div>
96
+ </sonic-link>
97
+ <sonic-link href="https://lucide.dev/" target="_blank" class="text-center underline">
98
+ <sonic-icon library="lucide" name="album" size="lg"></sonic-icon>
99
+ <br />
100
+ <div class="text-xs mt-1">lucide</div>
101
+ </sonic-link>
102
+ </div>
103
+ </template>
104
+ </sonic-code>
105
+
106
+ ## Custom library
107
+
108
+ Use **`library="custom"`** with SVG files on your origin. On an ancestor (for example **`sonic-scope`** or **`sonic-code`**), set **`customIconLibraryPath`** to a URL template with **`$prefix`** and **`$name`** placeholders, and optionally **`customIconDefaultPrefix`** when **`prefix`** is omitted.
109
+
110
+ <sonic-code
111
+ customIconLibraryPath="/svg/$prefix/$name.svg"
112
+ customIconDefaultPrefix="regular"
113
+ >
114
+ <template>
115
+ <sonic-scope
116
+ customIconLibraryPath="/svg/$prefix/$name.svg"
117
+ customIconDefaultPrefix="regular"
118
+ >
119
+ <div class="grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-8">
120
+ <div class="text-center">
121
+ <sonic-icon library="custom" prefix="regular" name="plane"></sonic-icon>
122
+ <br />
123
+ <div class="text-xs mt-1">regular</div>
124
+ </div>
125
+ <div class="text-center">
126
+ <sonic-icon library="custom" prefix="solid" name="plane"></sonic-icon>
127
+ <br />
128
+ <div class="text-xs mt-1">solid</div>
129
+ </div>
130
+ <div class="text-center">
131
+ <sonic-icon library="custom" name="plane"></sonic-icon>
132
+ <br />
133
+ <div class="text-xs mt-1">default prefix</div>
134
+ </div>
135
+ </div>
136
+ </sonic-scope>
137
+ </template>
138
+ </sonic-code>
139
+
140
+ ## Size
141
+
142
+ Omit **`size`** for the default scale (`1em` height, inherited from the font size). Steps go from `2xs` to `3xl`.
143
+
144
+ <sonic-code>
145
+ <template>
146
+ <div class="grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-8">
147
+ <div class="text-center">
148
+ <sonic-icon library="heroicons" prefix="outline" name="academic-cap" size="2xs"></sonic-icon>
149
+ <br />
150
+ <div class="text-xs mt-1">2xs</div>
151
+ </div>
152
+ <div class="text-center">
153
+ <sonic-icon library="heroicons" prefix="outline" name="academic-cap" size="xs"></sonic-icon>
154
+ <br />
155
+ <div class="text-xs mt-1">xs</div>
156
+ </div>
157
+ <div class="text-center">
158
+ <sonic-icon library="heroicons" prefix="outline" name="academic-cap" size="sm"></sonic-icon>
159
+ <br />
160
+ <div class="text-xs mt-1">sm</div>
161
+ </div>
162
+ <div class="text-center">
163
+ <sonic-icon library="heroicons" prefix="outline" name="academic-cap"></sonic-icon>
164
+ <br />
165
+ <div class="text-xs mt-1">default</div>
166
+ </div>
167
+ <div class="text-center">
168
+ <sonic-icon library="heroicons" prefix="outline" name="academic-cap" size="lg"></sonic-icon>
169
+ <br />
170
+ <div class="text-xs mt-1">lg</div>
171
+ </div>
172
+ <div class="text-center">
173
+ <sonic-icon library="heroicons" prefix="outline" name="academic-cap" size="xl"></sonic-icon>
174
+ <br />
175
+ <div class="text-xs mt-1">xl</div>
176
+ </div>
177
+ <div class="text-center">
178
+ <sonic-icon library="heroicons" prefix="outline" name="academic-cap" size="2xl"></sonic-icon>
179
+ <br />
180
+ <div class="text-xs mt-1">2xl</div>
181
+ </div>
182
+ <div class="text-center">
183
+ <sonic-icon library="heroicons" prefix="outline" name="academic-cap" size="3xl"></sonic-icon>
184
+ <br />
185
+ <div class="text-xs mt-1">3xl</div>
186
+ </div>
187
+ </div>
188
+ </template>
189
+ </sonic-code>
190
+
191
+ ## Accessibility
192
+
193
+ On connect, the host sets **`aria-hidden="true"`**. Treat icons as decorative unless the surrounding control already has an accessible name. Do not rely on **`sonic-icon`** alone for meaning—use visible text or **`aria-label`** on the parent button / link.
194
+
195
+ <sonic-code>
196
+ <template>
197
+ <sonic-button type="neutral" variant="outline" shape="circle" aria-label="Flight details">
198
+ <sonic-icon library="iconoir" name="airplane"></sonic-icon>
199
+ </sonic-button>
200
+ </template>
201
+ </sonic-code>
202
+
203
+ ## API reference
204
+
205
+ | Attribute | Values | Description |
206
+ |----------|---------|-------------|
207
+ | `name` | string | Icon id in the core bundle or in the remote library |
208
+ | `library` | `heroicons` · `iconoir` · `feathers` · `lucide` · `material` · `fontAwesome` · `custom` | CDN or custom template; omit for bundled core icons |
209
+ | `prefix` | string | Library-specific variant; defaults per library when empty |
210
+ | `size` | `2xs` · `xs` · `sm` · `lg` · `xl` · `2xl` · `3xl` (default `1em`, no attribute) | `em`-based SVG scale on the host |
211
+
212
+ Ancestor attributes (for **`library="custom"`** only): **`customIconLibraryPath`** (URL template with **`$prefix`** and **`$name`**) and **`customIconDefaultPrefix`**. May be set on **`sonic-scope`**, theme roots, or globally in the document.
213
+
214
+ No slots — the component inlines fetched or bundled SVG markup.