@alneas/appkit-react 0.1.0 → 0.3.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/CHANGELOG.md +111 -0
- package/README.md +20 -23
- package/consumer-ai/SKILL.md +20 -0
- package/consumer-ai/api-index.json +104239 -0
- package/consumer-ai/package-context.json +409 -0
- package/dist/ai/action/ExecutionHistory.cjs.map +1 -1
- package/dist/ai/action/ExecutionHistory.d.cts +32 -2
- package/dist/ai/action/ExecutionHistory.d.ts +32 -2
- package/dist/ai/action/ExecutionHistory.js.map +1 -1
- package/dist/ai/action/ScreenActionContext.cjs.map +1 -1
- package/dist/ai/action/ScreenActionContext.d.cts +15 -2
- package/dist/ai/action/ScreenActionContext.d.ts +15 -2
- package/dist/ai/action/ScreenActionContext.js.map +1 -1
- package/dist/ai/action/context.cjs.map +1 -1
- package/dist/ai/action/context.d.cts +19 -3
- package/dist/ai/action/context.d.ts +19 -3
- package/dist/ai/action/context.js.map +1 -1
- package/dist/ai/action/types.d.cts +35 -3
- package/dist/ai/action/types.d.ts +35 -3
- package/dist/ai/action/use-execution-session.cjs.map +1 -1
- package/dist/ai/action/use-execution-session.d.cts +17 -1
- package/dist/ai/action/use-execution-session.d.ts +17 -1
- package/dist/ai/action/use-execution-session.js.map +1 -1
- package/dist/ai/action/use-screen-action-registry.cjs.map +1 -1
- package/dist/ai/action/use-screen-action-registry.d.cts +77 -8
- package/dist/ai/action/use-screen-action-registry.d.ts +77 -8
- package/dist/ai/action/use-screen-action-registry.js.map +1 -1
- package/dist/ai/action/use-screen-action.cjs.map +1 -1
- package/dist/ai/action/use-screen-action.d.cts +28 -6
- package/dist/ai/action/use-screen-action.d.ts +28 -6
- package/dist/ai/action/use-screen-action.js.map +1 -1
- package/dist/ai/action/use-screen-context.cjs.map +1 -1
- package/dist/ai/action/use-screen-context.d.cts +48 -5
- package/dist/ai/action/use-screen-context.d.ts +48 -5
- package/dist/ai/action/use-screen-context.js.map +1 -1
- package/dist/ai/ai-chat/transport.cjs.map +1 -1
- package/dist/ai/ai-chat/transport.d.cts +35 -8
- package/dist/ai/ai-chat/transport.d.ts +35 -8
- package/dist/ai/ai-chat/transport.js.map +1 -1
- package/dist/ai/generative-ui/GenerativeUIRenderer.cjs.map +1 -1
- package/dist/ai/generative-ui/GenerativeUIRenderer.d.cts +21 -3
- package/dist/ai/generative-ui/GenerativeUIRenderer.d.ts +21 -3
- package/dist/ai/generative-ui/GenerativeUIRenderer.js.map +1 -1
- package/dist/ai/generative-ui/error-boundary.cjs.map +1 -1
- package/dist/ai/generative-ui/error-boundary.d.cts +98 -2
- package/dist/ai/generative-ui/error-boundary.d.ts +98 -2
- package/dist/ai/generative-ui/error-boundary.js.map +1 -1
- package/dist/ai/generative-ui/registry.cjs.map +1 -1
- package/dist/ai/generative-ui/registry.d.cts +96 -7
- package/dist/ai/generative-ui/registry.d.ts +96 -7
- package/dist/ai/generative-ui/registry.js.map +1 -1
- package/dist/ai/proposal/ProposalFieldReview.cjs.map +1 -1
- package/dist/ai/proposal/ProposalFieldReview.d.cts +170 -8
- package/dist/ai/proposal/ProposalFieldReview.d.ts +170 -8
- package/dist/ai/proposal/ProposalFieldReview.js.map +1 -1
- package/dist/ai/proposal/types.d.cts +97 -26
- package/dist/ai/proposal/types.d.ts +97 -26
- package/dist/ai/proposal/use-proposal-batch-review.cjs.map +1 -1
- package/dist/ai/proposal/use-proposal-batch-review.d.cts +137 -7
- package/dist/ai/proposal/use-proposal-batch-review.d.ts +137 -7
- package/dist/ai/proposal/use-proposal-batch-review.js.map +1 -1
- package/dist/ai/proposal/use-proposal-review.cjs.map +1 -1
- package/dist/ai/proposal/use-proposal-review.d.cts +47 -5
- package/dist/ai/proposal/use-proposal-review.d.ts +47 -5
- package/dist/ai/proposal/use-proposal-review.js.map +1 -1
- package/dist/avatar.svg +1 -0
- package/dist/consumer-ai/SKILL.md +14 -0
- package/dist/consumer-ai/api-index.json +104239 -0
- package/dist/consumer-ai/package-context.json +14 -12
- package/dist/mockServiceWorker.js +460 -0
- package/dist/styles.css +1 -1
- package/dist/tools/components/auth/AuthForms.cjs.map +1 -1
- package/dist/tools/components/auth/AuthForms.d.cts +131 -81
- package/dist/tools/components/auth/AuthForms.d.ts +131 -81
- package/dist/tools/components/auth/AuthForms.js.map +1 -1
- package/dist/tools/components/auth/AuthGuard.cjs.map +1 -1
- package/dist/tools/components/auth/AuthGuard.d.cts +31 -4
- package/dist/tools/components/auth/AuthGuard.d.ts +31 -4
- package/dist/tools/components/auth/AuthGuard.js.map +1 -1
- package/dist/tools/components/auth/AuthProvider.cjs.map +1 -1
- package/dist/tools/components/auth/AuthProvider.d.cts +39 -42
- package/dist/tools/components/auth/AuthProvider.d.ts +39 -42
- package/dist/tools/components/auth/AuthProvider.js.map +1 -1
- package/dist/tools/components/auth/ProtectedRoute.cjs.map +1 -1
- package/dist/tools/components/auth/ProtectedRoute.d.cts +75 -60
- package/dist/tools/components/auth/ProtectedRoute.d.ts +75 -60
- package/dist/tools/components/auth/ProtectedRoute.js.map +1 -1
- package/dist/tools/components/auth/SignInButton.cjs.map +1 -1
- package/dist/tools/components/auth/SignInButton.d.cts +26 -18
- package/dist/tools/components/auth/SignInButton.d.ts +26 -18
- package/dist/tools/components/auth/SignInButton.js.map +1 -1
- package/dist/tools/components/auth/UserProfileProvider.cjs.map +1 -1
- package/dist/tools/components/auth/UserProfileProvider.d.cts +48 -20
- package/dist/tools/components/auth/UserProfileProvider.d.ts +48 -20
- package/dist/tools/components/auth/UserProfileProvider.js.map +1 -1
- package/dist/tools/components/auth/adapters/better-auth-adapter.cjs.map +1 -1
- package/dist/tools/components/auth/adapters/better-auth-adapter.d.cts +371 -51
- package/dist/tools/components/auth/adapters/better-auth-adapter.d.ts +371 -51
- package/dist/tools/components/auth/adapters/better-auth-adapter.js.map +1 -1
- package/dist/tools/components/auth/adapters/mock-adapter.cjs.map +1 -1
- package/dist/tools/components/auth/adapters/mock-adapter.d.cts +149 -28
- package/dist/tools/components/auth/adapters/mock-adapter.d.ts +149 -28
- package/dist/tools/components/auth/adapters/mock-adapter.js.map +1 -1
- package/dist/tools/components/auth/auth-session.cjs.map +1 -1
- package/dist/tools/components/auth/auth-session.d.cts +147 -1
- package/dist/tools/components/auth/auth-session.d.ts +147 -1
- package/dist/tools/components/auth/auth-session.js.map +1 -1
- package/dist/tools/components/auth/session-cache.cjs.map +1 -1
- package/dist/tools/components/auth/session-cache.d.cts +88 -24
- package/dist/tools/components/auth/session-cache.d.ts +88 -24
- package/dist/tools/components/auth/session-cache.js.map +1 -1
- package/dist/tools/components/auth/types.cjs.map +1 -1
- package/dist/tools/components/auth/types.d.cts +329 -106
- package/dist/tools/components/auth/types.d.ts +329 -106
- package/dist/tools/components/auth/types.js.map +1 -1
- package/dist/tools/components/auth/useAuth.cjs.map +1 -1
- package/dist/tools/components/auth/useAuth.d.cts +110 -17
- package/dist/tools/components/auth/useAuth.d.ts +110 -17
- package/dist/tools/components/auth/useAuth.js.map +1 -1
- package/dist/tools/components/auth/useAuthGuard.cjs.map +1 -1
- package/dist/tools/components/auth/useAuthGuard.d.cts +49 -38
- package/dist/tools/components/auth/useAuthGuard.d.ts +49 -38
- package/dist/tools/components/auth/useAuthGuard.js.map +1 -1
- package/dist/tools/components/auth/useRoleCheck.cjs.map +1 -1
- package/dist/tools/components/auth/useRoleCheck.d.cts +48 -1
- package/dist/tools/components/auth/useRoleCheck.d.ts +48 -1
- package/dist/tools/components/auth/useRoleCheck.js.map +1 -1
- package/dist/tools/components/auth/useUserProfile.cjs.map +1 -1
- package/dist/tools/components/auth/useUserProfile.d.cts +66 -1
- package/dist/tools/components/auth/useUserProfile.d.ts +66 -1
- package/dist/tools/components/auth/useUserProfile.js.map +1 -1
- package/dist/tools/components/barcode/BarcodeGenerator.cjs.map +1 -1
- package/dist/tools/components/barcode/BarcodeGenerator.d.cts +32 -18
- package/dist/tools/components/barcode/BarcodeGenerator.d.ts +32 -18
- package/dist/tools/components/barcode/BarcodeGenerator.js.map +1 -1
- package/dist/tools/components/barcode/QRCodeGenerator.cjs +1 -1
- package/dist/tools/components/barcode/QRCodeGenerator.cjs.map +1 -1
- package/dist/tools/components/barcode/QRCodeGenerator.d.cts +20 -13
- package/dist/tools/components/barcode/QRCodeGenerator.d.ts +20 -13
- package/dist/tools/components/barcode/QRCodeGenerator.js +1 -1
- package/dist/tools/components/barcode/QRCodeGenerator.js.map +1 -1
- package/dist/tools/components/barcode/QRCodeScanner.cjs.map +1 -1
- package/dist/tools/components/barcode/QRCodeScanner.d.cts +32 -1
- package/dist/tools/components/barcode/QRCodeScanner.d.ts +32 -1
- package/dist/tools/components/barcode/QRCodeScanner.js.map +1 -1
- package/dist/tools/components/calendar/ResourceCalendar.cjs.map +1 -1
- package/dist/tools/components/calendar/ResourceCalendar.d.cts +17 -42
- package/dist/tools/components/calendar/ResourceCalendar.d.ts +17 -42
- package/dist/tools/components/calendar/ResourceCalendar.js.map +1 -1
- package/dist/tools/components/calendar/views/ResourceView.cjs +1 -1
- package/dist/tools/components/calendar/views/ResourceView.cjs.map +1 -1
- package/dist/tools/components/calendar/views/ResourceView.js +2 -2
- package/dist/tools/components/calendar/views/ResourceView.js.map +1 -1
- package/dist/tools/components/chart/ComposedChart.cjs.map +1 -1
- package/dist/tools/components/chart/ComposedChart.d.cts +54 -1
- package/dist/tools/components/chart/ComposedChart.d.ts +54 -1
- package/dist/tools/components/chart/ComposedChart.js.map +1 -1
- package/dist/tools/components/chart/SimpleAreaChart.cjs.map +1 -1
- package/dist/tools/components/chart/SimpleAreaChart.d.cts +41 -1
- package/dist/tools/components/chart/SimpleAreaChart.d.ts +41 -1
- package/dist/tools/components/chart/SimpleAreaChart.js.map +1 -1
- package/dist/tools/components/chart/SimpleBarChart.cjs.map +1 -1
- package/dist/tools/components/chart/SimpleBarChart.d.cts +34 -24
- package/dist/tools/components/chart/SimpleBarChart.d.ts +34 -24
- package/dist/tools/components/chart/SimpleBarChart.js.map +1 -1
- package/dist/tools/components/chart/SimpleLineChart.cjs.map +1 -1
- package/dist/tools/components/chart/SimpleLineChart.d.cts +31 -28
- package/dist/tools/components/chart/SimpleLineChart.d.ts +31 -28
- package/dist/tools/components/chart/SimpleLineChart.js.map +1 -1
- package/dist/tools/components/chart/SimplePieChart.cjs.map +1 -1
- package/dist/tools/components/chart/SimplePieChart.d.cts +28 -22
- package/dist/tools/components/chart/SimplePieChart.d.ts +28 -22
- package/dist/tools/components/chart/SimplePieChart.js.map +1 -1
- package/dist/tools/components/chart/SimpleRadarChart.cjs.map +1 -1
- package/dist/tools/components/chart/SimpleRadarChart.d.cts +38 -1
- package/dist/tools/components/chart/SimpleRadarChart.d.ts +38 -1
- package/dist/tools/components/chart/SimpleRadarChart.js.map +1 -1
- package/dist/tools/components/chart/SimpleScatterChart.cjs.map +1 -1
- package/dist/tools/components/chart/SimpleScatterChart.d.cts +44 -1
- package/dist/tools/components/chart/SimpleScatterChart.d.ts +44 -1
- package/dist/tools/components/chart/SimpleScatterChart.js.map +1 -1
- package/dist/tools/components/chart/StackedBarChart.cjs.map +1 -1
- package/dist/tools/components/chart/StackedBarChart.d.cts +38 -1
- package/dist/tools/components/chart/StackedBarChart.d.ts +38 -1
- package/dist/tools/components/chart/StackedBarChart.js.map +1 -1
- package/dist/tools/components/data-table/column-order.cjs +2 -0
- package/dist/tools/components/data-table/column-order.cjs.map +1 -0
- package/dist/tools/components/data-table/column-order.d.cts +11 -0
- package/dist/tools/components/data-table/column-order.d.ts +11 -0
- package/dist/tools/components/data-table/column-order.js +18 -0
- package/dist/tools/components/data-table/column-order.js.map +1 -0
- package/dist/tools/components/data-table/data-table.cjs +1 -1
- package/dist/tools/components/data-table/data-table.cjs.map +1 -1
- package/dist/tools/components/data-table/data-table.d.cts +18 -28
- package/dist/tools/components/data-table/data-table.d.ts +18 -28
- package/dist/tools/components/data-table/data-table.js +318 -265
- package/dist/tools/components/data-table/data-table.js.map +1 -1
- package/dist/tools/components/data-table/table-utils.cjs.map +1 -1
- package/dist/tools/components/data-table/table-utils.d.cts +45 -35
- package/dist/tools/components/data-table/table-utils.d.ts +45 -35
- package/dist/tools/components/data-table/table-utils.js.map +1 -1
- package/dist/tools/components/editable-table/editable-table.cjs +1 -1
- package/dist/tools/components/editable-table/editable-table.cjs.map +1 -1
- package/dist/tools/components/editable-table/editable-table.js +15 -2
- package/dist/tools/components/editable-table/editable-table.js.map +1 -1
- package/dist/tools/components/error/ErrorDialog.cjs +1 -1
- package/dist/tools/components/error/ErrorDialog.cjs.map +1 -1
- package/dist/tools/components/error/ErrorDialog.js +1 -1
- package/dist/tools/components/error/ErrorDialog.js.map +1 -1
- package/dist/tools/components/error/ErrorInline.cjs +1 -1
- package/dist/tools/components/error/ErrorInline.cjs.map +1 -1
- package/dist/tools/components/error/ErrorInline.js +1 -1
- package/dist/tools/components/error/ErrorInline.js.map +1 -1
- package/dist/tools/components/error/ErrorNotification.cjs +1 -1
- package/dist/tools/components/error/ErrorNotification.cjs.map +1 -1
- package/dist/tools/components/error/ErrorNotification.js +10 -10
- package/dist/tools/components/error/ErrorNotification.js.map +1 -1
- package/dist/tools/components/file-browser/FileBrowser.cjs +1 -1
- package/dist/tools/components/file-browser/FileBrowser.cjs.map +1 -1
- package/dist/tools/components/file-browser/FileBrowser.d.cts +17 -4
- package/dist/tools/components/file-browser/FileBrowser.d.ts +17 -4
- package/dist/tools/components/file-browser/FileBrowser.js +124 -90
- package/dist/tools/components/file-browser/FileBrowser.js.map +1 -1
- package/dist/tools/components/file-browser/FileGridView.cjs +1 -1
- package/dist/tools/components/file-browser/FileGridView.cjs.map +1 -1
- package/dist/tools/components/file-browser/FileGridView.d.cts +16 -1
- package/dist/tools/components/file-browser/FileGridView.d.ts +16 -1
- package/dist/tools/components/file-browser/FileGridView.js +27 -16
- package/dist/tools/components/file-browser/FileGridView.js.map +1 -1
- package/dist/tools/components/file-browser/FileListView.cjs +1 -1
- package/dist/tools/components/file-browser/FileListView.cjs.map +1 -1
- package/dist/tools/components/file-browser/FileListView.d.cts +16 -1
- package/dist/tools/components/file-browser/FileListView.d.ts +16 -1
- package/dist/tools/components/file-browser/FileListView.js +7 -9
- package/dist/tools/components/file-browser/FileListView.js.map +1 -1
- package/dist/tools/components/file-browser/FilePreview.cjs +1 -1
- package/dist/tools/components/file-browser/FilePreview.cjs.map +1 -1
- package/dist/tools/components/file-browser/FilePreview.js +28 -26
- package/dist/tools/components/file-browser/FilePreview.js.map +1 -1
- package/dist/tools/components/file-browser/file-drop.cjs +2 -0
- package/dist/tools/components/file-browser/file-drop.cjs.map +1 -0
- package/dist/tools/components/file-browser/file-drop.d.cts +20 -0
- package/dist/tools/components/file-browser/file-drop.d.ts +20 -0
- package/dist/tools/components/file-browser/file-drop.js +17 -0
- package/dist/tools/components/file-browser/file-drop.js.map +1 -0
- package/dist/tools/components/filter/filter.cjs.map +1 -1
- package/dist/tools/components/filter/filter.d.cts +23 -34
- package/dist/tools/components/filter/filter.d.ts +23 -34
- package/dist/tools/components/filter/filter.js.map +1 -1
- package/dist/tools/components/filter/use-filter.cjs +1 -1
- package/dist/tools/components/filter/use-filter.cjs.map +1 -1
- package/dist/tools/components/filter/use-filter.d.cts +3 -0
- package/dist/tools/components/filter/use-filter.d.ts +3 -0
- package/dist/tools/components/filter/use-filter.js +28 -30
- package/dist/tools/components/filter/use-filter.js.map +1 -1
- package/dist/tools/components/form/EnhancedDetailPage.cjs.map +1 -1
- package/dist/tools/components/form/EnhancedDetailPage.d.cts +47 -42
- package/dist/tools/components/form/EnhancedDetailPage.d.ts +47 -42
- package/dist/tools/components/form/EnhancedDetailPage.js.map +1 -1
- package/dist/tools/components/form/form-action-bar.cjs +1 -1
- package/dist/tools/components/form/form-action-bar.cjs.map +1 -1
- package/dist/tools/components/form/form-action-bar.d.cts +4 -1
- package/dist/tools/components/form/form-action-bar.d.ts +4 -1
- package/dist/tools/components/form/form-action-bar.js +29 -28
- package/dist/tools/components/form/form-action-bar.js.map +1 -1
- package/dist/tools/components/form/form-container.cjs +1 -1
- package/dist/tools/components/form/form-container.cjs.map +1 -1
- package/dist/tools/components/form/form-container.d.cts +4 -1
- package/dist/tools/components/form/form-container.d.ts +4 -1
- package/dist/tools/components/form/form-container.js +13 -10
- package/dist/tools/components/form/form-container.js.map +1 -1
- package/dist/tools/components/form/form-grid.cjs +1 -1
- package/dist/tools/components/form/form-grid.cjs.map +1 -1
- package/dist/tools/components/form/form-grid.d.cts +52 -24
- package/dist/tools/components/form/form-grid.d.ts +52 -24
- package/dist/tools/components/form/form-grid.js +24 -19
- package/dist/tools/components/form/form-grid.js.map +1 -1
- package/dist/tools/components/gantt/GanttChart.cjs +1 -1
- package/dist/tools/components/gantt/GanttChart.cjs.map +1 -1
- package/dist/tools/components/gantt/GanttChart.d.cts +20 -1
- package/dist/tools/components/gantt/GanttChart.d.ts +20 -1
- package/dist/tools/components/gantt/GanttChart.js +3 -0
- package/dist/tools/components/gantt/GanttChart.js.map +1 -1
- package/dist/tools/components/gantt/components/GanttTaskBar.cjs +1 -1
- package/dist/tools/components/gantt/components/GanttTaskBar.cjs.map +1 -1
- package/dist/tools/components/gantt/components/GanttTaskBar.js +2 -1
- package/dist/tools/components/gantt/components/GanttTaskBar.js.map +1 -1
- package/dist/tools/components/header/header.cjs +1 -1
- package/dist/tools/components/header/header.cjs.map +1 -1
- package/dist/tools/components/header/header.d.cts +103 -40
- package/dist/tools/components/header/header.d.ts +103 -40
- package/dist/tools/components/header/header.js +1 -1
- package/dist/tools/components/header/header.js.map +1 -1
- package/dist/tools/components/i18n/LanguageSwitcher.cjs.map +1 -1
- package/dist/tools/components/i18n/LanguageSwitcher.d.cts +18 -14
- package/dist/tools/components/i18n/LanguageSwitcher.d.ts +18 -14
- package/dist/tools/components/i18n/LanguageSwitcher.js.map +1 -1
- package/dist/tools/components/kanban/KanbanBoard.cjs +1 -1
- package/dist/tools/components/kanban/KanbanBoard.cjs.map +1 -1
- package/dist/tools/components/kanban/KanbanBoard.d.cts +20 -35
- package/dist/tools/components/kanban/KanbanBoard.d.ts +20 -35
- package/dist/tools/components/kanban/KanbanBoard.js +32 -28
- package/dist/tools/components/kanban/KanbanBoard.js.map +1 -1
- package/dist/tools/components/kanban/KanbanCard.cjs +1 -1
- package/dist/tools/components/kanban/KanbanCard.cjs.map +1 -1
- package/dist/tools/components/kanban/KanbanCard.d.cts +4 -1
- package/dist/tools/components/kanban/KanbanCard.d.ts +4 -1
- package/dist/tools/components/kanban/KanbanCard.js +16 -14
- package/dist/tools/components/kanban/KanbanCard.js.map +1 -1
- package/dist/tools/components/kanban/KanbanCardView.cjs +1 -1
- package/dist/tools/components/kanban/KanbanCardView.cjs.map +1 -1
- package/dist/tools/components/kanban/KanbanCardView.d.cts +4 -1
- package/dist/tools/components/kanban/KanbanCardView.d.ts +4 -1
- package/dist/tools/components/kanban/KanbanCardView.js +35 -34
- package/dist/tools/components/kanban/KanbanCardView.js.map +1 -1
- package/dist/tools/components/kanban/KanbanColumn.cjs +1 -1
- package/dist/tools/components/kanban/KanbanColumn.cjs.map +1 -1
- package/dist/tools/components/kanban/KanbanColumn.d.cts +23 -2
- package/dist/tools/components/kanban/KanbanColumn.d.ts +23 -2
- package/dist/tools/components/kanban/KanbanColumn.js +28 -33
- package/dist/tools/components/kanban/KanbanColumn.js.map +1 -1
- package/dist/tools/components/kanban/kanban-compound.cjs +1 -1
- package/dist/tools/components/kanban/kanban-compound.cjs.map +1 -1
- package/dist/tools/components/kanban/kanban-compound.js +46 -48
- package/dist/tools/components/kanban/kanban-compound.js.map +1 -1
- package/dist/tools/components/kanban/kanban-drag.cjs.map +1 -1
- package/dist/tools/components/kanban/kanban-drag.d.cts +26 -4
- package/dist/tools/components/kanban/kanban-drag.d.ts +26 -4
- package/dist/tools/components/kanban/kanban-drag.js.map +1 -1
- package/dist/tools/components/kanban/kanban-events.cjs +2 -0
- package/dist/tools/components/kanban/kanban-events.cjs.map +1 -0
- package/dist/tools/components/kanban/kanban-events.d.cts +19 -0
- package/dist/tools/components/kanban/kanban-events.d.ts +19 -0
- package/dist/tools/components/kanban/kanban-events.js +17 -0
- package/dist/tools/components/kanban/kanban-events.js.map +1 -0
- package/dist/tools/components/kanban/kanban-primitives.cjs +1 -1
- package/dist/tools/components/kanban/kanban-primitives.cjs.map +1 -1
- package/dist/tools/components/kanban/kanban-primitives.d.cts +71 -4
- package/dist/tools/components/kanban/kanban-primitives.d.ts +71 -4
- package/dist/tools/components/kanban/kanban-primitives.js +55 -34
- package/dist/tools/components/kanban/kanban-primitives.js.map +1 -1
- package/dist/tools/components/kanban/use-kanban-drag.cjs +1 -1
- package/dist/tools/components/kanban/use-kanban-drag.cjs.map +1 -1
- package/dist/tools/components/kanban/use-kanban-drag.d.cts +34 -17
- package/dist/tools/components/kanban/use-kanban-drag.d.ts +34 -17
- package/dist/tools/components/kanban/use-kanban-drag.js +20 -22
- package/dist/tools/components/kanban/use-kanban-drag.js.map +1 -1
- package/dist/tools/components/kanban/use-kanban-sensors.cjs +1 -1
- package/dist/tools/components/kanban/use-kanban-sensors.cjs.map +1 -1
- package/dist/tools/components/kanban/use-kanban-sensors.d.cts +21 -2
- package/dist/tools/components/kanban/use-kanban-sensors.d.ts +21 -2
- package/dist/tools/components/kanban/use-kanban-sensors.js +41 -26
- package/dist/tools/components/kanban/use-kanban-sensors.js.map +1 -1
- package/dist/tools/components/pane/SearchAndCreatePane.cjs.map +1 -1
- package/dist/tools/components/pane/SearchAndCreatePane.d.cts +5 -0
- package/dist/tools/components/pane/SearchAndCreatePane.d.ts +5 -0
- package/dist/tools/components/pane/SearchAndCreatePane.js.map +1 -1
- package/dist/tools/components/priority-queue/PriorityCard.cjs +1 -1
- package/dist/tools/components/priority-queue/PriorityCard.cjs.map +1 -1
- package/dist/tools/components/priority-queue/PriorityCard.d.cts +4 -1
- package/dist/tools/components/priority-queue/PriorityCard.d.ts +4 -1
- package/dist/tools/components/priority-queue/PriorityCard.js +36 -34
- package/dist/tools/components/priority-queue/PriorityCard.js.map +1 -1
- package/dist/tools/components/priority-queue/PriorityQueue.cjs +1 -1
- package/dist/tools/components/priority-queue/PriorityQueue.cjs.map +1 -1
- package/dist/tools/components/priority-queue/PriorityQueue.d.cts +4 -1
- package/dist/tools/components/priority-queue/PriorityQueue.d.ts +4 -1
- package/dist/tools/components/priority-queue/PriorityQueue.js +20 -20
- package/dist/tools/components/priority-queue/PriorityQueue.js.map +1 -1
- package/dist/tools/components/sidebar/SmartSidebar.cjs.map +1 -1
- package/dist/tools/components/sidebar/SmartSidebar.d.cts +41 -43
- package/dist/tools/components/sidebar/SmartSidebar.d.ts +41 -43
- package/dist/tools/components/sidebar/SmartSidebar.js.map +1 -1
- package/dist/tools/components/sidebar/sidebar-compound.d.cts +2 -1
- package/dist/tools/components/sidebar/sidebar-compound.d.ts +2 -1
- package/dist/tools/components/splash/SplashScreen.cjs.map +1 -1
- package/dist/tools/components/splash/SplashScreen.d.cts +43 -68
- package/dist/tools/components/splash/SplashScreen.d.ts +43 -68
- package/dist/tools/components/splash/SplashScreen.js.map +1 -1
- package/dist/tools/components/ui/chart.cjs +2 -2
- package/dist/tools/components/ui/chart.cjs.map +1 -1
- package/dist/tools/components/ui/chart.d.cts +15 -6
- package/dist/tools/components/ui/chart.d.ts +15 -6
- package/dist/tools/components/ui/chart.js +42 -40
- package/dist/tools/components/ui/chart.js.map +1 -1
- package/dist/tools/components/ui/dnd/DnDProvider.cjs +1 -1
- package/dist/tools/components/ui/dnd/DnDProvider.cjs.map +1 -1
- package/dist/tools/components/ui/dnd/DnDProvider.d.cts +27 -11
- package/dist/tools/components/ui/dnd/DnDProvider.d.ts +27 -11
- package/dist/tools/components/ui/dnd/DnDProvider.js +15 -12
- package/dist/tools/components/ui/dnd/DnDProvider.js.map +1 -1
- package/dist/tools/components/ui/dnd/Draggable.cjs +1 -1
- package/dist/tools/components/ui/dnd/Draggable.cjs.map +1 -1
- package/dist/tools/components/ui/dnd/Draggable.d.cts +32 -11
- package/dist/tools/components/ui/dnd/Draggable.d.ts +32 -11
- package/dist/tools/components/ui/dnd/Draggable.js +15 -19
- package/dist/tools/components/ui/dnd/Draggable.js.map +1 -1
- package/dist/tools/components/ui/dnd/Droppable.cjs +1 -1
- package/dist/tools/components/ui/dnd/Droppable.cjs.map +1 -1
- package/dist/tools/components/ui/dnd/Droppable.d.cts +30 -10
- package/dist/tools/components/ui/dnd/Droppable.d.ts +30 -10
- package/dist/tools/components/ui/dnd/Droppable.js +12 -11
- package/dist/tools/components/ui/dnd/Droppable.js.map +1 -1
- package/dist/tools/components/ui/field.cjs +1 -1
- package/dist/tools/components/ui/field.cjs.map +1 -1
- package/dist/tools/components/ui/field.d.cts +4 -1
- package/dist/tools/components/ui/field.d.ts +4 -1
- package/dist/tools/components/ui/field.js +48 -47
- package/dist/tools/components/ui/field.js.map +1 -1
- package/dist/tools/components/ui/form-helpers.d.cts +5 -14
- package/dist/tools/components/ui/form-helpers.d.ts +5 -14
- package/dist/tools/components/workflow/WorkflowStatusPanel.cjs +1 -1
- package/dist/tools/components/workflow/WorkflowStatusPanel.cjs.map +1 -1
- package/dist/tools/components/workflow/WorkflowStatusPanel.js +2 -2
- package/dist/tools/components/workflow/WorkflowStatusPanel.js.map +1 -1
- package/dist/tools/lib/data-access/data-access-context.cjs.map +1 -1
- package/dist/tools/lib/data-access/data-access-context.d.cts +15 -6
- package/dist/tools/lib/data-access/data-access-context.d.ts +15 -6
- package/dist/tools/lib/data-access/data-access-context.js.map +1 -1
- package/dist/tools/lib/data-access/react-query-provider.cjs.map +1 -1
- package/dist/tools/lib/data-access/react-query-provider.d.cts +19 -2
- package/dist/tools/lib/data-access/react-query-provider.d.ts +19 -2
- package/dist/tools/lib/data-access/react-query-provider.js.map +1 -1
- package/dist/tools/lib/data-access/react-query.cjs.map +1 -1
- package/dist/tools/lib/data-access/react-query.d.cts +365 -90
- package/dist/tools/lib/data-access/react-query.d.ts +365 -90
- package/dist/tools/lib/data-access/react-query.js.map +1 -1
- package/dist/tools/lib/error/AppError.cjs.map +1 -1
- package/dist/tools/lib/error/AppError.d.cts +157 -63
- package/dist/tools/lib/error/AppError.d.ts +157 -63
- package/dist/tools/lib/error/AppError.js.map +1 -1
- package/dist/tools/lib/hooks/useAsyncWithTimeout.cjs.map +1 -1
- package/dist/tools/lib/hooks/useAsyncWithTimeout.d.cts +79 -26
- package/dist/tools/lib/hooks/useAsyncWithTimeout.d.ts +79 -26
- package/dist/tools/lib/hooks/useAsyncWithTimeout.js.map +1 -1
- package/dist/tools/lib/hooks/useError.cjs.map +1 -1
- package/dist/tools/lib/hooks/useError.d.cts +51 -16
- package/dist/tools/lib/hooks/useError.d.ts +51 -16
- package/dist/tools/lib/hooks/useError.js.map +1 -1
- package/dist/tools/lib/schema/ajv.cjs +1 -1
- package/dist/tools/lib/schema/ajv.cjs.map +1 -1
- package/dist/tools/lib/schema/ajv.d.cts +19 -8
- package/dist/tools/lib/schema/ajv.d.ts +19 -8
- package/dist/tools/lib/schema/ajv.js +2 -1
- package/dist/tools/lib/schema/ajv.js.map +1 -1
- package/dist/tools/lib/state/error-store.cjs.map +1 -1
- package/dist/tools/lib/state/error-store.d.cts +61 -10
- package/dist/tools/lib/state/error-store.d.ts +61 -10
- package/dist/tools/lib/state/error-store.js.map +1 -1
- package/dist/tools/lib/state/store-factory.cjs.map +1 -1
- package/dist/tools/lib/state/store-factory.d.cts +25 -4
- package/dist/tools/lib/state/store-factory.d.ts +25 -4
- package/dist/tools/lib/state/store-factory.js.map +1 -1
- package/dist/tools/lib/state/ui-store.cjs.map +1 -1
- package/dist/tools/lib/state/ui-store.d.cts +39 -0
- package/dist/tools/lib/state/ui-store.d.ts +39 -0
- package/dist/tools/lib/state/ui-store.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_alreadyhaveaccount2.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_alreadyhaveaccount2.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_alreadyhaveaccount2.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_alreadyhaveaccount2.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_alreadyhaveaccount2.js +4 -4
- package/dist/tools/paraglide/messages/auth_alreadyhaveaccount2.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_donthaveaccount2.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_donthaveaccount2.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_donthaveaccount2.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_donthaveaccount2.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_donthaveaccount2.js +4 -4
- package/dist/tools/paraglide/messages/auth_donthaveaccount2.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_email.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_email.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_email.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_email.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_email.js +4 -4
- package/dist/tools/paraglide/messages/auth_email.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_emailplaceholder1.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_emailplaceholder1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_emailplaceholder1.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_emailplaceholder1.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_emailplaceholder1.js +2 -5
- package/dist/tools/paraglide/messages/auth_emailplaceholder1.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_failedtologin2.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_failedtologin2.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_failedtologin2.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_failedtologin2.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_failedtologin2.js +4 -4
- package/dist/tools/paraglide/messages/auth_failedtologin2.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_failedtoregister2.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_failedtoregister2.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_failedtoregister2.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_failedtoregister2.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_failedtoregister2.js +4 -4
- package/dist/tools/paraglide/messages/auth_failedtoregister2.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_loggingin1.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_loggingin1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_loggingin1.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_loggingin1.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_loggingin1.js +4 -4
- package/dist/tools/paraglide/messages/auth_loggingin1.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_loginwithapple2.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_loginwithapple2.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_loginwithapple2.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_loginwithapple2.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_loginwithapple2.js +4 -4
- package/dist/tools/paraglide/messages/auth_loginwithapple2.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_loginwithgoogle2.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_loginwithgoogle2.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_loginwithgoogle2.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_loginwithgoogle2.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_loginwithgoogle2.js +4 -4
- package/dist/tools/paraglide/messages/auth_loginwithgoogle2.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_name.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_name.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_name.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_name.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_name.js +4 -4
- package/dist/tools/paraglide/messages/auth_name.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_nameplaceholder1.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_nameplaceholder1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_nameplaceholder1.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_nameplaceholder1.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_nameplaceholder1.js +4 -4
- package/dist/tools/paraglide/messages/auth_nameplaceholder1.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_orcontinuewith2.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_orcontinuewith2.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_orcontinuewith2.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_orcontinuewith2.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_orcontinuewith2.js +4 -4
- package/dist/tools/paraglide/messages/auth_orcontinuewith2.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_password.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_password.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_password.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_password.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_password.js +4 -4
- package/dist/tools/paraglide/messages/auth_password.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_registering.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_registering.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_registering.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_registering.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_registering.js +4 -4
- package/dist/tools/paraglide/messages/auth_registering.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_socialloginfailed2.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_socialloginfailed2.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_socialloginfailed2.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_socialloginfailed2.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_socialloginfailed2.js +4 -4
- package/dist/tools/paraglide/messages/auth_socialloginfailed2.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_validation_invalidemail1.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_validation_invalidemail1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_validation_invalidemail1.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_validation_invalidemail1.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_validation_invalidemail1.js +4 -4
- package/dist/tools/paraglide/messages/auth_validation_invalidemail1.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_validation_invalidnumber1.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_validation_invalidnumber1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_validation_invalidnumber1.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_validation_invalidnumber1.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_validation_invalidnumber1.js +4 -4
- package/dist/tools/paraglide/messages/auth_validation_invalidnumber1.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_validation_passwordlength1.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_validation_passwordlength1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_validation_passwordlength1.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_validation_passwordlength1.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_validation_passwordlength1.js +4 -4
- package/dist/tools/paraglide/messages/auth_validation_passwordlength1.js.map +1 -1
- package/dist/tools/paraglide/messages/auth_validation_required.cjs +1 -1
- package/dist/tools/paraglide/messages/auth_validation_required.cjs.map +1 -1
- package/dist/tools/paraglide/messages/auth_validation_required.d.cts +2 -0
- package/dist/tools/paraglide/messages/auth_validation_required.d.ts +2 -0
- package/dist/tools/paraglide/messages/auth_validation_required.js +4 -4
- package/dist/tools/paraglide/messages/auth_validation_required.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_day.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_day.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_day.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_day.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_day.js +2 -5
- package/dist/tools/paraglide/messages/calendar_day.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_month.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_month.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_month.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_month.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_month.js +2 -5
- package/dist/tools/paraglide/messages/calendar_month.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_resources.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_resources.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_resources.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_resources.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_resources.js +4 -4
- package/dist/tools/paraglide/messages/calendar_resources.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_today.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_today.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_today.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_today.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_today.js +4 -4
- package/dist/tools/paraglide/messages/calendar_today.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_agenda.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_view_agenda.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_agenda.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_agenda.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_agenda.js +4 -4
- package/dist/tools/paraglide/messages/calendar_view_agenda.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_comingsoon1.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_view_comingsoon1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_comingsoon1.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_comingsoon1.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_comingsoon1.js +4 -4
- package/dist/tools/paraglide/messages/calendar_view_comingsoon1.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_day.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_view_day.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_day.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_day.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_day.js +4 -4
- package/dist/tools/paraglide/messages/calendar_view_day.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_grid.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_view_grid.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_grid.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_grid.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_grid.js +4 -4
- package/dist/tools/paraglide/messages/calendar_view_grid.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_month.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_view_month.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_month.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_month.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_month.js +2 -5
- package/dist/tools/paraglide/messages/calendar_view_month.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_resource.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_view_resource.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_resource.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_resource.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_resource.js +4 -4
- package/dist/tools/paraglide/messages/calendar_view_resource.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_timeline.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_view_timeline.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_timeline.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_timeline.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_timeline.js +4 -4
- package/dist/tools/paraglide/messages/calendar_view_timeline.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_week.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_view_week.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_view_week.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_week.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_view_week.js +4 -4
- package/dist/tools/paraglide/messages/calendar_view_week.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_week.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_week.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_week.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_week.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_week.js +4 -4
- package/dist/tools/paraglide/messages/calendar_week.js.map +1 -1
- package/dist/tools/paraglide/messages/calendar_year.cjs +1 -1
- package/dist/tools/paraglide/messages/calendar_year.cjs.map +1 -1
- package/dist/tools/paraglide/messages/calendar_year.d.cts +2 -0
- package/dist/tools/paraglide/messages/calendar_year.d.ts +2 -0
- package/dist/tools/paraglide/messages/calendar_year.js +2 -5
- package/dist/tools/paraglide/messages/calendar_year.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_back.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_back.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_back.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_back.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_back.js +4 -4
- package/dist/tools/paraglide/messages/common_actions_back.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_cancel.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_cancel.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_cancel.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_cancel.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_cancel.js +4 -4
- package/dist/tools/paraglide/messages/common_actions_cancel.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_create.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_create.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_create.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_create.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_create.js +4 -4
- package/dist/tools/paraglide/messages/common_actions_create.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_delete.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_delete.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_delete.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_delete.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_delete.js +4 -4
- package/dist/tools/paraglide/messages/common_actions_delete.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_download.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_download.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_download.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_download.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_download.js +4 -4
- package/dist/tools/paraglide/messages/common_actions_download.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_edit.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_edit.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_edit.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_edit.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_edit.js +4 -4
- package/dist/tools/paraglide/messages/common_actions_edit.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_home.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_home.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_home.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_home.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_home.js +4 -4
- package/dist/tools/paraglide/messages/common_actions_home.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_next.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_next.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_next.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_next.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_next.js +4 -4
- package/dist/tools/paraglide/messages/common_actions_next.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_ok.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_ok.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_ok.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_ok.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_ok.js +4 -4
- package/dist/tools/paraglide/messages/common_actions_ok.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_previous.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_previous.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_previous.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_previous.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_previous.js +4 -4
- package/dist/tools/paraglide/messages/common_actions_previous.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_retry.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_retry.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_retry.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_retry.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_retry.js +4 -4
- package/dist/tools/paraglide/messages/common_actions_retry.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_save.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_save.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_save.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_save.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_save.js +2 -5
- package/dist/tools/paraglide/messages/common_actions_save.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_search.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_search.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_search.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_search.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_search.js +4 -4
- package/dist/tools/paraglide/messages/common_actions_search.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_submit.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_submit.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_submit.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_submit.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_submit.js +4 -4
- package/dist/tools/paraglide/messages/common_actions_submit.js.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_update.cjs +1 -1
- package/dist/tools/paraglide/messages/common_actions_update.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_actions_update.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_actions_update.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_actions_update.js +2 -5
- package/dist/tools/paraglide/messages/common_actions_update.js.map +1 -1
- package/dist/tools/paraglide/messages/common_advanced.cjs +1 -1
- package/dist/tools/paraglide/messages/common_advanced.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_advanced.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_advanced.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_advanced.js +4 -4
- package/dist/tools/paraglide/messages/common_advanced.js.map +1 -1
- package/dist/tools/paraglide/messages/common_language.cjs +1 -1
- package/dist/tools/paraglide/messages/common_language.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_language.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_language.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_language.js +4 -4
- package/dist/tools/paraglide/messages/common_language.js.map +1 -1
- package/dist/tools/paraglide/messages/common_no.cjs +1 -1
- package/dist/tools/paraglide/messages/common_no.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_no.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_no.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_no.js +4 -4
- package/dist/tools/paraglide/messages/common_no.js.map +1 -1
- package/dist/tools/paraglide/messages/common_status_error.cjs +1 -1
- package/dist/tools/paraglide/messages/common_status_error.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_status_error.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_status_error.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_status_error.js +4 -4
- package/dist/tools/paraglide/messages/common_status_error.js.map +1 -1
- package/dist/tools/paraglide/messages/common_status_loading.cjs +1 -1
- package/dist/tools/paraglide/messages/common_status_loading.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_status_loading.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_status_loading.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_status_loading.js +4 -4
- package/dist/tools/paraglide/messages/common_status_loading.js.map +1 -1
- package/dist/tools/paraglide/messages/common_stepprogress1.cjs +1 -1
- package/dist/tools/paraglide/messages/common_stepprogress1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_stepprogress1.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_stepprogress1.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_stepprogress1.js +4 -4
- package/dist/tools/paraglide/messages/common_stepprogress1.js.map +1 -1
- package/dist/tools/paraglide/messages/common_validation_noresults1.cjs +1 -1
- package/dist/tools/paraglide/messages/common_validation_noresults1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_validation_noresults1.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_validation_noresults1.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_validation_noresults1.js +4 -4
- package/dist/tools/paraglide/messages/common_validation_noresults1.js.map +1 -1
- package/dist/tools/paraglide/messages/common_validation_noschemas1.cjs +1 -1
- package/dist/tools/paraglide/messages/common_validation_noschemas1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_validation_noschemas1.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_validation_noschemas1.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_validation_noschemas1.js +4 -4
- package/dist/tools/paraglide/messages/common_validation_noschemas1.js.map +1 -1
- package/dist/tools/paraglide/messages/common_validation_notfound1.cjs +1 -1
- package/dist/tools/paraglide/messages/common_validation_notfound1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_validation_notfound1.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_validation_notfound1.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_validation_notfound1.js +4 -4
- package/dist/tools/paraglide/messages/common_validation_notfound1.js.map +1 -1
- package/dist/tools/paraglide/messages/common_yes.cjs +1 -1
- package/dist/tools/paraglide/messages/common_yes.cjs.map +1 -1
- package/dist/tools/paraglide/messages/common_yes.d.cts +2 -0
- package/dist/tools/paraglide/messages/common_yes.d.ts +2 -0
- package/dist/tools/paraglide/messages/common_yes.js +4 -4
- package/dist/tools/paraglide/messages/common_yes.js.map +1 -1
- package/dist/tools/paraglide/messages/datatable_filterplaceholder2.cjs +1 -1
- package/dist/tools/paraglide/messages/datatable_filterplaceholder2.cjs.map +1 -1
- package/dist/tools/paraglide/messages/datatable_filterplaceholder2.d.cts +2 -0
- package/dist/tools/paraglide/messages/datatable_filterplaceholder2.d.ts +2 -0
- package/dist/tools/paraglide/messages/datatable_filterplaceholder2.js +4 -4
- package/dist/tools/paraglide/messages/datatable_filterplaceholder2.js.map +1 -1
- package/dist/tools/paraglide/messages/datatable_gotofirstpage4.cjs +1 -1
- package/dist/tools/paraglide/messages/datatable_gotofirstpage4.cjs.map +1 -1
- package/dist/tools/paraglide/messages/datatable_gotofirstpage4.d.cts +2 -0
- package/dist/tools/paraglide/messages/datatable_gotofirstpage4.d.ts +2 -0
- package/dist/tools/paraglide/messages/datatable_gotofirstpage4.js +4 -4
- package/dist/tools/paraglide/messages/datatable_gotofirstpage4.js.map +1 -1
- package/dist/tools/paraglide/messages/datatable_gotolastpage4.cjs +1 -1
- package/dist/tools/paraglide/messages/datatable_gotolastpage4.cjs.map +1 -1
- package/dist/tools/paraglide/messages/datatable_gotolastpage4.d.cts +2 -0
- package/dist/tools/paraglide/messages/datatable_gotolastpage4.d.ts +2 -0
- package/dist/tools/paraglide/messages/datatable_gotolastpage4.js +4 -4
- package/dist/tools/paraglide/messages/datatable_gotolastpage4.js.map +1 -1
- package/dist/tools/paraglide/messages/datatable_gotonextpage4.cjs +1 -1
- package/dist/tools/paraglide/messages/datatable_gotonextpage4.cjs.map +1 -1
- package/dist/tools/paraglide/messages/datatable_gotonextpage4.d.cts +2 -0
- package/dist/tools/paraglide/messages/datatable_gotonextpage4.d.ts +2 -0
- package/dist/tools/paraglide/messages/datatable_gotonextpage4.js +4 -4
- package/dist/tools/paraglide/messages/datatable_gotonextpage4.js.map +1 -1
- package/dist/tools/paraglide/messages/datatable_gotopreviouspage4.cjs +1 -1
- package/dist/tools/paraglide/messages/datatable_gotopreviouspage4.cjs.map +1 -1
- package/dist/tools/paraglide/messages/datatable_gotopreviouspage4.d.cts +2 -0
- package/dist/tools/paraglide/messages/datatable_gotopreviouspage4.d.ts +2 -0
- package/dist/tools/paraglide/messages/datatable_gotopreviouspage4.js +4 -4
- package/dist/tools/paraglide/messages/datatable_gotopreviouspage4.js.map +1 -1
- package/dist/tools/paraglide/messages/datatable_items1.cjs +1 -1
- package/dist/tools/paraglide/messages/datatable_items1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/datatable_items1.d.cts +2 -0
- package/dist/tools/paraglide/messages/datatable_items1.d.ts +2 -0
- package/dist/tools/paraglide/messages/datatable_items1.js +4 -4
- package/dist/tools/paraglide/messages/datatable_items1.js.map +1 -1
- package/dist/tools/paraglide/messages/datatable_noresults2.cjs +1 -1
- package/dist/tools/paraglide/messages/datatable_noresults2.cjs.map +1 -1
- package/dist/tools/paraglide/messages/datatable_noresults2.d.cts +2 -0
- package/dist/tools/paraglide/messages/datatable_noresults2.d.ts +2 -0
- package/dist/tools/paraglide/messages/datatable_noresults2.js +4 -4
- package/dist/tools/paraglide/messages/datatable_noresults2.js.map +1 -1
- package/dist/tools/paraglide/messages/datatable_page1.cjs +1 -1
- package/dist/tools/paraglide/messages/datatable_page1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/datatable_page1.d.cts +2 -0
- package/dist/tools/paraglide/messages/datatable_page1.d.ts +2 -0
- package/dist/tools/paraglide/messages/datatable_page1.js +4 -4
- package/dist/tools/paraglide/messages/datatable_page1.js.map +1 -1
- package/dist/tools/paraglide/messages/datatable_rowsperpage3.cjs +1 -1
- package/dist/tools/paraglide/messages/datatable_rowsperpage3.cjs.map +1 -1
- package/dist/tools/paraglide/messages/datatable_rowsperpage3.d.cts +2 -0
- package/dist/tools/paraglide/messages/datatable_rowsperpage3.d.ts +2 -0
- package/dist/tools/paraglide/messages/datatable_rowsperpage3.js +4 -4
- package/dist/tools/paraglide/messages/datatable_rowsperpage3.js.map +1 -1
- package/dist/tools/paraglide/messages/datatable_rowsselected2.cjs +1 -1
- package/dist/tools/paraglide/messages/datatable_rowsselected2.cjs.map +1 -1
- package/dist/tools/paraglide/messages/datatable_rowsselected2.d.cts +2 -0
- package/dist/tools/paraglide/messages/datatable_rowsselected2.d.ts +2 -0
- package/dist/tools/paraglide/messages/datatable_rowsselected2.js +4 -4
- package/dist/tools/paraglide/messages/datatable_rowsselected2.js.map +1 -1
- package/dist/tools/paraglide/messages/datatable_togglecolumns2.cjs +1 -1
- package/dist/tools/paraglide/messages/datatable_togglecolumns2.cjs.map +1 -1
- package/dist/tools/paraglide/messages/datatable_togglecolumns2.d.cts +2 -0
- package/dist/tools/paraglide/messages/datatable_togglecolumns2.d.ts +2 -0
- package/dist/tools/paraglide/messages/datatable_togglecolumns2.js +4 -4
- package/dist/tools/paraglide/messages/datatable_togglecolumns2.js.map +1 -1
- package/dist/tools/paraglide/messages/datatable_view1.cjs +1 -1
- package/dist/tools/paraglide/messages/datatable_view1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/datatable_view1.d.cts +2 -0
- package/dist/tools/paraglide/messages/datatable_view1.d.ts +2 -0
- package/dist/tools/paraglide/messages/datatable_view1.js +4 -4
- package/dist/tools/paraglide/messages/datatable_view1.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_account_exists_with_different_credential.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_account_exists_with_different_credential.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_account_exists_with_different_credential.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_account_exists_with_different_credential.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_account_exists_with_different_credential.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_account_exists_with_different_credential.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_email_already_in_use.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_email_already_in_use.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_email_already_in_use.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_email_already_in_use.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_email_already_in_use.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_email_already_in_use.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_expired_action_code.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_expired_action_code.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_expired_action_code.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_expired_action_code.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_expired_action_code.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_expired_action_code.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_invalid_action_code.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_invalid_action_code.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_invalid_action_code.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_invalid_action_code.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_invalid_action_code.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_invalid_action_code.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_invalid_credential.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_invalid_credential.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_invalid_credential.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_invalid_credential.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_invalid_credential.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_invalid_credential.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_invalid_email.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_invalid_email.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_invalid_email.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_invalid_email.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_invalid_email.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_invalid_email.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_network_request_failed.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_network_request_failed.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_network_request_failed.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_network_request_failed.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_network_request_failed.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_network_request_failed.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_operation_not_allowed.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_operation_not_allowed.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_operation_not_allowed.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_operation_not_allowed.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_operation_not_allowed.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_operation_not_allowed.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_popup_closed_by_user.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_popup_closed_by_user.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_popup_closed_by_user.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_popup_closed_by_user.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_popup_closed_by_user.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_popup_closed_by_user.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_requires_recent_login.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_requires_recent_login.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_requires_recent_login.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_requires_recent_login.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_requires_recent_login.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_requires_recent_login.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_too_many_requests.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_too_many_requests.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_too_many_requests.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_too_many_requests.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_too_many_requests.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_too_many_requests.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_user_disabled.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_user_disabled.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_user_disabled.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_user_disabled.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_user_disabled.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_user_disabled.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_user_not_found.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_user_not_found.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_user_not_found.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_user_not_found.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_user_not_found.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_user_not_found.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_weak_password.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_weak_password.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_weak_password.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_weak_password.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_weak_password.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_weak_password.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_wrong_password.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_auth_wrong_password.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_auth_wrong_password.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_wrong_password.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_auth_wrong_password.js +4 -4
- package/dist/tools/paraglide/messages/errors_auth_wrong_password.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_code.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_code.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_code.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_code.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_code.js +4 -4
- package/dist/tools/paraglide/messages/errors_code.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_dialogtitle1.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_dialogtitle1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_dialogtitle1.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_dialogtitle1.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_dialogtitle1.js +4 -4
- package/dist/tools/paraglide/messages/errors_dialogtitle1.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_forbidden.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_error_forbidden.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_forbidden.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_error_forbidden.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_error_forbidden.js +4 -4
- package/dist/tools/paraglide/messages/errors_error_forbidden.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_network.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_error_network.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_network.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_error_network.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_error_network.js +4 -4
- package/dist/tools/paraglide/messages/errors_error_network.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_not_found.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_error_not_found.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_not_found.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_error_not_found.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_error_not_found.js +4 -4
- package/dist/tools/paraglide/messages/errors_error_not_found.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_server.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_error_server.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_server.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_error_server.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_error_server.js +4 -4
- package/dist/tools/paraglide/messages/errors_error_server.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_timeout.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_error_timeout.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_timeout.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_error_timeout.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_error_timeout.js +4 -4
- package/dist/tools/paraglide/messages/errors_error_timeout.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_unauthorized.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_error_unauthorized.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_unauthorized.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_error_unauthorized.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_error_unauthorized.js +4 -4
- package/dist/tools/paraglide/messages/errors_error_unauthorized.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_unknown.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_error_unknown.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_unknown.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_error_unknown.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_error_unknown.js +4 -4
- package/dist/tools/paraglide/messages/errors_error_unknown.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_validation.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_error_validation.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_error_validation.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_error_validation.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_error_validation.js +4 -4
- package/dist/tools/paraglide/messages/errors_error_validation.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_aborted.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_aborted.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_aborted.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_aborted.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_aborted.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_aborted.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_already_exists.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_already_exists.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_already_exists.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_already_exists.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_already_exists.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_already_exists.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_cancelled.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_cancelled.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_cancelled.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_cancelled.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_cancelled.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_cancelled.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_data_loss.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_data_loss.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_data_loss.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_data_loss.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_data_loss.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_data_loss.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_deadline_exceeded.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_deadline_exceeded.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_deadline_exceeded.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_deadline_exceeded.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_deadline_exceeded.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_deadline_exceeded.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_failed_precondition.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_failed_precondition.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_failed_precondition.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_failed_precondition.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_failed_precondition.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_failed_precondition.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_internal.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_internal.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_internal.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_internal.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_internal.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_internal.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_invalid_argument.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_invalid_argument.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_invalid_argument.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_invalid_argument.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_invalid_argument.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_invalid_argument.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_not_found.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_not_found.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_not_found.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_not_found.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_not_found.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_not_found.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_out_of_range.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_out_of_range.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_out_of_range.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_out_of_range.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_out_of_range.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_out_of_range.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_permission_denied.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_permission_denied.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_permission_denied.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_permission_denied.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_permission_denied.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_permission_denied.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_resource_exhausted.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_resource_exhausted.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_resource_exhausted.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_resource_exhausted.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_resource_exhausted.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_resource_exhausted.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_unauthenticated.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_unauthenticated.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_unauthenticated.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_unauthenticated.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_unauthenticated.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_unauthenticated.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_unavailable.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_unavailable.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_unavailable.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_unavailable.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_unavailable.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_unavailable.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_unimplemented.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_unimplemented.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_unimplemented.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_unimplemented.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_unimplemented.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_unimplemented.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_unknown.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_functions_unknown.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_functions_unknown.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_unknown.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_functions_unknown.js +4 -4
- package/dist/tools/paraglide/messages/errors_functions_unknown.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_generic.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_generic.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_generic.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_generic.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_generic.js +4 -4
- package/dist/tools/paraglide/messages/errors_generic.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_generictitle1.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_generictitle1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_generictitle1.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_generictitle1.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_generictitle1.js +4 -4
- package/dist/tools/paraglide/messages/errors_generictitle1.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_storage_bucket_not_found.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_storage_bucket_not_found.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_storage_bucket_not_found.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_storage_bucket_not_found.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_storage_bucket_not_found.js +4 -4
- package/dist/tools/paraglide/messages/errors_storage_bucket_not_found.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_storage_file_too_large.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_storage_file_too_large.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_storage_file_too_large.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_storage_file_too_large.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_storage_file_too_large.js +4 -4
- package/dist/tools/paraglide/messages/errors_storage_file_too_large.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_storage_invalid_file_type.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_storage_invalid_file_type.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_storage_invalid_file_type.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_storage_invalid_file_type.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_storage_invalid_file_type.js +4 -4
- package/dist/tools/paraglide/messages/errors_storage_invalid_file_type.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_storage_object_not_found.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_storage_object_not_found.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_storage_object_not_found.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_storage_object_not_found.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_storage_object_not_found.js +4 -4
- package/dist/tools/paraglide/messages/errors_storage_object_not_found.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_storage_unauthorized.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_storage_unauthorized.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_storage_unauthorized.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_storage_unauthorized.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_storage_unauthorized.js +4 -4
- package/dist/tools/paraglide/messages/errors_storage_unauthorized.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_storage_upload_failed.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_storage_upload_failed.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_storage_upload_failed.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_storage_upload_failed.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_storage_upload_failed.js +4 -4
- package/dist/tools/paraglide/messages/errors_storage_upload_failed.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_bad_jwt.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_bad_jwt.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_bad_jwt.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_bad_jwt.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_bad_jwt.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_bad_jwt.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_check_violation.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_check_violation.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_check_violation.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_check_violation.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_check_violation.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_check_violation.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_email_not_confirmed.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_email_not_confirmed.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_email_not_confirmed.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_email_not_confirmed.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_email_not_confirmed.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_email_not_confirmed.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_foreign_key_violation.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_foreign_key_violation.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_foreign_key_violation.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_foreign_key_violation.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_foreign_key_violation.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_foreign_key_violation.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_insufficient_privilege.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_insufficient_privilege.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_insufficient_privilege.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_insufficient_privilege.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_insufficient_privilege.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_insufficient_privilege.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_invalid_credentials.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_invalid_credentials.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_invalid_credentials.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_invalid_credentials.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_invalid_credentials.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_invalid_credentials.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_invalid_grant.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_invalid_grant.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_invalid_grant.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_invalid_grant.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_invalid_grant.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_invalid_grant.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_invalid_token.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_invalid_token.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_invalid_token.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_invalid_token.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_invalid_token.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_invalid_token.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_not_admin.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_not_admin.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_not_admin.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_not_admin.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_not_admin.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_not_admin.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_rate_limit_exceeded.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_rate_limit_exceeded.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_rate_limit_exceeded.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_rate_limit_exceeded.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_rate_limit_exceeded.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_rate_limit_exceeded.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_session_expired.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_session_expired.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_session_expired.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_session_expired.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_session_expired.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_session_expired.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_undefined_table.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_undefined_table.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_undefined_table.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_undefined_table.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_undefined_table.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_undefined_table.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_unique_violation.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_unique_violation.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_unique_violation.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_unique_violation.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_unique_violation.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_unique_violation.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_user_already_exists.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_user_already_exists.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_user_already_exists.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_user_already_exists.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_user_already_exists.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_user_already_exists.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_user_not_found.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_user_not_found.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_supabase_user_not_found.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_user_not_found.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_supabase_user_not_found.js +4 -4
- package/dist/tools/paraglide/messages/errors_supabase_user_not_found.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_validation_invalidemail1.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_validation_invalidemail1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_validation_invalidemail1.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_validation_invalidemail1.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_validation_invalidemail1.js +4 -4
- package/dist/tools/paraglide/messages/errors_validation_invalidemail1.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_validation_maxlength1.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_validation_maxlength1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_validation_maxlength1.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_validation_maxlength1.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_validation_maxlength1.js +4 -4
- package/dist/tools/paraglide/messages/errors_validation_maxlength1.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_validation_minlength1.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_validation_minlength1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_validation_minlength1.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_validation_minlength1.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_validation_minlength1.js +4 -4
- package/dist/tools/paraglide/messages/errors_validation_minlength1.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_validation_pattern.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_validation_pattern.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_validation_pattern.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_validation_pattern.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_validation_pattern.js +4 -4
- package/dist/tools/paraglide/messages/errors_validation_pattern.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_validation_required.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_validation_required.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_validation_required.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_validation_required.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_validation_required.js +4 -4
- package/dist/tools/paraglide/messages/errors_validation_required.js.map +1 -1
- package/dist/tools/paraglide/messages/errors_validation_weakpassword1.cjs +1 -1
- package/dist/tools/paraglide/messages/errors_validation_weakpassword1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/errors_validation_weakpassword1.d.cts +2 -0
- package/dist/tools/paraglide/messages/errors_validation_weakpassword1.d.ts +2 -0
- package/dist/tools/paraglide/messages/errors_validation_weakpassword1.js +4 -4
- package/dist/tools/paraglide/messages/errors_validation_weakpassword1.js.map +1 -1
- package/dist/tools/paraglide/messages/filter_all.cjs +1 -1
- package/dist/tools/paraglide/messages/filter_all.cjs.map +1 -1
- package/dist/tools/paraglide/messages/filter_all.d.cts +2 -0
- package/dist/tools/paraglide/messages/filter_all.d.ts +2 -0
- package/dist/tools/paraglide/messages/filter_all.js +4 -4
- package/dist/tools/paraglide/messages/filter_all.js.map +1 -1
- package/dist/tools/paraglide/messages/filter_apply.cjs +1 -1
- package/dist/tools/paraglide/messages/filter_apply.cjs.map +1 -1
- package/dist/tools/paraglide/messages/filter_apply.d.cts +2 -0
- package/dist/tools/paraglide/messages/filter_apply.d.ts +2 -0
- package/dist/tools/paraglide/messages/filter_apply.js +4 -4
- package/dist/tools/paraglide/messages/filter_apply.js.map +1 -1
- package/dist/tools/paraglide/messages/filter_max.cjs +1 -1
- package/dist/tools/paraglide/messages/filter_max.cjs.map +1 -1
- package/dist/tools/paraglide/messages/filter_max.d.cts +2 -0
- package/dist/tools/paraglide/messages/filter_max.d.ts +2 -0
- package/dist/tools/paraglide/messages/filter_max.js +2 -5
- package/dist/tools/paraglide/messages/filter_max.js.map +1 -1
- package/dist/tools/paraglide/messages/filter_min.cjs +1 -1
- package/dist/tools/paraglide/messages/filter_min.cjs.map +1 -1
- package/dist/tools/paraglide/messages/filter_min.d.cts +2 -0
- package/dist/tools/paraglide/messages/filter_min.d.ts +2 -0
- package/dist/tools/paraglide/messages/filter_min.js +2 -5
- package/dist/tools/paraglide/messages/filter_min.js.map +1 -1
- package/dist/tools/paraglide/messages/filter_reset.cjs +1 -1
- package/dist/tools/paraglide/messages/filter_reset.cjs.map +1 -1
- package/dist/tools/paraglide/messages/filter_reset.d.cts +2 -0
- package/dist/tools/paraglide/messages/filter_reset.d.ts +2 -0
- package/dist/tools/paraglide/messages/filter_reset.js +4 -4
- package/dist/tools/paraglide/messages/filter_reset.js.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_default.cjs +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_default.cjs.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_default.d.cts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_default.d.ts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_default.js +4 -4
- package/dist/tools/paraglide/messages/kanban_sort_default.js.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_dueasc1.cjs +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_dueasc1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_dueasc1.d.cts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_dueasc1.d.ts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_dueasc1.js +4 -4
- package/dist/tools/paraglide/messages/kanban_sort_dueasc1.js.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_duedesc1.cjs +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_duedesc1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_duedesc1.d.cts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_duedesc1.d.ts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_duedesc1.js +4 -4
- package/dist/tools/paraglide/messages/kanban_sort_duedesc1.js.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_priorityasc1.cjs +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_priorityasc1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_priorityasc1.d.cts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_priorityasc1.d.ts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_priorityasc1.js +4 -4
- package/dist/tools/paraglide/messages/kanban_sort_priorityasc1.js.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_prioritydesc1.cjs +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_prioritydesc1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_prioritydesc1.d.cts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_prioritydesc1.d.ts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_prioritydesc1.js +4 -4
- package/dist/tools/paraglide/messages/kanban_sort_prioritydesc1.js.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_titleasc1.cjs +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_titleasc1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_titleasc1.d.cts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_titleasc1.d.ts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_titleasc1.js +4 -4
- package/dist/tools/paraglide/messages/kanban_sort_titleasc1.js.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_titledesc1.cjs +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_titledesc1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/kanban_sort_titledesc1.d.cts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_titledesc1.d.ts +2 -0
- package/dist/tools/paraglide/messages/kanban_sort_titledesc1.js +4 -4
- package/dist/tools/paraglide/messages/kanban_sort_titledesc1.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_close.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_close.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_close.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_close.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_close.js +4 -4
- package/dist/tools/paraglide/messages/pdf_close.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_description.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_description.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_description.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_description.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_description.js +4 -4
- package/dist/tools/paraglide/messages/pdf_description.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_export.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_export.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_export.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_export.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_export.js +4 -4
- package/dist/tools/paraglide/messages/pdf_export.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_options_landscape.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_options_landscape.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_options_landscape.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_options_landscape.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_options_landscape.js +4 -4
- package/dist/tools/paraglide/messages/pdf_options_landscape.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_options_portrait.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_options_portrait.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_options_portrait.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_options_portrait.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_options_portrait.js +4 -4
- package/dist/tools/paraglide/messages/pdf_options_portrait.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_options_shrink.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_options_shrink.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_options_shrink.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_options_shrink.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_options_shrink.js +4 -4
- package/dist/tools/paraglide/messages/pdf_options_shrink.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_options_truncate.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_options_truncate.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_options_truncate.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_options_truncate.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_options_truncate.js +4 -4
- package/dist/tools/paraglide/messages/pdf_options_truncate.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_options_wrap.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_options_wrap.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_options_wrap.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_options_wrap.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_options_wrap.js +4 -4
- package/dist/tools/paraglide/messages/pdf_options_wrap.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_preview.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_preview.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_preview.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_preview.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_preview.js +4 -4
- package/dist/tools/paraglide/messages/pdf_preview.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_aligncenter1.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_aligncenter1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_aligncenter1.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_aligncenter1.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_aligncenter1.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_aligncenter1.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_alignleft1.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_alignleft1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_alignleft1.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_alignleft1.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_alignleft1.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_alignleft1.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_alignright1.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_alignright1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_alignright1.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_alignright1.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_alignright1.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_alignright1.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_bottom.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_bottom.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_bottom.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_bottom.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_bottom.js +2 -5
- package/dist/tools/paraglide/messages/pdf_settings_bottom.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_font.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_font.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_font.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_font.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_font.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_font.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_fontsize1.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_fontsize1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_fontsize1.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_fontsize1.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_fontsize1.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_fontsize1.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_footer.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_footer.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_footer.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_footer.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_footer.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_footer.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_format.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_format.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_format.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_format.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_format.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_format.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_header.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_header.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_header.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_header.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_header.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_header.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_left.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_left.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_left.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_left.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_left.js +2 -5
- package/dist/tools/paraglide/messages/pdf_settings_left.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_margins.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_margins.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_margins.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_margins.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_margins.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_margins.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_orientation.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_orientation.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_orientation.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_orientation.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_orientation.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_orientation.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_overflow.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_overflow.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_overflow.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_overflow.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_overflow.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_overflow.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_right.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_right.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_right.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_right.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_right.js +2 -5
- package/dist/tools/paraglide/messages/pdf_settings_right.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_showline1.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_showline1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_showline1.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_showline1.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_showline1.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_showline1.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_shrinktable1.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_shrinktable1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_shrinktable1.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_shrinktable1.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_shrinktable1.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_shrinktable1.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_shrinktabledesc2.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_shrinktabledesc2.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_shrinktabledesc2.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_shrinktabledesc2.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_shrinktabledesc2.js +4 -4
- package/dist/tools/paraglide/messages/pdf_settings_shrinktabledesc2.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_top.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_top.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_settings_top.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_top.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_settings_top.js +2 -5
- package/dist/tools/paraglide/messages/pdf_settings_top.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_tabs_behavior.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_tabs_behavior.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_tabs_behavior.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_tabs_behavior.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_tabs_behavior.js +4 -4
- package/dist/tools/paraglide/messages/pdf_tabs_behavior.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_tabs_page.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_tabs_page.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_tabs_page.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_tabs_page.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_tabs_page.js +4 -4
- package/dist/tools/paraglide/messages/pdf_tabs_page.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_tabs_text.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_tabs_text.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_tabs_text.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_tabs_text.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_tabs_text.js +4 -4
- package/dist/tools/paraglide/messages/pdf_tabs_text.js.map +1 -1
- package/dist/tools/paraglide/messages/pdf_title.cjs +1 -1
- package/dist/tools/paraglide/messages/pdf_title.cjs.map +1 -1
- package/dist/tools/paraglide/messages/pdf_title.d.cts +2 -0
- package/dist/tools/paraglide/messages/pdf_title.d.ts +2 -0
- package/dist/tools/paraglide/messages/pdf_title.js +4 -4
- package/dist/tools/paraglide/messages/pdf_title.js.map +1 -1
- package/dist/tools/paraglide/messages/signin1.cjs +1 -1
- package/dist/tools/paraglide/messages/signin1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/signin1.d.cts +2 -0
- package/dist/tools/paraglide/messages/signin1.d.ts +2 -0
- package/dist/tools/paraglide/messages/signin1.js +4 -4
- package/dist/tools/paraglide/messages/signin1.js.map +1 -1
- package/dist/tools/paraglide/messages/signup1.cjs +1 -1
- package/dist/tools/paraglide/messages/signup1.cjs.map +1 -1
- package/dist/tools/paraglide/messages/signup1.d.cts +2 -0
- package/dist/tools/paraglide/messages/signup1.d.ts +2 -0
- package/dist/tools/paraglide/messages/signup1.js +4 -4
- package/dist/tools/paraglide/messages/signup1.js.map +1 -1
- package/dist/tools/paraglide/runtime.cjs +1 -1
- package/dist/tools/paraglide/runtime.cjs.map +1 -1
- package/dist/tools/paraglide/runtime.d.cts +18 -4
- package/dist/tools/paraglide/runtime.d.ts +18 -4
- package/dist/tools/paraglide/runtime.js +54 -36
- package/dist/tools/paraglide/runtime.js.map +1 -1
- package/dist/ui/components/theme/theme-context.cjs.map +1 -1
- package/dist/ui/components/theme/theme-context.d.cts +171 -1
- package/dist/ui/components/theme/theme-context.d.ts +171 -1
- package/dist/ui/components/theme/theme-context.js.map +1 -1
- package/dist/ui/components/theme/theme-provider.cjs.map +1 -1
- package/dist/ui/components/theme/theme-provider.d.cts +31 -19
- package/dist/ui/components/theme/theme-provider.d.ts +31 -19
- package/dist/ui/components/theme/theme-provider.js.map +1 -1
- package/dist/ui/components/theme/theme-script.cjs.map +1 -1
- package/dist/ui/components/theme/theme-script.d.cts +16 -1
- package/dist/ui/components/theme/theme-script.d.ts +16 -1
- package/dist/ui/components/theme/theme-script.js.map +1 -1
- package/dist/ui/components/theme/theme-switcher.cjs +1 -1
- package/dist/ui/components/theme/theme-switcher.cjs.map +1 -1
- package/dist/ui/components/theme/theme-switcher.d.cts +82 -13
- package/dist/ui/components/theme/theme-switcher.d.ts +82 -13
- package/dist/ui/components/theme/theme-switcher.js +8 -0
- package/dist/ui/components/theme/theme-switcher.js.map +1 -1
- package/dist/ui/components/ui/accordion.cjs +1 -1
- package/dist/ui/components/ui/accordion.cjs.map +1 -1
- package/dist/ui/components/ui/accordion.d.cts +76 -4
- package/dist/ui/components/ui/accordion.d.ts +76 -4
- package/dist/ui/components/ui/accordion.js +58 -50
- package/dist/ui/components/ui/accordion.js.map +1 -1
- package/dist/ui/components/ui/adjustable-pane.cjs.map +1 -1
- package/dist/ui/components/ui/adjustable-pane.d.cts +44 -26
- package/dist/ui/components/ui/adjustable-pane.d.ts +44 -26
- package/dist/ui/components/ui/adjustable-pane.js.map +1 -1
- package/dist/ui/components/ui/alert-dialog.cjs +1 -1
- package/dist/ui/components/ui/alert-dialog.cjs.map +1 -1
- package/dist/ui/components/ui/alert-dialog.d.cts +225 -14
- package/dist/ui/components/ui/alert-dialog.d.ts +225 -14
- package/dist/ui/components/ui/alert-dialog.js +103 -83
- package/dist/ui/components/ui/alert-dialog.js.map +1 -1
- package/dist/ui/components/ui/alert.cjs.map +1 -1
- package/dist/ui/components/ui/alert.d.cts +52 -4
- package/dist/ui/components/ui/alert.d.ts +52 -4
- package/dist/ui/components/ui/alert.js.map +1 -1
- package/dist/ui/components/ui/aspect-ratio.cjs.map +1 -1
- package/dist/ui/components/ui/aspect-ratio.d.cts +16 -1
- package/dist/ui/components/ui/aspect-ratio.d.ts +16 -1
- package/dist/ui/components/ui/aspect-ratio.js.map +1 -1
- package/dist/ui/components/ui/avatar.cjs +1 -1
- package/dist/ui/components/ui/avatar.cjs.map +1 -1
- package/dist/ui/components/ui/avatar.d.cts +105 -8
- package/dist/ui/components/ui/avatar.d.ts +105 -8
- package/dist/ui/components/ui/avatar.js +34 -28
- package/dist/ui/components/ui/avatar.js.map +1 -1
- package/dist/ui/components/ui/badge-components.cjs.map +1 -1
- package/dist/ui/components/ui/badge-components.d.cts +13 -1
- package/dist/ui/components/ui/badge-components.d.ts +13 -1
- package/dist/ui/components/ui/badge-components.js.map +1 -1
- package/dist/ui/components/ui/badge-variants.cjs.map +1 -1
- package/dist/ui/components/ui/badge-variants.d.cts +15 -0
- package/dist/ui/components/ui/badge-variants.d.ts +15 -0
- package/dist/ui/components/ui/badge-variants.js.map +1 -1
- package/dist/ui/components/ui/breadcrumb.cjs.map +1 -1
- package/dist/ui/components/ui/breadcrumb.d.cts +91 -7
- package/dist/ui/components/ui/breadcrumb.d.ts +91 -7
- package/dist/ui/components/ui/breadcrumb.js.map +1 -1
- package/dist/ui/components/ui/button-components.cjs +1 -1
- package/dist/ui/components/ui/button-components.cjs.map +1 -1
- package/dist/ui/components/ui/button-components.d.cts +22 -7
- package/dist/ui/components/ui/button-components.d.ts +22 -7
- package/dist/ui/components/ui/button-components.js +29 -27
- package/dist/ui/components/ui/button-components.js.map +1 -1
- package/dist/ui/components/ui/button-group-components.cjs.map +1 -1
- package/dist/ui/components/ui/button-group-components.d.cts +39 -3
- package/dist/ui/components/ui/button-group-components.d.ts +39 -3
- package/dist/ui/components/ui/button-group-components.js.map +1 -1
- package/dist/ui/components/ui/button-group-variants.cjs.map +1 -1
- package/dist/ui/components/ui/button-group-variants.d.cts +15 -0
- package/dist/ui/components/ui/button-group-variants.d.ts +15 -0
- package/dist/ui/components/ui/button-group-variants.js.map +1 -1
- package/dist/ui/components/ui/button-variants.cjs.map +1 -1
- package/dist/ui/components/ui/button-variants.d.cts +13 -2
- package/dist/ui/components/ui/button-variants.d.ts +13 -2
- package/dist/ui/components/ui/button-variants.js.map +1 -1
- package/dist/ui/components/ui/card.cjs +1 -1
- package/dist/ui/components/ui/card.cjs.map +1 -1
- package/dist/ui/components/ui/card.d.cts +137 -12
- package/dist/ui/components/ui/card.d.ts +137 -12
- package/dist/ui/components/ui/card.js +66 -52
- package/dist/ui/components/ui/card.js.map +1 -1
- package/dist/ui/components/ui/checkbox-group.cjs.map +1 -1
- package/dist/ui/components/ui/checkbox-group.d.cts +13 -1
- package/dist/ui/components/ui/checkbox-group.d.ts +13 -1
- package/dist/ui/components/ui/checkbox-group.js.map +1 -1
- package/dist/ui/components/ui/checkbox.cjs +1 -1
- package/dist/ui/components/ui/checkbox.cjs.map +1 -1
- package/dist/ui/components/ui/checkbox.d.cts +21 -7
- package/dist/ui/components/ui/checkbox.d.ts +21 -7
- package/dist/ui/components/ui/checkbox.js +19 -17
- package/dist/ui/components/ui/checkbox.js.map +1 -1
- package/dist/ui/components/ui/collapsible.cjs.map +1 -1
- package/dist/ui/components/ui/collapsible.d.cts +39 -3
- package/dist/ui/components/ui/collapsible.d.ts +39 -3
- package/dist/ui/components/ui/collapsible.js.map +1 -1
- package/dist/ui/components/ui/combobox-components.cjs.map +1 -1
- package/dist/ui/components/ui/combobox-components.d.cts +209 -14
- package/dist/ui/components/ui/combobox-components.d.ts +209 -14
- package/dist/ui/components/ui/combobox-components.js.map +1 -1
- package/dist/ui/components/ui/combobox-hooks.cjs.map +1 -1
- package/dist/ui/components/ui/combobox-hooks.d.cts +13 -1
- package/dist/ui/components/ui/combobox-hooks.d.ts +13 -1
- package/dist/ui/components/ui/combobox-hooks.js.map +1 -1
- package/dist/ui/components/ui/command.cjs.map +1 -1
- package/dist/ui/components/ui/command.d.cts +132 -9
- package/dist/ui/components/ui/command.d.ts +132 -9
- package/dist/ui/components/ui/command.js.map +1 -1
- package/dist/ui/components/ui/context-menu.cjs +1 -1
- package/dist/ui/components/ui/context-menu.cjs.map +1 -1
- package/dist/ui/components/ui/context-menu.d.cts +295 -19
- package/dist/ui/components/ui/context-menu.d.ts +295 -19
- package/dist/ui/components/ui/context-menu.js +145 -119
- package/dist/ui/components/ui/context-menu.js.map +1 -1
- package/dist/ui/components/ui/dialog.cjs +1 -1
- package/dist/ui/components/ui/dialog.cjs.map +1 -1
- package/dist/ui/components/ui/dialog.d.cts +185 -12
- package/dist/ui/components/ui/dialog.d.ts +185 -12
- package/dist/ui/components/ui/dialog.js +82 -70
- package/dist/ui/components/ui/dialog.js.map +1 -1
- package/dist/ui/components/ui/drawer.cjs.map +1 -1
- package/dist/ui/components/ui/drawer.d.cts +130 -10
- package/dist/ui/components/ui/drawer.d.ts +130 -10
- package/dist/ui/components/ui/drawer.js.map +1 -1
- package/dist/ui/components/ui/dropdown-menu.cjs +1 -1
- package/dist/ui/components/ui/dropdown-menu.cjs.map +1 -1
- package/dist/ui/components/ui/dropdown-menu.d.cts +271 -19
- package/dist/ui/components/ui/dropdown-menu.d.ts +271 -19
- package/dist/ui/components/ui/dropdown-menu.js +125 -107
- package/dist/ui/components/ui/dropdown-menu.js.map +1 -1
- package/dist/ui/components/ui/empty.cjs.map +1 -1
- package/dist/ui/components/ui/empty.d.cts +78 -6
- package/dist/ui/components/ui/empty.d.ts +78 -6
- package/dist/ui/components/ui/empty.js.map +1 -1
- package/dist/ui/components/ui/field.cjs +1 -1
- package/dist/ui/components/ui/field.cjs.map +1 -1
- package/dist/ui/components/ui/field.d.cts +203 -12
- package/dist/ui/components/ui/field.d.ts +203 -12
- package/dist/ui/components/ui/field.js +56 -50
- package/dist/ui/components/ui/field.js.map +1 -1
- package/dist/ui/components/ui/file-icon.cjs.map +1 -1
- package/dist/ui/components/ui/file-icon.d.cts +32 -4
- package/dist/ui/components/ui/file-icon.d.ts +32 -4
- package/dist/ui/components/ui/file-icon.js.map +1 -1
- package/dist/ui/components/ui/hover-card.cjs.map +1 -1
- package/dist/ui/components/ui/hover-card.d.cts +39 -3
- package/dist/ui/components/ui/hover-card.d.ts +39 -3
- package/dist/ui/components/ui/hover-card.js.map +1 -1
- package/dist/ui/components/ui/input-group.cjs.map +1 -1
- package/dist/ui/components/ui/input-group.d.cts +84 -6
- package/dist/ui/components/ui/input-group.d.ts +84 -6
- package/dist/ui/components/ui/input-group.js.map +1 -1
- package/dist/ui/components/ui/input-otp.cjs.map +1 -1
- package/dist/ui/components/ui/input-otp.d.cts +58 -4
- package/dist/ui/components/ui/input-otp.d.ts +58 -4
- package/dist/ui/components/ui/input-otp.js.map +1 -1
- package/dist/ui/components/ui/input.cjs +1 -1
- package/dist/ui/components/ui/input.cjs.map +1 -1
- package/dist/ui/components/ui/input.d.cts +22 -11
- package/dist/ui/components/ui/input.d.ts +22 -11
- package/dist/ui/components/ui/input.js +18 -18
- package/dist/ui/components/ui/input.js.map +1 -1
- package/dist/ui/components/ui/item.cjs.map +1 -1
- package/dist/ui/components/ui/item.d.cts +130 -10
- package/dist/ui/components/ui/item.d.ts +130 -10
- package/dist/ui/components/ui/item.js.map +1 -1
- package/dist/ui/components/ui/kbd.cjs.map +1 -1
- package/dist/ui/components/ui/kbd.d.cts +26 -2
- package/dist/ui/components/ui/kbd.d.ts +26 -2
- package/dist/ui/components/ui/kbd.js.map +1 -1
- package/dist/ui/components/ui/label.cjs +1 -1
- package/dist/ui/components/ui/label.cjs.map +1 -1
- package/dist/ui/components/ui/label.d.cts +19 -1
- package/dist/ui/components/ui/label.d.ts +19 -1
- package/dist/ui/components/ui/label.js +11 -9
- package/dist/ui/components/ui/label.js.map +1 -1
- package/dist/ui/components/ui/layout.cjs +1 -1
- package/dist/ui/components/ui/layout.cjs.map +1 -1
- package/dist/ui/components/ui/layout.d.cts +49 -12
- package/dist/ui/components/ui/layout.d.ts +49 -12
- package/dist/ui/components/ui/layout.js +31 -29
- package/dist/ui/components/ui/layout.js.map +1 -1
- package/dist/ui/components/ui/menubar.cjs.map +1 -1
- package/dist/ui/components/ui/menubar.d.cts +220 -16
- package/dist/ui/components/ui/menubar.d.ts +220 -16
- package/dist/ui/components/ui/menubar.js.map +1 -1
- package/dist/ui/components/ui/meter.cjs.map +1 -1
- package/dist/ui/components/ui/meter.d.cts +52 -4
- package/dist/ui/components/ui/meter.d.ts +52 -4
- package/dist/ui/components/ui/meter.js.map +1 -1
- package/dist/ui/components/ui/mobile-form-variants.cjs.map +1 -1
- package/dist/ui/components/ui/mobile-form-variants.d.cts +30 -0
- package/dist/ui/components/ui/mobile-form-variants.d.ts +30 -0
- package/dist/ui/components/ui/mobile-form-variants.js.map +1 -1
- package/dist/ui/components/ui/mobile-form.cjs +1 -1
- package/dist/ui/components/ui/mobile-form.cjs.map +1 -1
- package/dist/ui/components/ui/mobile-form.d.cts +210 -15
- package/dist/ui/components/ui/mobile-form.d.ts +210 -15
- package/dist/ui/components/ui/mobile-form.js +102 -94
- package/dist/ui/components/ui/mobile-form.js.map +1 -1
- package/dist/ui/components/ui/navigation-menu-components.cjs.map +1 -1
- package/dist/ui/components/ui/navigation-menu-components.d.cts +104 -8
- package/dist/ui/components/ui/navigation-menu-components.d.ts +104 -8
- package/dist/ui/components/ui/navigation-menu-components.js.map +1 -1
- package/dist/ui/components/ui/navigation-menu-variants.cjs.map +1 -1
- package/dist/ui/components/ui/navigation-menu-variants.d.cts +15 -0
- package/dist/ui/components/ui/navigation-menu-variants.d.ts +15 -0
- package/dist/ui/components/ui/navigation-menu-variants.js.map +1 -1
- package/dist/ui/components/ui/number-field.cjs.map +1 -1
- package/dist/ui/components/ui/number-field.d.cts +78 -6
- package/dist/ui/components/ui/number-field.d.ts +78 -6
- package/dist/ui/components/ui/number-field.js.map +1 -1
- package/dist/ui/components/ui/pagination.cjs +1 -1
- package/dist/ui/components/ui/pagination.cjs.map +1 -1
- package/dist/ui/components/ui/pagination.d.cts +121 -13
- package/dist/ui/components/ui/pagination.d.ts +121 -13
- package/dist/ui/components/ui/pagination.js +57 -48
- package/dist/ui/components/ui/pagination.js.map +1 -1
- package/dist/ui/components/ui/password-input.cjs +1 -1
- package/dist/ui/components/ui/password-input.cjs.map +1 -1
- package/dist/ui/components/ui/password-input.d.cts +14 -8
- package/dist/ui/components/ui/password-input.d.ts +14 -8
- package/dist/ui/components/ui/password-input.js +6 -6
- package/dist/ui/components/ui/password-input.js.map +1 -1
- package/dist/ui/components/ui/popover.cjs +1 -1
- package/dist/ui/components/ui/popover.cjs.map +1 -1
- package/dist/ui/components/ui/popover.d.cts +102 -6
- package/dist/ui/components/ui/popover.d.ts +102 -6
- package/dist/ui/components/ui/popover.js +51 -43
- package/dist/ui/components/ui/popover.js.map +1 -1
- package/dist/ui/components/ui/progress.cjs +1 -1
- package/dist/ui/components/ui/progress.cjs.map +1 -1
- package/dist/ui/components/ui/progress.d.cts +93 -7
- package/dist/ui/components/ui/progress.d.ts +93 -7
- package/dist/ui/components/ui/progress.js +50 -40
- package/dist/ui/components/ui/progress.js.map +1 -1
- package/dist/ui/components/ui/radio-card.cjs +1 -1
- package/dist/ui/components/ui/radio-card.cjs.map +1 -1
- package/dist/ui/components/ui/radio-card.d.cts +41 -7
- package/dist/ui/components/ui/radio-card.d.ts +41 -7
- package/dist/ui/components/ui/radio-card.js +46 -42
- package/dist/ui/components/ui/radio-card.js.map +1 -1
- package/dist/ui/components/ui/radio-group.cjs +1 -1
- package/dist/ui/components/ui/radio-group.cjs.map +1 -1
- package/dist/ui/components/ui/radio-group.d.cts +36 -4
- package/dist/ui/components/ui/radio-group.d.ts +36 -4
- package/dist/ui/components/ui/radio-group.js +28 -24
- package/dist/ui/components/ui/radio-group.js.map +1 -1
- package/dist/ui/components/ui/resizable.cjs.map +1 -1
- package/dist/ui/components/ui/resizable.d.cts +42 -3
- package/dist/ui/components/ui/resizable.d.ts +42 -3
- package/dist/ui/components/ui/resizable.js.map +1 -1
- package/dist/ui/components/ui/responsive-list.cjs.map +1 -1
- package/dist/ui/components/ui/responsive-list.d.cts +176 -13
- package/dist/ui/components/ui/responsive-list.d.ts +176 -13
- package/dist/ui/components/ui/responsive-list.js.map +1 -1
- package/dist/ui/components/ui/scroll-area.cjs +1 -1
- package/dist/ui/components/ui/scroll-area.cjs.map +1 -1
- package/dist/ui/components/ui/scroll-area.d.cts +32 -2
- package/dist/ui/components/ui/scroll-area.d.ts +32 -2
- package/dist/ui/components/ui/scroll-area.js +26 -24
- package/dist/ui/components/ui/scroll-area.js.map +1 -1
- package/dist/ui/components/ui/searchable-select-input.cjs.map +1 -1
- package/dist/ui/components/ui/searchable-select-input.d.cts +199 -49
- package/dist/ui/components/ui/searchable-select-input.d.ts +199 -49
- package/dist/ui/components/ui/searchable-select-input.js.map +1 -1
- package/dist/ui/components/ui/select.cjs +1 -1
- package/dist/ui/components/ui/select.cjs.map +1 -1
- package/dist/ui/components/ui/select.d.cts +213 -42
- package/dist/ui/components/ui/select.d.ts +213 -42
- package/dist/ui/components/ui/select.js +76 -72
- package/dist/ui/components/ui/select.js.map +1 -1
- package/dist/ui/components/ui/separator.cjs +1 -1
- package/dist/ui/components/ui/separator.cjs.map +1 -1
- package/dist/ui/components/ui/separator.d.cts +18 -3
- package/dist/ui/components/ui/separator.d.ts +18 -3
- package/dist/ui/components/ui/separator.js +13 -11
- package/dist/ui/components/ui/separator.js.map +1 -1
- package/dist/ui/components/ui/sheet.cjs +1 -1
- package/dist/ui/components/ui/sheet.cjs.map +1 -1
- package/dist/ui/components/ui/sheet.d.cts +148 -8
- package/dist/ui/components/ui/sheet.d.ts +148 -8
- package/dist/ui/components/ui/sheet.js +72 -62
- package/dist/ui/components/ui/sheet.js.map +1 -1
- package/dist/ui/components/ui/skeleton.cjs.map +1 -1
- package/dist/ui/components/ui/skeleton.d.cts +13 -1
- package/dist/ui/components/ui/skeleton.d.ts +13 -1
- package/dist/ui/components/ui/skeleton.js.map +1 -1
- package/dist/ui/components/ui/slider.cjs +1 -1
- package/dist/ui/components/ui/slider.cjs.map +1 -1
- package/dist/ui/components/ui/slider.d.cts +17 -8
- package/dist/ui/components/ui/slider.d.ts +17 -8
- package/dist/ui/components/ui/slider.js +15 -15
- package/dist/ui/components/ui/slider.js.map +1 -1
- package/dist/ui/components/ui/spinner.cjs.map +1 -1
- package/dist/ui/components/ui/spinner.d.cts +13 -1
- package/dist/ui/components/ui/spinner.d.ts +13 -1
- package/dist/ui/components/ui/spinner.js.map +1 -1
- package/dist/ui/components/ui/switch.cjs +1 -1
- package/dist/ui/components/ui/switch.cjs.map +1 -1
- package/dist/ui/components/ui/switch.d.cts +30 -1
- package/dist/ui/components/ui/switch.d.ts +30 -1
- package/dist/ui/components/ui/switch.js +18 -16
- package/dist/ui/components/ui/switch.js.map +1 -1
- package/dist/ui/components/ui/table.cjs +1 -1
- package/dist/ui/components/ui/table.cjs.map +1 -1
- package/dist/ui/components/ui/table.d.cts +151 -11
- package/dist/ui/components/ui/table.d.ts +151 -11
- package/dist/ui/components/ui/table.js +78 -62
- package/dist/ui/components/ui/table.js.map +1 -1
- package/dist/ui/components/ui/tabs-components.cjs.map +1 -1
- package/dist/ui/components/ui/tabs-components.d.cts +52 -5
- package/dist/ui/components/ui/tabs-components.d.ts +52 -5
- package/dist/ui/components/ui/tabs-components.js.map +1 -1
- package/dist/ui/components/ui/tabs-variants.cjs.map +1 -1
- package/dist/ui/components/ui/tabs-variants.d.cts +15 -0
- package/dist/ui/components/ui/tabs-variants.d.ts +15 -0
- package/dist/ui/components/ui/tabs-variants.js.map +1 -1
- package/dist/ui/components/ui/textarea.cjs +1 -1
- package/dist/ui/components/ui/textarea.cjs.map +1 -1
- package/dist/ui/components/ui/textarea.d.cts +27 -1
- package/dist/ui/components/ui/textarea.d.ts +27 -1
- package/dist/ui/components/ui/textarea.js +12 -10
- package/dist/ui/components/ui/textarea.js.map +1 -1
- package/dist/ui/components/ui/toast.cjs +1 -1
- package/dist/ui/components/ui/toast.cjs.map +1 -1
- package/dist/ui/components/ui/toast.d.cts +163 -8
- package/dist/ui/components/ui/toast.d.ts +163 -8
- package/dist/ui/components/ui/toast.js +64 -52
- package/dist/ui/components/ui/toast.js.map +1 -1
- package/dist/ui/components/ui/toaster.cjs.map +1 -1
- package/dist/ui/components/ui/toaster.d.cts +12 -3
- package/dist/ui/components/ui/toaster.d.ts +12 -3
- package/dist/ui/components/ui/toaster.js.map +1 -1
- package/dist/ui/components/ui/toggle-components.cjs +1 -1
- package/dist/ui/components/ui/toggle-components.cjs.map +1 -1
- package/dist/ui/components/ui/toggle-components.d.cts +20 -4
- package/dist/ui/components/ui/toggle-components.d.ts +20 -4
- package/dist/ui/components/ui/toggle-components.js +16 -14
- package/dist/ui/components/ui/toggle-components.js.map +1 -1
- package/dist/ui/components/ui/toggle-group.cjs +1 -1
- package/dist/ui/components/ui/toggle-group.cjs.map +1 -1
- package/dist/ui/components/ui/toggle-group.d.cts +42 -3
- package/dist/ui/components/ui/toggle-group.d.ts +42 -3
- package/dist/ui/components/ui/toggle-group.js +22 -18
- package/dist/ui/components/ui/toggle-group.js.map +1 -1
- package/dist/ui/components/ui/toggle-variants.cjs.map +1 -1
- package/dist/ui/components/ui/toggle-variants.d.cts +15 -0
- package/dist/ui/components/ui/toggle-variants.d.ts +15 -0
- package/dist/ui/components/ui/toggle-variants.js.map +1 -1
- package/dist/ui/components/ui/toolbar.cjs.map +1 -1
- package/dist/ui/components/ui/toolbar.d.cts +94 -7
- package/dist/ui/components/ui/toolbar.d.ts +94 -7
- package/dist/ui/components/ui/toolbar.js.map +1 -1
- package/dist/ui/components/ui/tooltip.cjs +1 -1
- package/dist/ui/components/ui/tooltip.cjs.map +1 -1
- package/dist/ui/components/ui/tooltip.d.cts +58 -4
- package/dist/ui/components/ui/tooltip.d.ts +58 -4
- package/dist/ui/components/ui/tooltip.js +26 -24
- package/dist/ui/components/ui/tooltip.js.map +1 -1
- package/dist/ui/lib/hooks/use-gps.cjs.map +1 -1
- package/dist/ui/lib/hooks/use-gps.d.cts +29 -4
- package/dist/ui/lib/hooks/use-gps.d.ts +29 -4
- package/dist/ui/lib/hooks/use-gps.js.map +1 -1
- package/dist/ui/lib/hooks/use-is-client.cjs.map +1 -1
- package/dist/ui/lib/hooks/use-is-client.d.cts +11 -2
- package/dist/ui/lib/hooks/use-is-client.d.ts +11 -2
- package/dist/ui/lib/hooks/use-is-client.js.map +1 -1
- package/dist/ui/lib/hooks/use-keyboard-shortcut.cjs +1 -1
- package/dist/ui/lib/hooks/use-keyboard-shortcut.cjs.map +1 -1
- package/dist/ui/lib/hooks/use-keyboard-shortcut.d.cts +47 -18
- package/dist/ui/lib/hooks/use-keyboard-shortcut.d.ts +47 -18
- package/dist/ui/lib/hooks/use-keyboard-shortcut.js +15 -14
- package/dist/ui/lib/hooks/use-keyboard-shortcut.js.map +1 -1
- package/dist/ui/lib/hooks/use-mobile.cjs.map +1 -1
- package/dist/ui/lib/hooks/use-mobile.d.cts +11 -3
- package/dist/ui/lib/hooks/use-mobile.d.ts +11 -3
- package/dist/ui/lib/hooks/use-mobile.js.map +1 -1
- package/dist/ui/lib/hooks/use-toast.cjs.map +1 -1
- package/dist/ui/lib/hooks/use-toast.d.cts +184 -15
- package/dist/ui/lib/hooks/use-toast.d.ts +184 -15
- package/dist/ui/lib/hooks/use-toast.js.map +1 -1
- package/dist/ui/lib/ime-utils.cjs.map +1 -1
- package/dist/ui/lib/ime-utils.d.cts +40 -13
- package/dist/ui/lib/ime-utils.d.ts +40 -13
- package/dist/ui/lib/ime-utils.js.map +1 -1
- package/dist/ui/lib/utils.cjs.map +1 -1
- package/dist/ui/lib/utils.d.cts +9 -6
- package/dist/ui/lib/utils.d.ts +9 -6
- package/dist/ui/lib/utils.js.map +1 -1
- package/docs/ai.md +34 -1
- package/docs/exports.md +5 -1
- package/docs/index.md +24 -24
- package/docs/migration.md +565 -0
- package/docs/request-form.md +4 -1
- package/docs/tools.md +4 -1
- package/docs/ui.md +4 -1
- package/llms-full.txt +659 -45
- package/llms.txt +4 -0
- package/package.json +57 -22
- package/dist/tools/types/dnd-react19.cjs +0 -1
- package/dist/tools/types/dnd-react19.d.cts +0 -10
- package/dist/tools/types/dnd-react19.d.ts +0 -10
- package/dist/tools/types/dnd-react19.js +0 -1
- package/dist/types/dnd-react19.cjs +0 -1
- package/dist/types/dnd-react19.d.cts +0 -10
- package/dist/types/dnd-react19.d.ts +0 -10
- package/dist/types/dnd-react19.js +0 -1
|
@@ -46,20 +46,16 @@ export type TableHeadBase = {
|
|
|
46
46
|
editable?: boolean;
|
|
47
47
|
};
|
|
48
48
|
/**
|
|
49
|
-
* createColumnsFromHeads
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* @typedef {Object} CreateColumnsOptions
|
|
53
|
-
* @property {string} [locale] - ロケール / Locale for date formatting
|
|
54
|
-
* @property {string} [timezone] - タイムゾーン / Timezone for date formatting
|
|
55
|
-
* @property {string} [arraySeparator] - 配列の結合文字 / Separator for joining array values
|
|
49
|
+
* Compatibility options for {@link createColumnsFromHeads}.
|
|
50
|
+
* @remarks Only arraySeparator is currently consumed; locale and timezone do not affect generated cells.
|
|
51
|
+
* @see createColumnsFromHeads
|
|
56
52
|
*/
|
|
57
53
|
export type CreateColumnsOptions = {
|
|
58
|
-
/**
|
|
54
|
+
/** Reserved compatibility option; currently ignored by createColumnsFromHeads. No locale default is applied here. */
|
|
59
55
|
locale?: string;
|
|
60
|
-
/**
|
|
56
|
+
/** Reserved compatibility option; currently ignored by createColumnsFromHeads. No timezone default is applied here. */
|
|
61
57
|
timezone?: string;
|
|
62
|
-
/**
|
|
58
|
+
/** Separator for joining array values; defaults to " / ". */
|
|
63
59
|
arraySeparator?: string;
|
|
64
60
|
};
|
|
65
61
|
/**
|
|
@@ -71,9 +67,12 @@ export type CreateColumnsOptions = {
|
|
|
71
67
|
* @returns {unknown} 指定パスの値、存在しない場合はundefined / The value at the path
|
|
72
68
|
*
|
|
73
69
|
* @example
|
|
74
|
-
*
|
|
75
|
-
* getNestedValue
|
|
76
|
-
*
|
|
70
|
+
* ```ts
|
|
71
|
+
* import { getNestedValue } from '@alneas/appkit-react/tools/data-table';
|
|
72
|
+
* const obj = { user: { profile: { name: 'John' } } };
|
|
73
|
+
* getNestedValue(obj, 'user.profile.name'); // 'John'
|
|
74
|
+
* getNestedValue(obj, 'user.email'); // undefined
|
|
75
|
+
* ```
|
|
77
76
|
*/
|
|
78
77
|
export declare const getNestedValue: (obj: KV, path: string) => unknown;
|
|
79
78
|
/**
|
|
@@ -82,8 +81,12 @@ export declare const getNestedValue: (obj: KV, path: string) => unknown;
|
|
|
82
81
|
* Each generator returns a function that takes a row and returns a formatted string.
|
|
83
82
|
*
|
|
84
83
|
* @example
|
|
84
|
+
* ```ts
|
|
85
|
+
* import { cellGenerators } from '@alneas/appkit-react/tools/data-table';
|
|
86
|
+
* const rowData = { createdAt: new Date(2026, 0, 15) };
|
|
85
87
|
* const dateCell = cellGenerators.Date('createdAt');
|
|
86
|
-
* const formatted = dateCell(rowData);
|
|
88
|
+
* const formatted = dateCell(rowData);
|
|
89
|
+
* ```
|
|
87
90
|
*/
|
|
88
91
|
export declare const cellGenerators: {
|
|
89
92
|
/**
|
|
@@ -127,7 +130,11 @@ export declare const cellGenerators: {
|
|
|
127
130
|
* @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function
|
|
128
131
|
*
|
|
129
132
|
* @example
|
|
130
|
-
*
|
|
133
|
+
* ```ts
|
|
134
|
+
* import { cellGenerators } from '@alneas/appkit-react/tools/data-table';
|
|
135
|
+
* const statusCell = cellGenerators.Option('status', { 0: 'Pending', 1: 'Complete' });
|
|
136
|
+
* const label = statusCell({ status: 1 }); // 'Complete'
|
|
137
|
+
* ```
|
|
131
138
|
*/
|
|
132
139
|
Option: (field: string, options?: Record<string | number, string>) => (row: KV) => string;
|
|
133
140
|
/**
|
|
@@ -178,25 +185,25 @@ export declare const timeSort: SortingFn<KV>;
|
|
|
178
185
|
*/
|
|
179
186
|
export declare const trimmedSort: SortingFn<KV>;
|
|
180
187
|
/**
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
* -
|
|
187
|
-
* -
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
* @param {TableHeadBase[]} heads - ヘッダー定義の配列 / Array of header definitions
|
|
191
|
-
* @param {CreateColumnsOptions} [options] - オプション設定 / Optional configuration
|
|
192
|
-
* @returns {ColumnDef<KV>[]} TanStack Tableのカラム定義配列 / Array of column definitions
|
|
193
|
-
*
|
|
188
|
+
* Creates table column definitions from declarative headers and built-in cell generators.
|
|
189
|
+
* @param heads - Header definitions in display order; field selects a row path and id can
|
|
190
|
+
* override the source path. Cell type defaults to String and sorting is enabled unless explicitly false.
|
|
191
|
+
* @param options - Array formatting options; see {@link CreateColumnsOptions}. arraySeparator
|
|
192
|
+
* defaults to " / "; locale and timezone are accepted but ignored by this function.
|
|
193
|
+
* @returns A newly allocated column-definition array; each definition closes over its header configuration.
|
|
194
|
+
* @remarks Date/Time cells receive only the field name and use their cell-generator defaults;
|
|
195
|
+
* passing locale/timezone here does not change them. Custom head.cell receives the original row.
|
|
196
|
+
* The generated JSX uses Appkit UI components; import Appkit CSS in the rendering host.
|
|
194
197
|
* @example
|
|
198
|
+
* ```tsx
|
|
199
|
+
* import { createColumnsFromHeads } from '@alneas/appkit-react/tools/data-table';
|
|
200
|
+
* import '@alneas/appkit-react/styles';
|
|
195
201
|
* const columns = createColumnsFromHeads([
|
|
196
|
-
* { field: 'name', text: '
|
|
197
|
-
* { field: 'birthday', text: '
|
|
198
|
-
* { field: 'status', text: '
|
|
199
|
-
* ]);
|
|
202
|
+
* { field: 'name', text: 'Name' },
|
|
203
|
+
* { field: 'birthday', text: 'Birthday', type: 'Date' },
|
|
204
|
+
* { field: 'status', text: 'Status', type: 'Option', options: { 0: 'Pending', 1: 'Done' } },
|
|
205
|
+
* ], { arraySeparator: ', ' });
|
|
206
|
+
* ```
|
|
200
207
|
*/
|
|
201
208
|
export declare const createColumnsFromHeads: (heads: TableHeadBase[], options?: CreateColumnsOptions) => ColumnDef<KV>[];
|
|
202
209
|
/**
|
|
@@ -208,9 +215,12 @@ export declare const createColumnsFromHeads: (heads: TableHeadBase[], options?:
|
|
|
208
215
|
* @returns {string} 結合された文字列、空の場合は空文字列 / Joined string or empty string
|
|
209
216
|
*
|
|
210
217
|
* @example
|
|
211
|
-
*
|
|
212
|
-
* joinValues
|
|
213
|
-
* joinValues(); //
|
|
218
|
+
* ```ts
|
|
219
|
+
* import { joinValues } from '@alneas/appkit-react/tools/data-table';
|
|
220
|
+
* joinValues(['a', 'b', 'c']); // 'a / b / c'
|
|
221
|
+
* joinValues(['a', 'b'], ', '); // 'a, b'
|
|
222
|
+
* joinValues(); // ''
|
|
223
|
+
* ```
|
|
214
224
|
*/
|
|
215
225
|
export declare const joinValues: (value?: string[], separator?: string) => string;
|
|
216
226
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-utils.js","names":["formatDate","formatTime","getAge","getNestedValue","path","current","key","obj","cellGenerators","value","row","field","date_utils_exports","age","options","separator","timeRegex","compareTimeStrings","aMatch","a","bMatch","b","aH","aM","bH","bM","timeSort","rawA","rowA","columnId","rawB","rowB","aEmpty","bEmpty","timeComparison","trimmedSort","createColumnsFromHeads","heads","dbField","head","cellType","columnDef","val","numericCell","x","id","y","xn","yn","dateCell","timeCell","timeStringCell","ageCell","optionCell","arrayCell","arraySeparator","stringCell","joinValues","filterDataByMongoQuery","query","data","matchRow","subQuery","q","rowVal","isDateField","schema","op","opVal","regexVal","rowStr","caseInsensitive","normalizedRow","normalizedQuery","r","compareRow","compareQuery"],"sources":["../../../../src/tools/components/data-table/table-utils.ts"],"sourcesContent":["/**\n * @fileoverview Table utility functions for DataTable component\n *\n * Provides:\n * - `getNestedValue` - Access nested object properties via dot notation\n * - `cellGenerators` - Pre-built cell formatters for common types\n * - `createColumnsFromHeads` - Create column definitions declaratively\n * - `timeSort`, `trimmedSort` - Custom sorting functions\n *\n * @module data-table/table-utils\n */\n\nimport { ColumnDef, Row, SortingFn } from './table-engine';\nimport { formatDate, formatTime, getAge } from \"../../lib/date-utils\";\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/**\n * 汎用キーバリューオブジェクト型\n * Generic key-value object type for table row data\n * @typedef {Record<string, unknown>} KV\n */\n\nexport type KV = Record<string, unknown>;\n\n/**\n * セルタイプの種類\n * Available cell generator types\n * @typedef {'Date' | 'Time' | 'TimeString' | 'Age' | 'Option' | 'String' | 'Array'} CellType\n */\nexport type CellType =\n | 'Date'\n | 'Time'\n | 'TimeString'\n | 'Age'\n | 'Option'\n | 'String'\n | 'Array'\n | 'Boolean'\n | 'Number';\n\n/**\n * テーブルヘッダーの基本定義\n * Base type for table column header definitions\n *\n * @typedef {Object} TableHeadBase\n * @property {string} field - カラムの一意識別子 / Unique column identifier\n * @property {string} text - ヘッダーの表示テキスト / Display text for the column header\n * @property {string} [id] - ソート/クエリ用のDBフィールド名 / Database field name for sorting\n * @property {CellType} [type] - セルタイプ / Logical cell type, defaults to \"String\"\n * @property {Record<string | number, string>} [options] - Optionタイプ用のマッピング / Options mapping\n * @property {Function} [accessorFn] - カスタムアクセサー関数 / Custom accessor function\n * @property {Function} [cell] - カスタムセルレンダラー / Custom cell renderer\n * @property {boolean} [enableSorting] - ソートを有効にするか / Enable sorting for this column\n */\nexport type TableHeadBase = {\n /** カラムの一意識別子 / Unique column identifier */\n field: string;\n /** ヘッダーの表示テキスト / Display text for the column header */\n text: string;\n /** ソート/クエリ用のDBフィールド名(省略時はfieldと同じ) / Optional database field name for sorting/querying */\n id?: string;\n /** セルタイプ(省略時は\"String\") / Logical cell type, defaults to \"String\" */\n type?: CellType;\n /** Optionタイプ用のオプションマッピング / Options mapping for Option-type cells */\n options?: Record<string | number, string>;\n /** カスタムアクセサー関数 / Optional accessor function */\n accessorFn?: (row: KV) => unknown;\n /** カスタムセルレンダラー / Optional custom cell renderer */\n cell?: (row: KV) => React.ReactNode;\n /** ソートを無効にするか / Disable sorting for this column */\n enableSorting?: boolean;\n /** インライン編集を有効にする / Enable inline editing for this column */\n editable?: boolean;\n};\n\n/**\n * createColumnsFromHeads のオプション\n * Options for createColumnsFromHeads\n *\n * @typedef {Object} CreateColumnsOptions\n * @property {string} [locale] - ロケール / Locale for date formatting\n * @property {string} [timezone] - タイムゾーン / Timezone for date formatting\n * @property {string} [arraySeparator] - 配列の結合文字 / Separator for joining array values\n */\nexport type CreateColumnsOptions = {\n /** ロケール(日付フォーマット用) / Locale for date formatting */\n locale?: string;\n /** タイムゾーン(日付フォーマット用) / Timezone for date formatting */\n timezone?: string;\n /** 配列の結合文字 / Separator for joining array values */\n arraySeparator?: string;\n};\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * ドット記法でネストされた値を取得する\n * Retrieves a nested value from an object using a dot-notation path.\n *\n * @param {KV} obj - 走査するオブジェクト / The object to traverse\n * @param {string} path - ドット記法のパス / Dot-notation path (e.g., \"user.profile.name\")\n * @returns {unknown} 指定パスの値、存在しない場合はundefined / The value at the path\n *\n * @example\n * const obj = { user: { profile: { name: \"John\" } } };\n * getNestedValue(obj, \"user.profile.name\"); // \"John\"\n * getNestedValue(obj, \"user.email\"); // undefined\n */\nexport const getNestedValue = (obj: KV, path: string): unknown => {\n return path.split('.').reduce<unknown>((current, key) => {\n if (\n current &&\n typeof current === 'object' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'prototype' &&\n Object.prototype.hasOwnProperty.call(current, key)\n ) {\n return (current as Record<string, unknown>)[key];\n }\n return undefined;\n }, obj);\n};\n\n// =============================================================================\n// Cell Generators\n// =============================================================================\n\n/**\n * セルジェネレーター関数群\n * Cell generators for rendering different data types in table cells.\n * Each generator returns a function that takes a row and returns a formatted string.\n *\n * @example\n * const dateCell = cellGenerators.Date('createdAt');\n * const formatted = dateCell(rowData); // \"2024/01/15\"\n */\nexport const cellGenerators = {\n /**\n * 日付値をローカライズされた日付文字列にフォーマットする\n * Formats a date value as localized date string.\n *\n * @param {string} field - データフィールド名 / Field name to access\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n */\n Date:\n (field: string) =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n if (!value) return '';\n return formatDate(new Date(value as string | number | Date));\n },\n\n /**\n * タイムスタンプをローカライズされた時刻文字列にフォーマットする\n * Formats a timestamp as localized time string (HH:mm).\n *\n * @param {string} field - データフィールド名 / Field name to access\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n */\n Time:\n (field: string) =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n if (!value) return '';\n return formatTime(new Date(value as string | number | Date));\n },\n\n /**\n * 時刻文字列(HH:mm)をそのまま表示する\n * Renders a time string (HH:mm) directly without conversion.\n *\n * @param {string} field - データフィールド名 / Field name to access\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n */\n TimeString:\n (field: string) =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n return (value as string) || '';\n },\n\n /**\n * 生年月日から年齢を計算して表示する\n * Calculates and formats age from a birth date value.\n *\n * @param {string} field - 生年月日フィールド名 / Field name containing birth date\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n */\n Age:\n (field: string) =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n if (!value) return '';\n const age = getAge(new Date(value as string | number | Date));\n return age !== null ? String(age) : '';\n },\n\n /**\n * オプションマッピングを使って値をラベルに変換する\n * Maps a value to its label using the provided options mapping.\n *\n * @param {string} field - データフィールド名 / Field name to access\n * @param {Record<string | number, string>} [options] - 値→ラベルのマッピング / Value to label mapping\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n *\n * @example\n * const statusCell = cellGenerators.Option('status', { 0: '未処理', 1: '完了' });\n */\n Option:\n (field: string, options?: Record<string | number, string>) =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n if (value === undefined || value === null) return '';\n if (options && (typeof value === 'string' || typeof value === 'number') && value in options) {\n return options[value];\n }\n return String(value);\n },\n\n /**\n * 文字列値を表示する(ネストフィールド対応)\n * Formats a string value, supporting nested field access.\n *\n * @param {string} field - データフィールド名 / Field name to access\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n */\n /** Finite numeric values retain their numeric accessor for sorting. */\n Number: (field: string) => (row: KV): string => {\n const value = getNestedValue(row, field);\n return typeof value === 'number' && Number.isFinite(value) ? String(value) : '';\n },\n String:\n (field: string) =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n return value?.toString() || '';\n },\n\n /**\n * 配列値をセパレータで結合する\n * Formats an array value by joining elements with a separator.\n *\n * @param {string} field - データフィールド名 / Field name to access\n * @param {string} [separator=' / '] - 結合文字 / Separator string\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n */\n Array:\n (field: string, separator = ' / ') =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n return Array.isArray(value) && value.length ? value.join(separator) : '';\n },\n};\n\n// =============================================================================\n// Custom Sorting Functions\n// =============================================================================\n\n/** 時刻文字列のパターン (H:mm or HH:mm) */\nconst timeRegex = /^(\\d{1,2}):(\\d{2})$/;\n\n/**\n * 2つの時刻文字列を数値比較する\n * @param {string} a - 時刻文字列A\n * @param {string} b - 時刻文字列B\n * @returns {number | null} 比較結果 (負=a<b, 正=a>b, 0=等しい, null=比較不可)\n */\nconst compareTimeStrings = (a: string, b: string): number | null => {\n const aMatch = a.match(timeRegex);\n const bMatch = b.match(timeRegex);\n\n if (aMatch && bMatch) {\n const aH = parseInt(aMatch[1], 10);\n const aM = parseInt(aMatch[2], 10);\n const bH = parseInt(bMatch[1], 10);\n const bM = parseInt(bMatch[2], 10);\n\n if (aH !== bH) return aH - bH;\n return aM - bM;\n }\n return null;\n};\n\n/**\n * 時刻文字列用のカスタムソート関数\n * H:mm/HH:mm形式の時刻を正しく数値順にソートする。\n * 空の値は先頭に配置される。\n *\n * Custom sorting function for time strings (H:mm/HH:mm format).\n * Correctly sorts times numerically. Empty values are sorted first.\n *\n * @param {Row<KV>} rowA - 行A / Row A to compare\n * @param {Row<KV>} rowB - 行B / Row B to compare\n * @param {string} columnId - カラムID / Column ID to sort by\n * @returns {number} ソート順序 / Sort order (-1, 0, or 1)\n */\nexport const timeSort: SortingFn<KV> = (rowA: Row<KV>, rowB: Row<KV>, columnId: string): number => {\n const rawA = rowA.getValue(columnId);\n const rawB = rowB.getValue(columnId);\n\n let a = rawA === null || rawA === undefined ? '' : rawA;\n let b = rawB === null || rawB === undefined ? '' : rawB;\n\n if (typeof a === 'string') a = a.trim();\n if (typeof b === 'string') b = b.trim();\n\n const aEmpty = a === '';\n const bEmpty = b === '';\n\n if (aEmpty && bEmpty) return 0;\n if (aEmpty) return -1;\n if (bEmpty) return 1;\n\n if (typeof a === 'string' && typeof b === 'string') {\n const timeComparison = compareTimeStrings(a, b);\n if (timeComparison !== null) return timeComparison;\n }\n\n if ((a as string) < (b as string)) return -1;\n if ((a as string) > (b as string)) return 1;\n return 0;\n};\n\n/**\n * トリム済み文字列用のカスタムソート関数\n * 空の値を一貫して処理する(空の値は先頭に配置)。\n *\n * Custom sorting function for trimmed strings.\n * Handles empty values consistently (empty values sorted first).\n *\n * @param {Row<KV>} rowA - 行A / Row A to compare\n * @param {Row<KV>} rowB - 行B / Row B to compare\n * @param {string} columnId - カラムID / Column ID to sort by\n * @returns {number} ソート順序 / Sort order (-1, 0, or 1)\n */\nexport const trimmedSort: SortingFn<KV> = (\n rowA: Row<KV>,\n rowB: Row<KV>,\n columnId: string,\n): number => {\n const rawA = rowA.getValue(columnId);\n const rawB = rowB.getValue(columnId);\n\n let a = rawA === null || rawA === undefined ? '' : rawA;\n let b = rawB === null || rawB === undefined ? '' : rawB;\n\n if (typeof a === 'string') a = a.trim();\n if (typeof b === 'string') b = b.trim();\n\n const aEmpty = a === '';\n const bEmpty = b === '';\n\n if (aEmpty && bEmpty) return 0;\n if (aEmpty) return -1;\n if (bEmpty) return 1;\n\n if (typeof a === 'number' && typeof b === 'number') {\n return a - b;\n }\n\n if ((a as string) < (b as string)) return -1;\n if ((a as string) > (b as string)) return 1;\n return 0;\n};\n\n// =============================================================================\n// Column Creation Helper\n// =============================================================================\n\n/**\n * 宣言的なヘッダー定義からTanStack Tableのカラム定義を生成する\n * Creates TanStack Table column definitions from a declarative TableHeadBase array.\n *\n * デフォルト動作:\n * - 論理的な`type`を`cellGenerators`にマッピング\n * - Optionセル用の`options`マッピングを使用\n * - TimeString型には`timeSort`を適用\n * - その他の型には`trimmedSort`を適用\n *\n * @param {TableHeadBase[]} heads - ヘッダー定義の配列 / Array of header definitions\n * @param {CreateColumnsOptions} [options] - オプション設定 / Optional configuration\n * @returns {ColumnDef<KV>[]} TanStack Tableのカラム定義配列 / Array of column definitions\n *\n * @example\n * const columns = createColumnsFromHeads([\n * { field: 'name', text: '氏名' },\n * { field: 'birthday', text: '生年月日', type: 'Date' },\n * { field: 'status', text: '状態', type: 'Option', options: { 0: '未処理', 1: '完了' } },\n * ]);\n */\nexport const createColumnsFromHeads = (\n heads: TableHeadBase[],\n options?: CreateColumnsOptions,\n): ColumnDef<KV>[] => {\n const { arraySeparator = ' / ' } = options || {};\n\n return heads.map((head) => {\n const dbField = head.id || head.field;\n const cellType = head.type || 'String';\n\n const columnDef: ColumnDef<KV> = {\n id: head.field,\n header: head.text,\n enableSorting: head.enableSorting !== false,\n accessorFn: (row: KV) => {\n const val = getNestedValue(row, dbField);\n if (val === null || val === undefined || val === '') return '';\n if (typeof val === 'string' && val.trim() === '') return '';\n return val;\n },\n sortFn: trimmedSort,\n };\n\n if (head.accessorFn) {\n columnDef.accessorFn = head.accessorFn;\n }\n\n if (head.cell) {\n columnDef.cell = ({ row }: { row: { original: KV } }) => head.cell!(row.original);\n } else if (cellType === 'Number') {\n const numericCell = cellGenerators.Number(dbField);\n columnDef.cell = ({ row }: { row: { original: KV } }) => numericCell(row.original);\n columnDef.sortFn = (a, b, id) => {\n const x = a.getValue(id), y = b.getValue(id);\n const xn = typeof x === 'number' && Number.isFinite(x);\n const yn = typeof y === 'number' && Number.isFinite(y);\n return xn && yn ? x - y : xn ? 1 : yn ? -1 : 0;\n };\n } else if (cellType === 'Date') {\n const dateCell = cellGenerators.Date(dbField);\n columnDef.cell = ({ row }: { row: { original: KV } }) => dateCell(row.original);\n } else if (cellType === 'Time') {\n const timeCell = cellGenerators.Time(dbField);\n columnDef.cell = ({ row }: { row: { original: KV } }) => timeCell(row.original);\n } else if (cellType === 'TimeString') {\n const timeStringCell = cellGenerators.TimeString(dbField);\n columnDef.cell = ({ row }: { row: { original: KV } }) => timeStringCell(row.original);\n columnDef.sortFn = timeSort;\n } else if (cellType === 'Age') {\n const ageCell = cellGenerators.Age(dbField);\n columnDef.cell = ({ row }: { row: { original: KV } }) => ageCell(row.original);\n } else if (cellType === 'Option') {\n const optionCell = cellGenerators.Option(dbField, head.options);\n columnDef.cell = ({ row }: { row: { original: KV } }) => optionCell(row.original);\n } else if (cellType === 'Boolean') {\n // Default boolean display (editable version handled in DataTableView)\n columnDef.cell = ({ row }: { row: { original: KV } }) => {\n const val = getNestedValue(row.original, dbField);\n return val ? '✓' : '-';\n };\n } else if (cellType === 'Array') {\n const arrayCell = cellGenerators.Array(dbField, arraySeparator);\n columnDef.cell = ({ row }: { row: { original: KV } }) => arrayCell(row.original);\n } else {\n const stringCell = cellGenerators.String(dbField);\n columnDef.cell = ({ row }: { row: { original: KV } }) => stringCell(row.original);\n }\n\n // Store metadata for editable columns (used by DataTableView)\n if (head.editable) {\n columnDef.meta = {\n editable: true,\n field: dbField,\n type: cellType,\n options: head.options,\n };\n }\n\n return columnDef;\n });\n};\n\n/**\n * 配列を指定のセパレータで結合する\n * Joins an array of strings with the specified separator.\n *\n * @param {string[]} [value] - 結合する文字列配列 / Array of strings to join\n * @param {string} [separator=' / '] - セパレータ / Separator string\n * @returns {string} 結合された文字列、空の場合は空文字列 / Joined string or empty string\n *\n * @example\n * joinValues(['a', 'b', 'c']); // \"a / b / c\"\n * joinValues(['a', 'b'], ', '); // \"a, b\"\n * joinValues(); // \"\"\n */\nexport const joinValues = (value?: string[], separator = ' / '): string =>\n value && value.length ? value.join(separator) : '';\n\n/**\n * MongoDBスタイルのクエリを用いてローカルデータ配列をフィルタリングします(クライアントサイドフィルタリング用)。\n *\n * サポートする演算子:\n * - 完全一致 (値が等しい場合。日付の場合は日付のミリ秒値で比較)\n * - $regex (部分一致、前方一致、後方一致。$options: 'i' による大文字小文字無視をサポート)\n * - $gte, $lte, $gt, $lt (数値、日付の比較)\n * - $in (複数選択のいずれかに一致)\n * - $and (複数条件の論理積)\n * - $or (複数条件の論理和)\n *\n * @param data フィルタリング対象のデータ配列\n * @param query MongoDBスタイルのフィルターオブジェクト\n * @param schema コレクションスキーマ(オプショナル。型推論のために使用)\n * @returns フィルタリング後のデータ配列\n */\nexport function filterDataByMongoQuery<T extends Record<string, any>>(\n data: T[],\n query: Record<string, any>,\n schema?: any,\n): T[] {\n if (!query || Object.keys(query).length === 0) {\n return data;\n }\n\n const matchRow = (row: T, subQuery: Record<string, any>): boolean => {\n for (const [key, val] of Object.entries(subQuery)) {\n if (key === '$and') {\n if (!Array.isArray(val)) continue;\n if (!val.every((q) => matchRow(row, q))) {\n return false;\n }\n continue;\n }\n if (key === '$or') {\n if (!Array.isArray(val)) continue;\n if (!val.some((q) => matchRow(row, q))) {\n return false;\n }\n continue;\n }\n\n const rowVal = getNestedValue(row, key);\n const schemaField = schema?.[key];\n const isDateField = schemaField?.type === 'date' || rowVal instanceof Date;\n\n if (val && typeof val === 'object' && !(val instanceof Date)) {\n // MongoDB-style operators\n for (const [op, opVal] of Object.entries(val)) {\n if (op === '$regex') {\n const regexVal = String(opVal);\n // Limit pattern length to prevent pathological regular expressions (ReDoS)\n if (regexVal.length > 256) return false;\n\n const rowStr = rowVal !== undefined && rowVal !== null ? String(rowVal) : '';\n const options = (val as any).$options || '';\n const caseInsensitive = options.includes('i');\n\n try {\n const regex = new RegExp(regexVal, caseInsensitive ? 'i' : '');\n if (!regex.test(rowStr)) return false;\n } catch (_e) {\n const normalizedRow = caseInsensitive ? rowStr.toLowerCase() : rowStr;\n const normalizedQuery = caseInsensitive ? regexVal.toLowerCase() : regexVal;\n if (!normalizedRow.includes(normalizedQuery)) return false;\n }\n } else if (op === '$options') {\n continue;\n } else if (op === '$in') {\n if (!Array.isArray(opVal)) return false;\n const rowArr = Array.isArray(rowVal) ? rowVal : [rowVal];\n const hasMatch = rowArr.some((r) =>\n opVal.some((q) => {\n if (isDateField && r && q) {\n return new Date(r as any).getTime() === new Date(q as any).getTime();\n }\n return String(r) === String(q);\n }),\n );\n if (!hasMatch) return false;\n } else if (op === '$gte' || op === '$gt' || op === '$lte' || op === '$lt') {\n if (rowVal === undefined || rowVal === null || rowVal === '') return false;\n\n const compareRow = isDateField ? new Date(rowVal as any).getTime() : Number(rowVal);\n const compareQuery = isDateField ? new Date(opVal as any).getTime() : Number(opVal);\n\n if (isNaN(compareRow) || isNaN(compareQuery)) return false;\n\n if (op === '$gte' && !(compareRow >= compareQuery)) return false;\n if (op === '$gt' && !(compareRow > compareQuery)) return false;\n if (op === '$lte' && !(compareRow <= compareQuery)) return false;\n if (op === '$lt' && !(compareRow < compareQuery)) return false;\n }\n }\n } else {\n // Exact match\n if (rowVal === undefined || rowVal === null || rowVal === '') {\n if (val !== undefined && val !== null && val !== '') return false;\n } else if (isDateField && rowVal && val) {\n if (new Date(rowVal as any).getTime() !== new Date(val as any).getTime()) return false;\n } else {\n if (String(rowVal) !== String(val)) return false;\n }\n }\n }\n return true;\n };\n\n return data.filter((row) => matchRow(row, query));\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table-utils.js","names":["formatDate","formatTime","getAge","getNestedValue","path","current","key","obj","cellGenerators","value","row","field","date_utils_exports","age","options","separator","timeRegex","compareTimeStrings","aMatch","a","bMatch","b","aH","aM","bH","bM","timeSort","rawA","rowA","columnId","rawB","rowB","aEmpty","bEmpty","timeComparison","trimmedSort","createColumnsFromHeads","heads","dbField","head","cellType","columnDef","val","numericCell","x","id","y","xn","yn","dateCell","timeCell","timeStringCell","ageCell","optionCell","arrayCell","arraySeparator","stringCell","joinValues","filterDataByMongoQuery","query","data","matchRow","subQuery","q","rowVal","isDateField","schema","op","opVal","regexVal","rowStr","caseInsensitive","normalizedRow","normalizedQuery","r","compareRow","compareQuery"],"sources":["../../../../src/tools/components/data-table/table-utils.ts"],"sourcesContent":["/**\n * @fileoverview Table utility functions for DataTable component\n *\n * Provides:\n * - `getNestedValue` - Access nested object properties via dot notation\n * - `cellGenerators` - Pre-built cell formatters for common types\n * - `createColumnsFromHeads` - Create column definitions declaratively\n * - `timeSort`, `trimmedSort` - Custom sorting functions\n *\n * @module data-table/table-utils\n */\n\nimport { ColumnDef, Row, SortingFn } from './table-engine';\nimport { formatDate, formatTime, getAge } from \"../../lib/date-utils\";\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/**\n * 汎用キーバリューオブジェクト型\n * Generic key-value object type for table row data\n * @typedef {Record<string, unknown>} KV\n */\n\nexport type KV = Record<string, unknown>;\n\n/**\n * セルタイプの種類\n * Available cell generator types\n * @typedef {'Date' | 'Time' | 'TimeString' | 'Age' | 'Option' | 'String' | 'Array'} CellType\n */\nexport type CellType =\n | 'Date'\n | 'Time'\n | 'TimeString'\n | 'Age'\n | 'Option'\n | 'String'\n | 'Array'\n | 'Boolean'\n | 'Number';\n\n/**\n * テーブルヘッダーの基本定義\n * Base type for table column header definitions\n *\n * @typedef {Object} TableHeadBase\n * @property {string} field - カラムの一意識別子 / Unique column identifier\n * @property {string} text - ヘッダーの表示テキスト / Display text for the column header\n * @property {string} [id] - ソート/クエリ用のDBフィールド名 / Database field name for sorting\n * @property {CellType} [type] - セルタイプ / Logical cell type, defaults to \"String\"\n * @property {Record<string | number, string>} [options] - Optionタイプ用のマッピング / Options mapping\n * @property {Function} [accessorFn] - カスタムアクセサー関数 / Custom accessor function\n * @property {Function} [cell] - カスタムセルレンダラー / Custom cell renderer\n * @property {boolean} [enableSorting] - ソートを有効にするか / Enable sorting for this column\n */\nexport type TableHeadBase = {\n /** カラムの一意識別子 / Unique column identifier */\n field: string;\n /** ヘッダーの表示テキスト / Display text for the column header */\n text: string;\n /** ソート/クエリ用のDBフィールド名(省略時はfieldと同じ) / Optional database field name for sorting/querying */\n id?: string;\n /** セルタイプ(省略時は\"String\") / Logical cell type, defaults to \"String\" */\n type?: CellType;\n /** Optionタイプ用のオプションマッピング / Options mapping for Option-type cells */\n options?: Record<string | number, string>;\n /** カスタムアクセサー関数 / Optional accessor function */\n accessorFn?: (row: KV) => unknown;\n /** カスタムセルレンダラー / Optional custom cell renderer */\n cell?: (row: KV) => React.ReactNode;\n /** ソートを無効にするか / Disable sorting for this column */\n enableSorting?: boolean;\n /** インライン編集を有効にする / Enable inline editing for this column */\n editable?: boolean;\n};\n\n/**\n * Compatibility options for {@link createColumnsFromHeads}.\n * @remarks Only arraySeparator is currently consumed; locale and timezone do not affect generated cells.\n * @see createColumnsFromHeads\n */\nexport type CreateColumnsOptions = {\n /** Reserved compatibility option; currently ignored by createColumnsFromHeads. No locale default is applied here. */\n locale?: string;\n /** Reserved compatibility option; currently ignored by createColumnsFromHeads. No timezone default is applied here. */\n timezone?: string;\n /** Separator for joining array values; defaults to \" / \". */\n arraySeparator?: string;\n};\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * ドット記法でネストされた値を取得する\n * Retrieves a nested value from an object using a dot-notation path.\n *\n * @param {KV} obj - 走査するオブジェクト / The object to traverse\n * @param {string} path - ドット記法のパス / Dot-notation path (e.g., \"user.profile.name\")\n * @returns {unknown} 指定パスの値、存在しない場合はundefined / The value at the path\n *\n * @example\n * ```ts\n * import { getNestedValue } from '@alneas/appkit-react/tools/data-table';\n * const obj = { user: { profile: { name: 'John' } } };\n * getNestedValue(obj, 'user.profile.name'); // 'John'\n * getNestedValue(obj, 'user.email'); // undefined\n * ```\n */\nexport const getNestedValue = (obj: KV, path: string): unknown => {\n return path.split('.').reduce<unknown>((current, key) => {\n if (\n current &&\n typeof current === 'object' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'prototype' &&\n Object.prototype.hasOwnProperty.call(current, key)\n ) {\n return (current as Record<string, unknown>)[key];\n }\n return undefined;\n }, obj);\n};\n\n// =============================================================================\n// Cell Generators\n// =============================================================================\n\n/**\n * セルジェネレーター関数群\n * Cell generators for rendering different data types in table cells.\n * Each generator returns a function that takes a row and returns a formatted string.\n *\n * @example\n * ```ts\n * import { cellGenerators } from '@alneas/appkit-react/tools/data-table';\n * const rowData = { createdAt: new Date(2026, 0, 15) };\n * const dateCell = cellGenerators.Date('createdAt');\n * const formatted = dateCell(rowData);\n * ```\n */\nexport const cellGenerators = {\n /**\n * 日付値をローカライズされた日付文字列にフォーマットする\n * Formats a date value as localized date string.\n *\n * @param {string} field - データフィールド名 / Field name to access\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n */\n Date:\n (field: string) =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n if (!value) return '';\n return formatDate(new Date(value as string | number | Date));\n },\n\n /**\n * タイムスタンプをローカライズされた時刻文字列にフォーマットする\n * Formats a timestamp as localized time string (HH:mm).\n *\n * @param {string} field - データフィールド名 / Field name to access\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n */\n Time:\n (field: string) =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n if (!value) return '';\n return formatTime(new Date(value as string | number | Date));\n },\n\n /**\n * 時刻文字列(HH:mm)をそのまま表示する\n * Renders a time string (HH:mm) directly without conversion.\n *\n * @param {string} field - データフィールド名 / Field name to access\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n */\n TimeString:\n (field: string) =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n return (value as string) || '';\n },\n\n /**\n * 生年月日から年齢を計算して表示する\n * Calculates and formats age from a birth date value.\n *\n * @param {string} field - 生年月日フィールド名 / Field name containing birth date\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n */\n Age:\n (field: string) =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n if (!value) return '';\n const age = getAge(new Date(value as string | number | Date));\n return age !== null ? String(age) : '';\n },\n\n /**\n * オプションマッピングを使って値をラベルに変換する\n * Maps a value to its label using the provided options mapping.\n *\n * @param {string} field - データフィールド名 / Field name to access\n * @param {Record<string | number, string>} [options] - 値→ラベルのマッピング / Value to label mapping\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n *\n * @example\n * ```ts\n * import { cellGenerators } from '@alneas/appkit-react/tools/data-table';\n * const statusCell = cellGenerators.Option('status', { 0: 'Pending', 1: 'Complete' });\n * const label = statusCell({ status: 1 }); // 'Complete'\n * ```\n */\n Option:\n (field: string, options?: Record<string | number, string>) =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n if (value === undefined || value === null) return '';\n if (options && (typeof value === 'string' || typeof value === 'number') && value in options) {\n return options[value];\n }\n return String(value);\n },\n\n /**\n * 文字列値を表示する(ネストフィールド対応)\n * Formats a string value, supporting nested field access.\n *\n * @param {string} field - データフィールド名 / Field name to access\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n */\n /** Finite numeric values retain their numeric accessor for sorting. */\n Number: (field: string) => (row: KV): string => {\n const value = getNestedValue(row, field);\n return typeof value === 'number' && Number.isFinite(value) ? String(value) : '';\n },\n String:\n (field: string) =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n return value?.toString() || '';\n },\n\n /**\n * 配列値をセパレータで結合する\n * Formats an array value by joining elements with a separator.\n *\n * @param {string} field - データフィールド名 / Field name to access\n * @param {string} [separator=' / '] - 結合文字 / Separator string\n * @returns {(row: KV) => string} セルレンダラー関数 / Cell renderer function\n */\n Array:\n (field: string, separator = ' / ') =>\n (row: KV): string => {\n const value = getNestedValue(row, field);\n return Array.isArray(value) && value.length ? value.join(separator) : '';\n },\n};\n\n// =============================================================================\n// Custom Sorting Functions\n// =============================================================================\n\n/** 時刻文字列のパターン (H:mm or HH:mm) */\nconst timeRegex = /^(\\d{1,2}):(\\d{2})$/;\n\n/**\n * 2つの時刻文字列を数値比較する\n * @param {string} a - 時刻文字列A\n * @param {string} b - 時刻文字列B\n * @returns {number | null} 比較結果 (負=a<b, 正=a>b, 0=等しい, null=比較不可)\n */\nconst compareTimeStrings = (a: string, b: string): number | null => {\n const aMatch = a.match(timeRegex);\n const bMatch = b.match(timeRegex);\n\n if (aMatch && bMatch) {\n const aH = parseInt(aMatch[1], 10);\n const aM = parseInt(aMatch[2], 10);\n const bH = parseInt(bMatch[1], 10);\n const bM = parseInt(bMatch[2], 10);\n\n if (aH !== bH) return aH - bH;\n return aM - bM;\n }\n return null;\n};\n\n/**\n * 時刻文字列用のカスタムソート関数\n * H:mm/HH:mm形式の時刻を正しく数値順にソートする。\n * 空の値は先頭に配置される。\n *\n * Custom sorting function for time strings (H:mm/HH:mm format).\n * Correctly sorts times numerically. Empty values are sorted first.\n *\n * @param {Row<KV>} rowA - 行A / Row A to compare\n * @param {Row<KV>} rowB - 行B / Row B to compare\n * @param {string} columnId - カラムID / Column ID to sort by\n * @returns {number} ソート順序 / Sort order (-1, 0, or 1)\n */\nexport const timeSort: SortingFn<KV> = (rowA: Row<KV>, rowB: Row<KV>, columnId: string): number => {\n const rawA = rowA.getValue(columnId);\n const rawB = rowB.getValue(columnId);\n\n let a = rawA === null || rawA === undefined ? '' : rawA;\n let b = rawB === null || rawB === undefined ? '' : rawB;\n\n if (typeof a === 'string') a = a.trim();\n if (typeof b === 'string') b = b.trim();\n\n const aEmpty = a === '';\n const bEmpty = b === '';\n\n if (aEmpty && bEmpty) return 0;\n if (aEmpty) return -1;\n if (bEmpty) return 1;\n\n if (typeof a === 'string' && typeof b === 'string') {\n const timeComparison = compareTimeStrings(a, b);\n if (timeComparison !== null) return timeComparison;\n }\n\n if ((a as string) < (b as string)) return -1;\n if ((a as string) > (b as string)) return 1;\n return 0;\n};\n\n/**\n * トリム済み文字列用のカスタムソート関数\n * 空の値を一貫して処理する(空の値は先頭に配置)。\n *\n * Custom sorting function for trimmed strings.\n * Handles empty values consistently (empty values sorted first).\n *\n * @param {Row<KV>} rowA - 行A / Row A to compare\n * @param {Row<KV>} rowB - 行B / Row B to compare\n * @param {string} columnId - カラムID / Column ID to sort by\n * @returns {number} ソート順序 / Sort order (-1, 0, or 1)\n */\nexport const trimmedSort: SortingFn<KV> = (\n rowA: Row<KV>,\n rowB: Row<KV>,\n columnId: string,\n): number => {\n const rawA = rowA.getValue(columnId);\n const rawB = rowB.getValue(columnId);\n\n let a = rawA === null || rawA === undefined ? '' : rawA;\n let b = rawB === null || rawB === undefined ? '' : rawB;\n\n if (typeof a === 'string') a = a.trim();\n if (typeof b === 'string') b = b.trim();\n\n const aEmpty = a === '';\n const bEmpty = b === '';\n\n if (aEmpty && bEmpty) return 0;\n if (aEmpty) return -1;\n if (bEmpty) return 1;\n\n if (typeof a === 'number' && typeof b === 'number') {\n return a - b;\n }\n\n if ((a as string) < (b as string)) return -1;\n if ((a as string) > (b as string)) return 1;\n return 0;\n};\n\n// =============================================================================\n// Column Creation Helper\n// =============================================================================\n\n/**\n * Creates table column definitions from declarative headers and built-in cell generators.\n * @param heads - Header definitions in display order; field selects a row path and id can\n * override the source path. Cell type defaults to String and sorting is enabled unless explicitly false.\n * @param options - Array formatting options; see {@link CreateColumnsOptions}. arraySeparator\n * defaults to \" / \"; locale and timezone are accepted but ignored by this function.\n * @returns A newly allocated column-definition array; each definition closes over its header configuration.\n * @remarks Date/Time cells receive only the field name and use their cell-generator defaults;\n * passing locale/timezone here does not change them. Custom head.cell receives the original row.\n * The generated JSX uses Appkit UI components; import Appkit CSS in the rendering host.\n * @example\n * ```tsx\n * import { createColumnsFromHeads } from '@alneas/appkit-react/tools/data-table';\n * import '@alneas/appkit-react/styles';\n * const columns = createColumnsFromHeads([\n * { field: 'name', text: 'Name' },\n * { field: 'birthday', text: 'Birthday', type: 'Date' },\n * { field: 'status', text: 'Status', type: 'Option', options: { 0: 'Pending', 1: 'Done' } },\n * ], { arraySeparator: ', ' });\n * ```\n */\nexport const createColumnsFromHeads = (\n heads: TableHeadBase[],\n options?: CreateColumnsOptions,\n): ColumnDef<KV>[] => {\n const { arraySeparator = ' / ' } = options || {};\n\n return heads.map((head) => {\n const dbField = head.id || head.field;\n const cellType = head.type || 'String';\n\n const columnDef: ColumnDef<KV> = {\n id: head.field,\n header: head.text,\n enableSorting: head.enableSorting !== false,\n accessorFn: (row: KV) => {\n const val = getNestedValue(row, dbField);\n if (val === null || val === undefined || val === '') return '';\n if (typeof val === 'string' && val.trim() === '') return '';\n return val;\n },\n sortFn: trimmedSort,\n };\n\n if (head.accessorFn) {\n columnDef.accessorFn = head.accessorFn;\n }\n\n if (head.cell) {\n columnDef.cell = ({ row }: { row: { original: KV } }) => head.cell!(row.original);\n } else if (cellType === 'Number') {\n const numericCell = cellGenerators.Number(dbField);\n columnDef.cell = ({ row }: { row: { original: KV } }) => numericCell(row.original);\n columnDef.sortFn = (a, b, id) => {\n const x = a.getValue(id), y = b.getValue(id);\n const xn = typeof x === 'number' && Number.isFinite(x);\n const yn = typeof y === 'number' && Number.isFinite(y);\n return xn && yn ? x - y : xn ? 1 : yn ? -1 : 0;\n };\n } else if (cellType === 'Date') {\n const dateCell = cellGenerators.Date(dbField);\n columnDef.cell = ({ row }: { row: { original: KV } }) => dateCell(row.original);\n } else if (cellType === 'Time') {\n const timeCell = cellGenerators.Time(dbField);\n columnDef.cell = ({ row }: { row: { original: KV } }) => timeCell(row.original);\n } else if (cellType === 'TimeString') {\n const timeStringCell = cellGenerators.TimeString(dbField);\n columnDef.cell = ({ row }: { row: { original: KV } }) => timeStringCell(row.original);\n columnDef.sortFn = timeSort;\n } else if (cellType === 'Age') {\n const ageCell = cellGenerators.Age(dbField);\n columnDef.cell = ({ row }: { row: { original: KV } }) => ageCell(row.original);\n } else if (cellType === 'Option') {\n const optionCell = cellGenerators.Option(dbField, head.options);\n columnDef.cell = ({ row }: { row: { original: KV } }) => optionCell(row.original);\n } else if (cellType === 'Boolean') {\n // Default boolean display (editable version handled in DataTableView)\n columnDef.cell = ({ row }: { row: { original: KV } }) => {\n const val = getNestedValue(row.original, dbField);\n return val ? '✓' : '-';\n };\n } else if (cellType === 'Array') {\n const arrayCell = cellGenerators.Array(dbField, arraySeparator);\n columnDef.cell = ({ row }: { row: { original: KV } }) => arrayCell(row.original);\n } else {\n const stringCell = cellGenerators.String(dbField);\n columnDef.cell = ({ row }: { row: { original: KV } }) => stringCell(row.original);\n }\n\n // Store metadata for editable columns (used by DataTableView)\n if (head.editable) {\n columnDef.meta = {\n editable: true,\n field: dbField,\n type: cellType,\n options: head.options,\n };\n }\n\n return columnDef;\n });\n};\n\n/**\n * 配列を指定のセパレータで結合する\n * Joins an array of strings with the specified separator.\n *\n * @param {string[]} [value] - 結合する文字列配列 / Array of strings to join\n * @param {string} [separator=' / '] - セパレータ / Separator string\n * @returns {string} 結合された文字列、空の場合は空文字列 / Joined string or empty string\n *\n * @example\n * ```ts\n * import { joinValues } from '@alneas/appkit-react/tools/data-table';\n * joinValues(['a', 'b', 'c']); // 'a / b / c'\n * joinValues(['a', 'b'], ', '); // 'a, b'\n * joinValues(); // ''\n * ```\n */\nexport const joinValues = (value?: string[], separator = ' / '): string =>\n value && value.length ? value.join(separator) : '';\n\n/**\n * MongoDBスタイルのクエリを用いてローカルデータ配列をフィルタリングします(クライアントサイドフィルタリング用)。\n *\n * サポートする演算子:\n * - 完全一致 (値が等しい場合。日付の場合は日付のミリ秒値で比較)\n * - $regex (部分一致、前方一致、後方一致。$options: 'i' による大文字小文字無視をサポート)\n * - $gte, $lte, $gt, $lt (数値、日付の比較)\n * - $in (複数選択のいずれかに一致)\n * - $and (複数条件の論理積)\n * - $or (複数条件の論理和)\n *\n * @param data フィルタリング対象のデータ配列\n * @param query MongoDBスタイルのフィルターオブジェクト\n * @param schema コレクションスキーマ(オプショナル。型推論のために使用)\n * @returns フィルタリング後のデータ配列\n */\nexport function filterDataByMongoQuery<T extends Record<string, any>>(\n data: T[],\n query: Record<string, any>,\n schema?: any,\n): T[] {\n if (!query || Object.keys(query).length === 0) {\n return data;\n }\n\n const matchRow = (row: T, subQuery: Record<string, any>): boolean => {\n for (const [key, val] of Object.entries(subQuery)) {\n if (key === '$and') {\n if (!Array.isArray(val)) continue;\n if (!val.every((q) => matchRow(row, q))) {\n return false;\n }\n continue;\n }\n if (key === '$or') {\n if (!Array.isArray(val)) continue;\n if (!val.some((q) => matchRow(row, q))) {\n return false;\n }\n continue;\n }\n\n const rowVal = getNestedValue(row, key);\n const schemaField = schema?.[key];\n const isDateField = schemaField?.type === 'date' || rowVal instanceof Date;\n\n if (val && typeof val === 'object' && !(val instanceof Date)) {\n // MongoDB-style operators\n for (const [op, opVal] of Object.entries(val)) {\n if (op === '$regex') {\n const regexVal = String(opVal);\n // Limit pattern length to prevent pathological regular expressions (ReDoS)\n if (regexVal.length > 256) return false;\n\n const rowStr = rowVal !== undefined && rowVal !== null ? String(rowVal) : '';\n const options = (val as any).$options || '';\n const caseInsensitive = options.includes('i');\n\n try {\n const regex = new RegExp(regexVal, caseInsensitive ? 'i' : '');\n if (!regex.test(rowStr)) return false;\n } catch (_e) {\n const normalizedRow = caseInsensitive ? rowStr.toLowerCase() : rowStr;\n const normalizedQuery = caseInsensitive ? regexVal.toLowerCase() : regexVal;\n if (!normalizedRow.includes(normalizedQuery)) return false;\n }\n } else if (op === '$options') {\n continue;\n } else if (op === '$in') {\n if (!Array.isArray(opVal)) return false;\n const rowArr = Array.isArray(rowVal) ? rowVal : [rowVal];\n const hasMatch = rowArr.some((r) =>\n opVal.some((q) => {\n if (isDateField && r && q) {\n return new Date(r as any).getTime() === new Date(q as any).getTime();\n }\n return String(r) === String(q);\n }),\n );\n if (!hasMatch) return false;\n } else if (op === '$gte' || op === '$gt' || op === '$lte' || op === '$lt') {\n if (rowVal === undefined || rowVal === null || rowVal === '') return false;\n\n const compareRow = isDateField ? new Date(rowVal as any).getTime() : Number(rowVal);\n const compareQuery = isDateField ? new Date(opVal as any).getTime() : Number(opVal);\n\n if (isNaN(compareRow) || isNaN(compareQuery)) return false;\n\n if (op === '$gte' && !(compareRow >= compareQuery)) return false;\n if (op === '$gt' && !(compareRow > compareQuery)) return false;\n if (op === '$lte' && !(compareRow <= compareQuery)) return false;\n if (op === '$lt' && !(compareRow < compareQuery)) return false;\n }\n }\n } else {\n // Exact match\n if (rowVal === undefined || rowVal === null || rowVal === '') {\n if (val !== undefined && val !== null && val !== '') return false;\n } else if (isDateField && rowVal && val) {\n if (new Date(rowVal as any).getTime() !== new Date(val as any).getTime()) return false;\n } else {\n if (String(rowVal) !== String(val)) return false;\n }\n }\n }\n return true;\n };\n\n return data.filter((row) => matchRow(row, query));\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../ui/components/ui/button-components.cjs"),n=require("../../../ui/components/ui/table.cjs");let r=require("react/jsx-runtime"),i=require("react");i=e.__toESM(i,1);let a=require("lucide-react");function o({columns:e,data:o,emptyMessage:s=`データがありません`,onRemove:c,onAddRow:l,getRowKey:u=(e,t)=>`row-${t}`,renderRowActions:d,renderExtraRow:f,className:p=``,isWrapped:m=!1,zoomLevel:h=0,onRowBlur:g}){let _=(0,i.useRef)(null),v=(0,i.useRef)(l);(0,i.useEffect)(()=>{v.current=l});let y=(0,i.useRef)(new Set);(0,i.useEffect)(()=>{let e=y.current;return()=>{e.forEach(e=>clearTimeout(e)),e.clear()}},[]);let b=e=>e instanceof HTMLElement&&!!e.closest(`[data-searchable-select-portal="true"]`);(0,i.useEffect)(()=>{let e=_.current;if(!e)return;let t=t=>{let n=document.activeElement;if(!n||!e.contains(n)||t.isComposing||n.tagName!==`INPUT`&&n.tagName!==`TEXTAREA`&&n.tagName!==`SELECT`&&n.getAttribute(`role`)!==`combobox`)return;let r=n.closest(`td`);if(!r)return;let i=r.closest(`tr`);if(!i)return;let a=i.closest(`tbody`);if(!a)return;let o=Array.from(a.querySelectorAll(`tr:not([class*="extra"])`)),s=o.indexOf(i),c=Array.from(i.querySelectorAll(`td`)),l=c.indexOf(r),u=null;switch(t.key){case`ArrowRight`:t.preventDefault(),l<c.length-1&&(u=c[l+1]);break;case`ArrowLeft`:t.preventDefault(),l>0&&(u=c[l-1]);break;case`ArrowDown`:if(t.preventDefault(),s<o.length-1){let e=o[s+1],t=Array.from(e.querySelectorAll(`td`));t[l]&&(u=t[l])}break;case`ArrowUp`:if(t.preventDefault(),s>0){let e=o[s-1],t=Array.from(e.querySelectorAll(`td`));t[l]&&(u=t[l])}break;case`Enter`:if(n.tagName!==`TEXTAREA`&&!t.shiftKey){t.preventDefault();let e=s===o.length-1,n=l>=c.length-1,r=(e,t)=>{let n=setTimeout(()=>{y.current.delete(n),e()},t);y.current.add(n)};r(()=>{if(l<c.length-1)u=c[l+1];else if(s<o.length-1){let e=o[s+1],t=Array.from(e.querySelectorAll(`td`));t[0]&&(u=t[0])}else e&&n&&v.current&&(v.current(),r(()=>{let e=Array.from(a.querySelectorAll(`tr:not([class*="extra"])`)),t=e[e.length-1];if(t){let e=t.querySelector(`input, textarea, select, [role="combobox"]`);e&&(e.focus(),e instanceof HTMLInputElement&&e.type!==`number`&&e.select())}},100));if(u){let e=u.querySelector(`input, textarea, select, [role="combobox"]`);e&&(e.focus(),e instanceof HTMLInputElement&&e.type!==`number`&&e.select())}},50)}return;case`Tab`:return}if(u){let e=u.querySelector(`input, textarea, select, [role="combobox"]`);e&&(e.focus(),e instanceof HTMLInputElement&&e.type!==`number`&&e.select())}};return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)},[e,o]);let x=m?`[&_td]:whitespace-normal [&_td_*]:whitespace-normal [&_th]:whitespace-normal`:`[&_td]:whitespace-nowrap [&_th]:whitespace-nowrap`,S=[``,`[&_td]:text-[0.85rem] [&_th]:text-[0.85rem] [&_td_*]:text-[0.85rem] [&_button]:h-7 [&_input]:h-7 [&_select]:h-7`,`[&_td]:text-[0.75rem] [&_th]:text-[0.75rem] [&_td_*]:text-[0.75rem] [&_button]:h-6 [&_input]:h-6 [&_select]:h-6`,`[&_td]:text-[0.65rem] [&_th]:text-[0.65rem] [&_td_*]:text-[0.65rem] [&_button]:h-5 [&_input]:h-5 [&_select]:h-5`,`[&_td]:text-[0.55rem] [&_th]:text-[0.55rem] [&_td_*]:text-[0.55rem] [&_button]:h-4 [&_input]:h-4 [&_select]:h-4`],C=S[Math.min(h,S.length-1)]||``;return(0,r.jsx)(`div`,{className:`${p} ${x} ${C} overflow-x-auto`,children:(0,r.jsxs)(n.Table,{ref:_,children:[(0,r.jsx)(n.TableHeader,{children:(0,r.jsxs)(n.TableRow,{children:[e.map(e=>(0,r.jsx)(n.TableHead,{className:`px-2 py-1 h-auto border border-border align-middle ${e.headerClassName||``}`,style:{textAlign:e.align||`center`,verticalAlign:`middle`,minWidth:e.width},children:e.label},e.key)),d&&(0,r.jsx)(n.TableHead,{className:`px-2 py-1 h-auto`}),c&&(0,r.jsx)(n.TableHead,{className:`px-2 py-1 h-auto`})]})}),(0,r.jsx)(n.TableBody,{children:o.length===0?(0,r.jsx)(n.TableRow,{children:(0,r.jsx)(n.TableCell,{colSpan:e.length+ +!!d+ +!!c,className:`h-24 text-center`,children:s})}):o.map((o,s)=>{let l=u(o,s);return(0,r.jsxs)(i.default.Fragment,{children:[(0,r.jsxs)(n.TableRow,{className:`hover:bg-muted/50`,onBlur:e=>{if(!g)return;let t=e.currentTarget,n=e.relatedTarget;t.contains(n)||b(n)||window.setTimeout(()=>{if(!t.isConnected)return;let e=document.activeElement;t.contains(e)||b(e)||g(s)},0)},children:[e.map(e=>{let t=e.render?e.render(o,s):o[e.key],i=e.isEditable===void 0?!!e.render:e.isEditable;return(0,r.jsx)(n.TableCell,{className:`text-sm border border-border ${i||e.cellClassName?`p-0`:`px-2 py-1`} ${e.align===`center`?`text-center`:e.align===`right`?`text-right`:``} ${e.cellClassName||``}`,children:(0,r.jsx)(`div`,{className:i?`w-full h-full`:``,children:t})},e.key)}),d&&(0,r.jsx)(n.TableCell,{className:`px-1 py-1 text-center`,children:d(o,s)}),c&&(0,r.jsx)(n.TableCell,{className:`px-1 py-1 text-center`,children:(0,r.jsx)(t.Button,{type:`button`,variant:`destructive`,size:`sm`,className:`h-6 w-6 p-0`,onClick:()=>c(s),children:(0,r.jsx)(a.Trash2,{className:`h-3 w-3`})})})]}),f&&(0,r.jsx)(n.TableRow,{className:`bg-muted/50 hover:bg-muted/50`,children:(0,r.jsx)(n.TableCell,{colSpan:e.length+ +!!d+ +!!c,className:`px-4 py-2`,children:f(o,s)})},`${l}-extra`)]},l)})})]})})}exports.EditableTable=o;
|
|
1
|
+
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../ui/components/ui/button-components.cjs"),n=require("../../../ui/components/ui/table.cjs");let r=require("react/jsx-runtime"),i=require("react");i=e.__toESM(i,1);let a=require("lucide-react");function o({columns:e,data:o,emptyMessage:s=`データがありません`,onRemove:c,onAddRow:l,getRowKey:u=(e,t)=>`row-${t}`,renderRowActions:d,renderExtraRow:f,className:p=``,isWrapped:m=!1,zoomLevel:h=0,onRowBlur:g}){let _=(0,i.useRef)(null),v=(0,i.useRef)(l);(0,i.useEffect)(()=>{v.current=l});let y=(0,i.useRef)(new Set);(0,i.useEffect)(()=>{let e=y.current;return()=>{e.forEach(e=>clearTimeout(e)),e.clear()}},[]);let b=e=>e instanceof HTMLElement&&!!e.closest(`[data-searchable-select-portal="true"]`);(0,i.useEffect)(()=>{let e=_.current;if(!e)return;let t=t=>{let n=document.activeElement;if(!n||!e.contains(n)||t.isComposing||n.tagName!==`INPUT`&&n.tagName!==`TEXTAREA`&&n.tagName!==`SELECT`&&n.getAttribute(`role`)!==`combobox`)return;let r=n.closest(`td`);if(!r)return;let i=r.closest(`tr`);if(!i)return;let a=i.closest(`tbody`);if(!a)return;let o=Array.from(a.querySelectorAll(`tr:not([class*="extra"])`)),s=o.indexOf(i),c=Array.from(i.querySelectorAll(`td`)),l=c.indexOf(r),u=null;switch(t.key){case`ArrowRight`:t.preventDefault(),l<c.length-1&&(u=c[l+1]);break;case`ArrowLeft`:t.preventDefault(),l>0&&(u=c[l-1]);break;case`ArrowDown`:if(t.preventDefault(),s<o.length-1){let e=o[s+1],t=Array.from(e.querySelectorAll(`td`));t[l]&&(u=t[l])}break;case`ArrowUp`:if(t.preventDefault(),s>0){let e=o[s-1],t=Array.from(e.querySelectorAll(`td`));t[l]&&(u=t[l])}break;case`Enter`:if(n.tagName!==`TEXTAREA`&&!t.shiftKey){t.preventDefault();let e=s===o.length-1,n=l>=c.length-1,r=(e,t)=>{let n=setTimeout(()=>{y.current.delete(n),e()},t);y.current.add(n)};r(()=>{if(l<c.length-1)u=c[l+1];else if(s<o.length-1){let e=o[s+1],t=Array.from(e.querySelectorAll(`td`));t[0]&&(u=t[0])}else e&&n&&v.current&&(v.current(),r(()=>{let e=Array.from(a.querySelectorAll(`tr:not([class*="extra"])`)),t=e[e.length-1];if(t){let e=t.querySelector(`input, textarea, select, [role="combobox"]`);e&&(e.focus(),e instanceof HTMLInputElement&&e.type!==`number`&&e.select())}},100));if(u){let e=u.querySelector(`input, textarea, select, [role="combobox"]`);e&&(e.focus(),e instanceof HTMLInputElement&&e.type!==`number`&&e.select())}},50)}return;case`Tab`:return}if(u){let e=u.querySelector(`input, textarea, select, [role="combobox"]`);e&&(e.focus(),e instanceof HTMLInputElement&&e.type!==`number`&&e.select())}};return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)},[e,o]);let x=m?`[&_td]:whitespace-normal [&_td_*]:whitespace-normal [&_th]:whitespace-normal`:`[&_td]:whitespace-nowrap [&_th]:whitespace-nowrap`,S=[``,`[&_td]:text-[0.85rem] [&_th]:text-[0.85rem] [&_td_*]:text-[0.85rem] [&_button]:h-7 [&_input]:h-7 [&_select]:h-7`,`[&_td]:text-[0.75rem] [&_th]:text-[0.75rem] [&_td_*]:text-[0.75rem] [&_button]:h-6 [&_input]:h-6 [&_select]:h-6`,`[&_td]:text-[0.65rem] [&_th]:text-[0.65rem] [&_td_*]:text-[0.65rem] [&_button]:h-5 [&_input]:h-5 [&_select]:h-5`,`[&_td]:text-[0.55rem] [&_th]:text-[0.55rem] [&_td_*]:text-[0.55rem] [&_button]:h-4 [&_input]:h-4 [&_select]:h-4`],C=S[Math.min(h,S.length-1)]||``;return(0,r.jsx)(`div`,{className:`${p} ${x} ${C} overflow-x-auto`,children:(0,r.jsxs)(n.Table,{ref:_,children:[(0,r.jsx)(n.TableHeader,{children:(0,r.jsxs)(n.TableRow,{children:[e.map(e=>(0,r.jsx)(n.TableHead,{className:`px-2 py-1 h-auto border border-border align-middle ${e.headerClassName||``}`,style:{textAlign:e.align||`center`,verticalAlign:`middle`,minWidth:e.width},children:e.label},e.key)),d&&(0,r.jsx)(n.TableHead,{className:`px-2 py-1 h-auto`,children:(0,r.jsx)(`span`,{className:`sr-only`,children:`Actions`})}),c&&(0,r.jsx)(n.TableHead,{className:`px-2 py-1 h-auto`,children:(0,r.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,r.jsx)(n.TableBody,{children:o.length===0?(0,r.jsx)(n.TableRow,{children:(0,r.jsx)(n.TableCell,{colSpan:e.length+ +!!d+ +!!c,className:`h-24 text-center`,children:s})}):o.map((o,s)=>{let l=u(o,s);return(0,r.jsxs)(i.default.Fragment,{children:[(0,r.jsxs)(n.TableRow,{className:`hover:bg-muted/50`,onBlur:e=>{if(!g)return;let t=e.currentTarget,n=e.relatedTarget;t.contains(n)||b(n)||window.setTimeout(()=>{if(!t.isConnected)return;let e=document.activeElement;t.contains(e)||b(e)||g(s)},0)},children:[e.map(e=>{let t=e.render?e.render(o,s):o[e.key],i=e.isEditable===void 0?!!e.render:e.isEditable;return(0,r.jsx)(n.TableCell,{className:`text-sm border border-border ${i||e.cellClassName?`p-0`:`px-2 py-1`} ${e.align===`center`?`text-center`:e.align===`right`?`text-right`:``} ${e.cellClassName||``}`,children:(0,r.jsx)(`div`,{className:i?`w-full h-full`:``,children:t})},e.key)}),d&&(0,r.jsx)(n.TableCell,{className:`px-1 py-1 text-center`,children:d(o,s)}),c&&(0,r.jsx)(n.TableCell,{className:`px-1 py-1 text-center`,children:(0,r.jsx)(t.Button,{type:`button`,variant:`destructive`,size:`sm`,className:`h-6 w-6 p-0`,"aria-label":`Remove row ${s+1}`,onClick:()=>c(s),children:(0,r.jsx)(a.Trash2,{className:`h-3 w-3`})})})]}),f&&(0,r.jsx)(n.TableRow,{className:`bg-muted/50 hover:bg-muted/50`,children:(0,r.jsx)(n.TableCell,{colSpan:e.length+ +!!d+ +!!c,className:`px-4 py-2`,children:f(o,s)})},`${l}-extra`)]},l)})})]})})}exports.EditableTable=o;
|
|
2
2
|
//# sourceMappingURL=editable-table.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editable-table.cjs","names":["useRef","input","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","React","Button","Trash2","require_runtime","require_ui_components_ui_button_components","require_ui_components_ui_table","react_jsx_runtime","react","lucide_react","EditableTable","index","tableRef","onAddRowRef","onAddRow","timersRef","timers","id","isWithinSearchableSelectPortal","node","table","handleKeyDown","activeElement","e","cell","row","tbody","allRows","currentRowIndex","allCells","currentCellIndex","targetCell","nextRow","nextRowCells","prevRow","prevRowCells","isLastRow","isLastCell","scheduleTimeout","timerId","cb","ms","newRows","newLastRow","firstInput","nextInput","columns","data","wrapClass","isWrapped","zoomClasses","zoomClass","zoomLevel","className","col","renderRowActions","onRemove","emptyMessage","rowKey","getRowKey","item","onRowBlur","currentTarget","nextTarget","active","cellContent","isEditable","renderExtraRow"],"sources":["../../../../src/tools/components/editable-table/editable-table.tsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport { Button } from '../ui/button';\nimport { Trash2 } from 'lucide-react';\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../ui/table';\n\nexport interface EditableTableColumn<T> {\n key: string;\n label: string;\n align?: 'left' | 'center' | 'right';\n /** Render function for custom cell content, like inputs */\n render?: (item: T, index: number) => React.ReactNode;\n width?: string;\n cellClassName?: string;\n headerClassName?: string;\n /** Whether the cell contains an input and should remove padding */\n isEditable?: boolean;\n}\n\nexport interface EditableTableProps<T> {\n columns: EditableTableColumn<T>[];\n data: T[];\n emptyMessage?: string;\n onRemove?: (index: number) => void;\n onAddRow?: () => void;\n getRowKey?: (item: T, index: number) => string;\n renderRowActions?: (item: T, index: number) => React.ReactNode;\n renderExtraRow?: (item: T, index: number) => React.ReactNode;\n className?: string;\n isWrapped?: boolean;\n zoomLevel?: number; // 0: 100%, 1: 90%, 2: 80%, 3: 70%, 4: 60%\n onRowBlur?: (index: number) => void;\n}\n\n/**\n * キーボードナビゲーションに対応した、インライン編集可能なテーブルコンポーネント。\n */\nexport function EditableTable<T extends Record<string, any>>({\n columns,\n data,\n emptyMessage = 'データがありません',\n onRemove,\n onAddRow,\n getRowKey = (_, index) => `row-${index}`,\n renderRowActions,\n renderExtraRow,\n className = '',\n isWrapped = false,\n zoomLevel = 0,\n onRowBlur,\n}: EditableTableProps<T>) {\n const tableRef = useRef<HTMLTableElement>(null);\n const onAddRowRef = useRef(onAddRow);\n useEffect(() => {\n onAddRowRef.current = onAddRow;\n });\n const timersRef = useRef<Set<ReturnType<typeof setTimeout>>>(new Set());\n\n useEffect(() => {\n const timers = timersRef.current;\n return () => {\n timers.forEach((id) => clearTimeout(id));\n timers.clear();\n };\n }, []);\n\n const isWithinSearchableSelectPortal = (node: EventTarget | Node | null) => {\n if (!(node instanceof HTMLElement)) return false;\n return Boolean(node.closest('[data-searchable-select-portal=\"true\"]'));\n };\n\n // Handle keyboard navigation\n useEffect(() => {\n const table = tableRef.current;\n if (!table) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n const activeElement = document.activeElement;\n if (!activeElement || !table.contains(activeElement)) return;\n\n // Don't trigger if user is composing text (IME)\n if (e.isComposing) return;\n\n // Check if we're in an input/textarea/select\n const isInput =\n activeElement.tagName === 'INPUT' ||\n activeElement.tagName === 'TEXTAREA' ||\n activeElement.tagName === 'SELECT' ||\n activeElement.getAttribute('role') === 'combobox';\n\n if (!isInput) return;\n\n const input = activeElement as HTMLElement;\n const cell = input.closest('td');\n if (!cell) return;\n\n const row = cell.closest('tr');\n if (!row) return;\n\n const tbody = row.closest('tbody');\n if (!tbody) return;\n\n const allRows = Array.from(tbody.querySelectorAll('tr:not([class*=\"extra\"])'));\n const currentRowIndex = allRows.indexOf(row);\n const allCells = Array.from(row.querySelectorAll('td'));\n const currentCellIndex = allCells.indexOf(cell);\n\n let targetCell: HTMLElement | null = null;\n\n switch (e.key) {\n case 'ArrowRight':\n e.preventDefault();\n if (currentCellIndex < allCells.length - 1) {\n targetCell = allCells[currentCellIndex + 1];\n }\n break;\n case 'ArrowLeft':\n e.preventDefault();\n if (currentCellIndex > 0) {\n targetCell = allCells[currentCellIndex - 1];\n }\n break;\n case 'ArrowDown':\n e.preventDefault();\n if (currentRowIndex < allRows.length - 1) {\n const nextRow = allRows[currentRowIndex + 1];\n const nextRowCells = Array.from(nextRow.querySelectorAll('td'));\n if (nextRowCells[currentCellIndex]) {\n targetCell = nextRowCells[currentCellIndex];\n }\n }\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (currentRowIndex > 0) {\n const prevRow = allRows[currentRowIndex - 1];\n const prevRowCells = Array.from(prevRow.querySelectorAll('td'));\n if (prevRowCells[currentCellIndex]) {\n targetCell = prevRowCells[currentCellIndex];\n }\n }\n break;\n case 'Enter':\n if (activeElement.tagName !== 'TEXTAREA' && !e.shiftKey) {\n e.preventDefault();\n const isLastRow = currentRowIndex === allRows.length - 1;\n const isLastCell = currentCellIndex >= allCells.length - 1;\n const scheduleTimeout = (cb: () => void, ms: number) => {\n const timerId = setTimeout(() => {\n timersRef.current.delete(timerId);\n cb();\n }, ms);\n timersRef.current.add(timerId);\n };\n\n scheduleTimeout(() => {\n if (currentCellIndex < allCells.length - 1) {\n targetCell = allCells[currentCellIndex + 1];\n } else if (currentRowIndex < allRows.length - 1) {\n const nextRow = allRows[currentRowIndex + 1];\n const nextRowCells = Array.from(nextRow.querySelectorAll('td'));\n if (nextRowCells[0]) {\n targetCell = nextRowCells[0];\n }\n } else if (isLastRow && isLastCell && onAddRowRef.current) {\n onAddRowRef.current();\n scheduleTimeout(() => {\n const newRows = Array.from(tbody.querySelectorAll('tr:not([class*=\"extra\"])'));\n const newLastRow = newRows[newRows.length - 1];\n if (newLastRow) {\n const firstInput = newLastRow.querySelector(\n 'input, textarea, select, [role=\"combobox\"]',\n ) as HTMLElement;\n if (firstInput) {\n firstInput.focus();\n if (firstInput instanceof HTMLInputElement && firstInput.type !== 'number') {\n firstInput.select();\n }\n }\n }\n }, 100);\n }\n if (targetCell) {\n const nextInput = targetCell.querySelector(\n 'input, textarea, select, [role=\"combobox\"]',\n ) as HTMLElement;\n if (nextInput) {\n nextInput.focus();\n if (nextInput instanceof HTMLInputElement && nextInput.type !== 'number') {\n nextInput.select();\n }\n }\n }\n }, 50);\n }\n return;\n case 'Tab':\n return;\n }\n\n if (targetCell) {\n const nextInput = targetCell.querySelector(\n 'input, textarea, select, [role=\"combobox\"]',\n ) as HTMLElement;\n if (nextInput) {\n nextInput.focus();\n if (nextInput instanceof HTMLInputElement && nextInput.type !== 'number') {\n nextInput.select();\n }\n }\n }\n };\n\n table.addEventListener('keydown', handleKeyDown);\n return () => table.removeEventListener('keydown', handleKeyDown);\n }, [columns, data]);\n\n const wrapClass = isWrapped\n ? '[&_td]:whitespace-normal [&_td_*]:whitespace-normal [&_th]:whitespace-normal'\n : '[&_td]:whitespace-nowrap [&_th]:whitespace-nowrap';\n\n const zoomClasses = [\n '', // 0: 100%\n '[&_td]:text-[0.85rem] [&_th]:text-[0.85rem] [&_td_*]:text-[0.85rem] [&_button]:h-7 [&_input]:h-7 [&_select]:h-7', // 1: 85%\n '[&_td]:text-[0.75rem] [&_th]:text-[0.75rem] [&_td_*]:text-[0.75rem] [&_button]:h-6 [&_input]:h-6 [&_select]:h-6', // 2: 75%\n '[&_td]:text-[0.65rem] [&_th]:text-[0.65rem] [&_td_*]:text-[0.65rem] [&_button]:h-5 [&_input]:h-5 [&_select]:h-5', // 3: 65%\n '[&_td]:text-[0.55rem] [&_th]:text-[0.55rem] [&_td_*]:text-[0.55rem] [&_button]:h-4 [&_input]:h-4 [&_select]:h-4', // 4: 55%\n ];\n const zoomClass = zoomClasses[Math.min(zoomLevel, zoomClasses.length - 1)] || '';\n\n return (\n <div className={`${className} ${wrapClass} ${zoomClass} overflow-x-auto`}>\n <Table ref={tableRef}>\n <TableHeader>\n <TableRow>\n {columns.map((col) => (\n <TableHead\n key={col.key}\n className={`px-2 py-1 h-auto border border-border align-middle ${col.headerClassName || ''}`}\n style={{\n textAlign: col.align || 'center',\n verticalAlign: 'middle',\n minWidth: col.width,\n }}\n >\n {col.label}\n </TableHead>\n ))}\n {renderRowActions && <TableHead className='px-2 py-1 h-auto'></TableHead>}\n {onRemove && <TableHead className='px-2 py-1 h-auto'></TableHead>}\n </TableRow>\n </TableHeader>\n <TableBody>\n {data.length === 0 ? (\n <TableRow>\n <TableCell\n colSpan={columns.length + (renderRowActions ? 1 : 0) + (onRemove ? 1 : 0)}\n className='h-24 text-center'\n >\n {emptyMessage}\n </TableCell>\n </TableRow>\n ) : (\n data.map((item, index) => {\n const rowKey = getRowKey(item, index);\n return (\n <React.Fragment key={rowKey}>\n <TableRow\n className='hover:bg-muted/50'\n onBlur={(e: React.FocusEvent<HTMLTableRowElement>) => {\n if (!onRowBlur) return;\n\n const currentTarget = e.currentTarget;\n const nextTarget = e.relatedTarget;\n\n if (currentTarget.contains(nextTarget as Node | null)) return;\n if (isWithinSearchableSelectPortal(nextTarget)) return;\n\n window.setTimeout(() => {\n if (!currentTarget.isConnected) return;\n\n const active = document.activeElement;\n if (currentTarget.contains(active)) return;\n if (isWithinSearchableSelectPortal(active)) return;\n\n onRowBlur(index);\n }, 0);\n }}\n >\n {columns.map((col) => {\n const cellContent = (col.render ? col.render(item, index) : item[col.key]) as React.ReactNode;\n const isEditable =\n col.isEditable !== undefined ? col.isEditable : !!col.render;\n\n return (\n <TableCell\n key={col.key}\n className={`text-sm border border-border ${isEditable || col.cellClassName ? 'p-0' : 'px-2 py-1'} ${col.align === 'center' ? 'text-center' : col.align === 'right' ? 'text-right' : ''} ${col.cellClassName || ''}`}\n >\n <div className={isEditable ? 'w-full h-full' : ''}>{cellContent}</div>\n </TableCell>\n );\n })}\n {renderRowActions && (\n <TableCell className='px-1 py-1 text-center'>\n {renderRowActions(item, index)}\n </TableCell>\n )}\n {onRemove && (\n <TableCell className='px-1 py-1 text-center'>\n <Button\n type='button'\n variant='destructive'\n size='sm'\n className='h-6 w-6 p-0'\n onClick={() => onRemove(index)}\n >\n <Trash2 className='h-3 w-3' />\n </Button>\n </TableCell>\n )}\n </TableRow>\n {renderExtraRow && (\n <TableRow key={`${rowKey}-extra`} className='bg-muted/50 hover:bg-muted/50'>\n <TableCell\n colSpan={columns.length + (renderRowActions ? 1 : 0) + (onRemove ? 1 : 0)}\n className='px-4 py-2'\n >\n {renderExtraRow(item, index)}\n </TableCell>\n </TableRow>\n )}\n </React.Fragment>\n );\n })\n )}\n </TableBody>\n </Table>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editable-table.cjs","names":["useRef","input","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","React","Button","Trash2","require_runtime","require_ui_components_ui_button_components","require_ui_components_ui_table","react_jsx_runtime","react","lucide_react","EditableTable","index","tableRef","onAddRowRef","onAddRow","timersRef","timers","id","isWithinSearchableSelectPortal","node","table","handleKeyDown","activeElement","e","cell","row","tbody","allRows","currentRowIndex","allCells","currentCellIndex","targetCell","nextRow","nextRowCells","prevRow","prevRowCells","isLastRow","isLastCell","scheduleTimeout","timerId","cb","ms","newRows","newLastRow","firstInput","nextInput","columns","data","wrapClass","isWrapped","zoomClasses","zoomClass","zoomLevel","className","col","renderRowActions","onRemove","emptyMessage","rowKey","getRowKey","item","onRowBlur","currentTarget","nextTarget","active","cellContent","isEditable","renderExtraRow"],"sources":["../../../../src/tools/components/editable-table/editable-table.tsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport { Button } from '../ui/button';\nimport { Trash2 } from 'lucide-react';\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../ui/table';\n\nexport interface EditableTableColumn<T> {\n key: string;\n label: string;\n align?: 'left' | 'center' | 'right';\n /** Render function for custom cell content, like inputs */\n render?: (item: T, index: number) => React.ReactNode;\n width?: string;\n cellClassName?: string;\n headerClassName?: string;\n /** Whether the cell contains an input and should remove padding */\n isEditable?: boolean;\n}\n\nexport interface EditableTableProps<T> {\n columns: EditableTableColumn<T>[];\n data: T[];\n emptyMessage?: string;\n onRemove?: (index: number) => void;\n onAddRow?: () => void;\n getRowKey?: (item: T, index: number) => string;\n renderRowActions?: (item: T, index: number) => React.ReactNode;\n renderExtraRow?: (item: T, index: number) => React.ReactNode;\n className?: string;\n isWrapped?: boolean;\n zoomLevel?: number; // 0: 100%, 1: 90%, 2: 80%, 3: 70%, 4: 60%\n onRowBlur?: (index: number) => void;\n}\n\n/**\n * キーボードナビゲーションに対応した、インライン編集可能なテーブルコンポーネント。\n */\nexport function EditableTable<T extends Record<string, any>>({\n columns,\n data,\n emptyMessage = 'データがありません',\n onRemove,\n onAddRow,\n getRowKey = (_, index) => `row-${index}`,\n renderRowActions,\n renderExtraRow,\n className = '',\n isWrapped = false,\n zoomLevel = 0,\n onRowBlur,\n}: EditableTableProps<T>) {\n const tableRef = useRef<HTMLTableElement>(null);\n const onAddRowRef = useRef(onAddRow);\n useEffect(() => {\n onAddRowRef.current = onAddRow;\n });\n const timersRef = useRef<Set<ReturnType<typeof setTimeout>>>(new Set());\n\n useEffect(() => {\n const timers = timersRef.current;\n return () => {\n timers.forEach((id) => clearTimeout(id));\n timers.clear();\n };\n }, []);\n\n const isWithinSearchableSelectPortal = (node: EventTarget | Node | null) => {\n if (!(node instanceof HTMLElement)) return false;\n return Boolean(node.closest('[data-searchable-select-portal=\"true\"]'));\n };\n\n // Handle keyboard navigation\n useEffect(() => {\n const table = tableRef.current;\n if (!table) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n const activeElement = document.activeElement;\n if (!activeElement || !table.contains(activeElement)) return;\n\n // Don't trigger if user is composing text (IME)\n if (e.isComposing) return;\n\n // Check if we're in an input/textarea/select\n const isInput =\n activeElement.tagName === 'INPUT' ||\n activeElement.tagName === 'TEXTAREA' ||\n activeElement.tagName === 'SELECT' ||\n activeElement.getAttribute('role') === 'combobox';\n\n if (!isInput) return;\n\n const input = activeElement as HTMLElement;\n const cell = input.closest('td');\n if (!cell) return;\n\n const row = cell.closest('tr');\n if (!row) return;\n\n const tbody = row.closest('tbody');\n if (!tbody) return;\n\n const allRows = Array.from(tbody.querySelectorAll('tr:not([class*=\"extra\"])'));\n const currentRowIndex = allRows.indexOf(row);\n const allCells = Array.from(row.querySelectorAll('td'));\n const currentCellIndex = allCells.indexOf(cell);\n\n let targetCell: HTMLElement | null = null;\n\n switch (e.key) {\n case 'ArrowRight':\n e.preventDefault();\n if (currentCellIndex < allCells.length - 1) {\n targetCell = allCells[currentCellIndex + 1];\n }\n break;\n case 'ArrowLeft':\n e.preventDefault();\n if (currentCellIndex > 0) {\n targetCell = allCells[currentCellIndex - 1];\n }\n break;\n case 'ArrowDown':\n e.preventDefault();\n if (currentRowIndex < allRows.length - 1) {\n const nextRow = allRows[currentRowIndex + 1];\n const nextRowCells = Array.from(nextRow.querySelectorAll('td'));\n if (nextRowCells[currentCellIndex]) {\n targetCell = nextRowCells[currentCellIndex];\n }\n }\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (currentRowIndex > 0) {\n const prevRow = allRows[currentRowIndex - 1];\n const prevRowCells = Array.from(prevRow.querySelectorAll('td'));\n if (prevRowCells[currentCellIndex]) {\n targetCell = prevRowCells[currentCellIndex];\n }\n }\n break;\n case 'Enter':\n if (activeElement.tagName !== 'TEXTAREA' && !e.shiftKey) {\n e.preventDefault();\n const isLastRow = currentRowIndex === allRows.length - 1;\n const isLastCell = currentCellIndex >= allCells.length - 1;\n const scheduleTimeout = (cb: () => void, ms: number) => {\n const timerId = setTimeout(() => {\n timersRef.current.delete(timerId);\n cb();\n }, ms);\n timersRef.current.add(timerId);\n };\n\n scheduleTimeout(() => {\n if (currentCellIndex < allCells.length - 1) {\n targetCell = allCells[currentCellIndex + 1];\n } else if (currentRowIndex < allRows.length - 1) {\n const nextRow = allRows[currentRowIndex + 1];\n const nextRowCells = Array.from(nextRow.querySelectorAll('td'));\n if (nextRowCells[0]) {\n targetCell = nextRowCells[0];\n }\n } else if (isLastRow && isLastCell && onAddRowRef.current) {\n onAddRowRef.current();\n scheduleTimeout(() => {\n const newRows = Array.from(tbody.querySelectorAll('tr:not([class*=\"extra\"])'));\n const newLastRow = newRows[newRows.length - 1];\n if (newLastRow) {\n const firstInput = newLastRow.querySelector(\n 'input, textarea, select, [role=\"combobox\"]',\n ) as HTMLElement;\n if (firstInput) {\n firstInput.focus();\n if (firstInput instanceof HTMLInputElement && firstInput.type !== 'number') {\n firstInput.select();\n }\n }\n }\n }, 100);\n }\n if (targetCell) {\n const nextInput = targetCell.querySelector(\n 'input, textarea, select, [role=\"combobox\"]',\n ) as HTMLElement;\n if (nextInput) {\n nextInput.focus();\n if (nextInput instanceof HTMLInputElement && nextInput.type !== 'number') {\n nextInput.select();\n }\n }\n }\n }, 50);\n }\n return;\n case 'Tab':\n return;\n }\n\n if (targetCell) {\n const nextInput = targetCell.querySelector(\n 'input, textarea, select, [role=\"combobox\"]',\n ) as HTMLElement;\n if (nextInput) {\n nextInput.focus();\n if (nextInput instanceof HTMLInputElement && nextInput.type !== 'number') {\n nextInput.select();\n }\n }\n }\n };\n\n table.addEventListener('keydown', handleKeyDown);\n return () => table.removeEventListener('keydown', handleKeyDown);\n }, [columns, data]);\n\n const wrapClass = isWrapped\n ? '[&_td]:whitespace-normal [&_td_*]:whitespace-normal [&_th]:whitespace-normal'\n : '[&_td]:whitespace-nowrap [&_th]:whitespace-nowrap';\n\n const zoomClasses = [\n '', // 0: 100%\n '[&_td]:text-[0.85rem] [&_th]:text-[0.85rem] [&_td_*]:text-[0.85rem] [&_button]:h-7 [&_input]:h-7 [&_select]:h-7', // 1: 85%\n '[&_td]:text-[0.75rem] [&_th]:text-[0.75rem] [&_td_*]:text-[0.75rem] [&_button]:h-6 [&_input]:h-6 [&_select]:h-6', // 2: 75%\n '[&_td]:text-[0.65rem] [&_th]:text-[0.65rem] [&_td_*]:text-[0.65rem] [&_button]:h-5 [&_input]:h-5 [&_select]:h-5', // 3: 65%\n '[&_td]:text-[0.55rem] [&_th]:text-[0.55rem] [&_td_*]:text-[0.55rem] [&_button]:h-4 [&_input]:h-4 [&_select]:h-4', // 4: 55%\n ];\n const zoomClass = zoomClasses[Math.min(zoomLevel, zoomClasses.length - 1)] || '';\n\n return (\n <div className={`${className} ${wrapClass} ${zoomClass} overflow-x-auto`}>\n <Table ref={tableRef}>\n <TableHeader>\n <TableRow>\n {columns.map((col) => (\n <TableHead\n key={col.key}\n className={`px-2 py-1 h-auto border border-border align-middle ${col.headerClassName || ''}`}\n style={{\n textAlign: col.align || 'center',\n verticalAlign: 'middle',\n minWidth: col.width,\n }}\n >\n {col.label}\n </TableHead>\n ))}\n {renderRowActions && <TableHead className='px-2 py-1 h-auto'><span className='sr-only'>Actions</span></TableHead>}\n {onRemove && <TableHead className='px-2 py-1 h-auto'><span className='sr-only'>Actions</span></TableHead>}\n </TableRow>\n </TableHeader>\n <TableBody>\n {data.length === 0 ? (\n <TableRow>\n <TableCell\n colSpan={columns.length + (renderRowActions ? 1 : 0) + (onRemove ? 1 : 0)}\n className='h-24 text-center'\n >\n {emptyMessage}\n </TableCell>\n </TableRow>\n ) : (\n data.map((item, index) => {\n const rowKey = getRowKey(item, index);\n return (\n <React.Fragment key={rowKey}>\n <TableRow\n className='hover:bg-muted/50'\n onBlur={(e: React.FocusEvent<HTMLTableRowElement>) => {\n if (!onRowBlur) return;\n\n const currentTarget = e.currentTarget;\n const nextTarget = e.relatedTarget;\n\n if (currentTarget.contains(nextTarget as Node | null)) return;\n if (isWithinSearchableSelectPortal(nextTarget)) return;\n\n window.setTimeout(() => {\n if (!currentTarget.isConnected) return;\n\n const active = document.activeElement;\n if (currentTarget.contains(active)) return;\n if (isWithinSearchableSelectPortal(active)) return;\n\n onRowBlur(index);\n }, 0);\n }}\n >\n {columns.map((col) => {\n const cellContent = (col.render ? col.render(item, index) : item[col.key]) as React.ReactNode;\n const isEditable =\n col.isEditable !== undefined ? col.isEditable : !!col.render;\n\n return (\n <TableCell\n key={col.key}\n className={`text-sm border border-border ${isEditable || col.cellClassName ? 'p-0' : 'px-2 py-1'} ${col.align === 'center' ? 'text-center' : col.align === 'right' ? 'text-right' : ''} ${col.cellClassName || ''}`}\n >\n <div className={isEditable ? 'w-full h-full' : ''}>{cellContent}</div>\n </TableCell>\n );\n })}\n {renderRowActions && (\n <TableCell className='px-1 py-1 text-center'>\n {renderRowActions(item, index)}\n </TableCell>\n )}\n {onRemove && (\n <TableCell className='px-1 py-1 text-center'>\n <Button\n type='button'\n variant='destructive'\n size='sm'\n className='h-6 w-6 p-0'\n aria-label={`Remove row ${index + 1}`}\n onClick={() => onRemove(index)}\n >\n <Trash2 className='h-3 w-3' />\n </Button>\n </TableCell>\n )}\n </TableRow>\n {renderExtraRow && (\n <TableRow key={`${rowKey}-extra`} className='bg-muted/50 hover:bg-muted/50'>\n <TableCell\n colSpan={columns.length + (renderRowActions ? 1 : 0) + (onRemove ? 1 : 0)}\n className='px-4 py-2'\n >\n {renderExtraRow(item, index)}\n </TableCell>\n </TableRow>\n )}\n </React.Fragment>\n );\n })\n )}\n </TableBody>\n </Table>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -108,8 +108,20 @@ function p({ columns: p, data: m, emptyMessage: h = "データがありません
|
|
|
108
108
|
},
|
|
109
109
|
children: e.label
|
|
110
110
|
}, e.key)),
|
|
111
|
-
y && /* @__PURE__ */ s(i, {
|
|
112
|
-
|
|
111
|
+
y && /* @__PURE__ */ s(i, {
|
|
112
|
+
className: "px-2 py-1 h-auto",
|
|
113
|
+
children: /* @__PURE__ */ s("span", {
|
|
114
|
+
className: "sr-only",
|
|
115
|
+
children: "Actions"
|
|
116
|
+
})
|
|
117
|
+
}),
|
|
118
|
+
g && /* @__PURE__ */ s(i, {
|
|
119
|
+
className: "px-2 py-1 h-auto",
|
|
120
|
+
children: /* @__PURE__ */ s("span", {
|
|
121
|
+
className: "sr-only",
|
|
122
|
+
children: "Actions"
|
|
123
|
+
})
|
|
124
|
+
})
|
|
113
125
|
] }) }), /* @__PURE__ */ s(n, { children: m.length === 0 ? /* @__PURE__ */ s(o, { children: /* @__PURE__ */ s(r, {
|
|
114
126
|
colSpan: p.length + +!!y + +!!g,
|
|
115
127
|
className: "h-24 text-center",
|
|
@@ -149,6 +161,7 @@ function p({ columns: p, data: m, emptyMessage: h = "データがありません
|
|
|
149
161
|
variant: "destructive",
|
|
150
162
|
size: "sm",
|
|
151
163
|
className: "h-6 w-6 p-0",
|
|
164
|
+
"aria-label": `Remove row ${n + 1}`,
|
|
152
165
|
onClick: () => g(n),
|
|
153
166
|
children: /* @__PURE__ */ s(f, { className: "h-3 w-3" })
|
|
154
167
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editable-table.js","names":["input","React","EditableTable","index","tableRef","useRef","onAddRowRef","onAddRow","timersRef","timers","id","isWithinSearchableSelectPortal","node","table","handleKeyDown","activeElement","e","cell","row","tbody","allRows","currentRowIndex","allCells","currentCellIndex","targetCell","nextRow","nextRowCells","prevRow","prevRowCells","isLastRow","isLastCell","scheduleTimeout","timerId","cb","ms","newRows","newLastRow","firstInput","nextInput","columns","data","wrapClass","isWrapped","zoomClasses","zoomClass","zoomLevel","className","Table","TableHeader","TableRow","TableHead","col","renderRowActions","onRemove","TableBody","TableCell","emptyMessage","rowKey","getRowKey","item","onRowBlur","currentTarget","nextTarget","active","cellContent","isEditable","Button","Trash2","renderExtraRow"],"sources":["../../../../src/tools/components/editable-table/editable-table.tsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport { Button } from '../ui/button';\nimport { Trash2 } from 'lucide-react';\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../ui/table';\n\nexport interface EditableTableColumn<T> {\n key: string;\n label: string;\n align?: 'left' | 'center' | 'right';\n /** Render function for custom cell content, like inputs */\n render?: (item: T, index: number) => React.ReactNode;\n width?: string;\n cellClassName?: string;\n headerClassName?: string;\n /** Whether the cell contains an input and should remove padding */\n isEditable?: boolean;\n}\n\nexport interface EditableTableProps<T> {\n columns: EditableTableColumn<T>[];\n data: T[];\n emptyMessage?: string;\n onRemove?: (index: number) => void;\n onAddRow?: () => void;\n getRowKey?: (item: T, index: number) => string;\n renderRowActions?: (item: T, index: number) => React.ReactNode;\n renderExtraRow?: (item: T, index: number) => React.ReactNode;\n className?: string;\n isWrapped?: boolean;\n zoomLevel?: number; // 0: 100%, 1: 90%, 2: 80%, 3: 70%, 4: 60%\n onRowBlur?: (index: number) => void;\n}\n\n/**\n * キーボードナビゲーションに対応した、インライン編集可能なテーブルコンポーネント。\n */\nexport function EditableTable<T extends Record<string, any>>({\n columns,\n data,\n emptyMessage = 'データがありません',\n onRemove,\n onAddRow,\n getRowKey = (_, index) => `row-${index}`,\n renderRowActions,\n renderExtraRow,\n className = '',\n isWrapped = false,\n zoomLevel = 0,\n onRowBlur,\n}: EditableTableProps<T>) {\n const tableRef = useRef<HTMLTableElement>(null);\n const onAddRowRef = useRef(onAddRow);\n useEffect(() => {\n onAddRowRef.current = onAddRow;\n });\n const timersRef = useRef<Set<ReturnType<typeof setTimeout>>>(new Set());\n\n useEffect(() => {\n const timers = timersRef.current;\n return () => {\n timers.forEach((id) => clearTimeout(id));\n timers.clear();\n };\n }, []);\n\n const isWithinSearchableSelectPortal = (node: EventTarget | Node | null) => {\n if (!(node instanceof HTMLElement)) return false;\n return Boolean(node.closest('[data-searchable-select-portal=\"true\"]'));\n };\n\n // Handle keyboard navigation\n useEffect(() => {\n const table = tableRef.current;\n if (!table) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n const activeElement = document.activeElement;\n if (!activeElement || !table.contains(activeElement)) return;\n\n // Don't trigger if user is composing text (IME)\n if (e.isComposing) return;\n\n // Check if we're in an input/textarea/select\n const isInput =\n activeElement.tagName === 'INPUT' ||\n activeElement.tagName === 'TEXTAREA' ||\n activeElement.tagName === 'SELECT' ||\n activeElement.getAttribute('role') === 'combobox';\n\n if (!isInput) return;\n\n const input = activeElement as HTMLElement;\n const cell = input.closest('td');\n if (!cell) return;\n\n const row = cell.closest('tr');\n if (!row) return;\n\n const tbody = row.closest('tbody');\n if (!tbody) return;\n\n const allRows = Array.from(tbody.querySelectorAll('tr:not([class*=\"extra\"])'));\n const currentRowIndex = allRows.indexOf(row);\n const allCells = Array.from(row.querySelectorAll('td'));\n const currentCellIndex = allCells.indexOf(cell);\n\n let targetCell: HTMLElement | null = null;\n\n switch (e.key) {\n case 'ArrowRight':\n e.preventDefault();\n if (currentCellIndex < allCells.length - 1) {\n targetCell = allCells[currentCellIndex + 1];\n }\n break;\n case 'ArrowLeft':\n e.preventDefault();\n if (currentCellIndex > 0) {\n targetCell = allCells[currentCellIndex - 1];\n }\n break;\n case 'ArrowDown':\n e.preventDefault();\n if (currentRowIndex < allRows.length - 1) {\n const nextRow = allRows[currentRowIndex + 1];\n const nextRowCells = Array.from(nextRow.querySelectorAll('td'));\n if (nextRowCells[currentCellIndex]) {\n targetCell = nextRowCells[currentCellIndex];\n }\n }\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (currentRowIndex > 0) {\n const prevRow = allRows[currentRowIndex - 1];\n const prevRowCells = Array.from(prevRow.querySelectorAll('td'));\n if (prevRowCells[currentCellIndex]) {\n targetCell = prevRowCells[currentCellIndex];\n }\n }\n break;\n case 'Enter':\n if (activeElement.tagName !== 'TEXTAREA' && !e.shiftKey) {\n e.preventDefault();\n const isLastRow = currentRowIndex === allRows.length - 1;\n const isLastCell = currentCellIndex >= allCells.length - 1;\n const scheduleTimeout = (cb: () => void, ms: number) => {\n const timerId = setTimeout(() => {\n timersRef.current.delete(timerId);\n cb();\n }, ms);\n timersRef.current.add(timerId);\n };\n\n scheduleTimeout(() => {\n if (currentCellIndex < allCells.length - 1) {\n targetCell = allCells[currentCellIndex + 1];\n } else if (currentRowIndex < allRows.length - 1) {\n const nextRow = allRows[currentRowIndex + 1];\n const nextRowCells = Array.from(nextRow.querySelectorAll('td'));\n if (nextRowCells[0]) {\n targetCell = nextRowCells[0];\n }\n } else if (isLastRow && isLastCell && onAddRowRef.current) {\n onAddRowRef.current();\n scheduleTimeout(() => {\n const newRows = Array.from(tbody.querySelectorAll('tr:not([class*=\"extra\"])'));\n const newLastRow = newRows[newRows.length - 1];\n if (newLastRow) {\n const firstInput = newLastRow.querySelector(\n 'input, textarea, select, [role=\"combobox\"]',\n ) as HTMLElement;\n if (firstInput) {\n firstInput.focus();\n if (firstInput instanceof HTMLInputElement && firstInput.type !== 'number') {\n firstInput.select();\n }\n }\n }\n }, 100);\n }\n if (targetCell) {\n const nextInput = targetCell.querySelector(\n 'input, textarea, select, [role=\"combobox\"]',\n ) as HTMLElement;\n if (nextInput) {\n nextInput.focus();\n if (nextInput instanceof HTMLInputElement && nextInput.type !== 'number') {\n nextInput.select();\n }\n }\n }\n }, 50);\n }\n return;\n case 'Tab':\n return;\n }\n\n if (targetCell) {\n const nextInput = targetCell.querySelector(\n 'input, textarea, select, [role=\"combobox\"]',\n ) as HTMLElement;\n if (nextInput) {\n nextInput.focus();\n if (nextInput instanceof HTMLInputElement && nextInput.type !== 'number') {\n nextInput.select();\n }\n }\n }\n };\n\n table.addEventListener('keydown', handleKeyDown);\n return () => table.removeEventListener('keydown', handleKeyDown);\n }, [columns, data]);\n\n const wrapClass = isWrapped\n ? '[&_td]:whitespace-normal [&_td_*]:whitespace-normal [&_th]:whitespace-normal'\n : '[&_td]:whitespace-nowrap [&_th]:whitespace-nowrap';\n\n const zoomClasses = [\n '', // 0: 100%\n '[&_td]:text-[0.85rem] [&_th]:text-[0.85rem] [&_td_*]:text-[0.85rem] [&_button]:h-7 [&_input]:h-7 [&_select]:h-7', // 1: 85%\n '[&_td]:text-[0.75rem] [&_th]:text-[0.75rem] [&_td_*]:text-[0.75rem] [&_button]:h-6 [&_input]:h-6 [&_select]:h-6', // 2: 75%\n '[&_td]:text-[0.65rem] [&_th]:text-[0.65rem] [&_td_*]:text-[0.65rem] [&_button]:h-5 [&_input]:h-5 [&_select]:h-5', // 3: 65%\n '[&_td]:text-[0.55rem] [&_th]:text-[0.55rem] [&_td_*]:text-[0.55rem] [&_button]:h-4 [&_input]:h-4 [&_select]:h-4', // 4: 55%\n ];\n const zoomClass = zoomClasses[Math.min(zoomLevel, zoomClasses.length - 1)] || '';\n\n return (\n <div className={`${className} ${wrapClass} ${zoomClass} overflow-x-auto`}>\n <Table ref={tableRef}>\n <TableHeader>\n <TableRow>\n {columns.map((col) => (\n <TableHead\n key={col.key}\n className={`px-2 py-1 h-auto border border-border align-middle ${col.headerClassName || ''}`}\n style={{\n textAlign: col.align || 'center',\n verticalAlign: 'middle',\n minWidth: col.width,\n }}\n >\n {col.label}\n </TableHead>\n ))}\n {renderRowActions && <TableHead className='px-2 py-1 h-auto'></TableHead>}\n {onRemove && <TableHead className='px-2 py-1 h-auto'></TableHead>}\n </TableRow>\n </TableHeader>\n <TableBody>\n {data.length === 0 ? (\n <TableRow>\n <TableCell\n colSpan={columns.length + (renderRowActions ? 1 : 0) + (onRemove ? 1 : 0)}\n className='h-24 text-center'\n >\n {emptyMessage}\n </TableCell>\n </TableRow>\n ) : (\n data.map((item, index) => {\n const rowKey = getRowKey(item, index);\n return (\n <React.Fragment key={rowKey}>\n <TableRow\n className='hover:bg-muted/50'\n onBlur={(e: React.FocusEvent<HTMLTableRowElement>) => {\n if (!onRowBlur) return;\n\n const currentTarget = e.currentTarget;\n const nextTarget = e.relatedTarget;\n\n if (currentTarget.contains(nextTarget as Node | null)) return;\n if (isWithinSearchableSelectPortal(nextTarget)) return;\n\n window.setTimeout(() => {\n if (!currentTarget.isConnected) return;\n\n const active = document.activeElement;\n if (currentTarget.contains(active)) return;\n if (isWithinSearchableSelectPortal(active)) return;\n\n onRowBlur(index);\n }, 0);\n }}\n >\n {columns.map((col) => {\n const cellContent = (col.render ? col.render(item, index) : item[col.key]) as React.ReactNode;\n const isEditable =\n col.isEditable !== undefined ? col.isEditable : !!col.render;\n\n return (\n <TableCell\n key={col.key}\n className={`text-sm border border-border ${isEditable || col.cellClassName ? 'p-0' : 'px-2 py-1'} ${col.align === 'center' ? 'text-center' : col.align === 'right' ? 'text-right' : ''} ${col.cellClassName || ''}`}\n >\n <div className={isEditable ? 'w-full h-full' : ''}>{cellContent}</div>\n </TableCell>\n );\n })}\n {renderRowActions && (\n <TableCell className='px-1 py-1 text-center'>\n {renderRowActions(item, index)}\n </TableCell>\n )}\n {onRemove && (\n <TableCell className='px-1 py-1 text-center'>\n <Button\n type='button'\n variant='destructive'\n size='sm'\n className='h-6 w-6 p-0'\n onClick={() => onRemove(index)}\n >\n <Trash2 className='h-3 w-3' />\n </Button>\n </TableCell>\n )}\n </TableRow>\n {renderExtraRow && (\n <TableRow key={`${rowKey}-extra`} className='bg-muted/50 hover:bg-muted/50'>\n <TableCell\n colSpan={columns.length + (renderRowActions ? 1 : 0) + (onRemove ? 1 : 0)}\n className='px-4 py-2'\n >\n {renderExtraRow(item, index)}\n </TableCell>\n </TableRow>\n )}\n </React.Fragment>\n );\n })\n )}\n </TableBody>\n </Table>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editable-table.js","names":["input","React","EditableTable","index","tableRef","useRef","onAddRowRef","onAddRow","timersRef","timers","id","isWithinSearchableSelectPortal","node","table","handleKeyDown","activeElement","e","cell","row","tbody","allRows","currentRowIndex","allCells","currentCellIndex","targetCell","nextRow","nextRowCells","prevRow","prevRowCells","isLastRow","isLastCell","scheduleTimeout","timerId","cb","ms","newRows","newLastRow","firstInput","nextInput","columns","data","wrapClass","isWrapped","zoomClasses","zoomClass","zoomLevel","className","Table","TableHeader","TableRow","TableHead","col","renderRowActions","onRemove","TableBody","TableCell","emptyMessage","rowKey","getRowKey","item","onRowBlur","currentTarget","nextTarget","active","cellContent","isEditable","Button","Trash2","renderExtraRow"],"sources":["../../../../src/tools/components/editable-table/editable-table.tsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport { Button } from '../ui/button';\nimport { Trash2 } from 'lucide-react';\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../ui/table';\n\nexport interface EditableTableColumn<T> {\n key: string;\n label: string;\n align?: 'left' | 'center' | 'right';\n /** Render function for custom cell content, like inputs */\n render?: (item: T, index: number) => React.ReactNode;\n width?: string;\n cellClassName?: string;\n headerClassName?: string;\n /** Whether the cell contains an input and should remove padding */\n isEditable?: boolean;\n}\n\nexport interface EditableTableProps<T> {\n columns: EditableTableColumn<T>[];\n data: T[];\n emptyMessage?: string;\n onRemove?: (index: number) => void;\n onAddRow?: () => void;\n getRowKey?: (item: T, index: number) => string;\n renderRowActions?: (item: T, index: number) => React.ReactNode;\n renderExtraRow?: (item: T, index: number) => React.ReactNode;\n className?: string;\n isWrapped?: boolean;\n zoomLevel?: number; // 0: 100%, 1: 90%, 2: 80%, 3: 70%, 4: 60%\n onRowBlur?: (index: number) => void;\n}\n\n/**\n * キーボードナビゲーションに対応した、インライン編集可能なテーブルコンポーネント。\n */\nexport function EditableTable<T extends Record<string, any>>({\n columns,\n data,\n emptyMessage = 'データがありません',\n onRemove,\n onAddRow,\n getRowKey = (_, index) => `row-${index}`,\n renderRowActions,\n renderExtraRow,\n className = '',\n isWrapped = false,\n zoomLevel = 0,\n onRowBlur,\n}: EditableTableProps<T>) {\n const tableRef = useRef<HTMLTableElement>(null);\n const onAddRowRef = useRef(onAddRow);\n useEffect(() => {\n onAddRowRef.current = onAddRow;\n });\n const timersRef = useRef<Set<ReturnType<typeof setTimeout>>>(new Set());\n\n useEffect(() => {\n const timers = timersRef.current;\n return () => {\n timers.forEach((id) => clearTimeout(id));\n timers.clear();\n };\n }, []);\n\n const isWithinSearchableSelectPortal = (node: EventTarget | Node | null) => {\n if (!(node instanceof HTMLElement)) return false;\n return Boolean(node.closest('[data-searchable-select-portal=\"true\"]'));\n };\n\n // Handle keyboard navigation\n useEffect(() => {\n const table = tableRef.current;\n if (!table) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n const activeElement = document.activeElement;\n if (!activeElement || !table.contains(activeElement)) return;\n\n // Don't trigger if user is composing text (IME)\n if (e.isComposing) return;\n\n // Check if we're in an input/textarea/select\n const isInput =\n activeElement.tagName === 'INPUT' ||\n activeElement.tagName === 'TEXTAREA' ||\n activeElement.tagName === 'SELECT' ||\n activeElement.getAttribute('role') === 'combobox';\n\n if (!isInput) return;\n\n const input = activeElement as HTMLElement;\n const cell = input.closest('td');\n if (!cell) return;\n\n const row = cell.closest('tr');\n if (!row) return;\n\n const tbody = row.closest('tbody');\n if (!tbody) return;\n\n const allRows = Array.from(tbody.querySelectorAll('tr:not([class*=\"extra\"])'));\n const currentRowIndex = allRows.indexOf(row);\n const allCells = Array.from(row.querySelectorAll('td'));\n const currentCellIndex = allCells.indexOf(cell);\n\n let targetCell: HTMLElement | null = null;\n\n switch (e.key) {\n case 'ArrowRight':\n e.preventDefault();\n if (currentCellIndex < allCells.length - 1) {\n targetCell = allCells[currentCellIndex + 1];\n }\n break;\n case 'ArrowLeft':\n e.preventDefault();\n if (currentCellIndex > 0) {\n targetCell = allCells[currentCellIndex - 1];\n }\n break;\n case 'ArrowDown':\n e.preventDefault();\n if (currentRowIndex < allRows.length - 1) {\n const nextRow = allRows[currentRowIndex + 1];\n const nextRowCells = Array.from(nextRow.querySelectorAll('td'));\n if (nextRowCells[currentCellIndex]) {\n targetCell = nextRowCells[currentCellIndex];\n }\n }\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (currentRowIndex > 0) {\n const prevRow = allRows[currentRowIndex - 1];\n const prevRowCells = Array.from(prevRow.querySelectorAll('td'));\n if (prevRowCells[currentCellIndex]) {\n targetCell = prevRowCells[currentCellIndex];\n }\n }\n break;\n case 'Enter':\n if (activeElement.tagName !== 'TEXTAREA' && !e.shiftKey) {\n e.preventDefault();\n const isLastRow = currentRowIndex === allRows.length - 1;\n const isLastCell = currentCellIndex >= allCells.length - 1;\n const scheduleTimeout = (cb: () => void, ms: number) => {\n const timerId = setTimeout(() => {\n timersRef.current.delete(timerId);\n cb();\n }, ms);\n timersRef.current.add(timerId);\n };\n\n scheduleTimeout(() => {\n if (currentCellIndex < allCells.length - 1) {\n targetCell = allCells[currentCellIndex + 1];\n } else if (currentRowIndex < allRows.length - 1) {\n const nextRow = allRows[currentRowIndex + 1];\n const nextRowCells = Array.from(nextRow.querySelectorAll('td'));\n if (nextRowCells[0]) {\n targetCell = nextRowCells[0];\n }\n } else if (isLastRow && isLastCell && onAddRowRef.current) {\n onAddRowRef.current();\n scheduleTimeout(() => {\n const newRows = Array.from(tbody.querySelectorAll('tr:not([class*=\"extra\"])'));\n const newLastRow = newRows[newRows.length - 1];\n if (newLastRow) {\n const firstInput = newLastRow.querySelector(\n 'input, textarea, select, [role=\"combobox\"]',\n ) as HTMLElement;\n if (firstInput) {\n firstInput.focus();\n if (firstInput instanceof HTMLInputElement && firstInput.type !== 'number') {\n firstInput.select();\n }\n }\n }\n }, 100);\n }\n if (targetCell) {\n const nextInput = targetCell.querySelector(\n 'input, textarea, select, [role=\"combobox\"]',\n ) as HTMLElement;\n if (nextInput) {\n nextInput.focus();\n if (nextInput instanceof HTMLInputElement && nextInput.type !== 'number') {\n nextInput.select();\n }\n }\n }\n }, 50);\n }\n return;\n case 'Tab':\n return;\n }\n\n if (targetCell) {\n const nextInput = targetCell.querySelector(\n 'input, textarea, select, [role=\"combobox\"]',\n ) as HTMLElement;\n if (nextInput) {\n nextInput.focus();\n if (nextInput instanceof HTMLInputElement && nextInput.type !== 'number') {\n nextInput.select();\n }\n }\n }\n };\n\n table.addEventListener('keydown', handleKeyDown);\n return () => table.removeEventListener('keydown', handleKeyDown);\n }, [columns, data]);\n\n const wrapClass = isWrapped\n ? '[&_td]:whitespace-normal [&_td_*]:whitespace-normal [&_th]:whitespace-normal'\n : '[&_td]:whitespace-nowrap [&_th]:whitespace-nowrap';\n\n const zoomClasses = [\n '', // 0: 100%\n '[&_td]:text-[0.85rem] [&_th]:text-[0.85rem] [&_td_*]:text-[0.85rem] [&_button]:h-7 [&_input]:h-7 [&_select]:h-7', // 1: 85%\n '[&_td]:text-[0.75rem] [&_th]:text-[0.75rem] [&_td_*]:text-[0.75rem] [&_button]:h-6 [&_input]:h-6 [&_select]:h-6', // 2: 75%\n '[&_td]:text-[0.65rem] [&_th]:text-[0.65rem] [&_td_*]:text-[0.65rem] [&_button]:h-5 [&_input]:h-5 [&_select]:h-5', // 3: 65%\n '[&_td]:text-[0.55rem] [&_th]:text-[0.55rem] [&_td_*]:text-[0.55rem] [&_button]:h-4 [&_input]:h-4 [&_select]:h-4', // 4: 55%\n ];\n const zoomClass = zoomClasses[Math.min(zoomLevel, zoomClasses.length - 1)] || '';\n\n return (\n <div className={`${className} ${wrapClass} ${zoomClass} overflow-x-auto`}>\n <Table ref={tableRef}>\n <TableHeader>\n <TableRow>\n {columns.map((col) => (\n <TableHead\n key={col.key}\n className={`px-2 py-1 h-auto border border-border align-middle ${col.headerClassName || ''}`}\n style={{\n textAlign: col.align || 'center',\n verticalAlign: 'middle',\n minWidth: col.width,\n }}\n >\n {col.label}\n </TableHead>\n ))}\n {renderRowActions && <TableHead className='px-2 py-1 h-auto'><span className='sr-only'>Actions</span></TableHead>}\n {onRemove && <TableHead className='px-2 py-1 h-auto'><span className='sr-only'>Actions</span></TableHead>}\n </TableRow>\n </TableHeader>\n <TableBody>\n {data.length === 0 ? (\n <TableRow>\n <TableCell\n colSpan={columns.length + (renderRowActions ? 1 : 0) + (onRemove ? 1 : 0)}\n className='h-24 text-center'\n >\n {emptyMessage}\n </TableCell>\n </TableRow>\n ) : (\n data.map((item, index) => {\n const rowKey = getRowKey(item, index);\n return (\n <React.Fragment key={rowKey}>\n <TableRow\n className='hover:bg-muted/50'\n onBlur={(e: React.FocusEvent<HTMLTableRowElement>) => {\n if (!onRowBlur) return;\n\n const currentTarget = e.currentTarget;\n const nextTarget = e.relatedTarget;\n\n if (currentTarget.contains(nextTarget as Node | null)) return;\n if (isWithinSearchableSelectPortal(nextTarget)) return;\n\n window.setTimeout(() => {\n if (!currentTarget.isConnected) return;\n\n const active = document.activeElement;\n if (currentTarget.contains(active)) return;\n if (isWithinSearchableSelectPortal(active)) return;\n\n onRowBlur(index);\n }, 0);\n }}\n >\n {columns.map((col) => {\n const cellContent = (col.render ? col.render(item, index) : item[col.key]) as React.ReactNode;\n const isEditable =\n col.isEditable !== undefined ? col.isEditable : !!col.render;\n\n return (\n <TableCell\n key={col.key}\n className={`text-sm border border-border ${isEditable || col.cellClassName ? 'p-0' : 'px-2 py-1'} ${col.align === 'center' ? 'text-center' : col.align === 'right' ? 'text-right' : ''} ${col.cellClassName || ''}`}\n >\n <div className={isEditable ? 'w-full h-full' : ''}>{cellContent}</div>\n </TableCell>\n );\n })}\n {renderRowActions && (\n <TableCell className='px-1 py-1 text-center'>\n {renderRowActions(item, index)}\n </TableCell>\n )}\n {onRemove && (\n <TableCell className='px-1 py-1 text-center'>\n <Button\n type='button'\n variant='destructive'\n size='sm'\n className='h-6 w-6 p-0'\n aria-label={`Remove row ${index + 1}`}\n onClick={() => onRemove(index)}\n >\n <Trash2 className='h-3 w-3' />\n </Button>\n </TableCell>\n )}\n </TableRow>\n {renderExtraRow && (\n <TableRow key={`${rowKey}-extra`} className='bg-muted/50 hover:bg-muted/50'>\n <TableCell\n colSpan={columns.length + (renderRowActions ? 1 : 0) + (onRemove ? 1 : 0)}\n className='px-4 py-2'\n >\n {renderExtraRow(item, index)}\n </TableCell>\n </TableRow>\n )}\n </React.Fragment>\n );\n })\n )}\n </TableBody>\n </Table>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../ui/lib/utils.cjs"),n=require("../../../ui/components/ui/button-components.cjs"),r=require("../../../ui/components/ui/dialog.cjs"),i=require("../../paraglide/messages/common_actions_ok.cjs"),a=require("../../paraglide/messages/errors_code.cjs"),o=require("../../paraglide/messages/errors_dialogtitle1.cjs"),s=require("../../lib/error/AppError.cjs"),c=require("../../lib/state/error-store.cjs");let l=require("react/jsx-runtime"),u=require("react");u=e.__toESM(u,1);let d=require("lucide-react");var f={info:{icon:d.Info,iconBgClass:`bg-blue-500`,iconClass:`text-white`,titleClass:`text-blue-600 dark:text-blue-400`},warning:{icon:d.AlertTriangle,iconBgClass:`bg-amber-500`,iconClass:`text-white`,titleClass:`text-amber-
|
|
1
|
+
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../ui/lib/utils.cjs"),n=require("../../../ui/components/ui/button-components.cjs"),r=require("../../../ui/components/ui/dialog.cjs"),i=require("../../paraglide/messages/common_actions_ok.cjs"),a=require("../../paraglide/messages/errors_code.cjs"),o=require("../../paraglide/messages/errors_dialogtitle1.cjs"),s=require("../../lib/error/AppError.cjs"),c=require("../../lib/state/error-store.cjs");let l=require("react/jsx-runtime"),u=require("react");u=e.__toESM(u,1);let d=require("lucide-react");var f={info:{icon:d.Info,iconBgClass:`bg-blue-500`,iconClass:`text-white`,titleClass:`text-blue-600 dark:text-blue-400`},warning:{icon:d.AlertTriangle,iconBgClass:`bg-amber-500`,iconClass:`text-white`,titleClass:`text-amber-800 dark:text-amber-400`},error:{icon:d.X,iconBgClass:`bg-red-500`,iconClass:`text-white`,titleClass:`text-red-600 dark:text-red-400`},critical:{icon:d.AlertCircle,iconBgClass:`bg-red-600`,iconClass:`text-white`,titleClass:`text-red-600 dark:text-red-400`}};function p({testId:e,error:u,open:d,onClose:p,primaryActionLabel:m,onPrimaryAction:h,secondaryActionLabel:g,onSecondaryAction:_}){let{removeError:v,getErrorsByMode:y}=c.useErrorStore(),b=y(`dialog`),x=b.length>0?b[0]:null,S=u??x?.error??null,C=d??x!==null,w=()=>{x&&v(x.id),p?.()},T=()=>{h?.(),w()},E=()=>{_?.(),w()};if(!S)return null;let D=S instanceof s.AppError?S.severity:`error`,O=f[D],k=O.icon;return(0,l.jsx)(r.Dialog,{open:C,onOpenChange:e=>!e&&w(),children:(0,l.jsxs)(r.DialogContent,{testId:e,"data-severity":D,className:`sm:max-w-md`,children:[(0,l.jsx)(r.DialogHeader,{children:(0,l.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,l.jsx)(`div`,{className:t.cn(`rounded-full p-1.5`,O.iconBgClass),children:(0,l.jsx)(k,{className:t.cn(`h-4 w-4`,O.iconClass),"aria-hidden":`true`})}),(0,l.jsx)(r.DialogTitle,{className:O.titleClass,children:o.errors_dialogTitle({defaultValue:`エラー`})})]})}),(0,l.jsx)(r.DialogDescription,{className:`text-foreground`,children:S.message}),S instanceof s.AppError&&S.code&&S.code!==`error/unknown`&&(0,l.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-2`,children:[a.errors_code({defaultValue:`コード`}),`: `,S.code]}),(0,l.jsxs)(r.DialogFooter,{className:`gap-2 sm:gap-0`,children:[g&&(0,l.jsx)(n.Button,{testId:e?`${e}-secondary`:void 0,variant:`outline`,onClick:E,children:g}),(0,l.jsx)(n.Button,{testId:e?`${e}-primary`:void 0,onClick:T,children:m??i.common_actions_ok({defaultValue:`OK`})})]})]})})}exports.ErrorDialog=p;
|
|
2
2
|
//# sourceMappingURL=ErrorDialog.cjs.map
|