@taiv/ui 1.14.1 → 2.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/dist/assets/assets.d.ts +12 -1
- package/dist/assets/assets.d.ts.map +1 -1
- package/dist/assets/assets.js +22 -16
- package/dist/assets/brand/taiv-favicon-dark.png +0 -0
- package/dist/assets/brand/taiv-favicon-light.png +0 -0
- package/dist/assets/brand/taiv-icon-black.svg +10 -0
- package/dist/assets/brand/taiv-icon-dark.svg +17 -0
- package/dist/assets/brand/taiv-icon-white.svg +17 -0
- package/dist/assets/brand/taiv-logo-black.svg +16 -0
- package/dist/assets/brand/taiv-logo-dark.svg +23 -0
- package/dist/assets/brand/taiv-logo-old.svg +1 -0
- package/dist/assets/brand/taiv-logo-purple.svg +16 -0
- package/dist/assets/brand/taiv-logo-white.svg +23 -0
- package/dist/assets/icons.d.ts +1 -1
- package/dist/assets/icons.d.ts.map +1 -1
- package/dist/assets/icons.js +57 -53
- package/dist/assets/index.d.ts +3 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/assets/index.js +2 -0
- package/dist/components/Data/BigCalendar/BigCalendar.d.ts +26 -0
- package/dist/components/Data/BigCalendar/BigCalendar.d.ts.map +1 -0
- package/dist/components/Data/BigCalendar/BigCalendar.js +54 -0
- package/dist/components/Data/BigCalendar/BigCalendar.stories.d.ts +8 -0
- package/dist/components/Data/BigCalendar/BigCalendar.stories.d.ts.map +1 -0
- package/dist/components/Data/BigCalendar/BigCalendar.stories.js +77 -0
- package/dist/components/Data/Calendar/Calendar.d.ts +102 -0
- package/dist/components/Data/Calendar/Calendar.d.ts.map +1 -0
- package/dist/components/Data/Calendar/Calendar.js +671 -0
- package/dist/components/Data/Calendar/Calendar.stories.d.ts +10 -0
- package/dist/components/Data/Calendar/Calendar.stories.d.ts.map +1 -0
- package/dist/components/Data/Calendar/Calendar.stories.js +87 -0
- package/dist/components/Data/MediaPill/MediaPill.d.ts +27 -0
- package/dist/components/Data/MediaPill/MediaPill.d.ts.map +1 -0
- package/dist/components/Data/MediaPill/MediaPill.js +53 -0
- package/dist/components/Data/MediaPill/MediaPill.stories.d.ts +10 -0
- package/dist/components/Data/MediaPill/MediaPill.stories.d.ts.map +1 -0
- package/dist/components/Data/MediaPill/MediaPill.stories.js +51 -0
- package/dist/components/Info/Avatar/Avatar.d.ts +9 -0
- package/dist/components/Info/Avatar/Avatar.d.ts.map +1 -0
- package/dist/components/Info/Avatar/Avatar.js +36 -0
- package/dist/components/Info/Avatar/Avatar.stories.d.ts +9 -0
- package/dist/components/Info/Avatar/Avatar.stories.d.ts.map +1 -0
- package/dist/components/Info/Avatar/Avatar.stories.js +78 -0
- package/dist/components/Info/Badge/Badge.stories.d.ts.map +1 -1
- package/dist/components/Info/Badge/Badge.stories.js +21 -6
- package/dist/components/Info/Badge/sizes.d.ts +10 -10
- package/dist/components/Info/Badge/sizes.js +16 -16
- package/dist/components/Info/Badge/variants.d.ts +4 -4
- package/dist/components/Info/Badge/variants.d.ts.map +1 -1
- package/dist/components/Info/Badge/variants.js +26 -13
- package/dist/components/Info/Drawer/Drawer.d.ts +24 -0
- package/dist/components/Info/Drawer/Drawer.d.ts.map +1 -0
- package/dist/components/Info/Drawer/Drawer.js +44 -0
- package/dist/components/Info/Drawer/Drawer.stories.d.ts +10 -0
- package/dist/components/Info/Drawer/Drawer.stories.d.ts.map +1 -0
- package/dist/components/Info/Drawer/Drawer.stories.js +47 -0
- package/dist/components/Info/HoverCard/HoverCard.d.ts +16 -0
- package/dist/components/Info/HoverCard/HoverCard.d.ts.map +1 -0
- package/dist/components/Info/HoverCard/HoverCard.js +26 -0
- package/dist/components/Info/HoverCard/HoverCard.stories.d.ts +11 -0
- package/dist/components/Info/HoverCard/HoverCard.stories.d.ts.map +1 -0
- package/dist/components/Info/HoverCard/HoverCard.stories.js +86 -0
- package/dist/components/Info/HoverCard/HoverCardMenuItem.d.ts +12 -0
- package/dist/components/Info/HoverCard/HoverCardMenuItem.d.ts.map +1 -0
- package/dist/components/Info/HoverCard/HoverCardMenuItem.js +22 -0
- package/dist/components/Info/Indicator/Indicator.d.ts +3 -0
- package/dist/components/Info/Indicator/Indicator.d.ts.map +1 -0
- package/dist/components/Info/Indicator/Indicator.js +1 -0
- package/dist/components/Info/Indicator/Indicator.stories.d.ts +11 -0
- package/dist/components/Info/Indicator/Indicator.stories.d.ts.map +1 -0
- package/dist/components/Info/Indicator/Indicator.stories.js +123 -0
- package/dist/components/Info/InfoCard/InfoCard.d.ts +2 -2
- package/dist/components/Info/InfoCard/InfoCard.d.ts.map +1 -1
- package/dist/components/Info/InfoCard/InfoCard.js +5 -5
- package/dist/components/Info/MobileDrawer/MobileDrawer.d.ts +30 -0
- package/dist/components/Info/MobileDrawer/MobileDrawer.d.ts.map +1 -0
- package/dist/components/Info/MobileDrawer/MobileDrawer.js +52 -0
- package/dist/components/Info/MobileDrawer/MobileDrawer.stories.d.ts +9 -0
- package/dist/components/Info/MobileDrawer/MobileDrawer.stories.d.ts.map +1 -0
- package/dist/components/Info/MobileDrawer/MobileDrawer.stories.js +38 -0
- package/dist/components/Info/Modals/FormModal/FormModal.d.ts +17 -1
- package/dist/components/Info/Modals/FormModal/FormModal.d.ts.map +1 -1
- package/dist/components/Info/Modals/FormModal/FormModal.js +30 -12
- package/dist/components/Info/Modals/FormModalV2/FormModalV2.d.ts +60 -0
- package/dist/components/Info/Modals/FormModalV2/FormModalV2.d.ts.map +1 -0
- package/dist/components/Info/Modals/FormModalV2/FormModalV2.js +96 -0
- package/dist/components/Info/Modals/Modal/Modal.d.ts.map +1 -1
- package/dist/components/Info/Modals/Modal/Modal.js +9 -1
- package/dist/components/Info/Modals/StepperModal/StepperModal.d.ts +21 -0
- package/dist/components/Info/Modals/StepperModal/StepperModal.d.ts.map +1 -0
- package/dist/components/Info/Modals/StepperModal/StepperModal.js +50 -0
- package/dist/components/Info/Modals/StepperModal/StepperModal.stories.d.ts +10 -0
- package/dist/components/Info/Modals/StepperModal/StepperModal.stories.d.ts.map +1 -0
- package/dist/components/Info/Modals/StepperModal/StepperModal.stories.js +169 -0
- package/dist/components/Info/Modals/variants.d.ts +61 -41
- package/dist/components/Info/Modals/variants.d.ts.map +1 -1
- package/dist/components/Info/Modals/variants.js +58 -38
- package/dist/components/Info/Notifications/Notifications.stories.d.ts +1 -0
- package/dist/components/Info/Notifications/Notifications.stories.d.ts.map +1 -1
- package/dist/components/Info/Notifications/Notifications.stories.js +31 -0
- package/dist/components/Info/Notifications/variants.d.ts +25 -19
- package/dist/components/Info/Notifications/variants.d.ts.map +1 -1
- package/dist/components/Info/Notifications/variants.js +30 -24
- package/dist/components/Info/ResponsiveDrawer/ResponsiveDrawer.d.ts +37 -0
- package/dist/components/Info/ResponsiveDrawer/ResponsiveDrawer.d.ts.map +1 -0
- package/dist/components/Info/ResponsiveDrawer/ResponsiveDrawer.js +17 -0
- package/dist/components/Info/ResponsiveDrawer/ResponsiveDrawer.stories.d.ts +7 -0
- package/dist/components/Info/ResponsiveDrawer/ResponsiveDrawer.stories.d.ts.map +1 -0
- package/dist/components/Info/ResponsiveDrawer/ResponsiveDrawer.stories.js +26 -0
- package/dist/components/Info/Tooltips/InfoTooltip/InfoTooltip.d.ts +1 -1
- package/dist/components/Info/Tooltips/InfoTooltip/InfoTooltip.d.ts.map +1 -1
- package/dist/components/Info/Tooltips/InfoTooltip/InfoTooltip.js +9 -3
- package/dist/components/Info/Tooltips/Popover/Popover.d.ts +16 -0
- package/dist/components/Info/Tooltips/Popover/Popover.d.ts.map +1 -0
- package/dist/components/Info/Tooltips/Popover/Popover.js +32 -0
- package/dist/components/Info/Tooltips/Tooltip/Tooltip.d.ts +5 -1
- package/dist/components/Info/Tooltips/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/Info/Tooltips/Tooltip/Tooltip.js +10 -8
- package/dist/components/Inputs/Buttons/Button/Button.d.ts +3 -1
- package/dist/components/Inputs/Buttons/Button/Button.d.ts.map +1 -1
- package/dist/components/Inputs/Buttons/Button/Button.js +38 -5
- package/dist/components/Inputs/Buttons/Button/Button.stories.d.ts +1 -0
- package/dist/components/Inputs/Buttons/Button/Button.stories.d.ts.map +1 -1
- package/dist/components/Inputs/Buttons/Button/Button.stories.js +105 -79
- package/dist/components/Inputs/Buttons/IconButton/IconButton.d.ts +7 -2
- package/dist/components/Inputs/Buttons/IconButton/IconButton.d.ts.map +1 -1
- package/dist/components/Inputs/Buttons/IconButton/IconButton.js +35 -11
- package/dist/components/Inputs/Buttons/IconButton/IconButton.stories.d.ts +1 -0
- package/dist/components/Inputs/Buttons/IconButton/IconButton.stories.d.ts.map +1 -1
- package/dist/components/Inputs/Buttons/IconButton/IconButton.stories.js +100 -74
- package/dist/components/Inputs/Buttons/IconButton/sizes.d.ts +15 -0
- package/dist/components/Inputs/Buttons/IconButton/sizes.d.ts.map +1 -1
- package/dist/components/Inputs/Buttons/IconButton/sizes.js +3 -0
- package/dist/components/Inputs/Buttons/shared/variants.d.ts +399 -164
- package/dist/components/Inputs/Buttons/shared/variants.d.ts.map +1 -1
- package/dist/components/Inputs/Buttons/shared/variants.js +353 -143
- package/dist/components/Inputs/ColorPickerTrigger/ColorPickerTrigger.d.ts +40 -0
- package/dist/components/Inputs/ColorPickerTrigger/ColorPickerTrigger.d.ts.map +1 -0
- package/dist/components/Inputs/ColorPickerTrigger/ColorPickerTrigger.js +139 -0
- package/dist/components/Inputs/ColorPickerTrigger/ColorPickerTrigger.stories.d.ts +13 -0
- package/dist/components/Inputs/ColorPickerTrigger/ColorPickerTrigger.stories.d.ts.map +1 -0
- package/dist/components/Inputs/ColorPickerTrigger/ColorPickerTrigger.stories.js +75 -0
- package/dist/components/Inputs/ColorSwatch/ColorSwatch.d.ts +27 -0
- package/dist/components/Inputs/ColorSwatch/ColorSwatch.d.ts.map +1 -0
- package/dist/components/Inputs/ColorSwatch/ColorSwatch.js +46 -0
- package/dist/components/Inputs/Controls/DaysOfWeek/DaysOfWeek.d.ts +32 -0
- package/dist/components/Inputs/Controls/DaysOfWeek/DaysOfWeek.d.ts.map +1 -0
- package/dist/components/Inputs/Controls/DaysOfWeek/DaysOfWeek.js +92 -0
- package/dist/components/Inputs/Controls/SegmentedControl/SegmentedControl.d.ts +11 -8
- package/dist/components/Inputs/Controls/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/components/Inputs/Controls/SegmentedControl/SegmentedControl.js +20 -12
- package/dist/components/Inputs/Controls/Toggle/Toggle.d.ts +25 -11
- package/dist/components/Inputs/Controls/Toggle/Toggle.d.ts.map +1 -1
- package/dist/components/Inputs/Controls/Toggle/Toggle.js +67 -20
- package/dist/components/Inputs/Controls/Toggle/Toggle.stories.d.ts +1 -0
- package/dist/components/Inputs/Controls/Toggle/Toggle.stories.d.ts.map +1 -1
- package/dist/components/Inputs/Controls/Toggle/Toggle.stories.js +86 -69
- package/dist/components/Inputs/Dates/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/components/Inputs/Dates/DatePicker/DatePicker.js +23 -7
- package/dist/components/Inputs/Dates/DateTimePicker/DateTimePicker.d.ts +12 -0
- package/dist/components/Inputs/Dates/DateTimePicker/DateTimePicker.d.ts.map +1 -0
- package/dist/components/Inputs/Dates/DateTimePicker/DateTimePicker.js +87 -0
- package/dist/components/Inputs/Dates/DateTimePicker/DateTimePicker.stories.d.ts +13 -0
- package/dist/components/Inputs/Dates/DateTimePicker/DateTimePicker.stories.d.ts.map +1 -0
- package/dist/components/Inputs/Dates/DateTimePicker/DateTimePicker.stories.js +239 -0
- package/dist/components/Inputs/Dates/TimeInput/TimeInput.d.ts +19 -0
- package/dist/components/Inputs/Dates/TimeInput/TimeInput.d.ts.map +1 -0
- package/dist/components/Inputs/Dates/TimeInput/TimeInput.js +51 -0
- package/dist/components/Inputs/Dropdowns/FontSelect/FontSelect.d.ts.map +1 -1
- package/dist/components/Inputs/Dropdowns/FontSelect/FontSelect.js +8 -1
- package/dist/components/Inputs/Dropdowns/MultiSelect/MultiSelect.d.ts +2 -2
- package/dist/components/Inputs/Dropdowns/MultiSelect/MultiSelect.d.ts.map +1 -1
- package/dist/components/Inputs/Dropdowns/MultiSelect/MultiSelect.js +76 -57
- package/dist/components/Inputs/Dropdowns/Select/Select.d.ts.map +1 -1
- package/dist/components/Inputs/Dropdowns/Select/Select.js +5 -3
- package/dist/components/Inputs/Dropzone/Dropzone.d.ts +23 -0
- package/dist/components/Inputs/Dropzone/Dropzone.d.ts.map +1 -0
- package/dist/components/Inputs/Dropzone/Dropzone.js +44 -0
- package/dist/components/Inputs/Dropzone/Dropzone.stories.d.ts +12 -0
- package/dist/components/Inputs/Dropzone/Dropzone.stories.d.ts.map +1 -0
- package/dist/components/Inputs/Dropzone/Dropzone.stories.js +114 -0
- package/dist/components/Inputs/TextInputs/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/components/Inputs/TextInputs/NumberInput/NumberInput.js +4 -1
- package/dist/components/Inputs/TextInputs/NumberInput/ResponsiveNumberInput.d.ts +46 -0
- package/dist/components/Inputs/TextInputs/NumberInput/ResponsiveNumberInput.d.ts.map +1 -0
- package/dist/components/Inputs/TextInputs/NumberInput/ResponsiveNumberInput.js +60 -0
- package/dist/components/Layout/Accordion/Accordion.d.ts +16 -0
- package/dist/components/Layout/Accordion/Accordion.d.ts.map +1 -0
- package/dist/components/Layout/Accordion/Accordion.js +63 -0
- package/dist/components/Layout/Accordion/Accordion.stories.d.ts +11 -0
- package/dist/components/Layout/Accordion/Accordion.stories.d.ts.map +1 -0
- package/dist/components/Layout/Accordion/Accordion.stories.js +148 -0
- package/dist/components/Layout/AutoGrid/AutoGrid.d.ts +20 -5
- package/dist/components/Layout/AutoGrid/AutoGrid.d.ts.map +1 -1
- package/dist/components/Layout/AutoGrid/AutoGrid.js +51 -3
- package/dist/components/Layout/AutoGrid/AutoGrid.stories.d.ts +1 -0
- package/dist/components/Layout/AutoGrid/AutoGrid.stories.d.ts.map +1 -1
- package/dist/components/Layout/AutoGrid/AutoGrid.stories.js +39 -29
- package/dist/components/Layout/BottomActionBar/BottomActionBar.d.ts +40 -0
- package/dist/components/Layout/BottomActionBar/BottomActionBar.d.ts.map +1 -0
- package/dist/components/Layout/BottomActionBar/BottomActionBar.js +79 -0
- package/dist/components/Layout/BottomActionBar/BottomActionBar.stories.d.ts +10 -0
- package/dist/components/Layout/BottomActionBar/BottomActionBar.stories.d.ts.map +1 -0
- package/dist/components/Layout/BottomActionBar/BottomActionBar.stories.js +102 -0
- package/dist/components/Layout/Card/Card.d.ts +1 -1
- package/dist/components/Layout/Card/Card.d.ts.map +1 -1
- package/dist/components/Layout/Container/Container.d.ts +3 -0
- package/dist/components/Layout/Container/Container.d.ts.map +1 -0
- package/dist/components/Layout/Container/Container.js +1 -0
- package/dist/components/Layout/Container/Container.stories.d.ts +8 -0
- package/dist/components/Layout/Container/Container.stories.d.ts.map +1 -0
- package/dist/components/Layout/Container/Container.stories.js +52 -0
- package/dist/components/Layout/DataState/DataState.d.ts +34 -0
- package/dist/components/Layout/DataState/DataState.d.ts.map +1 -0
- package/dist/components/Layout/DataState/DataState.js +22 -0
- package/dist/components/Layout/DataState/DataState.stories.d.ts +11 -0
- package/dist/components/Layout/DataState/DataState.stories.d.ts.map +1 -0
- package/dist/components/Layout/DataState/DataState.stories.js +38 -0
- package/dist/components/Layout/Divider/Divider.d.ts.map +1 -1
- package/dist/components/Layout/Divider/Divider.js +4 -2
- package/dist/components/Layout/Group/Group.d.ts +1 -1
- package/dist/components/Layout/Group/Group.d.ts.map +1 -1
- package/dist/components/Layout/Loader/Loader.d.ts +1 -1
- package/dist/components/Layout/Loader/Loader.d.ts.map +1 -1
- package/dist/components/Layout/Loader/Loader.js +3 -2
- package/dist/components/Layout/Navbar/Navbar.d.ts +15 -0
- package/dist/components/Layout/Navbar/Navbar.d.ts.map +1 -0
- package/dist/components/Layout/Navbar/Navbar.js +20 -0
- package/dist/components/Layout/Navbar/Navbar.stories.d.ts +9 -0
- package/dist/components/Layout/Navbar/Navbar.stories.d.ts.map +1 -0
- package/dist/components/Layout/Navbar/Navbar.stories.js +98 -0
- package/dist/components/Layout/Page/Page.d.ts +13 -0
- package/dist/components/Layout/Page/Page.d.ts.map +1 -0
- package/dist/components/Layout/Page/Page.js +13 -0
- package/dist/components/Layout/Pagination/Pagination.d.ts +23 -0
- package/dist/components/Layout/Pagination/Pagination.d.ts.map +1 -0
- package/dist/components/Layout/Pagination/Pagination.js +53 -0
- package/dist/components/Layout/Pagination/Pagination.stories.d.ts +10 -0
- package/dist/components/Layout/Pagination/Pagination.stories.d.ts.map +1 -0
- package/dist/components/Layout/Pagination/Pagination.stories.js +76 -0
- package/dist/components/Layout/ScrollArea/ScrollArea.d.ts +3 -0
- package/dist/components/Layout/ScrollArea/ScrollArea.d.ts.map +1 -0
- package/dist/components/Layout/ScrollArea/ScrollArea.js +1 -0
- package/dist/components/Layout/ScrollArea/ScrollArea.stories.d.ts +8 -0
- package/dist/components/Layout/ScrollArea/ScrollArea.stories.d.ts.map +1 -0
- package/dist/components/Layout/ScrollArea/ScrollArea.stories.js +62 -0
- package/dist/components/Layout/Tabs/Tabs.d.ts +16 -5
- package/dist/components/Layout/Tabs/Tabs.d.ts.map +1 -1
- package/dist/components/Layout/Tabs/Tabs.js +53 -18
- package/dist/components/Layout/Tabs/Tabs.stories.d.ts.map +1 -1
- package/dist/components/Layout/Tabs/Tabs.stories.js +39 -39
- package/dist/components/Layout/VirtualGrid/VirtualGrid.d.ts +63 -0
- package/dist/components/Layout/VirtualGrid/VirtualGrid.d.ts.map +1 -0
- package/dist/components/Layout/VirtualGrid/VirtualGrid.js +159 -0
- package/dist/components/Misc/Burger/Burger.d.ts +6 -0
- package/dist/components/Misc/Burger/Burger.d.ts.map +1 -0
- package/dist/components/Misc/Burger/Burger.js +7 -0
- package/dist/components/Misc/Burger/Burger.stories.d.ts +10 -0
- package/dist/components/Misc/Burger/Burger.stories.d.ts.map +1 -0
- package/dist/components/Misc/Burger/Burger.stories.js +86 -0
- package/dist/components/Misc/Carousel/Carousel.d.ts +32 -0
- package/dist/components/Misc/Carousel/Carousel.d.ts.map +1 -0
- package/dist/components/Misc/Carousel/Carousel.js +16 -0
- package/dist/components/Misc/DragHandle/DragHandle.d.ts +19 -0
- package/dist/components/Misc/DragHandle/DragHandle.d.ts.map +1 -0
- package/dist/components/Misc/DragHandle/DragHandle.js +39 -0
- package/dist/components/Misc/DragHandle/DragHandle.stories.d.ts +9 -0
- package/dist/components/Misc/DragHandle/DragHandle.stories.d.ts.map +1 -0
- package/dist/components/Misc/DragHandle/DragHandle.stories.js +54 -0
- package/dist/components/Misc/FAB/FAB.d.ts +54 -0
- package/dist/components/Misc/FAB/FAB.d.ts.map +1 -0
- package/dist/components/Misc/FAB/FAB.js +53 -0
- package/dist/components/Misc/FAB/FAB.stories.d.ts +10 -0
- package/dist/components/Misc/FAB/FAB.stories.d.ts.map +1 -0
- package/dist/components/Misc/FAB/FAB.stories.js +100 -0
- package/dist/components/Misc/FloatingToolbar/FloatingToolbar.d.ts +50 -0
- package/dist/components/Misc/FloatingToolbar/FloatingToolbar.d.ts.map +1 -0
- package/dist/components/Misc/FloatingToolbar/FloatingToolbar.js +40 -0
- package/dist/components/Misc/FloatingToolbar/FloatingToolbar.stories.d.ts +9 -0
- package/dist/components/Misc/FloatingToolbar/FloatingToolbar.stories.d.ts.map +1 -0
- package/dist/components/Misc/FloatingToolbar/FloatingToolbar.stories.js +53 -0
- package/dist/components/Misc/HoverAction/HoverAction.d.ts +50 -0
- package/dist/components/Misc/HoverAction/HoverAction.d.ts.map +1 -0
- package/dist/components/Misc/HoverAction/HoverAction.js +61 -0
- package/dist/components/Misc/HoverAction/HoverAction.stories.d.ts +12 -0
- package/dist/components/Misc/HoverAction/HoverAction.stories.d.ts.map +1 -0
- package/dist/components/Misc/HoverAction/HoverAction.stories.js +96 -0
- package/dist/components/Misc/IconBadge/IconBadge.d.ts.map +1 -1
- package/dist/components/Misc/IconBadge/IconBadge.js +8 -6
- package/dist/components/Misc/Image/Image.d.ts +3 -0
- package/dist/components/Misc/Image/Image.d.ts.map +1 -0
- package/dist/components/Misc/Image/Image.js +1 -0
- package/dist/components/Misc/Image/Image.stories.d.ts +11 -0
- package/dist/components/Misc/Image/Image.stories.d.ts.map +1 -0
- package/dist/components/Misc/Image/Image.stories.js +63 -0
- package/dist/components/Misc/Kbd/Kbd.d.ts +6 -0
- package/dist/components/Misc/Kbd/Kbd.d.ts.map +1 -0
- package/dist/components/Misc/Kbd/Kbd.js +16 -0
- package/dist/components/Misc/Kbd/Kbd.stories.d.ts +9 -0
- package/dist/components/Misc/Kbd/Kbd.stories.d.ts.map +1 -0
- package/dist/components/Misc/Kbd/Kbd.stories.js +52 -0
- package/dist/components/Misc/Menu/Menu.d.ts +17 -0
- package/dist/components/Misc/Menu/Menu.d.ts.map +1 -0
- package/dist/components/Misc/Menu/Menu.js +52 -0
- package/dist/components/Misc/OverflowFade/OverflowFade.d.ts +42 -0
- package/dist/components/Misc/OverflowFade/OverflowFade.d.ts.map +1 -0
- package/dist/components/Misc/OverflowFade/OverflowFade.js +110 -0
- package/dist/components/Misc/OverflowFade/OverflowFade.stories.d.ts +11 -0
- package/dist/components/Misc/OverflowFade/OverflowFade.stories.d.ts.map +1 -0
- package/dist/components/Misc/OverflowFade/OverflowFade.stories.js +112 -0
- package/dist/components/Misc/Picker/Picker.d.ts +62 -0
- package/dist/components/Misc/Picker/Picker.d.ts.map +1 -0
- package/dist/components/Misc/Picker/Picker.js +111 -0
- package/dist/components/Misc/Picker/Picker.stories.d.ts +14 -0
- package/dist/components/Misc/Picker/Picker.stories.d.ts.map +1 -0
- package/dist/components/Misc/Picker/Picker.stories.js +154 -0
- package/dist/components/Misc/SelectableObject/SelectableObject.d.ts +38 -0
- package/dist/components/Misc/SelectableObject/SelectableObject.d.ts.map +1 -0
- package/dist/components/Misc/SelectableObject/SelectableObject.js +70 -0
- package/dist/components/Misc/SelectableObject/SelectableObject.stories.d.ts +11 -0
- package/dist/components/Misc/SelectableObject/SelectableObject.stories.d.ts.map +1 -0
- package/dist/components/Misc/SelectableObject/SelectableObject.stories.js +84 -0
- package/dist/components/Misc/SelectionToolbar/SelectionToolbar.d.ts +26 -0
- package/dist/components/Misc/SelectionToolbar/SelectionToolbar.d.ts.map +1 -0
- package/dist/components/Misc/SelectionToolbar/SelectionToolbar.js +41 -0
- package/dist/components/Misc/SelectionToolbar/SelectionToolbar.stories.d.ts +10 -0
- package/dist/components/Misc/SelectionToolbar/SelectionToolbar.stories.d.ts.map +1 -0
- package/dist/components/Misc/SelectionToolbar/SelectionToolbar.stories.js +48 -0
- package/dist/components/Misc/Stepper/Step.stories.d.ts +118 -118
- package/dist/components/Misc/Stepper/variants.d.ts +1 -1
- package/dist/components/Misc/Timeline/Timeline.d.ts +18 -0
- package/dist/components/Misc/Timeline/Timeline.d.ts.map +1 -0
- package/dist/components/Misc/Timeline/Timeline.js +38 -0
- package/dist/components/Misc/Timeline/Timeline.stories.d.ts +8 -0
- package/dist/components/Misc/Timeline/Timeline.stories.d.ts.map +1 -0
- package/dist/components/Misc/Timeline/Timeline.stories.js +54 -0
- package/dist/components/Typography/InlineEditableText/InlineEditableText.d.ts +35 -0
- package/dist/components/Typography/InlineEditableText/InlineEditableText.d.ts.map +1 -0
- package/dist/components/Typography/InlineEditableText/InlineEditableText.js +112 -0
- package/dist/components/Typography/InlineEditableText/InlineEditableText.stories.d.ts +11 -0
- package/dist/components/Typography/InlineEditableText/InlineEditableText.stories.d.ts.map +1 -0
- package/dist/components/Typography/InlineEditableText/InlineEditableText.stories.js +48 -0
- package/dist/components/index.d.ts +149 -66
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +110 -67
- package/dist/constants/colors.d.ts +117 -91
- package/dist/constants/colors.d.ts.map +1 -1
- package/dist/constants/colors.js +56 -43
- package/dist/constants/font.d.ts +4 -4
- package/dist/constants/font.js +2 -2
- package/dist/hooks/index.d.ts +9 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +7 -1
- package/dist/hooks/useConfirmationModal.d.ts.map +1 -1
- package/dist/hooks/useConfirmationModal.js +20 -1
- package/dist/hooks/useDisclosure.d.ts +11 -0
- package/dist/hooks/useDisclosure.d.ts.map +1 -0
- package/dist/hooks/useDisclosure.js +10 -0
- package/dist/hooks/useHeadroom.d.ts +18 -0
- package/dist/hooks/useHeadroom.d.ts.map +1 -0
- package/dist/hooks/useHeadroom.js +17 -0
- package/dist/hooks/useInfoModal.d.ts.map +1 -1
- package/dist/hooks/useInfoModal.js +13 -1
- package/dist/hooks/useMediaQuery.d.ts +1 -0
- package/dist/hooks/useMediaQuery.d.ts.map +1 -1
- package/dist/hooks/useMediaQuery.js +1 -0
- package/dist/hooks/useNotifications.d.ts +39 -7
- package/dist/hooks/useNotifications.d.ts.map +1 -1
- package/dist/hooks/useNotifications.js +108 -5
- package/dist/hooks/usePagination.d.ts +11 -0
- package/dist/hooks/usePagination.d.ts.map +1 -0
- package/dist/hooks/usePagination.js +2 -0
- package/dist/hooks/useScrollLock.d.ts +21 -0
- package/dist/hooks/useScrollLock.d.ts.map +1 -0
- package/dist/hooks/useScrollLock.js +20 -0
- package/dist/index.d.ts +5 -5
- package/dist/index.js +5 -5
- package/dist/styles/iosInputZoomFix.d.ts +31 -0
- package/dist/styles/iosInputZoomFix.d.ts.map +1 -0
- package/dist/styles/iosInputZoomFix.js +135 -0
- package/dist/utils/bytes.d.ts +10 -0
- package/dist/utils/bytes.d.ts.map +1 -0
- package/dist/utils/bytes.js +17 -0
- package/dist/utils/datetime.d.ts +18 -0
- package/dist/utils/datetime.d.ts.map +1 -0
- package/dist/utils/datetime.js +42 -0
- package/dist/utils/duration.d.ts +17 -0
- package/dist/utils/duration.d.ts.map +1 -0
- package/dist/utils/duration.js +30 -0
- package/dist/utils/index.d.ts +8 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +7 -2
- package/dist/utils/sort.d.ts +44 -0
- package/dist/utils/sort.d.ts.map +1 -0
- package/dist/utils/sort.js +53 -0
- package/dist/utils/string.d.ts +22 -0
- package/dist/utils/string.d.ts.map +1 -0
- package/dist/utils/string.js +25 -0
- package/package.json +26 -2
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Drawer as MantineDrawer, } from '@mantine/core';
|
|
3
|
+
import { IconX } from '@tabler/icons-react';
|
|
4
|
+
import { neutral } from '../../../constants/colors';
|
|
5
|
+
import { spacing } from '../../../constants/spacing';
|
|
6
|
+
import { IconButton } from '../../Inputs/Buttons/IconButton/IconButton';
|
|
7
|
+
import { Group } from '../../Layout/Group/Group';
|
|
8
|
+
import { Title } from '../../Typography/Title/Title';
|
|
9
|
+
/**
|
|
10
|
+
* Side drawer built on Mantine v6 with pinned header + footer slots.
|
|
11
|
+
* Right-anchored by default — use `MobileDrawer` for bottom-anchored mobile
|
|
12
|
+
* sheets, or `ResponsiveDrawer` for automatic right/bottom switching.
|
|
13
|
+
*/
|
|
14
|
+
export const Drawer = ({ children, title, subtitle, footer, header, showClose = true, position = 'right', size = 'md', onClose, styles, ...props }) => {
|
|
15
|
+
const resolvedHeader = header !== null && header !== void 0 ? header : (title ? (_jsxs(Group, { position: 'apart', style: {
|
|
16
|
+
borderBottom: `1px solid ${neutral[50]}`,
|
|
17
|
+
padding: spacing.md,
|
|
18
|
+
}, children: [_jsxs("div", { children: [_jsx(Title, { variant: 'cardHeader', children: title }), subtitle ? _jsx(Title, { variant: 'cardSubheader', children: subtitle }) : null] }), showClose ? (_jsx(IconButton, { onClick: onClose, size: 'sm', variant: 'secondary', children: _jsx(IconX, {}) })) : null] })) : null);
|
|
19
|
+
return (_jsxs(MantineDrawer, { onClose: onClose, overlayProps: { blur: 2, opacity: 0.3 }, position: position, size: size, styles: {
|
|
20
|
+
body: {
|
|
21
|
+
display: 'flex',
|
|
22
|
+
flexDirection: 'column',
|
|
23
|
+
height: '100%',
|
|
24
|
+
padding: 0,
|
|
25
|
+
},
|
|
26
|
+
content: {
|
|
27
|
+
display: 'flex',
|
|
28
|
+
flexDirection: 'column',
|
|
29
|
+
},
|
|
30
|
+
header: {
|
|
31
|
+
display: 'none',
|
|
32
|
+
},
|
|
33
|
+
...styles,
|
|
34
|
+
}, withCloseButton: false, ...props, children: [resolvedHeader, _jsx("div", { style: {
|
|
35
|
+
flex: '1 1 auto',
|
|
36
|
+
minHeight: 0,
|
|
37
|
+
overflowY: 'auto',
|
|
38
|
+
padding: spacing.md,
|
|
39
|
+
}, children: children }), footer ? (_jsx("div", { style: {
|
|
40
|
+
borderTop: `1px solid ${neutral[50]}`,
|
|
41
|
+
flex: '0 0 auto',
|
|
42
|
+
padding: spacing.md,
|
|
43
|
+
}, children: footer })) : null] }));
|
|
44
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { Drawer } from './Drawer';
|
|
3
|
+
declare const meta: Meta<typeof Drawer>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof meta>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const WithFooter: Story;
|
|
8
|
+
export declare const SelectionFooter: Story;
|
|
9
|
+
export declare const CustomHeader: Story;
|
|
10
|
+
//# sourceMappingURL=Drawer.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drawer.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Info/Drawer/Drawer.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,CAY7B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAiBrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAmCxB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAyB7B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAoB1B,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useDisclosure } from '../../../hooks/useDisclosure';
|
|
4
|
+
import { Button } from '../../Inputs/Buttons/Button/Button';
|
|
5
|
+
import { TextInput } from '../../Inputs/TextInputs/TextInput/TextInput';
|
|
6
|
+
import { Group } from '../../Layout/Group/Group';
|
|
7
|
+
import { Stack } from '../../Layout/Stack/Stack';
|
|
8
|
+
import { Text } from '../../Typography/Text/Text';
|
|
9
|
+
import { Drawer } from './Drawer';
|
|
10
|
+
const meta = {
|
|
11
|
+
component: Drawer,
|
|
12
|
+
parameters: {
|
|
13
|
+
docs: {
|
|
14
|
+
description: {
|
|
15
|
+
component: 'Side drawer built on Mantine v6, with pinned header + footer slots and an independently-scrolling body. Use for progressive-disclosure forms, detail panels, and selection-based action surfaces.',
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
layout: 'fullscreen',
|
|
19
|
+
},
|
|
20
|
+
title: 'Components/Info/Drawer',
|
|
21
|
+
};
|
|
22
|
+
export default meta;
|
|
23
|
+
export const Default = {
|
|
24
|
+
render: () => {
|
|
25
|
+
const [opened, { open, close }] = useDisclosure(false);
|
|
26
|
+
return (_jsxs(_Fragment, { children: [_jsx(Button, { onClick: open, children: "Open drawer" }), _jsx(Drawer, { onClose: close, opened: opened, title: 'Slide details', children: _jsxs(Stack, { children: [_jsx(Text, { children: "Drawer body. Scrolls independently of header + footer." }), _jsx(Text, { variant: 'subtle', children: "Fill with any content \u2014 forms, lists, nested cards." })] }) })] }));
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
export const WithFooter = {
|
|
30
|
+
render: () => {
|
|
31
|
+
const [opened, { open, close }] = useDisclosure(false);
|
|
32
|
+
return (_jsxs(_Fragment, { children: [_jsx(Button, { onClick: open, children: "Open drawer with footer" }), _jsx(Drawer, { footer: _jsxs(Group, { position: 'right', children: [_jsx(Button, { onClick: close, variant: 'cancel', children: "Cancel" }), _jsx(Button, { onClick: close, children: "Save" })] }), onClose: close, opened: opened, subtitle: 'Ad \u00B7 30 seconds', title: 'Edit slide', children: _jsx(Stack, { children: Array.from({ length: 20 }, (_, i) => `field-${i + 1}`).map((key, i) => (_jsx(TextInput, { label: `Field ${i + 1}`, placeholder: 'Long body content...' }, key))) }) })] }));
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
export const SelectionFooter = {
|
|
36
|
+
render: () => {
|
|
37
|
+
const [opened, { open, close }] = useDisclosure(false);
|
|
38
|
+
const [count, setCount] = useState(2);
|
|
39
|
+
return (_jsxs(_Fragment, { children: [_jsx(Button, { onClick: open, children: "Open drawer with selection footer" }), _jsx(Drawer, { footer: _jsxs(Group, { position: 'apart', children: [_jsxs(Text, { variant: 'label', children: [count, " selected"] }), _jsx(Button, { onClick: () => setCount(0), children: "Append to playlist" })] }), onClose: close, opened: opened, title: 'Library', children: _jsx(Stack, { children: _jsx(Text, { children: "Pinned footer mirrors the selection-toolbar pattern." }) }) })] }));
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
export const CustomHeader = {
|
|
43
|
+
render: () => {
|
|
44
|
+
const [opened, { open, close }] = useDisclosure(false);
|
|
45
|
+
return (_jsxs(_Fragment, { children: [_jsx(Button, { onClick: open, children: "Open with custom header" }), _jsx(Drawer, { header: _jsx("div", { style: { background: '#0081CE', color: 'white', padding: 12 }, children: "Custom header slot \u2014 you own all the chrome." }), onClose: close, opened: opened, children: _jsx(Text, { children: "Consumer-driven header composition." }) })] }));
|
|
46
|
+
},
|
|
47
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HoverCardProps as MantineHoverCardProps } from '@mantine/core';
|
|
2
|
+
import { CSSObject } from '@mantine/styles';
|
|
3
|
+
export interface HoverCardProps extends MantineHoverCardProps {
|
|
4
|
+
styles?: {
|
|
5
|
+
dropdown?: CSSObject;
|
|
6
|
+
arrow?: CSSObject;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
declare const HoverCard: (({ openDelay, closeDelay, position, withArrow, styles, children, ...props }: HoverCardProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
10
|
+
Target: import("react").ForwardRefExoticComponent<import("@mantine/core").HoverCardTargetProps & import("react").RefAttributes<HTMLElement>>;
|
|
11
|
+
Dropdown: typeof import("@mantine/core/lib/HoverCard/HoverCardDropdown/HoverCardDropdown").HoverCardDropdown;
|
|
12
|
+
MenuItem: ({ children, className, disabled, leftSection, onClick, rightSection, }: import("./HoverCardMenuItem").HoverCardMenuItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
};
|
|
14
|
+
export { HoverCard };
|
|
15
|
+
export type { HoverCardMenuItemProps } from './HoverCardMenuItem';
|
|
16
|
+
//# sourceMappingURL=HoverCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HoverCard.d.ts","sourceRoot":"","sources":["../../../../src/components/Info/HoverCard/HoverCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiC,cAAc,IAAI,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,MAAM,WAAW,cAAe,SAAQ,qBAAqB;IAC3D,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;CACtD;AAuCD,QAAA,MAAM,SAAS,gFA7BZ,cAAc;;;;CAiCf,CAAC;AAEH,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { HoverCard as MantineHoverCard } from '@mantine/core';
|
|
3
|
+
import { neutral } from '../../../constants/colors';
|
|
4
|
+
import { fontBase } from '../../../constants/font';
|
|
5
|
+
import { spacing } from '../../../constants/spacing';
|
|
6
|
+
import { HoverCardMenuItem } from './HoverCardMenuItem';
|
|
7
|
+
const HoverCardRoot = ({ openDelay = 80, closeDelay = 120, position = 'bottom', withArrow = false, styles, children, ...props }) => {
|
|
8
|
+
const mergedStyles = {
|
|
9
|
+
dropdown: {
|
|
10
|
+
borderRadius: 8,
|
|
11
|
+
border: `1px solid ${neutral[50]}`,
|
|
12
|
+
boxShadow: '0 8px 24px rgba(15, 23, 42, 0.12)',
|
|
13
|
+
padding: spacing.md,
|
|
14
|
+
...fontBase,
|
|
15
|
+
...styles === null || styles === void 0 ? void 0 : styles.dropdown,
|
|
16
|
+
},
|
|
17
|
+
arrow: { ...styles === null || styles === void 0 ? void 0 : styles.arrow },
|
|
18
|
+
};
|
|
19
|
+
return (_jsx(MantineHoverCard, { closeDelay: closeDelay, openDelay: openDelay, position: position, styles: mergedStyles, transitionProps: { duration: 180, transition: 'pop' }, withArrow: withArrow, withinPortal: true, ...props, children: children }));
|
|
20
|
+
};
|
|
21
|
+
const HoverCard = Object.assign(HoverCardRoot, {
|
|
22
|
+
Target: MantineHoverCard.Target,
|
|
23
|
+
Dropdown: MantineHoverCard.Dropdown,
|
|
24
|
+
MenuItem: HoverCardMenuItem,
|
|
25
|
+
});
|
|
26
|
+
export { HoverCard };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { HoverCard } from './HoverCard';
|
|
3
|
+
declare const meta: Meta<typeof HoverCard>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof HoverCard>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const Position: Story;
|
|
8
|
+
export declare const WithArrow: Story;
|
|
9
|
+
export declare const RichContent: Story;
|
|
10
|
+
export declare const InsideStickyContainer: Story;
|
|
11
|
+
//# sourceMappingURL=HoverCard.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HoverCard.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Info/HoverCard/HoverCard.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAUxC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CAmChC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC;AAExC,eAAO,MAAM,OAAO,EAAE,KAiBrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAetB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAWvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAkCzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KA6CnC,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { IconExternalLink, IconUser } from '@tabler/icons-react';
|
|
3
|
+
import { Avatar } from '@mantine/core';
|
|
4
|
+
import { HoverCard } from './HoverCard';
|
|
5
|
+
import { Button } from '../../Inputs/Buttons/Button/Button';
|
|
6
|
+
import { Stack } from '../../Layout/Stack/Stack';
|
|
7
|
+
import { Group } from '../../Layout/Group/Group';
|
|
8
|
+
import { Text } from '../../Typography/Text/Text';
|
|
9
|
+
import { Title } from '../../Typography/Title/Title';
|
|
10
|
+
import { Divider } from '../../Layout/Divider/Divider';
|
|
11
|
+
import { spacing } from '../../../constants/spacing';
|
|
12
|
+
import { neutral } from '../../../constants/colors';
|
|
13
|
+
const meta = {
|
|
14
|
+
title: 'Components/Info/HoverCard',
|
|
15
|
+
component: HoverCard,
|
|
16
|
+
parameters: {
|
|
17
|
+
layout: 'centered',
|
|
18
|
+
docs: {
|
|
19
|
+
description: {
|
|
20
|
+
component: 'A floating hover-card built on Mantine HoverCard. Renders into a portal (document.body) to escape sticky/transform stacking contexts. Use HoverCard.Target and HoverCard.Dropdown as compound children.',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
argTypes: {
|
|
25
|
+
openDelay: {
|
|
26
|
+
control: { type: 'number' },
|
|
27
|
+
description: 'Delay in ms before opening',
|
|
28
|
+
table: { defaultValue: { summary: '80' } },
|
|
29
|
+
},
|
|
30
|
+
closeDelay: {
|
|
31
|
+
control: { type: 'number' },
|
|
32
|
+
description: 'Delay in ms before closing (keeps card open while moving cursor onto it)',
|
|
33
|
+
table: { defaultValue: { summary: '120' } },
|
|
34
|
+
},
|
|
35
|
+
position: {
|
|
36
|
+
control: { type: 'select' },
|
|
37
|
+
options: ['top', 'bottom', 'left', 'right', 'top-start', 'top-end', 'bottom-start', 'bottom-end'],
|
|
38
|
+
description: 'Preferred placement relative to target',
|
|
39
|
+
table: { defaultValue: { summary: "'bottom'" } },
|
|
40
|
+
},
|
|
41
|
+
withArrow: {
|
|
42
|
+
control: { type: 'boolean' },
|
|
43
|
+
description: 'Show arrow pointing to target',
|
|
44
|
+
table: { defaultValue: { summary: 'false' } },
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
export default meta;
|
|
49
|
+
export const Default = {
|
|
50
|
+
args: {
|
|
51
|
+
openDelay: 80,
|
|
52
|
+
closeDelay: 120,
|
|
53
|
+
position: 'bottom',
|
|
54
|
+
withArrow: false,
|
|
55
|
+
},
|
|
56
|
+
render: (args) => (_jsxs(HoverCard, { ...args, children: [_jsx(HoverCard.Target, { children: _jsx(Button, { variant: 'secondary', children: "Hover me" }) }), _jsx(HoverCard.Dropdown, { children: _jsx(Text, { variant: 'body', children: "This is a hover card. Move the cursor here \u2014 it stays open." }) })] })),
|
|
57
|
+
};
|
|
58
|
+
export const Position = {
|
|
59
|
+
render: () => (_jsx(Group, { gap: spacing.xl, children: ['top', 'bottom-start', 'right-end'].map((pos) => (_jsxs(HoverCard, { position: pos, withArrow: true, children: [_jsx(HoverCard.Target, { children: _jsx(Button, { variant: 'secondary', children: pos }) }), _jsx(HoverCard.Dropdown, { children: _jsxs(Text, { variant: 'label', children: ["position=\"", pos, "\""] }) })] }, pos))) })),
|
|
60
|
+
};
|
|
61
|
+
export const WithArrow = {
|
|
62
|
+
render: () => (_jsxs(HoverCard, { withArrow: true, position: 'top', children: [_jsx(HoverCard.Target, { children: _jsx(Button, { variant: 'secondary', children: "With arrow" }) }), _jsx(HoverCard.Dropdown, { children: _jsx(Text, { variant: 'body', children: "Arrow points at the trigger." }) })] })),
|
|
63
|
+
};
|
|
64
|
+
export const RichContent = {
|
|
65
|
+
render: () => (_jsxs(HoverCard, { width: 280, position: 'bottom-start', children: [_jsx(HoverCard.Target, { children: _jsx(Avatar, { radius: 'xl', size: 'md', color: 'blue', children: _jsx(IconUser, { size: 18 }) }) }), _jsx(HoverCard.Dropdown, { children: _jsxs(Stack, { gap: spacing.sm, children: [_jsxs(Group, { gap: spacing.sm, children: [_jsx(Avatar, { radius: 'xl', size: 'sm', color: 'blue', children: _jsx(IconUser, { size: 14 }) }), _jsxs(Stack, { gap: spacing.xxs, children: [_jsx(Title, { variant: 'cardHeader', children: "Jane Smith" }), _jsx(Text, { variant: 'label', style: { color: neutral[200] }, children: "jane@taiv.com" })] })] }), _jsx(Divider, {}), _jsx(Stack, { gap: spacing.xs, children: ['Profile', 'Settings', 'Sign out'].map((label) => (_jsxs(Group, { gap: spacing.xs, style: { cursor: 'pointer' }, children: [_jsx(IconExternalLink, { size: 14, color: neutral[200] }), _jsx(Text, { variant: 'body', children: label })] }, label))) })] }) })] })),
|
|
66
|
+
};
|
|
67
|
+
export const InsideStickyContainer = {
|
|
68
|
+
parameters: {
|
|
69
|
+
docs: {
|
|
70
|
+
description: {
|
|
71
|
+
story: 'Regression check: dropdown must render above the sticky header because withinPortal=true escapes the stacking context.',
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
render: () => (_jsxs("div", { style: { height: 300, overflowY: 'auto', border: `1px solid ${neutral[50]}`, borderRadius: 8 }, children: [_jsxs("div", { style: {
|
|
76
|
+
position: 'sticky',
|
|
77
|
+
top: 0,
|
|
78
|
+
background: 'white',
|
|
79
|
+
padding: `${spacing.sm} ${spacing.lg}`,
|
|
80
|
+
borderBottom: `1px solid ${neutral[50]}`,
|
|
81
|
+
zIndex: 10,
|
|
82
|
+
display: 'flex',
|
|
83
|
+
alignItems: 'center',
|
|
84
|
+
gap: spacing.md,
|
|
85
|
+
}, children: [_jsx(Text, { variant: 'label', children: "Sticky header" }), _jsxs(HoverCard, { position: 'bottom', children: [_jsx(HoverCard.Target, { children: _jsx(Button, { variant: 'secondary', size: 'sm', children: "Hover (portal test)" }) }), _jsx(HoverCard.Dropdown, { children: _jsx(Text, { variant: 'body', children: "Rendered in document.body \u2014 not clipped by sticky context." }) })] })] }), _jsx(Stack, { gap: spacing.md, p: spacing.lg, children: Array.from({ length: 10 }, (_, i) => (_jsxs(Text, { variant: 'subtle', children: ["Scroll content row ", i + 1] }, i))) })] })),
|
|
86
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface HoverCardMenuItemProps {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
leftSection?: React.ReactNode;
|
|
7
|
+
onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
8
|
+
rightSection?: React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
declare const HoverCardMenuItem: ({ children, className, disabled, leftSection, onClick, rightSection, }: HoverCardMenuItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export { HoverCardMenuItem };
|
|
12
|
+
//# sourceMappingURL=HoverCardMenuItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HoverCardMenuItem.d.ts","sourceRoot":"","sources":["../../../../src/components/Info/HoverCard/HoverCardMenuItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC/D,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC;AAED,QAAA,MAAM,iBAAiB,GAAI,wEAOxB,sBAAsB,4CAgCxB,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { UnstyledButton } from '@mantine/core';
|
|
3
|
+
import { neutral } from '../../../constants/colors';
|
|
4
|
+
import { fontBase, fontSize, fontWeight } from '../../../constants/font';
|
|
5
|
+
import { spacing } from '../../../constants/spacing';
|
|
6
|
+
import { Text } from '../../Typography/Text/Text';
|
|
7
|
+
const HoverCardMenuItem = ({ children, className, disabled, leftSection, onClick, rightSection, }) => (_jsxs(UnstyledButton, { className: className, disabled: disabled, onClick: onClick, sx: {
|
|
8
|
+
...fontBase,
|
|
9
|
+
...fontSize.sm,
|
|
10
|
+
alignItems: 'center',
|
|
11
|
+
borderRadius: '6px',
|
|
12
|
+
color: neutral[300],
|
|
13
|
+
display: 'flex',
|
|
14
|
+
fontWeight: fontWeight.medium,
|
|
15
|
+
gap: spacing.sm,
|
|
16
|
+
justifyContent: 'space-between',
|
|
17
|
+
padding: `${spacing.sm} ${spacing.md}`,
|
|
18
|
+
width: '100%',
|
|
19
|
+
'&:hover:not(:disabled)': { backgroundColor: neutral[25] },
|
|
20
|
+
'&:disabled': { cursor: 'not-allowed', opacity: 0.6 },
|
|
21
|
+
}, children: [leftSection, _jsx(Text, { color: neutral[300], styles: { flex: 1, minWidth: 0, textAlign: 'left' }, truncate: true, variant: 'label', children: children }), rightSection] }));
|
|
22
|
+
export { HoverCardMenuItem };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Indicator.d.ts","sourceRoot":"","sources":["../../../../src/components/Info/Indicator/Indicator.tsx"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Indicator } from '@mantine/core';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { Indicator } from './Indicator';
|
|
3
|
+
declare const meta: Meta<typeof Indicator>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof meta>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const WithCount: Story;
|
|
8
|
+
export declare const OnIcon: Story;
|
|
9
|
+
export declare const Processing: Story;
|
|
10
|
+
export declare const Positions: Story;
|
|
11
|
+
//# sourceMappingURL=Indicator.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Indicator.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Info/Indicator/Indicator.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAI5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,SAAS,CAkEhC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAgBrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAgBvB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAWpB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAgBxB,CAAC;AAYF,eAAO,MAAM,SAAS,EAAE,KAyBvB,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { IconBell } from '@tabler/icons-react';
|
|
3
|
+
import { Group } from '../../Layout/Group/Group';
|
|
4
|
+
import { Avatar } from '../Avatar/Avatar';
|
|
5
|
+
import { Indicator } from './Indicator';
|
|
6
|
+
const meta = {
|
|
7
|
+
argTypes: {
|
|
8
|
+
children: {
|
|
9
|
+
control: false,
|
|
10
|
+
description: 'Element the indicator attaches to (e.g. avatar, icon button)',
|
|
11
|
+
table: { type: { summary: 'ReactNode' } },
|
|
12
|
+
},
|
|
13
|
+
color: {
|
|
14
|
+
control: { type: 'text' },
|
|
15
|
+
description: 'Theme color key for the indicator',
|
|
16
|
+
table: { type: { summary: 'MantineColor' } },
|
|
17
|
+
},
|
|
18
|
+
disabled: {
|
|
19
|
+
control: { type: 'boolean' },
|
|
20
|
+
description: 'Renders only the child when true',
|
|
21
|
+
table: { type: { summary: 'boolean' } },
|
|
22
|
+
},
|
|
23
|
+
inline: {
|
|
24
|
+
control: { type: 'boolean' },
|
|
25
|
+
description: 'Use inline layout for the wrapper',
|
|
26
|
+
table: { type: { summary: 'boolean' } },
|
|
27
|
+
},
|
|
28
|
+
label: {
|
|
29
|
+
control: { type: 'text' },
|
|
30
|
+
description: 'Content inside the badge (number, dot when empty, or custom node)',
|
|
31
|
+
table: { type: { summary: 'ReactNode' } },
|
|
32
|
+
},
|
|
33
|
+
position: {
|
|
34
|
+
control: { type: 'select' },
|
|
35
|
+
description: 'Placement relative to the child',
|
|
36
|
+
options: [
|
|
37
|
+
'top-start',
|
|
38
|
+
'top-center',
|
|
39
|
+
'top-end',
|
|
40
|
+
'middle-start',
|
|
41
|
+
'middle-center',
|
|
42
|
+
'middle-end',
|
|
43
|
+
'bottom-start',
|
|
44
|
+
'bottom-center',
|
|
45
|
+
'bottom-end',
|
|
46
|
+
],
|
|
47
|
+
table: { type: { summary: 'IndicatorPosition' } },
|
|
48
|
+
},
|
|
49
|
+
processing: {
|
|
50
|
+
control: { type: 'boolean' },
|
|
51
|
+
description: 'Pulses the indicator',
|
|
52
|
+
table: { type: { summary: 'boolean' } },
|
|
53
|
+
},
|
|
54
|
+
size: {
|
|
55
|
+
control: { type: 'number' },
|
|
56
|
+
description: 'Indicator diameter',
|
|
57
|
+
table: { type: { summary: 'number | string' } },
|
|
58
|
+
},
|
|
59
|
+
withBorder: {
|
|
60
|
+
control: { type: 'boolean' },
|
|
61
|
+
description: 'White ring around the indicator',
|
|
62
|
+
table: { type: { summary: 'boolean' } },
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
component: Indicator,
|
|
66
|
+
parameters: {
|
|
67
|
+
layout: 'centered',
|
|
68
|
+
},
|
|
69
|
+
title: 'Components/Info/Indicator',
|
|
70
|
+
};
|
|
71
|
+
export default meta;
|
|
72
|
+
export const Default = {
|
|
73
|
+
args: {
|
|
74
|
+
children: (_jsx(Avatar, { radius: 'xl', size: 'lg', src: 'https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?w=200&h=200&fit=crop' })),
|
|
75
|
+
color: 'red',
|
|
76
|
+
inline: true,
|
|
77
|
+
label: undefined,
|
|
78
|
+
position: 'top-end',
|
|
79
|
+
size: 10,
|
|
80
|
+
withBorder: true,
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
export const WithCount = {
|
|
84
|
+
args: {
|
|
85
|
+
children: (_jsx(Avatar, { radius: 'xl', size: 'lg', src: 'https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?w=200&h=200&fit=crop' })),
|
|
86
|
+
color: 'blue',
|
|
87
|
+
inline: true,
|
|
88
|
+
label: '12',
|
|
89
|
+
position: 'top-end',
|
|
90
|
+
size: 20,
|
|
91
|
+
withBorder: true,
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
export const OnIcon = {
|
|
95
|
+
parameters: {
|
|
96
|
+
docs: { source: { code: false } },
|
|
97
|
+
},
|
|
98
|
+
render: () => (_jsx(Indicator, { color: 'red', inline: true, position: 'top-end', size: 10, withBorder: true, children: _jsx(Avatar, { color: 'gray', radius: 'md', size: 'lg', variant: 'light', children: _jsx(IconBell, { size: 22 }) }) })),
|
|
99
|
+
};
|
|
100
|
+
export const Processing = {
|
|
101
|
+
args: {
|
|
102
|
+
children: (_jsx(Avatar, { radius: 'xl', size: 'lg', src: 'https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?w=200&h=200&fit=crop' })),
|
|
103
|
+
color: 'green',
|
|
104
|
+
inline: true,
|
|
105
|
+
position: 'top-end',
|
|
106
|
+
processing: true,
|
|
107
|
+
size: 12,
|
|
108
|
+
withBorder: true,
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
const positionLabels = {
|
|
112
|
+
'bottom-end': 'BE',
|
|
113
|
+
'bottom-start': 'BS',
|
|
114
|
+
'top-end': 'TE',
|
|
115
|
+
'top-start': 'TS',
|
|
116
|
+
};
|
|
117
|
+
export const Positions = {
|
|
118
|
+
parameters: {
|
|
119
|
+
docs: { source: { code: false } },
|
|
120
|
+
layout: 'padded',
|
|
121
|
+
},
|
|
122
|
+
render: () => (_jsx(Group, { spacing: 'xl', children: Object.keys(positionLabels).map((position) => (_jsx(Indicator, { color: 'red', inline: true, position: position, size: 10, withBorder: true, children: _jsx(Avatar, { color: 'gray', radius: 'xl', size: 'md', variant: 'outline', children: positionLabels[position] }) }, position))) })),
|
|
123
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { CardProps } from '../../Layout/Card/Card';
|
|
1
|
+
import type React from 'react';
|
|
3
2
|
import { colors } from '../../../constants/colors';
|
|
3
|
+
import { type CardProps } from '../../Layout/Card/Card';
|
|
4
4
|
export interface InfoCardProps extends Omit<CardProps, 'children'> {
|
|
5
5
|
children: React.ReactNode;
|
|
6
6
|
variant?: keyof typeof colors;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfoCard.d.ts","sourceRoot":"","sources":["../../../../src/components/Info/InfoCard/InfoCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"InfoCard.d.ts","sourceRoot":"","sources":["../../../../src/components/Info/InfoCard/InfoCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAG9D,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IAChE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,OAAO,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,QAAQ,GAAI,qCAItB,aAAa,4CAwBf,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Card } from '../../Layout/Card/Card';
|
|
3
|
-
import { Center } from '../../Layout/Center/Center';
|
|
4
2
|
import { colors } from '../../../constants/colors';
|
|
5
3
|
import { spacing } from '../../../constants/spacing';
|
|
4
|
+
import { Card } from '../../Layout/Card/Card';
|
|
5
|
+
import { Center } from '../../Layout/Center/Center';
|
|
6
6
|
export const InfoCard = ({ children, variant = 'primary', ...cardProps }) => {
|
|
7
7
|
const colorPalette = colors[variant];
|
|
8
8
|
const style = {
|
|
9
|
-
border: `1px solid ${colorPalette[200]}`,
|
|
10
9
|
backgroundColor: colorPalette[25],
|
|
10
|
+
border: `1px solid ${colorPalette[200]}`,
|
|
11
11
|
color: colorPalette[200] + ' !important',
|
|
12
|
-
padding:
|
|
12
|
+
padding: spacing.xl,
|
|
13
13
|
};
|
|
14
|
-
return (_jsx(Card, { shadow:
|
|
14
|
+
return (_jsx(Card, { shadow: 'lg', style: style, sx: {
|
|
15
15
|
'& *': {
|
|
16
16
|
color: `${colorPalette[200]} !important`,
|
|
17
17
|
},
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type DrawerProps as MantineDrawerProps } from '@mantine/core';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
export interface MobileDrawerProps extends Omit<MantineDrawerProps, 'position' | 'title' | 'children'> {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
title?: React.ReactNode;
|
|
6
|
+
subtitle?: React.ReactNode;
|
|
7
|
+
footer?: React.ReactNode;
|
|
8
|
+
header?: React.ReactNode;
|
|
9
|
+
/** Show the grab-handle at the top edge. Default `true`. */
|
|
10
|
+
showGrabHandle?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Max height as a viewport percentage (0–100). Default `75`. The sheet
|
|
13
|
+
* never exceeds this — the body scrolls once content overflows.
|
|
14
|
+
*/
|
|
15
|
+
maxHeightVh?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Pixel offset from the viewport bottom. Use when a fixed bottom bar
|
|
18
|
+
* (e.g. `BottomActionBar`) is rendered beneath the drawer — the sheet
|
|
19
|
+
* stacks on top of it instead of overlapping. Default `0`.
|
|
20
|
+
*/
|
|
21
|
+
bottomOffset?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Bottom-anchored mobile sheet with grab-handle, rounded top corners, and
|
|
25
|
+
* flex column layout (header → scrollable body → pinned footer).
|
|
26
|
+
* Pair with `Drawer` (right-anchored) or use `ResponsiveDrawer` to pick
|
|
27
|
+
* between them automatically.
|
|
28
|
+
*/
|
|
29
|
+
export declare const MobileDrawer: ({ children, title, subtitle, footer, header, showGrabHandle, maxHeightVh, bottomOffset, styles, ...props }: MobileDrawerProps) => import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
//# sourceMappingURL=MobileDrawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobileDrawer.d.ts","sourceRoot":"","sources":["../../../../src/components/Info/MobileDrawer/MobileDrawer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,IAAI,kBAAkB,EACvC,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;IACnE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,4GAW1B,iBAAiB,4CAgFnB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Drawer as MantineDrawer, } from '@mantine/core';
|
|
3
|
+
import { neutral } from '../../../constants/colors';
|
|
4
|
+
import { spacing } from '../../../constants/spacing';
|
|
5
|
+
import { Title } from '../../Typography/Title/Title';
|
|
6
|
+
/**
|
|
7
|
+
* Bottom-anchored mobile sheet with grab-handle, rounded top corners, and
|
|
8
|
+
* flex column layout (header → scrollable body → pinned footer).
|
|
9
|
+
* Pair with `Drawer` (right-anchored) or use `ResponsiveDrawer` to pick
|
|
10
|
+
* between them automatically.
|
|
11
|
+
*/
|
|
12
|
+
export const MobileDrawer = ({ children, title, subtitle, footer, header, showGrabHandle = true, maxHeightVh = 75, bottomOffset = 0, styles, ...props }) => {
|
|
13
|
+
const resolvedHeader = header !== null && header !== void 0 ? header : (title ? (_jsxs("div", { style: { padding: `${spacing.xs} ${spacing.md} ${spacing.md}` }, children: [_jsx(Title, { variant: 'cardHeader', children: title }), subtitle ? _jsx(Title, { variant: 'cardSubheader', children: subtitle }) : null] })) : null);
|
|
14
|
+
return (_jsxs(MantineDrawer, { overlayProps: { blur: 2, opacity: 0.3 }, position: 'bottom', size: `${maxHeightVh}vh`, styles: {
|
|
15
|
+
body: {
|
|
16
|
+
display: 'flex',
|
|
17
|
+
flexDirection: 'column',
|
|
18
|
+
height: '100%',
|
|
19
|
+
padding: 0,
|
|
20
|
+
},
|
|
21
|
+
content: {
|
|
22
|
+
borderTopLeftRadius: '16px',
|
|
23
|
+
borderTopRightRadius: '16px',
|
|
24
|
+
bottom: bottomOffset || undefined,
|
|
25
|
+
display: 'flex',
|
|
26
|
+
flexDirection: 'column',
|
|
27
|
+
maxHeight: `${maxHeightVh}vh`,
|
|
28
|
+
overflow: 'hidden',
|
|
29
|
+
},
|
|
30
|
+
header: { display: 'none' },
|
|
31
|
+
...styles,
|
|
32
|
+
}, withCloseButton: false, ...props, children: [showGrabHandle ? (_jsx("div", { style: {
|
|
33
|
+
display: 'flex',
|
|
34
|
+
flex: '0 0 auto',
|
|
35
|
+
justifyContent: 'center',
|
|
36
|
+
padding: `${spacing.sm} 0 ${spacing.xs}`,
|
|
37
|
+
}, children: _jsx("div", { style: {
|
|
38
|
+
backgroundColor: neutral[100],
|
|
39
|
+
borderRadius: '999px',
|
|
40
|
+
height: 4,
|
|
41
|
+
width: 40,
|
|
42
|
+
} }) })) : null, resolvedHeader, _jsx("div", { style: {
|
|
43
|
+
flex: '1 1 auto',
|
|
44
|
+
minHeight: 0,
|
|
45
|
+
overflowY: 'auto',
|
|
46
|
+
padding: `0 ${spacing.md} ${spacing.md}`,
|
|
47
|
+
}, children: children }), footer ? (_jsx("div", { style: {
|
|
48
|
+
borderTop: `1px solid ${neutral[50]}`,
|
|
49
|
+
flex: '0 0 auto',
|
|
50
|
+
padding: spacing.md,
|
|
51
|
+
}, children: footer })) : null] }));
|
|
52
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { MobileDrawer } from './MobileDrawer';
|
|
3
|
+
declare const meta: Meta<typeof MobileDrawer>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof meta>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const WithFooter: Story;
|
|
8
|
+
export declare const ShorterSheet: Story;
|
|
9
|
+
//# sourceMappingURL=MobileDrawer.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobileDrawer.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/Info/MobileDrawer/MobileDrawer.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAM5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,YAAY,CAYnC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAiBrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KA0BxB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAiB1B,CAAC"}
|