@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
package/dist/Combobox.js
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Combobox (web variant — React DOM).
|
|
5
|
+
*
|
|
6
|
+
* An autocomplete/search input that combines a text field with a
|
|
7
|
+
* filterable dropdown list. Built on Popover + Command (cmdk).
|
|
8
|
+
*
|
|
9
|
+
* <Combobox
|
|
10
|
+
* options={[
|
|
11
|
+
* { value: 'react', label: 'React' },
|
|
12
|
+
* { value: 'vue', label: 'Vue' },
|
|
13
|
+
* ]}
|
|
14
|
+
* value={value}
|
|
15
|
+
* onValueChange={setValue}
|
|
16
|
+
* placeholder="Select framework…"
|
|
17
|
+
* />
|
|
18
|
+
*
|
|
19
|
+
* Wiki: docs/components/Combobox.md
|
|
20
|
+
*/
|
|
21
|
+
import { forwardRef, useState, useCallback, useId, useRef } from 'react';
|
|
22
|
+
import { cn } from './internal/cn.js';
|
|
23
|
+
/* ── Component ────────────────────────────────────────────────────── */
|
|
24
|
+
export const Combobox = forwardRef(function Combobox({ options, value, onValueChange, placeholder = 'Select…', searchPlaceholder = 'Search…', emptyText = 'No results found.', disabled, className, 'aria-label': ariaLabel, ...props }, ref) {
|
|
25
|
+
const [open, setOpen] = useState(false);
|
|
26
|
+
const [query, setQuery] = useState('');
|
|
27
|
+
const [activeIndex, setActiveIndex] = useState(-1);
|
|
28
|
+
const listboxId = useId();
|
|
29
|
+
const triggerRef = useRef(null);
|
|
30
|
+
const selectedLabel = options.find((o) => o.value === value)?.label;
|
|
31
|
+
const filtered = query
|
|
32
|
+
? options.filter((o) => o.label.toLowerCase().includes(query.toLowerCase()))
|
|
33
|
+
: options;
|
|
34
|
+
const enabledFiltered = filtered.filter((o) => !o.disabled);
|
|
35
|
+
const handleSelect = useCallback((optionValue) => {
|
|
36
|
+
onValueChange?.(optionValue === value ? '' : optionValue);
|
|
37
|
+
setOpen(false);
|
|
38
|
+
setQuery('');
|
|
39
|
+
setActiveIndex(-1);
|
|
40
|
+
// Restore focus to trigger
|
|
41
|
+
triggerRef.current?.focus();
|
|
42
|
+
}, [onValueChange, value]);
|
|
43
|
+
const handleKeyDown = useCallback((e) => {
|
|
44
|
+
if (e.key === 'Escape') {
|
|
45
|
+
setOpen(false);
|
|
46
|
+
setActiveIndex(-1);
|
|
47
|
+
triggerRef.current?.focus();
|
|
48
|
+
}
|
|
49
|
+
else if (e.key === 'ArrowDown') {
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
if (!open) {
|
|
52
|
+
setOpen(true);
|
|
53
|
+
setActiveIndex(0);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
setActiveIndex((prev) => {
|
|
57
|
+
const next = prev + 1;
|
|
58
|
+
return next >= enabledFiltered.length ? 0 : next;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else if (e.key === 'ArrowUp') {
|
|
63
|
+
e.preventDefault();
|
|
64
|
+
if (open) {
|
|
65
|
+
setActiveIndex((prev) => {
|
|
66
|
+
const next = prev - 1;
|
|
67
|
+
return next < 0 ? enabledFiltered.length - 1 : next;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else if (e.key === 'Enter' && open && activeIndex >= 0) {
|
|
72
|
+
e.preventDefault();
|
|
73
|
+
const option = enabledFiltered[activeIndex];
|
|
74
|
+
if (option)
|
|
75
|
+
handleSelect(option.value);
|
|
76
|
+
}
|
|
77
|
+
else if (e.key === 'Home' && open) {
|
|
78
|
+
e.preventDefault();
|
|
79
|
+
setActiveIndex(0);
|
|
80
|
+
}
|
|
81
|
+
else if (e.key === 'End' && open) {
|
|
82
|
+
e.preventDefault();
|
|
83
|
+
setActiveIndex(enabledFiltered.length - 1);
|
|
84
|
+
}
|
|
85
|
+
}, [open, activeIndex, enabledFiltered, handleSelect]);
|
|
86
|
+
return (_jsxs("div", { ref: ref, className: cn('relative', className), ...props, children: [_jsxs("button", { ref: triggerRef, type: "button", role: "combobox", "aria-expanded": open, "aria-haspopup": "listbox", "aria-label": ariaLabel, "aria-controls": open ? listboxId : undefined, "aria-activedescendant": open && activeIndex >= 0
|
|
87
|
+
? `${listboxId}-option-${enabledFiltered[activeIndex]?.value}`
|
|
88
|
+
: undefined, disabled: disabled, onClick: () => setOpen(!open), onKeyDown: handleKeyDown, className: cn('flex h-10 w-full items-center justify-between rounded-lg border border-border bg-card px-3.5 py-2 text-body-sm shadow-mi-input', 'ring-offset-background', 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2', 'disabled:cursor-not-allowed disabled:opacity-50', !selectedLabel && 'text-muted-foreground'), children: [_jsx("span", { className: "truncate", children: selectedLabel ?? placeholder }), _jsx("svg", { viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: 2, className: "ml-2 h-4 w-4 shrink-0 opacity-50", "aria-hidden": "true", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M4 6l4 4 4-4" }) })] }), open && (_jsxs("div", { className: cn('absolute left-0 top-full z-50 mt-1 w-full overflow-hidden rounded-lg', 'border border-border bg-card shadow-mi-input', 'animate-dropdown-in'), children: [_jsxs("div", { className: "flex items-center border-b border-border px-3", children: [_jsxs("svg", { viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: 2, className: "mr-2 h-4 w-4 shrink-0 opacity-50", "aria-hidden": "true", children: [_jsx("circle", { cx: "7", cy: "7", r: "4.5" }), _jsx("path", { strokeLinecap: "round", d: "M10.5 10.5L14 14" })] }), _jsx("input", { type: "text", role: "searchbox", "aria-autocomplete": "list", "aria-controls": listboxId, placeholder: searchPlaceholder, value: query, onChange: (e) => {
|
|
89
|
+
setQuery(e.target.value);
|
|
90
|
+
setActiveIndex(-1);
|
|
91
|
+
}, onKeyDown: handleKeyDown, className: cn('flex h-9 w-full bg-transparent py-2 text-body-sm outline-none', 'placeholder:text-muted-foreground'), autoFocus: true })] }), _jsx("div", { className: "max-h-60 overflow-y-auto p-1", role: "listbox", id: listboxId, children: filtered.length === 0 ? (_jsx("div", { className: "px-2 py-6 text-center text-sm text-muted-foreground", children: emptyText })) : (filtered.map((option) => {
|
|
92
|
+
const isActive = !option.disabled && enabledFiltered[activeIndex]?.value === option.value;
|
|
93
|
+
return (_jsxs("button", { id: `${listboxId}-option-${option.value}`, type: "button", role: "option", "aria-selected": value === option.value, disabled: option.disabled, onClick: () => handleSelect(option.value), className: cn('relative flex w-full cursor-pointer select-none items-center rounded-md px-2 py-1.5 text-body-sm outline-none', 'transition-colors duration-150', 'hover:bg-muted focus:bg-muted', 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50', option.disabled && 'pointer-events-none opacity-50', isActive && 'bg-muted'), children: [_jsx("svg", { viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: 2.5, "aria-hidden": "true", className: cn('mr-2 h-4 w-4', value === option.value ? 'opacity-100' : 'opacity-0'), children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M3.5 8.5L6.5 11.5L12.5 5.5" }) }), option.label] }, option.value));
|
|
94
|
+
})) })] })), open && (_jsx("div", { className: "fixed inset-0 z-40", onClick: () => setOpen(false), role: "presentation" }))] }));
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=Combobox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../src/Combobox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { View, type ViewProps } from 'react-native';
|
|
2
|
+
type ClassedViewProps = Omit<ViewProps, 'style'> & {
|
|
3
|
+
className?: string;
|
|
4
|
+
};
|
|
5
|
+
export interface ComboboxOption {
|
|
6
|
+
value: string;
|
|
7
|
+
label: string;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface ComboboxProps extends ClassedViewProps {
|
|
11
|
+
options: ComboboxOption[];
|
|
12
|
+
value?: string;
|
|
13
|
+
onValueChange?: (value: string) => void;
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
searchPlaceholder?: string;
|
|
16
|
+
emptyText?: string;
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare const Combobox: import("react").ForwardRefExoticComponent<ComboboxProps & import("react").RefAttributes<View>>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=Combobox.native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Combobox.native.d.ts","sourceRoot":"","sources":["../src/Combobox.native.tsx"],"names":[],"mappings":"AASA,OAAO,EAML,IAAI,EACJ,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAGtB,KAAK,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAI1E,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID,eAAO,MAAM,QAAQ,gGAgIpB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Combobox (React Native variant).
|
|
4
|
+
*
|
|
5
|
+
* An autocomplete/search input using Modal + FlatList.
|
|
6
|
+
* Same prop API as the web variant.
|
|
7
|
+
*
|
|
8
|
+
* Wiki: docs/components/Combobox.md
|
|
9
|
+
*/
|
|
10
|
+
import { forwardRef, useState, useCallback } from 'react';
|
|
11
|
+
import { FlatList, Modal, Pressable, Text, TextInput, View, } from 'react-native';
|
|
12
|
+
import { cn } from './internal/cn.js';
|
|
13
|
+
/* ── Component ────────────────────────────────────────────────────── */
|
|
14
|
+
export const Combobox = forwardRef(function Combobox({ options, value, onValueChange, placeholder = 'Select…', searchPlaceholder = 'Search…', emptyText = 'No results found.', disabled, className, ...props }, ref) {
|
|
15
|
+
const [open, setOpen] = useState(false);
|
|
16
|
+
const [query, setQuery] = useState('');
|
|
17
|
+
const selectedLabel = options.find((o) => o.value === value)?.label;
|
|
18
|
+
const filtered = query
|
|
19
|
+
? options.filter((o) => o.label.toLowerCase().includes(query.toLowerCase()))
|
|
20
|
+
: options;
|
|
21
|
+
const handleSelect = useCallback((optionValue) => {
|
|
22
|
+
onValueChange?.(optionValue === value ? '' : optionValue);
|
|
23
|
+
setOpen(false);
|
|
24
|
+
setQuery('');
|
|
25
|
+
}, [onValueChange, value]);
|
|
26
|
+
return (_jsxs(View, { ref: ref, className: cn(className), ...props, children: [_jsxs(Pressable, { disabled: disabled, onPress: () => setOpen(true), accessibilityRole: "combobox", accessibilityState: { expanded: open, disabled: !!disabled }, className: cn('h-12 flex-row items-center justify-between rounded-lg border border-border bg-card px-3', disabled && 'opacity-50'), children: [_jsx(Text, { className: cn('flex-1 text-sm', selectedLabel ? 'text-foreground' : 'text-muted-foreground'), numberOfLines: 1, children: selectedLabel ?? placeholder }), _jsx(Text, { className: "text-xs text-muted-foreground", children: "\u25BE" })] }), _jsx(Modal, { visible: open, transparent: true, animationType: "fade", onRequestClose: () => setOpen(false), statusBarTranslucent: true, children: _jsx(Pressable, { onPress: () => setOpen(false), className: "flex-1 items-center justify-center bg-black/40", accessibilityRole: "none", children: _jsx(Pressable, { onPress: (e) => e.stopPropagation(), children: _jsxs(View, { className: "w-80 max-h-96 rounded-xl border border-border bg-card shadow-lg", children: [_jsx(View, { className: "flex-row items-center border-b border-border px-3", children: _jsx(TextInput, { placeholder: searchPlaceholder, placeholderTextColor: "#888", value: query, onChangeText: setQuery, className: "flex-1 py-3 text-sm text-foreground", autoFocus: true }) }), filtered.length === 0 ? (_jsx(View, { className: "items-center py-8", children: _jsx(Text, { className: "text-sm text-muted-foreground", children: emptyText }) })) : (_jsx(FlatList, { data: filtered, keyExtractor: (item) => item.value, className: "p-1", renderItem: ({ item }) => (_jsxs(Pressable, { disabled: item.disabled, onPress: () => handleSelect(item.value), className: cn('flex-row items-center rounded-lg px-3 py-3', item.disabled && 'opacity-50'), children: [_jsx(Text, { className: cn('mr-2 text-sm', value === item.value ? 'text-primary' : 'opacity-0'), children: "\u2713" }), _jsx(Text, { className: "flex-1 text-sm text-foreground", numberOfLines: 1, children: item.label })] })) }))] }) }) }) })] }));
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=Combobox.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Combobox.native.js","sourceRoot":"","sources":["../src/Combobox.native.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command (web variant — React DOM).
|
|
3
|
+
*
|
|
4
|
+
* ⌘K-style command palette powered by cmdk. Composable API with
|
|
5
|
+
* search input, item groups, and keyboard navigation.
|
|
6
|
+
*
|
|
7
|
+
* <Command>
|
|
8
|
+
* <CommandInput placeholder="Search…" />
|
|
9
|
+
* <CommandList>
|
|
10
|
+
* <CommandEmpty>No results.</CommandEmpty>
|
|
11
|
+
* <CommandGroup heading="Pages">
|
|
12
|
+
* <CommandItem>Dashboard</CommandItem>
|
|
13
|
+
* <CommandItem>Settings</CommandItem>
|
|
14
|
+
* </CommandGroup>
|
|
15
|
+
* </CommandList>
|
|
16
|
+
* </Command>
|
|
17
|
+
*
|
|
18
|
+
* For a dialog-mounted command palette, wrap in CommandDialog:
|
|
19
|
+
*
|
|
20
|
+
* <CommandDialog open={open} onOpenChange={setOpen}>
|
|
21
|
+
* <CommandInput … />
|
|
22
|
+
* <CommandList>…</CommandList>
|
|
23
|
+
* </CommandDialog>
|
|
24
|
+
*
|
|
25
|
+
* Wiki: docs/components/Command.md
|
|
26
|
+
*/
|
|
27
|
+
import { type HTMLAttributes } from 'react';
|
|
28
|
+
export declare const Command: import("react").ForwardRefExoticComponent<Omit<{
|
|
29
|
+
children?: React.ReactNode;
|
|
30
|
+
} & Pick<Pick<import("react").DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof HTMLAttributes<HTMLDivElement>> & {
|
|
31
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
32
|
+
} & {
|
|
33
|
+
asChild?: boolean;
|
|
34
|
+
}, "key" | keyof HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
35
|
+
label?: string;
|
|
36
|
+
shouldFilter?: boolean;
|
|
37
|
+
filter?: (value: string, search: string, keywords?: string[]) => number;
|
|
38
|
+
defaultValue?: string;
|
|
39
|
+
value?: string;
|
|
40
|
+
onValueChange?: (value: string) => void;
|
|
41
|
+
loop?: boolean;
|
|
42
|
+
disablePointerSelection?: boolean;
|
|
43
|
+
vimBindings?: boolean;
|
|
44
|
+
} & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
45
|
+
export interface CommandDialogProps {
|
|
46
|
+
open: boolean;
|
|
47
|
+
onOpenChange: (open: boolean) => void;
|
|
48
|
+
children: React.ReactNode;
|
|
49
|
+
}
|
|
50
|
+
export declare function CommandDialog({ open, onOpenChange, children }: CommandDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
export declare const CommandInput: import("react").ForwardRefExoticComponent<Omit<Omit<Pick<Pick<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof import("react").InputHTMLAttributes<HTMLInputElement>> & {
|
|
52
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
53
|
+
} & {
|
|
54
|
+
asChild?: boolean;
|
|
55
|
+
}, "key" | keyof import("react").InputHTMLAttributes<HTMLInputElement> | "asChild">, "value" | "type" | "onChange"> & {
|
|
56
|
+
value?: string;
|
|
57
|
+
onValueChange?: (search: string) => void;
|
|
58
|
+
} & import("react").RefAttributes<HTMLInputElement>, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
|
|
59
|
+
export declare const CommandList: import("react").ForwardRefExoticComponent<Omit<{
|
|
60
|
+
children?: React.ReactNode;
|
|
61
|
+
} & Pick<Pick<import("react").DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof HTMLAttributes<HTMLDivElement>> & {
|
|
62
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
63
|
+
} & {
|
|
64
|
+
asChild?: boolean;
|
|
65
|
+
}, "key" | keyof HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
66
|
+
label?: string;
|
|
67
|
+
} & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
68
|
+
export declare const CommandEmpty: import("react").ForwardRefExoticComponent<Omit<{
|
|
69
|
+
children?: React.ReactNode;
|
|
70
|
+
} & Pick<Pick<import("react").DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof HTMLAttributes<HTMLDivElement>> & {
|
|
71
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
72
|
+
} & {
|
|
73
|
+
asChild?: boolean;
|
|
74
|
+
}, "key" | keyof HTMLAttributes<HTMLDivElement> | "asChild"> & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
75
|
+
export declare const CommandGroup: import("react").ForwardRefExoticComponent<Omit<{
|
|
76
|
+
children?: React.ReactNode;
|
|
77
|
+
} & Omit<Pick<Pick<import("react").DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof HTMLAttributes<HTMLDivElement>> & {
|
|
78
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
79
|
+
} & {
|
|
80
|
+
asChild?: boolean;
|
|
81
|
+
}, "key" | keyof HTMLAttributes<HTMLDivElement> | "asChild">, "value" | "heading"> & {
|
|
82
|
+
heading?: React.ReactNode;
|
|
83
|
+
value?: string;
|
|
84
|
+
forceMount?: boolean;
|
|
85
|
+
} & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
86
|
+
export declare const CommandSeparator: import("react").ForwardRefExoticComponent<Omit<Pick<Pick<import("react").DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof HTMLAttributes<HTMLDivElement>> & {
|
|
87
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
88
|
+
} & {
|
|
89
|
+
asChild?: boolean;
|
|
90
|
+
}, "key" | keyof HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
91
|
+
alwaysRender?: boolean;
|
|
92
|
+
} & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
93
|
+
export declare const CommandItem: import("react").ForwardRefExoticComponent<Omit<{
|
|
94
|
+
children?: React.ReactNode;
|
|
95
|
+
} & Omit<Pick<Pick<import("react").DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof HTMLAttributes<HTMLDivElement>> & {
|
|
96
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
97
|
+
} & {
|
|
98
|
+
asChild?: boolean;
|
|
99
|
+
}, "key" | keyof HTMLAttributes<HTMLDivElement> | "asChild">, "value" | "disabled" | "onSelect"> & {
|
|
100
|
+
disabled?: boolean;
|
|
101
|
+
onSelect?: (value: string) => void;
|
|
102
|
+
value?: string;
|
|
103
|
+
keywords?: string[];
|
|
104
|
+
forceMount?: boolean;
|
|
105
|
+
} & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
106
|
+
export declare function CommandShortcut({ className, ...props }: HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
|
|
107
|
+
//# sourceMappingURL=Command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../src/Command.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAA8D,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAOxG,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;0GAclB,CAAC;AAIH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAUjF;AAID,eAAO,MAAM,YAAY;;;;;;;8GA4BvB,CAAC;AAIH,eAAO,MAAM,WAAW;;;;;;;;0GAWtB,CAAC;AAIH,eAAO,MAAM,YAAY;;;;;;qKAWvB,CAAC;AAIH,eAAO,MAAM,YAAY;;;;;;;;;;0GAiBvB,CAAC;AAIH,eAAO,MAAM,gBAAgB;;;;;;0GAW3B,CAAC;AAIH,eAAO,MAAM,WAAW;;;;;;;;;;;;0GAiBtB,CAAC;AAIH,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,eAAe,CAAC,2CAOjC"}
|
package/dist/Command.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Command (web variant — React DOM).
|
|
5
|
+
*
|
|
6
|
+
* ⌘K-style command palette powered by cmdk. Composable API with
|
|
7
|
+
* search input, item groups, and keyboard navigation.
|
|
8
|
+
*
|
|
9
|
+
* <Command>
|
|
10
|
+
* <CommandInput placeholder="Search…" />
|
|
11
|
+
* <CommandList>
|
|
12
|
+
* <CommandEmpty>No results.</CommandEmpty>
|
|
13
|
+
* <CommandGroup heading="Pages">
|
|
14
|
+
* <CommandItem>Dashboard</CommandItem>
|
|
15
|
+
* <CommandItem>Settings</CommandItem>
|
|
16
|
+
* </CommandGroup>
|
|
17
|
+
* </CommandList>
|
|
18
|
+
* </Command>
|
|
19
|
+
*
|
|
20
|
+
* For a dialog-mounted command palette, wrap in CommandDialog:
|
|
21
|
+
*
|
|
22
|
+
* <CommandDialog open={open} onOpenChange={setOpen}>
|
|
23
|
+
* <CommandInput … />
|
|
24
|
+
* <CommandList>…</CommandList>
|
|
25
|
+
* </CommandDialog>
|
|
26
|
+
*
|
|
27
|
+
* Wiki: docs/components/Command.md
|
|
28
|
+
*/
|
|
29
|
+
import { forwardRef } from 'react';
|
|
30
|
+
import { Command as CommandPrimitive } from 'cmdk';
|
|
31
|
+
import { Dialog, DialogContent } from './Dialog.js';
|
|
32
|
+
import { cn } from './internal/cn.js';
|
|
33
|
+
/* ── Root ───────────────────────────────────────────────────────────── */
|
|
34
|
+
export const Command = forwardRef(function Command({ className, ...props }, ref) {
|
|
35
|
+
return (_jsx(CommandPrimitive, { ref: ref, className: cn('flex h-full w-full flex-col overflow-hidden rounded-xl bg-card text-foreground', className), ...props }));
|
|
36
|
+
});
|
|
37
|
+
export function CommandDialog({ open, onOpenChange, children }) {
|
|
38
|
+
return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsx(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: _jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3", children: children }) }) }));
|
|
39
|
+
}
|
|
40
|
+
/* ── Input ──────────────────────────────────────────────────────────── */
|
|
41
|
+
export const CommandInput = forwardRef(function CommandInput({ className, ...props }, ref) {
|
|
42
|
+
return (_jsxs("div", { className: "flex items-center border-b border-border px-3", "cmdk-input-wrapper": "", children: [_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, className: "mr-2 h-4 w-4 shrink-0 opacity-50", "aria-hidden": true, children: [_jsx("circle", { cx: "11", cy: "11", r: "8" }), _jsx("path", { d: "m21 21-4.3-4.3" })] }), _jsx(CommandPrimitive.Input, { ref: ref, className: cn('flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none', 'placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50', className), ...props })] }));
|
|
43
|
+
});
|
|
44
|
+
/* ── List ───────────────────────────────────────────────────────────── */
|
|
45
|
+
export const CommandList = forwardRef(function CommandList({ className, ...props }, ref) {
|
|
46
|
+
return (_jsx(CommandPrimitive.List, { ref: ref, className: cn('max-h-[300px] overflow-y-auto overflow-x-hidden', className), ...props }));
|
|
47
|
+
});
|
|
48
|
+
/* ── Empty ──────────────────────────────────────────────────────────── */
|
|
49
|
+
export const CommandEmpty = forwardRef(function CommandEmpty(props, ref) {
|
|
50
|
+
return (_jsx(CommandPrimitive.Empty, { ref: ref, className: "py-6 text-center text-sm text-muted-foreground", ...props }));
|
|
51
|
+
});
|
|
52
|
+
/* ── Group ──────────────────────────────────────────────────────────── */
|
|
53
|
+
export const CommandGroup = forwardRef(function CommandGroup({ className, ...props }, ref) {
|
|
54
|
+
return (_jsx(CommandPrimitive.Group, { ref: ref, className: cn('overflow-hidden p-1 text-foreground', '[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5', '[&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium', '[&_[cmdk-group-heading]]:text-muted-foreground', className), ...props }));
|
|
55
|
+
});
|
|
56
|
+
/* ── Separator ──────────────────────────────────────────────────────── */
|
|
57
|
+
export const CommandSeparator = forwardRef(function CommandSeparator({ className, ...props }, ref) {
|
|
58
|
+
return (_jsx(CommandPrimitive.Separator, { ref: ref, className: cn('-mx-1 h-px bg-border', className), ...props }));
|
|
59
|
+
});
|
|
60
|
+
/* ── Item ───────────────────────────────────────────────────────────── */
|
|
61
|
+
export const CommandItem = forwardRef(function CommandItem({ className, ...props }, ref) {
|
|
62
|
+
return (_jsx(CommandPrimitive.Item, { ref: ref, className: cn('relative flex cursor-default select-none items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none', 'data-[selected=true]:bg-muted data-[selected=true]:text-foreground', 'data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50', '[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', className), ...props }));
|
|
63
|
+
});
|
|
64
|
+
/* ── Shortcut ──────────────────────────────────────────────────────── */
|
|
65
|
+
export function CommandShortcut({ className, ...props }) {
|
|
66
|
+
return (_jsx("span", { className: cn('ml-auto text-xs tracking-widest text-muted-foreground', className), ...props }));
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=Command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Command.js","sourceRoot":"","sources":["../src/Command.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command (React Native variant).
|
|
3
|
+
*
|
|
4
|
+
* Stub for API parity. On native, command palette patterns
|
|
5
|
+
* are typically implemented as a modal with a search input
|
|
6
|
+
* and a FlatList. This provides the type surface.
|
|
7
|
+
*
|
|
8
|
+
* Wiki: docs/components/Command.md
|
|
9
|
+
*/
|
|
10
|
+
import type { ReactNode } from 'react';
|
|
11
|
+
import { type ViewProps, type TextInputProps } from 'react-native';
|
|
12
|
+
export interface CommandProps extends ViewProps {
|
|
13
|
+
className?: string;
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}
|
|
16
|
+
export declare function Command({ className, children, ...props }: CommandProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export interface CommandDialogProps {
|
|
18
|
+
open: boolean;
|
|
19
|
+
onOpenChange: (open: boolean) => void;
|
|
20
|
+
children: ReactNode;
|
|
21
|
+
}
|
|
22
|
+
export declare function CommandDialog({ children }: CommandDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export interface CommandInputProps extends TextInputProps {
|
|
24
|
+
className?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function CommandInput({ className, ...props }: CommandInputProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export declare function CommandList({ className, children, ...props }: CommandProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare function CommandEmpty({ className, children, ...props }: CommandProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export declare function CommandGroup({ className, children, ...props }: CommandProps & {
|
|
30
|
+
heading?: string;
|
|
31
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
export declare function CommandItem({ className, children, ...props }: CommandProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export interface CommandSeparatorProps extends ViewProps {
|
|
34
|
+
className?: string;
|
|
35
|
+
}
|
|
36
|
+
export declare function CommandSeparator({ className, ...props }: CommandSeparatorProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
export declare function CommandShortcut({ children, className }: {
|
|
38
|
+
children: ReactNode;
|
|
39
|
+
className?: string;
|
|
40
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
//# sourceMappingURL=Command.native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Command.native.d.ts","sourceRoot":"","sources":["../src/Command.native.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAyB,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAG1F,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,2CAEtE;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAE7D;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAEtE;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,2CAE1E;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,2CAM3E;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,2CAElG;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,2CAE1E;AAED,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAE9E;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAEnG"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { View, TextInput, Text } from 'react-native';
|
|
3
|
+
import { cn } from './internal/cn.js';
|
|
4
|
+
export function Command({ className, children, ...props }) {
|
|
5
|
+
return _jsx(View, { className: cn(className), ...props, children: children });
|
|
6
|
+
}
|
|
7
|
+
export function CommandDialog({ children }) {
|
|
8
|
+
return _jsx(_Fragment, { children: children });
|
|
9
|
+
}
|
|
10
|
+
export function CommandInput({ className, ...props }) {
|
|
11
|
+
return _jsx(TextInput, { className: cn(className), ...props });
|
|
12
|
+
}
|
|
13
|
+
export function CommandList({ className, children, ...props }) {
|
|
14
|
+
return _jsx(View, { className: cn(className), ...props, children: children });
|
|
15
|
+
}
|
|
16
|
+
export function CommandEmpty({ className, children, ...props }) {
|
|
17
|
+
return (_jsx(View, { className: cn(className), ...props, children: typeof children === 'string' ? _jsx(Text, { children: children }) : children }));
|
|
18
|
+
}
|
|
19
|
+
export function CommandGroup({ className, children, ...props }) {
|
|
20
|
+
return _jsx(View, { className: cn(className), ...props, children: children });
|
|
21
|
+
}
|
|
22
|
+
export function CommandItem({ className, children, ...props }) {
|
|
23
|
+
return _jsx(View, { className: cn(className), ...props, children: children });
|
|
24
|
+
}
|
|
25
|
+
export function CommandSeparator({ className, ...props }) {
|
|
26
|
+
return _jsx(View, { className: cn('h-px bg-border', className), ...props });
|
|
27
|
+
}
|
|
28
|
+
export function CommandShortcut({ children, className }) {
|
|
29
|
+
return _jsx(Text, { className: cn(className), children: children });
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=Command.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Command.native.js","sourceRoot":"","sources":["../src/Command.native.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAuC,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAOtC,MAAM,UAAU,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAgB;IACrE,OAAO,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAM,KAAK,YAAG,QAAQ,GAAQ,CAAC;AACtE,CAAC;AAQD,MAAM,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAsB;IAC5D,OAAO,4BAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAMD,MAAM,UAAU,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAqB;IACrE,OAAO,KAAC,SAAS,IAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAgB;IACzE,OAAO,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAM,KAAK,YAAG,QAAQ,GAAQ,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAgB;IAC1E,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAM,KAAK,YACtC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,IAAI,cAAE,QAAQ,GAAQ,CAAC,CAAC,CAAC,QAAQ,GAC7D,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAuC;IACjG,OAAO,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAM,KAAK,YAAG,QAAQ,GAAQ,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAgB;IACzE,OAAO,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAM,KAAK,YAAG,QAAQ,GAAQ,CAAC;AACtE,CAAC;AAMD,MAAM,UAAU,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAyB;IAC7E,OAAO,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAA+C;IAClG,OAAO,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAAG,QAAQ,GAAQ,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ContextMenu (web variant — React DOM).
|
|
3
|
+
*
|
|
4
|
+
* Right-click context menu powered by Radix. Shares visual styling with
|
|
5
|
+
* DropdownMenu for consistency.
|
|
6
|
+
*
|
|
7
|
+
* <ContextMenu>
|
|
8
|
+
* <ContextMenuTrigger>
|
|
9
|
+
* <div className="border p-8">Right-click here</div>
|
|
10
|
+
* </ContextMenuTrigger>
|
|
11
|
+
* <ContextMenuContent>
|
|
12
|
+
* <ContextMenuItem onSelect={() => {}}>Edit</ContextMenuItem>
|
|
13
|
+
* <ContextMenuSeparator />
|
|
14
|
+
* <ContextMenuItem variant="destructive" onSelect={() => {}}>Delete</ContextMenuItem>
|
|
15
|
+
* </ContextMenuContent>
|
|
16
|
+
* </ContextMenu>
|
|
17
|
+
*
|
|
18
|
+
* Wiki: docs/components/ContextMenu.md
|
|
19
|
+
*/
|
|
20
|
+
import { type ComponentPropsWithoutRef } from 'react';
|
|
21
|
+
import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
|
|
22
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
23
|
+
export declare const ContextMenu: import("react").FC<ContextMenuPrimitive.ContextMenuProps>;
|
|
24
|
+
export declare const ContextMenuTrigger: import("react").ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuTriggerProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
25
|
+
export declare const ContextMenuGroup: import("react").ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
26
|
+
export declare const ContextMenuSub: import("react").FC<ContextMenuPrimitive.ContextMenuSubProps>;
|
|
27
|
+
export declare const ContextMenuRadioGroup: import("react").ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuRadioGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
28
|
+
export declare const ContextMenuContent: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
29
|
+
declare const contextMenuItemVariants: (props?: ({
|
|
30
|
+
variant?: "default" | "destructive" | null | undefined;
|
|
31
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
32
|
+
export interface ContextMenuItemProps extends ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item>, VariantProps<typeof contextMenuItemVariants> {
|
|
33
|
+
inset?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export declare const ContextMenuItem: import("react").ForwardRefExoticComponent<ContextMenuItemProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
36
|
+
export declare const ContextMenuCheckboxItem: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuCheckboxItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
37
|
+
export declare const ContextMenuRadioItem: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuRadioItemProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
38
|
+
export declare const ContextMenuLabel: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuLabelProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
|
|
39
|
+
inset?: boolean;
|
|
40
|
+
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
41
|
+
export declare const ContextMenuSeparator: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSeparatorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
42
|
+
export declare const ContextMenuSubTrigger: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubTriggerProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
|
|
43
|
+
inset?: boolean;
|
|
44
|
+
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
45
|
+
export declare const ContextMenuSubContent: import("react").ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
46
|
+
export declare function ContextMenuShortcut({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=ContextMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../src/ContextMenu.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAc,KAAK,wBAAwB,EAAmB,MAAM,OAAO,CAAC;AACnF,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlE,eAAO,MAAM,WAAW,2DAA4B,CAAC;AACrD,eAAO,MAAM,kBAAkB,0IAA+B,CAAC;AAC/D,eAAO,MAAM,gBAAgB,uIAA6B,CAAC;AAC3D,eAAO,MAAM,cAAc,8DAA2B,CAAC;AACvD,eAAO,MAAM,qBAAqB,4IAAkC,CAAC;AAIrE,eAAO,MAAM,kBAAkB,sMAkB7B,CAAC;AAIH,QAAA,MAAM,uBAAuB;;8EAa5B,CAAC;AAEF,MAAM,WAAW,oBACf,SAAQ,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,EAChE,YAAY,CAAC,OAAO,uBAAuB,CAAC;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,eAAe,iHAW1B,CAAC;AAIH,eAAO,MAAM,uBAAuB,2MA2BlC,CAAC;AAIH,eAAO,MAAM,oBAAoB,wMAwB/B,CAAC;AAIH,eAAO,MAAM,gBAAgB;YAE6C,OAAO;kDAS/E,CAAC;AAIH,eAAO,MAAM,oBAAoB,wMAW/B,CAAC;AAIH,eAAO,MAAM,qBAAqB;YAE6C,OAAO;kDAmBpF,CAAC;AAIH,eAAO,MAAM,qBAAqB,yMAkBhC,CAAC;AAIH,wBAAgB,mBAAmB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,2CAOjG"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* ContextMenu (web variant — React DOM).
|
|
5
|
+
*
|
|
6
|
+
* Right-click context menu powered by Radix. Shares visual styling with
|
|
7
|
+
* DropdownMenu for consistency.
|
|
8
|
+
*
|
|
9
|
+
* <ContextMenu>
|
|
10
|
+
* <ContextMenuTrigger>
|
|
11
|
+
* <div className="border p-8">Right-click here</div>
|
|
12
|
+
* </ContextMenuTrigger>
|
|
13
|
+
* <ContextMenuContent>
|
|
14
|
+
* <ContextMenuItem onSelect={() => {}}>Edit</ContextMenuItem>
|
|
15
|
+
* <ContextMenuSeparator />
|
|
16
|
+
* <ContextMenuItem variant="destructive" onSelect={() => {}}>Delete</ContextMenuItem>
|
|
17
|
+
* </ContextMenuContent>
|
|
18
|
+
* </ContextMenu>
|
|
19
|
+
*
|
|
20
|
+
* Wiki: docs/components/ContextMenu.md
|
|
21
|
+
*/
|
|
22
|
+
import { forwardRef } from 'react';
|
|
23
|
+
import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
|
|
24
|
+
import { cva } from 'class-variance-authority';
|
|
25
|
+
import { cn } from './internal/cn.js';
|
|
26
|
+
/* ── Root + Trigger ──────────────────────────────────────────────── */
|
|
27
|
+
export const ContextMenu = ContextMenuPrimitive.Root;
|
|
28
|
+
export const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
29
|
+
export const ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
30
|
+
export const ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
31
|
+
export const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
32
|
+
/* ── Content ─────────────────────────────────────────────────────── */
|
|
33
|
+
export const ContextMenuContent = forwardRef(function ContextMenuContent({ className, ...props }, ref) {
|
|
34
|
+
return (_jsx(ContextMenuPrimitive.Portal, { children: _jsx(ContextMenuPrimitive.Content, { ref: ref, className: cn('z-50 min-w-[8rem] overflow-hidden rounded-lg p-1', 'border border-border bg-card text-card-foreground shadow-md', 'animate-dropdown-in', className), ...props }) }));
|
|
35
|
+
});
|
|
36
|
+
/* ── Item ────────────────────────────────────────────────────────── */
|
|
37
|
+
const contextMenuItemVariants = cva('relative flex cursor-pointer select-none items-center rounded-md px-2 py-1.5 text-body-sm outline-none ' +
|
|
38
|
+
'transition-colors duration-150 ' +
|
|
39
|
+
'data-[disabled]:pointer-events-none data-[disabled]:opacity-50', {
|
|
40
|
+
variants: {
|
|
41
|
+
variant: {
|
|
42
|
+
default: 'focus:bg-muted focus:text-foreground',
|
|
43
|
+
destructive: 'text-destructive focus:bg-destructive/10',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
defaultVariants: { variant: 'default' },
|
|
47
|
+
});
|
|
48
|
+
export const ContextMenuItem = forwardRef(function ContextMenuItem({ className, variant, inset, ...props }, ref) {
|
|
49
|
+
return (_jsx(ContextMenuPrimitive.Item, { ref: ref, className: cn(contextMenuItemVariants({ variant }), inset && 'pl-8', className), ...props }));
|
|
50
|
+
});
|
|
51
|
+
/* ── CheckboxItem ────────────────────────────────────────────────── */
|
|
52
|
+
export const ContextMenuCheckboxItem = forwardRef(function ContextMenuCheckboxItem({ className, children, checked = false, ...props }, ref) {
|
|
53
|
+
return (_jsxs(ContextMenuPrimitive.CheckboxItem, { ref: ref, className: cn('relative flex cursor-pointer select-none items-center rounded-md py-1.5 pl-8 pr-2 text-body-sm outline-none', 'transition-colors duration-150', 'focus:bg-muted focus:text-foreground', 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50', className), checked: checked, ...props, children: [_jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: _jsx(ContextMenuPrimitive.ItemIndicator, { children: _jsx("svg", { "aria-hidden": "true", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: 2.5, className: "h-3.5 w-3.5", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M3.5 8.5L6.5 11.5L12.5 5.5" }) }) }) }), children] }));
|
|
54
|
+
});
|
|
55
|
+
/* ── RadioItem ───────────────────────────────────────────────────── */
|
|
56
|
+
export const ContextMenuRadioItem = forwardRef(function ContextMenuRadioItem({ className, children, ...props }, ref) {
|
|
57
|
+
return (_jsxs(ContextMenuPrimitive.RadioItem, { ref: ref, className: cn('relative flex cursor-pointer select-none items-center rounded-md py-1.5 pl-8 pr-2 text-body-sm outline-none', 'transition-colors duration-150', 'focus:bg-muted focus:text-foreground', 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50', className), ...props, children: [_jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: _jsx(ContextMenuPrimitive.ItemIndicator, { children: _jsx("span", { className: "h-2 w-2 rounded-full bg-foreground" }) }) }), children] }));
|
|
58
|
+
});
|
|
59
|
+
/* ── Label ────────────────────────────────────────────────────────── */
|
|
60
|
+
export const ContextMenuLabel = forwardRef(function ContextMenuLabel({ className, inset, ...props }, ref) {
|
|
61
|
+
return (_jsx(ContextMenuPrimitive.Label, { ref: ref, className: cn('px-2 py-1.5 text-xs font-semibold text-muted-foreground', inset && 'pl-8', className), ...props }));
|
|
62
|
+
});
|
|
63
|
+
/* ── Separator ───────────────────────────────────────────────────── */
|
|
64
|
+
export const ContextMenuSeparator = forwardRef(function ContextMenuSeparator({ className, ...props }, ref) {
|
|
65
|
+
return (_jsx(ContextMenuPrimitive.Separator, { ref: ref, className: cn('-mx-1 my-1 h-px bg-border', className), ...props }));
|
|
66
|
+
});
|
|
67
|
+
/* ── SubTrigger ──────────────────────────────────────────────────── */
|
|
68
|
+
export const ContextMenuSubTrigger = forwardRef(function ContextMenuSubTrigger({ className, inset, children, ...props }, ref) {
|
|
69
|
+
return (_jsxs(ContextMenuPrimitive.SubTrigger, { ref: ref, className: cn('flex cursor-pointer select-none items-center rounded-md px-2 py-1.5 text-body-sm outline-none', 'focus:bg-muted focus:text-foreground', inset && 'pl-8', className), ...props, children: [children, _jsx("svg", { "aria-hidden": "true", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: 2, className: "ml-auto h-4 w-4", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 4l4 4-4 4" }) })] }));
|
|
70
|
+
});
|
|
71
|
+
/* ── SubContent ──────────────────────────────────────────────────── */
|
|
72
|
+
export const ContextMenuSubContent = forwardRef(function ContextMenuSubContent({ className, ...props }, ref) {
|
|
73
|
+
return (_jsx(ContextMenuPrimitive.Portal, { children: _jsx(ContextMenuPrimitive.SubContent, { ref: ref, className: cn('z-50 min-w-[8rem] overflow-hidden rounded-lg p-1', 'border border-border bg-card text-card-foreground shadow-md', 'animate-dropdown-in', className), ...props }) }));
|
|
74
|
+
});
|
|
75
|
+
/* ── Shortcut ────────────────────────────────────────────────────── */
|
|
76
|
+
export function ContextMenuShortcut({ className, ...props }) {
|
|
77
|
+
return (_jsx("span", { className: cn('ml-auto pl-4 text-xs tracking-widest text-muted-foreground', className), ...props }));
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=ContextMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextMenu.js","sourceRoot":"","sources":["../src/ContextMenu.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,UAAU,EAAkD,MAAM,OAAO,CAAC;AACnF,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtC,wEAAwE;AAExE,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC;AACrD,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,OAAO,CAAC;AAC/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,KAAK,CAAC;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,oBAAoB,CAAC,GAAG,CAAC;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,UAAU,CAAC;AAErE,wEAAwE;AAExE,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAG1C,SAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IACxD,OAAO,CACL,KAAC,oBAAoB,CAAC,MAAM,cAC1B,KAAC,oBAAoB,CAAC,OAAO,IAC3B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,kDAAkD,EAClD,6DAA6D,EAC7D,qBAAqB,EACrB,SAAS,CACV,KACG,KAAK,GACT,GAC0B,CAC/B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,MAAM,uBAAuB,GAAG,GAAG,CACjC,yGAAyG;IACvG,iCAAiC;IACjC,gEAAgE,EAClE;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,sCAAsC;YAC/C,WAAW,EAAE,0CAA0C;SACxD;KACF;IACD,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;CACxC,CACF,CAAC;AAQF,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAGvC,SAAS,eAAe,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IACrE,OAAO,CACL,KAAC,oBAAoB,CAAC,IAAI,IACxB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,IAAI,MAAM,EAAE,SAAS,CAAC,KAC3E,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAG/C,SAAS,uBAAuB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IACxF,OAAO,CACL,MAAC,oBAAoB,CAAC,YAAY,IAChC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,6GAA6G,EAC7G,gCAAgC,EAChC,sCAAsC,EACtC,gEAAgE,EAChE,SAAS,CACV,EACD,OAAO,EAAE,OAAO,KACZ,KAAK,aAET,eAAM,SAAS,EAAC,8DAA8D,YAC5E,KAAC,oBAAoB,CAAC,aAAa,cACjC,6BAAiB,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAE,GAAG,EAAE,SAAS,EAAC,aAAa,YACrH,eAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,CAAC,EAAC,4BAA4B,GAAG,GAChF,GAC6B,GAChC,EACN,QAAQ,IACyB,CACrC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAG5C,SAAS,oBAAoB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IACpE,OAAO,CACL,MAAC,oBAAoB,CAAC,SAAS,IAC7B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,6GAA6G,EAC7G,gCAAgC,EAChC,sCAAsC,EACtC,gEAAgE,EAChE,SAAS,CACV,KACG,KAAK,aAET,eAAM,SAAS,EAAC,8DAA8D,YAC5E,KAAC,oBAAoB,CAAC,aAAa,cACjC,eAAM,SAAS,EAAC,oCAAoC,GAAG,GACpB,GAChC,EACN,QAAQ,IACsB,CAClC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,yEAAyE;AAEzE,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAGxC,SAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IAC7D,OAAO,CACL,KAAC,oBAAoB,CAAC,KAAK,IACzB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,MAAM,EAAE,SAAS,CAAC,KAChG,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAG5C,SAAS,oBAAoB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IAC1D,OAAO,CACL,KAAC,oBAAoB,CAAC,SAAS,IAC7B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,SAAS,CAAC,KACjD,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAG7C,SAAS,qBAAqB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IAC5E,OAAO,CACL,MAAC,oBAAoB,CAAC,UAAU,IAC9B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,+FAA+F,EAC/F,sCAAsC,EACtC,KAAK,IAAI,MAAM,EACf,SAAS,CACV,KACG,KAAK,aAER,QAAQ,EACT,6BAAiB,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAC,iBAAiB,YACvH,eAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,CAAC,EAAC,cAAc,GAAG,GAClE,IAC0B,CACnC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAG7C,SAAS,qBAAqB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IAC3D,OAAO,CACL,KAAC,oBAAoB,CAAC,MAAM,cAC1B,KAAC,oBAAoB,CAAC,UAAU,IAC9B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,kDAAkD,EAClD,6DAA6D,EAC7D,qBAAqB,EACrB,SAAS,CACV,KACG,KAAK,GACT,GAC0B,CAC/B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,MAAM,UAAU,mBAAmB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAyC;IAChG,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CAAC,4DAA4D,EAAE,SAAS,CAAC,KAClF,KAAK,GACT,CACH,CAAC;AACJ,CAAC"}
|