@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,14 +1,50 @@
|
|
|
1
1
|
import { PreviewCard as PreviewCardPrimitive } from '@base-ui/react/preview-card';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Coordinates a preview card shown for its trigger.
|
|
4
|
+
* @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling.
|
|
5
|
+
* @returns The rendered HoverCard composition.
|
|
6
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Trigger and Content require HoverCard context. Content supplies its portal and positioner; Base UI PreviewCard owns timing, open state and interaction behavior.
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* import { HoverCard, HoverCardTrigger, HoverCardContent } from '@alneas/appkit-react/ui';
|
|
10
|
+
* import '@alneas/appkit-react/styles';
|
|
11
|
+
*
|
|
12
|
+
* export function Example() {
|
|
13
|
+
* return (<HoverCard><HoverCardTrigger href="/profile">Profile</HoverCardTrigger><HoverCardContent>Profile details</HoverCardContent></HoverCard>);
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
4
16
|
*/
|
|
5
17
|
declare function HoverCard({ ...props }: PreviewCardPrimitive.Root.Props): import('react').JSX.Element;
|
|
6
18
|
/**
|
|
7
|
-
*
|
|
19
|
+
* Renders the interactive target associated with a preview card.
|
|
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 HoverCardTrigger composition.
|
|
22
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Trigger and Content require HoverCard context. Content supplies its portal and positioner; Base UI PreviewCard owns timing, open state and interaction behavior.
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* import { HoverCard, HoverCardTrigger, HoverCardContent } from '@alneas/appkit-react/ui';
|
|
26
|
+
* import '@alneas/appkit-react/styles';
|
|
27
|
+
*
|
|
28
|
+
* export function Example() {
|
|
29
|
+
* return (<HoverCard><HoverCardTrigger href="/profile">Profile</HoverCardTrigger><HoverCardContent>Profile details</HoverCardContent></HoverCard>);
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
8
32
|
*/
|
|
9
33
|
declare function HoverCardTrigger({ ...props }: PreviewCardPrimitive.Trigger.Props): import('react').JSX.Element;
|
|
10
34
|
/**
|
|
11
|
-
*
|
|
35
|
+
* Portals and positions the preview popup relative to its trigger.
|
|
36
|
+
* @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling. Wrapper defaults: side='bottom', sideOffset=4, align='center', alignOffset=4.
|
|
37
|
+
* @returns The rendered HoverCardContent composition.
|
|
38
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Trigger and Content require HoverCard context. Content supplies its portal and positioner; Base UI PreviewCard owns timing, open state and interaction behavior.
|
|
39
|
+
* @example
|
|
40
|
+
* ```tsx
|
|
41
|
+
* import { HoverCard, HoverCardTrigger, HoverCardContent } from '@alneas/appkit-react/ui';
|
|
42
|
+
* import '@alneas/appkit-react/styles';
|
|
43
|
+
*
|
|
44
|
+
* export function Example() {
|
|
45
|
+
* return (<HoverCard><HoverCardTrigger href="/profile">Profile</HoverCardTrigger><HoverCardContent>Profile details</HoverCardContent></HoverCard>);
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
12
48
|
*/
|
|
13
49
|
declare function HoverCardContent({ className, side, sideOffset, align, alignOffset, ...props }: PreviewCardPrimitive.Popup.Props & Pick<PreviewCardPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>): import('react').JSX.Element;
|
|
14
50
|
export { HoverCard, HoverCardTrigger, HoverCardContent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover-card.js","names":["PreviewCardPrimitive","HoverCard","props","PreviewCard","HoverCardTrigger","HoverCardContent","cn","className"],"sources":["../../../../src/ui/components/ui/hover-card.tsx"],"sourcesContent":["'use client';\n\nimport { PreviewCard as PreviewCardPrimitive } from '@base-ui/react/preview-card';\n\nimport { cn } from '../../lib/utils';\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"hover-card.js","names":["PreviewCardPrimitive","HoverCard","props","PreviewCard","HoverCardTrigger","HoverCardContent","cn","className"],"sources":["../../../../src/ui/components/ui/hover-card.tsx"],"sourcesContent":["'use client';\n\nimport { PreviewCard as PreviewCardPrimitive } from '@base-ui/react/preview-card';\n\nimport { cn } from '../../lib/utils';\n\n/**\n * Coordinates a preview card shown for its trigger.\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 HoverCard composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Trigger and Content require HoverCard context. Content supplies its portal and positioner; Base UI PreviewCard owns timing, open state and interaction behavior.\n * @example\n * ```tsx\n * import { HoverCard, HoverCardTrigger, HoverCardContent } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<HoverCard><HoverCardTrigger href=\"/profile\">Profile</HoverCardTrigger><HoverCardContent>Profile details</HoverCardContent></HoverCard>);\n * }\n * ```\n */\nfunction HoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {\n return <PreviewCardPrimitive.Root data-slot='hover-card' {...props} />;\n}\n\n/**\n * Renders the interactive target associated with a preview card.\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 HoverCardTrigger composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Trigger and Content require HoverCard context. Content supplies its portal and positioner; Base UI PreviewCard owns timing, open state and interaction behavior.\n * @example\n * ```tsx\n * import { HoverCard, HoverCardTrigger, HoverCardContent } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<HoverCard><HoverCardTrigger href=\"/profile\">Profile</HoverCardTrigger><HoverCardContent>Profile details</HoverCardContent></HoverCard>);\n * }\n * ```\n */\nfunction HoverCardTrigger({ ...props }: PreviewCardPrimitive.Trigger.Props) {\n return <PreviewCardPrimitive.Trigger data-slot='hover-card-trigger' {...props} />;\n}\n\n/**\n * Portals and positions the preview popup relative to its trigger.\n * @param props - Component attributes and children accepted by the declared Base UI or native prop type; className customizes wrapper styling. Wrapper defaults: side='bottom', sideOffset=4, align='center', alignOffset=4.\n * @returns The rendered HoverCardContent composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Trigger and Content require HoverCard context. Content supplies its portal and positioner; Base UI PreviewCard owns timing, open state and interaction behavior.\n * @example\n * ```tsx\n * import { HoverCard, HoverCardTrigger, HoverCardContent } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<HoverCard><HoverCardTrigger href=\"/profile\">Profile</HoverCardTrigger><HoverCardContent>Profile details</HoverCardContent></HoverCard>);\n * }\n * ```\n */\nfunction HoverCardContent({\n className,\n side = 'bottom',\n sideOffset = 4,\n align = 'center',\n alignOffset = 4,\n ...props\n}: PreviewCardPrimitive.Popup.Props &\n Pick<PreviewCardPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>) {\n return (\n <PreviewCardPrimitive.Portal data-slot='hover-card-portal'>\n <PreviewCardPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className='isolate z-50'\n >\n <PreviewCardPrimitive.Popup\n data-slot='hover-card-content'\n className={cn(\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground w-64 rounded-lg p-2.5 text-sm shadow-md ring-1 duration-100 z-50 origin-(--transform-origin) outline-hidden',\n className,\n )}\n {...props}\n />\n </PreviewCardPrimitive.Positioner>\n </PreviewCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"mappings":";;;;;;AAqBA,SAASC,EAAU,EAAE,GAAGC,KAA0C;CAChE,OAAO,kBAACF,EAAqB,MAAtB;EAA2B,aAAU;EAAa,GAAIE;CAAQ,CAAA;AACvE;AAiBA,SAASE,EAAiB,EAAE,GAAGF,KAA6C;CAC1E,OAAO,kBAACF,EAAqB,SAAtB;EAA8B,aAAU;EAAqB,GAAIE;CAAQ,CAAA;AAClF;AAiBA,SAASG,EAAiB,EACxB,cACA,UAAO,UACP,gBAAa,GACb,WAAQ,UACR,iBAAc,GACd,GAAGH,KAE2F;CAC9F,OACE,kBAACF,EAAqB,QAAtB;EAA6B,aAAU;EACrC,UAAA,kBAACA,EAAqB,YAAtB;GACS;GACM;GACP;GACM;GACZ,WAAU;GAEV,UAAA,kBAACA,EAAqB,OAAtB;IACE,aAAU;IACV,WAAWM,EACT,scACAC,CACF;IACA,GAAIL;GACL,CAAA;EAC8B,CAAA;CACN,CAAA;AAEjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-group.cjs","names":["cn","cva","Button","Input","Textarea","require_runtime","require_ui_lib_utils","require_ui_components_ui_button_components","require_ui_components_ui_input","require_ui_components_ui_textarea","react_jsx_runtime","react","class_variance_authority","InputGroup","props","className","inputGroupAddonVariants","InputGroupAddon","align","inputGroupButtonVariants","InputGroupButton","size","InputGroupText","InputGroupInput","InputGroupTextarea"],"sources":["../../../../src/ui/components/ui/input-group.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../lib/utils';\nimport { Button } from '../../components/ui/button';\nimport { Input } from '../../components/ui/input';\nimport { Textarea } from '../../components/ui/textarea';\n\n/**\n * 入力フィールドとアイコン、ボタンなどのアドオン要素を一体化して表示するためのコンテナ。\n */\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='input-group'\n role='group'\n className={cn(\n 'border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-disabled:bg-input/50 dark:has-disabled:bg-input/80 h-8 rounded-lg border transition-colors has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 [[data-slot=combobox-content]_&]:focus-within:border-inherit [[data-slot=combobox-content]_&]:focus-within:ring-0 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none\",\n {\n variants: {\n align: {\n 'inline-start': 'pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem] order-first',\n 'inline-end': 'pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem] order-last',\n 'block-start':\n 'px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start',\n 'block-end':\n 'px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n);\n\n/**\n * 入力グループの前後や上下に配置されるアドオン領域。\n */\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role='group'\n data-slot='input-group-addon'\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva('gap-2 text-sm shadow-none flex items-center', {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: '',\n 'icon-xs': 'size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0',\n 'icon-sm': 'size-8 p-0 has-[>svg]:p-0',\n },\n },\n defaultVariants: {\n size: 'xs',\n },\n});\n\n/**\n * 入力グループ内に配置されるアクション用ボタン。\n */\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n ...props\n}: Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: 'button' | 'submit' | 'reset';\n render?: React.ReactElement;\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\n/**\n * 入力グループ内でテキストや記号を表示するためのコンポーネント。\n */\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n \"text-muted-foreground gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 flex items-center [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * 入力グループ内で枠線や個別のスタイルを持たない状態で配置される入力フィールド。\n */\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<'input'>) {\n return (\n <Input\n data-slot='input-group-control'\n className={cn(\n 'rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent flex-1',\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * 入力グループ内で枠線や個別のスタイルを持たない状態で配置される複数行入力フィールド。\n */\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot='input-group-control'\n className={cn(\n 'rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent flex-1 resize-none',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"mappings":"A,oYAaA,SAASa,EAAW,CAAE,YAAW,GAAGC,GAAsC,CACxE,OACE,EAAAJ,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,cACV,KAAK,QACL,UAAWV,EAAAA,GACT,kmCACAe,CACF,EACA,GAAID,CACL,CAAA,CAEL,CAEA,IAAME,GAAA,EAA0Bf,EAAAA,IAAAA,CAC9B,0PACA,CACE,SAAU,CACR,MAAO,CACL,eAAgB,uEAChB,aAAc,sEACd,cACE,oGACF,YACE,kGACJ,CACF,EACA,gBAAiB,CACf,MAAO,cACT,CACF,CACF,EAKA,SAASgB,EAAgB,CACvB,YACA,QAAQ,eACR,GAAGH,GAC0E,CAC7E,OACE,EAAAJ,EAAA,IAAA,CAAC,MAAD,CACE,KAAK,QACL,YAAU,oBACV,aAAYQ,EACZ,UAAWlB,EAAAA,GAAGgB,EAAwB,CAAE,OAAM,CAAC,EAAGD,CAAS,EAC3D,QAAU,GAAM,CACT,EAAE,OAAuB,QAAQ,QAAQ,GAG9C,EAAE,cAAc,eAAe,cAAc,OAAO,CAAC,EAAE,MAAM,CAC/D,EACA,GAAID,CACL,CAAA,CAEL,CAEA,IAAMK,GAAA,EAA2BlB,EAAAA,IAAAA,CAAI,8CAA+C,CAClF,SAAU,CACR,KAAM,CACJ,GAAI,4FACJ,GAAI,GACJ,UAAW,8DACX,UAAW,2BACb,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CAAC,EAKD,SAASmB,EAAiB,CACxB,YACA,OAAO,SACP,UAAU,QACV,OAAO,KACP,GAAGN,GAKA,CACH,OACE,EAAAJ,EAAA,IAAA,CAACR,EAAAA,OAAD,CACQ,OACN,YAAWmB,EACF,UACT,UAAWrB,EAAAA,GAAGmB,EAAyB,CAAE,MAAK,CAAC,EAAGJ,CAAS,EAC3D,GAAID,CACL,CAAA,CAEL,CAKA,SAASQ,EAAe,CAAE,YAAW,GAAGR,GAAuC,CAC7E,OACE,EAAAJ,EAAA,IAAA,CAAC,OAAD,CACE,UAAWV,EAAAA,GACT,yHACAe,CACF,EACA,GAAID,CACL,CAAA,CAEL,CAKA,SAASS,EAAgB,CAAE,YAAW,GAAGT,GAAwC,CAC/E,OACE,EAAAJ,EAAA,IAAA,CAACP,EAAAA,MAAD,CACE,YAAU,sBACV,UAAWH,EAAAA,GACT,mLACAe,CACF,EACA,GAAID,CACL,CAAA,CAEL,CAKA,SAASU,EAAmB,CAAE,YAAW,GAAGV,GAA2C,CACrF,OACE,EAAAJ,EAAA,IAAA,CAACN,EAAAA,SAAD,CACE,YAAU,sBACV,UAAWJ,EAAAA,GACT,oMACAe,CACF,EACA,GAAID,CACL,CAAA,CAEL,C"}
|
|
1
|
+
{"version":3,"file":"input-group.cjs","names":["cn","cva","Button","Input","Textarea","require_runtime","require_ui_lib_utils","require_ui_components_ui_button_components","require_ui_components_ui_input","require_ui_components_ui_textarea","react_jsx_runtime","react","class_variance_authority","InputGroup","props","className","inputGroupAddonVariants","InputGroupAddon","align","inputGroupButtonVariants","InputGroupButton","size","InputGroupText","InputGroupInput","InputGroupTextarea"],"sources":["../../../../src/ui/components/ui/input-group.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../lib/utils';\nimport { Button } from '../../components/ui/button';\nimport { Input } from '../../components/ui/input';\nimport { Textarea } from '../../components/ui/textarea';\n\n/**\n * Visually combines an input with leading, trailing or stacked add-ons.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.\n * @returns The rendered InputGroup composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.\n * @example\n * ```tsx\n * import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label=\"Username\" /><InputGroupAddon align=\"inline-end\"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);\n * }\n * ```\n */\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='input-group'\n role='group'\n className={cn(\n 'border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-disabled:bg-input/50 dark:has-disabled:bg-input/80 h-8 rounded-lg border transition-colors has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 [[data-slot=combobox-content]_&]:focus-within:border-inherit [[data-slot=combobox-content]_&]:focus-within:ring-0 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none\",\n {\n variants: {\n /**\n * Add-on placement within an input group.\n * Accepted values: 'inline-start', 'inline-end', 'block-start', 'block-end'.\n * @defaultValue 'inline-start'\n * @see inputGroupAddonVariants\n */\n align: {\n 'inline-start': 'pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem] order-first',\n 'inline-end': 'pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem] order-last',\n 'block-start':\n 'px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start',\n 'block-end':\n 'px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n);\n\n/**\n * Positions input add-on content and focuses the neighboring input when clicked.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling. Wrapper defaults: align='inline-start'.\n * @returns The rendered InputGroupAddon composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.\n * @example\n * ```tsx\n * import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label=\"Username\" /><InputGroupAddon align=\"inline-end\"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);\n * }\n * ```\n */\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role='group'\n data-slot='input-group-addon'\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva('gap-2 text-sm shadow-none flex items-center', {\n variants: {\n /**\n * Control size preset selected by the consumer; sizes are class-based rather than numeric dimensions.\n * Accepted values: xs, sm, 'icon-xs', 'icon-sm'.\n * @defaultValue 'xs'\n * @see inputGroupButtonVariants\n */\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: '',\n 'icon-xs': 'size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0',\n 'icon-sm': 'size-8 p-0 has-[>svg]:p-0',\n },\n },\n defaultVariants: {\n size: 'xs',\n },\n});\n\n/**\n * Renders a compact action button inside an input group.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling. Wrapper defaults: type='button', variant='ghost', size='xs'.\n * @returns The rendered InputGroupButton composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.\n * @example\n * ```tsx\n * import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label=\"Username\" /><InputGroupAddon align=\"inline-end\"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);\n * }\n * ```\n */\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n ...props\n}: Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> &\n VariantProps<typeof inputGroupButtonVariants> & {\n /**\n * Native button type; InputGroupButton defaults to button to avoid implicit form submission.\n */\n type?: 'button' | 'submit' | 'reset';\n /**\n * Custom Base UI render element; it must accept forwarded/merged interaction props and refs. No asChild adapter is provided.\n */\n render?: React.ReactElement;\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\n/**\n * Styles static text or symbols inside an input group.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.\n * @returns The rendered InputGroupText composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.\n * @example\n * ```tsx\n * import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label=\"Username\" /><InputGroupAddon align=\"inline-end\"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);\n * }\n * ```\n */\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n \"text-muted-foreground gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 flex items-center [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * Renders an Appkit input with group-compatible borderless styling.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.\n * @returns The rendered InputGroupInput composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.\n * @example\n * ```tsx\n * import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label=\"Username\" /><InputGroupAddon align=\"inline-end\"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);\n * }\n * ```\n */\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<'input'>) {\n return (\n <Input\n data-slot='input-group-control'\n className={cn(\n 'rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent flex-1',\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * Renders a textarea with group-compatible borderless styling.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.\n * @returns The rendered InputGroupTextarea composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.\n * @example\n * ```tsx\n * import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label=\"Username\" /><InputGroupAddon align=\"inline-end\"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);\n * }\n * ```\n */\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot='input-group-control'\n className={cn(\n 'rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent flex-1 resize-none',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"mappings":"A,oYAyBA,SAASa,EAAW,CAAE,YAAW,GAAGC,GAAsC,CACxE,OACE,EAAAJ,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,cACV,KAAK,QACL,UAAWV,EAAAA,GACT,kmCACAe,CACF,EACA,GAAID,CACL,CAAA,CAEL,CAEA,IAAME,GAAA,EAA0Bf,EAAAA,IAAAA,CAC9B,0PACA,CACE,SAAU,CAOR,MAAO,CACL,eAAgB,uEAChB,aAAc,sEACd,cACE,oGACF,YACE,kGACJ,CACF,EACA,gBAAiB,CACf,MAAO,cACT,CACF,CACF,EAiBA,SAASgB,EAAgB,CACvB,YACA,QAAQ,eACR,GAAGH,GAC0E,CAC7E,OACE,EAAAJ,EAAA,IAAA,CAAC,MAAD,CACE,KAAK,QACL,YAAU,oBACV,aAAYQ,EACZ,UAAWlB,EAAAA,GAAGgB,EAAwB,CAAE,OAAM,CAAC,EAAGD,CAAS,EAC3D,QAAU,GAAM,CACT,EAAE,OAAuB,QAAQ,QAAQ,GAG9C,EAAE,cAAc,eAAe,cAAc,OAAO,CAAC,EAAE,MAAM,CAC/D,EACA,GAAID,CACL,CAAA,CAEL,CAEA,IAAMK,GAAA,EAA2BlB,EAAAA,IAAAA,CAAI,8CAA+C,CAClF,SAAU,CAOR,KAAM,CACJ,GAAI,4FACJ,GAAI,GACJ,UAAW,8DACX,UAAW,2BACb,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CAAC,EAiBD,SAASmB,EAAiB,CACxB,YACA,OAAO,SACP,UAAU,QACV,OAAO,KACP,GAAGN,GAWA,CACH,OACE,EAAAJ,EAAA,IAAA,CAACR,EAAAA,OAAD,CACQ,OACN,YAAWmB,EACF,UACT,UAAWrB,EAAAA,GAAGmB,EAAyB,CAAE,MAAK,CAAC,EAAGJ,CAAS,EAC3D,GAAID,CACL,CAAA,CAEL,CAiBA,SAASQ,EAAe,CAAE,YAAW,GAAGR,GAAuC,CAC7E,OACE,EAAAJ,EAAA,IAAA,CAAC,OAAD,CACE,UAAWV,EAAAA,GACT,yHACAe,CACF,EACA,GAAID,CACL,CAAA,CAEL,CAiBA,SAASS,EAAgB,CAAE,YAAW,GAAGT,GAAwC,CAC/E,OACE,EAAAJ,EAAA,IAAA,CAACP,EAAAA,MAAD,CACE,YAAU,sBACV,UAAWH,EAAAA,GACT,mLACAe,CACF,EACA,GAAID,CACL,CAAA,CAEL,CAiBA,SAASU,EAAmB,CAAE,YAAW,GAAGV,GAA2C,CACrF,OACE,EAAAJ,EAAA,IAAA,CAACN,EAAAA,SAAD,CACE,YAAU,sBACV,UAAWJ,EAAAA,GACT,oMACAe,CACF,EACA,GAAID,CACL,CAAA,CAEL,C"}
|
|
@@ -2,36 +2,114 @@ import { VariantProps } from 'class-variance-authority';
|
|
|
2
2
|
import { Button } from './button.cjs';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Visually combines an input with leading, trailing or stacked add-ons.
|
|
6
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.
|
|
7
|
+
* @returns The rendered InputGroup composition.
|
|
8
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';
|
|
12
|
+
* import '@alneas/appkit-react/styles';
|
|
13
|
+
*
|
|
14
|
+
* export function Example() {
|
|
15
|
+
* return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label="Username" /><InputGroupAddon align="inline-end"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
6
18
|
*/
|
|
7
19
|
declare function InputGroup({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
8
20
|
declare const inputGroupAddonVariants: (props?: ({
|
|
9
21
|
align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
|
|
10
22
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
11
23
|
/**
|
|
12
|
-
*
|
|
24
|
+
* Positions input add-on content and focuses the neighboring input when clicked.
|
|
25
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling. Wrapper defaults: align='inline-start'.
|
|
26
|
+
* @returns The rendered InputGroupAddon composition.
|
|
27
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';
|
|
31
|
+
* import '@alneas/appkit-react/styles';
|
|
32
|
+
*
|
|
33
|
+
* export function Example() {
|
|
34
|
+
* return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label="Username" /><InputGroupAddon align="inline-end"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
13
37
|
*/
|
|
14
38
|
declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>): React.JSX.Element;
|
|
15
39
|
declare const inputGroupButtonVariants: (props?: ({
|
|
16
40
|
size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
|
|
17
41
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
18
42
|
/**
|
|
19
|
-
*
|
|
43
|
+
* Renders a compact action button inside an input group.
|
|
44
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling. Wrapper defaults: type='button', variant='ghost', size='xs'.
|
|
45
|
+
* @returns The rendered InputGroupButton composition.
|
|
46
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';
|
|
50
|
+
* import '@alneas/appkit-react/styles';
|
|
51
|
+
*
|
|
52
|
+
* export function Example() {
|
|
53
|
+
* return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label="Username" /><InputGroupAddon align="inline-end"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);
|
|
54
|
+
* }
|
|
55
|
+
* ```
|
|
20
56
|
*/
|
|
21
57
|
declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> & VariantProps<typeof inputGroupButtonVariants> & {
|
|
58
|
+
/**
|
|
59
|
+
* Native button type; InputGroupButton defaults to button to avoid implicit form submission.
|
|
60
|
+
*/
|
|
22
61
|
type?: 'button' | 'submit' | 'reset';
|
|
62
|
+
/**
|
|
63
|
+
* Custom Base UI render element; it must accept forwarded/merged interaction props and refs. No asChild adapter is provided.
|
|
64
|
+
*/
|
|
23
65
|
render?: React.ReactElement;
|
|
24
66
|
}): React.JSX.Element;
|
|
25
67
|
/**
|
|
26
|
-
*
|
|
68
|
+
* Styles static text or symbols inside an input group.
|
|
69
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.
|
|
70
|
+
* @returns The rendered InputGroupText composition.
|
|
71
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.
|
|
72
|
+
* @example
|
|
73
|
+
* ```tsx
|
|
74
|
+
* import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';
|
|
75
|
+
* import '@alneas/appkit-react/styles';
|
|
76
|
+
*
|
|
77
|
+
* export function Example() {
|
|
78
|
+
* return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label="Username" /><InputGroupAddon align="inline-end"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);
|
|
79
|
+
* }
|
|
80
|
+
* ```
|
|
27
81
|
*/
|
|
28
82
|
declare function InputGroupText({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
|
|
29
83
|
/**
|
|
30
|
-
*
|
|
84
|
+
* Renders an Appkit input with group-compatible borderless styling.
|
|
85
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.
|
|
86
|
+
* @returns The rendered InputGroupInput composition.
|
|
87
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.
|
|
88
|
+
* @example
|
|
89
|
+
* ```tsx
|
|
90
|
+
* import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';
|
|
91
|
+
* import '@alneas/appkit-react/styles';
|
|
92
|
+
*
|
|
93
|
+
* export function Example() {
|
|
94
|
+
* return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label="Username" /><InputGroupAddon align="inline-end"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);
|
|
95
|
+
* }
|
|
96
|
+
* ```
|
|
31
97
|
*/
|
|
32
98
|
declare function InputGroupInput({ className, ...props }: React.ComponentProps<'input'>): React.JSX.Element;
|
|
33
99
|
/**
|
|
34
|
-
*
|
|
100
|
+
* Renders a textarea with group-compatible borderless styling.
|
|
101
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.
|
|
102
|
+
* @returns The rendered InputGroupTextarea composition.
|
|
103
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.
|
|
104
|
+
* @example
|
|
105
|
+
* ```tsx
|
|
106
|
+
* import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';
|
|
107
|
+
* import '@alneas/appkit-react/styles';
|
|
108
|
+
*
|
|
109
|
+
* export function Example() {
|
|
110
|
+
* return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label="Username" /><InputGroupAddon align="inline-end"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);
|
|
111
|
+
* }
|
|
112
|
+
* ```
|
|
35
113
|
*/
|
|
36
114
|
declare function InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>): React.JSX.Element;
|
|
37
115
|
export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, };
|
|
@@ -2,36 +2,114 @@ import { VariantProps } from 'class-variance-authority';
|
|
|
2
2
|
import { Button } from './button.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Visually combines an input with leading, trailing or stacked add-ons.
|
|
6
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.
|
|
7
|
+
* @returns The rendered InputGroup composition.
|
|
8
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';
|
|
12
|
+
* import '@alneas/appkit-react/styles';
|
|
13
|
+
*
|
|
14
|
+
* export function Example() {
|
|
15
|
+
* return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label="Username" /><InputGroupAddon align="inline-end"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
6
18
|
*/
|
|
7
19
|
declare function InputGroup({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
8
20
|
declare const inputGroupAddonVariants: (props?: ({
|
|
9
21
|
align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
|
|
10
22
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
11
23
|
/**
|
|
12
|
-
*
|
|
24
|
+
* Positions input add-on content and focuses the neighboring input when clicked.
|
|
25
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling. Wrapper defaults: align='inline-start'.
|
|
26
|
+
* @returns The rendered InputGroupAddon composition.
|
|
27
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';
|
|
31
|
+
* import '@alneas/appkit-react/styles';
|
|
32
|
+
*
|
|
33
|
+
* export function Example() {
|
|
34
|
+
* return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label="Username" /><InputGroupAddon align="inline-end"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
13
37
|
*/
|
|
14
38
|
declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>): React.JSX.Element;
|
|
15
39
|
declare const inputGroupButtonVariants: (props?: ({
|
|
16
40
|
size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
|
|
17
41
|
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
18
42
|
/**
|
|
19
|
-
*
|
|
43
|
+
* Renders a compact action button inside an input group.
|
|
44
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling. Wrapper defaults: type='button', variant='ghost', size='xs'.
|
|
45
|
+
* @returns The rendered InputGroupButton composition.
|
|
46
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';
|
|
50
|
+
* import '@alneas/appkit-react/styles';
|
|
51
|
+
*
|
|
52
|
+
* export function Example() {
|
|
53
|
+
* return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label="Username" /><InputGroupAddon align="inline-end"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);
|
|
54
|
+
* }
|
|
55
|
+
* ```
|
|
20
56
|
*/
|
|
21
57
|
declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> & VariantProps<typeof inputGroupButtonVariants> & {
|
|
58
|
+
/**
|
|
59
|
+
* Native button type; InputGroupButton defaults to button to avoid implicit form submission.
|
|
60
|
+
*/
|
|
22
61
|
type?: 'button' | 'submit' | 'reset';
|
|
62
|
+
/**
|
|
63
|
+
* Custom Base UI render element; it must accept forwarded/merged interaction props and refs. No asChild adapter is provided.
|
|
64
|
+
*/
|
|
23
65
|
render?: React.ReactElement;
|
|
24
66
|
}): React.JSX.Element;
|
|
25
67
|
/**
|
|
26
|
-
*
|
|
68
|
+
* Styles static text or symbols inside an input group.
|
|
69
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.
|
|
70
|
+
* @returns The rendered InputGroupText composition.
|
|
71
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.
|
|
72
|
+
* @example
|
|
73
|
+
* ```tsx
|
|
74
|
+
* import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';
|
|
75
|
+
* import '@alneas/appkit-react/styles';
|
|
76
|
+
*
|
|
77
|
+
* export function Example() {
|
|
78
|
+
* return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label="Username" /><InputGroupAddon align="inline-end"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);
|
|
79
|
+
* }
|
|
80
|
+
* ```
|
|
27
81
|
*/
|
|
28
82
|
declare function InputGroupText({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
|
|
29
83
|
/**
|
|
30
|
-
*
|
|
84
|
+
* Renders an Appkit input with group-compatible borderless styling.
|
|
85
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.
|
|
86
|
+
* @returns The rendered InputGroupInput composition.
|
|
87
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.
|
|
88
|
+
* @example
|
|
89
|
+
* ```tsx
|
|
90
|
+
* import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';
|
|
91
|
+
* import '@alneas/appkit-react/styles';
|
|
92
|
+
*
|
|
93
|
+
* export function Example() {
|
|
94
|
+
* return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label="Username" /><InputGroupAddon align="inline-end"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);
|
|
95
|
+
* }
|
|
96
|
+
* ```
|
|
31
97
|
*/
|
|
32
98
|
declare function InputGroupInput({ className, ...props }: React.ComponentProps<'input'>): React.JSX.Element;
|
|
33
99
|
/**
|
|
34
|
-
*
|
|
100
|
+
* Renders a textarea with group-compatible borderless styling.
|
|
101
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.
|
|
102
|
+
* @returns The rendered InputGroupTextarea composition.
|
|
103
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.
|
|
104
|
+
* @example
|
|
105
|
+
* ```tsx
|
|
106
|
+
* import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';
|
|
107
|
+
* import '@alneas/appkit-react/styles';
|
|
108
|
+
*
|
|
109
|
+
* export function Example() {
|
|
110
|
+
* return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label="Username" /><InputGroupAddon align="inline-end"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);
|
|
111
|
+
* }
|
|
112
|
+
* ```
|
|
35
113
|
*/
|
|
36
114
|
declare function InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>): React.JSX.Element;
|
|
37
115
|
export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-group.js","names":["InputGroup","props","cn","className","inputGroupAddonVariants","cva","InputGroupAddon","align","inputGroupButtonVariants","InputGroupButton","Button","size","InputGroupText","InputGroupInput","Input","InputGroupTextarea","Textarea"],"sources":["../../../../src/ui/components/ui/input-group.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../lib/utils';\nimport { Button } from '../../components/ui/button';\nimport { Input } from '../../components/ui/input';\nimport { Textarea } from '../../components/ui/textarea';\n\n/**\n * 入力フィールドとアイコン、ボタンなどのアドオン要素を一体化して表示するためのコンテナ。\n */\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='input-group'\n role='group'\n className={cn(\n 'border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-disabled:bg-input/50 dark:has-disabled:bg-input/80 h-8 rounded-lg border transition-colors has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 [[data-slot=combobox-content]_&]:focus-within:border-inherit [[data-slot=combobox-content]_&]:focus-within:ring-0 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none\",\n {\n variants: {\n align: {\n 'inline-start': 'pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem] order-first',\n 'inline-end': 'pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem] order-last',\n 'block-start':\n 'px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start',\n 'block-end':\n 'px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n);\n\n/**\n * 入力グループの前後や上下に配置されるアドオン領域。\n */\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role='group'\n data-slot='input-group-addon'\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva('gap-2 text-sm shadow-none flex items-center', {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: '',\n 'icon-xs': 'size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0',\n 'icon-sm': 'size-8 p-0 has-[>svg]:p-0',\n },\n },\n defaultVariants: {\n size: 'xs',\n },\n});\n\n/**\n * 入力グループ内に配置されるアクション用ボタン。\n */\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n ...props\n}: Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: 'button' | 'submit' | 'reset';\n render?: React.ReactElement;\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\n/**\n * 入力グループ内でテキストや記号を表示するためのコンポーネント。\n */\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n \"text-muted-foreground gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 flex items-center [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * 入力グループ内で枠線や個別のスタイルを持たない状態で配置される入力フィールド。\n */\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<'input'>) {\n return (\n <Input\n data-slot='input-group-control'\n className={cn(\n 'rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent flex-1',\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * 入力グループ内で枠線や個別のスタイルを持たない状態で配置される複数行入力フィールド。\n */\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot='input-group-control'\n className={cn(\n 'rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent flex-1 resize-none',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"mappings":";;;;;;;;;;AAaA,SAASA,EAAW,EAAE,cAAW,GAAGC,KAAsC;CACxE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,WAAWC,EACT,mmCACAC,CACF;EACA,GAAIF;CACL,CAAA;AAEL;AAEA,IAAMG,IAA0BC,EAC9B,2PACA;CACE,UAAU,EACR,OAAO;EACL,gBAAgB;EAChB,cAAc;EACd,eACE;EACF,aACE;CACJ,EACF;CACA,iBAAiB,EACf,OAAO,eACT;AACF,CACF;AAKA,SAASC,EAAgB,EACvB,cACA,WAAQ,gBACR,GAAGL,KAC0E;CAC7E,OACE,kBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,cAAYM;EACZ,WAAWL,EAAGE,EAAwB,EAAE,SAAM,CAAC,GAAGD,CAAS;EAC3D,UAAU,MAAM;GACd,AAAK,EAAE,OAAuB,QAAQ,QAAQ,KAG9C,EAAE,cAAc,eAAe,cAAc,OAAO,CAAC,EAAE,MAAM;EAC/D;EACA,GAAIF;CACL,CAAA;AAEL;AAEA,IAAMO,IAA2BH,EAAI,+CAA+C;CAClF,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,WAAW;EACX,WAAW;CACb,EACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CAAC;AAKD,SAASI,EAAiB,EACxB,cACA,UAAO,UACP,aAAU,SACV,UAAO,MACP,GAAGR,KAKA;CACH,OACE,kBAACS,GAAD;EACQ;EACN,aAAWC;EACF;EACT,WAAWT,EAAGM,EAAyB,EAAE,QAAK,CAAC,GAAGL,CAAS;EAC3D,GAAIF;CACL,CAAA;AAEL;AAKA,SAASW,EAAe,EAAE,cAAW,GAAGX,KAAuC;CAC7E,OACE,kBAAC,QAAD;EACE,WAAWC,EACT,0HACAC,CACF;EACA,GAAIF;CACL,CAAA;AAEL;AAKA,SAASY,EAAgB,EAAE,cAAW,GAAGZ,KAAwC;CAC/E,OACE,kBAACa,GAAD;EACE,aAAU;EACV,WAAWZ,EACT,oLACAC,CACF;EACA,GAAIF;CACL,CAAA;AAEL;AAKA,SAASc,EAAmB,EAAE,cAAW,GAAGd,KAA2C;CACrF,OACE,kBAACe,GAAD;EACE,aAAU;EACV,WAAWd,EACT,qMACAC,CACF;EACA,GAAIF;CACL,CAAA;AAEL"}
|
|
1
|
+
{"version":3,"file":"input-group.js","names":["InputGroup","props","cn","className","inputGroupAddonVariants","cva","InputGroupAddon","align","inputGroupButtonVariants","InputGroupButton","Button","size","InputGroupText","InputGroupInput","Input","InputGroupTextarea","Textarea"],"sources":["../../../../src/ui/components/ui/input-group.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../lib/utils';\nimport { Button } from '../../components/ui/button';\nimport { Input } from '../../components/ui/input';\nimport { Textarea } from '../../components/ui/textarea';\n\n/**\n * Visually combines an input with leading, trailing or stacked add-ons.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.\n * @returns The rendered InputGroup composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.\n * @example\n * ```tsx\n * import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label=\"Username\" /><InputGroupAddon align=\"inline-end\"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);\n * }\n * ```\n */\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='input-group'\n role='group'\n className={cn(\n 'border-input dark:bg-input/30 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-disabled:bg-input/50 dark:has-disabled:bg-input/80 h-8 rounded-lg border transition-colors has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot][aria-invalid=true]]:ring-[3px] has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 [[data-slot=combobox-content]_&]:focus-within:border-inherit [[data-slot=combobox-content]_&]:focus-within:ring-0 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto',\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none\",\n {\n variants: {\n /**\n * Add-on placement within an input group.\n * Accepted values: 'inline-start', 'inline-end', 'block-start', 'block-end'.\n * @defaultValue 'inline-start'\n * @see inputGroupAddonVariants\n */\n align: {\n 'inline-start': 'pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem] order-first',\n 'inline-end': 'pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem] order-last',\n 'block-start':\n 'px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start',\n 'block-end':\n 'px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n);\n\n/**\n * Positions input add-on content and focuses the neighboring input when clicked.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling. Wrapper defaults: align='inline-start'.\n * @returns The rendered InputGroupAddon composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.\n * @example\n * ```tsx\n * import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label=\"Username\" /><InputGroupAddon align=\"inline-end\"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);\n * }\n * ```\n */\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role='group'\n data-slot='input-group-addon'\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva('gap-2 text-sm shadow-none flex items-center', {\n variants: {\n /**\n * Control size preset selected by the consumer; sizes are class-based rather than numeric dimensions.\n * Accepted values: xs, sm, 'icon-xs', 'icon-sm'.\n * @defaultValue 'xs'\n * @see inputGroupButtonVariants\n */\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: '',\n 'icon-xs': 'size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0',\n 'icon-sm': 'size-8 p-0 has-[>svg]:p-0',\n },\n },\n defaultVariants: {\n size: 'xs',\n },\n});\n\n/**\n * Renders a compact action button inside an input group.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling. Wrapper defaults: type='button', variant='ghost', size='xs'.\n * @returns The rendered InputGroupButton composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.\n * @example\n * ```tsx\n * import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label=\"Username\" /><InputGroupAddon align=\"inline-end\"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);\n * }\n * ```\n */\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n ...props\n}: Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> &\n VariantProps<typeof inputGroupButtonVariants> & {\n /**\n * Native button type; InputGroupButton defaults to button to avoid implicit form submission.\n */\n type?: 'button' | 'submit' | 'reset';\n /**\n * Custom Base UI render element; it must accept forwarded/merged interaction props and refs. No asChild adapter is provided.\n */\n render?: React.ReactElement;\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\n/**\n * Styles static text or symbols inside an input group.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.\n * @returns The rendered InputGroupText composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.\n * @example\n * ```tsx\n * import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label=\"Username\" /><InputGroupAddon align=\"inline-end\"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);\n * }\n * ```\n */\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n \"text-muted-foreground gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 flex items-center [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * Renders an Appkit input with group-compatible borderless styling.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.\n * @returns The rendered InputGroupInput composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.\n * @example\n * ```tsx\n * import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label=\"Username\" /><InputGroupAddon align=\"inline-end\"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);\n * }\n * ```\n */\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<'input'>) {\n return (\n <Input\n data-slot='input-group-control'\n className={cn(\n 'rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent flex-1',\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * Renders a textarea with group-compatible borderless styling.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.\n * @returns The rendered InputGroupTextarea composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Compose these slots as siblings inside InputGroup. Addon clicks focus the first input unless the target is inside a button; a caller onClick spread afterward replaces that handler. InputGroupInput uses native input props and provides no label prop. InputGroupButton defaults to type=button, variant=ghost, size=xs.\n * @example\n * ```tsx\n * import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputGroup><InputGroupAddon><InputGroupText>@</InputGroupText></InputGroupAddon><InputGroupInput aria-label=\"Username\" /><InputGroupAddon align=\"inline-end\"><InputGroupButton>Check</InputGroupButton></InputGroupAddon></InputGroup>);\n * }\n * ```\n */\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot='input-group-control'\n className={cn(\n 'rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent flex-1 resize-none',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"mappings":";;;;;;;;;;AAyBA,SAASA,EAAW,EAAE,cAAW,GAAGC,KAAsC;CACxE,OACE,kBAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,WAAWC,EACT,mmCACAC,CACF;EACA,GAAIF;CACL,CAAA;AAEL;AAEA,IAAMG,IAA0BC,EAC9B,2PACA;CACE,UAAU,EAOR,OAAO;EACL,gBAAgB;EAChB,cAAc;EACd,eACE;EACF,aACE;CACJ,EACF;CACA,iBAAiB,EACf,OAAO,eACT;AACF,CACF;AAiBA,SAASC,EAAgB,EACvB,cACA,WAAQ,gBACR,GAAGL,KAC0E;CAC7E,OACE,kBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,cAAYM;EACZ,WAAWL,EAAGE,EAAwB,EAAE,SAAM,CAAC,GAAGD,CAAS;EAC3D,UAAU,MAAM;GACd,AAAK,EAAE,OAAuB,QAAQ,QAAQ,KAG9C,EAAE,cAAc,eAAe,cAAc,OAAO,CAAC,EAAE,MAAM;EAC/D;EACA,GAAIF;CACL,CAAA;AAEL;AAEA,IAAMO,IAA2BH,EAAI,+CAA+C;CAClF,UAAU,EAOR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,WAAW;EACX,WAAW;CACb,EACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CAAC;AAiBD,SAASI,EAAiB,EACxB,cACA,UAAO,UACP,aAAU,SACV,UAAO,MACP,GAAGR,KAWA;CACH,OACE,kBAACS,GAAD;EACQ;EACN,aAAWC;EACF;EACT,WAAWT,EAAGM,EAAyB,EAAE,QAAK,CAAC,GAAGL,CAAS;EAC3D,GAAIF;CACL,CAAA;AAEL;AAiBA,SAASW,EAAe,EAAE,cAAW,GAAGX,KAAuC;CAC7E,OACE,kBAAC,QAAD;EACE,WAAWC,EACT,0HACAC,CACF;EACA,GAAIF;CACL,CAAA;AAEL;AAiBA,SAASY,EAAgB,EAAE,cAAW,GAAGZ,KAAwC;CAC/E,OACE,kBAACa,GAAD;EACE,aAAU;EACV,WAAWZ,EACT,oLACAC,CACF;EACA,GAAIF;CACL,CAAA;AAEL;AAiBA,SAASc,EAAmB,EAAE,cAAW,GAAGd,KAA2C;CACrF,OACE,kBAACe,GAAD;EACE,aAAU;EACV,WAAWd,EACT,qMACAC,CACF;EACA,GAAIF;CACL,CAAA;AAEL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-otp.cjs","names":["OTPInput","cn","React","OTPInputContext","Minus","require_runtime","require_ui_lib_utils","react_jsx_runtime","react","lucide_react","input_otp","InputOTP","props","containerClassName","className","InputOTPGroup","InputOTPSlot","index","isActive","char","hasFakeCaret","InputOTPSeparator"],"sources":["../../../../src/ui/components/ui/input-otp.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { OTPInput, OTPInputContext } from 'input-otp';\n\nimport { cn } from '../../lib/utils';\nimport { Minus } from 'lucide-react';\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"input-otp.cjs","names":["OTPInput","cn","React","OTPInputContext","Minus","require_runtime","require_ui_lib_utils","react_jsx_runtime","react","lucide_react","input_otp","InputOTP","props","containerClassName","className","InputOTPGroup","InputOTPSlot","index","isActive","char","hasFakeCaret","InputOTPSeparator"],"sources":["../../../../src/ui/components/ui/input-otp.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { OTPInput, OTPInputContext } from 'input-otp';\n\nimport { cn } from '../../lib/utils';\nimport { Minus } from 'lucide-react';\n\n/**\n * Coordinates a single OTP input and its visual character slots.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.\n * @returns The rendered InputOTP composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. InputOTPSlot reads input-otp context and its index must be within maxLength. Missing context/out-of-range slots render no character. containerClassName styles the outer OTP container, className the input. spellCheck defaults to false but remaining props can override it. The host owns verification and expiry.\n * @example\n * ```tsx\n * import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputOTP maxLength={4} aria-label=\"Verification code\"><InputOTPGroup><InputOTPSlot index={0} /><InputOTPSlot index={1} /></InputOTPGroup><InputOTPSeparator /><InputOTPGroup><InputOTPSlot index={2} /><InputOTPSlot index={3} /></InputOTPGroup></InputOTP>);\n * }\n * ```\n */\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n /**\n * Additional classes applied to the outer input-otp container rather than its input.\n */\n containerClassName?: string;\n}) {\n return (\n <OTPInput\n data-slot='input-otp'\n containerClassName={cn(\n 'cn-input-otp flex items-center has-disabled:opacity-50',\n containerClassName,\n )}\n spellCheck={false}\n className={cn('disabled:cursor-not-allowed', className)}\n {...props}\n />\n );\n}\n\n/**\n * Lays out adjacent OTP slots as a visually joined group.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.\n * @returns The rendered InputOTPGroup composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. InputOTPSlot reads input-otp context and its index must be within maxLength. Missing context/out-of-range slots render no character. containerClassName styles the outer OTP container, className the input. spellCheck defaults to false but remaining props can override it. The host owns verification and expiry.\n * @example\n * ```tsx\n * import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputOTP maxLength={4} aria-label=\"Verification code\"><InputOTPGroup><InputOTPSlot index={0} /><InputOTPSlot index={1} /></InputOTPGroup><InputOTPSeparator /><InputOTPGroup><InputOTPSlot index={2} /><InputOTPSlot index={3} /></InputOTPGroup></InputOTP>);\n * }\n * ```\n */\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='input-otp-group'\n className={cn(\n 'has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40 has-aria-invalid:border-destructive rounded-lg has-aria-invalid:ring-[3px] flex items-center',\n className,\n )}\n {...props}\n />\n );\n}\n\n/**\n * Displays one zero-based slot from the surrounding OTP input context.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.\n * @returns The rendered InputOTPSlot composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. InputOTPSlot reads input-otp context and its index must be within maxLength. Missing context/out-of-range slots render no character. containerClassName styles the outer OTP container, className the input. spellCheck defaults to false but remaining props can override it. The host owns verification and expiry.\n * @example\n * ```tsx\n * import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputOTP maxLength={4} aria-label=\"Verification code\"><InputOTPGroup><InputOTPSlot index={0} /><InputOTPSlot index={1} /></InputOTPGroup><InputOTPSeparator /><InputOTPGroup><InputOTPSlot index={2} /><InputOTPSlot index={3} /></InputOTPGroup></InputOTP>);\n * }\n * ```\n */\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n /**\n * Zero-based index into the surrounding OTP context slots; choose an index smaller than maxLength.\n */\n index: number;\n}) {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n data-slot='input-otp-slot'\n data-active={isActive}\n className={cn(\n 'dark:bg-input/30 border-input data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive size-8 border-y border-r text-sm transition-all outline-none first:rounded-l-lg first:border-l last:rounded-r-lg data-[active=true]:ring-[3px] relative flex items-center justify-center data-[active=true]:z-10',\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className='pointer-events-none absolute inset-0 flex items-center justify-center'>\n <div className='animate-caret-blink bg-foreground h-4 w-px duration-1000 bg-foreground h-4 w-px' />\n </div>\n )}\n </div>\n );\n}\n\n/**\n * Renders a visual separator between OTP slot groups.\n * @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.\n * @returns The rendered InputOTPSeparator composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. InputOTPSlot reads input-otp context and its index must be within maxLength. Missing context/out-of-range slots render no character. containerClassName styles the outer OTP container, className the input. spellCheck defaults to false but remaining props can override it. The host owns verification and expiry. children are replaced by the fixed minus icon.\n * @example\n * ```tsx\n * import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@alneas/appkit-react/ui';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * return (<InputOTP maxLength={4} aria-label=\"Verification code\"><InputOTPGroup><InputOTPSlot index={0} /><InputOTPSlot index={1} /></InputOTPGroup><InputOTPSeparator /><InputOTPGroup><InputOTPSlot index={2} /><InputOTPSlot index={3} /></InputOTPGroup></InputOTP>);\n * }\n * ```\n */\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot='input-otp-separator'\n className=\"[&_svg:not([class*='size-'])]:size-4 flex items-center\"\n role='separator'\n {...props}\n >\n <Minus />\n </div>\n );\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n"],"mappings":"A,qTAuBA,SAASW,EAAS,CAChB,YACA,qBACA,GAAGC,GAMF,CACD,OACE,EAAAL,EAAA,IAAA,CAACP,EAAAA,SAAD,CACE,YAAU,YACV,mBAAoBC,EAAAA,GAClB,yDACAY,CACF,EACA,WAAY,GACZ,UAAWZ,EAAAA,GAAG,8BAA+Ba,CAAS,EACtD,GAAIF,CACL,CAAA,CAEL,CAiBA,SAASG,EAAc,CAAE,YAAW,GAAGH,GAAsC,CAC3E,OACE,EAAAL,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,kBACV,UAAWN,EAAAA,GACT,8KACAa,CACF,EACA,GAAIF,CACL,CAAA,CAEL,CAiBA,SAASI,EAAa,CACpB,QACA,YACA,GAAGJ,GAMF,CAED,GAAM,CAAE,OAAM,eAAc,YADJV,EAAM,WAAWC,EAAAA,eACA,CAAA,EAAiB,MAAMc,IAAU,CAAC,EAE3E,OACE,EAAAV,EAAA,KAAA,CAAC,MAAD,CACE,YAAU,iBACV,cAAaW,EACb,UAAWjB,EAAAA,GACT,gfACAa,CACF,EACA,GAAIF,EAPN,SAAA,CASGO,EACAC,IACC,EAAAb,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,wEACb,UAAA,EAAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,iFAAmF,CAAA,CAC/F,CAAA,CAEJ,C,EAET,CAiBA,SAASc,EAAkB,CAAE,GAAGT,GAAsC,CACpE,OACE,EAAAL,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,sBACV,UAAU,yDACV,KAAK,YACL,GAAIK,EAEJ,UAAA,EAAAL,EAAA,IAAA,CAACH,EAAAA,MAAD,CAAQ,CAAA,CACL,CAAA,CAET,C"}
|
|
@@ -1,23 +1,77 @@
|
|
|
1
1
|
import { OTPInput } from 'input-otp';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Coordinates a single OTP input and its visual character slots.
|
|
5
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.
|
|
6
|
+
* @returns The rendered InputOTP composition.
|
|
7
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. InputOTPSlot reads input-otp context and its index must be within maxLength. Missing context/out-of-range slots render no character. containerClassName styles the outer OTP container, className the input. spellCheck defaults to false but remaining props can override it. The host owns verification and expiry.
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@alneas/appkit-react/ui';
|
|
11
|
+
* import '@alneas/appkit-react/styles';
|
|
12
|
+
*
|
|
13
|
+
* export function Example() {
|
|
14
|
+
* return (<InputOTP maxLength={4} aria-label="Verification code"><InputOTPGroup><InputOTPSlot index={0} /><InputOTPSlot index={1} /></InputOTPGroup><InputOTPSeparator /><InputOTPGroup><InputOTPSlot index={2} /><InputOTPSlot index={3} /></InputOTPGroup></InputOTP>);
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
5
17
|
*/
|
|
6
18
|
declare function InputOTP({ className, containerClassName, ...props }: React.ComponentProps<typeof OTPInput> & {
|
|
19
|
+
/**
|
|
20
|
+
* Additional classes applied to the outer input-otp container rather than its input.
|
|
21
|
+
*/
|
|
7
22
|
containerClassName?: string;
|
|
8
23
|
}): React.JSX.Element;
|
|
9
24
|
/**
|
|
10
|
-
* OTP
|
|
25
|
+
* Lays out adjacent OTP slots as a visually joined group.
|
|
26
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.
|
|
27
|
+
* @returns The rendered InputOTPGroup composition.
|
|
28
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. InputOTPSlot reads input-otp context and its index must be within maxLength. Missing context/out-of-range slots render no character. containerClassName styles the outer OTP container, className the input. spellCheck defaults to false but remaining props can override it. The host owns verification and expiry.
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@alneas/appkit-react/ui';
|
|
32
|
+
* import '@alneas/appkit-react/styles';
|
|
33
|
+
*
|
|
34
|
+
* export function Example() {
|
|
35
|
+
* return (<InputOTP maxLength={4} aria-label="Verification code"><InputOTPGroup><InputOTPSlot index={0} /><InputOTPSlot index={1} /></InputOTPGroup><InputOTPSeparator /><InputOTPGroup><InputOTPSlot index={2} /><InputOTPSlot index={3} /></InputOTPGroup></InputOTP>);
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
11
38
|
*/
|
|
12
39
|
declare function InputOTPGroup({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
13
40
|
/**
|
|
14
|
-
* OTP
|
|
41
|
+
* Displays one zero-based slot from the surrounding OTP input context.
|
|
42
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.
|
|
43
|
+
* @returns The rendered InputOTPSlot composition.
|
|
44
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. InputOTPSlot reads input-otp context and its index must be within maxLength. Missing context/out-of-range slots render no character. containerClassName styles the outer OTP container, className the input. spellCheck defaults to false but remaining props can override it. The host owns verification and expiry.
|
|
45
|
+
* @example
|
|
46
|
+
* ```tsx
|
|
47
|
+
* import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@alneas/appkit-react/ui';
|
|
48
|
+
* import '@alneas/appkit-react/styles';
|
|
49
|
+
*
|
|
50
|
+
* export function Example() {
|
|
51
|
+
* return (<InputOTP maxLength={4} aria-label="Verification code"><InputOTPGroup><InputOTPSlot index={0} /><InputOTPSlot index={1} /></InputOTPGroup><InputOTPSeparator /><InputOTPGroup><InputOTPSlot index={2} /><InputOTPSlot index={3} /></InputOTPGroup></InputOTP>);
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
15
54
|
*/
|
|
16
55
|
declare function InputOTPSlot({ index, className, ...props }: React.ComponentProps<'div'> & {
|
|
56
|
+
/**
|
|
57
|
+
* Zero-based index into the surrounding OTP context slots; choose an index smaller than maxLength.
|
|
58
|
+
*/
|
|
17
59
|
index: number;
|
|
18
60
|
}): React.JSX.Element;
|
|
19
61
|
/**
|
|
20
|
-
* OTP
|
|
62
|
+
* Renders a visual separator between OTP slot groups.
|
|
63
|
+
* @param props - Component attributes and children accepted by the declared native/underlying prop type; className customizes wrapper styling.
|
|
64
|
+
* @returns The rendered InputOTPSeparator composition.
|
|
65
|
+
* @remarks Import @alneas/appkit-react/styles in the rendering host. InputOTPSlot reads input-otp context and its index must be within maxLength. Missing context/out-of-range slots render no character. containerClassName styles the outer OTP container, className the input. spellCheck defaults to false but remaining props can override it. The host owns verification and expiry. children are replaced by the fixed minus icon.
|
|
66
|
+
* @example
|
|
67
|
+
* ```tsx
|
|
68
|
+
* import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from '@alneas/appkit-react/ui';
|
|
69
|
+
* import '@alneas/appkit-react/styles';
|
|
70
|
+
*
|
|
71
|
+
* export function Example() {
|
|
72
|
+
* return (<InputOTP maxLength={4} aria-label="Verification code"><InputOTPGroup><InputOTPSlot index={0} /><InputOTPSlot index={1} /></InputOTPGroup><InputOTPSeparator /><InputOTPGroup><InputOTPSlot index={2} /><InputOTPSlot index={3} /></InputOTPGroup></InputOTP>);
|
|
73
|
+
* }
|
|
74
|
+
* ```
|
|
21
75
|
*/
|
|
22
76
|
declare function InputOTPSeparator({ ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
23
77
|
export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };
|