shadcn-glass-ui 2.2.1 → 2.2.4

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 (368) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/cli/commands/info.d.ts +15 -0
  3. package/dist/cli/commands/info.d.ts.map +1 -0
  4. package/dist/cli/commands/list.d.ts +23 -0
  5. package/dist/cli/commands/list.d.ts.map +1 -0
  6. package/dist/cli/index.cjs +1 -1
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/{index.js → index.mjs} +1 -1
  9. package/dist/cli/index.mjs.map +1 -0
  10. package/dist/cli/utils/format.d.ts +76 -0
  11. package/dist/cli/utils/format.d.ts.map +1 -0
  12. package/dist/cli/utils/fuzzy-search.d.ts +73 -0
  13. package/dist/cli/utils/fuzzy-search.d.ts.map +1 -0
  14. package/dist/cli/utils/load-exports.d.ts +141 -0
  15. package/dist/cli/utils/load-exports.d.ts.map +1 -0
  16. package/dist/components/blocks/avatar-gallery/index.d.ts +2 -0
  17. package/dist/components/blocks/avatar-gallery/index.d.ts.map +1 -0
  18. package/dist/components/blocks/avatar-gallery/page.d.ts +7 -0
  19. package/dist/components/blocks/avatar-gallery/page.d.ts.map +1 -0
  20. package/dist/components/blocks/badges/index.d.ts +2 -0
  21. package/dist/components/blocks/badges/index.d.ts.map +1 -0
  22. package/dist/components/blocks/badges/page.d.ts +7 -0
  23. package/dist/components/blocks/badges/page.d.ts.map +1 -0
  24. package/dist/components/blocks/buttons/index.d.ts +2 -0
  25. package/dist/components/blocks/buttons/index.d.ts.map +1 -0
  26. package/dist/components/blocks/buttons/page.d.ts +7 -0
  27. package/dist/components/blocks/buttons/page.d.ts.map +1 -0
  28. package/dist/components/blocks/form-elements/index.d.ts +2 -0
  29. package/dist/components/blocks/form-elements/index.d.ts.map +1 -0
  30. package/dist/components/blocks/form-elements/page.d.ts +7 -0
  31. package/dist/components/blocks/form-elements/page.d.ts.map +1 -0
  32. package/dist/components/blocks/index.d.ts +14 -0
  33. package/dist/components/blocks/index.d.ts.map +1 -0
  34. package/dist/components/blocks/notifications/index.d.ts +2 -0
  35. package/dist/components/blocks/notifications/index.d.ts.map +1 -0
  36. package/dist/components/blocks/notifications/page.d.ts +7 -0
  37. package/dist/components/blocks/notifications/page.d.ts.map +1 -0
  38. package/dist/components/blocks/progress/index.d.ts +2 -0
  39. package/dist/components/blocks/progress/index.d.ts.map +1 -0
  40. package/dist/components/blocks/progress/page.d.ts +7 -0
  41. package/dist/components/blocks/progress/page.d.ts.map +1 -0
  42. package/dist/components/blocks/registry.d.ts +16 -0
  43. package/dist/components/blocks/registry.d.ts.map +1 -0
  44. package/dist/components/demos/AnimatedBackground.d.ts +5 -0
  45. package/dist/components/demos/AnimatedBackground.d.ts.map +1 -0
  46. package/dist/components/demos/ComponentShowcase.d.ts +6 -0
  47. package/dist/components/demos/ComponentShowcase.d.ts.map +1 -0
  48. package/dist/components/demos/DesktopShowcase.d.ts +3 -0
  49. package/dist/components/demos/DesktopShowcase.d.ts.map +1 -0
  50. package/dist/components/demos/GlassFixesDemo.d.ts +6 -0
  51. package/dist/components/demos/GlassFixesDemo.d.ts.map +1 -0
  52. package/dist/components/demos/MobileShowcase.d.ts +3 -0
  53. package/dist/components/demos/MobileShowcase.d.ts.map +1 -0
  54. package/dist/components/glass/atomic/expandable-header-glass.d.ts +16 -0
  55. package/dist/components/glass/atomic/expandable-header-glass.d.ts.map +1 -0
  56. package/dist/components/glass/atomic/icon-button-glass.d.ts +18 -0
  57. package/dist/components/glass/atomic/icon-button-glass.d.ts.map +1 -0
  58. package/dist/components/glass/atomic/index.d.ts +14 -0
  59. package/dist/components/glass/atomic/index.d.ts.map +1 -0
  60. package/dist/components/glass/atomic/insight-card-glass.d.ts +22 -0
  61. package/dist/components/glass/atomic/insight-card-glass.d.ts.map +1 -0
  62. package/dist/components/glass/atomic/search-box-glass.d.ts +17 -0
  63. package/dist/components/glass/atomic/search-box-glass.d.ts.map +1 -0
  64. package/dist/components/glass/atomic/sort-dropdown-glass.d.ts +38 -0
  65. package/dist/components/glass/atomic/sort-dropdown-glass.d.ts.map +1 -0
  66. package/dist/components/glass/atomic/stat-item-glass.d.ts +22 -0
  67. package/dist/components/glass/atomic/stat-item-glass.d.ts.map +1 -0
  68. package/dist/components/glass/atomic/theme-toggle-glass.d.ts +11 -0
  69. package/dist/components/glass/atomic/theme-toggle-glass.d.ts.map +1 -0
  70. package/dist/components/glass/composite/ai-card-glass.d.ts +7 -0
  71. package/dist/components/glass/composite/ai-card-glass.d.ts.map +1 -0
  72. package/dist/components/glass/composite/career-stats-header-glass.d.ts +15 -0
  73. package/dist/components/glass/composite/career-stats-header-glass.d.ts.map +1 -0
  74. package/dist/components/glass/composite/circular-metric-glass.d.ts +24 -0
  75. package/dist/components/glass/composite/circular-metric-glass.d.ts.map +1 -0
  76. package/dist/components/glass/composite/contribution-metrics-glass.d.ts +15 -0
  77. package/dist/components/glass/composite/contribution-metrics-glass.d.ts.map +1 -0
  78. package/dist/components/glass/composite/index.d.ts +22 -0
  79. package/dist/components/glass/composite/index.d.ts.map +1 -0
  80. package/dist/components/glass/composite/metric-card-glass.d.ts +96 -0
  81. package/dist/components/glass/composite/metric-card-glass.d.ts.map +1 -0
  82. package/dist/components/glass/composite/metrics-grid-glass.d.ts +17 -0
  83. package/dist/components/glass/composite/metrics-grid-glass.d.ts.map +1 -0
  84. package/dist/components/glass/composite/repository-card-glass.d.ts +16 -0
  85. package/dist/components/glass/composite/repository-card-glass.d.ts.map +1 -0
  86. package/dist/components/glass/composite/repository-header-glass.d.ts +16 -0
  87. package/dist/components/glass/composite/repository-header-glass.d.ts.map +1 -0
  88. package/dist/components/glass/composite/repository-metadata-glass.d.ts +13 -0
  89. package/dist/components/glass/composite/repository-metadata-glass.d.ts.map +1 -0
  90. package/dist/components/glass/composite/split-layout-glass/index.d.ts +16 -0
  91. package/dist/components/glass/composite/split-layout-glass/index.d.ts.map +1 -0
  92. package/dist/components/glass/composite/split-layout-glass/split-layout-accordion.d.ts +66 -0
  93. package/dist/components/glass/composite/split-layout-glass/split-layout-accordion.d.ts.map +1 -0
  94. package/dist/components/glass/composite/split-layout-glass/split-layout-context.d.ts +122 -0
  95. package/dist/components/glass/composite/split-layout-glass/split-layout-context.d.ts.map +1 -0
  96. package/dist/components/glass/composite/split-layout-glass/split-layout-glass.d.ts +177 -0
  97. package/dist/components/glass/composite/split-layout-glass/split-layout-glass.d.ts.map +1 -0
  98. package/dist/components/glass/composite/trust-score-display-glass.d.ts +15 -0
  99. package/dist/components/glass/composite/trust-score-display-glass.d.ts.map +1 -0
  100. package/dist/components/glass/composite/user-info-glass.d.ts +15 -0
  101. package/dist/components/glass/composite/user-info-glass.d.ts.map +1 -0
  102. package/dist/components/glass/composite/user-stats-line-glass.d.ts +15 -0
  103. package/dist/components/glass/composite/user-stats-line-glass.d.ts.map +1 -0
  104. package/dist/components/glass/composite/year-card-glass.d.ts +53 -0
  105. package/dist/components/glass/composite/year-card-glass.d.ts.map +1 -0
  106. package/dist/components/glass/index.d.ts +16 -0
  107. package/dist/components/glass/index.d.ts.map +1 -0
  108. package/dist/components/glass/primitives/form-field-wrapper.d.ts +69 -0
  109. package/dist/components/glass/primitives/form-field-wrapper.d.ts.map +1 -0
  110. package/dist/components/glass/primitives/index.d.ts +12 -0
  111. package/dist/components/glass/primitives/index.d.ts.map +1 -0
  112. package/dist/components/glass/primitives/interactive-card.d.ts +91 -0
  113. package/dist/components/glass/primitives/interactive-card.d.ts.map +1 -0
  114. package/dist/components/glass/primitives/style-utils.d.ts +147 -0
  115. package/dist/components/glass/primitives/style-utils.d.ts.map +1 -0
  116. package/dist/components/glass/primitives/touch-target.d.ts +46 -0
  117. package/dist/components/glass/primitives/touch-target.d.ts.map +1 -0
  118. package/dist/components/glass/sections/career-stats-glass.d.ts +17 -0
  119. package/dist/components/glass/sections/career-stats-glass.d.ts.map +1 -0
  120. package/dist/components/glass/sections/flags-section-glass.d.ts +13 -0
  121. package/dist/components/glass/sections/flags-section-glass.d.ts.map +1 -0
  122. package/dist/components/glass/sections/header-branding-glass.d.ts +16 -0
  123. package/dist/components/glass/sections/header-branding-glass.d.ts.map +1 -0
  124. package/dist/components/glass/sections/header-nav-glass.d.ts +7 -0
  125. package/dist/components/glass/sections/header-nav-glass.d.ts.map +1 -0
  126. package/dist/components/glass/sections/index.d.ts +13 -0
  127. package/dist/components/glass/sections/index.d.ts.map +1 -0
  128. package/dist/components/glass/sections/profile-header-glass.d.ts +16 -0
  129. package/dist/components/glass/sections/profile-header-glass.d.ts.map +1 -0
  130. package/dist/components/glass/sections/projects-list-glass.d.ts +42 -0
  131. package/dist/components/glass/sections/projects-list-glass.d.ts.map +1 -0
  132. package/dist/components/glass/sections/trust-score-card-glass.d.ts +12 -0
  133. package/dist/components/glass/sections/trust-score-card-glass.d.ts.map +1 -0
  134. package/dist/components/glass/specialized/base-progress-glass.d.ts +8 -0
  135. package/dist/components/glass/specialized/base-progress-glass.d.ts.map +1 -0
  136. package/dist/components/glass/specialized/flag-alert-glass.d.ts +8 -0
  137. package/dist/components/glass/specialized/flag-alert-glass.d.ts.map +1 -0
  138. package/dist/components/glass/specialized/index.d.ts +21 -0
  139. package/dist/components/glass/specialized/index.d.ts.map +1 -0
  140. package/dist/components/glass/specialized/language-bar-glass.d.ts +24 -0
  141. package/dist/components/glass/specialized/language-bar-glass.d.ts.map +1 -0
  142. package/dist/components/glass/specialized/profile-avatar-glass.d.ts +26 -0
  143. package/dist/components/glass/specialized/profile-avatar-glass.d.ts.map +1 -0
  144. package/dist/components/glass/specialized/progress-glass.d.ts +9 -0
  145. package/dist/components/glass/specialized/progress-glass.d.ts.map +1 -0
  146. package/dist/components/glass/specialized/rainbow-progress-glass.d.ts +8 -0
  147. package/dist/components/glass/specialized/rainbow-progress-glass.d.ts.map +1 -0
  148. package/dist/components/glass/specialized/segmented-control-glass.d.ts +11 -0
  149. package/dist/components/glass/specialized/segmented-control-glass.d.ts.map +1 -0
  150. package/dist/components/glass/specialized/sparkline-glass.d.ts +34 -0
  151. package/dist/components/glass/specialized/sparkline-glass.d.ts.map +1 -0
  152. package/dist/components/glass/specialized/status-indicator-glass.d.ts +8 -0
  153. package/dist/components/glass/specialized/status-indicator-glass.d.ts.map +1 -0
  154. package/dist/components/glass/ui/alert-glass.d.ts +13 -0
  155. package/dist/components/glass/ui/alert-glass.d.ts.map +1 -0
  156. package/dist/components/glass/ui/avatar-glass.d.ts +58 -0
  157. package/dist/components/glass/ui/avatar-glass.d.ts.map +1 -0
  158. package/dist/components/glass/ui/badge-glass.d.ts +74 -0
  159. package/dist/components/glass/ui/badge-glass.d.ts.map +1 -0
  160. package/dist/components/glass/ui/button-glass.d.ts +110 -0
  161. package/dist/components/glass/ui/button-glass.d.ts.map +1 -0
  162. package/dist/components/glass/ui/card-glass.d.ts +115 -0
  163. package/dist/components/glass/ui/card-glass.d.ts.map +1 -0
  164. package/dist/components/glass/ui/checkbox-glass.d.ts +80 -0
  165. package/dist/components/glass/ui/checkbox-glass.d.ts.map +1 -0
  166. package/dist/components/glass/ui/circular-progress-glass.d.ts +36 -0
  167. package/dist/components/glass/ui/circular-progress-glass.d.ts.map +1 -0
  168. package/dist/components/glass/ui/combobox-glass.d.ts +61 -0
  169. package/dist/components/glass/ui/combobox-glass.d.ts.map +1 -0
  170. package/dist/components/glass/ui/dropdown-glass.d.ts +83 -0
  171. package/dist/components/glass/ui/dropdown-glass.d.ts.map +1 -0
  172. package/dist/components/glass/ui/dropdown-menu-glass.d.ts +77 -0
  173. package/dist/components/glass/ui/dropdown-menu-glass.d.ts.map +1 -0
  174. package/dist/components/glass/ui/glass-card.d.ts +78 -0
  175. package/dist/components/glass/ui/glass-card.d.ts.map +1 -0
  176. package/dist/components/glass/ui/index.d.ts +44 -0
  177. package/dist/components/glass/ui/index.d.ts.map +1 -0
  178. package/dist/components/glass/ui/input-glass.d.ts +98 -0
  179. package/dist/components/glass/ui/input-glass.d.ts.map +1 -0
  180. package/dist/components/glass/ui/modal-glass.d.ts +180 -0
  181. package/dist/components/glass/ui/modal-glass.d.ts.map +1 -0
  182. package/dist/components/glass/ui/notification-glass.d.ts +13 -0
  183. package/dist/components/glass/ui/notification-glass.d.ts.map +1 -0
  184. package/dist/components/glass/ui/popover-glass.d.ts +71 -0
  185. package/dist/components/glass/ui/popover-glass.d.ts.map +1 -0
  186. package/dist/components/glass/ui/sidebar-glass/index.d.ts +100 -0
  187. package/dist/components/glass/ui/sidebar-glass/index.d.ts.map +1 -0
  188. package/dist/components/glass/ui/sidebar-glass/sidebar-context.d.ts +96 -0
  189. package/dist/components/glass/ui/sidebar-glass/sidebar-context.d.ts.map +1 -0
  190. package/dist/components/glass/ui/sidebar-glass/sidebar-glass.d.ts +88 -0
  191. package/dist/components/glass/ui/sidebar-glass/sidebar-glass.d.ts.map +1 -0
  192. package/dist/components/glass/ui/sidebar-glass/sidebar-menu.d.ts +121 -0
  193. package/dist/components/glass/ui/sidebar-glass/sidebar-menu.d.ts.map +1 -0
  194. package/dist/components/glass/ui/skeleton-glass.d.ts +8 -0
  195. package/dist/components/glass/ui/skeleton-glass.d.ts.map +1 -0
  196. package/dist/components/glass/ui/slider-glass.d.ts +38 -0
  197. package/dist/components/glass/ui/slider-glass.d.ts.map +1 -0
  198. package/dist/components/glass/ui/stepper-glass.d.ts +63 -0
  199. package/dist/components/glass/ui/stepper-glass.d.ts.map +1 -0
  200. package/dist/components/glass/ui/tabs-glass.d.ts +149 -0
  201. package/dist/components/glass/ui/tabs-glass.d.ts.map +1 -0
  202. package/dist/components/glass/ui/toggle-glass.d.ts +27 -0
  203. package/dist/components/glass/ui/toggle-glass.d.ts.map +1 -0
  204. package/dist/components/glass/ui/tooltip-glass.d.ts +65 -0
  205. package/dist/components/glass/ui/tooltip-glass.d.ts.map +1 -0
  206. package/dist/components/ui/alert.d.ts +8 -0
  207. package/dist/components/ui/alert.d.ts.map +1 -0
  208. package/dist/components/ui/avatar.d.ts +7 -0
  209. package/dist/components/ui/avatar.d.ts.map +1 -0
  210. package/dist/components/ui/badge.d.ts +8 -0
  211. package/dist/components/ui/badge.d.ts.map +1 -0
  212. package/dist/components/ui/button.d.ts +8 -0
  213. package/dist/components/ui/button.d.ts.map +1 -0
  214. package/dist/components/ui/card.d.ts +10 -0
  215. package/dist/components/ui/card.d.ts.map +1 -0
  216. package/dist/components/ui/chart.d.ts +69 -0
  217. package/dist/components/ui/chart.d.ts.map +1 -0
  218. package/dist/components/ui/checkbox.d.ts +5 -0
  219. package/dist/components/ui/checkbox.d.ts.map +1 -0
  220. package/dist/components/ui/collapsible.d.ts +6 -0
  221. package/dist/components/ui/collapsible.d.ts.map +1 -0
  222. package/dist/components/ui/command.d.ts +19 -0
  223. package/dist/components/ui/command.d.ts.map +1 -0
  224. package/dist/components/ui/dialog.d.ts +16 -0
  225. package/dist/components/ui/dialog.d.ts.map +1 -0
  226. package/dist/components/ui/dropdown-menu.d.ts +26 -0
  227. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  228. package/dist/components/ui/input.d.ts +4 -0
  229. package/dist/components/ui/input.d.ts.map +1 -0
  230. package/dist/components/ui/popover.d.ts +8 -0
  231. package/dist/components/ui/popover.d.ts.map +1 -0
  232. package/dist/components/ui/progress.d.ts +5 -0
  233. package/dist/components/ui/progress.d.ts.map +1 -0
  234. package/dist/components/ui/scroll-area.d.ts +6 -0
  235. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  236. package/dist/components/ui/separator.d.ts +5 -0
  237. package/dist/components/ui/separator.d.ts.map +1 -0
  238. package/dist/components/ui/skeleton.d.ts +3 -0
  239. package/dist/components/ui/skeleton.d.ts.map +1 -0
  240. package/dist/components/ui/slider.d.ts +5 -0
  241. package/dist/components/ui/slider.d.ts.map +1 -0
  242. package/dist/components/ui/sonner.d.ts +4 -0
  243. package/dist/components/ui/sonner.d.ts.map +1 -0
  244. package/dist/components/ui/switch.d.ts +5 -0
  245. package/dist/components/ui/switch.d.ts.map +1 -0
  246. package/dist/components/ui/tabs.d.ts +8 -0
  247. package/dist/components/ui/tabs.d.ts.map +1 -0
  248. package/dist/components/ui/tooltip.d.ts +8 -0
  249. package/dist/components/ui/tooltip.d.ts.map +1 -0
  250. package/dist/components.cjs +4 -4
  251. package/dist/components.d.ts +56 -1932
  252. package/dist/components.d.ts.map +1 -0
  253. package/dist/components.mjs +5 -0
  254. package/dist/hooks.cjs +2 -2
  255. package/dist/hooks.d.ts +5 -225
  256. package/dist/hooks.d.ts.map +1 -0
  257. package/dist/{hooks.js → hooks.mjs} +2 -2
  258. package/dist/index.cjs +138 -1109
  259. package/dist/index.cjs.map +1 -1
  260. package/dist/index.d.ts +81 -1
  261. package/dist/index.d.ts.map +1 -0
  262. package/dist/{index.js → index.mjs} +116 -1115
  263. package/dist/index.mjs.map +1 -0
  264. package/dist/lib/config.d.ts +28 -0
  265. package/dist/lib/config.d.ts.map +1 -0
  266. package/dist/lib/hooks/index.d.ts +11 -0
  267. package/dist/lib/hooks/index.d.ts.map +1 -0
  268. package/dist/lib/hooks/use-focus.d.ts +61 -0
  269. package/dist/lib/hooks/use-focus.d.ts.map +1 -0
  270. package/dist/lib/hooks/use-hover.d.ts +54 -0
  271. package/dist/lib/hooks/use-hover.d.ts.map +1 -0
  272. package/dist/lib/hooks/use-responsive.d.ts +44 -0
  273. package/dist/lib/hooks/use-responsive.d.ts.map +1 -0
  274. package/dist/lib/hooks/use-wallpaper-tint.d.ts +57 -0
  275. package/dist/lib/hooks/use-wallpaper-tint.d.ts.map +1 -0
  276. package/dist/lib/hooks.d.ts +92 -0
  277. package/dist/lib/hooks.d.ts.map +1 -0
  278. package/dist/lib/theme/tokens.d.ts +441 -0
  279. package/dist/lib/theme/tokens.d.ts.map +1 -0
  280. package/dist/lib/theme-context.d.ts +115 -0
  281. package/dist/lib/theme-context.d.ts.map +1 -0
  282. package/dist/lib/types.d.ts +24 -0
  283. package/dist/lib/types.d.ts.map +1 -0
  284. package/dist/lib/utils.d.ts +8 -0
  285. package/dist/lib/utils.d.ts.map +1 -0
  286. package/dist/lib/variants/alert-glass-variants.d.ts +10 -0
  287. package/dist/lib/variants/alert-glass-variants.d.ts.map +1 -0
  288. package/dist/lib/variants/alert-variants.d.ts +8 -0
  289. package/dist/lib/variants/alert-variants.d.ts.map +1 -0
  290. package/dist/lib/variants/avatar-glass-variants.d.ts +12 -0
  291. package/dist/lib/variants/avatar-glass-variants.d.ts.map +1 -0
  292. package/dist/lib/variants/badge-glass-variants.d.ts +10 -0
  293. package/dist/lib/variants/badge-glass-variants.d.ts.map +1 -0
  294. package/dist/lib/variants/badge-variants.d.ts +8 -0
  295. package/dist/lib/variants/badge-variants.d.ts.map +1 -0
  296. package/dist/lib/variants/button-glass-variants.d.ts +29 -0
  297. package/dist/lib/variants/button-glass-variants.d.ts.map +1 -0
  298. package/dist/lib/variants/button-variants.d.ts +9 -0
  299. package/dist/lib/variants/button-variants.d.ts.map +1 -0
  300. package/dist/lib/variants/dropdown-content-styles.d.ts +102 -0
  301. package/dist/lib/variants/dropdown-content-styles.d.ts.map +1 -0
  302. package/dist/lib/variants/dropdown-glass-variants.d.ts +9 -0
  303. package/dist/lib/variants/dropdown-glass-variants.d.ts.map +1 -0
  304. package/dist/lib/variants/glass-card-variants.d.ts +13 -0
  305. package/dist/lib/variants/glass-card-variants.d.ts.map +1 -0
  306. package/dist/lib/variants/index.d.ts +26 -0
  307. package/dist/lib/variants/index.d.ts.map +1 -0
  308. package/dist/lib/variants/input-glass-variants.d.ts +9 -0
  309. package/dist/lib/variants/input-glass-variants.d.ts.map +1 -0
  310. package/dist/lib/variants/insight-card-glass-variants.d.ts +11 -0
  311. package/dist/lib/variants/insight-card-glass-variants.d.ts.map +1 -0
  312. package/dist/lib/variants/modal-glass-variants.d.ts +9 -0
  313. package/dist/lib/variants/modal-glass-variants.d.ts.map +1 -0
  314. package/dist/lib/variants/notification-glass-variants.d.ts +9 -0
  315. package/dist/lib/variants/notification-glass-variants.d.ts.map +1 -0
  316. package/dist/lib/variants/progress-glass-variants.d.ts +10 -0
  317. package/dist/lib/variants/progress-glass-variants.d.ts.map +1 -0
  318. package/dist/lib/variants/skeleton-glass-variants.d.ts +9 -0
  319. package/dist/lib/variants/skeleton-glass-variants.d.ts.map +1 -0
  320. package/dist/lib/variants/sparkline-glass-variants.d.ts +10 -0
  321. package/dist/lib/variants/sparkline-glass-variants.d.ts.map +1 -0
  322. package/dist/lib/variants/stepper-glass-variants.d.ts +40 -0
  323. package/dist/lib/variants/stepper-glass-variants.d.ts.map +1 -0
  324. package/dist/lib/variants/toggle-glass-variants.d.ts +26 -0
  325. package/dist/lib/variants/toggle-glass-variants.d.ts.map +1 -0
  326. package/dist/lib/variants/tooltip-glass-variants.d.ts +9 -0
  327. package/dist/lib/variants/tooltip-glass-variants.d.ts.map +1 -0
  328. package/dist/{theme-context-BEA8K_rq.cjs → theme-context-DBAPfMto.cjs} +2 -2
  329. package/dist/{theme-context-BEA8K_rq.cjs.map → theme-context-DBAPfMto.cjs.map} +1 -1
  330. package/dist/{theme-context-_T5r1KG4.js → theme-context-DLS2uAgJ.mjs} +1 -1
  331. package/dist/theme-context-DLS2uAgJ.mjs.map +1 -0
  332. package/dist/themes.cjs +1 -1
  333. package/dist/themes.d.ts +2 -124
  334. package/dist/themes.d.ts.map +1 -0
  335. package/dist/{themes.js → themes.mjs} +1 -1
  336. package/dist/trust-score-card-glass-BUt9MIF0.mjs +4197 -0
  337. package/dist/trust-score-card-glass-BUt9MIF0.mjs.map +1 -0
  338. package/dist/trust-score-card-glass-_v9hGnCW.cjs +4834 -0
  339. package/dist/trust-score-card-glass-_v9hGnCW.cjs.map +1 -0
  340. package/dist/{use-focus-CX0TJJIj.js → use-focus-C5kPAKr_.mjs} +1 -1
  341. package/dist/use-focus-C5kPAKr_.mjs.map +1 -0
  342. package/dist/{use-focus-CdoUzFQ8.cjs → use-focus-DBs46Dxv.cjs} +2 -2
  343. package/dist/{use-focus-CdoUzFQ8.cjs.map → use-focus-DBs46Dxv.cjs.map} +1 -1
  344. package/dist/{use-wallpaper-tint-DUgmytlY.js → use-wallpaper-tint-C0kYXNiN.mjs} +1 -1
  345. package/dist/use-wallpaper-tint-C0kYXNiN.mjs.map +1 -0
  346. package/dist/{use-wallpaper-tint-Rq5UgY9L.cjs → use-wallpaper-tint-DNdTbD1y.cjs} +2 -2
  347. package/dist/{use-wallpaper-tint-Rq5UgY9L.cjs.map → use-wallpaper-tint-DNdTbD1y.cjs.map} +1 -1
  348. package/dist/{utils-CcyeqpKQ.js → utils-B792GPM_.mjs} +1 -1
  349. package/dist/utils-B792GPM_.mjs.map +1 -0
  350. package/dist/{utils-NLnOCttr.cjs → utils-D5ef293O.cjs} +2 -2
  351. package/dist/{utils-NLnOCttr.cjs.map → utils-D5ef293O.cjs.map} +1 -1
  352. package/dist/utils.cjs +1 -1
  353. package/dist/utils.d.ts +2 -10
  354. package/dist/utils.d.ts.map +1 -0
  355. package/dist/utils.mjs +2 -0
  356. package/package.json +9 -9
  357. package/dist/cli/index.js.map +0 -1
  358. package/dist/components.js +0 -5
  359. package/dist/index.js.map +0 -1
  360. package/dist/theme-context-_T5r1KG4.js.map +0 -1
  361. package/dist/trust-score-card-glass-DTS1RdIt.cjs +0 -28660
  362. package/dist/trust-score-card-glass-DTS1RdIt.cjs.map +0 -1
  363. package/dist/trust-score-card-glass-Dg4_b_g_.js +0 -27660
  364. package/dist/trust-score-card-glass-Dg4_b_g_.js.map +0 -1
  365. package/dist/use-focus-CX0TJJIj.js.map +0 -1
  366. package/dist/use-wallpaper-tint-DUgmytlY.js.map +0 -1
  367. package/dist/utils-CcyeqpKQ.js.map +0 -1
  368. package/dist/utils.js +0 -2
package/CHANGELOG.md CHANGED
@@ -5,6 +5,57 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project
6
6
  adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.2.4] - 2025-12-19
9
+
10
+ ### Fixed
11
+
12
+ - **ES Module Build:** Removed CommonJS shims (`__require`, `__commonJS`) from ESM bundle
13
+ - Library now works in Vite/ESM environments without `optimizeDeps.include` workaround
14
+ - All runtime dependencies properly externalized (recharts, framer-motion, cmdk, sonner,
15
+ next-themes)
16
+ - Bundle size reduced: `index.mjs` 66KB (was 107KB), chunks 150KB (was 1MB)
17
+
18
+ ### Changed
19
+
20
+ - **File Extensions:** ESM files now use `.mjs`, CJS files use `.cjs` (following @radix-ui pattern)
21
+ - Entry points: `index.mjs`, `components.mjs`, `hooks.mjs`, `utils.mjs`, `themes.mjs`
22
+ - All chunks use matching extensions for consistent module resolution
23
+ - **Type Declarations:** Disabled `rollupTypes` in vite-plugin-dts to fix empty `index.d.ts`
24
+ - All 160 type declaration files now generated correctly
25
+ - Complex re-exports (`export *`, recharts re-export) now work properly
26
+
27
+ ### Technical Details
28
+
29
+ ```typescript
30
+ // Before (v2.2.3) - ESM bundle contained CommonJS shims
31
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : ...);
32
+ // ERROR in Vite: "require is not defined"
33
+
34
+ // After (v2.2.4) - Clean ESM imports
35
+ import { Bar, BarChart } from "recharts";
36
+ // Works without workarounds
37
+ ```
38
+
39
+ **Migration:** No breaking changes. Update to v2.2.4 and remove any `optimizeDeps.include`
40
+ workarounds from your Vite config.
41
+
42
+ ## [2.2.3] - 2025-12-19
43
+
44
+ ### Fixed
45
+
46
+ - **CardGlass exports:** Fixed missing CardGlass compound component exports from main library entry
47
+ point
48
+ - Added `CardGlass` object export with compound API (Root, Header, Title, Description, Action,
49
+ Content, Footer)
50
+ - Added all named exports for shadcn/ui compatibility (`CardGlassRoot`, `CardGlassHeader`, etc.)
51
+ - Added `CardGlassRootProps` type export
52
+ - Resolves [GitHub Issue #4](https://github.com/Yhooi2/shadcn-glass-ui-library/issues/4)
53
+
54
+ ### Changed
55
+
56
+ - Updated component count from 57 to 59 in all documentation (package.json, README, context7.json,
57
+ CLAUDE.md)
58
+
8
59
  ## [2.1.1] - 2025-12-14
9
60
 
10
61
  ### 🐛 Bug Fixes
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Info Command
3
+ *
4
+ * Shows detailed information about a specific component.
5
+ *
6
+ * Usage:
7
+ * npx shadcn-glass-ui info ButtonGlass
8
+ * npx shadcn-glass-ui info button
9
+ * npx shadcn-glass-ui info btn
10
+ */
11
+ /**
12
+ * Execute the info command
13
+ */
14
+ export declare function showComponentInfo(query: string): Promise<void>;
15
+ //# sourceMappingURL=info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoLH;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BpE"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * List Command
3
+ *
4
+ * Lists all available components, optionally filtered by category.
5
+ *
6
+ * Usage:
7
+ * npx shadcn-glass-ui list
8
+ * npx shadcn-glass-ui list --category=core
9
+ * npx shadcn-glass-ui list --level=1
10
+ */
11
+ export interface ListOptions {
12
+ category?: string;
13
+ level?: string;
14
+ }
15
+ /**
16
+ * Execute the list command
17
+ */
18
+ export declare function listComponents(options?: ListOptions): Promise<void>;
19
+ /**
20
+ * Print available categories for help
21
+ */
22
+ export declare function printAvailableCategories(): void;
23
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA8DH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4D7E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAS/C"}
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- const require_trust_score_card_glass = require("../trust-score-card-glass-DTS1RdIt.cjs");
2
+ const require_trust_score_card_glass = require("../trust-score-card-glass-_v9hGnCW.cjs");
3
3
  let node_util = require("node:util");
4
4
  let node_fs = require("node:fs");
5
5
  let node_path = require("node:path");
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}
@@ -466,4 +466,4 @@ main().catch((error) => {
466
466
  process.exit(1);
467
467
  });
468
468
 
469
- //# sourceMappingURL=index.js.map
469
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["cachedExportsMap: ExportsMap | null","components: Array<{\n name: string;\n path: string;\n category: string;\n level: number;\n }>","categories: Array<{\n key: string;\n level: number;\n description: string;\n count: number;\n }>","matrix: number[][]","CATEGORY_EMOJI: Record<string, string>","props: string[]","flags: string[]","config: ParseArgsConfig"],"sources":["../../src/cli/utils/load-exports.ts","../../src/cli/utils/fuzzy-search.ts","../../src/cli/utils/format.ts","../../src/cli/commands/info.ts","../../src/cli/commands/list.ts","../../src/cli/index.ts"],"sourcesContent":["/**\n * Load EXPORTS_MAP.json Utility\n *\n * Loads the machine-readable component registry from docs/EXPORTS_MAP.json.\n * Handles multiple paths for development vs published package scenarios.\n */\n\nimport { readFileSync } from 'node:fs';\nimport { resolve, dirname } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\n// ========================================\n// TYPES\n// ========================================\n\nexport interface ComponentExport {\n name: string;\n path: string;\n type: string;\n description: string;\n props?: string;\n variants?: string[];\n sizes?: string[];\n statuses?: string[];\n category?: string;\n keywords?: string[];\n shadcnCompatible?: boolean;\n compoundAPI?: boolean;\n subComponents?: string[];\n supportsAsChild?: boolean;\n contains?: string[];\n}\n\nexport interface CategoryData {\n level?: number;\n description: string;\n exports: ComponentExport[];\n}\n\nexport interface ExportsMap {\n $schema: string;\n title: string;\n description: string;\n version: string;\n library: string;\n repository: string;\n lastUpdated: string;\n components: Record<string, CategoryData>;\n utilities: {\n exports: Array<{\n name: string;\n path: string;\n type: string;\n description: string;\n signature?: string;\n }>;\n };\n theme: {\n exports: Array<{\n name: string;\n path: string;\n type: string;\n description: string;\n }>;\n };\n hooks: {\n exports: Array<{\n name: string;\n path: string;\n type: string;\n description: string;\n signature?: string;\n }>;\n };\n types: {\n exports: Array<{\n name: string;\n path: string;\n type: string;\n description: string;\n }>;\n };\n variants: {\n exports: Array<{\n name: string;\n path: string;\n type: string;\n description: string;\n }>;\n };\n statistics: {\n totalComponents: number;\n byLevel: Record<string, number>;\n };\n compatibility: {\n shadcnUI: {\n version: string;\n compatibleComponents: string[];\n };\n breakingChanges: Array<{\n version: string;\n changes: string[];\n }>;\n };\n usage: {\n mostCommon: string[];\n useCases: Record<string, string[]>;\n };\n}\n\n// ========================================\n// LOADER\n// ========================================\n\nlet cachedExportsMap: ExportsMap | null = null;\n\n/**\n * Load EXPORTS_MAP.json from various possible locations\n */\nexport function loadExportsMap(): ExportsMap {\n if (cachedExportsMap) {\n return cachedExportsMap;\n }\n\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n // Possible paths to EXPORTS_MAP.json\n // Order: development paths first, then published package paths\n const paths = [\n // Development: running from src/cli/utils/\n resolve(__dirname, '../../../docs/EXPORTS_MAP.json'),\n // Development: running from dist/cli/utils/\n resolve(__dirname, '../../../docs/EXPORTS_MAP.json'),\n // Published package: when installed in node_modules\n resolve(process.cwd(), 'node_modules/shadcn-glass-ui/docs/EXPORTS_MAP.json'),\n // Fallback: relative to cwd\n resolve(process.cwd(), 'docs/EXPORTS_MAP.json'),\n ];\n\n for (const path of paths) {\n try {\n const content = readFileSync(path, 'utf-8');\n cachedExportsMap = JSON.parse(content) as ExportsMap;\n return cachedExportsMap;\n } catch {\n // Try next path\n continue;\n }\n }\n\n throw new Error(\n 'EXPORTS_MAP.json not found. Please ensure:\\n' +\n ' - You are running from the project root, or\\n' +\n ' - The shadcn-glass-ui package is installed correctly'\n );\n}\n\n/**\n * Get all components as a flat array\n */\nexport function getAllComponents(): Array<{\n name: string;\n path: string;\n category: string;\n level: number;\n}> {\n const exportsMap = loadExportsMap();\n const components: Array<{\n name: string;\n path: string;\n category: string;\n level: number;\n }> = [];\n\n for (const [categoryKey, categoryData] of Object.entries(exportsMap.components)) {\n if (categoryData.exports) {\n for (const exp of categoryData.exports) {\n components.push({\n name: exp.name,\n path: exp.path,\n category: categoryKey,\n level: categoryData.level ?? 0,\n });\n }\n }\n }\n\n return components;\n}\n\n/**\n * Find component details by name\n */\nexport function findComponentByName(name: string): {\n component: ComponentExport;\n category: string;\n level: number;\n} | null {\n const exportsMap = loadExportsMap();\n\n for (const [categoryKey, categoryData] of Object.entries(exportsMap.components)) {\n if (categoryData.exports) {\n const found = categoryData.exports.find((exp) => exp.name === name);\n if (found) {\n return {\n component: found,\n category: categoryKey,\n level: categoryData.level ?? 0,\n };\n }\n }\n }\n\n return null;\n}\n\n/**\n * Get components by category\n */\nexport function getComponentsByCategory(category: string): ComponentExport[] {\n const exportsMap = loadExportsMap();\n const categoryData = exportsMap.components[category];\n\n if (!categoryData || !categoryData.exports) {\n return [];\n }\n\n return categoryData.exports;\n}\n\n/**\n * Get all categories with metadata\n */\nexport function getCategories(): Array<{\n key: string;\n level: number;\n description: string;\n count: number;\n}> {\n const exportsMap = loadExportsMap();\n const categories: Array<{\n key: string;\n level: number;\n description: string;\n count: number;\n }> = [];\n\n for (const [key, data] of Object.entries(exportsMap.components)) {\n categories.push({\n key,\n level: data.level ?? 0,\n description: data.description,\n count: data.exports?.length ?? 0,\n });\n }\n\n return categories.sort((a, b) => a.level - b.level);\n}\n\n/**\n * Get library statistics\n */\nexport function getStatistics(): {\n totalComponents: number;\n byLevel: Record<string, number>;\n version: string;\n} {\n const exportsMap = loadExportsMap();\n\n return {\n totalComponents: exportsMap.statistics.totalComponents,\n byLevel: exportsMap.statistics.byLevel,\n version: exportsMap.version,\n };\n}\n","/**\n * Fuzzy Search Utility\n *\n * Provides fuzzy matching for component names.\n * Supports various input formats:\n * - Exact: ButtonGlass\n * - Lowercase: buttonglass, button\n * - Kebab-case: button-glass\n * - Partial: btn, badge\n * - Typos: buton (Levenshtein distance)\n */\n\n// ========================================\n// TYPES\n// ========================================\n\nexport interface ComponentMatch {\n name: string;\n path: string;\n category: string;\n level: number;\n score: number;\n}\n\nexport interface SearchableComponent {\n name: string;\n path: string;\n category: string;\n level: number;\n}\n\n// ========================================\n// NORMALIZATION\n// ========================================\n\n/**\n * Normalize a search query for comparison\n *\n * Transforms:\n * - \"ButtonGlass\" -> \"button\"\n * - \"button-glass\" -> \"buttonglass\"\n * - \"BUTTON\" -> \"button\"\n */\nexport function normalizeQuery(query: string): string {\n return query\n .toLowerCase()\n .replace(/glass$/i, '') // Remove \"Glass\" suffix\n .replace(/-/g, '') // Remove hyphens\n .replace(/_/g, '') // Remove underscores\n .trim();\n}\n\n/**\n * Normalize component name for comparison\n */\nexport function normalizeComponentName(name: string): string {\n return name\n .toLowerCase()\n .replace(/glass$/i, '')\n .replace(/-/g, '')\n .replace(/_/g, '');\n}\n\n// ========================================\n// SCORING\n// ========================================\n\n/**\n * Calculate Levenshtein distance between two strings\n */\nexport function levenshteinDistance(a: string, b: string): number {\n const matrix: number[][] = [];\n\n // Initialize first column\n for (let i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n\n // Initialize first row\n for (let j = 0; j <= a.length; j++) {\n matrix[0][j] = j;\n }\n\n // Fill in the rest of the matrix\n for (let i = 1; i <= b.length; i++) {\n for (let j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n } else {\n matrix[i][j] = Math.min(\n matrix[i - 1][j - 1] + 1, // substitution\n matrix[i][j - 1] + 1, // insertion\n matrix[i - 1][j] + 1 // deletion\n );\n }\n }\n }\n\n return matrix[b.length][a.length];\n}\n\n/**\n * Calculate match score for a component\n *\n * Scoring:\n * - 100: Exact match (normalized)\n * - 80: Starts with query\n * - 60: Contains query\n * - 40-20: Small Levenshtein distance (typo tolerance)\n * - 0: No match\n */\nexport function calculateMatchScore(query: string, componentName: string): number {\n const normalizedQuery = normalizeQuery(query);\n const normalizedName = normalizeComponentName(componentName);\n\n // Exact match (normalized)\n if (normalizedName === normalizedQuery) {\n return 100;\n }\n\n // Exact match with original name (case-insensitive)\n if (componentName.toLowerCase() === query.toLowerCase()) {\n return 100;\n }\n\n // Starts with query\n if (normalizedName.startsWith(normalizedQuery)) {\n return 80;\n }\n\n // Contains query\n if (normalizedName.includes(normalizedQuery)) {\n return 60;\n }\n\n // Levenshtein distance for typo tolerance\n const distance = levenshteinDistance(normalizedQuery, normalizedName);\n\n // Allow up to 2 character differences for short queries\n // and up to 3 for longer queries\n const maxDistance = normalizedQuery.length <= 4 ? 2 : 3;\n\n if (distance <= maxDistance) {\n // Score decreases with distance: 40 for 1, 30 for 2, 20 for 3\n return Math.max(20, 50 - distance * 10);\n }\n\n return 0;\n}\n\n// ========================================\n// FUZZY MATCHING\n// ========================================\n\n/**\n * Find components matching a query with fuzzy search\n *\n * @param query - Search query (e.g., \"button\", \"ButtonGlass\", \"btn\")\n * @param components - Array of searchable components\n * @returns Sorted array of matches with scores\n */\nexport function fuzzyMatch(query: string, components: SearchableComponent[]): ComponentMatch[] {\n if (!query || query.trim().length === 0) {\n return [];\n }\n\n const matches = components\n .map((comp) => ({\n ...comp,\n score: calculateMatchScore(query, comp.name),\n }))\n .filter((match) => match.score > 0)\n .sort((a, b) => {\n // Primary sort by score (descending)\n if (b.score !== a.score) {\n return b.score - a.score;\n }\n // Secondary sort by level (ascending - core components first)\n if (a.level !== b.level) {\n return a.level - b.level;\n }\n // Tertiary sort by name (alphabetical)\n return a.name.localeCompare(b.name);\n });\n\n return matches;\n}\n\n/**\n * Find the best matching component\n *\n * @param query - Search query\n * @param components - Array of searchable components\n * @returns Best match or null\n */\nexport function findBestMatch(\n query: string,\n components: SearchableComponent[]\n): ComponentMatch | null {\n const matches = fuzzyMatch(query, components);\n return matches.length > 0 ? matches[0] : null;\n}\n\n/**\n * Check if a query has any matches\n */\nexport function hasMatch(query: string, components: SearchableComponent[]): boolean {\n return fuzzyMatch(query, components).length > 0;\n}\n","/**\n * CLI Output Formatting Utilities\n *\n * ANSI color codes and formatting helpers for CLI output.\n * Zero dependencies - uses built-in escape sequences.\n */\n\nexport const COLORS = {\n reset: '\\x1b[0m',\n bold: '\\x1b[1m',\n dim: '\\x1b[2m',\n italic: '\\x1b[3m',\n underline: '\\x1b[4m',\n\n // Foreground colors\n black: '\\x1b[30m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n magenta: '\\x1b[35m',\n cyan: '\\x1b[36m',\n white: '\\x1b[37m',\n\n // Bright foreground colors\n brightRed: '\\x1b[91m',\n brightGreen: '\\x1b[92m',\n brightYellow: '\\x1b[93m',\n brightBlue: '\\x1b[94m',\n brightMagenta: '\\x1b[95m',\n brightCyan: '\\x1b[96m',\n} as const;\n\n/**\n * Category emoji mapping\n */\nexport const CATEGORY_EMOJI: Record<string, string> = {\n primitives: '🧱',\n core: '⚙️',\n atomic: '🔹',\n specialized: '🎯',\n composite: '🧩',\n sections: '📄',\n};\n\n/**\n * Apply color to text\n */\nexport function color(text: string, colorCode: string): string {\n return `${colorCode}${text}${COLORS.reset}`;\n}\n\n/**\n * Bold text\n */\nexport function bold(text: string): string {\n return `${COLORS.bold}${text}${COLORS.reset}`;\n}\n\n/**\n * Dim text\n */\nexport function dim(text: string): string {\n return `${COLORS.dim}${text}${COLORS.reset}`;\n}\n\n/**\n * Create a horizontal line\n */\nexport function line(length: number = 50): string {\n return dim('─'.repeat(length));\n}\n\n/**\n * Success message with green checkmark\n */\nexport function success(text: string): string {\n return `${COLORS.green}✓${COLORS.reset} ${text}`;\n}\n\n/**\n * Error message with red X\n */\nexport function error(text: string): string {\n return `${COLORS.red}✗${COLORS.reset} ${text}`;\n}\n\n/**\n * Warning message with yellow triangle\n */\nexport function warning(text: string): string {\n return `${COLORS.yellow}⚠${COLORS.reset} ${text}`;\n}\n\n/**\n * Info message with blue circle\n */\nexport function info(text: string): string {\n return `${COLORS.cyan}ℹ${COLORS.reset} ${text}`;\n}\n\n/**\n * Bullet point\n */\nexport function bullet(text: string, colorCode: string = COLORS.cyan): string {\n return ` ${colorCode}•${COLORS.reset} ${text}`;\n}\n\n/**\n * Print a section header\n */\nexport function sectionHeader(title: string): string {\n return `\\n${COLORS.bold}${title}:${COLORS.reset}`;\n}\n\n/**\n * Format key-value pair\n */\nexport function keyValue(key: string, value: string, keyWidth: number = 12): string {\n const paddedKey = key.padEnd(keyWidth);\n return `${COLORS.bold}${paddedKey}${COLORS.reset} ${value}`;\n}\n","/**\n * Info Command\n *\n * Shows detailed information about a specific component.\n *\n * Usage:\n * npx shadcn-glass-ui info ButtonGlass\n * npx shadcn-glass-ui info button\n * npx shadcn-glass-ui info btn\n */\n\nimport {\n getAllComponents,\n findComponentByName,\n type ComponentExport,\n} from '../utils/load-exports.js';\nimport { fuzzyMatch, type ComponentMatch } from '../utils/fuzzy-search.js';\nimport {\n COLORS,\n bold,\n dim,\n line,\n success,\n bullet,\n sectionHeader,\n keyValue,\n color,\n} from '../utils/format.js';\n\n// ========================================\n// USAGE EXAMPLE GENERATOR\n// ========================================\n\n/**\n * Generate a usage example for a component\n */\nfunction generateUsageExample(comp: ComponentExport): string {\n const name = comp.name;\n\n // Compound component API\n if (comp.compoundAPI && comp.subComponents && comp.subComponents.length > 0) {\n const subComps = comp.subComponents;\n const contentComp = subComps.find((s) => s.includes('Content')) || subComps[1] || subComps[0];\n\n return `<${name}.Root>\n <${name}.${contentComp}>\n {/* Content here */}\n </${name}.${contentComp}>\n</${name}.Root>`;\n }\n\n // Regular component with props\n const props: string[] = [];\n\n if (comp.variants && comp.variants.length > 0) {\n props.push(`variant=\"${comp.variants[0]}\"`);\n }\n\n if (comp.sizes && comp.sizes.length > 0) {\n props.push(`size=\"${comp.sizes[0]}\"`);\n }\n\n const propsStr = props.length > 0 ? ' ' + props.join(' ') : '';\n\n // Self-closing for certain component types\n const selfClosing = [\n 'Avatar',\n 'Progress',\n 'Skeleton',\n 'Slider',\n 'Checkbox',\n 'Toggle',\n 'Input',\n ].some((type) => name.includes(type));\n\n if (selfClosing) {\n return `<${name}${propsStr} />`;\n }\n\n return `<${name}${propsStr}>\n {/* Content here */}\n</${name}>`;\n}\n\n// ========================================\n// INFO PRINTER\n// ========================================\n\n/**\n * Print detailed component information\n */\nfunction printComponentInfo(\n comp: ComponentExport,\n category: string,\n level: number,\n alternativeMatches: ComponentMatch[]\n): void {\n // Header\n console.log(`\\n${color(bold(comp.name), COLORS.cyan)}`);\n console.log(line(50));\n\n // Show alternative matches if there are multiple\n if (alternativeMatches.length > 1) {\n console.log(dim(`Found ${alternativeMatches.length} matches. Showing best match.`));\n if (alternativeMatches.length <= 5) {\n const others = alternativeMatches\n .slice(1)\n .map((m) => m.name)\n .join(', ');\n console.log(dim(`Other matches: ${others}`));\n }\n console.log('');\n }\n\n // Description\n console.log(sectionHeader('Description'));\n console.log(` ${comp.description}`);\n console.log('');\n\n // Metadata\n console.log(keyValue('Category:', category));\n console.log(keyValue('Level:', `L${level}`));\n console.log(keyValue('Type:', comp.type));\n console.log(keyValue('Path:', comp.path));\n\n if (comp.props) {\n console.log(keyValue('Props:', comp.props));\n }\n\n // Variants\n if (comp.variants && comp.variants.length > 0) {\n console.log(sectionHeader('Variants'));\n comp.variants.forEach((v) => {\n console.log(bullet(v, COLORS.green));\n });\n }\n\n // Sizes\n if (comp.sizes && comp.sizes.length > 0) {\n console.log(sectionHeader('Sizes'));\n comp.sizes.forEach((s) => {\n console.log(bullet(s, COLORS.yellow));\n });\n }\n\n // Statuses (for Avatar, etc.)\n if (comp.statuses && comp.statuses.length > 0) {\n console.log(sectionHeader('Statuses'));\n comp.statuses.forEach((s) => {\n console.log(bullet(s, COLORS.blue));\n });\n }\n\n // Features\n console.log('');\n if (comp.shadcnCompatible) {\n console.log(success('shadcn/ui compatible'));\n }\n if (comp.compoundAPI) {\n console.log(success('Compound component API'));\n if (comp.subComponents && comp.subComponents.length > 0) {\n console.log(dim(` Sub-components: ${comp.subComponents.join(', ')}`));\n }\n }\n if (comp.supportsAsChild) {\n console.log(success('Supports asChild pattern'));\n }\n\n // Usage Example\n console.log(sectionHeader('Usage Example'));\n console.log(line(21));\n console.log('');\n console.log(color(`import { ${comp.name} } from 'shadcn-glass-ui';`, COLORS.cyan));\n console.log('');\n console.log(generateUsageExample(comp));\n\n // Keywords\n if (comp.keywords && comp.keywords.length > 0) {\n console.log('');\n console.log(dim(`Keywords: ${comp.keywords.join(', ')}`));\n }\n\n console.log('');\n}\n\n// ========================================\n// MAIN COMMAND\n// ========================================\n\n/**\n * Execute the info command\n */\nexport async function showComponentInfo(query: string): Promise<void> {\n // Load all components\n const allComponents = getAllComponents();\n\n // Fuzzy search\n const matches = fuzzyMatch(query, allComponents);\n\n if (matches.length === 0) {\n console.log(`\\n${color('No component found matching', COLORS.red)} \"${query}\"`);\n console.log(dim('\\nTry one of these:'));\n console.log(dim(' npx shadcn-glass-ui list'));\n console.log(dim(' npx shadcn-glass-ui info button'));\n console.log(dim(' npx shadcn-glass-ui info modal'));\n console.log('');\n process.exit(1);\n }\n\n // Get best match details\n const bestMatch = matches[0];\n const details = findComponentByName(bestMatch.name);\n\n if (!details) {\n console.log(`\\n${color('Component details not found for', COLORS.red)} \"${bestMatch.name}\"`);\n process.exit(1);\n }\n\n // Print info\n printComponentInfo(details.component, details.category, details.level, matches);\n}\n","/**\n * List Command\n *\n * Lists all available components, optionally filtered by category.\n *\n * Usage:\n * npx shadcn-glass-ui list\n * npx shadcn-glass-ui list --category=core\n * npx shadcn-glass-ui list --level=1\n */\n\nimport {\n loadExportsMap,\n getCategories,\n getStatistics,\n type ComponentExport,\n} from '../utils/load-exports.js';\nimport { COLORS, CATEGORY_EMOJI, bold, dim, line, color } from '../utils/format.js';\n\n// ========================================\n// COMPONENT PRINTER\n// ========================================\n\n/**\n * Print a single component entry\n */\nfunction printComponent(comp: ComponentExport): void {\n const flags: string[] = [];\n\n if (comp.shadcnCompatible) {\n flags.push(color('shadcn', COLORS.green));\n }\n if (comp.compoundAPI) {\n flags.push(color('compound', COLORS.yellow));\n }\n if (comp.supportsAsChild) {\n flags.push(color('asChild', COLORS.magenta));\n }\n\n const flagStr = flags.length > 0 ? ` [${flags.join(', ')}]` : '';\n\n console.log(` ${color('•', COLORS.cyan)} ${comp.name}${flagStr}`);\n}\n\n/**\n * Print a category section\n */\nfunction printCategory(\n key: string,\n level: number,\n description: string,\n components: ComponentExport[]\n): void {\n const emoji = CATEGORY_EMOJI[key] || '📦';\n const levelStr = `L${level}`;\n\n console.log(`${emoji} ${bold(key.toUpperCase())} ${dim(`(${levelStr})`)}`);\n console.log(` ${dim(description)}`);\n console.log('');\n\n for (const comp of components) {\n printComponent(comp);\n }\n\n console.log('');\n}\n\n// ========================================\n// MAIN COMMAND\n// ========================================\n\nexport interface ListOptions {\n category?: string;\n level?: string;\n}\n\n/**\n * Execute the list command\n */\nexport async function listComponents(options: ListOptions = {}): Promise<void> {\n const exportsMap = loadExportsMap();\n const categories = getCategories();\n const stats = getStatistics();\n\n // Header\n console.log(`\\n${color(bold('shadcn-glass-ui Components'), COLORS.cyan)}`);\n console.log(`${dim(`Version ${stats.version}`)}`);\n console.log(line(50));\n console.log('');\n\n let totalCount = 0;\n let filteredCount = 0;\n\n // Filter options\n const categoryFilter = options.category?.toLowerCase();\n const levelFilter = options.level !== undefined ? parseInt(options.level, 10) : undefined;\n\n for (const cat of categories) {\n const categoryData = exportsMap.components[cat.key];\n\n if (!categoryData || !categoryData.exports || categoryData.exports.length === 0) {\n continue;\n }\n\n // Apply category filter\n if (categoryFilter && cat.key.toLowerCase() !== categoryFilter) {\n totalCount += categoryData.exports.length;\n continue;\n }\n\n // Apply level filter\n if (levelFilter !== undefined && cat.level !== levelFilter) {\n totalCount += categoryData.exports.length;\n continue;\n }\n\n printCategory(cat.key, cat.level, cat.description, categoryData.exports);\n\n totalCount += categoryData.exports.length;\n filteredCount += categoryData.exports.length;\n }\n\n // Footer\n console.log(line(21));\n\n if (categoryFilter || levelFilter !== undefined) {\n console.log(`${bold(`Showing: ${filteredCount}`)} ${dim(`of ${totalCount} total components`)}`);\n } else {\n console.log(`${bold(`Total: ${totalCount} components`)}`);\n }\n\n // Help hints\n console.log('');\n if (!categoryFilter && levelFilter === undefined) {\n console.log(dim('Filter by category: npx shadcn-glass-ui list --category=core'));\n console.log(dim('Filter by level: npx shadcn-glass-ui list --level=1'));\n }\n console.log(dim('Get component info: npx shadcn-glass-ui info <name>'));\n console.log('');\n}\n\n/**\n * Print available categories for help\n */\nexport function printAvailableCategories(): void {\n const categories = getCategories();\n\n console.log('\\nAvailable categories:');\n for (const cat of categories) {\n const emoji = CATEGORY_EMOJI[cat.key] || '📦';\n console.log(` ${emoji} ${cat.key} (L${cat.level}) - ${cat.count} components`);\n }\n console.log('');\n}\n","#!/usr/bin/env node\n/**\n * shadcn-glass-ui CLI\n *\n * Command-line interface for the shadcn-glass-ui component library.\n *\n * Commands:\n * info <name> Show detailed component information\n * list List all available components\n *\n * Usage:\n * npx shadcn-glass-ui info ButtonGlass\n * npx shadcn-glass-ui info button\n * npx shadcn-glass-ui list\n * npx shadcn-glass-ui list --category=core\n */\n\nimport { parseArgs, type ParseArgsConfig } from 'node:util';\nimport { readFileSync } from 'node:fs';\nimport { resolve, dirname } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport { showComponentInfo } from './commands/info.js';\nimport { listComponents, printAvailableCategories } from './commands/list.js';\nimport { COLORS, bold, dim, color } from './utils/format.js';\n\n// ========================================\n// VERSION\n// ========================================\n\n/**\n * Get package version\n */\nfunction getVersion(): string {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = dirname(__filename);\n\n // Try to read package.json from various locations\n const paths = [\n resolve(__dirname, '../../package.json'), // From dist/cli/\n resolve(__dirname, '../../../package.json'), // From src/cli/\n resolve(process.cwd(), 'package.json'), // From cwd\n resolve(process.cwd(), 'node_modules/shadcn-glass-ui/package.json'), // From installed\n ];\n\n for (const path of paths) {\n try {\n const pkg = JSON.parse(readFileSync(path, 'utf-8'));\n if (pkg.name === 'shadcn-glass-ui') {\n return pkg.version;\n }\n } catch {\n continue;\n }\n }\n\n return 'unknown';\n}\n\n// ========================================\n// HELP\n// ========================================\n\n/**\n * Print help message\n */\nfunction printHelp(): void {\n console.log(`\n${color(bold('shadcn-glass-ui'), COLORS.cyan)} - Glassmorphism UI Component Library\n\n${bold('Usage:')}\n npx shadcn-glass-ui <command> [options]\n\n${bold('Commands:')}\n info <name> Show detailed component information\n list List all available components\n\n${bold('Options:')}\n --help, -h Show this help message\n --version, -v Show version number\n --category Filter list by category (e.g., --category=core)\n --level Filter list by level (e.g., --level=1)\n\n${bold('Examples:')}\n ${dim('# Get info about a component (fuzzy search supported)')}\n npx shadcn-glass-ui info ButtonGlass\n npx shadcn-glass-ui info button\n npx shadcn-glass-ui info modal\n\n ${dim('# List all components')}\n npx shadcn-glass-ui list\n\n ${dim('# List components by category')}\n npx shadcn-glass-ui list --category=core\n npx shadcn-glass-ui list --category=composite\n\n ${dim('# List components by level')}\n npx shadcn-glass-ui list --level=1\n\n${bold('Categories:')}\n primitives (L0) Foundation building blocks\n core (L1) Basic interactive components\n atomic (L2) Small specialized components\n specialized (L3) Domain-specific components\n composite (L4) Multi-element widgets\n sections (L5) Full page sections\n\n${bold('More info:')}\n Documentation: https://yhooi2.github.io/shadcn-glass-ui-library/\n Repository: https://github.com/Yhooi2/shadcn-glass-ui-library\n`);\n}\n\n// ========================================\n// MAIN\n// ========================================\n\n/**\n * Parse command line arguments\n */\nfunction parseCliArgs(): {\n command: string | undefined;\n args: string[];\n options: {\n help: boolean;\n version: boolean;\n category?: string;\n level?: string;\n };\n} {\n const config: ParseArgsConfig = {\n allowPositionals: true,\n strict: false,\n options: {\n help: { type: 'boolean', short: 'h', default: false },\n version: { type: 'boolean', short: 'v', default: false },\n category: { type: 'string' },\n level: { type: 'string' },\n },\n };\n\n try {\n const { values, positionals } = parseArgs(config);\n const [command, ...args] = positionals;\n\n return {\n command,\n args,\n options: {\n help: values.help as boolean,\n version: values.version as boolean,\n category: values.category as string | undefined,\n level: values.level as string | undefined,\n },\n };\n } catch (error) {\n // Handle unknown options gracefully\n if (error instanceof Error && error.message.includes('Unknown option')) {\n console.error(`${color('Error:', COLORS.red)} ${error.message}`);\n console.log(dim('\\nRun \"npx shadcn-glass-ui --help\" for usage information.'));\n process.exit(1);\n }\n throw error;\n }\n}\n\n/**\n * Main CLI entry point\n */\nasync function main(): Promise<void> {\n const { command, args, options } = parseCliArgs();\n\n // Handle global options\n if (options.version) {\n console.log(getVersion());\n process.exit(0);\n }\n\n if (options.help || !command) {\n printHelp();\n process.exit(0);\n }\n\n // Handle commands\n switch (command.toLowerCase()) {\n case 'info': {\n if (args.length === 0) {\n console.error(`${color('Error:', COLORS.red)} Component name required`);\n console.log(dim('\\nUsage: npx shadcn-glass-ui info <ComponentName>'));\n console.log(dim('Example: npx shadcn-glass-ui info ButtonGlass'));\n process.exit(1);\n }\n await showComponentInfo(args[0]);\n break;\n }\n\n case 'list': {\n await listComponents({\n category: options.category,\n level: options.level,\n });\n break;\n }\n\n case 'categories': {\n printAvailableCategories();\n break;\n }\n\n default: {\n console.error(`${color('Error:', COLORS.red)} Unknown command \"${command}\"`);\n console.log(dim('\\nAvailable commands: info, list'));\n console.log(dim('Run \"npx shadcn-glass-ui --help\" for usage information.'));\n process.exit(1);\n }\n }\n}\n\n// Run CLI\nmain().catch((error) => {\n console.error(`${color('Error:', COLORS.red)} ${error.message}`);\n if (process.env.DEBUG) {\n console.error(error.stack);\n }\n process.exit(1);\n});\n"],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * CLI Output Formatting Utilities
3
+ *
4
+ * ANSI color codes and formatting helpers for CLI output.
5
+ * Zero dependencies - uses built-in escape sequences.
6
+ */
7
+ export declare const COLORS: {
8
+ readonly reset: "\u001B[0m";
9
+ readonly bold: "\u001B[1m";
10
+ readonly dim: "\u001B[2m";
11
+ readonly italic: "\u001B[3m";
12
+ readonly underline: "\u001B[4m";
13
+ readonly black: "\u001B[30m";
14
+ readonly red: "\u001B[31m";
15
+ readonly green: "\u001B[32m";
16
+ readonly yellow: "\u001B[33m";
17
+ readonly blue: "\u001B[34m";
18
+ readonly magenta: "\u001B[35m";
19
+ readonly cyan: "\u001B[36m";
20
+ readonly white: "\u001B[37m";
21
+ readonly brightRed: "\u001B[91m";
22
+ readonly brightGreen: "\u001B[92m";
23
+ readonly brightYellow: "\u001B[93m";
24
+ readonly brightBlue: "\u001B[94m";
25
+ readonly brightMagenta: "\u001B[95m";
26
+ readonly brightCyan: "\u001B[96m";
27
+ };
28
+ /**
29
+ * Category emoji mapping
30
+ */
31
+ export declare const CATEGORY_EMOJI: Record<string, string>;
32
+ /**
33
+ * Apply color to text
34
+ */
35
+ export declare function color(text: string, colorCode: string): string;
36
+ /**
37
+ * Bold text
38
+ */
39
+ export declare function bold(text: string): string;
40
+ /**
41
+ * Dim text
42
+ */
43
+ export declare function dim(text: string): string;
44
+ /**
45
+ * Create a horizontal line
46
+ */
47
+ export declare function line(length?: number): string;
48
+ /**
49
+ * Success message with green checkmark
50
+ */
51
+ export declare function success(text: string): string;
52
+ /**
53
+ * Error message with red X
54
+ */
55
+ export declare function error(text: string): string;
56
+ /**
57
+ * Warning message with yellow triangle
58
+ */
59
+ export declare function warning(text: string): string;
60
+ /**
61
+ * Info message with blue circle
62
+ */
63
+ export declare function info(text: string): string;
64
+ /**
65
+ * Bullet point
66
+ */
67
+ export declare function bullet(text: string, colorCode?: string): string;
68
+ /**
69
+ * Print a section header
70
+ */
71
+ export declare function sectionHeader(title: string): string;
72
+ /**
73
+ * Format key-value pair
74
+ */
75
+ export declare function keyValue(key: string, value: string, keyWidth?: number): string;
76
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/format.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;CAwBT,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAoB,GAAG,MAAM,CAE5E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,MAAM,CAGlF"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Fuzzy Search Utility
3
+ *
4
+ * Provides fuzzy matching for component names.
5
+ * Supports various input formats:
6
+ * - Exact: ButtonGlass
7
+ * - Lowercase: buttonglass, button
8
+ * - Kebab-case: button-glass
9
+ * - Partial: btn, badge
10
+ * - Typos: buton (Levenshtein distance)
11
+ */
12
+ export interface ComponentMatch {
13
+ name: string;
14
+ path: string;
15
+ category: string;
16
+ level: number;
17
+ score: number;
18
+ }
19
+ export interface SearchableComponent {
20
+ name: string;
21
+ path: string;
22
+ category: string;
23
+ level: number;
24
+ }
25
+ /**
26
+ * Normalize a search query for comparison
27
+ *
28
+ * Transforms:
29
+ * - "ButtonGlass" -> "button"
30
+ * - "button-glass" -> "buttonglass"
31
+ * - "BUTTON" -> "button"
32
+ */
33
+ export declare function normalizeQuery(query: string): string;
34
+ /**
35
+ * Normalize component name for comparison
36
+ */
37
+ export declare function normalizeComponentName(name: string): string;
38
+ /**
39
+ * Calculate Levenshtein distance between two strings
40
+ */
41
+ export declare function levenshteinDistance(a: string, b: string): number;
42
+ /**
43
+ * Calculate match score for a component
44
+ *
45
+ * Scoring:
46
+ * - 100: Exact match (normalized)
47
+ * - 80: Starts with query
48
+ * - 60: Contains query
49
+ * - 40-20: Small Levenshtein distance (typo tolerance)
50
+ * - 0: No match
51
+ */
52
+ export declare function calculateMatchScore(query: string, componentName: string): number;
53
+ /**
54
+ * Find components matching a query with fuzzy search
55
+ *
56
+ * @param query - Search query (e.g., "button", "ButtonGlass", "btn")
57
+ * @param components - Array of searchable components
58
+ * @returns Sorted array of matches with scores
59
+ */
60
+ export declare function fuzzyMatch(query: string, components: SearchableComponent[]): ComponentMatch[];
61
+ /**
62
+ * Find the best matching component
63
+ *
64
+ * @param query - Search query
65
+ * @param components - Array of searchable components
66
+ * @returns Best match or null
67
+ */
68
+ export declare function findBestMatch(query: string, components: SearchableComponent[]): ComponentMatch | null;
69
+ /**
70
+ * Check if a query has any matches
71
+ */
72
+ export declare function hasMatch(query: string, components: SearchableComponent[]): boolean;
73
+ //# sourceMappingURL=fuzzy-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fuzzy-search.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/fuzzy-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM3D;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA6BhE;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAqChF;AAMD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,cAAc,EAAE,CAyB7F;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,mBAAmB,EAAE,GAChC,cAAc,GAAG,IAAI,CAGvB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAElF"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Load EXPORTS_MAP.json Utility
3
+ *
4
+ * Loads the machine-readable component registry from docs/EXPORTS_MAP.json.
5
+ * Handles multiple paths for development vs published package scenarios.
6
+ */
7
+ export interface ComponentExport {
8
+ name: string;
9
+ path: string;
10
+ type: string;
11
+ description: string;
12
+ props?: string;
13
+ variants?: string[];
14
+ sizes?: string[];
15
+ statuses?: string[];
16
+ category?: string;
17
+ keywords?: string[];
18
+ shadcnCompatible?: boolean;
19
+ compoundAPI?: boolean;
20
+ subComponents?: string[];
21
+ supportsAsChild?: boolean;
22
+ contains?: string[];
23
+ }
24
+ export interface CategoryData {
25
+ level?: number;
26
+ description: string;
27
+ exports: ComponentExport[];
28
+ }
29
+ export interface ExportsMap {
30
+ $schema: string;
31
+ title: string;
32
+ description: string;
33
+ version: string;
34
+ library: string;
35
+ repository: string;
36
+ lastUpdated: string;
37
+ components: Record<string, CategoryData>;
38
+ utilities: {
39
+ exports: Array<{
40
+ name: string;
41
+ path: string;
42
+ type: string;
43
+ description: string;
44
+ signature?: string;
45
+ }>;
46
+ };
47
+ theme: {
48
+ exports: Array<{
49
+ name: string;
50
+ path: string;
51
+ type: string;
52
+ description: string;
53
+ }>;
54
+ };
55
+ hooks: {
56
+ exports: Array<{
57
+ name: string;
58
+ path: string;
59
+ type: string;
60
+ description: string;
61
+ signature?: string;
62
+ }>;
63
+ };
64
+ types: {
65
+ exports: Array<{
66
+ name: string;
67
+ path: string;
68
+ type: string;
69
+ description: string;
70
+ }>;
71
+ };
72
+ variants: {
73
+ exports: Array<{
74
+ name: string;
75
+ path: string;
76
+ type: string;
77
+ description: string;
78
+ }>;
79
+ };
80
+ statistics: {
81
+ totalComponents: number;
82
+ byLevel: Record<string, number>;
83
+ };
84
+ compatibility: {
85
+ shadcnUI: {
86
+ version: string;
87
+ compatibleComponents: string[];
88
+ };
89
+ breakingChanges: Array<{
90
+ version: string;
91
+ changes: string[];
92
+ }>;
93
+ };
94
+ usage: {
95
+ mostCommon: string[];
96
+ useCases: Record<string, string[]>;
97
+ };
98
+ }
99
+ /**
100
+ * Load EXPORTS_MAP.json from various possible locations
101
+ */
102
+ export declare function loadExportsMap(): ExportsMap;
103
+ /**
104
+ * Get all components as a flat array
105
+ */
106
+ export declare function getAllComponents(): Array<{
107
+ name: string;
108
+ path: string;
109
+ category: string;
110
+ level: number;
111
+ }>;
112
+ /**
113
+ * Find component details by name
114
+ */
115
+ export declare function findComponentByName(name: string): {
116
+ component: ComponentExport;
117
+ category: string;
118
+ level: number;
119
+ } | null;
120
+ /**
121
+ * Get components by category
122
+ */
123
+ export declare function getComponentsByCategory(category: string): ComponentExport[];
124
+ /**
125
+ * Get all categories with metadata
126
+ */
127
+ export declare function getCategories(): Array<{
128
+ key: string;
129
+ level: number;
130
+ description: string;
131
+ count: number;
132
+ }>;
133
+ /**
134
+ * Get library statistics
135
+ */
136
+ export declare function getStatistics(): {
137
+ totalComponents: number;
138
+ byLevel: Record<string, number>;
139
+ version: string;
140
+ };
141
+ //# sourceMappingURL=load-exports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-exports.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/load-exports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { AvatarGalleryBlock, type AvatarGalleryBlockProps } from './page';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/avatar-gallery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export interface AvatarGalleryBlockProps extends HTMLAttributes<HTMLDivElement> {
3
+ /** Show section title */
4
+ readonly showTitle?: boolean;
5
+ }
6
+ export declare const AvatarGalleryBlock: import('react').ForwardRefExoticComponent<AvatarGalleryBlockProps & import('react').RefAttributes<HTMLDivElement>>;
7
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/avatar-gallery/page.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAMxD,OAAO,mBAAmB,CAAC;AAE3B,MAAM,WAAW,uBAAwB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC7E,yBAAyB;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,kBAAkB,oHAuE9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { BadgesBlock, type BadgesBlockProps } from './page';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/badges/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export interface BadgesBlockProps extends HTMLAttributes<HTMLDivElement> {
3
+ /** Show section title */
4
+ readonly showTitle?: boolean;
5
+ }
6
+ export declare const BadgesBlock: import('react').ForwardRefExoticComponent<BadgesBlockProps & import('react').RefAttributes<HTMLDivElement>>;
7
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/badges/page.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAKxD,OAAO,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACtE,yBAAyB;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,WAAW,6GAoEvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ButtonsBlock, type ButtonsBlockProps } from './page';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/buttons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export interface ButtonsBlockProps extends HTMLAttributes<HTMLDivElement> {
3
+ /** Show section title */
4
+ readonly showTitle?: boolean;
5
+ }
6
+ export declare const ButtonsBlock: import('react').ForwardRefExoticComponent<ButtonsBlockProps & import('react').RefAttributes<HTMLDivElement>>;
7
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/buttons/page.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAKxD,OAAO,mBAAmB,CAAC;AAE3B,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE,yBAAyB;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,YAAY,8GA0ExB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { FormElementsBlock, type FormElementsBlockProps } from './page';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/form-elements/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export interface FormElementsBlockProps extends HTMLAttributes<HTMLDivElement> {
3
+ /** Show section title */
4
+ readonly showTitle?: boolean;
5
+ }
6
+ export declare const FormElementsBlock: import('react').ForwardRefExoticComponent<FormElementsBlockProps & import('react').RefAttributes<HTMLDivElement>>;
7
+ //# sourceMappingURL=page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/form-elements/page.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAOlE,OAAO,mBAAmB,CAAC;AAE3B,MAAM,WAAW,sBAAuB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC5E,yBAAyB;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,iBAAiB,mHAsE7B,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Glass UI Blocks (Level 5)
3
+ *
4
+ * Complete, ready-to-use sections built from Glass components.
5
+ * Follows shadcn/ui blocks pattern for easy integration.
6
+ */
7
+ export { ButtonsBlock, type ButtonsBlockProps } from './buttons';
8
+ export { FormElementsBlock, type FormElementsBlockProps } from './form-elements';
9
+ export { ProgressBlock, type ProgressBlockProps } from './progress';
10
+ export { AvatarGalleryBlock, type AvatarGalleryBlockProps } from './avatar-gallery';
11
+ export { BadgesBlock, type BadgesBlockProps } from './badges';
12
+ export { NotificationsBlock, type NotificationsBlockProps } from './notifications';
13
+ export { blocksRegistry, blockNames, getBlockMetadata, getBlocksByCategory, type BlockMetadata, type BlockName, } from './registry';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/blocks/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,SAAS,GACf,MAAM,YAAY,CAAC"}