@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,63 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var U=require('react'),classVarianceAuthority=require('class-variance-authority'),lucideReact=require('lucide-react'),shiki=require('shiki'),utils=require('@hanzo/ui-shadcn/lib/utils'),badge=require('@hanzo/ui-shadcn/badge'),button=require('@hanzo/ui-shadcn/button'),skeleton=require('@hanzo/ui-shadcn/skeleton'),jsxRuntime=require('react/jsx-runtime'),diff=require('@hanzo/ui-shadcn/code/diff'),snippet=require('@hanzo/ui-shadcn/code/snippet'),dropdownMenu=require('@hanzo/ui-shadcn/dropdown-menu'),scrollArea=require('@hanzo/ui-shadcn/scroll-area'),tabs=require('@hanzo/ui-shadcn/tabs'),toggleGroup=require('@hanzo/ui-shadcn/toggle-group'),Xt=require('@monaco-editor/react'),nextThemes=require('next-themes'),input=require('@hanzo/ui-shadcn/input'),separator=require('@hanzo/ui-shadcn/separator'),toggle=require('@hanzo/ui-shadcn/toggle');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}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 Xt__default=/*#__PURE__*/_interopDefault(Xt);var yt=Object.defineProperty;var x=(d,u)=>yt(d,"name",{value:u,configurable:true});var Be=classVarianceAuthority.cva("relative overflow-hidden rounded-lg border bg-muted/50",{variants:{theme:{dark:"bg-slate-950 border-slate-800",light:"bg-slate-50 border-slate-200",github:"bg-white border-slate-200","github-dark":"bg-slate-900 border-slate-700","vs-dark":"bg-slate-950 border-slate-800",monokai:"bg-slate-900 border-slate-700",dracula:"bg-slate-900 border-purple-800/30",nord:"bg-slate-800 border-slate-600"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{theme:"dark",size:"default"}}),Ve=U__namespace.memo(({line:d,lineNumber:u,showLineNumbers:l,isHighlighted:a=false,isDiffAdded:t=false,isDiffRemoved:s=false})=>jsxRuntime.jsxs("div",{className:utils.cn("group relative flex min-h-[1.5rem] items-center px-4 py-0.5",a&&"bg-blue-500/10 border-l-2 border-l-blue-500",t&&"bg-green-500/10 border-l-2 border-l-green-500",s&&"bg-red-500/10 border-l-2 border-l-red-500"),children:[l&&jsxRuntime.jsx("span",{className:"mr-4 inline-block w-8 select-none text-right text-xs text-muted-foreground",children:u}),(t||s)&&jsxRuntime.jsx("span",{className:"mr-2 select-none text-xs",children:t?"+":s?"-":" "}),jsxRuntime.jsx("div",{className:"flex-1 overflow-x-auto",dangerouslySetInnerHTML:{__html:d}})]}));Ve.displayName="CodeLine";var ze=U__namespace.forwardRef(({className:d,theme:u,size:l,code:a,language:t="text",filename:s,showLineNumbers:g=true,highlightLines:w=[],showCopyButton:L=true,maxHeight:E="400px",diff:X,...J},Y)=>{let[O,j]=U__namespace.useState(""),[H,M]=U__namespace.useState(false),[P,$]=U__namespace.useState(true),_={dark:"github-dark",light:"github-light",github:"github-light","github-dark":"github-dark","vs-dark":"dark-plus",monokai:"monokai",dracula:"dracula",nord:"nord"};U__namespace.useEffect(()=>{x(async()=>{$(true);try{let N=await shiki.codeToHtml(a,{lang:t,theme:_[u||"dark"],transformers:[{code(r){let c=r.children.find(b=>b.type==="element"&&b.tagName==="code");c&&"children"in c&&c.children&&(r.children=c.children);}}]}),k=document.createElement("div");k.innerHTML=N;let B=k.querySelector("code");j(B?.innerHTML||N);}catch(N){console.error("Failed to highlight code:",N),j(a);}finally{$(false);}},"highlightCode")();},[a,t,u]);let R=U__namespace.useCallback(async()=>{try{await navigator.clipboard.writeText(a),M(!0),setTimeout(()=>M(!1),2e3);}catch(C){console.error("Failed to copy code:",C);}},[a]),F=O.split(`
|
|
3
|
+
`);return jsxRuntime.jsxs("div",{ref:Y,"data-testid":"code-block",className:utils.cn(Be({theme:u,size:l,className:d})),...J,children:[(s||t||L)&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[s&&jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntime.jsx(lucideReact.FileText,{className:"h-3.5 w-3.5 text-muted-foreground"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:s})]}),t&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:t})]}),L&&jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",onClick:R,className:"h-8 w-8 p-0",children:[H?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"}),jsxRuntime.jsx("span",{className:"sr-only",children:H?"Copied":"Copy code"})]})]}),jsxRuntime.jsx("div",{className:"overflow-auto",style:{maxHeight:E},children:P?jsxRuntime.jsx("div",{className:"p-4 space-y-2",children:Array.from({length:10}).map((C,N)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[g&&jsxRuntime.jsx(skeleton.Skeleton,{"data-testid":"skeleton",className:"h-4 w-8"}),jsxRuntime.jsx(skeleton.Skeleton,{"data-testid":"skeleton",className:"h-4 flex-1"})]},N))}):jsxRuntime.jsx("div",{className:"font-mono",children:F.map((C,N)=>{let k=N+1,B=w.includes(k),r=X?.added?.includes(k),c=X?.removed?.includes(k);return jsxRuntime.jsx(Ve,{line:C,lineNumber:k,showLineNumbers:g,isHighlighted:B,isDiffAdded:r,isDiffRemoved:c},N)})})})]})});ze.displayName="CodeBlock";var Ae=classVarianceAuthority.cva("relative flex flex-col overflow-hidden rounded-lg border bg-background",{variants:{layout:{horizontal:"flex-col",vertical:"flex-row"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{layout:"horizontal",size:"default"}}),Oe=U__namespace.forwardRef(({className:d,layout:u,size:l,files:a,defaultView:t="side-by-side",showLineNumbers:s=true,showCopyButton:g=true,allowMerge:w=false,conflictMarkers:L=[],onMergeConflict:E,onFileSelect:X,height:J="600px",syncScroll:Y=true,...O},j)=>{let[H,M]=U__namespace.useState(t),[P,$]=U__namespace.useState(()=>a.length>=2?[a[0].id,a[1].id]:a.length>0?[a[0].id]:[]),[_,R]=U__namespace.useState({resolved:{},conflicts:L}),[F,C]=U__namespace.useState(false),N=U__namespace.useRef({}),k=U__namespace.useCallback((o,p)=>{Y&&Object.entries(N.current).forEach(([n,i])=>{n!==o&&i&&(i.scrollTop=p);});},[Y]),B=U__namespace.useCallback(async()=>{let o=P.map(p=>{let n=a.find(i=>i.id===p);return n?`=== ${n.filename} ===
|
|
4
|
+
${n.content}`:""}).join(`
|
|
5
|
+
|
|
6
|
+
`);try{await navigator.clipboard.writeText(o),C(!0),setTimeout(()=>C(!1),2e3);}catch(p){console.error("Failed to copy comparison:",p);}},[a,P]),r=U__namespace.useCallback((o,p)=>{R(n=>({...n,resolved:{...n.resolved,[o]:p}})),E?.(p);},[E]),c=U__namespace.useCallback((o,p)=>{let n=o.content.split(`
|
|
7
|
+
`),i=p.content.split(`
|
|
8
|
+
`),e=0,f=0,z=0,m=Math.max(n.length,i.length);for(let T=0;T<m;T++){let ce=n[T],ne=i[T];ce===void 0?e++:ne===void 0?f++:ce!==ne&&z++;}return {added:e,removed:f,modified:z}},[]),b=x(()=>jsxRuntime.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:a.map((o,p)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs(button.Button,{variant:P.includes(o.id)?"default":"outline",size:"sm",onClick:()=>{$(H==="three-way"?n=>n.includes(o.id)?n.filter(i=>i!==o.id):n.length<3?[...n,o.id]:[n[1],n[2],o.id]:n=>n.includes(o.id)?n.filter(i=>i!==o.id):n.length<2?[...n,o.id]:[n[1],o.id]),X?.(o.id);},className:"gap-2",children:[o.label||o.filename,o.version&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:o.version})]}),p<a.length-1&&H!=="three-way"&&jsxRuntime.jsx("span",{className:"text-muted-foreground",children:"vs"})]},o.id))}),"renderFileSelector"),V=x(()=>{let[o,p]=P.map(i=>a.find(e=>e.id===i)).filter(Boolean);if(!o||!p)return jsxRuntime.jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select two files to compare"});let n=c(o,p);return jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsx("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"Comparison"}),jsxRuntime.jsxs("div",{className:"flex items-center gap-3 text-xs",children:[jsxRuntime.jsxs("span",{className:"text-green-600",children:["+",n.added]}),jsxRuntime.jsxs("span",{className:"text-red-600",children:["-",n.removed]}),jsxRuntime.jsxs("span",{className:"text-yellow-600",children:["~",n.modified]})]})]})}),jsxRuntime.jsx("div",{className:"flex-1 min-h-0",children:jsxRuntime.jsx(diff.CodeDiff,{oldCode:o.content,newCode:p.content,language:o.language,oldFilename:o.filename,newFilename:p.filename,showLineNumbers:s,showCopyButton:false,maxHeight:"100%",defaultView:"split",className:"border-0 rounded-none h-full"})})]})},"renderSideBySide"),G=x(()=>{let[o,p]=P.map(n=>a.find(i=>i.id===n)).filter(Boolean);return !o||!p?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select two files to compare"}):jsxRuntime.jsx(diff.CodeDiff,{oldCode:o.content,newCode:p.content,language:o.language,filename:`${o.filename} \u2192 ${p.filename}`,showLineNumbers:s,showCopyButton:false,maxHeight:"100%",defaultView:"unified",className:"border-0 rounded-none"})},"renderUnified"),Q=x(()=>{let[o,p,n]=P.map(i=>a.find(e=>e.id===i)).filter(Boolean);return !o||!p||!n?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select three files for three-way merge (base, current, incoming)"}):jsxRuntime.jsxs("div",{className:"grid grid-cols-3 gap-0 h-full",children:[jsxRuntime.jsxs("div",{className:"border-r",children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-muted/30",children:jsxRuntime.jsxs("span",{className:"text-sm font-medium",children:["Base (",o.filename,")"]})}),jsxRuntime.jsx(scrollArea.ScrollArea,{className:"h-full",ref:i=>{N.current.base=i;},onScrollCapture:i=>{let e=i.target;k("base",e.scrollTop);},children:jsxRuntime.jsx(snippet.CodeSnippet,{code:o.content,language:o.language,showLineNumbers:s,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]}),jsxRuntime.jsxs("div",{className:"border-r",children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-blue-500/10",children:jsxRuntime.jsxs("span",{className:"text-sm font-medium text-blue-600 dark:text-blue-400",children:["Current (",p.filename,")"]})}),jsxRuntime.jsx(scrollArea.ScrollArea,{className:"h-full",ref:i=>{N.current.current=i;},onScrollCapture:i=>{let e=i.target;k("current",e.scrollTop);},children:jsxRuntime.jsx(snippet.CodeSnippet,{code:p.content,language:p.language,showLineNumbers:s,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-green-500/10",children:jsxRuntime.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["Incoming (",n.filename,")"]})}),jsxRuntime.jsx(scrollArea.ScrollArea,{className:"h-full",ref:i=>{N.current.incoming=i;},onScrollCapture:i=>{let e=i.target;k("incoming",e.scrollTop);},children:jsxRuntime.jsx(snippet.CodeSnippet,{code:n.content,language:n.language,showLineNumbers:s,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]})]})},"renderThreeWay"),D=x(()=>!w||_.conflicts.length===0?null:jsxRuntime.jsx("div",{className:"border-t bg-muted/30",children:jsxRuntime.jsxs("div",{className:"px-4 py-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"Merge Conflicts"}),jsxRuntime.jsx(badge.Badge,{variant:"destructive",className:"text-xs",children:_.conflicts.length})]}),jsxRuntime.jsx("div",{className:"mt-2 space-y-2",children:_.conflicts.map((o,p)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[jsxRuntime.jsxs("span",{children:["Lines ",o.startLine,"-",o.endLine]}),jsxRuntime.jsxs("div",{className:"flex gap-1",children:[jsxRuntime.jsx(button.Button,{variant:"outline",size:"sm",onClick:()=>r(p,"current"),className:"h-6 text-xs",children:"Keep Current"}),jsxRuntime.jsx(button.Button,{variant:"outline",size:"sm",onClick:()=>r(p,"incoming"),className:"h-6 text-xs",children:"Accept Incoming"})]})]},p))})]})}),"renderMergeConflicts");return jsxRuntime.jsxs("div",{ref:j,className:utils.cn(Ae({layout:u,size:l}),d),style:{height:J},...O,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxRuntime.jsx("div",{className:"flex items-center gap-4",children:b()}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(tabs.Tabs,{value:H,onValueChange:o=>M(o),children:jsxRuntime.jsxs(tabs.TabsList,{className:"grid w-full grid-cols-3",children:[jsxRuntime.jsx(tabs.TabsTrigger,{value:"side-by-side",className:"text-xs",children:"Side by Side"}),jsxRuntime.jsx(tabs.TabsTrigger,{value:"unified",className:"text-xs",children:"Unified"}),jsxRuntime.jsx(tabs.TabsTrigger,{value:"three-way",className:"text-xs",children:"Three-way"})]})}),g&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:B,className:"h-8 w-8 p-0",children:F?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"})}),jsxRuntime.jsxs(dropdownMenu.DropdownMenu,{children:[jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger,{asChild:true,children:jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.MoreHorizontal,{className:"h-3.5 w-3.5"})})}),jsxRuntime.jsxs(dropdownMenu.DropdownMenuContent,{align:"end",children:[jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem,{onClick:()=>$([]),className:"gap-2",children:[jsxRuntime.jsx(lucideReact.RotateCcw,{className:"h-4 w-4"}),"Reset Selection"]}),jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem,{className:"gap-2",children:[jsxRuntime.jsx(lucideReact.Settings,{className:"h-4 w-4"}),"Settings"]})]})]})]})]}),jsxRuntime.jsxs("div",{className:"flex-1 min-h-0",children:[H==="side-by-side"&&V(),H==="unified"&&G(),H==="three-way"&&Q()]}),D()]})});Oe.displayName="CodeCompare";var Je=classVarianceAuthority.cva("relative overflow-hidden rounded-lg border bg-muted/50",{variants:{theme:{dark:"bg-slate-950 border-slate-800",light:"bg-slate-50 border-slate-200",github:"bg-white border-slate-200","github-dark":"bg-slate-900 border-slate-700"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{theme:"dark",size:"default"}}),ye=U__namespace.memo(({change:d,showLineNumbers:u,isUnified:l=false,highlightedContent:a})=>{let t=x(()=>{let g="group relative flex min-h-[1.5rem] items-center py-0.5";if(l)switch(d.type){case "add":return utils.cn(g,"bg-green-500/10 border-l-2 border-l-green-500");case "remove":return utils.cn(g,"bg-red-500/10 border-l-2 border-l-red-500");default:return utils.cn(g,"hover:bg-muted/50")}return utils.cn(g,"hover:bg-muted/50")},"getLineClasses"),s=x(()=>{if(!l)return null;switch(d.type){case "add":return jsxRuntime.jsx(lucideReact.Plus,{className:"h-3 w-3 text-green-500 mr-2 flex-shrink-0"});case "remove":return jsxRuntime.jsx(lucideReact.Minus,{className:"h-3 w-3 text-red-500 mr-2 flex-shrink-0"});default:return jsxRuntime.jsx("span",{className:"w-3 mr-2 flex-shrink-0"})}},"getLinePrefix");return jsxRuntime.jsx("div",{className:t(),children:jsxRuntime.jsxs("div",{className:"flex items-center px-4 w-full",children:[u&&jsxRuntime.jsx("div",{className:"flex items-center gap-2 mr-4",children:l?jsxRuntime.jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:d.lineNumber}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:d.oldLineNumber||""}),jsxRuntime.jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:d.newLineNumber||""})]})}),s(),jsxRuntime.jsx("div",{className:"flex-1 overflow-x-auto font-mono",dangerouslySetInnerHTML:{__html:a||d.content}})]})})});ye.displayName="DiffLine";function Ue(d,u){let l=d.split(`
|
|
9
|
+
`),a=u.split(`
|
|
10
|
+
`),t=[],s=0,g=0,w=1;for(;s<l.length||g<a.length;){let L=l[s],E=a[g];s>=l.length?(t.push({type:"add",lineNumber:w++,content:E,newLineNumber:g+1}),g++):g>=a.length?(t.push({type:"remove",lineNumber:w++,content:L,oldLineNumber:s+1}),s++):L===E?(t.push({type:"unchanged",lineNumber:w++,content:L,oldLineNumber:s+1,newLineNumber:g+1}),s++,g++):(t.push({type:"remove",lineNumber:w++,content:L,oldLineNumber:s+1}),t.push({type:"add",lineNumber:w++,content:E,newLineNumber:g+1}),s++,g++);}return t}x(Ue,"generateDiff");var Xe=U__namespace.forwardRef(({className:d,theme:u,size:l,oldCode:a,newCode:t,language:s="text",filename:g,oldFilename:w,newFilename:L,showLineNumbers:E=true,showCopyButton:X=true,maxHeight:J="500px",defaultView:Y="unified",collapseUnchanged:O=false,contextLines:j=3,...H},M)=>{let[P,$]=U__namespace.useState(Y),[_,R]=U__namespace.useState(false),[F,C]=U__namespace.useState(true),[N,k]=U__namespace.useState(""),[B,r]=U__namespace.useState(""),[c,b]=U__namespace.useState([]),V={dark:"github-dark",light:"github-light",github:"github-light","github-dark":"github-dark"};U__namespace.useEffect(()=>{x(async()=>{C(true);try{let[i,e]=await Promise.all([shiki.codeToHtml(a,{lang:s,theme:V[u||"dark"]}),shiki.codeToHtml(t,{lang:s,theme:V[u||"dark"]})]),f=x(m=>{let T=document.createElement("div");return T.innerHTML=m,T.querySelector("code")?.innerHTML||m},"extractContent");k(f(i)),r(f(e));let z=Ue(a,t);b(z);}catch(i){console.error("Failed to highlight code:",i),k(a),r(t),b(Ue(a,t));}finally{C(false);}},"highlightCode")();},[a,t,s,u]);let G=U__namespace.useCallback(async()=>{try{let n=P==="unified"?c.map(i=>`${i.type==="add"?"+":i.type==="remove"?"-":" "}${i.content}`).join(`
|
|
11
|
+
`):`--- ${w||"old"}
|
|
12
|
+
+++ ${L||"new"}
|
|
13
|
+
${a}
|
|
14
|
+
|
|
15
|
+
${t}`;await navigator.clipboard.writeText(n),R(!0),setTimeout(()=>R(!1),2e3);}catch(n){console.error("Failed to copy diff:",n);}},[c,P,a,t,w,L]),Q=U__namespace.useMemo(()=>{if(!O)return c;let n=[],i=0;for(;i<c.length;){let e=c[i];if(e.type!=="unchanged"){n.push(e),i++;continue}let f=i;for(;i<c.length&&c[i].type==="unchanged";)i++;let z=i-f;if(z<=j*2)for(let m=f;m<i;m++)n.push(c[m]);else {for(let m=f;m<f+j;m++)n.push(c[m]);n.push({type:"unchanged",lineNumber:-1,content:`... ${z-j*2} unchanged lines ...`});for(let m=i-j;m<i;m++)n.push(c[m]);}}return n},[c,O,j]),D=U__namespace.useMemo(()=>{let n=c.filter(e=>e.type==="add").length,i=c.filter(e=>e.type==="remove").length;return {additions:n,deletions:i}},[c]),o=x(()=>{let n=N.split(`
|
|
16
|
+
`),i=B.split(`
|
|
17
|
+
`);return jsxRuntime.jsx("div",{className:"font-mono",children:Q.map((e,f)=>{if(e.lineNumber===-1)return jsxRuntime.jsx("div",{className:"flex items-center justify-center py-2 text-muted-foreground bg-muted/30",children:jsxRuntime.jsx("span",{className:"text-xs",children:e.content})},f);let z=e.content;return e.type==="add"&&e.newLineNumber?z=i[e.newLineNumber-1]||e.content:(e.type==="remove"&&e.oldLineNumber||e.type==="unchanged"&&e.oldLineNumber)&&(z=n[e.oldLineNumber-1]||e.content),jsxRuntime.jsx(ye,{change:e,showLineNumbers:E,isUnified:true,highlightedContent:z},f)})})},"renderUnifiedView"),p=x(()=>{let n=N.split(`
|
|
18
|
+
`),i=B.split(`
|
|
19
|
+
`);return jsxRuntime.jsxs("div",{className:"grid grid-cols-2 gap-0",children:[jsxRuntime.jsxs("div",{className:"border-r",children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-red-500/10",children:jsxRuntime.jsx("span",{className:"text-sm font-medium text-red-600 dark:text-red-400",children:w||g||"Old"})}),jsxRuntime.jsx("div",{className:"font-mono",children:n.map((e,f)=>jsxRuntime.jsx(ye,{change:{type:"remove",lineNumber:f+1,content:e,oldLineNumber:f+1},showLineNumbers:E,highlightedContent:e},`old-${f}`))})]}),jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("div",{className:"border-b px-4 py-2 bg-green-500/10",children:jsxRuntime.jsx("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:L||g||"New"})}),jsxRuntime.jsx("div",{className:"font-mono",children:i.map((e,f)=>jsxRuntime.jsx(ye,{change:{type:"add",lineNumber:f+1,content:e,newLineNumber:f+1},showLineNumbers:E,highlightedContent:e},`new-${f}`))})]})]})},"renderSplitView");return jsxRuntime.jsxs("div",{ref:M,className:utils.cn(Je({theme:u,size:l,className:d})),...H,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(lucideReact.GitCompare,{className:"h-4 w-4 text-muted-foreground"}),g&&jsxRuntime.jsx("span",{className:"text-sm font-medium",children:g}),s&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:s})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[jsxRuntime.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntime.jsx(lucideReact.Plus,{className:"h-3 w-3 text-green-500"}),D.additions]}),jsxRuntime.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntime.jsx(lucideReact.Minus,{className:"h-3 w-3 text-red-500"}),D.deletions]})]})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs(toggleGroup.ToggleGroup,{type:"single",value:P,onValueChange:n=>n&&$(n),size:"sm",children:[jsxRuntime.jsx(toggleGroup.ToggleGroupItem,{value:"unified","aria-label":"Unified view",children:jsxRuntime.jsx(lucideReact.Square,{className:"h-3 w-3"})}),jsxRuntime.jsx(toggleGroup.ToggleGroupItem,{value:"split","aria-label":"Split view",children:jsxRuntime.jsx(lucideReact.SplitSquareHorizontal,{className:"h-3 w-3"})})]}),X&&jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",onClick:G,className:"h-8 w-8 p-0",children:[_?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"}),jsxRuntime.jsx("span",{className:"sr-only",children:_?"Copied":"Copy diff"})]})]})]}),jsxRuntime.jsx("div",{className:"overflow-auto",style:{maxHeight:J},children:F?jsxRuntime.jsx("div",{className:"p-4 space-y-2",children:Array.from({length:10}).map((n,i)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[E&&jsxRuntime.jsx(skeleton.Skeleton,{className:"h-4 w-8"}),jsxRuntime.jsx(skeleton.Skeleton,{className:"h-4 flex-1"})]},i))}):P==="unified"?o():p()})]})});Xe.displayName="CodeDiff";var oa=["javascript","typescript","python","java","csharp","cpp","c","go","rust","ruby","php","swift","kotlin","dart","html","css","scss","json","xml","yaml","sql","markdown","shell","plaintext"],Qe={javascript:"JavaScript",typescript:"TypeScript",python:"Python",java:"Java",csharp:"C#",cpp:"C++",c:"C",go:"Go",rust:"Rust",ruby:"Ruby",php:"PHP",swift:"Swift",kotlin:"Kotlin",dart:"Dart",html:"HTML",css:"CSS",scss:"SCSS",json:"JSON",xml:"XML",yaml:"YAML",sql:"SQL",markdown:"Markdown",shell:"Shell",plaintext:"Plain Text"},et=U__namespace.forwardRef(({value:d,defaultValue:u="",language:l="javascript",height:a="400px",theme:t="auto",onChange:s,onMount:g,readOnly:w=false,lineNumbers:L=true,minimap:E=false,wordWrap:X="on",fontSize:J=14,className:Y,showCopyButton:O=true,showLanguageSelector:j=true,availableLanguages:H=oa},M)=>{let{theme:P}=nextThemes.useTheme(),[$,_]=U__namespace.useState(l),[R,F]=U__namespace.useState(false),[C,N]=U__namespace.useState(d||u);U__namespace.useEffect(()=>{d!==void 0&&N(d);},[d]);let k=U__namespace.useCallback(async()=>{try{await navigator.clipboard.writeText(C),F(!0),setTimeout(()=>F(!1),2e3);}catch(c){console.error("Failed to copy:",c);}},[C]),B=U__namespace.useCallback((c,b)=>{N(c||""),s&&s(c,b);},[s]),r=U__namespace.useMemo(()=>t==="auto"?P==="dark"?"vs-dark":"light":t==="dark"?"vs-dark":"light",[t,P]);return jsxRuntime.jsxs("div",{ref:M,className:utils.cn("relative overflow-hidden rounded-md border bg-background",Y),children:[(j||O)&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b bg-muted/50 px-3 py-2",children:[j&&jsxRuntime.jsxs(dropdownMenu.DropdownMenu,{children:[jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger,{asChild:true,children:jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",className:"h-8 gap-1 px-2 text-xs font-mono",children:[Qe[$]||$,jsxRuntime.jsx(lucideReact.ChevronDown,{className:"h-3 w-3"})]})}),jsxRuntime.jsx(dropdownMenu.DropdownMenuContent,{align:"start",className:"max-h-80 overflow-auto",children:H.map(c=>jsxRuntime.jsx(dropdownMenu.DropdownMenuItem,{onClick:()=>_(c),className:"font-mono text-xs",children:Qe[c]||c},c))})]}),O&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",className:"h-8 gap-1.5 px-2 text-xs",onClick:k,disabled:!C,children:R?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Check,{className:"h-3 w-3"}),"Copied!"]}):jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(lucideReact.Copy,{className:"h-3 w-3"}),"Copy"]})})]}),jsxRuntime.jsx(Xt__default.default,{height:a,defaultLanguage:l,language:$,value:C,defaultValue:u,theme:r,onChange:B,onMount:g,options:{readOnly:w,lineNumbers:L?"on":"off",minimap:{enabled:E},wordWrap:X,fontSize:J,scrollBeyondLastLine:false,automaticLayout:true,tabSize:2,insertSpaces:true,formatOnPaste:true,formatOnType:true,scrollbar:{vertical:"auto",horizontal:"auto",verticalScrollbarSize:10,horizontalScrollbarSize:10},padding:{top:16,bottom:16}}})]})});et.displayName="CodeEditor";var st=classVarianceAuthority.cva("relative flex flex-col overflow-hidden rounded-lg border bg-background",{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),ya=x((d,u=false)=>{if(u)return lucideReact.Folder;switch(d.split(".").pop()?.toLowerCase()){case "js":case "jsx":case "ts":case "tsx":case "vue":case "svelte":return lucideReact.FileCode;case "json":case "xml":case "yaml":case "yml":case "toml":case "ini":return lucideReact.FileText;case "png":case "jpg":case "jpeg":case "gif":case "svg":case "webp":case "ico":return lucideReact.FileImage;default:return lucideReact.File}},"getFileIcon"),wa=x(d=>{if(!d)return "";let u=["B","KB","MB","GB"],l=d,a=0;for(;l>=1024&&a<u.length-1;)l/=1024,a++;return `${l.toFixed(1)} ${u[a]}`},"formatFileSize"),Na=x(d=>{if(!d)return "";let l=new Date().getTime()-d.getTime(),a=Math.floor(l/(1e3*60*60*24));return a===0?"Today":a===1?"Yesterday":a<7?`${a} days ago`:a<30?`${Math.floor(a/7)} weeks ago`:a<365?`${Math.floor(a/30)} months ago`:`${Math.floor(a/365)} years ago`},"formatModifiedDate"),rt=U__namespace.forwardRef(({className:d,size:u,files:l,onFileSelect:a,onFolderToggle:t,selectedFile:s,showSearch:g=true,showFileIcons:w=true,showFileSize:L=false,showModifiedDate:E=false,height:X="400px",defaultExpanded:J=[],searchPlaceholder:Y="Search files...",emptyMessage:O="No files found",...j},H)=>{let[M,P]=U__namespace.useState(""),[$,_]=U__namespace.useState(new Set(J)),R=U__namespace.useCallback(r=>r.map(c=>({...c,isExpanded:$.has(c.id),children:c.children?R(c.children):void 0})),[$]),F=U__namespace.useCallback((r,c)=>{if(!c)return r;let b=[];for(let V of r)if(V.name.toLowerCase().includes(c.toLowerCase()))b.push(V);else if(V.type==="folder"&&V.children){let G=F(V.children,c);G.length>0&&b.push({...V,children:G,isExpanded:true});}return b},[]),C=U__namespace.useMemo(()=>{let r=R(l);return M?F(r,M):r},[l,M,R,F]),N=U__namespace.useCallback(r=>{_(c=>{let b=new Set(c);return b.has(r.id)?b.delete(r.id):b.add(r.id),b}),t?.(r);},[t]),k=U__namespace.useCallback((r,c=0)=>{let b=w?ya(r.name,r.type==="folder"):null,V=r.type==="folder"&&r.isExpanded?lucideReact.FolderOpen:lucideReact.Folder,G=s===r.id||s===r.path;return jsxRuntime.jsxs("div",{children:[jsxRuntime.jsxs("div",{className:utils.cn("flex items-center gap-2 px-2 py-1 hover:bg-muted/50 cursor-pointer transition-colors",G&&"bg-muted","rounded-sm"),style:{paddingLeft:`${c*16+8}px`},onClick:()=>{r.type==="folder"?N(r):a?.(r);},children:[r.type==="folder"&&jsxRuntime.jsx("div",{className:"w-4 h-4 flex items-center justify-center",children:r.isExpanded?jsxRuntime.jsx(lucideReact.ChevronDown,{className:"h-3 w-3"}):jsxRuntime.jsx(lucideReact.ChevronRight,{className:"h-3 w-3"})}),w&&jsxRuntime.jsx("div",{className:"w-4 h-4 flex items-center justify-center flex-shrink-0",children:r.type==="folder"?jsxRuntime.jsx(V,{className:"h-4 w-4 text-blue-500"}):b?jsxRuntime.jsx(b,{className:"h-4 w-4 text-muted-foreground"}):null}),jsxRuntime.jsx("span",{className:"flex-1 truncate",children:r.name}),L&&r.type==="file"&&r.size&&jsxRuntime.jsx("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:wa(r.size)}),E&&r.modified&&jsxRuntime.jsx("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:Na(r.modified)})]}),r.type==="folder"&&r.isExpanded&&r.children&&jsxRuntime.jsx("div",{children:r.children.map(Q=>k(Q,c+1))})]},r.id)},[w,L,E,s,N,a]),B=x(()=>{P("");},"clearSearch");return jsxRuntime.jsxs("div",{ref:H,className:utils.cn(st({size:u}),d),style:{height:X},...j,children:[g&&jsxRuntime.jsx("div",{className:"flex items-center gap-2 border-b px-4 py-2",children:jsxRuntime.jsxs("div",{className:"relative flex-1",children:[jsxRuntime.jsx(lucideReact.Search,{className:"absolute left-2 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),jsxRuntime.jsx(input.Input,{value:M,onChange:r=>P(r.target.value),placeholder:Y,className:"pl-8 pr-8 h-8"}),M&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:B,className:"absolute right-1 top-1/2 transform -translate-y-1/2 h-6 w-6 p-0",children:jsxRuntime.jsx(lucideReact.X,{className:"h-3 w-3"})})]})}),jsxRuntime.jsx(scrollArea.ScrollArea,{className:"flex-1",children:jsxRuntime.jsx("div",{className:"p-2",children:C.length===0?jsxRuntime.jsx("div",{className:"flex items-center justify-center h-24 text-muted-foreground",children:M?`No files match "${M}"`:O}):jsxRuntime.jsx("div",{className:"space-y-0.5",children:C.map(r=>k(r,0))})})}),jsxRuntime.jsxs("div",{className:"border-t px-4 py-2 text-xs text-muted-foreground",children:[(()=>{let r=x(G=>{let Q=0,D=0;for(let o of G)if(o.type==="file")Q++;else if(D++,o.children){let p=r(o.children);Q+=p.files,D+=p.folders;}return {files:Q,folders:D}},"countFiles"),{files:c,folders:b}=r(C),V=[];return c>0&&V.push(`${c} file${c===1?"":"s"}`),b>0&&V.push(`${b} folder${b===1?"":"s"}`),V.join(", ")||"Empty"})(),M&&jsxRuntime.jsx("span",{children:" (filtered)"})]})]})});rt.displayName="CodeExplorer";var mt=classVarianceAuthority.cva("relative overflow-hidden rounded-lg border bg-background",{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),Ia=x(d=>{let u=d.find(s=>s.type==="html"),l=d.filter(s=>s.type==="css"),a=d.filter(s=>s.type==="js"),t=u?.content||"<div>No HTML file provided</div>";if(l.length>0&&(t=`<style>${l.map(g=>g.content).join(`
|
|
20
|
+
`)}</style>
|
|
21
|
+
${t}`),a.length>0){let s=a.map(g=>g.content).join(`
|
|
22
|
+
`);t=`${t}
|
|
23
|
+
<script>${s}</script>`;}return t},"runHTMLCode"),ja=`
|
|
24
|
+
<script>
|
|
25
|
+
const originalConsole = window.console;
|
|
26
|
+
const logs = [];
|
|
27
|
+
|
|
28
|
+
['log', 'warn', 'error', 'info'].forEach(method => {
|
|
29
|
+
window.console[method] = function(...args) {
|
|
30
|
+
logs.push({
|
|
31
|
+
type: method,
|
|
32
|
+
content: args.map(arg =>
|
|
33
|
+
typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)
|
|
34
|
+
).join(' '),
|
|
35
|
+
timestamp: Date.now()
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// Also call original console method
|
|
39
|
+
originalConsole[method].apply(originalConsole, arguments);
|
|
40
|
+
|
|
41
|
+
// Send to parent
|
|
42
|
+
window.parent.postMessage({
|
|
43
|
+
type: 'console',
|
|
44
|
+
data: logs[logs.length - 1]
|
|
45
|
+
}, '*');
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
window.addEventListener('error', (e) => {
|
|
50
|
+
window.parent.postMessage({
|
|
51
|
+
type: 'error',
|
|
52
|
+
data: {
|
|
53
|
+
type: 'error',
|
|
54
|
+
content: e.message + ' at ' + e.filename + ':' + e.lineno,
|
|
55
|
+
timestamp: Date.now()
|
|
56
|
+
}
|
|
57
|
+
}, '*');
|
|
58
|
+
});
|
|
59
|
+
</script>
|
|
60
|
+
`,pt=U__namespace.forwardRef(({className:d,size:u,files:l,defaultFile:a,showPreview:t=true,showConsole:s=true,autoRun:g=false,maxHeight:w="600px",previewHeight:L="300px",consoleHeight:E="150px",allowFullscreen:X=true,customRunner:J,...Y},O)=>{let [j,H]=U__namespace.useState(a||l[0]?.filename||""),[M,P]=U__namespace.useState(""),[$,_]=U__namespace.useState(false),[R,F]=U__namespace.useState([]),[C,N]=U__namespace.useState(t),[k,B]=U__namespace.useState(s),[r,c]=U__namespace.useState(false),[b,V]=U__namespace.useState({}),G=U__namespace.useRef(null);l.find(e=>e.filename===j)||l[0];U__namespace.useEffect(()=>{let e=x(f=>{(f.data?.type==="console"||f.data?.type==="error")&&F(z=>[...z,f.data.data]);},"handleMessage");return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[]);let D=U__namespace.useCallback(async()=>{_(true),F([]);try{let e;if(J?e=await J(l):e=Ia(l),e=ja+e,P(e),G.current){let f=G.current.contentDocument;f&&(f.open(),f.write(e),f.close());}}catch(e){F([{type:"error",content:e instanceof Error?e.message:String(e),timestamp:Date.now()}]);}finally{_(false);}},[l,J]);U__namespace.useEffect(()=>{if(g){let e=setTimeout(D,1e3);return ()=>clearTimeout(e)}},[l,g,D]);let o=U__namespace.useCallback(async e=>{let f=l.find(z=>z.filename===e);if(f)try{await navigator.clipboard.writeText(f.content),V(z=>({...z,[e]:!0})),setTimeout(()=>{V(z=>({...z,[e]:!1}));},2e3);}catch(z){console.error("Failed to copy code:",z);}},[l]),p=x(()=>{F([]);},"clearConsole"),n=x(()=>jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(lucideReact.Terminal,{className:"h-4 w-4"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"Console"}),R.length>0&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:R.length})]}),jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:p,className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.X,{className:"h-3.5 w-3.5"})})]}),jsxRuntime.jsx("div",{className:"flex-1 overflow-auto p-2 space-y-1 font-mono text-xs",children:R.length===0?jsxRuntime.jsx("div",{className:"text-muted-foreground italic",children:"No output"}):R.map((e,f)=>jsxRuntime.jsxs("div",{className:utils.cn("flex items-start gap-2 p-2 rounded",e.type==="error"&&"bg-red-500/10 text-red-600 dark:text-red-400",e.type==="log"&&"bg-blue-500/10 text-blue-600 dark:text-blue-400",e.type==="output"&&"bg-green-500/10 text-green-600 dark:text-green-400"),children:[jsxRuntime.jsx("span",{className:"text-xs text-muted-foreground",children:new Date(e.timestamp).toLocaleTimeString()}),jsxRuntime.jsx("pre",{className:"flex-1 whitespace-pre-wrap break-words",children:e.content})]},f))})]}),"renderConsole"),i=r?"fixed inset-0 z-50 bg-background":"";return jsxRuntime.jsxs("div",{ref:O,className:utils.cn(mt({size:u}),i,d),style:{maxHeight:r?"100vh":w},...Y,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxRuntime.jsx(tabs.Tabs,{value:j,onValueChange:H,className:"flex-1",children:jsxRuntime.jsx(tabs.TabsList,{className:"h-auto p-0 bg-transparent",children:l.map(e=>jsxRuntime.jsxs(tabs.TabsTrigger,{value:e.filename,className:"relative flex items-center gap-2 data-[state=active]:bg-muted",children:[jsxRuntime.jsx("span",{children:e.filename}),jsxRuntime.jsx(badge.Badge,{variant:"outline",className:"text-xs",children:e.language}),jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:f=>{f.stopPropagation(),o(e.filename);},className:"h-6 w-6 p-0 opacity-0 group-hover:opacity-100",children:b[e.filename]?jsxRuntime.jsx(lucideReact.Check,{className:"h-3 w-3 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3 w-3"})})]},e.filename))})}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(toggle.Toggle,{pressed:C,onPressedChange:N,"aria-label":"Toggle preview",size:"sm",children:C?jsxRuntime.jsx(lucideReact.Eye,{className:"h-4 w-4"}):jsxRuntime.jsx(lucideReact.EyeOff,{className:"h-4 w-4"})}),jsxRuntime.jsx(toggle.Toggle,{pressed:k,onPressedChange:B,"aria-label":"Toggle console",size:"sm",children:jsxRuntime.jsx(lucideReact.Terminal,{className:"h-4 w-4"})}),jsxRuntime.jsxs(button.Button,{variant:"outline",size:"sm",onClick:D,disabled:$,className:"gap-2",children:[$?jsxRuntime.jsx(lucideReact.RefreshCw,{className:"h-4 w-4 animate-spin"}):jsxRuntime.jsx(lucideReact.Play,{className:"h-4 w-4"}),"Run"]}),X&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:()=>c(!r),className:"h-8 w-8 p-0",children:r?jsxRuntime.jsx(lucideReact.Square,{className:"h-4 w-4"}):jsxRuntime.jsx(lucideReact.Settings,{className:"h-4 w-4"})})]})]}),jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsx("div",{className:"flex-1 min-h-0",children:jsxRuntime.jsx(tabs.Tabs,{value:j,onValueChange:H,children:l.map(e=>jsxRuntime.jsx(tabs.TabsContent,{value:e.filename,className:"m-0 h-full",children:jsxRuntime.jsx(snippet.CodeSnippet,{code:e.content,language:e.language,showLineNumbers:true,showCopyButton:false,showHeader:false,maxHeight:"100%",className:"border-0 rounded-none"})},e.filename))})}),(C||k)&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(separator.Separator,{}),jsxRuntime.jsxs("div",{className:"flex flex-col lg:flex-row min-h-0",children:[C&&jsxRuntime.jsxs("div",{className:"flex-1 min-h-0 border-r last:border-r-0",style:{height:L},children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 border-b px-4 py-2 bg-muted/30",children:[jsxRuntime.jsx(lucideReact.Eye,{className:"h-4 w-4"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"Preview"}),R.filter(e=>e.type==="error").length>0&&jsxRuntime.jsx(lucideReact.AlertTriangle,{className:"h-4 w-4 text-red-500"})]}),jsxRuntime.jsx("iframe",{ref:G,className:"w-full h-full bg-white",sandbox:"allow-scripts allow-same-origin",srcDoc:M})]}),k&&jsxRuntime.jsx("div",{className:"flex-1 min-h-0",style:{height:E},children:n()})]})]})]}),r&&jsxRuntime.jsx("div",{className:"absolute inset-0 bg-black/50",onClick:()=>c(false)})]})});pt.displayName="CodePreview";var Le=classVarianceAuthority.cva("relative group",{variants:{variant:{default:"rounded-lg border bg-muted/50",inline:"inline-block rounded-md bg-muted px-2 py-1",minimal:"bg-transparent"},theme:{dark:"bg-slate-950 border-slate-800",light:"bg-slate-50 border-slate-200",github:"bg-white border-slate-200","github-dark":"bg-slate-900 border-slate-700",terminal:"bg-black border-green-500/30 text-green-400",retro:"bg-amber-50 border-amber-200 text-amber-900"},size:{xs:"text-xs",sm:"text-sm",default:"text-sm",lg:"text-base"}},defaultVariants:{variant:"default",theme:"dark",size:"default"}}),Me=U__namespace.forwardRef(({className:d,variant:u,theme:l,size:a,code:t,language:s="text",filename:g,showLineNumbers:w=false,highlightLines:L=[],showCopyButton:E=true,showLanguageBadge:X=true,showHeader:J=true,maxHeight:Y,expandable:O=false,collapsedHeight:j="200px",wrapLines:H=false,startLineNumber:M=1,...P},$)=>{let[_,R]=U__namespace.useState(""),[F,C]=U__namespace.useState(false),[N,k]=U__namespace.useState(true),[B,r]=U__namespace.useState(!O),c={dark:"github-dark",light:"github-light",github:"github-light","github-dark":"github-dark",terminal:"github-dark",retro:"github-light"};U__namespace.useEffect(()=>{x(async()=>{k(true);try{let o=Object.keys(shiki.bundledLanguages).includes(s),p=await shiki.codeToHtml(t,{lang:o?s:"text",theme:c[l||"dark"]}),n=document.createElement("div");n.innerHTML=p;let i=n.querySelector("code");R(i?.innerHTML||p);}catch(o){console.error("Failed to highlight code:",o);let p=t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");R(p);}finally{k(false);}},"highlightCode")();},[t,s,l]);let b=U__namespace.useCallback(async()=>{try{await navigator.clipboard.writeText(t),C(!0),setTimeout(()=>C(!1),2e3);}catch(D){console.error("Failed to copy code:",D);}},[t]),V=_.split(`
|
|
61
|
+
`).filter((D,o,p)=>D.trim()!==""||o<p.length-1),G=x(()=>jsxRuntime.jsx("code",{className:utils.cn(Le({variant:u,theme:l,size:a}),"font-mono",d),dangerouslySetInnerHTML:{__html:_}}),"renderInline"),Q=x(()=>jsxRuntime.jsxs("div",{ref:$,className:utils.cn(Le({variant:u,theme:l,size:a}),"overflow-hidden",d),...P,children:[J&&(g||s||E||O)&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[g&&jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntime.jsx(lucideReact.FileText,{className:"h-3.5 w-3.5 text-muted-foreground"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:g})]}),X&&s&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:s})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[O&&jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",onClick:()=>r(!B),className:"h-8 w-8 p-0",children:[B?jsxRuntime.jsx(lucideReact.Minimize2,{className:"h-3.5 w-3.5"}):jsxRuntime.jsx(lucideReact.Maximize2,{className:"h-3.5 w-3.5"}),jsxRuntime.jsx("span",{className:"sr-only",children:B?"Collapse":"Expand"})]}),E&&jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",onClick:b,className:"h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity",children:[F?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"}),jsxRuntime.jsx("span",{className:"sr-only",children:F?"Copied":"Copy code"})]})]})]}),jsxRuntime.jsx("div",{className:utils.cn("overflow-auto",!H&&"overflow-x-auto"),style:{maxHeight:B?Y:j},children:N?jsxRuntime.jsx("div",{className:"p-4 space-y-2",children:Array.from({length:Math.min(V.length||5,10)}).map((D,o)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[w&&jsxRuntime.jsx(skeleton.Skeleton,{className:"h-4 w-8"}),jsxRuntime.jsx(skeleton.Skeleton,{className:"h-4 flex-1"})]},o))}):jsxRuntime.jsx("div",{className:"font-mono",children:V.map((D,o)=>{let p=o+M,n=L.includes(p);return jsxRuntime.jsxs("div",{className:utils.cn("group relative flex min-h-[1.5rem] items-center px-4 py-0.5",n&&"bg-blue-500/10 border-l-2 border-l-blue-500",!H&&"whitespace-nowrap"),children:[w&&jsxRuntime.jsx("span",{className:"mr-4 inline-block w-8 select-none text-right text-xs text-muted-foreground",children:p}),jsxRuntime.jsx("div",{className:utils.cn("flex-1",H?"whitespace-pre-wrap break-words":"overflow-x-auto"),dangerouslySetInnerHTML:{__html:D}})]},o)})})}),O&&!B&&jsxRuntime.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-8 bg-gradient-to-t from-background to-transparent pointer-events-none"}),u==="minimal"&&E&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:b,className:"absolute top-2 right-2 h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity",children:F?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"})})]}),"renderBlock");return u==="inline"?G():Q()});Me.displayName="CodeSnippet";var ht=U__namespace.forwardRef(({children:d,language:u,className:l,...a},t)=>jsxRuntime.jsx(Me,{ref:t,code:d,language:u,variant:"inline",showCopyButton:false,showLanguageBadge:false,showHeader:false,className:l,...a}));ht.displayName="InlineCode";var bt=U__namespace.forwardRef(({className:d,tabs:u=[],defaultTab:l=0,...a},t)=>{let[s,g]=U__namespace.useState(l);return u.length===0?jsxRuntime.jsx("div",{ref:t,className:utils.cn("rounded-lg border bg-card p-6 text-card-foreground shadow-sm",d),...a,children:jsxRuntime.jsx("p",{className:"text-sm text-muted-foreground",children:"No code tabs available. Add tabs to display code snippets."})}):jsxRuntime.jsxs("div",{ref:t,className:utils.cn("rounded-lg border bg-card text-card-foreground shadow-sm",d),...a,children:[jsxRuntime.jsx("div",{className:"border-b",children:jsxRuntime.jsx("div",{className:"flex gap-1 p-2",children:u.map((w,L)=>jsxRuntime.jsx("button",{onClick:()=>g(L),className:utils.cn("rounded-md px-4 py-2 text-sm font-medium transition-colors",s===L?"bg-primary text-primary-foreground":"hover:bg-muted"),children:w.label},L))})}),jsxRuntime.jsx("div",{className:"p-4",children:jsxRuntime.jsx("pre",{className:"overflow-x-auto rounded-md bg-muted p-4",children:jsxRuntime.jsx("code",{className:"text-sm",children:u[s]?.code})})})]})});bt.displayName="CodeTabs";var xt=classVarianceAuthority.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"}}),ee={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"},os=x(d=>{let u=/\x1b\[([0-9;]*)m/g,l=[],a=0,t=[],s;for(;(s=u.exec(d))!==null;)s.index>a&&l.push({text:d.slice(a,s.index),classes:[...t]}),s[1].split(";").map(w=>parseInt(w)||0).forEach(w=>{switch(w){case 0:t=[];break;case 30:t.push(ee.black);break;case 31:t.push(ee.red);break;case 32:t.push(ee.green);break;case 33:t.push(ee.yellow);break;case 34:t.push(ee.blue);break;case 35:t.push(ee.magenta);break;case 36:t.push(ee.cyan);break;case 37:t.push(ee.white);break;case 90:t.push(ee.gray);break;case 91:t.push(ee.brightRed);break;case 92:t.push(ee.brightGreen);break;case 93:t.push(ee.brightYellow);break;case 94:t.push(ee.brightBlue);break;case 95:t.push(ee.brightMagenta);break;case 96:t.push(ee.brightCyan);break;case 97:t.push(ee.brightWhite);break}}),a=s.index+s[0].length;return a<d.length&&l.push({text:d.slice(a),classes:[...t]}),l.map((g,w)=>jsxRuntime.jsx("span",{className:utils.cn(g.classes),children:g.text},w))},"parseAnsiContent"),vt=U__namespace.forwardRef(({className:d,theme:u,size:l,title:a="Terminal",prompt:t="$",maxLines:s=1e3,showLineNumbers:g=false,allowInput:w=true,allowClear:L=true,allowCopy:E=true,allowDownload:X=false,allowFullscreen:J=true,height:Y="400px",autoScroll:O=true,history:j=[],onCommand:H,onClear:M,initialLines:P=[],...$},_)=>{let[R,F]=U__namespace.useState(P),[C,N]=U__namespace.useState(""),[k,B]=U__namespace.useState(-1),[r,c]=U__namespace.useState(false),[b,V]=U__namespace.useState(j),G=U__namespace.useRef(null),Q=U__namespace.useRef(null);U__namespace.useEffect(()=>{O&&G.current&&(G.current.scrollTop=G.current.scrollHeight);},[R,O]);let D=U__namespace.useCallback(m=>{let T={...m,id:`line-${Date.now()}-${Math.random()}`,timestamp:Date.now()};F(ce=>{let ne=[...ce,T];return ne.length>s?ne.slice(-s):ne});},[s]),o=U__namespace.useCallback(async m=>{if(m.trim()){if(V(T=>[...T,m]),B(-1),D({type:"input",content:`${t} ${m}`,command:m}),m==="clear"){M?M():F([]);return}if(m==="history"){b.forEach((T,ce)=>{D({type:"output",content:`${ce+1} ${T}`});});return}if(m.startsWith("echo ")){D({type:"output",content:m.slice(5)});return}if(H)try{await H(m);}catch(T){D({type:"error",content:T instanceof Error?T.message:String(T),exitCode:1});}else D({type:"error",content:`Command not found: ${m}`,exitCode:127});}},[t,D,H,M,b]),p=x(m=>{m.preventDefault(),C.trim()&&(o(C),N(""));},"handleInputSubmit"),n=x(m=>{if(m.key==="ArrowUp"){if(m.preventDefault(),k<b.length-1){let T=k+1;B(T),N(b[b.length-1-T]||"");}}else if(m.key==="ArrowDown")if(m.preventDefault(),k>0){let T=k-1;B(T),N(b[b.length-1-T]||"");}else k===0&&(B(-1),N(""));},"handleKeyDown"),i=U__namespace.useCallback(async()=>{let m=R.map(T=>T.content).join(`
|
|
62
|
+
`);try{await navigator.clipboard.writeText(m);}catch(T){console.error("Failed to copy terminal content:",T);}},[R]),e=U__namespace.useCallback(()=>{let m=R.map(He=>`[${new Date(He.timestamp).toISOString()}] ${He.content}`).join(`
|
|
63
|
+
`),T=new Blob([m],{type:"text/plain"}),ce=URL.createObjectURL(T),ne=document.createElement("a");ne.href=ce,ne.download=`terminal-${Date.now()}.txt`,document.body.appendChild(ne),ne.click(),document.body.removeChild(ne),URL.revokeObjectURL(ce);},[R]),f=x(()=>{M?M():F([]);},"clearTerminal"),z=x(()=>{w&&Q.current&&Q.current.focus();},"handleTerminalClick");return jsxRuntime.jsxs("div",{ref:_,className:utils.cn(xt({theme:u,size:l}),r&&"fixed inset-0 z-50",d),style:{height:r?"100vh":Y},onClick:z,...$,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs("div",{className:"flex gap-1",children:[jsxRuntime.jsx("div",{className:"w-3 h-3 rounded-full bg-red-500"}),jsxRuntime.jsx("div",{className:"w-3 h-3 rounded-full bg-yellow-500"}),jsxRuntime.jsx("div",{className:"w-3 h-3 rounded-full bg-green-500"})]}),jsxRuntime.jsx(lucideReact.Terminal,{className:"h-4 w-4"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:a}),R.length>0&&jsxRuntime.jsxs("span",{className:"text-xs text-muted-foreground",children:[R.length," lines"]})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[L&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:f,className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.RefreshCw,{className:"h-3.5 w-3.5"})}),E&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:i,className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"})}),X&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:e,className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.Download,{className:"h-3.5 w-3.5"})}),J&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:()=>c(!r),className:"h-8 w-8 p-0",children:r?jsxRuntime.jsx(lucideReact.Minimize2,{className:"h-3.5 w-3.5"}):jsxRuntime.jsx(lucideReact.Maximize2,{className:"h-3.5 w-3.5"})})]})]}),jsxRuntime.jsxs("div",{className:"flex-1 flex flex-col min-h-0",children:[jsxRuntime.jsx(scrollArea.ScrollArea,{ref:G,className:"flex-1 p-4",children:jsxRuntime.jsx("div",{className:"space-y-1 font-mono",children:R.map((m,T)=>jsxRuntime.jsxs("div",{className:"flex items-start gap-2",children:[g&&jsxRuntime.jsx("span",{className:"text-xs text-muted-foreground w-12 text-right flex-shrink-0",children:T+1}),jsxRuntime.jsx("div",{className:utils.cn("flex-1 whitespace-pre-wrap break-words",m.type==="input"&&"text-inherit",m.type==="output"&&"text-muted-foreground",m.type==="error"&&"text-red-400",m.type==="system"&&"text-blue-400"),children:typeof m.content=="string"&&m.content.includes("\x1B[")?os(m.content):m.content})]},m.id))})}),w&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(separator.Separator,{}),jsxRuntime.jsx("form",{onSubmit:p,className:"p-4",children:jsxRuntime.jsxs("div",{className:"flex items-center gap-2 font-mono",children:[jsxRuntime.jsx(lucideReact.ChevronRight,{className:"h-4 w-4 flex-shrink-0"}),jsxRuntime.jsx("span",{className:"flex-shrink-0",children:t}),jsxRuntime.jsx(input.Input,{ref:Q,value:C,onChange:m=>N(m.target.value),onKeyDown:n,className:"flex-1 border-0 bg-transparent p-0 focus-visible:ring-0 font-mono",placeholder:"Enter command...",autoComplete:"off",autoFocus:true})]})})]})]})]})});vt.displayName="CodeTerminal";exports.CodeBlock=ze;exports.CodeCompare=Oe;exports.CodeDiff=Xe;exports.CodeEditor=et;exports.CodeExplorer=rt;exports.CodePreview=pt;exports.CodeSnippet=Me;exports.CodeTabs=bt;exports.CodeTerminal=vt;exports.InlineCode=ht;exports.codeBlockVariants=Be;exports.codeCompareVariants=Ae;exports.codeDiffVariants=Je;exports.codeExplorerVariants=st;exports.codePreviewVariants=mt;exports.codeSnippetVariants=Le;exports.codeTerminalVariants=xt;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import*as U from'react';import {cva}from'class-variance-authority';import {FileText,Check,Copy,MoreHorizontal,RotateCcw,Settings,GitCompare,Plus,Minus,Square,SplitSquareHorizontal,ChevronDown,FolderOpen,Folder,ChevronRight,Search,X,Eye,EyeOff,Terminal,RefreshCw,Play,AlertTriangle,Download,Minimize2,Maximize2,File,FileImage,FileCode}from'lucide-react';import {codeToHtml,bundledLanguages}from'shiki';import {cn}from'@hanzo/ui-shadcn/lib/utils';import {Badge}from'@hanzo/ui-shadcn/badge';import {Button}from'@hanzo/ui-shadcn/button';import {Skeleton}from'@hanzo/ui-shadcn/skeleton';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {CodeDiff}from'@hanzo/ui-shadcn/code/diff';import {CodeSnippet}from'@hanzo/ui-shadcn/code/snippet';import {DropdownMenu,DropdownMenuTrigger,DropdownMenuContent,DropdownMenuItem}from'@hanzo/ui-shadcn/dropdown-menu';import {ScrollArea}from'@hanzo/ui-shadcn/scroll-area';import {Tabs,TabsList,TabsTrigger,TabsContent}from'@hanzo/ui-shadcn/tabs';import {ToggleGroup,ToggleGroupItem}from'@hanzo/ui-shadcn/toggle-group';import Xt from'@monaco-editor/react';import {useTheme}from'next-themes';import {Input}from'@hanzo/ui-shadcn/input';import {Separator}from'@hanzo/ui-shadcn/separator';import {Toggle}from'@hanzo/ui-shadcn/toggle';var yt=Object.defineProperty;var x=(d,u)=>yt(d,"name",{value:u,configurable:true});var Be=cva("relative overflow-hidden rounded-lg border bg-muted/50",{variants:{theme:{dark:"bg-slate-950 border-slate-800",light:"bg-slate-50 border-slate-200",github:"bg-white border-slate-200","github-dark":"bg-slate-900 border-slate-700","vs-dark":"bg-slate-950 border-slate-800",monokai:"bg-slate-900 border-slate-700",dracula:"bg-slate-900 border-purple-800/30",nord:"bg-slate-800 border-slate-600"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{theme:"dark",size:"default"}}),Ve=U.memo(({line:d,lineNumber:u,showLineNumbers:l,isHighlighted:a=false,isDiffAdded:t=false,isDiffRemoved:s=false})=>jsxs("div",{className:cn("group relative flex min-h-[1.5rem] items-center px-4 py-0.5",a&&"bg-blue-500/10 border-l-2 border-l-blue-500",t&&"bg-green-500/10 border-l-2 border-l-green-500",s&&"bg-red-500/10 border-l-2 border-l-red-500"),children:[l&&jsx("span",{className:"mr-4 inline-block w-8 select-none text-right text-xs text-muted-foreground",children:u}),(t||s)&&jsx("span",{className:"mr-2 select-none text-xs",children:t?"+":s?"-":" "}),jsx("div",{className:"flex-1 overflow-x-auto",dangerouslySetInnerHTML:{__html:d}})]}));Ve.displayName="CodeLine";var ze=U.forwardRef(({className:d,theme:u,size:l,code:a,language:t="text",filename:s,showLineNumbers:g=true,highlightLines:w=[],showCopyButton:L=true,maxHeight:E="400px",diff:X,...J},Y)=>{let[O,j]=U.useState(""),[H,M]=U.useState(false),[P,$]=U.useState(true),_={dark:"github-dark",light:"github-light",github:"github-light","github-dark":"github-dark","vs-dark":"dark-plus",monokai:"monokai",dracula:"dracula",nord:"nord"};U.useEffect(()=>{x(async()=>{$(true);try{let N=await codeToHtml(a,{lang:t,theme:_[u||"dark"],transformers:[{code(r){let c=r.children.find(b=>b.type==="element"&&b.tagName==="code");c&&"children"in c&&c.children&&(r.children=c.children);}}]}),k=document.createElement("div");k.innerHTML=N;let B=k.querySelector("code");j(B?.innerHTML||N);}catch(N){console.error("Failed to highlight code:",N),j(a);}finally{$(false);}},"highlightCode")();},[a,t,u]);let R=U.useCallback(async()=>{try{await navigator.clipboard.writeText(a),M(!0),setTimeout(()=>M(!1),2e3);}catch(C){console.error("Failed to copy code:",C);}},[a]),F=O.split(`
|
|
3
|
+
`);return jsxs("div",{ref:Y,"data-testid":"code-block",className:cn(Be({theme:u,size:l,className:d})),...J,children:[(s||t||L)&&jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxs("div",{className:"flex items-center gap-2",children:[s&&jsxs("div",{className:"flex items-center gap-1.5",children:[jsx(FileText,{className:"h-3.5 w-3.5 text-muted-foreground"}),jsx("span",{className:"text-sm font-medium",children:s})]}),t&&jsx(Badge,{variant:"secondary",className:"text-xs",children:t})]}),L&&jsxs(Button,{variant:"ghost",size:"sm",onClick:R,className:"h-8 w-8 p-0",children:[H?jsx(Check,{className:"h-3.5 w-3.5 text-green-500"}):jsx(Copy,{className:"h-3.5 w-3.5"}),jsx("span",{className:"sr-only",children:H?"Copied":"Copy code"})]})]}),jsx("div",{className:"overflow-auto",style:{maxHeight:E},children:P?jsx("div",{className:"p-4 space-y-2",children:Array.from({length:10}).map((C,N)=>jsxs("div",{className:"flex items-center gap-4",children:[g&&jsx(Skeleton,{"data-testid":"skeleton",className:"h-4 w-8"}),jsx(Skeleton,{"data-testid":"skeleton",className:"h-4 flex-1"})]},N))}):jsx("div",{className:"font-mono",children:F.map((C,N)=>{let k=N+1,B=w.includes(k),r=X?.added?.includes(k),c=X?.removed?.includes(k);return jsx(Ve,{line:C,lineNumber:k,showLineNumbers:g,isHighlighted:B,isDiffAdded:r,isDiffRemoved:c},N)})})})]})});ze.displayName="CodeBlock";var Ae=cva("relative flex flex-col overflow-hidden rounded-lg border bg-background",{variants:{layout:{horizontal:"flex-col",vertical:"flex-row"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{layout:"horizontal",size:"default"}}),Oe=U.forwardRef(({className:d,layout:u,size:l,files:a,defaultView:t="side-by-side",showLineNumbers:s=true,showCopyButton:g=true,allowMerge:w=false,conflictMarkers:L=[],onMergeConflict:E,onFileSelect:X,height:J="600px",syncScroll:Y=true,...O},j)=>{let[H,M]=U.useState(t),[P,$]=U.useState(()=>a.length>=2?[a[0].id,a[1].id]:a.length>0?[a[0].id]:[]),[_,R]=U.useState({resolved:{},conflicts:L}),[F,C]=U.useState(false),N=U.useRef({}),k=U.useCallback((o,p)=>{Y&&Object.entries(N.current).forEach(([n,i])=>{n!==o&&i&&(i.scrollTop=p);});},[Y]),B=U.useCallback(async()=>{let o=P.map(p=>{let n=a.find(i=>i.id===p);return n?`=== ${n.filename} ===
|
|
4
|
+
${n.content}`:""}).join(`
|
|
5
|
+
|
|
6
|
+
`);try{await navigator.clipboard.writeText(o),C(!0),setTimeout(()=>C(!1),2e3);}catch(p){console.error("Failed to copy comparison:",p);}},[a,P]),r=U.useCallback((o,p)=>{R(n=>({...n,resolved:{...n.resolved,[o]:p}})),E?.(p);},[E]),c=U.useCallback((o,p)=>{let n=o.content.split(`
|
|
7
|
+
`),i=p.content.split(`
|
|
8
|
+
`),e=0,f=0,z=0,m=Math.max(n.length,i.length);for(let T=0;T<m;T++){let ce=n[T],ne=i[T];ce===void 0?e++:ne===void 0?f++:ce!==ne&&z++;}return {added:e,removed:f,modified:z}},[]),b=x(()=>jsx("div",{className:"flex items-center gap-2 flex-wrap",children:a.map((o,p)=>jsxs("div",{className:"flex items-center gap-2",children:[jsxs(Button,{variant:P.includes(o.id)?"default":"outline",size:"sm",onClick:()=>{$(H==="three-way"?n=>n.includes(o.id)?n.filter(i=>i!==o.id):n.length<3?[...n,o.id]:[n[1],n[2],o.id]:n=>n.includes(o.id)?n.filter(i=>i!==o.id):n.length<2?[...n,o.id]:[n[1],o.id]),X?.(o.id);},className:"gap-2",children:[o.label||o.filename,o.version&&jsx(Badge,{variant:"secondary",className:"text-xs",children:o.version})]}),p<a.length-1&&H!=="three-way"&&jsx("span",{className:"text-muted-foreground",children:"vs"})]},o.id))}),"renderFileSelector"),V=x(()=>{let[o,p]=P.map(i=>a.find(e=>e.id===i)).filter(Boolean);if(!o||!p)return jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select two files to compare"});let n=c(o,p);return jsxs("div",{className:"flex flex-col h-full",children:[jsx("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:jsxs("div",{className:"flex items-center gap-4",children:[jsx("span",{className:"text-sm font-medium",children:"Comparison"}),jsxs("div",{className:"flex items-center gap-3 text-xs",children:[jsxs("span",{className:"text-green-600",children:["+",n.added]}),jsxs("span",{className:"text-red-600",children:["-",n.removed]}),jsxs("span",{className:"text-yellow-600",children:["~",n.modified]})]})]})}),jsx("div",{className:"flex-1 min-h-0",children:jsx(CodeDiff,{oldCode:o.content,newCode:p.content,language:o.language,oldFilename:o.filename,newFilename:p.filename,showLineNumbers:s,showCopyButton:false,maxHeight:"100%",defaultView:"split",className:"border-0 rounded-none h-full"})})]})},"renderSideBySide"),G=x(()=>{let[o,p]=P.map(n=>a.find(i=>i.id===n)).filter(Boolean);return !o||!p?jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select two files to compare"}):jsx(CodeDiff,{oldCode:o.content,newCode:p.content,language:o.language,filename:`${o.filename} \u2192 ${p.filename}`,showLineNumbers:s,showCopyButton:false,maxHeight:"100%",defaultView:"unified",className:"border-0 rounded-none"})},"renderUnified"),Q=x(()=>{let[o,p,n]=P.map(i=>a.find(e=>e.id===i)).filter(Boolean);return !o||!p||!n?jsx("div",{className:"flex items-center justify-center h-32 text-muted-foreground",children:"Select three files for three-way merge (base, current, incoming)"}):jsxs("div",{className:"grid grid-cols-3 gap-0 h-full",children:[jsxs("div",{className:"border-r",children:[jsx("div",{className:"border-b px-4 py-2 bg-muted/30",children:jsxs("span",{className:"text-sm font-medium",children:["Base (",o.filename,")"]})}),jsx(ScrollArea,{className:"h-full",ref:i=>{N.current.base=i;},onScrollCapture:i=>{let e=i.target;k("base",e.scrollTop);},children:jsx(CodeSnippet,{code:o.content,language:o.language,showLineNumbers:s,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]}),jsxs("div",{className:"border-r",children:[jsx("div",{className:"border-b px-4 py-2 bg-blue-500/10",children:jsxs("span",{className:"text-sm font-medium text-blue-600 dark:text-blue-400",children:["Current (",p.filename,")"]})}),jsx(ScrollArea,{className:"h-full",ref:i=>{N.current.current=i;},onScrollCapture:i=>{let e=i.target;k("current",e.scrollTop);},children:jsx(CodeSnippet,{code:p.content,language:p.language,showLineNumbers:s,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]}),jsxs("div",{children:[jsx("div",{className:"border-b px-4 py-2 bg-green-500/10",children:jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["Incoming (",n.filename,")"]})}),jsx(ScrollArea,{className:"h-full",ref:i=>{N.current.incoming=i;},onScrollCapture:i=>{let e=i.target;k("incoming",e.scrollTop);},children:jsx(CodeSnippet,{code:n.content,language:n.language,showLineNumbers:s,showCopyButton:false,showHeader:false,className:"border-0 rounded-none"})})]})]})},"renderThreeWay"),D=x(()=>!w||_.conflicts.length===0?null:jsx("div",{className:"border-t bg-muted/30",children:jsxs("div",{className:"px-4 py-2",children:[jsxs("div",{className:"flex items-center justify-between",children:[jsx("span",{className:"text-sm font-medium",children:"Merge Conflicts"}),jsx(Badge,{variant:"destructive",className:"text-xs",children:_.conflicts.length})]}),jsx("div",{className:"mt-2 space-y-2",children:_.conflicts.map((o,p)=>jsxs("div",{className:"flex items-center gap-2 text-xs",children:[jsxs("span",{children:["Lines ",o.startLine,"-",o.endLine]}),jsxs("div",{className:"flex gap-1",children:[jsx(Button,{variant:"outline",size:"sm",onClick:()=>r(p,"current"),className:"h-6 text-xs",children:"Keep Current"}),jsx(Button,{variant:"outline",size:"sm",onClick:()=>r(p,"incoming"),className:"h-6 text-xs",children:"Accept Incoming"})]})]},p))})]})}),"renderMergeConflicts");return jsxs("div",{ref:j,className:cn(Ae({layout:u,size:l}),d),style:{height:J},...O,children:[jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsx("div",{className:"flex items-center gap-4",children:b()}),jsxs("div",{className:"flex items-center gap-2",children:[jsx(Tabs,{value:H,onValueChange:o=>M(o),children:jsxs(TabsList,{className:"grid w-full grid-cols-3",children:[jsx(TabsTrigger,{value:"side-by-side",className:"text-xs",children:"Side by Side"}),jsx(TabsTrigger,{value:"unified",className:"text-xs",children:"Unified"}),jsx(TabsTrigger,{value:"three-way",className:"text-xs",children:"Three-way"})]})}),g&&jsx(Button,{variant:"ghost",size:"sm",onClick:B,className:"h-8 w-8 p-0",children:F?jsx(Check,{className:"h-3.5 w-3.5 text-green-500"}):jsx(Copy,{className:"h-3.5 w-3.5"})}),jsxs(DropdownMenu,{children:[jsx(DropdownMenuTrigger,{asChild:true,children:jsx(Button,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",children:jsx(MoreHorizontal,{className:"h-3.5 w-3.5"})})}),jsxs(DropdownMenuContent,{align:"end",children:[jsxs(DropdownMenuItem,{onClick:()=>$([]),className:"gap-2",children:[jsx(RotateCcw,{className:"h-4 w-4"}),"Reset Selection"]}),jsxs(DropdownMenuItem,{className:"gap-2",children:[jsx(Settings,{className:"h-4 w-4"}),"Settings"]})]})]})]})]}),jsxs("div",{className:"flex-1 min-h-0",children:[H==="side-by-side"&&V(),H==="unified"&&G(),H==="three-way"&&Q()]}),D()]})});Oe.displayName="CodeCompare";var Je=cva("relative overflow-hidden rounded-lg border bg-muted/50",{variants:{theme:{dark:"bg-slate-950 border-slate-800",light:"bg-slate-50 border-slate-200",github:"bg-white border-slate-200","github-dark":"bg-slate-900 border-slate-700"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{theme:"dark",size:"default"}}),ye=U.memo(({change:d,showLineNumbers:u,isUnified:l=false,highlightedContent:a})=>{let t=x(()=>{let g="group relative flex min-h-[1.5rem] items-center py-0.5";if(l)switch(d.type){case "add":return cn(g,"bg-green-500/10 border-l-2 border-l-green-500");case "remove":return cn(g,"bg-red-500/10 border-l-2 border-l-red-500");default:return cn(g,"hover:bg-muted/50")}return cn(g,"hover:bg-muted/50")},"getLineClasses"),s=x(()=>{if(!l)return null;switch(d.type){case "add":return jsx(Plus,{className:"h-3 w-3 text-green-500 mr-2 flex-shrink-0"});case "remove":return jsx(Minus,{className:"h-3 w-3 text-red-500 mr-2 flex-shrink-0"});default:return jsx("span",{className:"w-3 mr-2 flex-shrink-0"})}},"getLinePrefix");return jsx("div",{className:t(),children:jsxs("div",{className:"flex items-center px-4 w-full",children:[u&&jsx("div",{className:"flex items-center gap-2 mr-4",children:l?jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:d.lineNumber}):jsxs(Fragment,{children:[jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:d.oldLineNumber||""}),jsx("span",{className:"inline-block w-8 select-none text-right text-xs text-muted-foreground",children:d.newLineNumber||""})]})}),s(),jsx("div",{className:"flex-1 overflow-x-auto font-mono",dangerouslySetInnerHTML:{__html:a||d.content}})]})})});ye.displayName="DiffLine";function Ue(d,u){let l=d.split(`
|
|
9
|
+
`),a=u.split(`
|
|
10
|
+
`),t=[],s=0,g=0,w=1;for(;s<l.length||g<a.length;){let L=l[s],E=a[g];s>=l.length?(t.push({type:"add",lineNumber:w++,content:E,newLineNumber:g+1}),g++):g>=a.length?(t.push({type:"remove",lineNumber:w++,content:L,oldLineNumber:s+1}),s++):L===E?(t.push({type:"unchanged",lineNumber:w++,content:L,oldLineNumber:s+1,newLineNumber:g+1}),s++,g++):(t.push({type:"remove",lineNumber:w++,content:L,oldLineNumber:s+1}),t.push({type:"add",lineNumber:w++,content:E,newLineNumber:g+1}),s++,g++);}return t}x(Ue,"generateDiff");var Xe=U.forwardRef(({className:d,theme:u,size:l,oldCode:a,newCode:t,language:s="text",filename:g,oldFilename:w,newFilename:L,showLineNumbers:E=true,showCopyButton:X=true,maxHeight:J="500px",defaultView:Y="unified",collapseUnchanged:O=false,contextLines:j=3,...H},M)=>{let[P,$]=U.useState(Y),[_,R]=U.useState(false),[F,C]=U.useState(true),[N,k]=U.useState(""),[B,r]=U.useState(""),[c,b]=U.useState([]),V={dark:"github-dark",light:"github-light",github:"github-light","github-dark":"github-dark"};U.useEffect(()=>{x(async()=>{C(true);try{let[i,e]=await Promise.all([codeToHtml(a,{lang:s,theme:V[u||"dark"]}),codeToHtml(t,{lang:s,theme:V[u||"dark"]})]),f=x(m=>{let T=document.createElement("div");return T.innerHTML=m,T.querySelector("code")?.innerHTML||m},"extractContent");k(f(i)),r(f(e));let z=Ue(a,t);b(z);}catch(i){console.error("Failed to highlight code:",i),k(a),r(t),b(Ue(a,t));}finally{C(false);}},"highlightCode")();},[a,t,s,u]);let G=U.useCallback(async()=>{try{let n=P==="unified"?c.map(i=>`${i.type==="add"?"+":i.type==="remove"?"-":" "}${i.content}`).join(`
|
|
11
|
+
`):`--- ${w||"old"}
|
|
12
|
+
+++ ${L||"new"}
|
|
13
|
+
${a}
|
|
14
|
+
|
|
15
|
+
${t}`;await navigator.clipboard.writeText(n),R(!0),setTimeout(()=>R(!1),2e3);}catch(n){console.error("Failed to copy diff:",n);}},[c,P,a,t,w,L]),Q=U.useMemo(()=>{if(!O)return c;let n=[],i=0;for(;i<c.length;){let e=c[i];if(e.type!=="unchanged"){n.push(e),i++;continue}let f=i;for(;i<c.length&&c[i].type==="unchanged";)i++;let z=i-f;if(z<=j*2)for(let m=f;m<i;m++)n.push(c[m]);else {for(let m=f;m<f+j;m++)n.push(c[m]);n.push({type:"unchanged",lineNumber:-1,content:`... ${z-j*2} unchanged lines ...`});for(let m=i-j;m<i;m++)n.push(c[m]);}}return n},[c,O,j]),D=U.useMemo(()=>{let n=c.filter(e=>e.type==="add").length,i=c.filter(e=>e.type==="remove").length;return {additions:n,deletions:i}},[c]),o=x(()=>{let n=N.split(`
|
|
16
|
+
`),i=B.split(`
|
|
17
|
+
`);return jsx("div",{className:"font-mono",children:Q.map((e,f)=>{if(e.lineNumber===-1)return jsx("div",{className:"flex items-center justify-center py-2 text-muted-foreground bg-muted/30",children:jsx("span",{className:"text-xs",children:e.content})},f);let z=e.content;return e.type==="add"&&e.newLineNumber?z=i[e.newLineNumber-1]||e.content:(e.type==="remove"&&e.oldLineNumber||e.type==="unchanged"&&e.oldLineNumber)&&(z=n[e.oldLineNumber-1]||e.content),jsx(ye,{change:e,showLineNumbers:E,isUnified:true,highlightedContent:z},f)})})},"renderUnifiedView"),p=x(()=>{let n=N.split(`
|
|
18
|
+
`),i=B.split(`
|
|
19
|
+
`);return jsxs("div",{className:"grid grid-cols-2 gap-0",children:[jsxs("div",{className:"border-r",children:[jsx("div",{className:"border-b px-4 py-2 bg-red-500/10",children:jsx("span",{className:"text-sm font-medium text-red-600 dark:text-red-400",children:w||g||"Old"})}),jsx("div",{className:"font-mono",children:n.map((e,f)=>jsx(ye,{change:{type:"remove",lineNumber:f+1,content:e,oldLineNumber:f+1},showLineNumbers:E,highlightedContent:e},`old-${f}`))})]}),jsxs("div",{children:[jsx("div",{className:"border-b px-4 py-2 bg-green-500/10",children:jsx("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:L||g||"New"})}),jsx("div",{className:"font-mono",children:i.map((e,f)=>jsx(ye,{change:{type:"add",lineNumber:f+1,content:e,newLineNumber:f+1},showLineNumbers:E,highlightedContent:e},`new-${f}`))})]})]})},"renderSplitView");return jsxs("div",{ref:M,className:cn(Je({theme:u,size:l,className:d})),...H,children:[jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxs("div",{className:"flex items-center gap-4",children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx(GitCompare,{className:"h-4 w-4 text-muted-foreground"}),g&&jsx("span",{className:"text-sm font-medium",children:g}),s&&jsx(Badge,{variant:"secondary",className:"text-xs",children:s})]}),jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[jsxs("span",{className:"flex items-center gap-1",children:[jsx(Plus,{className:"h-3 w-3 text-green-500"}),D.additions]}),jsxs("span",{className:"flex items-center gap-1",children:[jsx(Minus,{className:"h-3 w-3 text-red-500"}),D.deletions]})]})]}),jsxs("div",{className:"flex items-center gap-2",children:[jsxs(ToggleGroup,{type:"single",value:P,onValueChange:n=>n&&$(n),size:"sm",children:[jsx(ToggleGroupItem,{value:"unified","aria-label":"Unified view",children:jsx(Square,{className:"h-3 w-3"})}),jsx(ToggleGroupItem,{value:"split","aria-label":"Split view",children:jsx(SplitSquareHorizontal,{className:"h-3 w-3"})})]}),X&&jsxs(Button,{variant:"ghost",size:"sm",onClick:G,className:"h-8 w-8 p-0",children:[_?jsx(Check,{className:"h-3.5 w-3.5 text-green-500"}):jsx(Copy,{className:"h-3.5 w-3.5"}),jsx("span",{className:"sr-only",children:_?"Copied":"Copy diff"})]})]})]}),jsx("div",{className:"overflow-auto",style:{maxHeight:J},children:F?jsx("div",{className:"p-4 space-y-2",children:Array.from({length:10}).map((n,i)=>jsxs("div",{className:"flex items-center gap-4",children:[E&&jsx(Skeleton,{className:"h-4 w-8"}),jsx(Skeleton,{className:"h-4 flex-1"})]},i))}):P==="unified"?o():p()})]})});Xe.displayName="CodeDiff";var oa=["javascript","typescript","python","java","csharp","cpp","c","go","rust","ruby","php","swift","kotlin","dart","html","css","scss","json","xml","yaml","sql","markdown","shell","plaintext"],Qe={javascript:"JavaScript",typescript:"TypeScript",python:"Python",java:"Java",csharp:"C#",cpp:"C++",c:"C",go:"Go",rust:"Rust",ruby:"Ruby",php:"PHP",swift:"Swift",kotlin:"Kotlin",dart:"Dart",html:"HTML",css:"CSS",scss:"SCSS",json:"JSON",xml:"XML",yaml:"YAML",sql:"SQL",markdown:"Markdown",shell:"Shell",plaintext:"Plain Text"},et=U.forwardRef(({value:d,defaultValue:u="",language:l="javascript",height:a="400px",theme:t="auto",onChange:s,onMount:g,readOnly:w=false,lineNumbers:L=true,minimap:E=false,wordWrap:X="on",fontSize:J=14,className:Y,showCopyButton:O=true,showLanguageSelector:j=true,availableLanguages:H=oa},M)=>{let{theme:P}=useTheme(),[$,_]=U.useState(l),[R,F]=U.useState(false),[C,N]=U.useState(d||u);U.useEffect(()=>{d!==void 0&&N(d);},[d]);let k=U.useCallback(async()=>{try{await navigator.clipboard.writeText(C),F(!0),setTimeout(()=>F(!1),2e3);}catch(c){console.error("Failed to copy:",c);}},[C]),B=U.useCallback((c,b)=>{N(c||""),s&&s(c,b);},[s]),r=U.useMemo(()=>t==="auto"?P==="dark"?"vs-dark":"light":t==="dark"?"vs-dark":"light",[t,P]);return jsxs("div",{ref:M,className:cn("relative overflow-hidden rounded-md border bg-background",Y),children:[(j||O)&&jsxs("div",{className:"flex items-center justify-between border-b bg-muted/50 px-3 py-2",children:[j&&jsxs(DropdownMenu,{children:[jsx(DropdownMenuTrigger,{asChild:true,children:jsxs(Button,{variant:"ghost",size:"sm",className:"h-8 gap-1 px-2 text-xs font-mono",children:[Qe[$]||$,jsx(ChevronDown,{className:"h-3 w-3"})]})}),jsx(DropdownMenuContent,{align:"start",className:"max-h-80 overflow-auto",children:H.map(c=>jsx(DropdownMenuItem,{onClick:()=>_(c),className:"font-mono text-xs",children:Qe[c]||c},c))})]}),O&&jsx(Button,{variant:"ghost",size:"sm",className:"h-8 gap-1.5 px-2 text-xs",onClick:k,disabled:!C,children:R?jsxs(Fragment,{children:[jsx(Check,{className:"h-3 w-3"}),"Copied!"]}):jsxs(Fragment,{children:[jsx(Copy,{className:"h-3 w-3"}),"Copy"]})})]}),jsx(Xt,{height:a,defaultLanguage:l,language:$,value:C,defaultValue:u,theme:r,onChange:B,onMount:g,options:{readOnly:w,lineNumbers:L?"on":"off",minimap:{enabled:E},wordWrap:X,fontSize:J,scrollBeyondLastLine:false,automaticLayout:true,tabSize:2,insertSpaces:true,formatOnPaste:true,formatOnType:true,scrollbar:{vertical:"auto",horizontal:"auto",verticalScrollbarSize:10,horizontalScrollbarSize:10},padding:{top:16,bottom:16}}})]})});et.displayName="CodeEditor";var st=cva("relative flex flex-col overflow-hidden rounded-lg border bg-background",{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),ya=x((d,u=false)=>{if(u)return Folder;switch(d.split(".").pop()?.toLowerCase()){case "js":case "jsx":case "ts":case "tsx":case "vue":case "svelte":return FileCode;case "json":case "xml":case "yaml":case "yml":case "toml":case "ini":return FileText;case "png":case "jpg":case "jpeg":case "gif":case "svg":case "webp":case "ico":return FileImage;default:return File}},"getFileIcon"),wa=x(d=>{if(!d)return "";let u=["B","KB","MB","GB"],l=d,a=0;for(;l>=1024&&a<u.length-1;)l/=1024,a++;return `${l.toFixed(1)} ${u[a]}`},"formatFileSize"),Na=x(d=>{if(!d)return "";let l=new Date().getTime()-d.getTime(),a=Math.floor(l/(1e3*60*60*24));return a===0?"Today":a===1?"Yesterday":a<7?`${a} days ago`:a<30?`${Math.floor(a/7)} weeks ago`:a<365?`${Math.floor(a/30)} months ago`:`${Math.floor(a/365)} years ago`},"formatModifiedDate"),rt=U.forwardRef(({className:d,size:u,files:l,onFileSelect:a,onFolderToggle:t,selectedFile:s,showSearch:g=true,showFileIcons:w=true,showFileSize:L=false,showModifiedDate:E=false,height:X$1="400px",defaultExpanded:J=[],searchPlaceholder:Y="Search files...",emptyMessage:O="No files found",...j},H)=>{let[M,P]=U.useState(""),[$,_]=U.useState(new Set(J)),R=U.useCallback(r=>r.map(c=>({...c,isExpanded:$.has(c.id),children:c.children?R(c.children):void 0})),[$]),F=U.useCallback((r,c)=>{if(!c)return r;let b=[];for(let V of r)if(V.name.toLowerCase().includes(c.toLowerCase()))b.push(V);else if(V.type==="folder"&&V.children){let G=F(V.children,c);G.length>0&&b.push({...V,children:G,isExpanded:true});}return b},[]),C=U.useMemo(()=>{let r=R(l);return M?F(r,M):r},[l,M,R,F]),N=U.useCallback(r=>{_(c=>{let b=new Set(c);return b.has(r.id)?b.delete(r.id):b.add(r.id),b}),t?.(r);},[t]),k=U.useCallback((r,c=0)=>{let b=w?ya(r.name,r.type==="folder"):null,V=r.type==="folder"&&r.isExpanded?FolderOpen:Folder,G=s===r.id||s===r.path;return jsxs("div",{children:[jsxs("div",{className:cn("flex items-center gap-2 px-2 py-1 hover:bg-muted/50 cursor-pointer transition-colors",G&&"bg-muted","rounded-sm"),style:{paddingLeft:`${c*16+8}px`},onClick:()=>{r.type==="folder"?N(r):a?.(r);},children:[r.type==="folder"&&jsx("div",{className:"w-4 h-4 flex items-center justify-center",children:r.isExpanded?jsx(ChevronDown,{className:"h-3 w-3"}):jsx(ChevronRight,{className:"h-3 w-3"})}),w&&jsx("div",{className:"w-4 h-4 flex items-center justify-center flex-shrink-0",children:r.type==="folder"?jsx(V,{className:"h-4 w-4 text-blue-500"}):b?jsx(b,{className:"h-4 w-4 text-muted-foreground"}):null}),jsx("span",{className:"flex-1 truncate",children:r.name}),L&&r.type==="file"&&r.size&&jsx("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:wa(r.size)}),E&&r.modified&&jsx("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:Na(r.modified)})]}),r.type==="folder"&&r.isExpanded&&r.children&&jsx("div",{children:r.children.map(Q=>k(Q,c+1))})]},r.id)},[w,L,E,s,N,a]),B=x(()=>{P("");},"clearSearch");return jsxs("div",{ref:H,className:cn(st({size:u}),d),style:{height:X$1},...j,children:[g&&jsx("div",{className:"flex items-center gap-2 border-b px-4 py-2",children:jsxs("div",{className:"relative flex-1",children:[jsx(Search,{className:"absolute left-2 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),jsx(Input,{value:M,onChange:r=>P(r.target.value),placeholder:Y,className:"pl-8 pr-8 h-8"}),M&&jsx(Button,{variant:"ghost",size:"sm",onClick:B,className:"absolute right-1 top-1/2 transform -translate-y-1/2 h-6 w-6 p-0",children:jsx(X,{className:"h-3 w-3"})})]})}),jsx(ScrollArea,{className:"flex-1",children:jsx("div",{className:"p-2",children:C.length===0?jsx("div",{className:"flex items-center justify-center h-24 text-muted-foreground",children:M?`No files match "${M}"`:O}):jsx("div",{className:"space-y-0.5",children:C.map(r=>k(r,0))})})}),jsxs("div",{className:"border-t px-4 py-2 text-xs text-muted-foreground",children:[(()=>{let r=x(G=>{let Q=0,D=0;for(let o of G)if(o.type==="file")Q++;else if(D++,o.children){let p=r(o.children);Q+=p.files,D+=p.folders;}return {files:Q,folders:D}},"countFiles"),{files:c,folders:b}=r(C),V=[];return c>0&&V.push(`${c} file${c===1?"":"s"}`),b>0&&V.push(`${b} folder${b===1?"":"s"}`),V.join(", ")||"Empty"})(),M&&jsx("span",{children:" (filtered)"})]})]})});rt.displayName="CodeExplorer";var mt=cva("relative overflow-hidden rounded-lg border bg-background",{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),Ia=x(d=>{let u=d.find(s=>s.type==="html"),l=d.filter(s=>s.type==="css"),a=d.filter(s=>s.type==="js"),t=u?.content||"<div>No HTML file provided</div>";if(l.length>0&&(t=`<style>${l.map(g=>g.content).join(`
|
|
20
|
+
`)}</style>
|
|
21
|
+
${t}`),a.length>0){let s=a.map(g=>g.content).join(`
|
|
22
|
+
`);t=`${t}
|
|
23
|
+
<script>${s}</script>`;}return t},"runHTMLCode"),ja=`
|
|
24
|
+
<script>
|
|
25
|
+
const originalConsole = window.console;
|
|
26
|
+
const logs = [];
|
|
27
|
+
|
|
28
|
+
['log', 'warn', 'error', 'info'].forEach(method => {
|
|
29
|
+
window.console[method] = function(...args) {
|
|
30
|
+
logs.push({
|
|
31
|
+
type: method,
|
|
32
|
+
content: args.map(arg =>
|
|
33
|
+
typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)
|
|
34
|
+
).join(' '),
|
|
35
|
+
timestamp: Date.now()
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// Also call original console method
|
|
39
|
+
originalConsole[method].apply(originalConsole, arguments);
|
|
40
|
+
|
|
41
|
+
// Send to parent
|
|
42
|
+
window.parent.postMessage({
|
|
43
|
+
type: 'console',
|
|
44
|
+
data: logs[logs.length - 1]
|
|
45
|
+
}, '*');
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
window.addEventListener('error', (e) => {
|
|
50
|
+
window.parent.postMessage({
|
|
51
|
+
type: 'error',
|
|
52
|
+
data: {
|
|
53
|
+
type: 'error',
|
|
54
|
+
content: e.message + ' at ' + e.filename + ':' + e.lineno,
|
|
55
|
+
timestamp: Date.now()
|
|
56
|
+
}
|
|
57
|
+
}, '*');
|
|
58
|
+
});
|
|
59
|
+
</script>
|
|
60
|
+
`,pt=U.forwardRef(({className:d,size:u,files:l,defaultFile:a,showPreview:t=true,showConsole:s=true,autoRun:g=false,maxHeight:w="600px",previewHeight:L="300px",consoleHeight:E="150px",allowFullscreen:X$1=true,customRunner:J,...Y},O)=>{let [j,H]=U.useState(a||l[0]?.filename||""),[M,P]=U.useState(""),[$,_]=U.useState(false),[R,F]=U.useState([]),[C,N]=U.useState(t),[k,B]=U.useState(s),[r,c]=U.useState(false),[b,V]=U.useState({}),G=U.useRef(null);l.find(e=>e.filename===j)||l[0];U.useEffect(()=>{let e=x(f=>{(f.data?.type==="console"||f.data?.type==="error")&&F(z=>[...z,f.data.data]);},"handleMessage");return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[]);let D=U.useCallback(async()=>{_(true),F([]);try{let e;if(J?e=await J(l):e=Ia(l),e=ja+e,P(e),G.current){let f=G.current.contentDocument;f&&(f.open(),f.write(e),f.close());}}catch(e){F([{type:"error",content:e instanceof Error?e.message:String(e),timestamp:Date.now()}]);}finally{_(false);}},[l,J]);U.useEffect(()=>{if(g){let e=setTimeout(D,1e3);return ()=>clearTimeout(e)}},[l,g,D]);let o=U.useCallback(async e=>{let f=l.find(z=>z.filename===e);if(f)try{await navigator.clipboard.writeText(f.content),V(z=>({...z,[e]:!0})),setTimeout(()=>{V(z=>({...z,[e]:!1}));},2e3);}catch(z){console.error("Failed to copy code:",z);}},[l]),p=x(()=>{F([]);},"clearConsole"),n=x(()=>jsxs("div",{className:"flex flex-col h-full",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:[jsx(Terminal,{className:"h-4 w-4"}),jsx("span",{className:"text-sm font-medium",children:"Console"}),R.length>0&&jsx(Badge,{variant:"secondary",className:"text-xs",children:R.length})]}),jsx(Button,{variant:"ghost",size:"sm",onClick:p,className:"h-8 w-8 p-0",children:jsx(X,{className:"h-3.5 w-3.5"})})]}),jsx("div",{className:"flex-1 overflow-auto p-2 space-y-1 font-mono text-xs",children:R.length===0?jsx("div",{className:"text-muted-foreground italic",children:"No output"}):R.map((e,f)=>jsxs("div",{className:cn("flex items-start gap-2 p-2 rounded",e.type==="error"&&"bg-red-500/10 text-red-600 dark:text-red-400",e.type==="log"&&"bg-blue-500/10 text-blue-600 dark:text-blue-400",e.type==="output"&&"bg-green-500/10 text-green-600 dark:text-green-400"),children:[jsx("span",{className:"text-xs text-muted-foreground",children:new Date(e.timestamp).toLocaleTimeString()}),jsx("pre",{className:"flex-1 whitespace-pre-wrap break-words",children:e.content})]},f))})]}),"renderConsole"),i=r?"fixed inset-0 z-50 bg-background":"";return jsxs("div",{ref:O,className:cn(mt({size:u}),i,d),style:{maxHeight:r?"100vh":w},...Y,children:[jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsx(Tabs,{value:j,onValueChange:H,className:"flex-1",children:jsx(TabsList,{className:"h-auto p-0 bg-transparent",children:l.map(e=>jsxs(TabsTrigger,{value:e.filename,className:"relative flex items-center gap-2 data-[state=active]:bg-muted",children:[jsx("span",{children:e.filename}),jsx(Badge,{variant:"outline",className:"text-xs",children:e.language}),jsx(Button,{variant:"ghost",size:"sm",onClick:f=>{f.stopPropagation(),o(e.filename);},className:"h-6 w-6 p-0 opacity-0 group-hover:opacity-100",children:b[e.filename]?jsx(Check,{className:"h-3 w-3 text-green-500"}):jsx(Copy,{className:"h-3 w-3"})})]},e.filename))})}),jsxs("div",{className:"flex items-center gap-2",children:[jsx(Toggle,{pressed:C,onPressedChange:N,"aria-label":"Toggle preview",size:"sm",children:C?jsx(Eye,{className:"h-4 w-4"}):jsx(EyeOff,{className:"h-4 w-4"})}),jsx(Toggle,{pressed:k,onPressedChange:B,"aria-label":"Toggle console",size:"sm",children:jsx(Terminal,{className:"h-4 w-4"})}),jsxs(Button,{variant:"outline",size:"sm",onClick:D,disabled:$,className:"gap-2",children:[$?jsx(RefreshCw,{className:"h-4 w-4 animate-spin"}):jsx(Play,{className:"h-4 w-4"}),"Run"]}),X$1&&jsx(Button,{variant:"ghost",size:"sm",onClick:()=>c(!r),className:"h-8 w-8 p-0",children:r?jsx(Square,{className:"h-4 w-4"}):jsx(Settings,{className:"h-4 w-4"})})]})]}),jsxs("div",{className:"flex flex-col h-full",children:[jsx("div",{className:"flex-1 min-h-0",children:jsx(Tabs,{value:j,onValueChange:H,children:l.map(e=>jsx(TabsContent,{value:e.filename,className:"m-0 h-full",children:jsx(CodeSnippet,{code:e.content,language:e.language,showLineNumbers:true,showCopyButton:false,showHeader:false,maxHeight:"100%",className:"border-0 rounded-none"})},e.filename))})}),(C||k)&&jsxs(Fragment,{children:[jsx(Separator,{}),jsxs("div",{className:"flex flex-col lg:flex-row min-h-0",children:[C&&jsxs("div",{className:"flex-1 min-h-0 border-r last:border-r-0",style:{height:L},children:[jsxs("div",{className:"flex items-center gap-2 border-b px-4 py-2 bg-muted/30",children:[jsx(Eye,{className:"h-4 w-4"}),jsx("span",{className:"text-sm font-medium",children:"Preview"}),R.filter(e=>e.type==="error").length>0&&jsx(AlertTriangle,{className:"h-4 w-4 text-red-500"})]}),jsx("iframe",{ref:G,className:"w-full h-full bg-white",sandbox:"allow-scripts allow-same-origin",srcDoc:M})]}),k&&jsx("div",{className:"flex-1 min-h-0",style:{height:E},children:n()})]})]})]}),r&&jsx("div",{className:"absolute inset-0 bg-black/50",onClick:()=>c(false)})]})});pt.displayName="CodePreview";var Le=cva("relative group",{variants:{variant:{default:"rounded-lg border bg-muted/50",inline:"inline-block rounded-md bg-muted px-2 py-1",minimal:"bg-transparent"},theme:{dark:"bg-slate-950 border-slate-800",light:"bg-slate-50 border-slate-200",github:"bg-white border-slate-200","github-dark":"bg-slate-900 border-slate-700",terminal:"bg-black border-green-500/30 text-green-400",retro:"bg-amber-50 border-amber-200 text-amber-900"},size:{xs:"text-xs",sm:"text-sm",default:"text-sm",lg:"text-base"}},defaultVariants:{variant:"default",theme:"dark",size:"default"}}),Me=U.forwardRef(({className:d,variant:u,theme:l,size:a,code:t,language:s="text",filename:g,showLineNumbers:w=false,highlightLines:L=[],showCopyButton:E=true,showLanguageBadge:X=true,showHeader:J=true,maxHeight:Y,expandable:O=false,collapsedHeight:j="200px",wrapLines:H=false,startLineNumber:M=1,...P},$)=>{let[_,R]=U.useState(""),[F,C]=U.useState(false),[N,k]=U.useState(true),[B,r]=U.useState(!O),c={dark:"github-dark",light:"github-light",github:"github-light","github-dark":"github-dark",terminal:"github-dark",retro:"github-light"};U.useEffect(()=>{x(async()=>{k(true);try{let o=Object.keys(bundledLanguages).includes(s),p=await codeToHtml(t,{lang:o?s:"text",theme:c[l||"dark"]}),n=document.createElement("div");n.innerHTML=p;let i=n.querySelector("code");R(i?.innerHTML||p);}catch(o){console.error("Failed to highlight code:",o);let p=t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");R(p);}finally{k(false);}},"highlightCode")();},[t,s,l]);let b=U.useCallback(async()=>{try{await navigator.clipboard.writeText(t),C(!0),setTimeout(()=>C(!1),2e3);}catch(D){console.error("Failed to copy code:",D);}},[t]),V=_.split(`
|
|
61
|
+
`).filter((D,o,p)=>D.trim()!==""||o<p.length-1),G=x(()=>jsx("code",{className:cn(Le({variant:u,theme:l,size:a}),"font-mono",d),dangerouslySetInnerHTML:{__html:_}}),"renderInline"),Q=x(()=>jsxs("div",{ref:$,className:cn(Le({variant:u,theme:l,size:a}),"overflow-hidden",d),...P,children:[J&&(g||s||E||O)&&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:[g&&jsxs("div",{className:"flex items-center gap-1.5",children:[jsx(FileText,{className:"h-3.5 w-3.5 text-muted-foreground"}),jsx("span",{className:"text-sm font-medium",children:g})]}),X&&s&&jsx(Badge,{variant:"secondary",className:"text-xs",children:s})]}),jsxs("div",{className:"flex items-center gap-1",children:[O&&jsxs(Button,{variant:"ghost",size:"sm",onClick:()=>r(!B),className:"h-8 w-8 p-0",children:[B?jsx(Minimize2,{className:"h-3.5 w-3.5"}):jsx(Maximize2,{className:"h-3.5 w-3.5"}),jsx("span",{className:"sr-only",children:B?"Collapse":"Expand"})]}),E&&jsxs(Button,{variant:"ghost",size:"sm",onClick:b,className:"h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity",children:[F?jsx(Check,{className:"h-3.5 w-3.5 text-green-500"}):jsx(Copy,{className:"h-3.5 w-3.5"}),jsx("span",{className:"sr-only",children:F?"Copied":"Copy code"})]})]})]}),jsx("div",{className:cn("overflow-auto",!H&&"overflow-x-auto"),style:{maxHeight:B?Y:j},children:N?jsx("div",{className:"p-4 space-y-2",children:Array.from({length:Math.min(V.length||5,10)}).map((D,o)=>jsxs("div",{className:"flex items-center gap-4",children:[w&&jsx(Skeleton,{className:"h-4 w-8"}),jsx(Skeleton,{className:"h-4 flex-1"})]},o))}):jsx("div",{className:"font-mono",children:V.map((D,o)=>{let p=o+M,n=L.includes(p);return jsxs("div",{className:cn("group relative flex min-h-[1.5rem] items-center px-4 py-0.5",n&&"bg-blue-500/10 border-l-2 border-l-blue-500",!H&&"whitespace-nowrap"),children:[w&&jsx("span",{className:"mr-4 inline-block w-8 select-none text-right text-xs text-muted-foreground",children:p}),jsx("div",{className:cn("flex-1",H?"whitespace-pre-wrap break-words":"overflow-x-auto"),dangerouslySetInnerHTML:{__html:D}})]},o)})})}),O&&!B&&jsx("div",{className:"absolute bottom-0 left-0 right-0 h-8 bg-gradient-to-t from-background to-transparent pointer-events-none"}),u==="minimal"&&E&&jsx(Button,{variant:"ghost",size:"sm",onClick:b,className:"absolute top-2 right-2 h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity",children:F?jsx(Check,{className:"h-3.5 w-3.5 text-green-500"}):jsx(Copy,{className:"h-3.5 w-3.5"})})]}),"renderBlock");return u==="inline"?G():Q()});Me.displayName="CodeSnippet";var ht=U.forwardRef(({children:d,language:u,className:l,...a},t)=>jsx(Me,{ref:t,code:d,language:u,variant:"inline",showCopyButton:false,showLanguageBadge:false,showHeader:false,className:l,...a}));ht.displayName="InlineCode";var bt=U.forwardRef(({className:d,tabs:u=[],defaultTab:l=0,...a},t)=>{let[s,g]=U.useState(l);return u.length===0?jsx("div",{ref:t,className:cn("rounded-lg border bg-card p-6 text-card-foreground shadow-sm",d),...a,children:jsx("p",{className:"text-sm text-muted-foreground",children:"No code tabs available. Add tabs to display code snippets."})}):jsxs("div",{ref:t,className:cn("rounded-lg border bg-card text-card-foreground shadow-sm",d),...a,children:[jsx("div",{className:"border-b",children:jsx("div",{className:"flex gap-1 p-2",children:u.map((w,L)=>jsx("button",{onClick:()=>g(L),className:cn("rounded-md px-4 py-2 text-sm font-medium transition-colors",s===L?"bg-primary text-primary-foreground":"hover:bg-muted"),children:w.label},L))})}),jsx("div",{className:"p-4",children:jsx("pre",{className:"overflow-x-auto rounded-md bg-muted p-4",children:jsx("code",{className:"text-sm",children:u[s]?.code})})})]})});bt.displayName="CodeTabs";var xt=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"}}),ee={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"},os=x(d=>{let u=/\x1b\[([0-9;]*)m/g,l=[],a=0,t=[],s;for(;(s=u.exec(d))!==null;)s.index>a&&l.push({text:d.slice(a,s.index),classes:[...t]}),s[1].split(";").map(w=>parseInt(w)||0).forEach(w=>{switch(w){case 0:t=[];break;case 30:t.push(ee.black);break;case 31:t.push(ee.red);break;case 32:t.push(ee.green);break;case 33:t.push(ee.yellow);break;case 34:t.push(ee.blue);break;case 35:t.push(ee.magenta);break;case 36:t.push(ee.cyan);break;case 37:t.push(ee.white);break;case 90:t.push(ee.gray);break;case 91:t.push(ee.brightRed);break;case 92:t.push(ee.brightGreen);break;case 93:t.push(ee.brightYellow);break;case 94:t.push(ee.brightBlue);break;case 95:t.push(ee.brightMagenta);break;case 96:t.push(ee.brightCyan);break;case 97:t.push(ee.brightWhite);break}}),a=s.index+s[0].length;return a<d.length&&l.push({text:d.slice(a),classes:[...t]}),l.map((g,w)=>jsx("span",{className:cn(g.classes),children:g.text},w))},"parseAnsiContent"),vt=U.forwardRef(({className:d,theme:u,size:l,title:a="Terminal",prompt:t="$",maxLines:s=1e3,showLineNumbers:g=false,allowInput:w=true,allowClear:L=true,allowCopy:E=true,allowDownload:X=false,allowFullscreen:J=true,height:Y="400px",autoScroll:O=true,history:j=[],onCommand:H,onClear:M,initialLines:P=[],...$},_)=>{let[R,F]=U.useState(P),[C,N]=U.useState(""),[k,B]=U.useState(-1),[r,c]=U.useState(false),[b,V]=U.useState(j),G=U.useRef(null),Q=U.useRef(null);U.useEffect(()=>{O&&G.current&&(G.current.scrollTop=G.current.scrollHeight);},[R,O]);let D=U.useCallback(m=>{let T={...m,id:`line-${Date.now()}-${Math.random()}`,timestamp:Date.now()};F(ce=>{let ne=[...ce,T];return ne.length>s?ne.slice(-s):ne});},[s]),o=U.useCallback(async m=>{if(m.trim()){if(V(T=>[...T,m]),B(-1),D({type:"input",content:`${t} ${m}`,command:m}),m==="clear"){M?M():F([]);return}if(m==="history"){b.forEach((T,ce)=>{D({type:"output",content:`${ce+1} ${T}`});});return}if(m.startsWith("echo ")){D({type:"output",content:m.slice(5)});return}if(H)try{await H(m);}catch(T){D({type:"error",content:T instanceof Error?T.message:String(T),exitCode:1});}else D({type:"error",content:`Command not found: ${m}`,exitCode:127});}},[t,D,H,M,b]),p=x(m=>{m.preventDefault(),C.trim()&&(o(C),N(""));},"handleInputSubmit"),n=x(m=>{if(m.key==="ArrowUp"){if(m.preventDefault(),k<b.length-1){let T=k+1;B(T),N(b[b.length-1-T]||"");}}else if(m.key==="ArrowDown")if(m.preventDefault(),k>0){let T=k-1;B(T),N(b[b.length-1-T]||"");}else k===0&&(B(-1),N(""));},"handleKeyDown"),i=U.useCallback(async()=>{let m=R.map(T=>T.content).join(`
|
|
62
|
+
`);try{await navigator.clipboard.writeText(m);}catch(T){console.error("Failed to copy terminal content:",T);}},[R]),e=U.useCallback(()=>{let m=R.map(He=>`[${new Date(He.timestamp).toISOString()}] ${He.content}`).join(`
|
|
63
|
+
`),T=new Blob([m],{type:"text/plain"}),ce=URL.createObjectURL(T),ne=document.createElement("a");ne.href=ce,ne.download=`terminal-${Date.now()}.txt`,document.body.appendChild(ne),ne.click(),document.body.removeChild(ne),URL.revokeObjectURL(ce);},[R]),f=x(()=>{M?M():F([]);},"clearTerminal"),z=x(()=>{w&&Q.current&&Q.current.focus();},"handleTerminalClick");return jsxs("div",{ref:_,className:cn(xt({theme:u,size:l}),r&&"fixed inset-0 z-50",d),style:{height:r?"100vh":Y},onClick:z,...$,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:a}),R.length>0&&jsxs("span",{className:"text-xs text-muted-foreground",children:[R.length," lines"]})]}),jsxs("div",{className:"flex items-center gap-1",children:[L&&jsx(Button,{variant:"ghost",size:"sm",onClick:f,className:"h-8 w-8 p-0",children:jsx(RefreshCw,{className:"h-3.5 w-3.5"})}),E&&jsx(Button,{variant:"ghost",size:"sm",onClick:i,className:"h-8 w-8 p-0",children:jsx(Copy,{className:"h-3.5 w-3.5"})}),X&&jsx(Button,{variant:"ghost",size:"sm",onClick:e,className:"h-8 w-8 p-0",children:jsx(Download,{className:"h-3.5 w-3.5"})}),J&&jsx(Button,{variant:"ghost",size:"sm",onClick:()=>c(!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:G,className:"flex-1 p-4",children:jsx("div",{className:"space-y-1 font-mono",children:R.map((m,T)=>jsxs("div",{className:"flex items-start gap-2",children:[g&&jsx("span",{className:"text-xs text-muted-foreground w-12 text-right flex-shrink-0",children:T+1}),jsx("div",{className:cn("flex-1 whitespace-pre-wrap break-words",m.type==="input"&&"text-inherit",m.type==="output"&&"text-muted-foreground",m.type==="error"&&"text-red-400",m.type==="system"&&"text-blue-400"),children:typeof m.content=="string"&&m.content.includes("\x1B[")?os(m.content):m.content})]},m.id))})}),w&&jsxs(Fragment,{children:[jsx(Separator,{}),jsx("form",{onSubmit:p,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:t}),jsx(Input,{ref:Q,value:C,onChange:m=>N(m.target.value),onKeyDown:n,className:"flex-1 border-0 bg-transparent p-0 focus-visible:ring-0 font-mono",placeholder:"Enter command...",autoComplete:"off",autoFocus:true})]})})]})]})]})});vt.displayName="CodeTerminal";export{ze as CodeBlock,Oe as CodeCompare,Xe as CodeDiff,et as CodeEditor,rt as CodeExplorer,pt as CodePreview,Me as CodeSnippet,bt as CodeTabs,vt as CodeTerminal,ht as InlineCode,Be as codeBlockVariants,Ae as codeCompareVariants,Je as codeDiffVariants,st as codeExplorerVariants,mt as codePreviewVariants,Le as codeSnippetVariants,xt as codeTerminalVariants};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var s=require('react'),classVarianceAuthority=require('class-variance-authority'),lucideReact=require('lucide-react'),utils=require('@hanzo/ui-shadcn/lib/utils'),badge=require('@hanzo/ui-shadcn/badge'),button=require('@hanzo/ui-shadcn/button'),snippet=require('@hanzo/ui-shadcn/code/snippet'),separator=require('@hanzo/ui-shadcn/separator'),tabs=require('@hanzo/ui-shadcn/tabs'),toggle=require('@hanzo/ui-shadcn/toggle'),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 s__namespace=/*#__PURE__*/_interopNamespace(s);var W=Object.defineProperty;var u=(l,d)=>W(l,"name",{value:d,configurable:true});var pe=classVarianceAuthority.cva("relative overflow-hidden rounded-lg border bg-background",{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),ge=u(l=>{let d=l.find(r=>r.type==="html"),n=l.filter(r=>r.type==="css"),f=l.filter(r=>r.type==="js"),c=d?.content||"<div>No HTML file provided</div>";if(n.length>0&&(c=`<style>${n.map(m=>m.content).join(`
|
|
3
|
+
`)}</style>
|
|
4
|
+
${c}`),f.length>0){let r=f.map(m=>m.content).join(`
|
|
5
|
+
`);c=`${c}
|
|
6
|
+
<script>${r}</script>`;}return c},"runHTMLCode"),ue=`
|
|
7
|
+
<script>
|
|
8
|
+
const originalConsole = window.console;
|
|
9
|
+
const logs = [];
|
|
10
|
+
|
|
11
|
+
['log', 'warn', 'error', 'info'].forEach(method => {
|
|
12
|
+
window.console[method] = function(...args) {
|
|
13
|
+
logs.push({
|
|
14
|
+
type: method,
|
|
15
|
+
content: args.map(arg =>
|
|
16
|
+
typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)
|
|
17
|
+
).join(' '),
|
|
18
|
+
timestamp: Date.now()
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// Also call original console method
|
|
22
|
+
originalConsole[method].apply(originalConsole, arguments);
|
|
23
|
+
|
|
24
|
+
// Send to parent
|
|
25
|
+
window.parent.postMessage({
|
|
26
|
+
type: 'console',
|
|
27
|
+
data: logs[logs.length - 1]
|
|
28
|
+
}, '*');
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
window.addEventListener('error', (e) => {
|
|
33
|
+
window.parent.postMessage({
|
|
34
|
+
type: 'error',
|
|
35
|
+
data: {
|
|
36
|
+
type: 'error',
|
|
37
|
+
content: e.message + ' at ' + e.filename + ':' + e.lineno,
|
|
38
|
+
timestamp: Date.now()
|
|
39
|
+
}
|
|
40
|
+
}, '*');
|
|
41
|
+
});
|
|
42
|
+
</script>
|
|
43
|
+
`,fe=s__namespace.forwardRef(({className:l,size:d,files:n,defaultFile:f,showPreview:c=true,showConsole:r=true,autoRun:m=false,maxHeight:M="600px",previewHeight:z="300px",consoleHeight:B="150px",allowFullscreen:D=true,customRunner:x,...I},A)=>{let [b,T]=s__namespace.useState(f||n[0]?.filename||""),[$,O]=s__namespace.useState(""),[P,R]=s__namespace.useState(false),[p,v]=s__namespace.useState([]),[w,q]=s__namespace.useState(c),[y,J]=s__namespace.useState(r),[g,k]=s__namespace.useState(false),[X,S]=s__namespace.useState({}),N=s__namespace.useRef(null);n.find(e=>e.filename===b)||n[0];s__namespace.useEffect(()=>{let e=u(a=>{(a.data?.type==="console"||a.data?.type==="error")&&v(i=>[...i,a.data.data]);},"handleMessage");return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[]);let C=s__namespace.useCallback(async()=>{R(true),v([]);try{let e;if(x?e=await x(n):e=ge(n),e=ue+e,O(e),N.current){let a=N.current.contentDocument;a&&(a.open(),a.write(e),a.close());}}catch(e){v([{type:"error",content:e instanceof Error?e.message:String(e),timestamp:Date.now()}]);}finally{R(false);}},[n,x]);s__namespace.useEffect(()=>{if(m){let e=setTimeout(C,1e3);return ()=>clearTimeout(e)}},[n,m,C]);let G=s__namespace.useCallback(async e=>{let a=n.find(i=>i.filename===e);if(a)try{await navigator.clipboard.writeText(a.content),S(i=>({...i,[e]:!0})),setTimeout(()=>{S(i=>({...i,[e]:!1}));},2e3);}catch(i){console.error("Failed to copy code:",i);}},[n]),K=u(()=>{v([]);},"clearConsole"),Q=u(()=>jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(lucideReact.Terminal,{className:"h-4 w-4"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"Console"}),p.length>0&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:p.length})]}),jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:K,className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.X,{className:"h-3.5 w-3.5"})})]}),jsxRuntime.jsx("div",{className:"flex-1 overflow-auto p-2 space-y-1 font-mono text-xs",children:p.length===0?jsxRuntime.jsx("div",{className:"text-muted-foreground italic",children:"No output"}):p.map((e,a)=>jsxRuntime.jsxs("div",{className:utils.cn("flex items-start gap-2 p-2 rounded",e.type==="error"&&"bg-red-500/10 text-red-600 dark:text-red-400",e.type==="log"&&"bg-blue-500/10 text-blue-600 dark:text-blue-400",e.type==="output"&&"bg-green-500/10 text-green-600 dark:text-green-400"),children:[jsxRuntime.jsx("span",{className:"text-xs text-muted-foreground",children:new Date(e.timestamp).toLocaleTimeString()}),jsxRuntime.jsx("pre",{className:"flex-1 whitespace-pre-wrap break-words",children:e.content})]},a))})]}),"renderConsole"),U=g?"fixed inset-0 z-50 bg-background":"";return jsxRuntime.jsxs("div",{ref:A,className:utils.cn(pe({size:d}),U,l),style:{maxHeight:g?"100vh":M},...I,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsxRuntime.jsx(tabs.Tabs,{value:b,onValueChange:T,className:"flex-1",children:jsxRuntime.jsx(tabs.TabsList,{className:"h-auto p-0 bg-transparent",children:n.map(e=>jsxRuntime.jsxs(tabs.TabsTrigger,{value:e.filename,className:"relative flex items-center gap-2 data-[state=active]:bg-muted",children:[jsxRuntime.jsx("span",{children:e.filename}),jsxRuntime.jsx(badge.Badge,{variant:"outline",className:"text-xs",children:e.language}),jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:a=>{a.stopPropagation(),G(e.filename);},className:"h-6 w-6 p-0 opacity-0 group-hover:opacity-100",children:X[e.filename]?jsxRuntime.jsx(lucideReact.Check,{className:"h-3 w-3 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3 w-3"})})]},e.filename))})}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx(toggle.Toggle,{pressed:w,onPressedChange:q,"aria-label":"Toggle preview",size:"sm",children:w?jsxRuntime.jsx(lucideReact.Eye,{className:"h-4 w-4"}):jsxRuntime.jsx(lucideReact.EyeOff,{className:"h-4 w-4"})}),jsxRuntime.jsx(toggle.Toggle,{pressed:y,onPressedChange:J,"aria-label":"Toggle console",size:"sm",children:jsxRuntime.jsx(lucideReact.Terminal,{className:"h-4 w-4"})}),jsxRuntime.jsxs(button.Button,{variant:"outline",size:"sm",onClick:C,disabled:P,className:"gap-2",children:[P?jsxRuntime.jsx(lucideReact.RefreshCw,{className:"h-4 w-4 animate-spin"}):jsxRuntime.jsx(lucideReact.Play,{className:"h-4 w-4"}),"Run"]}),D&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:()=>k(!g),className:"h-8 w-8 p-0",children:g?jsxRuntime.jsx(lucideReact.Square,{className:"h-4 w-4"}):jsxRuntime.jsx(lucideReact.Settings,{className:"h-4 w-4"})})]})]}),jsxRuntime.jsxs("div",{className:"flex flex-col h-full",children:[jsxRuntime.jsx("div",{className:"flex-1 min-h-0",children:jsxRuntime.jsx(tabs.Tabs,{value:b,onValueChange:T,children:n.map(e=>jsxRuntime.jsx(tabs.TabsContent,{value:e.filename,className:"m-0 h-full",children:jsxRuntime.jsx(snippet.CodeSnippet,{code:e.content,language:e.language,showLineNumbers:true,showCopyButton:false,showHeader:false,maxHeight:"100%",className:"border-0 rounded-none"})},e.filename))})}),(w||y)&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(separator.Separator,{}),jsxRuntime.jsxs("div",{className:"flex flex-col lg:flex-row min-h-0",children:[w&&jsxRuntime.jsxs("div",{className:"flex-1 min-h-0 border-r last:border-r-0",style:{height:z},children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2 border-b px-4 py-2 bg-muted/30",children:[jsxRuntime.jsx(lucideReact.Eye,{className:"h-4 w-4"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"Preview"}),p.filter(e=>e.type==="error").length>0&&jsxRuntime.jsx(lucideReact.AlertTriangle,{className:"h-4 w-4 text-red-500"})]}),jsxRuntime.jsx("iframe",{ref:N,className:"w-full h-full bg-white",sandbox:"allow-scripts allow-same-origin",srcDoc:$})]}),y&&jsxRuntime.jsx("div",{className:"flex-1 min-h-0",style:{height:B},children:Q()})]})]})]}),g&&jsxRuntime.jsx("div",{className:"absolute inset-0 bg-black/50",onClick:()=>k(false)})]})});fe.displayName="CodePreview";exports.CodePreview=fe;exports.codePreviewVariants=pe;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import*as s from'react';import {cva}from'class-variance-authority';import {Check,Copy,Eye,EyeOff,Terminal,RefreshCw,Play,Square,Settings,AlertTriangle,X}from'lucide-react';import {cn}from'@hanzo/ui-shadcn/lib/utils';import {Badge}from'@hanzo/ui-shadcn/badge';import {Button}from'@hanzo/ui-shadcn/button';import {CodeSnippet}from'@hanzo/ui-shadcn/code/snippet';import {Separator}from'@hanzo/ui-shadcn/separator';import {Tabs,TabsList,TabsTrigger,TabsContent}from'@hanzo/ui-shadcn/tabs';import {Toggle}from'@hanzo/ui-shadcn/toggle';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var W=Object.defineProperty;var u=(l,d)=>W(l,"name",{value:d,configurable:true});var pe=cva("relative overflow-hidden rounded-lg border bg-background",{variants:{size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{size:"default"}}),ge=u(l=>{let d=l.find(r=>r.type==="html"),n=l.filter(r=>r.type==="css"),f=l.filter(r=>r.type==="js"),c=d?.content||"<div>No HTML file provided</div>";if(n.length>0&&(c=`<style>${n.map(m=>m.content).join(`
|
|
3
|
+
`)}</style>
|
|
4
|
+
${c}`),f.length>0){let r=f.map(m=>m.content).join(`
|
|
5
|
+
`);c=`${c}
|
|
6
|
+
<script>${r}</script>`;}return c},"runHTMLCode"),ue=`
|
|
7
|
+
<script>
|
|
8
|
+
const originalConsole = window.console;
|
|
9
|
+
const logs = [];
|
|
10
|
+
|
|
11
|
+
['log', 'warn', 'error', 'info'].forEach(method => {
|
|
12
|
+
window.console[method] = function(...args) {
|
|
13
|
+
logs.push({
|
|
14
|
+
type: method,
|
|
15
|
+
content: args.map(arg =>
|
|
16
|
+
typeof arg === 'object' ? JSON.stringify(arg, null, 2) : String(arg)
|
|
17
|
+
).join(' '),
|
|
18
|
+
timestamp: Date.now()
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// Also call original console method
|
|
22
|
+
originalConsole[method].apply(originalConsole, arguments);
|
|
23
|
+
|
|
24
|
+
// Send to parent
|
|
25
|
+
window.parent.postMessage({
|
|
26
|
+
type: 'console',
|
|
27
|
+
data: logs[logs.length - 1]
|
|
28
|
+
}, '*');
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
window.addEventListener('error', (e) => {
|
|
33
|
+
window.parent.postMessage({
|
|
34
|
+
type: 'error',
|
|
35
|
+
data: {
|
|
36
|
+
type: 'error',
|
|
37
|
+
content: e.message + ' at ' + e.filename + ':' + e.lineno,
|
|
38
|
+
timestamp: Date.now()
|
|
39
|
+
}
|
|
40
|
+
}, '*');
|
|
41
|
+
});
|
|
42
|
+
</script>
|
|
43
|
+
`,fe=s.forwardRef(({className:l,size:d,files:n,defaultFile:f,showPreview:c=true,showConsole:r=true,autoRun:m=false,maxHeight:M="600px",previewHeight:z="300px",consoleHeight:B="150px",allowFullscreen:D=true,customRunner:x,...I},A)=>{let [b,T]=s.useState(f||n[0]?.filename||""),[$,O]=s.useState(""),[P,R]=s.useState(false),[p,v]=s.useState([]),[w,q]=s.useState(c),[y,J]=s.useState(r),[g,k]=s.useState(false),[X$1,S]=s.useState({}),N=s.useRef(null);n.find(e=>e.filename===b)||n[0];s.useEffect(()=>{let e=u(a=>{(a.data?.type==="console"||a.data?.type==="error")&&v(i=>[...i,a.data.data]);},"handleMessage");return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[]);let C=s.useCallback(async()=>{R(true),v([]);try{let e;if(x?e=await x(n):e=ge(n),e=ue+e,O(e),N.current){let a=N.current.contentDocument;a&&(a.open(),a.write(e),a.close());}}catch(e){v([{type:"error",content:e instanceof Error?e.message:String(e),timestamp:Date.now()}]);}finally{R(false);}},[n,x]);s.useEffect(()=>{if(m){let e=setTimeout(C,1e3);return ()=>clearTimeout(e)}},[n,m,C]);let G=s.useCallback(async e=>{let a=n.find(i=>i.filename===e);if(a)try{await navigator.clipboard.writeText(a.content),S(i=>({...i,[e]:!0})),setTimeout(()=>{S(i=>({...i,[e]:!1}));},2e3);}catch(i){console.error("Failed to copy code:",i);}},[n]),K=u(()=>{v([]);},"clearConsole"),Q=u(()=>jsxs("div",{className:"flex flex-col h-full",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:[jsx(Terminal,{className:"h-4 w-4"}),jsx("span",{className:"text-sm font-medium",children:"Console"}),p.length>0&&jsx(Badge,{variant:"secondary",className:"text-xs",children:p.length})]}),jsx(Button,{variant:"ghost",size:"sm",onClick:K,className:"h-8 w-8 p-0",children:jsx(X,{className:"h-3.5 w-3.5"})})]}),jsx("div",{className:"flex-1 overflow-auto p-2 space-y-1 font-mono text-xs",children:p.length===0?jsx("div",{className:"text-muted-foreground italic",children:"No output"}):p.map((e,a)=>jsxs("div",{className:cn("flex items-start gap-2 p-2 rounded",e.type==="error"&&"bg-red-500/10 text-red-600 dark:text-red-400",e.type==="log"&&"bg-blue-500/10 text-blue-600 dark:text-blue-400",e.type==="output"&&"bg-green-500/10 text-green-600 dark:text-green-400"),children:[jsx("span",{className:"text-xs text-muted-foreground",children:new Date(e.timestamp).toLocaleTimeString()}),jsx("pre",{className:"flex-1 whitespace-pre-wrap break-words",children:e.content})]},a))})]}),"renderConsole"),U=g?"fixed inset-0 z-50 bg-background":"";return jsxs("div",{ref:A,className:cn(pe({size:d}),U,l),style:{maxHeight:g?"100vh":M},...I,children:[jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2",children:[jsx(Tabs,{value:b,onValueChange:T,className:"flex-1",children:jsx(TabsList,{className:"h-auto p-0 bg-transparent",children:n.map(e=>jsxs(TabsTrigger,{value:e.filename,className:"relative flex items-center gap-2 data-[state=active]:bg-muted",children:[jsx("span",{children:e.filename}),jsx(Badge,{variant:"outline",className:"text-xs",children:e.language}),jsx(Button,{variant:"ghost",size:"sm",onClick:a=>{a.stopPropagation(),G(e.filename);},className:"h-6 w-6 p-0 opacity-0 group-hover:opacity-100",children:X$1[e.filename]?jsx(Check,{className:"h-3 w-3 text-green-500"}):jsx(Copy,{className:"h-3 w-3"})})]},e.filename))})}),jsxs("div",{className:"flex items-center gap-2",children:[jsx(Toggle,{pressed:w,onPressedChange:q,"aria-label":"Toggle preview",size:"sm",children:w?jsx(Eye,{className:"h-4 w-4"}):jsx(EyeOff,{className:"h-4 w-4"})}),jsx(Toggle,{pressed:y,onPressedChange:J,"aria-label":"Toggle console",size:"sm",children:jsx(Terminal,{className:"h-4 w-4"})}),jsxs(Button,{variant:"outline",size:"sm",onClick:C,disabled:P,className:"gap-2",children:[P?jsx(RefreshCw,{className:"h-4 w-4 animate-spin"}):jsx(Play,{className:"h-4 w-4"}),"Run"]}),D&&jsx(Button,{variant:"ghost",size:"sm",onClick:()=>k(!g),className:"h-8 w-8 p-0",children:g?jsx(Square,{className:"h-4 w-4"}):jsx(Settings,{className:"h-4 w-4"})})]})]}),jsxs("div",{className:"flex flex-col h-full",children:[jsx("div",{className:"flex-1 min-h-0",children:jsx(Tabs,{value:b,onValueChange:T,children:n.map(e=>jsx(TabsContent,{value:e.filename,className:"m-0 h-full",children:jsx(CodeSnippet,{code:e.content,language:e.language,showLineNumbers:true,showCopyButton:false,showHeader:false,maxHeight:"100%",className:"border-0 rounded-none"})},e.filename))})}),(w||y)&&jsxs(Fragment,{children:[jsx(Separator,{}),jsxs("div",{className:"flex flex-col lg:flex-row min-h-0",children:[w&&jsxs("div",{className:"flex-1 min-h-0 border-r last:border-r-0",style:{height:z},children:[jsxs("div",{className:"flex items-center gap-2 border-b px-4 py-2 bg-muted/30",children:[jsx(Eye,{className:"h-4 w-4"}),jsx("span",{className:"text-sm font-medium",children:"Preview"}),p.filter(e=>e.type==="error").length>0&&jsx(AlertTriangle,{className:"h-4 w-4 text-red-500"})]}),jsx("iframe",{ref:N,className:"w-full h-full bg-white",sandbox:"allow-scripts allow-same-origin",srcDoc:$})]}),y&&jsx("div",{className:"flex-1 min-h-0",style:{height:B},children:Q()})]})]})]}),g&&jsx("div",{className:"absolute inset-0 bg-black/50",onClick:()=>k(false)})]})});fe.displayName="CodePreview";export{fe as CodePreview,pe as codePreviewVariants};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var t=require('react'),classVarianceAuthority=require('class-variance-authority'),lucideReact=require('lucide-react'),shiki=require('shiki'),utils=require('@hanzo/ui-shadcn/lib/utils'),badge=require('@hanzo/ui-shadcn/badge'),button=require('@hanzo/ui-shadcn/button'),skeleton=require('@hanzo/ui-shadcn/skeleton'),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 t__namespace=/*#__PURE__*/_interopNamespace(t);var U=Object.defineProperty;var b=(l,o)=>U(l,"name",{value:o,configurable:true});var B=classVarianceAuthority.cva("relative group",{variants:{variant:{default:"rounded-lg border bg-muted/50",inline:"inline-block rounded-md bg-muted px-2 py-1",minimal:"bg-transparent"},theme:{dark:"bg-slate-950 border-slate-800",light:"bg-slate-50 border-slate-200",github:"bg-white border-slate-200","github-dark":"bg-slate-900 border-slate-700",terminal:"bg-black border-green-500/30 text-green-400",retro:"bg-amber-50 border-amber-200 text-amber-900"},size:{xs:"text-xs",sm:"text-sm",default:"text-sm",lg:"text-base"}},defaultVariants:{variant:"default",theme:"dark",size:"default"}}),I=t__namespace.forwardRef(({className:l,variant:o,theme:c,size:p,code:i,language:d="text",filename:f,showLineNumbers:w=false,highlightLines:z=[],showCopyButton:v=true,showLanguageBadge:V=true,showHeader:_=true,maxHeight:P,expandable:h=false,collapsedHeight:A="200px",wrapLines:x=false,startLineNumber:D=1,...F},j)=>{let[k,C]=t__namespace.useState(""),[y,H]=t__namespace.useState(false),[q,L]=t__namespace.useState(true),[m,O]=t__namespace.useState(!h),G={dark:"github-dark",light:"github-light",github:"github-light","github-dark":"github-dark",terminal:"github-dark",retro:"github-light"};t__namespace.useEffect(()=>{b(async()=>{L(true);try{let a=Object.keys(shiki.bundledLanguages).includes(d),s=await shiki.codeToHtml(i,{lang:a?d:"text",theme:G[c||"dark"]}),u=document.createElement("div");u.innerHTML=s;let Q=u.querySelector("code");C(Q?.innerHTML||s);}catch(a){console.error("Failed to highlight code:",a);let s=i.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");C(s);}finally{L(false);}},"highlightCode")();},[i,d,c]);let T=t__namespace.useCallback(async()=>{try{await navigator.clipboard.writeText(i),H(!0),setTimeout(()=>H(!1),2e3);}catch(n){console.error("Failed to copy code:",n);}},[i]),M=k.split(`
|
|
3
|
+
`).filter((n,a,s)=>n.trim()!==""||a<s.length-1),J=b(()=>jsxRuntime.jsx("code",{className:utils.cn(B({variant:o,theme:c,size:p}),"font-mono",l),dangerouslySetInnerHTML:{__html:k}}),"renderInline"),K=b(()=>jsxRuntime.jsxs("div",{ref:j,className:utils.cn(B({variant:o,theme:c,size:p}),"overflow-hidden",l),...F,children:[_&&(f||d||v||h)&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[f&&jsxRuntime.jsxs("div",{className:"flex items-center gap-1.5",children:[jsxRuntime.jsx(lucideReact.FileText,{className:"h-3.5 w-3.5 text-muted-foreground"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:f})]}),V&&d&&jsxRuntime.jsx(badge.Badge,{variant:"secondary",className:"text-xs",children:d})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[h&&jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",onClick:()=>O(!m),className:"h-8 w-8 p-0",children:[m?jsxRuntime.jsx(lucideReact.Minimize2,{className:"h-3.5 w-3.5"}):jsxRuntime.jsx(lucideReact.Maximize2,{className:"h-3.5 w-3.5"}),jsxRuntime.jsx("span",{className:"sr-only",children:m?"Collapse":"Expand"})]}),v&&jsxRuntime.jsxs(button.Button,{variant:"ghost",size:"sm",onClick:T,className:"h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity",children:[y?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"}),jsxRuntime.jsx("span",{className:"sr-only",children:y?"Copied":"Copy code"})]})]})]}),jsxRuntime.jsx("div",{className:utils.cn("overflow-auto",!x&&"overflow-x-auto"),style:{maxHeight:m?P:A},children:q?jsxRuntime.jsx("div",{className:"p-4 space-y-2",children:Array.from({length:Math.min(M.length||5,10)}).map((n,a)=>jsxRuntime.jsxs("div",{className:"flex items-center gap-4",children:[w&&jsxRuntime.jsx(skeleton.Skeleton,{className:"h-4 w-8"}),jsxRuntime.jsx(skeleton.Skeleton,{className:"h-4 flex-1"})]},a))}):jsxRuntime.jsx("div",{className:"font-mono",children:M.map((n,a)=>{let s=a+D,u=z.includes(s);return jsxRuntime.jsxs("div",{className:utils.cn("group relative flex min-h-[1.5rem] items-center px-4 py-0.5",u&&"bg-blue-500/10 border-l-2 border-l-blue-500",!x&&"whitespace-nowrap"),children:[w&&jsxRuntime.jsx("span",{className:"mr-4 inline-block w-8 select-none text-right text-xs text-muted-foreground",children:s}),jsxRuntime.jsx("div",{className:utils.cn("flex-1",x?"whitespace-pre-wrap break-words":"overflow-x-auto"),dangerouslySetInnerHTML:{__html:n}})]},a)})})}),h&&!m&&jsxRuntime.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-8 bg-gradient-to-t from-background to-transparent pointer-events-none"}),o==="minimal"&&v&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:T,className:"absolute top-2 right-2 h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity",children:y?jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5 text-green-500"}):jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"})})]}),"renderBlock");return o==="inline"?J():K()});I.displayName="CodeSnippet";var ae=t__namespace.forwardRef(({children:l,language:o,className:c,...p},i)=>jsxRuntime.jsx(I,{ref:i,code:l,language:o,variant:"inline",showCopyButton:false,showLanguageBadge:false,showHeader:false,className:c,...p}));ae.displayName="InlineCode";exports.CodeSnippet=I;exports.InlineCode=ae;exports.codeSnippetVariants=B;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import*as t from'react';import {cva}from'class-variance-authority';import {FileText,Minimize2,Maximize2,Check,Copy}from'lucide-react';import {bundledLanguages,codeToHtml}from'shiki';import {cn}from'@hanzo/ui-shadcn/lib/utils';import {Badge}from'@hanzo/ui-shadcn/badge';import {Button}from'@hanzo/ui-shadcn/button';import {Skeleton}from'@hanzo/ui-shadcn/skeleton';import {jsx,jsxs}from'react/jsx-runtime';var U=Object.defineProperty;var b=(l,o)=>U(l,"name",{value:o,configurable:true});var B=cva("relative group",{variants:{variant:{default:"rounded-lg border bg-muted/50",inline:"inline-block rounded-md bg-muted px-2 py-1",minimal:"bg-transparent"},theme:{dark:"bg-slate-950 border-slate-800",light:"bg-slate-50 border-slate-200",github:"bg-white border-slate-200","github-dark":"bg-slate-900 border-slate-700",terminal:"bg-black border-green-500/30 text-green-400",retro:"bg-amber-50 border-amber-200 text-amber-900"},size:{xs:"text-xs",sm:"text-sm",default:"text-sm",lg:"text-base"}},defaultVariants:{variant:"default",theme:"dark",size:"default"}}),I=t.forwardRef(({className:l,variant:o,theme:c,size:p,code:i,language:d="text",filename:f,showLineNumbers:w=false,highlightLines:z=[],showCopyButton:v=true,showLanguageBadge:V=true,showHeader:_=true,maxHeight:P,expandable:h=false,collapsedHeight:A="200px",wrapLines:x=false,startLineNumber:D=1,...F},j)=>{let[k,C]=t.useState(""),[y,H]=t.useState(false),[q,L]=t.useState(true),[m,O]=t.useState(!h),G={dark:"github-dark",light:"github-light",github:"github-light","github-dark":"github-dark",terminal:"github-dark",retro:"github-light"};t.useEffect(()=>{b(async()=>{L(true);try{let a=Object.keys(bundledLanguages).includes(d),s=await codeToHtml(i,{lang:a?d:"text",theme:G[c||"dark"]}),u=document.createElement("div");u.innerHTML=s;let Q=u.querySelector("code");C(Q?.innerHTML||s);}catch(a){console.error("Failed to highlight code:",a);let s=i.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");C(s);}finally{L(false);}},"highlightCode")();},[i,d,c]);let T=t.useCallback(async()=>{try{await navigator.clipboard.writeText(i),H(!0),setTimeout(()=>H(!1),2e3);}catch(n){console.error("Failed to copy code:",n);}},[i]),M=k.split(`
|
|
3
|
+
`).filter((n,a,s)=>n.trim()!==""||a<s.length-1),J=b(()=>jsx("code",{className:cn(B({variant:o,theme:c,size:p}),"font-mono",l),dangerouslySetInnerHTML:{__html:k}}),"renderInline"),K=b(()=>jsxs("div",{ref:j,className:cn(B({variant:o,theme:c,size:p}),"overflow-hidden",l),...F,children:[_&&(f||d||v||h)&&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:[f&&jsxs("div",{className:"flex items-center gap-1.5",children:[jsx(FileText,{className:"h-3.5 w-3.5 text-muted-foreground"}),jsx("span",{className:"text-sm font-medium",children:f})]}),V&&d&&jsx(Badge,{variant:"secondary",className:"text-xs",children:d})]}),jsxs("div",{className:"flex items-center gap-1",children:[h&&jsxs(Button,{variant:"ghost",size:"sm",onClick:()=>O(!m),className:"h-8 w-8 p-0",children:[m?jsx(Minimize2,{className:"h-3.5 w-3.5"}):jsx(Maximize2,{className:"h-3.5 w-3.5"}),jsx("span",{className:"sr-only",children:m?"Collapse":"Expand"})]}),v&&jsxs(Button,{variant:"ghost",size:"sm",onClick:T,className:"h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity",children:[y?jsx(Check,{className:"h-3.5 w-3.5 text-green-500"}):jsx(Copy,{className:"h-3.5 w-3.5"}),jsx("span",{className:"sr-only",children:y?"Copied":"Copy code"})]})]})]}),jsx("div",{className:cn("overflow-auto",!x&&"overflow-x-auto"),style:{maxHeight:m?P:A},children:q?jsx("div",{className:"p-4 space-y-2",children:Array.from({length:Math.min(M.length||5,10)}).map((n,a)=>jsxs("div",{className:"flex items-center gap-4",children:[w&&jsx(Skeleton,{className:"h-4 w-8"}),jsx(Skeleton,{className:"h-4 flex-1"})]},a))}):jsx("div",{className:"font-mono",children:M.map((n,a)=>{let s=a+D,u=z.includes(s);return jsxs("div",{className:cn("group relative flex min-h-[1.5rem] items-center px-4 py-0.5",u&&"bg-blue-500/10 border-l-2 border-l-blue-500",!x&&"whitespace-nowrap"),children:[w&&jsx("span",{className:"mr-4 inline-block w-8 select-none text-right text-xs text-muted-foreground",children:s}),jsx("div",{className:cn("flex-1",x?"whitespace-pre-wrap break-words":"overflow-x-auto"),dangerouslySetInnerHTML:{__html:n}})]},a)})})}),h&&!m&&jsx("div",{className:"absolute bottom-0 left-0 right-0 h-8 bg-gradient-to-t from-background to-transparent pointer-events-none"}),o==="minimal"&&v&&jsx(Button,{variant:"ghost",size:"sm",onClick:T,className:"absolute top-2 right-2 h-8 w-8 p-0 opacity-0 group-hover:opacity-100 transition-opacity",children:y?jsx(Check,{className:"h-3.5 w-3.5 text-green-500"}):jsx(Copy,{className:"h-3.5 w-3.5"})})]}),"renderBlock");return o==="inline"?J():K()});I.displayName="CodeSnippet";var ae=t.forwardRef(({children:l,language:o,className:c,...p},i)=>jsx(I,{ref:i,code:l,language:o,variant:"inline",showCopyButton:false,showLanguageBadge:false,showHeader:false,className:c,...p}));ae.displayName="InlineCode";export{I as CodeSnippet,ae as InlineCode,B as codeSnippetVariants};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var a=require('react'),utils=require('@hanzo/ui-shadcn/lib/utils'),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 a__namespace=/*#__PURE__*/_interopNamespace(a);var b=a__namespace.forwardRef(({className:o,tabs:t=[],defaultTab:m=0,...s},c)=>{let[i,l]=a__namespace.useState(m);return t.length===0?jsxRuntime.jsx("div",{ref:c,className:utils.cn("rounded-lg border bg-card p-6 text-card-foreground shadow-sm",o),...s,children:jsxRuntime.jsx("p",{className:"text-sm text-muted-foreground",children:"No code tabs available. Add tabs to display code snippets."})}):jsxRuntime.jsxs("div",{ref:c,className:utils.cn("rounded-lg border bg-card text-card-foreground shadow-sm",o),...s,children:[jsxRuntime.jsx("div",{className:"border-b",children:jsxRuntime.jsx("div",{className:"flex gap-1 p-2",children:t.map((n,d)=>jsxRuntime.jsx("button",{onClick:()=>l(d),className:utils.cn("rounded-md px-4 py-2 text-sm font-medium transition-colors",i===d?"bg-primary text-primary-foreground":"hover:bg-muted"),children:n.label},d))})}),jsxRuntime.jsx("div",{className:"p-4",children:jsxRuntime.jsx("pre",{className:"overflow-x-auto rounded-md bg-muted p-4",children:jsxRuntime.jsx("code",{className:"text-sm",children:t[i]?.code})})})]})});b.displayName="CodeTabs";exports.CodeTabs=b;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import*as a from'react';import {cn}from'@hanzo/ui-shadcn/lib/utils';import {jsx,jsxs}from'react/jsx-runtime';var b=a.forwardRef(({className:o,tabs:t=[],defaultTab:m=0,...s},c)=>{let[i,l]=a.useState(m);return t.length===0?jsx("div",{ref:c,className:cn("rounded-lg border bg-card p-6 text-card-foreground shadow-sm",o),...s,children:jsx("p",{className:"text-sm text-muted-foreground",children:"No code tabs available. Add tabs to display code snippets."})}):jsxs("div",{ref:c,className:cn("rounded-lg border bg-card text-card-foreground shadow-sm",o),...s,children:[jsx("div",{className:"border-b",children:jsx("div",{className:"flex gap-1 p-2",children:t.map((n,d)=>jsx("button",{onClick:()=>l(d),className:cn("rounded-md px-4 py-2 text-sm font-medium transition-colors",i===d?"bg-primary text-primary-foreground":"hover:bg-muted"),children:n.label},d))})}),jsx("div",{className:"p-4",children:jsx("pre",{className:"overflow-x-auto rounded-md bg-muted p-4",children:jsx("code",{className:"text-sm",children:t[i]?.code})})})]})});b.displayName="CodeTabs";export{b as CodeTabs};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';var r=require('react'),classVarianceAuthority=require('class-variance-authority'),lucideReact=require('lucide-react'),utils=require('@hanzo/ui-shadcn/lib/utils'),button=require('@hanzo/ui-shadcn/button'),input=require('@hanzo/ui-shadcn/input'),scrollArea=require('@hanzo/ui-shadcn/scroll-area'),separator=require('@hanzo/ui-shadcn/separator'),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 Z=Object.defineProperty;var b=(c,f)=>Z(c,"name",{value:f,configurable:true});var me=classVarianceAuthority.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)=>jsxRuntime.jsx("span",{className:utils.cn(y.classes),children:y.text},m))},"parseAnsiContent"),de=r__namespace.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__namespace.useState(U),[S,v]=r__namespace.useState(""),[k,N]=r__namespace.useState(-1),[R,O]=r__namespace.useState(false),[p,K]=r__namespace.useState(P),C=r__namespace.useRef(null),E=r__namespace.useRef(null);r__namespace.useEffect(()=>{M&&C.current&&(C.current.scrollTop=C.current.scrollHeight);},[u,M]);let h=r__namespace.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__namespace.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__namespace.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__namespace.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 jsxRuntime.jsxs("div",{ref:j,className:utils.cn(me({theme:f,size:x}),R&&"fixed inset-0 z-50",c),style:{height:R?"100vh":F},onClick:Q,...V,children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs("div",{className:"flex gap-1",children:[jsxRuntime.jsx("div",{className:"w-3 h-3 rounded-full bg-red-500"}),jsxRuntime.jsx("div",{className:"w-3 h-3 rounded-full bg-yellow-500"}),jsxRuntime.jsx("div",{className:"w-3 h-3 rounded-full bg-green-500"})]}),jsxRuntime.jsx(lucideReact.Terminal,{className:"h-4 w-4"}),jsxRuntime.jsx("span",{className:"text-sm font-medium",children:d}),u.length>0&&jsxRuntime.jsxs("span",{className:"text-xs text-muted-foreground",children:[u.length," lines"]})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-1",children:[z&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:J,className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.RefreshCw,{className:"h-3.5 w-3.5"})}),H&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:q,className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.Copy,{className:"h-3.5 w-3.5"})}),A&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:X,className:"h-8 w-8 p-0",children:jsxRuntime.jsx(lucideReact.Download,{className:"h-3.5 w-3.5"})}),B&&jsxRuntime.jsx(button.Button,{variant:"ghost",size:"sm",onClick:()=>O(!R),className:"h-8 w-8 p-0",children:R?jsxRuntime.jsx(lucideReact.Minimize2,{className:"h-3.5 w-3.5"}):jsxRuntime.jsx(lucideReact.Maximize2,{className:"h-3.5 w-3.5"})})]})]}),jsxRuntime.jsxs("div",{className:"flex-1 flex flex-col min-h-0",children:[jsxRuntime.jsx(scrollArea.ScrollArea,{ref:C,className:"flex-1 p-4",children:jsxRuntime.jsx("div",{className:"space-y-1 font-mono",children:u.map((e,s)=>jsxRuntime.jsxs("div",{className:"flex items-start gap-2",children:[y&&jsxRuntime.jsx("span",{className:"text-xs text-muted-foreground w-12 text-right flex-shrink-0",children:s+1}),jsxRuntime.jsx("div",{className:utils.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&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(separator.Separator,{}),jsxRuntime.jsx("form",{onSubmit:G,className:"p-4",children:jsxRuntime.jsxs("div",{className:"flex items-center gap-2 font-mono",children:[jsxRuntime.jsx(lucideReact.ChevronRight,{className:"h-4 w-4 flex-shrink-0"}),jsxRuntime.jsx("span",{className:"flex-shrink-0",children:a}),jsxRuntime.jsx(input.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";exports.CodeTerminal=de;exports.codeTerminalVariants=me;
|