@supersoniks/concorde 5.1.0 → 5.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) 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/.claude/launch.json +15 -0
  6. package/.claude/vite.http.config.mjs +7 -0
  7. package/.taste-skill/after/desktop-fold.jpg +0 -0
  8. package/.taste-skill/after/desktop-page-01.jpg +0 -0
  9. package/.taste-skill/after/desktop-page-02.jpg +0 -0
  10. package/.taste-skill/after/desktop-page-03.jpg +0 -0
  11. package/.taste-skill/after/mobile-fold.jpg +0 -0
  12. package/.taste-skill/after/mobile-page-01.jpg +0 -0
  13. package/.taste-skill/after/report.json +4103 -0
  14. package/.taste-skill/after/tablet-fold.jpg +0 -0
  15. package/.taste-skill/after/tablet-page-01.jpg +0 -0
  16. package/.taste-skill/after/tablet-page-02.jpg +0 -0
  17. package/.taste-skill/before/desktop-fold.jpg +0 -0
  18. package/.taste-skill/before/desktop-page-01.jpg +0 -0
  19. package/.taste-skill/before/desktop-page-02.jpg +0 -0
  20. package/.taste-skill/before/mobile-fold.jpg +0 -0
  21. package/.taste-skill/before/mobile-page-01.jpg +0 -0
  22. package/.taste-skill/before/report.json +2556 -0
  23. package/.taste-skill/before/tablet-fold.jpg +0 -0
  24. package/.taste-skill/before/tablet-page-01.jpg +0 -0
  25. package/.taste-skill/direction.json +510 -0
  26. package/.taste-skill/notes.md +84 -0
  27. package/.taste-skill/prod/desktop-fold.jpg +0 -0
  28. package/.taste-skill/prod/desktop-page-01.jpg +0 -0
  29. package/.taste-skill/prod/desktop-page-02.jpg +0 -0
  30. package/.taste-skill/prod/desktop-page-03.jpg +0 -0
  31. package/.taste-skill/prod/mobile-fold.jpg +0 -0
  32. package/.taste-skill/prod/mobile-page-01.jpg +0 -0
  33. package/.taste-skill/prod/mobile-page-02.jpg +0 -0
  34. package/.taste-skill/prod/report.json +1973 -0
  35. package/.taste-skill/prod/tablet-fold.jpg +0 -0
  36. package/.taste-skill/prod/tablet-page-01.jpg +0 -0
  37. package/.taste-skill/prod/tablet-page-02.jpg +0 -0
  38. package/.tmp-cem/custom-elements.json +2013 -2013
  39. package/AUDIT.md +228 -0
  40. package/PLAN-AMELIORATION.md +220 -0
  41. package/PLAN-DOCS-AGENTS.md +80 -0
  42. package/README.md +3 -3
  43. package/ai/skills/concorde/SKILL.md +1 -1
  44. package/ai/skills/concorde-get-set-dp/SKILL.md +3 -3
  45. package/ai/skills/concorde-theme/SKILL.md +1 -1
  46. package/build-infos.json +1 -1
  47. package/concorde-core.bundle.js +16 -16
  48. package/concorde-core.es.js +235 -233
  49. package/dist/concorde-core.bundle.js +16 -16
  50. package/dist/concorde-core.es.js +235 -233
  51. package/dist/img/archive/concorde-001-2cv.webp +0 -0
  52. package/dist/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  53. package/dist/img/archive/concorde-red-arrows-2002.webm +0 -0
  54. package/dist/img/archive/credits.json +28 -0
  55. package/docs/.htaccess +75 -0
  56. package/docs/404.html +15 -0
  57. package/docs/404.md +5 -0
  58. package/docs/assets/index-BgG6FFPt.js +11765 -0
  59. package/docs/assets/index-x89XINSG.css +1 -0
  60. package/docs/core/components/functional/date/date.html +211 -0
  61. package/docs/core/components/functional/date/date.md +150 -0
  62. package/docs/core/components/functional/fetch/fetch.html +180 -0
  63. package/docs/core/components/functional/fetch/fetch.md +108 -0
  64. package/docs/core/components/functional/if/if.html +65 -0
  65. package/docs/core/components/functional/if/if.md +34 -0
  66. package/docs/core/components/functional/jsonata/jsonata.html +110 -0
  67. package/docs/core/components/functional/jsonata/jsonata.md +61 -0
  68. package/docs/core/components/functional/list/list.html +198 -0
  69. package/docs/core/components/functional/list/list.md +121 -0
  70. package/docs/core/components/functional/mix/mix.html +78 -0
  71. package/docs/core/components/functional/mix/mix.md +46 -0
  72. package/docs/core/components/functional/queue/queue.html +155 -0
  73. package/docs/core/components/functional/queue/queue.md +51 -0
  74. package/docs/core/components/functional/router/router.html +154 -0
  75. package/docs/core/components/functional/router/router.md +93 -0
  76. package/docs/core/components/functional/sdui/sdui-extension-points.html +127 -0
  77. package/docs/core/components/functional/sdui/sdui-extension-points.md +94 -0
  78. package/docs/core/components/functional/sdui/sdui.html +397 -0
  79. package/docs/core/components/functional/sdui/sdui.md +307 -0
  80. package/docs/core/components/functional/states/states.html +141 -0
  81. package/docs/core/components/functional/states/states.md +112 -0
  82. package/docs/core/components/functional/submit/submit.html +178 -0
  83. package/docs/core/components/functional/submit/submit.md +106 -0
  84. package/docs/{crawl/core → core}/components/functional/subscriber/subscriber.html +6 -5
  85. package/docs/core/components/functional/subscriber/subscriber.md +91 -0
  86. package/docs/core/components/functional/translation/translation.html +60 -0
  87. package/docs/core/components/functional/translation/translation.md +38 -0
  88. package/docs/core/components/functional/value/value.html +81 -0
  89. package/docs/core/components/functional/value/value.md +47 -0
  90. package/docs/core/components/ui/alert/alert.html +201 -0
  91. package/docs/core/components/ui/alert/alert.md +186 -0
  92. package/docs/core/components/ui/alert-messages/alert-messages.html +132 -0
  93. package/docs/core/components/ui/alert-messages/alert-messages.md +85 -0
  94. package/docs/core/components/ui/badge/badge.html +197 -0
  95. package/docs/core/components/ui/badge/badge.md +181 -0
  96. package/docs/core/components/ui/button/button.html +309 -0
  97. package/docs/core/components/ui/button/button.md +216 -0
  98. package/docs/core/components/ui/captcha/captcha.html +80 -0
  99. package/docs/core/components/ui/captcha/captcha.md +56 -0
  100. package/docs/core/components/ui/card/card.html +254 -0
  101. package/docs/core/components/ui/card/card.md +215 -0
  102. package/docs/core/components/ui/divider/divider.html +144 -0
  103. package/docs/core/components/ui/divider/divider.md +126 -0
  104. package/docs/core/components/ui/form/checkbox/checkbox.html +200 -0
  105. package/docs/core/components/ui/form/checkbox/checkbox.md +125 -0
  106. package/docs/core/components/ui/form/fieldset/fieldset.html +238 -0
  107. package/docs/core/components/ui/form/fieldset/fieldset.md +161 -0
  108. package/docs/core/components/ui/form/form-actions/form-actions.html +122 -0
  109. package/docs/core/components/ui/form/form-actions/form-actions.md +98 -0
  110. package/docs/core/components/ui/form/form-layout/form-layout.html +115 -0
  111. package/docs/core/components/ui/form/form-layout/form-layout.md +109 -0
  112. package/docs/core/components/ui/form/input/input.html +235 -0
  113. package/docs/core/components/ui/form/input/input.md +142 -0
  114. package/docs/core/components/ui/form/radio/radio.html +144 -0
  115. package/docs/core/components/ui/form/radio/radio.md +78 -0
  116. package/docs/core/components/ui/form/select/select.html +178 -0
  117. package/docs/core/components/ui/form/select/select.md +86 -0
  118. package/docs/core/components/ui/form/switch/switch.html +146 -0
  119. package/docs/core/components/ui/form/switch/switch.md +80 -0
  120. package/docs/core/components/ui/form/textarea/textarea.html +162 -0
  121. package/docs/core/components/ui/form/textarea/textarea.md +82 -0
  122. package/docs/core/components/ui/group/group.html +113 -0
  123. package/docs/core/components/ui/group/group.md +77 -0
  124. package/docs/core/components/ui/icon/icon.html +223 -0
  125. package/docs/core/components/ui/icon/icon.md +214 -0
  126. package/docs/core/components/ui/image/image.html +194 -0
  127. package/docs/core/components/ui/image/image.md +167 -0
  128. package/docs/core/components/ui/link/link.html +101 -0
  129. package/docs/core/components/ui/link/link.md +81 -0
  130. package/docs/core/components/ui/loader/loader.html +114 -0
  131. package/docs/core/components/ui/loader/loader.md +87 -0
  132. package/docs/{crawl/core → core}/components/ui/menu/menu.html +189 -116
  133. package/docs/core/components/ui/menu/menu.md +370 -0
  134. package/docs/core/components/ui/modal/modal.html +324 -0
  135. package/docs/core/components/ui/modal/modal.md +211 -0
  136. package/docs/core/components/ui/pop/pop.html +250 -0
  137. package/docs/core/components/ui/pop/pop.md +216 -0
  138. package/docs/core/components/ui/progress/progress.html +132 -0
  139. package/docs/core/components/ui/progress/progress.md +109 -0
  140. package/docs/core/components/ui/table/table.html +333 -0
  141. package/docs/core/components/ui/table/table.md +267 -0
  142. package/docs/core/components/ui/theme/theme.html +116 -0
  143. package/docs/core/components/ui/theme/theme.md +97 -0
  144. package/docs/core/components/ui/toast/toast.html +185 -0
  145. package/docs/core/components/ui/toast/toast.md +147 -0
  146. package/docs/core/components/ui/tooltip/tooltip.html +112 -0
  147. package/docs/core/components/ui/tooltip/tooltip.md +89 -0
  148. package/docs/docs/decorators/ancestor-attribute.html +71 -0
  149. package/docs/docs/decorators/ancestor-attribute.md +59 -0
  150. package/docs/docs/decorators/auto-subscribe.html +61 -0
  151. package/docs/docs/decorators/auto-subscribe.md +40 -0
  152. package/docs/docs/decorators/bind.html +86 -0
  153. package/docs/docs/decorators/bind.md +77 -0
  154. package/docs/docs/decorators/get.html +166 -0
  155. package/docs/docs/decorators/get.md +160 -0
  156. package/docs/docs/decorators/handle.html +139 -0
  157. package/docs/docs/decorators/handle.md +119 -0
  158. package/docs/docs/decorators/on-assign.html +72 -0
  159. package/docs/docs/decorators/on-assign.md +63 -0
  160. package/docs/docs/decorators/patch.html +76 -0
  161. package/docs/docs/decorators/patch.md +44 -0
  162. package/docs/docs/decorators/post.html +150 -0
  163. package/docs/docs/decorators/post.md +134 -0
  164. package/docs/docs/decorators/publish.html +74 -0
  165. package/docs/docs/decorators/publish.md +56 -0
  166. package/docs/docs/decorators/put.html +83 -0
  167. package/docs/docs/decorators/put.md +51 -0
  168. package/docs/docs/decorators/subscribe.html +91 -0
  169. package/docs/docs/decorators/subscribe.md +87 -0
  170. package/docs/docs/decorators/wait-for-ancestors.html +82 -0
  171. package/docs/docs/decorators/wait-for-ancestors.md +76 -0
  172. package/docs/docs/directives/sub.html +79 -0
  173. package/docs/docs/directives/sub.md +75 -0
  174. package/docs/docs/directives/t.html +91 -0
  175. package/docs/docs/directives/t.md +73 -0
  176. package/docs/{crawl/docs/_getting-started → docs/getting-started}/ai-agents.html +12 -11
  177. package/{src/docs/_getting-started → docs/docs/getting-started}/ai-agents.md +3 -3
  178. package/docs/docs/getting-started/components.html +27 -0
  179. package/docs/docs/getting-started/components.md +5 -0
  180. package/docs/{crawl/docs/_getting-started → docs/getting-started}/create-a-component.html +11 -14
  181. package/docs/{src/docs/_getting-started → docs/getting-started}/create-a-component.md +3 -6
  182. package/docs/{crawl/docs/_core-concept → docs/getting-started}/dataFlow.html +26 -29
  183. package/docs/{src/docs/_core-concept → docs/getting-started}/dataFlow.md +17 -18
  184. package/docs/docs/getting-started/installation.html +69 -0
  185. package/docs/docs/getting-started/installation.md +36 -0
  186. package/docs/{crawl/docs/_getting-started → docs/getting-started}/my-first-component.html +13 -22
  187. package/docs/{src/docs/_getting-started → docs/getting-started}/my-first-component.md +5 -14
  188. package/docs/docs/getting-started/start.html +47 -0
  189. package/{src/docs/_getting-started → docs/docs/getting-started}/start.md +1 -13
  190. package/docs/docs/getting-started/theming.html +334 -0
  191. package/{src/docs/_getting-started → docs/docs/getting-started}/theming.md +2 -2
  192. package/docs/docs/index.html +99 -0
  193. package/docs/{crawl/docs/_misc → docs/misc}/api-configuration.html +18 -18
  194. package/docs/{src/docs/_misc → docs/misc}/api-configuration.md +10 -12
  195. package/docs/{crawl/docs/_misc → docs/misc}/dataProviderKey.html +12 -11
  196. package/{src/docs/_misc → docs/docs/misc}/dataProviderKey.md +4 -4
  197. package/docs/{crawl/docs/_misc → docs/misc}/docs-mock-api.html +25 -28
  198. package/docs/{src/docs/_misc → docs/misc}/docs-mock-api.md +12 -13
  199. package/docs/{crawl/docs/_misc → docs/misc}/dynamic-path.html +16 -15
  200. package/{src/docs/_misc → docs/docs/misc}/dynamic-path.md +8 -8
  201. package/docs/{crawl/docs/_misc → docs/misc}/endpoint.html +16 -15
  202. package/{src/docs/_misc → docs/docs/misc}/endpoint.md +8 -8
  203. package/docs/{crawl/docs/_misc → docs/misc}/html-integration.html +12 -15
  204. package/docs/{src/docs/_misc → docs/misc}/html-integration.md +4 -5
  205. package/docs/docs-mock-api-sw.js +60 -223
  206. package/docs/docs-mock-api-sw.js.map +4 -4
  207. package/docs/hubs/decorators.html +443 -0
  208. package/docs/hubs/form-components.html +404 -0
  209. package/docs/hubs/remote-data.html +371 -0
  210. package/docs/img/archive/concorde-001-2cv.webp +0 -0
  211. package/docs/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  212. package/docs/img/archive/concorde-red-arrows-2002.webm +0 -0
  213. package/docs/img/archive/credits.json +28 -0
  214. package/docs/img/concorde/plane_01.jpg +0 -0
  215. package/docs/img/concorde/plane_02.jpg +0 -0
  216. package/docs/img/concorde/plane_03.jpg +0 -0
  217. package/docs/img/concorde/plane_04.jpg +0 -0
  218. package/docs/img/concorde/plane_05.jpg +0 -0
  219. package/docs/img/concorde/plane_06.jpg +0 -0
  220. package/docs/img/concorde/plane_07.jpg +0 -0
  221. package/docs/img/concorde/plane_08.jpg +0 -0
  222. package/docs/img/concorde/plane_09.jpg +0 -0
  223. package/docs/img/concorde/plane_10.jpg +0 -0
  224. package/docs/img/concorde/plane_11.jpg +0 -0
  225. package/docs/img/concorde/plane_12.jpg +0 -0
  226. package/docs/img/concorde/plane_13.jpg +0 -0
  227. package/docs/index.html +96 -67
  228. package/docs/index.md +22 -0
  229. package/docs/llms-full.txt +3329 -3295
  230. package/docs/llms.txt +94 -92
  231. package/docs/robots.txt +11 -10
  232. package/docs/sitemap.xml +78 -78
  233. package/docs/src/core/components/functional/date/date.md +91 -231
  234. package/docs/src/core/components/functional/fetch/fetch.md +66 -83
  235. package/docs/src/core/components/functional/if/if.md +28 -3
  236. package/docs/src/core/components/functional/jsonata/jsonata.md +42 -37
  237. package/docs/src/core/components/functional/list/list.md +99 -43
  238. package/docs/src/core/components/functional/mix/mix.md +31 -26
  239. package/docs/src/core/components/functional/queue/queue.md +40 -61
  240. package/docs/src/core/components/functional/router/router.md +64 -65
  241. package/docs/src/core/components/functional/sdui/component-catalog.gaps.json +511 -0
  242. package/docs/src/core/components/functional/sdui/component-catalog.json +3103 -0
  243. package/docs/src/core/components/functional/sdui/example.json +19 -86
  244. package/docs/src/core/components/functional/sdui/sdui-extension-points.md +94 -0
  245. package/docs/src/core/components/functional/sdui/sdui.md +196 -245
  246. package/docs/src/core/components/functional/states/states.md +86 -61
  247. package/docs/src/core/components/functional/submit/submit.md +64 -72
  248. package/docs/src/core/components/functional/translation/translation.md +38 -0
  249. package/docs/src/core/components/functional/value/value.md +34 -22
  250. package/docs/src/core/components/ui/alert/alert.md +139 -74
  251. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  252. package/docs/src/core/components/ui/badge/badge.md +137 -83
  253. package/docs/src/core/components/ui/button/button.md +139 -105
  254. package/docs/src/core/components/ui/captcha/captcha.md +50 -6
  255. package/docs/src/core/components/ui/card/card.md +183 -65
  256. package/docs/src/core/components/ui/divider/divider.md +104 -13
  257. package/docs/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  258. package/docs/src/core/components/ui/form/fieldset/fieldset.md +135 -103
  259. package/docs/src/core/components/ui/form/form-actions/form-actions.md +71 -50
  260. package/docs/src/core/components/ui/form/form-layout/form-layout.md +99 -34
  261. package/docs/src/core/components/ui/form/input/input.md +95 -95
  262. package/docs/src/core/components/ui/form/radio/radio.md +55 -34
  263. package/docs/src/core/components/ui/form/select/select.md +60 -45
  264. package/docs/src/core/components/ui/form/switch/switch.md +57 -34
  265. package/docs/src/core/components/ui/form/textarea/textarea.md +55 -38
  266. package/docs/src/core/components/ui/group/group.md +49 -47
  267. package/docs/src/core/components/ui/icon/icon.md +132 -43
  268. package/docs/src/core/components/ui/image/image.md +132 -72
  269. package/docs/src/core/components/ui/link/link.md +46 -8
  270. package/docs/src/core/components/ui/loader/loader.md +55 -23
  271. package/docs/src/core/components/ui/menu/menu.md +155 -114
  272. package/docs/src/core/components/ui/modal/modal.md +154 -62
  273. package/docs/src/core/components/ui/pop/pop.md +185 -65
  274. package/docs/src/core/components/ui/progress/progress.md +76 -30
  275. package/docs/src/core/components/ui/table/table.md +146 -334
  276. package/docs/src/core/components/ui/theme/theme.md +97 -0
  277. package/docs/src/core/components/ui/toast/toast.md +80 -99
  278. package/docs/src/core/components/ui/tooltip/tooltip.md +52 -45
  279. package/docs/src/docs/decorators/ancestor-attribute.md +59 -0
  280. package/docs/src/docs/decorators/auto-subscribe.md +40 -0
  281. package/docs/src/docs/decorators/bind.md +77 -0
  282. package/docs/src/docs/decorators/get.md +160 -0
  283. package/docs/src/docs/decorators/handle.md +119 -0
  284. package/docs/src/docs/decorators/on-assign.md +63 -0
  285. package/docs/src/docs/decorators/patch.md +44 -0
  286. package/docs/src/docs/decorators/post.md +134 -0
  287. package/docs/src/docs/decorators/publish.md +56 -0
  288. package/docs/src/docs/decorators/put.md +51 -0
  289. package/docs/src/docs/decorators/subscribe.md +87 -0
  290. package/docs/src/docs/decorators/wait-for-ancestors.md +76 -0
  291. package/docs/src/docs/directives/sub.md +75 -0
  292. package/docs/src/docs/directives/t.md +73 -0
  293. package/docs/src/docs/{_getting-started → getting-started}/ai-agents.md +3 -3
  294. package/docs/src/docs/getting-started/components.md +5 -0
  295. package/{src/docs/_getting-started → docs/src/docs/getting-started}/create-a-component.md +3 -6
  296. package/{src/docs/_core-concept → docs/src/docs/getting-started}/dataFlow.md +17 -18
  297. package/docs/src/docs/getting-started/installation.md +36 -0
  298. package/{src/docs/_getting-started → docs/src/docs/getting-started}/my-first-component.md +5 -14
  299. package/docs/src/docs/getting-started/start.md +35 -0
  300. package/docs/src/docs/getting-started/theming.md +253 -0
  301. package/{src/docs/_misc → docs/src/docs/misc}/api-configuration.md +10 -12
  302. package/docs/src/docs/{_misc → misc}/dataProviderKey.md +4 -4
  303. package/{src/docs/_misc → docs/src/docs/misc}/docs-mock-api.md +12 -13
  304. package/docs/src/docs/{_misc → misc}/dynamic-path.md +8 -8
  305. package/docs/src/docs/{_misc → misc}/endpoint.md +8 -8
  306. package/{src/docs/_misc → docs/src/docs/misc}/html-integration.md +4 -5
  307. package/docs/src/docs/search/docs-search.json +3729 -2949
  308. package/docs/src/tsconfig.json +176 -5
  309. package/index.html +94 -67
  310. package/package.json +11 -4
  311. package/public/docs-mock-api-sw.js +58 -223
  312. package/public/docs-mock-api-sw.js.map +4 -4
  313. package/public/img/archive/concorde-001-2cv.webp +0 -0
  314. package/public/img/archive/concorde-red-arrows-2002-poster.jpg +0 -0
  315. package/public/img/archive/concorde-red-arrows-2002.webm +0 -0
  316. package/public/img/archive/credits.json +28 -0
  317. package/public/img/concorde/plane_01.jpg +0 -0
  318. package/public/img/concorde/plane_02.jpg +0 -0
  319. package/public/img/concorde/plane_03.jpg +0 -0
  320. package/public/img/concorde/plane_04.jpg +0 -0
  321. package/public/img/concorde/plane_05.jpg +0 -0
  322. package/public/img/concorde/plane_06.jpg +0 -0
  323. package/public/img/concorde/plane_07.jpg +0 -0
  324. package/public/img/concorde/plane_08.jpg +0 -0
  325. package/public/img/concorde/plane_09.jpg +0 -0
  326. package/public/img/concorde/plane_10.jpg +0 -0
  327. package/public/img/concorde/plane_11.jpg +0 -0
  328. package/public/img/concorde/plane_12.jpg +0 -0
  329. package/public/img/concorde/plane_13.jpg +0 -0
  330. package/public/robots.txt +11 -10
  331. package/scripts/docs-markdown-vite-plugin.ts +37 -0
  332. package/scripts/docs-public-url.mjs +50 -0
  333. package/scripts/docs.htaccess +75 -0
  334. package/scripts/generate-crawl-docs.mjs +207 -116
  335. package/scripts/generate-crawl-docs.test.mjs +124 -0
  336. package/scripts/post-build-docs.js +34 -50
  337. package/scripts/post-build.mjs +0 -0
  338. package/src/core/components/functional/date/date.md +91 -231
  339. package/src/core/components/functional/fetch/fetch.md +66 -83
  340. package/src/core/components/functional/if/if.md +28 -3
  341. package/src/core/components/functional/if/if.ts +0 -0
  342. package/src/core/components/functional/jsonata/jsonata.md +42 -37
  343. package/src/core/components/functional/list/list.demo.ts +0 -0
  344. package/src/core/components/functional/list/list.md +99 -43
  345. package/src/core/components/functional/mix/mix.md +31 -26
  346. package/src/core/components/functional/queue/queue.demo.ts +10 -7
  347. package/src/core/components/functional/queue/queue.md +40 -61
  348. package/src/core/components/functional/router/router.demo.ts +16 -16
  349. package/src/core/components/functional/router/router.md +64 -65
  350. package/src/core/components/functional/router/router.ts +0 -0
  351. package/src/core/components/functional/sdui/SDUIDescriptorTransformer.ts +0 -0
  352. package/src/core/components/functional/sdui/component-catalog.gaps.json +1 -1
  353. package/src/core/components/functional/sdui/component-catalog.json +1 -1
  354. package/src/core/components/functional/sdui/example.json +19 -86
  355. package/src/core/components/functional/sdui/sdui-extension-points.md +1 -1
  356. package/src/core/components/functional/sdui/sdui.md +187 -358
  357. package/src/core/components/functional/sdui/types.ts +0 -0
  358. package/src/core/components/functional/states/states.demo.ts +21 -22
  359. package/src/core/components/functional/states/states.md +86 -61
  360. package/src/core/components/functional/states/states.ts +1 -1
  361. package/src/core/components/functional/submit/submit.md +64 -72
  362. package/src/core/components/functional/subscriber/subscriber.ts +0 -0
  363. package/src/core/components/functional/translation/translation.md +38 -0
  364. package/src/core/components/functional/value/value.md +34 -22
  365. package/src/core/components/functional/value/value.ts +0 -0
  366. package/src/core/components/ui/_css/size.ts +0 -0
  367. package/src/core/components/ui/alert/alert.md +48 -58
  368. package/src/core/components/ui/badge/badge.md +27 -34
  369. package/src/core/components/ui/button/button.md +139 -106
  370. package/src/core/components/ui/captcha/altchaStyles.ts +0 -0
  371. package/src/core/components/ui/captcha/captcha.md +17 -32
  372. package/src/core/components/ui/card/card.md +6 -6
  373. package/src/core/components/ui/divider/divider.md +8 -11
  374. package/src/core/components/ui/form/checkbox/checkbox.md +90 -42
  375. package/src/core/components/ui/form/fieldset/fieldset.md +31 -75
  376. package/src/core/components/ui/form/form-actions/form-actions.md +14 -16
  377. package/src/core/components/ui/form/form-layout/form-layout.md +19 -29
  378. package/src/core/components/ui/form/input/input.md +95 -95
  379. package/src/core/components/ui/form/radio/radio.md +55 -34
  380. package/src/core/components/ui/form/select/select.md +60 -45
  381. package/src/core/components/ui/form/switch/switch.md +57 -34
  382. package/src/core/components/ui/form/textarea/textarea.md +55 -38
  383. package/src/core/components/ui/group/group.md +35 -33
  384. package/src/core/components/ui/icon/icon.md +4 -4
  385. package/src/core/components/ui/image/image.md +41 -107
  386. package/src/core/components/ui/link/link.md +6 -6
  387. package/src/core/components/ui/loader/loader.md +30 -55
  388. package/src/core/components/ui/menu/menu.md +27 -27
  389. package/src/core/components/ui/modal/modal.md +72 -96
  390. package/src/core/components/ui/modal/modal.ts +14 -11
  391. package/src/core/components/ui/pop/pop.md +80 -158
  392. package/src/core/components/ui/progress/progress.md +2 -2
  393. package/src/core/components/ui/table/table.md +91 -255
  394. package/src/core/components/ui/theme/theme.md +11 -36
  395. package/src/core/components/ui/toast/toast.md +48 -117
  396. package/src/core/components/ui/tooltip/tooltip.md +27 -62
  397. package/src/core/mixins/Subscriber.ts +0 -0
  398. package/src/core/utils/DataBindObserver.ts +0 -0
  399. package/src/core/utils/LocationHandler.spec.ts +80 -0
  400. package/src/core/utils/LocationHandler.ts +5 -9
  401. package/src/core/utils/Objects.ts +0 -0
  402. package/src/core/utils/route.ts +0 -0
  403. package/src/docs/code.ts +88 -75
  404. package/src/docs/components/docs-demo-sources.ts +70 -147
  405. package/src/docs/components/docs-lit-demo.ts +20 -40
  406. package/src/docs/components/docs-source-link.ts +0 -82
  407. package/src/docs/decorators/ancestor-attribute.md +59 -0
  408. package/src/docs/decorators/auto-subscribe.md +40 -0
  409. package/src/docs/decorators/bind.md +77 -0
  410. package/src/docs/decorators/get.md +160 -0
  411. package/src/docs/decorators/handle.md +119 -0
  412. package/src/docs/decorators/on-assign.md +63 -0
  413. package/src/docs/decorators/patch.md +44 -0
  414. package/src/docs/decorators/post.md +134 -0
  415. package/src/docs/decorators/publish.md +56 -0
  416. package/src/docs/decorators/put.md +51 -0
  417. package/src/docs/decorators/subscribe.md +87 -0
  418. package/src/docs/decorators/wait-for-ancestors.md +76 -0
  419. package/src/docs/directives/sub.md +75 -0
  420. package/src/docs/directives/t.md +73 -0
  421. package/src/docs/docs-location.spec.ts +46 -0
  422. package/src/docs/docs-location.ts +123 -32
  423. package/src/docs/docs.ts +6 -2
  424. package/src/docs/example/decorators-demo-bind-demos.ts +81 -116
  425. package/src/docs/example/decorators-demo-geo.ts +30 -19
  426. package/src/docs/example/decorators-demo-post.ts +88 -186
  427. package/src/docs/example/decorators-demo-subscribe-publish-get-demos.ts +165 -268
  428. package/src/docs/example/decorators-demo.ts +85 -98
  429. package/src/docs/example/docs-api-config-demos.ts +19 -20
  430. package/src/docs/example/docs-boarding-pass-demo.ts +134 -0
  431. package/src/docs/example/docs-flight-demos.ts +147 -0
  432. package/src/docs/example/docs-jsonata-demos.ts +52 -52
  433. package/src/docs/example/docs-list-demos.ts +43 -123
  434. package/src/docs/example/docs-provider-keys.ts +33 -28
  435. package/src/docs/example/docs-queue-demos.ts +37 -77
  436. package/src/docs/example/docs-router-demos.ts +20 -25
  437. package/src/docs/example/docs-submit-demos.ts +48 -48
  438. package/src/docs/example/docs-toggle-demos.ts +4 -3
  439. package/src/docs/example/users.ts +0 -0
  440. package/src/docs/getting-started/ai-agents.md +76 -0
  441. package/src/docs/getting-started/components.md +5 -0
  442. package/src/docs/getting-started/create-a-component.md +136 -0
  443. package/src/docs/getting-started/dataFlow.md +87 -0
  444. package/src/docs/getting-started/installation.md +36 -0
  445. package/src/docs/getting-started/my-first-component.md +227 -0
  446. package/src/docs/getting-started/start.md +35 -0
  447. package/src/docs/getting-started/theming.md +253 -0
  448. package/src/docs/header/header.ts +240 -71
  449. package/src/docs/home/catalog.ts +44 -0
  450. package/src/docs/home/home.ts +520 -0
  451. package/src/docs/home/mach-stage.ts +389 -0
  452. package/src/docs/layout.ts +12 -11
  453. package/src/docs/misc/api-configuration.md +79 -0
  454. package/src/docs/misc/dataProviderKey.md +168 -0
  455. package/src/docs/misc/docs-mock-api.md +62 -0
  456. package/src/docs/misc/dynamic-path.md +71 -0
  457. package/src/docs/misc/endpoint.md +45 -0
  458. package/src/docs/misc/html-integration.md +14 -0
  459. package/src/docs/mock-api/api-config-mock.ts +5 -0
  460. package/src/docs/mock-api/fixtures.ts +0 -278
  461. package/src/docs/mock-api/flights.ts +89 -0
  462. package/src/docs/mock-api/router.ts +3 -4
  463. package/src/docs/mock-api/urls.ts +1 -2
  464. package/src/docs/navigation/components-index.ts +56 -0
  465. package/src/docs/navigation/navigation.ts +219 -232
  466. package/src/docs/navigation/pager.ts +67 -0
  467. package/src/docs/navigation/toc.ts +101 -0
  468. package/src/docs/search/docs-search.json +2419 -4374
  469. package/src/docs/search/markdown-renderer.ts +33 -7
  470. package/src/docs/search/page.ts +9 -6
  471. package/src/docs/search/search.ts +154 -122
  472. package/src/docs/shiki/index.ts +109 -0
  473. package/src/docs/tailwind/css/base/scrollbar.css +22 -0
  474. package/src/docs/tailwind/css/base/theme.css +96 -0
  475. package/src/docs/tailwind/css/base/typography.css +4 -0
  476. package/src/docs/tailwind/css/docs/boarding-pass.css +65 -0
  477. package/src/docs/tailwind/css/docs/content.css +32 -0
  478. package/src/docs/tailwind/css/docs/page.css +10 -0
  479. package/src/docs/tailwind/css/docs.css +9 -0
  480. package/src/docs/tailwind/css/home/hero.css +210 -0
  481. package/src/docs/tailwind/css/home/motion.css +84 -0
  482. package/src/docs/tailwind/css/home/sections.css +416 -0
  483. package/src/docs/tailwind/css/tailwind.css +7 -185
  484. package/src/tsconfig.json +23 -2
  485. package/src/tsconfig.tsbuildinfo +1 -1
  486. package/tailwind.config.js +8 -4
  487. package/vite.config.mts +11 -2
  488. package/.agents/skills/concorde-component-docs/SKILL.md +0 -194
  489. package/.github/workflows/ci.yml +0 -21
  490. package/.github-export-ignore +0 -30
  491. package/CONTRIBUTING.md +0 -59
  492. package/DEV.md +0 -54
  493. package/LICENSE +0 -21
  494. package/OPEN_SOURCE_CHECKPOINT.md +0 -133
  495. package/concorde-3d.bundle.js +0 -3960
  496. package/concorde-3d.es.js +0 -33433
  497. package/concorde-hugging-face-infer.bundle.js +0 -32
  498. package/concorde-hugging-face-infer.es.js +0 -2952
  499. package/concorde-interactive.bundle.js +0 -1157
  500. package/concorde-interactive.es.js +0 -10734
  501. package/concorde-shader.bundle.js +0 -116
  502. package/concorde-shader.es.js +0 -8353
  503. package/concorde-webgpu.bundle.js +0 -307
  504. package/concorde-webgpu.es.js +0 -8627
  505. package/docs/assets/index-D8MVWqY6.js +0 -12251
  506. package/docs/assets/index-DiD0qYvE.css +0 -1
  507. package/docs/crawl/core/components/functional/date/date.html +0 -190
  508. package/docs/crawl/core/components/functional/fetch/fetch.html +0 -109
  509. package/docs/crawl/core/components/functional/if/if.html +0 -27
  510. package/docs/crawl/core/components/functional/jsonata/jsonata.html +0 -79
  511. package/docs/crawl/core/components/functional/list/list.html +0 -70
  512. package/docs/crawl/core/components/functional/mix/mix.html +0 -45
  513. package/docs/crawl/core/components/functional/queue/queue.html +0 -96
  514. package/docs/crawl/core/components/functional/router/router.html +0 -106
  515. package/docs/crawl/core/components/functional/sdui/sdui.html +0 -269
  516. package/docs/crawl/core/components/functional/states/states.html +0 -66
  517. package/docs/crawl/core/components/functional/submit/submit.html +0 -160
  518. package/docs/crawl/core/components/functional/value/value.html +0 -51
  519. package/docs/crawl/core/components/ui/alert/alert.html +0 -110
  520. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +0 -23
  521. package/docs/crawl/core/components/ui/badge/badge.html +0 -119
  522. package/docs/crawl/core/components/ui/button/button.html +0 -149
  523. package/docs/crawl/core/components/ui/captcha/captcha.html +0 -30
  524. package/docs/crawl/core/components/ui/card/card.html +0 -99
  525. package/docs/crawl/core/components/ui/divider/divider.html +0 -58
  526. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +0 -73
  527. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +0 -135
  528. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +0 -79
  529. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +0 -62
  530. package/docs/crawl/core/components/ui/form/input/input.html +0 -109
  531. package/docs/crawl/core/components/ui/form/input-autocomplete/input-autocomplete.html +0 -38
  532. package/docs/crawl/core/components/ui/form/radio/radio.html +0 -56
  533. package/docs/crawl/core/components/ui/form/select/select.html +0 -73
  534. package/docs/crawl/core/components/ui/form/switch/switch.html +0 -56
  535. package/docs/crawl/core/components/ui/form/textarea/textarea.html +0 -59
  536. package/docs/crawl/core/components/ui/group/group.html +0 -82
  537. package/docs/crawl/core/components/ui/icon/icon.html +0 -133
  538. package/docs/crawl/core/components/ui/image/image.html +0 -110
  539. package/docs/crawl/core/components/ui/link/link.html +0 -42
  540. package/docs/crawl/core/components/ui/loader/loader.html +0 -50
  541. package/docs/crawl/core/components/ui/modal/modal.html +0 -117
  542. package/docs/crawl/core/components/ui/pop/pop.html +0 -102
  543. package/docs/crawl/core/components/ui/progress/progress.html +0 -58
  544. package/docs/crawl/core/components/ui/table/table.html +0 -413
  545. package/docs/crawl/core/components/ui/toast/toast.html +0 -122
  546. package/docs/crawl/core/components/ui/tooltip/tooltip.html +0 -79
  547. package/docs/crawl/docs/_core-concept/overview.html +0 -66
  548. package/docs/crawl/docs/_core-concept/subscriber.html +0 -75
  549. package/docs/crawl/docs/_decorators/ancestor-attribute.html +0 -116
  550. package/docs/crawl/docs/_decorators/auto-subscribe.html +0 -202
  551. package/docs/crawl/docs/_decorators/bind.html +0 -141
  552. package/docs/crawl/docs/_decorators/get.html +0 -149
  553. package/docs/crawl/docs/_decorators/handle.html +0 -165
  554. package/docs/crawl/docs/_decorators/on-assign.html +0 -355
  555. package/docs/crawl/docs/_decorators/patch.html +0 -78
  556. package/docs/crawl/docs/_decorators/post.html +0 -139
  557. package/docs/crawl/docs/_decorators/publish.html +0 -61
  558. package/docs/crawl/docs/_decorators/put.html +0 -78
  559. package/docs/crawl/docs/_decorators/subscribe.html +0 -109
  560. package/docs/crawl/docs/_decorators/wait-for-ancestors.html +0 -137
  561. package/docs/crawl/docs/_directives/sub.html +0 -93
  562. package/docs/crawl/docs/_getting-started/concorde-manual-install.html +0 -100
  563. package/docs/crawl/docs/_getting-started/concorde-outside.html +0 -58
  564. package/docs/crawl/docs/_getting-started/my-first-subscriber.html +0 -110
  565. package/docs/crawl/docs/_getting-started/pubsub.html +0 -62
  566. package/docs/crawl/docs/_getting-started/start.html +0 -76
  567. package/docs/crawl/docs/_getting-started/theming.html +0 -85
  568. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +0 -138
  569. package/docs/crawl/hubs/decorators.html +0 -547
  570. package/docs/crawl/hubs/form-components.html +0 -359
  571. package/docs/crawl/hubs/remote-data.html +0 -452
  572. package/docs/crawl/index.html +0 -101
  573. package/docs/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
  574. package/docs/src/docs/_core-concept/overview.md +0 -57
  575. package/docs/src/docs/_core-concept/subscriber.md +0 -75
  576. package/docs/src/docs/_decorators/ancestor-attribute.md +0 -127
  577. package/docs/src/docs/_decorators/auto-subscribe.md +0 -202
  578. package/docs/src/docs/_decorators/bind.md +0 -167
  579. package/docs/src/docs/_decorators/get.md +0 -162
  580. package/docs/src/docs/_decorators/handle.md +0 -175
  581. package/docs/src/docs/_decorators/on-assign.md +0 -390
  582. package/docs/src/docs/_decorators/patch.md +0 -70
  583. package/docs/src/docs/_decorators/post.md +0 -146
  584. package/docs/src/docs/_decorators/publish.md +0 -55
  585. package/docs/src/docs/_decorators/put.md +0 -70
  586. package/docs/src/docs/_decorators/subscribe.md +0 -100
  587. package/docs/src/docs/_decorators/wait-for-ancestors.md +0 -163
  588. package/docs/src/docs/_directives/sub.md +0 -91
  589. package/docs/src/docs/_getting-started/concorde-manual-install.md +0 -133
  590. package/docs/src/docs/_getting-started/concorde-outside.md +0 -33
  591. package/docs/src/docs/_getting-started/my-first-subscriber.md +0 -120
  592. package/docs/src/docs/_getting-started/pubsub.md +0 -37
  593. package/docs/src/docs/_getting-started/start.md +0 -47
  594. package/docs/src/docs/_getting-started/theming.md +0 -91
  595. package/docs/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  596. package/docs/src/tsconfig.declarations.json +0 -22
  597. package/docs/src/tsconfig.emit.json +0 -23
  598. package/gitlab/job_github_mirror.sh +0 -39
  599. package/scripts/github-export.mjs +0 -150
  600. package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -29
  601. package/src/css.d.ts +0 -19
  602. package/src/docs/_core-concept/overview.md +0 -57
  603. package/src/docs/_core-concept/subscriber.md +0 -75
  604. package/src/docs/_decorators/ancestor-attribute.md +0 -128
  605. package/src/docs/_decorators/auto-subscribe.md +0 -202
  606. package/src/docs/_decorators/bind.md +0 -167
  607. package/src/docs/_decorators/get.md +0 -162
  608. package/src/docs/_decorators/handle.md +0 -175
  609. package/src/docs/_decorators/on-assign.md +0 -390
  610. package/src/docs/_decorators/patch.md +0 -70
  611. package/src/docs/_decorators/post.md +0 -146
  612. package/src/docs/_decorators/publish.md +0 -55
  613. package/src/docs/_decorators/put.md +0 -70
  614. package/src/docs/_decorators/subscribe.md +0 -100
  615. package/src/docs/_decorators/wait-for-ancestors.md +0 -163
  616. package/src/docs/_directives/sub.md +0 -91
  617. package/src/docs/_getting-started/concorde-manual-install.md +0 -133
  618. package/src/docs/_getting-started/concorde-outside.md +0 -33
  619. package/src/docs/_getting-started/my-first-subscriber.md +0 -120
  620. package/src/docs/_getting-started/pubsub.md +0 -37
  621. package/src/docs/_misc/formelement-subscriber-removal.md +0 -115
  622. package/src/docs/example/docs-input-autocomplete-demos.ts +0 -110
  623. package/src/docs/example/docs-joke-demos.ts +0 -297
  624. package/src/docs/prism/index.ts +0 -6
  625. package/src/docs/prism/prism.css +0 -158
  626. package/src/docs/prism/prism.js +0 -1022
  627. package/src/tsconfig.declarations.json +0 -22
  628. package/src/tsconfig.emit.json +0 -23
@@ -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.