@react-fabric/core 1.0.0-beta.5 → 1.0.0-beta.52
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} +69 -79
- package/{src/components/card/Card.module.css → css/components/_card.css} +50 -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} +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} +19 -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/{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} +56 -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 +42 -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 +530 -0
- package/css/theme/index.css +45 -0
- package/dist/cjs/components/actionLabel/ActionLabel.js +26 -8
- package/dist/cjs/components/animations/Animations.js +118 -24
- package/dist/cjs/components/avatar/Avatar.js +43 -16
- package/dist/cjs/components/avatar/AvatarGroup.js +22 -4
- package/dist/cjs/components/badge/Badge.js +35 -6
- package/dist/cjs/components/breadcrumbs/Breadcrumbs.js +39 -8
- package/dist/cjs/components/button/Button.js +42 -15
- package/dist/cjs/components/button/ButtonGroup.js +30 -3
- package/dist/cjs/components/button/ConfirmButton.js +32 -4
- 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 +48 -10
- 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 +32 -7
- package/dist/cjs/components/collapsable/Collapsable.js +32 -6
- 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 +4 -3
- package/dist/cjs/components/empty/EmptyContent.js +35 -5
- package/dist/cjs/components/icon/Icon.js +44 -16
- package/dist/cjs/components/media/Media.js +172 -75
- package/dist/cjs/components/menu/ContextMenu.js +49 -10
- package/dist/cjs/components/menu/Menu.js +74 -21
- package/dist/cjs/components/menu/MenuItem.js +51 -16
- package/dist/cjs/components/meter/Meter.js +26 -3
- package/dist/cjs/components/navigator/Navigator.js +48 -13
- package/dist/cjs/components/panel/Panel.js +47 -9
- package/dist/cjs/components/panel/PanelGroup.js +25 -2
- package/dist/cjs/components/panel/PanelStack.js +31 -0
- 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 +89 -38
- package/dist/cjs/components/tabpanel/TabPanel.js +53 -16
- package/dist/cjs/context/Global.js +28 -1
- package/dist/cjs/context/NotificationCenter.js +3 -3
- package/dist/cjs/core/aside/Aside.js +49 -11
- package/dist/cjs/core/boundary/ErrorBoundary.js +23 -8
- package/dist/cjs/core/boundary/ErrorIcon.js +1 -2
- package/dist/cjs/core/content/Content.js +15 -8
- package/dist/cjs/core/headfoot/HeadFoot.js +44 -20
- package/dist/cjs/core/page/Page.js +40 -29
- package/dist/cjs/core/responsive/Responsive.js +59 -6
- package/dist/cjs/core/section/Section.js +1 -2
- 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/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 +8 -2
- package/dist/cjs/overlays/alert/Alert.js +20 -14
- 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 +16 -12
- package/dist/cjs/overlays/toast/Toast.js +17 -9
- package/dist/cjs/overlays/tooltip/Tooltip.js +24 -11
- package/dist/cjs/types/icons.js +10 -1
- package/dist/cjs/typography/Abbr.js +32 -6
- package/dist/cjs/typography/{Link.js → Anchor.js} +23 -5
- package/dist/cjs/typography/Mark.js +22 -4
- 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 +119 -25
- package/dist/esm/components/avatar/Avatar.js +44 -17
- package/dist/esm/components/avatar/AvatarGroup.js +22 -4
- package/dist/esm/components/badge/Badge.js +36 -7
- package/dist/esm/components/breadcrumbs/Breadcrumbs.js +39 -8
- package/dist/esm/components/button/Button.js +42 -15
- package/dist/esm/components/button/ButtonGroup.js +31 -4
- package/dist/esm/components/button/ConfirmButton.js +32 -4
- 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 +49 -11
- 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 +33 -8
- package/dist/esm/components/collapsable/Collapsable.js +32 -6
- 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 +4 -3
- package/dist/esm/components/empty/EmptyContent.js +35 -5
- package/dist/esm/components/icon/Icon.js +44 -16
- package/dist/esm/components/media/Media.js +173 -76
- package/dist/esm/components/menu/ContextMenu.js +51 -12
- package/dist/esm/components/menu/Menu.js +76 -23
- package/dist/esm/components/menu/MenuItem.js +45 -10
- package/dist/esm/components/meter/Meter.js +26 -3
- package/dist/esm/components/navigator/Navigator.js +48 -13
- package/dist/esm/components/panel/Panel.js +47 -9
- package/dist/esm/components/panel/PanelGroup.js +25 -2
- package/dist/esm/components/panel/PanelStack.js +31 -0
- 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 +90 -39
- package/dist/esm/components/tabpanel/TabPanel.js +53 -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 -11
- package/dist/esm/core/boundary/ErrorBoundary.js +23 -8
- package/dist/esm/core/boundary/ErrorIcon.js +1 -2
- package/dist/esm/core/content/Content.js +15 -8
- package/dist/esm/core/headfoot/HeadFoot.js +44 -20
- package/dist/esm/core/page/Page.js +40 -29
- package/dist/esm/core/responsive/Responsive.js +59 -6
- package/dist/esm/core/section/Section.js +1 -2
- 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/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 +4 -1
- package/dist/esm/overlays/alert/Alert.js +21 -15
- 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 +17 -13
- package/dist/esm/overlays/toast/Toast.js +18 -10
- package/dist/esm/overlays/tooltip/Tooltip.js +24 -11
- package/dist/esm/types/icons.js +10 -1
- package/dist/esm/typography/Abbr.js +32 -6
- package/dist/esm/typography/{Link.js → Anchor.js} +24 -6
- package/dist/esm/typography/Mark.js +22 -4
- 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 +23 -4
- package/dist/types/components/animations/Animations.d.ts +84 -5
- package/dist/types/components/avatar/Avatar.d.ts +29 -5
- package/dist/types/components/avatar/AvatarGroup.d.ts +19 -1
- package/dist/types/components/badge/Badge.d.ts +30 -1
- package/dist/types/components/breadcrumbs/Breadcrumbs.d.ts +31 -2
- package/dist/types/components/button/Button.d.ts +29 -6
- package/dist/types/components/button/ButtonGroup.d.ts +28 -3
- package/dist/types/components/button/ConfirmButton.d.ts +28 -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 +42 -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 +24 -4
- package/dist/types/components/collapsable/Collapsable.d.ts +33 -3
- 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 +27 -1
- package/dist/types/components/empty/EmptyContent.d.ts +32 -3
- package/dist/types/components/icon/Icon.d.ts +32 -6
- package/dist/types/components/index.d.ts +2 -1
- package/dist/types/components/media/Media.d.ts +56 -2
- package/dist/types/components/menu/ContextMenu.d.ts +21 -2
- 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 +3 -2
- 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 +37 -1
- 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 +36 -5
- package/dist/types/components/tabpanel/TabPanel.d.ts +43 -1
- package/dist/types/context/Global.d.ts +24 -1
- package/dist/types/core/aside/Aside.d.ts +38 -1
- package/dist/types/core/boundary/ErrorBoundary.d.ts +18 -2
- package/dist/types/core/content/Content.d.ts +9 -3
- package/dist/types/core/headfoot/HeadFoot.d.ts +41 -9
- package/dist/types/core/page/Page.d.ts +29 -4
- package/dist/types/core/responsive/Responsive.d.ts +58 -3
- package/dist/types/core/section/Section.d.ts +16 -1
- 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/useStorage.d.ts +38 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/overlays/alert/Alert.d.ts +2 -3
- package/dist/types/overlays/flyout/Flyout.d.ts +3 -2
- package/dist/types/overlays/message/Message.d.ts +2 -3
- package/dist/types/overlays/modal/Modal.d.ts +12 -3
- package/dist/types/overlays/toast/Toast.d.ts +2 -3
- package/dist/types/overlays/tooltip/Tooltip.d.ts +2 -2
- package/dist/types/types/icons.d.ts +10 -1
- package/dist/types/types/index.d.ts +26 -6
- 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 +2 -0
- package/dist/types/utils/getColor.d.ts +1 -4
- package/dist/types/utils/index.d.ts +1 -0
- package/package.json +11 -13
- package/src/components/actionLabel/ActionLabel.tsx +38 -11
- package/src/components/animations/Animations.tsx +118 -33
- package/src/components/avatar/Avatar.tsx +106 -91
- package/src/components/avatar/AvatarGroup.tsx +23 -5
- package/src/components/badge/Badge.tsx +41 -9
- package/src/components/breadcrumbs/Breadcrumbs.tsx +42 -9
- package/src/components/button/Button.tsx +50 -23
- package/src/components/button/ButtonGroup.tsx +33 -7
- package/src/components/button/ConfirmButton.tsx +41 -7
- package/src/components/button/ToggleButtonGroup.tsx +74 -47
- package/src/components/callout/Callout.tsx +55 -12
- package/src/components/card/Card.tsx +64 -15
- package/src/components/card/CardCover.tsx +36 -6
- package/src/components/card/FlipContent.tsx +90 -0
- package/src/components/chip/Chip.tsx +39 -13
- package/src/components/collapsable/Collapsable.tsx +38 -7
- package/src/components/divider/Divider.tsx +42 -16
- package/src/components/dropdown/Dropdown.tsx +46 -11
- package/src/components/dropdown/DropdownTool.tsx +30 -3
- package/src/components/empty/EmptyContent.tsx +47 -6
- package/src/components/icon/Icon.tsx +85 -68
- package/src/components/index.ts +2 -1
- package/src/components/media/Media.tsx +195 -106
- package/src/components/menu/ContextMenu.tsx +55 -11
- package/src/components/menu/Menu.tsx +85 -30
- package/src/components/menu/MenuItem.tsx +40 -9
- package/src/components/menu/types.ts +3 -2
- package/src/components/meter/Meter.tsx +26 -3
- package/src/components/navigator/Navigator.tsx +58 -7
- package/src/components/panel/Panel.tsx +47 -9
- package/src/components/panel/PanelGroup.tsx +25 -2
- package/src/components/panel/PanelStack.tsx +31 -0
- package/src/components/progress/ProgressBar.tsx +33 -14
- package/src/components/progress/ProgressCircle.tsx +29 -13
- package/src/components/tabpanel/Tab.tsx +112 -64
- package/src/components/tabpanel/TabPanel.tsx +67 -12
- package/src/context/Global.tsx +28 -1
- package/src/context/NotificationCenter.tsx +3 -3
- package/src/core/aside/Aside.tsx +50 -12
- package/src/core/boundary/ErrorBoundary.tsx +25 -8
- package/src/core/boundary/ErrorIcon.tsx +1 -2
- package/src/core/content/Content.tsx +23 -13
- package/src/core/headfoot/HeadFoot.tsx +42 -35
- package/src/core/page/Page.tsx +44 -6
- package/src/core/responsive/Responsive.tsx +66 -8
- package/src/core/section/Section.tsx +17 -3
- 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 +36 -6
- package/src/hooks/usePropToggle.ts +16 -5
- package/src/hooks/useResize.ts +19 -1
- package/src/hooks/useResizeObserver.ts +32 -9
- 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 +4 -0
- package/src/overlays/alert/Alert.tsx +28 -32
- package/src/overlays/flyout/Flyout.tsx +71 -84
- package/src/overlays/message/Message.tsx +10 -7
- package/src/overlays/modal/Modal.tsx +37 -15
- package/src/overlays/toast/Toast.tsx +18 -27
- package/src/overlays/tooltip/Tooltip.tsx +43 -18
- package/src/types/icons.ts +18 -3
- package/src/types/index.ts +268 -27
- package/src/typography/Abbr.tsx +44 -11
- package/src/typography/{Link.tsx → Anchor.tsx} +26 -14
- package/src/typography/Copy.tsx +15 -0
- package/src/typography/Mark.tsx +24 -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
|
@@ -29,7 +29,6 @@ import { Fragment } from "react/jsx-runtime";
|
|
|
29
29
|
import { useMemoDebugger } from "../../hooks/useEffectDebugger";
|
|
30
30
|
import { usePropToggle } from "../../hooks/usePropToggle";
|
|
31
31
|
import { type ChildrenProp } from "../../types";
|
|
32
|
-
import classes from "./ErrorBoundary.module.css";
|
|
33
32
|
import { ErrorIcon } from "./ErrorIcon";
|
|
34
33
|
import { useGlobals } from "../../context/Global";
|
|
35
34
|
|
|
@@ -53,7 +52,7 @@ const ErrorMessage = ({ error, errorElement }: KeyValue) => {
|
|
|
53
52
|
return (
|
|
54
53
|
<Fragment>
|
|
55
54
|
<ErrorIcon />
|
|
56
|
-
<div className={classNames(
|
|
55
|
+
<div className={classNames("fabric-boundaryMessage", "p-2")}>
|
|
57
56
|
<EE error={error} />
|
|
58
57
|
</div>
|
|
59
58
|
</Fragment>
|
|
@@ -64,10 +63,12 @@ const ErrorStack = ({ error, stack }: KeyValue) => {
|
|
|
64
63
|
const [show, toggleShow] = usePropToggle(false);
|
|
65
64
|
useLogger().error(error, {}, stack);
|
|
66
65
|
return (
|
|
67
|
-
<div
|
|
66
|
+
<div
|
|
67
|
+
className={classNames("fabric-boundaryDetail", "overflow-hidden grid")}
|
|
68
|
+
>
|
|
68
69
|
<div
|
|
69
70
|
className={classNames(
|
|
70
|
-
|
|
71
|
+
"fabric-boundaryLink",
|
|
71
72
|
"px-2 py-1 text-xs text-end",
|
|
72
73
|
)}
|
|
73
74
|
>
|
|
@@ -78,7 +79,7 @@ const ErrorStack = ({ error, stack }: KeyValue) => {
|
|
|
78
79
|
{show && (
|
|
79
80
|
<div
|
|
80
81
|
className={classNames(
|
|
81
|
-
|
|
82
|
+
"fabric-boundaryStack",
|
|
82
83
|
"overflow-auto p-2 text-xs border-t",
|
|
83
84
|
)}
|
|
84
85
|
>
|
|
@@ -90,7 +91,23 @@ const ErrorStack = ({ error, stack }: KeyValue) => {
|
|
|
90
91
|
};
|
|
91
92
|
|
|
92
93
|
/**
|
|
93
|
-
*
|
|
94
|
+
* ErrorBoundary component to catch JavaScript errors anywhere in the child component tree,
|
|
95
|
+
* log those errors, and display a fallback UI.
|
|
96
|
+
* It can also display a custom error element if provided.
|
|
97
|
+
* This component is useful for preventing the entire application from crashing
|
|
98
|
+
* when an error occurs in a part of the component tree.
|
|
99
|
+
* It can be used to wrap any part of the application.
|
|
100
|
+
* It supports custom error display components and provides a default error message.
|
|
101
|
+
* It also conditionally displays the error stack trace in development mode.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```jsx
|
|
105
|
+
* <ErrorBoundary errorElement={CustomErrorComponent}>
|
|
106
|
+
* <YourComponent />
|
|
107
|
+
* </ErrorBoundary>
|
|
108
|
+
* ```
|
|
109
|
+
*
|
|
110
|
+
* @see {@link https://adarshpastakia.github.io/react-fabric/?path=/story/core-application--error-boundary}
|
|
94
111
|
*/
|
|
95
112
|
export class ErrorBoundary extends Component<
|
|
96
113
|
{
|
|
@@ -122,13 +139,13 @@ export class ErrorBoundary extends Component<
|
|
|
122
139
|
return (
|
|
123
140
|
<div
|
|
124
141
|
className={classNames(
|
|
125
|
-
|
|
142
|
+
"fabric-errorBoundary",
|
|
126
143
|
"grid grid-rows-1 overflow-hidden p-0.5 rounded-capped",
|
|
127
144
|
)}
|
|
128
145
|
>
|
|
129
146
|
<div
|
|
130
147
|
className={classNames(
|
|
131
|
-
|
|
148
|
+
"fabric-boundaryContent",
|
|
132
149
|
"overflow-hidden grid rounded-capped",
|
|
133
150
|
)}
|
|
134
151
|
>
|
|
@@ -22,13 +22,12 @@
|
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import classNames from "classnames";
|
|
25
|
-
import classes from "./ErrorBoundary.module.css";
|
|
26
25
|
|
|
27
26
|
export const ErrorIcon = () => (
|
|
28
27
|
<svg
|
|
29
28
|
xmlns="http://www.w3.org/2000/svg"
|
|
30
29
|
viewBox="0 0 64 64"
|
|
31
|
-
className={classNames(
|
|
30
|
+
className={classNames("fabric-boundaryIcon", "size-6 m-2")}
|
|
32
31
|
>
|
|
33
32
|
<path
|
|
34
33
|
fill="#808080"
|
|
@@ -22,19 +22,18 @@
|
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import classNames from "classnames";
|
|
25
|
-
import { useImperativeHandle } from "react";
|
|
25
|
+
import { type MouseEvent, useImperativeHandle } from "react";
|
|
26
26
|
import { useDebounce } from "../../hooks/useDebounce";
|
|
27
27
|
import { useResizeObserver } from "../../hooks/useResizeObserver";
|
|
28
28
|
import {
|
|
29
29
|
type ChildrenProp,
|
|
30
30
|
type CssProp,
|
|
31
|
-
type PositionObject,
|
|
32
31
|
type RefProp,
|
|
32
|
+
type ScrollObject,
|
|
33
33
|
type SizeObject,
|
|
34
34
|
type TestProps,
|
|
35
35
|
} from "../../types";
|
|
36
36
|
import { ErrorBoundary } from "../boundary/ErrorBoundary";
|
|
37
|
-
import classes from "./Content.module.css";
|
|
38
37
|
|
|
39
38
|
export interface ContentProps
|
|
40
39
|
extends ChildrenProp,
|
|
@@ -44,7 +43,7 @@ export interface ContentProps
|
|
|
44
43
|
/**
|
|
45
44
|
* scroll vevent handler
|
|
46
45
|
*/
|
|
47
|
-
onScroll?: (event:
|
|
46
|
+
onScroll?: (scroll: ScrollObject, event: MouseEvent<HTMLDivElement>) => void;
|
|
48
47
|
/**
|
|
49
48
|
* scroll vevent handler
|
|
50
49
|
*/
|
|
@@ -52,7 +51,12 @@ export interface ContentProps
|
|
|
52
51
|
}
|
|
53
52
|
|
|
54
53
|
/**
|
|
55
|
-
*
|
|
54
|
+
* Content component that wraps children in a section element.
|
|
55
|
+
* It uses a resize observer to handle resizing and a debounced scroll handler.
|
|
56
|
+
* It also includes an error boundary to catch any errors in the children.
|
|
57
|
+
*
|
|
58
|
+
* @param {ContentProps} props - The properties for the Content component.
|
|
59
|
+
* @returns A section element containing the children wrapped in an error boundary.
|
|
56
60
|
*/
|
|
57
61
|
export const Content = ({
|
|
58
62
|
ref,
|
|
@@ -65,13 +69,19 @@ export const Content = ({
|
|
|
65
69
|
}: ContentProps) => {
|
|
66
70
|
const resizeHandle = useResizeObserver(onResize);
|
|
67
71
|
const scrollHandler = useDebounce(
|
|
68
|
-
(e:
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
(e: MouseEvent<HTMLDivElement>) => {
|
|
73
|
+
const el = e.target as HTMLElement;
|
|
74
|
+
onScroll?.(
|
|
75
|
+
{
|
|
76
|
+
left: el.scrollLeft,
|
|
77
|
+
top: el.scrollTop,
|
|
78
|
+
scrollHeight: el.scrollHeight,
|
|
79
|
+
scrollWidth: el.scrollWidth,
|
|
80
|
+
width: el.offsetWidth,
|
|
81
|
+
height: el.offsetHeight,
|
|
82
|
+
},
|
|
83
|
+
e,
|
|
84
|
+
);
|
|
75
85
|
},
|
|
76
86
|
[onScroll],
|
|
77
87
|
);
|
|
@@ -83,7 +93,7 @@ export const Content = ({
|
|
|
83
93
|
data-test-value={testValue}
|
|
84
94
|
ref={resizeHandle}
|
|
85
95
|
onScroll={scrollHandler}
|
|
86
|
-
className={classNames(
|
|
96
|
+
className={classNames("fabric-content", "area-content", className)}
|
|
87
97
|
>
|
|
88
98
|
<ErrorBoundary>{children}</ErrorBoundary>
|
|
89
99
|
</section>
|
|
@@ -22,27 +22,15 @@
|
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import classNames from "classnames";
|
|
25
|
-
import { useMemoDebugger } from "../../hooks/useEffectDebugger";
|
|
26
25
|
import {
|
|
27
26
|
type AriaProps,
|
|
28
27
|
type ChildrenProp,
|
|
29
|
-
type ColorWithGrays,
|
|
30
28
|
type CssProp,
|
|
31
29
|
type TestProps,
|
|
32
30
|
} from "../../types";
|
|
33
|
-
import { getBgClass, getColor, getColorClass } from "../../utils";
|
|
34
|
-
import classes from "./HeadFoot.module.css";
|
|
35
31
|
|
|
36
32
|
interface BaseProps extends CssProp, AriaProps, ChildrenProp, TestProps {
|
|
37
33
|
dir?: "ltr" | "rtl";
|
|
38
|
-
/**
|
|
39
|
-
* background color
|
|
40
|
-
*/
|
|
41
|
-
bg?: ColorWithGrays | string;
|
|
42
|
-
/**
|
|
43
|
-
* background color
|
|
44
|
-
*/
|
|
45
|
-
color?: ColorWithGrays | string;
|
|
46
34
|
}
|
|
47
35
|
|
|
48
36
|
type DefaultProps = BaseProps & { flex?: false };
|
|
@@ -58,8 +46,6 @@ const HeadFoot = ({
|
|
|
58
46
|
as: E,
|
|
59
47
|
children,
|
|
60
48
|
className,
|
|
61
|
-
bg,
|
|
62
|
-
color,
|
|
63
49
|
flex,
|
|
64
50
|
area,
|
|
65
51
|
dir,
|
|
@@ -67,37 +53,18 @@ const HeadFoot = ({
|
|
|
67
53
|
justify = "start",
|
|
68
54
|
...aria
|
|
69
55
|
}: KeyValue & { as: "header" | "footer" }) => {
|
|
70
|
-
/** ***************** style map *******************/
|
|
71
|
-
const styles = useMemoDebugger(
|
|
72
|
-
() => {
|
|
73
|
-
const s: KeyValue = {};
|
|
74
|
-
if (bg) {
|
|
75
|
-
s.backgroundColor = getColor(bg);
|
|
76
|
-
}
|
|
77
|
-
if (color) {
|
|
78
|
-
s.color = getColor(color);
|
|
79
|
-
}
|
|
80
|
-
return s;
|
|
81
|
-
},
|
|
82
|
-
[bg],
|
|
83
|
-
"HeadFoot styles",
|
|
84
|
-
);
|
|
85
|
-
|
|
86
56
|
return (
|
|
87
57
|
<E
|
|
88
58
|
dir={dir}
|
|
89
59
|
className={classNames(
|
|
90
|
-
|
|
60
|
+
"fabric-headfoot",
|
|
91
61
|
className,
|
|
92
|
-
bg && getBgClass(bg),
|
|
93
|
-
color && getColorClass(color),
|
|
94
62
|
area === "head" ? "area-head" : "area-foot",
|
|
95
63
|
`leading-none`,
|
|
96
|
-
flex && "flex flex-nowrap
|
|
64
|
+
flex && "flex flex-nowrap",
|
|
97
65
|
align && `items-${align}`,
|
|
98
66
|
justify && `justify-${justify}`,
|
|
99
67
|
)}
|
|
100
|
-
style={styles}
|
|
101
68
|
{...aria}
|
|
102
69
|
>
|
|
103
70
|
{children}
|
|
@@ -105,10 +72,50 @@ const HeadFoot = ({
|
|
|
105
72
|
);
|
|
106
73
|
};
|
|
107
74
|
|
|
75
|
+
/**
|
|
76
|
+
* Header component that wraps children in a header element.
|
|
77
|
+
* It uses the HeadFoot component to handle layout and styling.
|
|
78
|
+
* It accepts properties for direction, alignment, and justification,
|
|
79
|
+
* allowing for flexible layout configurations.
|
|
80
|
+
* The `as` prop is set to "header" to render the element as a header.
|
|
81
|
+
* The `area` prop is set to "head" to indicate that this is a header area.
|
|
82
|
+
* It can be used to create a consistent header layout across an application.
|
|
83
|
+
*
|
|
84
|
+
* @param {HeadFootProps} props - The properties for the Header component.
|
|
85
|
+
* @returns A header element containing the children wrapped in the HeadFoot component.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```jsx
|
|
89
|
+
* <Header className="custom-header" dir="ltr">
|
|
90
|
+
* <h1>Header content goes here</h1>
|
|
91
|
+
* </Header>
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
108
94
|
export const Header = (props: HeadFootProps) => (
|
|
109
95
|
<HeadFoot as="header" area="head" {...props} />
|
|
110
96
|
);
|
|
111
97
|
|
|
98
|
+
/**
|
|
99
|
+
* Footer component that wraps children in a footer element.
|
|
100
|
+
* It uses the HeadFoot component to handle layout and styling.
|
|
101
|
+
* It accepts properties for direction, alignment, and justification,
|
|
102
|
+
* allowing for flexible layout configurations.
|
|
103
|
+
* The `as` prop is set to "footer" to render the element as a footer.
|
|
104
|
+
* The `area` prop is set to "foot" to indicate that this is a footer area.
|
|
105
|
+
* It can be used to create a consistent footer layout across an application.
|
|
106
|
+
* * The Footer component is designed to be flexible and can be styled with custom classes.
|
|
107
|
+
* It supports both default and flex layouts, allowing for alignment and justification of its children.
|
|
108
|
+
*
|
|
109
|
+
* @param {HeadFootProps} props - The properties for the Footer component.
|
|
110
|
+
* @returns A footer element containing the children wrapped in the HeadFoot component.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```jsx
|
|
114
|
+
* <Footer className="custom-footer" dir="ltr">
|
|
115
|
+
* <p>Footer content goes here</p>
|
|
116
|
+
* </Footer>
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
112
119
|
export const Footer = (props: HeadFootProps) => (
|
|
113
120
|
<HeadFoot as="footer" area="foot" {...props} />
|
|
114
121
|
);
|
package/src/core/page/Page.tsx
CHANGED
|
@@ -24,10 +24,18 @@
|
|
|
24
24
|
import classNames from "classnames";
|
|
25
25
|
import { Loading } from "../../components/animations/Animations";
|
|
26
26
|
import { Icon } from "../../components/icon/Icon";
|
|
27
|
-
import {
|
|
28
|
-
|
|
27
|
+
import {
|
|
28
|
+
type ChildrenProp,
|
|
29
|
+
type IconProps,
|
|
30
|
+
type RefProp,
|
|
31
|
+
type TestProps,
|
|
32
|
+
} from "../../types";
|
|
29
33
|
|
|
30
|
-
export interface PageProps
|
|
34
|
+
export interface PageProps
|
|
35
|
+
extends IconProps,
|
|
36
|
+
ChildrenProp,
|
|
37
|
+
TestProps,
|
|
38
|
+
RefProp<HTMLDivElement> {
|
|
31
39
|
/**
|
|
32
40
|
* page title
|
|
33
41
|
*/
|
|
@@ -47,9 +55,35 @@ export interface PageProps extends IconProps, ChildrenProp, TestProps {
|
|
|
47
55
|
}
|
|
48
56
|
|
|
49
57
|
/**
|
|
50
|
-
*
|
|
58
|
+
* Page component that wraps children in a div element.
|
|
59
|
+
* It includes a title section with an optional icon and a loading indicator.
|
|
60
|
+
* The component can be styled with a paper effect, page icon and title.
|
|
61
|
+
* It also accepts a loading prop to display a loading indicator.
|
|
62
|
+
*
|
|
63
|
+
* @param {PageProps} props - The properties for the Page component.
|
|
64
|
+
* @returns A div element containing the title and children, with optional loading indicator.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```jsx
|
|
68
|
+
* <Page
|
|
69
|
+
* title="My Page"
|
|
70
|
+
* icon="home"
|
|
71
|
+
* iconBg="bg-blue-500"
|
|
72
|
+
* iconColor="text-white"
|
|
73
|
+
* loading={false}
|
|
74
|
+
* paper={true}
|
|
75
|
+
* data-testid="my-page"
|
|
76
|
+
* data-test-value="page-value"
|
|
77
|
+
* >
|
|
78
|
+
* <p>This is the content of the page.</p>
|
|
79
|
+
* </Page>
|
|
80
|
+
* // Renders a page with a title, icon, and content.
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
83
|
+
* @see {@link https://adarshpastakia.github.io/react-fabric/?path=/story/core-application--page} for more details.
|
|
51
84
|
*/
|
|
52
85
|
export const Page = ({
|
|
86
|
+
ref,
|
|
53
87
|
children,
|
|
54
88
|
paper,
|
|
55
89
|
title,
|
|
@@ -61,22 +95,26 @@ export const Page = ({
|
|
|
61
95
|
loading,
|
|
62
96
|
"data-testid": testId,
|
|
63
97
|
"data-test-value": testValue,
|
|
98
|
+
...rest
|
|
64
99
|
}: PageProps) => {
|
|
65
100
|
return (
|
|
66
101
|
<div
|
|
67
102
|
data-testid={testId}
|
|
68
103
|
data-test-value={testValue}
|
|
104
|
+
data-loading={loading}
|
|
69
105
|
className={classNames(
|
|
70
|
-
|
|
106
|
+
"fabric-page relative",
|
|
71
107
|
"overflow-hidden grid area-content",
|
|
72
108
|
paper && "shadow-paper m-[6px] rounded-capped",
|
|
73
109
|
)}
|
|
110
|
+
ref={ref}
|
|
111
|
+
{...rest}
|
|
74
112
|
>
|
|
75
113
|
{title && (
|
|
76
114
|
<div
|
|
77
115
|
data-ref="pageTitle"
|
|
78
116
|
className={classNames(
|
|
79
|
-
|
|
117
|
+
"fabric-pageTitle",
|
|
80
118
|
"select-none flex gap-1 items-center justify-center px-1 py-0.5 font-medium text-center",
|
|
81
119
|
titleClassName,
|
|
82
120
|
)}
|
|
@@ -29,7 +29,6 @@ import {
|
|
|
29
29
|
type SizeTypeWithZero,
|
|
30
30
|
type TestProps,
|
|
31
31
|
} from "../../types";
|
|
32
|
-
import classes from "./Responsive.module.css";
|
|
33
32
|
|
|
34
33
|
export interface ContainerProps
|
|
35
34
|
extends AriaProps,
|
|
@@ -81,15 +80,32 @@ export interface ColProps
|
|
|
81
80
|
/**
|
|
82
81
|
* column flex
|
|
83
82
|
*/
|
|
84
|
-
flex?: "auto" | "fill" | "full";
|
|
83
|
+
flex?: "auto" | "fill" | "full" | "initial" | "content";
|
|
85
84
|
/**
|
|
86
85
|
* stretch inner content
|
|
87
86
|
*/
|
|
88
87
|
stretchContent?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* truncate text
|
|
90
|
+
*/
|
|
91
|
+
truncate?: boolean;
|
|
89
92
|
}
|
|
90
93
|
|
|
91
94
|
/**
|
|
92
|
-
*
|
|
95
|
+
* Container component that wraps children in a div element.
|
|
96
|
+
* It supports full width, gutter size, and additional CSS classes.
|
|
97
|
+
* It can be used to create a responsive layout with optional gutters for spacing.
|
|
98
|
+
* It accepts properties for full width, gutter size, and additional CSS classes.
|
|
99
|
+
*
|
|
100
|
+
* @param {ContainerProps} props - The properties for the Container component.
|
|
101
|
+
* @returns A div element containing the children with optional full width and gutter size.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```jsx
|
|
105
|
+
* <Container fullWidth={true} gutter="16px" className="custom-container">
|
|
106
|
+
* <p>This is a container with full width and gutter.</p>
|
|
107
|
+
* </Container>
|
|
108
|
+
* ```
|
|
93
109
|
*/
|
|
94
110
|
export const Container = ({
|
|
95
111
|
children,
|
|
@@ -101,7 +117,7 @@ export const Container = ({
|
|
|
101
117
|
return (
|
|
102
118
|
<div
|
|
103
119
|
className={classNames(
|
|
104
|
-
|
|
120
|
+
"fabric-container",
|
|
105
121
|
className,
|
|
106
122
|
!fullWidth && "container mx-auto",
|
|
107
123
|
)}
|
|
@@ -113,6 +129,26 @@ export const Container = ({
|
|
|
113
129
|
);
|
|
114
130
|
};
|
|
115
131
|
|
|
132
|
+
/**
|
|
133
|
+
* Row component that allows for flexible layout of columns.
|
|
134
|
+
* It supports various flex properties, alignment, and wrapping.
|
|
135
|
+
* It can be used to create a responsive layout with optional gutters for spacing.
|
|
136
|
+
* It accepts properties for gutter size, orientation, alignment, justification, and additional CSS classes.
|
|
137
|
+
*
|
|
138
|
+
* @param {RowProps} props - The properties for the Row component.
|
|
139
|
+
* @returns A div element representing a row with the specified flex and alignment properties.
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```jsx
|
|
143
|
+
* <Row gutter="16px" orient="row" align="center" justify="between">
|
|
144
|
+
* <Col flex="fill">Column 1</Col>
|
|
145
|
+
* <Col flex="fill">Column 2</Col>
|
|
146
|
+
* </Row>
|
|
147
|
+
* // Renders a row with two columns, each taking equal space, centered vertically and spaced evenly.
|
|
148
|
+
* ```
|
|
149
|
+
*
|
|
150
|
+
* @see {@link https://adarshpastakia.github.io/react-fabric/?path=/story/core-application--responsive} for more details.
|
|
151
|
+
*/
|
|
116
152
|
export const Row = ({
|
|
117
153
|
children,
|
|
118
154
|
gutter,
|
|
@@ -126,7 +162,7 @@ export const Row = ({
|
|
|
126
162
|
return (
|
|
127
163
|
<div
|
|
128
164
|
className={classNames(
|
|
129
|
-
|
|
165
|
+
"fabric-row",
|
|
130
166
|
className,
|
|
131
167
|
"flex",
|
|
132
168
|
orient === "row" && "flex-row",
|
|
@@ -145,10 +181,29 @@ export const Row = ({
|
|
|
145
181
|
);
|
|
146
182
|
};
|
|
147
183
|
|
|
184
|
+
/**
|
|
185
|
+
* Column component that allows for flexible layout within a row.
|
|
186
|
+
* It supports various flex properties, alignment, and truncation.
|
|
187
|
+
* It can be used to create a responsive layout with optional stretching of inner content.
|
|
188
|
+
* It accepts properties for flex size, alignment, truncation, and additional CSS classes.
|
|
189
|
+
*
|
|
190
|
+
* @param {ColProps} props - The properties for the Col component.
|
|
191
|
+
* @returns A div element representing a column with the specified flex and alignment properties.
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* ```jsx
|
|
195
|
+
* <Col flex="fill" align="center" truncate className="custom-col">
|
|
196
|
+
* <p>This is a column with flexible layout.</p>
|
|
197
|
+
* </Col>
|
|
198
|
+
* ```
|
|
199
|
+
*
|
|
200
|
+
* @see {@link https://adarshpastakia.github.io/react-fabric/?path=/story/core-application--responsive} for more details.
|
|
201
|
+
*/
|
|
148
202
|
export const Col = ({
|
|
149
203
|
children,
|
|
150
204
|
flex,
|
|
151
205
|
align,
|
|
206
|
+
truncate,
|
|
152
207
|
className,
|
|
153
208
|
stretchContent,
|
|
154
209
|
...aria
|
|
@@ -156,13 +211,16 @@ export const Col = ({
|
|
|
156
211
|
return (
|
|
157
212
|
<div
|
|
158
213
|
className={classNames(
|
|
159
|
-
|
|
214
|
+
"fabric-col",
|
|
160
215
|
className,
|
|
161
|
-
stretchContent &&
|
|
162
|
-
flex === "auto" && "flex-content",
|
|
216
|
+
stretchContent && "stretchContent",
|
|
163
217
|
flex === "fill" && "flex-1",
|
|
164
218
|
flex === "full" && "flex-full",
|
|
219
|
+
flex === "auto" && "flex-auto",
|
|
220
|
+
flex === "initial" && "flex-initial",
|
|
221
|
+
flex === "content" && "flex-none",
|
|
165
222
|
align && `self-${align}`,
|
|
223
|
+
truncate && "truncate",
|
|
166
224
|
)}
|
|
167
225
|
{...aria}
|
|
168
226
|
>
|
|
@@ -24,10 +24,24 @@
|
|
|
24
24
|
import classNames from "classnames";
|
|
25
25
|
import { type ChildrenProp, type CssProp, type RefProp } from "../../types";
|
|
26
26
|
import { ErrorBoundary } from "../boundary/ErrorBoundary";
|
|
27
|
-
import classes from "./Section.module.css";
|
|
28
27
|
|
|
29
28
|
/**
|
|
30
|
-
*
|
|
29
|
+
* A component that represents a section of content within a page, with templated grid layout.
|
|
30
|
+
* It can be used to group related content together and can be styled with additional CSS classes.
|
|
31
|
+
* It supports RTL (right-to-left) text direction.
|
|
32
|
+
*
|
|
33
|
+
* @param {ChildrenProp} children - The children to be rendered inside the section.
|
|
34
|
+
* @param {CssProp} className - Additional CSS classes to apply to the section.
|
|
35
|
+
* @param {RefProp<HTMLDivElement>} ref - A ref to the section element.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```jsx
|
|
39
|
+
* <Section className="my-section" ref={sectionRef}>
|
|
40
|
+
* <p>This is a section.</p>
|
|
41
|
+
* </Section>
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @see {@link https://adarshpastakia.github.io/react-fabric/?path=/docs/core-application--section} for more details.
|
|
31
45
|
*/
|
|
32
46
|
export const Section = ({
|
|
33
47
|
children,
|
|
@@ -43,7 +57,7 @@ export const Section = ({
|
|
|
43
57
|
dir={dir}
|
|
44
58
|
ref={ref}
|
|
45
59
|
className={classNames(
|
|
46
|
-
|
|
60
|
+
"fabric-section",
|
|
47
61
|
className,
|
|
48
62
|
"grid area-content overflow-hidden",
|
|
49
63
|
)}
|
|
@@ -25,7 +25,7 @@ import { isColor } from "@react-fabric/utilities";
|
|
|
25
25
|
import classNames from "classnames";
|
|
26
26
|
import { useMemo } from "react";
|
|
27
27
|
import { type ChildrenProp } from "../../types";
|
|
28
|
-
import
|
|
28
|
+
import { useApplicationContext } from "../../context/Global";
|
|
29
29
|
|
|
30
30
|
export interface ThemeProps {
|
|
31
31
|
/**
|
|
@@ -36,9 +36,9 @@ export interface ThemeProps {
|
|
|
36
36
|
* branding css className
|
|
37
37
|
*
|
|
38
38
|
* .branding {
|
|
39
|
-
* --primary: #color;
|
|
40
|
-
* --accent: #color;
|
|
41
|
-
* --tint: #color;
|
|
39
|
+
* --color-primary: #color;
|
|
40
|
+
* --color-accent: #color;
|
|
41
|
+
* --color-tint: #color;
|
|
42
42
|
* }
|
|
43
43
|
*/
|
|
44
44
|
branding?: string;
|
|
@@ -57,11 +57,31 @@ export interface ThemeProps {
|
|
|
57
57
|
/**
|
|
58
58
|
* component rounding
|
|
59
59
|
*/
|
|
60
|
-
rounding?: "
|
|
60
|
+
rounding?: "sm" | "md" | "full";
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
/**
|
|
64
|
-
*
|
|
64
|
+
* This component provides a way to set the theme for the application.
|
|
65
|
+
* It allows you to set the primary, accent, and tint colors, as well as the color scheme and rounding.
|
|
66
|
+
* It uses CSS variables to apply the colors and styles.
|
|
67
|
+
* It also applies the branding className to the root element.
|
|
68
|
+
* The component uses the `useApplicationContext` hook to get the current color scheme from the application context.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```jsx
|
|
72
|
+
* <ThemeProvider
|
|
73
|
+
* branding="my-branding"
|
|
74
|
+
* primaryColor="#ff0000"
|
|
75
|
+
* accentColor="#00ff00"
|
|
76
|
+
* tintColor="#0000ff"
|
|
77
|
+
* colorScheme="dark"
|
|
78
|
+
* rounding="md"
|
|
79
|
+
* >
|
|
80
|
+
* <div>Your content here</div>
|
|
81
|
+
* </ThemeProvider>
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* @see {@link https://adarshpastakia.github.io/react-fabric/?path=/story/core-application--theme-provider} for more details.
|
|
65
85
|
*/
|
|
66
86
|
export const ThemeProvider = ({
|
|
67
87
|
children,
|
|
@@ -72,25 +92,26 @@ export const ThemeProvider = ({
|
|
|
72
92
|
colorScheme,
|
|
73
93
|
rounding,
|
|
74
94
|
}: ThemeProps & ChildrenProp) => {
|
|
95
|
+
const { currentColorScheme } = useApplicationContext();
|
|
75
96
|
const styles = useMemo(() => {
|
|
76
97
|
const ret: KeyValue = {};
|
|
77
98
|
if (primaryColor && isColor(primaryColor)) {
|
|
78
|
-
ret["--primary"] = primaryColor;
|
|
99
|
+
ret["--color-primary"] = primaryColor;
|
|
79
100
|
}
|
|
80
101
|
if (primaryColor && !isColor(primaryColor)) {
|
|
81
|
-
ret["--primary"] = `var(
|
|
102
|
+
ret["--color-primary"] = `var(--color-${primaryColor})`;
|
|
82
103
|
}
|
|
83
104
|
if (accentColor && isColor(accentColor)) {
|
|
84
|
-
ret["--accent"] = accentColor;
|
|
105
|
+
ret["--color-accent"] = accentColor;
|
|
85
106
|
}
|
|
86
107
|
if (accentColor && !isColor(accentColor)) {
|
|
87
|
-
ret["--accent"] = `var(
|
|
108
|
+
ret["--color-accent"] = `var(--color-${accentColor})`;
|
|
88
109
|
}
|
|
89
110
|
if (tintColor && isColor(tintColor)) {
|
|
90
|
-
ret["--tint"] = tintColor;
|
|
111
|
+
ret["--color-tint"] = tintColor;
|
|
91
112
|
}
|
|
92
113
|
if (tintColor && !isColor(tintColor)) {
|
|
93
|
-
ret["--tint"] = `var(
|
|
114
|
+
ret["--color-tint"] = `var(--color-${tintColor})`;
|
|
94
115
|
}
|
|
95
116
|
return ret;
|
|
96
117
|
}, [primaryColor, accentColor, tintColor]);
|
|
@@ -98,10 +119,10 @@ export const ThemeProvider = ({
|
|
|
98
119
|
return (
|
|
99
120
|
<div
|
|
100
121
|
style={styles}
|
|
101
|
-
data-color-scheme={colorScheme}
|
|
122
|
+
data-color-scheme={colorScheme ?? currentColorScheme}
|
|
102
123
|
data-rounding={rounding}
|
|
103
124
|
className={classNames(
|
|
104
|
-
|
|
125
|
+
"fabric-themeProvider",
|
|
105
126
|
"contents theme-base",
|
|
106
127
|
branding,
|
|
107
128
|
)}
|