@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
|
@@ -78,43 +78,43 @@ function T({ value: t, onChange: n, onBlur: r, placeholder: i, status: a, disabl
|
|
|
78
78
|
className: e("min-h-[60px] resize-none text-sm", a === "missing" && "border-red-300 dark:border-red-700", a === "identical" && "border-yellow-300 dark:border-yellow-700")
|
|
79
79
|
});
|
|
80
80
|
}
|
|
81
|
-
function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me, onDeleteKey: Ne, onAddLanguage: Pe, onExport: k, onImport: Fe, isLoading: Ie = !1, isSaving: Le = !1, className:
|
|
82
|
-
let [
|
|
81
|
+
function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me, onDeleteKey: Ne, onAddLanguage: Pe, onExport: k, onImport: Fe, isLoading: Ie = !1, isSaving: Le = !1, className: A, title: Re = "Translation Editor", description: ze = "Gérez vos traductions i18n" }) {
|
|
82
|
+
let [j, M] = v.useState(D), [N, Be] = v.useState(""), [P, Ve] = v.useState("all"), [He, Ue] = v.useState(/* @__PURE__ */ new Set()), [F, I] = v.useState(null), [We, L] = v.useState(!1), [Ge, R] = v.useState(!1), [Ke, z] = v.useState(!1), [qe, B] = v.useState(!1), [V, Je] = v.useState(""), [H, U] = v.useState({
|
|
83
83
|
code: "",
|
|
84
84
|
label: "",
|
|
85
85
|
flag: ""
|
|
86
|
-
}), [
|
|
86
|
+
}), [W, Ye] = v.useState(null), [G, Xe] = v.useState(""), [Ze, Qe] = v.useState("merge"), [$e, et] = v.useState(/* @__PURE__ */ new Map()), K = v.useRef(null), { languages: q, sourceLanguage: J, keyPathSeparator: tt = ".", autoSave: Y = !0, saveDebounceMs: nt = 300, placeholderPatterns: rt = [
|
|
87
87
|
"{{.*?}}",
|
|
88
88
|
"{.*?}",
|
|
89
89
|
"%s",
|
|
90
90
|
"%d"
|
|
91
|
-
] } = E,
|
|
91
|
+
] } = E, X = q.filter((e) => e.code !== J);
|
|
92
92
|
v.useEffect(() => {
|
|
93
|
-
|
|
94
|
-
}, [D]), v.useEffect(() => (
|
|
95
|
-
await O(
|
|
96
|
-
},
|
|
97
|
-
|
|
93
|
+
M(D);
|
|
94
|
+
}, [D]), v.useEffect(() => (Y && $e.size > 0 && O && (K.current && clearTimeout(K.current), K.current = setTimeout(async () => {
|
|
95
|
+
await O(j), et(/* @__PURE__ */ new Map());
|
|
96
|
+
}, nt)), () => {
|
|
97
|
+
K.current && clearTimeout(K.current);
|
|
98
98
|
}), [
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
$e,
|
|
100
|
+
Y,
|
|
101
|
+
nt,
|
|
102
102
|
O,
|
|
103
|
-
|
|
103
|
+
j
|
|
104
104
|
]);
|
|
105
|
-
let
|
|
106
|
-
let e =
|
|
107
|
-
if (
|
|
108
|
-
let t =
|
|
105
|
+
let Z = v.useMemo(() => {
|
|
106
|
+
let e = j;
|
|
107
|
+
if (N) {
|
|
108
|
+
let t = N.toLowerCase();
|
|
109
109
|
e = e.filter((e) => {
|
|
110
110
|
if (e.key.toLowerCase().includes(t)) return !0;
|
|
111
111
|
for (let n of Object.keys(e.translations)) if (e.translations[n]?.value?.toLowerCase().includes(t)) return !0;
|
|
112
112
|
return !1;
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
|
-
return
|
|
116
|
-
let t = w(e,
|
|
117
|
-
switch (
|
|
115
|
+
return P !== "all" && (e = e.filter((e) => {
|
|
116
|
+
let t = w(e, q.map((e) => e.code), J);
|
|
117
|
+
switch (P) {
|
|
118
118
|
case "missing": return t === "missing";
|
|
119
119
|
case "incomplete": return t === "missing" || t === "identical";
|
|
120
120
|
case "identical": return t === "identical";
|
|
@@ -122,13 +122,13 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
122
122
|
}
|
|
123
123
|
})), e;
|
|
124
124
|
}, [
|
|
125
|
-
|
|
126
|
-
M,
|
|
125
|
+
j,
|
|
127
126
|
N,
|
|
128
|
-
|
|
129
|
-
q
|
|
130
|
-
|
|
131
|
-
|
|
127
|
+
P,
|
|
128
|
+
q,
|
|
129
|
+
J
|
|
130
|
+
]), it = v.useMemo(() => ke(Z, tt), [Z, tt]), Q = (e, t, n) => {
|
|
131
|
+
M((r) => r.map((r) => r.key === e ? {
|
|
132
132
|
...r,
|
|
133
133
|
translations: {
|
|
134
134
|
...r.translations,
|
|
@@ -138,33 +138,33 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
138
138
|
updatedAt: /* @__PURE__ */ new Date()
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
} : r)),
|
|
141
|
+
} : r)), et((r) => {
|
|
142
142
|
let i = new Map(r);
|
|
143
143
|
return i.has(e) || i.set(e, /* @__PURE__ */ new Map()), i.get(e).set(t, n), i;
|
|
144
144
|
}), je?.(e, t, n);
|
|
145
|
-
},
|
|
146
|
-
|
|
147
|
-
},
|
|
148
|
-
await Ne?.(e),
|
|
149
|
-
},
|
|
150
|
-
!
|
|
145
|
+
}, at = async () => {
|
|
146
|
+
V.trim() && (await Me?.(V), Je(""), R(!1));
|
|
147
|
+
}, ot = async (e) => {
|
|
148
|
+
await Ne?.(e), M((t) => t.filter((t) => t.key !== e));
|
|
149
|
+
}, st = async () => {
|
|
150
|
+
!H.code || !H.label || (await Pe?.(H), U({
|
|
151
151
|
code: "",
|
|
152
152
|
label: "",
|
|
153
153
|
flag: ""
|
|
154
|
-
}),
|
|
155
|
-
},
|
|
156
|
-
!
|
|
157
|
-
},
|
|
154
|
+
}), z(!1));
|
|
155
|
+
}, ct = async () => {
|
|
156
|
+
!W || !G || (await Fe?.(W, G, Ze), Ye(null), Xe(""), B(!1));
|
|
157
|
+
}, lt = (e) => {
|
|
158
158
|
navigator.clipboard.writeText(e);
|
|
159
159
|
}, ut = (e) => {
|
|
160
|
-
|
|
160
|
+
Ue((t) => {
|
|
161
161
|
let n = new Set(t);
|
|
162
162
|
return n.has(e) ? n.delete(e) : n.add(e), n;
|
|
163
163
|
});
|
|
164
164
|
}, $ = v.useMemo(() => {
|
|
165
|
-
let e =
|
|
166
|
-
for (let e of
|
|
167
|
-
let i = w(e,
|
|
165
|
+
let e = j.length, t = 0, n = 0, r = 0;
|
|
166
|
+
for (let e of j) {
|
|
167
|
+
let i = w(e, q.map((e) => e.code), J);
|
|
168
168
|
i === "missing" ? t++ : i === "identical" ? n++ : r++;
|
|
169
169
|
}
|
|
170
170
|
return {
|
|
@@ -174,15 +174,15 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
174
174
|
valid: r
|
|
175
175
|
};
|
|
176
176
|
}, [
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
177
|
+
j,
|
|
178
|
+
q,
|
|
179
|
+
J
|
|
180
180
|
]);
|
|
181
181
|
return Ie ? /* @__PURE__ */ x("div", {
|
|
182
|
-
className: e("flex items-center justify-center py-12",
|
|
182
|
+
className: e("flex items-center justify-center py-12", A),
|
|
183
183
|
children: /* @__PURE__ */ x(Se, { className: "h-8 w-8 animate-spin text-muted-foreground" })
|
|
184
184
|
}) : /* @__PURE__ */ x(de, { children: /* @__PURE__ */ S("div", {
|
|
185
|
-
className: e("flex flex-col h-full",
|
|
185
|
+
className: e("flex flex-col h-full", A),
|
|
186
186
|
children: [
|
|
187
187
|
/* @__PURE__ */ S("div", {
|
|
188
188
|
className: "flex flex-col gap-4 p-4 border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
|
|
@@ -191,23 +191,23 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
191
191
|
className: "flex items-center justify-between",
|
|
192
192
|
children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S("h2", {
|
|
193
193
|
className: "text-2xl font-bold flex items-center gap-2",
|
|
194
|
-
children: [/* @__PURE__ */ x(xe, { className: "h-6 w-6" }),
|
|
194
|
+
children: [/* @__PURE__ */ x(xe, { className: "h-6 w-6" }), Re]
|
|
195
195
|
}), /* @__PURE__ */ x("p", {
|
|
196
196
|
className: "text-sm text-muted-foreground",
|
|
197
|
-
children:
|
|
197
|
+
children: ze
|
|
198
198
|
})] }), /* @__PURE__ */ S("div", {
|
|
199
199
|
className: "flex items-center gap-2",
|
|
200
200
|
children: [
|
|
201
201
|
/* @__PURE__ */ S(n, {
|
|
202
202
|
variant: "outline",
|
|
203
203
|
size: "sm",
|
|
204
|
-
onClick: () =>
|
|
204
|
+
onClick: () => R(!0),
|
|
205
205
|
children: [/* @__PURE__ */ x(we, { className: "h-4 w-4 mr-1" }), "Ajouter une clé"]
|
|
206
206
|
}),
|
|
207
207
|
/* @__PURE__ */ S(n, {
|
|
208
208
|
variant: "outline",
|
|
209
209
|
size: "sm",
|
|
210
|
-
onClick: () =>
|
|
210
|
+
onClick: () => z(!0),
|
|
211
211
|
children: [/* @__PURE__ */ x(be, { className: "h-4 w-4 mr-1" }), "Ajouter une langue"]
|
|
212
212
|
}),
|
|
213
213
|
/* @__PURE__ */ S(l, { children: [/* @__PURE__ */ x(ne, {
|
|
@@ -224,7 +224,7 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
224
224
|
onClick: () => k?.(),
|
|
225
225
|
children: [/* @__PURE__ */ x(_e, { className: "h-4 w-4 mr-2" }), "Exporter tout"]
|
|
226
226
|
}),
|
|
227
|
-
|
|
227
|
+
q.map((e) => /* @__PURE__ */ S(u, {
|
|
228
228
|
onClick: () => k?.(e.code),
|
|
229
229
|
children: [
|
|
230
230
|
/* @__PURE__ */ x(_e, { className: "h-4 w-4 mr-2" }),
|
|
@@ -234,7 +234,7 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
234
234
|
}, e.code)),
|
|
235
235
|
/* @__PURE__ */ x(te, {}),
|
|
236
236
|
/* @__PURE__ */ S(u, {
|
|
237
|
-
onClick: () =>
|
|
237
|
+
onClick: () => B(!0),
|
|
238
238
|
children: [/* @__PURE__ */ x(De, { className: "h-4 w-4 mr-2" }), "Importer"]
|
|
239
239
|
})
|
|
240
240
|
]
|
|
@@ -287,12 +287,12 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
287
287
|
/* @__PURE__ */ x(Te, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }),
|
|
288
288
|
/* @__PURE__ */ x(d, {
|
|
289
289
|
placeholder: "Rechercher une clé ou une traduction...",
|
|
290
|
-
value:
|
|
291
|
-
onChange: (e) =>
|
|
290
|
+
value: N,
|
|
291
|
+
onChange: (e) => Be(e.target.value),
|
|
292
292
|
className: "pl-10"
|
|
293
293
|
}),
|
|
294
|
-
|
|
295
|
-
onClick: () =>
|
|
294
|
+
N && /* @__PURE__ */ x("button", {
|
|
295
|
+
onClick: () => Be(""),
|
|
296
296
|
className: "absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",
|
|
297
297
|
children: /* @__PURE__ */ x(Oe, { className: "h-4 w-4" })
|
|
298
298
|
})
|
|
@@ -300,8 +300,8 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
300
300
|
}), /* @__PURE__ */ S("div", {
|
|
301
301
|
className: "flex items-center gap-2",
|
|
302
302
|
children: [/* @__PURE__ */ x(ye, { className: "h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ S(f, {
|
|
303
|
-
value:
|
|
304
|
-
onValueChange: (e) =>
|
|
303
|
+
value: P,
|
|
304
|
+
onValueChange: (e) => Ve(e),
|
|
305
305
|
children: [/* @__PURE__ */ x(h, {
|
|
306
306
|
className: "w-[180px]",
|
|
307
307
|
children: /* @__PURE__ */ x(g, {})
|
|
@@ -357,9 +357,9 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
357
357
|
}),
|
|
358
358
|
/* @__PURE__ */ S("th", {
|
|
359
359
|
className: "text-left p-3 font-medium text-sm border-b",
|
|
360
|
-
children: [
|
|
360
|
+
children: [q.find((e) => e.code === J)?.label || J, " (source)"]
|
|
361
361
|
}),
|
|
362
|
-
|
|
362
|
+
X.map((e) => /* @__PURE__ */ x("th", {
|
|
363
363
|
className: "text-left p-3 font-medium text-sm border-b",
|
|
364
364
|
children: /* @__PURE__ */ S("span", {
|
|
365
365
|
className: "flex items-center gap-2",
|
|
@@ -375,16 +375,16 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
375
375
|
children: "Actions"
|
|
376
376
|
})
|
|
377
377
|
] })
|
|
378
|
-
}), /* @__PURE__ */ S("tbody", { children: [Array.from(
|
|
378
|
+
}), /* @__PURE__ */ S("tbody", { children: [Array.from(it.entries()).map(([e, r]) => /* @__PURE__ */ S(v.Fragment, { children: [e !== "__root__" && /* @__PURE__ */ x("tr", {
|
|
379
379
|
className: "bg-muted/30",
|
|
380
380
|
children: /* @__PURE__ */ x("td", {
|
|
381
|
-
colSpan:
|
|
381
|
+
colSpan: X.length + 4,
|
|
382
382
|
className: "p-2",
|
|
383
383
|
children: /* @__PURE__ */ S("button", {
|
|
384
384
|
onClick: () => ut(e),
|
|
385
385
|
className: "flex items-center gap-2 text-sm font-medium hover:text-primary transition-colors",
|
|
386
386
|
children: [
|
|
387
|
-
|
|
387
|
+
He.has(e) ? /* @__PURE__ */ x(he, { className: "h-4 w-4" }) : /* @__PURE__ */ x(me, { className: "h-4 w-4" }),
|
|
388
388
|
e,
|
|
389
389
|
/* @__PURE__ */ x(t, {
|
|
390
390
|
variant: "secondary",
|
|
@@ -394,8 +394,8 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
394
394
|
]
|
|
395
395
|
})
|
|
396
396
|
})
|
|
397
|
-
}), !
|
|
398
|
-
let t = w(e,
|
|
397
|
+
}), !He.has(e) && r.map((e) => {
|
|
398
|
+
let t = w(e, q.map((e) => e.code), J);
|
|
399
399
|
return /* @__PURE__ */ S("tr", {
|
|
400
400
|
className: "border-b hover:bg-muted/30 transition-colors",
|
|
401
401
|
children: [
|
|
@@ -410,7 +410,7 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
410
410
|
}), /* @__PURE__ */ S(le, { children: [/* @__PURE__ */ x(fe, {
|
|
411
411
|
asChild: !0,
|
|
412
412
|
children: /* @__PURE__ */ x("button", {
|
|
413
|
-
onClick: () =>
|
|
413
|
+
onClick: () => lt(e.key),
|
|
414
414
|
className: "text-muted-foreground hover:text-foreground",
|
|
415
415
|
children: /* @__PURE__ */ x(ge, { className: "h-3 w-3" })
|
|
416
416
|
})
|
|
@@ -420,19 +420,19 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
420
420
|
/* @__PURE__ */ x("td", {
|
|
421
421
|
className: "p-2",
|
|
422
422
|
children: /* @__PURE__ */ x(T, {
|
|
423
|
-
value: e.translations[
|
|
424
|
-
onChange: (t) =>
|
|
423
|
+
value: e.translations[J]?.value || "",
|
|
424
|
+
onChange: (t) => Q(e.key, J, t),
|
|
425
425
|
placeholder: "Texte source...",
|
|
426
|
-
status: e.translations[
|
|
426
|
+
status: e.translations[J]?.value ? "valid" : "missing"
|
|
427
427
|
})
|
|
428
428
|
}),
|
|
429
|
-
|
|
430
|
-
let n = C(e, t.code,
|
|
429
|
+
X.map((t) => {
|
|
430
|
+
let n = C(e, t.code, J);
|
|
431
431
|
return /* @__PURE__ */ x("td", {
|
|
432
432
|
className: "p-2",
|
|
433
433
|
children: /* @__PURE__ */ x(T, {
|
|
434
434
|
value: e.translations[t.code]?.value || "",
|
|
435
|
-
onChange: (n) =>
|
|
435
|
+
onChange: (n) => Q(e.key, t.code, n),
|
|
436
436
|
placeholder: `Traduction ${t.label}...`,
|
|
437
437
|
status: n
|
|
438
438
|
})
|
|
@@ -456,18 +456,18 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
456
456
|
children: [
|
|
457
457
|
/* @__PURE__ */ S(u, {
|
|
458
458
|
onClick: () => {
|
|
459
|
-
|
|
459
|
+
I(e), L(!0);
|
|
460
460
|
},
|
|
461
461
|
children: [/* @__PURE__ */ x(ve, { className: "h-4 w-4 mr-2" }), "Éditer"]
|
|
462
462
|
}),
|
|
463
463
|
/* @__PURE__ */ S(u, {
|
|
464
|
-
onClick: () =>
|
|
464
|
+
onClick: () => lt(e.key),
|
|
465
465
|
children: [/* @__PURE__ */ x(ge, { className: "h-4 w-4 mr-2" }), "Copier la clé"]
|
|
466
466
|
}),
|
|
467
467
|
/* @__PURE__ */ x(te, {}),
|
|
468
468
|
/* @__PURE__ */ S(u, {
|
|
469
469
|
className: "text-destructive",
|
|
470
|
-
onClick: () =>
|
|
470
|
+
onClick: () => ot(e.key),
|
|
471
471
|
children: [/* @__PURE__ */ x(Ee, { className: "h-4 w-4 mr-2" }), "Supprimer"]
|
|
472
472
|
})
|
|
473
473
|
]
|
|
@@ -475,40 +475,40 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
475
475
|
})
|
|
476
476
|
]
|
|
477
477
|
}, e.key);
|
|
478
|
-
})] }, e)),
|
|
479
|
-
colSpan:
|
|
478
|
+
})] }, e)), Z.length === 0 && /* @__PURE__ */ x("tr", { children: /* @__PURE__ */ S("td", {
|
|
479
|
+
colSpan: X.length + 4,
|
|
480
480
|
className: "p-12 text-center",
|
|
481
481
|
children: [/* @__PURE__ */ x(xe, { className: "h-12 w-12 mx-auto text-muted-foreground/50 mb-4" }), /* @__PURE__ */ x("p", {
|
|
482
482
|
className: "text-muted-foreground",
|
|
483
|
-
children:
|
|
483
|
+
children: N || P !== "all" ? "Aucune traduction ne correspond à vos critères" : "Aucune traduction disponible"
|
|
484
484
|
})]
|
|
485
485
|
}) })] })]
|
|
486
486
|
})
|
|
487
487
|
}),
|
|
488
488
|
/* @__PURE__ */ x(re, {
|
|
489
|
-
open:
|
|
490
|
-
onOpenChange:
|
|
489
|
+
open: We,
|
|
490
|
+
onOpenChange: L,
|
|
491
491
|
children: /* @__PURE__ */ S(ie, {
|
|
492
492
|
className: "w-[500px] sm:max-w-[500px]",
|
|
493
493
|
children: [
|
|
494
|
-
/* @__PURE__ */ S(se, { children: [/* @__PURE__ */ x(ce, { children: "Éditer la traduction" }), /* @__PURE__ */ x(ae, { children:
|
|
495
|
-
|
|
494
|
+
/* @__PURE__ */ S(se, { children: [/* @__PURE__ */ x(ce, { children: "Éditer la traduction" }), /* @__PURE__ */ x(ae, { children: F?.key })] }),
|
|
495
|
+
F && /* @__PURE__ */ S("div", {
|
|
496
496
|
className: "py-6 space-y-6",
|
|
497
497
|
children: [
|
|
498
498
|
/* @__PURE__ */ S("div", {
|
|
499
499
|
className: "space-y-2",
|
|
500
500
|
children: [/* @__PURE__ */ S("label", {
|
|
501
501
|
className: "text-sm font-medium",
|
|
502
|
-
children: [
|
|
502
|
+
children: [q.find((e) => e.code === J)?.label, " (source)"]
|
|
503
503
|
}), /* @__PURE__ */ x(_, {
|
|
504
|
-
value:
|
|
504
|
+
value: F.translations[J]?.value || "",
|
|
505
505
|
onChange: (e) => {
|
|
506
|
-
|
|
507
|
-
...
|
|
506
|
+
Q(F.key, J, e.target.value), I({
|
|
507
|
+
...F,
|
|
508
508
|
translations: {
|
|
509
|
-
...
|
|
510
|
-
[
|
|
511
|
-
...
|
|
509
|
+
...F.translations,
|
|
510
|
+
[J]: {
|
|
511
|
+
...F.translations[J],
|
|
512
512
|
value: e.target.value
|
|
513
513
|
}
|
|
514
514
|
}
|
|
@@ -518,20 +518,20 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
518
518
|
className: "min-h-[100px]"
|
|
519
519
|
})]
|
|
520
520
|
}),
|
|
521
|
-
|
|
521
|
+
q.filter((e) => e.code !== J).map((e) => /* @__PURE__ */ S("div", {
|
|
522
522
|
className: "space-y-2",
|
|
523
523
|
children: [/* @__PURE__ */ S("label", {
|
|
524
524
|
className: "text-sm font-medium flex items-center gap-2",
|
|
525
525
|
children: [e.flag && /* @__PURE__ */ x("span", { children: e.flag }), e.label]
|
|
526
526
|
}), /* @__PURE__ */ x(_, {
|
|
527
|
-
value:
|
|
527
|
+
value: F.translations[e.code]?.value || "",
|
|
528
528
|
onChange: (t) => {
|
|
529
|
-
|
|
530
|
-
...
|
|
529
|
+
Q(F.key, e.code, t.target.value), I({
|
|
530
|
+
...F,
|
|
531
531
|
translations: {
|
|
532
|
-
...
|
|
532
|
+
...F.translations,
|
|
533
533
|
[e.code]: {
|
|
534
|
-
...
|
|
534
|
+
...F.translations[e.code],
|
|
535
535
|
value: t.target.value
|
|
536
536
|
}
|
|
537
537
|
}
|
|
@@ -555,38 +555,38 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
555
555
|
}),
|
|
556
556
|
/* @__PURE__ */ x(oe, { children: /* @__PURE__ */ x(n, {
|
|
557
557
|
variant: "outline",
|
|
558
|
-
onClick: () =>
|
|
558
|
+
onClick: () => L(!1),
|
|
559
559
|
children: "Fermer"
|
|
560
560
|
}) })
|
|
561
561
|
]
|
|
562
562
|
})
|
|
563
563
|
}),
|
|
564
564
|
/* @__PURE__ */ x(r, {
|
|
565
|
-
open:
|
|
566
|
-
onOpenChange:
|
|
565
|
+
open: Ge,
|
|
566
|
+
onOpenChange: R,
|
|
567
567
|
children: /* @__PURE__ */ S(i, { children: [
|
|
568
568
|
/* @__PURE__ */ S(s, { children: [/* @__PURE__ */ x(c, { children: "Ajouter une clé de traduction" }), /* @__PURE__ */ x(a, { children: "Entrez la clé de traduction (ex: common.buttons.submit)" })] }),
|
|
569
569
|
/* @__PURE__ */ x("div", {
|
|
570
570
|
className: "py-4",
|
|
571
571
|
children: /* @__PURE__ */ x(d, {
|
|
572
|
-
value:
|
|
573
|
-
onChange: (e) =>
|
|
572
|
+
value: V,
|
|
573
|
+
onChange: (e) => Je(e.target.value),
|
|
574
574
|
placeholder: "namespace.key.name"
|
|
575
575
|
})
|
|
576
576
|
}),
|
|
577
577
|
/* @__PURE__ */ S(o, { children: [/* @__PURE__ */ x(n, {
|
|
578
578
|
variant: "outline",
|
|
579
|
-
onClick: () =>
|
|
579
|
+
onClick: () => R(!1),
|
|
580
580
|
children: "Annuler"
|
|
581
581
|
}), /* @__PURE__ */ x(n, {
|
|
582
|
-
onClick:
|
|
582
|
+
onClick: at,
|
|
583
583
|
children: "Ajouter"
|
|
584
584
|
})] })
|
|
585
585
|
] })
|
|
586
586
|
}),
|
|
587
587
|
/* @__PURE__ */ x(r, {
|
|
588
|
-
open:
|
|
589
|
-
onOpenChange:
|
|
588
|
+
open: Ke,
|
|
589
|
+
onOpenChange: z,
|
|
590
590
|
children: /* @__PURE__ */ S(i, { children: [
|
|
591
591
|
/* @__PURE__ */ S(s, { children: [/* @__PURE__ */ x(c, { children: "Ajouter une langue" }), /* @__PURE__ */ x(a, { children: "Configurez la nouvelle langue à ajouter" })] }),
|
|
592
592
|
/* @__PURE__ */ S("div", {
|
|
@@ -598,9 +598,9 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
598
598
|
className: "text-sm font-medium",
|
|
599
599
|
children: "Code (ex: de, it, pt)"
|
|
600
600
|
}), /* @__PURE__ */ x(d, {
|
|
601
|
-
value:
|
|
602
|
-
onChange: (e) =>
|
|
603
|
-
...
|
|
601
|
+
value: H.code,
|
|
602
|
+
onChange: (e) => U({
|
|
603
|
+
...H,
|
|
604
604
|
code: e.target.value
|
|
605
605
|
}),
|
|
606
606
|
placeholder: "de"
|
|
@@ -612,9 +612,9 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
612
612
|
className: "text-sm font-medium",
|
|
613
613
|
children: "Label"
|
|
614
614
|
}), /* @__PURE__ */ x(d, {
|
|
615
|
-
value:
|
|
616
|
-
onChange: (e) =>
|
|
617
|
-
...
|
|
615
|
+
value: H.label,
|
|
616
|
+
onChange: (e) => U({
|
|
617
|
+
...H,
|
|
618
618
|
label: e.target.value
|
|
619
619
|
}),
|
|
620
620
|
placeholder: "Allemand"
|
|
@@ -626,9 +626,9 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
626
626
|
className: "text-sm font-medium",
|
|
627
627
|
children: "Emoji drapeau (optionnel)"
|
|
628
628
|
}), /* @__PURE__ */ x(d, {
|
|
629
|
-
value:
|
|
630
|
-
onChange: (e) =>
|
|
631
|
-
...
|
|
629
|
+
value: H.flag,
|
|
630
|
+
onChange: (e) => U({
|
|
631
|
+
...H,
|
|
632
632
|
flag: e.target.value
|
|
633
633
|
}),
|
|
634
634
|
placeholder: "🇩🇪"
|
|
@@ -638,17 +638,17 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
638
638
|
}),
|
|
639
639
|
/* @__PURE__ */ S(o, { children: [/* @__PURE__ */ x(n, {
|
|
640
640
|
variant: "outline",
|
|
641
|
-
onClick: () =>
|
|
641
|
+
onClick: () => z(!1),
|
|
642
642
|
children: "Annuler"
|
|
643
643
|
}), /* @__PURE__ */ x(n, {
|
|
644
|
-
onClick:
|
|
644
|
+
onClick: st,
|
|
645
645
|
children: "Ajouter"
|
|
646
646
|
})] })
|
|
647
647
|
] })
|
|
648
648
|
}),
|
|
649
649
|
/* @__PURE__ */ x(r, {
|
|
650
|
-
open:
|
|
651
|
-
onOpenChange:
|
|
650
|
+
open: qe,
|
|
651
|
+
onOpenChange: B,
|
|
652
652
|
children: /* @__PURE__ */ S(i, { children: [
|
|
653
653
|
/* @__PURE__ */ S(s, { children: [/* @__PURE__ */ x(c, { children: "Importer des traductions" }), /* @__PURE__ */ x(a, { children: "Sélectionnez un fichier JSON à importer" })] }),
|
|
654
654
|
/* @__PURE__ */ S("div", {
|
|
@@ -662,7 +662,7 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
662
662
|
}), /* @__PURE__ */ x(d, {
|
|
663
663
|
type: "file",
|
|
664
664
|
accept: ".json",
|
|
665
|
-
onChange: (e) =>
|
|
665
|
+
onChange: (e) => Ye(e.target.files?.[0] || null)
|
|
666
666
|
})]
|
|
667
667
|
}),
|
|
668
668
|
/* @__PURE__ */ S("div", {
|
|
@@ -671,9 +671,9 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
671
671
|
className: "text-sm font-medium",
|
|
672
672
|
children: "Langue cible"
|
|
673
673
|
}), /* @__PURE__ */ S(f, {
|
|
674
|
-
value:
|
|
675
|
-
onValueChange:
|
|
676
|
-
children: [/* @__PURE__ */ x(h, { children: /* @__PURE__ */ x(g, { placeholder: "Sélectionner une langue" }) }), /* @__PURE__ */ x(p, { children:
|
|
674
|
+
value: G,
|
|
675
|
+
onValueChange: Xe,
|
|
676
|
+
children: [/* @__PURE__ */ x(h, { children: /* @__PURE__ */ x(g, { placeholder: "Sélectionner une langue" }) }), /* @__PURE__ */ x(p, { children: q.map((e) => /* @__PURE__ */ S(m, {
|
|
677
677
|
value: e.code,
|
|
678
678
|
children: [e.flag && /* @__PURE__ */ x("span", {
|
|
679
679
|
className: "mr-2",
|
|
@@ -688,8 +688,8 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
688
688
|
className: "text-sm font-medium",
|
|
689
689
|
children: "Stratégie"
|
|
690
690
|
}), /* @__PURE__ */ S(f, {
|
|
691
|
-
value:
|
|
692
|
-
onValueChange: (e) =>
|
|
691
|
+
value: Ze,
|
|
692
|
+
onValueChange: (e) => Qe(e),
|
|
693
693
|
children: [/* @__PURE__ */ x(h, { children: /* @__PURE__ */ x(g, {}) }), /* @__PURE__ */ S(p, { children: [/* @__PURE__ */ x(m, {
|
|
694
694
|
value: "merge",
|
|
695
695
|
children: "Fusionner (conserver les existantes)"
|
|
@@ -703,11 +703,11 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
703
703
|
}),
|
|
704
704
|
/* @__PURE__ */ S(o, { children: [/* @__PURE__ */ x(n, {
|
|
705
705
|
variant: "outline",
|
|
706
|
-
onClick: () =>
|
|
706
|
+
onClick: () => B(!1),
|
|
707
707
|
children: "Annuler"
|
|
708
708
|
}), /* @__PURE__ */ x(n, {
|
|
709
|
-
onClick:
|
|
710
|
-
disabled: !
|
|
709
|
+
onClick: ct,
|
|
710
|
+
disabled: !W || !G,
|
|
711
711
|
children: "Importer"
|
|
712
712
|
})] })
|
|
713
713
|
] })
|
|
@@ -716,4 +716,4 @@ function E({ config: E, translations: D, onChange: je, onSave: O, onAddKey: Me,
|
|
|
716
716
|
}) });
|
|
717
717
|
}
|
|
718
718
|
//#endregion
|
|
719
|
-
export { E as default };
|
|
719
|
+
export { E as WakaI18nEditor, E as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`),n=require(`../../components/avatar/index.cjs.js`),r=require(`../../components/badge/index.cjs.js`),i=require(`../../components/button/index.cjs.js`),a=require(`../../components/card/index.cjs.js`),o=require(`../../components/input/index.cjs.js`),s=require(`../../components/select/index.cjs.js`),c=require(`../../components/scroll-area/index.cjs.js`);let l=require(`react`);l=e.__toESM(l);let u=require(`lucide-react`),d=require(`react/jsx-runtime`);var f={critical:{label:`Critical`,color:`text-red-500`,bgColor:`bg-red-500`},high:{label:`High`,color:`text-orange-500`,bgColor:`bg-orange-500`},medium:{label:`Medium`,color:`text-yellow-500`,bgColor:`bg-yellow-500`},low:{label:`Low`,color:`text-blue-500`,bgColor:`bg-blue-500`}},p={triggered:{label:`Triggered`,color:`text-red-500`,icon:u.AlertCircle},acknowledged:{label:`Acknowledged`,color:`text-orange-500`,icon:u.Bell},investigating:{label:`Investigating`,color:`text-yellow-500`,icon:u.Search},identified:{label:`Identified`,color:`text-blue-500`,icon:u.Activity},resolved:{label:`Resolved`,color:`text-green-500`,icon:u.CheckCircle2},closed:{label:`Closed`,color:`text-gray-500`,icon:u.XCircle}};function m(e,t){let n=(t||new Date).getTime()-e.getTime(),r=Math.floor(n/6e4),i=Math.floor(r/60),a=Math.floor(i/24);return a>0?`${a}d ${i%24}h`:i>0?`${i}h ${r%60}m`:`${r}m`}function h(e){return e.toLocaleTimeString(`fr-FR`,{hour:`2-digit`,minute:`2-digit`})}function g({incident:e,onAcknowledge:o,onResolve:s,onSelect:c}){let l=f[e.severity],h=p[e.status],g=h.icon,_=![`resolved`,`closed`].includes(e.status);return(0,d.jsx)(a.Card,{className:t.cn(`cursor-pointer transition-all hover:shadow-md`,e.severity===`critical`&&_&&`border-red-500/50 bg-red-500/5`,e.severity===`high`&&_&&`border-orange-500/30`),onClick:c,children:(0,d.jsx)(a.CardContent,{className:`p-4`,children:(0,d.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,d.jsx)(`div`,{className:t.cn(`p-2 rounded-lg shrink-0`,`${l.bgColor}/10`),children:(0,d.jsx)(u.AlertTriangle,{className:t.cn(`h-5 w-5`,l.color)})}),(0,d.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,d.jsx)(r.Badge,{className:t.cn(`text-white text-xs`,l.bgColor),children:l.label}),(0,d.jsxs)(r.Badge,{variant:`outline`,className:t.cn(`text-xs`,h.color),children:[(0,d.jsx)(g,{className:`h-3 w-3 mr-1`}),h.label]}),e.service&&(0,d.jsx)(r.Badge,{variant:`secondary`,className:`text-xs`,children:e.service})]}),(0,d.jsx)(`h4`,{className:`font-semibold mt-2 truncate`,children:e.title}),e.description&&(0,d.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 line-clamp-2`,children:e.description}),(0,d.jsxs)(`div`,{className:`flex items-center gap-4 mt-3 text-xs text-muted-foreground`,children:[(0,d.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(u.Clock,{className:`h-3 w-3`}),m(e.createdAt,e.resolvedAt)]}),e.affectedUsers!==void 0&&(0,d.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(u.Users,{className:`h-3 w-3`}),e.affectedUsers,` affected`]}),(0,d.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(u.MessageSquare,{className:`h-3 w-3`}),e.events.length]})]}),e.responders.length>0&&(0,d.jsx)(`div`,{className:`flex items-center gap-2 mt-3`,children:(0,d.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.responders.slice(0,3).map(e=>(0,d.jsxs)(n.Avatar,{className:`h-6 w-6 border-2 border-background`,children:[(0,d.jsx)(n.AvatarImage,{src:e.avatar}),(0,d.jsx)(n.AvatarFallback,{className:`text-xs`,children:e.name.slice(0,2).toUpperCase()})]},e.id)),e.responders.length>3&&(0,d.jsxs)(`div`,{className:`h-6 w-6 rounded-full bg-muted flex items-center justify-center text-xs border-2 border-background`,children:[`+`,e.responders.length-3]})]})})]}),_&&(0,d.jsxs)(`div`,{className:`flex flex-col gap-1 shrink-0`,children:[e.status===`triggered`&&o&&(0,d.jsx)(i.Button,{size:`sm`,variant:`outline`,className:`h-7 text-xs`,onClick:e=>{e.stopPropagation(),o()},children:`Ack`}),e.status!==`triggered`&&e.status!==`resolved`&&s&&(0,d.jsx)(i.Button,{size:`sm`,variant:`outline`,className:`h-7 text-xs text-green-500`,onClick:e=>{e.stopPropagation(),s()},children:`Resolve`})]})]})})})}function _({incidents:e}){let t=e.filter(e=>![`resolved`,`closed`].includes(e.status)),n=t.filter(e=>e.severity===`critical`),r=l.useMemo(()=>{let t=e.filter(e=>e.resolvedAt);if(t.length===0)return 0;let n=t.reduce((e,t)=>e+(t.resolvedAt.getTime()-t.createdAt.getTime()),0);return Math.round(n/t.length/6e4)},[e]);return(0,d.jsxs)(`div`,{className:`grid grid-cols-4 gap-4`,children:[(0,d.jsx)(a.Card,{children:(0,d.jsxs)(a.CardContent,{className:`p-4 text-center`,children:[(0,d.jsx)(`div`,{className:`text-3xl font-bold text-red-500`,children:t.length}),(0,d.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Active Incidents`})]})}),(0,d.jsx)(a.Card,{children:(0,d.jsxs)(a.CardContent,{className:`p-4 text-center`,children:[(0,d.jsx)(`div`,{className:`text-3xl font-bold text-orange-500`,children:n.length}),(0,d.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Critical`})]})}),(0,d.jsx)(a.Card,{children:(0,d.jsxs)(a.CardContent,{className:`p-4 text-center`,children:[(0,d.jsxs)(`div`,{className:`text-3xl font-bold`,children:[r,`m`]}),(0,d.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Avg MTTR`})]})}),(0,d.jsx)(a.Card,{children:(0,d.jsxs)(a.CardContent,{className:`p-4 text-center`,children:[(0,d.jsx)(`div`,{className:`text-3xl font-bold text-green-500`,children:e.filter(e=>e.status===`resolved`).length}),(0,d.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Resolved Today`})]})})]})}function v({incidents:e,onCreateIncident:m,onAcknowledge:v,onResolve:y,onEscalate:b,onAssign:x,className:S}){let[C,w]=l.useState(``),[T,E]=l.useState(`all`),[D,O]=l.useState(`active`),[k,A]=l.useState(null),j=l.useMemo(()=>e.filter(e=>!(C&&!e.title.toLowerCase().includes(C.toLowerCase())||T!==`all`&&e.severity!==T||D===`active`&&[`resolved`,`closed`].includes(e.status)||D===`resolved`&&![`resolved`,`closed`].includes(e.status))).sort((e,t)=>{let n={critical:0,high:1,medium:2,low:3},r=n[e.severity]-n[t.severity];return r===0?t.createdAt.getTime()-e.createdAt.getTime():r}),[e,C,T,D]);return(0,d.jsxs)(`div`,{className:t.cn(`flex flex-col gap-6`,S),children:[(0,d.jsx)(_,{incidents:e}),(0,d.jsxs)(`div`,{className:`flex gap-6`,children:[(0,d.jsxs)(`div`,{className:`flex-1 space-y-4`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,d.jsxs)(`div`,{className:`relative flex-1 max-w-sm`,children:[(0,d.jsx)(u.Search,{className:`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,d.jsx)(o.Input,{placeholder:`Search incidents...`,value:C,onChange:e=>w(e.target.value),className:`pl-9`})]}),(0,d.jsxs)(s.Select,{value:T,onValueChange:e=>E(e),children:[(0,d.jsx)(s.SelectTrigger,{className:`w-32`,children:(0,d.jsx)(s.SelectValue,{placeholder:`Severity`})}),(0,d.jsxs)(s.SelectContent,{children:[(0,d.jsx)(s.SelectItem,{value:`all`,children:`All Severity`}),(0,d.jsx)(s.SelectItem,{value:`critical`,children:`Critical`}),(0,d.jsx)(s.SelectItem,{value:`high`,children:`High`}),(0,d.jsx)(s.SelectItem,{value:`medium`,children:`Medium`}),(0,d.jsx)(s.SelectItem,{value:`low`,children:`Low`})]})]}),(0,d.jsxs)(s.Select,{value:D,onValueChange:e=>O(e),children:[(0,d.jsx)(s.SelectTrigger,{className:`w-32`,children:(0,d.jsx)(s.SelectValue,{placeholder:`Status`})}),(0,d.jsxs)(s.SelectContent,{children:[(0,d.jsx)(s.SelectItem,{value:`active`,children:`Active`}),(0,d.jsx)(s.SelectItem,{value:`resolved`,children:`Resolved`}),(0,d.jsx)(s.SelectItem,{value:`all`,children:`All`})]})]}),m&&(0,d.jsxs)(i.Button,{onClick:m,children:[(0,d.jsx)(u.Plus,{className:`h-4 w-4 mr-1`}),`Create Incident`]})]}),(0,d.jsx)(c.ScrollArea,{className:`h-[600px]`,children:(0,d.jsx)(`div`,{className:`space-y-3 pr-4`,children:j.length===0?(0,d.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-48 text-muted-foreground`,children:[(0,d.jsx)(u.Shield,{className:`h-12 w-12 mb-4 text-green-500`}),(0,d.jsx)(`p`,{className:`text-lg font-medium`,children:`No incidents`}),(0,d.jsx)(`p`,{className:`text-sm`,children:`All systems are operational`})]}):j.map(e=>(0,d.jsx)(g,{incident:e,onAcknowledge:v?()=>v(e):void 0,onResolve:y?()=>y(e):void 0,onSelect:()=>A(e)},e.id))})})]}),k&&(0,d.jsxs)(a.Card,{className:`w-96 shrink-0`,children:[(0,d.jsxs)(a.CardHeader,{className:`pb-3`,children:[(0,d.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,d.jsx)(r.Badge,{className:t.cn(`text-white`,f[k.severity].bgColor),children:f[k.severity].label}),(0,d.jsx)(i.Button,{variant:`ghost`,size:`sm`,onClick:()=>A(null),children:(0,d.jsx)(u.XCircle,{className:`h-4 w-4`})})]}),(0,d.jsx)(a.CardTitle,{className:`mt-2`,children:k.title}),(0,d.jsxs)(`div`,{className:`flex items-center gap-2 mt-2`,children:[(0,d.jsx)(r.Badge,{variant:`outline`,className:p[k.status].color,children:p[k.status].label}),k.service&&(0,d.jsx)(r.Badge,{variant:`secondary`,children:k.service})]})]}),(0,d.jsxs)(a.CardContent,{className:`space-y-4`,children:[k.description&&(0,d.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:k.description}),k.impact&&(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground mb-1`,children:`Impact`}),(0,d.jsx)(`p`,{className:`text-sm`,children:k.impact})]}),(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground mb-2`,children:`Timeline`}),(0,d.jsx)(`div`,{className:`space-y-2`,children:k.events.slice(0,5).map(e=>(0,d.jsxs)(`div`,{className:`flex items-start gap-2 text-xs`,children:[(0,d.jsx)(`span`,{className:`text-muted-foreground shrink-0`,children:h(e.timestamp)}),(0,d.jsx)(`span`,{children:e.content})]},e.id))})]}),(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground mb-2`,children:`Responders`}),(0,d.jsx)(`div`,{className:`space-y-2`,children:k.responders.map(e=>(0,d.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsxs)(n.Avatar,{className:`h-6 w-6`,children:[(0,d.jsx)(n.AvatarImage,{src:e.avatar}),(0,d.jsx)(n.AvatarFallback,{className:`text-xs`,children:e.name.slice(0,2).toUpperCase()})]}),(0,d.jsx)(`span`,{className:`text-sm`,children:e.name}),(0,d.jsx)(r.Badge,{variant:`outline`,className:`text-xs ml-auto`,children:e.role})]},e.id))})]}),(0,d.jsxs)(`div`,{className:`flex flex-col gap-2 pt-2 border-t`,children:[k.slackChannel&&(0,d.jsxs)(i.Button,{variant:`outline`,size:`sm`,className:`justify-start`,children:[(0,d.jsx)(u.MessageSquare,{className:`h-4 w-4 mr-2`}),`Join #`,k.slackChannel]}),k.runbookUrl&&(0,d.jsxs)(i.Button,{variant:`outline`,size:`sm`,className:`justify-start`,children:[(0,d.jsx)(u.ExternalLink,{className:`h-4 w-4 mr-2`}),`View Runbook`]}),b&&![`resolved`,`closed`].includes(k.status)&&(0,d.jsxs)(i.Button,{variant:`outline`,size:`sm`,className:`justify-start text-orange-500`,onClick:()=>b(k),children:[(0,d.jsx)(u.Phone,{className:`h-4 w-4 mr-2`}),`Escalate`]})]})]})]})]})]})}var y=[{id:`1`,title:`Database connection pool exhausted`,description:`Production database is experiencing connection pool exhaustion, causing request timeouts`,severity:`critical`,status:`investigating`,service:`api-gateway`,createdAt:new Date(Date.now()-45*6e4),acknowledgedAt:new Date(Date.now()-40*6e4),impact:`50% of API requests failing with 504 errors`,affectedUsers:12500,slackChannel:`incident-db-001`,runbookUrl:`https://runbooks.example.com/db-pool`,responders:[{id:`1`,name:`John Doe`,role:`Incident Commander`,status:`engaged`},{id:`2`,name:`Jane Smith`,role:`DBA`,status:`engaged`}],events:[{id:`e1`,type:`status_change`,timestamp:new Date(Date.now()-45*6e4),content:`Incident triggered by alerting system`},{id:`e2`,type:`assignment`,timestamp:new Date(Date.now()-43*6e4),content:`John Doe assigned as IC`,user:`System`},{id:`e3`,type:`status_change`,timestamp:new Date(Date.now()-40*6e4),content:`Incident acknowledged`,user:`John Doe`},{id:`e4`,type:`comment`,timestamp:new Date(Date.now()-35*6e4),content:`Investigating connection pool settings`,user:`Jane Smith`},{id:`e5`,type:`status_change`,timestamp:new Date(Date.now()-30*6e4),content:`Status changed to investigating`,user:`John Doe`}]},{id:`2`,title:`High latency on payment service`,description:`Payment processing latency increased to >2s, above SLA threshold`,severity:`high`,status:`acknowledged`,service:`payment-service`,createdAt:new Date(Date.now()-20*6e4),acknowledgedAt:new Date(Date.now()-15*6e4),affectedUsers:3200,responders:[{id:`3`,name:`Alice Johnson`,role:`On-Call Engineer`,status:`engaged`}],events:[{id:`e6`,type:`status_change`,timestamp:new Date(Date.now()-20*6e4),content:`Incident triggered`},{id:`e7`,type:`status_change`,timestamp:new Date(Date.now()-15*6e4),content:`Acknowledged by Alice Johnson`}]},{id:`3`,title:`Elevated error rate on search API`,severity:`medium`,status:`triggered`,service:`search-service`,createdAt:new Date(Date.now()-5*6e4),responders:[],events:[{id:`e8`,type:`status_change`,timestamp:new Date(Date.now()-5*6e4),content:`Incident triggered by alerting system`}]},{id:`4`,title:`Memory leak in recommendation engine`,description:`Gradual memory increase detected, auto-scaling keeping up but needs investigation`,severity:`low`,status:`resolved`,service:`recommendation-engine`,createdAt:new Date(Date.now()-4*36e5),acknowledgedAt:new Date(Date.now()-3.5*36e5),resolvedAt:new Date(Date.now()-2*36e5),responders:[{id:`4`,name:`Bob Wilson`,role:`Backend Engineer`,status:`available`}],events:[{id:`e9`,type:`status_change`,timestamp:new Date(Date.now()-4*36e5),content:`Incident triggered`},{id:`e10`,type:`status_change`,timestamp:new Date(Date.now()-2*36e5),content:`Resolved - deployed fix v2.3.1`}]}];exports.IncidentManager=v,exports.defaultIncidents=y;
|
|
1
|
+
"use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../../components/avatar/index.cjs.js"),r=require("../../components/badge/index.cjs.js"),i=require("../../components/button/index.cjs.js"),a=require("../../components/card/index.cjs.js"),o=require("../../components/input/index.cjs.js"),s=require("../../components/select/index.cjs.js"),c=require("../../components/scroll-area/index.cjs.js");let l=require("react");l=e.__toESM(l);let u=require("lucide-react"),d=require("react/jsx-runtime");var f={critical:{label:`Critical`,color:`text-red-500`,bgColor:`bg-red-500`},high:{label:`High`,color:`text-orange-500`,bgColor:`bg-orange-500`},medium:{label:`Medium`,color:`text-yellow-500`,bgColor:`bg-yellow-500`},low:{label:`Low`,color:`text-blue-500`,bgColor:`bg-blue-500`}},p={triggered:{label:`Triggered`,color:`text-red-500`,icon:u.AlertCircle},acknowledged:{label:`Acknowledged`,color:`text-orange-500`,icon:u.Bell},investigating:{label:`Investigating`,color:`text-yellow-500`,icon:u.Search},identified:{label:`Identified`,color:`text-blue-500`,icon:u.Activity},resolved:{label:`Resolved`,color:`text-green-500`,icon:u.CheckCircle2},closed:{label:`Closed`,color:`text-gray-500`,icon:u.XCircle}};function m(e,t){let n=(t||new Date).getTime()-e.getTime(),r=Math.floor(n/6e4),i=Math.floor(r/60),a=Math.floor(i/24);return a>0?`${a}d ${i%24}h`:i>0?`${i}h ${r%60}m`:`${r}m`}function h(e){return e.toLocaleTimeString(`fr-FR`,{hour:`2-digit`,minute:`2-digit`})}function g({incident:e,onAcknowledge:o,onResolve:s,onSelect:c}){let l=f[e.severity],h=p[e.status],g=h.icon,_=![`resolved`,`closed`].includes(e.status);return(0,d.jsx)(a.Card,{className:t.cn(`cursor-pointer transition-all hover:shadow-md`,e.severity===`critical`&&_&&`border-red-500/50 bg-red-500/5`,e.severity===`high`&&_&&`border-orange-500/30`),onClick:c,children:(0,d.jsx)(a.CardContent,{className:`p-4`,children:(0,d.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,d.jsx)(`div`,{className:t.cn(`p-2 rounded-lg shrink-0`,`${l.bgColor}/10`),children:(0,d.jsx)(u.AlertTriangle,{className:t.cn(`h-5 w-5`,l.color)})}),(0,d.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,d.jsx)(r.Badge,{className:t.cn(`text-white text-xs`,l.bgColor),children:l.label}),(0,d.jsxs)(r.Badge,{variant:`outline`,className:t.cn(`text-xs`,h.color),children:[(0,d.jsx)(g,{className:`h-3 w-3 mr-1`}),h.label]}),e.service&&(0,d.jsx)(r.Badge,{variant:`secondary`,className:`text-xs`,children:e.service})]}),(0,d.jsx)(`h4`,{className:`font-semibold mt-2 truncate`,children:e.title}),e.description&&(0,d.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 line-clamp-2`,children:e.description}),(0,d.jsxs)(`div`,{className:`flex items-center gap-4 mt-3 text-xs text-muted-foreground`,children:[(0,d.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(u.Clock,{className:`h-3 w-3`}),m(e.createdAt,e.resolvedAt)]}),e.affectedUsers!==void 0&&(0,d.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(u.Users,{className:`h-3 w-3`}),e.affectedUsers,` affected`]}),(0,d.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(u.MessageSquare,{className:`h-3 w-3`}),e.events.length]})]}),e.responders.length>0&&(0,d.jsx)(`div`,{className:`flex items-center gap-2 mt-3`,children:(0,d.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.responders.slice(0,3).map(e=>(0,d.jsxs)(n.Avatar,{className:`h-6 w-6 border-2 border-background`,children:[(0,d.jsx)(n.AvatarImage,{src:e.avatar}),(0,d.jsx)(n.AvatarFallback,{className:`text-xs`,children:e.name.slice(0,2).toUpperCase()})]},e.id)),e.responders.length>3&&(0,d.jsxs)(`div`,{className:`h-6 w-6 rounded-full bg-muted flex items-center justify-center text-xs border-2 border-background`,children:[`+`,e.responders.length-3]})]})})]}),_&&(0,d.jsxs)(`div`,{className:`flex flex-col gap-1 shrink-0`,children:[e.status===`triggered`&&o&&(0,d.jsx)(i.Button,{size:`sm`,variant:`outline`,className:`h-7 text-xs`,onClick:e=>{e.stopPropagation(),o()},children:`Ack`}),e.status!==`triggered`&&e.status!==`resolved`&&s&&(0,d.jsx)(i.Button,{size:`sm`,variant:`outline`,className:`h-7 text-xs text-green-500`,onClick:e=>{e.stopPropagation(),s()},children:`Resolve`})]})]})})})}function _({incidents:e}){let t=e.filter(e=>![`resolved`,`closed`].includes(e.status)),n=t.filter(e=>e.severity===`critical`),r=l.useMemo(()=>{let t=e.filter(e=>e.resolvedAt);if(t.length===0)return 0;let n=t.reduce((e,t)=>e+(t.resolvedAt.getTime()-t.createdAt.getTime()),0);return Math.round(n/t.length/6e4)},[e]);return(0,d.jsxs)(`div`,{className:`grid grid-cols-4 gap-4`,children:[(0,d.jsx)(a.Card,{children:(0,d.jsxs)(a.CardContent,{className:`p-4 text-center`,children:[(0,d.jsx)(`div`,{className:`text-3xl font-bold text-red-500`,children:t.length}),(0,d.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Active Incidents`})]})}),(0,d.jsx)(a.Card,{children:(0,d.jsxs)(a.CardContent,{className:`p-4 text-center`,children:[(0,d.jsx)(`div`,{className:`text-3xl font-bold text-orange-500`,children:n.length}),(0,d.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Critical`})]})}),(0,d.jsx)(a.Card,{children:(0,d.jsxs)(a.CardContent,{className:`p-4 text-center`,children:[(0,d.jsxs)(`div`,{className:`text-3xl font-bold`,children:[r,`m`]}),(0,d.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Avg MTTR`})]})}),(0,d.jsx)(a.Card,{children:(0,d.jsxs)(a.CardContent,{className:`p-4 text-center`,children:[(0,d.jsx)(`div`,{className:`text-3xl font-bold text-green-500`,children:e.filter(e=>e.status===`resolved`).length}),(0,d.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Resolved Today`})]})})]})}function v({incidents:e,onCreateIncident:m,onAcknowledge:v,onResolve:y,onEscalate:b,onAssign:x,className:S}){let[C,w]=l.useState(``),[T,E]=l.useState(`all`),[D,O]=l.useState(`active`),[k,A]=l.useState(null),j=l.useMemo(()=>e.filter(e=>!(C&&!e.title.toLowerCase().includes(C.toLowerCase())||T!==`all`&&e.severity!==T||D===`active`&&[`resolved`,`closed`].includes(e.status)||D===`resolved`&&![`resolved`,`closed`].includes(e.status))).sort((e,t)=>{let n={critical:0,high:1,medium:2,low:3},r=n[e.severity]-n[t.severity];return r===0?t.createdAt.getTime()-e.createdAt.getTime():r}),[e,C,T,D]);return(0,d.jsxs)(`div`,{className:t.cn(`flex flex-col gap-6`,S),children:[(0,d.jsx)(_,{incidents:e}),(0,d.jsxs)(`div`,{className:`flex gap-6`,children:[(0,d.jsxs)(`div`,{className:`flex-1 space-y-4`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,d.jsxs)(`div`,{className:`relative flex-1 max-w-sm`,children:[(0,d.jsx)(u.Search,{className:`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,d.jsx)(o.Input,{placeholder:`Search incidents...`,value:C,onChange:e=>w(e.target.value),className:`pl-9`})]}),(0,d.jsxs)(s.Select,{value:T,onValueChange:e=>E(e),children:[(0,d.jsx)(s.SelectTrigger,{className:`w-32`,children:(0,d.jsx)(s.SelectValue,{placeholder:`Severity`})}),(0,d.jsxs)(s.SelectContent,{children:[(0,d.jsx)(s.SelectItem,{value:`all`,children:`All Severity`}),(0,d.jsx)(s.SelectItem,{value:`critical`,children:`Critical`}),(0,d.jsx)(s.SelectItem,{value:`high`,children:`High`}),(0,d.jsx)(s.SelectItem,{value:`medium`,children:`Medium`}),(0,d.jsx)(s.SelectItem,{value:`low`,children:`Low`})]})]}),(0,d.jsxs)(s.Select,{value:D,onValueChange:e=>O(e),children:[(0,d.jsx)(s.SelectTrigger,{className:`w-32`,children:(0,d.jsx)(s.SelectValue,{placeholder:`Status`})}),(0,d.jsxs)(s.SelectContent,{children:[(0,d.jsx)(s.SelectItem,{value:`active`,children:`Active`}),(0,d.jsx)(s.SelectItem,{value:`resolved`,children:`Resolved`}),(0,d.jsx)(s.SelectItem,{value:`all`,children:`All`})]})]}),m&&(0,d.jsxs)(i.Button,{onClick:m,children:[(0,d.jsx)(u.Plus,{className:`h-4 w-4 mr-1`}),`Create Incident`]})]}),(0,d.jsx)(c.ScrollArea,{className:`h-[600px]`,children:(0,d.jsx)(`div`,{className:`space-y-3 pr-4`,children:j.length===0?(0,d.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-48 text-muted-foreground`,children:[(0,d.jsx)(u.Shield,{className:`h-12 w-12 mb-4 text-green-500`}),(0,d.jsx)(`p`,{className:`text-lg font-medium`,children:`No incidents`}),(0,d.jsx)(`p`,{className:`text-sm`,children:`All systems are operational`})]}):j.map(e=>(0,d.jsx)(g,{incident:e,onAcknowledge:v?()=>v(e):void 0,onResolve:y?()=>y(e):void 0,onSelect:()=>A(e)},e.id))})})]}),k&&(0,d.jsxs)(a.Card,{className:`w-96 shrink-0`,children:[(0,d.jsxs)(a.CardHeader,{className:`pb-3`,children:[(0,d.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,d.jsx)(r.Badge,{className:t.cn(`text-white`,f[k.severity].bgColor),children:f[k.severity].label}),(0,d.jsx)(i.Button,{variant:`ghost`,size:`sm`,onClick:()=>A(null),children:(0,d.jsx)(u.XCircle,{className:`h-4 w-4`})})]}),(0,d.jsx)(a.CardTitle,{className:`mt-2`,children:k.title}),(0,d.jsxs)(`div`,{className:`flex items-center gap-2 mt-2`,children:[(0,d.jsx)(r.Badge,{variant:`outline`,className:p[k.status].color,children:p[k.status].label}),k.service&&(0,d.jsx)(r.Badge,{variant:`secondary`,children:k.service})]})]}),(0,d.jsxs)(a.CardContent,{className:`space-y-4`,children:[k.description&&(0,d.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:k.description}),k.impact&&(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground mb-1`,children:`Impact`}),(0,d.jsx)(`p`,{className:`text-sm`,children:k.impact})]}),(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground mb-2`,children:`Timeline`}),(0,d.jsx)(`div`,{className:`space-y-2`,children:k.events.slice(0,5).map(e=>(0,d.jsxs)(`div`,{className:`flex items-start gap-2 text-xs`,children:[(0,d.jsx)(`span`,{className:`text-muted-foreground shrink-0`,children:h(e.timestamp)}),(0,d.jsx)(`span`,{children:e.content})]},e.id))})]}),(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground mb-2`,children:`Responders`}),(0,d.jsx)(`div`,{className:`space-y-2`,children:k.responders.map(e=>(0,d.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsxs)(n.Avatar,{className:`h-6 w-6`,children:[(0,d.jsx)(n.AvatarImage,{src:e.avatar}),(0,d.jsx)(n.AvatarFallback,{className:`text-xs`,children:e.name.slice(0,2).toUpperCase()})]}),(0,d.jsx)(`span`,{className:`text-sm`,children:e.name}),(0,d.jsx)(r.Badge,{variant:`outline`,className:`text-xs ml-auto`,children:e.role})]},e.id))})]}),(0,d.jsxs)(`div`,{className:`flex flex-col gap-2 pt-2 border-t`,children:[k.slackChannel&&(0,d.jsxs)(i.Button,{variant:`outline`,size:`sm`,className:`justify-start`,children:[(0,d.jsx)(u.MessageSquare,{className:`h-4 w-4 mr-2`}),`Join #`,k.slackChannel]}),k.runbookUrl&&(0,d.jsxs)(i.Button,{variant:`outline`,size:`sm`,className:`justify-start`,children:[(0,d.jsx)(u.ExternalLink,{className:`h-4 w-4 mr-2`}),`View Runbook`]}),b&&![`resolved`,`closed`].includes(k.status)&&(0,d.jsxs)(i.Button,{variant:`outline`,size:`sm`,className:`justify-start text-orange-500`,onClick:()=>b(k),children:[(0,d.jsx)(u.Phone,{className:`h-4 w-4 mr-2`}),`Escalate`]})]})]})]})]})]})}var y=[{id:`1`,title:`Database connection pool exhausted`,description:`Production database is experiencing connection pool exhaustion, causing request timeouts`,severity:`critical`,status:`investigating`,service:`api-gateway`,createdAt:new Date(Date.now()-45*6e4),acknowledgedAt:new Date(Date.now()-40*6e4),impact:`50% of API requests failing with 504 errors`,affectedUsers:12500,slackChannel:`incident-db-001`,runbookUrl:`https://runbooks.example.com/db-pool`,responders:[{id:`1`,name:`John Doe`,role:`Incident Commander`,status:`engaged`},{id:`2`,name:`Jane Smith`,role:`DBA`,status:`engaged`}],events:[{id:`e1`,type:`status_change`,timestamp:new Date(Date.now()-45*6e4),content:`Incident triggered by alerting system`},{id:`e2`,type:`assignment`,timestamp:new Date(Date.now()-43*6e4),content:`John Doe assigned as IC`,user:`System`},{id:`e3`,type:`status_change`,timestamp:new Date(Date.now()-40*6e4),content:`Incident acknowledged`,user:`John Doe`},{id:`e4`,type:`comment`,timestamp:new Date(Date.now()-35*6e4),content:`Investigating connection pool settings`,user:`Jane Smith`},{id:`e5`,type:`status_change`,timestamp:new Date(Date.now()-30*6e4),content:`Status changed to investigating`,user:`John Doe`}]},{id:`2`,title:`High latency on payment service`,description:`Payment processing latency increased to >2s, above SLA threshold`,severity:`high`,status:`acknowledged`,service:`payment-service`,createdAt:new Date(Date.now()-20*6e4),acknowledgedAt:new Date(Date.now()-15*6e4),affectedUsers:3200,responders:[{id:`3`,name:`Alice Johnson`,role:`On-Call Engineer`,status:`engaged`}],events:[{id:`e6`,type:`status_change`,timestamp:new Date(Date.now()-20*6e4),content:`Incident triggered`},{id:`e7`,type:`status_change`,timestamp:new Date(Date.now()-15*6e4),content:`Acknowledged by Alice Johnson`}]},{id:`3`,title:`Elevated error rate on search API`,severity:`medium`,status:`triggered`,service:`search-service`,createdAt:new Date(Date.now()-5*6e4),responders:[],events:[{id:`e8`,type:`status_change`,timestamp:new Date(Date.now()-5*6e4),content:`Incident triggered by alerting system`}]},{id:`4`,title:`Memory leak in recommendation engine`,description:`Gradual memory increase detected, auto-scaling keeping up but needs investigation`,severity:`low`,status:`resolved`,service:`recommendation-engine`,createdAt:new Date(Date.now()-4*36e5),acknowledgedAt:new Date(Date.now()-3.5*36e5),resolvedAt:new Date(Date.now()-2*36e5),responders:[{id:`4`,name:`Bob Wilson`,role:`Backend Engineer`,status:`available`}],events:[{id:`e9`,type:`status_change`,timestamp:new Date(Date.now()-4*36e5),content:`Incident triggered`},{id:`e10`,type:`status_change`,timestamp:new Date(Date.now()-2*36e5),content:`Resolved - deployed fix v2.3.1`}]}];exports.IncidentManager=v,exports.defaultIncidents=y;
|