@mihcm/ui 0.14.1
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/README.md +138 -0
- package/dist/AccessLevelGroup.d.ts +37 -0
- package/dist/AccessLevelGroup.d.ts.map +1 -0
- package/dist/AccessLevelGroup.js +39 -0
- package/dist/AccessLevelGroup.js.map +1 -0
- package/dist/AccessLevelGroup.native.d.ts +18 -0
- package/dist/AccessLevelGroup.native.d.ts.map +1 -0
- package/dist/AccessLevelGroup.native.js +40 -0
- package/dist/AccessLevelGroup.native.js.map +1 -0
- package/dist/Accordion.d.ts +52 -0
- package/dist/Accordion.d.ts.map +1 -0
- package/dist/Accordion.js +90 -0
- package/dist/Accordion.js.map +1 -0
- package/dist/Accordion.native.d.ts +36 -0
- package/dist/Accordion.native.d.ts.map +1 -0
- package/dist/Accordion.native.js +86 -0
- package/dist/Accordion.native.js.map +1 -0
- package/dist/Alert.d.ts +33 -0
- package/dist/Alert.d.ts.map +1 -0
- package/dist/Alert.js +45 -0
- package/dist/Alert.js.map +1 -0
- package/dist/Alert.native.d.ts +26 -0
- package/dist/Alert.native.d.ts.map +1 -0
- package/dist/Alert.native.js +41 -0
- package/dist/Alert.native.js.map +1 -0
- package/dist/AlertDialog.d.ts +57 -0
- package/dist/AlertDialog.d.ts.map +1 -0
- package/dist/AlertDialog.js +91 -0
- package/dist/AlertDialog.js.map +1 -0
- package/dist/AlertDialog.native.d.ts +66 -0
- package/dist/AlertDialog.native.d.ts.map +1 -0
- package/dist/AlertDialog.native.js +71 -0
- package/dist/AlertDialog.native.js.map +1 -0
- package/dist/AspectRatio.d.ts +18 -0
- package/dist/AspectRatio.d.ts.map +1 -0
- package/dist/AspectRatio.js +19 -0
- package/dist/AspectRatio.js.map +1 -0
- package/dist/AspectRatio.native.d.ts +7 -0
- package/dist/AspectRatio.native.d.ts.map +1 -0
- package/dist/AspectRatio.native.js +13 -0
- package/dist/AspectRatio.native.js.map +1 -0
- package/dist/Avatar.d.ts +45 -0
- package/dist/Avatar.d.ts.map +1 -0
- package/dist/Avatar.js +69 -0
- package/dist/Avatar.js.map +1 -0
- package/dist/Avatar.native.d.ts +38 -0
- package/dist/Avatar.native.d.ts.map +1 -0
- package/dist/Avatar.native.js +56 -0
- package/dist/Avatar.native.js.map +1 -0
- package/dist/AvatarGroup.d.ts +32 -0
- package/dist/AvatarGroup.d.ts.map +1 -0
- package/dist/AvatarGroup.js +45 -0
- package/dist/AvatarGroup.js.map +1 -0
- package/dist/AvatarGroup.native.d.ts +18 -0
- package/dist/AvatarGroup.native.d.ts.map +1 -0
- package/dist/AvatarGroup.native.js +35 -0
- package/dist/AvatarGroup.native.js.map +1 -0
- package/dist/Badge.d.ts +26 -0
- package/dist/Badge.d.ts.map +1 -0
- package/dist/Badge.js +44 -0
- package/dist/Badge.js.map +1 -0
- package/dist/Badge.native.d.ts +23 -0
- package/dist/Badge.native.d.ts.map +1 -0
- package/dist/Badge.native.js +49 -0
- package/dist/Badge.native.js.map +1 -0
- package/dist/Banner.d.ts +27 -0
- package/dist/Banner.d.ts.map +1 -0
- package/dist/Banner.js +41 -0
- package/dist/Banner.js.map +1 -0
- package/dist/Banner.native.d.ts +24 -0
- package/dist/Banner.native.d.ts.map +1 -0
- package/dist/Banner.native.js +39 -0
- package/dist/Banner.native.js.map +1 -0
- package/dist/BarList.d.ts +27 -0
- package/dist/BarList.d.ts.map +1 -0
- package/dist/BarList.js +25 -0
- package/dist/BarList.js.map +1 -0
- package/dist/Breadcrumb.d.ts +67 -0
- package/dist/Breadcrumb.d.ts.map +1 -0
- package/dist/Breadcrumb.js +63 -0
- package/dist/Breadcrumb.js.map +1 -0
- package/dist/Breadcrumb.native.d.ts +64 -0
- package/dist/Breadcrumb.native.d.ts.map +1 -0
- package/dist/Breadcrumb.native.js +50 -0
- package/dist/Breadcrumb.native.js.map +1 -0
- package/dist/Button.d.ts +42 -0
- package/dist/Button.d.ts.map +1 -0
- package/dist/Button.js +68 -0
- package/dist/Button.js.map +1 -0
- package/dist/Button.native.d.ts +38 -0
- package/dist/Button.native.d.ts.map +1 -0
- package/dist/Button.native.js +51 -0
- package/dist/Button.native.js.map +1 -0
- package/dist/Calendar.d.ts +16 -0
- package/dist/Calendar.d.ts.map +1 -0
- package/dist/Calendar.js +94 -0
- package/dist/Calendar.js.map +1 -0
- package/dist/Calendar.native.d.ts +21 -0
- package/dist/Calendar.native.d.ts.map +1 -0
- package/dist/Calendar.native.js +15 -0
- package/dist/Calendar.native.js.map +1 -0
- package/dist/Card.d.ts +29 -0
- package/dist/Card.d.ts.map +1 -0
- package/dist/Card.js +44 -0
- package/dist/Card.js.map +1 -0
- package/dist/Card.native.d.ts +20 -0
- package/dist/Card.native.d.ts.map +1 -0
- package/dist/Card.native.js +32 -0
- package/dist/Card.native.js.map +1 -0
- package/dist/Carousel.d.ts +46 -0
- package/dist/Carousel.d.ts.map +1 -0
- package/dist/Carousel.js +115 -0
- package/dist/Carousel.js.map +1 -0
- package/dist/Carousel.native.d.ts +59 -0
- package/dist/Carousel.native.d.ts.map +1 -0
- package/dist/Carousel.native.js +93 -0
- package/dist/Carousel.native.js.map +1 -0
- package/dist/CategoryBar.d.ts +22 -0
- package/dist/CategoryBar.d.ts.map +1 -0
- package/dist/CategoryBar.js +27 -0
- package/dist/CategoryBar.js.map +1 -0
- package/dist/Chart.d.ts +77 -0
- package/dist/Chart.d.ts.map +1 -0
- package/dist/Chart.js +197 -0
- package/dist/Chart.js.map +1 -0
- package/dist/Checkbox.d.ts +28 -0
- package/dist/Checkbox.d.ts.map +1 -0
- package/dist/Checkbox.js +44 -0
- package/dist/Checkbox.js.map +1 -0
- package/dist/Checkbox.native.d.ts +13 -0
- package/dist/Checkbox.native.d.ts.map +1 -0
- package/dist/Checkbox.native.js +34 -0
- package/dist/Checkbox.native.js.map +1 -0
- package/dist/CheckboxGrid.d.ts +49 -0
- package/dist/CheckboxGrid.d.ts.map +1 -0
- package/dist/CheckboxGrid.js +79 -0
- package/dist/CheckboxGrid.js.map +1 -0
- package/dist/CheckboxGrid.native.d.ts +14 -0
- package/dist/CheckboxGrid.native.d.ts.map +1 -0
- package/dist/CheckboxGrid.native.js +47 -0
- package/dist/CheckboxGrid.native.js.map +1 -0
- package/dist/Collapsible.d.ts +51 -0
- package/dist/Collapsible.d.ts.map +1 -0
- package/dist/Collapsible.js +101 -0
- package/dist/Collapsible.js.map +1 -0
- package/dist/Collapsible.native.d.ts +53 -0
- package/dist/Collapsible.native.d.ts.map +1 -0
- package/dist/Collapsible.native.js +109 -0
- package/dist/Collapsible.native.js.map +1 -0
- package/dist/Combobox.d.ts +42 -0
- package/dist/Combobox.d.ts.map +1 -0
- package/dist/Combobox.js +96 -0
- package/dist/Combobox.js.map +1 -0
- package/dist/Combobox.native.d.ts +21 -0
- package/dist/Combobox.native.d.ts.map +1 -0
- package/dist/Combobox.native.js +28 -0
- package/dist/Combobox.native.js.map +1 -0
- package/dist/Command.d.ts +107 -0
- package/dist/Command.d.ts.map +1 -0
- package/dist/Command.js +68 -0
- package/dist/Command.js.map +1 -0
- package/dist/Command.native.d.ts +41 -0
- package/dist/Command.native.d.ts.map +1 -0
- package/dist/Command.native.js +31 -0
- package/dist/Command.native.js.map +1 -0
- package/dist/ContextMenu.d.ts +48 -0
- package/dist/ContextMenu.d.ts.map +1 -0
- package/dist/ContextMenu.js +79 -0
- package/dist/ContextMenu.js.map +1 -0
- package/dist/ContextMenu.native.d.ts +81 -0
- package/dist/ContextMenu.native.d.ts.map +1 -0
- package/dist/ContextMenu.native.js +82 -0
- package/dist/ContextMenu.native.js.map +1 -0
- package/dist/DataTable.d.ts +98 -0
- package/dist/DataTable.d.ts.map +1 -0
- package/dist/DataTable.js +291 -0
- package/dist/DataTable.js.map +1 -0
- package/dist/DataTable.native.d.ts +31 -0
- package/dist/DataTable.native.d.ts.map +1 -0
- package/dist/DataTable.native.js +22 -0
- package/dist/DataTable.native.js.map +1 -0
- package/dist/DatePicker.d.ts +63 -0
- package/dist/DatePicker.d.ts.map +1 -0
- package/dist/DatePicker.js +106 -0
- package/dist/DatePicker.js.map +1 -0
- package/dist/DatePicker.native.d.ts +21 -0
- package/dist/DatePicker.native.d.ts.map +1 -0
- package/dist/DatePicker.native.js +15 -0
- package/dist/DatePicker.native.js.map +1 -0
- package/dist/Dialog.d.ts +52 -0
- package/dist/Dialog.d.ts.map +1 -0
- package/dist/Dialog.js +93 -0
- package/dist/Dialog.js.map +1 -0
- package/dist/Dialog.native.d.ts +57 -0
- package/dist/Dialog.native.d.ts.map +1 -0
- package/dist/Dialog.native.js +62 -0
- package/dist/Dialog.native.js.map +1 -0
- package/dist/Drawer.d.ts +36 -0
- package/dist/Drawer.d.ts.map +1 -0
- package/dist/Drawer.js +57 -0
- package/dist/Drawer.js.map +1 -0
- package/dist/Drawer.native.d.ts +50 -0
- package/dist/Drawer.native.d.ts.map +1 -0
- package/dist/Drawer.native.js +43 -0
- package/dist/Drawer.native.js.map +1 -0
- package/dist/DropdownMenu.d.ts +57 -0
- package/dist/DropdownMenu.d.ts.map +1 -0
- package/dist/DropdownMenu.js +192 -0
- package/dist/DropdownMenu.js.map +1 -0
- package/dist/DropdownMenu.native.d.ts +53 -0
- package/dist/DropdownMenu.native.d.ts.map +1 -0
- package/dist/DropdownMenu.native.js +71 -0
- package/dist/DropdownMenu.native.js.map +1 -0
- package/dist/Dropzone.d.ts +27 -0
- package/dist/Dropzone.d.ts.map +1 -0
- package/dist/Dropzone.js +33 -0
- package/dist/Dropzone.js.map +1 -0
- package/dist/EmptyState.d.ts +21 -0
- package/dist/EmptyState.d.ts.map +1 -0
- package/dist/EmptyState.js +16 -0
- package/dist/EmptyState.js.map +1 -0
- package/dist/EmptyState.native.d.ts +19 -0
- package/dist/EmptyState.native.d.ts.map +1 -0
- package/dist/EmptyState.native.js +16 -0
- package/dist/EmptyState.native.js.map +1 -0
- package/dist/Form.d.ts +310 -0
- package/dist/Form.d.ts.map +1 -0
- package/dist/Form.js +260 -0
- package/dist/Form.js.map +1 -0
- package/dist/Form.native.d.ts +36 -0
- package/dist/Form.native.d.ts.map +1 -0
- package/dist/Form.native.js +33 -0
- package/dist/Form.native.js.map +1 -0
- package/dist/HoverCard.d.ts +47 -0
- package/dist/HoverCard.d.ts.map +1 -0
- package/dist/HoverCard.js +86 -0
- package/dist/HoverCard.js.map +1 -0
- package/dist/HoverCard.native.d.ts +48 -0
- package/dist/HoverCard.native.d.ts.map +1 -0
- package/dist/HoverCard.native.js +19 -0
- package/dist/HoverCard.native.js.map +1 -0
- package/dist/IconSidebar.d.ts +50 -0
- package/dist/IconSidebar.d.ts.map +1 -0
- package/dist/IconSidebar.js +121 -0
- package/dist/IconSidebar.js.map +1 -0
- package/dist/IconSidebar.native.d.ts +40 -0
- package/dist/IconSidebar.native.d.ts.map +1 -0
- package/dist/IconSidebar.native.js +24 -0
- package/dist/IconSidebar.native.js.map +1 -0
- package/dist/Input.d.ts +52 -0
- package/dist/Input.d.ts.map +1 -0
- package/dist/Input.js +57 -0
- package/dist/Input.js.map +1 -0
- package/dist/Input.native.d.ts +37 -0
- package/dist/Input.native.d.ts.map +1 -0
- package/dist/Input.native.js +39 -0
- package/dist/Input.native.js.map +1 -0
- package/dist/InputOTP.d.ts +30 -0
- package/dist/InputOTP.d.ts.map +1 -0
- package/dist/InputOTP.js +47 -0
- package/dist/InputOTP.js.map +1 -0
- package/dist/InputOTP.native.d.ts +32 -0
- package/dist/InputOTP.native.d.ts.map +1 -0
- package/dist/InputOTP.native.js +48 -0
- package/dist/InputOTP.native.js.map +1 -0
- package/dist/Label.d.ts +26 -0
- package/dist/Label.d.ts.map +1 -0
- package/dist/Label.js +35 -0
- package/dist/Label.js.map +1 -0
- package/dist/Label.native.d.ts +26 -0
- package/dist/Label.native.d.ts.map +1 -0
- package/dist/Label.native.js +30 -0
- package/dist/Label.native.js.map +1 -0
- package/dist/Link.d.ts +21 -0
- package/dist/Link.d.ts.map +1 -0
- package/dist/Link.js +46 -0
- package/dist/Link.js.map +1 -0
- package/dist/Link.native.d.ts +23 -0
- package/dist/Link.native.d.ts.map +1 -0
- package/dist/Link.native.js +59 -0
- package/dist/Link.native.js.map +1 -0
- package/dist/Logo.d.ts +25 -0
- package/dist/Logo.d.ts.map +1 -0
- package/dist/Logo.js +58 -0
- package/dist/Logo.js.map +1 -0
- package/dist/Logo.native.d.ts +22 -0
- package/dist/Logo.native.d.ts.map +1 -0
- package/dist/Logo.native.js +46 -0
- package/dist/Logo.native.js.map +1 -0
- package/dist/MainSidebar.d.ts +2 -0
- package/dist/MainSidebar.d.ts.map +1 -0
- package/dist/MainSidebar.js +3 -0
- package/dist/MainSidebar.js.map +1 -0
- package/dist/MainSidebar.native.d.ts +2 -0
- package/dist/MainSidebar.native.d.ts.map +1 -0
- package/dist/MainSidebar.native.js +2 -0
- package/dist/MainSidebar.native.js.map +1 -0
- package/dist/Menubar.d.ts +70 -0
- package/dist/Menubar.d.ts.map +1 -0
- package/dist/Menubar.js +142 -0
- package/dist/Menubar.js.map +1 -0
- package/dist/NavigationMenu.d.ts +12 -0
- package/dist/NavigationMenu.d.ts.map +1 -0
- package/dist/NavigationMenu.js +63 -0
- package/dist/NavigationMenu.js.map +1 -0
- package/dist/NavigationMenu.native.d.ts +44 -0
- package/dist/NavigationMenu.native.d.ts.map +1 -0
- package/dist/NavigationMenu.native.js +43 -0
- package/dist/NavigationMenu.native.js.map +1 -0
- package/dist/NotificationBadge.d.ts +33 -0
- package/dist/NotificationBadge.d.ts.map +1 -0
- package/dist/NotificationBadge.js +49 -0
- package/dist/NotificationBadge.js.map +1 -0
- package/dist/NotificationBadge.native.d.ts +25 -0
- package/dist/NotificationBadge.native.d.ts.map +1 -0
- package/dist/NotificationBadge.native.js +41 -0
- package/dist/NotificationBadge.native.js.map +1 -0
- package/dist/PageShell.d.ts +24 -0
- package/dist/PageShell.d.ts.map +1 -0
- package/dist/PageShell.js +24 -0
- package/dist/PageShell.js.map +1 -0
- package/dist/PageShell.native.d.ts +21 -0
- package/dist/PageShell.native.d.ts.map +1 -0
- package/dist/PageShell.native.js +19 -0
- package/dist/PageShell.native.js.map +1 -0
- package/dist/Pagination.d.ts +53 -0
- package/dist/Pagination.d.ts.map +1 -0
- package/dist/Pagination.js +79 -0
- package/dist/Pagination.js.map +1 -0
- package/dist/Pagination.native.d.ts +48 -0
- package/dist/Pagination.native.d.ts.map +1 -0
- package/dist/Pagination.native.js +55 -0
- package/dist/Pagination.native.js.map +1 -0
- package/dist/Popover.d.ts +57 -0
- package/dist/Popover.d.ts.map +1 -0
- package/dist/Popover.js +71 -0
- package/dist/Popover.js.map +1 -0
- package/dist/Popover.native.d.ts +48 -0
- package/dist/Popover.native.d.ts.map +1 -0
- package/dist/Popover.native.js +65 -0
- package/dist/Popover.native.js.map +1 -0
- package/dist/Popper.d.ts +54 -0
- package/dist/Popper.d.ts.map +1 -0
- package/dist/Popper.js +219 -0
- package/dist/Popper.js.map +1 -0
- package/dist/Progress.d.ts +79 -0
- package/dist/Progress.d.ts.map +1 -0
- package/dist/Progress.js +110 -0
- package/dist/Progress.js.map +1 -0
- package/dist/Progress.native.d.ts +42 -0
- package/dist/Progress.native.d.ts.map +1 -0
- package/dist/Progress.native.js +91 -0
- package/dist/Progress.native.js.map +1 -0
- package/dist/ProgressCircle.d.ts +69 -0
- package/dist/ProgressCircle.d.ts.map +1 -0
- package/dist/ProgressCircle.js +78 -0
- package/dist/ProgressCircle.js.map +1 -0
- package/dist/RadioCardGroup.d.ts +26 -0
- package/dist/RadioCardGroup.d.ts.map +1 -0
- package/dist/RadioCardGroup.js +26 -0
- package/dist/RadioCardGroup.js.map +1 -0
- package/dist/RadioGroup.d.ts +35 -0
- package/dist/RadioGroup.d.ts.map +1 -0
- package/dist/RadioGroup.js +68 -0
- package/dist/RadioGroup.js.map +1 -0
- package/dist/RadioGroup.native.d.ts +33 -0
- package/dist/RadioGroup.native.d.ts.map +1 -0
- package/dist/RadioGroup.native.js +55 -0
- package/dist/RadioGroup.native.js.map +1 -0
- package/dist/Resizable.d.ts +32 -0
- package/dist/Resizable.d.ts.map +1 -0
- package/dist/Resizable.js +31 -0
- package/dist/Resizable.js.map +1 -0
- package/dist/Resizable.native.d.ts +32 -0
- package/dist/Resizable.native.d.ts.map +1 -0
- package/dist/Resizable.native.js +23 -0
- package/dist/Resizable.native.js.map +1 -0
- package/dist/RichTextEditor.d.ts +38 -0
- package/dist/RichTextEditor.d.ts.map +1 -0
- package/dist/RichTextEditor.js +218 -0
- package/dist/RichTextEditor.js.map +1 -0
- package/dist/ScrollArea.d.ts +4 -0
- package/dist/ScrollArea.d.ts.map +1 -0
- package/dist/ScrollArea.js +26 -0
- package/dist/ScrollArea.js.map +1 -0
- package/dist/ScrollArea.native.d.ts +19 -0
- package/dist/ScrollArea.native.d.ts.map +1 -0
- package/dist/ScrollArea.native.js +19 -0
- package/dist/ScrollArea.native.js.map +1 -0
- package/dist/SearchField.d.ts +43 -0
- package/dist/SearchField.d.ts.map +1 -0
- package/dist/SearchField.js +34 -0
- package/dist/SearchField.js.map +1 -0
- package/dist/SearchField.native.d.ts +31 -0
- package/dist/SearchField.native.d.ts.map +1 -0
- package/dist/SearchField.native.js +30 -0
- package/dist/SearchField.native.js.map +1 -0
- package/dist/SectionHeader.d.ts +58 -0
- package/dist/SectionHeader.d.ts.map +1 -0
- package/dist/SectionHeader.js +95 -0
- package/dist/SectionHeader.js.map +1 -0
- package/dist/SectionHeader.native.d.ts +45 -0
- package/dist/SectionHeader.native.d.ts.map +1 -0
- package/dist/SectionHeader.native.js +92 -0
- package/dist/SectionHeader.native.js.map +1 -0
- package/dist/Select.d.ts +78 -0
- package/dist/Select.d.ts.map +1 -0
- package/dist/Select.js +310 -0
- package/dist/Select.js.map +1 -0
- package/dist/Select.native.d.ts +53 -0
- package/dist/Select.native.d.ts.map +1 -0
- package/dist/Select.native.js +86 -0
- package/dist/Select.native.js.map +1 -0
- package/dist/Separator.d.ts +20 -0
- package/dist/Separator.d.ts.map +1 -0
- package/dist/Separator.js +20 -0
- package/dist/Separator.js.map +1 -0
- package/dist/Separator.native.d.ts +8 -0
- package/dist/Separator.native.d.ts.map +1 -0
- package/dist/Separator.native.js +17 -0
- package/dist/Separator.native.js.map +1 -0
- package/dist/Sheet.d.ts +54 -0
- package/dist/Sheet.d.ts.map +1 -0
- package/dist/Sheet.js +191 -0
- package/dist/Sheet.js.map +1 -0
- package/dist/Sheet.native.d.ts +55 -0
- package/dist/Sheet.native.d.ts.map +1 -0
- package/dist/Sheet.native.js +112 -0
- package/dist/Sheet.native.js.map +1 -0
- package/dist/Sidebar.d.ts +131 -0
- package/dist/Sidebar.d.ts.map +1 -0
- package/dist/Sidebar.js +328 -0
- package/dist/Sidebar.js.map +1 -0
- package/dist/Skeleton.d.ts +14 -0
- package/dist/Skeleton.d.ts.map +1 -0
- package/dist/Skeleton.js +17 -0
- package/dist/Skeleton.js.map +1 -0
- package/dist/Skeleton.native.d.ts +6 -0
- package/dist/Skeleton.native.d.ts.map +1 -0
- package/dist/Skeleton.native.js +26 -0
- package/dist/Skeleton.native.js.map +1 -0
- package/dist/Slider.d.ts +63 -0
- package/dist/Slider.d.ts.map +1 -0
- package/dist/Slider.js +109 -0
- package/dist/Slider.js.map +1 -0
- package/dist/Slider.native.d.ts +38 -0
- package/dist/Slider.native.d.ts.map +1 -0
- package/dist/Slider.native.js +18 -0
- package/dist/Slider.native.js.map +1 -0
- package/dist/SortableList.d.ts +26 -0
- package/dist/SortableList.d.ts.map +1 -0
- package/dist/SortableList.js +44 -0
- package/dist/SortableList.js.map +1 -0
- package/dist/SparkChart.d.ts +34 -0
- package/dist/SparkChart.d.ts.map +1 -0
- package/dist/SparkChart.js +55 -0
- package/dist/SparkChart.js.map +1 -0
- package/dist/StatCard.d.ts +35 -0
- package/dist/StatCard.d.ts.map +1 -0
- package/dist/StatCard.js +37 -0
- package/dist/StatCard.js.map +1 -0
- package/dist/StatCard.native.d.ts +28 -0
- package/dist/StatCard.native.d.ts.map +1 -0
- package/dist/StatCard.native.js +31 -0
- package/dist/StatCard.native.js.map +1 -0
- package/dist/StatusBadge.d.ts +23 -0
- package/dist/StatusBadge.d.ts.map +1 -0
- package/dist/StatusBadge.js +33 -0
- package/dist/StatusBadge.js.map +1 -0
- package/dist/StatusBadge.native.d.ts +21 -0
- package/dist/StatusBadge.native.d.ts.map +1 -0
- package/dist/StatusBadge.native.js +37 -0
- package/dist/StatusBadge.native.js.map +1 -0
- package/dist/Switch.d.ts +31 -0
- package/dist/Switch.d.ts.map +1 -0
- package/dist/Switch.js +46 -0
- package/dist/Switch.js.map +1 -0
- package/dist/Switch.native.d.ts +16 -0
- package/dist/Switch.native.d.ts.map +1 -0
- package/dist/Switch.native.js +41 -0
- package/dist/Switch.native.js.map +1 -0
- package/dist/TabNavigation.d.ts +49 -0
- package/dist/TabNavigation.d.ts.map +1 -0
- package/dist/TabNavigation.js +121 -0
- package/dist/TabNavigation.js.map +1 -0
- package/dist/Table.d.ts +54 -0
- package/dist/Table.d.ts.map +1 -0
- package/dist/Table.js +96 -0
- package/dist/Table.js.map +1 -0
- package/dist/Table.native.d.ts +37 -0
- package/dist/Table.native.d.ts.map +1 -0
- package/dist/Table.native.js +37 -0
- package/dist/Table.native.js.map +1 -0
- package/dist/Tabs.d.ts +45 -0
- package/dist/Tabs.d.ts.map +1 -0
- package/dist/Tabs.js +94 -0
- package/dist/Tabs.js.map +1 -0
- package/dist/Tabs.native.d.ts +47 -0
- package/dist/Tabs.native.d.ts.map +1 -0
- package/dist/Tabs.native.js +57 -0
- package/dist/Tabs.native.js.map +1 -0
- package/dist/Tag.d.ts +24 -0
- package/dist/Tag.d.ts.map +1 -0
- package/dist/Tag.js +41 -0
- package/dist/Tag.js.map +1 -0
- package/dist/Tag.native.d.ts +23 -0
- package/dist/Tag.native.d.ts.map +1 -0
- package/dist/Tag.native.js +55 -0
- package/dist/Tag.native.js.map +1 -0
- package/dist/Text.d.ts +26 -0
- package/dist/Text.d.ts.map +1 -0
- package/dist/Text.js +63 -0
- package/dist/Text.js.map +1 -0
- package/dist/Text.native.d.ts +18 -0
- package/dist/Text.native.d.ts.map +1 -0
- package/dist/Text.native.js +58 -0
- package/dist/Text.native.js.map +1 -0
- package/dist/Textarea.d.ts +23 -0
- package/dist/Textarea.d.ts.map +1 -0
- package/dist/Textarea.js +39 -0
- package/dist/Textarea.js.map +1 -0
- package/dist/Textarea.native.d.ts +16 -0
- package/dist/Textarea.native.d.ts.map +1 -0
- package/dist/Textarea.native.js +30 -0
- package/dist/Textarea.native.js.map +1 -0
- package/dist/TiptapEditor.d.ts +24 -0
- package/dist/TiptapEditor.d.ts.map +1 -0
- package/dist/TiptapEditor.js +84 -0
- package/dist/TiptapEditor.js.map +1 -0
- package/dist/TitleBar.d.ts +31 -0
- package/dist/TitleBar.d.ts.map +1 -0
- package/dist/TitleBar.js +27 -0
- package/dist/TitleBar.js.map +1 -0
- package/dist/TitleBar.native.d.ts +19 -0
- package/dist/TitleBar.native.d.ts.map +1 -0
- package/dist/TitleBar.native.js +16 -0
- package/dist/TitleBar.native.js.map +1 -0
- package/dist/Toast.d.ts +72 -0
- package/dist/Toast.d.ts.map +1 -0
- package/dist/Toast.js +194 -0
- package/dist/Toast.js.map +1 -0
- package/dist/Toast.native.d.ts +65 -0
- package/dist/Toast.native.d.ts.map +1 -0
- package/dist/Toast.native.js +182 -0
- package/dist/Toast.native.js.map +1 -0
- package/dist/Toggle.d.ts +46 -0
- package/dist/Toggle.d.ts.map +1 -0
- package/dist/Toggle.js +70 -0
- package/dist/Toggle.js.map +1 -0
- package/dist/Toggle.native.d.ts +42 -0
- package/dist/Toggle.native.d.ts.map +1 -0
- package/dist/Toggle.native.js +56 -0
- package/dist/Toggle.native.js.map +1 -0
- package/dist/Tooltip.d.ts +32 -0
- package/dist/Tooltip.d.ts.map +1 -0
- package/dist/Tooltip.js +43 -0
- package/dist/Tooltip.js.map +1 -0
- package/dist/Tooltip.native.d.ts +25 -0
- package/dist/Tooltip.native.d.ts.map +1 -0
- package/dist/Tooltip.native.js +25 -0
- package/dist/Tooltip.native.js.map +1 -0
- package/dist/TopBar.d.ts +105 -0
- package/dist/TopBar.d.ts.map +1 -0
- package/dist/TopBar.js +90 -0
- package/dist/TopBar.js.map +1 -0
- package/dist/TopBar.native.d.ts +67 -0
- package/dist/TopBar.native.d.ts.map +1 -0
- package/dist/TopBar.native.js +41 -0
- package/dist/TopBar.native.js.map +1 -0
- package/dist/Tracker.d.ts +44 -0
- package/dist/Tracker.d.ts.map +1 -0
- package/dist/Tracker.js +92 -0
- package/dist/Tracker.js.map +1 -0
- package/dist/TransferList.d.ts +51 -0
- package/dist/TransferList.d.ts.map +1 -0
- package/dist/TransferList.js +107 -0
- package/dist/TransferList.js.map +1 -0
- package/dist/TransferList.native.d.ts +14 -0
- package/dist/TransferList.native.d.ts.map +1 -0
- package/dist/TransferList.native.js +57 -0
- package/dist/TransferList.native.js.map +1 -0
- package/dist/index.d.ts +78 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/cn.d.ts +7 -0
- package/dist/internal/cn.d.ts.map +1 -0
- package/dist/internal/cn.js +30 -0
- package/dist/internal/cn.js.map +1 -0
- package/package.json +499 -0
- package/src/AccessLevelGroup.native.tsx +103 -0
- package/src/AccessLevelGroup.tsx +103 -0
- package/src/Accordion.native.tsx +199 -0
- package/src/Accordion.tsx +279 -0
- package/src/Alert.native.tsx +100 -0
- package/src/Alert.tsx +101 -0
- package/src/AlertDialog.native.tsx +189 -0
- package/src/AlertDialog.tsx +194 -0
- package/src/AspectRatio.native.tsx +28 -0
- package/src/AspectRatio.tsx +35 -0
- package/src/Avatar.native.tsx +142 -0
- package/src/Avatar.tsx +155 -0
- package/src/AvatarGroup.native.tsx +81 -0
- package/src/AvatarGroup.tsx +114 -0
- package/src/Badge.native.tsx +85 -0
- package/src/Badge.tsx +93 -0
- package/src/Banner.native.tsx +77 -0
- package/src/Banner.tsx +95 -0
- package/src/BarList.tsx +102 -0
- package/src/Breadcrumb.native.tsx +238 -0
- package/src/Breadcrumb.tsx +258 -0
- package/src/Button.native.tsx +123 -0
- package/src/Button.tsx +153 -0
- package/src/Calendar.native.tsx +28 -0
- package/src/Calendar.tsx +211 -0
- package/src/Card.native.tsx +82 -0
- package/src/Card.tsx +94 -0
- package/src/Carousel.native.tsx +224 -0
- package/src/Carousel.tsx +292 -0
- package/src/CategoryBar.tsx +85 -0
- package/src/Chart.tsx +467 -0
- package/src/Checkbox.native.tsx +69 -0
- package/src/Checkbox.tsx +108 -0
- package/src/CheckboxGrid.native.tsx +160 -0
- package/src/CheckboxGrid.tsx +262 -0
- package/src/Collapsible.native.tsx +240 -0
- package/src/Collapsible.tsx +241 -0
- package/src/Combobox.native.tsx +171 -0
- package/src/Combobox.tsx +272 -0
- package/src/Command.native.tsx +71 -0
- package/src/Command.tsx +203 -0
- package/src/ContextMenu.native.tsx +313 -0
- package/src/ContextMenu.tsx +238 -0
- package/src/DataTable.native.tsx +70 -0
- package/src/DataTable.tsx +989 -0
- package/src/DatePicker.native.tsx +46 -0
- package/src/DatePicker.tsx +357 -0
- package/src/Dialog.native.tsx +181 -0
- package/src/Dialog.tsx +224 -0
- package/src/Drawer.native.tsx +134 -0
- package/src/Drawer.tsx +119 -0
- package/src/DropdownMenu.native.tsx +258 -0
- package/src/DropdownMenu.tsx +387 -0
- package/src/Dropzone.tsx +95 -0
- package/src/EmptyState.native.tsx +43 -0
- package/src/EmptyState.tsx +52 -0
- package/src/Form.native.tsx +94 -0
- package/src/Form.tsx +1324 -0
- package/src/HoverCard.native.tsx +63 -0
- package/src/HoverCard.tsx +181 -0
- package/src/IconSidebar.native.tsx +94 -0
- package/src/IconSidebar.tsx +448 -0
- package/src/Input.native.tsx +99 -0
- package/src/Input.tsx +132 -0
- package/src/InputOTP.native.tsx +154 -0
- package/src/InputOTP.tsx +119 -0
- package/src/Label.native.tsx +55 -0
- package/src/Label.tsx +60 -0
- package/src/Link.native.tsx +89 -0
- package/src/Link.tsx +85 -0
- package/src/Logo.native.tsx +114 -0
- package/src/Logo.tsx +153 -0
- package/src/MainSidebar.native.tsx +8 -0
- package/src/MainSidebar.tsx +10 -0
- package/src/Menubar.tsx +485 -0
- package/src/NavigationMenu.native.tsx +136 -0
- package/src/NavigationMenu.tsx +180 -0
- package/src/NotificationBadge.native.tsx +80 -0
- package/src/NotificationBadge.tsx +91 -0
- package/src/PageShell.native.tsx +43 -0
- package/src/PageShell.tsx +50 -0
- package/src/Pagination.native.tsx +217 -0
- package/src/Pagination.tsx +250 -0
- package/src/Popover.native.tsx +139 -0
- package/src/Popover.tsx +175 -0
- package/src/Popper.tsx +399 -0
- package/src/Progress.native.tsx +197 -0
- package/src/Progress.tsx +286 -0
- package/src/ProgressCircle.tsx +200 -0
- package/src/RadioCardGroup.tsx +97 -0
- package/src/RadioGroup.native.tsx +153 -0
- package/src/RadioGroup.tsx +201 -0
- package/src/Resizable.native.tsx +76 -0
- package/src/Resizable.tsx +88 -0
- package/src/RichTextEditor.tsx +513 -0
- package/src/ScrollArea.native.tsx +36 -0
- package/src/ScrollArea.tsx +62 -0
- package/src/SearchField.native.tsx +104 -0
- package/src/SearchField.tsx +136 -0
- package/src/SectionHeader.native.tsx +226 -0
- package/src/SectionHeader.tsx +250 -0
- package/src/Select.native.tsx +299 -0
- package/src/Select.tsx +710 -0
- package/src/Separator.native.tsx +38 -0
- package/src/Separator.tsx +43 -0
- package/src/Sheet.native.tsx +233 -0
- package/src/Sheet.tsx +329 -0
- package/src/Sidebar.tsx +956 -0
- package/src/Skeleton.native.tsx +47 -0
- package/src/Skeleton.tsx +29 -0
- package/src/Slider.native.tsx +64 -0
- package/src/Slider.tsx +284 -0
- package/src/SortableList.tsx +158 -0
- package/src/SparkChart.tsx +143 -0
- package/src/StatCard.native.tsx +64 -0
- package/src/StatCard.tsx +75 -0
- package/src/StatusBadge.native.tsx +57 -0
- package/src/StatusBadge.tsx +52 -0
- package/src/Switch.native.tsx +78 -0
- package/src/Switch.tsx +94 -0
- package/src/TabNavigation.tsx +329 -0
- package/src/Table.native.tsx +183 -0
- package/src/Table.tsx +260 -0
- package/src/Tabs.native.tsx +139 -0
- package/src/Tabs.tsx +216 -0
- package/src/Tag.native.tsx +87 -0
- package/src/Tag.tsx +93 -0
- package/src/Text.native.tsx +95 -0
- package/src/Text.tsx +93 -0
- package/src/Textarea.native.tsx +64 -0
- package/src/Textarea.tsx +66 -0
- package/src/TitleBar.native.tsx +46 -0
- package/src/TitleBar.tsx +64 -0
- package/src/Toast.native.tsx +366 -0
- package/src/Toast.tsx +408 -0
- package/src/Toggle.native.tsx +162 -0
- package/src/Toggle.tsx +169 -0
- package/src/Tooltip.native.tsx +62 -0
- package/src/Tooltip.tsx +88 -0
- package/src/TopBar.native.tsx +223 -0
- package/src/TopBar.tsx +436 -0
- package/src/Tracker.tsx +244 -0
- package/src/TransferList.native.tsx +180 -0
- package/src/TransferList.tsx +297 -0
- package/src/globals.d.ts +1 -0
- package/src/index.ts +502 -0
- package/src/internal/cn.ts +31 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
export function HoverCard({ children }) {
|
|
4
|
+
return _jsx(_Fragment, { children: children });
|
|
5
|
+
}
|
|
6
|
+
export function HoverCardTrigger({ children }) {
|
|
7
|
+
return _jsx(_Fragment, { children: children });
|
|
8
|
+
}
|
|
9
|
+
export function HoverCardContent(_props) {
|
|
10
|
+
// HoverCard content is not rendered on native — hover is not available.
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
export function HoverCardPortal({ children }) {
|
|
14
|
+
return _jsx(_Fragment, { children: children });
|
|
15
|
+
}
|
|
16
|
+
export function HoverCardArrow() {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=HoverCard.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HoverCard.native.js","sourceRoot":"","sources":["../src/HoverCard.native.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,IAAI,EAAkB,MAAM,cAAc,CAAC;AAYpD,MAAM,UAAU,SAAS,CAAC,EAAE,QAAQ,EAAkB;IACpD,OAAO,4BAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAOD,MAAM,UAAU,gBAAgB,CAAC,EAAE,QAAQ,EAAyB;IAClE,OAAO,4BAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAgBD,MAAM,UAAU,gBAAgB,CAAC,MAA6B;IAC5D,wEAAwE;IACxE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAE,QAAQ,EAA2B;IACnE,OAAO,4BAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MainSidebar (web variant — React DOM).
|
|
3
|
+
*
|
|
4
|
+
* Figma rail: compact 46 px primary-blue icon strip with an accent selected item.
|
|
5
|
+
* Expansion: controlled/uncontrolled drilldown panel that slides beside the rail.
|
|
6
|
+
*
|
|
7
|
+
* `IconSidebar` remains as a compatibility alias.
|
|
8
|
+
*
|
|
9
|
+
* Wiki: docs/components/IconSidebar.md
|
|
10
|
+
*/
|
|
11
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
12
|
+
export interface MainSidebarItem {
|
|
13
|
+
key: string;
|
|
14
|
+
icon: ReactNode;
|
|
15
|
+
label: string;
|
|
16
|
+
href?: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
badge?: ReactNode;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
children?: MainSidebarItem[];
|
|
21
|
+
panel?: ReactNode;
|
|
22
|
+
}
|
|
23
|
+
export interface MainSidebarProps extends Omit<HTMLAttributes<HTMLElement>, 'onSelect'> {
|
|
24
|
+
items: MainSidebarItem[];
|
|
25
|
+
activeKey?: string;
|
|
26
|
+
expanded?: boolean;
|
|
27
|
+
defaultExpanded?: boolean;
|
|
28
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
29
|
+
onItemSelect?: (key: string, item: MainSidebarItem) => void;
|
|
30
|
+
header?: ReactNode;
|
|
31
|
+
footer?: ReactNode;
|
|
32
|
+
panelHeader?: ReactNode;
|
|
33
|
+
panelFooter?: ReactNode;
|
|
34
|
+
railClassName?: string;
|
|
35
|
+
panelClassName?: string;
|
|
36
|
+
itemClassName?: string;
|
|
37
|
+
activeItemClassName?: string;
|
|
38
|
+
collapsedLabel?: string;
|
|
39
|
+
expandedLabel?: string;
|
|
40
|
+
backLabel?: string;
|
|
41
|
+
showLabelsWhenExpanded?: boolean;
|
|
42
|
+
side?: 'left' | 'right';
|
|
43
|
+
/** Force the bottom mobile navigation pattern for docs, tests, or mobile-only shells. */
|
|
44
|
+
mobile?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export type IconSidebarItem = MainSidebarItem;
|
|
47
|
+
export type IconSidebarProps = MainSidebarProps;
|
|
48
|
+
export declare const MainSidebar: import("react").ForwardRefExoticComponent<MainSidebarProps & import("react").RefAttributes<HTMLElement>>;
|
|
49
|
+
export declare const IconSidebar: import("react").ForwardRefExoticComponent<MainSidebarProps & import("react").RefAttributes<HTMLElement>>;
|
|
50
|
+
//# sourceMappingURL=IconSidebar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconSidebar.d.ts","sourceRoot":"","sources":["../src/IconSidebar.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,OAAO,EAAiC,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG3F,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;IACrF,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC5D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,yFAAyF;IACzF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC;AAC9C,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAgDhD,eAAO,MAAM,WAAW,0GAyVtB,CAAC;AAEH,eAAO,MAAM,WAAW,0GAAc,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* MainSidebar (web variant — React DOM).
|
|
5
|
+
*
|
|
6
|
+
* Figma rail: compact 46 px primary-blue icon strip with an accent selected item.
|
|
7
|
+
* Expansion: controlled/uncontrolled drilldown panel that slides beside the rail.
|
|
8
|
+
*
|
|
9
|
+
* `IconSidebar` remains as a compatibility alias.
|
|
10
|
+
*
|
|
11
|
+
* Wiki: docs/components/IconSidebar.md
|
|
12
|
+
*/
|
|
13
|
+
import { forwardRef, useMemo, useState } from 'react';
|
|
14
|
+
import { cn } from './internal/cn.js';
|
|
15
|
+
function ChevronLeftIcon() {
|
|
16
|
+
return (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", "aria-hidden": true, children: _jsx("path", { d: "m15 18-6-6 6-6", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
17
|
+
}
|
|
18
|
+
function ChevronRightIcon() {
|
|
19
|
+
return (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", "aria-hidden": true, children: _jsx("path", { d: "m9 18 6-6-6-6", strokeLinecap: "round", strokeLinejoin: "round" }) }));
|
|
20
|
+
}
|
|
21
|
+
function MenuIcon() {
|
|
22
|
+
return (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", "aria-hidden": true, children: _jsx("path", { d: "M4 7h16M4 12h16M4 17h16", strokeLinecap: "round" }) }));
|
|
23
|
+
}
|
|
24
|
+
function findItem(items, key) {
|
|
25
|
+
if (!key)
|
|
26
|
+
return undefined;
|
|
27
|
+
for (const item of items) {
|
|
28
|
+
if (item.key === key)
|
|
29
|
+
return item;
|
|
30
|
+
const child = findItem(item.children ?? [], key);
|
|
31
|
+
if (child)
|
|
32
|
+
return child;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
function firstPanelItem(items, activeKey) {
|
|
37
|
+
const active = findItem(items, activeKey);
|
|
38
|
+
if (active?.children?.length || active?.panel)
|
|
39
|
+
return active;
|
|
40
|
+
return items.find((item) => item.children?.length || item.panel) ?? items[0];
|
|
41
|
+
}
|
|
42
|
+
function opensPanel(item) {
|
|
43
|
+
return Boolean(item.children?.length || item.panel);
|
|
44
|
+
}
|
|
45
|
+
export const MainSidebar = forwardRef(function MainSidebar({ className, items, activeKey, expanded, defaultExpanded = false, onExpandedChange, onItemSelect, header, footer, panelHeader, panelFooter, railClassName, panelClassName, itemClassName, activeItemClassName, collapsedLabel = 'Expand main sidebar', expandedLabel = 'Collapse main sidebar', backLabel = 'Back', showLabelsWhenExpanded = true, side = 'left', mobile = false, ...props }, ref) {
|
|
46
|
+
const [internalExpanded, setInternalExpanded] = useState(defaultExpanded);
|
|
47
|
+
const isExpanded = expanded ?? internalExpanded;
|
|
48
|
+
const rootItem = useMemo(() => firstPanelItem(items, activeKey), [activeKey, items]);
|
|
49
|
+
const [pathKeys, setPathKeys] = useState([]);
|
|
50
|
+
const path = useMemo(() => {
|
|
51
|
+
const resolved = pathKeys
|
|
52
|
+
.map((key) => findItem(items, key))
|
|
53
|
+
.filter((item) => Boolean(item));
|
|
54
|
+
return resolved.length ? resolved : rootItem ? [rootItem] : [];
|
|
55
|
+
}, [items, pathKeys, rootItem]);
|
|
56
|
+
const current = path.at(-1);
|
|
57
|
+
const currentItems = current?.children ?? items;
|
|
58
|
+
const isRightSide = side === 'right';
|
|
59
|
+
function setExpanded(next) {
|
|
60
|
+
if (expanded === undefined)
|
|
61
|
+
setInternalExpanded(next);
|
|
62
|
+
if (!next)
|
|
63
|
+
setPathKeys([]);
|
|
64
|
+
onExpandedChange?.(next);
|
|
65
|
+
}
|
|
66
|
+
function selectRailItem(item) {
|
|
67
|
+
if (item.disabled)
|
|
68
|
+
return;
|
|
69
|
+
onItemSelect?.(item.key, item);
|
|
70
|
+
if (opensPanel(item)) {
|
|
71
|
+
setPathKeys([item.key]);
|
|
72
|
+
setExpanded(true);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
setPathKeys([]);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function selectPanelItem(item) {
|
|
79
|
+
if (item.disabled)
|
|
80
|
+
return;
|
|
81
|
+
onItemSelect?.(item.key, item);
|
|
82
|
+
if (opensPanel(item)) {
|
|
83
|
+
setExpanded(true);
|
|
84
|
+
setPathKeys((previous) => previous.at(-1) === item.key ? previous : [...previous, item.key]);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const panel = isExpanded ? (_jsx("div", { className: cn('min-w-0 bg-card text-card-foreground shadow-mi-card', isRightSide ? 'border-l border-border' : 'border-r border-border', 'w-full md:w-72 md:flex-none', isRightSide
|
|
88
|
+
? 'animate-in fade-in slide-in-from-right-2 duration-300'
|
|
89
|
+
: 'animate-in fade-in slide-in-from-left-2 duration-300', panelClassName), children: _jsxs("div", { className: "flex h-full flex-col", children: [_jsx("div", { className: "border-b border-border px-5 py-4", children: panelHeader ?? (_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-sm font-semibold", children: current?.label ?? 'Main Sidebar' }), current?.description ? (_jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: current.description })) : null] }), _jsx("button", { type: "button", "aria-label": expandedLabel, onClick: () => setExpanded(false), className: "grid size-8 shrink-0 place-items-center rounded-md text-muted-foreground transition hover:bg-muted hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: isRightSide ? _jsx(ChevronRightIcon, {}) : _jsx(ChevronLeftIcon, {}) })] })) }), _jsxs("div", { className: "min-h-0 flex-1 overflow-y-auto px-3 py-4", children: [path.length > 1 ? (_jsxs("button", { type: "button", onClick: () => setPathKeys((previous) => previous.slice(0, -1)), className: "mb-3 inline-flex items-center gap-2 rounded-md px-2 py-1.5 text-xs font-medium text-muted-foreground transition hover:bg-muted hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring", children: [_jsx("span", { className: "[&_svg]:size-4", children: _jsx(ChevronLeftIcon, {}) }), backLabel] })) : null, current?.panel ? (_jsx("div", { className: "animate-in fade-in slide-in-from-left-2 duration-200", children: current.panel })) : (_jsx("div", { className: "grid gap-1 animate-in fade-in slide-in-from-right-2 duration-200", children: currentItems.map((item) => {
|
|
90
|
+
const isActive = item.key === activeKey;
|
|
91
|
+
const hasChildren = opensPanel(item);
|
|
92
|
+
return (_jsxs("button", { type: "button", disabled: item.disabled, onClick: () => selectPanelItem(item), className: cn('group flex w-full items-center gap-3 rounded-md px-3 py-2.5 text-left transition', 'focus:outline-none focus-visible:ring-2 focus-visible:ring-ring', item.disabled && 'cursor-not-allowed opacity-40', isActive ? 'bg-accent text-primary-foreground' : 'hover:bg-muted'), children: [_jsx("span", { className: "grid size-8 shrink-0 place-items-center rounded-md bg-muted text-foreground group-hover:bg-background [&_svg]:size-4", children: item.icon }), _jsxs("span", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "block truncate text-sm font-medium", children: item.label }), item.description ? (_jsx("span", { className: cn('mt-0.5 block text-xs', isActive ? 'text-primary-foreground/80' : 'text-muted-foreground'), children: item.description })) : null] }), item.badge ? _jsx("span", { className: "shrink-0", children: item.badge }) : null, hasChildren ? (_jsx("span", { className: "shrink-0 text-muted-foreground [&_svg]:size-4", children: _jsx(ChevronRightIcon, {}) })) : null] }, item.key));
|
|
93
|
+
}) }))] }), showLabelsWhenExpanded ? (_jsxs("div", { className: "border-t border-border px-5 py-4 text-xs text-muted-foreground", children: [currentItems.length, " navigation ", currentItems.length === 1 ? 'item' : 'items'] })) : null, panelFooter ? _jsx("div", { className: "border-t border-border px-5 py-4", children: panelFooter }) : null] }) })) : null;
|
|
94
|
+
return (_jsxs(_Fragment, { children: [_jsxs("nav", { "aria-label": "Main Sidebar", "data-expanded": isExpanded ? 'true' : 'false', "data-mobile": mobile ? 'true' : undefined, className: cn('absolute inset-x-0 bottom-0 z-30', !mobile && 'md:hidden', className), children: [isExpanded ? (_jsx("div", { className: "absolute inset-x-3 bottom-full mb-3 max-h-96 overflow-hidden rounded-lg border border-border bg-card text-card-foreground shadow-mi-popover", children: panel })) : null, _jsxs("div", { className: cn('flex items-stretch border-t border-primary/80 bg-primary text-primary-foreground', railClassName), children: [_jsx("div", { className: "flex min-w-0 flex-1 overflow-x-auto", children: items.map((item) => {
|
|
95
|
+
const isActive = item.key === activeKey;
|
|
96
|
+
const mobileItemClassName = cn('grid min-w-18 flex-1 place-items-center gap-1 px-3 py-2 text-caption transition', 'focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-foreground/70', item.disabled && 'cursor-not-allowed opacity-40', isActive ? 'bg-accent text-primary-foreground' : 'text-primary-foreground/75', itemClassName, isActive && activeItemClassName);
|
|
97
|
+
const mobileItemContent = (_jsxs(_Fragment, { children: [_jsx("span", { className: "[&_svg]:size-5", children: item.icon }), _jsx("span", { className: "max-w-16 truncate", children: item.label })] }));
|
|
98
|
+
if (item.href && !item.disabled && !item.children?.length && !item.panel) {
|
|
99
|
+
return (_jsx("a", { href: item.href, "aria-label": item.label, "aria-current": isActive ? 'page' : undefined, "aria-disabled": item.disabled || undefined, className: mobileItemClassName, children: mobileItemContent }, item.key));
|
|
100
|
+
}
|
|
101
|
+
return (_jsx("button", { type: "button", disabled: item.disabled, "aria-label": item.label, "aria-current": isActive ? 'page' : undefined, "aria-disabled": item.disabled || undefined, onClick: () => selectRailItem(item), className: mobileItemClassName, children: mobileItemContent }, item.key));
|
|
102
|
+
}) }), _jsxs("button", { type: "button", "aria-label": isExpanded ? expandedLabel : collapsedLabel, "aria-expanded": isExpanded, onClick: () => setExpanded(!isExpanded), className: "grid min-w-16 place-items-center gap-1 border-l border-primary-foreground/15 px-3 py-2 text-caption text-primary-foreground/85 transition hover:bg-primary-foreground/10 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-foreground/70", children: [_jsx("span", { className: "[&_svg]:size-5", children: _jsx(MenuIcon, {}) }), "Menu"] })] })] }), _jsxs("aside", { ref: ref, "aria-label": "Main Sidebar", "data-expanded": isExpanded ? 'true' : 'false', "data-side": side, "data-mobile": mobile ? 'false' : undefined, className: cn('h-full flex-shrink-0 overflow-hidden bg-primary text-primary-foreground', mobile ? 'hidden' : 'hidden md:flex', isRightSide && 'flex-row-reverse', 'transition-[width] duration-300 ease-out', isExpanded ? 'w-[20.875rem]' : 'w-11.5', className), ...props, children: [_jsxs("div", { className: cn('flex w-11.5 shrink-0 flex-col items-center gap-9 overflow-hidden bg-primary pb-20', railClassName), children: [header ? _jsx("div", { className: "flex w-full justify-center", children: header }) : null, _jsx("nav", { className: "flex flex-col items-center", "aria-label": "Primary", children: items.map((item) => {
|
|
103
|
+
const isActive = item.key === activeKey;
|
|
104
|
+
const shared = {
|
|
105
|
+
'aria-label': item.label,
|
|
106
|
+
'aria-current': isActive ? 'page' : undefined,
|
|
107
|
+
'aria-disabled': item.disabled || undefined,
|
|
108
|
+
title: item.label,
|
|
109
|
+
className: cn('grid h-11.5 w-11.5 shrink-0 place-items-center transition-colors duration-150', 'focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-foreground/70', item.disabled ? 'cursor-not-allowed opacity-40' : 'cursor-pointer', isActive
|
|
110
|
+
? 'bg-accent text-primary-foreground opacity-100'
|
|
111
|
+
: 'text-primary-foreground opacity-70 hover:opacity-100 focus-visible:opacity-100', itemClassName, isActive && activeItemClassName),
|
|
112
|
+
};
|
|
113
|
+
const content = _jsx("span", { className: "[&_svg]:size-5", children: item.icon });
|
|
114
|
+
if (item.href && !item.disabled && !item.children?.length && !item.panel) {
|
|
115
|
+
return (_jsx("a", { href: item.href, ...shared, children: content }, item.key));
|
|
116
|
+
}
|
|
117
|
+
return (_jsx("button", { type: "button", disabled: item.disabled, onClick: () => selectRailItem(item), ...shared, children: content }, item.key));
|
|
118
|
+
}) }), footer ? _jsx("div", { className: "mt-auto flex w-full justify-center", children: footer }) : null, _jsx("button", { type: "button", "aria-label": isExpanded ? expandedLabel : collapsedLabel, "aria-expanded": isExpanded, onClick: () => setExpanded(!isExpanded), className: "mb-3 grid size-8 place-items-center rounded-md text-primary-foreground/80 transition hover:bg-primary-foreground/10 hover:text-primary-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-foreground/70", children: _jsx(MenuIcon, {}) })] }), panel] })] }));
|
|
119
|
+
});
|
|
120
|
+
export const IconSidebar = MainSidebar;
|
|
121
|
+
//# sourceMappingURL=IconSidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconSidebar.js","sourceRoot":"","sources":["../src/IconSidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MainSidebar (React Native variant).
|
|
3
|
+
*
|
|
4
|
+
* Mobile-first redesign: renders as a horizontal bottom tab bar
|
|
5
|
+
* instead of a vertical rail. Uses a horizontal ScrollView for
|
|
6
|
+
* overflow when items exceed screen width. Active item gets a
|
|
7
|
+
* highlighted background; inactive items are dimmed.
|
|
8
|
+
*
|
|
9
|
+
* `IconSidebar` remains as a compatibility alias.
|
|
10
|
+
*
|
|
11
|
+
* Wiki: docs/components/IconSidebar.md
|
|
12
|
+
*/
|
|
13
|
+
import { type ReactNode } from 'react';
|
|
14
|
+
import { View, type ViewProps } from 'react-native';
|
|
15
|
+
export interface MainSidebarItem {
|
|
16
|
+
key: string;
|
|
17
|
+
icon: ReactNode;
|
|
18
|
+
label: string;
|
|
19
|
+
href?: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
badge?: ReactNode;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
children?: MainSidebarItem[];
|
|
24
|
+
panel?: ReactNode;
|
|
25
|
+
}
|
|
26
|
+
export interface MainSidebarProps extends Omit<ViewProps, 'style' | 'children'> {
|
|
27
|
+
items: MainSidebarItem[];
|
|
28
|
+
activeKey?: string;
|
|
29
|
+
onItemSelect?: (key: string, item: MainSidebarItem) => void;
|
|
30
|
+
header?: ReactNode;
|
|
31
|
+
footer?: ReactNode;
|
|
32
|
+
side?: 'left' | 'right';
|
|
33
|
+
mobile?: boolean;
|
|
34
|
+
className?: string;
|
|
35
|
+
}
|
|
36
|
+
export type IconSidebarItem = MainSidebarItem;
|
|
37
|
+
export type IconSidebarProps = MainSidebarProps;
|
|
38
|
+
export declare const MainSidebar: import("react").ForwardRefExoticComponent<MainSidebarProps & import("react").RefAttributes<View>>;
|
|
39
|
+
export declare const IconSidebar: import("react").ForwardRefExoticComponent<MainSidebarProps & import("react").RefAttributes<View>>;
|
|
40
|
+
//# sourceMappingURL=IconSidebar.native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconSidebar.native.d.ts","sourceRoot":"","sources":["../src/IconSidebar.native.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAA+B,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAGjF,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,UAAU,CAAC;IAC7E,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAC5D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC;AAC9C,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEhD,eAAO,MAAM,WAAW,mGAiDtB,CAAC;AAEH,eAAO,MAAM,WAAW,mGAAc,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* MainSidebar (React Native variant).
|
|
4
|
+
*
|
|
5
|
+
* Mobile-first redesign: renders as a horizontal bottom tab bar
|
|
6
|
+
* instead of a vertical rail. Uses a horizontal ScrollView for
|
|
7
|
+
* overflow when items exceed screen width. Active item gets a
|
|
8
|
+
* highlighted background; inactive items are dimmed.
|
|
9
|
+
*
|
|
10
|
+
* `IconSidebar` remains as a compatibility alias.
|
|
11
|
+
*
|
|
12
|
+
* Wiki: docs/components/IconSidebar.md
|
|
13
|
+
*/
|
|
14
|
+
import { forwardRef } from 'react';
|
|
15
|
+
import { Pressable, ScrollView, Text, View } from 'react-native';
|
|
16
|
+
import { cn } from './internal/cn.js';
|
|
17
|
+
export const MainSidebar = forwardRef(function MainSidebar({ className, items, activeKey, onItemSelect, header, footer, side: _side, mobile: _mobile, ...props }, ref) {
|
|
18
|
+
return (_jsxs(View, { ref: ref, accessibilityRole: "toolbar", accessibilityLabel: "Main navigation", className: cn('flex-row items-center bg-primary border-t border-primary/80', className), ...props, children: [header ? _jsx(View, { className: "px-1", children: header }) : null, _jsx(ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, contentContainerClassName: "flex-row items-center", className: "flex-1", children: items.map((item) => {
|
|
19
|
+
const isActive = item.key === activeKey;
|
|
20
|
+
return (_jsxs(Pressable, { accessibilityRole: "button", accessibilityLabel: item.label, accessibilityState: { selected: isActive, disabled: item.disabled }, disabled: item.disabled, onPress: () => onItemSelect?.(item.key, item), className: cn('items-center justify-center px-4 py-3 min-w-14', isActive ? 'bg-accent' : 'opacity-70', item.disabled && 'opacity-40'), children: [_jsx(View, { className: "h-6 w-6 items-center justify-center", children: item.icon }), _jsx(Text, { className: "text-caption mt-1 text-primary-foreground text-center", numberOfLines: 1, children: item.label })] }, item.key));
|
|
21
|
+
}) }), footer ? _jsx(View, { className: "px-1", children: footer }) : null] }));
|
|
22
|
+
});
|
|
23
|
+
export const IconSidebar = MainSidebar;
|
|
24
|
+
//# sourceMappingURL=IconSidebar.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IconSidebar.native.js","sourceRoot":"","sources":["../src/IconSidebar.native.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAkB,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AA4BtC,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAyB,SAAS,WAAW,CAChF,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EACrG,GAAG;IAEH,OAAO,CACL,MAAC,IAAI,IACH,GAAG,EAAE,GAAG,EACR,iBAAiB,EAAC,SAAS,EAC3B,kBAAkB,EAAC,iBAAiB,EACpC,SAAS,EAAE,EAAE,CAAC,6DAA6D,EAAE,SAAS,CAAC,KACnF,KAAK,aAER,MAAM,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,SAAS,EAAC,MAAM,YAAE,MAAM,GAAQ,CAAC,CAAC,CAAC,IAAI,EACvD,KAAC,UAAU,IACT,UAAU,QACV,8BAA8B,EAAE,KAAK,EACrC,yBAAyB,EAAC,uBAAuB,EACjD,SAAS,EAAC,QAAQ,YAEjB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC;oBACxC,OAAO,CACL,MAAC,SAAS,IAER,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,IAAI,CAAC,KAAK,EAC9B,kBAAkB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EACnE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAC7C,SAAS,EAAE,EAAE,CACX,gDAAgD,EAChD,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,EACrC,IAAI,CAAC,QAAQ,IAAI,YAAY,CAC9B,aAED,KAAC,IAAI,IAAC,SAAS,EAAC,qCAAqC,YAAE,IAAI,CAAC,IAAI,GAAQ,EACxE,KAAC,IAAI,IACH,SAAS,EAAC,uDAAuD,EACjE,aAAa,EAAE,CAAC,YAEf,IAAI,CAAC,KAAK,GACN,KAlBF,IAAI,CAAC,GAAG,CAmBH,CACb,CAAC;gBACJ,CAAC,CAAC,GACS,EACZ,MAAM,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,SAAS,EAAC,MAAM,YAAE,MAAM,GAAQ,CAAC,CAAC,CAAC,IAAI,IAClD,CACR,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC"}
|
package/dist/Input.d.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input (web variant — React DOM).
|
|
3
|
+
*
|
|
4
|
+
* Native variant lives at `Input.native.tsx`; bundlers pick it via the
|
|
5
|
+
* `react-native` export condition in package.json.
|
|
6
|
+
*
|
|
7
|
+
* Universal contract:
|
|
8
|
+
* - Same prop API on both platforms.
|
|
9
|
+
* - Variants & sizes from `inputVariants` (cva).
|
|
10
|
+
* - className accepted and forwarded.
|
|
11
|
+
* - forwardRef to the underlying input element.
|
|
12
|
+
* - WCAG 2.1 AA:
|
|
13
|
+
* - `aria-invalid` driven by `invalid` prop.
|
|
14
|
+
* - `aria-required` driven by `required` prop.
|
|
15
|
+
* - `aria-describedby` accepted by consumer (point at an error
|
|
16
|
+
* message element they render below the input).
|
|
17
|
+
* - Focus-visible ring (uses the same `ring`/`ring-offset` tokens
|
|
18
|
+
* as Button so the system feels consistent).
|
|
19
|
+
* - 48px touch target on `lg` size.
|
|
20
|
+
*
|
|
21
|
+
* Wiki: docs/components/Input.md
|
|
22
|
+
*/
|
|
23
|
+
import { type InputHTMLAttributes, type ReactNode } from 'react';
|
|
24
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
25
|
+
export declare const inputVariants: (props?: ({
|
|
26
|
+
variant?: "default" | "destructive" | null | undefined;
|
|
27
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
28
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
29
|
+
type WrapperVariantProps = VariantProps<typeof inputVariants>;
|
|
30
|
+
export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
|
|
31
|
+
/** Visual + a11y variant. `destructive` mirrors `invalid={true}` and is preferred. */
|
|
32
|
+
variant?: WrapperVariantProps['variant'];
|
|
33
|
+
/** Height + horizontal padding. `lg` gives a 48px touch target. */
|
|
34
|
+
size?: WrapperVariantProps['size'];
|
|
35
|
+
/**
|
|
36
|
+
* Marks the input as invalid (sets `aria-invalid` and applies the
|
|
37
|
+
* destructive variant unless `variant` is set explicitly). Prefer
|
|
38
|
+
* this over manually toggling `variant`.
|
|
39
|
+
*/
|
|
40
|
+
invalid?: boolean;
|
|
41
|
+
/** Wrapper className. To style the input element itself, use `inputClassName`. */
|
|
42
|
+
className?: string;
|
|
43
|
+
/** Forwarded to the underlying `<input>` for inner-only styling. */
|
|
44
|
+
inputClassName?: string;
|
|
45
|
+
/** Optional icon rendered before the input (e.g., search glyph). */
|
|
46
|
+
leadingIcon?: ReactNode;
|
|
47
|
+
/** Optional icon/element rendered after the input (e.g., clear button). */
|
|
48
|
+
trailingIcon?: ReactNode;
|
|
49
|
+
}
|
|
50
|
+
export declare const Input: import("react").ForwardRefExoticComponent<InputProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=Input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../src/Input.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAc,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,eAAO,MAAM,aAAa;;;8EAyBzB,CAAC;AAEF,KAAK,mBAAmB,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAE9D,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC3D,sFAAsF;IACtF,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACzC,mEAAmE;IACnE,IAAI,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAED,eAAO,MAAM,KAAK,yGAoDhB,CAAC"}
|
package/dist/Input.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Input (web variant — React DOM).
|
|
5
|
+
*
|
|
6
|
+
* Native variant lives at `Input.native.tsx`; bundlers pick it via the
|
|
7
|
+
* `react-native` export condition in package.json.
|
|
8
|
+
*
|
|
9
|
+
* Universal contract:
|
|
10
|
+
* - Same prop API on both platforms.
|
|
11
|
+
* - Variants & sizes from `inputVariants` (cva).
|
|
12
|
+
* - className accepted and forwarded.
|
|
13
|
+
* - forwardRef to the underlying input element.
|
|
14
|
+
* - WCAG 2.1 AA:
|
|
15
|
+
* - `aria-invalid` driven by `invalid` prop.
|
|
16
|
+
* - `aria-required` driven by `required` prop.
|
|
17
|
+
* - `aria-describedby` accepted by consumer (point at an error
|
|
18
|
+
* message element they render below the input).
|
|
19
|
+
* - Focus-visible ring (uses the same `ring`/`ring-offset` tokens
|
|
20
|
+
* as Button so the system feels consistent).
|
|
21
|
+
* - 48px touch target on `lg` size.
|
|
22
|
+
*
|
|
23
|
+
* Wiki: docs/components/Input.md
|
|
24
|
+
*/
|
|
25
|
+
import { forwardRef } from 'react';
|
|
26
|
+
import { cva } from 'class-variance-authority';
|
|
27
|
+
import { cn } from './internal/cn.js';
|
|
28
|
+
export const inputVariants = cva('flex w-full items-center gap-2 rounded-lg border bg-card text-foreground shadow-mi-input ' +
|
|
29
|
+
'transition-colors duration-150 ' +
|
|
30
|
+
'focus-within:outline-none focus-within:border-primary ' +
|
|
31
|
+
'has-[input:disabled]:opacity-50 has-[input:disabled]:cursor-not-allowed', {
|
|
32
|
+
variants: {
|
|
33
|
+
variant: {
|
|
34
|
+
default: 'border-border placeholder:text-muted-foreground',
|
|
35
|
+
destructive: 'border-destructive text-destructive placeholder:text-destructive/70 ' +
|
|
36
|
+
'focus-within:border-destructive',
|
|
37
|
+
},
|
|
38
|
+
size: {
|
|
39
|
+
sm: 'h-9 px-3 text-body-sm',
|
|
40
|
+
md: 'h-10 px-3.5 text-body-sm',
|
|
41
|
+
lg: 'h-12 px-4 text-body-sm',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
defaultVariants: {
|
|
45
|
+
variant: 'default',
|
|
46
|
+
size: 'md',
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
export const Input = forwardRef(function Input({ className, inputClassName, variant, size, invalid, leadingIcon, trailingIcon, type = 'text', required, disabled, 'aria-invalid': ariaInvalidProp, ...props }, ref) {
|
|
50
|
+
// Single source of truth: `invalid` drives both styling and ARIA.
|
|
51
|
+
const isInvalid = ariaInvalidProp ?? invalid;
|
|
52
|
+
const resolvedVariant = variant ?? (isInvalid ? 'destructive' : 'default');
|
|
53
|
+
return (_jsxs("span", { className: cn(inputVariants({ variant: resolvedVariant, size }), className), children: [leadingIcon ? (_jsx("span", { "aria-hidden": true, className: "text-muted-foreground shrink-0", children: leadingIcon })) : null, _jsx("input", { ref: ref, type: type, required: required, disabled: disabled, "aria-invalid": isInvalid || undefined, "aria-required": required || undefined, className: cn('min-w-0 flex-1 bg-transparent outline-none ' +
|
|
54
|
+
'disabled:cursor-not-allowed ' +
|
|
55
|
+
'placeholder:text-inherit/70', inputClassName), ...props }), trailingIcon ? (_jsx("span", { "aria-hidden": true, className: "text-muted-foreground shrink-0", children: trailingIcon })) : null] }));
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=Input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../src/Input.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,UAAU,EAA4C,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAC9B,2FAA2F;IACzF,iCAAiC;IACjC,wDAAwD;IACxD,yEAAyE,EAC3E;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,iDAAiD;YACnD,WAAW,EACT,sEAAsE;gBACpE,iCAAiC;SACtC;QACD,IAAI,EAAE;YACJ,EAAE,EAAE,uBAAuB;YAC3B,EAAE,EAAE,0BAA0B;YAC9B,EAAE,EAAE,wBAAwB;SAC7B;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,IAAI;KACX;CACF,CACF,CAAC;AA0BF,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAA+B,SAAS,KAAK,CAC1E,EACE,SAAS,EACT,cAAc,EACd,OAAO,EACP,IAAI,EACJ,OAAO,EACP,WAAW,EACX,YAAY,EACZ,IAAI,GAAG,MAAM,EACb,QAAQ,EACR,QAAQ,EACR,cAAc,EAAE,eAAe,EAC/B,GAAG,KAAK,EACT,EACD,GAAG;IAEH,kEAAkE;IAClE,MAAM,SAAS,GAAG,eAAe,IAAI,OAAO,CAAC;IAC7C,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE3E,OAAO,CACL,gBACE,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,aAE1E,WAAW,CAAC,CAAC,CAAC,CACb,oCAAkB,SAAS,EAAC,gCAAgC,YACzD,WAAW,GACP,CACR,CAAC,CAAC,CAAC,IAAI,EACR,gBACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,kBACJ,SAAS,IAAI,SAAS,mBACrB,QAAQ,IAAI,SAAS,EACpC,SAAS,EAAE,EAAE,CACX,6CAA6C;oBAC3C,8BAA8B;oBAC9B,6BAA6B,EAC/B,cAAc,CACf,KACG,KAAK,GACT,EACD,YAAY,CAAC,CAAC,CAAC,CACd,oCAAkB,SAAS,EAAC,gCAAgC,YACzD,YAAY,GACR,CACR,CAAC,CAAC,CAAC,IAAI,IACH,CACR,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Input (React Native variant).
|
|
3
|
+
*
|
|
4
|
+
* Selected by the `react-native` export condition in package.json.
|
|
5
|
+
* Same prop API as the web variant.
|
|
6
|
+
*
|
|
7
|
+
* Wiki: docs/components/Input.md
|
|
8
|
+
*/
|
|
9
|
+
import { type ReactNode } from 'react';
|
|
10
|
+
import { TextInput, type TextInputProps } from 'react-native';
|
|
11
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
12
|
+
export declare const inputVariants: (props?: ({
|
|
13
|
+
variant?: "default" | "destructive" | null | undefined;
|
|
14
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
15
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
16
|
+
type WrapperVariantProps = VariantProps<typeof inputVariants>;
|
|
17
|
+
export interface InputProps extends Omit<TextInputProps, 'style'> {
|
|
18
|
+
/** Visual + a11y variant. `destructive` mirrors `invalid={true}`. */
|
|
19
|
+
variant?: WrapperVariantProps['variant'];
|
|
20
|
+
/** Height + horizontal padding. `lg` gives a 48px touch target. */
|
|
21
|
+
size?: WrapperVariantProps['size'];
|
|
22
|
+
/** Marks the input as invalid (drives destructive style; pair with visible error text). */
|
|
23
|
+
invalid?: boolean;
|
|
24
|
+
/** Wrapper className. */
|
|
25
|
+
className?: string;
|
|
26
|
+
/** Forwarded to the underlying `<TextInput>`. */
|
|
27
|
+
inputClassName?: string;
|
|
28
|
+
/** Optional icon rendered before the input. */
|
|
29
|
+
leadingIcon?: ReactNode;
|
|
30
|
+
/** Optional icon/element rendered after the input. */
|
|
31
|
+
trailingIcon?: ReactNode;
|
|
32
|
+
/** Forwarded as the input's accessibilityLabel for screen readers. */
|
|
33
|
+
accessibilityLabel?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare const Input: import("react").ForwardRefExoticComponent<InputProps & import("react").RefAttributes<TextInput>>;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=Input.native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.native.d.ts","sourceRoot":"","sources":["../src/Input.native.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,SAAS,EAAQ,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,eAAO,MAAM,aAAa;;;8EAmBzB,CAAC;AAEF,KAAK,mBAAmB,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAE9D,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IACrC,qEAAqE;IACrE,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACzC,mEAAmE;IACnE,IAAI,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnC,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,sDAAsD;IACtD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,KAAK,kGA0ChB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Input (React Native variant).
|
|
4
|
+
*
|
|
5
|
+
* Selected by the `react-native` export condition in package.json.
|
|
6
|
+
* Same prop API as the web variant.
|
|
7
|
+
*
|
|
8
|
+
* Wiki: docs/components/Input.md
|
|
9
|
+
*/
|
|
10
|
+
import { forwardRef } from 'react';
|
|
11
|
+
import { TextInput, View } from 'react-native';
|
|
12
|
+
import { cva } from 'class-variance-authority';
|
|
13
|
+
import { cn } from './internal/cn.js';
|
|
14
|
+
export const inputVariants = cva('flex-row items-center rounded-lg border bg-card shadow-mi-input', {
|
|
15
|
+
variants: {
|
|
16
|
+
variant: {
|
|
17
|
+
default: 'border-border',
|
|
18
|
+
destructive: 'border-destructive',
|
|
19
|
+
},
|
|
20
|
+
size: {
|
|
21
|
+
sm: 'h-9 px-3',
|
|
22
|
+
md: 'h-10 px-3.5',
|
|
23
|
+
lg: 'h-12 px-4',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
defaultVariants: {
|
|
27
|
+
variant: 'default',
|
|
28
|
+
size: 'md',
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
export const Input = forwardRef(function Input({ className, inputClassName, variant, size, invalid, leadingIcon, trailingIcon, editable, accessibilityLabel, accessibilityState, ...props }, ref) {
|
|
32
|
+
const isDisabled = editable === false;
|
|
33
|
+
const resolvedVariant = variant ?? (invalid ? 'destructive' : 'default');
|
|
34
|
+
return (_jsxs(View, { className: cn(inputVariants({ variant: resolvedVariant, size }), isDisabled && 'opacity-50', className), children: [leadingIcon ? _jsx(View, { accessibilityElementsHidden: true, children: leadingIcon }) : null, _jsx(TextInput, { ref: ref, editable: editable, accessibilityLabel: accessibilityLabel, accessibilityState: {
|
|
35
|
+
disabled: !!isDisabled,
|
|
36
|
+
...accessibilityState,
|
|
37
|
+
}, className: cn('flex-1 text-foreground', inputClassName), ...props }), trailingIcon ? _jsx(View, { accessibilityElementsHidden: true, children: trailingIcon }) : null] }));
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=Input.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.native.js","sourceRoot":"","sources":["../src/Input.native.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAuB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAC9B,iEAAiE,EACjE;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,oBAAoB;SAClC;QACD,IAAI,EAAE;YACJ,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,aAAa;YACjB,EAAE,EAAE,WAAW;SAChB;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,IAAI;KACX;CACF,CACF,CAAC;AAwBF,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAAwB,SAAS,KAAK,CACnE,EACE,SAAS,EACT,cAAc,EACd,OAAO,EACP,IAAI,EACJ,OAAO,EACP,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,GAAG,KAAK,EACT,EACD,GAAG;IAEH,MAAM,UAAU,GAAG,QAAQ,KAAK,KAAK,CAAC;IACtC,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEzE,OAAO,CACL,MAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,aAAa,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,EACjD,UAAU,IAAI,YAAY,EAC1B,SAAS,CACV,aAEA,WAAW,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,2BAA2B,kBAAE,WAAW,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC5E,KAAC,SAAS,IACR,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,EAAE;oBAClB,QAAQ,EAAE,CAAC,CAAC,UAAU;oBACtB,GAAG,kBAAkB;iBACtB,EACD,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,cAAc,CAAC,KACnD,KAAK,GACT,EACD,YAAY,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,2BAA2B,kBAAE,YAAY,GAAQ,CAAC,CAAC,CAAC,IAAI,IACzE,CACR,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* InputOTP (web variant — React DOM).
|
|
3
|
+
*
|
|
4
|
+
* One-time password / verification code input powered by `input-otp`.
|
|
5
|
+
*
|
|
6
|
+
* <InputOTP maxLength={6} value={value} onChange={setValue}>
|
|
7
|
+
* <InputOTPGroup>
|
|
8
|
+
* <InputOTPSlot index={0} />
|
|
9
|
+
* <InputOTPSlot index={1} />
|
|
10
|
+
* <InputOTPSlot index={2} />
|
|
11
|
+
* </InputOTPGroup>
|
|
12
|
+
* <InputOTPSeparator />
|
|
13
|
+
* <InputOTPGroup>
|
|
14
|
+
* <InputOTPSlot index={3} />
|
|
15
|
+
* <InputOTPSlot index={4} />
|
|
16
|
+
* <InputOTPSlot index={5} />
|
|
17
|
+
* </InputOTPGroup>
|
|
18
|
+
* </InputOTP>
|
|
19
|
+
*
|
|
20
|
+
* Wiki: docs/components/InputOTP.md
|
|
21
|
+
*/
|
|
22
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
23
|
+
export declare const InputOTP: import("react").ForwardRefExoticComponent<ComponentPropsWithoutRef<import("react").ForwardRefExoticComponent<import("input-otp").OTPInputProps & import("react").RefAttributes<HTMLInputElement>>> & import("react").RefAttributes<HTMLInputElement>>;
|
|
24
|
+
export declare const InputOTPGroup: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
25
|
+
export interface InputOTPSlotProps extends ComponentPropsWithoutRef<'div'> {
|
|
26
|
+
index: number;
|
|
27
|
+
}
|
|
28
|
+
export declare const InputOTPSlot: import("react").ForwardRefExoticComponent<InputOTPSlotProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
29
|
+
export declare const InputOTPSeparator: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
30
|
+
//# sourceMappingURL=InputOTP.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputOTP.d.ts","sourceRoot":"","sources":["../src/InputOTP.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAGL,KAAK,wBAAwB,EAE9B,MAAM,OAAO,CAAC;AAMf,eAAO,MAAM,QAAQ,uPAenB,CAAC;AAIH,eAAO,MAAM,aAAa,2MAWxB,CAAC;AAIH,MAAM,WAAW,iBAAkB,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IACxE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY,8GA+BxB,CAAC;AAIF,eAAO,MAAM,iBAAiB,2MAW5B,CAAC"}
|
package/dist/InputOTP.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* InputOTP (web variant — React DOM).
|
|
5
|
+
*
|
|
6
|
+
* One-time password / verification code input powered by `input-otp`.
|
|
7
|
+
*
|
|
8
|
+
* <InputOTP maxLength={6} value={value} onChange={setValue}>
|
|
9
|
+
* <InputOTPGroup>
|
|
10
|
+
* <InputOTPSlot index={0} />
|
|
11
|
+
* <InputOTPSlot index={1} />
|
|
12
|
+
* <InputOTPSlot index={2} />
|
|
13
|
+
* </InputOTPGroup>
|
|
14
|
+
* <InputOTPSeparator />
|
|
15
|
+
* <InputOTPGroup>
|
|
16
|
+
* <InputOTPSlot index={3} />
|
|
17
|
+
* <InputOTPSlot index={4} />
|
|
18
|
+
* <InputOTPSlot index={5} />
|
|
19
|
+
* </InputOTPGroup>
|
|
20
|
+
* </InputOTP>
|
|
21
|
+
*
|
|
22
|
+
* Wiki: docs/components/InputOTP.md
|
|
23
|
+
*/
|
|
24
|
+
import { forwardRef, useContext, } from 'react';
|
|
25
|
+
import { OTPInput, OTPInputContext } from 'input-otp';
|
|
26
|
+
import { cn } from './internal/cn.js';
|
|
27
|
+
/* ── Root ──────────────────────────────────────────────────────────── */
|
|
28
|
+
export const InputOTP = forwardRef(function InputOTP({ className, containerClassName, ...props }, ref) {
|
|
29
|
+
return (_jsx(OTPInput, { ref: ref, containerClassName: cn('flex items-center gap-2 has-[:disabled]:opacity-50', containerClassName), className: cn('disabled:cursor-not-allowed', className), ...props }));
|
|
30
|
+
});
|
|
31
|
+
/* ── Group ─────────────────────────────────────────────────────────── */
|
|
32
|
+
export const InputOTPGroup = forwardRef(function InputOTPGroup({ className, ...props }, ref) {
|
|
33
|
+
return (_jsx("div", { ref: ref, className: cn('flex items-center', className), ...props }));
|
|
34
|
+
});
|
|
35
|
+
export const InputOTPSlot = forwardRef(function InputOTPSlot({ index, className, ...props }, ref) {
|
|
36
|
+
const inputOTPContext = useContext(OTPInputContext);
|
|
37
|
+
const slot = inputOTPContext.slots[index];
|
|
38
|
+
if (!slot)
|
|
39
|
+
return null;
|
|
40
|
+
const { char, hasFakeCaret, isActive } = slot;
|
|
41
|
+
return (_jsxs("div", { ref: ref, className: cn('relative flex h-10 w-10 items-center justify-center', 'border-y border-r border-border text-body-sm', 'transition-all duration-150', 'first:rounded-l-lg first:border-l last:rounded-r-lg', isActive && 'z-10 ring-2 ring-ring ring-offset-background', className), ...props, children: [char, hasFakeCaret && (_jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: _jsx("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) }))] }));
|
|
42
|
+
});
|
|
43
|
+
/* ── Separator ────────────────────────────────────────────────────── */
|
|
44
|
+
export const InputOTPSeparator = forwardRef(function InputOTPSeparator({ ...props }, ref) {
|
|
45
|
+
return (_jsx("div", { ref: ref, role: "separator", ...props, children: _jsx("svg", { "aria-hidden": "true", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: 2, className: "h-4 w-4 text-muted-foreground", children: _jsx("path", { strokeLinecap: "round", d: "M5 8h6" }) }) }));
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=InputOTP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputOTP.js","sourceRoot":"","sources":["../src/InputOTP.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EACL,UAAU,EACV,UAAU,GAGX,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,0EAA0E;AAE1E,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAGhC,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IAClE,OAAO,CACL,KAAC,QAAQ,IACP,GAAG,EAAE,GAAG,EACR,kBAAkB,EAAE,EAAE,CACpB,oDAAoD,EACpD,kBAAkB,CACnB,EACD,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,KACnD,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,0EAA0E;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAGrC,SAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IACnD,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,KACzC,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CACpC,SAAS,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IACvD,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAE9C,OAAO,CACL,eACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,qDAAqD,EACrD,8CAA8C,EAC9C,6BAA6B,EAC7B,qDAAqD,EACrD,QAAQ,IAAI,8CAA8C,EAC1D,SAAS,CACV,KACG,KAAK,aAER,IAAI,EACJ,YAAY,IAAI,CACf,cAAK,SAAS,EAAC,uEAAuE,YACpF,cAAK,SAAS,EAAC,0DAA0D,GAAG,GACxE,CACP,IACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,yEAAyE;AAEzE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAGzC,SAAS,iBAAiB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IAC5C,OAAO,CACL,cAAK,GAAG,EAAE,GAAG,EAAE,IAAI,EAAC,WAAW,KAAK,KAAK,YACvC,6BAAiB,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,+BAA+B,YACrI,eAAM,aAAa,EAAC,OAAO,EAAC,CAAC,EAAC,QAAQ,GAAG,GACrC,GACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
|