defuss-shadcn 0.7.14 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (721) hide show
  1. package/AGENTS.md +140 -7
  2. package/ARCH.md +32 -13
  3. package/README.md +24 -11
  4. package/bun.lock +3 -0
  5. package/dist/SKILL.md +676 -0
  6. package/dist/SKILL_tpl.md +66 -0
  7. package/dist/architecture_tpl.html +154 -0
  8. package/dist/components/accordion/component-skill.md +8 -0
  9. package/dist/components/alert/component-skill.md +8 -0
  10. package/dist/components/alert-dialog/component-skill.md +8 -0
  11. package/dist/components/avatar/avatar.css +5 -1
  12. package/dist/components/avatar/component-skill.md +8 -0
  13. package/dist/components/badge/component-skill.md +8 -0
  14. package/dist/components/blog/blog.css +122 -0
  15. package/dist/components/blog/component-skill.md +85 -0
  16. package/dist/components/brand-logos/brand-logos.css +74 -0
  17. package/dist/components/brand-logos/component-skill.md +58 -0
  18. package/dist/components/breadcrumb/breadcrumb.css +3 -0
  19. package/dist/components/breadcrumb/component-skill.md +8 -0
  20. package/dist/components/button/component-skill.md +8 -0
  21. package/dist/components/button-group/component-skill.md +8 -0
  22. package/dist/components/calendar/component-skill.md +8 -0
  23. package/dist/components/card/card.css +6 -0
  24. package/dist/components/card/component-skill.md +8 -0
  25. package/dist/components/carousel/component-skill.md +8 -0
  26. package/dist/components/checkbox/checkbox.css +9 -0
  27. package/dist/components/checkbox/component-skill.md +8 -0
  28. package/dist/components/collapsible/component-skill.md +8 -0
  29. package/dist/components/color-picker/component-skill.md +8 -0
  30. package/dist/components/combobox/combobox.css +16 -3
  31. package/dist/components/combobox/component-skill.md +8 -0
  32. package/dist/components/command/command.js +4 -2
  33. package/dist/components/command/component-skill.md +8 -0
  34. package/dist/components/context-menu/component-skill.md +8 -0
  35. package/dist/components/context-menu/context-menu.js +49 -8
  36. package/dist/components/date-picker/component-skill.md +8 -0
  37. package/dist/components/dialog/component-skill.md +8 -0
  38. package/dist/components/dialog/dialog.js +4 -1
  39. package/dist/components/dropdown/component-skill.md +8 -0
  40. package/dist/components/dropdown/dropdown.css +16 -8
  41. package/dist/components/faq/component-skill.md +67 -0
  42. package/dist/components/faq/faq.css +88 -0
  43. package/dist/components/feature-details/component-skill.md +83 -0
  44. package/dist/components/feature-details/feature-details.css +130 -0
  45. package/dist/components/file-input/component-skill.md +8 -0
  46. package/dist/components/form/component-skill.md +8 -0
  47. package/dist/components/get-in-touch/component-skill.md +63 -0
  48. package/dist/components/get-in-touch/get-in-touch.css +74 -0
  49. package/dist/components/hero/component-skill.md +55 -0
  50. package/dist/components/hero/hero.css +63 -0
  51. package/dist/components/icon/component-skill.md +8 -0
  52. package/dist/components/image/component-skill.md +8 -0
  53. package/dist/components/input/component-skill.md +8 -0
  54. package/dist/components/label/component-skill.md +8 -0
  55. package/dist/components/navigation-menu/component-skill.md +8 -0
  56. package/dist/components/navigation-menu/navigation-menu.js +22 -20
  57. package/dist/components/newsletter/component-skill.md +62 -0
  58. package/dist/components/newsletter/newsletter.css +65 -0
  59. package/dist/components/number-input/component-skill.md +8 -0
  60. package/dist/components/pagination/component-skill.md +8 -0
  61. package/dist/components/popover/component-skill.md +8 -0
  62. package/dist/components/popover/popover.js +6 -1
  63. package/dist/components/pricing/component-skill.md +107 -0
  64. package/dist/components/pricing/pricing.css +171 -0
  65. package/dist/components/product-showcase/component-skill.md +89 -0
  66. package/dist/components/product-showcase/product-showcase.css +79 -0
  67. package/dist/components/product-showcase/product-showcase.js +127 -0
  68. package/dist/components/progress/component-skill.md +8 -0
  69. package/dist/components/radio/component-skill.md +8 -0
  70. package/dist/components/scroll-area/component-skill.md +8 -0
  71. package/dist/components/select/component-skill.md +8 -0
  72. package/dist/components/separator/component-skill.md +8 -0
  73. package/dist/components/sheet/component-skill.md +9 -1
  74. package/dist/components/sheet/sheet.css +11 -0
  75. package/dist/components/sidebar/component-skill.md +9 -1
  76. package/dist/components/sidebar/sidebar.css +17 -1
  77. package/dist/components/site-footer/component-skill.md +80 -0
  78. package/dist/components/site-footer/site-footer.css +104 -0
  79. package/dist/components/site-header/component-skill.md +96 -0
  80. package/dist/components/site-header/site-header.css +73 -0
  81. package/dist/components/skeleton/component-skill.md +8 -0
  82. package/dist/components/slider/component-skill.md +8 -0
  83. package/dist/components/sortable/component-skill.md +8 -0
  84. package/dist/components/spinner/component-skill.md +8 -0
  85. package/dist/components/statistic/component-skill.md +8 -0
  86. package/dist/components/stats/component-skill.md +68 -0
  87. package/dist/components/stats/stats.css +88 -0
  88. package/dist/components/steps/component-skill.md +8 -0
  89. package/dist/components/switch/component-skill.md +8 -0
  90. package/dist/components/table/component-skill.md +8 -0
  91. package/dist/components/tabs/component-skill.md +8 -0
  92. package/dist/components/testimonials/component-skill.md +79 -0
  93. package/dist/components/testimonials/testimonials.css +129 -0
  94. package/dist/components/textarea/component-skill.md +8 -0
  95. package/dist/components/timeline/component-skill.md +8 -0
  96. package/dist/components/toast/component-skill.md +11 -0
  97. package/dist/components/toast/toast.css +21 -0
  98. package/dist/components/toast/toast.js +14 -1
  99. package/dist/components/toggle/component-skill.md +8 -0
  100. package/dist/components/toggle-group/component-skill.md +8 -0
  101. package/dist/components/toolbar/component-skill.md +8 -0
  102. package/dist/components/tooltip/component-skill.md +9 -1
  103. package/dist/components/tooltip/tooltip.css +4 -0
  104. package/dist/components/tree-view/component-skill.md +8 -0
  105. package/dist/components/typography/component-skill.md +8 -0
  106. package/dist/documentation/accessibility.html +17 -2
  107. package/dist/documentation/accordion.html +17 -2
  108. package/dist/documentation/alert-dialog.html +17 -2
  109. package/dist/documentation/alert.html +17 -2
  110. package/dist/documentation/animations.html +17 -2
  111. package/dist/documentation/architecture.html +216 -0
  112. package/dist/documentation/avatar.html +23 -4
  113. package/dist/documentation/badge.html +17 -2
  114. package/dist/documentation/blog.html +517 -0
  115. package/dist/documentation/brand-logos.html +355 -0
  116. package/dist/documentation/breadcrumb.html +20 -2
  117. package/dist/documentation/button-group.html +17 -2
  118. package/dist/documentation/button.html +17 -2
  119. package/dist/documentation/calendar.html +17 -2
  120. package/dist/documentation/card.html +23 -2
  121. package/dist/documentation/carousel.html +17 -2
  122. package/dist/documentation/cascade-layers.html +17 -2
  123. package/dist/documentation/changelog.html +167 -3
  124. package/dist/documentation/checkbox.html +26 -2
  125. package/dist/documentation/collapsible.html +20 -5
  126. package/dist/documentation/color-picker.html +17 -2
  127. package/dist/documentation/combobox.html +33 -5
  128. package/dist/documentation/command.html +21 -4
  129. package/dist/documentation/component-skills.html +43 -6
  130. package/dist/documentation/context-menu.html +67 -10
  131. package/dist/documentation/css/docs-utilities.css +1 -0
  132. package/dist/documentation/css/layout.css +98 -15
  133. package/dist/documentation/dark-mode.html +17 -2
  134. package/dist/documentation/data-attribute-api.html +17 -2
  135. package/dist/documentation/date-picker.html +17 -2
  136. package/dist/documentation/dialog.html +21 -3
  137. package/dist/documentation/dropdown.html +33 -10
  138. package/dist/documentation/es-modules.html +21 -4
  139. package/dist/documentation/faq.html +429 -0
  140. package/dist/documentation/feature-details.html +514 -0
  141. package/dist/documentation/file-input.html +17 -2
  142. package/dist/documentation/form.html +17 -2
  143. package/dist/documentation/get-in-touch.html +358 -0
  144. package/{docs/documentation/scroll-area.html → dist/documentation/hero.html} +178 -87
  145. package/dist/documentation/icon.html +17 -2
  146. package/dist/documentation/image.html +372 -4
  147. package/dist/documentation/images/favicon.webp +0 -0
  148. package/dist/documentation/images/mk-portrait.png +0 -0
  149. package/dist/documentation/images/mk-portrait2.png +0 -0
  150. package/dist/documentation/images/mk-square.png +0 -0
  151. package/dist/documentation/images/mk-wide.png +0 -0
  152. package/dist/documentation/images/mk-wide2.png +0 -0
  153. package/dist/documentation/images/mk-wide3.png +0 -0
  154. package/dist/documentation/index.html +46 -8
  155. package/dist/documentation/input.html +17 -2
  156. package/dist/documentation/installation.html +17 -2
  157. package/dist/documentation/js/layout.js +240 -63
  158. package/dist/documentation/js/search-index.js +8 -0
  159. package/dist/documentation/js/themes.js +144 -57
  160. package/dist/documentation/label.html +17 -2
  161. package/dist/documentation/native-web-apis.html +17 -2
  162. package/dist/documentation/navigation-menu.html +26 -9
  163. package/dist/documentation/newsletter.html +368 -0
  164. package/dist/documentation/number-input.html +17 -2
  165. package/dist/documentation/pagination.html +17 -2
  166. package/dist/documentation/popover.html +23 -3
  167. package/dist/documentation/pricing.html +658 -0
  168. package/dist/documentation/product-showcase.html +500 -0
  169. package/dist/documentation/progress.html +17 -2
  170. package/dist/documentation/radio.html +17 -2
  171. package/dist/documentation/scroll-area.html +17 -2
  172. package/dist/documentation/select.html +17 -2
  173. package/dist/documentation/separator.html +17 -2
  174. package/dist/documentation/sheet.html +40 -14
  175. package/dist/documentation/sidebar.html +100 -4
  176. package/dist/documentation/site-footer.html +503 -0
  177. package/dist/documentation/site-header.html +479 -0
  178. package/dist/documentation/skeleton.html +17 -2
  179. package/dist/documentation/slider.html +17 -2
  180. package/dist/documentation/sortable.html +17 -2
  181. package/dist/documentation/spinner.html +17 -2
  182. package/dist/documentation/statistic.html +17 -2
  183. package/dist/documentation/stats.html +433 -0
  184. package/dist/documentation/steps.html +17 -2
  185. package/dist/documentation/switch.html +17 -2
  186. package/dist/documentation/table.html +20 -5
  187. package/dist/documentation/tabs.html +17 -2
  188. package/dist/documentation/testimonials.html +497 -0
  189. package/dist/documentation/textarea.html +17 -2
  190. package/dist/documentation/theming.html +17 -2
  191. package/dist/documentation/timeline.html +17 -2
  192. package/dist/documentation/toast.html +53 -3
  193. package/dist/documentation/toggle-group.html +17 -2
  194. package/dist/documentation/toggle.html +17 -2
  195. package/dist/documentation/toolbar.html +17 -2
  196. package/dist/documentation/tooltip.html +21 -2
  197. package/dist/documentation/tree-view.html +17 -2
  198. package/dist/documentation/typography.html +17 -2
  199. package/dist/documentation/videos/demo.mp4 +0 -0
  200. package/dist/documentation/videos/demo.webm +0 -0
  201. package/dist/sitemap.xml +1 -0
  202. package/dist/theme/default-semantic-tokens.css +3 -1
  203. package/docs/{documentation/accessibility.html → accessibility.html} +100 -85
  204. package/docs/{documentation/accordion.html → accordion.html} +105 -90
  205. package/docs/{documentation/alert-dialog.html → alert-dialog.html} +103 -88
  206. package/docs/{documentation/alert.html → alert.html} +102 -87
  207. package/docs/{documentation/animations.html → animations.html} +100 -85
  208. package/docs/architecture.html +216 -0
  209. package/docs/{documentation/avatar.html → avatar.html} +109 -90
  210. package/docs/{documentation/badge.html → badge.html} +102 -87
  211. package/docs/blog.html +517 -0
  212. package/docs/brand-logos.html +355 -0
  213. package/docs/{documentation/breadcrumb.html → breadcrumb.html} +105 -87
  214. package/docs/{documentation/button-group.html → button-group.html} +102 -87
  215. package/docs/{documentation/button.html → button.html} +102 -87
  216. package/docs/{documentation/calendar.html → calendar.html} +103 -88
  217. package/docs/{documentation/card.html → card.html} +108 -87
  218. package/docs/{documentation/carousel.html → carousel.html} +103 -88
  219. package/docs/{documentation/cascade-layers.html → cascade-layers.html} +100 -85
  220. package/docs/changelog.html +549 -0
  221. package/docs/{documentation/checkbox.html → checkbox.html} +111 -87
  222. package/docs/{documentation/collapsible.html → collapsible.html} +105 -90
  223. package/docs/{documentation/color-picker.html → color-picker.html} +103 -88
  224. package/docs/{documentation/combobox.html → combobox.html} +119 -91
  225. package/docs/{documentation/command.html → command.html} +107 -90
  226. package/docs/component-skills.html +331 -0
  227. package/docs/{documentation/context-menu.html → context-menu.html} +153 -96
  228. package/docs/{documentation/css → css}/docs-utilities.css +1 -0
  229. package/docs/{documentation/css → css}/layout.css +98 -15
  230. package/docs/{documentation/dark-mode.html → dark-mode.html} +100 -85
  231. package/docs/{documentation/data-attribute-api.html → data-attribute-api.html} +100 -85
  232. package/docs/date-picker.html +333 -0
  233. package/docs/{documentation/dialog.html → dialog.html} +109 -91
  234. package/docs/{documentation/dropdown.html → dropdown.html} +119 -96
  235. package/docs/{documentation/es-modules.html → es-modules.html} +104 -87
  236. package/docs/faq.html +429 -0
  237. package/docs/feature-details.html +514 -0
  238. package/docs/file-input.html +334 -0
  239. package/docs/{documentation/form.html → form.html} +102 -87
  240. package/docs/get-in-touch.html +358 -0
  241. package/docs/hero.html +339 -0
  242. package/docs/{documentation/icon.html → icon.html} +102 -87
  243. package/docs/{documentation/image.html → image.html} +458 -90
  244. package/docs/images/favicon.webp +0 -0
  245. package/docs/images/mk-portrait.png +0 -0
  246. package/docs/images/mk-portrait2.png +0 -0
  247. package/docs/images/mk-square.png +0 -0
  248. package/docs/images/mk-wide.png +0 -0
  249. package/docs/images/mk-wide2.png +0 -0
  250. package/docs/images/mk-wide3.png +0 -0
  251. package/docs/index.html +341 -0
  252. package/docs/{documentation/input.html → input.html} +102 -87
  253. package/docs/installation.html +245 -0
  254. package/docs/{documentation/js → js}/layout.js +240 -63
  255. package/docs/js/search-index.js +8 -0
  256. package/docs/{documentation/js → js}/themes.js +144 -57
  257. package/docs/{documentation/label.html → label.html} +102 -87
  258. package/docs/{documentation/native-web-apis.html → native-web-apis.html} +100 -85
  259. package/docs/{documentation/navigation-menu.html → navigation-menu.html} +112 -95
  260. package/docs/newsletter.html +368 -0
  261. package/docs/{documentation/number-input.html → number-input.html} +103 -88
  262. package/docs/{documentation/pagination.html → pagination.html} +102 -87
  263. package/docs/{documentation/popover.html → popover.html} +109 -89
  264. package/docs/pricing.html +658 -0
  265. package/docs/product-showcase.html +500 -0
  266. package/docs/{documentation/progress.html → progress.html} +102 -87
  267. package/docs/{documentation/radio.html → radio.html} +102 -87
  268. package/docs/scroll-area.html +263 -0
  269. package/docs/{documentation/select.html → select.html} +102 -87
  270. package/docs/{documentation/separator.html → separator.html} +102 -87
  271. package/docs/{documentation/sheet.html → sheet.html} +126 -100
  272. package/docs/{documentation/sidebar.html → sidebar.html} +186 -90
  273. package/docs/site-footer.html +503 -0
  274. package/docs/site-header.html +479 -0
  275. package/docs/sitemap.xml +70 -69
  276. package/docs/skeleton.html +322 -0
  277. package/docs/{documentation/slider.html → slider.html} +103 -88
  278. package/docs/{documentation/sortable.html → sortable.html} +103 -88
  279. package/docs/{documentation/spinner.html → spinner.html} +102 -87
  280. package/docs/{documentation/statistic.html → statistic.html} +102 -87
  281. package/docs/stats.html +433 -0
  282. package/docs/{documentation/steps.html → steps.html} +102 -87
  283. package/docs/{documentation/switch.html → switch.html} +102 -87
  284. package/docs/{documentation/table.html → table.html} +105 -90
  285. package/docs/{documentation/tabs.html → tabs.html} +103 -88
  286. package/docs/testimonials.html +497 -0
  287. package/docs/textarea.html +358 -0
  288. package/docs/{documentation/theming.html → theming.html} +100 -85
  289. package/docs/{documentation/timeline.html → timeline.html} +102 -87
  290. package/docs/{documentation/toast.html → toast.html} +139 -89
  291. package/docs/{documentation/toggle-group.html → toggle-group.html} +103 -88
  292. package/docs/{documentation/toggle.html → toggle.html} +103 -88
  293. package/docs/{documentation/toolbar.html → toolbar.html} +103 -88
  294. package/docs/{documentation/tooltip.html → tooltip.html} +107 -88
  295. package/docs/{documentation/tree-view.html → tree-view.html} +103 -88
  296. package/docs/{documentation/typography.html → typography.html} +102 -87
  297. package/docs/videos/demo.mp4 +0 -0
  298. package/docs/videos/demo.webm +0 -0
  299. package/package.json +2 -1
  300. package/scripts/build.ts +20 -0
  301. package/scripts/deploy.sh +47 -13
  302. package/scripts/lib/arch-page.ts +130 -0
  303. package/scripts/lib/changelog.ts +176 -0
  304. package/scripts/lib/contrast.ts +227 -0
  305. package/scripts/lib/mirror.ts +68 -0
  306. package/scripts/lib/readme.ts +33 -0
  307. package/scripts/lib/search-index.ts +99 -0
  308. package/scripts/lib/skill-files.ts +45 -0
  309. package/scripts/lib/skill.ts +83 -0
  310. package/scripts/sync-docs.ts +23 -16
  311. package/scripts/verify.ts +284 -22
  312. package/src/SKILL.md +676 -0
  313. package/src/SKILL_tpl.md +66 -0
  314. package/src/architecture_tpl.html +154 -0
  315. package/src/components/accordion/component-skill.md +8 -0
  316. package/src/components/alert/component-skill.md +8 -0
  317. package/src/components/alert-dialog/component-skill.md +8 -0
  318. package/src/components/avatar/avatar.css +5 -1
  319. package/src/components/avatar/component-skill.md +8 -0
  320. package/src/components/badge/component-skill.md +8 -0
  321. package/src/components/blog/blog.css +122 -0
  322. package/src/components/blog/component-skill.md +85 -0
  323. package/src/components/brand-logos/brand-logos.css +74 -0
  324. package/src/components/brand-logos/component-skill.md +58 -0
  325. package/src/components/breadcrumb/breadcrumb.css +3 -0
  326. package/src/components/breadcrumb/component-skill.md +8 -0
  327. package/src/components/button/component-skill.md +8 -0
  328. package/src/components/button-group/component-skill.md +8 -0
  329. package/src/components/calendar/component-skill.md +8 -0
  330. package/src/components/card/card.css +6 -0
  331. package/src/components/card/component-skill.md +8 -0
  332. package/src/components/carousel/component-skill.md +8 -0
  333. package/src/components/checkbox/checkbox.css +9 -0
  334. package/src/components/checkbox/component-skill.md +8 -0
  335. package/src/components/collapsible/component-skill.md +8 -0
  336. package/src/components/color-picker/component-skill.md +8 -0
  337. package/src/components/combobox/combobox.css +16 -3
  338. package/src/components/combobox/component-skill.md +8 -0
  339. package/src/components/command/command.ts +4 -2
  340. package/src/components/command/component-skill.md +8 -0
  341. package/src/components/context-menu/component-skill.md +8 -0
  342. package/src/components/context-menu/context-menu.ts +50 -8
  343. package/src/components/date-picker/component-skill.md +8 -0
  344. package/src/components/dialog/component-skill.md +8 -0
  345. package/src/components/dialog/dialog.ts +4 -1
  346. package/src/components/dropdown/component-skill.md +8 -0
  347. package/src/components/dropdown/dropdown.css +16 -8
  348. package/src/components/faq/component-skill.md +67 -0
  349. package/src/components/faq/faq.css +88 -0
  350. package/src/components/feature-details/component-skill.md +83 -0
  351. package/src/components/feature-details/feature-details.css +130 -0
  352. package/src/components/file-input/component-skill.md +8 -0
  353. package/src/components/form/component-skill.md +8 -0
  354. package/src/components/get-in-touch/component-skill.md +63 -0
  355. package/src/components/get-in-touch/get-in-touch.css +74 -0
  356. package/src/components/hero/component-skill.md +55 -0
  357. package/src/components/hero/hero.css +63 -0
  358. package/src/components/icon/component-skill.md +8 -0
  359. package/src/components/image/component-skill.md +8 -0
  360. package/src/components/input/component-skill.md +8 -0
  361. package/src/components/label/component-skill.md +8 -0
  362. package/src/components/navigation-menu/component-skill.md +8 -0
  363. package/src/components/navigation-menu/navigation-menu.ts +9 -7
  364. package/src/components/newsletter/component-skill.md +62 -0
  365. package/src/components/newsletter/newsletter.css +65 -0
  366. package/src/components/number-input/component-skill.md +8 -0
  367. package/src/components/pagination/component-skill.md +8 -0
  368. package/src/components/popover/component-skill.md +8 -0
  369. package/src/components/popover/popover.ts +6 -1
  370. package/src/components/pricing/component-skill.md +107 -0
  371. package/src/components/pricing/pricing.css +171 -0
  372. package/src/components/product-showcase/component-skill.md +89 -0
  373. package/src/components/product-showcase/product-showcase.css +79 -0
  374. package/src/components/product-showcase/product-showcase.ts +89 -0
  375. package/src/components/progress/component-skill.md +8 -0
  376. package/src/components/radio/component-skill.md +8 -0
  377. package/src/components/scroll-area/component-skill.md +8 -0
  378. package/src/components/select/component-skill.md +8 -0
  379. package/src/components/separator/component-skill.md +8 -0
  380. package/src/components/sheet/component-skill.md +9 -1
  381. package/src/components/sheet/sheet.css +11 -0
  382. package/src/components/sidebar/component-skill.md +9 -1
  383. package/src/components/sidebar/sidebar.css +17 -1
  384. package/src/components/site-footer/component-skill.md +80 -0
  385. package/src/components/site-footer/site-footer.css +104 -0
  386. package/src/components/site-header/component-skill.md +96 -0
  387. package/src/components/site-header/site-header.css +73 -0
  388. package/src/components/skeleton/component-skill.md +8 -0
  389. package/src/components/slider/component-skill.md +8 -0
  390. package/src/components/sortable/component-skill.md +8 -0
  391. package/src/components/spinner/component-skill.md +8 -0
  392. package/src/components/statistic/component-skill.md +8 -0
  393. package/src/components/stats/component-skill.md +68 -0
  394. package/src/components/stats/stats.css +88 -0
  395. package/src/components/steps/component-skill.md +8 -0
  396. package/src/components/switch/component-skill.md +8 -0
  397. package/src/components/table/component-skill.md +8 -0
  398. package/src/components/tabs/component-skill.md +8 -0
  399. package/src/components/testimonials/component-skill.md +79 -0
  400. package/src/components/testimonials/testimonials.css +129 -0
  401. package/src/components/textarea/component-skill.md +8 -0
  402. package/src/components/timeline/component-skill.md +8 -0
  403. package/src/components/toast/component-skill.md +11 -0
  404. package/src/components/toast/toast.css +21 -0
  405. package/src/components/toast/toast.ts +15 -1
  406. package/src/components/toggle/component-skill.md +8 -0
  407. package/src/components/toggle-group/component-skill.md +8 -0
  408. package/src/components/toolbar/component-skill.md +8 -0
  409. package/src/components/tooltip/component-skill.md +9 -1
  410. package/src/components/tooltip/tooltip.css +4 -0
  411. package/src/components/tree-view/component-skill.md +8 -0
  412. package/src/components/typography/component-skill.md +8 -0
  413. package/src/documentation/accessibility.html +17 -2
  414. package/src/documentation/accordion.html +17 -2
  415. package/src/documentation/alert-dialog.html +17 -2
  416. package/src/documentation/alert.html +17 -2
  417. package/src/documentation/animations.html +17 -2
  418. package/src/documentation/architecture.html +216 -0
  419. package/src/documentation/avatar.html +23 -4
  420. package/src/documentation/badge.html +17 -2
  421. package/src/documentation/blog.html +517 -0
  422. package/src/documentation/brand-logos.html +355 -0
  423. package/src/documentation/breadcrumb.html +20 -2
  424. package/src/documentation/button-group.html +17 -2
  425. package/src/documentation/button.html +17 -2
  426. package/src/documentation/calendar.html +17 -2
  427. package/src/documentation/card.html +23 -2
  428. package/src/documentation/carousel.html +17 -2
  429. package/src/documentation/cascade-layers.html +17 -2
  430. package/src/documentation/changelog.html +167 -3
  431. package/src/documentation/checkbox.html +26 -2
  432. package/src/documentation/collapsible.html +20 -5
  433. package/src/documentation/color-picker.html +17 -2
  434. package/src/documentation/combobox.html +33 -5
  435. package/src/documentation/command.html +21 -4
  436. package/src/documentation/component-skills.html +43 -6
  437. package/src/documentation/context-menu.html +67 -10
  438. package/src/documentation/css/docs-utilities.css +1 -0
  439. package/src/documentation/css/layout.css +98 -15
  440. package/src/documentation/dark-mode.html +17 -2
  441. package/src/documentation/data-attribute-api.html +17 -2
  442. package/src/documentation/date-picker.html +17 -2
  443. package/src/documentation/dialog.html +21 -3
  444. package/src/documentation/dropdown.html +33 -10
  445. package/src/documentation/es-modules.html +21 -4
  446. package/src/documentation/faq.html +429 -0
  447. package/src/documentation/feature-details.html +514 -0
  448. package/src/documentation/file-input.html +17 -2
  449. package/src/documentation/form.html +17 -2
  450. package/src/documentation/get-in-touch.html +358 -0
  451. package/{docs/documentation/textarea.html → src/documentation/hero.html} +156 -160
  452. package/src/documentation/icon.html +17 -2
  453. package/src/documentation/image.html +372 -4
  454. package/src/documentation/images/favicon.webp +0 -0
  455. package/src/documentation/images/mk-portrait.png +0 -0
  456. package/src/documentation/images/mk-portrait2.png +0 -0
  457. package/src/documentation/images/mk-square.png +0 -0
  458. package/src/documentation/images/mk-wide.png +0 -0
  459. package/src/documentation/images/mk-wide2.png +0 -0
  460. package/src/documentation/images/mk-wide3.png +0 -0
  461. package/src/documentation/index.html +46 -8
  462. package/src/documentation/input.html +17 -2
  463. package/src/documentation/installation.html +17 -2
  464. package/src/documentation/js/layout.ts +221 -64
  465. package/src/documentation/js/search-index.js +8 -0
  466. package/src/documentation/js/themes.ts +144 -57
  467. package/src/documentation/label.html +17 -2
  468. package/src/documentation/native-web-apis.html +17 -2
  469. package/src/documentation/navigation-menu.html +26 -9
  470. package/src/documentation/newsletter.html +368 -0
  471. package/src/documentation/number-input.html +17 -2
  472. package/src/documentation/pagination.html +17 -2
  473. package/src/documentation/popover.html +23 -3
  474. package/src/documentation/pricing.html +658 -0
  475. package/src/documentation/product-showcase.html +500 -0
  476. package/src/documentation/progress.html +17 -2
  477. package/src/documentation/radio.html +17 -2
  478. package/src/documentation/scroll-area.html +17 -2
  479. package/src/documentation/select.html +17 -2
  480. package/src/documentation/separator.html +17 -2
  481. package/src/documentation/sheet.html +40 -14
  482. package/src/documentation/sidebar.html +100 -4
  483. package/src/documentation/site-footer.html +503 -0
  484. package/src/documentation/site-header.html +479 -0
  485. package/src/documentation/skeleton.html +17 -2
  486. package/src/documentation/slider.html +17 -2
  487. package/src/documentation/sortable.html +17 -2
  488. package/src/documentation/spinner.html +17 -2
  489. package/src/documentation/statistic.html +17 -2
  490. package/src/documentation/stats.html +433 -0
  491. package/src/documentation/steps.html +17 -2
  492. package/src/documentation/switch.html +17 -2
  493. package/src/documentation/table.html +20 -5
  494. package/src/documentation/tabs.html +17 -2
  495. package/src/documentation/testimonials.html +497 -0
  496. package/src/documentation/textarea.html +17 -2
  497. package/src/documentation/theming.html +17 -2
  498. package/src/documentation/timeline.html +17 -2
  499. package/src/documentation/toast.html +53 -3
  500. package/src/documentation/toggle-group.html +17 -2
  501. package/src/documentation/toggle.html +17 -2
  502. package/src/documentation/toolbar.html +17 -2
  503. package/src/documentation/tooltip.html +21 -2
  504. package/src/documentation/tree-view.html +17 -2
  505. package/src/documentation/typography.html +17 -2
  506. package/src/documentation/videos/demo.mp4 +0 -0
  507. package/src/documentation/videos/demo.webm +0 -0
  508. package/src/sitemap.xml +1 -0
  509. package/src/theme/default-semantic-tokens.css +3 -1
  510. package/src/types/defuss-shadcn.d.ts +19 -0
  511. package/src/types/raw-import.d.ts +11 -0
  512. package/tests/changelog.test.ts +184 -0
  513. package/tests/contrast.test.ts +217 -0
  514. package/tests/e2e/avatar.e2e-fixture.html +7 -0
  515. package/tests/e2e/avatar.e2e.ts +20 -0
  516. package/tests/e2e/blog.e2e-fixture.html +67 -0
  517. package/tests/e2e/blog.e2e.ts +45 -0
  518. package/tests/e2e/brand-logos.e2e-fixture.html +31 -0
  519. package/tests/e2e/brand-logos.e2e.ts +82 -0
  520. package/tests/e2e/breadcrumb.e2e-fixture.html +8 -0
  521. package/tests/e2e/breadcrumb.e2e.ts +21 -1
  522. package/tests/e2e/combobox.e2e.ts +28 -0
  523. package/tests/e2e/context-menu.e2e.ts +15 -0
  524. package/tests/e2e/documentation.e2e.ts +333 -0
  525. package/tests/e2e/dropdown.e2e-fixture.html +6 -5
  526. package/tests/e2e/dropdown.e2e.ts +23 -3
  527. package/tests/e2e/faq.e2e-fixture.html +54 -0
  528. package/tests/e2e/faq.e2e.ts +43 -0
  529. package/tests/e2e/feature-details.e2e-fixture.html +64 -0
  530. package/tests/e2e/feature-details.e2e.ts +46 -0
  531. package/tests/e2e/get-in-touch.e2e-fixture.html +30 -0
  532. package/tests/e2e/get-in-touch.e2e.ts +42 -0
  533. package/tests/e2e/hero.e2e-fixture.html +30 -0
  534. package/tests/e2e/hero.e2e.ts +34 -0
  535. package/tests/e2e/navigation-menu.e2e.ts +4 -2
  536. package/tests/e2e/newsletter.e2e-fixture.html +38 -0
  537. package/tests/e2e/newsletter.e2e.ts +41 -0
  538. package/tests/e2e/pricing.e2e-fixture.html +101 -0
  539. package/tests/e2e/pricing.e2e.ts +68 -0
  540. package/tests/e2e/product-showcase.e2e-fixture.html +32 -0
  541. package/tests/e2e/product-showcase.e2e.ts +165 -0
  542. package/tests/e2e/sheet.e2e-fixture.html +7 -1
  543. package/tests/e2e/sheet.e2e.ts +36 -0
  544. package/tests/e2e/sidebar.e2e-fixture.html +26 -3
  545. package/tests/e2e/sidebar.e2e.ts +39 -0
  546. package/tests/e2e/site-footer.e2e-fixture.html +75 -0
  547. package/tests/e2e/site-footer.e2e.ts +60 -0
  548. package/tests/e2e/site-header.e2e-fixture.html +68 -0
  549. package/tests/e2e/site-header.e2e.ts +97 -0
  550. package/tests/e2e/stats.e2e-fixture.html +55 -0
  551. package/tests/e2e/stats.e2e.ts +46 -0
  552. package/tests/e2e/testimonials.e2e-fixture.html +58 -0
  553. package/tests/e2e/testimonials.e2e.ts +58 -0
  554. package/tests/e2e/toast.e2e.ts +37 -0
  555. package/tests/e2e/tooltip.e2e-fixture.html +5 -0
  556. package/tests/e2e/tooltip.e2e.ts +28 -0
  557. package/tests/readme.test.ts +42 -0
  558. package/tests/skill.test.ts +117 -0
  559. package/tests/ui.test.ts +58 -0
  560. package/dist/documentation/favicon.svg +0 -12
  561. package/docs/components/accordion/accordion.css +0 -82
  562. package/docs/components/accordion/accordion.js +0 -138
  563. package/docs/components/accordion/component-skill.md +0 -165
  564. package/docs/components/alert/alert.css +0 -67
  565. package/docs/components/alert/component-skill.md +0 -56
  566. package/docs/components/alert-dialog/alert-dialog.css +0 -136
  567. package/docs/components/alert-dialog/alert-dialog.js +0 -132
  568. package/docs/components/alert-dialog/component-skill.md +0 -56
  569. package/docs/components/avatar/avatar.css +0 -93
  570. package/docs/components/avatar/avatar.js +0 -126
  571. package/docs/components/avatar/component-skill.md +0 -72
  572. package/docs/components/badge/badge.css +0 -30
  573. package/docs/components/badge/component-skill.md +0 -40
  574. package/docs/components/breadcrumb/breadcrumb.css +0 -47
  575. package/docs/components/breadcrumb/component-skill.md +0 -111
  576. package/docs/components/button/button.css +0 -141
  577. package/docs/components/button/component-skill.md +0 -82
  578. package/docs/components/button-group/button-group.css +0 -98
  579. package/docs/components/button-group/component-skill.md +0 -67
  580. package/docs/components/calendar/calendar.css +0 -187
  581. package/docs/components/calendar/calendar.js +0 -261
  582. package/docs/components/calendar/component-skill.md +0 -75
  583. package/docs/components/card/card.css +0 -55
  584. package/docs/components/card/component-skill.md +0 -121
  585. package/docs/components/carousel/carousel.css +0 -153
  586. package/docs/components/carousel/carousel.js +0 -276
  587. package/docs/components/carousel/component-skill.md +0 -167
  588. package/docs/components/checkbox/checkbox.css +0 -121
  589. package/docs/components/checkbox/component-skill.md +0 -100
  590. package/docs/components/collapsible/collapsible.css +0 -109
  591. package/docs/components/collapsible/component-skill.md +0 -32
  592. package/docs/components/color-picker/color-picker.css +0 -42
  593. package/docs/components/color-picker/color-picker.js +0 -111
  594. package/docs/components/color-picker/component-skill.md +0 -43
  595. package/docs/components/combobox/combobox.css +0 -177
  596. package/docs/components/combobox/combobox.js +0 -231
  597. package/docs/components/combobox/component-skill.md +0 -168
  598. package/docs/components/command/command.css +0 -73
  599. package/docs/components/command/command.js +0 -219
  600. package/docs/components/command/component-skill.md +0 -103
  601. package/docs/components/context-menu/component-skill.md +0 -35
  602. package/docs/components/context-menu/context-menu.css +0 -75
  603. package/docs/components/context-menu/context-menu.js +0 -137
  604. package/docs/components/date-picker/component-skill.md +0 -40
  605. package/docs/components/date-picker/date-picker.css +0 -60
  606. package/docs/components/dialog/component-skill.md +0 -110
  607. package/docs/components/dialog/dialog.css +0 -73
  608. package/docs/components/dialog/dialog.js +0 -125
  609. package/docs/components/dropdown/component-skill.md +0 -162
  610. package/docs/components/dropdown/dropdown.css +0 -148
  611. package/docs/components/dropdown/dropdown.js +0 -206
  612. package/docs/components/file-input/component-skill.md +0 -37
  613. package/docs/components/file-input/file-input.css +0 -66
  614. package/docs/components/form/component-skill.md +0 -134
  615. package/docs/components/form/form.css +0 -135
  616. package/docs/components/icon/component-skill.md +0 -159
  617. package/docs/components/icon/icon.css +0 -53
  618. package/docs/components/image/component-skill.md +0 -184
  619. package/docs/components/image/image.css +0 -174
  620. package/docs/components/image/image.js +0 -218
  621. package/docs/components/input/component-skill.md +0 -137
  622. package/docs/components/input/input.css +0 -153
  623. package/docs/components/label/component-skill.md +0 -98
  624. package/docs/components/label/label.css +0 -56
  625. package/docs/components/navigation-menu/component-skill.md +0 -88
  626. package/docs/components/navigation-menu/navigation-menu.css +0 -59
  627. package/docs/components/navigation-menu/navigation-menu.js +0 -119
  628. package/docs/components/number-input/component-skill.md +0 -41
  629. package/docs/components/number-input/number-input.css +0 -86
  630. package/docs/components/number-input/number-input.js +0 -124
  631. package/docs/components/pagination/component-skill.md +0 -109
  632. package/docs/components/pagination/pagination.css +0 -51
  633. package/docs/components/popover/component-skill.md +0 -90
  634. package/docs/components/popover/popover.css +0 -87
  635. package/docs/components/popover/popover.js +0 -114
  636. package/docs/components/progress/component-skill.md +0 -28
  637. package/docs/components/progress/progress.css +0 -76
  638. package/docs/components/radio/component-skill.md +0 -140
  639. package/docs/components/radio/radio.css +0 -210
  640. package/docs/components/scroll-area/component-skill.md +0 -44
  641. package/docs/components/scroll-area/scroll-area.css +0 -21
  642. package/docs/components/select/component-skill.md +0 -69
  643. package/docs/components/select/select.css +0 -69
  644. package/docs/components/separator/component-skill.md +0 -93
  645. package/docs/components/separator/separator.css +0 -65
  646. package/docs/components/sheet/component-skill.md +0 -121
  647. package/docs/components/sheet/sheet.css +0 -222
  648. package/docs/components/sheet/sheet.js +0 -125
  649. package/docs/components/sidebar/component-skill.md +0 -188
  650. package/docs/components/sidebar/sidebar.css +0 -352
  651. package/docs/components/sidebar/sidebar.js +0 -144
  652. package/docs/components/skeleton/component-skill.md +0 -34
  653. package/docs/components/skeleton/skeleton.css +0 -43
  654. package/docs/components/slider/component-skill.md +0 -122
  655. package/docs/components/slider/slider.css +0 -178
  656. package/docs/components/slider/slider.js +0 -118
  657. package/docs/components/sortable/component-skill.md +0 -138
  658. package/docs/components/sortable/sortable.css +0 -131
  659. package/docs/components/sortable/sortable.js +0 -301
  660. package/docs/components/spinner/component-skill.md +0 -34
  661. package/docs/components/spinner/spinner.css +0 -48
  662. package/docs/components/statistic/component-skill.md +0 -45
  663. package/docs/components/statistic/statistic.css +0 -53
  664. package/docs/components/steps/component-skill.md +0 -183
  665. package/docs/components/steps/steps.css +0 -95
  666. package/docs/components/switch/component-skill.md +0 -77
  667. package/docs/components/switch/switch.css +0 -153
  668. package/docs/components/table/component-skill.md +0 -51
  669. package/docs/components/table/table.css +0 -135
  670. package/docs/components/tabs/component-skill.md +0 -166
  671. package/docs/components/tabs/tabs.css +0 -123
  672. package/docs/components/tabs/tabs.js +0 -177
  673. package/docs/components/textarea/component-skill.md +0 -41
  674. package/docs/components/textarea/textarea.css +0 -82
  675. package/docs/components/timeline/component-skill.md +0 -45
  676. package/docs/components/timeline/timeline.css +0 -78
  677. package/docs/components/toast/component-skill.md +0 -140
  678. package/docs/components/toast/toast.css +0 -214
  679. package/docs/components/toast/toast.js +0 -225
  680. package/docs/components/toggle/component-skill.md +0 -100
  681. package/docs/components/toggle/toggle.css +0 -116
  682. package/docs/components/toggle/toggle.js +0 -112
  683. package/docs/components/toggle-group/component-skill.md +0 -164
  684. package/docs/components/toggle-group/toggle-group.css +0 -125
  685. package/docs/components/toggle-group/toggle-group.js +0 -167
  686. package/docs/components/toolbar/component-skill.md +0 -83
  687. package/docs/components/toolbar/toolbar.css +0 -39
  688. package/docs/components/toolbar/toolbar.js +0 -146
  689. package/docs/components/tooltip/component-skill.md +0 -108
  690. package/docs/components/tooltip/tooltip.css +0 -119
  691. package/docs/components/tooltip/tooltip.js +0 -174
  692. package/docs/components/tree-view/component-skill.md +0 -63
  693. package/docs/components/tree-view/tree-view.css +0 -156
  694. package/docs/components/tree-view/tree-view.js +0 -164
  695. package/docs/components/typography/component-skill.md +0 -111
  696. package/docs/components/typography/typography.css +0 -152
  697. package/docs/documentation/changelog.html +0 -385
  698. package/docs/documentation/component-skills.html +0 -294
  699. package/docs/documentation/date-picker.html +0 -318
  700. package/docs/documentation/favicon.svg +0 -12
  701. package/docs/documentation/file-input.html +0 -319
  702. package/docs/documentation/index.html +0 -303
  703. package/docs/documentation/installation.html +0 -230
  704. package/docs/documentation/skeleton.html +0 -307
  705. package/docs/theme/default-semantic-tokens.css +0 -137
  706. package/src/documentation/favicon.svg +0 -12
  707. /package/docs/{documentation/css → css}/docs-theme.css +0 -0
  708. /package/docs/{documentation/fonts → fonts}/fraunces-300.woff2 +0 -0
  709. /package/docs/{documentation/fonts → fonts}/fraunces-300i.woff2 +0 -0
  710. /package/docs/{documentation/fonts → fonts}/fraunces-400.woff2 +0 -0
  711. /package/docs/{documentation/fonts → fonts}/fraunces-400i.woff2 +0 -0
  712. /package/docs/{documentation/fonts → fonts}/fraunces-500.woff2 +0 -0
  713. /package/docs/{documentation/fonts → fonts}/geist-300.woff2 +0 -0
  714. /package/docs/{documentation/fonts → fonts}/geist-400.woff2 +0 -0
  715. /package/docs/{documentation/fonts → fonts}/geist-500.woff2 +0 -0
  716. /package/docs/{documentation/fonts → fonts}/geist-600.woff2 +0 -0
  717. /package/docs/{documentation/fonts → fonts}/geist-mono-400.woff2 +0 -0
  718. /package/docs/{documentation/fonts → fonts}/geist-mono-500.woff2 +0 -0
  719. /package/docs/{documentation/js → js}/shiki-highlight.js +0 -0
  720. /package/docs/{documentation/js → js}/site.js +0 -0
  721. /package/docs/{documentation/js → js}/theme-switcher.js +0 -0
package/AGENTS.md CHANGED
@@ -16,10 +16,13 @@ must surface as a failure with output, never as an agent hanging forever.
16
16
  You are working on the **defuss-shadcn** design system repo.
17
17
  The consumer-facing system lives in `dist/` — **it is generated**: edit sources in
18
18
  `src/` (`bun run build` compiles `.ts` → `.js` and copies everything else 1:1).
19
- `docs/` is also generated: a 1:1 mirror of `dist/` (whole tree — Pages pages reference
20
- `../components/…` siblings) published by GitHub Pages; refresh it with `bun run docs`
21
- (`make build` does this automatically and `verify` fails if the mirror drifts). Never
22
- edit `docs/` directly — like `dist/`, it is deleted and rebuilt on every `bun run docs`.
19
+ `docs/` is also generated: **only the documentation site** (`dist/documentation/*` +
20
+ `robots.txt`/`sitemap.xml`) published by GitHub Pages — its pages' `../components/…` and
21
+ `../theme/…` references are rewritten to the jsDelivr GitHub CDN (shared transform in
22
+ `scripts/lib/mirror.ts`), so the mirror carries no copies of the component assets.
23
+ Refresh it with `bun run docs` (`make build` does this automatically and `verify`
24
+ fails if the mirror drifts). Never edit `docs/` directly — like `dist/`, it is
25
+ deleted and rebuilt on every `bun run docs`.
23
26
  Never edit `dist/` directly; it is deleted and rebuilt on every build.
24
27
 
25
28
  ---
@@ -29,10 +32,11 @@ Never edit `dist/` directly; it is deleted and rebuilt on every build.
29
32
  ```
30
33
  defuss-shadcn/
31
34
  ├── dist/ ← the distributable (drop into any project)
35
+ │ ├── SKILL.md ← agent entry point (generated from src/SKILL_tpl.md + skill frontmatter)
32
36
  │ ├── theme/default-semantic-tokens.css ← design tokens (source of truth for colors, radius, shadows)
33
37
  │ ├── components/ ← self-contained component folders
34
38
  │ │ └── {name}/
35
- │ │ ├── component-skill.md ← component skill (HTML structure & ARIA reference)
39
+ │ │ ├── component-skill.md ← component skill (frontmatter + HTML structure & ARIA reference)
36
40
  │ │ ├── {name}.css ← component stylesheet (edit directly)
37
41
  │ │ └── {name}.js ← interaction JS (only for interactive components)
38
42
  │ └── documentation/ ← reference implementations + public website
@@ -54,11 +58,15 @@ defuss-shadcn/
54
58
  │ └── prompts/ ← reusable prompt files
55
59
  │ └── component-review.prompt.md
56
60
  │
57
- ├── screenshots/ ← generated default-state PNGs per component in light/ + dark/ (`bun run screenshots`, gitignored)
61
+ ├── screenshots/ ← generated PNGs per component AND per declared state, light/ + dark/ (`bun run screenshots`, gitignored) — SKILL.md maps state names to these files
58
62
  ├── scripts/ ← build & maintenance scripts (no one-shot migrations)
59
63
  │ ├── build.ts ← src/ → dist/ (tsc type-strip + copy everything else 1:1)
60
64
  │ ├── verify.ts ← static consistency gate (runs at end of build; `bun run verify`)
61
- │ ├── sync-docs.ts ← mirror dist/ → docs/ for GitHub Pages (`bun run docs`)
65
+ │ ├── sync-docs.ts ← mirror dist/documentation → docs/ (CDN-rewritten; `bun run docs`)
66
+ │ ├── lib/mirror.ts ← shared docs/ mirror transform (sync-docs + verify compare against it)
67
+ │ ├── lib/search-index.ts ← docs search index generator (build.ts regenerates it every build)
68
+ │ ├── lib/skill.ts ← SKILL.md generation core: frontmatter parser + index renderer (pure)
69
+ │ ├── lib/skill-files.ts ← dist/SKILL.md index generator from src/SKILL_tpl.md + skill frontmatter (build.ts regenerates every build)
62
70
  │ ├── create-screenshots.ts ← parallel default-state screenshots for agent inspection
63
71
  │ ├── lib/audit.ts ← undefined-utility audit (used by verify)
64
72
  │ ├── lib/snippets.ts ← shared snippet drift/replace logic (syncers + verify)
@@ -94,6 +102,92 @@ warn-ratchets it still reports, e.g. `STATE_API_LEGACY`, are named migration
94
102
  debt with an explicit removal path — not permission to ignore them.) The
95
103
  full rationale lives in [ARCH.md](ARCH.md).
96
104
 
105
+ ### Each component owns its dialog
106
+
107
+ `dialog.js`'s init claims plain `<dialog>` elements for backdrop-click close —
108
+ via a `dialog:not(.alert-dialog):not(.sheet):not(.command):not([data-init])`
109
+ selector. **Any component that ships its own `<dialog class="…">` with custom
110
+ behavior must be `:not()`-excluded there**, or dialog.js (loaded before every
111
+ component script on all doc pages) stamps `data-init` first and the real
112
+ owner's init silently skips the element — the docs search palette was dead
113
+ exactly this way once. `verify`'s `dialog ownership boundary` gate enforces
114
+ the exclusion list for the three dialog owners (alert-dialog, sheet, command);
115
+ extend the list in both places when a fourth appears.
116
+
117
+ The docs header search is the shipped command component itself: clicking the
118
+ input (or ⌘/Ctrl+K) opens `<dialog class="command" id="docs-palette">`, fed by
119
+ the build-time index (`scripts/lib/search-index.ts` → `js/search-index.js`,
120
+ NAV entries + every page `<h2>` with TOC-compatible ids). The trigger is
121
+ click/Enter only — never `focus`: `dialog.close()` restores focus to the
122
+ opener synchronously, which would bounce the palette open again.
123
+
124
+ ### README ↔ index parity
125
+
126
+ `README.md` and `src/documentation/index.html` describe the same system to
127
+ humans and to browser users — **when you update either, update the other in
128
+ the same commit.** They share two claims that drift independently if you
129
+ forget:
130
+
131
+ - **Pillar set** — the README intro bullets (`- **Name** — …`, under "What
132
+ this is" and before "Quick start") and the index pillar cards
133
+ (`<h3 class="card-title">`) must list the same set of pillars.
134
+ - **Hero sentence** — the intro paragraph wording must match
135
+ (`"No build step for consumers — dist/ is committed and ready to use
136
+ as-is."` once diverged to a bare `"No build step."`).
137
+ - **CDN dogfooding** — the index carries the "this site loads its assets
138
+ from the jsDelivr CDN, exactly as README's Via CDN quick start shows — if
139
+ it renders, the CDN install works" note, which must stay true if the CDN
140
+ strategy in [`scripts/lib/mirror.ts`](scripts/lib/mirror.ts) ever changes.
141
+ - **CSS-only count** — the "**N of M components need no JavaScript**" line
142
+ appears in both README.md and the index; `verify`'s
143
+ `README CSS-only stat` / `index CSS-only stat` gates compare it against
144
+ the actual `src/components/` tree (a component `.ts` = ships a `.js`).
145
+ Update both files together whenever a component gains or loses behavior.
146
+
147
+ `verify` enforces the pillar set (`README ↔ index parity`, hard gate) and the
148
+ **`README ↔ index commit window`** gate: if the two files' last-touch commits
149
+ are neither identical nor within **15 minutes** of each other, the build fails
150
+ as "un-synced edit" — forcing you to land them together. Wording parity itself
151
+ is yours to maintain (no automated text diff; the window is the backstop).
152
+
153
+ ### Changelog (two-commit rule)
154
+
155
+ Every version in `package.json` needs an entry in
156
+ [`src/documentation/changelog.html`](src/documentation/changelog.html) listing
157
+ **all commit messages** of that release (deploy.sh generates them since the
158
+ last tag; v0.7.14 was the first release after the fork from
159
+ codylindley/shadcn-html, so its entry documents the fork). Each entry shows
160
+ either the release date badge or — once the version is actually **committed** —
161
+ the short git hash of the commit that added the entry, embedded as
162
+ `<code class="changelog-hash">abc1234</code>`. The hash is unknowable before
163
+ that commit exists, so authoring an entry is inherently **two commits**:
164
+
165
+ 1. commit the entry (with date badge),
166
+ 2. commit that commit's short hash into the entry.
167
+
168
+ `verify`'s `changelog ↔ version` gate fails when the committed `package.json`
169
+ version has no entry (or a hash-less / message-less entry for that version);
170
+ its `fix:` line states the two-commit instruction. `scripts/deploy.sh`
171
+ automates the whole flow. Legacy entries (v0.7.13-alpha and earlier) keep
172
+ date-only badges — the hash requirement applies from this rule onward.
173
+
174
+ ### ARCH.md ↔ architecture page sync (REQUIRED)
175
+
176
+ [`ARCH.md`](ARCH.md) is the repo's design manifesto (why the verifier is the
177
+ authority, how the proof loop works, where the human review sits). The docs
178
+ site publishes it as an Overview page,
179
+ [`src/documentation/architecture.html`](src/documentation/architecture.html) —
180
+ a **generated** render of ARCH.md via `src/architecture_tpl.html`
181
+ (`scripts/lib/arch-page.ts`, regenerated by `build.ts`, mirrored to the docs
182
+ site like every other page).
183
+
184
+ - **When you edit ARCH.md, run `bun run build` in the same commit** — the page
185
+ is rebuilt from it. `verify`'s `architecture ↔ ARCH.md` gate fails when the
186
+ two diverge, exactly like the SKILL.md index.
187
+ - **Never hand-edit `architecture.html`** (or its `dist/` / `docs/` copies):
188
+ like all generated files it is deleted and rebuilt; the generator would
189
+ silently revert your edit, and the gate would fail anyway.
190
+
97
191
  ### Native web platform first
98
192
 
99
193
  Every component starts from a native HTML element or browser API. If the browser
@@ -344,6 +438,23 @@ contract grows; never re-declare the globals inside a component file.
344
438
  Legacy components in its `STATE_API_LEGACY` list warn only until migrated —
345
439
  remove a name from the list in the same commit that migrates the component.
346
440
 
441
+ ### Theme radius consistency (REQUIRED)
442
+
443
+ A theme is **one identity, two palettes** — light and dark are the same
444
+ theme, so its shape (`radius`) must be **identical in both modes**. If Doom64
445
+ is hard-square in dark mode it is hard-square in light mode; if ChatGPT is
446
+ pill-round in dark, light is pill-round too. A theme that only declares
447
+ `radius` in one mode silently reverts the other to the default rounding, so
448
+ toggling dark mode "changes the theme's shape" — reported (Doom64, Retro
449
+ Arcade) and now gated.
450
+
451
+ - In `src/documentation/js/themes.ts`, declare `radius` in **both** the
452
+ `light` and `dark` block of every theme, with the same value.
453
+ - `verify`'s `theme radius consistency` gate fails the build otherwise.
454
+ - Same principle for **contrast**: every theme's sidebar text pairs must
455
+ reach WCAG AA (≥ 4.5) in *both* modes — see the `theme sidebar contrast`
456
+ gate. Re-tune one mode's color and you own both.
457
+
347
458
  ### Tokens are the source of truth for design values
348
459
 
349
460
  `dist/theme/default-semantic-tokens.css` defines all CSS custom properties. These must match
@@ -547,8 +658,29 @@ status of newer APIs (`popover`, anchor positioning, `@starting-style`, etc.).
547
658
  Component skills document **how to build the HTML** for a component. CSS and JS live in
548
659
  their own files alongside the skill — edit `.css` and `.js` directly.
549
660
 
661
+ Every component skill **must open with a YAML frontmatter block** — it is the machine-readable
662
+ discovery layer `dist/SKILL.md` (the agent entry point) is generated from. `verify`'s
663
+ `skill frontmatter` gate fails without it, and `SKILL.md ↔ skills` fails when the generated
664
+ index lags (rebuild with `bun run build`):
665
+
666
+ ```markdown
667
+ ---
668
+ name: Dialog
669
+ why: Native <dialog> + showModal(): focus trap, Escape, ::backdrop, and inert background are browser-provided.
670
+ when: Modals for forms, detail views, or previews — unless the answer is mandatory (then alert-dialog).
671
+ where: dist/components/dialog/dialog.css + dist/components/dialog/dialog.js
672
+ supportedStates: default, open
673
+ ---
674
+ ```
675
+
676
+ - **name** — display name (Title Case) · **why** — what its native basis buys · **when** — which
677
+ use it for, and when to pick a sibling instead · **where** — the shipped files
678
+ (`dist/components/{name}/{name}.css` + `.js` if interactive) · **supportedStates** — the exact
679
+ State API names (matches `{name}States`, `default` first; CSS-only components: `default`).
680
+
550
681
  Every component skill must include these sections in order:
551
682
 
683
+ 0. **Frontmatter** — `name` / `why` / `when` / `where` / `supportedStates` (see above — REQUIRED)
552
684
  1. **Native basis** — which HTML element/API it builds on
553
685
  2. **Native Web APIs** — bulleted list of significant platform APIs with MDN links (see format below)
554
686
  3. **Structure** — complete HTML markup with all attributes
@@ -843,6 +975,7 @@ The sidebar is ordered by dependency (primitives first):
843
975
  8. Overlays (Popover, Tooltip, Context Menu, Dialog, Sheet, Accordion, Command)
844
976
  9. Navigation (Breadcrumb, Pagination, Steps, Tabs, Dropdown Menu, Navigation Menu)
845
977
  10. Application (Sidebar)
978
+ 11. Marketing (Site Header, Hero, Product Showcase, Brand Logos, Feature Details, Testimonials, Stats, Pricing, Blog, FAQ, Get In Touch, Newsletter, Site Footer) — CSS-only page sections composed from the same tokens + primitives
846
979
 
847
980
  To reorder, edit the `NAV` array in `layout.js`.
848
981
 
package/ARCH.md CHANGED
@@ -1,13 +1,13 @@
1
- # ARCH — How this framework scales without a human reviewer
1
+ # ARCH — How this framework scales with AI
2
2
 
3
- defuss-shadcn is built for an era where **coding agents do the work**. The
3
+ `defuss-shadcn` is built for an era where **coding agents do the work**. The
4
4
  scaling bottleneck is no longer writing components — it is *trusting* them.
5
5
  This repo solves trust with a closed loop: every artifact an agent produces
6
6
  passes through mechanical quality gates designed by a human senior software engineer, and the gates talk back to the AI agent in the form of executable instructions. An agent can reach "done" only by satisfying every gate; the goal is unreachable any other way.
7
7
 
8
- The method has four parts.
8
+ The method has five parts.
9
9
 
10
- ## 1. AGENTS.md — the philosophy layer
10
+ ## 1. AGENTS.md — the philosophy/instruction layer
11
11
 
12
12
  [`AGENTS.md`](AGENTS.md) tells a coding agent **how to work, what to
13
13
  implement where, and why**: the native-web-platform-first rules (`<dialog>`,
@@ -18,14 +18,17 @@ model reads before and while it works. Prose, however, is advisory: an agent
18
18
  can misread it, skip it, or claim compliance. That is exactly what the next
19
19
  layer is for.
20
20
 
21
- ## 2. The verifier — the authority layer
21
+ ## 2. The deterministic verifier — an authority layer
22
22
 
23
23
  [`scripts/verify.ts`](scripts/verify.ts) is a custom, code-implemented audit
24
- of everything prose cannot guarantee: **34 check groups** over the shipped
25
- tree — skills exist, doc pages exist, tokens are tweakcn-compatible, snippets
26
- match source, dist is a 1:1 build of src, every declared state has a
27
- screenshot/skill/doc/e2e artifact, cross-page imports are complete, links
28
- resolve, paths are portable, the working tree is committed, and more. Each
24
+ of everything prose cannot guarantee: **41 check groups** over the shipped
25
+ tree — skills exist (with discovery frontmatter), doc pages exist, tokens are
26
+ tweakcn-compatible, snippets match source, dist is a 1:1 build of src, every
27
+ declared state has a screenshot/skill/doc/e2e artifact, cross-page imports are
28
+ complete, links resolve, paths are portable, the working tree is committed, the
29
+ committed version has a changelog entry carrying its commit hash (AGENTS.md
30
+ "Changelog"), the generated dist/SKILL.md agent index matches the skills,
31
+ and more. Each
29
32
  check reads the *actual* files and computes the truth; nothing is taken on
30
33
  word.
31
34
 
@@ -65,7 +68,7 @@ to ignore it. The two files are one system: prose explains the *why*, the
65
68
  verifier enforces the *what*, and prose points at the verifier as the final
66
69
  word (`bun run verify` is the single "am I done?" question).
67
70
 
68
- ## 4. The surrounding gates — verification is not enough by itself
71
+ ## 4. The surrounding gates — suppressing hallucination, AI slop and overstating claims
69
72
 
70
73
  The verifier checks *consistency*. The loop wraps it with gates that check
71
74
  *behavior, quality, and appearance*:
@@ -75,7 +78,7 @@ The verifier checks *consistency*. The loop wraps it with gates that check
75
78
  | Lint | oxlint (`bun run lint`) | src/, tests/, scripts/ stay warning-clean |
76
79
  | Type-check | strict `tsc --noEmit` | tests/ and scripts/ compile |
77
80
  | Unit/integration | Vitest browser mode (`bun run test:run`) | real doc pages in a real Chromium iframe behave |
78
- | E2E | 55 standalone Playwright scripts (`bun run e2e`) | every component's documented surface — interactions, keyboard, computed CSS |
81
+ | E2E | 56 standalone Playwright scripts (`bun run e2e`) | every component's documented surface — interactions, keyboard, computed CSS — plus the doc site itself (renders, SPA nav, search) |
79
82
  | Screenshots | `bun run screenshots` | every declared **state × light/dark** PNG exists, is fresh vs. its input fingerprint, and the render manifest hash-detects drift |
80
83
  | Git hygiene | verify check #23 | every verified byte is committed — what CI/other agents see is exactly what passed |
81
84
 
@@ -105,7 +108,7 @@ flowchart TD
105
108
  B --> C["make build"]
106
109
  subgraph GATES["mechanical quality gates (no human in the loop)"]
107
110
  direction LR
108
- L["oxlint<br/>typecheck"] --> P["compile src → dist<br/>1:1 build"] --> SS["screenshots<br/>every state × light/dark<br/>fingerprint-fresh"] --> V["verify.ts<br/>34 consistency gates<br/>incl. 'working tree committed'"] --> Q["Vitest UI tests<br/>55 Playwright e2e"]
111
+ L["oxlint<br/>typecheck"] --> P["compile src → dist<br/>1:1 build"] --> SS["screenshots<br/>every state × light/dark<br/>fingerprint-fresh"] --> V["verify.ts<br/>41 consistency gates<br/>incl. 'working tree committed'"] --> Q["Vitest UI tests<br/>56 Playwright e2e"]
109
112
  end
110
113
  C --> GATES
111
114
 
@@ -128,3 +131,19 @@ the loop until the work is actually good* — which is precisely the point:
128
131
  human review does not scale to an army of agents, but a verifier that
129
132
  audits every byte, speaks repair instructions, and is the only door out
130
133
  does.
134
+
135
+ ## 5. Human expert final review before release
136
+
137
+ The human expert only reviews the code, documentation and visual representation after all quality gates have passed and the visual evidence has been captured - right before a new version is released.
138
+
139
+ Should the human expert find any issues during this final review, the feedback is fed back into the loop, and the agents must address it before a new version can be released. If a regression or a new "unknown unknown" fail case is discovered, the human expert will either instruct the agent to add this to the AGENTS.md or let the agent implement yet another verifier logic to add a new static and deterministic quality gate, preventing the same issue from slipping through in future iterations.
140
+
141
+ As for the Agent Harness, this method has a huge advantage compared to more automated or harness-native solutions:
142
+
143
+ 1. It doesn't matter what VLM model is used. As long as the model is capable enough, it can handle the task including multimodal reasoning and visual inspection of the screenshots.
144
+
145
+ 2. AGENTS.md and the verifier logic are decoupled from the specific VLM model. This means that improvements or changes to the VLM model do not require modifications to the agent's instructions or the verifier, ensuring long-term maintainability and flexibility.
146
+
147
+ 3. The human still has oversight over both the development process (and thus can intercept in case of errors or unexpected behavior) and the release process, ensuring that the quality gates are meaningful, implemented changes are safe and correct, and that the released version meets all of the desired standards, set by the human expert.
148
+
149
+ 4. Spec-driven development is absolutely possible by simply creating plans or bug reports in the ./issues folder - decoupling the agentic engineering process from any 3rd party project management tool, while still maintaining a clear and structured workflow for the agents to follow - even in case the harness fails right in the middle of an implementation loop.
package/README.md CHANGED
@@ -4,17 +4,25 @@
4
4
  [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
5
5
  ![No dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)
6
6
  ![HTML CSS JS](https://img.shields.io/badge/stack-HTML%20·%20CSS%20·%20JS-orange)
7
+ [![npm version](https://img.shields.io/npm/v/defuss-shadcn.svg?logo=npm)](https://www.npmjs.com/package/defuss-shadcn)
8
+ [![npm downloads](https://img.shields.io/npm/dm/defuss-shadcn.svg)](https://www.npmjs.com/package/defuss-shadcn)
9
+ [![TypeScript definitions](https://img.shields.io/npm/types/defuss-shadcn.svg)](https://www.npmjs.com/package/defuss-shadcn)
10
+ [![Socket Badge](https://badge.socket.dev/npm/package/defuss-shadcn/latest)](https://socket.dev/npm/package/defuss-shadcn)
7
11
 
8
12
  **A UI component system that scales with AI.** Themeable components built on semantic HTML, modern CSS, and vanilla JavaScript. No framework. No build step for consumers — `dist/` is committed and ready to use as-is. The simplest possible foundation for AI-driven prototyping.
9
13
 
10
- **[Documentation & Live Demos →](https://kyr0.github.io/defuss-shadcn/documentation/)**
14
+ 41 of 68 components need no JavaScript — native HTML and modern CSS cover them entirely.
15
+
16
+ The set includes 13 marketing blocks (Site Header, Hero, Pricing, Testimonials, Blog, Footer, …) — full-page sections composed from the same tokens and primitives, all CSS-only.
17
+
18
+ **[Documentation & Live Demos →](https://kyr0.github.io/defuss-shadcn/)** · [Architecture (ARCH.md)](ARCH.md) · [Agent integration guide (dist/SKILL.md)](dist/SKILL.md)
11
19
 
12
20
  ## What this is
13
21
 
14
22
  A portable UI component system built on the [shadcn/ui](https://ui.shadcn.com) token model.
15
23
 
16
24
  - **Themeable** — full shadcn semantic token model. Swap a [tweakcn](https://tweakcn.com) theme and every component updates instantly
17
- - **Component Skills** — every component includes a structured skill — markup, variants, ARIA, and wiring conventions — grounded in web standards
25
+ - **Component Skills** — every component includes a structured skill — markup, variants, named states, ARIA, and wiring conventions — grounded in web standards
18
26
  - **Observable state** — interactive components expose a State API (`el.api.setState('open')`, `el.api.getState()`), so agents and tests can drive every documented state by name without knowing the implementation
19
27
  - **Accessible** — built on native HTML elements and WAI-ARIA patterns. Keyboard navigation, focus management, and screen reader support by default
20
28
  - **Framework Free** — runs in any browser, zero dependencies, no build pipeline required
@@ -39,7 +47,7 @@ A portable UI component system built on the [shadcn/ui](https://ui.shadcn.com) t
39
47
 
40
48
  ### Self-hosting
41
49
 
42
- Download the full system and drop it into any project. All the files are static — no build step, no dependencies. Point an AI at the folder and it has everything it needs: component skills to read, CSS to include, JS to wire up, and the entire documentation site with working examples of every component.
50
+ Download the full system and drop it into any project. All the files are static — no build step, no dependencies. Point an AI at `dist/SKILL.md` and it has everything it needs: the library's integration guide and philosophy, an index of every component skill (why/when/where + supported states), CSS to include, JS to wire up, and the entire documentation site with working examples of every component.
43
51
 
44
52
  **[Download latest (.zip)](https://github.com/kyr0/defuss-shadcn/archive/refs/heads/main.zip)**
45
53
 
@@ -73,7 +81,7 @@ Tokens are compatible with [tweakcn.com](https://tweakcn.com) theme exports. To
73
81
 
74
82
  ## Components
75
83
 
76
- See the **[full component list with live demos →](https://kyr0.github.io/defuss-shadcn/documentation/)**
84
+ See the **[full component list with live demos →](https://kyr0.github.io/defuss-shadcn/)**
77
85
 
78
86
  ## Design principles
79
87
 
@@ -132,8 +140,11 @@ bun run test:run # run the UI test suite (headless Chromium)
132
140
  ```
133
141
 
134
142
  `src/` is the authoring tree (`.ts` + html/css/md/fonts); `dist/` is its compiled, 1:1
135
- mirror, committed and the only thing that ships. `docs/` is a generated 1:1 mirror of
136
- `dist/` that GitHub Pages publishes — refresh with `bun run docs`, never edit it directly.
143
+ mirror, committed and the only thing that ships. `docs/` is the generated **documentation
144
+ site** (only `dist/documentation/` + the SEO files) that GitHub Pages publishes — the
145
+ pages' `../components/…` / `../theme/…` references are rewritten to the jsDelivr GitHub
146
+ CDN by the mirror ([scripts/lib/mirror.ts](scripts/lib/mirror.ts)), so docs/ carries no
147
+ copies of the component assets. Refresh with `bun run docs`, never edit it directly.
137
148
 
138
149
  A `Makefile` wraps the common tasks: `make setup` (install deps + Playwright browsers),
139
150
  `make dev`, `make test-run`, `make coverage`, `make e2e`, `make lint` (oxlint),
@@ -145,7 +156,7 @@ the same loop CI runs.
145
156
  of every build) and the contract every coding agent must satisfy. It checks, among others:
146
157
 
147
158
  - **structure** — component skills, doc pages, CSS/JS imports on every page, sidebar links,
148
- `.preview` blocks, `dist/` freshness (1:1 with `src/`), `docs/` mirror byte-identical
159
+ `.preview` blocks, `dist/` freshness (1:1 with `src/`), `docs/` mirror current (CDN-rewritten)
149
160
  - **consistency** — inline source snippets match the real files (and are properly escaped),
150
161
  skill ↔ docs ↔ CSS variant parity, State API contract + per-state coverage across
151
162
  screenshots/docs/skill/e2e, changelog & version markers, doc command references
@@ -153,7 +164,8 @@ of every build) and the contract every coding agent must satisfy. It checks, amo
153
164
  - **quality** — token boundary rule (only tweakcn-defined `var(--*)`), undefined utility
154
165
  classes, `prefers-reduced-motion` coverage, init idempotency (double-binding guard),
155
166
  dead links (parsed with linkedom), portable paths (no machine-absolute paths),
156
- strict typecheck, render drift (screenshot pixels changed without input changes)
167
+ strict typecheck, render drift (screenshot pixels changed without input changes),
168
+ theme sidebar contrast (every preset's nav text reaches WCAG AA on its real background)
157
169
  - **hygiene** — working tree committed, so a green build is a committed build
158
170
 
159
171
  Every failing check prints the offending files **and the exact fix** — the verifier is
@@ -182,9 +194,10 @@ fixture page using the component in **all** of its documented configurations (ev
182
194
  variant, size, and State API state), driven by plain Playwright against the unmodified
183
195
  files in `dist/` (`bun run e2e`). This is the verification loop a coding agent runs
184
196
  after touching any component — the shipped files themselves are asserted, so "it
185
- compiles" is never mistaken for "it works". The rollout is in progress (`verify` lists
186
- the components still missing one) and its parity rule keeps fixture, docs and code in
187
- lockstep as they land.
197
+ compiles" is never mistaken for "it works". Every component ships one (the gate is
198
+ hard), and its parity rule keeps fixture, docs and code in lockstep as they change.
199
+ The documentation site itself is covered too ([`tests/e2e/documentation.e2e.ts`](tests/e2e/documentation.e2e.ts)):
200
+ the intro page renders, the SPA router navigates, and the header search opens the command palette (generated index, page + section results).
188
201
 
189
202
  ## Credits
190
203
 
package/bun.lock CHANGED
@@ -12,6 +12,7 @@
12
12
  "linkedom": "^0.18.13",
13
13
  "oxlint": "^1.81.0",
14
14
  "playwright": "^1.63.0",
15
+ "simple-icons": "^16.30.0",
15
16
  "typescript": "^7.0.2",
16
17
  "vite": "^8.2.2",
17
18
  "vitest": "^5.0.0",
@@ -289,6 +290,8 @@
289
290
 
290
291
  "siginfo": ["siginfo@2.0.0", "", {}, "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g=="],
291
292
 
293
+ "simple-icons": ["simple-icons@16.30.0", "", {}, "sha512-YX/HmgEqjpn5Zs3myzKp8ek5Ti+TdrkvNWn9skGLetg9tOg0cTjYizj9ESAYJn4xwc0GQYVGzQxBELDfbxq7WQ=="],
294
+
292
295
  "sirv": ["sirv@3.0.2", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="],
293
296
 
294
297
  "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],