@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
package/dist/types/index.d.ts
CHANGED
|
@@ -1,19 +1,107 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
+
export declare const CORE_PACKAGE = "@react-fabric/core";
|
|
26
|
+
export declare const CORE_VERSION = "1.0.1";
|
|
27
|
+
export { useApplicationContext } from "./context/context";
|
|
28
|
+
export { ApplicationProvider } from "./context/Global";
|
|
29
|
+
export type { ModalProps } from "./types";
|
|
3
30
|
export { addTranslationBundle } from "./i18n";
|
|
4
|
-
export {
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
31
|
+
export { cloneChildren, getBadgeProps, getColor, getIconProps } from "./utils";
|
|
32
|
+
export { useClientService } from "./hooks/useClientService";
|
|
33
|
+
export { useContextMenu } from "./hooks/useContextMenu";
|
|
34
|
+
export { useControlledValue } from "./hooks/useControlledValue";
|
|
35
|
+
export { useDebounce } from "./hooks/useDebounce";
|
|
36
|
+
export { useEffectDebugger, useLayoutEffectDebugger, useMemoDebugger } from "./hooks/useEffectDebugger";
|
|
37
|
+
export { useIsDark } from "./hooks/useIsDark";
|
|
38
|
+
export { useIsRtl } from "./hooks/useIsRtl";
|
|
39
|
+
export { useNavigator } from "./hooks/useNavigator";
|
|
40
|
+
export { useNotificationService } from "./hooks/useNotificationService";
|
|
41
|
+
export { useOverlayService } from "./hooks/useOverlayService";
|
|
42
|
+
export { usePropState, usePropWatcher } from "./hooks/usePropState";
|
|
43
|
+
export { usePropToggle } from "./hooks/usePropToggle";
|
|
44
|
+
export { useResize } from "./hooks/useResize";
|
|
45
|
+
export { useResizeObserver } from "./hooks/useResizeObserver";
|
|
46
|
+
export { useLocalStorage, useSessionStorage } from "./hooks/useStorage";
|
|
47
|
+
export { AreaToggle } from "./core/areaToggle/AreaToggle";
|
|
48
|
+
export { Aside } from "./core/aside/Aside";
|
|
49
|
+
export { ErrorBoundary } from "./core/boundary/ErrorBoundary";
|
|
50
|
+
export { Content } from "./core/content/Content";
|
|
51
|
+
export { Footer, Header } from "./core/headfoot/HeadFoot";
|
|
52
|
+
export { Layout } from "./core/layout/Layout";
|
|
53
|
+
export { Col, Container, Row } from "./core/responsive/Responsive";
|
|
54
|
+
export { ThemeProvider } from "./core/theme/ThemeProvider";
|
|
55
|
+
export { Viewport } from "./core/viewport/Viewport";
|
|
56
|
+
export { Abbr } from "./typography/Abbr";
|
|
57
|
+
export { Anchor } from "./typography/Anchor";
|
|
58
|
+
export { Copy } from "./typography/Copy";
|
|
59
|
+
export { Kbd } from "./typography/Kbd";
|
|
60
|
+
export { Mark } from "./typography/Mark";
|
|
61
|
+
export { Text } from "./typography/Text";
|
|
62
|
+
export { Title } from "./typography/Title";
|
|
63
|
+
export { ActionLabel } from "./components/actionLabel/ActionLabel";
|
|
64
|
+
export { AnimationIndicator } from "./components/animations/Indicator";
|
|
65
|
+
export { AnimationLoader } from "./components/animations/Loader";
|
|
66
|
+
export { LoadingBars } from "./components/animations/LoadingBars";
|
|
67
|
+
export { LoadingLine } from "./components/animations/LoadingLine";
|
|
68
|
+
export { LoadingSpinner } from "./components/animations/LoadingSpinner";
|
|
69
|
+
export { Skeleton } from "./components/animations/Skeleton";
|
|
70
|
+
export { Avatar } from "./components/avatar/Avatar";
|
|
71
|
+
export { AvatarGroup } from "./components/avatar/AvatarGroup";
|
|
72
|
+
export { Badge } from "./components/badge/Badge";
|
|
73
|
+
export { Button } from "./components/button/Button";
|
|
74
|
+
export { ButtonGroup } from "./components/button/ButtonGroup";
|
|
75
|
+
export { ConfirmButton } from "./components/button/ConfirmButton";
|
|
76
|
+
export { ToggleButtonGroup } from "./components/button/ToggleButtonGroup";
|
|
77
|
+
export { Callout } from "./components/callout/Callout";
|
|
78
|
+
export { Card } from "./components/card/Card";
|
|
79
|
+
export { CardCover } from "./components/card/CardCover";
|
|
80
|
+
export { FlipContent, type FlipContentRef } from "./components/card/FlipContent";
|
|
81
|
+
export { Chip } from "./components/chip/Chip";
|
|
82
|
+
export { Collapsable } from "./components/collapsable/Collapsable";
|
|
83
|
+
export { Divider } from "./components/divider/Divider";
|
|
84
|
+
export { Dropdown, DropdownDismiss } from "./components/dropdown/Dropdown";
|
|
85
|
+
export { DropdownTool } from "./components/dropdown/DropdownTool";
|
|
86
|
+
export { StyleEffect } from "./components/effect/StyleEffect";
|
|
87
|
+
export { EmptyContent } from "./components/empty/EmptyContent";
|
|
88
|
+
export { Flyout } from "./components/flyout/Flyout";
|
|
89
|
+
export { HotKey } from "./components/hotkey/HotKey";
|
|
90
|
+
export { Icon } from "./components/icon/Icon";
|
|
91
|
+
export { Image, Video } from "./components/media/Media";
|
|
92
|
+
export { ContextMenu } from "./components/menu/ContextMenu";
|
|
93
|
+
export { Menu } from "./components/menu/Menu";
|
|
94
|
+
export { MenuItem } from "./components/menu/MenuItem";
|
|
95
|
+
export { Meter } from "./components/meter/Meter";
|
|
96
|
+
export { Modal } from "./components/modal/Modal";
|
|
97
|
+
export { Navigator } from "./components/navigator/Navigator";
|
|
98
|
+
export { Panel } from "./components/panel/Panel";
|
|
99
|
+
export { PanelGroup } from "./components/panel/PanelGroup";
|
|
100
|
+
export { PanelStack } from "./components/panel/PanelStack";
|
|
101
|
+
export { Pillbox } from "./components/pillbox/Pillbox";
|
|
102
|
+
export { ProgressBar } from "./components/progress/ProgressBar";
|
|
103
|
+
export { ProgressCircle } from "./components/progress/ProgressCircle";
|
|
104
|
+
export { Tab } from "./components/tabpanel/Tab";
|
|
105
|
+
export { TabPanel } from "./components/tabpanel/TabPanel";
|
|
106
|
+
export { Titlebar } from "./components/titlebar/Titlebar";
|
|
107
|
+
export { Tooltip } from "./components/tooltip/Tooltip";
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
export type ColorBase = "primary" | "secondary" | "info" | "danger" | "success" | "warning";
|
|
26
|
+
export type ColorTints = "tint" | "silver" | "steel" | "olive" | "blush" | "slate";
|
|
27
|
+
export type ColorPalette = "scarlet" | "pumpkin" | "marigold" | "amber" | "jade" | "avocado" | "teal" | "azure" | "denim" | "iris" | "lilac" | "orchid" | "coral" | "wood" | "terracotta";
|
|
28
|
+
export type ColorUnion = ColorBase | ColorTints | ColorPalette;
|
|
29
|
+
export type CustomColors<T = ColorUnion> = T | (string & {});
|
|
@@ -1,49 +1,106 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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
|
+
/**
|
|
26
|
+
* Core type definitions for React Fabric.
|
|
27
|
+
*
|
|
28
|
+
* This module exports shared TypeScript types and interfaces used across the library,
|
|
29
|
+
* including CSS prop types, test prop types, polymorphic component props,
|
|
30
|
+
* and utility types for working with React elements and nested object keys.
|
|
31
|
+
*/
|
|
32
|
+
export type { ColorBase, ColorPalette, ColorTints, ColorUnion, CustomColors } from "./colors";
|
|
33
|
+
export type CSSSizeType = string | number;
|
|
3
34
|
export type SizeType = "xs" | "sm" | "md" | "lg" | "xl";
|
|
4
|
-
export type
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export interface
|
|
35
|
+
export type SizeWithCustom = SizeType | (string & {}) | number;
|
|
36
|
+
export interface PositionObject {
|
|
37
|
+
top: number;
|
|
38
|
+
left: number;
|
|
39
|
+
}
|
|
40
|
+
export interface SizeObject {
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
}
|
|
44
|
+
export interface ScrollObject extends PositionObject, SizeObject {
|
|
45
|
+
scrollWidth?: number;
|
|
46
|
+
scrollHeight: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* CSS prop types
|
|
50
|
+
* This interface defines the properties that can be used for styling React components using CSS class names.
|
|
51
|
+
* It includes an optional "className" property for applying CSS class names directly to the component,
|
|
52
|
+
* and an optional "classNames" property which is an object map for component items, allowing for more granular styling.
|
|
53
|
+
* The "dir" property specifies the text direction, which can be either "ltr" (left-to-right) or "rtl" (right-to-left), providing support for internationalization and different writing systems.
|
|
54
|
+
* By using this interface, developers can easily apply consistent styling to their components while also supporting various text directions.
|
|
55
|
+
*/
|
|
56
|
+
export interface CssProp {
|
|
10
57
|
/**
|
|
11
|
-
*
|
|
58
|
+
* css classname(s)
|
|
12
59
|
*/
|
|
13
|
-
|
|
60
|
+
className?: string;
|
|
61
|
+
dir?: "ltr" | "rtl";
|
|
62
|
+
}
|
|
63
|
+
export interface CssPropWithMap<T extends Record<string, string> = never> extends CssProp {
|
|
14
64
|
/**
|
|
15
|
-
*
|
|
65
|
+
* css classname(s) object map for component items
|
|
16
66
|
*/
|
|
17
|
-
|
|
67
|
+
classNames?: Partial<T>;
|
|
68
|
+
}
|
|
69
|
+
export interface HeightProps {
|
|
18
70
|
/**
|
|
19
|
-
*
|
|
71
|
+
* initial height
|
|
20
72
|
*/
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
export interface BadgeType {
|
|
73
|
+
height?: number | string;
|
|
24
74
|
/**
|
|
25
|
-
*
|
|
75
|
+
* max height
|
|
26
76
|
*/
|
|
27
|
-
|
|
77
|
+
maxHeight?: number | string;
|
|
28
78
|
/**
|
|
29
|
-
*
|
|
79
|
+
* min height
|
|
30
80
|
*/
|
|
31
|
-
|
|
81
|
+
minHeight?: number | string;
|
|
82
|
+
}
|
|
83
|
+
export interface WidthProps {
|
|
32
84
|
/**
|
|
33
|
-
*
|
|
85
|
+
* initial width
|
|
34
86
|
*/
|
|
35
|
-
|
|
87
|
+
width?: number | string;
|
|
36
88
|
/**
|
|
37
|
-
*
|
|
89
|
+
* max width
|
|
38
90
|
*/
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
export interface CssProp {
|
|
91
|
+
maxWidth?: number | string;
|
|
42
92
|
/**
|
|
43
|
-
*
|
|
93
|
+
* min width
|
|
44
94
|
*/
|
|
45
|
-
|
|
95
|
+
minWidth?: number | string;
|
|
46
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Test prop types
|
|
99
|
+
* This interface defines the properties that can be used for testing purposes in React components.
|
|
100
|
+
* It includes optional data attributes for test id and test value, which can be used to identify and interact with elements during testing.
|
|
101
|
+
* The "data-testid" attribute is commonly used to provide a unique identifier for an element, while the "data-test-value" attribute can hold any additional information relevant to the test.
|
|
102
|
+
* By using these properties, developers can write more robust and maintainable tests that target specific elements in the DOM.
|
|
103
|
+
*/
|
|
47
104
|
export interface TestProps {
|
|
48
105
|
/**
|
|
49
106
|
* data attribute for test id
|
|
@@ -52,44 +109,91 @@ export interface TestProps {
|
|
|
52
109
|
/**
|
|
53
110
|
* data attribute for test value
|
|
54
111
|
*/
|
|
55
|
-
"data-test-value"?:
|
|
112
|
+
"data-test-value"?: string;
|
|
56
113
|
}
|
|
57
|
-
export
|
|
58
|
-
export type AriaProps = React.AriaAttributes;
|
|
59
|
-
/**
|
|
60
|
-
* For wrapping components
|
|
61
|
-
*/
|
|
62
|
-
export interface RefProp<T = HTMLElement> {
|
|
63
|
-
ref?: Ref<T>;
|
|
64
|
-
}
|
|
65
|
-
export type CallbackReturn<T = unknown> = undefined | T | Promise<T | undefined>;
|
|
66
|
-
export type ReactTag = keyof JSX.IntrinsicElements | JSXElementConstructor<any>;
|
|
67
|
-
export type PropsOf<AsTag extends ReactTag> = AsTag extends React.ElementType ? Omit<React.ComponentProps<AsTag>, "ref"> : never;
|
|
68
|
-
export type PolymorphicProps<AsTag extends ReactTag> = Omit<PropsOf<AsTag>, "children" | "as" | "className" | "onClick"> & {
|
|
114
|
+
export interface HtmlEvents {
|
|
69
115
|
/**
|
|
70
|
-
*
|
|
71
|
-
* Either a string to use a HTML element or a component.
|
|
116
|
+
* Focus handler for the button.
|
|
72
117
|
*/
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
118
|
+
onFocus?: (e: React.FocusEvent) => void;
|
|
119
|
+
/**
|
|
120
|
+
* Blur handler for the button.
|
|
121
|
+
*/
|
|
122
|
+
onBlur?: (e: React.FocusEvent) => void;
|
|
123
|
+
/**
|
|
124
|
+
* Click handler for the button.
|
|
125
|
+
*/
|
|
126
|
+
onClick?: (e?: React.MouseEvent) => CallbackReturn;
|
|
76
127
|
/**
|
|
77
|
-
*
|
|
128
|
+
* Mouse down handler for the button.
|
|
78
129
|
*/
|
|
79
|
-
|
|
130
|
+
onMouseDown?: (e: React.MouseEvent) => void;
|
|
80
131
|
/**
|
|
81
|
-
*
|
|
132
|
+
* Mouse up handler for the button.
|
|
82
133
|
*/
|
|
83
|
-
|
|
134
|
+
onMouseUp?: (e: React.MouseEvent) => void;
|
|
84
135
|
/**
|
|
85
|
-
*
|
|
136
|
+
* Mouse over handler for the button.
|
|
86
137
|
*/
|
|
87
|
-
|
|
138
|
+
onMouseOver?: (e: React.MouseEvent) => void;
|
|
88
139
|
/**
|
|
89
|
-
*
|
|
140
|
+
* Mouse move handler for the button.
|
|
90
141
|
*/
|
|
91
|
-
|
|
142
|
+
onMouseMove?: (e: React.MouseEvent) => void;
|
|
143
|
+
/**
|
|
144
|
+
* Mouse enter handler for the button.
|
|
145
|
+
*/
|
|
146
|
+
onMouseEnter?: (e: React.MouseEvent) => void;
|
|
147
|
+
/**
|
|
148
|
+
* Mouse leave handler for the button.
|
|
149
|
+
*/
|
|
150
|
+
onMouseLeave?: (e: React.MouseEvent) => void;
|
|
92
151
|
}
|
|
152
|
+
export interface Draggable {
|
|
153
|
+
/**
|
|
154
|
+
* make card draggable
|
|
155
|
+
*/
|
|
156
|
+
draggable?: boolean;
|
|
157
|
+
/**
|
|
158
|
+
* drag event data key
|
|
159
|
+
*/
|
|
160
|
+
dragKey?: string;
|
|
161
|
+
/**
|
|
162
|
+
* drag event data
|
|
163
|
+
*/
|
|
164
|
+
dragData?: KeyValue;
|
|
165
|
+
onDrag?: (e: React.DragEvent) => void;
|
|
166
|
+
onDragStart?: (e: React.DragEvent, dragKey: string, dragData?: KeyValue) => void;
|
|
167
|
+
onDragEnd?: (e: React.DragEvent) => void;
|
|
168
|
+
}
|
|
169
|
+
export interface Droppable {
|
|
170
|
+
/**
|
|
171
|
+
* droppable types. true for all, string[] for specific types
|
|
172
|
+
*/
|
|
173
|
+
dropable?: true | string[];
|
|
174
|
+
onDragEnter?: (e: React.DragEvent) => void;
|
|
175
|
+
onDragOver?: (e: React.DragEvent) => void;
|
|
176
|
+
onDragLeave?: (e: React.DragEvent) => void;
|
|
177
|
+
onDrop?: (e: React.DragEvent) => void;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Utility type for ref props in React components.
|
|
181
|
+
* This type defines a generic interface for components that accept a ref prop, allowing the ref to be of any specified type T (defaulting to HTMLElement).
|
|
182
|
+
* The ref prop is optional and can be used to access the underlying DOM element or component instance.
|
|
183
|
+
* By using this type, you can ensure that your components are properly typed when accepting refs, improving type safety and developer experience.
|
|
184
|
+
*/
|
|
185
|
+
export interface RefProp<T = HTMLElement> {
|
|
186
|
+
ref?: React.Ref<T>;
|
|
187
|
+
}
|
|
188
|
+
export type ModalProps<P = unknown, T extends AnyObject = AnyObject> = P & {
|
|
189
|
+
onClose?: (args: T | null) => void;
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* Utility type for callback return values, allowing for void, undefined, a specific type T, or a Promise that resolves to T or undefined.
|
|
193
|
+
* This type is useful for defining the return type of callback functions that may perform asynchronous operations or may not return a value at all.
|
|
194
|
+
* By including void and undefined, it allows for flexibility in how the callback is implemented, while still providing the option to return a specific type or a Promise.
|
|
195
|
+
*/
|
|
196
|
+
export type CallbackReturn<T = unknown> = void | undefined | T | Promise<T | undefined>;
|
|
93
197
|
export interface CollapseProps {
|
|
94
198
|
/**
|
|
95
199
|
* Allow collapsing
|
|
@@ -118,27 +222,63 @@ export interface ExpandProps {
|
|
|
118
222
|
*/
|
|
119
223
|
onExpand?: (state: boolean) => void;
|
|
120
224
|
}
|
|
121
|
-
export
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
*/
|
|
125
|
-
tooltip?: string | TooltipType;
|
|
126
|
-
}
|
|
127
|
-
export interface ChildProp<T = JSX.Element> {
|
|
128
|
-
children: Elements<T>;
|
|
129
|
-
}
|
|
130
|
-
export interface ChildrenProp<T = JSX.Element> {
|
|
131
|
-
children: Elements<T> | Array<Elements<T>>;
|
|
132
|
-
}
|
|
133
|
-
export interface PositionObject {
|
|
134
|
-
top: number;
|
|
135
|
-
left: number;
|
|
136
|
-
}
|
|
137
|
-
export interface SizeObject {
|
|
138
|
-
width: number;
|
|
139
|
-
height: number;
|
|
225
|
+
export type ChildNode<T = unknown> = React.ReactElement<T> | React.ReactNode | false | undefined | null;
|
|
226
|
+
export interface ChildProp<T = unknown> {
|
|
227
|
+
children: ChildNode<T>;
|
|
140
228
|
}
|
|
141
|
-
export interface
|
|
142
|
-
|
|
143
|
-
scrollHeight: number;
|
|
229
|
+
export interface ChildrenProp<T = unknown> {
|
|
230
|
+
children: ChildNode<T> | Array<ChildNode<T>>;
|
|
144
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* React tag types
|
|
234
|
+
*/
|
|
235
|
+
export type ReactTag = keyof React.JSX.IntrinsicElements | React.JSXElementConstructor<unknown>;
|
|
236
|
+
/**
|
|
237
|
+
* Utility type to extract props of a given React tag, excluding the ref prop.
|
|
238
|
+
* If the tag is a valid React element type, it returns the component props without the ref.
|
|
239
|
+
* Otherwise, it returns never.
|
|
240
|
+
*/
|
|
241
|
+
export type PropsOf<AsTag extends ReactTag> = AsTag extends React.ElementType ? Omit<React.ComponentProps<AsTag>, "ref"> : never;
|
|
242
|
+
/**
|
|
243
|
+
* Utility type for polymorphic component props.
|
|
244
|
+
* It combines the props of the specified React tag (excluding "as" and HTML attributes)
|
|
245
|
+
* with an optional "as" prop that allows specifying the component or HTML element to render.
|
|
246
|
+
* This type is useful for creating flexible components that can render different elements based on the "as" prop.
|
|
247
|
+
* The resulting props include all props of the specified tag, except for "as",
|
|
248
|
+
* which are handled separately to avoid conflicts.
|
|
249
|
+
*/
|
|
250
|
+
export type PolymorphicProps<AsTag extends ReactTag> = Omit<PropsOf<AsTag>, "as" | "children" | "onClick" | "onDragStart"> & {
|
|
251
|
+
/**
|
|
252
|
+
* The component used for the root node.
|
|
253
|
+
* Either a string to use a HTML element or a component.
|
|
254
|
+
*/
|
|
255
|
+
as?: AsTag;
|
|
256
|
+
};
|
|
257
|
+
/**
|
|
258
|
+
* Utility type to extract the element type from an array or array-like type.
|
|
259
|
+
* If the type is a readonly array, it returns the type of its elements.
|
|
260
|
+
* If the type is an array-like object, it also returns the type of its elements.
|
|
261
|
+
* If the type is undefined or does not match either case, it returns undefined.
|
|
262
|
+
*/
|
|
263
|
+
export type ArrayType<T extends readonly unknown[] | ArrayLike<unknown> | undefined> = T extends readonly unknown[] ? T[number] : T extends ArrayLike<unknown> ? T[number] : undefined;
|
|
264
|
+
/**
|
|
265
|
+
* Utility type to make all properties of a type required, but still allow them to be optional if they were originally optional.
|
|
266
|
+
* This is useful for cases where you want to ensure that all properties are present, but still want to allow for optional properties to be omitted.
|
|
267
|
+
* The type iterates over each property of the input type T and checks if it is required or optional.
|
|
268
|
+
* If the property is required, it keeps it as is. If the property is optional, it allows it to be either the original type or undefined.
|
|
269
|
+
*/
|
|
270
|
+
export type Complete<T> = {
|
|
271
|
+
[P in keyof Required<T>]: Pick<T, P> extends Required<Pick<T, P>> ? T[P] : T[P] | undefined;
|
|
272
|
+
};
|
|
273
|
+
/**
|
|
274
|
+
* Utility type to recursively extract nested keys from an object type T.
|
|
275
|
+
* It checks if T is an object and iterates over its keys. For each key K, it checks if the corresponding value is also an object.
|
|
276
|
+
* If it is, it recursively extracts the nested keys and combines them with the current key using dot notation.
|
|
277
|
+
* If the value is not an object, it simply returns the current key. The resulting type is a union of all possible nested keys in the object.
|
|
278
|
+
* This type is useful for scenarios where you want to access deeply nested properties of an object using a string path.
|
|
279
|
+
*/
|
|
280
|
+
export type NestedKeys<T> = T extends object ? {
|
|
281
|
+
[K in keyof T]: K extends string | number ? T[K] extends object ? T[K] extends readonly unknown[] ? T[K][number] extends object ? // Array of objects/items: return key with array index notation and recurse
|
|
282
|
+
`${K}.${NestedKeys<T[K][number]>}` | `${K}` : `${K}` : // Standard object: return key with dot notation and recurse
|
|
283
|
+
`${K}.${NestedKeys<T[K]>}` | `${K}` : `${K}` : never;
|
|
284
|
+
}[keyof T] : "";
|
|
@@ -1,5 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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 { ChildProp, CssProp, CustomColors } from "../types";
|
|
3
26
|
export interface AbbrProps extends ChildProp<string>, CssProp {
|
|
4
27
|
/**
|
|
5
28
|
* content to copy using the tooltip copy action
|
|
@@ -10,13 +33,35 @@ export interface AbbrProps extends ChildProp<string>, CssProp {
|
|
|
10
33
|
*
|
|
11
34
|
* [textPart, tooltip, color (class name or color string)]
|
|
12
35
|
*/
|
|
13
|
-
abbr: Array<[textPart: string, tooltip: string, color?:
|
|
36
|
+
abbr: Array<[textPart: string, tooltip: string, color?: CustomColors]>;
|
|
14
37
|
/**
|
|
15
38
|
* renderer callback
|
|
16
39
|
*/
|
|
17
|
-
renderer?: (part: string[]) =>
|
|
40
|
+
renderer?: (part: string[]) => React.ReactElement;
|
|
18
41
|
}
|
|
19
42
|
/**
|
|
20
|
-
*
|
|
43
|
+
* A component that renders abbreviated text with tooltips for additional information.
|
|
44
|
+
* It allows you to define a list of abbreviations, each with a tooltip and optional color.
|
|
45
|
+
* The component will tokenize the children text and replace matching parts with the abbreviated version.
|
|
46
|
+
* It supports a copy action that can either copy the text or the tooltip content.
|
|
47
|
+
* This component is useful for displaying technical terms or acronyms in a user-friendly way,
|
|
48
|
+
* while providing additional context through tooltips.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```jsx
|
|
52
|
+
* <Abbr
|
|
53
|
+
* abbr={[
|
|
54
|
+
* ["HTML", "HyperText Markup Language", "primary"],
|
|
55
|
+
* ["CSS", "Cascading Style Sheets", "secondary"],
|
|
56
|
+
* ["JS", "JavaScript", "success"],
|
|
57
|
+
* ]}
|
|
58
|
+
* className="text-sm"
|
|
59
|
+
* copyContent="tooltip"
|
|
60
|
+
* >
|
|
61
|
+
* Learn more about HTML, CSS, and JS.
|
|
62
|
+
* </Abbr>
|
|
63
|
+
* // Renders the text with abbreviations for HTML, CSS, and JS,
|
|
64
|
+
* // each with a tooltip showing the full form and colored according to the specified color.
|
|
65
|
+
* ```
|
|
21
66
|
*/
|
|
22
|
-
export declare
|
|
67
|
+
export declare function Abbr({ children, abbr, className, renderer, copyContent }: AbbrProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,41 @@
|
|
|
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 { ChildrenProp, CssProp, PolymorphicProps, RefProp } from "../types";
|
|
26
|
+
export interface AnchorProps extends ChildrenProp, CssProp, RefProp {
|
|
27
|
+
onClick?: React.MouseEventHandler;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A versatile link component that supports polymorphic rendering, allowing it to be used as an anchor (`<a>`), button, or any other HTML element.
|
|
31
|
+
* This component is useful for creating links that need to be styled consistently across an application, while also providing flexibility in terms of the HTML element used.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```jsx
|
|
35
|
+
* <Anchor href="https://example.com">
|
|
36
|
+
* Click here
|
|
37
|
+
* </Anchor>
|
|
38
|
+
* // Renders a link with default styling.
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function Anchor<Tag extends React.ElementType = "a">({ ref, as, children, className, ...props }: AnchorProps & PolymorphicProps<Tag>): import("react").JSX.Element;
|
|
@@ -1,4 +1,38 @@
|
|
|
1
|
-
|
|
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, SizeType } from "../types";
|
|
26
|
+
/**
|
|
27
|
+
* A component that provides a button to copy text to the clipboard.
|
|
28
|
+
* It uses the Clipboard API to write the specified text to the clipboard.
|
|
29
|
+
* The button displays a tooltip feedback when the text is successfully copied.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```jsx
|
|
33
|
+
* <Copy text="Text to copy" size="small" />
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
2
36
|
export interface CopyProps extends CssProp {
|
|
3
37
|
text: string;
|
|
4
38
|
/**
|
|
@@ -6,4 +40,4 @@ export interface CopyProps extends CssProp {
|
|
|
6
40
|
*/
|
|
7
41
|
size?: SizeType;
|
|
8
42
|
}
|
|
9
|
-
export declare
|
|
43
|
+
export declare function Copy({ text, size, className }: CopyProps): import("react").JSX.Element;
|