@tamagui/floating 2.0.0-rc.4 → 2.0.0-rc.40
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 +19 -13
- package/dist/cjs/Floating.native.js.map +1 -1
- package/dist/cjs/index.cjs +46 -13
- package/dist/cjs/index.native.js +46 -13
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/interactions/PopupTriggerMap.cjs +49 -0
- package/dist/cjs/interactions/PopupTriggerMap.native.js +97 -0
- package/dist/cjs/interactions/PopupTriggerMap.native.js.map +1 -0
- package/dist/cjs/interactions/createFloatingEvents.cjs +50 -0
- package/dist/cjs/interactions/createFloatingEvents.native.js +56 -0
- package/dist/cjs/interactions/createFloatingEvents.native.js.map +1 -0
- package/dist/cjs/interactions/safePolygon.cjs +273 -0
- package/dist/cjs/interactions/safePolygon.native.js +284 -0
- package/dist/cjs/interactions/safePolygon.native.js.map +1 -0
- package/dist/cjs/interactions/types.cjs +18 -0
- package/dist/cjs/interactions/types.native.js +21 -0
- package/dist/cjs/interactions/types.native.js.map +1 -0
- package/dist/cjs/interactions/useClick.cjs +124 -0
- package/dist/cjs/interactions/useClick.native.js +132 -0
- package/dist/cjs/interactions/useClick.native.js.map +1 -0
- package/dist/cjs/interactions/useDelayGroup.cjs +115 -0
- package/dist/cjs/interactions/useDelayGroup.native.js +125 -0
- package/dist/cjs/interactions/useDelayGroup.native.js.map +1 -0
- package/dist/cjs/interactions/useFocus.cjs +130 -0
- package/dist/cjs/interactions/useFocus.native.js +139 -0
- package/dist/cjs/interactions/useFocus.native.js.map +1 -0
- package/dist/cjs/interactions/useHover.cjs +357 -0
- package/dist/cjs/interactions/useHover.native.js +373 -0
- package/dist/cjs/interactions/useHover.native.js.map +1 -0
- package/dist/cjs/interactions/useInnerOffset.cjs +128 -0
- package/dist/cjs/interactions/useInnerOffset.native.js +141 -0
- package/dist/cjs/interactions/useInnerOffset.native.js.map +1 -0
- package/dist/cjs/interactions/useInteractions.cjs +105 -0
- package/dist/cjs/interactions/useInteractions.native.js +216 -0
- package/dist/cjs/interactions/useInteractions.native.js.map +1 -0
- package/dist/cjs/interactions/useListNavigation.cjs +418 -0
- package/dist/cjs/interactions/useListNavigation.native.js +433 -0
- package/dist/cjs/interactions/useListNavigation.native.js.map +1 -0
- package/dist/cjs/interactions/useRole.cjs +122 -0
- package/dist/cjs/interactions/useRole.native.js +136 -0
- package/dist/cjs/interactions/useRole.native.js.map +1 -0
- package/dist/cjs/interactions/useTypeahead.cjs +143 -0
- package/dist/cjs/interactions/useTypeahead.native.js +159 -0
- package/dist/cjs/interactions/useTypeahead.native.js.map +1 -0
- package/dist/cjs/interactions/utils.cjs +208 -0
- package/dist/cjs/interactions/utils.native.js +227 -0
- package/dist/cjs/interactions/utils.native.js.map +1 -0
- package/dist/cjs/middleware/inner.cjs +118 -0
- package/dist/cjs/middleware/inner.native.js +130 -0
- package/dist/cjs/middleware/inner.native.js.map +1 -0
- package/dist/cjs/useFloating.cjs +35 -28
- package/dist/cjs/useFloating.native.js +51 -47
- package/dist/cjs/useFloating.native.js.map +1 -1
- package/dist/esm/Floating.native.js +6 -3
- package/dist/esm/Floating.native.js.map +1 -1
- package/dist/esm/index.js +17 -34
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/index.mjs +16 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +16 -2
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/interactions/PopupTriggerMap.mjs +24 -0
- package/dist/esm/interactions/PopupTriggerMap.mjs.map +1 -0
- package/dist/esm/interactions/PopupTriggerMap.native.js +69 -0
- package/dist/esm/interactions/PopupTriggerMap.native.js.map +1 -0
- package/dist/esm/interactions/createFloatingEvents.mjs +25 -0
- package/dist/esm/interactions/createFloatingEvents.mjs.map +1 -0
- package/dist/esm/interactions/createFloatingEvents.native.js +28 -0
- package/dist/esm/interactions/createFloatingEvents.native.js.map +1 -0
- package/dist/esm/interactions/safePolygon.mjs +248 -0
- package/dist/esm/interactions/safePolygon.mjs.map +1 -0
- package/dist/esm/interactions/safePolygon.native.js +256 -0
- package/dist/esm/interactions/safePolygon.native.js.map +1 -0
- package/dist/esm/interactions/types.mjs +2 -0
- package/dist/esm/interactions/types.mjs.map +1 -0
- package/dist/esm/interactions/types.native.js +2 -0
- package/dist/esm/interactions/types.native.js.map +1 -0
- package/dist/esm/interactions/useClick.mjs +99 -0
- package/dist/esm/interactions/useClick.mjs.map +1 -0
- package/dist/esm/interactions/useClick.native.js +104 -0
- package/dist/esm/interactions/useClick.native.js.map +1 -0
- package/dist/esm/interactions/useDelayGroup.mjs +77 -0
- package/dist/esm/interactions/useDelayGroup.mjs.map +1 -0
- package/dist/esm/interactions/useDelayGroup.native.js +84 -0
- package/dist/esm/interactions/useDelayGroup.native.js.map +1 -0
- package/dist/esm/interactions/useFocus.mjs +105 -0
- package/dist/esm/interactions/useFocus.mjs.map +1 -0
- package/dist/esm/interactions/useFocus.native.js +111 -0
- package/dist/esm/interactions/useFocus.native.js.map +1 -0
- package/dist/esm/interactions/useHover.mjs +320 -0
- package/dist/esm/interactions/useHover.mjs.map +1 -0
- package/dist/esm/interactions/useHover.native.js +333 -0
- package/dist/esm/interactions/useHover.native.js.map +1 -0
- package/dist/esm/interactions/useInnerOffset.mjs +92 -0
- package/dist/esm/interactions/useInnerOffset.mjs.map +1 -0
- package/dist/esm/interactions/useInnerOffset.native.js +102 -0
- package/dist/esm/interactions/useInnerOffset.native.js.map +1 -0
- package/dist/esm/interactions/useInteractions.mjs +80 -0
- package/dist/esm/interactions/useInteractions.mjs.map +1 -0
- package/dist/esm/interactions/useInteractions.native.js +188 -0
- package/dist/esm/interactions/useInteractions.native.js.map +1 -0
- package/dist/esm/interactions/useListNavigation.mjs +393 -0
- package/dist/esm/interactions/useListNavigation.mjs.map +1 -0
- package/dist/esm/interactions/useListNavigation.native.js +405 -0
- package/dist/esm/interactions/useListNavigation.native.js.map +1 -0
- package/dist/esm/interactions/useRole.mjs +86 -0
- package/dist/esm/interactions/useRole.mjs.map +1 -0
- package/dist/esm/interactions/useRole.native.js +97 -0
- package/dist/esm/interactions/useRole.native.js.map +1 -0
- package/dist/esm/interactions/useTypeahead.mjs +118 -0
- package/dist/esm/interactions/useTypeahead.mjs.map +1 -0
- package/dist/esm/interactions/useTypeahead.native.js +131 -0
- package/dist/esm/interactions/useTypeahead.native.js.map +1 -0
- package/dist/esm/interactions/utils.mjs +162 -0
- package/dist/esm/interactions/utils.mjs.map +1 -0
- package/dist/esm/interactions/utils.native.js +178 -0
- package/dist/esm/interactions/utils.native.js.map +1 -0
- package/dist/esm/middleware/inner.mjs +82 -0
- package/dist/esm/middleware/inner.mjs.map +1 -0
- package/dist/esm/middleware/inner.native.js +91 -0
- package/dist/esm/middleware/inner.native.js.map +1 -0
- package/dist/esm/useFloating.mjs +8 -3
- package/dist/esm/useFloating.mjs.map +1 -1
- package/dist/esm/useFloating.native.js +25 -23
- package/dist/esm/useFloating.native.js.map +1 -1
- package/package.json +8 -10
- package/src/Floating.native.tsx +1 -0
- package/src/index.ts +49 -0
- package/src/interactions/PopupTriggerMap.ts +30 -0
- package/src/interactions/createFloatingEvents.ts +34 -0
- package/src/interactions/safePolygon.ts +500 -0
- package/src/interactions/types.ts +165 -0
- package/src/interactions/useClick.ts +148 -0
- package/src/interactions/useDelayGroup.ts +114 -0
- package/src/interactions/useFocus.ts +164 -0
- package/src/interactions/useHover.ts +453 -0
- package/src/interactions/useInnerOffset.ts +116 -0
- package/src/interactions/useInteractions.ts +101 -0
- package/src/interactions/useListNavigation.ts +578 -0
- package/src/interactions/useRole.ts +103 -0
- package/src/interactions/useTypeahead.ts +173 -0
- package/src/interactions/utils.ts +234 -0
- package/src/middleware/inner.ts +141 -0
- package/src/useFloating.tsx +13 -1
- package/types/Floating.native.d.ts +1 -0
- package/types/Floating.native.d.ts.map +1 -1
- package/types/index.d.ts +17 -2
- package/types/index.d.ts.map +1 -1
- package/types/interactions/PopupTriggerMap.d.ts +8 -0
- package/types/interactions/PopupTriggerMap.d.ts.map +1 -0
- package/types/interactions/createFloatingEvents.d.ts +7 -0
- package/types/interactions/createFloatingEvents.d.ts.map +1 -0
- package/types/interactions/safePolygon.d.ts +4 -0
- package/types/interactions/safePolygon.d.ts.map +1 -0
- package/types/interactions/types.d.ts +123 -0
- package/types/interactions/types.d.ts.map +1 -0
- package/types/interactions/useClick.d.ts +3 -0
- package/types/interactions/useClick.d.ts.map +1 -0
- package/types/interactions/useDelayGroup.d.ts +23 -0
- package/types/interactions/useDelayGroup.d.ts.map +1 -0
- package/types/interactions/useFocus.d.ts +3 -0
- package/types/interactions/useFocus.d.ts.map +1 -0
- package/types/interactions/useHover.d.ts +6 -0
- package/types/interactions/useHover.d.ts.map +1 -0
- package/types/interactions/useInnerOffset.d.ts +3 -0
- package/types/interactions/useInnerOffset.d.ts.map +1 -0
- package/types/interactions/useInteractions.d.ts +8 -0
- package/types/interactions/useInteractions.d.ts.map +1 -0
- package/types/interactions/useListNavigation.d.ts +3 -0
- package/types/interactions/useListNavigation.d.ts.map +1 -0
- package/types/interactions/useRole.d.ts +3 -0
- package/types/interactions/useRole.d.ts.map +1 -0
- package/types/interactions/useTypeahead.d.ts +3 -0
- package/types/interactions/useTypeahead.d.ts.map +1 -0
- package/types/interactions/utils.d.ts +46 -0
- package/types/interactions/utils.d.ts.map +1 -0
- package/types/middleware/inner.d.ts +14 -0
- package/types/middleware/inner.d.ts.map +1 -0
- package/types/useFloating.d.ts +7 -1
- package/types/useFloating.d.ts.map +1 -1
- package/dist/cjs/Floating.js +0 -15
- package/dist/cjs/Floating.js.map +0 -6
- package/dist/cjs/index.js +0 -34
- package/dist/cjs/index.js.map +0 -6
- package/dist/cjs/useFloating.js +0 -46
- package/dist/cjs/useFloating.js.map +0 -6
- package/dist/esm/Floating.js +0 -2
- package/dist/esm/Floating.js.map +0 -6
- package/dist/esm/useFloating.js +0 -23
- package/dist/esm/useFloating.js.map +0 -6
|
@@ -0,0 +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":"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","ignoreList":[]}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { useMemo, useRef } from "react";
|
|
2
|
+
import { isHTMLElement, isMouseLikePointerType, isTypeableElement } from "./utils.native.js";
|
|
3
|
+
function isButtonTarget(event) {
|
|
4
|
+
return isHTMLElement(event.target) && event.target.tagName === "BUTTON";
|
|
5
|
+
}
|
|
6
|
+
function isAnchorTarget(event) {
|
|
7
|
+
return isHTMLElement(event.target) && event.target.tagName === "A";
|
|
8
|
+
}
|
|
9
|
+
function isSpaceIgnored(element) {
|
|
10
|
+
return isTypeableElement(element);
|
|
11
|
+
}
|
|
12
|
+
function useClick(context) {
|
|
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");
|
|
79
|
+
}
|
|
80
|
+
}
|
|
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]);
|
|
97
|
+
return useMemo(function () {
|
|
98
|
+
return enabled ? {
|
|
99
|
+
reference
|
|
100
|
+
} : {};
|
|
101
|
+
}, [enabled, reference]);
|
|
102
|
+
}
|
|
103
|
+
export { useClick };
|
|
104
|
+
//# sourceMappingURL=useClick.native.js.map
|
|
@@ -0,0 +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":"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","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
const DelayGroupContext = React.createContext({
|
|
3
|
+
currentId: null,
|
|
4
|
+
setCurrentId: () => {},
|
|
5
|
+
delay: 0,
|
|
6
|
+
timeoutMs: 0,
|
|
7
|
+
initialDelay: 0
|
|
8
|
+
});
|
|
9
|
+
function useDelayGroupContext() {
|
|
10
|
+
return React.useContext(DelayGroupContext);
|
|
11
|
+
}
|
|
12
|
+
function FloatingDelayGroup({
|
|
13
|
+
children,
|
|
14
|
+
delay,
|
|
15
|
+
timeoutMs = 0
|
|
16
|
+
}) {
|
|
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(() => {
|
|
23
|
+
setCurrentIdRaw(null);
|
|
24
|
+
}, timeoutMs);
|
|
25
|
+
} else {
|
|
26
|
+
setCurrentIdRaw(id);
|
|
27
|
+
}
|
|
28
|
+
}, [timeoutMs]);
|
|
29
|
+
React.useEffect(() => {
|
|
30
|
+
return () => clearTimeout(timeoutRef.current);
|
|
31
|
+
}, []);
|
|
32
|
+
const value = React.useMemo(() => ({
|
|
33
|
+
currentId,
|
|
34
|
+
setCurrentId,
|
|
35
|
+
delay,
|
|
36
|
+
timeoutMs,
|
|
37
|
+
initialDelay: delay
|
|
38
|
+
}), [currentId, setCurrentId, delay, timeoutMs]);
|
|
39
|
+
return React.createElement(DelayGroupContext.Provider, {
|
|
40
|
+
value
|
|
41
|
+
}, children);
|
|
42
|
+
}
|
|
43
|
+
function useDelayGroup(context, options = {}) {
|
|
44
|
+
const {
|
|
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 {
|
|
68
|
+
delay: groupContext.initialDelay,
|
|
69
|
+
currentId: groupContext.currentId
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
function getClose(delay) {
|
|
73
|
+
if (typeof delay === "number") return delay;
|
|
74
|
+
return delay?.close ?? 0;
|
|
75
|
+
}
|
|
76
|
+
export { FloatingDelayGroup, useDelayGroup, useDelayGroupContext };
|
|
77
|
+
//# sourceMappingURL=useDelayGroup.mjs.map
|
|
@@ -0,0 +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":"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","ignoreList":[]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
var DelayGroupContext = React.createContext({
|
|
3
|
+
currentId: null,
|
|
4
|
+
setCurrentId: function () {},
|
|
5
|
+
delay: 0,
|
|
6
|
+
timeoutMs: 0,
|
|
7
|
+
initialDelay: 0
|
|
8
|
+
});
|
|
9
|
+
function useDelayGroupContext() {
|
|
10
|
+
return React.useContext(DelayGroupContext);
|
|
11
|
+
}
|
|
12
|
+
function FloatingDelayGroup(param) {
|
|
13
|
+
var {
|
|
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 () {
|
|
24
|
+
setCurrentIdRaw(null);
|
|
25
|
+
}, timeoutMs);
|
|
26
|
+
} else {
|
|
27
|
+
setCurrentIdRaw(id);
|
|
28
|
+
}
|
|
29
|
+
}, [timeoutMs]);
|
|
30
|
+
React.useEffect(function () {
|
|
31
|
+
return function () {
|
|
32
|
+
return clearTimeout(timeoutRef.current);
|
|
33
|
+
};
|
|
34
|
+
}, []);
|
|
35
|
+
var value = React.useMemo(function () {
|
|
36
|
+
return {
|
|
37
|
+
currentId,
|
|
38
|
+
setCurrentId,
|
|
39
|
+
delay,
|
|
40
|
+
timeoutMs,
|
|
41
|
+
initialDelay: delay
|
|
42
|
+
};
|
|
43
|
+
}, [currentId, setCurrentId, delay, timeoutMs]);
|
|
44
|
+
return React.createElement(DelayGroupContext.Provider, {
|
|
45
|
+
value
|
|
46
|
+
}, children);
|
|
47
|
+
}
|
|
48
|
+
function useDelayGroup(context) {
|
|
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 {
|
|
74
|
+
delay: groupContext.initialDelay,
|
|
75
|
+
currentId: groupContext.currentId
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function getClose(delay) {
|
|
79
|
+
if (typeof delay === "number") return delay;
|
|
80
|
+
var _delay_close;
|
|
81
|
+
return (_delay_close = delay === null || delay === void 0 ? void 0 : delay.close) !== null && _delay_close !== void 0 ? _delay_close : 0;
|
|
82
|
+
}
|
|
83
|
+
export { FloatingDelayGroup, useDelayGroup, useDelayGroupContext };
|
|
84
|
+
//# sourceMappingURL=useDelayGroup.native.js.map
|
|
@@ -0,0 +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;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":[]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { useEffect, useMemo, useRef } from "react";
|
|
2
|
+
import { activeElement, clearTimeoutIfSet, contains, getDocument, getTarget, isElement, isHTMLElement, isMac, isSafari, isTypeableElement, matchesFocusVisible } from "./utils.mjs";
|
|
3
|
+
function isMacSafari() {
|
|
4
|
+
return isMac() && isSafari();
|
|
5
|
+
}
|
|
6
|
+
function useFocus(context, props = {}) {
|
|
7
|
+
const {
|
|
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
|
+
useEffect(() => {
|
|
22
|
+
if (!enabled) return;
|
|
23
|
+
const win = getDocument(elements.domReference).defaultView || window;
|
|
24
|
+
function onBlur() {
|
|
25
|
+
if (!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))) {
|
|
26
|
+
blockFocusRef.current = true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function onKeyDown() {
|
|
30
|
+
keyboardModalityRef.current = true;
|
|
31
|
+
}
|
|
32
|
+
function onPointerDown() {
|
|
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);
|
|
39
|
+
}
|
|
40
|
+
return () => {
|
|
41
|
+
win.removeEventListener("blur", onBlur);
|
|
42
|
+
if (isMacSafari()) {
|
|
43
|
+
win.removeEventListener("keydown", onKeyDown, true);
|
|
44
|
+
win.removeEventListener("pointerdown", onPointerDown, true);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}, [elements.domReference, open, enabled]);
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
if (!enabled) return;
|
|
50
|
+
if (!events) return;
|
|
51
|
+
function handleOpenChange({
|
|
52
|
+
reason
|
|
53
|
+
}) {
|
|
54
|
+
if (reason === "reference-press" || reason === "escape-key") {
|
|
55
|
+
blockFocusRef.current = true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
events.on("openchange", handleOpenChange);
|
|
59
|
+
return () => {
|
|
60
|
+
events.off("openchange", handleOpenChange);
|
|
61
|
+
};
|
|
62
|
+
}, [events, enabled]);
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
return () => {
|
|
65
|
+
clearTimeoutIfSet(timeoutRef);
|
|
66
|
+
};
|
|
67
|
+
}, []);
|
|
68
|
+
const reference = useMemo(() => ({
|
|
69
|
+
onMouseLeave() {
|
|
70
|
+
blockFocusRef.current = false;
|
|
71
|
+
},
|
|
72
|
+
onFocus(event) {
|
|
73
|
+
if (blockFocusRef.current) return;
|
|
74
|
+
const target = getTarget(event.nativeEvent);
|
|
75
|
+
if (visibleOnly && isElement(target)) {
|
|
76
|
+
if (isMacSafari() && !event.relatedTarget) {
|
|
77
|
+
if (!keyboardModalityRef.current && !isTypeableElement(target)) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
} else if (!matchesFocusVisible(target)) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
onOpenChange(true, event.nativeEvent, "focus");
|
|
85
|
+
},
|
|
86
|
+
onBlur(event) {
|
|
87
|
+
blockFocusRef.current = false;
|
|
88
|
+
const relatedTarget = event.relatedTarget;
|
|
89
|
+
const nativeEvent = event.nativeEvent;
|
|
90
|
+
timeoutRef.current = window.setTimeout(() => {
|
|
91
|
+
const activeEl = activeElement(elements.domReference ? elements.domReference.ownerDocument : document);
|
|
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");
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}), [context.refs.floating, elements.domReference, onOpenChange, visibleOnly]);
|
|
100
|
+
return useMemo(() => enabled ? {
|
|
101
|
+
reference
|
|
102
|
+
} : {}, [enabled, reference]);
|
|
103
|
+
}
|
|
104
|
+
export { useFocus };
|
|
105
|
+
//# sourceMappingURL=useFocus.mjs.map
|
|
@@ -0,0 +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":"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","ignoreList":[]}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { useEffect, useMemo, useRef } from "react";
|
|
2
|
+
import { activeElement, clearTimeoutIfSet, contains, getDocument, getTarget, isElement, isHTMLElement, isMac, isSafari, isTypeableElement, matchesFocusVisible } from "./utils.native.js";
|
|
3
|
+
function isMacSafari() {
|
|
4
|
+
return isMac() && isSafari();
|
|
5
|
+
}
|
|
6
|
+
function useFocus(context) {
|
|
7
|
+
var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
8
|
+
var {
|
|
9
|
+
open,
|
|
10
|
+
onOpenChange,
|
|
11
|
+
events,
|
|
12
|
+
dataRef,
|
|
13
|
+
elements
|
|
14
|
+
} = context;
|
|
15
|
+
var {
|
|
16
|
+
enabled = true,
|
|
17
|
+
visibleOnly = true
|
|
18
|
+
} = props;
|
|
19
|
+
var blockFocusRef = useRef(false);
|
|
20
|
+
var timeoutRef = useRef(-1);
|
|
21
|
+
var keyboardModalityRef = useRef(true);
|
|
22
|
+
useEffect(function () {
|
|
23
|
+
if (!enabled) return;
|
|
24
|
+
var win = getDocument(elements.domReference).defaultView || window;
|
|
25
|
+
function onBlur() {
|
|
26
|
+
if (!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))) {
|
|
27
|
+
blockFocusRef.current = true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function onKeyDown() {
|
|
31
|
+
keyboardModalityRef.current = true;
|
|
32
|
+
}
|
|
33
|
+
function onPointerDown() {
|
|
34
|
+
keyboardModalityRef.current = false;
|
|
35
|
+
}
|
|
36
|
+
win.addEventListener("blur", onBlur);
|
|
37
|
+
if (isMacSafari()) {
|
|
38
|
+
win.addEventListener("keydown", onKeyDown, true);
|
|
39
|
+
win.addEventListener("pointerdown", onPointerDown, true);
|
|
40
|
+
}
|
|
41
|
+
return function () {
|
|
42
|
+
win.removeEventListener("blur", onBlur);
|
|
43
|
+
if (isMacSafari()) {
|
|
44
|
+
win.removeEventListener("keydown", onKeyDown, true);
|
|
45
|
+
win.removeEventListener("pointerdown", onPointerDown, true);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}, [elements.domReference, open, enabled]);
|
|
49
|
+
useEffect(function () {
|
|
50
|
+
if (!enabled) return;
|
|
51
|
+
if (!events) return;
|
|
52
|
+
function handleOpenChange(param) {
|
|
53
|
+
var {
|
|
54
|
+
reason
|
|
55
|
+
} = param;
|
|
56
|
+
if (reason === "reference-press" || reason === "escape-key") {
|
|
57
|
+
blockFocusRef.current = true;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
events.on("openchange", handleOpenChange);
|
|
61
|
+
return function () {
|
|
62
|
+
events.off("openchange", handleOpenChange);
|
|
63
|
+
};
|
|
64
|
+
}, [events, enabled]);
|
|
65
|
+
useEffect(function () {
|
|
66
|
+
return function () {
|
|
67
|
+
clearTimeoutIfSet(timeoutRef);
|
|
68
|
+
};
|
|
69
|
+
}, []);
|
|
70
|
+
var reference = useMemo(function () {
|
|
71
|
+
return {
|
|
72
|
+
onMouseLeave() {
|
|
73
|
+
blockFocusRef.current = false;
|
|
74
|
+
},
|
|
75
|
+
onFocus(event) {
|
|
76
|
+
if (blockFocusRef.current) return;
|
|
77
|
+
var target = getTarget(event.nativeEvent);
|
|
78
|
+
if (visibleOnly && isElement(target)) {
|
|
79
|
+
if (isMacSafari() && !event.relatedTarget) {
|
|
80
|
+
if (!keyboardModalityRef.current && !isTypeableElement(target)) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
} else if (!matchesFocusVisible(target)) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
onOpenChange(true, event.nativeEvent, "focus");
|
|
88
|
+
},
|
|
89
|
+
onBlur(event) {
|
|
90
|
+
blockFocusRef.current = false;
|
|
91
|
+
var relatedTarget = event.relatedTarget;
|
|
92
|
+
var nativeEvent = event.nativeEvent;
|
|
93
|
+
timeoutRef.current = window.setTimeout(function () {
|
|
94
|
+
var activeEl = activeElement(elements.domReference ? elements.domReference.ownerDocument : document);
|
|
95
|
+
if (!relatedTarget && activeEl === elements.domReference) return;
|
|
96
|
+
if (contains(context.refs.floating.current, activeEl) || contains(elements.domReference, activeEl)) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
onOpenChange(false, nativeEvent, "focus");
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}, [context.refs.floating, elements.domReference, onOpenChange, visibleOnly]);
|
|
104
|
+
return useMemo(function () {
|
|
105
|
+
return enabled ? {
|
|
106
|
+
reference
|
|
107
|
+
} : {};
|
|
108
|
+
}, [enabled, reference]);
|
|
109
|
+
}
|
|
110
|
+
export { useFocus };
|
|
111
|
+
//# sourceMappingURL=useFocus.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","useRef","activeElement","clearTimeoutIfSet","contains","getDocument","getTarget","isElement","isHTMLElement","isMac","isSafari","isTypeableElement","matchesFocusVisible","isMacSafari","useFocus","context","props","arguments","length","open","onOpenChange","events","dataRef","elements","enabled","visibleOnly","blockFocusRef","timeoutRef","keyboardModalityRef","win","domReference","defaultView","window","onBlur","current","onKeyDown","onPointerDown","addEventListener","removeEventListener","handleOpenChange","param","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":[]}
|