@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("./hooks/useChartTheme.cjs.js"),n=require("./WakaChart.cjs.js");let r=require("react");r=e.__toESM(r);let i=require("react/jsx-runtime");var a=r.forwardRef(({data:e,dataKeys:a,series:o,variant:s=`default`,size:c=`md`,height:l,width:u,animation:d=!0,animationDuration:f=500,grid:p=!0,tooltip:m=!0,legend:h,axis:g,theme:_,className:v,style:y,title:b,description:x,loading:S,error:C,onClick:w,responsive:T=!0,layout:E=`vertical`,stacked:D=!1,radius:O=4,barSize:k,barGap:A=4,barCategoryGap:j=`20%`},M)=>{let{theme:N,getColor:P,tooltipStyles:F}=t.default(_,s),I=r.useMemo(()=>{if(o&&o.length>0)return o;if(a&&a.length>0)return a.map((e,t)=>({dataKey:e,label:e,color:P(t)}));if(e.length>0&&`value`in e[0])return[{dataKey:`value`,label:`Value`,color:P(0)}];let t=e[0];return t?Object.keys(t).filter(e=>e!==`name`&&typeof t[e]==`number`).map((e,t)=>({dataKey:e,label:e,color:P(t)})):[]},[o,a,e,P]),L=r.useMemo(()=>h?typeof h==`boolean`?{enabled:h,position:`bottom`,align:`center`}:h:null,[h]),R=r.useMemo(()=>m?typeof m==`boolean`?{enabled:m}:m:null,[m]);return(0,i.jsx)(n.WakaChart,{ref:M,variant:s,size:c,height:l,width:u,theme:_,className:v,style:y,title:b,description:x,loading:S,error:C,responsive:T,children:t=>{if(!t)return null;let{BarChart:n,Bar:r,XAxis:a,YAxis:o,CartesianGrid:s,Tooltip:c,Legend:l}=t;return(0,i.jsxs)(n,{data:e,layout:E===`horizontal`?`vertical`:`horizontal`,barGap:A,barCategoryGap:j,children:[p&&(0,i.jsx)(s,{strokeDasharray:`3 3`,stroke:N.gridColor,horizontal:!0,vertical:!1}),g?.showXAxis!==!1&&(0,i.jsx)(a,{dataKey:`name`,axisLine:{stroke:N.axisColor},tickLine:{stroke:N.axisColor},tick:{fill:N.textColor,fontSize:12},tickFormatter:g?.xAxisFormatter}),g?.showYAxis!==!1&&(0,i.jsx)(o,{axisLine:{stroke:N.axisColor},tickLine:{stroke:N.axisColor},tick:{fill:N.textColor,fontSize:12},tickFormatter:g?.yAxisFormatter,domain:g?.yAxisDomain,unit:g?.yAxisUnit}),R?.enabled!==!1&&m&&(0,i.jsx)(c,{...F,formatter:R&&typeof R!=`boolean`&&R.formatter?(t,n)=>R.formatter(t,n,e[0]):e=>`${R&&typeof R!=`boolean`&&R.valuePrefix||``}${e}${R&&typeof R!=`boolean`&&R.valueSuffix||``}`}),L?.enabled&&(0,i.jsx)(l,{align:L.align,verticalAlign:L.position===`top`?`top`:`bottom`,wrapperStyle:{paddingTop:L.position===`bottom`?16:0}}),I.map((e,t)=>(0,i.jsx)(r,{dataKey:e.dataKey,name:e.label,fill:e.color||P(t),radius:O,stackId:D?`stack`:void 0,barSize:k,animationDuration:f,isAnimationActive:d},e.dataKey))]})}})});a.displayName=`WakaBarChart`,exports.WakaBarChart=a,exports.default=a;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
3
|
import e from "./hooks/useChartTheme.es.js";
|
|
4
|
-
import t from "./WakaChart.es.js";
|
|
4
|
+
import { WakaChart as t } from "./WakaChart.es.js";
|
|
5
5
|
import * as n from "react";
|
|
6
6
|
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
7
7
|
//#region src/components/waka-charts/WakaBarChart.tsx
|
|
@@ -110,4 +110,4 @@ var a = n.forwardRef(({ data: a, dataKeys: o, series: s, variant: c = "default",
|
|
|
110
110
|
});
|
|
111
111
|
a.displayName = "WakaBarChart";
|
|
112
112
|
//#endregion
|
|
113
|
-
export { a as default };
|
|
113
|
+
export { a as WakaBarChart, a as default };
|
|
@@ -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"),n=require("../skeleton/index.cjs.js"),r=require("./hooks/useRechartsLoader.cjs.js"),i=require("./hooks/useChartTheme.cjs.js");let a=require("react");a=e.__toESM(a);let o=require("react/jsx-runtime");var s={sm:{width:`100%`,height:150},md:{width:`100%`,height:250},lg:{width:`100%`,height:350},xl:{width:`100%`,height:450},auto:{width:`100%`,height:300}},c=a.forwardRef(({children:e,variant:a=`default`,size:c=`md`,height:u,width:d,theme:f,className:p,style:m,title:h,description:g,loading:_,error:v,responsive:y=!0},b)=>{let{components:x,loading:S,error:C,isAvailable:w}=r.default(),{containerClasses:T}=i.default(f,a),E=_||S,D=v||(C?`Recharts non disponible. Installez recharts pour utiliser les graphiques.`:null),O=s[c],k=d??O.width,A=u??O.height;if(E)return(0,o.jsxs)(`div`,{ref:b,className:t.cn(T,p),style:m,children:[h&&(0,o.jsx)(l,{title:h,description:g}),(0,o.jsx)(n.Skeleton,{className:`w-full`,style:{height:A}})]});if(D||!w)return(0,o.jsxs)(`div`,{ref:b,className:t.cn(T,p),style:m,children:[h&&(0,o.jsx)(l,{title:h,description:g}),(0,o.jsx)(`div`,{className:`flex items-center justify-center text-muted-foreground text-sm border border-dashed border-border rounded-lg`,style:{height:A},children:(0,o.jsxs)(`div`,{className:`text-center p-4`,children:[(0,o.jsx)(`p`,{children:D||`Graphique non disponible`}),(0,o.jsx)(`p`,{className:`text-xs mt-1`,children:`Installez recharts: pnpm add recharts`})]})})]});let{ResponsiveContainer:j}=x;return(0,o.jsxs)(`div`,{ref:b,className:t.cn(T,p),style:m,children:[h&&(0,o.jsx)(l,{title:h,description:g}),y?(0,o.jsx)(j,{width:k,height:A,children:e(x)}):(0,o.jsx)(`div`,{style:{width:k,height:A},children:e(x)})]})});c.displayName=`WakaChart`;function l({title:e,description:t}){return(0,o.jsxs)(`div`,{className:`mb-4`,children:[(0,o.jsx)(`h3`,{className:`text-lg font-semibold`,children:e}),t&&(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t})]})}exports.WakaChart=c,exports.default=c;
|
|
@@ -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("./hooks/useChartTheme.cjs.js"),n=require("./WakaChart.cjs.js");let r=require("react");r=e.__toESM(r);let i=require("react/jsx-runtime");var a=r.forwardRef(({data:e,dataKeys:a,series:o,variant:s=`default`,size:c=`md`,height:l,width:u,animation:d=!0,animationDuration:f=500,grid:p=!0,tooltip:m=!0,legend:h,axis:g,theme:_,className:v,style:y,title:b,description:x,loading:S,error:C,onClick:w,responsive:T=!0,curve:E=`monotone`,dots:D=!0,dotSize:O=4,activeDot:k=!0,strokeWidth:A=2},j)=>{let{theme:M,getColor:N,tooltipStyles:P}=t.default(_,s),F=r.useMemo(()=>{if(o&&o.length>0)return o;if(a&&a.length>0)return a.map((e,t)=>({dataKey:e,label:e,color:N(t),strokeWidth:A}));if(e.length>0&&`value`in e[0])return[{dataKey:`value`,label:`Value`,color:N(0),strokeWidth:A}];let t=e[0];return t?Object.keys(t).filter(e=>e!==`name`&&typeof t[e]==`number`).map((e,t)=>({dataKey:e,label:e,color:N(t),strokeWidth:A})):[]},[o,a,e,N,A]),I=r.useMemo(()=>h?typeof h==`boolean`?{enabled:h,position:`bottom`,align:`center`}:h:null,[h]),L=r.useMemo(()=>m?typeof m==`boolean`?{enabled:m}:m:null,[m]);return(0,i.jsx)(n.WakaChart,{ref:j,variant:s,size:c,height:l,width:u,theme:_,className:v,style:y,title:b,description:x,loading:S,error:C,responsive:T,children:t=>{if(!t)return null;let{LineChart:n,Line:r,XAxis:a,YAxis:o,CartesianGrid:s,Tooltip:c,Legend:l}=t;return(0,i.jsxs)(n,{data:e,children:[p&&(0,i.jsx)(s,{strokeDasharray:`3 3`,stroke:M.gridColor,horizontal:!0,vertical:!1}),g?.showXAxis!==!1&&(0,i.jsx)(a,{dataKey:`name`,axisLine:{stroke:M.axisColor},tickLine:{stroke:M.axisColor},tick:{fill:M.textColor,fontSize:12},tickFormatter:g?.xAxisFormatter}),g?.showYAxis!==!1&&(0,i.jsx)(o,{axisLine:{stroke:M.axisColor},tickLine:{stroke:M.axisColor},tick:{fill:M.textColor,fontSize:12},tickFormatter:g?.yAxisFormatter,domain:g?.yAxisDomain,unit:g?.yAxisUnit}),L?.enabled!==!1&&m&&(0,i.jsx)(c,{...P,formatter:L&&typeof L!=`boolean`&&L.formatter?(t,n)=>L.formatter(t,n,e[0]):e=>`${L&&typeof L!=`boolean`&&L.valuePrefix||``}${e}${L&&typeof L!=`boolean`&&L.valueSuffix||``}`}),I?.enabled&&(0,i.jsx)(l,{align:I.align,verticalAlign:I.position===`top`?`top`:`bottom`,wrapperStyle:{paddingTop:I.position===`bottom`?16:0}}),F.map((e,t)=>(0,i.jsx)(r,{dataKey:e.dataKey,name:e.label,stroke:e.color||N(t),strokeWidth:e.strokeWidth||A,strokeDasharray:e.strokeDasharray,type:E,dot:D?{r:O,fill:e.color||N(t)}:!1,activeDot:k?{r:O+2}:!1,animationDuration:f,isAnimationActive:d},e.dataKey))]})}})});a.displayName=`WakaLineChart`,exports.WakaLineChart=a,exports.default=a;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
3
|
import e from "./hooks/useChartTheme.es.js";
|
|
4
|
-
import t from "./WakaChart.es.js";
|
|
4
|
+
import { WakaChart as t } from "./WakaChart.es.js";
|
|
5
5
|
import * as n from "react";
|
|
6
6
|
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
7
7
|
//#region src/components/waka-charts/WakaLineChart.tsx
|
|
@@ -116,4 +116,4 @@ var a = n.forwardRef(({ data: a, dataKeys: o, series: s, variant: c = "default",
|
|
|
116
116
|
});
|
|
117
117
|
a.displayName = "WakaLineChart";
|
|
118
118
|
//#endregion
|
|
119
|
-
export { a as default };
|
|
119
|
+
export { a as WakaLineChart, a as default };
|
|
@@ -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"),n=require("./WakaSparkline.cjs.js");let r=require("react");r=e.__toESM(r);let i=require("lucide-react"),a=require("react/jsx-runtime");var o=r.forwardRef(({data:e,type:o=`sparkline`,width:s=80,height:c=24,color:l,showTrend:u=!0,valueFormatter:d,className:f},p)=>{let m=r.useMemo(()=>!e||e.length===0?[]:typeof e[0]==`number`?e:e.map(e=>{let t=e.value??Object.values(e).find(e=>typeof e==`number`);return typeof t==`number`?t:0}),[e]),{trend:h,trendPercent:g,currentValue:_}=r.useMemo(()=>{if(m.length<2)return{trend:`neutral`,trendPercent:0,currentValue:m[0]??0};let e=m[0],t=m[m.length-1],n=t-e,r=e===0?0:n/e*100;return{trend:n>0?`up`:n<0?`down`:`neutral`,trendPercent:r,currentValue:t}},[m]),v=r.useMemo(()=>l||(h===`up`?`hsl(var(--chart-2, 142 76% 36%))`:h===`down`?`hsl(var(--destructive, 0 84% 60%))`:`hsl(var(--muted-foreground, 220 9% 46%))`),[l,h]);return m.length===0?(0,a.jsx)(`div`,{ref:p,className:t.cn(`flex items-center gap-1 text-muted-foreground`,f),children:(0,a.jsx)(i.Minus,{className:`h-3 w-3`})}):(d?d(_):_.toLocaleString(),(0,a.jsxs)(`div`,{ref:p,className:t.cn(`flex items-center gap-2`,f),children:[(0,a.jsx)(n.WakaSparkline,{data:m,type:o===`sparkline`?`line`:o,width:s,height:c,color:v,animation:!1}),u&&(0,a.jsxs)(`div`,{className:`flex items-center gap-1`,children:[h===`up`&&(0,a.jsx)(i.TrendingUp,{className:`h-3 w-3 text-green-600 dark:text-green-400`}),h===`down`&&(0,a.jsx)(i.TrendingDown,{className:`h-3 w-3 text-red-600 dark:text-red-400`}),h===`neutral`&&(0,a.jsx)(i.Minus,{className:`h-3 w-3 text-muted-foreground`}),(0,a.jsxs)(`span`,{className:t.cn(`text-xs font-medium`,h===`up`&&`text-green-600 dark:text-green-400`,h===`down`&&`text-red-600 dark:text-red-400`,h===`neutral`&&`text-muted-foreground`),children:[h!==`neutral`&&(g>0?`+`:``),g.toFixed(1),`%`]})]})]}))});o.displayName=`WakaMiniChart`,exports.WakaMiniChart=o,exports.default=o;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
3
|
import { cn as e } from "../../utils/cn.es.js";
|
|
4
|
-
import t from "./WakaSparkline.es.js";
|
|
4
|
+
import { WakaSparkline as t } from "./WakaSparkline.es.js";
|
|
5
5
|
import * as n from "react";
|
|
6
6
|
import { Minus as r, TrendingDown as i, TrendingUp as a } from "lucide-react";
|
|
7
7
|
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
@@ -57,4 +57,4 @@ var c = n.forwardRef(({ data: c, type: l = "sparkline", width: u = 80, height: d
|
|
|
57
57
|
});
|
|
58
58
|
c.displayName = "WakaMiniChart";
|
|
59
59
|
//#endregion
|
|
60
|
-
export { c as default };
|
|
60
|
+
export { c as WakaMiniChart, c as default };
|
|
@@ -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("./hooks/useChartTheme.cjs.js"),n=require("./WakaChart.cjs.js");let r=require("react");r=e.__toESM(r);let i=require("react/jsx-runtime");var a=r.forwardRef(({data:e,variant:a=`default`,size:o=`md`,height:s,width:c,animation:l=!0,animationDuration:u=500,tooltip:d=!0,legend:f=!0,theme:p,className:m,style:h,title:g,description:_,loading:v,error:y,onClick:b,responsive:x=!0,dataKey:S=`value`,nameKey:C=`name`,innerRadius:w=0,outerRadius:T=`80%`,startAngle:E=90,endAngle:D=-270,paddingAngle:O=2,label:k=!1,labelPosition:A=`outside`},j)=>{let{theme:M,getColor:N,tooltipStyles:P}=t.default(p,a),F=r.useMemo(()=>f?typeof f==`boolean`?{enabled:f,position:`bottom`,align:`center`}:f:null,[f]),I=r.useMemo(()=>d?typeof d==`boolean`?{enabled:d}:d:null,[d]),L=r.useCallback(e=>{if(!k)return null;let t=Math.PI/180,n=A===`inside`?e.innerRadius+(e.outerRadius-e.innerRadius)*.5:e.outerRadius*1.1,r=e.cx+n*Math.cos(-e.midAngle*t),a=e.cy+n*Math.sin(-e.midAngle*t),o=``;return o=k===`percent`?`${(e.percent*100).toFixed(0)}%`:k===`value`?String(e.value):k===`name`?e.name:`${(e.percent*100).toFixed(0)}%`,(0,i.jsx)(`text`,{x:r,y:a,fill:A===`inside`?`#fff`:M.textColor,textAnchor:r>e.cx?`start`:`end`,dominantBaseline:`central`,fontSize:12,children:o})},[k,A,M.textColor]);return(0,i.jsx)(n.WakaChart,{ref:j,variant:a,size:o,height:s,width:c,theme:p,className:m,style:h,title:g,description:_,loading:v,error:y,responsive:x,children:t=>{if(!t)return null;let{PieChart:n,Pie:r,Cell:a,Tooltip:o,Legend:s}=t;return(0,i.jsxs)(n,{children:[I?.enabled!==!1&&d&&(0,i.jsx)(o,{...P,formatter:I&&typeof I!=`boolean`&&I.formatter?(t,n)=>I.formatter(t,n,e[0]):e=>`${I&&typeof I!=`boolean`&&I.valuePrefix||``}${e}${I&&typeof I!=`boolean`&&I.valueSuffix||``}`}),F?.enabled&&(0,i.jsx)(s,{align:F.align,verticalAlign:F.position===`top`?`top`:`bottom`,layout:F.position===`left`||F.position===`right`?`vertical`:`horizontal`,wrapperStyle:{paddingTop:F.position===`bottom`?16:0}}),(0,i.jsx)(r,{data:e,dataKey:S,nameKey:C,cx:`50%`,cy:`50%`,innerRadius:w,outerRadius:T,startAngle:E,endAngle:D,paddingAngle:O,animationDuration:u,isAnimationActive:l,label:k?L:!1,labelLine:k&&A===`outside`,children:e.map((e,t)=>(0,i.jsx)(a,{fill:N(t),stroke:`transparent`},`cell-${t}`))})]})}})});a.displayName=`WakaPieChart`,exports.WakaPieChart=a,exports.default=a;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
"use client";
|
|
3
3
|
import e from "./hooks/useChartTheme.es.js";
|
|
4
|
-
import t from "./WakaChart.es.js";
|
|
4
|
+
import { WakaChart as t } from "./WakaChart.es.js";
|
|
5
5
|
import * as n from "react";
|
|
6
6
|
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
7
7
|
//#region src/components/waka-charts/WakaPieChart.tsx
|
|
@@ -81,4 +81,4 @@ var a = n.forwardRef(({ data: a, variant: o = "default", size: s = "md", height:
|
|
|
81
81
|
});
|
|
82
82
|
a.displayName = "WakaPieChart";
|
|
83
83
|
//#endregion
|
|
84
|
-
export { a as default };
|
|
84
|
+
export { a as WakaPieChart, a as default };
|
|
@@ -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"),n=require("./hooks/useRechartsLoader.cjs.js");let r=require("react");r=e.__toESM(r);let i=require("react/jsx-runtime");var a=r.forwardRef(({data:e,type:a=`line`,width:s=100,height:c=30,color:l=`hsl(var(--chart-1))`,fillColor:u,fillOpacity:d=.3,showMinMax:f=!1,showValue:p=!1,className:m,animation:h=!0},g)=>{let{components:_,loading:v,isAvailable:y}=n.default(),b=r.useMemo(()=>e.map((e,t)=>({index:t,value:e})),[e]),{min:x,max:S,current:C}=r.useMemo(()=>{let t=e.filter(e=>typeof e==`number`&&!isNaN(e));return{min:Math.min(...t),max:Math.max(...t),current:t[t.length-1]}},[e]);if(v)return(0,i.jsx)(`div`,{ref:g,className:t.cn(`inline-flex items-center gap-2`,m),children:(0,i.jsx)(`div`,{className:`bg-muted animate-pulse rounded`,style:{width:s,height:c}})});if(!y||!_)return(0,i.jsxs)(`div`,{ref:g,className:t.cn(`inline-flex items-center gap-2`,m),children:[(0,i.jsx)(o,{data:e,width:s,height:c,color:l,type:a,fillColor:u,fillOpacity:d}),p&&(0,i.jsx)(`span`,{className:`text-sm font-medium`,children:C})]});let{ResponsiveContainer:w,LineChart:T,BarChart:E,AreaChart:D,Line:O,Bar:k,Area:A}=_;return(0,i.jsxs)(`div`,{ref:g,className:t.cn(`inline-flex items-center gap-2`,m),children:[(0,i.jsx)(`div`,{style:{width:s,height:c},children:(0,i.jsx)(w,{width:`100%`,height:`100%`,children:a===`bar`?(0,i.jsx)(E,{data:b,children:(0,i.jsx)(k,{dataKey:`value`,fill:l,radius:1,isAnimationActive:h})}):a===`area`?(0,i.jsxs)(D,{data:b,children:[(0,i.jsx)(`defs`,{children:(0,i.jsxs)(`linearGradient`,{id:`sparkline-gradient-${l.replace(/[^a-z0-9]/gi,``)}`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,i.jsx)(`stop`,{offset:`5%`,stopColor:u||l,stopOpacity:.8}),(0,i.jsx)(`stop`,{offset:`95%`,stopColor:u||l,stopOpacity:.1})]})}),(0,i.jsx)(A,{type:`monotone`,dataKey:`value`,stroke:l,fill:`url(#sparkline-gradient-${l.replace(/[^a-z0-9]/gi,``)})`,fillOpacity:d,strokeWidth:1.5,dot:!1,isAnimationActive:h})]}):(0,i.jsx)(T,{data:b,children:(0,i.jsx)(O,{type:`monotone`,dataKey:`value`,stroke:l,strokeWidth:1.5,dot:!1,isAnimationActive:h})})})}),f&&(0,i.jsxs)(`div`,{className:`flex flex-col text-xs text-muted-foreground`,children:[(0,i.jsxs)(`span`,{children:[`↑ `,S]}),(0,i.jsxs)(`span`,{children:[`↓ `,x]})]}),p&&(0,i.jsx)(`span`,{className:`text-sm font-medium`,children:C})]})});a.displayName=`WakaSparkline`;function o({data:e,width:t,height:n,color:r,type:a,fillColor:o,fillOpacity:s}){let c=t-4,l=n-4,u=Math.min(...e),d=Math.max(...e)-u||1,f=e.map((t,n)=>({x:2+n/(e.length-1||1)*c,y:2+l-(t-u)/d*l,value:t}));if(a===`bar`){let a=c/e.length-1;return(0,i.jsx)(`svg`,{width:t,height:n,children:e.map((e,t)=>{let n=(e-u)/d*l;return(0,i.jsx)(`rect`,{x:2+t*(a+1),y:2+l-n,width:a,height:n,fill:r,rx:1},t)})})}let p=f.map((e,t)=>`${t===0?`M`:`L`} ${e.x} ${e.y}`).join(` `);return a===`area`?(0,i.jsxs)(`svg`,{width:t,height:n,children:[(0,i.jsx)(`path`,{d:`${p} L ${f[f.length-1].x} ${n-2} L 2 ${n-2} Z`,fill:o||r,fillOpacity:s}),(0,i.jsx)(`path`,{d:p,fill:`none`,stroke:r,strokeWidth:1.5})]}):(0,i.jsx)(`svg`,{width:t,height:n,children:(0,i.jsx)(`path`,{d:p,fill:`none`,stroke:r,strokeWidth:1.5})})}exports.WakaSparkline=a,exports.default=a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";function e(e){let{accessorKey:t,header:n=String(t),chartType:r=`sparkline`,width:i=100,height:a=24,color:o,showValue:s=!1,valueFormatter:c}=e;return{accessorKey:t,header:n,size:i+(s?60:0),enableSorting:!1,enableColumnFilter:!1,cell:e=>{let t=e.getValue(),n=[];return Array.isArray(t)&&(typeof t[0]==`number`?n=t:typeof t[0]==`object`&&t[0]!==null&&(n=t.map(e=>{let t=e.value??Object.values(e).find(e=>typeof e==`number`);return typeof t==`number`?t:0}))),{type:`chart`,chartType:r,data:n,width:i,height:a,color:o,showTrend:!0,valueFormatter:c}},meta:{isChartColumn:!0,chartConfig:e}}}var t={cell:e=>{if(!Array.isArray(e))return null;let t=[];return typeof e[0]==`number`?t=e:typeof e[0]==`object`&&e[0]!==null&&(t=e.map(e=>{let t=e.value??Object.values(e).find(e=>typeof e==`number`);return typeof t==`number`?t:0})),{type:`sparkline`,data:t}},size:100,enableSorting:!1,enableFiltering:!1};exports.default=e,exports.sparklineTemplate=t;
|
|
1
|
+
"use client";function e(e){let{accessorKey:t,header:n=String(t),chartType:r=`sparkline`,width:i=100,height:a=24,color:o,showValue:s=!1,valueFormatter:c}=e;return{accessorKey:t,header:n,size:i+(s?60:0),enableSorting:!1,enableColumnFilter:!1,cell:e=>{let t=e.getValue(),n=[];return Array.isArray(t)&&(typeof t[0]==`number`?n=t:typeof t[0]==`object`&&t[0]!==null&&(n=t.map(e=>{let t=e.value??Object.values(e).find(e=>typeof e==`number`);return typeof t==`number`?t:0}))),{type:`chart`,chartType:r,data:n,width:i,height:a,color:o,showTrend:!0,valueFormatter:c}},meta:{isChartColumn:!0,chartConfig:e}}}var t={cell:e=>{if(!Array.isArray(e))return null;let t=[];return typeof e[0]==`number`?t=e:typeof e[0]==`object`&&e[0]!==null&&(t=e.map(e=>{let t=e.value??Object.values(e).find(e=>typeof e==`number`);return typeof t==`number`?t:0})),{type:`sparkline`,data:t}},size:100,enableSorting:!1,enableFiltering:!1};exports.createChartColumn=e,exports.default=e,exports.sparklineTemplate=t;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";
|
|
1
|
+
"use client";let e=require("react");var t={colors:[`hsl(var(--chart-1, 220 70% 50%))`,`hsl(var(--chart-2, 160 60% 45%))`,`hsl(var(--chart-3, 30 80% 55%))`,`hsl(var(--chart-4, 280 65% 60%))`,`hsl(var(--chart-5, 340 75% 55%))`],gridColor:`hsl(var(--border, 220 13% 91%))`,axisColor:`hsl(var(--muted-foreground, 220 9% 46%))`,textColor:`hsl(var(--foreground, 224 71% 4%))`,tooltipBackground:`hsl(var(--popover, 0 0% 100%))`,tooltipText:`hsl(var(--popover-foreground, 224 71% 4%))`,tooltipBorder:`hsl(var(--border, 220 13% 91%))`,fontFamily:`inherit`};function n(n,r=`default`){let i=(0,e.useMemo)(()=>({colors:n?.colors??t.colors,gridColor:n?.gridColor??t.gridColor,axisColor:n?.axisColor??t.axisColor,textColor:n?.textColor??t.textColor,tooltipBackground:n?.tooltipBackground??t.tooltipBackground,tooltipText:n?.tooltipText??t.tooltipText,tooltipBorder:n?.tooltipBorder??t.tooltipBorder,fontFamily:n?.fontFamily??t.fontFamily}),[n]);return{theme:i,getColor:(0,e.useMemo)(()=>e=>i.colors[e%i.colors.length],[i.colors]),tooltipStyles:(0,e.useMemo)(()=>({contentStyle:{backgroundColor:i.tooltipBackground,color:i.tooltipText,border:`1px solid ${i.tooltipBorder}`,borderRadius:`var(--radius, 0.5rem)`,padding:`8px 12px`,boxShadow:`0 2px 4px rgba(0,0,0,0.1)`,fontFamily:i.fontFamily},wrapperStyle:{outline:`none`},itemStyle:{color:i.tooltipText,padding:`2px 0`},labelStyle:{color:i.textColor,fontWeight:600,marginBottom:`4px`}}),[i]),containerClasses:(0,e.useMemo)(()=>{let e=`relative`;switch(r){case`gradient`:return`${e} bg-gradient-to-br from-background to-muted/20`;case`outline`:return`${e} border border-border rounded-lg p-4`;case`glass`:return`${e} bg-background/50 backdrop-blur-sm border border-border/50 rounded-lg p-4`;default:return e}},[r])}}exports.default=n,exports.useChartTheme=n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";
|
|
1
|
+
"use client";let e=require("react");function t(){let[t,n]=(0,e.useState)(null),[r,i]=(0,e.useState)(!0),[a,o]=(0,e.useState)(null);return(0,e.useEffect)(()=>{let e=!0;return(async()=>{try{let t=await import(`recharts`);e&&(n({ResponsiveContainer:t.ResponsiveContainer,BarChart:t.BarChart,LineChart:t.LineChart,AreaChart:t.AreaChart,PieChart:t.PieChart,Bar:t.Bar,Line:t.Line,Area:t.Area,Pie:t.Pie,Cell:t.Cell,XAxis:t.XAxis,YAxis:t.YAxis,CartesianGrid:t.CartesianGrid,Tooltip:t.Tooltip,Legend:t.Legend,defs:`defs`,linearGradient:`linearGradient`,stop:`stop`}),i(!1))}catch(t){e&&(o(t instanceof Error?t:Error(`Failed to load Recharts`)),i(!1))}})(),()=>{e=!1}},[]),{components:t,loading:r,error:a,isAvailable:!r&&!a&&t!==null}}exports.default=t,exports.useRechartsLoader=t;
|
|
@@ -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(`class-variance-authority`),a=require(`react/jsx-runtime`);var o=(0,i.cva)(`relative rounded-2xl px-4 py-2.5 max-w-[85%] break-words transition-all`,{variants:{variant:{default:``,minimal:`shadow-none`,elevated:`shadow-lg`},isSent:{true:`bg-primary text-primary-foreground ml-auto rounded-br-md`,false:`bg-muted text-foreground mr-auto rounded-bl-md`}},defaultVariants:{variant:`default`,isSent:!1}}),s=(0,i.cva)(`h-3.5 w-3.5`,{variants:{status:{sending:`text-muted-foreground animate-pulse`,sent:`text-muted-foreground`,delivered:`text-muted-foreground`,read:`text-blue-500`,failed:`text-destructive`}}});function c(e,t){let n=typeof e==`string`?new Date(e):e;if(t===`relative`){let e=new Date().getTime()-n.getTime(),t=Math.floor(e/6e4),r=Math.floor(e/36e5),i=Math.floor(e/864e5);return t<1?`Just now`:t<60?`${t}m ago`:r<24?`${r}h ago`:i<7?`${i}d ago`:n.toLocaleDateString()}return t===`datetime`?n.toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`}):n.toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`})}function l(e){let t=e.trim();return/^[\p{Emoji}\p{Emoji_Modifier}\p{Emoji_Component}\p{Emoji_Modifier_Base}\p{Emoji_Presentation}\s]+$/u.test(t)&&t.length<=12}function u(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`:``}function d({user:e,size:n=`default`,className:r}){return(0,a.jsx)(`div`,{className:t.cn(`flex-shrink-0 rounded-full overflow-hidden bg-muted flex items-center justify-center`,n===`sm`?`h-6 w-6 text-xs`:`h-8 w-8 text-sm`,r),children:e?.avatar?(0,a.jsx)(`img`,{src:e.avatar,alt:e.name,className:`h-full w-full object-cover`}):(0,a.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:e?.initials??e?.name?.slice(0,2).toUpperCase()??`?`})})}function f({status:e,readReceipt:n}){if(e===`sending`)return(0,a.jsx)(r.Clock,{className:t.cn(s({status:`sending`}))});if(e===`failed`)return(0,a.jsx)(r.AlertCircle,{className:t.cn(s({status:`failed`}))});let i=n??(e===`delivered`?`delivered`:`sent`);return i===`read`?(0,a.jsx)(r.CheckCheck,{className:t.cn(s({status:`read`}))}):i===`delivered`?(0,a.jsx)(r.CheckCheck,{className:t.cn(s({status:`delivered`}))}):(0,a.jsx)(r.Check,{className:t.cn(s({status:`sent`}))})}function p({reaction:e,onClick:n,isSent:r}){return(0,a.jsxs)(`button`,{type:`button`,onClick:n,className:t.cn(`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium transition-colors`,e.reacted?`bg-primary/20 text-primary border border-primary/30`:r?`bg-primary-foreground/20 text-primary-foreground/80 hover:bg-primary-foreground/30`:`bg-background border border-border hover:bg-muted`),children:[(0,a.jsx)(`span`,{children:e.emoji}),(0,a.jsx)(`span`,{children:e.count})]})}function m({attachment:e,onClick:n,isSent:i}){return e.type===`image`?(0,a.jsx)(`button`,{type:`button`,onClick:n,className:`relative rounded-lg overflow-hidden max-w-[280px] cursor-pointer hover:opacity-90 transition-opacity`,children:(0,a.jsx)(`img`,{src:e.thumbnail??e.url,alt:e.name,className:`max-h-[200px] object-cover`,style:{width:e.width?Math.min(e.width,280):`auto`}})}):(0,a.jsxs)(`button`,{type:`button`,onClick:n,className:t.cn(`flex items-center gap-3 p-3 rounded-lg transition-colors max-w-[280px]`,i?`bg-primary-foreground/10 hover:bg-primary-foreground/20`:`bg-background/50 hover:bg-background/80`),children:[(0,a.jsx)(`div`,{className:t.cn(`flex-shrink-0 h-10 w-10 rounded-lg flex items-center justify-center`,i?`bg-primary-foreground/20`:`bg-muted`),children:e.type===`video`?(0,a.jsx)(r.Image,{className:`h-5 w-5`}):(0,a.jsx)(r.FileText,{className:`h-5 w-5`})}),(0,a.jsxs)(`div`,{className:`min-w-0 flex-1 text-left`,children:[(0,a.jsx)(`p`,{className:`text-sm font-medium truncate`,children:e.name}),e.size&&(0,a.jsx)(`p`,{className:t.cn(`text-xs`,i?`text-primary-foreground/70`:`text-muted-foreground`),children:u(e.size)})]})]})}function h({preview:e,onClick:n,isSent:r}){return(0,a.jsxs)(`button`,{type:`button`,onClick:n,className:t.cn(`flex flex-col rounded-lg overflow-hidden max-w-[280px] text-left transition-colors`,r?`bg-primary-foreground/10 hover:bg-primary-foreground/20`:`bg-background/50 hover:bg-background/80 border border-border`),children:[e.image&&(0,a.jsx)(`div`,{className:`relative h-32 w-full overflow-hidden`,children:(0,a.jsx)(`img`,{src:e.image,alt:``,className:`h-full w-full object-cover`})}),(0,a.jsxs)(`div`,{className:`p-3`,children:[(0,a.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[e.favicon&&(0,a.jsx)(`img`,{src:e.favicon,alt:``,className:`h-4 w-4`}),e.siteName&&(0,a.jsx)(`span`,{className:t.cn(`text-xs`,r?`text-primary-foreground/70`:`text-muted-foreground`),children:e.siteName})]}),(0,a.jsx)(`p`,{className:`text-sm font-medium line-clamp-2`,children:e.title}),e.description&&(0,a.jsx)(`p`,{className:t.cn(`text-xs mt-1 line-clamp-2`,r?`text-primary-foreground/70`:`text-muted-foreground`),children:e.description})]})]})}function g({onReply:e,onEdit:i,onDelete:o,onAddReaction:s,isSent:c,isOpen:l,onOpenChange:u}){let d=n.useRef(null);return n.useEffect(()=>{function e(e){d.current&&!d.current.contains(e.target)&&u(!1)}if(l)return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[l,u]),(0,a.jsxs)(`div`,{className:`relative`,ref:d,children:[(0,a.jsx)(`button`,{type:`button`,onClick:()=>u(!l),className:t.cn(`p-1.5 rounded-full transition-colors`,c?`hover:bg-primary-foreground/20 text-primary-foreground/70`:`hover:bg-muted text-muted-foreground`),children:(0,a.jsx)(r.MoreVertical,{className:`h-4 w-4`})}),l&&(0,a.jsxs)(`div`,{className:t.cn(`absolute z-50 min-w-[140px] rounded-lg border bg-popover p-1 shadow-lg animate-in fade-in-0 zoom-in-95`,c?`right-0`:`left-0`),children:[s&&(0,a.jsxs)(`button`,{type:`button`,onClick:()=>{s(),u(!1)},className:`flex items-center gap-2 w-full px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors`,children:[(0,a.jsx)(r.Smile,{className:`h-4 w-4`}),`React`]}),e&&(0,a.jsxs)(`button`,{type:`button`,onClick:()=>{e(),u(!1)},className:`flex items-center gap-2 w-full px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors`,children:[(0,a.jsx)(r.Reply,{className:`h-4 w-4`}),`Reply`]}),i&&c&&(0,a.jsxs)(`button`,{type:`button`,onClick:()=>{i(),u(!1)},className:`flex items-center gap-2 w-full px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors`,children:[(0,a.jsx)(r.Pencil,{className:`h-4 w-4`}),`Edit`]}),o&&c&&(0,a.jsxs)(`button`,{type:`button`,onClick:()=>{o(),u(!1)},className:`flex items-center gap-2 w-full px-3 py-2 text-sm rounded-md hover:bg-muted text-destructive transition-colors`,children:[(0,a.jsx)(r.Trash2,{className:`h-4 w-4`}),`Delete`]})]})]})}var _=n.forwardRef(({message:e,isSent:i=!1,sender:s,showAvatar:u=!0,timestamp:_,timestampFormat:v=`time`,status:y=`sent`,readReceipt:b,reactions:x=[],thread:S,isEdited:C=!1,attachments:w=[],linkPreview:T,markdown:E=!1,onAddReaction:D,onToggleReaction:O,onReply:k,onEdit:A,onDelete:j,onRetry:M,onThreadClick:N,onAttachmentClick:P,onLinkPreviewClick:F,showActions:I=!0,emojiPicker:L,quickReactions:R=[`thumbs_up`,`heart`,`laugh`,`wow`,`sad`,`angry`].map(e=>({thumbs_up:`👍`,heart:`❤️`,laugh:`😂`,wow:`😮`,sad:`😢`,angry:`😡`})[e]??`👍`),renderTimestamp:z,maxWidth:B,variant:V,className:H,...U},W)=>{let[G,K]=n.useState(!1),[q,J]=n.useState(!1),[Y,X]=n.useState(!1),[Z,Q]=n.useState(!1),$=l(e),ee=w.length>0,te=e=>E?e.split(/(`[^`]+`)/g).map((e,r)=>{if(e.startsWith("`")&&e.endsWith("`"))return(0,a.jsx)(`code`,{className:t.cn(`px-1.5 py-0.5 rounded text-sm font-mono`,i?`bg-primary-foreground/20`:`bg-muted-foreground/20`),children:e.slice(1,-1)},r);let o=e;return o=e.split(/(\*\*[^*]+\*\*)/g).map((e,t)=>e.startsWith(`**`)&&e.endsWith(`**`)?(0,a.jsx)(`strong`,{children:e.slice(2,-2)},t):e),(0,a.jsx)(n.Fragment,{children:o},r)}):e,ne=e=>{D?.(e),Q(!1)},re=e=>{D?.(e),X(!1)};return(0,a.jsxs)(`div`,{ref:W,className:t.cn(`group flex gap-2 px-2 py-1`,i?`flex-row-reverse`:`flex-row`,H),onMouseEnter:()=>K(!0),onMouseLeave:()=>{K(!1),Q(!1)},...U,children:[u&&!i&&(0,a.jsx)(d,{user:s,className:`mt-auto mb-1`}),(0,a.jsxs)(`div`,{className:t.cn(`flex flex-col`,i?`items-end`:`items-start`),style:{maxWidth:B??`85%`},children:[!i&&s?.name&&(0,a.jsx)(`span`,{className:`text-xs text-muted-foreground mb-1 ml-1`,children:s.name}),(0,a.jsxs)(`div`,{className:t.cn(`relative`,i?`flex flex-row-reverse`:`flex`),children:[I&&G&&(0,a.jsxs)(`div`,{className:t.cn(`flex items-center gap-0.5 mx-1 opacity-0 group-hover:opacity-100 transition-opacity`,i?`flex-row-reverse`:``),children:[D&&(0,a.jsxs)(`div`,{className:`relative`,children:[(0,a.jsx)(`button`,{type:`button`,onClick:()=>Q(!Z),className:`p-1.5 rounded-full hover:bg-muted text-muted-foreground transition-colors`,children:(0,a.jsx)(r.Smile,{className:`h-4 w-4`})}),Z&&(0,a.jsx)(`div`,{className:t.cn(`absolute z-50 flex gap-1 p-1.5 rounded-full bg-popover border shadow-lg animate-in fade-in-0 zoom-in-95`,i?`right-0`:`left-0`,`bottom-full mb-1`),children:R.map(e=>(0,a.jsx)(`button`,{type:`button`,onClick:()=>ne(e),className:`text-lg hover:scale-125 transition-transform p-1`,children:e},e))})]}),k&&(0,a.jsx)(`button`,{type:`button`,onClick:k,className:`p-1.5 rounded-full hover:bg-muted text-muted-foreground transition-colors`,children:(0,a.jsx)(r.Reply,{className:`h-4 w-4`})}),(A||j)&&(0,a.jsx)(g,{onReply:k,onEdit:A,onDelete:j,onAddReaction:D?()=>X(!0):void 0,isSent:i,isOpen:q,onOpenChange:J})]}),(0,a.jsxs)(`div`,{className:t.cn(o({variant:V,isSent:i}),$&&`bg-transparent px-2 py-1 text-4xl`,y===`failed`&&`opacity-70`),children:[ee&&(0,a.jsx)(`div`,{className:`space-y-2 mb-2`,children:w.map(e=>(0,a.jsx)(m,{attachment:e,onClick:()=>P?.(e),isSent:i},e.id))}),T&&(0,a.jsx)(`div`,{className:`mb-2`,children:(0,a.jsx)(h,{preview:T,onClick:()=>F?.(T.url),isSent:i})}),(0,a.jsx)(`p`,{className:t.cn(`whitespace-pre-wrap`,$&&`text-4xl leading-tight`),children:te(e)}),(0,a.jsxs)(`div`,{className:t.cn(`flex items-center gap-1.5 mt-1`,i?`justify-end`:`justify-start`),children:[C&&(0,a.jsx)(`span`,{className:t.cn(`text-[10px]`,i?`text-primary-foreground/60`:`text-muted-foreground`),children:`edited`}),_&&(0,a.jsx)(`span`,{className:t.cn(`text-[10px]`,i?`text-primary-foreground/60`:`text-muted-foreground`),children:z?z(_):c(_,v)}),i&&(0,a.jsx)(f,{status:y,readReceipt:b})]}),y===`failed`&&M&&(0,a.jsxs)(`button`,{type:`button`,onClick:M,className:t.cn(`flex items-center gap-1 mt-2 text-xs font-medium`,i?`text-primary-foreground/80`:`text-destructive`),children:[(0,a.jsx)(r.RefreshCw,{className:`h-3 w-3`}),`Tap to retry`]})]})]}),x.length>0&&(0,a.jsx)(`div`,{className:t.cn(`flex flex-wrap gap-1 mt-1`,i?`justify-end mr-2`:`justify-start ml-2`),children:x.map(e=>(0,a.jsx)(p,{reaction:e,onClick:()=>O?.(e.emoji),isSent:i},e.emoji))}),S&&S.count>0&&(0,a.jsxs)(`button`,{type:`button`,onClick:N,className:t.cn(`flex items-center gap-2 mt-1 px-2 py-1 rounded-lg text-xs transition-colors`,i?`hover:bg-primary/10 text-primary`:`hover:bg-muted text-muted-foreground`),children:[(0,a.jsx)(`div`,{className:`flex -space-x-1`,children:S.participants.slice(0,3).map(e=>(0,a.jsx)(d,{user:e,size:`sm`,className:`ring-2 ring-background`},e.id))}),(0,a.jsxs)(`span`,{children:[S.count,` `,S.count===1?`reply`:`replies`]}),S.lastReply&&(0,a.jsxs)(`span`,{className:`text-muted-foreground truncate max-w-[100px]`,children:[`- `,S.lastReply]})]})]}),Y&&L&&(0,a.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onClick:()=>X(!1),children:(0,a.jsxs)(`div`,{className:`bg-popover rounded-lg shadow-xl p-4`,onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,a.jsx)(`span`,{className:`text-sm font-medium`,children:`Add Reaction`}),(0,a.jsx)(`button`,{type:`button`,onClick:()=>X(!1),className:`p-1 rounded hover:bg-muted`,children:(0,a.jsx)(r.X,{className:`h-4 w-4`})})]}),L(re)]})})]})});_.displayName=`WakaChatBubble`;function v({users:e=[],showAvatar:n=!0,className:r,...i}){if(e.length===0)return null;let o=e.length===1?e[0].name:e.length===2?`${e[0].name} and ${e[1].name}`:`${e[0].name} and ${e.length-1} others`;return(0,a.jsxs)(`div`,{className:t.cn(`flex items-end gap-2 px-2 py-1`,r),...i,children:[n&&(0,a.jsx)(d,{user:e[0],className:`mb-1`}),(0,a.jsx)(`div`,{className:`bg-muted rounded-2xl rounded-bl-md px-4 py-3`,children:(0,a.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,a.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-muted-foreground/50 animate-bounce`,style:{animationDelay:`0ms`}}),(0,a.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-muted-foreground/50 animate-bounce`,style:{animationDelay:`150ms`}}),(0,a.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-muted-foreground/50 animate-bounce`,style:{animationDelay:`300ms`}})]})}),(0,a.jsxs)(`span`,{className:`text-xs text-muted-foreground ml-1`,children:[o,` `,e.length===1?`is`:`are`,` typing...`]})]})}function y({date:e,className:n,...r}){let i=typeof e==`string`?new Date(e):e,o=new Date,s=new Date(o);s.setDate(s.getDate()-1);let c;return c=i.toDateString()===o.toDateString()?`Today`:i.toDateString()===s.toDateString()?`Yesterday`:i.toLocaleDateString(void 0,{weekday:`long`,month:`long`,day:`numeric`}),(0,a.jsxs)(`div`,{className:t.cn(`flex items-center justify-center py-4`,n),...r,children:[(0,a.jsx)(`div`,{className:`flex-1 h-px bg-border`}),(0,a.jsx)(`span`,{className:`px-4 text-xs text-muted-foreground font-medium`,children:c}),(0,a.jsx)(`div`,{className:`flex-1 h-px bg-border`})]})}function b({message:e,icon:n,className:r,...i}){return(0,a.jsxs)(`div`,{className:t.cn(`flex items-center justify-center gap-2 py-2 text-xs text-muted-foreground`,r),...i,children:[n,(0,a.jsx)(`span`,{children:e})]})}exports.WakaChatBubble=_,exports.WakaChatDateSeparator=y,exports.WakaChatSystemMessage=b,exports.WakaChatTypingIndicator=v;
|
|
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("class-variance-authority"),a=require("react/jsx-runtime");var o=(0,i.cva)(`relative rounded-2xl px-4 py-2.5 max-w-[85%] break-words transition-all`,{variants:{variant:{default:``,minimal:`shadow-none`,elevated:`shadow-lg`},isSent:{true:`bg-primary text-primary-foreground ml-auto rounded-br-md`,false:`bg-muted text-foreground mr-auto rounded-bl-md`}},defaultVariants:{variant:`default`,isSent:!1}}),s=(0,i.cva)(`h-3.5 w-3.5`,{variants:{status:{sending:`text-muted-foreground animate-pulse`,sent:`text-muted-foreground`,delivered:`text-muted-foreground`,read:`text-blue-500`,failed:`text-destructive`}}});function c(e,t){let n=typeof e==`string`?new Date(e):e;if(t===`relative`){let e=new Date().getTime()-n.getTime(),t=Math.floor(e/6e4),r=Math.floor(e/36e5),i=Math.floor(e/864e5);return t<1?`Just now`:t<60?`${t}m ago`:r<24?`${r}h ago`:i<7?`${i}d ago`:n.toLocaleDateString()}return t===`datetime`?n.toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`}):n.toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`})}function l(e){let t=e.trim();return/^[\p{Emoji}\p{Emoji_Modifier}\p{Emoji_Component}\p{Emoji_Modifier_Base}\p{Emoji_Presentation}\s]+$/u.test(t)&&t.length<=12}function u(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`:``}function d({user:e,size:n=`default`,className:r}){return(0,a.jsx)(`div`,{className:t.cn(`flex-shrink-0 rounded-full overflow-hidden bg-muted flex items-center justify-center`,n===`sm`?`h-6 w-6 text-xs`:`h-8 w-8 text-sm`,r),children:e?.avatar?(0,a.jsx)(`img`,{src:e.avatar,alt:e.name,className:`h-full w-full object-cover`}):(0,a.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:e?.initials??e?.name?.slice(0,2).toUpperCase()??`?`})})}function f({status:e,readReceipt:n}){if(e===`sending`)return(0,a.jsx)(r.Clock,{className:t.cn(s({status:`sending`}))});if(e===`failed`)return(0,a.jsx)(r.AlertCircle,{className:t.cn(s({status:`failed`}))});let i=n??(e===`delivered`?`delivered`:`sent`);return i===`read`?(0,a.jsx)(r.CheckCheck,{className:t.cn(s({status:`read`}))}):i===`delivered`?(0,a.jsx)(r.CheckCheck,{className:t.cn(s({status:`delivered`}))}):(0,a.jsx)(r.Check,{className:t.cn(s({status:`sent`}))})}function p({reaction:e,onClick:n,isSent:r}){return(0,a.jsxs)(`button`,{type:`button`,onClick:n,className:t.cn(`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium transition-colors`,e.reacted?`bg-primary/20 text-primary border border-primary/30`:r?`bg-primary-foreground/20 text-primary-foreground/80 hover:bg-primary-foreground/30`:`bg-background border border-border hover:bg-muted`),children:[(0,a.jsx)(`span`,{children:e.emoji}),(0,a.jsx)(`span`,{children:e.count})]})}function m({attachment:e,onClick:n,isSent:i}){return e.type===`image`?(0,a.jsx)(`button`,{type:`button`,onClick:n,className:`relative rounded-lg overflow-hidden max-w-[280px] cursor-pointer hover:opacity-90 transition-opacity`,children:(0,a.jsx)(`img`,{src:e.thumbnail??e.url,alt:e.name,className:`max-h-[200px] object-cover`,style:{width:e.width?Math.min(e.width,280):`auto`}})}):(0,a.jsxs)(`button`,{type:`button`,onClick:n,className:t.cn(`flex items-center gap-3 p-3 rounded-lg transition-colors max-w-[280px]`,i?`bg-primary-foreground/10 hover:bg-primary-foreground/20`:`bg-background/50 hover:bg-background/80`),children:[(0,a.jsx)(`div`,{className:t.cn(`flex-shrink-0 h-10 w-10 rounded-lg flex items-center justify-center`,i?`bg-primary-foreground/20`:`bg-muted`),children:e.type===`video`?(0,a.jsx)(r.Image,{className:`h-5 w-5`}):(0,a.jsx)(r.FileText,{className:`h-5 w-5`})}),(0,a.jsxs)(`div`,{className:`min-w-0 flex-1 text-left`,children:[(0,a.jsx)(`p`,{className:`text-sm font-medium truncate`,children:e.name}),e.size&&(0,a.jsx)(`p`,{className:t.cn(`text-xs`,i?`text-primary-foreground/70`:`text-muted-foreground`),children:u(e.size)})]})]})}function h({preview:e,onClick:n,isSent:r}){return(0,a.jsxs)(`button`,{type:`button`,onClick:n,className:t.cn(`flex flex-col rounded-lg overflow-hidden max-w-[280px] text-left transition-colors`,r?`bg-primary-foreground/10 hover:bg-primary-foreground/20`:`bg-background/50 hover:bg-background/80 border border-border`),children:[e.image&&(0,a.jsx)(`div`,{className:`relative h-32 w-full overflow-hidden`,children:(0,a.jsx)(`img`,{src:e.image,alt:``,className:`h-full w-full object-cover`})}),(0,a.jsxs)(`div`,{className:`p-3`,children:[(0,a.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[e.favicon&&(0,a.jsx)(`img`,{src:e.favicon,alt:``,className:`h-4 w-4`}),e.siteName&&(0,a.jsx)(`span`,{className:t.cn(`text-xs`,r?`text-primary-foreground/70`:`text-muted-foreground`),children:e.siteName})]}),(0,a.jsx)(`p`,{className:`text-sm font-medium line-clamp-2`,children:e.title}),e.description&&(0,a.jsx)(`p`,{className:t.cn(`text-xs mt-1 line-clamp-2`,r?`text-primary-foreground/70`:`text-muted-foreground`),children:e.description})]})]})}function g({onReply:e,onEdit:i,onDelete:o,onAddReaction:s,isSent:c,isOpen:l,onOpenChange:u}){let d=n.useRef(null);return n.useEffect(()=>{function e(e){d.current&&!d.current.contains(e.target)&&u(!1)}if(l)return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[l,u]),(0,a.jsxs)(`div`,{className:`relative`,ref:d,children:[(0,a.jsx)(`button`,{type:`button`,onClick:()=>u(!l),className:t.cn(`p-1.5 rounded-full transition-colors`,c?`hover:bg-primary-foreground/20 text-primary-foreground/70`:`hover:bg-muted text-muted-foreground`),children:(0,a.jsx)(r.MoreVertical,{className:`h-4 w-4`})}),l&&(0,a.jsxs)(`div`,{className:t.cn(`absolute z-50 min-w-[140px] rounded-lg border bg-popover p-1 shadow-lg animate-in fade-in-0 zoom-in-95`,c?`right-0`:`left-0`),children:[s&&(0,a.jsxs)(`button`,{type:`button`,onClick:()=>{s(),u(!1)},className:`flex items-center gap-2 w-full px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors`,children:[(0,a.jsx)(r.Smile,{className:`h-4 w-4`}),`React`]}),e&&(0,a.jsxs)(`button`,{type:`button`,onClick:()=>{e(),u(!1)},className:`flex items-center gap-2 w-full px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors`,children:[(0,a.jsx)(r.Reply,{className:`h-4 w-4`}),`Reply`]}),i&&c&&(0,a.jsxs)(`button`,{type:`button`,onClick:()=>{i(),u(!1)},className:`flex items-center gap-2 w-full px-3 py-2 text-sm rounded-md hover:bg-muted transition-colors`,children:[(0,a.jsx)(r.Pencil,{className:`h-4 w-4`}),`Edit`]}),o&&c&&(0,a.jsxs)(`button`,{type:`button`,onClick:()=>{o(),u(!1)},className:`flex items-center gap-2 w-full px-3 py-2 text-sm rounded-md hover:bg-muted text-destructive transition-colors`,children:[(0,a.jsx)(r.Trash2,{className:`h-4 w-4`}),`Delete`]})]})]})}var _=n.forwardRef(({message:e,isSent:i=!1,sender:s,showAvatar:u=!0,timestamp:_,timestampFormat:v=`time`,status:y=`sent`,readReceipt:b,reactions:x=[],thread:S,isEdited:C=!1,attachments:w=[],linkPreview:T,markdown:E=!1,onAddReaction:D,onToggleReaction:O,onReply:k,onEdit:A,onDelete:j,onRetry:M,onThreadClick:N,onAttachmentClick:P,onLinkPreviewClick:F,showActions:I=!0,emojiPicker:L,quickReactions:R=[`thumbs_up`,`heart`,`laugh`,`wow`,`sad`,`angry`].map(e=>({thumbs_up:`👍`,heart:`❤️`,laugh:`😂`,wow:`😮`,sad:`😢`,angry:`😡`})[e]??`👍`),renderTimestamp:z,maxWidth:B,variant:V,className:H,...U},W)=>{let[G,K]=n.useState(!1),[q,J]=n.useState(!1),[Y,X]=n.useState(!1),[Z,Q]=n.useState(!1),$=l(e),ee=w.length>0,te=e=>E?e.split(/(`[^`]+`)/g).map((e,r)=>{if(e.startsWith("`")&&e.endsWith("`"))return(0,a.jsx)(`code`,{className:t.cn(`px-1.5 py-0.5 rounded text-sm font-mono`,i?`bg-primary-foreground/20`:`bg-muted-foreground/20`),children:e.slice(1,-1)},r);let o=e;return o=e.split(/(\*\*[^*]+\*\*)/g).map((e,t)=>e.startsWith(`**`)&&e.endsWith(`**`)?(0,a.jsx)(`strong`,{children:e.slice(2,-2)},t):e),(0,a.jsx)(n.Fragment,{children:o},r)}):e,ne=e=>{D?.(e),Q(!1)},re=e=>{D?.(e),X(!1)};return(0,a.jsxs)(`div`,{ref:W,className:t.cn(`group flex gap-2 px-2 py-1`,i?`flex-row-reverse`:`flex-row`,H),onMouseEnter:()=>K(!0),onMouseLeave:()=>{K(!1),Q(!1)},...U,children:[u&&!i&&(0,a.jsx)(d,{user:s,className:`mt-auto mb-1`}),(0,a.jsxs)(`div`,{className:t.cn(`flex flex-col`,i?`items-end`:`items-start`),style:{maxWidth:B??`85%`},children:[!i&&s?.name&&(0,a.jsx)(`span`,{className:`text-xs text-muted-foreground mb-1 ml-1`,children:s.name}),(0,a.jsxs)(`div`,{className:t.cn(`relative`,i?`flex flex-row-reverse`:`flex`),children:[I&&G&&(0,a.jsxs)(`div`,{className:t.cn(`flex items-center gap-0.5 mx-1 opacity-0 group-hover:opacity-100 transition-opacity`,i?`flex-row-reverse`:``),children:[D&&(0,a.jsxs)(`div`,{className:`relative`,children:[(0,a.jsx)(`button`,{type:`button`,onClick:()=>Q(!Z),className:`p-1.5 rounded-full hover:bg-muted text-muted-foreground transition-colors`,children:(0,a.jsx)(r.Smile,{className:`h-4 w-4`})}),Z&&(0,a.jsx)(`div`,{className:t.cn(`absolute z-50 flex gap-1 p-1.5 rounded-full bg-popover border shadow-lg animate-in fade-in-0 zoom-in-95`,i?`right-0`:`left-0`,`bottom-full mb-1`),children:R.map(e=>(0,a.jsx)(`button`,{type:`button`,onClick:()=>ne(e),className:`text-lg hover:scale-125 transition-transform p-1`,children:e},e))})]}),k&&(0,a.jsx)(`button`,{type:`button`,onClick:k,className:`p-1.5 rounded-full hover:bg-muted text-muted-foreground transition-colors`,children:(0,a.jsx)(r.Reply,{className:`h-4 w-4`})}),(A||j)&&(0,a.jsx)(g,{onReply:k,onEdit:A,onDelete:j,onAddReaction:D?()=>X(!0):void 0,isSent:i,isOpen:q,onOpenChange:J})]}),(0,a.jsxs)(`div`,{className:t.cn(o({variant:V,isSent:i}),$&&`bg-transparent px-2 py-1 text-4xl`,y===`failed`&&`opacity-70`),children:[ee&&(0,a.jsx)(`div`,{className:`space-y-2 mb-2`,children:w.map(e=>(0,a.jsx)(m,{attachment:e,onClick:()=>P?.(e),isSent:i},e.id))}),T&&(0,a.jsx)(`div`,{className:`mb-2`,children:(0,a.jsx)(h,{preview:T,onClick:()=>F?.(T.url),isSent:i})}),(0,a.jsx)(`p`,{className:t.cn(`whitespace-pre-wrap`,$&&`text-4xl leading-tight`),children:te(e)}),(0,a.jsxs)(`div`,{className:t.cn(`flex items-center gap-1.5 mt-1`,i?`justify-end`:`justify-start`),children:[C&&(0,a.jsx)(`span`,{className:t.cn(`text-[10px]`,i?`text-primary-foreground/60`:`text-muted-foreground`),children:`edited`}),_&&(0,a.jsx)(`span`,{className:t.cn(`text-[10px]`,i?`text-primary-foreground/60`:`text-muted-foreground`),children:z?z(_):c(_,v)}),i&&(0,a.jsx)(f,{status:y,readReceipt:b})]}),y===`failed`&&M&&(0,a.jsxs)(`button`,{type:`button`,onClick:M,className:t.cn(`flex items-center gap-1 mt-2 text-xs font-medium`,i?`text-primary-foreground/80`:`text-destructive`),children:[(0,a.jsx)(r.RefreshCw,{className:`h-3 w-3`}),`Tap to retry`]})]})]}),x.length>0&&(0,a.jsx)(`div`,{className:t.cn(`flex flex-wrap gap-1 mt-1`,i?`justify-end mr-2`:`justify-start ml-2`),children:x.map(e=>(0,a.jsx)(p,{reaction:e,onClick:()=>O?.(e.emoji),isSent:i},e.emoji))}),S&&S.count>0&&(0,a.jsxs)(`button`,{type:`button`,onClick:N,className:t.cn(`flex items-center gap-2 mt-1 px-2 py-1 rounded-lg text-xs transition-colors`,i?`hover:bg-primary/10 text-primary`:`hover:bg-muted text-muted-foreground`),children:[(0,a.jsx)(`div`,{className:`flex -space-x-1`,children:S.participants.slice(0,3).map(e=>(0,a.jsx)(d,{user:e,size:`sm`,className:`ring-2 ring-background`},e.id))}),(0,a.jsxs)(`span`,{children:[S.count,` `,S.count===1?`reply`:`replies`]}),S.lastReply&&(0,a.jsxs)(`span`,{className:`text-muted-foreground truncate max-w-[100px]`,children:[`- `,S.lastReply]})]})]}),Y&&L&&(0,a.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,onClick:()=>X(!1),children:(0,a.jsxs)(`div`,{className:`bg-popover rounded-lg shadow-xl p-4`,onClick:e=>e.stopPropagation(),children:[(0,a.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,a.jsx)(`span`,{className:`text-sm font-medium`,children:`Add Reaction`}),(0,a.jsx)(`button`,{type:`button`,onClick:()=>X(!1),className:`p-1 rounded hover:bg-muted`,children:(0,a.jsx)(r.X,{className:`h-4 w-4`})})]}),L(re)]})})]})});_.displayName=`WakaChatBubble`;function v({users:e=[],showAvatar:n=!0,className:r,...i}){if(e.length===0)return null;let o=e.length===1?e[0].name:e.length===2?`${e[0].name} and ${e[1].name}`:`${e[0].name} and ${e.length-1} others`;return(0,a.jsxs)(`div`,{className:t.cn(`flex items-end gap-2 px-2 py-1`,r),...i,children:[n&&(0,a.jsx)(d,{user:e[0],className:`mb-1`}),(0,a.jsx)(`div`,{className:`bg-muted rounded-2xl rounded-bl-md px-4 py-3`,children:(0,a.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,a.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-muted-foreground/50 animate-bounce`,style:{animationDelay:`0ms`}}),(0,a.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-muted-foreground/50 animate-bounce`,style:{animationDelay:`150ms`}}),(0,a.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-muted-foreground/50 animate-bounce`,style:{animationDelay:`300ms`}})]})}),(0,a.jsxs)(`span`,{className:`text-xs text-muted-foreground ml-1`,children:[o,` `,e.length===1?`is`:`are`,` typing...`]})]})}function y({date:e,className:n,...r}){let i=typeof e==`string`?new Date(e):e,o=new Date,s=new Date(o);s.setDate(s.getDate()-1);let c;return c=i.toDateString()===o.toDateString()?`Today`:i.toDateString()===s.toDateString()?`Yesterday`:i.toLocaleDateString(void 0,{weekday:`long`,month:`long`,day:`numeric`}),(0,a.jsxs)(`div`,{className:t.cn(`flex items-center justify-center py-4`,n),...r,children:[(0,a.jsx)(`div`,{className:`flex-1 h-px bg-border`}),(0,a.jsx)(`span`,{className:`px-4 text-xs text-muted-foreground font-medium`,children:c}),(0,a.jsx)(`div`,{className:`flex-1 h-px bg-border`})]})}function b({message:e,icon:n,className:r,...i}){return(0,a.jsxs)(`div`,{className:t.cn(`flex items-center justify-center gap-2 py-2 text-xs text-muted-foreground`,r),...i,children:[n,(0,a.jsx)(`span`,{children:e})]})}exports.WakaChatBubble=_,exports.WakaChatDateSeparator=y,exports.WakaChatSystemMessage=b,exports.WakaChatTypingIndicator=v;
|
|
@@ -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=`waka-checklist-`;function o(e){return`${a}${e}`}function s(e){if(typeof window>`u`)return null;try{let t=localStorage.getItem(o(e));if(t){let e=JSON.parse(t);return{...e,expandedTasks:new Set(e.expandedTasks||[])}}}catch{}return null}function c(e,t){if(!(typeof window>`u`))try{localStorage.setItem(o(e),JSON.stringify({...t,expandedTasks:Array.from(t.expandedTasks)}))}catch{}}function l({checklistId:e,tasks:t,persistent:r=!0,defaultCollapsed:i=!1,onComplete:a,onTaskChange:l}){let[u,d]=n.useState(()=>{let t=r?s(e):null;return{tasks:t?.tasks||{},collapsed:t?.collapsed??i,expandedTasks:t?.expandedTasks||new Set}}),f=n.useRef(!1),p=u.tasks,m=Object.values(p).filter(e=>e===`completed`).length,h=Object.values(p).filter(e=>e===`skipped`).length,g=t.length,_=t.filter(e=>e.required!==!1),v=_.filter(e=>p[e.id]===`completed`).length,y=_.filter(e=>p[e.id]===`skipped`).length,b=_.length===0||v+y>=_.length,x=g>0?m/g*100:0;n.useEffect(()=>{r&&c(e,u)},[e,r,u]),n.useEffect(()=>{b&&!f.current&&m>0&&a?.(),f.current=b},[b,m,a]);let S=n.useCallback(e=>{d(t=>({...t,tasks:{...t.tasks,[e]:`completed`}})),l?.(e,`completed`)},[l]),C=n.useCallback(e=>{d(t=>({...t,tasks:{...t.tasks,[e]:`skipped`}})),l?.(e,`skipped`)},[l]),w=n.useCallback(e=>{d(t=>{let n={...t.tasks};return delete n[e],{...t,tasks:n}}),l?.(e,`pending`)},[l]),T=n.useCallback(e=>{d(t=>{let n=new Set(t.expandedTasks);return n.has(e)?n.delete(e):n.add(e),{...t,expandedTasks:n}})},[]),E=n.useCallback(()=>{d(e=>({...e,collapsed:!e.collapsed}))},[]),D=n.useCallback(()=>{d({tasks:{},collapsed:i,expandedTasks:new Set}),r&&localStorage.removeItem(o(e))},[e,i,r]),O=n.useCallback(e=>p[e]||`pending`,[p]);return{taskStates:p,isCollapsed:u.collapsed,expandedTasks:u.expandedTasks,completeTask:S,skipTask:C,resetTask:w,toggleTaskExpanded:T,toggleCollapsed:E,resetChecklist:D,progress:x,completedCount:m,skippedCount:h,totalCount:g,isComplete:b,getTaskStatus:O}}function u({active:e,onComplete:t}){let[a,o]=n.useState(!1);if(n.useEffect(()=>{if(e){o(!0);let e=setTimeout(()=>{o(!1),t?.()},4e3);return()=>clearTimeout(e)}},[e,t]),!a)return null;let s=[`#fbbf24`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#06b6d4`,`#22c55e`,`#ec4899`];return(0,i.jsxs)(`div`,{className:`pointer-events-none fixed inset-0 z-50 overflow-hidden`,children:[[...Array(80)].map((e,t)=>{let n=t/80*360,r=150+Math.random()*250,a=6+Math.random()*10,o=1.2+Math.random()*.6;return(0,i.jsx)(`div`,{className:`absolute left-1/2 top-1/2 animate-confetti`,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()*.3}s`}},t)}),(0,i.jsx)(`div`,{className:`absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 animate-celebration-popup`,children:(0,i.jsxs)(`div`,{className:`flex flex-col items-center gap-4 rounded-2xl bg-gradient-to-br from-yellow-400 via-orange-500 to-pink-500 px-12 py-8 text-white shadow-2xl`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,i.jsx)(r.PartyPopper,{className:`h-10 w-10 animate-bounce`}),(0,i.jsx)(r.Trophy,{className:`h-12 w-12 animate-pulse`}),(0,i.jsx)(r.PartyPopper,{className:`h-10 w-10 animate-bounce`})]}),(0,i.jsxs)(`div`,{className:`text-center`,children:[(0,i.jsx)(`h3`,{className:`text-3xl font-bold`,children:`All Done!`}),(0,i.jsx)(`p`,{className:`mt-1 text-lg opacity-90`,children:`You completed all the tasks`})]}),(0,i.jsx)(r.Gift,{className:`h-8 w-8 animate-bounce`})]})}),[...Array(20)].map((e,t)=>(0,i.jsx)(r.Sparkles,{className:`absolute animate-sparkle text-yellow-400`,style:{left:`${Math.random()*100}%`,top:`${Math.random()*100}%`,animationDelay:`${Math.random()*2}s`,fontSize:`${20+Math.random()*20}px`}},`sparkle-${t}`)),(0,i.jsx)(`style`,{children:`
|
|
2
2
|
@keyframes confetti {
|
|
3
3
|
0% {
|
|
4
4
|
transform: translate(-50%, -50%) rotate(var(--angle)) translateX(0) scale(1);
|
|
@@ -37,4 +37,4 @@
|
|
|
37
37
|
.animate-progress-shine {
|
|
38
38
|
animation: progress-shine 2s ease-in-out infinite;
|
|
39
39
|
}
|
|
40
|
-
`})]})}function f({task:e,status:n,isExpanded:a,onToggleExpand:o,onComplete:s,onSkip:c,onReset:l,size:u=`default`}){let d=n===`completed`,f=n===`skipped`,p=n===`pending`,m={sm:{container:`px-3 py-2`,icon:`h-4 w-4`,checkIcon:`h-3 w-3`,title:`text-sm`,description:`text-xs`,button:`px-2 py-1 text-xs`},default:{container:`px-4 py-3`,icon:`h-5 w-5`,checkIcon:`h-3.5 w-3.5`,title:`text-base`,description:`text-sm`,button:`px-3 py-1.5 text-sm`},lg:{container:`px-5 py-4`,icon:`h-6 w-6`,checkIcon:`h-4 w-4`,title:`text-lg`,description:`text-base`,button:`px-4 py-2 text-base`}}[u];return(0,i.jsxs)(`div`,{className:t.cn(`group rounded-lg border transition-all duration-200`,d&&`border-green-200 bg-green-50 dark:border-green-900 dark:bg-green-950/30`,f&&`border-muted bg-muted/30 opacity-60`,p&&`border-border bg-card hover:border-primary/50 hover:shadow-sm`),children:[(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-3`,m.container),children:[(0,i.jsxs)(`button`,{type:`button`,onClick:p?s:l,className:t.cn(`flex-shrink-0 rounded-full border-2 transition-all duration-200`,m.icon,`flex items-center justify-center`,d&&`border-green-500 bg-green-500 text-white`,f&&`border-muted-foreground/30 bg-muted`,p&&`border-muted-foreground/30 hover:border-primary hover:bg-primary/10`),"aria-label":p?`Complete task`:`Reset task`,children:[d&&(0,i.jsx)(r.Check,{className:m.checkIcon}),f&&(0,i.jsx)(r.X,{className:t.cn(m.checkIcon,`text-muted-foreground`)})]}),(0,i.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon&&(0,i.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,i.jsx)(`span`,{className:t.cn(`font-medium transition-all duration-200`,m.title,d&&`text-green-700 line-through dark:text-green-400`,f&&`text-muted-foreground line-through`),children:e.title}),e.required===!1&&(0,i.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`(optional)`}),e.points&&p&&(0,i.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 rounded-full bg-yellow-100 px-2 py-0.5 text-xs font-medium text-yellow-700 dark:bg-yellow-900/50 dark:text-yellow-400`,children:[`+`,e.points]})]})}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p&&e.skippable&&(0,i.jsx)(`button`,{type:`button`,onClick:c,className:`text-xs text-muted-foreground hover:text-foreground transition-colors`,children:`Skip`}),p&&e.actionLabel&&e.onAction&&(0,i.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),e.onAction?.()},className:t.cn(`rounded-md bg-primary text-primary-foreground font-medium transition-colors hover:bg-primary/90`,m.button),children:e.actionLabel}),e.description&&(0,i.jsx)(`button`,{type:`button`,onClick:o,className:`rounded-md p-1 text-muted-foreground hover:bg-muted hover:text-foreground transition-colors`,"aria-label":a?`Collapse details`:`Expand details`,children:a?(0,i.jsx)(r.ChevronDown,{className:m.icon}):(0,i.jsx)(r.ChevronRight,{className:m.icon})})]})]}),e.description&&(0,i.jsx)(`div`,{className:t.cn(`overflow-hidden transition-all duration-200`,a?`max-h-40 opacity-100`:`max-h-0 opacity-0`),children:(0,i.jsx)(`div`,{className:t.cn(`border-t pt-2 pb-3 px-4 ml-8`,m.description,`text-muted-foreground`),children:e.description})})]})}function p({category:e,tasks:t,taskStates:a,expandedTasks:o,onCompleteTask:s,onSkipTask:c,onResetTask:l,onToggleTaskExpanded:u,size:d=`default`}){let[p,m]=n.useState(!0),h=t.filter(e=>a[e.id]===`completed`).length,g=t.length;return(0,i.jsxs)(`div`,{className:`space-y-2`,children:[(0,i.jsxs)(`button`,{type:`button`,onClick:()=>m(e=>!e),className:`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 hover:bg-muted/50 transition-colors`,children:[p?(0,i.jsx)(r.ChevronDown,{className:`h-4 w-4 text-muted-foreground`}):(0,i.jsx)(r.ChevronRight,{className:`h-4 w-4 text-muted-foreground`}),e.icon&&(0,i.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,i.jsx)(`span`,{className:`font-medium`,children:e.label}),(0,i.jsxs)(`span`,{className:`ml-auto text-sm text-muted-foreground`,children:[h,`/`,g]})]}),p&&(0,i.jsx)(`div`,{className:`ml-4 space-y-2`,children:t.map(e=>(0,i.jsx)(f,{task:e,status:a[e.id]||`pending`,isExpanded:o.has(e.id),onToggleExpand:()=>u(e.id),onComplete:()=>s(e.id),onSkip:()=>c(e.id),onReset:()=>l(e.id),size:d},e.id))})]})}function m({checklistId:e,tasks:a,categories:o,title:s=`Getting Started`,subtitle:c,showProgress:m=!0,showPercentage:h=!0,persistent:g=!0,showCelebration:_=!0,onComplete:v,onTaskChange:y,defaultCollapsed:b=!1,collapsible:x=!0,size:S=`default`,className:C}){let[w,T]=n.useState(!1),E=n.useRef(!1),D=l({checklistId:e,tasks:a,persistent:g,defaultCollapsed:b,onComplete:()=>{_&&T(!0),v?.()},onTaskChange:y});n.useEffect(()=>{D.isComplete&&!E.current&&D.completedCount>0&&_&&T(!0),E.current=D.isComplete},[D.isComplete,D.completedCount,_]);let O=n.useMemo(()=>{if(!o||o.length===0)return null;let e={},t=[];for(let n of a)n.category&&o.find(e=>e.id===n.category)?(e[n.category]||(e[n.category]=[]),e[n.category].push(n)):t.push(n);return{groups:e,uncategorized:t}},[a,o]),k={sm:{container:`p-3`,header:`gap-2`,title:`text-base`,subtitle:`text-xs`},default:{container:`p-4`,header:`gap-3`,title:`text-lg`,subtitle:`text-sm`},lg:{container:`p-6`,header:`gap-4`,title:`text-xl`,subtitle:`text-base`}}[S];return(0,i.jsxs)(`div`,{className:t.cn(`rounded-xl border bg-card shadow-sm`,k.container,C),children:[(0,i.jsx)(u,{active:w,onComplete:()=>T(!1)}),(0,i.jsxs)(`div`,{className:t.cn(`flex items-start justify-between`,k.header),children:[(0,i.jsxs)(`div`,{className:`flex-1`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[x&&(0,i.jsx)(`button`,{type:`button`,onClick:D.toggleCollapsed,className:`rounded-md p-1 hover:bg-muted transition-colors`,"aria-label":D.isCollapsed?`Expand checklist`:`Collapse checklist`,children:D.isCollapsed?(0,i.jsx)(r.ChevronRight,{className:`h-5 w-5`}):(0,i.jsx)(r.ChevronDown,{className:`h-5 w-5`})}),(0,i.jsx)(`h2`,{className:t.cn(`font-semibold`,k.title),children:s}),D.isComplete&&(0,i.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-green-100 px-2 py-0.5 text-xs font-medium text-green-700 dark:bg-green-900/50 dark:text-green-400`,children:[(0,i.jsx)(r.Check,{className:`h-3 w-3`}),`Complete`]})]}),c&&!D.isCollapsed&&(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground mt-1`,k.subtitle),children:c})]}),(0,i.jsxs)(`div`,{className:`text-right text-sm text-muted-foreground`,children:[(0,i.jsx)(`span`,{className:`font-medium text-foreground`,children:D.completedCount}),`/`,D.totalCount,` tasks`]})]}),m&&!D.isCollapsed&&(0,i.jsx)(`div`,{className:`mt-3`,children:(0,i.jsx)(d,{progress:D.progress,showPercentage:h,size:S})}),!D.isCollapsed&&(0,i.jsx)(`div`,{className:`mt-4 space-y-3`,children:O?(0,i.jsxs)(i.Fragment,{children:[o?.map(e=>{let t=O.groups[e.id]||[];return t.length===0?null:(0,i.jsx)(p,{category:e,tasks:t,taskStates:D.taskStates,expandedTasks:D.expandedTasks,onCompleteTask:D.completeTask,onSkipTask:D.skipTask,onResetTask:D.resetTask,onToggleTaskExpanded:D.toggleTaskExpanded,size:S},e.id)}),O.uncategorized.length>0&&(0,i.jsx)(`div`,{className:`space-y-2`,children:O.uncategorized.map(e=>(0,i.jsx)(f,{task:e,status:D.getTaskStatus(e.id),isExpanded:D.expandedTasks.has(e.id),onToggleExpand:()=>D.toggleTaskExpanded(e.id),onComplete:()=>D.completeTask(e.id),onSkip:()=>D.skipTask(e.id),onReset:()=>D.resetTask(e.id),size:S},e.id))})]}):(0,i.jsx)(`div`,{className:`space-y-2`,children:a.map(e=>(0,i.jsx)(f,{task:e,status:D.getTaskStatus(e.id),isExpanded:D.expandedTasks.has(e.id),onToggleExpand:()=>D.toggleTaskExpanded(e.id),onComplete:()=>D.completeTask(e.id),onSkip:()=>D.skipTask(e.id),onReset:()=>D.resetTask(e.id),size:S},e.id))})}),D.isComplete&&!D.isCollapsed&&(0,i.jsx)(`div`,{className:`mt-4 rounded-lg bg-gradient-to-r from-green-50 to-emerald-50 p-4 dark:from-green-950/30 dark:to-emerald-950/30`,children:(0,i.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,i.jsx)(`div`,{className:`rounded-full bg-green-500 p-2 text-white`,children:(0,i.jsx)(r.Trophy,{className:`h-5 w-5`})}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`p`,{className:`font-medium text-green-700 dark:text-green-400`,children:`Great job!`}),(0,i.jsx)(`p`,{className:`text-sm text-green-600 dark:text-green-500`,children:`You have completed the onboarding checklist`})]}),(0,i.jsx)(r.Gift,{className:`ml-auto h-8 w-8 text-green-500`})]})})]})}exports.default=m,exports.useChecklist=l;
|
|
40
|
+
`})]})}function f({task:e,status:n,isExpanded:a,onToggleExpand:o,onComplete:s,onSkip:c,onReset:l,size:u=`default`}){let d=n===`completed`,f=n===`skipped`,p=n===`pending`,m={sm:{container:`px-3 py-2`,icon:`h-4 w-4`,checkIcon:`h-3 w-3`,title:`text-sm`,description:`text-xs`,button:`px-2 py-1 text-xs`},default:{container:`px-4 py-3`,icon:`h-5 w-5`,checkIcon:`h-3.5 w-3.5`,title:`text-base`,description:`text-sm`,button:`px-3 py-1.5 text-sm`},lg:{container:`px-5 py-4`,icon:`h-6 w-6`,checkIcon:`h-4 w-4`,title:`text-lg`,description:`text-base`,button:`px-4 py-2 text-base`}}[u];return(0,i.jsxs)(`div`,{className:t.cn(`group rounded-lg border transition-all duration-200`,d&&`border-green-200 bg-green-50 dark:border-green-900 dark:bg-green-950/30`,f&&`border-muted bg-muted/30 opacity-60`,p&&`border-border bg-card hover:border-primary/50 hover:shadow-sm`),children:[(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-3`,m.container),children:[(0,i.jsxs)(`button`,{type:`button`,onClick:p?s:l,className:t.cn(`flex-shrink-0 rounded-full border-2 transition-all duration-200`,m.icon,`flex items-center justify-center`,d&&`border-green-500 bg-green-500 text-white`,f&&`border-muted-foreground/30 bg-muted`,p&&`border-muted-foreground/30 hover:border-primary hover:bg-primary/10`),"aria-label":p?`Complete task`:`Reset task`,children:[d&&(0,i.jsx)(r.Check,{className:m.checkIcon}),f&&(0,i.jsx)(r.X,{className:t.cn(m.checkIcon,`text-muted-foreground`)})]}),(0,i.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon&&(0,i.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,i.jsx)(`span`,{className:t.cn(`font-medium transition-all duration-200`,m.title,d&&`text-green-700 line-through dark:text-green-400`,f&&`text-muted-foreground line-through`),children:e.title}),e.required===!1&&(0,i.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`(optional)`}),e.points&&p&&(0,i.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 rounded-full bg-yellow-100 px-2 py-0.5 text-xs font-medium text-yellow-700 dark:bg-yellow-900/50 dark:text-yellow-400`,children:[`+`,e.points]})]})}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p&&e.skippable&&(0,i.jsx)(`button`,{type:`button`,onClick:c,className:`text-xs text-muted-foreground hover:text-foreground transition-colors`,children:`Skip`}),p&&e.actionLabel&&e.onAction&&(0,i.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),e.onAction?.()},className:t.cn(`rounded-md bg-primary text-primary-foreground font-medium transition-colors hover:bg-primary/90`,m.button),children:e.actionLabel}),e.description&&(0,i.jsx)(`button`,{type:`button`,onClick:o,className:`rounded-md p-1 text-muted-foreground hover:bg-muted hover:text-foreground transition-colors`,"aria-label":a?`Collapse details`:`Expand details`,children:a?(0,i.jsx)(r.ChevronDown,{className:m.icon}):(0,i.jsx)(r.ChevronRight,{className:m.icon})})]})]}),e.description&&(0,i.jsx)(`div`,{className:t.cn(`overflow-hidden transition-all duration-200`,a?`max-h-40 opacity-100`:`max-h-0 opacity-0`),children:(0,i.jsx)(`div`,{className:t.cn(`border-t pt-2 pb-3 px-4 ml-8`,m.description,`text-muted-foreground`),children:e.description})})]})}function p({category:e,tasks:t,taskStates:a,expandedTasks:o,onCompleteTask:s,onSkipTask:c,onResetTask:l,onToggleTaskExpanded:u,size:d=`default`}){let[p,m]=n.useState(!0),h=t.filter(e=>a[e.id]===`completed`).length,g=t.length;return(0,i.jsxs)(`div`,{className:`space-y-2`,children:[(0,i.jsxs)(`button`,{type:`button`,onClick:()=>m(e=>!e),className:`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 hover:bg-muted/50 transition-colors`,children:[p?(0,i.jsx)(r.ChevronDown,{className:`h-4 w-4 text-muted-foreground`}):(0,i.jsx)(r.ChevronRight,{className:`h-4 w-4 text-muted-foreground`}),e.icon&&(0,i.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,i.jsx)(`span`,{className:`font-medium`,children:e.label}),(0,i.jsxs)(`span`,{className:`ml-auto text-sm text-muted-foreground`,children:[h,`/`,g]})]}),p&&(0,i.jsx)(`div`,{className:`ml-4 space-y-2`,children:t.map(e=>(0,i.jsx)(f,{task:e,status:a[e.id]||`pending`,isExpanded:o.has(e.id),onToggleExpand:()=>u(e.id),onComplete:()=>s(e.id),onSkip:()=>c(e.id),onReset:()=>l(e.id),size:d},e.id))})]})}function m({checklistId:e,tasks:a,categories:o,title:s=`Getting Started`,subtitle:c,showProgress:m=!0,showPercentage:h=!0,persistent:g=!0,showCelebration:_=!0,onComplete:v,onTaskChange:y,defaultCollapsed:b=!1,collapsible:x=!0,size:S=`default`,className:C}){let[w,T]=n.useState(!1),E=n.useRef(!1),D=l({checklistId:e,tasks:a,persistent:g,defaultCollapsed:b,onComplete:()=>{_&&T(!0),v?.()},onTaskChange:y});n.useEffect(()=>{D.isComplete&&!E.current&&D.completedCount>0&&_&&T(!0),E.current=D.isComplete},[D.isComplete,D.completedCount,_]);let O=n.useMemo(()=>{if(!o||o.length===0)return null;let e={},t=[];for(let n of a)n.category&&o.find(e=>e.id===n.category)?(e[n.category]||(e[n.category]=[]),e[n.category].push(n)):t.push(n);return{groups:e,uncategorized:t}},[a,o]),k={sm:{container:`p-3`,header:`gap-2`,title:`text-base`,subtitle:`text-xs`},default:{container:`p-4`,header:`gap-3`,title:`text-lg`,subtitle:`text-sm`},lg:{container:`p-6`,header:`gap-4`,title:`text-xl`,subtitle:`text-base`}}[S];return(0,i.jsxs)(`div`,{className:t.cn(`rounded-xl border bg-card shadow-sm`,k.container,C),children:[(0,i.jsx)(u,{active:w,onComplete:()=>T(!1)}),(0,i.jsxs)(`div`,{className:t.cn(`flex items-start justify-between`,k.header),children:[(0,i.jsxs)(`div`,{className:`flex-1`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[x&&(0,i.jsx)(`button`,{type:`button`,onClick:D.toggleCollapsed,className:`rounded-md p-1 hover:bg-muted transition-colors`,"aria-label":D.isCollapsed?`Expand checklist`:`Collapse checklist`,children:D.isCollapsed?(0,i.jsx)(r.ChevronRight,{className:`h-5 w-5`}):(0,i.jsx)(r.ChevronDown,{className:`h-5 w-5`})}),(0,i.jsx)(`h2`,{className:t.cn(`font-semibold`,k.title),children:s}),D.isComplete&&(0,i.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-green-100 px-2 py-0.5 text-xs font-medium text-green-700 dark:bg-green-900/50 dark:text-green-400`,children:[(0,i.jsx)(r.Check,{className:`h-3 w-3`}),`Complete`]})]}),c&&!D.isCollapsed&&(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground mt-1`,k.subtitle),children:c})]}),(0,i.jsxs)(`div`,{className:`text-right text-sm text-muted-foreground`,children:[(0,i.jsx)(`span`,{className:`font-medium text-foreground`,children:D.completedCount}),`/`,D.totalCount,` tasks`]})]}),m&&!D.isCollapsed&&(0,i.jsx)(`div`,{className:`mt-3`,children:(0,i.jsx)(d,{progress:D.progress,showPercentage:h,size:S})}),!D.isCollapsed&&(0,i.jsx)(`div`,{className:`mt-4 space-y-3`,children:O?(0,i.jsxs)(i.Fragment,{children:[o?.map(e=>{let t=O.groups[e.id]||[];return t.length===0?null:(0,i.jsx)(p,{category:e,tasks:t,taskStates:D.taskStates,expandedTasks:D.expandedTasks,onCompleteTask:D.completeTask,onSkipTask:D.skipTask,onResetTask:D.resetTask,onToggleTaskExpanded:D.toggleTaskExpanded,size:S},e.id)}),O.uncategorized.length>0&&(0,i.jsx)(`div`,{className:`space-y-2`,children:O.uncategorized.map(e=>(0,i.jsx)(f,{task:e,status:D.getTaskStatus(e.id),isExpanded:D.expandedTasks.has(e.id),onToggleExpand:()=>D.toggleTaskExpanded(e.id),onComplete:()=>D.completeTask(e.id),onSkip:()=>D.skipTask(e.id),onReset:()=>D.resetTask(e.id),size:S},e.id))})]}):(0,i.jsx)(`div`,{className:`space-y-2`,children:a.map(e=>(0,i.jsx)(f,{task:e,status:D.getTaskStatus(e.id),isExpanded:D.expandedTasks.has(e.id),onToggleExpand:()=>D.toggleTaskExpanded(e.id),onComplete:()=>D.completeTask(e.id),onSkip:()=>D.skipTask(e.id),onReset:()=>D.resetTask(e.id),size:S},e.id))})}),D.isComplete&&!D.isCollapsed&&(0,i.jsx)(`div`,{className:`mt-4 rounded-lg bg-gradient-to-r from-green-50 to-emerald-50 p-4 dark:from-green-950/30 dark:to-emerald-950/30`,children:(0,i.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,i.jsx)(`div`,{className:`rounded-full bg-green-500 p-2 text-white`,children:(0,i.jsx)(r.Trophy,{className:`h-5 w-5`})}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`p`,{className:`font-medium text-green-700 dark:text-green-400`,children:`Great job!`}),(0,i.jsx)(`p`,{className:`text-sm text-green-600 dark:text-green-500`,children:`You have completed the onboarding checklist`})]}),(0,i.jsx)(r.Gift,{className:`ml-auto h-8 w-8 text-green-500`})]})})]})}exports.WakaChecklist=m,exports.default=m,exports.useChecklist=l;
|
|
@@ -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={cart:r.ShoppingCart,shipping:r.Truck,payment:r.CreditCard,review:r.ClipboardCheck,confirmation:r.PartyPopper};function o({initialStep:e=0,steps:t,onStepChange:r,onComplete:i,validateOnNext:a=!0}){let[o,s]=n.useState(e),[c,l]=n.useState(new Set),[u,d]=n.useState(new Set),[f,p]=n.useState(!1),[m,h]=n.useState(!1),[g,_]=n.useState(null),v=t.length,y=o===0,b=o===v-1,x=t[o],S=n.useCallback(e=>u.has(e)?`skipped`:c.has(e)?`completed`:e===o?`current`:e<o?`completed`:`pending`,[o,c,u]),C=n.useMemo(()=>t.map((e,t)=>({...e,status:S(t)})),[t,S]),w=n.useCallback(async()=>{let e=t[o];if(!e?.validate)return!0;h(!0),_(null);try{let t=await e.validate();return t.isValid?!0:(_(t.errorMessage||`Validation failed`),!1)}catch{return _(`An error occurred during validation`),!1}finally{h(!1)}},[o,t]),T=n.useCallback(async e=>e<0||e>=v||t[e]?.disabled||e>o&&a&&!await w()?!1:(e>o&&l(e=>new Set(e).add(o)),s(e),_(null),r?.(e,t[e].id),!0),[o,v,t,a,w,r]);return{currentStep:o,currentStepData:x,stepsWithStatus:C,totalSteps:v,isFirstStep:y,isLastStep:b,isComplete:f,isValidating:m,validationError:g,goToStep:T,nextStep:n.useCallback(async()=>b?!1:T(o+1),[b,o,T]),prevStep:n.useCallback(()=>{y||(s(e=>e-1),_(null),r?.(o-1,t[o-1].id))},[y,o,t,r]),skipStep:n.useCallback(()=>{!t[o]?.optional||b||(d(e=>new Set(e).add(o)),s(e=>e+1),_(null),r?.(o+1,t[o+1].id))},[o,t,b,r]),completeCheckout:n.useCallback(async()=>a&&!await w()?!1:(l(e=>new Set(e).add(o)),p(!0),i?.(),!0),[o,a,w,i]),reset:n.useCallback(()=>{s(e),l(new Set),d(new Set),p(!1),h(!1),_(null)},[e]),getStepStatus:S,skippedSteps:u,markStepCompleted:n.useCallback(e=>{l(t=>new Set(t).add(e))},[])}}var s=n.createContext(null);function c(){let e=n.useContext(s);if(!e)throw Error(`useCheckoutStepperContext must be used within a WakaCheckoutStepper`);return e}function l({step:e,index:n}){let{size:o,animated:s}=c(),l={sm:`h-8 w-8 text-xs`,md:`h-10 w-10 text-sm`,lg:`h-12 w-12 text-base`},u={sm:`h-4 w-4`,md:`h-5 w-5`,lg:`h-6 w-6`},d={pending:`bg-muted text-muted-foreground border-2 border-muted-foreground/30`,current:`bg-primary text-primary-foreground border-2 border-primary shadow-lg shadow-primary/25`,completed:`bg-green-500 text-white border-2 border-green-500`,error:`bg-destructive text-destructive-foreground border-2 border-destructive`,skipped:`bg-muted text-muted-foreground border-2 border-dashed border-muted-foreground/50`},f=e.icon||a[e.id];return(0,i.jsx)(`div`,{className:t.cn(`rounded-full flex items-center justify-center transition-all duration-300`,l[o],d[e.status],s&&e.status===`current`&&`animate-pulse`),children:e.status===`completed`?(0,i.jsx)(r.Check,{className:u[o]}):e.status===`error`?(0,i.jsx)(r.AlertCircle,{className:u[o]}):e.status===`skipped`?(0,i.jsx)(r.SkipForward,{className:u[o]}):f?(0,i.jsx)(f,{className:u[o]}):(0,i.jsx)(`span`,{className:`font-semibold`,children:n+1})})}function u({status:e,nextStatus:n,orientation:r}){return(0,i.jsx)(`div`,{className:t.cn(`transition-all duration-500`,r===`horizontal`?`flex-1 h-0.5 mx-2 min-w-[20px]`:`w-0.5 min-h-[32px] mx-auto my-1`,e===`completed`||e===`skipped`?`bg-green-500`:`bg-muted-foreground/30`)})}function d({step:e,index:n,isLast:r,nextStatus:a}){let{orientation:o,size:s,clickable:d,allowPreviousOnly:f,currentStep:p,goToStep:m}=c(),h=d&&!e.disabled&&(f?n<p:n!==p),g={sm:`text-xs`,md:`text-sm`,lg:`text-base`},_={sm:`text-[10px]`,md:`text-xs`,lg:`text-sm`},v=async()=>{h&&await m(n)};return o===`vertical`?(0,i.jsxs)(`div`,{className:`flex`,children:[(0,i.jsxs)(`div`,{className:`flex flex-col items-center`,children:[(0,i.jsx)(`button`,{type:`button`,onClick:v,disabled:!h,className:t.cn(`flex items-center`,h&&`cursor-pointer hover:opacity-80`,!h&&`cursor-default`),"aria-current":e.status===`current`?`step`:void 0,children:(0,i.jsx)(l,{step:e,index:n})}),!r&&(0,i.jsx)(u,{status:e.status,nextStatus:a||`pending`,orientation:`vertical`})]}),(0,i.jsx)(`div`,{className:`ml-4 pb-8`,children:(0,i.jsxs)(`button`,{type:`button`,onClick:v,disabled:!h,className:t.cn(`text-left`,h&&`cursor-pointer hover:opacity-80`,!h&&`cursor-default`),children:[(0,i.jsxs)(`p`,{className:t.cn(`font-semibold`,g[s],e.status===`current`?`text-foreground`:e.status===`completed`?`text-green-600 dark:text-green-400`:`text-muted-foreground`,e.disabled&&`opacity-50`),children:[e.title,e.optional&&(0,i.jsx)(`span`,{className:`ml-2 text-muted-foreground font-normal text-xs`,children:`(Optional)`})]}),e.description&&(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground mt-0.5`,_[s]),children:e.description})]})})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:`flex flex-col items-center flex-shrink-0`,children:(0,i.jsxs)(`button`,{type:`button`,onClick:v,disabled:!h,className:t.cn(`flex flex-col items-center gap-2`,h&&`cursor-pointer hover:opacity-80`,!h&&`cursor-default`),"aria-current":e.status===`current`?`step`:void 0,children:[(0,i.jsx)(l,{step:e,index:n}),(0,i.jsxs)(`div`,{className:`text-center min-w-[60px] max-w-[100px]`,children:[(0,i.jsx)(`p`,{className:t.cn(`font-semibold truncate`,g[s],e.status===`current`?`text-foreground`:e.status===`completed`?`text-green-600 dark:text-green-400`:`text-muted-foreground`,e.disabled&&`opacity-50`),children:e.title}),e.description&&(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground mt-0.5 hidden md:block truncate`,_[s]),children:e.description})]})]})}),!r&&(0,i.jsx)(u,{status:e.status,nextStatus:a||`pending`,orientation:`horizontal`})]})}function f({children:e,isActive:r,direction:a,animated:o}){let[s,c]=n.useState(r);if(n.useEffect(()=>{if(r)c(!0);else if(o){let e=setTimeout(()=>c(!1),300);return()=>clearTimeout(e)}else c(!1)},[r,o]),!s)return null;let l={slide:t.cn(`transition-all duration-300`,r?`opacity-100 translate-x-0`:`opacity-0 translate-x-8`),fade:t.cn(`transition-opacity duration-300`,r?`opacity-100`:`opacity-0`),scale:t.cn(`transition-all duration-300`,r?`opacity-100 scale-100`:`opacity-0 scale-95`)};return(0,i.jsx)(`div`,{className:o?l[a]:void 0,children:e})}function p({steps:e,position:n,className:a}){let o=e.filter(e=>e.status===`completed`||e.status===`skipped`);return(0,i.jsxs)(`div`,{className:t.cn(`w-full lg:w-80 p-4 bg-muted/50 rounded-lg border`,n===`left`?`lg:order-first`:`lg:order-last`,a),children:[(0,i.jsx)(`h3`,{className:`font-semibold text-lg mb-4`,children:`Order Summary`}),(0,i.jsxs)(`div`,{className:`space-y-4`,children:[o.map(e=>(0,i.jsxs)(`div`,{className:`pb-3 border-b border-border last:border-0`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,i.jsx)(r.Check,{className:`h-4 w-4 text-green-500`}),(0,i.jsx)(`span`,{className:`font-medium text-sm`,children:e.title})]}),e.summary&&(0,i.jsx)(`div`,{className:`text-sm text-muted-foreground ml-6`,children:e.summary})]},e.id)),o.length===0&&(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Complete steps to see your order summary.`})]})]})}function m({className:e,labels:n={}}){let{currentStep:a,currentStepData:o,isFirstStep:s,isLastStep:l,isValidating:u,isLoading:d,validationError:f,nextStep:p,prevStep:m,skipStep:h,completeCheckout:g}=c(),{back:_=`Back`,next:v=`Continue`,skip:y=`Skip`,complete:b=`Complete Order`,processing:x=`Processing...`}=n,S=u||d;return(0,i.jsxs)(`div`,{className:t.cn(`space-y-4`,e),children:[f&&(0,i.jsxs)(`div`,{className:`flex items-center gap-2 p-3 bg-destructive/10 text-destructive rounded-lg text-sm`,children:[(0,i.jsx)(r.AlertCircle,{className:`h-4 w-4 flex-shrink-0`}),(0,i.jsx)(`span`,{children:f})]}),(0,i.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,i.jsxs)(`button`,{type:`button`,onClick:m,disabled:s||S,className:t.cn(`flex items-center gap-2 px-4 py-2.5 text-sm font-medium rounded-lg border transition-all`,s||S?`opacity-50 cursor-not-allowed bg-muted`:`hover:bg-muted`),children:[(0,i.jsx)(r.ChevronLeft,{className:`h-4 w-4`}),_]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[o?.optional&&!l&&(0,i.jsxs)(`button`,{type:`button`,onClick:h,disabled:S,className:t.cn(`flex items-center gap-2 px-4 py-2.5 text-sm font-medium rounded-lg transition-all`,`text-muted-foreground hover:text-foreground hover:bg-muted`,S&&`opacity-50 cursor-not-allowed`),children:[(0,i.jsx)(r.SkipForward,{className:`h-4 w-4`}),y]}),(0,i.jsx)(`button`,{type:`button`,onClick:l?g:p,disabled:S,className:t.cn(`flex items-center gap-2 px-6 py-2.5 text-sm font-medium rounded-lg transition-all`,`bg-primary text-primary-foreground`,S?`opacity-70 cursor-not-allowed`:`hover:bg-primary/90`),children:S?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.Loader2,{className:`h-4 w-4 animate-spin`}),x]}):l?(0,i.jsxs)(i.Fragment,{children:[b,(0,i.jsx)(r.Check,{className:`h-4 w-4`})]}):(0,i.jsxs)(i.Fragment,{children:[v,(0,i.jsx)(r.ChevronRight,{className:`h-4 w-4`})]})})]})]})]})}function h({className:e}){let{currentStep:n,totalSteps:r,stepsWithStatus:a}=c(),o=a.filter(e=>e.status===`completed`||e.status===`skipped`).length,s=Math.round(o/r*100);return(0,i.jsxs)(`div`,{className:t.cn(`space-y-2`,e),children:[(0,i.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,i.jsxs)(`span`,{className:`text-muted-foreground`,children:[`Step `,n+1,` of `,r]}),(0,i.jsxs)(`span`,{className:`font-medium`,children:[s,`% complete`]})]}),(0,i.jsx)(`div`,{className:`h-2 bg-muted rounded-full overflow-hidden`,children:(0,i.jsx)(`div`,{className:`h-full bg-primary transition-all duration-500 ease-out rounded-full`,style:{width:`${s}%`}})})]})}function g({steps:e,currentStep:r,onStepChange:a,onComplete:c,orientation:l=`horizontal`,size:u=`md`,clickable:h=!0,allowPreviousOnly:g=!0,showContent:_=!0,showSummary:v=!1,summaryPosition:y=`right`,animated:b=!0,animationDirection:x=`slide`,isLoading:S=!1,className:C,labels:w}){let T=o({initialStep:r??0,steps:e,onStepChange:a,onComplete:c,validateOnNext:!0});n.useEffect(()=>{r!==void 0&&r!==T.currentStep&&T.goToStep(r)},[r]);let E={...T,orientation:l,size:u,clickable:h,allowPreviousOnly:g,animated:b,animationDirection:x,isLoading:S};return(0,i.jsx)(s.Provider,{value:E,children:(0,i.jsxs)(`div`,{className:t.cn(`w-full`,C),children:[(0,i.jsx)(`nav`,{"aria-label":`Checkout progress`,className:t.cn(`mb-8`,l===`horizontal`?`flex items-start justify-between overflow-x-auto pb-2`:`flex flex-col`),children:T.stepsWithStatus.map((t,n)=>(0,i.jsx)(d,{step:t,index:n,isLast:n===e.length-1,nextStatus:T.stepsWithStatus[n+1]?.status},t.id))}),(0,i.jsxs)(`div`,{className:t.cn(`flex flex-col lg:flex-row gap-6`,v&&y===`left`&&`lg:flex-row-reverse`),children:[_&&(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[e.map((e,t)=>(0,i.jsx)(f,{isActive:t===T.currentStep,direction:x,animated:b,children:(0,i.jsxs)(`div`,{className:`p-6 rounded-lg border bg-card`,children:[(0,i.jsx)(`h2`,{className:`text-xl font-semibold mb-2`,children:e.title}),e.description&&(0,i.jsx)(`p`,{className:`text-muted-foreground mb-6`,children:e.description}),e.content]})},e.id)),(0,i.jsx)(`div`,{className:`mt-6`,children:(0,i.jsx)(m,{labels:w})})]}),v&&(0,i.jsx)(p,{steps:T.stepsWithStatus,position:y})]})]})})}exports.CheckoutNavigation=m,exports.CheckoutProgressBar=h,exports.default=g,exports.useCheckoutStepper=o,exports.useCheckoutStepperContext=c;
|
|
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={cart:r.ShoppingCart,shipping:r.Truck,payment:r.CreditCard,review:r.ClipboardCheck,confirmation:r.PartyPopper};function o({initialStep:e=0,steps:t,onStepChange:r,onComplete:i,validateOnNext:a=!0}){let[o,s]=n.useState(e),[c,l]=n.useState(new Set),[u,d]=n.useState(new Set),[f,p]=n.useState(!1),[m,h]=n.useState(!1),[g,_]=n.useState(null),v=t.length,y=o===0,b=o===v-1,x=t[o],S=n.useCallback(e=>u.has(e)?`skipped`:c.has(e)?`completed`:e===o?`current`:e<o?`completed`:`pending`,[o,c,u]),C=n.useMemo(()=>t.map((e,t)=>({...e,status:S(t)})),[t,S]),w=n.useCallback(async()=>{let e=t[o];if(!e?.validate)return!0;h(!0),_(null);try{let t=await e.validate();return t.isValid?!0:(_(t.errorMessage||`Validation failed`),!1)}catch{return _(`An error occurred during validation`),!1}finally{h(!1)}},[o,t]),T=n.useCallback(async e=>e<0||e>=v||t[e]?.disabled||e>o&&a&&!await w()?!1:(e>o&&l(e=>new Set(e).add(o)),s(e),_(null),r?.(e,t[e].id),!0),[o,v,t,a,w,r]);return{currentStep:o,currentStepData:x,stepsWithStatus:C,totalSteps:v,isFirstStep:y,isLastStep:b,isComplete:f,isValidating:m,validationError:g,goToStep:T,nextStep:n.useCallback(async()=>b?!1:T(o+1),[b,o,T]),prevStep:n.useCallback(()=>{y||(s(e=>e-1),_(null),r?.(o-1,t[o-1].id))},[y,o,t,r]),skipStep:n.useCallback(()=>{!t[o]?.optional||b||(d(e=>new Set(e).add(o)),s(e=>e+1),_(null),r?.(o+1,t[o+1].id))},[o,t,b,r]),completeCheckout:n.useCallback(async()=>a&&!await w()?!1:(l(e=>new Set(e).add(o)),p(!0),i?.(),!0),[o,a,w,i]),reset:n.useCallback(()=>{s(e),l(new Set),d(new Set),p(!1),h(!1),_(null)},[e]),getStepStatus:S,skippedSteps:u,markStepCompleted:n.useCallback(e=>{l(t=>new Set(t).add(e))},[])}}var s=n.createContext(null);function c(){let e=n.useContext(s);if(!e)throw Error(`useCheckoutStepperContext must be used within a WakaCheckoutStepper`);return e}function l({step:e,index:n}){let{size:o,animated:s}=c(),l={sm:`h-8 w-8 text-xs`,md:`h-10 w-10 text-sm`,lg:`h-12 w-12 text-base`},u={sm:`h-4 w-4`,md:`h-5 w-5`,lg:`h-6 w-6`},d={pending:`bg-muted text-muted-foreground border-2 border-muted-foreground/30`,current:`bg-primary text-primary-foreground border-2 border-primary shadow-lg shadow-primary/25`,completed:`bg-green-500 text-white border-2 border-green-500`,error:`bg-destructive text-destructive-foreground border-2 border-destructive`,skipped:`bg-muted text-muted-foreground border-2 border-dashed border-muted-foreground/50`},f=e.icon||a[e.id];return(0,i.jsx)(`div`,{className:t.cn(`rounded-full flex items-center justify-center transition-all duration-300`,l[o],d[e.status],s&&e.status===`current`&&`animate-pulse`),children:e.status===`completed`?(0,i.jsx)(r.Check,{className:u[o]}):e.status===`error`?(0,i.jsx)(r.AlertCircle,{className:u[o]}):e.status===`skipped`?(0,i.jsx)(r.SkipForward,{className:u[o]}):f?(0,i.jsx)(f,{className:u[o]}):(0,i.jsx)(`span`,{className:`font-semibold`,children:n+1})})}function u({status:e,nextStatus:n,orientation:r}){return(0,i.jsx)(`div`,{className:t.cn(`transition-all duration-500`,r===`horizontal`?`flex-1 h-0.5 mx-2 min-w-[20px]`:`w-0.5 min-h-[32px] mx-auto my-1`,e===`completed`||e===`skipped`?`bg-green-500`:`bg-muted-foreground/30`)})}function d({step:e,index:n,isLast:r,nextStatus:a}){let{orientation:o,size:s,clickable:d,allowPreviousOnly:f,currentStep:p,goToStep:m}=c(),h=d&&!e.disabled&&(f?n<p:n!==p),g={sm:`text-xs`,md:`text-sm`,lg:`text-base`},_={sm:`text-[10px]`,md:`text-xs`,lg:`text-sm`},v=async()=>{h&&await m(n)};return o===`vertical`?(0,i.jsxs)(`div`,{className:`flex`,children:[(0,i.jsxs)(`div`,{className:`flex flex-col items-center`,children:[(0,i.jsx)(`button`,{type:`button`,onClick:v,disabled:!h,className:t.cn(`flex items-center`,h&&`cursor-pointer hover:opacity-80`,!h&&`cursor-default`),"aria-current":e.status===`current`?`step`:void 0,children:(0,i.jsx)(l,{step:e,index:n})}),!r&&(0,i.jsx)(u,{status:e.status,nextStatus:a||`pending`,orientation:`vertical`})]}),(0,i.jsx)(`div`,{className:`ml-4 pb-8`,children:(0,i.jsxs)(`button`,{type:`button`,onClick:v,disabled:!h,className:t.cn(`text-left`,h&&`cursor-pointer hover:opacity-80`,!h&&`cursor-default`),children:[(0,i.jsxs)(`p`,{className:t.cn(`font-semibold`,g[s],e.status===`current`?`text-foreground`:e.status===`completed`?`text-green-600 dark:text-green-400`:`text-muted-foreground`,e.disabled&&`opacity-50`),children:[e.title,e.optional&&(0,i.jsx)(`span`,{className:`ml-2 text-muted-foreground font-normal text-xs`,children:`(Optional)`})]}),e.description&&(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground mt-0.5`,_[s]),children:e.description})]})})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:`flex flex-col items-center flex-shrink-0`,children:(0,i.jsxs)(`button`,{type:`button`,onClick:v,disabled:!h,className:t.cn(`flex flex-col items-center gap-2`,h&&`cursor-pointer hover:opacity-80`,!h&&`cursor-default`),"aria-current":e.status===`current`?`step`:void 0,children:[(0,i.jsx)(l,{step:e,index:n}),(0,i.jsxs)(`div`,{className:`text-center min-w-[60px] max-w-[100px]`,children:[(0,i.jsx)(`p`,{className:t.cn(`font-semibold truncate`,g[s],e.status===`current`?`text-foreground`:e.status===`completed`?`text-green-600 dark:text-green-400`:`text-muted-foreground`,e.disabled&&`opacity-50`),children:e.title}),e.description&&(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground mt-0.5 hidden md:block truncate`,_[s]),children:e.description})]})]})}),!r&&(0,i.jsx)(u,{status:e.status,nextStatus:a||`pending`,orientation:`horizontal`})]})}function f({children:e,isActive:r,direction:a,animated:o}){let[s,c]=n.useState(r);if(n.useEffect(()=>{if(r)c(!0);else if(o){let e=setTimeout(()=>c(!1),300);return()=>clearTimeout(e)}else c(!1)},[r,o]),!s)return null;let l={slide:t.cn(`transition-all duration-300`,r?`opacity-100 translate-x-0`:`opacity-0 translate-x-8`),fade:t.cn(`transition-opacity duration-300`,r?`opacity-100`:`opacity-0`),scale:t.cn(`transition-all duration-300`,r?`opacity-100 scale-100`:`opacity-0 scale-95`)};return(0,i.jsx)(`div`,{className:o?l[a]:void 0,children:e})}function p({steps:e,position:n,className:a}){let o=e.filter(e=>e.status===`completed`||e.status===`skipped`);return(0,i.jsxs)(`div`,{className:t.cn(`w-full lg:w-80 p-4 bg-muted/50 rounded-lg border`,n===`left`?`lg:order-first`:`lg:order-last`,a),children:[(0,i.jsx)(`h3`,{className:`font-semibold text-lg mb-4`,children:`Order Summary`}),(0,i.jsxs)(`div`,{className:`space-y-4`,children:[o.map(e=>(0,i.jsxs)(`div`,{className:`pb-3 border-b border-border last:border-0`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,i.jsx)(r.Check,{className:`h-4 w-4 text-green-500`}),(0,i.jsx)(`span`,{className:`font-medium text-sm`,children:e.title})]}),e.summary&&(0,i.jsx)(`div`,{className:`text-sm text-muted-foreground ml-6`,children:e.summary})]},e.id)),o.length===0&&(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Complete steps to see your order summary.`})]})]})}function m({className:e,labels:n={}}){let{currentStep:a,currentStepData:o,isFirstStep:s,isLastStep:l,isValidating:u,isLoading:d,validationError:f,nextStep:p,prevStep:m,skipStep:h,completeCheckout:g}=c(),{back:_=`Back`,next:v=`Continue`,skip:y=`Skip`,complete:b=`Complete Order`,processing:x=`Processing...`}=n,S=u||d;return(0,i.jsxs)(`div`,{className:t.cn(`space-y-4`,e),children:[f&&(0,i.jsxs)(`div`,{className:`flex items-center gap-2 p-3 bg-destructive/10 text-destructive rounded-lg text-sm`,children:[(0,i.jsx)(r.AlertCircle,{className:`h-4 w-4 flex-shrink-0`}),(0,i.jsx)(`span`,{children:f})]}),(0,i.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,i.jsxs)(`button`,{type:`button`,onClick:m,disabled:s||S,className:t.cn(`flex items-center gap-2 px-4 py-2.5 text-sm font-medium rounded-lg border transition-all`,s||S?`opacity-50 cursor-not-allowed bg-muted`:`hover:bg-muted`),children:[(0,i.jsx)(r.ChevronLeft,{className:`h-4 w-4`}),_]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[o?.optional&&!l&&(0,i.jsxs)(`button`,{type:`button`,onClick:h,disabled:S,className:t.cn(`flex items-center gap-2 px-4 py-2.5 text-sm font-medium rounded-lg transition-all`,`text-muted-foreground hover:text-foreground hover:bg-muted`,S&&`opacity-50 cursor-not-allowed`),children:[(0,i.jsx)(r.SkipForward,{className:`h-4 w-4`}),y]}),(0,i.jsx)(`button`,{type:`button`,onClick:l?g:p,disabled:S,className:t.cn(`flex items-center gap-2 px-6 py-2.5 text-sm font-medium rounded-lg transition-all`,`bg-primary text-primary-foreground`,S?`opacity-70 cursor-not-allowed`:`hover:bg-primary/90`),children:S?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.Loader2,{className:`h-4 w-4 animate-spin`}),x]}):l?(0,i.jsxs)(i.Fragment,{children:[b,(0,i.jsx)(r.Check,{className:`h-4 w-4`})]}):(0,i.jsxs)(i.Fragment,{children:[v,(0,i.jsx)(r.ChevronRight,{className:`h-4 w-4`})]})})]})]})]})}function h({className:e}){let{currentStep:n,totalSteps:r,stepsWithStatus:a}=c(),o=a.filter(e=>e.status===`completed`||e.status===`skipped`).length,s=Math.round(o/r*100);return(0,i.jsxs)(`div`,{className:t.cn(`space-y-2`,e),children:[(0,i.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,i.jsxs)(`span`,{className:`text-muted-foreground`,children:[`Step `,n+1,` of `,r]}),(0,i.jsxs)(`span`,{className:`font-medium`,children:[s,`% complete`]})]}),(0,i.jsx)(`div`,{className:`h-2 bg-muted rounded-full overflow-hidden`,children:(0,i.jsx)(`div`,{className:`h-full bg-primary transition-all duration-500 ease-out rounded-full`,style:{width:`${s}%`}})})]})}function g({steps:e,currentStep:r,onStepChange:a,onComplete:c,orientation:l=`horizontal`,size:u=`md`,clickable:h=!0,allowPreviousOnly:g=!0,showContent:_=!0,showSummary:v=!1,summaryPosition:y=`right`,animated:b=!0,animationDirection:x=`slide`,isLoading:S=!1,className:C,labels:w}){let T=o({initialStep:r??0,steps:e,onStepChange:a,onComplete:c,validateOnNext:!0});n.useEffect(()=>{r!==void 0&&r!==T.currentStep&&T.goToStep(r)},[r]);let E={...T,orientation:l,size:u,clickable:h,allowPreviousOnly:g,animated:b,animationDirection:x,isLoading:S};return(0,i.jsx)(s.Provider,{value:E,children:(0,i.jsxs)(`div`,{className:t.cn(`w-full`,C),children:[(0,i.jsx)(`nav`,{"aria-label":`Checkout progress`,className:t.cn(`mb-8`,l===`horizontal`?`flex items-start justify-between overflow-x-auto pb-2`:`flex flex-col`),children:T.stepsWithStatus.map((t,n)=>(0,i.jsx)(d,{step:t,index:n,isLast:n===e.length-1,nextStatus:T.stepsWithStatus[n+1]?.status},t.id))}),(0,i.jsxs)(`div`,{className:t.cn(`flex flex-col lg:flex-row gap-6`,v&&y===`left`&&`lg:flex-row-reverse`),children:[_&&(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[e.map((e,t)=>(0,i.jsx)(f,{isActive:t===T.currentStep,direction:x,animated:b,children:(0,i.jsxs)(`div`,{className:`p-6 rounded-lg border bg-card`,children:[(0,i.jsx)(`h2`,{className:`text-xl font-semibold mb-2`,children:e.title}),e.description&&(0,i.jsx)(`p`,{className:`text-muted-foreground mb-6`,children:e.description}),e.content]})},e.id)),(0,i.jsx)(`div`,{className:`mt-6`,children:(0,i.jsx)(m,{labels:w})})]}),v&&(0,i.jsx)(p,{steps:T.stepsWithStatus,position:y})]})]})})}exports.CheckoutNavigation=m,exports.CheckoutProgressBar=h,exports.WakaCheckoutStepper=g,exports.default=g,exports.useCheckoutStepper=o,exports.useCheckoutStepperContext=c;
|
|
@@ -376,4 +376,4 @@ function D({ steps: n, currentStep: r, onStepChange: i, onComplete: a, orientati
|
|
|
376
376
|
});
|
|
377
377
|
}
|
|
378
378
|
//#endregion
|
|
379
|
-
export { T as CheckoutNavigation, E as CheckoutProgressBar, D as default, _ as useCheckoutStepper, y as useCheckoutStepperContext };
|
|
379
|
+
export { T as CheckoutNavigation, E as CheckoutProgressBar, D as WakaCheckoutStepper, D as default, _ as useCheckoutStepper, y as useCheckoutStepperContext };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";"use client";const e=require(
|
|
2
|
-
`)}function m(e,t){let n=e.map(e=>({id:e.id,label:e.label,date:e.date.toISOString(),size:e.size,data:e.data.map(e=>({value:e.value,count:e.count,...t&&e.metadata?{metadata:e.metadata}:{}}))}));return JSON.stringify(n,null,2)}function h({children:e,content:t,visible:n,position:r}){return(0,a.jsxs)(`div`,{className:`relative inline-block`,children:[e,n&&(0,a.jsxs)(`div`,{className:`fixed z-50 px-3 py-2 text-sm bg-popover text-popover-foreground rounded-md shadow-lg border max-w-xs`,style:{left:r.x,top:r.y-10,transform:`translate(-50%, -100%)`},children:[t,(0,a.jsx)(`div`,{className:`absolute left-1/2 -translate-x-1/2 top-full w-0 h-0 border-l-4 border-r-4 border-t-4 border-l-transparent border-r-transparent border-t-popover`})]})]})}function g({colorScale:e,min:t,max:n,showAsPercentage:r}){return(n-t)/4,(0,a.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,a.jsx)(`span`,{children:r?`${t}%`:t}),(0,a.jsx)(`div`,{className:`flex h-3 rounded overflow-hidden`,children:Array.from({length:20},(r,i)=>(0,a.jsx)(`div`,{className:`w-3 h-full`,style:{backgroundColor:s(t+(n-t)*(i/19),t,n,e)}},i))}),(0,a.jsx)(`span`,{children:r?`${n}%`:n})]})}function _({dataPoint:e,row:n,periodIndex:i,colorScale:o,showAsPercentage:u,decimalPlaces:d,highlighted:f,onClick:p,renderCell:m,renderTooltip:g,className:_}){let[v,y]=r.useState(!1),[b,x]=r.useState({x:0,y:0}),S=r.useRef(null),C=s(e.value,0,100,o),w=e=>{y(!0);let t=e.target.getBoundingClientRect();x({x:t.left+t.width/2,y:t.top})},T=()=>{y(!1)},E=(0,a.jsxs)(`div`,{className:`space-y-1`,children:[(0,a.jsx)(`div`,{className:`font-medium`,children:n.label}),(0,a.jsxs)(`div`,{children:[`Period `,i,`: `,c(e.value,u,d)]}),e.count!==void 0&&(0,a.jsxs)(`div`,{className:`text-muted-foreground`,children:[`Count: `,l(e.count)]}),e.metadata&&Object.keys(e.metadata).length>0&&(0,a.jsx)(`div`,{className:`pt-1 border-t`,children:Object.entries(e.metadata).map(([e,t])=>(0,a.jsxs)(`div`,{className:`text-muted-foreground`,children:[e,`: `,String(t)]},e))})]});return(0,a.jsx)(`td`,{ref:S,className:t.cn(`px-3 py-2 text-center text-sm font-medium transition-all cursor-pointer`,`border-r border-border last:border-r-0`,f&&`ring-2 ring-primary ring-inset`,_),style:{backgroundColor:C},onClick:p,onMouseEnter:w,onMouseLeave:T,children:(0,a.jsx)(h,{content:g?g(e,n,i):E,visible:v,position:b,children:m?m(e,n,i):c(e.value,u,d)})})}function v({data:e,period:h=`month`,metric:v=`retention`,metricLabel:y,showAsPercentage:b=!0,decimalPlaces:x=1,colorScale:S=o,showCohortSize:C=!0,showAverageRow:w=!0,showTrends:T=!0,highlightOnHover:E=!0,showLegend:D=!0,enableExport:O=!0,onCellClick:k,onExport:A,renderCell:j,renderTooltip:M,className:N,tableClassName:P,headerClassName:F,cellClassName:I}){let[L,R]=r.useState(null),[z,B]=r.useState(null),V=r.useMemo(()=>Math.max(...e.map(e=>e.data.length),0),[e]),H=r.useMemo(()=>d(e),[e]),U=r.useCallback(t=>{let r=y||v,i=`cohort-${r}-${n.localDateKey(new Date)}`;if(A){A({format:t,filename:i,includeMetadata:!0});return}let a,o,s;t===`csv`?(a=p(e,h,r),o=`text/csv`,s=`csv`):(a=m(e,!0),o=`application/json`,s=`json`);let c=new Blob([a],{type:o}),l=URL.createObjectURL(c),u=document.createElement(`a`);u.href=l,u.download=`${i}.${s}`,document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(l)},[e,h,v,y,A]),W=r.useCallback((e,t)=>{E&&(R(e),B(t))},[E]),G=r.useCallback(()=>{R(null),B(null)},[]),K=y||{retention:`Retention`,churn:`Churn`,revenue:`Revenue`,engagement:`Engagement`,custom:`Value`}[v];return e.length===0?(0,a.jsxs)(`div`,{className:t.cn(`flex flex-col items-center justify-center py-12 text-center`,N),children:[(0,a.jsx)(i.Users,{className:`h-12 w-12 text-muted-foreground/50 mb-4`}),(0,a.jsx)(`h3`,{className:`text-lg font-medium text-muted-foreground`,children:`No cohort data`}),(0,a.jsx)(`p`,{className:`text-sm text-muted-foreground/70 mt-1`,children:`Add cohort data to see the analysis table.`})]}):(0,a.jsxs)(`div`,{className:t.cn(`space-y-4`,N),children:[(0,a.jsxs)(`div`,{className:`flex items-center justify-between flex-wrap gap-4`,children:[(0,a.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,a.jsxs)(`h3`,{className:`text-lg font-semibold`,children:[K,` Analysis`]}),D&&(0,a.jsx)(g,{colorScale:S,min:0,max:100,showAsPercentage:b})]}),O&&(0,a.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,a.jsxs)(`button`,{onClick:()=>U(`csv`),className:`inline-flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium rounded-md border border-input bg-background hover:bg-accent hover:text-accent-foreground transition-colors`,children:[(0,a.jsx)(i.Download,{className:`h-4 w-4`}),`CSV`]}),(0,a.jsxs)(`button`,{onClick:()=>U(`json`),className:`inline-flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium rounded-md border border-input bg-background hover:bg-accent hover:text-accent-foreground transition-colors`,children:[(0,a.jsx)(i.Download,{className:`h-4 w-4`}),`JSON`]})]})]}),(0,a.jsx)(`div`,{className:`overflow-x-auto rounded-lg border border-border`,children:(0,a.jsxs)(`table`,{className:t.cn(`w-full border-collapse`,P),children:[(0,a.jsx)(`thead`,{children:(0,a.jsxs)(`tr`,{className:`bg-muted/50`,children:[(0,a.jsx)(`th`,{className:t.cn(`px-4 py-3 text-left text-sm font-semibold text-foreground border-b border-r border-border sticky left-0 bg-muted/50 z-10`,F),children:`Cohort`}),C&&(0,a.jsx)(`th`,{className:t.cn(`px-4 py-3 text-center text-sm font-semibold text-foreground border-b border-r border-border`,F),children:(0,a.jsxs)(`div`,{className:`flex items-center justify-center gap-1`,children:[(0,a.jsx)(i.Users,{className:`h-4 w-4`}),`Size`]})}),Array.from({length:V},(e,n)=>(0,a.jsx)(`th`,{className:t.cn(`px-3 py-3 text-center text-sm font-semibold text-foreground border-b border-r border-border last:border-r-0 transition-colors`,z===n&&E&&`bg-accent`,F),children:u(h,n)},n))]})}),(0,a.jsxs)(`tbody`,{children:[e.map((n,r)=>{let o=L===n.id;return(0,a.jsxs)(`tr`,{className:t.cn(`transition-colors`,o&&E&&`bg-accent/30`),onMouseEnter:()=>R(n.id),onMouseLeave:()=>R(null),children:[(0,a.jsx)(`td`,{className:t.cn(`px-4 py-2 text-sm font-medium text-foreground border-b border-r border-border sticky left-0 bg-background z-10`,o&&E&&`bg-accent/30`,I),children:(0,a.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n.label,T&&r>0&&n.data[0]&&e[r-1].data[0]&&(0,a.jsxs)(a.Fragment,{children:[f(n.data[0].value,e[r-1].data[0].value)===`up`&&(0,a.jsx)(i.TrendingUp,{className:`h-3 w-3 text-green-600`}),f(n.data[0].value,e[r-1].data[0].value)===`down`&&(0,a.jsx)(i.TrendingDown,{className:`h-3 w-3 text-red-600`})]})]})}),C&&(0,a.jsx)(`td`,{className:t.cn(`px-4 py-2 text-center text-sm text-muted-foreground border-b border-r border-border`,I),children:l(n.size)}),Array.from({length:V},(e,r)=>{let i=n.data[r];return i?(0,a.jsx)(_,{dataPoint:i,row:n,periodIndex:r,colorScale:S,showAsPercentage:b,decimalPlaces:x,highlighted:(o||z===r)&&E,onClick:()=>k?.(n,r,i),renderCell:j,renderTooltip:M,className:t.cn(`border-b`,z===r&&E&&`ring-2 ring-primary/50 ring-inset`,I)},r):(0,a.jsx)(`td`,{className:t.cn(`px-3 py-2 text-center text-sm text-muted-foreground border-b border-r border-border last:border-r-0 bg-muted/20`,I),onMouseEnter:()=>W(n.id,r),onMouseLeave:G,children:`-`},r)})]},n.id)}),w&&H.length>0&&(0,a.jsxs)(`tr`,{className:`bg-muted/30 font-medium`,children:[(0,a.jsx)(`td`,{className:t.cn(`px-4 py-2 text-sm font-semibold text-foreground border-r border-border sticky left-0 bg-muted/30 z-10`,I),children:(0,a.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,a.jsx)(i.Info,{className:`h-4 w-4 text-muted-foreground`}),`Average`]})}),C&&(0,a.jsx)(`td`,{className:t.cn(`px-4 py-2 text-center text-sm text-muted-foreground border-r border-border`,I),children:l(Math.round(e.reduce((e,t)=>e+t.size,0)/e.length))}),Array.from({length:V},(e,n)=>{let r=H[n];return r?(0,a.jsx)(`td`,{className:t.cn(`px-3 py-2 text-center text-sm font-semibold border-r border-border last:border-r-0`,I),style:{backgroundColor:s(r.value,0,100,S)},children:c(r.value,b,x)},n):(0,a.jsx)(`td`,{className:t.cn(`px-3 py-2 text-center text-sm text-muted-foreground border-r border-border last:border-r-0`,I),children:`-`},n)})]})]})]})}),(0,a.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-muted-foreground`,children:[(0,a.jsxs)(`span`,{children:[e.length,` cohort`,e.length===1?``:`s`,` | `,V,` period`,V===1?``:`s`]}),(0,a.jsxs)(`span`,{children:[`Total users: `,l(e.reduce((e,t)=>e+t.size,0))]})]})]})}function y({initialData:e=[],defaultPeriod:t=`month`,defaultMetric:n=`retention`}={}){let[i,a]=r.useState(e),[o,s]=r.useState(t),[c,l]=r.useState(n),[u,d]=r.useState(null);return{data:i,period:o,metric:c,selectedCohort:u,statistics:r.useMemo(()=>{if(i.length===0)return{totalCohorts:0,totalUsers:0,averageCohortSize:0,averageRetentionByPeriod:[],overallAverageRetention:0,bestCohort:null,worstCohort:null};let e=i.reduce((e,t)=>e+t.size,0),t=e/i.length,n=Math.max(...i.map(e=>e.data.length)),r=Array.from({length:n},(e,t)=>{let n=i.map(e=>e.data[t]?.value).filter(e=>e!==void 0);return n.length>0?n.reduce((e,t)=>e+t,0)/n.length:0}),a=i.flatMap(e=>e.data.map(e=>e.value)),o=a.length>0?a.reduce((e,t)=>e+t,0)/a.length:0,s=[...i.map(e=>({row:e,average:e.data.length>0?e.data.reduce((e,t)=>e+t.value,0)/e.data.length:0}))].sort((e,t)=>t.average-e.average),c=s[0]?.row||null,l=s[s.length-1]?.row||null;return{totalCohorts:i.length,totalUsers:e,averageCohortSize:t,averageRetentionByPeriod:r,overallAverageRetention:o,bestCohort:c,worstCohort:l}},[i]),setData:a,setPeriod:s,setMetric:l,setSelectedCohort:d,addCohort:r.useCallback(e=>{a(t=>[...t,e])},[]),updateCohort:r.useCallback((e,t)=>{a(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),removeCohort:r.useCallback(e=>{a(t=>t.filter(t=>t.id!==e))},[]),updateDataPoint:r.useCallback((e,t,n)=>{a(r=>r.map(r=>{if(r.id!==e)return r;let i=[...r.data];return i[t]&&(i[t]={...i[t],...n}),{...r,data:i}}))},[]),sortCohorts:r.useCallback((e,t=`desc`)=>{a(n=>[...n].sort((n,r)=>{let i=0;switch(e){case`date`:i=n.date.getTime()-r.date.getTime();break;case`size`:i=n.size-r.size;break;case`retention`:i=(n.data.length>0?n.data.reduce((e,t)=>e+t.value,0)/n.data.length:0)-(r.data.length>0?r.data.reduce((e,t)=>e+t.value,0)/r.data.length:0);break}return t===`asc`?i:-i}))},[]),filterByDateRange:r.useCallback((e,t)=>i.filter(n=>n.date>=e&&n.date<=t),[i]),getCohortById:r.useCallback(e=>i.find(t=>t.id===e),[i]),reset:r.useCallback(()=>{a(e),s(t),l(n),d(null)},[e,t,n])}}exports.default=v,exports.useCohortTable=y;
|
|
1
|
+
"use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../../utils/local-date.cjs.js");let r=require("react");r=e.__toESM(r);let i=require("lucide-react"),a=require("react/jsx-runtime");var o={min:`#fef2f2`,mid:`#fef9c3`,max:`#dcfce7`,midValue:50};function s(e,t,n,r){let i=(Math.max(t,Math.min(n,e))-t)/(n-t),a=e=>{let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:{r:255,g:255,b:255}},o=a(r.min),s=a(r.max),c=r.mid?a(r.mid):null,l=(r.midValue??50)/100,u,d,f;if(c&&i<=l){let e=i/l;u=Math.round(o.r+(c.r-o.r)*e),d=Math.round(o.g+(c.g-o.g)*e),f=Math.round(o.b+(c.b-o.b)*e)}else if(c&&i>l){let e=(i-l)/(1-l);u=Math.round(c.r+(s.r-c.r)*e),d=Math.round(c.g+(s.g-c.g)*e),f=Math.round(c.b+(s.b-c.b)*e)}else u=Math.round(o.r+(s.r-o.r)*i),d=Math.round(o.g+(s.g-o.g)*i),f=Math.round(o.b+(s.b-o.b)*i);return`rgb(${u}, ${d}, ${f})`}function c(e,t,n){return t?`${e.toFixed(n)}%`:e.toFixed(n)}function l(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:e.toString()}function u(e,t){return`${{day:`Day`,week:`Week`,month:`Month`,quarter:`Q`,year:`Year`}[e]} ${t}`}function d(e){if(e.length===0)return[];let t=Math.max(...e.map(e=>e.data.length)),n=[];for(let r=0;r<t;r++){let t=e.map(e=>e.data[r]?.value).filter(e=>e!==void 0);if(t.length>0){let e=t.reduce((e,t)=>e+t,0);n.push({value:e/t.length,count:t.length})}}return n}function f(e,t){let n=e-t;return Math.abs(n)<.5?`neutral`:n>0?`up`:`down`}function p(e,t,n){let r=Math.max(...e.map(e=>e.data.length)),i=[`Cohort`,`Size`,...Array.from({length:r},(e,n)=>u(t,n))],a=e.map(e=>[e.label,e.size.toString(),...e.data.map(e=>e.value.toString())]);return[i.join(`,`),...a.map(e=>e.join(`,`))].join(`
|
|
2
|
+
`)}function m(e,t){let n=e.map(e=>({id:e.id,label:e.label,date:e.date.toISOString(),size:e.size,data:e.data.map(e=>({value:e.value,count:e.count,...t&&e.metadata?{metadata:e.metadata}:{}}))}));return JSON.stringify(n,null,2)}function h({children:e,content:t,visible:n,position:r}){return(0,a.jsxs)(`div`,{className:`relative inline-block`,children:[e,n&&(0,a.jsxs)(`div`,{className:`fixed z-50 px-3 py-2 text-sm bg-popover text-popover-foreground rounded-md shadow-lg border max-w-xs`,style:{left:r.x,top:r.y-10,transform:`translate(-50%, -100%)`},children:[t,(0,a.jsx)(`div`,{className:`absolute left-1/2 -translate-x-1/2 top-full w-0 h-0 border-l-4 border-r-4 border-t-4 border-l-transparent border-r-transparent border-t-popover`})]})]})}function g({colorScale:e,min:t,max:n,showAsPercentage:r}){return(n-t)/4,(0,a.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,a.jsx)(`span`,{children:r?`${t}%`:t}),(0,a.jsx)(`div`,{className:`flex h-3 rounded overflow-hidden`,children:Array.from({length:20},(r,i)=>(0,a.jsx)(`div`,{className:`w-3 h-full`,style:{backgroundColor:s(t+(n-t)*(i/19),t,n,e)}},i))}),(0,a.jsx)(`span`,{children:r?`${n}%`:n})]})}function _({dataPoint:e,row:n,periodIndex:i,colorScale:o,showAsPercentage:u,decimalPlaces:d,highlighted:f,onClick:p,renderCell:m,renderTooltip:g,className:_}){let[v,y]=r.useState(!1),[b,x]=r.useState({x:0,y:0}),S=r.useRef(null),C=s(e.value,0,100,o),w=e=>{y(!0);let t=e.target.getBoundingClientRect();x({x:t.left+t.width/2,y:t.top})},T=()=>{y(!1)},E=(0,a.jsxs)(`div`,{className:`space-y-1`,children:[(0,a.jsx)(`div`,{className:`font-medium`,children:n.label}),(0,a.jsxs)(`div`,{children:[`Period `,i,`: `,c(e.value,u,d)]}),e.count!==void 0&&(0,a.jsxs)(`div`,{className:`text-muted-foreground`,children:[`Count: `,l(e.count)]}),e.metadata&&Object.keys(e.metadata).length>0&&(0,a.jsx)(`div`,{className:`pt-1 border-t`,children:Object.entries(e.metadata).map(([e,t])=>(0,a.jsxs)(`div`,{className:`text-muted-foreground`,children:[e,`: `,String(t)]},e))})]});return(0,a.jsx)(`td`,{ref:S,className:t.cn(`px-3 py-2 text-center text-sm font-medium transition-all cursor-pointer`,`border-r border-border last:border-r-0`,f&&`ring-2 ring-primary ring-inset`,_),style:{backgroundColor:C},onClick:p,onMouseEnter:w,onMouseLeave:T,children:(0,a.jsx)(h,{content:g?g(e,n,i):E,visible:v,position:b,children:m?m(e,n,i):c(e.value,u,d)})})}function v({data:e,period:h=`month`,metric:v=`retention`,metricLabel:y,showAsPercentage:b=!0,decimalPlaces:x=1,colorScale:S=o,showCohortSize:C=!0,showAverageRow:w=!0,showTrends:T=!0,highlightOnHover:E=!0,showLegend:D=!0,enableExport:O=!0,onCellClick:k,onExport:A,renderCell:j,renderTooltip:M,className:N,tableClassName:P,headerClassName:F,cellClassName:I}){let[L,R]=r.useState(null),[z,B]=r.useState(null),V=r.useMemo(()=>Math.max(...e.map(e=>e.data.length),0),[e]),H=r.useMemo(()=>d(e),[e]),U=r.useCallback(t=>{let r=y||v,i=`cohort-${r}-${n.localDateKey(new Date)}`;if(A){A({format:t,filename:i,includeMetadata:!0});return}let a,o,s;t===`csv`?(a=p(e,h,r),o=`text/csv`,s=`csv`):(a=m(e,!0),o=`application/json`,s=`json`);let c=new Blob([a],{type:o}),l=URL.createObjectURL(c),u=document.createElement(`a`);u.href=l,u.download=`${i}.${s}`,document.body.appendChild(u),u.click(),document.body.removeChild(u),URL.revokeObjectURL(l)},[e,h,v,y,A]),W=r.useCallback((e,t)=>{E&&(R(e),B(t))},[E]),G=r.useCallback(()=>{R(null),B(null)},[]),K=y||{retention:`Retention`,churn:`Churn`,revenue:`Revenue`,engagement:`Engagement`,custom:`Value`}[v];return e.length===0?(0,a.jsxs)(`div`,{className:t.cn(`flex flex-col items-center justify-center py-12 text-center`,N),children:[(0,a.jsx)(i.Users,{className:`h-12 w-12 text-muted-foreground/50 mb-4`}),(0,a.jsx)(`h3`,{className:`text-lg font-medium text-muted-foreground`,children:`No cohort data`}),(0,a.jsx)(`p`,{className:`text-sm text-muted-foreground/70 mt-1`,children:`Add cohort data to see the analysis table.`})]}):(0,a.jsxs)(`div`,{className:t.cn(`space-y-4`,N),children:[(0,a.jsxs)(`div`,{className:`flex items-center justify-between flex-wrap gap-4`,children:[(0,a.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,a.jsxs)(`h3`,{className:`text-lg font-semibold`,children:[K,` Analysis`]}),D&&(0,a.jsx)(g,{colorScale:S,min:0,max:100,showAsPercentage:b})]}),O&&(0,a.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,a.jsxs)(`button`,{onClick:()=>U(`csv`),className:`inline-flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium rounded-md border border-input bg-background hover:bg-accent hover:text-accent-foreground transition-colors`,children:[(0,a.jsx)(i.Download,{className:`h-4 w-4`}),`CSV`]}),(0,a.jsxs)(`button`,{onClick:()=>U(`json`),className:`inline-flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium rounded-md border border-input bg-background hover:bg-accent hover:text-accent-foreground transition-colors`,children:[(0,a.jsx)(i.Download,{className:`h-4 w-4`}),`JSON`]})]})]}),(0,a.jsx)(`div`,{className:`overflow-x-auto rounded-lg border border-border`,children:(0,a.jsxs)(`table`,{className:t.cn(`w-full border-collapse`,P),children:[(0,a.jsx)(`thead`,{children:(0,a.jsxs)(`tr`,{className:`bg-muted/50`,children:[(0,a.jsx)(`th`,{className:t.cn(`px-4 py-3 text-left text-sm font-semibold text-foreground border-b border-r border-border sticky left-0 bg-muted/50 z-10`,F),children:`Cohort`}),C&&(0,a.jsx)(`th`,{className:t.cn(`px-4 py-3 text-center text-sm font-semibold text-foreground border-b border-r border-border`,F),children:(0,a.jsxs)(`div`,{className:`flex items-center justify-center gap-1`,children:[(0,a.jsx)(i.Users,{className:`h-4 w-4`}),`Size`]})}),Array.from({length:V},(e,n)=>(0,a.jsx)(`th`,{className:t.cn(`px-3 py-3 text-center text-sm font-semibold text-foreground border-b border-r border-border last:border-r-0 transition-colors`,z===n&&E&&`bg-accent`,F),children:u(h,n)},n))]})}),(0,a.jsxs)(`tbody`,{children:[e.map((n,r)=>{let o=L===n.id;return(0,a.jsxs)(`tr`,{className:t.cn(`transition-colors`,o&&E&&`bg-accent/30`),onMouseEnter:()=>R(n.id),onMouseLeave:()=>R(null),children:[(0,a.jsx)(`td`,{className:t.cn(`px-4 py-2 text-sm font-medium text-foreground border-b border-r border-border sticky left-0 bg-background z-10`,o&&E&&`bg-accent/30`,I),children:(0,a.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n.label,T&&r>0&&n.data[0]&&e[r-1].data[0]&&(0,a.jsxs)(a.Fragment,{children:[f(n.data[0].value,e[r-1].data[0].value)===`up`&&(0,a.jsx)(i.TrendingUp,{className:`h-3 w-3 text-green-600`}),f(n.data[0].value,e[r-1].data[0].value)===`down`&&(0,a.jsx)(i.TrendingDown,{className:`h-3 w-3 text-red-600`})]})]})}),C&&(0,a.jsx)(`td`,{className:t.cn(`px-4 py-2 text-center text-sm text-muted-foreground border-b border-r border-border`,I),children:l(n.size)}),Array.from({length:V},(e,r)=>{let i=n.data[r];return i?(0,a.jsx)(_,{dataPoint:i,row:n,periodIndex:r,colorScale:S,showAsPercentage:b,decimalPlaces:x,highlighted:(o||z===r)&&E,onClick:()=>k?.(n,r,i),renderCell:j,renderTooltip:M,className:t.cn(`border-b`,z===r&&E&&`ring-2 ring-primary/50 ring-inset`,I)},r):(0,a.jsx)(`td`,{className:t.cn(`px-3 py-2 text-center text-sm text-muted-foreground border-b border-r border-border last:border-r-0 bg-muted/20`,I),onMouseEnter:()=>W(n.id,r),onMouseLeave:G,children:`-`},r)})]},n.id)}),w&&H.length>0&&(0,a.jsxs)(`tr`,{className:`bg-muted/30 font-medium`,children:[(0,a.jsx)(`td`,{className:t.cn(`px-4 py-2 text-sm font-semibold text-foreground border-r border-border sticky left-0 bg-muted/30 z-10`,I),children:(0,a.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,a.jsx)(i.Info,{className:`h-4 w-4 text-muted-foreground`}),`Average`]})}),C&&(0,a.jsx)(`td`,{className:t.cn(`px-4 py-2 text-center text-sm text-muted-foreground border-r border-border`,I),children:l(Math.round(e.reduce((e,t)=>e+t.size,0)/e.length))}),Array.from({length:V},(e,n)=>{let r=H[n];return r?(0,a.jsx)(`td`,{className:t.cn(`px-3 py-2 text-center text-sm font-semibold border-r border-border last:border-r-0`,I),style:{backgroundColor:s(r.value,0,100,S)},children:c(r.value,b,x)},n):(0,a.jsx)(`td`,{className:t.cn(`px-3 py-2 text-center text-sm text-muted-foreground border-r border-border last:border-r-0`,I),children:`-`},n)})]})]})]})}),(0,a.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-muted-foreground`,children:[(0,a.jsxs)(`span`,{children:[e.length,` cohort`,e.length===1?``:`s`,` | `,V,` period`,V===1?``:`s`]}),(0,a.jsxs)(`span`,{children:[`Total users: `,l(e.reduce((e,t)=>e+t.size,0))]})]})]})}function y({initialData:e=[],defaultPeriod:t=`month`,defaultMetric:n=`retention`}={}){let[i,a]=r.useState(e),[o,s]=r.useState(t),[c,l]=r.useState(n),[u,d]=r.useState(null);return{data:i,period:o,metric:c,selectedCohort:u,statistics:r.useMemo(()=>{if(i.length===0)return{totalCohorts:0,totalUsers:0,averageCohortSize:0,averageRetentionByPeriod:[],overallAverageRetention:0,bestCohort:null,worstCohort:null};let e=i.reduce((e,t)=>e+t.size,0),t=e/i.length,n=Math.max(...i.map(e=>e.data.length)),r=Array.from({length:n},(e,t)=>{let n=i.map(e=>e.data[t]?.value).filter(e=>e!==void 0);return n.length>0?n.reduce((e,t)=>e+t,0)/n.length:0}),a=i.flatMap(e=>e.data.map(e=>e.value)),o=a.length>0?a.reduce((e,t)=>e+t,0)/a.length:0,s=[...i.map(e=>({row:e,average:e.data.length>0?e.data.reduce((e,t)=>e+t.value,0)/e.data.length:0}))].sort((e,t)=>t.average-e.average),c=s[0]?.row||null,l=s[s.length-1]?.row||null;return{totalCohorts:i.length,totalUsers:e,averageCohortSize:t,averageRetentionByPeriod:r,overallAverageRetention:o,bestCohort:c,worstCohort:l}},[i]),setData:a,setPeriod:s,setMetric:l,setSelectedCohort:d,addCohort:r.useCallback(e=>{a(t=>[...t,e])},[]),updateCohort:r.useCallback((e,t)=>{a(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),removeCohort:r.useCallback(e=>{a(t=>t.filter(t=>t.id!==e))},[]),updateDataPoint:r.useCallback((e,t,n)=>{a(r=>r.map(r=>{if(r.id!==e)return r;let i=[...r.data];return i[t]&&(i[t]={...i[t],...n}),{...r,data:i}}))},[]),sortCohorts:r.useCallback((e,t=`desc`)=>{a(n=>[...n].sort((n,r)=>{let i=0;switch(e){case`date`:i=n.date.getTime()-r.date.getTime();break;case`size`:i=n.size-r.size;break;case`retention`:i=(n.data.length>0?n.data.reduce((e,t)=>e+t.value,0)/n.data.length:0)-(r.data.length>0?r.data.reduce((e,t)=>e+t.value,0)/r.data.length:0);break}return t===`asc`?i:-i}))},[]),filterByDateRange:r.useCallback((e,t)=>i.filter(n=>n.date>=e&&n.date<=t),[i]),getCohortById:r.useCallback(e=>i.find(t=>t.id===e),[i]),reset:r.useCallback(()=>{a(e),s(t),l(n),d(null)},[e,t,n])}}exports.WakaCohortTable=v,exports.default=v,exports.useCohortTable=y;
|
|
@@ -1,5 +1,5 @@
|
|
|
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("../button/index.cjs.js"),r=require("../label/index.cjs.js"),i=require("../input/index.cjs.js"),a=require("../popover/index.cjs.js");let o=require("react");o=e.__toESM(o);let s=require("lucide-react"),c=require("react/jsx-runtime");var l=[`#ef4444`,`#f97316`,`#f59e0b`,`#eab308`,`#84cc16`,`#22c55e`,`#10b981`,`#14b8a6`,`#06b6d4`,`#0ea5e9`,`#3b82f6`,`#6366f1`,`#8b5cf6`,`#a855f7`,`#d946ef`,`#ec4899`,`#f43f5e`,`#000000`,`#6b7280`,`#ffffff`];function u(e,t,n){t/=100,n/=100;let r=t*Math.min(n,1-n),i=t=>{let i=(t+e/30)%12;return n-r*Math.max(Math.min(i-3,9-i,1),-1)};return[Math.round(i(0)*255),Math.round(i(8)*255),Math.round(i(4)*255)]}function d(e,t,n){e/=255,t/=255,n/=255;let r=Math.max(e,t,n),i=Math.min(e,t,n),a=0,o=0,s=(r+i)/2;if(r!==i){let c=r-i;switch(o=s>.5?c/(2-r-i):c/(r+i),r){case e:a=((t-n)/c+(t<n?6:0))*60;break;case t:a=((n-e)/c+2)*60;break;case n:a=((e-t)/c+4)*60;break}}return[Math.round(a),Math.round(o*100),Math.round(s*100)]}function f(e){let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]:null}function p(e,t,n){return`#`+[e,t,n].map(e=>e.toString(16).padStart(2,`0`)).join(``)}function m(e){if(e.startsWith(`#`))return f(e);let t=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(t)return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])];let n=e.match(/hsl\((\d+),\s*(\d+)%?,\s*(\d+)%?\)/);return n?u(parseInt(n[1]),parseInt(n[2]),parseInt(n[3])):null}function h(e,t,n,r){switch(r){case`hex`:return p(e,t,n);case`rgb`:return`rgb(${e}, ${t}, ${n})`;case`hsl`:{let[r,i,a]=d(e,t,n);return`hsl(${r}, ${i}%, ${a}%)`}default:return p(e,t,n)}}var g=o.forwardRef(({value:e=`#3b82f6`,onChange:f,format:p=`hex`,showAlpha:g=!1,showPresets:_=!0,presets:v=l,showEyeDropper:y=!0,disabled:b=!1,placeholder:x=`Sélectionner une couleur`,className:S,size:C=`md`},w)=>{let[T,E]=o.useState(!1),[D,O]=o.useState(0),[k,A]=o.useState(100),[j,M]=o.useState(50),[N,P]=o.useState(e),F=o.useRef(null),I=o.useRef(null);o.useEffect(()=>{let t=m(e);if(t){let[n,r,i]=d(...t);O(n),A(r),M(i),P(e)}},[e]);let L=o.useCallback((e,t,n)=>{let[r,i,a]=u(e,t,n),o=h(r,i,a,p);P(o),f?.(o)},[p,f]),R=e=>{e.preventDefault();let t=F.current?.getBoundingClientRect();if(!t)return;let n=(e,n)=>{let r=Math.max(0,Math.min(100,(e-t.left)/t.width*100)),i=Math.max(0,Math.min(100,100-(n-t.top)/t.height*100));A(r),M(i),L(D,r,i)};n(e.clientX,e.clientY);let r=e=>n(e.clientX,e.clientY),i=()=>{document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},z=e=>{e.preventDefault();let t=I.current?.getBoundingClientRect();if(!t)return;let n=e=>{let n=Math.max(0,Math.min(360,(e-t.left)/t.width*360));O(n),L(n,k,j)};n(e.clientX);let r=e=>n(e.clientX),i=()=>{document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},B=async()=>{if(`EyeDropper`in window)try{let e=m((await new window.EyeDropper().open()).sRGBHex);if(e){let[t,n,r]=d(...e);O(t),A(n),M(r),L(t,n,r)}}catch{}},V=e=>{let t=e.target.value;P(t);let n=m(t);if(n){let[e,t,r]=d(...n);O(e),A(t),M(r),f?.(h(...n,p))}},H={sm:`h-7 w-7`,md:`h-9 w-9`,lg:`h-11 w-11`},U=y&&typeof window<`u`&&`EyeDropper`in window;return(0,c.jsxs)(a.Popover,{open:T,onOpenChange:E,children:[(0,c.jsx)(a.PopoverTrigger,{asChild:!0,children:(0,c.jsx)(n.Button,{ref:w,variant:`outline`,disabled:b,className:t.cn(`p-0.5 rounded-md border`,H[C],S),title:x,children:(0,c.jsx)(`div`,{className:`w-full h-full rounded`,style:{backgroundColor:e}})})}),(0,c.jsx)(a.PopoverContent,{className:`w-64 p-3`,align:`start`,children:(0,c.jsxs)(`div`,{className:`space-y-3`,children:[(0,c.jsx)(`div`,{ref:F,className:`relative w-full h-36 rounded cursor-crosshair`,style:{background:`
|
|
2
2
|
linear-gradient(to top, #000, transparent),
|
|
3
3
|
linear-gradient(to right, #fff, transparent),
|
|
4
4
|
hsl(${D}, 100%, 50%)
|
|
5
|
-
`},onMouseDown:R,children:(0,c.jsx)(`div`,{className:`absolute w-4 h-4 border-2 border-white rounded-full shadow -translate-x-1/2 -translate-y-1/2 pointer-events-none`,style:{left:`${k}%`,top:`${100-j}%`,backgroundColor:`hsl(${D}, ${k}%, ${j}%)`}})}),(0,c.jsx)(`div`,{ref:I,className:`relative w-full h-3 rounded cursor-pointer`,style:{background:`linear-gradient(to right, #f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00)`},onMouseDown:z,children:(0,c.jsx)(`div`,{className:`absolute w-3 h-5 border-2 border-white rounded -translate-x-1/2 -top-1 shadow pointer-events-none`,style:{left:`${D/360*100}%`,backgroundColor:`hsl(${D}, 100%, 50%)`}})}),(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(`div`,{className:`w-8 h-8 rounded border flex-shrink-0`,style:{backgroundColor:e}}),(0,c.jsx)(i.Input,{value:N,onChange:V,className:`h-8 text-sm font-mono`,placeholder:p===`hex`?`#000000`:p===`rgb`?`rgb(0,0,0)`:`hsl(0,0%,0%)`}),U&&(0,c.jsx)(n.Button,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:B,title:`Pipette`,children:(0,c.jsx)(s.Pipette,{className:`h-4 w-4`})})]}),_&&v.length>0&&(0,c.jsxs)(`div`,{children:[(0,c.jsx)(r.Label,{className:`text-xs text-muted-foreground`,children:`Couleurs prédéfinies`}),(0,c.jsx)(`div`,{className:`grid grid-cols-10 gap-1 mt-1`,children:v.map(n=>(0,c.jsx)(`button`,{className:t.cn(`w-5 h-5 rounded border transition-transform hover:scale-110`,e.toLowerCase()===n.toLowerCase()&&`ring-2 ring-primary ring-offset-1`),style:{backgroundColor:n},onClick:()=>{let e=m(n);if(e){let[t,n,r]=d(...e);O(t),A(n),M(r),L(t,n,r)}}},n))})]})]})})]})});g.displayName=`WakaColorPicker`;var _=o.forwardRef(({error:e,label:n,className:i,...a},o)=>(0,c.jsxs)(`div`,{className:t.cn(`space-y-1.5`,i),children:[n&&(0,c.jsx)(r.Label,{htmlFor:a.name,children:n}),(0,c.jsx)(g,{ref:o,...a}),e&&(0,c.jsx)(`p`,{className:`text-sm text-destructive`,children:e})]}));_.displayName=`WakaColorPickerForm`,exports.
|
|
5
|
+
`},onMouseDown:R,children:(0,c.jsx)(`div`,{className:`absolute w-4 h-4 border-2 border-white rounded-full shadow -translate-x-1/2 -translate-y-1/2 pointer-events-none`,style:{left:`${k}%`,top:`${100-j}%`,backgroundColor:`hsl(${D}, ${k}%, ${j}%)`}})}),(0,c.jsx)(`div`,{ref:I,className:`relative w-full h-3 rounded cursor-pointer`,style:{background:`linear-gradient(to right, #f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00)`},onMouseDown:z,children:(0,c.jsx)(`div`,{className:`absolute w-3 h-5 border-2 border-white rounded -translate-x-1/2 -top-1 shadow pointer-events-none`,style:{left:`${D/360*100}%`,backgroundColor:`hsl(${D}, 100%, 50%)`}})}),(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(`div`,{className:`w-8 h-8 rounded border flex-shrink-0`,style:{backgroundColor:e}}),(0,c.jsx)(i.Input,{value:N,onChange:V,className:`h-8 text-sm font-mono`,placeholder:p===`hex`?`#000000`:p===`rgb`?`rgb(0,0,0)`:`hsl(0,0%,0%)`}),U&&(0,c.jsx)(n.Button,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:B,title:`Pipette`,children:(0,c.jsx)(s.Pipette,{className:`h-4 w-4`})})]}),_&&v.length>0&&(0,c.jsxs)(`div`,{children:[(0,c.jsx)(r.Label,{className:`text-xs text-muted-foreground`,children:`Couleurs prédéfinies`}),(0,c.jsx)(`div`,{className:`grid grid-cols-10 gap-1 mt-1`,children:v.map(n=>(0,c.jsx)(`button`,{className:t.cn(`w-5 h-5 rounded border transition-transform hover:scale-110`,e.toLowerCase()===n.toLowerCase()&&`ring-2 ring-primary ring-offset-1`),style:{backgroundColor:n},onClick:()=>{let e=m(n);if(e){let[t,n,r]=d(...e);O(t),A(n),M(r),L(t,n,r)}}},n))})]})]})})]})});g.displayName=`WakaColorPicker`;var _=o.forwardRef(({error:e,label:n,className:i,...a},o)=>(0,c.jsxs)(`div`,{className:t.cn(`space-y-1.5`,i),children:[n&&(0,c.jsx)(r.Label,{htmlFor:a.name,children:n}),(0,c.jsx)(g,{ref:o,...a}),e&&(0,c.jsx)(`p`,{className:`text-sm text-destructive`,children:e})]}));_.displayName=`WakaColorPickerForm`,exports.WakaColorPicker=g,exports.default=g,exports.WakaColorPickerForm=_;
|
|
@@ -280,4 +280,4 @@ var y = s.forwardRef(({ error: t, label: r, className: i, ...a }, o) => /* @__PU
|
|
|
280
280
|
}));
|
|
281
281
|
y.displayName = "WakaColorPickerForm";
|
|
282
282
|
//#endregion
|
|
283
|
-
export {
|
|
283
|
+
export { v as WakaColorPicker, v as default, y as WakaColorPickerForm };
|