@hanzo/ui 4.8.5 → 4.9.0

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 (683) 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 +1096 -9353
  385. package/dist/index.js.map +1 -0
  386. package/dist/index.mjs +47 -9342
  387. package/dist/index.mjs.map +1 -0
  388. package/dist/lib/utils.js +10 -45
  389. package/dist/lib/utils.js.map +1 -0
  390. package/dist/lib/utils.mjs +3 -28
  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 -270
  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/src/utils.js +0 -47
  491. package/dist/src/utils.mjs +0 -28
  492. package/dist/tailwind/index.js +0 -2050
  493. package/dist/tailwind/index.mjs +0 -2019
  494. package/dist/types/index.js +0 -79
  495. package/dist/types/index.mjs +0 -56
  496. package/dist/util/format-text.js +0 -51
  497. package/dist/util/format-text.mjs +0 -32
  498. package/dist/util/index.js +0 -384
  499. package/dist/util/index.mjs +0 -363
  500. package/frameworks/core/index.ts +0 -6
  501. package/frameworks/core/utils/index.ts +0 -64
  502. package/frameworks/react/components/button.tsx +0 -26
  503. package/frameworks/react/components/index.ts +0 -5
  504. package/frameworks/react/hooks/index.ts +0 -5
  505. package/frameworks/react/index.ts +0 -9
  506. package/frameworks/react/package.json +0 -8
  507. package/frameworks/react/utils/index.ts +0 -2
  508. package/frameworks/react-native/index.ts +0 -9
  509. package/frameworks/react-native/package.json +0 -8
  510. package/frameworks/registry.json +0 -371
  511. package/frameworks/setup.sh +0 -69
  512. package/frameworks/svelte/index.ts +0 -9
  513. package/frameworks/svelte/package.json +0 -8
  514. package/frameworks/tracker.json +0 -1854
  515. package/frameworks/vue/index.ts +0 -9
  516. package/frameworks/vue/package.json +0 -8
  517. package/helpers/file.ts +0 -33
  518. package/helpers/memoization.ts +0 -40
  519. package/primitives/accordion.tsx +0 -74
  520. package/primitives/action-button.tsx +0 -42
  521. package/primitives/alert-dialog.tsx +0 -185
  522. package/primitives/alert.tsx +0 -74
  523. package/primitives/apply-typography.tsx +0 -55
  524. package/primitives/aspect-ratio.tsx +0 -5
  525. package/primitives/avatar.tsx +0 -57
  526. package/primitives/background-beams.tsx +0 -142
  527. package/primitives/badge.tsx +0 -45
  528. package/primitives/breadcrumb.tsx +0 -130
  529. package/primitives/breakpoint-indicator.tsx +0 -19
  530. package/primitives/button.tsx +0 -72
  531. package/primitives/calendar.tsx +0 -72
  532. package/primitives/card.tsx +0 -97
  533. package/primitives/carousel.tsx +0 -238
  534. package/primitives/chat/chat-input-area.tsx +0 -88
  535. package/primitives/chat/chat-input.tsx +0 -71
  536. package/primitives/chat/files-preview.tsx +0 -331
  537. package/primitives/chat/index.ts +0 -6
  538. package/primitives/chat/json-form.tsx +0 -8
  539. package/primitives/chat/message-list.tsx +0 -308
  540. package/primitives/chat/message.tsx +0 -569
  541. package/primitives/chat/sqlite-preview.tsx +0 -215
  542. package/primitives/checkbox.tsx +0 -32
  543. package/primitives/collapsible.tsx +0 -9
  544. package/primitives/combobox.tsx +0 -239
  545. package/primitives/command.tsx +0 -151
  546. package/primitives/context-menu.tsx +0 -206
  547. package/primitives/copy-to-clipboard-icon.tsx +0 -60
  548. package/primitives/dialog-video-controller.tsx +0 -38
  549. package/primitives/dialog.tsx +0 -128
  550. package/primitives/dot-pattern.tsx +0 -57
  551. package/primitives/dots-loader.tsx +0 -13
  552. package/primitives/drawer.tsx +0 -113
  553. package/primitives/dropdown-menu.tsx +0 -199
  554. package/primitives/error-message.tsx +0 -19
  555. package/primitives/file-uploader.tsx +0 -203
  556. package/primitives/form.tsx +0 -185
  557. package/primitives/hover-card.tsx +0 -28
  558. package/primitives/icons/github.tsx +0 -14
  559. package/primitives/icons/index.ts +0 -18
  560. package/primitives/icons/youtube-logo.tsx +0 -59
  561. package/primitives/index-client.ts +0 -4
  562. package/primitives/index-common.ts +0 -304
  563. package/primitives/index-next.ts +0 -4
  564. package/primitives/input-otp.tsx +0 -65
  565. package/primitives/input.tsx +0 -128
  566. package/primitives/label.tsx +0 -21
  567. package/primitives/list-adaptor.ts +0 -12
  568. package/primitives/list-box.tsx +0 -74
  569. package/primitives/loading-spinner.tsx +0 -33
  570. package/primitives/markdown-preview.tsx +0 -612
  571. package/primitives/mermaid.tsx +0 -191
  572. package/primitives/navigation-menu.tsx +0 -147
  573. package/primitives/next/image.tsx +0 -91
  574. package/primitives/next/index.ts +0 -7
  575. package/primitives/next/inline-icon.tsx +0 -36
  576. package/primitives/next/link-element.tsx +0 -109
  577. package/primitives/next/mdx-link.tsx +0 -22
  578. package/primitives/next/media-stack.tsx +0 -52
  579. package/primitives/next/nav-items.tsx +0 -45
  580. package/primitives/next/youtube-embed.tsx +0 -83
  581. package/primitives/pagination.tsx +0 -117
  582. package/primitives/popover.tsx +0 -34
  583. package/primitives/pretty-json-print.tsx +0 -28
  584. package/primitives/progress.tsx +0 -27
  585. package/primitives/prompt-textarea.tsx +0 -72
  586. package/primitives/qr-code.tsx +0 -112
  587. package/primitives/radio-group.tsx +0 -42
  588. package/primitives/resizable.tsx +0 -47
  589. package/primitives/scroll-area.tsx +0 -57
  590. package/primitives/search-input.tsx +0 -66
  591. package/primitives/select.tsx +0 -122
  592. package/primitives/separator.tsx +0 -26
  593. package/primitives/sheet.tsx +0 -139
  594. package/primitives/skeleton.tsx +0 -18
  595. package/primitives/slider.tsx +0 -63
  596. package/primitives/sonner.tsx +0 -35
  597. package/primitives/step-indicator.tsx +0 -69
  598. package/primitives/stepper.tsx +0 -272
  599. package/primitives/switch.tsx +0 -27
  600. package/primitives/table.tsx +0 -105
  601. package/primitives/tabs.tsx +0 -50
  602. package/primitives/text-area.tsx +0 -26
  603. package/primitives/text-link.tsx +0 -25
  604. package/primitives/textarea.tsx +0 -64
  605. package/primitives/textfield.tsx +0 -78
  606. package/primitives/toast.tsx +0 -30
  607. package/primitives/toggle-group.tsx +0 -63
  608. package/primitives/toggle.tsx +0 -44
  609. package/primitives/tooltip.tsx +0 -47
  610. package/primitives/video-player.tsx +0 -23
  611. package/src/button.ts +0 -1
  612. package/src/hooks/index.ts +0 -7
  613. package/src/hooks/use-click-away.ts +0 -31
  614. package/src/hooks/use-combined-refs.ts +0 -22
  615. package/src/hooks/use-copy-clipboard.ts +0 -30
  616. package/src/hooks/use-debounce.ts +0 -17
  617. package/src/hooks/use-fill-ids.ts +0 -25
  618. package/src/hooks/use-map.ts +0 -26
  619. package/src/hooks/use-measure.ts +0 -42
  620. package/src/hooks/use-reverse-video-playback.ts +0 -43
  621. package/src/hooks/use-scroll-restoration.ts +0 -50
  622. package/src/index-lean.ts +0 -87
  623. package/src/index.ts +0 -54
  624. package/src/mcp/README.md +0 -141
  625. package/src/mcp/enhanced-server.ts +0 -1208
  626. package/src/mcp/index.ts +0 -518
  627. package/src/mcp/package.json +0 -10
  628. package/src/registry/api.ts +0 -164
  629. package/src/registry/index.ts +0 -60
  630. package/src/registry/package.json +0 -10
  631. package/src/utils.ts +0 -19
  632. package/style/drawer.css +0 -163
  633. package/style/globals.css +0 -13
  634. package/style/hanzo-common.css +0 -31
  635. package/style/hanzo-default-colors.css +0 -82
  636. package/style/theme-provider.tsx +0 -20
  637. package/tailwind/colors.tailwind.js +0 -53
  638. package/tailwind/fontFamily.tailwind.ts +0 -7
  639. package/tailwind/fontSize.tailwind.ts +0 -13
  640. package/tailwind/index.ts +0 -7
  641. package/tailwind/safelist.tailwind.js +0 -26
  642. package/tailwind/screens.tailwind.js +0 -8
  643. package/tailwind/spacing.tailwind.js +0 -65
  644. package/tailwind/tailwind.config.hanzo-preset.d.ts +0 -5
  645. package/tailwind/tailwind.config.hanzo-preset.js +0 -915
  646. package/tailwind/tw-font-desc.ts +0 -15
  647. package/tailwind/typo-plugin/get-plugin-styles.js +0 -679
  648. package/tailwind/typo-plugin/index.d.ts +0 -9
  649. package/tailwind/typo-plugin/index.js +0 -141
  650. package/tailwind/typo-plugin/utils.js +0 -60
  651. package/tailwind/typography-test.mdx +0 -35
  652. package/tailwind/z-index.tailwind.js +0 -71
  653. package/types/animation-def.ts +0 -3
  654. package/types/breakpoints.ts +0 -11
  655. package/types/bullet-item.ts +0 -10
  656. package/types/button-def.ts +0 -39
  657. package/types/dimensions.ts +0 -8
  658. package/types/grid-def.ts +0 -56
  659. package/types/image-def.ts +0 -32
  660. package/types/index.ts +0 -30
  661. package/types/link-def.ts +0 -56
  662. package/types/media-stack-def.ts +0 -31
  663. package/types/t-shirt-size.ts +0 -5
  664. package/types/tshirt-dimensions.ts +0 -20
  665. package/types/video-def.ts +0 -25
  666. package/util/blob.ts +0 -33
  667. package/util/copy-to-clipboard.ts +0 -17
  668. package/util/create-shadow-root.ts +0 -22
  669. package/util/date.ts +0 -84
  670. package/util/debounce.ts +0 -11
  671. package/util/file.ts +0 -15
  672. package/util/format-and-abbreviate-as-currency.ts +0 -125
  673. package/util/format-text.ts +0 -34
  674. package/util/format-to-max-char.ts +0 -68
  675. package/util/index-client.ts +0 -3
  676. package/util/index.ts +0 -112
  677. package/util/number-abbreviate.ts +0 -49
  678. package/util/specifier.ts +0 -43
  679. package/util/spread-to-transform.ts +0 -25
  680. package/util/step-animation.ts +0 -90
  681. package/util/timing.ts +0 -3
  682. package/util/toasts.tsx +0 -17
  683. 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
- }