@hanzo/ui 5.3.38 → 5.3.39
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/bin/create-registry.js +0 -0
- package/bin/npx-registry-mcp.js +0 -0
- package/bin/registry-mcp-wrapper.sh +0 -0
- package/bin/registry-mcp.js +0 -0
- package/bin/start-mcp-server.sh +0 -0
- package/bin/test-mcp.sh +0 -0
- package/dist/assets/ai-icons.d.ts +28 -0
- package/dist/assets/ai-icons.d.ts.map +1 -0
- package/dist/assets/ai-icons.js +60 -0
- package/dist/assets/crypto.d.ts +7 -0
- package/dist/assets/crypto.d.ts.map +1 -0
- package/dist/assets/crypto.js +4 -0
- package/dist/assets/file-type-icon.d.ts +7 -0
- package/dist/assets/file-type-icon.d.ts.map +1 -0
- package/dist/assets/file-type-icon.js +36 -0
- package/dist/assets/file.d.ts +5 -0
- package/dist/assets/file.d.ts.map +1 -0
- package/dist/assets/file.js +29 -0
- package/dist/assets/general.d.ts +220 -0
- package/dist/assets/general.d.ts.map +1 -0
- package/dist/assets/general.js +136 -0
- package/dist/assets/hanzo-logo.d.ts +4 -0
- package/dist/assets/hanzo-logo.d.ts.map +1 -0
- package/dist/assets/hanzo-logo.js +3 -0
- package/dist/assets/index.d.ts +7 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/assets/index.js +23 -0
- package/dist/assets/llm-provider.d.ts +64 -0
- package/dist/assets/llm-provider.d.ts.map +1 -0
- package/dist/assets/llm-provider.js +90 -0
- package/dist/components/cal-embed.d.ts +11 -0
- package/dist/components/cal-embed.d.ts.map +1 -0
- package/dist/components/cal-embed.js +38 -0
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +7 -0
- package/dist/frameworks/core/index.d.ts +4 -0
- package/dist/frameworks/core/index.d.ts.map +1 -0
- package/dist/frameworks/core/index.js +5 -0
- package/dist/frameworks/core/styles.d.ts +12 -0
- package/dist/frameworks/core/styles.d.ts.map +1 -0
- package/dist/frameworks/core/styles.js +11 -0
- package/dist/frameworks/core/types.d.ts +17 -0
- package/dist/frameworks/core/types.d.ts.map +1 -0
- package/dist/frameworks/core/types.js +11 -0
- package/dist/frameworks/core/utils/index.d.ts +19 -0
- package/dist/frameworks/core/utils/index.d.ts.map +1 -0
- package/dist/frameworks/core/utils/index.js +49 -0
- package/dist/frameworks/react/components/button.d.ts +8 -0
- package/dist/frameworks/react/components/button.d.ts.map +1 -0
- package/dist/frameworks/react/components/button.js +8 -0
- package/dist/frameworks/react/components/index.d.ts +2 -0
- package/dist/frameworks/react/components/index.d.ts.map +1 -0
- package/dist/frameworks/react/components/index.js +4 -0
- package/dist/frameworks/react/hooks/index.d.ts +2 -0
- package/dist/frameworks/react/hooks/index.d.ts.map +1 -0
- package/dist/frameworks/react/hooks/index.js +5 -0
- package/dist/frameworks/react/index.d.ts +5 -0
- package/dist/frameworks/react/index.d.ts.map +1 -0
- package/dist/frameworks/react/index.js +7 -0
- package/dist/frameworks/react/utils/index.d.ts +2 -0
- package/dist/frameworks/react/utils/index.d.ts.map +1 -0
- package/dist/frameworks/react/utils/index.js +2 -0
- package/dist/frameworks/react-native/components.d.ts +17 -0
- package/dist/frameworks/react-native/components.d.ts.map +1 -0
- package/dist/frameworks/react-native/components.js +17 -0
- package/dist/frameworks/react-native/hooks.d.ts +10 -0
- package/dist/frameworks/react-native/hooks.d.ts.map +1 -0
- package/dist/frameworks/react-native/hooks.js +9 -0
- package/dist/frameworks/react-native/index.d.ts +5 -0
- package/dist/frameworks/react-native/index.d.ts.map +1 -0
- package/dist/frameworks/react-native/index.js +7 -0
- package/dist/frameworks/react-native/utils.d.ts +7 -0
- package/dist/frameworks/react-native/utils.d.ts.map +1 -0
- package/dist/frameworks/react-native/utils.js +9 -0
- package/dist/frameworks/svelte/components.d.ts +15 -0
- package/dist/frameworks/svelte/components.d.ts.map +1 -0
- package/dist/frameworks/svelte/components.js +16 -0
- package/dist/frameworks/svelte/index.d.ts +5 -0
- package/dist/frameworks/svelte/index.d.ts.map +1 -0
- package/dist/frameworks/svelte/index.js +7 -0
- package/dist/frameworks/svelte/stores.d.ts +13 -0
- package/dist/frameworks/svelte/stores.d.ts.map +1 -0
- package/dist/frameworks/svelte/stores.js +9 -0
- package/dist/frameworks/svelte/utils.d.ts +7 -0
- package/dist/frameworks/svelte/utils.d.ts.map +1 -0
- package/dist/frameworks/svelte/utils.js +8 -0
- package/dist/frameworks/vue/components.d.ts +15 -0
- package/dist/frameworks/vue/components.d.ts.map +1 -0
- package/dist/frameworks/vue/components.js +16 -0
- package/dist/frameworks/vue/composables.d.ts +16 -0
- package/dist/frameworks/vue/composables.d.ts.map +1 -0
- package/dist/frameworks/vue/composables.js +14 -0
- package/dist/frameworks/vue/index.d.ts +5 -0
- package/dist/frameworks/vue/index.d.ts.map +1 -0
- package/dist/frameworks/vue/index.js +7 -0
- package/dist/frameworks/vue/utils.d.ts +7 -0
- package/dist/frameworks/vue/utils.d.ts.map +1 -0
- package/dist/frameworks/vue/utils.js +8 -0
- package/dist/helpers/file.d.ts +7 -0
- package/dist/helpers/file.d.ts.map +1 -0
- package/dist/helpers/file.js +30 -0
- package/dist/helpers/memoization.d.ts +9 -0
- package/dist/helpers/memoization.d.ts.map +1 -0
- package/dist/helpers/memoization.js +24 -0
- package/dist/navigation/index.js +2 -2
- package/dist/navigation/index.mjs +2 -2
- package/dist/primitives/accordion.d.ts +27 -0
- package/dist/primitives/accordion.d.ts.map +1 -0
- package/dist/primitives/accordion.js +12 -0
- package/dist/primitives/action-button.d.ts +10 -0
- package/dist/primitives/action-button.d.ts.map +1 -0
- package/dist/primitives/action-button.js +14 -0
- package/dist/primitives/alert-dialog.d.ts +57 -0
- package/dist/primitives/alert-dialog.d.ts.map +1 -0
- package/dist/primitives/alert-dialog.js +25 -0
- package/dist/primitives/alert.d.ts +11 -0
- package/dist/primitives/alert.d.ts.map +1 -0
- package/dist/primitives/alert.js +32 -0
- package/dist/primitives/apply-typography.d.ts +8 -0
- package/dist/primitives/apply-typography.d.ts.map +1 -0
- package/dist/primitives/apply-typography.js +36 -0
- package/dist/primitives/aspect-ratio.d.ts +4 -0
- package/dist/primitives/aspect-ratio.d.ts.map +1 -0
- package/dist/primitives/aspect-ratio.js +4 -0
- package/dist/primitives/avatar.d.ts +25 -0
- package/dist/primitives/avatar.d.ts.map +1 -0
- package/dist/primitives/avatar.js +10 -0
- package/dist/primitives/badge.d.ts +11 -0
- package/dist/primitives/badge.d.ts.map +1 -0
- package/dist/primitives/badge.js +28 -0
- package/dist/primitives/breadcrumb.d.ts +51 -0
- package/dist/primitives/breadcrumb.d.ts.map +1 -0
- package/dist/primitives/breadcrumb.js +22 -0
- package/dist/primitives/breakpoint-indicator.d.ts +4 -0
- package/dist/primitives/breakpoint-indicator.d.ts.map +1 -0
- package/dist/primitives/breakpoint-indicator.js +7 -0
- package/dist/primitives/button-group.d.ts +12 -0
- package/dist/primitives/button-group.d.ts.map +1 -0
- package/dist/primitives/button-group.js +28 -0
- package/dist/primitives/button.d.ts +14 -0
- package/dist/primitives/button.d.ts.map +1 -0
- package/dist/primitives/button.js +41 -0
- package/dist/primitives/cal-embed.d.ts +11 -0
- package/dist/primitives/cal-embed.d.ts.map +1 -0
- package/dist/primitives/cal-embed.js +38 -0
- package/dist/primitives/calendar.d.ts +11 -0
- package/dist/primitives/calendar.d.ts.map +1 -0
- package/dist/primitives/calendar.js +58 -0
- package/dist/primitives/card.d.ts +10 -0
- package/dist/primitives/card.d.ts.map +1 -0
- package/dist/primitives/card.js +24 -0
- package/dist/primitives/carousel.d.ts +19 -0
- package/dist/primitives/carousel.d.ts.map +1 -0
- package/dist/primitives/carousel.js +95 -0
- package/dist/primitives/chart.d.ts +41 -0
- package/dist/primitives/chart.d.ts.map +1 -0
- package/dist/primitives/chart.js +128 -0
- package/dist/primitives/charts/area/chart-area-axes.d.ts +3 -0
- package/dist/primitives/charts/area/chart-area-axes.d.ts.map +1 -0
- package/dist/primitives/charts/area/chart-area-axes.js +31 -0
- package/dist/primitives/charts/area/chart-area-default.d.ts +3 -0
- package/dist/primitives/charts/area/chart-area-default.d.ts.map +1 -0
- package/dist/primitives/charts/area/chart-area-default.js +27 -0
- package/dist/primitives/charts/area/chart-area-gradient.d.ts +3 -0
- package/dist/primitives/charts/area/chart-area-gradient.d.ts.map +1 -0
- package/dist/primitives/charts/area/chart-area-gradient.js +31 -0
- package/dist/primitives/charts/area/chart-area-icons.d.ts +3 -0
- package/dist/primitives/charts/area/chart-area-icons.d.ts.map +1 -0
- package/dist/primitives/charts/area/chart-area-icons.js +33 -0
- package/dist/primitives/charts/area/chart-area-interactive.d.ts +3 -0
- package/dist/primitives/charts/area/chart-area-interactive.d.ts.map +1 -0
- package/dist/primitives/charts/area/chart-area-interactive.js +143 -0
- package/dist/primitives/charts/area/chart-area-legend.d.ts +3 -0
- package/dist/primitives/charts/area/chart-area-legend.d.ts.map +1 -0
- package/dist/primitives/charts/area/chart-area-legend.js +31 -0
- package/dist/primitives/charts/area/chart-area-linear.d.ts +3 -0
- package/dist/primitives/charts/area/chart-area-linear.d.ts.map +1 -0
- package/dist/primitives/charts/area/chart-area-linear.js +27 -0
- package/dist/primitives/charts/area/chart-area-stacked-expand.d.ts +3 -0
- package/dist/primitives/charts/area/chart-area-stacked-expand.d.ts.map +1 -0
- package/dist/primitives/charts/area/chart-area-stacked-expand.js +36 -0
- package/dist/primitives/charts/area/chart-area-stacked.d.ts +3 -0
- package/dist/primitives/charts/area/chart-area-stacked.d.ts.map +1 -0
- package/dist/primitives/charts/area/chart-area-stacked.js +31 -0
- package/dist/primitives/charts/area/chart-area-step.d.ts +3 -0
- package/dist/primitives/charts/area/chart-area-step.d.ts.map +1 -0
- package/dist/primitives/charts/area/chart-area-step.js +28 -0
- package/dist/primitives/charts/area/index.d.ts +11 -0
- package/dist/primitives/charts/area/index.d.ts.map +1 -0
- package/dist/primitives/charts/area/index.js +11 -0
- package/dist/primitives/charts/bar/chart-bar-active.d.ts +3 -0
- package/dist/primitives/charts/bar/chart-bar-active.d.ts.map +1 -0
- package/dist/primitives/charts/bar/chart-bar-active.js +44 -0
- package/dist/primitives/charts/bar/chart-bar-default.d.ts +3 -0
- package/dist/primitives/charts/bar/chart-bar-default.d.ts.map +1 -0
- package/dist/primitives/charts/bar/chart-bar-default.js +24 -0
- package/dist/primitives/charts/bar/chart-bar-horizontal.d.ts +3 -0
- package/dist/primitives/charts/bar/chart-bar-horizontal.d.ts.map +1 -0
- package/dist/primitives/charts/bar/chart-bar-horizontal.js +26 -0
- package/dist/primitives/charts/bar/chart-bar-interactive.d.ts +3 -0
- package/dist/primitives/charts/bar/chart-bar-interactive.d.ts.map +1 -0
- package/dist/primitives/charts/bar/chart-bar-interactive.js +139 -0
- package/dist/primitives/charts/bar/chart-bar-label-custom.d.ts +3 -0
- package/dist/primitives/charts/bar/chart-bar-label-custom.d.ts.map +1 -0
- package/dist/primitives/charts/bar/chart-bar-label-custom.js +33 -0
- package/dist/primitives/charts/bar/chart-bar-label.d.ts +3 -0
- package/dist/primitives/charts/bar/chart-bar-label.d.ts.map +1 -0
- package/dist/primitives/charts/bar/chart-bar-label.js +26 -0
- package/dist/primitives/charts/bar/chart-bar-mixed.d.ts +3 -0
- package/dist/primitives/charts/bar/chart-bar-mixed.d.ts.map +1 -0
- package/dist/primitives/charts/bar/chart-bar-mixed.js +44 -0
- package/dist/primitives/charts/bar/chart-bar-multiple.d.ts +3 -0
- package/dist/primitives/charts/bar/chart-bar-multiple.d.ts.map +1 -0
- package/dist/primitives/charts/bar/chart-bar-multiple.js +28 -0
- package/dist/primitives/charts/bar/chart-bar-negative.d.ts +3 -0
- package/dist/primitives/charts/bar/chart-bar-negative.d.ts.map +1 -0
- package/dist/primitives/charts/bar/chart-bar-negative.js +25 -0
- package/dist/primitives/charts/bar/chart-bar-stacked.d.ts +3 -0
- package/dist/primitives/charts/bar/chart-bar-stacked.d.ts.map +1 -0
- package/dist/primitives/charts/bar/chart-bar-stacked.js +28 -0
- package/dist/primitives/charts/bar/index.d.ts +11 -0
- package/dist/primitives/charts/bar/index.d.ts.map +1 -0
- package/dist/primitives/charts/bar/index.js +11 -0
- package/dist/primitives/charts/index.d.ts +8 -0
- package/dist/primitives/charts/index.d.ts.map +1 -0
- package/dist/primitives/charts/index.js +11 -0
- package/dist/primitives/charts/line/chart-line-default.d.ts +3 -0
- package/dist/primitives/charts/line/chart-line-default.d.ts.map +1 -0
- package/dist/primitives/charts/line/chart-line-default.js +27 -0
- package/dist/primitives/charts/line/chart-line-dots-colors.d.ts +3 -0
- package/dist/primitives/charts/line/chart-line-dots-colors.d.ts.map +1 -0
- package/dist/primitives/charts/line/chart-line-dots-colors.js +49 -0
- package/dist/primitives/charts/line/chart-line-dots-custom.d.ts +3 -0
- package/dist/primitives/charts/line/chart-line-dots-custom.d.ts.map +1 -0
- package/dist/primitives/charts/line/chart-line-dots-custom.js +34 -0
- package/dist/primitives/charts/line/chart-line-dots.d.ts +3 -0
- package/dist/primitives/charts/line/chart-line-dots.d.ts.map +1 -0
- package/dist/primitives/charts/line/chart-line-dots.js +35 -0
- package/dist/primitives/charts/line/chart-line-interactive.d.ts +3 -0
- package/dist/primitives/charts/line/chart-line-interactive.d.ts.map +1 -0
- package/dist/primitives/charts/line/chart-line-interactive.js +139 -0
- package/dist/primitives/charts/line/chart-line-label-custom.d.ts +3 -0
- package/dist/primitives/charts/line/chart-line-label-custom.d.ts.map +1 -0
- package/dist/primitives/charts/line/chart-line-label-custom.js +51 -0
- package/dist/primitives/charts/line/chart-line-label.d.ts +3 -0
- package/dist/primitives/charts/line/chart-line-label.d.ts.map +1 -0
- package/dist/primitives/charts/line/chart-line-label.js +36 -0
- package/dist/primitives/charts/line/chart-line-linear.d.ts +3 -0
- package/dist/primitives/charts/line/chart-line-linear.d.ts.map +1 -0
- package/dist/primitives/charts/line/chart-line-linear.js +27 -0
- package/dist/primitives/charts/line/chart-line-multiple.d.ts +3 -0
- package/dist/primitives/charts/line/chart-line-multiple.d.ts.map +1 -0
- package/dist/primitives/charts/line/chart-line-multiple.js +31 -0
- package/dist/primitives/charts/line/chart-line-step.d.ts +3 -0
- package/dist/primitives/charts/line/chart-line-step.d.ts.map +1 -0
- package/dist/primitives/charts/line/chart-line-step.js +27 -0
- package/dist/primitives/charts/line/index.d.ts +11 -0
- package/dist/primitives/charts/line/index.d.ts.map +1 -0
- package/dist/primitives/charts/line/index.js +11 -0
- package/dist/primitives/charts/pie/chart-pie-donut-active.d.ts +3 -0
- package/dist/primitives/charts/pie/chart-pie-donut-active.d.ts.map +1 -0
- package/dist/primitives/charts/pie/chart-pie-donut-active.js +42 -0
- package/dist/primitives/charts/pie/chart-pie-donut-text.d.ts +3 -0
- package/dist/primitives/charts/pie/chart-pie-donut-text.d.ts.map +1 -0
- package/dist/primitives/charts/pie/chart-pie-donut-text.js +50 -0
- package/dist/primitives/charts/pie/chart-pie-donut.d.ts +3 -0
- package/dist/primitives/charts/pie/chart-pie-donut.d.ts.map +1 -0
- package/dist/primitives/charts/pie/chart-pie-donut.js +42 -0
- package/dist/primitives/charts/pie/chart-pie-interactive.d.ts +3 -0
- package/dist/primitives/charts/pie/chart-pie-interactive.d.ts.map +1 -0
- package/dist/primitives/charts/pie/chart-pie-interactive.js +65 -0
- package/dist/primitives/charts/pie/chart-pie-label-custom.d.ts +3 -0
- package/dist/primitives/charts/pie/chart-pie-label-custom.d.ts.map +1 -0
- package/dist/primitives/charts/pie/chart-pie-label-custom.js +44 -0
- package/dist/primitives/charts/pie/chart-pie-label-list.d.ts +3 -0
- package/dist/primitives/charts/pie/chart-pie-label-list.d.ts.map +1 -0
- package/dist/primitives/charts/pie/chart-pie-label-list.js +42 -0
- package/dist/primitives/charts/pie/chart-pie-label.d.ts +3 -0
- package/dist/primitives/charts/pie/chart-pie-label.d.ts.map +1 -0
- package/dist/primitives/charts/pie/chart-pie-label.js +42 -0
- package/dist/primitives/charts/pie/chart-pie-legend.d.ts +3 -0
- package/dist/primitives/charts/pie/chart-pie-legend.d.ts.map +1 -0
- package/dist/primitives/charts/pie/chart-pie-legend.js +41 -0
- package/dist/primitives/charts/pie/chart-pie-separator-none.d.ts +3 -0
- package/dist/primitives/charts/pie/chart-pie-separator-none.d.ts.map +1 -0
- package/dist/primitives/charts/pie/chart-pie-separator-none.js +42 -0
- package/dist/primitives/charts/pie/index.d.ts +10 -0
- package/dist/primitives/charts/pie/index.d.ts.map +1 -0
- package/dist/primitives/charts/pie/index.js +10 -0
- package/dist/primitives/charts/radar/chart-radar-default.d.ts +3 -0
- package/dist/primitives/charts/radar/chart-radar-default.d.ts.map +1 -0
- package/dist/primitives/charts/radar/chart-radar-default.js +24 -0
- package/dist/primitives/charts/radar/chart-radar-dots.d.ts +3 -0
- package/dist/primitives/charts/radar/chart-radar-dots.d.ts.map +1 -0
- package/dist/primitives/charts/radar/chart-radar-dots.js +27 -0
- package/dist/primitives/charts/radar/chart-radar-grid-circle-fill.d.ts +3 -0
- package/dist/primitives/charts/radar/chart-radar-grid-circle-fill.d.ts.map +1 -0
- package/dist/primitives/charts/radar/chart-radar-grid-circle-fill.js +24 -0
- package/dist/primitives/charts/radar/chart-radar-grid-circle-no-lines.d.ts +3 -0
- package/dist/primitives/charts/radar/chart-radar-grid-circle-no-lines.d.ts.map +1 -0
- package/dist/primitives/charts/radar/chart-radar-grid-circle-no-lines.js +27 -0
- package/dist/primitives/charts/radar/chart-radar-grid-circle.d.ts +3 -0
- package/dist/primitives/charts/radar/chart-radar-grid-circle.d.ts.map +1 -0
- package/dist/primitives/charts/radar/chart-radar-grid-circle.js +27 -0
- package/dist/primitives/charts/radar/chart-radar-grid-custom.d.ts +3 -0
- package/dist/primitives/charts/radar/chart-radar-grid-custom.d.ts.map +1 -0
- package/dist/primitives/charts/radar/chart-radar-grid-custom.js +24 -0
- package/dist/primitives/charts/radar/chart-radar-grid-fill.d.ts +3 -0
- package/dist/primitives/charts/radar/chart-radar-grid-fill.d.ts.map +1 -0
- package/dist/primitives/charts/radar/chart-radar-grid-fill.js +24 -0
- package/dist/primitives/charts/radar/chart-radar-grid-none.d.ts +3 -0
- package/dist/primitives/charts/radar/chart-radar-grid-none.d.ts.map +1 -0
- package/dist/primitives/charts/radar/chart-radar-grid-none.js +27 -0
- package/dist/primitives/charts/radar/chart-radar-icons.d.ts +3 -0
- package/dist/primitives/charts/radar/chart-radar-icons.d.ts.map +1 -0
- package/dist/primitives/charts/radar/chart-radar-icons.js +33 -0
- package/dist/primitives/charts/radar/index.d.ts +10 -0
- package/dist/primitives/charts/radar/index.d.ts.map +1 -0
- package/dist/primitives/charts/radar/index.js +10 -0
- package/dist/primitives/charts/radial/chart-radial-grid.d.ts +3 -0
- package/dist/primitives/charts/radial/chart-radial-grid.d.ts.map +1 -0
- package/dist/primitives/charts/radial/chart-radial-grid.js +42 -0
- package/dist/primitives/charts/radial/chart-radial-label.d.ts +3 -0
- package/dist/primitives/charts/radial/chart-radial-label.d.ts.map +1 -0
- package/dist/primitives/charts/radial/chart-radial-label.js +42 -0
- package/dist/primitives/charts/radial/chart-radial-shape.d.ts +3 -0
- package/dist/primitives/charts/radial/chart-radial-shape.d.ts.map +1 -0
- package/dist/primitives/charts/radial/chart-radial-shape.js +26 -0
- package/dist/primitives/charts/radial/chart-radial-simple.d.ts +3 -0
- package/dist/primitives/charts/radial/chart-radial-simple.d.ts.map +1 -0
- package/dist/primitives/charts/radial/chart-radial-simple.js +42 -0
- package/dist/primitives/charts/radial/chart-radial-stacked.d.ts +3 -0
- package/dist/primitives/charts/radial/chart-radial-stacked.d.ts.map +1 -0
- package/dist/primitives/charts/radial/chart-radial-stacked.js +26 -0
- package/dist/primitives/charts/radial/chart-radial-text.d.ts +3 -0
- package/dist/primitives/charts/radial/chart-radial-text.d.ts.map +1 -0
- package/dist/primitives/charts/radial/chart-radial-text.js +26 -0
- package/dist/primitives/charts/radial/index.d.ts +7 -0
- package/dist/primitives/charts/radial/index.d.ts.map +1 -0
- package/dist/primitives/charts/radial/index.js +7 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-advanced.d.ts +3 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-advanced.d.ts.map +1 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-advanced.js +34 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-default.d.ts +5 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-default.d.ts.map +1 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-default.js +33 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-formatter.d.ts +3 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-formatter.d.ts.map +1 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-formatter.js +32 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-icons.d.ts +3 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-icons.d.ts.map +1 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-icons.js +34 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-indicator-line.d.ts +5 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-indicator-line.d.ts.map +1 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-indicator-line.js +33 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-indicator-none.d.ts +3 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-indicator-none.d.ts.map +1 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-indicator-none.js +31 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-label-custom.d.ts +3 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-label-custom.d.ts.map +1 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-label-custom.js +34 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-label-formatter.d.ts +3 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-label-formatter.d.ts.map +1 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-label-formatter.js +37 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-label-none.d.ts +3 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-label-none.d.ts.map +1 -0
- package/dist/primitives/charts/tooltip/chart-tooltip-label-none.js +31 -0
- package/dist/primitives/charts/tooltip/index.d.ts +10 -0
- package/dist/primitives/charts/tooltip/index.d.ts.map +1 -0
- package/dist/primitives/charts/tooltip/index.js +10 -0
- package/dist/primitives/chat/chat-input-area.d.ts +24 -0
- package/dist/primitives/chat/chat-input-area.d.ts.map +1 -0
- package/dist/primitives/chat/chat-input-area.js +23 -0
- package/dist/primitives/chat/chat-input.d.ts +13 -0
- package/dist/primitives/chat/chat-input.d.ts.map +1 -0
- package/dist/primitives/chat/chat-input.js +33 -0
- package/dist/primitives/chat/json-form.d.ts +4 -0
- package/dist/primitives/chat/json-form.d.ts.map +1 -0
- package/dist/primitives/chat/json-form.js +6 -0
- package/dist/primitives/checkbox.d.ts +12 -0
- package/dist/primitives/checkbox.d.ts.map +1 -0
- package/dist/primitives/checkbox.js +8 -0
- package/dist/primitives/collapsible.d.ts +6 -0
- package/dist/primitives/collapsible.d.ts.map +1 -0
- package/dist/primitives/collapsible.js +5 -0
- package/dist/primitives/combobox.d.ts +42 -0
- package/dist/primitives/combobox.d.ts.map +1 -0
- package/dist/primitives/combobox.js +49 -0
- package/dist/primitives/command.d.ts +39 -0
- package/dist/primitives/command.d.ts.map +1 -0
- package/dist/primitives/command.js +28 -0
- package/dist/primitives/context-menu.d.ts +54 -0
- package/dist/primitives/context-menu.d.ts.map +1 -0
- package/dist/primitives/context-menu.js +32 -0
- package/dist/primitives/copy-to-clipboard-icon.d.ts +15 -0
- package/dist/primitives/copy-to-clipboard-icon.d.ts.map +1 -0
- package/dist/primitives/copy-to-clipboard-icon.js +21 -0
- package/dist/primitives/dialog-video-controller.d.ts +4 -0
- package/dist/primitives/dialog-video-controller.d.ts.map +1 -0
- package/dist/primitives/dialog-video-controller.js +23 -0
- package/dist/primitives/dialog.d.ts +18 -0
- package/dist/primitives/dialog.d.ts.map +1 -0
- package/dist/primitives/dialog.js +37 -0
- package/dist/primitives/dot-pattern.d.ts +14 -0
- package/dist/primitives/dot-pattern.d.ts.map +1 -0
- package/dist/primitives/dot-pattern.js +8 -0
- package/dist/primitives/dots-loader.d.ts +5 -0
- package/dist/primitives/dots-loader.d.ts.map +1 -0
- package/dist/primitives/dots-loader.js +5 -0
- package/dist/primitives/drawer.d.ts +38 -0
- package/dist/primitives/drawer.d.ts.map +1 -0
- package/dist/primitives/drawer.js +22 -0
- package/dist/primitives/dropdown-menu.d.ts +52 -0
- package/dist/primitives/dropdown-menu.d.ts.map +1 -0
- package/dist/primitives/dropdown-menu.js +34 -0
- package/dist/primitives/empty.d.ts +12 -0
- package/dist/primitives/empty.d.ts.map +1 -0
- package/dist/primitives/empty.js +33 -0
- package/dist/primitives/error-message.d.ts +7 -0
- package/dist/primitives/error-message.d.ts.map +1 -0
- package/dist/primitives/error-message.js +5 -0
- package/dist/primitives/field.d.ts +10 -0
- package/dist/primitives/field.d.ts.map +1 -0
- package/dist/primitives/field.js +16 -0
- package/dist/primitives/file-uploader.d.ts +20 -0
- package/dist/primitives/file-uploader.d.ts.map +1 -0
- package/dist/primitives/file-uploader.js +68 -0
- package/dist/primitives/form.d.ts +40 -0
- package/dist/primitives/form.d.ts.map +1 -0
- package/dist/primitives/form.js +67 -0
- package/dist/primitives/hover-card.d.ts +10 -0
- package/dist/primitives/hover-card.d.ts.map +1 -0
- package/dist/primitives/hover-card.js +8 -0
- package/dist/primitives/icons/github.d.ts +5 -0
- package/dist/primitives/icons/github.d.ts.map +1 -0
- package/dist/primitives/icons/github.js +3 -0
- package/dist/primitives/icons/index.d.ts +5 -0
- package/dist/primitives/icons/index.d.ts.map +1 -0
- package/dist/primitives/icons/index.js +4 -0
- package/dist/primitives/icons/youtube-logo.d.ts +5 -0
- package/dist/primitives/icons/youtube-logo.d.ts.map +1 -0
- package/dist/primitives/icons/youtube-logo.js +33 -0
- package/dist/primitives/index-blocks.d.ts +5 -0
- package/dist/primitives/index-blocks.d.ts.map +1 -0
- package/dist/primitives/index-blocks.js +6 -0
- package/dist/primitives/index-common.d.ts +75 -0
- package/dist/primitives/index-common.d.ts.map +1 -0
- package/dist/primitives/index-common.js +82 -0
- package/dist/primitives/index-core.d.ts +29 -0
- package/dist/primitives/index-core.d.ts.map +1 -0
- package/dist/primitives/index-core.js +30 -0
- package/dist/primitives/index-next.d.ts +3 -0
- package/dist/primitives/index-next.d.ts.map +1 -0
- package/dist/primitives/index-next.js +4 -0
- package/dist/primitives/index-standard.d.ts +79 -0
- package/dist/primitives/index-standard.d.ts.map +1 -0
- package/dist/primitives/index-standard.js +98 -0
- package/dist/primitives/input-group.d.ts +17 -0
- package/dist/primitives/input-group.d.ts.map +1 -0
- package/dist/primitives/input-group.js +61 -0
- package/dist/primitives/input-otp.d.ts +35 -0
- package/dist/primitives/input-otp.d.ts.map +1 -0
- package/dist/primitives/input-otp.js +19 -0
- package/dist/primitives/input.d.ts +15 -0
- package/dist/primitives/input.d.ts.map +1 -0
- package/dist/primitives/input.js +43 -0
- package/dist/primitives/item.d.ts +24 -0
- package/dist/primitives/item.d.ts.map +1 -0
- package/dist/primitives/item.js +67 -0
- package/dist/primitives/kbd.d.ts +5 -0
- package/dist/primitives/kbd.d.ts.map +1 -0
- package/dist/primitives/kbd.js +9 -0
- package/dist/primitives/label.d.ts +11 -0
- package/dist/primitives/label.d.ts.map +1 -0
- package/dist/primitives/label.js +9 -0
- package/dist/primitives/list-adaptor.d.ts +10 -0
- package/dist/primitives/list-adaptor.d.ts.map +1 -0
- package/dist/primitives/list-adaptor.js +1 -0
- package/dist/primitives/list-box.d.ts +12 -0
- package/dist/primitives/list-box.d.ts.map +1 -0
- package/dist/primitives/list-box.js +10 -0
- package/dist/primitives/loading-spinner.d.ts +6 -0
- package/dist/primitives/loading-spinner.d.ts.map +1 -0
- package/dist/primitives/loading-spinner.js +7 -0
- package/dist/primitives/markdown-preview.d.ts +129 -0
- package/dist/primitives/markdown-preview.d.ts.map +1 -0
- package/dist/primitives/markdown-preview.js +165 -0
- package/dist/primitives/menubar.d.ts +29 -0
- package/dist/primitives/menubar.d.ts.map +1 -0
- package/dist/primitives/menubar.js +46 -0
- package/dist/primitives/mermaid.d.ts +8 -0
- package/dist/primitives/mermaid.d.ts.map +1 -0
- package/dist/primitives/mermaid.js +112 -0
- package/dist/primitives/native-select.d.ts +9 -0
- package/dist/primitives/native-select.d.ts.map +1 -0
- package/dist/primitives/native-select.js +14 -0
- package/dist/primitives/navigation-menu.d.ts +13 -0
- package/dist/primitives/navigation-menu.d.ts.map +1 -0
- package/dist/primitives/navigation-menu.js +29 -0
- package/dist/primitives/next/image.d.ts +12 -0
- package/dist/primitives/next/image.d.ts.map +1 -0
- package/dist/primitives/next/image.js +40 -0
- package/dist/primitives/next/index.d.ts +8 -0
- package/dist/primitives/next/index.d.ts.map +1 -0
- package/dist/primitives/next/index.js +7 -0
- package/dist/primitives/next/inline-icon.d.ts +14 -0
- package/dist/primitives/next/inline-icon.d.ts.map +1 -0
- package/dist/primitives/next/inline-icon.js +13 -0
- package/dist/primitives/next/link-element.d.ts +24 -0
- package/dist/primitives/next/link-element.d.ts.map +1 -0
- package/dist/primitives/next/link-element.js +47 -0
- package/dist/primitives/next/mdx-link.d.ts +4 -0
- package/dist/primitives/next/mdx-link.d.ts.map +1 -0
- package/dist/primitives/next/mdx-link.js +10 -0
- package/dist/primitives/next/media-stack.d.ts +9 -0
- package/dist/primitives/next/media-stack.d.ts.map +1 -0
- package/dist/primitives/next/media-stack.js +20 -0
- package/dist/primitives/next/nav-items.d.ts +11 -0
- package/dist/primitives/next/nav-items.d.ts.map +1 -0
- package/dist/primitives/next/nav-items.js +22 -0
- package/dist/primitives/next/youtube-embed.d.ts +12 -0
- package/dist/primitives/next/youtube-embed.d.ts.map +1 -0
- package/dist/primitives/next/youtube-embed.js +16 -0
- package/dist/primitives/popover.d.ts +12 -0
- package/dist/primitives/popover.d.ts.map +1 -0
- package/dist/primitives/popover.js +10 -0
- package/dist/primitives/pretty-json-print.d.ts +5 -0
- package/dist/primitives/pretty-json-print.d.ts.map +1 -0
- package/dist/primitives/pretty-json-print.js +22 -0
- package/dist/primitives/progress.d.ts +9 -0
- package/dist/primitives/progress.d.ts.map +1 -0
- package/dist/primitives/progress.js +7 -0
- package/dist/primitives/prompt-textarea.d.ts +19 -0
- package/dist/primitives/prompt-textarea.d.ts.map +1 -0
- package/dist/primitives/prompt-textarea.js +30 -0
- package/dist/primitives/radio-group.d.ts +12 -0
- package/dist/primitives/radio-group.d.ts.map +1 -0
- package/dist/primitives/radio-group.js +14 -0
- package/dist/primitives/resizable.d.ts +8 -0
- package/dist/primitives/resizable.d.ts.map +1 -0
- package/dist/primitives/resizable.js +8 -0
- package/dist/primitives/scroll-area.d.ts +14 -0
- package/dist/primitives/scroll-area.d.ts.map +1 -0
- package/dist/primitives/scroll-area.js +10 -0
- package/dist/primitives/search-input.d.ts +14 -0
- package/dist/primitives/search-input.d.ts.map +1 -0
- package/dist/primitives/search-input.js +16 -0
- package/dist/primitives/select.d.ts +27 -0
- package/dist/primitives/select.d.ts.map +1 -0
- package/dist/primitives/select.js +21 -0
- package/dist/primitives/separator.d.ts +9 -0
- package/dist/primitives/separator.d.ts.map +1 -0
- package/dist/primitives/separator.js +7 -0
- package/dist/primitives/sheet.d.ts +41 -0
- package/dist/primitives/sheet.d.ts.map +1 -0
- package/dist/primitives/sheet.js +35 -0
- package/dist/primitives/skeleton.d.ts +5 -0
- package/dist/primitives/skeleton.d.ts.map +1 -0
- package/dist/primitives/skeleton.js +7 -0
- package/dist/primitives/slider.d.ts +6 -0
- package/dist/primitives/slider.d.ts.map +1 -0
- package/dist/primitives/slider.js +15 -0
- package/dist/primitives/sonner.d.ts +6 -0
- package/dist/primitives/sonner.d.ts.map +1 -0
- package/dist/primitives/sonner.js +17 -0
- package/dist/primitives/spinner.d.ts +3 -0
- package/dist/primitives/spinner.d.ts.map +1 -0
- package/dist/primitives/spinner.js +7 -0
- package/dist/primitives/step-indicator.d.ts +10 -0
- package/dist/primitives/step-indicator.d.ts.map +1 -0
- package/dist/primitives/step-indicator.js +13 -0
- package/dist/primitives/stepper.d.ts +49 -0
- package/dist/primitives/stepper.d.ts.map +1 -0
- package/dist/primitives/stepper.js +75 -0
- package/dist/primitives/switch.d.ts +9 -0
- package/dist/primitives/switch.d.ts.map +1 -0
- package/dist/primitives/switch.js +7 -0
- package/dist/primitives/table.d.ts +35 -0
- package/dist/primitives/table.d.ts.map +1 -0
- package/dist/primitives/table.js +19 -0
- package/dist/primitives/tabs.d.ts +12 -0
- package/dist/primitives/tabs.d.ts.map +1 -0
- package/dist/primitives/tabs.js +35 -0
- package/dist/primitives/text-area.d.ts +6 -0
- package/dist/primitives/text-area.d.ts.map +1 -0
- package/dist/primitives/text-area.js +10 -0
- package/dist/primitives/text-link.d.ts +6 -0
- package/dist/primitives/text-link.d.ts.map +1 -0
- package/dist/primitives/text-link.js +5 -0
- package/dist/primitives/textarea.d.ts +13 -0
- package/dist/primitives/textarea.d.ts.map +1 -0
- package/dist/primitives/textarea.js +28 -0
- package/dist/primitives/textfield.d.ts +33 -0
- package/dist/primitives/textfield.d.ts.map +1 -0
- package/dist/primitives/textfield.js +9 -0
- package/dist/primitives/toast.d.ts +6 -0
- package/dist/primitives/toast.d.ts.map +1 -0
- package/dist/primitives/toast.js +13 -0
- package/dist/primitives/toggle-group.d.ts +14 -0
- package/dist/primitives/toggle-group.d.ts.map +1 -0
- package/dist/primitives/toggle-group.js +20 -0
- package/dist/primitives/toggle.d.ts +13 -0
- package/dist/primitives/toggle.d.ts.map +1 -0
- package/dist/primitives/toggle.js +24 -0
- package/dist/primitives/tooltip.d.ts +15 -0
- package/dist/primitives/tooltip.d.ts.map +1 -0
- package/dist/primitives/tooltip.js +11 -0
- package/dist/primitives/video-player.d.ts +7 -0
- package/dist/primitives/video-player.d.ts.map +1 -0
- package/dist/primitives/video-player.js +7 -0
- package/dist/primitives/youtube-pip-player.d.ts +33 -0
- package/dist/primitives/youtube-pip-player.d.ts.map +1 -0
- package/dist/primitives/youtube-pip-player.js +253 -0
- package/dist/src/3d/button.d.ts +27 -0
- package/dist/src/3d/button.d.ts.map +1 -0
- package/dist/src/3d/button.js +181 -0
- package/dist/src/3d/card.d.ts +29 -0
- package/dist/src/3d/card.d.ts.map +1 -0
- package/dist/src/3d/card.js +117 -0
- package/dist/src/3d/carousel.d.ts +26 -0
- package/dist/src/3d/carousel.d.ts.map +1 -0
- package/dist/src/3d/carousel.js +171 -0
- package/dist/src/3d/grid.d.ts +49 -0
- package/dist/src/3d/grid.d.ts.map +1 -0
- package/dist/src/3d/grid.js +126 -0
- package/dist/src/3d/index.d.ts +7 -0
- package/dist/src/3d/index.d.ts.map +1 -0
- package/dist/src/3d/index.js +7 -0
- package/dist/src/3d/marquee.d.ts +37 -0
- package/dist/src/3d/marquee.d.ts.map +1 -0
- package/dist/src/3d/marquee.js +208 -0
- package/dist/src/3d/pin.d.ts +8 -0
- package/dist/src/3d/pin.d.ts.map +1 -0
- package/dist/src/3d/pin.js +9 -0
- package/dist/src/avatar.d.ts +2 -0
- package/dist/src/avatar.d.ts.map +1 -0
- package/dist/src/avatar.js +1 -0
- package/dist/src/badge.d.ts +2 -0
- package/dist/src/badge.d.ts.map +1 -0
- package/dist/src/badge.js +1 -0
- package/dist/src/billing/components/account-members.d.ts +10 -0
- package/dist/src/billing/components/account-members.d.ts.map +1 -0
- package/dist/src/billing/components/account-members.js +63 -0
- package/dist/src/billing/components/account-switcher.d.ts +9 -0
- package/dist/src/billing/components/account-switcher.d.ts.map +1 -0
- package/dist/src/billing/components/account-switcher.js +52 -0
- package/dist/src/billing/components/animated-card.d.ts +9 -0
- package/dist/src/billing/components/animated-card.d.ts.map +1 -0
- package/dist/src/billing/components/animated-card.js +161 -0
- package/dist/src/billing/components/billing-settings.d.ts +26 -0
- package/dist/src/billing/components/billing-settings.d.ts.map +1 -0
- package/dist/src/billing/components/billing-settings.js +23 -0
- package/dist/src/billing/components/billing-workspace.d.ts +28 -0
- package/dist/src/billing/components/billing-workspace.d.ts.map +1 -0
- package/dist/src/billing/components/billing-workspace.js +22 -0
- package/dist/src/billing/components/business-profile-panel.d.ts +7 -0
- package/dist/src/billing/components/business-profile-panel.d.ts.map +1 -0
- package/dist/src/billing/components/business-profile-panel.js +45 -0
- package/dist/src/billing/components/card-form.d.ts +18 -0
- package/dist/src/billing/components/card-form.d.ts.map +1 -0
- package/dist/src/billing/components/card-form.js +139 -0
- package/dist/src/billing/components/cost-explorer.d.ts +7 -0
- package/dist/src/billing/components/cost-explorer.d.ts.map +1 -0
- package/dist/src/billing/components/cost-explorer.js +73 -0
- package/dist/src/billing/components/credits-panel.d.ts +8 -0
- package/dist/src/billing/components/credits-panel.d.ts.map +1 -0
- package/dist/src/billing/components/credits-panel.js +58 -0
- package/dist/src/billing/components/guided-setup.d.ts +13 -0
- package/dist/src/billing/components/guided-setup.d.ts.map +1 -0
- package/dist/src/billing/components/guided-setup.js +44 -0
- package/dist/src/billing/components/index.d.ts +47 -0
- package/dist/src/billing/components/index.d.ts.map +1 -0
- package/dist/src/billing/components/index.js +23 -0
- package/dist/src/billing/components/invoice-manager.d.ts +10 -0
- package/dist/src/billing/components/invoice-manager.d.ts.map +1 -0
- package/dist/src/billing/components/invoice-manager.js +131 -0
- package/dist/src/billing/components/invoices-payments.d.ts +7 -0
- package/dist/src/billing/components/invoices-payments.d.ts.map +1 -0
- package/dist/src/billing/components/invoices-payments.js +44 -0
- package/dist/src/billing/components/overview-dashboard.d.ts +31 -0
- package/dist/src/billing/components/overview-dashboard.d.ts.map +1 -0
- package/dist/src/billing/components/overview-dashboard.js +105 -0
- package/dist/src/billing/components/payment-manager.d.ts +13 -0
- package/dist/src/billing/components/payment-manager.d.ts.map +1 -0
- package/dist/src/billing/components/payment-manager.js +330 -0
- package/dist/src/billing/components/promotions-panel.d.ts +7 -0
- package/dist/src/billing/components/promotions-panel.d.ts.map +1 -0
- package/dist/src/billing/components/promotions-panel.js +48 -0
- package/dist/src/billing/components/spend-alerts.d.ts +9 -0
- package/dist/src/billing/components/spend-alerts.d.ts.map +1 -0
- package/dist/src/billing/components/spend-alerts.js +99 -0
- package/dist/src/billing/components/square-card-form.d.ts +32 -0
- package/dist/src/billing/components/square-card-form.d.ts.map +1 -0
- package/dist/src/billing/components/square-card-form.js +179 -0
- package/dist/src/billing/components/status-bar.d.ts +12 -0
- package/dist/src/billing/components/status-bar.d.ts.map +1 -0
- package/dist/src/billing/components/status-bar.js +32 -0
- package/dist/src/billing/components/subscription-portal.d.ts +17 -0
- package/dist/src/billing/components/subscription-portal.d.ts.map +1 -0
- package/dist/src/billing/components/subscription-portal.js +185 -0
- package/dist/src/billing/components/support-tiers-panel.d.ts +6 -0
- package/dist/src/billing/components/support-tiers-panel.d.ts.map +1 -0
- package/dist/src/billing/components/support-tiers-panel.js +90 -0
- package/dist/src/billing/components/tax-compliance-panel.d.ts +8 -0
- package/dist/src/billing/components/tax-compliance-panel.d.ts.map +1 -0
- package/dist/src/billing/components/tax-compliance-panel.js +41 -0
- package/dist/src/billing/components/transactions-panel.d.ts +8 -0
- package/dist/src/billing/components/transactions-panel.d.ts.map +1 -0
- package/dist/src/billing/components/transactions-panel.js +64 -0
- package/dist/src/billing/components/usage-panel.d.ts +7 -0
- package/dist/src/billing/components/usage-panel.d.ts.map +1 -0
- package/dist/src/billing/components/usage-panel.js +64 -0
- package/dist/src/billing/index.d.ts +7 -0
- package/dist/src/billing/index.d.ts.map +1 -0
- package/dist/src/billing/index.js +8 -0
- package/dist/src/billing/types/index.d.ts +312 -0
- package/dist/src/billing/types/index.d.ts.map +1 -0
- package/dist/src/billing/types/index.js +1 -0
- package/dist/src/button.d.ts +2 -0
- package/dist/src/button.d.ts.map +1 -0
- package/dist/src/button.js +1 -0
- package/dist/src/calendar-ext/index.d.ts +4 -0
- package/dist/src/calendar-ext/index.d.ts.map +1 -0
- package/dist/src/calendar-ext/index.js +7 -0
- package/dist/src/charts/index.d.ts +65 -0
- package/dist/src/charts/index.d.ts.map +1 -0
- package/dist/src/charts/index.js +76 -0
- package/dist/src/desktop/hooks.d.ts +75 -0
- package/dist/src/desktop/hooks.d.ts.map +1 -0
- package/dist/src/desktop/hooks.js +194 -0
- package/dist/src/desktop/index.d.ts +7 -0
- package/dist/src/desktop/index.d.ts.map +1 -0
- package/dist/src/desktop/index.js +8 -0
- package/dist/src/desktop/spotlight.d.ts +24 -0
- package/dist/src/desktop/spotlight.d.ts.map +1 -0
- package/dist/src/desktop/spotlight.js +126 -0
- package/dist/src/desktop/window.d.ts +34 -0
- package/dist/src/desktop/window.d.ts.map +1 -0
- package/dist/src/desktop/window.js +114 -0
- package/dist/src/device/index.d.ts +2 -0
- package/dist/src/device/index.d.ts.map +1 -0
- package/dist/src/device/index.js +1 -0
- package/dist/src/dock/basic.d.ts +20 -0
- package/dist/src/dock/basic.d.ts.map +1 -0
- package/dist/src/dock/basic.js +50 -0
- package/dist/src/dock/index.d.ts +6 -0
- package/dist/src/dock/index.d.ts.map +1 -0
- package/dist/src/dock/index.js +6 -0
- package/dist/src/dock/limelight-nav.d.ts +10 -0
- package/dist/src/dock/limelight-nav.d.ts.map +1 -0
- package/dist/src/dock/limelight-nav.js +25 -0
- package/dist/src/dock/macos.d.ts +17 -0
- package/dist/src/dock/macos.d.ts.map +1 -0
- package/dist/src/dock/macos.js +38 -0
- package/dist/src/dock/menu.d.ts +14 -0
- package/dist/src/dock/menu.d.ts.map +1 -0
- package/dist/src/dock/menu.js +10 -0
- package/dist/src/dock/message.d.ts +15 -0
- package/dist/src/dock/message.d.ts.map +1 -0
- package/dist/src/dock/message.js +21 -0
- package/dist/src/form/form.d.ts +24 -0
- package/dist/src/form/form.d.ts.map +1 -0
- package/dist/src/form/form.js +66 -0
- package/dist/src/form/index.d.ts +2 -0
- package/dist/src/form/index.d.ts.map +1 -0
- package/dist/src/form/index.js +2 -0
- package/dist/src/hooks/index.d.ts +8 -0
- package/dist/src/hooks/index.d.ts.map +1 -0
- package/dist/src/hooks/index.js +7 -0
- package/dist/src/hooks/use-click-away.d.ts +3 -0
- package/dist/src/hooks/use-click-away.d.ts.map +1 -0
- package/dist/src/hooks/use-click-away.js +23 -0
- package/dist/src/hooks/use-combined-refs.d.ts +4 -0
- package/dist/src/hooks/use-combined-refs.d.ts.map +1 -0
- package/dist/src/hooks/use-combined-refs.js +18 -0
- package/dist/src/hooks/use-copy-clipboard.d.ts +10 -0
- package/dist/src/hooks/use-copy-clipboard.d.ts.map +1 -0
- package/dist/src/hooks/use-copy-clipboard.js +21 -0
- package/dist/src/hooks/use-debounce.d.ts +2 -0
- package/dist/src/hooks/use-debounce.d.ts.map +1 -0
- package/dist/src/hooks/use-debounce.js +13 -0
- package/dist/src/hooks/use-fill-ids.d.ts +9 -0
- package/dist/src/hooks/use-fill-ids.d.ts.map +1 -0
- package/dist/src/hooks/use-fill-ids.js +20 -0
- package/dist/src/hooks/use-map.d.ts +2 -0
- package/dist/src/hooks/use-map.d.ts.map +1 -0
- package/dist/src/hooks/use-map.js +20 -0
- package/dist/src/hooks/use-measure.d.ts +9 -0
- package/dist/src/hooks/use-measure.d.ts.map +1 -0
- package/dist/src/hooks/use-measure.js +25 -0
- package/dist/src/hooks/use-reverse-video-playback.d.ts +2 -0
- package/dist/src/hooks/use-reverse-video-playback.d.ts.map +1 -0
- package/dist/src/hooks/use-reverse-video-playback.js +41 -0
- package/dist/src/hooks/use-scroll-restoration.d.ts +9 -0
- package/dist/src/hooks/use-scroll-restoration.d.ts.map +1 -0
- package/dist/src/hooks/use-scroll-restoration.js +36 -0
- package/dist/src/kanban/index.d.ts +3 -0
- package/dist/src/kanban/index.d.ts.map +1 -0
- package/dist/src/kanban/index.js +4 -0
- package/dist/src/mcp/enhanced-server.d.ts +41 -0
- package/dist/src/mcp/enhanced-server.d.ts.map +1 -0
- package/dist/src/mcp/enhanced-server.js +1128 -0
- package/dist/src/mcp/index.d.ts +40 -0
- package/dist/src/mcp/index.d.ts.map +1 -0
- package/dist/src/mcp/index.js +436 -0
- package/dist/src/mermaid/index.d.ts +3 -0
- package/dist/src/mermaid/index.d.ts.map +1 -0
- package/dist/src/mermaid/index.js +3 -0
- package/dist/src/models/ModelCard.d.ts +25 -0
- package/dist/src/models/ModelCard.d.ts.map +1 -0
- package/dist/src/models/ModelCard.js +73 -0
- package/dist/src/models/ModelLibrary.d.ts +41 -0
- package/dist/src/models/ModelLibrary.d.ts.map +1 -0
- package/dist/src/models/ModelLibrary.js +63 -0
- package/dist/src/models/ModelTable.d.ts +17 -0
- package/dist/src/models/ModelTable.d.ts.map +1 -0
- package/dist/src/models/ModelTable.js +35 -0
- package/dist/src/models/ZenEnso.d.ts +17 -0
- package/dist/src/models/ZenEnso.d.ts.map +1 -0
- package/dist/src/models/ZenEnso.js +50 -0
- package/dist/src/models/index.d.ts +23 -0
- package/dist/src/models/index.d.ts.map +1 -0
- package/dist/src/models/index.js +18 -0
- package/dist/src/models/types.d.ts +40 -0
- package/dist/src/models/types.d.ts.map +1 -0
- package/dist/src/models/types.js +7 -0
- package/dist/src/navigation/advanced-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/advanced-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/advanced-navigation-bar.js +4 -0
- package/dist/src/navigation/ai-model-selector-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/ai-model-selector-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/ai-model-selector-navigation-bar.js +4 -0
- package/dist/src/navigation/app-switcher-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/app-switcher-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/app-switcher-navigation-bar.js +4 -0
- package/dist/src/navigation/breadcrumb-and-filters-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/breadcrumb-and-filters-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/breadcrumb-and-filters-navigation-bar.js +4 -0
- package/dist/src/navigation/breadcrumb-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/breadcrumb-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/breadcrumb-navigation-bar.js +4 -0
- package/dist/src/navigation/centered-logo-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/centered-logo-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/centered-logo-navigation-bar.js +4 -0
- package/dist/src/navigation/collaboration-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/collaboration-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/collaboration-navigation-bar.js +4 -0
- package/dist/src/navigation/communication-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/communication-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/communication-navigation-bar.js +4 -0
- package/dist/src/navigation/context-switcher-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/context-switcher-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/context-switcher-navigation-bar.js +4 -0
- package/dist/src/navigation/dashboard-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/dashboard-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/dashboard-navigation-bar.js +4 -0
- package/dist/src/navigation/e-commerce-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/e-commerce-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/e-commerce-navigation-bar.js +4 -0
- package/dist/src/navigation/hanzo-shell/AppSwitcher.d.ts +8 -0
- package/dist/src/navigation/hanzo-shell/AppSwitcher.d.ts.map +1 -0
- package/dist/src/navigation/hanzo-shell/AppSwitcher.js +19 -0
- package/dist/src/navigation/hanzo-shell/BeamAvatar.d.ts +9 -0
- package/dist/src/navigation/hanzo-shell/BeamAvatar.d.ts.map +1 -0
- package/dist/src/navigation/hanzo-shell/BeamAvatar.js +38 -0
- package/dist/src/navigation/hanzo-shell/HanzoCommandPalette.d.ts +28 -0
- package/dist/src/navigation/hanzo-shell/HanzoCommandPalette.d.ts.map +1 -0
- package/dist/src/navigation/hanzo-shell/HanzoCommandPalette.js +124 -0
- package/dist/src/navigation/hanzo-shell/HanzoHeader.d.ts +37 -0
- package/dist/src/navigation/hanzo-shell/HanzoHeader.d.ts.map +1 -0
- package/dist/src/navigation/hanzo-shell/HanzoHeader.js +43 -0
- package/dist/src/navigation/hanzo-shell/HanzoMark.d.ts +17 -0
- package/dist/src/navigation/hanzo-shell/HanzoMark.d.ts.map +1 -0
- package/dist/src/navigation/hanzo-shell/HanzoMark.js +57 -0
- package/dist/src/navigation/hanzo-shell/UserAvatar.d.ts +15 -0
- package/dist/src/navigation/hanzo-shell/UserAvatar.d.ts.map +1 -0
- package/dist/src/navigation/hanzo-shell/UserAvatar.js +44 -0
- package/dist/src/navigation/hanzo-shell/UserOrgDropdown.d.ts +11 -0
- package/dist/src/navigation/hanzo-shell/UserOrgDropdown.d.ts.map +1 -0
- package/dist/src/navigation/hanzo-shell/UserOrgDropdown.js +26 -0
- package/dist/src/navigation/hanzo-shell/index.d.ts +14 -0
- package/dist/src/navigation/hanzo-shell/index.d.ts.map +1 -0
- package/dist/src/navigation/hanzo-shell/index.js +9 -0
- package/dist/src/navigation/hanzo-shell/types.d.ts +49 -0
- package/dist/src/navigation/hanzo-shell/types.d.ts.map +1 -0
- package/dist/src/navigation/hanzo-shell/types.js +32 -0
- package/dist/src/navigation/hanzo-shell/useHanzoAuth.d.ts +16 -0
- package/dist/src/navigation/hanzo-shell/useHanzoAuth.d.ts.map +1 -0
- package/dist/src/navigation/hanzo-shell/useHanzoAuth.js +93 -0
- package/dist/src/navigation/icon-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/icon-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/icon-navigation-bar.js +4 -0
- package/dist/src/navigation/index.d.ts +21 -0
- package/dist/src/navigation/index.d.ts.map +1 -0
- package/dist/src/navigation/index.js +21 -0
- package/dist/src/navigation/search-and-toggle-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/search-and-toggle-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/search-and-toggle-navigation-bar.js +4 -0
- package/dist/src/navigation/simple-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/simple-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/simple-navigation-bar.js +4 -0
- package/dist/src/navigation/status-dashboard-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/status-dashboard-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/status-dashboard-navigation-bar.js +4 -0
- package/dist/src/navigation/team-switcher-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/team-switcher-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/team-switcher-navigation-bar.js +4 -0
- package/dist/src/navigation/two-tier-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/two-tier-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/two-tier-navigation-bar.js +4 -0
- package/dist/src/navigation/underline-navigation-bar.d.ts +2 -0
- package/dist/src/navigation/underline-navigation-bar.d.ts.map +1 -0
- package/dist/src/navigation/underline-navigation-bar.js +4 -0
- package/dist/src/pattern/grid.d.ts +111 -0
- package/dist/src/pattern/grid.d.ts.map +1 -0
- package/dist/src/pattern/grid.js +126 -0
- package/dist/src/pattern/index.d.ts +3 -0
- package/dist/src/pattern/index.d.ts.map +1 -0
- package/dist/src/pattern/index.js +2 -0
- package/dist/src/project/gantt.d.ts +13 -0
- package/dist/src/project/gantt.d.ts.map +1 -0
- package/dist/src/project/gantt.js +9 -0
- package/dist/src/project/index.d.ts +4 -0
- package/dist/src/project/index.d.ts.map +1 -0
- package/dist/src/project/index.js +7 -0
- package/dist/src/project/kanban.d.ts +36 -0
- package/dist/src/project/kanban.d.ts.map +1 -0
- package/dist/src/project/kanban.js +259 -0
- package/dist/src/project/list.d.ts +5 -0
- package/dist/src/project/list.d.ts.map +1 -0
- package/dist/src/project/list.js +8 -0
- package/dist/src/registry/api.d.ts +38 -0
- package/dist/src/registry/api.d.ts.map +1 -0
- package/dist/src/registry/api.js +129 -0
- package/dist/src/registry/index.d.ts +354 -0
- package/dist/src/registry/index.d.ts.map +1 -0
- package/dist/src/registry/index.js +45 -0
- package/dist/src/spline/index.d.ts +3 -0
- package/dist/src/spline/index.d.ts.map +1 -0
- package/dist/src/spline/index.js +4 -0
- package/dist/src/spline/media-stack.d.ts +15 -0
- package/dist/src/spline/media-stack.d.ts.map +1 -0
- package/dist/src/spline/media-stack.js +33 -0
- package/dist/src/spline/player.d.ts +15 -0
- package/dist/src/spline/player.d.ts.map +1 -0
- package/dist/src/spline/player.js +12 -0
- package/dist/src/ui/announcement.d.ts +9 -0
- package/dist/src/ui/announcement.d.ts.map +1 -0
- package/dist/src/ui/announcement.js +18 -0
- package/dist/src/ui/avatar-group.d.ts +12 -0
- package/dist/src/ui/avatar-group.d.ts.map +1 -0
- package/dist/src/ui/avatar-group.js +12 -0
- package/dist/src/ui/banner.d.ts +11 -0
- package/dist/src/ui/banner.d.ts.map +1 -0
- package/dist/src/ui/banner.js +25 -0
- package/dist/src/ui/cursor.d.ts +9 -0
- package/dist/src/ui/cursor.d.ts.map +1 -0
- package/dist/src/ui/cursor.js +24 -0
- package/dist/src/ui/index.d.ts +18 -0
- package/dist/src/ui/index.d.ts.map +1 -0
- package/dist/src/ui/index.js +10 -0
- package/dist/src/ui/marquee.d.ts +10 -0
- package/dist/src/ui/marquee.d.ts.map +1 -0
- package/dist/src/ui/marquee.js +14 -0
- package/dist/src/ui/pill.d.ts +11 -0
- package/dist/src/ui/pill.d.ts.map +1 -0
- package/dist/src/ui/pill.js +25 -0
- package/dist/src/ui/spinner.d.ts +3 -0
- package/dist/src/ui/spinner.d.ts.map +1 -0
- package/dist/src/ui/spinner.js +7 -0
- package/dist/src/ui/tags.d.ts +13 -0
- package/dist/src/ui/tags.d.ts.map +1 -0
- package/dist/src/ui/tags.js +11 -0
- package/dist/src/ui/ticker.d.ts +10 -0
- package/dist/src/ui/ticker.d.ts.map +1 -0
- package/dist/src/ui/ticker.js +12 -0
- package/dist/src/utils.d.ts +5 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +16 -0
- package/dist/style/theme-provider.d.ts +5 -0
- package/dist/style/theme-provider.d.ts.map +1 -0
- package/dist/style/theme-provider.js +8 -0
- package/dist/tailwind/colors.tailwind.d.ts +53 -0
- package/dist/tailwind/colors.tailwind.d.ts.map +1 -0
- package/dist/tailwind/colors.tailwind.js +52 -0
- package/dist/tailwind/fontFamily.tailwind.d.ts +9 -0
- package/dist/tailwind/fontFamily.tailwind.d.ts.map +1 -0
- package/dist/tailwind/fontFamily.tailwind.js +7 -0
- package/dist/tailwind/fontSize.tailwind.d.ts +37 -0
- package/dist/tailwind/fontSize.tailwind.d.ts.map +1 -0
- package/dist/tailwind/fontSize.tailwind.js +13 -0
- package/dist/tailwind/index.d.ts +4 -0
- package/dist/tailwind/index.d.ts.map +1 -0
- package/dist/tailwind/index.js +2 -1
- package/dist/tailwind/safelist.tailwind.d.ts +9 -0
- package/dist/tailwind/safelist.tailwind.d.ts.map +1 -0
- package/dist/tailwind/safelist.tailwind.js +25 -0
- package/dist/tailwind/screens.tailwind.d.ts +10 -0
- package/dist/tailwind/screens.tailwind.d.ts.map +1 -0
- package/dist/tailwind/screens.tailwind.js +8 -0
- package/dist/tailwind/spacing.tailwind.d.ts +59 -0
- package/dist/tailwind/spacing.tailwind.d.ts.map +1 -0
- package/dist/tailwind/spacing.tailwind.js +62 -0
- package/dist/tailwind/tailwind.config.hanzo-preset.d.ts +1299 -0
- package/dist/tailwind/tailwind.config.hanzo-preset.d.ts.map +1 -0
- package/dist/tailwind/tailwind.config.hanzo-preset.js +911 -0
- package/dist/tailwind/tw-font-desc.d.ts +7 -0
- package/dist/tailwind/tw-font-desc.d.ts.map +1 -0
- package/dist/tailwind/tw-font-desc.js +6 -0
- package/dist/tailwind/z-index.tailwind.d.ts +51 -0
- package/dist/tailwind/z-index.tailwind.d.ts.map +1 -0
- package/dist/tailwind/z-index.tailwind.js +67 -0
- package/dist/types/animation-def.d.ts +3 -0
- package/dist/types/animation-def.d.ts.map +1 -0
- package/dist/types/animation-def.js +1 -0
- package/dist/types/breakpoints.d.ts +5 -0
- package/dist/types/breakpoints.d.ts.map +1 -0
- package/dist/types/breakpoints.js +4 -0
- package/dist/types/bullet-item.d.ts +7 -0
- package/dist/types/bullet-item.d.ts.map +1 -0
- package/dist/types/bullet-item.js +1 -0
- package/dist/types/button-def.d.ts +30 -0
- package/dist/types/button-def.d.ts.map +1 -0
- package/dist/types/button-def.js +1 -0
- package/dist/types/dimensions.d.ts +6 -0
- package/dist/types/dimensions.d.ts.map +1 -0
- package/dist/types/dimensions.js +1 -0
- package/dist/types/grid-def.d.ts +37 -0
- package/dist/types/grid-def.d.ts.map +1 -0
- package/dist/types/grid-def.js +33 -0
- package/dist/types/image-def.d.ts +28 -0
- package/dist/types/image-def.d.ts.map +1 -0
- package/dist/types/image-def.js +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -1
- package/dist/types/link-def.d.ts +45 -0
- package/dist/types/link-def.d.ts.map +1 -0
- package/dist/types/link-def.js +1 -0
- package/dist/types/media-stack-def.d.ts +26 -0
- package/dist/types/media-stack-def.d.ts.map +1 -0
- package/dist/types/media-stack-def.js +1 -0
- package/dist/types/t-shirt-size.d.ts +3 -0
- package/dist/types/t-shirt-size.d.ts.map +1 -0
- package/dist/types/t-shirt-size.js +1 -0
- package/dist/types/tshirt-dimensions.d.ts +13 -0
- package/dist/types/tshirt-dimensions.d.ts.map +1 -0
- package/dist/types/tshirt-dimensions.js +1 -0
- package/dist/types/video-def.d.ts +10 -0
- package/dist/types/video-def.d.ts.map +1 -0
- package/dist/types/video-def.js +1 -0
- package/dist/util/blob.d.ts +3 -0
- package/dist/util/blob.d.ts.map +1 -0
- package/dist/util/blob.js +23 -0
- package/dist/util/copy-to-clipboard.d.ts +2 -0
- package/dist/util/copy-to-clipboard.d.ts.map +1 -0
- package/dist/util/copy-to-clipboard.js +18 -0
- package/dist/util/create-shadow-root.d.ts +8 -0
- package/dist/util/create-shadow-root.d.ts.map +1 -0
- package/dist/util/create-shadow-root.js +18 -0
- package/dist/util/date.d.ts +29 -0
- package/dist/util/date.d.ts.map +1 -0
- package/dist/util/date.js +60 -0
- package/dist/util/debounce.d.ts +2 -0
- package/dist/util/debounce.d.ts.map +1 -0
- package/dist/util/debounce.js +11 -0
- package/dist/util/file.d.ts +4 -0
- package/dist/util/file.d.ts.map +1 -0
- package/dist/util/file.js +13 -0
- package/dist/util/format-and-abbreviate-as-currency.d.ts +18 -0
- package/dist/util/format-and-abbreviate-as-currency.d.ts.map +1 -0
- package/dist/util/format-and-abbreviate-as-currency.js +91 -0
- package/dist/util/format-text.d.ts +8 -0
- package/dist/util/format-text.d.ts.map +1 -0
- package/dist/util/format-text.js +26 -0
- package/dist/util/format-to-max-char.d.ts +12 -0
- package/dist/util/format-to-max-char.d.ts.map +1 -0
- package/dist/util/format-to-max-char.js +57 -0
- package/dist/util/index-client.d.ts +3 -0
- package/dist/util/index-client.d.ts.map +1 -0
- package/dist/util/index-client.js +3 -0
- package/dist/util/index.d.ts +37 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +80 -1
- package/dist/util/number-abbreviate.d.ts +10 -0
- package/dist/util/number-abbreviate.d.ts.map +1 -0
- package/dist/util/number-abbreviate.js +30 -0
- package/dist/util/specifier.d.ts +8 -0
- package/dist/util/specifier.d.ts.map +1 -0
- package/dist/util/specifier.js +31 -0
- package/dist/util/spread-to-transform.d.ts +8 -0
- package/dist/util/spread-to-transform.d.ts.map +1 -0
- package/dist/util/spread-to-transform.js +19 -0
- package/dist/util/step-animation.d.ts +6 -0
- package/dist/util/step-animation.d.ts.map +1 -0
- package/dist/util/step-animation.js +60 -0
- package/dist/util/timing.d.ts +2 -0
- package/dist/util/timing.d.ts.map +1 -0
- package/dist/util/timing.js +3 -0
- package/dist/util/toasts.d.ts +3 -0
- package/dist/util/toasts.d.ts.map +1 -0
- package/dist/util/toasts.js +10 -0
- package/dist/util/two-way-map.d.ts +9 -0
- package/dist/util/two-way-map.d.ts.map +1 -0
- package/dist/util/two-way-map.js +16 -0
- package/dist/util/use-mobile.d.ts +2 -0
- package/dist/util/use-mobile.d.ts.map +1 -0
- package/dist/util/use-mobile.js +15 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +7 -0
- package/package.json +25 -24
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useEffect, useRef, useCallback } from 'react';
|
|
4
|
+
import { DEFAULT_HANZO_APPS } from './types';
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Built-in cross-app commands derived from DEFAULT_HANZO_APPS
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
function buildCrossAppCommands(apps, currentAppId) {
|
|
9
|
+
return apps
|
|
10
|
+
.filter((app) => app.id !== currentAppId)
|
|
11
|
+
.map((app) => ({
|
|
12
|
+
id: `app-${app.id}`,
|
|
13
|
+
title: app.label,
|
|
14
|
+
description: app.description,
|
|
15
|
+
href: app.href,
|
|
16
|
+
category: 'Hanzo Apps',
|
|
17
|
+
external: true,
|
|
18
|
+
keywords: [app.id, app.label.toLowerCase()],
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// Component
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
export function HanzoCommandPalette({ commands: appCommands = [], apps, currentAppId, open: controlledOpen, onOpenChange, onNavigate, }) {
|
|
25
|
+
var _a;
|
|
26
|
+
const [internalOpen, setInternalOpen] = useState(false);
|
|
27
|
+
const open = controlledOpen ?? internalOpen;
|
|
28
|
+
const setOpen = useCallback((v) => {
|
|
29
|
+
if (onOpenChange)
|
|
30
|
+
onOpenChange(v);
|
|
31
|
+
else
|
|
32
|
+
setInternalOpen(v);
|
|
33
|
+
}, [onOpenChange]);
|
|
34
|
+
const [search, setSearch] = useState('');
|
|
35
|
+
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
36
|
+
const inputRef = useRef(null);
|
|
37
|
+
const listRef = useRef(null);
|
|
38
|
+
// Merge cross-app + app-specific commands
|
|
39
|
+
const crossApp = buildCrossAppCommands(apps ?? DEFAULT_HANZO_APPS, currentAppId);
|
|
40
|
+
const allCommands = [...appCommands, ...crossApp];
|
|
41
|
+
// Filter
|
|
42
|
+
const q = search.toLowerCase();
|
|
43
|
+
const filtered = q
|
|
44
|
+
? allCommands.filter((cmd) => cmd.title.toLowerCase().includes(q) ||
|
|
45
|
+
cmd.description?.toLowerCase().includes(q) ||
|
|
46
|
+
cmd.keywords?.some((k) => k.includes(q)))
|
|
47
|
+
: allCommands;
|
|
48
|
+
// Group by category
|
|
49
|
+
const grouped = {};
|
|
50
|
+
for (const cmd of filtered) {
|
|
51
|
+
;
|
|
52
|
+
(grouped[_a = cmd.category] ?? (grouped[_a] = [])).push(cmd);
|
|
53
|
+
}
|
|
54
|
+
const flat = Object.values(grouped).flat();
|
|
55
|
+
// Reset on search change
|
|
56
|
+
useEffect(() => setSelectedIndex(0), [search]);
|
|
57
|
+
// Focus on open
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
if (open) {
|
|
60
|
+
setSearch('');
|
|
61
|
+
setSelectedIndex(0);
|
|
62
|
+
requestAnimationFrame(() => inputRef.current?.focus());
|
|
63
|
+
}
|
|
64
|
+
}, [open]);
|
|
65
|
+
// Global Cmd+K
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
const handler = (e) => {
|
|
68
|
+
if ((e.metaKey || e.ctrlKey) && e.key === 'k') {
|
|
69
|
+
e.preventDefault();
|
|
70
|
+
setOpen(!open);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
document.addEventListener('keydown', handler);
|
|
74
|
+
return () => document.removeEventListener('keydown', handler);
|
|
75
|
+
}, [open, setOpen]);
|
|
76
|
+
// Navigate helper
|
|
77
|
+
const go = useCallback((cmd) => {
|
|
78
|
+
if (cmd.action) {
|
|
79
|
+
cmd.action();
|
|
80
|
+
}
|
|
81
|
+
else if (cmd.href) {
|
|
82
|
+
if (onNavigate) {
|
|
83
|
+
onNavigate(cmd.href, cmd.external);
|
|
84
|
+
}
|
|
85
|
+
else if (cmd.external) {
|
|
86
|
+
window.open(cmd.href, '_blank');
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
window.location.href = cmd.href;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
setOpen(false);
|
|
93
|
+
}, [onNavigate, setOpen]);
|
|
94
|
+
// Keyboard nav
|
|
95
|
+
const handleKeyDown = useCallback((e) => {
|
|
96
|
+
if (e.key === 'ArrowDown') {
|
|
97
|
+
e.preventDefault();
|
|
98
|
+
setSelectedIndex((i) => (i + 1) % (flat.length || 1));
|
|
99
|
+
}
|
|
100
|
+
else if (e.key === 'ArrowUp') {
|
|
101
|
+
e.preventDefault();
|
|
102
|
+
setSelectedIndex((i) => (i - 1 + (flat.length || 1)) % (flat.length || 1));
|
|
103
|
+
}
|
|
104
|
+
else if (e.key === 'Enter' && flat[selectedIndex]) {
|
|
105
|
+
e.preventDefault();
|
|
106
|
+
go(flat[selectedIndex]);
|
|
107
|
+
}
|
|
108
|
+
else if (e.key === 'Escape') {
|
|
109
|
+
setOpen(false);
|
|
110
|
+
}
|
|
111
|
+
}, [flat, selectedIndex, go, setOpen]);
|
|
112
|
+
// Scroll selected into view
|
|
113
|
+
useEffect(() => {
|
|
114
|
+
const el = listRef.current?.querySelector(`[data-idx="${selectedIndex}"]`);
|
|
115
|
+
el?.scrollIntoView({ block: 'nearest' });
|
|
116
|
+
}, [selectedIndex]);
|
|
117
|
+
if (!open)
|
|
118
|
+
return null;
|
|
119
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0 bg-black/60 backdrop-blur-sm z-[100]", onClick: () => setOpen(false) }), _jsx("div", { className: "fixed top-[15%] left-1/2 -translate-x-1/2 w-full max-w-xl z-[101]", children: _jsxs("div", { className: "bg-[#111113] border border-white/[0.08] rounded-xl shadow-2xl overflow-hidden", children: [_jsxs("div", { className: "flex items-center gap-3 px-4 py-3 border-b border-white/[0.07]", children: [_jsx("svg", { className: "w-4 h-4 text-white/30", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" }) }), _jsx("input", { ref: inputRef, type: "text", value: search, onChange: (e) => setSearch(e.target.value), onKeyDown: handleKeyDown, placeholder: "Search commands...", className: "flex-1 bg-transparent text-white text-[13px] placeholder-white/30 outline-none" }), _jsx("kbd", { className: "px-1.5 py-0.5 text-[10px] font-mono bg-white/[0.06] rounded text-white/30", children: "ESC" })] }), _jsx("div", { ref: listRef, className: "max-h-[400px] overflow-y-auto py-1", children: flat.length === 0 ? (_jsxs("div", { className: "px-4 py-8 text-center text-white/30 text-[13px]", children: ["No results for \u201C", search, "\u201D"] })) : (Object.entries(grouped).map(([category, items]) => (_jsxs("div", { children: [_jsx("div", { className: "px-4 py-2 text-[10px] font-semibold text-white/25 uppercase tracking-widest", children: category }), items.map((cmd) => {
|
|
120
|
+
const idx = flat.indexOf(cmd);
|
|
121
|
+
const selected = idx === selectedIndex;
|
|
122
|
+
return (_jsxs("button", { "data-idx": idx, onClick: () => go(cmd), onMouseEnter: () => setSelectedIndex(idx), className: `w-full flex items-center gap-3 px-4 py-2 text-left transition-colors ${selected ? 'bg-white/[0.06] text-white' : 'text-white/50 hover:bg-white/[0.03]'}`, children: [cmd.icon && (_jsx("span", { className: `w-5 h-5 flex items-center justify-center ${selected ? 'text-white/70' : 'text-white/25'}`, children: cmd.icon })), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("span", { className: "text-[13px] font-medium truncate block", children: cmd.title }), cmd.description && (_jsx("span", { className: "text-[11px] text-white/25 truncate block", children: cmd.description }))] }), selected && (_jsx("span", { className: "text-white/25 text-[11px]", children: "\u21B5" }))] }, cmd.id));
|
|
123
|
+
})] }, category)))) }), _jsxs("div", { className: "px-4 py-2 border-t border-white/[0.07] flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-4 text-[10px] text-white/20", children: [_jsxs("span", { className: "flex items-center gap-1", children: [_jsx("kbd", { className: "px-1 py-0.5 bg-white/[0.06] rounded text-[9px]", children: "\u2191" }), _jsx("kbd", { className: "px-1 py-0.5 bg-white/[0.06] rounded text-[9px]", children: "\u2193" }), "navigate"] }), _jsxs("span", { className: "flex items-center gap-1", children: [_jsx("kbd", { className: "px-1 py-0.5 bg-white/[0.06] rounded text-[9px]", children: "\u21B5" }), "select"] })] }), _jsx("span", { className: "text-[10px] text-white/20", children: "\u2318K" })] })] }) })] }));
|
|
124
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type HanzoShellProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* HanzoHeader — shared top navigation bar for all Hanzo properties.
|
|
4
|
+
*
|
|
5
|
+
* Style: monochrome #09090b / white, same as hanzo.ai docs & console.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Official Hanzo H-mark (animates on hover, brand context menu on right-click)
|
|
9
|
+
* - Current app breadcrumb
|
|
10
|
+
* - App switcher (billing, console, chat, platform, account)
|
|
11
|
+
* - User + org dropdown (orgs from IAM, sign-out)
|
|
12
|
+
*
|
|
13
|
+
* Usage:
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { HanzoHeader, useHanzoAuth } from '@hanzo/ui/navigation'
|
|
16
|
+
*
|
|
17
|
+
* export default function Layout({ children }) {
|
|
18
|
+
* const { user, organizations, currentOrgId, switchOrg, signOut } = useHanzoAuth()
|
|
19
|
+
* return (
|
|
20
|
+
* <>
|
|
21
|
+
* <HanzoHeader
|
|
22
|
+
* currentApp="Billing"
|
|
23
|
+
* currentAppId="billing"
|
|
24
|
+
* user={user}
|
|
25
|
+
* organizations={organizations}
|
|
26
|
+
* currentOrgId={currentOrgId}
|
|
27
|
+
* onOrgSwitch={switchOrg}
|
|
28
|
+
* onSignOut={signOut}
|
|
29
|
+
* />
|
|
30
|
+
* <main>{children}</main>
|
|
31
|
+
* </>
|
|
32
|
+
* )
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function HanzoHeader({ currentApp, currentAppId, user, organizations, currentOrgId, onOrgSwitch, onSignOut, apps, headerRight, }: Omit<HanzoShellProps, 'children'>): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
//# sourceMappingURL=HanzoHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HanzoHeader.d.ts","sourceRoot":"","sources":["../../../../src/navigation/hanzo-shell/HanzoHeader.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,SAAS,EACT,IAAyB,EACzB,WAAW,GACZ,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,2CAoCnC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { HanzoMark } from './HanzoMark';
|
|
4
|
+
import { AppSwitcher } from './AppSwitcher';
|
|
5
|
+
import { UserOrgDropdown } from './UserOrgDropdown';
|
|
6
|
+
import { DEFAULT_HANZO_APPS } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* HanzoHeader — shared top navigation bar for all Hanzo properties.
|
|
9
|
+
*
|
|
10
|
+
* Style: monochrome #09090b / white, same as hanzo.ai docs & console.
|
|
11
|
+
*
|
|
12
|
+
* Features:
|
|
13
|
+
* - Official Hanzo H-mark (animates on hover, brand context menu on right-click)
|
|
14
|
+
* - Current app breadcrumb
|
|
15
|
+
* - App switcher (billing, console, chat, platform, account)
|
|
16
|
+
* - User + org dropdown (orgs from IAM, sign-out)
|
|
17
|
+
*
|
|
18
|
+
* Usage:
|
|
19
|
+
* ```tsx
|
|
20
|
+
* import { HanzoHeader, useHanzoAuth } from '@hanzo/ui/navigation'
|
|
21
|
+
*
|
|
22
|
+
* export default function Layout({ children }) {
|
|
23
|
+
* const { user, organizations, currentOrgId, switchOrg, signOut } = useHanzoAuth()
|
|
24
|
+
* return (
|
|
25
|
+
* <>
|
|
26
|
+
* <HanzoHeader
|
|
27
|
+
* currentApp="Billing"
|
|
28
|
+
* currentAppId="billing"
|
|
29
|
+
* user={user}
|
|
30
|
+
* organizations={organizations}
|
|
31
|
+
* currentOrgId={currentOrgId}
|
|
32
|
+
* onOrgSwitch={switchOrg}
|
|
33
|
+
* onSignOut={signOut}
|
|
34
|
+
* />
|
|
35
|
+
* <main>{children}</main>
|
|
36
|
+
* </>
|
|
37
|
+
* )
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export function HanzoHeader({ currentApp, currentAppId, user, organizations, currentOrgId, onOrgSwitch, onSignOut, apps = DEFAULT_HANZO_APPS, headerRight, }) {
|
|
42
|
+
return (_jsxs("header", { className: "sticky top-0 z-50 flex h-14 w-full items-center justify-between border-b border-white/[0.07] bg-[#09090b]/90 px-4 backdrop-blur-xl", role: "banner", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2.5", children: [_jsx("a", { href: "https://hanzo.id/account", className: "flex-shrink-0 rounded focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/20", "aria-label": "Hanzo Account", children: _jsx(HanzoMark, { size: 22, brandMenu: true, animate: true }) }), _jsx("span", { className: "select-none text-white/[0.15]", children: "/" }), _jsx("span", { className: "truncate text-[13px] font-medium text-white/50", children: currentApp }), _jsx(AppSwitcher, { apps: apps, currentAppId: currentAppId })] }), _jsxs("div", { className: "flex flex-shrink-0 items-center gap-2", children: [headerRight, _jsx(UserOrgDropdown, { user: user, organizations: organizations, currentOrgId: currentOrgId, onOrgSwitch: onOrgSwitch, onSignOut: onSignOut })] })] }));
|
|
43
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface HanzoMarkProps {
|
|
2
|
+
size?: number;
|
|
3
|
+
className?: string;
|
|
4
|
+
/** Whether to show brand context menu on right-click */
|
|
5
|
+
brandMenu?: boolean;
|
|
6
|
+
/** Animate on hover (origami-style scale + slight 3D tilt) */
|
|
7
|
+
animate?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Official Hanzo H-mark logo.
|
|
11
|
+
*
|
|
12
|
+
* - White fill paths with subtle shadow details
|
|
13
|
+
* - Hover: origami-style 3D perspective tilt + scale
|
|
14
|
+
* - Right-click: brand context menu (guidelines, press, download, copy SVG)
|
|
15
|
+
*/
|
|
16
|
+
export declare function HanzoMark({ size, className, brandMenu, animate, }: HanzoMarkProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=HanzoMark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HanzoMark.d.ts","sourceRoot":"","sources":["../../../../src/navigation/hanzo-shell/HanzoMark.tsx"],"names":[],"mappings":"AA8EA,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAS,EACT,SAAc,EACd,SAAgB,EAChB,OAAc,GACf,EAAE,cAAc,2CAkDhB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
4
|
+
function BrandContextMenu({ x, y, onClose }) {
|
|
5
|
+
const ref = useRef(null);
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
const handler = (e) => {
|
|
8
|
+
if (ref.current && !ref.current.contains(e.target))
|
|
9
|
+
onClose();
|
|
10
|
+
};
|
|
11
|
+
const escape = (e) => { if (e.key === 'Escape')
|
|
12
|
+
onClose(); };
|
|
13
|
+
document.addEventListener('mousedown', handler);
|
|
14
|
+
document.addEventListener('keydown', escape);
|
|
15
|
+
return () => {
|
|
16
|
+
document.removeEventListener('mousedown', handler);
|
|
17
|
+
document.removeEventListener('keydown', escape);
|
|
18
|
+
};
|
|
19
|
+
}, [onClose]);
|
|
20
|
+
const items = [
|
|
21
|
+
{ label: 'Brand Guidelines', href: 'https://hanzo.ai/brand' },
|
|
22
|
+
{ label: 'Press Kit', href: 'https://hanzo.ai/press' },
|
|
23
|
+
{ label: 'Download Logo', href: 'https://hanzo.ai/brand#download' },
|
|
24
|
+
{ label: 'Copy SVG', action: 'copy-svg' },
|
|
25
|
+
{ label: 'hanzo.ai →', href: 'https://hanzo.ai' },
|
|
26
|
+
];
|
|
27
|
+
const LOGO_SVG = `<svg viewBox="0 0 67 67" xmlns="http://www.w3.org/2000/svg"><path d="M22.21 67V44.6369H0V67H22.21Z" fill="#ffffff"/><path d="M0 44.6369L22.21 46.8285V44.6369H0Z" fill="#DDDDDD"/><path d="M66.7038 22.3184H22.2534L0.0878906 44.6367H44.4634L66.7038 22.3184Z" fill="#ffffff"/><path d="M22.21 0H0V22.3184H22.21V0Z" fill="#ffffff"/><path d="M66.7198 0H44.5098V22.3184H66.7198V0Z" fill="#ffffff"/><path d="M66.6753 22.3185L44.5098 20.0822V22.3185H66.6753Z" fill="#DDDDDD"/><path d="M66.7198 67V44.6369H44.5098V67H66.7198Z" fill="#ffffff"/></svg>`;
|
|
28
|
+
return (_jsxs("div", { ref: ref, role: "menu", className: "fixed z-[9999] min-w-[180px] rounded-xl border border-white/[0.08] bg-[#111113] py-1.5 shadow-2xl shadow-black/60", style: { top: y, left: x }, children: [_jsx("div", { className: "border-b border-white/[0.06] px-3 pb-2 pt-1", children: _jsx("p", { className: "text-[10px] font-semibold uppercase tracking-widest text-white/30", children: "Hanzo Brand" }) }), items.map((item) => (item.action === 'copy-svg' ? (_jsx("button", { type: "button", role: "menuitem", onClick: () => {
|
|
29
|
+
navigator.clipboard.writeText(LOGO_SVG).catch(() => { });
|
|
30
|
+
onClose();
|
|
31
|
+
}, className: "flex w-full items-center px-3 py-2 text-[13px] text-white/60 hover:bg-white/[0.05] hover:text-white/90 transition-colors text-left", children: "Copy SVG" }, "copy")) : (_jsx("a", { href: item.href, role: "menuitem", target: item.href?.startsWith('https') ? '_blank' : undefined, rel: "noopener noreferrer", onClick: onClose, className: "flex items-center px-3 py-2 text-[13px] text-white/60 hover:bg-white/[0.05] hover:text-white/90 transition-colors", children: item.label }, item.label))))] }));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Official Hanzo H-mark logo.
|
|
35
|
+
*
|
|
36
|
+
* - White fill paths with subtle shadow details
|
|
37
|
+
* - Hover: origami-style 3D perspective tilt + scale
|
|
38
|
+
* - Right-click: brand context menu (guidelines, press, download, copy SVG)
|
|
39
|
+
*/
|
|
40
|
+
export function HanzoMark({ size = 22, className = '', brandMenu = true, animate = true, }) {
|
|
41
|
+
const [menu, setMenu] = useState(null);
|
|
42
|
+
const [hovered, setHovered] = useState(false);
|
|
43
|
+
const handleContextMenu = useCallback((e) => {
|
|
44
|
+
if (!brandMenu)
|
|
45
|
+
return;
|
|
46
|
+
e.preventDefault();
|
|
47
|
+
setMenu({ x: e.clientX, y: e.clientY });
|
|
48
|
+
}, [brandMenu]);
|
|
49
|
+
const style = animate ? {
|
|
50
|
+
transition: 'transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.2s ease',
|
|
51
|
+
transform: hovered
|
|
52
|
+
? 'scale(1.12) perspective(80px) rotateY(-6deg)'
|
|
53
|
+
: 'scale(1) perspective(80px) rotateY(0deg)',
|
|
54
|
+
transformOrigin: 'center center',
|
|
55
|
+
} : {};
|
|
56
|
+
return (_jsxs(_Fragment, { children: [_jsxs("svg", { width: size, height: size, viewBox: "0 0 67 67", xmlns: "http://www.w3.org/2000/svg", "aria-label": "Hanzo", className: className, style: style, onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), onContextMenu: handleContextMenu, children: [_jsx("path", { d: "M22.21 67V44.6369H0V67H22.21Z", fill: "#ffffff" }), _jsx("path", { d: "M0 44.6369L22.21 46.8285V44.6369H0Z", fill: "#DDDDDD" }), _jsx("path", { d: "M66.7038 22.3184H22.2534L0.0878906 44.6367H44.4634L66.7038 22.3184Z", fill: "#ffffff" }), _jsx("path", { d: "M22.21 0H0V22.3184H22.21V0Z", fill: "#ffffff" }), _jsx("path", { d: "M66.7198 0H44.5098V22.3184H66.7198V0Z", fill: "#ffffff" }), _jsx("path", { d: "M66.6753 22.3185L44.5098 20.0822V22.3185H66.6753Z", fill: "#DDDDDD" }), _jsx("path", { d: "M66.7198 67V44.6369H44.5098V67H66.7198Z", fill: "#ffffff" })] }), menu && (_jsx(BrandContextMenu, { x: menu.x, y: menu.y, onClose: () => setMenu(null) }))] }));
|
|
57
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface UserAvatarProps {
|
|
2
|
+
/** Direct image URL (uploaded photo) */
|
|
3
|
+
src?: string;
|
|
4
|
+
/** Email for Gravatar lookup */
|
|
5
|
+
email?: string;
|
|
6
|
+
/** Name for generative fallback seed */
|
|
7
|
+
name?: string;
|
|
8
|
+
/** Size in px */
|
|
9
|
+
size?: number;
|
|
10
|
+
/** Custom colors for generative avatar */
|
|
11
|
+
colors?: string[];
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function UserAvatar({ src, email, name, size, colors, className, }: UserAvatarProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=UserAvatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserAvatar.d.ts","sourceRoot":"","sources":["../../../../src/navigation/hanzo-shell/UserAvatar.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA4BD,wBAAgB,UAAU,CAAC,EACzB,GAAG,EACH,KAAK,EACL,IAAI,EACJ,IAAS,EACT,MAAM,EACN,SAAS,GACV,EAAE,eAAe,2CA4CjB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useMemo } from 'react';
|
|
4
|
+
import { BeamAvatar } from './BeamAvatar';
|
|
5
|
+
async function sha256(message) {
|
|
6
|
+
const encoder = new TextEncoder();
|
|
7
|
+
const data = encoder.encode(message);
|
|
8
|
+
const hashBuffer = await crypto.subtle.digest('SHA-256', data);
|
|
9
|
+
return Array.from(new Uint8Array(hashBuffer))
|
|
10
|
+
.map((b) => b.toString(16).padStart(2, '0'))
|
|
11
|
+
.join('');
|
|
12
|
+
}
|
|
13
|
+
function useGravatarUrl(email, size) {
|
|
14
|
+
const [url, setUrl] = useState(null);
|
|
15
|
+
useMemo(() => {
|
|
16
|
+
if (!email) {
|
|
17
|
+
setUrl(null);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const trimmed = email.trim().toLowerCase();
|
|
21
|
+
sha256(trimmed).then((hash) => {
|
|
22
|
+
setUrl(`https://www.gravatar.com/avatar/${hash}?s=${size || 80}&d=404`);
|
|
23
|
+
});
|
|
24
|
+
}, [email, size]);
|
|
25
|
+
return url;
|
|
26
|
+
}
|
|
27
|
+
export function UserAvatar({ src, email, name, size = 40, colors, className, }) {
|
|
28
|
+
const [photoFailed, setPhotoFailed] = useState(false);
|
|
29
|
+
const [gravatarFailed, setGravatarFailed] = useState(false);
|
|
30
|
+
const gravatarUrl = useGravatarUrl(email, size * 2);
|
|
31
|
+
const imgClass = `rounded-full object-cover ${className || ''}`;
|
|
32
|
+
const style = { width: size, height: size };
|
|
33
|
+
// Tier 1: uploaded/provided photo
|
|
34
|
+
if (src && !photoFailed) {
|
|
35
|
+
return (_jsx("img", { src: src, alt: name || email || 'avatar', className: imgClass, style: style, onError: () => setPhotoFailed(true) }));
|
|
36
|
+
}
|
|
37
|
+
// Tier 2: Gravatar
|
|
38
|
+
if (gravatarUrl && !gravatarFailed) {
|
|
39
|
+
return (_jsx("img", { src: gravatarUrl, alt: name || email || 'avatar', className: imgClass, style: style, onError: () => setGravatarFailed(true) }));
|
|
40
|
+
}
|
|
41
|
+
// Tier 3: generative beam avatar
|
|
42
|
+
const seed = name || email || 'user';
|
|
43
|
+
return (_jsx(BeamAvatar, { name: seed, size: size, colors: colors, className: className }));
|
|
44
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { HanzoUser, HanzoOrg } from './types';
|
|
2
|
+
interface UserOrgDropdownProps {
|
|
3
|
+
user?: HanzoUser;
|
|
4
|
+
organizations?: HanzoOrg[];
|
|
5
|
+
currentOrgId?: string;
|
|
6
|
+
onOrgSwitch?: (orgId: string) => void;
|
|
7
|
+
onSignOut?: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function UserOrgDropdown({ user, organizations, currentOrgId, onOrgSwitch, onSignOut, }: UserOrgDropdownProps): import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=UserOrgDropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserOrgDropdown.d.ts","sourceRoot":"","sources":["../../../../src/navigation/hanzo-shell/UserOrgDropdown.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGlD,UAAU,oBAAoB;IAC5B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,aAAkB,EAClB,YAAY,EACZ,WAAW,EACX,SAAS,GACV,EAAE,oBAAoB,kDA8HtB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useRef, useEffect } from 'react';
|
|
4
|
+
import { UserAvatar } from './UserAvatar';
|
|
5
|
+
export function UserOrgDropdown({ user, organizations = [], currentOrgId, onOrgSwitch, onSignOut, }) {
|
|
6
|
+
const [open, setOpen] = useState(false);
|
|
7
|
+
const ref = useRef(null);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
const handler = (e) => {
|
|
10
|
+
if (ref.current && !ref.current.contains(e.target))
|
|
11
|
+
setOpen(false);
|
|
12
|
+
};
|
|
13
|
+
document.addEventListener('mousedown', handler);
|
|
14
|
+
return () => document.removeEventListener('mousedown', handler);
|
|
15
|
+
}, []);
|
|
16
|
+
if (!user)
|
|
17
|
+
return null;
|
|
18
|
+
const currentOrg = organizations.find((o) => o.id === currentOrgId);
|
|
19
|
+
return (_jsxs("div", { ref: ref, className: "relative", children: [_jsxs("button", { type: "button", onClick: () => setOpen((v) => !v), className: "flex items-center gap-2 rounded-lg px-2 py-1.5 hover:bg-white/[0.06] transition-colors", children: [_jsx(UserAvatar, { src: user.avatar, email: user.email, name: user.name, size: 28 }), _jsxs("div", { className: "hidden flex-col items-start sm:flex", children: [user.name && (_jsx("span", { className: "text-[12px] font-medium text-white/70 leading-none", children: user.name })), _jsx("span", { className: "text-[11px] text-white/30 leading-none mt-0.5", children: user.email })] }), _jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "text-white/30 hidden sm:block", children: _jsx("path", { d: "M6 9l6 6 6-6" }) })] }), open && (_jsxs("div", { className: "absolute right-0 top-10 z-50 w-64 rounded-xl border border-white/[0.08] bg-[#0e0e13] shadow-2xl", children: [_jsxs("div", { className: "border-b border-white/[0.06] px-4 py-3", children: [_jsx("p", { className: "text-[13px] font-medium text-white/80", children: user.name || 'User' }), _jsx("p", { className: "text-[11px] text-white/40", children: user.email })] }), organizations.length > 0 && (_jsxs("div", { className: "border-b border-white/[0.06] p-2", children: [_jsx("p", { className: "px-2 pb-1 pt-0.5 text-[10px] font-medium uppercase tracking-wider text-white/30", children: "Organizations" }), organizations.map((org) => (_jsxs("button", { type: "button", onClick: () => {
|
|
20
|
+
onOrgSwitch?.(org.id);
|
|
21
|
+
setOpen(false);
|
|
22
|
+
}, className: "flex w-full items-center justify-between rounded-lg px-3 py-2 text-left hover:bg-white/[0.06] transition-colors", children: [_jsx("span", { className: "text-[13px] text-white/70", children: org.name }), org.id === currentOrgId && (_jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", className: "text-white/50", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) }))] }, org.id)))] })), _jsxs("div", { className: "p-2", children: [_jsx("a", { href: "https://hanzo.id/account", className: "flex items-center gap-2.5 rounded-lg px-3 py-2 text-[13px] text-white/60 hover:bg-white/[0.06] hover:text-white/80 transition-colors", onClick: () => setOpen(false), children: "Account settings" }), _jsx("a", { href: "https://billing.hanzo.ai", className: "flex items-center gap-2.5 rounded-lg px-3 py-2 text-[13px] text-white/60 hover:bg-white/[0.06] hover:text-white/80 transition-colors", onClick: () => setOpen(false), children: "Billing" }), _jsx("button", { type: "button", onClick: () => {
|
|
23
|
+
setOpen(false);
|
|
24
|
+
onSignOut?.();
|
|
25
|
+
}, className: "flex w-full items-center gap-2.5 rounded-lg px-3 py-2 text-[13px] text-white/40 hover:bg-white/[0.06] hover:text-red-400/70 transition-colors", children: "Sign out" })] })] }))] }));
|
|
26
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { HanzoHeader } from './HanzoHeader';
|
|
2
|
+
export { HanzoMark } from './HanzoMark';
|
|
3
|
+
export { AppSwitcher } from './AppSwitcher';
|
|
4
|
+
export { UserOrgDropdown } from './UserOrgDropdown';
|
|
5
|
+
export { UserAvatar } from './UserAvatar';
|
|
6
|
+
export type { UserAvatarProps } from './UserAvatar';
|
|
7
|
+
export { BeamAvatar } from './BeamAvatar';
|
|
8
|
+
export type { BeamAvatarProps } from './BeamAvatar';
|
|
9
|
+
export { useHanzoAuth } from './useHanzoAuth';
|
|
10
|
+
export { HanzoCommandPalette } from './HanzoCommandPalette';
|
|
11
|
+
export type { CommandItem as HanzoCommandItem, HanzoCommandPaletteProps } from './HanzoCommandPalette';
|
|
12
|
+
export type { HanzoApp, HanzoOrg, HanzoUser, HanzoShellProps, HanzoMarkProps } from './types';
|
|
13
|
+
export { DEFAULT_HANZO_APPS } from './types';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/navigation/hanzo-shell/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,YAAY,EAAE,WAAW,IAAI,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACtG,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { HanzoHeader } from './HanzoHeader';
|
|
2
|
+
export { HanzoMark } from './HanzoMark';
|
|
3
|
+
export { AppSwitcher } from './AppSwitcher';
|
|
4
|
+
export { UserOrgDropdown } from './UserOrgDropdown';
|
|
5
|
+
export { UserAvatar } from './UserAvatar';
|
|
6
|
+
export { BeamAvatar } from './BeamAvatar';
|
|
7
|
+
export { useHanzoAuth } from './useHanzoAuth';
|
|
8
|
+
export { HanzoCommandPalette } from './HanzoCommandPalette';
|
|
9
|
+
export { DEFAULT_HANZO_APPS } from './types';
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export type HanzoApp = {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
href: string;
|
|
5
|
+
icon?: React.ReactNode;
|
|
6
|
+
description?: string;
|
|
7
|
+
};
|
|
8
|
+
export type HanzoOrg = {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
slug: string;
|
|
12
|
+
role?: string;
|
|
13
|
+
};
|
|
14
|
+
export type HanzoUser = {
|
|
15
|
+
id?: string;
|
|
16
|
+
name?: string;
|
|
17
|
+
email: string;
|
|
18
|
+
avatar?: string;
|
|
19
|
+
};
|
|
20
|
+
export type HanzoMarkProps = {
|
|
21
|
+
size?: number;
|
|
22
|
+
className?: string;
|
|
23
|
+
brandMenu?: boolean;
|
|
24
|
+
animate?: boolean;
|
|
25
|
+
};
|
|
26
|
+
export type HanzoShellProps = {
|
|
27
|
+
/** Current app name shown in breadcrumb */
|
|
28
|
+
currentApp: string;
|
|
29
|
+
/** Current app id – used to suppress showing current app in switcher */
|
|
30
|
+
currentAppId?: string;
|
|
31
|
+
/** User from IAM */
|
|
32
|
+
user?: HanzoUser;
|
|
33
|
+
/** Orgs the user belongs to */
|
|
34
|
+
organizations?: HanzoOrg[];
|
|
35
|
+
/** Currently active org id */
|
|
36
|
+
currentOrgId?: string;
|
|
37
|
+
/** Called when user selects a different org */
|
|
38
|
+
onOrgSwitch?: (orgId: string) => void;
|
|
39
|
+
/** Called when user clicks sign out */
|
|
40
|
+
onSignOut?: () => void;
|
|
41
|
+
/** Override the default Hanzo apps list */
|
|
42
|
+
apps?: HanzoApp[];
|
|
43
|
+
/** Extra content rendered in header right-side */
|
|
44
|
+
headerRight?: React.ReactNode;
|
|
45
|
+
/** Sidebar content */
|
|
46
|
+
children?: React.ReactNode;
|
|
47
|
+
};
|
|
48
|
+
export declare const DEFAULT_HANZO_APPS: HanzoApp[];
|
|
49
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/navigation/hanzo-shell/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oBAAoB;IACpB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC1B,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAA;IACjB,kDAAkD;IAClD,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,sBAAsB;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,kBAAkB,EAAE,QAAQ,EA+BxC,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const DEFAULT_HANZO_APPS = [
|
|
2
|
+
{
|
|
3
|
+
id: 'account',
|
|
4
|
+
label: 'Account',
|
|
5
|
+
href: 'https://hanzo.id/account',
|
|
6
|
+
description: 'Profile, orgs & referrals',
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
id: 'billing',
|
|
10
|
+
label: 'Billing',
|
|
11
|
+
href: 'https://billing.hanzo.ai',
|
|
12
|
+
description: 'Subscriptions & usage',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
id: 'console',
|
|
16
|
+
label: 'Console',
|
|
17
|
+
href: 'https://console.hanzo.ai',
|
|
18
|
+
description: 'API keys & projects',
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
id: 'chat',
|
|
22
|
+
label: 'Chat',
|
|
23
|
+
href: 'https://chat.hanzo.ai',
|
|
24
|
+
description: 'AI chat & models',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: 'platform',
|
|
28
|
+
label: 'Platform',
|
|
29
|
+
href: 'https://platform.hanzo.ai',
|
|
30
|
+
description: 'Deploy & scale services',
|
|
31
|
+
},
|
|
32
|
+
];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { HanzoUser, HanzoOrg } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Reads IAM auth from localStorage (shared across all hanzo.* apps) and fetches
|
|
4
|
+
* current user info + orgs from iam.hanzo.ai. Zero-dependency hook — works in
|
|
5
|
+
* billing.hanzo.ai, hanzo.id/account, console.hanzo.ai, etc.
|
|
6
|
+
*/
|
|
7
|
+
export declare function useHanzoAuth(): {
|
|
8
|
+
user: HanzoUser | undefined;
|
|
9
|
+
organizations: HanzoOrg[];
|
|
10
|
+
currentOrgId: string | undefined;
|
|
11
|
+
token: string | null;
|
|
12
|
+
loading: boolean;
|
|
13
|
+
signOut: () => void;
|
|
14
|
+
switchOrg: (orgId: string) => void;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=useHanzoAuth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHanzoAuth.d.ts","sourceRoot":"","sources":["../../../../src/navigation/hanzo-shell/useHanzoAuth.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAclD;;;;GAIG;AACH,wBAAgB,YAAY;;;;;;;uBAgFY,MAAM;EAK7C"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useState, useEffect, useCallback } from 'react';
|
|
3
|
+
const TOKEN_KEY = 'hanzo-auth-token';
|
|
4
|
+
const USER_KEY = 'hanzo-user';
|
|
5
|
+
const EXPIRES_KEY = 'hanzo-auth-expires';
|
|
6
|
+
const IAM_ENDPOINT = 'https://iam.hanzo.ai';
|
|
7
|
+
const ORG_MAP = {
|
|
8
|
+
hanzo: { name: 'Hanzo AI', slug: 'hanzo' },
|
|
9
|
+
lux: { name: 'Lux Network', slug: 'lux' },
|
|
10
|
+
zoo: { name: 'Zoo Labs', slug: 'zoo' },
|
|
11
|
+
pars: { name: 'Pars', slug: 'pars' },
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Reads IAM auth from localStorage (shared across all hanzo.* apps) and fetches
|
|
15
|
+
* current user info + orgs from iam.hanzo.ai. Zero-dependency hook — works in
|
|
16
|
+
* billing.hanzo.ai, hanzo.id/account, console.hanzo.ai, etc.
|
|
17
|
+
*/
|
|
18
|
+
export function useHanzoAuth() {
|
|
19
|
+
const [user, setUser] = useState(undefined);
|
|
20
|
+
const [organizations, setOrganizations] = useState([]);
|
|
21
|
+
const [currentOrgId, setCurrentOrgId] = useState(undefined);
|
|
22
|
+
const [token, setToken] = useState(null);
|
|
23
|
+
const [loading, setLoading] = useState(true);
|
|
24
|
+
const load = useCallback(async () => {
|
|
25
|
+
try {
|
|
26
|
+
const storedToken = localStorage.getItem(TOKEN_KEY);
|
|
27
|
+
const expires = localStorage.getItem(EXPIRES_KEY);
|
|
28
|
+
if (!storedToken || (expires && Date.now() > Number(expires))) {
|
|
29
|
+
setLoading(false);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
setToken(storedToken);
|
|
33
|
+
// Try to get from cache first for instant render
|
|
34
|
+
const cached = localStorage.getItem(USER_KEY);
|
|
35
|
+
if (cached) {
|
|
36
|
+
try {
|
|
37
|
+
const u = JSON.parse(cached);
|
|
38
|
+
if (u?.email) {
|
|
39
|
+
setUser({ id: u.id, name: u.displayName || u.name, email: u.email, avatar: u.avatar });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch { /* ignore */ }
|
|
43
|
+
}
|
|
44
|
+
// Fetch fresh from IAM
|
|
45
|
+
const res = await fetch(`${IAM_ENDPOINT}/api/userinfo`, {
|
|
46
|
+
headers: { Authorization: `Bearer ${storedToken}` },
|
|
47
|
+
});
|
|
48
|
+
if (res.ok) {
|
|
49
|
+
const info = await res.json();
|
|
50
|
+
const u = {
|
|
51
|
+
id: info.sub || info.id,
|
|
52
|
+
name: info.name || info.displayName,
|
|
53
|
+
email: info.email,
|
|
54
|
+
avatar: info.picture || info.avatar,
|
|
55
|
+
};
|
|
56
|
+
setUser(u);
|
|
57
|
+
localStorage.setItem(USER_KEY, JSON.stringify(info));
|
|
58
|
+
// Build orgs from IAM groups
|
|
59
|
+
const groups = info.groups || [];
|
|
60
|
+
const orgs = groups
|
|
61
|
+
.map((g) => {
|
|
62
|
+
const slug = g.toLowerCase().replace(/^\//, '');
|
|
63
|
+
const meta = ORG_MAP[slug];
|
|
64
|
+
return meta ? { id: slug, name: meta.name, slug: meta.slug } : null;
|
|
65
|
+
})
|
|
66
|
+
.filter(Boolean);
|
|
67
|
+
// Default: always include at least a personal org
|
|
68
|
+
if (orgs.length === 0 && u.email) {
|
|
69
|
+
orgs.push({ id: 'personal', name: 'Personal', slug: 'personal' });
|
|
70
|
+
}
|
|
71
|
+
setOrganizations(orgs);
|
|
72
|
+
setCurrentOrgId(orgs[0]?.id);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch { /* silently fail */ }
|
|
76
|
+
finally {
|
|
77
|
+
setLoading(false);
|
|
78
|
+
}
|
|
79
|
+
}, []);
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
load();
|
|
82
|
+
}, [load]);
|
|
83
|
+
const signOut = useCallback(() => {
|
|
84
|
+
localStorage.removeItem(TOKEN_KEY);
|
|
85
|
+
localStorage.removeItem(USER_KEY);
|
|
86
|
+
localStorage.removeItem(EXPIRES_KEY);
|
|
87
|
+
window.location.href = 'https://hanzo.id';
|
|
88
|
+
}, []);
|
|
89
|
+
const switchOrg = useCallback((orgId) => {
|
|
90
|
+
setCurrentOrgId(orgId);
|
|
91
|
+
}, []);
|
|
92
|
+
return { user, organizations, currentOrgId, token, loading, signOut, switchOrg };
|
|
93
|
+
}
|