@react-fabric/core 1.0.0-beta.4 → 1.0.0-beta.41
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} +49 -44
- package/{src/components/button/Button.module.css → css/components/_button.css} +68 -78
- package/{src/components/card/Card.module.css → css/components/_card.css} +32 -28
- package/{src/components/chip/Chip.module.css → css/components/_chip.css} +15 -11
- package/{src/components/collapsable/Collapsable.module.css → css/components/_collapsable.css} +3 -3
- package/css/components/_divider.css +32 -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} +8 -5
- package/{src/components/media/Media.module.css → css/components/_media.css} +17 -17
- package/{src/components/menu/Menu.module.css → css/components/_menu.css} +15 -16
- 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} +6 -6
- 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/{src/components/tabpanel/TabPanel.module.css → css/components/_tabPanel.css} +73 -84
- 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} +25 -18
- package/{src/core/aside/Aside.module.css → css/core/_aside.css} +42 -42
- 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 +41 -223
- package/css/reset/_text.css +14 -29
- package/css/reset/_theme.css +315 -32
- 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 +530 -0
- package/css/theme/index.css +44 -0
- package/dist/cjs/components/actionLabel/ActionLabel.js +3 -3
- package/dist/cjs/components/animations/Animations.js +29 -18
- package/dist/cjs/components/avatar/Avatar.js +10 -13
- package/dist/cjs/components/avatar/AvatarGroup.js +3 -3
- package/dist/cjs/components/badge/Badge.js +5 -5
- package/dist/cjs/components/breadcrumbs/Breadcrumbs.js +10 -8
- package/dist/cjs/components/button/Button.js +18 -14
- package/dist/cjs/components/button/ButtonGroup.js +4 -3
- package/dist/cjs/components/button/ConfirmButton.js +7 -2
- package/dist/cjs/components/button/ToggleButtonGroup.js +3 -3
- package/dist/cjs/components/callout/Callout.js +15 -4
- package/dist/cjs/components/card/Card.js +8 -7
- package/dist/cjs/components/card/CardCover.js +10 -5
- package/dist/cjs/components/chip/Chip.js +11 -7
- package/dist/cjs/components/collapsable/Collapsable.js +5 -5
- package/dist/cjs/components/divider/Divider.js +10 -7
- package/dist/cjs/components/dropdown/Dropdown.js +5 -4
- package/dist/cjs/components/dropdown/DropdownTool.js +4 -3
- package/dist/cjs/components/empty/EmptyContent.js +6 -3
- package/dist/cjs/components/icon/Icon.js +15 -14
- package/dist/cjs/components/media/Media.js +116 -75
- package/dist/cjs/components/menu/ContextMenu.js +30 -10
- package/dist/cjs/components/menu/Menu.js +39 -20
- package/dist/cjs/components/menu/MenuItem.js +30 -16
- package/dist/cjs/components/meter/Meter.js +2 -3
- package/dist/cjs/components/navigator/Navigator.js +16 -9
- package/dist/cjs/components/panel/Panel.js +10 -9
- package/dist/cjs/components/panel/PanelGroup.js +1 -2
- package/dist/cjs/components/progress/ProgressBar.js +6 -5
- package/dist/cjs/components/progress/ProgressCircle.js +6 -4
- package/dist/cjs/components/tabpanel/Tab.js +58 -38
- package/dist/cjs/components/tabpanel/TabPanel.js +20 -16
- package/dist/cjs/core/aside/Aside.js +11 -10
- package/dist/cjs/core/boundary/ErrorBoundary.js +6 -7
- package/dist/cjs/core/boundary/ErrorIcon.js +1 -2
- package/dist/cjs/core/content/Content.js +9 -7
- package/dist/cjs/core/headfoot/HeadFoot.js +2 -20
- package/dist/cjs/core/page/Page.js +3 -3
- package/dist/cjs/core/responsive/Responsive.js +3 -4
- package/dist/cjs/core/section/Section.js +1 -2
- package/dist/cjs/core/theme/ThemeProvider.js +7 -8
- package/dist/cjs/core/viewport/Viewport.js +4 -2
- package/dist/cjs/hooks/useNavigator.js +6 -4
- package/dist/cjs/hotkeys/HotKeyLabel.js +1 -1
- package/dist/cjs/hotkeys/HotKeyWrapper.js +3 -1
- package/dist/cjs/index.js +6 -2
- package/dist/cjs/overlays/alert/Alert.js +19 -13
- package/dist/cjs/overlays/flyout/Flyout.js +49 -60
- package/dist/cjs/overlays/message/Message.js +6 -3
- package/dist/cjs/overlays/modal/Modal.js +11 -11
- package/dist/cjs/overlays/toast/Toast.js +17 -9
- package/dist/cjs/overlays/tooltip/Tooltip.js +20 -8
- package/dist/cjs/types/icons.js +4 -0
- package/dist/cjs/typography/Abbr.js +2 -3
- package/dist/cjs/typography/{Link.js → Anchor.js} +5 -4
- package/dist/cjs/typography/Mark.js +2 -3
- package/dist/cjs/typography/Text.js +3 -4
- package/dist/cjs/typography/Title.js +3 -3
- package/dist/cjs/utils/cloneElement.js +44 -0
- package/dist/cjs/utils/getColor.js +1 -18
- package/dist/esm/components/actionLabel/ActionLabel.js +3 -3
- package/dist/esm/components/animations/Animations.js +30 -19
- package/dist/esm/components/avatar/Avatar.js +11 -14
- package/dist/esm/components/avatar/AvatarGroup.js +3 -3
- package/dist/esm/components/badge/Badge.js +5 -5
- package/dist/esm/components/breadcrumbs/Breadcrumbs.js +10 -8
- package/dist/esm/components/button/Button.js +18 -14
- package/dist/esm/components/button/ButtonGroup.js +5 -4
- package/dist/esm/components/button/ConfirmButton.js +7 -2
- package/dist/esm/components/button/ToggleButtonGroup.js +4 -4
- package/dist/esm/components/callout/Callout.js +15 -4
- package/dist/esm/components/card/Card.js +8 -7
- package/dist/esm/components/card/CardCover.js +10 -5
- package/dist/esm/components/chip/Chip.js +12 -8
- package/dist/esm/components/collapsable/Collapsable.js +5 -5
- package/dist/esm/components/divider/Divider.js +11 -8
- package/dist/esm/components/dropdown/Dropdown.js +5 -4
- package/dist/esm/components/dropdown/DropdownTool.js +4 -3
- package/dist/esm/components/empty/EmptyContent.js +6 -3
- package/dist/esm/components/icon/Icon.js +15 -14
- package/dist/esm/components/media/Media.js +117 -76
- package/dist/esm/components/menu/ContextMenu.js +32 -12
- package/dist/esm/components/menu/Menu.js +41 -22
- package/dist/esm/components/menu/MenuItem.js +24 -10
- package/dist/esm/components/meter/Meter.js +2 -3
- package/dist/esm/components/navigator/Navigator.js +16 -9
- package/dist/esm/components/panel/Panel.js +10 -9
- package/dist/esm/components/panel/PanelGroup.js +1 -2
- package/dist/esm/components/progress/ProgressBar.js +6 -5
- package/dist/esm/components/progress/ProgressCircle.js +6 -4
- package/dist/esm/components/tabpanel/Tab.js +59 -39
- package/dist/esm/components/tabpanel/TabPanel.js +20 -16
- package/dist/esm/core/aside/Aside.js +11 -10
- package/dist/esm/core/boundary/ErrorBoundary.js +6 -7
- package/dist/esm/core/boundary/ErrorIcon.js +1 -2
- package/dist/esm/core/content/Content.js +9 -7
- package/dist/esm/core/headfoot/HeadFoot.js +2 -20
- package/dist/esm/core/page/Page.js +3 -3
- package/dist/esm/core/responsive/Responsive.js +3 -4
- package/dist/esm/core/section/Section.js +1 -2
- package/dist/esm/core/theme/ThemeProvider.js +7 -8
- package/dist/esm/core/viewport/Viewport.js +4 -2
- package/dist/esm/hooks/useNavigator.js +7 -5
- package/dist/esm/hotkeys/HotKeyLabel.js +1 -1
- package/dist/esm/hotkeys/HotKeyWrapper.js +3 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/overlays/alert/Alert.js +20 -14
- package/dist/esm/overlays/flyout/Flyout.js +52 -63
- package/dist/esm/overlays/message/Message.js +7 -4
- package/dist/esm/overlays/modal/Modal.js +12 -12
- package/dist/esm/overlays/toast/Toast.js +18 -10
- package/dist/esm/overlays/tooltip/Tooltip.js +20 -8
- package/dist/esm/types/icons.js +4 -0
- package/dist/esm/typography/Abbr.js +2 -3
- package/dist/esm/typography/{Link.js → Anchor.js} +6 -5
- package/dist/esm/typography/Mark.js +2 -3
- package/dist/esm/typography/Text.js +4 -5
- package/dist/esm/typography/Title.js +4 -4
- package/dist/esm/utils/cloneElement.js +44 -0
- package/dist/esm/utils/getColor.js +2 -16
- package/dist/types/components/actionLabel/ActionLabel.d.ts +2 -2
- package/dist/types/components/animations/Animations.d.ts +5 -5
- package/dist/types/components/avatar/Avatar.d.ts +3 -3
- package/dist/types/components/badge/Badge.d.ts +5 -1
- package/dist/types/components/breadcrumbs/Breadcrumbs.d.ts +2 -2
- package/dist/types/components/button/Button.d.ts +7 -5
- package/dist/types/components/button/ButtonGroup.d.ts +2 -2
- package/dist/types/components/button/ConfirmButton.d.ts +6 -1
- package/dist/types/components/callout/Callout.d.ts +2 -2
- package/dist/types/components/card/Card.d.ts +3 -3
- package/dist/types/components/chip/Chip.d.ts +3 -3
- package/dist/types/components/collapsable/Collapsable.d.ts +5 -1
- package/dist/types/components/divider/Divider.d.ts +7 -3
- package/dist/types/components/dropdown/DropdownTool.d.ts +2 -1
- package/dist/types/components/empty/EmptyContent.d.ts +6 -2
- package/dist/types/components/icon/Icon.d.ts +3 -3
- package/dist/types/components/media/Media.d.ts +2 -2
- package/dist/types/components/menu/ContextMenu.d.ts +2 -1
- package/dist/types/components/menu/MenuItem.d.ts +1 -1
- package/dist/types/components/menu/types.d.ts +2 -2
- package/dist/types/components/navigator/Navigator.d.ts +4 -4
- package/dist/types/components/progress/ProgressBar.d.ts +2 -2
- package/dist/types/components/progress/ProgressCircle.d.ts +2 -2
- package/dist/types/components/tabpanel/Tab.d.ts +5 -5
- package/dist/types/components/tabpanel/TabPanel.d.ts +10 -1
- package/dist/types/core/content/Content.d.ts +3 -2
- package/dist/types/core/headfoot/HeadFoot.d.ts +1 -9
- package/dist/types/core/responsive/Responsive.d.ts +1 -1
- package/dist/types/core/theme/ThemeProvider.d.ts +4 -4
- package/dist/types/hooks/useOverlayService.d.ts +3 -5
- package/dist/types/index.d.ts +3 -0
- package/dist/types/overlays/alert/Alert.d.ts +2 -2
- package/dist/types/overlays/flyout/Flyout.d.ts +3 -2
- package/dist/types/overlays/message/Message.d.ts +2 -2
- package/dist/types/overlays/modal/Modal.d.ts +4 -3
- package/dist/types/overlays/toast/Toast.d.ts +2 -2
- package/dist/types/overlays/tooltip/Tooltip.d.ts +1 -1
- package/dist/types/types/icons.d.ts +4 -0
- package/dist/types/types/index.d.ts +18 -6
- package/dist/types/typography/Abbr.d.ts +6 -2
- package/dist/types/typography/Anchor.d.ts +25 -0
- package/dist/types/typography/Mark.d.ts +2 -2
- package/dist/types/typography/index.d.ts +1 -1
- package/dist/types/utils/cloneElement.d.ts +2 -0
- package/dist/types/utils/getColor.d.ts +1 -4
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +7 -9
- package/src/components/actionLabel/ActionLabel.tsx +15 -6
- package/src/components/animations/Animations.tsx +29 -23
- package/src/components/avatar/Avatar.tsx +74 -88
- package/src/components/avatar/AvatarGroup.tsx +4 -4
- package/src/components/badge/Badge.tsx +11 -7
- package/src/components/breadcrumbs/Breadcrumbs.tsx +13 -9
- package/src/components/button/Button.tsx +27 -22
- package/src/components/button/ButtonGroup.tsx +7 -7
- package/src/components/button/ConfirmButton.tsx +15 -5
- package/src/components/button/ToggleButtonGroup.tsx +5 -5
- package/src/components/callout/Callout.tsx +26 -11
- package/src/components/card/Card.tsx +10 -7
- package/src/components/card/CardCover.tsx +11 -6
- package/src/components/chip/Chip.tsx +17 -13
- package/src/components/collapsable/Collapsable.tsx +9 -4
- package/src/components/divider/Divider.tsx +15 -10
- package/src/components/dropdown/Dropdown.tsx +5 -5
- package/src/components/dropdown/DropdownTool.tsx +5 -3
- package/src/components/empty/EmptyContent.tsx +17 -2
- package/src/components/icon/Icon.tsx +55 -67
- package/src/components/media/Media.tsx +141 -106
- package/src/components/menu/ContextMenu.tsx +36 -11
- package/src/components/menu/Menu.tsx +51 -30
- package/src/components/menu/MenuItem.tsx +19 -9
- package/src/components/menu/types.ts +2 -2
- package/src/components/meter/Meter.tsx +2 -3
- package/src/components/navigator/Navigator.tsx +19 -5
- package/src/components/panel/Panel.tsx +10 -9
- package/src/components/panel/PanelGroup.tsx +1 -2
- package/src/components/progress/ProgressBar.tsx +8 -9
- package/src/components/progress/ProgressCircle.tsx +6 -9
- package/src/components/tabpanel/Tab.tsx +81 -64
- package/src/components/tabpanel/TabPanel.tsx +34 -12
- package/src/core/aside/Aside.tsx +11 -10
- package/src/core/boundary/ErrorBoundary.tsx +8 -7
- package/src/core/boundary/ErrorIcon.tsx +1 -2
- package/src/core/content/Content.tsx +17 -12
- package/src/core/headfoot/HeadFoot.tsx +2 -35
- package/src/core/page/Page.tsx +3 -3
- package/src/core/responsive/Responsive.tsx +8 -7
- package/src/core/section/Section.tsx +1 -2
- package/src/core/theme/ThemeProvider.tsx +11 -12
- package/src/core/viewport/Viewport.tsx +1 -2
- package/src/hooks/useNavigator.tsx +10 -5
- package/src/hooks/useOverlayService.tsx +12 -6
- package/src/hotkeys/HotKeyLabel.tsx +1 -1
- package/src/hotkeys/HotKeyWrapper.tsx +3 -1
- package/src/index.ts +4 -0
- package/src/overlays/alert/Alert.tsx +25 -31
- package/src/overlays/flyout/Flyout.tsx +71 -84
- package/src/overlays/message/Message.tsx +10 -7
- package/src/overlays/modal/Modal.tsx +20 -15
- package/src/overlays/toast/Toast.tsx +18 -27
- package/src/overlays/tooltip/Tooltip.tsx +30 -9
- package/src/types/icons.ts +9 -0
- package/src/types/index.ts +251 -27
- package/src/typography/Abbr.tsx +15 -9
- package/src/typography/{Link.tsx → Anchor.tsx} +8 -13
- package/src/typography/Mark.tsx +4 -9
- package/src/typography/Text.tsx +4 -12
- package/src/typography/Title.tsx +2 -6
- package/src/typography/index.ts +1 -1
- package/src/utils/cloneElement.ts +44 -0
- 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
- package/src/overlays/tooltip/Tooltip.module.css +0 -53
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
import { EMPTY_ARRAY, isArray } from "@react-fabric/utilities";
|
|
25
25
|
import classNames from "classnames";
|
|
26
|
-
import {
|
|
26
|
+
import { cloneElement, useCallback, useMemo } from "react";
|
|
27
27
|
import { useControlledValue } from "../../hooks/useControlledValue";
|
|
28
28
|
import {
|
|
29
29
|
type AriaProps,
|
|
@@ -32,8 +32,8 @@ import {
|
|
|
32
32
|
type CssProp,
|
|
33
33
|
type SizeType,
|
|
34
34
|
} from "../../types";
|
|
35
|
+
import { cloneChildren } from "../../utils";
|
|
35
36
|
import { type ButtonProps } from "./Button";
|
|
36
|
-
import classes from "./Button.module.css";
|
|
37
37
|
|
|
38
38
|
interface BaseProps
|
|
39
39
|
extends CssProp,
|
|
@@ -131,16 +131,16 @@ export const ToggleButtonGroup = ({
|
|
|
131
131
|
return (
|
|
132
132
|
<div
|
|
133
133
|
className={classNames(
|
|
134
|
-
|
|
134
|
+
"fabric-buttonGroup",
|
|
135
135
|
className,
|
|
136
136
|
fullWidth ? "flex" : "inline-flex",
|
|
137
137
|
"flex-nowrap align-middle",
|
|
138
|
-
vertical &&
|
|
138
|
+
vertical && "vertical",
|
|
139
139
|
vertical && "flex-col",
|
|
140
140
|
)}
|
|
141
141
|
{...aria}
|
|
142
142
|
>
|
|
143
|
-
{
|
|
143
|
+
{cloneChildren(children, (child: AnyObject) =>
|
|
144
144
|
cloneElement(child, {
|
|
145
145
|
color,
|
|
146
146
|
size,
|
|
@@ -25,13 +25,11 @@ import classNames from "classnames";
|
|
|
25
25
|
import {
|
|
26
26
|
type AriaProps,
|
|
27
27
|
type ChildrenProp,
|
|
28
|
-
type
|
|
28
|
+
type ColorState,
|
|
29
29
|
type CssProp,
|
|
30
|
-
type PaletteType,
|
|
31
30
|
type TestProps,
|
|
32
31
|
} from "../../types";
|
|
33
32
|
import { CoreIcons } from "../../types/icons";
|
|
34
|
-
import { getBgClass, getBorderClass, getColorClass } from "../../utils";
|
|
35
33
|
import { Icon } from "../icon/Icon";
|
|
36
34
|
|
|
37
35
|
export interface CalloutProps
|
|
@@ -42,7 +40,7 @@ export interface CalloutProps
|
|
|
42
40
|
/**
|
|
43
41
|
* callout color
|
|
44
42
|
*/
|
|
45
|
-
color?:
|
|
43
|
+
color?: ColorState;
|
|
46
44
|
/**
|
|
47
45
|
* legend title
|
|
48
46
|
*/
|
|
@@ -65,6 +63,16 @@ export interface CalloutProps
|
|
|
65
63
|
onClose?: () => void;
|
|
66
64
|
}
|
|
67
65
|
|
|
66
|
+
const colors = {
|
|
67
|
+
tint: "bg-tint-50/50 text-tint-800 border-tint-300",
|
|
68
|
+
primary: "bg-primary-50/50 text-primary-800 border-primary-300",
|
|
69
|
+
accent: "bg-accent-50/50 text-accent-800 border-accent-300",
|
|
70
|
+
info: "bg-info-50/50 text-info-800 border-info-300",
|
|
71
|
+
danger: "bg-danger-50/50 text-danger-800 border-danger-300",
|
|
72
|
+
success: "bg-success-50/50 text-success-800 border-success-300",
|
|
73
|
+
warning: "bg-warning-50/50 text-warning-800 border-warning-300",
|
|
74
|
+
};
|
|
75
|
+
|
|
68
76
|
export const Callout = ({
|
|
69
77
|
children,
|
|
70
78
|
// @ts-expect-error ignore
|
|
@@ -80,27 +88,34 @@ export const Callout = ({
|
|
|
80
88
|
return (
|
|
81
89
|
<fieldset
|
|
82
90
|
className={classNames(
|
|
83
|
-
className,
|
|
84
91
|
"block rounded-capped border max-w-full relative overflow-hidden mb-4",
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
getBorderClass(color + "-300"),
|
|
92
|
+
colors[color],
|
|
93
|
+
className,
|
|
88
94
|
border === "dashed" && "border-dashed",
|
|
89
95
|
border === "dotted" && "border-dotted",
|
|
90
96
|
)}
|
|
91
97
|
{...aria}
|
|
92
98
|
>
|
|
93
|
-
{legend &&
|
|
99
|
+
{legend && (
|
|
100
|
+
<legend className="px-2 mx-4 font-medium" data-ref="calloutLegend">
|
|
101
|
+
{legend}
|
|
102
|
+
</legend>
|
|
103
|
+
)}
|
|
94
104
|
<div className={classNames("break-words whitespace-break-spaces p-2")}>
|
|
95
105
|
<div className="flex flex-nowrap items-center text-xl pe-4 gap-2 mb-4 empty:mb-0">
|
|
96
|
-
{icon && <Icon icon={icon} />}
|
|
97
|
-
{title &&
|
|
106
|
+
{icon && <Icon icon={icon} data-ref="calloutIcon" />}
|
|
107
|
+
{title && (
|
|
108
|
+
<p className="flex-1" data-ref="calloutTitle">
|
|
109
|
+
{title}
|
|
110
|
+
</p>
|
|
111
|
+
)}
|
|
98
112
|
</div>
|
|
99
113
|
<div className="pe-4">{children}</div>
|
|
100
114
|
</div>
|
|
101
115
|
{onClose && (
|
|
102
116
|
<Icon
|
|
103
117
|
size="md"
|
|
118
|
+
data-ref="calloutClose"
|
|
104
119
|
className={classNames("absolute end-2", legend ? "top-0" : "top-2")}
|
|
105
120
|
icon={CoreIcons.close}
|
|
106
121
|
onClick={onClose}
|
|
@@ -39,15 +39,16 @@ import {
|
|
|
39
39
|
type AriaProps,
|
|
40
40
|
type ChildrenProp,
|
|
41
41
|
type CssProp,
|
|
42
|
+
type RefProp,
|
|
42
43
|
type TestProps,
|
|
43
44
|
} from "../../types";
|
|
44
45
|
import { nodeCheck } from "../../utils";
|
|
45
|
-
import classes from "./Card.module.css";
|
|
46
46
|
|
|
47
47
|
export interface CardProps
|
|
48
48
|
extends CssProp,
|
|
49
49
|
AriaProps,
|
|
50
50
|
TestProps,
|
|
51
|
+
RefProp<HTMLDivElement>,
|
|
51
52
|
ChildrenProp<React.ReactElement<HeadFootProps | ContentProps>> {
|
|
52
53
|
/**
|
|
53
54
|
* apply flex fill styling
|
|
@@ -94,6 +95,7 @@ export const Card = ({
|
|
|
94
95
|
draggable,
|
|
95
96
|
dragKey,
|
|
96
97
|
dragData,
|
|
98
|
+
ref,
|
|
97
99
|
...aria
|
|
98
100
|
}: CardProps) => {
|
|
99
101
|
const [header, body, footer] = useMemo(() => {
|
|
@@ -113,20 +115,20 @@ export const Card = ({
|
|
|
113
115
|
return (
|
|
114
116
|
<div
|
|
115
117
|
className={classNames(
|
|
116
|
-
|
|
118
|
+
"fabric-cardWrapper",
|
|
117
119
|
"rounded-capped relative grid",
|
|
118
120
|
flex && "flex-1",
|
|
119
|
-
selected && selectedRibbon &&
|
|
120
|
-
selected && "outline
|
|
121
|
+
selected && selectedRibbon && "selected",
|
|
122
|
+
selected && "outline-2 outline-accent-500 outline-offset-2",
|
|
121
123
|
)}
|
|
122
124
|
>
|
|
123
125
|
<ErrorBoundary>
|
|
124
126
|
<div
|
|
125
127
|
className={classNames(
|
|
126
|
-
|
|
128
|
+
"fabric-card",
|
|
127
129
|
className,
|
|
128
130
|
"rounded-capped flex flex-col flex-nowrap overflow-hidden",
|
|
129
|
-
onClick &&
|
|
131
|
+
onClick && "clickable",
|
|
130
132
|
)}
|
|
131
133
|
draggable={draggable}
|
|
132
134
|
onDragStart={
|
|
@@ -136,12 +138,13 @@ export const Card = ({
|
|
|
136
138
|
dragKey &&
|
|
137
139
|
e.dataTransfer?.setData(dragKey, JSON.stringify(dragData))
|
|
138
140
|
}
|
|
141
|
+
ref={ref}
|
|
139
142
|
{...aria}
|
|
140
143
|
>
|
|
141
144
|
{header}
|
|
142
145
|
<div
|
|
143
146
|
role="none"
|
|
144
|
-
className={classNames(
|
|
147
|
+
className={classNames("fabric-cardBody", bodyClassName, "flex-1")}
|
|
145
148
|
onClick={onClick}
|
|
146
149
|
>
|
|
147
150
|
{body}
|
|
@@ -26,7 +26,6 @@ import { Children, useMemo } from "react";
|
|
|
26
26
|
import { type AriaProps, type ChildrenProp, type CssProp } from "../../types";
|
|
27
27
|
import { nodeCheck } from "../../utils";
|
|
28
28
|
import { Image, Video } from "../media/Media";
|
|
29
|
-
import classes from "./Card.module.css";
|
|
30
29
|
|
|
31
30
|
export interface CardCoverProps extends CssProp, AriaProps, ChildrenProp {
|
|
32
31
|
/**
|
|
@@ -43,12 +42,19 @@ export interface CardCoverProps extends CssProp, AriaProps, ChildrenProp {
|
|
|
43
42
|
justify?: "start" | "center" | "end";
|
|
44
43
|
}
|
|
45
44
|
|
|
45
|
+
const scheme = {
|
|
46
|
+
inheritScheme: "inheritScheme",
|
|
47
|
+
light: "light",
|
|
48
|
+
dark: "dark",
|
|
49
|
+
};
|
|
50
|
+
|
|
46
51
|
export const CardCover = ({
|
|
47
52
|
className,
|
|
48
53
|
children,
|
|
49
54
|
height = 120,
|
|
50
55
|
justify = "end",
|
|
51
|
-
|
|
56
|
+
// @ts-expect-error ignore
|
|
57
|
+
colorScheme = "inheritScheme",
|
|
52
58
|
...aria
|
|
53
59
|
}: CardCoverProps) => {
|
|
54
60
|
const [media, body] = useMemo(() => {
|
|
@@ -64,8 +70,8 @@ export const CardCover = ({
|
|
|
64
70
|
<div
|
|
65
71
|
style={{ height }}
|
|
66
72
|
className={classNames(
|
|
67
|
-
|
|
68
|
-
|
|
73
|
+
"fabric-cardCover",
|
|
74
|
+
scheme[colorScheme],
|
|
69
75
|
"relative z-0",
|
|
70
76
|
)}
|
|
71
77
|
{...aria}
|
|
@@ -73,9 +79,8 @@ export const CardCover = ({
|
|
|
73
79
|
{media}
|
|
74
80
|
<div
|
|
75
81
|
className={classNames(
|
|
76
|
-
|
|
82
|
+
"fabric-cardCoverContent",
|
|
77
83
|
"relative pointer-events-none z-1 flex flex-col flex-nowrap p-4 h-full",
|
|
78
|
-
className,
|
|
79
84
|
`justify-${justify}`,
|
|
80
85
|
className,
|
|
81
86
|
)}
|
|
@@ -30,14 +30,14 @@ import {
|
|
|
30
30
|
type ColorType,
|
|
31
31
|
type CssProp,
|
|
32
32
|
type IconProps,
|
|
33
|
+
type PaletteType,
|
|
33
34
|
type PolymorphicProps,
|
|
34
35
|
type RefProp,
|
|
35
36
|
type SizeType,
|
|
36
37
|
type TestProps,
|
|
37
38
|
} from "../../types";
|
|
38
|
-
import { getColor
|
|
39
|
+
import { getColor } from "../../utils";
|
|
39
40
|
import { Icon } from "../icon/Icon";
|
|
40
|
-
import classes from "./Chip.module.css";
|
|
41
41
|
|
|
42
42
|
export interface ChipProps
|
|
43
43
|
extends CssProp,
|
|
@@ -49,11 +49,11 @@ export interface ChipProps
|
|
|
49
49
|
/**
|
|
50
50
|
* chip size
|
|
51
51
|
*/
|
|
52
|
-
size?: SizeType;
|
|
52
|
+
size?: SizeType | number | string;
|
|
53
53
|
/**
|
|
54
54
|
* chip color (CSS color / tailwind color)
|
|
55
55
|
*/
|
|
56
|
-
color?: ColorType | string;
|
|
56
|
+
color?: ColorType | PaletteType | string;
|
|
57
57
|
/**
|
|
58
58
|
* chip styling
|
|
59
59
|
*/
|
|
@@ -152,24 +152,25 @@ export const Chip = <Tag extends React.ElementType = "div">({
|
|
|
152
152
|
<E
|
|
153
153
|
ref={ref}
|
|
154
154
|
role="term"
|
|
155
|
+
data-ref="chip"
|
|
155
156
|
className={classNames(
|
|
156
|
-
|
|
157
|
+
"fabric-chip",
|
|
157
158
|
className,
|
|
158
|
-
|
|
159
|
-
"select-none inline-flex flex-nowrap items-center max-w-72 text-sm leading-none rounded",
|
|
159
|
+
"select-none inline-flex flex-nowrap items-center align-middle max-w-72 rounded",
|
|
160
160
|
rounded && "rounded-full",
|
|
161
|
-
!!onClick &&
|
|
162
|
-
disabled &&
|
|
161
|
+
!!onClick && "clickable",
|
|
162
|
+
disabled && "disabled",
|
|
163
163
|
)}
|
|
164
164
|
style={styles}
|
|
165
165
|
data-variant={variant}
|
|
166
166
|
data-inner-clickable={!!onClick}
|
|
167
|
-
{...{ onClick: clickHandler }}
|
|
167
|
+
{...{ onClick: disabled ? undefined : clickHandler }}
|
|
168
168
|
{...aria}
|
|
169
169
|
>
|
|
170
170
|
{icon && (
|
|
171
171
|
<Icon
|
|
172
|
-
|
|
172
|
+
data-ref="chipIcon"
|
|
173
|
+
className={classNames("fabric-chipIcon", "m-1")}
|
|
173
174
|
icon={icon}
|
|
174
175
|
bg={iconBg}
|
|
175
176
|
onClick={onIconClick}
|
|
@@ -179,7 +180,8 @@ export const Chip = <Tag extends React.ElementType = "div">({
|
|
|
179
180
|
)}
|
|
180
181
|
{children && (
|
|
181
182
|
<label
|
|
182
|
-
|
|
183
|
+
data-ref="chipLabel"
|
|
184
|
+
className={classNames("fabric-chipLabel", "truncate")}
|
|
183
185
|
>
|
|
184
186
|
{children}
|
|
185
187
|
</label>
|
|
@@ -187,8 +189,10 @@ export const Chip = <Tag extends React.ElementType = "div">({
|
|
|
187
189
|
{onRemove && (
|
|
188
190
|
<span
|
|
189
191
|
role="none"
|
|
192
|
+
data-ref="chipRemove"
|
|
193
|
+
data-inner-cliackable
|
|
190
194
|
className={classNames(
|
|
191
|
-
|
|
195
|
+
"fabric-chipRemove",
|
|
192
196
|
"cursor-pointer pe-1 opacity-65 hover:opacity-90",
|
|
193
197
|
)}
|
|
194
198
|
onClick={removeHandler}
|
|
@@ -40,7 +40,6 @@ import {
|
|
|
40
40
|
} from "../../types";
|
|
41
41
|
import { CoreIcons } from "../../types/icons";
|
|
42
42
|
import { Icon } from "../icon/Icon";
|
|
43
|
-
import classes from "./Collapsable.module.css";
|
|
44
43
|
|
|
45
44
|
interface CollapsableRef {
|
|
46
45
|
button: RefObject<HTMLElement>;
|
|
@@ -66,6 +65,10 @@ export interface CollapsableProps
|
|
|
66
65
|
* header button className
|
|
67
66
|
*/
|
|
68
67
|
headerClassName?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Header position sticky
|
|
70
|
+
*/
|
|
71
|
+
stickyHeader?: boolean;
|
|
69
72
|
/**
|
|
70
73
|
* open state icon
|
|
71
74
|
*/
|
|
@@ -100,6 +103,7 @@ export const Collapsable = ({
|
|
|
100
103
|
headerClassName,
|
|
101
104
|
children,
|
|
102
105
|
iconAlign,
|
|
106
|
+
stickyHeader,
|
|
103
107
|
iconClosed = CoreIcons.chevronRight,
|
|
104
108
|
iconOpen = CoreIcons.chevronDown,
|
|
105
109
|
open,
|
|
@@ -130,14 +134,15 @@ export const Collapsable = ({
|
|
|
130
134
|
return [h, b];
|
|
131
135
|
}, [children]);
|
|
132
136
|
return (
|
|
133
|
-
<div className={classNames(
|
|
137
|
+
<div className={classNames("fabric-collapsable", className)} {...aria}>
|
|
134
138
|
<div
|
|
135
139
|
role="none"
|
|
136
140
|
ref={headRef}
|
|
137
141
|
className={classNames(
|
|
138
|
-
|
|
142
|
+
"fabric-collapsableHead",
|
|
139
143
|
"flex gap-1 flex-nowrap py-2 font-medium cursor-pointer items-center select-none hover:opacity-70",
|
|
140
144
|
headerClassName,
|
|
145
|
+
stickyHeader && "bg-base sticky top-0 px-2 py-1 z-10",
|
|
141
146
|
iconAlign === "end" ? "flex-row-reverse" : "flex-row",
|
|
142
147
|
)}
|
|
143
148
|
onClick={() => !disabled && setOpenState(!openState)}
|
|
@@ -148,7 +153,7 @@ export const Collapsable = ({
|
|
|
148
153
|
{openState && (
|
|
149
154
|
<div
|
|
150
155
|
ref={bodyRef}
|
|
151
|
-
className={classNames(
|
|
156
|
+
className={classNames("fabric-collapsableBody", bodyClassName)}
|
|
152
157
|
>
|
|
153
158
|
{body}
|
|
154
159
|
</div>
|
|
@@ -24,12 +24,12 @@
|
|
|
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
35
|
/**
|
|
@@ -40,10 +40,14 @@ export interface DividerProps extends CssProp, Partial<ChildProp> {
|
|
|
40
40
|
* vertical rule
|
|
41
41
|
*/
|
|
42
42
|
vertical?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* divider label classname(s)
|
|
45
|
+
*/
|
|
46
|
+
labelClassName?: string;
|
|
43
47
|
/**
|
|
44
48
|
* rule color
|
|
45
49
|
*/
|
|
46
|
-
color?: ColorType | PaletteType |
|
|
50
|
+
color?: ColorType | PaletteType | string;
|
|
47
51
|
/**
|
|
48
52
|
* text alignment
|
|
49
53
|
*/
|
|
@@ -52,8 +56,9 @@ export interface DividerProps extends CssProp, Partial<ChildProp> {
|
|
|
52
56
|
|
|
53
57
|
export const Divider = ({
|
|
54
58
|
children,
|
|
55
|
-
color,
|
|
59
|
+
color = "tint-300",
|
|
56
60
|
vertical,
|
|
61
|
+
labelClassName,
|
|
57
62
|
fill,
|
|
58
63
|
align = "start",
|
|
59
64
|
className,
|
|
@@ -62,13 +67,14 @@ export const Divider = ({
|
|
|
62
67
|
({ flex, className }: KeyValue) => {
|
|
63
68
|
return (
|
|
64
69
|
<hr
|
|
65
|
-
style={{ flex }}
|
|
70
|
+
style={{ flex, borderColor: getColor(color) }}
|
|
66
71
|
className={classNames(
|
|
67
72
|
className,
|
|
68
73
|
vertical && "vertical",
|
|
69
74
|
!flex && "self-stretch",
|
|
70
|
-
vertical
|
|
71
|
-
|
|
75
|
+
vertical
|
|
76
|
+
? "fabric-divider--vertical"
|
|
77
|
+
: "fabric-divider--horizontal",
|
|
72
78
|
)}
|
|
73
79
|
/>
|
|
74
80
|
);
|
|
@@ -88,9 +94,8 @@ export const Divider = ({
|
|
|
88
94
|
<div
|
|
89
95
|
className={classNames(
|
|
90
96
|
"px-2 whitespace-nowrap",
|
|
91
|
-
vertical ? "
|
|
92
|
-
|
|
93
|
-
!fill && getColorClass((color ?? "tint") + "-600"),
|
|
97
|
+
vertical ? "fabric-divider--vertical" : "fabric-divider--horizontal",
|
|
98
|
+
labelClassName,
|
|
94
99
|
"rounded-full text-[0.75em]",
|
|
95
100
|
vertical && "origin-center -rotate-90 z-1",
|
|
96
101
|
)}
|
|
@@ -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];
|
|
@@ -224,6 +223,7 @@ const DropdownElement = ({
|
|
|
224
223
|
e.stopPropagation();
|
|
225
224
|
},
|
|
226
225
|
}),
|
|
226
|
+
"data-inner-clickable": "true",
|
|
227
227
|
"data-dropdown-open": isOpen ? true : undefined,
|
|
228
228
|
ref: innerRef,
|
|
229
229
|
})}
|
|
@@ -248,6 +248,7 @@ const DropdownElement = ({
|
|
|
248
248
|
zIndex: "var(--z-popover)",
|
|
249
249
|
...floatingStyles,
|
|
250
250
|
}}
|
|
251
|
+
data-ref="dropdownBody"
|
|
251
252
|
{...getFloatingProps({
|
|
252
253
|
onClick: (e) => e.stopPropagation(),
|
|
253
254
|
})}
|
|
@@ -255,10 +256,9 @@ const DropdownElement = ({
|
|
|
255
256
|
<div
|
|
256
257
|
role="none"
|
|
257
258
|
className={classNames(
|
|
258
|
-
|
|
259
|
+
"fabric-dropdownBody",
|
|
259
260
|
dropdownClassName,
|
|
260
|
-
!plainDropdown &&
|
|
261
|
-
"shadow-lg shadow-base bg-base ring-1 ring-tint-100",
|
|
261
|
+
!plainDropdown && "shadow-lg bg-base ring-1 ring-tint-100",
|
|
262
262
|
"rounded-capped overflow-auto scroll-thin grid max-h-[70vh]",
|
|
263
263
|
)}
|
|
264
264
|
onMouseUpCapture={tryClosing}
|
|
@@ -270,7 +270,7 @@ const DropdownElement = ({
|
|
|
270
270
|
ref={arrowRef}
|
|
271
271
|
context={context}
|
|
272
272
|
strokeWidth={0.5}
|
|
273
|
-
className="fill-base stroke-
|
|
273
|
+
className="fill-base stroke-dimmed"
|
|
274
274
|
/>
|
|
275
275
|
)}
|
|
276
276
|
</div>
|
|
@@ -31,10 +31,12 @@ export const DropdownTool = ({
|
|
|
31
31
|
children,
|
|
32
32
|
className,
|
|
33
33
|
groupHover,
|
|
34
|
+
icon,
|
|
34
35
|
...props
|
|
35
36
|
}: ChildProp &
|
|
36
37
|
CssProp &
|
|
37
38
|
Omit<DropdownProps, "children"> & {
|
|
39
|
+
icon?: string;
|
|
38
40
|
/**
|
|
39
41
|
* hide until group hovered
|
|
40
42
|
*/
|
|
@@ -43,12 +45,12 @@ export const DropdownTool = ({
|
|
|
43
45
|
return (
|
|
44
46
|
<Dropdown {...props}>
|
|
45
47
|
<Icon
|
|
46
|
-
icon={CoreIcons.caretDown}
|
|
48
|
+
icon={icon ?? CoreIcons.caretDown}
|
|
47
49
|
className={classNames(
|
|
50
|
+
"outline bg-tint-50/50 flex-content pointer-events-auto cursor-pointer",
|
|
48
51
|
className,
|
|
49
|
-
"outline bg-base flex-content pointer-events-auto cursor-pointer",
|
|
50
52
|
groupHover &&
|
|
51
|
-
"hidden group-hover:inline-block data-[dropdown-open]:inline-block",
|
|
53
|
+
"hidden group-hover/tool:inline-block data-[dropdown-open]:inline-block",
|
|
52
54
|
)}
|
|
53
55
|
/>
|
|
54
56
|
{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 = {
|
|
@@ -101,6 +112,7 @@ export const EmptyContent = ({
|
|
|
101
112
|
icon,
|
|
102
113
|
className,
|
|
103
114
|
size,
|
|
115
|
+
iconColor,
|
|
104
116
|
...test
|
|
105
117
|
}: EmptyContentProps) => {
|
|
106
118
|
return (
|
|
@@ -116,7 +128,10 @@ export const EmptyContent = ({
|
|
|
116
128
|
}
|
|
117
129
|
{...test}
|
|
118
130
|
>
|
|
119
|
-
<div
|
|
131
|
+
<div
|
|
132
|
+
className="leading-none"
|
|
133
|
+
style={{ fontSize: "4em", color: getColor(iconColor ?? "tint-700") }}
|
|
134
|
+
>
|
|
120
135
|
{isString(icon) && <Icon icon={icon} />}
|
|
121
136
|
{isValidElement(icon) && icon}
|
|
122
137
|
{!icon && <DefaultIcon />}
|