@react-fabric/core 1.0.0-beta.9 → 1.0.2
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 +66 -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 +66 -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 +30 -21
- package/src/components/actionLabel/ActionLabel.tsx +28 -39
- package/src/components/alert/Alert.tsx +261 -0
- package/src/components/animations/Indicator.tsx +75 -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
|
@@ -1,2 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import type { MenuProps } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* A component that displays a menu with items, supports nested menus and various interactions.
|
|
4
|
+
* It can be triggered by hover or click events, and allows for custom styling and behavior.
|
|
5
|
+
* This component is designed to be used within a Floating UI context, allowing for dynamic positioning and interaction handling.
|
|
6
|
+
* It can be nested within other menus to create complex menu structures.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```jsx
|
|
10
|
+
* <Menu
|
|
11
|
+
* className="my-menu"
|
|
12
|
+
* trigger="click"
|
|
13
|
+
* onClick={(id) => console.log(`Clicked item with id: ${id}`)}
|
|
14
|
+
* >
|
|
15
|
+
* <MenuItem id="item1" label="Item 1" />
|
|
16
|
+
* <MenuItem id="item2" label="Item 2" />
|
|
17
|
+
* <MenuItem id="item3" label="Item 3">
|
|
18
|
+
* <Menu>
|
|
19
|
+
* <MenuItem id="subitem1" label="Sub Item 1" />
|
|
20
|
+
* <MenuItem id="subitem2" label="Sub Item 2" />
|
|
21
|
+
* </Menu>
|
|
22
|
+
* </MenuItem>
|
|
23
|
+
* </Menu>
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function Menu(props: MenuProps): import("react").JSX.Element;
|
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import type { PolymorphicProps } from "../../types";
|
|
2
|
+
import type { MenuItemProps } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* A menu item component that can be used in a dropdown or menu.
|
|
5
|
+
* It supports various features such as icons, badges, hotkeys, and more.
|
|
6
|
+
* It can be customized with different colors, icons, and behaviors.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```jsx
|
|
10
|
+
* <MenuItem
|
|
11
|
+
* label="Settings"
|
|
12
|
+
* icon="settings"
|
|
13
|
+
* onClick={() => console.log("Settings clicked")}
|
|
14
|
+
* hotKey="Ctrl+S"
|
|
15
|
+
* badge={{ count: 3, color: "red" }}
|
|
16
|
+
* />
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare function MenuItem<Tag extends React.ElementType = "button">({ as, label, color, className, icon, labelRender, appendLabel, altIcon, id, active, disabled, onClick, badge, hotKey, tabIndex, minimal, "data-open": childOpen, ref, ...aria }: MenuItemProps & PolymorphicProps<Tag>): import("react").JSX.Element;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import type { Hotkey } from "@tanstack/react-hotkeys";
|
|
2
|
+
import type { CallbackReturn, ChildrenProp, ColorBase, CssProp, TestProps } from "../../types";
|
|
3
|
+
import type { BadgeType } from "../badge/Badge";
|
|
4
|
+
import type { IconProps } from "../icon/Icon";
|
|
5
|
+
export interface MenuItemProps extends CssProp, TestProps {
|
|
4
6
|
/**
|
|
5
7
|
* menu id passed via menu.onClick
|
|
6
8
|
*/
|
|
@@ -9,14 +11,19 @@ export interface MenuItemProps extends CssProp, AriaProps, TestProps, IconProps
|
|
|
9
11
|
* item label
|
|
10
12
|
*/
|
|
11
13
|
label: string;
|
|
14
|
+
labelRender?: React.ReactElement;
|
|
12
15
|
/**
|
|
13
16
|
* append label badge text
|
|
14
17
|
*/
|
|
15
|
-
appendLabel?: string | false;
|
|
18
|
+
appendLabel?: React.ReactElement | string | number | false;
|
|
16
19
|
/**
|
|
17
20
|
* menu color
|
|
18
21
|
*/
|
|
19
|
-
color?:
|
|
22
|
+
color?: ColorBase;
|
|
23
|
+
/**
|
|
24
|
+
* icon path or props
|
|
25
|
+
*/
|
|
26
|
+
icon?: IconProps;
|
|
20
27
|
/**
|
|
21
28
|
* item active
|
|
22
29
|
*/
|
|
@@ -32,7 +39,7 @@ export interface MenuItemProps extends CssProp, AriaProps, TestProps, IconProps
|
|
|
32
39
|
/**
|
|
33
40
|
* keyboard shortcut label
|
|
34
41
|
*/
|
|
35
|
-
hotKey?:
|
|
42
|
+
hotKey?: Hotkey | Hotkey[];
|
|
36
43
|
/**
|
|
37
44
|
* alternate icon align end (caret, arrow)
|
|
38
45
|
*/
|
|
@@ -40,20 +47,22 @@ export interface MenuItemProps extends CssProp, AriaProps, TestProps, IconProps
|
|
|
40
47
|
/**
|
|
41
48
|
* click handler
|
|
42
49
|
*/
|
|
43
|
-
onClick?: (e: MouseEvent) => CallbackReturn;
|
|
50
|
+
onClick?: (e: React.MouseEvent) => CallbackReturn;
|
|
44
51
|
}
|
|
45
52
|
export interface MenuRootProps extends CssProp {
|
|
46
53
|
label?: never;
|
|
47
54
|
minimal?: boolean;
|
|
48
|
-
|
|
55
|
+
/**
|
|
56
|
+
* use this create a dropdown button within menu-item
|
|
57
|
+
*/
|
|
58
|
+
forDropdown?: boolean;
|
|
49
59
|
onClick?: (id: string) => CallbackReturn;
|
|
50
60
|
}
|
|
51
|
-
export interface MenuInnerProps extends MenuItemProps {
|
|
61
|
+
export interface MenuInnerProps extends Omit<MenuItemProps, "onClick"> {
|
|
52
62
|
label: string;
|
|
53
63
|
minimal?: never;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
menuClassName?: string;
|
|
64
|
+
trigger?: "hover" | "click";
|
|
65
|
+
forDropdown?: boolean;
|
|
66
|
+
onClick?: (id: string) => CallbackReturn;
|
|
58
67
|
}
|
|
59
|
-
export type MenuProps = ChildrenProp<
|
|
68
|
+
export type MenuProps = ChildrenProp<MenuItemProps> & (MenuRootProps | MenuInnerProps);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
export interface MeterProps extends CssProp,
|
|
1
|
+
import type { CssProp, CustomColors, TestProps } from "../../types";
|
|
2
|
+
export interface MeterProps extends CssProp, TestProps {
|
|
3
3
|
/**
|
|
4
4
|
* meter value (0-100)
|
|
5
5
|
*/
|
|
@@ -8,5 +8,25 @@ export interface MeterProps extends CssProp, AriaProps, TestProps {
|
|
|
8
8
|
* hide value label
|
|
9
9
|
*/
|
|
10
10
|
hideLabel?: boolean;
|
|
11
|
+
color?: CustomColors;
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
+
/**
|
|
14
|
+
* A component that displays a visual representation of a value as a series of dots.
|
|
15
|
+
* It is useful for showing progress or completion status in a compact form.
|
|
16
|
+
* The meter consists of 6 dots, each representing approximately 16.67% of the total value.
|
|
17
|
+
* The active dots are filled based on the value provided, and the remaining dots are empty.
|
|
18
|
+
* The component can also display a label showing the percentage value.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```jsx
|
|
22
|
+
* <Meter value={75} />
|
|
23
|
+
* // Renders a meter with 4 active dots and a label showing "75%"
|
|
24
|
+
*
|
|
25
|
+
* <Meter value={50} hideLabel />
|
|
26
|
+
* // Renders a meter with 3 active dots and no label
|
|
27
|
+
*
|
|
28
|
+
* <Meter value={100} className="custom-meter" />
|
|
29
|
+
* // Renders a meter with all 6 active dots and a custom class name
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare function Meter({ value, hideLabel, color, className, ...props }: MeterProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { CallbackReturn, ChildrenProp, CssPropWithMap, TestProps } from "../../types";
|
|
2
|
+
import type { TitlebarProps } from "../titlebar/Titlebar";
|
|
3
|
+
export interface ModalProps<T> extends TestProps, ChildrenProp, TitlebarProps, CssPropWithMap<{
|
|
4
|
+
root: string;
|
|
5
|
+
body?: string;
|
|
6
|
+
titlebar?: string;
|
|
7
|
+
title?: string;
|
|
8
|
+
icon?: string;
|
|
9
|
+
}> {
|
|
10
|
+
/**
|
|
11
|
+
* show loading indicator
|
|
12
|
+
*/
|
|
13
|
+
loading?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* modal size
|
|
16
|
+
*/
|
|
17
|
+
size?: "sm" | "md" | "lg" | "xl" | "screen";
|
|
18
|
+
/**
|
|
19
|
+
* height
|
|
20
|
+
*/
|
|
21
|
+
height?: string | number;
|
|
22
|
+
/**
|
|
23
|
+
* width
|
|
24
|
+
*/
|
|
25
|
+
width?: string | number;
|
|
26
|
+
/**
|
|
27
|
+
* minimum height
|
|
28
|
+
*/
|
|
29
|
+
minHeight?: string | number;
|
|
30
|
+
/**
|
|
31
|
+
* minimum width
|
|
32
|
+
*/
|
|
33
|
+
minWidth?: string | number;
|
|
34
|
+
/**
|
|
35
|
+
* portal root element
|
|
36
|
+
*/
|
|
37
|
+
root?: HTMLElement;
|
|
38
|
+
/**
|
|
39
|
+
* hide mask background
|
|
40
|
+
*/
|
|
41
|
+
hideMask?: boolean;
|
|
42
|
+
closeOnEscape?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* close handler
|
|
45
|
+
*/
|
|
46
|
+
onClose?: (args: T | null) => void;
|
|
47
|
+
/**
|
|
48
|
+
* before close handler, return false to prevent close
|
|
49
|
+
*/
|
|
50
|
+
onBeforeClose?: (args: T | null) => CallbackReturn;
|
|
51
|
+
}
|
|
52
|
+
export declare function Modal<T extends AnyObject = AnyObject>({ icon, className, classNames, title, actions, onClose, onBeforeClose, children, loading, root, size, hideMask, width, height, minHeight, minWidth, closeOnEscape, ...props }: ModalProps<T>): import("react").JSX.Element;
|
|
@@ -1,12 +1,38 @@
|
|
|
1
|
-
import
|
|
2
|
-
export interface NavigatorProps extends CssProp,
|
|
1
|
+
import type { ChildProp, CssProp, CustomColors, TestProps } from "../../types";
|
|
2
|
+
export interface NavigatorProps extends CssProp, TestProps, Partial<ChildProp> {
|
|
3
|
+
/**
|
|
4
|
+
* item list length (ignore to enable infinite navigation)
|
|
5
|
+
*/
|
|
6
|
+
length?: number;
|
|
7
|
+
/**
|
|
8
|
+
* current item index (ignore to enable infinite navigation)
|
|
9
|
+
*/
|
|
10
|
+
current?: number;
|
|
11
|
+
disableKeyHandlers?: boolean;
|
|
3
12
|
/**
|
|
4
13
|
* navigator button color
|
|
5
14
|
*/
|
|
6
|
-
color?:
|
|
15
|
+
color?: CustomColors;
|
|
7
16
|
/**
|
|
8
17
|
* navigation handler
|
|
9
18
|
*/
|
|
10
19
|
onNavigate: (dir: -1 | 1) => void;
|
|
11
20
|
}
|
|
12
|
-
|
|
21
|
+
/**
|
|
22
|
+
* A component that provides navigation controls for traversing through items.
|
|
23
|
+
* It includes previous and next buttons, and supports keyboard navigation.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```jsx
|
|
27
|
+
* <Navigator
|
|
28
|
+
* className="my-navigator"
|
|
29
|
+
* onNavigate={(dir) => console.log(`Navigate ${dir === -1 ? 'previous' : 'next'}`)}
|
|
30
|
+
* color="blue"
|
|
31
|
+
* length={10}
|
|
32
|
+
* current={0}
|
|
33
|
+
* >
|
|
34
|
+
* <span>Current Item: 1</span>
|
|
35
|
+
* </Navigator>
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare function Navigator({ className, onNavigate, color, children, length, current, disableKeyHandlers, ...aria }: NavigatorProps): import("react").JSX.Element;
|
|
@@ -1,28 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
export interface PanelProps extends
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
panelId?: string;
|
|
10
|
-
/**
|
|
11
|
-
* panel title
|
|
12
|
-
*/
|
|
1
|
+
import type { ContentProps } from "../../core/content/Content";
|
|
2
|
+
import type { HeadFootProps } from "../../core/headfoot/HeadFoot";
|
|
3
|
+
import type { ChildrenProp, CollapseProps, CssPropWithMap, ExpandProps, TestProps } from "../../types";
|
|
4
|
+
import type { TitlebarProps } from "../titlebar/Titlebar";
|
|
5
|
+
export interface PanelProps extends CssPropWithMap<{
|
|
6
|
+
root: string;
|
|
7
|
+
body?: string;
|
|
8
|
+
titlebar?: string;
|
|
13
9
|
title?: string;
|
|
10
|
+
icon?: string;
|
|
11
|
+
}>, TestProps, ExpandProps, CollapseProps, TitlebarProps, ChildrenProp<HeadFootProps | ContentProps> {
|
|
14
12
|
/**
|
|
15
|
-
*
|
|
16
|
-
*/
|
|
17
|
-
actions?: JSX.Element;
|
|
18
|
-
/**
|
|
19
|
-
* header css classname(s)
|
|
20
|
-
*/
|
|
21
|
-
headerClassName?: string;
|
|
22
|
-
/**
|
|
23
|
-
* title css classname(s)
|
|
13
|
+
* panel id used by panel stack
|
|
24
14
|
*/
|
|
25
|
-
|
|
15
|
+
panelId?: string | number;
|
|
26
16
|
/**
|
|
27
17
|
* loading state
|
|
28
18
|
*/
|
|
@@ -56,4 +46,34 @@ export interface PanelProps extends CssProp, AriaProps, TestProps, IconProps, Ex
|
|
|
56
46
|
*/
|
|
57
47
|
onClose?: () => void;
|
|
58
48
|
}
|
|
59
|
-
|
|
49
|
+
/**
|
|
50
|
+
* A component that represents a panel with a header, body, and optional actions.
|
|
51
|
+
* It supports expandable and collapsible functionality, loading state, and customizable styles.
|
|
52
|
+
* The panel can be resized and has a fixed position when expanded.
|
|
53
|
+
* It can be customized with different colors, icons, and behaviors.
|
|
54
|
+
* This component is useful for displaying content in a structured way, allowing users to interact with it through actions and toggles.
|
|
55
|
+
* It can be used in various applications where panels are needed, such as dashboards, settings pages, or content management systems.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```jsx
|
|
59
|
+
* <Panel
|
|
60
|
+
* title="Panel Title"
|
|
61
|
+
* icon="icon-[mdi--info]"
|
|
62
|
+
* actions={<button>Action</button>}
|
|
63
|
+
* expandable
|
|
64
|
+
* collapsable
|
|
65
|
+
* onExpand={() => console.log("Expanded")}
|
|
66
|
+
* onCollapse={() => console.log("Collapsed")}
|
|
67
|
+
* onClose={() => console.log("Closed")}
|
|
68
|
+
* height="400px"
|
|
69
|
+
* width="300px"
|
|
70
|
+
* minHeight="200px"
|
|
71
|
+
* minWidth="200px"
|
|
72
|
+
* maxHeight="600px"
|
|
73
|
+
* maxWidth="600px"
|
|
74
|
+
* >
|
|
75
|
+
* <p>This is the content of the panel.</p>
|
|
76
|
+
* </Panel>
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export declare function Panel({ children, className, classNames, title, actions, icon, panelId, height, width, minHeight, minWidth, maxHeight, maxWidth, loading, expandable, expanded: _expanded, onExpand, collapsable, collapsed: _collapsed, onCollapse, onClose, onBack, ...aria }: PanelProps): import("react").JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ChildrenProp } from "../../types";
|
|
2
2
|
export interface PanelGroupProps extends ChildrenProp {
|
|
3
3
|
/**
|
|
4
4
|
* active panel id / index
|
|
@@ -7,6 +7,25 @@ export interface PanelGroupProps extends ChildrenProp {
|
|
|
7
7
|
/**
|
|
8
8
|
* active change callback
|
|
9
9
|
*/
|
|
10
|
-
onActiveChange?: (panelId: string) => void;
|
|
10
|
+
onActiveChange?: (panelId: string | number) => void;
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* A component that groups multiple panels together, allowing for one panel to be expanded at a time.
|
|
14
|
+
* This component allows you to manage a group of panels where only one can be expanded at a time.
|
|
15
|
+
* It accepts an `activePanel` prop to control which panel is currently expanded,
|
|
16
|
+
* and an `onActiveChange` callback that is triggered when the active panel changes.
|
|
17
|
+
* It uses the `Panel` component to render each individual panel within the group.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```jsx
|
|
21
|
+
* <PanelGroup
|
|
22
|
+
* activePanel="panel1"
|
|
23
|
+
* onActiveChange={(panelId) => console.log(`Active panel changed to: ${panelId}`)}
|
|
24
|
+
* >
|
|
25
|
+
* <Panel panelId="panel1" title="Panel 1">Content for Panel 1</Panel>
|
|
26
|
+
* <Panel panelId="panel2" title="Panel 2">Content for Panel 2</Panel>
|
|
27
|
+
* <Panel panelId="panel3" title="Panel 3">Content for Panel 3</Panel>
|
|
28
|
+
* </PanelGroup>
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function PanelGroup({ children, activePanel, onActiveChange }: PanelGroupProps): import("react").JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ChildrenProp, CssProp } from "../../types";
|
|
2
2
|
export interface PanelStackProps extends CssProp, ChildrenProp {
|
|
3
3
|
/**
|
|
4
4
|
* active panel id
|
|
@@ -13,4 +13,30 @@ export interface PanelStackProps extends CssProp, ChildrenProp {
|
|
|
13
13
|
*/
|
|
14
14
|
onBack?: (panelId: string, nextPanelId: string) => boolean | undefined;
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* A component that manages a stack of panels, allowing navigation between them.
|
|
18
|
+
* This component allows you to manage a stack of panels where you can navigate between them.
|
|
19
|
+
* It accepts an `active` prop to control which panel is currently active,
|
|
20
|
+
* an `onPanelChange` callback that is triggered when the active panel changes,
|
|
21
|
+
* and an `onBack` callback to handle navigation to the previous panel in the history.
|
|
22
|
+
* It uses the `Panel` component to render each individual panel within the stack.
|
|
23
|
+
* The component maintains a history of panels to allow back navigation,
|
|
24
|
+
* and it updates the active panel based on user interactions.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```jsx
|
|
28
|
+
* <PanelStack
|
|
29
|
+
* active="panel1"
|
|
30
|
+
* onPanelChange={(panelId) => console.log(`Active panel changed to: ${panelId}`)}
|
|
31
|
+
* onBack={(currentPanel, nextPanel) => {
|
|
32
|
+
* console.log(`Navigating back from ${currentPanel} to ${nextPanel}`);
|
|
33
|
+
* return true; // return false to prevent navigation
|
|
34
|
+
* }}
|
|
35
|
+
* >
|
|
36
|
+
* <Panel panelId="panel1" title="Panel 1">Content for Panel 1</Panel>
|
|
37
|
+
* <Panel panelId="panel2" title="Panel 2">Content for Panel 2</Panel>
|
|
38
|
+
* <Panel panelId="panel3" title="Panel 3">Content for Panel 3</Panel>
|
|
39
|
+
* </PanelStack>
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare function PanelStack({ children, className, onPanelChange, onBack, ...rest }: PanelStackProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React Fabric
|
|
3
|
+
* @version 1.0.0
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright 2024 Adarsh Pastakia
|
|
6
|
+
*
|
|
7
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
* in the Software without restriction, including without limitation the rights
|
|
10
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
* furnished to do so, subject to the following conditions:
|
|
13
|
+
*
|
|
14
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
* copies or substantial portions of the Software.
|
|
16
|
+
*
|
|
17
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
* SOFTWARE.
|
|
24
|
+
*/
|
|
25
|
+
import type { CssProp, CustomColors } from "../../types";
|
|
26
|
+
import type { IconProps } from "../icon/Icon";
|
|
27
|
+
/**
|
|
28
|
+
* Represents a single selectable value type within a Pillbox.
|
|
29
|
+
*/
|
|
30
|
+
type ValueType = string | number | boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Configuration for a single pill option.
|
|
33
|
+
*/
|
|
34
|
+
interface PillOption {
|
|
35
|
+
/**
|
|
36
|
+
* Unique value identifying this option.
|
|
37
|
+
*/
|
|
38
|
+
value: ValueType;
|
|
39
|
+
/**
|
|
40
|
+
* Display text shown inside the pill.
|
|
41
|
+
*/
|
|
42
|
+
label?: React.ReactNode;
|
|
43
|
+
/**
|
|
44
|
+
* Icon configuration rendered before the label.
|
|
45
|
+
*/
|
|
46
|
+
icon?: IconProps;
|
|
47
|
+
/**
|
|
48
|
+
* Background color override for the active pill highlight.
|
|
49
|
+
*/
|
|
50
|
+
bg?: CustomColors;
|
|
51
|
+
/**
|
|
52
|
+
* Text color override for the active pill.
|
|
53
|
+
*/
|
|
54
|
+
color?: CustomColors;
|
|
55
|
+
/**
|
|
56
|
+
* Whether this option is disabled and cannot be selected.
|
|
57
|
+
*/
|
|
58
|
+
disabled?: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Props for the Pillbox component.
|
|
62
|
+
*/
|
|
63
|
+
interface PillboxProps extends CssProp {
|
|
64
|
+
/**
|
|
65
|
+
* Render pills in a full-width flex layout instead of inline.
|
|
66
|
+
*/
|
|
67
|
+
block?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Enable toggle behavior when exactly two options exist, allowing
|
|
70
|
+
* deselect on click.
|
|
71
|
+
*/
|
|
72
|
+
toggle?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Hide pills visually when the group is not hovered.
|
|
75
|
+
*/
|
|
76
|
+
autoHide?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Array of pill options to render.
|
|
79
|
+
*/
|
|
80
|
+
options: PillOption[];
|
|
81
|
+
/**
|
|
82
|
+
* Currently selected value. Controlled component pattern.
|
|
83
|
+
*/
|
|
84
|
+
value?: ValueType | null;
|
|
85
|
+
/**
|
|
86
|
+
* Callback invoked when a pill is selected with its value.
|
|
87
|
+
*/
|
|
88
|
+
onChange?: (value: ValueType) => void;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* A pill-based selector that renders a horizontal group of clickable options
|
|
92
|
+
* with an animated highlight tracking the selected pill.
|
|
93
|
+
*/
|
|
94
|
+
export declare function Pillbox({ options, className, block, toggle, value, autoHide, onChange }: PillboxProps): import("react").JSX.Element;
|
|
95
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { CustomColors } from "../../types";
|
|
2
2
|
export interface ProgressProps {
|
|
3
3
|
/**
|
|
4
|
-
* progress value (0-
|
|
4
|
+
* progress value (0-1)
|
|
5
5
|
*/
|
|
6
6
|
value: number;
|
|
7
7
|
/**
|
|
@@ -11,7 +11,7 @@ export interface ProgressProps {
|
|
|
11
11
|
/**
|
|
12
12
|
* color
|
|
13
13
|
*/
|
|
14
|
-
color?:
|
|
14
|
+
color?: CustomColors;
|
|
15
15
|
/**
|
|
16
16
|
* animate
|
|
17
17
|
*/
|
|
@@ -21,4 +21,19 @@ export interface ProgressProps {
|
|
|
21
21
|
*/
|
|
22
22
|
label?: string;
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
/**
|
|
25
|
+
* A component that displays a progress bar indicating the completion percentage of a task or operation.
|
|
26
|
+
* The progress bar is styled with a background color and a track that fills based on the value provided.
|
|
27
|
+
* It can also display a label showing the percentage value.
|
|
28
|
+
* The label can be customized or hidden based on the props provided.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```jsx
|
|
32
|
+
* <ProgressBar value={0.75} size="md" color="primary-500" label="Loading" animate />
|
|
33
|
+
* // Renders a progress bar with 75% completion, medium size, primary color, and a label "Loading"
|
|
34
|
+
*
|
|
35
|
+
* <ProgressBar value={0.5} size="lg" color="success-500" />
|
|
36
|
+
* // Renders a progress bar with 50% completion, large size, and success color without a label
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function ProgressBar({ value, size, color, label, animate }: ProgressProps): import("react").JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { CustomColors } from "../../types";
|
|
2
2
|
export interface ProgressProps {
|
|
3
3
|
/**
|
|
4
|
-
* progress value (0-
|
|
4
|
+
* progress value (0-1)
|
|
5
5
|
*/
|
|
6
6
|
value: number;
|
|
7
7
|
/**
|
|
@@ -11,6 +11,20 @@ export interface ProgressProps {
|
|
|
11
11
|
/**
|
|
12
12
|
* color
|
|
13
13
|
*/
|
|
14
|
-
color?:
|
|
14
|
+
color?: CustomColors;
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* A circular progress indicator that visually represents a percentage of completion.
|
|
18
|
+
* It displays a circular track with a stroke that fills based on the `value` prop.
|
|
19
|
+
* The component is customizable with size and color props.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```jsx
|
|
23
|
+
* <ProgressCircle value={0.75} size="md" color="primary-500" />
|
|
24
|
+
* // Renders a circular progress indicator with 75% completion, medium size, and primary color.
|
|
25
|
+
*
|
|
26
|
+
* <ProgressCircle value={0.5} size="lg" color="secondary-500" />
|
|
27
|
+
* // Renders a circular progress indicator with 50% completion, large size, and secondary color.
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function ProgressCircle({ value, size, color }: ProgressProps): import("react").JSX.Element;
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import type { CallbackReturn, ChildrenProp, ColorBase, CssPropWithMap, PolymorphicProps, RefProp, TestProps } from "../../types";
|
|
2
|
+
import type { BadgeType } from "../badge/Badge";
|
|
3
|
+
import type { IconProps } from "../icon/Icon";
|
|
4
|
+
import type { TooltipType } from "../tooltip/Tooltip";
|
|
5
|
+
export interface TabProps extends Partial<ChildrenProp>, CssPropWithMap<{
|
|
6
|
+
root: string;
|
|
7
|
+
label: string;
|
|
8
|
+
active: string;
|
|
9
|
+
badge: string;
|
|
10
|
+
}>, RefProp<HTMLButtonElement>, TestProps {
|
|
4
11
|
/**
|
|
5
12
|
* tab id
|
|
6
13
|
*/
|
|
@@ -12,11 +19,16 @@ export interface TabProps extends Partial<ChildrenProp>, CssProp, RefProp, AriaP
|
|
|
12
19
|
/**
|
|
13
20
|
* tab color
|
|
14
21
|
*/
|
|
15
|
-
color?:
|
|
22
|
+
color?: ColorBase;
|
|
23
|
+
/**
|
|
24
|
+
* icon path or props
|
|
25
|
+
*/
|
|
26
|
+
icon?: IconProps;
|
|
16
27
|
/**
|
|
17
28
|
* tab badge
|
|
18
29
|
*/
|
|
19
30
|
badge?: string | number | BadgeType;
|
|
31
|
+
tooltip?: string | TooltipType;
|
|
20
32
|
/**
|
|
21
33
|
* disabled
|
|
22
34
|
*/
|
|
@@ -25,14 +37,10 @@ export interface TabProps extends Partial<ChildrenProp>, CssProp, RefProp, AriaP
|
|
|
25
37
|
* tab flex to fill button
|
|
26
38
|
*/
|
|
27
39
|
tabFlex?: boolean;
|
|
28
|
-
/**
|
|
29
|
-
* className for active state
|
|
30
|
-
*/
|
|
31
|
-
activeClassName?: string;
|
|
32
40
|
/**
|
|
33
41
|
* action dropdown body
|
|
34
42
|
*/
|
|
35
|
-
actions?: ReactElement;
|
|
43
|
+
actions?: React.ReactElement;
|
|
36
44
|
/**
|
|
37
45
|
* close handler
|
|
38
46
|
*/
|
|
@@ -42,4 +50,28 @@ export interface TabProps extends Partial<ChildrenProp>, CssProp, RefProp, AriaP
|
|
|
42
50
|
*/
|
|
43
51
|
onClick?: (id: string) => CallbackReturn;
|
|
44
52
|
}
|
|
45
|
-
|
|
53
|
+
/**
|
|
54
|
+
* A component that represents a tab in a tabbed interface. It can display an icon, label, badge, and actions.
|
|
55
|
+
* It supports polymorphic rendering, allowing it to be rendered as different HTML elements.
|
|
56
|
+
* It also supports tooltips, active states, and click handling.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```jsx
|
|
60
|
+
* <Tab
|
|
61
|
+
* id="tab1"
|
|
62
|
+
* label="Tab 1"
|
|
63
|
+
* icon="home"
|
|
64
|
+
* badge="New"
|
|
65
|
+
* onClick={(id) => console.log(`Tab clicked: ${id}`)}
|
|
66
|
+
* onClose={() => console.log("Tab closed")}
|
|
67
|
+
* active={true}
|
|
68
|
+
* actions={<button>Action</button>}
|
|
69
|
+
* color="primary"
|
|
70
|
+
* tooltip="This is a tab"
|
|
71
|
+
* activeClassName="bg-blue-100"
|
|
72
|
+
* />
|
|
73
|
+
* // Renders a tab with label "Tab 1", home icon, blue background, white text, badge "New",
|
|
74
|
+
* // and an action button. The tab is active and has a tooltip.
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export declare function Tab<Tag extends React.ElementType = "button">({ ref, as, id, className, classNames, label, icon, badge, disabled, onClose, onClick, tabFlex, color, actions, tooltip, active, ...props }: TabProps & PolymorphicProps<Tag>): React.ReactElement<TabProps>;
|