@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobile-form-variants.cjs","names":["cva","class_variance_authority","mobileButtonVariants","fabVariants"],"sources":["../../../../src/ui/components/ui/mobile-form-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const mobileButtonVariants = cva(\n // Base styles\n [\n 'inline-flex items-center justify-center gap-2 rounded-lg font-medium',\n 'transition-all outline-none select-none shrink-0',\n 'focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'disabled:pointer-events-none disabled:opacity-50',\n 'active:scale-[0.98]',\n \"[&_svg:not([class*='size-'])]:size-5 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ].join(' '),\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n },\n size: {\n sm: 'h-10 px-4 text-sm',\n default: 'h-12 px-6 text-base',\n lg: 'h-14 px-8 text-lg',\n full: 'h-12 w-full text-base',\n icon: 'h-12 w-12',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport const fabVariants = cva(\n [\n 'fixed z-50 flex items-center justify-center gap-2',\n 'bg-primary text-primary-foreground shadow-lg',\n 'transition-all active:scale-95',\n 'focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:ring-offset-2 outline-none',\n \"[&_svg:not([class*='size-'])]:size-6 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ].join(' '),\n {\n variants: {\n position: {\n 'bottom-right': 'right-4 bottom-20',\n 'bottom-center': 'left-1/2 -translate-x-1/2 bottom-20',\n 'bottom-left': 'left-4 bottom-20',\n },\n extended: {\n true: 'h-14 px-6 rounded-full',\n false: 'h-14 w-14 rounded-full',\n },\n },\n defaultVariants: {\n position: 'bottom-right',\n extended: false,\n },\n },\n);\n"],"mappings":"A,
|
|
1
|
+
{"version":3,"file":"mobile-form-variants.cjs","names":["cva","class_variance_authority","mobileButtonVariants","fabVariants"],"sources":["../../../../src/ui/components/ui/mobile-form-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\n/**\n * Builds large-touch button classes for mobile forms.\n * @param props - Optional declared variant axes and additional class/className values; omission applies the CVA defaults documented below.\n * @returns The combined CSS class string for the supplied variant axes and additional class/className values.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. variant and size default to default; sizes sm/lg/full/icon are also supported. These pure CVA helpers return class strings and do not add behavior or DOM attributes.\n * @example\n * ```tsx\n * import { mobileButtonVariants, fabVariants } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<><div className={mobileButtonVariants()}>Touch button</div><div className={fabVariants()}>Floating action</div></>);\n * }\n * ```\n */\nexport const mobileButtonVariants = cva(\n // Base styles\n [\n 'inline-flex items-center justify-center gap-2 rounded-lg font-medium',\n 'transition-all outline-none select-none shrink-0',\n 'focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'disabled:pointer-events-none disabled:opacity-50',\n 'active:scale-[0.98]',\n \"[&_svg:not([class*='size-'])]:size-5 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ].join(' '),\n {\n variants: {\n /**\n * Visual treatment selected by the consumer; these values change CSS classes only.\n * Accepted values: default, secondary, outline, ghost, destructive.\n * @defaultValue 'default'\n * @see mobileButtonVariants\n */\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n },\n /**\n * Control size preset selected by the consumer; sizes are class-based rather than numeric dimensions.\n * Accepted values: sm, default, lg, full, icon.\n * @defaultValue 'default'\n * @see mobileButtonVariants\n */\n size: {\n sm: 'h-10 px-4 text-sm',\n default: 'h-12 px-6 text-base',\n lg: 'h-14 px-8 text-lg',\n full: 'h-12 w-full text-base',\n icon: 'h-12 w-12',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\n/**\n * Builds fixed-position classes for circular or extended floating action buttons.\n * @param props - Optional declared variant axes and additional class/className values; omission applies the CVA defaults documented below.\n * @returns The fixed-position FAB class string; position defaults to bottom-right and extended to false.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. variant and size default to default; sizes sm/lg/full/icon are also supported. These pure CVA helpers return class strings and do not add behavior or DOM attributes.\n * @example\n * ```tsx\n * import { mobileButtonVariants, fabVariants } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<><div className={mobileButtonVariants()}>Touch button</div><div className={fabVariants()}>Floating action</div></>);\n * }\n * ```\n */\nexport const fabVariants = cva(\n [\n 'fixed z-50 flex items-center justify-center gap-2',\n 'bg-primary text-primary-foreground shadow-lg',\n 'transition-all active:scale-95',\n 'focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:ring-offset-2 outline-none',\n \"[&_svg:not([class*='size-'])]:size-6 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ].join(' '),\n {\n variants: {\n /**\n * Fixed floating-action placement relative to the viewport.\n * Accepted values: 'bottom-right', 'bottom-center', 'bottom-left'.\n * @defaultValue 'bottom-right'\n * @see fabVariants\n */\n position: {\n 'bottom-right': 'right-4 bottom-20',\n 'bottom-center': 'left-1/2 -translate-x-1/2 bottom-20',\n 'bottom-left': 'left-4 bottom-20',\n },\n /**\n * Whether the floating action surface uses extended padding instead of a circular footprint.\n * Accepted values: true, false.\n * @defaultValue false\n * @see fabVariants\n */\n extended: {\n true: 'h-14 px-6 rounded-full',\n false: 'h-14 w-14 rounded-full',\n },\n },\n defaultVariants: {\n position: 'bottom-right',\n extended: false,\n },\n },\n);\n"],"mappings":"A,0HAiBA,IAAaE,GAAA,EAAuBF,EAAAA,IAAAA,CAElC,CACE,uEACA,mDACA,sDACA,mDACA,sBACA,mFACF,CAAC,CAAC,KAAK,GAAG,EACV,CACE,SAAU,CAOR,QAAS,CACP,QAAS,yDACT,UAAW,+DACX,QAAS,iFACT,MAAO,+CACP,YAAa,oEACf,EAOA,KAAM,CACJ,GAAI,oBACJ,QAAS,sBACT,GAAI,oBACJ,KAAM,wBACN,KAAM,WACR,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAiBaG,GAAA,EAAcH,EAAAA,IAAAA,CACzB,CACE,oDACA,+CACA,iCACA,+FACA,mFACF,CAAC,CAAC,KAAK,GAAG,EACV,CACE,SAAU,CAOR,SAAU,CACR,eAAgB,oBAChB,gBAAiB,sCACjB,cAAe,kBACjB,EAOA,SAAU,CACR,KAAM,yBACN,MAAO,wBACT,CACF,EACA,gBAAiB,CACf,SAAU,eACV,SAAU,EACZ,CACF,CACF,E"}
|
|
@@ -1,7 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds large-touch button classes for mobile forms.
|
|
3
|
+
* @param props - Optional declared variant axes and additional class/className values; omission applies the CVA defaults documented below.
|
|
4
|
+
* @returns The combined CSS class string for the supplied variant axes and additional class/className values.
|
|
5
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. variant and size default to default; sizes sm/lg/full/icon are also supported. These pure CVA helpers return class strings and do not add behavior or DOM attributes.
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* import { mobileButtonVariants, fabVariants } from '@alneas/appkit-react/ui';
|
|
9
|
+
* import '@alneas/appkit-react/styles';
|
|
10
|
+
*
|
|
11
|
+
* export function Example() {
|
|
12
|
+
* return (<><div className={mobileButtonVariants()}>Touch button</div><div className={fabVariants()}>Floating action</div></>);
|
|
13
|
+
* }
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
1
16
|
export declare const mobileButtonVariants: (props?: ({
|
|
2
17
|
variant?: "default" | "outline" | "secondary" | "ghost" | "destructive" | null | undefined;
|
|
3
18
|
size?: "default" | "sm" | "lg" | "icon" | "full" | null | undefined;
|
|
4
19
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
20
|
+
/**
|
|
21
|
+
* Builds fixed-position classes for circular or extended floating action buttons.
|
|
22
|
+
* @param props - Optional declared variant axes and additional class/className values; omission applies the CVA defaults documented below.
|
|
23
|
+
* @returns The fixed-position FAB class string; position defaults to bottom-right and extended to false.
|
|
24
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. variant and size default to default; sizes sm/lg/full/icon are also supported. These pure CVA helpers return class strings and do not add behavior or DOM attributes.
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* import { mobileButtonVariants, fabVariants } from '@alneas/appkit-react/ui';
|
|
28
|
+
* import '@alneas/appkit-react/styles';
|
|
29
|
+
*
|
|
30
|
+
* export function Example() {
|
|
31
|
+
* return (<><div className={mobileButtonVariants()}>Touch button</div><div className={fabVariants()}>Floating action</div></>);
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
5
35
|
export declare const fabVariants: (props?: ({
|
|
6
36
|
position?: "bottom-right" | "bottom-center" | "bottom-left" | null | undefined;
|
|
7
37
|
extended?: boolean | null | undefined;
|
|
@@ -1,7 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds large-touch button classes for mobile forms.
|
|
3
|
+
* @param props - Optional declared variant axes and additional class/className values; omission applies the CVA defaults documented below.
|
|
4
|
+
* @returns The combined CSS class string for the supplied variant axes and additional class/className values.
|
|
5
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. variant and size default to default; sizes sm/lg/full/icon are also supported. These pure CVA helpers return class strings and do not add behavior or DOM attributes.
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* import { mobileButtonVariants, fabVariants } from '@alneas/appkit-react/ui';
|
|
9
|
+
* import '@alneas/appkit-react/styles';
|
|
10
|
+
*
|
|
11
|
+
* export function Example() {
|
|
12
|
+
* return (<><div className={mobileButtonVariants()}>Touch button</div><div className={fabVariants()}>Floating action</div></>);
|
|
13
|
+
* }
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
1
16
|
export declare const mobileButtonVariants: (props?: ({
|
|
2
17
|
variant?: "default" | "outline" | "secondary" | "ghost" | "destructive" | null | undefined;
|
|
3
18
|
size?: "default" | "sm" | "lg" | "icon" | "full" | null | undefined;
|
|
4
19
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
20
|
+
/**
|
|
21
|
+
* Builds fixed-position classes for circular or extended floating action buttons.
|
|
22
|
+
* @param props - Optional declared variant axes and additional class/className values; omission applies the CVA defaults documented below.
|
|
23
|
+
* @returns The fixed-position FAB class string; position defaults to bottom-right and extended to false.
|
|
24
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. variant and size default to default; sizes sm/lg/full/icon are also supported. These pure CVA helpers return class strings and do not add behavior or DOM attributes.
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* import { mobileButtonVariants, fabVariants } from '@alneas/appkit-react/ui';
|
|
28
|
+
* import '@alneas/appkit-react/styles';
|
|
29
|
+
*
|
|
30
|
+
* export function Example() {
|
|
31
|
+
* return (<><div className={mobileButtonVariants()}>Touch button</div><div className={fabVariants()}>Floating action</div></>);
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
5
35
|
export declare const fabVariants: (props?: ({
|
|
6
36
|
position?: "bottom-right" | "bottom-center" | "bottom-left" | null | undefined;
|
|
7
37
|
extended?: boolean | null | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobile-form-variants.js","names":["mobileButtonVariants","cva","fabVariants"],"sources":["../../../../src/ui/components/ui/mobile-form-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport const mobileButtonVariants = cva(\n // Base styles\n [\n 'inline-flex items-center justify-center gap-2 rounded-lg font-medium',\n 'transition-all outline-none select-none shrink-0',\n 'focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'disabled:pointer-events-none disabled:opacity-50',\n 'active:scale-[0.98]',\n \"[&_svg:not([class*='size-'])]:size-5 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ].join(' '),\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n },\n size: {\n sm: 'h-10 px-4 text-sm',\n default: 'h-12 px-6 text-base',\n lg: 'h-14 px-8 text-lg',\n full: 'h-12 w-full text-base',\n icon: 'h-12 w-12',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport const fabVariants = cva(\n [\n 'fixed z-50 flex items-center justify-center gap-2',\n 'bg-primary text-primary-foreground shadow-lg',\n 'transition-all active:scale-95',\n 'focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:ring-offset-2 outline-none',\n \"[&_svg:not([class*='size-'])]:size-6 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ].join(' '),\n {\n variants: {\n position: {\n 'bottom-right': 'right-4 bottom-20',\n 'bottom-center': 'left-1/2 -translate-x-1/2 bottom-20',\n 'bottom-left': 'left-4 bottom-20',\n },\n extended: {\n true: 'h-14 px-6 rounded-full',\n false: 'h-14 w-14 rounded-full',\n },\n },\n defaultVariants: {\n position: 'bottom-right',\n extended: false,\n },\n },\n);\n"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"mobile-form-variants.js","names":["mobileButtonVariants","cva","fabVariants"],"sources":["../../../../src/ui/components/ui/mobile-form-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\n/**\n * Builds large-touch button classes for mobile forms.\n * @param props - Optional declared variant axes and additional class/className values; omission applies the CVA defaults documented below.\n * @returns The combined CSS class string for the supplied variant axes and additional class/className values.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. variant and size default to default; sizes sm/lg/full/icon are also supported. These pure CVA helpers return class strings and do not add behavior or DOM attributes.\n * @example\n * ```tsx\n * import { mobileButtonVariants, fabVariants } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<><div className={mobileButtonVariants()}>Touch button</div><div className={fabVariants()}>Floating action</div></>);\n * }\n * ```\n */\nexport const mobileButtonVariants = cva(\n // Base styles\n [\n 'inline-flex items-center justify-center gap-2 rounded-lg font-medium',\n 'transition-all outline-none select-none shrink-0',\n 'focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'disabled:pointer-events-none disabled:opacity-50',\n 'active:scale-[0.98]',\n \"[&_svg:not([class*='size-'])]:size-5 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ].join(' '),\n {\n variants: {\n /**\n * Visual treatment selected by the consumer; these values change CSS classes only.\n * Accepted values: default, secondary, outline, ghost, destructive.\n * @defaultValue 'default'\n * @see mobileButtonVariants\n */\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n },\n /**\n * Control size preset selected by the consumer; sizes are class-based rather than numeric dimensions.\n * Accepted values: sm, default, lg, full, icon.\n * @defaultValue 'default'\n * @see mobileButtonVariants\n */\n size: {\n sm: 'h-10 px-4 text-sm',\n default: 'h-12 px-6 text-base',\n lg: 'h-14 px-8 text-lg',\n full: 'h-12 w-full text-base',\n icon: 'h-12 w-12',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\n/**\n * Builds fixed-position classes for circular or extended floating action buttons.\n * @param props - Optional declared variant axes and additional class/className values; omission applies the CVA defaults documented below.\n * @returns The fixed-position FAB class string; position defaults to bottom-right and extended to false.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. variant and size default to default; sizes sm/lg/full/icon are also supported. These pure CVA helpers return class strings and do not add behavior or DOM attributes.\n * @example\n * ```tsx\n * import { mobileButtonVariants, fabVariants } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<><div className={mobileButtonVariants()}>Touch button</div><div className={fabVariants()}>Floating action</div></>);\n * }\n * ```\n */\nexport const fabVariants = cva(\n [\n 'fixed z-50 flex items-center justify-center gap-2',\n 'bg-primary text-primary-foreground shadow-lg',\n 'transition-all active:scale-95',\n 'focus-visible:ring-ring/50 focus-visible:ring-[3px] focus-visible:ring-offset-2 outline-none',\n \"[&_svg:not([class*='size-'])]:size-6 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ].join(' '),\n {\n variants: {\n /**\n * Fixed floating-action placement relative to the viewport.\n * Accepted values: 'bottom-right', 'bottom-center', 'bottom-left'.\n * @defaultValue 'bottom-right'\n * @see fabVariants\n */\n position: {\n 'bottom-right': 'right-4 bottom-20',\n 'bottom-center': 'left-1/2 -translate-x-1/2 bottom-20',\n 'bottom-left': 'left-4 bottom-20',\n },\n /**\n * Whether the floating action surface uses extended padding instead of a circular footprint.\n * Accepted values: true, false.\n * @defaultValue false\n * @see fabVariants\n */\n extended: {\n true: 'h-14 px-6 rounded-full',\n false: 'h-14 w-14 rounded-full',\n },\n },\n defaultVariants: {\n position: 'bottom-right',\n extended: false,\n },\n },\n);\n"],"mappings":";;;AAiBA,IAAaA,IAAuBC,EAElC;CACE;CACA;CACA;CACA;CACA;CACA;AACF,CAAC,CAAC,KAAK,GAAG,GACV;CACE,UAAU;EAOR,SAAS;GACP,SAAS;GACT,WAAW;GACX,SAAS;GACT,OAAO;GACP,aAAa;EACf;EAOA,MAAM;GACJ,IAAI;GACJ,SAAS;GACT,IAAI;GACJ,MAAM;GACN,MAAM;EACR;CACF;CACA,iBAAiB;EACf,SAAS;EACT,MAAM;CACR;AACF,CACF,GAiBaC,IAAcD,EACzB;CACE;CACA;CACA;CACA;CACA;AACF,CAAC,CAAC,KAAK,GAAG,GACV;CACE,UAAU;EAOR,UAAU;GACR,gBAAgB;GAChB,iBAAiB;GACjB,eAAe;EACjB;EAOA,UAAU;GACR,MAAM;GACN,OAAO;EACT;CACF;CACA,iBAAiB;EACf,UAAU;EACV,UAAU;CACZ;AACF,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobile-form.cjs","names":["React","cn","InputPrimitive","ButtonPrimitive","mobileButtonVariants","Loader2","fabVariants","require_runtime","require_ui_lib_utils","require_ui_components_ui_mobile_form_variants","react_jsx_runtime","react","lucide_react","_base_ui_react_button","_base_ui_react_input","MobileForm","props","testId","className","MobileFormSection","title","description","MobileInput","generatedId","controlId","descriptionId","_children","restProps","label","icon","error","helperText","MobileSelect","placeholder","options","opt","MobileButton","loading","disabled","state","children","FAB","extended"],"sources":["../../../../src/ui/components/ui/mobile-form.tsx"],"sourcesContent":["/**\n * モバイル最適化フォームコンポーネント\n *\n * shadcn/ui パターンに準拠:\n * - CVA でバリアント管理\n * - @base-ui/react プリミティブ使用\n * - テーマトークン使用\n * - testId prop 対応\n */\n\nimport * as React from 'react';\nimport { Input as InputPrimitive } from '@base-ui/react/input';\nimport { Button as ButtonPrimitive } from '@base-ui/react/button';\nimport { type VariantProps } from 'class-variance-authority';\nimport { Loader2 } from 'lucide-react';\n\nimport { cn } from '../../lib/utils';\nimport { mobileButtonVariants, fabVariants } from './mobile-form-variants';\n\n// ============================================================================\n// Mobile Form Container\n// ============================================================================\n\nexport interface MobileFormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n testId?: string;\n}\n\nconst MobileForm = React.forwardRef<HTMLFormElement, MobileFormProps>(\n ({ className, testId, ...props }, ref) => (\n <form\n ref={ref}\n data-slot='mobile-form'\n data-testid={testId}\n className={cn('space-y-4 px-4 pb-safe', className)}\n {...props}\n />\n ),\n);\nMobileForm.displayName = 'MobileForm';\n\n// ============================================================================\n// Mobile Form Section\n// ============================================================================\n\nexport interface MobileFormSectionProps extends React.HTMLAttributes<HTMLDivElement> {\n title?: string;\n description?: string;\n}\n\nconst MobileFormSection = React.forwardRef<HTMLDivElement, MobileFormSectionProps>(\n ({ title, description, className, children, ...props }, ref) => (\n <div\n ref={ref}\n data-slot='mobile-form-section'\n className={cn('space-y-3', className)}\n {...props}\n >\n {(title || description) && (\n <div className='space-y-1'>\n {title && <h3 className='text-sm font-medium text-foreground'>{title}</h3>}\n {description && <p className='text-xs text-muted-foreground'>{description}</p>}\n </div>\n )}\n <div className='space-y-3'>{children}</div>\n </div>\n ),\n);\nMobileFormSection.displayName = 'MobileFormSection';\n\n// ============================================================================\n// Mobile Input (uses @base-ui/react Input)\n// ============================================================================\n\nexport interface MobileInputProps extends React.ComponentProps<typeof InputPrimitive> {\n label: string;\n error?: string;\n helperText?: string;\n icon?: React.ReactNode;\n testId?: string;\n}\n\nconst MobileInput = React.forwardRef<HTMLInputElement, MobileInputProps>(\n ({ label, error, helperText, icon, className, testId, ...props }, ref) => {\n const generatedId = React.useId();\n const controlId = props.id ?? generatedId;\n const descriptionId = controlId + '-description';\n // Exclude children from the void element\n const {\n children: _children,\n ...restProps\n } = props as MobileInputProps & {\n children?: React.ReactNode;\n };\n\n return (\n <div className='space-y-1.5' data-slot='mobile-input-wrapper'>\n <label htmlFor={controlId} className='text-sm font-medium text-foreground'>{label}</label>\n <div className='relative'>\n {icon && (\n <div className='absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground'>\n {icon}\n </div>\n )}\n <InputPrimitive\n ref={ref}\n data-slot='mobile-input'\n data-testid={testId}\n aria-invalid={!!error}\n className={cn(\n // Base styles\n 'w-full h-12 px-4 text-base rounded-lg border bg-background',\n 'transition-colors outline-none',\n // Focus\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n // Error\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40',\n 'aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 aria-invalid:ring-[3px]',\n // Disabled\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n // Placeholder\n 'placeholder:text-muted-foreground',\n // Icon padding\n icon && 'pl-10',\n className,\n )}\n {...restProps}\n id={controlId}\n aria-describedby={[props['aria-describedby'], (error || helperText) && descriptionId].filter(Boolean).join(' ') || undefined}\n />\n </div>\n {error && <p id={descriptionId} className='text-xs text-destructive'>{error}</p>}\n {helperText && !error && <p id={descriptionId} className='text-xs text-muted-foreground'>{helperText}</p>}\n </div>\n );\n },\n);\nMobileInput.displayName = 'MobileInput';\n\n// ============================================================================\n// Mobile Select\n// ============================================================================\n\nexport interface MobileSelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {\n label: string;\n options: Array<{ value: string; label: string }>;\n error?: string;\n placeholder?: string;\n testId?: string;\n}\n\nconst MobileSelect = React.forwardRef<HTMLSelectElement, MobileSelectProps>(\n ({ label, options, error, placeholder, className, testId, ...props }, ref) => {\n const generatedId = React.useId();\n const controlId = props.id ?? generatedId;\n const descriptionId = controlId + '-description';\n return (\n <div className='space-y-1.5' data-slot='mobile-select-wrapper'>\n <label htmlFor={controlId} className='text-sm font-medium text-foreground'>{label}</label>\n <select\n ref={ref}\n data-slot='mobile-select'\n data-testid={testId}\n aria-invalid={!!error}\n className={cn(\n // Base\n 'w-full h-12 px-4 text-base rounded-lg border bg-background appearance-none',\n 'transition-colors outline-none',\n // Focus\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n // Error\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40',\n 'aria-invalid:border-destructive aria-invalid:ring-[3px]',\n // Disabled\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n id={controlId}\n aria-describedby={[props['aria-describedby'], error && descriptionId].filter(Boolean).join(' ') || undefined}\n >\n {placeholder && (\n <option value='' disabled>\n {placeholder}\n </option>\n )}\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n {error && <p id={descriptionId} className='text-xs text-destructive'>{error}</p>}\n </div>\n );\n },\n);\nMobileSelect.displayName = 'MobileSelect';\n\n// ============================================================================\n// Mobile Button (CVA variants + @base-ui/react Button)\n// ============================================================================\n\nexport interface MobileButtonProps\n extends ButtonPrimitive.Props, VariantProps<typeof mobileButtonVariants> {\n loading?: boolean;\n icon?: React.ReactNode;\n testId?: string;\n}\n\nconst MobileButton = React.forwardRef<HTMLElement, MobileButtonProps>(\n ({ className, variant, size, loading, icon, disabled, children, testId, ...props }, ref) => {\n const isDisabled = disabled || loading;\n\n return (\n <ButtonPrimitive\n ref={ref}\n data-slot='mobile-button'\n data-testid={testId}\n data-loading={loading || undefined}\n aria-busy={loading || undefined}\n disabled={isDisabled}\n className={typeof className === 'function' ? state => cn(mobileButtonVariants({ variant, size }), className(state)) : cn(mobileButtonVariants({ variant, size, className }))}\n {...props}\n >\n {loading ? <Loader2 className='animate-spin' aria-hidden='true' /> : icon}\n {children}\n </ButtonPrimitive>\n );\n },\n);\nMobileButton.displayName = 'MobileButton';\n\n// ============================================================================\n// Floating Action Button (FAB)\n// ============================================================================\n\nexport interface FABProps extends ButtonPrimitive.Props, VariantProps<typeof fabVariants> {\n icon: React.ReactNode;\n label?: string;\n testId?: string;\n}\n\nconst FAB = React.forwardRef<HTMLElement, FABProps>(\n ({ icon, label, position, extended, className, testId, ...props }, ref) => (\n <ButtonPrimitive\n ref={ref}\n data-slot='fab'\n data-testid={testId}\n className={typeof className === 'function' ? state => cn(fabVariants({ position, extended: extended || !!label }), className(state)) : cn(fabVariants({ position, extended: extended || !!label, className }))}\n {...props}\n >\n {icon}\n {(extended || label) && label && <span className='font-medium'>{label}</span>}\n </ButtonPrimitive>\n ),\n);\nFAB.displayName = 'FAB';\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mobile-form.cjs","names":["React","cn","InputPrimitive","ButtonPrimitive","mobileButtonVariants","Loader2","fabVariants","require_runtime","require_ui_lib_utils","require_ui_components_ui_mobile_form_variants","react_jsx_runtime","react","lucide_react","_base_ui_react_button","_base_ui_react_input","MobileForm","props","testId","className","MobileFormSection","title","description","MobileInput","generatedId","controlId","descriptionId","_children","restProps","label","icon","error","helperText","MobileSelect","placeholder","options","opt","MobileButton","loading","disabled","state","children","FAB","extended"],"sources":["../../../../src/ui/components/ui/mobile-form.tsx"],"sourcesContent":["/** Mobile-sized native and Base UI form controls with linked labels and Appkit variants. */\n\nimport * as React from 'react';\nimport { Input as InputPrimitive } from '@base-ui/react/input';\nimport { Button as ButtonPrimitive } from '@base-ui/react/button';\nimport { type VariantProps } from 'class-variance-authority';\nimport { Loader2 } from 'lucide-react';\n\nimport { cn } from '../../lib/utils';\nimport { mobileButtonVariants, fabVariants } from './mobile-form-variants';\n\n// ============================================================================\n// Mobile Form Container\n// ============================================================================\n\n/**\n * Native form attributes and a stable selector for MobileForm.\n * @remarks Inherited native or primitive props keep their upstream types and behavior; this declaration documents only the wrapper-owned options.\n * @see MobileForm\n */\nexport interface MobileFormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n /**\n * Stable data-testid assigned to the rendered control/container; omitted means no selector.\n */\n testId?: string;\n}\n\n/**\n * Renders a mobile-spaced native form without adding a form-state provider.\n * @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling.\n * @returns The rendered MobileForm composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. The host owns submit effects and values. Input/Select use the caller id or React useId and append -description for help/errors; error text takes precedence over helperText. testId targets the control/form/button. MobileInput uses Base UI Input directly, not Appkit Input numeric normalization. MobileButton loading disables it and replaces icon with a spinner. FAB label forces extended styling even if extended=false; an icon-only FAB needs an accessible name. The ref prop forwards to the rendered control or container declared by the component ref type.\n * @example\n * ```tsx\n * import { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<><MobileForm onSubmit={event => event.preventDefault()}><MobileFormSection title=\"Contact\"><MobileInput label=\"Name\" /><MobileSelect label=\"Method\" defaultValue=\"email\" options={[{ value: \"email\", label: \"Email\" }]} /><MobileButton type=\"submit\">Save</MobileButton></MobileFormSection></MobileForm><FAB icon={<span>+</span>} label=\"Create\" /></>);\n * }\n * ```\n */\nconst MobileForm = React.forwardRef<HTMLFormElement, MobileFormProps>(\n ({ className, testId, ...props }, ref) => (\n <form\n ref={ref}\n data-slot='mobile-form'\n data-testid={testId}\n className={cn('space-y-4 px-4 pb-safe', className)}\n {...props}\n />\n ),\n);\nMobileForm.displayName = 'MobileForm';\n\n// ============================================================================\n// Mobile Form Section\n// ============================================================================\n\n/**\n * Native div attributes and optional section heading/description.\n * @remarks Inherited native or primitive props keep their upstream types and behavior; this declaration documents only the wrapper-owned options.\n * @see MobileFormSection\n */\nexport interface MobileFormSectionProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Optional section heading rendered before its content.\n */\n title?: string;\n /**\n * Supporting text displayed by the owning component.\n */\n description?: string;\n}\n\n/**\n * Groups mobile form controls under an optional title and description.\n * @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling.\n * @returns The rendered MobileFormSection composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. The host owns submit effects and values. Input/Select use the caller id or React useId and append -description for help/errors; error text takes precedence over helperText. testId targets the control/form/button. MobileInput uses Base UI Input directly, not Appkit Input numeric normalization. MobileButton loading disables it and replaces icon with a spinner. FAB label forces extended styling even if extended=false; an icon-only FAB needs an accessible name. The ref prop forwards to the rendered control or container declared by the component ref type.\n * @example\n * ```tsx\n * import { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<><MobileForm onSubmit={event => event.preventDefault()}><MobileFormSection title=\"Contact\"><MobileInput label=\"Name\" /><MobileSelect label=\"Method\" defaultValue=\"email\" options={[{ value: \"email\", label: \"Email\" }]} /><MobileButton type=\"submit\">Save</MobileButton></MobileFormSection></MobileForm><FAB icon={<span>+</span>} label=\"Create\" /></>);\n * }\n * ```\n */\nconst MobileFormSection = React.forwardRef<HTMLDivElement, MobileFormSectionProps>(\n ({ title, description, className, children, ...props }, ref) => (\n <div\n ref={ref}\n data-slot='mobile-form-section'\n className={cn('space-y-3', className)}\n {...props}\n >\n {(title || description) && (\n <div className='space-y-1'>\n {title && <h3 className='text-sm font-medium text-foreground'>{title}</h3>}\n {description && <p className='text-xs text-muted-foreground'>{description}</p>}\n </div>\n )}\n <div className='space-y-3'>{children}</div>\n </div>\n ),\n);\nMobileFormSection.displayName = 'MobileFormSection';\n\n// ============================================================================\n// Mobile Input (uses @base-ui/react Input)\n// ============================================================================\n\n/**\n * Base UI input attributes with required visible label and linked helper/error content.\n * @remarks Inherited native or primitive props keep their upstream types and behavior; this declaration documents only the wrapper-owned options.\n * @see MobileInput\n */\nexport interface MobileInputProps extends React.ComponentProps<typeof InputPrimitive> {\n /**\n * Visible control/option text or content; does not perform persistence or validation.\n */\n label: string;\n /**\n * Error text displayed and used to mark the control invalid; the host supplies validation results.\n */\n error?: string;\n /**\n * Supporting text linked through aria-describedby when no error is present.\n */\n helperText?: string;\n /**\n * Leading visual content; provide an accessible name separately when it is the only button content.\n */\n icon?: React.ReactNode;\n /**\n * Stable data-testid assigned to the rendered control/container; omitted means no selector.\n */\n testId?: string;\n}\n\n/**\n * Renders a labeled large-touch input with generated IDs and linked helper/error text.\n * @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling.\n * @returns The rendered MobileInput composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. The host owns submit effects and values. Input/Select use the caller id or React useId and append -description for help/errors; error text takes precedence over helperText. testId targets the control/form/button. MobileInput uses Base UI Input directly, not Appkit Input numeric normalization. MobileButton loading disables it and replaces icon with a spinner. FAB label forces extended styling even if extended=false; an icon-only FAB needs an accessible name. The ref prop forwards to the rendered control or container declared by the component ref type.\n * @example\n * ```tsx\n * import { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<><MobileForm onSubmit={event => event.preventDefault()}><MobileFormSection title=\"Contact\"><MobileInput label=\"Name\" /><MobileSelect label=\"Method\" defaultValue=\"email\" options={[{ value: \"email\", label: \"Email\" }]} /><MobileButton type=\"submit\">Save</MobileButton></MobileFormSection></MobileForm><FAB icon={<span>+</span>} label=\"Create\" /></>);\n * }\n * ```\n */\nconst MobileInput = React.forwardRef<HTMLInputElement, MobileInputProps>(\n ({ label, error, helperText, icon, className, testId, ...props }, ref) => {\n const generatedId = React.useId();\n const controlId = props.id ?? generatedId;\n const descriptionId = controlId + '-description';\n // Exclude children from the void element\n const {\n children: _children,\n ...restProps\n } = props as MobileInputProps & {\n children?: React.ReactNode;\n };\n\n return (\n <div className='space-y-1.5' data-slot='mobile-input-wrapper'>\n <label htmlFor={controlId} className='text-sm font-medium text-foreground'>{label}</label>\n <div className='relative'>\n {icon && (\n <div className='absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground'>\n {icon}\n </div>\n )}\n <InputPrimitive\n ref={ref}\n data-slot='mobile-input'\n data-testid={testId}\n aria-invalid={!!error}\n className={cn(\n // Base styles\n 'w-full h-12 px-4 text-base rounded-lg border bg-background',\n 'transition-colors outline-none',\n // Focus\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n // Error\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40',\n 'aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 aria-invalid:ring-[3px]',\n // Disabled\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n // Placeholder\n 'placeholder:text-muted-foreground',\n // Icon padding\n icon && 'pl-10',\n className,\n )}\n {...restProps}\n id={controlId}\n aria-describedby={[props['aria-describedby'], (error || helperText) && descriptionId].filter(Boolean).join(' ') || undefined}\n />\n </div>\n {error && <p id={descriptionId} className='text-xs text-destructive'>{error}</p>}\n {helperText && !error && <p id={descriptionId} className='text-xs text-muted-foreground'>{helperText}</p>}\n </div>\n );\n },\n);\nMobileInput.displayName = 'MobileInput';\n\n// ============================================================================\n// Mobile Select\n// ============================================================================\n\n/**\n * Native select attributes with required label and option data.\n * @remarks Inherited native or primitive props keep their upstream types and behavior; this declaration documents only the wrapper-owned options.\n * @see MobileSelect\n */\nexport interface MobileSelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {\n /**\n * Visible control/option text or content; does not perform persistence or validation.\n */\n label: string;\n /**\n * Native option entries in display order; each value must be a stable unique string and label is its visible text.\n */\n options: Array<{ /**\n * Identity for this choice within the surrounding group; provide a distinct stable string.\n */\n /**\n * Identity for this choice within the surrounding group; provide a distinct stable string.\n */\n value: string; /**\n * Visible control/option text or content; does not perform persistence or validation.\n */\n /**\n * Visible control/option text or content; does not perform persistence or validation.\n */\n label: string }>;\n /**\n * Error text displayed and used to mark the control invalid; the host supplies validation results.\n */\n error?: string;\n /**\n * Text displayed while no value is selected/entered; omitted means no placeholder.\n */\n placeholder?: string;\n /**\n * Stable data-testid assigned to the rendered control/container; omitted means no selector.\n */\n testId?: string;\n}\n\n/**\n * Renders a labeled native select with generated IDs and linked error text.\n * @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling.\n * @returns The rendered MobileSelect composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. The host owns submit effects and values. Input/Select use the caller id or React useId and append -description for help/errors; error text takes precedence over helperText. testId targets the control/form/button. MobileInput uses Base UI Input directly, not Appkit Input numeric normalization. MobileButton loading disables it and replaces icon with a spinner. FAB label forces extended styling even if extended=false; an icon-only FAB needs an accessible name. The ref prop forwards to the rendered control or container declared by the component ref type.\n * @example\n * ```tsx\n * import { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<><MobileForm onSubmit={event => event.preventDefault()}><MobileFormSection title=\"Contact\"><MobileInput label=\"Name\" /><MobileSelect label=\"Method\" defaultValue=\"email\" options={[{ value: \"email\", label: \"Email\" }]} /><MobileButton type=\"submit\">Save</MobileButton></MobileFormSection></MobileForm><FAB icon={<span>+</span>} label=\"Create\" /></>);\n * }\n * ```\n */\nconst MobileSelect = React.forwardRef<HTMLSelectElement, MobileSelectProps>(\n ({ label, options, error, placeholder, className, testId, ...props }, ref) => {\n const generatedId = React.useId();\n const controlId = props.id ?? generatedId;\n const descriptionId = controlId + '-description';\n return (\n <div className='space-y-1.5' data-slot='mobile-select-wrapper'>\n <label htmlFor={controlId} className='text-sm font-medium text-foreground'>{label}</label>\n <select\n ref={ref}\n data-slot='mobile-select'\n data-testid={testId}\n aria-invalid={!!error}\n className={cn(\n // Base\n 'w-full h-12 px-4 text-base rounded-lg border bg-background appearance-none',\n 'transition-colors outline-none',\n // Focus\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n // Error\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40',\n 'aria-invalid:border-destructive aria-invalid:ring-[3px]',\n // Disabled\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n id={controlId}\n aria-describedby={[props['aria-describedby'], error && descriptionId].filter(Boolean).join(' ') || undefined}\n >\n {placeholder && (\n <option value='' disabled>\n {placeholder}\n </option>\n )}\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n {error && <p id={descriptionId} className='text-xs text-destructive'>{error}</p>}\n </div>\n );\n },\n);\nMobileSelect.displayName = 'MobileSelect';\n\n// ============================================================================\n// Mobile Button (CVA variants + @base-ui/react Button)\n// ============================================================================\n\n/**\n * Base UI button attributes with mobile variants, loading state and optional icon.\n * @remarks Inherited native or primitive props keep their upstream types and behavior; this declaration documents only the wrapper-owned options.\n * @see MobileButton\n */\nexport interface MobileButtonProps\n extends ButtonPrimitive.Props, VariantProps<typeof mobileButtonVariants> {\n /**\n * Shows the loading spinner and disables activation when true; omitted means not loading. This does not manage an asynchronous task.\n */\n loading?: boolean;\n /**\n * Leading visual content; provide an accessible name separately when it is the only button content.\n */\n icon?: React.ReactNode;\n /**\n * Stable data-testid assigned to the rendered control/container; omitted means no selector.\n */\n testId?: string;\n}\n\n/**\n * Renders a large-touch Base UI button with optional loading spinner or leading icon.\n * @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling.\n * @returns The rendered MobileButton composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. The host owns submit effects and values. Input/Select use the caller id or React useId and append -description for help/errors; error text takes precedence over helperText. testId targets the control/form/button. MobileInput uses Base UI Input directly, not Appkit Input numeric normalization. MobileButton loading disables it and replaces icon with a spinner. FAB label forces extended styling even if extended=false; an icon-only FAB needs an accessible name. The ref prop forwards to the rendered control or container declared by the component ref type.\n * @example\n * ```tsx\n * import { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<><MobileForm onSubmit={event => event.preventDefault()}><MobileFormSection title=\"Contact\"><MobileInput label=\"Name\" /><MobileSelect label=\"Method\" defaultValue=\"email\" options={[{ value: \"email\", label: \"Email\" }]} /><MobileButton type=\"submit\">Save</MobileButton></MobileFormSection></MobileForm><FAB icon={<span>+</span>} label=\"Create\" /></>);\n * }\n * ```\n */\nconst MobileButton = React.forwardRef<HTMLElement, MobileButtonProps>(\n ({ className, variant, size, loading, icon, disabled, children, testId, ...props }, ref) => {\n const isDisabled = disabled || loading;\n\n return (\n <ButtonPrimitive\n ref={ref}\n data-slot='mobile-button'\n data-testid={testId}\n data-loading={loading || undefined}\n aria-busy={loading || undefined}\n disabled={isDisabled}\n className={typeof className === 'function' ? state => cn(mobileButtonVariants({ variant, size }), className(state)) : cn(mobileButtonVariants({ variant, size, className }))}\n {...props}\n >\n {loading ? <Loader2 className='animate-spin' aria-hidden='true' /> : icon}\n {children}\n </ButtonPrimitive>\n );\n },\n);\nMobileButton.displayName = 'MobileButton';\n\n// ============================================================================\n// Floating Action Button (FAB)\n// ============================================================================\n\n/**\n * Base UI button attributes and fixed-position floating-action styling.\n * @remarks Inherited native or primitive props keep their upstream types and behavior; this declaration documents only the wrapper-owned options.\n * @see FAB\n */\nexport interface FABProps extends ButtonPrimitive.Props, VariantProps<typeof fabVariants> {\n /**\n * Required visual content in the floating action button; provide aria-label for icon-only use.\n */\n icon: React.ReactNode;\n /**\n * Optional visible text; a truthy label forces extended styling even when extended=false.\n */\n label?: string;\n /**\n * Stable data-testid assigned to the rendered control/container; omitted means no selector.\n */\n testId?: string;\n}\n\n/**\n * Renders a fixed floating action button that expands when label content is supplied.\n * @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling.\n * @returns The rendered FAB composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. The host owns submit effects and values. Input/Select use the caller id or React useId and append -description for help/errors; error text takes precedence over helperText. testId targets the control/form/button. MobileInput uses Base UI Input directly, not Appkit Input numeric normalization. MobileButton loading disables it and replaces icon with a spinner. FAB label forces extended styling even if extended=false; an icon-only FAB needs an accessible name. The ref prop forwards to the rendered control or container declared by the component ref type.\n * @example\n * ```tsx\n * import { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<><MobileForm onSubmit={event => event.preventDefault()}><MobileFormSection title=\"Contact\"><MobileInput label=\"Name\" /><MobileSelect label=\"Method\" defaultValue=\"email\" options={[{ value: \"email\", label: \"Email\" }]} /><MobileButton type=\"submit\">Save</MobileButton></MobileFormSection></MobileForm><FAB icon={<span>+</span>} label=\"Create\" /></>);\n * }\n * ```\n */\nconst FAB = React.forwardRef<HTMLElement, FABProps>(\n ({ icon, label, position, extended, className, testId, ...props }, ref) => (\n <ButtonPrimitive\n ref={ref}\n data-slot='fab'\n data-testid={testId}\n className={typeof className === 'function' ? state => cn(fabVariants({ position, extended: extended || !!label }), className(state)) : cn(fabVariants({ position, extended: extended || !!label, className }))}\n {...props}\n >\n {icon}\n {(extended || label) && label && <span className='font-medium'>{label}</span>}\n </ButtonPrimitive>\n ),\n);\nFAB.displayName = 'FAB';\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB };\n"],"mappings":"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"}
|
|
@@ -2,54 +2,231 @@ import { Input as InputPrimitive } from '@base-ui/react/input';
|
|
|
2
2
|
import { Button as ButtonPrimitive } from '@base-ui/react/button';
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
4
|
import { mobileButtonVariants, fabVariants } from './mobile-form-variants.cjs';
|
|
5
|
+
/** Mobile-sized native and Base UI form controls with linked labels and Appkit variants. */
|
|
6
|
+
import * as React from 'react';
|
|
5
7
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* - CVA でバリアント管理
|
|
10
|
-
* - @base-ui/react プリミティブ使用
|
|
11
|
-
* - テーマトークン使用
|
|
12
|
-
* - testId prop 対応
|
|
8
|
+
* Native form attributes and a stable selector for MobileForm.
|
|
9
|
+
* @remarks Inherited native or primitive props keep their upstream types and behavior; this declaration documents only the wrapper-owned options.
|
|
10
|
+
* @see MobileForm
|
|
13
11
|
*/
|
|
14
|
-
import * as React from 'react';
|
|
15
12
|
export interface MobileFormProps extends React.FormHTMLAttributes<HTMLFormElement> {
|
|
13
|
+
/**
|
|
14
|
+
* Stable data-testid assigned to the rendered control/container; omitted means no selector.
|
|
15
|
+
*/
|
|
16
16
|
testId?: string;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Renders a mobile-spaced native form without adding a form-state provider.
|
|
20
|
+
* @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling.
|
|
21
|
+
* @returns The rendered MobileForm composition.
|
|
22
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. The host owns submit effects and values. Input/Select use the caller id or React useId and append -description for help/errors; error text takes precedence over helperText. testId targets the control/form/button. MobileInput uses Base UI Input directly, not Appkit Input numeric normalization. MobileButton loading disables it and replaces icon with a spinner. FAB label forces extended styling even if extended=false; an icon-only FAB needs an accessible name. The ref prop forwards to the rendered control or container declared by the component ref type.
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* import { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB } from '@alneas/appkit-react/ui';
|
|
26
|
+
* import '@alneas/appkit-react/styles';
|
|
27
|
+
*
|
|
28
|
+
* export function Example() {
|
|
29
|
+
* return (<><MobileForm onSubmit={event => event.preventDefault()}><MobileFormSection title="Contact"><MobileInput label="Name" /><MobileSelect label="Method" defaultValue="email" options={[{ value: "email", label: "Email" }]} /><MobileButton type="submit">Save</MobileButton></MobileFormSection></MobileForm><FAB icon={<span>+</span>} label="Create" /></>);
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
18
33
|
declare const MobileForm: React.ForwardRefExoticComponent<MobileFormProps & React.RefAttributes<HTMLFormElement>>;
|
|
34
|
+
/**
|
|
35
|
+
* Native div attributes and optional section heading/description.
|
|
36
|
+
* @remarks Inherited native or primitive props keep their upstream types and behavior; this declaration documents only the wrapper-owned options.
|
|
37
|
+
* @see MobileFormSection
|
|
38
|
+
*/
|
|
19
39
|
export interface MobileFormSectionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
40
|
+
/**
|
|
41
|
+
* Optional section heading rendered before its content.
|
|
42
|
+
*/
|
|
20
43
|
title?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Supporting text displayed by the owning component.
|
|
46
|
+
*/
|
|
21
47
|
description?: string;
|
|
22
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Groups mobile form controls under an optional title and description.
|
|
51
|
+
* @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling.
|
|
52
|
+
* @returns The rendered MobileFormSection composition.
|
|
53
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. The host owns submit effects and values. Input/Select use the caller id or React useId and append -description for help/errors; error text takes precedence over helperText. testId targets the control/form/button. MobileInput uses Base UI Input directly, not Appkit Input numeric normalization. MobileButton loading disables it and replaces icon with a spinner. FAB label forces extended styling even if extended=false; an icon-only FAB needs an accessible name. The ref prop forwards to the rendered control or container declared by the component ref type.
|
|
54
|
+
* @example
|
|
55
|
+
* ```tsx
|
|
56
|
+
* import { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB } from '@alneas/appkit-react/ui';
|
|
57
|
+
* import '@alneas/appkit-react/styles';
|
|
58
|
+
*
|
|
59
|
+
* export function Example() {
|
|
60
|
+
* return (<><MobileForm onSubmit={event => event.preventDefault()}><MobileFormSection title="Contact"><MobileInput label="Name" /><MobileSelect label="Method" defaultValue="email" options={[{ value: "email", label: "Email" }]} /><MobileButton type="submit">Save</MobileButton></MobileFormSection></MobileForm><FAB icon={<span>+</span>} label="Create" /></>);
|
|
61
|
+
* }
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
23
64
|
declare const MobileFormSection: React.ForwardRefExoticComponent<MobileFormSectionProps & React.RefAttributes<HTMLDivElement>>;
|
|
65
|
+
/**
|
|
66
|
+
* Base UI input attributes with required visible label and linked helper/error content.
|
|
67
|
+
* @remarks Inherited native or primitive props keep their upstream types and behavior; this declaration documents only the wrapper-owned options.
|
|
68
|
+
* @see MobileInput
|
|
69
|
+
*/
|
|
24
70
|
export interface MobileInputProps extends React.ComponentProps<typeof InputPrimitive> {
|
|
71
|
+
/**
|
|
72
|
+
* Visible control/option text or content; does not perform persistence or validation.
|
|
73
|
+
*/
|
|
25
74
|
label: string;
|
|
75
|
+
/**
|
|
76
|
+
* Error text displayed and used to mark the control invalid; the host supplies validation results.
|
|
77
|
+
*/
|
|
26
78
|
error?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Supporting text linked through aria-describedby when no error is present.
|
|
81
|
+
*/
|
|
27
82
|
helperText?: string;
|
|
83
|
+
/**
|
|
84
|
+
* Leading visual content; provide an accessible name separately when it is the only button content.
|
|
85
|
+
*/
|
|
28
86
|
icon?: React.ReactNode;
|
|
87
|
+
/**
|
|
88
|
+
* Stable data-testid assigned to the rendered control/container; omitted means no selector.
|
|
89
|
+
*/
|
|
29
90
|
testId?: string;
|
|
30
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Renders a labeled large-touch input with generated IDs and linked helper/error text.
|
|
94
|
+
* @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling.
|
|
95
|
+
* @returns The rendered MobileInput composition.
|
|
96
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. The host owns submit effects and values. Input/Select use the caller id or React useId and append -description for help/errors; error text takes precedence over helperText. testId targets the control/form/button. MobileInput uses Base UI Input directly, not Appkit Input numeric normalization. MobileButton loading disables it and replaces icon with a spinner. FAB label forces extended styling even if extended=false; an icon-only FAB needs an accessible name. The ref prop forwards to the rendered control or container declared by the component ref type.
|
|
97
|
+
* @example
|
|
98
|
+
* ```tsx
|
|
99
|
+
* import { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB } from '@alneas/appkit-react/ui';
|
|
100
|
+
* import '@alneas/appkit-react/styles';
|
|
101
|
+
*
|
|
102
|
+
* export function Example() {
|
|
103
|
+
* return (<><MobileForm onSubmit={event => event.preventDefault()}><MobileFormSection title="Contact"><MobileInput label="Name" /><MobileSelect label="Method" defaultValue="email" options={[{ value: "email", label: "Email" }]} /><MobileButton type="submit">Save</MobileButton></MobileFormSection></MobileForm><FAB icon={<span>+</span>} label="Create" /></>);
|
|
104
|
+
* }
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
31
107
|
declare const MobileInput: React.ForwardRefExoticComponent<Omit<MobileInputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
108
|
+
/**
|
|
109
|
+
* Native select attributes with required label and option data.
|
|
110
|
+
* @remarks Inherited native or primitive props keep their upstream types and behavior; this declaration documents only the wrapper-owned options.
|
|
111
|
+
* @see MobileSelect
|
|
112
|
+
*/
|
|
32
113
|
export interface MobileSelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {
|
|
114
|
+
/**
|
|
115
|
+
* Visible control/option text or content; does not perform persistence or validation.
|
|
116
|
+
*/
|
|
33
117
|
label: string;
|
|
118
|
+
/**
|
|
119
|
+
* Native option entries in display order; each value must be a stable unique string and label is its visible text.
|
|
120
|
+
*/
|
|
34
121
|
options: Array<{
|
|
35
|
-
|
|
122
|
+
/**
|
|
123
|
+
* Identity for this choice within the surrounding group; provide a distinct stable string.
|
|
124
|
+
*/
|
|
125
|
+
value: string; /**
|
|
126
|
+
* Visible control/option text or content; does not perform persistence or validation.
|
|
127
|
+
*/
|
|
128
|
+
/**
|
|
129
|
+
* Visible control/option text or content; does not perform persistence or validation.
|
|
130
|
+
*/
|
|
36
131
|
label: string;
|
|
37
132
|
}>;
|
|
133
|
+
/**
|
|
134
|
+
* Error text displayed and used to mark the control invalid; the host supplies validation results.
|
|
135
|
+
*/
|
|
38
136
|
error?: string;
|
|
137
|
+
/**
|
|
138
|
+
* Text displayed while no value is selected/entered; omitted means no placeholder.
|
|
139
|
+
*/
|
|
39
140
|
placeholder?: string;
|
|
141
|
+
/**
|
|
142
|
+
* Stable data-testid assigned to the rendered control/container; omitted means no selector.
|
|
143
|
+
*/
|
|
40
144
|
testId?: string;
|
|
41
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Renders a labeled native select with generated IDs and linked error text.
|
|
148
|
+
* @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling.
|
|
149
|
+
* @returns The rendered MobileSelect composition.
|
|
150
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. The host owns submit effects and values. Input/Select use the caller id or React useId and append -description for help/errors; error text takes precedence over helperText. testId targets the control/form/button. MobileInput uses Base UI Input directly, not Appkit Input numeric normalization. MobileButton loading disables it and replaces icon with a spinner. FAB label forces extended styling even if extended=false; an icon-only FAB needs an accessible name. The ref prop forwards to the rendered control or container declared by the component ref type.
|
|
151
|
+
* @example
|
|
152
|
+
* ```tsx
|
|
153
|
+
* import { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB } from '@alneas/appkit-react/ui';
|
|
154
|
+
* import '@alneas/appkit-react/styles';
|
|
155
|
+
*
|
|
156
|
+
* export function Example() {
|
|
157
|
+
* return (<><MobileForm onSubmit={event => event.preventDefault()}><MobileFormSection title="Contact"><MobileInput label="Name" /><MobileSelect label="Method" defaultValue="email" options={[{ value: "email", label: "Email" }]} /><MobileButton type="submit">Save</MobileButton></MobileFormSection></MobileForm><FAB icon={<span>+</span>} label="Create" /></>);
|
|
158
|
+
* }
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
42
161
|
declare const MobileSelect: React.ForwardRefExoticComponent<MobileSelectProps & React.RefAttributes<HTMLSelectElement>>;
|
|
162
|
+
/**
|
|
163
|
+
* Base UI button attributes with mobile variants, loading state and optional icon.
|
|
164
|
+
* @remarks Inherited native or primitive props keep their upstream types and behavior; this declaration documents only the wrapper-owned options.
|
|
165
|
+
* @see MobileButton
|
|
166
|
+
*/
|
|
43
167
|
export interface MobileButtonProps extends ButtonPrimitive.Props, VariantProps<typeof mobileButtonVariants> {
|
|
168
|
+
/**
|
|
169
|
+
* Shows the loading spinner and disables activation when true; omitted means not loading. This does not manage an asynchronous task.
|
|
170
|
+
*/
|
|
44
171
|
loading?: boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Leading visual content; provide an accessible name separately when it is the only button content.
|
|
174
|
+
*/
|
|
45
175
|
icon?: React.ReactNode;
|
|
176
|
+
/**
|
|
177
|
+
* Stable data-testid assigned to the rendered control/container; omitted means no selector.
|
|
178
|
+
*/
|
|
46
179
|
testId?: string;
|
|
47
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Renders a large-touch Base UI button with optional loading spinner or leading icon.
|
|
183
|
+
* @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling.
|
|
184
|
+
* @returns The rendered MobileButton composition.
|
|
185
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. The host owns submit effects and values. Input/Select use the caller id or React useId and append -description for help/errors; error text takes precedence over helperText. testId targets the control/form/button. MobileInput uses Base UI Input directly, not Appkit Input numeric normalization. MobileButton loading disables it and replaces icon with a spinner. FAB label forces extended styling even if extended=false; an icon-only FAB needs an accessible name. The ref prop forwards to the rendered control or container declared by the component ref type.
|
|
186
|
+
* @example
|
|
187
|
+
* ```tsx
|
|
188
|
+
* import { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB } from '@alneas/appkit-react/ui';
|
|
189
|
+
* import '@alneas/appkit-react/styles';
|
|
190
|
+
*
|
|
191
|
+
* export function Example() {
|
|
192
|
+
* return (<><MobileForm onSubmit={event => event.preventDefault()}><MobileFormSection title="Contact"><MobileInput label="Name" /><MobileSelect label="Method" defaultValue="email" options={[{ value: "email", label: "Email" }]} /><MobileButton type="submit">Save</MobileButton></MobileFormSection></MobileForm><FAB icon={<span>+</span>} label="Create" /></>);
|
|
193
|
+
* }
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
48
196
|
declare const MobileButton: React.ForwardRefExoticComponent<Omit<MobileButtonProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
197
|
+
/**
|
|
198
|
+
* Base UI button attributes and fixed-position floating-action styling.
|
|
199
|
+
* @remarks Inherited native or primitive props keep their upstream types and behavior; this declaration documents only the wrapper-owned options.
|
|
200
|
+
* @see FAB
|
|
201
|
+
*/
|
|
49
202
|
export interface FABProps extends ButtonPrimitive.Props, VariantProps<typeof fabVariants> {
|
|
203
|
+
/**
|
|
204
|
+
* Required visual content in the floating action button; provide aria-label for icon-only use.
|
|
205
|
+
*/
|
|
50
206
|
icon: React.ReactNode;
|
|
207
|
+
/**
|
|
208
|
+
* Optional visible text; a truthy label forces extended styling even when extended=false.
|
|
209
|
+
*/
|
|
51
210
|
label?: string;
|
|
211
|
+
/**
|
|
212
|
+
* Stable data-testid assigned to the rendered control/container; omitted means no selector.
|
|
213
|
+
*/
|
|
52
214
|
testId?: string;
|
|
53
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Renders a fixed floating action button that expands when label content is supplied.
|
|
218
|
+
* @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling.
|
|
219
|
+
* @returns The rendered FAB composition.
|
|
220
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. The host owns submit effects and values. Input/Select use the caller id or React useId and append -description for help/errors; error text takes precedence over helperText. testId targets the control/form/button. MobileInput uses Base UI Input directly, not Appkit Input numeric normalization. MobileButton loading disables it and replaces icon with a spinner. FAB label forces extended styling even if extended=false; an icon-only FAB needs an accessible name. The ref prop forwards to the rendered control or container declared by the component ref type.
|
|
221
|
+
* @example
|
|
222
|
+
* ```tsx
|
|
223
|
+
* import { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB } from '@alneas/appkit-react/ui';
|
|
224
|
+
* import '@alneas/appkit-react/styles';
|
|
225
|
+
*
|
|
226
|
+
* export function Example() {
|
|
227
|
+
* return (<><MobileForm onSubmit={event => event.preventDefault()}><MobileFormSection title="Contact"><MobileInput label="Name" /><MobileSelect label="Method" defaultValue="email" options={[{ value: "email", label: "Email" }]} /><MobileButton type="submit">Save</MobileButton></MobileFormSection></MobileForm><FAB icon={<span>+</span>} label="Create" /></>);
|
|
228
|
+
* }
|
|
229
|
+
* ```
|
|
230
|
+
*/
|
|
54
231
|
declare const FAB: React.ForwardRefExoticComponent<Omit<FABProps, "ref"> & React.RefAttributes<HTMLElement>>;
|
|
55
232
|
export { MobileForm, MobileFormSection, MobileInput, MobileSelect, MobileButton, FAB };
|