@basic-ui/core 0.0.38 → 0.0.41
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/build/cjs/index.js +1 -1
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Accordion/Accordion.d.ts +7 -7
- package/build/esm/Accordion/Accordion.js +22 -17
- package/build/esm/Accordion/Accordion.js.map +1 -1
- package/build/esm/Accordion/AccordionBody.d.ts +5 -5
- package/build/esm/Accordion/AccordionBody.js +23 -15
- package/build/esm/Accordion/AccordionBody.js.map +1 -1
- package/build/esm/Accordion/AccordionHeader.d.ts +6 -6
- package/build/esm/Accordion/AccordionHeader.js +45 -31
- package/build/esm/Accordion/AccordionHeader.js.map +1 -1
- package/build/esm/Accordion/AccordionItem.d.ts +7 -7
- package/build/esm/Accordion/AccordionItem.js +16 -16
- package/build/esm/Accordion/AccordionItem.js.map +1 -1
- package/build/esm/Accordion/context.d.ts +4 -4
- package/build/esm/Accordion/context.js +12 -10
- package/build/esm/Accordion/context.js.map +1 -1
- package/build/esm/CheckBox/CheckBox.d.ts +6 -6
- package/build/esm/CheckBox/CheckBox.js +19 -12
- package/build/esm/CheckBox/CheckBox.js.map +1 -1
- package/build/esm/ComboBox/Combobox.d.ts +10 -10
- package/build/esm/ComboBox/Combobox.js +52 -46
- package/build/esm/ComboBox/Combobox.js.map +1 -1
- package/build/esm/ComboBox/ComboboxButton.d.ts +8 -8
- package/build/esm/ComboBox/ComboboxButton.js +19 -20
- package/build/esm/ComboBox/ComboboxButton.js.map +1 -1
- package/build/esm/ComboBox/ComboboxInput.d.ts +10 -10
- package/build/esm/ComboBox/ComboboxInput.js +52 -50
- package/build/esm/ComboBox/ComboboxInput.js.map +1 -1
- package/build/esm/ComboBox/ComboboxLabel.d.ts +5 -5
- package/build/esm/ComboBox/ComboboxLabel.js +11 -12
- package/build/esm/ComboBox/ComboboxLabel.js.map +1 -1
- package/build/esm/ComboBox/ComboboxList.d.ts +6 -6
- package/build/esm/ComboBox/ComboboxList.js +15 -17
- package/build/esm/ComboBox/ComboboxList.js.map +1 -1
- package/build/esm/ComboBox/ComboboxOption.d.ts +7 -7
- package/build/esm/ComboBox/ComboboxOption.js +31 -34
- package/build/esm/ComboBox/ComboboxOption.js.map +1 -1
- package/build/esm/ComboBox/ComboboxPopover.d.ts +8 -8
- package/build/esm/ComboBox/ComboboxPopover.js +15 -17
- package/build/esm/ComboBox/ComboboxPopover.js.map +1 -1
- package/build/esm/ComboBox/context.d.ts +13 -13
- package/build/esm/ComboBox/context.js +6 -5
- package/build/esm/ComboBox/context.js.map +1 -1
- package/build/esm/ComboBox/hooks.d.ts +4 -4
- package/build/esm/ComboBox/hooks.js +82 -115
- package/build/esm/ComboBox/hooks.js.map +1 -1
- package/build/esm/ComboBox/makeHash.js +3 -3
- package/build/esm/ComboBox/makeHash.js.map +1 -1
- package/build/esm/FocusLock/FocusLock.d.ts +7 -7
- package/build/esm/FocusLock/FocusLock.js +17 -16
- package/build/esm/FocusLock/FocusLock.js.map +1 -1
- package/build/esm/FocusLock/tabUtils.js +4 -4
- package/build/esm/FocusLock/tabUtils.js.map +1 -1
- package/build/esm/FocusLock/useFocusLock.d.ts +4 -4
- package/build/esm/FocusLock/useFocusLock.js +10 -11
- package/build/esm/FocusLock/useFocusLock.js.map +1 -1
- package/build/esm/List/List.d.ts +6 -6
- package/build/esm/List/List.js +5 -6
- package/build/esm/List/List.js.map +1 -1
- package/build/esm/List/ListItem.d.ts +6 -6
- package/build/esm/List/ListItem.js +5 -6
- package/build/esm/List/ListItem.js.map +1 -1
- package/build/esm/List/context.js +3 -3
- package/build/esm/List/context.js.map +1 -1
- package/build/esm/Menu/Menu.d.ts +6 -6
- package/build/esm/Menu/Menu.js +29 -21
- package/build/esm/Menu/Menu.js.map +1 -1
- package/build/esm/Menu/MenuButton.d.ts +10 -10
- package/build/esm/Menu/MenuButton.js +27 -24
- package/build/esm/Menu/MenuButton.js.map +1 -1
- package/build/esm/Menu/MenuItem.d.ts +6 -6
- package/build/esm/Menu/MenuItem.js +23 -24
- package/build/esm/Menu/MenuItem.js.map +1 -1
- package/build/esm/Menu/MenuList.d.ts +5 -5
- package/build/esm/Menu/MenuList.js +61 -45
- package/build/esm/Menu/MenuList.js.map +1 -1
- package/build/esm/Menu/MenuPopover.d.ts +6 -6
- package/build/esm/Menu/MenuPopover.js +8 -10
- package/build/esm/Menu/MenuPopover.js.map +1 -1
- package/build/esm/Menu/context.d.ts +2 -2
- package/build/esm/Menu/context.js +11 -8
- package/build/esm/Menu/context.js.map +1 -1
- package/build/esm/Modal/Modal.d.ts +6 -7
- package/build/esm/Modal/Modal.js +11 -10
- package/build/esm/Modal/Modal.js.map +1 -1
- package/build/esm/Modal/ModalBackdrop.d.ts +6 -6
- package/build/esm/Modal/ModalBackdrop.js +20 -19
- package/build/esm/Modal/ModalBackdrop.js.map +1 -1
- package/build/esm/Popper/Popper.d.ts +8 -8
- package/build/esm/Popper/Popper.js +46 -37
- package/build/esm/Popper/Popper.js.map +1 -1
- package/build/esm/Popper/PopperArrow.d.ts +5 -5
- package/build/esm/Popper/PopperArrow.js +8 -9
- package/build/esm/Popper/PopperArrow.js.map +1 -1
- package/build/esm/Popper/context.d.ts +1 -1
- package/build/esm/Popper/context.js +5 -3
- package/build/esm/Popper/context.js.map +1 -1
- package/build/esm/Portal/Portal.d.ts +1 -1
- package/build/esm/Portal/Portal.js +6 -5
- package/build/esm/Portal/Portal.js.map +1 -1
- package/build/esm/RadioButton/RadioButton.d.ts +7 -7
- package/build/esm/RadioButton/RadioButton.js +12 -13
- package/build/esm/RadioButton/RadioButton.js.map +1 -1
- package/build/esm/RadioButton/RadioGroup.d.ts +8 -8
- package/build/esm/RadioButton/RadioGroup.js +22 -16
- package/build/esm/RadioButton/RadioGroup.js.map +1 -1
- package/build/esm/RadioButton/context.d.ts +2 -2
- package/build/esm/RadioButton/context.js +6 -5
- package/build/esm/RadioButton/context.js.map +1 -1
- package/build/esm/SkipNav/SkipNav.d.ts +6 -6
- package/build/esm/SkipNav/SkipNav.js +5 -6
- package/build/esm/SkipNav/SkipNav.js.map +1 -1
- package/build/esm/Spinner/Spinner.d.ts +7 -7
- package/build/esm/Spinner/Spinner.js +41 -31
- package/build/esm/Spinner/Spinner.js.map +1 -1
- package/build/esm/Spinner/SpinnerButton.d.ts +6 -6
- package/build/esm/Spinner/SpinnerButton.js +11 -12
- package/build/esm/Spinner/SpinnerButton.js.map +1 -1
- package/build/esm/Spinner/context.d.ts +2 -2
- package/build/esm/Spinner/context.js +6 -5
- package/build/esm/Spinner/context.js.map +1 -1
- package/build/esm/Tabs/Tab.d.ts +6 -6
- package/build/esm/Tabs/Tab.js +29 -29
- package/build/esm/Tabs/Tab.js.map +1 -1
- package/build/esm/Tabs/TabList.d.ts +6 -6
- package/build/esm/Tabs/TabList.js +24 -21
- package/build/esm/Tabs/TabList.js.map +1 -1
- package/build/esm/Tabs/TabPanel.d.ts +6 -6
- package/build/esm/Tabs/TabPanel.js +12 -12
- package/build/esm/Tabs/TabPanel.js.map +1 -1
- package/build/esm/Tabs/TabPanels.d.ts +5 -5
- package/build/esm/Tabs/TabPanels.js +13 -12
- package/build/esm/Tabs/TabPanels.js.map +1 -1
- package/build/esm/Tabs/Tabs.d.ts +6 -6
- package/build/esm/Tabs/Tabs.js +27 -14
- package/build/esm/Tabs/Tabs.js.map +1 -1
- package/build/esm/Tabs/context.d.ts +3 -3
- package/build/esm/Tabs/context.js +12 -10
- package/build/esm/Tabs/context.js.map +1 -1
- package/build/esm/Tooltip/Tooltip.d.ts +7 -7
- package/build/esm/Tooltip/Tooltip.js +18 -16
- package/build/esm/Tooltip/Tooltip.js.map +1 -1
- package/build/esm/Tooltip/stateMachine.js +56 -80
- package/build/esm/Tooltip/stateMachine.js.map +1 -1
- package/build/esm/Tooltip/useTooltip.d.ts +7 -7
- package/build/esm/Tooltip/useTooltip.js +32 -30
- package/build/esm/Tooltip/useTooltip.js.map +1 -1
- package/build/esm/hooks/useAutoFocus.d.ts +2 -2
- package/build/esm/hooks/useAutoFocus.js +1 -1
- package/build/esm/hooks/useAutoFocus.js.map +1 -1
- package/build/esm/hooks/useChildrenCounter.d.ts +1 -1
- package/build/esm/hooks/useChildrenCounter.js +6 -4
- package/build/esm/hooks/useChildrenCounter.js.map +1 -1
- package/build/esm/hooks/useControlledState.d.ts +3 -7
- package/build/esm/hooks/useControlledState.js +7 -2
- package/build/esm/hooks/useControlledState.js.map +1 -1
- package/build/esm/hooks/useFocusReturn.d.ts +1 -1
- package/build/esm/hooks/useFocusReturn.js +6 -6
- package/build/esm/hooks/useFocusReturn.js.map +1 -1
- package/build/esm/hooks/useFocusState.d.ts +3 -3
- package/build/esm/hooks/useFocusState.js +13 -9
- package/build/esm/hooks/useFocusState.js.map +1 -1
- package/build/esm/hooks/useGestureHandlers.d.ts +5 -5
- package/build/esm/hooks/useGestureHandlers.js +59 -63
- package/build/esm/hooks/useGestureHandlers.js.map +1 -1
- package/build/esm/hooks/useMeasure.d.ts +2 -2
- package/build/esm/hooks/useMeasure.js +13 -7
- package/build/esm/hooks/useMeasure.js.map +1 -1
- package/build/esm/hooks/useOnClickOutside.d.ts +2 -2
- package/build/esm/hooks/useOnClickOutside.js +5 -4
- package/build/esm/hooks/useOnClickOutside.js.map +1 -1
- package/build/esm/hooks/useOnKeyDown.js +4 -3
- package/build/esm/hooks/useOnKeyDown.js.map +1 -1
- package/build/esm/hooks/useReducerMachine.d.ts +1 -1
- package/build/esm/hooks/useReducerMachine.js +13 -10
- package/build/esm/hooks/useReducerMachine.js.map +1 -1
- package/build/esm/hooks/useRemoveBodyScroll.js +4 -4
- package/build/esm/hooks/useRemoveBodyScroll.js.map +1 -1
- package/build/esm/hooks/useScope.d.ts +1 -1
- package/build/esm/hooks/useScope.js +10 -12
- package/build/esm/hooks/useScope.js.map +1 -1
- package/build/esm/hooks/useThrottle.js +10 -5
- package/build/esm/hooks/useThrottle.js.map +1 -1
- package/build/esm/utils/assignRef.d.ts +1 -1
- package/build/esm/utils/assignRef.js +7 -3
- package/build/esm/utils/assignRef.js.map +1 -1
- package/build/esm/utils/createSubscription.js +7 -5
- package/build/esm/utils/createSubscription.js.map +1 -1
- package/build/esm/utils/rubberBandClamp.js +5 -2
- package/build/esm/utils/rubberBandClamp.js.map +1 -1
- package/build/esm/utils/wrapEvent.d.ts +3 -3
- package/build/esm/utils/wrapEvent.js +7 -3
- package/build/esm/utils/wrapEvent.js.map +1 -1
- package/build/tsconfig-build.tsbuildinfo +1 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/Accordion/Accordion.story.tsx +1 -0
- package/src/Accordion/Accordion.tsx +15 -7
- package/src/Accordion/AccordionBody.tsx +7 -8
- package/src/Accordion/AccordionHeader.tsx +35 -33
- package/src/Accordion/AccordionItem.tsx +15 -7
- package/src/Accordion/context.ts +5 -3
- package/src/CheckBox/CheckBox.tsx +6 -6
- package/src/ComboBox/ComboBox.story.tsx +5 -5
- package/src/ComboBox/Combobox.tsx +12 -17
- package/src/ComboBox/ComboboxButton.tsx +16 -15
- package/src/ComboBox/ComboboxInput.tsx +19 -10
- package/src/ComboBox/ComboboxLabel.tsx +5 -4
- package/src/ComboBox/ComboboxList.tsx +6 -6
- package/src/ComboBox/ComboboxOption.tsx +11 -7
- package/src/ComboBox/ComboboxPopover.tsx +14 -8
- package/src/ComboBox/context.ts +14 -12
- package/src/ComboBox/hooks.tsx +9 -11
- package/src/FocusLock/FocusLock.tsx +14 -7
- package/src/FocusLock/useFocusLock.ts +5 -3
- package/src/List/List.tsx +5 -5
- package/src/List/ListItem.tsx +5 -5
- package/src/Menu/Menu.story.tsx +7 -6
- package/src/Menu/Menu.tsx +16 -8
- package/src/Menu/MenuButton.tsx +15 -16
- package/src/Menu/MenuItem.tsx +15 -10
- package/src/Menu/MenuList.tsx +8 -12
- package/src/Menu/MenuPopover.tsx +7 -5
- package/src/Menu/context.ts +10 -4
- package/src/Modal/Modal.story.tsx +1 -0
- package/src/Modal/Modal.tsx +12 -6
- package/src/Modal/ModalBackdrop.tsx +15 -9
- package/src/Modal/NavDrawer.story.tsx +3 -3
- package/src/Popper/Popper.story.tsx +3 -4
- package/src/Popper/Popper.tsx +13 -12
- package/src/Popper/PopperArrow.tsx +5 -4
- package/src/Popper/context.ts +2 -1
- package/src/Portal/Portal.tsx +1 -1
- package/src/RadioButton/RadioButton.story.tsx +1 -0
- package/src/RadioButton/RadioButton.tsx +14 -7
- package/src/RadioButton/RadioGroup.tsx +14 -10
- package/src/RadioButton/context.ts +2 -4
- package/src/SkipNav/SkipNav.tsx +5 -5
- package/src/Spinner/Spinner.story.tsx +1 -0
- package/src/Spinner/Spinner.tsx +14 -9
- package/src/Spinner/SpinnerButton.tsx +12 -6
- package/src/Spinner/context.ts +2 -3
- package/src/Tabs/Tab.story.tsx +1 -0
- package/src/Tabs/Tab.tsx +16 -11
- package/src/Tabs/TabList.tsx +6 -5
- package/src/Tabs/TabPanel.tsx +6 -5
- package/src/Tabs/TabPanels.tsx +4 -4
- package/src/Tabs/Tabs.tsx +6 -7
- package/src/Tabs/context.ts +4 -4
- package/src/Tooltip/Tooltip.story.tsx +3 -2
- package/src/Tooltip/Tooltip.tsx +11 -9
- package/src/Tooltip/stateMachine.ts +1 -1
- package/src/Tooltip/useTooltip.ts +19 -10
- package/src/hooks/useAutoFocus.ts +3 -1
- package/src/hooks/useChildrenCounter.ts +2 -1
- package/src/hooks/useControlledState.ts +7 -8
- package/src/hooks/useFocusReturn.ts +2 -1
- package/src/hooks/useFocusState.ts +4 -2
- package/src/hooks/useGestureHandlers.ts +11 -7
- package/src/hooks/useMeasure.ts +2 -1
- package/src/hooks/useOnClickOutside.ts +2 -2
- package/src/hooks/useReducerMachine.ts +2 -1
- package/src/hooks/useScope.ts +2 -1
- package/src/utils/assignRef.ts +1 -1
- package/src/utils/wrapEvent.ts +4 -5
|
@@ -1,37 +1,41 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
4
|
import { useRef, useEffect, useState, useId } from 'react';
|
|
4
5
|
import { assignMultipleRefs } from '../utils/assignRef';
|
|
5
6
|
import { wrapEvent } from '../utils/wrapEvent';
|
|
6
7
|
import { send, state, subscription, Blur, Focus, LeavingVisible, MouseDown, MouseEnter, MouseLeave, MouseMove, SelectWithKeyboard, Visible } from './stateMachine';
|
|
7
8
|
export function useTooltip(childProps, childRef, tooltipProps) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
9
|
+
var onMouseEnter = childProps.onMouseEnter,
|
|
10
|
+
onMouseLeave = childProps.onMouseLeave,
|
|
11
|
+
onMouseMove = childProps.onMouseMove,
|
|
12
|
+
onMouseDown = childProps.onMouseDown,
|
|
13
|
+
onKeyDown = childProps.onKeyDown,
|
|
14
|
+
onFocus = childProps.onFocus,
|
|
15
|
+
onBlur = childProps.onBlur;
|
|
16
|
+
var anchorEl = useRef(null);
|
|
17
|
+
|
|
18
|
+
var _useState = useState(false),
|
|
19
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
20
|
+
visible = _useState2[0],
|
|
21
|
+
setVisible = _useState2[1];
|
|
22
|
+
|
|
23
|
+
var id = useId();
|
|
24
|
+
useEffect(function () {
|
|
25
|
+
subscription.subscribe(function () {
|
|
22
26
|
setVisible((state.current.state === Visible || state.current.state === LeavingVisible) && state.current.id === id);
|
|
23
27
|
});
|
|
24
28
|
}, [id]);
|
|
25
29
|
|
|
26
30
|
function handleMouseEnter() {
|
|
27
31
|
send(MouseEnter, {
|
|
28
|
-
id
|
|
32
|
+
id: id
|
|
29
33
|
});
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
function handleMouseMove() {
|
|
33
37
|
send(MouseMove, {
|
|
34
|
-
id
|
|
38
|
+
id: id
|
|
35
39
|
});
|
|
36
40
|
}
|
|
37
41
|
|
|
@@ -48,7 +52,7 @@ export function useTooltip(childProps, childRef, tooltipProps) {
|
|
|
48
52
|
|
|
49
53
|
function handleFocus() {
|
|
50
54
|
send(Focus, {
|
|
51
|
-
id
|
|
55
|
+
id: id
|
|
52
56
|
});
|
|
53
57
|
}
|
|
54
58
|
|
|
@@ -65,18 +69,16 @@ export function useTooltip(childProps, childRef, tooltipProps) {
|
|
|
65
69
|
}
|
|
66
70
|
}
|
|
67
71
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
} = tooltipProps,
|
|
74
|
-
otherTooltipProps = _objectWithoutPropertiesLoose(tooltipProps, ["label", "onMouseEnter", "onMouseLeave", "onMouseMove"]);
|
|
72
|
+
var children = tooltipProps.label,
|
|
73
|
+
tooltipOnMouseEnter = tooltipProps.onMouseEnter,
|
|
74
|
+
tooltipOnMouseLeave = tooltipProps.onMouseLeave,
|
|
75
|
+
tooltipOnMouseMove = tooltipProps.onMouseMove,
|
|
76
|
+
otherTooltipProps = _objectWithoutProperties(tooltipProps, ["label", "onMouseEnter", "onMouseLeave", "onMouseMove"]);
|
|
75
77
|
|
|
76
|
-
|
|
78
|
+
var tooltipId = "tooltip-".concat(id);
|
|
77
79
|
return [_extends({}, childProps, {
|
|
78
80
|
ref: assignMultipleRefs(childRef, anchorEl)
|
|
79
|
-
}, visible && {
|
|
81
|
+
}, visible && !childProps['aria-label'] && {
|
|
80
82
|
'aria-describedby': tooltipId
|
|
81
83
|
}, {
|
|
82
84
|
onMouseEnter: wrapEvent(onMouseEnter, handleMouseEnter),
|
|
@@ -88,9 +90,9 @@ export function useTooltip(childProps, childRef, tooltipProps) {
|
|
|
88
90
|
onKeyDown: wrapEvent(onKeyDown, handleKeyDown)
|
|
89
91
|
}), _extends({
|
|
90
92
|
id: tooltipId,
|
|
91
|
-
anchorEl,
|
|
92
|
-
visible,
|
|
93
|
-
children,
|
|
93
|
+
anchorEl: anchorEl,
|
|
94
|
+
visible: visible,
|
|
95
|
+
children: children,
|
|
94
96
|
onMouseEnter: wrapEvent(tooltipOnMouseEnter, handleMouseEnter),
|
|
95
97
|
onMouseLeave: wrapEvent(tooltipOnMouseLeave, handleMouseLeave),
|
|
96
98
|
onMouseMove: wrapEvent(tooltipOnMouseMove, handleMouseMove),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Tooltip/useTooltip.ts"],"names":["useRef","useEffect","useState","useId","assignMultipleRefs","wrapEvent","send","state","subscription","Blur","Focus","LeavingVisible","MouseDown","MouseEnter","MouseLeave","MouseMove","SelectWithKeyboard","Visible","useTooltip","childProps","childRef","tooltipProps","onMouseEnter","onMouseLeave","onMouseMove","onMouseDown","onKeyDown","onFocus","onBlur","anchorEl","visible","setVisible","id","subscribe","current","handleMouseEnter","handleMouseMove","handleMouseLeave","handleMouseDown","handleFocus","handleBlur","undefined","handleKeyDown","event","key","
|
|
1
|
+
{"version":3,"sources":["../../../src/Tooltip/useTooltip.ts"],"names":["useRef","useEffect","useState","useId","assignMultipleRefs","wrapEvent","send","state","subscription","Blur","Focus","LeavingVisible","MouseDown","MouseEnter","MouseLeave","MouseMove","SelectWithKeyboard","Visible","useTooltip","childProps","childRef","tooltipProps","onMouseEnter","onMouseLeave","onMouseMove","onMouseDown","onKeyDown","onFocus","onBlur","anchorEl","visible","setVisible","id","subscribe","current","handleMouseEnter","handleMouseMove","handleMouseLeave","handleMouseDown","handleFocus","handleBlur","undefined","handleKeyDown","event","key","children","label","tooltipOnMouseEnter","tooltipOnMouseLeave","tooltipOnMouseMove","otherTooltipProps","tooltipId","ref","role"],"mappings":"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","sourcesContent":["import type {\n HTMLAttributes,\n KeyboardEvent,\n ReactNode,\n Ref,\n RefAttributes,\n RefObject,\n} from 'react';\nimport { useRef, useEffect, useState, useId } from 'react';\n\nimport { assignMultipleRefs } from '../utils/assignRef';\nimport { wrapEvent } from '../utils/wrapEvent';\nimport {\n send,\n state,\n subscription,\n Blur,\n Focus,\n LeavingVisible,\n MouseDown,\n MouseEnter,\n MouseLeave,\n MouseMove,\n SelectWithKeyboard,\n Visible,\n} from './stateMachine';\n\nexport type ChildProps = HTMLAttributes<HTMLElement> &\n RefAttributes<HTMLElement>;\n\nexport interface InjectedTooltipProps extends HTMLAttributes<HTMLElement> {\n anchorEl: RefObject<HTMLElement>;\n visible: boolean;\n children?: ReactNode;\n}\n\nexport function useTooltip(\n childProps: ChildProps,\n childRef: Ref<HTMLElement> | undefined,\n tooltipProps: HTMLAttributes<HTMLElement> & { label?: ReactNode }\n): [ChildProps, InjectedTooltipProps] {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseDown,\n onKeyDown,\n onFocus,\n onBlur,\n } = childProps;\n const anchorEl = useRef<HTMLElement>(null);\n const [visible, setVisible] = useState(false);\n const id = useId();\n\n useEffect(() => {\n subscription.subscribe(() => {\n setVisible(\n (state.current.state === Visible ||\n state.current.state === LeavingVisible) &&\n state.current.id === id\n );\n });\n }, [id]);\n\n function handleMouseEnter() {\n send(MouseEnter, { id });\n }\n\n function handleMouseMove() {\n send(MouseMove, { id });\n }\n\n function handleMouseLeave() {\n send(MouseLeave);\n }\n\n function handleMouseDown() {\n // Allow quick click from one tool to another\n if (state.current.id === id) {\n send(MouseDown);\n }\n }\n\n function handleFocus() {\n send(Focus, { id });\n }\n\n function handleBlur() {\n // Allow quick click from one tool to another\n if (state.current.id === id) {\n send(Blur, undefined);\n }\n }\n\n function handleKeyDown(event: KeyboardEvent<HTMLElement>) {\n if (event.key === 'Enter' || event.key === ' ') {\n send(SelectWithKeyboard);\n }\n }\n\n const {\n label: children,\n onMouseEnter: tooltipOnMouseEnter,\n onMouseLeave: tooltipOnMouseLeave,\n onMouseMove: tooltipOnMouseMove,\n ...otherTooltipProps\n } = tooltipProps;\n\n const tooltipId = `tooltip-${id}`;\n return [\n {\n ...childProps,\n ref: assignMultipleRefs(childRef, anchorEl),\n ...(visible &&\n !childProps['aria-label'] && { 'aria-describedby': tooltipId }),\n onMouseEnter: wrapEvent(onMouseEnter, handleMouseEnter),\n onMouseLeave: wrapEvent(onMouseLeave, handleMouseLeave),\n onMouseMove: wrapEvent(onMouseMove, handleMouseMove),\n onMouseDown: wrapEvent(onMouseDown, handleMouseDown),\n onFocus: wrapEvent(onFocus, handleFocus),\n onBlur: wrapEvent(onBlur, handleBlur),\n onKeyDown: wrapEvent(onKeyDown, handleKeyDown),\n },\n {\n id: tooltipId,\n anchorEl,\n visible,\n children,\n onMouseEnter: wrapEvent(tooltipOnMouseEnter, handleMouseEnter),\n onMouseLeave: wrapEvent(tooltipOnMouseLeave, handleMouseLeave),\n onMouseMove: wrapEvent(tooltipOnMouseMove, handleMouseMove),\n role: 'tooltip',\n ...otherTooltipProps,\n },\n ];\n}\n"],"file":"useTooltip.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function useAutoFocus(open: boolean, elementRef:
|
|
1
|
+
import type { MutableRefObject } from 'react';
|
|
2
|
+
export declare function useAutoFocus(open: boolean, elementRef: MutableRefObject<HTMLElement | null>): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useEffect } from 'react';
|
|
2
2
|
import { focusOnChildNode } from '../FocusLock/tabUtils';
|
|
3
3
|
export function useAutoFocus(open, elementRef) {
|
|
4
|
-
useEffect(()
|
|
4
|
+
useEffect(function () {
|
|
5
5
|
if (open) {
|
|
6
6
|
// We will only autoFocus on the first child if the currently active element isn't already trapped inside the modal
|
|
7
7
|
if (elementRef.current && !elementRef.current.contains(document.activeElement)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useAutoFocus.ts"],"names":["useEffect","focusOnChildNode","useAutoFocus","open","elementRef","current","contains","document","activeElement"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useAutoFocus.ts"],"names":["useEffect","focusOnChildNode","useAutoFocus","open","elementRef","current","contains","document","activeElement"],"mappings":"AACA,SAASA,SAAT,QAA0B,OAA1B;AAEA,SAASC,gBAAT,QAAiC,uBAAjC;AAEA,OAAO,SAASC,YAAT,CACLC,IADK,EAELC,UAFK,EAGL;AACAJ,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIG,IAAJ,EAAU;AACR;AACA,UACEC,UAAU,CAACC,OAAX,IACA,CAACD,UAAU,CAACC,OAAX,CAAmBC,QAAnB,CAA4BC,QAAQ,CAACC,aAArC,CAFH,EAGE;AACAP,QAAAA,gBAAgB,CAACG,UAAU,CAACC,OAAZ,EAAqB,CAArB,CAAhB;AACD;AACF,KATa,CAUd;;AACD,GAXQ,EAWN,CAACF,IAAD,CAXM,CAAT;AAYD","sourcesContent":["import type { MutableRefObject } from 'react';\nimport { useEffect } from 'react';\n\nimport { focusOnChildNode } from '../FocusLock/tabUtils';\n\nexport function useAutoFocus(\n open: boolean,\n elementRef: MutableRefObject<HTMLElement | null>\n) {\n useEffect(() => {\n if (open) {\n // We will only autoFocus on the first child if the currently active element isn't already trapped inside the modal\n if (\n elementRef.current &&\n !elementRef.current.contains(document.activeElement)\n ) {\n focusOnChildNode(elementRef.current, 0);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n}\n"],"file":"useAutoFocus.js"}
|
|
@@ -6,21 +6,23 @@ export function useChildrenCounterParent(itemsRef) {
|
|
|
6
6
|
// the array
|
|
7
7
|
itemsRef.current = [];
|
|
8
8
|
itemsRef.current.isNewRender = true;
|
|
9
|
-
useEffect(()
|
|
9
|
+
useEffect(function () {
|
|
10
10
|
// Rendering is finished. Meaning any children can now rerender,
|
|
11
11
|
// and they should not push any new items to our array, because
|
|
12
12
|
// it is not a new render
|
|
13
13
|
itemsRef.current.isNewRender = false;
|
|
14
14
|
});
|
|
15
|
-
useEffect(()
|
|
15
|
+
useEffect(function () {
|
|
16
16
|
// When we are unmounting, it means there are no children anymore.
|
|
17
17
|
// Clear out our items array
|
|
18
|
-
return ()
|
|
18
|
+
return function () {
|
|
19
19
|
itemsRef.current = [];
|
|
20
20
|
};
|
|
21
21
|
}, [itemsRef]);
|
|
22
22
|
}
|
|
23
|
-
export function useChildrenCounterChild(itemsRef, itemIndexRef, obj
|
|
23
|
+
export function useChildrenCounterChild(itemsRef, itemIndexRef, obj) {
|
|
24
|
+
var disabled = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
25
|
+
|
|
24
26
|
if (itemsRef && itemsRef.current.isNewRender) {
|
|
25
27
|
if (disabled) {
|
|
26
28
|
itemIndexRef.current = -1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useChildrenCounter.ts"],"names":["useEffect","useChildrenCounterParent","itemsRef","current","isNewRender","useChildrenCounterChild","itemIndexRef","obj","disabled","length","Function","push"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useChildrenCounter.ts"],"names":["useEffect","useChildrenCounterParent","itemsRef","current","isNewRender","useChildrenCounterChild","itemIndexRef","obj","disabled","length","Function","push"],"mappings":"AACA,SAASA,SAAT,QAA0B,OAA1B;AAEA,OAAO,SAASC,wBAAT,CACLC,QADK,EAEL;AACA;AACA;AACA;AACA;AACAA,EAAAA,QAAQ,CAACC,OAAT,GAAmB,EAAnB;AACAD,EAAAA,QAAQ,CAACC,OAAT,CAAiBC,WAAjB,GAA+B,IAA/B;AAEAJ,EAAAA,SAAS,CAAC,YAAM;AACd;AACA;AACA;AACAE,IAAAA,QAAQ,CAACC,OAAT,CAAiBC,WAAjB,GAA+B,KAA/B;AACD,GALQ,CAAT;AAOAJ,EAAAA,SAAS,CAAC,YAAM;AACd;AACA;AACA,WAAO,YAAM;AACXE,MAAAA,QAAQ,CAACC,OAAT,GAAmB,EAAnB;AACD,KAFD;AAGD,GANQ,EAMN,CAACD,QAAD,CANM,CAAT;AAOD;AAED,OAAO,SAASG,uBAAT,CACLH,QADK,EAELI,YAFK,EAGLC,GAHK,EAKL;AAAA,MADAC,QACA,uEADW,KACX;;AACA,MAAIN,QAAQ,IAAIA,QAAQ,CAACC,OAAT,CAAiBC,WAAjC,EAA8C;AAC5C,QAAII,QAAJ,EAAc;AACZF,MAAAA,YAAY,CAACH,OAAb,GAAuB,CAAC,CAAxB;AACA;AACD,KAJ2C,CAM5C;;;AACAG,IAAAA,YAAY,CAACH,OAAb,GAAuBD,QAAQ,CAACC,OAAT,CAAiBM,MAAxC;;AAEA,QAAIF,GAAG,YAAYG,QAAnB,EAA6B;AAC3BR,MAAAA,QAAQ,CAACC,OAAT,CAAiBQ,IAAjB,CAAsBJ,GAAG,CAACD,YAAY,CAACH,OAAd,CAAzB;AACD,KAFD,MAEO;AACLD,MAAAA,QAAQ,CAACC,OAAT,CAAiBQ,IAAjB,CAAsBJ,GAAtB;AACD;AACF;AACF","sourcesContent":["import type { MutableRefObject } from 'react';\nimport { useEffect } from 'react';\n\nexport function useChildrenCounterParent<T>(\n itemsRef: MutableRefObject<T[] & { isNewRender?: boolean }>\n) {\n // Reset the options ref every render so that they are always\n // accurate and ready for keyboard navigation handlers. Using layout\n // effect to schedule this effect before the ComboboxOptions push into\n // the array\n itemsRef.current = [];\n itemsRef.current.isNewRender = true;\n\n useEffect(() => {\n // Rendering is finished. Meaning any children can now rerender,\n // and they should not push any new items to our array, because\n // it is not a new render\n itemsRef.current.isNewRender = false;\n });\n\n useEffect(() => {\n // When we are unmounting, it means there are no children anymore.\n // Clear out our items array\n return () => {\n itemsRef.current = [];\n };\n }, [itemsRef]);\n}\n\nexport function useChildrenCounterChild<T>(\n itemsRef: MutableRefObject<T[] & { isNewRender?: boolean }> | undefined,\n itemIndexRef: MutableRefObject<number>,\n obj: T | ((idx: number) => T),\n disabled = false\n) {\n if (itemsRef && itemsRef.current.isNewRender) {\n if (disabled) {\n itemIndexRef.current = -1;\n return;\n }\n\n // push this option to the optionsRef array\n itemIndexRef.current = itemsRef.current.length;\n\n if (obj instanceof Function) {\n itemsRef.current.push(obj(itemIndexRef.current));\n } else {\n itemsRef.current.push(obj);\n }\n }\n}\n"],"file":"useChildrenCounter.js"}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
import { CustomEventHandler } from '../utils';
|
|
3
|
-
export declare function useControlledState<V, E extends
|
|
4
|
-
V,
|
|
5
|
-
CustomEventHandler<E, H> | undefined,
|
|
6
|
-
React.Dispatch<React.SetStateAction<V>>
|
|
7
|
-
];
|
|
1
|
+
import type { Dispatch, SetStateAction, SyntheticEvent } from 'react';
|
|
2
|
+
import type { CustomEventHandler } from '../utils';
|
|
3
|
+
export declare function useControlledState<V, E extends SyntheticEvent<any>, H extends unknown[]>(valueProp: V | undefined, onChangeProp: CustomEventHandler<E, H> | undefined, defaultValue: V, defaultOnChange: (setValue: Dispatch<SetStateAction<V>>) => CustomEventHandler<E, H>): [V, CustomEventHandler<E, H> | undefined, Dispatch<SetStateAction<V>>];
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
1
2
|
import { useRef, useState } from 'react';
|
|
2
3
|
import { wrapEvent } from '../utils';
|
|
3
4
|
export function useControlledState(valueProp, onChangeProp, defaultValue, defaultOnChange) {
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
var isControlled = useRef(valueProp !== undefined);
|
|
6
|
+
|
|
7
|
+
var _useState = useState(defaultValue),
|
|
8
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
9
|
+
valueState = _useState2[0],
|
|
10
|
+
setValueState = _useState2[1];
|
|
6
11
|
|
|
7
12
|
if (isControlled.current) {
|
|
8
13
|
if (valueProp === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useControlledState.ts"],"names":["useRef","useState","wrapEvent","useControlledState","valueProp","onChangeProp","defaultValue","defaultOnChange","isControlled","undefined","valueState","setValueState","current","console","warn"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useControlledState.ts"],"names":["useRef","useState","wrapEvent","useControlledState","valueProp","onChangeProp","defaultValue","defaultOnChange","isControlled","undefined","valueState","setValueState","current","console","warn"],"mappings":";AACA,SAASA,MAAT,EAAiBC,QAAjB,QAAiC,OAAjC;AAGA,SAASC,SAAT,QAA0B,UAA1B;AAEA,OAAO,SAASC,kBAAT,CAKLC,SALK,EAMLC,YANK,EAOLC,YAPK,EAQLC,eARK,EAWmE;AACxE,MAAMC,YAAY,GAAGR,MAAM,CAACI,SAAS,KAAKK,SAAf,CAA3B;;AADwE,kBAEpCR,QAAQ,CAAIK,YAAJ,CAF4B;AAAA;AAAA,MAEjEI,UAFiE;AAAA,MAErDC,aAFqD;;AAIxE,MAAIH,YAAY,CAACI,OAAjB,EAA0B;AACxB,QAAIR,SAAS,KAAKK,SAAlB,EAA6B;AAC3BI,MAAAA,OAAO,CAACC,IAAR,CAAa,mDAAb;AACD,KAHuB,CAIxB;;;AACA,WAAO,CAACV,SAAD,EAAaC,YAAb,EAA2BM,aAA3B,CAAP;AACD;;AAED,SAAO,CACL;AACAD,EAAAA,UAFK,EAGLR,SAAS,CAACG,YAAD,EAAeE,eAAe,CAACI,aAAD,CAA9B,CAHJ,EAILA,aAJK,CAAP;AAMD","sourcesContent":["import type { Dispatch, SetStateAction, SyntheticEvent } from 'react';\nimport { useRef, useState } from 'react';\n\nimport type { CustomEventHandler } from '../utils';\nimport { wrapEvent } from '../utils';\n\nexport function useControlledState<\n V,\n E extends SyntheticEvent<any>,\n H extends unknown[]\n>(\n valueProp: V | undefined,\n onChangeProp: CustomEventHandler<E, H> | undefined,\n defaultValue: V,\n defaultOnChange: (\n setValue: Dispatch<SetStateAction<V>>\n ) => CustomEventHandler<E, H>\n): [V, CustomEventHandler<E, H> | undefined, Dispatch<SetStateAction<V>>] {\n const isControlled = useRef(valueProp !== undefined);\n const [valueState, setValueState] = useState<V>(defaultValue);\n\n if (isControlled.current) {\n if (valueProp === undefined) {\n console.warn('Trying to change from controlled to uncontrolled.');\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return [valueProp!, onChangeProp, setValueState];\n }\n\n return [\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n valueState!,\n wrapEvent(onChangeProp, defaultOnChange(setValueState)),\n setValueState,\n ];\n}\n"],"file":"useControlledState.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { MutableRefObject } from 'react';
|
|
1
|
+
import type { MutableRefObject } from 'react';
|
|
2
2
|
export declare function useFocusReturn(open: boolean, rootEl: MutableRefObject<HTMLElement | null>): void;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { useEffect, useRef } from 'react';
|
|
2
2
|
export function useFocusReturn(open, rootEl) {
|
|
3
|
-
|
|
3
|
+
var previousFocusRef = useRef(function () {
|
|
4
4
|
if (open && typeof document !== 'undefined' && document.activeElement instanceof HTMLElement) {
|
|
5
5
|
return document.activeElement;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
return null;
|
|
9
|
-
}
|
|
10
|
-
useEffect(()
|
|
9
|
+
}());
|
|
10
|
+
useEffect(function () {
|
|
11
11
|
if (open) {
|
|
12
12
|
var _rootEl$current;
|
|
13
13
|
|
|
@@ -17,9 +17,9 @@ export function useFocusReturn(open, rootEl) {
|
|
|
17
17
|
previousFocusRef.current = document.activeElement;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return ()
|
|
20
|
+
var rootElement = rootEl.current;
|
|
21
|
+
var previousElement = previousFocusRef.current;
|
|
22
|
+
return function () {
|
|
23
23
|
// on unmount, return focus to that element
|
|
24
24
|
if (previousElement && !(rootElement != null && rootElement.contains(document.activeElement))) {
|
|
25
25
|
previousElement.focus({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useFocusReturn.ts"],"names":["useEffect","useRef","useFocusReturn","open","rootEl","previousFocusRef","document","activeElement","HTMLElement","current","contains","rootElement","previousElement","focus","preventScroll"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useFocusReturn.ts"],"names":["useEffect","useRef","useFocusReturn","open","rootEl","previousFocusRef","document","activeElement","HTMLElement","current","contains","rootElement","previousElement","focus","preventScroll"],"mappings":"AACA,SAASA,SAAT,EAAoBC,MAApB,QAAkC,OAAlC;AAEA,OAAO,SAASC,cAAT,CACLC,IADK,EAELC,MAFK,EAGL;AACA,MAAMC,gBAAgB,GAAGJ,MAAM,CAC5B,YAAM;AACL,QACEE,IAAI,IACJ,OAAOG,QAAP,KAAoB,WADpB,IAEAA,QAAQ,CAACC,aAAT,YAAkCC,WAHpC,EAIE;AACA,aAAOF,QAAQ,CAACC,aAAhB;AACD;;AACD,WAAO,IAAP;AACD,GATD,EAD6B,CAA/B;AAaAP,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIG,IAAJ,EAAU;AAAA;;AACR;AACA;AACA,UACE,CAACE,gBAAgB,CAACI,OAAlB,IACAH,QAAQ,CAACC,aAAT,YAAkCC,WADlC,IAEA,qBAACJ,MAAM,CAACK,OAAR,aAAC,gBAAgBC,QAAhB,CAAyBJ,QAAQ,CAACC,aAAlC,CAAD,CAHF,EAIE;AACAF,QAAAA,gBAAgB,CAACI,OAAjB,GAA2BH,QAAQ,CAACC,aAApC;AACD;;AAED,UAAMI,WAAW,GAAGP,MAAM,CAACK,OAA3B;AACA,UAAMG,eAAe,GAAGP,gBAAgB,CAACI,OAAzC;AACA,aAAO,YAAM;AACX;AACA,YAAIG,eAAe,IAAI,EAACD,WAAD,YAACA,WAAW,CAAED,QAAb,CAAsBJ,QAAQ,CAACC,aAA/B,CAAD,CAAvB,EAAuE;AACrEK,UAAAA,eAAe,CAACC,KAAhB,CAAsB;AAAEC,YAAAA,aAAa,EAAE;AAAjB,WAAtB;AACD;AACF,OALD;AAMD;AACF,GArBQ,EAqBN,CAACX,IAAD,EAAOC,MAAP,CArBM,CAAT;AAsBD","sourcesContent":["import type { MutableRefObject } from 'react';\nimport { useEffect, useRef } from 'react';\n\nexport function useFocusReturn(\n open: boolean,\n rootEl: MutableRefObject<HTMLElement | null>\n) {\n const previousFocusRef = useRef<HTMLElement | null>(\n (() => {\n if (\n open &&\n typeof document !== 'undefined' &&\n document.activeElement instanceof HTMLElement\n ) {\n return document.activeElement;\n }\n return null;\n })()\n );\n\n useEffect(() => {\n if (open) {\n // once opened, keep track of the element that triggered\n // the Modal opening\n if (\n !previousFocusRef.current &&\n document.activeElement instanceof HTMLElement &&\n !rootEl.current?.contains(document.activeElement)\n ) {\n previousFocusRef.current = document.activeElement;\n }\n\n const rootElement = rootEl.current;\n const previousElement = previousFocusRef.current;\n return () => {\n // on unmount, return focus to that element\n if (previousElement && !rootElement?.contains(document.activeElement)) {\n previousElement.focus({ preventScroll: true });\n }\n };\n }\n }, [open, rootEl]);\n}\n"],"file":"useFocusReturn.js"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import type { FocusEventHandler } from 'react';
|
|
2
2
|
export declare function useFocusState<T>(props?: {
|
|
3
|
-
onFocus?:
|
|
4
|
-
onBlur?:
|
|
3
|
+
onFocus?: FocusEventHandler<T>;
|
|
4
|
+
onBlur?: FocusEventHandler<T>;
|
|
5
5
|
}): {
|
|
6
6
|
bind: {
|
|
7
7
|
onFocus: import("../utils/wrapEvent").CustomEventHandler<import("react").FocusEvent<T, Element>, []>;
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
1
2
|
import { useState } from 'react';
|
|
2
3
|
import { wrapEvent } from '../utils/wrapEvent';
|
|
3
|
-
export function useFocusState(
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} = props;
|
|
8
|
-
const [hasFocus, setHasFocus] = useState(false);
|
|
4
|
+
export function useFocusState() {
|
|
5
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
6
|
+
var onFocus = props.onFocus,
|
|
7
|
+
onBlur = props.onBlur;
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
var _useState = useState(false),
|
|
10
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
11
|
+
hasFocus = _useState2[0],
|
|
12
|
+
setHasFocus = _useState2[1];
|
|
13
|
+
|
|
14
|
+
var handleFocus = function handleFocus() {
|
|
11
15
|
setHasFocus(true);
|
|
12
16
|
};
|
|
13
17
|
|
|
14
|
-
|
|
18
|
+
var handleBlur = function handleBlur() {
|
|
15
19
|
setHasFocus(false);
|
|
16
20
|
};
|
|
17
21
|
|
|
@@ -20,7 +24,7 @@ export function useFocusState(props = {}) {
|
|
|
20
24
|
onFocus: wrapEvent(onFocus, handleFocus),
|
|
21
25
|
onBlur: wrapEvent(onBlur, handleBlur)
|
|
22
26
|
},
|
|
23
|
-
hasFocus
|
|
27
|
+
hasFocus: hasFocus
|
|
24
28
|
};
|
|
25
29
|
}
|
|
26
30
|
//# sourceMappingURL=useFocusState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/useFocusState.ts"],"names":["useState","wrapEvent","useFocusState","props","onFocus","onBlur","hasFocus","setHasFocus","handleFocus","handleBlur","bind"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/useFocusState.ts"],"names":["useState","wrapEvent","useFocusState","props","onFocus","onBlur","hasFocus","setHasFocus","handleFocus","handleBlur","bind"],"mappings":";AACA,SAASA,QAAT,QAAyB,OAAzB;AAEA,SAASC,SAAT,QAA0B,oBAA1B;AAEA,OAAO,SAASC,aAAT,GAKL;AAAA,MAJAC,KAIA,uEADI,EACJ;AAAA,MACQC,OADR,GAC4BD,KAD5B,CACQC,OADR;AAAA,MACiBC,MADjB,GAC4BF,KAD5B,CACiBE,MADjB;;AAAA,kBAEgCL,QAAQ,CAAC,KAAD,CAFxC;AAAA;AAAA,MAEOM,QAFP;AAAA,MAEiBC,WAFjB;;AAIA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBD,IAAAA,WAAW,CAAC,IAAD,CAAX;AACD,GAFD;;AAIA,MAAME,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvBF,IAAAA,WAAW,CAAC,KAAD,CAAX;AACD,GAFD;;AAIA,SAAO;AACLG,IAAAA,IAAI,EAAE;AACJN,MAAAA,OAAO,EAAEH,SAAS,CAACG,OAAD,EAAUI,WAAV,CADd;AAEJH,MAAAA,MAAM,EAAEJ,SAAS,CAACI,MAAD,EAASI,UAAT;AAFb,KADD;AAKLH,IAAAA,QAAQ,EAARA;AALK,GAAP;AAOD","sourcesContent":["import type { FocusEventHandler } from 'react';\nimport { useState } from 'react';\n\nimport { wrapEvent } from '../utils/wrapEvent';\n\nexport function useFocusState<T>(\n props: {\n onFocus?: FocusEventHandler<T>;\n onBlur?: FocusEventHandler<T>;\n } = {}\n) {\n const { onFocus, onBlur } = props;\n const [hasFocus, setHasFocus] = useState(false);\n\n const handleFocus = () => {\n setHasFocus(true);\n };\n\n const handleBlur = () => {\n setHasFocus(false);\n };\n\n return {\n bind: {\n onFocus: wrapEvent(onFocus, handleFocus),\n onBlur: wrapEvent(onBlur, handleBlur),\n },\n hasFocus,\n };\n}\n"],"file":"useFocusState.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { MutableRefObject, MouseEvent as ReactMouseEvent, TouchEvent as ReactTouchEvent } from 'react';
|
|
2
2
|
export interface GestureHandlersState {
|
|
3
3
|
target: null | EventTarget;
|
|
4
4
|
x: number;
|
|
@@ -19,16 +19,16 @@ export interface GestureHandlersState {
|
|
|
19
19
|
}
|
|
20
20
|
declare type SetStateFunc<S> = (state: (prevState: Readonly<S>) => S, callback?: () => void) => void;
|
|
21
21
|
export interface GestureHandlersReturn {
|
|
22
|
-
onMouseDown: (e:
|
|
23
|
-
onTouchStart: (e:
|
|
22
|
+
onMouseDown: (e: ReactMouseEvent<HTMLElement>) => void;
|
|
23
|
+
onTouchStart: (e: ReactTouchEvent<HTMLElement>) => void;
|
|
24
24
|
}
|
|
25
25
|
export interface GestureHandlerOptions {
|
|
26
26
|
ensureTargetIsContainer?: boolean;
|
|
27
27
|
minTouchDelta?: number;
|
|
28
28
|
}
|
|
29
29
|
export declare const initialGestureHandlersState: GestureHandlersState;
|
|
30
|
-
export declare function gestureHandlers(set: SetStateFunc<GestureHandlersState>, containerRef?:
|
|
31
|
-
export declare const useGestureHandlers: (containerRef:
|
|
30
|
+
export declare function gestureHandlers(set: SetStateFunc<GestureHandlersState>, containerRef?: MutableRefObject<HTMLElement | null>, options?: GestureHandlerOptions): GestureHandlersReturn;
|
|
31
|
+
export declare const useGestureHandlers: (containerRef: MutableRefObject<HTMLElement | null> | undefined, onGesture: (e: GestureHandlersState) => void, options?: GestureHandlerOptions) => {
|
|
32
32
|
state: {
|
|
33
33
|
target: null | EventTarget;
|
|
34
34
|
x: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import { useRef } from 'react';
|
|
3
|
-
export
|
|
3
|
+
export var initialGestureHandlersState = {
|
|
4
4
|
target: null,
|
|
5
5
|
x: 0,
|
|
6
6
|
xDelta: 0,
|
|
@@ -18,26 +18,27 @@ export const initialGestureHandlersState = {
|
|
|
18
18
|
down: false,
|
|
19
19
|
scrollLocked: false
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
export function gestureHandlers(set, containerRef
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
21
|
+
var FRAMERATE_CONST = 1000 / 60; // 60 fps
|
|
22
|
+
|
|
23
|
+
var VELOCITY_DEPR_FACTOR = FRAMERATE_CONST * 2;
|
|
24
|
+
export function gestureHandlers(set, containerRef) {
|
|
25
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
26
|
+
var _options$ensureTarget = options.ensureTargetIsContainer,
|
|
27
|
+
ensureTargetIsContainer = _options$ensureTarget === void 0 ? false : _options$ensureTarget,
|
|
28
|
+
_options$minTouchDelt = options.minTouchDelta,
|
|
29
|
+
minTouchDelta = _options$minTouchDelt === void 0 ? 0 : _options$minTouchDelt; // Common handlers
|
|
30
|
+
|
|
31
|
+
var handleUp = function handleUp() {
|
|
32
|
+
set(function (state) {
|
|
33
|
+
var deltaTime = Date.now() - state.startTime;
|
|
34
|
+
var xDelta = state.x - state.xInitial;
|
|
35
|
+
var yDelta = state.y - state.yInitial;
|
|
36
|
+
var xVelocity = calcVelocity(xDelta, deltaTime, state.xVelocity);
|
|
37
|
+
var yVelocity = calcVelocity(yDelta, deltaTime, state.yVelocity);
|
|
38
|
+
|
|
39
|
+
var newState = _extends({}, state, {
|
|
40
|
+
xVelocity: xVelocity,
|
|
41
|
+
yVelocity: yVelocity,
|
|
41
42
|
target: null,
|
|
42
43
|
down: false
|
|
43
44
|
});
|
|
@@ -46,15 +47,13 @@ export function gestureHandlers(set, containerRef, options = {}) {
|
|
|
46
47
|
});
|
|
47
48
|
};
|
|
48
49
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const newState = _extends({}, state, {
|
|
57
|
-
target,
|
|
50
|
+
var handleDown = function handleDown(e) {
|
|
51
|
+
var target = e.target,
|
|
52
|
+
pageX = e.pageX,
|
|
53
|
+
pageY = e.pageY;
|
|
54
|
+
set(function (state) {
|
|
55
|
+
var newState = _extends({}, state, {
|
|
56
|
+
target: target,
|
|
58
57
|
x: pageX,
|
|
59
58
|
xDelta: 0,
|
|
60
59
|
xDeltaPercent: 0,
|
|
@@ -81,23 +80,21 @@ export function gestureHandlers(set, containerRef, options = {}) {
|
|
|
81
80
|
deltaTime = 1;
|
|
82
81
|
}
|
|
83
82
|
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
var speed = deltaSpace / deltaTime;
|
|
84
|
+
var depr = 0.5 + Math.min(deltaTime / VELOCITY_DEPR_FACTOR, 0.5);
|
|
86
85
|
return speed * depr + prevVelocity * (1 - depr);
|
|
87
86
|
}
|
|
88
87
|
|
|
89
88
|
function handleMove(e) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
pageY
|
|
93
|
-
} = e;
|
|
89
|
+
var pageX = e.pageX,
|
|
90
|
+
pageY = e.pageY;
|
|
94
91
|
|
|
95
92
|
if (e.cancelable) {
|
|
96
93
|
// prevent drag & drop behaviour from browser
|
|
97
94
|
e.preventDefault && e.preventDefault();
|
|
98
95
|
}
|
|
99
96
|
|
|
100
|
-
set(state
|
|
97
|
+
set(function (state) {
|
|
101
98
|
function getDeltaSum(currentPos, initialPos, prevPos) {
|
|
102
99
|
if (state.scrollLocked || Math.abs(currentPos - initialPos) >= minTouchDelta) {
|
|
103
100
|
state.scrollLocked = true;
|
|
@@ -107,28 +104,28 @@ export function gestureHandlers(set, containerRef, options = {}) {
|
|
|
107
104
|
return 0;
|
|
108
105
|
}
|
|
109
106
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
xDelta,
|
|
123
|
-
xDeltaPercent,
|
|
107
|
+
var target = containerRef && containerRef.current || e.target;
|
|
108
|
+
var deltaTime = Date.now() - state.startTime;
|
|
109
|
+
var width = target ? target.offsetWidth : NaN;
|
|
110
|
+
var xDelta = state.xDelta + getDeltaSum(pageX, state.xInitial, state.x);
|
|
111
|
+
var xDeltaPercent = xDelta * 100 / width;
|
|
112
|
+
var xVelocity = calcVelocity(xDelta, deltaTime, state.xVelocity);
|
|
113
|
+
var height = target ? target.offsetHeight : NaN;
|
|
114
|
+
var yDelta = state.yDelta + getDeltaSum(pageY, state.yInitial, state.y);
|
|
115
|
+
var yDeltaPercent = yDelta * 100 / height;
|
|
116
|
+
var yVelocity = calcVelocity(yDelta, deltaTime, state.yVelocity);
|
|
117
|
+
|
|
118
|
+
var newState = _extends({}, state, {
|
|
119
|
+
xDelta: xDelta,
|
|
120
|
+
xDeltaPercent: xDeltaPercent,
|
|
124
121
|
x: pageX,
|
|
125
122
|
xPrev: state.x,
|
|
126
|
-
xVelocity,
|
|
127
|
-
yDelta,
|
|
128
|
-
yDeltaPercent,
|
|
123
|
+
xVelocity: xVelocity,
|
|
124
|
+
yDelta: yDelta,
|
|
125
|
+
yDeltaPercent: yDeltaPercent,
|
|
129
126
|
y: pageY,
|
|
130
127
|
yPrev: state.y,
|
|
131
|
-
yVelocity
|
|
128
|
+
yVelocity: yVelocity
|
|
132
129
|
});
|
|
133
130
|
|
|
134
131
|
return newState;
|
|
@@ -149,9 +146,7 @@ export function gestureHandlers(set, containerRef, options = {}) {
|
|
|
149
146
|
|
|
150
147
|
function handleTouchStart(e) {
|
|
151
148
|
// making sure we're not dragging the element when more than one finger press the screen
|
|
152
|
-
|
|
153
|
-
touches
|
|
154
|
-
} = e;
|
|
149
|
+
var touches = e.touches;
|
|
155
150
|
|
|
156
151
|
if (touches.length > 1) {
|
|
157
152
|
return;
|
|
@@ -202,19 +197,20 @@ export function gestureHandlers(set, containerRef, options = {}) {
|
|
|
202
197
|
onTouchStart: handleTouchStart
|
|
203
198
|
};
|
|
204
199
|
}
|
|
205
|
-
export
|
|
206
|
-
|
|
200
|
+
export var useGestureHandlers = function useGestureHandlers(containerRef, onGesture) {
|
|
201
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
202
|
+
var state = useRef(_extends({}, initialGestureHandlersState));
|
|
207
203
|
|
|
208
|
-
|
|
204
|
+
var set = function set(cb) {
|
|
209
205
|
state.current = cb(state.current);
|
|
210
206
|
onGesture && onGesture(state.current);
|
|
211
207
|
return state.current;
|
|
212
208
|
};
|
|
213
209
|
|
|
214
|
-
|
|
210
|
+
var handlers = gestureHandlers(set, containerRef, options);
|
|
215
211
|
return {
|
|
216
212
|
state: state.current,
|
|
217
|
-
handlers
|
|
213
|
+
handlers: handlers
|
|
218
214
|
};
|
|
219
215
|
};
|
|
220
216
|
//# sourceMappingURL=useGestureHandlers.js.map
|