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