@react-fabric/core 1.0.0-beta.8 → 1.0.1
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/css/components/_animations.css +52 -0
- package/css/components/_avatar.css +89 -0
- package/css/components/_button.css +218 -0
- package/css/components/_buttonGroup.css +62 -0
- package/css/components/_callout.css +32 -0
- package/css/components/_card.css +167 -0
- package/css/components/_chip.css +125 -0
- package/css/components/_collapsable.css +32 -0
- package/{src/overlays/message/Message.module.css → css/components/_divider.css} +11 -10
- package/{src/components/dropdown/Dropdown.module.css → css/components/_dropdown.css} +3 -2
- package/{src/overlays/flyout/Flyout.module.css → css/components/_flyout.css} +15 -9
- package/css/components/_media.css +102 -0
- package/{src/components/menu/Menu.module.css → css/components/_menu.css} +21 -20
- package/{src/components/meter/Meter.module.css → css/components/_meter.css} +15 -20
- package/{src/overlays/modal/Modal.module.css → css/components/_modal.css} +9 -9
- package/{src/components/panel/Panel.module.css → css/components/_panel.css} +19 -19
- package/{src/components/progress/Progress.module.css → css/components/_progress.css} +7 -10
- package/css/components/_sonner.css +431 -0
- package/{src/components/tabpanel/TabPanel.module.css → css/components/_tabPanel.css} +125 -85
- package/css/components/_titlebar.css +48 -0
- package/css/components/index.css +47 -0
- package/css/core/_aside.css +176 -0
- package/css/core/_content.css +31 -0
- package/css/core/_errorboundary.css +55 -0
- package/css/core/_responsive.css +45 -0
- package/css/core/_typography.css +69 -0
- package/css/core/_viewport.css +33 -0
- package/{src/hooks/useClientService.tsx → css/core/index.css} +7 -7
- package/css/reset/_gradients.css +36 -33
- package/css/reset/_reset.css +206 -300
- package/css/reset/_text.css +31 -61
- package/css/reset/_theme.css +467 -81
- package/css/reset/index.css +23 -21
- package/css/styles.css +30 -23
- package/css/theme/_colors.css +445 -0
- package/css/theme/_utilities.css +528 -0
- package/css/theme/_variants.css +128 -0
- package/css/theme/index.css +55 -0
- package/dist/cjs/components/actionLabel/ActionLabel.js +25 -12
- package/dist/cjs/{overlays → components}/alert/Alert.js +76 -53
- package/dist/cjs/components/animations/Indicator.js +72 -0
- package/dist/cjs/components/animations/Loader.js +77 -0
- package/dist/cjs/components/animations/LoadingBars.js +37 -0
- package/dist/cjs/components/animations/LoadingLine.js +59 -0
- package/dist/cjs/components/animations/LoadingSpinner.js +37 -0
- package/dist/cjs/components/animations/Skeleton.js +88 -0
- package/dist/cjs/components/avatar/Avatar.js +41 -20
- package/dist/cjs/components/avatar/AvatarGroup.js +37 -16
- package/dist/cjs/components/badge/Badge.js +90 -68
- package/dist/cjs/components/button/Button.js +198 -136
- package/dist/cjs/components/button/ButtonGroup.js +86 -21
- package/dist/cjs/components/button/ConfirmButton.js +55 -41
- package/dist/cjs/components/button/ToggleButtonGroup.js +84 -32
- package/dist/cjs/components/callout/Callout.js +56 -25
- package/dist/cjs/components/card/Card.js +90 -42
- package/dist/cjs/components/card/CardCover.js +38 -27
- package/dist/cjs/components/card/FlipContent.js +47 -0
- package/dist/cjs/components/chip/Chip.js +80 -37
- package/dist/cjs/components/collapsable/Collapsable.js +62 -31
- package/dist/cjs/components/divider/Divider.js +58 -24
- package/dist/cjs/components/dropdown/Dropdown.js +92 -45
- package/dist/cjs/components/dropdown/DropdownTool.js +6 -7
- package/dist/cjs/components/effect/GlassEffect.js +259 -0
- package/dist/cjs/components/effect/MatteEffect.js +127 -0
- package/dist/cjs/components/effect/StyleEffect.js +43 -0
- package/dist/cjs/components/empty/EmptyContent.js +37 -49
- package/dist/cjs/components/flyout/Flyout.js +170 -0
- package/dist/cjs/components/hotkey/HotKey.js +42 -0
- package/dist/cjs/components/icon/Icon.js +81 -80
- package/dist/cjs/components/media/Media.js +154 -77
- package/dist/cjs/components/menu/ContextMenu.js +45 -20
- package/dist/cjs/components/menu/Menu.js +98 -38
- package/dist/cjs/components/menu/MenuItem.js +102 -74
- package/dist/cjs/components/meter/Meter.js +35 -12
- package/dist/cjs/components/modal/Modal.js +152 -0
- package/dist/cjs/components/navigator/Navigator.js +81 -36
- package/dist/cjs/components/panel/Panel.js +115 -60
- package/dist/cjs/components/panel/PanelGroup.js +42 -16
- package/dist/cjs/components/panel/PanelStack.js +47 -16
- package/dist/cjs/components/pillbox/Pillbox.js +118 -0
- package/dist/cjs/components/progress/ProgressBar.js +30 -14
- package/dist/cjs/components/progress/ProgressCircle.js +27 -11
- package/dist/cjs/components/tabpanel/Tab.js +53 -37
- package/dist/cjs/components/tabpanel/TabPanel.js +74 -28
- package/dist/cjs/components/titlebar/Titlebar.js +52 -0
- package/dist/cjs/components/tooltip/Tooltip.js +180 -0
- package/dist/cjs/context/Global.js +159 -80
- package/dist/cjs/context/ModalManager.js +60 -0
- package/dist/cjs/context/context.js +43 -0
- package/dist/cjs/core/areaToggle/AreaToggle.js +41 -0
- package/dist/cjs/core/aside/Aside.js +178 -83
- package/dist/cjs/core/boundary/ErrorBoundary.js +37 -34
- package/dist/cjs/core/boundary/ErrorIcon.js +32 -19
- package/dist/cjs/core/content/Content.js +26 -37
- package/dist/cjs/core/headfoot/HeadFoot.js +133 -35
- package/dist/cjs/core/layout/Layout.js +28 -0
- package/dist/cjs/core/responsive/Responsive.js +62 -26
- package/dist/cjs/core/theme/ThemeProvider.js +35 -41
- package/dist/cjs/core/viewport/Viewport.js +26 -22
- package/dist/cjs/hooks/useClientService.js +39 -18
- package/dist/cjs/hooks/useContextMenu.js +103 -0
- package/dist/cjs/hooks/useControlledValue.js +13 -7
- package/dist/cjs/hooks/useDebounce.js +37 -21
- package/dist/cjs/hooks/useEffectDebugger.js +79 -60
- package/dist/cjs/hooks/useIsDark.js +34 -26
- package/dist/cjs/hooks/useIsRtl.js +13 -3
- package/dist/cjs/hooks/useNavigator.js +12 -9
- package/dist/cjs/hooks/useNotificationService.js +199 -0
- package/dist/cjs/hooks/useOverlayService.js +82 -41
- package/dist/cjs/hooks/usePropState.js +41 -0
- package/dist/cjs/hooks/usePropToggle.js +32 -26
- package/dist/cjs/hooks/useResize.js +47 -38
- package/dist/cjs/hooks/useResizeObserver.js +26 -7
- package/dist/cjs/hooks/useStorage.js +29 -16
- package/dist/cjs/i18n/index.js +25 -23
- package/dist/cjs/index.js +142 -94
- package/dist/cjs/typography/Abbr.js +43 -20
- package/dist/cjs/typography/Anchor.js +39 -0
- package/dist/cjs/typography/Copy.js +28 -28
- package/dist/cjs/typography/Kbd.js +43 -0
- package/dist/cjs/typography/Mark.js +34 -17
- package/dist/cjs/typography/Text.js +36 -54
- package/dist/cjs/typography/Title.js +17 -40
- package/dist/cjs/utils/calculateDimensions.js +38 -23
- package/dist/cjs/utils/cloneElement.js +64 -0
- package/dist/cjs/{core/section/Section.js → utils/getBadgeProps.js} +25 -21
- package/dist/cjs/utils/getColor.js +42 -36
- package/dist/cjs/utils/getIconProps.js +63 -0
- package/dist/cjs/utils/getTooltipProps.js +66 -0
- package/dist/cjs/utils/nodeCheck.js +4 -4
- package/dist/esm/components/actionLabel/ActionLabel.js +25 -12
- package/dist/esm/{overlays → components}/alert/Alert.js +73 -50
- package/dist/esm/components/animations/Indicator.js +72 -0
- package/dist/esm/components/animations/Loader.js +77 -0
- package/dist/esm/components/animations/LoadingBars.js +37 -0
- package/dist/esm/components/animations/LoadingLine.js +59 -0
- package/dist/esm/components/animations/LoadingSpinner.js +37 -0
- package/dist/esm/components/animations/Skeleton.js +88 -0
- package/dist/esm/components/avatar/Avatar.js +42 -21
- package/dist/esm/components/avatar/AvatarGroup.js +37 -16
- package/dist/esm/components/badge/Badge.js +93 -70
- package/dist/esm/components/button/Button.js +199 -137
- package/dist/esm/components/button/ButtonGroup.js +87 -22
- package/dist/esm/components/button/ConfirmButton.js +58 -44
- package/dist/esm/components/button/ToggleButtonGroup.js +86 -34
- package/dist/esm/components/callout/Callout.js +56 -25
- package/dist/esm/components/card/Card.js +92 -44
- package/dist/esm/components/card/CardCover.js +38 -27
- package/dist/esm/components/card/FlipContent.js +47 -0
- package/dist/esm/components/chip/Chip.js +81 -38
- package/dist/esm/components/collapsable/Collapsable.js +63 -32
- package/dist/esm/components/divider/Divider.js +59 -25
- package/dist/esm/components/dropdown/Dropdown.js +95 -48
- package/dist/esm/components/dropdown/DropdownTool.js +6 -7
- package/dist/esm/components/effect/GlassEffect.js +259 -0
- package/dist/esm/components/effect/MatteEffect.js +127 -0
- package/dist/esm/components/effect/StyleEffect.js +43 -0
- package/dist/esm/components/empty/EmptyContent.js +38 -50
- package/dist/esm/components/flyout/Flyout.js +170 -0
- package/dist/esm/components/hotkey/HotKey.js +42 -0
- package/dist/esm/components/icon/Icon.js +83 -82
- package/dist/esm/components/media/Media.js +156 -79
- package/dist/esm/components/menu/ContextMenu.js +46 -21
- package/dist/esm/components/menu/Menu.js +101 -41
- package/dist/esm/components/menu/MenuItem.js +98 -70
- package/dist/esm/components/meter/Meter.js +36 -13
- package/dist/esm/components/modal/Modal.js +152 -0
- package/dist/esm/components/navigator/Navigator.js +81 -36
- package/dist/esm/components/panel/Panel.js +117 -62
- package/dist/esm/components/panel/PanelGroup.js +43 -17
- package/dist/esm/components/panel/PanelStack.js +48 -17
- package/dist/esm/components/pillbox/Pillbox.js +118 -0
- package/dist/esm/components/progress/ProgressBar.js +31 -15
- package/dist/esm/components/progress/ProgressCircle.js +28 -12
- package/dist/esm/components/tabpanel/Tab.js +54 -38
- package/dist/esm/components/tabpanel/TabPanel.js +75 -29
- package/dist/esm/components/titlebar/Titlebar.js +52 -0
- package/dist/esm/components/tooltip/Tooltip.js +180 -0
- package/dist/esm/context/Global.js +161 -78
- package/dist/esm/context/ModalManager.js +60 -0
- package/dist/esm/context/context.js +40 -0
- package/dist/esm/core/areaToggle/AreaToggle.js +41 -0
- package/dist/esm/core/aside/Aside.js +179 -84
- package/dist/esm/core/boundary/ErrorBoundary.js +38 -35
- package/dist/esm/core/boundary/ErrorIcon.js +32 -19
- package/dist/esm/core/content/Content.js +26 -37
- package/dist/esm/core/headfoot/HeadFoot.js +134 -36
- package/dist/esm/core/layout/Layout.js +28 -0
- package/dist/esm/core/responsive/Responsive.js +62 -26
- package/dist/esm/core/theme/ThemeProvider.js +36 -42
- package/dist/esm/core/viewport/Viewport.js +26 -22
- package/dist/esm/hooks/useClientService.js +39 -18
- package/dist/esm/hooks/useContextMenu.js +103 -0
- package/dist/esm/hooks/useControlledValue.js +14 -8
- package/dist/esm/hooks/useDebounce.js +37 -21
- package/dist/esm/hooks/useEffectDebugger.js +81 -62
- package/dist/esm/hooks/useIsDark.js +34 -26
- package/dist/esm/hooks/useIsRtl.js +13 -3
- package/dist/esm/hooks/useNavigator.js +13 -10
- package/dist/esm/hooks/useNotificationService.js +199 -0
- package/dist/esm/hooks/useOverlayService.js +83 -42
- package/dist/esm/hooks/usePropState.js +40 -0
- package/dist/esm/hooks/usePropToggle.js +33 -27
- package/dist/esm/hooks/useResize.js +48 -39
- package/dist/esm/hooks/useResizeObserver.js +27 -8
- package/dist/esm/hooks/useStorage.js +30 -17
- package/dist/esm/i18n/index.js +23 -21
- package/dist/esm/index.js +87 -44
- package/dist/esm/typography/Abbr.js +45 -22
- package/dist/esm/typography/Anchor.js +39 -0
- package/dist/esm/typography/Copy.js +28 -28
- package/dist/esm/typography/Kbd.js +43 -0
- package/dist/esm/typography/Mark.js +35 -18
- package/dist/esm/typography/Text.js +39 -57
- package/dist/esm/typography/Title.js +17 -40
- package/dist/esm/utils/calculateDimensions.js +38 -23
- package/dist/esm/utils/cloneElement.js +64 -0
- package/dist/esm/{core/section/Section.js → utils/getBadgeProps.js} +25 -21
- package/dist/esm/utils/getColor.js +43 -34
- package/dist/esm/utils/getIconProps.js +63 -0
- package/dist/esm/utils/getTooltipProps.js +66 -0
- package/dist/esm/utils/nodeCheck.js +4 -4
- package/dist/types/components/actionLabel/ActionLabel.d.ts +20 -7
- package/dist/types/components/alert/Alert.d.ts +74 -0
- package/dist/types/components/animations/Indicator.d.ts +57 -0
- package/dist/types/components/animations/Loader.d.ts +65 -0
- package/dist/types/components/animations/LoadingBars.d.ts +61 -0
- package/dist/types/components/animations/LoadingLine.d.ts +43 -0
- package/dist/types/components/animations/LoadingSpinner.d.ts +61 -0
- package/dist/types/components/animations/Skeleton.d.ts +61 -0
- package/dist/types/components/avatar/Avatar.d.ts +70 -19
- package/dist/types/components/avatar/AvatarGroup.d.ts +51 -14
- package/dist/types/components/badge/Badge.d.ts +64 -14
- package/dist/types/components/button/Button.d.ts +72 -55
- package/dist/types/components/button/ButtonGroup.d.ts +86 -24
- package/dist/types/components/button/ConfirmButton.d.ts +21 -7
- package/dist/types/components/button/ToggleButtonGroup.d.ts +88 -44
- package/dist/types/components/callout/Callout.d.ts +58 -7
- package/dist/types/components/card/Card.d.ts +66 -25
- package/dist/types/components/card/CardCover.d.ts +52 -7
- package/dist/types/components/card/FlipContent.d.ts +50 -0
- package/dist/types/components/chip/Chip.d.ts +72 -20
- package/dist/types/components/collapsable/Collapsable.d.ts +55 -15
- package/dist/types/components/divider/Divider.d.ts +25 -8
- package/dist/types/components/dropdown/Dropdown.d.ts +42 -9
- package/dist/types/components/dropdown/DropdownTool.d.ts +22 -4
- package/dist/types/components/effect/GlassEffect.d.ts +5 -0
- package/dist/types/components/effect/MatteEffect.d.ts +40 -0
- package/dist/types/components/effect/StyleEffect.d.ts +27 -0
- package/dist/types/components/empty/EmptyContent.d.ts +53 -9
- package/dist/types/components/flyout/Flyout.d.ts +60 -0
- package/dist/types/components/hotkey/HotKey.d.ts +41 -0
- package/dist/types/components/icon/Icon.d.ts +74 -24
- package/dist/types/components/media/Media.d.ts +72 -4
- package/dist/types/components/menu/ContextMenu.d.ts +22 -5
- package/dist/types/components/menu/Menu.d.ts +26 -2
- package/dist/types/components/menu/MenuItem.d.ts +19 -4
- package/dist/types/components/menu/types.d.ts +23 -14
- package/dist/types/components/meter/Meter.d.ts +23 -3
- package/dist/types/components/modal/Modal.d.ts +52 -0
- package/dist/types/components/navigator/Navigator.d.ts +30 -4
- package/dist/types/components/panel/Panel.d.ts +43 -23
- package/dist/types/components/panel/PanelGroup.d.ts +22 -3
- package/dist/types/components/panel/PanelStack.d.ts +28 -2
- package/dist/types/components/pillbox/Pillbox.d.ts +95 -0
- package/dist/types/components/progress/ProgressBar.d.ts +19 -4
- package/dist/types/components/progress/ProgressCircle.d.ts +18 -4
- package/dist/types/components/tabpanel/Tab.d.ts +42 -10
- package/dist/types/components/tabpanel/TabPanel.d.ts +47 -7
- package/dist/types/components/titlebar/Titlebar.d.ts +54 -0
- package/dist/types/components/tooltip/Tooltip.d.ts +76 -0
- package/dist/types/context/Global.d.ts +39 -69
- package/dist/types/context/ModalManager.d.ts +30 -0
- package/dist/types/context/context.d.ts +107 -0
- package/dist/types/core/areaToggle/AreaToggle.d.ts +33 -0
- package/dist/types/core/aside/Aside.d.ts +75 -20
- package/dist/types/core/boundary/ErrorBoundary.d.ts +43 -4
- package/dist/types/core/boundary/ErrorIcon.d.ts +38 -1
- package/dist/types/core/content/Content.d.ts +38 -6
- package/dist/types/core/headfoot/HeadFoot.d.ts +48 -14
- package/dist/types/core/layout/Layout.d.ts +38 -0
- package/dist/types/core/responsive/Responsive.d.ts +45 -15
- package/dist/types/core/theme/ThemeProvider.d.ts +35 -11
- package/dist/types/core/viewport/Viewport.d.ts +27 -3
- package/dist/types/hooks/useClientService.d.ts +43 -1
- package/dist/types/hooks/useContextMenu.d.ts +10 -0
- package/dist/types/hooks/useControlledValue.d.ts +28 -4
- package/dist/types/hooks/useDebounce.d.ts +38 -2
- package/dist/types/hooks/useEffectDebugger.d.ts +73 -4
- package/dist/types/hooks/useIsDark.d.ts +6 -0
- package/dist/types/hooks/useIsRtl.d.ts +35 -1
- package/dist/types/hooks/useNavigator.d.ts +37 -2
- package/dist/types/hooks/useNotificationService.d.ts +60 -0
- package/dist/types/hooks/useOverlayService.d.ts +28 -8
- package/dist/types/hooks/usePropState.d.ts +26 -0
- package/dist/types/hooks/usePropToggle.d.ts +41 -7
- package/dist/types/hooks/useResize.d.ts +46 -4
- package/dist/types/hooks/useResizeObserver.d.ts +45 -3
- package/dist/types/hooks/useStorage.d.ts +32 -2
- package/dist/types/i18n/index.d.ts +27 -3
- package/dist/types/index.d.ts +106 -18
- package/dist/types/types/colors.d.ts +29 -0
- package/dist/types/types/index.d.ts +216 -76
- package/dist/types/typography/Abbr.d.ts +51 -6
- package/dist/types/typography/Anchor.d.ts +41 -0
- package/dist/types/typography/Copy.d.ts +36 -2
- package/dist/types/typography/Kbd.d.ts +40 -0
- package/dist/types/typography/Mark.d.ts +44 -7
- package/dist/types/typography/Text.d.ts +40 -24
- package/dist/types/typography/Title.d.ts +37 -26
- package/dist/types/typography/types.d.ts +32 -0
- package/dist/types/utils/calculateDimensions.d.ts +50 -6
- package/dist/types/utils/cloneElement.d.ts +41 -0
- package/dist/types/utils/getBadgeProps.d.ts +16 -0
- package/dist/types/utils/getColor.d.ts +43 -4
- package/dist/types/utils/getIconProps.d.ts +45 -0
- package/dist/types/utils/getTooltipProps.d.ts +47 -0
- package/dist/types/utils/index.d.ts +28 -0
- package/dist/types/utils/nodeCheck.d.ts +1 -2
- package/package.json +29 -21
- package/src/components/actionLabel/ActionLabel.tsx +28 -39
- package/src/components/alert/Alert.tsx +261 -0
- package/src/components/animations/Indicator.tsx +76 -0
- package/src/components/animations/Loader.tsx +89 -0
- package/src/components/animations/LoadingBars.tsx +70 -0
- package/src/components/animations/LoadingLine.tsx +51 -0
- package/src/components/animations/LoadingSpinner.tsx +70 -0
- package/src/components/animations/Skeleton.tsx +100 -0
- package/src/components/avatar/Avatar.tsx +89 -70
- package/src/components/avatar/AvatarGroup.tsx +65 -74
- package/src/components/badge/Badge.tsx +141 -108
- package/src/components/button/Button.tsx +223 -238
- package/src/components/button/ButtonGroup.tsx +117 -77
- package/src/components/button/ConfirmButton.tsx +60 -90
- package/src/components/button/ToggleButtonGroup.tsx +134 -120
- package/src/components/callout/Callout.tsx +81 -59
- package/src/components/card/Card.tsx +131 -113
- package/src/components/card/CardCover.tsx +61 -61
- package/src/components/card/FlipContent.tsx +78 -0
- package/src/components/chip/Chip.tsx +139 -99
- package/src/components/collapsable/Collapsable.tsx +79 -77
- package/src/components/divider/Divider.tsx +74 -53
- package/src/components/dropdown/Dropdown.tsx +109 -106
- package/src/components/dropdown/DropdownTool.tsx +29 -12
- package/src/components/effect/GlassEffect.tsx +221 -0
- package/src/components/effect/MatteEffect.tsx +99 -0
- package/src/components/effect/StyleEffect.tsx +36 -0
- package/src/components/empty/EmptyContent.tsx +60 -99
- package/src/components/flyout/Flyout.tsx +257 -0
- package/src/components/hotkey/HotKey.tsx +57 -0
- package/src/components/icon/Icon.tsx +131 -130
- package/src/components/media/Media.tsx +184 -154
- package/src/components/menu/ContextMenu.tsx +56 -39
- package/src/components/menu/Menu.tsx +121 -84
- package/src/components/menu/MenuItem.tsx +87 -69
- package/src/components/menu/types.ts +23 -28
- package/src/components/meter/Meter.tsx +34 -17
- package/src/components/modal/Modal.tsx +226 -0
- package/src/components/navigator/Navigator.tsx +93 -38
- package/src/components/panel/Panel.tsx +123 -131
- package/src/components/panel/PanelGroup.tsx +49 -43
- package/src/components/panel/PanelStack.tsx +63 -62
- package/src/components/pillbox/Pillbox.tsx +208 -0
- package/src/components/progress/ProgressBar.tsx +33 -33
- package/src/components/progress/ProgressCircle.tsx +29 -37
- package/src/components/tabpanel/Tab.tsx +84 -73
- package/src/components/tabpanel/TabPanel.tsx +102 -51
- package/src/components/titlebar/Titlebar.tsx +115 -0
- package/src/components/tooltip/Tooltip.tsx +255 -0
- package/src/context/Global.tsx +148 -148
- package/src/context/ModalManager.tsx +68 -0
- package/src/context/context.ts +111 -0
- package/src/core/areaToggle/AreaToggle.tsx +45 -0
- package/src/core/aside/Aside.tsx +200 -155
- package/src/core/boundary/ErrorBoundary.tsx +50 -68
- package/src/core/boundary/ErrorIcon.tsx +34 -32
- package/src/core/content/Content.tsx +41 -50
- package/src/core/headfoot/HeadFoot.tsx +162 -81
- package/src/core/layout/Layout.tsx +54 -0
- package/src/core/responsive/Responsive.tsx +91 -98
- package/src/core/theme/ThemeProvider.tsx +45 -56
- package/src/core/viewport/Viewport.tsx +25 -27
- package/src/hooks/useClientService.ts +47 -0
- package/src/hooks/useContextMenu.tsx +131 -0
- package/src/hooks/useControlledValue.ts +47 -0
- package/src/hooks/useDebounce.ts +41 -24
- package/src/hooks/useEffectDebugger.ts +105 -94
- package/src/hooks/useIsDark.ts +10 -24
- package/src/hooks/useIsRtl.ts +32 -20
- package/src/hooks/useNavigator.tsx +41 -26
- package/src/hooks/useNotificationService.tsx +239 -0
- package/src/hooks/useOverlayService.tsx +67 -20
- package/src/hooks/usePropState.ts +52 -0
- package/src/hooks/usePropToggle.ts +54 -47
- package/src/hooks/useResize.ts +69 -45
- package/src/hooks/useResizeObserver.ts +59 -34
- package/src/hooks/useStorage.ts +40 -48
- package/src/i18n/index.ts +24 -25
- package/src/index.ts +115 -44
- package/src/types/colors.ts +49 -0
- package/src/types/global.d.ts +40 -17
- package/src/types/index.ts +243 -155
- package/src/typography/Abbr.tsx +62 -59
- package/src/typography/Anchor.tsx +63 -0
- package/src/typography/Copy.tsx +39 -29
- package/src/typography/Kbd.tsx +50 -0
- package/src/typography/Mark.tsx +56 -51
- package/src/typography/Text.tsx +57 -128
- package/src/typography/Title.tsx +36 -108
- package/src/typography/types.ts +27 -17
- package/src/utils/calculateDimensions.ts +50 -40
- package/src/utils/cloneElement.ts +61 -0
- package/src/{core/content/Content.module.css → utils/getBadgeProps.ts} +20 -15
- package/src/utils/getColor.ts +42 -36
- package/src/utils/getIconProps.ts +58 -0
- package/src/utils/getTooltipProps.ts +59 -0
- package/src/utils/index.ts +23 -17
- package/src/utils/nodeCheck.ts +4 -8
- package/css/flags.rect.css +0 -1607
- package/css/flags.wavy.css +0 -1606
- package/css/index.js +0 -250
- package/css/tailwind/colors.ts +0 -158
- package/dist/cjs/components/actionLabel/ActionLabel.module.css +0 -1
- package/dist/cjs/components/animations/Animations.js +0 -142
- 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.js +0 -71
- 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/context/NotificationCenter.js +0 -254
- 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.js +0 -66
- 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/hotkeys/HotKey.js +0 -47
- package/dist/cjs/hotkeys/HotKeyLabel.js +0 -52
- package/dist/cjs/hotkeys/HotKeyWrapper.js +0 -98
- package/dist/cjs/hotkeys/commons.js +0 -56
- package/dist/cjs/overlays/alert/Alert.module.css +0 -1
- package/dist/cjs/overlays/flyout/Flyout.js +0 -152
- package/dist/cjs/overlays/flyout/Flyout.module.css +0 -1
- package/dist/cjs/overlays/message/Message.js +0 -84
- package/dist/cjs/overlays/message/Message.module.css +0 -1
- package/dist/cjs/overlays/modal/Modal.js +0 -132
- package/dist/cjs/overlays/modal/Modal.module.css +0 -1
- package/dist/cjs/overlays/toast/Toast.js +0 -166
- package/dist/cjs/overlays/toast/Toast.module.css +0 -1
- package/dist/cjs/overlays/tooltip/Tooltip.js +0 -133
- package/dist/cjs/overlays/tooltip/Tooltip.module.css +0 -1
- package/dist/cjs/types/icons.js +0 -200
- package/dist/cjs/typography/Link.js +0 -55
- package/dist/cjs/typography/Typography.module.css +0 -1
- package/dist/cjs/typography/types.js +0 -42
- package/dist/esm/components/actionLabel/ActionLabel.module.css +0 -1
- package/dist/esm/components/animations/Animations.js +0 -138
- 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.js +0 -71
- 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/context/NotificationCenter.js +0 -254
- 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.js +0 -66
- 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/hotkeys/HotKey.js +0 -47
- package/dist/esm/hotkeys/HotKeyLabel.js +0 -52
- package/dist/esm/hotkeys/HotKeyWrapper.js +0 -96
- package/dist/esm/hotkeys/commons.js +0 -56
- package/dist/esm/overlays/alert/Alert.module.css +0 -1
- package/dist/esm/overlays/flyout/Flyout.js +0 -152
- package/dist/esm/overlays/flyout/Flyout.module.css +0 -1
- package/dist/esm/overlays/message/Message.js +0 -84
- package/dist/esm/overlays/message/Message.module.css +0 -1
- package/dist/esm/overlays/modal/Modal.js +0 -132
- package/dist/esm/overlays/modal/Modal.module.css +0 -1
- package/dist/esm/overlays/toast/Toast.js +0 -166
- package/dist/esm/overlays/toast/Toast.module.css +0 -1
- package/dist/esm/overlays/tooltip/Tooltip.js +0 -132
- package/dist/esm/overlays/tooltip/Tooltip.module.css +0 -1
- package/dist/esm/types/icons.js +0 -202
- package/dist/esm/typography/Link.js +0 -55
- package/dist/esm/typography/Typography.module.css +0 -1
- package/dist/esm/typography/types.js +0 -41
- package/dist/types/components/animations/Animations.d.ts +0 -23
- package/dist/types/components/breadcrumbs/Breadcrumbs.d.ts +0 -17
- package/dist/types/components/index.d.ts +0 -33
- package/dist/types/context/NotificationCenter.d.ts +0 -11
- package/dist/types/core/index.d.ts +0 -9
- package/dist/types/core/page/Page.d.ts +0 -23
- package/dist/types/core/section/Section.d.ts +0 -7
- package/dist/types/hotkeys/HotKey.d.ts +0 -2
- package/dist/types/hotkeys/HotKeyLabel.d.ts +0 -2
- package/dist/types/hotkeys/HotKeyWrapper.d.ts +0 -11
- package/dist/types/hotkeys/commons.d.ts +0 -28
- package/dist/types/overlays/alert/Alert.d.ts +0 -41
- package/dist/types/overlays/flyout/Flyout.d.ts +0 -57
- package/dist/types/overlays/index.d.ts +0 -6
- package/dist/types/overlays/message/Message.d.ts +0 -21
- package/dist/types/overlays/modal/Modal.d.ts +0 -53
- package/dist/types/overlays/toast/Toast.d.ts +0 -33
- package/dist/types/overlays/tooltip/Tooltip.d.ts +0 -18
- package/dist/types/types/icons.d.ts +0 -197
- package/dist/types/typography/Link.d.ts +0 -25
- package/dist/types/typography/index.d.ts +0 -6
- package/src/components/animations/Animations.module.css +0 -253
- package/src/components/animations/Animations.tsx +0 -196
- package/src/components/avatar/Avatar.module.css +0 -90
- package/src/components/badge/Badge.module.css +0 -165
- package/src/components/breadcrumbs/Breadcrumbs.module.css +0 -189
- package/src/components/breadcrumbs/Breadcrumbs.tsx +0 -109
- package/src/components/button/Button.module.css +0 -375
- package/src/components/card/Card.module.css +0 -152
- package/src/components/chip/Chip.module.css +0 -118
- package/src/components/collapsable/Collapsable.module.css +0 -30
- package/src/components/icon/Icon.module.css +0 -71
- package/src/components/index.ts +0 -62
- package/src/components/media/Media.module.css +0 -112
- package/src/context/NotificationCenter.tsx +0 -223
- package/src/core/aside/Aside.module.css +0 -231
- package/src/core/boundary/ErrorBoundary.module.css +0 -65
- package/src/core/headfoot/HeadFoot.module.css +0 -38
- package/src/core/index.ts +0 -32
- package/src/core/page/Page.module.css +0 -46
- package/src/core/page/Page.tsx +0 -101
- package/src/core/responsive/Responsive.module.css +0 -85
- package/src/core/section/Section.module.css +0 -28
- package/src/core/section/Section.tsx +0 -54
- package/src/core/theme/Theme.module.css +0 -30
- package/src/core/viewport/Viewport.module.css +0 -32
- package/src/hooks/useControlledValue.tsx +0 -43
- package/src/hotkeys/HotKey.tsx +0 -39
- package/src/hotkeys/HotKeyLabel.tsx +0 -61
- package/src/hotkeys/HotKeyWrapper.tsx +0 -137
- package/src/hotkeys/commons.ts +0 -74
- package/src/overlays/alert/Alert.tsx +0 -252
- package/src/overlays/flyout/Flyout.tsx +0 -283
- package/src/overlays/index.ts +0 -29
- package/src/overlays/message/Message.tsx +0 -107
- package/src/overlays/modal/Modal.tsx +0 -244
- package/src/overlays/toast/Toast.module.css +0 -37
- package/src/overlays/toast/Toast.tsx +0 -216
- package/src/overlays/tooltip/Tooltip.module.css +0 -53
- package/src/overlays/tooltip/Tooltip.tsx +0 -200
- package/src/types/icons.ts +0 -426
- package/src/typography/Link.tsx +0 -113
- package/src/typography/Typography.module.css +0 -68
- package/src/typography/index.ts +0 -29
- /package/dist/cjs/i18n/{ar.json.js → ar/core.json.js} +0 -0
- /package/dist/cjs/i18n/{en.json.js → en/core.json.js} +0 -0
- /package/dist/esm/i18n/{ar.json.js → ar/core.json.js} +0 -0
- /package/dist/esm/i18n/{en.json.js → en/core.json.js} +0 -0
- /package/src/i18n/{ar.json → ar/core.json} +0 -0
- /package/src/i18n/{en.json → en/core.json} +0 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
|
+
var react$1 = require('@floating-ui/react');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
|
|
9
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
+
/**
|
|
12
|
+
* A hook that provides a context menu that appears on right-click.
|
|
13
|
+
* It uses the Floating UI library to manage the positioning and interactions of the menu.
|
|
14
|
+
* This hook is useful for creating custom context menus that can be triggered by right-clicking on elements.
|
|
15
|
+
*
|
|
16
|
+
* @param {ContextMenuProps} props - The properties for the ContextMenu hook.
|
|
17
|
+
* @returns {[React.ReactElement | null, (e: MouseEvent) => void]} An array containing the rendered ContextMenu component (or null if not open) and the function to handle right-click events.
|
|
18
|
+
*/
|
|
19
|
+
function useContextMenu(menu) {
|
|
20
|
+
var _refs$domReference$cu, _refs$domReference$cu2;
|
|
21
|
+
var _useState = react.useState(false),
|
|
22
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
23
|
+
isOpen = _useState2[0],
|
|
24
|
+
setIsOpen = _useState2[1];
|
|
25
|
+
var nodeId = react$1.useFloatingNodeId();
|
|
26
|
+
var _useFloating = react$1.useFloating({
|
|
27
|
+
open: isOpen,
|
|
28
|
+
nodeId: nodeId,
|
|
29
|
+
onOpenChange: function onOpenChange(open, evt) {
|
|
30
|
+
var target = evt === null || evt === void 0 ? void 0 : evt.target;
|
|
31
|
+
if (!(target !== null && target !== void 0 && target.closest(".menu-list"))) setIsOpen(open);
|
|
32
|
+
},
|
|
33
|
+
strategy: "fixed",
|
|
34
|
+
placement: "bottom-start",
|
|
35
|
+
whileElementsMounted: react$1.autoUpdate,
|
|
36
|
+
middleware: [react$1.offset(8), react$1.flip()]
|
|
37
|
+
}),
|
|
38
|
+
refs = _useFloating.refs,
|
|
39
|
+
floatingStyles = _useFloating.floatingStyles,
|
|
40
|
+
context = _useFloating.context;
|
|
41
|
+
var click = react$1.useClick(context, {
|
|
42
|
+
toggle: true,
|
|
43
|
+
ignoreMouse: true
|
|
44
|
+
});
|
|
45
|
+
var dismiss = react$1.useDismiss(context, {
|
|
46
|
+
bubbles: true
|
|
47
|
+
});
|
|
48
|
+
var _useInteractions = react$1.useInteractions([dismiss, click]),
|
|
49
|
+
getFloatingProps = _useInteractions.getFloatingProps;
|
|
50
|
+
var handleClick = function handleClick(e) {
|
|
51
|
+
var virtual = {
|
|
52
|
+
getBoundingClientRect: function getBoundingClientRect() {
|
|
53
|
+
return {
|
|
54
|
+
width: 0,
|
|
55
|
+
height: 0,
|
|
56
|
+
x: e.clientX,
|
|
57
|
+
y: e.clientY,
|
|
58
|
+
top: e.clientY,
|
|
59
|
+
left: e.clientX,
|
|
60
|
+
right: e.clientX,
|
|
61
|
+
bottom: e.clientY
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
refs.setReference(virtual);
|
|
66
|
+
setIsOpen(true);
|
|
67
|
+
e.nativeEvent.stopImmediatePropagation();
|
|
68
|
+
e.preventDefault();
|
|
69
|
+
return false;
|
|
70
|
+
};
|
|
71
|
+
var tryClosingRef = react.useRef(function (e) {
|
|
72
|
+
var _e$target;
|
|
73
|
+
if (!((_e$target = e.target) !== null && _e$target !== void 0 && _e$target.closest("[data-dropdown-dismiss='false']"))) setTimeout(function () {
|
|
74
|
+
return setIsOpen(false);
|
|
75
|
+
}, 50);
|
|
76
|
+
});
|
|
77
|
+
return [isOpen && /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingPortal, {
|
|
78
|
+
root: (_refs$domReference$cu = (_refs$domReference$cu2 = refs.domReference.current) === null || _refs$domReference$cu2 === void 0 ? void 0 : _refs$domReference$cu2.closest(".theme-base")) !== null && _refs$domReference$cu !== void 0 ? _refs$domReference$cu : undefined,
|
|
79
|
+
children: /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingOverlay, {
|
|
80
|
+
lockScroll: true,
|
|
81
|
+
style: {
|
|
82
|
+
zIndex: "var(--z-overlay-mask)",
|
|
83
|
+
position: "absolute",
|
|
84
|
+
overflow: "hidden"
|
|
85
|
+
},
|
|
86
|
+
children: /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingFocusManager, {
|
|
87
|
+
context: context,
|
|
88
|
+
children: /*#__PURE__*/react.cloneElement(menu, _objectSpread(_objectSpread({}, getFloatingProps()), {}, {
|
|
89
|
+
style: _objectSpread(_objectSpread({}, floatingStyles), {}, {
|
|
90
|
+
borderRadius: "var(--rounding)",
|
|
91
|
+
zIndex: "var(--z-popover)",
|
|
92
|
+
fontSize: "0.875rem"
|
|
93
|
+
}),
|
|
94
|
+
className: "bg-default outline rounded-capped shadow-lg",
|
|
95
|
+
ref: refs.floating,
|
|
96
|
+
onMouseUp: tryClosingRef.current
|
|
97
|
+
}))
|
|
98
|
+
})
|
|
99
|
+
})
|
|
100
|
+
}, "cmenu"), handleClick];
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
exports.useContextMenu = useContextMenu;
|
|
@@ -4,19 +4,25 @@ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
|
4
4
|
var react = require('react');
|
|
5
5
|
var useEffectDebugger = require('./useEffectDebugger.js');
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
/** Hook managing a controlled value with a default fallback, using useDeferredValue for smooth updates. Returns [currentValue, updateValue]. */
|
|
8
|
+
function useControlledValue(value, defaultValue) {
|
|
9
|
+
var _useState = react.useState(function () {
|
|
10
|
+
return defaultValue;
|
|
11
|
+
}),
|
|
9
12
|
_useState2 = _slicedToArray(_useState, 2),
|
|
10
13
|
currentValue = _useState2[0],
|
|
11
|
-
|
|
12
|
-
var deferred = react.useDeferredValue(value);
|
|
14
|
+
setCurrentValue = _useState2[1];
|
|
15
|
+
var deferred = react.useDeferredValue(value, defaultValue);
|
|
16
|
+
var effectUpdate = react.useEffectEvent(function (value) {
|
|
17
|
+
setCurrentValue(value);
|
|
18
|
+
});
|
|
13
19
|
useEffectDebugger.useEffectDebugger(function () {
|
|
14
|
-
|
|
20
|
+
effectUpdate(deferred);
|
|
15
21
|
}, [deferred], "useControlledValue change");
|
|
16
22
|
return {
|
|
17
23
|
currentValue: currentValue,
|
|
18
|
-
updateValue:
|
|
24
|
+
updateValue: setCurrentValue
|
|
19
25
|
};
|
|
20
|
-
}
|
|
26
|
+
}
|
|
21
27
|
|
|
22
28
|
exports.useControlledValue = useControlledValue;
|
|
@@ -2,32 +2,47 @@
|
|
|
2
2
|
|
|
3
3
|
var react = require('react');
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
6
|
* React Fabric
|
|
7
|
-
* @version
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
* @license MIT
|
|
9
|
+
* @copyright 2024 Adarsh Pastakia
|
|
8
10
|
*
|
|
11
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
13
|
+
* in the Software without restriction, including without limitation the rights
|
|
14
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
16
|
+
* furnished to do so, subject to the following conditions:
|
|
9
17
|
*
|
|
10
|
-
* The
|
|
11
|
-
*
|
|
18
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
19
|
+
* copies or substantial portions of the Software.
|
|
12
20
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* portions of the Software.
|
|
21
|
-
*
|
|
22
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
|
23
|
-
* TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
24
|
-
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
25
|
-
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
21
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
+
* SOFTWARE.
|
|
26
28
|
*/
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Custom hook to debounce a function.
|
|
33
|
+
* This hook delays the processing of the function until after a specified delay period
|
|
34
|
+
* has elapsed since the last time the function was invoked. This is useful for optimizing
|
|
35
|
+
* performance in scenarios where a function may be called frequently, such as during
|
|
36
|
+
* user input or window resizing events.
|
|
37
|
+
*
|
|
38
|
+
* @param {Function} callback - The function to debounce.
|
|
39
|
+
* @param {DependencyList} deps - The dependency array for the hook.
|
|
40
|
+
* @param {number} delay - The debounce delay in milliseconds.
|
|
41
|
+
* @returns A debounced version of the callback function.
|
|
42
|
+
*/
|
|
43
|
+
function useDebounce(callback, deps) {
|
|
29
44
|
var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100;
|
|
30
|
-
var timerRef = react.useRef();
|
|
45
|
+
var timerRef = react.useRef(undefined);
|
|
31
46
|
var cb = react.useMemo(function () {
|
|
32
47
|
if (typeof window !== "undefined") {
|
|
33
48
|
window.clearTimeout(timerRef.current);
|
|
@@ -39,7 +54,7 @@ var useDebounce = function useDebounce(callback, deps) {
|
|
|
39
54
|
if (typeof window !== "undefined") {
|
|
40
55
|
window.clearTimeout(timerRef.current);
|
|
41
56
|
timerRef.current = window.setTimeout(function () {
|
|
42
|
-
|
|
57
|
+
callback === null || callback === void 0 || callback.apply(void 0, args);
|
|
43
58
|
}, delay);
|
|
44
59
|
}
|
|
45
60
|
};
|
|
@@ -49,8 +64,9 @@ var useDebounce = function useDebounce(callback, deps) {
|
|
|
49
64
|
}
|
|
50
65
|
};
|
|
51
66
|
return fn;
|
|
67
|
+
// eslint-disable-next-line @eslint-react/exhaustive-deps
|
|
52
68
|
}, deps);
|
|
53
69
|
return cb;
|
|
54
|
-
}
|
|
70
|
+
}
|
|
55
71
|
|
|
56
72
|
exports.useDebounce = useDebounce;
|
|
@@ -1,38 +1,27 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var _typeof = require('@babel/runtime/helpers/typeof');
|
|
3
4
|
var utilities = require('@react-fabric/utilities');
|
|
4
5
|
var react = require('react');
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
* The above copyright notice and this permission notice shall be included in all copies or substantial
|
|
21
|
-
* portions of the Software.
|
|
22
|
-
*
|
|
23
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
|
24
|
-
* TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
25
|
-
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
26
|
-
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
var loggerM = utilities.useLogger("useMemoDebugger");
|
|
30
|
-
var loggerE = utilities.useLogger("useEffectDebugger");
|
|
31
|
-
var loggerLE = utilities.useLogger("useLayoutEffectDebugger");
|
|
7
|
+
var loggerM = utilities.getLogger("useMemoDebugger");
|
|
8
|
+
var loggerE = utilities.getLogger("useEffectDebugger");
|
|
9
|
+
var loggerLE = utilities.getLogger("useLayoutEffectDebugger");
|
|
10
|
+
var getValue = function getValue(value) {
|
|
11
|
+
if (typeof value === "string") return value.substr(0, 24);
|
|
12
|
+
if (typeof value === "number" || typeof value === "boolean") return value;
|
|
13
|
+
if (typeof value === "function") return "anonymous function";
|
|
14
|
+
if (_typeof(value) === "object" && value !== null) {
|
|
15
|
+
if ("type" in value && _typeof(value.type) === "object" && value.type && "name" in value.type && value.type.name) return value.type.name;
|
|
16
|
+
if ("tagName" in value) return value.tagName;
|
|
17
|
+
if ("name" in value) return value.name;
|
|
18
|
+
}
|
|
19
|
+
return value;
|
|
20
|
+
};
|
|
32
21
|
var compareInputs = function compareInputs(oldInputs, newInputs, prefix, logger) {
|
|
33
|
-
if (
|
|
22
|
+
if (typeof window !== "undefined" &&
|
|
34
23
|
// @ts-expect-error ignore
|
|
35
|
-
window.
|
|
24
|
+
window.DEBUG_EFFECTS !== true) return;
|
|
36
25
|
|
|
37
26
|
// Edge-case: different array lengths
|
|
38
27
|
if (oldInputs.length !== newInputs.length) {
|
|
@@ -48,65 +37,95 @@ var compareInputs = function compareInputs(oldInputs, newInputs, prefix, logger)
|
|
|
48
37
|
var newInput = newInputs[index];
|
|
49
38
|
var diff = [];
|
|
50
39
|
if (oldInput !== newInput) {
|
|
51
|
-
|
|
52
|
-
diff.push("Dep [".concat(index, "] has a different value"), (_ref = (_ref2 = (_ref3 = (_oldInput$type$name = oldInput === null || oldInput === void 0 || (_oldInput$type = oldInput.type) === null || _oldInput$type === void 0 ? void 0 : _oldInput$type.name) !== null && _oldInput$type$name !== void 0 ? _oldInput$type$name : oldInput === null || oldInput === void 0 ? void 0 : oldInput.tagName) !== null && _ref3 !== void 0 ? _ref3 : oldInput === null || oldInput === void 0 ? void 0 : oldInput.name) !== null && _ref2 !== void 0 ? _ref2 : oldInput === null || oldInput === void 0 || (_oldInput$substr = oldInput.substr) === null || _oldInput$substr === void 0 ? void 0 : _oldInput$substr.call(oldInput, 0, 24)) !== null && _ref !== void 0 ? _ref : oldInput, (_ref4 = (_ref5 = (_ref6 = (_newInput$type$name = newInput === null || newInput === void 0 || (_newInput$type = newInput.type) === null || _newInput$type === void 0 ? void 0 : _newInput$type.name) !== null && _newInput$type$name !== void 0 ? _newInput$type$name : newInput === null || newInput === void 0 ? void 0 : newInput.tagName) !== null && _ref6 !== void 0 ? _ref6 : newInput === null || newInput === void 0 ? void 0 : newInput.name) !== null && _ref5 !== void 0 ? _ref5 : newInput === null || newInput === void 0 || (_newInput$substr = newInput.substr) === null || _newInput$substr === void 0 ? void 0 : _newInput$substr.call(newInput, 0, 24)) !== null && _ref4 !== void 0 ? _ref4 : newInput, "\n\n");
|
|
40
|
+
diff.push("Dep [".concat(index, "] has a different value"), getValue(oldInput), "=>", getValue(newInput), "\n\n");
|
|
53
41
|
}
|
|
54
|
-
diff.length
|
|
42
|
+
if (diff.length) logger.debug.apply(logger, ["Diff", {
|
|
55
43
|
process: prefix
|
|
56
44
|
}].concat(diff));
|
|
57
45
|
});
|
|
58
46
|
};
|
|
59
|
-
|
|
60
|
-
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Custom hook to debug useMemo hooks.
|
|
50
|
+
* It compares the current and previous dependency arrays and logs any differences.
|
|
51
|
+
* @param {() => T} func - The function to be memoized or executed in the effect.
|
|
52
|
+
* @param {DependencyList} inputs - The dependency array for the hook.
|
|
53
|
+
* @param {string} prefix - A prefix for the log messages to identify the hook.
|
|
54
|
+
* @returns The result of the memoized function or the effect.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```jsx
|
|
58
|
+
* const value = useMemoDebugger(() => computeValue(), [dependency1, dependency2], "MyComponent");
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
function useMemoDebugger(func, inputs, prefix) {
|
|
62
|
+
// Ref holding inputs from the previous render (or current on first run)
|
|
61
63
|
var oldInputsRef = react.useRef(inputs);
|
|
62
64
|
return react.useMemo(function () {
|
|
63
|
-
// Get the old inputs
|
|
64
65
|
var oldInputs = oldInputsRef.current;
|
|
65
|
-
|
|
66
|
-
// Compare the old inputs to the current inputs
|
|
67
66
|
compareInputs(oldInputs, inputs, prefix, loggerM);
|
|
68
|
-
|
|
69
|
-
// Save the current inputs
|
|
70
67
|
oldInputsRef.current = inputs;
|
|
71
|
-
|
|
72
|
-
// Execute wrapped effect
|
|
73
68
|
return func();
|
|
69
|
+
// eslint-disable-next-line @eslint-react/exhaustive-deps
|
|
74
70
|
}, inputs);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Custom hook to debug useEffect and useLayoutEffect hooks.
|
|
75
|
+
* It compares the current and previous dependency arrays and logs any differences.
|
|
76
|
+
* @param {EffectCallback} func - The effect function to be executed.
|
|
77
|
+
* @param {DependencyList} inputs - The dependency array for the effect.
|
|
78
|
+
* @param {string} prefix - A prefix for the log messages to identify the effect.
|
|
79
|
+
* @returns A cleanup function if the effect returns one.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```jsx
|
|
83
|
+
* useEffectDebugger(() => {
|
|
84
|
+
* // Effect logic here
|
|
85
|
+
* return () => {
|
|
86
|
+
* // Cleanup logic here
|
|
87
|
+
* };
|
|
88
|
+
* }, [dependency1, dependency2], "MyComponent");
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
function useEffectDebugger(func, inputs, prefix) {
|
|
92
|
+
// Ref holding inputs from the previous render (or current on first run)
|
|
78
93
|
var oldInputsRef = react.useRef(inputs);
|
|
79
94
|
react.useEffect(function () {
|
|
80
|
-
// Get the old inputs
|
|
81
95
|
var oldInputs = oldInputsRef.current;
|
|
82
|
-
|
|
83
|
-
// Compare the old inputs to the current inputs
|
|
84
96
|
compareInputs(oldInputs, inputs, prefix, loggerE);
|
|
85
|
-
|
|
86
|
-
// Save the current inputs
|
|
87
97
|
oldInputsRef.current = inputs;
|
|
88
|
-
|
|
89
|
-
// Execute wrapped effect
|
|
90
98
|
return func();
|
|
99
|
+
// eslint-disable-next-line @eslint-react/exhaustive-deps
|
|
91
100
|
}, inputs);
|
|
92
|
-
}
|
|
93
|
-
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Custom hook to debug useLayoutEffect hooks.
|
|
105
|
+
* It compares the current and previous dependency arrays and logs any differences.
|
|
106
|
+
* @param {EffectCallback} func - The layout effect function to be executed.
|
|
107
|
+
* @param {DependencyList} inputs - The dependency array for the layout effect.
|
|
108
|
+
* @param {string} prefix - A prefix for the log messages to identify the layout effect.
|
|
109
|
+
* @returns A cleanup function if the layout effect returns one.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```jsx
|
|
113
|
+
* // Layout effect logic here
|
|
114
|
+
* // Cleanup logic here
|
|
115
|
+
* };
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
function useLayoutEffectDebugger(func, inputs, prefix) {
|
|
94
119
|
// Using a ref to hold the inputs from the previous run (or same run for initial run
|
|
95
120
|
var oldInputsRef = react.useRef(inputs);
|
|
96
121
|
react.useLayoutEffect(function () {
|
|
97
|
-
// Get the old inputs
|
|
98
122
|
var oldInputs = oldInputsRef.current;
|
|
99
|
-
|
|
100
|
-
// Compare the old inputs to the current inputs
|
|
101
123
|
compareInputs(oldInputs, inputs, prefix, loggerLE);
|
|
102
|
-
|
|
103
|
-
// Save the current inputs
|
|
104
124
|
oldInputsRef.current = inputs;
|
|
105
|
-
|
|
106
|
-
// Execute wrapped effect
|
|
107
125
|
return func();
|
|
126
|
+
// eslint-disable-next-line @eslint-react/exhaustive-deps
|
|
108
127
|
}, inputs);
|
|
109
|
-
}
|
|
128
|
+
}
|
|
110
129
|
|
|
111
130
|
exports.useEffectDebugger = useEffectDebugger;
|
|
112
131
|
exports.useLayoutEffectDebugger = useLayoutEffectDebugger;
|
|
@@ -1,33 +1,41 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var react = require('react');
|
|
5
|
-
var useEffectDebugger = require('./useEffectDebugger.js');
|
|
3
|
+
var context = require('../context/context.js');
|
|
6
4
|
|
|
5
|
+
/*
|
|
6
|
+
* React Fabric
|
|
7
|
+
* @version: 1.0.0
|
|
8
|
+
*
|
|
9
|
+
*
|
|
10
|
+
* The MIT License (MIT)
|
|
11
|
+
* Copyright (c) 2024 Adarsh Pastakia
|
|
12
|
+
*
|
|
13
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
|
14
|
+
* and associated documentation files (the "Software"), to deal in the Software without restriction,
|
|
15
|
+
* including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
16
|
+
* and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
|
|
17
|
+
* subject to the following conditions:
|
|
18
|
+
*
|
|
19
|
+
* The above copyright notice and this permission notice shall be included in all copies or substantial
|
|
20
|
+
* portions of the Software.
|
|
21
|
+
*
|
|
22
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
|
23
|
+
* TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
24
|
+
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
25
|
+
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Custom hook to determine if the current theme is dark.
|
|
31
|
+
* It checks the background color of the document's root element
|
|
32
|
+
* and sets the `isDark` state based on the red component of the RGB color.
|
|
33
|
+
* If the red component is less than 50, it considers the theme to be dark.
|
|
34
|
+
*/
|
|
7
35
|
var useIsDark = function useIsDark() {
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
setDark = _useState2[1];
|
|
12
|
-
var checkTheme = react.useCallback(function () {
|
|
13
|
-
var _ref = getComputedStyle(document.documentElement).backgroundColor.match(/\d?\d?\d/g),
|
|
14
|
-
_ref2 = _slicedToArray(_ref, 1),
|
|
15
|
-
r = _ref2[0];
|
|
16
|
-
setDark(+r < 50);
|
|
17
|
-
}, []);
|
|
18
|
-
useEffectDebugger.useLayoutEffectDebugger(function () {
|
|
19
|
-
if (MutationObserver) {
|
|
20
|
-
var ob = new MutationObserver(checkTheme);
|
|
21
|
-
ob.observe(document.documentElement, {
|
|
22
|
-
attributes: true
|
|
23
|
-
});
|
|
24
|
-
checkTheme();
|
|
25
|
-
return function () {
|
|
26
|
-
ob.disconnect();
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
}, [], "useIsDark");
|
|
30
|
-
return isDark;
|
|
36
|
+
var _useGlobals = context.useGlobals(),
|
|
37
|
+
currentColorScheme = _useGlobals.currentColorScheme;
|
|
38
|
+
return currentColorScheme === "dark";
|
|
31
39
|
};
|
|
32
40
|
|
|
33
41
|
exports.useIsDark = useIsDark;
|
|
@@ -5,8 +5,18 @@ var react = require('react');
|
|
|
5
5
|
var reactI18next = require('react-i18next');
|
|
6
6
|
var useEffectDebugger = require('./useEffectDebugger.js');
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Custom hook to determine if the current locale is RTL (Right-to-Left).
|
|
10
|
+
* It uses the i18n instance from react-i18next to check the direction.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```jsx
|
|
14
|
+
* const isRtl = useIsRtl();
|
|
15
|
+
* // This will return true if the current locale is RTL, false otherwise.
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
function useIsRtl() {
|
|
19
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
10
20
|
i18n = _useTranslation.i18n;
|
|
11
21
|
var _useState = react.useState(false),
|
|
12
22
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -22,6 +32,6 @@ var useIsRtl = function useIsRtl() {
|
|
|
22
32
|
}
|
|
23
33
|
}, [i18n.language], "useIsRtl");
|
|
24
34
|
return isRtl;
|
|
25
|
-
}
|
|
35
|
+
}
|
|
26
36
|
|
|
27
37
|
exports.useIsRtl = useIsRtl;
|
|
@@ -11,17 +11,20 @@ var useNavigator = function useNavigator() {
|
|
|
11
11
|
_useState2 = _slicedToArray(_useState, 2),
|
|
12
12
|
currentIndex = _useState2[0],
|
|
13
13
|
setCurrentIndex = _useState2[1];
|
|
14
|
-
var onNavigate =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
var onNavigate = function onNavigate(dir) {
|
|
15
|
+
setCurrentIndex(function (prevValue) {
|
|
16
|
+
if (dir === -1) {
|
|
17
|
+
return prevValue > 0 ? prevValue - 1 : totalCount - 1;
|
|
18
|
+
}
|
|
19
|
+
if (dir === 1) {
|
|
20
|
+
return prevValue + 1 < totalCount ? prevValue + 1 : 0;
|
|
21
|
+
}
|
|
22
|
+
return prevValue;
|
|
23
|
+
});
|
|
24
|
+
};
|
|
22
25
|
var headLabel = react.useMemo(function () {
|
|
23
26
|
return /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
24
|
-
className: "text-muted leading-none",
|
|
27
|
+
className: "text-muted leading-none select-none",
|
|
25
28
|
children: [currentIndex + 1, "/", totalCount]
|
|
26
29
|
});
|
|
27
30
|
}, [currentIndex, totalCount]);
|