@forgedevstack/bear 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +279 -0
- package/dist/components/Accordion/Accordion.cjs +1 -0
- package/dist/components/Accordion/Accordion.d.ts +22 -0
- package/dist/components/Accordion/Accordion.js +79 -0
- package/dist/components/Accordion/Accordion.types.d.ts +32 -0
- package/dist/components/Accordion/index.d.ts +2 -0
- package/dist/components/Alert/Alert.cjs +1 -0
- package/dist/components/Alert/Alert.d.ts +16 -0
- package/dist/components/Alert/Alert.js +109 -0
- package/dist/components/Alert/Alert.types.d.ts +23 -0
- package/dist/components/Alert/index.d.ts +2 -0
- package/dist/components/AppBar/AppBar.cjs +1 -0
- package/dist/components/AppBar/AppBar.d.ts +3 -0
- package/dist/components/AppBar/AppBar.js +49 -0
- package/dist/components/AppBar/AppBar.types.d.ts +12 -0
- package/dist/components/AppBar/index.d.ts +2 -0
- package/dist/components/Autocomplete/Autocomplete.cjs +1 -0
- package/dist/components/Autocomplete/Autocomplete.d.ts +17 -0
- package/dist/components/Autocomplete/Autocomplete.js +137 -0
- package/dist/components/Autocomplete/Autocomplete.types.d.ts +36 -0
- package/dist/components/Autocomplete/index.d.ts +2 -0
- package/dist/components/Avatar/Avatar.cjs +1 -0
- package/dist/components/Avatar/Avatar.d.ts +16 -0
- package/dist/components/Avatar/Avatar.js +102 -0
- package/dist/components/Avatar/Avatar.types.d.ts +31 -0
- package/dist/components/Avatar/index.d.ts +2 -0
- package/dist/components/Badge/Badge.cjs +1 -0
- package/dist/components/Badge/Badge.d.ts +13 -0
- package/dist/components/Badge/Badge.js +67 -0
- package/dist/components/Badge/Badge.types.d.ts +14 -0
- package/dist/components/Badge/index.d.ts +2 -0
- package/dist/components/BearLoader/BearLoader.cjs +40 -0
- package/dist/components/BearLoader/BearLoader.d.ts +14 -0
- package/dist/components/BearLoader/BearLoader.js +183 -0
- package/dist/components/BearLoader/BearLoader.types.d.ts +16 -0
- package/dist/components/BearLoader/index.d.ts +2 -0
- package/dist/components/BearLogo/BearLogo.cjs +1 -0
- package/dist/components/BearLogo/BearLogo.d.ts +18 -0
- package/dist/components/BearLogo/BearLogo.js +134 -0
- package/dist/components/BearLogo/EmberLogo.d.ts +14 -0
- package/dist/components/BearLogo/index.d.ts +2 -0
- package/dist/components/BottomNavigation/BottomNavigation.cjs +1 -0
- package/dist/components/BottomNavigation/BottomNavigation.d.ts +3 -0
- package/dist/components/BottomNavigation/BottomNavigation.js +49 -0
- package/dist/components/BottomNavigation/BottomNavigation.types.d.ts +16 -0
- package/dist/components/BottomNavigation/index.d.ts +2 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.cjs +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +3 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.js +41 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts +17 -0
- package/dist/components/Breadcrumbs/index.d.ts +2 -0
- package/dist/components/Button/Button.cjs +57 -0
- package/dist/components/Button/Button.d.ts +20 -0
- package/dist/components/Button/Button.js +125 -0
- package/dist/components/Button/Button.types.d.ts +18 -0
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/ButtonGroup/ButtonGroup.cjs +1 -0
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +16 -0
- package/dist/components/ButtonGroup/ButtonGroup.js +51 -0
- package/dist/components/ButtonGroup/ButtonGroup.types.d.ts +18 -0
- package/dist/components/ButtonGroup/index.d.ts +2 -0
- package/dist/components/Card/Card.cjs +1 -0
- package/dist/components/Card/Card.d.ts +31 -0
- package/dist/components/Card/Card.js +113 -0
- package/dist/components/Card/Card.types.d.ts +28 -0
- package/dist/components/Card/index.d.ts +2 -0
- package/dist/components/Carousel/Carousel.cjs +1 -0
- package/dist/components/Carousel/Carousel.d.ts +15 -0
- package/dist/components/Carousel/Carousel.js +122 -0
- package/dist/components/Carousel/Carousel.types.d.ts +25 -0
- package/dist/components/Carousel/index.d.ts +2 -0
- package/dist/components/Checkbox/Checkbox.cjs +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +13 -0
- package/dist/components/Checkbox/Checkbox.js +139 -0
- package/dist/components/Checkbox/Checkbox.types.d.ts +28 -0
- package/dist/components/Checkbox/index.d.ts +2 -0
- package/dist/components/Chip/Chip.cjs +1 -0
- package/dist/components/Chip/Chip.d.ts +3 -0
- package/dist/components/Chip/Chip.js +85 -0
- package/dist/components/Chip/Chip.types.d.ts +13 -0
- package/dist/components/Chip/index.d.ts +2 -0
- package/dist/components/Collapsible/Collapsible.cjs +1 -0
- package/dist/components/Collapsible/Collapsible.d.ts +3 -0
- package/dist/components/Collapsible/Collapsible.js +59 -0
- package/dist/components/Collapsible/Collapsible.types.d.ts +13 -0
- package/dist/components/Collapsible/index.d.ts +2 -0
- package/dist/components/ColorPicker/ColorPicker.cjs +1 -0
- package/dist/components/ColorPicker/ColorPicker.d.ts +3 -0
- package/dist/components/ColorPicker/ColorPicker.js +113 -0
- package/dist/components/ColorPicker/ColorPicker.types.d.ts +11 -0
- package/dist/components/ColorPicker/index.d.ts +2 -0
- package/dist/components/Container/Container.cjs +1 -0
- package/dist/components/Container/Container.d.ts +12 -0
- package/dist/components/Container/Container.js +40 -0
- package/dist/components/Container/Container.types.d.ts +12 -0
- package/dist/components/Container/index.d.ts +2 -0
- package/dist/components/CopyButton/CopyButton.cjs +1 -0
- package/dist/components/CopyButton/CopyButton.d.ts +3 -0
- package/dist/components/CopyButton/CopyButton.js +52 -0
- package/dist/components/CopyButton/CopyButton.types.d.ts +13 -0
- package/dist/components/CopyButton/index.d.ts +2 -0
- package/dist/components/DataTable/DataTable.cjs +1 -0
- package/dist/components/DataTable/DataTable.d.ts +22 -0
- package/dist/components/DataTable/DataTable.js +120 -0
- package/dist/components/DataTable/DataTable.types.d.ts +53 -0
- package/dist/components/DataTable/index.d.ts +2 -0
- package/dist/components/DatePicker/DatePicker.cjs +1 -0
- package/dist/components/DatePicker/DatePicker.d.ts +3 -0
- package/dist/components/DatePicker/DatePicker.js +111 -0
- package/dist/components/DatePicker/DatePicker.types.d.ts +25 -0
- package/dist/components/DatePicker/index.d.ts +2 -0
- package/dist/components/Divider/Divider.cjs +1 -0
- package/dist/components/Divider/Divider.d.ts +22 -0
- package/dist/components/Divider/Divider.js +99 -0
- package/dist/components/Divider/Divider.types.d.ts +19 -0
- package/dist/components/Divider/index.d.ts +2 -0
- package/dist/components/Drawer/Drawer.cjs +1 -0
- package/dist/components/Drawer/Drawer.d.ts +3 -0
- package/dist/components/Drawer/Drawer.js +113 -0
- package/dist/components/Drawer/Drawer.types.d.ts +23 -0
- package/dist/components/Drawer/index.d.ts +2 -0
- package/dist/components/Dropdown/Dropdown.cjs +1 -0
- package/dist/components/Dropdown/Dropdown.d.ts +19 -0
- package/dist/components/Dropdown/Dropdown.js +171 -0
- package/dist/components/Dropdown/Dropdown.types.d.ts +56 -0
- package/dist/components/Dropdown/index.d.ts +2 -0
- package/dist/components/EmptyState/EmptyState.cjs +1 -0
- package/dist/components/EmptyState/EmptyState.d.ts +3 -0
- package/dist/components/EmptyState/EmptyState.js +35 -0
- package/dist/components/EmptyState/EmptyState.types.d.ts +11 -0
- package/dist/components/EmptyState/index.d.ts +2 -0
- package/dist/components/Fab/Fab.cjs +1 -0
- package/dist/components/Fab/Fab.d.ts +17 -0
- package/dist/components/Fab/Fab.js +70 -0
- package/dist/components/Fab/Fab.types.d.ts +24 -0
- package/dist/components/Fab/index.d.ts +2 -0
- package/dist/components/FileUpload/FileUpload.cjs +1 -0
- package/dist/components/FileUpload/FileUpload.d.ts +3 -0
- package/dist/components/FileUpload/FileUpload.js +112 -0
- package/dist/components/FileUpload/FileUpload.types.d.ts +25 -0
- package/dist/components/FileUpload/index.d.ts +2 -0
- package/dist/components/Flex/Flex.cjs +1 -0
- package/dist/components/Flex/Flex.d.ts +13 -0
- package/dist/components/Flex/Flex.js +79 -0
- package/dist/components/Flex/Flex.types.d.ts +23 -0
- package/dist/components/Flex/index.d.ts +2 -0
- package/dist/components/Grid/Grid.cjs +1 -0
- package/dist/components/Grid/Grid.d.ts +20 -0
- package/dist/components/Grid/Grid.js +99 -0
- package/dist/components/Grid/Grid.types.d.ts +29 -0
- package/dist/components/Grid/index.d.ts +2 -0
- package/dist/components/Icon/Icon.cjs +1 -0
- package/dist/components/Icon/Icon.d.ts +39 -0
- package/dist/components/Icon/Icon.js +44 -0
- package/dist/components/Icon/Icon.types.d.ts +16 -0
- package/dist/components/Icon/icons/action.cjs +1 -0
- package/dist/components/Icon/icons/action.d.ts +85 -0
- package/dist/components/Icon/icons/action.js +351 -0
- package/dist/components/Icon/icons/communication.cjs +1 -0
- package/dist/components/Icon/icons/communication.d.ts +48 -0
- package/dist/components/Icon/icons/communication.js +184 -0
- package/dist/components/Icon/icons/content.cjs +1 -0
- package/dist/components/Icon/icons/content.d.ts +53 -0
- package/dist/components/Icon/icons/content.js +231 -0
- package/dist/components/Icon/icons/editor.cjs +1 -0
- package/dist/components/Icon/icons/editor.d.ts +53 -0
- package/dist/components/Icon/icons/editor.js +280 -0
- package/dist/components/Icon/icons/index.d.ts +9 -0
- package/dist/components/Icon/icons/media.cjs +1 -0
- package/dist/components/Icon/icons/media.d.ts +64 -0
- package/dist/components/Icon/icons/media.js +306 -0
- package/dist/components/Icon/icons/misc.cjs +1 -0
- package/dist/components/Icon/icons/misc.d.ts +80 -0
- package/dist/components/Icon/icons/misc.js +367 -0
- package/dist/components/Icon/icons/navigation.cjs +1 -0
- package/dist/components/Icon/icons/navigation.d.ts +56 -0
- package/dist/components/Icon/icons/navigation.js +215 -0
- package/dist/components/Icon/icons/status.cjs +1 -0
- package/dist/components/Icon/icons/status.d.ts +61 -0
- package/dist/components/Icon/icons/status.js +271 -0
- package/dist/components/Icon/index.cjs +1 -0
- package/dist/components/Icon/index.d.ts +506 -0
- package/dist/components/Icon/index.js +38 -0
- package/dist/components/Image/Image.cjs +1 -0
- package/dist/components/Image/Image.d.ts +3 -0
- package/dist/components/Image/Image.js +99 -0
- package/dist/components/Image/Image.types.d.ts +16 -0
- package/dist/components/Image/index.d.ts +2 -0
- package/dist/components/Input/Input.cjs +1 -0
- package/dist/components/Input/Input.d.ts +3 -0
- package/dist/components/Input/Input.js +64 -0
- package/dist/components/Input/Input.types.d.ts +17 -0
- package/dist/components/Input/index.d.ts +2 -0
- package/dist/components/Kbd/Kbd.cjs +1 -0
- package/dist/components/Kbd/Kbd.d.ts +3 -0
- package/dist/components/Kbd/Kbd.js +58 -0
- package/dist/components/Kbd/Kbd.types.d.ts +8 -0
- package/dist/components/Kbd/index.d.ts +2 -0
- package/dist/components/Link/Link.cjs +1 -0
- package/dist/components/Link/Link.d.ts +13 -0
- package/dist/components/Link/Link.js +81 -0
- package/dist/components/Link/Link.types.d.ts +18 -0
- package/dist/components/Link/index.d.ts +2 -0
- package/dist/components/List/List.cjs +1 -0
- package/dist/components/List/List.d.ts +35 -0
- package/dist/components/List/List.js +204 -0
- package/dist/components/List/List.types.d.ts +72 -0
- package/dist/components/List/index.d.ts +2 -0
- package/dist/components/Menu/Menu.cjs +1 -0
- package/dist/components/Menu/Menu.d.ts +29 -0
- package/dist/components/Menu/Menu.js +111 -0
- package/dist/components/Menu/Menu.types.d.ts +39 -0
- package/dist/components/Menu/index.d.ts +2 -0
- package/dist/components/Modal/Modal.cjs +1 -0
- package/dist/components/Modal/Modal.d.ts +3 -0
- package/dist/components/Modal/Modal.js +86 -0
- package/dist/components/Modal/Modal.types.d.ts +23 -0
- package/dist/components/Modal/index.d.ts +2 -0
- package/dist/components/MultiSelect/MultiSelect.cjs +1 -0
- package/dist/components/MultiSelect/MultiSelect.d.ts +20 -0
- package/dist/components/MultiSelect/MultiSelect.js +140 -0
- package/dist/components/MultiSelect/MultiSelect.types.d.ts +33 -0
- package/dist/components/MultiSelect/index.d.ts +2 -0
- package/dist/components/NumberInput/NumberInput.cjs +1 -0
- package/dist/components/NumberInput/NumberInput.d.ts +3 -0
- package/dist/components/NumberInput/NumberInput.js +109 -0
- package/dist/components/NumberInput/NumberInput.types.d.ts +18 -0
- package/dist/components/NumberInput/index.d.ts +2 -0
- package/dist/components/OTPInput/OTPInput.cjs +1 -0
- package/dist/components/OTPInput/OTPInput.d.ts +3 -0
- package/dist/components/OTPInput/OTPInput.js +83 -0
- package/dist/components/OTPInput/OTPInput.types.d.ts +13 -0
- package/dist/components/OTPInput/index.d.ts +2 -0
- package/dist/components/Pagination/Pagination.cjs +1 -0
- package/dist/components/Pagination/Pagination.d.ts +13 -0
- package/dist/components/Pagination/Pagination.js +156 -0
- package/dist/components/Pagination/Pagination.types.d.ts +34 -0
- package/dist/components/Pagination/index.d.ts +2 -0
- package/dist/components/Paper/Paper.cjs +1 -0
- package/dist/components/Paper/Paper.d.ts +17 -0
- package/dist/components/Paper/Paper.js +67 -0
- package/dist/components/Paper/Paper.types.d.ts +19 -0
- package/dist/components/Paper/index.d.ts +2 -0
- package/dist/components/Popover/Popover.cjs +1 -0
- package/dist/components/Popover/Popover.d.ts +3 -0
- package/dist/components/Popover/Popover.js +93 -0
- package/dist/components/Popover/Popover.types.d.ts +16 -0
- package/dist/components/Popover/index.d.ts +2 -0
- package/dist/components/Progress/Progress.cjs +1 -0
- package/dist/components/Progress/Progress.d.ts +13 -0
- package/dist/components/Progress/Progress.js +74 -0
- package/dist/components/Progress/Progress.types.d.ts +24 -0
- package/dist/components/Progress/index.d.ts +2 -0
- package/dist/components/Radio/Radio.cjs +1 -0
- package/dist/components/Radio/Radio.d.ts +11 -0
- package/dist/components/Radio/Radio.js +172 -0
- package/dist/components/Radio/Radio.types.d.ts +52 -0
- package/dist/components/Radio/index.d.ts +2 -0
- package/dist/components/Rating/Rating.cjs +1 -0
- package/dist/components/Rating/Rating.d.ts +19 -0
- package/dist/components/Rating/Rating.js +99 -0
- package/dist/components/Rating/Rating.types.d.ts +38 -0
- package/dist/components/Rating/index.d.ts +2 -0
- package/dist/components/ScrollArea/ScrollArea.cjs +1 -0
- package/dist/components/ScrollArea/ScrollArea.d.ts +3 -0
- package/dist/components/ScrollArea/ScrollArea.js +44 -0
- package/dist/components/ScrollArea/ScrollArea.types.d.ts +10 -0
- package/dist/components/ScrollArea/index.d.ts +2 -0
- package/dist/components/Select/Select.cjs +1 -0
- package/dist/components/Select/Select.d.ts +3 -0
- package/dist/components/Select/Select.js +105 -0
- package/dist/components/Select/Select.types.d.ts +27 -0
- package/dist/components/Select/index.d.ts +2 -0
- package/dist/components/Skeleton/Skeleton.cjs +1 -0
- package/dist/components/Skeleton/Skeleton.d.ts +27 -0
- package/dist/components/Skeleton/Skeleton.js +116 -0
- package/dist/components/Skeleton/Skeleton.types.d.ts +21 -0
- package/dist/components/Skeleton/index.d.ts +2 -0
- package/dist/components/Slider/Slider.cjs +1 -0
- package/dist/components/Slider/Slider.d.ts +14 -0
- package/dist/components/Slider/Slider.js +191 -0
- package/dist/components/Slider/Slider.types.d.ts +41 -0
- package/dist/components/Slider/index.d.ts +2 -0
- package/dist/components/SpeedDial/SpeedDial.cjs +1 -0
- package/dist/components/SpeedDial/SpeedDial.d.ts +20 -0
- package/dist/components/SpeedDial/SpeedDial.js +150 -0
- package/dist/components/SpeedDial/SpeedDial.types.d.ts +48 -0
- package/dist/components/SpeedDial/index.d.ts +2 -0
- package/dist/components/Spinner/Spinner.cjs +1 -0
- package/dist/components/Spinner/Spinner.d.ts +12 -0
- package/dist/components/Spinner/Spinner.js +51 -0
- package/dist/components/Spinner/Spinner.types.d.ts +11 -0
- package/dist/components/Spinner/index.d.ts +2 -0
- package/dist/components/Statistic/Statistic.cjs +1 -0
- package/dist/components/Statistic/Statistic.d.ts +3 -0
- package/dist/components/Statistic/Statistic.js +55 -0
- package/dist/components/Statistic/Statistic.types.d.ts +18 -0
- package/dist/components/Statistic/index.d.ts +2 -0
- package/dist/components/Stepper/Stepper.cjs +1 -0
- package/dist/components/Stepper/Stepper.d.ts +3 -0
- package/dist/components/Stepper/Stepper.js +100 -0
- package/dist/components/Stepper/Stepper.types.d.ts +20 -0
- package/dist/components/Stepper/index.d.ts +2 -0
- package/dist/components/Switch/Switch.cjs +1 -0
- package/dist/components/Switch/Switch.d.ts +3 -0
- package/dist/components/Switch/Switch.js +81 -0
- package/dist/components/Switch/Switch.types.d.ts +13 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Tabs/Tabs.cjs +1 -0
- package/dist/components/Tabs/Tabs.d.ts +30 -0
- package/dist/components/Tabs/Tabs.js +80 -0
- package/dist/components/Tabs/Tabs.types.d.ts +44 -0
- package/dist/components/Tabs/index.d.ts +2 -0
- package/dist/components/TimePicker/TimePicker.cjs +1 -0
- package/dist/components/TimePicker/TimePicker.d.ts +3 -0
- package/dist/components/TimePicker/TimePicker.js +124 -0
- package/dist/components/TimePicker/TimePicker.types.d.ts +17 -0
- package/dist/components/TimePicker/index.d.ts +2 -0
- package/dist/components/Timeline/Timeline.cjs +1 -0
- package/dist/components/Timeline/Timeline.d.ts +3 -0
- package/dist/components/Timeline/Timeline.js +71 -0
- package/dist/components/Timeline/Timeline.types.d.ts +18 -0
- package/dist/components/Timeline/index.d.ts +2 -0
- package/dist/components/Toast/Toast.cjs +1 -0
- package/dist/components/Toast/Toast.d.ts +9 -0
- package/dist/components/Toast/Toast.js +158 -0
- package/dist/components/Toast/Toast.types.d.ts +49 -0
- package/dist/components/Toast/index.d.ts +2 -0
- package/dist/components/Tooltip/Tooltip.cjs +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts +3 -0
- package/dist/components/Tooltip/Tooltip.js +86 -0
- package/dist/components/Tooltip/Tooltip.types.d.ts +17 -0
- package/dist/components/Tooltip/index.d.ts +2 -0
- package/dist/components/TransferList/TransferList.cjs +1 -0
- package/dist/components/TransferList/TransferList.d.ts +21 -0
- package/dist/components/TransferList/TransferList.js +210 -0
- package/dist/components/TransferList/TransferList.types.d.ts +45 -0
- package/dist/components/TransferList/index.d.ts +2 -0
- package/dist/components/TreeView/TreeView.cjs +1 -0
- package/dist/components/TreeView/TreeView.d.ts +3 -0
- package/dist/components/TreeView/TreeView.js +76 -0
- package/dist/components/TreeView/TreeView.types.d.ts +25 -0
- package/dist/components/TreeView/index.d.ts +2 -0
- package/dist/components/Typography/Typography.cjs +1 -0
- package/dist/components/Typography/Typography.d.ts +14 -0
- package/dist/components/Typography/Typography.js +114 -0
- package/dist/components/Typography/Typography.types.d.ts +37 -0
- package/dist/components/Typography/index.d.ts +2 -0
- package/dist/components/index.cjs +1 -0
- package/dist/components/index.d.ts +132 -0
- package/dist/components/index.js +171 -0
- package/dist/context/BearProvider.cjs +1 -0
- package/dist/context/BearProvider.d.ts +59 -0
- package/dist/context/BearProvider.js +67 -0
- package/dist/context/defaultTheme.cjs +1 -0
- package/dist/context/defaultTheme.d.ts +9 -0
- package/dist/context/defaultTheme.js +215 -0
- package/dist/context/index.cjs +1 -0
- package/dist/context/index.d.ts +2 -0
- package/dist/context/index.js +10 -0
- package/dist/hooks/index.cjs +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.js +13 -0
- package/dist/hooks/useClickOutside.cjs +1 -0
- package/dist/hooks/useClickOutside.d.ts +13 -0
- package/dist/hooks/useClickOutside.js +15 -0
- package/dist/hooks/useDisclosure.cjs +1 -0
- package/dist/hooks/useDisclosure.d.ts +26 -0
- package/dist/hooks/useDisclosure.js +14 -0
- package/dist/hooks/useMediaQuery.cjs +1 -0
- package/dist/hooks/useMediaQuery.d.ts +15 -0
- package/dist/hooks/useMediaQuery.js +21 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +195 -0
- package/dist/types/component.types.d.ts +39 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/theme.types.d.ts +126 -0
- package/dist/utils/cn.cjs +1 -0
- package/dist/utils/cn.d.ts +17 -0
- package/dist/utils/cn.js +19 -0
- package/dist/utils/deepMerge.cjs +1 -0
- package/dist/utils/deepMerge.d.ts +9 -0
- package/dist/utils/deepMerge.js +13 -0
- package/dist/utils/index.cjs +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +7 -0
- package/package.json +108 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { jsxs as l, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback as u, useEffect as w } from "react";
|
|
3
|
+
import { createPortal as g } from "react-dom";
|
|
4
|
+
import { cn as y } from "../../utils/cn.js";
|
|
5
|
+
import { XIcon as p } from "../Icon/index.js";
|
|
6
|
+
const x = {
|
|
7
|
+
left: {
|
|
8
|
+
sm: "bear-w-64",
|
|
9
|
+
md: "bear-w-80",
|
|
10
|
+
lg: "bear-w-96",
|
|
11
|
+
xl: "bear-w-[32rem]"
|
|
12
|
+
},
|
|
13
|
+
right: {
|
|
14
|
+
sm: "bear-w-64",
|
|
15
|
+
md: "bear-w-80",
|
|
16
|
+
lg: "bear-w-96",
|
|
17
|
+
xl: "bear-w-[32rem]"
|
|
18
|
+
},
|
|
19
|
+
top: {
|
|
20
|
+
sm: "bear-h-32",
|
|
21
|
+
md: "bear-h-48",
|
|
22
|
+
lg: "bear-h-64",
|
|
23
|
+
xl: "bear-h-96"
|
|
24
|
+
},
|
|
25
|
+
bottom: {
|
|
26
|
+
sm: "bear-h-32",
|
|
27
|
+
md: "bear-h-48",
|
|
28
|
+
lg: "bear-h-64",
|
|
29
|
+
xl: "bear-h-96"
|
|
30
|
+
}
|
|
31
|
+
}, v = {
|
|
32
|
+
left: "bear-left-0 bear-top-0 bear-h-full",
|
|
33
|
+
right: "bear-right-0 bear-top-0 bear-h-full",
|
|
34
|
+
top: "bear-top-0 bear-left-0 bear-w-full",
|
|
35
|
+
bottom: "bear-bottom-0 bear-left-0 bear-w-full"
|
|
36
|
+
}, z = ({
|
|
37
|
+
isOpen: t,
|
|
38
|
+
onClose: a,
|
|
39
|
+
title: b,
|
|
40
|
+
children: m,
|
|
41
|
+
side: e = "right",
|
|
42
|
+
size: s = "md",
|
|
43
|
+
showCloseButton: d = !0,
|
|
44
|
+
closeOnBackdrop: n = !0,
|
|
45
|
+
closeOnEscape: i = !0,
|
|
46
|
+
className: c
|
|
47
|
+
}) => {
|
|
48
|
+
const o = u(
|
|
49
|
+
(h) => {
|
|
50
|
+
i && h.key === "Escape" && a();
|
|
51
|
+
},
|
|
52
|
+
[i, a]
|
|
53
|
+
);
|
|
54
|
+
if (w(() => (t && (document.addEventListener("keydown", o), document.body.style.overflow = "hidden"), () => {
|
|
55
|
+
document.removeEventListener("keydown", o), document.body.style.overflow = "";
|
|
56
|
+
}), [t, o]), !t) return null;
|
|
57
|
+
const f = /* @__PURE__ */ l("div", { className: "bear-fixed bear-inset-0 bear-z-50", children: [
|
|
58
|
+
/* @__PURE__ */ r(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
className: "bear-absolute bear-inset-0 bear-bg-black/60 bear-backdrop-blur-sm",
|
|
62
|
+
onClick: n ? a : void 0,
|
|
63
|
+
"aria-hidden": "true"
|
|
64
|
+
}
|
|
65
|
+
),
|
|
66
|
+
/* @__PURE__ */ l(
|
|
67
|
+
"div",
|
|
68
|
+
{
|
|
69
|
+
role: "dialog",
|
|
70
|
+
"aria-modal": "true",
|
|
71
|
+
"aria-labelledby": b ? "drawer-title" : void 0,
|
|
72
|
+
className: y(
|
|
73
|
+
"bear-absolute bear-bg-gray-900 bear-shadow-2xl",
|
|
74
|
+
"bear-border-gray-700 bear-overflow-hidden",
|
|
75
|
+
"bear-transform bear-transition-transform bear-duration-300",
|
|
76
|
+
e === "left" && "bear-border-r",
|
|
77
|
+
e === "right" && "bear-border-l",
|
|
78
|
+
e === "top" && "bear-border-b",
|
|
79
|
+
e === "bottom" && "bear-border-t",
|
|
80
|
+
v[e],
|
|
81
|
+
x[e][s],
|
|
82
|
+
c
|
|
83
|
+
),
|
|
84
|
+
children: [
|
|
85
|
+
(b || d) && /* @__PURE__ */ l("div", { className: "bear-flex bear-items-center bear-justify-between bear-px-4 bear-py-3 bear-border-b bear-border-gray-700", children: [
|
|
86
|
+
b && /* @__PURE__ */ r(
|
|
87
|
+
"h2",
|
|
88
|
+
{
|
|
89
|
+
id: "drawer-title",
|
|
90
|
+
className: "bear-text-lg bear-font-semibold bear-text-white",
|
|
91
|
+
children: b
|
|
92
|
+
}
|
|
93
|
+
),
|
|
94
|
+
d && /* @__PURE__ */ r(
|
|
95
|
+
"button",
|
|
96
|
+
{
|
|
97
|
+
onClick: a,
|
|
98
|
+
className: "bear-p-1 bear-rounded-lg bear-text-gray-400 hover:bear-text-white hover:bear-bg-gray-700 bear-transition-colors",
|
|
99
|
+
"aria-label": "Close drawer",
|
|
100
|
+
children: /* @__PURE__ */ r(p, { className: "bear-w-5 bear-h-5" })
|
|
101
|
+
}
|
|
102
|
+
)
|
|
103
|
+
] }),
|
|
104
|
+
/* @__PURE__ */ r("div", { className: "bear-flex-1 bear-overflow-y-auto bear-p-4 bear-text-gray-300", children: m })
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
)
|
|
108
|
+
] });
|
|
109
|
+
return g(f, document.body);
|
|
110
|
+
};
|
|
111
|
+
export {
|
|
112
|
+
z as Drawer
|
|
113
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface DrawerProps {
|
|
3
|
+
/** Whether the drawer is open */
|
|
4
|
+
isOpen: boolean;
|
|
5
|
+
/** Callback when drawer should close */
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
/** Drawer title */
|
|
8
|
+
title?: string;
|
|
9
|
+
/** Drawer content */
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
/** Side from which drawer appears */
|
|
12
|
+
side?: 'left' | 'right' | 'top' | 'bottom';
|
|
13
|
+
/** Drawer size */
|
|
14
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
15
|
+
/** Whether to show close button */
|
|
16
|
+
showCloseButton?: boolean;
|
|
17
|
+
/** Whether clicking backdrop closes drawer */
|
|
18
|
+
closeOnBackdrop?: boolean;
|
|
19
|
+
/** Whether pressing Escape closes drawer */
|
|
20
|
+
closeOnEscape?: boolean;
|
|
21
|
+
/** Additional class names */
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),r=require("react"),y=require("../../utils/cn.cjs"),_={xs:"ember-text-xs ember-py-1 ember-px-2",sm:"ember-text-sm ember-py-1.5 ember-px-3",md:"ember-text-sm ember-py-2 ember-px-3",lg:"ember-text-base ember-py-2.5 ember-px-4",xl:"ember-text-lg ember-py-3 ember-px-5"},B={"bottom-start":"ember-top-full ember-left-0 ember-mt-1","bottom-end":"ember-top-full ember-right-0 ember-mt-1",bottom:"ember-top-full ember-left-1/2 -ember-translate-x-1/2 ember-mt-1","top-start":"ember-bottom-full ember-left-0 ember-mb-1","top-end":"ember-bottom-full ember-right-0 ember-mb-1",top:"ember-bottom-full ember-left-1/2 -ember-translate-x-1/2 ember-mb-1",left:"ember-right-full ember-top-0 ember-mr-1",right:"ember-left-full ember-top-0 ember-ml-1"},K=({trigger:f,items:c,open:h,defaultOpen:N=!1,placement:S="bottom-start",offset:U=4,matchWidth:C=!1,minWidth:D=150,maxHeight:I=300,size:R="md",closeOnSelect:k=!0,closeOnClickOutside:v=!0,disabled:w=!1,onOpenChange:i,className:L,testId:A,...q})=>{var j;const[M,W]=r.useState(N),[l,o]=r.useState(-1),x=r.useRef(null),z=r.useRef(null),E=r.useRef(null),p=h!==void 0,n=p?h:M,u=r.useCallback(e=>{p||W(e),i==null||i(e)},[p,i]),F=r.useCallback(()=>{w||u(!n)},[w,n,u]),a=r.useCallback(()=>{u(!1),o(-1)},[u]),g=r.useCallback(e=>{var b;e.disabled||e.divider||e.header||((b=e.onClick)==null||b.call(e),k&&!e.items&&a())},[k,a]);r.useEffect(()=>{if(!v||!n)return;const e=b=>{x.current&&!x.current.contains(b.target)&&a()};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[n,v,a]),r.useEffect(()=>{if(!n)return;const e=c.filter(t=>!t.disabled&&!t.divider&&!t.header),b=t=>{switch(t.key){case"Escape":t.preventDefault(),a();break;case"ArrowDown":t.preventDefault(),o(d=>{const m=d+1;return m>=e.length?0:m});break;case"ArrowUp":t.preventDefault(),o(d=>{const m=d-1;return m<0?e.length-1:m});break;case"Enter":case" ":t.preventDefault(),l>=0&&l<e.length&&g(e[l]);break}};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[n,c,l,a,g]),r.useEffect(()=>{n||o(-1)},[n]);const P=(e,b)=>{if(e.divider)return s.jsx("div",{className:"ember-my-1 ember-mx-2 ember-h-px ember-bg-gray-200 dark:ember-bg-gray-700",role:"separator"},e.key);if(e.header)return s.jsx("div",{className:"ember-px-3 ember-py-1.5 ember-text-xs ember-font-semibold ember-uppercase ember-tracking-wider ember-text-gray-500 dark:ember-text-gray-400",children:e.label},e.key);const t=c.slice(0,b).filter(m=>!m.disabled&&!m.divider&&!m.header).length,d=l===t;return s.jsxs("button",{type:"button",role:"menuitem",disabled:e.disabled,onClick:()=>g(e),onMouseEnter:()=>o(t),className:y.cn("ember-w-full ember-flex ember-items-center ember-gap-2 ember-text-left ember-border-none ember-bg-transparent",_[R],"ember-transition-colors ember-cursor-pointer",d&&"ember-bg-gray-100 dark:ember-bg-gray-800",e.danger?"ember-text-red-600 dark:ember-text-red-400 hover:ember-bg-red-50 dark:hover:ember-bg-red-900/20":"ember-text-gray-700 dark:ember-text-gray-200 hover:ember-bg-gray-100 dark:hover:ember-bg-gray-800",e.disabled&&"ember-opacity-50 ember-cursor-not-allowed ember-pointer-events-none"),children:[e.icon&&s.jsx("span",{className:"ember-flex-shrink-0 ember-w-5 ember-h-5 ember-flex ember-items-center ember-justify-center",children:e.icon}),s.jsx("span",{className:"ember-flex-1",children:e.label}),e.trailing&&s.jsx("span",{className:"ember-flex-shrink-0 ember-text-gray-400",children:e.trailing}),e.items&&s.jsx("svg",{className:"ember-w-4 ember-h-4 ember-text-gray-400",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:s.jsx("polyline",{points:"9 18 15 12 9 6"})})]},e.key)},T=r.isValidElement(f)?r.cloneElement(f,{onClick:F,ref:E,"aria-expanded":n,"aria-haspopup":!0}):f;return s.jsxs("div",{ref:x,className:y.cn("ember-relative ember-inline-block",L),"data-testid":A,...q,children:[T,n&&s.jsx("div",{ref:z,role:"menu",className:y.cn("ember-absolute ember-z-50","ember-bg-white dark:ember-bg-gray-900","ember-border ember-border-gray-200 dark:ember-border-gray-700","ember-rounded-lg ember-shadow-lg","ember-py-1 ember-overflow-y-auto","ember-animate-in ember-fade-in-0 ember-zoom-in-95 ember-duration-100",B[S]),style:{minWidth:C?(j=E.current)==null?void 0:j.offsetWidth:D,maxHeight:I},children:c.map((e,b)=>P(e,b))})]})};exports.Dropdown=K;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { DropdownProps } from './Dropdown.types';
|
|
3
|
+
/**
|
|
4
|
+
* Dropdown - Contextual menu that appears on trigger click
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* <Dropdown
|
|
9
|
+
* trigger={<Button>Options</Button>}
|
|
10
|
+
* items={[
|
|
11
|
+
* { key: 'edit', label: 'Edit', icon: <EditIcon />, onClick: handleEdit },
|
|
12
|
+
* { key: 'divider-1', divider: true },
|
|
13
|
+
* { key: 'delete', label: 'Delete', danger: true, onClick: handleDelete },
|
|
14
|
+
* ]}
|
|
15
|
+
* />
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare const Dropdown: FC<DropdownProps>;
|
|
19
|
+
export default Dropdown;
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { jsxs as L, jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { useState as S, useRef as y, useCallback as f, useEffect as h, isValidElement as Z, cloneElement as q } from "react";
|
|
3
|
+
import { cn as k } from "../../utils/cn.js";
|
|
4
|
+
const G = {
|
|
5
|
+
xs: "ember-text-xs ember-py-1 ember-px-2",
|
|
6
|
+
sm: "ember-text-sm ember-py-1.5 ember-px-3",
|
|
7
|
+
md: "ember-text-sm ember-py-2 ember-px-3",
|
|
8
|
+
lg: "ember-text-base ember-py-2.5 ember-px-4",
|
|
9
|
+
xl: "ember-text-lg ember-py-3 ember-px-5"
|
|
10
|
+
}, H = {
|
|
11
|
+
"bottom-start": "ember-top-full ember-left-0 ember-mt-1",
|
|
12
|
+
"bottom-end": "ember-top-full ember-right-0 ember-mt-1",
|
|
13
|
+
bottom: "ember-top-full ember-left-1/2 -ember-translate-x-1/2 ember-mt-1",
|
|
14
|
+
"top-start": "ember-bottom-full ember-left-0 ember-mb-1",
|
|
15
|
+
"top-end": "ember-bottom-full ember-right-0 ember-mb-1",
|
|
16
|
+
top: "ember-bottom-full ember-left-1/2 -ember-translate-x-1/2 ember-mb-1",
|
|
17
|
+
left: "ember-right-full ember-top-0 ember-mr-1",
|
|
18
|
+
right: "ember-left-full ember-top-0 ember-ml-1"
|
|
19
|
+
}, $ = ({
|
|
20
|
+
trigger: u,
|
|
21
|
+
items: d,
|
|
22
|
+
open: v,
|
|
23
|
+
defaultOpen: A = !1,
|
|
24
|
+
placement: C = "bottom-start",
|
|
25
|
+
offset: J = 4,
|
|
26
|
+
matchWidth: R = !1,
|
|
27
|
+
minWidth: j = 150,
|
|
28
|
+
maxHeight: W = 300,
|
|
29
|
+
size: z = "md",
|
|
30
|
+
closeOnSelect: w = !0,
|
|
31
|
+
closeOnClickOutside: E = !0,
|
|
32
|
+
disabled: N = !1,
|
|
33
|
+
onOpenChange: c,
|
|
34
|
+
className: F,
|
|
35
|
+
testId: M,
|
|
36
|
+
..._
|
|
37
|
+
}) => {
|
|
38
|
+
var D;
|
|
39
|
+
const [B, K] = S(A), [s, l] = S(-1), p = y(null), P = y(null), I = y(null), x = v !== void 0, b = x ? v : B, i = f((e) => {
|
|
40
|
+
x || K(e), c == null || c(e);
|
|
41
|
+
}, [x, c]), T = f(() => {
|
|
42
|
+
N || i(!b);
|
|
43
|
+
}, [N, b, i]), o = f(() => {
|
|
44
|
+
i(!1), l(-1);
|
|
45
|
+
}, [i]), g = f((e) => {
|
|
46
|
+
var t;
|
|
47
|
+
e.disabled || e.divider || e.header || ((t = e.onClick) == null || t.call(e), w && !e.items && o());
|
|
48
|
+
}, [w, o]);
|
|
49
|
+
h(() => {
|
|
50
|
+
if (!E || !b) return;
|
|
51
|
+
const e = (t) => {
|
|
52
|
+
p.current && !p.current.contains(t.target) && o();
|
|
53
|
+
};
|
|
54
|
+
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
55
|
+
}, [b, E, o]), h(() => {
|
|
56
|
+
if (!b) return;
|
|
57
|
+
const e = d.filter((r) => !r.disabled && !r.divider && !r.header), t = (r) => {
|
|
58
|
+
switch (r.key) {
|
|
59
|
+
case "Escape":
|
|
60
|
+
r.preventDefault(), o();
|
|
61
|
+
break;
|
|
62
|
+
case "ArrowDown":
|
|
63
|
+
r.preventDefault(), l((a) => {
|
|
64
|
+
const m = a + 1;
|
|
65
|
+
return m >= e.length ? 0 : m;
|
|
66
|
+
});
|
|
67
|
+
break;
|
|
68
|
+
case "ArrowUp":
|
|
69
|
+
r.preventDefault(), l((a) => {
|
|
70
|
+
const m = a - 1;
|
|
71
|
+
return m < 0 ? e.length - 1 : m;
|
|
72
|
+
});
|
|
73
|
+
break;
|
|
74
|
+
case "Enter":
|
|
75
|
+
case " ":
|
|
76
|
+
r.preventDefault(), s >= 0 && s < e.length && g(e[s]);
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
|
|
81
|
+
}, [b, d, s, o, g]), h(() => {
|
|
82
|
+
b || l(-1);
|
|
83
|
+
}, [b]);
|
|
84
|
+
const U = (e, t) => {
|
|
85
|
+
if (e.divider)
|
|
86
|
+
return /* @__PURE__ */ n(
|
|
87
|
+
"div",
|
|
88
|
+
{
|
|
89
|
+
className: "ember-my-1 ember-mx-2 ember-h-px ember-bg-gray-200 dark:ember-bg-gray-700",
|
|
90
|
+
role: "separator"
|
|
91
|
+
},
|
|
92
|
+
e.key
|
|
93
|
+
);
|
|
94
|
+
if (e.header)
|
|
95
|
+
return /* @__PURE__ */ n(
|
|
96
|
+
"div",
|
|
97
|
+
{
|
|
98
|
+
className: "ember-px-3 ember-py-1.5 ember-text-xs ember-font-semibold ember-uppercase ember-tracking-wider ember-text-gray-500 dark:ember-text-gray-400",
|
|
99
|
+
children: e.label
|
|
100
|
+
},
|
|
101
|
+
e.key
|
|
102
|
+
);
|
|
103
|
+
const r = d.slice(0, t).filter((m) => !m.disabled && !m.divider && !m.header).length, a = s === r;
|
|
104
|
+
return /* @__PURE__ */ L(
|
|
105
|
+
"button",
|
|
106
|
+
{
|
|
107
|
+
type: "button",
|
|
108
|
+
role: "menuitem",
|
|
109
|
+
disabled: e.disabled,
|
|
110
|
+
onClick: () => g(e),
|
|
111
|
+
onMouseEnter: () => l(r),
|
|
112
|
+
className: k(
|
|
113
|
+
"ember-w-full ember-flex ember-items-center ember-gap-2 ember-text-left ember-border-none ember-bg-transparent",
|
|
114
|
+
G[z],
|
|
115
|
+
"ember-transition-colors ember-cursor-pointer",
|
|
116
|
+
a && "ember-bg-gray-100 dark:ember-bg-gray-800",
|
|
117
|
+
e.danger ? "ember-text-red-600 dark:ember-text-red-400 hover:ember-bg-red-50 dark:hover:ember-bg-red-900/20" : "ember-text-gray-700 dark:ember-text-gray-200 hover:ember-bg-gray-100 dark:hover:ember-bg-gray-800",
|
|
118
|
+
e.disabled && "ember-opacity-50 ember-cursor-not-allowed ember-pointer-events-none"
|
|
119
|
+
),
|
|
120
|
+
children: [
|
|
121
|
+
e.icon && /* @__PURE__ */ n("span", { className: "ember-flex-shrink-0 ember-w-5 ember-h-5 ember-flex ember-items-center ember-justify-center", children: e.icon }),
|
|
122
|
+
/* @__PURE__ */ n("span", { className: "ember-flex-1", children: e.label }),
|
|
123
|
+
e.trailing && /* @__PURE__ */ n("span", { className: "ember-flex-shrink-0 ember-text-gray-400", children: e.trailing }),
|
|
124
|
+
e.items && /* @__PURE__ */ n("svg", { className: "ember-w-4 ember-h-4 ember-text-gray-400", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ n("polyline", { points: "9 18 15 12 9 6" }) })
|
|
125
|
+
]
|
|
126
|
+
},
|
|
127
|
+
e.key
|
|
128
|
+
);
|
|
129
|
+
}, V = Z(u) ? q(u, {
|
|
130
|
+
onClick: T,
|
|
131
|
+
ref: I,
|
|
132
|
+
"aria-expanded": b,
|
|
133
|
+
"aria-haspopup": !0
|
|
134
|
+
}) : u;
|
|
135
|
+
return /* @__PURE__ */ L(
|
|
136
|
+
"div",
|
|
137
|
+
{
|
|
138
|
+
ref: p,
|
|
139
|
+
className: k("ember-relative ember-inline-block", F),
|
|
140
|
+
"data-testid": M,
|
|
141
|
+
..._,
|
|
142
|
+
children: [
|
|
143
|
+
V,
|
|
144
|
+
b && /* @__PURE__ */ n(
|
|
145
|
+
"div",
|
|
146
|
+
{
|
|
147
|
+
ref: P,
|
|
148
|
+
role: "menu",
|
|
149
|
+
className: k(
|
|
150
|
+
"ember-absolute ember-z-50",
|
|
151
|
+
"ember-bg-white dark:ember-bg-gray-900",
|
|
152
|
+
"ember-border ember-border-gray-200 dark:ember-border-gray-700",
|
|
153
|
+
"ember-rounded-lg ember-shadow-lg",
|
|
154
|
+
"ember-py-1 ember-overflow-y-auto",
|
|
155
|
+
"ember-animate-in ember-fade-in-0 ember-zoom-in-95 ember-duration-100",
|
|
156
|
+
H[C]
|
|
157
|
+
),
|
|
158
|
+
style: {
|
|
159
|
+
minWidth: R ? (D = I.current) == null ? void 0 : D.offsetWidth : j,
|
|
160
|
+
maxHeight: W
|
|
161
|
+
},
|
|
162
|
+
children: d.map((e, t) => U(e, t))
|
|
163
|
+
}
|
|
164
|
+
)
|
|
165
|
+
]
|
|
166
|
+
}
|
|
167
|
+
);
|
|
168
|
+
};
|
|
169
|
+
export {
|
|
170
|
+
$ as Dropdown
|
|
171
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import { BearSize } from '../../types';
|
|
3
|
+
export interface DropdownItem {
|
|
4
|
+
/** Unique key */
|
|
5
|
+
key: string;
|
|
6
|
+
/** Display label */
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
/** Item icon */
|
|
9
|
+
icon?: ReactNode;
|
|
10
|
+
/** Trailing content */
|
|
11
|
+
trailing?: ReactNode;
|
|
12
|
+
/** Whether item is disabled */
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
/** Whether this is a divider */
|
|
15
|
+
divider?: boolean;
|
|
16
|
+
/** Whether this is a header */
|
|
17
|
+
header?: boolean;
|
|
18
|
+
/** Danger/destructive action */
|
|
19
|
+
danger?: boolean;
|
|
20
|
+
/** Click handler */
|
|
21
|
+
onClick?: () => void;
|
|
22
|
+
/** Nested items for submenu */
|
|
23
|
+
items?: DropdownItem[];
|
|
24
|
+
}
|
|
25
|
+
export interface DropdownProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
26
|
+
/** Dropdown trigger element */
|
|
27
|
+
trigger: ReactNode;
|
|
28
|
+
/** Dropdown items */
|
|
29
|
+
items: DropdownItem[];
|
|
30
|
+
/** Whether dropdown is open (controlled) */
|
|
31
|
+
open?: boolean;
|
|
32
|
+
/** Default open state */
|
|
33
|
+
defaultOpen?: boolean;
|
|
34
|
+
/** Placement relative to trigger */
|
|
35
|
+
placement?: 'bottom-start' | 'bottom-end' | 'bottom' | 'top-start' | 'top-end' | 'top' | 'left' | 'right';
|
|
36
|
+
/** Offset from trigger */
|
|
37
|
+
offset?: number;
|
|
38
|
+
/** Whether dropdown should match trigger width */
|
|
39
|
+
matchWidth?: boolean;
|
|
40
|
+
/** Min width of dropdown */
|
|
41
|
+
minWidth?: number;
|
|
42
|
+
/** Max height before scroll */
|
|
43
|
+
maxHeight?: number;
|
|
44
|
+
/** Size variant */
|
|
45
|
+
size?: BearSize;
|
|
46
|
+
/** Close on item click */
|
|
47
|
+
closeOnSelect?: boolean;
|
|
48
|
+
/** Close on outside click */
|
|
49
|
+
closeOnClickOutside?: boolean;
|
|
50
|
+
/** Disabled state */
|
|
51
|
+
disabled?: boolean;
|
|
52
|
+
/** Handler for open/close */
|
|
53
|
+
onOpenChange?: (open: boolean) => void;
|
|
54
|
+
/** Test ID */
|
|
55
|
+
testId?: string;
|
|
56
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("../../utils/cn.cjs"),x=({className:b})=>e.jsx("svg",{className:b,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4"})}),o=({icon:b,title:c,description:s,action:l,secondaryAction:n,className:d,size:a="md",variant:i="default"})=>{const r={sm:{icon:"bear-w-12 bear-h-12",title:"bear-text-lg",desc:"bear-text-sm",padding:"bear-py-6 bear-px-4"},md:{icon:"bear-w-16 bear-h-16",title:"bear-text-xl",desc:"bear-text-base",padding:"bear-py-10 bear-px-6"},lg:{icon:"bear-w-20 bear-h-20",title:"bear-text-2xl",desc:"bear-text-lg",padding:"bear-py-14 bear-px-8"}};return e.jsxs("div",{className:t.cn("bear-flex bear-flex-col bear-items-center bear-text-center",r[a].padding,i==="card"&&"bear-bg-zinc-800/50 bear-rounded-xl bear-border bear-border-zinc-700",d),children:[e.jsx("div",{className:t.cn("bear-text-zinc-600 bear-mb-4",r[a].icon),children:b||e.jsx(x,{className:"bear-w-full bear-h-full"})}),e.jsx("h3",{className:t.cn("bear-font-semibold bear-text-white bear-mb-2",r[a].title),children:c}),s&&e.jsx("p",{className:t.cn("bear-text-zinc-400 bear-max-w-md bear-mb-6",r[a].desc),children:s}),(l||n)&&e.jsxs("div",{className:"bear-flex bear-items-center bear-gap-3",children:[l,n]})]})};exports.EmptyState=o;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsxs as c, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { cn as t } from "../../utils/cn.js";
|
|
3
|
+
const m = ({ className: b }) => /* @__PURE__ */ e("svg", { className: b, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4" }) }), h = ({
|
|
4
|
+
icon: b,
|
|
5
|
+
title: s,
|
|
6
|
+
description: l,
|
|
7
|
+
action: d,
|
|
8
|
+
secondaryAction: n,
|
|
9
|
+
className: i,
|
|
10
|
+
size: a = "md",
|
|
11
|
+
variant: o = "default"
|
|
12
|
+
}) => {
|
|
13
|
+
const r = {
|
|
14
|
+
sm: { icon: "bear-w-12 bear-h-12", title: "bear-text-lg", desc: "bear-text-sm", padding: "bear-py-6 bear-px-4" },
|
|
15
|
+
md: { icon: "bear-w-16 bear-h-16", title: "bear-text-xl", desc: "bear-text-base", padding: "bear-py-10 bear-px-6" },
|
|
16
|
+
lg: { icon: "bear-w-20 bear-h-20", title: "bear-text-2xl", desc: "bear-text-lg", padding: "bear-py-14 bear-px-8" }
|
|
17
|
+
};
|
|
18
|
+
return /* @__PURE__ */ c("div", { className: t(
|
|
19
|
+
"bear-flex bear-flex-col bear-items-center bear-text-center",
|
|
20
|
+
r[a].padding,
|
|
21
|
+
o === "card" && "bear-bg-zinc-800/50 bear-rounded-xl bear-border bear-border-zinc-700",
|
|
22
|
+
i
|
|
23
|
+
), children: [
|
|
24
|
+
/* @__PURE__ */ e("div", { className: t("bear-text-zinc-600 bear-mb-4", r[a].icon), children: b || /* @__PURE__ */ e(m, { className: "bear-w-full bear-h-full" }) }),
|
|
25
|
+
/* @__PURE__ */ e("h3", { className: t("bear-font-semibold bear-text-white bear-mb-2", r[a].title), children: s }),
|
|
26
|
+
l && /* @__PURE__ */ e("p", { className: t("bear-text-zinc-400 bear-max-w-md bear-mb-6", r[a].desc), children: l }),
|
|
27
|
+
(d || n) && /* @__PURE__ */ c("div", { className: "bear-flex bear-items-center bear-gap-3", children: [
|
|
28
|
+
d,
|
|
29
|
+
n
|
|
30
|
+
] })
|
|
31
|
+
] });
|
|
32
|
+
};
|
|
33
|
+
export {
|
|
34
|
+
h as EmptyState
|
|
35
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface EmptyStateProps {
|
|
3
|
+
icon?: ReactNode;
|
|
4
|
+
title: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
action?: ReactNode;
|
|
7
|
+
secondaryAction?: ReactNode;
|
|
8
|
+
className?: string;
|
|
9
|
+
size?: 'sm' | 'md' | 'lg';
|
|
10
|
+
variant?: 'default' | 'card';
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),f=require("react"),x=require("../../utils/cn.cjs"),p={sm:"ember-w-10 ember-h-10",md:"ember-w-14 ember-h-14",lg:"ember-w-16 ember-h-16"},w={"bottom-right":"ember-fixed ember-bottom-6 ember-right-6","bottom-left":"ember-fixed ember-bottom-6 ember-left-6","top-right":"ember-fixed ember-top-6 ember-right-6","top-left":"ember-fixed ember-top-6 ember-left-6","bottom-center":"ember-fixed ember-bottom-6 ember-left-1/2 ember--translate-x-1/2",relative:""},v={primary:"ember-bg-pink-500 hover:ember-bg-pink-600 ember-text-white",secondary:"ember-bg-gray-600 hover:ember-bg-gray-700 ember-text-white",success:"ember-bg-green-500 hover:ember-bg-green-600 ember-text-white",danger:"ember-bg-red-500 hover:ember-bg-red-600 ember-text-white",warning:"ember-bg-amber-500 hover:ember-bg-amber-600 ember-text-white",info:"ember-bg-blue-500 hover:ember-bg-blue-600 ember-text-white",ghost:"ember-bg-gray-500 hover:ember-bg-gray-600 ember-text-white",outline:"ember-bg-white ember-border-2 ember-border-pink-500 hover:ember-bg-pink-50 ember-text-pink-500",error:"ember-bg-red-500 hover:ember-bg-red-600 ember-text-white"},b=f.forwardRef(({children:t,size:m="md",variant:o="primary",color:e,extended:i=!1,position:n="relative",disabled:r=!1,shadow:a=!0,animated:g=!0,className:s,testId:l,style:h,...c},u)=>d.jsx("button",{ref:u,type:"button",disabled:r,className:x.cn("ember-inline-flex ember-items-center ember-justify-center ember-rounded-full","ember-border-none ember-cursor-pointer ember-transition-all ember-duration-200","focus:ember-outline-none focus:ember-ring-2 focus:ember-ring-offset-2 focus:ember-ring-pink-500",p[m],w[n],v[o],a&&"ember-shadow-lg hover:ember-shadow-xl",g&&"hover:ember-scale-110 active:ember-scale-95",i&&"ember-w-auto ember-px-6 ember-gap-2",r&&"ember-opacity-50 ember-cursor-not-allowed hover:ember-scale-100",s),style:{...h,...e&&{backgroundColor:e}},"data-testid":l,...c,children:t}));b.displayName="Fab";exports.Fab=b;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FabProps } from './Fab.types';
|
|
2
|
+
/**
|
|
3
|
+
* Floating Action Button (FAB) for primary actions
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* <Fab position="bottom-right" onClick={handleAdd}>
|
|
8
|
+
* <PlusIcon />
|
|
9
|
+
* </Fab>
|
|
10
|
+
*
|
|
11
|
+
* <Fab extended variant="success">
|
|
12
|
+
* <CheckIcon /> Save
|
|
13
|
+
* </Fab>
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare const Fab: import('react').ForwardRefExoticComponent<FabProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
17
|
+
export default Fab;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { jsx as d } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as c } from "react";
|
|
3
|
+
import { cn as p } from "../../utils/cn.js";
|
|
4
|
+
const u = {
|
|
5
|
+
sm: "ember-w-10 ember-h-10",
|
|
6
|
+
md: "ember-w-14 ember-h-14",
|
|
7
|
+
lg: "ember-w-16 ember-h-16"
|
|
8
|
+
}, x = {
|
|
9
|
+
"bottom-right": "ember-fixed ember-bottom-6 ember-right-6",
|
|
10
|
+
"bottom-left": "ember-fixed ember-bottom-6 ember-left-6",
|
|
11
|
+
"top-right": "ember-fixed ember-top-6 ember-right-6",
|
|
12
|
+
"top-left": "ember-fixed ember-top-6 ember-left-6",
|
|
13
|
+
"bottom-center": "ember-fixed ember-bottom-6 ember-left-1/2 ember--translate-x-1/2",
|
|
14
|
+
relative: ""
|
|
15
|
+
}, w = {
|
|
16
|
+
primary: "ember-bg-pink-500 hover:ember-bg-pink-600 ember-text-white",
|
|
17
|
+
secondary: "ember-bg-gray-600 hover:ember-bg-gray-700 ember-text-white",
|
|
18
|
+
success: "ember-bg-green-500 hover:ember-bg-green-600 ember-text-white",
|
|
19
|
+
danger: "ember-bg-red-500 hover:ember-bg-red-600 ember-text-white",
|
|
20
|
+
warning: "ember-bg-amber-500 hover:ember-bg-amber-600 ember-text-white",
|
|
21
|
+
info: "ember-bg-blue-500 hover:ember-bg-blue-600 ember-text-white",
|
|
22
|
+
ghost: "ember-bg-gray-500 hover:ember-bg-gray-600 ember-text-white",
|
|
23
|
+
outline: "ember-bg-white ember-border-2 ember-border-pink-500 hover:ember-bg-pink-50 ember-text-pink-500",
|
|
24
|
+
error: "ember-bg-red-500 hover:ember-bg-red-600 ember-text-white"
|
|
25
|
+
}, v = c(({
|
|
26
|
+
children: b,
|
|
27
|
+
size: m = "md",
|
|
28
|
+
variant: t = "primary",
|
|
29
|
+
color: e,
|
|
30
|
+
extended: o = !1,
|
|
31
|
+
position: i = "relative",
|
|
32
|
+
disabled: r = !1,
|
|
33
|
+
shadow: n = !0,
|
|
34
|
+
animated: a = !0,
|
|
35
|
+
className: g,
|
|
36
|
+
testId: s,
|
|
37
|
+
style: h,
|
|
38
|
+
...l
|
|
39
|
+
}, f) => /* @__PURE__ */ d(
|
|
40
|
+
"button",
|
|
41
|
+
{
|
|
42
|
+
ref: f,
|
|
43
|
+
type: "button",
|
|
44
|
+
disabled: r,
|
|
45
|
+
className: p(
|
|
46
|
+
"ember-inline-flex ember-items-center ember-justify-center ember-rounded-full",
|
|
47
|
+
"ember-border-none ember-cursor-pointer ember-transition-all ember-duration-200",
|
|
48
|
+
"focus:ember-outline-none focus:ember-ring-2 focus:ember-ring-offset-2 focus:ember-ring-pink-500",
|
|
49
|
+
u[m],
|
|
50
|
+
x[i],
|
|
51
|
+
w[t],
|
|
52
|
+
n && "ember-shadow-lg hover:ember-shadow-xl",
|
|
53
|
+
a && "hover:ember-scale-110 active:ember-scale-95",
|
|
54
|
+
o && "ember-w-auto ember-px-6 ember-gap-2",
|
|
55
|
+
r && "ember-opacity-50 ember-cursor-not-allowed hover:ember-scale-100",
|
|
56
|
+
g
|
|
57
|
+
),
|
|
58
|
+
style: {
|
|
59
|
+
...h,
|
|
60
|
+
...e && { backgroundColor: e }
|
|
61
|
+
},
|
|
62
|
+
"data-testid": s,
|
|
63
|
+
...l,
|
|
64
|
+
children: b
|
|
65
|
+
}
|
|
66
|
+
));
|
|
67
|
+
v.displayName = "Fab";
|
|
68
|
+
export {
|
|
69
|
+
v as Fab
|
|
70
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import { BearVariant } from '../../types';
|
|
3
|
+
export interface FabProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
4
|
+
/** Icon or content */
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
/** Size of the FAB */
|
|
7
|
+
size?: 'sm' | 'md' | 'lg';
|
|
8
|
+
/** Color variant */
|
|
9
|
+
variant?: BearVariant;
|
|
10
|
+
/** Custom color override */
|
|
11
|
+
color?: string;
|
|
12
|
+
/** Extended FAB with label */
|
|
13
|
+
extended?: boolean;
|
|
14
|
+
/** Position on screen */
|
|
15
|
+
position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' | 'bottom-center' | 'relative';
|
|
16
|
+
/** Whether FAB is disabled */
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
/** Show shadow */
|
|
19
|
+
shadow?: boolean;
|
|
20
|
+
/** Animation on hover */
|
|
21
|
+
animated?: boolean;
|
|
22
|
+
/** Test ID */
|
|
23
|
+
testId?: string;
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),m=require("react"),y=require("../../utils/cn.cjs"),D=({className:a})=>e.jsx("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12"})}),O=({className:a})=>e.jsx("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})}),q=a=>{if(a===0)return"0 Bytes";const n=1024,i=["Bytes","KB","MB","GB"],o=Math.floor(Math.log(a)/Math.log(n));return parseFloat((a/Math.pow(n,o)).toFixed(2))+" "+i[o]},A=({onFilesSelect:a,onFileRemove:n,accept:i,multiple:o=!1,maxSize:u,maxFiles:p,disabled:s=!1,label:l,helperText:d,error:b,files:c=[],showPreview:f=!0,variant:M="dropzone",icon:k,className:v})=>{const g=m.useRef(null),[N,j]=m.useState(!1),x=m.useCallback(r=>{if(!r)return;let t=Array.from(r);p&&(t=t.slice(0,p-c.length)),u&&(t=t.filter(h=>h.size<=u)),a==null||a(t)},[a,p,u,c.length]),B=m.useCallback(r=>{r.preventDefault(),j(!1),s||x(r.dataTransfer.files)},[s,x]),U=r=>{r.preventDefault(),s||j(!0)},W=()=>j(!1),z=()=>{var r;s||(r=g.current)==null||r.click()},w=r=>{const{file:t,status:h,progress:L,error:C}=r,I=t.type.startsWith("image/");return e.jsxs("div",{className:"bear-flex bear-items-center bear-gap-3 bear-p-2 bear-bg-zinc-800 bear-rounded-lg",children:[I?e.jsx("img",{src:URL.createObjectURL(t),alt:t.name,className:"bear-w-10 bear-h-10 bear-object-cover bear-rounded"}):e.jsx(O,{className:"bear-w-10 bear-h-10 bear-text-zinc-500"}),e.jsxs("div",{className:"bear-flex-1 bear-min-w-0",children:[e.jsx("div",{className:"bear-text-sm bear-text-white bear-truncate",children:t.name}),e.jsx("div",{className:"bear-text-xs bear-text-zinc-500",children:q(t.size)}),h==="uploading"&&L!==void 0&&e.jsx("div",{className:"bear-mt-1 bear-h-1 bear-bg-zinc-700 bear-rounded-full bear-overflow-hidden",children:e.jsx("div",{className:"bear-h-full bear-bg-pink-500 bear-transition-all",style:{width:`${L}%`}})}),C&&e.jsx("div",{className:"bear-text-xs bear-text-red-400 bear-mt-1",children:C})]}),h==="success"&&e.jsx("svg",{className:"bear-w-5 bear-h-5 bear-text-green-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})}),e.jsx("button",{onClick:()=>n==null?void 0:n(r),className:"bear-p-1 bear-rounded hover:bear-bg-zinc-700 bear-text-zinc-400 hover:bear-text-white",children:e.jsx("svg",{className:"bear-w-4 bear-h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]},r.id)};return M==="button"?e.jsxs("div",{className:v,children:[l&&e.jsx("label",{className:"bear-block bear-text-sm bear-font-medium bear-text-zinc-300 bear-mb-1.5",children:l}),e.jsxs("button",{onClick:z,disabled:s,className:y.cn("bear-px-4 bear-py-2 bear-rounded-lg bear-bg-pink-500 bear-text-white hover:bear-bg-pink-600 bear-transition-colors bear-flex bear-items-center bear-gap-2",s&&"bear-opacity-50 bear-cursor-not-allowed"),children:[k||e.jsx(D,{className:"bear-w-5 bear-h-5"}),"Choose Files"]}),e.jsx("input",{ref:g,type:"file",accept:i,multiple:o,onChange:r=>x(r.target.files),className:"bear-hidden"}),d&&e.jsx("p",{className:"bear-mt-1 bear-text-xs bear-text-zinc-500",children:d}),b&&e.jsx("p",{className:"bear-mt-1 bear-text-xs bear-text-red-400",children:b}),f&&c.length>0&&e.jsx("div",{className:"bear-mt-3 bear-space-y-2",children:c.map(w)})]}):e.jsxs("div",{className:v,children:[l&&e.jsx("label",{className:"bear-block bear-text-sm bear-font-medium bear-text-zinc-300 bear-mb-1.5",children:l}),e.jsxs("div",{onClick:z,onDrop:B,onDragOver:U,onDragLeave:W,className:y.cn("bear-border-2 bear-border-dashed bear-rounded-lg bear-p-8 bear-text-center bear-transition-colors bear-cursor-pointer",N?"bear-border-pink-500 bear-bg-pink-500/10":"bear-border-zinc-600 hover:bear-border-zinc-500",s&&"bear-opacity-50 bear-cursor-not-allowed",b&&"bear-border-red-500"),children:[k||e.jsx(D,{className:"bear-w-12 bear-h-12 bear-mx-auto bear-text-zinc-500 bear-mb-4"}),e.jsx("p",{className:"bear-text-zinc-300 bear-font-medium",children:N?"Drop files here":"Drag & drop files here"}),e.jsx("p",{className:"bear-text-sm bear-text-zinc-500 bear-mt-1",children:"or click to browse"}),i&&e.jsxs("p",{className:"bear-text-xs bear-text-zinc-600 bear-mt-2",children:["Accepted: ",i]})]}),e.jsx("input",{ref:g,type:"file",accept:i,multiple:o,onChange:r=>x(r.target.files),className:"bear-hidden"}),d&&e.jsx("p",{className:"bear-mt-1 bear-text-xs bear-text-zinc-500",children:d}),b&&e.jsx("p",{className:"bear-mt-1 bear-text-xs bear-text-red-400",children:b}),f&&c.length>0&&e.jsx("div",{className:"bear-mt-3 bear-space-y-2",children:c.map(w)})]})};exports.FileUpload=A;
|