@tamagui/popover 2.7.7 → 3.0.0-beta.643.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/cjs/Popover.cjs +509 -664
  2. package/dist/cjs/Popover.native.cjs +603 -0
  3. package/dist/cjs/Popover.native.js +536 -691
  4. package/dist/cjs/Popover.native.js.map +1 -1
  5. package/dist/cjs/index.cjs +10 -11
  6. package/dist/cjs/index.native.cjs +22 -0
  7. package/dist/cjs/index.native.js +10 -10
  8. package/dist/cjs/index.native.js.map +1 -1
  9. package/dist/cjs/useFloatingContext.cjs +202 -234
  10. package/dist/cjs/useFloatingContext.native.cjs +36 -0
  11. package/dist/cjs/useFloatingContext.native.js +20 -27
  12. package/dist/cjs/useFloatingContext.native.js.map +1 -1
  13. package/dist/esm/Popover.mjs +473 -617
  14. package/dist/esm/Popover.mjs.map +1 -1
  15. package/dist/esm/Popover.native.js +499 -644
  16. package/dist/esm/Popover.native.js.map +1 -1
  17. package/dist/esm/index.js +3 -3
  18. package/dist/esm/index.mjs +3 -3
  19. package/dist/esm/index.native.js +3 -3
  20. package/dist/esm/useFloatingContext.mjs +186 -208
  21. package/dist/esm/useFloatingContext.mjs.map +1 -1
  22. package/dist/esm/useFloatingContext.native.js +4 -2
  23. package/dist/esm/useFloatingContext.native.js.map +1 -1
  24. package/dist/jsx/Popover.mjs +473 -617
  25. package/dist/jsx/Popover.mjs.map +1 -1
  26. package/dist/jsx/Popover.native.cjs +603 -0
  27. package/dist/jsx/Popover.native.js +536 -691
  28. package/dist/jsx/Popover.native.js.map +1 -1
  29. package/dist/jsx/index.js +3 -3
  30. package/dist/jsx/index.mjs +3 -3
  31. package/dist/jsx/index.native.cjs +22 -0
  32. package/dist/jsx/index.native.js +10 -10
  33. package/dist/jsx/index.native.js.map +1 -1
  34. package/dist/jsx/useFloatingContext.mjs +186 -208
  35. package/dist/jsx/useFloatingContext.mjs.map +1 -1
  36. package/dist/jsx/useFloatingContext.native.cjs +36 -0
  37. package/dist/jsx/useFloatingContext.native.js +20 -27
  38. package/dist/jsx/useFloatingContext.native.js.map +1 -1
  39. package/package.json +22 -22
  40. package/src/Popover.tsx +115 -147
  41. package/types/Popover.d.ts +33 -109
  42. package/types/Popover.d.ts.map +1 -1
  43. package/types/useFloatingContext.d.ts.map +1 -1
  44. package/dist/esm/index.js.map +0 -1
  45. package/dist/esm/index.mjs.map +0 -1
  46. package/dist/esm/index.native.js.map +0 -1
  47. package/dist/jsx/index.js.map +0 -1
  48. package/dist/jsx/index.mjs.map +0 -1
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+
3
4
  var __create = Object.create;
4
5
  var __defProp = Object.defineProperty;
5
6
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -7,51 +8,44 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
7
8
  var __getProtoOf = Object.getPrototypeOf;
8
9
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
10
  var __export = (target, all) => {
10
- for (var name in all) __defProp(target, name, {
11
- get: all[name],
12
- enumerable: true
13
- });
11
+ for (var name in all) __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
14
15
  };
15
16
  var __copyProps = (to, from, except, desc) => {
16
- if (from && typeof from === "object" || typeof from === "function") {
17
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
18
- get: () => from[key],
19
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
- });
21
- }
22
- return to;
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: () => from[key],
20
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
+ });
22
+ }
23
+ return to;
23
24
  };
24
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
- // If the importer is in node compatibility mode or this is not an ESM
26
- // file that has been converted to a CommonJS file using a Babel-
27
- // compatible transform (i.e. "__esModule" has not been set), then set
28
- // "default" to the CommonJS "module.exports" for node compatibility.
29
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
- value: mod,
31
- enumerable: true
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: true
32
28
  }) : target, mod));
33
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
- value: true
35
- }), mod);
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
30
  var Popover_exports = {};
37
31
  __export(Popover_exports, {
38
- Popover: () => Popover,
39
- PopoverAnchor: () => PopoverAnchor,
40
- PopoverArrow: () => PopoverArrow,
41
- PopoverClose: () => PopoverClose,
42
- PopoverContent: () => PopoverContent,
43
- PopoverContext: () => PopoverContext,
44
- PopoverContextProvider: () => PopoverContextProvider,
45
- PopoverTrigger: () => PopoverTrigger,
46
- PopoverTriggerContext: () => PopoverTriggerContext,
47
- PopoverZIndexContext: () => PopoverZIndexContext,
48
- closeLastOpenedPopover: () => closeLastOpenedPopover,
49
- closeOpenPopovers: () => closeOpenPopovers,
50
- hasOpenPopovers: () => hasOpenPopovers,
51
- usePopoverContext: () => usePopoverContext,
52
- usePopoverOpen: () => usePopoverOpen,
53
- usePopoverTriggerContext: () => usePopoverTriggerContext,
54
- usePopoverTriggerSetup: () => usePopoverTriggerSetup
32
+ Popover: () => Popover,
33
+ PopoverAnchor: () => PopoverAnchor,
34
+ PopoverArrow: () => PopoverArrow,
35
+ PopoverClose: () => PopoverClose,
36
+ PopoverContent: () => PopoverContent,
37
+ PopoverContext: () => PopoverContext,
38
+ PopoverContextProvider: () => PopoverContextProvider,
39
+ PopoverTrigger: () => PopoverTrigger,
40
+ PopoverTriggerContext: () => PopoverTriggerContext,
41
+ PopoverZIndexContext: () => PopoverZIndexContext,
42
+ closeLastOpenedPopover: () => closeLastOpenedPopover,
43
+ closeOpenPopovers: () => closeOpenPopovers,
44
+ hasOpenPopovers: () => hasOpenPopovers,
45
+ usePopoverContext: () => usePopoverContext,
46
+ usePopoverOpen: () => usePopoverOpen,
47
+ usePopoverTriggerContext: () => usePopoverTriggerContext,
48
+ usePopoverTriggerSetup: () => usePopoverTriggerSetup
55
49
  });
56
50
  module.exports = __toCommonJS(Popover_exports);
57
51
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -70,691 +64,542 @@ var import_popper = require("@tamagui/popper");
70
64
  var import_portal = require("@tamagui/portal");
71
65
  require("@tamagui/remove-scroll");
72
66
  var import_scroll_view = require("@tamagui/scroll-view");
73
- var import_controller = require("@tamagui/sheet/controller");
74
67
  var import_stacks = require("@tamagui/stacks");
75
68
  var import_use_controllable_state = require("@tamagui/use-controllable-state");
76
69
  var React = __toESM(require("react"), 1);
77
70
  var import_useFloatingContext = require("./useFloatingContext.native.js");
78
71
  var needsRepropagation = (0, import_portal.needsPortalRepropagation)();
79
- var openPopovers = /* @__PURE__ */new Set();
80
- var hasOpenPopovers = function () {
81
- return openPopovers.size > 0;
72
+ var openPopovers = /* @__PURE__ */ new Set();
73
+ var hasOpenPopovers = function() {
74
+ return openPopovers.size > 0;
82
75
  };
83
- var closeOpenPopovers = function () {
84
- if (openPopovers.size === 0) return false;
85
- openPopovers.forEach(function (setOpen) {
86
- return setOpen(false);
87
- });
88
- return true;
76
+ var closeOpenPopovers = function() {
77
+ if (openPopovers.size === 0) return false;
78
+ openPopovers.forEach(function(setOpen) {
79
+ return setOpen(false);
80
+ });
81
+ return true;
89
82
  };
90
- var closeLastOpenedPopover = function () {
91
- if (openPopovers.size === 0) return false;
92
- var last = Array.from(openPopovers).pop();
93
- if (last) {
94
- last(false);
95
- return true;
96
- }
97
- return false;
83
+ var closeLastOpenedPopover = function() {
84
+ if (openPopovers.size === 0) return false;
85
+ var last = Array.from(openPopovers).pop();
86
+ if (last) {
87
+ last(false);
88
+ return true;
89
+ }
90
+ return false;
98
91
  };
99
- var PopoverContext = (0, import_core.createStyledContext)(
100
- // since we always provide this we can avoid setting here
101
- {}, "Popover__");
102
- var PopoverZIndexContext = /* @__PURE__ */React.createContext(void 0);
103
- var PopoverAdaptHiddenContext = /* @__PURE__ */React.createContext(true);
92
+ var PopoverContext = (0, import_core.createStyledContext)({}, "Popover__");
93
+ var PopoverZIndexContext = /* @__PURE__ */ React.createContext(void 0);
104
94
  var PopoverTriggerContext = (0, import_core.createStyledContext)({}, "PopoverTrigger__");
105
95
  var usePopoverContext = PopoverContext.useStyledContext;
106
96
  var usePopoverTriggerContext = PopoverTriggerContext.useStyledContext;
107
97
  function usePopoverOpen(scope) {
108
- return usePopoverContext(scope).open;
98
+ return usePopoverContext(scope).open;
109
99
  }
110
100
  function usePopoverTriggerSetup(open) {
111
- var triggerStateSettersRef = React.useRef(/* @__PURE__ */new Map());
112
- var activeTriggerIdRef = React.useRef(null);
113
- var setActiveTrigger = (0, import_core.useEvent)(function (id) {
114
- var prevId = activeTriggerIdRef.current;
115
- if (prevId === id) return;
116
- if (prevId) {
117
- var _triggerStateSettersRef_current_get;
118
- (_triggerStateSettersRef_current_get = triggerStateSettersRef.current.get(prevId)) === null || _triggerStateSettersRef_current_get === void 0 || _triggerStateSettersRef_current_get(false);
119
- }
120
- activeTriggerIdRef.current = id;
121
- if (id && open) {
122
- var _triggerStateSettersRef_current_get1;
123
- (_triggerStateSettersRef_current_get1 = triggerStateSettersRef.current.get(id)) === null || _triggerStateSettersRef_current_get1 === void 0 || _triggerStateSettersRef_current_get1(true);
124
- }
125
- });
126
- var registerTrigger = (0, import_core.useEvent)(function (id, setOpenState) {
127
- triggerStateSettersRef.current.set(id, setOpenState);
128
- setOpenState(activeTriggerIdRef.current === id && open);
129
- });
130
- var unregisterTrigger = (0, import_core.useEvent)(function (id) {
131
- triggerStateSettersRef.current.delete(id);
132
- if (activeTriggerIdRef.current === id) activeTriggerIdRef.current = null;
133
- });
134
- React.useEffect(function () {
135
- if (!open) {
136
- setActiveTrigger(null);
137
- return;
138
- }
139
- var activeId = activeTriggerIdRef.current;
140
- if (activeId) {
141
- var _triggerStateSettersRef_current_get;
142
- (_triggerStateSettersRef_current_get = triggerStateSettersRef.current.get(activeId)) === null || _triggerStateSettersRef_current_get === void 0 || _triggerStateSettersRef_current_get(true);
143
- }
144
- }, [open, setActiveTrigger]);
145
- return {
146
- setActiveTrigger,
147
- registerTrigger,
148
- unregisterTrigger
149
- };
101
+ var triggerStateSettersRef = React.useRef(/* @__PURE__ */ new Map());
102
+ var activeTriggerIdRef = React.useRef(null);
103
+ var setActiveTrigger = (0, import_core.useEvent)(function(id) {
104
+ var prevId = activeTriggerIdRef.current;
105
+ if (prevId === id) return;
106
+ if (prevId) {
107
+ var _triggerStateSettersRef_current_get;
108
+ (_triggerStateSettersRef_current_get = triggerStateSettersRef.current.get(prevId)) === null || _triggerStateSettersRef_current_get === void 0 || _triggerStateSettersRef_current_get(false);
109
+ }
110
+ activeTriggerIdRef.current = id;
111
+ if (id && open) {
112
+ var _triggerStateSettersRef_current_get1;
113
+ (_triggerStateSettersRef_current_get1 = triggerStateSettersRef.current.get(id)) === null || _triggerStateSettersRef_current_get1 === void 0 || _triggerStateSettersRef_current_get1(true);
114
+ }
115
+ });
116
+ var registerTrigger = (0, import_core.useEvent)(function(id, setOpenState) {
117
+ triggerStateSettersRef.current.set(id, setOpenState);
118
+ setOpenState(activeTriggerIdRef.current === id && open);
119
+ });
120
+ var unregisterTrigger = (0, import_core.useEvent)(function(id) {
121
+ triggerStateSettersRef.current.delete(id);
122
+ if (activeTriggerIdRef.current === id) activeTriggerIdRef.current = null;
123
+ });
124
+ React.useEffect(function() {
125
+ if (!open) {
126
+ setActiveTrigger(null);
127
+ return;
128
+ }
129
+ var activeId = activeTriggerIdRef.current;
130
+ if (activeId) {
131
+ var _triggerStateSettersRef_current_get;
132
+ (_triggerStateSettersRef_current_get = triggerStateSettersRef.current.get(activeId)) === null || _triggerStateSettersRef_current_get === void 0 || _triggerStateSettersRef_current_get(true);
133
+ }
134
+ }, [open, setActiveTrigger]);
135
+ return {
136
+ setActiveTrigger,
137
+ registerTrigger,
138
+ unregisterTrigger
139
+ };
150
140
  }
151
- var PopoverContextProvider = /* @__PURE__ */React.memo(function (param) {
152
- var {
153
- scope,
154
- children,
155
- open,
156
- onOpenChange,
157
- onOpenToggle,
158
- triggerRef,
159
- id = "",
160
- contentId,
161
- hasCustomAnchor = false,
162
- onCustomAnchorAdd = voidFn,
163
- onCustomAnchorRemove = voidFn,
164
- anchorTo,
165
- adaptScope,
166
- breakpointActive,
167
- keepChildrenMounted,
168
- disableDismissable,
169
- hoverable
170
- } = param;
171
- var [branches] = React.useState(function () {
172
- return /* @__PURE__ */new Set();
173
- });
174
- var {
175
- setActiveTrigger,
176
- registerTrigger,
177
- unregisterTrigger
178
- } = usePopoverTriggerSetup(open);
179
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(PopoverContext.Provider, {
180
- scope,
181
- popoverScope: scope,
182
- adaptScope,
183
- id,
184
- contentId,
185
- triggerRef,
186
- open,
187
- onOpenChange,
188
- onOpenToggle,
189
- hasCustomAnchor,
190
- onCustomAnchorAdd,
191
- onCustomAnchorRemove,
192
- anchorTo,
193
- branches,
194
- breakpointActive,
195
- keepChildrenMounted,
196
- disableDismissable,
197
- hoverable,
198
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(PopoverTriggerContext.Provider, {
199
- scope,
200
- triggerRef,
201
- hasCustomAnchor,
202
- anchorTo,
203
- branches,
204
- onOpenToggle,
205
- setActiveTrigger,
206
- registerTrigger,
207
- unregisterTrigger,
208
- children
209
- })
210
- });
141
+ var PopoverContextProvider = /* @__PURE__ */ React.memo(function(param) {
142
+ var { scope, children, open, onOpenChange, onOpenToggle, triggerRef, id = "", contentId, hasCustomAnchor = false, onCustomAnchorAdd = voidFn, onCustomAnchorRemove = voidFn, anchorTo, adaptScope, breakpointActive, keepChildrenMounted, disableDismissable, hoverable } = param;
143
+ var [branches] = React.useState(function() {
144
+ return /* @__PURE__ */ new Set();
145
+ });
146
+ var { setActiveTrigger, registerTrigger, unregisterTrigger } = usePopoverTriggerSetup(open);
147
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverContext.Provider, {
148
+ scope,
149
+ popoverScope: scope,
150
+ adaptScope,
151
+ id,
152
+ contentId,
153
+ triggerRef,
154
+ open,
155
+ onOpenChange,
156
+ onOpenToggle,
157
+ hasCustomAnchor,
158
+ onCustomAnchorAdd,
159
+ onCustomAnchorRemove,
160
+ anchorTo,
161
+ branches,
162
+ breakpointActive,
163
+ keepChildrenMounted,
164
+ disableDismissable,
165
+ hoverable,
166
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverTriggerContext.Provider, {
167
+ scope,
168
+ triggerRef,
169
+ hasCustomAnchor,
170
+ anchorTo,
171
+ branches,
172
+ onOpenToggle,
173
+ setActiveTrigger,
174
+ registerTrigger,
175
+ unregisterTrigger,
176
+ children
177
+ })
178
+ });
211
179
  });
212
- var voidFn = function () {};
213
- var PopoverAnchor = /* @__PURE__ */React.memo(/* @__PURE__ */React.forwardRef(function PopoverAnchor2(props, forwardedRef) {
214
- var {
215
- scope,
216
- ...rest
217
- } = props;
218
- var {
219
- onCustomAnchorAdd,
220
- onCustomAnchorRemove
221
- } = usePopoverContext(scope) || {};
222
- React.useEffect(function () {
223
- onCustomAnchorAdd();
224
- return function () {
225
- return onCustomAnchorRemove();
226
- };
227
- }, [onCustomAnchorAdd, onCustomAnchorRemove]);
228
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_popper.PopperAnchor, {
229
- scope,
230
- ...rest,
231
- ref: forwardedRef
232
- });
180
+ var voidFn = function() {};
181
+ var PopoverAnchor = /* @__PURE__ */ React.memo((0, import_core.createRefComponent)(function PopoverAnchor2(props, forwardedRef) {
182
+ var { scope, ...rest } = props;
183
+ var { onCustomAnchorAdd, onCustomAnchorRemove } = usePopoverContext(scope) || {};
184
+ React.useEffect(function() {
185
+ onCustomAnchorAdd();
186
+ return function() {
187
+ return onCustomAnchorRemove();
188
+ };
189
+ }, [onCustomAnchorAdd, onCustomAnchorRemove]);
190
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.PopperAnchor, {
191
+ scope,
192
+ ...rest,
193
+ ref: forwardedRef
194
+ });
233
195
  }));
234
- var PopoverTrigger = /* @__PURE__ */React.memo(/* @__PURE__ */React.forwardRef(function PopoverTrigger2(props, forwardedRef) {
235
- var {
236
- scope,
237
- disablePressTrigger,
238
- ...rest
239
- } = props;
240
- var triggerContext = usePopoverTriggerContext(scope);
241
- var triggerId = React.useId();
242
- var [open, setOpen] = React.useState(false);
243
- var anchorTo = triggerContext.anchorTo;
244
- var triggerElRef = React.useRef(null);
245
- var composedTriggerRef = (0, import_compose_refs.useComposedRefs)(forwardedRef, triggerElRef);
246
- var {
247
- registerTrigger,
248
- unregisterTrigger
249
- } = triggerContext;
250
- React.useEffect(function () {
251
- registerTrigger(triggerId, setOpen);
252
- return function () {
253
- unregisterTrigger(triggerId);
254
- };
255
- }, [registerTrigger, unregisterTrigger, triggerId]);
256
- if (!rest.children) return null;
257
- var activateSelf = function () {
258
- triggerContext.setActiveTrigger(triggerId);
259
- var el = triggerElRef.current;
260
- if (el) triggerContext.triggerRef.current = el;
261
- };
262
- var trigger = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_core.View, {
263
- "aria-expanded": open,
264
- "data-state": getState(open),
265
- ...rest,
266
- ref: composedTriggerRef,
267
- onPress: (0, import_helpers.composeEventHandlers)(rest.onPress, function () {
268
- if (disablePressTrigger) return;
269
- triggerContext.setActiveTrigger(open ? null : triggerId);
270
- triggerContext.onOpenToggle();
271
- }),
272
- onMouseEnter: (0, import_helpers.composeEventHandlers)(rest.onMouseEnter, activateSelf),
273
- onPressIn: (0, import_helpers.composeEventHandlers)(rest.onPressIn, activateSelf),
274
- onFocus: (0, import_helpers.composeEventHandlers)(rest.onFocus, activateSelf)
275
- });
276
- var virtualRef = React.useMemo(function () {
277
- if (!anchorTo) return null;
278
- return {
279
- current: {
280
- getBoundingClientRect: function () {
281
- return import_constants.isWeb ? DOMRect.fromRect(anchorTo) : anchorTo;
282
- },
283
- ...(!import_constants.isWeb && {
284
- measure: function (c) {
285
- return c(anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.x, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.y, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.width, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.height);
286
- },
287
- measureInWindow: function (c) {
288
- return c(anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.x, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.y, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.width, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.height);
289
- }
290
- })
291
- }
292
- };
293
- }, [triggerContext.anchorTo, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.x, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.y, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.height, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.width]);
294
- var wrappedTrigger = import_constants.isWeb ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_dismissable.DismissableBranch, {
295
- branches: triggerContext.branches,
296
- children: trigger
297
- }) : trigger;
298
- return triggerContext.hasCustomAnchor ? wrappedTrigger : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_popper.PopperAnchor, {
299
- ...(virtualRef && {
300
- virtualRef
301
- }),
302
- scope,
303
- asChild: true,
304
- children: wrappedTrigger
305
- });
196
+ var PopoverTrigger = /* @__PURE__ */ React.memo((0, import_core.createRefComponent)(function PopoverTrigger2(props, forwardedRef) {
197
+ var { scope, disablePressTrigger, ...rest } = props;
198
+ var triggerContext = usePopoverTriggerContext(scope);
199
+ var triggerId = React.useId();
200
+ var [open, setOpen] = React.useState(false);
201
+ var anchorTo = triggerContext.anchorTo;
202
+ var triggerElRef = React.useRef(null);
203
+ var composedTriggerRef = (0, import_compose_refs.useComposedRefs)(forwardedRef, triggerElRef);
204
+ var { registerTrigger, unregisterTrigger } = triggerContext;
205
+ React.useEffect(function() {
206
+ registerTrigger(triggerId, setOpen);
207
+ return function() {
208
+ unregisterTrigger(triggerId);
209
+ };
210
+ }, [
211
+ registerTrigger,
212
+ unregisterTrigger,
213
+ triggerId
214
+ ]);
215
+ if (!rest.children) return null;
216
+ var activateSelf = function() {
217
+ triggerContext.setActiveTrigger(triggerId);
218
+ var el = triggerElRef.current;
219
+ if (el) triggerContext.triggerRef.current = el;
220
+ };
221
+ var trigger = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.View, {
222
+ "aria-expanded": open,
223
+ "data-state": getState(open),
224
+ ...rest,
225
+ ref: composedTriggerRef,
226
+ onPress: (0, import_helpers.composeEventHandlers)(rest.onPress, function() {
227
+ if (disablePressTrigger) return;
228
+ triggerContext.setActiveTrigger(open ? null : triggerId);
229
+ triggerContext.onOpenToggle();
230
+ }),
231
+ onMouseEnter: (0, import_helpers.composeEventHandlers)(rest.onMouseEnter, activateSelf),
232
+ onPressIn: (0, import_helpers.composeEventHandlers)(rest.onPressIn, activateSelf),
233
+ onFocus: (0, import_helpers.composeEventHandlers)(rest.onFocus, activateSelf)
234
+ });
235
+ var virtualRef = React.useMemo(function() {
236
+ if (!anchorTo) return null;
237
+ return { current: {
238
+ getBoundingClientRect: function() {
239
+ return import_constants.isWeb ? DOMRect.fromRect(anchorTo) : anchorTo;
240
+ },
241
+ ...!import_constants.isWeb && {
242
+ measure: function(c) {
243
+ return c(anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.x, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.y, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.width, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.height);
244
+ },
245
+ measureInWindow: function(c) {
246
+ return c(anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.x, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.y, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.width, anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.height);
247
+ }
248
+ }
249
+ } };
250
+ }, [
251
+ triggerContext.anchorTo,
252
+ anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.x,
253
+ anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.y,
254
+ anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.height,
255
+ anchorTo === null || anchorTo === void 0 ? void 0 : anchorTo.width
256
+ ]);
257
+ var wrappedTrigger = import_constants.isWeb ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dismissable.DismissableBranch, {
258
+ branches: triggerContext.branches,
259
+ children: trigger
260
+ }) : trigger;
261
+ return triggerContext.hasCustomAnchor ? wrappedTrigger : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.PopperAnchor, {
262
+ ...virtualRef && { virtualRef },
263
+ scope,
264
+ asChild: true,
265
+ children: wrappedTrigger
266
+ });
306
267
  }));
307
- var PopoverContent = import_popper.PopperContentFrame.styleable(function PopoverContent2(props, forwardedRef) {
308
- var {
309
- trapFocus,
310
- enableRemoveScroll = false,
311
- zIndex: zIndexProp,
312
- scope,
313
- ...contentImplProps
314
- } = props;
315
- var context = usePopoverContext(scope);
316
- var zIndexFromContext = React.useContext(PopoverZIndexContext);
317
- var zIndex = zIndexProp !== null && zIndexProp !== void 0 ? zIndexProp : zIndexFromContext;
318
- var open = usePopoverOpen(scope);
319
- var contentRef = React.useRef(null);
320
- var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, contentRef);
321
- var isRightClickOutsideRef = React.useRef(false);
322
- var [isFullyHidden, setIsFullyHidden] = React.useState(!open);
323
- (0, import_constants.useIsomorphicLayoutEffect)(function () {
324
- if (open && isFullyHidden) setIsFullyHidden(false);
325
- }, [open, isFullyHidden]);
326
- var isAdaptFullyHidden = React.useContext(PopoverAdaptHiddenContext);
327
- if (!context.keepChildrenMounted) {
328
- if (context.breakpointActive) {
329
- if (!open && isAdaptFullyHidden) return null;
330
- } else if (isFullyHidden && !open) return null;
331
- }
332
- var _contentImplProps_pointerEvents;
333
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(PopoverPortal, {
334
- passThrough: context.breakpointActive,
335
- context,
336
- open,
337
- zIndex,
338
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_core.View, {
339
- passThrough: context.breakpointActive,
340
- pointerEvents: open ? (_contentImplProps_pointerEvents = contentImplProps.pointerEvents) !== null && _contentImplProps_pointerEvents !== void 0 ? _contentImplProps_pointerEvents : "auto" : "none",
341
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(PopoverContentImpl, {
342
- ...contentImplProps,
343
- context,
344
- open,
345
- enableRemoveScroll,
346
- ref: composedRefs,
347
- setIsFullyHidden,
348
- scope,
349
- trapFocus: trapFocus !== null && trapFocus !== void 0 ? trapFocus : open,
350
- disableOutsidePointerEvents: true,
351
- onCloseAutoFocus: props.onCloseAutoFocus === false ? void 0 : (0, import_helpers.composeEventHandlers)(props.onCloseAutoFocus, function (event) {
352
- var _context_triggerRef_current;
353
- if (event.defaultPrevented) return;
354
- event.preventDefault();
355
- if (!isRightClickOutsideRef.current) (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 || _context_triggerRef_current.focus();
356
- }),
357
- onPointerDownOutside: (0, import_helpers.composeEventHandlers)(props.onPointerDownOutside, function (event) {
358
- var originalEvent = event.detail.originalEvent;
359
- var ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
360
- isRightClickOutsideRef.current = originalEvent.button === 2 || ctrlLeftClick;
361
- }, {
362
- checkDefaultPrevented: false
363
- }),
364
- onFocusOutside: (0, import_helpers.composeEventHandlers)(props.onFocusOutside, function (event) {
365
- return event.preventDefault();
366
- }, {
367
- checkDefaultPrevented: false
368
- })
369
- })
370
- })
371
- });
268
+ var PopoverContent = (0, import_core.createStyledHOC)(import_popper.PopperContentFrame, function PopoverContent2(props, forwardedRef) {
269
+ var { trapFocus, enableRemoveScroll = false, zIndex: zIndexProp, scope, forceMount, ...contentImplProps } = props;
270
+ var context = usePopoverContext(scope);
271
+ var adaptContext = (0, import_adapt.useAdaptContext)(context.adaptScope);
272
+ var zIndexFromContext = React.useContext(PopoverZIndexContext);
273
+ var zIndex = zIndexProp !== null && zIndexProp !== void 0 ? zIndexProp : zIndexFromContext;
274
+ var open = usePopoverOpen(scope);
275
+ var contentRef = React.useRef(null);
276
+ var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, contentRef);
277
+ var isRightClickOutsideRef = React.useRef(false);
278
+ var [isFullyHidden, setIsFullyHidden] = React.useState(!open);
279
+ (0, import_constants.useIsomorphicLayoutEffect)(function() {
280
+ if (open && isFullyHidden) setIsFullyHidden(false);
281
+ }, [open, isFullyHidden]);
282
+ if (!forceMount && !context.keepChildrenMounted) {
283
+ if (context.breakpointActive) {
284
+ if (!open && adaptContext.targetFullyHidden) return null;
285
+ } else if (isFullyHidden && !open) return null;
286
+ }
287
+ var _contentImplProps_pointerEvents;
288
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverPortal, {
289
+ passThrough: context.breakpointActive,
290
+ context,
291
+ open,
292
+ visuallyActive: open || !isFullyHidden,
293
+ zIndex,
294
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.View, {
295
+ passThrough: context.breakpointActive,
296
+ pointerEvents: open ? (_contentImplProps_pointerEvents = contentImplProps.pointerEvents) !== null && _contentImplProps_pointerEvents !== void 0 ? _contentImplProps_pointerEvents : "auto" : "none",
297
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverContentImpl, {
298
+ ...contentImplProps,
299
+ context,
300
+ open,
301
+ forceMount,
302
+ enableRemoveScroll,
303
+ ref: composedRefs,
304
+ setIsFullyHidden,
305
+ scope,
306
+ trapFocus: trapFocus !== null && trapFocus !== void 0 ? trapFocus : open,
307
+ disableOutsidePointerEvents: true,
308
+ onCloseAutoFocus: props.onCloseAutoFocus === false ? void 0 : (0, import_helpers.composeEventHandlers)(props.onCloseAutoFocus, function(event) {
309
+ var _context_triggerRef_current;
310
+ if (event.isCanceled) return;
311
+ event.cancel();
312
+ if (!isRightClickOutsideRef.current) (_context_triggerRef_current = context.triggerRef.current) === null || _context_triggerRef_current === void 0 || _context_triggerRef_current.focus();
313
+ }),
314
+ onPointerDownOutside: (0, import_helpers.composeEventHandlers)(props.onPointerDownOutside, function(event) {
315
+ var originalEvent = event.event;
316
+ if (!originalEvent) return;
317
+ var ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
318
+ isRightClickOutsideRef.current = originalEvent.button === 2 || ctrlLeftClick;
319
+ }, { checkDefaultPrevented: false }),
320
+ onFocusOutside: (0, import_helpers.composeEventHandlers)(props.onFocusOutside, function(event) {
321
+ if (trapFocus !== null && trapFocus !== void 0 ? trapFocus : open) event.cancel();
322
+ }, { checkDefaultPrevented: false })
323
+ })
324
+ })
325
+ });
372
326
  });
373
- var useParentContexts = function (scope) {
374
- var context = usePopoverContext(scope);
375
- var triggerContext = usePopoverTriggerContext(scope);
376
- return {
377
- popperContext: (0, import_popper.usePopperContext)(scope),
378
- adaptContext: (0, import_adapt.useAdaptContext)(context.adaptScope),
379
- context,
380
- triggerContext
381
- };
327
+ var useParentContexts = function(scope) {
328
+ var context = usePopoverContext(scope);
329
+ var triggerContext = usePopoverTriggerContext(scope);
330
+ return {
331
+ popperContext: (0, import_popper.usePopperContext)(scope),
332
+ adaptContext: (0, import_adapt.useAdaptContext)(context.adaptScope),
333
+ context,
334
+ triggerContext
335
+ };
382
336
  };
383
337
  function RepropagateParentContexts(param) {
384
- var {
385
- adaptContext,
386
- children,
387
- context,
388
- triggerContext,
389
- popperContext
390
- } = param;
391
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_popper.PopperProvider, {
392
- scope: context.popoverScope,
393
- ...popperContext,
394
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(PopoverContext.Provider, {
395
- scope: context.popoverScope,
396
- ...context,
397
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(PopoverTriggerContext.Provider, {
398
- scope: context.popoverScope,
399
- ...triggerContext,
400
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_adapt.ProvideAdaptContext, {
401
- ...adaptContext,
402
- children
403
- })
404
- })
405
- })
406
- });
338
+ var { adaptContext, children, context, triggerContext, popperContext } = param;
339
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.PopperProvider, {
340
+ scope: context.popoverScope,
341
+ ...popperContext,
342
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverContext.Provider, {
343
+ scope: context.popoverScope,
344
+ ...context,
345
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverTriggerContext.Provider, {
346
+ scope: context.popoverScope,
347
+ ...triggerContext,
348
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.ProvideAdaptContext, {
349
+ ...adaptContext,
350
+ children
351
+ })
352
+ })
353
+ })
354
+ });
407
355
  }
408
- var PortalAdaptSafe = function (param) {
409
- "use no memo";
410
-
411
- var {
412
- children,
413
- context
414
- } = param;
415
- if (needsRepropagation) {
416
- var parentContexts = useParentContexts(context.popoverScope);
417
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_adapt.AdaptPortalContents, {
418
- scope: context.adaptScope,
419
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(RepropagateParentContexts, {
420
- ...parentContexts,
421
- children
422
- })
423
- });
424
- }
425
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_adapt.AdaptPortalContents, {
426
- scope: context.adaptScope,
427
- children
428
- });
356
+ var PortalAdaptSafe = function(param) {
357
+ "use no memo";
358
+ var { children, context } = param;
359
+ if (needsRepropagation) {
360
+ var parentContexts = useParentContexts(context.popoverScope);
361
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.AdaptPortalContents, {
362
+ scope: context.adaptScope,
363
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RepropagateParentContexts, {
364
+ ...parentContexts,
365
+ children
366
+ })
367
+ });
368
+ }
369
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.AdaptPortalContents, {
370
+ scope: context.adaptScope,
371
+ children
372
+ });
429
373
  };
430
374
  function PopoverPortal(param) {
431
- "use no memo";
432
-
433
- var {
434
- context,
435
- open,
436
- zIndex,
437
- passThrough,
438
- children,
439
- onPress
440
- } = param;
441
- var content = children;
442
- if (needsRepropagation) {
443
- var parentContexts = useParentContexts(context.popoverScope);
444
- content = /* @__PURE__ */(0, import_jsx_runtime.jsx)(RepropagateParentContexts, {
445
- ...parentContexts,
446
- children: content
447
- });
448
- }
449
- return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_portal.Portal, {
450
- passThrough,
451
- stackZIndex: true,
452
- zIndex,
453
- children: [!!open && !context.breakpointActive && !context.hoverable && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_stacks.YStack, {
454
- fullscreen: true,
455
- onPress: (0, import_helpers.composeEventHandlers)(onPress, context.onOpenToggle)
456
- }), content]
457
- });
375
+ "use no memo";
376
+ var { context, open, visuallyActive, zIndex, passThrough, children, onPress } = param;
377
+ var content = children;
378
+ if (needsRepropagation) {
379
+ var parentContexts = useParentContexts(context.popoverScope);
380
+ content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RepropagateParentContexts, {
381
+ ...parentContexts,
382
+ children: content
383
+ });
384
+ }
385
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_portal.Portal, {
386
+ passThrough,
387
+ stackZIndex: true,
388
+ zIndex,
389
+ hidden: !visuallyActive,
390
+ children: [!!open && !context.breakpointActive && !context.hoverable && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {
391
+ position: "absolute",
392
+ inset: 0,
393
+ onPress: (0, import_helpers.composeEventHandlers)(onPress, context.onOpenToggle)
394
+ }), content]
395
+ });
458
396
  }
459
- var PopoverContentImpl = /* @__PURE__ */React.forwardRef(function PopoverContentImpl2(props, forwardedRef) {
460
- var {
461
- trapFocus,
462
- scope,
463
- onOpenAutoFocus,
464
- onCloseAutoFocus,
465
- disableOutsidePointerEvents,
466
- disableFocusScope,
467
- onEscapeKeyDown,
468
- onPointerDownOutside,
469
- onFocusOutside,
470
- onInteractOutside,
471
- children,
472
- enableRemoveScroll,
473
- freezeContentsWhenHidden,
474
- setIsFullyHidden,
475
- lazyMount,
476
- forceUnmount,
477
- context,
478
- open,
479
- alwaysDisable,
480
- ...contentProps
481
- } = props;
482
- var {
483
- keepChildrenMounted,
484
- disableDismissable
485
- } = context;
486
- var handleExitComplete = React.useCallback(function () {
487
- setIsFullyHidden === null || setIsFullyHidden === void 0 || setIsFullyHidden(true);
488
- }, [setIsFullyHidden]);
489
- var contents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_animate_presence.ResetPresence, {
490
- disable: context.breakpointActive,
491
- children
492
- });
493
- React.useCallback(function () {
494
- context.onOpenChange(false, "press");
495
- }, [context]);
496
- if (!context.breakpointActive) {}
497
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_animate.Animate, {
498
- type: "presence",
499
- present: Boolean(open),
500
- keepChildrenMounted: Boolean(keepChildrenMounted),
501
- onExitComplete: handleExitComplete,
502
- lazyMount,
503
- passThrough: context.breakpointActive,
504
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_popper.PopperContent, {
505
- scope,
506
- "data-state": getState(open),
507
- id: context.contentId,
508
- ref: forwardedRef,
509
- passThrough: context.breakpointActive,
510
- ...(!contentProps.unstyled && {
511
- size: "$true",
512
- backgroundColor: "$background",
513
- alignItems: "center"
514
- }),
515
- ...contentProps,
516
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalAdaptSafe, {
517
- context,
518
- children: contents
519
- })
520
- }, context.contentId)
521
- });
397
+ var PopoverContentImpl = (0, import_core.createRefComponent)(function PopoverContentImpl2(props, forwardedRef) {
398
+ var { trapFocus, scope, onOpenAutoFocus, onCloseAutoFocus, disableOutsidePointerEvents, disableFocusScope, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, children, enableRemoveScroll, freezeContentsWhenHidden, setIsFullyHidden, lazyMount, forceUnmount, forceMount, context, open, alwaysDisable, ...contentProps } = props;
399
+ var { disableDismissable } = context;
400
+ var keepChildrenMounted = context.keepChildrenMounted || forceMount;
401
+ var handleExitComplete = React.useCallback(function() {
402
+ setIsFullyHidden === null || setIsFullyHidden === void 0 || setIsFullyHidden(true);
403
+ }, [setIsFullyHidden]);
404
+ var contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_animate_presence.ResetPresence, {
405
+ disable: context.breakpointActive,
406
+ children
407
+ });
408
+ React.useCallback(function() {
409
+ context.onOpenChange(false, "press");
410
+ }, [context]);
411
+ if (!context.breakpointActive) {}
412
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_animate.Animate, {
413
+ type: "presence",
414
+ present: Boolean(open),
415
+ keepChildrenMounted: Boolean(keepChildrenMounted),
416
+ onExitComplete: handleExitComplete,
417
+ lazyMount,
418
+ passThrough: context.breakpointActive,
419
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.PopperContent, {
420
+ scope,
421
+ "data-state": getState(open),
422
+ id: context.contentId,
423
+ ref: forwardedRef,
424
+ passThrough: context.breakpointActive,
425
+ ...contentProps,
426
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalAdaptSafe, {
427
+ context,
428
+ children: contents
429
+ })
430
+ }, context.contentId)
431
+ });
522
432
  });
523
- var PopoverClose = /* @__PURE__ */React.forwardRef(function PopoverClose2(props, forwardedRef) {
524
- var {
525
- scope,
526
- ...rest
527
- } = props;
528
- var context = usePopoverContext(scope);
529
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_stacks.YStack, {
530
- ...rest,
531
- ref: forwardedRef,
532
- componentName: "PopoverClose",
533
- onPress: (0, import_helpers.composeEventHandlers)(props.onPress, function () {
534
- var _context_onOpenChange;
535
- return context === null || context === void 0 ? void 0 : (_context_onOpenChange = context.onOpenChange) === null || _context_onOpenChange === void 0 ? void 0 : _context_onOpenChange.call(context, false, "press");
536
- })
537
- });
433
+ var PopoverClose = (0, import_core.createRefComponent)(function PopoverClose2(props, forwardedRef) {
434
+ var { scope, className, ...rest } = props;
435
+ var context = usePopoverContext(scope);
436
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {
437
+ ...rest,
438
+ ref: forwardedRef,
439
+ className: `is_PopoverClose ${className || ""}`.trim(),
440
+ onPress: (0, import_helpers.composeEventHandlers)(props.onPress, function() {
441
+ var _context_onOpenChange;
442
+ return context === null || context === void 0 ? void 0 : (_context_onOpenChange = context.onOpenChange) === null || _context_onOpenChange === void 0 ? void 0 : _context_onOpenChange.call(context, false, "press");
443
+ })
444
+ });
538
445
  });
539
- var PopoverArrow = import_popper.PopperArrowFrame.styleable(function PopoverArrow2(props, forwardedRef) {
540
- var {
541
- scope,
542
- ...rest
543
- } = props;
544
- var context = usePopoverContext(scope);
545
- if ((0, import_adapt.useAdaptIsActive)(context.adaptScope)) return null;
546
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_popper.PopperArrow, {
547
- scope,
548
- componentName: "PopoverArrow",
549
- ...rest,
550
- ref: forwardedRef
551
- });
446
+ var PopoverArrow = (0, import_core.createStyledHOC)(import_popper.PopperArrowFrame, function PopoverArrow2(props, forwardedRef) {
447
+ var { scope, className, ...rest } = props;
448
+ var context = usePopoverContext(scope);
449
+ if ((0, import_adapt.useAdaptIsActive)(context.adaptScope)) return null;
450
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.PopperArrow, {
451
+ scope,
452
+ className: `is_PopoverArrow ${className || ""}`.trim(),
453
+ ...rest,
454
+ ref: forwardedRef
455
+ });
552
456
  });
553
- var PopoverScrollView = /* @__PURE__ */React.forwardRef(function (param, ref) {
554
- var {
555
- scope,
556
- ...props
557
- } = param;
558
- var context = usePopoverContext(scope);
559
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {
560
- ref,
561
- pointerEvents: context.breakpointActive ? "none" : void 0,
562
- scrollEnabled: !context.breakpointActive,
563
- passThrough: context.breakpointActive,
564
- ...props
565
- });
457
+ var PopoverScrollView = (0, import_core.createRefComponent)(function(param, ref) {
458
+ var { scope, ...props } = param;
459
+ var context = usePopoverContext(scope);
460
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_scroll_view.ScrollView, {
461
+ ref,
462
+ pointerEvents: context.breakpointActive ? "none" : void 0,
463
+ scrollEnabled: !context.breakpointActive,
464
+ passThrough: context.breakpointActive,
465
+ ...props
466
+ });
566
467
  });
567
468
  var DEFAULT_SCOPE = "";
568
- var Popover = (0, import_helpers.withStaticProperties)(/* @__PURE__ */React.forwardRef(function Popover2(param, ref) {
569
- var {
570
- scope = DEFAULT_SCOPE,
571
- ...props
572
- } = param;
573
- var id = React.useId();
574
- var adaptScope = `PopoverAdapt${scope}`;
575
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_adapt.AdaptParent, {
576
- scope: adaptScope,
577
- portal: true,
578
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(PopoverInner, {
579
- adaptScope,
580
- ref,
581
- id,
582
- scope,
583
- ...props
584
- })
585
- });
469
+ var Popover = (0, import_helpers.withStaticProperties)((0, import_core.createRefComponent)(function Popover2(param, ref) {
470
+ var { scope = DEFAULT_SCOPE, ...props } = param;
471
+ var id = React.useId();
472
+ var adaptScope = `PopoverAdapt${scope}`;
473
+ var { open: openProp, defaultOpen, onOpenChange } = props;
474
+ var viaRef = React.useRef(void 0);
475
+ var [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
476
+ prop: openProp,
477
+ defaultProp: defaultOpen || false,
478
+ onChange: function(val) {
479
+ onOpenChange === null || onOpenChange === void 0 || onOpenChange(val, viaRef.current);
480
+ }
481
+ });
482
+ var handleOpenChange = (0, import_core.useEvent)(function(val, via) {
483
+ viaRef.current = via;
484
+ setOpen(val);
485
+ });
486
+ React.useEffect(function() {
487
+ if (!open) return;
488
+ openPopovers.add(setOpen);
489
+ return function() {
490
+ openPopovers.delete(setOpen);
491
+ };
492
+ }, [open, setOpen]);
493
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.AdaptParent, {
494
+ scope: adaptScope,
495
+ open,
496
+ onOpenChange: setOpen,
497
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverInner, {
498
+ adaptScope,
499
+ ref,
500
+ id,
501
+ scope,
502
+ open,
503
+ setOpen,
504
+ handleOpenChange,
505
+ ...props
506
+ })
507
+ });
586
508
  }), {
587
- Anchor: PopoverAnchor,
588
- Arrow: PopoverArrow,
589
- Trigger: PopoverTrigger,
590
- Content: PopoverContent,
591
- Close: PopoverClose,
592
- Adapt: import_adapt.Adapt,
593
- ScrollView: PopoverScrollView,
594
- FocusScope: import_focus_scope.FocusScopeController
509
+ Anchor: PopoverAnchor,
510
+ Arrow: PopoverArrow,
511
+ Trigger: PopoverTrigger,
512
+ Content: PopoverContent,
513
+ Close: PopoverClose,
514
+ Adapt: import_adapt.Adapt,
515
+ ScrollView: PopoverScrollView,
516
+ FocusScope: import_focus_scope.FocusScopeController
595
517
  });
596
- var PopoverInner = /* @__PURE__ */React.forwardRef(function PopoverInner2(props, forwardedRef) {
597
- var {
598
- children,
599
- open: openProp,
600
- defaultOpen,
601
- onOpenChange,
602
- scope = DEFAULT_SCOPE,
603
- keepChildrenMounted: keepChildrenMountedProp,
604
- hoverable,
605
- disableFocus,
606
- disableDismissable,
607
- zIndex,
608
- id,
609
- adaptScope,
610
- ...restProps
611
- } = props;
612
- var triggerRef = React.useRef(null);
613
- var [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);
614
- var viaRef = React.useRef(void 0);
615
- var [keepChildrenMounted] = (0, import_use_controllable_state.useControllableState)({
616
- prop: keepChildrenMountedProp,
617
- defaultProp: false,
618
- transition: keepChildrenMountedProp === "lazy"
619
- });
620
- var [open, setOpen] = (0, import_use_controllable_state.useControllableState)({
621
- prop: openProp,
622
- defaultProp: defaultOpen || false,
623
- onChange: function (val) {
624
- onOpenChange === null || onOpenChange === void 0 || onOpenChange(val, viaRef.current);
625
- }
626
- });
627
- React.useEffect(function () {
628
- if (!open) return;
629
- openPopovers.add(setOpen);
630
- return function () {
631
- openPopovers.delete(setOpen);
632
- };
633
- }, [open, setOpen]);
634
- var handleOpenChange = (0, import_core.useEvent)(function (val, via) {
635
- viaRef.current = via;
636
- setOpen(val);
637
- });
638
- var isAdapted = (0, import_adapt.useAdaptIsActive)(adaptScope);
639
- var floatingContext = (0, import_useFloatingContext.useFloatingContext)({
640
- open,
641
- setOpen: handleOpenChange,
642
- disable: isAdapted,
643
- hoverable,
644
- disableFocus
645
- });
646
- var [anchorTo, setAnchorToRaw] = React.useState();
647
- var setAnchorTo = (0, import_core.useCreateShallowSetState)(setAnchorToRaw);
648
- React.useImperativeHandle(forwardedRef, function () {
649
- return {
650
- anchorTo: setAnchorTo,
651
- toggle: function () {
652
- return setOpen(function (prev) {
653
- return !prev;
654
- });
655
- },
656
- open: function () {
657
- return setOpen(true);
658
- },
659
- close: function () {
660
- return setOpen(false);
661
- },
662
- setOpen
663
- };
664
- });
665
- var contentId = React.useId();
666
- var onOpenToggle = (0, import_core.useEvent)(function () {
667
- if (open && isAdapted) return;
668
- setOpen(!open);
669
- });
670
- var onCustomAnchorAdd = React.useCallback(function () {
671
- return setHasCustomAnchor(true);
672
- }, []);
673
- var onCustomAnchorRemove = React.useCallback(function () {
674
- return setHasCustomAnchor(false);
675
- }, []);
676
- var contents = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_popper.Popper, {
677
- open,
678
- passThrough: isAdapted,
679
- scope,
680
- stayInFrame: true,
681
- ...restProps,
682
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(PopoverContextProvider, {
683
- scope,
684
- open,
685
- onOpenChange: handleOpenChange,
686
- onOpenToggle,
687
- triggerRef,
688
- id,
689
- contentId,
690
- hasCustomAnchor,
691
- onCustomAnchorAdd,
692
- onCustomAnchorRemove,
693
- anchorTo,
694
- adaptScope,
695
- breakpointActive: isAdapted,
696
- keepChildrenMounted,
697
- disableDismissable,
698
- hoverable,
699
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(PopoverSheetController, {
700
- onOpenChange: setOpen,
701
- open,
702
- scope,
703
- children
704
- })
705
- })
706
- });
707
- var result = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
708
- children: import_constants.isWeb ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_floating.FloatingOverrideContext.Provider, {
709
- value: floatingContext,
710
- children: contents
711
- }) : contents
712
- });
713
- if (zIndex !== void 0) return /* @__PURE__ */(0, import_jsx_runtime.jsx)(PopoverZIndexContext.Provider, {
714
- value: zIndex,
715
- children: result
716
- });
717
- return result;
518
+ var PopoverInner = (0, import_core.createRefComponent)(function PopoverInner2(props, forwardedRef) {
519
+ var { children, open: _openProp, defaultOpen: _defaultOpen, onOpenChange: _onOpenChange, scope = DEFAULT_SCOPE, keepChildrenMounted: keepChildrenMountedProp, hoverable, disableFocus, disableDismissable, zIndex, id, adaptScope, open, setOpen, handleOpenChange, ...restProps } = props;
520
+ var triggerRef = React.useRef(null);
521
+ var [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);
522
+ var [keepChildrenMounted] = (0, import_use_controllable_state.useControllableState)({
523
+ prop: keepChildrenMountedProp,
524
+ defaultProp: false,
525
+ transition: keepChildrenMountedProp === "lazy"
526
+ });
527
+ var isAdapted = (0, import_adapt.useAdaptIsActive)(adaptScope);
528
+ var floatingContext = (0, import_useFloatingContext.useFloatingContext)({
529
+ open,
530
+ setOpen: handleOpenChange,
531
+ disable: isAdapted,
532
+ hoverable,
533
+ disableFocus
534
+ });
535
+ var [anchorTo, setAnchorToRaw] = React.useState();
536
+ var setAnchorTo = (0, import_core.useCreateShallowSetState)(setAnchorToRaw);
537
+ React.useImperativeHandle(forwardedRef, function() {
538
+ return {
539
+ anchorTo: setAnchorTo,
540
+ toggle: function() {
541
+ return setOpen(function(prev) {
542
+ return !prev;
543
+ });
544
+ },
545
+ open: function() {
546
+ return setOpen(true);
547
+ },
548
+ close: function() {
549
+ return setOpen(false);
550
+ },
551
+ setOpen
552
+ };
553
+ });
554
+ var contentId = React.useId();
555
+ var onOpenToggle = (0, import_core.useEvent)(function() {
556
+ if (open && isAdapted) return;
557
+ setOpen(!open);
558
+ });
559
+ var onCustomAnchorAdd = React.useCallback(function() {
560
+ return setHasCustomAnchor(true);
561
+ }, []);
562
+ var onCustomAnchorRemove = React.useCallback(function() {
563
+ return setHasCustomAnchor(false);
564
+ }, []);
565
+ var contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.Popper, {
566
+ open,
567
+ passThrough: isAdapted,
568
+ scope,
569
+ stayInFrame: true,
570
+ ...restProps,
571
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverContextProvider, {
572
+ scope,
573
+ open,
574
+ onOpenChange: handleOpenChange,
575
+ onOpenToggle,
576
+ triggerRef,
577
+ id,
578
+ contentId,
579
+ hasCustomAnchor,
580
+ onCustomAnchorAdd,
581
+ onCustomAnchorRemove,
582
+ anchorTo,
583
+ adaptScope,
584
+ breakpointActive: isAdapted,
585
+ keepChildrenMounted,
586
+ disableDismissable,
587
+ hoverable,
588
+ children
589
+ })
590
+ });
591
+ var result = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: import_constants.isWeb ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_floating.FloatingOverrideContext.Provider, {
592
+ value: floatingContext,
593
+ children: contents
594
+ }) : contents });
595
+ if (zIndex !== void 0) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopoverZIndexContext.Provider, {
596
+ value: zIndex,
597
+ children: result
598
+ });
599
+ return result;
718
600
  });
719
601
  function getState(open) {
720
- return open ? "open" : "closed";
602
+ return open ? "open" : "closed";
721
603
  }
722
- var PopoverSheetController = function (param) {
723
- var {
724
- open,
725
- scope,
726
- ...props
727
- } = param;
728
- var context = usePopoverContext(scope);
729
- var showSheet = useShowPopoverSheet(context, open);
730
- var breakpointActive = context === null || context === void 0 ? void 0 : context.breakpointActive;
731
- var getShowSheet = (0, import_core.useGet)(showSheet);
732
- var [isAdaptFullyHidden, setIsAdaptFullyHidden] = React.useState(!open);
733
- if (open && isAdaptFullyHidden) setIsAdaptFullyHidden(false);
734
- var handleSheetAnimationComplete = React.useCallback(function (param2) {
735
- var {
736
- open: isOpen
737
- } = param2;
738
- if (!isOpen) setIsAdaptFullyHidden(true);
739
- }, []);
740
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_controller.SheetController, {
741
- onOpenChange: function (val) {
742
- if (getShowSheet()) {
743
- var _props_onOpenChange;
744
- (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 || _props_onOpenChange.call(props, val);
745
- }
746
- },
747
- onAnimationComplete: handleSheetAnimationComplete,
748
- open,
749
- hidden: !breakpointActive,
750
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(PopoverAdaptHiddenContext.Provider, {
751
- value: isAdaptFullyHidden,
752
- children: props.children
753
- })
754
- });
755
- };
756
- var useShowPopoverSheet = function (context, open) {
757
- var isAdapted = (0, import_adapt.useAdaptIsActive)(context.adaptScope);
758
- return open === false ? false : isAdapted;
759
- };
604
+
760
605
  //# sourceMappingURL=Popover.native.js.map