@hanzo/ui 5.0.1 → 5.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (685) hide show
  1. package/CHANGELOG.md +184 -0
  2. package/LICENSE +21 -0
  3. package/README.md +185 -192
  4. package/dist/ai/index.js +53 -0
  5. package/dist/ai/index.js.map +1 -0
  6. package/dist/ai/index.mjs +4 -0
  7. package/dist/ai/index.mjs.map +1 -0
  8. package/dist/blocks/index.js +983 -0
  9. package/dist/blocks/index.js.map +1 -0
  10. package/dist/blocks/index.mjs +945 -0
  11. package/dist/blocks/index.mjs.map +1 -0
  12. package/dist/calendar/index.js +14 -0
  13. package/dist/calendar/index.js.map +1 -0
  14. package/dist/calendar/index.mjs +5 -0
  15. package/dist/calendar/index.mjs.map +1 -0
  16. package/dist/carousel/index.js +220 -0
  17. package/dist/carousel/index.js.map +1 -0
  18. package/dist/carousel/index.mjs +191 -0
  19. package/dist/carousel/index.mjs.map +1 -0
  20. package/dist/charts/index.js +945 -0
  21. package/dist/charts/index.js.map +1 -0
  22. package/dist/charts/index.mjs +901 -0
  23. package/dist/charts/index.mjs.map +1 -0
  24. package/dist/chunk-26T4V5QU.mjs +111 -0
  25. package/dist/chunk-26T4V5QU.mjs.map +1 -0
  26. package/dist/chunk-2A5KXDLJ.js +22 -0
  27. package/dist/chunk-2A5KXDLJ.js.map +1 -0
  28. package/dist/chunk-2CJ4HMF4.js +79 -0
  29. package/dist/chunk-2CJ4HMF4.js.map +1 -0
  30. package/dist/chunk-2OIQKC5E.js +236 -0
  31. package/dist/chunk-2OIQKC5E.js.map +1 -0
  32. package/dist/chunk-2X3KSYBN.js +44 -0
  33. package/dist/chunk-2X3KSYBN.js.map +1 -0
  34. package/dist/chunk-3PBQGYR7.mjs +100 -0
  35. package/dist/chunk-3PBQGYR7.mjs.map +1 -0
  36. package/dist/chunk-3POQQ6L7.js +62 -0
  37. package/dist/chunk-3POQQ6L7.js.map +1 -0
  38. package/dist/chunk-4B47GITH.mjs +28 -0
  39. package/dist/chunk-4B47GITH.mjs.map +1 -0
  40. package/dist/chunk-4BC2OH6B.js +129 -0
  41. package/dist/chunk-4BC2OH6B.js.map +1 -0
  42. package/dist/chunk-5AQSGH4R.js +130 -0
  43. package/dist/chunk-5AQSGH4R.js.map +1 -0
  44. package/dist/chunk-5IHRJFOO.mjs +102 -0
  45. package/dist/chunk-5IHRJFOO.mjs.map +1 -0
  46. package/dist/chunk-5LDGR7YN.mjs +28 -0
  47. package/dist/chunk-5LDGR7YN.mjs.map +1 -0
  48. package/dist/chunk-5MCN3VYM.mjs +23 -0
  49. package/dist/chunk-5MCN3VYM.mjs.map +1 -0
  50. package/dist/chunk-6AVAMRMB.mjs +47 -0
  51. package/dist/chunk-6AVAMRMB.mjs.map +1 -0
  52. package/dist/chunk-6H62JRNM.mjs +120 -0
  53. package/dist/chunk-6H62JRNM.mjs.map +1 -0
  54. package/dist/chunk-6KCII3F6.mjs +126 -0
  55. package/dist/chunk-6KCII3F6.mjs.map +1 -0
  56. package/dist/chunk-7EHB43BJ.js +155 -0
  57. package/dist/chunk-7EHB43BJ.js.map +1 -0
  58. package/dist/chunk-7LRD23Q5.js +191 -0
  59. package/dist/chunk-7LRD23Q5.js.map +1 -0
  60. package/dist/chunk-7SAHKOJG.mjs +45 -0
  61. package/dist/chunk-7SAHKOJG.mjs.map +1 -0
  62. package/dist/chunk-A3D2YZK3.js +50 -0
  63. package/dist/chunk-A3D2YZK3.js.map +1 -0
  64. package/dist/chunk-AL4QFH7V.js +63 -0
  65. package/dist/chunk-AL4QFH7V.js.map +1 -0
  66. package/dist/chunk-B3WFEG6U.js +69 -0
  67. package/dist/chunk-B3WFEG6U.js.map +1 -0
  68. package/dist/chunk-BDZQJ6GK.js +242 -0
  69. package/dist/chunk-BDZQJ6GK.js.map +1 -0
  70. package/dist/chunk-BRWFYRGX.js +61 -0
  71. package/dist/chunk-BRWFYRGX.js.map +1 -0
  72. package/dist/chunk-C5DNTLBO.js +53 -0
  73. package/dist/chunk-C5DNTLBO.js.map +1 -0
  74. package/dist/chunk-CRALRACO.js +54 -0
  75. package/dist/chunk-CRALRACO.js.map +1 -0
  76. package/dist/chunk-CVACQJRM.js +149 -0
  77. package/dist/chunk-CVACQJRM.js.map +1 -0
  78. package/dist/chunk-DEIUKFPZ.mjs +63 -0
  79. package/dist/chunk-DEIUKFPZ.mjs.map +1 -0
  80. package/dist/chunk-DN2AEEA2.js +13 -0
  81. package/dist/chunk-DN2AEEA2.js.map +1 -0
  82. package/dist/chunk-DTNRWU4B.mjs +35 -0
  83. package/dist/chunk-DTNRWU4B.mjs.map +1 -0
  84. package/dist/chunk-DXIUEWRJ.mjs +31 -0
  85. package/dist/chunk-DXIUEWRJ.mjs.map +1 -0
  86. package/dist/chunk-DYFV66JX.mjs +54 -0
  87. package/dist/chunk-DYFV66JX.mjs.map +1 -0
  88. package/dist/chunk-F3WMAHXV.mjs +86 -0
  89. package/dist/chunk-F3WMAHXV.mjs.map +1 -0
  90. package/dist/chunk-F4RWPBBB.js +79 -0
  91. package/dist/chunk-F4RWPBBB.js.map +1 -0
  92. package/dist/chunk-FEGAPM6U.js +194 -0
  93. package/dist/chunk-FEGAPM6U.js.map +1 -0
  94. package/dist/chunk-G5TS56PW.mjs +160 -0
  95. package/dist/chunk-G5TS56PW.mjs.map +1 -0
  96. package/dist/chunk-GG6VGOEN.mjs +590 -0
  97. package/dist/chunk-GG6VGOEN.mjs.map +1 -0
  98. package/dist/chunk-GLAMGK32.mjs +54 -0
  99. package/dist/chunk-GLAMGK32.mjs.map +1 -0
  100. package/dist/chunk-GNMMUJXD.mjs +200 -0
  101. package/dist/chunk-GNMMUJXD.mjs.map +1 -0
  102. package/dist/chunk-GNPBULLS.mjs +600 -0
  103. package/dist/chunk-GNPBULLS.mjs.map +1 -0
  104. package/dist/chunk-GTE2DELE.js +65 -0
  105. package/dist/chunk-GTE2DELE.js.map +1 -0
  106. package/dist/chunk-GUQAFFTH.js +94 -0
  107. package/dist/chunk-GUQAFFTH.js.map +1 -0
  108. package/dist/chunk-H5VOYZHT.mjs +34 -0
  109. package/dist/chunk-H5VOYZHT.mjs.map +1 -0
  110. package/dist/chunk-HR6PBOGG.mjs +59 -0
  111. package/dist/chunk-HR6PBOGG.mjs.map +1 -0
  112. package/dist/chunk-HROONQS3.js +55 -0
  113. package/dist/chunk-HROONQS3.js.map +1 -0
  114. package/dist/chunk-IAO7SOQ3.mjs +56 -0
  115. package/dist/chunk-IAO7SOQ3.mjs.map +1 -0
  116. package/dist/chunk-K2QKU3K6.mjs +40 -0
  117. package/dist/chunk-K2QKU3K6.mjs.map +1 -0
  118. package/dist/chunk-KEUZZCCP.js +53 -0
  119. package/dist/chunk-KEUZZCCP.js.map +1 -0
  120. package/dist/chunk-KJXSLTG7.mjs +73 -0
  121. package/dist/chunk-KJXSLTG7.mjs.map +1 -0
  122. package/dist/chunk-L5AFUCVH.mjs +26 -0
  123. package/dist/chunk-L5AFUCVH.mjs.map +1 -0
  124. package/dist/chunk-LB3I52KZ.mjs +42 -0
  125. package/dist/chunk-LB3I52KZ.mjs.map +1 -0
  126. package/dist/chunk-LN75MJQ2.js +71 -0
  127. package/dist/chunk-LN75MJQ2.js.map +1 -0
  128. package/dist/chunk-LRBOFJUV.js +60 -0
  129. package/dist/chunk-LRBOFJUV.js.map +1 -0
  130. package/dist/chunk-MMNYRBOU.js +157 -0
  131. package/dist/chunk-MMNYRBOU.js.map +1 -0
  132. package/dist/chunk-MO65YF6P.js +236 -0
  133. package/dist/chunk-MO65YF6P.js.map +1 -0
  134. package/dist/chunk-N4KHP5FC.mjs +33 -0
  135. package/dist/chunk-N4KHP5FC.mjs.map +1 -0
  136. package/dist/chunk-NP2J7AB7.mjs +121 -0
  137. package/dist/chunk-NP2J7AB7.mjs.map +1 -0
  138. package/dist/chunk-OLR6SGYO.js +57 -0
  139. package/dist/chunk-OLR6SGYO.js.map +1 -0
  140. package/dist/chunk-ON7NQ4DY.js +21 -0
  141. package/dist/chunk-ON7NQ4DY.js.map +1 -0
  142. package/dist/chunk-PE3VFRLV.mjs +198 -0
  143. package/dist/chunk-PE3VFRLV.mjs.map +1 -0
  144. package/dist/chunk-Q7LOOIE5.mjs +8 -0
  145. package/dist/chunk-Q7LOOIE5.mjs.map +1 -0
  146. package/dist/chunk-QFA6U75G.mjs +51 -0
  147. package/dist/chunk-QFA6U75G.mjs.map +1 -0
  148. package/dist/chunk-QJQPT4WX.js +638 -0
  149. package/dist/chunk-QJQPT4WX.js.map +1 -0
  150. package/dist/chunk-QKHQPBSR.mjs +20 -0
  151. package/dist/chunk-QKHQPBSR.mjs.map +1 -0
  152. package/dist/chunk-SJD4XRFJ.mjs +141 -0
  153. package/dist/chunk-SJD4XRFJ.mjs.map +1 -0
  154. package/dist/chunk-SOOJLU4C.mjs +19 -0
  155. package/dist/chunk-SOOJLU4C.mjs.map +1 -0
  156. package/dist/chunk-T66B5IM5.js +51 -0
  157. package/dist/chunk-T66B5IM5.js.map +1 -0
  158. package/dist/chunk-T7RPZDO4.js +645 -0
  159. package/dist/chunk-T7RPZDO4.js.map +1 -0
  160. package/dist/chunk-TGRMDGTV.mjs +38 -0
  161. package/dist/chunk-TGRMDGTV.mjs.map +1 -0
  162. package/dist/chunk-TH2UKMCO.mjs +11 -0
  163. package/dist/chunk-TH2UKMCO.mjs.map +1 -0
  164. package/dist/chunk-TMV45OKE.mjs +113 -0
  165. package/dist/chunk-TMV45OKE.mjs.map +1 -0
  166. package/dist/chunk-TUJ7EVEK.js +171 -0
  167. package/dist/chunk-TUJ7EVEK.js.map +1 -0
  168. package/dist/chunk-ULNWDOI7.js +122 -0
  169. package/dist/chunk-ULNWDOI7.js.map +1 -0
  170. package/dist/chunk-UNUTTHCH.mjs +210 -0
  171. package/dist/chunk-UNUTTHCH.mjs.map +1 -0
  172. package/dist/chunk-VJMI6BG4.mjs +10 -0
  173. package/dist/chunk-VJMI6BG4.mjs.map +1 -0
  174. package/dist/chunk-VZVOB5MG.mjs +26 -0
  175. package/dist/chunk-VZVOB5MG.mjs.map +1 -0
  176. package/dist/chunk-WD67O22C.js +50 -0
  177. package/dist/chunk-WD67O22C.js.map +1 -0
  178. package/dist/chunk-WYPMLIJN.js +53 -0
  179. package/dist/chunk-WYPMLIJN.js.map +1 -0
  180. package/dist/chunk-X32I34NH.js +109 -0
  181. package/dist/chunk-X32I34NH.js.map +1 -0
  182. package/dist/chunk-X5MOZ3YL.js +65 -0
  183. package/dist/chunk-X5MOZ3YL.js.map +1 -0
  184. package/dist/chunk-Y4JVIPQZ.mjs +31 -0
  185. package/dist/chunk-Y4JVIPQZ.mjs.map +1 -0
  186. package/dist/chunk-Y6WOV2LZ.js +95 -0
  187. package/dist/chunk-Y6WOV2LZ.js.map +1 -0
  188. package/dist/chunk-YAEN5SCU.mjs +41 -0
  189. package/dist/chunk-YAEN5SCU.mjs.map +1 -0
  190. package/dist/chunk-YH6XDF3N.js +121 -0
  191. package/dist/chunk-YH6XDF3N.js.map +1 -0
  192. package/dist/chunk-YJKA4D75.mjs +124 -0
  193. package/dist/chunk-YJKA4D75.mjs.map +1 -0
  194. package/dist/chunk-ZANAF7WB.js +88 -0
  195. package/dist/chunk-ZANAF7WB.js.map +1 -0
  196. package/dist/chunk-ZDBWNPLO.js +30 -0
  197. package/dist/chunk-ZDBWNPLO.js.map +1 -0
  198. package/dist/chunk-ZDT2IOK2.js +56 -0
  199. package/dist/chunk-ZDT2IOK2.js.map +1 -0
  200. package/dist/chunk-ZKGVLTSI.js +25 -0
  201. package/dist/chunk-ZKGVLTSI.js.map +1 -0
  202. package/dist/chunk-ZLELESO7.js +34 -0
  203. package/dist/chunk-ZLELESO7.js.map +1 -0
  204. package/dist/chunk-ZUFUEQTX.mjs +157 -0
  205. package/dist/chunk-ZUFUEQTX.mjs.map +1 -0
  206. package/dist/chunk-ZZZWRQQE.mjs +42 -0
  207. package/dist/chunk-ZZZWRQQE.mjs.map +1 -0
  208. package/dist/command/index.js +138 -0
  209. package/dist/command/index.js.map +1 -0
  210. package/dist/command/index.mjs +128 -0
  211. package/dist/command/index.mjs.map +1 -0
  212. package/dist/components/accordion.js +25 -0
  213. package/dist/components/accordion.js.map +1 -0
  214. package/dist/components/accordion.mjs +4 -0
  215. package/dist/components/accordion.mjs.map +1 -0
  216. package/dist/components/alert.js +21 -0
  217. package/dist/components/alert.js.map +1 -0
  218. package/dist/components/alert.mjs +4 -0
  219. package/dist/components/alert.mjs.map +1 -0
  220. package/dist/components/aspect-ratio.js +12 -0
  221. package/dist/components/aspect-ratio.js.map +1 -0
  222. package/dist/components/aspect-ratio.mjs +3 -0
  223. package/dist/components/aspect-ratio.mjs.map +1 -0
  224. package/dist/components/avatar.js +21 -0
  225. package/dist/components/avatar.js.map +1 -0
  226. package/dist/components/avatar.mjs +4 -0
  227. package/dist/components/avatar.mjs.map +1 -0
  228. package/dist/components/badge.js +17 -0
  229. package/dist/components/badge.js.map +1 -0
  230. package/dist/components/badge.mjs +4 -0
  231. package/dist/components/badge.mjs.map +1 -0
  232. package/dist/components/breadcrumb.js +37 -0
  233. package/dist/components/breadcrumb.js.map +1 -0
  234. package/dist/components/breadcrumb.mjs +4 -0
  235. package/dist/components/breadcrumb.mjs.map +1 -0
  236. package/dist/components/button.js +17 -0
  237. package/dist/components/button.js.map +1 -0
  238. package/dist/components/button.mjs +4 -0
  239. package/dist/components/button.mjs.map +1 -0
  240. package/dist/components/card.js +37 -0
  241. package/dist/components/card.js.map +1 -0
  242. package/dist/components/card.mjs +4 -0
  243. package/dist/components/card.mjs.map +1 -0
  244. package/dist/components/checkbox.js +13 -0
  245. package/dist/components/checkbox.js.map +1 -0
  246. package/dist/components/checkbox.mjs +4 -0
  247. package/dist/components/checkbox.mjs.map +1 -0
  248. package/dist/components/collapsible.js +20 -0
  249. package/dist/components/collapsible.js.map +1 -0
  250. package/dist/components/collapsible.mjs +3 -0
  251. package/dist/components/collapsible.mjs.map +1 -0
  252. package/dist/components/context-menu.js +69 -0
  253. package/dist/components/context-menu.js.map +1 -0
  254. package/dist/components/context-menu.mjs +4 -0
  255. package/dist/components/context-menu.mjs.map +1 -0
  256. package/dist/components/dialog.js +49 -0
  257. package/dist/components/dialog.js.map +1 -0
  258. package/dist/components/dialog.mjs +4 -0
  259. package/dist/components/dialog.mjs.map +1 -0
  260. package/dist/components/drawer.js +49 -0
  261. package/dist/components/drawer.js.map +1 -0
  262. package/dist/components/drawer.mjs +4 -0
  263. package/dist/components/drawer.mjs.map +1 -0
  264. package/dist/components/dropdown-menu.js +69 -0
  265. package/dist/components/dropdown-menu.js.map +1 -0
  266. package/dist/components/dropdown-menu.mjs +4 -0
  267. package/dist/components/dropdown-menu.mjs.map +1 -0
  268. package/dist/components/form.js +42 -0
  269. package/dist/components/form.js.map +1 -0
  270. package/dist/components/form.mjs +5 -0
  271. package/dist/components/form.mjs.map +1 -0
  272. package/dist/components/hover-card.js +21 -0
  273. package/dist/components/hover-card.js.map +1 -0
  274. package/dist/components/hover-card.mjs +4 -0
  275. package/dist/components/hover-card.mjs.map +1 -0
  276. package/dist/components/index.js +1047 -0
  277. package/dist/components/index.js.map +1 -0
  278. package/dist/components/index.mjs +46 -0
  279. package/dist/components/index.mjs.map +1 -0
  280. package/dist/components/input-otp.js +25 -0
  281. package/dist/components/input-otp.js.map +1 -0
  282. package/dist/components/input-otp.mjs +4 -0
  283. package/dist/components/input-otp.mjs.map +1 -0
  284. package/dist/components/input.js +13 -0
  285. package/dist/components/input.js.map +1 -0
  286. package/dist/components/input.mjs +4 -0
  287. package/dist/components/input.mjs.map +1 -0
  288. package/dist/components/label.js +13 -0
  289. package/dist/components/label.js.map +1 -0
  290. package/dist/components/label.mjs +4 -0
  291. package/dist/components/label.mjs.map +1 -0
  292. package/dist/components/menubar.js +73 -0
  293. package/dist/components/menubar.js.map +1 -0
  294. package/dist/components/menubar.mjs +4 -0
  295. package/dist/components/menubar.mjs.map +1 -0
  296. package/dist/components/navigation-menu.js +45 -0
  297. package/dist/components/navigation-menu.js.map +1 -0
  298. package/dist/components/navigation-menu.mjs +4 -0
  299. package/dist/components/navigation-menu.mjs.map +1 -0
  300. package/dist/components/pagination.js +38 -0
  301. package/dist/components/pagination.js.map +1 -0
  302. package/dist/components/pagination.mjs +5 -0
  303. package/dist/components/pagination.mjs.map +1 -0
  304. package/dist/components/popover.js +25 -0
  305. package/dist/components/popover.js.map +1 -0
  306. package/dist/components/popover.mjs +4 -0
  307. package/dist/components/popover.mjs.map +1 -0
  308. package/dist/components/progress.js +13 -0
  309. package/dist/components/progress.js.map +1 -0
  310. package/dist/components/progress.mjs +4 -0
  311. package/dist/components/progress.mjs.map +1 -0
  312. package/dist/components/radio-group.js +17 -0
  313. package/dist/components/radio-group.js.map +1 -0
  314. package/dist/components/radio-group.mjs +4 -0
  315. package/dist/components/radio-group.mjs.map +1 -0
  316. package/dist/components/resizable.js +21 -0
  317. package/dist/components/resizable.js.map +1 -0
  318. package/dist/components/resizable.mjs +4 -0
  319. package/dist/components/resizable.mjs.map +1 -0
  320. package/dist/components/scroll-area.js +17 -0
  321. package/dist/components/scroll-area.js.map +1 -0
  322. package/dist/components/scroll-area.mjs +4 -0
  323. package/dist/components/scroll-area.mjs.map +1 -0
  324. package/dist/components/select.js +49 -0
  325. package/dist/components/select.js.map +1 -0
  326. package/dist/components/select.mjs +4 -0
  327. package/dist/components/select.mjs.map +1 -0
  328. package/dist/components/separator.js +13 -0
  329. package/dist/components/separator.js.map +1 -0
  330. package/dist/components/separator.mjs +4 -0
  331. package/dist/components/separator.mjs.map +1 -0
  332. package/dist/components/sheet.js +49 -0
  333. package/dist/components/sheet.js.map +1 -0
  334. package/dist/components/sheet.mjs +4 -0
  335. package/dist/components/sheet.mjs.map +1 -0
  336. package/dist/components/sidebar.js +111 -0
  337. package/dist/components/sidebar.js.map +1 -0
  338. package/dist/components/sidebar.mjs +10 -0
  339. package/dist/components/sidebar.mjs.map +1 -0
  340. package/dist/components/skeleton.js +13 -0
  341. package/dist/components/skeleton.js.map +1 -0
  342. package/dist/components/skeleton.mjs +4 -0
  343. package/dist/components/skeleton.mjs.map +1 -0
  344. package/dist/components/slider.js +13 -0
  345. package/dist/components/slider.js.map +1 -0
  346. package/dist/components/slider.mjs +4 -0
  347. package/dist/components/slider.mjs.map +1 -0
  348. package/dist/components/switch.js +13 -0
  349. package/dist/components/switch.js.map +1 -0
  350. package/dist/components/switch.mjs +4 -0
  351. package/dist/components/switch.mjs.map +1 -0
  352. package/dist/components/table.js +41 -0
  353. package/dist/components/table.js.map +1 -0
  354. package/dist/components/table.mjs +4 -0
  355. package/dist/components/table.mjs.map +1 -0
  356. package/dist/components/tabs.js +25 -0
  357. package/dist/components/tabs.js.map +1 -0
  358. package/dist/components/tabs.mjs +4 -0
  359. package/dist/components/tabs.mjs.map +1 -0
  360. package/dist/components/textarea.js +13 -0
  361. package/dist/components/textarea.js.map +1 -0
  362. package/dist/components/textarea.mjs +4 -0
  363. package/dist/components/textarea.mjs.map +1 -0
  364. package/dist/components/toast.js +37 -0
  365. package/dist/components/toast.js.map +1 -0
  366. package/dist/components/toast.mjs +4 -0
  367. package/dist/components/toast.mjs.map +1 -0
  368. package/dist/components/toggle-group.js +18 -0
  369. package/dist/components/toggle-group.js.map +1 -0
  370. package/dist/components/toggle-group.mjs +5 -0
  371. package/dist/components/toggle-group.mjs.map +1 -0
  372. package/dist/components/toggle.js +17 -0
  373. package/dist/components/toggle.js.map +1 -0
  374. package/dist/components/toggle.mjs +4 -0
  375. package/dist/components/toggle.mjs.map +1 -0
  376. package/dist/components/tooltip.js +25 -0
  377. package/dist/components/tooltip.js.map +1 -0
  378. package/dist/components/tooltip.mjs +4 -0
  379. package/dist/components/tooltip.mjs.map +1 -0
  380. package/dist/effects/index.js +162 -0
  381. package/dist/effects/index.js.map +1 -0
  382. package/dist/effects/index.mjs +156 -0
  383. package/dist/effects/index.mjs.map +1 -0
  384. package/dist/index.js +1089 -9070
  385. package/dist/index.js.map +1 -1
  386. package/dist/index.mjs +45 -8695
  387. package/dist/index.mjs.map +1 -1
  388. package/dist/lib/utils.js +12 -0
  389. package/dist/lib/utils.js.map +1 -0
  390. package/dist/lib/utils.mjs +3 -0
  391. package/dist/lib/utils.mjs.map +1 -0
  392. package/dist/markdown/index.js +669 -0
  393. package/dist/markdown/index.js.map +1 -0
  394. package/dist/markdown/index.mjs +635 -0
  395. package/dist/markdown/index.mjs.map +1 -0
  396. package/dist/qr/index.js +101 -0
  397. package/dist/qr/index.js.map +1 -0
  398. package/dist/qr/index.mjs +98 -0
  399. package/dist/qr/index.mjs.map +1 -0
  400. package/dist/upload/index.js +166 -0
  401. package/dist/upload/index.js.map +1 -0
  402. package/dist/upload/index.mjs +163 -0
  403. package/dist/upload/index.mjs.map +1 -0
  404. package/package.json +153 -272
  405. package/publish.sh +27 -0
  406. package/assets/ai-icons.tsx +0 -207
  407. package/assets/crypto.tsx +0 -33
  408. package/assets/file-type-icon.tsx +0 -66
  409. package/assets/file.tsx +0 -45
  410. package/assets/general.tsx +0 -2318
  411. package/assets/hanzo-logo.svg +0 -9
  412. package/assets/hanzo-logo.tsx +0 -17
  413. package/assets/index.ts +0 -122
  414. package/assets/index.tsx +0 -4
  415. package/assets/llm-provider.tsx +0 -1094
  416. package/bin/cli.js +0 -100
  417. package/bin/create-registry.js +0 -108
  418. package/bin/mcp.js +0 -403
  419. package/bin/npx-registry-mcp.js +0 -15
  420. package/bin/registry-mcp-wrapper.sh +0 -19
  421. package/bin/registry-mcp.js +0 -100
  422. package/bin/start-mcp-server.sh +0 -22
  423. package/bin/test-mcp.sh +0 -52
  424. package/bin/update-registry.js +0 -196
  425. package/blocks/auth/index.ts +0 -6
  426. package/blocks/auth/login-2fa.tsx +0 -165
  427. package/blocks/auth/login-basic.tsx +0 -94
  428. package/blocks/auth/login-social.tsx +0 -148
  429. package/blocks/auth/magic-link.tsx +0 -129
  430. package/blocks/auth/password-reset.tsx +0 -97
  431. package/blocks/auth/signup.tsx +0 -157
  432. package/blocks/components/accordian-block.tsx +0 -48
  433. package/blocks/components/block-component-props.ts +0 -11
  434. package/blocks/components/bullet-cards-block.tsx +0 -46
  435. package/blocks/components/card-block/index.tsx +0 -171
  436. package/blocks/components/card-block/link-out-button.tsx +0 -20
  437. package/blocks/components/card-block/util.ts +0 -28
  438. package/blocks/components/carte-blanche-block/index.tsx +0 -127
  439. package/blocks/components/carte-blanche-block/variant-content-left.tsx +0 -49
  440. package/blocks/components/content.tsx +0 -70
  441. package/blocks/components/cta-block.tsx +0 -115
  442. package/blocks/components/enh-heading-block.tsx +0 -204
  443. package/blocks/components/grid-block/grid-block-mutator.ts +0 -12
  444. package/blocks/components/grid-block/index.tsx +0 -83
  445. package/blocks/components/grid-block/mutator-registry.ts +0 -10
  446. package/blocks/components/grid-block/table-borders.mutator.ts +0 -47
  447. package/blocks/components/group-block.tsx +0 -83
  448. package/blocks/components/heading-block.tsx +0 -88
  449. package/blocks/components/image-block.tsx +0 -111
  450. package/blocks/components/index.ts +0 -30
  451. package/blocks/components/screenful-block/content.tsx +0 -123
  452. package/blocks/components/screenful-block/index.tsx +0 -107
  453. package/blocks/components/screenful-block/poster-background.tsx +0 -34
  454. package/blocks/components/screenful-block/video-background.tsx +0 -45
  455. package/blocks/components/space-block.tsx +0 -66
  456. package/blocks/components/video-block.tsx +0 -138
  457. package/blocks/data-display/activity-feed.tsx +0 -242
  458. package/blocks/data-display/data-table.tsx +0 -235
  459. package/blocks/data-display/stats-grid.tsx +0 -194
  460. package/blocks/def/accordian-block.ts +0 -14
  461. package/blocks/def/block.ts +0 -7
  462. package/blocks/def/bullet-cards-block.ts +0 -22
  463. package/blocks/def/card-block.ts +0 -22
  464. package/blocks/def/carte-blanche-block.ts +0 -21
  465. package/blocks/def/cta-block.ts +0 -19
  466. package/blocks/def/element-block.ts +0 -11
  467. package/blocks/def/enh-heading-block.ts +0 -44
  468. package/blocks/def/grid-block.ts +0 -16
  469. package/blocks/def/group-block.ts +0 -11
  470. package/blocks/def/heading-block.ts +0 -15
  471. package/blocks/def/image-block.ts +0 -31
  472. package/blocks/def/index.ts +0 -35
  473. package/blocks/def/screenful-block.ts +0 -54
  474. package/blocks/def/space-block.ts +0 -64
  475. package/blocks/def/video-block.ts +0 -9
  476. package/blocks/ecommerce/checkout.tsx +0 -242
  477. package/blocks/ecommerce/index.ts +0 -7
  478. package/blocks/ecommerce/product-detail.tsx +0 -257
  479. package/blocks/ecommerce/product-grid.tsx +0 -148
  480. package/blocks/ecommerce/shopping-cart.tsx +0 -181
  481. package/blocks/index.ts +0 -2
  482. package/blocks/marketing/cta-section.tsx +0 -207
  483. package/blocks/marketing/faq.tsx +0 -159
  484. package/blocks/marketing/features-grid.tsx +0 -156
  485. package/blocks/marketing/hero-section.tsx +0 -192
  486. package/blocks/marketing/index.ts +0 -6
  487. package/blocks/marketing/pricing-table.tsx +0 -121
  488. package/blocks/marketing/testimonials.tsx +0 -196
  489. package/components/index.ts +0 -9
  490. package/dist/tailwind.js +0 -2025
  491. package/dist/tailwind.js.map +0 -1
  492. package/dist/tailwind.mjs +0 -2013
  493. package/dist/tailwind.mjs.map +0 -1
  494. package/dist/types.js +0 -59
  495. package/dist/types.js.map +0 -1
  496. package/dist/types.mjs +0 -53
  497. package/dist/types.mjs.map +0 -1
  498. package/dist/utils.js +0 -30
  499. package/dist/utils.js.map +0 -1
  500. package/dist/utils.mjs +0 -26
  501. package/dist/utils.mjs.map +0 -1
  502. package/frameworks/core/index.ts +0 -6
  503. package/frameworks/core/utils/index.ts +0 -64
  504. package/frameworks/react/components/button.tsx +0 -26
  505. package/frameworks/react/components/index.ts +0 -5
  506. package/frameworks/react/hooks/index.ts +0 -5
  507. package/frameworks/react/index.ts +0 -9
  508. package/frameworks/react/package.json +0 -8
  509. package/frameworks/react/utils/index.ts +0 -2
  510. package/frameworks/react-native/index.ts +0 -9
  511. package/frameworks/react-native/package.json +0 -8
  512. package/frameworks/registry.json +0 -371
  513. package/frameworks/setup.sh +0 -69
  514. package/frameworks/svelte/index.ts +0 -9
  515. package/frameworks/svelte/package.json +0 -8
  516. package/frameworks/tracker.json +0 -1854
  517. package/frameworks/vue/index.ts +0 -9
  518. package/frameworks/vue/package.json +0 -8
  519. package/helpers/file.ts +0 -33
  520. package/helpers/memoization.ts +0 -40
  521. package/primitives/accordion.tsx +0 -74
  522. package/primitives/action-button.tsx +0 -42
  523. package/primitives/alert-dialog.tsx +0 -185
  524. package/primitives/alert.tsx +0 -74
  525. package/primitives/apply-typography.tsx +0 -55
  526. package/primitives/aspect-ratio.tsx +0 -5
  527. package/primitives/avatar.tsx +0 -57
  528. package/primitives/background-beams.tsx +0 -142
  529. package/primitives/badge.tsx +0 -45
  530. package/primitives/breadcrumb.tsx +0 -130
  531. package/primitives/breakpoint-indicator.tsx +0 -19
  532. package/primitives/button.tsx +0 -72
  533. package/primitives/calendar.tsx +0 -72
  534. package/primitives/card.tsx +0 -97
  535. package/primitives/carousel.tsx +0 -238
  536. package/primitives/chat/chat-input-area.tsx +0 -88
  537. package/primitives/chat/chat-input.tsx +0 -71
  538. package/primitives/chat/files-preview.tsx +0 -331
  539. package/primitives/chat/index.ts +0 -6
  540. package/primitives/chat/json-form.tsx +0 -8
  541. package/primitives/chat/message-list.tsx +0 -308
  542. package/primitives/chat/message.tsx +0 -569
  543. package/primitives/chat/sqlite-preview.tsx +0 -215
  544. package/primitives/checkbox.tsx +0 -32
  545. package/primitives/collapsible.tsx +0 -9
  546. package/primitives/combobox.tsx +0 -239
  547. package/primitives/command.tsx +0 -151
  548. package/primitives/context-menu.tsx +0 -206
  549. package/primitives/copy-to-clipboard-icon.tsx +0 -60
  550. package/primitives/dialog-video-controller.tsx +0 -38
  551. package/primitives/dialog.tsx +0 -128
  552. package/primitives/dot-pattern.tsx +0 -57
  553. package/primitives/dots-loader.tsx +0 -13
  554. package/primitives/drawer.tsx +0 -113
  555. package/primitives/dropdown-menu.tsx +0 -199
  556. package/primitives/error-message.tsx +0 -19
  557. package/primitives/file-uploader.tsx +0 -203
  558. package/primitives/form.tsx +0 -185
  559. package/primitives/hover-card.tsx +0 -28
  560. package/primitives/icons/github.tsx +0 -14
  561. package/primitives/icons/index.ts +0 -18
  562. package/primitives/icons/youtube-logo.tsx +0 -59
  563. package/primitives/index-client.ts +0 -4
  564. package/primitives/index-common.ts +0 -304
  565. package/primitives/index-next.ts +0 -4
  566. package/primitives/input-otp.tsx +0 -65
  567. package/primitives/input.tsx +0 -128
  568. package/primitives/label.tsx +0 -21
  569. package/primitives/list-adaptor.ts +0 -12
  570. package/primitives/list-box.tsx +0 -74
  571. package/primitives/loading-spinner.tsx +0 -33
  572. package/primitives/markdown-preview.tsx +0 -612
  573. package/primitives/mermaid.tsx +0 -191
  574. package/primitives/navigation-menu.tsx +0 -147
  575. package/primitives/next/image.tsx +0 -91
  576. package/primitives/next/index.ts +0 -7
  577. package/primitives/next/inline-icon.tsx +0 -36
  578. package/primitives/next/link-element.tsx +0 -109
  579. package/primitives/next/mdx-link.tsx +0 -22
  580. package/primitives/next/media-stack.tsx +0 -52
  581. package/primitives/next/nav-items.tsx +0 -45
  582. package/primitives/next/youtube-embed.tsx +0 -83
  583. package/primitives/pagination.tsx +0 -117
  584. package/primitives/popover.tsx +0 -34
  585. package/primitives/pretty-json-print.tsx +0 -28
  586. package/primitives/progress.tsx +0 -27
  587. package/primitives/prompt-textarea.tsx +0 -72
  588. package/primitives/qr-code.tsx +0 -112
  589. package/primitives/radio-group.tsx +0 -42
  590. package/primitives/resizable.tsx +0 -47
  591. package/primitives/scroll-area.tsx +0 -57
  592. package/primitives/search-input.tsx +0 -66
  593. package/primitives/select.tsx +0 -122
  594. package/primitives/separator.tsx +0 -26
  595. package/primitives/sheet.tsx +0 -139
  596. package/primitives/skeleton.tsx +0 -18
  597. package/primitives/slider.tsx +0 -63
  598. package/primitives/sonner.tsx +0 -35
  599. package/primitives/step-indicator.tsx +0 -69
  600. package/primitives/stepper.tsx +0 -272
  601. package/primitives/switch.tsx +0 -27
  602. package/primitives/table.tsx +0 -105
  603. package/primitives/tabs.tsx +0 -50
  604. package/primitives/text-area.tsx +0 -26
  605. package/primitives/text-link.tsx +0 -27
  606. package/primitives/textarea.tsx +0 -64
  607. package/primitives/textfield.tsx +0 -78
  608. package/primitives/toast.tsx +0 -30
  609. package/primitives/toggle-group.tsx +0 -63
  610. package/primitives/toggle.tsx +0 -44
  611. package/primitives/tooltip.tsx +0 -47
  612. package/primitives/video-player.tsx +0 -23
  613. package/src/button.ts +0 -1
  614. package/src/hooks/index.ts +0 -7
  615. package/src/hooks/use-click-away.ts +0 -31
  616. package/src/hooks/use-combined-refs.ts +0 -22
  617. package/src/hooks/use-copy-clipboard.ts +0 -30
  618. package/src/hooks/use-debounce.ts +0 -17
  619. package/src/hooks/use-fill-ids.ts +0 -25
  620. package/src/hooks/use-map.ts +0 -26
  621. package/src/hooks/use-measure.ts +0 -42
  622. package/src/hooks/use-reverse-video-playback.ts +0 -43
  623. package/src/hooks/use-scroll-restoration.ts +0 -50
  624. package/src/index-lean.ts +0 -87
  625. package/src/index.ts +0 -54
  626. package/src/mcp/README.md +0 -141
  627. package/src/mcp/enhanced-server.ts +0 -1208
  628. package/src/mcp/index.ts +0 -518
  629. package/src/mcp/package.json +0 -10
  630. package/src/registry/api.ts +0 -164
  631. package/src/registry/index.ts +0 -60
  632. package/src/registry/package.json +0 -10
  633. package/src/utils.ts +0 -19
  634. package/style/drawer.css +0 -163
  635. package/style/globals.css +0 -13
  636. package/style/hanzo-common.css +0 -31
  637. package/style/hanzo-default-colors.css +0 -82
  638. package/style/theme-provider.tsx +0 -20
  639. package/tailwind/colors.tailwind.js +0 -53
  640. package/tailwind/fontFamily.tailwind.ts +0 -7
  641. package/tailwind/fontSize.tailwind.ts +0 -13
  642. package/tailwind/index.ts +0 -7
  643. package/tailwind/safelist.tailwind.js +0 -26
  644. package/tailwind/screens.tailwind.js +0 -8
  645. package/tailwind/spacing.tailwind.js +0 -65
  646. package/tailwind/tailwind.config.hanzo-preset.d.ts +0 -5
  647. package/tailwind/tailwind.config.hanzo-preset.js +0 -915
  648. package/tailwind/tw-font-desc.ts +0 -15
  649. package/tailwind/typo-plugin/get-plugin-styles.js +0 -679
  650. package/tailwind/typo-plugin/index.d.ts +0 -9
  651. package/tailwind/typo-plugin/index.js +0 -141
  652. package/tailwind/typo-plugin/utils.js +0 -60
  653. package/tailwind/typography-test.mdx +0 -35
  654. package/tailwind/z-index.tailwind.js +0 -71
  655. package/types/animation-def.ts +0 -3
  656. package/types/breakpoints.ts +0 -11
  657. package/types/bullet-item.ts +0 -10
  658. package/types/button-def.ts +0 -39
  659. package/types/dimensions.ts +0 -8
  660. package/types/grid-def.ts +0 -56
  661. package/types/image-def.ts +0 -32
  662. package/types/index.ts +0 -30
  663. package/types/link-def.ts +0 -56
  664. package/types/media-stack-def.ts +0 -31
  665. package/types/t-shirt-size.ts +0 -5
  666. package/types/tshirt-dimensions.ts +0 -20
  667. package/types/video-def.ts +0 -25
  668. package/util/blob.ts +0 -33
  669. package/util/copy-to-clipboard.ts +0 -17
  670. package/util/create-shadow-root.ts +0 -22
  671. package/util/date.ts +0 -84
  672. package/util/debounce.ts +0 -11
  673. package/util/file.ts +0 -15
  674. package/util/format-and-abbreviate-as-currency.ts +0 -125
  675. package/util/format-text.ts +0 -34
  676. package/util/format-to-max-char.ts +0 -68
  677. package/util/index-client.ts +0 -3
  678. package/util/index.ts +0 -112
  679. package/util/number-abbreviate.ts +0 -49
  680. package/util/specifier.ts +0 -43
  681. package/util/spread-to-transform.ts +0 -25
  682. package/util/step-animation.ts +0 -90
  683. package/util/timing.ts +0 -3
  684. package/util/toasts.tsx +0 -17
  685. package/util/two-way-map.ts +0 -19
package/bin/cli.js DELETED
@@ -1,100 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Main CLI entry point for @hanzo/ui
5
- * Supports various commands including registry:mcp
6
- */
7
-
8
- const { program } = require("commander");
9
-
10
- // Define the version from the package.json
11
- let version = "4.5.0";
12
- try {
13
- const packageJson = require("../package.json");
14
- version = packageJson.version || version;
15
- } catch (error) {
16
- // Use default version if package.json can't be loaded
17
- }
18
-
19
- // Set up the program
20
- program
21
- .name("@hanzo/ui")
22
- .description("Hanzo UI Component Library CLI")
23
- .version(version);
24
-
25
- // Add the MCP command (main command)
26
- program
27
- .command("mcp")
28
- .description("Start the Hanzo UI MCP server for AI assistants")
29
- .option(
30
- "-r, --registry <url>",
31
- "URL to the registry.json file",
32
- process.env.REGISTRY_URL || "https://ui.hanzo.ai/registry/registry.json"
33
- )
34
- .option(
35
- "-p, --port <port>",
36
- "Port to listen on (for HTTP mode)",
37
- "3333"
38
- )
39
- .option(
40
- "--http",
41
- "Run in HTTP mode instead of stdio mode",
42
- false
43
- )
44
- .action(async (options) => {
45
- // Delegate to the dedicated MCP binary
46
- require("./mcp.js");
47
- });
48
-
49
- // Add the registry:mcp command (alias for compatibility)
50
- program
51
- .command("registry:mcp")
52
- .description("Starts the registry MCP server (alias for 'mcp')")
53
- .option(
54
- "-r, --registry <url>",
55
- "URL to the registry.json file",
56
- process.env.REGISTRY_URL
57
- )
58
- .option(
59
- "-p, --port <port>",
60
- "Port to listen on (for HTTP mode)",
61
- "3333"
62
- )
63
- .option(
64
- "--http",
65
- "Run in HTTP mode instead of stdio mode",
66
- false
67
- )
68
- .action(async (options) => {
69
- try {
70
- // Set environment variables based on options
71
- if (options.registry) {
72
- process.env.REGISTRY_URL = options.registry;
73
- }
74
-
75
- // Set port if running in HTTP mode
76
- if (options.http) {
77
- process.env.MCP_HTTP_MODE = "true";
78
- process.env.MCP_PORT = options.port;
79
- }
80
-
81
- // Show info about the server
82
- console.error("Starting Hanzo UI MCP server...");
83
- console.error(`Registry URL: ${process.env.REGISTRY_URL || "[Using default registry]"}`);
84
-
85
- if (options.http) {
86
- console.error(`Running in HTTP mode on port ${options.port}`);
87
- } else {
88
- console.error("Running in stdio mode");
89
- }
90
-
91
- // Load and run the MCP server script
92
- require("./registry-mcp.js");
93
- } catch (error) {
94
- console.error("Error starting MCP server:", error);
95
- process.exit(1);
96
- }
97
- });
98
-
99
- // Parse command line arguments
100
- program.parse();
@@ -1,108 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Simple registry builder for @hanzo/ui
5
- * Creates the necessary structure for the MCP registry
6
- */
7
-
8
- const fs = require('fs');
9
- const path = require('path');
10
-
11
- // Configuration
12
- const REGISTRY_DIR = path.resolve(__dirname, '../registry');
13
- const PUBLIC_DIR = path.resolve(__dirname, '../public');
14
- const OUTPUT_FILE = path.resolve(__dirname, '../registry.json');
15
- const REGISTRY_STYLES = ['default', 'new-york'];
16
-
17
- // Registry schema
18
- const registrySchema = {
19
- "$schema": "https://ui.hanzo.com/schema/registry.json",
20
- "name": "hanzo",
21
- "homepage": "https://ui.hanzo.ai",
22
- "items": []
23
- };
24
-
25
- // Create the basic registry structure
26
- function createRegistry() {
27
- console.log('Creating registry structure...');
28
-
29
- const items = [];
30
-
31
- // Ensure registry directory exists
32
- if (!fs.existsSync(REGISTRY_DIR)) {
33
- fs.mkdirSync(REGISTRY_DIR, { recursive: true });
34
- }
35
-
36
- // Create style directories and add them to registry items
37
- for (const style of REGISTRY_STYLES) {
38
- const styleDir = path.join(REGISTRY_DIR, style);
39
- if (!fs.existsSync(styleDir)) {
40
- fs.mkdirSync(styleDir, { recursive: true });
41
-
42
- // Create ui and block directories
43
- fs.mkdirSync(path.join(styleDir, 'ui'), { recursive: true });
44
- fs.mkdirSync(path.join(styleDir, 'block'), { recursive: true });
45
- }
46
-
47
- // Add style to registry
48
- items.push({
49
- name: style,
50
- type: 'registry:style',
51
- description: `The ${style} style for Hanzo UI components.`,
52
- files: []
53
- });
54
- }
55
-
56
- // Add primitive components as empty placeholders
57
- const primitives = [
58
- 'accordion', 'alert', 'avatar', 'badge', 'button', 'card',
59
- 'checkbox', 'dialog', 'input', 'label', 'popover', 'select',
60
- 'table', 'tabs', 'toast'
61
- ];
62
-
63
- for (const component of primitives) {
64
- items.push({
65
- name: component,
66
- type: 'registry:component',
67
- description: `A ${component} component for your UI.`,
68
- files: [
69
- {
70
- path: `default/ui/${component}/${component}.tsx`,
71
- type: 'registry:component'
72
- }
73
- ]
74
- });
75
- }
76
-
77
- // Update registry.json
78
- registrySchema.items = items;
79
-
80
- // Create output directory if it doesn't exist
81
- const outputDir = path.dirname(OUTPUT_FILE);
82
- if (!fs.existsSync(outputDir)) {
83
- fs.mkdirSync(outputDir, { recursive: true });
84
- }
85
-
86
- // Write registry.json
87
- fs.writeFileSync(OUTPUT_FILE, JSON.stringify(registrySchema, null, 2), 'utf8');
88
- console.log(`Registry updated with ${items.length} items.`);
89
-
90
- // Create public/r directory if it doesn't exist
91
- const publicRDir = path.join(PUBLIC_DIR, 'r');
92
- if (!fs.existsSync(publicRDir)) {
93
- fs.mkdirSync(publicRDir, { recursive: true });
94
- }
95
-
96
- // Generate individual component JSON files
97
- console.log('Generating individual component JSON files...');
98
- for (const item of items) {
99
- const componentFile = path.join(publicRDir, `${item.name}.json`);
100
- fs.writeFileSync(componentFile, JSON.stringify(item, null, 2), 'utf8');
101
- }
102
-
103
- console.log(`Generated ${items.length} component JSON files.`);
104
- console.log('Registry creation complete!');
105
- }
106
-
107
- // Run the registry creation
108
- createRegistry();
package/bin/mcp.js DELETED
@@ -1,403 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Hanzo UI MCP Server
5
- *
6
- * This is the main entry point for the MCP server that can be run with:
7
- * - npx @hanzo/ui mcp
8
- * - npx @hanzo/ui@latest mcp
9
- *
10
- * The server provides AI assistants with tools to:
11
- * - List and search components
12
- * - Get component source code and demos
13
- * - Access UI blocks and patterns
14
- * - Generate usage examples
15
- * - Create custom themes
16
- */
17
-
18
- const { StdioServerTransport } = require("@modelcontextprotocol/sdk/server/stdio.js");
19
-
20
- // Helper to load the server implementation
21
- async function loadServer() {
22
- try {
23
- // Try loading from dist directory (published package)
24
- const distPath = require.resolve("../dist/mcp/enhanced-server.js");
25
- return require(distPath).default || require(distPath).server;
26
- } catch (error) {
27
- try {
28
- // Fallback to original server if enhanced not available
29
- const distPath = require.resolve("../dist/mcp/index.js");
30
- return require(distPath).server;
31
- } catch (innerError) {
32
- try {
33
- // Development mode - try to use ts-node if available
34
- const tsNode = require("ts-node");
35
- tsNode.register({
36
- transpileOnly: true,
37
- compilerOptions: {
38
- module: "commonjs",
39
- target: "es2020",
40
- esModuleInterop: true,
41
- allowSyntheticDefaultImports: true
42
- }
43
- });
44
-
45
- // Now try to load the TypeScript file
46
- try {
47
- const enhancedPath = require.resolve("../mcp/enhanced-server.ts");
48
- return require(enhancedPath).default || require(enhancedPath).server;
49
- } catch (e) {
50
- const srcPath = require.resolve("../mcp/index.ts");
51
- return require(srcPath).server;
52
- }
53
- } catch (tsError) {
54
- // If ts-node not available, create a basic server inline
55
- console.error("Creating basic MCP server (ts-node not available for enhanced features)");
56
- return createBasicServer();
57
- }
58
- }
59
- }
60
- }
61
-
62
- // Create a basic MCP server if we can't load the TypeScript files
63
- function createBasicServer() {
64
- const { Server } = require("@modelcontextprotocol/sdk/server/index.js");
65
- const { z } = require("zod");
66
- const { zodToJsonSchema } = require("zod-to-json-schema");
67
-
68
- const server = new Server(
69
- {
70
- name: "hanzo-ui",
71
- version: "4.5.0",
72
- },
73
- {
74
- capabilities: {
75
- resources: {},
76
- tools: {},
77
- },
78
- }
79
- );
80
-
81
- // Register basic tools
82
- const { ListToolsRequestSchema, CallToolRequestSchema } = require("@modelcontextprotocol/sdk/types.js");
83
-
84
- server.setRequestHandler(ListToolsRequestSchema, async () => {
85
- return {
86
- tools: [
87
- {
88
- name: "list_components",
89
- description: "List all available Hanzo UI components",
90
- inputSchema: zodToJsonSchema(z.object({})),
91
- },
92
- {
93
- name: "get_component",
94
- description: "Get information about a specific component",
95
- inputSchema: zodToJsonSchema(z.object({
96
- name: z.string().describe("Component name"),
97
- })),
98
- },
99
- ],
100
- };
101
- });
102
-
103
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
104
- const args = request.params.arguments || {};
105
-
106
- switch (request.params.name) {
107
- case "list_components": {
108
- return {
109
- content: [{
110
- type: "text",
111
- text: `# Hanzo UI Components
112
-
113
- The following components are available:
114
- - accordion - Expandable accordion component
115
- - alert - Alert message component
116
- - avatar - User avatar display
117
- - badge - Badge for labels and status
118
- - button - Versatile button component
119
- - card - Container card component
120
- - checkbox - Checkbox input
121
- - dialog - Modal dialog component
122
- - drawer - Sliding drawer panel
123
- - dropdown-menu - Dropdown menu component
124
- - form - Form components and validation
125
- - input - Text input field
126
- - label - Form label component
127
- - popover - Popover container
128
- - radio-group - Radio button group
129
- - select - Select dropdown
130
- - separator - Visual separator
131
- - sheet - Sheet modal component
132
- - skeleton - Loading skeleton
133
- - slider - Range slider input
134
- - switch - Toggle switch
135
- - table - Data table component
136
- - tabs - Tab navigation
137
- - textarea - Multiline text input
138
- - toast - Toast notification
139
- - tooltip - Tooltip component
140
-
141
- Use 'get_component' to get more details about a specific component.`,
142
- }],
143
- };
144
- }
145
-
146
- case "get_component": {
147
- const name = args.name;
148
- return {
149
- content: [{
150
- type: "text",
151
- text: `# ${name} Component
152
-
153
- To install the ${name} component:
154
-
155
- \`\`\`bash
156
- npx @hanzo/ui@latest add ${name}
157
- \`\`\`
158
-
159
- This will add the component to your project and install any required dependencies.
160
-
161
- For more information, visit https://ui.hanzo.ai/docs/components/${name}`,
162
- }],
163
- };
164
- }
165
-
166
- default:
167
- throw new Error(`Unknown tool: ${request.params.name}`);
168
- }
169
- });
170
-
171
- return server;
172
- }
173
-
174
- // Parse command line arguments
175
- function parseArgs() {
176
- const args = process.argv.slice(2);
177
- const options = {
178
- mode: 'stdio',
179
- port: 3333,
180
- registryUrl: process.env.REGISTRY_URL || 'https://ui.hanzo.ai/registry/registry.json',
181
- help: false,
182
- version: false,
183
- };
184
-
185
- for (let i = 0; i < args.length; i++) {
186
- const arg = args[i];
187
-
188
- if (arg === '--help' || arg === '-h') {
189
- options.help = true;
190
- } else if (arg === '--version' || arg === '-v') {
191
- options.version = true;
192
- } else if (arg === '--http') {
193
- options.mode = 'http';
194
- } else if (arg === '--port' && i + 1 < args.length) {
195
- options.port = parseInt(args[++i], 10);
196
- } else if (arg === '--registry' && i + 1 < args.length) {
197
- options.registryUrl = args[++i];
198
- }
199
- }
200
-
201
- return options;
202
- }
203
-
204
- // Display help message
205
- function showHelp() {
206
- console.log(`
207
- Hanzo UI MCP Server
208
-
209
- Usage:
210
- npx @hanzo/ui mcp [options]
211
-
212
- Options:
213
- --help, -h Show this help message
214
- --version, -v Show version information
215
- --http Run in HTTP mode instead of stdio (experimental)
216
- --port <port> Port for HTTP mode (default: 3333)
217
- --registry <url> Custom registry URL
218
-
219
- Examples:
220
- # Run MCP server (stdio mode for AI clients)
221
- npx @hanzo/ui mcp
222
-
223
- # Run in HTTP mode for testing
224
- npx @hanzo/ui mcp --http --port 3333
225
-
226
- # Use custom registry
227
- npx @hanzo/ui mcp --registry https://my-registry.com/registry.json
228
-
229
- AI Client Configuration:
230
-
231
- For Claude Desktop (.mcp.json):
232
- {
233
- "mcpServers": {
234
- "hanzo-ui": {
235
- "command": "npx",
236
- "args": ["@hanzo/ui", "mcp"]
237
- }
238
- }
239
- }
240
-
241
- For Cursor (.cursor/mcp.json):
242
- {
243
- "mcpServers": {
244
- "hanzo-ui": {
245
- "command": "npx",
246
- "args": ["@hanzo/ui", "mcp"]
247
- }
248
- }
249
- }
250
-
251
- For VS Code (.vscode/mcp.json):
252
- {
253
- "mcpServers": {
254
- "hanzo-ui": {
255
- "command": "npx",
256
- "args": ["@hanzo/ui", "mcp"]
257
- }
258
- }
259
- }
260
-
261
- Available Tools:
262
- - init Initialize a new project
263
- - list_components List all available components
264
- - get_component Get component details
265
- - get_component_source Get component source code
266
- - get_component_demo Get component demo code
267
- - add_component Add component to project
268
- - list_blocks List UI blocks/patterns
269
- - get_block Get block details
270
- - search_registry Search for components
271
- - get_installation_guide Get installation guide
272
-
273
- Available Resources:
274
- - hanzo://components/list Complete component list
275
- - hanzo://blocks/list UI blocks and patterns
276
- - hanzo://installation/guide Installation guide
277
- - hanzo://theming/guide Theming guide
278
-
279
- Available Prompts:
280
- - component_usage Generate usage examples
281
- - build_page Build complete pages
282
- - component_composition Create custom components
283
- - accessibility_review Review accessibility
284
- - theme_customization Generate custom themes
285
-
286
- Learn more: https://ui.hanzo.ai/docs/mcp
287
- `);
288
- }
289
-
290
- // Display version information
291
- function showVersion() {
292
- try {
293
- const packageJson = require("../package.json");
294
- console.log(`@hanzo/ui MCP Server v${packageJson.version}`);
295
- } catch (error) {
296
- console.log("@hanzo/ui MCP Server");
297
- }
298
- }
299
-
300
- // Start HTTP server (experimental)
301
- async function startHttpServer(server, port) {
302
- try {
303
- // Dynamically import HTTP transport
304
- const { HttpServerTransport } = require("@modelcontextprotocol/sdk/server/http.js");
305
-
306
- const transport = new HttpServerTransport({
307
- port: port,
308
- cors: {
309
- origin: "*",
310
- methods: ["GET", "POST"],
311
- allowedHeaders: ["Content-Type"],
312
- },
313
- });
314
-
315
- await server.connect(transport);
316
-
317
- console.log(`Hanzo UI MCP HTTP server listening on port ${port}`);
318
- console.log(`Access the server at http://localhost:${port}`);
319
- console.log(`\nAvailable endpoints:`);
320
- console.log(` GET http://localhost:${port}/health`);
321
- console.log(` POST http://localhost:${port}/mcp/v1/list_tools`);
322
- console.log(` POST http://localhost:${port}/mcp/v1/call_tool`);
323
- console.log(` POST http://localhost:${port}/mcp/v1/list_resources`);
324
- console.log(` POST http://localhost:${port}/mcp/v1/read_resource`);
325
- console.log(` POST http://localhost:${port}/mcp/v1/list_prompts`);
326
- console.log(` POST http://localhost:${port}/mcp/v1/get_prompt`);
327
- console.log(`\nPress Ctrl+C to stop the server`);
328
-
329
- return true;
330
- } catch (error) {
331
- console.error("Failed to start HTTP server:", error.message);
332
- console.error("Falling back to stdio mode...");
333
- return false;
334
- }
335
- }
336
-
337
- // Main function
338
- async function main() {
339
- const options = parseArgs();
340
-
341
- // Handle help and version flags
342
- if (options.help) {
343
- showHelp();
344
- process.exit(0);
345
- }
346
-
347
- if (options.version) {
348
- showVersion();
349
- process.exit(0);
350
- }
351
-
352
- // Set registry URL in environment
353
- process.env.REGISTRY_URL = options.registryUrl;
354
-
355
- console.error(`Loading Hanzo UI MCP server...`);
356
- console.error(`Registry: ${options.registryUrl}`);
357
-
358
- try {
359
- // Load the server implementation
360
- const server = await loadServer();
361
-
362
- if (options.mode === 'http') {
363
- // Try HTTP mode
364
- const httpStarted = await startHttpServer(server, options.port);
365
- if (!httpStarted) {
366
- // Fall back to stdio if HTTP fails
367
- const transport = new StdioServerTransport();
368
- await server.connect(transport);
369
- console.error("MCP server running in stdio mode");
370
- }
371
- } else {
372
- // Default stdio mode
373
- const transport = new StdioServerTransport();
374
- await server.connect(transport);
375
- console.error("MCP server running in stdio mode");
376
- console.error("Ready for AI client connections");
377
- }
378
- } catch (error) {
379
- console.error("Error starting MCP server:", error);
380
- console.error("\nTroubleshooting:");
381
- console.error("1. Make sure @hanzo/ui is properly installed");
382
- console.error("2. Try running: npm install @hanzo/ui@latest");
383
- console.error("3. Check that all dependencies are installed");
384
- process.exit(1);
385
- }
386
- }
387
-
388
- // Handle process signals
389
- process.on('SIGINT', () => {
390
- console.error("\nShutting down MCP server...");
391
- process.exit(0);
392
- });
393
-
394
- process.on('SIGTERM', () => {
395
- console.error("\nShutting down MCP server...");
396
- process.exit(0);
397
- });
398
-
399
- // Start the server
400
- main().catch((error) => {
401
- console.error("Fatal error:", error);
402
- process.exit(1);
403
- });
@@ -1,15 +0,0 @@
1
- // @ts-check
2
- #!/usr/bin/env node
3
-
4
- const { program } = require("commander")
5
-
6
- program
7
- .name("npx @hanzo/ui registry:mcp")
8
- .description("Run the Hanzo UI registry with MCP support")
9
- .action(() => {
10
- console.log("Starting Hanzo UI MCP server...")
11
- // Execute the MCP server
12
- require("../bin/registry-mcp.js")
13
- })
14
-
15
- program.parse()
@@ -1,19 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Find the registry-mcp.js file in the node_modules directory
4
- MCP_SCRIPT=$(find ./node_modules -path "*/@hanzo/ui/bin/registry-mcp.js" -type f | head -1)
5
-
6
- if [ -z "$MCP_SCRIPT" ]; then
7
- echo "Error: @hanzo/ui registry-mcp.js not found."
8
- echo "Please make sure @hanzo/ui is installed or run 'npm install @hanzo/ui' first."
9
- exit 1
10
- fi
11
-
12
- # Set the REGISTRY_URL environment variable if not already set
13
- if [ -z "$REGISTRY_URL" ]; then
14
- export REGISTRY_URL="https://ui.hanzo.ai/registry/registry.json"
15
- echo "Using default registry URL: $REGISTRY_URL"
16
- fi
17
-
18
- # Execute the MCP script
19
- node "$MCP_SCRIPT"