@hanzo/ui-shadcn 5.7.2
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/README.md +229 -0
- package/bin/cli.js +100 -0
- package/bin/create-registry.js +108 -0
- package/bin/mcp.js +403 -0
- package/bin/npx-registry-mcp.js +15 -0
- package/bin/registry-mcp-wrapper.sh +19 -0
- package/bin/registry-mcp.js +100 -0
- package/bin/start-mcp-server.sh +22 -0
- package/bin/test-mcp.sh +52 -0
- package/bin/update-registry.js +196 -0
- package/content/index.ts +26 -0
- package/dist/3d/button.js +2 -0
- package/dist/3d/button.mjs +2 -0
- package/dist/3d/card.js +2 -0
- package/dist/3d/card.mjs +2 -0
- package/dist/3d/carousel.js +2 -0
- package/dist/3d/carousel.mjs +2 -0
- package/dist/3d/grid.js +2 -0
- package/dist/3d/grid.mjs +2 -0
- package/dist/3d/index.js +2 -0
- package/dist/3d/index.mjs +2 -0
- package/dist/3d/marquee.js +2 -0
- package/dist/3d/marquee.mjs +2 -0
- package/dist/3d/pin.js +2 -0
- package/dist/3d/pin.mjs +2 -0
- package/dist/accordion.js +2 -0
- package/dist/accordion.mjs +2 -0
- package/dist/alert-dialog.js +2 -0
- package/dist/alert-dialog.mjs +2 -0
- package/dist/alert.js +2 -0
- package/dist/alert.mjs +2 -0
- package/dist/animation/animated-background.js +2 -0
- package/dist/animation/animated-background.mjs +2 -0
- package/dist/animation/animated-beam.js +2 -0
- package/dist/animation/animated-beam.mjs +2 -0
- package/dist/animation/animated-cursor.js +2 -0
- package/dist/animation/animated-cursor.mjs +2 -0
- package/dist/animation/animated-icon.js +3 -0
- package/dist/animation/animated-icon.mjs +3 -0
- package/dist/animation/animated-list.js +2 -0
- package/dist/animation/animated-list.mjs +2 -0
- package/dist/animation/animated-number.js +2 -0
- package/dist/animation/animated-number.mjs +2 -0
- package/dist/animation/animated-testimonials.js +2 -0
- package/dist/animation/animated-testimonials.mjs +2 -0
- package/dist/animation/animated-tooltip.js +2 -0
- package/dist/animation/animated-tooltip.mjs +2 -0
- package/dist/animation/apple-cards-carousel.js +2 -0
- package/dist/animation/apple-cards-carousel.mjs +2 -0
- package/dist/animation/apple-hello-effect.js +2 -0
- package/dist/animation/apple-hello-effect.mjs +2 -0
- package/dist/animation/index.js +3 -0
- package/dist/animation/index.mjs +3 -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/auth/index.js +3 -0
- package/dist/auth/index.mjs +3 -0
- package/dist/avatar.js +2 -0
- package/dist/avatar.mjs +2 -0
- package/dist/badge.js +2 -0
- package/dist/badge.mjs +2 -0
- package/dist/billing/index.js +3 -0
- package/dist/billing/index.mjs +3 -0
- package/dist/blocks/index.js +3 -0
- package/dist/blocks/index.mjs +3 -0
- package/dist/breadcrumb.js +2 -0
- package/dist/breadcrumb.mjs +2 -0
- package/dist/calendar-ext/index.js +2 -0
- package/dist/calendar-ext/index.mjs +2 -0
- package/dist/calendar.js +2 -0
- package/dist/calendar.mjs +2 -0
- package/dist/carousel.js +2 -0
- package/dist/carousel.mjs +2 -0
- package/dist/charts/index.js +8 -0
- package/dist/charts/index.mjs +8 -0
- package/dist/checkbox.js +2 -0
- package/dist/checkbox.mjs +2 -0
- package/dist/code/block.js +3 -0
- package/dist/code/block.mjs +3 -0
- package/dist/code/compare.js +7 -0
- package/dist/code/compare.mjs +7 -0
- package/dist/code/diff.js +13 -0
- package/dist/code/diff.mjs +13 -0
- package/dist/code/editor.js +2 -0
- package/dist/code/editor.mjs +2 -0
- package/dist/code/explorer.js +2 -0
- package/dist/code/explorer.mjs +2 -0
- package/dist/code/index.js +63 -0
- package/dist/code/index.mjs +63 -0
- package/dist/code/preview.js +43 -0
- package/dist/code/preview.mjs +43 -0
- package/dist/code/snippet.js +3 -0
- package/dist/code/snippet.mjs +3 -0
- package/dist/code/tabs.js +2 -0
- package/dist/code/tabs.mjs +2 -0
- package/dist/code/terminal.js +4 -0
- package/dist/code/terminal.mjs +4 -0
- package/dist/collapsible.js +2 -0
- package/dist/collapsible.mjs +2 -0
- package/dist/command.js +2 -0
- package/dist/command.mjs +2 -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/context-menu.js +2 -0
- package/dist/context-menu.mjs +2 -0
- package/dist/dash/crud.js +2 -0
- package/dist/dash/crud.mjs +2 -0
- package/dist/dash/form.js +2 -0
- package/dist/dash/form.mjs +2 -0
- package/dist/dash/header.js +2 -0
- package/dist/dash/header.mjs +2 -0
- package/dist/dash/index.js +3 -0
- package/dist/dash/index.mjs +3 -0
- package/dist/dash/layout.js +2 -0
- package/dist/dash/layout.mjs +2 -0
- package/dist/dash/sidebar.js +3 -0
- package/dist/dash/sidebar.mjs +3 -0
- package/dist/dash/table.js +2 -0
- package/dist/dash/table.mjs +2 -0
- package/dist/desktop/hooks.js +2 -0
- package/dist/desktop/hooks.mjs +2 -0
- package/dist/desktop/index.js +2 -0
- package/dist/desktop/index.mjs +2 -0
- package/dist/desktop/spotlight.js +2 -0
- package/dist/desktop/spotlight.mjs +2 -0
- package/dist/desktop/window.js +2 -0
- package/dist/desktop/window.mjs +2 -0
- package/dist/device/index.js +2 -0
- package/dist/device/index.mjs +1 -0
- package/dist/dialog.js +2 -0
- package/dist/dialog.mjs +2 -0
- package/dist/dock/basic.js +2 -0
- package/dist/dock/basic.mjs +2 -0
- package/dist/dock/index.js +2 -0
- package/dist/dock/index.mjs +2 -0
- package/dist/dock/limelight-nav.js +2 -0
- package/dist/dock/limelight-nav.mjs +2 -0
- package/dist/dock/macos.js +2 -0
- package/dist/dock/macos.mjs +2 -0
- package/dist/dock/menu.js +2 -0
- package/dist/dock/menu.mjs +2 -0
- package/dist/dock/message.js +2 -0
- package/dist/dock/message.mjs +2 -0
- package/dist/drawer.js +2 -0
- package/dist/drawer.mjs +2 -0
- package/dist/dropdown-menu.js +2 -0
- package/dist/dropdown-menu.mjs +2 -0
- package/dist/finance/AdvancedChart.js +3 -0
- package/dist/finance/AdvancedChart.mjs +3 -0
- package/dist/finance/CompanyProfile.js +3 -0
- package/dist/finance/CompanyProfile.mjs +3 -0
- package/dist/finance/CryptoScreener.js +3 -0
- package/dist/finance/CryptoScreener.mjs +3 -0
- package/dist/finance/Financials.js +3 -0
- package/dist/finance/Financials.mjs +3 -0
- package/dist/finance/ForexScreener.js +3 -0
- package/dist/finance/ForexScreener.mjs +3 -0
- package/dist/finance/MarketOverview.js +3 -0
- package/dist/finance/MarketOverview.mjs +3 -0
- package/dist/finance/NewsTimeline.js +3 -0
- package/dist/finance/NewsTimeline.mjs +3 -0
- package/dist/finance/OrderEntry.js +2 -0
- package/dist/finance/OrderEntry.mjs +2 -0
- package/dist/finance/OrdersHistory.js +2 -0
- package/dist/finance/OrdersHistory.mjs +2 -0
- package/dist/finance/PositionsList.js +2 -0
- package/dist/finance/PositionsList.mjs +2 -0
- package/dist/finance/StockScreener.js +3 -0
- package/dist/finance/StockScreener.mjs +3 -0
- package/dist/finance/SymbolInfo.js +3 -0
- package/dist/finance/SymbolInfo.mjs +3 -0
- package/dist/finance/TechnicalAnalysis.js +3 -0
- package/dist/finance/TechnicalAnalysis.mjs +3 -0
- package/dist/finance/TickerTape.js +3 -0
- package/dist/finance/TickerTape.mjs +3 -0
- package/dist/finance/TradingPanel.js +2 -0
- package/dist/finance/TradingPanel.mjs +2 -0
- package/dist/finance/index.js +3 -0
- package/dist/finance/index.mjs +3 -0
- package/dist/form/index.js +2 -0
- package/dist/form/index.mjs +2 -0
- package/dist/form.js +2 -0
- package/dist/form.mjs +2 -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/hover-card.js +2 -0
- package/dist/hover-card.mjs +2 -0
- package/dist/index.js +193 -0
- package/dist/index.mjs +193 -0
- package/dist/input-otp.js +2 -0
- package/dist/input-otp.mjs +2 -0
- package/dist/kanban/index.js +2 -0
- package/dist/kanban/index.mjs +2 -0
- package/dist/lib/utils.js +1 -0
- package/dist/lib/utils.mjs +1 -0
- package/dist/mermaid/index.js +2 -0
- package/dist/mermaid/index.mjs +2 -0
- package/dist/models/index.js +35 -0
- package/dist/models/index.mjs +35 -0
- package/dist/navigation/hanzo-shell.js +3 -0
- package/dist/navigation/hanzo-shell.mjs +3 -0
- package/dist/navigation/index.js +3 -0
- package/dist/navigation/index.mjs +3 -0
- package/dist/navigation-menu.js +2 -0
- package/dist/navigation-menu.mjs +2 -0
- package/dist/network/index.js +3 -0
- package/dist/network/index.mjs +3 -0
- package/dist/pattern/grid-pattern.js +11 -0
- package/dist/pattern/grid-pattern.mjs +11 -0
- package/dist/pattern/index.js +11 -0
- package/dist/pattern/index.mjs +11 -0
- package/dist/popover.js +2 -0
- package/dist/popover.mjs +2 -0
- 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 +24 -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/progress.js +2 -0
- package/dist/progress.mjs +2 -0
- package/dist/project/gantt.js +2 -0
- package/dist/project/gantt.mjs +2 -0
- package/dist/project/index.js +2 -0
- package/dist/project/index.mjs +2 -0
- package/dist/project/kanban.js +2 -0
- package/dist/project/kanban.mjs +2 -0
- package/dist/project/list.js +2 -0
- package/dist/project/list.mjs +2 -0
- package/dist/radio-group.js +2 -0
- package/dist/radio-group.mjs +2 -0
- package/dist/resizable.js +2 -0
- package/dist/resizable.mjs +2 -0
- package/dist/scroll-area.js +2 -0
- package/dist/scroll-area.mjs +2 -0
- package/dist/select.js +2 -0
- package/dist/select.mjs +2 -0
- package/dist/separator.js +2 -0
- package/dist/separator.mjs +2 -0
- package/dist/sheet.js +2 -0
- package/dist/sheet.mjs +2 -0
- package/dist/skeleton.js +2 -0
- package/dist/skeleton.mjs +2 -0
- package/dist/slider.js +2 -0
- package/dist/slider.mjs +2 -0
- package/dist/sonner.js +2 -0
- package/dist/sonner.mjs +2 -0
- package/dist/spline/index.js +2 -0
- package/dist/spline/index.mjs +2 -0
- package/dist/spline/media-stack.js +2 -0
- package/dist/spline/media-stack.mjs +2 -0
- package/dist/spline/player.js +2 -0
- package/dist/spline/player.mjs +2 -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/auth/AuthGuard.d.ts +16 -0
- package/dist/src/auth/AuthGuard.d.ts.map +1 -0
- package/dist/src/auth/AuthGuard.js +32 -0
- package/dist/src/auth/IAMLoginButton.d.ts +27 -0
- package/dist/src/auth/IAMLoginButton.d.ts.map +1 -0
- package/dist/src/auth/IAMLoginButton.js +22 -0
- package/dist/src/auth/PasswordForm.d.ts +22 -0
- package/dist/src/auth/PasswordForm.d.ts.map +1 -0
- package/dist/src/auth/PasswordForm.js +28 -0
- package/dist/src/auth/SignIn.d.ts +37 -0
- package/dist/src/auth/SignIn.d.ts.map +1 -0
- package/dist/src/auth/SignIn.js +26 -0
- package/dist/src/auth/SocialButton.d.ts +27 -0
- package/dist/src/auth/SocialButton.d.ts.map +1 -0
- package/dist/src/auth/SocialButton.js +37 -0
- package/dist/src/auth/Web3Connect.d.ts +9 -0
- package/dist/src/auth/Web3Connect.d.ts.map +1 -0
- package/dist/src/auth/Web3Connect.js +11 -0
- package/dist/src/auth/iam.d.ts +56 -0
- package/dist/src/auth/iam.d.ts.map +1 -0
- package/dist/src/auth/iam.js +78 -0
- package/dist/src/auth/index.d.ts +19 -0
- package/dist/src/auth/index.d.ts.map +1 -0
- package/dist/src/auth/index.js +14 -0
- package/dist/src/auth/types.d.ts +43 -0
- package/dist/src/auth/types.d.ts.map +1 -0
- package/dist/src/auth/types.js +8 -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/credit-modal.d.ts +38 -0
- package/dist/src/billing/components/credit-modal.d.ts.map +1 -0
- package/dist/src/billing/components/credit-modal.js +39 -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 +49 -0
- package/dist/src/billing/components/index.d.ts.map +1 -0
- package/dist/src/billing/components/index.js +24 -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 +342 -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/dash/crud.d.ts +37 -0
- package/dist/src/dash/crud.d.ts.map +1 -0
- package/dist/src/dash/crud.js +74 -0
- package/dist/src/dash/form.d.ts +52 -0
- package/dist/src/dash/form.d.ts.map +1 -0
- package/dist/src/dash/form.js +90 -0
- package/dist/src/dash/header.d.ts +28 -0
- package/dist/src/dash/header.d.ts.map +1 -0
- package/dist/src/dash/header.js +24 -0
- package/dist/src/dash/index.d.ts +21 -0
- package/dist/src/dash/index.d.ts.map +1 -0
- package/dist/src/dash/index.js +20 -0
- package/dist/src/dash/layout.d.ts +16 -0
- package/dist/src/dash/layout.d.ts.map +1 -0
- package/dist/src/dash/layout.js +8 -0
- package/dist/src/dash/sidebar.d.ts +31 -0
- package/dist/src/dash/sidebar.d.ts.map +1 -0
- package/dist/src/dash/sidebar.js +26 -0
- package/dist/src/dash/table.d.ts +50 -0
- package/dist/src/dash/table.d.ts.map +1 -0
- package/dist/src/dash/table.js +88 -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 +26 -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 +42 -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 +16 -0
- package/dist/src/navigation/hanzo-shell/HanzoHeader.d.ts.map +1 -0
- package/dist/src/navigation/hanzo-shell/HanzoHeader.js +101 -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 +29 -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 +95 -0
- package/dist/src/navigation/hanzo-shell/types.d.ts.map +1 -0
- package/dist/src/navigation/hanzo-shell/types.js +337 -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/network/NetworkSwitcher.d.ts +8 -0
- package/dist/src/network/NetworkSwitcher.d.ts.map +1 -0
- package/dist/src/network/NetworkSwitcher.js +80 -0
- package/dist/src/network/index.d.ts +4 -0
- package/dist/src/network/index.d.ts.map +1 -0
- package/dist/src/network/index.js +3 -0
- package/dist/src/network/networks.d.ts +39 -0
- package/dist/src/network/networks.d.ts.map +1 -0
- package/dist/src/network/networks.js +70 -0
- package/dist/src/network/store.d.ts +24 -0
- package/dist/src/network/store.d.ts.map +1 -0
- package/dist/src/network/store.js +116 -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/src/wallet/WalletMenu.d.ts +9 -0
- package/dist/src/wallet/WalletMenu.d.ts.map +1 -0
- package/dist/src/wallet/WalletMenu.js +70 -0
- package/dist/src/wallet/evm.d.ts +28 -0
- package/dist/src/wallet/evm.d.ts.map +1 -0
- package/dist/src/wallet/evm.js +113 -0
- package/dist/src/wallet/index.d.ts +4 -0
- package/dist/src/wallet/index.d.ts.map +1 -0
- package/dist/src/wallet/index.js +3 -0
- package/dist/src/wallet/types.d.ts +44 -0
- package/dist/src/wallet/types.d.ts.map +1 -0
- package/dist/src/wallet/types.js +17 -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/switch.js +2 -0
- package/dist/switch.mjs +2 -0
- package/dist/table.js +2 -0
- package/dist/table.mjs +2 -0
- package/dist/tabs.js +2 -0
- package/dist/tabs.mjs +2 -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 -0
- package/dist/tailwind/index.mjs +1 -0
- 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/textarea.js +2 -0
- package/dist/textarea.mjs +2 -0
- package/dist/toggle-group.js +2 -0
- package/dist/toggle-group.mjs +2 -0
- package/dist/toggle.js +2 -0
- package/dist/toggle.mjs +2 -0
- package/dist/tooltip.js +2 -0
- package/dist/tooltip.mjs +2 -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 -0
- package/dist/types/index.mjs +1 -0
- 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/ui/announcement.js +2 -0
- package/dist/ui/announcement.mjs +2 -0
- package/dist/ui/avatar-group.js +2 -0
- package/dist/ui/avatar-group.mjs +2 -0
- package/dist/ui/banner.js +2 -0
- package/dist/ui/banner.mjs +2 -0
- package/dist/ui/cursor.js +2 -0
- package/dist/ui/cursor.mjs +2 -0
- package/dist/ui/index.js +2 -0
- package/dist/ui/index.mjs +2 -0
- package/dist/ui/marquee.js +2 -0
- package/dist/ui/marquee.mjs +2 -0
- package/dist/ui/pill.js +2 -0
- package/dist/ui/pill.mjs +2 -0
- package/dist/ui/spinner.js +2 -0
- package/dist/ui/spinner.mjs +2 -0
- package/dist/ui/tags.js +2 -0
- package/dist/ui/tags.mjs +2 -0
- package/dist/ui/ticker.js +2 -0
- package/dist/ui/ticker.mjs +2 -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 -0
- package/dist/util/index.mjs +1 -0
- 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/dist/wallet/index.js +3 -0
- package/dist/wallet/index.mjs +3 -0
- package/docs/_registry/index.ts +426 -0
- package/docs/_registry/layout/docs-min.tsx +197 -0
- package/docs/_registry/layout/page-min.tsx +128 -0
- package/docs/components/accordion.tsx +118 -0
- package/docs/components/banner.tsx +144 -0
- package/docs/components/callout.tsx +112 -0
- package/docs/components/card.tsx +52 -0
- package/docs/components/codeblock.tsx +258 -0
- package/docs/components/dialog/search-algolia.tsx +132 -0
- package/docs/components/dialog/search-default.tsx +131 -0
- package/docs/components/dialog/search-orama.tsx +143 -0
- package/docs/components/dialog/search.tsx +529 -0
- package/docs/components/dynamic-codeblock.tsx +129 -0
- package/docs/components/files.tsx +81 -0
- package/docs/components/github-info.tsx +107 -0
- package/docs/components/heading.tsx +33 -0
- package/docs/components/image-zoom.css +77 -0
- package/docs/components/image-zoom.tsx +58 -0
- package/docs/components/index.ts +7 -0
- package/docs/components/inline-toc.tsx +48 -0
- package/docs/components/sidebar/base.tsx +451 -0
- package/docs/components/sidebar/link-item.tsx +65 -0
- package/docs/components/sidebar/page-tree.tsx +113 -0
- package/docs/components/sidebar/tabs/dropdown.tsx +109 -0
- package/docs/components/sidebar/tabs/index.tsx +89 -0
- package/docs/components/steps.tsx +9 -0
- package/docs/components/tabs.tsx +203 -0
- package/docs/components/toc/clerk.tsx +173 -0
- package/docs/components/toc/default.tsx +57 -0
- package/docs/components/toc/index.tsx +136 -0
- package/docs/components/type-table.tsx +174 -0
- package/docs/components/ui/accordion.tsx +88 -0
- package/docs/components/ui/button.tsx +28 -0
- package/docs/components/ui/collapsible.tsx +42 -0
- package/docs/components/ui/navigation-menu.tsx +83 -0
- package/docs/components/ui/popover.tsx +32 -0
- package/docs/components/ui/scroll-area.tsx +59 -0
- package/docs/components/ui/tabs.tsx +145 -0
- package/docs/contexts/i18n.tsx +56 -0
- package/docs/contexts/search.tsx +165 -0
- package/docs/contexts/tree.tsx +65 -0
- package/docs/css/aspen.css +39 -0
- package/docs/css/black.css +39 -0
- package/docs/css/catppuccin.css +49 -0
- package/docs/css/colors/index.css +51 -0
- package/docs/css/dusk.css +47 -0
- package/docs/css/emerald.css +39 -0
- package/docs/css/layouts/docs.css +1 -0
- package/docs/css/layouts/home.css +1 -0
- package/docs/css/layouts/notebook.css +1 -0
- package/docs/css/neutral.css +7 -0
- package/docs/css/ocean.css +48 -0
- package/docs/css/preset.css +305 -0
- package/docs/css/purple.css +39 -0
- package/docs/css/ruby.css +39 -0
- package/docs/css/shadcn.css +36 -0
- package/docs/css/shiki.css +90 -0
- package/docs/css/solar.css +75 -0
- package/docs/css/style.css +9 -0
- package/docs/css/vitepress.css +77 -0
- package/docs/i18n.tsx +30 -0
- package/docs/icons.tsx +354 -0
- package/docs/layouts/docs/client.tsx +129 -0
- package/docs/layouts/docs/index.tsx +321 -0
- package/docs/layouts/docs/page/client.tsx +376 -0
- package/docs/layouts/docs/page/index.tsx +251 -0
- package/docs/layouts/docs/sidebar.tsx +265 -0
- package/docs/layouts/home/client.tsx +375 -0
- package/docs/layouts/home/index.tsx +51 -0
- package/docs/layouts/home/navbar.tsx +55 -0
- package/docs/layouts/notebook/client.tsx +281 -0
- package/docs/layouts/notebook/index.tsx +461 -0
- package/docs/layouts/notebook/page/client.tsx +375 -0
- package/docs/layouts/notebook/page/index.tsx +251 -0
- package/docs/layouts/notebook/sidebar.tsx +248 -0
- package/docs/layouts/shared/index.tsx +89 -0
- package/docs/layouts/shared/language-toggle.tsx +66 -0
- package/docs/layouts/shared/link-item.tsx +119 -0
- package/docs/layouts/shared/search-toggle.tsx +78 -0
- package/docs/layouts/shared/theme-toggle.tsx +86 -0
- package/docs/mdx.server.tsx +37 -0
- package/docs/mdx.tsx +97 -0
- package/docs/og.tsx +101 -0
- package/docs/page.tsx +85 -0
- package/docs/provider/base.tsx +173 -0
- package/docs/provider/next.tsx +23 -0
- package/docs/provider/react-router.tsx +23 -0
- package/docs/provider/tanstack.tsx +23 -0
- package/docs/provider/waku.tsx +23 -0
- package/docs/source.ts +3 -0
- package/docs/theme/typography/LICENSE +21 -0
- package/docs/theme/typography/index.ts +201 -0
- package/docs/theme/typography/styles.ts +449 -0
- package/docs/utils/cn.ts +1 -0
- package/docs/utils/is-active.ts +23 -0
- package/docs/utils/merge-refs.ts +15 -0
- package/docs/utils/use-copy-button.ts +39 -0
- package/docs/utils/use-footer-items.ts +27 -0
- package/docs/utils/use-is-scroll-top.ts +21 -0
- package/finance/README.md +164 -0
- package/finance/components/AdvancedChart.tsx +58 -0
- package/finance/components/CompanyProfile.tsx +65 -0
- package/finance/components/CryptoScreener.tsx +55 -0
- package/finance/components/Financials.tsx +71 -0
- package/finance/components/ForexScreener.tsx +56 -0
- package/finance/components/MarketOverview.tsx +114 -0
- package/finance/components/NewsTimeline.tsx +54 -0
- package/finance/components/OrderEntry.tsx +157 -0
- package/finance/components/OrdersHistory.tsx +103 -0
- package/finance/components/PositionsList.tsx +85 -0
- package/finance/components/StockScreener.tsx +56 -0
- package/finance/components/SymbolInfo.tsx +62 -0
- package/finance/components/TechnicalAnalysis.tsx +74 -0
- package/finance/components/TickerTape.tsx +66 -0
- package/finance/components/TradingPanel.tsx +238 -0
- package/finance/components/index.ts +40 -0
- package/finance/index.ts +23 -0
- package/package.json +871 -0
- package/style/drawer.css +163 -0
- package/style/globals.css +146 -0
- package/style/hanzo-common.css +31 -0
- package/style/hanzo-default-colors.css +147 -0
- package/style/tailwind.css +200 -0
- package/style/theme-provider.tsx +20 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import*as r from'react';import {cva}from'class-variance-authority';import {Terminal,RefreshCw,Copy,Download,Minimize2,Maximize2,ChevronRight}from'lucide-react';import {cn}from'@hanzo/ui-shadcn/lib/utils';import {Button}from'@hanzo/ui-shadcn/button';import {Input}from'@hanzo/ui-shadcn/input';import {ScrollArea}from'@hanzo/ui-shadcn/scroll-area';import {Separator}from'@hanzo/ui-shadcn/separator';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var Z=Object.defineProperty;var b=(c,f)=>Z(c,"name",{value:f,configurable:true});var me=cva("relative flex flex-col overflow-hidden rounded-lg border",{variants:{theme:{dark:"bg-black border-gray-700 text-green-400",light:"bg-white border-gray-300 text-gray-900",matrix:"bg-black border-green-500 text-green-400",hacker:"bg-gray-900 border-yellow-500 text-yellow-400",retro:"bg-amber-900 border-amber-600 text-amber-100",modern:"bg-slate-900 border-slate-700 text-slate-100"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{theme:"dark",size:"default"}}),n={black:"text-black",red:"text-red-500",green:"text-green-500",yellow:"text-yellow-500",blue:"text-blue-500",magenta:"text-magenta-500",cyan:"text-cyan-500",white:"text-white",gray:"text-gray-500",brightRed:"text-red-400",brightGreen:"text-green-400",brightYellow:"text-yellow-400",brightBlue:"text-blue-400",brightMagenta:"text-magenta-400",brightCyan:"text-cyan-400",brightWhite:"text-gray-100"},ue=b(c=>{let f=/\x1b\[([0-9;]*)m/g,x=[],d=0,a=[],o;for(;(o=f.exec(c))!==null;)o.index>d&&x.push({text:c.slice(d,o.index),classes:[...a]}),o[1].split(";").map(m=>parseInt(m)||0).forEach(m=>{switch(m){case 0:a=[];break;case 30:a.push(n.black);break;case 31:a.push(n.red);break;case 32:a.push(n.green);break;case 33:a.push(n.yellow);break;case 34:a.push(n.blue);break;case 35:a.push(n.magenta);break;case 36:a.push(n.cyan);break;case 37:a.push(n.white);break;case 90:a.push(n.gray);break;case 91:a.push(n.brightRed);break;case 92:a.push(n.brightGreen);break;case 93:a.push(n.brightYellow);break;case 94:a.push(n.brightBlue);break;case 95:a.push(n.brightMagenta);break;case 96:a.push(n.brightCyan);break;case 97:a.push(n.brightWhite);break}}),d=o.index+o[0].length;return d<c.length&&x.push({text:c.slice(d),classes:[...a]}),x.map((y,m)=>jsx("span",{className:cn(y.classes),children:y.text},m))},"parseAnsiContent"),de=r.forwardRef(({className:c,theme:f,size:x,title:d="Terminal",prompt:a="$",maxLines:o=1e3,showLineNumbers:y=false,allowInput:m=true,allowClear:z=true,allowCopy:H=true,allowDownload:A=false,allowFullscreen:B=true,height:F="400px",autoScroll:M=true,history:P=[],onCommand:L,onClear:w,initialLines:U=[],...V},j)=>{let[u,D]=r.useState(U),[S,v]=r.useState(""),[k,N]=r.useState(-1),[R,O]=r.useState(false),[p,K]=r.useState(P),C=r.useRef(null),E=r.useRef(null);r.useEffect(()=>{M&&C.current&&(C.current.scrollTop=C.current.scrollHeight);},[u,M]);let h=r.useCallback(e=>{let s={...e,id:`line-${Date.now()}-${Math.random()}`,timestamp:Date.now()};D(g=>{let l=[...g,s];return l.length>o?l.slice(-o):l});},[o]),W=r.useCallback(async e=>{if(e.trim()){if(K(s=>[...s,e]),N(-1),h({type:"input",content:`${a} ${e}`,command:e}),e==="clear"){w?w():D([]);return}if(e==="history"){p.forEach((s,g)=>{h({type:"output",content:`${g+1} ${s}`});});return}if(e.startsWith("echo ")){h({type:"output",content:e.slice(5)});return}if(L)try{await L(e);}catch(s){h({type:"error",content:s instanceof Error?s.message:String(s),exitCode:1});}else h({type:"error",content:`Command not found: ${e}`,exitCode:127});}},[a,h,L,w,p]),G=b(e=>{e.preventDefault(),S.trim()&&(W(S),v(""));},"handleInputSubmit"),Y=b(e=>{if(e.key==="ArrowUp"){if(e.preventDefault(),k<p.length-1){let s=k+1;N(s),v(p[p.length-1-s]||"");}}else if(e.key==="ArrowDown")if(e.preventDefault(),k>0){let s=k-1;N(s),v(p[p.length-1-s]||"");}else k===0&&(N(-1),v(""));},"handleKeyDown"),q=r.useCallback(async()=>{let e=u.map(s=>s.content).join(`
|
|
3
|
+
`);try{await navigator.clipboard.writeText(e);}catch(s){console.error("Failed to copy terminal content:",s);}},[u]),X=r.useCallback(()=>{let e=u.map($=>`[${new Date($.timestamp).toISOString()}] ${$.content}`).join(`
|
|
4
|
+
`),s=new Blob([e],{type:"text/plain"}),g=URL.createObjectURL(s),l=document.createElement("a");l.href=g,l.download=`terminal-${Date.now()}.txt`,document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(g);},[u]),J=b(()=>{w?w():D([]);},"clearTerminal"),Q=b(()=>{m&&E.current&&E.current.focus();},"handleTerminalClick");return jsxs("div",{ref:j,className:cn(me({theme:f,size:x}),R&&"fixed inset-0 z-50",c),style:{height:R?"100vh":F},onClick:Q,...V,children:[jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:[jsxs("div",{className:"flex items-center gap-2",children:[jsxs("div",{className:"flex gap-1",children:[jsx("div",{className:"w-3 h-3 rounded-full bg-red-500"}),jsx("div",{className:"w-3 h-3 rounded-full bg-yellow-500"}),jsx("div",{className:"w-3 h-3 rounded-full bg-green-500"})]}),jsx(Terminal,{className:"h-4 w-4"}),jsx("span",{className:"text-sm font-medium",children:d}),u.length>0&&jsxs("span",{className:"text-xs text-muted-foreground",children:[u.length," lines"]})]}),jsxs("div",{className:"flex items-center gap-1",children:[z&&jsx(Button,{variant:"ghost",size:"sm",onClick:J,className:"h-8 w-8 p-0",children:jsx(RefreshCw,{className:"h-3.5 w-3.5"})}),H&&jsx(Button,{variant:"ghost",size:"sm",onClick:q,className:"h-8 w-8 p-0",children:jsx(Copy,{className:"h-3.5 w-3.5"})}),A&&jsx(Button,{variant:"ghost",size:"sm",onClick:X,className:"h-8 w-8 p-0",children:jsx(Download,{className:"h-3.5 w-3.5"})}),B&&jsx(Button,{variant:"ghost",size:"sm",onClick:()=>O(!R),className:"h-8 w-8 p-0",children:R?jsx(Minimize2,{className:"h-3.5 w-3.5"}):jsx(Maximize2,{className:"h-3.5 w-3.5"})})]})]}),jsxs("div",{className:"flex-1 flex flex-col min-h-0",children:[jsx(ScrollArea,{ref:C,className:"flex-1 p-4",children:jsx("div",{className:"space-y-1 font-mono",children:u.map((e,s)=>jsxs("div",{className:"flex items-start gap-2",children:[y&&jsx("span",{className:"text-xs text-muted-foreground w-12 text-right flex-shrink-0",children:s+1}),jsx("div",{className:cn("flex-1 whitespace-pre-wrap break-words",e.type==="input"&&"text-inherit",e.type==="output"&&"text-muted-foreground",e.type==="error"&&"text-red-400",e.type==="system"&&"text-blue-400"),children:typeof e.content=="string"&&e.content.includes("\x1B[")?ue(e.content):e.content})]},e.id))})}),m&&jsxs(Fragment,{children:[jsx(Separator,{}),jsx("form",{onSubmit:G,className:"p-4",children:jsxs("div",{className:"flex items-center gap-2 font-mono",children:[jsx(ChevronRight,{className:"h-4 w-4 flex-shrink-0"}),jsx("span",{className:"flex-shrink-0",children:a}),jsx(Input,{ref:E,value:S,onChange:e=>v(e.target.value),onKeyDown:Y,className:"flex-1 border-0 bg-transparent p-0 focus-visible:ring-0 font-mono",placeholder:"Enter command...",autoComplete:"off",autoFocus:true})]})})]})]})]})});de.displayName="CodeTerminal";export{de as CodeTerminal,me as codeTerminalVariants};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var l=require('@radix-ui/react-collapsible');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var l__namespace=/*#__PURE__*/_interopNamespace(l);var i=l__namespace.Root,o=l__namespace.CollapsibleTrigger,e=l__namespace.CollapsibleContent;exports.Collapsible=i;exports.CollapsibleContent=e;exports.CollapsibleTrigger=o;
|
package/dist/command.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var cmdk=require('cmdk'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),r=require('@radix-ui/react-dialog'),reactSlot=require('@radix-ui/react-slot'),classVarianceAuthority=require('class-variance-authority'),u=require('react'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var r__namespace=/*#__PURE__*/_interopNamespace(r);var u__namespace=/*#__PURE__*/_interopNamespace(u);var C=Object.defineProperty;var o=(t,e)=>C(t,"name",{value:e,configurable:true});function a(...t){return tailwindMerge.twMerge(clsx.clsx(t))}o(a,"cn");var w=classVarianceAuthority.cva('inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*="size-"])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline",primary:"bg-primary text-primary-foreground shadow hover:bg-primary/90",linkFG:"text-primary underline-offset-4 hover:underline",linkMuted:"text-muted-foreground underline-offset-4 hover:underline hover:text-foreground"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}}),m=u__namespace.forwardRef(({className:t,variant:e="default",size:n="default",asChild:d=false,isLoading:c=false,children:y,...x},h)=>jsxRuntime.jsxs(d?reactSlot.Slot:"button",{"data-slot":"button","data-variant":e,"data-size":n,className:a(w({variant:e,size:n,className:t})),ref:h,...x,children:[c?jsxRuntime.jsx(lucideReact.Loader2,{className:a("h-4 w-4 animate-spin",n!=="icon"&&n!=="icon-sm"&&n!=="icon-lg"&&"mr-2")}):null,c&&(n==="icon"||n==="icon-sm"||n==="icon-lg")?null:y]}));m.displayName="Button";function g({...t}){return jsxRuntime.jsx(r__namespace.Root,{"data-slot":"dialog",...t})}o(g,"Dialog");function L({...t}){return jsxRuntime.jsx(r__namespace.Portal,{"data-slot":"dialog-portal",...t})}o(L,"DialogPortal");function T({className:t,...e}){return jsxRuntime.jsx(r__namespace.Overlay,{"data-slot":"dialog-overlay",className:a("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 isolate z-50","bg-black/80",t),...e})}o(T,"DialogOverlay");function f({className:t,children:e,showCloseButton:n=true,...d}){return jsxRuntime.jsxs(L,{children:[jsxRuntime.jsx(T,{}),jsxRuntime.jsxs(r__namespace.Content,{"data-slot":"dialog-content",className:a("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-1/2 left-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border p-6 shadow-lg duration-200",t),...d,children:[e,n&&jsxRuntime.jsx(r__namespace.Close,{"data-slot":"dialog-close",asChild:true,children:jsxRuntime.jsxs(m,{variant:"ghost",size:"icon-sm",className:"absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 disabled:pointer-events-none",children:[jsxRuntime.jsx(lucideReact.X,{className:"size-4"}),jsxRuntime.jsx("span",{className:"sr-only",children:"Close"})]})})]})]})}o(f,"DialogContent");var v=o(({className:t,...e})=>jsxRuntime.jsx(cmdk.Command,{className:a("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md [&_[cmdk-list]]:scroll-pt-0 [&_[cmdk-list]]:scroll-auto",t),loop:true,...e}),"Command");v.displayName=cmdk.Command.displayName;var dt=o(({children:t,...e})=>jsxRuntime.jsx(g,{...e,children:jsxRuntime.jsx(f,{className:"overflow-hidden p-0 shadow-lg",children:jsxRuntime.jsx(v,{className:"[&_[cmdk-group-heading]]:text-text-secondary [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:t})})}),"CommandDialog"),I=o(({className:t,ref:e,...n})=>jsxRuntime.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[jsxRuntime.jsx(lucideReact.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),jsxRuntime.jsx(cmdk.Command.Input,{className:a("placeholder:!text-text-placeholder flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",t),ref:e,...n})]}),"CommandInput");I.displayName=cmdk.Command.Input.displayName;var E=o(({className:t,...e})=>jsxRuntime.jsx(cmdk.Command.List,{className:a("max-h-[300px] scroll-pt-0 overflow-x-hidden overflow-y-auto scroll-auto",t),...e}),"CommandList");E.displayName=cmdk.Command.List.displayName;var z=o(({className:t,...e})=>jsxRuntime.jsx(cmdk.Command.Empty,{className:"py-6 text-center text-sm",...e}),"CommandEmpty");z.displayName=cmdk.Command.Empty.displayName;var M=o(({className:t,...e})=>jsxRuntime.jsx(cmdk.Command.Group,{className:a("text-text-default [&_[cmdk-group-heading]]:text-text-default overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",t),...e}),"CommandGroup");M.displayName=cmdk.Command.Group.displayName;var V=o(({className:t,...e})=>jsxRuntime.jsx(cmdk.Command.Separator,{className:a("bg-divider -mx-1 h-px",t),...e}),"CommandSeparator");V.displayName=cmdk.Command.Separator.displayName;var H=o(({className:t,...e})=>jsxRuntime.jsx(cmdk.Command.Item,{className:a("hover:bg-bg-secondary data-[selected=true]:text-text-default data-[selected='true']:bg-bg-secondary relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",t),...e}),"CommandItem");H.displayName=cmdk.Command.Item.displayName;var G=o(({className:t,...e})=>jsxRuntime.jsx("span",{className:a("text-text-secondary ml-auto text-xs tracking-widest",t),...e}),"CommandShortcut");G.displayName="CommandShortcut";exports.Command=v;exports.CommandDialog=dt;exports.CommandEmpty=z;exports.CommandGroup=M;exports.CommandInput=I;exports.CommandItem=H;exports.CommandList=E;exports.CommandSeparator=V;exports.CommandShortcut=G;
|
package/dist/command.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {Command}from'cmdk';import {Loader2,Search,X}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import*as r from'@radix-ui/react-dialog';import {Slot}from'@radix-ui/react-slot';import {cva}from'class-variance-authority';import*as u from'react';import {jsxs,jsx}from'react/jsx-runtime';var C=Object.defineProperty;var o=(t,e)=>C(t,"name",{value:e,configurable:true});function a(...t){return twMerge(clsx(t))}o(a,"cn");var w=cva('inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*="size-"])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline",primary:"bg-primary text-primary-foreground shadow hover:bg-primary/90",linkFG:"text-primary underline-offset-4 hover:underline",linkMuted:"text-muted-foreground underline-offset-4 hover:underline hover:text-foreground"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}}),m=u.forwardRef(({className:t,variant:e="default",size:n="default",asChild:d=false,isLoading:c=false,children:y,...x},h)=>jsxs(d?Slot:"button",{"data-slot":"button","data-variant":e,"data-size":n,className:a(w({variant:e,size:n,className:t})),ref:h,...x,children:[c?jsx(Loader2,{className:a("h-4 w-4 animate-spin",n!=="icon"&&n!=="icon-sm"&&n!=="icon-lg"&&"mr-2")}):null,c&&(n==="icon"||n==="icon-sm"||n==="icon-lg")?null:y]}));m.displayName="Button";function g({...t}){return jsx(r.Root,{"data-slot":"dialog",...t})}o(g,"Dialog");function L({...t}){return jsx(r.Portal,{"data-slot":"dialog-portal",...t})}o(L,"DialogPortal");function T({className:t,...e}){return jsx(r.Overlay,{"data-slot":"dialog-overlay",className:a("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 isolate z-50","bg-black/80",t),...e})}o(T,"DialogOverlay");function f({className:t,children:e,showCloseButton:n=true,...d}){return jsxs(L,{children:[jsx(T,{}),jsxs(r.Content,{"data-slot":"dialog-content",className:a("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-1/2 left-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border p-6 shadow-lg duration-200",t),...d,children:[e,n&&jsx(r.Close,{"data-slot":"dialog-close",asChild:true,children:jsxs(m,{variant:"ghost",size:"icon-sm",className:"absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 disabled:pointer-events-none",children:[jsx(X,{className:"size-4"}),jsx("span",{className:"sr-only",children:"Close"})]})})]})]})}o(f,"DialogContent");var v=o(({className:t,...e})=>jsx(Command,{className:a("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md [&_[cmdk-list]]:scroll-pt-0 [&_[cmdk-list]]:scroll-auto",t),loop:true,...e}),"Command");v.displayName=Command.displayName;var dt=o(({children:t,...e})=>jsx(g,{...e,children:jsx(f,{className:"overflow-hidden p-0 shadow-lg",children:jsx(v,{className:"[&_[cmdk-group-heading]]:text-text-secondary [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:t})})}),"CommandDialog"),I=o(({className:t,ref:e,...n})=>jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[jsx(Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),jsx(Command.Input,{className:a("placeholder:!text-text-placeholder flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",t),ref:e,...n})]}),"CommandInput");I.displayName=Command.Input.displayName;var E=o(({className:t,...e})=>jsx(Command.List,{className:a("max-h-[300px] scroll-pt-0 overflow-x-hidden overflow-y-auto scroll-auto",t),...e}),"CommandList");E.displayName=Command.List.displayName;var z=o(({className:t,...e})=>jsx(Command.Empty,{className:"py-6 text-center text-sm",...e}),"CommandEmpty");z.displayName=Command.Empty.displayName;var M=o(({className:t,...e})=>jsx(Command.Group,{className:a("text-text-default [&_[cmdk-group-heading]]:text-text-default overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",t),...e}),"CommandGroup");M.displayName=Command.Group.displayName;var V=o(({className:t,...e})=>jsx(Command.Separator,{className:a("bg-divider -mx-1 h-px",t),...e}),"CommandSeparator");V.displayName=Command.Separator.displayName;var H=o(({className:t,...e})=>jsx(Command.Item,{className:a("hover:bg-bg-secondary data-[selected=true]:text-text-default data-[selected='true']:bg-bg-secondary relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",t),...e}),"CommandItem");H.displayName=Command.Item.displayName;var G=o(({className:t,...e})=>jsx("span",{className:a("text-text-secondary ml-auto text-xs tracking-widest",t),...e}),"CommandShortcut");G.displayName="CommandShortcut";export{v as Command,dt as CommandDialog,z as CommandEmpty,M as CommandGroup,I as CommandInput,H as CommandItem,E as CommandList,V as CommandSeparator,G as CommandShortcut};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface CalComEmbedProps {
|
|
2
|
+
calLink?: string;
|
|
3
|
+
email?: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
meetingDate?: string;
|
|
6
|
+
height?: string | number;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const CalComEmbed: ({ calLink, email, name, meetingDate, height, className }: CalComEmbedProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default CalComEmbed;
|
|
11
|
+
//# sourceMappingURL=cal-embed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cal-embed.d.ts","sourceRoot":"","sources":["../../components/cal-embed.tsx"],"names":[],"mappings":"AAEA,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,GAAI,0DAOzB,gBAAgB,4CAoDlB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef } from 'react';
|
|
3
|
+
export const CalComEmbed = ({ calLink = 'adnexus/15min', email, name, meetingDate, height = '600px', className = '' }) => {
|
|
4
|
+
const iframeRef = useRef(null);
|
|
5
|
+
// Build cal.com URL with parameters
|
|
6
|
+
const buildCalUrl = () => {
|
|
7
|
+
const params = new URLSearchParams();
|
|
8
|
+
if (email)
|
|
9
|
+
params.append('email', email);
|
|
10
|
+
if (name)
|
|
11
|
+
params.append('name', name);
|
|
12
|
+
if (meetingDate)
|
|
13
|
+
params.append('date', meetingDate);
|
|
14
|
+
// Always enable overlay for better UX
|
|
15
|
+
params.append('embed', 'true');
|
|
16
|
+
const queryString = params.toString();
|
|
17
|
+
return `https://cal.com/${calLink}${queryString ? `?${queryString}` : ''}`;
|
|
18
|
+
};
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
// Cal.com embed script for better integration
|
|
21
|
+
const script = document.createElement('script');
|
|
22
|
+
script.src = 'https://app.cal.com/embed/embed.js';
|
|
23
|
+
script.async = true;
|
|
24
|
+
document.body.appendChild(script);
|
|
25
|
+
return () => {
|
|
26
|
+
// Cleanup
|
|
27
|
+
if (document.body.contains(script)) {
|
|
28
|
+
document.body.removeChild(script);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}, []);
|
|
32
|
+
return (_jsx("div", { className: `cal-embed-container ${className}`, children: _jsx("iframe", { ref: iframeRef, src: buildCalUrl(), width: "100%", height: height, frameBorder: "0", allow: "camera; microphone; autoplay; encrypted-media;", style: {
|
|
33
|
+
border: 'none',
|
|
34
|
+
borderRadius: '8px',
|
|
35
|
+
overflow: 'hidden'
|
|
36
|
+
}, "data-cal-link": calLink, "data-cal-config": '{"layout":"month_view"}' }) }));
|
|
37
|
+
};
|
|
38
|
+
export default CalComEmbed;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../components/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG1D,cAAc,0BAA0B,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Component exports
|
|
2
|
+
// This file provides a central import point for all UI components
|
|
3
|
+
// Usage: import { Button, Card, cn } from '@hanzo/ui-shadcn/components'
|
|
4
|
+
// Export commonly used utilities
|
|
5
|
+
export { cn, formatDate, absoluteUrl } from '../src/utils';
|
|
6
|
+
// Re-export all primitives as components for backward compatibility
|
|
7
|
+
export * from '../primitives/index-next';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var e=require('@radix-ui/react-context-menu'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var e__namespace=/*#__PURE__*/_interopNamespace(e);var u=Object.defineProperty;var i=(t,n)=>u(t,"name",{value:n,configurable:true});function a(...t){return tailwindMerge.twMerge(clsx.clsx(t))}i(a,"cn");var z=e__namespace.Root,G=e__namespace.Trigger,U=e__namespace.Group,D=e__namespace.Portal,_=e__namespace.Sub,j=e__namespace.RadioGroup,f=i(({className:t,inset:n,children:r,ref:s,...d})=>jsxRuntime.jsxs(e__namespace.SubTrigger,{className:a("focus:bg-accent data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:text-white",n&&"pl-8",t),ref:s,...d,children:[r,jsxRuntime.jsx(lucideReact.ChevronRight,{className:"ml-auto h-4 w-4"})]}),"ContextMenuSubTrigger");f.displayName=e__namespace.SubTrigger.displayName;var M=i(({className:t,...n})=>jsxRuntime.jsx(e__namespace.SubContent,{className:a("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border bg-gray-300 p-1 text-white shadow-md",t),...n}),"ContextMenuSubContent");M.displayName=e__namespace.SubContent.displayName;var P=i(({className:t,...n})=>jsxRuntime.jsx(e__namespace.Portal,{children:jsxRuntime.jsx(e__namespace.Content,{className:a("animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border border-gray-600 bg-gray-300 p-1 text-gray-50 shadow-md",t),...n})}),"ContextMenuContent");P.displayName=e__namespace.Content.displayName;var b=i(({className:t,inset:n,...r})=>jsxRuntime.jsx(e__namespace.Item,{className:a("relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:bg-gray-200 focus:text-white data-[disabled]:pointer-events-none data-[disabled]:opacity-50",n&&"pl-8",t),...r}),"ContextMenuItem");b.displayName=e__namespace.Item.displayName;var v=i(({className:t,children:n,checked:r,...s})=>jsxRuntime.jsxs(e__namespace.CheckboxItem,{checked:r,className:a("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...s,children:[jsxRuntime.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:jsxRuntime.jsx(e__namespace.ItemIndicator,{children:jsxRuntime.jsx(lucideReact.Check,{className:"h-4 w-4"})})}),n]}),"ContextMenuCheckboxItem");v.displayName=e__namespace.CheckboxItem.displayName;var g=i(({className:t,children:n,...r})=>jsxRuntime.jsxs(e__namespace.RadioItem,{className:a("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...r,children:[jsxRuntime.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:jsxRuntime.jsx(e__namespace.ItemIndicator,{children:jsxRuntime.jsx(lucideReact.Circle,{className:"h-2 w-2 fill-current"})})}),n]}),"ContextMenuRadioItem");g.displayName=e__namespace.RadioItem.displayName;var y=i(({className:t,inset:n,...r})=>jsxRuntime.jsx(e__namespace.Label,{className:a("text-text-default px-2 py-1.5 text-sm font-semibold",n&&"pl-8",t),...r}),"ContextMenuLabel");y.displayName=e__namespace.Label.displayName;var h=i(({className:t,...n})=>jsxRuntime.jsx(e__namespace.Separator,{className:a("bg-border -mx-1 my-1 h-px",t),...n}),"ContextMenuSeparator");h.displayName=e__namespace.Separator.displayName;var N=i(({className:t,...n})=>jsxRuntime.jsx("span",{className:a("text-text-secondary ml-auto text-xs tracking-widest",t),...n}),"ContextMenuShortcut");N.displayName="ContextMenuShortcut";exports.ContextMenu=z;exports.ContextMenuCheckboxItem=v;exports.ContextMenuContent=P;exports.ContextMenuGroup=U;exports.ContextMenuItem=b;exports.ContextMenuLabel=y;exports.ContextMenuPortal=D;exports.ContextMenuRadioGroup=j;exports.ContextMenuRadioItem=g;exports.ContextMenuSeparator=h;exports.ContextMenuShortcut=N;exports.ContextMenuSub=_;exports.ContextMenuSubContent=M;exports.ContextMenuSubTrigger=f;exports.ContextMenuTrigger=G;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import*as e from'@radix-ui/react-context-menu';import {ChevronRight,Check,Circle}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var u=Object.defineProperty;var i=(t,n)=>u(t,"name",{value:n,configurable:true});function a(...t){return twMerge(clsx(t))}i(a,"cn");var z=e.Root,G=e.Trigger,U=e.Group,D=e.Portal,_=e.Sub,j=e.RadioGroup,f=i(({className:t,inset:n,children:r,ref:s,...d})=>jsxs(e.SubTrigger,{className:a("focus:bg-accent data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:text-white",n&&"pl-8",t),ref:s,...d,children:[r,jsx(ChevronRight,{className:"ml-auto h-4 w-4"})]}),"ContextMenuSubTrigger");f.displayName=e.SubTrigger.displayName;var M=i(({className:t,...n})=>jsx(e.SubContent,{className:a("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border bg-gray-300 p-1 text-white shadow-md",t),...n}),"ContextMenuSubContent");M.displayName=e.SubContent.displayName;var P=i(({className:t,...n})=>jsx(e.Portal,{children:jsx(e.Content,{className:a("animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border border-gray-600 bg-gray-300 p-1 text-gray-50 shadow-md",t),...n})}),"ContextMenuContent");P.displayName=e.Content.displayName;var b=i(({className:t,inset:n,...r})=>jsx(e.Item,{className:a("relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:bg-gray-200 focus:text-white data-[disabled]:pointer-events-none data-[disabled]:opacity-50",n&&"pl-8",t),...r}),"ContextMenuItem");b.displayName=e.Item.displayName;var v=i(({className:t,children:n,checked:r,...s})=>jsxs(e.CheckboxItem,{checked:r,className:a("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...s,children:[jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:jsx(e.ItemIndicator,{children:jsx(Check,{className:"h-4 w-4"})})}),n]}),"ContextMenuCheckboxItem");v.displayName=e.CheckboxItem.displayName;var g=i(({className:t,children:n,...r})=>jsxs(e.RadioItem,{className:a("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...r,children:[jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:jsx(e.ItemIndicator,{children:jsx(Circle,{className:"h-2 w-2 fill-current"})})}),n]}),"ContextMenuRadioItem");g.displayName=e.RadioItem.displayName;var y=i(({className:t,inset:n,...r})=>jsx(e.Label,{className:a("text-text-default px-2 py-1.5 text-sm font-semibold",n&&"pl-8",t),...r}),"ContextMenuLabel");y.displayName=e.Label.displayName;var h=i(({className:t,...n})=>jsx(e.Separator,{className:a("bg-border -mx-1 my-1 h-px",t),...n}),"ContextMenuSeparator");h.displayName=e.Separator.displayName;var N=i(({className:t,...n})=>jsx("span",{className:a("text-text-secondary ml-auto text-xs tracking-widest",t),...n}),"ContextMenuShortcut");N.displayName="ContextMenuShortcut";export{z as ContextMenu,v as ContextMenuCheckboxItem,P as ContextMenuContent,U as ContextMenuGroup,b as ContextMenuItem,y as ContextMenuLabel,D as ContextMenuPortal,j as ContextMenuRadioGroup,g as ContextMenuRadioItem,h as ContextMenuSeparator,N as ContextMenuShortcut,_ as ContextMenuSub,M as ContextMenuSubContent,f as ContextMenuSubTrigger,G as ContextMenuTrigger};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var $=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var $__namespace=/*#__PURE__*/_interopNamespace($);var I=Object.defineProperty;var c=(e,r)=>I(e,"name",{value:r,configurable:true});function n(...e){return tailwindMerge.twMerge(clsx.clsx(e))}c(n,"cn");function Z({columns:e,data:r,rowKey:h,selectable:i=false,selectedKeys:m,onSelectionChange:p,searchable:y=false,searchPlaceholder:b="Search...",totalRows:o,page:u=0,pageSize:P=20,onPageChange:F,onPageSizeChange:D,actions:V,loading:q=false,emptyMessage:d="No data",className:l}){let[a,g]=$__namespace.useState(""),[w,K]=$__namespace.useState(null),z=$__namespace.useMemo(()=>{if(!a)return r;let t=a.toLowerCase();return r.filter(f=>e.some(M=>(M.cell?"":String(f[M.id]??"")).toLowerCase().includes(t)))},[r,a,e]),j=$__namespace.useMemo(()=>{if(!w)return z;let{column:t,direction:f}=w;return [...z].sort((M,T)=>{let H=M[t],Q=T[t];if(H==null&&Q==null)return 0;if(H==null)return 1;if(Q==null)return -1;let Y=String(H).localeCompare(String(Q),void 0,{numeric:true});return f==="asc"?Y:-Y})},[z,w]),O=o??j.length,E=Math.max(1,Math.ceil(O/P)),L=F?j:j.slice(u*P,(u+1)*P),C=m??new Set,W=L.length>0&&L.every(t=>C.has(h(t)));function _(){p&&p(W?new Set:new Set(L.map(h)));}c(_,"toggleAll");function A(t){if(!p)return;let f=new Set(C);f.has(t)?f.delete(t):f.add(t),p(f);}c(A,"toggleRow");function G(t){K(f=>f?.column===t?f.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"});}c(G,"handleSort");let x=V?[...e,{id:"__actions",header:"",width:"auto"}]:e;return jsxRuntime.jsxs("div",{className:n("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",l),children:[(y||i)&&jsxRuntime.jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[y&&jsxRuntime.jsx("input",{type:"text",placeholder:b,value:a,onChange:t=>g(t.target.value),className:n("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),i&&C.size>0&&jsxRuntime.jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[C.size," selected"]})]}),jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:"w-full text-sm",children:[jsxRuntime.jsx("thead",{children:jsxRuntime.jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[i&&jsxRuntime.jsx("th",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:W,onChange:_,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),x.map(t=>jsxRuntime.jsx("th",{style:t.width?{width:t.width}:void 0,className:n("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",t.align==="center"&&"text-center",t.align==="right"&&"text-right",!t.align&&"text-left",t.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:t.sortable?()=>G(t.id):void 0,children:jsxRuntime.jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,t.sortable&&w?.column===t.id&&jsxRuntime.jsx("span",{className:"text-[10px]",children:w.direction==="asc"?"\u2191":"\u2193"})]})},t.id))]})}),jsxRuntime.jsx("tbody",{children:q?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:x.length+(i?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):L.length===0?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:x.length+(i?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:d})}):L.map(t=>{let f=h(t),M=C.has(f);return jsxRuntime.jsxs("tr",{className:n("border-b border-[var(--dash-border)] transition-colors",M?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[i&&jsxRuntime.jsx("td",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:M,onChange:()=>A(f),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),e.map(T=>jsxRuntime.jsx("td",{className:n("px-4 py-2.5",T.align==="center"&&"text-center",T.align==="right"&&"text-right"),children:T.cell?T.cell(t):String(t[T.id]??"")},T.id)),V&&jsxRuntime.jsx("td",{className:"px-4 py-2.5 text-right",children:V(t)})]},f)})})]})}),E>1&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("span",{children:"Rows per page"}),jsxRuntime.jsx("select",{value:P,onChange:t=>D?.(Number(t.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(t=>jsxRuntime.jsx("option",{value:t,children:t},t))})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs("span",{children:["Page ",u+1," of ",E]}),jsxRuntime.jsx("button",{type:"button",disabled:u===0,onClick:()=>F?.(u-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsxRuntime.jsx("button",{type:"button",disabled:u>=E-1,onClick:()=>F?.(u+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}c(Z,"Table");function U({title:e,fields:r,values:h,onSubmit:i,onCancel:m,submitLabel:p="Save",cancelLabel:y="Cancel",loading:b=false,className:o}){let[u,P]=$__namespace.useState(()=>{let d={};for(let l of r)d[l.name]=h?.[l.name]??l.defaultValue??(l.type==="toggle"?false:"");return d}),[F,D]=$__namespace.useState({});function V(d,l){P(a=>({...a,[d]:l})),D(a=>{if(!a[d])return a;let g={...a};return delete g[d],g});}c(V,"setValue");async function q(d){d.preventDefault();let l={};for(let a of r){let g=u[a.name];if(a.required&&(g===""||g===null||g===void 0)&&(l[a.name]=`${a.label} is required`),a.validate){let w=a.validate(g);w&&(l[a.name]=w);}}if(Object.keys(l).length>0){D(l);return}await i(u);}return c(q,"handleSubmit"),jsxRuntime.jsxs("form",{onSubmit:q,className:n("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",o),children:[e&&jsxRuntime.jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsxRuntime.jsx("div",{className:"space-y-4",children:r.map(d=>jsxRuntime.jsx(re,{field:d,value:u[d.name],error:F[d.name],onChange:l=>V(d.name,l)},d.name))}),jsxRuntime.jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsxRuntime.jsx("button",{type:"submit",disabled:b,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:b?"Saving...":p}),m&&jsxRuntime.jsx("button",{type:"button",onClick:m,disabled:b,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:y})]})]})}c(U,"Form");var J=n("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function re({field:e,value:r,error:h,onChange:i}){let m=`dash-field-${e.name}`,p=jsxRuntime.jsxs("label",{htmlFor:m,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsxRuntime.jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),y=e.description?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,b=h?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:h}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsx("input",{id:m,type:e.type,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,onChange:o=>i(e.type==="number"?Number(o.target.value):o.target.value),className:n(J,h&&"border-[var(--dash-error)]")}),y,b]});case "textarea":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsx("textarea",{id:m,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:o=>i(o.target.value),className:n(J,"resize-y",h&&"border-[var(--dash-error)]")}),y,b]});case "select":case "relation":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsxs("select",{id:m,value:String(r??""),disabled:e.disabled,onChange:o=>i(o.target.value),className:n(J,h&&"border-[var(--dash-error)]"),children:[jsxRuntime.jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(o=>jsxRuntime.jsx("option",{value:o.value,children:o.label},o.value))]}),y,b]});case "toggle":return jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntime.jsx("button",{id:m,type:"button",role:"switch","aria-checked":!!r,disabled:e.disabled,onClick:()=>i(!r),className:n("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",r?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsxRuntime.jsx("span",{className:n("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",r?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsxRuntime.jsx("label",{htmlFor:m,className:"text-sm text-[var(--dash-text)]",children:e.label}),y,b]});case "json":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsx("textarea",{id:m,value:typeof r=="string"?r:JSON.stringify(r,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:o=>{try{i(JSON.parse(o.target.value));}catch{i(o.target.value);}},className:n(J,"font-mono text-xs resize-y",h&&"border-[var(--dash-error)]")}),y,b]});case "file":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsx("input",{id:m,type:"file",accept:e.accept,disabled:e.disabled,onChange:o=>{let u=o.target.files?.[0];u&&i(u);},className:n("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),y,b]});default:return null}}c(re,"FieldRenderer");function we({resourceName:e,resourceNamePlural:r,columns:h,data:i,rowKey:m,fields:p,rowToValues:y,onCreate:b,onUpdate:o,onDelete:u,canCreate:P=true,canEdit:F=true,canDelete:D=true,tableProps:V,loading:q=false,className:d}){let l=r??`${e}s`,[a,g]=$__namespace.useState("list"),[w,K]=$__namespace.useState(null),[z,j]=$__namespace.useState({}),[O,E]=$__namespace.useState(null),[L,C]=$__namespace.useState(false);function W(x){let t=m(x);K(t),j(y?y(x):x),g("edit");}c(W,"handleEdit");function _(x){E(m(x));}c(_,"handleDeleteConfirm");async function A(){if(!(!O||!u)){C(true);try{await u(O);}finally{C(false),E(null);}}}c(A,"confirmDelete");function G(x){return jsxRuntime.jsxs("div",{className:"flex items-center justify-end gap-1",children:[F&&o&&jsxRuntime.jsx("button",{type:"button",onClick:()=>W(x),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors",children:"Edit"}),D&&u&&jsxRuntime.jsx("button",{type:"button",onClick:()=>_(x),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-error)] hover:bg-[var(--dash-error-dim)] transition-colors",children:"Delete"})]})}return c(G,"actionsRenderer"),a==="list"?jsxRuntime.jsxs("div",{className:n("space-y-4",d),children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("h2",{className:"text-xl font-semibold text-[var(--dash-text)]",children:l}),P&&b&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>{K(null),j({}),g("create");},className:n("rounded-[var(--dash-radius)] px-3 py-1.5 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]"),children:["Create ",e]})]}),jsxRuntime.jsx(Z,{columns:h,data:i,rowKey:m,actions:F||D?G:void 0,loading:q,searchable:true,emptyMessage:`No ${l.toLowerCase()} found`,...V}),O!==null&&jsxRuntime.jsx(ae,{resourceName:e,loading:L,onConfirm:A,onCancel:()=>E(null)})]}):jsxRuntime.jsxs("div",{className:n("space-y-4",d),children:[jsxRuntime.jsxs("button",{type:"button",onClick:()=>g("list"),className:"inline-flex items-center gap-1 text-sm text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:[jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"Back to ",l]}),jsxRuntime.jsx(U,{title:a==="create"?`Create ${e}`:`Edit ${e}`,fields:p,values:a==="edit"?z:void 0,loading:L,submitLabel:a==="create"?"Create":"Save changes",onCancel:()=>g("list"),onSubmit:async x=>{C(true);try{a==="create"&&b?await b(x):a==="edit"&&w&&o&&await o(w,x),g("list");}finally{C(false);}}})]})}c(we,"Crud");function ae({resourceName:e,loading:r,onConfirm:h,onCancel:i}){return jsxRuntime.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:jsxRuntime.jsxs("div",{className:"w-full max-w-sm rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6 shadow-lg",children:[jsxRuntime.jsxs("h3",{className:"text-lg font-semibold text-[var(--dash-text)]",children:["Delete ",e,"?"]}),jsxRuntime.jsxs("p",{className:"mt-2 text-sm text-[var(--dash-text-muted)]",children:["This action cannot be undone. The ",e.toLowerCase()," will be permanently removed."]}),jsxRuntime.jsxs("div",{className:"mt-6 flex items-center justify-end gap-3",children:[jsxRuntime.jsx("button",{type:"button",onClick:i,disabled:r,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:"Cancel"}),jsxRuntime.jsx("button",{type:"button",onClick:h,disabled:r,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-error)] text-white","hover:bg-red-600","disabled:opacity-50 disabled:cursor-not-allowed"),children:r?"Deleting...":"Delete"})]})]})})}c(ae,"DeleteDialog");exports.Crud=we;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import*as $ from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var I=Object.defineProperty;var c=(e,r)=>I(e,"name",{value:r,configurable:true});function n(...e){return twMerge(clsx(e))}c(n,"cn");function Z({columns:e,data:r,rowKey:h,selectable:i=false,selectedKeys:m,onSelectionChange:p,searchable:y=false,searchPlaceholder:b="Search...",totalRows:o,page:u=0,pageSize:P=20,onPageChange:F,onPageSizeChange:D,actions:V,loading:q=false,emptyMessage:d="No data",className:l}){let[a,g]=$.useState(""),[w,K]=$.useState(null),z=$.useMemo(()=>{if(!a)return r;let t=a.toLowerCase();return r.filter(f=>e.some(M=>(M.cell?"":String(f[M.id]??"")).toLowerCase().includes(t)))},[r,a,e]),j=$.useMemo(()=>{if(!w)return z;let{column:t,direction:f}=w;return [...z].sort((M,T)=>{let H=M[t],Q=T[t];if(H==null&&Q==null)return 0;if(H==null)return 1;if(Q==null)return -1;let Y=String(H).localeCompare(String(Q),void 0,{numeric:true});return f==="asc"?Y:-Y})},[z,w]),O=o??j.length,E=Math.max(1,Math.ceil(O/P)),L=F?j:j.slice(u*P,(u+1)*P),C=m??new Set,W=L.length>0&&L.every(t=>C.has(h(t)));function _(){p&&p(W?new Set:new Set(L.map(h)));}c(_,"toggleAll");function A(t){if(!p)return;let f=new Set(C);f.has(t)?f.delete(t):f.add(t),p(f);}c(A,"toggleRow");function G(t){K(f=>f?.column===t?f.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"});}c(G,"handleSort");let x=V?[...e,{id:"__actions",header:"",width:"auto"}]:e;return jsxs("div",{className:n("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",l),children:[(y||i)&&jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[y&&jsx("input",{type:"text",placeholder:b,value:a,onChange:t=>g(t.target.value),className:n("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),i&&C.size>0&&jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[C.size," selected"]})]}),jsx("div",{className:"overflow-x-auto",children:jsxs("table",{className:"w-full text-sm",children:[jsx("thead",{children:jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[i&&jsx("th",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:W,onChange:_,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),x.map(t=>jsx("th",{style:t.width?{width:t.width}:void 0,className:n("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",t.align==="center"&&"text-center",t.align==="right"&&"text-right",!t.align&&"text-left",t.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:t.sortable?()=>G(t.id):void 0,children:jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,t.sortable&&w?.column===t.id&&jsx("span",{className:"text-[10px]",children:w.direction==="asc"?"\u2191":"\u2193"})]})},t.id))]})}),jsx("tbody",{children:q?jsx("tr",{children:jsx("td",{colSpan:x.length+(i?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):L.length===0?jsx("tr",{children:jsx("td",{colSpan:x.length+(i?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:d})}):L.map(t=>{let f=h(t),M=C.has(f);return jsxs("tr",{className:n("border-b border-[var(--dash-border)] transition-colors",M?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[i&&jsx("td",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:M,onChange:()=>A(f),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),e.map(T=>jsx("td",{className:n("px-4 py-2.5",T.align==="center"&&"text-center",T.align==="right"&&"text-right"),children:T.cell?T.cell(t):String(t[T.id]??"")},T.id)),V&&jsx("td",{className:"px-4 py-2.5 text-right",children:V(t)})]},f)})})]})}),E>1&&jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{children:"Rows per page"}),jsx("select",{value:P,onChange:t=>D?.(Number(t.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(t=>jsx("option",{value:t,children:t},t))})]}),jsxs("div",{className:"flex items-center gap-2",children:[jsxs("span",{children:["Page ",u+1," of ",E]}),jsx("button",{type:"button",disabled:u===0,onClick:()=>F?.(u-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsx("button",{type:"button",disabled:u>=E-1,onClick:()=>F?.(u+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}c(Z,"Table");function U({title:e,fields:r,values:h,onSubmit:i,onCancel:m,submitLabel:p="Save",cancelLabel:y="Cancel",loading:b=false,className:o}){let[u,P]=$.useState(()=>{let d={};for(let l of r)d[l.name]=h?.[l.name]??l.defaultValue??(l.type==="toggle"?false:"");return d}),[F,D]=$.useState({});function V(d,l){P(a=>({...a,[d]:l})),D(a=>{if(!a[d])return a;let g={...a};return delete g[d],g});}c(V,"setValue");async function q(d){d.preventDefault();let l={};for(let a of r){let g=u[a.name];if(a.required&&(g===""||g===null||g===void 0)&&(l[a.name]=`${a.label} is required`),a.validate){let w=a.validate(g);w&&(l[a.name]=w);}}if(Object.keys(l).length>0){D(l);return}await i(u);}return c(q,"handleSubmit"),jsxs("form",{onSubmit:q,className:n("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",o),children:[e&&jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsx("div",{className:"space-y-4",children:r.map(d=>jsx(re,{field:d,value:u[d.name],error:F[d.name],onChange:l=>V(d.name,l)},d.name))}),jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsx("button",{type:"submit",disabled:b,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:b?"Saving...":p}),m&&jsx("button",{type:"button",onClick:m,disabled:b,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:y})]})]})}c(U,"Form");var J=n("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function re({field:e,value:r,error:h,onChange:i}){let m=`dash-field-${e.name}`,p=jsxs("label",{htmlFor:m,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),y=e.description?jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,b=h?jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:h}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxs("div",{children:[p,jsx("input",{id:m,type:e.type,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,onChange:o=>i(e.type==="number"?Number(o.target.value):o.target.value),className:n(J,h&&"border-[var(--dash-error)]")}),y,b]});case "textarea":return jsxs("div",{children:[p,jsx("textarea",{id:m,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:o=>i(o.target.value),className:n(J,"resize-y",h&&"border-[var(--dash-error)]")}),y,b]});case "select":case "relation":return jsxs("div",{children:[p,jsxs("select",{id:m,value:String(r??""),disabled:e.disabled,onChange:o=>i(o.target.value),className:n(J,h&&"border-[var(--dash-error)]"),children:[jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(o=>jsx("option",{value:o.value,children:o.label},o.value))]}),y,b]});case "toggle":return jsxs("div",{className:"flex items-center gap-3",children:[jsx("button",{id:m,type:"button",role:"switch","aria-checked":!!r,disabled:e.disabled,onClick:()=>i(!r),className:n("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",r?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsx("span",{className:n("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",r?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsx("label",{htmlFor:m,className:"text-sm text-[var(--dash-text)]",children:e.label}),y,b]});case "json":return jsxs("div",{children:[p,jsx("textarea",{id:m,value:typeof r=="string"?r:JSON.stringify(r,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:o=>{try{i(JSON.parse(o.target.value));}catch{i(o.target.value);}},className:n(J,"font-mono text-xs resize-y",h&&"border-[var(--dash-error)]")}),y,b]});case "file":return jsxs("div",{children:[p,jsx("input",{id:m,type:"file",accept:e.accept,disabled:e.disabled,onChange:o=>{let u=o.target.files?.[0];u&&i(u);},className:n("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),y,b]});default:return null}}c(re,"FieldRenderer");function we({resourceName:e,resourceNamePlural:r,columns:h,data:i,rowKey:m,fields:p,rowToValues:y,onCreate:b,onUpdate:o,onDelete:u,canCreate:P=true,canEdit:F=true,canDelete:D=true,tableProps:V,loading:q=false,className:d}){let l=r??`${e}s`,[a,g]=$.useState("list"),[w,K]=$.useState(null),[z,j]=$.useState({}),[O,E]=$.useState(null),[L,C]=$.useState(false);function W(x){let t=m(x);K(t),j(y?y(x):x),g("edit");}c(W,"handleEdit");function _(x){E(m(x));}c(_,"handleDeleteConfirm");async function A(){if(!(!O||!u)){C(true);try{await u(O);}finally{C(false),E(null);}}}c(A,"confirmDelete");function G(x){return jsxs("div",{className:"flex items-center justify-end gap-1",children:[F&&o&&jsx("button",{type:"button",onClick:()=>W(x),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors",children:"Edit"}),D&&u&&jsx("button",{type:"button",onClick:()=>_(x),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-error)] hover:bg-[var(--dash-error-dim)] transition-colors",children:"Delete"})]})}return c(G,"actionsRenderer"),a==="list"?jsxs("div",{className:n("space-y-4",d),children:[jsxs("div",{className:"flex items-center justify-between",children:[jsx("h2",{className:"text-xl font-semibold text-[var(--dash-text)]",children:l}),P&&b&&jsxs("button",{type:"button",onClick:()=>{K(null),j({}),g("create");},className:n("rounded-[var(--dash-radius)] px-3 py-1.5 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]"),children:["Create ",e]})]}),jsx(Z,{columns:h,data:i,rowKey:m,actions:F||D?G:void 0,loading:q,searchable:true,emptyMessage:`No ${l.toLowerCase()} found`,...V}),O!==null&&jsx(ae,{resourceName:e,loading:L,onConfirm:A,onCancel:()=>E(null)})]}):jsxs("div",{className:n("space-y-4",d),children:[jsxs("button",{type:"button",onClick:()=>g("list"),className:"inline-flex items-center gap-1 text-sm text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:[jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"Back to ",l]}),jsx(U,{title:a==="create"?`Create ${e}`:`Edit ${e}`,fields:p,values:a==="edit"?z:void 0,loading:L,submitLabel:a==="create"?"Create":"Save changes",onCancel:()=>g("list"),onSubmit:async x=>{C(true);try{a==="create"&&b?await b(x):a==="edit"&&w&&o&&await o(w,x),g("list");}finally{C(false);}}})]})}c(we,"Crud");function ae({resourceName:e,loading:r,onConfirm:h,onCancel:i}){return jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:jsxs("div",{className:"w-full max-w-sm rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6 shadow-lg",children:[jsxs("h3",{className:"text-lg font-semibold text-[var(--dash-text)]",children:["Delete ",e,"?"]}),jsxs("p",{className:"mt-2 text-sm text-[var(--dash-text-muted)]",children:["This action cannot be undone. The ",e.toLowerCase()," will be permanently removed."]}),jsxs("div",{className:"mt-6 flex items-center justify-end gap-3",children:[jsx("button",{type:"button",onClick:i,disabled:r,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:"Cancel"}),jsx("button",{type:"button",onClick:h,disabled:r,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-error)] text-white","hover:bg-red-600","disabled:opacity-50 disabled:cursor-not-allowed"),children:r?"Deleting...":"Delete"})]})]})})}c(ae,"DeleteDialog");export{we as Crud};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var f=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var f__namespace=/*#__PURE__*/_interopNamespace(f);var R=Object.defineProperty;var h=(e,a)=>R(e,"name",{value:a,configurable:true});function i(...e){return tailwindMerge.twMerge(clsx.clsx(e))}h(i,"cn");function J({title:e,fields:a,values:m,onSubmit:u,onCancel:l,submitLabel:b="Save",cancelLabel:p="Cancel",loading:d=false,className:r}){let[g,N]=f__namespace.useState(()=>{let s={};for(let o of a)s[o.name]=m?.[o.name]??o.defaultValue??(o.type==="toggle"?false:"");return s}),[k,y]=f__namespace.useState({});function F(s,o){N(n=>({...n,[s]:o})),y(n=>{if(!n[s])return n;let v={...n};return delete v[s],v});}h(F,"setValue");async function S(s){s.preventDefault();let o={};for(let n of a){let v=g[n.name];if(n.required&&(v===""||v===null||v===void 0)&&(o[n.name]=`${n.label} is required`),n.validate){let w=n.validate(v);w&&(o[n.name]=w);}}if(Object.keys(o).length>0){y(o);return}await u(g);}return h(S,"handleSubmit"),jsxRuntime.jsxs("form",{onSubmit:S,className:i("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",r),children:[e&&jsxRuntime.jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsxRuntime.jsx("div",{className:"space-y-4",children:a.map(s=>jsxRuntime.jsx(E,{field:s,value:g[s.name],error:k[s.name],onChange:o=>F(s.name,o)},s.name))}),jsxRuntime.jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsxRuntime.jsx("button",{type:"submit",disabled:d,className:i("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:d?"Saving...":b}),l&&jsxRuntime.jsx("button",{type:"button",onClick:l,disabled:d,className:i("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:p})]})]})}h(J,"Form");var x=i("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function E({field:e,value:a,error:m,onChange:u}){let l=`dash-field-${e.name}`,b=jsxRuntime.jsxs("label",{htmlFor:l,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsxRuntime.jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),p=e.description?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,d=m?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:m}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsx("input",{id:l,type:e.type,value:String(a??""),placeholder:e.placeholder,disabled:e.disabled,onChange:r=>u(e.type==="number"?Number(r.target.value):r.target.value),className:i(x,m&&"border-[var(--dash-error)]")}),p,d]});case "textarea":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsx("textarea",{id:l,value:String(a??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:r=>u(r.target.value),className:i(x,"resize-y",m&&"border-[var(--dash-error)]")}),p,d]});case "select":case "relation":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsxs("select",{id:l,value:String(a??""),disabled:e.disabled,onChange:r=>u(r.target.value),className:i(x,m&&"border-[var(--dash-error)]"),children:[jsxRuntime.jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(r=>jsxRuntime.jsx("option",{value:r.value,children:r.label},r.value))]}),p,d]});case "toggle":return jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntime.jsx("button",{id:l,type:"button",role:"switch","aria-checked":!!a,disabled:e.disabled,onClick:()=>u(!a),className:i("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",a?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsxRuntime.jsx("span",{className:i("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",a?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsxRuntime.jsx("label",{htmlFor:l,className:"text-sm text-[var(--dash-text)]",children:e.label}),p,d]});case "json":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsx("textarea",{id:l,value:typeof a=="string"?a:JSON.stringify(a,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:r=>{try{u(JSON.parse(r.target.value));}catch{u(r.target.value);}},className:i(x,"font-mono text-xs resize-y",m&&"border-[var(--dash-error)]")}),p,d]});case "file":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsx("input",{id:l,type:"file",accept:e.accept,disabled:e.disabled,onChange:r=>{let g=r.target.files?.[0];g&&u(g);},className:i("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),p,d]});default:return null}}h(E,"FieldRenderer");exports.Form=J;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import*as f from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var R=Object.defineProperty;var h=(e,a)=>R(e,"name",{value:a,configurable:true});function i(...e){return twMerge(clsx(e))}h(i,"cn");function J({title:e,fields:a,values:m,onSubmit:u,onCancel:l,submitLabel:b="Save",cancelLabel:p="Cancel",loading:d=false,className:r}){let[g,N]=f.useState(()=>{let s={};for(let o of a)s[o.name]=m?.[o.name]??o.defaultValue??(o.type==="toggle"?false:"");return s}),[k,y]=f.useState({});function F(s,o){N(n=>({...n,[s]:o})),y(n=>{if(!n[s])return n;let v={...n};return delete v[s],v});}h(F,"setValue");async function S(s){s.preventDefault();let o={};for(let n of a){let v=g[n.name];if(n.required&&(v===""||v===null||v===void 0)&&(o[n.name]=`${n.label} is required`),n.validate){let w=n.validate(v);w&&(o[n.name]=w);}}if(Object.keys(o).length>0){y(o);return}await u(g);}return h(S,"handleSubmit"),jsxs("form",{onSubmit:S,className:i("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",r),children:[e&&jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsx("div",{className:"space-y-4",children:a.map(s=>jsx(E,{field:s,value:g[s.name],error:k[s.name],onChange:o=>F(s.name,o)},s.name))}),jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsx("button",{type:"submit",disabled:d,className:i("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:d?"Saving...":b}),l&&jsx("button",{type:"button",onClick:l,disabled:d,className:i("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:p})]})]})}h(J,"Form");var x=i("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function E({field:e,value:a,error:m,onChange:u}){let l=`dash-field-${e.name}`,b=jsxs("label",{htmlFor:l,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),p=e.description?jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,d=m?jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:m}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxs("div",{children:[b,jsx("input",{id:l,type:e.type,value:String(a??""),placeholder:e.placeholder,disabled:e.disabled,onChange:r=>u(e.type==="number"?Number(r.target.value):r.target.value),className:i(x,m&&"border-[var(--dash-error)]")}),p,d]});case "textarea":return jsxs("div",{children:[b,jsx("textarea",{id:l,value:String(a??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:r=>u(r.target.value),className:i(x,"resize-y",m&&"border-[var(--dash-error)]")}),p,d]});case "select":case "relation":return jsxs("div",{children:[b,jsxs("select",{id:l,value:String(a??""),disabled:e.disabled,onChange:r=>u(r.target.value),className:i(x,m&&"border-[var(--dash-error)]"),children:[jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(r=>jsx("option",{value:r.value,children:r.label},r.value))]}),p,d]});case "toggle":return jsxs("div",{className:"flex items-center gap-3",children:[jsx("button",{id:l,type:"button",role:"switch","aria-checked":!!a,disabled:e.disabled,onClick:()=>u(!a),className:i("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",a?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsx("span",{className:i("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",a?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsx("label",{htmlFor:l,className:"text-sm text-[var(--dash-text)]",children:e.label}),p,d]});case "json":return jsxs("div",{children:[b,jsx("textarea",{id:l,value:typeof a=="string"?a:JSON.stringify(a,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:r=>{try{u(JSON.parse(r.target.value));}catch{u(r.target.value);}},className:i(x,"font-mono text-xs resize-y",m&&"border-[var(--dash-error)]")}),p,d]});case "file":return jsxs("div",{children:[b,jsx("input",{id:l,type:"file",accept:e.accept,disabled:e.disabled,onChange:r=>{let g=r.target.files?.[0];g&&u(g);},className:i("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),p,d]});default:return null}}h(E,"FieldRenderer");export{J as Form};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var r=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var r__namespace=/*#__PURE__*/_interopNamespace(r);var k=Object.defineProperty;var o=(a,n)=>k(a,"name",{value:n,configurable:true});function v(...a){return tailwindMerge.twMerge(clsx.clsx(a))}o(v,"cn");function W({breadcrumbs:a,searchPlaceholder:n="Search...",onSearch:u,avatarUrl:i,userName:l,userDropdown:m,onToggleTheme:p,theme:f="dark",actions:g,className:b}){let[c,x]=r__namespace.useState(false),h=r__namespace.useRef(null);return r__namespace.useEffect(()=>{if(!c)return;function t(d){h.current&&!h.current.contains(d.target)&&x(false);}return o(t,"handleClick"),document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[c]),jsxRuntime.jsxs("div",{className:v("flex h-[var(--dash-header-height)] items-center gap-4 px-4","bg-[var(--dash-surface)] text-[var(--dash-text)]",b),children:[a&&a.length>0&&jsxRuntime.jsx("nav",{className:"flex items-center gap-1 text-sm","aria-label":"Breadcrumb",children:a.map((t,d)=>jsxRuntime.jsxs(r__namespace.Fragment,{children:[d>0&&jsxRuntime.jsx("span",{className:"text-[var(--dash-text-dim)]",children:"/"}),t.href?jsxRuntime.jsx("a",{href:t.href,className:"text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:t.label}):jsxRuntime.jsx("span",{className:"text-[var(--dash-text)]",children:t.label})]},d))}),jsxRuntime.jsx("div",{className:"flex-1"}),u&&jsxRuntime.jsxs("div",{className:"relative hidden sm:block",children:[jsxRuntime.jsxs("svg",{className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--dash-text-dim)]",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:[jsxRuntime.jsx("circle",{cx:"7",cy:"7",r:"5.5",stroke:"currentColor",strokeWidth:"1.5"}),jsxRuntime.jsx("path",{d:"M11 11l3 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("input",{type:"text",placeholder:n,onChange:t=>u(t.target.value),className:v("h-8 w-56 rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] pl-8 pr-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","transition-colors")})]}),g,p&&jsxRuntime.jsx("button",{type:"button",onClick:p,className:"rounded-[var(--dash-radius-sm)] p-1.5 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors","aria-label":`Switch to ${f==="dark"?"light":"dark"} mode`,children:f==="dark"?jsxRuntime.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[jsxRuntime.jsx("circle",{cx:"8",cy:"8",r:"3.5",stroke:"currentColor",strokeWidth:"1.5"}),jsxRuntime.jsx("path",{d:"M8 1v2M8 13v2M1 8h2M13 8h2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}):jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M14 9.5A6.5 6.5 0 016.5 2 5.5 5.5 0 1014 9.5z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(i||l)&&jsxRuntime.jsxs("div",{className:"relative",ref:h,children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>x(t=>!t),className:"flex items-center gap-2 rounded-[var(--dash-radius-sm)] p-1 hover:bg-[var(--dash-surface-hover)] transition-colors",children:i?jsxRuntime.jsx("img",{src:i,alt:l??"User",className:"h-7 w-7 rounded-full object-cover"}):jsxRuntime.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-full bg-[var(--dash-primary)] text-xs font-medium text-[var(--dash-primary-text)]",children:(l??"?")[0].toUpperCase()})}),c&&m&&jsxRuntime.jsx("div",{className:"absolute right-0 top-full z-50 mt-1 min-w-48 rounded-[var(--dash-radius)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 shadow-lg",children:m})]})]})}o(W,"Header");exports.Header=W;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import*as r from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var k=Object.defineProperty;var o=(a,n)=>k(a,"name",{value:n,configurable:true});function v(...a){return twMerge(clsx(a))}o(v,"cn");function W({breadcrumbs:a,searchPlaceholder:n="Search...",onSearch:u,avatarUrl:i,userName:l,userDropdown:m,onToggleTheme:p,theme:f="dark",actions:g,className:b}){let[c,x]=r.useState(false),h=r.useRef(null);return r.useEffect(()=>{if(!c)return;function t(d){h.current&&!h.current.contains(d.target)&&x(false);}return o(t,"handleClick"),document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[c]),jsxs("div",{className:v("flex h-[var(--dash-header-height)] items-center gap-4 px-4","bg-[var(--dash-surface)] text-[var(--dash-text)]",b),children:[a&&a.length>0&&jsx("nav",{className:"flex items-center gap-1 text-sm","aria-label":"Breadcrumb",children:a.map((t,d)=>jsxs(r.Fragment,{children:[d>0&&jsx("span",{className:"text-[var(--dash-text-dim)]",children:"/"}),t.href?jsx("a",{href:t.href,className:"text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:t.label}):jsx("span",{className:"text-[var(--dash-text)]",children:t.label})]},d))}),jsx("div",{className:"flex-1"}),u&&jsxs("div",{className:"relative hidden sm:block",children:[jsxs("svg",{className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--dash-text-dim)]",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:[jsx("circle",{cx:"7",cy:"7",r:"5.5",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M11 11l3 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsx("input",{type:"text",placeholder:n,onChange:t=>u(t.target.value),className:v("h-8 w-56 rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] pl-8 pr-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","transition-colors")})]}),g,p&&jsx("button",{type:"button",onClick:p,className:"rounded-[var(--dash-radius-sm)] p-1.5 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors","aria-label":`Switch to ${f==="dark"?"light":"dark"} mode`,children:f==="dark"?jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[jsx("circle",{cx:"8",cy:"8",r:"3.5",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M8 1v2M8 13v2M1 8h2M13 8h2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}):jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M14 9.5A6.5 6.5 0 016.5 2 5.5 5.5 0 1014 9.5z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(i||l)&&jsxs("div",{className:"relative",ref:h,children:[jsx("button",{type:"button",onClick:()=>x(t=>!t),className:"flex items-center gap-2 rounded-[var(--dash-radius-sm)] p-1 hover:bg-[var(--dash-surface-hover)] transition-colors",children:i?jsx("img",{src:i,alt:l??"User",className:"h-7 w-7 rounded-full object-cover"}):jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-full bg-[var(--dash-primary)] text-xs font-medium text-[var(--dash-primary-text)]",children:(l??"?")[0].toUpperCase()})}),c&&m&&jsx("div",{className:"absolute right-0 top-full z-50 mt-1 min-w-48 rounded-[var(--dash-radius)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 shadow-lg",children:m})]})]})}o(W,"Header");export{W as Header};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime'),q=require('react');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var q__namespace=/*#__PURE__*/_interopNamespace(q);var ie=Object.defineProperty;var i=(e,r)=>ie(e,"name",{value:r,configurable:true});function a(...e){return tailwindMerge.twMerge(clsx.clsx(e))}i(a,"cn");function ce({sidebar:e,header:r,children:l,sidebarCollapsed:s=false,onSidebarCollapse:n,className:c}){return jsxRuntime.jsxs("div",{className:a("flex h-screen overflow-hidden","bg-[var(--dash-bg)] text-[var(--dash-text)]",c),children:[jsxRuntime.jsx("aside",{className:a("flex-shrink-0 overflow-y-auto overflow-x-hidden transition-[width] duration-200","border-r border-[var(--dash-border)] bg-[var(--dash-surface)]",s?"w-[var(--dash-sidebar-collapsed-width)]":"w-[var(--dash-sidebar-width)]"),children:e}),jsxRuntime.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r&&jsxRuntime.jsx("header",{className:"flex-shrink-0 border-b border-[var(--dash-border)] bg-[var(--dash-surface)]",children:r}),jsxRuntime.jsx("main",{className:"flex-1 overflow-y-auto p-6",children:l})]}),!s&&jsxRuntime.jsx("div",{className:"fixed inset-0 z-40 bg-black/60 lg:hidden",onClick:()=>n?.(true)})]})}i(ce,"Layout");function ue({size:e=28}){return jsxRuntime.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M4 4h4v6h8V4h4v16h-4v-6H8v6H4V4z",fill:"currentColor"})})}i(ue,"HanzoMark");function he({logo:e,groups:r,userMenu:l,collapsed:s=false,onToggleCollapse:n,onNavigate:c,className:o}){return jsxRuntime.jsxs("nav",{className:a("flex h-full flex-col","bg-[var(--dash-surface)] text-[var(--dash-text)]",o),children:[jsxRuntime.jsxs("div",{className:a("flex h-[var(--dash-header-height)] items-center border-b border-[var(--dash-border)]",s?"justify-center px-2":"px-4"),children:[e??jsxRuntime.jsx(ue,{}),!s&&n&&jsxRuntime.jsx("button",{type:"button",onClick:n,className:"ml-auto rounded p-1 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]","aria-label":"Collapse sidebar",children:jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),s&&n&&jsxRuntime.jsx("button",{type:"button",onClick:n,className:"absolute -right-3 top-4 z-50 hidden rounded-full border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 text-[var(--dash-text-dim)] hover:text-[var(--dash-text)] lg:flex","aria-label":"Expand sidebar",children:jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto py-2",children:r.map((m,d)=>jsxRuntime.jsx(me,{group:m,collapsed:s,onNavigate:c},d))}),l&&jsxRuntime.jsx("div",{className:"border-t border-[var(--dash-border)] p-2",children:l})]})}i(he,"Sidebar");function me({group:e,collapsed:r,onNavigate:l}){let[s,n]=q__namespace.useState(e.defaultOpen!==false),c=e.collapsible!==false&&!!e.title;return jsxRuntime.jsxs("div",{className:"mb-1",children:[e.title&&!r&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>c&&n(o=>!o),className:a("flex w-full items-center px-4 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-[var(--dash-text-dim)]",c&&"cursor-pointer hover:text-[var(--dash-text-muted)]"),children:[jsxRuntime.jsx("span",{className:"flex-1 text-left",children:e.title}),c&&jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",className:a("transition-transform",s?"rotate-0":"-rotate-90"),children:jsxRuntime.jsx("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),(s||r)&&jsxRuntime.jsx("ul",{className:"space-y-0.5 px-2",children:e.items.map(o=>jsxRuntime.jsx("li",{children:jsxRuntime.jsxs("button",{type:"button",onClick:()=>l?.(o.href),title:r?o.label:void 0,className:a("flex w-full items-center gap-2 rounded-[var(--dash-radius-sm)] px-2 py-1.5 text-sm transition-colors",o.active?"bg-[var(--dash-primary)] text-[var(--dash-primary-text)]":"text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]",r&&"justify-center px-0"),children:[o.icon&&jsxRuntime.jsx("span",{className:"flex h-5 w-5 items-center justify-center flex-shrink-0",children:o.icon}),!r&&jsxRuntime.jsx("span",{className:"flex-1 truncate text-left",children:o.label}),!r&&o.badge!==void 0&&jsxRuntime.jsx("span",{className:"ml-auto rounded-full bg-[var(--dash-primary)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--dash-primary-text)]",children:o.badge})]})},o.href))})]})}i(me,"SidebarGroup");function ve({breadcrumbs:e,searchPlaceholder:r="Search...",onSearch:l,avatarUrl:s,userName:n,userDropdown:c,onToggleTheme:o,theme:m="dark",actions:d,className:v}){let[C,R]=q__namespace.useState(false),S=q__namespace.useRef(null);return q__namespace.useEffect(()=>{if(!C)return;function b(M){S.current&&!S.current.contains(M.target)&&R(false);}return i(b,"handleClick"),document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[C]),jsxRuntime.jsxs("div",{className:a("flex h-[var(--dash-header-height)] items-center gap-4 px-4","bg-[var(--dash-surface)] text-[var(--dash-text)]",v),children:[e&&e.length>0&&jsxRuntime.jsx("nav",{className:"flex items-center gap-1 text-sm","aria-label":"Breadcrumb",children:e.map((b,M)=>jsxRuntime.jsxs(q__namespace.Fragment,{children:[M>0&&jsxRuntime.jsx("span",{className:"text-[var(--dash-text-dim)]",children:"/"}),b.href?jsxRuntime.jsx("a",{href:b.href,className:"text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:b.label}):jsxRuntime.jsx("span",{className:"text-[var(--dash-text)]",children:b.label})]},M))}),jsxRuntime.jsx("div",{className:"flex-1"}),l&&jsxRuntime.jsxs("div",{className:"relative hidden sm:block",children:[jsxRuntime.jsxs("svg",{className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--dash-text-dim)]",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:[jsxRuntime.jsx("circle",{cx:"7",cy:"7",r:"5.5",stroke:"currentColor",strokeWidth:"1.5"}),jsxRuntime.jsx("path",{d:"M11 11l3 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("input",{type:"text",placeholder:r,onChange:b=>l(b.target.value),className:a("h-8 w-56 rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] pl-8 pr-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","transition-colors")})]}),d,o&&jsxRuntime.jsx("button",{type:"button",onClick:o,className:"rounded-[var(--dash-radius-sm)] p-1.5 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors","aria-label":`Switch to ${m==="dark"?"light":"dark"} mode`,children:m==="dark"?jsxRuntime.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[jsxRuntime.jsx("circle",{cx:"8",cy:"8",r:"3.5",stroke:"currentColor",strokeWidth:"1.5"}),jsxRuntime.jsx("path",{d:"M8 1v2M8 13v2M1 8h2M13 8h2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}):jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M14 9.5A6.5 6.5 0 016.5 2 5.5 5.5 0 1014 9.5z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(s||n)&&jsxRuntime.jsxs("div",{className:"relative",ref:S,children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>R(b=>!b),className:"flex items-center gap-2 rounded-[var(--dash-radius-sm)] p-1 hover:bg-[var(--dash-surface-hover)] transition-colors",children:s?jsxRuntime.jsx("img",{src:s,alt:n??"User",className:"h-7 w-7 rounded-full object-cover"}):jsxRuntime.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-full bg-[var(--dash-primary)] text-xs font-medium text-[var(--dash-primary-text)]",children:(n??"?")[0].toUpperCase()})}),C&&c&&jsxRuntime.jsx("div",{className:"absolute right-0 top-full z-50 mt-1 min-w-48 rounded-[var(--dash-radius)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 shadow-lg",children:c})]})]})}i(ve,"Header");function te({columns:e,data:r,rowKey:l,selectable:s=false,selectedKeys:n,onSelectionChange:c,searchable:o=false,searchPlaceholder:m="Search...",totalRows:d,page:v=0,pageSize:C=20,onPageChange:R,onPageSizeChange:S,actions:b,loading:M=false,emptyMessage:f="No data",className:x}){let[u,w]=q__namespace.useState(""),[L,A]=q__namespace.useState(null),G=q__namespace.useMemo(()=>{if(!u)return r;let t=u.toLowerCase();return r.filter(k=>e.some(O=>(O.cell?"":String(k[O.id]??"")).toLowerCase().includes(t)))},[r,u,e]),W=q__namespace.useMemo(()=>{if(!L)return G;let{column:t,direction:k}=L;return [...G].sort((O,E)=>{let Z=O[t],ee=E[t];if(Z==null&&ee==null)return 0;if(Z==null)return 1;if(ee==null)return -1;let se=String(Z).localeCompare(String(ee),void 0,{numeric:true});return k==="asc"?se:-se})},[G,L]),I=d??W.length,z=Math.max(1,Math.ceil(I/C)),j=R?W:W.slice(v*C,(v+1)*C),F=n??new Set,J=j.length>0&&j.every(t=>F.has(l(t)));function U(){c&&c(J?new Set:new Set(j.map(l)));}i(U,"toggleAll");function X(t){if(!c)return;let k=new Set(F);k.has(t)?k.delete(t):k.add(t),c(k);}i(X,"toggleRow");function Y(t){A(k=>k?.column===t?k.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"});}i(Y,"handleSort");let N=b?[...e,{id:"__actions",header:"",width:"auto"}]:e;return jsxRuntime.jsxs("div",{className:a("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",x),children:[(o||s)&&jsxRuntime.jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[o&&jsxRuntime.jsx("input",{type:"text",placeholder:m,value:u,onChange:t=>w(t.target.value),className:a("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),s&&F.size>0&&jsxRuntime.jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[F.size," selected"]})]}),jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:"w-full text-sm",children:[jsxRuntime.jsx("thead",{children:jsxRuntime.jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[s&&jsxRuntime.jsx("th",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:J,onChange:U,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),N.map(t=>jsxRuntime.jsx("th",{style:t.width?{width:t.width}:void 0,className:a("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",t.align==="center"&&"text-center",t.align==="right"&&"text-right",!t.align&&"text-left",t.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:t.sortable?()=>Y(t.id):void 0,children:jsxRuntime.jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,t.sortable&&L?.column===t.id&&jsxRuntime.jsx("span",{className:"text-[10px]",children:L.direction==="asc"?"\u2191":"\u2193"})]})},t.id))]})}),jsxRuntime.jsx("tbody",{children:M?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:N.length+(s?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):j.length===0?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:N.length+(s?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:f})}):j.map(t=>{let k=l(t),O=F.has(k);return jsxRuntime.jsxs("tr",{className:a("border-b border-[var(--dash-border)] transition-colors",O?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[s&&jsxRuntime.jsx("td",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:O,onChange:()=>X(k),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),e.map(E=>jsxRuntime.jsx("td",{className:a("px-4 py-2.5",E.align==="center"&&"text-center",E.align==="right"&&"text-right"),children:E.cell?E.cell(t):String(t[E.id]??"")},E.id)),b&&jsxRuntime.jsx("td",{className:"px-4 py-2.5 text-right",children:b(t)})]},k)})})]})}),z>1&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("span",{children:"Rows per page"}),jsxRuntime.jsx("select",{value:C,onChange:t=>S?.(Number(t.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(t=>jsxRuntime.jsx("option",{value:t,children:t},t))})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs("span",{children:["Page ",v+1," of ",z]}),jsxRuntime.jsx("button",{type:"button",disabled:v===0,onClick:()=>R?.(v-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsxRuntime.jsx("button",{type:"button",disabled:v>=z-1,onClick:()=>R?.(v+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}i(te,"Table");function ae({title:e,fields:r,values:l,onSubmit:s,onCancel:n,submitLabel:c="Save",cancelLabel:o="Cancel",loading:m=false,className:d}){let[v,C]=q__namespace.useState(()=>{let f={};for(let x of r)f[x.name]=l?.[x.name]??x.defaultValue??(x.type==="toggle"?false:"");return f}),[R,S]=q__namespace.useState({});function b(f,x){C(u=>({...u,[f]:x})),S(u=>{if(!u[f])return u;let w={...u};return delete w[f],w});}i(b,"setValue");async function M(f){f.preventDefault();let x={};for(let u of r){let w=v[u.name];if(u.required&&(w===""||w===null||w===void 0)&&(x[u.name]=`${u.label} is required`),u.validate){let L=u.validate(w);L&&(x[u.name]=L);}}if(Object.keys(x).length>0){S(x);return}await s(v);}return i(M,"handleSubmit"),jsxRuntime.jsxs("form",{onSubmit:M,className:a("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",d),children:[e&&jsxRuntime.jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsxRuntime.jsx("div",{className:"space-y-4",children:r.map(f=>jsxRuntime.jsx(pe,{field:f,value:v[f.name],error:R[f.name],onChange:x=>b(f.name,x)},f.name))}),jsxRuntime.jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsxRuntime.jsx("button",{type:"submit",disabled:m,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:m?"Saving...":c}),n&&jsxRuntime.jsx("button",{type:"button",onClick:n,disabled:m,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:o})]})]})}i(ae,"Form");var Q=a("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function pe({field:e,value:r,error:l,onChange:s}){let n=`dash-field-${e.name}`,c=jsxRuntime.jsxs("label",{htmlFor:n,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsxRuntime.jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),o=e.description?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,m=l?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:l}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxRuntime.jsxs("div",{children:[c,jsxRuntime.jsx("input",{id:n,type:e.type,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,onChange:d=>s(e.type==="number"?Number(d.target.value):d.target.value),className:a(Q,l&&"border-[var(--dash-error)]")}),o,m]});case "textarea":return jsxRuntime.jsxs("div",{children:[c,jsxRuntime.jsx("textarea",{id:n,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:d=>s(d.target.value),className:a(Q,"resize-y",l&&"border-[var(--dash-error)]")}),o,m]});case "select":case "relation":return jsxRuntime.jsxs("div",{children:[c,jsxRuntime.jsxs("select",{id:n,value:String(r??""),disabled:e.disabled,onChange:d=>s(d.target.value),className:a(Q,l&&"border-[var(--dash-error)]"),children:[jsxRuntime.jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(d=>jsxRuntime.jsx("option",{value:d.value,children:d.label},d.value))]}),o,m]});case "toggle":return jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntime.jsx("button",{id:n,type:"button",role:"switch","aria-checked":!!r,disabled:e.disabled,onClick:()=>s(!r),className:a("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",r?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsxRuntime.jsx("span",{className:a("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",r?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsxRuntime.jsx("label",{htmlFor:n,className:"text-sm text-[var(--dash-text)]",children:e.label}),o,m]});case "json":return jsxRuntime.jsxs("div",{children:[c,jsxRuntime.jsx("textarea",{id:n,value:typeof r=="string"?r:JSON.stringify(r,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:d=>{try{s(JSON.parse(d.target.value));}catch{s(d.target.value);}},className:a(Q,"font-mono text-xs resize-y",l&&"border-[var(--dash-error)]")}),o,m]});case "file":return jsxRuntime.jsxs("div",{children:[c,jsxRuntime.jsx("input",{id:n,type:"file",accept:e.accept,disabled:e.disabled,onChange:d=>{let v=d.target.files?.[0];v&&s(v);},className:a("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),o,m]});default:return null}}i(pe,"FieldRenderer");function be({resourceName:e,resourceNamePlural:r,columns:l,data:s,rowKey:n,fields:c,rowToValues:o,onCreate:m,onUpdate:d,onDelete:v,canCreate:C=true,canEdit:R=true,canDelete:S=true,tableProps:b,loading:M=false,className:f}){let x=r??`${e}s`,[u,w]=q__namespace.useState("list"),[L,A]=q__namespace.useState(null),[G,W]=q__namespace.useState({}),[I,z]=q__namespace.useState(null),[j,F]=q__namespace.useState(false);function J(N){let t=n(N);A(t),W(o?o(N):N),w("edit");}i(J,"handleEdit");function U(N){z(n(N));}i(U,"handleDeleteConfirm");async function X(){if(!(!I||!v)){F(true);try{await v(I);}finally{F(false),z(null);}}}i(X,"confirmDelete");function Y(N){return jsxRuntime.jsxs("div",{className:"flex items-center justify-end gap-1",children:[R&&d&&jsxRuntime.jsx("button",{type:"button",onClick:()=>J(N),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors",children:"Edit"}),S&&v&&jsxRuntime.jsx("button",{type:"button",onClick:()=>U(N),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-error)] hover:bg-[var(--dash-error-dim)] transition-colors",children:"Delete"})]})}return i(Y,"actionsRenderer"),u==="list"?jsxRuntime.jsxs("div",{className:a("space-y-4",f),children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("h2",{className:"text-xl font-semibold text-[var(--dash-text)]",children:x}),C&&m&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>{A(null),W({}),w("create");},className:a("rounded-[var(--dash-radius)] px-3 py-1.5 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]"),children:["Create ",e]})]}),jsxRuntime.jsx(te,{columns:l,data:s,rowKey:n,actions:R||S?Y:void 0,loading:M,searchable:true,emptyMessage:`No ${x.toLowerCase()} found`,...b}),I!==null&&jsxRuntime.jsx(fe,{resourceName:e,loading:j,onConfirm:X,onCancel:()=>z(null)})]}):jsxRuntime.jsxs("div",{className:a("space-y-4",f),children:[jsxRuntime.jsxs("button",{type:"button",onClick:()=>w("list"),className:"inline-flex items-center gap-1 text-sm text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:[jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"Back to ",x]}),jsxRuntime.jsx(ae,{title:u==="create"?`Create ${e}`:`Edit ${e}`,fields:c,values:u==="edit"?G:void 0,loading:j,submitLabel:u==="create"?"Create":"Save changes",onCancel:()=>w("list"),onSubmit:async N=>{F(true);try{u==="create"&&m?await m(N):u==="edit"&&L&&d&&await d(L,N),w("list");}finally{F(false);}}})]})}i(be,"Crud");function fe({resourceName:e,loading:r,onConfirm:l,onCancel:s}){return jsxRuntime.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:jsxRuntime.jsxs("div",{className:"w-full max-w-sm rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6 shadow-lg",children:[jsxRuntime.jsxs("h3",{className:"text-lg font-semibold text-[var(--dash-text)]",children:["Delete ",e,"?"]}),jsxRuntime.jsxs("p",{className:"mt-2 text-sm text-[var(--dash-text-muted)]",children:["This action cannot be undone. The ",e.toLowerCase()," will be permanently removed."]}),jsxRuntime.jsxs("div",{className:"mt-6 flex items-center justify-end gap-3",children:[jsxRuntime.jsx("button",{type:"button",onClick:s,disabled:r,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:"Cancel"}),jsxRuntime.jsx("button",{type:"button",onClick:l,disabled:r,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-error)] text-white","hover:bg-red-600","disabled:opacity-50 disabled:cursor-not-allowed"),children:r?"Deleting...":"Delete"})]})]})})}i(fe,"DeleteDialog");
|
|
3
|
+
exports.Crud=be;exports.Form=ae;exports.Header=ve;exports.Layout=ce;exports.Sidebar=he;exports.Table=te;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';import*as q from'react';var ie=Object.defineProperty;var i=(e,r)=>ie(e,"name",{value:r,configurable:true});function a(...e){return twMerge(clsx(e))}i(a,"cn");function ce({sidebar:e,header:r,children:l,sidebarCollapsed:s=false,onSidebarCollapse:n,className:c}){return jsxs("div",{className:a("flex h-screen overflow-hidden","bg-[var(--dash-bg)] text-[var(--dash-text)]",c),children:[jsx("aside",{className:a("flex-shrink-0 overflow-y-auto overflow-x-hidden transition-[width] duration-200","border-r border-[var(--dash-border)] bg-[var(--dash-surface)]",s?"w-[var(--dash-sidebar-collapsed-width)]":"w-[var(--dash-sidebar-width)]"),children:e}),jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r&&jsx("header",{className:"flex-shrink-0 border-b border-[var(--dash-border)] bg-[var(--dash-surface)]",children:r}),jsx("main",{className:"flex-1 overflow-y-auto p-6",children:l})]}),!s&&jsx("div",{className:"fixed inset-0 z-40 bg-black/60 lg:hidden",onClick:()=>n?.(true)})]})}i(ce,"Layout");function ue({size:e=28}){return jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4 4h4v6h8V4h4v16h-4v-6H8v6H4V4z",fill:"currentColor"})})}i(ue,"HanzoMark");function he({logo:e,groups:r,userMenu:l,collapsed:s=false,onToggleCollapse:n,onNavigate:c,className:o}){return jsxs("nav",{className:a("flex h-full flex-col","bg-[var(--dash-surface)] text-[var(--dash-text)]",o),children:[jsxs("div",{className:a("flex h-[var(--dash-header-height)] items-center border-b border-[var(--dash-border)]",s?"justify-center px-2":"px-4"),children:[e??jsx(ue,{}),!s&&n&&jsx("button",{type:"button",onClick:n,className:"ml-auto rounded p-1 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]","aria-label":"Collapse sidebar",children:jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),s&&n&&jsx("button",{type:"button",onClick:n,className:"absolute -right-3 top-4 z-50 hidden rounded-full border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 text-[var(--dash-text-dim)] hover:text-[var(--dash-text)] lg:flex","aria-label":"Expand sidebar",children:jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),jsx("div",{className:"flex-1 overflow-y-auto py-2",children:r.map((m,d)=>jsx(me,{group:m,collapsed:s,onNavigate:c},d))}),l&&jsx("div",{className:"border-t border-[var(--dash-border)] p-2",children:l})]})}i(he,"Sidebar");function me({group:e,collapsed:r,onNavigate:l}){let[s,n]=q.useState(e.defaultOpen!==false),c=e.collapsible!==false&&!!e.title;return jsxs("div",{className:"mb-1",children:[e.title&&!r&&jsxs("button",{type:"button",onClick:()=>c&&n(o=>!o),className:a("flex w-full items-center px-4 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-[var(--dash-text-dim)]",c&&"cursor-pointer hover:text-[var(--dash-text-muted)]"),children:[jsx("span",{className:"flex-1 text-left",children:e.title}),c&&jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",className:a("transition-transform",s?"rotate-0":"-rotate-90"),children:jsx("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),(s||r)&&jsx("ul",{className:"space-y-0.5 px-2",children:e.items.map(o=>jsx("li",{children:jsxs("button",{type:"button",onClick:()=>l?.(o.href),title:r?o.label:void 0,className:a("flex w-full items-center gap-2 rounded-[var(--dash-radius-sm)] px-2 py-1.5 text-sm transition-colors",o.active?"bg-[var(--dash-primary)] text-[var(--dash-primary-text)]":"text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]",r&&"justify-center px-0"),children:[o.icon&&jsx("span",{className:"flex h-5 w-5 items-center justify-center flex-shrink-0",children:o.icon}),!r&&jsx("span",{className:"flex-1 truncate text-left",children:o.label}),!r&&o.badge!==void 0&&jsx("span",{className:"ml-auto rounded-full bg-[var(--dash-primary)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--dash-primary-text)]",children:o.badge})]})},o.href))})]})}i(me,"SidebarGroup");function ve({breadcrumbs:e,searchPlaceholder:r="Search...",onSearch:l,avatarUrl:s,userName:n,userDropdown:c,onToggleTheme:o,theme:m="dark",actions:d,className:v}){let[C,R]=q.useState(false),S=q.useRef(null);return q.useEffect(()=>{if(!C)return;function b(M){S.current&&!S.current.contains(M.target)&&R(false);}return i(b,"handleClick"),document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[C]),jsxs("div",{className:a("flex h-[var(--dash-header-height)] items-center gap-4 px-4","bg-[var(--dash-surface)] text-[var(--dash-text)]",v),children:[e&&e.length>0&&jsx("nav",{className:"flex items-center gap-1 text-sm","aria-label":"Breadcrumb",children:e.map((b,M)=>jsxs(q.Fragment,{children:[M>0&&jsx("span",{className:"text-[var(--dash-text-dim)]",children:"/"}),b.href?jsx("a",{href:b.href,className:"text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:b.label}):jsx("span",{className:"text-[var(--dash-text)]",children:b.label})]},M))}),jsx("div",{className:"flex-1"}),l&&jsxs("div",{className:"relative hidden sm:block",children:[jsxs("svg",{className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--dash-text-dim)]",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:[jsx("circle",{cx:"7",cy:"7",r:"5.5",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M11 11l3 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsx("input",{type:"text",placeholder:r,onChange:b=>l(b.target.value),className:a("h-8 w-56 rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] pl-8 pr-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","transition-colors")})]}),d,o&&jsx("button",{type:"button",onClick:o,className:"rounded-[var(--dash-radius-sm)] p-1.5 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors","aria-label":`Switch to ${m==="dark"?"light":"dark"} mode`,children:m==="dark"?jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[jsx("circle",{cx:"8",cy:"8",r:"3.5",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M8 1v2M8 13v2M1 8h2M13 8h2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}):jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M14 9.5A6.5 6.5 0 016.5 2 5.5 5.5 0 1014 9.5z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(s||n)&&jsxs("div",{className:"relative",ref:S,children:[jsx("button",{type:"button",onClick:()=>R(b=>!b),className:"flex items-center gap-2 rounded-[var(--dash-radius-sm)] p-1 hover:bg-[var(--dash-surface-hover)] transition-colors",children:s?jsx("img",{src:s,alt:n??"User",className:"h-7 w-7 rounded-full object-cover"}):jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-full bg-[var(--dash-primary)] text-xs font-medium text-[var(--dash-primary-text)]",children:(n??"?")[0].toUpperCase()})}),C&&c&&jsx("div",{className:"absolute right-0 top-full z-50 mt-1 min-w-48 rounded-[var(--dash-radius)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 shadow-lg",children:c})]})]})}i(ve,"Header");function te({columns:e,data:r,rowKey:l,selectable:s=false,selectedKeys:n,onSelectionChange:c,searchable:o=false,searchPlaceholder:m="Search...",totalRows:d,page:v=0,pageSize:C=20,onPageChange:R,onPageSizeChange:S,actions:b,loading:M=false,emptyMessage:f="No data",className:x}){let[u,w]=q.useState(""),[L,A]=q.useState(null),G=q.useMemo(()=>{if(!u)return r;let t=u.toLowerCase();return r.filter(k=>e.some(O=>(O.cell?"":String(k[O.id]??"")).toLowerCase().includes(t)))},[r,u,e]),W=q.useMemo(()=>{if(!L)return G;let{column:t,direction:k}=L;return [...G].sort((O,E)=>{let Z=O[t],ee=E[t];if(Z==null&&ee==null)return 0;if(Z==null)return 1;if(ee==null)return -1;let se=String(Z).localeCompare(String(ee),void 0,{numeric:true});return k==="asc"?se:-se})},[G,L]),I=d??W.length,z=Math.max(1,Math.ceil(I/C)),j=R?W:W.slice(v*C,(v+1)*C),F=n??new Set,J=j.length>0&&j.every(t=>F.has(l(t)));function U(){c&&c(J?new Set:new Set(j.map(l)));}i(U,"toggleAll");function X(t){if(!c)return;let k=new Set(F);k.has(t)?k.delete(t):k.add(t),c(k);}i(X,"toggleRow");function Y(t){A(k=>k?.column===t?k.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"});}i(Y,"handleSort");let N=b?[...e,{id:"__actions",header:"",width:"auto"}]:e;return jsxs("div",{className:a("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",x),children:[(o||s)&&jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[o&&jsx("input",{type:"text",placeholder:m,value:u,onChange:t=>w(t.target.value),className:a("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),s&&F.size>0&&jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[F.size," selected"]})]}),jsx("div",{className:"overflow-x-auto",children:jsxs("table",{className:"w-full text-sm",children:[jsx("thead",{children:jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[s&&jsx("th",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:J,onChange:U,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),N.map(t=>jsx("th",{style:t.width?{width:t.width}:void 0,className:a("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",t.align==="center"&&"text-center",t.align==="right"&&"text-right",!t.align&&"text-left",t.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:t.sortable?()=>Y(t.id):void 0,children:jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,t.sortable&&L?.column===t.id&&jsx("span",{className:"text-[10px]",children:L.direction==="asc"?"\u2191":"\u2193"})]})},t.id))]})}),jsx("tbody",{children:M?jsx("tr",{children:jsx("td",{colSpan:N.length+(s?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):j.length===0?jsx("tr",{children:jsx("td",{colSpan:N.length+(s?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:f})}):j.map(t=>{let k=l(t),O=F.has(k);return jsxs("tr",{className:a("border-b border-[var(--dash-border)] transition-colors",O?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[s&&jsx("td",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:O,onChange:()=>X(k),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),e.map(E=>jsx("td",{className:a("px-4 py-2.5",E.align==="center"&&"text-center",E.align==="right"&&"text-right"),children:E.cell?E.cell(t):String(t[E.id]??"")},E.id)),b&&jsx("td",{className:"px-4 py-2.5 text-right",children:b(t)})]},k)})})]})}),z>1&&jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{children:"Rows per page"}),jsx("select",{value:C,onChange:t=>S?.(Number(t.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(t=>jsx("option",{value:t,children:t},t))})]}),jsxs("div",{className:"flex items-center gap-2",children:[jsxs("span",{children:["Page ",v+1," of ",z]}),jsx("button",{type:"button",disabled:v===0,onClick:()=>R?.(v-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsx("button",{type:"button",disabled:v>=z-1,onClick:()=>R?.(v+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}i(te,"Table");function ae({title:e,fields:r,values:l,onSubmit:s,onCancel:n,submitLabel:c="Save",cancelLabel:o="Cancel",loading:m=false,className:d}){let[v,C]=q.useState(()=>{let f={};for(let x of r)f[x.name]=l?.[x.name]??x.defaultValue??(x.type==="toggle"?false:"");return f}),[R,S]=q.useState({});function b(f,x){C(u=>({...u,[f]:x})),S(u=>{if(!u[f])return u;let w={...u};return delete w[f],w});}i(b,"setValue");async function M(f){f.preventDefault();let x={};for(let u of r){let w=v[u.name];if(u.required&&(w===""||w===null||w===void 0)&&(x[u.name]=`${u.label} is required`),u.validate){let L=u.validate(w);L&&(x[u.name]=L);}}if(Object.keys(x).length>0){S(x);return}await s(v);}return i(M,"handleSubmit"),jsxs("form",{onSubmit:M,className:a("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",d),children:[e&&jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsx("div",{className:"space-y-4",children:r.map(f=>jsx(pe,{field:f,value:v[f.name],error:R[f.name],onChange:x=>b(f.name,x)},f.name))}),jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsx("button",{type:"submit",disabled:m,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:m?"Saving...":c}),n&&jsx("button",{type:"button",onClick:n,disabled:m,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:o})]})]})}i(ae,"Form");var Q=a("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function pe({field:e,value:r,error:l,onChange:s}){let n=`dash-field-${e.name}`,c=jsxs("label",{htmlFor:n,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),o=e.description?jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,m=l?jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:l}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxs("div",{children:[c,jsx("input",{id:n,type:e.type,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,onChange:d=>s(e.type==="number"?Number(d.target.value):d.target.value),className:a(Q,l&&"border-[var(--dash-error)]")}),o,m]});case "textarea":return jsxs("div",{children:[c,jsx("textarea",{id:n,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:d=>s(d.target.value),className:a(Q,"resize-y",l&&"border-[var(--dash-error)]")}),o,m]});case "select":case "relation":return jsxs("div",{children:[c,jsxs("select",{id:n,value:String(r??""),disabled:e.disabled,onChange:d=>s(d.target.value),className:a(Q,l&&"border-[var(--dash-error)]"),children:[jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(d=>jsx("option",{value:d.value,children:d.label},d.value))]}),o,m]});case "toggle":return jsxs("div",{className:"flex items-center gap-3",children:[jsx("button",{id:n,type:"button",role:"switch","aria-checked":!!r,disabled:e.disabled,onClick:()=>s(!r),className:a("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",r?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsx("span",{className:a("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",r?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsx("label",{htmlFor:n,className:"text-sm text-[var(--dash-text)]",children:e.label}),o,m]});case "json":return jsxs("div",{children:[c,jsx("textarea",{id:n,value:typeof r=="string"?r:JSON.stringify(r,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:d=>{try{s(JSON.parse(d.target.value));}catch{s(d.target.value);}},className:a(Q,"font-mono text-xs resize-y",l&&"border-[var(--dash-error)]")}),o,m]});case "file":return jsxs("div",{children:[c,jsx("input",{id:n,type:"file",accept:e.accept,disabled:e.disabled,onChange:d=>{let v=d.target.files?.[0];v&&s(v);},className:a("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),o,m]});default:return null}}i(pe,"FieldRenderer");function be({resourceName:e,resourceNamePlural:r,columns:l,data:s,rowKey:n,fields:c,rowToValues:o,onCreate:m,onUpdate:d,onDelete:v,canCreate:C=true,canEdit:R=true,canDelete:S=true,tableProps:b,loading:M=false,className:f}){let x=r??`${e}s`,[u,w]=q.useState("list"),[L,A]=q.useState(null),[G,W]=q.useState({}),[I,z]=q.useState(null),[j,F]=q.useState(false);function J(N){let t=n(N);A(t),W(o?o(N):N),w("edit");}i(J,"handleEdit");function U(N){z(n(N));}i(U,"handleDeleteConfirm");async function X(){if(!(!I||!v)){F(true);try{await v(I);}finally{F(false),z(null);}}}i(X,"confirmDelete");function Y(N){return jsxs("div",{className:"flex items-center justify-end gap-1",children:[R&&d&&jsx("button",{type:"button",onClick:()=>J(N),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors",children:"Edit"}),S&&v&&jsx("button",{type:"button",onClick:()=>U(N),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-error)] hover:bg-[var(--dash-error-dim)] transition-colors",children:"Delete"})]})}return i(Y,"actionsRenderer"),u==="list"?jsxs("div",{className:a("space-y-4",f),children:[jsxs("div",{className:"flex items-center justify-between",children:[jsx("h2",{className:"text-xl font-semibold text-[var(--dash-text)]",children:x}),C&&m&&jsxs("button",{type:"button",onClick:()=>{A(null),W({}),w("create");},className:a("rounded-[var(--dash-radius)] px-3 py-1.5 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]"),children:["Create ",e]})]}),jsx(te,{columns:l,data:s,rowKey:n,actions:R||S?Y:void 0,loading:M,searchable:true,emptyMessage:`No ${x.toLowerCase()} found`,...b}),I!==null&&jsx(fe,{resourceName:e,loading:j,onConfirm:X,onCancel:()=>z(null)})]}):jsxs("div",{className:a("space-y-4",f),children:[jsxs("button",{type:"button",onClick:()=>w("list"),className:"inline-flex items-center gap-1 text-sm text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:[jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"Back to ",x]}),jsx(ae,{title:u==="create"?`Create ${e}`:`Edit ${e}`,fields:c,values:u==="edit"?G:void 0,loading:j,submitLabel:u==="create"?"Create":"Save changes",onCancel:()=>w("list"),onSubmit:async N=>{F(true);try{u==="create"&&m?await m(N):u==="edit"&&L&&d&&await d(L,N),w("list");}finally{F(false);}}})]})}i(be,"Crud");function fe({resourceName:e,loading:r,onConfirm:l,onCancel:s}){return jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:jsxs("div",{className:"w-full max-w-sm rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6 shadow-lg",children:[jsxs("h3",{className:"text-lg font-semibold text-[var(--dash-text)]",children:["Delete ",e,"?"]}),jsxs("p",{className:"mt-2 text-sm text-[var(--dash-text-muted)]",children:["This action cannot be undone. The ",e.toLowerCase()," will be permanently removed."]}),jsxs("div",{className:"mt-6 flex items-center justify-end gap-3",children:[jsx("button",{type:"button",onClick:s,disabled:r,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:"Cancel"}),jsx("button",{type:"button",onClick:l,disabled:r,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-error)] text-white","hover:bg-red-600","disabled:opacity-50 disabled:cursor-not-allowed"),children:r?"Deleting...":"Delete"})]})]})})}i(fe,"DeleteDialog");
|
|
3
|
+
export{be as Crud,ae as Form,ve as Header,ce as Layout,he as Sidebar,te as Table};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');var n=Object.defineProperty;var r=(e,a)=>n(e,"name",{value:a,configurable:true});function d(...e){return tailwindMerge.twMerge(clsx.clsx(e))}r(d,"cn");function N({sidebar:e,header:a,children:t,sidebarCollapsed:s=false,onSidebarCollapse:i,className:c}){return jsxRuntime.jsxs("div",{className:d("flex h-screen overflow-hidden","bg-[var(--dash-bg)] text-[var(--dash-text)]",c),children:[jsxRuntime.jsx("aside",{className:d("flex-shrink-0 overflow-y-auto overflow-x-hidden transition-[width] duration-200","border-r border-[var(--dash-border)] bg-[var(--dash-surface)]",s?"w-[var(--dash-sidebar-collapsed-width)]":"w-[var(--dash-sidebar-width)]"),children:e}),jsxRuntime.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[a&&jsxRuntime.jsx("header",{className:"flex-shrink-0 border-b border-[var(--dash-border)] bg-[var(--dash-surface)]",children:a}),jsxRuntime.jsx("main",{className:"flex-1 overflow-y-auto p-6",children:t})]}),!s&&jsxRuntime.jsx("div",{className:"fixed inset-0 z-40 bg-black/60 lg:hidden",onClick:()=>i?.(true)})]})}r(N,"Layout");exports.Layout=N;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var n=Object.defineProperty;var r=(e,a)=>n(e,"name",{value:a,configurable:true});function d(...e){return twMerge(clsx(e))}r(d,"cn");function N({sidebar:e,header:a,children:t,sidebarCollapsed:s=false,onSidebarCollapse:i,className:c}){return jsxs("div",{className:d("flex h-screen overflow-hidden","bg-[var(--dash-bg)] text-[var(--dash-text)]",c),children:[jsx("aside",{className:d("flex-shrink-0 overflow-y-auto overflow-x-hidden transition-[width] duration-200","border-r border-[var(--dash-border)] bg-[var(--dash-surface)]",s?"w-[var(--dash-sidebar-collapsed-width)]":"w-[var(--dash-sidebar-width)]"),children:e}),jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[a&&jsx("header",{className:"flex-shrink-0 border-b border-[var(--dash-border)] bg-[var(--dash-surface)]",children:a}),jsx("main",{className:"flex-1 overflow-y-auto p-6",children:t})]}),!s&&jsx("div",{className:"fixed inset-0 z-40 bg-black/60 lg:hidden",onClick:()=>i?.(true)})]})}r(N,"Layout");export{N as Layout};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var u=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var u__namespace=/*#__PURE__*/_interopNamespace(u);var p=Object.defineProperty;var n=(t,r)=>p(t,"name",{value:r,configurable:true});function i(...t){return tailwindMerge.twMerge(clsx.clsx(t))}n(i,"cn");function b({size:t=28}){return jsxRuntime.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M4 4h4v6h8V4h4v16h-4v-6H8v6H4V4z",fill:"currentColor"})})}n(b,"HanzoMark");function L({logo:t,groups:r,userMenu:v,collapsed:o=false,onToggleCollapse:s,onNavigate:l,className:a}){return jsxRuntime.jsxs("nav",{className:i("flex h-full flex-col","bg-[var(--dash-surface)] text-[var(--dash-text)]",a),children:[jsxRuntime.jsxs("div",{className:i("flex h-[var(--dash-header-height)] items-center border-b border-[var(--dash-border)]",o?"justify-center px-2":"px-4"),children:[t??jsxRuntime.jsx(b,{}),!o&&s&&jsxRuntime.jsx("button",{type:"button",onClick:s,className:"ml-auto rounded p-1 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]","aria-label":"Collapse sidebar",children:jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),o&&s&&jsxRuntime.jsx("button",{type:"button",onClick:s,className:"absolute -right-3 top-4 z-50 hidden rounded-full border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 text-[var(--dash-text-dim)] hover:text-[var(--dash-text)] lg:flex","aria-label":"Expand sidebar",children:jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto py-2",children:r.map((h,c)=>jsxRuntime.jsx(m,{group:h,collapsed:o,onNavigate:l},c))}),v&&jsxRuntime.jsx("div",{className:"border-t border-[var(--dash-border)] p-2",children:v})]})}n(L,"Sidebar");function m({group:t,collapsed:r,onNavigate:v}){let[o,s]=u__namespace.useState(t.defaultOpen!==false),l=t.collapsible!==false&&!!t.title;return jsxRuntime.jsxs("div",{className:"mb-1",children:[t.title&&!r&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>l&&s(a=>!a),className:i("flex w-full items-center px-4 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-[var(--dash-text-dim)]",l&&"cursor-pointer hover:text-[var(--dash-text-muted)]"),children:[jsxRuntime.jsx("span",{className:"flex-1 text-left",children:t.title}),l&&jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",className:i("transition-transform",o?"rotate-0":"-rotate-90"),children:jsxRuntime.jsx("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),(o||r)&&jsxRuntime.jsx("ul",{className:"space-y-0.5 px-2",children:t.items.map(a=>jsxRuntime.jsx("li",{children:jsxRuntime.jsxs("button",{type:"button",onClick:()=>v?.(a.href),title:r?a.label:void 0,className:i("flex w-full items-center gap-2 rounded-[var(--dash-radius-sm)] px-2 py-1.5 text-sm transition-colors",a.active?"bg-[var(--dash-primary)] text-[var(--dash-primary-text)]":"text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]",r&&"justify-center px-0"),children:[a.icon&&jsxRuntime.jsx("span",{className:"flex h-5 w-5 items-center justify-center flex-shrink-0",children:a.icon}),!r&&jsxRuntime.jsx("span",{className:"flex-1 truncate text-left",children:a.label}),!r&&a.badge!==void 0&&jsxRuntime.jsx("span",{className:"ml-auto rounded-full bg-[var(--dash-primary)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--dash-primary-text)]",children:a.badge})]})},a.href))})]})}n(m,"SidebarGroup");
|
|
3
|
+
exports.Sidebar=L;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import*as u from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var p=Object.defineProperty;var n=(t,r)=>p(t,"name",{value:r,configurable:true});function i(...t){return twMerge(clsx(t))}n(i,"cn");function b({size:t=28}){return jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4 4h4v6h8V4h4v16h-4v-6H8v6H4V4z",fill:"currentColor"})})}n(b,"HanzoMark");function L({logo:t,groups:r,userMenu:v,collapsed:o=false,onToggleCollapse:s,onNavigate:l,className:a}){return jsxs("nav",{className:i("flex h-full flex-col","bg-[var(--dash-surface)] text-[var(--dash-text)]",a),children:[jsxs("div",{className:i("flex h-[var(--dash-header-height)] items-center border-b border-[var(--dash-border)]",o?"justify-center px-2":"px-4"),children:[t??jsx(b,{}),!o&&s&&jsx("button",{type:"button",onClick:s,className:"ml-auto rounded p-1 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]","aria-label":"Collapse sidebar",children:jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),o&&s&&jsx("button",{type:"button",onClick:s,className:"absolute -right-3 top-4 z-50 hidden rounded-full border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 text-[var(--dash-text-dim)] hover:text-[var(--dash-text)] lg:flex","aria-label":"Expand sidebar",children:jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),jsx("div",{className:"flex-1 overflow-y-auto py-2",children:r.map((h,c)=>jsx(m,{group:h,collapsed:o,onNavigate:l},c))}),v&&jsx("div",{className:"border-t border-[var(--dash-border)] p-2",children:v})]})}n(L,"Sidebar");function m({group:t,collapsed:r,onNavigate:v}){let[o,s]=u.useState(t.defaultOpen!==false),l=t.collapsible!==false&&!!t.title;return jsxs("div",{className:"mb-1",children:[t.title&&!r&&jsxs("button",{type:"button",onClick:()=>l&&s(a=>!a),className:i("flex w-full items-center px-4 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-[var(--dash-text-dim)]",l&&"cursor-pointer hover:text-[var(--dash-text-muted)]"),children:[jsx("span",{className:"flex-1 text-left",children:t.title}),l&&jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",className:i("transition-transform",o?"rotate-0":"-rotate-90"),children:jsx("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),(o||r)&&jsx("ul",{className:"space-y-0.5 px-2",children:t.items.map(a=>jsx("li",{children:jsxs("button",{type:"button",onClick:()=>v?.(a.href),title:r?a.label:void 0,className:i("flex w-full items-center gap-2 rounded-[var(--dash-radius-sm)] px-2 py-1.5 text-sm transition-colors",a.active?"bg-[var(--dash-primary)] text-[var(--dash-primary-text)]":"text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]",r&&"justify-center px-0"),children:[a.icon&&jsx("span",{className:"flex h-5 w-5 items-center justify-center flex-shrink-0",children:a.icon}),!r&&jsx("span",{className:"flex-1 truncate text-left",children:a.label}),!r&&a.badge!==void 0&&jsx("span",{className:"ml-auto rounded-full bg-[var(--dash-primary)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--dash-primary-text)]",children:a.badge})]})},a.href))})]})}n(m,"SidebarGroup");
|
|
3
|
+
export{L as Sidebar};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var u=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var u__namespace=/*#__PURE__*/_interopNamespace(u);var J=Object.defineProperty;var i=(s,h)=>J(s,"name",{value:h,configurable:true});function c(...s){return tailwindMerge.twMerge(clsx.clsx(s))}i(c,"cn");function ee({columns:s,data:h,rowKey:f,selectable:l=false,selectedKeys:j,onSelectionChange:m,searchable:L=false,searchPlaceholder:z="Search...",totalRows:B,page:o=0,pageSize:g=20,onPageChange:w,onPageSizeChange:V,actions:y,loading:W=false,emptyMessage:_="No data",className:q}){let[x,A]=u__namespace.useState(""),[p,D]=u__namespace.useState(null),N=u__namespace.useMemo(()=>{if(!x)return h;let e=x.toLowerCase();return h.filter(r=>s.some(d=>(d.cell?"":String(r[d.id]??"")).toLowerCase().includes(e)))},[h,x,s]),k=u__namespace.useMemo(()=>{if(!p)return N;let{column:e,direction:r}=p;return [...N].sort((d,n)=>{let C=d[e],T=n[e];if(C==null&&T==null)return 0;if(C==null)return 1;if(T==null)return -1;let P=String(C).localeCompare(String(T),void 0,{numeric:true});return r==="asc"?P:-P})},[N,p]),E=B??k.length,S=Math.max(1,Math.ceil(E/g)),b=w?k:k.slice(o*g,(o+1)*g),v=j??new Set,M=b.length>0&&b.every(e=>v.has(f(e)));function F(){m&&m(M?new Set:new Set(b.map(f)));}i(F,"toggleAll");function G(e){if(!m)return;let r=new Set(v);r.has(e)?r.delete(e):r.add(e),m(r);}i(G,"toggleRow");function H(e){D(r=>r?.column===e?r.direction==="asc"?{column:e,direction:"desc"}:null:{column:e,direction:"asc"});}i(H,"handleSort");let R=y?[...s,{id:"__actions",header:"",width:"auto"}]:s;return jsxRuntime.jsxs("div",{className:c("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",q),children:[(L||l)&&jsxRuntime.jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[L&&jsxRuntime.jsx("input",{type:"text",placeholder:z,value:x,onChange:e=>A(e.target.value),className:c("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),l&&v.size>0&&jsxRuntime.jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[v.size," selected"]})]}),jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:"w-full text-sm",children:[jsxRuntime.jsx("thead",{children:jsxRuntime.jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[l&&jsxRuntime.jsx("th",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:M,onChange:F,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),R.map(e=>jsxRuntime.jsx("th",{style:e.width?{width:e.width}:void 0,className:c("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",e.align==="center"&&"text-center",e.align==="right"&&"text-right",!e.align&&"text-left",e.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:e.sortable?()=>H(e.id):void 0,children:jsxRuntime.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.header,e.sortable&&p?.column===e.id&&jsxRuntime.jsx("span",{className:"text-[10px]",children:p.direction==="asc"?"\u2191":"\u2193"})]})},e.id))]})}),jsxRuntime.jsx("tbody",{children:W?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:R.length+(l?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):b.length===0?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:R.length+(l?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:_})}):b.map(e=>{let r=f(e),d=v.has(r);return jsxRuntime.jsxs("tr",{className:c("border-b border-[var(--dash-border)] transition-colors",d?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[l&&jsxRuntime.jsx("td",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:d,onChange:()=>G(r),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),s.map(n=>jsxRuntime.jsx("td",{className:c("px-4 py-2.5",n.align==="center"&&"text-center",n.align==="right"&&"text-right"),children:n.cell?n.cell(e):String(e[n.id]??"")},n.id)),y&&jsxRuntime.jsx("td",{className:"px-4 py-2.5 text-right",children:y(e)})]},r)})})]})}),S>1&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("span",{children:"Rows per page"}),jsxRuntime.jsx("select",{value:g,onChange:e=>V?.(Number(e.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(e=>jsxRuntime.jsx("option",{value:e,children:e},e))})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs("span",{children:["Page ",o+1," of ",S]}),jsxRuntime.jsx("button",{type:"button",disabled:o===0,onClick:()=>w?.(o-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsxRuntime.jsx("button",{type:"button",disabled:o>=S-1,onClick:()=>w?.(o+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}i(ee,"Table");exports.Table=ee;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import*as u from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var J=Object.defineProperty;var i=(s,h)=>J(s,"name",{value:h,configurable:true});function c(...s){return twMerge(clsx(s))}i(c,"cn");function ee({columns:s,data:h,rowKey:f,selectable:l=false,selectedKeys:j,onSelectionChange:m,searchable:L=false,searchPlaceholder:z="Search...",totalRows:B,page:o=0,pageSize:g=20,onPageChange:w,onPageSizeChange:V,actions:y,loading:W=false,emptyMessage:_="No data",className:q}){let[x,A]=u.useState(""),[p,D]=u.useState(null),N=u.useMemo(()=>{if(!x)return h;let e=x.toLowerCase();return h.filter(r=>s.some(d=>(d.cell?"":String(r[d.id]??"")).toLowerCase().includes(e)))},[h,x,s]),k=u.useMemo(()=>{if(!p)return N;let{column:e,direction:r}=p;return [...N].sort((d,n)=>{let C=d[e],T=n[e];if(C==null&&T==null)return 0;if(C==null)return 1;if(T==null)return -1;let P=String(C).localeCompare(String(T),void 0,{numeric:true});return r==="asc"?P:-P})},[N,p]),E=B??k.length,S=Math.max(1,Math.ceil(E/g)),b=w?k:k.slice(o*g,(o+1)*g),v=j??new Set,M=b.length>0&&b.every(e=>v.has(f(e)));function F(){m&&m(M?new Set:new Set(b.map(f)));}i(F,"toggleAll");function G(e){if(!m)return;let r=new Set(v);r.has(e)?r.delete(e):r.add(e),m(r);}i(G,"toggleRow");function H(e){D(r=>r?.column===e?r.direction==="asc"?{column:e,direction:"desc"}:null:{column:e,direction:"asc"});}i(H,"handleSort");let R=y?[...s,{id:"__actions",header:"",width:"auto"}]:s;return jsxs("div",{className:c("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",q),children:[(L||l)&&jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[L&&jsx("input",{type:"text",placeholder:z,value:x,onChange:e=>A(e.target.value),className:c("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),l&&v.size>0&&jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[v.size," selected"]})]}),jsx("div",{className:"overflow-x-auto",children:jsxs("table",{className:"w-full text-sm",children:[jsx("thead",{children:jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[l&&jsx("th",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:M,onChange:F,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),R.map(e=>jsx("th",{style:e.width?{width:e.width}:void 0,className:c("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",e.align==="center"&&"text-center",e.align==="right"&&"text-right",!e.align&&"text-left",e.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:e.sortable?()=>H(e.id):void 0,children:jsxs("span",{className:"inline-flex items-center gap-1",children:[e.header,e.sortable&&p?.column===e.id&&jsx("span",{className:"text-[10px]",children:p.direction==="asc"?"\u2191":"\u2193"})]})},e.id))]})}),jsx("tbody",{children:W?jsx("tr",{children:jsx("td",{colSpan:R.length+(l?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):b.length===0?jsx("tr",{children:jsx("td",{colSpan:R.length+(l?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:_})}):b.map(e=>{let r=f(e),d=v.has(r);return jsxs("tr",{className:c("border-b border-[var(--dash-border)] transition-colors",d?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[l&&jsx("td",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:d,onChange:()=>G(r),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),s.map(n=>jsx("td",{className:c("px-4 py-2.5",n.align==="center"&&"text-center",n.align==="right"&&"text-right"),children:n.cell?n.cell(e):String(e[n.id]??"")},n.id)),y&&jsx("td",{className:"px-4 py-2.5 text-right",children:y(e)})]},r)})})]})}),S>1&&jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{children:"Rows per page"}),jsx("select",{value:g,onChange:e=>V?.(Number(e.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(e=>jsx("option",{value:e,children:e},e))})]}),jsxs("div",{className:"flex items-center gap-2",children:[jsxs("span",{children:["Page ",o+1," of ",S]}),jsx("button",{type:"button",disabled:o===0,onClick:()=>w?.(o-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsx("button",{type:"button",disabled:o>=S-1,onClick:()=>w?.(o+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}i(ee,"Table");export{ee as Table};
|