@react-fabric/core 1.0.0-beta.6 → 1.0.0-beta.61
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/{src/components/actionLabel/ActionLabel.module.css → css/components/_actionLabel.css} +4 -4
- package/{src/overlays/alert/Alert.module.css → css/components/_alert.css} +3 -3
- package/{src/components/animations/Animations.module.css → css/components/_animations.css} +9 -9
- package/{src/components/avatar/Avatar.module.css → css/components/_avatar.css} +11 -11
- package/{src/components/badge/Badge.module.css → css/components/_badge.css} +19 -17
- package/{src/components/breadcrumbs/Breadcrumbs.module.css → css/components/_breadcrumbs.css} +52 -47
- package/{src/components/button/Button.module.css → css/components/_button.css} +86 -84
- package/{src/components/card/Card.module.css → css/components/_card.css} +54 -28
- package/{src/components/chip/Chip.module.css → css/components/_chip.css} +14 -10
- package/{src/components/collapsable/Collapsable.module.css → css/components/_collapsable.css} +3 -3
- package/css/components/_divider.css +38 -0
- package/{src/components/dropdown/Dropdown.module.css → css/components/_dropdown.css} +2 -2
- package/{src/overlays/flyout/Flyout.module.css → css/components/_flyout.css} +6 -6
- package/{src/components/icon/Icon.module.css → css/components/_icon.css} +12 -9
- package/{src/components/media/Media.module.css → css/components/_media.css} +17 -17
- package/{src/components/menu/Menu.module.css → css/components/_menu.css} +21 -20
- package/{src/overlays/message/Message.module.css → css/components/_message.css} +2 -2
- package/{src/components/meter/Meter.module.css → css/components/_meter.css} +10 -10
- package/{src/overlays/modal/Modal.module.css → css/components/_modal.css} +8 -8
- package/{src/components/panel/Panel.module.css → css/components/_panel.css} +17 -17
- package/{src/components/progress/Progress.module.css → css/components/_progress.css} +7 -10
- package/css/components/_stepper.css +86 -0
- package/{src/components/tabpanel/TabPanel.module.css → css/components/_tabPanel.css} +130 -85
- package/{src/overlays/toast/Toast.module.css → css/components/_toast.css} +2 -2
- package/css/components/_tooltip.css +29 -0
- package/{src/core/content/Content.module.css → css/components/index.css} +26 -18
- package/{src/core/aside/Aside.module.css → css/core/_aside.css} +60 -48
- package/{src/core/section/Section.module.css → css/core/_content.css} +5 -3
- package/{src/core/boundary/ErrorBoundary.module.css → css/core/_errorboundary.css} +9 -9
- package/{src/core/headfoot/HeadFoot.module.css → css/core/_headfoot.css} +4 -10
- package/{src/core/page/Page.module.css → css/core/_page.css} +10 -14
- package/{src/core/responsive/Responsive.module.css → css/core/_responsive.css} +10 -10
- package/css/core/_section.css +28 -0
- package/{src/core/theme/Theme.module.css → css/core/_theme.css} +3 -3
- package/{src/typography/Typography.module.css → css/core/_typography.css} +14 -12
- package/{src/core/viewport/Viewport.module.css → css/core/_viewport.css} +7 -3
- package/css/core/index.css +33 -0
- package/css/reset/_gradients.css +8 -8
- package/css/reset/_reset.css +56 -224
- package/css/reset/_text.css +14 -29
- package/css/reset/_theme.css +331 -52
- package/css/reset/index.css +4 -4
- package/css/styles.css +9 -6
- package/css/theme/_colors.css +320 -0
- package/css/theme/_utilities.css +541 -0
- package/css/theme/index.css +45 -0
- package/dist/cjs/components/actionLabel/ActionLabel.js +26 -8
- package/dist/cjs/components/animations/Animations.js +137 -45
- package/dist/cjs/components/avatar/Avatar.js +46 -13
- package/dist/cjs/components/avatar/AvatarGroup.js +22 -4
- package/dist/cjs/components/badge/Badge.js +36 -15
- package/dist/cjs/components/breadcrumbs/Breadcrumbs.js +40 -9
- package/dist/cjs/components/button/Button.js +51 -29
- package/dist/cjs/components/button/ButtonGroup.js +30 -3
- package/dist/cjs/components/button/ConfirmButton.js +28 -2
- package/dist/cjs/components/button/ToggleButtonGroup.js +41 -15
- package/dist/cjs/components/callout/Callout.js +47 -7
- package/dist/cjs/components/card/Card.js +60 -18
- package/dist/cjs/components/card/CardCover.js +36 -5
- package/dist/cjs/components/card/FlipContent.js +56 -0
- package/dist/cjs/components/chip/Chip.js +40 -20
- package/dist/cjs/components/collapsable/Collapsable.js +32 -8
- package/dist/cjs/components/divider/Divider.js +30 -7
- package/dist/cjs/components/dropdown/Dropdown.js +48 -9
- package/dist/cjs/components/dropdown/DropdownTool.js +2 -3
- package/dist/cjs/components/empty/EmptyContent.js +37 -7
- package/dist/cjs/components/icon/Icon.js +76 -13
- package/dist/cjs/components/media/Media.js +174 -76
- package/dist/cjs/components/menu/ContextMenu.js +19 -0
- package/dist/cjs/components/menu/Menu.js +77 -23
- package/dist/cjs/components/menu/MenuItem.js +54 -27
- package/dist/cjs/components/meter/Meter.js +26 -3
- package/dist/cjs/components/navigator/Navigator.js +50 -18
- package/dist/cjs/components/panel/Panel.js +59 -28
- package/dist/cjs/components/panel/PanelGroup.js +25 -2
- package/dist/cjs/components/panel/PanelStack.js +31 -2
- package/dist/cjs/components/progress/ProgressBar.js +31 -9
- package/dist/cjs/components/progress/ProgressCircle.js +29 -7
- package/dist/cjs/components/tabpanel/Tab.js +39 -16
- package/dist/cjs/components/tabpanel/TabPanel.js +56 -16
- package/dist/cjs/context/Global.js +28 -1
- package/dist/cjs/context/NotificationCenter.js +3 -3
- package/dist/cjs/core/aside/Aside.js +50 -25
- package/dist/cjs/core/boundary/ErrorBoundary.js +25 -8
- package/dist/cjs/core/boundary/ErrorIcon.js +1 -2
- package/dist/cjs/core/content/Content.js +7 -3
- package/dist/cjs/core/headfoot/HeadFoot.js +48 -22
- package/dist/cjs/core/page/Page.js +41 -40
- package/dist/cjs/core/responsive/Responsive.js +59 -6
- package/dist/cjs/core/section/Section.js +12 -29
- package/dist/cjs/core/theme/ThemeProvider.js +32 -10
- package/dist/cjs/core/viewport/Viewport.js +18 -2
- package/dist/cjs/hooks/useControlledValue.js +12 -0
- package/dist/cjs/hooks/useDebounce.js +14 -1
- package/dist/cjs/hooks/useEffectDebugger.js +54 -2
- package/dist/cjs/hooks/useIsDark.js +8 -0
- package/dist/cjs/hooks/useIsRtl.js +12 -0
- package/dist/cjs/hooks/useNavigator.js +6 -4
- package/dist/cjs/hooks/useOverlayService.js +24 -0
- package/dist/cjs/hooks/usePropToggle.js +16 -5
- package/dist/cjs/hooks/useResize.js +18 -0
- package/dist/cjs/hooks/useResizeObserver.js +20 -1
- package/dist/cjs/hooks/useStepper.js +74 -0
- package/dist/cjs/hooks/useStorage.js +39 -0
- package/dist/cjs/hotkeys/HotKeyLabel.js +1 -1
- package/dist/cjs/hotkeys/HotKeyWrapper.js +3 -1
- package/dist/cjs/index.js +14 -10
- package/dist/cjs/overlays/alert/Alert.js +24 -17
- package/dist/cjs/overlays/flyout/Flyout.js +48 -65
- package/dist/cjs/overlays/message/Message.js +8 -3
- package/dist/cjs/overlays/modal/Modal.js +19 -23
- package/dist/cjs/overlays/toast/Toast.js +22 -13
- package/dist/cjs/overlays/tooltip/Tooltip.js +25 -13
- package/dist/cjs/typography/Abbr.js +35 -7
- package/dist/cjs/typography/{Link.js → Anchor.js} +23 -5
- package/dist/cjs/typography/Copy.js +1 -2
- package/dist/cjs/typography/Mark.js +25 -5
- package/dist/cjs/typography/Text.js +30 -5
- package/dist/cjs/typography/Title.js +19 -4
- package/dist/cjs/utils/cloneElement.js +47 -0
- package/dist/cjs/utils/getColor.js +1 -18
- package/dist/esm/components/actionLabel/ActionLabel.js +26 -8
- package/dist/esm/components/animations/Animations.js +135 -44
- package/dist/esm/components/avatar/Avatar.js +46 -13
- package/dist/esm/components/avatar/AvatarGroup.js +22 -4
- package/dist/esm/components/badge/Badge.js +38 -17
- package/dist/esm/components/breadcrumbs/Breadcrumbs.js +40 -9
- package/dist/esm/components/button/Button.js +53 -31
- package/dist/esm/components/button/ButtonGroup.js +31 -4
- package/dist/esm/components/button/ConfirmButton.js +28 -2
- package/dist/esm/components/button/ToggleButtonGroup.js +42 -16
- package/dist/esm/components/callout/Callout.js +47 -7
- package/dist/esm/components/card/Card.js +61 -19
- package/dist/esm/components/card/CardCover.js +36 -5
- package/dist/esm/components/card/FlipContent.js +56 -0
- package/dist/esm/components/chip/Chip.js +42 -22
- package/dist/esm/components/collapsable/Collapsable.js +32 -8
- package/dist/esm/components/divider/Divider.js +31 -8
- package/dist/esm/components/dropdown/Dropdown.js +48 -9
- package/dist/esm/components/dropdown/DropdownTool.js +2 -3
- package/dist/esm/components/empty/EmptyContent.js +37 -7
- package/dist/esm/components/icon/Icon.js +78 -16
- package/dist/esm/components/media/Media.js +175 -77
- package/dist/esm/components/menu/ContextMenu.js +19 -0
- package/dist/esm/components/menu/Menu.js +79 -25
- package/dist/esm/components/menu/MenuItem.js +49 -22
- package/dist/esm/components/meter/Meter.js +26 -3
- package/dist/esm/components/navigator/Navigator.js +50 -18
- package/dist/esm/components/panel/Panel.js +61 -30
- package/dist/esm/components/panel/PanelGroup.js +25 -2
- package/dist/esm/components/panel/PanelStack.js +31 -2
- package/dist/esm/components/progress/ProgressBar.js +31 -9
- package/dist/esm/components/progress/ProgressCircle.js +29 -7
- package/dist/esm/components/tabpanel/Tab.js +40 -17
- package/dist/esm/components/tabpanel/TabPanel.js +56 -16
- package/dist/esm/context/Global.js +28 -1
- package/dist/esm/context/NotificationCenter.js +3 -3
- package/dist/esm/core/aside/Aside.js +52 -27
- package/dist/esm/core/boundary/ErrorBoundary.js +25 -8
- package/dist/esm/core/boundary/ErrorIcon.js +1 -2
- package/dist/esm/core/content/Content.js +7 -3
- package/dist/esm/core/headfoot/HeadFoot.js +48 -22
- package/dist/esm/core/page/Page.js +43 -42
- package/dist/esm/core/responsive/Responsive.js +59 -6
- package/dist/esm/core/section/Section.js +12 -29
- package/dist/esm/core/theme/ThemeProvider.js +32 -10
- package/dist/esm/core/viewport/Viewport.js +18 -2
- package/dist/esm/hooks/useControlledValue.js +12 -0
- package/dist/esm/hooks/useDebounce.js +14 -1
- package/dist/esm/hooks/useEffectDebugger.js +54 -2
- package/dist/esm/hooks/useIsDark.js +8 -0
- package/dist/esm/hooks/useIsRtl.js +12 -0
- package/dist/esm/hooks/useNavigator.js +7 -5
- package/dist/esm/hooks/useOverlayService.js +24 -0
- package/dist/esm/hooks/usePropToggle.js +16 -5
- package/dist/esm/hooks/useResize.js +18 -0
- package/dist/esm/hooks/useResizeObserver.js +20 -1
- package/dist/esm/hooks/useStepper.js +74 -0
- package/dist/esm/hooks/useStorage.js +39 -0
- package/dist/esm/hotkeys/HotKeyLabel.js +1 -1
- package/dist/esm/hotkeys/HotKeyWrapper.js +3 -1
- package/dist/esm/index.js +7 -4
- package/dist/esm/overlays/alert/Alert.js +25 -18
- package/dist/esm/overlays/flyout/Flyout.js +53 -70
- package/dist/esm/overlays/message/Message.js +9 -4
- package/dist/esm/overlays/modal/Modal.js +22 -26
- package/dist/esm/overlays/toast/Toast.js +23 -14
- package/dist/esm/overlays/tooltip/Tooltip.js +25 -13
- package/dist/esm/typography/Abbr.js +35 -7
- package/dist/esm/typography/{Link.js → Anchor.js} +24 -6
- package/dist/esm/typography/Copy.js +1 -2
- package/dist/esm/typography/Mark.js +25 -5
- package/dist/esm/typography/Text.js +31 -6
- package/dist/esm/typography/Title.js +20 -5
- package/dist/esm/utils/cloneElement.js +47 -0
- package/dist/esm/utils/getColor.js +2 -16
- package/dist/types/components/actionLabel/ActionLabel.d.ts +21 -2
- package/dist/types/components/animations/Animations.d.ts +105 -7
- package/dist/types/components/avatar/Avatar.d.ts +34 -6
- package/dist/types/components/avatar/AvatarGroup.d.ts +19 -1
- package/dist/types/components/badge/Badge.d.ts +37 -3
- package/dist/types/components/breadcrumbs/Breadcrumbs.d.ts +31 -2
- package/dist/types/components/button/Button.d.ts +39 -7
- package/dist/types/components/button/ButtonGroup.d.ts +28 -3
- package/dist/types/components/button/ConfirmButton.d.ts +23 -3
- package/dist/types/components/button/ToggleButtonGroup.d.ts +39 -11
- package/dist/types/components/callout/Callout.d.ts +29 -3
- package/dist/types/components/card/Card.d.ts +44 -4
- package/dist/types/components/card/CardCover.d.ts +25 -0
- package/dist/types/components/card/FlipContent.d.ts +28 -0
- package/dist/types/components/chip/Chip.d.ts +34 -5
- package/dist/types/components/collapsable/Collapsable.d.ts +28 -2
- package/dist/types/components/divider/Divider.d.ts +30 -7
- package/dist/types/components/dropdown/Dropdown.d.ts +40 -1
- package/dist/types/components/dropdown/DropdownTool.d.ts +25 -0
- package/dist/types/components/empty/EmptyContent.d.ts +32 -3
- package/dist/types/components/icon/Icon.d.ts +40 -8
- package/dist/types/components/index.d.ts +3 -2
- package/dist/types/components/media/Media.d.ts +54 -0
- package/dist/types/components/menu/ContextMenu.d.ts +19 -1
- package/dist/types/components/menu/Menu.d.ts +29 -0
- package/dist/types/components/menu/MenuItem.d.ts +22 -2
- package/dist/types/components/menu/types.d.ts +9 -3
- package/dist/types/components/meter/Meter.d.ts +24 -0
- package/dist/types/components/navigator/Navigator.d.ts +29 -4
- package/dist/types/components/panel/Panel.d.ts +43 -4
- package/dist/types/components/panel/PanelGroup.d.ts +24 -0
- package/dist/types/components/panel/PanelStack.d.ts +31 -0
- package/dist/types/components/progress/ProgressBar.d.ts +23 -3
- package/dist/types/components/progress/ProgressCircle.d.ts +22 -3
- package/dist/types/components/tabpanel/Tab.d.ts +38 -4
- package/dist/types/components/tabpanel/TabPanel.d.ts +51 -2
- package/dist/types/context/Global.d.ts +24 -1
- package/dist/types/core/aside/Aside.d.ts +45 -6
- package/dist/types/core/boundary/ErrorBoundary.d.ts +18 -2
- package/dist/types/core/content/Content.d.ts +6 -1
- package/dist/types/core/headfoot/HeadFoot.d.ts +41 -9
- package/dist/types/core/page/Page.d.ts +32 -4
- package/dist/types/core/responsive/Responsive.d.ts +58 -3
- package/dist/types/core/section/Section.d.ts +18 -3
- package/dist/types/core/theme/ThemeProvider.d.ts +25 -5
- package/dist/types/core/viewport/Viewport.d.ts +15 -1
- package/dist/types/hooks/useControlledValue.d.ts +13 -2
- package/dist/types/hooks/useDebounce.d.ts +12 -0
- package/dist/types/hooks/useEffectDebugger.d.ts +49 -0
- package/dist/types/hooks/useIsDark.d.ts +8 -0
- package/dist/types/hooks/useIsRtl.d.ts +12 -0
- package/dist/types/hooks/useNavigator.d.ts +18 -1
- package/dist/types/hooks/useOverlayService.d.ts +28 -9
- package/dist/types/hooks/usePropToggle.d.ts +16 -5
- package/dist/types/hooks/useResize.d.ts +19 -1
- package/dist/types/hooks/useResizeObserver.d.ts +20 -1
- package/dist/types/hooks/useStepper.d.ts +14 -0
- package/dist/types/hooks/useStorage.d.ts +38 -0
- package/dist/types/index.d.ts +4 -1
- package/dist/types/overlays/alert/Alert.d.ts +16 -5
- package/dist/types/overlays/flyout/Flyout.d.ts +9 -4
- package/dist/types/overlays/message/Message.d.ts +16 -5
- package/dist/types/overlays/modal/Modal.d.ts +13 -4
- package/dist/types/overlays/toast/Toast.d.ts +16 -5
- package/dist/types/overlays/tooltip/Tooltip.d.ts +2 -2
- package/dist/types/types/index.d.ts +28 -24
- package/dist/types/typography/Abbr.d.ts +34 -4
- package/dist/types/typography/Anchor.d.ts +42 -0
- package/dist/types/typography/Copy.d.ts +15 -0
- package/dist/types/typography/Mark.d.ts +22 -4
- package/dist/types/typography/Text.d.ts +27 -1
- package/dist/types/typography/Title.d.ts +16 -1
- package/dist/types/typography/index.d.ts +1 -1
- package/dist/types/utils/cloneElement.d.ts +1 -0
- package/dist/types/utils/getColor.d.ts +1 -4
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +17 -16
- package/src/components/actionLabel/ActionLabel.tsx +26 -8
- package/src/components/animations/Animations.tsx +139 -52
- package/src/components/avatar/Avatar.tsx +51 -15
- package/src/components/avatar/AvatarGroup.tsx +23 -5
- package/src/components/badge/Badge.tsx +50 -22
- package/src/components/breadcrumbs/Breadcrumbs.tsx +43 -10
- package/src/components/button/Button.tsx +75 -43
- package/src/components/button/ButtonGroup.tsx +33 -7
- package/src/components/button/ConfirmButton.tsx +31 -3
- package/src/components/button/ToggleButtonGroup.tsx +74 -47
- package/src/components/callout/Callout.tsx +58 -16
- package/src/components/card/Card.tsx +84 -25
- package/src/components/card/CardCover.tsx +36 -6
- package/src/components/card/FlipContent.tsx +90 -0
- package/src/components/chip/Chip.tsx +53 -25
- package/src/components/collapsable/Collapsable.tsx +35 -11
- package/src/components/divider/Divider.tsx +42 -16
- package/src/components/dropdown/Dropdown.tsx +47 -12
- package/src/components/dropdown/DropdownTool.tsx +28 -4
- package/src/components/empty/EmptyContent.tsx +49 -8
- package/src/components/icon/Icon.tsx +96 -18
- package/src/components/index.ts +5 -4
- package/src/components/media/Media.tsx +193 -105
- package/src/components/menu/ContextMenu.tsx +19 -0
- package/src/components/menu/Menu.tsx +88 -32
- package/src/components/menu/MenuItem.tsx +44 -19
- package/src/components/menu/types.ts +9 -8
- package/src/components/meter/Meter.tsx +27 -4
- package/src/components/navigator/Navigator.tsx +60 -12
- package/src/components/panel/Panel.tsx +66 -28
- package/src/components/panel/PanelGroup.tsx +25 -2
- package/src/components/panel/PanelStack.tsx +33 -2
- package/src/components/progress/ProgressBar.tsx +33 -14
- package/src/components/progress/ProgressCircle.tsx +29 -13
- package/src/components/tabpanel/Tab.tsx +47 -24
- package/src/components/tabpanel/TabPanel.tsx +79 -13
- package/src/context/Global.tsx +28 -1
- package/src/context/NotificationCenter.tsx +3 -3
- package/src/core/aside/Aside.tsx +59 -38
- package/src/core/boundary/ErrorBoundary.tsx +26 -8
- package/src/core/boundary/ErrorIcon.tsx +1 -2
- package/src/core/content/Content.tsx +7 -3
- package/src/core/headfoot/HeadFoot.tsx +44 -37
- package/src/core/page/Page.tsx +44 -22
- package/src/core/responsive/Responsive.tsx +66 -8
- package/src/core/section/Section.tsx +26 -4
- package/src/core/theme/ThemeProvider.tsx +35 -14
- package/src/core/viewport/Viewport.tsx +16 -3
- package/src/hooks/useControlledValue.tsx +12 -0
- package/src/hooks/useDebounce.ts +13 -1
- package/src/hooks/useEffectDebugger.ts +50 -2
- package/src/hooks/useIsDark.ts +8 -0
- package/src/hooks/useIsRtl.ts +12 -0
- package/src/hooks/useNavigator.tsx +28 -5
- package/src/hooks/useOverlayService.tsx +33 -8
- package/src/hooks/usePropToggle.ts +16 -5
- package/src/hooks/useResize.ts +19 -1
- package/src/hooks/useResizeObserver.ts +32 -9
- package/src/hooks/useStepper.tsx +68 -0
- package/src/hooks/useStorage.ts +38 -0
- package/src/hotkeys/HotKeyLabel.tsx +1 -1
- package/src/hotkeys/HotKeyWrapper.tsx +3 -1
- package/src/index.ts +5 -1
- package/src/overlays/alert/Alert.tsx +51 -36
- package/src/overlays/flyout/Flyout.tsx +74 -99
- package/src/overlays/message/Message.tsx +28 -9
- package/src/overlays/modal/Modal.tsx +39 -34
- package/src/overlays/toast/Toast.tsx +44 -33
- package/src/overlays/tooltip/Tooltip.tsx +44 -20
- package/src/types/global.d.ts +8 -0
- package/src/types/index.ts +293 -47
- package/src/typography/Abbr.tsx +45 -11
- package/src/typography/{Link.tsx → Anchor.tsx} +26 -14
- package/src/typography/Copy.tsx +16 -2
- package/src/typography/Mark.tsx +25 -10
- package/src/typography/Text.tsx +31 -13
- package/src/typography/Title.tsx +18 -7
- package/src/typography/index.ts +1 -1
- package/src/{overlays/tooltip/Tooltip.module.css → utils/cloneElement.ts} +21 -27
- package/src/utils/getColor.ts +1 -17
- package/src/utils/index.ts +1 -0
- package/css/flags.rect.css +0 -1607
- package/css/flags.wavy.css +0 -1606
- package/css/index.js +0 -250
- package/css/tailwind/colors.ts +0 -158
- package/dist/cjs/components/actionLabel/ActionLabel.module.css +0 -1
- package/dist/cjs/components/animations/Animations.module.css +0 -1
- package/dist/cjs/components/avatar/Avatar.module.css +0 -1
- package/dist/cjs/components/badge/Badge.module.css +0 -1
- package/dist/cjs/components/breadcrumbs/Breadcrumbs.module.css +0 -1
- package/dist/cjs/components/button/Button.module.css +0 -1
- package/dist/cjs/components/card/Card.module.css +0 -1
- package/dist/cjs/components/chip/Chip.module.css +0 -1
- package/dist/cjs/components/collapsable/Collapsable.module.css +0 -1
- package/dist/cjs/components/dropdown/Dropdown.module.css +0 -1
- package/dist/cjs/components/icon/Icon.module.css +0 -1
- package/dist/cjs/components/media/Media.module.css +0 -1
- package/dist/cjs/components/menu/Menu.module.css +0 -1
- package/dist/cjs/components/meter/Meter.module.css +0 -1
- package/dist/cjs/components/panel/Panel.module.css +0 -1
- package/dist/cjs/components/progress/Progress.module.css +0 -1
- package/dist/cjs/components/tabpanel/TabPanel.module.css +0 -1
- package/dist/cjs/core/aside/Aside.module.css +0 -1
- package/dist/cjs/core/boundary/ErrorBoundary.module.css +0 -1
- package/dist/cjs/core/content/Content.module.css +0 -1
- package/dist/cjs/core/headfoot/HeadFoot.module.css +0 -1
- package/dist/cjs/core/page/Page.module.css +0 -1
- package/dist/cjs/core/responsive/Responsive.module.css +0 -1
- package/dist/cjs/core/section/Section.module.css +0 -1
- package/dist/cjs/core/theme/Theme.module.css +0 -1
- package/dist/cjs/core/viewport/Viewport.module.css +0 -1
- package/dist/cjs/overlays/alert/Alert.module.css +0 -1
- package/dist/cjs/overlays/flyout/Flyout.module.css +0 -1
- package/dist/cjs/overlays/message/Message.module.css +0 -1
- package/dist/cjs/overlays/modal/Modal.module.css +0 -1
- package/dist/cjs/overlays/toast/Toast.module.css +0 -1
- package/dist/cjs/overlays/tooltip/Tooltip.module.css +0 -1
- package/dist/cjs/types/icons.js +0 -199
- package/dist/cjs/typography/Typography.module.css +0 -1
- package/dist/esm/components/actionLabel/ActionLabel.module.css +0 -1
- package/dist/esm/components/animations/Animations.module.css +0 -1
- package/dist/esm/components/avatar/Avatar.module.css +0 -1
- package/dist/esm/components/badge/Badge.module.css +0 -1
- package/dist/esm/components/breadcrumbs/Breadcrumbs.module.css +0 -1
- package/dist/esm/components/button/Button.module.css +0 -1
- package/dist/esm/components/card/Card.module.css +0 -1
- package/dist/esm/components/chip/Chip.module.css +0 -1
- package/dist/esm/components/collapsable/Collapsable.module.css +0 -1
- package/dist/esm/components/dropdown/Dropdown.module.css +0 -1
- package/dist/esm/components/icon/Icon.module.css +0 -1
- package/dist/esm/components/media/Media.module.css +0 -1
- package/dist/esm/components/menu/Menu.module.css +0 -1
- package/dist/esm/components/meter/Meter.module.css +0 -1
- package/dist/esm/components/panel/Panel.module.css +0 -1
- package/dist/esm/components/progress/Progress.module.css +0 -1
- package/dist/esm/components/tabpanel/TabPanel.module.css +0 -1
- package/dist/esm/core/aside/Aside.module.css +0 -1
- package/dist/esm/core/boundary/ErrorBoundary.module.css +0 -1
- package/dist/esm/core/content/Content.module.css +0 -1
- package/dist/esm/core/headfoot/HeadFoot.module.css +0 -1
- package/dist/esm/core/page/Page.module.css +0 -1
- package/dist/esm/core/responsive/Responsive.module.css +0 -1
- package/dist/esm/core/section/Section.module.css +0 -1
- package/dist/esm/core/theme/Theme.module.css +0 -1
- package/dist/esm/core/viewport/Viewport.module.css +0 -1
- package/dist/esm/overlays/alert/Alert.module.css +0 -1
- package/dist/esm/overlays/flyout/Flyout.module.css +0 -1
- package/dist/esm/overlays/message/Message.module.css +0 -1
- package/dist/esm/overlays/modal/Modal.module.css +0 -1
- package/dist/esm/overlays/toast/Toast.module.css +0 -1
- package/dist/esm/overlays/tooltip/Tooltip.module.css +0 -1
- package/dist/esm/types/icons.js +0 -201
- package/dist/esm/typography/Typography.module.css +0 -1
- package/dist/types/types/icons.d.ts +0 -196
- package/dist/types/typography/Link.d.ts +0 -25
- package/src/types/icons.ts +0 -425
|
@@ -29,31 +29,29 @@ import {
|
|
|
29
29
|
type ChildProp,
|
|
30
30
|
type ColorType,
|
|
31
31
|
type CssProp,
|
|
32
|
-
type
|
|
32
|
+
type PaletteType,
|
|
33
33
|
type PolymorphicProps,
|
|
34
34
|
type RefProp,
|
|
35
35
|
type SizeType,
|
|
36
36
|
type TestProps,
|
|
37
37
|
} from "../../types";
|
|
38
|
-
import { getColor
|
|
39
|
-
import { Icon } from "../icon/Icon";
|
|
40
|
-
import classes from "./Chip.module.css";
|
|
38
|
+
import { getColor } from "../../utils";
|
|
39
|
+
import { getIconProps, Icon, type IconProps } from "../icon/Icon";
|
|
41
40
|
|
|
42
41
|
export interface ChipProps
|
|
43
42
|
extends CssProp,
|
|
44
43
|
AriaProps,
|
|
45
|
-
IconProps,
|
|
46
44
|
TestProps,
|
|
47
45
|
ChildProp<string | ReactElement>,
|
|
48
46
|
RefProp<HTMLDivElement> {
|
|
49
47
|
/**
|
|
50
48
|
* chip size
|
|
51
49
|
*/
|
|
52
|
-
size?: SizeType;
|
|
50
|
+
size?: SizeType | number | string;
|
|
53
51
|
/**
|
|
54
52
|
* chip color (CSS color / tailwind color)
|
|
55
53
|
*/
|
|
56
|
-
color?: ColorType | string;
|
|
54
|
+
color?: ColorType | PaletteType | string;
|
|
57
55
|
/**
|
|
58
56
|
* chip styling
|
|
59
57
|
*/
|
|
@@ -62,10 +60,18 @@ export interface ChipProps
|
|
|
62
60
|
* full rounded edges
|
|
63
61
|
*/
|
|
64
62
|
rounded?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* icon path or props
|
|
65
|
+
*/
|
|
66
|
+
icon?: IconProps;
|
|
65
67
|
/**
|
|
66
68
|
* disabled state
|
|
67
69
|
*/
|
|
68
70
|
disabled?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* prevent click default, useful when component is within a `a` link
|
|
73
|
+
*/
|
|
74
|
+
preventDefault?: boolean;
|
|
69
75
|
/**
|
|
70
76
|
* prevent click propagation
|
|
71
77
|
*/
|
|
@@ -92,6 +98,26 @@ const SizeMap: KeyValue<string> = {
|
|
|
92
98
|
xl: "2rem",
|
|
93
99
|
};
|
|
94
100
|
|
|
101
|
+
/**
|
|
102
|
+
* A component that represents a small block of information, often used for tags, categories, or actions.
|
|
103
|
+
* It allows customization of size, color, variant, and includes optional icon and remove functionality.
|
|
104
|
+
* It supports various properties for styling and interaction, including click handlers and disabled state.
|
|
105
|
+
* It can be used in various contexts, such as filtering options, displaying tags, or representing user actions.
|
|
106
|
+
* It can be styled with custom CSS classes and supports features like rounded edges and click handling.
|
|
107
|
+
* It can also include an icon and a remove button, making it versatile for different use cases.
|
|
108
|
+
*
|
|
109
|
+
* @param {ChipProps} props - The properties for the Chip component.
|
|
110
|
+
* @returns {JSX.Element} The rendered Chip component.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```jsx
|
|
114
|
+
* <Chip color="primary" size="md" className="my-chip">
|
|
115
|
+
* Example Chip
|
|
116
|
+
* </Chip>
|
|
117
|
+
* ```
|
|
118
|
+
*
|
|
119
|
+
* @see {@link https://adarshpastakia.github.io/react-fabric/?path=/docs/core-components-chip--docs} for more details.
|
|
120
|
+
*/
|
|
95
121
|
export const Chip = <Tag extends React.ElementType = "div">({
|
|
96
122
|
ref,
|
|
97
123
|
children,
|
|
@@ -100,14 +126,12 @@ export const Chip = <Tag extends React.ElementType = "div">({
|
|
|
100
126
|
color,
|
|
101
127
|
variant,
|
|
102
128
|
icon,
|
|
103
|
-
iconBg,
|
|
104
|
-
iconColor,
|
|
105
|
-
rtlFlip,
|
|
106
129
|
disabled,
|
|
107
130
|
onClick,
|
|
108
131
|
onIconClick,
|
|
109
132
|
onRemove,
|
|
110
133
|
rounded,
|
|
134
|
+
preventDefault,
|
|
111
135
|
stopPropagation,
|
|
112
136
|
as,
|
|
113
137
|
...aria
|
|
@@ -133,10 +157,11 @@ export const Chip = <Tag extends React.ElementType = "div">({
|
|
|
133
157
|
|
|
134
158
|
const clickHandler = useCallback(
|
|
135
159
|
(e: React.MouseEvent) => {
|
|
136
|
-
|
|
160
|
+
preventDefault && e.preventDefault();
|
|
161
|
+
stopPropagation && e.stopPropagation();
|
|
137
162
|
onClick?.(e);
|
|
138
163
|
},
|
|
139
|
-
[onClick, stopPropagation],
|
|
164
|
+
[onClick, preventDefault, stopPropagation],
|
|
140
165
|
);
|
|
141
166
|
|
|
142
167
|
const removeHandler = useCallback(
|
|
@@ -152,41 +177,44 @@ export const Chip = <Tag extends React.ElementType = "div">({
|
|
|
152
177
|
<E
|
|
153
178
|
ref={ref}
|
|
154
179
|
role="term"
|
|
180
|
+
data-ref="chip"
|
|
155
181
|
className={classNames(
|
|
156
|
-
|
|
182
|
+
"fabric-chip",
|
|
157
183
|
className,
|
|
158
|
-
|
|
159
|
-
"select-none inline-flex flex-nowrap items-center max-w-72 text-sm rounded",
|
|
184
|
+
"select-none inline-flex flex-nowrap items-center align-middle max-w-72 rounded",
|
|
160
185
|
rounded && "rounded-full",
|
|
161
|
-
!!onClick &&
|
|
162
|
-
disabled &&
|
|
186
|
+
!!onClick && "clickable",
|
|
187
|
+
disabled && "disabled",
|
|
163
188
|
)}
|
|
164
189
|
style={styles}
|
|
165
190
|
data-variant={variant}
|
|
166
191
|
data-inner-clickable={!!onClick}
|
|
167
|
-
{...{ onClick: clickHandler }}
|
|
192
|
+
{...{ onClick: disabled ? undefined : clickHandler }}
|
|
168
193
|
{...aria}
|
|
169
194
|
>
|
|
170
195
|
{icon && (
|
|
171
196
|
<Icon
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
bg={iconBg}
|
|
197
|
+
data-ref="chipIcon"
|
|
198
|
+
className={classNames("fabric-chipIcon", "m-1 flex-content")}
|
|
175
199
|
onClick={onIconClick}
|
|
176
|
-
|
|
177
|
-
rtlFlip={rtlFlip}
|
|
200
|
+
{...getIconProps(icon)}
|
|
178
201
|
/>
|
|
179
202
|
)}
|
|
180
203
|
{children && (
|
|
181
|
-
<label
|
|
204
|
+
<label
|
|
205
|
+
data-ref="chipLabel"
|
|
206
|
+
className={classNames("fabric-chipLabel", "truncate flex-1")}
|
|
207
|
+
>
|
|
182
208
|
{children}
|
|
183
209
|
</label>
|
|
184
210
|
)}
|
|
185
211
|
{onRemove && (
|
|
186
212
|
<span
|
|
187
213
|
role="none"
|
|
214
|
+
data-ref="chipRemove"
|
|
215
|
+
data-inner-cliackable
|
|
188
216
|
className={classNames(
|
|
189
|
-
|
|
217
|
+
"fabric-chipRemove",
|
|
190
218
|
"cursor-pointer pe-1 opacity-65 hover:opacity-90",
|
|
191
219
|
)}
|
|
192
220
|
onClick={removeHandler}
|
|
@@ -38,13 +38,11 @@ import {
|
|
|
38
38
|
type RefProp,
|
|
39
39
|
type TestProps,
|
|
40
40
|
} from "../../types";
|
|
41
|
-
import { CoreIcons } from "../../types/icons";
|
|
42
41
|
import { Icon } from "../icon/Icon";
|
|
43
|
-
import classes from "./Collapsable.module.css";
|
|
44
42
|
|
|
45
43
|
interface CollapsableRef {
|
|
46
|
-
button: RefObject<HTMLElement>;
|
|
47
|
-
body: RefObject<HTMLElement>;
|
|
44
|
+
button: RefObject<HTMLElement | null>;
|
|
45
|
+
body: RefObject<HTMLElement | null>;
|
|
48
46
|
open: boolean;
|
|
49
47
|
}
|
|
50
48
|
|
|
@@ -96,6 +94,32 @@ export interface CollapsableProps
|
|
|
96
94
|
onClose?: () => void;
|
|
97
95
|
}
|
|
98
96
|
|
|
97
|
+
/**
|
|
98
|
+
* A component that can be expanded or collapsed to show or hide content.
|
|
99
|
+
* It is useful for organizing content in a way that allows users to focus on the information they are interested in.
|
|
100
|
+
* It supports custom icons for open and closed states, alignment options, and can be made sticky.
|
|
101
|
+
* This component is ideal for creating accordions, expandable panels, or sections that can be toggled by the user.
|
|
102
|
+
*
|
|
103
|
+
* @param {CollapsableProps} props - The properties for the Collapsable component.
|
|
104
|
+
* @returns {JSX.Element} The rendered Collapsable component.
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```jsx
|
|
108
|
+
* <Collapsable
|
|
109
|
+
* iconAlign="start"
|
|
110
|
+
* iconOpen="icon-[mdi--chevron-down]"
|
|
111
|
+
* iconClosed="icon-[mdi--chevron-right]"
|
|
112
|
+
* open={true}
|
|
113
|
+
* onOpen={() => console.log("Opened")}
|
|
114
|
+
* onClose={() => console.log("Closed")}
|
|
115
|
+
* >
|
|
116
|
+
* <div>Header Content</div>
|
|
117
|
+
* <div>Body Content</div>
|
|
118
|
+
* </Collapsable>
|
|
119
|
+
* ```
|
|
120
|
+
*
|
|
121
|
+
* @see {@link https://adarshpastakia.github.io/react-fabric/?path=/docs/core-components-collapsable--docs} for more details.
|
|
122
|
+
*/
|
|
99
123
|
export const Collapsable = ({
|
|
100
124
|
ref,
|
|
101
125
|
disabled,
|
|
@@ -105,8 +129,8 @@ export const Collapsable = ({
|
|
|
105
129
|
children,
|
|
106
130
|
iconAlign,
|
|
107
131
|
stickyHeader,
|
|
108
|
-
iconClosed =
|
|
109
|
-
iconOpen =
|
|
132
|
+
iconClosed = "icon-[mdi--chevron-right]",
|
|
133
|
+
iconOpen = "icon-[mdi--chevron-down]",
|
|
110
134
|
open,
|
|
111
135
|
onClose,
|
|
112
136
|
onOpen,
|
|
@@ -135,26 +159,26 @@ export const Collapsable = ({
|
|
|
135
159
|
return [h, b];
|
|
136
160
|
}, [children]);
|
|
137
161
|
return (
|
|
138
|
-
<div className={classNames(
|
|
162
|
+
<div className={classNames("fabric-collapsable", className)} {...aria}>
|
|
139
163
|
<div
|
|
140
164
|
role="none"
|
|
141
165
|
ref={headRef}
|
|
142
166
|
className={classNames(
|
|
143
|
-
|
|
167
|
+
"fabric-collapsableHead",
|
|
144
168
|
"flex gap-1 flex-nowrap py-2 font-medium cursor-pointer items-center select-none hover:opacity-70",
|
|
145
169
|
headerClassName,
|
|
146
|
-
stickyHeader && "bg-base sticky top-0
|
|
170
|
+
stickyHeader && "bg-base sticky top-0 py-1 z-10",
|
|
147
171
|
iconAlign === "end" ? "flex-row-reverse" : "flex-row",
|
|
148
172
|
)}
|
|
149
173
|
onClick={() => !disabled && setOpenState(!openState)}
|
|
150
174
|
>
|
|
151
175
|
<Icon size="1.125em" icon={openState ? iconOpen : iconClosed} rtlFlip />
|
|
152
|
-
<div className="flex-1
|
|
176
|
+
<div className="flex-1">{head}</div>
|
|
153
177
|
</div>
|
|
154
178
|
{openState && (
|
|
155
179
|
<div
|
|
156
180
|
ref={bodyRef}
|
|
157
|
-
className={classNames(
|
|
181
|
+
className={classNames("fabric-collapsableBody", bodyClassName)}
|
|
158
182
|
>
|
|
159
183
|
{body}
|
|
160
184
|
</div>
|
|
@@ -24,37 +24,61 @@
|
|
|
24
24
|
import classNames from "classnames";
|
|
25
25
|
import { useCallback } from "react";
|
|
26
26
|
import {
|
|
27
|
-
type CssProp,
|
|
28
27
|
type ChildProp,
|
|
29
28
|
type ColorType,
|
|
29
|
+
type CssProp,
|
|
30
30
|
type PaletteType,
|
|
31
31
|
} from "../../types";
|
|
32
|
-
import {
|
|
32
|
+
import { getColor } from "../../utils";
|
|
33
33
|
|
|
34
34
|
export interface DividerProps extends CssProp, Partial<ChildProp> {
|
|
35
|
-
/**
|
|
36
|
-
* apply text bg
|
|
37
|
-
*/
|
|
38
|
-
fill?: boolean;
|
|
39
35
|
/**
|
|
40
36
|
* vertical rule
|
|
41
37
|
*/
|
|
42
38
|
vertical?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* divider label classname(s)
|
|
41
|
+
*/
|
|
42
|
+
labelClassName?: string;
|
|
43
43
|
/**
|
|
44
44
|
* rule color
|
|
45
45
|
*/
|
|
46
|
-
color?: ColorType | PaletteType |
|
|
46
|
+
color?: ColorType | PaletteType | string;
|
|
47
47
|
/**
|
|
48
48
|
* text alignment
|
|
49
49
|
*/
|
|
50
50
|
align?: "start" | "end" | "center";
|
|
51
|
+
/**
|
|
52
|
+
* divider style
|
|
53
|
+
*/
|
|
54
|
+
style?: "solid" | "dashed" | "dotted";
|
|
51
55
|
}
|
|
52
56
|
|
|
57
|
+
/**
|
|
58
|
+
* A component that represents a visual divider between content.
|
|
59
|
+
* It can be used to separate sections of content, with optional text labels.
|
|
60
|
+
* It supports both horizontal and vertical orientations, customizable colors,
|
|
61
|
+
* styles, and alignment options.
|
|
62
|
+
*
|
|
63
|
+
* @param {DividerProps} props - The properties for the Divider component.
|
|
64
|
+
* @returns {JSX.Element} The rendered Divider component.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```jsx
|
|
68
|
+
* <Divider color="primary" align="center" style="dashed">
|
|
69
|
+
* Divider Text
|
|
70
|
+
* </Divider>
|
|
71
|
+
* // Renders a horizontal divider with primary color, centered text, and dashed style.
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* @see {@link https://adarshpastakia.github.io/react-fabric/?path=/docs/core-components-divider--docs} for more details.
|
|
75
|
+
*/
|
|
53
76
|
export const Divider = ({
|
|
54
77
|
children,
|
|
55
|
-
color,
|
|
78
|
+
color = "tint-300",
|
|
56
79
|
vertical,
|
|
57
|
-
|
|
80
|
+
labelClassName,
|
|
81
|
+
style,
|
|
58
82
|
align = "start",
|
|
59
83
|
className,
|
|
60
84
|
}: DividerProps) => {
|
|
@@ -62,13 +86,14 @@ export const Divider = ({
|
|
|
62
86
|
({ flex, className }: KeyValue) => {
|
|
63
87
|
return (
|
|
64
88
|
<hr
|
|
65
|
-
style={{ flex }}
|
|
89
|
+
style={{ flex, borderColor: getColor(color), borderStyle: style }}
|
|
66
90
|
className={classNames(
|
|
67
91
|
className,
|
|
68
92
|
vertical && "vertical",
|
|
69
93
|
!flex && "self-stretch",
|
|
70
|
-
vertical
|
|
71
|
-
|
|
94
|
+
vertical
|
|
95
|
+
? "fabric-divider--vertical"
|
|
96
|
+
: "fabric-divider--horizontal",
|
|
72
97
|
)}
|
|
73
98
|
/>
|
|
74
99
|
);
|
|
@@ -79,7 +104,7 @@ export const Divider = ({
|
|
|
79
104
|
return children ? (
|
|
80
105
|
<div
|
|
81
106
|
className={classNames(
|
|
82
|
-
"flex flex-nowrap items-center",
|
|
107
|
+
"flex flex-nowrap items-center fabric-divider",
|
|
83
108
|
vertical && "flex-col",
|
|
84
109
|
className,
|
|
85
110
|
)}
|
|
@@ -88,9 +113,10 @@ export const Divider = ({
|
|
|
88
113
|
<div
|
|
89
114
|
className={classNames(
|
|
90
115
|
"px-2 whitespace-nowrap",
|
|
91
|
-
vertical
|
|
92
|
-
|
|
93
|
-
|
|
116
|
+
vertical
|
|
117
|
+
? "fabric-divider-label--vertical"
|
|
118
|
+
: "fabric-divider-label--horizontal",
|
|
119
|
+
labelClassName,
|
|
94
120
|
"rounded-full text-[0.75em]",
|
|
95
121
|
vertical && "origin-center -rotate-90 z-1",
|
|
96
122
|
)}
|
|
@@ -54,7 +54,6 @@ import {
|
|
|
54
54
|
useState,
|
|
55
55
|
} from "react";
|
|
56
56
|
import { type ChildProp, type RefProp } from "../../types";
|
|
57
|
-
import classes from "./Dropdown.module.css";
|
|
58
57
|
|
|
59
58
|
export interface DropdownProps extends RefProp {
|
|
60
59
|
children: [React.ReactNode, React.ReactNode];
|
|
@@ -222,8 +221,10 @@ const DropdownElement = ({
|
|
|
222
221
|
onClick: (e) => {
|
|
223
222
|
anchor.props.onClick?.(e);
|
|
224
223
|
e.stopPropagation();
|
|
224
|
+
e.preventDefault();
|
|
225
225
|
},
|
|
226
226
|
}),
|
|
227
|
+
"data-inner-clickable": "true",
|
|
227
228
|
"data-dropdown-open": isOpen ? true : undefined,
|
|
228
229
|
ref: innerRef,
|
|
229
230
|
})}
|
|
@@ -237,18 +238,13 @@ const DropdownElement = ({
|
|
|
237
238
|
<FloatingOverlay />
|
|
238
239
|
<FloatingFocusManager context={context} modal>
|
|
239
240
|
<div
|
|
240
|
-
ref={
|
|
241
|
-
refs.setFloating(el);
|
|
242
|
-
el
|
|
243
|
-
?.querySelector<HTMLElement>("input,textarea,button")
|
|
244
|
-
?.focus();
|
|
245
|
-
}}
|
|
241
|
+
ref={refs.setFloating}
|
|
246
242
|
style={{
|
|
247
243
|
minWidth,
|
|
248
244
|
zIndex: "var(--z-popover)",
|
|
249
245
|
...floatingStyles,
|
|
250
246
|
}}
|
|
251
|
-
data-
|
|
247
|
+
data-ref="dropdownBody"
|
|
252
248
|
{...getFloatingProps({
|
|
253
249
|
onClick: (e) => e.stopPropagation(),
|
|
254
250
|
})}
|
|
@@ -256,10 +252,9 @@ const DropdownElement = ({
|
|
|
256
252
|
<div
|
|
257
253
|
role="none"
|
|
258
254
|
className={classNames(
|
|
259
|
-
|
|
255
|
+
"fabric-dropdownBody",
|
|
260
256
|
dropdownClassName,
|
|
261
|
-
!plainDropdown &&
|
|
262
|
-
"shadow-lg shadow-base bg-base ring-1 ring-tint-100",
|
|
257
|
+
!plainDropdown && "shadow-lg bg-base ring-1 ring-tint-100",
|
|
263
258
|
"rounded-capped overflow-auto scroll-thin grid max-h-[70vh]",
|
|
264
259
|
)}
|
|
265
260
|
onMouseUpCapture={tryClosing}
|
|
@@ -271,7 +266,7 @@ const DropdownElement = ({
|
|
|
271
266
|
ref={arrowRef}
|
|
272
267
|
context={context}
|
|
273
268
|
strokeWidth={0.5}
|
|
274
|
-
className="fill-base stroke-
|
|
269
|
+
className="fill-base stroke-dimmed"
|
|
275
270
|
/>
|
|
276
271
|
)}
|
|
277
272
|
</div>
|
|
@@ -282,12 +277,52 @@ const DropdownElement = ({
|
|
|
282
277
|
);
|
|
283
278
|
};
|
|
284
279
|
|
|
280
|
+
/**
|
|
281
|
+
* A component that displays a dropdown menu with an anchor and a panel.
|
|
282
|
+
* It supports various features such as placement, arrow display, click handling,
|
|
283
|
+
* and event handling for opening and closing the dropdown.
|
|
284
|
+
*
|
|
285
|
+
* @param props - Dropdown properties
|
|
286
|
+
* @returns JSX Element
|
|
287
|
+
*
|
|
288
|
+
* @example
|
|
289
|
+
* ```jsx
|
|
290
|
+
* <Dropdown
|
|
291
|
+
* placement="bottom"
|
|
292
|
+
* showArrow
|
|
293
|
+
* closeOnClick
|
|
294
|
+
* fitToParent
|
|
295
|
+
* onOpen={() => console.log("Dropdown opened")}
|
|
296
|
+
* onClose={() => console.log("Dropdown closed")}
|
|
297
|
+
* >
|
|
298
|
+
* <button>Open Dropdown</button>
|
|
299
|
+
* <div>
|
|
300
|
+
* <DropdownDismiss>
|
|
301
|
+
* <button>Dismiss</button>
|
|
302
|
+
* </DropdownDismiss>
|
|
303
|
+
* <p>Dropdown Content</p>
|
|
304
|
+
* </div>
|
|
305
|
+
* </Dropdown>
|
|
306
|
+
* ```
|
|
307
|
+
*
|
|
308
|
+
* @see {@link https://adarshpastakia.github.io/react-fabric/?path=/docs/core-components-dropdown--docs} for more details.
|
|
309
|
+
* @see {@link https://floating-ui.com/docs/react} for more details on Floating UI.
|
|
310
|
+
*/
|
|
285
311
|
export const Dropdown = (props: DropdownProps) => (
|
|
286
312
|
<FloatingTree>
|
|
287
313
|
<DropdownElement {...props} />
|
|
288
314
|
</FloatingTree>
|
|
289
315
|
);
|
|
290
316
|
|
|
317
|
+
/**
|
|
318
|
+
* A component that allows dismissing the dropdown when clicked.
|
|
319
|
+
* It can be used inside the dropdown panel to provide a dismiss area.
|
|
320
|
+
* It supports an optional `dismiss` prop to control whether the dropdown should be dismissed on click.
|
|
321
|
+
*
|
|
322
|
+
* @param children - The children elements to render inside the dismiss area.
|
|
323
|
+
* @param dismiss - Whether to dismiss the dropdown on click (default: true).
|
|
324
|
+
* @returns JSX Element
|
|
325
|
+
*/
|
|
291
326
|
export const DropdownDismiss = ({
|
|
292
327
|
children,
|
|
293
328
|
dismiss = true,
|
|
@@ -23,10 +23,34 @@
|
|
|
23
23
|
|
|
24
24
|
import classNames from "classnames";
|
|
25
25
|
import { type ChildProp, type CssProp } from "../../types";
|
|
26
|
-
import { CoreIcons } from "../../types/icons";
|
|
27
26
|
import { Icon } from "../icon/Icon";
|
|
28
27
|
import { Dropdown, type DropdownProps } from "./Dropdown";
|
|
29
28
|
|
|
29
|
+
/**
|
|
30
|
+
* A dropdown component that displays an icon and tool menu.
|
|
31
|
+
* It can be used to create a dropdown menu that appears when the icon is clicked or hovered over.
|
|
32
|
+
* This component is useful for creating toolbars or action menus in a user interface.
|
|
33
|
+
* It accepts children as menu items and can be styled with additional CSS classes.
|
|
34
|
+
*
|
|
35
|
+
* @param {ChildProp} children - The content to be displayed inside the dropdown.
|
|
36
|
+
* @param {CssProp} className - Additional CSS classes to apply to the dropdown.
|
|
37
|
+
* @param {string} icon - The icon to be displayed in the dropdown.
|
|
38
|
+
* @param {boolean} groupHover - If true, the dropdown will only be visible when the parent group is hovered.
|
|
39
|
+
* @param {DropdownProps} props - Additional properties for the dropdown.
|
|
40
|
+
* @returns {JSX.Element} The rendered DropdownTool component.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```jsx
|
|
44
|
+
* <DropdownTool
|
|
45
|
+
* icon="caret-down"
|
|
46
|
+
* groupHover={true}
|
|
47
|
+
* className="my-dropdown"
|
|
48
|
+
* >
|
|
49
|
+
* <MenuItem>Item 1</MenuItem>
|
|
50
|
+
* <MenuItem>Item 2</MenuItem>
|
|
51
|
+
* </DropdownTool>
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
30
54
|
export const DropdownTool = ({
|
|
31
55
|
children,
|
|
32
56
|
className,
|
|
@@ -45,12 +69,12 @@ export const DropdownTool = ({
|
|
|
45
69
|
return (
|
|
46
70
|
<Dropdown {...props}>
|
|
47
71
|
<Icon
|
|
48
|
-
icon={icon ??
|
|
72
|
+
icon={icon ?? "icon-[mdi--menu-down]"}
|
|
49
73
|
className={classNames(
|
|
74
|
+
"outline bg-tint-50/50 flex-content pointer-events-auto cursor-pointer",
|
|
50
75
|
className,
|
|
51
|
-
"outline bg-base flex-content pointer-events-auto cursor-pointer",
|
|
52
76
|
groupHover &&
|
|
53
|
-
"hidden group-hover:inline-block data-
|
|
77
|
+
"hidden group-hover/tool:inline-block data-dropdown-open:inline-block",
|
|
54
78
|
)}
|
|
55
79
|
/>
|
|
56
80
|
{children}
|
|
@@ -24,7 +24,14 @@
|
|
|
24
24
|
import { isString } from "@react-fabric/utilities";
|
|
25
25
|
import classNames from "classnames";
|
|
26
26
|
import { isValidElement } from "react";
|
|
27
|
-
import {
|
|
27
|
+
import {
|
|
28
|
+
type ChildrenProp,
|
|
29
|
+
type ColorType,
|
|
30
|
+
type CssProp,
|
|
31
|
+
type PaletteType,
|
|
32
|
+
type TestProps,
|
|
33
|
+
} from "../../types";
|
|
34
|
+
import { getColor } from "../../utils";
|
|
28
35
|
import { Icon } from "../icon/Icon";
|
|
29
36
|
|
|
30
37
|
export interface EmptyContentProps
|
|
@@ -47,6 +54,10 @@ export interface EmptyContentProps
|
|
|
47
54
|
* empty icon
|
|
48
55
|
*/
|
|
49
56
|
icon?: string | React.ReactElement;
|
|
57
|
+
/**
|
|
58
|
+
* icon color
|
|
59
|
+
*/
|
|
60
|
+
iconColor?: ColorType | PaletteType;
|
|
50
61
|
}
|
|
51
62
|
|
|
52
63
|
const SizeMap: KeyValue = {
|
|
@@ -94,6 +105,32 @@ const DefaultIcon = () => (
|
|
|
94
105
|
</svg>
|
|
95
106
|
);
|
|
96
107
|
|
|
108
|
+
/**
|
|
109
|
+
* A component that displays a message and an optional icon when there is no content to show.
|
|
110
|
+
* It allows customization of title, message, icon, size, and additional CSS properties.
|
|
111
|
+
* It can also accept children elements for additional actions or information.
|
|
112
|
+
* This component is useful for displaying a friendly message when data is not available,
|
|
113
|
+
* such as in empty states of lists, tables, or other content areas.
|
|
114
|
+
*
|
|
115
|
+
* @param {EmptyContentProps} props - The properties for the EmptyContent component.
|
|
116
|
+
* @returns {JSX.Element} The rendered EmptyContent component.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```jsx
|
|
120
|
+
* <EmptyContent
|
|
121
|
+
* title="No Data Available"
|
|
122
|
+
* message="Please check back later."
|
|
123
|
+
* icon="empty"
|
|
124
|
+
* iconColor="tint-700"
|
|
125
|
+
* size="md"
|
|
126
|
+
* >
|
|
127
|
+
* <Button onClick={() => console.log("Action clicked")}>Retry</Button>
|
|
128
|
+
* </EmptyContent>
|
|
129
|
+
* // Renders an empty content area with a title, message, icon, and a button for retrying the action.
|
|
130
|
+
* ```
|
|
131
|
+
*
|
|
132
|
+
* @see {@link https://adarshpastakia.github.io/react-fabric/?path=/docs/core-components-emptycontent--docs} for more details.
|
|
133
|
+
*/
|
|
97
134
|
export const EmptyContent = ({
|
|
98
135
|
children,
|
|
99
136
|
title,
|
|
@@ -101,6 +138,7 @@ export const EmptyContent = ({
|
|
|
101
138
|
icon,
|
|
102
139
|
className,
|
|
103
140
|
size,
|
|
141
|
+
iconColor,
|
|
104
142
|
...test
|
|
105
143
|
}: EmptyContentProps) => {
|
|
106
144
|
return (
|
|
@@ -116,25 +154,28 @@ export const EmptyContent = ({
|
|
|
116
154
|
}
|
|
117
155
|
{...test}
|
|
118
156
|
>
|
|
119
|
-
<div
|
|
157
|
+
<div
|
|
158
|
+
className="leading-none"
|
|
159
|
+
style={{ fontSize: "4em", color: getColor(iconColor ?? "tint-700") }}
|
|
160
|
+
>
|
|
120
161
|
{isString(icon) && <Icon icon={icon} />}
|
|
121
162
|
{isValidElement(icon) && icon}
|
|
122
163
|
{!icon && <DefaultIcon />}
|
|
123
164
|
</div>
|
|
124
165
|
{title && (
|
|
125
|
-
<
|
|
126
|
-
className="font-medium text-center
|
|
166
|
+
<div
|
|
167
|
+
className="font-medium text-center opacity-85"
|
|
127
168
|
style={{ fontSize: "1.5em" }}
|
|
128
169
|
>
|
|
129
170
|
{title}
|
|
130
|
-
</
|
|
171
|
+
</div>
|
|
131
172
|
)}
|
|
132
|
-
<
|
|
133
|
-
className="font-medium text-center
|
|
173
|
+
<div
|
|
174
|
+
className="font-medium text-center opacity-65"
|
|
134
175
|
style={{ fontSize: "0.875em" }}
|
|
135
176
|
>
|
|
136
177
|
{message}
|
|
137
|
-
</
|
|
178
|
+
</div>
|
|
138
179
|
<div className="flex gap-1 pt-6">{children}</div>
|
|
139
180
|
</div>
|
|
140
181
|
);
|