@byldpartners/ui 0.0.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 +284 -0
- package/dist/chunk-464G63BO.cjs +224 -0
- package/dist/chunk-464G63BO.cjs.map +1 -0
- package/dist/chunk-JFJY6DZZ.js +224 -0
- package/dist/chunk-JFJY6DZZ.js.map +1 -0
- package/dist/index.cjs +3894 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1543 -0
- package/dist/index.d.ts +1543 -0
- package/dist/index.js +3894 -0
- package/dist/index.js.map +1 -0
- package/dist/theme/web.cjs +16 -0
- package/dist/theme/web.cjs.map +1 -0
- package/dist/theme/web.d.cts +81 -0
- package/dist/theme/web.d.ts +81 -0
- package/dist/theme/web.js +16 -0
- package/dist/theme/web.js.map +1 -0
- package/package.json +117 -0
- package/src/components/Accordion/Accordion.native.tsx +195 -0
- package/src/components/Accordion/Accordion.stories.tsx +49 -0
- package/src/components/Accordion/Accordion.types.ts +28 -0
- package/src/components/Accordion/Accordion.web.tsx +61 -0
- package/src/components/Accordion/index.native.ts +12 -0
- package/src/components/Accordion/index.ts +12 -0
- package/src/components/Accordion/useAccordion.test.ts +114 -0
- package/src/components/Accordion/useAccordion.ts +65 -0
- package/src/components/Alert/Alert.native.tsx +86 -0
- package/src/components/Alert/Alert.stories.tsx +43 -0
- package/src/components/Alert/Alert.types.ts +17 -0
- package/src/components/Alert/Alert.web.test.tsx +49 -0
- package/src/components/Alert/Alert.web.tsx +59 -0
- package/src/components/Alert/index.native.ts +2 -0
- package/src/components/Alert/index.ts +2 -0
- package/src/components/Alert/useAlert.test.ts +19 -0
- package/src/components/Alert/useAlert.ts +10 -0
- package/src/components/AlertDialog/AlertDialog.native.tsx +281 -0
- package/src/components/AlertDialog/AlertDialog.stories.tsx +49 -0
- package/src/components/AlertDialog/AlertDialog.types.ts +49 -0
- package/src/components/AlertDialog/AlertDialog.web.tsx +138 -0
- package/src/components/AlertDialog/index.native.ts +22 -0
- package/src/components/AlertDialog/index.ts +24 -0
- package/src/components/AlertDialog/useAlertDialog.test.ts +40 -0
- package/src/components/AlertDialog/useAlertDialog.ts +36 -0
- package/src/components/AspectRatio/AspectRatio.native.tsx +37 -0
- package/src/components/AspectRatio/AspectRatio.stories.tsx +44 -0
- package/src/components/AspectRatio/AspectRatio.types.ts +5 -0
- package/src/components/AspectRatio/AspectRatio.web.tsx +5 -0
- package/src/components/AspectRatio/index.native.ts +2 -0
- package/src/components/AspectRatio/index.ts +2 -0
- package/src/components/AspectRatio/useAspectRatio.test.ts +40 -0
- package/src/components/AspectRatio/useAspectRatio.ts +12 -0
- package/src/components/Avatar/Avatar.native.tsx +95 -0
- package/src/components/Avatar/Avatar.stories.tsx +31 -0
- package/src/components/Avatar/Avatar.types.ts +17 -0
- package/src/components/Avatar/Avatar.web.tsx +47 -0
- package/src/components/Avatar/index.native.ts +2 -0
- package/src/components/Avatar/index.ts +2 -0
- package/src/components/Avatar/useAvatarImage.test.ts +66 -0
- package/src/components/Avatar/useAvatarImage.ts +31 -0
- package/src/components/Badge/Badge.native.tsx +64 -0
- package/src/components/Badge/Badge.stories.tsx +42 -0
- package/src/components/Badge/Badge.types.ts +7 -0
- package/src/components/Badge/Badge.web.test.tsx +40 -0
- package/src/components/Badge/Badge.web.tsx +41 -0
- package/src/components/Badge/index.native.ts +2 -0
- package/src/components/Badge/index.ts +2 -0
- package/src/components/Breadcrumb/Breadcrumb.native.tsx +158 -0
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +41 -0
- package/src/components/Breadcrumb/Breadcrumb.types.ts +37 -0
- package/src/components/Breadcrumb/Breadcrumb.web.tsx +125 -0
- package/src/components/Breadcrumb/index.native.ts +18 -0
- package/src/components/Breadcrumb/index.ts +18 -0
- package/src/components/Button/Button.native.tsx +118 -0
- package/src/components/Button/Button.stories.tsx +97 -0
- package/src/components/Button/Button.types.ts +19 -0
- package/src/components/Button/Button.web.test.tsx +69 -0
- package/src/components/Button/Button.web.tsx +55 -0
- package/src/components/Button/index.native.ts +2 -0
- package/src/components/Button/index.ts +2 -0
- package/src/components/Calendar/Calendar.native.tsx +108 -0
- package/src/components/Calendar/Calendar.stories.tsx +18 -0
- package/src/components/Calendar/Calendar.types.ts +8 -0
- package/src/components/Calendar/Calendar.web.tsx +143 -0
- package/src/components/Calendar/index.native.ts +2 -0
- package/src/components/Calendar/index.ts +2 -0
- package/src/components/Calendar/useCalendar.test.ts +145 -0
- package/src/components/Calendar/useCalendar.ts +94 -0
- package/src/components/Card/Card.native.tsx +42 -0
- package/src/components/Card/Card.stories.tsx +41 -0
- package/src/components/Card/Card.types.ts +4 -0
- package/src/components/Card/Card.web.test.tsx +29 -0
- package/src/components/Card/Card.web.tsx +23 -0
- package/src/components/Card/index.native.ts +2 -0
- package/src/components/Card/index.ts +2 -0
- package/src/components/Carousel/Carousel.native.tsx +193 -0
- package/src/components/Carousel/Carousel.stories.tsx +51 -0
- package/src/components/Carousel/Carousel.types.ts +29 -0
- package/src/components/Carousel/Carousel.web.tsx +272 -0
- package/src/components/Carousel/index.native.ts +2 -0
- package/src/components/Carousel/index.ts +2 -0
- package/src/components/Carousel/useCarousel.test.ts +111 -0
- package/src/components/Carousel/useCarousel.ts +48 -0
- package/src/components/Chart/Chart.native.tsx +7 -0
- package/src/components/Chart/Chart.stories.tsx +57 -0
- package/src/components/Chart/Chart.types.ts +13 -0
- package/src/components/Chart/Chart.web.tsx +36 -0
- package/src/components/Chart/index.native.ts +2 -0
- package/src/components/Chart/index.ts +3 -0
- package/src/components/Checkbox/Checkbox.native.tsx +47 -0
- package/src/components/Checkbox/Checkbox.stories.tsx +30 -0
- package/src/components/Checkbox/Checkbox.types.ts +12 -0
- package/src/components/Checkbox/Checkbox.web.tsx +37 -0
- package/src/components/Checkbox/index.native.ts +2 -0
- package/src/components/Checkbox/index.ts +2 -0
- package/src/components/Checkbox/useCheckbox.test.ts +66 -0
- package/src/components/Checkbox/useCheckbox.ts +37 -0
- package/src/components/Collapsible/Collapsible.native.tsx +111 -0
- package/src/components/Collapsible/Collapsible.stories.tsx +35 -0
- package/src/components/Collapsible/Collapsible.types.ts +19 -0
- package/src/components/Collapsible/Collapsible.web.tsx +9 -0
- package/src/components/Collapsible/index.native.ts +2 -0
- package/src/components/Collapsible/index.ts +2 -0
- package/src/components/Collapsible/useCollapsible.test.ts +53 -0
- package/src/components/Collapsible/useCollapsible.ts +38 -0
- package/src/components/Combobox/Combobox.native.tsx +146 -0
- package/src/components/Combobox/Combobox.stories.tsx +43 -0
- package/src/components/Combobox/Combobox.types.ts +15 -0
- package/src/components/Combobox/Combobox.web.tsx +145 -0
- package/src/components/Combobox/index.native.ts +2 -0
- package/src/components/Combobox/index.ts +2 -0
- package/src/components/Combobox/useCombobox.test.ts +59 -0
- package/src/components/Combobox/useCombobox.ts +42 -0
- package/src/components/Command/Command.native.tsx +7 -0
- package/src/components/Command/Command.stories.tsx +37 -0
- package/src/components/Command/Command.types.ts +43 -0
- package/src/components/Command/Command.web.tsx +134 -0
- package/src/components/Command/index.native.ts +2 -0
- package/src/components/Command/index.ts +18 -0
- package/src/components/ContextMenu/ContextMenu.native.tsx +241 -0
- package/src/components/ContextMenu/ContextMenu.stories.tsx +43 -0
- package/src/components/ContextMenu/ContextMenu.types.ts +69 -0
- package/src/components/ContextMenu/ContextMenu.web.tsx +220 -0
- package/src/components/ContextMenu/index.native.ts +28 -0
- package/src/components/ContextMenu/index.ts +2 -0
- package/src/components/ContextMenu/useContextMenu.test.ts +44 -0
- package/src/components/ContextMenu/useContextMenu.ts +36 -0
- package/src/components/DataTable/DataTable.native.tsx +85 -0
- package/src/components/DataTable/DataTable.stories.tsx +72 -0
- package/src/components/DataTable/DataTable.types.ts +16 -0
- package/src/components/DataTable/DataTable.web.tsx +135 -0
- package/src/components/DataTable/index.native.ts +2 -0
- package/src/components/DataTable/index.ts +3 -0
- package/src/components/DataTable/useDataTable.test.ts +98 -0
- package/src/components/DataTable/useDataTable.ts +68 -0
- package/src/components/DatePicker/DatePicker.native.tsx +82 -0
- package/src/components/DatePicker/DatePicker.stories.tsx +68 -0
- package/src/components/DatePicker/DatePicker.types.ts +7 -0
- package/src/components/DatePicker/DatePicker.web.tsx +85 -0
- package/src/components/DatePicker/index.native.ts +2 -0
- package/src/components/DatePicker/index.ts +2 -0
- package/src/components/DatePicker/useDatePicker.test.ts +62 -0
- package/src/components/DatePicker/useDatePicker.ts +54 -0
- package/src/components/Dialog/Dialog.native.tsx +188 -0
- package/src/components/Dialog/Dialog.stories.tsx +42 -0
- package/src/components/Dialog/Dialog.types.ts +45 -0
- package/src/components/Dialog/Dialog.web.tsx +126 -0
- package/src/components/Dialog/index.native.ts +2 -0
- package/src/components/Dialog/index.ts +2 -0
- package/src/components/Dialog/useDialog.test.ts +44 -0
- package/src/components/Dialog/useDialog.ts +36 -0
- package/src/components/Drawer/Drawer.native.tsx +244 -0
- package/src/components/Drawer/Drawer.stories.tsx +39 -0
- package/src/components/Drawer/Drawer.types.ts +44 -0
- package/src/components/Drawer/Drawer.web.tsx +133 -0
- package/src/components/Drawer/index.native.ts +2 -0
- package/src/components/Drawer/index.ts +2 -0
- package/src/components/Drawer/useDrawer.test.ts +33 -0
- package/src/components/Drawer/useDrawer.ts +19 -0
- package/src/components/DropdownMenu/DropdownMenu.native.tsx +272 -0
- package/src/components/DropdownMenu/DropdownMenu.stories.tsx +36 -0
- package/src/components/DropdownMenu/DropdownMenu.types.ts +73 -0
- package/src/components/DropdownMenu/DropdownMenu.web.tsx +225 -0
- package/src/components/DropdownMenu/index.native.ts +2 -0
- package/src/components/DropdownMenu/index.ts +2 -0
- package/src/components/DropdownMenu/useDropdownMenu.test.ts +44 -0
- package/src/components/DropdownMenu/useDropdownMenu.ts +36 -0
- package/src/components/Form/Form.native.tsx +98 -0
- package/src/components/Form/Form.stories.tsx +83 -0
- package/src/components/Form/Form.types.ts +35 -0
- package/src/components/Form/Form.web.test.tsx +73 -0
- package/src/components/Form/Form.web.tsx +111 -0
- package/src/components/Form/index.native.ts +18 -0
- package/src/components/Form/index.ts +18 -0
- package/src/components/Form/useFormField.test.ts +25 -0
- package/src/components/Form/useFormField.ts +22 -0
- package/src/components/HoverCard/HoverCard.native.tsx +15 -0
- package/src/components/HoverCard/HoverCard.stories.tsx +34 -0
- package/src/components/HoverCard/HoverCard.types.ts +18 -0
- package/src/components/HoverCard/HoverCard.web.test.tsx +35 -0
- package/src/components/HoverCard/HoverCard.web.tsx +26 -0
- package/src/components/HoverCard/index.native.ts +2 -0
- package/src/components/HoverCard/index.ts +2 -0
- package/src/components/Icon/Icon.native.tsx +27 -0
- package/src/components/Icon/index.native.ts +2 -0
- package/src/components/Input/Input.native.tsx +32 -0
- package/src/components/Input/Input.stories.tsx +42 -0
- package/src/components/Input/Input.types.ts +10 -0
- package/src/components/Input/Input.web.test.tsx +39 -0
- package/src/components/Input/Input.web.tsx +21 -0
- package/src/components/Input/index.native.ts +2 -0
- package/src/components/Input/index.ts +2 -0
- package/src/components/InputOTP/InputOTP.native.tsx +93 -0
- package/src/components/InputOTP/InputOTP.stories.tsx +56 -0
- package/src/components/InputOTP/InputOTP.types.ts +14 -0
- package/src/components/InputOTP/InputOTP.web.tsx +128 -0
- package/src/components/InputOTP/index.native.ts +2 -0
- package/src/components/InputOTP/index.ts +2 -0
- package/src/components/InputOTP/useInputOTP.test.ts +97 -0
- package/src/components/InputOTP/useInputOTP.ts +69 -0
- package/src/components/Label/Label.native.tsx +25 -0
- package/src/components/Label/Label.stories.tsx +20 -0
- package/src/components/Label/Label.types.ts +6 -0
- package/src/components/Label/Label.web.test.tsx +27 -0
- package/src/components/Label/Label.web.tsx +23 -0
- package/src/components/Label/index.native.ts +2 -0
- package/src/components/Label/index.ts +2 -0
- package/src/components/Menubar/Menubar.native.tsx +287 -0
- package/src/components/Menubar/Menubar.stories.tsx +46 -0
- package/src/components/Menubar/Menubar.types.ts +70 -0
- package/src/components/Menubar/Menubar.web.tsx +256 -0
- package/src/components/Menubar/index.native.ts +28 -0
- package/src/components/Menubar/index.ts +2 -0
- package/src/components/Menubar/useMenubar.test.ts +35 -0
- package/src/components/Menubar/useMenubar.ts +19 -0
- package/src/components/NavigationMenu/NavigationMenu.native.tsx +128 -0
- package/src/components/NavigationMenu/NavigationMenu.stories.tsx +35 -0
- package/src/components/NavigationMenu/NavigationMenu.types.ts +35 -0
- package/src/components/NavigationMenu/NavigationMenu.web.test.tsx +56 -0
- package/src/components/NavigationMenu/NavigationMenu.web.tsx +134 -0
- package/src/components/NavigationMenu/index.native.ts +16 -0
- package/src/components/NavigationMenu/index.ts +2 -0
- package/src/components/Pagination/Pagination.native.tsx +192 -0
- package/src/components/Pagination/Pagination.stories.tsx +49 -0
- package/src/components/Pagination/Pagination.types.ts +41 -0
- package/src/components/Pagination/Pagination.web.test.tsx +101 -0
- package/src/components/Pagination/Pagination.web.tsx +185 -0
- package/src/components/Pagination/index.native.ts +19 -0
- package/src/components/Pagination/index.ts +2 -0
- package/src/components/Popover/Popover.native.tsx +97 -0
- package/src/components/Popover/Popover.stories.tsx +25 -0
- package/src/components/Popover/Popover.types.ts +20 -0
- package/src/components/Popover/Popover.web.tsx +30 -0
- package/src/components/Popover/index.native.ts +2 -0
- package/src/components/Popover/index.ts +2 -0
- package/src/components/Popover/usePopover.test.ts +40 -0
- package/src/components/Popover/usePopover.ts +36 -0
- package/src/components/Progress/Progress.native.tsx +65 -0
- package/src/components/Progress/Progress.stories.tsx +36 -0
- package/src/components/Progress/Progress.types.ts +6 -0
- package/src/components/Progress/Progress.web.test.tsx +27 -0
- package/src/components/Progress/Progress.web.tsx +30 -0
- package/src/components/Progress/index.native.ts +2 -0
- package/src/components/Progress/index.ts +2 -0
- package/src/components/Progress/useProgress.test.ts +44 -0
- package/src/components/Progress/useProgress.ts +11 -0
- package/src/components/RadioGroup/RadioGroup.native.tsx +96 -0
- package/src/components/RadioGroup/RadioGroup.stories.tsx +31 -0
- package/src/components/RadioGroup/RadioGroup.types.ts +16 -0
- package/src/components/RadioGroup/RadioGroup.web.tsx +47 -0
- package/src/components/RadioGroup/index.native.ts +2 -0
- package/src/components/RadioGroup/index.ts +2 -0
- package/src/components/RadioGroup/useRadioGroup.test.ts +50 -0
- package/src/components/RadioGroup/useRadioGroup.ts +40 -0
- package/src/components/ResizablePanel/ResizablePanel.native.tsx +75 -0
- package/src/components/ResizablePanel/ResizablePanel.stories.tsx +84 -0
- package/src/components/ResizablePanel/ResizablePanel.types.ts +20 -0
- package/src/components/ResizablePanel/ResizablePanel.web.test.tsx +52 -0
- package/src/components/ResizablePanel/ResizablePanel.web.tsx +77 -0
- package/src/components/ResizablePanel/index.native.ts +2 -0
- package/src/components/ResizablePanel/index.ts +2 -0
- package/src/components/ScrollArea/ScrollArea.native.tsx +43 -0
- package/src/components/ScrollArea/ScrollArea.stories.tsx +46 -0
- package/src/components/ScrollArea/ScrollArea.types.ts +11 -0
- package/src/components/ScrollArea/ScrollArea.web.test.tsx +19 -0
- package/src/components/ScrollArea/ScrollArea.web.tsx +45 -0
- package/src/components/ScrollArea/index.native.ts +2 -0
- package/src/components/ScrollArea/index.ts +2 -0
- package/src/components/Select/Select.native.tsx +203 -0
- package/src/components/Select/Select.stories.tsx +33 -0
- package/src/components/Select/Select.types.ts +14 -0
- package/src/components/Select/Select.web.tsx +204 -0
- package/src/components/Select/index.native.ts +11 -0
- package/src/components/Select/index.ts +2 -0
- package/src/components/Select/useSelect.test.ts +38 -0
- package/src/components/Select/useSelect.ts +33 -0
- package/src/components/Separator/Separator.native.tsx +38 -0
- package/src/components/Separator/Separator.stories.tsx +34 -0
- package/src/components/Separator/Separator.types.ts +7 -0
- package/src/components/Separator/Separator.web.test.tsx +32 -0
- package/src/components/Separator/Separator.web.tsx +38 -0
- package/src/components/Separator/index.native.ts +2 -0
- package/src/components/Separator/index.ts +2 -0
- package/src/components/Sheet/Sheet.native.tsx +246 -0
- package/src/components/Sheet/Sheet.stories.tsx +43 -0
- package/src/components/Sheet/Sheet.types.ts +47 -0
- package/src/components/Sheet/Sheet.web.tsx +144 -0
- package/src/components/Sheet/index.native.ts +2 -0
- package/src/components/Sheet/index.ts +2 -0
- package/src/components/Sheet/useSheet.test.ts +40 -0
- package/src/components/Sheet/useSheet.ts +19 -0
- package/src/components/Sidebar/Sidebar.native.tsx +7 -0
- package/src/components/Sidebar/Sidebar.stories.tsx +100 -0
- package/src/components/Sidebar/Sidebar.types.ts +30 -0
- package/src/components/Sidebar/Sidebar.web.test.tsx +74 -0
- package/src/components/Sidebar/Sidebar.web.tsx +200 -0
- package/src/components/Sidebar/index.native.ts +2 -0
- package/src/components/Sidebar/index.ts +2 -0
- package/src/components/Sidebar/useSidebar.test.ts +51 -0
- package/src/components/Sidebar/useSidebar.ts +26 -0
- package/src/components/Skeleton/Skeleton.native.tsx +45 -0
- package/src/components/Skeleton/Skeleton.stories.tsx +32 -0
- package/src/components/Skeleton/Skeleton.types.ts +6 -0
- package/src/components/Skeleton/Skeleton.web.test.tsx +35 -0
- package/src/components/Skeleton/Skeleton.web.tsx +18 -0
- package/src/components/Skeleton/index.native.ts +2 -0
- package/src/components/Skeleton/index.ts +2 -0
- package/src/components/Slider/Slider.native.tsx +98 -0
- package/src/components/Slider/Slider.stories.tsx +23 -0
- package/src/components/Slider/Slider.types.ts +10 -0
- package/src/components/Slider/Slider.web.tsx +25 -0
- package/src/components/Slider/index.native.ts +2 -0
- package/src/components/Slider/index.ts +2 -0
- package/src/components/Slider/useSlider.test.ts +68 -0
- package/src/components/Slider/useSlider.ts +55 -0
- package/src/components/Switch/Switch.native.tsx +36 -0
- package/src/components/Switch/Switch.stories.tsx +28 -0
- package/src/components/Switch/Switch.types.ts +7 -0
- package/src/components/Switch/Switch.web.test.tsx +44 -0
- package/src/components/Switch/Switch.web.tsx +26 -0
- package/src/components/Switch/index.native.ts +2 -0
- package/src/components/Switch/index.ts +2 -0
- package/src/components/Table/Table.native.tsx +165 -0
- package/src/components/Table/Table.stories.tsx +54 -0
- package/src/components/Table/Table.types.ts +41 -0
- package/src/components/Table/Table.web.test.tsx +77 -0
- package/src/components/Table/Table.web.tsx +119 -0
- package/src/components/Table/index.native.ts +2 -0
- package/src/components/Table/index.ts +2 -0
- package/src/components/Tabs/Tabs.native.tsx +136 -0
- package/src/components/Tabs/Tabs.stories.tsx +35 -0
- package/src/components/Tabs/Tabs.types.ts +25 -0
- package/src/components/Tabs/Tabs.web.tsx +52 -0
- package/src/components/Tabs/index.native.ts +2 -0
- package/src/components/Tabs/index.ts +2 -0
- package/src/components/Tabs/useTabs.test.ts +40 -0
- package/src/components/Tabs/useTabs.ts +20 -0
- package/src/components/Textarea/Textarea.native.tsx +33 -0
- package/src/components/Textarea/Textarea.stories.tsx +27 -0
- package/src/components/Textarea/Textarea.types.ts +10 -0
- package/src/components/Textarea/Textarea.web.test.tsx +33 -0
- package/src/components/Textarea/Textarea.web.tsx +21 -0
- package/src/components/Textarea/index.native.ts +2 -0
- package/src/components/Textarea/index.ts +2 -0
- package/src/components/Toast/Toast.native.tsx +267 -0
- package/src/components/Toast/Toast.stories.tsx +34 -0
- package/src/components/Toast/Toast.types.ts +50 -0
- package/src/components/Toast/Toast.web.tsx +282 -0
- package/src/components/Toast/index.native.ts +17 -0
- package/src/components/Toast/index.ts +11 -0
- package/src/components/Toast/useToast.test.ts +122 -0
- package/src/components/Toast/useToast.ts +64 -0
- package/src/components/Toggle/Toggle.native.tsx +70 -0
- package/src/components/Toggle/Toggle.stories.tsx +34 -0
- package/src/components/Toggle/Toggle.types.ts +13 -0
- package/src/components/Toggle/Toggle.web.tsx +42 -0
- package/src/components/Toggle/index.native.ts +2 -0
- package/src/components/Toggle/index.ts +2 -0
- package/src/components/Toggle/useToggle.test.ts +48 -0
- package/src/components/Toggle/useToggle.ts +37 -0
- package/src/components/ToggleGroup/ToggleGroup.native.tsx +103 -0
- package/src/components/ToggleGroup/ToggleGroup.stories.tsx +24 -0
- package/src/components/ToggleGroup/ToggleGroup.types.ts +22 -0
- package/src/components/ToggleGroup/ToggleGroup.web.tsx +56 -0
- package/src/components/ToggleGroup/index.native.ts +2 -0
- package/src/components/ToggleGroup/index.ts +2 -0
- package/src/components/ToggleGroup/useToggleGroup.test.ts +79 -0
- package/src/components/ToggleGroup/useToggleGroup.ts +63 -0
- package/src/components/Tooltip/Tooltip.native.tsx +7 -0
- package/src/components/Tooltip/Tooltip.stories.tsx +32 -0
- package/src/components/Tooltip/Tooltip.types.ts +27 -0
- package/src/components/Tooltip/Tooltip.web.test.tsx +42 -0
- package/src/components/Tooltip/Tooltip.web.tsx +29 -0
- package/src/components/Tooltip/index.native.ts +2 -0
- package/src/components/Tooltip/index.ts +2 -0
- package/src/components/index.native.ts +50 -0
- package/src/components/index.ts +49 -0
- package/src/hooks/useControllableState.test.ts +89 -0
- package/src/hooks/useControllableState.ts +37 -0
- package/src/index.native.ts +20 -0
- package/src/index.ts +12 -0
- package/src/theme/native.ts +211 -0
- package/src/theme/presets/aurora.ts +56 -0
- package/src/theme/presets/dark.ts +30 -0
- package/src/theme/presets/default.ts +30 -0
- package/src/theme/theme.types.ts +64 -0
- package/src/theme/tokens.ts +31 -0
- package/src/theme/web.ts +123 -0
- package/src/uniwind.d.ts +38 -0
- package/src/utils/cn.native.ts +10 -0
- package/src/utils/cn.test.ts +28 -0
- package/src/utils/cn.ts +6 -0
- package/src/utils/glass.native.ts +22 -0
- package/src/utils/withGlass.native.tsx +59 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,3894 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ThemeProvider,
|
|
3
|
+
auroraPreset,
|
|
4
|
+
darkPreset,
|
|
5
|
+
defaultPreset,
|
|
6
|
+
useTheme
|
|
7
|
+
} from "./chunk-JFJY6DZZ.js";
|
|
8
|
+
|
|
9
|
+
// src/components/Accordion/Accordion.web.tsx
|
|
10
|
+
import { forwardRef } from "react";
|
|
11
|
+
import * as AccordionPrimitive from "@radix-ui/react-accordion";
|
|
12
|
+
|
|
13
|
+
// src/utils/cn.ts
|
|
14
|
+
import { clsx } from "clsx";
|
|
15
|
+
import { twMerge } from "tailwind-merge";
|
|
16
|
+
function cn(...inputs) {
|
|
17
|
+
return twMerge(clsx(inputs));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// src/components/Accordion/Accordion.web.tsx
|
|
21
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
22
|
+
function ChevronDownIcon(props) {
|
|
23
|
+
return /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsx("path", { d: "m6 9 6 6 6-6" }) });
|
|
24
|
+
}
|
|
25
|
+
var Accordion = AccordionPrimitive.Root;
|
|
26
|
+
var AccordionItem = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
27
|
+
AccordionPrimitive.Item,
|
|
28
|
+
{
|
|
29
|
+
ref,
|
|
30
|
+
className: cn("border-b", className),
|
|
31
|
+
...props
|
|
32
|
+
}
|
|
33
|
+
));
|
|
34
|
+
AccordionItem.displayName = "AccordionItem";
|
|
35
|
+
var AccordionTrigger = forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
|
|
36
|
+
AccordionPrimitive.Trigger,
|
|
37
|
+
{
|
|
38
|
+
ref,
|
|
39
|
+
className: cn(
|
|
40
|
+
"flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180",
|
|
41
|
+
className
|
|
42
|
+
),
|
|
43
|
+
...props,
|
|
44
|
+
children: [
|
|
45
|
+
children,
|
|
46
|
+
/* @__PURE__ */ jsx(ChevronDownIcon, { className: "h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" })
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
) }));
|
|
50
|
+
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
51
|
+
var AccordionContent = forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
52
|
+
AccordionPrimitive.Content,
|
|
53
|
+
{
|
|
54
|
+
ref,
|
|
55
|
+
className: "overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
56
|
+
...props,
|
|
57
|
+
children: /* @__PURE__ */ jsx("div", { className: cn("pb-4 pt-0", className), children })
|
|
58
|
+
}
|
|
59
|
+
));
|
|
60
|
+
AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
|
61
|
+
|
|
62
|
+
// src/components/Alert/Alert.web.tsx
|
|
63
|
+
import { forwardRef as forwardRef2 } from "react";
|
|
64
|
+
import { cva } from "class-variance-authority";
|
|
65
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
66
|
+
var alertVariants = cva(
|
|
67
|
+
"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg~*]:pl-7",
|
|
68
|
+
{
|
|
69
|
+
variants: {
|
|
70
|
+
variant: {
|
|
71
|
+
default: "bg-background text-foreground",
|
|
72
|
+
destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
defaultVariants: {
|
|
76
|
+
variant: "default"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
var Alert = forwardRef2(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
81
|
+
"div",
|
|
82
|
+
{
|
|
83
|
+
ref,
|
|
84
|
+
role: "alert",
|
|
85
|
+
className: cn(alertVariants({ variant }), className),
|
|
86
|
+
...props
|
|
87
|
+
}
|
|
88
|
+
));
|
|
89
|
+
Alert.displayName = "Alert";
|
|
90
|
+
var AlertTitle = forwardRef2(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
91
|
+
"h5",
|
|
92
|
+
{
|
|
93
|
+
ref,
|
|
94
|
+
className: cn("mb-1 font-medium leading-none tracking-tight", className),
|
|
95
|
+
...props
|
|
96
|
+
}
|
|
97
|
+
));
|
|
98
|
+
AlertTitle.displayName = "AlertTitle";
|
|
99
|
+
var AlertDescription = forwardRef2(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
100
|
+
"div",
|
|
101
|
+
{
|
|
102
|
+
ref,
|
|
103
|
+
className: cn("text-sm [&_p]:leading-relaxed", className),
|
|
104
|
+
...props
|
|
105
|
+
}
|
|
106
|
+
));
|
|
107
|
+
AlertDescription.displayName = "AlertDescription";
|
|
108
|
+
|
|
109
|
+
// src/components/AlertDialog/AlertDialog.web.tsx
|
|
110
|
+
import { forwardRef as forwardRef4 } from "react";
|
|
111
|
+
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
112
|
+
|
|
113
|
+
// src/components/Button/Button.web.tsx
|
|
114
|
+
import { forwardRef as forwardRef3 } from "react";
|
|
115
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
116
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
117
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
118
|
+
var buttonVariants = cva2(
|
|
119
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
120
|
+
{
|
|
121
|
+
variants: {
|
|
122
|
+
variant: {
|
|
123
|
+
default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
124
|
+
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
125
|
+
outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
126
|
+
secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
|
127
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
128
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
129
|
+
},
|
|
130
|
+
size: {
|
|
131
|
+
default: "h-9 px-4 py-2",
|
|
132
|
+
sm: "h-8 rounded-md px-3 text-xs",
|
|
133
|
+
lg: "h-10 rounded-md px-8",
|
|
134
|
+
icon: "h-9 w-9"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
defaultVariants: {
|
|
138
|
+
variant: "default",
|
|
139
|
+
size: "default"
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
);
|
|
143
|
+
var Button = forwardRef3(
|
|
144
|
+
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
145
|
+
const Comp = asChild ? Slot : "button";
|
|
146
|
+
return /* @__PURE__ */ jsx3(
|
|
147
|
+
Comp,
|
|
148
|
+
{
|
|
149
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
150
|
+
ref,
|
|
151
|
+
...props
|
|
152
|
+
}
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
);
|
|
156
|
+
Button.displayName = "Button";
|
|
157
|
+
|
|
158
|
+
// src/components/AlertDialog/AlertDialog.web.tsx
|
|
159
|
+
import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
160
|
+
var AlertDialog = AlertDialogPrimitive.Root;
|
|
161
|
+
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
162
|
+
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
163
|
+
var AlertDialogOverlay = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
164
|
+
AlertDialogPrimitive.Overlay,
|
|
165
|
+
{
|
|
166
|
+
className: cn(
|
|
167
|
+
"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
168
|
+
className
|
|
169
|
+
),
|
|
170
|
+
...props,
|
|
171
|
+
ref
|
|
172
|
+
}
|
|
173
|
+
));
|
|
174
|
+
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
175
|
+
var AlertDialogContent = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsxs2(AlertDialogPortal, { children: [
|
|
176
|
+
/* @__PURE__ */ jsx4(AlertDialogOverlay, {}),
|
|
177
|
+
/* @__PURE__ */ jsx4(
|
|
178
|
+
AlertDialogPrimitive.Content,
|
|
179
|
+
{
|
|
180
|
+
ref,
|
|
181
|
+
className: cn(
|
|
182
|
+
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background text-foreground p-6 shadow-lg transition-opacity duration-200 data-[state=open]:opacity-100 data-[state=closed]:opacity-0 sm:rounded-lg",
|
|
183
|
+
className
|
|
184
|
+
),
|
|
185
|
+
...props
|
|
186
|
+
}
|
|
187
|
+
)
|
|
188
|
+
] }));
|
|
189
|
+
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
|
|
190
|
+
var AlertDialogHeader = ({
|
|
191
|
+
className,
|
|
192
|
+
...props
|
|
193
|
+
}) => /* @__PURE__ */ jsx4(
|
|
194
|
+
"div",
|
|
195
|
+
{
|
|
196
|
+
className: cn(
|
|
197
|
+
"flex flex-col space-y-2 text-center sm:text-left",
|
|
198
|
+
className
|
|
199
|
+
),
|
|
200
|
+
...props
|
|
201
|
+
}
|
|
202
|
+
);
|
|
203
|
+
AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
204
|
+
var AlertDialogFooter = ({
|
|
205
|
+
className,
|
|
206
|
+
...props
|
|
207
|
+
}) => /* @__PURE__ */ jsx4(
|
|
208
|
+
"div",
|
|
209
|
+
{
|
|
210
|
+
className: cn(
|
|
211
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
212
|
+
className
|
|
213
|
+
),
|
|
214
|
+
...props
|
|
215
|
+
}
|
|
216
|
+
);
|
|
217
|
+
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
218
|
+
var AlertDialogTitle = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
219
|
+
AlertDialogPrimitive.Title,
|
|
220
|
+
{
|
|
221
|
+
ref,
|
|
222
|
+
className: cn("text-lg font-semibold", className),
|
|
223
|
+
...props
|
|
224
|
+
}
|
|
225
|
+
));
|
|
226
|
+
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
227
|
+
var AlertDialogDescription = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
228
|
+
AlertDialogPrimitive.Description,
|
|
229
|
+
{
|
|
230
|
+
ref,
|
|
231
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
232
|
+
...props
|
|
233
|
+
}
|
|
234
|
+
));
|
|
235
|
+
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
236
|
+
var AlertDialogAction = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
237
|
+
AlertDialogPrimitive.Action,
|
|
238
|
+
{
|
|
239
|
+
ref,
|
|
240
|
+
className: cn(buttonVariants(), className),
|
|
241
|
+
...props
|
|
242
|
+
}
|
|
243
|
+
));
|
|
244
|
+
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
245
|
+
var AlertDialogCancel = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
246
|
+
AlertDialogPrimitive.Cancel,
|
|
247
|
+
{
|
|
248
|
+
ref,
|
|
249
|
+
className: cn(
|
|
250
|
+
buttonVariants({ variant: "outline" }),
|
|
251
|
+
"mt-2 sm:mt-0",
|
|
252
|
+
className
|
|
253
|
+
),
|
|
254
|
+
...props
|
|
255
|
+
}
|
|
256
|
+
));
|
|
257
|
+
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
258
|
+
|
|
259
|
+
// src/components/AspectRatio/AspectRatio.web.tsx
|
|
260
|
+
import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
|
|
261
|
+
var AspectRatio = AspectRatioPrimitive.Root;
|
|
262
|
+
|
|
263
|
+
// src/components/Avatar/Avatar.web.tsx
|
|
264
|
+
import { forwardRef as forwardRef5 } from "react";
|
|
265
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
266
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
267
|
+
var Avatar = forwardRef5(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
|
|
268
|
+
AvatarPrimitive.Root,
|
|
269
|
+
{
|
|
270
|
+
ref,
|
|
271
|
+
className: cn(
|
|
272
|
+
"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
|
|
273
|
+
className
|
|
274
|
+
),
|
|
275
|
+
...props
|
|
276
|
+
}
|
|
277
|
+
));
|
|
278
|
+
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
279
|
+
var AvatarImage = forwardRef5(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
|
|
280
|
+
AvatarPrimitive.Image,
|
|
281
|
+
{
|
|
282
|
+
ref,
|
|
283
|
+
className: cn("aspect-square h-full w-full", className),
|
|
284
|
+
...props
|
|
285
|
+
}
|
|
286
|
+
));
|
|
287
|
+
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
288
|
+
var AvatarFallback = forwardRef5(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
|
|
289
|
+
AvatarPrimitive.Fallback,
|
|
290
|
+
{
|
|
291
|
+
ref,
|
|
292
|
+
className: cn(
|
|
293
|
+
"flex h-full w-full items-center justify-center rounded-full bg-muted",
|
|
294
|
+
className
|
|
295
|
+
),
|
|
296
|
+
...props
|
|
297
|
+
}
|
|
298
|
+
));
|
|
299
|
+
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
300
|
+
|
|
301
|
+
// src/components/Badge/Badge.web.tsx
|
|
302
|
+
import { forwardRef as forwardRef6 } from "react";
|
|
303
|
+
import { cva as cva3 } from "class-variance-authority";
|
|
304
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
305
|
+
var badgeVariants = cva3(
|
|
306
|
+
"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
307
|
+
{
|
|
308
|
+
variants: {
|
|
309
|
+
variant: {
|
|
310
|
+
default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
|
|
311
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
312
|
+
destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
|
|
313
|
+
outline: "text-foreground"
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
defaultVariants: {
|
|
317
|
+
variant: "default"
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
);
|
|
321
|
+
var Badge = forwardRef6(
|
|
322
|
+
({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx6(
|
|
323
|
+
"div",
|
|
324
|
+
{
|
|
325
|
+
ref,
|
|
326
|
+
className: cn(badgeVariants({ variant }), className),
|
|
327
|
+
...props
|
|
328
|
+
}
|
|
329
|
+
)
|
|
330
|
+
);
|
|
331
|
+
Badge.displayName = "Badge";
|
|
332
|
+
|
|
333
|
+
// src/components/Breadcrumb/Breadcrumb.web.tsx
|
|
334
|
+
import { forwardRef as forwardRef7 } from "react";
|
|
335
|
+
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
336
|
+
import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
337
|
+
function ChevronRightIcon(props) {
|
|
338
|
+
return /* @__PURE__ */ jsx7("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsx7("path", { d: "m9 18 6-6-6-6" }) });
|
|
339
|
+
}
|
|
340
|
+
function MoreHorizontalIcon(props) {
|
|
341
|
+
return /* @__PURE__ */ jsxs3("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [
|
|
342
|
+
/* @__PURE__ */ jsx7("circle", { cx: "12", cy: "12", r: "1" }),
|
|
343
|
+
/* @__PURE__ */ jsx7("circle", { cx: "19", cy: "12", r: "1" }),
|
|
344
|
+
/* @__PURE__ */ jsx7("circle", { cx: "5", cy: "12", r: "1" })
|
|
345
|
+
] });
|
|
346
|
+
}
|
|
347
|
+
var Breadcrumb = forwardRef7(({ ...props }, ref) => /* @__PURE__ */ jsx7("nav", { ref, "aria-label": "breadcrumb", ...props }));
|
|
348
|
+
Breadcrumb.displayName = "Breadcrumb";
|
|
349
|
+
var BreadcrumbList = forwardRef7(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
|
|
350
|
+
"ol",
|
|
351
|
+
{
|
|
352
|
+
ref,
|
|
353
|
+
className: cn(
|
|
354
|
+
"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",
|
|
355
|
+
className
|
|
356
|
+
),
|
|
357
|
+
...props
|
|
358
|
+
}
|
|
359
|
+
));
|
|
360
|
+
BreadcrumbList.displayName = "BreadcrumbList";
|
|
361
|
+
var BreadcrumbItem = forwardRef7(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
|
|
362
|
+
"li",
|
|
363
|
+
{
|
|
364
|
+
ref,
|
|
365
|
+
className: cn("inline-flex items-center gap-1.5", className),
|
|
366
|
+
...props
|
|
367
|
+
}
|
|
368
|
+
));
|
|
369
|
+
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
370
|
+
var BreadcrumbLink = forwardRef7(({ asChild, className, ...props }, ref) => {
|
|
371
|
+
const Comp = asChild ? Slot2 : "a";
|
|
372
|
+
return /* @__PURE__ */ jsx7(
|
|
373
|
+
Comp,
|
|
374
|
+
{
|
|
375
|
+
ref,
|
|
376
|
+
className: cn("transition-colors hover:text-foreground", className),
|
|
377
|
+
...props
|
|
378
|
+
}
|
|
379
|
+
);
|
|
380
|
+
});
|
|
381
|
+
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
382
|
+
var BreadcrumbPage = forwardRef7(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
|
|
383
|
+
"span",
|
|
384
|
+
{
|
|
385
|
+
ref,
|
|
386
|
+
role: "link",
|
|
387
|
+
"aria-disabled": "true",
|
|
388
|
+
"aria-current": "page",
|
|
389
|
+
className: cn("font-normal text-foreground", className),
|
|
390
|
+
...props
|
|
391
|
+
}
|
|
392
|
+
));
|
|
393
|
+
BreadcrumbPage.displayName = "BreadcrumbPage";
|
|
394
|
+
var BreadcrumbSeparator = ({
|
|
395
|
+
children,
|
|
396
|
+
className,
|
|
397
|
+
...props
|
|
398
|
+
}) => /* @__PURE__ */ jsx7(
|
|
399
|
+
"li",
|
|
400
|
+
{
|
|
401
|
+
role: "presentation",
|
|
402
|
+
"aria-hidden": "true",
|
|
403
|
+
className: cn("[&>svg]:h-3.5 [&>svg]:w-3.5", className),
|
|
404
|
+
...props,
|
|
405
|
+
children: children ?? /* @__PURE__ */ jsx7(ChevronRightIcon, {})
|
|
406
|
+
}
|
|
407
|
+
);
|
|
408
|
+
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
|
|
409
|
+
var BreadcrumbEllipsis = ({
|
|
410
|
+
className,
|
|
411
|
+
...props
|
|
412
|
+
}) => /* @__PURE__ */ jsxs3(
|
|
413
|
+
"span",
|
|
414
|
+
{
|
|
415
|
+
role: "presentation",
|
|
416
|
+
"aria-hidden": "true",
|
|
417
|
+
className: cn("flex h-9 w-9 items-center justify-center", className),
|
|
418
|
+
...props,
|
|
419
|
+
children: [
|
|
420
|
+
/* @__PURE__ */ jsx7(MoreHorizontalIcon, { className: "h-4 w-4" }),
|
|
421
|
+
/* @__PURE__ */ jsx7("span", { className: "sr-only", children: "More" })
|
|
422
|
+
]
|
|
423
|
+
}
|
|
424
|
+
);
|
|
425
|
+
BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
|
|
426
|
+
|
|
427
|
+
// src/components/Calendar/Calendar.web.tsx
|
|
428
|
+
import { forwardRef as forwardRef8, useState } from "react";
|
|
429
|
+
import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
430
|
+
var DAYS = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
|
|
431
|
+
function getDaysInMonth(year, month) {
|
|
432
|
+
return new Date(year, month + 1, 0).getDate();
|
|
433
|
+
}
|
|
434
|
+
function getFirstDayOfMonth(year, month) {
|
|
435
|
+
return new Date(year, month, 1).getDay();
|
|
436
|
+
}
|
|
437
|
+
function isSameDay(a, b) {
|
|
438
|
+
return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
|
|
439
|
+
}
|
|
440
|
+
function isToday(date) {
|
|
441
|
+
return isSameDay(date, /* @__PURE__ */ new Date());
|
|
442
|
+
}
|
|
443
|
+
var Calendar = forwardRef8(
|
|
444
|
+
({
|
|
445
|
+
selected,
|
|
446
|
+
onSelect,
|
|
447
|
+
month: controlledMonth,
|
|
448
|
+
onMonthChange,
|
|
449
|
+
disabled = false,
|
|
450
|
+
className,
|
|
451
|
+
...props
|
|
452
|
+
}, ref) => {
|
|
453
|
+
const [internalMonth, setInternalMonth] = useState(
|
|
454
|
+
controlledMonth || selected || /* @__PURE__ */ new Date()
|
|
455
|
+
);
|
|
456
|
+
const displayMonth = controlledMonth || internalMonth;
|
|
457
|
+
const year = displayMonth.getFullYear();
|
|
458
|
+
const monthIndex = displayMonth.getMonth();
|
|
459
|
+
const daysInMonth = getDaysInMonth(year, monthIndex);
|
|
460
|
+
const firstDay = getFirstDayOfMonth(year, monthIndex);
|
|
461
|
+
const monthLabel = displayMonth.toLocaleString("default", {
|
|
462
|
+
month: "long",
|
|
463
|
+
year: "numeric"
|
|
464
|
+
});
|
|
465
|
+
const goToPrevMonth = () => {
|
|
466
|
+
const prev = new Date(year, monthIndex - 1, 1);
|
|
467
|
+
if (controlledMonth === void 0) setInternalMonth(prev);
|
|
468
|
+
onMonthChange?.(prev);
|
|
469
|
+
};
|
|
470
|
+
const goToNextMonth = () => {
|
|
471
|
+
const next = new Date(year, monthIndex + 1, 1);
|
|
472
|
+
if (controlledMonth === void 0) setInternalMonth(next);
|
|
473
|
+
onMonthChange?.(next);
|
|
474
|
+
};
|
|
475
|
+
const handleDayClick = (day) => {
|
|
476
|
+
if (disabled) return;
|
|
477
|
+
const date = new Date(year, monthIndex, day);
|
|
478
|
+
onSelect?.(date);
|
|
479
|
+
};
|
|
480
|
+
const cells = [];
|
|
481
|
+
for (let i = 0; i < firstDay; i++) {
|
|
482
|
+
cells.push(null);
|
|
483
|
+
}
|
|
484
|
+
for (let d = 1; d <= daysInMonth; d++) {
|
|
485
|
+
cells.push(d);
|
|
486
|
+
}
|
|
487
|
+
return /* @__PURE__ */ jsxs4("div", { ref, className: cn("p-3", className), ...props, children: [
|
|
488
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex items-center justify-between mb-4", children: [
|
|
489
|
+
/* @__PURE__ */ jsx8(
|
|
490
|
+
"button",
|
|
491
|
+
{
|
|
492
|
+
type: "button",
|
|
493
|
+
onClick: goToPrevMonth,
|
|
494
|
+
className: "inline-flex h-7 w-7 items-center justify-center rounded-md border border-input bg-transparent text-sm shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
495
|
+
disabled,
|
|
496
|
+
children: /* @__PURE__ */ jsx8("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx8("path", { d: "m15 18-6-6 6-6" }) })
|
|
497
|
+
}
|
|
498
|
+
),
|
|
499
|
+
/* @__PURE__ */ jsx8("div", { className: "text-sm font-medium", children: monthLabel }),
|
|
500
|
+
/* @__PURE__ */ jsx8(
|
|
501
|
+
"button",
|
|
502
|
+
{
|
|
503
|
+
type: "button",
|
|
504
|
+
onClick: goToNextMonth,
|
|
505
|
+
className: "inline-flex h-7 w-7 items-center justify-center rounded-md border border-input bg-transparent text-sm shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
506
|
+
disabled,
|
|
507
|
+
children: /* @__PURE__ */ jsx8("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx8("path", { d: "m9 18 6-6-6-6" }) })
|
|
508
|
+
}
|
|
509
|
+
)
|
|
510
|
+
] }),
|
|
511
|
+
/* @__PURE__ */ jsxs4("div", { className: "grid grid-cols-7 gap-0", children: [
|
|
512
|
+
DAYS.map((day) => /* @__PURE__ */ jsx8(
|
|
513
|
+
"div",
|
|
514
|
+
{
|
|
515
|
+
className: "flex h-8 w-8 items-center justify-center text-[0.8rem] text-muted-foreground font-medium",
|
|
516
|
+
children: day
|
|
517
|
+
},
|
|
518
|
+
day
|
|
519
|
+
)),
|
|
520
|
+
cells.map((day, i) => {
|
|
521
|
+
if (day === null) {
|
|
522
|
+
return /* @__PURE__ */ jsx8("div", { className: "h-8 w-8" }, `empty-${i}`);
|
|
523
|
+
}
|
|
524
|
+
const date = new Date(year, monthIndex, day);
|
|
525
|
+
const isSelected = selected && isSameDay(date, selected);
|
|
526
|
+
const isTodayDate = isToday(date);
|
|
527
|
+
return /* @__PURE__ */ jsx8(
|
|
528
|
+
"button",
|
|
529
|
+
{
|
|
530
|
+
type: "button",
|
|
531
|
+
onClick: () => handleDayClick(day),
|
|
532
|
+
disabled,
|
|
533
|
+
className: cn(
|
|
534
|
+
"inline-flex h-8 w-8 items-center justify-center rounded-md text-sm transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
|
|
535
|
+
isSelected && "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground",
|
|
536
|
+
isTodayDate && !isSelected && "bg-accent text-accent-foreground"
|
|
537
|
+
),
|
|
538
|
+
children: day
|
|
539
|
+
},
|
|
540
|
+
day
|
|
541
|
+
);
|
|
542
|
+
})
|
|
543
|
+
] })
|
|
544
|
+
] });
|
|
545
|
+
}
|
|
546
|
+
);
|
|
547
|
+
Calendar.displayName = "Calendar";
|
|
548
|
+
|
|
549
|
+
// src/components/Card/Card.web.tsx
|
|
550
|
+
import { forwardRef as forwardRef9 } from "react";
|
|
551
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
552
|
+
var Card = forwardRef9(
|
|
553
|
+
({ className, children, ...props }, ref) => {
|
|
554
|
+
return /* @__PURE__ */ jsx9(
|
|
555
|
+
"div",
|
|
556
|
+
{
|
|
557
|
+
ref,
|
|
558
|
+
className: cn(
|
|
559
|
+
"rounded-xl border border-border bg-card text-card-foreground shadow-sm",
|
|
560
|
+
className
|
|
561
|
+
),
|
|
562
|
+
...props,
|
|
563
|
+
children
|
|
564
|
+
}
|
|
565
|
+
);
|
|
566
|
+
}
|
|
567
|
+
);
|
|
568
|
+
Card.displayName = "Card";
|
|
569
|
+
|
|
570
|
+
// src/components/Carousel/Carousel.web.tsx
|
|
571
|
+
import {
|
|
572
|
+
forwardRef as forwardRef10,
|
|
573
|
+
createContext,
|
|
574
|
+
useContext,
|
|
575
|
+
useState as useState2,
|
|
576
|
+
useCallback,
|
|
577
|
+
Children
|
|
578
|
+
} from "react";
|
|
579
|
+
import { cva as cva4 } from "class-variance-authority";
|
|
580
|
+
import { jsx as jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
581
|
+
var CarouselContext = createContext(null);
|
|
582
|
+
function useCarousel() {
|
|
583
|
+
const context = useContext(CarouselContext);
|
|
584
|
+
if (!context) {
|
|
585
|
+
throw new Error("useCarousel must be used within a <Carousel />");
|
|
586
|
+
}
|
|
587
|
+
return context;
|
|
588
|
+
}
|
|
589
|
+
var carouselContentVariants = cva4(
|
|
590
|
+
"flex transition-transform duration-300 ease-in-out",
|
|
591
|
+
{
|
|
592
|
+
variants: {
|
|
593
|
+
orientation: {
|
|
594
|
+
horizontal: "-ml-4",
|
|
595
|
+
vertical: "-mt-4 flex-col"
|
|
596
|
+
}
|
|
597
|
+
},
|
|
598
|
+
defaultVariants: {
|
|
599
|
+
orientation: "horizontal"
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
);
|
|
603
|
+
var carouselItemVariants = cva4("min-w-0 shrink-0 grow-0 basis-full", {
|
|
604
|
+
variants: {
|
|
605
|
+
orientation: {
|
|
606
|
+
horizontal: "pl-4",
|
|
607
|
+
vertical: "pt-4"
|
|
608
|
+
}
|
|
609
|
+
},
|
|
610
|
+
defaultVariants: {
|
|
611
|
+
orientation: "horizontal"
|
|
612
|
+
}
|
|
613
|
+
});
|
|
614
|
+
var carouselPreviousVariants = cva4(
|
|
615
|
+
"absolute inline-flex h-8 w-8 items-center justify-center rounded-full border border-input bg-background shadow-sm transition-colors hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50",
|
|
616
|
+
{
|
|
617
|
+
variants: {
|
|
618
|
+
orientation: {
|
|
619
|
+
horizontal: "-left-12 top-1/2 -translate-y-1/2",
|
|
620
|
+
vertical: "-top-12 left-1/2 -translate-x-1/2 rotate-90"
|
|
621
|
+
}
|
|
622
|
+
},
|
|
623
|
+
defaultVariants: {
|
|
624
|
+
orientation: "horizontal"
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
);
|
|
628
|
+
var carouselNextVariants = cva4(
|
|
629
|
+
"absolute inline-flex h-8 w-8 items-center justify-center rounded-full border border-input bg-background shadow-sm transition-colors hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50",
|
|
630
|
+
{
|
|
631
|
+
variants: {
|
|
632
|
+
orientation: {
|
|
633
|
+
horizontal: "-right-12 top-1/2 -translate-y-1/2",
|
|
634
|
+
vertical: "-bottom-12 left-1/2 -translate-x-1/2 rotate-90"
|
|
635
|
+
}
|
|
636
|
+
},
|
|
637
|
+
defaultVariants: {
|
|
638
|
+
orientation: "horizontal"
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
);
|
|
642
|
+
var Carousel = forwardRef10(({ className, orientation = "horizontal", children, ...props }, ref) => {
|
|
643
|
+
const [currentIndex, setCurrentIndex] = useState2(0);
|
|
644
|
+
const [totalItems, setTotalItems] = useState2(0);
|
|
645
|
+
const canScrollPrevious = currentIndex > 0;
|
|
646
|
+
const canScrollNext = currentIndex < totalItems - 1;
|
|
647
|
+
const scrollPrevious = useCallback(() => {
|
|
648
|
+
setCurrentIndex((prev) => Math.max(0, prev - 1));
|
|
649
|
+
}, []);
|
|
650
|
+
const scrollNext = useCallback(() => {
|
|
651
|
+
setCurrentIndex((prev) => Math.min(totalItems - 1, prev + 1));
|
|
652
|
+
}, [totalItems]);
|
|
653
|
+
return /* @__PURE__ */ jsx10(
|
|
654
|
+
CarouselContext.Provider,
|
|
655
|
+
{
|
|
656
|
+
value: {
|
|
657
|
+
orientation,
|
|
658
|
+
currentIndex,
|
|
659
|
+
totalItems,
|
|
660
|
+
scrollPrevious,
|
|
661
|
+
scrollNext,
|
|
662
|
+
canScrollPrevious,
|
|
663
|
+
canScrollNext,
|
|
664
|
+
setTotalItems
|
|
665
|
+
},
|
|
666
|
+
children: /* @__PURE__ */ jsx10(
|
|
667
|
+
"div",
|
|
668
|
+
{
|
|
669
|
+
ref,
|
|
670
|
+
role: "region",
|
|
671
|
+
"aria-roledescription": "carousel",
|
|
672
|
+
className: cn("relative", className),
|
|
673
|
+
...props,
|
|
674
|
+
children
|
|
675
|
+
}
|
|
676
|
+
)
|
|
677
|
+
}
|
|
678
|
+
);
|
|
679
|
+
});
|
|
680
|
+
Carousel.displayName = "Carousel";
|
|
681
|
+
var CarouselContent = forwardRef10(({ className, children, ...props }, ref) => {
|
|
682
|
+
const { orientation, currentIndex, setTotalItems } = useCarousel();
|
|
683
|
+
const items = Children.toArray(children);
|
|
684
|
+
if (items.length !== 0) {
|
|
685
|
+
queueMicrotask(() => setTotalItems(items.length));
|
|
686
|
+
}
|
|
687
|
+
return /* @__PURE__ */ jsx10("div", { className: "overflow-hidden", ref, children: /* @__PURE__ */ jsx10(
|
|
688
|
+
"div",
|
|
689
|
+
{
|
|
690
|
+
className: cn(carouselContentVariants({ orientation }), className),
|
|
691
|
+
style: {
|
|
692
|
+
transform: orientation === "horizontal" ? `translateX(-${currentIndex * 100}%)` : `translateY(-${currentIndex * 100}%)`
|
|
693
|
+
},
|
|
694
|
+
...props,
|
|
695
|
+
children
|
|
696
|
+
}
|
|
697
|
+
) });
|
|
698
|
+
});
|
|
699
|
+
CarouselContent.displayName = "CarouselContent";
|
|
700
|
+
var CarouselItem = forwardRef10(({ className, ...props }, ref) => {
|
|
701
|
+
const { orientation } = useCarousel();
|
|
702
|
+
return /* @__PURE__ */ jsx10(
|
|
703
|
+
"div",
|
|
704
|
+
{
|
|
705
|
+
ref,
|
|
706
|
+
role: "group",
|
|
707
|
+
"aria-roledescription": "slide",
|
|
708
|
+
className: cn(carouselItemVariants({ orientation }), className),
|
|
709
|
+
...props
|
|
710
|
+
}
|
|
711
|
+
);
|
|
712
|
+
});
|
|
713
|
+
CarouselItem.displayName = "CarouselItem";
|
|
714
|
+
var CarouselPrevious = forwardRef10(({ className, children, ...props }, ref) => {
|
|
715
|
+
const { orientation, scrollPrevious, canScrollPrevious } = useCarousel();
|
|
716
|
+
return /* @__PURE__ */ jsxs5(
|
|
717
|
+
"button",
|
|
718
|
+
{
|
|
719
|
+
ref,
|
|
720
|
+
className: cn(carouselPreviousVariants({ orientation }), className),
|
|
721
|
+
disabled: !canScrollPrevious,
|
|
722
|
+
onClick: scrollPrevious,
|
|
723
|
+
"aria-label": "Previous slide",
|
|
724
|
+
...props,
|
|
725
|
+
children: [
|
|
726
|
+
children ?? /* @__PURE__ */ jsx10(
|
|
727
|
+
"svg",
|
|
728
|
+
{
|
|
729
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
730
|
+
width: "16",
|
|
731
|
+
height: "16",
|
|
732
|
+
viewBox: "0 0 24 24",
|
|
733
|
+
fill: "none",
|
|
734
|
+
stroke: "currentColor",
|
|
735
|
+
strokeWidth: "2",
|
|
736
|
+
strokeLinecap: "round",
|
|
737
|
+
strokeLinejoin: "round",
|
|
738
|
+
children: /* @__PURE__ */ jsx10("path", { d: "m15 18-6-6 6-6" })
|
|
739
|
+
}
|
|
740
|
+
),
|
|
741
|
+
/* @__PURE__ */ jsx10("span", { className: "sr-only", children: "Previous slide" })
|
|
742
|
+
]
|
|
743
|
+
}
|
|
744
|
+
);
|
|
745
|
+
});
|
|
746
|
+
CarouselPrevious.displayName = "CarouselPrevious";
|
|
747
|
+
var CarouselNext = forwardRef10(({ className, children, ...props }, ref) => {
|
|
748
|
+
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
749
|
+
return /* @__PURE__ */ jsxs5(
|
|
750
|
+
"button",
|
|
751
|
+
{
|
|
752
|
+
ref,
|
|
753
|
+
className: cn(carouselNextVariants({ orientation }), className),
|
|
754
|
+
disabled: !canScrollNext,
|
|
755
|
+
onClick: scrollNext,
|
|
756
|
+
"aria-label": "Next slide",
|
|
757
|
+
...props,
|
|
758
|
+
children: [
|
|
759
|
+
children ?? /* @__PURE__ */ jsx10(
|
|
760
|
+
"svg",
|
|
761
|
+
{
|
|
762
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
763
|
+
width: "16",
|
|
764
|
+
height: "16",
|
|
765
|
+
viewBox: "0 0 24 24",
|
|
766
|
+
fill: "none",
|
|
767
|
+
stroke: "currentColor",
|
|
768
|
+
strokeWidth: "2",
|
|
769
|
+
strokeLinecap: "round",
|
|
770
|
+
strokeLinejoin: "round",
|
|
771
|
+
children: /* @__PURE__ */ jsx10("path", { d: "m9 18 6-6-6-6" })
|
|
772
|
+
}
|
|
773
|
+
),
|
|
774
|
+
/* @__PURE__ */ jsx10("span", { className: "sr-only", children: "Next slide" })
|
|
775
|
+
]
|
|
776
|
+
}
|
|
777
|
+
);
|
|
778
|
+
});
|
|
779
|
+
CarouselNext.displayName = "CarouselNext";
|
|
780
|
+
|
|
781
|
+
// src/components/Chart/Chart.web.tsx
|
|
782
|
+
import { forwardRef as forwardRef11, useMemo } from "react";
|
|
783
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
784
|
+
var Chart = forwardRef11(({ className, config, children, ...props }, ref) => {
|
|
785
|
+
const cssVars = useMemo(() => {
|
|
786
|
+
const vars = {};
|
|
787
|
+
Object.entries(config).forEach(([key, value]) => {
|
|
788
|
+
if (value.color) {
|
|
789
|
+
vars[`--color-${key}`] = value.color;
|
|
790
|
+
}
|
|
791
|
+
});
|
|
792
|
+
return vars;
|
|
793
|
+
}, [config]);
|
|
794
|
+
return /* @__PURE__ */ jsx11(
|
|
795
|
+
"div",
|
|
796
|
+
{
|
|
797
|
+
ref,
|
|
798
|
+
className: cn(
|
|
799
|
+
"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-none [&_.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[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",
|
|
800
|
+
className
|
|
801
|
+
),
|
|
802
|
+
style: cssVars,
|
|
803
|
+
...props,
|
|
804
|
+
children
|
|
805
|
+
}
|
|
806
|
+
);
|
|
807
|
+
});
|
|
808
|
+
Chart.displayName = "Chart";
|
|
809
|
+
|
|
810
|
+
// src/components/Checkbox/Checkbox.web.tsx
|
|
811
|
+
import { forwardRef as forwardRef12 } from "react";
|
|
812
|
+
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
813
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
814
|
+
var Checkbox = forwardRef12(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
|
|
815
|
+
CheckboxPrimitive.Root,
|
|
816
|
+
{
|
|
817
|
+
ref,
|
|
818
|
+
className: cn(
|
|
819
|
+
"peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
|
|
820
|
+
className
|
|
821
|
+
),
|
|
822
|
+
...props,
|
|
823
|
+
children: /* @__PURE__ */ jsx12(
|
|
824
|
+
CheckboxPrimitive.Indicator,
|
|
825
|
+
{
|
|
826
|
+
className: cn("flex items-center justify-center text-current"),
|
|
827
|
+
children: /* @__PURE__ */ jsx12(
|
|
828
|
+
"svg",
|
|
829
|
+
{
|
|
830
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
831
|
+
viewBox: "0 0 24 24",
|
|
832
|
+
fill: "none",
|
|
833
|
+
stroke: "currentColor",
|
|
834
|
+
strokeWidth: "3",
|
|
835
|
+
strokeLinecap: "round",
|
|
836
|
+
strokeLinejoin: "round",
|
|
837
|
+
className: "h-3.5 w-3.5",
|
|
838
|
+
children: /* @__PURE__ */ jsx12("polyline", { points: "20 6 9 17 4 12" })
|
|
839
|
+
}
|
|
840
|
+
)
|
|
841
|
+
}
|
|
842
|
+
)
|
|
843
|
+
}
|
|
844
|
+
));
|
|
845
|
+
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
846
|
+
|
|
847
|
+
// src/components/Collapsible/Collapsible.web.tsx
|
|
848
|
+
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
|
|
849
|
+
var Collapsible = CollapsiblePrimitive.Root;
|
|
850
|
+
var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
|
|
851
|
+
var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
852
|
+
|
|
853
|
+
// src/components/Combobox/Combobox.web.tsx
|
|
854
|
+
import { forwardRef as forwardRef13, useState as useState3 } from "react";
|
|
855
|
+
import * as Popover from "@radix-ui/react-popover";
|
|
856
|
+
import { jsx as jsx13, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
857
|
+
var Combobox = forwardRef13(
|
|
858
|
+
({
|
|
859
|
+
options,
|
|
860
|
+
value,
|
|
861
|
+
onValueChange,
|
|
862
|
+
placeholder = "Select...",
|
|
863
|
+
searchPlaceholder = "Search...",
|
|
864
|
+
emptyMessage = "No results found.",
|
|
865
|
+
disabled = false,
|
|
866
|
+
className,
|
|
867
|
+
...props
|
|
868
|
+
}, ref) => {
|
|
869
|
+
const [open, setOpen] = useState3(false);
|
|
870
|
+
const [search, setSearch] = useState3("");
|
|
871
|
+
const selectedOption = options.find((o) => o.value === value);
|
|
872
|
+
const filtered = options.filter(
|
|
873
|
+
(o) => o.label.toLowerCase().includes(search.toLowerCase())
|
|
874
|
+
);
|
|
875
|
+
const handleSelect = (val) => {
|
|
876
|
+
onValueChange?.(val === value ? "" : val);
|
|
877
|
+
setOpen(false);
|
|
878
|
+
setSearch("");
|
|
879
|
+
};
|
|
880
|
+
return /* @__PURE__ */ jsxs6(Popover.Root, { open, onOpenChange: setOpen, children: [
|
|
881
|
+
/* @__PURE__ */ jsx13(Popover.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxs6(
|
|
882
|
+
"button",
|
|
883
|
+
{
|
|
884
|
+
type: "button",
|
|
885
|
+
role: "combobox",
|
|
886
|
+
"aria-expanded": open,
|
|
887
|
+
className: cn(
|
|
888
|
+
"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
889
|
+
className
|
|
890
|
+
),
|
|
891
|
+
children: [
|
|
892
|
+
/* @__PURE__ */ jsx13("span", { className: cn(!selectedOption && "text-muted-foreground"), children: selectedOption ? selectedOption.label : placeholder }),
|
|
893
|
+
/* @__PURE__ */ jsx13(
|
|
894
|
+
"svg",
|
|
895
|
+
{
|
|
896
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
897
|
+
width: "16",
|
|
898
|
+
height: "16",
|
|
899
|
+
viewBox: "0 0 24 24",
|
|
900
|
+
fill: "none",
|
|
901
|
+
stroke: "currentColor",
|
|
902
|
+
strokeWidth: "2",
|
|
903
|
+
strokeLinecap: "round",
|
|
904
|
+
strokeLinejoin: "round",
|
|
905
|
+
className: "ml-2 h-4 w-4 shrink-0 opacity-50",
|
|
906
|
+
children: /* @__PURE__ */ jsx13("path", { d: "m6 9 6 6 6-6" })
|
|
907
|
+
}
|
|
908
|
+
)
|
|
909
|
+
]
|
|
910
|
+
}
|
|
911
|
+
) }),
|
|
912
|
+
/* @__PURE__ */ jsx13(Popover.Portal, { children: /* @__PURE__ */ jsxs6(
|
|
913
|
+
Popover.Content,
|
|
914
|
+
{
|
|
915
|
+
ref,
|
|
916
|
+
className: "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95",
|
|
917
|
+
align: "start",
|
|
918
|
+
sideOffset: 4,
|
|
919
|
+
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
920
|
+
...props,
|
|
921
|
+
children: [
|
|
922
|
+
/* @__PURE__ */ jsxs6("div", { className: "flex items-center border-b px-3", children: [
|
|
923
|
+
/* @__PURE__ */ jsxs6(
|
|
924
|
+
"svg",
|
|
925
|
+
{
|
|
926
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
927
|
+
width: "16",
|
|
928
|
+
height: "16",
|
|
929
|
+
viewBox: "0 0 24 24",
|
|
930
|
+
fill: "none",
|
|
931
|
+
stroke: "currentColor",
|
|
932
|
+
strokeWidth: "2",
|
|
933
|
+
strokeLinecap: "round",
|
|
934
|
+
strokeLinejoin: "round",
|
|
935
|
+
className: "mr-2 h-4 w-4 shrink-0 opacity-50",
|
|
936
|
+
children: [
|
|
937
|
+
/* @__PURE__ */ jsx13("circle", { cx: "11", cy: "11", r: "8" }),
|
|
938
|
+
/* @__PURE__ */ jsx13("path", { d: "m21 21-4.3-4.3" })
|
|
939
|
+
]
|
|
940
|
+
}
|
|
941
|
+
),
|
|
942
|
+
/* @__PURE__ */ jsx13(
|
|
943
|
+
"input",
|
|
944
|
+
{
|
|
945
|
+
value: search,
|
|
946
|
+
onChange: (e) => setSearch(e.target.value),
|
|
947
|
+
placeholder: searchPlaceholder,
|
|
948
|
+
className: "flex h-9 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50"
|
|
949
|
+
}
|
|
950
|
+
)
|
|
951
|
+
] }),
|
|
952
|
+
/* @__PURE__ */ jsx13("div", { className: "max-h-[300px] overflow-y-auto p-1", children: filtered.length === 0 ? /* @__PURE__ */ jsx13("div", { className: "py-6 text-center text-sm text-muted-foreground", children: emptyMessage }) : filtered.map((option) => /* @__PURE__ */ jsxs6(
|
|
953
|
+
"button",
|
|
954
|
+
{
|
|
955
|
+
type: "button",
|
|
956
|
+
onClick: () => handleSelect(option.value),
|
|
957
|
+
className: cn(
|
|
958
|
+
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none hover:bg-accent hover:text-accent-foreground",
|
|
959
|
+
value === option.value && "bg-accent"
|
|
960
|
+
),
|
|
961
|
+
children: [
|
|
962
|
+
/* @__PURE__ */ jsx13("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: value === option.value && /* @__PURE__ */ jsx13(
|
|
963
|
+
"svg",
|
|
964
|
+
{
|
|
965
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
966
|
+
width: "16",
|
|
967
|
+
height: "16",
|
|
968
|
+
viewBox: "0 0 24 24",
|
|
969
|
+
fill: "none",
|
|
970
|
+
stroke: "currentColor",
|
|
971
|
+
strokeWidth: "2",
|
|
972
|
+
strokeLinecap: "round",
|
|
973
|
+
strokeLinejoin: "round",
|
|
974
|
+
className: "h-4 w-4",
|
|
975
|
+
children: /* @__PURE__ */ jsx13("polyline", { points: "20 6 9 17 4 12" })
|
|
976
|
+
}
|
|
977
|
+
) }),
|
|
978
|
+
option.label
|
|
979
|
+
]
|
|
980
|
+
},
|
|
981
|
+
option.value
|
|
982
|
+
)) })
|
|
983
|
+
]
|
|
984
|
+
}
|
|
985
|
+
) })
|
|
986
|
+
] });
|
|
987
|
+
}
|
|
988
|
+
);
|
|
989
|
+
Combobox.displayName = "Combobox";
|
|
990
|
+
|
|
991
|
+
// src/components/Command/Command.web.tsx
|
|
992
|
+
import { forwardRef as forwardRef14 } from "react";
|
|
993
|
+
import { jsx as jsx14, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
994
|
+
var Command = forwardRef14(
|
|
995
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
996
|
+
"div",
|
|
997
|
+
{
|
|
998
|
+
ref,
|
|
999
|
+
className: cn(
|
|
1000
|
+
"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
|
|
1001
|
+
className
|
|
1002
|
+
),
|
|
1003
|
+
...props
|
|
1004
|
+
}
|
|
1005
|
+
)
|
|
1006
|
+
);
|
|
1007
|
+
Command.displayName = "Command";
|
|
1008
|
+
var CommandInput = forwardRef14(({ className, ...props }, ref) => /* @__PURE__ */ jsxs7("div", { className: "flex items-center border-b px-3", "data-command-input-wrapper": "", children: [
|
|
1009
|
+
/* @__PURE__ */ jsxs7(
|
|
1010
|
+
"svg",
|
|
1011
|
+
{
|
|
1012
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1013
|
+
width: "16",
|
|
1014
|
+
height: "16",
|
|
1015
|
+
viewBox: "0 0 24 24",
|
|
1016
|
+
fill: "none",
|
|
1017
|
+
stroke: "currentColor",
|
|
1018
|
+
strokeWidth: "2",
|
|
1019
|
+
strokeLinecap: "round",
|
|
1020
|
+
strokeLinejoin: "round",
|
|
1021
|
+
className: "mr-2 h-4 w-4 shrink-0 opacity-50",
|
|
1022
|
+
children: [
|
|
1023
|
+
/* @__PURE__ */ jsx14("circle", { cx: "11", cy: "11", r: "8" }),
|
|
1024
|
+
/* @__PURE__ */ jsx14("path", { d: "m21 21-4.3-4.3" })
|
|
1025
|
+
]
|
|
1026
|
+
}
|
|
1027
|
+
),
|
|
1028
|
+
/* @__PURE__ */ jsx14(
|
|
1029
|
+
"input",
|
|
1030
|
+
{
|
|
1031
|
+
ref,
|
|
1032
|
+
className: cn(
|
|
1033
|
+
"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
1034
|
+
className
|
|
1035
|
+
),
|
|
1036
|
+
...props
|
|
1037
|
+
}
|
|
1038
|
+
)
|
|
1039
|
+
] }));
|
|
1040
|
+
CommandInput.displayName = "CommandInput";
|
|
1041
|
+
var CommandList = forwardRef14(
|
|
1042
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
1043
|
+
"div",
|
|
1044
|
+
{
|
|
1045
|
+
ref,
|
|
1046
|
+
className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className),
|
|
1047
|
+
...props
|
|
1048
|
+
}
|
|
1049
|
+
)
|
|
1050
|
+
);
|
|
1051
|
+
CommandList.displayName = "CommandList";
|
|
1052
|
+
var CommandEmpty = forwardRef14(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
1053
|
+
"div",
|
|
1054
|
+
{
|
|
1055
|
+
ref,
|
|
1056
|
+
className: cn("py-6 text-center text-sm", className),
|
|
1057
|
+
...props
|
|
1058
|
+
}
|
|
1059
|
+
));
|
|
1060
|
+
CommandEmpty.displayName = "CommandEmpty";
|
|
1061
|
+
var CommandGroup = forwardRef14(({ className, heading, children, ...props }, ref) => /* @__PURE__ */ jsxs7(
|
|
1062
|
+
"div",
|
|
1063
|
+
{
|
|
1064
|
+
ref,
|
|
1065
|
+
className: cn(
|
|
1066
|
+
"overflow-hidden p-1 text-foreground [&_[data-command-group-heading]]:px-2 [&_[data-command-group-heading]]:py-1.5 [&_[data-command-group-heading]]:text-xs [&_[data-command-group-heading]]:font-medium [&_[data-command-group-heading]]:text-muted-foreground",
|
|
1067
|
+
className
|
|
1068
|
+
),
|
|
1069
|
+
...props,
|
|
1070
|
+
children: [
|
|
1071
|
+
heading && /* @__PURE__ */ jsx14("div", { "data-command-group-heading": "", className: "px-2 py-1.5 text-xs font-medium text-muted-foreground", children: heading }),
|
|
1072
|
+
children
|
|
1073
|
+
]
|
|
1074
|
+
}
|
|
1075
|
+
));
|
|
1076
|
+
CommandGroup.displayName = "CommandGroup";
|
|
1077
|
+
var CommandSeparator = forwardRef14(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
1078
|
+
"div",
|
|
1079
|
+
{
|
|
1080
|
+
ref,
|
|
1081
|
+
className: cn("-mx-1 h-px bg-border", className),
|
|
1082
|
+
...props
|
|
1083
|
+
}
|
|
1084
|
+
));
|
|
1085
|
+
CommandSeparator.displayName = "CommandSeparator";
|
|
1086
|
+
var CommandItem = forwardRef14(({ className, disabled, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
1087
|
+
"div",
|
|
1088
|
+
{
|
|
1089
|
+
ref,
|
|
1090
|
+
role: "option",
|
|
1091
|
+
"aria-disabled": disabled,
|
|
1092
|
+
className: cn(
|
|
1093
|
+
"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent hover:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
1094
|
+
disabled && "pointer-events-none opacity-50",
|
|
1095
|
+
className
|
|
1096
|
+
),
|
|
1097
|
+
"data-disabled": disabled || void 0,
|
|
1098
|
+
...props
|
|
1099
|
+
}
|
|
1100
|
+
));
|
|
1101
|
+
CommandItem.displayName = "CommandItem";
|
|
1102
|
+
|
|
1103
|
+
// src/components/ContextMenu/ContextMenu.web.tsx
|
|
1104
|
+
import { forwardRef as forwardRef15 } from "react";
|
|
1105
|
+
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
1106
|
+
import { jsx as jsx15, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1107
|
+
function CheckIcon(props) {
|
|
1108
|
+
return /* @__PURE__ */ jsx15("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsx15("path", { d: "M20 6 9 17l-5-5" }) });
|
|
1109
|
+
}
|
|
1110
|
+
function ChevronRightIcon2(props) {
|
|
1111
|
+
return /* @__PURE__ */ jsx15("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsx15("path", { d: "m9 18 6-6-6-6" }) });
|
|
1112
|
+
}
|
|
1113
|
+
function CircleIcon(props) {
|
|
1114
|
+
return /* @__PURE__ */ jsx15("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsx15("circle", { cx: "12", cy: "12", r: "10" }) });
|
|
1115
|
+
}
|
|
1116
|
+
var ContextMenu = ContextMenuPrimitive.Root;
|
|
1117
|
+
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
1118
|
+
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
1119
|
+
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
1120
|
+
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
1121
|
+
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
1122
|
+
var ContextMenuSubTrigger = forwardRef15(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
|
|
1123
|
+
ContextMenuPrimitive.SubTrigger,
|
|
1124
|
+
{
|
|
1125
|
+
ref,
|
|
1126
|
+
className: cn(
|
|
1127
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
1128
|
+
inset && "pl-8",
|
|
1129
|
+
className
|
|
1130
|
+
),
|
|
1131
|
+
...props,
|
|
1132
|
+
children: [
|
|
1133
|
+
children,
|
|
1134
|
+
/* @__PURE__ */ jsx15(ChevronRightIcon2, { className: "ml-auto h-4 w-4" })
|
|
1135
|
+
]
|
|
1136
|
+
}
|
|
1137
|
+
));
|
|
1138
|
+
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
1139
|
+
var ContextMenuSubContent = forwardRef15(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
|
|
1140
|
+
ContextMenuPrimitive.SubContent,
|
|
1141
|
+
{
|
|
1142
|
+
ref,
|
|
1143
|
+
className: cn(
|
|
1144
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1145
|
+
className
|
|
1146
|
+
),
|
|
1147
|
+
...props
|
|
1148
|
+
}
|
|
1149
|
+
));
|
|
1150
|
+
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
1151
|
+
var ContextMenuContent = forwardRef15(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx15(
|
|
1152
|
+
ContextMenuPrimitive.Content,
|
|
1153
|
+
{
|
|
1154
|
+
ref,
|
|
1155
|
+
className: cn(
|
|
1156
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1157
|
+
className
|
|
1158
|
+
),
|
|
1159
|
+
...props
|
|
1160
|
+
}
|
|
1161
|
+
) }));
|
|
1162
|
+
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
1163
|
+
var ContextMenuItem = forwardRef15(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx15(
|
|
1164
|
+
ContextMenuPrimitive.Item,
|
|
1165
|
+
{
|
|
1166
|
+
ref,
|
|
1167
|
+
className: cn(
|
|
1168
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1169
|
+
inset && "pl-8",
|
|
1170
|
+
className
|
|
1171
|
+
),
|
|
1172
|
+
...props
|
|
1173
|
+
}
|
|
1174
|
+
));
|
|
1175
|
+
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
1176
|
+
var ContextMenuCheckboxItem = forwardRef15(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs8(
|
|
1177
|
+
ContextMenuPrimitive.CheckboxItem,
|
|
1178
|
+
{
|
|
1179
|
+
ref,
|
|
1180
|
+
className: cn(
|
|
1181
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1182
|
+
className
|
|
1183
|
+
),
|
|
1184
|
+
checked,
|
|
1185
|
+
...props,
|
|
1186
|
+
children: [
|
|
1187
|
+
/* @__PURE__ */ jsx15("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx15(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx15(CheckIcon, { className: "h-4 w-4" }) }) }),
|
|
1188
|
+
children
|
|
1189
|
+
]
|
|
1190
|
+
}
|
|
1191
|
+
));
|
|
1192
|
+
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
1193
|
+
var ContextMenuRadioItem = forwardRef15(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
|
|
1194
|
+
ContextMenuPrimitive.RadioItem,
|
|
1195
|
+
{
|
|
1196
|
+
ref,
|
|
1197
|
+
className: cn(
|
|
1198
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1199
|
+
className
|
|
1200
|
+
),
|
|
1201
|
+
...props,
|
|
1202
|
+
children: [
|
|
1203
|
+
/* @__PURE__ */ jsx15("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx15(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx15(CircleIcon, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1204
|
+
children
|
|
1205
|
+
]
|
|
1206
|
+
}
|
|
1207
|
+
));
|
|
1208
|
+
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
1209
|
+
var ContextMenuLabel = forwardRef15(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx15(
|
|
1210
|
+
ContextMenuPrimitive.Label,
|
|
1211
|
+
{
|
|
1212
|
+
ref,
|
|
1213
|
+
className: cn(
|
|
1214
|
+
"px-2 py-1.5 text-sm font-semibold text-foreground",
|
|
1215
|
+
inset && "pl-8",
|
|
1216
|
+
className
|
|
1217
|
+
),
|
|
1218
|
+
...props
|
|
1219
|
+
}
|
|
1220
|
+
));
|
|
1221
|
+
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
1222
|
+
var ContextMenuSeparator = forwardRef15(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
|
|
1223
|
+
ContextMenuPrimitive.Separator,
|
|
1224
|
+
{
|
|
1225
|
+
ref,
|
|
1226
|
+
className: cn("-mx-1 my-1 h-px bg-border", className),
|
|
1227
|
+
...props
|
|
1228
|
+
}
|
|
1229
|
+
));
|
|
1230
|
+
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
1231
|
+
var ContextMenuShortcut = ({
|
|
1232
|
+
className,
|
|
1233
|
+
...props
|
|
1234
|
+
}) => {
|
|
1235
|
+
return /* @__PURE__ */ jsx15(
|
|
1236
|
+
"span",
|
|
1237
|
+
{
|
|
1238
|
+
className: cn(
|
|
1239
|
+
"ml-auto text-xs tracking-widest text-muted-foreground",
|
|
1240
|
+
className
|
|
1241
|
+
),
|
|
1242
|
+
...props
|
|
1243
|
+
}
|
|
1244
|
+
);
|
|
1245
|
+
};
|
|
1246
|
+
ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
1247
|
+
|
|
1248
|
+
// src/components/DataTable/DataTable.web.tsx
|
|
1249
|
+
import { forwardRef as forwardRef16, useState as useState4, useMemo as useMemo2, useCallback as useCallback2 } from "react";
|
|
1250
|
+
import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1251
|
+
function getCellValue(column, row) {
|
|
1252
|
+
if (column.accessorFn) return column.accessorFn(row);
|
|
1253
|
+
if (column.accessorKey) return row[column.accessorKey];
|
|
1254
|
+
return void 0;
|
|
1255
|
+
}
|
|
1256
|
+
function DataTableInner({
|
|
1257
|
+
columns,
|
|
1258
|
+
data,
|
|
1259
|
+
className,
|
|
1260
|
+
...props
|
|
1261
|
+
}, ref) {
|
|
1262
|
+
const [sortColumn, setSortColumn] = useState4(null);
|
|
1263
|
+
const [sortDirection, setSortDirection] = useState4(null);
|
|
1264
|
+
const handleSort = useCallback2(
|
|
1265
|
+
(columnId) => {
|
|
1266
|
+
if (sortColumn === columnId) {
|
|
1267
|
+
if (sortDirection === "asc") {
|
|
1268
|
+
setSortDirection("desc");
|
|
1269
|
+
} else if (sortDirection === "desc") {
|
|
1270
|
+
setSortColumn(null);
|
|
1271
|
+
setSortDirection(null);
|
|
1272
|
+
}
|
|
1273
|
+
} else {
|
|
1274
|
+
setSortColumn(columnId);
|
|
1275
|
+
setSortDirection("asc");
|
|
1276
|
+
}
|
|
1277
|
+
},
|
|
1278
|
+
[sortColumn, sortDirection]
|
|
1279
|
+
);
|
|
1280
|
+
const sortedData = useMemo2(() => {
|
|
1281
|
+
if (!sortColumn || !sortDirection) return data;
|
|
1282
|
+
const column = columns.find((c) => c.id === sortColumn);
|
|
1283
|
+
if (!column) return data;
|
|
1284
|
+
return [...data].sort((a, b) => {
|
|
1285
|
+
const aVal = getCellValue(column, a);
|
|
1286
|
+
const bVal = getCellValue(column, b);
|
|
1287
|
+
if (aVal == null && bVal == null) return 0;
|
|
1288
|
+
if (aVal == null) return 1;
|
|
1289
|
+
if (bVal == null) return -1;
|
|
1290
|
+
const comparison = typeof aVal === "string" && typeof bVal === "string" ? aVal.localeCompare(bVal) : Number(aVal) - Number(bVal);
|
|
1291
|
+
return sortDirection === "asc" ? comparison : -comparison;
|
|
1292
|
+
});
|
|
1293
|
+
}, [data, columns, sortColumn, sortDirection]);
|
|
1294
|
+
return /* @__PURE__ */ jsx16("div", { ref, className: cn("relative w-full overflow-auto", className), ...props, children: /* @__PURE__ */ jsxs9("table", { className: "w-full caption-bottom text-sm", children: [
|
|
1295
|
+
/* @__PURE__ */ jsx16("thead", { className: "[&_tr]:border-b", children: /* @__PURE__ */ jsx16("tr", { className: "border-b transition-colors hover:bg-muted/50", children: columns.map((column) => /* @__PURE__ */ jsx16(
|
|
1296
|
+
"th",
|
|
1297
|
+
{
|
|
1298
|
+
className: cn(
|
|
1299
|
+
"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
1300
|
+
column.sortable && "cursor-pointer select-none"
|
|
1301
|
+
),
|
|
1302
|
+
onClick: column.sortable ? () => handleSort(column.id) : void 0,
|
|
1303
|
+
children: /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-1", children: [
|
|
1304
|
+
column.header,
|
|
1305
|
+
column.sortable && sortColumn === column.id && /* @__PURE__ */ jsx16("span", { className: "ml-1 text-xs", children: sortDirection === "asc" ? "\u2191" : "\u2193" })
|
|
1306
|
+
] })
|
|
1307
|
+
},
|
|
1308
|
+
column.id
|
|
1309
|
+
)) }) }),
|
|
1310
|
+
/* @__PURE__ */ jsx16("tbody", { className: "[&_tr:last-child]:border-0", children: sortedData.length === 0 ? /* @__PURE__ */ jsx16("tr", { children: /* @__PURE__ */ jsx16(
|
|
1311
|
+
"td",
|
|
1312
|
+
{
|
|
1313
|
+
colSpan: columns.length,
|
|
1314
|
+
className: "h-24 text-center text-muted-foreground",
|
|
1315
|
+
children: "No results."
|
|
1316
|
+
}
|
|
1317
|
+
) }) : sortedData.map((row, rowIndex) => /* @__PURE__ */ jsx16(
|
|
1318
|
+
"tr",
|
|
1319
|
+
{
|
|
1320
|
+
className: "border-b transition-colors hover:bg-muted/50",
|
|
1321
|
+
children: columns.map((column) => {
|
|
1322
|
+
const value = getCellValue(column, row);
|
|
1323
|
+
return /* @__PURE__ */ jsx16(
|
|
1324
|
+
"td",
|
|
1325
|
+
{
|
|
1326
|
+
className: "p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
1327
|
+
children: column.cell ? column.cell(value, row) : String(value ?? "")
|
|
1328
|
+
},
|
|
1329
|
+
column.id
|
|
1330
|
+
);
|
|
1331
|
+
})
|
|
1332
|
+
},
|
|
1333
|
+
rowIndex
|
|
1334
|
+
)) })
|
|
1335
|
+
] }) });
|
|
1336
|
+
}
|
|
1337
|
+
var DataTable = forwardRef16(DataTableInner);
|
|
1338
|
+
|
|
1339
|
+
// src/components/DatePicker/DatePicker.web.tsx
|
|
1340
|
+
import { forwardRef as forwardRef17, useState as useState5 } from "react";
|
|
1341
|
+
import * as Popover2 from "@radix-ui/react-popover";
|
|
1342
|
+
import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1343
|
+
function formatDate(date) {
|
|
1344
|
+
return date.toLocaleDateString("en-US", {
|
|
1345
|
+
month: "long",
|
|
1346
|
+
day: "numeric",
|
|
1347
|
+
year: "numeric"
|
|
1348
|
+
});
|
|
1349
|
+
}
|
|
1350
|
+
var DatePicker = forwardRef17(
|
|
1351
|
+
({
|
|
1352
|
+
value,
|
|
1353
|
+
onValueChange,
|
|
1354
|
+
placeholder = "Pick a date",
|
|
1355
|
+
disabled = false,
|
|
1356
|
+
className,
|
|
1357
|
+
...props
|
|
1358
|
+
}, ref) => {
|
|
1359
|
+
const [open, setOpen] = useState5(false);
|
|
1360
|
+
const handleSelect = (date) => {
|
|
1361
|
+
onValueChange?.(date);
|
|
1362
|
+
setOpen(false);
|
|
1363
|
+
};
|
|
1364
|
+
return /* @__PURE__ */ jsxs10(Popover2.Root, { open, onOpenChange: setOpen, children: [
|
|
1365
|
+
/* @__PURE__ */ jsx17(Popover2.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxs10(
|
|
1366
|
+
"button",
|
|
1367
|
+
{
|
|
1368
|
+
type: "button",
|
|
1369
|
+
className: cn(
|
|
1370
|
+
"flex h-9 w-full items-center justify-start whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
1371
|
+
!value && "text-muted-foreground",
|
|
1372
|
+
className
|
|
1373
|
+
),
|
|
1374
|
+
children: [
|
|
1375
|
+
/* @__PURE__ */ jsxs10(
|
|
1376
|
+
"svg",
|
|
1377
|
+
{
|
|
1378
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1379
|
+
width: "16",
|
|
1380
|
+
height: "16",
|
|
1381
|
+
viewBox: "0 0 24 24",
|
|
1382
|
+
fill: "none",
|
|
1383
|
+
stroke: "currentColor",
|
|
1384
|
+
strokeWidth: "2",
|
|
1385
|
+
strokeLinecap: "round",
|
|
1386
|
+
strokeLinejoin: "round",
|
|
1387
|
+
className: "mr-2 h-4 w-4",
|
|
1388
|
+
children: [
|
|
1389
|
+
/* @__PURE__ */ jsx17("path", { d: "M8 2v4" }),
|
|
1390
|
+
/* @__PURE__ */ jsx17("path", { d: "M16 2v4" }),
|
|
1391
|
+
/* @__PURE__ */ jsx17("rect", { width: "18", height: "18", x: "3", y: "4", rx: "2" }),
|
|
1392
|
+
/* @__PURE__ */ jsx17("path", { d: "M3 10h18" })
|
|
1393
|
+
]
|
|
1394
|
+
}
|
|
1395
|
+
),
|
|
1396
|
+
value ? formatDate(value) : placeholder
|
|
1397
|
+
]
|
|
1398
|
+
}
|
|
1399
|
+
) }),
|
|
1400
|
+
/* @__PURE__ */ jsx17(Popover2.Portal, { children: /* @__PURE__ */ jsx17(
|
|
1401
|
+
Popover2.Content,
|
|
1402
|
+
{
|
|
1403
|
+
ref,
|
|
1404
|
+
className: "z-50 rounded-md border bg-popover p-0 text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95",
|
|
1405
|
+
align: "start",
|
|
1406
|
+
sideOffset: 4,
|
|
1407
|
+
...props,
|
|
1408
|
+
children: /* @__PURE__ */ jsx17(
|
|
1409
|
+
Calendar,
|
|
1410
|
+
{
|
|
1411
|
+
selected: value,
|
|
1412
|
+
onSelect: handleSelect
|
|
1413
|
+
}
|
|
1414
|
+
)
|
|
1415
|
+
}
|
|
1416
|
+
) })
|
|
1417
|
+
] });
|
|
1418
|
+
}
|
|
1419
|
+
);
|
|
1420
|
+
DatePicker.displayName = "DatePicker";
|
|
1421
|
+
|
|
1422
|
+
// src/components/Dialog/Dialog.web.tsx
|
|
1423
|
+
import { forwardRef as forwardRef18 } from "react";
|
|
1424
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
1425
|
+
import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1426
|
+
function XIcon(props) {
|
|
1427
|
+
return /* @__PURE__ */ jsxs11("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [
|
|
1428
|
+
/* @__PURE__ */ jsx18("path", { d: "M18 6 6 18" }),
|
|
1429
|
+
/* @__PURE__ */ jsx18("path", { d: "m6 6 12 12" })
|
|
1430
|
+
] });
|
|
1431
|
+
}
|
|
1432
|
+
var Dialog = DialogPrimitive.Root;
|
|
1433
|
+
var DialogTrigger = DialogPrimitive.Trigger;
|
|
1434
|
+
var DialogPortal = DialogPrimitive.Portal;
|
|
1435
|
+
var DialogClose = DialogPrimitive.Close;
|
|
1436
|
+
var DialogOverlay = forwardRef18(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1437
|
+
DialogPrimitive.Overlay,
|
|
1438
|
+
{
|
|
1439
|
+
ref,
|
|
1440
|
+
className: cn(
|
|
1441
|
+
"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
1442
|
+
className
|
|
1443
|
+
),
|
|
1444
|
+
...props
|
|
1445
|
+
}
|
|
1446
|
+
));
|
|
1447
|
+
DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
1448
|
+
var DialogContent = forwardRef18(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs11(DialogPortal, { children: [
|
|
1449
|
+
/* @__PURE__ */ jsx18(DialogOverlay, {}),
|
|
1450
|
+
/* @__PURE__ */ jsxs11(
|
|
1451
|
+
DialogPrimitive.Content,
|
|
1452
|
+
{
|
|
1453
|
+
ref,
|
|
1454
|
+
className: cn(
|
|
1455
|
+
"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background text-foreground p-6 shadow-lg transition-opacity duration-200 data-[state=open]:opacity-100 data-[state=closed]:opacity-0 sm:rounded-lg",
|
|
1456
|
+
className
|
|
1457
|
+
),
|
|
1458
|
+
...props,
|
|
1459
|
+
children: [
|
|
1460
|
+
children,
|
|
1461
|
+
/* @__PURE__ */ jsxs11(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
|
|
1462
|
+
/* @__PURE__ */ jsx18(XIcon, { className: "h-4 w-4" }),
|
|
1463
|
+
/* @__PURE__ */ jsx18("span", { className: "sr-only", children: "Close" })
|
|
1464
|
+
] })
|
|
1465
|
+
]
|
|
1466
|
+
}
|
|
1467
|
+
)
|
|
1468
|
+
] }));
|
|
1469
|
+
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
1470
|
+
var DialogHeader = ({
|
|
1471
|
+
className,
|
|
1472
|
+
...props
|
|
1473
|
+
}) => /* @__PURE__ */ jsx18(
|
|
1474
|
+
"div",
|
|
1475
|
+
{
|
|
1476
|
+
className: cn(
|
|
1477
|
+
"flex flex-col space-y-1.5 text-center sm:text-left",
|
|
1478
|
+
className
|
|
1479
|
+
),
|
|
1480
|
+
...props
|
|
1481
|
+
}
|
|
1482
|
+
);
|
|
1483
|
+
DialogHeader.displayName = "DialogHeader";
|
|
1484
|
+
var DialogFooter = ({
|
|
1485
|
+
className,
|
|
1486
|
+
...props
|
|
1487
|
+
}) => /* @__PURE__ */ jsx18(
|
|
1488
|
+
"div",
|
|
1489
|
+
{
|
|
1490
|
+
className: cn(
|
|
1491
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
1492
|
+
className
|
|
1493
|
+
),
|
|
1494
|
+
...props
|
|
1495
|
+
}
|
|
1496
|
+
);
|
|
1497
|
+
DialogFooter.displayName = "DialogFooter";
|
|
1498
|
+
var DialogTitle = forwardRef18(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1499
|
+
DialogPrimitive.Title,
|
|
1500
|
+
{
|
|
1501
|
+
ref,
|
|
1502
|
+
className: cn(
|
|
1503
|
+
"text-lg font-semibold leading-none tracking-tight",
|
|
1504
|
+
className
|
|
1505
|
+
),
|
|
1506
|
+
...props
|
|
1507
|
+
}
|
|
1508
|
+
));
|
|
1509
|
+
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
1510
|
+
var DialogDescription = forwardRef18(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
|
|
1511
|
+
DialogPrimitive.Description,
|
|
1512
|
+
{
|
|
1513
|
+
ref,
|
|
1514
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
1515
|
+
...props
|
|
1516
|
+
}
|
|
1517
|
+
));
|
|
1518
|
+
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
1519
|
+
|
|
1520
|
+
// src/components/Drawer/Drawer.web.tsx
|
|
1521
|
+
import { Drawer as DrawerPrimitive } from "vaul";
|
|
1522
|
+
import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1523
|
+
function Drawer({
|
|
1524
|
+
...props
|
|
1525
|
+
}) {
|
|
1526
|
+
return /* @__PURE__ */ jsx19(DrawerPrimitive.Root, { ...props });
|
|
1527
|
+
}
|
|
1528
|
+
Drawer.displayName = "Drawer";
|
|
1529
|
+
function DrawerTrigger({
|
|
1530
|
+
...props
|
|
1531
|
+
}) {
|
|
1532
|
+
return /* @__PURE__ */ jsx19(DrawerPrimitive.Trigger, { ...props });
|
|
1533
|
+
}
|
|
1534
|
+
DrawerTrigger.displayName = "DrawerTrigger";
|
|
1535
|
+
function DrawerPortal({
|
|
1536
|
+
...props
|
|
1537
|
+
}) {
|
|
1538
|
+
return /* @__PURE__ */ jsx19(DrawerPrimitive.Portal, { ...props });
|
|
1539
|
+
}
|
|
1540
|
+
DrawerPortal.displayName = "DrawerPortal";
|
|
1541
|
+
function DrawerClose({
|
|
1542
|
+
...props
|
|
1543
|
+
}) {
|
|
1544
|
+
return /* @__PURE__ */ jsx19(DrawerPrimitive.Close, { ...props });
|
|
1545
|
+
}
|
|
1546
|
+
DrawerClose.displayName = "DrawerClose";
|
|
1547
|
+
function DrawerOverlay({
|
|
1548
|
+
className,
|
|
1549
|
+
...props
|
|
1550
|
+
}) {
|
|
1551
|
+
return /* @__PURE__ */ jsx19(
|
|
1552
|
+
DrawerPrimitive.Overlay,
|
|
1553
|
+
{
|
|
1554
|
+
className: cn(
|
|
1555
|
+
"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
1556
|
+
className
|
|
1557
|
+
),
|
|
1558
|
+
...props
|
|
1559
|
+
}
|
|
1560
|
+
);
|
|
1561
|
+
}
|
|
1562
|
+
DrawerOverlay.displayName = "DrawerOverlay";
|
|
1563
|
+
function DrawerContent({
|
|
1564
|
+
className,
|
|
1565
|
+
children,
|
|
1566
|
+
...props
|
|
1567
|
+
}) {
|
|
1568
|
+
return /* @__PURE__ */ jsxs12(DrawerPortal, { children: [
|
|
1569
|
+
/* @__PURE__ */ jsx19(DrawerOverlay, {}),
|
|
1570
|
+
/* @__PURE__ */ jsxs12(
|
|
1571
|
+
DrawerPrimitive.Content,
|
|
1572
|
+
{
|
|
1573
|
+
className: cn(
|
|
1574
|
+
"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background text-foreground",
|
|
1575
|
+
className
|
|
1576
|
+
),
|
|
1577
|
+
...props,
|
|
1578
|
+
children: [
|
|
1579
|
+
/* @__PURE__ */ jsx19("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
|
|
1580
|
+
children
|
|
1581
|
+
]
|
|
1582
|
+
}
|
|
1583
|
+
)
|
|
1584
|
+
] });
|
|
1585
|
+
}
|
|
1586
|
+
DrawerContent.displayName = "DrawerContent";
|
|
1587
|
+
var DrawerHeader = ({
|
|
1588
|
+
className,
|
|
1589
|
+
...props
|
|
1590
|
+
}) => /* @__PURE__ */ jsx19(
|
|
1591
|
+
"div",
|
|
1592
|
+
{
|
|
1593
|
+
className: cn("grid gap-1.5 p-4 text-center sm:text-left", className),
|
|
1594
|
+
...props
|
|
1595
|
+
}
|
|
1596
|
+
);
|
|
1597
|
+
DrawerHeader.displayName = "DrawerHeader";
|
|
1598
|
+
var DrawerFooter = ({
|
|
1599
|
+
className,
|
|
1600
|
+
...props
|
|
1601
|
+
}) => /* @__PURE__ */ jsx19(
|
|
1602
|
+
"div",
|
|
1603
|
+
{
|
|
1604
|
+
className: cn("mt-auto flex flex-col gap-2 p-4", className),
|
|
1605
|
+
...props
|
|
1606
|
+
}
|
|
1607
|
+
);
|
|
1608
|
+
DrawerFooter.displayName = "DrawerFooter";
|
|
1609
|
+
function DrawerTitle({
|
|
1610
|
+
className,
|
|
1611
|
+
...props
|
|
1612
|
+
}) {
|
|
1613
|
+
return /* @__PURE__ */ jsx19(
|
|
1614
|
+
DrawerPrimitive.Title,
|
|
1615
|
+
{
|
|
1616
|
+
className: cn(
|
|
1617
|
+
"text-lg font-semibold leading-none tracking-tight",
|
|
1618
|
+
className
|
|
1619
|
+
),
|
|
1620
|
+
...props
|
|
1621
|
+
}
|
|
1622
|
+
);
|
|
1623
|
+
}
|
|
1624
|
+
DrawerTitle.displayName = "DrawerTitle";
|
|
1625
|
+
function DrawerDescription({
|
|
1626
|
+
className,
|
|
1627
|
+
...props
|
|
1628
|
+
}) {
|
|
1629
|
+
return /* @__PURE__ */ jsx19(
|
|
1630
|
+
DrawerPrimitive.Description,
|
|
1631
|
+
{
|
|
1632
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
1633
|
+
...props
|
|
1634
|
+
}
|
|
1635
|
+
);
|
|
1636
|
+
}
|
|
1637
|
+
DrawerDescription.displayName = "DrawerDescription";
|
|
1638
|
+
|
|
1639
|
+
// src/components/DropdownMenu/DropdownMenu.web.tsx
|
|
1640
|
+
import { forwardRef as forwardRef19 } from "react";
|
|
1641
|
+
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
1642
|
+
import { jsx as jsx20, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1643
|
+
function CheckIcon2(props) {
|
|
1644
|
+
return /* @__PURE__ */ jsx20("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsx20("path", { d: "M20 6 9 17l-5-5" }) });
|
|
1645
|
+
}
|
|
1646
|
+
function ChevronRightIcon3(props) {
|
|
1647
|
+
return /* @__PURE__ */ jsx20("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsx20("path", { d: "m9 18 6-6-6-6" }) });
|
|
1648
|
+
}
|
|
1649
|
+
function CircleIcon2(props) {
|
|
1650
|
+
return /* @__PURE__ */ jsx20("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsx20("circle", { cx: "12", cy: "12", r: "10" }) });
|
|
1651
|
+
}
|
|
1652
|
+
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
1653
|
+
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
1654
|
+
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
1655
|
+
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
1656
|
+
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
1657
|
+
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
1658
|
+
var DropdownMenuSubTrigger = forwardRef19(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs13(
|
|
1659
|
+
DropdownMenuPrimitive.SubTrigger,
|
|
1660
|
+
{
|
|
1661
|
+
ref,
|
|
1662
|
+
className: cn(
|
|
1663
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",
|
|
1664
|
+
inset && "pl-8",
|
|
1665
|
+
className
|
|
1666
|
+
),
|
|
1667
|
+
...props,
|
|
1668
|
+
children: [
|
|
1669
|
+
children,
|
|
1670
|
+
/* @__PURE__ */ jsx20(ChevronRightIcon3, { className: "ml-auto h-4 w-4" })
|
|
1671
|
+
]
|
|
1672
|
+
}
|
|
1673
|
+
));
|
|
1674
|
+
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
1675
|
+
var DropdownMenuSubContent = forwardRef19(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
|
|
1676
|
+
DropdownMenuPrimitive.SubContent,
|
|
1677
|
+
{
|
|
1678
|
+
ref,
|
|
1679
|
+
className: cn(
|
|
1680
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1681
|
+
className
|
|
1682
|
+
),
|
|
1683
|
+
...props
|
|
1684
|
+
}
|
|
1685
|
+
));
|
|
1686
|
+
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
1687
|
+
var DropdownMenuContent = forwardRef19(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx20(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx20(
|
|
1688
|
+
DropdownMenuPrimitive.Content,
|
|
1689
|
+
{
|
|
1690
|
+
ref,
|
|
1691
|
+
sideOffset,
|
|
1692
|
+
className: cn(
|
|
1693
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1694
|
+
className
|
|
1695
|
+
),
|
|
1696
|
+
...props
|
|
1697
|
+
}
|
|
1698
|
+
) }));
|
|
1699
|
+
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
1700
|
+
var DropdownMenuItem = forwardRef19(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx20(
|
|
1701
|
+
DropdownMenuPrimitive.Item,
|
|
1702
|
+
{
|
|
1703
|
+
ref,
|
|
1704
|
+
className: cn(
|
|
1705
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1706
|
+
inset && "pl-8",
|
|
1707
|
+
className
|
|
1708
|
+
),
|
|
1709
|
+
...props
|
|
1710
|
+
}
|
|
1711
|
+
));
|
|
1712
|
+
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
1713
|
+
var DropdownMenuCheckboxItem = forwardRef19(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs13(
|
|
1714
|
+
DropdownMenuPrimitive.CheckboxItem,
|
|
1715
|
+
{
|
|
1716
|
+
ref,
|
|
1717
|
+
className: cn(
|
|
1718
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1719
|
+
className
|
|
1720
|
+
),
|
|
1721
|
+
checked,
|
|
1722
|
+
...props,
|
|
1723
|
+
children: [
|
|
1724
|
+
/* @__PURE__ */ jsx20("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx20(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx20(CheckIcon2, { className: "h-4 w-4" }) }) }),
|
|
1725
|
+
children
|
|
1726
|
+
]
|
|
1727
|
+
}
|
|
1728
|
+
));
|
|
1729
|
+
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
1730
|
+
var DropdownMenuRadioItem = forwardRef19(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs13(
|
|
1731
|
+
DropdownMenuPrimitive.RadioItem,
|
|
1732
|
+
{
|
|
1733
|
+
ref,
|
|
1734
|
+
className: cn(
|
|
1735
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
1736
|
+
className
|
|
1737
|
+
),
|
|
1738
|
+
...props,
|
|
1739
|
+
children: [
|
|
1740
|
+
/* @__PURE__ */ jsx20("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx20(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx20(CircleIcon2, { className: "h-2 w-2 fill-current" }) }) }),
|
|
1741
|
+
children
|
|
1742
|
+
]
|
|
1743
|
+
}
|
|
1744
|
+
));
|
|
1745
|
+
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
1746
|
+
var DropdownMenuLabel = forwardRef19(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx20(
|
|
1747
|
+
DropdownMenuPrimitive.Label,
|
|
1748
|
+
{
|
|
1749
|
+
ref,
|
|
1750
|
+
className: cn(
|
|
1751
|
+
"px-2 py-1.5 text-sm font-semibold",
|
|
1752
|
+
inset && "pl-8",
|
|
1753
|
+
className
|
|
1754
|
+
),
|
|
1755
|
+
...props
|
|
1756
|
+
}
|
|
1757
|
+
));
|
|
1758
|
+
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
1759
|
+
var DropdownMenuSeparator = forwardRef19(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
|
|
1760
|
+
DropdownMenuPrimitive.Separator,
|
|
1761
|
+
{
|
|
1762
|
+
ref,
|
|
1763
|
+
className: cn("-mx-1 my-1 h-px bg-muted", className),
|
|
1764
|
+
...props
|
|
1765
|
+
}
|
|
1766
|
+
));
|
|
1767
|
+
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
1768
|
+
var DropdownMenuShortcut = ({
|
|
1769
|
+
className,
|
|
1770
|
+
...props
|
|
1771
|
+
}) => {
|
|
1772
|
+
return /* @__PURE__ */ jsx20(
|
|
1773
|
+
"span",
|
|
1774
|
+
{
|
|
1775
|
+
className: cn(
|
|
1776
|
+
"ml-auto text-xs tracking-widest opacity-60",
|
|
1777
|
+
className
|
|
1778
|
+
),
|
|
1779
|
+
...props
|
|
1780
|
+
}
|
|
1781
|
+
);
|
|
1782
|
+
};
|
|
1783
|
+
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
1784
|
+
|
|
1785
|
+
// src/components/Form/Form.web.tsx
|
|
1786
|
+
import { forwardRef as forwardRef20 } from "react";
|
|
1787
|
+
|
|
1788
|
+
// src/components/Form/useFormField.ts
|
|
1789
|
+
import { createContext as createContext2, useContext as useContext2, useId } from "react";
|
|
1790
|
+
var FormFieldContext = createContext2({
|
|
1791
|
+
id: "",
|
|
1792
|
+
name: ""
|
|
1793
|
+
});
|
|
1794
|
+
function useFormFieldContext() {
|
|
1795
|
+
return useContext2(FormFieldContext);
|
|
1796
|
+
}
|
|
1797
|
+
function useFormFieldId() {
|
|
1798
|
+
return useId();
|
|
1799
|
+
}
|
|
1800
|
+
|
|
1801
|
+
// src/components/Form/Form.web.tsx
|
|
1802
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
1803
|
+
var Form = forwardRef20(
|
|
1804
|
+
({ className, ...props }, ref) => {
|
|
1805
|
+
return /* @__PURE__ */ jsx21("form", { ref, className: cn("space-y-6", className), ...props });
|
|
1806
|
+
}
|
|
1807
|
+
);
|
|
1808
|
+
Form.displayName = "Form";
|
|
1809
|
+
function FormField({ name, children }) {
|
|
1810
|
+
const id = useFormFieldId();
|
|
1811
|
+
return /* @__PURE__ */ jsx21(FormFieldContext.Provider, { value: { id, name }, children });
|
|
1812
|
+
}
|
|
1813
|
+
FormField.displayName = "FormField";
|
|
1814
|
+
var FormItem = forwardRef20(
|
|
1815
|
+
({ className, ...props }, ref) => {
|
|
1816
|
+
return /* @__PURE__ */ jsx21("div", { ref, className: cn("space-y-2", className), ...props });
|
|
1817
|
+
}
|
|
1818
|
+
);
|
|
1819
|
+
FormItem.displayName = "FormItem";
|
|
1820
|
+
var FormLabel = forwardRef20(
|
|
1821
|
+
({ className, ...props }, ref) => {
|
|
1822
|
+
const { id } = useFormFieldContext();
|
|
1823
|
+
return /* @__PURE__ */ jsx21(
|
|
1824
|
+
"label",
|
|
1825
|
+
{
|
|
1826
|
+
ref,
|
|
1827
|
+
className: cn(
|
|
1828
|
+
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
|
|
1829
|
+
className
|
|
1830
|
+
),
|
|
1831
|
+
htmlFor: id,
|
|
1832
|
+
...props
|
|
1833
|
+
}
|
|
1834
|
+
);
|
|
1835
|
+
}
|
|
1836
|
+
);
|
|
1837
|
+
FormLabel.displayName = "FormLabel";
|
|
1838
|
+
var FormControl = forwardRef20(
|
|
1839
|
+
({ className, ...props }, ref) => {
|
|
1840
|
+
const { id } = useFormFieldContext();
|
|
1841
|
+
return /* @__PURE__ */ jsx21(
|
|
1842
|
+
"div",
|
|
1843
|
+
{
|
|
1844
|
+
ref,
|
|
1845
|
+
id,
|
|
1846
|
+
className: cn("", className),
|
|
1847
|
+
...props
|
|
1848
|
+
}
|
|
1849
|
+
);
|
|
1850
|
+
}
|
|
1851
|
+
);
|
|
1852
|
+
FormControl.displayName = "FormControl";
|
|
1853
|
+
var FormDescription = forwardRef20(({ className, ...props }, ref) => {
|
|
1854
|
+
return /* @__PURE__ */ jsx21(
|
|
1855
|
+
"p",
|
|
1856
|
+
{
|
|
1857
|
+
ref,
|
|
1858
|
+
className: cn("text-[0.8rem] text-muted-foreground", className),
|
|
1859
|
+
...props
|
|
1860
|
+
}
|
|
1861
|
+
);
|
|
1862
|
+
});
|
|
1863
|
+
FormDescription.displayName = "FormDescription";
|
|
1864
|
+
var FormMessage = forwardRef20(({ className, children, ...props }, ref) => {
|
|
1865
|
+
if (!children) return null;
|
|
1866
|
+
return /* @__PURE__ */ jsx21(
|
|
1867
|
+
"p",
|
|
1868
|
+
{
|
|
1869
|
+
ref,
|
|
1870
|
+
className: cn("text-[0.8rem] font-medium text-destructive", className),
|
|
1871
|
+
...props,
|
|
1872
|
+
children
|
|
1873
|
+
}
|
|
1874
|
+
);
|
|
1875
|
+
});
|
|
1876
|
+
FormMessage.displayName = "FormMessage";
|
|
1877
|
+
|
|
1878
|
+
// src/components/HoverCard/HoverCard.web.tsx
|
|
1879
|
+
import { forwardRef as forwardRef21 } from "react";
|
|
1880
|
+
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
1881
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
1882
|
+
var HoverCard = HoverCardPrimitive.Root;
|
|
1883
|
+
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
1884
|
+
var HoverCardContent = forwardRef21(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
1885
|
+
HoverCardPrimitive.Content,
|
|
1886
|
+
{
|
|
1887
|
+
ref,
|
|
1888
|
+
align,
|
|
1889
|
+
sideOffset,
|
|
1890
|
+
className: cn(
|
|
1891
|
+
"z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
1892
|
+
className
|
|
1893
|
+
),
|
|
1894
|
+
...props
|
|
1895
|
+
}
|
|
1896
|
+
));
|
|
1897
|
+
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
1898
|
+
|
|
1899
|
+
// src/components/Input/Input.web.tsx
|
|
1900
|
+
import { forwardRef as forwardRef22 } from "react";
|
|
1901
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
1902
|
+
var Input = forwardRef22(
|
|
1903
|
+
({ className, type, ...props }, ref) => {
|
|
1904
|
+
return /* @__PURE__ */ jsx23(
|
|
1905
|
+
"input",
|
|
1906
|
+
{
|
|
1907
|
+
type,
|
|
1908
|
+
className: cn(
|
|
1909
|
+
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
1910
|
+
className
|
|
1911
|
+
),
|
|
1912
|
+
ref,
|
|
1913
|
+
...props
|
|
1914
|
+
}
|
|
1915
|
+
);
|
|
1916
|
+
}
|
|
1917
|
+
);
|
|
1918
|
+
Input.displayName = "Input";
|
|
1919
|
+
|
|
1920
|
+
// src/components/InputOTP/InputOTP.web.tsx
|
|
1921
|
+
import { forwardRef as forwardRef23, useState as useState6, useRef, useCallback as useCallback3, createContext as createContext3 } from "react";
|
|
1922
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
1923
|
+
var InputOTPContext = createContext3({
|
|
1924
|
+
value: "",
|
|
1925
|
+
activeIndex: -1,
|
|
1926
|
+
length: 6
|
|
1927
|
+
});
|
|
1928
|
+
var InputOTP = forwardRef23(
|
|
1929
|
+
({
|
|
1930
|
+
length = 6,
|
|
1931
|
+
value: controlledValue,
|
|
1932
|
+
onValueChange,
|
|
1933
|
+
disabled = false,
|
|
1934
|
+
className,
|
|
1935
|
+
children,
|
|
1936
|
+
...props
|
|
1937
|
+
}, ref) => {
|
|
1938
|
+
const [internalValue, setInternalValue] = useState6("");
|
|
1939
|
+
const [activeIndex, setActiveIndex] = useState6(-1);
|
|
1940
|
+
const inputRefs = useRef([]);
|
|
1941
|
+
const currentValue = controlledValue !== void 0 ? controlledValue : internalValue;
|
|
1942
|
+
const updateValue = useCallback3(
|
|
1943
|
+
(newValue) => {
|
|
1944
|
+
const clamped = newValue.slice(0, length);
|
|
1945
|
+
if (controlledValue === void 0) {
|
|
1946
|
+
setInternalValue(clamped);
|
|
1947
|
+
}
|
|
1948
|
+
onValueChange?.(clamped);
|
|
1949
|
+
},
|
|
1950
|
+
[controlledValue, length, onValueChange]
|
|
1951
|
+
);
|
|
1952
|
+
const handleKeyDown = (index, e) => {
|
|
1953
|
+
if (e.key === "Backspace") {
|
|
1954
|
+
e.preventDefault();
|
|
1955
|
+
const chars = currentValue.split("");
|
|
1956
|
+
if (chars[index]) {
|
|
1957
|
+
chars[index] = "";
|
|
1958
|
+
updateValue(chars.join(""));
|
|
1959
|
+
} else if (index > 0) {
|
|
1960
|
+
chars[index - 1] = "";
|
|
1961
|
+
updateValue(chars.join(""));
|
|
1962
|
+
inputRefs.current[index - 1]?.focus();
|
|
1963
|
+
}
|
|
1964
|
+
} else if (e.key === "ArrowLeft" && index > 0) {
|
|
1965
|
+
inputRefs.current[index - 1]?.focus();
|
|
1966
|
+
} else if (e.key === "ArrowRight" && index < length - 1) {
|
|
1967
|
+
inputRefs.current[index + 1]?.focus();
|
|
1968
|
+
}
|
|
1969
|
+
};
|
|
1970
|
+
const handleInput = (index, e) => {
|
|
1971
|
+
const char = e.target.value.slice(-1);
|
|
1972
|
+
if (!char) return;
|
|
1973
|
+
const chars = currentValue.split("");
|
|
1974
|
+
while (chars.length < length) chars.push("");
|
|
1975
|
+
chars[index] = char;
|
|
1976
|
+
updateValue(chars.join(""));
|
|
1977
|
+
if (index < length - 1) {
|
|
1978
|
+
inputRefs.current[index + 1]?.focus();
|
|
1979
|
+
}
|
|
1980
|
+
};
|
|
1981
|
+
const handlePaste = (e) => {
|
|
1982
|
+
e.preventDefault();
|
|
1983
|
+
const pasted = e.clipboardData.getData("text").slice(0, length);
|
|
1984
|
+
updateValue(pasted);
|
|
1985
|
+
const nextIndex = Math.min(pasted.length, length - 1);
|
|
1986
|
+
inputRefs.current[nextIndex]?.focus();
|
|
1987
|
+
};
|
|
1988
|
+
return /* @__PURE__ */ jsx24(InputOTPContext.Provider, { value: { value: currentValue, activeIndex, length }, children: /* @__PURE__ */ jsx24(
|
|
1989
|
+
"div",
|
|
1990
|
+
{
|
|
1991
|
+
ref,
|
|
1992
|
+
className: cn("flex items-center gap-2", disabled && "opacity-50", className),
|
|
1993
|
+
onPaste: handlePaste,
|
|
1994
|
+
...props,
|
|
1995
|
+
children: Array.from({ length }, (_, i) => /* @__PURE__ */ jsx24(
|
|
1996
|
+
"input",
|
|
1997
|
+
{
|
|
1998
|
+
ref: (el) => {
|
|
1999
|
+
inputRefs.current[i] = el;
|
|
2000
|
+
},
|
|
2001
|
+
type: "text",
|
|
2002
|
+
inputMode: "numeric",
|
|
2003
|
+
maxLength: 1,
|
|
2004
|
+
value: currentValue[i] || "",
|
|
2005
|
+
disabled,
|
|
2006
|
+
onChange: (e) => handleInput(i, e),
|
|
2007
|
+
onKeyDown: (e) => handleKeyDown(i, e),
|
|
2008
|
+
onFocus: () => setActiveIndex(i),
|
|
2009
|
+
onBlur: () => setActiveIndex(-1),
|
|
2010
|
+
className: cn(
|
|
2011
|
+
"flex h-9 w-9 items-center justify-center rounded-md border border-input bg-transparent text-center text-sm shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed",
|
|
2012
|
+
activeIndex === i && "ring-1 ring-ring"
|
|
2013
|
+
),
|
|
2014
|
+
autoComplete: "one-time-code"
|
|
2015
|
+
},
|
|
2016
|
+
i
|
|
2017
|
+
))
|
|
2018
|
+
}
|
|
2019
|
+
) });
|
|
2020
|
+
}
|
|
2021
|
+
);
|
|
2022
|
+
InputOTP.displayName = "InputOTP";
|
|
2023
|
+
|
|
2024
|
+
// src/components/Label/Label.web.tsx
|
|
2025
|
+
import { forwardRef as forwardRef24 } from "react";
|
|
2026
|
+
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
2027
|
+
import { cva as cva5 } from "class-variance-authority";
|
|
2028
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
2029
|
+
var labelVariants = cva5(
|
|
2030
|
+
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
2031
|
+
);
|
|
2032
|
+
var Label3 = forwardRef24(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
|
|
2033
|
+
LabelPrimitive.Root,
|
|
2034
|
+
{
|
|
2035
|
+
ref,
|
|
2036
|
+
className: cn(labelVariants(), className),
|
|
2037
|
+
...props
|
|
2038
|
+
}
|
|
2039
|
+
));
|
|
2040
|
+
Label3.displayName = LabelPrimitive.Root.displayName;
|
|
2041
|
+
|
|
2042
|
+
// src/components/Menubar/Menubar.web.tsx
|
|
2043
|
+
import { forwardRef as forwardRef25 } from "react";
|
|
2044
|
+
import * as MenubarPrimitive from "@radix-ui/react-menubar";
|
|
2045
|
+
import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2046
|
+
function CheckIcon3(props) {
|
|
2047
|
+
return /* @__PURE__ */ jsx26("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsx26("path", { d: "M20 6 9 17l-5-5" }) });
|
|
2048
|
+
}
|
|
2049
|
+
function ChevronRightIcon4(props) {
|
|
2050
|
+
return /* @__PURE__ */ jsx26("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsx26("path", { d: "m9 18 6-6-6-6" }) });
|
|
2051
|
+
}
|
|
2052
|
+
function CircleIcon3(props) {
|
|
2053
|
+
return /* @__PURE__ */ jsx26("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsx26("circle", { cx: "12", cy: "12", r: "10" }) });
|
|
2054
|
+
}
|
|
2055
|
+
var MenubarMenu = MenubarPrimitive.Menu;
|
|
2056
|
+
var MenubarGroup = MenubarPrimitive.Group;
|
|
2057
|
+
var MenubarPortal = MenubarPrimitive.Portal;
|
|
2058
|
+
var MenubarSub = MenubarPrimitive.Sub;
|
|
2059
|
+
var MenubarRadioGroup = MenubarPrimitive.RadioGroup;
|
|
2060
|
+
var Menubar = forwardRef25(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
|
|
2061
|
+
MenubarPrimitive.Root,
|
|
2062
|
+
{
|
|
2063
|
+
ref,
|
|
2064
|
+
className: cn(
|
|
2065
|
+
"flex h-9 items-center space-x-1 rounded-md border bg-background p-1 shadow-sm",
|
|
2066
|
+
className
|
|
2067
|
+
),
|
|
2068
|
+
...props
|
|
2069
|
+
}
|
|
2070
|
+
));
|
|
2071
|
+
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
2072
|
+
var MenubarTrigger = forwardRef25(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
|
|
2073
|
+
MenubarPrimitive.Trigger,
|
|
2074
|
+
{
|
|
2075
|
+
ref,
|
|
2076
|
+
className: cn(
|
|
2077
|
+
"flex cursor-default select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
2078
|
+
className
|
|
2079
|
+
),
|
|
2080
|
+
...props
|
|
2081
|
+
}
|
|
2082
|
+
));
|
|
2083
|
+
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
2084
|
+
var MenubarSubTrigger = forwardRef25(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
|
|
2085
|
+
MenubarPrimitive.SubTrigger,
|
|
2086
|
+
{
|
|
2087
|
+
ref,
|
|
2088
|
+
className: cn(
|
|
2089
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
2090
|
+
inset && "pl-8",
|
|
2091
|
+
className
|
|
2092
|
+
),
|
|
2093
|
+
...props,
|
|
2094
|
+
children: [
|
|
2095
|
+
children,
|
|
2096
|
+
/* @__PURE__ */ jsx26(ChevronRightIcon4, { className: "ml-auto h-4 w-4" })
|
|
2097
|
+
]
|
|
2098
|
+
}
|
|
2099
|
+
));
|
|
2100
|
+
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
2101
|
+
var MenubarSubContent = forwardRef25(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
|
|
2102
|
+
MenubarPrimitive.SubContent,
|
|
2103
|
+
{
|
|
2104
|
+
ref,
|
|
2105
|
+
className: cn(
|
|
2106
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
2107
|
+
className
|
|
2108
|
+
),
|
|
2109
|
+
...props
|
|
2110
|
+
}
|
|
2111
|
+
));
|
|
2112
|
+
MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
2113
|
+
var MenubarContent = forwardRef25(
|
|
2114
|
+
({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx26(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx26(
|
|
2115
|
+
MenubarPrimitive.Content,
|
|
2116
|
+
{
|
|
2117
|
+
ref,
|
|
2118
|
+
align,
|
|
2119
|
+
alignOffset,
|
|
2120
|
+
sideOffset,
|
|
2121
|
+
className: cn(
|
|
2122
|
+
"z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
2123
|
+
className
|
|
2124
|
+
),
|
|
2125
|
+
...props
|
|
2126
|
+
}
|
|
2127
|
+
) })
|
|
2128
|
+
);
|
|
2129
|
+
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
2130
|
+
var MenubarItem = forwardRef25(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx26(
|
|
2131
|
+
MenubarPrimitive.Item,
|
|
2132
|
+
{
|
|
2133
|
+
ref,
|
|
2134
|
+
className: cn(
|
|
2135
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
2136
|
+
inset && "pl-8",
|
|
2137
|
+
className
|
|
2138
|
+
),
|
|
2139
|
+
...props
|
|
2140
|
+
}
|
|
2141
|
+
));
|
|
2142
|
+
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
2143
|
+
var MenubarCheckboxItem = forwardRef25(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs14(
|
|
2144
|
+
MenubarPrimitive.CheckboxItem,
|
|
2145
|
+
{
|
|
2146
|
+
ref,
|
|
2147
|
+
className: cn(
|
|
2148
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
2149
|
+
className
|
|
2150
|
+
),
|
|
2151
|
+
checked,
|
|
2152
|
+
...props,
|
|
2153
|
+
children: [
|
|
2154
|
+
/* @__PURE__ */ jsx26("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx26(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx26(CheckIcon3, { className: "h-4 w-4" }) }) }),
|
|
2155
|
+
children
|
|
2156
|
+
]
|
|
2157
|
+
}
|
|
2158
|
+
));
|
|
2159
|
+
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
2160
|
+
var MenubarRadioItem = forwardRef25(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
|
|
2161
|
+
MenubarPrimitive.RadioItem,
|
|
2162
|
+
{
|
|
2163
|
+
ref,
|
|
2164
|
+
className: cn(
|
|
2165
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
2166
|
+
className
|
|
2167
|
+
),
|
|
2168
|
+
...props,
|
|
2169
|
+
children: [
|
|
2170
|
+
/* @__PURE__ */ jsx26("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx26(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx26(CircleIcon3, { className: "h-2 w-2 fill-current" }) }) }),
|
|
2171
|
+
children
|
|
2172
|
+
]
|
|
2173
|
+
}
|
|
2174
|
+
));
|
|
2175
|
+
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
2176
|
+
var MenubarLabel = forwardRef25(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx26(
|
|
2177
|
+
MenubarPrimitive.Label,
|
|
2178
|
+
{
|
|
2179
|
+
ref,
|
|
2180
|
+
className: cn(
|
|
2181
|
+
"px-2 py-1.5 text-sm font-semibold",
|
|
2182
|
+
inset && "pl-8",
|
|
2183
|
+
className
|
|
2184
|
+
),
|
|
2185
|
+
...props
|
|
2186
|
+
}
|
|
2187
|
+
));
|
|
2188
|
+
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
2189
|
+
var MenubarSeparator = forwardRef25(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
|
|
2190
|
+
MenubarPrimitive.Separator,
|
|
2191
|
+
{
|
|
2192
|
+
ref,
|
|
2193
|
+
className: cn("-mx-1 my-1 h-px bg-muted", className),
|
|
2194
|
+
...props
|
|
2195
|
+
}
|
|
2196
|
+
));
|
|
2197
|
+
MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
|
|
2198
|
+
var MenubarShortcut = ({
|
|
2199
|
+
className,
|
|
2200
|
+
...props
|
|
2201
|
+
}) => {
|
|
2202
|
+
return /* @__PURE__ */ jsx26(
|
|
2203
|
+
"span",
|
|
2204
|
+
{
|
|
2205
|
+
className: cn(
|
|
2206
|
+
"ml-auto text-xs tracking-widest text-muted-foreground",
|
|
2207
|
+
className
|
|
2208
|
+
),
|
|
2209
|
+
...props
|
|
2210
|
+
}
|
|
2211
|
+
);
|
|
2212
|
+
};
|
|
2213
|
+
MenubarShortcut.displayName = "MenubarShortcut";
|
|
2214
|
+
|
|
2215
|
+
// src/components/NavigationMenu/NavigationMenu.web.tsx
|
|
2216
|
+
import { forwardRef as forwardRef26 } from "react";
|
|
2217
|
+
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
2218
|
+
import { cva as cva6 } from "class-variance-authority";
|
|
2219
|
+
import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2220
|
+
function ChevronDownIcon2(props) {
|
|
2221
|
+
return /* @__PURE__ */ jsx27("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: /* @__PURE__ */ jsx27("path", { d: "m6 9 6 6 6-6" }) });
|
|
2222
|
+
}
|
|
2223
|
+
var NavigationMenu = forwardRef26(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs15(
|
|
2224
|
+
NavigationMenuPrimitive.Root,
|
|
2225
|
+
{
|
|
2226
|
+
ref,
|
|
2227
|
+
className: cn(
|
|
2228
|
+
"relative z-10 flex max-w-max flex-1 items-center justify-center",
|
|
2229
|
+
className
|
|
2230
|
+
),
|
|
2231
|
+
...props,
|
|
2232
|
+
children: [
|
|
2233
|
+
children,
|
|
2234
|
+
/* @__PURE__ */ jsx27(NavigationMenuViewport, {})
|
|
2235
|
+
]
|
|
2236
|
+
}
|
|
2237
|
+
));
|
|
2238
|
+
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
2239
|
+
var NavigationMenuList = forwardRef26(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
2240
|
+
NavigationMenuPrimitive.List,
|
|
2241
|
+
{
|
|
2242
|
+
ref,
|
|
2243
|
+
className: cn(
|
|
2244
|
+
"group flex flex-1 list-none items-center justify-center space-x-1",
|
|
2245
|
+
className
|
|
2246
|
+
),
|
|
2247
|
+
...props
|
|
2248
|
+
}
|
|
2249
|
+
));
|
|
2250
|
+
NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
|
|
2251
|
+
var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
2252
|
+
var navigationMenuTriggerStyle = cva6(
|
|
2253
|
+
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"
|
|
2254
|
+
);
|
|
2255
|
+
var NavigationMenuTrigger = forwardRef26(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs15(
|
|
2256
|
+
NavigationMenuPrimitive.Trigger,
|
|
2257
|
+
{
|
|
2258
|
+
ref,
|
|
2259
|
+
className: cn(navigationMenuTriggerStyle(), "group", className),
|
|
2260
|
+
...props,
|
|
2261
|
+
children: [
|
|
2262
|
+
children,
|
|
2263
|
+
" ",
|
|
2264
|
+
/* @__PURE__ */ jsx27(
|
|
2265
|
+
ChevronDownIcon2,
|
|
2266
|
+
{
|
|
2267
|
+
className: "relative top-[1px] ml-1 h-3 w-3 transition duration-300 group-data-[state=open]:rotate-180",
|
|
2268
|
+
"aria-hidden": "true"
|
|
2269
|
+
}
|
|
2270
|
+
)
|
|
2271
|
+
]
|
|
2272
|
+
}
|
|
2273
|
+
));
|
|
2274
|
+
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
2275
|
+
var NavigationMenuContent = forwardRef26(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
2276
|
+
NavigationMenuPrimitive.Content,
|
|
2277
|
+
{
|
|
2278
|
+
ref,
|
|
2279
|
+
className: cn(
|
|
2280
|
+
"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto",
|
|
2281
|
+
className
|
|
2282
|
+
),
|
|
2283
|
+
...props
|
|
2284
|
+
}
|
|
2285
|
+
));
|
|
2286
|
+
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
2287
|
+
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
2288
|
+
var NavigationMenuViewport = forwardRef26(({ className, ...props }, ref) => /* @__PURE__ */ jsx27("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx27(
|
|
2289
|
+
NavigationMenuPrimitive.Viewport,
|
|
2290
|
+
{
|
|
2291
|
+
className: cn(
|
|
2292
|
+
"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
|
|
2293
|
+
className
|
|
2294
|
+
),
|
|
2295
|
+
ref,
|
|
2296
|
+
...props
|
|
2297
|
+
}
|
|
2298
|
+
) }));
|
|
2299
|
+
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
2300
|
+
var NavigationMenuIndicator = forwardRef26(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
2301
|
+
NavigationMenuPrimitive.Indicator,
|
|
2302
|
+
{
|
|
2303
|
+
ref,
|
|
2304
|
+
className: cn(
|
|
2305
|
+
"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
|
|
2306
|
+
className
|
|
2307
|
+
),
|
|
2308
|
+
...props,
|
|
2309
|
+
children: /* @__PURE__ */ jsx27("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
|
|
2310
|
+
}
|
|
2311
|
+
));
|
|
2312
|
+
NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
|
|
2313
|
+
|
|
2314
|
+
// src/components/Pagination/Pagination.web.tsx
|
|
2315
|
+
import { forwardRef as forwardRef27 } from "react";
|
|
2316
|
+
import { cva as cva7 } from "class-variance-authority";
|
|
2317
|
+
import { jsx as jsx28, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2318
|
+
var Pagination = forwardRef27(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
2319
|
+
"nav",
|
|
2320
|
+
{
|
|
2321
|
+
ref,
|
|
2322
|
+
role: "navigation",
|
|
2323
|
+
"aria-label": "pagination",
|
|
2324
|
+
className: cn("mx-auto flex w-full justify-center", className),
|
|
2325
|
+
...props
|
|
2326
|
+
}
|
|
2327
|
+
));
|
|
2328
|
+
Pagination.displayName = "Pagination";
|
|
2329
|
+
var PaginationContent = forwardRef27(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
2330
|
+
"ul",
|
|
2331
|
+
{
|
|
2332
|
+
ref,
|
|
2333
|
+
className: cn("flex flex-row items-center gap-1", className),
|
|
2334
|
+
...props
|
|
2335
|
+
}
|
|
2336
|
+
));
|
|
2337
|
+
PaginationContent.displayName = "PaginationContent";
|
|
2338
|
+
var PaginationItem = forwardRef27(({ className, ...props }, ref) => /* @__PURE__ */ jsx28("li", { ref, className: cn("", className), ...props }));
|
|
2339
|
+
PaginationItem.displayName = "PaginationItem";
|
|
2340
|
+
var paginationLinkVariants = cva7(
|
|
2341
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
|
|
2342
|
+
{
|
|
2343
|
+
variants: {
|
|
2344
|
+
size: {
|
|
2345
|
+
default: "h-9 px-4 py-2",
|
|
2346
|
+
icon: "h-9 w-9"
|
|
2347
|
+
}
|
|
2348
|
+
},
|
|
2349
|
+
defaultVariants: {
|
|
2350
|
+
size: "icon"
|
|
2351
|
+
}
|
|
2352
|
+
}
|
|
2353
|
+
);
|
|
2354
|
+
var PaginationLink = forwardRef27(
|
|
2355
|
+
({ className, isActive, size = "icon", ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
2356
|
+
"a",
|
|
2357
|
+
{
|
|
2358
|
+
ref,
|
|
2359
|
+
"aria-current": isActive ? "page" : void 0,
|
|
2360
|
+
className: cn(
|
|
2361
|
+
paginationLinkVariants({ size }),
|
|
2362
|
+
isActive ? "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground" : "hover:bg-accent hover:text-accent-foreground",
|
|
2363
|
+
className
|
|
2364
|
+
),
|
|
2365
|
+
...props
|
|
2366
|
+
}
|
|
2367
|
+
)
|
|
2368
|
+
);
|
|
2369
|
+
PaginationLink.displayName = "PaginationLink";
|
|
2370
|
+
var PaginationPrevious = forwardRef27(({ className, ...props }, ref) => /* @__PURE__ */ jsxs16(
|
|
2371
|
+
PaginationLink,
|
|
2372
|
+
{
|
|
2373
|
+
ref,
|
|
2374
|
+
"aria-label": "Go to previous page",
|
|
2375
|
+
size: "default",
|
|
2376
|
+
className: cn("gap-1 pl-2.5", className),
|
|
2377
|
+
...props,
|
|
2378
|
+
children: [
|
|
2379
|
+
/* @__PURE__ */ jsx28(
|
|
2380
|
+
"svg",
|
|
2381
|
+
{
|
|
2382
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2383
|
+
width: "16",
|
|
2384
|
+
height: "16",
|
|
2385
|
+
viewBox: "0 0 24 24",
|
|
2386
|
+
fill: "none",
|
|
2387
|
+
stroke: "currentColor",
|
|
2388
|
+
strokeWidth: "2",
|
|
2389
|
+
strokeLinecap: "round",
|
|
2390
|
+
strokeLinejoin: "round",
|
|
2391
|
+
children: /* @__PURE__ */ jsx28("path", { d: "m15 18-6-6 6-6" })
|
|
2392
|
+
}
|
|
2393
|
+
),
|
|
2394
|
+
/* @__PURE__ */ jsx28("span", { children: "Previous" })
|
|
2395
|
+
]
|
|
2396
|
+
}
|
|
2397
|
+
));
|
|
2398
|
+
PaginationPrevious.displayName = "PaginationPrevious";
|
|
2399
|
+
var PaginationNext = forwardRef27(
|
|
2400
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsxs16(
|
|
2401
|
+
PaginationLink,
|
|
2402
|
+
{
|
|
2403
|
+
ref,
|
|
2404
|
+
"aria-label": "Go to next page",
|
|
2405
|
+
size: "default",
|
|
2406
|
+
className: cn("gap-1 pr-2.5", className),
|
|
2407
|
+
...props,
|
|
2408
|
+
children: [
|
|
2409
|
+
/* @__PURE__ */ jsx28("span", { children: "Next" }),
|
|
2410
|
+
/* @__PURE__ */ jsx28(
|
|
2411
|
+
"svg",
|
|
2412
|
+
{
|
|
2413
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2414
|
+
width: "16",
|
|
2415
|
+
height: "16",
|
|
2416
|
+
viewBox: "0 0 24 24",
|
|
2417
|
+
fill: "none",
|
|
2418
|
+
stroke: "currentColor",
|
|
2419
|
+
strokeWidth: "2",
|
|
2420
|
+
strokeLinecap: "round",
|
|
2421
|
+
strokeLinejoin: "round",
|
|
2422
|
+
children: /* @__PURE__ */ jsx28("path", { d: "m9 18 6-6-6-6" })
|
|
2423
|
+
}
|
|
2424
|
+
)
|
|
2425
|
+
]
|
|
2426
|
+
}
|
|
2427
|
+
)
|
|
2428
|
+
);
|
|
2429
|
+
PaginationNext.displayName = "PaginationNext";
|
|
2430
|
+
var PaginationEllipsis = forwardRef27(({ className, ...props }, ref) => /* @__PURE__ */ jsxs16(
|
|
2431
|
+
"span",
|
|
2432
|
+
{
|
|
2433
|
+
ref,
|
|
2434
|
+
"aria-hidden": true,
|
|
2435
|
+
className: cn("flex h-9 w-9 items-center justify-center", className),
|
|
2436
|
+
...props,
|
|
2437
|
+
children: [
|
|
2438
|
+
/* @__PURE__ */ jsxs16(
|
|
2439
|
+
"svg",
|
|
2440
|
+
{
|
|
2441
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2442
|
+
width: "16",
|
|
2443
|
+
height: "16",
|
|
2444
|
+
viewBox: "0 0 24 24",
|
|
2445
|
+
fill: "none",
|
|
2446
|
+
stroke: "currentColor",
|
|
2447
|
+
strokeWidth: "2",
|
|
2448
|
+
strokeLinecap: "round",
|
|
2449
|
+
strokeLinejoin: "round",
|
|
2450
|
+
children: [
|
|
2451
|
+
/* @__PURE__ */ jsx28("circle", { cx: "12", cy: "12", r: "1" }),
|
|
2452
|
+
/* @__PURE__ */ jsx28("circle", { cx: "19", cy: "12", r: "1" }),
|
|
2453
|
+
/* @__PURE__ */ jsx28("circle", { cx: "5", cy: "12", r: "1" })
|
|
2454
|
+
]
|
|
2455
|
+
}
|
|
2456
|
+
),
|
|
2457
|
+
/* @__PURE__ */ jsx28("span", { className: "sr-only", children: "More pages" })
|
|
2458
|
+
]
|
|
2459
|
+
}
|
|
2460
|
+
));
|
|
2461
|
+
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
2462
|
+
|
|
2463
|
+
// src/components/Popover/Popover.web.tsx
|
|
2464
|
+
import { forwardRef as forwardRef28 } from "react";
|
|
2465
|
+
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
2466
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
2467
|
+
var Popover3 = PopoverPrimitive.Root;
|
|
2468
|
+
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
2469
|
+
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
2470
|
+
var PopoverContent = forwardRef28(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx29(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx29(
|
|
2471
|
+
PopoverPrimitive.Content,
|
|
2472
|
+
{
|
|
2473
|
+
ref,
|
|
2474
|
+
align,
|
|
2475
|
+
sideOffset,
|
|
2476
|
+
className: cn(
|
|
2477
|
+
"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
2478
|
+
className
|
|
2479
|
+
),
|
|
2480
|
+
...props
|
|
2481
|
+
}
|
|
2482
|
+
) }));
|
|
2483
|
+
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
2484
|
+
|
|
2485
|
+
// src/components/Progress/Progress.web.tsx
|
|
2486
|
+
import { forwardRef as forwardRef29 } from "react";
|
|
2487
|
+
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
2488
|
+
|
|
2489
|
+
// src/components/Progress/useProgress.ts
|
|
2490
|
+
function useProgress({ value = 0, max = 100 } = {}) {
|
|
2491
|
+
const clampedValue = Math.min(Math.max(value, 0), max);
|
|
2492
|
+
const percentage = max > 0 ? clampedValue / max : 0;
|
|
2493
|
+
return { clampedValue, percentage, max };
|
|
2494
|
+
}
|
|
2495
|
+
|
|
2496
|
+
// src/components/Progress/Progress.web.tsx
|
|
2497
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
2498
|
+
var Progress = forwardRef29(({ className, value, ...props }, ref) => {
|
|
2499
|
+
const { percentage } = useProgress({ value: value ?? 0 });
|
|
2500
|
+
return /* @__PURE__ */ jsx30(
|
|
2501
|
+
ProgressPrimitive.Root,
|
|
2502
|
+
{
|
|
2503
|
+
ref,
|
|
2504
|
+
className: cn(
|
|
2505
|
+
"relative h-2 w-full overflow-hidden rounded-full bg-primary/20",
|
|
2506
|
+
className
|
|
2507
|
+
),
|
|
2508
|
+
...props,
|
|
2509
|
+
children: /* @__PURE__ */ jsx30(
|
|
2510
|
+
ProgressPrimitive.Indicator,
|
|
2511
|
+
{
|
|
2512
|
+
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
2513
|
+
style: { transform: `translateX(-${100 - percentage * 100}%)` }
|
|
2514
|
+
}
|
|
2515
|
+
)
|
|
2516
|
+
}
|
|
2517
|
+
);
|
|
2518
|
+
});
|
|
2519
|
+
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
2520
|
+
|
|
2521
|
+
// src/components/RadioGroup/RadioGroup.web.tsx
|
|
2522
|
+
import { forwardRef as forwardRef30 } from "react";
|
|
2523
|
+
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
2524
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
2525
|
+
var RadioGroup4 = forwardRef30(({ className, ...props }, ref) => {
|
|
2526
|
+
return /* @__PURE__ */ jsx31(
|
|
2527
|
+
RadioGroupPrimitive.Root,
|
|
2528
|
+
{
|
|
2529
|
+
className: cn("grid gap-2", className),
|
|
2530
|
+
...props,
|
|
2531
|
+
ref
|
|
2532
|
+
}
|
|
2533
|
+
);
|
|
2534
|
+
});
|
|
2535
|
+
RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
|
|
2536
|
+
var RadioGroupItem = forwardRef30(({ className, ...props }, ref) => {
|
|
2537
|
+
return /* @__PURE__ */ jsx31(
|
|
2538
|
+
RadioGroupPrimitive.Item,
|
|
2539
|
+
{
|
|
2540
|
+
ref,
|
|
2541
|
+
className: cn(
|
|
2542
|
+
"aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
2543
|
+
className
|
|
2544
|
+
),
|
|
2545
|
+
...props,
|
|
2546
|
+
children: /* @__PURE__ */ jsx31(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx31(
|
|
2547
|
+
"svg",
|
|
2548
|
+
{
|
|
2549
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2550
|
+
viewBox: "0 0 24 24",
|
|
2551
|
+
fill: "currentColor",
|
|
2552
|
+
className: "h-3.5 w-3.5",
|
|
2553
|
+
children: /* @__PURE__ */ jsx31("circle", { cx: "12", cy: "12", r: "6" })
|
|
2554
|
+
}
|
|
2555
|
+
) })
|
|
2556
|
+
}
|
|
2557
|
+
);
|
|
2558
|
+
});
|
|
2559
|
+
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
2560
|
+
|
|
2561
|
+
// src/components/ResizablePanel/ResizablePanel.web.tsx
|
|
2562
|
+
import {
|
|
2563
|
+
Group as Group4,
|
|
2564
|
+
Panel,
|
|
2565
|
+
Separator as Separator4
|
|
2566
|
+
} from "react-resizable-panels";
|
|
2567
|
+
import { jsx as jsx32, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2568
|
+
function ResizablePanelGroup({
|
|
2569
|
+
className,
|
|
2570
|
+
direction = "horizontal",
|
|
2571
|
+
children
|
|
2572
|
+
}) {
|
|
2573
|
+
return /* @__PURE__ */ jsx32(
|
|
2574
|
+
Group4,
|
|
2575
|
+
{
|
|
2576
|
+
orientation: direction,
|
|
2577
|
+
className: cn(
|
|
2578
|
+
"flex h-full w-full data-[orientation=vertical]:flex-col",
|
|
2579
|
+
className
|
|
2580
|
+
),
|
|
2581
|
+
children
|
|
2582
|
+
}
|
|
2583
|
+
);
|
|
2584
|
+
}
|
|
2585
|
+
function ResizablePanel({
|
|
2586
|
+
className,
|
|
2587
|
+
...props
|
|
2588
|
+
}) {
|
|
2589
|
+
return /* @__PURE__ */ jsx32(Panel, { className: cn("relative overflow-auto", className), ...props });
|
|
2590
|
+
}
|
|
2591
|
+
function ResizableHandle({
|
|
2592
|
+
className,
|
|
2593
|
+
withHandle,
|
|
2594
|
+
...props
|
|
2595
|
+
}) {
|
|
2596
|
+
return /* @__PURE__ */ jsx32(
|
|
2597
|
+
Separator4,
|
|
2598
|
+
{
|
|
2599
|
+
className: cn(
|
|
2600
|
+
"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[orientation=vertical]:h-px data-[orientation=vertical]:w-full data-[orientation=vertical]:after:left-0 data-[orientation=vertical]:after:h-1 data-[orientation=vertical]:after:w-full data-[orientation=vertical]:after:-translate-y-1/2 data-[orientation=vertical]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",
|
|
2601
|
+
className
|
|
2602
|
+
),
|
|
2603
|
+
...props,
|
|
2604
|
+
children: withHandle && /* @__PURE__ */ jsx32("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsxs17(
|
|
2605
|
+
"svg",
|
|
2606
|
+
{
|
|
2607
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2608
|
+
width: "10",
|
|
2609
|
+
height: "10",
|
|
2610
|
+
viewBox: "0 0 24 24",
|
|
2611
|
+
fill: "none",
|
|
2612
|
+
stroke: "currentColor",
|
|
2613
|
+
strokeWidth: "2",
|
|
2614
|
+
strokeLinecap: "round",
|
|
2615
|
+
strokeLinejoin: "round",
|
|
2616
|
+
children: [
|
|
2617
|
+
/* @__PURE__ */ jsx32("circle", { cx: "12", cy: "5", r: "1" }),
|
|
2618
|
+
/* @__PURE__ */ jsx32("circle", { cx: "12", cy: "12", r: "1" }),
|
|
2619
|
+
/* @__PURE__ */ jsx32("circle", { cx: "12", cy: "19", r: "1" }),
|
|
2620
|
+
/* @__PURE__ */ jsx32("circle", { cx: "19", cy: "5", r: "1" }),
|
|
2621
|
+
/* @__PURE__ */ jsx32("circle", { cx: "19", cy: "12", r: "1" }),
|
|
2622
|
+
/* @__PURE__ */ jsx32("circle", { cx: "19", cy: "19", r: "1" })
|
|
2623
|
+
]
|
|
2624
|
+
}
|
|
2625
|
+
) })
|
|
2626
|
+
}
|
|
2627
|
+
);
|
|
2628
|
+
}
|
|
2629
|
+
|
|
2630
|
+
// src/components/ScrollArea/ScrollArea.web.tsx
|
|
2631
|
+
import { forwardRef as forwardRef31 } from "react";
|
|
2632
|
+
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
2633
|
+
import { jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2634
|
+
var ScrollArea = forwardRef31(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs18(
|
|
2635
|
+
ScrollAreaPrimitive.Root,
|
|
2636
|
+
{
|
|
2637
|
+
ref,
|
|
2638
|
+
className: cn("relative overflow-hidden", className),
|
|
2639
|
+
...props,
|
|
2640
|
+
children: [
|
|
2641
|
+
/* @__PURE__ */ jsx33(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
|
|
2642
|
+
/* @__PURE__ */ jsx33(ScrollBar, {}),
|
|
2643
|
+
/* @__PURE__ */ jsx33(ScrollAreaPrimitive.Corner, {})
|
|
2644
|
+
]
|
|
2645
|
+
}
|
|
2646
|
+
));
|
|
2647
|
+
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
2648
|
+
var ScrollBar = forwardRef31(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx33(
|
|
2649
|
+
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
2650
|
+
{
|
|
2651
|
+
ref,
|
|
2652
|
+
orientation,
|
|
2653
|
+
className: cn(
|
|
2654
|
+
"flex touch-none select-none transition-colors",
|
|
2655
|
+
orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]",
|
|
2656
|
+
orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
|
|
2657
|
+
className
|
|
2658
|
+
),
|
|
2659
|
+
...props,
|
|
2660
|
+
children: /* @__PURE__ */ jsx33(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
|
|
2661
|
+
}
|
|
2662
|
+
));
|
|
2663
|
+
ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
|
|
2664
|
+
|
|
2665
|
+
// src/components/Select/Select.web.tsx
|
|
2666
|
+
import { forwardRef as forwardRef32 } from "react";
|
|
2667
|
+
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
2668
|
+
import { jsx as jsx34, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2669
|
+
var Select = SelectPrimitive.Root;
|
|
2670
|
+
var SelectGroup = SelectPrimitive.Group;
|
|
2671
|
+
var SelectValue = SelectPrimitive.Value;
|
|
2672
|
+
var SelectTrigger = forwardRef32(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs19(
|
|
2673
|
+
SelectPrimitive.Trigger,
|
|
2674
|
+
{
|
|
2675
|
+
ref,
|
|
2676
|
+
className: cn(
|
|
2677
|
+
"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
|
|
2678
|
+
className
|
|
2679
|
+
),
|
|
2680
|
+
...props,
|
|
2681
|
+
children: [
|
|
2682
|
+
children,
|
|
2683
|
+
/* @__PURE__ */ jsx34(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx34(
|
|
2684
|
+
"svg",
|
|
2685
|
+
{
|
|
2686
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2687
|
+
width: "16",
|
|
2688
|
+
height: "16",
|
|
2689
|
+
viewBox: "0 0 24 24",
|
|
2690
|
+
fill: "none",
|
|
2691
|
+
stroke: "currentColor",
|
|
2692
|
+
strokeWidth: "2",
|
|
2693
|
+
strokeLinecap: "round",
|
|
2694
|
+
strokeLinejoin: "round",
|
|
2695
|
+
className: "h-4 w-4 opacity-50",
|
|
2696
|
+
children: /* @__PURE__ */ jsx34("path", { d: "m6 9 6 6 6-6" })
|
|
2697
|
+
}
|
|
2698
|
+
) })
|
|
2699
|
+
]
|
|
2700
|
+
}
|
|
2701
|
+
));
|
|
2702
|
+
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
2703
|
+
var SelectScrollUpButton = forwardRef32(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
|
|
2704
|
+
SelectPrimitive.ScrollUpButton,
|
|
2705
|
+
{
|
|
2706
|
+
ref,
|
|
2707
|
+
className: cn(
|
|
2708
|
+
"flex cursor-default items-center justify-center py-1",
|
|
2709
|
+
className
|
|
2710
|
+
),
|
|
2711
|
+
...props,
|
|
2712
|
+
children: /* @__PURE__ */ jsx34(
|
|
2713
|
+
"svg",
|
|
2714
|
+
{
|
|
2715
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2716
|
+
width: "16",
|
|
2717
|
+
height: "16",
|
|
2718
|
+
viewBox: "0 0 24 24",
|
|
2719
|
+
fill: "none",
|
|
2720
|
+
stroke: "currentColor",
|
|
2721
|
+
strokeWidth: "2",
|
|
2722
|
+
strokeLinecap: "round",
|
|
2723
|
+
strokeLinejoin: "round",
|
|
2724
|
+
className: "h-4 w-4",
|
|
2725
|
+
children: /* @__PURE__ */ jsx34("path", { d: "m18 15-6-6-6 6" })
|
|
2726
|
+
}
|
|
2727
|
+
)
|
|
2728
|
+
}
|
|
2729
|
+
));
|
|
2730
|
+
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
2731
|
+
var SelectScrollDownButton = forwardRef32(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
|
|
2732
|
+
SelectPrimitive.ScrollDownButton,
|
|
2733
|
+
{
|
|
2734
|
+
ref,
|
|
2735
|
+
className: cn(
|
|
2736
|
+
"flex cursor-default items-center justify-center py-1",
|
|
2737
|
+
className
|
|
2738
|
+
),
|
|
2739
|
+
...props,
|
|
2740
|
+
children: /* @__PURE__ */ jsx34(
|
|
2741
|
+
"svg",
|
|
2742
|
+
{
|
|
2743
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2744
|
+
width: "16",
|
|
2745
|
+
height: "16",
|
|
2746
|
+
viewBox: "0 0 24 24",
|
|
2747
|
+
fill: "none",
|
|
2748
|
+
stroke: "currentColor",
|
|
2749
|
+
strokeWidth: "2",
|
|
2750
|
+
strokeLinecap: "round",
|
|
2751
|
+
strokeLinejoin: "round",
|
|
2752
|
+
className: "h-4 w-4",
|
|
2753
|
+
children: /* @__PURE__ */ jsx34("path", { d: "m6 9 6 6 6-6" })
|
|
2754
|
+
}
|
|
2755
|
+
)
|
|
2756
|
+
}
|
|
2757
|
+
));
|
|
2758
|
+
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
2759
|
+
var SelectContent = forwardRef32(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx34(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs19(
|
|
2760
|
+
SelectPrimitive.Content,
|
|
2761
|
+
{
|
|
2762
|
+
ref,
|
|
2763
|
+
className: cn(
|
|
2764
|
+
"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
2765
|
+
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
2766
|
+
className
|
|
2767
|
+
),
|
|
2768
|
+
position,
|
|
2769
|
+
...props,
|
|
2770
|
+
children: [
|
|
2771
|
+
/* @__PURE__ */ jsx34(SelectScrollUpButton, {}),
|
|
2772
|
+
/* @__PURE__ */ jsx34(
|
|
2773
|
+
SelectPrimitive.Viewport,
|
|
2774
|
+
{
|
|
2775
|
+
className: cn(
|
|
2776
|
+
"p-1",
|
|
2777
|
+
position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
|
|
2778
|
+
),
|
|
2779
|
+
children
|
|
2780
|
+
}
|
|
2781
|
+
),
|
|
2782
|
+
/* @__PURE__ */ jsx34(SelectScrollDownButton, {})
|
|
2783
|
+
]
|
|
2784
|
+
}
|
|
2785
|
+
) }));
|
|
2786
|
+
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
2787
|
+
var SelectLabel = forwardRef32(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
|
|
2788
|
+
SelectPrimitive.Label,
|
|
2789
|
+
{
|
|
2790
|
+
ref,
|
|
2791
|
+
className: cn("px-2 py-1.5 text-sm font-semibold", className),
|
|
2792
|
+
...props
|
|
2793
|
+
}
|
|
2794
|
+
));
|
|
2795
|
+
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
2796
|
+
var SelectItem = forwardRef32(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs19(
|
|
2797
|
+
SelectPrimitive.Item,
|
|
2798
|
+
{
|
|
2799
|
+
ref,
|
|
2800
|
+
className: cn(
|
|
2801
|
+
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
2802
|
+
className
|
|
2803
|
+
),
|
|
2804
|
+
...props,
|
|
2805
|
+
children: [
|
|
2806
|
+
/* @__PURE__ */ jsx34("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx34(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx34(
|
|
2807
|
+
"svg",
|
|
2808
|
+
{
|
|
2809
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2810
|
+
width: "16",
|
|
2811
|
+
height: "16",
|
|
2812
|
+
viewBox: "0 0 24 24",
|
|
2813
|
+
fill: "none",
|
|
2814
|
+
stroke: "currentColor",
|
|
2815
|
+
strokeWidth: "2",
|
|
2816
|
+
strokeLinecap: "round",
|
|
2817
|
+
strokeLinejoin: "round",
|
|
2818
|
+
className: "h-4 w-4",
|
|
2819
|
+
children: /* @__PURE__ */ jsx34("polyline", { points: "20 6 9 17 4 12" })
|
|
2820
|
+
}
|
|
2821
|
+
) }) }),
|
|
2822
|
+
/* @__PURE__ */ jsx34(SelectPrimitive.ItemText, { children })
|
|
2823
|
+
]
|
|
2824
|
+
}
|
|
2825
|
+
));
|
|
2826
|
+
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
2827
|
+
var SelectSeparator = forwardRef32(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
|
|
2828
|
+
SelectPrimitive.Separator,
|
|
2829
|
+
{
|
|
2830
|
+
ref,
|
|
2831
|
+
className: cn("-mx-1 my-1 h-px bg-muted", className),
|
|
2832
|
+
...props
|
|
2833
|
+
}
|
|
2834
|
+
));
|
|
2835
|
+
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
2836
|
+
|
|
2837
|
+
// src/components/Separator/Separator.web.tsx
|
|
2838
|
+
import { forwardRef as forwardRef33 } from "react";
|
|
2839
|
+
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
2840
|
+
import { cva as cva8 } from "class-variance-authority";
|
|
2841
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
2842
|
+
var separatorVariants = cva8("shrink-0 bg-border", {
|
|
2843
|
+
variants: {
|
|
2844
|
+
orientation: {
|
|
2845
|
+
horizontal: "h-[1px] w-full",
|
|
2846
|
+
vertical: "h-full w-[1px]"
|
|
2847
|
+
}
|
|
2848
|
+
},
|
|
2849
|
+
defaultVariants: {
|
|
2850
|
+
orientation: "horizontal"
|
|
2851
|
+
}
|
|
2852
|
+
});
|
|
2853
|
+
var Separator6 = forwardRef33(
|
|
2854
|
+
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx35(
|
|
2855
|
+
SeparatorPrimitive.Root,
|
|
2856
|
+
{
|
|
2857
|
+
ref,
|
|
2858
|
+
decorative,
|
|
2859
|
+
orientation,
|
|
2860
|
+
className: cn(separatorVariants({ orientation }), className),
|
|
2861
|
+
...props
|
|
2862
|
+
}
|
|
2863
|
+
)
|
|
2864
|
+
);
|
|
2865
|
+
Separator6.displayName = SeparatorPrimitive.Root.displayName;
|
|
2866
|
+
|
|
2867
|
+
// src/components/Sheet/Sheet.web.tsx
|
|
2868
|
+
import { forwardRef as forwardRef34 } from "react";
|
|
2869
|
+
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
2870
|
+
import { cva as cva9 } from "class-variance-authority";
|
|
2871
|
+
import { jsx as jsx36, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
2872
|
+
function XIcon2(props) {
|
|
2873
|
+
return /* @__PURE__ */ jsxs20("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [
|
|
2874
|
+
/* @__PURE__ */ jsx36("path", { d: "M18 6 6 18" }),
|
|
2875
|
+
/* @__PURE__ */ jsx36("path", { d: "m6 6 12 12" })
|
|
2876
|
+
] });
|
|
2877
|
+
}
|
|
2878
|
+
var Sheet = SheetPrimitive.Root;
|
|
2879
|
+
var SheetTrigger = SheetPrimitive.Trigger;
|
|
2880
|
+
var SheetClose = SheetPrimitive.Close;
|
|
2881
|
+
var SheetPortal = SheetPrimitive.Portal;
|
|
2882
|
+
var SheetOverlay = forwardRef34(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
|
|
2883
|
+
SheetPrimitive.Overlay,
|
|
2884
|
+
{
|
|
2885
|
+
className: cn(
|
|
2886
|
+
"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
2887
|
+
className
|
|
2888
|
+
),
|
|
2889
|
+
...props,
|
|
2890
|
+
ref
|
|
2891
|
+
}
|
|
2892
|
+
));
|
|
2893
|
+
SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
|
|
2894
|
+
var sheetVariants = cva9(
|
|
2895
|
+
"fixed z-50 gap-4 bg-background text-foreground p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
2896
|
+
{
|
|
2897
|
+
variants: {
|
|
2898
|
+
side: {
|
|
2899
|
+
top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
2900
|
+
bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
|
|
2901
|
+
left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
|
|
2902
|
+
right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
|
|
2903
|
+
}
|
|
2904
|
+
},
|
|
2905
|
+
defaultVariants: {
|
|
2906
|
+
side: "right"
|
|
2907
|
+
}
|
|
2908
|
+
}
|
|
2909
|
+
);
|
|
2910
|
+
var SheetContent = forwardRef34(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs20(SheetPortal, { children: [
|
|
2911
|
+
/* @__PURE__ */ jsx36(SheetOverlay, {}),
|
|
2912
|
+
/* @__PURE__ */ jsxs20(
|
|
2913
|
+
SheetPrimitive.Content,
|
|
2914
|
+
{
|
|
2915
|
+
ref,
|
|
2916
|
+
className: cn(sheetVariants({ side }), className),
|
|
2917
|
+
...props,
|
|
2918
|
+
children: [
|
|
2919
|
+
/* @__PURE__ */ jsxs20(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
|
|
2920
|
+
/* @__PURE__ */ jsx36(XIcon2, { className: "h-4 w-4" }),
|
|
2921
|
+
/* @__PURE__ */ jsx36("span", { className: "sr-only", children: "Close" })
|
|
2922
|
+
] }),
|
|
2923
|
+
children
|
|
2924
|
+
]
|
|
2925
|
+
}
|
|
2926
|
+
)
|
|
2927
|
+
] }));
|
|
2928
|
+
SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
2929
|
+
var SheetHeader = ({
|
|
2930
|
+
className,
|
|
2931
|
+
...props
|
|
2932
|
+
}) => /* @__PURE__ */ jsx36(
|
|
2933
|
+
"div",
|
|
2934
|
+
{
|
|
2935
|
+
className: cn(
|
|
2936
|
+
"flex flex-col space-y-2 text-center sm:text-left",
|
|
2937
|
+
className
|
|
2938
|
+
),
|
|
2939
|
+
...props
|
|
2940
|
+
}
|
|
2941
|
+
);
|
|
2942
|
+
SheetHeader.displayName = "SheetHeader";
|
|
2943
|
+
var SheetFooter = ({
|
|
2944
|
+
className,
|
|
2945
|
+
...props
|
|
2946
|
+
}) => /* @__PURE__ */ jsx36(
|
|
2947
|
+
"div",
|
|
2948
|
+
{
|
|
2949
|
+
className: cn(
|
|
2950
|
+
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
2951
|
+
className
|
|
2952
|
+
),
|
|
2953
|
+
...props
|
|
2954
|
+
}
|
|
2955
|
+
);
|
|
2956
|
+
SheetFooter.displayName = "SheetFooter";
|
|
2957
|
+
var SheetTitle = forwardRef34(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
|
|
2958
|
+
SheetPrimitive.Title,
|
|
2959
|
+
{
|
|
2960
|
+
ref,
|
|
2961
|
+
className: cn("text-lg font-semibold text-foreground", className),
|
|
2962
|
+
...props
|
|
2963
|
+
}
|
|
2964
|
+
));
|
|
2965
|
+
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
2966
|
+
var SheetDescription = forwardRef34(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
|
|
2967
|
+
SheetPrimitive.Description,
|
|
2968
|
+
{
|
|
2969
|
+
ref,
|
|
2970
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
2971
|
+
...props
|
|
2972
|
+
}
|
|
2973
|
+
));
|
|
2974
|
+
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
2975
|
+
|
|
2976
|
+
// src/components/Sidebar/Sidebar.web.tsx
|
|
2977
|
+
import {
|
|
2978
|
+
forwardRef as forwardRef35,
|
|
2979
|
+
createContext as createContext4,
|
|
2980
|
+
useContext as useContext4
|
|
2981
|
+
} from "react";
|
|
2982
|
+
|
|
2983
|
+
// src/components/Sidebar/useSidebar.ts
|
|
2984
|
+
import { useCallback as useCallback5 } from "react";
|
|
2985
|
+
|
|
2986
|
+
// src/hooks/useControllableState.ts
|
|
2987
|
+
import { useState as useState7, useCallback as useCallback4, useRef as useRef2 } from "react";
|
|
2988
|
+
function useControllableState({
|
|
2989
|
+
value: controlledValue,
|
|
2990
|
+
defaultValue,
|
|
2991
|
+
onChange
|
|
2992
|
+
}) {
|
|
2993
|
+
const [uncontrolledValue, setUncontrolledValue] = useState7(defaultValue);
|
|
2994
|
+
const isControlled = controlledValue !== void 0;
|
|
2995
|
+
const value = isControlled ? controlledValue : uncontrolledValue;
|
|
2996
|
+
const onChangeRef = useRef2(onChange);
|
|
2997
|
+
onChangeRef.current = onChange;
|
|
2998
|
+
const setValue = useCallback4(
|
|
2999
|
+
(next) => {
|
|
3000
|
+
const nextValue = typeof next === "function" ? next(value) : next;
|
|
3001
|
+
if (!isControlled) {
|
|
3002
|
+
setUncontrolledValue(nextValue);
|
|
3003
|
+
}
|
|
3004
|
+
onChangeRef.current?.(nextValue);
|
|
3005
|
+
},
|
|
3006
|
+
[isControlled, value]
|
|
3007
|
+
);
|
|
3008
|
+
return [value, setValue];
|
|
3009
|
+
}
|
|
3010
|
+
|
|
3011
|
+
// src/components/Sidebar/useSidebar.ts
|
|
3012
|
+
function useSidebar({
|
|
3013
|
+
open: controlledOpen,
|
|
3014
|
+
defaultOpen = true,
|
|
3015
|
+
onOpenChange
|
|
3016
|
+
} = {}) {
|
|
3017
|
+
const [open, setOpen] = useControllableState({
|
|
3018
|
+
value: controlledOpen,
|
|
3019
|
+
defaultValue: defaultOpen,
|
|
3020
|
+
onChange: onOpenChange
|
|
3021
|
+
});
|
|
3022
|
+
const toggleSidebar = useCallback5(() => {
|
|
3023
|
+
setOpen((prev) => !prev);
|
|
3024
|
+
}, [setOpen]);
|
|
3025
|
+
return { open, setOpen, toggleSidebar };
|
|
3026
|
+
}
|
|
3027
|
+
|
|
3028
|
+
// src/components/Sidebar/Sidebar.web.tsx
|
|
3029
|
+
import { jsx as jsx37, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
3030
|
+
var SidebarContext = createContext4({
|
|
3031
|
+
open: true,
|
|
3032
|
+
setOpen: () => {
|
|
3033
|
+
},
|
|
3034
|
+
toggleSidebar: () => {
|
|
3035
|
+
}
|
|
3036
|
+
});
|
|
3037
|
+
function useSidebarContext() {
|
|
3038
|
+
const context = useContext4(SidebarContext);
|
|
3039
|
+
if (!context) {
|
|
3040
|
+
throw new Error("useSidebarContext must be used within a SidebarProvider.");
|
|
3041
|
+
}
|
|
3042
|
+
return context;
|
|
3043
|
+
}
|
|
3044
|
+
var SidebarProvider = forwardRef35(({ defaultOpen = true, open: controlledOpen, onOpenChange, className, children, ...props }, ref) => {
|
|
3045
|
+
const { open, setOpen, toggleSidebar } = useSidebar({
|
|
3046
|
+
open: controlledOpen,
|
|
3047
|
+
defaultOpen,
|
|
3048
|
+
onOpenChange
|
|
3049
|
+
});
|
|
3050
|
+
return /* @__PURE__ */ jsx37(SidebarContext.Provider, { value: { open, setOpen, toggleSidebar }, children: /* @__PURE__ */ jsx37(
|
|
3051
|
+
"div",
|
|
3052
|
+
{
|
|
3053
|
+
ref,
|
|
3054
|
+
className: cn("flex min-h-svh w-full", className),
|
|
3055
|
+
...props,
|
|
3056
|
+
children
|
|
3057
|
+
}
|
|
3058
|
+
) });
|
|
3059
|
+
});
|
|
3060
|
+
SidebarProvider.displayName = "SidebarProvider";
|
|
3061
|
+
var Sidebar = forwardRef35(({ side = "left", collapsible = "offcanvas", className, children, ...props }, ref) => {
|
|
3062
|
+
const { open } = useSidebarContext();
|
|
3063
|
+
if (collapsible === "none") {
|
|
3064
|
+
return /* @__PURE__ */ jsx37(
|
|
3065
|
+
"div",
|
|
3066
|
+
{
|
|
3067
|
+
ref,
|
|
3068
|
+
className: cn(
|
|
3069
|
+
"flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground",
|
|
3070
|
+
className
|
|
3071
|
+
),
|
|
3072
|
+
...props,
|
|
3073
|
+
children
|
|
3074
|
+
}
|
|
3075
|
+
);
|
|
3076
|
+
}
|
|
3077
|
+
return /* @__PURE__ */ jsx37(
|
|
3078
|
+
"div",
|
|
3079
|
+
{
|
|
3080
|
+
ref,
|
|
3081
|
+
className: cn(
|
|
3082
|
+
"group/sidebar relative flex flex-col bg-sidebar text-sidebar-foreground transition-[width] duration-200 ease-linear",
|
|
3083
|
+
open ? "w-[--sidebar-width]" : collapsible === "icon" ? "w-[--sidebar-width-icon]" : "w-0",
|
|
3084
|
+
side === "right" && "order-last",
|
|
3085
|
+
className
|
|
3086
|
+
),
|
|
3087
|
+
"data-state": open ? "expanded" : "collapsed",
|
|
3088
|
+
"data-side": side,
|
|
3089
|
+
...props,
|
|
3090
|
+
children: /* @__PURE__ */ jsx37(
|
|
3091
|
+
"div",
|
|
3092
|
+
{
|
|
3093
|
+
className: cn(
|
|
3094
|
+
"flex h-full w-[--sidebar-width] flex-col overflow-hidden",
|
|
3095
|
+
!open && collapsible === "offcanvas" && "invisible"
|
|
3096
|
+
),
|
|
3097
|
+
children
|
|
3098
|
+
}
|
|
3099
|
+
)
|
|
3100
|
+
}
|
|
3101
|
+
);
|
|
3102
|
+
});
|
|
3103
|
+
Sidebar.displayName = "Sidebar";
|
|
3104
|
+
var SidebarHeader = forwardRef35(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
3105
|
+
"div",
|
|
3106
|
+
{
|
|
3107
|
+
ref,
|
|
3108
|
+
className: cn("flex flex-col gap-2 p-2", className),
|
|
3109
|
+
...props
|
|
3110
|
+
}
|
|
3111
|
+
));
|
|
3112
|
+
SidebarHeader.displayName = "SidebarHeader";
|
|
3113
|
+
var SidebarContent = forwardRef35(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
3114
|
+
"div",
|
|
3115
|
+
{
|
|
3116
|
+
ref,
|
|
3117
|
+
className: cn(
|
|
3118
|
+
"flex min-h-0 flex-1 flex-col gap-2 overflow-auto p-2",
|
|
3119
|
+
className
|
|
3120
|
+
),
|
|
3121
|
+
...props
|
|
3122
|
+
}
|
|
3123
|
+
));
|
|
3124
|
+
SidebarContent.displayName = "SidebarContent";
|
|
3125
|
+
var SidebarFooter = forwardRef35(({ className, ...props }, ref) => /* @__PURE__ */ jsx37(
|
|
3126
|
+
"div",
|
|
3127
|
+
{
|
|
3128
|
+
ref,
|
|
3129
|
+
className: cn("flex flex-col gap-2 p-2", className),
|
|
3130
|
+
...props
|
|
3131
|
+
}
|
|
3132
|
+
));
|
|
3133
|
+
SidebarFooter.displayName = "SidebarFooter";
|
|
3134
|
+
var SidebarTrigger = forwardRef35(({ className, onClick, ...props }, ref) => {
|
|
3135
|
+
const { toggleSidebar } = useSidebarContext();
|
|
3136
|
+
return /* @__PURE__ */ jsxs21(
|
|
3137
|
+
"button",
|
|
3138
|
+
{
|
|
3139
|
+
ref,
|
|
3140
|
+
className: cn("h-7 w-7", className),
|
|
3141
|
+
onClick: (e) => {
|
|
3142
|
+
onClick?.(e);
|
|
3143
|
+
toggleSidebar();
|
|
3144
|
+
},
|
|
3145
|
+
...props,
|
|
3146
|
+
children: [
|
|
3147
|
+
/* @__PURE__ */ jsxs21(
|
|
3148
|
+
"svg",
|
|
3149
|
+
{
|
|
3150
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
3151
|
+
width: "24",
|
|
3152
|
+
height: "24",
|
|
3153
|
+
viewBox: "0 0 24 24",
|
|
3154
|
+
fill: "none",
|
|
3155
|
+
stroke: "currentColor",
|
|
3156
|
+
strokeWidth: "2",
|
|
3157
|
+
strokeLinecap: "round",
|
|
3158
|
+
strokeLinejoin: "round",
|
|
3159
|
+
className: "h-4 w-4",
|
|
3160
|
+
children: [
|
|
3161
|
+
/* @__PURE__ */ jsx37("rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }),
|
|
3162
|
+
/* @__PURE__ */ jsx37("path", { d: "M9 3v18" })
|
|
3163
|
+
]
|
|
3164
|
+
}
|
|
3165
|
+
),
|
|
3166
|
+
/* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
3167
|
+
]
|
|
3168
|
+
}
|
|
3169
|
+
);
|
|
3170
|
+
});
|
|
3171
|
+
SidebarTrigger.displayName = "SidebarTrigger";
|
|
3172
|
+
|
|
3173
|
+
// src/components/Skeleton/Skeleton.web.tsx
|
|
3174
|
+
import { forwardRef as forwardRef36 } from "react";
|
|
3175
|
+
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
3176
|
+
var Skeleton = forwardRef36(({ className, ...props }, ref) => {
|
|
3177
|
+
return /* @__PURE__ */ jsx38(
|
|
3178
|
+
"div",
|
|
3179
|
+
{
|
|
3180
|
+
ref,
|
|
3181
|
+
className: cn("animate-pulse rounded-md bg-primary/10", className),
|
|
3182
|
+
...props
|
|
3183
|
+
}
|
|
3184
|
+
);
|
|
3185
|
+
});
|
|
3186
|
+
Skeleton.displayName = "Skeleton";
|
|
3187
|
+
|
|
3188
|
+
// src/components/Slider/Slider.web.tsx
|
|
3189
|
+
import { forwardRef as forwardRef37 } from "react";
|
|
3190
|
+
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
3191
|
+
import { jsx as jsx39, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
3192
|
+
var Slider = forwardRef37(({ className, ...props }, ref) => /* @__PURE__ */ jsxs22(
|
|
3193
|
+
SliderPrimitive.Root,
|
|
3194
|
+
{
|
|
3195
|
+
ref,
|
|
3196
|
+
className: cn(
|
|
3197
|
+
"relative flex w-full touch-none select-none items-center",
|
|
3198
|
+
className
|
|
3199
|
+
),
|
|
3200
|
+
...props,
|
|
3201
|
+
children: [
|
|
3202
|
+
/* @__PURE__ */ jsx39(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20", children: /* @__PURE__ */ jsx39(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
|
|
3203
|
+
/* @__PURE__ */ jsx39(SliderPrimitive.Thumb, { className: "block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50" })
|
|
3204
|
+
]
|
|
3205
|
+
}
|
|
3206
|
+
));
|
|
3207
|
+
Slider.displayName = SliderPrimitive.Root.displayName;
|
|
3208
|
+
|
|
3209
|
+
// src/components/Switch/Switch.web.tsx
|
|
3210
|
+
import { forwardRef as forwardRef38 } from "react";
|
|
3211
|
+
import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
3212
|
+
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
3213
|
+
var Switch = forwardRef38(({ className, ...props }, ref) => /* @__PURE__ */ jsx40(
|
|
3214
|
+
SwitchPrimitive.Root,
|
|
3215
|
+
{
|
|
3216
|
+
className: cn(
|
|
3217
|
+
"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
|
|
3218
|
+
className
|
|
3219
|
+
),
|
|
3220
|
+
...props,
|
|
3221
|
+
ref,
|
|
3222
|
+
children: /* @__PURE__ */ jsx40(
|
|
3223
|
+
SwitchPrimitive.Thumb,
|
|
3224
|
+
{
|
|
3225
|
+
className: cn(
|
|
3226
|
+
"pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
|
|
3227
|
+
)
|
|
3228
|
+
}
|
|
3229
|
+
)
|
|
3230
|
+
}
|
|
3231
|
+
));
|
|
3232
|
+
Switch.displayName = SwitchPrimitive.Root.displayName;
|
|
3233
|
+
|
|
3234
|
+
// src/components/Table/Table.web.tsx
|
|
3235
|
+
import { forwardRef as forwardRef39 } from "react";
|
|
3236
|
+
import { jsx as jsx41 } from "react/jsx-runtime";
|
|
3237
|
+
var Table = forwardRef39(({ className, ...props }, ref) => /* @__PURE__ */ jsx41("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx41(
|
|
3238
|
+
"table",
|
|
3239
|
+
{
|
|
3240
|
+
ref,
|
|
3241
|
+
className: cn("w-full caption-bottom text-sm", className),
|
|
3242
|
+
...props
|
|
3243
|
+
}
|
|
3244
|
+
) }));
|
|
3245
|
+
Table.displayName = "Table";
|
|
3246
|
+
var TableHeader = forwardRef39(({ className, ...props }, ref) => /* @__PURE__ */ jsx41("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
|
|
3247
|
+
TableHeader.displayName = "TableHeader";
|
|
3248
|
+
var TableBody = forwardRef39(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
|
|
3249
|
+
"tbody",
|
|
3250
|
+
{
|
|
3251
|
+
ref,
|
|
3252
|
+
className: cn("[&_tr:last-child]:border-0", className),
|
|
3253
|
+
...props
|
|
3254
|
+
}
|
|
3255
|
+
));
|
|
3256
|
+
TableBody.displayName = "TableBody";
|
|
3257
|
+
var TableFooter = forwardRef39(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
|
|
3258
|
+
"tfoot",
|
|
3259
|
+
{
|
|
3260
|
+
ref,
|
|
3261
|
+
className: cn(
|
|
3262
|
+
"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
|
|
3263
|
+
className
|
|
3264
|
+
),
|
|
3265
|
+
...props
|
|
3266
|
+
}
|
|
3267
|
+
));
|
|
3268
|
+
TableFooter.displayName = "TableFooter";
|
|
3269
|
+
var TableRow = forwardRef39(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
|
|
3270
|
+
"tr",
|
|
3271
|
+
{
|
|
3272
|
+
ref,
|
|
3273
|
+
className: cn(
|
|
3274
|
+
"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
|
|
3275
|
+
className
|
|
3276
|
+
),
|
|
3277
|
+
...props
|
|
3278
|
+
}
|
|
3279
|
+
));
|
|
3280
|
+
TableRow.displayName = "TableRow";
|
|
3281
|
+
var TableHead = forwardRef39(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
|
|
3282
|
+
"th",
|
|
3283
|
+
{
|
|
3284
|
+
ref,
|
|
3285
|
+
className: cn(
|
|
3286
|
+
"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
3287
|
+
className
|
|
3288
|
+
),
|
|
3289
|
+
...props
|
|
3290
|
+
}
|
|
3291
|
+
));
|
|
3292
|
+
TableHead.displayName = "TableHead";
|
|
3293
|
+
var TableCell = forwardRef39(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
|
|
3294
|
+
"td",
|
|
3295
|
+
{
|
|
3296
|
+
ref,
|
|
3297
|
+
className: cn(
|
|
3298
|
+
"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
|
|
3299
|
+
className
|
|
3300
|
+
),
|
|
3301
|
+
...props
|
|
3302
|
+
}
|
|
3303
|
+
));
|
|
3304
|
+
TableCell.displayName = "TableCell";
|
|
3305
|
+
var TableCaption = forwardRef39(({ className, ...props }, ref) => /* @__PURE__ */ jsx41(
|
|
3306
|
+
"caption",
|
|
3307
|
+
{
|
|
3308
|
+
ref,
|
|
3309
|
+
className: cn("mt-4 text-sm text-muted-foreground", className),
|
|
3310
|
+
...props
|
|
3311
|
+
}
|
|
3312
|
+
));
|
|
3313
|
+
TableCaption.displayName = "TableCaption";
|
|
3314
|
+
|
|
3315
|
+
// src/components/Tabs/Tabs.web.tsx
|
|
3316
|
+
import { forwardRef as forwardRef40 } from "react";
|
|
3317
|
+
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
3318
|
+
import { jsx as jsx42 } from "react/jsx-runtime";
|
|
3319
|
+
var Tabs = TabsPrimitive.Root;
|
|
3320
|
+
var TabsList = forwardRef40(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(
|
|
3321
|
+
TabsPrimitive.List,
|
|
3322
|
+
{
|
|
3323
|
+
ref,
|
|
3324
|
+
className: cn(
|
|
3325
|
+
"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",
|
|
3326
|
+
className
|
|
3327
|
+
),
|
|
3328
|
+
...props
|
|
3329
|
+
}
|
|
3330
|
+
));
|
|
3331
|
+
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
3332
|
+
var TabsTrigger = forwardRef40(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(
|
|
3333
|
+
TabsPrimitive.Trigger,
|
|
3334
|
+
{
|
|
3335
|
+
ref,
|
|
3336
|
+
className: cn(
|
|
3337
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
|
|
3338
|
+
className
|
|
3339
|
+
),
|
|
3340
|
+
...props
|
|
3341
|
+
}
|
|
3342
|
+
));
|
|
3343
|
+
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
3344
|
+
var TabsContent = forwardRef40(({ className, ...props }, ref) => /* @__PURE__ */ jsx42(
|
|
3345
|
+
TabsPrimitive.Content,
|
|
3346
|
+
{
|
|
3347
|
+
ref,
|
|
3348
|
+
className: cn(
|
|
3349
|
+
"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
3350
|
+
className
|
|
3351
|
+
),
|
|
3352
|
+
...props
|
|
3353
|
+
}
|
|
3354
|
+
));
|
|
3355
|
+
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
3356
|
+
|
|
3357
|
+
// src/components/Textarea/Textarea.web.tsx
|
|
3358
|
+
import { forwardRef as forwardRef41 } from "react";
|
|
3359
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
3360
|
+
var Textarea = forwardRef41(({ className, ...props }, ref) => {
|
|
3361
|
+
return /* @__PURE__ */ jsx43(
|
|
3362
|
+
"textarea",
|
|
3363
|
+
{
|
|
3364
|
+
className: cn(
|
|
3365
|
+
"flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
|
3366
|
+
className
|
|
3367
|
+
),
|
|
3368
|
+
ref,
|
|
3369
|
+
...props
|
|
3370
|
+
}
|
|
3371
|
+
);
|
|
3372
|
+
});
|
|
3373
|
+
Textarea.displayName = "Textarea";
|
|
3374
|
+
|
|
3375
|
+
// src/components/Toast/Toast.web.tsx
|
|
3376
|
+
import { forwardRef as forwardRef42, useState as useState8, useEffect } from "react";
|
|
3377
|
+
import { cva as cva10 } from "class-variance-authority";
|
|
3378
|
+
import { Fragment, jsx as jsx44, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
3379
|
+
function XIcon3(props) {
|
|
3380
|
+
return /* @__PURE__ */ jsxs23("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [
|
|
3381
|
+
/* @__PURE__ */ jsx44("path", { d: "M18 6 6 18" }),
|
|
3382
|
+
/* @__PURE__ */ jsx44("path", { d: "m6 6 12 12" })
|
|
3383
|
+
] });
|
|
3384
|
+
}
|
|
3385
|
+
var toastKeyframes = `@keyframes byld-toast-slide-in{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}`;
|
|
3386
|
+
var toastStyleInjected = false;
|
|
3387
|
+
var toastVariants = cva10(
|
|
3388
|
+
"group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg [animation:byld-toast-slide-in_0.3s_ease-out]",
|
|
3389
|
+
{
|
|
3390
|
+
variants: {
|
|
3391
|
+
variant: {
|
|
3392
|
+
default: "border bg-background text-foreground",
|
|
3393
|
+
destructive: "destructive group border-destructive bg-destructive text-destructive-foreground"
|
|
3394
|
+
}
|
|
3395
|
+
},
|
|
3396
|
+
defaultVariants: {
|
|
3397
|
+
variant: "default"
|
|
3398
|
+
}
|
|
3399
|
+
}
|
|
3400
|
+
);
|
|
3401
|
+
var ToastProvider = ({ children }) => {
|
|
3402
|
+
return /* @__PURE__ */ jsx44(Fragment, { children });
|
|
3403
|
+
};
|
|
3404
|
+
ToastProvider.displayName = "ToastProvider";
|
|
3405
|
+
var ToastViewport = forwardRef42(({ className, ...props }, ref) => {
|
|
3406
|
+
useEffect(() => {
|
|
3407
|
+
if (toastStyleInjected) return;
|
|
3408
|
+
toastStyleInjected = true;
|
|
3409
|
+
const style = document.createElement("style");
|
|
3410
|
+
style.textContent = toastKeyframes;
|
|
3411
|
+
document.head.appendChild(style);
|
|
3412
|
+
}, []);
|
|
3413
|
+
return /* @__PURE__ */ jsx44(
|
|
3414
|
+
"ol",
|
|
3415
|
+
{
|
|
3416
|
+
ref,
|
|
3417
|
+
className: cn(
|
|
3418
|
+
"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",
|
|
3419
|
+
className
|
|
3420
|
+
),
|
|
3421
|
+
...props
|
|
3422
|
+
}
|
|
3423
|
+
);
|
|
3424
|
+
});
|
|
3425
|
+
ToastViewport.displayName = "ToastViewport";
|
|
3426
|
+
var Toast = forwardRef42(
|
|
3427
|
+
({ className, variant, open = true, onOpenChange, ...props }, ref) => {
|
|
3428
|
+
if (!open) return null;
|
|
3429
|
+
return /* @__PURE__ */ jsx44(
|
|
3430
|
+
"li",
|
|
3431
|
+
{
|
|
3432
|
+
ref,
|
|
3433
|
+
className: cn(toastVariants({ variant }), className),
|
|
3434
|
+
"data-state": open ? "open" : "closed",
|
|
3435
|
+
...props
|
|
3436
|
+
}
|
|
3437
|
+
);
|
|
3438
|
+
}
|
|
3439
|
+
);
|
|
3440
|
+
Toast.displayName = "Toast";
|
|
3441
|
+
var ToastAction = forwardRef42(({ className, altText, ...props }, ref) => /* @__PURE__ */ jsx44(
|
|
3442
|
+
"button",
|
|
3443
|
+
{
|
|
3444
|
+
ref,
|
|
3445
|
+
className: cn(
|
|
3446
|
+
"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",
|
|
3447
|
+
className
|
|
3448
|
+
),
|
|
3449
|
+
...props
|
|
3450
|
+
}
|
|
3451
|
+
));
|
|
3452
|
+
ToastAction.displayName = "ToastAction";
|
|
3453
|
+
var ToastClose = forwardRef42(({ className, ...props }, ref) => /* @__PURE__ */ jsx44(
|
|
3454
|
+
"button",
|
|
3455
|
+
{
|
|
3456
|
+
ref,
|
|
3457
|
+
className: cn(
|
|
3458
|
+
"absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",
|
|
3459
|
+
className
|
|
3460
|
+
),
|
|
3461
|
+
"toast-close": "",
|
|
3462
|
+
...props,
|
|
3463
|
+
children: /* @__PURE__ */ jsx44(XIcon3, { className: "h-4 w-4" })
|
|
3464
|
+
}
|
|
3465
|
+
));
|
|
3466
|
+
ToastClose.displayName = "ToastClose";
|
|
3467
|
+
var ToastTitle = forwardRef42(({ className, ...props }, ref) => /* @__PURE__ */ jsx44(
|
|
3468
|
+
"div",
|
|
3469
|
+
{
|
|
3470
|
+
ref,
|
|
3471
|
+
className: cn("text-sm font-semibold [&+div]:text-xs", className),
|
|
3472
|
+
...props
|
|
3473
|
+
}
|
|
3474
|
+
));
|
|
3475
|
+
ToastTitle.displayName = "ToastTitle";
|
|
3476
|
+
var ToastDescription = forwardRef42(({ className, ...props }, ref) => /* @__PURE__ */ jsx44(
|
|
3477
|
+
"div",
|
|
3478
|
+
{
|
|
3479
|
+
ref,
|
|
3480
|
+
className: cn("text-sm opacity-90", className),
|
|
3481
|
+
...props
|
|
3482
|
+
}
|
|
3483
|
+
));
|
|
3484
|
+
ToastDescription.displayName = "ToastDescription";
|
|
3485
|
+
var TOAST_LIMIT = 1;
|
|
3486
|
+
var TOAST_REMOVE_DELAY = 5e3;
|
|
3487
|
+
var count = 0;
|
|
3488
|
+
function genId() {
|
|
3489
|
+
count = (count + 1) % Number.MAX_SAFE_INTEGER;
|
|
3490
|
+
return count.toString();
|
|
3491
|
+
}
|
|
3492
|
+
var toastTimeouts = /* @__PURE__ */ new Map();
|
|
3493
|
+
var addToRemoveQueue = (toastId) => {
|
|
3494
|
+
if (toastTimeouts.has(toastId)) return;
|
|
3495
|
+
const timeout = setTimeout(() => {
|
|
3496
|
+
toastTimeouts.delete(toastId);
|
|
3497
|
+
dispatch({ type: "REMOVE_TOAST", toastId });
|
|
3498
|
+
}, TOAST_REMOVE_DELAY);
|
|
3499
|
+
toastTimeouts.set(toastId, timeout);
|
|
3500
|
+
};
|
|
3501
|
+
var reducer = (state, action) => {
|
|
3502
|
+
switch (action.type) {
|
|
3503
|
+
case "ADD_TOAST":
|
|
3504
|
+
return [action.toast, ...state].slice(0, TOAST_LIMIT);
|
|
3505
|
+
case "UPDATE_TOAST":
|
|
3506
|
+
return state.map(
|
|
3507
|
+
(t) => t.id === action.toast.id ? { ...t, ...action.toast } : t
|
|
3508
|
+
);
|
|
3509
|
+
case "DISMISS_TOAST": {
|
|
3510
|
+
const { toastId } = action;
|
|
3511
|
+
if (toastId) {
|
|
3512
|
+
addToRemoveQueue(toastId);
|
|
3513
|
+
} else {
|
|
3514
|
+
state.forEach((t) => addToRemoveQueue(t.id));
|
|
3515
|
+
}
|
|
3516
|
+
return state.map(
|
|
3517
|
+
(t) => t.id === toastId || toastId === void 0 ? { ...t, open: false } : t
|
|
3518
|
+
);
|
|
3519
|
+
}
|
|
3520
|
+
case "REMOVE_TOAST":
|
|
3521
|
+
if (action.toastId === void 0) return [];
|
|
3522
|
+
return state.filter((t) => t.id !== action.toastId);
|
|
3523
|
+
default:
|
|
3524
|
+
return state;
|
|
3525
|
+
}
|
|
3526
|
+
};
|
|
3527
|
+
var listeners = [];
|
|
3528
|
+
var memoryState = [];
|
|
3529
|
+
function dispatch(action) {
|
|
3530
|
+
memoryState = reducer(memoryState, action);
|
|
3531
|
+
listeners.forEach((listener) => listener(memoryState));
|
|
3532
|
+
}
|
|
3533
|
+
function toast({
|
|
3534
|
+
...props
|
|
3535
|
+
}) {
|
|
3536
|
+
const id = genId();
|
|
3537
|
+
const update = (updateProps) => dispatch({ type: "UPDATE_TOAST", toast: { ...updateProps, id } });
|
|
3538
|
+
const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
|
|
3539
|
+
dispatch({
|
|
3540
|
+
type: "ADD_TOAST",
|
|
3541
|
+
toast: {
|
|
3542
|
+
...props,
|
|
3543
|
+
id,
|
|
3544
|
+
open: true,
|
|
3545
|
+
onOpenChange: (open) => {
|
|
3546
|
+
if (!open) dismiss();
|
|
3547
|
+
}
|
|
3548
|
+
}
|
|
3549
|
+
});
|
|
3550
|
+
setTimeout(() => {
|
|
3551
|
+
dismiss();
|
|
3552
|
+
}, TOAST_REMOVE_DELAY);
|
|
3553
|
+
return { id, dismiss, update };
|
|
3554
|
+
}
|
|
3555
|
+
function useToast() {
|
|
3556
|
+
const [state, setState] = useState8(memoryState);
|
|
3557
|
+
useEffect(() => {
|
|
3558
|
+
listeners.push(setState);
|
|
3559
|
+
return () => {
|
|
3560
|
+
const index = listeners.indexOf(setState);
|
|
3561
|
+
if (index > -1) listeners.splice(index, 1);
|
|
3562
|
+
};
|
|
3563
|
+
}, []);
|
|
3564
|
+
return {
|
|
3565
|
+
toasts: state,
|
|
3566
|
+
toast,
|
|
3567
|
+
dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId })
|
|
3568
|
+
};
|
|
3569
|
+
}
|
|
3570
|
+
|
|
3571
|
+
// src/components/Toggle/Toggle.web.tsx
|
|
3572
|
+
import { forwardRef as forwardRef43 } from "react";
|
|
3573
|
+
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
3574
|
+
import { cva as cva11 } from "class-variance-authority";
|
|
3575
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
3576
|
+
var toggleVariants = cva11(
|
|
3577
|
+
"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
3578
|
+
{
|
|
3579
|
+
variants: {
|
|
3580
|
+
variant: {
|
|
3581
|
+
default: "bg-transparent",
|
|
3582
|
+
outline: "border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"
|
|
3583
|
+
},
|
|
3584
|
+
size: {
|
|
3585
|
+
default: "h-9 px-2 min-w-9",
|
|
3586
|
+
sm: "h-8 px-1.5 min-w-8",
|
|
3587
|
+
lg: "h-10 px-2.5 min-w-10"
|
|
3588
|
+
}
|
|
3589
|
+
},
|
|
3590
|
+
defaultVariants: {
|
|
3591
|
+
variant: "default",
|
|
3592
|
+
size: "default"
|
|
3593
|
+
}
|
|
3594
|
+
}
|
|
3595
|
+
);
|
|
3596
|
+
var Toggle = forwardRef43(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx45(
|
|
3597
|
+
TogglePrimitive.Root,
|
|
3598
|
+
{
|
|
3599
|
+
ref,
|
|
3600
|
+
className: cn(toggleVariants({ variant, size, className })),
|
|
3601
|
+
...props
|
|
3602
|
+
}
|
|
3603
|
+
));
|
|
3604
|
+
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
3605
|
+
|
|
3606
|
+
// src/components/ToggleGroup/ToggleGroup.web.tsx
|
|
3607
|
+
import { forwardRef as forwardRef44, createContext as createContext5, useContext as useContext5 } from "react";
|
|
3608
|
+
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
3609
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
3610
|
+
var ToggleGroupContext = createContext5({
|
|
3611
|
+
size: "default",
|
|
3612
|
+
variant: "default"
|
|
3613
|
+
});
|
|
3614
|
+
var ToggleGroup = forwardRef44(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx46(
|
|
3615
|
+
ToggleGroupPrimitive.Root,
|
|
3616
|
+
{
|
|
3617
|
+
ref,
|
|
3618
|
+
className: cn("flex items-center justify-center gap-1", className),
|
|
3619
|
+
...props,
|
|
3620
|
+
children: /* @__PURE__ */ jsx46(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
3621
|
+
}
|
|
3622
|
+
));
|
|
3623
|
+
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
3624
|
+
var ToggleGroupItem = forwardRef44(({ className, children, variant, size, ...props }, ref) => {
|
|
3625
|
+
const context = useContext5(ToggleGroupContext);
|
|
3626
|
+
return /* @__PURE__ */ jsx46(
|
|
3627
|
+
ToggleGroupPrimitive.Item,
|
|
3628
|
+
{
|
|
3629
|
+
ref,
|
|
3630
|
+
className: cn(
|
|
3631
|
+
toggleVariants({
|
|
3632
|
+
variant: variant || context.variant,
|
|
3633
|
+
size: size || context.size
|
|
3634
|
+
}),
|
|
3635
|
+
className
|
|
3636
|
+
),
|
|
3637
|
+
...props,
|
|
3638
|
+
children
|
|
3639
|
+
}
|
|
3640
|
+
);
|
|
3641
|
+
});
|
|
3642
|
+
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
3643
|
+
|
|
3644
|
+
// src/components/Tooltip/Tooltip.web.tsx
|
|
3645
|
+
import { forwardRef as forwardRef45 } from "react";
|
|
3646
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
3647
|
+
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
3648
|
+
var TooltipProvider = TooltipPrimitive.Provider;
|
|
3649
|
+
var Tooltip = TooltipPrimitive.Root;
|
|
3650
|
+
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
3651
|
+
var TooltipContent = forwardRef45(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx47(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx47(
|
|
3652
|
+
TooltipPrimitive.Content,
|
|
3653
|
+
{
|
|
3654
|
+
ref,
|
|
3655
|
+
sideOffset,
|
|
3656
|
+
className: cn(
|
|
3657
|
+
"z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
3658
|
+
className
|
|
3659
|
+
),
|
|
3660
|
+
...props
|
|
3661
|
+
}
|
|
3662
|
+
) }));
|
|
3663
|
+
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
3664
|
+
export {
|
|
3665
|
+
Accordion,
|
|
3666
|
+
AccordionContent,
|
|
3667
|
+
AccordionItem,
|
|
3668
|
+
AccordionTrigger,
|
|
3669
|
+
Alert,
|
|
3670
|
+
AlertDescription,
|
|
3671
|
+
AlertDialog,
|
|
3672
|
+
AlertDialogAction,
|
|
3673
|
+
AlertDialogCancel,
|
|
3674
|
+
AlertDialogContent,
|
|
3675
|
+
AlertDialogDescription,
|
|
3676
|
+
AlertDialogFooter,
|
|
3677
|
+
AlertDialogHeader,
|
|
3678
|
+
AlertDialogOverlay,
|
|
3679
|
+
AlertDialogPortal,
|
|
3680
|
+
AlertDialogTitle,
|
|
3681
|
+
AlertDialogTrigger,
|
|
3682
|
+
AlertTitle,
|
|
3683
|
+
AspectRatio,
|
|
3684
|
+
Avatar,
|
|
3685
|
+
AvatarFallback,
|
|
3686
|
+
AvatarImage,
|
|
3687
|
+
Badge,
|
|
3688
|
+
Breadcrumb,
|
|
3689
|
+
BreadcrumbEllipsis,
|
|
3690
|
+
BreadcrumbItem,
|
|
3691
|
+
BreadcrumbLink,
|
|
3692
|
+
BreadcrumbList,
|
|
3693
|
+
BreadcrumbPage,
|
|
3694
|
+
BreadcrumbSeparator,
|
|
3695
|
+
Button,
|
|
3696
|
+
Calendar,
|
|
3697
|
+
Card,
|
|
3698
|
+
Carousel,
|
|
3699
|
+
CarouselContent,
|
|
3700
|
+
CarouselItem,
|
|
3701
|
+
CarouselNext,
|
|
3702
|
+
CarouselPrevious,
|
|
3703
|
+
Chart,
|
|
3704
|
+
Checkbox,
|
|
3705
|
+
Collapsible,
|
|
3706
|
+
CollapsibleContent2 as CollapsibleContent,
|
|
3707
|
+
CollapsibleTrigger2 as CollapsibleTrigger,
|
|
3708
|
+
Combobox,
|
|
3709
|
+
Command,
|
|
3710
|
+
CommandEmpty,
|
|
3711
|
+
CommandGroup,
|
|
3712
|
+
CommandInput,
|
|
3713
|
+
CommandItem,
|
|
3714
|
+
CommandList,
|
|
3715
|
+
CommandSeparator,
|
|
3716
|
+
ContextMenu,
|
|
3717
|
+
ContextMenuCheckboxItem,
|
|
3718
|
+
ContextMenuContent,
|
|
3719
|
+
ContextMenuGroup,
|
|
3720
|
+
ContextMenuItem,
|
|
3721
|
+
ContextMenuLabel,
|
|
3722
|
+
ContextMenuPortal,
|
|
3723
|
+
ContextMenuRadioGroup,
|
|
3724
|
+
ContextMenuRadioItem,
|
|
3725
|
+
ContextMenuSeparator,
|
|
3726
|
+
ContextMenuShortcut,
|
|
3727
|
+
ContextMenuSub,
|
|
3728
|
+
ContextMenuSubContent,
|
|
3729
|
+
ContextMenuSubTrigger,
|
|
3730
|
+
ContextMenuTrigger,
|
|
3731
|
+
DataTable,
|
|
3732
|
+
DatePicker,
|
|
3733
|
+
Dialog,
|
|
3734
|
+
DialogClose,
|
|
3735
|
+
DialogContent,
|
|
3736
|
+
DialogDescription,
|
|
3737
|
+
DialogFooter,
|
|
3738
|
+
DialogHeader,
|
|
3739
|
+
DialogOverlay,
|
|
3740
|
+
DialogPortal,
|
|
3741
|
+
DialogTitle,
|
|
3742
|
+
DialogTrigger,
|
|
3743
|
+
Drawer,
|
|
3744
|
+
DrawerClose,
|
|
3745
|
+
DrawerContent,
|
|
3746
|
+
DrawerDescription,
|
|
3747
|
+
DrawerFooter,
|
|
3748
|
+
DrawerHeader,
|
|
3749
|
+
DrawerOverlay,
|
|
3750
|
+
DrawerPortal,
|
|
3751
|
+
DrawerTitle,
|
|
3752
|
+
DrawerTrigger,
|
|
3753
|
+
DropdownMenu,
|
|
3754
|
+
DropdownMenuCheckboxItem,
|
|
3755
|
+
DropdownMenuContent,
|
|
3756
|
+
DropdownMenuGroup,
|
|
3757
|
+
DropdownMenuItem,
|
|
3758
|
+
DropdownMenuLabel,
|
|
3759
|
+
DropdownMenuPortal,
|
|
3760
|
+
DropdownMenuRadioGroup,
|
|
3761
|
+
DropdownMenuRadioItem,
|
|
3762
|
+
DropdownMenuSeparator,
|
|
3763
|
+
DropdownMenuShortcut,
|
|
3764
|
+
DropdownMenuSub,
|
|
3765
|
+
DropdownMenuSubContent,
|
|
3766
|
+
DropdownMenuSubTrigger,
|
|
3767
|
+
DropdownMenuTrigger,
|
|
3768
|
+
Form,
|
|
3769
|
+
FormControl,
|
|
3770
|
+
FormDescription,
|
|
3771
|
+
FormField,
|
|
3772
|
+
FormItem,
|
|
3773
|
+
FormLabel,
|
|
3774
|
+
FormMessage,
|
|
3775
|
+
HoverCard,
|
|
3776
|
+
HoverCardContent,
|
|
3777
|
+
HoverCardTrigger,
|
|
3778
|
+
Input,
|
|
3779
|
+
InputOTP,
|
|
3780
|
+
Label3 as Label,
|
|
3781
|
+
Menubar,
|
|
3782
|
+
MenubarCheckboxItem,
|
|
3783
|
+
MenubarContent,
|
|
3784
|
+
MenubarGroup,
|
|
3785
|
+
MenubarItem,
|
|
3786
|
+
MenubarLabel,
|
|
3787
|
+
MenubarMenu,
|
|
3788
|
+
MenubarPortal,
|
|
3789
|
+
MenubarRadioGroup,
|
|
3790
|
+
MenubarRadioItem,
|
|
3791
|
+
MenubarSeparator,
|
|
3792
|
+
MenubarShortcut,
|
|
3793
|
+
MenubarSub,
|
|
3794
|
+
MenubarSubContent,
|
|
3795
|
+
MenubarSubTrigger,
|
|
3796
|
+
MenubarTrigger,
|
|
3797
|
+
NavigationMenu,
|
|
3798
|
+
NavigationMenuContent,
|
|
3799
|
+
NavigationMenuIndicator,
|
|
3800
|
+
NavigationMenuItem,
|
|
3801
|
+
NavigationMenuLink,
|
|
3802
|
+
NavigationMenuList,
|
|
3803
|
+
NavigationMenuTrigger,
|
|
3804
|
+
NavigationMenuViewport,
|
|
3805
|
+
Pagination,
|
|
3806
|
+
PaginationContent,
|
|
3807
|
+
PaginationEllipsis,
|
|
3808
|
+
PaginationItem,
|
|
3809
|
+
PaginationLink,
|
|
3810
|
+
PaginationNext,
|
|
3811
|
+
PaginationPrevious,
|
|
3812
|
+
Popover3 as Popover,
|
|
3813
|
+
PopoverAnchor,
|
|
3814
|
+
PopoverContent,
|
|
3815
|
+
PopoverTrigger,
|
|
3816
|
+
Progress,
|
|
3817
|
+
RadioGroup4 as RadioGroup,
|
|
3818
|
+
RadioGroupItem,
|
|
3819
|
+
ResizableHandle,
|
|
3820
|
+
ResizablePanel,
|
|
3821
|
+
ResizablePanelGroup,
|
|
3822
|
+
ScrollArea,
|
|
3823
|
+
ScrollBar,
|
|
3824
|
+
Select,
|
|
3825
|
+
SelectContent,
|
|
3826
|
+
SelectGroup,
|
|
3827
|
+
SelectItem,
|
|
3828
|
+
SelectLabel,
|
|
3829
|
+
SelectSeparator,
|
|
3830
|
+
SelectTrigger,
|
|
3831
|
+
SelectValue,
|
|
3832
|
+
Separator6 as Separator,
|
|
3833
|
+
Sheet,
|
|
3834
|
+
SheetClose,
|
|
3835
|
+
SheetContent,
|
|
3836
|
+
SheetDescription,
|
|
3837
|
+
SheetFooter,
|
|
3838
|
+
SheetHeader,
|
|
3839
|
+
SheetOverlay,
|
|
3840
|
+
SheetPortal,
|
|
3841
|
+
SheetTitle,
|
|
3842
|
+
SheetTrigger,
|
|
3843
|
+
Sidebar,
|
|
3844
|
+
SidebarContent,
|
|
3845
|
+
SidebarFooter,
|
|
3846
|
+
SidebarHeader,
|
|
3847
|
+
SidebarProvider,
|
|
3848
|
+
SidebarTrigger,
|
|
3849
|
+
Skeleton,
|
|
3850
|
+
Slider,
|
|
3851
|
+
Switch,
|
|
3852
|
+
Table,
|
|
3853
|
+
TableBody,
|
|
3854
|
+
TableCaption,
|
|
3855
|
+
TableCell,
|
|
3856
|
+
TableFooter,
|
|
3857
|
+
TableHead,
|
|
3858
|
+
TableHeader,
|
|
3859
|
+
TableRow,
|
|
3860
|
+
Tabs,
|
|
3861
|
+
TabsContent,
|
|
3862
|
+
TabsList,
|
|
3863
|
+
TabsTrigger,
|
|
3864
|
+
Textarea,
|
|
3865
|
+
ThemeProvider,
|
|
3866
|
+
Toast,
|
|
3867
|
+
ToastAction,
|
|
3868
|
+
ToastClose,
|
|
3869
|
+
ToastDescription,
|
|
3870
|
+
ToastProvider,
|
|
3871
|
+
ToastTitle,
|
|
3872
|
+
ToastViewport,
|
|
3873
|
+
Toggle,
|
|
3874
|
+
ToggleGroup,
|
|
3875
|
+
ToggleGroupItem,
|
|
3876
|
+
Tooltip,
|
|
3877
|
+
TooltipContent,
|
|
3878
|
+
TooltipProvider,
|
|
3879
|
+
TooltipTrigger,
|
|
3880
|
+
auroraPreset,
|
|
3881
|
+
badgeVariants,
|
|
3882
|
+
darkPreset,
|
|
3883
|
+
defaultPreset,
|
|
3884
|
+
navigationMenuTriggerStyle,
|
|
3885
|
+
paginationLinkVariants,
|
|
3886
|
+
separatorVariants,
|
|
3887
|
+
toast,
|
|
3888
|
+
toastVariants,
|
|
3889
|
+
toggleVariants,
|
|
3890
|
+
useSidebarContext,
|
|
3891
|
+
useTheme,
|
|
3892
|
+
useToast
|
|
3893
|
+
};
|
|
3894
|
+
//# sourceMappingURL=index.js.map
|