@hanzogui/floating 3.0.5 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Floating.cjs +7 -5
- package/dist/cjs/Floating.native.js +18 -16
- package/dist/cjs/Floating.native.js.map +1 -1
- package/dist/cjs/index.cjs +28 -26
- package/dist/cjs/index.native.js +28 -26
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/interactions/PopupTriggerMap.cjs +21 -12
- package/dist/cjs/interactions/PopupTriggerMap.native.js +51 -27
- package/dist/cjs/interactions/PopupTriggerMap.native.js.map +1 -1
- package/dist/cjs/interactions/createFloatingEvents.cjs +21 -12
- package/dist/cjs/interactions/createFloatingEvents.native.js +22 -13
- package/dist/cjs/interactions/createFloatingEvents.native.js.map +1 -1
- package/dist/cjs/interactions/safePolygon.cjs +213 -131
- package/dist/cjs/interactions/safePolygon.native.js +182 -103
- package/dist/cjs/interactions/safePolygon.native.js.map +1 -1
- package/dist/cjs/interactions/types.cjs +7 -5
- package/dist/cjs/interactions/types.native.js +7 -5
- package/dist/cjs/interactions/types.native.js.map +1 -1
- package/dist/cjs/interactions/useClick.cjs +91 -49
- package/dist/cjs/interactions/useClick.native.js +96 -54
- package/dist/cjs/interactions/useClick.native.js.map +1 -1
- package/dist/cjs/interactions/useDelayGroup.cjs +63 -44
- package/dist/cjs/interactions/useDelayGroup.native.js +74 -58
- package/dist/cjs/interactions/useDelayGroup.native.js.map +1 -1
- package/dist/cjs/interactions/useFocus.cjs +73 -44
- package/dist/cjs/interactions/useFocus.native.js +75 -49
- package/dist/cjs/interactions/useFocus.native.js.map +1 -1
- package/dist/cjs/interactions/useHover.cjs +242 -109
- package/dist/cjs/interactions/useHover.native.js +268 -143
- package/dist/cjs/interactions/useHover.native.js.map +1 -1
- package/dist/cjs/interactions/useInnerOffset.cjs +88 -64
- package/dist/cjs/interactions/useInnerOffset.native.js +88 -65
- package/dist/cjs/interactions/useInnerOffset.native.js.map +1 -1
- package/dist/cjs/interactions/useInteractions.cjs +60 -31
- package/dist/cjs/interactions/useInteractions.native.js +133 -81
- package/dist/cjs/interactions/useInteractions.native.js.map +1 -1
- package/dist/cjs/interactions/useListNavigation.cjs +346 -181
- package/dist/cjs/interactions/useListNavigation.native.js +350 -214
- package/dist/cjs/interactions/useListNavigation.native.js.map +1 -1
- package/dist/cjs/interactions/useRole.cjs +83 -73
- package/dist/cjs/interactions/useRole.native.js +107 -99
- package/dist/cjs/interactions/useRole.native.js.map +1 -1
- package/dist/cjs/interactions/useTypeahead.cjs +115 -65
- package/dist/cjs/interactions/useTypeahead.native.js +122 -77
- package/dist/cjs/interactions/useTypeahead.native.js.map +1 -1
- package/dist/cjs/interactions/utils.cjs +68 -38
- package/dist/cjs/interactions/utils.native.js +93 -54
- package/dist/cjs/interactions/utils.native.js.map +1 -1
- package/dist/cjs/middleware/inner.cjs +80 -67
- package/dist/cjs/middleware/inner.native.js +87 -76
- package/dist/cjs/middleware/inner.native.js.map +1 -1
- package/dist/cjs/useFloating.cjs +48 -45
- package/dist/cjs/useFloating.native.js +50 -48
- package/dist/cjs/useFloating.native.js.map +1 -1
- package/dist/esm/Floating.native.js +5 -5
- package/dist/esm/Floating.native.js.map +1 -1
- package/dist/esm/interactions/PopupTriggerMap.mjs +9 -2
- package/dist/esm/interactions/PopupTriggerMap.mjs.map +1 -1
- package/dist/esm/interactions/PopupTriggerMap.native.js +39 -17
- package/dist/esm/interactions/PopupTriggerMap.native.js.map +1 -1
- package/dist/esm/interactions/createFloatingEvents.mjs +9 -2
- package/dist/esm/interactions/createFloatingEvents.mjs.map +1 -1
- package/dist/esm/interactions/createFloatingEvents.native.js +10 -3
- package/dist/esm/interactions/createFloatingEvents.native.js.map +1 -1
- package/dist/esm/interactions/safePolygon.mjs +201 -121
- package/dist/esm/interactions/safePolygon.mjs.map +1 -1
- package/dist/esm/interactions/safePolygon.native.js +170 -93
- package/dist/esm/interactions/safePolygon.native.js.map +1 -1
- package/dist/esm/interactions/useClick.mjs +79 -39
- package/dist/esm/interactions/useClick.mjs.map +1 -1
- package/dist/esm/interactions/useClick.native.js +82 -42
- package/dist/esm/interactions/useClick.native.js.map +1 -1
- package/dist/esm/interactions/useDelayGroup.mjs +39 -22
- package/dist/esm/interactions/useDelayGroup.mjs.map +1 -1
- package/dist/esm/interactions/useDelayGroup.native.js +42 -28
- package/dist/esm/interactions/useDelayGroup.native.js.map +1 -1
- package/dist/esm/interactions/useFocus.mjs +59 -32
- package/dist/esm/interactions/useFocus.mjs.map +1 -1
- package/dist/esm/interactions/useFocus.native.js +61 -37
- package/dist/esm/interactions/useFocus.native.js.map +1 -1
- package/dist/esm/interactions/useHover.mjs +215 -84
- package/dist/esm/interactions/useHover.mjs.map +1 -1
- package/dist/esm/interactions/useHover.native.js +240 -117
- package/dist/esm/interactions/useHover.native.js.map +1 -1
- package/dist/esm/interactions/useInnerOffset.mjs +61 -39
- package/dist/esm/interactions/useInnerOffset.mjs.map +1 -1
- package/dist/esm/interactions/useInnerOffset.native.js +61 -40
- package/dist/esm/interactions/useInnerOffset.native.js.map +1 -1
- package/dist/esm/interactions/useInteractions.mjs +48 -21
- package/dist/esm/interactions/useInteractions.mjs.map +1 -1
- package/dist/esm/interactions/useInteractions.native.js +121 -71
- package/dist/esm/interactions/useInteractions.native.js.map +1 -1
- package/dist/esm/interactions/useListNavigation.mjs +331 -168
- package/dist/esm/interactions/useListNavigation.mjs.map +1 -1
- package/dist/esm/interactions/useListNavigation.native.js +335 -201
- package/dist/esm/interactions/useListNavigation.native.js.map +1 -1
- package/dist/esm/interactions/useRole.mjs +59 -51
- package/dist/esm/interactions/useRole.mjs.map +1 -1
- package/dist/esm/interactions/useRole.native.js +82 -76
- package/dist/esm/interactions/useRole.native.js.map +1 -1
- package/dist/esm/interactions/useTypeahead.mjs +100 -52
- package/dist/esm/interactions/useTypeahead.mjs.map +1 -1
- package/dist/esm/interactions/useTypeahead.native.js +107 -64
- package/dist/esm/interactions/useTypeahead.native.js.map +1 -1
- package/dist/esm/interactions/utils.mjs +56 -28
- package/dist/esm/interactions/utils.mjs.map +1 -1
- package/dist/esm/interactions/utils.native.js +81 -44
- package/dist/esm/interactions/utils.native.js.map +1 -1
- package/dist/esm/middleware/inner.mjs +54 -43
- package/dist/esm/middleware/inner.mjs.map +1 -1
- package/dist/esm/middleware/inner.native.js +61 -52
- package/dist/esm/middleware/inner.native.js.map +1 -1
- package/dist/esm/useFloating.mjs +22 -21
- package/dist/esm/useFloating.mjs.map +1 -1
- package/dist/esm/useFloating.native.js +24 -24
- package/dist/esm/useFloating.native.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useRef","isHTMLElement","isMouseLikePointerType","isTypeableElement","isButtonTarget","event","target","tagName","isAnchorTarget","isSpaceIgnored","element","useClick","context","props","open","onOpenChange","dataRef","elements","domReference","enabled","eventOption","toggle","ignoreMouse","keyboardHandlers","stickIfOpen","pointerTypeRef","didKeyDownRef","reference","onPointerDown","current","pointerType","onMouseDown","button","openEvent","type","nativeEvent","preventDefault","onClick","onKeyDown","defaultPrevented","key","onKeyUp"],"sources":["../../../src/interactions/useClick.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,EAASC,MAAA,QAAc;AAChC,SAASC,aAAA,EAAeC,sBAAA,EAAwBC,iBAAA,QAAyB;AAGzE,SAASC,eAAeC,KAAA,EAAqC;EAC3D,OAAOJ,aAAA,CAAcI,KAAA,CAAMC,MAAM,KAAKD,KAAA,CAAMC,MAAA,CAAOC,OAAA,KAAY;AACjE;AAEA,SAASC,eAAeH,KAAA,EAAqC;EAC3D,OAAOJ,aAAA,CAAcI,KAAA,CAAMC,MAAM,KAAKD,KAAA,CAAMC,MAAA,CAAOC,OAAA,KAAY;AACjE;AAEA,SAASE,eAAeC,OAAA,EAAyB;EAC/C,OAAOP,iBAAA,CAAkBO,OAAO;AAClC;AAGO,SAASC,SACdC,OAAA,EACAC,KAAA,GAAuB,CAAC,GACV;EACd,MAAM;
|
|
1
|
+
{"version":3,"names":["useMemo","useRef","isHTMLElement","isMouseLikePointerType","isTypeableElement","isButtonTarget","event","target","tagName","isAnchorTarget","isSpaceIgnored","element","useClick","context","props","open","onOpenChange","dataRef","elements","domReference","enabled","eventOption","toggle","ignoreMouse","keyboardHandlers","stickIfOpen","pointerTypeRef","didKeyDownRef","reference","onPointerDown","current","pointerType","onMouseDown","button","openEvent","type","nativeEvent","preventDefault","onClick","onKeyDown","defaultPrevented","key","onKeyUp"],"sources":["../../../src/interactions/useClick.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -10,50 +10,90 @@ function isSpaceIgnored(element) {
|
|
|
10
10
|
return isTypeableElement(element);
|
|
11
11
|
}
|
|
12
12
|
function useClick(context) {
|
|
13
|
-
var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
13
|
+
var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
14
|
+
var {
|
|
15
|
+
open,
|
|
16
|
+
onOpenChange,
|
|
17
|
+
dataRef,
|
|
18
|
+
elements: {
|
|
19
|
+
domReference
|
|
20
|
+
}
|
|
21
|
+
} = context;
|
|
22
|
+
var {
|
|
23
|
+
enabled = true,
|
|
24
|
+
event: eventOption = "click",
|
|
25
|
+
toggle = true,
|
|
26
|
+
ignoreMouse = false,
|
|
27
|
+
keyboardHandlers = true,
|
|
28
|
+
stickIfOpen = true
|
|
29
|
+
} = props;
|
|
30
|
+
var pointerTypeRef = useRef(void 0);
|
|
31
|
+
var didKeyDownRef = useRef(false);
|
|
32
|
+
var reference = useMemo(function () {
|
|
33
|
+
return {
|
|
34
|
+
onPointerDown(event) {
|
|
35
|
+
pointerTypeRef.current = event.pointerType;
|
|
36
|
+
},
|
|
37
|
+
onMouseDown(event) {
|
|
38
|
+
var pointerType = pointerTypeRef.current;
|
|
39
|
+
if (event.button !== 0) return;
|
|
40
|
+
if (eventOption === "click") return;
|
|
41
|
+
if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;
|
|
42
|
+
if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "mousedown" : true)) {
|
|
43
|
+
onOpenChange(false, event.nativeEvent || event, "click");
|
|
44
|
+
} else {
|
|
45
|
+
event.preventDefault();
|
|
46
|
+
onOpenChange(true, event.nativeEvent || event, "click");
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
onClick(event) {
|
|
50
|
+
var pointerType = pointerTypeRef.current;
|
|
51
|
+
if (eventOption === "mousedown" && pointerTypeRef.current) {
|
|
52
|
+
pointerTypeRef.current = void 0;
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;
|
|
56
|
+
if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "click" : true)) {
|
|
57
|
+
onOpenChange(false, event.nativeEvent || event, "click");
|
|
58
|
+
} else {
|
|
59
|
+
onOpenChange(true, event.nativeEvent || event, "click");
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
onKeyDown(event) {
|
|
63
|
+
pointerTypeRef.current = void 0;
|
|
64
|
+
if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (event.key === " " && !isSpaceIgnored(domReference)) {
|
|
68
|
+
event.preventDefault();
|
|
69
|
+
didKeyDownRef.current = true;
|
|
70
|
+
}
|
|
71
|
+
if (isAnchorTarget(event)) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (event.key === "Enter") {
|
|
75
|
+
if (open && toggle) {
|
|
76
|
+
onOpenChange(false, event.nativeEvent || event, "click");
|
|
77
|
+
} else {
|
|
78
|
+
onOpenChange(true, event.nativeEvent || event, "click");
|
|
46
79
|
}
|
|
47
|
-
isMouseLikePointerType(pointerType, !0) && ignoreMouse || (open && toggle && (!(dataRef.current.openEvent && stickIfOpen) || dataRef.current.openEvent.type === "click") ? onOpenChange(!1, event.nativeEvent || event, "click") : onOpenChange(!0, event.nativeEvent || event, "click"));
|
|
48
|
-
},
|
|
49
|
-
onKeyDown(event) {
|
|
50
|
-
pointerTypeRef.current = void 0, !(event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) && (event.key === " " && !isSpaceIgnored(domReference) && (event.preventDefault(), didKeyDownRef.current = !0), !isAnchorTarget(event) && event.key === "Enter" && onOpenChange(!(open && toggle), event.nativeEvent || event, "click"));
|
|
51
|
-
},
|
|
52
|
-
onKeyUp(event) {
|
|
53
|
-
event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference) || event.key === " " && didKeyDownRef.current && (didKeyDownRef.current = !1, onOpenChange(!(open && toggle), event.nativeEvent || event, "click"));
|
|
54
80
|
}
|
|
55
|
-
}
|
|
56
|
-
|
|
81
|
+
},
|
|
82
|
+
onKeyUp(event) {
|
|
83
|
+
if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (event.key === " " && didKeyDownRef.current) {
|
|
87
|
+
didKeyDownRef.current = false;
|
|
88
|
+
if (open && toggle) {
|
|
89
|
+
onOpenChange(false, event.nativeEvent || event, "click");
|
|
90
|
+
} else {
|
|
91
|
+
onOpenChange(true, event.nativeEvent || event, "click");
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
}, [dataRef, domReference, eventOption, ignoreMouse, keyboardHandlers, onOpenChange, open, stickIfOpen, toggle]);
|
|
57
97
|
return useMemo(function () {
|
|
58
98
|
return enabled ? {
|
|
59
99
|
reference
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useRef","isHTMLElement","isMouseLikePointerType","isTypeableElement","isButtonTarget","event","target","tagName","isAnchorTarget","isSpaceIgnored","element","useClick","context","props","arguments","length","open","onOpenChange","dataRef","elements","domReference","enabled","eventOption","toggle","ignoreMouse","keyboardHandlers","stickIfOpen","pointerTypeRef","didKeyDownRef","reference","onPointerDown","current","pointerType","onMouseDown","button","openEvent","type","nativeEvent","preventDefault","onClick","onKeyDown","defaultPrevented","key","onKeyUp"],"sources":["../../../src/interactions/useClick.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAA,EAASC,MAAA,QAAc;AAChC,SAASC,aAAA,EAAeC,sBAAA,EAAwBC,iBAAA,QAAyB;AAGzE,SAASC,eAAeC,KAAA,EAAqC;EAC3D,OAAOJ,aAAA,CAAcI,KAAA,CAAMC,MAAM,KAAKD,KAAA,CAAMC,MAAA,CAAOC,OAAA,KAAY;AACjE;AAEA,SAASC,eAAeH,KAAA,EAAqC;EAC3D,OAAOJ,aAAA,CAAcI,KAAA,CAAMC,MAAM,KAAKD,KAAA,CAAMC,MAAA,CAAOC,OAAA,KAAY;AACjE;AAEA,SAASE,eAAeC,OAAA,EAAyB;EAC/C,OAAOP,iBAAA,CAAkBO,OAAO;AAClC;AAGO,SAASC,SACdC,OAAA,EACA;EAEA,IAAAC,KAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;
|
|
1
|
+
{"version":3,"names":["useMemo","useRef","isHTMLElement","isMouseLikePointerType","isTypeableElement","isButtonTarget","event","target","tagName","isAnchorTarget","isSpaceIgnored","element","useClick","context","props","arguments","length","open","onOpenChange","dataRef","elements","domReference","enabled","eventOption","toggle","ignoreMouse","keyboardHandlers","stickIfOpen","pointerTypeRef","didKeyDownRef","reference","onPointerDown","current","pointerType","onMouseDown","button","openEvent","type","nativeEvent","preventDefault","onClick","onKeyDown","defaultPrevented","key","onKeyUp"],"sources":["../../../src/interactions/useClick.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -14,14 +14,21 @@ function FloatingDelayGroup({
|
|
|
14
14
|
delay,
|
|
15
15
|
timeoutMs = 0
|
|
16
16
|
}) {
|
|
17
|
-
const [currentId, setCurrentIdRaw] = React.useState(null)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
const [currentId, setCurrentIdRaw] = React.useState(null);
|
|
18
|
+
const timeoutRef = React.useRef(void 0);
|
|
19
|
+
const setCurrentId = React.useCallback(id => {
|
|
20
|
+
clearTimeout(timeoutRef.current);
|
|
21
|
+
if (id == null && timeoutMs > 0) {
|
|
22
|
+
timeoutRef.current = setTimeout(() => {
|
|
21
23
|
setCurrentIdRaw(null);
|
|
22
|
-
}, timeoutMs)
|
|
23
|
-
}
|
|
24
|
-
|
|
24
|
+
}, timeoutMs);
|
|
25
|
+
} else {
|
|
26
|
+
setCurrentIdRaw(id);
|
|
27
|
+
}
|
|
28
|
+
}, [timeoutMs]);
|
|
29
|
+
React.useEffect(() => {
|
|
30
|
+
return () => clearTimeout(timeoutRef.current);
|
|
31
|
+
}, []);
|
|
25
32
|
const value = React.useMemo(() => ({
|
|
26
33
|
currentId,
|
|
27
34
|
setCurrentId,
|
|
@@ -35,26 +42,36 @@ function FloatingDelayGroup({
|
|
|
35
42
|
}
|
|
36
43
|
function useDelayGroup(context, options = {}) {
|
|
37
44
|
const {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
!context.open && groupContext.currentId === id
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}, [
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
id
|
|
46
|
+
} = options;
|
|
47
|
+
const groupContext = React.useContext(DelayGroupContext);
|
|
48
|
+
React.useEffect(() => {
|
|
49
|
+
if (!context.open && groupContext.currentId === id) {
|
|
50
|
+
groupContext.setCurrentId(null);
|
|
51
|
+
}
|
|
52
|
+
}, [context.open, id]);
|
|
53
|
+
React.useEffect(() => {
|
|
54
|
+
if (groupContext.currentId != null && groupContext.currentId !== id && context.open) {
|
|
55
|
+
context.onOpenChange(false);
|
|
56
|
+
}
|
|
57
|
+
}, [groupContext.currentId, id, context.open]);
|
|
58
|
+
if (groupContext.currentId != null) {
|
|
59
|
+
return {
|
|
60
|
+
delay: {
|
|
61
|
+
open: 1,
|
|
62
|
+
close: getClose(groupContext.initialDelay)
|
|
63
|
+
},
|
|
64
|
+
currentId: groupContext.currentId
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
52
68
|
delay: groupContext.initialDelay,
|
|
53
69
|
currentId: groupContext.currentId
|
|
54
70
|
};
|
|
55
71
|
}
|
|
56
72
|
function getClose(delay) {
|
|
57
|
-
|
|
73
|
+
if (typeof delay === "number") return delay;
|
|
74
|
+
return delay?.close ?? 0;
|
|
58
75
|
}
|
|
59
76
|
export { FloatingDelayGroup, useDelayGroup, useDelayGroupContext };
|
|
60
77
|
//# sourceMappingURL=useDelayGroup.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","DelayGroupContext","createContext","currentId","setCurrentId","delay","timeoutMs","initialDelay","useDelayGroupContext","useContext","FloatingDelayGroup","children","setCurrentIdRaw","useState","timeoutRef","useRef","useCallback","id","clearTimeout","current","setTimeout","useEffect","value","useMemo","createElement","Provider","useDelayGroup","context","options","groupContext","open","onOpenChange","close","getClose"],"sources":["../../../src/interactions/useDelayGroup.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAWvB,MAAMC,iBAAA,GAAoBD,KAAA,CAAME,aAAA,CAAsC;EACpEC,SAAA,EAAW;EACXC,YAAA,EAAcA,CAAA,KAAM,CAAC;EACrBC,KAAA,EAAO;EACPC,SAAA,EAAW;EACXC,YAAA,EAAc;AAChB,CAAC;AAEM,SAASC,qBAAA,EAAuB;EACrC,OAAOR,KAAA,CAAMS,UAAA,CAAWR,iBAAiB;AAC3C;AAKO,SAASS,mBAAmB;EACjCC,QAAA;EACAN,KAAA;EACAC,SAAA,GAAY;AACd,GAIG;EACD,MAAM,CAACH,SAAA,EAAWS,eAAe,IAAIZ,KAAA,CAAMa,QAAA,CAAoC,IAAI;
|
|
1
|
+
{"version":3,"names":["React","DelayGroupContext","createContext","currentId","setCurrentId","delay","timeoutMs","initialDelay","useDelayGroupContext","useContext","FloatingDelayGroup","children","setCurrentIdRaw","useState","timeoutRef","useRef","useCallback","id","clearTimeout","current","setTimeout","useEffect","value","useMemo","createElement","Provider","useDelayGroup","context","options","groupContext","open","onOpenChange","close","getClose"],"sources":["../../../src/interactions/useDelayGroup.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -11,17 +11,22 @@ function useDelayGroupContext() {
|
|
|
11
11
|
}
|
|
12
12
|
function FloatingDelayGroup(param) {
|
|
13
13
|
var {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
children,
|
|
15
|
+
delay,
|
|
16
|
+
timeoutMs = 0
|
|
17
|
+
} = param;
|
|
18
|
+
var [currentId, setCurrentIdRaw] = React.useState(null);
|
|
19
|
+
var timeoutRef = React.useRef(void 0);
|
|
20
|
+
var setCurrentId = React.useCallback(function (id) {
|
|
21
|
+
clearTimeout(timeoutRef.current);
|
|
22
|
+
if (id == null && timeoutMs > 0) {
|
|
23
|
+
timeoutRef.current = setTimeout(function () {
|
|
22
24
|
setCurrentIdRaw(null);
|
|
23
|
-
}, timeoutMs)
|
|
24
|
-
}
|
|
25
|
+
}, timeoutMs);
|
|
26
|
+
} else {
|
|
27
|
+
setCurrentIdRaw(id);
|
|
28
|
+
}
|
|
29
|
+
}, [timeoutMs]);
|
|
25
30
|
React.useEffect(function () {
|
|
26
31
|
return function () {
|
|
27
32
|
return clearTimeout(timeoutRef.current);
|
|
@@ -41,30 +46,39 @@ function FloatingDelayGroup(param) {
|
|
|
41
46
|
}, children);
|
|
42
47
|
}
|
|
43
48
|
function useDelayGroup(context) {
|
|
44
|
-
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
!context.open && groupContext.currentId === id
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}, [
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
49
|
+
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
50
|
+
var {
|
|
51
|
+
id
|
|
52
|
+
} = options;
|
|
53
|
+
var groupContext = React.useContext(DelayGroupContext);
|
|
54
|
+
React.useEffect(function () {
|
|
55
|
+
if (!context.open && groupContext.currentId === id) {
|
|
56
|
+
groupContext.setCurrentId(null);
|
|
57
|
+
}
|
|
58
|
+
}, [context.open, id]);
|
|
59
|
+
React.useEffect(function () {
|
|
60
|
+
if (groupContext.currentId != null && groupContext.currentId !== id && context.open) {
|
|
61
|
+
context.onOpenChange(false);
|
|
62
|
+
}
|
|
63
|
+
}, [groupContext.currentId, id, context.open]);
|
|
64
|
+
if (groupContext.currentId != null) {
|
|
65
|
+
return {
|
|
66
|
+
delay: {
|
|
67
|
+
open: 1,
|
|
68
|
+
close: getClose(groupContext.initialDelay)
|
|
69
|
+
},
|
|
70
|
+
currentId: groupContext.currentId
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
60
74
|
delay: groupContext.initialDelay,
|
|
61
75
|
currentId: groupContext.currentId
|
|
62
76
|
};
|
|
63
77
|
}
|
|
64
78
|
function getClose(delay) {
|
|
65
|
-
if (typeof delay
|
|
79
|
+
if (typeof delay === "number") return delay;
|
|
66
80
|
var _delay_close;
|
|
67
|
-
return (_delay_close = delay
|
|
81
|
+
return (_delay_close = delay === null || delay === void 0 ? void 0 : delay.close) !== null && _delay_close !== void 0 ? _delay_close : 0;
|
|
68
82
|
}
|
|
69
83
|
export { FloatingDelayGroup, useDelayGroup, useDelayGroupContext };
|
|
70
84
|
//# sourceMappingURL=useDelayGroup.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","DelayGroupContext","createContext","currentId","setCurrentId","delay","timeoutMs","initialDelay","useDelayGroupContext","useContext","FloatingDelayGroup","param","children","setCurrentIdRaw","useState","timeoutRef","useRef","useCallback","id","clearTimeout","current","setTimeout","useEffect","value","useMemo","createElement","Provider","useDelayGroup","context","options","arguments","length","groupContext","open","onOpenChange"],"sources":["../../../src/interactions/useDelayGroup.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAWvB,IAAAC,iBAAM,GAAAD,KAAoB,CAAAE,aAAM;EAC9BC,SAAA,EAAW;EACXC,YAAA,EAAc,SAAAA,CAAA,EAAM,CAAC;EACrBC,KAAA,EAAO;EACPC,SAAA,EAAW;EACXC,YAAA,EAAc;AAChB,CAAC;AAEM,SAASC,qBAAA,EAAuB;EACrC,OAAOR,KAAA,CAAMS,UAAA,CAAWR,iBAAiB;AAC3C;AAKO,SAASS,mBAAmBC,KAAA;EACjC;
|
|
1
|
+
{"version":3,"names":["React","DelayGroupContext","createContext","currentId","setCurrentId","delay","timeoutMs","initialDelay","useDelayGroupContext","useContext","FloatingDelayGroup","param","children","setCurrentIdRaw","useState","timeoutRef","useRef","useCallback","id","clearTimeout","current","setTimeout","useEffect","value","useMemo","createElement","Provider","useDelayGroup","context","options","arguments","length","groupContext","open","onOpenChange"],"sources":["../../../src/interactions/useDelayGroup.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAYA,KAAA,MAAW;AAWvB,IAAAC,iBAAM,GAAAD,KAAoB,CAAAE,aAAM;EAC9BC,SAAA,EAAW;EACXC,YAAA,EAAc,SAAAA,CAAA,EAAM,CAAC;EACrBC,KAAA,EAAO;EACPC,SAAA,EAAW;EACXC,YAAA,EAAc;AAChB,CAAC;AAEM,SAASC,qBAAA,EAAuB;EACrC,OAAOR,KAAA,CAAMS,UAAA,CAAWR,iBAAiB;AAC3C;AAKO,SAASS,mBAAmBC,KAAA;EACjC;IAAAC,QAAA;IAAAP,KAAA;IAAAC,SAAA;EAAA,IAAAK,KAAA;EACA,KAAAR,SAAA,EAAAU,eAAA,IAAAb,KAAA,CAAAc,QAAA;EACA,IAAAC,UAAY,GAAAf,KAAA,CAAAgB,MAAA;EACd,IAIGZ,YAAA,GAAAJ,KAAA,CAAAiB,WAAA,WAAAC,EAAA;IACDC,YAAO,CAAAJ,UAAW,CAAAK,OAAe;IACjC,IAAMF,EAAA,YAAaZ,SAAM,GAAsC;MAE/DS,UAAM,CAAAK,OAAe,GAAAC,UAAM;QACxBR,eAAkC;MACjC,GAAAP,SAAA,CAAa;IACb,OAAI;MAEFO,eAAW,CAAAK,EAAA;IACT;EAAoB,IACVZ,SACP,CACL;EAAkBN,KACpB,CAAAsB,SAAA;IACF;MACC,OAAAH,YAAS,CAAAJ,UAAA,CAAAK,OAAA;IACZ;EAEA,MAAM;EACJ,IAAAG,KAAO,GAAAvB,KAAM,CAAAwB,OAAA,aAAa;IAC5B,OAAK;MAELrB,SAAM;MACJC,YAAO;MACLC,KAAA;MACAC,SAAA;MACAC,YAAA,EAAAF;IAAA;EACA,IAEFF,SAAA,EACAC,YAAY,EACdC,KAAA,EAEAC,SAAO,CACT;EAIO,OAASN,KAAA,CAAAyB,aACd,CAAAxB,iBAEwD,CAAAyB,QAAA;IACxDH;EACA,GAAAX,QAAM;AAGN;AACE,SAAKe,aAAQA,CAAAC,OAAQ;EACnB,IAAAC,OAAA,GAAAC,SAAa,CAAAC,MAAa,IAAI,IAAAD,SAAA,iBAAAA,SAAA;EAAA,IAChC;IAAAZ;EAAA,IAAAW,OAAA;EACF,IAAIG,YAAQ,GAAMhC,KAAG,CAAAS,UAAA,CAAAR,iBAAA;EAIrBD,KAAA,CAAMsB,SAAA,CAAU,YAAM;IACpB,IAAI,CAAAM,OAAA,CAAAK,IAAa,IAAAD,YAAa,CAAA7B,SAAQ,KAAAe,EAAA,EAAa;MACjDc,YAAQ,CAAA5B,YAAa,CAAK;IAC5B;EACF,GAAG,CAIHwB,OAAI,CAAAK,IAAA,EACFf,EAAA,CAAO;EACwDlB,KAC7D,CAAAsB,SAAW;IACb,IAAAU,YAAA,CAAA7B,SAAA,YAAA6B,YAAA,CAAA7B,SAAA,KAAAe,EAAA,IAAAU,OAAA,CAAAK,IAAA;MACFL,OAAA,CAAAM,YAAA;IAEA;EAAO,GACL,CACAF,YAAW,CAAA7B,SAAA,EACbe,EAAA,EACFU,OAAA,CAAAK,IAAA,CAEA;EACE,IAAID,YAAO,CAAA7B,SAAU,IAAU;IAC/B,OAAO;MACTE,KAAA","ignoreList":[]}
|
|
@@ -5,68 +5,95 @@ function isMacSafari() {
|
|
|
5
5
|
}
|
|
6
6
|
function useFocus(context, props = {}) {
|
|
7
7
|
const {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
8
|
+
open,
|
|
9
|
+
onOpenChange,
|
|
10
|
+
events,
|
|
11
|
+
dataRef,
|
|
12
|
+
elements
|
|
13
|
+
} = context;
|
|
14
|
+
const {
|
|
15
|
+
enabled = true,
|
|
16
|
+
visibleOnly = true
|
|
17
|
+
} = props;
|
|
18
|
+
const blockFocusRef = useRef(false);
|
|
19
|
+
const timeoutRef = useRef(-1);
|
|
20
|
+
const keyboardModalityRef = useRef(true);
|
|
21
21
|
useEffect(() => {
|
|
22
22
|
if (!enabled) return;
|
|
23
23
|
const win = getDocument(elements.domReference).defaultView || window;
|
|
24
24
|
function onBlur() {
|
|
25
|
-
!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))
|
|
25
|
+
if (!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))) {
|
|
26
|
+
blockFocusRef.current = true;
|
|
27
|
+
}
|
|
26
28
|
}
|
|
27
29
|
function onKeyDown() {
|
|
28
|
-
keyboardModalityRef.current =
|
|
30
|
+
keyboardModalityRef.current = true;
|
|
29
31
|
}
|
|
30
32
|
function onPointerDown() {
|
|
31
|
-
keyboardModalityRef.current =
|
|
33
|
+
keyboardModalityRef.current = false;
|
|
34
|
+
}
|
|
35
|
+
win.addEventListener("blur", onBlur);
|
|
36
|
+
if (isMacSafari()) {
|
|
37
|
+
win.addEventListener("keydown", onKeyDown, true);
|
|
38
|
+
win.addEventListener("pointerdown", onPointerDown, true);
|
|
32
39
|
}
|
|
33
|
-
return
|
|
34
|
-
win.removeEventListener("blur", onBlur)
|
|
40
|
+
return () => {
|
|
41
|
+
win.removeEventListener("blur", onBlur);
|
|
42
|
+
if (isMacSafari()) {
|
|
43
|
+
win.removeEventListener("keydown", onKeyDown, true);
|
|
44
|
+
win.removeEventListener("pointerdown", onPointerDown, true);
|
|
45
|
+
}
|
|
35
46
|
};
|
|
36
|
-
}, [elements.domReference, open, enabled])
|
|
37
|
-
|
|
47
|
+
}, [elements.domReference, open, enabled]);
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
if (!enabled) return;
|
|
50
|
+
if (!events) return;
|
|
38
51
|
function handleOpenChange({
|
|
39
52
|
reason
|
|
40
53
|
}) {
|
|
41
|
-
(reason === "reference-press" || reason === "escape-key")
|
|
54
|
+
if (reason === "reference-press" || reason === "escape-key") {
|
|
55
|
+
blockFocusRef.current = true;
|
|
56
|
+
}
|
|
42
57
|
}
|
|
43
|
-
|
|
58
|
+
events.on("openchange", handleOpenChange);
|
|
59
|
+
return () => {
|
|
44
60
|
events.off("openchange", handleOpenChange);
|
|
45
61
|
};
|
|
46
|
-
}, [events, enabled])
|
|
47
|
-
|
|
62
|
+
}, [events, enabled]);
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
return () => {
|
|
65
|
+
clearTimeoutIfSet(timeoutRef);
|
|
66
|
+
};
|
|
48
67
|
}, []);
|
|
49
68
|
const reference = useMemo(() => ({
|
|
50
69
|
onMouseLeave() {
|
|
51
|
-
blockFocusRef.current =
|
|
70
|
+
blockFocusRef.current = false;
|
|
52
71
|
},
|
|
53
72
|
onFocus(event) {
|
|
54
73
|
if (blockFocusRef.current) return;
|
|
55
74
|
const target = getTarget(event.nativeEvent);
|
|
56
75
|
if (visibleOnly && isElement(target)) {
|
|
57
76
|
if (isMacSafari() && !event.relatedTarget) {
|
|
58
|
-
if (!keyboardModalityRef.current && !isTypeableElement(target))
|
|
59
|
-
|
|
77
|
+
if (!keyboardModalityRef.current && !isTypeableElement(target)) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
} else if (!matchesFocusVisible(target)) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
60
83
|
}
|
|
61
|
-
onOpenChange(
|
|
84
|
+
onOpenChange(true, event.nativeEvent, "focus");
|
|
62
85
|
},
|
|
63
86
|
onBlur(event) {
|
|
64
|
-
blockFocusRef.current =
|
|
65
|
-
const relatedTarget = event.relatedTarget
|
|
66
|
-
|
|
87
|
+
blockFocusRef.current = false;
|
|
88
|
+
const relatedTarget = event.relatedTarget;
|
|
89
|
+
const nativeEvent = event.nativeEvent;
|
|
67
90
|
timeoutRef.current = window.setTimeout(() => {
|
|
68
91
|
const activeEl = activeElement(elements.domReference ? elements.domReference.ownerDocument : document);
|
|
69
|
-
!relatedTarget && activeEl === elements.domReference
|
|
92
|
+
if (!relatedTarget && activeEl === elements.domReference) return;
|
|
93
|
+
if (contains(context.refs.floating.current, activeEl) || contains(elements.domReference, activeEl)) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
onOpenChange(false, nativeEvent, "focus");
|
|
70
97
|
});
|
|
71
98
|
}
|
|
72
99
|
}), [context.refs.floating, elements.domReference, onOpenChange, visibleOnly]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useMemo","useRef","activeElement","clearTimeoutIfSet","contains","getDocument","getTarget","isElement","isHTMLElement","isMac","isSafari","isTypeableElement","matchesFocusVisible","isMacSafari","useFocus","context","props","open","onOpenChange","events","dataRef","elements","enabled","visibleOnly","blockFocusRef","timeoutRef","keyboardModalityRef","win","domReference","defaultView","window","onBlur","current","onKeyDown","onPointerDown","addEventListener","removeEventListener","handleOpenChange","reason","on","off","reference","onMouseLeave","onFocus","event","target","nativeEvent","relatedTarget","setTimeout","activeEl","ownerDocument","document","refs","floating"],"sources":["../../../src/interactions/useFocus.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,OAAA,EAASC,MAAA,QAAc;AAQ3C,SACEC,aAAA,EACAC,iBAAA,EACAC,QAAA,EACAC,WAAA,EACAC,SAAA,EACAC,SAAA,EACAC,aAAA,EACAC,KAAA,EACAC,QAAA,EACAC,iBAAA,EACAC,mBAAA,QACK;AAEP,SAASC,YAAA,EAAc;EACrB,OAAOJ,KAAA,CAAM,KAAKC,QAAA,CAAS;AAC7B;AAIO,SAASI,SACdC,OAAA,EACAC,KAAA,GAAuB,CAAC,GACV;EACd,MAAM;
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","useRef","activeElement","clearTimeoutIfSet","contains","getDocument","getTarget","isElement","isHTMLElement","isMac","isSafari","isTypeableElement","matchesFocusVisible","isMacSafari","useFocus","context","props","open","onOpenChange","events","dataRef","elements","enabled","visibleOnly","blockFocusRef","timeoutRef","keyboardModalityRef","win","domReference","defaultView","window","onBlur","current","onKeyDown","onPointerDown","addEventListener","removeEventListener","handleOpenChange","reason","on","off","reference","onMouseLeave","onFocus","event","target","nativeEvent","relatedTarget","setTimeout","activeEl","ownerDocument","document","refs","floating"],"sources":["../../../src/interactions/useFocus.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|