indas-ui 0.0.1 → 0.1.0
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/cjs/components/auth/ProtectedRoute.js +48 -0
- package/dist/cjs/components/auth/UnauthorizedPage.js +19 -0
- package/dist/cjs/components/auth/index.js +9 -0
- package/dist/cjs/components/chat/ai-messages.js +271 -0
- package/dist/cjs/components/chat/chat-prompt-navigator.js +110 -0
- package/dist/cjs/components/chat/chat.js +1032 -0
- package/dist/cjs/components/chat/multimodal-input.js +117 -0
- package/dist/cjs/components/dashboard/DrillDownModal.js +36 -0
- package/dist/cjs/components/dashboard/FilterBar.js +434 -0
- package/dist/cjs/components/dashboard/Tooltip.js +86 -0
- package/dist/cjs/components/dashboard/charts/Area.js +127 -0
- package/dist/cjs/components/dashboard/charts/Bar.js +111 -0
- package/dist/cjs/components/dashboard/charts/BoxPlot.js +118 -0
- package/dist/cjs/components/dashboard/charts/Bubble.js +102 -0
- package/dist/cjs/components/dashboard/charts/DashboardCard.js +12 -0
- package/dist/cjs/components/dashboard/charts/Donut.js +130 -0
- package/dist/cjs/components/dashboard/charts/FlowMap.js +238 -0
- package/dist/cjs/components/dashboard/charts/Funnel.js +38 -0
- package/dist/cjs/components/dashboard/charts/Gantt.js +271 -0
- package/dist/cjs/components/dashboard/charts/Gauge.js +143 -0
- package/dist/cjs/components/dashboard/charts/GeoMap.js +164 -0
- package/dist/cjs/components/dashboard/charts/Heatmap.js +116 -0
- package/dist/cjs/components/dashboard/charts/Line.js +75 -0
- package/dist/cjs/components/dashboard/charts/Pareto.js +110 -0
- package/dist/cjs/components/dashboard/charts/Radar.js +94 -0
- package/dist/cjs/components/dashboard/charts/Sankey.js +92 -0
- package/dist/cjs/components/dashboard/charts/Scatter.js +128 -0
- package/dist/cjs/components/dashboard/charts/Sparkline.js +134 -0
- package/dist/cjs/components/dashboard/charts/Treemap.js +104 -0
- package/dist/cjs/components/dashboard/charts/index.js +45 -0
- package/dist/cjs/components/dashboard/charts/india-map.js +464 -0
- package/dist/cjs/components/dashboard/charts/theme.js +132 -0
- package/dist/cjs/components/dashboard/config.js +118 -0
- package/dist/cjs/components/dashboard/index.js +39 -0
- package/dist/cjs/components/dashboard/kpi/KpiBeforeAfter.js +16 -0
- package/dist/cjs/components/dashboard/kpi/KpiBreakdown.js +42 -0
- package/dist/cjs/components/dashboard/kpi/KpiComparison.js +41 -0
- package/dist/cjs/components/dashboard/kpi/KpiQuickStats.js +41 -0
- package/dist/cjs/components/dashboard/kpi/KpiRating.js +38 -0
- package/dist/cjs/components/dashboard/kpi/KpiScroll.js +83 -0
- package/dist/cjs/components/dashboard/kpi/KpiTrend.js +37 -0
- package/dist/cjs/components/dashboard/kpi/index.js +22 -0
- package/dist/cjs/components/dashboard/kpi/kpi-shell.js +113 -0
- package/dist/cjs/components/dashboard/time-range.js +126 -0
- package/dist/cjs/components/datagrid/DataGrid.js +1613 -0
- package/dist/cjs/components/datagrid/cells/BooleanCell.js +42 -0
- package/dist/cjs/components/datagrid/cells/CellRenderer.js +142 -0
- package/dist/cjs/components/datagrid/cells/EditableCell.js +217 -0
- package/dist/cjs/components/datagrid/cells/SelectionCell.js +60 -0
- package/dist/cjs/components/datagrid/cells/index.js +6 -0
- package/dist/cjs/components/datagrid/columns/ActionsColumn.js +485 -0
- package/dist/cjs/components/datagrid/columns/ColumnContextMenu.js +341 -0
- package/dist/cjs/components/datagrid/columns/DraggableColumnHeader.js +150 -0
- package/dist/cjs/components/datagrid/controls/AutoResizeButton.js +10 -0
- package/dist/cjs/components/datagrid/controls/PaginationControls.js +38 -0
- package/dist/cjs/components/datagrid/controls/SummaryControls.js +30 -0
- package/dist/cjs/components/datagrid/controls/menu/ActionsMenu.js +16 -0
- package/dist/cjs/components/datagrid/controls/menu/column/ColumnChooserModal.js +25 -0
- package/dist/cjs/components/datagrid/controls/menu/column/ColumnSection.js +10 -0
- package/dist/cjs/components/datagrid/controls/menu/export/ExportSection.js +19 -0
- package/dist/cjs/components/datagrid/controls/menu/export/export.js +227 -0
- package/dist/cjs/components/datagrid/controls/menu/filter/AdvancedFilterModal.js +405 -0
- package/dist/cjs/components/datagrid/controls/menu/filter/FilterSection.js +9 -0
- package/dist/cjs/components/datagrid/controls/menu/grouping/GroupingSection.js +23 -0
- package/dist/cjs/components/datagrid/controls/menu/grouping/index.js +6 -0
- package/dist/cjs/components/datagrid/controls/menu/import/ImportSection.js +75 -0
- package/dist/cjs/components/datagrid/controls/menu/import/import.js +232 -0
- package/dist/cjs/components/datagrid/controls/menu/index.js +24 -0
- package/dist/cjs/components/datagrid/controls/menu/view/CardView.js +176 -0
- package/dist/cjs/components/datagrid/controls/menu/view/ChartView.js +401 -0
- package/dist/cjs/components/datagrid/controls/menu/view/ViewSection.js +12 -0
- package/dist/cjs/components/datagrid/hooks/useCellRangeSelection.js +127 -0
- package/dist/cjs/components/datagrid/hooks/useClipboard.js +154 -0
- package/dist/cjs/components/datagrid/hooks/useDataGridState.js +115 -0
- package/dist/cjs/components/datagrid/hooks/useKeyboardNavigation.js +120 -0
- package/dist/cjs/components/datagrid/index.js +90 -0
- package/dist/cjs/components/datagrid/rows/DraggableRow.js +34 -0
- package/dist/cjs/components/datagrid/rows/ExpandableRow.js +184 -0
- package/dist/cjs/components/datagrid/rows/FilterRow.js +188 -0
- package/dist/cjs/components/datagrid/rows/SelectColumn.js +34 -0
- package/dist/cjs/components/datagrid/rows/SummaryRow.js +34 -0
- package/dist/cjs/components/datagrid/rows/summary.js +67 -0
- package/dist/cjs/components/datagrid/search/InlineSearchCell.js +99 -0
- package/dist/cjs/components/datagrid/search/SearchHighlighter.js +133 -0
- package/dist/cjs/components/datagrid/search/SearchNavigator.js +185 -0
- package/dist/cjs/components/datagrid/search/SearchNewModal.js +238 -0
- package/dist/cjs/components/datagrid/search/advancedSearch.js +112 -0
- package/dist/cjs/components/datagrid/utils/grid-helpers.js +102 -0
- package/dist/cjs/components/datagrid/utils/grid-types.js +3 -0
- package/dist/cjs/components/draft/AutoSaveIndicator.js +70 -0
- package/dist/cjs/components/draft/DraftModal.js +220 -0
- package/dist/cjs/components/forms/date-picker/CalendarView.js +82 -0
- package/dist/cjs/components/forms/date-picker/DatePicker.js +748 -0
- package/dist/cjs/components/forms/date-picker/DateTimePicker.js +174 -0
- package/dist/cjs/components/forms/date-picker/index.js +21 -0
- package/dist/cjs/components/forms/date-picker/shared-utils.js +24 -0
- package/dist/cjs/components/forms/dropdown/Dropdown.js +427 -0
- package/dist/cjs/components/forms/dropdown/MultiSelect.js +136 -0
- package/dist/cjs/components/forms/dropdown/SingleSelect.js +254 -0
- package/dist/cjs/components/forms/dropdown/hooks/useDropdownCreate.js +88 -0
- package/dist/cjs/components/forms/dropdown/hooks/useDropdownFiltering.js +87 -0
- package/dist/cjs/components/forms/dropdown/hooks/useDropdownState.js +63 -0
- package/dist/cjs/components/forms/dropdown/index.js +6 -0
- package/dist/cjs/components/forms/dropdown/types.js +3 -0
- package/dist/cjs/components/forms/file-attachment/EmailPreview.js +419 -0
- package/dist/cjs/components/forms/file-attachment/FileAttachment.js +966 -0
- package/dist/cjs/components/forms/file-attachment/index.js +6 -0
- package/dist/cjs/components/forms/index.js +16 -0
- package/dist/cjs/components/forms/quantity-input-popup.js +135 -0
- package/dist/cjs/components/forms/remark-input/RemarkInput.js +263 -0
- package/dist/cjs/components/forms/remark-input/index.js +8 -0
- package/dist/cjs/components/forms/unified-currency-dropdown.js +202 -0
- package/dist/cjs/components/index.js +41 -0
- package/dist/cjs/components/layout/SidebarContextMenu.js +179 -0
- package/dist/cjs/components/layout/app-shell.js +81 -0
- package/dist/cjs/components/layout/bottom-nav.js +262 -0
- package/dist/cjs/components/layout/floating-action-button.js +77 -0
- package/dist/cjs/components/layout/footer.js +60 -0
- package/dist/cjs/components/layout/index.js +16 -0
- package/dist/cjs/components/layout/mobile-menu-sheet.js +195 -0
- package/dist/cjs/components/layout/side-panel.js +118 -0
- package/dist/cjs/components/layout/sidebar.js +581 -0
- package/dist/cjs/components/layout/top-header.js +270 -0
- package/dist/cjs/components/layout/userprofile-dropdown.js +100 -0
- package/dist/cjs/components/master/editable-cells/EditableCell.js +106 -0
- package/dist/cjs/components/master/editable-cells/index.js +17 -0
- package/dist/cjs/components/master/index.js +9 -0
- package/dist/cjs/components/messaging/conversation-list.js +109 -0
- package/dist/cjs/components/messaging/create-conversation-modal.js +112 -0
- package/dist/cjs/components/messaging/message-bubble.js +69 -0
- package/dist/cjs/components/messaging/message-input.js +154 -0
- package/dist/cjs/components/messaging/message-thread.js +124 -0
- package/dist/cjs/components/messaging/messaging-panel-content.js +69 -0
- package/dist/cjs/components/messaging/thread-panel.js +50 -0
- package/dist/cjs/components/modals/3DModal.js +35 -0
- package/dist/cjs/components/modals/ImageModal.js +587 -0
- package/dist/cjs/components/modals/Modal.js +311 -0
- package/dist/cjs/components/modals/StandardModal.js +28 -0
- package/dist/cjs/components/modals/api-config-modal.js +120 -0
- package/dist/cjs/components/modals/global-api-config-modal.js +127 -0
- package/dist/cjs/components/modals/index.js +17 -0
- package/dist/cjs/components/modals/logout-modal.js +45 -0
- package/dist/cjs/components/modals/modal-alert.js +295 -0
- package/dist/cjs/components/modals/password-reset-modal.js +112 -0
- package/dist/cjs/components/modals/session-expiry-warning.js +18 -0
- package/dist/cjs/components/providers/api-provider.js +19 -0
- package/dist/cjs/components/providers/query-provider.js +29 -0
- package/dist/cjs/components/providers/session-provider.js +119 -0
- package/dist/cjs/components/theme/ThemeCustomizer.js +184 -0
- package/dist/cjs/components/ui/buttons/button.js +264 -0
- package/dist/cjs/components/ui/card.js +58 -0
- package/dist/cjs/components/ui/chart.js +160 -0
- package/dist/cjs/components/ui/display/boolean-badge.js +29 -0
- package/dist/cjs/components/ui/display/card.js +20 -0
- package/dist/cjs/components/ui/display/collapsible.js +44 -0
- package/dist/cjs/components/ui/display/separator.js +44 -0
- package/dist/cjs/components/ui/display/stats-card.js +29 -0
- package/dist/cjs/components/ui/display/text.js +94 -0
- package/dist/cjs/components/ui/feedback/alert.js +61 -0
- package/dist/cjs/components/ui/feedback/badge.js +93 -0
- package/dist/cjs/components/ui/feedback/progress.js +44 -0
- package/dist/cjs/components/ui/feedback/reminder-button.js +111 -0
- package/dist/cjs/components/ui/feedback/skeleton-table.js +20 -0
- package/dist/cjs/components/ui/feedback/skeleton.js +53 -0
- package/dist/cjs/components/ui/feedback/tooltip.js +54 -0
- package/dist/cjs/components/ui/form-toggle.js +47 -0
- package/dist/cjs/components/ui/forms/checkbox.js +24 -0
- package/dist/cjs/components/ui/forms/input.js +111 -0
- package/dist/cjs/components/ui/forms/label.js +10 -0
- package/dist/cjs/components/ui/forms/switch.js +58 -0
- package/dist/cjs/components/ui/forms/textarea.js +49 -0
- package/dist/cjs/components/ui/index.js +157 -0
- package/dist/cjs/components/ui/navigation/dropdown-menu.js +84 -0
- package/dist/cjs/components/ui/navigation/header-steps.js +51 -0
- package/dist/cjs/components/ui/navigation/tabs.js +97 -0
- package/dist/cjs/components/ui/overlays/loading.js +169 -0
- package/dist/cjs/components/ui/select.js +72 -0
- package/dist/cjs/config/api.js +65 -0
- package/dist/cjs/contexts/AppConfigContext.js +37 -0
- package/dist/cjs/contexts/CurrencyContext.js +336 -0
- package/dist/cjs/contexts/DeviceContext.js +106 -0
- package/dist/cjs/contexts/EmailContext.js +727 -0
- package/dist/cjs/contexts/GlobalAlertContext.js +232 -0
- package/dist/cjs/contexts/ImpactAnalysisContext.js +60 -0
- package/dist/cjs/contexts/LanguageContext.js +104 -0
- package/dist/cjs/contexts/MessagingContext.js +726 -0
- package/dist/cjs/contexts/ModuleAuthContext.js +316 -0
- package/dist/cjs/contexts/NavigationContext.js +182 -0
- package/dist/cjs/contexts/NetworkStatusContext.js +95 -0
- package/dist/cjs/contexts/NotificationContext.js +169 -0
- package/dist/cjs/contexts/PageTitleContext.js +28 -0
- package/dist/cjs/contexts/SearchPreferencesContext.js +42 -0
- package/dist/cjs/contexts/SessionAdapterContext.js +24 -0
- package/dist/cjs/contexts/SidebarPreferencesContext.js +116 -0
- package/dist/cjs/contexts/ThemeContext.js +193 -0
- package/dist/cjs/hooks/index.js +50 -0
- package/dist/cjs/hooks/useApproval.js +250 -0
- package/dist/cjs/hooks/useBacchaSearch.js +257 -0
- package/dist/cjs/hooks/useBusinessAudit.js +54 -0
- package/dist/cjs/hooks/useColumnFreezing.js +204 -0
- package/dist/cjs/hooks/useColumnMetadata.js +48 -0
- package/dist/cjs/hooks/useConditionalFormatting.js +197 -0
- package/dist/cjs/hooks/useDebounce.js +49 -0
- package/dist/cjs/hooks/useDraft.js +181 -0
- package/dist/cjs/hooks/useFormValidation.js +68 -0
- package/dist/cjs/hooks/useGridSettings.js +85 -0
- package/dist/cjs/hooks/useGridTheme.js +204 -0
- package/dist/cjs/hooks/useId.js +21 -0
- package/dist/cjs/hooks/useIntelligentColumnSizing.js +315 -0
- package/dist/cjs/hooks/useKeyboardNavigation.js +192 -0
- package/dist/cjs/hooks/useNotifications.js +63 -0
- package/dist/cjs/hooks/usePrevious.js +20 -0
- package/dist/cjs/hooks/useRowSelection.js +150 -0
- package/dist/cjs/hooks/useSignalR.js +53 -0
- package/dist/cjs/hooks/useTheme.js +268 -0
- package/dist/cjs/hooks/useTranslation.js +20 -0
- package/dist/cjs/hooks/useUnsavedChanges.js +88 -0
- package/dist/cjs/index.js +21 -0
- package/dist/cjs/lib/api/activity/audit/audit.js +51 -0
- package/dist/cjs/lib/api/activity/audit/index.js +29 -0
- package/dist/cjs/lib/api/activity/audit/send.js +434 -0
- package/dist/cjs/lib/api/activity/email/client.js +467 -0
- package/dist/cjs/lib/api/activity/email/index.js +31 -0
- package/dist/cjs/lib/api/activity/email/password-reset.js +58 -0
- package/dist/cjs/lib/api/activity/email/templates.js +537 -0
- package/dist/cjs/lib/api/activity/email/types.js +24 -0
- package/dist/cjs/lib/api/activity/index.js +48 -0
- package/dist/cjs/lib/api/activity/messaging/messaging.js +254 -0
- package/dist/cjs/lib/api/activity/notifications/index.js +43 -0
- package/dist/cjs/lib/api/activity/notifications/notifications.js +224 -0
- package/dist/cjs/lib/api/activity/notifications/reminders.js +30 -0
- package/dist/cjs/lib/api/activity/notifications/send.js +267 -0
- package/dist/cjs/lib/api/activity/notifications/types.js +66 -0
- package/dist/cjs/lib/api/activity/notify-and-log.js +63 -0
- package/dist/cjs/lib/api/activity/remarks/index.js +6 -0
- package/dist/cjs/lib/api/activity/remarks/remarks.js +186 -0
- package/dist/cjs/lib/api/activity/storage.js +83 -0
- package/dist/cjs/lib/api/ai/chat.js +227 -0
- package/dist/cjs/lib/api/ai/types.js +6 -0
- package/dist/cjs/lib/api/approval/approvals.js +210 -0
- package/dist/cjs/lib/api/approval/index.js +13 -0
- package/dist/cjs/lib/api/auth/auth.js +154 -0
- package/dist/cjs/lib/api/auth/index.js +11 -0
- package/dist/cjs/lib/api/auth/password-reset-otp.js +192 -0
- package/dist/cjs/lib/api/auth/two-factor-auth.js +94 -0
- package/dist/cjs/lib/api/auth/two-factor.js +186 -0
- package/dist/cjs/lib/api/core/auth-helpers.js +141 -0
- package/dist/cjs/lib/api/core/client.js +305 -0
- package/dist/cjs/lib/api/core/config.js +248 -0
- package/dist/cjs/lib/api/core/index.js +43 -0
- package/dist/cjs/lib/api/core/session-validator.js +98 -0
- package/dist/cjs/lib/api/core/types.js +4 -0
- package/dist/cjs/lib/api/core/utils.js +70 -0
- package/dist/cjs/lib/api/dashboard/costing.js +15 -0
- package/dist/cjs/lib/api/dashboard/management.js +11 -0
- package/dist/cjs/lib/api/dashboard/sales.js +11 -0
- package/dist/cjs/lib/api/draft/drafts.js +279 -0
- package/dist/cjs/lib/api/draft/index.js +13 -0
- package/dist/cjs/lib/api/enquiry/enquiry.js +624 -0
- package/dist/cjs/lib/api/enquiry/index.js +20 -0
- package/dist/cjs/lib/api/enquiry/rate-enquiry.js +78 -0
- package/dist/cjs/lib/api/estimation/categories.js +113 -0
- package/dist/cjs/lib/api/estimation/category-defaults.js +47 -0
- package/dist/cjs/lib/api/estimation/company-config.js +26 -0
- package/dist/cjs/lib/api/estimation/content.js +210 -0
- package/dist/cjs/lib/api/estimation/freight.js +25 -0
- package/dist/cjs/lib/api/estimation/grid-costing-drafts.js +30 -0
- package/dist/cjs/lib/api/estimation/grid-costing.js +176 -0
- package/dist/cjs/lib/api/estimation/index.js +58 -0
- package/dist/cjs/lib/api/estimation/legacy-costing.js +51 -0
- package/dist/cjs/lib/api/estimation/machines.js +74 -0
- package/dist/cjs/lib/api/estimation/planning.js +403 -0
- package/dist/cjs/lib/api/estimation/qualities.js +245 -0
- package/dist/cjs/lib/api/estimation/quotation-load.js +52 -0
- package/dist/cjs/lib/api/estimation/quotation-save.js +109 -0
- package/dist/cjs/lib/api/estimation/quote-check.js +34 -0
- package/dist/cjs/lib/api/estimation/quotepanel.js +496 -0
- package/dist/cjs/lib/api/estimation/shipper-planning.js +220 -0
- package/dist/cjs/lib/api/estimation/wastage.js +47 -0
- package/dist/cjs/lib/api/index.js +33 -0
- package/dist/cjs/lib/api/integration/proxy.js +40 -0
- package/dist/cjs/lib/api/master/category.js +215 -0
- package/dist/cjs/lib/api/master/company.js +389 -0
- package/dist/cjs/lib/api/master/hsn.js +61 -0
- package/dist/cjs/lib/api/master/index.js +47 -0
- package/dist/cjs/lib/api/master/item.js +142 -0
- package/dist/cjs/lib/api/master/ledger.js +398 -0
- package/dist/cjs/lib/api/master/logistics.js +119 -0
- package/dist/cjs/lib/api/master/machine.js +579 -0
- package/dist/cjs/lib/api/master/material-group.js +103 -0
- package/dist/cjs/lib/api/master/other.js +63 -0
- package/dist/cjs/lib/api/master/process-types.js +5 -0
- package/dist/cjs/lib/api/master/process.js +131 -0
- package/dist/cjs/lib/api/master/production-units.js +22 -0
- package/dist/cjs/lib/api/master/rate.js +203 -0
- package/dist/cjs/lib/api/master/tool.js +88 -0
- package/dist/cjs/lib/api/master/user.js +154 -0
- package/dist/cjs/lib/api/settings/erp-parameters.js +69 -0
- package/dist/cjs/lib/api/utility/index.js +11 -0
- package/dist/cjs/lib/api/utility/menu.js +136 -0
- package/dist/cjs/lib/auth.js +10 -0
- package/dist/cjs/lib/pwa.js +59 -0
- package/dist/cjs/lib/react-query-config.js +134 -0
- package/dist/cjs/lib/security/audit-logger.js +177 -0
- package/dist/cjs/lib/security/rate-limiter.js +122 -0
- package/dist/cjs/lib/server-url.js +76 -0
- package/dist/cjs/lib/svg-utils.js +213 -0
- package/dist/cjs/lib/theme/types.js +235 -0
- package/dist/cjs/lib/theme/utils.js +363 -0
- package/dist/cjs/lib/types/index.js +3 -0
- package/dist/cjs/lib/utils/attachment-loader.js +82 -0
- package/dist/cjs/lib/utils/client-lead-utils.js +61 -0
- package/dist/cjs/lib/utils/device-detection.js +110 -0
- package/dist/cjs/lib/utils/logout-cleanup.js +312 -0
- package/dist/cjs/lib/utils/planning-prefs.js +31 -0
- package/dist/cjs/lib/utils.js +70 -0
- package/dist/cjs/lib/vision/dieline-extractor.js +321 -0
- package/dist/cjs/lib/vision/reference-grid.js +245 -0
- package/dist/cjs/locales/de.json +79 -0
- package/dist/cjs/locales/en.json +2217 -0
- package/dist/cjs/locales/es.json +79 -0
- package/dist/cjs/locales/fr.json +78 -0
- package/dist/cjs/locales/hi.json +1599 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/providers.js +43 -0
- package/dist/cjs/services/GlobalLoadingService.js +220 -0
- package/{src → dist/cjs}/styles/grid-themes.css +345 -345
- package/{src → dist/cjs}/styles/sidebar-scrollbar.css +45 -45
- package/{src → dist/cjs}/styles/tokens.css +712 -711
- package/dist/cjs/types/approval.js +22 -0
- package/dist/cjs/types/audit.js +50 -0
- package/dist/cjs/types/draft.js +22 -0
- package/dist/cjs/types/master.js +4 -0
- package/dist/cjs/types/shipper-planning.js +7 -0
- package/dist/components/auth/ProtectedRoute.d.ts +6 -0
- package/dist/components/auth/ProtectedRoute.js +45 -0
- package/dist/components/auth/UnauthorizedPage.d.ts +6 -0
- package/dist/components/auth/UnauthorizedPage.js +15 -0
- package/dist/components/auth/index.d.ts +2 -0
- package/dist/components/auth/index.js +3 -0
- package/dist/components/chat/ai-messages.d.ts +32 -0
- package/dist/components/chat/ai-messages.js +265 -0
- package/dist/components/chat/chat-prompt-navigator.d.ts +9 -0
- package/dist/components/chat/chat-prompt-navigator.js +107 -0
- package/dist/components/chat/chat.d.ts +46 -0
- package/dist/components/chat/chat.js +1029 -0
- package/dist/components/chat/multimodal-input.d.ts +12 -0
- package/dist/components/chat/multimodal-input.js +114 -0
- package/dist/components/dashboard/DrillDownModal.d.ts +15 -0
- package/dist/components/dashboard/DrillDownModal.js +33 -0
- package/dist/components/dashboard/FilterBar.d.ts +108 -0
- package/dist/components/dashboard/FilterBar.js +428 -0
- package/dist/components/dashboard/Tooltip.d.ts +24 -0
- package/dist/components/dashboard/Tooltip.js +50 -0
- package/dist/components/dashboard/charts/Area.d.ts +28 -0
- package/dist/components/dashboard/charts/Area.js +121 -0
- package/dist/components/dashboard/charts/Bar.d.ts +27 -0
- package/dist/components/dashboard/charts/Bar.js +105 -0
- package/dist/components/dashboard/charts/BoxPlot.d.ts +23 -0
- package/dist/components/dashboard/charts/BoxPlot.js +112 -0
- package/dist/components/dashboard/charts/Bubble.d.ts +36 -0
- package/dist/components/dashboard/charts/Bubble.js +96 -0
- package/dist/components/dashboard/charts/DashboardCard.d.ts +12 -0
- package/dist/components/dashboard/charts/DashboardCard.js +9 -0
- package/dist/components/dashboard/charts/Donut.d.ts +23 -0
- package/dist/components/dashboard/charts/Donut.js +124 -0
- package/dist/components/dashboard/charts/FlowMap.d.ts +38 -0
- package/dist/components/dashboard/charts/FlowMap.js +199 -0
- package/dist/components/dashboard/charts/Funnel.d.ts +30 -0
- package/dist/components/dashboard/charts/Funnel.js +35 -0
- package/dist/components/dashboard/charts/Gantt.d.ts +26 -0
- package/dist/components/dashboard/charts/Gantt.js +265 -0
- package/dist/components/dashboard/charts/Gauge.d.ts +25 -0
- package/dist/components/dashboard/charts/Gauge.js +137 -0
- package/dist/components/dashboard/charts/GeoMap.d.ts +38 -0
- package/dist/components/dashboard/charts/GeoMap.js +125 -0
- package/dist/components/dashboard/charts/Heatmap.d.ts +31 -0
- package/dist/components/dashboard/charts/Heatmap.js +110 -0
- package/dist/components/dashboard/charts/Line.d.ts +33 -0
- package/dist/components/dashboard/charts/Line.js +69 -0
- package/dist/components/dashboard/charts/Pareto.d.ts +21 -0
- package/dist/components/dashboard/charts/Pareto.js +104 -0
- package/dist/components/dashboard/charts/Radar.d.ts +32 -0
- package/dist/components/dashboard/charts/Radar.js +88 -0
- package/dist/components/dashboard/charts/Sankey.d.ts +43 -0
- package/dist/components/dashboard/charts/Sankey.js +86 -0
- package/dist/components/dashboard/charts/Scatter.d.ts +38 -0
- package/dist/components/dashboard/charts/Scatter.js +122 -0
- package/dist/components/dashboard/charts/Sparkline.d.ts +37 -0
- package/dist/components/dashboard/charts/Sparkline.js +128 -0
- package/dist/components/dashboard/charts/Treemap.d.ts +30 -0
- package/dist/components/dashboard/charts/Treemap.js +98 -0
- package/dist/components/dashboard/charts/index.d.ts +38 -0
- package/dist/components/dashboard/charts/index.js +23 -0
- package/dist/components/dashboard/charts/india-map.d.ts +22 -0
- package/dist/components/dashboard/charts/india-map.js +461 -0
- package/dist/components/dashboard/charts/theme.d.ts +107 -0
- package/dist/components/dashboard/charts/theme.js +124 -0
- package/dist/components/dashboard/config.d.ts +96 -0
- package/dist/components/dashboard/config.js +113 -0
- package/dist/components/dashboard/index.d.ts +10 -0
- package/dist/components/dashboard/index.js +13 -0
- package/dist/components/dashboard/kpi/KpiBeforeAfter.d.ts +31 -0
- package/dist/components/dashboard/kpi/KpiBeforeAfter.js +13 -0
- package/dist/components/dashboard/kpi/KpiBreakdown.d.ts +31 -0
- package/dist/components/dashboard/kpi/KpiBreakdown.js +39 -0
- package/dist/components/dashboard/kpi/KpiComparison.d.ts +36 -0
- package/dist/components/dashboard/kpi/KpiComparison.js +38 -0
- package/dist/components/dashboard/kpi/KpiQuickStats.d.ts +30 -0
- package/dist/components/dashboard/kpi/KpiQuickStats.js +38 -0
- package/dist/components/dashboard/kpi/KpiRating.d.ts +46 -0
- package/dist/components/dashboard/kpi/KpiRating.js +35 -0
- package/dist/components/dashboard/kpi/KpiScroll.d.ts +63 -0
- package/dist/components/dashboard/kpi/KpiScroll.js +80 -0
- package/dist/components/dashboard/kpi/KpiTrend.d.ts +28 -0
- package/dist/components/dashboard/kpi/KpiTrend.js +34 -0
- package/dist/components/dashboard/kpi/index.d.ts +16 -0
- package/dist/components/dashboard/kpi/index.js +10 -0
- package/dist/components/dashboard/kpi/kpi-shell.d.ts +44 -0
- package/dist/components/dashboard/kpi/kpi-shell.js +108 -0
- package/dist/components/dashboard/time-range.d.ts +12 -0
- package/dist/components/dashboard/time-range.js +118 -0
- package/dist/components/datagrid/DataGrid.d.ts +126 -0
- package/dist/components/datagrid/DataGrid.js +1577 -0
- package/dist/components/datagrid/cells/BooleanCell.d.ts +15 -0
- package/dist/components/datagrid/cells/BooleanCell.js +39 -0
- package/dist/components/datagrid/cells/CellRenderer.d.ts +25 -0
- package/dist/components/datagrid/cells/CellRenderer.js +139 -0
- package/dist/components/datagrid/cells/EditableCell.d.ts +35 -0
- package/dist/components/datagrid/cells/EditableCell.js +179 -0
- package/dist/components/datagrid/cells/SelectionCell.d.ts +11 -0
- package/dist/components/datagrid/cells/SelectionCell.js +58 -0
- package/dist/components/datagrid/cells/index.d.ts +1 -0
- package/dist/components/datagrid/cells/index.js +2 -0
- package/dist/components/datagrid/columns/ActionsColumn.d.ts +174 -0
- package/dist/components/datagrid/columns/ActionsColumn.js +448 -0
- package/dist/components/datagrid/columns/ColumnContextMenu.d.ts +16 -0
- package/dist/components/datagrid/columns/ColumnContextMenu.js +338 -0
- package/dist/components/datagrid/columns/DraggableColumnHeader.d.ts +19 -0
- package/dist/components/datagrid/columns/DraggableColumnHeader.js +147 -0
- package/dist/components/datagrid/controls/AutoResizeButton.d.ts +8 -0
- package/dist/components/datagrid/controls/AutoResizeButton.js +7 -0
- package/dist/components/datagrid/controls/PaginationControls.d.ts +13 -0
- package/dist/components/datagrid/controls/PaginationControls.js +34 -0
- package/dist/components/datagrid/controls/SummaryControls.d.ts +10 -0
- package/dist/components/datagrid/controls/SummaryControls.js +27 -0
- package/dist/components/datagrid/controls/menu/ActionsMenu.d.ts +31 -0
- package/dist/components/datagrid/controls/menu/ActionsMenu.js +13 -0
- package/dist/components/datagrid/controls/menu/column/ColumnChooserModal.d.ts +13 -0
- package/dist/components/datagrid/controls/menu/column/ColumnChooserModal.js +22 -0
- package/dist/components/datagrid/controls/menu/column/ColumnSection.d.ts +9 -0
- package/dist/components/datagrid/controls/menu/column/ColumnSection.js +7 -0
- package/dist/components/datagrid/controls/menu/export/ExportSection.d.ts +7 -0
- package/dist/components/datagrid/controls/menu/export/ExportSection.js +16 -0
- package/dist/components/datagrid/controls/menu/export/export.d.ts +21 -0
- package/dist/components/datagrid/controls/menu/export/export.js +187 -0
- package/dist/components/datagrid/controls/menu/filter/AdvancedFilterModal.d.ts +29 -0
- package/dist/components/datagrid/controls/menu/filter/AdvancedFilterModal.js +369 -0
- package/dist/components/datagrid/controls/menu/filter/FilterSection.d.ts +12 -0
- package/dist/components/datagrid/controls/menu/filter/FilterSection.js +6 -0
- package/dist/components/datagrid/controls/menu/grouping/GroupingSection.d.ts +10 -0
- package/dist/components/datagrid/controls/menu/grouping/GroupingSection.js +20 -0
- package/dist/components/datagrid/controls/menu/grouping/index.d.ts +1 -0
- package/dist/components/datagrid/controls/menu/grouping/index.js +2 -0
- package/dist/components/datagrid/controls/menu/import/ImportSection.d.ts +6 -0
- package/dist/components/datagrid/controls/menu/import/ImportSection.js +72 -0
- package/dist/components/datagrid/controls/menu/import/import.d.ts +27 -0
- package/dist/components/datagrid/controls/menu/import/import.js +193 -0
- package/dist/components/datagrid/controls/menu/index.d.ts +10 -0
- package/dist/components/datagrid/controls/menu/index.js +11 -0
- package/dist/components/datagrid/controls/menu/view/CardView.d.ts +17 -0
- package/dist/components/datagrid/controls/menu/view/CardView.js +173 -0
- package/dist/components/datagrid/controls/menu/view/ChartView.d.ts +9 -0
- package/dist/components/datagrid/controls/menu/view/ChartView.js +363 -0
- package/dist/components/datagrid/controls/menu/view/ViewSection.d.ts +7 -0
- package/dist/components/datagrid/controls/menu/view/ViewSection.js +9 -0
- package/dist/components/datagrid/hooks/useCellRangeSelection.d.ts +20 -0
- package/dist/components/datagrid/hooks/useCellRangeSelection.js +124 -0
- package/dist/components/datagrid/hooks/useClipboard.d.ts +15 -0
- package/dist/components/datagrid/hooks/useClipboard.js +151 -0
- package/dist/components/datagrid/hooks/useDataGridState.d.ts +46 -0
- package/dist/components/datagrid/hooks/useDataGridState.js +112 -0
- package/dist/components/datagrid/hooks/useKeyboardNavigation.d.ts +18 -0
- package/dist/components/datagrid/hooks/useKeyboardNavigation.js +117 -0
- package/dist/components/datagrid/index.d.ts +34 -0
- package/dist/components/datagrid/index.js +41 -0
- package/dist/components/datagrid/rows/DraggableRow.d.ts +33 -0
- package/dist/components/datagrid/rows/DraggableRow.js +31 -0
- package/dist/components/datagrid/rows/ExpandableRow.d.ts +48 -0
- package/dist/components/datagrid/rows/ExpandableRow.js +178 -0
- package/dist/components/datagrid/rows/FilterRow.d.ts +10 -0
- package/dist/components/datagrid/rows/FilterRow.js +185 -0
- package/dist/components/datagrid/rows/SelectColumn.d.ts +2 -0
- package/dist/components/datagrid/rows/SelectColumn.js +31 -0
- package/dist/components/datagrid/rows/SummaryRow.d.ts +12 -0
- package/dist/components/datagrid/rows/SummaryRow.js +31 -0
- package/dist/components/datagrid/rows/summary.d.ts +9 -0
- package/dist/components/datagrid/rows/summary.js +63 -0
- package/dist/components/datagrid/search/InlineSearchCell.d.ts +13 -0
- package/dist/components/datagrid/search/InlineSearchCell.js +96 -0
- package/dist/components/datagrid/search/SearchHighlighter.d.ts +16 -0
- package/dist/components/datagrid/search/SearchHighlighter.js +124 -0
- package/dist/components/datagrid/search/SearchNavigator.d.ts +24 -0
- package/dist/components/datagrid/search/SearchNavigator.js +148 -0
- package/dist/components/datagrid/search/SearchNewModal.d.ts +12 -0
- package/dist/components/datagrid/search/SearchNewModal.js +202 -0
- package/dist/components/datagrid/search/advancedSearch.d.ts +23 -0
- package/dist/components/datagrid/search/advancedSearch.js +109 -0
- package/dist/components/datagrid/utils/grid-helpers.d.ts +34 -0
- package/dist/components/datagrid/utils/grid-helpers.js +94 -0
- package/dist/components/datagrid/utils/grid-types.d.ts +157 -0
- package/dist/components/datagrid/utils/grid-types.js +2 -0
- package/dist/components/draft/AutoSaveIndicator.d.ts +28 -0
- package/dist/components/draft/AutoSaveIndicator.js +67 -0
- package/dist/components/draft/DraftModal.d.ts +27 -0
- package/dist/components/draft/DraftModal.js +184 -0
- package/dist/components/forms/date-picker/CalendarView.d.ts +17 -0
- package/dist/components/forms/date-picker/CalendarView.js +46 -0
- package/dist/components/forms/date-picker/DatePicker.d.ts +31 -0
- package/dist/components/forms/date-picker/DatePicker.js +712 -0
- package/dist/components/forms/date-picker/DateTimePicker.d.ts +15 -0
- package/dist/components/forms/date-picker/DateTimePicker.js +138 -0
- package/dist/components/forms/date-picker/index.d.ts +7 -0
- package/dist/components/forms/date-picker/index.js +9 -0
- package/dist/components/forms/date-picker/shared-utils.d.ts +6 -0
- package/dist/components/forms/date-picker/shared-utils.js +19 -0
- package/dist/components/forms/dropdown/Dropdown.d.ts +144 -0
- package/dist/components/forms/dropdown/Dropdown.js +384 -0
- package/dist/components/forms/dropdown/MultiSelect.d.ts +29 -0
- package/dist/components/forms/dropdown/MultiSelect.js +100 -0
- package/dist/components/forms/dropdown/SingleSelect.d.ts +39 -0
- package/dist/components/forms/dropdown/SingleSelect.js +218 -0
- package/dist/components/forms/dropdown/hooks/useDropdownCreate.d.ts +8 -0
- package/dist/components/forms/dropdown/hooks/useDropdownCreate.js +52 -0
- package/dist/components/forms/dropdown/hooks/useDropdownFiltering.d.ts +5 -0
- package/dist/components/forms/dropdown/hooks/useDropdownFiltering.js +51 -0
- package/dist/components/forms/dropdown/hooks/useDropdownState.d.ts +7 -0
- package/dist/components/forms/dropdown/hooks/useDropdownState.js +27 -0
- package/dist/components/forms/dropdown/index.d.ts +2 -0
- package/dist/components/forms/dropdown/index.js +2 -0
- package/dist/components/forms/dropdown/types.d.ts +67 -0
- package/dist/components/forms/dropdown/types.js +2 -0
- package/dist/components/forms/file-attachment/EmailPreview.d.ts +5 -0
- package/dist/components/forms/file-attachment/EmailPreview.js +383 -0
- package/dist/components/forms/file-attachment/FileAttachment.d.ts +30 -0
- package/dist/components/forms/file-attachment/FileAttachment.js +930 -0
- package/dist/components/forms/file-attachment/index.d.ts +2 -0
- package/dist/components/forms/file-attachment/index.js +2 -0
- package/dist/components/forms/index.d.ts +9 -0
- package/dist/components/forms/index.js +7 -0
- package/dist/components/forms/quantity-input-popup.d.ts +10 -0
- package/dist/components/forms/quantity-input-popup.js +99 -0
- package/dist/components/forms/remark-input/RemarkInput.d.ts +58 -0
- package/dist/components/forms/remark-input/RemarkInput.js +258 -0
- package/dist/components/forms/remark-input/index.d.ts +1 -0
- package/dist/components/forms/remark-input/index.js +2 -0
- package/dist/components/forms/unified-currency-dropdown.d.ts +26 -0
- package/dist/components/forms/unified-currency-dropdown.js +166 -0
- package/dist/components/index.d.ts +14 -0
- package/dist/components/index.js +15 -0
- package/dist/components/layout/SidebarContextMenu.d.ts +18 -0
- package/dist/components/layout/SidebarContextMenu.js +142 -0
- package/dist/components/layout/app-shell.d.ts +32 -0
- package/dist/components/layout/app-shell.js +43 -0
- package/dist/components/layout/bottom-nav.d.ts +28 -0
- package/dist/components/layout/bottom-nav.js +219 -0
- package/dist/components/layout/floating-action-button.d.ts +10 -0
- package/dist/components/layout/floating-action-button.js +74 -0
- package/dist/components/layout/footer.d.ts +37 -0
- package/dist/components/layout/footer.js +56 -0
- package/dist/components/layout/index.d.ts +8 -0
- package/dist/components/layout/index.js +6 -0
- package/dist/components/layout/mobile-menu-sheet.d.ts +7 -0
- package/dist/components/layout/mobile-menu-sheet.js +159 -0
- package/dist/components/layout/side-panel.d.ts +50 -0
- package/dist/components/layout/side-panel.js +115 -0
- package/dist/components/layout/sidebar.d.ts +12 -0
- package/dist/components/layout/sidebar.js +542 -0
- package/dist/components/layout/top-header.d.ts +8 -0
- package/dist/components/layout/top-header.js +234 -0
- package/dist/components/layout/userprofile-dropdown.d.ts +1 -0
- package/dist/components/layout/userprofile-dropdown.js +97 -0
- package/dist/components/master/editable-cells/EditableCell.d.ts +43 -0
- package/dist/components/master/editable-cells/EditableCell.js +66 -0
- package/dist/components/master/editable-cells/index.d.ts +9 -0
- package/dist/components/master/editable-cells/index.js +10 -0
- package/dist/components/master/index.d.ts +1 -0
- package/dist/components/master/index.js +3 -0
- package/dist/components/messaging/conversation-list.d.ts +13 -0
- package/dist/components/messaging/conversation-list.js +103 -0
- package/dist/components/messaging/create-conversation-modal.d.ts +9 -0
- package/dist/components/messaging/create-conversation-modal.js +109 -0
- package/dist/components/messaging/message-bubble.d.ts +15 -0
- package/dist/components/messaging/message-bubble.js +66 -0
- package/dist/components/messaging/message-input.d.ts +17 -0
- package/dist/components/messaging/message-input.js +151 -0
- package/dist/components/messaging/message-thread.d.ts +10 -0
- package/dist/components/messaging/message-thread.js +121 -0
- package/dist/components/messaging/messaging-panel-content.d.ts +5 -0
- package/dist/components/messaging/messaging-panel-content.js +66 -0
- package/dist/components/messaging/thread-panel.d.ts +10 -0
- package/dist/components/messaging/thread-panel.js +47 -0
- package/dist/components/modals/3DModal.d.ts +39 -0
- package/dist/components/modals/3DModal.js +32 -0
- package/dist/components/modals/ImageModal.d.ts +28 -0
- package/dist/components/modals/ImageModal.js +551 -0
- package/dist/components/modals/Modal.d.ts +92 -0
- package/dist/components/modals/Modal.js +264 -0
- package/dist/components/modals/StandardModal.d.ts +27 -0
- package/dist/components/modals/StandardModal.js +25 -0
- package/dist/components/modals/api-config-modal.d.ts +7 -0
- package/dist/components/modals/api-config-modal.js +117 -0
- package/dist/components/modals/global-api-config-modal.d.ts +7 -0
- package/dist/components/modals/global-api-config-modal.js +124 -0
- package/dist/components/modals/index.d.ts +7 -0
- package/dist/components/modals/index.js +8 -0
- package/dist/components/modals/logout-modal.d.ts +32 -0
- package/dist/components/modals/logout-modal.js +42 -0
- package/dist/components/modals/modal-alert.d.ts +139 -0
- package/dist/components/modals/modal-alert.js +250 -0
- package/dist/components/modals/password-reset-modal.d.ts +11 -0
- package/dist/components/modals/password-reset-modal.js +109 -0
- package/dist/components/modals/session-expiry-warning.d.ts +12 -0
- package/dist/components/modals/session-expiry-warning.js +15 -0
- package/dist/components/providers/api-provider.d.ts +10 -0
- package/dist/components/providers/api-provider.js +15 -0
- package/dist/components/providers/query-provider.d.ts +3 -0
- package/dist/components/providers/query-provider.js +26 -0
- package/dist/components/providers/session-provider.d.ts +7 -0
- package/dist/components/providers/session-provider.js +116 -0
- package/dist/components/theme/ThemeCustomizer.d.ts +37 -0
- package/dist/components/theme/ThemeCustomizer.js +178 -0
- package/dist/components/ui/buttons/button.d.ts +59 -0
- package/dist/components/ui/buttons/button.js +228 -0
- package/dist/components/ui/card.d.ts +8 -0
- package/dist/components/ui/card.js +17 -0
- package/dist/components/ui/chart.d.ts +83 -0
- package/dist/components/ui/chart.js +113 -0
- package/dist/components/ui/display/boolean-badge.d.ts +7 -0
- package/dist/components/ui/display/boolean-badge.js +23 -0
- package/dist/components/ui/display/card.d.ts +10 -0
- package/dist/components/ui/display/card.js +11 -0
- package/dist/components/ui/display/collapsible.d.ts +6 -0
- package/dist/components/ui/display/collapsible.js +6 -0
- package/dist/components/ui/display/separator.d.ts +4 -0
- package/dist/components/ui/display/separator.js +8 -0
- package/dist/components/ui/display/stats-card.d.ts +22 -0
- package/dist/components/ui/display/stats-card.js +25 -0
- package/dist/components/ui/display/text.d.ts +14 -0
- package/dist/components/ui/display/text.js +57 -0
- package/dist/components/ui/feedback/alert.d.ts +8 -0
- package/dist/components/ui/feedback/alert.js +23 -0
- package/dist/components/ui/feedback/badge.d.ts +49 -0
- package/dist/components/ui/feedback/badge.js +87 -0
- package/dist/components/ui/feedback/progress.d.ts +4 -0
- package/dist/components/ui/feedback/progress.js +8 -0
- package/dist/components/ui/feedback/reminder-button.d.ts +22 -0
- package/dist/components/ui/feedback/reminder-button.js +75 -0
- package/dist/components/ui/feedback/skeleton-table.d.ts +18 -0
- package/dist/components/ui/feedback/skeleton-table.js +17 -0
- package/dist/components/ui/feedback/skeleton.d.ts +53 -0
- package/dist/components/ui/feedback/skeleton.js +48 -0
- package/dist/components/ui/feedback/tooltip.d.ts +15 -0
- package/dist/components/ui/feedback/tooltip.js +14 -0
- package/dist/components/ui/form-toggle.d.ts +57 -0
- package/dist/components/ui/form-toggle.js +44 -0
- package/dist/components/ui/forms/checkbox.d.ts +6 -0
- package/dist/components/ui/forms/checkbox.js +17 -0
- package/dist/components/ui/forms/input.d.ts +18 -0
- package/dist/components/ui/forms/input.js +75 -0
- package/dist/components/ui/forms/label.d.ts +5 -0
- package/dist/components/ui/forms/label.js +6 -0
- package/dist/components/ui/forms/switch.d.ts +10 -0
- package/dist/components/ui/forms/switch.js +22 -0
- package/dist/components/ui/forms/textarea.d.ts +8 -0
- package/dist/components/ui/forms/textarea.js +13 -0
- package/dist/components/ui/index.d.ts +49 -0
- package/dist/components/ui/index.js +62 -0
- package/dist/components/ui/navigation/dropdown-menu.d.ts +27 -0
- package/dist/components/ui/navigation/dropdown-menu.js +34 -0
- package/dist/components/ui/navigation/header-steps.d.ts +16 -0
- package/dist/components/ui/navigation/header-steps.js +15 -0
- package/dist/components/ui/navigation/tabs.d.ts +40 -0
- package/dist/components/ui/navigation/tabs.js +59 -0
- package/dist/components/ui/overlays/loading.d.ts +47 -0
- package/dist/components/ui/overlays/loading.js +131 -0
- package/dist/components/ui/select.d.ts +13 -0
- package/dist/components/ui/select.js +27 -0
- package/dist/config/api.d.ts +30 -0
- package/dist/config/api.js +58 -0
- package/dist/contexts/AppConfigContext.d.ts +13 -0
- package/dist/contexts/AppConfigContext.js +33 -0
- package/dist/contexts/CurrencyContext.d.ts +43 -0
- package/dist/contexts/CurrencyContext.js +331 -0
- package/dist/contexts/DeviceContext.d.ts +12 -0
- package/dist/contexts/DeviceContext.js +69 -0
- package/dist/contexts/EmailContext.d.ts +112 -0
- package/dist/contexts/EmailContext.js +720 -0
- package/dist/contexts/GlobalAlertContext.d.ts +67 -0
- package/dist/contexts/GlobalAlertContext.js +192 -0
- package/dist/contexts/ImpactAnalysisContext.d.ts +11 -0
- package/dist/contexts/ImpactAnalysisContext.js +23 -0
- package/dist/contexts/LanguageContext.d.ts +21 -0
- package/dist/contexts/LanguageContext.js +66 -0
- package/dist/contexts/MessagingContext.d.ts +70 -0
- package/dist/contexts/MessagingContext.js +722 -0
- package/dist/contexts/ModuleAuthContext.d.ts +42 -0
- package/dist/contexts/ModuleAuthContext.js +278 -0
- package/dist/contexts/NavigationContext.d.ts +26 -0
- package/dist/contexts/NavigationContext.js +143 -0
- package/dist/contexts/NetworkStatusContext.d.ts +18 -0
- package/dist/contexts/NetworkStatusContext.js +87 -0
- package/dist/contexts/NotificationContext.d.ts +47 -0
- package/dist/contexts/NotificationContext.js +165 -0
- package/dist/contexts/PageTitleContext.d.ts +11 -0
- package/dist/contexts/PageTitleContext.js +23 -0
- package/dist/contexts/SearchPreferencesContext.d.ts +11 -0
- package/dist/contexts/SearchPreferencesContext.js +38 -0
- package/dist/contexts/SessionAdapterContext.d.ts +39 -0
- package/dist/contexts/SessionAdapterContext.js +20 -0
- package/dist/contexts/SidebarPreferencesContext.d.ts +19 -0
- package/dist/contexts/SidebarPreferencesContext.js +112 -0
- package/dist/contexts/ThemeContext.d.ts +63 -0
- package/dist/contexts/ThemeContext.js +153 -0
- package/dist/hooks/index.d.ts +23 -0
- package/dist/hooks/index.js +18 -0
- package/dist/hooks/useApproval.d.ts +47 -0
- package/dist/hooks/useApproval.js +247 -0
- package/dist/hooks/useBacchaSearch.d.ts +57 -0
- package/dist/hooks/useBacchaSearch.js +254 -0
- package/dist/hooks/useBusinessAudit.d.ts +24 -0
- package/dist/hooks/useBusinessAudit.js +51 -0
- package/dist/hooks/useColumnFreezing.d.ts +85 -0
- package/dist/hooks/useColumnFreezing.js +201 -0
- package/dist/hooks/useColumnMetadata.d.ts +20 -0
- package/dist/hooks/useColumnMetadata.js +44 -0
- package/dist/hooks/useConditionalFormatting.d.ts +43 -0
- package/dist/hooks/useConditionalFormatting.js +193 -0
- package/dist/hooks/useDebounce.d.ts +14 -0
- package/dist/hooks/useDebounce.js +45 -0
- package/dist/hooks/useDraft.d.ts +46 -0
- package/dist/hooks/useDraft.js +178 -0
- package/dist/hooks/useFormValidation.d.ts +37 -0
- package/dist/hooks/useFormValidation.js +65 -0
- package/dist/hooks/useGridSettings.d.ts +26 -0
- package/dist/hooks/useGridSettings.js +82 -0
- package/dist/hooks/useGridTheme.d.ts +59 -0
- package/dist/hooks/useGridTheme.js +199 -0
- package/dist/hooks/useId.d.ts +2 -0
- package/dist/hooks/useId.js +17 -0
- package/dist/hooks/useIntelligentColumnSizing.d.ts +71 -0
- package/dist/hooks/useIntelligentColumnSizing.js +310 -0
- package/dist/hooks/useKeyboardNavigation.d.ts +33 -0
- package/dist/hooks/useKeyboardNavigation.js +189 -0
- package/dist/hooks/useNotifications.d.ts +7 -0
- package/dist/hooks/useNotifications.js +56 -0
- package/dist/hooks/usePrevious.d.ts +9 -0
- package/dist/hooks/usePrevious.js +17 -0
- package/dist/hooks/useRowSelection.d.ts +45 -0
- package/dist/hooks/useRowSelection.js +147 -0
- package/dist/hooks/useSignalR.d.ts +13 -0
- package/dist/hooks/useSignalR.js +50 -0
- package/dist/hooks/useTheme.d.ts +59 -0
- package/dist/hooks/useTheme.js +261 -0
- package/dist/hooks/useTranslation.d.ts +5 -0
- package/dist/hooks/useTranslation.js +17 -0
- package/dist/hooks/useUnsavedChanges.d.ts +40 -0
- package/dist/hooks/useUnsavedChanges.js +83 -0
- package/dist/index.d.ts +2 -3173
- package/dist/index.js +4 -25937
- package/dist/lib/api/activity/audit/audit.d.ts +34 -0
- package/dist/lib/api/activity/audit/audit.js +44 -0
- package/dist/lib/api/activity/audit/index.d.ts +6 -0
- package/dist/lib/api/activity/audit/index.js +7 -0
- package/dist/lib/api/activity/audit/send.d.ts +152 -0
- package/dist/lib/api/activity/audit/send.js +403 -0
- package/dist/lib/api/activity/email/client.d.ts +167 -0
- package/dist/lib/api/activity/email/client.js +455 -0
- package/dist/lib/api/activity/email/index.d.ts +7 -0
- package/dist/lib/api/activity/email/index.js +10 -0
- package/dist/lib/api/activity/email/password-reset.d.ts +8 -0
- package/dist/lib/api/activity/email/password-reset.js +55 -0
- package/dist/lib/api/activity/email/templates.d.ts +10 -0
- package/dist/lib/api/activity/email/templates.js +531 -0
- package/dist/lib/api/activity/email/types.d.ts +237 -0
- package/dist/lib/api/activity/email/types.js +21 -0
- package/dist/lib/api/activity/index.d.ts +12 -0
- package/dist/lib/api/activity/index.js +15 -0
- package/dist/lib/api/activity/messaging/messaging.d.ts +149 -0
- package/dist/lib/api/activity/messaging/messaging.js +245 -0
- package/dist/lib/api/activity/notifications/index.d.ts +9 -0
- package/dist/lib/api/activity/notifications/index.js +9 -0
- package/dist/lib/api/activity/notifications/notifications.d.ts +59 -0
- package/dist/lib/api/activity/notifications/notifications.js +218 -0
- package/dist/lib/api/activity/notifications/reminders.d.ts +35 -0
- package/dist/lib/api/activity/notifications/reminders.js +25 -0
- package/dist/lib/api/activity/notifications/send.d.ts +122 -0
- package/dist/lib/api/activity/notifications/send.js +252 -0
- package/dist/lib/api/activity/notifications/types.d.ts +119 -0
- package/dist/lib/api/activity/notifications/types.js +62 -0
- package/dist/lib/api/activity/notify-and-log.d.ts +50 -0
- package/dist/lib/api/activity/notify-and-log.js +60 -0
- package/dist/lib/api/activity/remarks/index.d.ts +2 -0
- package/dist/lib/api/activity/remarks/index.js +2 -0
- package/dist/lib/api/activity/remarks/remarks.d.ts +83 -0
- package/dist/lib/api/activity/remarks/remarks.js +179 -0
- package/dist/lib/api/activity/storage.d.ts +28 -0
- package/dist/lib/api/activity/storage.js +79 -0
- package/dist/lib/api/ai/chat.d.ts +67 -0
- package/dist/lib/api/ai/chat.js +212 -0
- package/dist/lib/api/ai/types.d.ts +69 -0
- package/dist/lib/api/ai/types.js +5 -0
- package/dist/lib/api/approval/approvals.d.ts +66 -0
- package/dist/lib/api/approval/approvals.js +205 -0
- package/dist/lib/api/approval/index.d.ts +5 -0
- package/dist/lib/api/approval/index.js +6 -0
- package/dist/lib/api/auth/auth.d.ts +12 -0
- package/dist/lib/api/auth/auth.js +148 -0
- package/dist/lib/api/auth/index.d.ts +1 -0
- package/dist/lib/api/auth/index.js +4 -0
- package/dist/lib/api/auth/password-reset-otp.d.ts +49 -0
- package/dist/lib/api/auth/password-reset-otp.js +185 -0
- package/dist/lib/api/auth/two-factor-auth.d.ts +55 -0
- package/dist/lib/api/auth/two-factor-auth.js +84 -0
- package/dist/lib/api/auth/two-factor.d.ts +41 -0
- package/dist/lib/api/auth/two-factor.js +180 -0
- package/dist/lib/api/core/auth-helpers.d.ts +13 -0
- package/dist/lib/api/core/auth-helpers.js +137 -0
- package/dist/lib/api/core/client.d.ts +37 -0
- package/dist/lib/api/core/client.js +301 -0
- package/dist/lib/api/core/config.d.ts +46 -0
- package/dist/lib/api/core/config.js +238 -0
- package/dist/lib/api/core/index.d.ts +6 -0
- package/dist/lib/api/core/index.js +11 -0
- package/dist/lib/api/core/session-validator.d.ts +55 -0
- package/dist/lib/api/core/session-validator.js +94 -0
- package/dist/lib/api/core/types.d.ts +192 -0
- package/dist/lib/api/core/types.js +3 -0
- package/dist/lib/api/core/utils.d.ts +15 -0
- package/dist/lib/api/core/utils.js +64 -0
- package/dist/lib/api/dashboard/costing.d.ts +129 -0
- package/dist/lib/api/dashboard/costing.js +8 -0
- package/dist/lib/api/dashboard/management.d.ts +91 -0
- package/dist/lib/api/dashboard/management.js +5 -0
- package/dist/lib/api/dashboard/sales.d.ts +87 -0
- package/dist/lib/api/dashboard/sales.js +5 -0
- package/dist/lib/api/draft/drafts.d.ts +49 -0
- package/dist/lib/api/draft/drafts.js +274 -0
- package/dist/lib/api/draft/index.d.ts +5 -0
- package/dist/lib/api/draft/index.js +6 -0
- package/dist/lib/api/enquiry/enquiry.d.ts +324 -0
- package/dist/lib/api/enquiry/enquiry.js +617 -0
- package/dist/lib/api/enquiry/index.d.ts +2 -0
- package/dist/lib/api/enquiry/index.js +4 -0
- package/dist/lib/api/enquiry/rate-enquiry.d.ts +97 -0
- package/dist/lib/api/enquiry/rate-enquiry.js +69 -0
- package/dist/lib/api/estimation/categories.d.ts +28 -0
- package/dist/lib/api/estimation/categories.js +104 -0
- package/dist/lib/api/estimation/category-defaults.d.ts +56 -0
- package/dist/lib/api/estimation/category-defaults.js +41 -0
- package/dist/lib/api/estimation/company-config.d.ts +59 -0
- package/dist/lib/api/estimation/company-config.js +19 -0
- package/dist/lib/api/estimation/content.d.ts +103 -0
- package/dist/lib/api/estimation/content.js +203 -0
- package/dist/lib/api/estimation/freight.d.ts +34 -0
- package/dist/lib/api/estimation/freight.js +18 -0
- package/dist/lib/api/estimation/grid-costing-drafts.d.ts +38 -0
- package/dist/lib/api/estimation/grid-costing-drafts.js +21 -0
- package/dist/lib/api/estimation/grid-costing.d.ts +353 -0
- package/dist/lib/api/estimation/grid-costing.js +126 -0
- package/dist/lib/api/estimation/index.d.ts +10 -0
- package/dist/lib/api/estimation/index.js +22 -0
- package/dist/lib/api/estimation/legacy-costing.d.ts +42 -0
- package/dist/lib/api/estimation/legacy-costing.js +46 -0
- package/dist/lib/api/estimation/machines.d.ts +32 -0
- package/dist/lib/api/estimation/machines.js +67 -0
- package/dist/lib/api/estimation/planning.d.ts +479 -0
- package/dist/lib/api/estimation/planning.js +385 -0
- package/dist/lib/api/estimation/qualities.d.ts +128 -0
- package/dist/lib/api/estimation/qualities.js +229 -0
- package/dist/lib/api/estimation/quotation-load.d.ts +30 -0
- package/dist/lib/api/estimation/quotation-load.js +46 -0
- package/dist/lib/api/estimation/quotation-save.d.ts +88 -0
- package/dist/lib/api/estimation/quotation-save.js +101 -0
- package/dist/lib/api/estimation/quote-check.d.ts +19 -0
- package/dist/lib/api/estimation/quote-check.js +28 -0
- package/dist/lib/api/estimation/quotepanel.d.ts +304 -0
- package/dist/lib/api/estimation/quotepanel.js +489 -0
- package/dist/lib/api/estimation/shipper-planning.d.ts +71 -0
- package/dist/lib/api/estimation/shipper-planning.js +208 -0
- package/dist/lib/api/estimation/wastage.d.ts +40 -0
- package/dist/lib/api/estimation/wastage.js +40 -0
- package/dist/lib/api/index.d.ts +7 -0
- package/dist/lib/api/index.js +17 -0
- package/dist/lib/api/integration/proxy.d.ts +7 -0
- package/dist/lib/api/integration/proxy.js +34 -0
- package/dist/lib/api/master/category.d.ts +126 -0
- package/dist/lib/api/master/category.js +208 -0
- package/dist/lib/api/master/company.d.ts +167 -0
- package/dist/lib/api/master/company.js +368 -0
- package/dist/lib/api/master/hsn.d.ts +36 -0
- package/dist/lib/api/master/hsn.js +54 -0
- package/dist/lib/api/master/index.d.ts +12 -0
- package/dist/lib/api/master/index.js +27 -0
- package/dist/lib/api/master/item.d.ts +158 -0
- package/dist/lib/api/master/item.js +135 -0
- package/dist/lib/api/master/ledger.d.ts +173 -0
- package/dist/lib/api/master/ledger.js +391 -0
- package/dist/lib/api/master/logistics.d.ts +117 -0
- package/dist/lib/api/master/logistics.js +107 -0
- package/dist/lib/api/master/machine.d.ts +406 -0
- package/dist/lib/api/master/machine.js +570 -0
- package/dist/lib/api/master/material-group.d.ts +97 -0
- package/dist/lib/api/master/material-group.js +96 -0
- package/dist/lib/api/master/other.d.ts +65 -0
- package/dist/lib/api/master/other.js +56 -0
- package/dist/lib/api/master/process-types.d.ts +178 -0
- package/dist/lib/api/master/process-types.js +4 -0
- package/dist/lib/api/master/process.d.ts +94 -0
- package/dist/lib/api/master/process.js +124 -0
- package/dist/lib/api/master/production-units.d.ts +10 -0
- package/dist/lib/api/master/production-units.js +15 -0
- package/dist/lib/api/master/rate.d.ts +174 -0
- package/dist/lib/api/master/rate.js +196 -0
- package/dist/lib/api/master/tool.d.ts +48 -0
- package/dist/lib/api/master/tool.js +80 -0
- package/dist/lib/api/master/user.d.ts +473 -0
- package/dist/lib/api/master/user.js +147 -0
- package/dist/lib/api/settings/erp-parameters.d.ts +33 -0
- package/dist/lib/api/settings/erp-parameters.js +61 -0
- package/dist/lib/api/utility/index.d.ts +1 -0
- package/dist/lib/api/utility/index.js +5 -0
- package/dist/lib/api/utility/menu.d.ts +32 -0
- package/dist/lib/api/utility/menu.js +128 -0
- package/dist/lib/auth.d.ts +3 -0
- package/dist/lib/auth.js +7 -0
- package/dist/lib/pwa.d.ts +8 -0
- package/dist/lib/pwa.js +53 -0
- package/dist/lib/react-query-config.d.ts +140 -0
- package/dist/lib/react-query-config.js +131 -0
- package/dist/lib/security/audit-logger.d.ts +71 -0
- package/dist/lib/security/audit-logger.js +173 -0
- package/dist/lib/security/rate-limiter.d.ts +28 -0
- package/dist/lib/security/rate-limiter.js +118 -0
- package/dist/lib/server-url.d.ts +18 -0
- package/dist/lib/server-url.js +70 -0
- package/dist/lib/svg-utils.d.ts +62 -0
- package/dist/lib/svg-utils.js +206 -0
- package/dist/lib/theme/types.d.ts +109 -0
- package/dist/lib/theme/types.js +231 -0
- package/dist/lib/theme/utils.d.ts +73 -0
- package/dist/lib/theme/utils.js +343 -0
- package/dist/lib/types/index.d.ts +58 -0
- package/dist/lib/types/index.js +2 -0
- package/dist/lib/utils/attachment-loader.d.ts +27 -0
- package/dist/lib/utils/attachment-loader.js +79 -0
- package/dist/lib/utils/client-lead-utils.d.ts +24 -0
- package/dist/lib/utils/client-lead-utils.js +56 -0
- package/dist/lib/utils/device-detection.d.ts +19 -0
- package/dist/lib/utils/device-detection.js +105 -0
- package/dist/lib/utils/logout-cleanup.d.ts +63 -0
- package/dist/lib/utils/logout-cleanup.js +297 -0
- package/dist/lib/utils/planning-prefs.d.ts +10 -0
- package/dist/lib/utils/planning-prefs.js +27 -0
- package/dist/lib/utils.d.ts +20 -0
- package/dist/lib/utils.js +60 -0
- package/dist/lib/vision/dieline-extractor.d.ts +38 -0
- package/dist/lib/vision/dieline-extractor.js +313 -0
- package/dist/lib/vision/reference-grid.d.ts +52 -0
- package/dist/lib/vision/reference-grid.js +241 -0
- package/dist/locales/de.json +79 -0
- package/dist/locales/en.json +2217 -0
- package/dist/locales/es.json +79 -0
- package/dist/locales/fr.json +78 -0
- package/dist/locales/hi.json +1599 -0
- package/dist/providers.d.ts +14 -0
- package/dist/providers.js +15 -0
- package/dist/services/GlobalLoadingService.d.ts +216 -0
- package/dist/services/GlobalLoadingService.js +216 -0
- package/dist/styles/grid-themes.css +346 -0
- package/dist/styles/index.css +5 -0
- package/dist/{sidebar-scrollbar-NBCB2OO2.css → styles/sidebar-scrollbar.css} +45 -45
- package/dist/styles/tokens.css +713 -0
- package/dist/types/approval.d.ts +201 -0
- package/dist/types/approval.js +19 -0
- package/dist/types/audit.d.ts +87 -0
- package/dist/types/audit.js +47 -0
- package/dist/types/draft.d.ts +142 -0
- package/dist/types/draft.js +19 -0
- package/dist/types/master.d.ts +154 -0
- package/dist/types/master.js +3 -0
- package/dist/types/shipper-planning.d.ts +277 -0
- package/dist/types/shipper-planning.js +6 -0
- package/package.json +182 -119
- package/dist/chunk-4PEFU7N7.js +0 -16
- package/dist/chunk-4PEFU7N7.js.map +0 -1
- package/dist/de-EKT7SUK5.js +0 -106
- package/dist/de-EKT7SUK5.js.map +0 -1
- package/dist/en-QRFSIEHD.js +0 -1685
- package/dist/en-QRFSIEHD.js.map +0 -1
- package/dist/es-KHZMWGUI.js +0 -106
- package/dist/es-KHZMWGUI.js.map +0 -1
- package/dist/fr-X2XUXSHK.js +0 -105
- package/dist/fr-X2XUXSHK.js.map +0 -1
- package/dist/hi-YRATOE5Q.js +0 -415
- package/dist/hi-YRATOE5Q.js.map +0 -1
- package/dist/index.cjs +0 -28216
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -3173
- package/dist/index.js.map +0 -1
- /package/{src → dist/cjs}/styles/index.css +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.LogoutModal = LogoutModal;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const ui_1 = require("../ui/index.js");
|
|
8
|
+
const utils_1 = require("../../lib/utils.js");
|
|
9
|
+
const lucide_react_1 = require("lucide-react");
|
|
10
|
+
const LanguageContext_1 = require("../../contexts/LanguageContext.js");
|
|
11
|
+
function LogoutModal({ isOpen, onClose, onLogout, sessionData, onViewTasks, className }) {
|
|
12
|
+
const { t } = (0, LanguageContext_1.useLanguage)();
|
|
13
|
+
(0, react_1.useEffect)(() => {
|
|
14
|
+
if (!isOpen)
|
|
15
|
+
return;
|
|
16
|
+
const handleKeyDown = (e) => {
|
|
17
|
+
if (e.key === 'Escape')
|
|
18
|
+
onClose();
|
|
19
|
+
if (e.key === 'Enter') {
|
|
20
|
+
e.preventDefault();
|
|
21
|
+
onLogout();
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
window.addEventListener('keydown', handleKeyDown);
|
|
25
|
+
return () => window.removeEventListener('keydown', handleKeyDown);
|
|
26
|
+
}, [isOpen, onClose, onLogout]);
|
|
27
|
+
const getDeviceIcon = (type) => {
|
|
28
|
+
const cls = "h-3.5 w-3.5 text-[rgb(var(--fg-muted))]";
|
|
29
|
+
if (type === 'mobile')
|
|
30
|
+
return (0, jsx_runtime_1.jsx)(lucide_react_1.Smartphone, { className: cls });
|
|
31
|
+
if (type === 'tablet')
|
|
32
|
+
return (0, jsx_runtime_1.jsx)(lucide_react_1.Tablet, { className: cls });
|
|
33
|
+
return (0, jsx_runtime_1.jsx)(lucide_react_1.Monitor, { className: cls });
|
|
34
|
+
};
|
|
35
|
+
const currentDevice = sessionData.activeDevices.find(d => d.isCurrent);
|
|
36
|
+
const pendingCount = sessionData.tasks.overdue + sessionData.tasks.dueSoon;
|
|
37
|
+
const hasPending = pendingCount > 0;
|
|
38
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.Dialog, { open: isOpen, onOpenChange: onClose, children: (0, jsx_runtime_1.jsxs)(ui_1.DialogContent, { className: (0, utils_1.cn)("sm:max-w-[400px] p-0 gap-0 rounded-xl overflow-hidden", className), hideCloseButton: true, children: [(0, jsx_runtime_1.jsx)(ui_1.DialogHeader, { className: "px-5 pt-4 pb-3.5 border-b border-[rgb(var(--bd-default))]", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(ui_1.DialogTitle, { className: "text-base font-semibold text-[rgb(var(--fg-default))]", children: t('Log out?') }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs text-[rgb(var(--fg-muted))] mt-0.5", children: t('Your work will be saved automatically') })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2 flex-shrink-0 pt-0.5", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-1 px-2 py-1 rounded-md bg-[rgb(var(--bg-subtle))] border border-[rgb(var(--bd-default))]", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Clock, { className: "h-3 w-3 text-[rgb(var(--fg-muted))]" }), (0, jsx_runtime_1.jsx)("span", { className: "text-xs text-[rgb(var(--fg-muted))]", children: sessionData.duration })] }), (0, jsx_runtime_1.jsx)("button", { onClick: onClose, className: "close-btn-sm", "aria-label": "Close", children: (0, jsx_runtime_1.jsx)(lucide_react_1.X, { className: "h-4 w-4" }) })] })] }) }), (0, jsx_runtime_1.jsxs)("div", { className: "px-5 py-4 space-y-3", children: [hasPending && ((0, jsx_runtime_1.jsxs)("button", { onClick: onViewTasks, className: (0, utils_1.cn)("w-full flex items-center gap-3 p-3 rounded-lg border text-left transition-colors group", sessionData.tasks.overdue > 0
|
|
39
|
+
? "bg-[rgb(var(--color-error))]/5 border-[rgb(var(--color-error))]/20 hover:bg-[rgb(var(--color-error))]/10"
|
|
40
|
+
: "bg-[rgb(var(--color-warning))]/5 border-[rgb(var(--color-warning))]/20 hover:bg-[rgb(var(--color-warning))]/10"), children: [(0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)("flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg", sessionData.tasks.overdue > 0
|
|
41
|
+
? "bg-[rgb(var(--color-error))]/10"
|
|
42
|
+
: "bg-[rgb(var(--color-warning))]/10"), children: (0, jsx_runtime_1.jsx)(lucide_react_1.ClipboardCheck, { className: (0, utils_1.cn)("h-4 w-4", sessionData.tasks.overdue > 0 ? "text-[rgb(var(--color-error))]" : "text-[rgb(var(--color-warning))]") }) }), (0, jsx_runtime_1.jsxs)("div", { className: "flex-1 min-w-0", children: [(0, jsx_runtime_1.jsxs)("p", { className: (0, utils_1.cn)("text-sm font-semibold", sessionData.tasks.overdue > 0 ? "text-[rgb(var(--color-error))]" : "text-[rgb(var(--color-warning))]"), children: [pendingCount, " ", sessionData.tasks.overdue > 0 ? t('overdue task') : t('pending task'), pendingCount !== 1 ? 's' : ''] }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs text-[rgb(var(--fg-muted))] mt-0.5", children: t('View notifications') })] }), (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowRight, { className: "h-3.5 w-3.5 text-[rgb(var(--fg-muted))] group-hover:translate-x-0.5 transition-transform flex-shrink-0" })] })), currentDevice && ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-3 p-3 rounded-lg bg-[rgb(var(--bg-subtle))] border border-[rgb(var(--bd-default))]", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex h-8 w-8 items-center justify-center rounded-lg bg-[rgb(var(--bg-surface))] border border-[rgb(var(--bd-default))]", children: getDeviceIcon(currentDevice.type) }), (0, jsx_runtime_1.jsxs)("div", { className: "flex-1 min-w-0", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-sm font-medium text-[rgb(var(--fg-default))] truncate", children: currentDevice.browser && currentDevice.os
|
|
43
|
+
? `${currentDevice.browser} on ${currentDevice.os}`
|
|
44
|
+
: t('This Device') }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-1.5 mt-0.5", children: [(0, jsx_runtime_1.jsx)("div", { className: "h-1.5 w-1.5 rounded-full bg-[rgb(var(--color-success))]" }), (0, jsx_runtime_1.jsx)("span", { className: "text-xs text-[rgb(var(--fg-muted))]", children: t('Active now') })] })] })] }))] }), (0, jsx_runtime_1.jsx)(ui_1.DialogFooter, { className: "px-5 py-3 bg-[rgb(var(--bg-subtle))] border-t border-[rgb(var(--bd-default))]", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2.5 w-full", children: [(0, jsx_runtime_1.jsxs)("button", { onClick: onClose, className: "flex-1 flex items-center justify-center gap-1.5 rounded-lg px-4 py-2 bg-[rgb(var(--bg-surface))] hover:bg-[rgb(var(--bg-hover))] text-[rgb(var(--fg-default))] border border-[rgb(var(--bd-default))] transition-colors text-sm font-medium", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.XCircle, { className: "h-3.5 w-3.5" }), t('Cancel')] }), (0, jsx_runtime_1.jsxs)("button", { onClick: onLogout, className: "flex-1 flex items-center justify-center gap-1.5 rounded-lg px-4 py-2 bg-[rgb(var(--color-error))]/10 hover:bg-[rgb(var(--color-error))]/20 text-[rgb(var(--color-error))] border border-[rgb(var(--color-error))]/25 transition-colors text-sm font-medium", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.LogOut, { className: "h-3.5 w-3.5" }), t('Log Out')] })] }) })] }) }));
|
|
45
|
+
}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.LoadingAlert = exports.CriticalAlert = exports.ConfirmationAlert = exports.InfoAlert = exports.WarningAlert = exports.ErrorAlert = exports.SuccessAlert = exports.ALERT_TOKENS = void 0;
|
|
38
|
+
exports.ModalAlert = ModalAlert;
|
|
39
|
+
exports.useModalAlert = useModalAlert;
|
|
40
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
41
|
+
const React = __importStar(require("react"));
|
|
42
|
+
const DialogPrimitive = __importStar(require("@radix-ui/react-dialog"));
|
|
43
|
+
const utils_1 = require("../../lib/utils.js");
|
|
44
|
+
const lucide_react_1 = require("lucide-react");
|
|
45
|
+
const loading_1 = require("../ui/overlays/loading.js");
|
|
46
|
+
// Design Tokens
|
|
47
|
+
exports.ALERT_TOKENS = {
|
|
48
|
+
colors: {
|
|
49
|
+
success: {
|
|
50
|
+
bg: 'bg-green-50',
|
|
51
|
+
border: 'border-green-200',
|
|
52
|
+
icon: 'text-green-600',
|
|
53
|
+
title: 'text-green-900',
|
|
54
|
+
description: 'text-green-700',
|
|
55
|
+
primaryButton: 'bg-green-600 hover:bg-green-700 text-white',
|
|
56
|
+
secondaryButton: 'bg-green-100 hover:bg-green-200 text-green-700'
|
|
57
|
+
},
|
|
58
|
+
error: {
|
|
59
|
+
bg: 'bg-red-50',
|
|
60
|
+
border: 'border-red-200',
|
|
61
|
+
icon: 'text-red-600',
|
|
62
|
+
title: 'text-red-900',
|
|
63
|
+
description: 'text-red-700',
|
|
64
|
+
primaryButton: 'bg-red-600 hover:bg-red-700 text-white',
|
|
65
|
+
secondaryButton: 'bg-red-100 hover:bg-red-200 text-red-700'
|
|
66
|
+
},
|
|
67
|
+
warning: {
|
|
68
|
+
bg: 'bg-amber-50',
|
|
69
|
+
border: 'border-amber-200',
|
|
70
|
+
icon: 'text-amber-600',
|
|
71
|
+
title: 'text-amber-900',
|
|
72
|
+
description: 'text-amber-700',
|
|
73
|
+
primaryButton: 'bg-amber-600 hover:bg-amber-700 text-white',
|
|
74
|
+
secondaryButton: 'bg-amber-100 hover:bg-amber-200 text-amber-700'
|
|
75
|
+
},
|
|
76
|
+
info: {
|
|
77
|
+
bg: 'bg-blue-50',
|
|
78
|
+
border: 'border-blue-200',
|
|
79
|
+
icon: 'text-blue-600',
|
|
80
|
+
title: 'text-blue-900',
|
|
81
|
+
description: 'text-blue-700',
|
|
82
|
+
primaryButton: 'bg-blue-600 hover:bg-blue-700 text-white',
|
|
83
|
+
secondaryButton: 'bg-blue-100 hover:bg-blue-200 text-blue-700'
|
|
84
|
+
},
|
|
85
|
+
confirmation: {
|
|
86
|
+
bg: 'bg-gray-50',
|
|
87
|
+
border: 'border-gray-200',
|
|
88
|
+
icon: 'text-gray-600',
|
|
89
|
+
title: 'text-gray-900',
|
|
90
|
+
description: 'text-gray-700',
|
|
91
|
+
primaryButton: 'bg-gray-900 hover:bg-gray-800 text-white',
|
|
92
|
+
secondaryButton: 'bg-gray-100 hover:bg-gray-200 text-gray-700'
|
|
93
|
+
},
|
|
94
|
+
critical: {
|
|
95
|
+
bg: 'bg-red-100',
|
|
96
|
+
border: 'border-red-300',
|
|
97
|
+
icon: 'text-red-700',
|
|
98
|
+
title: 'text-red-900',
|
|
99
|
+
description: 'text-red-800',
|
|
100
|
+
primaryButton: 'bg-red-700 hover:bg-red-800 text-white',
|
|
101
|
+
secondaryButton: 'bg-red-200 hover:bg-red-300 text-red-800'
|
|
102
|
+
},
|
|
103
|
+
loading: {
|
|
104
|
+
bg: 'bg-blue-50',
|
|
105
|
+
border: 'border-blue-200',
|
|
106
|
+
icon: 'text-blue-600',
|
|
107
|
+
title: 'text-blue-900',
|
|
108
|
+
description: 'text-blue-700',
|
|
109
|
+
primaryButton: 'bg-blue-600 hover:bg-blue-700 text-white',
|
|
110
|
+
secondaryButton: 'bg-blue-100 hover:bg-blue-200 text-blue-700'
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
spacing: {
|
|
114
|
+
padding: 'p-6',
|
|
115
|
+
gap: 'gap-4',
|
|
116
|
+
iconSize: 'w-8 h-8',
|
|
117
|
+
buttonPadding: 'px-4 py-2',
|
|
118
|
+
borderRadius: 'rounded-xl'
|
|
119
|
+
},
|
|
120
|
+
typography: {
|
|
121
|
+
title: 'text-lg font-semibold',
|
|
122
|
+
description: 'text-sm leading-relaxed',
|
|
123
|
+
button: 'text-sm font-medium'
|
|
124
|
+
},
|
|
125
|
+
animations: {
|
|
126
|
+
overlay: 'transition-all duration-200 ease-out data-[state=open]:opacity-100 data-[state=closed]:opacity-0',
|
|
127
|
+
content: 'transition-all duration-200 ease-out data-[state=open]:opacity-100 data-[state=open]:scale-100 data-[state=closed]:opacity-0 data-[state=closed]:scale-95'
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
const ALERT_ICONS = {
|
|
131
|
+
success: lucide_react_1.CheckCircle,
|
|
132
|
+
error: lucide_react_1.XCircle,
|
|
133
|
+
warning: lucide_react_1.AlertTriangle,
|
|
134
|
+
info: lucide_react_1.Info,
|
|
135
|
+
confirmation: lucide_react_1.HelpCircle,
|
|
136
|
+
critical: lucide_react_1.AlertCircle,
|
|
137
|
+
loading: lucide_react_1.Loader2
|
|
138
|
+
};
|
|
139
|
+
function ModalAlert({ open, onOpenChange, type, title, description, actions = [], showCloseButton = true, autoClose, preventClose = false, className, 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, ...props }) {
|
|
140
|
+
const colors = exports.ALERT_TOKENS.colors[type];
|
|
141
|
+
const IconComponent = ALERT_ICONS[type];
|
|
142
|
+
const isLoading = type === 'loading';
|
|
143
|
+
// Auto-close functionality
|
|
144
|
+
React.useEffect(() => {
|
|
145
|
+
if (autoClose && open && !preventClose) {
|
|
146
|
+
const timer = setTimeout(() => {
|
|
147
|
+
onOpenChange(false);
|
|
148
|
+
}, autoClose);
|
|
149
|
+
return () => clearTimeout(timer);
|
|
150
|
+
}
|
|
151
|
+
}, [autoClose, open, onOpenChange, preventClose]);
|
|
152
|
+
// Default actions if none provided
|
|
153
|
+
const defaultActions = React.useMemo(() => {
|
|
154
|
+
if (actions.length > 0)
|
|
155
|
+
return actions;
|
|
156
|
+
switch (type) {
|
|
157
|
+
case 'confirmation':
|
|
158
|
+
return [
|
|
159
|
+
{ label: 'Cancel', onClick: () => onOpenChange(false), variant: 'secondary' },
|
|
160
|
+
{ label: 'Confirm', onClick: () => onOpenChange(false), variant: 'primary' }
|
|
161
|
+
];
|
|
162
|
+
case 'error':
|
|
163
|
+
case 'critical':
|
|
164
|
+
return [
|
|
165
|
+
{ label: 'Try Again', onClick: () => onOpenChange(false), variant: 'secondary' },
|
|
166
|
+
{ label: 'OK', onClick: () => onOpenChange(false), variant: 'primary' }
|
|
167
|
+
];
|
|
168
|
+
case 'warning':
|
|
169
|
+
return [
|
|
170
|
+
{ label: 'Cancel', onClick: () => onOpenChange(false), variant: 'secondary' },
|
|
171
|
+
{ label: 'Continue', onClick: () => onOpenChange(false), variant: 'primary' }
|
|
172
|
+
];
|
|
173
|
+
case 'loading':
|
|
174
|
+
return []; // No actions for loading state
|
|
175
|
+
default:
|
|
176
|
+
return [
|
|
177
|
+
{ label: 'OK', onClick: () => onOpenChange(false), variant: 'primary' }
|
|
178
|
+
];
|
|
179
|
+
}
|
|
180
|
+
}, [actions, type, onOpenChange]);
|
|
181
|
+
// Forward Radix's open-change events to the parent. Radix calls this with
|
|
182
|
+
// a boolean (true/false). We honor false-to-close unless preventClose is set.
|
|
183
|
+
const handleOpenChange = (nextOpen) => {
|
|
184
|
+
if (nextOpen)
|
|
185
|
+
return; // ignore Radix-driven open events; we control opening
|
|
186
|
+
if (preventClose || isLoading)
|
|
187
|
+
return;
|
|
188
|
+
onOpenChange(false);
|
|
189
|
+
};
|
|
190
|
+
return ((0, jsx_runtime_1.jsx)(DialogPrimitive.Root, { open: open, onOpenChange: handleOpenChange, children: (0, jsx_runtime_1.jsxs)(DialogPrimitive.Portal, { children: [(0, jsx_runtime_1.jsx)(DialogPrimitive.Overlay, { className: (0, utils_1.cn)('fixed inset-0 z-[200] bg-black/50 backdrop-blur-sm', exports.ALERT_TOKENS.animations.overlay) }), (0, jsx_runtime_1.jsxs)(DialogPrimitive.Content, { className: (0, utils_1.cn)('fixed left-[50%] top-[50%] z-[201] grid w-[calc(100%-2rem)] max-w-md translate-x-[-50%] translate-y-[-50%] border shadow-2xl rounded-2xl overflow-hidden', colors.bg, colors.border, exports.ALERT_TOKENS.spacing.borderRadius, exports.ALERT_TOKENS.animations.content, 'focus:outline-none focus:ring-2 focus:ring-offset-2', type === 'success' && 'focus:ring-green-500', type === 'error' && 'focus:ring-red-500', type === 'warning' && 'focus:ring-amber-500', type === 'info' && 'focus:ring-blue-500', type === 'confirmation' && 'focus:ring-gray-500', type === 'critical' && 'focus:ring-red-500', type === 'loading' && 'focus:ring-blue-500', className), "aria-labelledby": ariaLabelledby || 'alert-title', "aria-describedby": undefined, ...props, children: [(0, jsx_runtime_1.jsx)(DialogPrimitive.Title, { className: "sr-only", children: title }), (0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)(exports.ALERT_TOKENS.spacing.padding), children: [showCloseButton && !preventClose && !isLoading && ((0, jsx_runtime_1.jsxs)("button", { type: "button", onClick: (e) => { e.stopPropagation(); onOpenChange(false); }, className: (0, utils_1.cn)('absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none', colors.icon), "aria-label": "Close alert", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.X, { className: "h-4 w-4" }), (0, jsx_runtime_1.jsx)("span", { className: "sr-only", children: "Close" })] })), (0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)('flex', exports.ALERT_TOKENS.spacing.gap), children: [(0, jsx_runtime_1.jsx)("div", { className: "flex-shrink-0", children: isLoading ? (
|
|
191
|
+
// Our custom bouncing dots animation for loading
|
|
192
|
+
(0, jsx_runtime_1.jsx)("div", { className: "w-8 h-8 flex items-center justify-center", children: (0, jsx_runtime_1.jsx)(loading_1.Loading, { variant: "dots", size: "md", color: colors.icon }) })) : ((0, jsx_runtime_1.jsx)(IconComponent, { className: (0, utils_1.cn)(exports.ALERT_TOKENS.spacing.iconSize, colors.icon), "aria-hidden": "true" })) }), (0, jsx_runtime_1.jsxs)("div", { className: "flex-1 space-y-2", children: [(0, jsx_runtime_1.jsx)("h4", { className: (0, utils_1.cn)(exports.ALERT_TOKENS.typography.title, colors.title), children: title }), (0, jsx_runtime_1.jsx)("p", { id: "alert-description", className: (0, utils_1.cn)(exports.ALERT_TOKENS.typography.description, colors.description, 'break-words whitespace-pre-line'), children: description }), autoClose && open && !preventClose && ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-1 text-xs opacity-70", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Clock, { className: "w-3 h-3" }), (0, jsx_runtime_1.jsxs)("span", { children: ["Auto-closing in ", Math.ceil(autoClose / 1000), "s"] })] })), defaultActions.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: "flex gap-2 pt-4 justify-end", children: defaultActions.map((action, index) => ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: (e) => {
|
|
193
|
+
// Always close the dialog on button click. Some
|
|
194
|
+
// actions provide their own onClick; run that
|
|
195
|
+
// first, then dismiss. Calling onOpenChange
|
|
196
|
+
// directly avoids relying on DialogPrimitive.Close
|
|
197
|
+
// wrapping which has been unreliable when the
|
|
198
|
+
// parent re-renders during click handling.
|
|
199
|
+
e.stopPropagation();
|
|
200
|
+
if (action.onClick)
|
|
201
|
+
action.onClick();
|
|
202
|
+
if (!preventClose && !isLoading)
|
|
203
|
+
onOpenChange(false);
|
|
204
|
+
}, disabled: action.disabled || isLoading, className: (0, utils_1.cn)('inline-flex items-center justify-center rounded-lg transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none', exports.ALERT_TOKENS.spacing.buttonPadding, exports.ALERT_TOKENS.typography.button, action.variant === 'primary'
|
|
205
|
+
? colors.primaryButton
|
|
206
|
+
: colors.secondaryButton), children: action.label }, index))) }))] })] })] })] })] }) }));
|
|
207
|
+
}
|
|
208
|
+
// Preset Alert Components for Common Use Cases
|
|
209
|
+
const SuccessAlert = (props) => ((0, jsx_runtime_1.jsx)(ModalAlert, { type: "success", ...props }));
|
|
210
|
+
exports.SuccessAlert = SuccessAlert;
|
|
211
|
+
const ErrorAlert = (props) => ((0, jsx_runtime_1.jsx)(ModalAlert, { type: "error", ...props }));
|
|
212
|
+
exports.ErrorAlert = ErrorAlert;
|
|
213
|
+
const WarningAlert = (props) => ((0, jsx_runtime_1.jsx)(ModalAlert, { type: "warning", ...props }));
|
|
214
|
+
exports.WarningAlert = WarningAlert;
|
|
215
|
+
const InfoAlert = (props) => ((0, jsx_runtime_1.jsx)(ModalAlert, { type: "info", ...props }));
|
|
216
|
+
exports.InfoAlert = InfoAlert;
|
|
217
|
+
const ConfirmationAlert = (props) => ((0, jsx_runtime_1.jsx)(ModalAlert, { type: "confirmation", ...props }));
|
|
218
|
+
exports.ConfirmationAlert = ConfirmationAlert;
|
|
219
|
+
const CriticalAlert = (props) => ((0, jsx_runtime_1.jsx)(ModalAlert, { type: "critical", preventClose: true, ...props }));
|
|
220
|
+
exports.CriticalAlert = CriticalAlert;
|
|
221
|
+
const LoadingAlert = (props) => ((0, jsx_runtime_1.jsx)(ModalAlert, { type: "loading", preventClose: true, showCloseButton: false, ...props }));
|
|
222
|
+
exports.LoadingAlert = LoadingAlert;
|
|
223
|
+
// Hook for managing alert state
|
|
224
|
+
function useModalAlert() {
|
|
225
|
+
const [alert, setAlert] = React.useState({
|
|
226
|
+
open: false,
|
|
227
|
+
type: 'info',
|
|
228
|
+
title: '',
|
|
229
|
+
description: ''
|
|
230
|
+
});
|
|
231
|
+
const showAlert = React.useCallback((params) => {
|
|
232
|
+
setAlert({ ...params, open: true });
|
|
233
|
+
}, []);
|
|
234
|
+
const hideAlert = React.useCallback(() => {
|
|
235
|
+
setAlert(prev => ({ ...prev, open: false }));
|
|
236
|
+
}, []);
|
|
237
|
+
const showSuccess = React.useCallback((title, description, autoClose = 3000) => {
|
|
238
|
+
showAlert({ type: 'success', title, description, autoClose });
|
|
239
|
+
}, [showAlert]);
|
|
240
|
+
const showError = React.useCallback((title, description) => {
|
|
241
|
+
showAlert({ type: 'error', title, description });
|
|
242
|
+
}, [showAlert]);
|
|
243
|
+
const showWarning = React.useCallback((title, description, actions) => {
|
|
244
|
+
showAlert({ type: 'warning', title, description, actions });
|
|
245
|
+
}, [showAlert]);
|
|
246
|
+
const showInfo = React.useCallback((title, description, autoClose) => {
|
|
247
|
+
showAlert({ type: 'info', title, description, autoClose });
|
|
248
|
+
}, [showAlert]);
|
|
249
|
+
const showConfirmation = React.useCallback((title, description, onConfirm, onCancel) => {
|
|
250
|
+
showAlert({
|
|
251
|
+
type: 'confirmation',
|
|
252
|
+
title,
|
|
253
|
+
description,
|
|
254
|
+
actions: [
|
|
255
|
+
{
|
|
256
|
+
label: 'Cancel',
|
|
257
|
+
onClick: () => {
|
|
258
|
+
onCancel?.();
|
|
259
|
+
hideAlert();
|
|
260
|
+
},
|
|
261
|
+
variant: 'secondary'
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
label: 'Confirm',
|
|
265
|
+
onClick: () => {
|
|
266
|
+
hideAlert();
|
|
267
|
+
onConfirm();
|
|
268
|
+
},
|
|
269
|
+
variant: 'primary'
|
|
270
|
+
}
|
|
271
|
+
]
|
|
272
|
+
});
|
|
273
|
+
}, [showAlert, hideAlert]);
|
|
274
|
+
const showLoading = React.useCallback((title, description) => {
|
|
275
|
+
showAlert({ type: 'loading', title, description });
|
|
276
|
+
}, [showAlert]);
|
|
277
|
+
// Stable AlertComponent reference. Declaring it inline as `() => (...)`
|
|
278
|
+
// creates a new function identity each render → React remounts the whole
|
|
279
|
+
// modal tree on every render → click handlers don't fire reliably while
|
|
280
|
+
// the parent is re-rendering frequently. Wrapping in useCallback keeps
|
|
281
|
+
// the reference stable.
|
|
282
|
+
const AlertComponent = React.useCallback(() => ((0, jsx_runtime_1.jsx)(ModalAlert, { open: alert.open, onOpenChange: hideAlert, type: alert.type, title: alert.title, description: alert.description, actions: alert.actions, autoClose: alert.autoClose })), [alert.open, alert.type, alert.title, alert.description, alert.actions, alert.autoClose, hideAlert]);
|
|
283
|
+
return {
|
|
284
|
+
alert,
|
|
285
|
+
showAlert,
|
|
286
|
+
hideAlert,
|
|
287
|
+
showSuccess,
|
|
288
|
+
showError,
|
|
289
|
+
showWarning,
|
|
290
|
+
showInfo,
|
|
291
|
+
showConfirmation,
|
|
292
|
+
showLoading,
|
|
293
|
+
AlertComponent,
|
|
294
|
+
};
|
|
295
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.PasswordResetModal = PasswordResetModal;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const Modal_1 = require("./Modal.js");
|
|
8
|
+
const input_1 = require("../ui/forms/input.js");
|
|
9
|
+
const lucide_react_1 = require("lucide-react");
|
|
10
|
+
const GlobalAlertContext_1 = require("../../contexts/GlobalAlertContext.js");
|
|
11
|
+
const passwordRequirements = [
|
|
12
|
+
{ label: 'At least 8 characters', test: (pwd) => pwd.length >= 8 },
|
|
13
|
+
{ label: 'Contains uppercase letter', test: (pwd) => /[A-Z]/.test(pwd) },
|
|
14
|
+
{ label: 'Contains lowercase letter', test: (pwd) => /[a-z]/.test(pwd) },
|
|
15
|
+
{ label: 'Contains number', test: (pwd) => /\d/.test(pwd) },
|
|
16
|
+
];
|
|
17
|
+
function PasswordResetModal({ isOpen, onClose, email, otpCode, onSuccess, }) {
|
|
18
|
+
const alerts = (0, GlobalAlertContext_1.useGlobalAlert)();
|
|
19
|
+
const [newPassword, setNewPassword] = (0, react_1.useState)('');
|
|
20
|
+
const [retypePassword, setRetypePassword] = (0, react_1.useState)('');
|
|
21
|
+
const [showNewPassword, setShowNewPassword] = (0, react_1.useState)(false);
|
|
22
|
+
const [showRetypePassword, setShowRetypePassword] = (0, react_1.useState)(false);
|
|
23
|
+
const [isLoading, setIsLoading] = (0, react_1.useState)(false);
|
|
24
|
+
const [passwordStrength, setPasswordStrength] = (0, react_1.useState)(0);
|
|
25
|
+
// Calculate password strength
|
|
26
|
+
const calculatePasswordStrength = (password) => {
|
|
27
|
+
let strength = 0;
|
|
28
|
+
passwordRequirements.forEach((req) => {
|
|
29
|
+
if (req.test(password))
|
|
30
|
+
strength++;
|
|
31
|
+
});
|
|
32
|
+
setPasswordStrength(strength);
|
|
33
|
+
};
|
|
34
|
+
const getStrengthColor = () => {
|
|
35
|
+
if (passwordStrength <= 1)
|
|
36
|
+
return 'bg-red-500';
|
|
37
|
+
if (passwordStrength <= 3)
|
|
38
|
+
return 'bg-yellow-500';
|
|
39
|
+
return 'bg-green-500';
|
|
40
|
+
};
|
|
41
|
+
const getStrengthLabel = () => {
|
|
42
|
+
if (passwordStrength <= 1)
|
|
43
|
+
return 'Weak';
|
|
44
|
+
if (passwordStrength <= 2)
|
|
45
|
+
return 'Medium';
|
|
46
|
+
return 'Strong';
|
|
47
|
+
};
|
|
48
|
+
const handlePasswordChange = (value) => {
|
|
49
|
+
setNewPassword(value);
|
|
50
|
+
calculatePasswordStrength(value);
|
|
51
|
+
};
|
|
52
|
+
// Prevent paste in password fields (security feature)
|
|
53
|
+
const preventPaste = (e) => {
|
|
54
|
+
e.preventDefault();
|
|
55
|
+
alerts.showWarning('Security Notice', 'Pasting passwords is disabled for security reasons. Please type your password.');
|
|
56
|
+
};
|
|
57
|
+
const validateForm = () => {
|
|
58
|
+
// Check minimum password strength (4 requirements now)
|
|
59
|
+
if (passwordStrength < 4) {
|
|
60
|
+
alerts.showError('Weak Password', 'Please meet all password requirements for a strong password.');
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
// Check if passwords match
|
|
64
|
+
if (newPassword !== retypePassword) {
|
|
65
|
+
alerts.showError('Password Mismatch', 'Passwords do not match. Please try again.');
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return true;
|
|
69
|
+
};
|
|
70
|
+
const handleResetPassword = async () => {
|
|
71
|
+
if (!validateForm())
|
|
72
|
+
return;
|
|
73
|
+
setIsLoading(true);
|
|
74
|
+
try {
|
|
75
|
+
// Call server-side proxy (company credentials read from HttpOnly cookie)
|
|
76
|
+
const response = await fetch('/api/auth/forgot-password-otp', {
|
|
77
|
+
method: 'POST',
|
|
78
|
+
headers: { 'Content-Type': 'application/json' },
|
|
79
|
+
body: JSON.stringify({ action: 'reset', email, otpCode, newPassword })
|
|
80
|
+
});
|
|
81
|
+
const result = await response.json();
|
|
82
|
+
if (result.success) {
|
|
83
|
+
alerts.showSuccess('Password Reset Successful', 'Your password has been reset successfully.');
|
|
84
|
+
onSuccess();
|
|
85
|
+
onClose();
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
alerts.showError('Reset Failed', result.message || 'Failed to reset password. Please try again.');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
alerts.showError('Error', 'An error occurred. Please try again.');
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
setIsLoading(false);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
const handleClose = () => {
|
|
99
|
+
if (!isLoading) {
|
|
100
|
+
setNewPassword('');
|
|
101
|
+
setRetypePassword('');
|
|
102
|
+
setShowNewPassword(false);
|
|
103
|
+
setShowRetypePassword(false);
|
|
104
|
+
setPasswordStrength(0);
|
|
105
|
+
onClose();
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
return ((0, jsx_runtime_1.jsx)(Modal_1.Modal, { open: isOpen, onOpenChange: handleClose, children: (0, jsx_runtime_1.jsxs)(Modal_1.ModalContent, { size: "sm", className: "p-0", children: [(0, jsx_runtime_1.jsx)(Modal_1.ModalHeader, { className: "sr-only", children: (0, jsx_runtime_1.jsx)(Modal_1.ModalTitle, { children: "Reset Password" }) }), (0, jsx_runtime_1.jsxs)("div", { className: "p-4 sm:p-6 max-h-[100dvh] overflow-y-auto", children: [(0, jsx_runtime_1.jsxs)("div", { className: "text-center mb-5 sm:mb-6", children: [(0, jsx_runtime_1.jsx)("div", { className: "mx-auto w-12 h-12 sm:w-14 sm:h-14 bg-[rgb(var(--color-primary))]/10 rounded-full flex items-center justify-center mb-3 sm:mb-4", children: (0, jsx_runtime_1.jsx)(lucide_react_1.Lock, { className: "h-6 w-6 sm:h-7 sm:w-7 text-[rgb(var(--color-primary))]" }) }), (0, jsx_runtime_1.jsx)("h2", { className: "text-xl sm:text-2xl font-bold text-[rgb(var(--fg-default))] mb-2", children: "Create New Password" }), (0, jsx_runtime_1.jsxs)("p", { className: "text-xs sm:text-sm text-[rgb(var(--fg-muted))] break-words", children: ["Resetting password for ", (0, jsx_runtime_1.jsx)("span", { className: "font-medium text-[rgb(var(--fg-default))]", children: email }), ". Your new password must be different from previously used passwords."] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-4", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "newPassword", className: "block text-sm font-medium text-[rgb(var(--fg-default))] mb-1.5", children: "New Password" }), (0, jsx_runtime_1.jsxs)("div", { className: "relative", children: [(0, jsx_runtime_1.jsx)(input_1.Input, { id: "newPassword", type: showNewPassword ? 'text' : 'password', value: newPassword, onChange: (e) => handlePasswordChange(e.target.value), onPaste: preventPaste, placeholder: "Enter your new password", disabled: isLoading, className: "pr-10 h-11 text-base", autoComplete: "new-password" }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => setShowNewPassword(!showNewPassword), className: "absolute right-3 top-1/2 -translate-y-1/2 text-[rgb(var(--color-icon))] hover:text-[rgb(var(--fg-default))]", disabled: isLoading, tabIndex: -1, children: showNewPassword ? (0, jsx_runtime_1.jsx)(lucide_react_1.EyeOff, { className: "h-5 w-5" }) : (0, jsx_runtime_1.jsx)(lucide_react_1.Eye, { className: "h-5 w-5" }) })] }), newPassword && ((0, jsx_runtime_1.jsxs)("div", { className: "mt-2", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between mb-1", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-xs text-[rgb(var(--fg-muted))]", children: "Password strength" }), (0, jsx_runtime_1.jsx)("span", { className: `text-xs font-medium ${passwordStrength <= 1 ? 'text-red-600' : passwordStrength <= 2 ? 'text-yellow-600' : 'text-green-600'}`, children: getStrengthLabel() })] }), (0, jsx_runtime_1.jsx)("div", { className: "h-1.5 w-full bg-[rgb(var(--bg-hover))] rounded-full overflow-hidden", children: (0, jsx_runtime_1.jsx)("div", { className: `h-full transition-all duration-300 ${getStrengthColor()}`, style: { width: `${(passwordStrength / 4) * 100}%` } }) })] }))] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "retypePassword", className: "block text-sm font-medium text-[rgb(var(--fg-default))] mb-1.5", children: "Confirm Password" }), (0, jsx_runtime_1.jsxs)("div", { className: "relative", children: [(0, jsx_runtime_1.jsx)(input_1.Input, { id: "retypePassword", type: showRetypePassword ? 'text' : 'password', value: retypePassword, onChange: (e) => setRetypePassword(e.target.value), onPaste: preventPaste, placeholder: "Re-enter your new password", disabled: isLoading, className: "pr-10 h-11 text-base", autoComplete: "new-password" }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => setShowRetypePassword(!showRetypePassword), className: "absolute right-3 top-1/2 -translate-y-1/2 text-[rgb(var(--color-icon))] hover:text-[rgb(var(--fg-default))]", disabled: isLoading, tabIndex: -1, children: showRetypePassword ? (0, jsx_runtime_1.jsx)(lucide_react_1.EyeOff, { className: "h-5 w-5" }) : (0, jsx_runtime_1.jsx)(lucide_react_1.Eye, { className: "h-5 w-5" }) })] }), retypePassword && ((0, jsx_runtime_1.jsx)("div", { className: "mt-2 flex items-center gap-1.5", children: newPassword === retypePassword ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Check, { className: "h-4 w-4 text-green-600" }), (0, jsx_runtime_1.jsx)("span", { className: "text-xs text-green-600 font-medium", children: "Passwords match" })] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(lucide_react_1.X, { className: "h-4 w-4 text-red-600" }), (0, jsx_runtime_1.jsx)("span", { className: "text-xs text-red-600 font-medium", children: "Passwords do not match" })] })) }))] }), (0, jsx_runtime_1.jsxs)("div", { className: "bg-[rgb(var(--bg-hover))] rounded-lg p-3 sm:p-4 border border-[rgb(var(--bd-default))]", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-sm font-medium text-[rgb(var(--fg-default))] mb-2 sm:mb-3", children: "Password Requirements" }), (0, jsx_runtime_1.jsx)("div", { className: "space-y-2", children: passwordRequirements.map((req, index) => {
|
|
109
|
+
const isPassed = req.test(newPassword);
|
|
110
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2", children: [(0, jsx_runtime_1.jsx)("div", { className: `flex-shrink-0 w-4 h-4 rounded-full flex items-center justify-center ${isPassed ? 'bg-green-100' : 'bg-[rgb(var(--bg-hover))]'}`, children: isPassed && (0, jsx_runtime_1.jsx)(lucide_react_1.Check, { className: "h-3 w-3 text-green-600" }) }), (0, jsx_runtime_1.jsx)("span", { className: `text-xs ${isPassed ? 'text-green-700' : 'text-[rgb(var(--fg-muted))]'}`, children: req.label })] }, index));
|
|
111
|
+
}) })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex gap-2 sm:gap-3 mt-5 sm:mt-6", children: [(0, jsx_runtime_1.jsx)("button", { onClick: handleClose, disabled: isLoading, className: "flex-1 rounded-xl px-3 sm:px-4 py-2.5 min-h-[2.75rem] bg-[rgb(var(--bg-surface))] hover:bg-[rgb(var(--bg-hover))] text-[rgb(var(--fg-default))] border border-[rgb(var(--bd-default))] transition-all duration-200 hover:scale-105 active:scale-95 disabled:opacity-50 disabled:cursor-not-allowed text-sm font-medium", children: "Cancel" }), (0, jsx_runtime_1.jsx)("button", { onClick: handleResetPassword, disabled: isLoading || passwordStrength < 4 || newPassword !== retypePassword || !newPassword || !retypePassword, className: "flex-1 rounded-xl px-3 sm:px-4 py-2.5 min-h-[2.75rem] bg-[rgb(var(--color-primary))] hover:bg-[rgb(var(--color-primary-dark))] text-white border border-[rgb(var(--color-primary))] transition-all duration-200 hover:scale-105 active:scale-95 disabled:opacity-50 disabled:cursor-not-allowed text-sm font-medium", children: isLoading ? 'Resetting...' : 'Reset Password' })] })] })] }) }));
|
|
112
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SessionExpiryWarning = SessionExpiryWarning;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const ui_1 = require("../ui/index.js");
|
|
7
|
+
const ui_2 = require("../ui/index.js");
|
|
8
|
+
const lucide_react_1 = require("lucide-react");
|
|
9
|
+
const LanguageContext_1 = require("../../contexts/LanguageContext.js");
|
|
10
|
+
/**
|
|
11
|
+
* Modal to warn users when their session is about to expire.
|
|
12
|
+
* Gives them the option to extend the session or logout immediately.
|
|
13
|
+
*/
|
|
14
|
+
function SessionExpiryWarning({ isOpen, onExtend, onLogout, minutesRemaining }) {
|
|
15
|
+
const { t } = (0, LanguageContext_1.useOptionalLanguage)();
|
|
16
|
+
const minuteLabel = minutesRemaining === 1 ? t('minute') : t('minutes');
|
|
17
|
+
return ((0, jsx_runtime_1.jsx)(ui_1.Dialog, { open: isOpen, onOpenChange: () => { }, children: (0, jsx_runtime_1.jsxs)(ui_1.DialogContent, { className: "max-w-md", hideCloseButton: true, children: [(0, jsx_runtime_1.jsx)(ui_1.DialogHeader, { className: "border-b border-[rgb(var(--bd-default))] pb-4", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-3", children: [(0, jsx_runtime_1.jsx)("div", { className: "h-10 w-10 rounded-full bg-[rgb(var(--color-warning)/0.12)] flex items-center justify-center", children: (0, jsx_runtime_1.jsx)(lucide_react_1.AlertTriangle, { className: "h-5 w-5 text-[rgb(var(--color-warning))]" }) }), (0, jsx_runtime_1.jsx)(ui_1.DialogTitle, { className: "text-lg font-semibold text-[rgb(var(--fg-default))]", children: t('Session Expiring Soon') })] }) }), (0, jsx_runtime_1.jsxs)("div", { className: "p-6 space-y-4", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-3 p-4 rounded-lg bg-[rgb(var(--bg-subtle))] border border-[rgb(var(--bd-default))]", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Clock, { className: "h-5 w-5 text-[rgb(var(--color-icon))]" }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("p", { className: "text-sm font-medium text-[rgb(var(--fg-default))]", children: t('Time Remaining') }), (0, jsx_runtime_1.jsxs)("p", { className: "text-2xl font-bold text-[rgb(var(--color-warning))]", children: [minutesRemaining, " ", minuteLabel] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-2", children: [(0, jsx_runtime_1.jsxs)("p", { className: "text-sm text-[rgb(var(--fg-default))]", children: [t('Your session will expire in'), " ", (0, jsx_runtime_1.jsxs)("span", { className: "font-semibold text-[rgb(var(--color-warning))]", children: [minutesRemaining, " ", minuteLabel] }), "."] }), (0, jsx_runtime_1.jsx)("p", { className: "text-sm text-[rgb(var(--fg-muted))]", children: t('Would you like to extend your session and continue working?') })] }), (0, jsx_runtime_1.jsx)("div", { className: "p-3 rounded-lg bg-[rgb(var(--color-warning)/0.08)] border border-[rgb(var(--color-warning)/0.2)]", children: (0, jsx_runtime_1.jsxs)("p", { className: "text-xs text-[rgb(var(--color-warning-hover))]", children: [(0, jsx_runtime_1.jsxs)("strong", { children: [t('Note'), ":"] }), " ", t("If you don't take action, you'll be automatically logged out when the timer reaches zero. Any unsaved work may be lost.")] }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-end gap-2.5 px-6 py-4 border-t border-[rgb(var(--bd-default))] bg-[rgb(var(--bg-subtle))]", children: [(0, jsx_runtime_1.jsx)(ui_2.Button, { variant: "action-delete", icon: lucide_react_1.LogOut, onClick: onLogout, children: t('Logout Now') }), (0, jsx_runtime_1.jsx)(ui_2.Button, { variant: "action-apply", icon: lucide_react_1.RefreshCw, onClick: onExtend, children: t('Extend Session') })] })] }) }));
|
|
18
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.useAPI = useAPI;
|
|
5
|
+
exports.APIProvider = APIProvider;
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
const react_1 = require("react");
|
|
8
|
+
const api_1 = require("../../lib/api/index.js");
|
|
9
|
+
const APIContext = (0, react_1.createContext)({ initialized: false });
|
|
10
|
+
function useAPI() {
|
|
11
|
+
return (0, react_1.useContext)(APIContext);
|
|
12
|
+
}
|
|
13
|
+
function APIProvider({ children }) {
|
|
14
|
+
(0, react_1.useEffect)(() => {
|
|
15
|
+
// Initialize API configuration when the component mounts
|
|
16
|
+
(0, api_1.initializeAPI)();
|
|
17
|
+
}, []);
|
|
18
|
+
return ((0, jsx_runtime_1.jsx)(APIContext.Provider, { value: { initialized: true }, children: children }));
|
|
19
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.QueryProvider = QueryProvider;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const react_query_1 = require("@tanstack/react-query");
|
|
7
|
+
const react_query_devtools_1 = require("@tanstack/react-query-devtools");
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const react_query_config_1 = require("../../lib/react-query-config.js");
|
|
10
|
+
function QueryProvider({ children }) {
|
|
11
|
+
// Create a client instance - one per user session
|
|
12
|
+
const [queryClient] = (0, react_1.useState)(() => new react_query_1.QueryClient({
|
|
13
|
+
defaultOptions: {
|
|
14
|
+
queries: {
|
|
15
|
+
// Use global config from react-query-config.ts
|
|
16
|
+
...react_query_config_1.DEFAULT_QUERY_CONFIG,
|
|
17
|
+
// Retry failed requests once
|
|
18
|
+
retry: 1,
|
|
19
|
+
// Don't retry on 4xx errors (client errors)
|
|
20
|
+
retryDelay: (attemptIndex) => Math.min(1000 * 2 ** attemptIndex, 30000),
|
|
21
|
+
},
|
|
22
|
+
mutations: {
|
|
23
|
+
// Retry mutations once
|
|
24
|
+
retry: 1,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
}));
|
|
28
|
+
return ((0, jsx_runtime_1.jsxs)(react_query_1.QueryClientProvider, { client: queryClient, children: [children, process.env.NODE_ENV === 'development' && ((0, jsx_runtime_1.jsx)(react_query_devtools_1.ReactQueryDevtools, { initialIsOpen: false }))] }));
|
|
29
|
+
}
|