@tamagui/popover 1.30.7 → 1.30.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Popover.js +49 -85
- package/dist/cjs/Popover.js.map +2 -2
- package/dist/esm/Popover.js +49 -84
- package/dist/esm/Popover.js.map +2 -2
- package/dist/jsx/Popover.js +46 -86
- package/dist/jsx/Popover.js.map +2 -2
- package/dist/jsx/Popover.mjs +46 -86
- package/dist/jsx/Popover.mjs.map +2 -2
- package/package.json +18 -19
- package/src/Popover.tsx +75 -137
- package/types/Popover.d.ts +18 -134
- package/types/Popover.d.ts.map +1 -1
package/dist/cjs/Popover.js
CHANGED
|
@@ -33,10 +33,9 @@ __export(Popover_exports, {
|
|
|
33
33
|
PopoverArrow: () => PopoverArrow,
|
|
34
34
|
PopoverClose: () => PopoverClose,
|
|
35
35
|
PopoverContent: () => PopoverContent,
|
|
36
|
+
PopoverContext: () => PopoverContext,
|
|
36
37
|
PopoverTrigger: () => PopoverTrigger,
|
|
37
|
-
|
|
38
|
-
createPopoverScope: () => createPopoverScope,
|
|
39
|
-
usePopoverScope: () => usePopoverScope
|
|
38
|
+
usePopoverContext: () => usePopoverContext
|
|
40
39
|
});
|
|
41
40
|
module.exports = __toCommonJS(Popover_exports);
|
|
42
41
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -46,7 +45,6 @@ var import_animate_presence = require("@tamagui/animate-presence");
|
|
|
46
45
|
var import_aria_hidden = require("@tamagui/aria-hidden");
|
|
47
46
|
var import_compose_refs = require("@tamagui/compose-refs");
|
|
48
47
|
var import_core = require("@tamagui/core");
|
|
49
|
-
var import_create_context = require("@tamagui/create-context");
|
|
50
48
|
var import_floating = require("@tamagui/floating");
|
|
51
49
|
var import_focus_scope = require("@tamagui/focus-scope");
|
|
52
50
|
var import_popper = require("@tamagui/popper");
|
|
@@ -58,51 +56,37 @@ var import_use_controllable_state = require("@tamagui/use-controllable-state");
|
|
|
58
56
|
var React = __toESM(require("react"));
|
|
59
57
|
var import_react_native = require("react-native");
|
|
60
58
|
var import_useFloatingContext = require("./useFloatingContext");
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
-
POPOVER_NAME,
|
|
64
|
-
[import_popper.createPopperScope]
|
|
65
|
-
);
|
|
66
|
-
const usePopoverScope = (0, import_popper.createPopperScope)();
|
|
67
|
-
const createPopoverScope = createPopoverScopeInternal;
|
|
68
|
-
const [PopoverProviderInternal, usePopoverInternalContext] = createPopoverContext(POPOVER_NAME);
|
|
69
|
-
const __PopoverProviderInternal = PopoverProviderInternal;
|
|
70
|
-
const ANCHOR_NAME = "PopoverAnchor";
|
|
59
|
+
const PopoverContext = (0, import_core.createStyledContext)({});
|
|
60
|
+
const usePopoverContext = () => React.useContext(PopoverContext);
|
|
71
61
|
const PopoverAnchor = React.forwardRef(
|
|
72
|
-
(props, forwardedRef)
|
|
73
|
-
const
|
|
74
|
-
const context = usePopoverInternalContext(ANCHOR_NAME, __scopePopover);
|
|
75
|
-
const popperScope = usePopoverScope(__scopePopover);
|
|
62
|
+
function PopoverAnchor2(props, forwardedRef) {
|
|
63
|
+
const context = usePopoverContext();
|
|
76
64
|
const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
|
|
77
65
|
React.useEffect(() => {
|
|
78
66
|
onCustomAnchorAdd();
|
|
79
67
|
return () => onCustomAnchorRemove();
|
|
80
68
|
}, [onCustomAnchorAdd, onCustomAnchorRemove]);
|
|
81
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.PopperAnchor, { ...
|
|
69
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.PopperAnchor, { ...props, ref: forwardedRef });
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
const PopoverTrigger = React.forwardRef(
|
|
73
|
+
function PopoverTrigger2(props, forwardedRef) {
|
|
74
|
+
const context = usePopoverContext();
|
|
75
|
+
const composedTriggerRef = (0, import_compose_refs.useComposedRefs)(forwardedRef, context.triggerRef);
|
|
76
|
+
const trigger = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
77
|
+
import_stacks.YStack,
|
|
78
|
+
{
|
|
79
|
+
"aria-haspopup": "dialog",
|
|
80
|
+
"aria-expanded": context.open,
|
|
81
|
+
"data-state": getState(context.open),
|
|
82
|
+
...props,
|
|
83
|
+
ref: composedTriggerRef,
|
|
84
|
+
onPress: (0, import_core.composeEventHandlers)(props.onPress, context.onOpenToggle)
|
|
85
|
+
}
|
|
86
|
+
);
|
|
87
|
+
return context.hasCustomAnchor ? trigger : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.PopperAnchor, { asChild: true, children: trigger });
|
|
82
88
|
}
|
|
83
89
|
);
|
|
84
|
-
PopoverAnchor.displayName = ANCHOR_NAME;
|
|
85
|
-
const TRIGGER_NAME = "PopoverTrigger";
|
|
86
|
-
const PopoverTrigger = React.forwardRef((props, forwardedRef) => {
|
|
87
|
-
const { __scopePopover, ...triggerProps } = props;
|
|
88
|
-
const context = usePopoverInternalContext(TRIGGER_NAME, __scopePopover);
|
|
89
|
-
const popperScope = usePopoverScope(__scopePopover);
|
|
90
|
-
const composedTriggerRef = (0, import_compose_refs.useComposedRefs)(forwardedRef, context.triggerRef);
|
|
91
|
-
const trigger = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
92
|
-
import_stacks.YStack,
|
|
93
|
-
{
|
|
94
|
-
"aria-haspopup": "dialog",
|
|
95
|
-
"aria-expanded": context.open,
|
|
96
|
-
"data-state": getState(context.open),
|
|
97
|
-
...triggerProps,
|
|
98
|
-
ref: composedTriggerRef,
|
|
99
|
-
onPress: (0, import_core.composeEventHandlers)(props.onPress, context.onOpenToggle)
|
|
100
|
-
}
|
|
101
|
-
);
|
|
102
|
-
return context.hasCustomAnchor ? trigger : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.PopperAnchor, { asChild: true, ...popperScope, children: trigger });
|
|
103
|
-
});
|
|
104
|
-
PopoverTrigger.displayName = TRIGGER_NAME;
|
|
105
|
-
const CONTENT_NAME = "PopoverContent";
|
|
106
90
|
const PopoverContent = import_popper.PopperContentFrame.extractable(
|
|
107
91
|
React.forwardRef(
|
|
108
92
|
function PopoverContent2(props, forwardedRef) {
|
|
@@ -113,7 +97,7 @@ const PopoverContent = import_popper.PopperContentFrame.extractable(
|
|
|
113
97
|
zIndex,
|
|
114
98
|
...contentImplProps
|
|
115
99
|
} = props;
|
|
116
|
-
const context =
|
|
100
|
+
const context = usePopoverContext();
|
|
117
101
|
const contentRef = React.useRef(null);
|
|
118
102
|
const composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, contentRef);
|
|
119
103
|
const isRightClickOutsideRef = React.useRef(false);
|
|
@@ -158,13 +142,17 @@ const PopoverContent = import_popper.PopperContentFrame.extractable(
|
|
|
158
142
|
}
|
|
159
143
|
)
|
|
160
144
|
);
|
|
145
|
+
function PopoverRepropagateContext(props) {
|
|
146
|
+
const context = usePopoverContext();
|
|
147
|
+
const popperContext = (0, import_popper.usePopperContext)();
|
|
148
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.PopperContext.Provider, { ...popperContext, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverContext.Provider, { ...context, children: props.children }) });
|
|
149
|
+
}
|
|
161
150
|
function PopoverContentPortal(props) {
|
|
162
151
|
const themeName = (0, import_core.useThemeName)();
|
|
163
|
-
const context =
|
|
152
|
+
const context = usePopoverContext();
|
|
164
153
|
let contents = props.children;
|
|
165
154
|
if (import_react_native.Platform.OS === "android") {
|
|
166
|
-
|
|
167
|
-
contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.PopperProvider, { ...popperContext, scope: context.popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverProviderInternal, { scope: props.__scopePopover, ...context, children: props.children }) });
|
|
155
|
+
contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverRepropagateContext, { children: props.children });
|
|
168
156
|
}
|
|
169
157
|
const zIndex = props.zIndex ?? 15e4;
|
|
170
158
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_portal.Portal, { zIndex, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.Theme, { forceClassName: true, name: themeName, children: [
|
|
@@ -180,7 +168,6 @@ function PopoverContentPortal(props) {
|
|
|
180
168
|
}
|
|
181
169
|
const PopoverContentImpl = React.forwardRef((props, forwardedRef) => {
|
|
182
170
|
const {
|
|
183
|
-
__scopePopover,
|
|
184
171
|
trapFocus,
|
|
185
172
|
onOpenAutoFocus,
|
|
186
173
|
onCloseAutoFocus,
|
|
@@ -193,8 +180,7 @@ const PopoverContentImpl = React.forwardRef((props, forwardedRef) => {
|
|
|
193
180
|
disableRemoveScroll,
|
|
194
181
|
...contentProps
|
|
195
182
|
} = props;
|
|
196
|
-
const
|
|
197
|
-
const context = usePopoverInternalContext(CONTENT_NAME, popperScope.__scopePopover);
|
|
183
|
+
const context = usePopoverContext();
|
|
198
184
|
const [isFullyHidden, setIsFullyHidden] = React.useState(!context.open);
|
|
199
185
|
if (context.breakpointActive) {
|
|
200
186
|
const childrenWithoutScrollView = React.Children.toArray(children).map((child) => {
|
|
@@ -205,7 +191,7 @@ const PopoverContentImpl = React.forwardRef((props, forwardedRef) => {
|
|
|
205
191
|
}
|
|
206
192
|
return child;
|
|
207
193
|
});
|
|
208
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_portal.PortalItem, { hostName: `${context.
|
|
194
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_portal.PortalItem, { hostName: `${context.id}PopoverContents`, children: childrenWithoutScrollView });
|
|
209
195
|
}
|
|
210
196
|
if (context.open && isFullyHidden) {
|
|
211
197
|
setIsFullyHidden(false);
|
|
@@ -226,7 +212,6 @@ const PopoverContentImpl = React.forwardRef((props, forwardedRef) => {
|
|
|
226
212
|
id: context.contentId,
|
|
227
213
|
pointerEvents: "auto",
|
|
228
214
|
ref: forwardedRef,
|
|
229
|
-
...popperScope,
|
|
230
215
|
...contentProps,
|
|
231
216
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
232
217
|
import_remove_scroll.RemoveScroll,
|
|
@@ -255,16 +240,15 @@ const PopoverContentImpl = React.forwardRef((props, forwardedRef) => {
|
|
|
255
240
|
}
|
|
256
241
|
);
|
|
257
242
|
});
|
|
258
|
-
const CLOSE_NAME = "PopoverClose";
|
|
259
243
|
const PopoverClose = React.forwardRef(
|
|
260
|
-
(props, forwardedRef)
|
|
261
|
-
const
|
|
262
|
-
const context = usePopoverInternalContext(CLOSE_NAME, __scopePopover);
|
|
244
|
+
function PopoverClose2(props, forwardedRef) {
|
|
245
|
+
const context = usePopoverContext();
|
|
263
246
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
264
247
|
import_stacks.YStack,
|
|
265
248
|
{
|
|
266
|
-
...
|
|
249
|
+
...props,
|
|
267
250
|
ref: forwardedRef,
|
|
251
|
+
componentName: "PopoverClose",
|
|
268
252
|
onPress: (0, import_core.composeEventHandlers)(
|
|
269
253
|
props.onPress,
|
|
270
254
|
() => context.onOpenChange(false)
|
|
@@ -273,38 +257,24 @@ const PopoverClose = React.forwardRef(
|
|
|
273
257
|
);
|
|
274
258
|
}
|
|
275
259
|
);
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
(props, forwardedRef) => {
|
|
280
|
-
const { __scopePopover, ...arrowProps } = props;
|
|
281
|
-
const popperScope = usePopoverScope(__scopePopover);
|
|
282
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.PopperArrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
|
|
260
|
+
const PopoverArrow = React.forwardRef(
|
|
261
|
+
function PopoverArrow2(props, forwardedRef) {
|
|
262
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.PopperArrow, { componentName: "PopoverArrow", ...props, ref: forwardedRef });
|
|
283
263
|
}
|
|
284
264
|
);
|
|
285
|
-
PopoverArrow.displayName = ARROW_NAME;
|
|
286
265
|
const PopoverScrollView = React.forwardRef((props, ref) => {
|
|
287
266
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.ScrollView, { ref, ...props });
|
|
288
267
|
});
|
|
289
268
|
const Popover = (0, import_core.withStaticProperties)(
|
|
290
269
|
function Popover2(props) {
|
|
291
|
-
const {
|
|
292
|
-
|
|
293
|
-
children,
|
|
294
|
-
open: openProp,
|
|
295
|
-
defaultOpen,
|
|
296
|
-
onOpenChange,
|
|
297
|
-
...restProps
|
|
298
|
-
} = props;
|
|
299
|
-
const internalId = React.useId();
|
|
300
|
-
const id = __scopePopover ? Object.keys(__scopePopover)[0] : internalId;
|
|
270
|
+
const { children, open: openProp, defaultOpen, onOpenChange, ...restProps } = props;
|
|
271
|
+
const id = React.useId();
|
|
301
272
|
const { when, AdaptProvider } = (0, import_adapt.useAdaptParent)({
|
|
302
273
|
Contents: React.useCallback(() => {
|
|
303
274
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_portal.PortalHost, { name: `${id}PopoverContents` });
|
|
304
275
|
}, [])
|
|
305
276
|
});
|
|
306
277
|
const sheetBreakpoint = when;
|
|
307
|
-
const popperScope = usePopoverScope(__scopePopover);
|
|
308
278
|
const triggerRef = React.useRef(null);
|
|
309
279
|
const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);
|
|
310
280
|
const [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
|
|
@@ -316,9 +286,7 @@ const Popover = (0, import_core.withStaticProperties)(
|
|
|
316
286
|
const breakpointActive = useSheetBreakpointActive(sheetBreakpoint);
|
|
317
287
|
const floatingContext = (0, import_useFloatingContext.useFloatingContext)({ open, setOpen, breakpointActive });
|
|
318
288
|
const popoverContext = {
|
|
319
|
-
|
|
320
|
-
scopeKey: id,
|
|
321
|
-
popperScope: popperScope.__scopePopper,
|
|
289
|
+
id,
|
|
322
290
|
sheetBreakpoint,
|
|
323
291
|
contentId: React.useId(),
|
|
324
292
|
triggerRef,
|
|
@@ -335,7 +303,7 @@ const Popover = (0, import_core.withStaticProperties)(
|
|
|
335
303
|
onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),
|
|
336
304
|
onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), [])
|
|
337
305
|
};
|
|
338
|
-
const contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.Popper, {
|
|
306
|
+
const contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.Popper, { stayInFrame: true, ...restProps, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverContext.Provider, { ...popoverContext, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverSheetController, { onOpenChange: setOpen, children }) }) });
|
|
339
307
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AdaptProvider, { children: import_core.isWeb ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_floating.FloatingOverrideContext.Provider, { value: floatingContext, children: contents }) : contents });
|
|
340
308
|
},
|
|
341
309
|
{
|
|
@@ -353,10 +321,7 @@ function getState(open) {
|
|
|
353
321
|
return open ? "open" : "closed";
|
|
354
322
|
}
|
|
355
323
|
const PopoverSheetController = (props) => {
|
|
356
|
-
const context =
|
|
357
|
-
"PopoverSheetController",
|
|
358
|
-
props.__scopePopover
|
|
359
|
-
);
|
|
324
|
+
const context = usePopoverContext();
|
|
360
325
|
const showSheet = useShowPopoverSheet(context);
|
|
361
326
|
const breakpointActive = context.breakpointActive;
|
|
362
327
|
const getShowSheet = (0, import_core.useGet)(showSheet);
|
|
@@ -392,9 +357,8 @@ const useShowPopoverSheet = (context) => {
|
|
|
392
357
|
PopoverArrow,
|
|
393
358
|
PopoverClose,
|
|
394
359
|
PopoverContent,
|
|
360
|
+
PopoverContext,
|
|
395
361
|
PopoverTrigger,
|
|
396
|
-
|
|
397
|
-
createPopoverScope,
|
|
398
|
-
usePopoverScope
|
|
362
|
+
usePopoverContext
|
|
399
363
|
});
|
|
400
364
|
//# sourceMappingURL=Popover.js.map
|
package/dist/cjs/Popover.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Popover.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
5
|
-
"names": ["PopoverContent", "Popover"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["PopoverAnchor", "PopoverTrigger", "PopoverContent", "PopoverClose", "PopoverArrow", "Popover"]
|
|
6
6
|
}
|
package/dist/esm/Popover.js
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
Stack,
|
|
9
9
|
Theme,
|
|
10
10
|
composeEventHandlers,
|
|
11
|
+
createStyledContext,
|
|
11
12
|
isWeb,
|
|
12
13
|
useEvent,
|
|
13
14
|
useGet,
|
|
@@ -15,7 +16,6 @@ import {
|
|
|
15
16
|
useThemeName,
|
|
16
17
|
withStaticProperties
|
|
17
18
|
} from "@tamagui/core";
|
|
18
|
-
import { createContextScope } from "@tamagui/create-context";
|
|
19
19
|
import { FloatingOverrideContext } from "@tamagui/floating";
|
|
20
20
|
import { FocusScope } from "@tamagui/focus-scope";
|
|
21
21
|
import {
|
|
@@ -24,8 +24,7 @@ import {
|
|
|
24
24
|
PopperArrow,
|
|
25
25
|
PopperContent,
|
|
26
26
|
PopperContentFrame,
|
|
27
|
-
|
|
28
|
-
createPopperScope,
|
|
27
|
+
PopperContext,
|
|
29
28
|
usePopperContext
|
|
30
29
|
} from "@tamagui/popper";
|
|
31
30
|
import { Portal, PortalHost, PortalItem } from "@tamagui/portal";
|
|
@@ -36,51 +35,37 @@ import { useControllableState } from "@tamagui/use-controllable-state";
|
|
|
36
35
|
import * as React from "react";
|
|
37
36
|
import { Platform, ScrollView } from "react-native";
|
|
38
37
|
import { useFloatingContext } from "./useFloatingContext";
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
POPOVER_NAME,
|
|
42
|
-
[createPopperScope]
|
|
43
|
-
);
|
|
44
|
-
const usePopoverScope = createPopperScope();
|
|
45
|
-
const createPopoverScope = createPopoverScopeInternal;
|
|
46
|
-
const [PopoverProviderInternal, usePopoverInternalContext] = createPopoverContext(POPOVER_NAME);
|
|
47
|
-
const __PopoverProviderInternal = PopoverProviderInternal;
|
|
48
|
-
const ANCHOR_NAME = "PopoverAnchor";
|
|
38
|
+
const PopoverContext = createStyledContext({});
|
|
39
|
+
const usePopoverContext = () => React.useContext(PopoverContext);
|
|
49
40
|
const PopoverAnchor = React.forwardRef(
|
|
50
|
-
(props, forwardedRef)
|
|
51
|
-
const
|
|
52
|
-
const context = usePopoverInternalContext(ANCHOR_NAME, __scopePopover);
|
|
53
|
-
const popperScope = usePopoverScope(__scopePopover);
|
|
41
|
+
function PopoverAnchor2(props, forwardedRef) {
|
|
42
|
+
const context = usePopoverContext();
|
|
54
43
|
const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
|
|
55
44
|
React.useEffect(() => {
|
|
56
45
|
onCustomAnchorAdd();
|
|
57
46
|
return () => onCustomAnchorRemove();
|
|
58
47
|
}, [onCustomAnchorAdd, onCustomAnchorRemove]);
|
|
59
|
-
return /* @__PURE__ */ jsx(PopperAnchor, { ...
|
|
48
|
+
return /* @__PURE__ */ jsx(PopperAnchor, { ...props, ref: forwardedRef });
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
const PopoverTrigger = React.forwardRef(
|
|
52
|
+
function PopoverTrigger2(props, forwardedRef) {
|
|
53
|
+
const context = usePopoverContext();
|
|
54
|
+
const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
|
|
55
|
+
const trigger = /* @__PURE__ */ jsx(
|
|
56
|
+
YStack,
|
|
57
|
+
{
|
|
58
|
+
"aria-haspopup": "dialog",
|
|
59
|
+
"aria-expanded": context.open,
|
|
60
|
+
"data-state": getState(context.open),
|
|
61
|
+
...props,
|
|
62
|
+
ref: composedTriggerRef,
|
|
63
|
+
onPress: composeEventHandlers(props.onPress, context.onOpenToggle)
|
|
64
|
+
}
|
|
65
|
+
);
|
|
66
|
+
return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperAnchor, { asChild: true, children: trigger });
|
|
60
67
|
}
|
|
61
68
|
);
|
|
62
|
-
PopoverAnchor.displayName = ANCHOR_NAME;
|
|
63
|
-
const TRIGGER_NAME = "PopoverTrigger";
|
|
64
|
-
const PopoverTrigger = React.forwardRef((props, forwardedRef) => {
|
|
65
|
-
const { __scopePopover, ...triggerProps } = props;
|
|
66
|
-
const context = usePopoverInternalContext(TRIGGER_NAME, __scopePopover);
|
|
67
|
-
const popperScope = usePopoverScope(__scopePopover);
|
|
68
|
-
const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);
|
|
69
|
-
const trigger = /* @__PURE__ */ jsx(
|
|
70
|
-
YStack,
|
|
71
|
-
{
|
|
72
|
-
"aria-haspopup": "dialog",
|
|
73
|
-
"aria-expanded": context.open,
|
|
74
|
-
"data-state": getState(context.open),
|
|
75
|
-
...triggerProps,
|
|
76
|
-
ref: composedTriggerRef,
|
|
77
|
-
onPress: composeEventHandlers(props.onPress, context.onOpenToggle)
|
|
78
|
-
}
|
|
79
|
-
);
|
|
80
|
-
return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperAnchor, { asChild: true, ...popperScope, children: trigger });
|
|
81
|
-
});
|
|
82
|
-
PopoverTrigger.displayName = TRIGGER_NAME;
|
|
83
|
-
const CONTENT_NAME = "PopoverContent";
|
|
84
69
|
const PopoverContent = PopperContentFrame.extractable(
|
|
85
70
|
React.forwardRef(
|
|
86
71
|
function PopoverContent2(props, forwardedRef) {
|
|
@@ -91,7 +76,7 @@ const PopoverContent = PopperContentFrame.extractable(
|
|
|
91
76
|
zIndex,
|
|
92
77
|
...contentImplProps
|
|
93
78
|
} = props;
|
|
94
|
-
const context =
|
|
79
|
+
const context = usePopoverContext();
|
|
95
80
|
const contentRef = React.useRef(null);
|
|
96
81
|
const composedRefs = useComposedRefs(forwardedRef, contentRef);
|
|
97
82
|
const isRightClickOutsideRef = React.useRef(false);
|
|
@@ -136,13 +121,17 @@ const PopoverContent = PopperContentFrame.extractable(
|
|
|
136
121
|
}
|
|
137
122
|
)
|
|
138
123
|
);
|
|
124
|
+
function PopoverRepropagateContext(props) {
|
|
125
|
+
const context = usePopoverContext();
|
|
126
|
+
const popperContext = usePopperContext();
|
|
127
|
+
return /* @__PURE__ */ jsx(PopperContext.Provider, { ...popperContext, children: /* @__PURE__ */ jsx(PopoverContext.Provider, { ...context, children: props.children }) });
|
|
128
|
+
}
|
|
139
129
|
function PopoverContentPortal(props) {
|
|
140
130
|
const themeName = useThemeName();
|
|
141
|
-
const context =
|
|
131
|
+
const context = usePopoverContext();
|
|
142
132
|
let contents = props.children;
|
|
143
133
|
if (Platform.OS === "android") {
|
|
144
|
-
|
|
145
|
-
contents = /* @__PURE__ */ jsx(PopperProvider, { ...popperContext, scope: context.popperScope, children: /* @__PURE__ */ jsx(PopoverProviderInternal, { scope: props.__scopePopover, ...context, children: props.children }) });
|
|
134
|
+
contents = /* @__PURE__ */ jsx(PopoverRepropagateContext, { children: props.children });
|
|
146
135
|
}
|
|
147
136
|
const zIndex = props.zIndex ?? 15e4;
|
|
148
137
|
return /* @__PURE__ */ jsx(Portal, { zIndex, children: /* @__PURE__ */ jsxs(Theme, { forceClassName: true, name: themeName, children: [
|
|
@@ -158,7 +147,6 @@ function PopoverContentPortal(props) {
|
|
|
158
147
|
}
|
|
159
148
|
const PopoverContentImpl = React.forwardRef((props, forwardedRef) => {
|
|
160
149
|
const {
|
|
161
|
-
__scopePopover,
|
|
162
150
|
trapFocus,
|
|
163
151
|
onOpenAutoFocus,
|
|
164
152
|
onCloseAutoFocus,
|
|
@@ -171,8 +159,7 @@ const PopoverContentImpl = React.forwardRef((props, forwardedRef) => {
|
|
|
171
159
|
disableRemoveScroll,
|
|
172
160
|
...contentProps
|
|
173
161
|
} = props;
|
|
174
|
-
const
|
|
175
|
-
const context = usePopoverInternalContext(CONTENT_NAME, popperScope.__scopePopover);
|
|
162
|
+
const context = usePopoverContext();
|
|
176
163
|
const [isFullyHidden, setIsFullyHidden] = React.useState(!context.open);
|
|
177
164
|
if (context.breakpointActive) {
|
|
178
165
|
const childrenWithoutScrollView = React.Children.toArray(children).map((child) => {
|
|
@@ -183,7 +170,7 @@ const PopoverContentImpl = React.forwardRef((props, forwardedRef) => {
|
|
|
183
170
|
}
|
|
184
171
|
return child;
|
|
185
172
|
});
|
|
186
|
-
return /* @__PURE__ */ jsx(PortalItem, { hostName: `${context.
|
|
173
|
+
return /* @__PURE__ */ jsx(PortalItem, { hostName: `${context.id}PopoverContents`, children: childrenWithoutScrollView });
|
|
187
174
|
}
|
|
188
175
|
if (context.open && isFullyHidden) {
|
|
189
176
|
setIsFullyHidden(false);
|
|
@@ -204,7 +191,6 @@ const PopoverContentImpl = React.forwardRef((props, forwardedRef) => {
|
|
|
204
191
|
id: context.contentId,
|
|
205
192
|
pointerEvents: "auto",
|
|
206
193
|
ref: forwardedRef,
|
|
207
|
-
...popperScope,
|
|
208
194
|
...contentProps,
|
|
209
195
|
children: /* @__PURE__ */ jsx(
|
|
210
196
|
RemoveScroll,
|
|
@@ -233,16 +219,15 @@ const PopoverContentImpl = React.forwardRef((props, forwardedRef) => {
|
|
|
233
219
|
}
|
|
234
220
|
);
|
|
235
221
|
});
|
|
236
|
-
const CLOSE_NAME = "PopoverClose";
|
|
237
222
|
const PopoverClose = React.forwardRef(
|
|
238
|
-
(props, forwardedRef)
|
|
239
|
-
const
|
|
240
|
-
const context = usePopoverInternalContext(CLOSE_NAME, __scopePopover);
|
|
223
|
+
function PopoverClose2(props, forwardedRef) {
|
|
224
|
+
const context = usePopoverContext();
|
|
241
225
|
return /* @__PURE__ */ jsx(
|
|
242
226
|
YStack,
|
|
243
227
|
{
|
|
244
|
-
...
|
|
228
|
+
...props,
|
|
245
229
|
ref: forwardedRef,
|
|
230
|
+
componentName: "PopoverClose",
|
|
246
231
|
onPress: composeEventHandlers(
|
|
247
232
|
props.onPress,
|
|
248
233
|
() => context.onOpenChange(false)
|
|
@@ -251,38 +236,24 @@ const PopoverClose = React.forwardRef(
|
|
|
251
236
|
);
|
|
252
237
|
}
|
|
253
238
|
);
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
(props, forwardedRef) => {
|
|
258
|
-
const { __scopePopover, ...arrowProps } = props;
|
|
259
|
-
const popperScope = usePopoverScope(__scopePopover);
|
|
260
|
-
return /* @__PURE__ */ jsx(PopperArrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
|
|
239
|
+
const PopoverArrow = React.forwardRef(
|
|
240
|
+
function PopoverArrow2(props, forwardedRef) {
|
|
241
|
+
return /* @__PURE__ */ jsx(PopperArrow, { componentName: "PopoverArrow", ...props, ref: forwardedRef });
|
|
261
242
|
}
|
|
262
243
|
);
|
|
263
|
-
PopoverArrow.displayName = ARROW_NAME;
|
|
264
244
|
const PopoverScrollView = React.forwardRef((props, ref) => {
|
|
265
245
|
return /* @__PURE__ */ jsx(ScrollView, { ref, ...props });
|
|
266
246
|
});
|
|
267
247
|
const Popover = withStaticProperties(
|
|
268
248
|
function Popover2(props) {
|
|
269
|
-
const {
|
|
270
|
-
|
|
271
|
-
children,
|
|
272
|
-
open: openProp,
|
|
273
|
-
defaultOpen,
|
|
274
|
-
onOpenChange,
|
|
275
|
-
...restProps
|
|
276
|
-
} = props;
|
|
277
|
-
const internalId = React.useId();
|
|
278
|
-
const id = __scopePopover ? Object.keys(__scopePopover)[0] : internalId;
|
|
249
|
+
const { children, open: openProp, defaultOpen, onOpenChange, ...restProps } = props;
|
|
250
|
+
const id = React.useId();
|
|
279
251
|
const { when, AdaptProvider } = useAdaptParent({
|
|
280
252
|
Contents: React.useCallback(() => {
|
|
281
253
|
return /* @__PURE__ */ jsx(PortalHost, { name: `${id}PopoverContents` });
|
|
282
254
|
}, [])
|
|
283
255
|
});
|
|
284
256
|
const sheetBreakpoint = when;
|
|
285
|
-
const popperScope = usePopoverScope(__scopePopover);
|
|
286
257
|
const triggerRef = React.useRef(null);
|
|
287
258
|
const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);
|
|
288
259
|
const [open, setOpen] = useControllableState({
|
|
@@ -294,9 +265,7 @@ const Popover = withStaticProperties(
|
|
|
294
265
|
const breakpointActive = useSheetBreakpointActive(sheetBreakpoint);
|
|
295
266
|
const floatingContext = useFloatingContext({ open, setOpen, breakpointActive });
|
|
296
267
|
const popoverContext = {
|
|
297
|
-
|
|
298
|
-
scopeKey: id,
|
|
299
|
-
popperScope: popperScope.__scopePopper,
|
|
268
|
+
id,
|
|
300
269
|
sheetBreakpoint,
|
|
301
270
|
contentId: React.useId(),
|
|
302
271
|
triggerRef,
|
|
@@ -313,7 +282,7 @@ const Popover = withStaticProperties(
|
|
|
313
282
|
onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),
|
|
314
283
|
onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), [])
|
|
315
284
|
};
|
|
316
|
-
const contents = /* @__PURE__ */ jsx(Popper, {
|
|
285
|
+
const contents = /* @__PURE__ */ jsx(Popper, { stayInFrame: true, ...restProps, children: /* @__PURE__ */ jsx(PopoverContext.Provider, { ...popoverContext, children: /* @__PURE__ */ jsx(PopoverSheetController, { onOpenChange: setOpen, children }) }) });
|
|
317
286
|
return /* @__PURE__ */ jsx(AdaptProvider, { children: isWeb ? /* @__PURE__ */ jsx(FloatingOverrideContext.Provider, { value: floatingContext, children: contents }) : contents });
|
|
318
287
|
},
|
|
319
288
|
{
|
|
@@ -331,10 +300,7 @@ function getState(open) {
|
|
|
331
300
|
return open ? "open" : "closed";
|
|
332
301
|
}
|
|
333
302
|
const PopoverSheetController = (props) => {
|
|
334
|
-
const context =
|
|
335
|
-
"PopoverSheetController",
|
|
336
|
-
props.__scopePopover
|
|
337
|
-
);
|
|
303
|
+
const context = usePopoverContext();
|
|
338
304
|
const showSheet = useShowPopoverSheet(context);
|
|
339
305
|
const breakpointActive = context.breakpointActive;
|
|
340
306
|
const getShowSheet = useGet(showSheet);
|
|
@@ -369,9 +335,8 @@ export {
|
|
|
369
335
|
PopoverArrow,
|
|
370
336
|
PopoverClose,
|
|
371
337
|
PopoverContent,
|
|
338
|
+
PopoverContext,
|
|
372
339
|
PopoverTrigger,
|
|
373
|
-
|
|
374
|
-
createPopoverScope,
|
|
375
|
-
usePopoverScope
|
|
340
|
+
usePopoverContext
|
|
376
341
|
};
|
|
377
342
|
//# sourceMappingURL=Popover.js.map
|
package/dist/esm/Popover.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Popover.tsx"],
|
|
4
|
-
"mappings": "
|
|
5
|
-
"names": ["PopoverContent", "Popover"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["PopoverAnchor", "PopoverTrigger", "PopoverContent", "PopoverClose", "PopoverArrow", "Popover"]
|
|
6
6
|
}
|