@radix-ui/react-popover 0.1.7-rc.2 → 0.1.7-rc.3
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/index.d.ts.map +1 -1
- package/dist/index.js +325 -1
- package/dist/index.js.map +1 -1
- package/dist/index.module.js +306 -1
- package/dist/index.module.js.map +1 -1
- package/package.json +12 -12
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"
|
|
1
|
+
{"mappings":";;;;;;;AA2BA,OAAA,yFAEE,CAAC;AAkBH;IACE,QAAQ,CAAC,EAAE,MAAM,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,OAAA,MAAM,SAAS,MAAM,EAAE,CAAC,YAAY,CAoCnC,CAAC;AAWF,yBAAyB,MAAM,wBAAwB,CAAC,OAAO,gBAAgB,MAAM,CAAC,CAAC;AACvF,mCAA6B,SAAQ,iBAAiB;CAAG;AAEzD,OAAA,MAAM,wGAcL,CAAC;AAWF,4BAA4B,MAAM,wBAAwB,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC;AACpF,oCAA8B,SAAQ,oBAAoB;CAAG;AAE7D,OAAA,MAAM,6GA4BL,CAAC;AAUF,oCAA8B,SAAQ,uBAAuB;IAC3D;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED,OAAA,MAAM,0GAcL,CAAC;AAMF,yBAAyB,MAAM,cAAc,CAAC,mBAAmB,CAAC,CAAC;AAEnE,iCACE,SAAQ,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,6BAA6B,CAAC;IAClF;;OAEG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACrD;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA2GD,uBAAuB,MAAM,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;AACzE,6BAA6B,MAAM,wBAAwB,CAAC,uBAAuB,CAAC,CAAC;AACrF,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,gBAAgB,OAAO,CAAC,CAAC;AACzF,iCACE,SAAQ,kBAAkB,EACxB,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC;IAC1C;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAEvC;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEtD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,eAAe,CAAC,oBAAoB,CAAC,CAAC;CAC1D;AAmED,kCAA4B,SAAQ,oBAAoB;CAAG;AAE3D,OAAA,MAAM,yGAaL,CAAC;AAWF,wBAAwB,MAAM,wBAAwB,CAAC,OAAO,gBAAgB,KAAK,CAAC,CAAC;AACrF,kCAA4B,SAAQ,gBAAgB;CAAG;AAEvD,OAAA,MAAM,qGAML,CAAC;AAUF,OAAA,MAAM,4BAAc,CAAC;AACrB,OAAA,MAAM,iGAAsB,CAAC;AAC7B,OAAA,MAAM,sGAAwB,CAAC;AAC/B,OAAA,MAAM,mGAAwB,CAAC;AAC/B,OAAA,MAAM,kGAAoB,CAAC;AAC3B,OAAA,MAAM,8FAAoB,CAAC","sources":["packages/react/popover/src/packages/react/popover/src/Popover.tsx","packages/react/popover/src/packages/react/popover/src/index.ts","packages/react/popover/src/index.ts"],"sourcesContent":[null,null,"export * from './Popover';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,326 @@
|
|
|
1
|
-
var
|
|
1
|
+
var $aJPOC$babelruntimehelpersextends = require("@babel/runtime/helpers/extends");
|
|
2
|
+
var $aJPOC$react = require("react");
|
|
3
|
+
var $aJPOC$radixuiprimitive = require("@radix-ui/primitive");
|
|
4
|
+
var $aJPOC$radixuireactcomposerefs = require("@radix-ui/react-compose-refs");
|
|
5
|
+
var $aJPOC$radixuireactcontext = require("@radix-ui/react-context");
|
|
6
|
+
var $aJPOC$radixuireactusecontrollablestate = require("@radix-ui/react-use-controllable-state");
|
|
7
|
+
var $aJPOC$radixuireactpopper = require("@radix-ui/react-popper");
|
|
8
|
+
var $aJPOC$radixuireactdismissablelayer = require("@radix-ui/react-dismissable-layer");
|
|
9
|
+
var $aJPOC$radixuireactfocusscope = require("@radix-ui/react-focus-scope");
|
|
10
|
+
var $aJPOC$radixuireactportal = require("@radix-ui/react-portal");
|
|
11
|
+
var $aJPOC$radixuireactfocusguards = require("@radix-ui/react-focus-guards");
|
|
12
|
+
var $aJPOC$radixuireactpresence = require("@radix-ui/react-presence");
|
|
13
|
+
var $aJPOC$radixuireactprimitive = require("@radix-ui/react-primitive");
|
|
14
|
+
var $aJPOC$radixuireactid = require("@radix-ui/react-id");
|
|
15
|
+
var $aJPOC$reactremovescroll = require("react-remove-scroll");
|
|
16
|
+
var $aJPOC$ariahidden = require("aria-hidden");
|
|
17
|
+
|
|
18
|
+
function $parcel$exportWildcard(dest, source) {
|
|
19
|
+
Object.keys(source).forEach(function(key) {
|
|
20
|
+
if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
Object.defineProperty(dest, key, {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return source[key];
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
return dest;
|
|
33
|
+
}
|
|
34
|
+
function $parcel$interopDefault(a) {
|
|
35
|
+
return a && a.__esModule ? a.default : a;
|
|
36
|
+
}
|
|
37
|
+
function $parcel$export(e, n, v, s) {
|
|
38
|
+
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
39
|
+
}
|
|
40
|
+
var $7d632c09314cddaf$exports = {};
|
|
41
|
+
|
|
42
|
+
$parcel$export($7d632c09314cddaf$exports, "createPopoverScope", () => $7d632c09314cddaf$export$c8393c9e73286932);
|
|
43
|
+
$parcel$export($7d632c09314cddaf$exports, "Popover", () => $7d632c09314cddaf$export$5b6b19405a83ff9d);
|
|
44
|
+
$parcel$export($7d632c09314cddaf$exports, "PopoverAnchor", () => $7d632c09314cddaf$export$96e5381f42521a79);
|
|
45
|
+
$parcel$export($7d632c09314cddaf$exports, "PopoverTrigger", () => $7d632c09314cddaf$export$7dacb05d26466c3);
|
|
46
|
+
$parcel$export($7d632c09314cddaf$exports, "PopoverContent", () => $7d632c09314cddaf$export$d7e1f420b25549ff);
|
|
47
|
+
$parcel$export($7d632c09314cddaf$exports, "PopoverClose", () => $7d632c09314cddaf$export$d6ac43ebaa40d53e);
|
|
48
|
+
$parcel$export($7d632c09314cddaf$exports, "PopoverArrow", () => $7d632c09314cddaf$export$3152841115e061b2);
|
|
49
|
+
$parcel$export($7d632c09314cddaf$exports, "Root", () => $7d632c09314cddaf$export$be92b6f5f03c0fe9);
|
|
50
|
+
$parcel$export($7d632c09314cddaf$exports, "Anchor", () => $7d632c09314cddaf$export$b688253958b8dfe7);
|
|
51
|
+
$parcel$export($7d632c09314cddaf$exports, "Trigger", () => $7d632c09314cddaf$export$41fb9f06171c75f4);
|
|
52
|
+
$parcel$export($7d632c09314cddaf$exports, "Content", () => $7d632c09314cddaf$export$7c6e2c02157bb7d2);
|
|
53
|
+
$parcel$export($7d632c09314cddaf$exports, "Close", () => $7d632c09314cddaf$export$f39c2d165cd861fe);
|
|
54
|
+
$parcel$export($7d632c09314cddaf$exports, "Arrow", () => $7d632c09314cddaf$export$21b07c8f274aebd5);
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
/* -------------------------------------------------------------------------------------------------
|
|
73
|
+
* Popover
|
|
74
|
+
* -----------------------------------------------------------------------------------------------*/ const $7d632c09314cddaf$var$POPOVER_NAME = 'Popover';
|
|
75
|
+
const [$7d632c09314cddaf$var$createPopoverContext, $7d632c09314cddaf$export$c8393c9e73286932] = $aJPOC$radixuireactcontext.createContextScope($7d632c09314cddaf$var$POPOVER_NAME, [
|
|
76
|
+
$aJPOC$radixuireactpopper.createPopperScope
|
|
77
|
+
]);
|
|
78
|
+
const $7d632c09314cddaf$var$usePopperScope = $aJPOC$radixuireactpopper.createPopperScope();
|
|
79
|
+
const [$7d632c09314cddaf$var$PopoverProvider, $7d632c09314cddaf$var$usePopoverContext] = $7d632c09314cddaf$var$createPopoverContext($7d632c09314cddaf$var$POPOVER_NAME);
|
|
80
|
+
const $7d632c09314cddaf$export$5b6b19405a83ff9d = (props)=>{
|
|
81
|
+
const { __scopePopover: __scopePopover , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , modal: modal = false } = props;
|
|
82
|
+
const popperScope = $7d632c09314cddaf$var$usePopperScope(__scopePopover);
|
|
83
|
+
const triggerRef = $aJPOC$react.useRef(null);
|
|
84
|
+
const [hasCustomAnchor, setHasCustomAnchor] = $aJPOC$react.useState(false);
|
|
85
|
+
const [open = false, setOpen] = $aJPOC$radixuireactusecontrollablestate.useControllableState({
|
|
86
|
+
prop: openProp,
|
|
87
|
+
defaultProp: defaultOpen,
|
|
88
|
+
onChange: onOpenChange
|
|
89
|
+
});
|
|
90
|
+
return /*#__PURE__*/ $aJPOC$react.createElement($aJPOC$radixuireactpopper.Root, popperScope, /*#__PURE__*/ $aJPOC$react.createElement($7d632c09314cddaf$var$PopoverProvider, {
|
|
91
|
+
scope: __scopePopover,
|
|
92
|
+
contentId: $aJPOC$radixuireactid.useId(),
|
|
93
|
+
triggerRef: triggerRef,
|
|
94
|
+
open: open,
|
|
95
|
+
onOpenChange: setOpen,
|
|
96
|
+
onOpenToggle: $aJPOC$react.useCallback(()=>setOpen((prevOpen)=>!prevOpen
|
|
97
|
+
)
|
|
98
|
+
, [
|
|
99
|
+
setOpen
|
|
100
|
+
]),
|
|
101
|
+
hasCustomAnchor: hasCustomAnchor,
|
|
102
|
+
onCustomAnchorAdd: $aJPOC$react.useCallback(()=>setHasCustomAnchor(true)
|
|
103
|
+
, []),
|
|
104
|
+
onCustomAnchorRemove: $aJPOC$react.useCallback(()=>setHasCustomAnchor(false)
|
|
105
|
+
, []),
|
|
106
|
+
modal: modal
|
|
107
|
+
}, children));
|
|
108
|
+
};
|
|
109
|
+
/*#__PURE__*/ Object.assign($7d632c09314cddaf$export$5b6b19405a83ff9d, {
|
|
110
|
+
displayName: $7d632c09314cddaf$var$POPOVER_NAME
|
|
111
|
+
});
|
|
112
|
+
/* -------------------------------------------------------------------------------------------------
|
|
113
|
+
* PopoverAnchor
|
|
114
|
+
* -----------------------------------------------------------------------------------------------*/ const $7d632c09314cddaf$var$ANCHOR_NAME = 'PopoverAnchor';
|
|
115
|
+
const $7d632c09314cddaf$export$96e5381f42521a79 = /*#__PURE__*/ $aJPOC$react.forwardRef((props, forwardedRef)=>{
|
|
116
|
+
const { __scopePopover: __scopePopover , ...anchorProps } = props;
|
|
117
|
+
const context = $7d632c09314cddaf$var$usePopoverContext($7d632c09314cddaf$var$ANCHOR_NAME, __scopePopover);
|
|
118
|
+
const popperScope = $7d632c09314cddaf$var$usePopperScope(__scopePopover);
|
|
119
|
+
const { onCustomAnchorAdd: onCustomAnchorAdd , onCustomAnchorRemove: onCustomAnchorRemove } = context;
|
|
120
|
+
$aJPOC$react.useEffect(()=>{
|
|
121
|
+
onCustomAnchorAdd();
|
|
122
|
+
return ()=>onCustomAnchorRemove()
|
|
123
|
+
;
|
|
124
|
+
}, [
|
|
125
|
+
onCustomAnchorAdd,
|
|
126
|
+
onCustomAnchorRemove
|
|
127
|
+
]);
|
|
128
|
+
return /*#__PURE__*/ $aJPOC$react.createElement($aJPOC$radixuireactpopper.Anchor, ($parcel$interopDefault($aJPOC$babelruntimehelpersextends))({}, popperScope, anchorProps, {
|
|
129
|
+
ref: forwardedRef
|
|
130
|
+
}));
|
|
131
|
+
});
|
|
132
|
+
/*#__PURE__*/ Object.assign($7d632c09314cddaf$export$96e5381f42521a79, {
|
|
133
|
+
displayName: $7d632c09314cddaf$var$ANCHOR_NAME
|
|
134
|
+
});
|
|
135
|
+
/* -------------------------------------------------------------------------------------------------
|
|
136
|
+
* PopoverTrigger
|
|
137
|
+
* -----------------------------------------------------------------------------------------------*/ const $7d632c09314cddaf$var$TRIGGER_NAME = 'PopoverTrigger';
|
|
138
|
+
const $7d632c09314cddaf$export$7dacb05d26466c3 = /*#__PURE__*/ $aJPOC$react.forwardRef((props, forwardedRef)=>{
|
|
139
|
+
const { __scopePopover: __scopePopover , ...triggerProps } = props;
|
|
140
|
+
const context = $7d632c09314cddaf$var$usePopoverContext($7d632c09314cddaf$var$TRIGGER_NAME, __scopePopover);
|
|
141
|
+
const popperScope = $7d632c09314cddaf$var$usePopperScope(__scopePopover);
|
|
142
|
+
const composedTriggerRef = $aJPOC$radixuireactcomposerefs.useComposedRefs(forwardedRef, context.triggerRef);
|
|
143
|
+
const trigger = /*#__PURE__*/ $aJPOC$react.createElement($aJPOC$radixuireactprimitive.Primitive.button, ($parcel$interopDefault($aJPOC$babelruntimehelpersextends))({
|
|
144
|
+
type: "button",
|
|
145
|
+
"aria-haspopup": "dialog",
|
|
146
|
+
"aria-expanded": context.open,
|
|
147
|
+
"aria-controls": context.contentId,
|
|
148
|
+
"data-state": $7d632c09314cddaf$var$getState(context.open)
|
|
149
|
+
}, triggerProps, {
|
|
150
|
+
ref: composedTriggerRef,
|
|
151
|
+
onClick: $aJPOC$radixuiprimitive.composeEventHandlers(props.onClick, context.onOpenToggle)
|
|
152
|
+
}));
|
|
153
|
+
return context.hasCustomAnchor ? trigger : /*#__PURE__*/ $aJPOC$react.createElement($aJPOC$radixuireactpopper.Anchor, ($parcel$interopDefault($aJPOC$babelruntimehelpersextends))({
|
|
154
|
+
asChild: true
|
|
155
|
+
}, popperScope), trigger);
|
|
156
|
+
});
|
|
157
|
+
/*#__PURE__*/ Object.assign($7d632c09314cddaf$export$7dacb05d26466c3, {
|
|
158
|
+
displayName: $7d632c09314cddaf$var$TRIGGER_NAME
|
|
159
|
+
});
|
|
160
|
+
/* -------------------------------------------------------------------------------------------------
|
|
161
|
+
* PopoverContent
|
|
162
|
+
* -----------------------------------------------------------------------------------------------*/ const $7d632c09314cddaf$var$CONTENT_NAME = 'PopoverContent';
|
|
163
|
+
const $7d632c09314cddaf$export$d7e1f420b25549ff = /*#__PURE__*/ $aJPOC$react.forwardRef((props, forwardedRef)=>{
|
|
164
|
+
const { forceMount: forceMount , ...contentProps } = props;
|
|
165
|
+
const context = $7d632c09314cddaf$var$usePopoverContext($7d632c09314cddaf$var$CONTENT_NAME, props.__scopePopover);
|
|
166
|
+
return /*#__PURE__*/ $aJPOC$react.createElement($aJPOC$radixuireactpresence.Presence, {
|
|
167
|
+
present: forceMount || context.open
|
|
168
|
+
}, context.modal ? /*#__PURE__*/ $aJPOC$react.createElement($7d632c09314cddaf$var$PopoverContentModal, ($parcel$interopDefault($aJPOC$babelruntimehelpersextends))({}, contentProps, {
|
|
169
|
+
ref: forwardedRef
|
|
170
|
+
})) : /*#__PURE__*/ $aJPOC$react.createElement($7d632c09314cddaf$var$PopoverContentNonModal, ($parcel$interopDefault($aJPOC$babelruntimehelpersextends))({}, contentProps, {
|
|
171
|
+
ref: forwardedRef
|
|
172
|
+
})));
|
|
173
|
+
});
|
|
174
|
+
/*#__PURE__*/ Object.assign($7d632c09314cddaf$export$d7e1f420b25549ff, {
|
|
175
|
+
displayName: $7d632c09314cddaf$var$CONTENT_NAME
|
|
176
|
+
});
|
|
177
|
+
/* -----------------------------------------------------------------------------------------------*/ const $7d632c09314cddaf$var$PopoverContentModal = /*#__PURE__*/ $aJPOC$react.forwardRef((props, forwardedRef)=>{
|
|
178
|
+
const { allowPinchZoom: allowPinchZoom , portalled: portalled = true , ...contentModalProps } = props;
|
|
179
|
+
const context = $7d632c09314cddaf$var$usePopoverContext($7d632c09314cddaf$var$CONTENT_NAME, props.__scopePopover);
|
|
180
|
+
const contentRef = $aJPOC$react.useRef(null);
|
|
181
|
+
const composedRefs = $aJPOC$radixuireactcomposerefs.useComposedRefs(forwardedRef, contentRef);
|
|
182
|
+
const isRightClickOutsideRef = $aJPOC$react.useRef(false); // aria-hide everything except the content (better supported equivalent to setting aria-modal)
|
|
183
|
+
$aJPOC$react.useEffect(()=>{
|
|
184
|
+
const content = contentRef.current;
|
|
185
|
+
if (content) return $aJPOC$ariahidden.hideOthers(content);
|
|
186
|
+
}, []);
|
|
187
|
+
const PortalWrapper = portalled ? $aJPOC$radixuireactportal.Portal : $aJPOC$react.Fragment;
|
|
188
|
+
return /*#__PURE__*/ $aJPOC$react.createElement(PortalWrapper, null, /*#__PURE__*/ $aJPOC$react.createElement($aJPOC$reactremovescroll.RemoveScroll, {
|
|
189
|
+
allowPinchZoom: allowPinchZoom
|
|
190
|
+
}, /*#__PURE__*/ $aJPOC$react.createElement($7d632c09314cddaf$var$PopoverContentImpl, ($parcel$interopDefault($aJPOC$babelruntimehelpersextends))({}, contentModalProps, {
|
|
191
|
+
ref: composedRefs // we make sure we're not trapping once it's been closed
|
|
192
|
+
,
|
|
193
|
+
trapFocus: context.open,
|
|
194
|
+
disableOutsidePointerEvents: true,
|
|
195
|
+
onCloseAutoFocus: $aJPOC$radixuiprimitive.composeEventHandlers(props.onCloseAutoFocus, (event)=>{
|
|
196
|
+
var _context$triggerRef$c;
|
|
197
|
+
event.preventDefault();
|
|
198
|
+
if (!isRightClickOutsideRef.current) (_context$triggerRef$c = context.triggerRef.current) === null || _context$triggerRef$c === void 0 || _context$triggerRef$c.focus();
|
|
199
|
+
}),
|
|
200
|
+
onPointerDownOutside: $aJPOC$radixuiprimitive.composeEventHandlers(props.onPointerDownOutside, (event)=>{
|
|
201
|
+
const originalEvent = event.detail.originalEvent;
|
|
202
|
+
const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
|
|
203
|
+
const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
|
|
204
|
+
isRightClickOutsideRef.current = isRightClick;
|
|
205
|
+
}, {
|
|
206
|
+
checkForDefaultPrevented: false
|
|
207
|
+
}) // When focus is trapped, a `focusout` event may still happen.
|
|
208
|
+
,
|
|
209
|
+
onFocusOutside: $aJPOC$radixuiprimitive.composeEventHandlers(props.onFocusOutside, (event)=>event.preventDefault()
|
|
210
|
+
, {
|
|
211
|
+
checkForDefaultPrevented: false
|
|
212
|
+
})
|
|
213
|
+
}))));
|
|
214
|
+
});
|
|
215
|
+
const $7d632c09314cddaf$var$PopoverContentNonModal = /*#__PURE__*/ $aJPOC$react.forwardRef((props, forwardedRef)=>{
|
|
216
|
+
const { portalled: portalled = true , ...contentNonModalProps } = props;
|
|
217
|
+
const context = $7d632c09314cddaf$var$usePopoverContext($7d632c09314cddaf$var$CONTENT_NAME, props.__scopePopover);
|
|
218
|
+
const hasInteractedOutsideRef = $aJPOC$react.useRef(false);
|
|
219
|
+
const PortalWrapper = portalled ? $aJPOC$radixuireactportal.Portal : $aJPOC$react.Fragment;
|
|
220
|
+
return /*#__PURE__*/ $aJPOC$react.createElement(PortalWrapper, null, /*#__PURE__*/ $aJPOC$react.createElement($7d632c09314cddaf$var$PopoverContentImpl, ($parcel$interopDefault($aJPOC$babelruntimehelpersextends))({}, contentNonModalProps, {
|
|
221
|
+
ref: forwardedRef,
|
|
222
|
+
trapFocus: false,
|
|
223
|
+
disableOutsidePointerEvents: false,
|
|
224
|
+
onCloseAutoFocus: (event)=>{
|
|
225
|
+
var _props$onCloseAutoFoc;
|
|
226
|
+
(_props$onCloseAutoFoc = props.onCloseAutoFocus) === null || _props$onCloseAutoFoc === void 0 || _props$onCloseAutoFoc.call(props, event);
|
|
227
|
+
if (!event.defaultPrevented) {
|
|
228
|
+
var _context$triggerRef$c2;
|
|
229
|
+
if (!hasInteractedOutsideRef.current) (_context$triggerRef$c2 = context.triggerRef.current) === null || _context$triggerRef$c2 === void 0 || _context$triggerRef$c2.focus(); // Always prevent auto focus because we either focus manually or want user agent focus
|
|
230
|
+
event.preventDefault();
|
|
231
|
+
}
|
|
232
|
+
hasInteractedOutsideRef.current = false;
|
|
233
|
+
},
|
|
234
|
+
onInteractOutside: (event)=>{
|
|
235
|
+
var _props$onInteractOuts, _context$triggerRef$c3;
|
|
236
|
+
(_props$onInteractOuts = props.onInteractOutside) === null || _props$onInteractOuts === void 0 || _props$onInteractOuts.call(props, event);
|
|
237
|
+
if (!event.defaultPrevented) hasInteractedOutsideRef.current = true; // Prevent dismissing when clicking the trigger.
|
|
238
|
+
// As the trigger is already setup to close, without doing so would
|
|
239
|
+
// cause it to close and immediately open.
|
|
240
|
+
//
|
|
241
|
+
// We use `onInteractOutside` as some browsers also
|
|
242
|
+
// focus on pointer down, creating the same issue.
|
|
243
|
+
const target = event.target;
|
|
244
|
+
const targetIsTrigger = (_context$triggerRef$c3 = context.triggerRef.current) === null || _context$triggerRef$c3 === void 0 ? void 0 : _context$triggerRef$c3.contains(target);
|
|
245
|
+
if (targetIsTrigger) event.preventDefault();
|
|
246
|
+
}
|
|
247
|
+
})));
|
|
248
|
+
});
|
|
249
|
+
/* -----------------------------------------------------------------------------------------------*/ const $7d632c09314cddaf$var$PopoverContentImpl = /*#__PURE__*/ $aJPOC$react.forwardRef((props, forwardedRef)=>{
|
|
250
|
+
const { __scopePopover: __scopePopover , trapFocus: trapFocus , onOpenAutoFocus: onOpenAutoFocus , onCloseAutoFocus: onCloseAutoFocus , disableOutsidePointerEvents: disableOutsidePointerEvents , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , ...contentProps } = props;
|
|
251
|
+
const context = $7d632c09314cddaf$var$usePopoverContext($7d632c09314cddaf$var$CONTENT_NAME, __scopePopover);
|
|
252
|
+
const popperScope = $7d632c09314cddaf$var$usePopperScope(__scopePopover); // Make sure the whole tree has focus guards as our `Popover` may be
|
|
253
|
+
// the last element in the DOM (beacuse of the `Portal`)
|
|
254
|
+
$aJPOC$radixuireactfocusguards.useFocusGuards();
|
|
255
|
+
return /*#__PURE__*/ $aJPOC$react.createElement($aJPOC$radixuireactfocusscope.FocusScope, {
|
|
256
|
+
asChild: true,
|
|
257
|
+
loop: true,
|
|
258
|
+
trapped: trapFocus,
|
|
259
|
+
onMountAutoFocus: onOpenAutoFocus,
|
|
260
|
+
onUnmountAutoFocus: onCloseAutoFocus
|
|
261
|
+
}, /*#__PURE__*/ $aJPOC$react.createElement($aJPOC$radixuireactdismissablelayer.DismissableLayer, {
|
|
262
|
+
asChild: true,
|
|
263
|
+
disableOutsidePointerEvents: disableOutsidePointerEvents,
|
|
264
|
+
onInteractOutside: onInteractOutside,
|
|
265
|
+
onEscapeKeyDown: onEscapeKeyDown,
|
|
266
|
+
onPointerDownOutside: onPointerDownOutside,
|
|
267
|
+
onFocusOutside: onFocusOutside,
|
|
268
|
+
onDismiss: ()=>context.onOpenChange(false)
|
|
269
|
+
}, /*#__PURE__*/ $aJPOC$react.createElement($aJPOC$radixuireactpopper.Content, ($parcel$interopDefault($aJPOC$babelruntimehelpersextends))({
|
|
270
|
+
"data-state": $7d632c09314cddaf$var$getState(context.open),
|
|
271
|
+
role: "dialog",
|
|
272
|
+
id: context.contentId
|
|
273
|
+
}, popperScope, contentProps, {
|
|
274
|
+
ref: forwardedRef,
|
|
275
|
+
style: {
|
|
276
|
+
...contentProps.style,
|
|
277
|
+
// re-namespace exposed content custom property
|
|
278
|
+
['--radix-popover-content-transform-origin']: 'var(--radix-popper-transform-origin)'
|
|
279
|
+
}
|
|
280
|
+
}))));
|
|
281
|
+
});
|
|
282
|
+
/* -------------------------------------------------------------------------------------------------
|
|
283
|
+
* PopoverClose
|
|
284
|
+
* -----------------------------------------------------------------------------------------------*/ const $7d632c09314cddaf$var$CLOSE_NAME = 'PopoverClose';
|
|
285
|
+
const $7d632c09314cddaf$export$d6ac43ebaa40d53e = /*#__PURE__*/ $aJPOC$react.forwardRef((props, forwardedRef)=>{
|
|
286
|
+
const { __scopePopover: __scopePopover , ...closeProps } = props;
|
|
287
|
+
const context = $7d632c09314cddaf$var$usePopoverContext($7d632c09314cddaf$var$CLOSE_NAME, __scopePopover);
|
|
288
|
+
return /*#__PURE__*/ $aJPOC$react.createElement($aJPOC$radixuireactprimitive.Primitive.button, ($parcel$interopDefault($aJPOC$babelruntimehelpersextends))({
|
|
289
|
+
type: "button"
|
|
290
|
+
}, closeProps, {
|
|
291
|
+
ref: forwardedRef,
|
|
292
|
+
onClick: $aJPOC$radixuiprimitive.composeEventHandlers(props.onClick, ()=>context.onOpenChange(false)
|
|
293
|
+
)
|
|
294
|
+
}));
|
|
295
|
+
});
|
|
296
|
+
/*#__PURE__*/ Object.assign($7d632c09314cddaf$export$d6ac43ebaa40d53e, {
|
|
297
|
+
displayName: $7d632c09314cddaf$var$CLOSE_NAME
|
|
298
|
+
});
|
|
299
|
+
/* -------------------------------------------------------------------------------------------------
|
|
300
|
+
* PopoverArrow
|
|
301
|
+
* -----------------------------------------------------------------------------------------------*/ const $7d632c09314cddaf$var$ARROW_NAME = 'PopoverArrow';
|
|
302
|
+
const $7d632c09314cddaf$export$3152841115e061b2 = /*#__PURE__*/ $aJPOC$react.forwardRef((props, forwardedRef)=>{
|
|
303
|
+
const { __scopePopover: __scopePopover , ...arrowProps } = props;
|
|
304
|
+
const popperScope = $7d632c09314cddaf$var$usePopperScope(__scopePopover);
|
|
305
|
+
return /*#__PURE__*/ $aJPOC$react.createElement($aJPOC$radixuireactpopper.Arrow, ($parcel$interopDefault($aJPOC$babelruntimehelpersextends))({}, popperScope, arrowProps, {
|
|
306
|
+
ref: forwardedRef
|
|
307
|
+
}));
|
|
308
|
+
});
|
|
309
|
+
/*#__PURE__*/ Object.assign($7d632c09314cddaf$export$3152841115e061b2, {
|
|
310
|
+
displayName: $7d632c09314cddaf$var$ARROW_NAME
|
|
311
|
+
});
|
|
312
|
+
/* -----------------------------------------------------------------------------------------------*/ function $7d632c09314cddaf$var$getState(open) {
|
|
313
|
+
return open ? 'open' : 'closed';
|
|
314
|
+
}
|
|
315
|
+
const $7d632c09314cddaf$export$be92b6f5f03c0fe9 = $7d632c09314cddaf$export$5b6b19405a83ff9d;
|
|
316
|
+
const $7d632c09314cddaf$export$b688253958b8dfe7 = $7d632c09314cddaf$export$96e5381f42521a79;
|
|
317
|
+
const $7d632c09314cddaf$export$41fb9f06171c75f4 = $7d632c09314cddaf$export$7dacb05d26466c3;
|
|
318
|
+
const $7d632c09314cddaf$export$7c6e2c02157bb7d2 = $7d632c09314cddaf$export$d7e1f420b25549ff;
|
|
319
|
+
const $7d632c09314cddaf$export$f39c2d165cd861fe = $7d632c09314cddaf$export$d6ac43ebaa40d53e;
|
|
320
|
+
const $7d632c09314cddaf$export$21b07c8f274aebd5 = $7d632c09314cddaf$export$3152841115e061b2;
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
$parcel$exportWildcard(module.exports, $7d632c09314cddaf$exports);
|
|
324
|
+
|
|
325
|
+
|
|
2
326
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["./node_modules/@parcel/scope-hoisting/lib/helpers.js","./packages/react/popover/src/Popover.tsx"],"sourcesContent":["function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true});\n}\n\nfunction $parcel$reexport(e, n, v) {\n Object.defineProperty(e, n, {get: v, enumerable: true});\n}\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule') {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n },\n });\n });\n\n return dest;\n}\n\nfunction $parcel$missingModule(name) {\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n}\n\nvar $parcel$global =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal } from '@radix-ui/react-portal';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useId } from '@radix-ui/react-id';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = 'Popover';\n\ntype ScopedProps<P> = P & { __scopePopover?: Scope };\nconst [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype PopoverContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement>;\n contentId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n hasCustomAnchor: boolean;\n onCustomAnchorAdd(): void;\n onCustomAnchorRemove(): void;\n modal: boolean;\n};\n\nconst [PopoverProvider, usePopoverContext] =\n createPopoverContext<PopoverContextValue>(POPOVER_NAME);\n\ninterface PopoverProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n}\n\nconst Popover: React.FC<PopoverProps> = (props: ScopedProps<PopoverProps>) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false,\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n <PopperPrimitive.Root {...popperScope}>\n <PopoverProvider\n scope={__scopePopover}\n contentId={useId()}\n triggerRef={triggerRef}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(() => setHasCustomAnchor(true), [])}\n onCustomAnchorRemove={React.useCallback(() => setHasCustomAnchor(false), [])}\n modal={modal}\n >\n {children}\n </PopoverProvider>\n </PopperPrimitive.Root>\n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'PopoverAnchor';\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopperPrimitive.Anchor>;\ntype PopperAnchorProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef<PopoverAnchorElement, PopoverAnchorProps>(\n (props: ScopedProps<PopoverAnchorProps>, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n\n return <PopperPrimitive.Anchor {...popperScope} {...anchorProps} ref={forwardedRef} />;\n }\n);\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'PopoverTrigger';\n\ntype PopoverTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef<PopoverTriggerElement, PopoverTriggerProps>(\n (props: ScopedProps<PopoverTriggerProps>, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n\n const trigger = (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n\n return context.hasCustomAnchor ? (\n trigger\n ) : (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n {trigger}\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nPopoverTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'PopoverContent';\n\ninterface PopoverContentProps extends PopoverContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst PopoverContent = React.forwardRef<PopoverContentTypeElement, PopoverContentProps>(\n (props: ScopedProps<PopoverContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <PopoverContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <PopoverContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype RemoveScrollProps = React.ComponentProps<typeof RemoveScroll>;\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit<PopoverContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom'];\n /**\n * Whether the `Popover` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n}\n\nconst PopoverContentModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { allowPinchZoom, portalled = true, ...contentModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <RemoveScroll allowPinchZoom={allowPinchZoom}>\n <PopoverContentImpl\n {...contentModalProps}\n ref={composedRefs}\n // we make sure we're not trapping once it's been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n )}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )}\n />\n </RemoveScroll>\n </PortalWrapper>\n );\n }\n);\n\nconst PopoverContentNonModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { portalled = true, ...contentNonModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <PopoverContentImpl\n {...contentNonModalProps}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true;\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n }}\n />\n </PortalWrapper>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<typeof PopperPrimitive.Content>;\ntype FocusScopeProps = Radix.ComponentPropsWithoutRef<typeof FocusScope>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface PopoverContentImplProps\n extends PopperContentProps,\n Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * Whether focus should be trapped within the `Popover`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst PopoverContentImpl = React.forwardRef<PopoverContentImplElement, PopoverContentImplProps>(\n (props: ScopedProps<PopoverContentImplProps>, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n\n // Make sure the whole tree has focus guards as our `Popover` may be\n // the last element in the DOM (beacuse of the `Portal`)\n useFocusGuards();\n\n return (\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={disableOutsidePointerEvents}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={onFocusOutside}\n onDismiss={() => context.onOpenChange(false)}\n >\n <PopperPrimitive.Content\n data-state={getState(context.open)}\n role=\"dialog\"\n id={context.contentId}\n {...popperScope}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-popover-content-transform-origin' as any]:\n 'var(--radix-popper-transform-origin)',\n }}\n />\n </DismissableLayer>\n </FocusScope>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'PopoverClose';\n\ntype PopoverCloseElement = React.ElementRef<typeof Primitive.button>;\ninterface PopoverCloseProps extends PrimitiveButtonProps {}\n\nconst PopoverClose = React.forwardRef<PopoverCloseElement, PopoverCloseProps>(\n (props: ScopedProps<PopoverCloseProps>, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'PopoverArrow';\n\ntype PopoverArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface PopoverArrowProps extends PopperArrowProps {}\n\nconst PopoverArrow = React.forwardRef<PopoverArrowElement, PopoverArrowProps>(\n (props: ScopedProps<PopoverArrowProps>, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />;\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Popover;\nconst Anchor = PopoverAnchor;\nconst Trigger = PopoverTrigger;\nconst Content = PopoverContent;\nconst Close = PopoverClose;\nconst Arrow = PopoverArrow;\n\nexport {\n createPopoverScope,\n //\n Popover,\n PopoverAnchor,\n PopoverTrigger,\n PopoverContent,\n PopoverClose,\n PopoverArrow,\n //\n Root,\n Anchor,\n Trigger,\n Content,\n Close,\n Arrow,\n};\nexport type {\n PopoverProps,\n PopoverAnchorProps,\n PopoverTriggerProps,\n PopoverContentProps,\n PopoverCloseProps,\n PopoverArrowProps,\n};\n"],"names":["a","__esModule","default","$parcel$exportWildcard","dest","source","Object","keys","forEach","key","defineProperty","enumerable","get","createPopoverContext","createPopoverScope","createContextScope","createPopperScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","props","__scopePopover","children","open","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","React","useRef","hasCustomAnchor","setHasCustomAnchor","useState","setOpen","useControllableState","prop","defaultProp","onChange","_react","createElement","_radixUiReactPopper","Root","$bb8ca9d5c97a93670591f7c54ba$var$PopoverProvider","scope","contentId","useId","onOpenToggle","useCallback","prevOpen","onCustomAnchorAdd","onCustomAnchorRemove","PopoverAnchor","forwardRef","forwardedRef","anchorProps","context","useEffect","Anchor","_babelRuntimeHelpersExtends","ref","PopoverTrigger","triggerProps","composedTriggerRef","useComposedRefs","trigger","Primitive","button","type","getState","onClick","composeEventHandlers","asChild","PopoverContent","forceMount","contentProps","Presence","present","$bb8ca9d5c97a93670591f7c54ba$var$PopoverContentModal","$bb8ca9d5c97a93670591f7c54ba$var$PopoverContentNonModal","PopoverContentModal","allowPinchZoom","portalled","contentModalProps","contentRef","composedRefs","isRightClickOutsideRef","content","current","hideOthers","PortalWrapper","Portal","Fragment","RemoveScroll","$bb8ca9d5c97a93670591f7c54ba$var$PopoverContentImpl","trapFocus","disableOutsidePointerEvents","onCloseAutoFocus","event","_context$triggerRef$c","preventDefault","focus","onPointerDownOutside","originalEvent","detail","ctrlLeftClick","ctrlKey","isRightClick","checkForDefaultPrevented","onFocusOutside","PopoverContentNonModal","contentNonModalProps","hasInteractedOutsideRef","_props$onCloseAutoFoc","_context$triggerRef$c2","call","defaultPrevented","onInteractOutside","_props$onInteractOuts","_context$triggerRef$c3","target","contains","PopoverContentImpl","onOpenAutoFocus","onEscapeKeyDown","useFocusGuards","FocusScope","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","DismissableLayer","onDismiss","Content","role","id","style","PopoverClose","closeProps","PopoverArrow","arrowProps","Arrow","Trigger","Close"],"version":3,"file":"index.js.map"}
|
|
1
|
+
{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;;;;;;;;;;;;;;;;;ACoBA;;oGAEA,CAEA,MAAMgB,kCAAY,GAAG,SAArB,AAAA;AAGA,MAAM,CAACC,0CAAD,EAAuBC,yCAAvB,CAAA,GAA6Cf,6CAAkB,CAACa,kCAAD,EAAe;IAClFV,2CADkF;CAAf,CAArE,AAAA;AAGA,MAAMa,oCAAc,GAAGb,2CAAiB,EAAxC,AAAA;AAcA,MAAM,CAACc,qCAAD,EAAkBC,uCAAlB,CAAA,GACJJ,0CAAoB,CAAsBD,kCAAtB,CADtB,AAAA;AAWA,MAAMM,yCAA+B,GAAIC,CAAAA,KAAD,GAAsC;IAC5E,MAAM,E,gBACJC,cADI,CAAA,E,UAEJC,QAFI,CAAA,EAGJC,IAAI,EAAEC,QAHF,CAAA,E,aAIJC,WAJI,CAAA,E,cAKJC,YALI,CAAA,SAMJC,KAAK,GAAG,KAARA,GANI,GAOFP,KAPJ,AAAM;IAQN,MAAMQ,WAAW,GAAGZ,oCAAc,CAACK,cAAD,CAAlC,AAAA;IACA,MAAMQ,UAAU,GAAGhC,mBAAA,CAAgC,IAAhC,CAAnB,AAAA;IACA,MAAM,CAACkC,eAAD,EAAkBC,kBAAlB,CAAA,GAAwCnC,qBAAA,CAAe,KAAf,CAA9C,AAAA;IACA,MAAM,CAAC0B,IAAI,GAAG,KAAR,EAAeW,OAAf,CAAA,GAA0BjC,4DAAoB,CAAC;QACnDkC,IAAI,EAAEX,QAD6C;QAEnDY,WAAW,EAAEX,WAFsC;QAGnDY,QAAQ,EAAEX,YAAVW;KAHkD,CAApD,AAAqD;IAMrD,OAAA,aACE,CAAA,0BAAA,CAAC,8BAAD,EAA0BT,WAA1B,EAAA,aACE,CAAA,0BAAA,CAAC,qCAAD,EAFJ;QAGM,KAAK,EAAEP,cADT;QAEE,SAAS,EAAEX,2BAAK,EAFlB;QAGE,UAAU,EAAEmB,UAHd;QAIE,IAAI,EAAEN,IAJR;QAKE,YAAY,EAAEW,OALhB;QAME,YAAY,EAAErC,wBAAA,CAAkB,IAAMqC,OAAO,CAAEK,CAAAA,QAAD,GAAc,CAACA,QAAhB;YAAA,CAA/B;QAAA,EAA0D;YAACL,OAAD;SAA1D,CANhB;QAOE,eAAe,EAAEH,eAPnB;QAQE,iBAAiB,EAAElC,wBAAA,CAAkB,IAAMmC,kBAAkB,CAAC,IAAD,CAA1C;QAAA,EAAkD,EAAlD,CARrB;QASE,oBAAoB,EAAEnC,wBAAA,CAAkB,IAAMmC,kBAAkB,CAAC,KAAD,CAA1C;QAAA,EAAmD,EAAnD,CATxB;QAUE,KAAK,EAAEL,KAAP;KAVF,EAYGL,QAZH,CADF,CADF,CAEI;CApBN,AAoCC;AAED,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,kCAAA;CAAA,CAAA,CAAA;AAEA;;oGAEA,CAEA,MAAMkB,iCAAW,GAAG,eAApB,AAAA;AAMA,MAAMC,yCAAa,GAAA,aAAG5C,CAAAA,uBAAA,CACpB,CAACuB,KAAD,EAAyCuB,YAAzC,GAA0D;IACxD,MAAM,E,gBAAEtB,cAAF,CAAA,EAAkB,GAAGuB,WAAH,EAAlB,GAAqCxB,KAA3C,AAAM;IACN,MAAMyB,OAAO,GAAG3B,uCAAiB,CAACsB,iCAAD,EAAcnB,cAAd,CAAjC,AAAA;IACA,MAAMO,WAAW,GAAGZ,oCAAc,CAACK,cAAD,CAAlC,AAAA;IACA,MAAM,E,mBAAEyB,iBAAF,CAAA,E,sBAAqBC,oBAAAA,CAAAA,EAArB,GAA8CF,OAApD,AAAM;IAENhD,sBAAA,CAAgB,IAAM;QACpBiD,iBAAiB,EAAjBA,CAAAA;QACA,OAAO,IAAMC,oBAAoB,EAAjC;QAAA,CAAA;KAFF,EAGG;QAACD,iBAAD;QAAoBC,oBAApB;KAHH,CAGC,CAAA;IAED,OAAA,aAAO,CAAA,0BAAA,CAAC,gCAAD,EAAA,2DAAA,CAAA,EAAA,EAA4BnB,WAA5B,EAA6CgB,WAA7C,EAAP;QAAiE,GAAG,EAAED,YAAL;KAA1D,CAAA,CAAP,CAAO;CAZW,CAAtB,AAaG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,iCAAA;CAAA,CAAA,CAAA;AAEA;;oGAEA,CAEA,MAAMM,kCAAY,GAAG,gBAArB,AAAA;AAMA,MAAMC,wCAAc,GAAA,aAAGrD,CAAAA,uBAAA,CACrB,CAACuB,KAAD,EAA0CuB,YAA1C,GAA2D;IACzD,MAAM,E,gBAAEtB,cAAF,CAAA,EAAkB,GAAG8B,YAAH,EAAlB,GAAsC/B,KAA5C,AAAM;IACN,MAAMyB,OAAO,GAAG3B,uCAAiB,CAAC+B,kCAAD,EAAe5B,cAAf,CAAjC,AAAA;IACA,MAAMO,WAAW,GAAGZ,oCAAc,CAACK,cAAD,CAAlC,AAAA;IACA,MAAM+B,kBAAkB,GAAGrD,8CAAe,CAAC4C,YAAD,EAAeE,OAAO,CAAChB,UAAvB,CAA1C,AAAA;IAEA,MAAMwB,OAAO,GAAA,aACX,CAAA,0BAAA,CAAC,sCAAD,CAAW,MAAX,EADF,2DAAA,CAAA;QAEI,IAAI,EAAC,QADP;QAEE,eAAA,EAAc,QAFhB;QAGE,eAAA,EAAeR,OAAO,CAACtB,IAHzB;QAIE,eAAA,EAAesB,OAAO,CAACS,SAJzB;QAKE,YAAA,EAAYC,8BAAQ,CAACV,OAAO,CAACtB,IAAT,CAApB;KALF,EAMM4B,YANN,EAAA;QAOE,GAAG,EAAEC,kBAPP;QAQE,OAAO,EAAEtD,4CAAoB,CAACsB,KAAK,CAACoC,OAAP,EAAgBX,OAAO,CAACY,YAAxB,CAA7B;KARF,CAAA,CADF,AACE;IAYF,OAAOZ,OAAO,CAACd,eAAR,GACLsB,OADK,GAAA,aAGL,CAAA,0BAAA,CAAC,gCAAD,EAHF,2DAAA,CAAA;QAG0B,OAAO,EAAP,IAAA;KAAxB,EAAoCzB,WAApC,CAAA,EACGyB,OADH,CAHF,CAGE;CAvBiB,CAAvB,AA2BG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,wCAAA,EAAA;IAAA,WAAA,EAAA,kCAAA;CAAA,CAAA,CAAA;AAEA;;oGAEA,CAEA,MAAMK,kCAAY,GAAG,gBAArB,AAAA;AAUA,MAAMC,yCAAc,GAAA,aAAG9D,CAAAA,uBAAA,CACrB,CAACuB,KAAD,EAA0CuB,YAA1C,GAA2D;IACzD,MAAM,E,YAAEiB,UAAF,CAAA,EAAc,GAAGC,YAAH,EAAd,GAAkCzC,KAAxC,AAAM;IACN,MAAMyB,OAAO,GAAG3B,uCAAiB,CAACwC,kCAAD,EAAetC,KAAK,CAACC,cAArB,CAAjC,AAAA;IACA,OAAA,aACE,CAAA,0BAAA,CAAC,oCAAD,EADF;QACY,OAAO,EAAEuC,UAAU,IAAIf,OAAO,CAACtB,IAA/B;KAAV,EACGsB,OAAO,CAAClB,KAAR,GAAA,aACC,CAAA,0BAAA,CAAC,yCAAD,EAAA,2DAAA,CAAA,EAAA,EAAyBkC,YAAzB,EAFJ;QAE2C,GAAG,EAAElB,YAAL;KAAvC,CAAA,CADD,GAAA,aAGC,CAAA,0BAAA,CAAC,4CAAD,EAAA,2DAAA,CAAA,EAAA,EAA4BkB,YAA5B,EAFA;QAE0C,GAAG,EAAElB,YAAL;KAA1C,CAAA,CAJJ,CADF,CAKM;CATa,CAAvB,AAaG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,kCAAA;CAAA,CAAA,CAAA;AAEA,oGAAA,CAiBA,MAAMmB,yCAAmB,GAAA,aAAGjE,CAAAA,uBAAA,CAC1B,CAACuB,KAAD,EAA8CuB,YAA9C,GAA+D;IAC7D,MAAM,E,gBAAEoB,cAAF,CAAA,aAAkBC,SAAS,GAAG,IAA9B,GAAoC,GAAGC,iBAAH,EAApC,GAA6D7C,KAAnE,AAAM;IACN,MAAMyB,OAAO,GAAG3B,uCAAiB,CAACwC,kCAAD,EAAetC,KAAK,CAACC,cAArB,CAAjC,AAAA;IACA,MAAM6C,UAAU,GAAGrE,mBAAA,CAA6B,IAA7B,CAAnB,AAAA;IACA,MAAMsE,YAAY,GAAGpE,8CAAe,CAAC4C,YAAD,EAAeuB,UAAf,CAApC,AAAA;IACA,MAAME,sBAAsB,GAAGvE,mBAAA,CAAa,KAAb,CAA/B,AAL6D,EAO7D,8FAFA;IAGAA,sBAAA,CAAgB,IAAM;QACpB,MAAMwE,OAAO,GAAGH,UAAU,CAACI,OAA3B,AAAA;QACA,IAAID,OAAJ,EAAa,OAAOzD,4BAAU,CAACyD,OAAD,CAAjB,CAAb;KAFF,EAGG,EAHH,CAGC,CAAA;IAED,MAAME,aAAa,GAAGP,SAAS,GAAG1D,gCAAH,GAAYT,qBAA3C,AAAA;IAEA,OAAA,aACE,CAAA,0BAAA,CAAC,aAAD,EAAA,IAAA,EAAA,aACE,CAAA,0BAAA,CAAC,qCAAD,EAFJ;QAEkB,cAAc,EAAEkE,cAAhB;KAAd,EAAA,aACE,CAAA,0BAAA,CAAC,wCAAD,EAAA,2DAAA,CAAA,EAAA,EACME,iBADN,EADF;QAGI,GAAG,EAAEE,YAFP,CAGE,wDADA;QAFF;QAKE,SAAS,EAAEtB,OAAO,CAACtB,IALrB;QAME,2BAA2B,EAAA,IAN7B;QAOE,gBAAgB,EAAEzB,4CAAoB,CAACsB,KAAK,CAACqD,gBAAP,EAA0BC,CAAAA,KAAD,GAAW;YAAA,IAAA,qBAAA,AAAA;YACxEA,KAAK,CAACC,cAAN,EAAAD,CAAAA;YACA,IAAI,CAACN,sBAAsB,CAACE,OAA5B,EAAqC,AAAA,CAAA,qBAAA,GAAAzB,OAAO,CAAChB,UAAR,CAAmByC,OAAnB,CAAA,KAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,IAAA,qBAAA,CAA4BM,KAA5B,EAArC,CAAA;SAFoC,CAPxC;QAWE,oBAAoB,EAAE9E,4CAAoB,CACxCsB,KAAK,CAACyD,oBADkC,EAEvCH,CAAAA,KAAD,GAAW;YACT,MAAMI,aAAa,GAAGJ,KAAK,CAACK,MAAN,CAAaD,aAAnC,AAAA;YACA,MAAME,aAAa,GAAGF,aAAa,CAACG,MAAd,KAAyB,CAAzB,IAA8BH,aAAa,CAACI,OAAd,KAA0B,IAA9E,AAAA;YACA,MAAMC,YAAY,GAAGL,aAAa,CAACG,MAAd,KAAyB,CAAzB,IAA8BD,aAAnD,AAAA;YAEAZ,sBAAsB,CAACE,OAAvB,GAAiCa,YAAjC,CAAAf;SAPsC,EASxC;YAAEgB,wBAAwB,EAAE,KAA1BA;SATsC,CAX5C,CAsBE,8DAFE;QApBJ;QAwBE,cAAc,EAAEtF,4CAAoB,CAClCsB,KAAK,CAACiE,cAD4B,EAEjCX,CAAAA,KAAD,GAAWA,KAAK,CAACC,cAAN,EAFuB;QAAA,EAGlC;YAAES,wBAAwB,EAAE,KAA1BA;SAHgC,CAGlC;KA3BJ,CAAA,CADF,CADF,CADF,CAGM;CAnBkB,CAA5B,AAoDG;AAGH,MAAME,4CAAsB,GAAA,aAAGzF,CAAAA,uBAAA,CAC7B,CAACuB,KAAD,EAA8CuB,YAA9C,GAA+D;IAC7D,MAAM,aAAEqB,SAAS,GAAG,IAAd,GAAoB,GAAGuB,oBAAH,EAApB,GAAgDnE,KAAtD,AAAM;IACN,MAAMyB,OAAO,GAAG3B,uCAAiB,CAACwC,kCAAD,EAAetC,KAAK,CAACC,cAArB,CAAjC,AAAA;IACA,MAAMmE,uBAAuB,GAAG3F,mBAAA,CAAa,KAAb,CAAhC,AAAA;IAEA,MAAM0E,aAAa,GAAGP,SAAS,GAAG1D,gCAAH,GAAYT,qBAA3C,AAAA;IAEA,OAAA,aACE,CAAA,0BAAA,CAAC,aAAD,EAAA,IAAA,EAAA,aACE,CAAA,0BAAA,CAAC,wCAAD,EAAA,2DAAA,CAAA,EAAA,EACM0F,oBADN,EAFJ;QAIM,GAAG,EAAE5C,YAFP;QAGE,SAAS,EAAE,KAHb;QAIE,2BAA2B,EAAE,KAJ/B;QAKE,gBAAgB,EAAG+B,CAAAA,KAAD,GAAW;YAAA,IAAA,qBAAA,AAAA;YAC3B,CAAA,qBAAA,GAAAtD,KAAK,CAACqD,gBAAN,CAAA,KAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,IAAA,qBAAA,CAAA,IAAA,CAAArD,KAAK,EAAoBsD,KAApB,CAAL,CAAA;YAEA,IAAI,CAACA,KAAK,CAACe,gBAAX,EAA6B;gBAAA,IAAA,sBAAA,AAAA;gBAC3B,IAAI,CAACD,uBAAuB,CAAClB,OAA7B,EAAsC,AAAA,CAAA,sBAAA,GAAAzB,OAAO,CAAChB,UAAR,CAAmByC,OAAnB,CAAA,KAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,IAAA,sBAAA,CAA4BM,KAA5B,EAAA,CADX,CAE3B,sFADA;gBAEAF,KAAK,CAACC,cAAN,EAAAD,CAAAA;aACD;YAEDc,uBAAuB,CAAClB,OAAxB,GAAkC,KAAlC,CAAAkB;SAdJ;QAgBE,iBAAiB,EAAGd,CAAAA,KAAD,GAAW;YAAA,IAAA,qBAAA,EAAA,sBAAA,AAAA;YAC5B,CAAA,qBAAA,GAAAtD,KAAK,CAACsE,iBAAN,CAAA,KAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,IAAA,qBAAA,CAAA,IAAA,CAAAtE,KAAK,EAAqBsD,KAArB,CAAL,CAAA;YAEA,IAAI,CAACA,KAAK,CAACe,gBAAX,EAA6BD,uBAAuB,CAAClB,OAAxB,GAAkC,IAAlC,CAHD,CAK5B,gDAFA;YAGA,mEAAA;YACA,0CAAA;YACA,EAAA;YACA,mDAAA;YACA,kDAAA;YACA,MAAMqB,MAAM,GAAGjB,KAAK,CAACiB,MAArB,AAAA;YACA,MAAMC,eAAe,GAAA,AAAA,CAAA,sBAAA,GAAG/C,OAAO,CAAChB,UAAR,CAAmByC,OAAtB,CAAA,KAAA,IAAA,IAAA,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAG,sBAAA,CAA4BuB,QAA5B,CAAqCF,MAArC,CAAxB,AAAA;YACA,IAAIC,eAAJ,EAAqBlB,KAAK,CAACC,cAAN,EAArB,CAAA;SACD;KA9BH,CAAA,CADF,CADF,CAEI;CAVuB,CAA/B,AA4CG;AAGH,oGAAA,CA4BA,MAAMmB,wCAAkB,GAAA,aAAGjG,CAAAA,uBAAA,CACzB,CAACuB,KAAD,EAA8CuB,YAA9C,GAA+D;IAC7D,MAAM,E,gBACJtB,cADI,CAAA,E,WAEJ0E,SAFI,CAAA,E,iBAGJC,eAHI,CAAA,E,kBAIJvB,gBAJI,CAAA,E,6BAKJwB,2BALI,CAAA,E,iBAMJC,eANI,CAAA,E,sBAOJrB,oBAPI,CAAA,E,gBAQJQ,cARI,CAAA,E,mBASJK,iBATI,CAAA,EAUJ,GAAG7B,YAAH,EAVI,GAWFzC,KAXJ,AAAM;IAYN,MAAMyB,OAAO,GAAG3B,uCAAiB,CAACwC,kCAAD,EAAerC,cAAf,CAAjC,AAAA;IACA,MAAMO,WAAW,GAAGZ,oCAAc,CAACK,cAAD,CAAlC,AAd6D,EAgB7D,oEAFA;IAGA,wDAAA;IACAd,6CAAc,EAAdA,CAAAA;IAEA,OAAA,aACE,CAAA,0BAAA,CAAC,wCAAD,EADF;QAEI,OAAO,EAAA,IADT;QAEE,IAAI,EAAA,IAFN;QAGE,OAAO,EAAEwF,SAHX;QAIE,gBAAgB,EAAEC,eAJpB;QAKE,kBAAkB,EAAEvB,gBAApB;KALF,EAAA,aAOE,CAAA,0BAAA,CAAC,oDAAD,EAPF;QAQI,OAAO,EAAA,IADT;QAEE,2BAA2B,EAAEwB,2BAF/B;QAGE,iBAAiB,EAAEP,iBAHrB;QAIE,eAAe,EAAEQ,eAJnB;QAKE,oBAAoB,EAAErB,oBALxB;QAME,cAAc,EAAEQ,cANlB;QAOE,SAAS,EAAE,IAAMxC,OAAO,CAACnB,YAAR,CAAqB,KAArB,CAAjB;KAPF,EAAA,aASE,CAAA,0BAAA,CAAC,iCAAD,EATF,2DAAA,CAAA;QAUI,YAAA,EAAY6B,8BAAQ,CAACV,OAAO,CAACtB,IAAT,CADtB;QAEE,IAAI,EAAC,QAFP;QAGE,EAAE,EAAEsB,OAAO,CAACS,SAAZ;KAHF,EAIM1B,WAJN,EAKMiC,YALN,EAAA;QAME,GAAG,EAAElB,YANP;QAOE,KAAK,EAAE;YACL,GAAGkB,YAAY,CAACsC,KADX;YAEL,+CAAA;YACA,CAAC,0CAAD,CAAA,EACE,sCADF;SAHK;KAPT,CAAA,CATF,CAPF,CADF,CAiBM;CAtCiB,CAA3B,AAuDG;AAGH;;oGAEA,CAEA,MAAMC,gCAAU,GAAG,cAAnB,AAAA;AAKA,MAAMC,yCAAY,GAAA,aAAGxG,CAAAA,uBAAA,CACnB,CAACuB,KAAD,EAAwCuB,YAAxC,GAAyD;IACvD,MAAM,E,gBAAEtB,cAAF,CAAA,EAAkB,GAAGiF,UAAH,EAAlB,GAAoClF,KAA1C,AAAM;IACN,MAAMyB,OAAO,GAAG3B,uCAAiB,CAACkF,gCAAD,EAAa/E,cAAb,CAAjC,AAAA;IACA,OAAA,aACE,CAAA,0BAAA,CAAC,sCAAD,CAAW,MAAX,EADF,2DAAA,CAAA;QAEI,IAAI,EAAC,QAAL;KADF,EAEMiF,UAFN,EAAA;QAGE,GAAG,EAAE3D,YAHP;QAIE,OAAO,EAAE7C,4CAAoB,CAACsB,KAAK,CAACoC,OAAP,EAAgB,IAAMX,OAAO,CAACnB,YAAR,CAAqB,KAArB,CAAtB;QAAA,CAA7B;KAJF,CAAA,CADF,CACE;CALe,CAArB,AAYG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,gCAAA;CAAA,CAAA,CAAA;AAEA;;oGAEA,CAEA,MAAM6E,gCAAU,GAAG,cAAnB,AAAA;AAMA,MAAMC,yCAAY,GAAA,aAAG3G,CAAAA,uBAAA,CACnB,CAACuB,KAAD,EAAwCuB,YAAxC,GAAyD;IACvD,MAAM,E,gBAAEtB,cAAF,CAAA,EAAkB,GAAGoF,UAAH,EAAlB,GAAoCrF,KAA1C,AAAM;IACN,MAAMQ,WAAW,GAAGZ,oCAAc,CAACK,cAAD,CAAlC,AAAA;IACA,OAAA,aAAO,CAAA,0BAAA,CAAC,+BAAD,EAAA,2DAAA,CAAA,EAAA,EAA2BO,WAA3B,EAA4C6E,UAA5C,EAAP;QAA+D,GAAG,EAAE9D,YAAL;KAAxD,CAAA,CAAP,CAAO;CAJU,CAArB,AAKG;AAGH,aAAA,CAAA,MAAA,CAAA,MAAA,CAAA,yCAAA,EAAA;IAAA,WAAA,EAAA,gCAAA;CAAA,CAAA,CAAA;AAEA,oGAAA,CAEA,SAASY,8BAAT,CAAkBhC,IAAlB,EAAiC;IAC/B,OAAOA,IAAI,GAAG,MAAH,GAAY,QAAvB,CAAA;CACD;AAED,MAAMmF,yCAAI,GAAGvF,yCAAb,AAAA;AACA,MAAMwF,yCAAM,GAAGlE,yCAAf,AAAA;AACA,MAAMmE,yCAAO,GAAG1D,wCAAhB,AAAA;AACA,MAAM2D,yCAAO,GAAGlD,yCAAhB,AAAA;AACA,MAAMmD,yCAAK,GAAGT,yCAAd,AAAA;AACA,MAAMU,yCAAK,GAAGP,yCAAd,AAAA;;AD3cA","sources":["packages/react/popover/src/index.ts","packages/react/popover/src/Popover.tsx"],"sourcesContent":["export * from './Popover';\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal } from '@radix-ui/react-portal';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useId } from '@radix-ui/react-id';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = 'Popover';\n\ntype ScopedProps<P> = P & { __scopePopover?: Scope };\nconst [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype PopoverContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement>;\n contentId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n hasCustomAnchor: boolean;\n onCustomAnchorAdd(): void;\n onCustomAnchorRemove(): void;\n modal: boolean;\n};\n\nconst [PopoverProvider, usePopoverContext] =\n createPopoverContext<PopoverContextValue>(POPOVER_NAME);\n\ninterface PopoverProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n}\n\nconst Popover: React.FC<PopoverProps> = (props: ScopedProps<PopoverProps>) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false,\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n <PopperPrimitive.Root {...popperScope}>\n <PopoverProvider\n scope={__scopePopover}\n contentId={useId()}\n triggerRef={triggerRef}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(() => setHasCustomAnchor(true), [])}\n onCustomAnchorRemove={React.useCallback(() => setHasCustomAnchor(false), [])}\n modal={modal}\n >\n {children}\n </PopoverProvider>\n </PopperPrimitive.Root>\n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'PopoverAnchor';\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopperPrimitive.Anchor>;\ntype PopperAnchorProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef<PopoverAnchorElement, PopoverAnchorProps>(\n (props: ScopedProps<PopoverAnchorProps>, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n\n return <PopperPrimitive.Anchor {...popperScope} {...anchorProps} ref={forwardedRef} />;\n }\n);\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'PopoverTrigger';\n\ntype PopoverTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef<PopoverTriggerElement, PopoverTriggerProps>(\n (props: ScopedProps<PopoverTriggerProps>, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n\n const trigger = (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n\n return context.hasCustomAnchor ? (\n trigger\n ) : (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n {trigger}\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nPopoverTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'PopoverContent';\n\ninterface PopoverContentProps extends PopoverContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst PopoverContent = React.forwardRef<PopoverContentTypeElement, PopoverContentProps>(\n (props: ScopedProps<PopoverContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <PopoverContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <PopoverContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype RemoveScrollProps = React.ComponentProps<typeof RemoveScroll>;\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit<PopoverContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom'];\n /**\n * Whether the `Popover` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n}\n\nconst PopoverContentModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { allowPinchZoom, portalled = true, ...contentModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <RemoveScroll allowPinchZoom={allowPinchZoom}>\n <PopoverContentImpl\n {...contentModalProps}\n ref={composedRefs}\n // we make sure we're not trapping once it's been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n )}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )}\n />\n </RemoveScroll>\n </PortalWrapper>\n );\n }\n);\n\nconst PopoverContentNonModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { portalled = true, ...contentNonModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <PopoverContentImpl\n {...contentNonModalProps}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true;\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n }}\n />\n </PortalWrapper>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<typeof PopperPrimitive.Content>;\ntype FocusScopeProps = Radix.ComponentPropsWithoutRef<typeof FocusScope>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface PopoverContentImplProps\n extends PopperContentProps,\n Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * Whether focus should be trapped within the `Popover`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst PopoverContentImpl = React.forwardRef<PopoverContentImplElement, PopoverContentImplProps>(\n (props: ScopedProps<PopoverContentImplProps>, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n\n // Make sure the whole tree has focus guards as our `Popover` may be\n // the last element in the DOM (beacuse of the `Portal`)\n useFocusGuards();\n\n return (\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={disableOutsidePointerEvents}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={onFocusOutside}\n onDismiss={() => context.onOpenChange(false)}\n >\n <PopperPrimitive.Content\n data-state={getState(context.open)}\n role=\"dialog\"\n id={context.contentId}\n {...popperScope}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-popover-content-transform-origin' as any]:\n 'var(--radix-popper-transform-origin)',\n }}\n />\n </DismissableLayer>\n </FocusScope>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'PopoverClose';\n\ntype PopoverCloseElement = React.ElementRef<typeof Primitive.button>;\ninterface PopoverCloseProps extends PrimitiveButtonProps {}\n\nconst PopoverClose = React.forwardRef<PopoverCloseElement, PopoverCloseProps>(\n (props: ScopedProps<PopoverCloseProps>, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'PopoverArrow';\n\ntype PopoverArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface PopoverArrowProps extends PopperArrowProps {}\n\nconst PopoverArrow = React.forwardRef<PopoverArrowElement, PopoverArrowProps>(\n (props: ScopedProps<PopoverArrowProps>, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />;\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Popover;\nconst Anchor = PopoverAnchor;\nconst Trigger = PopoverTrigger;\nconst Content = PopoverContent;\nconst Close = PopoverClose;\nconst Arrow = PopoverArrow;\n\nexport {\n createPopoverScope,\n //\n Popover,\n PopoverAnchor,\n PopoverTrigger,\n PopoverContent,\n PopoverClose,\n PopoverArrow,\n //\n Root,\n Anchor,\n Trigger,\n Content,\n Close,\n Arrow,\n};\nexport type {\n PopoverProps,\n PopoverAnchorProps,\n PopoverTriggerProps,\n PopoverContentProps,\n PopoverCloseProps,\n PopoverArrowProps,\n};\n"],"names":["React","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","PopperPrimitive","createPopperScope","DismissableLayer","FocusScope","Portal","useFocusGuards","Presence","Primitive","useId","RemoveScroll","hideOthers","POPOVER_NAME","createPopoverContext","createPopoverScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","props","__scopePopover","children","open","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","useRef","hasCustomAnchor","setHasCustomAnchor","useState","setOpen","prop","defaultProp","onChange","useCallback","prevOpen","ANCHOR_NAME","PopoverAnchor","forwardRef","forwardedRef","anchorProps","context","onCustomAnchorAdd","onCustomAnchorRemove","useEffect","TRIGGER_NAME","PopoverTrigger","triggerProps","composedTriggerRef","trigger","contentId","getState","onClick","onOpenToggle","CONTENT_NAME","PopoverContent","forceMount","contentProps","PopoverContentModal","allowPinchZoom","portalled","contentModalProps","contentRef","composedRefs","isRightClickOutsideRef","content","current","PortalWrapper","Fragment","onCloseAutoFocus","event","preventDefault","focus","onPointerDownOutside","originalEvent","detail","ctrlLeftClick","button","ctrlKey","isRightClick","checkForDefaultPrevented","onFocusOutside","PopoverContentNonModal","contentNonModalProps","hasInteractedOutsideRef","defaultPrevented","onInteractOutside","target","targetIsTrigger","contains","PopoverContentImpl","trapFocus","onOpenAutoFocus","disableOutsidePointerEvents","onEscapeKeyDown","style","CLOSE_NAME","PopoverClose","closeProps","ARROW_NAME","PopoverArrow","arrowProps","Root","Anchor","Trigger","Content","Close","Arrow"],"version":3,"file":"index.js.map"}
|
package/dist/index.module.js
CHANGED
|
@@ -1,2 +1,307 @@
|
|
|
1
|
-
import
|
|
1
|
+
import $am6gm$babelruntimehelpersesmextends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import {useRef as $am6gm$useRef, useState as $am6gm$useState, createElement as $am6gm$createElement, useCallback as $am6gm$useCallback, forwardRef as $am6gm$forwardRef, useEffect as $am6gm$useEffect, Fragment as $am6gm$Fragment} from "react";
|
|
3
|
+
import {composeEventHandlers as $am6gm$composeEventHandlers} from "@radix-ui/primitive";
|
|
4
|
+
import {useComposedRefs as $am6gm$useComposedRefs} from "@radix-ui/react-compose-refs";
|
|
5
|
+
import {createContextScope as $am6gm$createContextScope} from "@radix-ui/react-context";
|
|
6
|
+
import {useControllableState as $am6gm$useControllableState} from "@radix-ui/react-use-controllable-state";
|
|
7
|
+
import {createPopperScope as $am6gm$createPopperScope, Root as $am6gm$Root, Anchor as $am6gm$Anchor, Content as $am6gm$Content, Arrow as $am6gm$Arrow} from "@radix-ui/react-popper";
|
|
8
|
+
import {DismissableLayer as $am6gm$DismissableLayer} from "@radix-ui/react-dismissable-layer";
|
|
9
|
+
import {FocusScope as $am6gm$FocusScope} from "@radix-ui/react-focus-scope";
|
|
10
|
+
import {Portal as $am6gm$Portal} from "@radix-ui/react-portal";
|
|
11
|
+
import {useFocusGuards as $am6gm$useFocusGuards} from "@radix-ui/react-focus-guards";
|
|
12
|
+
import {Presence as $am6gm$Presence} from "@radix-ui/react-presence";
|
|
13
|
+
import {Primitive as $am6gm$Primitive} from "@radix-ui/react-primitive";
|
|
14
|
+
import {useId as $am6gm$useId} from "@radix-ui/react-id";
|
|
15
|
+
import {RemoveScroll as $am6gm$RemoveScroll} from "react-remove-scroll";
|
|
16
|
+
import {hideOthers as $am6gm$hideOthers} from "aria-hidden";
|
|
17
|
+
|
|
18
|
+
function $parcel$export(e, n, v, s) {
|
|
19
|
+
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
20
|
+
}
|
|
21
|
+
var $cb5cc270b50c6fcd$exports = {};
|
|
22
|
+
|
|
23
|
+
$parcel$export($cb5cc270b50c6fcd$exports, "createPopoverScope", () => $cb5cc270b50c6fcd$export$c8393c9e73286932);
|
|
24
|
+
$parcel$export($cb5cc270b50c6fcd$exports, "Popover", () => $cb5cc270b50c6fcd$export$5b6b19405a83ff9d);
|
|
25
|
+
$parcel$export($cb5cc270b50c6fcd$exports, "PopoverAnchor", () => $cb5cc270b50c6fcd$export$96e5381f42521a79);
|
|
26
|
+
$parcel$export($cb5cc270b50c6fcd$exports, "PopoverTrigger", () => $cb5cc270b50c6fcd$export$7dacb05d26466c3);
|
|
27
|
+
$parcel$export($cb5cc270b50c6fcd$exports, "PopoverContent", () => $cb5cc270b50c6fcd$export$d7e1f420b25549ff);
|
|
28
|
+
$parcel$export($cb5cc270b50c6fcd$exports, "PopoverClose", () => $cb5cc270b50c6fcd$export$d6ac43ebaa40d53e);
|
|
29
|
+
$parcel$export($cb5cc270b50c6fcd$exports, "PopoverArrow", () => $cb5cc270b50c6fcd$export$3152841115e061b2);
|
|
30
|
+
$parcel$export($cb5cc270b50c6fcd$exports, "Root", () => $cb5cc270b50c6fcd$export$be92b6f5f03c0fe9);
|
|
31
|
+
$parcel$export($cb5cc270b50c6fcd$exports, "Anchor", () => $cb5cc270b50c6fcd$export$b688253958b8dfe7);
|
|
32
|
+
$parcel$export($cb5cc270b50c6fcd$exports, "Trigger", () => $cb5cc270b50c6fcd$export$41fb9f06171c75f4);
|
|
33
|
+
$parcel$export($cb5cc270b50c6fcd$exports, "Content", () => $cb5cc270b50c6fcd$export$7c6e2c02157bb7d2);
|
|
34
|
+
$parcel$export($cb5cc270b50c6fcd$exports, "Close", () => $cb5cc270b50c6fcd$export$f39c2d165cd861fe);
|
|
35
|
+
$parcel$export($cb5cc270b50c6fcd$exports, "Arrow", () => $cb5cc270b50c6fcd$export$21b07c8f274aebd5);
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
/* -------------------------------------------------------------------------------------------------
|
|
54
|
+
* Popover
|
|
55
|
+
* -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$POPOVER_NAME = 'Popover';
|
|
56
|
+
const [$cb5cc270b50c6fcd$var$createPopoverContext, $cb5cc270b50c6fcd$export$c8393c9e73286932] = $am6gm$createContextScope($cb5cc270b50c6fcd$var$POPOVER_NAME, [
|
|
57
|
+
$am6gm$createPopperScope
|
|
58
|
+
]);
|
|
59
|
+
const $cb5cc270b50c6fcd$var$usePopperScope = $am6gm$createPopperScope();
|
|
60
|
+
const [$cb5cc270b50c6fcd$var$PopoverProvider, $cb5cc270b50c6fcd$var$usePopoverContext] = $cb5cc270b50c6fcd$var$createPopoverContext($cb5cc270b50c6fcd$var$POPOVER_NAME);
|
|
61
|
+
const $cb5cc270b50c6fcd$export$5b6b19405a83ff9d = (props)=>{
|
|
62
|
+
const { __scopePopover: __scopePopover , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , modal: modal = false } = props;
|
|
63
|
+
const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);
|
|
64
|
+
const triggerRef = $am6gm$useRef(null);
|
|
65
|
+
const [hasCustomAnchor, setHasCustomAnchor] = $am6gm$useState(false);
|
|
66
|
+
const [open = false, setOpen] = $am6gm$useControllableState({
|
|
67
|
+
prop: openProp,
|
|
68
|
+
defaultProp: defaultOpen,
|
|
69
|
+
onChange: onOpenChange
|
|
70
|
+
});
|
|
71
|
+
return /*#__PURE__*/ $am6gm$createElement($am6gm$Root, popperScope, /*#__PURE__*/ $am6gm$createElement($cb5cc270b50c6fcd$var$PopoverProvider, {
|
|
72
|
+
scope: __scopePopover,
|
|
73
|
+
contentId: $am6gm$useId(),
|
|
74
|
+
triggerRef: triggerRef,
|
|
75
|
+
open: open,
|
|
76
|
+
onOpenChange: setOpen,
|
|
77
|
+
onOpenToggle: $am6gm$useCallback(()=>setOpen((prevOpen)=>!prevOpen
|
|
78
|
+
)
|
|
79
|
+
, [
|
|
80
|
+
setOpen
|
|
81
|
+
]),
|
|
82
|
+
hasCustomAnchor: hasCustomAnchor,
|
|
83
|
+
onCustomAnchorAdd: $am6gm$useCallback(()=>setHasCustomAnchor(true)
|
|
84
|
+
, []),
|
|
85
|
+
onCustomAnchorRemove: $am6gm$useCallback(()=>setHasCustomAnchor(false)
|
|
86
|
+
, []),
|
|
87
|
+
modal: modal
|
|
88
|
+
}, children));
|
|
89
|
+
};
|
|
90
|
+
/*#__PURE__*/ Object.assign($cb5cc270b50c6fcd$export$5b6b19405a83ff9d, {
|
|
91
|
+
displayName: $cb5cc270b50c6fcd$var$POPOVER_NAME
|
|
92
|
+
});
|
|
93
|
+
/* -------------------------------------------------------------------------------------------------
|
|
94
|
+
* PopoverAnchor
|
|
95
|
+
* -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$ANCHOR_NAME = 'PopoverAnchor';
|
|
96
|
+
const $cb5cc270b50c6fcd$export$96e5381f42521a79 = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{
|
|
97
|
+
const { __scopePopover: __scopePopover , ...anchorProps } = props;
|
|
98
|
+
const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$ANCHOR_NAME, __scopePopover);
|
|
99
|
+
const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);
|
|
100
|
+
const { onCustomAnchorAdd: onCustomAnchorAdd , onCustomAnchorRemove: onCustomAnchorRemove } = context;
|
|
101
|
+
$am6gm$useEffect(()=>{
|
|
102
|
+
onCustomAnchorAdd();
|
|
103
|
+
return ()=>onCustomAnchorRemove()
|
|
104
|
+
;
|
|
105
|
+
}, [
|
|
106
|
+
onCustomAnchorAdd,
|
|
107
|
+
onCustomAnchorRemove
|
|
108
|
+
]);
|
|
109
|
+
return /*#__PURE__*/ $am6gm$createElement($am6gm$Anchor, $am6gm$babelruntimehelpersesmextends({}, popperScope, anchorProps, {
|
|
110
|
+
ref: forwardedRef
|
|
111
|
+
}));
|
|
112
|
+
});
|
|
113
|
+
/*#__PURE__*/ Object.assign($cb5cc270b50c6fcd$export$96e5381f42521a79, {
|
|
114
|
+
displayName: $cb5cc270b50c6fcd$var$ANCHOR_NAME
|
|
115
|
+
});
|
|
116
|
+
/* -------------------------------------------------------------------------------------------------
|
|
117
|
+
* PopoverTrigger
|
|
118
|
+
* -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$TRIGGER_NAME = 'PopoverTrigger';
|
|
119
|
+
const $cb5cc270b50c6fcd$export$7dacb05d26466c3 = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{
|
|
120
|
+
const { __scopePopover: __scopePopover , ...triggerProps } = props;
|
|
121
|
+
const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$TRIGGER_NAME, __scopePopover);
|
|
122
|
+
const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);
|
|
123
|
+
const composedTriggerRef = $am6gm$useComposedRefs(forwardedRef, context.triggerRef);
|
|
124
|
+
const trigger = /*#__PURE__*/ $am6gm$createElement($am6gm$Primitive.button, $am6gm$babelruntimehelpersesmextends({
|
|
125
|
+
type: "button",
|
|
126
|
+
"aria-haspopup": "dialog",
|
|
127
|
+
"aria-expanded": context.open,
|
|
128
|
+
"aria-controls": context.contentId,
|
|
129
|
+
"data-state": $cb5cc270b50c6fcd$var$getState(context.open)
|
|
130
|
+
}, triggerProps, {
|
|
131
|
+
ref: composedTriggerRef,
|
|
132
|
+
onClick: $am6gm$composeEventHandlers(props.onClick, context.onOpenToggle)
|
|
133
|
+
}));
|
|
134
|
+
return context.hasCustomAnchor ? trigger : /*#__PURE__*/ $am6gm$createElement($am6gm$Anchor, $am6gm$babelruntimehelpersesmextends({
|
|
135
|
+
asChild: true
|
|
136
|
+
}, popperScope), trigger);
|
|
137
|
+
});
|
|
138
|
+
/*#__PURE__*/ Object.assign($cb5cc270b50c6fcd$export$7dacb05d26466c3, {
|
|
139
|
+
displayName: $cb5cc270b50c6fcd$var$TRIGGER_NAME
|
|
140
|
+
});
|
|
141
|
+
/* -------------------------------------------------------------------------------------------------
|
|
142
|
+
* PopoverContent
|
|
143
|
+
* -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$CONTENT_NAME = 'PopoverContent';
|
|
144
|
+
const $cb5cc270b50c6fcd$export$d7e1f420b25549ff = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{
|
|
145
|
+
const { forceMount: forceMount , ...contentProps } = props;
|
|
146
|
+
const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);
|
|
147
|
+
return /*#__PURE__*/ $am6gm$createElement($am6gm$Presence, {
|
|
148
|
+
present: forceMount || context.open
|
|
149
|
+
}, context.modal ? /*#__PURE__*/ $am6gm$createElement($cb5cc270b50c6fcd$var$PopoverContentModal, $am6gm$babelruntimehelpersesmextends({}, contentProps, {
|
|
150
|
+
ref: forwardedRef
|
|
151
|
+
})) : /*#__PURE__*/ $am6gm$createElement($cb5cc270b50c6fcd$var$PopoverContentNonModal, $am6gm$babelruntimehelpersesmextends({}, contentProps, {
|
|
152
|
+
ref: forwardedRef
|
|
153
|
+
})));
|
|
154
|
+
});
|
|
155
|
+
/*#__PURE__*/ Object.assign($cb5cc270b50c6fcd$export$d7e1f420b25549ff, {
|
|
156
|
+
displayName: $cb5cc270b50c6fcd$var$CONTENT_NAME
|
|
157
|
+
});
|
|
158
|
+
/* -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$PopoverContentModal = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{
|
|
159
|
+
const { allowPinchZoom: allowPinchZoom , portalled: portalled = true , ...contentModalProps } = props;
|
|
160
|
+
const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);
|
|
161
|
+
const contentRef = $am6gm$useRef(null);
|
|
162
|
+
const composedRefs = $am6gm$useComposedRefs(forwardedRef, contentRef);
|
|
163
|
+
const isRightClickOutsideRef = $am6gm$useRef(false); // aria-hide everything except the content (better supported equivalent to setting aria-modal)
|
|
164
|
+
$am6gm$useEffect(()=>{
|
|
165
|
+
const content = contentRef.current;
|
|
166
|
+
if (content) return $am6gm$hideOthers(content);
|
|
167
|
+
}, []);
|
|
168
|
+
const PortalWrapper = portalled ? $am6gm$Portal : $am6gm$Fragment;
|
|
169
|
+
return /*#__PURE__*/ $am6gm$createElement(PortalWrapper, null, /*#__PURE__*/ $am6gm$createElement($am6gm$RemoveScroll, {
|
|
170
|
+
allowPinchZoom: allowPinchZoom
|
|
171
|
+
}, /*#__PURE__*/ $am6gm$createElement($cb5cc270b50c6fcd$var$PopoverContentImpl, $am6gm$babelruntimehelpersesmextends({}, contentModalProps, {
|
|
172
|
+
ref: composedRefs // we make sure we're not trapping once it's been closed
|
|
173
|
+
,
|
|
174
|
+
trapFocus: context.open,
|
|
175
|
+
disableOutsidePointerEvents: true,
|
|
176
|
+
onCloseAutoFocus: $am6gm$composeEventHandlers(props.onCloseAutoFocus, (event)=>{
|
|
177
|
+
var _context$triggerRef$c;
|
|
178
|
+
event.preventDefault();
|
|
179
|
+
if (!isRightClickOutsideRef.current) (_context$triggerRef$c = context.triggerRef.current) === null || _context$triggerRef$c === void 0 || _context$triggerRef$c.focus();
|
|
180
|
+
}),
|
|
181
|
+
onPointerDownOutside: $am6gm$composeEventHandlers(props.onPointerDownOutside, (event)=>{
|
|
182
|
+
const originalEvent = event.detail.originalEvent;
|
|
183
|
+
const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;
|
|
184
|
+
const isRightClick = originalEvent.button === 2 || ctrlLeftClick;
|
|
185
|
+
isRightClickOutsideRef.current = isRightClick;
|
|
186
|
+
}, {
|
|
187
|
+
checkForDefaultPrevented: false
|
|
188
|
+
}) // When focus is trapped, a `focusout` event may still happen.
|
|
189
|
+
,
|
|
190
|
+
onFocusOutside: $am6gm$composeEventHandlers(props.onFocusOutside, (event)=>event.preventDefault()
|
|
191
|
+
, {
|
|
192
|
+
checkForDefaultPrevented: false
|
|
193
|
+
})
|
|
194
|
+
}))));
|
|
195
|
+
});
|
|
196
|
+
const $cb5cc270b50c6fcd$var$PopoverContentNonModal = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{
|
|
197
|
+
const { portalled: portalled = true , ...contentNonModalProps } = props;
|
|
198
|
+
const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, props.__scopePopover);
|
|
199
|
+
const hasInteractedOutsideRef = $am6gm$useRef(false);
|
|
200
|
+
const PortalWrapper = portalled ? $am6gm$Portal : $am6gm$Fragment;
|
|
201
|
+
return /*#__PURE__*/ $am6gm$createElement(PortalWrapper, null, /*#__PURE__*/ $am6gm$createElement($cb5cc270b50c6fcd$var$PopoverContentImpl, $am6gm$babelruntimehelpersesmextends({}, contentNonModalProps, {
|
|
202
|
+
ref: forwardedRef,
|
|
203
|
+
trapFocus: false,
|
|
204
|
+
disableOutsidePointerEvents: false,
|
|
205
|
+
onCloseAutoFocus: (event)=>{
|
|
206
|
+
var _props$onCloseAutoFoc;
|
|
207
|
+
(_props$onCloseAutoFoc = props.onCloseAutoFocus) === null || _props$onCloseAutoFoc === void 0 || _props$onCloseAutoFoc.call(props, event);
|
|
208
|
+
if (!event.defaultPrevented) {
|
|
209
|
+
var _context$triggerRef$c2;
|
|
210
|
+
if (!hasInteractedOutsideRef.current) (_context$triggerRef$c2 = context.triggerRef.current) === null || _context$triggerRef$c2 === void 0 || _context$triggerRef$c2.focus(); // Always prevent auto focus because we either focus manually or want user agent focus
|
|
211
|
+
event.preventDefault();
|
|
212
|
+
}
|
|
213
|
+
hasInteractedOutsideRef.current = false;
|
|
214
|
+
},
|
|
215
|
+
onInteractOutside: (event)=>{
|
|
216
|
+
var _props$onInteractOuts, _context$triggerRef$c3;
|
|
217
|
+
(_props$onInteractOuts = props.onInteractOutside) === null || _props$onInteractOuts === void 0 || _props$onInteractOuts.call(props, event);
|
|
218
|
+
if (!event.defaultPrevented) hasInteractedOutsideRef.current = true; // Prevent dismissing when clicking the trigger.
|
|
219
|
+
// As the trigger is already setup to close, without doing so would
|
|
220
|
+
// cause it to close and immediately open.
|
|
221
|
+
//
|
|
222
|
+
// We use `onInteractOutside` as some browsers also
|
|
223
|
+
// focus on pointer down, creating the same issue.
|
|
224
|
+
const target = event.target;
|
|
225
|
+
const targetIsTrigger = (_context$triggerRef$c3 = context.triggerRef.current) === null || _context$triggerRef$c3 === void 0 ? void 0 : _context$triggerRef$c3.contains(target);
|
|
226
|
+
if (targetIsTrigger) event.preventDefault();
|
|
227
|
+
}
|
|
228
|
+
})));
|
|
229
|
+
});
|
|
230
|
+
/* -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$PopoverContentImpl = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{
|
|
231
|
+
const { __scopePopover: __scopePopover , trapFocus: trapFocus , onOpenAutoFocus: onOpenAutoFocus , onCloseAutoFocus: onCloseAutoFocus , disableOutsidePointerEvents: disableOutsidePointerEvents , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , ...contentProps } = props;
|
|
232
|
+
const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CONTENT_NAME, __scopePopover);
|
|
233
|
+
const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover); // Make sure the whole tree has focus guards as our `Popover` may be
|
|
234
|
+
// the last element in the DOM (beacuse of the `Portal`)
|
|
235
|
+
$am6gm$useFocusGuards();
|
|
236
|
+
return /*#__PURE__*/ $am6gm$createElement($am6gm$FocusScope, {
|
|
237
|
+
asChild: true,
|
|
238
|
+
loop: true,
|
|
239
|
+
trapped: trapFocus,
|
|
240
|
+
onMountAutoFocus: onOpenAutoFocus,
|
|
241
|
+
onUnmountAutoFocus: onCloseAutoFocus
|
|
242
|
+
}, /*#__PURE__*/ $am6gm$createElement($am6gm$DismissableLayer, {
|
|
243
|
+
asChild: true,
|
|
244
|
+
disableOutsidePointerEvents: disableOutsidePointerEvents,
|
|
245
|
+
onInteractOutside: onInteractOutside,
|
|
246
|
+
onEscapeKeyDown: onEscapeKeyDown,
|
|
247
|
+
onPointerDownOutside: onPointerDownOutside,
|
|
248
|
+
onFocusOutside: onFocusOutside,
|
|
249
|
+
onDismiss: ()=>context.onOpenChange(false)
|
|
250
|
+
}, /*#__PURE__*/ $am6gm$createElement($am6gm$Content, $am6gm$babelruntimehelpersesmextends({
|
|
251
|
+
"data-state": $cb5cc270b50c6fcd$var$getState(context.open),
|
|
252
|
+
role: "dialog",
|
|
253
|
+
id: context.contentId
|
|
254
|
+
}, popperScope, contentProps, {
|
|
255
|
+
ref: forwardedRef,
|
|
256
|
+
style: {
|
|
257
|
+
...contentProps.style,
|
|
258
|
+
// re-namespace exposed content custom property
|
|
259
|
+
['--radix-popover-content-transform-origin']: 'var(--radix-popper-transform-origin)'
|
|
260
|
+
}
|
|
261
|
+
}))));
|
|
262
|
+
});
|
|
263
|
+
/* -------------------------------------------------------------------------------------------------
|
|
264
|
+
* PopoverClose
|
|
265
|
+
* -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$CLOSE_NAME = 'PopoverClose';
|
|
266
|
+
const $cb5cc270b50c6fcd$export$d6ac43ebaa40d53e = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{
|
|
267
|
+
const { __scopePopover: __scopePopover , ...closeProps } = props;
|
|
268
|
+
const context = $cb5cc270b50c6fcd$var$usePopoverContext($cb5cc270b50c6fcd$var$CLOSE_NAME, __scopePopover);
|
|
269
|
+
return /*#__PURE__*/ $am6gm$createElement($am6gm$Primitive.button, $am6gm$babelruntimehelpersesmextends({
|
|
270
|
+
type: "button"
|
|
271
|
+
}, closeProps, {
|
|
272
|
+
ref: forwardedRef,
|
|
273
|
+
onClick: $am6gm$composeEventHandlers(props.onClick, ()=>context.onOpenChange(false)
|
|
274
|
+
)
|
|
275
|
+
}));
|
|
276
|
+
});
|
|
277
|
+
/*#__PURE__*/ Object.assign($cb5cc270b50c6fcd$export$d6ac43ebaa40d53e, {
|
|
278
|
+
displayName: $cb5cc270b50c6fcd$var$CLOSE_NAME
|
|
279
|
+
});
|
|
280
|
+
/* -------------------------------------------------------------------------------------------------
|
|
281
|
+
* PopoverArrow
|
|
282
|
+
* -----------------------------------------------------------------------------------------------*/ const $cb5cc270b50c6fcd$var$ARROW_NAME = 'PopoverArrow';
|
|
283
|
+
const $cb5cc270b50c6fcd$export$3152841115e061b2 = /*#__PURE__*/ $am6gm$forwardRef((props, forwardedRef)=>{
|
|
284
|
+
const { __scopePopover: __scopePopover , ...arrowProps } = props;
|
|
285
|
+
const popperScope = $cb5cc270b50c6fcd$var$usePopperScope(__scopePopover);
|
|
286
|
+
return /*#__PURE__*/ $am6gm$createElement($am6gm$Arrow, $am6gm$babelruntimehelpersesmextends({}, popperScope, arrowProps, {
|
|
287
|
+
ref: forwardedRef
|
|
288
|
+
}));
|
|
289
|
+
});
|
|
290
|
+
/*#__PURE__*/ Object.assign($cb5cc270b50c6fcd$export$3152841115e061b2, {
|
|
291
|
+
displayName: $cb5cc270b50c6fcd$var$ARROW_NAME
|
|
292
|
+
});
|
|
293
|
+
/* -----------------------------------------------------------------------------------------------*/ function $cb5cc270b50c6fcd$var$getState(open) {
|
|
294
|
+
return open ? 'open' : 'closed';
|
|
295
|
+
}
|
|
296
|
+
const $cb5cc270b50c6fcd$export$be92b6f5f03c0fe9 = $cb5cc270b50c6fcd$export$5b6b19405a83ff9d;
|
|
297
|
+
const $cb5cc270b50c6fcd$export$b688253958b8dfe7 = $cb5cc270b50c6fcd$export$96e5381f42521a79;
|
|
298
|
+
const $cb5cc270b50c6fcd$export$41fb9f06171c75f4 = $cb5cc270b50c6fcd$export$7dacb05d26466c3;
|
|
299
|
+
const $cb5cc270b50c6fcd$export$7c6e2c02157bb7d2 = $cb5cc270b50c6fcd$export$d7e1f420b25549ff;
|
|
300
|
+
const $cb5cc270b50c6fcd$export$f39c2d165cd861fe = $cb5cc270b50c6fcd$export$d6ac43ebaa40d53e;
|
|
301
|
+
const $cb5cc270b50c6fcd$export$21b07c8f274aebd5 = $cb5cc270b50c6fcd$export$3152841115e061b2;
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
export {$cb5cc270b50c6fcd$export$c8393c9e73286932 as createPopoverScope, $cb5cc270b50c6fcd$export$5b6b19405a83ff9d as Popover, $cb5cc270b50c6fcd$export$96e5381f42521a79 as PopoverAnchor, $cb5cc270b50c6fcd$export$7dacb05d26466c3 as PopoverTrigger, $cb5cc270b50c6fcd$export$d7e1f420b25549ff as PopoverContent, $cb5cc270b50c6fcd$export$d6ac43ebaa40d53e as PopoverClose, $cb5cc270b50c6fcd$export$3152841115e061b2 as PopoverArrow, $cb5cc270b50c6fcd$export$be92b6f5f03c0fe9 as Root, $cb5cc270b50c6fcd$export$b688253958b8dfe7 as Anchor, $cb5cc270b50c6fcd$export$41fb9f06171c75f4 as Trigger, $cb5cc270b50c6fcd$export$7c6e2c02157bb7d2 as Content, $cb5cc270b50c6fcd$export$f39c2d165cd861fe as Close, $cb5cc270b50c6fcd$export$21b07c8f274aebd5 as Arrow};
|
|
2
307
|
//# sourceMappingURL=index.module.js.map
|
package/dist/index.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["./packages/react/popover/src/Popover.tsx"],"sourcesContent":["import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal } from '@radix-ui/react-portal';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useId } from '@radix-ui/react-id';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = 'Popover';\n\ntype ScopedProps<P> = P & { __scopePopover?: Scope };\nconst [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype PopoverContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement>;\n contentId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n hasCustomAnchor: boolean;\n onCustomAnchorAdd(): void;\n onCustomAnchorRemove(): void;\n modal: boolean;\n};\n\nconst [PopoverProvider, usePopoverContext] =\n createPopoverContext<PopoverContextValue>(POPOVER_NAME);\n\ninterface PopoverProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n}\n\nconst Popover: React.FC<PopoverProps> = (props: ScopedProps<PopoverProps>) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false,\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n <PopperPrimitive.Root {...popperScope}>\n <PopoverProvider\n scope={__scopePopover}\n contentId={useId()}\n triggerRef={triggerRef}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(() => setHasCustomAnchor(true), [])}\n onCustomAnchorRemove={React.useCallback(() => setHasCustomAnchor(false), [])}\n modal={modal}\n >\n {children}\n </PopoverProvider>\n </PopperPrimitive.Root>\n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'PopoverAnchor';\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopperPrimitive.Anchor>;\ntype PopperAnchorProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef<PopoverAnchorElement, PopoverAnchorProps>(\n (props: ScopedProps<PopoverAnchorProps>, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n\n return <PopperPrimitive.Anchor {...popperScope} {...anchorProps} ref={forwardedRef} />;\n }\n);\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'PopoverTrigger';\n\ntype PopoverTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef<PopoverTriggerElement, PopoverTriggerProps>(\n (props: ScopedProps<PopoverTriggerProps>, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n\n const trigger = (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n\n return context.hasCustomAnchor ? (\n trigger\n ) : (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n {trigger}\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nPopoverTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'PopoverContent';\n\ninterface PopoverContentProps extends PopoverContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst PopoverContent = React.forwardRef<PopoverContentTypeElement, PopoverContentProps>(\n (props: ScopedProps<PopoverContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <PopoverContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <PopoverContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype RemoveScrollProps = React.ComponentProps<typeof RemoveScroll>;\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit<PopoverContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom'];\n /**\n * Whether the `Popover` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n}\n\nconst PopoverContentModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { allowPinchZoom, portalled = true, ...contentModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <RemoveScroll allowPinchZoom={allowPinchZoom}>\n <PopoverContentImpl\n {...contentModalProps}\n ref={composedRefs}\n // we make sure we're not trapping once it's been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n )}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )}\n />\n </RemoveScroll>\n </PortalWrapper>\n );\n }\n);\n\nconst PopoverContentNonModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { portalled = true, ...contentNonModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <PopoverContentImpl\n {...contentNonModalProps}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true;\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n }}\n />\n </PortalWrapper>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<typeof PopperPrimitive.Content>;\ntype FocusScopeProps = Radix.ComponentPropsWithoutRef<typeof FocusScope>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface PopoverContentImplProps\n extends PopperContentProps,\n Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * Whether focus should be trapped within the `Popover`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst PopoverContentImpl = React.forwardRef<PopoverContentImplElement, PopoverContentImplProps>(\n (props: ScopedProps<PopoverContentImplProps>, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n\n // Make sure the whole tree has focus guards as our `Popover` may be\n // the last element in the DOM (beacuse of the `Portal`)\n useFocusGuards();\n\n return (\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={disableOutsidePointerEvents}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={onFocusOutside}\n onDismiss={() => context.onOpenChange(false)}\n >\n <PopperPrimitive.Content\n data-state={getState(context.open)}\n role=\"dialog\"\n id={context.contentId}\n {...popperScope}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-popover-content-transform-origin' as any]:\n 'var(--radix-popper-transform-origin)',\n }}\n />\n </DismissableLayer>\n </FocusScope>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'PopoverClose';\n\ntype PopoverCloseElement = React.ElementRef<typeof Primitive.button>;\ninterface PopoverCloseProps extends PrimitiveButtonProps {}\n\nconst PopoverClose = React.forwardRef<PopoverCloseElement, PopoverCloseProps>(\n (props: ScopedProps<PopoverCloseProps>, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'PopoverArrow';\n\ntype PopoverArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface PopoverArrowProps extends PopperArrowProps {}\n\nconst PopoverArrow = React.forwardRef<PopoverArrowElement, PopoverArrowProps>(\n (props: ScopedProps<PopoverArrowProps>, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />;\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Popover;\nconst Anchor = PopoverAnchor;\nconst Trigger = PopoverTrigger;\nconst Content = PopoverContent;\nconst Close = PopoverClose;\nconst Arrow = PopoverArrow;\n\nexport {\n createPopoverScope,\n //\n Popover,\n PopoverAnchor,\n PopoverTrigger,\n PopoverContent,\n PopoverClose,\n PopoverArrow,\n //\n Root,\n Anchor,\n Trigger,\n Content,\n Close,\n Arrow,\n};\nexport type {\n PopoverProps,\n PopoverAnchorProps,\n PopoverTriggerProps,\n PopoverContentProps,\n PopoverCloseProps,\n PopoverArrowProps,\n};\n"],"names":["createPopoverContext","createPopoverScope","createContextScope","createPopperScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","props","__scopePopover","children","open","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","React","useRef","hasCustomAnchor","setHasCustomAnchor","useState","setOpen","useControllableState","prop","defaultProp","onChange","_react","createElement","_radixUiReactPopper","Root","$f4ab2d44b661a498b6a640a78746e78$var$PopoverProvider","scope","contentId","useId","onOpenToggle","useCallback","prevOpen","onCustomAnchorAdd","onCustomAnchorRemove","PopoverAnchor","forwardRef","forwardedRef","anchorProps","context","useEffect","Anchor","_babelRuntimeHelpersEsmExtends","ref","PopoverTrigger","triggerProps","composedTriggerRef","useComposedRefs","trigger","Primitive","button","type","getState","onClick","composeEventHandlers","asChild","PopoverContent","forceMount","contentProps","Presence","present","$f4ab2d44b661a498b6a640a78746e78$var$PopoverContentModal","$f4ab2d44b661a498b6a640a78746e78$var$PopoverContentNonModal","PopoverContentModal","allowPinchZoom","portalled","contentModalProps","contentRef","composedRefs","isRightClickOutsideRef","content","current","hideOthers","PortalWrapper","Portal","Fragment","RemoveScroll","$f4ab2d44b661a498b6a640a78746e78$var$PopoverContentImpl","trapFocus","disableOutsidePointerEvents","onCloseAutoFocus","event","_context$triggerRef$c","preventDefault","focus","onPointerDownOutside","originalEvent","detail","ctrlLeftClick","ctrlKey","isRightClick","checkForDefaultPrevented","onFocusOutside","PopoverContentNonModal","contentNonModalProps","hasInteractedOutsideRef","_props$onCloseAutoFoc","_context$triggerRef$c2","call","defaultPrevented","onInteractOutside","_props$onInteractOuts","_context$triggerRef$c3","target","contains","PopoverContentImpl","onOpenAutoFocus","onEscapeKeyDown","useFocusGuards","FocusScope","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","DismissableLayer","onDismiss","Content","role","id","style","PopoverClose","closeProps","PopoverArrow","arrowProps","Arrow","Trigger","Close"],"version":3,"file":"index.module.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["packages/react/popover/src/index.ts","packages/react/popover/src/Popover.tsx"],"sourcesContent":["export * from './Popover';\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal } from '@radix-ui/react-portal';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useId } from '@radix-ui/react-id';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = 'Popover';\n\ntype ScopedProps<P> = P & { __scopePopover?: Scope };\nconst [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype PopoverContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement>;\n contentId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n hasCustomAnchor: boolean;\n onCustomAnchorAdd(): void;\n onCustomAnchorRemove(): void;\n modal: boolean;\n};\n\nconst [PopoverProvider, usePopoverContext] =\n createPopoverContext<PopoverContextValue>(POPOVER_NAME);\n\ninterface PopoverProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n}\n\nconst Popover: React.FC<PopoverProps> = (props: ScopedProps<PopoverProps>) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false,\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n <PopperPrimitive.Root {...popperScope}>\n <PopoverProvider\n scope={__scopePopover}\n contentId={useId()}\n triggerRef={triggerRef}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(() => setHasCustomAnchor(true), [])}\n onCustomAnchorRemove={React.useCallback(() => setHasCustomAnchor(false), [])}\n modal={modal}\n >\n {children}\n </PopoverProvider>\n </PopperPrimitive.Root>\n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'PopoverAnchor';\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopperPrimitive.Anchor>;\ntype PopperAnchorProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef<PopoverAnchorElement, PopoverAnchorProps>(\n (props: ScopedProps<PopoverAnchorProps>, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n\n return <PopperPrimitive.Anchor {...popperScope} {...anchorProps} ref={forwardedRef} />;\n }\n);\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'PopoverTrigger';\n\ntype PopoverTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef<PopoverTriggerElement, PopoverTriggerProps>(\n (props: ScopedProps<PopoverTriggerProps>, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n\n const trigger = (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n\n return context.hasCustomAnchor ? (\n trigger\n ) : (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n {trigger}\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nPopoverTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'PopoverContent';\n\ninterface PopoverContentProps extends PopoverContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst PopoverContent = React.forwardRef<PopoverContentTypeElement, PopoverContentProps>(\n (props: ScopedProps<PopoverContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <PopoverContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <PopoverContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype RemoveScrollProps = React.ComponentProps<typeof RemoveScroll>;\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit<PopoverContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom'];\n /**\n * Whether the `Popover` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n}\n\nconst PopoverContentModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { allowPinchZoom, portalled = true, ...contentModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <RemoveScroll allowPinchZoom={allowPinchZoom}>\n <PopoverContentImpl\n {...contentModalProps}\n ref={composedRefs}\n // we make sure we're not trapping once it's been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n )}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )}\n />\n </RemoveScroll>\n </PortalWrapper>\n );\n }\n);\n\nconst PopoverContentNonModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { portalled = true, ...contentNonModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <PopoverContentImpl\n {...contentNonModalProps}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true;\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n }}\n />\n </PortalWrapper>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<typeof PopperPrimitive.Content>;\ntype FocusScopeProps = Radix.ComponentPropsWithoutRef<typeof FocusScope>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface PopoverContentImplProps\n extends PopperContentProps,\n Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * Whether focus should be trapped within the `Popover`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst PopoverContentImpl = React.forwardRef<PopoverContentImplElement, PopoverContentImplProps>(\n (props: ScopedProps<PopoverContentImplProps>, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n\n // Make sure the whole tree has focus guards as our `Popover` may be\n // the last element in the DOM (beacuse of the `Portal`)\n useFocusGuards();\n\n return (\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={disableOutsidePointerEvents}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={onFocusOutside}\n onDismiss={() => context.onOpenChange(false)}\n >\n <PopperPrimitive.Content\n data-state={getState(context.open)}\n role=\"dialog\"\n id={context.contentId}\n {...popperScope}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-popover-content-transform-origin' as any]:\n 'var(--radix-popper-transform-origin)',\n }}\n />\n </DismissableLayer>\n </FocusScope>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'PopoverClose';\n\ntype PopoverCloseElement = React.ElementRef<typeof Primitive.button>;\ninterface PopoverCloseProps extends PrimitiveButtonProps {}\n\nconst PopoverClose = React.forwardRef<PopoverCloseElement, PopoverCloseProps>(\n (props: ScopedProps<PopoverCloseProps>, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'PopoverArrow';\n\ntype PopoverArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface PopoverArrowProps extends PopperArrowProps {}\n\nconst PopoverArrow = React.forwardRef<PopoverArrowElement, PopoverArrowProps>(\n (props: ScopedProps<PopoverArrowProps>, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />;\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Popover;\nconst Anchor = PopoverAnchor;\nconst Trigger = PopoverTrigger;\nconst Content = PopoverContent;\nconst Close = PopoverClose;\nconst Arrow = PopoverArrow;\n\nexport {\n createPopoverScope,\n //\n Popover,\n PopoverAnchor,\n PopoverTrigger,\n PopoverContent,\n PopoverClose,\n PopoverArrow,\n //\n Root,\n Anchor,\n Trigger,\n Content,\n Close,\n Arrow,\n};\nexport type {\n PopoverProps,\n PopoverAnchorProps,\n PopoverTriggerProps,\n PopoverContentProps,\n PopoverCloseProps,\n PopoverArrowProps,\n};\n"],"names":["React","composeEventHandlers","useComposedRefs","createContextScope","useControllableState","PopperPrimitive","createPopperScope","DismissableLayer","FocusScope","Portal","useFocusGuards","Presence","Primitive","useId","RemoveScroll","hideOthers","POPOVER_NAME","createPopoverContext","createPopoverScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","props","__scopePopover","children","open","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","useRef","hasCustomAnchor","setHasCustomAnchor","useState","setOpen","prop","defaultProp","onChange","useCallback","prevOpen","ANCHOR_NAME","PopoverAnchor","forwardRef","forwardedRef","anchorProps","context","onCustomAnchorAdd","onCustomAnchorRemove","useEffect","TRIGGER_NAME","PopoverTrigger","triggerProps","composedTriggerRef","trigger","contentId","getState","onClick","onOpenToggle","CONTENT_NAME","PopoverContent","forceMount","contentProps","PopoverContentModal","allowPinchZoom","portalled","contentModalProps","contentRef","composedRefs","isRightClickOutsideRef","content","current","PortalWrapper","Fragment","onCloseAutoFocus","event","preventDefault","focus","onPointerDownOutside","originalEvent","detail","ctrlLeftClick","button","ctrlKey","isRightClick","checkForDefaultPrevented","onFocusOutside","PopoverContentNonModal","contentNonModalProps","hasInteractedOutsideRef","defaultPrevented","onInteractOutside","target","targetIsTrigger","contains","PopoverContentImpl","trapFocus","onOpenAutoFocus","disableOutsidePointerEvents","onEscapeKeyDown","style","CLOSE_NAME","PopoverClose","closeProps","ARROW_NAME","PopoverArrow","arrowProps","Root","Anchor","Trigger","Content","Close","Arrow"],"version":3,"file":"index.module.js.map"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@radix-ui/react-popover",
|
|
3
|
-
"version": "0.1.7-rc.
|
|
3
|
+
"version": "0.1.7-rc.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -18,17 +18,17 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@babel/runtime": "^7.13.10",
|
|
20
20
|
"@radix-ui/primitive": "0.1.0",
|
|
21
|
-
"@radix-ui/react-compose-refs": "0.1.1-rc.
|
|
22
|
-
"@radix-ui/react-context": "0.1.2-rc.
|
|
23
|
-
"@radix-ui/react-dismissable-layer": "0.1.6-rc.
|
|
24
|
-
"@radix-ui/react-focus-guards": "0.1.1-rc.
|
|
25
|
-
"@radix-ui/react-focus-scope": "0.1.5-rc.
|
|
26
|
-
"@radix-ui/react-id": "0.1.6-rc.
|
|
27
|
-
"@radix-ui/react-popper": "0.1.5-rc.
|
|
28
|
-
"@radix-ui/react-portal": "0.1.5-rc.
|
|
29
|
-
"@radix-ui/react-presence": "0.1.3-rc.
|
|
30
|
-
"@radix-ui/react-primitive": "0.1.5-rc.
|
|
31
|
-
"@radix-ui/react-use-controllable-state": "0.1.1-rc.
|
|
21
|
+
"@radix-ui/react-compose-refs": "0.1.1-rc.3",
|
|
22
|
+
"@radix-ui/react-context": "0.1.2-rc.3",
|
|
23
|
+
"@radix-ui/react-dismissable-layer": "0.1.6-rc.3",
|
|
24
|
+
"@radix-ui/react-focus-guards": "0.1.1-rc.3",
|
|
25
|
+
"@radix-ui/react-focus-scope": "0.1.5-rc.3",
|
|
26
|
+
"@radix-ui/react-id": "0.1.6-rc.3",
|
|
27
|
+
"@radix-ui/react-popper": "0.1.5-rc.3",
|
|
28
|
+
"@radix-ui/react-portal": "0.1.5-rc.3",
|
|
29
|
+
"@radix-ui/react-presence": "0.1.3-rc.3",
|
|
30
|
+
"@radix-ui/react-primitive": "0.1.5-rc.3",
|
|
31
|
+
"@radix-ui/react-use-controllable-state": "0.1.1-rc.3",
|
|
32
32
|
"aria-hidden": "^1.1.1",
|
|
33
33
|
"react-remove-scroll": "^2.4.0"
|
|
34
34
|
},
|