@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
|
@@ -30,15 +30,11 @@ import {
|
|
|
30
30
|
useInteractions,
|
|
31
31
|
useRole,
|
|
32
32
|
} from "@floating-ui/react";
|
|
33
|
+
import { isString } from "@react-fabric/utilities";
|
|
33
34
|
import classNames from "classnames";
|
|
34
|
-
import {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
useEffect,
|
|
38
|
-
type PropsWithChildren,
|
|
39
|
-
} from "react";
|
|
40
|
-
import { Loading } from "../../components/animations/Animations";
|
|
41
|
-
import { Icon } from "../../components/icon/Icon";
|
|
35
|
+
import { isValidElement, useCallback, useEffect } from "react";
|
|
36
|
+
import { LoadingLine } from "../../components/animations/Animations";
|
|
37
|
+
import { getIconProps, Icon, type IconProps } from "../../components/icon/Icon";
|
|
42
38
|
import { Header } from "../../core/headfoot/HeadFoot";
|
|
43
39
|
import { HotKeyWrapper } from "../../hotkeys/HotKeyWrapper";
|
|
44
40
|
import {
|
|
@@ -46,17 +42,11 @@ import {
|
|
|
46
42
|
type CallbackReturn,
|
|
47
43
|
type ChildrenProp,
|
|
48
44
|
type Elements,
|
|
49
|
-
type IconProps,
|
|
50
45
|
type TestProps,
|
|
51
46
|
} from "../../types";
|
|
52
|
-
import { CoreIcons } from "../../types/icons";
|
|
53
|
-
import classes from "./Flyout.module.css";
|
|
54
47
|
|
|
55
|
-
export interface FlyoutProps
|
|
56
|
-
|
|
57
|
-
TestProps,
|
|
58
|
-
IconProps,
|
|
59
|
-
ChildrenProp {
|
|
48
|
+
export interface FlyoutProps extends AriaProps, TestProps, ChildrenProp {
|
|
49
|
+
icon?: IconProps;
|
|
60
50
|
/**
|
|
61
51
|
* flyout alignment
|
|
62
52
|
*/
|
|
@@ -93,6 +83,10 @@ export interface FlyoutProps
|
|
|
93
83
|
* minimum width
|
|
94
84
|
*/
|
|
95
85
|
minWidth?: string | number;
|
|
86
|
+
/**
|
|
87
|
+
* portal root element
|
|
88
|
+
*/
|
|
89
|
+
root?: HTMLElement;
|
|
96
90
|
/**
|
|
97
91
|
* hide backdrop mask
|
|
98
92
|
*/
|
|
@@ -113,10 +107,7 @@ export interface FlyoutProps
|
|
|
113
107
|
|
|
114
108
|
export const Flyout = ({
|
|
115
109
|
icon,
|
|
116
|
-
iconBg,
|
|
117
|
-
iconColor,
|
|
118
110
|
iconClassName,
|
|
119
|
-
rtlFlip,
|
|
120
111
|
title,
|
|
121
112
|
actions,
|
|
122
113
|
closeOnClick,
|
|
@@ -128,6 +119,7 @@ export const Flyout = ({
|
|
|
128
119
|
size,
|
|
129
120
|
width,
|
|
130
121
|
minWidth,
|
|
122
|
+
root,
|
|
131
123
|
hideMask,
|
|
132
124
|
align = "start",
|
|
133
125
|
...aria
|
|
@@ -140,6 +132,7 @@ export const Flyout = ({
|
|
|
140
132
|
});
|
|
141
133
|
const dismiss = useDismiss(context, {
|
|
142
134
|
outsidePressEvent: "mousedown",
|
|
135
|
+
outsidePress: !hideMask,
|
|
143
136
|
escapeKey: true,
|
|
144
137
|
});
|
|
145
138
|
const role = useRole(context);
|
|
@@ -173,9 +166,6 @@ export const Flyout = ({
|
|
|
173
166
|
useEffect(() => {
|
|
174
167
|
setTimeout(() => {
|
|
175
168
|
refs.floating.current && (refs.floating.current.dataset.show = "true");
|
|
176
|
-
refs.floating.current
|
|
177
|
-
?.querySelector<HTMLElement>('[role="dialog"]')
|
|
178
|
-
?.focus();
|
|
179
169
|
}, 50);
|
|
180
170
|
}, []);
|
|
181
171
|
|
|
@@ -193,91 +183,76 @@ export const Flyout = ({
|
|
|
193
183
|
[closeOnClick, handleClose],
|
|
194
184
|
);
|
|
195
185
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
return (
|
|
186
|
+
return (
|
|
187
|
+
<FloatingPortal root={root}>
|
|
188
|
+
{!hideMask && (
|
|
201
189
|
<FloatingOverlay
|
|
202
190
|
lockScroll
|
|
203
|
-
style={{ zIndex: "var(--z-overlay-mask)" }}
|
|
204
|
-
className="bg-
|
|
191
|
+
style={{ zIndex: "var(--z-overlay-mask)", overflow: "hidden" }}
|
|
192
|
+
className="bg-tint-100/10 backdrop-blur-sm transition-all"
|
|
193
|
+
/>
|
|
194
|
+
)}
|
|
195
|
+
<FloatingFocusManager context={context}>
|
|
196
|
+
<div
|
|
197
|
+
data-align={align}
|
|
198
|
+
className={classNames(
|
|
199
|
+
"fabric-flyout",
|
|
200
|
+
"fixed inset-y-0 overflow-hidden flex flex-col flex-nowrap pointer-events-auto shadow-xl",
|
|
201
|
+
align === "start" ? "start-0" : "end-0",
|
|
202
|
+
size === "sm" && "w-[20rem]",
|
|
203
|
+
size === "md" && "w-[40rem]",
|
|
204
|
+
size === "lg" && "w-[60vw]",
|
|
205
|
+
size === "xl" && "w-[80vw]",
|
|
206
|
+
)}
|
|
207
|
+
style={{
|
|
208
|
+
width,
|
|
209
|
+
minWidth,
|
|
210
|
+
}}
|
|
211
|
+
onMouseUpCapture={tryClosing}
|
|
212
|
+
ref={refs.setFloating}
|
|
213
|
+
{...getFloatingProps()}
|
|
214
|
+
{...aria}
|
|
215
|
+
{...aria}
|
|
205
216
|
>
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
217
|
+
<HotKeyWrapper>
|
|
218
|
+
<Header
|
|
219
|
+
flex
|
|
220
|
+
align="center"
|
|
221
|
+
className={classNames("fabric-flyoutHeader", headerClassName)}
|
|
222
|
+
>
|
|
223
|
+
{isString(icon) && (
|
|
224
|
+
<Icon
|
|
225
|
+
className={classNames(iconClassName, "p-1")}
|
|
226
|
+
{...getIconProps(icon)}
|
|
227
|
+
/>
|
|
228
|
+
)}
|
|
229
|
+
{isValidElement(icon) && icon}
|
|
230
|
+
<label className="flex-1 truncate py-2 px-1">{title}</label>
|
|
231
|
+
{actions}
|
|
232
|
+
<Icon
|
|
233
|
+
data-ref="panelClose"
|
|
234
|
+
className={classNames(
|
|
235
|
+
"fabric-panelAction",
|
|
236
|
+
"cursor-pointer p-1 text-xl self-center",
|
|
237
|
+
)}
|
|
238
|
+
icon="icon-[mdi--close]"
|
|
239
|
+
onClick={() => handleClose(false)}
|
|
240
|
+
/>
|
|
241
|
+
</Header>
|
|
242
|
+
{loading && <LoadingLine />}
|
|
218
243
|
<div
|
|
219
|
-
|
|
244
|
+
role="dialog"
|
|
220
245
|
className={classNames(
|
|
221
|
-
|
|
222
|
-
"
|
|
223
|
-
align === "start" ? "start-0" : "end-0",
|
|
224
|
-
size === "sm" && "w-[20rem]",
|
|
225
|
-
size === "md" && "w-[40rem]",
|
|
226
|
-
size === "lg" && "w-[60vw]",
|
|
227
|
-
size === "xl" && "w-[80vw]",
|
|
246
|
+
"fabric-flyoutBody",
|
|
247
|
+
"flex-1 grid overflow-hidden",
|
|
228
248
|
)}
|
|
229
|
-
|
|
230
|
-
width,
|
|
231
|
-
minWidth,
|
|
232
|
-
}}
|
|
233
|
-
onMouseUpCapture={tryClosing}
|
|
234
|
-
ref={refs.setFloating}
|
|
235
|
-
{...getFloatingProps()}
|
|
236
|
-
{...aria}
|
|
237
|
-
{...aria}
|
|
249
|
+
{...({ tabIndex: 0 } as AnyObject)}
|
|
238
250
|
>
|
|
239
|
-
|
|
240
|
-
<Header
|
|
241
|
-
flex
|
|
242
|
-
className={classNames(classes.flyoutHeader, headerClassName)}
|
|
243
|
-
>
|
|
244
|
-
{icon && (
|
|
245
|
-
<Icon
|
|
246
|
-
icon={icon}
|
|
247
|
-
bg={iconBg}
|
|
248
|
-
color={iconColor}
|
|
249
|
-
className={classNames(iconClassName, "p-1")}
|
|
250
|
-
rtlFlip={rtlFlip}
|
|
251
|
-
/>
|
|
252
|
-
)}
|
|
253
|
-
<label className="flex-1 truncate py-2 px-1">{title}</label>
|
|
254
|
-
{actions}
|
|
255
|
-
<Icon
|
|
256
|
-
data-ref="panelClose"
|
|
257
|
-
className={classNames(
|
|
258
|
-
classes.panelAction,
|
|
259
|
-
"cursor-pointer p-1 text-xl self-stretch",
|
|
260
|
-
)}
|
|
261
|
-
icon={CoreIcons.close}
|
|
262
|
-
onClick={() => handleClose(false)}
|
|
263
|
-
/>
|
|
264
|
-
</Header>
|
|
265
|
-
{loading && <Loading />}
|
|
266
|
-
<div
|
|
267
|
-
role="dialog"
|
|
268
|
-
className={classNames(
|
|
269
|
-
classes.flyoutBody,
|
|
270
|
-
"flex-1 grid overflow-hidden",
|
|
271
|
-
)}
|
|
272
|
-
{...({ tabIndex: 0 } as AnyObject)}
|
|
273
|
-
>
|
|
274
|
-
{children}
|
|
275
|
-
</div>
|
|
276
|
-
</HotKeyWrapper>
|
|
251
|
+
{children}
|
|
277
252
|
</div>
|
|
278
|
-
</
|
|
279
|
-
</
|
|
280
|
-
</
|
|
253
|
+
</HotKeyWrapper>
|
|
254
|
+
</div>
|
|
255
|
+
</FloatingFocusManager>
|
|
281
256
|
</FloatingPortal>
|
|
282
257
|
);
|
|
283
258
|
};
|
|
@@ -24,11 +24,22 @@
|
|
|
24
24
|
import classNames from "classnames";
|
|
25
25
|
import { useCallback, useLayoutEffect, useRef } from "react";
|
|
26
26
|
import { Icon } from "../../components/icon/Icon";
|
|
27
|
-
import { type
|
|
28
|
-
import {
|
|
29
|
-
import classes from "./Message.module.css";
|
|
27
|
+
import { type ColorState, type Elements } from "../../types";
|
|
28
|
+
import { getColor } from "../../utils";
|
|
30
29
|
|
|
31
|
-
export interface MessageProps
|
|
30
|
+
export interface MessageProps {
|
|
31
|
+
/**
|
|
32
|
+
* svg path / webfont className / 1-4 letter text
|
|
33
|
+
*/
|
|
34
|
+
icon: string;
|
|
35
|
+
/**
|
|
36
|
+
* icon image source URL, if failed to load then shows icon
|
|
37
|
+
*/
|
|
38
|
+
iconSrc?: string;
|
|
39
|
+
/**
|
|
40
|
+
* flip icon in rtl
|
|
41
|
+
*/
|
|
42
|
+
rtlFlip?: boolean;
|
|
32
43
|
/**
|
|
33
44
|
* message title
|
|
34
45
|
*/
|
|
@@ -40,7 +51,7 @@ export interface MessageProps extends Omit<IconProps, "iconBg" | "iconColor"> {
|
|
|
40
51
|
/**
|
|
41
52
|
* theme color
|
|
42
53
|
*/
|
|
43
|
-
color?:
|
|
54
|
+
color?: ColorState;
|
|
44
55
|
/**
|
|
45
56
|
* extra action button
|
|
46
57
|
*/
|
|
@@ -52,9 +63,11 @@ export const Message = ({
|
|
|
52
63
|
message,
|
|
53
64
|
color,
|
|
54
65
|
icon,
|
|
66
|
+
iconSrc,
|
|
55
67
|
rtlFlip,
|
|
56
68
|
actions,
|
|
57
69
|
// @ts-expect-error internal prop
|
|
70
|
+
// eslint-disable-next-line react/prop-types --- IGNORE ---
|
|
58
71
|
onClose,
|
|
59
72
|
}: MessageProps) => {
|
|
60
73
|
const elRef = useRef<HTMLDivElement>(null);
|
|
@@ -77,14 +90,20 @@ export const Message = ({
|
|
|
77
90
|
return (
|
|
78
91
|
<div
|
|
79
92
|
className={classNames(
|
|
80
|
-
|
|
81
|
-
color ? getBgClass(color + "-300") : "bg-invert",
|
|
82
|
-
color ? getColorClass(color + "-900") : "text-invert",
|
|
93
|
+
"fabric-message",
|
|
83
94
|
"flex flex-nowrap gap-1 px-8 relative justify-center max-w-md pointer-events-auto rounded mb-2 select-none",
|
|
84
95
|
)}
|
|
96
|
+
style={{
|
|
97
|
+
backgroundColor: color
|
|
98
|
+
? getColor(color + "-300")
|
|
99
|
+
: "var(--bg-color-invert)",
|
|
100
|
+
color: color ? getColor(color + "-900") : "var(--text-color-invert)",
|
|
101
|
+
}}
|
|
85
102
|
ref={elRef}
|
|
86
103
|
>
|
|
87
|
-
{icon &&
|
|
104
|
+
{icon && (
|
|
105
|
+
<Icon icon={icon} iconSrc={iconSrc} size="md" rtlFlip={rtlFlip} />
|
|
106
|
+
)}
|
|
88
107
|
{title && <div className="font-medium">{title}</div>}
|
|
89
108
|
<div className="truncate flex-initial">{message}</div>
|
|
90
109
|
{actions && (
|
|
@@ -30,10 +30,11 @@ import {
|
|
|
30
30
|
useInteractions,
|
|
31
31
|
useRole,
|
|
32
32
|
} from "@floating-ui/react";
|
|
33
|
+
import { isString } from "@react-fabric/utilities";
|
|
33
34
|
import classNames from "classnames";
|
|
34
|
-
import { useCallback, useEffect } from "react";
|
|
35
|
-
import {
|
|
36
|
-
import { Icon } from "../../components/icon/Icon";
|
|
35
|
+
import { isValidElement, useCallback, useEffect } from "react";
|
|
36
|
+
import { LoadingLine } from "../../components/animations/Animations";
|
|
37
|
+
import { getIconProps, Icon, type IconProps } from "../../components/icon/Icon";
|
|
37
38
|
import { Header } from "../../core/headfoot/HeadFoot";
|
|
38
39
|
import { HotKeyWrapper } from "../../hotkeys/HotKeyWrapper";
|
|
39
40
|
import {
|
|
@@ -41,17 +42,11 @@ import {
|
|
|
41
42
|
type CallbackReturn,
|
|
42
43
|
type ChildrenProp,
|
|
43
44
|
type Elements,
|
|
44
|
-
type IconProps,
|
|
45
45
|
type TestProps,
|
|
46
46
|
} from "../../types";
|
|
47
|
-
import { CoreIcons } from "../../types/icons";
|
|
48
|
-
import classes from "./Modal.module.css";
|
|
49
47
|
|
|
50
|
-
export interface ModalProps
|
|
51
|
-
|
|
52
|
-
TestProps,
|
|
53
|
-
IconProps,
|
|
54
|
-
ChildrenProp {
|
|
48
|
+
export interface ModalProps extends AriaProps, TestProps, ChildrenProp {
|
|
49
|
+
icon?: IconProps;
|
|
55
50
|
/**
|
|
56
51
|
* header className
|
|
57
52
|
*/
|
|
@@ -92,6 +87,14 @@ export interface ModalProps
|
|
|
92
87
|
* minimum width
|
|
93
88
|
*/
|
|
94
89
|
minWidth?: string | number;
|
|
90
|
+
/**
|
|
91
|
+
* portal root element
|
|
92
|
+
*/
|
|
93
|
+
root?: HTMLElement;
|
|
94
|
+
/**
|
|
95
|
+
* hide mask background
|
|
96
|
+
*/
|
|
97
|
+
hideMask?: boolean;
|
|
95
98
|
/**
|
|
96
99
|
* close handler
|
|
97
100
|
*/
|
|
@@ -104,10 +107,7 @@ export interface ModalProps
|
|
|
104
107
|
|
|
105
108
|
export const Modal = ({
|
|
106
109
|
icon,
|
|
107
|
-
iconBg,
|
|
108
|
-
iconColor,
|
|
109
110
|
iconClassName,
|
|
110
|
-
rtlFlip,
|
|
111
111
|
title,
|
|
112
112
|
actions,
|
|
113
113
|
headerClassName,
|
|
@@ -115,7 +115,9 @@ export const Modal = ({
|
|
|
115
115
|
onBeforeClose,
|
|
116
116
|
children,
|
|
117
117
|
loading,
|
|
118
|
+
root,
|
|
118
119
|
size,
|
|
120
|
+
hideMask,
|
|
119
121
|
width,
|
|
120
122
|
height,
|
|
121
123
|
minHeight,
|
|
@@ -163,27 +165,31 @@ export const Modal = ({
|
|
|
163
165
|
useEffect(() => {
|
|
164
166
|
setTimeout(() => {
|
|
165
167
|
refs.floating.current && (refs.floating.current.dataset.show = "true");
|
|
166
|
-
refs.floating.current
|
|
167
|
-
?.querySelector<HTMLElement>("[role='dialog']")
|
|
168
|
-
?.focus();
|
|
169
168
|
}, 50);
|
|
170
169
|
}, []);
|
|
171
170
|
|
|
172
171
|
return (
|
|
173
|
-
<FloatingPortal>
|
|
172
|
+
<FloatingPortal root={root}>
|
|
174
173
|
<FloatingOverlay
|
|
175
174
|
lockScroll
|
|
176
|
-
style={{
|
|
177
|
-
|
|
175
|
+
style={{
|
|
176
|
+
zIndex: "var(--z-overlay-mask)",
|
|
177
|
+
position: "absolute",
|
|
178
|
+
overflow: "hidden",
|
|
179
|
+
}}
|
|
180
|
+
className={classNames(
|
|
181
|
+
"grid place-items-center p-16",
|
|
182
|
+
!hideMask && "bg-tint-100/20 backdrop-blur-sm",
|
|
183
|
+
)}
|
|
178
184
|
>
|
|
179
185
|
<FloatingFocusManager context={context}>
|
|
180
186
|
<dialog
|
|
181
187
|
className={classNames(
|
|
182
|
-
|
|
188
|
+
"fabric-modal",
|
|
183
189
|
"rounded-capped relative overflow-hidden flex flex-col flex-nowrap",
|
|
184
|
-
"ring-
|
|
190
|
+
"ring-2 ring-offset-2 ring-tint-100 focus-within:ring-primary-300 shadow-xl",
|
|
185
191
|
size === "sm" && "w-[20rem]",
|
|
186
|
-
size === "md" && "w-
|
|
192
|
+
size === "md" && "w-160",
|
|
187
193
|
size === "lg" && "w-[60vw]",
|
|
188
194
|
size === "xl" && "w-[80vw]",
|
|
189
195
|
size === "screen" && "w-screen h-screen",
|
|
@@ -201,34 +207,33 @@ export const Modal = ({
|
|
|
201
207
|
<HotKeyWrapper>
|
|
202
208
|
<Header
|
|
203
209
|
flex
|
|
204
|
-
|
|
210
|
+
align="center"
|
|
211
|
+
className={classNames("fabric-modalHeader", headerClassName)}
|
|
205
212
|
>
|
|
206
|
-
{icon && (
|
|
213
|
+
{isString(icon) && (
|
|
207
214
|
<Icon
|
|
208
|
-
icon={icon}
|
|
209
|
-
bg={iconBg}
|
|
210
|
-
color={iconColor}
|
|
211
215
|
className={classNames(iconClassName, "p-1")}
|
|
212
|
-
|
|
216
|
+
{...getIconProps(icon)}
|
|
213
217
|
/>
|
|
214
218
|
)}
|
|
219
|
+
{isValidElement(icon) && icon}
|
|
215
220
|
<label className="flex-1 truncate py-2 px-1">{title}</label>
|
|
216
221
|
{actions}
|
|
217
222
|
<Icon
|
|
218
223
|
data-ref="panelClose"
|
|
219
224
|
className={classNames(
|
|
220
|
-
|
|
221
|
-
"cursor-pointer p-1 text-xl self-
|
|
225
|
+
"fabric-panelAction",
|
|
226
|
+
"cursor-pointer p-1 text-xl self-center",
|
|
222
227
|
)}
|
|
223
|
-
icon=
|
|
228
|
+
icon="icon-[mdi--close]"
|
|
224
229
|
onClick={() => handleClose(false)}
|
|
225
230
|
/>
|
|
226
231
|
</Header>
|
|
227
|
-
{loading && <
|
|
232
|
+
{loading && <LoadingLine />}
|
|
228
233
|
<div
|
|
229
234
|
role="dialog"
|
|
230
235
|
className={classNames(
|
|
231
|
-
|
|
236
|
+
"fabric-modalBody",
|
|
232
237
|
"flex-1 grid overflow-hidden",
|
|
233
238
|
)}
|
|
234
239
|
{...({ tabIndex: 0 } as AnyObject)}
|
|
@@ -27,16 +27,26 @@ import { useTranslation } from "react-i18next";
|
|
|
27
27
|
import { AnimationIndicator } from "../../components/animations/Animations";
|
|
28
28
|
import { Button } from "../../components/button/Button";
|
|
29
29
|
import { Icon } from "../../components/icon/Icon";
|
|
30
|
-
import { type
|
|
31
|
-
import {
|
|
32
|
-
import { getBgClass, getBorderClass, getColorClass } from "../../utils";
|
|
33
|
-
import classes from "./Toast.module.css";
|
|
30
|
+
import { type ColorState, type Elements } from "../../types";
|
|
31
|
+
import { getColor } from "../../utils";
|
|
34
32
|
|
|
35
|
-
export interface ToastProps
|
|
33
|
+
export interface ToastProps {
|
|
36
34
|
/**
|
|
37
35
|
* toast type
|
|
38
36
|
*/
|
|
39
37
|
type?: "alert" | "confirm";
|
|
38
|
+
/**
|
|
39
|
+
* svg path / webfont className / 1-4 letter text
|
|
40
|
+
*/
|
|
41
|
+
icon?: string;
|
|
42
|
+
/**
|
|
43
|
+
* icon image source URL, if failed to load then shows icon
|
|
44
|
+
*/
|
|
45
|
+
iconSrc?: string;
|
|
46
|
+
/**
|
|
47
|
+
* flip icon in rtl
|
|
48
|
+
*/
|
|
49
|
+
rtlFlip?: boolean;
|
|
40
50
|
/**
|
|
41
51
|
* toast title
|
|
42
52
|
*/
|
|
@@ -48,7 +58,7 @@ export interface ToastProps extends Omit<IconProps, "iconBg" | "iconColor"> {
|
|
|
48
58
|
/**
|
|
49
59
|
* theme color
|
|
50
60
|
*/
|
|
51
|
-
color?:
|
|
61
|
+
color?: ColorState;
|
|
52
62
|
/**
|
|
53
63
|
* extra action button
|
|
54
64
|
*/
|
|
@@ -68,11 +78,14 @@ export const Toast = ({
|
|
|
68
78
|
message,
|
|
69
79
|
color = "primary",
|
|
70
80
|
icon,
|
|
81
|
+
iconSrc,
|
|
71
82
|
rtlFlip,
|
|
72
83
|
actions,
|
|
73
84
|
// @ts-expect-error internal prop
|
|
85
|
+
// eslint-disable-next-line react/prop-types --- IGNORE ---
|
|
74
86
|
onClose,
|
|
75
87
|
// @ts-expect-error internal prop
|
|
88
|
+
// eslint-disable-next-line react/prop-types --- IGNORE ---
|
|
76
89
|
onCloseAll,
|
|
77
90
|
type,
|
|
78
91
|
okLabel,
|
|
@@ -83,39 +96,30 @@ export const Toast = ({
|
|
|
83
96
|
const iconType = useMemo(() => {
|
|
84
97
|
if (icon)
|
|
85
98
|
return (
|
|
86
|
-
<Icon
|
|
99
|
+
<Icon
|
|
100
|
+
icon={icon}
|
|
101
|
+
iconSrc={iconSrc}
|
|
102
|
+
size="md"
|
|
103
|
+
rtlFlip={rtlFlip}
|
|
104
|
+
color={color + "-600"}
|
|
105
|
+
/>
|
|
87
106
|
);
|
|
88
107
|
switch (color) {
|
|
89
108
|
case "danger":
|
|
90
|
-
return
|
|
91
|
-
<AnimationIndicator
|
|
92
|
-
type="cross"
|
|
93
|
-
className={getColorClass(color + "-600")}
|
|
94
|
-
/>
|
|
95
|
-
);
|
|
109
|
+
return <AnimationIndicator type="cross" color={"danger-600"} />;
|
|
96
110
|
case "success":
|
|
97
|
-
return
|
|
98
|
-
<AnimationIndicator
|
|
99
|
-
type="check"
|
|
100
|
-
className={getColorClass(color + "-600")}
|
|
101
|
-
/>
|
|
102
|
-
);
|
|
111
|
+
return <AnimationIndicator type="check" color={"success-600"} />;
|
|
103
112
|
case "warning":
|
|
104
|
-
return
|
|
105
|
-
<AnimationIndicator
|
|
106
|
-
type="exclaim"
|
|
107
|
-
className={getColorClass(color + "-600")}
|
|
108
|
-
/>
|
|
109
|
-
);
|
|
113
|
+
return <AnimationIndicator type="exclaim" color={"warning-600"} />;
|
|
110
114
|
default:
|
|
111
115
|
return (
|
|
112
116
|
<AnimationIndicator
|
|
113
117
|
type={type === "confirm" ? "question" : "info"}
|
|
114
|
-
|
|
118
|
+
color={`${color}-600`}
|
|
115
119
|
/>
|
|
116
120
|
);
|
|
117
121
|
}
|
|
118
|
-
}, [color, type, icon]);
|
|
122
|
+
}, [color, type, icon, iconSrc, rtlFlip]);
|
|
119
123
|
|
|
120
124
|
const elRef = useRef<HTMLDivElement>(null);
|
|
121
125
|
const handleClose = useCallback(
|
|
@@ -138,22 +142,29 @@ export const Toast = ({
|
|
|
138
142
|
<div
|
|
139
143
|
role="alert"
|
|
140
144
|
className={classNames(
|
|
141
|
-
|
|
142
|
-
getBorderClass(color + "-300"),
|
|
145
|
+
"fabric-toast",
|
|
143
146
|
"flex flex-nowrap max-w-sm bg-base min-w-72 border pointer-events-auto relative overflow-hidden rounded-capped mt-4 select-none",
|
|
144
147
|
)}
|
|
148
|
+
style={{
|
|
149
|
+
borderColor: getColor(color + "-300"),
|
|
150
|
+
}}
|
|
145
151
|
ref={elRef}
|
|
146
152
|
>
|
|
147
153
|
<div
|
|
148
|
-
className={classNames("flex-initial p-2"
|
|
154
|
+
className={classNames("flex-initial p-2")}
|
|
155
|
+
style={{
|
|
156
|
+
backgroundColor: getColor(color + "-300"),
|
|
157
|
+
}}
|
|
149
158
|
>
|
|
150
159
|
{iconType}
|
|
151
160
|
</div>
|
|
152
161
|
<div
|
|
153
162
|
className={classNames(
|
|
154
|
-
getBgClass(color + "-50/50"),
|
|
155
163
|
"flex flex-col flex-1 flex-nowrap overflow-hidden p-2",
|
|
156
164
|
)}
|
|
165
|
+
style={{
|
|
166
|
+
backgroundColor: getColor(color + "-50"),
|
|
167
|
+
}}
|
|
157
168
|
>
|
|
158
169
|
<div className="flex flex-nowrap gap-2 items-start">
|
|
159
170
|
<div className="font-medium flex-1">{title}</div>
|
|
@@ -163,7 +174,7 @@ export const Toast = ({
|
|
|
163
174
|
variant="link"
|
|
164
175
|
className="m-0"
|
|
165
176
|
color={color}
|
|
166
|
-
icon=
|
|
177
|
+
icon="icon-[mdi--close-box-multiple-outline]"
|
|
167
178
|
aria-label="close-all"
|
|
168
179
|
onClick={onCloseAll}
|
|
169
180
|
/>
|
|
@@ -172,7 +183,7 @@ export const Toast = ({
|
|
|
172
183
|
variant="link"
|
|
173
184
|
className="m-0"
|
|
174
185
|
color={color}
|
|
175
|
-
icon=
|
|
186
|
+
icon="icon-[mdi--close]"
|
|
176
187
|
aria-label="close"
|
|
177
188
|
onClick={() => handleClose(false)}
|
|
178
189
|
/>
|