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