@alneas/appkit-react 0.1.0 → 0.2.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 +53 -0
- package/README.md +85 -15
- package/consumer-ai/SKILL.md +12 -0
- package/consumer-ai/api-index.json +103754 -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 +23 -6
- package/dist/ai/action/use-screen-action.d.ts +23 -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 +42 -5
- package/dist/ai/action/use-screen-context.d.ts +42 -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 +133 -7
- package/dist/ai/proposal/use-proposal-batch-review.d.ts +133 -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 +6 -0
- package/dist/consumer-ai/api-index.json +103754 -0
- package/dist/consumer-ai/package-context.json +5 -3
- package/dist/mockServiceWorker.js +361 -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/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.js +286 -263
- 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/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/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/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-grid.cjs.map +1 -1
- package/dist/tools/components/form/form-grid.d.cts +44 -22
- package/dist/tools/components/form/form-grid.d.ts +44 -22
- 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 +16 -34
- package/dist/tools/components/kanban/KanbanBoard.d.ts +16 -34
- package/dist/tools/components/kanban/KanbanBoard.js +3 -0
- package/dist/tools/components/kanban/KanbanBoard.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.js +1 -1
- 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 +4 -1
- package/dist/tools/components/kanban/kanban-compound.js.map +1 -1
- 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.js +0 -1
- package/dist/tools/components/kanban/kanban-primitives.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.js +3 -1
- package/dist/tools/components/priority-queue/PriorityCard.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/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/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/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.map +1 -1
- package/dist/ui/components/ui/accordion.d.cts +60 -0
- package/dist/ui/components/ui/accordion.d.ts +60 -0
- 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.map +1 -1
- package/dist/ui/components/ui/alert-dialog.d.cts +179 -2
- package/dist/ui/components/ui/alert-dialog.d.ts +179 -2
- 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.map +1 -1
- package/dist/ui/components/ui/avatar.d.cts +87 -3
- package/dist/ui/components/ui/avatar.d.ts +87 -3
- 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.map +1 -1
- package/dist/ui/components/ui/button-components.d.cts +18 -6
- package/dist/ui/components/ui/button-components.d.ts +18 -6
- 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.map +1 -1
- package/dist/ui/components/ui/card.d.cts +106 -2
- package/dist/ui/components/ui/card.d.ts +106 -2
- 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.map +1 -1
- package/dist/ui/components/ui/checkbox.d.cts +17 -6
- package/dist/ui/components/ui/checkbox.d.ts +17 -6
- 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.map +1 -1
- package/dist/ui/components/ui/context-menu.d.cts +233 -2
- package/dist/ui/components/ui/context-menu.d.ts +233 -2
- package/dist/ui/components/ui/context-menu.js.map +1 -1
- package/dist/ui/components/ui/dialog.cjs.map +1 -1
- package/dist/ui/components/ui/dialog.d.cts +157 -5
- package/dist/ui/components/ui/dialog.d.ts +157 -5
- 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.map +1 -1
- package/dist/ui/components/ui/dropdown-menu.d.cts +225 -6
- package/dist/ui/components/ui/dropdown-menu.d.ts +225 -6
- 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.map +1 -1
- package/dist/ui/components/ui/field.d.cts +180 -6
- package/dist/ui/components/ui/field.d.ts +180 -6
- 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.map +1 -1
- package/dist/ui/components/ui/input.d.cts +18 -10
- package/dist/ui/components/ui/input.d.ts +18 -10
- 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.map +1 -1
- package/dist/ui/components/ui/label.d.cts +15 -0
- package/dist/ui/components/ui/label.d.ts +15 -0
- 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 +45 -11
- package/dist/ui/components/ui/layout.d.ts +45 -11
- package/dist/ui/components/ui/layout.js +22 -20
- 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.map +1 -1
- package/dist/ui/components/ui/mobile-form.d.cts +186 -9
- package/dist/ui/components/ui/mobile-form.d.ts +186 -9
- 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.map +1 -1
- package/dist/ui/components/ui/pagination.d.cts +99 -7
- package/dist/ui/components/ui/pagination.d.ts +99 -7
- package/dist/ui/components/ui/pagination.js.map +1 -1
- package/dist/ui/components/ui/password-input.cjs.map +1 -1
- package/dist/ui/components/ui/password-input.d.cts +10 -7
- package/dist/ui/components/ui/password-input.d.ts +10 -7
- package/dist/ui/components/ui/password-input.js.map +1 -1
- package/dist/ui/components/ui/popover.cjs.map +1 -1
- package/dist/ui/components/ui/popover.d.cts +86 -2
- package/dist/ui/components/ui/popover.d.ts +86 -2
- package/dist/ui/components/ui/popover.js.map +1 -1
- package/dist/ui/components/ui/progress.cjs.map +1 -1
- package/dist/ui/components/ui/progress.d.cts +72 -2
- package/dist/ui/components/ui/progress.d.ts +72 -2
- package/dist/ui/components/ui/progress.js.map +1 -1
- package/dist/ui/components/ui/radio-card.cjs.map +1 -1
- package/dist/ui/components/ui/radio-card.d.cts +32 -4
- package/dist/ui/components/ui/radio-card.d.ts +32 -4
- package/dist/ui/components/ui/radio-card.js.map +1 -1
- package/dist/ui/components/ui/radio-group.cjs.map +1 -1
- package/dist/ui/components/ui/radio-group.d.cts +28 -2
- package/dist/ui/components/ui/radio-group.d.ts +28 -2
- 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.map +1 -1
- package/dist/ui/components/ui/scroll-area.d.cts +28 -1
- package/dist/ui/components/ui/scroll-area.d.ts +28 -1
- 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.map +1 -1
- package/dist/ui/components/ui/select.d.cts +205 -40
- package/dist/ui/components/ui/select.d.ts +205 -40
- package/dist/ui/components/ui/select.js.map +1 -1
- package/dist/ui/components/ui/separator.cjs.map +1 -1
- package/dist/ui/components/ui/separator.d.cts +13 -2
- package/dist/ui/components/ui/separator.d.ts +13 -2
- package/dist/ui/components/ui/separator.js.map +1 -1
- package/dist/ui/components/ui/sheet.cjs.map +1 -1
- package/dist/ui/components/ui/sheet.d.cts +128 -3
- package/dist/ui/components/ui/sheet.d.ts +128 -3
- 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.map +1 -1
- package/dist/ui/components/ui/slider.d.cts +13 -7
- package/dist/ui/components/ui/slider.d.ts +13 -7
- 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.map +1 -1
- package/dist/ui/components/ui/switch.d.cts +26 -0
- package/dist/ui/components/ui/switch.d.ts +26 -0
- package/dist/ui/components/ui/switch.js.map +1 -1
- package/dist/ui/components/ui/table.cjs.map +1 -1
- package/dist/ui/components/ui/table.d.cts +118 -2
- package/dist/ui/components/ui/table.d.ts +118 -2
- 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.map +1 -1
- package/dist/ui/components/ui/textarea.d.cts +23 -0
- package/dist/ui/components/ui/textarea.d.ts +23 -0
- package/dist/ui/components/ui/textarea.js.map +1 -1
- package/dist/ui/components/ui/toast.cjs.map +1 -1
- package/dist/ui/components/ui/toast.d.cts +136 -0
- package/dist/ui/components/ui/toast.d.ts +136 -0
- 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.map +1 -1
- package/dist/ui/components/ui/toggle-components.d.cts +15 -0
- package/dist/ui/components/ui/toggle-components.d.ts +15 -0
- package/dist/ui/components/ui/toggle-components.js.map +1 -1
- package/dist/ui/components/ui/toggle-group.cjs.map +1 -1
- package/dist/ui/components/ui/toggle-group.d.cts +33 -0
- package/dist/ui/components/ui/toggle-group.d.ts +33 -0
- 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.map +1 -1
- package/dist/ui/components/ui/tooltip.d.cts +54 -3
- package/dist/ui/components/ui/tooltip.d.ts +54 -3
- 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.map +1 -1
- package/dist/ui/lib/hooks/use-keyboard-shortcut.d.cts +48 -18
- package/dist/ui/lib/hooks/use-keyboard-shortcut.d.ts +48 -18
- 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 +89 -16
- package/docs/migration.md +268 -0
- package/docs/request-form.md +4 -1
- package/docs/tools.md +4 -1
- package/docs/ui.md +4 -1
- package/llms-full.txt +499 -36
- package/llms.txt +4 -0
- package/package.json +35 -5
|
@@ -1,45 +1,138 @@
|
|
|
1
1
|
import { AuthAdapter, User } from './types.cjs';
|
|
2
|
+
/**
|
|
3
|
+
* Current display authentication state; see useAuth for provider setup.
|
|
4
|
+
*
|
|
5
|
+
* @see useAuth for the canonical usage example.
|
|
6
|
+
*/
|
|
2
7
|
export interface AuthState {
|
|
8
|
+
/**
|
|
9
|
+
* Current display user or null; optimistic display is not proof of a verified session.
|
|
10
|
+
*/
|
|
3
11
|
user: User | null;
|
|
12
|
+
/**
|
|
13
|
+
* True during initial hydration/query loading or tracked login/register/logout/OAuth work.
|
|
14
|
+
*/
|
|
4
15
|
isLoading: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Last tracked action error or session-query error; null when none is present.
|
|
18
|
+
*/
|
|
5
19
|
error: Error | null;
|
|
6
20
|
}
|
|
7
21
|
/**
|
|
8
|
-
*
|
|
22
|
+
* Authentication state and adapter-backed actions exposed by AuthProvider.
|
|
9
23
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
24
|
+
* @remarks Optional adapter capabilities are undefined when unsupported.
|
|
25
|
+
*
|
|
26
|
+
* @see useAuth for consumption; see AuthAdapter for argument/result contracts.
|
|
12
27
|
*/
|
|
13
28
|
export interface AuthContextValue extends AuthState {
|
|
14
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Whether a session query has fetched without placeholder data; false before verification even when optimistic caching is disabled.
|
|
31
|
+
*/
|
|
15
32
|
isSessionVerified?: boolean;
|
|
16
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Whether backend verification completed with user null; independent of whether optimistic caching is enabled.
|
|
35
|
+
*/
|
|
17
36
|
isLoggedOutKnown?: boolean;
|
|
18
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Whether the provider enabled optimistic display caching.
|
|
39
|
+
*/
|
|
19
40
|
optimisticSession?: boolean;
|
|
20
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* Sign in through the adapter; see AuthAdapter.login.
|
|
43
|
+
*
|
|
44
|
+
* @param email - Account email.
|
|
45
|
+
*
|
|
46
|
+
* @param password - Account password.
|
|
47
|
+
*
|
|
48
|
+
* @returns Signed-in user; adapter failures reject.
|
|
49
|
+
*/
|
|
21
50
|
login: AuthAdapter['login'];
|
|
22
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* Register through the adapter; see AuthAdapter.register.
|
|
53
|
+
*
|
|
54
|
+
* @param email - New account email.
|
|
55
|
+
*
|
|
56
|
+
* @param password - New account password.
|
|
57
|
+
*
|
|
58
|
+
* @param data - Optional display name.
|
|
59
|
+
*
|
|
60
|
+
* @returns Registered user; adapter failures reject.
|
|
61
|
+
*/
|
|
23
62
|
register: AuthAdapter['register'];
|
|
24
|
-
/**
|
|
63
|
+
/**
|
|
64
|
+
* Sign out through the adapter; see AuthAdapter.logout.
|
|
65
|
+
*
|
|
66
|
+
* @returns No value after adapter sign-out; adapter failures reject.
|
|
67
|
+
*/
|
|
25
68
|
logout: AuthAdapter['logout'];
|
|
26
|
-
/**
|
|
69
|
+
/**
|
|
70
|
+
* Request a reset through the adapter; see AuthAdapter.resetPassword.
|
|
71
|
+
*
|
|
72
|
+
* @param email - Account email.
|
|
73
|
+
*
|
|
74
|
+
* @returns No value after the adapter accepts the reset request; failures reject.
|
|
75
|
+
*/
|
|
27
76
|
resetPassword: AuthAdapter['resetPassword'];
|
|
28
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* Change email through the adapter; see AuthAdapter.updateEmail.
|
|
79
|
+
*
|
|
80
|
+
* @param email - Replacement email.
|
|
81
|
+
*
|
|
82
|
+
* @returns No value after adapter completion; failures reject.
|
|
83
|
+
*/
|
|
29
84
|
updateEmail: AuthAdapter['updateEmail'];
|
|
30
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* Change password through the adapter; see AuthAdapter.updatePassword.
|
|
87
|
+
*
|
|
88
|
+
* @param password - Replacement password.
|
|
89
|
+
*
|
|
90
|
+
* @returns No value after adapter completion; failures reject.
|
|
91
|
+
*/
|
|
31
92
|
updatePassword: AuthAdapter['updatePassword'];
|
|
32
|
-
/**
|
|
93
|
+
/**
|
|
94
|
+
* Optional adapter reauthentication capability; see AuthAdapter.reauthenticate.
|
|
95
|
+
*/
|
|
33
96
|
reauthenticate?: AuthAdapter['reauthenticate'];
|
|
34
|
-
/**
|
|
97
|
+
/**
|
|
98
|
+
* Optional verification-email capability; see AuthAdapter.sendVerificationEmail.
|
|
99
|
+
*/
|
|
35
100
|
sendVerificationEmail?: AuthAdapter['sendVerificationEmail'];
|
|
36
|
-
/**
|
|
101
|
+
/**
|
|
102
|
+
* Optional token capability; see AuthAdapter.getToken.
|
|
103
|
+
*/
|
|
37
104
|
getToken?: AuthAdapter['getToken'];
|
|
38
|
-
/**
|
|
105
|
+
/**
|
|
106
|
+
* Optional OAuth capability; see AuthAdapter.loginWithProvider.
|
|
107
|
+
*/
|
|
39
108
|
loginWithProvider?: AuthAdapter['loginWithProvider'];
|
|
40
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Nullable React authentication context; AuthProvider owns its populated value.
|
|
112
|
+
*
|
|
113
|
+
* @see useAuth for supported consumption and missing-provider checks.
|
|
114
|
+
*/
|
|
41
115
|
export declare const AuthContext: import('react').Context<AuthContextValue | null>;
|
|
42
116
|
/**
|
|
43
|
-
*
|
|
117
|
+
* Reads authentication state and adapter actions from the nearest AuthProvider.
|
|
118
|
+
*
|
|
119
|
+
* @returns Current display state and provider actions; optional capabilities can be undefined.
|
|
120
|
+
*
|
|
121
|
+
* @throws Error when used outside AuthProvider.
|
|
122
|
+
*
|
|
123
|
+
* @remarks Requires AuthProvider inside QueryClientProvider; no CSS is required by the hook.
|
|
124
|
+
* Actions can reject with adapter errors. Backend authorization remains host-owned.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```tsx
|
|
128
|
+
* import type { ReactNode } from 'react';
|
|
129
|
+
* import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
130
|
+
* import { AuthProvider, useAuth, type AuthAdapter } from '@alneas/appkit-react/tools/auth';
|
|
131
|
+
*
|
|
132
|
+
* function Content() { const { user } = useAuth(); return <span>{user?.email ?? 'Signed out'}</span>; }
|
|
133
|
+
* export function Example({ adapter, queryClient }: { adapter: AuthAdapter; queryClient: QueryClient }) {
|
|
134
|
+
* return <QueryClientProvider client={queryClient}><AuthProvider adapter={adapter}><Content /></AuthProvider></QueryClientProvider>;
|
|
135
|
+
* }
|
|
136
|
+
* ```
|
|
44
137
|
*/
|
|
45
138
|
export declare const useAuth: () => AuthContextValue;
|
|
@@ -1,45 +1,138 @@
|
|
|
1
1
|
import { AuthAdapter, User } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Current display authentication state; see useAuth for provider setup.
|
|
4
|
+
*
|
|
5
|
+
* @see useAuth for the canonical usage example.
|
|
6
|
+
*/
|
|
2
7
|
export interface AuthState {
|
|
8
|
+
/**
|
|
9
|
+
* Current display user or null; optimistic display is not proof of a verified session.
|
|
10
|
+
*/
|
|
3
11
|
user: User | null;
|
|
12
|
+
/**
|
|
13
|
+
* True during initial hydration/query loading or tracked login/register/logout/OAuth work.
|
|
14
|
+
*/
|
|
4
15
|
isLoading: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Last tracked action error or session-query error; null when none is present.
|
|
18
|
+
*/
|
|
5
19
|
error: Error | null;
|
|
6
20
|
}
|
|
7
21
|
/**
|
|
8
|
-
*
|
|
22
|
+
* Authentication state and adapter-backed actions exposed by AuthProvider.
|
|
9
23
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
24
|
+
* @remarks Optional adapter capabilities are undefined when unsupported.
|
|
25
|
+
*
|
|
26
|
+
* @see useAuth for consumption; see AuthAdapter for argument/result contracts.
|
|
12
27
|
*/
|
|
13
28
|
export interface AuthContextValue extends AuthState {
|
|
14
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Whether a session query has fetched without placeholder data; false before verification even when optimistic caching is disabled.
|
|
31
|
+
*/
|
|
15
32
|
isSessionVerified?: boolean;
|
|
16
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Whether backend verification completed with user null; independent of whether optimistic caching is enabled.
|
|
35
|
+
*/
|
|
17
36
|
isLoggedOutKnown?: boolean;
|
|
18
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Whether the provider enabled optimistic display caching.
|
|
39
|
+
*/
|
|
19
40
|
optimisticSession?: boolean;
|
|
20
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* Sign in through the adapter; see AuthAdapter.login.
|
|
43
|
+
*
|
|
44
|
+
* @param email - Account email.
|
|
45
|
+
*
|
|
46
|
+
* @param password - Account password.
|
|
47
|
+
*
|
|
48
|
+
* @returns Signed-in user; adapter failures reject.
|
|
49
|
+
*/
|
|
21
50
|
login: AuthAdapter['login'];
|
|
22
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* Register through the adapter; see AuthAdapter.register.
|
|
53
|
+
*
|
|
54
|
+
* @param email - New account email.
|
|
55
|
+
*
|
|
56
|
+
* @param password - New account password.
|
|
57
|
+
*
|
|
58
|
+
* @param data - Optional display name.
|
|
59
|
+
*
|
|
60
|
+
* @returns Registered user; adapter failures reject.
|
|
61
|
+
*/
|
|
23
62
|
register: AuthAdapter['register'];
|
|
24
|
-
/**
|
|
63
|
+
/**
|
|
64
|
+
* Sign out through the adapter; see AuthAdapter.logout.
|
|
65
|
+
*
|
|
66
|
+
* @returns No value after adapter sign-out; adapter failures reject.
|
|
67
|
+
*/
|
|
25
68
|
logout: AuthAdapter['logout'];
|
|
26
|
-
/**
|
|
69
|
+
/**
|
|
70
|
+
* Request a reset through the adapter; see AuthAdapter.resetPassword.
|
|
71
|
+
*
|
|
72
|
+
* @param email - Account email.
|
|
73
|
+
*
|
|
74
|
+
* @returns No value after the adapter accepts the reset request; failures reject.
|
|
75
|
+
*/
|
|
27
76
|
resetPassword: AuthAdapter['resetPassword'];
|
|
28
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* Change email through the adapter; see AuthAdapter.updateEmail.
|
|
79
|
+
*
|
|
80
|
+
* @param email - Replacement email.
|
|
81
|
+
*
|
|
82
|
+
* @returns No value after adapter completion; failures reject.
|
|
83
|
+
*/
|
|
29
84
|
updateEmail: AuthAdapter['updateEmail'];
|
|
30
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* Change password through the adapter; see AuthAdapter.updatePassword.
|
|
87
|
+
*
|
|
88
|
+
* @param password - Replacement password.
|
|
89
|
+
*
|
|
90
|
+
* @returns No value after adapter completion; failures reject.
|
|
91
|
+
*/
|
|
31
92
|
updatePassword: AuthAdapter['updatePassword'];
|
|
32
|
-
/**
|
|
93
|
+
/**
|
|
94
|
+
* Optional adapter reauthentication capability; see AuthAdapter.reauthenticate.
|
|
95
|
+
*/
|
|
33
96
|
reauthenticate?: AuthAdapter['reauthenticate'];
|
|
34
|
-
/**
|
|
97
|
+
/**
|
|
98
|
+
* Optional verification-email capability; see AuthAdapter.sendVerificationEmail.
|
|
99
|
+
*/
|
|
35
100
|
sendVerificationEmail?: AuthAdapter['sendVerificationEmail'];
|
|
36
|
-
/**
|
|
101
|
+
/**
|
|
102
|
+
* Optional token capability; see AuthAdapter.getToken.
|
|
103
|
+
*/
|
|
37
104
|
getToken?: AuthAdapter['getToken'];
|
|
38
|
-
/**
|
|
105
|
+
/**
|
|
106
|
+
* Optional OAuth capability; see AuthAdapter.loginWithProvider.
|
|
107
|
+
*/
|
|
39
108
|
loginWithProvider?: AuthAdapter['loginWithProvider'];
|
|
40
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Nullable React authentication context; AuthProvider owns its populated value.
|
|
112
|
+
*
|
|
113
|
+
* @see useAuth for supported consumption and missing-provider checks.
|
|
114
|
+
*/
|
|
41
115
|
export declare const AuthContext: import('react').Context<AuthContextValue | null>;
|
|
42
116
|
/**
|
|
43
|
-
*
|
|
117
|
+
* Reads authentication state and adapter actions from the nearest AuthProvider.
|
|
118
|
+
*
|
|
119
|
+
* @returns Current display state and provider actions; optional capabilities can be undefined.
|
|
120
|
+
*
|
|
121
|
+
* @throws Error when used outside AuthProvider.
|
|
122
|
+
*
|
|
123
|
+
* @remarks Requires AuthProvider inside QueryClientProvider; no CSS is required by the hook.
|
|
124
|
+
* Actions can reject with adapter errors. Backend authorization remains host-owned.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```tsx
|
|
128
|
+
* import type { ReactNode } from 'react';
|
|
129
|
+
* import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
130
|
+
* import { AuthProvider, useAuth, type AuthAdapter } from '@alneas/appkit-react/tools/auth';
|
|
131
|
+
*
|
|
132
|
+
* function Content() { const { user } = useAuth(); return <span>{user?.email ?? 'Signed out'}</span>; }
|
|
133
|
+
* export function Example({ adapter, queryClient }: { adapter: AuthAdapter; queryClient: QueryClient }) {
|
|
134
|
+
* return <QueryClientProvider client={queryClient}><AuthProvider adapter={adapter}><Content /></AuthProvider></QueryClientProvider>;
|
|
135
|
+
* }
|
|
136
|
+
* ```
|
|
44
137
|
*/
|
|
45
138
|
export declare const useAuth: () => AuthContextValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.js","names":["AuthContext","createContext","useAuth","context","useContext"],"sources":["../../../../src/tools/components/auth/useAuth.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport type { AuthAdapter, User } from './types';\n\nexport interface AuthState {\n user: User | null;\n isLoading: boolean;\n error: Error | null;\n}\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"useAuth.js","names":["AuthContext","createContext","useAuth","context","useContext"],"sources":["../../../../src/tools/components/auth/useAuth.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport type { AuthAdapter, User } from './types';\n\n/**\n * Current display authentication state; see useAuth for provider setup.\n *\n * @see useAuth for the canonical usage example.\n */\nexport interface AuthState {\n /**\n * Current display user or null; optimistic display is not proof of a verified session.\n */\n user: User | null;\n /**\n * True during initial hydration/query loading or tracked login/register/logout/OAuth work.\n */\n isLoading: boolean;\n /**\n * Last tracked action error or session-query error; null when none is present.\n */\n error: Error | null;\n}\n\n/**\n * Authentication state and adapter-backed actions exposed by AuthProvider.\n *\n * @remarks Optional adapter capabilities are undefined when unsupported.\n *\n * @see useAuth for consumption; see AuthAdapter for argument/result contracts.\n */\nexport interface AuthContextValue extends AuthState {\n /**\n * Whether a session query has fetched without placeholder data; false before verification even when optimistic caching is disabled.\n */\n isSessionVerified?: boolean;\n /**\n * Whether backend verification completed with user null; independent of whether optimistic caching is enabled.\n */\n isLoggedOutKnown?: boolean;\n /**\n * Whether the provider enabled optimistic display caching.\n */\n optimisticSession?: boolean;\n /**\n * Sign in through the adapter; see AuthAdapter.login.\n *\n * @param email - Account email.\n *\n * @param password - Account password.\n *\n * @returns Signed-in user; adapter failures reject.\n */\n login: AuthAdapter['login'];\n /**\n * Register through the adapter; see AuthAdapter.register.\n *\n * @param email - New account email.\n *\n * @param password - New account password.\n *\n * @param data - Optional display name.\n *\n * @returns Registered user; adapter failures reject.\n */\n register: AuthAdapter['register'];\n /**\n * Sign out through the adapter; see AuthAdapter.logout.\n *\n * @returns No value after adapter sign-out; adapter failures reject.\n */\n logout: AuthAdapter['logout'];\n /**\n * Request a reset through the adapter; see AuthAdapter.resetPassword.\n *\n * @param email - Account email.\n *\n * @returns No value after the adapter accepts the reset request; failures reject.\n */\n resetPassword: AuthAdapter['resetPassword'];\n /**\n * Change email through the adapter; see AuthAdapter.updateEmail.\n *\n * @param email - Replacement email.\n *\n * @returns No value after adapter completion; failures reject.\n */\n updateEmail: AuthAdapter['updateEmail'];\n /**\n * Change password through the adapter; see AuthAdapter.updatePassword.\n *\n * @param password - Replacement password.\n *\n * @returns No value after adapter completion; failures reject.\n */\n updatePassword: AuthAdapter['updatePassword'];\n /**\n * Optional adapter reauthentication capability; see AuthAdapter.reauthenticate.\n */\n reauthenticate?: AuthAdapter['reauthenticate'];\n /**\n * Optional verification-email capability; see AuthAdapter.sendVerificationEmail.\n */\n sendVerificationEmail?: AuthAdapter['sendVerificationEmail'];\n /**\n * Optional token capability; see AuthAdapter.getToken.\n */\n getToken?: AuthAdapter['getToken'];\n /**\n * Optional OAuth capability; see AuthAdapter.loginWithProvider.\n */\n loginWithProvider?: AuthAdapter['loginWithProvider'];\n}\n\n/**\n * Nullable React authentication context; AuthProvider owns its populated value.\n *\n * @see useAuth for supported consumption and missing-provider checks.\n */\nexport const AuthContext = createContext<AuthContextValue | null>(null);\n\n/**\n * Reads authentication state and adapter actions from the nearest AuthProvider.\n *\n * @returns Current display state and provider actions; optional capabilities can be undefined.\n *\n * @throws Error when used outside AuthProvider.\n *\n * @remarks Requires AuthProvider inside QueryClientProvider; no CSS is required by the hook.\n * Actions can reject with adapter errors. Backend authorization remains host-owned.\n *\n * @example\n * ```tsx\n * import type { ReactNode } from 'react';\n * import { QueryClient, QueryClientProvider } from '@tanstack/react-query';\n * import { AuthProvider, useAuth, type AuthAdapter } from '@alneas/appkit-react/tools/auth';\n *\n * function Content() { const { user } = useAuth(); return <span>{user?.email ?? 'Signed out'}</span>; }\n * export function Example({ adapter, queryClient }: { adapter: AuthAdapter; queryClient: QueryClient }) {\n * return <QueryClientProvider client={queryClient}><AuthProvider adapter={adapter}><Content /></AuthProvider></QueryClientProvider>;\n * }\n * ```\n */\nexport const useAuth = () => {\n const context = useContext(AuthContext);\n if (!context) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n return context;\n};\n"],"mappings":";;;AAsHA,IAAaA,IAAcC,EAAuC,IAAI,GAwBzDC,UAAgB;CAC3B,IAAMC,IAAUC,EAAWJ,CAAW;CACtC,IAAI,CAACG,GACH,MAAU,MAAM,6CAA6C;CAE/D,OAAOA;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuthGuard.cjs","names":["useAuth","useRef","useState","useCallback","require_tools_components_auth_useAuth","react","useAuthGuard","options","lastCheckRef","pendingRedirect","setPendingRedirect","handleAuthExpired","onAuthExpired","loginPath","logoutAndRedirect","logout","checkAuth","user","isLoading","checkOnVisibility","handleVisibilityChange","handleFocus","enablePeriodicCheck","interval","checkInterval"],"sources":["../../../../src/tools/components/auth/useAuthGuard.tsx"],"sourcesContent":["import { useEffect, useCallback, useRef, useState } from 'react';\nimport { useAuth } from './useAuth';\n\nexport interface AuthGuardOptions {\n
|
|
1
|
+
{"version":3,"file":"useAuthGuard.cjs","names":["useAuth","useRef","useState","useCallback","require_tools_components_auth_useAuth","react","useAuthGuard","options","lastCheckRef","pendingRedirect","setPendingRedirect","handleAuthExpired","onAuthExpired","loginPath","logoutAndRedirect","logout","checkAuth","user","isLoading","checkOnVisibility","handleVisibilityChange","handleFocus","enablePeriodicCheck","interval","checkInterval"],"sources":["../../../../src/tools/components/auth/useAuthGuard.tsx"],"sourcesContent":["import { useEffect, useCallback, useRef, useState } from 'react';\nimport { useAuth } from './useAuth';\n\n/**\n * Display-session checks and client navigation settings for useAuthGuard.\n *\n * @see useAuthGuard for behavior and setup.\n */\nexport interface AuthGuardOptions {\n /**\n * Callback used instead of navigation when a check finds no user; omitted by default. Callback errors propagate.\n */\n onAuthExpired?: () => void;\n /**\n * Destination assigned to window.location.href when no callback is supplied; defaults to /login.\n */\n loginPath?: string;\n /**\n * Check the current context on visible/focus events; defaults to true.\n */\n checkOnVisibility?: boolean;\n /**\n * Periodic timer interval in milliseconds; defaults to 60000 and is used only when periodic checks are enabled.\n */\n checkInterval?: number;\n /**\n * Start a repeating current-context check; defaults to false.\n */\n enablePeriodicCheck?: boolean;\n}\n\n/**\n * Display-session state and explicit check/navigation actions; see useAuthGuard.\n *\n * @see useAuthGuard for the canonical usage example.\n */\nexport interface AuthGuardResult {\n /**\n * Whether the context currently has a user; does not require isSessionVerified.\n */\n isAuthenticated: boolean;\n /**\n * Current AuthProvider loading flag.\n */\n isLoading: boolean;\n /**\n * Inspect current context, without a backend request.\n *\n * @returns No value; invokes expiry handling only when no user and not loading.\n */\n checkAuth: () => Promise<void>;\n /**\n * Attempt logout, swallow logout failure, then handle expiry.\n *\n * @returns No value after logout attempt and expiry callback or navigation scheduling.\n *\n * @throws Rejects if the supplied expiry callback throws.\n */\n logoutAndRedirect: () => Promise<void>;\n}\n\n/**\n * Checks current authentication context on explicit calls, focus or optional timers.\n *\n * @param options - Expiry callback/navigation and check scheduling; defaults to focus checks only.\n *\n * @returns Current display authentication/loading flags and explicit check/logout actions.\n *\n * @throws Error when no AuthProvider exists.\n *\n * @remarks Requires AuthProvider within QueryClientProvider. Checks do not call a backend\n * or refetch a session; they inspect useAuth state. Mounting alone does not redirect:\n * checkAuth must run via an event, timer or caller. onAuthExpired overrides navigation;\n * otherwise navigation is performed by an effect. Cleanup removes listeners/timers.\n * No CSS is required. Optimistic display state can report authenticated before verification.\n *\n * @example\n * ```tsx\n * import type { ReactNode } from 'react';\n * import { QueryClient, QueryClientProvider } from '@tanstack/react-query';\n * import { AuthProvider, useAuthGuard, type AuthAdapter } from '@alneas/appkit-react/tools/auth';\n *\n * function Content() { const { isAuthenticated } = useAuthGuard(); return <span>{isAuthenticated ? 'Signed in' : 'Signed out'}</span>; }\n * export function Example({ adapter, queryClient }: { adapter: AuthAdapter; queryClient: QueryClient }) {\n * return <QueryClientProvider client={queryClient}><AuthProvider adapter={adapter}><Content /></AuthProvider></QueryClientProvider>;\n * }\n * ```\n */\nexport function useAuthGuard(options: AuthGuardOptions = {}): AuthGuardResult {\n const {\n onAuthExpired,\n loginPath = '/login',\n checkOnVisibility = true,\n checkInterval = 60000,\n enablePeriodicCheck = false,\n } = options;\n\n const { user, isLoading, logout } = useAuth();\n const lastCheckRef = useRef<number>(0);\n // SSR-safe: Track pending redirect in state, perform in useEffect\n const [pendingRedirect, setPendingRedirect] = useState<string | null>(null);\n\n // Perform actual redirect in useEffect (client-only)\n useEffect(() => {\n lastCheckRef.current = Date.now();\n if (pendingRedirect) {\n window.location.href = pendingRedirect;\n }\n }, [pendingRedirect]);\n\n const handleAuthExpired = useCallback(() => {\n if (onAuthExpired) {\n onAuthExpired();\n } else {\n // Set state instead of directly accessing window\n setPendingRedirect(loginPath);\n }\n }, [onAuthExpired, loginPath]);\n\n const logoutAndRedirect = useCallback(async () => {\n try {\n await logout();\n } catch {\n // Ignore logout errors\n }\n handleAuthExpired();\n }, [logout, handleAuthExpired]);\n\n const checkAuth = useCallback(async () => {\n lastCheckRef.current = Date.now();\n // 認証状態は onAuthStateChanged で自動更新されるため、\n // ここでは現在のユーザー状態をチェック\n if (!user && !isLoading) {\n handleAuthExpired();\n }\n }, [user, isLoading, handleAuthExpired]);\n\n // タブがフォーカスされた時のチェック\n useEffect(() => {\n if (!checkOnVisibility) return;\n\n const handleVisibilityChange = () => {\n if (document.visibilityState === 'visible') {\n // タブがアクティブになった時、認証状態をチェック\n checkAuth();\n }\n };\n\n const handleFocus = () => {\n // window.focus イベントでもチェック\n checkAuth();\n };\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n window.addEventListener('focus', handleFocus);\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n window.removeEventListener('focus', handleFocus);\n };\n }, [checkOnVisibility, checkAuth]);\n\n // 定期チェック\n useEffect(() => {\n if (!enablePeriodicCheck) return;\n\n const interval = setInterval(() => {\n checkAuth();\n }, checkInterval);\n\n return () => clearInterval(interval);\n }, [enablePeriodicCheck, checkInterval, checkAuth]);\n\n // ユーザーが null になった時の処理 (セッション切れ)\n useEffect(() => {\n if (!isLoading && !user) {\n // 初回ロード後にユーザーがいない場合\n // onAuthExpired は呼ばず、コンポーネント側で判断させる\n }\n }, [user, isLoading]);\n\n return {\n isAuthenticated: !!user,\n isLoading,\n checkAuth,\n logoutAndRedirect,\n };\n}\n"],"mappings":"A,wIAwFA,SAAgBM,EAAa,EAA4B,CAAC,EAAoB,CAC5E,GAAM,CACJ,gBACA,YAAY,SACZ,oBAAoB,GACpB,gBAAgB,IAChB,sBAAsB,IACpBC,EAEE,CAAE,OAAM,YAAW,UAAWP,EAAAA,QAAQ,EACtCQ,GAAA,EAAeP,EAAAA,OAAAA,CAAe,CAAC,EAE/B,CAACQ,EAAiBC,IAAA,EAAsBR,EAAAA,SAAAA,CAAwB,IAAI,GAG1E,EAAAG,EAAA,UAAA,KAAgB,CACd,EAAa,QAAU,KAAK,IAAI,EAC5BI,IACF,OAAO,SAAS,KAAOA,EAE3B,EAAG,CAACA,CAAe,CAAC,EAEpB,IAAME,GAAA,EAAoBR,EAAAA,YAAAA,KAAkB,CACtCS,EACFA,EAAc,EAGdF,EAAmBG,CAAS,CAEhC,EAAG,CAACD,EAAeC,CAAS,CAAC,EAEvBC,GAAA,EAAoBX,EAAAA,YAAAA,CAAY,SAAY,CAChD,GAAI,CACF,MAAMY,EAAO,CACf,MAAQ,CAER,CACAJ,EAAkB,CACpB,EAAG,CAACI,EAAQJ,CAAiB,CAAC,EAExBK,GAAA,EAAYb,EAAAA,YAAAA,CAAY,SAAY,CACxC,EAAa,QAAU,KAAK,IAAI,EAG5B,CAACc,GAAQ,CAACC,GACZP,EAAkB,CAEtB,EAAG,CAACM,EAAMC,EAAWP,CAAiB,CAAC,EA8CvC,OA3CA,EAAAN,EAAA,UAAA,KAAgB,CACd,GAAI,CAACc,EAAmB,OAExB,IAAMC,MAA+B,CAC/B,SAAS,kBAAoB,WAE/BJ,EAAU,CAEd,EAEMK,MAAoB,CAExBL,EAAU,CACZ,EAKA,OAHA,SAAS,iBAAiB,mBAAoBI,CAAsB,EACpE,OAAO,iBAAiB,QAASC,CAAW,MAE/B,CACX,SAAS,oBAAoB,mBAAoBD,CAAsB,EACvE,OAAO,oBAAoB,QAASC,CAAW,CACjD,CACF,EAAG,CAACF,EAAmBH,CAAS,CAAC,GAGjC,EAAAX,EAAA,UAAA,KAAgB,CACd,GAAI,CAACiB,EAAqB,OAE1B,IAAMC,EAAW,gBAAkB,CACjCP,EAAU,CACZ,EAAGQ,CAAa,EAEhB,UAAa,cAAcD,CAAQ,CACrC,EAAG,CAACD,EAAqBE,EAAeR,CAAS,CAAC,GAGlD,EAAAX,EAAA,UAAA,KAAgB,CAKhB,EAAG,CAACY,EAAMC,CAAS,CAAC,EAEb,CACL,gBAAiB,CAAC,CAACD,EACnB,YACA,YACA,mBACF,CACF,C"}
|
|
@@ -1,72 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Display-session checks and client navigation settings for useAuthGuard.
|
|
3
|
+
*
|
|
4
|
+
* @see useAuthGuard for behavior and setup.
|
|
5
|
+
*/
|
|
1
6
|
export interface AuthGuardOptions {
|
|
2
7
|
/**
|
|
3
|
-
*
|
|
4
|
-
* @default undefined
|
|
8
|
+
* Callback used instead of navigation when a check finds no user; omitted by default. Callback errors propagate.
|
|
5
9
|
*/
|
|
6
10
|
onAuthExpired?: () => void;
|
|
7
11
|
/**
|
|
8
|
-
*
|
|
9
|
-
* @default '/login'
|
|
12
|
+
* Destination assigned to window.location.href when no callback is supplied; defaults to /login.
|
|
10
13
|
*/
|
|
11
14
|
loginPath?: string;
|
|
12
15
|
/**
|
|
13
|
-
*
|
|
14
|
-
* @default true
|
|
16
|
+
* Check the current context on visible/focus events; defaults to true.
|
|
15
17
|
*/
|
|
16
18
|
checkOnVisibility?: boolean;
|
|
17
19
|
/**
|
|
18
|
-
*
|
|
19
|
-
* @default 60000 (1分)
|
|
20
|
+
* Periodic timer interval in milliseconds; defaults to 60000 and is used only when periodic checks are enabled.
|
|
20
21
|
*/
|
|
21
22
|
checkInterval?: number;
|
|
22
23
|
/**
|
|
23
|
-
*
|
|
24
|
-
* @default false
|
|
24
|
+
* Start a repeating current-context check; defaults to false.
|
|
25
25
|
*/
|
|
26
26
|
enablePeriodicCheck?: boolean;
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Display-session state and explicit check/navigation actions; see useAuthGuard.
|
|
30
|
+
*
|
|
31
|
+
* @see useAuthGuard for the canonical usage example.
|
|
32
|
+
*/
|
|
28
33
|
export interface AuthGuardResult {
|
|
29
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* Whether the context currently has a user; does not require isSessionVerified.
|
|
36
|
+
*/
|
|
30
37
|
isAuthenticated: boolean;
|
|
31
|
-
/**
|
|
38
|
+
/**
|
|
39
|
+
* Current AuthProvider loading flag.
|
|
40
|
+
*/
|
|
32
41
|
isLoading: boolean;
|
|
33
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* Inspect current context, without a backend request.
|
|
44
|
+
*
|
|
45
|
+
* @returns No value; invokes expiry handling only when no user and not loading.
|
|
46
|
+
*/
|
|
34
47
|
checkAuth: () => Promise<void>;
|
|
35
|
-
/**
|
|
48
|
+
/**
|
|
49
|
+
* Attempt logout, swallow logout failure, then handle expiry.
|
|
50
|
+
*
|
|
51
|
+
* @returns No value after logout attempt and expiry callback or navigation scheduling.
|
|
52
|
+
*
|
|
53
|
+
* @throws Rejects if the supplied expiry callback throws.
|
|
54
|
+
*/
|
|
36
55
|
logoutAndRedirect: () => Promise<void>;
|
|
37
56
|
}
|
|
38
57
|
/**
|
|
39
|
-
*
|
|
58
|
+
* Checks current authentication context on explicit calls, focus or optional timers.
|
|
40
59
|
*
|
|
41
|
-
*
|
|
42
|
-
* - onAuthStateChanged によるリアルタイム監視
|
|
43
|
-
* - タブフォーカス時の認証チェック
|
|
44
|
-
* - オプションの定期チェック
|
|
45
|
-
* - 認証切れ時の自動リダイレクト
|
|
60
|
+
* @param options - Expiry callback/navigation and check scheduling; defaults to focus checks only.
|
|
46
61
|
*
|
|
47
|
-
* @
|
|
48
|
-
* ```tsx
|
|
49
|
-
* function App() {
|
|
50
|
-
* useAuthGuard({
|
|
51
|
-
* onAuthExpired: () => navigate('/login'),
|
|
52
|
-
* checkOnVisibility: true,
|
|
53
|
-
* });
|
|
62
|
+
* @returns Current display authentication/loading flags and explicit check/logout actions.
|
|
54
63
|
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
64
|
+
* @throws Error when no AuthProvider exists.
|
|
65
|
+
*
|
|
66
|
+
* @remarks Requires AuthProvider within QueryClientProvider. Checks do not call a backend
|
|
67
|
+
* or refetch a session; they inspect useAuth state. Mounting alone does not redirect:
|
|
68
|
+
* checkAuth must run via an event, timer or caller. onAuthExpired overrides navigation;
|
|
69
|
+
* otherwise navigation is performed by an effect. Cleanup removes listeners/timers.
|
|
70
|
+
* No CSS is required. Optimistic display state can report authenticated before verification.
|
|
58
71
|
*
|
|
59
72
|
* @example
|
|
60
73
|
* ```tsx
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* loginPath: '/login',
|
|
65
|
-
* });
|
|
74
|
+
* import type { ReactNode } from 'react';
|
|
75
|
+
* import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
76
|
+
* import { AuthProvider, useAuthGuard, type AuthAdapter } from '@alneas/appkit-react/tools/auth';
|
|
66
77
|
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* return
|
|
78
|
+
* function Content() { const { isAuthenticated } = useAuthGuard(); return <span>{isAuthenticated ? 'Signed in' : 'Signed out'}</span>; }
|
|
79
|
+
* export function Example({ adapter, queryClient }: { adapter: AuthAdapter; queryClient: QueryClient }) {
|
|
80
|
+
* return <QueryClientProvider client={queryClient}><AuthProvider adapter={adapter}><Content /></AuthProvider></QueryClientProvider>;
|
|
70
81
|
* }
|
|
71
82
|
* ```
|
|
72
83
|
*/
|
|
@@ -1,72 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Display-session checks and client navigation settings for useAuthGuard.
|
|
3
|
+
*
|
|
4
|
+
* @see useAuthGuard for behavior and setup.
|
|
5
|
+
*/
|
|
1
6
|
export interface AuthGuardOptions {
|
|
2
7
|
/**
|
|
3
|
-
*
|
|
4
|
-
* @default undefined
|
|
8
|
+
* Callback used instead of navigation when a check finds no user; omitted by default. Callback errors propagate.
|
|
5
9
|
*/
|
|
6
10
|
onAuthExpired?: () => void;
|
|
7
11
|
/**
|
|
8
|
-
*
|
|
9
|
-
* @default '/login'
|
|
12
|
+
* Destination assigned to window.location.href when no callback is supplied; defaults to /login.
|
|
10
13
|
*/
|
|
11
14
|
loginPath?: string;
|
|
12
15
|
/**
|
|
13
|
-
*
|
|
14
|
-
* @default true
|
|
16
|
+
* Check the current context on visible/focus events; defaults to true.
|
|
15
17
|
*/
|
|
16
18
|
checkOnVisibility?: boolean;
|
|
17
19
|
/**
|
|
18
|
-
*
|
|
19
|
-
* @default 60000 (1分)
|
|
20
|
+
* Periodic timer interval in milliseconds; defaults to 60000 and is used only when periodic checks are enabled.
|
|
20
21
|
*/
|
|
21
22
|
checkInterval?: number;
|
|
22
23
|
/**
|
|
23
|
-
*
|
|
24
|
-
* @default false
|
|
24
|
+
* Start a repeating current-context check; defaults to false.
|
|
25
25
|
*/
|
|
26
26
|
enablePeriodicCheck?: boolean;
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Display-session state and explicit check/navigation actions; see useAuthGuard.
|
|
30
|
+
*
|
|
31
|
+
* @see useAuthGuard for the canonical usage example.
|
|
32
|
+
*/
|
|
28
33
|
export interface AuthGuardResult {
|
|
29
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* Whether the context currently has a user; does not require isSessionVerified.
|
|
36
|
+
*/
|
|
30
37
|
isAuthenticated: boolean;
|
|
31
|
-
/**
|
|
38
|
+
/**
|
|
39
|
+
* Current AuthProvider loading flag.
|
|
40
|
+
*/
|
|
32
41
|
isLoading: boolean;
|
|
33
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* Inspect current context, without a backend request.
|
|
44
|
+
*
|
|
45
|
+
* @returns No value; invokes expiry handling only when no user and not loading.
|
|
46
|
+
*/
|
|
34
47
|
checkAuth: () => Promise<void>;
|
|
35
|
-
/**
|
|
48
|
+
/**
|
|
49
|
+
* Attempt logout, swallow logout failure, then handle expiry.
|
|
50
|
+
*
|
|
51
|
+
* @returns No value after logout attempt and expiry callback or navigation scheduling.
|
|
52
|
+
*
|
|
53
|
+
* @throws Rejects if the supplied expiry callback throws.
|
|
54
|
+
*/
|
|
36
55
|
logoutAndRedirect: () => Promise<void>;
|
|
37
56
|
}
|
|
38
57
|
/**
|
|
39
|
-
*
|
|
58
|
+
* Checks current authentication context on explicit calls, focus or optional timers.
|
|
40
59
|
*
|
|
41
|
-
*
|
|
42
|
-
* - onAuthStateChanged によるリアルタイム監視
|
|
43
|
-
* - タブフォーカス時の認証チェック
|
|
44
|
-
* - オプションの定期チェック
|
|
45
|
-
* - 認証切れ時の自動リダイレクト
|
|
60
|
+
* @param options - Expiry callback/navigation and check scheduling; defaults to focus checks only.
|
|
46
61
|
*
|
|
47
|
-
* @
|
|
48
|
-
* ```tsx
|
|
49
|
-
* function App() {
|
|
50
|
-
* useAuthGuard({
|
|
51
|
-
* onAuthExpired: () => navigate('/login'),
|
|
52
|
-
* checkOnVisibility: true,
|
|
53
|
-
* });
|
|
62
|
+
* @returns Current display authentication/loading flags and explicit check/logout actions.
|
|
54
63
|
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
64
|
+
* @throws Error when no AuthProvider exists.
|
|
65
|
+
*
|
|
66
|
+
* @remarks Requires AuthProvider within QueryClientProvider. Checks do not call a backend
|
|
67
|
+
* or refetch a session; they inspect useAuth state. Mounting alone does not redirect:
|
|
68
|
+
* checkAuth must run via an event, timer or caller. onAuthExpired overrides navigation;
|
|
69
|
+
* otherwise navigation is performed by an effect. Cleanup removes listeners/timers.
|
|
70
|
+
* No CSS is required. Optimistic display state can report authenticated before verification.
|
|
58
71
|
*
|
|
59
72
|
* @example
|
|
60
73
|
* ```tsx
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* loginPath: '/login',
|
|
65
|
-
* });
|
|
74
|
+
* import type { ReactNode } from 'react';
|
|
75
|
+
* import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
76
|
+
* import { AuthProvider, useAuthGuard, type AuthAdapter } from '@alneas/appkit-react/tools/auth';
|
|
66
77
|
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* return
|
|
78
|
+
* function Content() { const { isAuthenticated } = useAuthGuard(); return <span>{isAuthenticated ? 'Signed in' : 'Signed out'}</span>; }
|
|
79
|
+
* export function Example({ adapter, queryClient }: { adapter: AuthAdapter; queryClient: QueryClient }) {
|
|
80
|
+
* return <QueryClientProvider client={queryClient}><AuthProvider adapter={adapter}><Content /></AuthProvider></QueryClientProvider>;
|
|
70
81
|
* }
|
|
71
82
|
* ```
|
|
72
83
|
*/
|