@wakastellar/ui 4.0.1 → 4.1.1
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/dist/blocks/_shared/identity/InviteUserPanel.cjs.js +1 -1
- package/dist/blocks/_shared/identity/RoleSelect.cjs.js +1 -1
- package/dist/blocks/_shared/identity/SidePushLayout.cjs.js +1 -1
- package/dist/blocks/activity-timeline/index.cjs.js +1 -1
- package/dist/blocks/activity-timeline/index.es.js +1 -1
- package/dist/blocks/antivirus-dashboard/index.cjs.js +1 -1
- package/dist/blocks/antivirus-dashboard/index.es.js +1 -1
- package/dist/blocks/api-keys-manager/index.cjs.js +1 -1
- package/dist/blocks/apm-overview/index.cjs.js +1 -1
- package/dist/blocks/auth-2fa/index.cjs.js +2 -2
- package/dist/blocks/auth-2fa/index.es.js +1 -1
- package/dist/blocks/avatar-upload/index.cjs.js +1 -1
- package/dist/blocks/avatar-upload/index.es.js +13 -13
- package/dist/blocks/calendar-view/index.cjs.js +1 -1
- package/dist/blocks/calendar-view/index.es.js +1 -1
- package/dist/blocks/chat/index.cjs.js +1 -1
- package/dist/blocks/chat/index.es.js +162 -162
- package/dist/blocks/chat/widget.cjs.js +1 -1
- package/dist/blocks/chat/widget.es.js +19 -13
- package/dist/blocks/chat-interface/index.cjs.js +1 -1
- package/dist/blocks/chat-interface/index.es.js +1 -1
- package/dist/blocks/checkout-flow/index.cjs.js +1 -1
- package/dist/blocks/checkout-flow/index.es.js +1 -1
- package/dist/blocks/cicd-builder/index.cjs.js +1 -1
- package/dist/blocks/clamav-service-status/index.cjs.js +1 -1
- package/dist/blocks/cloud-cost-dashboard/index.cjs.js +1 -1
- package/dist/blocks/container-orchestrator/index.cjs.js +1 -1
- package/dist/blocks/container-orchestrator/index.es.js +2 -1
- package/dist/blocks/dashboard/index.cjs.js +1 -1
- package/dist/blocks/dashboard/index.es.js +2 -2
- package/dist/blocks/dashboard-kpi/index.cjs.js +1 -1
- package/dist/blocks/dashboard-kpi/index.es.js +1 -1
- package/dist/blocks/database-admin/index.cjs.js +1 -1
- package/dist/blocks/deployment-dashboard/index.cjs.js +1 -1
- package/dist/blocks/deployment-dashboard/index.es.js +1 -1
- package/dist/blocks/empty-states/index.cjs.js +1 -1
- package/dist/blocks/empty-states/index.es.js +1 -1
- package/dist/blocks/error-pages/index.cjs.js +1 -1
- package/dist/blocks/error-pages/index.es.js +1 -1
- package/dist/blocks/faq/index.cjs.js +1 -1
- package/dist/blocks/faq/index.es.js +1 -1
- package/dist/blocks/file-manager/index.cjs.js +1 -1
- package/dist/blocks/file-manager/index.es.js +1 -1
- package/dist/blocks/file-scan-uploader/index.cjs.js +1 -1
- package/dist/blocks/file-scan-uploader/index.es.js +2 -2
- package/dist/blocks/footer/index.cjs.js +1 -1
- package/dist/blocks/gitops-sync-status/index.cjs.js +1 -1
- package/dist/blocks/header/index.cjs.js +1 -1
- package/dist/blocks/header/index.es.js +1 -1
- package/dist/blocks/headtab/index.cjs.js +1 -1
- package/dist/blocks/i18n-editor/index.cjs.js +1 -1
- package/dist/blocks/i18n-editor/index.es.js +127 -127
- package/dist/blocks/incident-manager/index.cjs.js +1 -1
- package/dist/blocks/infrastructure-map/index.cjs.js +1 -1
- package/dist/blocks/kanban-board/index.cjs.js +1 -1
- package/dist/blocks/kanban-board/index.es.js +1 -1
- package/dist/blocks/landing/index.cjs.js +1 -1
- package/dist/blocks/landing/index.es.js +1 -1
- package/dist/blocks/language-selector/index.cjs.js +1 -1
- package/dist/blocks/layout/index.cjs.js +1 -1
- package/dist/blocks/login/index.cjs.js +1 -1
- package/dist/blocks/on-call-schedule/index.cjs.js +1 -1
- package/dist/blocks/player-profile/index.cjs.js +1 -1
- package/dist/blocks/player-profile/index.es.js +1 -1
- package/dist/blocks/pricing/index.cjs.js +1 -1
- package/dist/blocks/pricing/index.es.js +1 -1
- package/dist/blocks/profile/index.cjs.js +1 -1
- package/dist/blocks/profile/index.es.js +1 -1
- package/dist/blocks/profile-list/index.cjs.js +1 -1
- package/dist/blocks/quarantine-manager/index.cjs.js +1 -1
- package/dist/blocks/quarantine-manager/index.es.js +1 -1
- package/dist/blocks/release-notes/index.cjs.js +1 -1
- package/dist/blocks/scan-history-log/index.cjs.js +1 -1
- package/dist/blocks/scan-history-log/index.es.js +1 -1
- package/dist/blocks/scan-policy-editor/index.cjs.js +1 -1
- package/dist/blocks/scan-report-generator/index.cjs.js +1 -1
- package/dist/blocks/settings/index.cjs.js +1 -1
- package/dist/blocks/settings/index.es.js +1 -1
- package/dist/blocks/sidebar/index.cjs.js +1 -1
- package/dist/blocks/sidebar/index.es.js +1 -1
- package/dist/blocks/signature-database-manager/index.cjs.js +1 -1
- package/dist/blocks/team-form/index.cjs.js +1 -1
- package/dist/blocks/threat-alert-banner/index.cjs.js +1 -1
- package/dist/blocks/user-management/index.cjs.js +1 -1
- package/dist/blocks/waka-doc-shell/index.cjs.js +1 -1
- package/dist/blocks/wizard/index.cjs.js +1 -1
- package/dist/blocks/wizard/index.es.js +37 -37
- package/dist/charts.cjs.js +1 -1
- package/dist/charts.es.js +8 -8
- package/dist/cli/index.cjs +5 -1
- package/dist/components/DataTable/DataTable.cjs.js +1 -1
- package/dist/components/DataTable/DataTable.es.js +68 -66
- package/dist/components/DataTable/DataTableAdvanced.cjs.js +1 -1
- package/dist/components/DataTable/DataTableColumnResizer.cjs.js +1 -1
- package/dist/components/DataTable/DataTableContextMenu.cjs.js +1 -1
- package/dist/components/DataTable/DataTableEditCell.cjs.js +1 -1
- package/dist/components/DataTable/DataTableFilters.cjs.js +1 -1
- package/dist/components/DataTable/DataTableGrouping.cjs.js +1 -1
- package/dist/components/DataTable/DataTablePagination.cjs.js +1 -1
- package/dist/components/DataTable/DataTablePagination.d.ts +3 -1
- package/dist/components/DataTable/DataTablePagination.es.js +38 -27
- package/dist/components/DataTable/DataTableSelection.cjs.js +1 -1
- package/dist/components/DataTable/DataTableToolbar.cjs.js +1 -1
- package/dist/components/DataTable/hooks/useDataTable.cjs.js +1 -1
- package/dist/components/DataTable/hooks/useDataTable.es.js +5 -1
- package/dist/components/DataTable/hooks/useDataTableAdvanced.cjs.js +1 -1
- package/dist/components/DataTable/hooks/useDataTableEdit.cjs.js +1 -1
- package/dist/components/DataTable/hooks/useDataTableExport.cjs.js +2 -2
- package/dist/components/DataTable/hooks/useDataTableImport.cjs.js +2 -2
- package/dist/components/DataTable/hooks/useDataTableImport.es.js +2 -1
- package/dist/components/DataTable/hooks/useDataTableTheme.cjs.js +1 -1
- package/dist/components/DataTable/hooks/useDataTableVirtualization.cjs.js +1 -1
- package/dist/components/DataTable/hooks/useTableLayout.cjs.js +1 -1
- package/dist/components/DataTable/utils.cjs.js +1 -1
- package/dist/components/accordion/index.cjs.js +1 -1
- package/dist/components/alert/index.cjs.js +1 -1
- package/dist/components/alert-dialog/index.cjs.js +1 -1
- package/dist/components/aspect-ratio/index.cjs.js +1 -1
- package/dist/components/avatar/index.cjs.js +1 -1
- package/dist/components/badge/index.cjs.js +1 -1
- package/dist/components/button/index.cjs.js +1 -1
- package/dist/components/calendar/index.cjs.js +1 -1
- package/dist/components/card/index.cjs.js +1 -1
- package/dist/components/checkbox/index.cjs.js +1 -1
- package/dist/components/code/index.cjs.js +2 -2
- package/dist/components/code/index.es.js +3 -2
- package/dist/components/collapsible/index.cjs.js +1 -1
- package/dist/components/command/index.cjs.js +1 -1
- package/dist/components/context-menu/index.cjs.js +1 -1
- package/dist/components/dialog/index.cjs.js +1 -1
- package/dist/components/dropdown-menu/index.cjs.js +1 -1
- package/dist/components/editor/blocks/index.cjs.js +1 -1
- package/dist/components/editor/blocks/index.es.js +12 -12
- package/dist/components/editor/blocks/waka-acceptance-criteria-block.cjs.js +1 -1
- package/dist/components/editor/blocks/waka-ai-assist-block.cjs.js +1 -1
- package/dist/components/editor/blocks/waka-api-endpoint-block.cjs.js +1 -1
- package/dist/components/editor/blocks/waka-code-playground-block.cjs.js +1 -1
- package/dist/components/editor/blocks/waka-comment-thread-block.cjs.js +1 -1
- package/dist/components/editor/blocks/waka-diagram-block.cjs.js +3 -3
- package/dist/components/editor/blocks/waka-diagram-block.es.js +21 -40
- package/dist/components/editor/blocks/waka-embed-block.cjs.js +1 -1
- package/dist/components/editor/blocks/waka-slash-menu-block.cjs.js +1 -1
- package/dist/components/editor/blocks/waka-user-story-block.cjs.js +1 -1
- package/dist/components/editor/blocks/waka-version-diff-block.cjs.js +1 -1
- package/dist/components/editor/waka-ai-writer.cjs.js +1 -1
- package/dist/components/editor/waka-collaborative-editor.cjs.js +1 -1
- package/dist/components/editor/waka-diff-viewer.cjs.js +1 -1
- package/dist/components/editor/waka-dnd-editor.cjs.js +1 -1
- package/dist/components/editor/waka-document-editor.cjs.js +1 -1
- package/dist/components/editor/waka-document-editor.es.js +1 -1
- package/dist/components/editor/waka-editor-elements.cjs.js +1 -1
- package/dist/components/editor/waka-editor-leaves.cjs.js +1 -1
- package/dist/components/editor/waka-editor-toolbar.cjs.js +1 -1
- package/dist/components/editor/waka-editor.cjs.js +1 -1
- package/dist/components/editor/waka-floating-toolbar.cjs.js +1 -1
- package/dist/components/editor/waka-markdown-editor.cjs.js +1 -1
- package/dist/components/editor/waka-mention-editor.cjs.js +1 -1
- package/dist/components/editor/waka-mention-editor.es.js +2 -2
- package/dist/components/editor/waka-slash-menu.cjs.js +1 -1
- package/dist/components/editor/waka-spec-editor.cjs.js +1 -1
- package/dist/components/form/index.cjs.js +1 -1
- package/dist/components/hover-card/index.cjs.js +1 -1
- package/dist/components/input/index.cjs.js +1 -1
- package/dist/components/input-otp/index.cjs.js +1 -1
- package/dist/components/input-otp/index.es.js +2 -1
- package/dist/components/label/index.cjs.js +1 -1
- package/dist/components/language-selector/index.cjs.js +1 -1
- package/dist/components/menubar/index.cjs.js +1 -1
- package/dist/components/navigation-menu/index.cjs.js +1 -1
- package/dist/components/popover/index.cjs.js +1 -1
- package/dist/components/progress/index.cjs.js +1 -1
- package/dist/components/radio-group/index.cjs.js +1 -1
- package/dist/components/resizable/index.cjs.js +1 -1
- package/dist/components/resizable/index.es.js +9 -9
- package/dist/components/scroll-area/index.cjs.js +1 -1
- package/dist/components/select/index.cjs.js +1 -1
- package/dist/components/separator/index.cjs.js +1 -1
- package/dist/components/sheet/index.cjs.js +1 -1
- package/dist/components/skeleton/index.cjs.js +1 -1
- package/dist/components/slider/index.cjs.js +1 -1
- package/dist/components/switch/index.cjs.js +1 -1
- package/dist/components/table/index.cjs.js +1 -1
- package/dist/components/tabs/index.cjs.js +1 -1
- package/dist/components/textarea/index.cjs.js +1 -1
- package/dist/components/theme-selector/index.cjs.js +1 -1
- package/dist/components/toast/index.cjs.js +1 -1
- package/dist/components/toaster/index.cjs.js +1 -1
- package/dist/components/toggle/index.cjs.js +1 -1
- package/dist/components/toggle-group/index.cjs.js +1 -1
- package/dist/components/tooltip/index.cjs.js +1 -1
- package/dist/components/typography/index.cjs.js +1 -1
- package/dist/components/waka-3d-pie-chart/index.cjs.js +1 -1
- package/dist/components/waka-3d-pie-chart/index.es.js +1 -1
- package/dist/components/waka-achievement-unlock/index.cjs.js +1 -1
- package/dist/components/waka-achievement-unlock/index.es.js +1 -1
- package/dist/components/waka-activity-feed/index.cjs.js +2 -2
- package/dist/components/waka-activity-feed/index.es.js +1 -1
- package/dist/components/waka-ad-banner/index.cjs.js +1 -1
- package/dist/components/waka-ad-banner/index.es.js +18 -15
- package/dist/components/waka-ad-fallback/index.cjs.js +1 -1
- package/dist/components/waka-ad-fallback/index.es.js +1 -1
- package/dist/components/waka-ad-inline/index.cjs.js +1 -1
- package/dist/components/waka-ad-inline/index.es.js +2 -2
- package/dist/components/waka-ad-interstitial/index.cjs.js +1 -1
- package/dist/components/waka-ad-interstitial/index.es.js +3 -3
- package/dist/components/waka-ad-placeholder/index.cjs.js +2 -2
- package/dist/components/waka-ad-placeholder/index.es.js +1 -1
- package/dist/components/waka-ad-provider/index.cjs.js +1 -1
- package/dist/components/waka-ad-provider/index.es.js +1 -1
- package/dist/components/waka-ad-sidebar/index.cjs.js +1 -1
- package/dist/components/waka-ad-sidebar/index.es.js +2 -2
- package/dist/components/waka-ad-sticky-footer/index.cjs.js +1 -1
- package/dist/components/waka-ad-sticky-footer/index.es.js +2 -2
- package/dist/components/waka-address-autocomplete/index.cjs.js +2 -2
- package/dist/components/waka-address-autocomplete/index.es.js +10 -6
- package/dist/components/waka-admincrumb/index.cjs.js +1 -1
- package/dist/components/waka-alert-panel/index.cjs.js +1 -1
- package/dist/components/waka-alert-stack/index.cjs.js +1 -1
- package/dist/components/waka-alert-stack/index.es.js +1 -1
- package/dist/components/waka-allocation-matrix/index.cjs.js +2 -2
- package/dist/components/waka-allocation-matrix/index.es.js +1 -1
- package/dist/components/waka-approval-chain/index.cjs.js +1 -1
- package/dist/components/waka-approval-chain/index.es.js +1 -1
- package/dist/components/waka-artifact-list/index.cjs.js +1 -1
- package/dist/components/waka-artifact-list/index.es.js +1 -1
- package/dist/components/waka-audit-log/index.cjs.js +2 -2
- package/dist/components/waka-audit-log/index.es.js +1 -1
- package/dist/components/waka-autocomplete/index.cjs.js +1 -1
- package/dist/components/waka-autocomplete/index.es.js +3 -2
- package/dist/components/waka-badge-showcase/index.cjs.js +1 -1
- package/dist/components/waka-barcode/index.cjs.js +1 -1
- package/dist/components/waka-barcode/index.es.js +1 -1
- package/dist/components/waka-biometric-prompt/index.cjs.js +2 -2
- package/dist/components/waka-biometric-prompt/index.es.js +1 -1
- package/dist/components/waka-bottom-sheet/index.cjs.js +1 -1
- package/dist/components/waka-bottom-sheet/index.es.js +12 -7
- package/dist/components/waka-breadcrumb/index.cjs.js +1 -1
- package/dist/components/waka-breadcrumb/index.es.js +1 -1
- package/dist/components/waka-breadcrumb-path/index.cjs.js +1 -1
- package/dist/components/waka-breadcrumb-path/index.es.js +1 -1
- package/dist/components/waka-budget-burn/index.cjs.js +2 -2
- package/dist/components/waka-budget-burn/index.es.js +3 -3
- package/dist/components/waka-build-matrix/index.cjs.js +1 -1
- package/dist/components/waka-capacity-planner/index.cjs.js +2 -2
- package/dist/components/waka-capacity-planner/index.es.js +1 -1
- package/dist/components/waka-carousel/index.cjs.js +1 -1
- package/dist/components/waka-carousel/index.es.js +2 -2
- package/dist/components/waka-cart-summary/index.cjs.js +1 -1
- package/dist/components/waka-cart-summary/index.es.js +2 -2
- package/dist/components/waka-challenge-timer/index.cjs.js +1 -1
- package/dist/components/waka-charts/WakaAreaChart.cjs.js +1 -1
- package/dist/components/waka-charts/WakaAreaChart.es.js +2 -2
- package/dist/components/waka-charts/WakaBarChart.cjs.js +1 -1
- package/dist/components/waka-charts/WakaBarChart.es.js +2 -2
- package/dist/components/waka-charts/WakaChart.cjs.js +1 -1
- package/dist/components/waka-charts/WakaChart.es.js +1 -1
- package/dist/components/waka-charts/WakaLineChart.cjs.js +1 -1
- package/dist/components/waka-charts/WakaLineChart.es.js +2 -2
- package/dist/components/waka-charts/WakaMiniChart.cjs.js +1 -1
- package/dist/components/waka-charts/WakaMiniChart.es.js +2 -2
- package/dist/components/waka-charts/WakaPieChart.cjs.js +1 -1
- package/dist/components/waka-charts/WakaPieChart.es.js +2 -2
- package/dist/components/waka-charts/WakaSparkline.cjs.js +1 -1
- package/dist/components/waka-charts/WakaSparkline.es.js +1 -1
- package/dist/components/waka-charts/dataTableHelpers.cjs.js +1 -1
- package/dist/components/waka-charts/dataTableHelpers.es.js +1 -1
- package/dist/components/waka-charts/hooks/useChartTheme.cjs.js +1 -1
- package/dist/components/waka-charts/hooks/useChartTheme.es.js +1 -1
- package/dist/components/waka-charts/hooks/useRechartsLoader.cjs.js +1 -1
- package/dist/components/waka-charts/hooks/useRechartsLoader.es.js +1 -1
- package/dist/components/waka-chat-bubble/index.cjs.js +1 -1
- package/dist/components/waka-checklist/index.cjs.js +2 -2
- package/dist/components/waka-checklist/index.es.js +1 -1
- package/dist/components/waka-checkout-stepper/index.cjs.js +1 -1
- package/dist/components/waka-checkout-stepper/index.es.js +1 -1
- package/dist/components/waka-cohort-table/index.cjs.js +2 -2
- package/dist/components/waka-cohort-table/index.es.js +1 -1
- package/dist/components/waka-color-picker/index.cjs.js +2 -2
- package/dist/components/waka-color-picker/index.es.js +1 -1
- package/dist/components/waka-combo-counter/index.cjs.js +1 -1
- package/dist/components/waka-combobox/index.cjs.js +1 -1
- package/dist/components/waka-combobox/index.es.js +3 -2
- package/dist/components/waka-command-bar/index.cjs.js +1 -1
- package/dist/components/waka-compare-period/index.cjs.js +2 -2
- package/dist/components/waka-compare-period/index.es.js +7 -5
- package/dist/components/waka-config-comparator/index.cjs.js +1 -1
- package/dist/components/waka-config-comparator/index.es.js +1 -1
- package/dist/components/waka-connection-matrix/index.cjs.js +1 -1
- package/dist/components/waka-connection-matrix/index.es.js +1 -1
- package/dist/components/waka-container-list/index.cjs.js +1 -1
- package/dist/components/waka-container-list/index.es.js +1 -1
- package/dist/components/waka-content-recommendation/index.cjs.js +1 -1
- package/dist/components/waka-content-recommendation/index.es.js +2 -2
- package/dist/components/waka-contribution-graph/index.cjs.js +1 -1
- package/dist/components/waka-contribution-graph/index.es.js +4 -4
- package/dist/components/waka-cost-breakdown/index.cjs.js +1 -1
- package/dist/components/waka-cost-breakdown/index.es.js +7 -7
- package/dist/components/waka-coupon-input/index.cjs.js +2 -2
- package/dist/components/waka-coupon-input/index.es.js +1 -1
- package/dist/components/waka-credit-activity-feed/index.cjs.js +2 -2
- package/dist/components/waka-credit-activity-feed/index.es.js +1 -1
- package/dist/components/waka-credit-alert/index.cjs.js +1 -1
- package/dist/components/waka-credit-alert/index.es.js +1 -1
- package/dist/components/waka-credit-balance/index.cjs.js +1 -1
- package/dist/components/waka-credit-balance/index.es.js +3 -3
- package/dist/components/waka-credit-breakdown/index.cjs.js +1 -1
- package/dist/components/waka-credit-breakdown/index.es.js +1 -1
- package/dist/components/waka-credit-burn-rate/index.cjs.js +1 -1
- package/dist/components/waka-credit-burn-rate/index.es.js +1 -1
- package/dist/components/waka-credit-card-input/index.cjs.js +1 -1
- package/dist/components/waka-credit-card-input/index.es.js +1 -1
- package/dist/components/waka-credit-history/index.cjs.js +1 -1
- package/dist/components/waka-credit-history/index.es.js +1 -1
- package/dist/components/waka-credit-meter/index.cjs.js +2 -2
- package/dist/components/waka-credit-meter/index.es.js +3 -3
- package/dist/components/waka-credit-pricing-pack/index.cjs.js +1 -1
- package/dist/components/waka-credit-pricing-pack/index.es.js +1 -1
- package/dist/components/waka-credit-projection/index.cjs.js +1 -1
- package/dist/components/waka-credit-projection/index.es.js +1 -1
- package/dist/components/waka-credit-quota/index.cjs.js +1 -1
- package/dist/components/waka-credit-quota/index.es.js +3 -3
- package/dist/components/waka-credit-receipt/index.cjs.js +1 -1
- package/dist/components/waka-credit-receipt/index.es.js +1 -1
- package/dist/components/waka-credit-top-up/index.cjs.js +1 -1
- package/dist/components/waka-credit-top-up/index.es.js +1 -1
- package/dist/components/waka-credit-transaction/index.cjs.js +1 -1
- package/dist/components/waka-credit-transaction/index.es.js +1 -1
- package/dist/components/waka-credit-transfer-form/index.cjs.js +1 -1
- package/dist/components/waka-credit-transfer-form/index.es.js +1 -1
- package/dist/components/waka-credit-usage-chart/index.cjs.js +1 -1
- package/dist/components/waka-credit-usage-chart/index.es.js +1 -1
- package/dist/components/waka-daily-reward/index.cjs.js +1 -1
- package/dist/components/waka-database-card/index.cjs.js +1 -1
- package/dist/components/waka-database-card/index.es.js +1 -1
- package/dist/components/waka-date-range-picker/index.cjs.js +1 -1
- package/dist/components/waka-date-range-picker/index.es.js +3 -2
- package/dist/components/waka-datetime-picker/index.cjs.js +1 -1
- package/dist/components/waka-datetime-picker/index.es.js +4 -1
- package/dist/components/waka-datetime-picker.form-integration/index.cjs.js +1 -1
- package/dist/components/waka-dependency-tree/index.cjs.js +1 -1
- package/dist/components/waka-dependency-tree/index.es.js +1 -1
- package/dist/components/waka-deployment-lane/index.cjs.js +1 -1
- package/dist/components/waka-deployment-lane/index.es.js +1 -1
- package/dist/components/waka-device-trust/index.cjs.js +2 -2
- package/dist/components/waka-device-trust/index.es.js +1 -1
- package/dist/components/waka-doc-breadcrumb/index.cjs.js +1 -1
- package/dist/components/waka-doc-callout/index.cjs.js +1 -1
- package/dist/components/waka-doc-code-block/index.cjs.js +1 -1
- package/dist/components/waka-doc-nav/index.cjs.js +1 -1
- package/dist/components/waka-doc-renderer/index.cjs.js +1 -1
- package/dist/components/waka-doc-search/index.cjs.js +1 -1
- package/dist/components/waka-doc-table/index.cjs.js +1 -1
- package/dist/components/waka-doc-toc/index.cjs.js +1 -1
- package/dist/components/waka-doc-toolbar/index.cjs.js +1 -1
- package/dist/components/waka-doc-version/index.cjs.js +1 -1
- package/dist/components/waka-dock/index.cjs.js +1 -1
- package/dist/components/waka-dock/index.es.js +2 -2
- package/dist/components/waka-drawer/index.cjs.js +1 -1
- package/dist/components/waka-drawer/index.es.js +1 -1
- package/dist/components/waka-empty-state/index.cjs.js +1 -1
- package/dist/components/waka-env-var-editor/index.cjs.js +1 -1
- package/dist/components/waka-error-shake/index.cjs.js +1 -1
- package/dist/components/waka-feature-announcement/index.cjs.js +2 -2
- package/dist/components/waka-feature-announcement/index.es.js +1 -1
- package/dist/components/waka-feature-flag-row/index.cjs.js +1 -1
- package/dist/components/waka-file-upload/index.cjs.js +1 -1
- package/dist/components/waka-file-upload/index.es.js +2 -2
- package/dist/components/waka-floating-nav/index.cjs.js +1 -1
- package/dist/components/waka-floating-nav/index.es.js +1 -1
- package/dist/components/waka-flow-diagram/index.cjs.js +1 -1
- package/dist/components/waka-funnel-chart/index.cjs.js +2 -2
- package/dist/components/waka-funnel-chart/index.es.js +1 -1
- package/dist/components/waka-glow-card/index.cjs.js +1 -1
- package/dist/components/waka-glow-card/index.es.js +3 -3
- package/dist/components/waka-goal-progress/index.cjs.js +3 -3
- package/dist/components/waka-goal-progress/index.es.js +3 -3
- package/dist/components/waka-haptic-button/index.cjs.js +1 -1
- package/dist/components/waka-health-pulse/index.cjs.js +2 -2
- package/dist/components/waka-health-pulse/index.es.js +1 -1
- package/dist/components/waka-heatmap/index.cjs.js +1 -1
- package/dist/components/waka-heatmap/index.es.js +3 -3
- package/dist/components/waka-hotspot/index.cjs.js +1 -1
- package/dist/components/waka-image/index.cjs.js +1 -1
- package/dist/components/waka-image/index.es.js +1 -1
- package/dist/components/waka-incident-timeline/index.cjs.js +1 -1
- package/dist/components/waka-incident-timeline/index.es.js +3 -2
- package/dist/components/waka-invoice-preview/index.cjs.js +1 -1
- package/dist/components/waka-invoice-preview/index.es.js +1 -1
- package/dist/components/waka-kanban/index.cjs.js +1 -1
- package/dist/components/waka-kanban/index.es.js +1 -1
- package/dist/components/waka-kpi-dashboard/index.cjs.js +1 -1
- package/dist/components/waka-kpi-dashboard/index.es.js +6 -4
- package/dist/components/waka-kubernetes-overview/index.cjs.js +1 -1
- package/dist/components/waka-kubernetes-overview/index.es.js +1 -1
- package/dist/components/waka-leaderboard/index.cjs.js +1 -1
- package/dist/components/waka-level-progress/index.cjs.js +2 -2
- package/dist/components/waka-level-progress/index.es.js +2 -2
- package/dist/components/waka-liquid-button/index.cjs.js +1 -1
- package/dist/components/waka-loading-orbit/index.cjs.js +1 -1
- package/dist/components/waka-log-viewer/index.cjs.js +1 -1
- package/dist/components/waka-loot-box/index.cjs.js +2 -2
- package/dist/components/waka-loot-box/index.es.js +1 -1
- package/dist/components/waka-magic-link/index.cjs.js +2 -2
- package/dist/components/waka-magnetic-button/index.cjs.js +1 -1
- package/dist/components/waka-mention-input/index.cjs.js +1 -1
- package/dist/components/waka-mention-input/index.es.js +52 -40
- package/dist/components/waka-metric-sparkline/index.cjs.js +1 -1
- package/dist/components/waka-metric-sparkline/index.es.js +1 -1
- package/dist/components/waka-migration-list/index.cjs.js +1 -1
- package/dist/components/waka-milestone-road/index.cjs.js +2 -2
- package/dist/components/waka-milestone-road/index.es.js +5 -5
- package/dist/components/waka-modal/index.cjs.js +1 -1
- package/dist/components/waka-modal/index.es.js +1 -1
- package/dist/components/waka-morph-button/index.cjs.js +2 -2
- package/dist/components/waka-morph-button/index.es.js +6 -2
- package/dist/components/waka-network-topology/index.cjs.js +1 -1
- package/dist/components/waka-network-topology/index.es.js +4 -2
- package/dist/components/waka-notifications/index.cjs.js +1 -1
- package/dist/components/waka-number-input/index.cjs.js +1 -1
- package/dist/components/waka-number-input/index.es.js +1 -1
- package/dist/components/waka-orbital-menu/index.cjs.js +1 -1
- package/dist/components/waka-orbital-menu/index.es.js +1 -1
- package/dist/components/waka-order-tracker/index.cjs.js +1 -1
- package/dist/components/waka-order-tracker/index.es.js +3 -2
- package/dist/components/waka-outstream-video/index.cjs.js +1 -1
- package/dist/components/waka-outstream-video/index.es.js +2 -2
- package/dist/components/waka-pagination/index.cjs.js +1 -1
- package/dist/components/waka-pagination/index.es.js +1 -1
- package/dist/components/waka-password-strength/index.cjs.js +2 -2
- package/dist/components/waka-password-strength/index.es.js +3 -3
- package/dist/components/waka-payment-method-picker/index.cjs.js +1 -1
- package/dist/components/waka-payment-method-picker/index.es.js +1 -1
- package/dist/components/waka-permission-matrix/index.cjs.js +2 -2
- package/dist/components/waka-permission-matrix/index.es.js +3 -2
- package/dist/components/waka-phone-input/index.cjs.js +1 -1
- package/dist/components/waka-phone-input/index.es.js +5 -3
- package/dist/components/waka-pipeline-view/index.cjs.js +2 -2
- package/dist/components/waka-pipeline-view/index.es.js +1 -1
- package/dist/components/waka-player-card/index.cjs.js +2 -2
- package/dist/components/waka-player-card/index.es.js +4 -4
- package/dist/components/waka-pod-card/index.cjs.js +1 -1
- package/dist/components/waka-pod-card/index.es.js +1 -1
- package/dist/components/waka-points-popup/index.cjs.js +1 -1
- package/dist/components/waka-points-popup/index.es.js +5 -1
- package/dist/components/waka-power-up/index.cjs.js +1 -1
- package/dist/components/waka-presence-indicator/index.cjs.js +2 -2
- package/dist/components/waka-presence-indicator/index.es.js +1 -1
- package/dist/components/waka-pricing-table/index.cjs.js +2 -2
- package/dist/components/waka-pricing-table/index.es.js +1 -1
- package/dist/components/waka-product-card/index.cjs.js +1 -1
- package/dist/components/waka-progress-onboarding/index.cjs.js +3 -3
- package/dist/components/waka-progress-onboarding/index.es.js +1 -1
- package/dist/components/waka-pull-to-refresh/index.cjs.js +1 -1
- package/dist/components/waka-qrcode/index.cjs.js +1 -1
- package/dist/components/waka-qrcode/index.es.js +1 -1
- package/dist/components/waka-query-explain/index.cjs.js +1 -1
- package/dist/components/waka-quest-card/index.cjs.js +2 -2
- package/dist/components/waka-quest-card/index.es.js +4 -1
- package/dist/components/waka-quota-bar/index.cjs.js +2 -2
- package/dist/components/waka-quota-bar/index.es.js +11 -4
- package/dist/components/waka-radar-score/index.cjs.js +1 -1
- package/dist/components/waka-radar-score/index.es.js +6 -6
- package/dist/components/waka-rank-badge/index.cjs.js +2 -2
- package/dist/components/waka-rank-badge/index.es.js +1 -1
- package/dist/components/waka-rating-input/index.cjs.js +2 -2
- package/dist/components/waka-rating-input/index.es.js +1 -1
- package/dist/components/waka-reaction-picker/index.cjs.js +1 -1
- package/dist/components/waka-reaction-picker/index.es.js +7 -4
- package/dist/components/waka-region-map/index.cjs.js +1 -1
- package/dist/components/waka-region-map/index.es.js +1 -1
- package/dist/components/waka-resource-gauge/index.cjs.js +2 -2
- package/dist/components/waka-resource-gauge/index.es.js +3 -3
- package/dist/components/waka-resource-pool/index.cjs.js +2 -2
- package/dist/components/waka-resource-pool/index.es.js +1 -1
- package/dist/components/waka-rich-text-editor/index.cjs.js +1 -1
- package/dist/components/waka-rich-text-editor/index.es.js +1 -1
- package/dist/components/waka-rollback-slider/index.cjs.js +2 -2
- package/dist/components/waka-rollback-slider/index.es.js +5 -3
- package/dist/components/waka-sankey-diagram/index.cjs.js +2 -2
- package/dist/components/waka-sankey-diagram/index.es.js +5 -5
- package/dist/components/waka-schedule-picker/index.cjs.js +1 -1
- package/dist/components/waka-schedule-picker/index.es.js +3 -2
- package/dist/components/waka-scratch-card/index.cjs.js +2 -2
- package/dist/components/waka-scratch-card/index.es.js +1 -1
- package/dist/components/waka-season-pass/index.cjs.js +1 -1
- package/dist/components/waka-secret-card/index.cjs.js +1 -1
- package/dist/components/waka-security-scan-result/index.cjs.js +1 -1
- package/dist/components/waka-security-score/index.cjs.js +2 -2
- package/dist/components/waka-security-score/index.es.js +5 -5
- package/dist/components/waka-segmented-control/index.cjs.js +1 -1
- package/dist/components/waka-segmented-control/index.es.js +1 -1
- package/dist/components/waka-server-rack/index.cjs.js +1 -1
- package/dist/components/waka-service-graph/index.cjs.js +1 -1
- package/dist/components/waka-session-manager/index.cjs.js +1 -1
- package/dist/components/waka-session-manager/index.es.js +3 -2
- package/dist/components/waka-signature-pad/index.cjs.js +1 -1
- package/dist/components/waka-signature-pad/index.es.js +1 -1
- package/dist/components/waka-skeleton-wave/index.cjs.js +1 -1
- package/dist/components/waka-skill-tree/index.cjs.js +2 -2
- package/dist/components/waka-skill-tree/index.es.js +32 -32
- package/dist/components/waka-sla-tracker/index.cjs.js +1 -1
- package/dist/components/waka-sla-tracker/index.es.js +1 -1
- package/dist/components/waka-slider-range/index.cjs.js +1 -1
- package/dist/components/waka-slider-range/index.es.js +3 -3
- package/dist/components/waka-spin-wheel/index.cjs.js +2 -2
- package/dist/components/waka-spin-wheel/index.es.js +6 -6
- package/dist/components/waka-spinner/index.cjs.js +1 -1
- package/dist/components/waka-sponsored-badge/index.cjs.js +1 -1
- package/dist/components/waka-sponsored-badge/index.es.js +1 -1
- package/dist/components/waka-sponsored-card/index.cjs.js +1 -1
- package/dist/components/waka-sponsored-card/index.es.js +2 -2
- package/dist/components/waka-sponsored-feed/index.cjs.js +1 -1
- package/dist/components/waka-sponsored-feed/index.es.js +2 -2
- package/dist/components/waka-spotlight/index.cjs.js +1 -1
- package/dist/components/waka-spotlight/index.es.js +2 -1
- package/dist/components/waka-stat/index.cjs.js +1 -1
- package/dist/components/waka-stat/index.es.js +1 -1
- package/dist/components/waka-stats-hexagon/index.cjs.js +1 -1
- package/dist/components/waka-stats-hexagon/index.es.js +9 -9
- package/dist/components/waka-status-matrix/index.cjs.js +1 -1
- package/dist/components/waka-status-matrix/index.es.js +1 -1
- package/dist/components/waka-stepper/index.cjs.js +1 -1
- package/dist/components/waka-stepper/index.es.js +1 -1
- package/dist/components/waka-streak-counter/index.cjs.js +1 -1
- package/dist/components/waka-success-explosion/index.cjs.js +1 -1
- package/dist/components/waka-swipe-card/index.cjs.js +1 -1
- package/dist/components/waka-swipe-card/index.es.js +2 -2
- package/dist/components/waka-tabs-morph/index.cjs.js +1 -1
- package/dist/components/waka-tabs-morph/index.es.js +1 -1
- package/dist/components/waka-tag-input/index.cjs.js +1 -1
- package/dist/components/waka-tag-input/index.es.js +3 -2
- package/dist/components/waka-team-banner/index.cjs.js +2 -2
- package/dist/components/waka-team-banner/index.es.js +1 -1
- package/dist/components/waka-terminal-output/index.cjs.js +2 -2
- package/dist/components/waka-terminal-output/index.es.js +5 -3
- package/dist/components/waka-test-report/index.cjs.js +1 -1
- package/dist/components/waka-theme-creator/index.cjs.js +1 -1
- package/dist/components/waka-theme-manager/index.cjs.js +1 -1
- package/dist/components/waka-theme-manager/index.es.js +5 -2
- package/dist/components/waka-thread-view/index.cjs.js +2 -2
- package/dist/components/waka-thread-view/index.es.js +1 -1
- package/dist/components/waka-tilt-card/index.cjs.js +1 -1
- package/dist/components/waka-tilt-card/index.es.js +8 -6
- package/dist/components/waka-time-picker/index.cjs.js +1 -1
- package/dist/components/waka-time-picker/index.es.js +10 -6
- package/dist/components/waka-timeline/index.cjs.js +1 -1
- package/dist/components/waka-timeline/index.es.js +1 -1
- package/dist/components/waka-tooltip-tour/index.cjs.js +3 -3
- package/dist/components/waka-tooltip-tour/index.es.js +53 -51
- package/dist/components/waka-tour-guide/index.cjs.js +2 -2
- package/dist/components/waka-tour-guide/index.es.js +1 -1
- package/dist/components/waka-tournament-bracket/index.cjs.js +2 -2
- package/dist/components/waka-tournament-bracket/index.es.js +1 -1
- package/dist/components/waka-trace-viewer/index.cjs.js +1 -1
- package/dist/components/waka-tree/index.cjs.js +1 -1
- package/dist/components/waka-tree/index.es.js +1 -1
- package/dist/components/waka-treemap-chart/index.cjs.js +1 -1
- package/dist/components/waka-treemap-chart/index.es.js +1 -1
- package/dist/components/waka-two-factor-setup/index.cjs.js +2 -2
- package/dist/components/waka-two-factor-setup/index.es.js +5 -4
- package/dist/components/waka-typewriter/index.cjs.js +1 -1
- package/dist/components/waka-typewriter/index.es.js +7 -2
- package/dist/components/waka-typing-indicator/index.cjs.js +2 -2
- package/dist/components/waka-typing-indicator/index.es.js +1 -1
- package/dist/components/waka-versus-card/index.cjs.js +3 -3
- package/dist/components/waka-versus-card/index.es.js +5 -4
- package/dist/components/waka-video/index.cjs.js +1 -1
- package/dist/components/waka-video/index.es.js +1 -1
- package/dist/components/waka-video-ad/index.cjs.js +1 -1
- package/dist/components/waka-video-ad/index.es.js +3 -3
- package/dist/components/waka-video-call/index.cjs.js +2 -2
- package/dist/components/waka-video-call/index.es.js +1 -1
- package/dist/components/waka-video-overlay/index.cjs.js +1 -1
- package/dist/components/waka-video-overlay/index.es.js +2 -2
- package/dist/components/waka-virtual-list/index.cjs.js +1 -1
- package/dist/components/waka-virtual-list/index.es.js +1 -1
- package/dist/components/waka-voice-message/index.cjs.js +1 -1
- package/dist/components/waka-voice-message/index.es.js +6 -5
- package/dist/components/waka-welcome-modal/index.cjs.js +2 -2
- package/dist/components/waka-welcome-modal/index.es.js +1 -1
- package/dist/components/waka-xp-bar/index.cjs.js +1 -1
- package/dist/components/waka-xp-bar/index.es.js +2 -2
- package/dist/context/admincrumb-context.cjs.js +1 -1
- package/dist/context/language-context.cjs.js +1 -1
- package/dist/context/language-context.es.js +2 -2
- package/dist/context/theme-context.cjs.js +1 -1
- package/dist/context/theme-provider.cjs.js +1 -1
- package/dist/context/theme-provider.es.js +9 -6
- package/dist/context/waka-provider.cjs.js +1 -1
- package/dist/context/waka-provider.es.js +57 -53
- package/dist/doc.cjs.js +1 -1
- package/dist/editor.cjs.js +1 -1
- package/dist/export.cjs.js +1 -1
- package/dist/hooks/use-toast.cjs.js +1 -1
- package/dist/hooks/use-translation.cjs.js +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.es.js +279 -278
- package/dist/lib/i18n.cjs.js +1 -1
- package/dist/lib/i18n.es.js +11 -9
- package/dist/locales/default-resources.cjs.js +1 -0
- package/dist/locales/default-resources.d.ts +155 -0
- package/dist/locales/default-resources.es.js +150 -0
- package/dist/node_modules/.pnpm/exceljs@4.4.0/node_modules/exceljs/dist/exceljs.min.cjs.js +13 -13
- package/dist/node_modules/.pnpm/exceljs@4.4.0/node_modules/exceljs/dist/exceljs.min.es.js +13 -13
- package/dist/node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-docker.cjs.js +1 -1
- package/dist/node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-docker.es.js +19 -19
- package/dist/node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-markdown.cjs.js +1 -1
- package/dist/node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-markdown.es.js +24 -25
- package/dist/node_modules/.pnpm/react-resizable-panels@4.11.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-resizable-panels/dist/react-resizable-panels.cjs.js +1 -1
- package/dist/node_modules/.pnpm/react-resizable-panels@4.11.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-resizable-panels/dist/react-resizable-panels.es.js +26 -23
- package/dist/rich-text.cjs.js +1 -1
- package/dist/ui.css +1 -1
- package/dist/utils/cn.cjs.js +1 -1
- package/dist/utils/datetime-helpers.cjs.js +1 -1
- package/dist/utils/theme-loader.cjs.js +1 -1
- package/dist/utils/tweak.cjs.js +1 -1
- package/package.json +28 -27
- package/src/components/DataTable/DataTable.tsx +2 -0
- package/src/components/DataTable/DataTablePagination.tsx +28 -8
- package/src/components/DataTable/hooks/useDataTable.ts +13 -0
- package/src/components/editor/blocks/waka-diagram-block.tsx +7 -36
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use client";const e=require(
|
|
1
|
+
"use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("lucide-react"),i=require("react/jsx-runtime");var a={default:{accent:`text-muted-foreground`,bg:`bg-muted`,sparkline:`#71717a`,targetBg:`bg-muted`},primary:{accent:`text-primary`,bg:`bg-primary/10`,sparkline:`hsl(var(--primary))`,targetBg:`bg-primary/20`},success:{accent:`text-green-600`,bg:`bg-green-100 dark:bg-green-900/30`,sparkline:`#16a34a`,targetBg:`bg-green-200 dark:bg-green-800/50`},warning:{accent:`text-yellow-600`,bg:`bg-yellow-100 dark:bg-yellow-900/30`,sparkline:`#ca8a04`,targetBg:`bg-yellow-200 dark:bg-yellow-800/50`},destructive:{accent:`text-destructive`,bg:`bg-destructive/10`,sparkline:`hsl(var(--destructive))`,targetBg:`bg-destructive/20`},blue:{accent:`text-blue-600`,bg:`bg-blue-100 dark:bg-blue-900/30`,sparkline:`#2563eb`,targetBg:`bg-blue-200 dark:bg-blue-800/50`},purple:{accent:`text-purple-600`,bg:`bg-purple-100 dark:bg-purple-900/30`,sparkline:`#9333ea`,targetBg:`bg-purple-200 dark:bg-purple-800/50`}},o={"1x1":{colSpan:`col-span-1`,rowSpan:`row-span-1`,minHeight:`min-h-[140px]`},"2x1":{colSpan:`col-span-2`,rowSpan:`row-span-1`,minHeight:`min-h-[140px]`},"1x2":{colSpan:`col-span-1`,rowSpan:`row-span-2`,minHeight:`min-h-[296px]`},"2x2":{colSpan:`col-span-2`,rowSpan:`row-span-2`,minHeight:`min-h-[296px]`}};function s({data:e,color:n=`#71717a`,width:r=100,height:a=32,strokeWidth:o=1.5,showArea:s=!0,className:c}){if(!e||e.length<2)return null;let l=e.map(e=>e.value),u=Math.min(...l),d=Math.max(...l)-u||1,f=r-4,p=a-4,m=e.map((t,n)=>({x:2+n/(e.length-1)*f,y:2+p-(t.value-u)/d*p})),h=m.map((e,t)=>t===0?`M ${e.x} ${e.y}`:`L ${e.x} ${e.y}`).join(` `),g=`${h} L ${m[m.length-1].x} ${a-2} L 2 ${a-2} Z`;return(0,i.jsxs)(`svg`,{width:r,height:a,viewBox:`0 0 ${r} ${a}`,className:t.cn(`overflow-visible`,c),children:[s&&(0,i.jsx)(`path`,{d:g,fill:n,fillOpacity:.1}),(0,i.jsx)(`path`,{d:h,fill:`none`,stroke:n,strokeWidth:o,strokeLinecap:`round`,strokeLinejoin:`round`}),(0,i.jsx)(`circle`,{cx:m[m.length-1].x,cy:m[m.length-1].y,r:2.5,fill:n})]})}function c({direction:e,value:n,invert:a}){let o=a?e===`down`:e===`up`,s=a?e===`up`:e===`down`,c=e===`up`?r.TrendingUp:e===`down`?r.TrendingDown:r.Minus;return(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 text-xs font-medium`,o&&`text-green-600`,s&&`text-destructive`,e===`neutral`&&`text-muted-foreground`),children:[(0,i.jsx)(c,{className:`h-3.5 w-3.5`}),n&&(0,i.jsx)(`span`,{children:n})]})}function l({current:e,target:n,label:o,color:s}){let c=Math.min(e/n*100,100),l=a[s];return(0,i.jsxs)(`div`,{className:`mt-3 space-y-1`,children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,i.jsxs)(`span`,{className:`text-muted-foreground flex items-center gap-1`,children:[(0,i.jsx)(r.Target,{className:`h-3 w-3`}),o||`Target`]}),(0,i.jsxs)(`span`,{className:t.cn(`font-medium`,l.accent),children:[c.toFixed(0),`%`]})]}),(0,i.jsx)(`div`,{className:t.cn(`h-1.5 rounded-full overflow-hidden`,l.bg),children:(0,i.jsx)(`div`,{className:t.cn(`h-full rounded-full transition-all duration-500`,c>=100?`bg-green-500`:l.targetBg.replace(`bg-`,`bg-`)),style:{width:`${c}%`,backgroundColor:c>=100?void 0:l.sparkline}})})]})}function u({size:e}){let t=e===`2x2`||e===`1x2`;return(0,i.jsxs)(`div`,{className:`animate-pulse p-4`,children:[(0,i.jsxs)(`div`,{className:`flex items-start justify-between mb-3`,children:[(0,i.jsx)(`div`,{className:`h-4 w-24 bg-muted rounded`}),(0,i.jsx)(`div`,{className:`h-6 w-6 bg-muted rounded`})]}),(0,i.jsx)(`div`,{className:`h-8 w-20 bg-muted rounded mb-2`}),(0,i.jsx)(`div`,{className:`h-3 w-16 bg-muted rounded mb-3`}),t&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:`h-16 w-full bg-muted rounded mb-3`}),(0,i.jsx)(`div`,{className:`h-2 w-full bg-muted rounded`})]}),!t&&(0,i.jsx)(`div`,{className:`h-8 w-full bg-muted rounded`})]})}function d({kpi:e,onRefresh:d,onClick:f,draggable:p,onDragStart:m}){let[h,g]=n.useState(!1),_=e.size||`1x1`,v=e.color||`default`,y=o[_],b=a[v],x=async t=>{t.stopPropagation(),d&&!h&&(g(!0),await d(e.id),setTimeout(()=>g(!1),500))};if(e.loading)return(0,i.jsx)(`div`,{className:t.cn(`rounded-lg border bg-card shadow-sm`,y.colSpan,y.rowSpan,y.minHeight),children:(0,i.jsx)(u,{size:_})});let S=_===`2x2`||_===`1x2`,C=_===`2x1`||_===`2x2`;return(0,i.jsxs)(`div`,{className:t.cn(`group relative rounded-lg border bg-card shadow-sm p-4 transition-all duration-200`,`hover:shadow-md hover:border-primary/30`,f&&`cursor-pointer`,p&&`cursor-grab active:cursor-grabbing`,y.colSpan,y.rowSpan,y.minHeight),onClick:()=>f?.(e),draggable:p,onDragStart:t=>m?.(t,e.id),children:[(0,i.jsxs)(`div`,{className:`flex items-start justify-between mb-2`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[e.icon&&(0,i.jsx)(`div`,{className:t.cn(`h-8 w-8 rounded-lg flex items-center justify-center flex-shrink-0`,b.bg),children:(0,i.jsx)(`div`,{className:t.cn(`h-4 w-4`,b.accent),children:e.icon})}),(0,i.jsx)(`h3`,{className:`text-sm font-medium text-muted-foreground truncate`,children:e.title})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:[p&&(0,i.jsx)(r.GripVertical,{className:`h-4 w-4 text-muted-foreground`}),d&&(0,i.jsx)(`button`,{onClick:x,className:`p-1 rounded hover:bg-muted transition-colors`,disabled:h,children:(0,i.jsx)(r.RefreshCw,{className:t.cn(`h-3.5 w-3.5 text-muted-foreground`,h&&`animate-spin`)})}),(0,i.jsx)(`button`,{className:`p-1 rounded hover:bg-muted transition-colors`,children:(0,i.jsx)(r.MoreHorizontal,{className:`h-3.5 w-3.5 text-muted-foreground`})})]})]}),(0,i.jsxs)(`div`,{className:`flex items-baseline gap-2 mb-1`,children:[(0,i.jsx)(`span`,{className:t.cn(`font-bold tracking-tight`,S?`text-4xl`:`text-2xl`),children:e.value}),e.unit&&(0,i.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:e.unit})]}),e.trend&&(0,i.jsx)(`div`,{className:`mb-3`,children:(0,i.jsx)(c,{direction:e.trend,value:e.trendValue})}),e.sparklineData&&e.sparklineData.length>1&&(0,i.jsx)(`div`,{className:t.cn(`mt-auto`,S?`h-20`:`h-8`),children:(0,i.jsx)(s,{data:e.sparklineData,color:b.sparkline,width:C?280:120,height:S?80:32,strokeWidth:S?2:1.5,showArea:S})}),e.target&&(0,i.jsx)(l,{current:typeof e.value==`number`?e.value:parseFloat(String(e.value))||0,target:e.target.value,label:e.target.label,color:v}),e.lastUpdated&&(0,i.jsxs)(`div`,{className:`mt-2 text-[10px] text-muted-foreground`,children:[`Updated `,e.lastUpdated.toLocaleTimeString()]})]})}function f({kpis:e,columns:r=4,gap:a=`md`,draggable:o=!1,onReorder:s,onRefresh:c,onCardClick:l,loading:f=!1,renderCard:p,className:m}){let[h,g]=n.useState(e),[_,v]=n.useState(null),[y,b]=n.useState(null);n.useEffect(()=>{g(e)},[e]);let x={sm:`gap-2`,md:`gap-4`,lg:`gap-6`},S={2:`grid-cols-2`,3:`grid-cols-3`,4:`grid-cols-4`,6:`grid-cols-6`},C=(e,t)=>{v(t),e.dataTransfer.effectAllowed=`move`},w=(e,t)=>{e.preventDefault(),_&&_!==t&&b(t)},T=()=>{b(null)},E=(e,t)=>{if(e.preventDefault(),_&&_!==t){let e=[...h],n=e.findIndex(e=>e.id===_),r=e.findIndex(e=>e.id===t);if(n!==-1&&r!==-1){let[t]=e.splice(n,1);e.splice(r,0,t),g(e),s?.(e)}}v(null),b(null)},D=()=>{v(null),b(null)};return f?(0,i.jsx)(`div`,{className:t.cn(`grid auto-rows-min`,S[r],x[a],m),children:Array.from({length:8}).map((e,t)=>(0,i.jsx)(`div`,{className:`rounded-lg border bg-card shadow-sm col-span-1 row-span-1 min-h-[140px]`,children:(0,i.jsx)(u,{size:`1x1`})},t))}):(0,i.jsx)(`div`,{className:t.cn(`grid auto-rows-min`,S[r],x[a],m),children:h.map(e=>(0,i.jsx)(`div`,{onDragOver:t=>w(t,e.id),onDragLeave:T,onDrop:t=>E(t,e.id),onDragEnd:D,className:t.cn(`relative`,y===e.id&&`ring-2 ring-primary ring-offset-2 rounded-lg`,_===e.id&&`opacity-50`),children:p?p(e):(0,i.jsx)(d,{kpi:e,onRefresh:c,onClick:l,draggable:o,onDragStart:C})},e.id))})}function p(e={}){let{initialKPIs:t=[],refreshInterval:r,onRefresh:i}=e,[a,o]=n.useState(t),[s,c]=n.useState(!1),[l,u]=n.useState(new Set);return n.useEffect(()=>{if(!r||!i)return;let e=setInterval(async()=>{let e=await Promise.all(a.map(async e=>await i(e.id)||e));o(e)},r);return()=>clearInterval(e)},[r,i,a]),{kpis:a,setKPIs:o,loading:s,refreshKPI:n.useCallback(async e=>{if(i){u(t=>new Set(t).add(e)),o(t=>t.map(t=>t.id===e?{...t,loading:!0}:t));try{let t=await i(e);t&&o(n=>n.map(n=>n.id===e?{...t,loading:!1,lastUpdated:new Date}:n))}finally{u(t=>{let n=new Set(t);return n.delete(e),n}),o(t=>t.map(t=>t.id===e?{...t,loading:!1}:t))}}},[i]),refreshAll:n.useCallback(async()=>{if(i){c(!0);try{let e=await Promise.all(a.map(async e=>{let t=await i(e.id);return t?{...t,lastUpdated:new Date}:e}));o(e)}finally{c(!1)}}},[i,a]),updateKPI:n.useCallback((e,t)=>{o(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),addKPI:n.useCallback(e=>{o(t=>[...t,e])},[]),removeKPI:n.useCallback(e=>{o(t=>t.filter(t=>t.id!==e))},[]),reorderKPIs:n.useCallback(e=>{o(e)},[]),calculateTrend:n.useCallback((e,t)=>{if(t===0)return{direction:`neutral`,value:`0%`};let n=(e-t)/t*100;return{direction:n>0?`up`:n<0?`down`:`neutral`,value:`${n>=0?`+`:``}${n.toFixed(1)}%`}},[]),isRefreshing:n.useCallback(e=>l.has(e),[l])}}exports.KPICard=d,exports.WakaKPIDashboard=f,exports.default=f,exports.useKPIDashboard=p;
|
|
@@ -300,7 +300,8 @@ function b(e = {}) {
|
|
|
300
300
|
return t.useEffect(() => {
|
|
301
301
|
if (!r || !i) return;
|
|
302
302
|
let e = setInterval(async () => {
|
|
303
|
-
|
|
303
|
+
let e = await Promise.all(a.map(async (e) => await i(e.id) || e));
|
|
304
|
+
o(e);
|
|
304
305
|
}, r);
|
|
305
306
|
return () => clearInterval(e);
|
|
306
307
|
}, [
|
|
@@ -339,13 +340,14 @@ function b(e = {}) {
|
|
|
339
340
|
if (i) {
|
|
340
341
|
c(!0);
|
|
341
342
|
try {
|
|
342
|
-
|
|
343
|
+
let e = await Promise.all(a.map(async (e) => {
|
|
343
344
|
let t = await i(e.id);
|
|
344
345
|
return t ? {
|
|
345
346
|
...t,
|
|
346
347
|
lastUpdated: /* @__PURE__ */ new Date()
|
|
347
348
|
} : e;
|
|
348
|
-
}))
|
|
349
|
+
}));
|
|
350
|
+
o(e);
|
|
349
351
|
} finally {
|
|
350
352
|
c(!1);
|
|
351
353
|
}
|
|
@@ -381,4 +383,4 @@ function b(e = {}) {
|
|
|
381
383
|
};
|
|
382
384
|
}
|
|
383
385
|
//#endregion
|
|
384
|
-
export { v as KPICard, y as default, b as useKPIDashboard };
|
|
386
|
+
export { v as KPICard, y as WakaKPIDashboard, y as default, b as useKPIDashboard };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`),n=require(`../badge/index.cjs.js`),r=require(`../button/index.cjs.js`),i=require(`../card/index.cjs.js`),a=require(`../progress/index.cjs.js`),o=require(`../scroll-area/index.cjs.js`),s=require(`../tabs/index.cjs.js`);let c=require(`react`);c=e.__toESM(c);let l=require(`lucide-react`),u=require(`react/jsx-runtime`);var d={Ready:{color:`text-green-500`,icon:l.CheckCircle2},NotReady:{color:`text-red-500`,icon:l.XCircle},Unknown:{color:`text-yellow-500`,icon:l.AlertTriangle}},f={Running:{color:`text-green-500`,bgColor:`bg-green-500`},Pending:{color:`text-yellow-500`,bgColor:`bg-yellow-500`},Succeeded:{color:`text-blue-500`,bgColor:`bg-blue-500`},Failed:{color:`text-red-500`,bgColor:`bg-red-500`},Unknown:{color:`text-gray-500`,bgColor:`bg-gray-500`}};function p(e){if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`,`TB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**+r).toFixed(1))+` `+n[r]}function m({node:e,onClick:r}){let o=d[e.status],s=o.icon,c=e.cpu.used/e.cpu.total*100,f=e.memory.used/e.memory.total*100;return(0,u.jsxs)(i.Card,{className:t.cn(`cursor-pointer hover:border-primary/50 transition-colors`),onClick:r,children:[(0,u.jsxs)(i.CardHeader,{className:`pb-2`,children:[(0,u.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,u.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,u.jsx)(l.Server,{className:`h-4 w-4 text-muted-foreground`}),(0,u.jsx)(i.CardTitle,{className:`text-sm font-medium`,children:e.name})]}),(0,u.jsx)(s,{className:t.cn(`h-4 w-4`,o.color)})]}),(0,u.jsx)(`div`,{className:`flex items-center gap-1 flex-wrap`,children:e.roles.map(e=>(0,u.jsx)(n.Badge,{variant:`outline`,className:`text-xs`,children:e},e))})]}),(0,u.jsxs)(i.CardContent,{className:`space-y-3`,children:[(0,u.jsxs)(`div`,{className:`space-y-1`,children:[(0,u.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,u.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,u.jsx)(l.Cpu,{className:`h-3 w-3`}),` CPU`]}),(0,u.jsxs)(`span`,{children:[c.toFixed(0),`%`]})]}),(0,u.jsx)(a.Progress,{value:c,className:`h-1.5`})]}),(0,u.jsxs)(`div`,{className:`space-y-1`,children:[(0,u.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,u.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,u.jsx)(l.HardDrive,{className:`h-3 w-3`}),` Memory`]}),(0,u.jsxs)(`span`,{children:[p(e.memory.used),` / `,p(e.memory.total)]})]}),(0,u.jsx)(a.Progress,{value:f,className:`h-1.5`})]}),(0,u.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-muted-foreground`,children:[(0,u.jsxs)(`span`,{children:[`Pods: `,e.pods.running,`/`,e.pods.total]}),(0,u.jsxs)(`span`,{children:[`v`,e.version]})]})]})]})}function h({nodes:e,pods:t,deployments:n,services:r}){let i=e.filter(e=>e.status===`Ready`).length,o=t.filter(e=>e.phase===`Running`).length;n.filter(e=>e.status===`Available`).length;let s=e.reduce((e,t)=>e+t.cpu.total,0),c=e.reduce((e,t)=>e+t.cpu.used,0),l=e.reduce((e,t)=>e+t.memory.total,0),d=e.reduce((e,t)=>e+t.memory.used,0),f=(e,t)=>t>0?e/t*100:0;return(0,u.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4 p-4 border-b`,children:[(0,u.jsxs)(`div`,{className:`space-y-1`,children:[(0,u.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Nodes`}),(0,u.jsxs)(`div`,{className:`text-2xl font-bold`,children:[i,`/`,e.length]}),(0,u.jsx)(a.Progress,{value:f(i,e.length),className:`h-1`})]}),(0,u.jsxs)(`div`,{className:`space-y-1`,children:[(0,u.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Pods`}),(0,u.jsxs)(`div`,{className:`text-2xl font-bold`,children:[o,`/`,t.length]}),(0,u.jsx)(a.Progress,{value:f(o,t.length),className:`h-1`})]}),(0,u.jsxs)(`div`,{className:`space-y-1`,children:[(0,u.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`CPU Usage`}),(0,u.jsxs)(`div`,{className:`text-2xl font-bold`,children:[f(c,s).toFixed(0),`%`]}),(0,u.jsx)(a.Progress,{value:f(c,s),className:`h-1`})]}),(0,u.jsxs)(`div`,{className:`space-y-1`,children:[(0,u.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Memory Usage`}),(0,u.jsxs)(`div`,{className:`text-2xl font-bold`,children:[f(d,l).toFixed(0),`%`]}),(0,u.jsx)(a.Progress,{value:f(d,l),className:`h-1`})]})]})}function g({clusterName:e=`kubernetes`,nodes:i,pods:a,deployments:d,services:p,namespaces:g,selectedNamespace:_,onNamespaceChange:v,onResourceClick:y,onRefresh:b,isLoading:x=!1,className:S}){let[C,w]=c.useState(`nodes`),T=_&&_!==`all`?a.filter(e=>e.namespace===_):a,E=_&&_!==`all`?d.filter(e=>e.namespace===_):d,D=_&&_!==`all`?p.filter(e=>e.namespace===_):p;return(0,u.jsxs)(`div`,{className:t.cn(`flex flex-col border rounded-lg bg-background`,S),children:[(0,u.jsxs)(`div`,{className:`flex items-center justify-between gap-4 p-3 border-b`,children:[(0,u.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,u.jsx)(l.Layers,{className:`h-5 w-5 text-primary`}),(0,u.jsx)(`h3`,{className:`font-semibold`,children:e})]}),(0,u.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,u.jsxs)(`select`,{value:_||`all`,onChange:e=>v?.(e.target.value),className:`h-8 px-2 rounded border bg-background text-sm`,children:[(0,u.jsx)(`option`,{value:`all`,children:`All Namespaces`}),g.map(e=>(0,u.jsx)(`option`,{value:e.name,children:e.name},e.name))]}),b&&(0,u.jsx)(r.Button,{variant:`ghost`,size:`sm`,onClick:b,disabled:x,children:(0,u.jsx)(l.RefreshCw,{className:t.cn(`h-4 w-4`,x&&`animate-spin`)})})]})]}),(0,u.jsx)(h,{nodes:i,pods:a,deployments:d,services:p}),(0,u.jsxs)(s.Tabs,{value:C,onValueChange:w,className:`flex-1`,children:[(0,u.jsxs)(s.TabsList,{className:`w-full justify-start rounded-none border-b bg-transparent h-auto p-0`,children:[(0,u.jsxs)(s.TabsTrigger,{value:`nodes`,className:`rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:[(0,u.jsx)(l.Server,{className:`h-4 w-4 mr-2`}),`Nodes (`,i.length,`)`]}),(0,u.jsxs)(s.TabsTrigger,{value:`pods`,className:`rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:[(0,u.jsx)(l.Box,{className:`h-4 w-4 mr-2`}),`Pods (`,T.length,`)`]}),(0,u.jsxs)(s.TabsTrigger,{value:`deployments`,className:`rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:[(0,u.jsx)(l.Zap,{className:`h-4 w-4 mr-2`}),`Deployments (`,E.length,`)`]}),(0,u.jsxs)(s.TabsTrigger,{value:`services`,className:`rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:[(0,u.jsx)(l.Network,{className:`h-4 w-4 mr-2`}),`Services (`,D.length,`)`]})]}),(0,u.jsx)(s.TabsContent,{value:`nodes`,className:`p-4 m-0`,children:(0,u.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4`,children:i.map(e=>(0,u.jsx)(m,{node:e,onClick:()=>y?.(`node`,e.name)},e.name))})}),(0,u.jsx)(s.TabsContent,{value:`pods`,className:`m-0`,children:(0,u.jsx)(o.ScrollArea,{className:`h-[400px]`,children:(0,u.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,u.jsx)(`thead`,{className:`bg-muted/50 sticky top-0`,children:(0,u.jsxs)(`tr`,{children:[(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Name`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Namespace`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Status`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Ready`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Restarts`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Age`})]})}),(0,u.jsx)(`tbody`,{children:T.map(e=>{let t=f[e.phase];return(0,u.jsxs)(`tr`,{className:`border-b hover:bg-muted/30 cursor-pointer`,onClick:()=>y?.(`pod`,e.name,e.namespace),children:[(0,u.jsx)(`td`,{className:`p-2 font-medium`,children:e.name}),(0,u.jsx)(`td`,{className:`p-2 text-muted-foreground`,children:e.namespace}),(0,u.jsx)(`td`,{className:`p-2`,children:(0,u.jsx)(n.Badge,{variant:`outline`,className:t.color,children:e.phase})}),(0,u.jsx)(`td`,{className:`p-2`,children:e.ready}),(0,u.jsx)(`td`,{className:`p-2`,children:e.restarts}),(0,u.jsx)(`td`,{className:`p-2 text-muted-foreground`,children:e.age})]},`${e.namespace}/${e.name}`)})})]})})}),(0,u.jsx)(s.TabsContent,{value:`deployments`,className:`m-0`,children:(0,u.jsx)(o.ScrollArea,{className:`h-[400px]`,children:(0,u.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,u.jsx)(`thead`,{className:`bg-muted/50 sticky top-0`,children:(0,u.jsxs)(`tr`,{children:[(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Name`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Namespace`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Status`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Replicas`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Age`})]})}),(0,u.jsx)(`tbody`,{children:E.map(e=>(0,u.jsxs)(`tr`,{className:`border-b hover:bg-muted/30 cursor-pointer`,onClick:()=>y?.(`deployment`,e.name,e.namespace),children:[(0,u.jsx)(`td`,{className:`p-2 font-medium`,children:e.name}),(0,u.jsx)(`td`,{className:`p-2 text-muted-foreground`,children:e.namespace}),(0,u.jsx)(`td`,{className:`p-2`,children:(0,u.jsx)(n.Badge,{variant:e.status===`Available`?`default`:`secondary`,className:e.status===`Available`?`bg-green-500`:``,children:e.status})}),(0,u.jsxs)(`td`,{className:`p-2`,children:[e.replicas.ready,`/`,e.replicas.desired]}),(0,u.jsx)(`td`,{className:`p-2 text-muted-foreground`,children:e.age})]},`${e.namespace}/${e.name}`))})]})})}),(0,u.jsx)(s.TabsContent,{value:`services`,className:`m-0`,children:(0,u.jsx)(o.ScrollArea,{className:`h-[400px]`,children:(0,u.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,u.jsx)(`thead`,{className:`bg-muted/50 sticky top-0`,children:(0,u.jsxs)(`tr`,{children:[(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Name`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Namespace`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Type`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Cluster IP`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Ports`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Age`})]})}),(0,u.jsx)(`tbody`,{children:D.map(e=>(0,u.jsxs)(`tr`,{className:`border-b hover:bg-muted/30 cursor-pointer`,onClick:()=>y?.(`service`,e.name,e.namespace),children:[(0,u.jsx)(`td`,{className:`p-2 font-medium`,children:e.name}),(0,u.jsx)(`td`,{className:`p-2 text-muted-foreground`,children:e.namespace}),(0,u.jsx)(`td`,{className:`p-2`,children:(0,u.jsx)(n.Badge,{variant:`outline`,children:e.type})}),(0,u.jsx)(`td`,{className:`p-2 font-mono text-xs`,children:e.clusterIP}),(0,u.jsx)(`td`,{className:`p-2`,children:e.ports.map(e=>`${e.port}/${e.protocol}`).join(`, `)}),(0,u.jsx)(`td`,{className:`p-2 text-muted-foreground`,children:e.age})]},`${e.namespace}/${e.name}`))})]})})})]})]})}var _=[{name:`node-1`,status:`Ready`,roles:[`control-plane`,`master`],version:`1.28.2`,cpu:{used:2.5,total:8},memory:{used:6*1024*1024*1024,total:16*1024*1024*1024},pods:{running:25,total:110}},{name:`node-2`,status:`Ready`,roles:[`worker`],version:`1.28.2`,cpu:{used:5.2,total:8},memory:{used:12*1024*1024*1024,total:32*1024*1024*1024},pods:{running:45,total:110}},{name:`node-3`,status:`Ready`,roles:[`worker`],version:`1.28.2`,cpu:{used:3.8,total:8},memory:{used:8*1024*1024*1024,total:32*1024*1024*1024},pods:{running:38,total:110}}],v=[{name:`api-server-7d8f9b6c4d-x2k9l`,namespace:`default`,phase:`Running`,ready:`2/2`,restarts:0,age:`5d`},{name:`web-frontend-5c8d7e9f1b-m3n4o`,namespace:`default`,phase:`Running`,ready:`1/1`,restarts:2,age:`3d`},{name:`postgres-0`,namespace:`database`,phase:`Running`,ready:`1/1`,restarts:0,age:`14d`},{name:`redis-master-0`,namespace:`cache`,phase:`Running`,ready:`1/1`,restarts:0,age:`7d`},{name:`worker-6f7g8h9i0j-p5q6r`,namespace:`default`,phase:`Pending`,ready:`0/1`,restarts:0,age:`2m`}],y=[{name:`api-server`,namespace:`default`,replicas:{ready:3,desired:3},status:`Available`,age:`30d`},{name:`web-frontend`,namespace:`default`,replicas:{ready:2,desired:2},status:`Available`,age:`30d`},{name:`worker`,namespace:`default`,replicas:{ready:1,desired:2},status:`Progressing`,age:`15d`}],b=[{name:`api-server`,namespace:`default`,type:`ClusterIP`,clusterIP:`10.96.0.1`,ports:[{port:80,targetPort:8080,protocol:`TCP`}],age:`30d`},{name:`web-frontend`,namespace:`default`,type:`LoadBalancer`,clusterIP:`10.96.0.2`,externalIP:`34.123.45.67`,ports:[{port:443,targetPort:3e3,protocol:`TCP`}],age:`30d`},{name:`postgres`,namespace:`database`,type:`ClusterIP`,clusterIP:`10.96.0.10`,ports:[{port:5432,targetPort:5432,protocol:`TCP`}],age:`45d`}],x=[{name:`default`,status:`Active`,age:`90d`},{name:`kube-system`,status:`Active`,age:`90d`},{name:`database`,status:`Active`,age:`60d`},{name:`cache`,status:`Active`,age:`45d`}];exports.WakaKubernetesOverview=g,exports.defaultK8sDeployments=y,exports.defaultK8sNamespaces=x,exports.defaultK8sNodes=_,exports.defaultK8sPods=v,exports.defaultK8sServices=b;
|
|
1
|
+
"use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../badge/index.cjs.js"),r=require("../button/index.cjs.js"),i=require("../card/index.cjs.js"),a=require("../progress/index.cjs.js"),o=require("../scroll-area/index.cjs.js"),s=require("../tabs/index.cjs.js");let c=require("react");c=e.__toESM(c);let l=require("lucide-react"),u=require("react/jsx-runtime");var d={Ready:{color:`text-green-500`,icon:l.CheckCircle2},NotReady:{color:`text-red-500`,icon:l.XCircle},Unknown:{color:`text-yellow-500`,icon:l.AlertTriangle}},f={Running:{color:`text-green-500`,bgColor:`bg-green-500`},Pending:{color:`text-yellow-500`,bgColor:`bg-yellow-500`},Succeeded:{color:`text-blue-500`,bgColor:`bg-blue-500`},Failed:{color:`text-red-500`,bgColor:`bg-red-500`},Unknown:{color:`text-gray-500`,bgColor:`bg-gray-500`}};function p(e){if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`,`TB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**r).toFixed(1))+` `+n[r]}function m({node:e,onClick:r}){let o=d[e.status],s=o.icon,c=e.cpu.used/e.cpu.total*100,f=e.memory.used/e.memory.total*100;return(0,u.jsxs)(i.Card,{className:t.cn(`cursor-pointer hover:border-primary/50 transition-colors`),onClick:r,children:[(0,u.jsxs)(i.CardHeader,{className:`pb-2`,children:[(0,u.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,u.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,u.jsx)(l.Server,{className:`h-4 w-4 text-muted-foreground`}),(0,u.jsx)(i.CardTitle,{className:`text-sm font-medium`,children:e.name})]}),(0,u.jsx)(s,{className:t.cn(`h-4 w-4`,o.color)})]}),(0,u.jsx)(`div`,{className:`flex items-center gap-1 flex-wrap`,children:e.roles.map(e=>(0,u.jsx)(n.Badge,{variant:`outline`,className:`text-xs`,children:e},e))})]}),(0,u.jsxs)(i.CardContent,{className:`space-y-3`,children:[(0,u.jsxs)(`div`,{className:`space-y-1`,children:[(0,u.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,u.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,u.jsx)(l.Cpu,{className:`h-3 w-3`}),` CPU`]}),(0,u.jsxs)(`span`,{children:[c.toFixed(0),`%`]})]}),(0,u.jsx)(a.Progress,{value:c,className:`h-1.5`})]}),(0,u.jsxs)(`div`,{className:`space-y-1`,children:[(0,u.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,u.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,u.jsx)(l.HardDrive,{className:`h-3 w-3`}),` Memory`]}),(0,u.jsxs)(`span`,{children:[p(e.memory.used),` / `,p(e.memory.total)]})]}),(0,u.jsx)(a.Progress,{value:f,className:`h-1.5`})]}),(0,u.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-muted-foreground`,children:[(0,u.jsxs)(`span`,{children:[`Pods: `,e.pods.running,`/`,e.pods.total]}),(0,u.jsxs)(`span`,{children:[`v`,e.version]})]})]})]})}function h({nodes:e,pods:t,deployments:n,services:r}){let i=e.filter(e=>e.status===`Ready`).length,o=t.filter(e=>e.phase===`Running`).length;n.filter(e=>e.status===`Available`).length;let s=e.reduce((e,t)=>e+t.cpu.total,0),c=e.reduce((e,t)=>e+t.cpu.used,0),l=e.reduce((e,t)=>e+t.memory.total,0),d=e.reduce((e,t)=>e+t.memory.used,0),f=(e,t)=>t>0?e/t*100:0;return(0,u.jsxs)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4 p-4 border-b`,children:[(0,u.jsxs)(`div`,{className:`space-y-1`,children:[(0,u.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Nodes`}),(0,u.jsxs)(`div`,{className:`text-2xl font-bold`,children:[i,`/`,e.length]}),(0,u.jsx)(a.Progress,{value:f(i,e.length),className:`h-1`})]}),(0,u.jsxs)(`div`,{className:`space-y-1`,children:[(0,u.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Pods`}),(0,u.jsxs)(`div`,{className:`text-2xl font-bold`,children:[o,`/`,t.length]}),(0,u.jsx)(a.Progress,{value:f(o,t.length),className:`h-1`})]}),(0,u.jsxs)(`div`,{className:`space-y-1`,children:[(0,u.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`CPU Usage`}),(0,u.jsxs)(`div`,{className:`text-2xl font-bold`,children:[f(c,s).toFixed(0),`%`]}),(0,u.jsx)(a.Progress,{value:f(c,s),className:`h-1`})]}),(0,u.jsxs)(`div`,{className:`space-y-1`,children:[(0,u.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Memory Usage`}),(0,u.jsxs)(`div`,{className:`text-2xl font-bold`,children:[f(d,l).toFixed(0),`%`]}),(0,u.jsx)(a.Progress,{value:f(d,l),className:`h-1`})]})]})}function g({clusterName:e=`kubernetes`,nodes:i,pods:a,deployments:d,services:p,namespaces:g,selectedNamespace:_,onNamespaceChange:v,onResourceClick:y,onRefresh:b,isLoading:x=!1,className:S}){let[C,w]=c.useState(`nodes`),T=_&&_!==`all`?a.filter(e=>e.namespace===_):a,E=_&&_!==`all`?d.filter(e=>e.namespace===_):d,D=_&&_!==`all`?p.filter(e=>e.namespace===_):p;return(0,u.jsxs)(`div`,{className:t.cn(`flex flex-col border rounded-lg bg-background`,S),children:[(0,u.jsxs)(`div`,{className:`flex items-center justify-between gap-4 p-3 border-b`,children:[(0,u.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,u.jsx)(l.Layers,{className:`h-5 w-5 text-primary`}),(0,u.jsx)(`h3`,{className:`font-semibold`,children:e})]}),(0,u.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,u.jsxs)(`select`,{value:_||`all`,onChange:e=>v?.(e.target.value),className:`h-8 px-2 rounded border bg-background text-sm`,children:[(0,u.jsx)(`option`,{value:`all`,children:`All Namespaces`}),g.map(e=>(0,u.jsx)(`option`,{value:e.name,children:e.name},e.name))]}),b&&(0,u.jsx)(r.Button,{variant:`ghost`,size:`sm`,onClick:b,disabled:x,children:(0,u.jsx)(l.RefreshCw,{className:t.cn(`h-4 w-4`,x&&`animate-spin`)})})]})]}),(0,u.jsx)(h,{nodes:i,pods:a,deployments:d,services:p}),(0,u.jsxs)(s.Tabs,{value:C,onValueChange:w,className:`flex-1`,children:[(0,u.jsxs)(s.TabsList,{className:`w-full justify-start rounded-none border-b bg-transparent h-auto p-0`,children:[(0,u.jsxs)(s.TabsTrigger,{value:`nodes`,className:`rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:[(0,u.jsx)(l.Server,{className:`h-4 w-4 mr-2`}),`Nodes (`,i.length,`)`]}),(0,u.jsxs)(s.TabsTrigger,{value:`pods`,className:`rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:[(0,u.jsx)(l.Box,{className:`h-4 w-4 mr-2`}),`Pods (`,T.length,`)`]}),(0,u.jsxs)(s.TabsTrigger,{value:`deployments`,className:`rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:[(0,u.jsx)(l.Zap,{className:`h-4 w-4 mr-2`}),`Deployments (`,E.length,`)`]}),(0,u.jsxs)(s.TabsTrigger,{value:`services`,className:`rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:[(0,u.jsx)(l.Network,{className:`h-4 w-4 mr-2`}),`Services (`,D.length,`)`]})]}),(0,u.jsx)(s.TabsContent,{value:`nodes`,className:`p-4 m-0`,children:(0,u.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4`,children:i.map(e=>(0,u.jsx)(m,{node:e,onClick:()=>y?.(`node`,e.name)},e.name))})}),(0,u.jsx)(s.TabsContent,{value:`pods`,className:`m-0`,children:(0,u.jsx)(o.ScrollArea,{className:`h-[400px]`,children:(0,u.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,u.jsx)(`thead`,{className:`bg-muted/50 sticky top-0`,children:(0,u.jsxs)(`tr`,{children:[(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Name`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Namespace`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Status`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Ready`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Restarts`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Age`})]})}),(0,u.jsx)(`tbody`,{children:T.map(e=>{let t=f[e.phase];return(0,u.jsxs)(`tr`,{className:`border-b hover:bg-muted/30 cursor-pointer`,onClick:()=>y?.(`pod`,e.name,e.namespace),children:[(0,u.jsx)(`td`,{className:`p-2 font-medium`,children:e.name}),(0,u.jsx)(`td`,{className:`p-2 text-muted-foreground`,children:e.namespace}),(0,u.jsx)(`td`,{className:`p-2`,children:(0,u.jsx)(n.Badge,{variant:`outline`,className:t.color,children:e.phase})}),(0,u.jsx)(`td`,{className:`p-2`,children:e.ready}),(0,u.jsx)(`td`,{className:`p-2`,children:e.restarts}),(0,u.jsx)(`td`,{className:`p-2 text-muted-foreground`,children:e.age})]},`${e.namespace}/${e.name}`)})})]})})}),(0,u.jsx)(s.TabsContent,{value:`deployments`,className:`m-0`,children:(0,u.jsx)(o.ScrollArea,{className:`h-[400px]`,children:(0,u.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,u.jsx)(`thead`,{className:`bg-muted/50 sticky top-0`,children:(0,u.jsxs)(`tr`,{children:[(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Name`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Namespace`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Status`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Replicas`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Age`})]})}),(0,u.jsx)(`tbody`,{children:E.map(e=>(0,u.jsxs)(`tr`,{className:`border-b hover:bg-muted/30 cursor-pointer`,onClick:()=>y?.(`deployment`,e.name,e.namespace),children:[(0,u.jsx)(`td`,{className:`p-2 font-medium`,children:e.name}),(0,u.jsx)(`td`,{className:`p-2 text-muted-foreground`,children:e.namespace}),(0,u.jsx)(`td`,{className:`p-2`,children:(0,u.jsx)(n.Badge,{variant:e.status===`Available`?`default`:`secondary`,className:e.status===`Available`?`bg-green-500`:``,children:e.status})}),(0,u.jsxs)(`td`,{className:`p-2`,children:[e.replicas.ready,`/`,e.replicas.desired]}),(0,u.jsx)(`td`,{className:`p-2 text-muted-foreground`,children:e.age})]},`${e.namespace}/${e.name}`))})]})})}),(0,u.jsx)(s.TabsContent,{value:`services`,className:`m-0`,children:(0,u.jsx)(o.ScrollArea,{className:`h-[400px]`,children:(0,u.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,u.jsx)(`thead`,{className:`bg-muted/50 sticky top-0`,children:(0,u.jsxs)(`tr`,{children:[(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Name`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Namespace`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Type`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Cluster IP`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Ports`}),(0,u.jsx)(`th`,{className:`text-left p-2`,children:`Age`})]})}),(0,u.jsx)(`tbody`,{children:D.map(e=>(0,u.jsxs)(`tr`,{className:`border-b hover:bg-muted/30 cursor-pointer`,onClick:()=>y?.(`service`,e.name,e.namespace),children:[(0,u.jsx)(`td`,{className:`p-2 font-medium`,children:e.name}),(0,u.jsx)(`td`,{className:`p-2 text-muted-foreground`,children:e.namespace}),(0,u.jsx)(`td`,{className:`p-2`,children:(0,u.jsx)(n.Badge,{variant:`outline`,children:e.type})}),(0,u.jsx)(`td`,{className:`p-2 font-mono text-xs`,children:e.clusterIP}),(0,u.jsx)(`td`,{className:`p-2`,children:e.ports.map(e=>`${e.port}/${e.protocol}`).join(`, `)}),(0,u.jsx)(`td`,{className:`p-2 text-muted-foreground`,children:e.age})]},`${e.namespace}/${e.name}`))})]})})})]})]})}var _=[{name:`node-1`,status:`Ready`,roles:[`control-plane`,`master`],version:`1.28.2`,cpu:{used:2.5,total:8},memory:{used:6*1024*1024*1024,total:16*1024*1024*1024},pods:{running:25,total:110}},{name:`node-2`,status:`Ready`,roles:[`worker`],version:`1.28.2`,cpu:{used:5.2,total:8},memory:{used:12*1024*1024*1024,total:32*1024*1024*1024},pods:{running:45,total:110}},{name:`node-3`,status:`Ready`,roles:[`worker`],version:`1.28.2`,cpu:{used:3.8,total:8},memory:{used:8*1024*1024*1024,total:32*1024*1024*1024},pods:{running:38,total:110}}],v=[{name:`api-server-7d8f9b6c4d-x2k9l`,namespace:`default`,phase:`Running`,ready:`2/2`,restarts:0,age:`5d`},{name:`web-frontend-5c8d7e9f1b-m3n4o`,namespace:`default`,phase:`Running`,ready:`1/1`,restarts:2,age:`3d`},{name:`postgres-0`,namespace:`database`,phase:`Running`,ready:`1/1`,restarts:0,age:`14d`},{name:`redis-master-0`,namespace:`cache`,phase:`Running`,ready:`1/1`,restarts:0,age:`7d`},{name:`worker-6f7g8h9i0j-p5q6r`,namespace:`default`,phase:`Pending`,ready:`0/1`,restarts:0,age:`2m`}],y=[{name:`api-server`,namespace:`default`,replicas:{ready:3,desired:3},status:`Available`,age:`30d`},{name:`web-frontend`,namespace:`default`,replicas:{ready:2,desired:2},status:`Available`,age:`30d`},{name:`worker`,namespace:`default`,replicas:{ready:1,desired:2},status:`Progressing`,age:`15d`}],b=[{name:`api-server`,namespace:`default`,type:`ClusterIP`,clusterIP:`10.96.0.1`,ports:[{port:80,targetPort:8080,protocol:`TCP`}],age:`30d`},{name:`web-frontend`,namespace:`default`,type:`LoadBalancer`,clusterIP:`10.96.0.2`,externalIP:`34.123.45.67`,ports:[{port:443,targetPort:3e3,protocol:`TCP`}],age:`30d`},{name:`postgres`,namespace:`database`,type:`ClusterIP`,clusterIP:`10.96.0.10`,ports:[{port:5432,targetPort:5432,protocol:`TCP`}],age:`45d`}],x=[{name:`default`,status:`Active`,age:`90d`},{name:`kube-system`,status:`Active`,age:`90d`},{name:`database`,status:`Active`,age:`60d`},{name:`cache`,status:`Active`,age:`45d`}];exports.WakaKubernetesOverview=g,exports.defaultK8sDeployments=y,exports.defaultK8sNamespaces=x,exports.defaultK8sNodes=_,exports.defaultK8sPods=v,exports.defaultK8sServices=b;
|
|
@@ -55,7 +55,7 @@ function k(e) {
|
|
|
55
55
|
"GB",
|
|
56
56
|
"TB"
|
|
57
57
|
], r = Math.floor(Math.log(e) / Math.log(t));
|
|
58
|
-
return parseFloat((e / t **
|
|
58
|
+
return parseFloat((e / t ** r).toFixed(1)) + " " + n[r];
|
|
59
59
|
}
|
|
60
60
|
function A({ node: n, onClick: c }) {
|
|
61
61
|
let l = D[n.status], u = l.icon, d = n.cpu.used / n.cpu.total * 100, f = n.memory.used / n.memory.total * 100;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use client";const e=require(
|
|
1
|
+
"use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("lucide-react"),i=require("react/jsx-runtime");var a={1:{gradient:`from-yellow-300 via-yellow-400 to-yellow-500`,shadow:`shadow-yellow-400/50`,glow:`hsl(var(--warning))`,border:`border-yellow-400`,bg:`bg-yellow-50 dark:bg-yellow-950/30`,text:`text-yellow-700 dark:text-yellow-400`,icon:r.Crown,label:`Gold`},2:{gradient:`from-gray-300 via-gray-400 to-gray-500`,shadow:`shadow-gray-400/50`,glow:`hsl(var(--muted-foreground))`,border:`border-gray-400`,bg:`bg-gray-50 dark:bg-gray-950/30`,text:`text-gray-700 dark:text-gray-400`,icon:r.Medal,label:`Silver`},3:{gradient:`from-amber-500 via-amber-600 to-amber-700`,shadow:`shadow-amber-500/50`,glow:`hsl(var(--chart-4))`,border:`border-amber-500`,bg:`bg-amber-50 dark:bg-amber-950/30`,text:`text-amber-700 dark:text-amber-400`,icon:r.Medal,label:`Bronze`}};function o({name:e,avatar:n,size:o=`default`,rank:s,className:c}){let l={sm:`h-8 w-8 text-xs`,default:`h-10 w-10 text-sm`,lg:`h-14 w-14 text-base`},u=e=>e.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2),d=s&&s<=3?a[s]:null;return(0,i.jsxs)(`div`,{className:t.cn(`relative flex items-center justify-center rounded-full font-semibold`,l[o],n?``:`bg-muted text-muted-foreground`,d&&`ring-2 ${d.border}`,c),children:[n?(0,i.jsx)(`img`,{src:n,alt:e,className:`h-full w-full rounded-full object-cover`}):u(e),d&&(0,i.jsx)(`div`,{className:t.cn(`absolute -bottom-0.5 -right-0.5 flex h-4 w-4 items-center justify-center rounded-full bg-gradient-to-br text-white shadow-lg`,d.gradient),children:s===1?(0,i.jsx)(r.Crown,{className:`h-2.5 w-2.5`}):(0,i.jsx)(`span`,{className:`text-[8px] font-bold`,children:s})})]})}function s({currentRank:e,previousRank:n,size:a=`default`}){if(n===void 0||n===e)return(0,i.jsx)(`div`,{className:`flex items-center text-muted-foreground`,children:(0,i.jsx)(r.Minus,{className:t.cn(a===`sm`?`h-3 w-3`:`h-4 w-4`)})});let o=e<n,s=Math.abs(n-e);return(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-0.5 font-medium`,o?`text-green-600`:`text-red-500`,a===`sm`?`text-xs`:`text-sm`),children:[o?(0,i.jsx)(r.TrendingUp,{className:t.cn(a===`sm`?`h-3 w-3`:`h-4 w-4`)}):(0,i.jsx)(r.TrendingDown,{className:t.cn(a===`sm`?`h-3 w-3`:`h-4 w-4`)}),(0,i.jsx)(`span`,{children:s})]})}function c({entries:e,size:n=`default`,scoreLabel:r=`pts`,formatScore:s=e=>e.toLocaleString(),onEntryClick:c,className:l}){let u=e.slice(0,3);if(u.length===0)return null;let d=[u[1],u[0],u[2]].filter(Boolean),f={sm:{container:`h-32`,avatar:`sm`,name:`text-xs`,score:`text-xs`,podiumHeights:[`h-16`,`h-24`,`h-12`]},default:{container:`h-48`,avatar:`default`,name:`text-sm`,score:`text-sm`,podiumHeights:[`h-20`,`h-32`,`h-16`]},lg:{container:`h-64`,avatar:`lg`,name:`text-base`,score:`text-base`,podiumHeights:[`h-24`,`h-40`,`h-20`]}}[n];return(0,i.jsxs)(`div`,{className:t.cn(`relative flex items-end justify-center gap-2`,f.container,l),children:[d.map((e,n)=>{if(!e)return(0,i.jsx)(`div`,{className:`w-24`},`empty-${n}`);let l=e.rank,u=a[l],d=l===1?1:l===2?0:2;return(0,i.jsxs)(`div`,{className:t.cn(`flex flex-col items-center transition-all duration-500`,c&&`cursor-pointer`),onClick:()=>c?.(e),children:[(0,i.jsx)(`div`,{className:t.cn(l===1&&`animate-float`),children:(0,i.jsx)(o,{name:e.name,avatar:e.avatar,size:f.avatar,rank:l})}),(0,i.jsx)(`span`,{className:t.cn(`mt-2 max-w-[80px] truncate font-medium text-center`,f.name,e.isCurrentUser&&`text-primary font-bold`),children:e.name}),(0,i.jsxs)(`span`,{className:t.cn(`text-muted-foreground`,f.score),children:[s(e.score),` `,r]}),(0,i.jsx)(`div`,{className:t.cn(`mt-2 w-20 rounded-t-lg flex items-center justify-center bg-gradient-to-b transition-all`,u.gradient,f.podiumHeights[d]),style:{boxShadow:`0 -4px 20px ${u.glow}40`},children:(0,i.jsx)(`span`,{className:`text-2xl font-bold text-white drop-shadow-lg`,children:l})})]},e.id)}),(0,i.jsx)(`style`,{children:`
|
|
2
2
|
@keyframes float {
|
|
3
3
|
0%, 100% { transform: translateY(0); }
|
|
4
4
|
50% { transform: translateY(-8px); }
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use client";const e=require(
|
|
1
|
+
"use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("lucide-react"),i=require("react/jsx-runtime");var a={default:{gradient:`from-blue-500 to-purple-600`,bgGradient:`from-blue-500/20 to-purple-600/20`,text:`text-blue-600`,glow:`#3b82f6`,border:`border-blue-500/30`},gold:{gradient:`from-yellow-400 to-orange-500`,bgGradient:`from-yellow-400/20 to-orange-500/20`,text:`text-yellow-600`,glow:`#f59e0b`,border:`border-yellow-500/30`},purple:{gradient:`from-purple-500 to-pink-600`,bgGradient:`from-purple-500/20 to-pink-600/20`,text:`text-purple-600`,glow:`#a855f7`,border:`border-purple-500/30`},green:{gradient:`from-green-500 to-emerald-600`,bgGradient:`from-green-500/20 to-emerald-600/20`,text:`text-green-600`,glow:`#22c55e`,border:`border-green-500/30`},blue:{gradient:`from-cyan-500 to-blue-600`,bgGradient:`from-cyan-500/20 to-blue-600/20`,text:`text-cyan-600`,glow:`#06b6d4`,border:`border-cyan-500/30`}};function o({active:e,onComplete:t}){let[a,o]=n.useState(!1);if(n.useEffect(()=>{if(e){o(!0);let e=setTimeout(()=>{o(!1),t?.()},3e3);return()=>clearTimeout(e)}},[e,t]),!a)return null;let s=[`#fbbf24`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#06b6d4`,`#22c55e`];return(0,i.jsxs)(`div`,{className:`pointer-events-none fixed inset-0 z-50 overflow-hidden`,children:[[...Array(60)].map((e,t)=>{let n=t/60*360,r=200+Math.random()*300,a=8+Math.random()*12,o=1+Math.random()*.5;return(0,i.jsx)(`div`,{className:`absolute left-1/2 top-1/2 animate-confetti-burst`,style:{width:a,height:a,backgroundColor:s[Math.floor(Math.random()*s.length)],borderRadius:Math.random()>.5?`50%`:`2px`,"--angle":`${n}deg`,"--distance":`${r}px`,animationDuration:`${o}s`,animationDelay:`${Math.random()*.2}s`}},t)}),(0,i.jsx)(`div`,{className:`absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 animate-level-up-text`,children:(0,i.jsxs)(`div`,{className:`flex items-center gap-2 rounded-full bg-gradient-to-r from-yellow-400 to-orange-500 px-8 py-4 text-white shadow-2xl`,children:[(0,i.jsx)(r.ChevronUp,{className:`h-8 w-8 animate-bounce`}),(0,i.jsx)(`span`,{className:`text-3xl font-bold`,children:`LEVEL UP!`}),(0,i.jsx)(r.ChevronUp,{className:`h-8 w-8 animate-bounce`})]})}),[...Array(20)].map((e,t)=>(0,i.jsx)(r.Sparkles,{className:`absolute animate-sparkle`,style:{left:`${Math.random()*100}%`,top:`${Math.random()*100}%`,color:s[Math.floor(Math.random()*s.length)],animationDelay:`${Math.random()*2}s`,fontSize:`${16+Math.random()*16}px`}},`sparkle-${t}`)),(0,i.jsx)(`style`,{children:`
|
|
2
2
|
@keyframes confetti-burst {
|
|
3
3
|
0% {
|
|
4
4
|
transform: translate(-50%, -50%) rotate(var(--angle)) translateX(0) scale(1);
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
.animate-shine {
|
|
45
45
|
animation: shine 3s ease-in-out infinite;
|
|
46
46
|
}
|
|
47
|
-
`})]})}function c({currentXp:e,currentLevel:c,xpForNextLevel:l,xpAtCurrentLevel:u=0,levelLabel:d=`Level`,size:f=`default`,showXpNumbers:p=!0,showPercentage:m=!1,milestones:h=[],animate:g=!0,showLevelUpCelebration:_=!0,onLevelUp:v,theme:y=`gold`,className:b}){let[x,S]=n.useState(0),[C,w]=n.useState(!1),T=n.useRef(c),E=a[y],D=e-u,O=l-u,k=Math.min(100,D/O*100),A=Math.max(0,l-e),j={sm:{container:`gap-2`,bar:`h-2`,levelBadge:`sm`,text:`text-xs`,milestone:`h-3 w-3`},default:{container:`gap-3`,bar:`h-3`,levelBadge:`default`,text:`text-sm`,milestone:`h-4 w-4`},lg:{container:`gap-4`,bar:`h-4`,levelBadge:`lg`,text:`text-base`,milestone:`h-5 w-5`}}[f];return n.useEffect(()=>{if(!g){S(k);return}let e=x,t=k-e,n=Date.now(),r=()=>{let i=Date.now()-n,a=Math.min(i/1e3,1)
|
|
47
|
+
`})]})}function c({currentXp:e,currentLevel:c,xpForNextLevel:l,xpAtCurrentLevel:u=0,levelLabel:d=`Level`,size:f=`default`,showXpNumbers:p=!0,showPercentage:m=!1,milestones:h=[],animate:g=!0,showLevelUpCelebration:_=!0,onLevelUp:v,theme:y=`gold`,className:b}){let[x,S]=n.useState(0),[C,w]=n.useState(!1),T=n.useRef(c),E=a[y],D=e-u,O=l-u,k=Math.min(100,D/O*100),A=Math.max(0,l-e),j={sm:{container:`gap-2`,bar:`h-2`,levelBadge:`sm`,text:`text-xs`,milestone:`h-3 w-3`},default:{container:`gap-3`,bar:`h-3`,levelBadge:`default`,text:`text-sm`,milestone:`h-4 w-4`},lg:{container:`gap-4`,bar:`h-4`,levelBadge:`lg`,text:`text-base`,milestone:`h-5 w-5`}}[f];return n.useEffect(()=>{if(!g){S(k);return}let e=x,t=k-e,n=Date.now(),r=()=>{let i=Date.now()-n,a=Math.min(i/1e3,1),o=1-(1-a)**3;S(e+t*o),a<1&&requestAnimationFrame(r)};requestAnimationFrame(r)},[k,g]),n.useEffect(()=>{c>T.current&&(_&&w(!0),v?.(c)),T.current=c},[c,_,v]),(0,i.jsxs)(`div`,{className:t.cn(`relative`,b),children:[(0,i.jsx)(o,{active:C,onComplete:()=>w(!1)}),(0,i.jsxs)(`div`,{className:t.cn(`flex items-center`,j.container),children:[(0,i.jsx)(s,{level:c,size:j.levelBadge,theme:y,animated:g}),(0,i.jsxs)(`div`,{className:`flex-1`,children:[(0,i.jsxs)(`div`,{className:`mb-1 flex items-center justify-between`,children:[(0,i.jsxs)(`span`,{className:t.cn(`font-medium`,j.text),children:[d,` `,c]}),(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-2 text-muted-foreground`,j.text),children:[p&&(0,i.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,i.jsx)(r.Zap,{className:`h-3.5 w-3.5 text-yellow-500`}),(0,i.jsx)(`span`,{className:`font-medium tabular-nums`,children:D.toLocaleString()}),(0,i.jsx)(`span`,{children:`/`}),(0,i.jsxs)(`span`,{className:`tabular-nums`,children:[O.toLocaleString(),` XP`]})]}),m&&(0,i.jsxs)(`span`,{className:`font-medium tabular-nums`,children:[Math.round(k),`%`]})]})]}),(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsxs)(`div`,{className:t.cn(`relative w-full overflow-hidden rounded-full bg-muted`,j.bar),children:[(0,i.jsx)(`div`,{className:t.cn(`absolute inset-0 rounded-full opacity-30 blur-sm bg-gradient-to-r`,E.gradient),style:{width:`${x}%`}}),(0,i.jsx)(`div`,{className:t.cn(`relative h-full rounded-full bg-gradient-to-r transition-all duration-300`,E.gradient),style:{width:`${x}%`},children:(0,i.jsx)(`div`,{className:`absolute inset-0 overflow-hidden rounded-full`,children:(0,i.jsx)(`div`,{className:`absolute inset-0 animate-progress-shine`})})}),h.map(e=>{let n=(e.xpRequired-u)/O*100;return n<=0||n>=100?null:(0,i.jsx)(`div`,{className:`absolute top-1/2 -translate-y-1/2 z-10`,style:{left:`${n}%`},children:(0,i.jsx)(`div`,{className:t.cn(`flex items-center justify-center rounded-full border-2 border-background bg-muted transition-all`,j.milestone,k>=n&&t.cn(`bg-gradient-to-br`,E.gradient,`text-white`)),children:e.icon||(0,i.jsx)(r.Star,{className:`h-2 w-2`})})},e.level)})]}),p&&(0,i.jsxs)(`div`,{className:t.cn(`mt-1 text-muted-foreground text-right`,j.text),children:[(0,i.jsx)(`span`,{className:`tabular-nums`,children:A.toLocaleString()}),` XP to next level`]})]})]}),(0,i.jsx)(`div`,{className:`flex flex-col items-center opacity-50`,children:(0,i.jsx)(s,{level:c+1,size:j.levelBadge,theme:y,animated:!1})})]}),(0,i.jsx)(`style`,{children:`
|
|
48
48
|
@keyframes progress-shine {
|
|
49
49
|
0% { transform: translateX(-100%); opacity: 0; }
|
|
50
50
|
50% { opacity: 0.3; }
|
|
@@ -178,8 +178,8 @@ function d({ currentXp: n, currentLevel: r, xpForNextLevel: d, xpAtCurrentLevel:
|
|
|
178
178
|
return;
|
|
179
179
|
}
|
|
180
180
|
let e = C, t = j - e, n = Date.now(), r = () => {
|
|
181
|
-
let i = Date.now() - n, a = Math.min(i / 1e3, 1);
|
|
182
|
-
w(e + t *
|
|
181
|
+
let i = Date.now() - n, a = Math.min(i / 1e3, 1), o = 1 - (1 - a) ** 3;
|
|
182
|
+
w(e + t * o), a < 1 && requestAnimationFrame(r);
|
|
183
183
|
};
|
|
184
184
|
requestAnimationFrame(r);
|
|
185
185
|
}, [j, v]), t.useEffect(() => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use client";const e=require(
|
|
1
|
+
"use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("class-variance-authority"),i=require("react/jsx-runtime");var a=(0,r.cva)(`relative inline-flex items-center justify-center gap-2 overflow-visible whitespace-nowrap font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50`,{variants:{variant:{default:``,secondary:``,destructive:``,success:``,gradient:``,neon:``},size:{sm:`h-9 px-4 text-sm`,default:`h-11 px-6 text-base`,lg:`h-14 px-8 text-lg`,xl:`h-16 px-10 text-xl`},rounded:{default:`rounded-xl`,sm:`rounded-lg`,lg:`rounded-2xl`,full:`rounded-full`}},defaultVariants:{variant:`default`,size:`default`,rounded:`default`}}),o={default:{bg:`hsl(var(--primary))`,text:`hsl(var(--primary-foreground))`,hover:`hsl(var(--primary) / 0.9)`,glow:`hsl(var(--primary) / 0.4)`},secondary:{bg:`hsl(var(--secondary))`,text:`hsl(var(--secondary-foreground))`,hover:`hsl(var(--secondary) / 0.9)`,glow:`hsl(var(--secondary) / 0.4)`},destructive:{bg:`hsl(var(--destructive))`,text:`hsl(var(--destructive-foreground))`,hover:`hsl(var(--destructive) / 0.9)`,glow:`hsl(var(--destructive) / 0.4)`},success:{bg:`#22c55e`,text:`#ffffff`,hover:`#16a34a`,glow:`rgba(34, 197, 94, 0.4)`},gradient:{bg:`linear-gradient(135deg, hsl(var(--primary)), hsl(280, 80%, 60%))`,text:`#ffffff`,hover:`linear-gradient(135deg, hsl(var(--primary) / 0.9), hsl(280, 80%, 55%))`,glow:`hsl(var(--primary) / 0.4)`,gradient:`linear-gradient(135deg, hsl(var(--primary)), hsl(280, 80%, 60%))`},neon:{bg:`transparent`,text:`hsl(var(--primary))`,hover:`hsl(var(--primary) / 0.1)`,glow:`hsl(var(--primary) / 0.6)`}};function s({id:e,intensity:t}){let n=.02+t*.03,r=2+t*6;return(0,i.jsx)(`svg`,{className:`absolute w-0 h-0`,"aria-hidden":`true`,children:(0,i.jsx)(`defs`,{children:(0,i.jsxs)(`filter`,{id:e,x:`-50%`,y:`-50%`,width:`200%`,height:`200%`,children:[(0,i.jsx)(`feTurbulence`,{type:`fractalNoise`,baseFrequency:n,numOctaves:3,result:`noise`,children:(0,i.jsx)(`animate`,{attributeName:`baseFrequency`,dur:`3s`,values:`${n};${n*1.5};${n}`,repeatCount:`indefinite`})}),(0,i.jsx)(`feDisplacementMap`,{in:`SourceGraphic`,in2:`noise`,scale:r,xChannelSelector:`R`,yChannelSelector:`G`,result:`displaced`}),(0,i.jsx)(`feGaussianBlur`,{in:`displaced`,stdDeviation:`0.5`,result:`blurred`}),(0,i.jsx)(`feMerge`,{children:(0,i.jsx)(`feMergeNode`,{in:`blurred`})})]})})})}function c({className:e}){return(0,i.jsxs)(`svg`,{className:t.cn(`animate-spin`,e),width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,i.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`3`}),(0,i.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z`})]})}function l({variant:e,isHovered:t,isPressed:r,blobPoints:a,animationSpeed:s}){let c=o[e],[l,u]=n.useState(``),d=n.useCallback((e=0)=>{let n=a,i=Math.PI*2/n,o=t?8:r?4:6,s=``,c=[];for(let t=0;t<n;t++){let n=t*i+e,r=50+Math.sin(n*3+e*5)*o,a=50+r*Math.cos(n),s=50+r*Math.sin(n);c.push({x:a,y:s})}for(let e=0;e<c.length;e++){let t=c[e],n=c[(e+1)%c.length],r=c[(e-1+c.length)%c.length];e===0&&(s=`M ${t.x} ${t.y}`);let i=t.x+(n.x-r.x)*.2,a=t.y+(n.y-r.y)*.2,o=n.x-(c[(e+2)%c.length].x-t.x)*.2,l=n.y-(c[(e+2)%c.length].y-t.y)*.2;s+=` C ${i} ${a}, ${o} ${l}, ${n.x} ${n.y}`}return s+=` Z`,s},[a,t,r]);n.useEffect(()=>{let e=0,t,n=()=>{e+=s/1e3*.02,u(d(e)),t=requestAnimationFrame(n)};return t=requestAnimationFrame(n),()=>cancelAnimationFrame(t)},[d,s]);let f=e===`gradient`,p=e===`neon`;return(0,i.jsxs)(`svg`,{className:`absolute inset-0 w-full h-full`,viewBox:`0 0 100 100`,preserveAspectRatio:`none`,style:{filter:t?`drop-shadow(0 0 10px ${c.glow})`:void 0,transition:`filter ${s}ms ease-out`},children:[(0,i.jsx)(`defs`,{children:f&&(0,i.jsxs)(`linearGradient`,{id:`liquid-gradient`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,i.jsx)(`stop`,{offset:`0%`,stopColor:`hsl(var(--primary))`}),(0,i.jsx)(`stop`,{offset:`100%`,stopColor:`hsl(280, 80%, 60%)`})]})}),(0,i.jsx)(`path`,{d:l,fill:f?`url(#liquid-gradient)`:p?`transparent`:c.bg,stroke:p?c.text:`none`,strokeWidth:p?2:0,style:{transform:r?`scale(0.98)`:t?`scale(1.02)`:`scale(1)`,transformOrigin:`center`,transition:`transform ${s/2}ms ease-out`}})]})}var u=0,d=n.forwardRef(({className:e,variant:r=`default`,size:d,rounded:f,children:p,liquidEffect:m=!0,liquidIntensity:h=.5,liquidSpeed:g=1e3,blobPoints:_=8,loading:v=!1,loadingText:y=`Loading...`,leftIcon:b,rightIcon:x,filterId:S,disabled:C,onClick:w,onMouseEnter:T,onMouseLeave:E,onMouseDown:D,onMouseUp:O,...k},A)=>{let[j,M]=n.useState(!1),[N,P]=n.useState(!1),[F]=n.useState(()=>S??`liquid-filter-${++u}`),I=o[r??`default`],L=n.useCallback(e=>{C||v||(M(!0),T?.(e))},[C,v,T]),R=n.useCallback(e=>{M(!1),P(!1),E?.(e)},[E]),z=n.useCallback(e=>{C||v||(P(!0),D?.(e))},[C,v,D]),B=n.useCallback(e=>{P(!1),O?.(e)},[O]),V=n.useCallback(e=>{C||v||w?.(e)},[C,v,w]);return(0,i.jsxs)(i.Fragment,{children:[m&&(0,i.jsx)(s,{id:F,intensity:h}),(0,i.jsxs)(`button`,{ref:A,className:t.cn(a({variant:r,size:d,rounded:f}),`z-10`,e),style:{filter:m&&j?`url(#${F})`:void 0,color:I.text},disabled:C||v,onClick:V,onMouseEnter:L,onMouseLeave:R,onMouseDown:z,onMouseUp:B,...k,children:[(0,i.jsx)(l,{variant:r??`default`,isHovered:j,isPressed:N,blobPoints:_,animationSpeed:g}),(0,i.jsx)(`span`,{className:`relative z-10 flex items-center gap-2`,children:v?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(c,{}),(0,i.jsx)(`span`,{children:y})]}):(0,i.jsxs)(i.Fragment,{children:[b&&(0,i.jsx)(`span`,{className:`flex-shrink-0`,children:b}),(0,i.jsx)(`span`,{children:p}),x&&(0,i.jsx)(`span`,{className:`flex-shrink-0`,children:x})]})})]})]})});if(d.displayName=`WakaLiquidButton`,typeof document<`u`){let e=`waka-liquid-button-styles`;if(!document.getElementById(e)){let t=document.createElement(`style`);t.id=e,t.textContent=`
|
|
2
2
|
@keyframes liquid-pulse {
|
|
3
3
|
0%, 100% {
|
|
4
4
|
transform: scale(1);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use client";const e=require(
|
|
1
|
+
"use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("class-variance-authority"),i=require("react/jsx-runtime");var a=(0,r.cva)(`relative inline-flex items-center justify-center`,{variants:{size:{sm:`w-16 h-16`,md:`w-24 h-24`,lg:`w-32 h-32`,xl:`w-48 h-48`}},defaultVariants:{size:`md`}}),o={sm:64,md:96,lg:128,xl:192},s={primary:`hsl(var(--primary))`,secondary:`hsl(var(--secondary))`,accent:`hsl(var(--accent))`};function c(e,t){return Array.from({length:e},(n,r)=>({radius:.3+r*.25/(e-1||1),duration:2+r*.8,planetSize:8-r*1.5,color:t[r%t.length],startAngle:360/e*r,direction:r%2==0?`clockwise`:`counterclockwise`,opacity:1-r*.15,showPath:!0,pathOpacity:.2}))}function l({orbit:e,containerSize:t,paused:n}){let{radius:r,duration:a,planetSize:o,color:s,startAngle:c=0,direction:l=`clockwise`,opacity:u=1}=e,d=t/2*r,f=t/2;return(0,i.jsx)(`div`,{className:`absolute`,style:{width:t,height:t,left:0,top:0,animation:n?`none`:`waka-orbit-rotate ${a}s linear infinite ${l===`counterclockwise`?`reverse`:``}`,transform:`rotate(${c}deg)`},children:(0,i.jsx)(`div`,{className:`absolute rounded-full`,style:{width:o,height:o,backgroundColor:s,left:f+d-o/2,top:f-o/2,opacity:u,boxShadow:`0 0 ${o}px ${s}40`}})})}function u({orbit:e,containerSize:t}){if(!e.showPath)return null;let n=t/2*e.radius,r=t/2;return(0,i.jsx)(`circle`,{cx:r,cy:r,r:n,fill:`none`,stroke:e.color,strokeWidth:`1`,strokeDasharray:`4 4`,opacity:e.pathOpacity??.2})}var d=n.forwardRef(({className:e,size:r=`md`,orbits:d,orbitCount:f=3,primaryColor:p=s.primary,secondaryColor:m=s.secondary,accentColor:h=s.accent,showPaths:g=!0,centerIcon:_,centerColor:v=p,centerScale:y=1,paused:b=!1,...x},S)=>{let C=o[r??`md`],w=[p,m,h],T=n.useMemo(()=>d??c(f,w).map(e=>({...e,showPath:g})),[d,f,w,g]),E=C*.15*y;return(0,i.jsxs)(`div`,{ref:S,className:t.cn(a({size:r,className:e})),role:`status`,"aria-label":`Loading`,...x,children:[(0,i.jsx)(`svg`,{width:C,height:C,viewBox:`0 0 ${C} ${C}`,className:`absolute inset-0`,"aria-hidden":`true`,focusable:`false`,children:T.map((e,t)=>(0,i.jsx)(u,{orbit:e,containerSize:C},t))}),T.map((e,t)=>(0,i.jsx)(l,{orbit:e,containerSize:C,paused:b},t)),(0,i.jsx)(`div`,{className:`absolute flex items-center justify-center rounded-full`,style:{width:E,height:E,backgroundColor:_?`transparent`:v,boxShadow:_?`none`:`0 0 ${E}px ${v}40`},children:_}),!_&&(0,i.jsx)(`div`,{className:`absolute rounded-full`,style:{width:E*1.5,height:E*1.5,backgroundColor:v,opacity:.3,animation:b?`none`:`waka-orbit-pulse 2s ease-in-out infinite`}}),(0,i.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`
|
|
2
2
|
@keyframes waka-orbit-rotate {
|
|
3
3
|
from {
|
|
4
4
|
transform: rotate(0deg);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use client";const e=require(
|
|
1
|
+
"use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../badge/index.cjs.js"),r=require("../button/index.cjs.js"),i=require("../input/index.cjs.js"),a=require("../select/index.cjs.js"),o=require("../scroll-area/index.cjs.js");let s=require("react");s=e.__toESM(s);let c=require("lucide-react"),l=require("react/jsx-runtime");var u={error:{icon:c.AlertCircle,color:`text-red-500`,bgColor:`bg-red-500/10`},warn:{icon:c.AlertTriangle,color:`text-yellow-500`,bgColor:`bg-yellow-500/10`},info:{icon:c.Info,color:`text-blue-500`,bgColor:`bg-blue-500/10`},debug:{icon:c.Bug,color:`text-purple-500`,bgColor:`bg-purple-500/10`},trace:{icon:c.Clock,color:`text-gray-500`,bgColor:`bg-gray-500/10`}};function d({entry:e,showTimestamp:r,showSource:i,isExpanded:a,onToggleExpand:o}){let s=u[e.level],d=s.icon,f=e.metadata||e.stackTrace;return(0,l.jsxs)(`div`,{className:t.cn(`border-b border-border/50 hover:bg-muted/30 transition-colors`,s.bgColor),children:[(0,l.jsxs)(`div`,{className:t.cn(`flex items-start gap-2 px-3 py-2 font-mono text-sm`,f&&`cursor-pointer`),onClick:f?o:void 0,children:[f&&(0,l.jsx)(`button`,{className:`mt-0.5 text-muted-foreground hover:text-foreground`,children:a?(0,l.jsx)(c.ChevronDown,{className:`h-4 w-4`}):(0,l.jsx)(c.ChevronRight,{className:`h-4 w-4`})}),(0,l.jsx)(d,{className:t.cn(`h-4 w-4 mt-0.5 shrink-0`,s.color)}),r&&(0,l.jsxs)(`span`,{className:`text-muted-foreground shrink-0 text-xs`,children:[e.timestamp.toLocaleTimeString(`fr-FR`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),`.`,e.timestamp.getMilliseconds().toString().padStart(3,`0`)]}),(0,l.jsx)(n.Badge,{variant:`outline`,className:t.cn(`shrink-0 uppercase text-xs`,s.color),children:e.level}),i&&e.source&&(0,l.jsxs)(`span`,{className:`text-muted-foreground shrink-0`,children:[`[`,e.source,`]`]}),(0,l.jsx)(`span`,{className:`flex-1 break-all whitespace-pre-wrap`,children:e.message})]}),a&&f&&(0,l.jsxs)(`div`,{className:`px-3 pb-3 pl-10 space-y-2`,children:[e.metadata&&(0,l.jsx)(`div`,{className:`bg-muted/50 rounded p-2 font-mono text-xs`,children:(0,l.jsx)(`pre`,{className:`overflow-x-auto`,children:JSON.stringify(e.metadata,null,2)})}),e.stackTrace&&(0,l.jsx)(`div`,{className:`bg-red-500/5 border border-red-500/20 rounded p-2 font-mono text-xs text-red-400`,children:(0,l.jsx)(`pre`,{className:`overflow-x-auto whitespace-pre-wrap`,children:e.stackTrace})})]})]})}function f({logs:e,onLoadMore:f,onClear:p,onExport:m,isStreaming:h=!1,onToggleStreaming:g,maxLogs:_=1e3,showTimestamp:v=!0,showSource:y=!0,autoScroll:b=!0,className:x,title:S=`Logs`}){let[C,w]=s.useState(``),[T,E]=s.useState(`all`),[D,O]=s.useState(new Set),k=s.useRef(null),A=s.useMemo(()=>e.filter(e=>{if(T!==`all`&&e.level!==T)return!1;if(C){let t=C.toLowerCase();return e.message.toLowerCase().includes(t)||e.source?.toLowerCase().includes(t)||JSON.stringify(e.metadata??{}).toLowerCase().includes(t)}return!0}).slice(-_),[e,T,C,_]);s.useEffect(()=>{b&&k.current&&(k.current.scrollTop=k.current.scrollHeight)},[A,b]);let j=e=>{O(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},M=s.useMemo(()=>e.reduce((e,t)=>(e[t.level]=(e[t.level]||0)+1,e),{}),[e]);return(0,l.jsxs)(`div`,{className:t.cn(`flex flex-col h-full border rounded-lg bg-background`,x),children:[(0,l.jsxs)(`div`,{className:`flex items-center justify-between gap-4 p-3 border-b`,children:[(0,l.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,l.jsx)(`h3`,{className:`font-semibold`,children:S}),(0,l.jsx)(n.Badge,{variant:`secondary`,children:A.length}),h&&(0,l.jsx)(n.Badge,{variant:`default`,className:`bg-green-500 animate-pulse`,children:`Live`})]}),(0,l.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,l.jsx)(`div`,{className:`hidden md:flex items-center gap-1`,children:[`error`,`warn`,`info`,`debug`].map(e=>{let r=u[e],i=M[e]||0;return(0,l.jsxs)(n.Badge,{variant:`outline`,className:t.cn(`text-xs cursor-pointer`,r.color),onClick:()=>E(T===e?`all`:e),children:[e,`: `,i]},e)})})})]}),(0,l.jsxs)(`div`,{className:`flex items-center gap-2 p-2 border-b bg-muted/30`,children:[(0,l.jsxs)(`div`,{className:`relative flex-1 max-w-sm`,children:[(0,l.jsx)(c.Search,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,l.jsx)(i.Input,{placeholder:`Rechercher...`,value:C,onChange:e=>w(e.target.value),className:`pl-8 h-8`})]}),(0,l.jsxs)(a.Select,{value:T,onValueChange:e=>E(e),children:[(0,l.jsxs)(a.SelectTrigger,{className:`w-[120px] h-8`,children:[(0,l.jsx)(c.Filter,{className:`h-4 w-4 mr-2`}),(0,l.jsx)(a.SelectValue,{placeholder:`Niveau`})]}),(0,l.jsxs)(a.SelectContent,{children:[(0,l.jsx)(a.SelectItem,{value:`all`,children:`Tous`}),(0,l.jsx)(a.SelectItem,{value:`error`,children:`Error`}),(0,l.jsx)(a.SelectItem,{value:`warn`,children:`Warn`}),(0,l.jsx)(a.SelectItem,{value:`info`,children:`Info`}),(0,l.jsx)(a.SelectItem,{value:`debug`,children:`Debug`}),(0,l.jsx)(a.SelectItem,{value:`trace`,children:`Trace`})]})]}),(0,l.jsxs)(`div`,{className:`flex items-center gap-1`,children:[g&&(0,l.jsx)(r.Button,{variant:`ghost`,size:`sm`,onClick:g,className:`h-8`,children:h?(0,l.jsx)(c.Pause,{className:`h-4 w-4`}):(0,l.jsx)(c.Play,{className:`h-4 w-4`})}),f&&(0,l.jsx)(r.Button,{variant:`ghost`,size:`sm`,onClick:f,className:`h-8`,children:(0,l.jsx)(c.RefreshCw,{className:`h-4 w-4`})}),m&&(0,l.jsx)(r.Button,{variant:`ghost`,size:`sm`,onClick:()=>m(A),className:`h-8`,children:(0,l.jsx)(c.Download,{className:`h-4 w-4`})}),p&&(0,l.jsx)(r.Button,{variant:`ghost`,size:`sm`,onClick:p,className:`h-8 text-destructive`,children:(0,l.jsx)(c.Trash2,{className:`h-4 w-4`})})]})]}),(0,l.jsx)(o.ScrollArea,{ref:k,className:`flex-1`,children:(0,l.jsx)(`div`,{className:`min-w-max`,children:A.length===0?(0,l.jsx)(`div`,{className:`flex items-center justify-center h-32 text-muted-foreground`,children:`Aucun log à afficher`}):A.map(e=>(0,l.jsx)(d,{entry:e,showTimestamp:v,showSource:y,isExpanded:D.has(e.id),onToggleExpand:()=>j(e.id)},e.id))})})]})}var p=[{id:`1`,timestamp:new Date,level:`info`,message:`Application started successfully`,source:`main`},{id:`2`,timestamp:new Date,level:`debug`,message:`Loading configuration from /etc/app/config.yaml`,source:`config`,metadata:{path:`/etc/app/config.yaml`,format:`yaml`}},{id:`3`,timestamp:new Date,level:`warn`,message:`Deprecated API version detected, please upgrade to v2`,source:`api`},{id:`4`,timestamp:new Date,level:`error`,message:`Failed to connect to database`,source:`db`,metadata:{host:`localhost`,port:5432},stackTrace:`Error: Connection refused
|
|
2
2
|
at PostgresClient.connect (/app/node_modules/pg/lib/client.js:123:15)
|
|
3
3
|
at async DatabaseService.init (/app/src/services/database.ts:45:5)
|
|
4
4
|
at async bootstrap (/app/src/main.ts:12:3)`},{id:`5`,timestamp:new Date,level:`info`,message:`Retry connection attempt 1/3`,source:`db`}];exports.WakaLogViewer=f,exports.defaultLogs=p;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`lucide-react`),i=require(`react/jsx-runtime`);var a={common:{gradient:`from-slate-400 to-slate-600`,glow:`shadow-slate-400/50`,glowColor:`hsl(var(--muted-foreground))`,borderColor:`border-slate-400`,bgColor:`bg-slate-100 dark:bg-slate-900`,textColor:`text-slate-600 dark:text-slate-400`,particleColors:[`hsl(var(--muted-foreground))`,`hsl(var(--muted))`,`hsl(var(--border))`],label:`Common`,beamColor:`hsl(var(--muted-foreground) / 0.8)`},rare:{gradient:`from-blue-400 to-blue-600`,glow:`shadow-blue-400/50`,glowColor:`hsl(var(--info))`,borderColor:`border-blue-400`,bgColor:`bg-blue-100 dark:bg-blue-950`,textColor:`text-blue-600 dark:text-blue-400`,particleColors:[`hsl(var(--info))`,`hsl(var(--chart-1))`,`hsl(var(--primary))`],label:`Rare`,beamColor:`hsl(var(--info) / 0.8)`},epic:{gradient:`from-purple-400 to-purple-600`,glow:`shadow-purple-400/50`,glowColor:`hsl(var(--chart-2))`,borderColor:`border-purple-400`,bgColor:`bg-purple-100 dark:bg-purple-950`,textColor:`text-purple-600 dark:text-purple-400`,particleColors:[`hsl(var(--chart-2))`,`hsl(var(--chart-3))`,`hsl(var(--primary))`],label:`Epic`,beamColor:`hsl(var(--chart-2) / 0.8)`},legendary:{gradient:`from-amber-400 via-orange-500 to-red-500`,glow:`shadow-amber-400/50`,glowColor:`hsl(var(--warning))`,borderColor:`border-amber-400`,bgColor:`bg-amber-100 dark:bg-amber-950`,textColor:`text-amber-600 dark:text-amber-400`,particleColors:[`hsl(var(--warning))`,`hsl(var(--chart-4))`,`hsl(var(--destructive))`,`hsl(var(--chart-5))`],label:`Legendary`,beamColor:`hsl(var(--warning) / 0.9)`}};function o({active:e,colors:t,count:n=40,type:r=`burst`}){return e?r===`rising`?(0,i.jsx)(`div`,{className:`pointer-events-none absolute inset-0 overflow-hidden`,children:[...Array(n)].map((e,n)=>{let r=4+Math.random()*6,a=Math.random()*100,o=1.5+Math.random()*1;return(0,i.jsx)(`div`,{className:`absolute bottom-0 rounded-full animate-lootbox-rise`,style:{width:r,height:r,left:`${a}%`,backgroundColor:t[Math.floor(Math.random()*t.length)],animationDuration:`${o}s`,animationDelay:`${Math.random()*.5}s`}},n)})}):(0,i.jsx)(`div`,{className:`pointer-events-none absolute inset-0 overflow-hidden`,children:[...Array(n)].map((e,r)=>{let a=r/n*360,o=80+Math.random()*80,s=4+Math.random()*8,c=.8+Math.random()*.6;return(0,i.jsx)(`div`,{className:`absolute left-1/2 top-1/2 rounded-full animate-lootbox-particle`,style:{width:s,height:s,backgroundColor:t[Math.floor(Math.random()*t.length)],"--lootbox-angle":`${a}deg`,"--lootbox-distance":`${o}px`,animationDuration:`${c}s`,animationDelay:`${Math.random()*.2}s`}},r)})}):null}function s({active:e,colors:t,count:n=50}){return e?(0,i.jsx)(`div`,{className:`pointer-events-none fixed inset-0 z-50 overflow-hidden`,children:[...Array(n)].map((e,n)=>{let r=Math.random()*100,a=8+Math.random()*8,o=2+Math.random()*2,s=Math.random()*.5,c=Math.random()*720;return(0,i.jsx)(`div`,{className:`absolute -top-4 animate-lootbox-confetti`,style:{left:`${r}%`,width:a,height:a*.6,backgroundColor:t[Math.floor(Math.random()*t.length)],animationDuration:`${o}s`,animationDelay:`${s}s`,"--lootbox-rotation":`${c}deg`,"--lootbox-drift":`${(Math.random()-.5)*100}px`}},n)})}):null}function c({active:e,color:t}){return e?(0,i.jsxs)(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center overflow-visible`,children:[(0,i.jsx)(`div`,{className:`absolute h-[300%] w-2 animate-lootbox-beam`,style:{background:`linear-gradient(to top, transparent, ${t}, transparent)`,filter:`blur(8px)`}}),(0,i.jsx)(`div`,{className:`absolute h-[300%] w-1 animate-lootbox-beam`,style:{background:`linear-gradient(to top, transparent, white, transparent)`,animationDelay:`0.1s`}})]}):null}function l({variant:e,phase:n,highestRarity:o,size:s,onClick:c,disabled:l}){let u=a[o],d={sm:`w-24 h-24`,default:`w-32 h-32`,lg:`w-40 h-40`},f=n===`idle`&&!l,p=t.cn(`relative flex items-center justify-center rounded-xl transition-all duration-300`,d[s],f&&`cursor-pointer hover:scale-105 active:scale-95`,l&&`opacity-50 cursor-not-allowed`,n===`shaking`&&`animate-lootbox-shake`,n===`glowing`&&`animate-lootbox-glow`);return(0,i.jsxs)(`div`,{className:`relative`,children:[n===`glowing`&&(0,i.jsx)(`div`,{className:`absolute inset-0 rounded-xl blur-xl animate-pulse`,style:{background:u.glowColor,opacity:.5}}),(()=>{switch(e){case`chest`:return(0,i.jsxs)(`div`,{className:t.cn(p,`bg-gradient-to-br from-amber-700 via-amber-600 to-amber-800`,`border-4 border-amber-500 shadow-xl`),onClick:f?c:void 0,children:[(0,i.jsx)(`div`,{className:t.cn(`absolute -top-2 left-1/2 -translate-x-1/2 w-[110%] h-[40%] rounded-t-xl`,`bg-gradient-to-b from-amber-600 to-amber-700 border-4 border-amber-500`,`transition-transform duration-500 origin-bottom`,(n===`opening`||n===`revealing`||n===`complete`)&&`-rotate-x-110 -translate-y-8`),style:{transformStyle:`preserve-3d`,transform:n===`opening`||n===`revealing`||n===`complete`?`translateX(-50%) rotateX(-110deg) translateY(-2rem)`:`translateX(-50%)`},children:(0,i.jsx)(`div`,{className:`absolute bottom-0 left-1/2 -translate-x-1/2 translate-y-1/2 w-6 h-8 bg-amber-300 rounded border-2 border-amber-400`})}),(n===`opening`||n===`revealing`)&&(0,i.jsx)(`div`,{className:`absolute inset-0 rounded-xl animate-pulse`,style:{background:`radial-gradient(ellipse at center, ${u.glowColor}60 0%, transparent 70%)`}}),(0,i.jsx)(r.Gift,{className:`w-12 h-12 text-amber-200 opacity-50`})]});case`crate`:return(0,i.jsxs)(`div`,{className:t.cn(p,`bg-gradient-to-br from-gray-600 via-gray-500 to-gray-700`,`border-4 border-gray-400 shadow-xl`),onClick:f?c:void 0,children:[(0,i.jsx)(`div`,{className:`absolute inset-2 flex flex-col justify-between`,children:[...[,,,,]].map((e,t)=>(0,i.jsx)(`div`,{className:`h-1 bg-gray-800/30 rounded`},t))}),(0,i.jsx)(`div`,{className:`absolute top-2 left-0 right-0 h-2 bg-gray-400 border-y border-gray-500`}),(0,i.jsx)(`div`,{className:`absolute bottom-2 left-0 right-0 h-2 bg-gray-400 border-y border-gray-500`}),(n===`opening`||n===`revealing`)&&(0,i.jsx)(`div`,{className:`absolute inset-0 rounded-xl animate-pulse`,style:{background:`radial-gradient(ellipse at center, ${u.glowColor}60 0%, transparent 70%)`}}),(0,i.jsx)(r.Sparkles,{className:`w-10 h-10 text-gray-300 opacity-50`})]});case`gift`:return(0,i.jsxs)(`div`,{className:t.cn(p,`bg-gradient-to-br`,u.gradient,`border-4`,u.borderColor,`shadow-xl`),onClick:f?c:void 0,children:[(0,i.jsx)(`div`,{className:`absolute top-1/2 left-0 right-0 h-4 bg-white/30 -translate-y-1/2`}),(0,i.jsx)(`div`,{className:`absolute top-0 bottom-0 left-1/2 w-4 bg-white/30 -translate-x-1/2`}),(0,i.jsx)(`div`,{className:`absolute -top-3 left-1/2 -translate-x-1/2 w-8 h-4 bg-white/40 rounded-full`}),(n===`opening`||n===`revealing`)&&(0,i.jsx)(`div`,{className:`absolute inset-0 rounded-xl animate-pulse`,style:{background:`radial-gradient(ellipse at center, white 0%, transparent 70%)`}}),(0,i.jsx)(r.Gift,{className:`w-10 h-10 text-white/60`})]});case`orb`:return(0,i.jsxs)(`div`,{className:t.cn(p,`rounded-full bg-gradient-to-br`,u.gradient,`border-4`,u.borderColor,`shadow-2xl`),style:{boxShadow:n===`glowing`?`0 0 40px 10px ${u.glowColor}80, inset 0 0 30px ${u.glowColor}40`:void 0},onClick:f?c:void 0,children:[(0,i.jsx)(`div`,{className:`absolute inset-2 rounded-full bg-gradient-to-br from-white/30 to-transparent`}),(0,i.jsx)(`div`,{className:t.cn(`absolute inset-[30%] rounded-full`,`bg-gradient-to-br from-white/60 to-transparent`)}),(n===`opening`||n===`revealing`)&&(0,i.jsx)(`div`,{className:`absolute inset-0 rounded-full animate-pulse`,style:{background:`radial-gradient(ellipse at center, white 0%, transparent 60%)`}}),(0,i.jsx)(r.Gem,{className:`w-8 h-8 text-white/80`})]})}})()]})}function u({item:e,isRevealing:n,size:o}){let s=a[e.rarity];return(0,i.jsxs)(`div`,{className:t.cn(`relative flex flex-col items-center rounded-2xl border-2 bg-card text-card-foreground shadow-2xl`,`transition-all duration-500`,s.borderColor,{sm:`w-48 p-4`,default:`w-64 p-6`,lg:`w-80 p-8`}[o],n?`animate-lootbox-reveal`:`opacity-0 scale-50`),style:{boxShadow:`0 0 30px 5px ${s.glowColor}40`},children:[(0,i.jsx)(c,{active:n,color:s.beamColor}),(0,i.jsx)(`div`,{className:t.cn(`absolute -top-3 left-1/2 -translate-x-1/2 px-4 py-1 rounded-full text-xs font-bold uppercase tracking-wider`,s.bgColor,s.textColor),children:s.label}),(0,i.jsxs)(`div`,{className:t.cn(`relative flex items-center justify-center rounded-xl mb-4 mt-2`,`bg-gradient-to-br`,s.gradient,{sm:`w-16 h-16`,default:`w-24 h-24`,lg:`w-32 h-32`}[o]),children:[e.imageUrl?(0,i.jsx)(`img`,{src:e.imageUrl,alt:e.name,className:`w-full h-full object-contain rounded-xl`}):e.icon?(0,i.jsx)(`div`,{className:`text-white`,children:e.icon}):(0,i.jsx)(r.Star,{className:`w-1/2 h-1/2 text-white`}),(0,i.jsx)(`div`,{className:`absolute inset-0 rounded-xl overflow-hidden`,children:(0,i.jsx)(`div`,{className:`absolute inset-0 animate-lootbox-shine`})})]}),e.quantity&&e.quantity>1&&(0,i.jsxs)(`div`,{className:`absolute top-12 right-4 px-2 py-1 rounded-full bg-black/70 text-white text-sm font-bold`,children:[`x`,e.quantity]}),(0,i.jsx)(`h3`,{className:`text-lg font-bold text-center mb-1`,children:e.name}),e.description&&(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground text-center`,children:e.description})]})}function d({items:e=[],onRevealComplete:t}={}){let[r,i]=n.useState(e),[a,o]=n.useState(!1),[s,c]=n.useState(`idle`),[l,u]=n.useState(0),d=n.useCallback(()=>{r.length!==0&&(o(!0),c(`shaking`),setTimeout(()=>c(`glowing`),500),setTimeout(()=>c(`opening`),1200),setTimeout(()=>{c(`revealing`),u(0)},1800))},[r.length]),f=n.useCallback(()=>{o(!1),c(`idle`),u(0)},[]),p=n.useCallback(()=>{l<r.length-1?u(e=>e+1):(c(`complete`),t?.(r))},[l,r,t]),m=n.useCallback(()=>{l>0&&u(e=>e-1)},[l]),h=n.useCallback(()=>{c(`complete`),u(r.length-1),t?.(r)},[r,t]),g=n.useCallback(()=>{o(!1),c(`idle`),u(0)},[]);return n.useEffect(()=>{i(e)},[e]),{items:r,isOpen:a,phase:s,currentItemIndex:l,open:d,close:f,nextItem:p,prevItem:m,skipToEnd:h,setItems:i,reset:g}}function f({items:e,isOpen:c,onOpen:f,onRevealComplete:p,onClose:m,enableSound:h=!1,openSoundSrc:g,revealSoundSrc:_,variant:v=`chest`,size:y=`default`,className:b,disabled:x=!1,autoReveal:S=!1,autoRevealDelay:C=1500}){let w=d({items:e,onRevealComplete:p}),[T,E]=n.useState(!1),D=n.useRef(null),O=c!==void 0,k=O?c:w.isOpen,A=n.useMemo(()=>{let t=[`common`,`rare`,`epic`,`legendary`];return e.reduce((e,n)=>t.indexOf(n.rarity)>t.indexOf(e)?n.rarity:e,`common`)},[e]),j=e[w.currentItemIndex],M=j?a[j.rarity]:a.common;n.useEffect(()=>{O&&c&&w.phase===`idle`&&w.open()},[c,O,w]),n.useEffect(()=>{h&&(w.phase===`opening`&&g&&(D.current=new Audio(g),D.current.play().catch(()=>{})),w.phase===`revealing`&&_&&(D.current=new Audio(_),D.current.play().catch(()=>{})))},[w.phase,h,g,_]),n.useEffect(()=>{if(w.phase===`revealing`){E(!0);let e=setTimeout(()=>E(!1),3e3);return()=>clearTimeout(e)}},[w.phase]),n.useEffect(()=>{if(!S||w.phase!==`revealing`)return;let t=setTimeout(()=>{w.currentItemIndex<e.length-1?w.nextItem():w.skipToEnd()},C);return()=>clearTimeout(t)},[S,C,w,e.length]);let N=()=>{x||e.length===0||(w.open(),f?.())},P=()=>{w.close(),m?.()};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`style`,{children:`
|
|
1
|
+
"use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("lucide-react"),i=require("react/jsx-runtime");var a={common:{gradient:`from-slate-400 to-slate-600`,glow:`shadow-slate-400/50`,glowColor:`hsl(var(--muted-foreground))`,borderColor:`border-slate-400`,bgColor:`bg-slate-100 dark:bg-slate-900`,textColor:`text-slate-600 dark:text-slate-400`,particleColors:[`hsl(var(--muted-foreground))`,`hsl(var(--muted))`,`hsl(var(--border))`],label:`Common`,beamColor:`hsl(var(--muted-foreground) / 0.8)`},rare:{gradient:`from-blue-400 to-blue-600`,glow:`shadow-blue-400/50`,glowColor:`hsl(var(--info))`,borderColor:`border-blue-400`,bgColor:`bg-blue-100 dark:bg-blue-950`,textColor:`text-blue-600 dark:text-blue-400`,particleColors:[`hsl(var(--info))`,`hsl(var(--chart-1))`,`hsl(var(--primary))`],label:`Rare`,beamColor:`hsl(var(--info) / 0.8)`},epic:{gradient:`from-purple-400 to-purple-600`,glow:`shadow-purple-400/50`,glowColor:`hsl(var(--chart-2))`,borderColor:`border-purple-400`,bgColor:`bg-purple-100 dark:bg-purple-950`,textColor:`text-purple-600 dark:text-purple-400`,particleColors:[`hsl(var(--chart-2))`,`hsl(var(--chart-3))`,`hsl(var(--primary))`],label:`Epic`,beamColor:`hsl(var(--chart-2) / 0.8)`},legendary:{gradient:`from-amber-400 via-orange-500 to-red-500`,glow:`shadow-amber-400/50`,glowColor:`hsl(var(--warning))`,borderColor:`border-amber-400`,bgColor:`bg-amber-100 dark:bg-amber-950`,textColor:`text-amber-600 dark:text-amber-400`,particleColors:[`hsl(var(--warning))`,`hsl(var(--chart-4))`,`hsl(var(--destructive))`,`hsl(var(--chart-5))`],label:`Legendary`,beamColor:`hsl(var(--warning) / 0.9)`}};function o({active:e,colors:t,count:n=40,type:r=`burst`}){return e?r===`rising`?(0,i.jsx)(`div`,{className:`pointer-events-none absolute inset-0 overflow-hidden`,children:[...Array(n)].map((e,n)=>{let r=4+Math.random()*6,a=Math.random()*100,o=1.5+Math.random()*1;return(0,i.jsx)(`div`,{className:`absolute bottom-0 rounded-full animate-lootbox-rise`,style:{width:r,height:r,left:`${a}%`,backgroundColor:t[Math.floor(Math.random()*t.length)],animationDuration:`${o}s`,animationDelay:`${Math.random()*.5}s`}},n)})}):(0,i.jsx)(`div`,{className:`pointer-events-none absolute inset-0 overflow-hidden`,children:[...Array(n)].map((e,r)=>{let a=r/n*360,o=80+Math.random()*80,s=4+Math.random()*8,c=.8+Math.random()*.6;return(0,i.jsx)(`div`,{className:`absolute left-1/2 top-1/2 rounded-full animate-lootbox-particle`,style:{width:s,height:s,backgroundColor:t[Math.floor(Math.random()*t.length)],"--lootbox-angle":`${a}deg`,"--lootbox-distance":`${o}px`,animationDuration:`${c}s`,animationDelay:`${Math.random()*.2}s`}},r)})}):null}function s({active:e,colors:t,count:n=50}){return e?(0,i.jsx)(`div`,{className:`pointer-events-none fixed inset-0 z-50 overflow-hidden`,children:[...Array(n)].map((e,n)=>{let r=Math.random()*100,a=8+Math.random()*8,o=2+Math.random()*2,s=Math.random()*.5,c=Math.random()*720;return(0,i.jsx)(`div`,{className:`absolute -top-4 animate-lootbox-confetti`,style:{left:`${r}%`,width:a,height:a*.6,backgroundColor:t[Math.floor(Math.random()*t.length)],animationDuration:`${o}s`,animationDelay:`${s}s`,"--lootbox-rotation":`${c}deg`,"--lootbox-drift":`${(Math.random()-.5)*100}px`}},n)})}):null}function c({active:e,color:t}){return e?(0,i.jsxs)(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center overflow-visible`,children:[(0,i.jsx)(`div`,{className:`absolute h-[300%] w-2 animate-lootbox-beam`,style:{background:`linear-gradient(to top, transparent, ${t}, transparent)`,filter:`blur(8px)`}}),(0,i.jsx)(`div`,{className:`absolute h-[300%] w-1 animate-lootbox-beam`,style:{background:`linear-gradient(to top, transparent, white, transparent)`,animationDelay:`0.1s`}})]}):null}function l({variant:e,phase:n,highestRarity:o,size:s,onClick:c,disabled:l}){let u=a[o],d={sm:`w-24 h-24`,default:`w-32 h-32`,lg:`w-40 h-40`},f=n===`idle`&&!l,p=t.cn(`relative flex items-center justify-center rounded-xl transition-all duration-300`,d[s],f&&`cursor-pointer hover:scale-105 active:scale-95`,l&&`opacity-50 cursor-not-allowed`,n===`shaking`&&`animate-lootbox-shake`,n===`glowing`&&`animate-lootbox-glow`);return(0,i.jsxs)(`div`,{className:`relative`,children:[n===`glowing`&&(0,i.jsx)(`div`,{className:`absolute inset-0 rounded-xl blur-xl animate-pulse`,style:{background:u.glowColor,opacity:.5}}),(()=>{switch(e){case`chest`:return(0,i.jsxs)(`div`,{className:t.cn(p,`bg-gradient-to-br from-amber-700 via-amber-600 to-amber-800`,`border-4 border-amber-500 shadow-xl`),onClick:f?c:void 0,children:[(0,i.jsx)(`div`,{className:t.cn(`absolute -top-2 left-1/2 -translate-x-1/2 w-[110%] h-[40%] rounded-t-xl`,`bg-gradient-to-b from-amber-600 to-amber-700 border-4 border-amber-500`,`transition-transform duration-500 origin-bottom`,(n===`opening`||n===`revealing`||n===`complete`)&&`-rotate-x-110 -translate-y-8`),style:{transformStyle:`preserve-3d`,transform:n===`opening`||n===`revealing`||n===`complete`?`translateX(-50%) rotateX(-110deg) translateY(-2rem)`:`translateX(-50%)`},children:(0,i.jsx)(`div`,{className:`absolute bottom-0 left-1/2 -translate-x-1/2 translate-y-1/2 w-6 h-8 bg-amber-300 rounded border-2 border-amber-400`})}),(n===`opening`||n===`revealing`)&&(0,i.jsx)(`div`,{className:`absolute inset-0 rounded-xl animate-pulse`,style:{background:`radial-gradient(ellipse at center, ${u.glowColor}60 0%, transparent 70%)`}}),(0,i.jsx)(r.Gift,{className:`w-12 h-12 text-amber-200 opacity-50`})]});case`crate`:return(0,i.jsxs)(`div`,{className:t.cn(p,`bg-gradient-to-br from-gray-600 via-gray-500 to-gray-700`,`border-4 border-gray-400 shadow-xl`),onClick:f?c:void 0,children:[(0,i.jsx)(`div`,{className:`absolute inset-2 flex flex-col justify-between`,children:[...[,,,,]].map((e,t)=>(0,i.jsx)(`div`,{className:`h-1 bg-gray-800/30 rounded`},t))}),(0,i.jsx)(`div`,{className:`absolute top-2 left-0 right-0 h-2 bg-gray-400 border-y border-gray-500`}),(0,i.jsx)(`div`,{className:`absolute bottom-2 left-0 right-0 h-2 bg-gray-400 border-y border-gray-500`}),(n===`opening`||n===`revealing`)&&(0,i.jsx)(`div`,{className:`absolute inset-0 rounded-xl animate-pulse`,style:{background:`radial-gradient(ellipse at center, ${u.glowColor}60 0%, transparent 70%)`}}),(0,i.jsx)(r.Sparkles,{className:`w-10 h-10 text-gray-300 opacity-50`})]});case`gift`:return(0,i.jsxs)(`div`,{className:t.cn(p,`bg-gradient-to-br`,u.gradient,`border-4`,u.borderColor,`shadow-xl`),onClick:f?c:void 0,children:[(0,i.jsx)(`div`,{className:`absolute top-1/2 left-0 right-0 h-4 bg-white/30 -translate-y-1/2`}),(0,i.jsx)(`div`,{className:`absolute top-0 bottom-0 left-1/2 w-4 bg-white/30 -translate-x-1/2`}),(0,i.jsx)(`div`,{className:`absolute -top-3 left-1/2 -translate-x-1/2 w-8 h-4 bg-white/40 rounded-full`}),(n===`opening`||n===`revealing`)&&(0,i.jsx)(`div`,{className:`absolute inset-0 rounded-xl animate-pulse`,style:{background:`radial-gradient(ellipse at center, white 0%, transparent 70%)`}}),(0,i.jsx)(r.Gift,{className:`w-10 h-10 text-white/60`})]});case`orb`:return(0,i.jsxs)(`div`,{className:t.cn(p,`rounded-full bg-gradient-to-br`,u.gradient,`border-4`,u.borderColor,`shadow-2xl`),style:{boxShadow:n===`glowing`?`0 0 40px 10px ${u.glowColor}80, inset 0 0 30px ${u.glowColor}40`:void 0},onClick:f?c:void 0,children:[(0,i.jsx)(`div`,{className:`absolute inset-2 rounded-full bg-gradient-to-br from-white/30 to-transparent`}),(0,i.jsx)(`div`,{className:t.cn(`absolute inset-[30%] rounded-full`,`bg-gradient-to-br from-white/60 to-transparent`)}),(n===`opening`||n===`revealing`)&&(0,i.jsx)(`div`,{className:`absolute inset-0 rounded-full animate-pulse`,style:{background:`radial-gradient(ellipse at center, white 0%, transparent 60%)`}}),(0,i.jsx)(r.Gem,{className:`w-8 h-8 text-white/80`})]})}})()]})}function u({item:e,isRevealing:n,size:o}){let s=a[e.rarity];return(0,i.jsxs)(`div`,{className:t.cn(`relative flex flex-col items-center rounded-2xl border-2 bg-card text-card-foreground shadow-2xl`,`transition-all duration-500`,s.borderColor,{sm:`w-48 p-4`,default:`w-64 p-6`,lg:`w-80 p-8`}[o],n?`animate-lootbox-reveal`:`opacity-0 scale-50`),style:{boxShadow:`0 0 30px 5px ${s.glowColor}40`},children:[(0,i.jsx)(c,{active:n,color:s.beamColor}),(0,i.jsx)(`div`,{className:t.cn(`absolute -top-3 left-1/2 -translate-x-1/2 px-4 py-1 rounded-full text-xs font-bold uppercase tracking-wider`,s.bgColor,s.textColor),children:s.label}),(0,i.jsxs)(`div`,{className:t.cn(`relative flex items-center justify-center rounded-xl mb-4 mt-2`,`bg-gradient-to-br`,s.gradient,{sm:`w-16 h-16`,default:`w-24 h-24`,lg:`w-32 h-32`}[o]),children:[e.imageUrl?(0,i.jsx)(`img`,{src:e.imageUrl,alt:e.name,className:`w-full h-full object-contain rounded-xl`}):e.icon?(0,i.jsx)(`div`,{className:`text-white`,children:e.icon}):(0,i.jsx)(r.Star,{className:`w-1/2 h-1/2 text-white`}),(0,i.jsx)(`div`,{className:`absolute inset-0 rounded-xl overflow-hidden`,children:(0,i.jsx)(`div`,{className:`absolute inset-0 animate-lootbox-shine`})})]}),e.quantity&&e.quantity>1&&(0,i.jsxs)(`div`,{className:`absolute top-12 right-4 px-2 py-1 rounded-full bg-black/70 text-white text-sm font-bold`,children:[`x`,e.quantity]}),(0,i.jsx)(`h3`,{className:`text-lg font-bold text-center mb-1`,children:e.name}),e.description&&(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground text-center`,children:e.description})]})}function d({items:e=[],onRevealComplete:t}={}){let[r,i]=n.useState(e),[a,o]=n.useState(!1),[s,c]=n.useState(`idle`),[l,u]=n.useState(0),d=n.useCallback(()=>{r.length!==0&&(o(!0),c(`shaking`),setTimeout(()=>c(`glowing`),500),setTimeout(()=>c(`opening`),1200),setTimeout(()=>{c(`revealing`),u(0)},1800))},[r.length]),f=n.useCallback(()=>{o(!1),c(`idle`),u(0)},[]),p=n.useCallback(()=>{l<r.length-1?u(e=>e+1):(c(`complete`),t?.(r))},[l,r,t]),m=n.useCallback(()=>{l>0&&u(e=>e-1)},[l]),h=n.useCallback(()=>{c(`complete`),u(r.length-1),t?.(r)},[r,t]),g=n.useCallback(()=>{o(!1),c(`idle`),u(0)},[]);return n.useEffect(()=>{i(e)},[e]),{items:r,isOpen:a,phase:s,currentItemIndex:l,open:d,close:f,nextItem:p,prevItem:m,skipToEnd:h,setItems:i,reset:g}}function f({items:e,isOpen:c,onOpen:f,onRevealComplete:p,onClose:m,enableSound:h=!1,openSoundSrc:g,revealSoundSrc:_,variant:v=`chest`,size:y=`default`,className:b,disabled:x=!1,autoReveal:S=!1,autoRevealDelay:C=1500}){let w=d({items:e,onRevealComplete:p}),[T,E]=n.useState(!1),D=n.useRef(null),O=c!==void 0,k=O?c:w.isOpen,A=n.useMemo(()=>{let t=[`common`,`rare`,`epic`,`legendary`];return e.reduce((e,n)=>t.indexOf(n.rarity)>t.indexOf(e)?n.rarity:e,`common`)},[e]),j=e[w.currentItemIndex],M=j?a[j.rarity]:a.common;n.useEffect(()=>{O&&c&&w.phase===`idle`&&w.open()},[c,O,w]),n.useEffect(()=>{h&&(w.phase===`opening`&&g&&(D.current=new Audio(g),D.current.play().catch(()=>{})),w.phase===`revealing`&&_&&(D.current=new Audio(_),D.current.play().catch(()=>{})))},[w.phase,h,g,_]),n.useEffect(()=>{if(w.phase===`revealing`){E(!0);let e=setTimeout(()=>E(!1),3e3);return()=>clearTimeout(e)}},[w.phase]),n.useEffect(()=>{if(!S||w.phase!==`revealing`)return;let t=setTimeout(()=>{w.currentItemIndex<e.length-1?w.nextItem():w.skipToEnd()},C);return()=>clearTimeout(t)},[S,C,w,e.length]);let N=()=>{x||e.length===0||(w.open(),f?.())},P=()=>{w.close(),m?.()};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`style`,{children:`
|
|
2
2
|
@keyframes lootbox-shake {
|
|
3
3
|
0%, 100% { transform: translateX(0) rotate(0deg); }
|
|
4
4
|
10% { transform: translateX(-5px) rotate(-2deg); }
|
|
@@ -134,4 +134,4 @@
|
|
|
134
134
|
.animate-lootbox-slideUp {
|
|
135
135
|
animation: lootbox-slideUp 0.5s ease-out backwards;
|
|
136
136
|
}
|
|
137
|
-
`}),(0,i.jsx)(s,{active:T,colors:M.particleColors,count:60}),(0,i.jsxs)(`div`,{className:t.cn(`relative inline-flex flex-col items-center gap-4`,b),children:[!k&&(0,i.jsxs)(`div`,{className:`flex flex-col items-center gap-4`,children:[(0,i.jsx)(l,{variant:v,phase:w.phase,highestRarity:A,size:y,onClick:N,disabled:x}),(0,i.jsx)(`button`,{type:`button`,onClick:N,disabled:x||e.length===0,className:t.cn(`px-6 py-2 rounded-full font-semibold text-white`,`bg-gradient-to-r from-amber-500 to-orange-500`,`hover:from-amber-400 hover:to-orange-400`,`active:scale-95 transition-all duration-200`,`shadow-lg hover:shadow-xl`,`disabled:opacity-50 disabled:cursor-not-allowed`),children:(0,i.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(r.Sparkles,{className:`w-4 h-4`}),`Open Loot Box`]})}),(0,i.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[e.length,` `,e.length===1?`item`:`items`,` inside`]})]}),k&&(w.phase===`shaking`||w.phase===`glowing`||w.phase===`opening`)&&(0,i.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/70 backdrop-blur-sm animate-lootbox-fadeIn`,children:(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsx)(l,{variant:v,phase:w.phase,highestRarity:A,size:`lg`}),(0,i.jsx)(o,{active:w.phase===`opening`,colors:a[A].particleColors,type:`burst`})]})}),k&&(w.phase===`revealing`||w.phase===`complete`)&&j&&(0,i.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm animate-lootbox-fadeIn`,children:[(0,i.jsx)(`button`,{type:`button`,onClick:P,className:`absolute top-4 right-4 p-2 rounded-full bg-white/10 hover:bg-white/20 text-white transition-colors`,children:(0,i.jsx)(r.X,{className:`w-6 h-6`})}),(0,i.jsxs)(`div`,{className:`flex flex-col items-center gap-6`,children:[(0,i.jsx)(`div`,{className:`fixed inset-0 pointer-events-none`,children:(0,i.jsx)(o,{active:!0,colors:M.particleColors,type:`rising`,count:30})}),(0,i.jsx)(u,{item:j,isRevealing:w.phase===`revealing`||w.phase===`complete`,size:y}),e.length>1&&!S&&(0,i.jsxs)(`div`,{className:`flex items-center gap-4 animate-lootbox-slideUp`,style:{animationDelay:`0.3s`},children:[(0,i.jsx)(`button`,{type:`button`,onClick:w.prevItem,disabled:w.currentItemIndex===0,className:t.cn(`p-2 rounded-full bg-white/10 hover:bg-white/20 text-white transition-all`,`disabled:opacity-30 disabled:cursor-not-allowed`),children:(0,i.jsx)(r.ChevronLeft,{className:`w-6 h-6`})}),(0,i.jsx)(`div`,{className:`flex items-center gap-2`,children:e.map((e,n)=>(0,i.jsx)(`div`,{className:t.cn(`w-2 h-2 rounded-full transition-all duration-300`,n===w.currentItemIndex?`bg-white scale-125`:n<w.currentItemIndex?`bg-white/60`:`bg-white/30`)},n))}),(0,i.jsx)(`button`,{type:`button`,onClick:w.nextItem,className:t.cn(`p-2 rounded-full bg-white/10 hover:bg-white/20 text-white transition-all`),children:(0,i.jsx)(r.ChevronRight,{className:`w-6 h-6`})})]}),(0,i.jsxs)(`div`,{className:`text-white/60 text-sm animate-lootbox-slideUp`,style:{animationDelay:`0.4s`},children:[w.currentItemIndex+1,` of `,e.length]}),e.length>1&&w.phase!==`complete`&&!S&&(0,i.jsx)(`button`,{type:`button`,onClick:w.skipToEnd,className:`text-white/60 text-sm hover:text-white transition-colors underline animate-lootbox-slideUp`,style:{animationDelay:`0.5s`},children:`Skip to end`}),w.phase===`complete`&&(0,i.jsx)(`button`,{type:`button`,onClick:P,className:t.cn(`px-8 py-3 rounded-full font-bold text-white`,`bg-gradient-to-r from-green-500 to-emerald-500`,`hover:from-green-400 hover:to-emerald-400`,`active:scale-95 transition-all duration-200`,`shadow-lg hover:shadow-xl`,`animate-lootbox-slideUp`),style:{animationDelay:`0.3s`},children:(0,i.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(r.Zap,{className:`w-5 h-5`}),`Claim Rewards`]})})]})]})]})]})}f.displayName=`WakaLootBox`,exports.default=f,exports.useLootBox=d;
|
|
137
|
+
`}),(0,i.jsx)(s,{active:T,colors:M.particleColors,count:60}),(0,i.jsxs)(`div`,{className:t.cn(`relative inline-flex flex-col items-center gap-4`,b),children:[!k&&(0,i.jsxs)(`div`,{className:`flex flex-col items-center gap-4`,children:[(0,i.jsx)(l,{variant:v,phase:w.phase,highestRarity:A,size:y,onClick:N,disabled:x}),(0,i.jsx)(`button`,{type:`button`,onClick:N,disabled:x||e.length===0,className:t.cn(`px-6 py-2 rounded-full font-semibold text-white`,`bg-gradient-to-r from-amber-500 to-orange-500`,`hover:from-amber-400 hover:to-orange-400`,`active:scale-95 transition-all duration-200`,`shadow-lg hover:shadow-xl`,`disabled:opacity-50 disabled:cursor-not-allowed`),children:(0,i.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(r.Sparkles,{className:`w-4 h-4`}),`Open Loot Box`]})}),(0,i.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[e.length,` `,e.length===1?`item`:`items`,` inside`]})]}),k&&(w.phase===`shaking`||w.phase===`glowing`||w.phase===`opening`)&&(0,i.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/70 backdrop-blur-sm animate-lootbox-fadeIn`,children:(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsx)(l,{variant:v,phase:w.phase,highestRarity:A,size:`lg`}),(0,i.jsx)(o,{active:w.phase===`opening`,colors:a[A].particleColors,type:`burst`})]})}),k&&(w.phase===`revealing`||w.phase===`complete`)&&j&&(0,i.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm animate-lootbox-fadeIn`,children:[(0,i.jsx)(`button`,{type:`button`,onClick:P,className:`absolute top-4 right-4 p-2 rounded-full bg-white/10 hover:bg-white/20 text-white transition-colors`,children:(0,i.jsx)(r.X,{className:`w-6 h-6`})}),(0,i.jsxs)(`div`,{className:`flex flex-col items-center gap-6`,children:[(0,i.jsx)(`div`,{className:`fixed inset-0 pointer-events-none`,children:(0,i.jsx)(o,{active:!0,colors:M.particleColors,type:`rising`,count:30})}),(0,i.jsx)(u,{item:j,isRevealing:w.phase===`revealing`||w.phase===`complete`,size:y}),e.length>1&&!S&&(0,i.jsxs)(`div`,{className:`flex items-center gap-4 animate-lootbox-slideUp`,style:{animationDelay:`0.3s`},children:[(0,i.jsx)(`button`,{type:`button`,onClick:w.prevItem,disabled:w.currentItemIndex===0,className:t.cn(`p-2 rounded-full bg-white/10 hover:bg-white/20 text-white transition-all`,`disabled:opacity-30 disabled:cursor-not-allowed`),children:(0,i.jsx)(r.ChevronLeft,{className:`w-6 h-6`})}),(0,i.jsx)(`div`,{className:`flex items-center gap-2`,children:e.map((e,n)=>(0,i.jsx)(`div`,{className:t.cn(`w-2 h-2 rounded-full transition-all duration-300`,n===w.currentItemIndex?`bg-white scale-125`:n<w.currentItemIndex?`bg-white/60`:`bg-white/30`)},n))}),(0,i.jsx)(`button`,{type:`button`,onClick:w.nextItem,className:t.cn(`p-2 rounded-full bg-white/10 hover:bg-white/20 text-white transition-all`),children:(0,i.jsx)(r.ChevronRight,{className:`w-6 h-6`})})]}),(0,i.jsxs)(`div`,{className:`text-white/60 text-sm animate-lootbox-slideUp`,style:{animationDelay:`0.4s`},children:[w.currentItemIndex+1,` of `,e.length]}),e.length>1&&w.phase!==`complete`&&!S&&(0,i.jsx)(`button`,{type:`button`,onClick:w.skipToEnd,className:`text-white/60 text-sm hover:text-white transition-colors underline animate-lootbox-slideUp`,style:{animationDelay:`0.5s`},children:`Skip to end`}),w.phase===`complete`&&(0,i.jsx)(`button`,{type:`button`,onClick:P,className:t.cn(`px-8 py-3 rounded-full font-bold text-white`,`bg-gradient-to-r from-green-500 to-emerald-500`,`hover:from-green-400 hover:to-emerald-400`,`active:scale-95 transition-all duration-200`,`shadow-lg hover:shadow-xl`,`animate-lootbox-slideUp`),style:{animationDelay:`0.3s`},children:(0,i.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(r.Zap,{className:`w-5 h-5`}),`Claim Rewards`]})})]})]})]})]})}f.displayName=`WakaLootBox`,exports.WakaLootBox=f,exports.default=f,exports.useLootBox=d;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use client";const e=require(
|
|
1
|
+
"use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("lucide-react"),i=require("react/jsx-runtime");function a({onSubmit:e,placeholder:a=`Enter your email`,buttonText:o={idle:`Send Magic Link`,loading:`Sending...`,sent:`Check your inbox`},successMessage:s=`We've sent a magic link to your email`,errorMessage:c=`Something went wrong. Please try again.`,countdownDuration:l=60,onResend:u,className:d,size:f=`default`,variant:p=`default`}){let[m,h]=n.useState(``),[g,_]=n.useState(`idle`),[v,y]=n.useState(0),[b,x]=n.useState(``),S=n.useRef(null);n.useEffect(()=>{if(v<=0)return;let e=setInterval(()=>{y(e=>e-1)},1e3);return()=>clearInterval(e)},[v]);let C=async t=>{if(t.preventDefault(),!(!m||g===`loading`)){_(`loading`);try{await e(m),x(m),_(`sent`),y(l)}catch{_(`error`),setTimeout(()=>_(`idle`),3e3)}}},w=async()=>{if(!(v>0||!u)){_(`loading`);try{await u(),_(`sent`),y(l)}catch{_(`error`),setTimeout(()=>_(`idle`),3e3)}}},T=()=>{_(`idle`),h(``),x(``),y(0),S.current?.focus()},E={sm:`h-10 text-sm`,default:`h-12 text-base`,lg:`h-14 text-lg`};return g===`sent`?(0,i.jsxs)(`div`,{className:t.cn(`w-full`,d),children:[(0,i.jsxs)(`div`,{className:`relative overflow-hidden rounded-2xl border bg-gradient-to-br from-green-500/10 via-emerald-500/10 to-teal-500/10 p-6`,children:[(0,i.jsx)(`div`,{className:`absolute inset-0 overflow-hidden`,children:[...[,,,,,,]].map((e,t)=>(0,i.jsx)(`div`,{className:`absolute animate-float`,style:{left:`${15+t*15}%`,top:`${20+t%3*20}%`,animationDelay:`${t*.2}s`,animationDuration:`${2+t*.3}s`},children:(0,i.jsx)(r.Sparkles,{className:`h-4 w-4 text-green-500/40`})},t))}),(0,i.jsxs)(`div`,{className:`relative text-center`,children:[(0,i.jsxs)(`div`,{className:`mx-auto mb-4 flex h-16 w-16 items-center justify-center`,children:[(0,i.jsx)(`div`,{className:`absolute h-16 w-16 animate-ping rounded-full bg-green-500/20`}),(0,i.jsx)(`div`,{className:`relative flex h-14 w-14 items-center justify-center rounded-full bg-gradient-to-br from-green-500 to-emerald-600 shadow-lg shadow-green-500/30`,children:(0,i.jsx)(r.Check,{className:`h-7 w-7 text-white animate-in zoom-in-50`})})]}),(0,i.jsx)(`h3`,{className:`text-lg font-semibold text-foreground`,children:o.sent}),(0,i.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:s}),(0,i.jsxs)(`div`,{className:`mt-4 inline-flex items-center gap-2 rounded-full bg-background/80 px-4 py-2 text-sm`,children:[(0,i.jsx)(r.Mail,{className:`h-4 w-4 text-muted-foreground`}),(0,i.jsx)(`span`,{className:`font-medium`,children:b})]}),(0,i.jsxs)(`div`,{className:`mt-6 flex items-center justify-center gap-4 text-sm`,children:[v>0?(0,i.jsxs)(`span`,{className:`text-muted-foreground`,children:[`Resend in `,(0,i.jsxs)(`span`,{className:`font-mono font-medium text-foreground`,children:[v,`s`]})]}):u?(0,i.jsx)(`button`,{onClick:w,className:`font-medium text-primary hover:underline`,children:`Resend email`}):null,(0,i.jsx)(`span`,{className:`text-muted-foreground`,children:`•`}),(0,i.jsx)(`button`,{onClick:T,className:`text-muted-foreground hover:text-foreground`,children:`Use different email`})]})]})]}),(0,i.jsx)(`style`,{children:`
|
|
2
2
|
@keyframes float {
|
|
3
3
|
0%, 100% { transform: translateY(0) rotate(0deg); opacity: 0.4; }
|
|
4
4
|
50% { transform: translateY(-10px) rotate(10deg); opacity: 0.8; }
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
.animate-float {
|
|
7
7
|
animation: float 3s ease-in-out infinite;
|
|
8
8
|
}
|
|
9
|
-
`})]}):(0,i.jsxs)(`form`,{onSubmit:C,className:t.cn(`w-full`,d),children:[(0,i.jsxs)(`div`,{className:t.cn(`relative flex items-center overflow-hidden rounded-full border transition-all duration-300`,E[f],p===`gradient`&&`bg-gradient-to-r from-primary/5 via-purple-500/5 to-pink-500/5`,p===`minimal`&&`border-transparent bg-muted`,g===`error`&&`border-destructive bg-destructive/5`,g===`idle`&&`focus-within:border-primary focus-within:ring-2 focus-within:ring-primary/20`),children:[(0,i.jsx)(`span`,{className:t.cn(`flex shrink-0 items-center justify-center text-muted-foreground`,{sm:`px-3`,default:`px-4`,lg:`px-5`}[f]),children:(0,i.jsx)(r.Mail,{className:t.cn(`transition-all duration-300`,f===`sm`&&`h-4 w-4`,f
|
|
9
|
+
`})]}):(0,i.jsxs)(`form`,{onSubmit:C,className:t.cn(`w-full`,d),children:[(0,i.jsxs)(`div`,{className:t.cn(`relative flex items-center overflow-hidden rounded-full border transition-all duration-300`,E[f],p===`gradient`&&`bg-gradient-to-r from-primary/5 via-purple-500/5 to-pink-500/5`,p===`minimal`&&`border-transparent bg-muted`,g===`error`&&`border-destructive bg-destructive/5`,g===`idle`&&`focus-within:border-primary focus-within:ring-2 focus-within:ring-primary/20`),children:[(0,i.jsx)(`span`,{className:t.cn(`flex shrink-0 items-center justify-center text-muted-foreground`,{sm:`px-3`,default:`px-4`,lg:`px-5`}[f]),children:(0,i.jsx)(r.Mail,{className:t.cn(`transition-all duration-300`,f===`sm`&&`h-4 w-4`,f==="default"&&`h-5 w-5`,f===`lg`&&`h-6 w-6`,g===`loading`&&`animate-bounce`)})}),(0,i.jsx)(`input`,{ref:S,type:`email`,value:m,onChange:e=>h(e.target.value),placeholder:a,disabled:g===`loading`,className:`flex-1 bg-transparent outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed`}),(0,i.jsx)(`button`,{type:`submit`,disabled:!m||g===`loading`,className:t.cn(`flex shrink-0 items-center gap-2 rounded-full font-medium transition-all`,{sm:`px-4 text-sm`,default:`px-6`,lg:`px-8 text-lg`}[f],E[f],g===`loading`?`bg-muted text-muted-foreground cursor-wait`:g===`error`?`bg-destructive text-destructive-foreground`:`bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50 disabled:cursor-not-allowed`),children:g===`loading`?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.Loader2,{className:`h-4 w-4 animate-spin`}),(0,i.jsx)(`span`,{className:`hidden sm:inline`,children:o.loading})]}):g===`error`?(0,i.jsx)(`span`,{children:c}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`span`,{className:`hidden sm:inline`,children:o.idle}),(0,i.jsx)(r.Sparkles,{className:`h-4 w-4 sm:hidden`}),(0,i.jsx)(r.ArrowRight,{className:`h-4 w-4 hidden sm:block`})]})})]}),(0,i.jsx)(`p`,{className:`mt-3 text-center text-xs text-muted-foreground`,children:`We'll send you a magic link for password-free sign in`})]})}function o(){let[e,t]=n.useState(`idle`),[r,i]=n.useState(``);return{state:e,email:r,sendMagicLink:async(e,n)=>{i(e),t(`loading`);try{await n(e),t(`sent`)}catch(e){throw t(`error`),e}},reset:()=>{t(`idle`),i(``)}}}exports.WakaMagicLink=a,exports.useMagicLink=o;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";"use client";const e=require(
|
|
1
|
+
"use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("class-variance-authority"),i=require("react/jsx-runtime");var a=(0,r.cva)(`relative inline-flex items-center justify-center gap-2 overflow-hidden whitespace-nowrap font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50`,{variants:{variant:{default:`bg-primary text-primary-foreground shadow-md hover:bg-primary/90`,secondary:`bg-secondary text-secondary-foreground shadow hover:bg-secondary/80`,destructive:`bg-destructive text-destructive-foreground shadow-md hover:bg-destructive/90`,outline:`border-2 border-input bg-background hover:bg-accent hover:text-accent-foreground`,ghost:`hover:bg-accent hover:text-accent-foreground`,gradient:`bg-gradient-to-r from-primary to-primary/70 text-primary-foreground shadow-lg`},size:{sm:`h-9 px-4 text-sm`,default:`h-11 px-6 text-base`,lg:`h-14 px-8 text-lg`,xl:`h-16 px-10 text-xl`,icon:`h-11 w-11`,"icon-sm":`h-9 w-9`,"icon-lg":`h-14 w-14`},rounded:{default:`rounded-xl`,sm:`rounded-lg`,lg:`rounded-2xl`,full:`rounded-full`}},defaultVariants:{variant:`default`,size:`default`,rounded:`default`}});function o(e,t,n){return e+(t-e)*n}function s(e,t,n){return Math.min(Math.max(e,t),n)}function c(e,t,n,r){return Math.sqrt((n-e)**2+(r-t)**2)}function l({x:e,y:t,size:r,color:a,duration:o,onComplete:s}){return n.useEffect(()=>{let e=setTimeout(s,o);return()=>clearTimeout(e)},[o,s]),(0,i.jsx)(`span`,{className:`absolute rounded-full pointer-events-none animate-magnetic-ripple`,style:{left:e-r/2,top:t-r/2,width:r,height:r,backgroundColor:a,animationDuration:`${o}ms`}})}function u({className:e}){return(0,i.jsxs)(`svg`,{className:t.cn(`animate-spin`,e),width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,children:[(0,i.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`3`}),(0,i.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z`})]})}function d(e,t){let{enabled:r,radius:i,strength:a,duration:l}=t,[u,d]=n.useState({x:0,y:0}),[f,p]=n.useState({x:0,y:0}),m=n.useRef(void 0),h=n.useRef({x:0,y:0}),g=n.useRef({x:0,y:0}),_=n.useRef(!1);return n.useEffect(()=>{if(!r)return;let t=e.current;if(!t)return;let n=()=>{let e=1-Math.exp(16/l*-5);g.current.x=o(g.current.x,h.current.x,e),g.current.y=o(g.current.y,h.current.y,e),d({x:g.current.x,y:g.current.y}),p({x:g.current.x*.3,y:g.current.y*.3}),(Math.abs(h.current.x-g.current.x)>.01||Math.abs(h.current.y-g.current.y)>.01||_.current)&&(m.current=requestAnimationFrame(n))},u=e=>{let r=t.getBoundingClientRect(),o=r.left+r.width/2,l=r.top+r.height/2,u=c(e.clientX,e.clientY,o,l);if(u<i){_.current=!0;let t=(1-u/i)*a,r=(e.clientX-o)*t,c=(e.clientY-l)*t;h.current={x:s(r,-i*.5,i*.5),y:s(c,-i*.5,i*.5)},m.current||=requestAnimationFrame(n)}else _.current=!1,h.current={x:0,y:0},m.current||=requestAnimationFrame(n)},f=()=>{_.current=!1,h.current={x:0,y:0},m.current||=requestAnimationFrame(n)};return document.addEventListener(`mousemove`,u),t.addEventListener(`mouseleave`,f),()=>{document.removeEventListener(`mousemove`,u),t.removeEventListener(`mouseleave`,f),m.current&&cancelAnimationFrame(m.current)}},[r,i,a,l,e]),{transform:u,contentTransform:f}}var f=n.forwardRef(({className:e,variant:r,size:o,rounded:s,children:c,magneticEnabled:f=!0,attractionRadius:p=150,attractionStrength:m=.4,followDuration:h=300,rippleEnabled:g=!0,rippleColor:_=`rgba(255, 255, 255, 0.35)`,rippleDuration:v=600,moveContent:y=!0,contentMoveStrength:b=.3,leftIcon:x,rightIcon:S,loading:C=!1,disabled:w,onClick:T,...E},D)=>{let O=n.useRef(null),[k,A]=n.useState([]),j=n.useRef(0);n.useImperativeHandle(D,()=>O.current);let{transform:M,contentTransform:N}=d(O,{enabled:f&&!w&&!C,radius:p,strength:m,duration:h}),P=n.useCallback(e=>{if(!(w||C)){if(g&&O.current){let t=O.current.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top,i=Math.max(t.width,t.height)*2.5,a=j.current++;A(e=>[...e,{id:a,x:n,y:r,size:i}])}T?.(e)}},[w,C,g,T]),F=n.useCallback(e=>{A(t=>t.filter(t=>t.id!==e))},[]);return(0,i.jsxs)(`button`,{ref:O,className:t.cn(a({variant:r,size:o,rounded:s,className:e})),style:{transform:`translate(${M.x}px, ${M.y}px)`,transition:`box-shadow 0.2s ease-out`},disabled:w||C,onClick:P,...E,children:[k.map(({id:e,x:t,y:n,size:r})=>(0,i.jsx)(l,{x:t,y:n,size:r,color:_,duration:v,onComplete:()=>F(e)},e)),(0,i.jsxs)(`span`,{className:`relative z-10 flex items-center gap-2`,style:{transform:y?`translate(${N.x*b}px, ${N.y*b}px)`:void 0},children:[C?(0,i.jsx)(u,{}):x?(0,i.jsx)(`span`,{className:`flex-shrink-0`,children:x}):null,(0,i.jsx)(`span`,{className:t.cn(C&&`opacity-0`),children:c}),!C&&S&&(0,i.jsx)(`span`,{className:`flex-shrink-0`,children:S})]})]})});if(f.displayName=`WakaMagneticButton`,typeof document<`u`){let e=`waka-magnetic-button-styles`;if(!document.getElementById(e)){let t=document.createElement(`style`);t.id=e,t.textContent=`
|
|
2
2
|
@keyframes magnetic-ripple {
|
|
3
3
|
0% {
|
|
4
4
|
transform: scale(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`lucide-react`),i=require(`react/jsx-runtime`);var a=[{trigger:`@`,type:`user`,icon:(0,i.jsx)(r.User,{className:`h-4 w-4`}),data:[]},{trigger:`#`,type:`channel`,icon:(0,i.jsx)(r.Hash,{className:`h-4 w-4`}),data:[]}];function o(e={}){let{initialValue:t=``,triggers:r=a,maxMentions:i,searchDebounce:o=300}=e,[c,l]=n.useState(t),[u,d]=n.useState([]),f=n.useMemo(()=>{let e=c;for(let t of u){let n=RegExp(`${s(t.trigger)}\\[${s(t.display)}\\]\\(${s(t.id)}\\)`,`g`);e=e.replace(n,`${t.trigger}${t.display}`)}return e},[c,u]);return{value:c,plainText:f,mentions:u,setValue:n.useCallback(e=>{l(e);let t=[];for(let n of r){let r=RegExp(`${s(n.trigger)}\\[([^\\]]+)\\]\\(([^)]+)\\)`,`g`),i;for(;(i=r.exec(e))!==null;)t.push({id:i[2],type:n.type,display:i[1],value:i[1],trigger:n.trigger,startIndex:i.index,endIndex:i.index+i[0].length})}d(t)},[r]),insertMention:n.useCallback((e,t)=>{if(i&&u.length>=i)return;let n={id:e.id,type:e.type,display:e.display,value:e.value,trigger:t,startIndex:0,endIndex:0};d(e=>[...e,n])},[i,u.length]),removeMention:n.useCallback(e=>{d(t=>t.filter(t=>t.id!==e))},[]),clear:n.useCallback(()=>{l(``),d([])},[]),mentionCount:u.length,characterCount:f.length}}function s(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function c(e,t){let n=document.createElement(`div`),r=getComputedStyle(e);for(let e of Array.from(r))n.style.setProperty(e,r.getPropertyValue(e));n.style.position=`absolute`,n.style.visibility=`hidden`,n.style.whiteSpace=`pre-wrap`,n.style.wordWrap=`break-word`,n.style.overflow=`hidden`,n.style.width=`${e.offsetWidth}px`,n.style.height=`auto`,n.textContent=e.value.substring(0,t);let i=document.createElement(`span`);i.textContent=e.value.substring(t)||`.`,n.appendChild(i),document.body.appendChild(n);let a=e.getBoundingClientRect(),o=i.getBoundingClientRect(),s={top:o.top-a.top+e.scrollTop,left:o.left-a.left+e.scrollLeft};return document.body.removeChild(n),s}function l({items:e,highlightedIndex:a,onSelect:o,onHighlight:s,trigger:c,loading:l,position:u,visible:d}){let f=n.useRef(null);return n.useEffect(()=>{if(f.current&&a>=0){let e=f.current.children[a];e&&e.scrollIntoView({block:`nearest`})}},[a]),d?(0,i.jsx)(`div`,{className:t.cn(`absolute z-50 min-w-[200px] max-w-[300px] max-h-[240px] overflow-y-auto`,`bg-popover border rounded-lg shadow-lg`,`animate-in fade-in-0 zoom-in-95 duration-150`),style:{top:u.top+24,left:Math.max(0,u.left-8)},ref:f,children:l?(0,i.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,i.jsx)(r.Loader2,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):e.length===0?(0,i.jsx)(`div`,{className:`p-3 text-sm text-muted-foreground text-center`,children:`No results found`}):(0,i.jsx)(`div`,{className:`p-1`,children:e.map((e,n)=>(0,i.jsxs)(`button`,{type:`button`,className:t.cn(`w-full flex items-center gap-3 px-3 py-2 rounded-md text-left`,`transition-colors duration-100`,a===n?`bg-accent text-accent-foreground`:`hover:bg-muted`),onClick:()=>o(e),onMouseEnter:()=>s(n),children:[e.avatar?(0,i.jsx)(`img`,{src:e.avatar,alt:e.display,className:`h-8 w-8 rounded-full object-cover flex-shrink-0`}):e.icon?(0,i.jsx)(`div`,{className:`h-8 w-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0`,children:e.icon}):(0,i.jsx)(`div`,{className:`h-8 w-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0`,children:c.icon||(0,i.jsx)(r.User,{className:`h-4 w-4`})}),(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,i.jsx)(`div`,{className:`font-medium text-sm truncate`,children:e.display}),e.description&&(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground truncate`,children:e.description})]}),(0,i.jsxs)(`div`,{className:`text-xs text-muted-foreground flex-shrink-0`,children:[c.trigger,e.value]})]},e.id))})}):null}function u({text:e,mentions:n,triggers:a}){let o=[],s=0,c=[...n].sort((e,t)=>e.startIndex-t.startIndex);for(let n of c){n.startIndex>s&&o.push((0,i.jsx)(`span`,{children:e.substring(s,n.startIndex)},`text-${s}`));let c=a.find(e=>e.trigger===n.trigger);o.push((0,i.jsxs)(`span`,{className:t.cn(`inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded-md`,`bg-primary/10 text-primary font-medium`),children:[c?.icon||(n.trigger===`@`?(0,i.jsx)(r.AtSign,{className:`h-3 w-3`}):(0,i.jsx)(r.Hash,{className:`h-3 w-3`})),n.display]},`mention-${n.id}-${n.startIndex}`)),s=n.endIndex}return s<e.length&&o.push((0,i.jsx)(`span`,{children:e.substring(s)},`text-${s}`)),(0,i.jsx)(i.Fragment,{children:o})}var d=n.forwardRef(({value:e,onChange:o,triggers:d=a,placeholder:f=`Type @ to mention someone...`,disabled:p=!1,error:m,maxLength:h,maxMentions:g,showCharacterCount:_=!1,showMentionCount:v=!1,minHeight:y=80,maxHeight:ee=300,showPreview:te=!1,className:b,label:x,description:S,searchDebounce:C=300,autoFocus:ne=!1,onFocus:re,onBlur:ie,onSubmit:w},T)=>{let E=n.useRef(null),D=n.useRef(null),[O,k]=n.useState(e||``),[A,j]=n.useState([]),[ae,M]=n.useState(!1),[N,P]=n.useState(!1),[oe,se]=n.useState({top:0,left:0}),[F,I]=n.useState([]),[L,R]=n.useState(0),[z,B]=n.useState(null),[V,H]=n.useState(``),[U,W]=n.useState(!1),G=n.useRef(void 0),K=n.useRef(-1);n.useEffect(()=>{e!==void 0&&e!==O&&(k(e),q(e))},[e]);let q=n.useCallback(e=>{let t=[];for(let n of d){let r=RegExp(`${s(n.trigger)}\\[([^\\]]+)\\]\\(([^)]+)\\)`,`g`),i;for(;(i=r.exec(e))!==null;)t.push({id:i[2],type:n.type,display:i[1],value:i[1],trigger:n.trigger,startIndex:i.index,endIndex:i.index+i[0].length})}j(t)},[d]);n.useEffect(()=>{O&&q(O)},[]);let J=n.useMemo(()=>{let e=O;for(let t of A){let n=`${t.trigger}[${t.display}](${t.id})`;e=e.replace(n,`${t.trigger}${t.display}`)}return e},[O,A]),Y=n.useCallback(async(e,t)=>{if(t.onSearch){W(!0);try{I(await t.onSearch(e))}catch{I([])}finally{W(!1)}}else t.data&&I(t.data.filter(t=>t.display.toLowerCase().includes(e.toLowerCase())||t.value.toLowerCase().includes(e.toLowerCase())))},[]);n.useEffect(()=>{if(!(!z||!N))return G.current&&clearTimeout(G.current),z.onSearch?G.current=setTimeout(()=>{Y(V,z)},C):Y(V,z),()=>{G.current&&clearTimeout(G.current)}},[V,z,N,Y,C]);let ce=e=>{let t=e.target.value,n=e.target.selectionStart,r=null,i=-1;for(let e of d){for(let a=n-1;a>=0;a--){if(t[a]===e.trigger){if((a===0||/\s/.test(t[a-1]))&&(!t.substring(a+1,n).includes(` `)||e.allowSpaces)){r=e,i=a;break}break}if(/\s/.test(t[a]))break}if(r)break}r&&i>=0?(H(t.substring(i+1,n)),B(r),K.current=i,E.current&&se(c(E.current,i)),P(!0),R(0)):(P(!1),B(null),K.current=-1),k(t),q(t);let a=[];for(let e of d){let n=RegExp(`${s(e.trigger)}\\[([^\\]]+)\\]\\(([^)]+)\\)`,`g`),r;for(;(r=n.exec(t))!==null;)a.push({id:r[2],type:e.type,display:r[1],value:r[1],trigger:e.trigger,startIndex:r.index,endIndex:r.index+r[0].length})}let l=t;for(let e of a){let t=`${e.trigger}[${e.display}](${e.id})`;l=l.replace(t,`${e.trigger}${e.display}`)}o?.(t,l,a)},X=e=>{if(!z||K.current<0||g&&A.length>=g)return;let t=E.current;if(!t)return;let n=t.selectionStart,r=O.substring(0,K.current),i=O.substring(n),a=`${z.trigger}[${e.display}](${e.id})`,c=`${r}${a} ${i}`;k(c),P(!1),B(null),K.current=-1;let l=r.length+a.length+1;setTimeout(()=>{t.focus(),t.setSelectionRange(l,l)},0);let u=[];for(let e of d){let t=RegExp(`${s(e.trigger)}\\[([^\\]]+)\\]\\(([^)]+)\\)`,`g`),n;for(;(n=t.exec(c))!==null;)u.push({id:n[2],type:e.type,display:n[1],value:n[1],trigger:e.trigger,startIndex:n.index,endIndex:n.index+n[0].length})}j(u);let f=c;for(let e of u){let t=`${e.trigger}[${e.display}](${e.id})`;f=f.replace(t,`${e.trigger}${e.display}`)}o?.(c,f,u)},le=e=>{if((e.ctrlKey||e.metaKey)&&e.key===`Enter`){e.preventDefault(),w?.(O,J,A);return}if(N)switch(e.key){case`ArrowDown`:e.preventDefault(),R(e=>e<F.length-1?e+1:0);break;case`ArrowUp`:e.preventDefault(),R(e=>e>0?e-1:F.length-1);break;case`Enter`:case`Tab`:e.preventDefault(),F[L]&&X(F[L]);break;case`Escape`:e.preventDefault(),P(!1),B(null);break}},ue=()=>{M(!0),re?.()},Z=e=>{D.current?.contains(e.relatedTarget)||(M(!1),setTimeout(()=>{P(!1)},150),ie?.())},de=e=>{let t=A.find(t=>t.id===e);if(!t)return;let n=`${t.trigger}[${t.display}](${t.id})`,r=O.replace(n,``);k(r),q(r);let i=r,a=A.filter(t=>t.id!==e);for(let e of a){let t=`${e.trigger}[${e.display}](${e.id})`;i=i.replace(t,`${e.trigger}${e.display}`)}o?.(r,i,a)};n.useImperativeHandle(T,()=>E.current,[]);let Q=J.length,$=A.length,fe=h?Q>h:!1,pe=g?$>g:!1;return(0,i.jsxs)(`div`,{ref:D,className:t.cn(`space-y-1.5`,b),children:[x&&(0,i.jsx)(`label`,{className:`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`,children:x}),S&&(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:S}),(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsxs)(`div`,{className:t.cn(`relative rounded-lg border bg-background transition-colors`,ae&&`ring-2 ring-ring ring-offset-2 ring-offset-background`,m&&`border-destructive`,p&&`opacity-50 cursor-not-allowed`),children:[(0,i.jsx)(`textarea`,{ref:E,value:O,onChange:ce,onKeyDown:le,onFocus:ue,onBlur:Z,placeholder:f,disabled:p,autoFocus:ne,className:t.cn(`w-full resize-none bg-transparent px-3 py-2 text-sm`,`placeholder:text-muted-foreground`,`focus:outline-none`,`disabled:cursor-not-allowed`),style:{minHeight:y,maxHeight:ee}}),z&&(0,i.jsx)(l,{items:F,highlightedIndex:L,onSelect:X,onHighlight:R,trigger:z,loading:U,position:oe,visible:N}),(_||v)&&(0,i.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-1.5 border-t bg-muted/30 text-xs text-muted-foreground`,children:[(0,i.jsx)(`div`,{className:`flex items-center gap-3`,children:v&&(0,i.jsxs)(`span`,{className:t.cn(pe&&`text-destructive`),children:[(0,i.jsx)(r.Users,{className:`h-3 w-3 inline mr-1`}),$,g&&` / ${g}`]})}),_&&(0,i.jsxs)(`span`,{className:t.cn(fe&&`text-destructive`),children:[Q,h&&` / ${h}`]})]})]}),(0,i.jsx)(`div`,{className:`flex items-center gap-2 mt-1.5 text-xs text-muted-foreground`,children:d.map(e=>(0,i.jsxs)(`span`,{className:`flex items-center gap-1`,children:[e.icon||(e.trigger===`@`?(0,i.jsx)(r.AtSign,{className:`h-3 w-3`}):e.trigger===`#`?(0,i.jsx)(r.Hash,{className:`h-3 w-3`}):(0,i.jsx)(r.MessageSquare,{className:`h-3 w-3`})),(0,i.jsxs)(`span`,{children:[e.trigger,` `,e.type]})]},e.trigger))})]}),m&&(0,i.jsx)(`p`,{className:`text-sm text-destructive`,children:m}),te&&O&&(0,i.jsxs)(`div`,{className:`p-3 rounded-lg border bg-muted/30`,children:[(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground mb-1.5`,children:`Preview`}),(0,i.jsx)(`div`,{className:`text-sm whitespace-pre-wrap`,children:(0,i.jsx)(u,{text:O,mentions:A,triggers:d})})]}),A.length>0&&(0,i.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:A.map(e=>{let n=d.find(t=>t.trigger===e.trigger);return(0,i.jsxs)(`span`,{className:t.cn(`inline-flex items-center gap-1 px-2 py-1 rounded-full`,`bg-primary/10 text-primary text-xs font-medium`,`animate-in fade-in-0 zoom-in-95 duration-200`),children:[n?.icon||(e.trigger===`@`?(0,i.jsx)(r.AtSign,{className:`h-3 w-3`}):(0,i.jsx)(r.Hash,{className:`h-3 w-3`})),e.display,(0,i.jsx)(`button`,{type:`button`,onClick:()=>de(e.id),className:`ml-0.5 hover:text-destructive transition-colors`,children:(0,i.jsx)(r.X,{className:`h-3 w-3`})})]},`${e.id}-${e.startIndex}`)})})]})});d.displayName=`WakaMentionInput`,exports.default=d,exports.useMentionInput=o;
|
|
1
|
+
"use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("lucide-react"),i=require("react/jsx-runtime");var a=[{trigger:`@`,type:`user`,icon:(0,i.jsx)(r.User,{className:`h-4 w-4`}),data:[]},{trigger:`#`,type:`channel`,icon:(0,i.jsx)(r.Hash,{className:`h-4 w-4`}),data:[]}];function o(e={}){let{initialValue:t=``,triggers:r=a,maxMentions:i,searchDebounce:o=300}=e,[c,l]=n.useState(t),[u,d]=n.useState([]),f=n.useMemo(()=>{let e=c;for(let t of u){let n=RegExp(`${s(t.trigger)}\\[${s(t.display)}\\]\\(${s(t.id)}\\)`,`g`);e=e.replace(n,`${t.trigger}${t.display}`)}return e},[c,u]);return{value:c,plainText:f,mentions:u,setValue:n.useCallback(e=>{l(e);let t=[];for(let n of r){let r=RegExp(`${s(n.trigger)}\\[([^\\]]+)\\]\\(([^)]+)\\)`,`g`),i;for(;(i=r.exec(e))!==null;)t.push({id:i[2],type:n.type,display:i[1],value:i[1],trigger:n.trigger,startIndex:i.index,endIndex:i.index+i[0].length})}d(t)},[r]),insertMention:n.useCallback((e,t)=>{if(i&&u.length>=i)return;let n={id:e.id,type:e.type,display:e.display,value:e.value,trigger:t,startIndex:0,endIndex:0};d(e=>[...e,n])},[i,u.length]),removeMention:n.useCallback(e=>{d(t=>t.filter(t=>t.id!==e))},[]),clear:n.useCallback(()=>{l(``),d([])},[]),mentionCount:u.length,characterCount:f.length}}function s(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function c(e,t){let n=document.createElement(`div`),r=getComputedStyle(e);for(let e of Array.from(r))n.style.setProperty(e,r.getPropertyValue(e));n.style.position=`absolute`,n.style.visibility=`hidden`,n.style.whiteSpace=`pre-wrap`,n.style.wordWrap=`break-word`,n.style.overflow=`hidden`,n.style.width=`${e.offsetWidth}px`,n.style.height=`auto`,n.textContent=e.value.substring(0,t);let i=document.createElement(`span`);i.textContent=e.value.substring(t)||`.`,n.appendChild(i),document.body.appendChild(n);let a=e.getBoundingClientRect(),o=i.getBoundingClientRect(),s={top:o.top-a.top+e.scrollTop,left:o.left-a.left+e.scrollLeft};return document.body.removeChild(n),s}function l({items:e,highlightedIndex:a,onSelect:o,onHighlight:s,trigger:c,loading:l,position:u,visible:d}){let f=n.useRef(null);return n.useEffect(()=>{if(f.current&&a>=0){let e=f.current.children[a];e&&e.scrollIntoView({block:`nearest`})}},[a]),d?(0,i.jsx)(`div`,{className:t.cn(`absolute z-50 min-w-[200px] max-w-[300px] max-h-[240px] overflow-y-auto`,`bg-popover border rounded-lg shadow-lg`,`animate-in fade-in-0 zoom-in-95 duration-150`),style:{top:u.top+24,left:Math.max(0,u.left-8)},ref:f,children:l?(0,i.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,i.jsx)(r.Loader2,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):e.length===0?(0,i.jsx)(`div`,{className:`p-3 text-sm text-muted-foreground text-center`,children:`No results found`}):(0,i.jsx)(`div`,{className:`p-1`,children:e.map((e,n)=>(0,i.jsxs)(`button`,{type:`button`,className:t.cn(`w-full flex items-center gap-3 px-3 py-2 rounded-md text-left`,`transition-colors duration-100`,a===n?`bg-accent text-accent-foreground`:`hover:bg-muted`),onClick:()=>o(e),onMouseEnter:()=>s(n),children:[e.avatar?(0,i.jsx)(`img`,{src:e.avatar,alt:e.display,className:`h-8 w-8 rounded-full object-cover flex-shrink-0`}):e.icon?(0,i.jsx)(`div`,{className:`h-8 w-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0`,children:e.icon}):(0,i.jsx)(`div`,{className:`h-8 w-8 rounded-full bg-muted flex items-center justify-center flex-shrink-0`,children:c.icon||(0,i.jsx)(r.User,{className:`h-4 w-4`})}),(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,i.jsx)(`div`,{className:`font-medium text-sm truncate`,children:e.display}),e.description&&(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground truncate`,children:e.description})]}),(0,i.jsxs)(`div`,{className:`text-xs text-muted-foreground flex-shrink-0`,children:[c.trigger,e.value]})]},e.id))})}):null}function u({text:e,mentions:n,triggers:a}){let o=[],s=0,c=[...n].sort((e,t)=>e.startIndex-t.startIndex);for(let n of c){n.startIndex>s&&o.push((0,i.jsx)(`span`,{children:e.substring(s,n.startIndex)},`text-${s}`));let c=a.find(e=>e.trigger===n.trigger);o.push((0,i.jsxs)(`span`,{className:t.cn(`inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded-md`,`bg-primary/10 text-primary font-medium`),children:[c?.icon||(n.trigger===`@`?(0,i.jsx)(r.AtSign,{className:`h-3 w-3`}):(0,i.jsx)(r.Hash,{className:`h-3 w-3`})),n.display]},`mention-${n.id}-${n.startIndex}`)),s=n.endIndex}return s<e.length&&o.push((0,i.jsx)(`span`,{children:e.substring(s)},`text-${s}`)),(0,i.jsx)(i.Fragment,{children:o})}var d=n.forwardRef(({value:e,onChange:o,triggers:d=a,placeholder:f=`Type @ to mention someone...`,disabled:p=!1,error:m,maxLength:h,maxMentions:g,showCharacterCount:_=!1,showMentionCount:v=!1,minHeight:y=80,maxHeight:ee=300,showPreview:te=!1,className:b,label:x,description:S,searchDebounce:C=300,autoFocus:ne=!1,onFocus:re,onBlur:ie,onSubmit:w},T)=>{let E=n.useRef(null),D=n.useRef(null),[O,k]=n.useState(e||``),[A,j]=n.useState([]),[ae,M]=n.useState(!1),[N,P]=n.useState(!1),[oe,se]=n.useState({top:0,left:0}),[F,I]=n.useState([]),[L,R]=n.useState(0),[z,B]=n.useState(null),[V,H]=n.useState(``),[U,W]=n.useState(!1),G=n.useRef(void 0),K=n.useRef(-1);n.useEffect(()=>{e!==void 0&&e!==O&&(k(e),q(e))},[e]);let q=n.useCallback(e=>{let t=[];for(let n of d){let r=RegExp(`${s(n.trigger)}\\[([^\\]]+)\\]\\(([^)]+)\\)`,`g`),i;for(;(i=r.exec(e))!==null;)t.push({id:i[2],type:n.type,display:i[1],value:i[1],trigger:n.trigger,startIndex:i.index,endIndex:i.index+i[0].length})}j(t)},[d]);n.useEffect(()=>{O&&q(O)},[]);let J=n.useMemo(()=>{let e=O;for(let t of A){let n=`${t.trigger}[${t.display}](${t.id})`;e=e.replace(n,`${t.trigger}${t.display}`)}return e},[O,A]),Y=n.useCallback(async(e,t)=>{if(t.onSearch){W(!0);try{let n=await t.onSearch(e);I(n)}catch{I([])}finally{W(!1)}}else if(t.data){let n=t.data.filter(t=>t.display.toLowerCase().includes(e.toLowerCase())||t.value.toLowerCase().includes(e.toLowerCase()));I(n)}},[]);n.useEffect(()=>{if(!(!z||!N))return G.current&&clearTimeout(G.current),z.onSearch?G.current=setTimeout(()=>{Y(V,z)},C):Y(V,z),()=>{G.current&&clearTimeout(G.current)}},[V,z,N,Y,C]);let ce=e=>{let t=e.target.value,n=e.target.selectionStart,r=null,i=-1;for(let e of d){for(let a=n-1;a>=0;a--){if(t[a]===e.trigger){if((a===0||/\s/.test(t[a-1]))&&(!t.substring(a+1,n).includes(` `)||e.allowSpaces)){r=e,i=a;break}break}if(/\s/.test(t[a]))break}if(r)break}if(r&&i>=0){let e=t.substring(i+1,n);if(H(e),B(r),K.current=i,E.current){let e=c(E.current,i);se(e)}P(!0),R(0)}else P(!1),B(null),K.current=-1;k(t),q(t);let a=[];for(let e of d){let n=RegExp(`${s(e.trigger)}\\[([^\\]]+)\\]\\(([^)]+)\\)`,`g`),r;for(;(r=n.exec(t))!==null;)a.push({id:r[2],type:e.type,display:r[1],value:r[1],trigger:e.trigger,startIndex:r.index,endIndex:r.index+r[0].length})}let l=t;for(let e of a){let t=`${e.trigger}[${e.display}](${e.id})`;l=l.replace(t,`${e.trigger}${e.display}`)}o?.(t,l,a)},X=e=>{if(!z||K.current<0||g&&A.length>=g)return;let t=E.current;if(!t)return;let n=t.selectionStart,r=O.substring(0,K.current),i=O.substring(n),a=`${z.trigger}[${e.display}](${e.id})`,c=`${r}${a} ${i}`;k(c),P(!1),B(null),K.current=-1;let l=r.length+a.length+1;setTimeout(()=>{t.focus(),t.setSelectionRange(l,l)},0);let u=[];for(let e of d){let t=RegExp(`${s(e.trigger)}\\[([^\\]]+)\\]\\(([^)]+)\\)`,`g`),n;for(;(n=t.exec(c))!==null;)u.push({id:n[2],type:e.type,display:n[1],value:n[1],trigger:e.trigger,startIndex:n.index,endIndex:n.index+n[0].length})}j(u);let f=c;for(let e of u){let t=`${e.trigger}[${e.display}](${e.id})`;f=f.replace(t,`${e.trigger}${e.display}`)}o?.(c,f,u)},le=e=>{if((e.ctrlKey||e.metaKey)&&e.key===`Enter`){e.preventDefault(),w?.(O,J,A);return}if(N)switch(e.key){case`ArrowDown`:e.preventDefault(),R(e=>e<F.length-1?e+1:0);break;case`ArrowUp`:e.preventDefault(),R(e=>e>0?e-1:F.length-1);break;case`Enter`:case`Tab`:e.preventDefault(),F[L]&&X(F[L]);break;case`Escape`:e.preventDefault(),P(!1),B(null);break}},ue=()=>{M(!0),re?.()},Z=e=>{D.current?.contains(e.relatedTarget)||(M(!1),setTimeout(()=>{P(!1)},150),ie?.())},de=e=>{let t=A.find(t=>t.id===e);if(!t)return;let n=`${t.trigger}[${t.display}](${t.id})`,r=O.replace(n,``);k(r),q(r);let i=r,a=A.filter(t=>t.id!==e);for(let e of a){let t=`${e.trigger}[${e.display}](${e.id})`;i=i.replace(t,`${e.trigger}${e.display}`)}o?.(r,i,a)};n.useImperativeHandle(T,()=>E.current,[]);let Q=J.length,$=A.length,fe=h?Q>h:!1,pe=g?$>g:!1;return(0,i.jsxs)(`div`,{ref:D,className:t.cn(`space-y-1.5`,b),children:[x&&(0,i.jsx)(`label`,{className:`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`,children:x}),S&&(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:S}),(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsxs)(`div`,{className:t.cn(`relative rounded-lg border bg-background transition-colors`,ae&&`ring-2 ring-ring ring-offset-2 ring-offset-background`,m&&`border-destructive`,p&&`opacity-50 cursor-not-allowed`),children:[(0,i.jsx)(`textarea`,{ref:E,value:O,onChange:ce,onKeyDown:le,onFocus:ue,onBlur:Z,placeholder:f,disabled:p,autoFocus:ne,className:t.cn(`w-full resize-none bg-transparent px-3 py-2 text-sm`,`placeholder:text-muted-foreground`,`focus:outline-none`,`disabled:cursor-not-allowed`),style:{minHeight:y,maxHeight:ee}}),z&&(0,i.jsx)(l,{items:F,highlightedIndex:L,onSelect:X,onHighlight:R,trigger:z,loading:U,position:oe,visible:N}),(_||v)&&(0,i.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-1.5 border-t bg-muted/30 text-xs text-muted-foreground`,children:[(0,i.jsx)(`div`,{className:`flex items-center gap-3`,children:v&&(0,i.jsxs)(`span`,{className:t.cn(pe&&`text-destructive`),children:[(0,i.jsx)(r.Users,{className:`h-3 w-3 inline mr-1`}),$,g&&` / ${g}`]})}),_&&(0,i.jsxs)(`span`,{className:t.cn(fe&&`text-destructive`),children:[Q,h&&` / ${h}`]})]})]}),(0,i.jsx)(`div`,{className:`flex items-center gap-2 mt-1.5 text-xs text-muted-foreground`,children:d.map(e=>(0,i.jsxs)(`span`,{className:`flex items-center gap-1`,children:[e.icon||(e.trigger===`@`?(0,i.jsx)(r.AtSign,{className:`h-3 w-3`}):e.trigger===`#`?(0,i.jsx)(r.Hash,{className:`h-3 w-3`}):(0,i.jsx)(r.MessageSquare,{className:`h-3 w-3`})),(0,i.jsxs)(`span`,{children:[e.trigger,` `,e.type]})]},e.trigger))})]}),m&&(0,i.jsx)(`p`,{className:`text-sm text-destructive`,children:m}),te&&O&&(0,i.jsxs)(`div`,{className:`p-3 rounded-lg border bg-muted/30`,children:[(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground mb-1.5`,children:`Preview`}),(0,i.jsx)(`div`,{className:`text-sm whitespace-pre-wrap`,children:(0,i.jsx)(u,{text:O,mentions:A,triggers:d})})]}),A.length>0&&(0,i.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:A.map(e=>{let n=d.find(t=>t.trigger===e.trigger);return(0,i.jsxs)(`span`,{className:t.cn(`inline-flex items-center gap-1 px-2 py-1 rounded-full`,`bg-primary/10 text-primary text-xs font-medium`,`animate-in fade-in-0 zoom-in-95 duration-200`),children:[n?.icon||(e.trigger===`@`?(0,i.jsx)(r.AtSign,{className:`h-3 w-3`}):(0,i.jsx)(r.Hash,{className:`h-3 w-3`})),e.display,(0,i.jsx)(`button`,{type:`button`,onClick:()=>de(e.id),className:`ml-0.5 hover:text-destructive transition-colors`,children:(0,i.jsx)(r.X,{className:`h-3 w-3`})})]},`${e.id}-${e.startIndex}`)})})]})});d.displayName=`WakaMentionInput`,exports.WakaMentionInput=d,exports.default=d,exports.useMentionInput=o;
|