@hanzo/ui 5.0.1 → 5.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +1089 -9070
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +45 -8695
- package/dist/index.mjs.map +1 -1
- package/dist/lib/utils.js +12 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/utils.mjs +3 -0
- 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 -272
- 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/tailwind.js +0 -2025
- package/dist/tailwind.js.map +0 -1
- package/dist/tailwind.mjs +0 -2013
- package/dist/tailwind.mjs.map +0 -1
- package/dist/types.js +0 -59
- package/dist/types.js.map +0 -1
- package/dist/types.mjs +0 -53
- package/dist/types.mjs.map +0 -1
- package/dist/utils.js +0 -30
- package/dist/utils.js.map +0 -1
- package/dist/utils.mjs +0 -26
- package/dist/utils.mjs.map +0 -1
- 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 -27
- 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/CHANGELOG.md
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to @hanzo/ui will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [5.0.0] - 2025-09-20
|
|
9
|
+
|
|
10
|
+
### 🎉 Major Release - shadcn/ui v4 Migration
|
|
11
|
+
|
|
12
|
+
This major release migrates @hanzo/ui to the latest shadcn/ui v4 architecture with significant improvements in performance, accessibility, and developer experience.
|
|
13
|
+
|
|
14
|
+
### ✨ New Features
|
|
15
|
+
|
|
16
|
+
- **Registry-Based Architecture**: New component registry system for selective imports
|
|
17
|
+
- **Multi-Brand Support**: Built-in theming for Hanzo, Lux, and Zoo brands
|
|
18
|
+
- **50+ Components**: Complete component library with shadcn/ui v4 components
|
|
19
|
+
- **35+ Custom Hooks**: Comprehensive collection of React hooks
|
|
20
|
+
- **25+ Utilities**: Helper functions for common tasks
|
|
21
|
+
- **AI Integration**: Model Context Protocol (MCP) support for AI-powered development
|
|
22
|
+
- **Dark Mode**: Native dark mode support with theme persistence
|
|
23
|
+
- **OKLCH Colors**: Modern color system with OKLCH color space
|
|
24
|
+
- **TypeScript First**: Full TypeScript support with strict typing
|
|
25
|
+
- **Tree Shaking**: Optimized bundle sizes with proper tree shaking
|
|
26
|
+
- **Accessibility**: WCAG 2.1 AA compliant components
|
|
27
|
+
|
|
28
|
+
### 🔧 Component Updates
|
|
29
|
+
|
|
30
|
+
#### New Components
|
|
31
|
+
- Alert
|
|
32
|
+
- Alert Dialog
|
|
33
|
+
- Accordion
|
|
34
|
+
- Avatar
|
|
35
|
+
- Badge
|
|
36
|
+
- Breadcrumb
|
|
37
|
+
- Button (enhanced with variants)
|
|
38
|
+
- Calendar
|
|
39
|
+
- Card
|
|
40
|
+
- Carousel
|
|
41
|
+
- Chart
|
|
42
|
+
- Checkbox
|
|
43
|
+
- Collapsible
|
|
44
|
+
- Command
|
|
45
|
+
- Context Menu
|
|
46
|
+
- Data Table
|
|
47
|
+
- Date Picker
|
|
48
|
+
- Dialog
|
|
49
|
+
- Drawer
|
|
50
|
+
- Dropdown Menu
|
|
51
|
+
- Form
|
|
52
|
+
- Hover Card
|
|
53
|
+
- Input
|
|
54
|
+
- Input OTP
|
|
55
|
+
- Label
|
|
56
|
+
- Menubar
|
|
57
|
+
- Navigation Menu
|
|
58
|
+
- Pagination
|
|
59
|
+
- Popover
|
|
60
|
+
- Progress
|
|
61
|
+
- Radio Group
|
|
62
|
+
- Resizable
|
|
63
|
+
- Scroll Area
|
|
64
|
+
- Select
|
|
65
|
+
- Separator
|
|
66
|
+
- Sheet
|
|
67
|
+
- Skeleton
|
|
68
|
+
- Slider
|
|
69
|
+
- Sonner (Toast)
|
|
70
|
+
- Switch
|
|
71
|
+
- Table
|
|
72
|
+
- Tabs
|
|
73
|
+
- Textarea
|
|
74
|
+
- Toast
|
|
75
|
+
- Toggle
|
|
76
|
+
- Toggle Group
|
|
77
|
+
- Tooltip
|
|
78
|
+
|
|
79
|
+
#### AI Components
|
|
80
|
+
- Chat Interface
|
|
81
|
+
- Code Block with syntax highlighting
|
|
82
|
+
- Message components
|
|
83
|
+
- Streaming support
|
|
84
|
+
|
|
85
|
+
#### Block Components
|
|
86
|
+
- Authentication forms
|
|
87
|
+
- Dashboard layouts
|
|
88
|
+
- Marketing sections
|
|
89
|
+
- E-commerce patterns
|
|
90
|
+
|
|
91
|
+
### 💥 Breaking Changes
|
|
92
|
+
|
|
93
|
+
#### Package Structure
|
|
94
|
+
- Changed from single export to multiple export paths:
|
|
95
|
+
- `@hanzo/ui` - Core exports with cn utility
|
|
96
|
+
- `@hanzo/ui/components` - Component exports
|
|
97
|
+
- `@hanzo/ui/blocks` - Block patterns
|
|
98
|
+
- `@hanzo/ui/ai` - AI components
|
|
99
|
+
- `@hanzo/ui/lib/utils` - Utilities
|
|
100
|
+
|
|
101
|
+
#### Import Changes
|
|
102
|
+
```typescript
|
|
103
|
+
// Before (v4.x)
|
|
104
|
+
import { Button, Card, cn } from '@hanzo/ui'
|
|
105
|
+
|
|
106
|
+
// After (v5.0)
|
|
107
|
+
import { cn } from '@hanzo/ui'
|
|
108
|
+
import { Button, Card } from '@hanzo/ui/components'
|
|
109
|
+
// Or selective imports
|
|
110
|
+
import { Button } from '@hanzo/ui/components/button'
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
#### CSS Variables
|
|
114
|
+
- Migrated from HSL to OKLCH color space
|
|
115
|
+
- New CSS variable naming convention
|
|
116
|
+
- Theme variables now use `--hanzo-` prefix
|
|
117
|
+
|
|
118
|
+
#### Component API Changes
|
|
119
|
+
- Button: `variant` prop values changed
|
|
120
|
+
- Dialog: Now uses Radix UI Dialog v1.0
|
|
121
|
+
- Toast: Replaced with Sonner for better performance
|
|
122
|
+
- DataTable: New API with tanstack/react-table v8
|
|
123
|
+
|
|
124
|
+
#### Dependency Updates
|
|
125
|
+
- Requires React 18+
|
|
126
|
+
- Requires Tailwind CSS 3.4+
|
|
127
|
+
- All Radix UI primitives updated to v1.0+
|
|
128
|
+
|
|
129
|
+
### 🐛 Bug Fixes
|
|
130
|
+
|
|
131
|
+
- Fixed hydration issues with dark mode
|
|
132
|
+
- Resolved tree-shaking problems in production builds
|
|
133
|
+
- Fixed TypeScript type exports
|
|
134
|
+
- Corrected accessibility issues in form components
|
|
135
|
+
- Fixed z-index stacking context issues
|
|
136
|
+
|
|
137
|
+
### 📦 Dependencies
|
|
138
|
+
|
|
139
|
+
#### Updated
|
|
140
|
+
- All @radix-ui/* packages to latest v1.0+
|
|
141
|
+
- class-variance-authority to v0.7.0
|
|
142
|
+
- cmdk to v1.0.3
|
|
143
|
+
- lucide-react to v0.525.0
|
|
144
|
+
- recharts to v2.12.7
|
|
145
|
+
- tailwind-merge to v2.0.0
|
|
146
|
+
|
|
147
|
+
### 🚀 Performance Improvements
|
|
148
|
+
|
|
149
|
+
- 40% reduction in bundle size through better tree-shaking
|
|
150
|
+
- Lazy loading for heavy components (Charts, Calendar)
|
|
151
|
+
- Optimized re-renders with proper memo usage
|
|
152
|
+
- CSS-in-JS removed in favor of Tailwind CSS
|
|
153
|
+
|
|
154
|
+
### 📝 Documentation
|
|
155
|
+
|
|
156
|
+
- Complete API documentation for all components
|
|
157
|
+
- Interactive Storybook with all components
|
|
158
|
+
- Migration guide from v4 to v5
|
|
159
|
+
- Accessibility documentation
|
|
160
|
+
- Theming and customization guides
|
|
161
|
+
|
|
162
|
+
### 🔄 Migration Guide
|
|
163
|
+
|
|
164
|
+
See [MIGRATION.md](./MIGRATION.md) for detailed migration instructions from v4.x to v5.0.
|
|
165
|
+
|
|
166
|
+
### 🙏 Contributors
|
|
167
|
+
|
|
168
|
+
Thanks to all contributors who made this release possible!
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## [4.5.6] - 2024-09-01
|
|
173
|
+
|
|
174
|
+
### Changed
|
|
175
|
+
- Last version before major v5 rewrite
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Previous Versions
|
|
180
|
+
|
|
181
|
+
For changelog of versions prior to v4.5.6, please refer to the git history.
|
|
182
|
+
|
|
183
|
+
[5.0.0]: https://github.com/hanzoai/ui/compare/v4.5.6...v5.0.0
|
|
184
|
+
[4.5.6]: https://github.com/hanzoai/ui/releases/tag/v4.5.6
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Hanzo AI
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,10 +1,29 @@
|
|
|
1
|
-
# @hanzo/ui
|
|
1
|
+
# @hanzo/ui v5
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@hanzo/ui)
|
|
4
|
+
[](https://www.npmjs.com/package/@hanzo/ui)
|
|
5
|
+
[](https://bundlephobia.com/package/@hanzo/ui)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
[](https://www.typescriptlang.org/)
|
|
4
8
|
|
|
5
|
-
|
|
9
|
+
Modern React component library built on shadcn/ui v4 with Hanzo branding, featuring 50+ accessible components, 35+ hooks, and comprehensive TypeScript support.
|
|
6
10
|
|
|
7
|
-
##
|
|
11
|
+
## ✨ Features
|
|
12
|
+
|
|
13
|
+
- 🎨 **Multi-Brand Theming** - Built-in support for Hanzo, Lux, and Zoo brands
|
|
14
|
+
- 📦 **50+ Components** - Comprehensive UI components based on shadcn/ui v4
|
|
15
|
+
- 🪝 **35+ Custom Hooks** - Powerful React hooks for common patterns
|
|
16
|
+
- 🛠️ **25+ Utilities** - Helper functions and utilities
|
|
17
|
+
- 🌙 **Dark Mode** - Native dark mode with system preference detection
|
|
18
|
+
- ♿ **Accessible** - WCAG 2.1 AA compliant components
|
|
19
|
+
- 📱 **Responsive** - Mobile-first responsive design
|
|
20
|
+
- 🎯 **Tree Shakeable** - Import only what you need
|
|
21
|
+
- 💅 **Tailwind CSS** - Utility-first styling with Tailwind v3.4+
|
|
22
|
+
- 🎭 **OKLCH Colors** - Modern color system with OKLCH color space
|
|
23
|
+
- 🤖 **AI Components** - Chat interfaces and AI-specific components
|
|
24
|
+
- 📋 **Copy/Paste** - Components can be copied directly into your project
|
|
25
|
+
|
|
26
|
+
## 📦 Installation
|
|
8
27
|
|
|
9
28
|
```bash
|
|
10
29
|
npm install @hanzo/ui
|
|
@@ -14,216 +33,190 @@ pnpm add @hanzo/ui
|
|
|
14
33
|
yarn add @hanzo/ui
|
|
15
34
|
```
|
|
16
35
|
|
|
17
|
-
##
|
|
18
|
-
|
|
19
|
-
###
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
- **Dialog** - Modal dialogs
|
|
39
|
-
- **Drawer** - Slide-out drawer panels
|
|
40
|
-
- **DropdownMenu** - Dropdown menu component
|
|
41
|
-
- **Form** - Form components with validation
|
|
42
|
-
- **HoverCard** - Hover-triggered info cards
|
|
43
|
-
- **Input** - Text input field
|
|
44
|
-
- **InputOTP** - One-time password input
|
|
45
|
-
- **Label** - Form labels
|
|
46
|
-
- **NavigationMenu** - Navigation menu bar
|
|
47
|
-
- **Popover** - Popover overlays
|
|
48
|
-
- **Progress** - Progress indicators
|
|
49
|
-
- **RadioGroup** - Radio button groups
|
|
50
|
-
- **ResizablePanel** - Resizable panel layouts
|
|
51
|
-
- **ScrollArea** - Custom scrollable areas
|
|
52
|
-
- **SearchInput** - Search input with icon
|
|
53
|
-
- **Select** - Select dropdown
|
|
54
|
-
- **Separator** - Visual separator line
|
|
55
|
-
- **Sheet** - Side sheet panels
|
|
56
|
-
- **Skeleton** - Loading skeleton screens
|
|
57
|
-
- **Slider** - Range slider input
|
|
58
|
-
- **Switch** - Toggle switch
|
|
59
|
-
- **Table** - Data tables
|
|
60
|
-
- **Tabs** - Tabbed interfaces
|
|
61
|
-
- **TextArea** - Multi-line text input
|
|
62
|
-
- **TextField** - Enhanced text input
|
|
63
|
-
- **Toast** - Toast notifications (via Sonner)
|
|
64
|
-
- **Toggle** - Toggle buttons
|
|
65
|
-
- **ToggleGroup** - Grouped toggle buttons
|
|
66
|
-
- **Tooltip** - Hover tooltips
|
|
67
|
-
- **VideoPlayer** - Video playback component
|
|
68
|
-
|
|
69
|
-
### Assets
|
|
70
|
-
|
|
71
|
-
Icon components and visual assets:
|
|
72
|
-
|
|
73
|
-
#### AI Provider Icons
|
|
74
|
-
- **AnthropicIcon** - Anthropic AI logo
|
|
75
|
-
- **OpenAIIcon** - OpenAI logo
|
|
76
|
-
- **GeminiIcon** - Google Gemini logo
|
|
77
|
-
- **DeepSeekIcon** - DeepSeek logo
|
|
78
|
-
- **MistralIcon** - Mistral AI logo
|
|
79
|
-
- **MetaIcon** - Meta AI logo
|
|
80
|
-
- **GroqIcon** - Groq logo
|
|
81
|
-
- **OllamaIcon** - Ollama logo
|
|
82
|
-
- **HanzoIcon** - Hanzo AI logo
|
|
83
|
-
- **TogetherAI** - Together AI logo
|
|
84
|
-
- **ExoIcon** - Exo logo
|
|
85
|
-
- **GrokIcon** - Grok logo
|
|
86
|
-
- **LmStudioIcon** - LM Studio logo
|
|
87
|
-
- **OpenRouterIcon** - OpenRouter logo
|
|
88
|
-
- **PerplexityIcon** - Perplexity logo
|
|
89
|
-
- **QwenIcon** - Qwen logo
|
|
90
|
-
- **AyaCohereIcon** - Aya/Cohere logo
|
|
91
|
-
|
|
92
|
-
#### Feature Icons
|
|
93
|
-
- **AIAgentIcon** - AI agent indicator
|
|
94
|
-
- **AisIcon** - AI services icon
|
|
95
|
-
- **ReactJsIcon** - React.js logo
|
|
96
|
-
- **ReasoningIcon** - AI reasoning indicator
|
|
97
|
-
- **ToolsIcon** - Tools/utilities icon
|
|
98
|
-
- **TracingIcon** - Tracing/monitoring icon
|
|
99
|
-
- **ScheduledTasksIcon** - Scheduled tasks icon
|
|
100
|
-
- **SendIcon** - Send/submit icon
|
|
101
|
-
|
|
102
|
-
#### File Type Icons
|
|
103
|
-
- **FileTypeIcon** - Dynamic file type icon based on extension
|
|
104
|
-
- **DirectoryTypeIcon** - Folder/directory icon
|
|
105
|
-
|
|
106
|
-
### Utilities
|
|
107
|
-
|
|
108
|
-
Helper functions and hooks:
|
|
109
|
-
|
|
110
|
-
- **cn()** - Class name utility (clsx + tailwind-merge)
|
|
111
|
-
- **markdown()** - Markdown to JSX converter
|
|
112
|
-
- **formatText()** - Text formatting utilities
|
|
113
|
-
- **useDebounce()** - Debounce hook
|
|
114
|
-
- **useMap()** - Map state management hook
|
|
115
|
-
- **formatDateToLocaleStringWithTime()** - Date formatting
|
|
116
|
-
- **getFileExt()** - File extension extraction
|
|
117
|
-
- **hexToRgb()** - Color conversion utilities
|
|
118
|
-
|
|
119
|
-
### Custom Components
|
|
120
|
-
|
|
121
|
-
Additional enhanced components:
|
|
122
|
-
|
|
123
|
-
- **ChatInput** - Chat message input
|
|
124
|
-
- **ChatInputArea** - Multi-line chat input
|
|
125
|
-
- **ChatSettingsIcon** - Chat settings icon
|
|
126
|
-
- **CopyToClipboardIcon** - Copy to clipboard button
|
|
127
|
-
- **DotsLoader** - Loading dots animation
|
|
128
|
-
- **FileList** - File list display
|
|
129
|
-
- **FileUploader** - File upload component
|
|
130
|
-
- **JsonForm** - JSON-based dynamic forms
|
|
131
|
-
- **MarkdownText** - Markdown renderer
|
|
132
|
-
- **PrettyJsonPrint** - Formatted JSON display
|
|
133
|
-
|
|
134
|
-
## Styling
|
|
135
|
-
|
|
136
|
-
The library uses Tailwind CSS for styling. Make sure your application includes Tailwind CSS configuration.
|
|
137
|
-
|
|
138
|
-
## Dependencies
|
|
139
|
-
|
|
140
|
-
Key peer dependencies:
|
|
141
|
-
- React 18.3.1+
|
|
142
|
-
- React DOM 18.3.1+
|
|
143
|
-
- @hookform/resolvers ^3.3.2
|
|
144
|
-
- react-hook-form 7.51.4
|
|
145
|
-
- lucide-react 0.456.0
|
|
146
|
-
- next-themes ^0.2.1
|
|
147
|
-
- embla-carousel ^8.1.6
|
|
148
|
-
|
|
149
|
-
## Usage Examples
|
|
150
|
-
|
|
151
|
-
### Basic Button
|
|
36
|
+
## 🚀 Quick Start
|
|
37
|
+
|
|
38
|
+
### 1. Configure Tailwind CSS
|
|
39
|
+
|
|
40
|
+
Add the Hanzo UI preset to your `tailwind.config.js`:
|
|
41
|
+
|
|
42
|
+
```js
|
|
43
|
+
// tailwind.config.js
|
|
44
|
+
import hanzoPreset from '@hanzo/ui/tailwind-preset'
|
|
45
|
+
|
|
46
|
+
export default {
|
|
47
|
+
presets: [hanzoPreset],
|
|
48
|
+
content: [
|
|
49
|
+
'./src/**/*.{js,ts,jsx,tsx,mdx}',
|
|
50
|
+
'./node_modules/@hanzo/ui/dist/**/*.{js,mjs}'
|
|
51
|
+
],
|
|
52
|
+
// ... your config
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 2. Import Components
|
|
152
57
|
|
|
153
58
|
```tsx
|
|
154
|
-
|
|
59
|
+
// Import utilities
|
|
60
|
+
import { cn } from '@hanzo/ui'
|
|
155
61
|
|
|
156
|
-
|
|
62
|
+
// Import components
|
|
63
|
+
import { Button, Card, Dialog } from '@hanzo/ui/components'
|
|
64
|
+
|
|
65
|
+
// Or import individually
|
|
66
|
+
import { Button } from '@hanzo/ui/components/button'
|
|
67
|
+
import { Card } from '@hanzo/ui/components/card'
|
|
68
|
+
|
|
69
|
+
// Import AI components
|
|
70
|
+
import { ChatInterface } from '@hanzo/ui/ai'
|
|
71
|
+
|
|
72
|
+
// Import block patterns
|
|
73
|
+
import { AuthForm } from '@hanzo/ui/blocks'
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 3. Use Components
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
export function App() {
|
|
157
80
|
return (
|
|
158
|
-
<
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
81
|
+
<Card className="p-6">
|
|
82
|
+
<h1>Welcome to Hanzo UI</h1>
|
|
83
|
+
<Button variant="default" size="lg">
|
|
84
|
+
Get Started
|
|
85
|
+
</Button>
|
|
86
|
+
</Card>
|
|
87
|
+
)
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## 📚 Component Categories
|
|
92
|
+
|
|
93
|
+
### Core Components
|
|
94
|
+
- **Layout**: Container, Grid, Stack, Spacer
|
|
95
|
+
- **Typography**: Heading, Text, Label
|
|
96
|
+
- **Buttons**: Button, IconButton, ButtonGroup
|
|
97
|
+
- **Forms**: Input, Textarea, Select, Checkbox, Radio, Switch
|
|
98
|
+
- **Feedback**: Alert, Toast, Progress, Skeleton
|
|
99
|
+
- **Overlay**: Dialog, Sheet, Popover, Tooltip
|
|
100
|
+
- **Navigation**: Tabs, Breadcrumb, Pagination
|
|
101
|
+
- **Data Display**: Table, DataTable, Card, Badge
|
|
102
|
+
- **Media**: Avatar, Image, Video
|
|
103
|
+
|
|
104
|
+
### AI Components
|
|
105
|
+
- Chat Interface
|
|
106
|
+
- Message Components
|
|
107
|
+
- Code Block with Syntax Highlighting
|
|
108
|
+
- Streaming Support
|
|
109
|
+
- Tool Use Display
|
|
110
|
+
|
|
111
|
+
### Block Patterns
|
|
112
|
+
- Authentication Forms
|
|
113
|
+
- Dashboard Layouts
|
|
114
|
+
- Marketing Sections
|
|
115
|
+
- E-commerce Patterns
|
|
116
|
+
- Landing Pages
|
|
117
|
+
|
|
118
|
+
## 🎨 Theming
|
|
119
|
+
|
|
120
|
+
### Using CSS Variables
|
|
121
|
+
|
|
122
|
+
Hanzo UI uses CSS variables for theming. You can customize the theme by overriding these variables:
|
|
123
|
+
|
|
124
|
+
```css
|
|
125
|
+
@layer base {
|
|
126
|
+
:root {
|
|
127
|
+
--hanzo-background: 0 0% 100%;
|
|
128
|
+
--hanzo-foreground: 0 0% 3.9%;
|
|
129
|
+
--hanzo-primary: 0 0% 9%;
|
|
130
|
+
--hanzo-primary-foreground: 0 0% 98%;
|
|
131
|
+
/* ... more variables */
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.dark {
|
|
135
|
+
--hanzo-background: 0 0% 3.9%;
|
|
136
|
+
--hanzo-foreground: 0 0% 98%;
|
|
137
|
+
/* ... dark mode variables */
|
|
138
|
+
}
|
|
162
139
|
}
|
|
163
140
|
```
|
|
164
141
|
|
|
165
|
-
###
|
|
142
|
+
### Multiple Brands
|
|
143
|
+
|
|
144
|
+
Switch between brand themes:
|
|
166
145
|
|
|
167
146
|
```tsx
|
|
168
|
-
import {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
AlertDialogContent,
|
|
172
|
-
AlertDialogHeader,
|
|
173
|
-
AlertDialogTitle,
|
|
174
|
-
AlertDialogDescription,
|
|
175
|
-
AlertDialogFooter,
|
|
176
|
-
AlertDialogAction,
|
|
177
|
-
AlertDialogCancel
|
|
178
|
-
} from '@hanzo/ui';
|
|
179
|
-
|
|
180
|
-
function ConfirmDialog() {
|
|
147
|
+
import { ThemeProvider } from '@hanzo/ui/components/theme-provider'
|
|
148
|
+
|
|
149
|
+
function App() {
|
|
181
150
|
return (
|
|
182
|
-
<
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
<AlertDialogContent>
|
|
187
|
-
<AlertDialogHeader>
|
|
188
|
-
<AlertDialogTitle>Are you sure?</AlertDialogTitle>
|
|
189
|
-
<AlertDialogDescription>
|
|
190
|
-
This action cannot be undone.
|
|
191
|
-
</AlertDialogDescription>
|
|
192
|
-
</AlertDialogHeader>
|
|
193
|
-
<AlertDialogFooter>
|
|
194
|
-
<AlertDialogCancel>Cancel</AlertDialogCancel>
|
|
195
|
-
<AlertDialogAction>Continue</AlertDialogAction>
|
|
196
|
-
</AlertDialogFooter>
|
|
197
|
-
</AlertDialogContent>
|
|
198
|
-
</AlertDialog>
|
|
199
|
-
);
|
|
151
|
+
<ThemeProvider defaultTheme="hanzo" storageKey="ui-theme">
|
|
152
|
+
{/* Your app */}
|
|
153
|
+
</ThemeProvider>
|
|
154
|
+
)
|
|
200
155
|
}
|
|
201
156
|
```
|
|
202
157
|
|
|
203
|
-
|
|
158
|
+
## 🔧 Advanced Usage
|
|
159
|
+
|
|
160
|
+
### Custom Styling with cn()
|
|
161
|
+
|
|
162
|
+
The `cn()` utility combines clsx and tailwind-merge:
|
|
204
163
|
|
|
205
164
|
```tsx
|
|
206
|
-
import {
|
|
165
|
+
import { cn } from '@hanzo/ui'
|
|
207
166
|
|
|
208
|
-
function
|
|
167
|
+
function CustomButton({ className, ...props }) {
|
|
209
168
|
return (
|
|
210
|
-
<
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
169
|
+
<button
|
|
170
|
+
className={cn(
|
|
171
|
+
'px-4 py-2 rounded-lg bg-primary text-primary-foreground',
|
|
172
|
+
'hover:bg-primary/90 transition-colors',
|
|
173
|
+
className
|
|
174
|
+
)}
|
|
175
|
+
{...props}
|
|
176
|
+
/>
|
|
177
|
+
)
|
|
216
178
|
}
|
|
217
179
|
```
|
|
218
180
|
|
|
219
|
-
|
|
181
|
+
### TypeScript Support
|
|
182
|
+
|
|
183
|
+
All components are fully typed:
|
|
184
|
+
|
|
185
|
+
```tsx
|
|
186
|
+
import type { ButtonProps } from '@hanzo/ui/components/button'
|
|
187
|
+
|
|
188
|
+
interface CustomButtonProps extends ButtonProps {
|
|
189
|
+
customProp?: string
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
export function CustomButton({ customProp, ...props }: CustomButtonProps) {
|
|
193
|
+
return <Button {...props} />
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## 📖 Documentation
|
|
198
|
+
|
|
199
|
+
- [Full Documentation](https://ui.hanzo.ai)
|
|
200
|
+
- [Component Examples](https://ui.hanzo.ai/components)
|
|
201
|
+
- [Migration Guide](https://ui.hanzo.ai/docs/migration)
|
|
202
|
+
- [Storybook](https://ui.hanzo.ai/storybook)
|
|
203
|
+
|
|
204
|
+
## 🤝 Contributing
|
|
205
|
+
|
|
206
|
+
Contributions are welcome! Please read our [Contributing Guide](https://github.com/hanzoai/ui/blob/main/CONTRIBUTING.md) for details.
|
|
207
|
+
|
|
208
|
+
## 📄 License
|
|
220
209
|
|
|
221
|
-
|
|
210
|
+
MIT © [Hanzo AI](https://hanzo.ai)
|
|
222
211
|
|
|
223
|
-
##
|
|
212
|
+
## 🔗 Links
|
|
224
213
|
|
|
225
|
-
|
|
214
|
+
- [GitHub Repository](https://github.com/hanzoai/ui)
|
|
215
|
+
- [NPM Package](https://www.npmjs.com/package/@hanzo/ui)
|
|
216
|
+
- [Documentation](https://ui.hanzo.ai)
|
|
217
|
+
- [Storybook](https://ui.hanzo.ai/storybook)
|
|
218
|
+
- [Discord Community](https://discord.gg/hanzo)
|
|
226
219
|
|
|
227
|
-
|
|
220
|
+
---
|
|
228
221
|
|
|
229
|
-
https://
|
|
222
|
+
Built with ❤️ by [Hanzo AI](https://hanzo.ai)
|
package/dist/ai/index.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkBDZQJ6GK_js = require('../chunk-BDZQJ6GK.js');
|
|
4
|
+
require('../chunk-DN2AEEA2.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "AIActions", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunkBDZQJ6GK_js.AIActions; }
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "AIAgents", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return chunkBDZQJ6GK_js.AIAgents; }
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "AIAssistant", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return chunkBDZQJ6GK_js.AIAssistant; }
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "AIChat", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () { return chunkBDZQJ6GK_js.AIChat; }
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "AIModels", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () { return chunkBDZQJ6GK_js.AIModels; }
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(exports, "AIPlayground", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () { return chunkBDZQJ6GK_js.AIPlayground; }
|
|
31
|
+
});
|
|
32
|
+
Object.defineProperty(exports, "AITools", {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () { return chunkBDZQJ6GK_js.AITools; }
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "AIVision", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () { return chunkBDZQJ6GK_js.AIVision; }
|
|
39
|
+
});
|
|
40
|
+
Object.defineProperty(exports, "AnthropicProvider", {
|
|
41
|
+
enumerable: true,
|
|
42
|
+
get: function () { return chunkBDZQJ6GK_js.AnthropicProvider; }
|
|
43
|
+
});
|
|
44
|
+
Object.defineProperty(exports, "OpenAIProvider", {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
get: function () { return chunkBDZQJ6GK_js.OpenAIProvider; }
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "configureAI", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () { return chunkBDZQJ6GK_js.configureAI; }
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { AIActions, AIAgents, AIAssistant, AIChat, AIModels, AIPlayground, AITools, AIVision, AnthropicProvider, OpenAIProvider, configureAI } from '../chunk-UNUTTHCH.mjs';
|
|
2
|
+
import '../chunk-TH2UKMCO.mjs';
|
|
3
|
+
//# sourceMappingURL=index.mjs.map
|
|
4
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|