@hanzogui/popper 7.0.0 → 7.3.0
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/LICENSE +40 -19
- package/dist/cjs/Popper.cjs +625 -0
- package/dist/cjs/Popper.native.js +629 -0
- package/dist/cjs/Popper.native.js.map +1 -0
- package/dist/cjs/index.cjs +20 -0
- package/dist/cjs/index.native.js +23 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/esm/Popper.mjs +574 -0
- package/dist/esm/Popper.mjs.map +1 -0
- package/dist/esm/Popper.native.js +575 -0
- package/dist/esm/Popper.native.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +2 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/jsx/Popper.mjs +574 -0
- package/dist/jsx/Popper.mjs.map +1 -0
- package/dist/jsx/Popper.native.js +629 -0
- package/dist/jsx/Popper.native.js.map +1 -0
- package/dist/jsx/index.js +2 -0
- package/dist/jsx/index.js.map +1 -0
- package/dist/jsx/index.mjs +2 -0
- package/dist/jsx/index.mjs.map +1 -0
- package/dist/jsx/index.native.js +23 -0
- package/dist/jsx/index.native.js.map +1 -0
- package/package.json +19 -16
- package/src/Popper.tsx +24 -24
- package/types/Popper.d.ts +11 -11
- package/types/Popper.d.ts.map +1 -0
- package/types/index.d.ts.map +1 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
8
|
+
get: () => from[key],
|
|
9
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
16
|
+
value: true
|
|
17
|
+
}), mod);
|
|
18
|
+
var index_exports = {};
|
|
19
|
+
module.exports = __toCommonJS(index_exports);
|
|
20
|
+
__reExport(index_exports, require("./Popper.cjs"), module.exports);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __copyProps = (to, from, except, desc) => {
|
|
8
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
10
|
+
get: () => from[key],
|
|
11
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
17
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
18
|
+
value: true
|
|
19
|
+
}), mod);
|
|
20
|
+
var index_exports = {};
|
|
21
|
+
module.exports = __toCommonJS(index_exports);
|
|
22
|
+
__reExport(index_exports, require("./Popper.native.js"), module.exports);
|
|
23
|
+
//# sourceMappingURL=index.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","module","exports"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAP,YAAc,CAAAK,aAAA","ignoreList":[]}
|
|
@@ -0,0 +1,574 @@
|
|
|
1
|
+
import { flushSync } from "react-dom";
|
|
2
|
+
import { useComposedRefs } from "@hanzogui/compose-refs";
|
|
3
|
+
import { isWeb, useIsomorphicLayoutEffect } from "@hanzogui/constants";
|
|
4
|
+
import { LayoutMeasurementController, View as GuiView, createStyledContext, getVariableValue, registerLayoutNode, styled } from "@hanzogui/core";
|
|
5
|
+
import { FloatingOverrideContext } from "@hanzogui/floating";
|
|
6
|
+
import { arrow, flip, getOverflowAncestors, offset as offsetFn, platform, shift, size as sizeMiddleware, useFloating } from "@hanzogui/floating";
|
|
7
|
+
import { getSpace } from "@hanzogui/get-token";
|
|
8
|
+
import { YStack } from "@hanzogui/stacks";
|
|
9
|
+
import { startTransition } from "@hanzogui/start-transition";
|
|
10
|
+
import * as React from "react";
|
|
11
|
+
import { Keyboard, useWindowDimensions } from "react-native-web";
|
|
12
|
+
import { jsx } from "react/jsx-runtime";
|
|
13
|
+
const PopperContextFast = createStyledContext(
|
|
14
|
+
// since we always provide this we can avoid setting here
|
|
15
|
+
{}, "Popper__");
|
|
16
|
+
const PopperPositionContext = createStyledContext;
|
|
17
|
+
const {
|
|
18
|
+
useStyledContext: usePopperContext,
|
|
19
|
+
Provider: PopperProviderFast
|
|
20
|
+
} = PopperContextFast;
|
|
21
|
+
const PopperContextSlow = createStyledContext(
|
|
22
|
+
// since we always provide this we can avoid setting here
|
|
23
|
+
{}, "PopperSlow__");
|
|
24
|
+
const {
|
|
25
|
+
useStyledContext: usePopperContextSlow,
|
|
26
|
+
Provider: PopperProviderSlow
|
|
27
|
+
} = PopperContextSlow;
|
|
28
|
+
const PopperProvider = ({
|
|
29
|
+
scope,
|
|
30
|
+
children,
|
|
31
|
+
...context
|
|
32
|
+
}) => {
|
|
33
|
+
const fns = React.useRef(context);
|
|
34
|
+
fns.current = context;
|
|
35
|
+
const [slowContext] = React.useState(() => ({
|
|
36
|
+
refs: context.refs,
|
|
37
|
+
triggerElements: context.triggerElements,
|
|
38
|
+
update(...a) {
|
|
39
|
+
fns.current.update(...a);
|
|
40
|
+
},
|
|
41
|
+
getReferenceProps(p) {
|
|
42
|
+
return fns.current.getReferenceProps?.(p);
|
|
43
|
+
},
|
|
44
|
+
onHoverReference(e) {
|
|
45
|
+
fns.current.onHoverReference?.(e);
|
|
46
|
+
},
|
|
47
|
+
onLeaveReference() {
|
|
48
|
+
fns.current.onLeaveReference?.();
|
|
49
|
+
}
|
|
50
|
+
}));
|
|
51
|
+
return /* @__PURE__ */jsx(PopperProviderFast, {
|
|
52
|
+
scope,
|
|
53
|
+
...context,
|
|
54
|
+
children: /* @__PURE__ */jsx(PopperProviderSlow, {
|
|
55
|
+
scope,
|
|
56
|
+
...slowContext,
|
|
57
|
+
children
|
|
58
|
+
})
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
const checkFloating = void 0;
|
|
62
|
+
const setupOptions = {};
|
|
63
|
+
function setupPopper(options) {
|
|
64
|
+
Object.assign(setupOptions, options);
|
|
65
|
+
}
|
|
66
|
+
function getSideAndAlignFromPlacement(placement) {
|
|
67
|
+
const [side, align = "center"] = placement.split("-");
|
|
68
|
+
return [side, align];
|
|
69
|
+
}
|
|
70
|
+
const transformOriginMiddleware = options => ({
|
|
71
|
+
name: "transformOrigin",
|
|
72
|
+
options,
|
|
73
|
+
fn(data) {
|
|
74
|
+
const {
|
|
75
|
+
placement,
|
|
76
|
+
rects,
|
|
77
|
+
middlewareData
|
|
78
|
+
} = data;
|
|
79
|
+
const isArrowHidden = middlewareData.arrow?.centerOffset !== 0;
|
|
80
|
+
const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;
|
|
81
|
+
const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;
|
|
82
|
+
const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
|
|
83
|
+
const noArrowAlign = {
|
|
84
|
+
start: "0%",
|
|
85
|
+
center: "50%",
|
|
86
|
+
end: "100%"
|
|
87
|
+
}[placedAlign];
|
|
88
|
+
const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;
|
|
89
|
+
const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;
|
|
90
|
+
let x = "";
|
|
91
|
+
let y = "";
|
|
92
|
+
if (placedSide === "bottom") {
|
|
93
|
+
x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
|
|
94
|
+
y = `${-arrowHeight}px`;
|
|
95
|
+
} else if (placedSide === "top") {
|
|
96
|
+
x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
|
|
97
|
+
y = `${rects.floating.height + arrowHeight}px`;
|
|
98
|
+
} else if (placedSide === "right") {
|
|
99
|
+
x = `${-arrowHeight}px`;
|
|
100
|
+
y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
|
|
101
|
+
} else if (placedSide === "left") {
|
|
102
|
+
x = `${rects.floating.width + arrowHeight}px`;
|
|
103
|
+
y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
data: {
|
|
107
|
+
x,
|
|
108
|
+
y
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
function guiAutoUpdate(reference, floating, update) {
|
|
114
|
+
update();
|
|
115
|
+
let rafId = requestAnimationFrame(() => {
|
|
116
|
+
update();
|
|
117
|
+
rafId = 0;
|
|
118
|
+
});
|
|
119
|
+
const cleanups = [() => {
|
|
120
|
+
if (rafId) cancelAnimationFrame(rafId);
|
|
121
|
+
}];
|
|
122
|
+
if (reference instanceof HTMLElement) cleanups.push(registerLayoutNode(reference, update));
|
|
123
|
+
const ancestors = [...(reference instanceof Element ? getOverflowAncestors(reference) : []), ...getOverflowAncestors(floating)];
|
|
124
|
+
const uniqueAncestors = [...new Set(ancestors)];
|
|
125
|
+
for (const ancestor of uniqueAncestors) ancestor.addEventListener("scroll", update, {
|
|
126
|
+
passive: true
|
|
127
|
+
});
|
|
128
|
+
window.addEventListener("resize", update);
|
|
129
|
+
cleanups.push(() => {
|
|
130
|
+
for (const ancestor of uniqueAncestors) ancestor.removeEventListener("scroll", update);
|
|
131
|
+
window.removeEventListener("resize", update);
|
|
132
|
+
});
|
|
133
|
+
return () => cleanups.forEach(fn => fn());
|
|
134
|
+
}
|
|
135
|
+
function Popper(props) {
|
|
136
|
+
const {
|
|
137
|
+
children,
|
|
138
|
+
size,
|
|
139
|
+
strategy = "absolute",
|
|
140
|
+
placement = "bottom",
|
|
141
|
+
stayInFrame,
|
|
142
|
+
allowFlip,
|
|
143
|
+
offset,
|
|
144
|
+
disableRTL,
|
|
145
|
+
resize,
|
|
146
|
+
passThrough,
|
|
147
|
+
open,
|
|
148
|
+
scope
|
|
149
|
+
} = props;
|
|
150
|
+
const [arrowEl, setArrow] = React.useState(null);
|
|
151
|
+
const [arrowSize, setArrowSize] = React.useState(0);
|
|
152
|
+
const offsetOptions = offset ?? arrowSize;
|
|
153
|
+
const floatingStyle = React.useRef({});
|
|
154
|
+
const isOpen = passThrough ? false : open ?? true;
|
|
155
|
+
const middlewareRef = React.useRef([]);
|
|
156
|
+
if (isOpen) middlewareRef.current = [typeof offsetOptions !== "undefined" ? offsetFn(offsetOptions) : null, allowFlip ? flip(typeof allowFlip === "boolean" ? {} : allowFlip) : null, stayInFrame ? shift({
|
|
157
|
+
padding: 10,
|
|
158
|
+
mainAxis: true,
|
|
159
|
+
crossAxis: false,
|
|
160
|
+
...(typeof stayInFrame === "object" ? stayInFrame : null)
|
|
161
|
+
}) : null, arrowEl ? arrow({
|
|
162
|
+
element: arrowEl
|
|
163
|
+
}) : null, checkFloating, resize ? sizeMiddleware({
|
|
164
|
+
padding: typeof stayInFrame === "object" ? stayInFrame.padding : 10,
|
|
165
|
+
apply({
|
|
166
|
+
availableHeight,
|
|
167
|
+
availableWidth
|
|
168
|
+
}) {
|
|
169
|
+
if (passThrough) return;
|
|
170
|
+
Object.assign(floatingStyle.current, {
|
|
171
|
+
maxHeight: `${availableHeight}px`,
|
|
172
|
+
maxWidth: `${availableWidth}px`
|
|
173
|
+
});
|
|
174
|
+
const floatingChild = floating.refs.floating.current?.firstChild;
|
|
175
|
+
if (floatingChild && floatingChild instanceof HTMLElement) Object.assign(floatingChild.style, floatingStyle.current);
|
|
176
|
+
},
|
|
177
|
+
...(typeof resize === "object" && resize)
|
|
178
|
+
}) : null, sizeMiddleware({
|
|
179
|
+
apply({
|
|
180
|
+
elements,
|
|
181
|
+
rects,
|
|
182
|
+
availableWidth,
|
|
183
|
+
availableHeight
|
|
184
|
+
}) {
|
|
185
|
+
const {
|
|
186
|
+
width: anchorWidth,
|
|
187
|
+
height: anchorHeight
|
|
188
|
+
} = rects.reference;
|
|
189
|
+
const contentStyle = elements.floating.style;
|
|
190
|
+
contentStyle.setProperty("--gui-popper-available-width", `${availableWidth}px`);
|
|
191
|
+
contentStyle.setProperty("--gui-popper-available-height", `${availableHeight}px`);
|
|
192
|
+
contentStyle.setProperty("--gui-popper-anchor-width", `${anchorWidth}px`);
|
|
193
|
+
contentStyle.setProperty("--gui-popper-anchor-height", `${anchorHeight}px`);
|
|
194
|
+
}
|
|
195
|
+
}), transformOriginMiddleware({
|
|
196
|
+
arrowHeight: arrowSize,
|
|
197
|
+
arrowWidth: arrowSize
|
|
198
|
+
})].filter(Boolean);
|
|
199
|
+
let floating = useFloating({
|
|
200
|
+
open: isOpen,
|
|
201
|
+
strategy,
|
|
202
|
+
placement,
|
|
203
|
+
sameScrollView: false,
|
|
204
|
+
whileElementsMounted: !isOpen ? void 0 : guiAutoUpdate,
|
|
205
|
+
platform: disableRTL ?? setupOptions.disableRTL ? {
|
|
206
|
+
...platform,
|
|
207
|
+
isRTL(element) {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
} : platform,
|
|
211
|
+
middleware: middlewareRef.current
|
|
212
|
+
});
|
|
213
|
+
floating = React.useMemo(() => {
|
|
214
|
+
const og = floating.getFloatingProps;
|
|
215
|
+
if (resize && og) floating.getFloatingProps = props2 => {
|
|
216
|
+
return og({
|
|
217
|
+
...props2,
|
|
218
|
+
style: {
|
|
219
|
+
...props2.style,
|
|
220
|
+
...floatingStyle.current
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
};
|
|
224
|
+
return floating;
|
|
225
|
+
}, [floating, resize ? JSON.stringify(resize) : null]);
|
|
226
|
+
const {
|
|
227
|
+
middlewareData
|
|
228
|
+
} = floating;
|
|
229
|
+
return /* @__PURE__ */jsx(PopperProvider, {
|
|
230
|
+
scope,
|
|
231
|
+
...React.useMemo(() => {
|
|
232
|
+
return {
|
|
233
|
+
size,
|
|
234
|
+
arrowRef: setArrow,
|
|
235
|
+
arrowStyle: middlewareData.arrow,
|
|
236
|
+
onArrowSize: setArrowSize,
|
|
237
|
+
hasFloating: middlewareData.checkFloating?.hasFloating,
|
|
238
|
+
transformOrigin: middlewareData.transformOrigin,
|
|
239
|
+
open: !!open,
|
|
240
|
+
...floating
|
|
241
|
+
};
|
|
242
|
+
}, [open, size, floating, JSON.stringify(middlewareData.arrow || null), JSON.stringify(middlewareData.transformOrigin || null)]),
|
|
243
|
+
children: /* @__PURE__ */jsx(FloatingOverrideContext.Provider, {
|
|
244
|
+
value: null,
|
|
245
|
+
children
|
|
246
|
+
})
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
const PopperAnchor = YStack.styleable(function PopperAnchor2(props, forwardedRef) {
|
|
250
|
+
const {
|
|
251
|
+
virtualRef,
|
|
252
|
+
scope,
|
|
253
|
+
...rest
|
|
254
|
+
} = props;
|
|
255
|
+
const context = usePopperContextSlow(scope);
|
|
256
|
+
const {
|
|
257
|
+
getReferenceProps,
|
|
258
|
+
refs,
|
|
259
|
+
update
|
|
260
|
+
} = context;
|
|
261
|
+
const ref = React.useRef(null);
|
|
262
|
+
const triggerId = React.useId();
|
|
263
|
+
React.useEffect(() => {
|
|
264
|
+
if (!scope || !context.triggerElements || !ref.current) return;
|
|
265
|
+
if (!(ref.current instanceof Element)) return;
|
|
266
|
+
const el = ref.current;
|
|
267
|
+
context.triggerElements.add(triggerId, el);
|
|
268
|
+
return () => {
|
|
269
|
+
context.triggerElements?.delete(triggerId);
|
|
270
|
+
};
|
|
271
|
+
}, [scope, triggerId, context.triggerElements]);
|
|
272
|
+
React.useEffect(() => {
|
|
273
|
+
if (virtualRef) {
|
|
274
|
+
refs.setReference(virtualRef.current);
|
|
275
|
+
update();
|
|
276
|
+
}
|
|
277
|
+
}, [virtualRef]);
|
|
278
|
+
const refProps = getReferenceProps?.({
|
|
279
|
+
...rest,
|
|
280
|
+
ref
|
|
281
|
+
}) || null;
|
|
282
|
+
const safeSetReference = React.useCallback(node => {
|
|
283
|
+
startTransition(() => {
|
|
284
|
+
refs.setReference(node);
|
|
285
|
+
});
|
|
286
|
+
},
|
|
287
|
+
// it was refs.setRefernce but its stable and refs is undefined on server
|
|
288
|
+
[refs]);
|
|
289
|
+
const shouldHandleInHover = isWeb && scope;
|
|
290
|
+
const composedRefs = useComposedRefs(forwardedRef, ref,
|
|
291
|
+
// web handles this onMouseEnter below so it can support multiple targets + hovering
|
|
292
|
+
shouldHandleInHover ? void 0 : safeSetReference);
|
|
293
|
+
return /* @__PURE__ */jsx(GuiView, {
|
|
294
|
+
...rest,
|
|
295
|
+
...refProps,
|
|
296
|
+
ref: composedRefs,
|
|
297
|
+
...(shouldHandleInHover && {
|
|
298
|
+
onMouseEnter: e => {
|
|
299
|
+
const el = e.currentTarget ?? ref.current;
|
|
300
|
+
if (el instanceof HTMLElement) {
|
|
301
|
+
flushSync(() => refs.setReference(el));
|
|
302
|
+
update();
|
|
303
|
+
if (!refProps) return;
|
|
304
|
+
refProps.onPointerEnter?.(e);
|
|
305
|
+
context.onHoverReference?.(e.nativeEvent);
|
|
306
|
+
}
|
|
307
|
+
},
|
|
308
|
+
onMouseLeave: e => {
|
|
309
|
+
context.onLeaveReference?.();
|
|
310
|
+
refProps?.onMouseLeave?.(e);
|
|
311
|
+
}
|
|
312
|
+
})
|
|
313
|
+
});
|
|
314
|
+
});
|
|
315
|
+
const PopperContentFrame = styled(YStack, {
|
|
316
|
+
name: "PopperContent",
|
|
317
|
+
variants: {
|
|
318
|
+
unstyled: {
|
|
319
|
+
true: {}
|
|
320
|
+
},
|
|
321
|
+
size: {
|
|
322
|
+
"...size": (val, {
|
|
323
|
+
tokens
|
|
324
|
+
}) => {
|
|
325
|
+
return {
|
|
326
|
+
padding: tokens.space[val],
|
|
327
|
+
borderRadius: tokens.radius[val]
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
const PopperContent = React.forwardRef(function PopperContent2(props, forwardedRef) {
|
|
334
|
+
const {
|
|
335
|
+
scope,
|
|
336
|
+
animatePosition,
|
|
337
|
+
enableAnimationForPositionChange,
|
|
338
|
+
children,
|
|
339
|
+
passThrough,
|
|
340
|
+
unstyled,
|
|
341
|
+
...rest
|
|
342
|
+
} = props;
|
|
343
|
+
const animatePos = animatePosition ?? enableAnimationForPositionChange;
|
|
344
|
+
const context = usePopperContext(scope);
|
|
345
|
+
const {
|
|
346
|
+
strategy,
|
|
347
|
+
placement,
|
|
348
|
+
refs,
|
|
349
|
+
x,
|
|
350
|
+
y,
|
|
351
|
+
getFloatingProps,
|
|
352
|
+
size,
|
|
353
|
+
isPositioned,
|
|
354
|
+
transformOrigin,
|
|
355
|
+
update
|
|
356
|
+
} = context;
|
|
357
|
+
const updateRef = React.useRef(update);
|
|
358
|
+
updateRef.current = update;
|
|
359
|
+
const lastNodeRef = React.useRef(null);
|
|
360
|
+
const safeSetFloating = React.useCallback(node => {
|
|
361
|
+
const isNewNode = node !== lastNodeRef.current;
|
|
362
|
+
if (node) {
|
|
363
|
+
lastNodeRef.current = node;
|
|
364
|
+
refs.setFloating(node);
|
|
365
|
+
if (!isNewNode) updateRef.current?.();
|
|
366
|
+
}
|
|
367
|
+
}, [refs.setFloating]);
|
|
368
|
+
React.useEffect(() => {
|
|
369
|
+
return () => {
|
|
370
|
+
const ourNode = lastNodeRef.current;
|
|
371
|
+
if (ourNode && refs.floating.current === ourNode) refs.setFloating(null);
|
|
372
|
+
lastNodeRef.current = null;
|
|
373
|
+
};
|
|
374
|
+
}, []);
|
|
375
|
+
const contentRefs = useComposedRefs(safeSetFloating, forwardedRef);
|
|
376
|
+
const [needsMeasure, setNeedsMeasure] = React.useState(animatePos);
|
|
377
|
+
useIsomorphicLayoutEffect(() => {
|
|
378
|
+
if (needsMeasure && x && y) setNeedsMeasure(false);
|
|
379
|
+
}, [needsMeasure, animatePos, x, y]);
|
|
380
|
+
const hasBeenPositioned = React.useRef(false);
|
|
381
|
+
const lastGoodPosition = React.useRef({
|
|
382
|
+
x: 0,
|
|
383
|
+
y: 0
|
|
384
|
+
});
|
|
385
|
+
if (x !== 0 || y !== 0) {
|
|
386
|
+
lastGoodPosition.current = {
|
|
387
|
+
x,
|
|
388
|
+
y
|
|
389
|
+
};
|
|
390
|
+
if (isPositioned) hasBeenPositioned.current = true;
|
|
391
|
+
}
|
|
392
|
+
const brieflyZero = hasBeenPositioned.current && x === 0 && y === 0;
|
|
393
|
+
const effectiveX = brieflyZero ? lastGoodPosition.current.x : x;
|
|
394
|
+
const effectiveY = brieflyZero ? lastGoodPosition.current.y : y;
|
|
395
|
+
const hide = !hasBeenPositioned.current && effectiveX === 0 && effectiveY === 0;
|
|
396
|
+
const disableAnimationProp = animatePos === "even-when-repositioning" ? needsMeasure : !hasBeenPositioned.current && !isPositioned || needsMeasure;
|
|
397
|
+
const [disableAnimation, setDisableAnimation] = React.useState(disableAnimationProp);
|
|
398
|
+
React.useEffect(() => {
|
|
399
|
+
setDisableAnimation(disableAnimationProp);
|
|
400
|
+
}, [disableAnimationProp]);
|
|
401
|
+
const frameProps = {
|
|
402
|
+
ref: contentRefs,
|
|
403
|
+
...(hide ? {} : {
|
|
404
|
+
x: effectiveX || 0,
|
|
405
|
+
y: effectiveY || 0
|
|
406
|
+
}),
|
|
407
|
+
top: 0,
|
|
408
|
+
left: 0,
|
|
409
|
+
position: strategy,
|
|
410
|
+
opacity: hide ? 0 : 1,
|
|
411
|
+
...(animatePos && {
|
|
412
|
+
transition: rest.transition,
|
|
413
|
+
animateOnly: disableAnimation ? [] : rest.animateOnly,
|
|
414
|
+
animatePresence: false
|
|
415
|
+
})
|
|
416
|
+
};
|
|
417
|
+
const {
|
|
418
|
+
style,
|
|
419
|
+
...floatingProps
|
|
420
|
+
} = getFloatingProps ? getFloatingProps(frameProps) : frameProps;
|
|
421
|
+
const transformOriginStyle = isWeb && transformOrigin ? {
|
|
422
|
+
transformOrigin: `${transformOrigin.x} ${transformOrigin.y}`
|
|
423
|
+
} : void 0;
|
|
424
|
+
return /* @__PURE__ */jsx(LayoutMeasurementController, {
|
|
425
|
+
disable: !context.open,
|
|
426
|
+
children: /* @__PURE__ */jsx(GuiView, {
|
|
427
|
+
passThrough,
|
|
428
|
+
ref: contentRefs,
|
|
429
|
+
direction: rest.direction,
|
|
430
|
+
...(passThrough ? null : floatingProps),
|
|
431
|
+
...(!passThrough && animatePos && {
|
|
432
|
+
"data-popper-animate-position": "true"
|
|
433
|
+
}),
|
|
434
|
+
children: /* @__PURE__ */jsx(PopperContentFrame, {
|
|
435
|
+
passThrough,
|
|
436
|
+
unstyled,
|
|
437
|
+
...(!passThrough && {
|
|
438
|
+
"data-placement": placement,
|
|
439
|
+
"data-strategy": strategy,
|
|
440
|
+
size,
|
|
441
|
+
...style,
|
|
442
|
+
...transformOriginStyle,
|
|
443
|
+
...rest
|
|
444
|
+
}),
|
|
445
|
+
children
|
|
446
|
+
}, "popper-content-frame")
|
|
447
|
+
})
|
|
448
|
+
});
|
|
449
|
+
});
|
|
450
|
+
const PopperArrowFrame = styled(YStack, {
|
|
451
|
+
name: "PopperArrow",
|
|
452
|
+
variants: {
|
|
453
|
+
unstyled: {
|
|
454
|
+
false: {
|
|
455
|
+
borderColor: "$borderColor",
|
|
456
|
+
backgroundColor: "$background",
|
|
457
|
+
position: "relative"
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
},
|
|
461
|
+
defaultVariants: {
|
|
462
|
+
unstyled: process.env.GUI_HEADLESS === "1"
|
|
463
|
+
}
|
|
464
|
+
});
|
|
465
|
+
const PopperArrowOuterFrame = styled(YStack, {
|
|
466
|
+
name: "PopperArrowOuter",
|
|
467
|
+
variants: {
|
|
468
|
+
unstyled: {
|
|
469
|
+
false: {
|
|
470
|
+
position: "absolute",
|
|
471
|
+
zIndex: 1e6,
|
|
472
|
+
pointerEvents: "none",
|
|
473
|
+
overflow: "hidden",
|
|
474
|
+
alignItems: "center",
|
|
475
|
+
justifyContent: "center"
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
},
|
|
479
|
+
defaultVariants: {
|
|
480
|
+
unstyled: process.env.GUI_HEADLESS === "1"
|
|
481
|
+
}
|
|
482
|
+
});
|
|
483
|
+
const opposites = {
|
|
484
|
+
top: "bottom",
|
|
485
|
+
right: "left",
|
|
486
|
+
bottom: "top",
|
|
487
|
+
left: "right"
|
|
488
|
+
};
|
|
489
|
+
const PopperArrow = React.forwardRef(function PopperArrow2(propsIn, forwardedRef) {
|
|
490
|
+
const {
|
|
491
|
+
scope,
|
|
492
|
+
animatePosition,
|
|
493
|
+
transition,
|
|
494
|
+
...rest
|
|
495
|
+
} = propsIn;
|
|
496
|
+
const {
|
|
497
|
+
offset,
|
|
498
|
+
size: sizeProp,
|
|
499
|
+
borderWidth = 0,
|
|
500
|
+
...arrowProps
|
|
501
|
+
} = rest;
|
|
502
|
+
const context = usePopperContext(scope);
|
|
503
|
+
const sizeVal = typeof sizeProp === "number" ? sizeProp : getVariableValue(getSpace(sizeProp ?? context.size, {
|
|
504
|
+
shift: -2,
|
|
505
|
+
bounds: [2]
|
|
506
|
+
}));
|
|
507
|
+
const size = Math.max(0, +sizeVal);
|
|
508
|
+
const {
|
|
509
|
+
placement
|
|
510
|
+
} = context;
|
|
511
|
+
const refs = useComposedRefs(context.arrowRef, forwardedRef);
|
|
512
|
+
const x = context.arrowStyle?.x || 0;
|
|
513
|
+
const y = context.arrowStyle?.y || 0;
|
|
514
|
+
const arrowPositioned = context.arrowStyle != null;
|
|
515
|
+
const primaryPlacement = placement ? placement.split("-")[0] : "top";
|
|
516
|
+
const arrowStyle = {
|
|
517
|
+
x,
|
|
518
|
+
y,
|
|
519
|
+
width: size,
|
|
520
|
+
height: size
|
|
521
|
+
};
|
|
522
|
+
const innerArrowStyle = {};
|
|
523
|
+
const isVertical = primaryPlacement === "bottom" || primaryPlacement === "top";
|
|
524
|
+
if (primaryPlacement) {
|
|
525
|
+
arrowStyle[isVertical ? "width" : "height"] = size * 2;
|
|
526
|
+
const oppSide = opposites[primaryPlacement];
|
|
527
|
+
if (oppSide) {
|
|
528
|
+
arrowStyle[oppSide] = -size;
|
|
529
|
+
innerArrowStyle[oppSide] = size / 2;
|
|
530
|
+
}
|
|
531
|
+
if (oppSide === "top" || oppSide === "bottom") arrowStyle.left = 0;
|
|
532
|
+
if (oppSide === "left" || oppSide === "right") arrowStyle.top = 0;
|
|
533
|
+
useIsomorphicLayoutEffect(() => {
|
|
534
|
+
context.onArrowSize?.(size);
|
|
535
|
+
}, [size, context.onArrowSize]);
|
|
536
|
+
}
|
|
537
|
+
return /* @__PURE__ */jsx(PopperArrowOuterFrame, {
|
|
538
|
+
ref: refs,
|
|
539
|
+
...arrowStyle,
|
|
540
|
+
...(!arrowPositioned && {
|
|
541
|
+
opacity: 0
|
|
542
|
+
}),
|
|
543
|
+
...(animatePosition && {
|
|
544
|
+
transition,
|
|
545
|
+
animateOnly: ["transform"],
|
|
546
|
+
animatePresence: false
|
|
547
|
+
}),
|
|
548
|
+
children: /* @__PURE__ */jsx(PopperArrowFrame, {
|
|
549
|
+
width: size,
|
|
550
|
+
height: size,
|
|
551
|
+
...arrowProps,
|
|
552
|
+
...innerArrowStyle,
|
|
553
|
+
rotate: "45deg",
|
|
554
|
+
...(primaryPlacement === "bottom" && {
|
|
555
|
+
borderLeftWidth: borderWidth,
|
|
556
|
+
borderTopWidth: borderWidth
|
|
557
|
+
}),
|
|
558
|
+
...(primaryPlacement === "top" && {
|
|
559
|
+
borderBottomWidth: borderWidth,
|
|
560
|
+
borderRightWidth: borderWidth
|
|
561
|
+
}),
|
|
562
|
+
...(primaryPlacement === "right" && {
|
|
563
|
+
borderLeftWidth: borderWidth,
|
|
564
|
+
borderBottomWidth: borderWidth
|
|
565
|
+
}),
|
|
566
|
+
...(primaryPlacement === "left" && {
|
|
567
|
+
borderTopWidth: borderWidth,
|
|
568
|
+
borderRightWidth: borderWidth
|
|
569
|
+
})
|
|
570
|
+
})
|
|
571
|
+
});
|
|
572
|
+
});
|
|
573
|
+
export { Popper, PopperAnchor, PopperArrow, PopperArrowFrame, PopperContent, PopperContentFrame, PopperContextFast, PopperContextSlow, PopperPositionContext, PopperProvider, PopperProviderFast, PopperProviderSlow, setupPopper, usePopperContext, usePopperContextSlow };
|
|
574
|
+
//# sourceMappingURL=Popper.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["flushSync","useComposedRefs","isWeb","useIsomorphicLayoutEffect","LayoutMeasurementController","View","GuiView","createStyledContext","getVariableValue","registerLayoutNode","styled","FloatingOverrideContext","arrow","flip","getOverflowAncestors","offset","offsetFn","platform","shift","size","sizeMiddleware","useFloating","getSpace","YStack","startTransition","React","Keyboard","useWindowDimensions","jsx","PopperContextFast","PopperPositionContext","useStyledContext","usePopperContext","Provider","PopperProviderFast","PopperContextSlow","usePopperContextSlow","PopperProviderSlow","PopperProvider","scope","children","context","fns","useRef","current","slowContext","useState","refs","triggerElements","update","a","getReferenceProps","p","onHoverReference","e","onLeaveReference","checkFloating","setupOptions","setupPopper","options","Object","assign","getSideAndAlignFromPlacement","placement","side","align","split","transformOriginMiddleware","name","fn","data","rects","middlewareData","isArrowHidden","centerOffset","arrowWidth","arrowHeight","placedSide","placedAlign","noArrowAlign","start","center","end","arrowXCenter","x","arrowYCenter","y","floating","height","width","guiAutoUpdate","reference","rafId","requestAnimationFrame","cleanups","cancelAnimationFrame","HTMLElement","push","ancestors","Element","uniqueAncestors","Set","ancestor","addEventListener","passive","window","removeEventListener","forEach","Popper","props","strategy","stayInFrame","allowFlip","disableRTL","resize","passThrough","open","arrowEl","setArrow","arrowSize","setArrowSize","offsetOptions","floatingStyle","isOpen","middlewareRef","padding","mainAxis","crossAxis","element","apply","availableHeight","availableWidth","maxHeight","maxWidth","floatingChild","firstChild","style","elements","anchorWidth","anchorHeight","contentStyle","setProperty","filter","Boolean","sameScrollView","whileElementsMounted","isRTL","middleware","useMemo","og","getFloatingProps","props2","JSON","stringify","arrowRef","arrowStyle","onArrowSize","hasFloating","transformOrigin","value","PopperAnchor","styleable","PopperAnchor2","forwardedRef","virtualRef","rest","ref","triggerId","useId","useEffect","el","add","delete","setReference","refProps","safeSetReference","useCallback","node","shouldHandleInHover","composedRefs","onMouseEnter","currentTarget","onPointerEnter","nativeEvent","onMouseLeave","PopperContentFrame","variants","unstyled","true","...size","val","tokens","space","borderRadius","radius","PopperContent","forwardRef","PopperContent2","animatePosition","enableAnimationForPositionChange","animatePos","isPositioned","updateRef","lastNodeRef","safeSetFloating","isNewNode","setFloating","ourNode","contentRefs","needsMeasure","setNeedsMeasure","hasBeenPositioned","lastGoodPosition","brieflyZero","effectiveX","effectiveY","hide","disableAnimationProp","disableAnimation","setDisableAnimation","frameProps","top","left","position","opacity","transition","animateOnly","animatePresence","floatingProps","transformOriginStyle","disable","direction","PopperArrowFrame","false","borderColor","backgroundColor","defaultVariants","process","env","GUI_HEADLESS","PopperArrowOuterFrame","zIndex","pointerEvents","overflow","alignItems","justifyContent","opposites","right","bottom","PopperArrow","PopperArrow2","propsIn","sizeProp","borderWidth","arrowProps","sizeVal","bounds","Math","max","arrowPositioned","primaryPlacement","innerArrowStyle","isVertical","oppSide","rotate","borderLeftWidth","borderTopWidth","borderBottomWidth","borderRightWidth"],"sources":["../../src/Popper.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|