@forgedevstack/bear 1.0.7 → 1.0.9
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/dist/components/ActivityItem/ActivityItem.cjs +1 -1
- package/dist/components/ActivityItem/ActivityItem.js +1 -0
- package/dist/components/Alert/Alert.cjs +1 -1
- package/dist/components/Alert/Alert.const.cjs +1 -1
- package/dist/components/Alert/Alert.const.d.ts +4 -0
- package/dist/components/Alert/Alert.const.js +10 -15
- package/dist/components/Alert/Alert.js +43 -38
- package/dist/components/AppBar/AppBar.cjs +1 -1
- package/dist/components/AppBar/AppBar.js +19 -14
- package/dist/components/BackTop/BackTop.cjs +1 -0
- package/dist/components/BackTop/BackTop.const.cjs +1 -0
- package/dist/components/BackTop/BackTop.const.d.ts +34 -0
- package/dist/components/BackTop/BackTop.const.js +29 -0
- package/dist/components/BackTop/BackTop.d.ts +21 -0
- package/dist/components/BackTop/BackTop.js +87 -0
- package/dist/components/BackTop/BackTop.types.d.ts +28 -0
- package/dist/components/BackTop/index.d.ts +3 -0
- package/dist/components/Badge/Badge.cjs +1 -1
- package/dist/components/Badge/Badge.constants.d.ts +4 -4
- package/dist/components/Badge/Badge.js +15 -14
- package/dist/components/Badge/Badge.types.d.ts +3 -3
- package/dist/components/BearLogo/EmberLogo.cjs +1 -1
- package/dist/components/BearLogo/EmberLogo.js +3 -2
- package/dist/components/BottomNavigation/BottomNavigation.cjs +1 -1
- package/dist/components/BottomNavigation/BottomNavigation.js +3 -2
- package/dist/components/BottomSheet/BottomSheet.cjs +1 -1
- package/dist/components/BottomSheet/BottomSheet.js +39 -38
- package/dist/components/Button/Button.cjs +1 -1
- package/dist/components/Button/Button.constants.cjs +38 -48
- package/dist/components/Button/Button.constants.d.ts +22 -3
- package/dist/components/Button/Button.constants.js +51 -50
- package/dist/components/Button/Button.d.ts +14 -7
- package/dist/components/Button/Button.js +123 -45
- package/dist/components/Button/Button.types.d.ts +22 -4
- package/dist/components/Calendar/Calendar.cjs +1 -1
- package/dist/components/Calendar/Calendar.js +3 -2
- package/dist/components/Card/Card.const.d.ts +2 -2
- package/dist/components/Card/Card.types.d.ts +2 -2
- package/dist/components/Carousel/Carousel.cjs +1 -1
- package/dist/components/Carousel/Carousel.const.cjs +1 -0
- package/dist/components/Carousel/Carousel.const.d.ts +12 -0
- package/dist/components/Carousel/Carousel.const.js +9 -0
- package/dist/components/Carousel/Carousel.d.ts +14 -3
- package/dist/components/Carousel/Carousel.js +222 -75
- package/dist/components/Carousel/Carousel.types.d.ts +32 -2
- package/dist/components/Carousel/index.d.ts +1 -1
- package/dist/components/Chat/Chat.cjs +1 -0
- package/dist/components/Chat/Chat.const.cjs +1 -0
- package/dist/components/Chat/Chat.const.d.ts +26 -0
- package/dist/components/Chat/Chat.const.js +29 -0
- package/dist/components/Chat/Chat.d.ts +21 -0
- package/dist/components/Chat/Chat.js +179 -0
- package/dist/components/Chat/Chat.types.d.ts +55 -0
- package/dist/components/Chat/index.d.ts +2 -0
- package/dist/components/Chip/Chip.cjs +1 -1
- package/dist/components/Chip/Chip.js +3 -2
- package/dist/components/CodeEditor/CodeEditor.cjs +5 -0
- package/dist/components/CodeEditor/CodeEditor.const.cjs +1 -0
- package/dist/components/CodeEditor/CodeEditor.const.d.ts +21 -0
- package/dist/components/CodeEditor/CodeEditor.const.js +119 -0
- package/dist/components/CodeEditor/CodeEditor.d.ts +22 -0
- package/dist/components/CodeEditor/CodeEditor.js +250 -0
- package/dist/components/CodeEditor/CodeEditor.types.d.ts +80 -0
- package/dist/components/CodeEditor/CodeEditor.utils.cjs +1 -0
- package/dist/components/CodeEditor/CodeEditor.utils.d.ts +6 -0
- package/dist/components/CodeEditor/CodeEditor.utils.js +75 -0
- package/dist/components/CodeEditor/index.d.ts +2 -0
- package/dist/components/Columns/Columns.cjs +1 -1
- package/dist/components/Columns/Columns.js +9 -8
- package/dist/components/Confetti/Confetti.cjs +1 -0
- package/dist/components/Confetti/Confetti.const.cjs +1 -0
- package/dist/components/Confetti/Confetti.const.d.ts +16 -0
- package/dist/components/Confetti/Confetti.const.js +36 -0
- package/dist/components/Confetti/Confetti.d.ts +23 -0
- package/dist/components/Confetti/Confetti.js +94 -0
- package/dist/components/Confetti/Confetti.types.d.ts +50 -0
- package/dist/components/Confetti/index.d.ts +4 -0
- package/dist/components/Confetti/useConfetti.cjs +1 -0
- package/dist/components/Confetti/useConfetti.d.ts +13 -0
- package/dist/components/Confetti/useConfetti.js +12 -0
- package/dist/components/CountdownTimer/CountdownTimer.cjs +1 -0
- package/dist/components/CountdownTimer/CountdownTimer.const.cjs +1 -0
- package/dist/components/CountdownTimer/CountdownTimer.const.d.ts +27 -0
- package/dist/components/CountdownTimer/CountdownTimer.const.js +35 -0
- package/dist/components/CountdownTimer/CountdownTimer.d.ts +7 -0
- package/dist/components/CountdownTimer/CountdownTimer.js +115 -0
- package/dist/components/CountdownTimer/CountdownTimer.types.d.ts +56 -0
- package/dist/components/CountdownTimer/index.d.ts +2 -0
- package/dist/components/Cropper/Cropper.cjs +1 -0
- package/dist/components/Cropper/Cropper.const.cjs +1 -0
- package/dist/components/Cropper/Cropper.const.d.ts +31 -0
- package/dist/components/Cropper/Cropper.const.js +33 -0
- package/dist/components/Cropper/Cropper.d.ts +21 -0
- package/dist/components/Cropper/Cropper.js +362 -0
- package/dist/components/Cropper/Cropper.types.d.ts +72 -0
- package/dist/components/Cropper/index.d.ts +2 -0
- package/dist/components/DataTable/DataTable.cjs +1 -1
- package/dist/components/DataTable/DataTable.js +5 -4
- package/dist/components/DatePicker/DatePicker.cjs +1 -1
- package/dist/components/DatePicker/DatePicker.js +3 -2
- package/dist/components/DiffViewer/DiffViewer.cjs +1 -0
- package/dist/components/DiffViewer/DiffViewer.const.cjs +1 -0
- package/dist/components/DiffViewer/DiffViewer.const.d.ts +18 -0
- package/dist/components/DiffViewer/DiffViewer.const.js +21 -0
- package/dist/components/DiffViewer/DiffViewer.d.ts +18 -0
- package/dist/components/DiffViewer/DiffViewer.js +127 -0
- package/dist/components/DiffViewer/DiffViewer.types.d.ts +40 -0
- package/dist/components/DiffViewer/DiffViewer.utils.cjs +3 -0
- package/dist/components/DiffViewer/DiffViewer.utils.d.ts +9 -0
- package/dist/components/DiffViewer/DiffViewer.utils.js +39 -0
- package/dist/components/DiffViewer/index.d.ts +2 -0
- package/dist/components/Divider/Divider.cjs +1 -1
- package/dist/components/Divider/Divider.js +15 -14
- package/dist/components/Dock/Dock.cjs +1 -0
- package/dist/components/Dock/Dock.const.cjs +1 -0
- package/dist/components/Dock/Dock.const.d.ts +25 -0
- package/dist/components/Dock/Dock.const.js +22 -0
- package/dist/components/Dock/Dock.d.ts +7 -0
- package/dist/components/Dock/Dock.js +144 -0
- package/dist/components/Dock/Dock.types.d.ts +42 -0
- package/dist/components/Dock/index.d.ts +2 -0
- package/dist/components/Drawer/Drawer.cjs +1 -1
- package/dist/components/Drawer/Drawer.js +35 -35
- package/dist/components/EmptyState/EmptyState.cjs +1 -1
- package/dist/components/EmptyState/EmptyState.js +7 -6
- package/dist/components/FloatingChat/FloatingChat.cjs +1 -0
- package/dist/components/FloatingChat/FloatingChat.const.cjs +1 -0
- package/dist/components/FloatingChat/FloatingChat.const.d.ts +12 -0
- package/dist/components/FloatingChat/FloatingChat.const.js +15 -0
- package/dist/components/FloatingChat/FloatingChat.d.ts +19 -0
- package/dist/components/FloatingChat/FloatingChat.js +144 -0
- package/dist/components/FloatingChat/FloatingChat.types.d.ts +44 -0
- package/dist/components/FloatingChat/index.d.ts +2 -0
- package/dist/components/GradientText/GradientText.cjs +1 -0
- package/dist/components/GradientText/GradientText.const.cjs +1 -0
- package/dist/components/GradientText/GradientText.const.d.ts +15 -0
- package/dist/components/GradientText/GradientText.const.js +36 -0
- package/dist/components/GradientText/GradientText.d.ts +7 -0
- package/dist/components/GradientText/GradientText.js +52 -0
- package/dist/components/GradientText/GradientText.types.d.ts +27 -0
- package/dist/components/GradientText/index.d.ts +2 -0
- package/dist/components/Highlight/Highlight.cjs +1 -1
- package/dist/components/Highlight/Highlight.const.cjs +1 -0
- package/dist/components/Highlight/Highlight.const.d.ts +8 -0
- package/dist/components/Highlight/Highlight.const.js +15 -0
- package/dist/components/Highlight/Highlight.d.ts +4 -0
- package/dist/components/Highlight/Highlight.js +32 -24
- package/dist/components/Highlight/Highlight.types.d.ts +9 -1
- package/dist/components/Highlight/index.d.ts +1 -1
- package/dist/components/Icon/Icon.cjs +1 -1
- package/dist/components/Icon/Icon.js +17 -16
- package/dist/components/Icon/index.cjs +1 -1
- package/dist/components/Icon/index.js +12 -11
- package/dist/components/JsonViewer/JsonViewer.cjs +1 -0
- package/dist/components/JsonViewer/JsonViewer.const.cjs +1 -0
- package/dist/components/JsonViewer/JsonViewer.const.d.ts +4 -0
- package/dist/components/JsonViewer/JsonViewer.const.js +24 -0
- package/dist/components/JsonViewer/JsonViewer.d.ts +17 -0
- package/dist/components/JsonViewer/JsonViewer.js +195 -0
- package/dist/components/JsonViewer/JsonViewer.types.d.ts +54 -0
- package/dist/components/JsonViewer/index.d.ts +2 -0
- package/dist/components/Kanban/Kanban.cjs +1 -1
- package/dist/components/Kanban/Kanban.js +18 -17
- package/dist/components/Kbd/Kbd.cjs +1 -1
- package/dist/components/Kbd/Kbd.js +17 -16
- package/dist/components/Map/Map.cjs +1 -0
- package/dist/components/Map/Map.const.cjs +1 -0
- package/dist/components/Map/Map.const.d.ts +20 -0
- package/dist/components/Map/Map.const.js +26 -0
- package/dist/components/Map/Map.d.ts +20 -0
- package/dist/components/Map/Map.js +259 -0
- package/dist/components/Map/Map.types.d.ts +81 -0
- package/dist/components/Map/index.d.ts +2 -0
- package/dist/components/Marquee/Marquee.cjs +1 -0
- package/dist/components/Marquee/Marquee.const.cjs +1 -0
- package/dist/components/Marquee/Marquee.const.d.ts +11 -0
- package/dist/components/Marquee/Marquee.const.js +12 -0
- package/dist/components/Marquee/Marquee.d.ts +7 -0
- package/dist/components/Marquee/Marquee.js +106 -0
- package/dist/components/Marquee/Marquee.types.d.ts +32 -0
- package/dist/components/Marquee/index.d.ts +2 -0
- package/dist/components/Masonry/Masonry.cjs +1 -0
- package/dist/components/Masonry/Masonry.const.cjs +1 -0
- package/dist/components/Masonry/Masonry.const.d.ts +9 -0
- package/dist/components/Masonry/Masonry.const.js +9 -0
- package/dist/components/Masonry/Masonry.d.ts +7 -0
- package/dist/components/Masonry/Masonry.js +51 -0
- package/dist/components/Masonry/Masonry.types.d.ts +21 -0
- package/dist/components/Masonry/index.d.ts +2 -0
- package/dist/components/NavigableSelect/NavigableSelect.cjs +1 -0
- package/dist/components/NavigableSelect/NavigableSelect.const.cjs +1 -0
- package/dist/components/NavigableSelect/NavigableSelect.const.d.ts +23 -0
- package/dist/components/NavigableSelect/NavigableSelect.const.js +33 -0
- package/dist/components/NavigableSelect/NavigableSelect.d.ts +7 -0
- package/dist/components/NavigableSelect/NavigableSelect.js +361 -0
- package/dist/components/NavigableSelect/NavigableSelect.types.d.ts +56 -0
- package/dist/components/NavigableSelect/index.d.ts +2 -0
- package/dist/components/Progress/Progress.cjs +1 -1
- package/dist/components/Progress/Progress.js +3 -2
- package/dist/components/QRCode/QRCode.cjs +1 -0
- package/dist/components/QRCode/QRCode.const.cjs +1 -0
- package/dist/components/QRCode/QRCode.const.d.ts +21 -0
- package/dist/components/QRCode/QRCode.const.js +11 -0
- package/dist/components/QRCode/QRCode.d.ts +29 -0
- package/dist/components/QRCode/QRCode.js +68 -0
- package/dist/components/QRCode/QRCode.types.d.ts +32 -0
- package/dist/components/QRCode/QRCode.utils.cjs +1 -0
- package/dist/components/QRCode/QRCode.utils.d.ts +12 -0
- package/dist/components/QRCode/QRCode.utils.js +74 -0
- package/dist/components/QRCode/index.d.ts +3 -0
- package/dist/components/RichEditor/components/ToolbarButton/ToolbarButton.cjs +1 -1
- package/dist/components/RichEditor/components/ToolbarButton/ToolbarButton.js +3 -2
- package/dist/components/ScrollArea/ScrollArea.cjs +1 -1
- package/dist/components/ScrollArea/ScrollArea.js +3 -2
- package/dist/components/Sidebar/Sidebar.cjs +1 -1
- package/dist/components/Sidebar/Sidebar.js +13 -12
- package/dist/components/Spinner/Spinner.cjs +1 -1
- package/dist/components/Spinner/Spinner.js +3 -2
- package/dist/components/Spinner/Spinner.types.d.ts +2 -2
- package/dist/components/Spotlight/Spotlight.cjs +1 -0
- package/dist/components/Spotlight/Spotlight.const.cjs +1 -0
- package/dist/components/Spotlight/Spotlight.const.d.ts +18 -0
- package/dist/components/Spotlight/Spotlight.const.js +9 -0
- package/dist/components/Spotlight/Spotlight.d.ts +7 -0
- package/dist/components/Spotlight/Spotlight.js +220 -0
- package/dist/components/Spotlight/Spotlight.types.d.ts +51 -0
- package/dist/components/Spotlight/index.d.ts +2 -0
- package/dist/components/StatCard/StatCard.cjs +1 -1
- package/dist/components/StatCard/StatCard.js +9 -8
- package/dist/components/Statistic/Statistic.cjs +1 -1
- package/dist/components/Statistic/Statistic.js +7 -6
- package/dist/components/Switch/Switch.cjs +1 -1
- package/dist/components/Switch/Switch.js +11 -10
- package/dist/components/Terminal/Terminal.cjs +1 -0
- package/dist/components/Terminal/Terminal.const.cjs +1 -0
- package/dist/components/Terminal/Terminal.const.d.ts +32 -0
- package/dist/components/Terminal/Terminal.const.js +42 -0
- package/dist/components/Terminal/Terminal.d.ts +27 -0
- package/dist/components/Terminal/Terminal.js +155 -0
- package/dist/components/Terminal/Terminal.types.d.ts +49 -0
- package/dist/components/Terminal/index.d.ts +2 -0
- package/dist/components/TimePicker/components/TimePickerColumnsDropdown/TimePickerColumnsDropdown.cjs +1 -1
- package/dist/components/TimePicker/components/TimePickerColumnsDropdown/TimePickerColumnsDropdown.js +16 -15
- package/dist/components/TimePicker/helpers/ClockFaceSvg.cjs +1 -1
- package/dist/components/TimePicker/helpers/ClockFaceSvg.js +13 -12
- package/dist/components/Tour/Tour.cjs +1 -0
- package/dist/components/Tour/Tour.const.cjs +1 -0
- package/dist/components/Tour/Tour.const.d.ts +25 -0
- package/dist/components/Tour/Tour.const.js +38 -0
- package/dist/components/Tour/Tour.d.ts +17 -0
- package/dist/components/Tour/Tour.js +179 -0
- package/dist/components/Tour/Tour.types.d.ts +80 -0
- package/dist/components/Tour/index.d.ts +4 -0
- package/dist/components/Tour/useTour.cjs +1 -0
- package/dist/components/Tour/useTour.d.ts +14 -0
- package/dist/components/Tour/useTour.js +27 -0
- package/dist/components/Transition/Transition.cjs +1 -0
- package/dist/components/Transition/Transition.const.cjs +1 -0
- package/dist/components/Transition/Transition.const.d.ts +15 -0
- package/dist/components/Transition/Transition.const.js +73 -0
- package/dist/components/Transition/Transition.d.ts +37 -0
- package/dist/components/Transition/Transition.js +107 -0
- package/dist/components/Transition/Transition.types.d.ts +69 -0
- package/dist/components/Transition/index.d.ts +2 -0
- package/dist/components/Typewriter/Typewriter.cjs +1 -0
- package/dist/components/Typewriter/Typewriter.const.cjs +1 -0
- package/dist/components/Typewriter/Typewriter.const.d.ts +22 -0
- package/dist/components/Typewriter/Typewriter.const.js +11 -0
- package/dist/components/Typewriter/Typewriter.d.ts +7 -0
- package/dist/components/Typewriter/Typewriter.js +88 -0
- package/dist/components/Typewriter/Typewriter.types.d.ts +32 -0
- package/dist/components/Typewriter/index.d.ts +2 -0
- package/dist/components/Typography/Typography.cjs +1 -1
- package/dist/components/Typography/Typography.d.ts +5 -1
- package/dist/components/Typography/Typography.js +93 -57
- package/dist/components/Typography/Typography.types.d.ts +29 -2
- package/dist/components/Watermark/Watermark.cjs +1 -0
- package/dist/components/Watermark/Watermark.const.cjs +1 -0
- package/dist/components/Watermark/Watermark.const.d.ts +30 -0
- package/dist/components/Watermark/Watermark.const.js +18 -0
- package/dist/components/Watermark/Watermark.d.ts +7 -0
- package/dist/components/Watermark/Watermark.js +96 -0
- package/dist/components/Watermark/Watermark.types.d.ts +35 -0
- package/dist/components/Watermark/index.d.ts +2 -0
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.ts +46 -2
- package/dist/components/index.js +288 -237
- package/dist/context/BearProvider.cjs +1 -1
- package/dist/context/BearProvider.d.ts +110 -5
- package/dist/context/BearProvider.js +198 -53
- package/dist/context/defaultTheme.cjs +1 -1
- package/dist/context/defaultTheme.js +11 -11
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.ts +18 -0
- package/dist/hooks/index.js +61 -39
- package/dist/hooks/useAnimate.cjs +1 -0
- package/dist/hooks/useAnimate.d.ts +61 -0
- package/dist/hooks/useAnimate.js +125 -0
- package/dist/hooks/useBearComponent/index.d.ts +2 -0
- package/dist/hooks/useBearComponent/useBearComponent.cjs +1 -0
- package/dist/hooks/useBearComponent/useBearComponent.d.ts +71 -0
- package/dist/hooks/useBearComponent/useBearComponent.js +54 -0
- package/dist/hooks/useBearComponent/useBearComponent.types.d.ts +40 -0
- package/dist/hooks/useIdle/index.d.ts +2 -0
- package/dist/hooks/useIdle/useIdle.cjs +1 -0
- package/dist/hooks/useIdle/useIdle.d.ts +22 -0
- package/dist/hooks/useIdle/useIdle.js +66 -0
- package/dist/hooks/useIdle/useIdle.types.d.ts +29 -0
- package/dist/hooks/useLongPress/index.d.ts +2 -0
- package/dist/hooks/useLongPress/useLongPress.cjs +1 -0
- package/dist/hooks/useLongPress/useLongPress.d.ts +17 -0
- package/dist/hooks/useLongPress/useLongPress.js +44 -0
- package/dist/hooks/useLongPress/useLongPress.types.d.ts +26 -0
- package/dist/hooks/useOnline/index.d.ts +2 -0
- package/dist/hooks/useOnline/useOnline.cjs +1 -0
- package/dist/hooks/useOnline/useOnline.d.ts +16 -0
- package/dist/hooks/useOnline/useOnline.js +25 -0
- package/dist/hooks/useOnline/useOnline.types.d.ts +15 -0
- package/dist/hooks/usePageVisibility/index.d.ts +2 -0
- package/dist/hooks/usePageVisibility/usePageVisibility.cjs +1 -0
- package/dist/hooks/usePageVisibility/usePageVisibility.d.ts +19 -0
- package/dist/hooks/usePageVisibility/usePageVisibility.js +26 -0
- package/dist/hooks/usePageVisibility/usePageVisibility.types.d.ts +15 -0
- package/dist/hooks/useResponsive.cjs +1 -0
- package/dist/hooks/useResponsive.d.ts +35 -0
- package/dist/hooks/useResponsive.js +74 -0
- package/dist/hooks/useSpotlight/index.d.ts +2 -0
- package/dist/hooks/useSpotlight/useSpotlight.cjs +1 -0
- package/dist/hooks/useSpotlight/useSpotlight.d.ts +24 -0
- package/dist/hooks/useSpotlight/useSpotlight.js +49 -0
- package/dist/hooks/useSpotlight/useSpotlight.types.d.ts +23 -0
- package/dist/hooks/useWebSocket/index.d.ts +2 -0
- package/dist/hooks/useWebSocket/useWebSocket.cjs +1 -0
- package/dist/hooks/useWebSocket/useWebSocket.d.ts +22 -0
- package/dist/hooks/useWebSocket/useWebSocket.js +75 -0
- package/dist/hooks/useWebSocket/useWebSocket.types.d.ts +44 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +363 -288
- package/dist/styles.css +1 -1
- package/dist/types/component.types.d.ts +125 -42
- package/dist/types/theme.types.d.ts +82 -0
- package/dist/utils/createSlots.cjs +1 -0
- package/dist/utils/createSlots.d.ts +70 -0
- package/dist/utils/createSlots.js +65 -0
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +4 -2
- package/package.json +1 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Animation preset names
|
|
3
|
+
*/
|
|
4
|
+
export type AnimationPreset = 'fadeIn' | 'fadeOut' | 'slideInLeft' | 'slideInRight' | 'slideInUp' | 'slideInDown' | 'slideOutLeft' | 'slideOutRight' | 'slideOutUp' | 'slideOutDown' | 'scaleIn' | 'scaleOut' | 'rotateIn' | 'rotateOut' | 'flipX' | 'flipY' | 'bounceIn' | 'bounceOut' | 'pulse' | 'shake' | 'swing' | 'rubberBand' | 'tada' | 'wobble' | 'jello';
|
|
5
|
+
/**
|
|
6
|
+
* Keyframe definition
|
|
7
|
+
*/
|
|
8
|
+
export interface AnimationKeyframe {
|
|
9
|
+
[property: string]: string | number;
|
|
10
|
+
}
|
|
11
|
+
export interface UseAnimateOptions {
|
|
12
|
+
/** Duration in ms */
|
|
13
|
+
duration?: number;
|
|
14
|
+
/** Delay in ms */
|
|
15
|
+
delay?: number;
|
|
16
|
+
/** Easing function */
|
|
17
|
+
easing?: string;
|
|
18
|
+
/** Number of iterations (Infinity for infinite) */
|
|
19
|
+
iterations?: number;
|
|
20
|
+
/** Fill mode */
|
|
21
|
+
fill?: FillMode;
|
|
22
|
+
/** Direction */
|
|
23
|
+
direction?: PlaybackDirection;
|
|
24
|
+
/** Auto-play on mount */
|
|
25
|
+
autoPlay?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface UseAnimateReturn {
|
|
28
|
+
/** Ref to attach to the element */
|
|
29
|
+
ref: React.RefObject<HTMLElement | null>;
|
|
30
|
+
/** Play the animation */
|
|
31
|
+
play: (keyframes?: AnimationKeyframe[] | AnimationPreset, options?: UseAnimateOptions) => Animation | undefined;
|
|
32
|
+
/** Pause the animation */
|
|
33
|
+
pause: () => void;
|
|
34
|
+
/** Cancel the animation */
|
|
35
|
+
cancel: () => void;
|
|
36
|
+
/** Reverse the animation */
|
|
37
|
+
reverse: () => void;
|
|
38
|
+
/** Whether animation is playing */
|
|
39
|
+
isPlaying: boolean;
|
|
40
|
+
/** Whether animation is finished */
|
|
41
|
+
isFinished: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* useAnimate - Programmatic animation hook using Web Animations API
|
|
45
|
+
*
|
|
46
|
+
* @description
|
|
47
|
+
* Provides a ref-based animation system with built-in presets
|
|
48
|
+
* and full control over play, pause, cancel, and reverse.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```tsx
|
|
52
|
+
* const { ref, play, isPlaying } = useAnimate({ duration: 500 });
|
|
53
|
+
*
|
|
54
|
+
* return (
|
|
55
|
+
* <div ref={ref} onClick={() => play('bounceIn')}>
|
|
56
|
+
* Animate me!
|
|
57
|
+
* </div>
|
|
58
|
+
* );
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare const useAnimate: (defaultOptions?: UseAnimateOptions) => UseAnimateReturn;
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { useRef as y, useState as g, useCallback as n, useEffect as x } from "react";
|
|
2
|
+
const f = {
|
|
3
|
+
fadeIn: [{ opacity: 0 }, { opacity: 1 }],
|
|
4
|
+
fadeOut: [{ opacity: 1 }, { opacity: 0 }],
|
|
5
|
+
slideInLeft: [{ transform: "translateX(-100%)", opacity: 0 }, { transform: "translateX(0)", opacity: 1 }],
|
|
6
|
+
slideInRight: [{ transform: "translateX(100%)", opacity: 0 }, { transform: "translateX(0)", opacity: 1 }],
|
|
7
|
+
slideInUp: [{ transform: "translateY(100%)", opacity: 0 }, { transform: "translateY(0)", opacity: 1 }],
|
|
8
|
+
slideInDown: [{ transform: "translateY(-100%)", opacity: 0 }, { transform: "translateY(0)", opacity: 1 }],
|
|
9
|
+
slideOutLeft: [{ transform: "translateX(0)", opacity: 1 }, { transform: "translateX(-100%)", opacity: 0 }],
|
|
10
|
+
slideOutRight: [{ transform: "translateX(0)", opacity: 1 }, { transform: "translateX(100%)", opacity: 0 }],
|
|
11
|
+
slideOutUp: [{ transform: "translateY(0)", opacity: 1 }, { transform: "translateY(-100%)", opacity: 0 }],
|
|
12
|
+
slideOutDown: [{ transform: "translateY(0)", opacity: 1 }, { transform: "translateY(100%)", opacity: 0 }],
|
|
13
|
+
scaleIn: [{ transform: "scale(0)", opacity: 0 }, { transform: "scale(1)", opacity: 1 }],
|
|
14
|
+
scaleOut: [{ transform: "scale(1)", opacity: 1 }, { transform: "scale(0)", opacity: 0 }],
|
|
15
|
+
rotateIn: [{ transform: "rotate(-180deg) scale(0)", opacity: 0 }, { transform: "rotate(0) scale(1)", opacity: 1 }],
|
|
16
|
+
rotateOut: [{ transform: "rotate(0) scale(1)", opacity: 1 }, { transform: "rotate(180deg) scale(0)", opacity: 0 }],
|
|
17
|
+
flipX: [{ transform: "perspective(400px) rotateX(90deg)", opacity: 0 }, { transform: "perspective(400px) rotateX(0)", opacity: 1 }],
|
|
18
|
+
flipY: [{ transform: "perspective(400px) rotateY(90deg)", opacity: 0 }, { transform: "perspective(400px) rotateY(0)", opacity: 1 }],
|
|
19
|
+
bounceIn: [
|
|
20
|
+
{ transform: "scale(0.3)", opacity: 0 },
|
|
21
|
+
{ transform: "scale(1.05)" },
|
|
22
|
+
{ transform: "scale(0.9)" },
|
|
23
|
+
{ transform: "scale(1)", opacity: 1 }
|
|
24
|
+
],
|
|
25
|
+
bounceOut: [
|
|
26
|
+
{ transform: "scale(1)", opacity: 1 },
|
|
27
|
+
{ transform: "scale(0.9)" },
|
|
28
|
+
{ transform: "scale(1.05)" },
|
|
29
|
+
{ transform: "scale(0.3)", opacity: 0 }
|
|
30
|
+
],
|
|
31
|
+
pulse: [
|
|
32
|
+
{ transform: "scale(1)" },
|
|
33
|
+
{ transform: "scale(1.05)" },
|
|
34
|
+
{ transform: "scale(1)" }
|
|
35
|
+
],
|
|
36
|
+
shake: [
|
|
37
|
+
{ transform: "translateX(0)" },
|
|
38
|
+
{ transform: "translateX(-10px)" },
|
|
39
|
+
{ transform: "translateX(10px)" },
|
|
40
|
+
{ transform: "translateX(-10px)" },
|
|
41
|
+
{ transform: "translateX(10px)" },
|
|
42
|
+
{ transform: "translateX(0)" }
|
|
43
|
+
],
|
|
44
|
+
swing: [
|
|
45
|
+
{ transform: "rotate(0deg)" },
|
|
46
|
+
{ transform: "rotate(15deg)" },
|
|
47
|
+
{ transform: "rotate(-10deg)" },
|
|
48
|
+
{ transform: "rotate(5deg)" },
|
|
49
|
+
{ transform: "rotate(-5deg)" },
|
|
50
|
+
{ transform: "rotate(0deg)" }
|
|
51
|
+
],
|
|
52
|
+
rubberBand: [
|
|
53
|
+
{ transform: "scale(1)" },
|
|
54
|
+
{ transform: "scaleX(1.25) scaleY(0.75)" },
|
|
55
|
+
{ transform: "scaleX(0.75) scaleY(1.25)" },
|
|
56
|
+
{ transform: "scaleX(1.15) scaleY(0.85)" },
|
|
57
|
+
{ transform: "scaleX(0.95) scaleY(1.05)" },
|
|
58
|
+
{ transform: "scale(1)" }
|
|
59
|
+
],
|
|
60
|
+
tada: [
|
|
61
|
+
{ transform: "scale(1) rotate(0deg)" },
|
|
62
|
+
{ transform: "scale(0.9) rotate(-3deg)" },
|
|
63
|
+
{ transform: "scale(1.1) rotate(3deg)" },
|
|
64
|
+
{ transform: "scale(1.1) rotate(-3deg)" },
|
|
65
|
+
{ transform: "scale(1.1) rotate(3deg)" },
|
|
66
|
+
{ transform: "scale(1) rotate(0deg)" }
|
|
67
|
+
],
|
|
68
|
+
wobble: [
|
|
69
|
+
{ transform: "translateX(0) rotate(0deg)" },
|
|
70
|
+
{ transform: "translateX(-25%) rotate(-5deg)" },
|
|
71
|
+
{ transform: "translateX(20%) rotate(3deg)" },
|
|
72
|
+
{ transform: "translateX(-15%) rotate(-3deg)" },
|
|
73
|
+
{ transform: "translateX(10%) rotate(2deg)" },
|
|
74
|
+
{ transform: "translateX(0) rotate(0deg)" }
|
|
75
|
+
],
|
|
76
|
+
jello: [
|
|
77
|
+
{ transform: "skewX(0deg) skewY(0deg)" },
|
|
78
|
+
{ transform: "skewX(-12.5deg) skewY(-12.5deg)" },
|
|
79
|
+
{ transform: "skewX(6.25deg) skewY(6.25deg)" },
|
|
80
|
+
{ transform: "skewX(-3.125deg) skewY(-3.125deg)" },
|
|
81
|
+
{ transform: "skewX(1.5625deg) skewY(1.5625deg)" },
|
|
82
|
+
{ transform: "skewX(0deg) skewY(0deg)" }
|
|
83
|
+
]
|
|
84
|
+
}, v = (c = {}) => {
|
|
85
|
+
const i = y(null), r = y(null), [u, e] = g(!1), [X, l] = g(!1), m = n(
|
|
86
|
+
(t, I) => {
|
|
87
|
+
var d;
|
|
88
|
+
const p = i.current;
|
|
89
|
+
if (!p) return;
|
|
90
|
+
(d = r.current) == null || d.cancel();
|
|
91
|
+
const a = { ...c, ...I };
|
|
92
|
+
let s;
|
|
93
|
+
typeof t == "string" ? s = f[t] ?? f.fadeIn : Array.isArray(t) ? s = t : s = f.fadeIn;
|
|
94
|
+
const o = p.animate(s, {
|
|
95
|
+
duration: a.duration ?? 300,
|
|
96
|
+
delay: a.delay ?? 0,
|
|
97
|
+
easing: a.easing ?? "ease",
|
|
98
|
+
iterations: a.iterations ?? 1,
|
|
99
|
+
fill: a.fill ?? "forwards",
|
|
100
|
+
direction: a.direction ?? "normal"
|
|
101
|
+
});
|
|
102
|
+
return r.current = o, e(!0), l(!1), o.onfinish = () => {
|
|
103
|
+
e(!1), l(!0);
|
|
104
|
+
}, o.oncancel = () => {
|
|
105
|
+
e(!1);
|
|
106
|
+
}, o;
|
|
107
|
+
},
|
|
108
|
+
[c]
|
|
109
|
+
), Y = n(() => {
|
|
110
|
+
var t;
|
|
111
|
+
(t = r.current) == null || t.pause(), e(!1);
|
|
112
|
+
}, []), w = n(() => {
|
|
113
|
+
var t;
|
|
114
|
+
(t = r.current) == null || t.cancel(), e(!1), l(!1);
|
|
115
|
+
}, []), k = n(() => {
|
|
116
|
+
var t;
|
|
117
|
+
(t = r.current) == null || t.reverse();
|
|
118
|
+
}, []);
|
|
119
|
+
return x(() => {
|
|
120
|
+
c.autoPlay && m();
|
|
121
|
+
}, []), { ref: i, play: m, pause: Y, cancel: w, reverse: k, isPlaying: u, isFinished: X };
|
|
122
|
+
};
|
|
123
|
+
export {
|
|
124
|
+
v as useAnimate
|
|
125
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const B=require("react/jsx-runtime"),e=require("react"),p=e.createContext(null),k=({children:b,components:C={},variants:u={}})=>{const[t,a]=e.useState(C),[c,i]=e.useState(u),o=e.useCallback((n,g)=>{a(l=>({...l,[n]:{...l[n]||{},...g}}))},[]),s=e.useCallback((n,g)=>{i(l=>({...l,[n]:{...l[n]||{},...g}}))},[]),r=e.useCallback(n=>t[n],[t]),m=e.useCallback(n=>c[n],[c]),S=e.useCallback(()=>{a({}),i({})},[]),v=e.useMemo(()=>({components:t,variants:c,registerComponent:o,registerVariant:s,getComponentStyles:r,getVariantConfig:m,clearOverrides:S}),[t,c,o,s,r,m,S]);return B.jsx(p.Provider,{value:v,children:b})},y=()=>e.useContext(p),d=(b,C)=>{const u=e.useContext(p),t=u==null?void 0:u.components[b],a=e.useCallback((o="root")=>{const s=t,r=C,m=s==null?void 0:s[o];return{...(r==null?void 0:r[o])||{},...m||{}}},[t,C]),c=e.useCallback((o="root",s)=>({...a(o),...s||{}}),[a]),i=e.useMemo(()=>t!==void 0&&Object.keys(t).length>0,[t]);return{getStyles:a,mergeStyles:c,hasOverrides:i}},x=d;exports.BearComponentProvider=k;exports.useBC=x;exports.useBearComponent=d;exports.useBearComponentContext=y;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { BearComponentOverrides, ButtonVariantsConfig } from '../../types/component.types';
|
|
3
|
+
import { UseBearComponentReturn, BearComponentContextValue } from './useBearComponent.types';
|
|
4
|
+
interface BearComponentProviderProps {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
/** Initial component overrides */
|
|
7
|
+
components?: BearComponentOverrides;
|
|
8
|
+
/** Initial variant configurations */
|
|
9
|
+
variants?: {
|
|
10
|
+
Button?: ButtonVariantsConfig;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Provider for global component customization
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* <BearComponentProvider
|
|
19
|
+
* components={{
|
|
20
|
+
* Button: {
|
|
21
|
+
* root: { borderRadius: '9999px' }
|
|
22
|
+
* }
|
|
23
|
+
* }}
|
|
24
|
+
* variants={{
|
|
25
|
+
* Button: {
|
|
26
|
+
* primary: {
|
|
27
|
+
* bg: '#ec4899',
|
|
28
|
+
* bgHover: '#db2777',
|
|
29
|
+
* text: '#ffffff'
|
|
30
|
+
* }
|
|
31
|
+
* }
|
|
32
|
+
* }}
|
|
33
|
+
* >
|
|
34
|
+
* <App />
|
|
35
|
+
* </BearComponentProvider>
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare const BearComponentProvider: ({ children, components: initialComponents, variants: initialVariants, }: BearComponentProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
/**
|
|
40
|
+
* Access the component customization context
|
|
41
|
+
*/
|
|
42
|
+
export declare const useBearComponentContext: () => BearComponentContextValue | null;
|
|
43
|
+
/**
|
|
44
|
+
* Hook to get and apply component style overrides
|
|
45
|
+
*
|
|
46
|
+
* @param componentKey - The component key (e.g., 'Button', 'Input')
|
|
47
|
+
* @param defaultStyles - Optional default styles to merge with
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```tsx
|
|
51
|
+
* // Inside a component
|
|
52
|
+
* const { getStyles, mergeStyles, hasOverrides } = useBearComponent('Button');
|
|
53
|
+
*
|
|
54
|
+
* return (
|
|
55
|
+
* <button style={mergeStyles('root', { padding: '8px' })}>
|
|
56
|
+
* <span style={getStyles('text')}>Click me</span>
|
|
57
|
+
* </button>
|
|
58
|
+
* );
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare const useBearComponent: <K extends keyof BearComponentOverrides>(componentKey: K, defaultStyles?: BearComponentOverrides[K]) => UseBearComponentReturn;
|
|
62
|
+
/**
|
|
63
|
+
* Shorthand alias for useBearComponent
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```tsx
|
|
67
|
+
* const { getStyles } = useBC('Button');
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare const useBC: <K extends keyof BearComponentOverrides>(componentKey: K, defaultStyles?: BearComponentOverrides[K]) => UseBearComponentReturn;
|
|
71
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsx as b } from "react/jsx-runtime";
|
|
2
|
+
import { createContext as O, useState as d, useCallback as r, useMemo as y, useContext as x } from "react";
|
|
3
|
+
const v = O(null), h = ({
|
|
4
|
+
children: p,
|
|
5
|
+
components: m = {},
|
|
6
|
+
variants: u = {}
|
|
7
|
+
}) => {
|
|
8
|
+
const [t, c] = d(m), [a, l] = d(u), o = r((e, S) => {
|
|
9
|
+
c((i) => ({
|
|
10
|
+
...i,
|
|
11
|
+
[e]: {
|
|
12
|
+
...i[e] || {},
|
|
13
|
+
...S
|
|
14
|
+
}
|
|
15
|
+
}));
|
|
16
|
+
}, []), n = r((e, S) => {
|
|
17
|
+
l((i) => ({
|
|
18
|
+
...i,
|
|
19
|
+
[e]: {
|
|
20
|
+
...i[e] || {},
|
|
21
|
+
...S
|
|
22
|
+
}
|
|
23
|
+
}));
|
|
24
|
+
}, []), s = r((e) => t[e], [t]), C = r((e) => a[e], [a]), g = r(() => {
|
|
25
|
+
c({}), l({});
|
|
26
|
+
}, []), B = y(() => ({
|
|
27
|
+
components: t,
|
|
28
|
+
variants: a,
|
|
29
|
+
registerComponent: o,
|
|
30
|
+
registerVariant: n,
|
|
31
|
+
getComponentStyles: s,
|
|
32
|
+
getVariantConfig: C,
|
|
33
|
+
clearOverrides: g
|
|
34
|
+
}), [t, a, o, n, s, C, g]);
|
|
35
|
+
return /* @__PURE__ */ b(v.Provider, { value: B, children: p });
|
|
36
|
+
}, j = () => x(v), P = (p, m) => {
|
|
37
|
+
const u = x(v), t = u == null ? void 0 : u.components[p], c = r((o = "root") => {
|
|
38
|
+
const n = t, s = m, C = n == null ? void 0 : n[o];
|
|
39
|
+
return {
|
|
40
|
+
...(s == null ? void 0 : s[o]) || {},
|
|
41
|
+
...C || {}
|
|
42
|
+
};
|
|
43
|
+
}, [t, m]), a = r((o = "root", n) => ({
|
|
44
|
+
...c(o),
|
|
45
|
+
...n || {}
|
|
46
|
+
}), [c]), l = y(() => t !== void 0 && Object.keys(t).length > 0, [t]);
|
|
47
|
+
return { getStyles: c, mergeStyles: a, hasOverrides: l };
|
|
48
|
+
}, k = P;
|
|
49
|
+
export {
|
|
50
|
+
h as BearComponentProvider,
|
|
51
|
+
k as useBC,
|
|
52
|
+
P as useBearComponent,
|
|
53
|
+
j as useBearComponentContext
|
|
54
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
import { BearComponentOverrides, ButtonVariantsConfig } from '../../types/component.types';
|
|
3
|
+
/**
|
|
4
|
+
* Component part style definition
|
|
5
|
+
*/
|
|
6
|
+
export interface ComponentPartStyles {
|
|
7
|
+
[part: string]: CSSProperties;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Return type for useBearComponent hook
|
|
11
|
+
*/
|
|
12
|
+
export interface UseBearComponentReturn {
|
|
13
|
+
/** Get styles for a specific component part */
|
|
14
|
+
getStyles: (part?: string) => CSSProperties;
|
|
15
|
+
/** Merge with additional styles */
|
|
16
|
+
mergeStyles: (part: string | undefined, additionalStyles?: CSSProperties) => CSSProperties;
|
|
17
|
+
/** Check if component has overrides */
|
|
18
|
+
hasOverrides: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Context value for component customization
|
|
22
|
+
*/
|
|
23
|
+
export interface BearComponentContextValue {
|
|
24
|
+
/** Component style overrides */
|
|
25
|
+
components: BearComponentOverrides;
|
|
26
|
+
/** Variant configurations */
|
|
27
|
+
variants: {
|
|
28
|
+
Button?: ButtonVariantsConfig;
|
|
29
|
+
};
|
|
30
|
+
/** Register component overrides */
|
|
31
|
+
registerComponent: <K extends keyof BearComponentOverrides>(componentKey: K, styles: BearComponentOverrides[K]) => void;
|
|
32
|
+
/** Register variant overrides */
|
|
33
|
+
registerVariant: <K extends 'Button'>(componentKey: K, variantConfig: ButtonVariantsConfig) => void;
|
|
34
|
+
/** Get component styles */
|
|
35
|
+
getComponentStyles: <K extends keyof BearComponentOverrides>(componentKey: K) => BearComponentOverrides[K] | undefined;
|
|
36
|
+
/** Get variant config */
|
|
37
|
+
getVariantConfig: <K extends 'Button'>(componentKey: K) => ButtonVariantsConfig | undefined;
|
|
38
|
+
/** Clear all overrides */
|
|
39
|
+
clearOverrides: () => void;
|
|
40
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),y=["mousemove","mousedown","keydown","touchstart","scroll","wheel"],A=6e4;function L(S={}){const{timeout:a=A,events:f=y,initialState:k=!1,onIdle:d,onActive:m}=S,[w,v]=e.useState(k),[D,I]=e.useState(Date.now()),[h,T]=e.useState(a),[c,b]=e.useState(!1),o=e.useRef(null),r=e.useRef(null),l=e.useRef(d),i=e.useRef(m);e.useEffect(()=>{l.current=d,i.current=m},[d,m]);const u=e.useCallback(()=>{o.current&&(clearTimeout(o.current),o.current=null),r.current&&(clearInterval(r.current),r.current=null)},[]),t=e.useCallback(()=>{if(c)return;u();const s=Date.now();T(a),r.current=setInterval(()=>{const n=Date.now()-s;T(Math.max(0,a-n))},1e3),o.current=setTimeout(()=>{var n;v(!0),(n=l.current)==null||n.call(l),r.current&&clearInterval(r.current)},a)},[a,c,u]),E=e.useCallback(()=>{var n;if(c)return;const s=w;v(!1),I(Date.now()),t(),s&&((n=i.current)==null||n.call(i))},[c,w,t]),C=e.useCallback(()=>{v(!1),I(Date.now()),t()},[t]),R=e.useCallback(()=>{b(!0),u()},[u]),p=e.useCallback(()=>{b(!1),t()},[t]);return e.useEffect(()=>{if(!(typeof window>"u"))return t(),f.forEach(s=>{window.addEventListener(s,E,{passive:!0})}),()=>{u(),f.forEach(s=>{window.removeEventListener(s,E)})}},[f,E,t,u]),{isIdle:w,remaining:h,lastActive:D,reset:C,pause:R,resume:p}}exports.useIdle=L;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { UseIdleOptions, UseIdleReturn } from './useIdle.types';
|
|
2
|
+
/**
|
|
3
|
+
* useIdle - Detect user inactivity
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* const { isIdle, remaining, reset } = useIdle({
|
|
8
|
+
* timeout: 30000, // 30 seconds
|
|
9
|
+
* onIdle: () => console.log('User is idle'),
|
|
10
|
+
* onActive: () => console.log('User is active'),
|
|
11
|
+
* });
|
|
12
|
+
*
|
|
13
|
+
* return (
|
|
14
|
+
* <div>
|
|
15
|
+
* {isIdle ? 'User is idle' : `Active (${remaining}ms until idle)`}
|
|
16
|
+
* <button onClick={reset}>Reset</button>
|
|
17
|
+
* </div>
|
|
18
|
+
* );
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function useIdle(options?: UseIdleOptions): UseIdleReturn;
|
|
22
|
+
export default useIdle;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { useState as f, useRef as d, useEffect as A, useCallback as c } from "react";
|
|
2
|
+
const F = [
|
|
3
|
+
"mousemove",
|
|
4
|
+
"mousedown",
|
|
5
|
+
"keydown",
|
|
6
|
+
"touchstart",
|
|
7
|
+
"scroll",
|
|
8
|
+
"wheel"
|
|
9
|
+
], M = 6e4;
|
|
10
|
+
function R(L = {}) {
|
|
11
|
+
const {
|
|
12
|
+
timeout: o = M,
|
|
13
|
+
events: m = F,
|
|
14
|
+
initialState: y = !1,
|
|
15
|
+
onIdle: w,
|
|
16
|
+
onActive: v
|
|
17
|
+
} = L, [E, I] = f(y), [S, D] = f(Date.now()), [U, h] = f(o), [u, p] = f(!1), a = d(null), r = d(null), i = d(w), l = d(v);
|
|
18
|
+
A(() => {
|
|
19
|
+
i.current = w, l.current = v;
|
|
20
|
+
}, [w, v]);
|
|
21
|
+
const s = c(() => {
|
|
22
|
+
a.current && (clearTimeout(a.current), a.current = null), r.current && (clearInterval(r.current), r.current = null);
|
|
23
|
+
}, []), e = c(() => {
|
|
24
|
+
if (u) return;
|
|
25
|
+
s();
|
|
26
|
+
const t = Date.now();
|
|
27
|
+
h(o), r.current = setInterval(() => {
|
|
28
|
+
const n = Date.now() - t;
|
|
29
|
+
h(Math.max(0, o - n));
|
|
30
|
+
}, 1e3), a.current = setTimeout(() => {
|
|
31
|
+
var n;
|
|
32
|
+
I(!0), (n = i.current) == null || n.call(i), r.current && clearInterval(r.current);
|
|
33
|
+
}, o);
|
|
34
|
+
}, [o, u, s]), T = c(() => {
|
|
35
|
+
var n;
|
|
36
|
+
if (u) return;
|
|
37
|
+
const t = E;
|
|
38
|
+
I(!1), D(Date.now()), e(), t && ((n = l.current) == null || n.call(l));
|
|
39
|
+
}, [u, E, e]), g = c(() => {
|
|
40
|
+
I(!1), D(Date.now()), e();
|
|
41
|
+
}, [e]), k = c(() => {
|
|
42
|
+
p(!0), s();
|
|
43
|
+
}, [s]), x = c(() => {
|
|
44
|
+
p(!1), e();
|
|
45
|
+
}, [e]);
|
|
46
|
+
return A(() => {
|
|
47
|
+
if (!(typeof window > "u"))
|
|
48
|
+
return e(), m.forEach((t) => {
|
|
49
|
+
window.addEventListener(t, T, { passive: !0 });
|
|
50
|
+
}), () => {
|
|
51
|
+
s(), m.forEach((t) => {
|
|
52
|
+
window.removeEventListener(t, T);
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
}, [m, T, e, s]), {
|
|
56
|
+
isIdle: E,
|
|
57
|
+
remaining: U,
|
|
58
|
+
lastActive: S,
|
|
59
|
+
reset: g,
|
|
60
|
+
pause: k,
|
|
61
|
+
resume: x
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export {
|
|
65
|
+
R as useIdle
|
|
66
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useIdle hook types
|
|
3
|
+
*/
|
|
4
|
+
export interface UseIdleOptions {
|
|
5
|
+
/** Timeout in milliseconds before user is considered idle (default: 60000 = 1 min) */
|
|
6
|
+
timeout?: number;
|
|
7
|
+
/** Events to listen for as activity (default: mouse, keyboard, touch, scroll) */
|
|
8
|
+
events?: (keyof WindowEventMap)[];
|
|
9
|
+
/** Initial idle state */
|
|
10
|
+
initialState?: boolean;
|
|
11
|
+
/** Callback when user becomes idle */
|
|
12
|
+
onIdle?: () => void;
|
|
13
|
+
/** Callback when user becomes active */
|
|
14
|
+
onActive?: () => void;
|
|
15
|
+
}
|
|
16
|
+
export interface UseIdleReturn {
|
|
17
|
+
/** Whether the user is currently idle */
|
|
18
|
+
isIdle: boolean;
|
|
19
|
+
/** Time remaining until idle (ms) */
|
|
20
|
+
remaining: number;
|
|
21
|
+
/** Last activity timestamp */
|
|
22
|
+
lastActive: number;
|
|
23
|
+
/** Reset the idle timer */
|
|
24
|
+
reset: () => void;
|
|
25
|
+
/** Pause idle detection */
|
|
26
|
+
pause: () => void;
|
|
27
|
+
/** Resume idle detection */
|
|
28
|
+
resume: () => void;
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),p=400;function D(d={}){const{threshold:R=p,onLongPress:s,onClick:i,onStart:u,onFinish:c,onCancel:n,filterEvents:b,disabled:C=!1}=d,l=t.useRef(null),k=t.useRef(!1),r=t.useRef(!1),E=t.useRef(null),o=t.useCallback(()=>{l.current&&(clearTimeout(l.current),l.current=null)},[]),a=t.useCallback(e=>{C||b&&!b(e)||(r.current=!0,k.current=!1,E.current=e,u==null||u(e),l.current=setTimeout(()=>{k.current=!0,s==null||s(e)},R))},[C,b,u,s,R]),T=t.useCallback(e=>{r.current&&(o(),r.current=!1,n==null||n(e))},[o,n]),f=t.useCallback(e=>{r.current&&(o(),r.current=!1,!k.current&&i&&i(e),c==null||c(e))},[o,i,c]),L=t.useCallback(e=>{e.button===0&&a(e)},[a]),g=t.useCallback(e=>{f(e)},[f]),m=t.useCallback(e=>{T(e)},[T]),M=t.useCallback(e=>{a(e)},[a]),h=t.useCallback(e=>{f(e)},[f]);return{onMouseDown:L,onMouseUp:g,onMouseLeave:m,onTouchStart:M,onTouchEnd:h}}exports.useLongPress=D;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { UseLongPressOptions, UseLongPressReturn } from './useLongPress.types';
|
|
2
|
+
/**
|
|
3
|
+
* useLongPress - Detect long press gestures
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* const longPressProps = useLongPress({
|
|
8
|
+
* threshold: 500,
|
|
9
|
+
* onLongPress: () => console.log('Long pressed!'),
|
|
10
|
+
* onClick: () => console.log('Clicked!'),
|
|
11
|
+
* });
|
|
12
|
+
*
|
|
13
|
+
* return <button {...longPressProps}>Hold me</button>;
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare function useLongPress(options?: UseLongPressOptions): UseLongPressReturn;
|
|
17
|
+
export default useLongPress;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { useRef as a, useCallback as t } from "react";
|
|
2
|
+
const H = 400;
|
|
3
|
+
function g(L = {}) {
|
|
4
|
+
const {
|
|
5
|
+
threshold: E = H,
|
|
6
|
+
onLongPress: n,
|
|
7
|
+
onClick: R,
|
|
8
|
+
onStart: c,
|
|
9
|
+
onFinish: s,
|
|
10
|
+
onCancel: u,
|
|
11
|
+
filterEvents: T,
|
|
12
|
+
disabled: d = !1
|
|
13
|
+
} = L, o = a(null), m = a(!1), e = a(!1), b = a(null), f = t(() => {
|
|
14
|
+
o.current && (clearTimeout(o.current), o.current = null);
|
|
15
|
+
}, []), l = t((r) => {
|
|
16
|
+
d || T && !T(r) || (e.current = !0, m.current = !1, b.current = r, c == null || c(r), o.current = setTimeout(() => {
|
|
17
|
+
m.current = !0, n == null || n(r);
|
|
18
|
+
}, E));
|
|
19
|
+
}, [d, T, c, n, E]), p = t((r) => {
|
|
20
|
+
e.current && (f(), e.current = !1, u == null || u(r));
|
|
21
|
+
}, [f, u]), i = t((r) => {
|
|
22
|
+
e.current && (f(), e.current = !1, !m.current && R && R(r), s == null || s(r));
|
|
23
|
+
}, [f, R, s]), h = t((r) => {
|
|
24
|
+
r.button === 0 && l(r);
|
|
25
|
+
}, [l]), D = t((r) => {
|
|
26
|
+
i(r);
|
|
27
|
+
}, [i]), M = t((r) => {
|
|
28
|
+
p(r);
|
|
29
|
+
}, [p]), k = t((r) => {
|
|
30
|
+
l(r);
|
|
31
|
+
}, [l]), A = t((r) => {
|
|
32
|
+
i(r);
|
|
33
|
+
}, [i]);
|
|
34
|
+
return {
|
|
35
|
+
onMouseDown: h,
|
|
36
|
+
onMouseUp: D,
|
|
37
|
+
onMouseLeave: M,
|
|
38
|
+
onTouchStart: k,
|
|
39
|
+
onTouchEnd: A
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
g as useLongPress
|
|
44
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { MouseEvent, TouchEvent } from 'react';
|
|
2
|
+
export interface UseLongPressOptions {
|
|
3
|
+
/** Duration in ms to trigger long press (default: 400) */
|
|
4
|
+
threshold?: number;
|
|
5
|
+
/** Callback for long press */
|
|
6
|
+
onLongPress?: (event: MouseEvent | TouchEvent) => void;
|
|
7
|
+
/** Callback for regular click (if released before threshold) */
|
|
8
|
+
onClick?: (event: MouseEvent | TouchEvent) => void;
|
|
9
|
+
/** Callback when press starts */
|
|
10
|
+
onStart?: (event: MouseEvent | TouchEvent) => void;
|
|
11
|
+
/** Callback when press ends (regardless of long press) */
|
|
12
|
+
onFinish?: (event: MouseEvent | TouchEvent) => void;
|
|
13
|
+
/** Callback when press is cancelled (e.g., mouse leaves) */
|
|
14
|
+
onCancel?: (event: MouseEvent | TouchEvent) => void;
|
|
15
|
+
/** Filter function to determine if event should trigger */
|
|
16
|
+
filterEvents?: (event: MouseEvent | TouchEvent) => boolean;
|
|
17
|
+
/** Disable the long press */
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface UseLongPressReturn {
|
|
21
|
+
onMouseDown: (event: MouseEvent) => void;
|
|
22
|
+
onMouseUp: (event: MouseEvent) => void;
|
|
23
|
+
onMouseLeave: (event: MouseEvent) => void;
|
|
24
|
+
onTouchStart: (event: TouchEvent) => void;
|
|
25
|
+
onTouchEnd: (event: TouchEvent) => void;
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");function w(a={}){const{onOnline:o,onOffline:r}=a,[f,c]=e.useState(()=>typeof navigator<"u"?navigator.onLine:!0),[d,l]=e.useState(null),t=e.useRef(o),i=e.useRef(r);e.useEffect(()=>{t.current=o,i.current=r},[o,r]);const s=e.useCallback(()=>{var n;c(!0),l(Date.now()),(n=t.current)==null||n.call(t)},[]),u=e.useCallback(()=>{var n;c(!1),l(Date.now()),(n=i.current)==null||n.call(i)},[]);return e.useEffect(()=>{if(!(typeof window>"u"))return window.addEventListener("online",s),window.addEventListener("offline",u),()=>{window.removeEventListener("online",s),window.removeEventListener("offline",u)}},[s,u]),{isOnline:f,since:d}}exports.useOnline=w;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { UseOnlineOptions, UseOnlineReturn } from './useOnline.types';
|
|
2
|
+
/**
|
|
3
|
+
* useOnline - Detect online/offline network status
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* const { isOnline, since } = useOnline({
|
|
8
|
+
* onOnline: () => console.log('Back online!'),
|
|
9
|
+
* onOffline: () => console.log('Gone offline!'),
|
|
10
|
+
* });
|
|
11
|
+
*
|
|
12
|
+
* return <div>{isOnline ? '🟢 Online' : '🔴 Offline'}</div>;
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export declare function useOnline(options?: UseOnlineOptions): UseOnlineReturn;
|
|
16
|
+
export default useOnline;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useState as l, useRef as d, useEffect as f, useCallback as a } from "react";
|
|
2
|
+
function O(w = {}) {
|
|
3
|
+
const { onOnline: i, onOffline: o } = w, [v, u] = l(
|
|
4
|
+
() => typeof navigator < "u" ? navigator.onLine : !0
|
|
5
|
+
), [E, c] = l(null), e = d(i), t = d(o);
|
|
6
|
+
f(() => {
|
|
7
|
+
e.current = i, t.current = o;
|
|
8
|
+
}, [i, o]);
|
|
9
|
+
const r = a(() => {
|
|
10
|
+
var n;
|
|
11
|
+
u(!0), c(Date.now()), (n = e.current) == null || n.call(e);
|
|
12
|
+
}, []), s = a(() => {
|
|
13
|
+
var n;
|
|
14
|
+
u(!1), c(Date.now()), (n = t.current) == null || n.call(t);
|
|
15
|
+
}, []);
|
|
16
|
+
return f(() => {
|
|
17
|
+
if (!(typeof window > "u"))
|
|
18
|
+
return window.addEventListener("online", r), window.addEventListener("offline", s), () => {
|
|
19
|
+
window.removeEventListener("online", r), window.removeEventListener("offline", s);
|
|
20
|
+
};
|
|
21
|
+
}, [r, s]), { isOnline: v, since: E };
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
O as useOnline
|
|
25
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useOnline hook types
|
|
3
|
+
*/
|
|
4
|
+
export interface UseOnlineOptions {
|
|
5
|
+
/** Callback when going online */
|
|
6
|
+
onOnline?: () => void;
|
|
7
|
+
/** Callback when going offline */
|
|
8
|
+
onOffline?: () => void;
|
|
9
|
+
}
|
|
10
|
+
export interface UseOnlineReturn {
|
|
11
|
+
/** Whether the browser is currently online */
|
|
12
|
+
isOnline: boolean;
|
|
13
|
+
/** Time since last status change (ms) */
|
|
14
|
+
since: number | null;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");function b(a={}){const{onVisible:n,onHidden:s}=a,[r,d]=e.useState(()=>typeof document<"u"?document.visibilityState:"visible"),i=e.useRef(n),t=e.useRef(s);e.useEffect(()=>{i.current=n,t.current=s},[n,s]);const u=e.useCallback(()=>{var o,l;const c=document.visibilityState;d(c),c==="visible"?(o=i.current)==null||o.call(i):c==="hidden"&&((l=t.current)==null||l.call(t))},[]);return e.useEffect(()=>{if(!(typeof document>"u"))return document.addEventListener("visibilitychange",u),()=>{document.removeEventListener("visibilitychange",u)}},[u]),{isVisible:r==="visible",visibilityState:r}}exports.usePageVisibility=b;
|