@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,93 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Carousel (React Native variant).
|
|
4
|
+
*
|
|
5
|
+
* Horizontal paging carousel backed by FlatList.
|
|
6
|
+
* Uses `data` + `renderItem` instead of composable children
|
|
7
|
+
* (FlatList requires a data-driven pattern).
|
|
8
|
+
*
|
|
9
|
+
* <Carousel
|
|
10
|
+
* data={slides}
|
|
11
|
+
* renderItem={({ item }) => <CarouselItem><Text>{item.title}</Text></CarouselItem>}
|
|
12
|
+
* />
|
|
13
|
+
*
|
|
14
|
+
* Wiki: docs/components/Carousel.md
|
|
15
|
+
*/
|
|
16
|
+
import { createContext, forwardRef, useCallback, useContext, useEffect, useRef, useState, } from 'react';
|
|
17
|
+
import { FlatList, Pressable, View, useWindowDimensions, } from 'react-native';
|
|
18
|
+
import { cn } from './internal/cn.js';
|
|
19
|
+
/* ── Context ──────────────────────────────────────────────────────── */
|
|
20
|
+
const CarouselContext = createContext(null);
|
|
21
|
+
export function useCarousel() {
|
|
22
|
+
const ctx = useContext(CarouselContext);
|
|
23
|
+
if (!ctx)
|
|
24
|
+
throw new Error('useCarousel must be used within a <Carousel>');
|
|
25
|
+
return ctx;
|
|
26
|
+
}
|
|
27
|
+
/* ── Root ──────────────────────────────────────────────────────────── */
|
|
28
|
+
function CarouselInner({ data, renderItem, orientation = 'horizontal', setApi, className, ...props }, ref) {
|
|
29
|
+
const { width, height } = useWindowDimensions();
|
|
30
|
+
const flatListRef = useRef(null);
|
|
31
|
+
const [activeIndex, setActiveIndex] = useState(0);
|
|
32
|
+
const dataLength = data ? data.length : 0;
|
|
33
|
+
const isHorizontal = orientation === 'horizontal';
|
|
34
|
+
const itemWidth = isHorizontal ? width : width;
|
|
35
|
+
const itemHeight = isHorizontal ? height : height;
|
|
36
|
+
const onMomentumScrollEnd = useCallback((e) => {
|
|
37
|
+
const offset = isHorizontal
|
|
38
|
+
? e.nativeEvent.contentOffset.x
|
|
39
|
+
: e.nativeEvent.contentOffset.y;
|
|
40
|
+
const size = isHorizontal ? width : height;
|
|
41
|
+
const index = Math.round(offset / size);
|
|
42
|
+
setActiveIndex(index);
|
|
43
|
+
}, [isHorizontal, width, height]);
|
|
44
|
+
const scrollTo = useCallback((index) => {
|
|
45
|
+
flatListRef.current?.scrollToIndex({ index, animated: true });
|
|
46
|
+
setActiveIndex(index);
|
|
47
|
+
}, []);
|
|
48
|
+
const scrollPrev = useCallback(() => {
|
|
49
|
+
if (activeIndex > 0)
|
|
50
|
+
scrollTo(activeIndex - 1);
|
|
51
|
+
}, [activeIndex, scrollTo]);
|
|
52
|
+
const scrollNext = useCallback(() => {
|
|
53
|
+
if (activeIndex < dataLength - 1)
|
|
54
|
+
scrollTo(activeIndex + 1);
|
|
55
|
+
}, [activeIndex, dataLength, scrollTo]);
|
|
56
|
+
/* Expose imperative API */
|
|
57
|
+
const canScrollPrev = activeIndex > 0;
|
|
58
|
+
const canScrollNext = activeIndex < dataLength - 1;
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
const api = {
|
|
61
|
+
scrollPrev,
|
|
62
|
+
scrollNext,
|
|
63
|
+
canScrollPrev,
|
|
64
|
+
canScrollNext,
|
|
65
|
+
selectedIndex: activeIndex,
|
|
66
|
+
scrollTo,
|
|
67
|
+
};
|
|
68
|
+
setApi?.(api);
|
|
69
|
+
}, [activeIndex, canScrollPrev, canScrollNext, scrollPrev, scrollNext, scrollTo, setApi]);
|
|
70
|
+
return (_jsx(CarouselContext.Provider, { value: { orientation, itemWidth, itemHeight }, children: _jsx(View, { className: cn('relative', className), accessibilityRole: "adjustable", accessibilityLabel: "carousel", children: _jsx(FlatList, { ref: (node) => {
|
|
71
|
+
flatListRef.current = node;
|
|
72
|
+
if (typeof ref === 'function')
|
|
73
|
+
ref(node);
|
|
74
|
+
else if (ref)
|
|
75
|
+
ref.current = node;
|
|
76
|
+
}, data: data, renderItem: renderItem, horizontal: isHorizontal, pagingEnabled: true, snapToAlignment: "center", showsHorizontalScrollIndicator: false, showsVerticalScrollIndicator: false, onMomentumScrollEnd: onMomentumScrollEnd, ...props }) }) }));
|
|
77
|
+
}
|
|
78
|
+
export const Carousel = forwardRef(CarouselInner);
|
|
79
|
+
export const CarouselItem = forwardRef(function CarouselItem({ className, ...props }, ref) {
|
|
80
|
+
return (_jsx(View, { ref: ref, accessibilityRole: "summary", accessibilityLabel: "slide", className: cn('flex-1', className), ...props }));
|
|
81
|
+
});
|
|
82
|
+
/* ── Navigation buttons (thin wrappers — typically custom on native) */
|
|
83
|
+
export const CarouselPrevious = forwardRef(function CarouselPrevious({ className, onPress, children, ...props }, ref) {
|
|
84
|
+
return (_jsx(Pressable, { ref: ref, onPress: onPress, className: cn(className), ...props, children: children }));
|
|
85
|
+
});
|
|
86
|
+
export const CarouselNext = forwardRef(function CarouselNext({ className, onPress, children, ...props }, ref) {
|
|
87
|
+
return (_jsx(Pressable, { ref: ref, onPress: onPress, className: cn(className), ...props, children: children }));
|
|
88
|
+
});
|
|
89
|
+
/* ── Content (no-op wrapper for API symmetry) ────────────────────── */
|
|
90
|
+
export const CarouselContent = forwardRef(function CarouselContent({ className, children, ...props }, ref) {
|
|
91
|
+
return (_jsx(View, { ref: ref, className: cn(className), ...props, children: children }));
|
|
92
|
+
});
|
|
93
|
+
//# sourceMappingURL=Carousel.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Carousel.native.js","sourceRoot":"","sources":["../src/Carousel.native.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CategoryBar (web variant).
|
|
3
|
+
*
|
|
4
|
+
* Segmented distribution bar for status, risk, and allocation summaries.
|
|
5
|
+
*
|
|
6
|
+
* Wiki: docs/components/CategoryBar.md
|
|
7
|
+
*/
|
|
8
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
9
|
+
export interface CategoryBarItem {
|
|
10
|
+
label: ReactNode;
|
|
11
|
+
value: number;
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface CategoryBarProps extends HTMLAttributes<HTMLDivElement> {
|
|
15
|
+
data: CategoryBarItem[];
|
|
16
|
+
valueFormatter?: (value: number, percentage: number) => ReactNode;
|
|
17
|
+
showLegend?: boolean;
|
|
18
|
+
legendPosition?: 'top' | 'bottom';
|
|
19
|
+
barClassName?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const CategoryBar: import("react").ForwardRefExoticComponent<CategoryBarProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
22
|
+
//# sourceMappingURL=CategoryBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoryBar.d.ts","sourceRoot":"","sources":["../src/CategoryBar.tsx"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,OAAO,EAAc,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIxE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACtE,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,SAAS,CAAC;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,WAAW,6GAyDtB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* CategoryBar (web variant).
|
|
5
|
+
*
|
|
6
|
+
* Segmented distribution bar for status, risk, and allocation summaries.
|
|
7
|
+
*
|
|
8
|
+
* Wiki: docs/components/CategoryBar.md
|
|
9
|
+
*/
|
|
10
|
+
import { forwardRef } from 'react';
|
|
11
|
+
import { motion } from 'motion/react';
|
|
12
|
+
import { cn } from './internal/cn.js';
|
|
13
|
+
export const CategoryBar = forwardRef(function CategoryBar({ data, valueFormatter = (_value, percentage) => `${Math.round(percentage)}%`, showLegend = true, legendPosition = 'bottom', className, barClassName, ...props }, ref) {
|
|
14
|
+
const total = data.reduce((sum, item) => sum + Math.max(0, item.value), 0);
|
|
15
|
+
const legend = showLegend ? (_jsx("div", { className: "flex flex-wrap items-center gap-x-4 gap-y-2 text-xs text-muted-foreground", children: data.map((item, index) => {
|
|
16
|
+
const value = Math.max(0, item.value);
|
|
17
|
+
const percentage = total > 0 ? (value / total) * 100 : 0;
|
|
18
|
+
return (_jsxs("span", { className: "inline-flex items-center gap-2", children: [_jsx("span", { className: cn('size-2.5 rounded-full bg-primary', item.className), "aria-hidden": true }), _jsx("span", { className: "text-foreground", children: item.label }), _jsx("span", { children: valueFormatter(value, percentage) })] }, index));
|
|
19
|
+
}) })) : null;
|
|
20
|
+
return (_jsxs("div", { ref: ref, className: cn('space-y-3', className), ...props, children: [legendPosition === 'top' ? legend : null, _jsx("div", { className: cn('flex h-3 w-full overflow-hidden rounded-full bg-muted', barClassName), role: "img", "aria-label": data
|
|
21
|
+
.map((item) => `${String(item.label)} ${total > 0 ? Math.round((item.value / total) * 100) : 0}%`)
|
|
22
|
+
.join(', '), children: data.map((item, index) => {
|
|
23
|
+
const percentage = total > 0 ? (Math.max(0, item.value) / total) * 100 : 0;
|
|
24
|
+
return (_jsx(motion.span, { className: cn('h-full bg-primary transition-[width,background-color] duration-500 ease-out', item.className), initial: { width: 0 }, animate: { width: `${percentage}%` }, transition: { duration: 0.45, ease: 'easeOut' }, title: `${String(item.label)} ${Math.round(percentage)}%` }, index));
|
|
25
|
+
}) }), legendPosition === 'bottom' ? legend : null] }));
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=CategoryBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoryBar.js","sourceRoot":"","sources":["../src/CategoryBar.tsx"],"names":[],"mappings":"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"}
|
package/dist/Chart.d.ts
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chart (web only — React DOM).
|
|
3
|
+
*
|
|
4
|
+
* Theme-aware Recharts wrapper. Provides a context-based config system
|
|
5
|
+
* that maps data keys to labels, icons, and colors (with light/dark
|
|
6
|
+
* theme support via CSS custom properties).
|
|
7
|
+
*
|
|
8
|
+
* Exports:
|
|
9
|
+
* - `ChartContainer` — wraps `ResponsiveContainer`, injects CSS vars
|
|
10
|
+
* - `ChartTooltip` — re-export of `recharts.Tooltip`
|
|
11
|
+
* - `ChartTooltipContent` — styled tooltip with indicator variants
|
|
12
|
+
* - `ChartLegend` — re-export of `recharts.Legend`
|
|
13
|
+
* - `ChartLegendContent` — styled legend items with optional icons
|
|
14
|
+
* - `ChartStyle` — CSS variable injection for light/dark themes
|
|
15
|
+
* - `ChartConfig` type — config shape for data-key → label/icon/color
|
|
16
|
+
* - `useChart` hook — access chart config from context
|
|
17
|
+
*
|
|
18
|
+
* Wiki: docs/components/Chart.md
|
|
19
|
+
*/
|
|
20
|
+
import { type ComponentProps, type ComponentType, type ReactNode } from 'react';
|
|
21
|
+
import * as RechartsPrimitive from 'recharts';
|
|
22
|
+
import type { TooltipValueType } from 'recharts';
|
|
23
|
+
/** CSS selector per theme. Light = root scope, dark = `.dark` class. */
|
|
24
|
+
declare const THEMES: {
|
|
25
|
+
readonly light: "";
|
|
26
|
+
readonly dark: ".dark";
|
|
27
|
+
};
|
|
28
|
+
type TooltipNameType = number | string;
|
|
29
|
+
export type ChartConfig = Record<string, {
|
|
30
|
+
label?: ReactNode;
|
|
31
|
+
icon?: ComponentType;
|
|
32
|
+
} & ({
|
|
33
|
+
color?: string;
|
|
34
|
+
theme?: never;
|
|
35
|
+
} | {
|
|
36
|
+
color?: never;
|
|
37
|
+
theme: Record<keyof typeof THEMES, string>;
|
|
38
|
+
})>;
|
|
39
|
+
interface ChartContextProps {
|
|
40
|
+
config: ChartConfig;
|
|
41
|
+
}
|
|
42
|
+
export declare function useChart(): ChartContextProps;
|
|
43
|
+
export interface ChartContainerProps extends ComponentProps<'div'> {
|
|
44
|
+
config: ChartConfig;
|
|
45
|
+
children: ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];
|
|
46
|
+
initialDimension?: {
|
|
47
|
+
width: number;
|
|
48
|
+
height: number;
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export declare const ChartContainer: import("react").ForwardRefExoticComponent<Omit<ChartContainerProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
52
|
+
/**
|
|
53
|
+
* Injects CSS custom properties (`--color-<key>`) for each config entry,
|
|
54
|
+
* scoped to the chart's `[data-chart]` selector.
|
|
55
|
+
*
|
|
56
|
+
* NOTE: The `<style>` content is derived entirely from developer-controlled
|
|
57
|
+
* `ChartConfig` — not user input — so inline style injection is safe here.
|
|
58
|
+
*/
|
|
59
|
+
export declare function ChartStyle({ id, config }: {
|
|
60
|
+
id: string;
|
|
61
|
+
config: ChartConfig;
|
|
62
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
63
|
+
export declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
|
|
64
|
+
export declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: ComponentProps<typeof RechartsPrimitive.Tooltip> & ComponentProps<'div'> & {
|
|
65
|
+
hideLabel?: boolean;
|
|
66
|
+
hideIndicator?: boolean;
|
|
67
|
+
indicator?: 'line' | 'dot' | 'dashed';
|
|
68
|
+
nameKey?: string;
|
|
69
|
+
labelKey?: string;
|
|
70
|
+
} & Omit<RechartsPrimitive.DefaultTooltipContentProps<TooltipValueType, TooltipNameType>, 'accessibilityLayer'>): import("react/jsx-runtime").JSX.Element | null;
|
|
71
|
+
export declare const ChartLegend: import("react").MemoExoticComponent<(outsideProps: RechartsPrimitive.LegendProps) => React.ReactPortal | null>;
|
|
72
|
+
export declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: ComponentProps<'div'> & {
|
|
73
|
+
hideIcon?: boolean;
|
|
74
|
+
nameKey?: string;
|
|
75
|
+
} & RechartsPrimitive.DefaultLegendContentProps): import("react/jsx-runtime").JSX.Element | null;
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=Chart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../src/Chart.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,aAAa,EAElB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,iBAAiB,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAOjD,wEAAwE;AACxE,QAAA,MAAM,MAAM;;;CAAwC,CAAC;AAYrD,KAAK,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAMvC,MAAM,MAAM,WAAW,GAAG,MAAM,CAC9B,MAAM,EACN;IACE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,GAAG,CACA;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GACjC;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,OAAO,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAChE,CACF,CAAC;AAMF,UAAU,iBAAiB;IACzB,MAAM,EAAE,WAAW,CAAC;CACrB;AAID,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C;AAMD,MAAM,WAAW,mBAAoB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAChE,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC,OAAO,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC;IACnF,gBAAgB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAED,eAAO,MAAM,cAAc,6HAwC1B,CAAC;AAMF;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,kDAyB7E;AAMD,eAAO,MAAM,YAAY,kCAA4B,CAAC;AAEtD,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAiB,EACjB,SAAiB,EACjB,aAAqB,EACrB,KAAK,EACL,cAAc,EACd,cAAc,EACd,SAAS,EACT,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,cAAc,CAAC,OAAO,iBAAiB,CAAC,OAAO,CAAC,GACjD,cAAc,CAAC,KAAK,CAAC,GAAG;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CACN,iBAAiB,CAAC,0BAA0B,CAAC,gBAAgB,EAAE,eAAe,CAAC,EAC/E,oBAAoB,CACrB,kDAwHF;AAMD,eAAO,MAAM,WAAW,gHAA2B,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,QAAgB,EAChB,OAAO,EACP,aAAwB,EACxB,OAAO,GACR,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,iBAAiB,CAAC,yBAAyB,kDA6C9C"}
|
package/dist/Chart.js
ADDED
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Chart (web only — React DOM).
|
|
5
|
+
*
|
|
6
|
+
* Theme-aware Recharts wrapper. Provides a context-based config system
|
|
7
|
+
* that maps data keys to labels, icons, and colors (with light/dark
|
|
8
|
+
* theme support via CSS custom properties).
|
|
9
|
+
*
|
|
10
|
+
* Exports:
|
|
11
|
+
* - `ChartContainer` — wraps `ResponsiveContainer`, injects CSS vars
|
|
12
|
+
* - `ChartTooltip` — re-export of `recharts.Tooltip`
|
|
13
|
+
* - `ChartTooltipContent` — styled tooltip with indicator variants
|
|
14
|
+
* - `ChartLegend` — re-export of `recharts.Legend`
|
|
15
|
+
* - `ChartLegendContent` — styled legend items with optional icons
|
|
16
|
+
* - `ChartStyle` — CSS variable injection for light/dark themes
|
|
17
|
+
* - `ChartConfig` type — config shape for data-key → label/icon/color
|
|
18
|
+
* - `useChart` hook — access chart config from context
|
|
19
|
+
*
|
|
20
|
+
* Wiki: docs/components/Chart.md
|
|
21
|
+
*/
|
|
22
|
+
import { createContext, useContext, useId, useMemo, forwardRef, } from 'react';
|
|
23
|
+
import * as RechartsPrimitive from 'recharts';
|
|
24
|
+
import { cn } from './internal/cn.js';
|
|
25
|
+
/* -------------------------------------------------------------------------- */
|
|
26
|
+
/* Theme map */
|
|
27
|
+
/* -------------------------------------------------------------------------- */
|
|
28
|
+
/** CSS selector per theme. Light = root scope, dark = `.dark` class. */
|
|
29
|
+
const THEMES = { light: '', dark: '.dark' };
|
|
30
|
+
const INITIAL_DIMENSION = { width: 320, height: 200 };
|
|
31
|
+
const DEFAULT_CHART_COLORS = [
|
|
32
|
+
'var(--color-primary, #003385)',
|
|
33
|
+
'var(--color-accent, #eb6a2a)',
|
|
34
|
+
'var(--color-success, #2f7d32)',
|
|
35
|
+
'var(--color-warning, #b26a00)',
|
|
36
|
+
'var(--color-brand-neutral-436, #5f6f82)',
|
|
37
|
+
'var(--color-danger, #b42318)',
|
|
38
|
+
];
|
|
39
|
+
const ChartContext = createContext(null);
|
|
40
|
+
export function useChart() {
|
|
41
|
+
const context = useContext(ChartContext);
|
|
42
|
+
if (!context) {
|
|
43
|
+
throw new Error('useChart must be used within a <ChartContainer />');
|
|
44
|
+
}
|
|
45
|
+
return context;
|
|
46
|
+
}
|
|
47
|
+
export const ChartContainer = forwardRef(function ChartContainer({ id, className, children, config, initialDimension = INITIAL_DIMENSION, ...props }, ref) {
|
|
48
|
+
const uniqueId = useId();
|
|
49
|
+
const chartId = `chart-${id ?? uniqueId.replace(/:/g, '')}`;
|
|
50
|
+
return (_jsx(ChartContext.Provider, { value: { config }, children: _jsxs("div", { ref: ref, "data-slot": "chart", "data-chart": chartId, className: cn('flex aspect-video justify-center text-xs', '[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground', "[&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50", '[&_.recharts-curve.recharts-tooltip-cursor]:stroke-border', "[&_.recharts-dot[stroke='#fff']]:stroke-transparent", '[&_.recharts-layer]:outline-hidden', "[&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border", '[&_.recharts-radial-bar-background-sector]:fill-muted', '[&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted', "[&_.recharts-reference-line_[stroke='#ccc']]:stroke-border", '[&_.recharts-sector]:outline-hidden', "[&_.recharts-sector[stroke='#fff']]:stroke-transparent", '[&_.recharts-surface]:outline-hidden', className), ...props, children: [_jsx(ChartStyle, { id: chartId, config: config }), _jsx(RechartsPrimitive.ResponsiveContainer, { initialDimension: initialDimension, children: children })] }) }));
|
|
51
|
+
});
|
|
52
|
+
/* -------------------------------------------------------------------------- */
|
|
53
|
+
/* ChartStyle */
|
|
54
|
+
/* -------------------------------------------------------------------------- */
|
|
55
|
+
/**
|
|
56
|
+
* Injects CSS custom properties (`--color-<key>`) for each config entry,
|
|
57
|
+
* scoped to the chart's `[data-chart]` selector.
|
|
58
|
+
*
|
|
59
|
+
* NOTE: The `<style>` content is derived entirely from developer-controlled
|
|
60
|
+
* `ChartConfig` — not user input — so inline style injection is safe here.
|
|
61
|
+
*/
|
|
62
|
+
export function ChartStyle({ id, config }) {
|
|
63
|
+
const colorConfig = Object.entries(config);
|
|
64
|
+
if (!colorConfig.length) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
const cssText = Object.entries(THEMES)
|
|
68
|
+
.map(([theme, prefix]) => `
|
|
69
|
+
${prefix} [data-chart=${id}] {
|
|
70
|
+
${colorConfig
|
|
71
|
+
.map(([key, itemConfig], index) => {
|
|
72
|
+
const fallbackColor = getDefaultChartColor(index);
|
|
73
|
+
const color = itemConfig.theme?.[theme] ?? itemConfig.color;
|
|
74
|
+
return ` --color-${key}: ${withCssVarFallback(color, fallbackColor)};`;
|
|
75
|
+
})
|
|
76
|
+
.join('\n')}
|
|
77
|
+
}
|
|
78
|
+
`)
|
|
79
|
+
.join('\n');
|
|
80
|
+
return _jsx("style", { children: cssText });
|
|
81
|
+
}
|
|
82
|
+
/* -------------------------------------------------------------------------- */
|
|
83
|
+
/* ChartTooltip + ChartTooltipContent */
|
|
84
|
+
/* -------------------------------------------------------------------------- */
|
|
85
|
+
export const ChartTooltip = RechartsPrimitive.Tooltip;
|
|
86
|
+
export function ChartTooltipContent({ active, payload, className, indicator = 'dot', hideLabel = false, hideIndicator = false, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }) {
|
|
87
|
+
const { config } = useChart();
|
|
88
|
+
const tooltipLabel = useMemo(() => {
|
|
89
|
+
if (hideLabel || !payload?.length) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
const [item] = payload;
|
|
93
|
+
const key = `${labelKey ?? item?.dataKey ?? item?.name ?? 'value'}`;
|
|
94
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
95
|
+
const value = !labelKey && typeof label === 'string'
|
|
96
|
+
? (config[label]?.label ?? label)
|
|
97
|
+
: itemConfig?.label;
|
|
98
|
+
if (labelFormatter) {
|
|
99
|
+
return (_jsx("div", { className: cn('font-medium', labelClassName), children: labelFormatter(value, payload) }));
|
|
100
|
+
}
|
|
101
|
+
if (!value) {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
return _jsx("div", { className: cn('font-medium', labelClassName), children: value });
|
|
105
|
+
}, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);
|
|
106
|
+
if (!active || !payload?.length) {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
const nestLabel = payload.length === 1 && indicator !== 'dot';
|
|
110
|
+
return (_jsxs("div", { className: cn('grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl', className), children: [!nestLabel ? tooltipLabel : null, _jsx("div", { className: "grid gap-1.5", children: payload
|
|
111
|
+
.filter((item) => item.type !== 'none')
|
|
112
|
+
.map((item, index) => {
|
|
113
|
+
const key = `${nameKey ?? item.name ?? item.dataKey ?? 'value'}`;
|
|
114
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
115
|
+
const indicatorColor = withCssVarFallback(color ?? item.payload?.fill ?? item.color, getDefaultChartColor(index));
|
|
116
|
+
return (_jsx("div", { className: cn('flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground', indicator === 'dot' && 'items-center'), children: formatter && item?.value !== undefined && item.name ? (formatter(item.value, item.name, item, index, item.payload)) : (_jsxs(_Fragment, { children: [itemConfig?.icon ? (_jsx(itemConfig.icon, {})) : (!hideIndicator && (_jsx("div", { className: cn('shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)', {
|
|
117
|
+
'h-2.5 w-2.5': indicator === 'dot',
|
|
118
|
+
'w-1': indicator === 'line',
|
|
119
|
+
'w-0 border-[1.5px] border-dashed bg-transparent': indicator === 'dashed',
|
|
120
|
+
'my-0.5': nestLabel && indicator === 'dashed',
|
|
121
|
+
}), style: {
|
|
122
|
+
'--color-bg': indicatorColor,
|
|
123
|
+
'--color-border': indicatorColor,
|
|
124
|
+
} }))), _jsxs("div", { className: cn('flex flex-1 justify-between leading-none', nestLabel ? 'items-end' : 'items-center'), children: [_jsxs("div", { className: "grid gap-1.5", children: [nestLabel ? tooltipLabel : null, _jsx("span", { className: "text-muted-foreground", children: itemConfig?.label ?? item.name })] }), item.value != null && (_jsx("span", { className: "font-mono font-medium tabular-nums text-foreground", children: typeof item.value === 'number'
|
|
125
|
+
? item.value.toLocaleString()
|
|
126
|
+
: String(item.value) }))] })] })) }, index));
|
|
127
|
+
}) })] }));
|
|
128
|
+
}
|
|
129
|
+
/* -------------------------------------------------------------------------- */
|
|
130
|
+
/* ChartLegend + ChartLegendContent */
|
|
131
|
+
/* -------------------------------------------------------------------------- */
|
|
132
|
+
export const ChartLegend = RechartsPrimitive.Legend;
|
|
133
|
+
export function ChartLegendContent({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey, }) {
|
|
134
|
+
const { config } = useChart();
|
|
135
|
+
if (!payload?.length) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
return (_jsx("div", { className: cn('flex items-center justify-center gap-4', verticalAlign === 'top' ? 'pb-3' : 'pt-3', className), children: payload
|
|
139
|
+
.filter((item) => item.type !== 'none')
|
|
140
|
+
.map((item, index) => {
|
|
141
|
+
const key = `${nameKey ?? item.dataKey ?? 'value'}`;
|
|
142
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
143
|
+
const label = itemConfig?.label ?? getLegendItemLabel(item.value ?? item.dataKey);
|
|
144
|
+
const markerColor = withCssVarFallback(item.color, getDefaultChartColor(index));
|
|
145
|
+
return (_jsxs("div", { className: "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground", children: [itemConfig?.icon && !hideIcon ? (_jsx(itemConfig.icon, {})) : (_jsx("div", { className: "h-2 w-2 shrink-0 rounded-[2px]", style: { backgroundColor: markerColor } })), label ? _jsx("span", { children: label }) : null] }, index));
|
|
146
|
+
}) }));
|
|
147
|
+
}
|
|
148
|
+
/* -------------------------------------------------------------------------- */
|
|
149
|
+
/* Helper */
|
|
150
|
+
/* -------------------------------------------------------------------------- */
|
|
151
|
+
function getPayloadConfigFromPayload(config, payload, key) {
|
|
152
|
+
if (typeof payload !== 'object' || payload === null) {
|
|
153
|
+
return undefined;
|
|
154
|
+
}
|
|
155
|
+
const payloadPayload = 'payload' in payload &&
|
|
156
|
+
typeof payload.payload === 'object' &&
|
|
157
|
+
payload.payload !== null
|
|
158
|
+
? payload.payload
|
|
159
|
+
: undefined;
|
|
160
|
+
let configLabelKey = key;
|
|
161
|
+
if (key in payload && typeof payload[key] === 'string') {
|
|
162
|
+
configLabelKey = payload[key];
|
|
163
|
+
}
|
|
164
|
+
else if (payloadPayload &&
|
|
165
|
+
key in payloadPayload &&
|
|
166
|
+
typeof payloadPayload[key] === 'string') {
|
|
167
|
+
configLabelKey = payloadPayload[key];
|
|
168
|
+
}
|
|
169
|
+
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
170
|
+
}
|
|
171
|
+
function withCssVarFallback(color, fallbackColor) {
|
|
172
|
+
if (typeof color !== 'string' || color.trim() === '') {
|
|
173
|
+
return fallbackColor;
|
|
174
|
+
}
|
|
175
|
+
const trimmed = color.trim();
|
|
176
|
+
const cssVarMatch = /^var\((--[\w-]+)\)$/.exec(trimmed);
|
|
177
|
+
if (!cssVarMatch) {
|
|
178
|
+
return trimmed;
|
|
179
|
+
}
|
|
180
|
+
if (fallbackColor.startsWith(`var(${cssVarMatch[1]},`)) {
|
|
181
|
+
return fallbackColor;
|
|
182
|
+
}
|
|
183
|
+
return `var(${cssVarMatch[1]}, ${fallbackColor})`;
|
|
184
|
+
}
|
|
185
|
+
function getDefaultChartColor(index) {
|
|
186
|
+
return (DEFAULT_CHART_COLORS[index % DEFAULT_CHART_COLORS.length] ??
|
|
187
|
+
DEFAULT_CHART_COLORS[0]);
|
|
188
|
+
}
|
|
189
|
+
function getLegendItemLabel(value) {
|
|
190
|
+
if (typeof value === 'string' ||
|
|
191
|
+
typeof value === 'number' ||
|
|
192
|
+
typeof value === 'bigint') {
|
|
193
|
+
return String(value);
|
|
194
|
+
}
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=Chart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Chart.js","sourceRoot":"","sources":["../src/Chart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checkbox (web variant — React DOM).
|
|
3
|
+
*
|
|
4
|
+
* Renders a `<button role="checkbox">` with `aria-checked` driven by
|
|
5
|
+
* `checked`. Supports three states: `true`, `false`, `"indeterminate"`
|
|
6
|
+
* — the latter renders a minus-glyph and announces as mixed via
|
|
7
|
+
* `aria-checked="mixed"`.
|
|
8
|
+
*
|
|
9
|
+
* Controlled-only by design. Pair with `Label` and link them via
|
|
10
|
+
* `id` / `htmlFor` so the label is a click target.
|
|
11
|
+
*
|
|
12
|
+
* Wiki: docs/components/Checkbox.md
|
|
13
|
+
*/
|
|
14
|
+
import { type ButtonHTMLAttributes } from 'react';
|
|
15
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
16
|
+
export type CheckedState = boolean | 'indeterminate';
|
|
17
|
+
export declare const checkboxVariants: (props?: ({
|
|
18
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
19
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
20
|
+
export type CheckboxTone = 'primary' | 'accent';
|
|
21
|
+
export interface CheckboxProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onChange' | 'children' | 'type'>, VariantProps<typeof checkboxVariants> {
|
|
22
|
+
checked: CheckedState;
|
|
23
|
+
onCheckedChange: (checked: CheckedState) => void;
|
|
24
|
+
/** Colour tone when checked. Defaults to `primary`. */
|
|
25
|
+
tone?: CheckboxTone;
|
|
26
|
+
}
|
|
27
|
+
export declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
28
|
+
//# sourceMappingURL=Checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAc,KAAK,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,eAAe,CAAC;AAErD,eAAO,MAAM,gBAAgB;;8EAgB5B,CAAC;AAIF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAOhD,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC,EACrF,YAAY,CAAC,OAAO,gBAAgB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IACjD,uDAAuD;IACvD,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,eAAO,MAAM,QAAQ,6GAkDnB,CAAC"}
|
package/dist/Checkbox.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Checkbox (web variant — React DOM).
|
|
5
|
+
*
|
|
6
|
+
* Renders a `<button role="checkbox">` with `aria-checked` driven by
|
|
7
|
+
* `checked`. Supports three states: `true`, `false`, `"indeterminate"`
|
|
8
|
+
* — the latter renders a minus-glyph and announces as mixed via
|
|
9
|
+
* `aria-checked="mixed"`.
|
|
10
|
+
*
|
|
11
|
+
* Controlled-only by design. Pair with `Label` and link them via
|
|
12
|
+
* `id` / `htmlFor` so the label is a click target.
|
|
13
|
+
*
|
|
14
|
+
* Wiki: docs/components/Checkbox.md
|
|
15
|
+
*/
|
|
16
|
+
import { forwardRef } from 'react';
|
|
17
|
+
import { cva } from 'class-variance-authority';
|
|
18
|
+
import { cn } from './internal/cn.js';
|
|
19
|
+
export const checkboxVariants = cva('peer inline-flex shrink-0 items-center justify-center rounded ' +
|
|
20
|
+
'border-2 border-brand-neutral-179 bg-background ' +
|
|
21
|
+
'transition-colors duration-150 ' +
|
|
22
|
+
'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ' +
|
|
23
|
+
'disabled:cursor-not-allowed disabled:opacity-50', {
|
|
24
|
+
variants: {
|
|
25
|
+
size: {
|
|
26
|
+
sm: 'h-3.5 w-3.5',
|
|
27
|
+
md: 'h-4 w-4',
|
|
28
|
+
lg: 'h-5 w-5',
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
defaultVariants: { size: 'md' },
|
|
32
|
+
});
|
|
33
|
+
const ICON_SIZE = { sm: 'h-2.5 w-2.5', md: 'h-3 w-3', lg: 'h-3.5 w-3.5' };
|
|
34
|
+
const TONE_CLASSES = {
|
|
35
|
+
primary: 'bg-primary border-primary text-primary-foreground',
|
|
36
|
+
accent: 'bg-accent border-accent text-accent-foreground',
|
|
37
|
+
};
|
|
38
|
+
export const Checkbox = forwardRef(function Checkbox({ className, size = 'md', checked, onCheckedChange, disabled, tone = 'primary', ...props }, ref) {
|
|
39
|
+
const sz = size ?? 'md';
|
|
40
|
+
const isChecked = checked === true;
|
|
41
|
+
const isMixed = checked === 'indeterminate';
|
|
42
|
+
return (_jsx("button", { ref: ref, type: "button", role: "checkbox", "aria-checked": isMixed ? 'mixed' : isChecked, disabled: disabled, onClick: () => onCheckedChange(checked === true ? false : true), className: cn(checkboxVariants({ size: sz }), (isChecked || isMixed) && TONE_CLASSES[tone], className), ...props, children: isChecked ? (_jsx("svg", { "aria-hidden": true, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: 3, strokeLinecap: "round", strokeLinejoin: "round", className: ICON_SIZE[sz], children: _jsx("path", { d: "M3 8l3 3 7-7" }) })) : isMixed ? (_jsx("svg", { "aria-hidden": true, viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: 3, strokeLinecap: "round", className: ICON_SIZE[sz], children: _jsx("line", { x1: "3", y1: "8", x2: "13", y2: "8" }) })) : null }));
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,UAAU,EAA6B,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAItC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CACjC,gEAAgE;IAC9D,kDAAkD;IAClD,iCAAiC;IACjC,sGAAsG;IACtG,iDAAiD,EACnD;IACE,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,aAAa;YACjB,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,SAAS;SACd;KACF;IACD,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;CAChC,CACF,CAAC;AAEF,MAAM,SAAS,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,aAAa,EAAW,CAAC;AAInF,MAAM,YAAY,GAAiC;IACjD,OAAO,EAAE,mDAAmD;IAC5D,MAAM,EAAE,gDAAgD;CACzD,CAAC;AAWF,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAmC,SAAS,QAAQ,CACpF,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,GAAG,SAAS,EAAE,GAAG,KAAK,EAAE,EAC1F,GAAG;IAEH,MAAM,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC;IACxB,MAAM,SAAS,GAAG,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,KAAK,eAAe,CAAC;IAC5C,OAAO,CACL,iBACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,UAAU,kBACD,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAC3C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAC/D,SAAS,EAAE,EAAE,CACX,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAC9B,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAC5C,SAAS,CACV,KACG,KAAK,YAER,SAAS,CAAC,CAAC,CAAC,CACX,mCAEE,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAE,CAAC,EACd,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,YAExB,eAAM,CAAC,EAAC,cAAc,GAAG,GACrB,CACP,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACZ,mCAEE,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAE,CAAC,EACd,aAAa,EAAC,OAAO,EACrB,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,YAExB,eAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,GAAG,GACjC,CACP,CAAC,CAAC,CAAC,IAAI,GACD,CACV,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { View, type PressableProps } from 'react-native';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
export type CheckedState = boolean | 'indeterminate';
|
|
4
|
+
export declare const checkboxVariants: (props?: ({
|
|
5
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export interface CheckboxProps extends Omit<PressableProps, 'onPress' | 'children' | 'style'>, VariantProps<typeof checkboxVariants> {
|
|
8
|
+
checked: CheckedState;
|
|
9
|
+
onCheckedChange: (checked: CheckedState) => void;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<View>>;
|
|
13
|
+
//# sourceMappingURL=Checkbox.native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.native.d.ts","sourceRoot":"","sources":["../src/Checkbox.native.tsx"],"names":[],"mappings":"AASA,OAAO,EAAmB,IAAI,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,eAAe,CAAC;AAErD,eAAO,MAAM,gBAAgB;;8EAY5B,CAAC;AAEF,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC,EAC5D,YAAY,CAAC,OAAO,gBAAgB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;IACtB,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,QAAQ,gGA+BnB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Checkbox (React Native variant).
|
|
4
|
+
*
|
|
5
|
+
* Three-state checkbox using Pressable. `accessibilityRole="checkbox"`
|
|
6
|
+
* + `accessibilityState.checked` (boolean or "mixed").
|
|
7
|
+
*
|
|
8
|
+
* Wiki: docs/components/Checkbox.md
|
|
9
|
+
*/
|
|
10
|
+
import { forwardRef } from 'react';
|
|
11
|
+
import { Pressable, Text, View } from 'react-native';
|
|
12
|
+
import { cva } from 'class-variance-authority';
|
|
13
|
+
import { cn } from './internal/cn.js';
|
|
14
|
+
export const checkboxVariants = cva('items-center justify-center rounded border border-input bg-background', {
|
|
15
|
+
variants: {
|
|
16
|
+
size: {
|
|
17
|
+
sm: 'h-4 w-4',
|
|
18
|
+
md: 'h-5 w-5',
|
|
19
|
+
lg: 'h-6 w-6',
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
defaultVariants: { size: 'md' },
|
|
23
|
+
});
|
|
24
|
+
export const Checkbox = forwardRef(function Checkbox({ className, size = 'md', checked, onCheckedChange, disabled, ...props }, ref) {
|
|
25
|
+
const sz = size ?? 'md';
|
|
26
|
+
const isChecked = checked === true;
|
|
27
|
+
const isMixed = checked === 'indeterminate';
|
|
28
|
+
const glyph = isChecked ? '✓' : isMixed ? '–' : '';
|
|
29
|
+
return (_jsx(Pressable, { ref: ref, accessibilityRole: "checkbox", accessibilityState: {
|
|
30
|
+
checked: isMixed ? 'mixed' : isChecked,
|
|
31
|
+
disabled: !!disabled,
|
|
32
|
+
}, disabled: disabled, onPress: () => onCheckedChange(checked === true ? false : true), className: cn(checkboxVariants({ size: sz }), (isChecked || isMixed) && 'bg-primary border-primary', disabled && 'opacity-50', className), ...props, children: glyph ? (_jsx(Text, { className: "text-primary-foreground text-sm font-bold leading-none", children: glyph })) : null }));
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=Checkbox.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.native.js","sourceRoot":"","sources":["../src/Checkbox.native.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAuB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAItC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CACjC,uEAAuE,EACvE;IACE,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,SAAS;YACb,EAAE,EAAE,SAAS;SACd;KACF;IACD,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;CAChC,CACF,CAAC;AAUF,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAsB,SAAS,QAAQ,CACvE,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EACxE,GAAG;IAEH,MAAM,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC;IACxB,MAAM,SAAS,GAAG,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,OAAO,GAAG,OAAO,KAAK,eAAe,CAAC;IAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,OAAO,CACL,KAAC,SAAS,IACR,GAAG,EAAE,GAAY,EACjB,iBAAiB,EAAC,UAAU,EAC5B,kBAAkB,EAAE;YAClB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACtC,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,EACD,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAC/D,SAAS,EAAE,EAAE,CACX,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAC9B,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,2BAA2B,EACrD,QAAQ,IAAI,YAAY,EACxB,SAAS,CACV,KACG,KAAK,YAER,KAAK,CAAC,CAAC,CAAC,CACP,KAAC,IAAI,IAAC,SAAS,EAAC,wDAAwD,YAAE,KAAK,GAAQ,CACxF,CAAC,CAAC,CAAC,IAAI,GACE,CACb,CAAC;AACJ,CAAC,CAAC,CAAC"}
|