@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
@@ -1,100 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- // This is the main entry point for the MCP server
4
- // It should be runnable directly with npx @hanzo/ui registry:mcp
5
-
6
- /**
7
- * This script starts the MCP server for Hanzo UI
8
- * It can be run with npx @hanzo/ui registry:mcp
9
- */
10
- const { StdioServerTransport } = require("@modelcontextprotocol/sdk/server/stdio.js");
11
-
12
- // Import the server dynamically based on where it's available
13
- async function loadServer() {
14
- try {
15
- // Try loading from dist directory (published package)
16
- return require("../dist/mcp/index.js").server;
17
- } catch (error) {
18
- try {
19
- // Fallback to direct import (development)
20
- return require("../mcp/index.js").server;
21
- } catch (innerError) {
22
- console.error("Failed to load the MCP server implementation:", innerError);
23
- process.exit(1);
24
- }
25
- }
26
- }
27
-
28
- // Start HTTP server if requested
29
- async function startHttpServer(server) {
30
- try {
31
- // Dynamically import the HTTP transport - we don't want to require
32
- // this dependency if we're not using HTTP mode
33
- const { HttpServerTransport } = require("@modelcontextprotocol/sdk/server/http.js");
34
-
35
- // Get port from environment or use default
36
- const port = process.env.MCP_PORT || 3333;
37
-
38
- // Create HTTP transport
39
- const transport = new HttpServerTransport({
40
- port: parseInt(port, 10),
41
- cors: {
42
- origin: "*", // Allow any origin
43
- methods: ["GET", "POST"],
44
- allowedHeaders: ["Content-Type"],
45
- },
46
- });
47
-
48
- // Connect the server to the transport
49
- await server.connect(transport);
50
-
51
- console.error(`MCP HTTP server listening on port ${port}`);
52
- console.error(`You can access the server at http://localhost:${port}`);
53
- } catch (error) {
54
- console.error("Failed to start HTTP server:", error);
55
- console.error("Falling back to STDIO mode...");
56
- return false;
57
- }
58
-
59
- return true;
60
- }
61
-
62
- async function main() {
63
- try {
64
- console.error("Loading Hanzo UI MCP server...");
65
-
66
- // Default registry URL if not set
67
- if (!process.env.REGISTRY_URL) {
68
- process.env.REGISTRY_URL = "https://ui.hanzo.ai/registry/registry.json";
69
- console.error(`Using default registry URL: ${process.env.REGISTRY_URL}`);
70
- console.error("You can set a custom registry URL with the REGISTRY_URL environment variable.");
71
- }
72
-
73
- // Load the server
74
- const server = await loadServer();
75
-
76
- // Check if we should use HTTP mode
77
- const useHttp = process.env.MCP_HTTP_MODE === "true";
78
-
79
- if (useHttp) {
80
- // Try to start HTTP server, fall back to stdio if it fails
81
- const httpStarted = await startHttpServer(server);
82
- if (!httpStarted) {
83
- // Fall back to stdio
84
- const transport = new StdioServerTransport();
85
- await server.connect(transport);
86
- }
87
- } else {
88
- // Use stdio mode
89
- const transport = new StdioServerTransport();
90
- await server.connect(transport);
91
- console.error("MCP server running in stdio mode");
92
- }
93
- } catch (error) {
94
- console.error("Error starting MCP server:", error);
95
- process.exit(1);
96
- }
97
- }
98
-
99
- // Start the server
100
- main();
@@ -1,22 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Set the registry URL
4
- export REGISTRY_URL=${REGISTRY_URL:-"https://ui.hanzo.ai/registry/registry.json"}
5
-
6
- echo "Starting Hanzo UI MCP server with registry URL: $REGISTRY_URL"
7
- echo "This server enables AI assistants to interact with the Hanzo UI component library."
8
- echo "Use this as the URL for 'npx @hanzo/ui registry:mcp' in your MCP configuration."
9
- echo ""
10
- echo "Press Ctrl+C to stop the server."
11
-
12
- # Find the CLI script
13
- if [ -f "./bin/cli.js" ]; then
14
- # In development directory structure
15
- node ./bin/cli.js registry:mcp
16
- elif [ -f "./node_modules/@hanzo/ui/bin/cli.js" ]; then
17
- # Installed as dependency
18
- node ./node_modules/@hanzo/ui/bin/cli.js registry:mcp
19
- else
20
- # Use npx as fallback
21
- npx @hanzo/ui registry:mcp
22
- fi
package/bin/test-mcp.sh DELETED
@@ -1,52 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Test script for verifying the Hanzo UI MCP functionality
4
-
5
- # Set a test registry URL
6
- export REGISTRY_URL="https://ui.hanzo.com/registry/registry.json"
7
-
8
- echo "Testing Hanzo UI MCP Server"
9
- echo "============================"
10
- echo ""
11
- echo "This script will test the following functionalities:"
12
- echo "1. Loading the server from NPX"
13
- echo "2. Server startup with custom registry URL"
14
- echo ""
15
-
16
- # First test: Simple command check
17
- echo "Test 1: Check if the NPX command is recognized"
18
- # Just check if the command exists without running it
19
- which npx > /dev/null 2>&1
20
- if [ $? -eq 0 ]; then
21
- echo "✅ NPX is available"
22
- else
23
- echo "❌ NPX is not installed"
24
- exit 1
25
- fi
26
-
27
- # Second test: Server startup check
28
- echo ""
29
- echo "Test 2: Server startup (will exit automatically after 3 seconds)"
30
- echo "Running: REGISTRY_URL=$REGISTRY_URL timeout 3 npx @hanzo/ui registry:mcp"
31
- echo ""
32
- echo "Expected output: You should see the server startup message"
33
- echo ""
34
-
35
- # Run with timeout to automatically kill after 3 seconds
36
- # This works because the MCP server doesn't terminate on its own
37
- timeout 3 npx @hanzo/ui registry:mcp 2>&1 | grep "Starting Hanzo UI MCP server"
38
-
39
- if [ $? -eq 0 ]; then
40
- echo ""
41
- echo "✅ Server startup message detected"
42
- else
43
- echo ""
44
- echo "❌ Server failed to start properly"
45
- exit 1
46
- fi
47
-
48
- echo ""
49
- echo "All tests completed successfully!"
50
- echo ""
51
- echo "The Hanzo UI MCP server is ready to be used in your MCP configuration with:"
52
- echo "npx @hanzo/ui registry:mcp"
@@ -1,196 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * This script updates the registry.json file based on components
5
- * found in the registry directory. It's similar to the approach used by hanzo/ui.
6
- */
7
-
8
- const fs = require('fs');
9
- const path = require('path');
10
- const glob = require('glob');
11
-
12
- // Configuration
13
- const REGISTRY_DIR = path.resolve(__dirname, '../registry');
14
- const PUBLIC_DIR = path.resolve(__dirname, '../public');
15
- const OUTPUT_FILE = path.resolve(__dirname, '../registry.json');
16
- const REGISTRY_STYLES = ['default', 'new-york']; // Add other styles as needed
17
-
18
- // Schema for registry.json
19
- const registrySchema = {
20
- "$schema": "https://ui.hanzo.com/schema/registry.json",
21
- "name": "hanzo",
22
- "homepage": "https://ui.hanzo.ai",
23
- "items": []
24
- };
25
-
26
- /**
27
- * Main function to update the registry
28
- */
29
- async function updateRegistry() {
30
- try {
31
- console.log('Updating registry.json...');
32
-
33
- // Find all registry components
34
- const items = [];
35
-
36
- // Process each style directory
37
- for (const style of REGISTRY_STYLES) {
38
- const styleDir = path.join(REGISTRY_DIR, style);
39
-
40
- // Skip if style directory doesn't exist
41
- if (!fs.existsSync(styleDir)) {
42
- console.log(`Style directory not found: ${style}`);
43
- continue;
44
- }
45
-
46
- // Process UI components
47
- const uiDir = path.join(styleDir, 'ui');
48
- if (fs.existsSync(uiDir)) {
49
- const uiComponents = glob.sync(`${uiDir}/**/!(*.test|*.spec).{ts,tsx,js,jsx}`);
50
-
51
- for (const filePath of uiComponents) {
52
- const relativePath = path.relative(REGISTRY_DIR, filePath);
53
- const dirName = path.basename(path.dirname(filePath));
54
- const fileName = path.basename(filePath);
55
-
56
- // Skip index files and non-component files
57
- if (fileName === 'index.ts' || fileName === 'index.tsx') continue;
58
-
59
- // Component name is usually the directory name
60
- const name = dirName;
61
-
62
- // Check if component already exists in the registry
63
- if (!items.find(item => item.name === name && item.type === 'registry:component')) {
64
- const componentMeta = {
65
- name,
66
- type: 'registry:component',
67
- description: `A ${name} component for your UI.`,
68
- files: [
69
- {
70
- path: relativePath,
71
- type: 'registry:component'
72
- }
73
- ],
74
- registryDependencies: []
75
- };
76
-
77
- // Try to parse dependencies from the file content
78
- try {
79
- const content = fs.readFileSync(filePath, 'utf8');
80
-
81
- // Find import statements for other components
82
- const dependencies = [];
83
- const importRegex = /import.*from ['"]@\/components\/ui\/([^'"]+)['"]/g;
84
- let match;
85
-
86
- while ((match = importRegex.exec(content)) !== null) {
87
- const dependency = match[1];
88
- if (!dependencies.includes(dependency)) {
89
- dependencies.push(dependency);
90
- }
91
- }
92
-
93
- if (dependencies.length > 0) {
94
- componentMeta.registryDependencies = dependencies;
95
- }
96
- } catch (error) {
97
- console.warn(`Error parsing dependencies for ${name}:`, error.message);
98
- }
99
-
100
- items.push(componentMeta);
101
- }
102
- }
103
- }
104
-
105
- // Process other component types (blocks, etc.)
106
- const blockDir = path.join(styleDir, 'block');
107
- if (fs.existsSync(blockDir)) {
108
- const blocks = glob.sync(`${blockDir}/**/!(*.test|*.spec).{ts,tsx,js,jsx}`);
109
-
110
- for (const filePath of blocks) {
111
- const relativePath = path.relative(REGISTRY_DIR, filePath);
112
- const dirName = path.basename(path.dirname(filePath));
113
-
114
- // Skip helper files
115
- if (dirName === 'utils' || dirName === 'helpers') continue;
116
-
117
- // Block name is usually the directory name
118
- const name = dirName;
119
-
120
- // Check if block already exists in the registry
121
- if (!items.find(item => item.name === name && item.type === 'registry:block')) {
122
- items.push({
123
- name,
124
- type: 'registry:block',
125
- description: `A ${name} block for your UI.`,
126
- files: [
127
- {
128
- path: relativePath,
129
- type: 'registry:block'
130
- }
131
- ]
132
- });
133
- }
134
- }
135
- }
136
- }
137
-
138
- // Add style definition
139
- for (const style of REGISTRY_STYLES) {
140
- items.push({
141
- name: style,
142
- type: 'registry:style',
143
- description: `The ${style} style for Hanzo UI components.`,
144
- files: []
145
- });
146
- }
147
-
148
- // Update registry.json
149
- registrySchema.items = items;
150
-
151
- // Create output directory if it doesn't exist
152
- const outputDir = path.dirname(OUTPUT_FILE);
153
- if (!fs.existsSync(outputDir)) {
154
- fs.mkdirSync(outputDir, { recursive: true });
155
- }
156
-
157
- // Write registry.json
158
- fs.writeFileSync(OUTPUT_FILE, JSON.stringify(registrySchema, null, 2), 'utf8');
159
- console.log(`Registry updated with ${items.length} items.`);
160
-
161
- // Create public/r directory if it doesn't exist
162
- const publicRDir = path.join(PUBLIC_DIR, 'r');
163
- if (!fs.existsSync(publicRDir)) {
164
- fs.mkdirSync(publicRDir, { recursive: true });
165
- }
166
-
167
- // Generate individual component JSON files
168
- console.log('Generating individual component JSON files...');
169
- for (const item of items) {
170
- const componentFile = path.join(publicRDir, `${item.name}.json`);
171
-
172
- // Add content to files if they exist
173
- if (item.files && item.files.length > 0) {
174
- for (const file of item.files) {
175
- const filePath = path.join(REGISTRY_DIR, file.path);
176
- if (fs.existsSync(filePath)) {
177
- file.content = fs.readFileSync(filePath, 'utf8');
178
- }
179
- }
180
- }
181
-
182
- // Write component JSON file
183
- fs.writeFileSync(componentFile, JSON.stringify(item, null, 2), 'utf8');
184
- }
185
-
186
- console.log(`Generated ${items.length} component JSON files.`);
187
- console.log('Registry update complete!');
188
-
189
- } catch (error) {
190
- console.error('Error updating registry:', error);
191
- process.exit(1);
192
- }
193
- }
194
-
195
- // Run the update
196
- updateRegistry();
@@ -1,6 +0,0 @@
1
- export { LoginBasic } from './login-basic'
2
- export { LoginSocial } from './login-social'
3
- export { Login2FA } from './login-2fa'
4
- export { Signup } from './signup'
5
- export { PasswordReset } from './password-reset'
6
- export { MagicLink } from './magic-link'
@@ -1,165 +0,0 @@
1
- 'use client'
2
-
3
- import { useState } from 'react'
4
- import { cn } from '@hanzo/ui/util'
5
- import { Button } from '@hanzo/ui/primitives'
6
- import {
7
- Card,
8
- CardContent,
9
- CardDescription,
10
- CardHeader,
11
- CardTitle,
12
- } from '@hanzo/ui/primitives'
13
- import { Input } from '@hanzo/ui/primitives'
14
- import { Label } from '@hanzo/ui/primitives'
15
- import {
16
- InputOTP,
17
- InputOTPGroup,
18
- InputOTPSeparator,
19
- InputOTPSlot,
20
- } from '@hanzo/ui/primitives'
21
-
22
- interface Login2FAProps extends React.ComponentPropsWithoutRef<'div'> {
23
- onSubmit?: (email: string, password: string, code?: string) => void
24
- onResendCode?: () => void
25
- onForgotPassword?: () => void
26
- onSignUp?: () => void
27
- }
28
-
29
- export function Login2FA({
30
- className,
31
- onSubmit,
32
- onResendCode,
33
- onForgotPassword,
34
- onSignUp,
35
- ...props
36
- }: Login2FAProps) {
37
- const [step, setStep] = useState<'credentials' | '2fa'>('credentials')
38
- const [credentials, setCredentials] = useState({ email: '', password: '' })
39
- const [otpValue, setOtpValue] = useState('')
40
-
41
- const handleCredentialsSubmit = (e: React.FormEvent<HTMLFormElement>) => {
42
- e.preventDefault()
43
- const formData = new FormData(e.currentTarget)
44
- const email = formData.get('email') as string
45
- const password = formData.get('password') as string
46
- setCredentials({ email, password })
47
- setStep('2fa')
48
- }
49
-
50
- const handleOTPSubmit = (e: React.FormEvent<HTMLFormElement>) => {
51
- e.preventDefault()
52
- onSubmit?.(credentials.email, credentials.password, otpValue)
53
- }
54
-
55
- return (
56
- <div className={cn('flex flex-col gap-6', className)} {...props}>
57
- <Card>
58
- <CardHeader>
59
- <CardTitle className="text-2xl">
60
- {step === 'credentials' ? 'Login' : 'Two-factor authentication'}
61
- </CardTitle>
62
- <CardDescription>
63
- {step === 'credentials'
64
- ? 'Enter your email and password to login'
65
- : 'Enter the 6-digit code from your authenticator app'}
66
- </CardDescription>
67
- </CardHeader>
68
- <CardContent>
69
- {step === 'credentials' ? (
70
- <form onSubmit={handleCredentialsSubmit}>
71
- <div className="flex flex-col gap-6">
72
- <div className="grid gap-2">
73
- <Label htmlFor="email">Email</Label>
74
- <Input
75
- id="email"
76
- name="email"
77
- type="email"
78
- placeholder="m@example.com"
79
- required
80
- />
81
- </div>
82
- <div className="grid gap-2">
83
- <div className="flex items-center">
84
- <Label htmlFor="password">Password</Label>
85
- {onForgotPassword && (
86
- <button
87
- type="button"
88
- onClick={onForgotPassword}
89
- className="ml-auto inline-block text-sm underline-offset-4 hover:underline"
90
- >
91
- Forgot your password?
92
- </button>
93
- )}
94
- </div>
95
- <Input id="password" name="password" type="password" required />
96
- </div>
97
- <Button type="submit" className="w-full">
98
- Continue
99
- </Button>
100
- </div>
101
- {onSignUp && (
102
- <div className="mt-4 text-center text-sm">
103
- Don&apos;t have an account?{' '}
104
- <button
105
- type="button"
106
- onClick={onSignUp}
107
- className="underline underline-offset-4"
108
- >
109
- Sign up
110
- </button>
111
- </div>
112
- )}
113
- </form>
114
- ) : (
115
- <form onSubmit={handleOTPSubmit}>
116
- <div className="flex flex-col gap-6">
117
- <div className="flex justify-center">
118
- <InputOTP
119
- maxLength={6}
120
- value={otpValue}
121
- onChange={(value) => setOtpValue(value)}
122
- >
123
- <InputOTPGroup>
124
- <InputOTPSlot index={0} />
125
- <InputOTPSlot index={1} />
126
- <InputOTPSlot index={2} />
127
- </InputOTPGroup>
128
- <InputOTPSeparator />
129
- <InputOTPGroup>
130
- <InputOTPSlot index={3} />
131
- <InputOTPSlot index={4} />
132
- <InputOTPSlot index={5} />
133
- </InputOTPGroup>
134
- </InputOTP>
135
- </div>
136
- <Button type="submit" className="w-full" disabled={otpValue.length !== 6}>
137
- Verify
138
- </Button>
139
- <div className="flex flex-col gap-2">
140
- <Button
141
- type="button"
142
- variant="outline"
143
- className="w-full"
144
- onClick={() => setStep('credentials')}
145
- >
146
- Back to login
147
- </Button>
148
- {onResendCode && (
149
- <button
150
- type="button"
151
- onClick={onResendCode}
152
- className="text-center text-sm underline underline-offset-4"
153
- >
154
- Didn&apos;t receive a code? Resend
155
- </button>
156
- )}
157
- </div>
158
- </div>
159
- </form>
160
- )}
161
- </CardContent>
162
- </Card>
163
- </div>
164
- )
165
- }
@@ -1,94 +0,0 @@
1
- 'use client'
2
-
3
- import { cn } from '@hanzo/ui/util'
4
- import { Button } from '@hanzo/ui/primitives'
5
- import {
6
- Card,
7
- CardContent,
8
- CardDescription,
9
- CardHeader,
10
- CardTitle,
11
- } from '@hanzo/ui/primitives'
12
- import { Input } from '@hanzo/ui/primitives'
13
- import { Label } from '@hanzo/ui/primitives'
14
-
15
- interface LoginBasicProps extends React.ComponentPropsWithoutRef<'div'> {
16
- onSubmit?: (email: string, password: string) => void
17
- onForgotPassword?: () => void
18
- onSignUp?: () => void
19
- }
20
-
21
- export function LoginBasic({
22
- className,
23
- onSubmit,
24
- onForgotPassword,
25
- onSignUp,
26
- ...props
27
- }: LoginBasicProps) {
28
- const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {
29
- e.preventDefault()
30
- const formData = new FormData(e.currentTarget)
31
- const email = formData.get('email') as string
32
- const password = formData.get('password') as string
33
- onSubmit?.(email, password)
34
- }
35
-
36
- return (
37
- <div className={cn('flex flex-col gap-6', className)} {...props}>
38
- <Card>
39
- <CardHeader>
40
- <CardTitle className="text-2xl">Login</CardTitle>
41
- <CardDescription>
42
- Enter your email below to login to your account
43
- </CardDescription>
44
- </CardHeader>
45
- <CardContent>
46
- <form onSubmit={handleSubmit}>
47
- <div className="flex flex-col gap-6">
48
- <div className="grid gap-2">
49
- <Label htmlFor="email">Email</Label>
50
- <Input
51
- id="email"
52
- name="email"
53
- type="email"
54
- placeholder="m@example.com"
55
- required
56
- />
57
- </div>
58
- <div className="grid gap-2">
59
- <div className="flex items-center">
60
- <Label htmlFor="password">Password</Label>
61
- {onForgotPassword && (
62
- <button
63
- type="button"
64
- onClick={onForgotPassword}
65
- className="ml-auto inline-block text-sm underline-offset-4 hover:underline"
66
- >
67
- Forgot your password?
68
- </button>
69
- )}
70
- </div>
71
- <Input id="password" name="password" type="password" required />
72
- </div>
73
- <Button type="submit" className="w-full">
74
- Login
75
- </Button>
76
- </div>
77
- {onSignUp && (
78
- <div className="mt-4 text-center text-sm">
79
- Don&apos;t have an account?{' '}
80
- <button
81
- type="button"
82
- onClick={onSignUp}
83
- className="underline underline-offset-4"
84
- >
85
- Sign up
86
- </button>
87
- </div>
88
- )}
89
- </form>
90
- </CardContent>
91
- </Card>
92
- </div>
93
- )
94
- }