@huin-core/react-popover 1.0.4 → 1.0.6
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.mts +8 -8
- package/dist/index.d.ts +8 -8
- package/dist/index.js +65 -71
- package/dist/index.js.map +3 -3
- package/dist/index.mjs +65 -71
- package/dist/index.mjs.map +3 -3
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as React
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import * as PopperPrimitive from '@huin-core/react-popper';
|
|
4
4
|
import { Primitive } from '@huin-core/react-primitive';
|
|
@@ -7,7 +7,7 @@ import { DismissableLayer } from '@huin-core/react-dismissable-layer';
|
|
|
7
7
|
import { FocusScope } from '@huin-core/react-focus-scope';
|
|
8
8
|
|
|
9
9
|
type Scope<C = any> = {
|
|
10
|
-
[scopeName: string]: React
|
|
10
|
+
[scopeName: string]: React.Context<C>[];
|
|
11
11
|
} | undefined;
|
|
12
12
|
type ScopeHook = (scope: Scope) => {
|
|
13
13
|
[__scopeProp: string]: Scope;
|
|
@@ -19,14 +19,14 @@ interface CreateScope {
|
|
|
19
19
|
|
|
20
20
|
declare const createPopoverScope: CreateScope;
|
|
21
21
|
interface PopoverProps {
|
|
22
|
-
children?: React
|
|
22
|
+
children?: React.ReactNode;
|
|
23
23
|
open?: boolean;
|
|
24
24
|
defaultOpen?: boolean;
|
|
25
25
|
onOpenChange?: (open: boolean) => void;
|
|
26
26
|
modal?: boolean;
|
|
27
27
|
}
|
|
28
|
-
declare const Popover: React
|
|
29
|
-
declare const Root: React
|
|
28
|
+
declare const Popover: React.FC<PopoverProps>;
|
|
29
|
+
declare const Root: React.FC<PopoverProps>;
|
|
30
30
|
|
|
31
31
|
type PopperAnchorProps = React__default.ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>;
|
|
32
32
|
interface PopoverAnchorProps extends PopperAnchorProps {
|
|
@@ -38,9 +38,9 @@ interface PopoverTriggerProps extends PrimitiveButtonProps {
|
|
|
38
38
|
}
|
|
39
39
|
declare const PopoverTrigger: React__default.ForwardRefExoticComponent<PopoverTriggerProps & React__default.RefAttributes<HTMLButtonElement>>;
|
|
40
40
|
|
|
41
|
-
type PortalProps =
|
|
41
|
+
type PortalProps = React__default.ComponentPropsWithoutRef<typeof Portal>;
|
|
42
42
|
interface PopoverPortalProps {
|
|
43
|
-
children?:
|
|
43
|
+
children?: React__default.ReactNode;
|
|
44
44
|
/**
|
|
45
45
|
* Specify a container element to portal the content into.
|
|
46
46
|
*/
|
|
@@ -51,7 +51,7 @@ interface PopoverPortalProps {
|
|
|
51
51
|
*/
|
|
52
52
|
forceMount?: true;
|
|
53
53
|
}
|
|
54
|
-
declare const PopoverPortal:
|
|
54
|
+
declare const PopoverPortal: React__default.FC<PopoverPortalProps>;
|
|
55
55
|
|
|
56
56
|
interface PopoverContentProps extends PopoverContentTypeProps {
|
|
57
57
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as React
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import * as PopperPrimitive from '@huin-core/react-popper';
|
|
4
4
|
import { Primitive } from '@huin-core/react-primitive';
|
|
@@ -7,7 +7,7 @@ import { DismissableLayer } from '@huin-core/react-dismissable-layer';
|
|
|
7
7
|
import { FocusScope } from '@huin-core/react-focus-scope';
|
|
8
8
|
|
|
9
9
|
type Scope<C = any> = {
|
|
10
|
-
[scopeName: string]: React
|
|
10
|
+
[scopeName: string]: React.Context<C>[];
|
|
11
11
|
} | undefined;
|
|
12
12
|
type ScopeHook = (scope: Scope) => {
|
|
13
13
|
[__scopeProp: string]: Scope;
|
|
@@ -19,14 +19,14 @@ interface CreateScope {
|
|
|
19
19
|
|
|
20
20
|
declare const createPopoverScope: CreateScope;
|
|
21
21
|
interface PopoverProps {
|
|
22
|
-
children?: React
|
|
22
|
+
children?: React.ReactNode;
|
|
23
23
|
open?: boolean;
|
|
24
24
|
defaultOpen?: boolean;
|
|
25
25
|
onOpenChange?: (open: boolean) => void;
|
|
26
26
|
modal?: boolean;
|
|
27
27
|
}
|
|
28
|
-
declare const Popover: React
|
|
29
|
-
declare const Root: React
|
|
28
|
+
declare const Popover: React.FC<PopoverProps>;
|
|
29
|
+
declare const Root: React.FC<PopoverProps>;
|
|
30
30
|
|
|
31
31
|
type PopperAnchorProps = React__default.ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>;
|
|
32
32
|
interface PopoverAnchorProps extends PopperAnchorProps {
|
|
@@ -38,9 +38,9 @@ interface PopoverTriggerProps extends PrimitiveButtonProps {
|
|
|
38
38
|
}
|
|
39
39
|
declare const PopoverTrigger: React__default.ForwardRefExoticComponent<PopoverTriggerProps & React__default.RefAttributes<HTMLButtonElement>>;
|
|
40
40
|
|
|
41
|
-
type PortalProps =
|
|
41
|
+
type PortalProps = React__default.ComponentPropsWithoutRef<typeof Portal>;
|
|
42
42
|
interface PopoverPortalProps {
|
|
43
|
-
children?:
|
|
43
|
+
children?: React__default.ReactNode;
|
|
44
44
|
/**
|
|
45
45
|
* Specify a container element to portal the content into.
|
|
46
46
|
*/
|
|
@@ -51,7 +51,7 @@ interface PopoverPortalProps {
|
|
|
51
51
|
*/
|
|
52
52
|
forceMount?: true;
|
|
53
53
|
}
|
|
54
|
-
declare const PopoverPortal:
|
|
54
|
+
declare const PopoverPortal: React__default.FC<PopoverPortalProps>;
|
|
55
55
|
|
|
56
56
|
interface PopoverContentProps extends PopoverContentTypeProps {
|
|
57
57
|
/**
|
package/dist/index.js
CHANGED
|
@@ -50,7 +50,6 @@ var import_react_id = require("@huin-core/react-id");
|
|
|
50
50
|
var PopperPrimitive = __toESM(require("@huin-core/react-popper"));
|
|
51
51
|
var import_react_popper = require("@huin-core/react-popper");
|
|
52
52
|
var import_react_use_controllable_state = require("@huin-core/react-use-controllable-state");
|
|
53
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
54
53
|
var POPOVER_NAME = "Popover";
|
|
55
54
|
var [createPopoverContext, createPopoverScope] = (0, import_react_context.createContextScope)(
|
|
56
55
|
POPOVER_NAME,
|
|
@@ -75,7 +74,7 @@ var Popover = (props) => {
|
|
|
75
74
|
defaultProp: defaultOpen,
|
|
76
75
|
onChange: onOpenChange
|
|
77
76
|
});
|
|
78
|
-
return /* @__PURE__ */
|
|
77
|
+
return /* @__PURE__ */ React.createElement(PopperPrimitive.Root, { ...popperScope }, /* @__PURE__ */ React.createElement(
|
|
79
78
|
PopoverProvider,
|
|
80
79
|
{
|
|
81
80
|
scope: __scopePopover,
|
|
@@ -96,10 +95,10 @@ var Popover = (props) => {
|
|
|
96
95
|
() => setHasCustomAnchor(false),
|
|
97
96
|
[]
|
|
98
97
|
),
|
|
99
|
-
modal
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
)
|
|
98
|
+
modal
|
|
99
|
+
},
|
|
100
|
+
children
|
|
101
|
+
));
|
|
103
102
|
};
|
|
104
103
|
Popover.displayName = POPOVER_NAME;
|
|
105
104
|
var Root2 = Popover;
|
|
@@ -107,7 +106,6 @@ var Root2 = Popover;
|
|
|
107
106
|
// packages/react/popover/src/PopoverAnchor.tsx
|
|
108
107
|
var PopperPrimitive2 = __toESM(require("@huin-core/react-popper"));
|
|
109
108
|
var import_react = __toESM(require("react"));
|
|
110
|
-
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
111
109
|
var ANCHOR_NAME = "PopoverAnchor";
|
|
112
110
|
var PopoverAnchor = import_react.default.forwardRef((props, forwardedRef) => {
|
|
113
111
|
const { __scopePopover, ...anchorProps } = props;
|
|
@@ -118,7 +116,7 @@ var PopoverAnchor = import_react.default.forwardRef((props, forwardedRef) => {
|
|
|
118
116
|
onCustomAnchorAdd();
|
|
119
117
|
return () => onCustomAnchorRemove();
|
|
120
118
|
}, [onCustomAnchorAdd, onCustomAnchorRemove]);
|
|
121
|
-
return /* @__PURE__ */
|
|
119
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
122
120
|
PopperPrimitive2.Anchor,
|
|
123
121
|
{
|
|
124
122
|
...popperScope,
|
|
@@ -130,14 +128,14 @@ var PopoverAnchor = import_react.default.forwardRef((props, forwardedRef) => {
|
|
|
130
128
|
PopoverAnchor.displayName = ANCHOR_NAME;
|
|
131
129
|
|
|
132
130
|
// packages/react/popover/src/PopoverTrigger.tsx
|
|
133
|
-
var
|
|
131
|
+
var import_react4 = __toESM(require("react"));
|
|
134
132
|
var import_react_primitive = require("@huin-core/react-primitive");
|
|
135
133
|
var import_react_compose_refs2 = require("@huin-core/react-compose-refs");
|
|
136
134
|
var PopperPrimitive4 = __toESM(require("@huin-core/react-popper"));
|
|
137
135
|
var import_primitive2 = require("@huin-core/primitive");
|
|
138
136
|
|
|
139
137
|
// packages/react/popover/src/PopoverContent.tsx
|
|
140
|
-
var
|
|
138
|
+
var import_react3 = __toESM(require("react"));
|
|
141
139
|
var import_react_presence2 = require("@huin-core/react-presence");
|
|
142
140
|
var import_react_compose_refs = require("@huin-core/react-compose-refs");
|
|
143
141
|
var import_aria_hidden = require("aria-hidden");
|
|
@@ -150,9 +148,9 @@ var import_react_focus_scope = require("@huin-core/react-focus-scope");
|
|
|
150
148
|
var import_react_focus_guards = require("@huin-core/react-focus-guards");
|
|
151
149
|
|
|
152
150
|
// packages/react/popover/src/PopoverPortal.tsx
|
|
151
|
+
var import_react2 = __toESM(require("react"));
|
|
153
152
|
var import_react_portal = require("@huin-core/react-portal");
|
|
154
153
|
var import_react_presence = require("@huin-core/react-presence");
|
|
155
|
-
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
156
154
|
var PORTAL_NAME = "PopoverPortal";
|
|
157
155
|
var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {
|
|
158
156
|
forceMount: void 0
|
|
@@ -160,30 +158,29 @@ var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {
|
|
|
160
158
|
var PopoverPortal = (props) => {
|
|
161
159
|
const { __scopePopover, forceMount, children, container } = props;
|
|
162
160
|
const context = usePopoverContext(PORTAL_NAME, __scopePopover);
|
|
163
|
-
return /* @__PURE__ */
|
|
161
|
+
return /* @__PURE__ */ import_react2.default.createElement(PortalProvider, { scope: __scopePopover, forceMount }, /* @__PURE__ */ import_react2.default.createElement(import_react_presence.Presence, { present: forceMount || context.open }, /* @__PURE__ */ import_react2.default.createElement(import_react_portal.Portal, { asChild: true, container }, children)));
|
|
164
162
|
};
|
|
165
163
|
PopoverPortal.displayName = PORTAL_NAME;
|
|
166
164
|
|
|
167
165
|
// packages/react/popover/src/PopoverContent.tsx
|
|
168
|
-
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
169
166
|
var CONTENT_NAME = "PopoverContent";
|
|
170
|
-
var PopoverContent =
|
|
167
|
+
var PopoverContent = import_react3.default.forwardRef((props, forwardedRef) => {
|
|
171
168
|
const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);
|
|
172
169
|
const { forceMount = portalContext.forceMount, ...contentProps } = props;
|
|
173
170
|
const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
|
|
174
|
-
return /* @__PURE__ */
|
|
171
|
+
return /* @__PURE__ */ import_react3.default.createElement(import_react_presence2.Presence, { present: forceMount || context.open }, context.modal ? /* @__PURE__ */ import_react3.default.createElement(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ import_react3.default.createElement(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }));
|
|
175
172
|
});
|
|
176
173
|
PopoverContent.displayName = CONTENT_NAME;
|
|
177
|
-
var PopoverContentModal =
|
|
174
|
+
var PopoverContentModal = import_react3.default.forwardRef((props, forwardedRef) => {
|
|
178
175
|
const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
|
|
179
|
-
const contentRef =
|
|
176
|
+
const contentRef = import_react3.default.useRef(null);
|
|
180
177
|
const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, contentRef);
|
|
181
|
-
const isRightClickOutsideRef =
|
|
182
|
-
|
|
178
|
+
const isRightClickOutsideRef = import_react3.default.useRef(false);
|
|
179
|
+
import_react3.default.useEffect(() => {
|
|
183
180
|
const content = contentRef.current;
|
|
184
181
|
if (content) return (0, import_aria_hidden.hideOthers)(content);
|
|
185
182
|
}, []);
|
|
186
|
-
return /* @__PURE__ */
|
|
183
|
+
return /* @__PURE__ */ import_react3.default.createElement(import_react_remove_scroll.RemoveScroll, { as: import_react_slot.Slot, allowPinchZoom: true }, /* @__PURE__ */ import_react3.default.createElement(
|
|
187
184
|
PopoverContentImpl,
|
|
188
185
|
{
|
|
189
186
|
...props,
|
|
@@ -214,13 +211,13 @@ var PopoverContentModal = import_react2.default.forwardRef((props, forwardedRef)
|
|
|
214
211
|
{ checkForDefaultPrevented: false }
|
|
215
212
|
)
|
|
216
213
|
}
|
|
217
|
-
)
|
|
214
|
+
));
|
|
218
215
|
});
|
|
219
|
-
var PopoverContentNonModal =
|
|
216
|
+
var PopoverContentNonModal = import_react3.default.forwardRef((props, forwardedRef) => {
|
|
220
217
|
const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
|
|
221
|
-
const hasInteractedOutsideRef =
|
|
222
|
-
const hasPointerDownOutsideRef =
|
|
223
|
-
return /* @__PURE__ */
|
|
218
|
+
const hasInteractedOutsideRef = import_react3.default.useRef(false);
|
|
219
|
+
const hasPointerDownOutsideRef = import_react3.default.useRef(false);
|
|
220
|
+
return /* @__PURE__ */ import_react3.default.createElement(
|
|
224
221
|
PopoverContentImpl,
|
|
225
222
|
{
|
|
226
223
|
...props,
|
|
@@ -255,7 +252,7 @@ var PopoverContentNonModal = import_react2.default.forwardRef((props, forwardedR
|
|
|
255
252
|
}
|
|
256
253
|
);
|
|
257
254
|
});
|
|
258
|
-
var PopoverContentImpl =
|
|
255
|
+
var PopoverContentImpl = import_react3.default.forwardRef((props, forwardedRef) => {
|
|
259
256
|
const {
|
|
260
257
|
__scopePopover,
|
|
261
258
|
trapFocus,
|
|
@@ -271,49 +268,49 @@ var PopoverContentImpl = import_react2.default.forwardRef((props, forwardedRef)
|
|
|
271
268
|
const context = usePopoverContext(CONTENT_NAME, __scopePopover);
|
|
272
269
|
const popperScope = usePopperScope(__scopePopover);
|
|
273
270
|
(0, import_react_focus_guards.useFocusGuards)();
|
|
274
|
-
return /* @__PURE__ */
|
|
271
|
+
return /* @__PURE__ */ import_react3.default.createElement(
|
|
275
272
|
import_react_focus_scope.FocusScope,
|
|
276
273
|
{
|
|
277
274
|
asChild: true,
|
|
278
275
|
loop: true,
|
|
279
276
|
trapped: trapFocus,
|
|
280
277
|
onMountAutoFocus: onOpenAutoFocus,
|
|
281
|
-
onUnmountAutoFocus: onCloseAutoFocus
|
|
282
|
-
|
|
283
|
-
|
|
278
|
+
onUnmountAutoFocus: onCloseAutoFocus
|
|
279
|
+
},
|
|
280
|
+
/* @__PURE__ */ import_react3.default.createElement(
|
|
281
|
+
import_react_dismissable_layer.DismissableLayer,
|
|
282
|
+
{
|
|
283
|
+
asChild: true,
|
|
284
|
+
disableOutsidePointerEvents,
|
|
285
|
+
onInteractOutside,
|
|
286
|
+
onEscapeKeyDown,
|
|
287
|
+
onPointerDownOutside,
|
|
288
|
+
onFocusOutside,
|
|
289
|
+
onDismiss: () => context.onOpenChange(false)
|
|
290
|
+
},
|
|
291
|
+
/* @__PURE__ */ import_react3.default.createElement(
|
|
292
|
+
PopperPrimitive3.Content,
|
|
284
293
|
{
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
{
|
|
295
|
-
"
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
ref: forwardedRef,
|
|
301
|
-
style: {
|
|
302
|
-
...contentProps.style,
|
|
303
|
-
// re-namespace exposed content custom properties
|
|
304
|
-
...{
|
|
305
|
-
"--huin-core-popover-content-transform-origin": "var(--huin-core-popper-transform-origin)",
|
|
306
|
-
"--huin-core-popover-content-available-width": "var(--huin-core-popper-available-width)",
|
|
307
|
-
"--huin-core-popover-content-available-height": "var(--huin-core-popper-available-height)",
|
|
308
|
-
"--huin-core-popover-trigger-width": "var(--huin-core-popper-anchor-width)",
|
|
309
|
-
"--huin-core-popover-trigger-height": "var(--huin-core-popper-anchor-height)"
|
|
310
|
-
}
|
|
311
|
-
}
|
|
294
|
+
"data-state": getState(context.open),
|
|
295
|
+
role: "dialog",
|
|
296
|
+
id: context.contentId,
|
|
297
|
+
...popperScope,
|
|
298
|
+
...contentProps,
|
|
299
|
+
ref: forwardedRef,
|
|
300
|
+
style: {
|
|
301
|
+
...contentProps.style,
|
|
302
|
+
// re-namespace exposed content custom properties
|
|
303
|
+
...{
|
|
304
|
+
"--huin-core-popover-content-transform-origin": "var(--huin-core-popper-transform-origin)",
|
|
305
|
+
"--huin-core-popover-content-available-width": "var(--huin-core-popper-available-width)",
|
|
306
|
+
"--huin-core-popover-content-available-height": "var(--huin-core-popper-available-height)",
|
|
307
|
+
"--huin-core-popover-trigger-width": "var(--huin-core-popper-anchor-width)",
|
|
308
|
+
"--huin-core-popover-trigger-height": "var(--huin-core-popper-anchor-height)"
|
|
312
309
|
}
|
|
313
|
-
|
|
310
|
+
}
|
|
314
311
|
}
|
|
315
312
|
)
|
|
316
|
-
|
|
313
|
+
)
|
|
317
314
|
);
|
|
318
315
|
});
|
|
319
316
|
function getState(open) {
|
|
@@ -321,14 +318,13 @@ function getState(open) {
|
|
|
321
318
|
}
|
|
322
319
|
|
|
323
320
|
// packages/react/popover/src/PopoverTrigger.tsx
|
|
324
|
-
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
325
321
|
var TRIGGER_NAME = "PopoverTrigger";
|
|
326
|
-
var PopoverTrigger =
|
|
322
|
+
var PopoverTrigger = import_react4.default.forwardRef((props, forwardedRef) => {
|
|
327
323
|
const { __scopePopover, ...triggerProps } = props;
|
|
328
324
|
const context = usePopoverContext(TRIGGER_NAME, __scopePopover);
|
|
329
325
|
const popperScope = usePopperScope(__scopePopover);
|
|
330
326
|
const composedTriggerRef = (0, import_react_compose_refs2.useComposedRefs)(forwardedRef, context.triggerRef);
|
|
331
|
-
const trigger = /* @__PURE__ */
|
|
327
|
+
const trigger = /* @__PURE__ */ import_react4.default.createElement(
|
|
332
328
|
import_react_primitive.Primitive.button,
|
|
333
329
|
{
|
|
334
330
|
type: "button",
|
|
@@ -341,21 +337,20 @@ var PopoverTrigger = import_react3.default.forwardRef((props, forwardedRef) => {
|
|
|
341
337
|
onClick: (0, import_primitive2.composeEventHandlers)(props.onClick, context.onOpenToggle)
|
|
342
338
|
}
|
|
343
339
|
);
|
|
344
|
-
return context.hasCustomAnchor ? trigger : /* @__PURE__ */
|
|
340
|
+
return context.hasCustomAnchor ? trigger : /* @__PURE__ */ import_react4.default.createElement(PopperPrimitive4.Anchor, { asChild: true, ...popperScope }, trigger);
|
|
345
341
|
});
|
|
346
342
|
PopoverTrigger.displayName = TRIGGER_NAME;
|
|
347
343
|
|
|
348
344
|
// packages/react/popover/src/PopoverClose.tsx
|
|
349
|
-
var
|
|
345
|
+
var import_react5 = __toESM(require("react"));
|
|
350
346
|
var import_react_primitive2 = require("@huin-core/react-primitive");
|
|
351
347
|
var import_primitive3 = require("@huin-core/primitive");
|
|
352
|
-
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
353
348
|
var CLOSE_NAME = "PopoverClose";
|
|
354
|
-
var PopoverClose =
|
|
349
|
+
var PopoverClose = import_react5.default.forwardRef(
|
|
355
350
|
(props, forwardedRef) => {
|
|
356
351
|
const { __scopePopover, ...closeProps } = props;
|
|
357
352
|
const context = usePopoverContext(CLOSE_NAME, __scopePopover);
|
|
358
|
-
return /* @__PURE__ */
|
|
353
|
+
return /* @__PURE__ */ import_react5.default.createElement(
|
|
359
354
|
import_react_primitive2.Primitive.button,
|
|
360
355
|
{
|
|
361
356
|
type: "button",
|
|
@@ -373,14 +368,13 @@ PopoverClose.displayName = CLOSE_NAME;
|
|
|
373
368
|
|
|
374
369
|
// packages/react/popover/src/PopoverArrow.tsx
|
|
375
370
|
var PopperPrimitive5 = __toESM(require("@huin-core/react-popper"));
|
|
376
|
-
var
|
|
377
|
-
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
371
|
+
var import_react6 = __toESM(require("react"));
|
|
378
372
|
var ARROW_NAME = "PopoverArrow";
|
|
379
|
-
var PopoverArrow =
|
|
373
|
+
var PopoverArrow = import_react6.default.forwardRef(
|
|
380
374
|
(props, forwardedRef) => {
|
|
381
375
|
const { __scopePopover, ...arrowProps } = props;
|
|
382
376
|
const popperScope = usePopperScope(__scopePopover);
|
|
383
|
-
return /* @__PURE__ */
|
|
377
|
+
return /* @__PURE__ */ import_react6.default.createElement(
|
|
384
378
|
PopperPrimitive5.Arrow,
|
|
385
379
|
{
|
|
386
380
|
...popperScope,
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/Popover.tsx", "../src/PopoverAnchor.tsx", "../src/PopoverTrigger.tsx", "../src/PopoverContent.tsx", "../src/PopoverPortal.tsx", "../src/PopoverClose.tsx", "../src/PopoverArrow.tsx"],
|
|
4
|
-
"sourcesContent": ["\"use client\";\nexport { createPopoverScope, Popover, Root } from \"./Popover\";\nexport { PopoverAnchor } from \"./PopoverAnchor\";\nexport { PopoverTrigger } from \"./PopoverTrigger\";\nexport { PopoverPortal } from \"./PopoverPortal\";\nexport { PopoverContent } from \"./PopoverContent\";\nexport { PopoverClose } from \"./PopoverClose\";\nexport { PopoverArrow } from \"./PopoverArrow\";\n\nexport type { PopoverProps } from \"./Popover\";\nexport type { PopoverAnchorProps } from \"./PopoverAnchor\";\nexport type { PopoverTriggerProps } from \"./PopoverTrigger\";\nexport type { PopoverPortalProps } from \"./PopoverPortal\";\nexport type { PopoverContentProps } from \"./PopoverContent\";\nexport type { PopoverCloseProps } from \"./PopoverClose\";\nexport type { PopoverArrowProps } from \"./PopoverArrow\";\n", "import * as React from \"react\";\nimport { createContextScope } from \"@huin-core/react-context\";\nimport { useId } from \"@huin-core/react-id\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { createPopperScope } from \"@huin-core/react-popper\";\nimport { useControllableState } from \"@huin-core/react-use-controllable-state\";\nimport type { Scope } from \"@huin-core/react-context\";\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = \"Popover\";\n\nexport type ScopedProps<P> = P & { __scopePopover?: Scope };\nexport const [createPopoverContext, createPopoverScope] = createContextScope(\n POPOVER_NAME,\n [createPopperScope]\n);\nexport const 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\nexport const [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(\n () => setOpen((prevOpen) => !prevOpen),\n [setOpen]\n )}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(\n () => setHasCustomAnchor(true),\n []\n )}\n onCustomAnchorRemove={React.useCallback(\n () => setHasCustomAnchor(false),\n []\n )}\n modal={modal}\n >\n {children}\n </PopoverProvider>\n </PopperPrimitive.Root>\n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Popover;\n\nexport { Popover, Root };\nexport type { PopoverProps };\n", "import * as PopperPrimitive from \"@huin-core/react-popper\";\nimport React from \"react\";\nimport { ScopedProps, usePopoverContext, usePopperScope } from \"./Popover\";\n\nconst ANCHOR_NAME = \"PopoverAnchor\";\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopperPrimitive.Anchor>;\ntype PopperAnchorProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Anchor\n>;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef<\n PopoverAnchorElement,\n 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 (\n <PopperPrimitive.Anchor\n {...popperScope}\n {...anchorProps}\n ref={forwardedRef}\n />\n );\n});\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\nexport { PopoverAnchor };\nexport type { PopoverAnchorProps };\n", "import React from \"react\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { ScopedProps, usePopoverContext, usePopperScope } from \"./Popover\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport { getState } from \"./PopoverContent\";\n\nconst TRIGGER_NAME = \"PopoverTrigger\";\n\ntype PopoverTriggerElement = React.ElementRef<typeof Primitive.button>;\nexport type PrimitiveButtonProps = React.ComponentPropsWithoutRef<\n typeof Primitive.button\n>;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef<\n PopoverTriggerElement,\n 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\nPopoverTrigger.displayName = TRIGGER_NAME;\n\nexport { PopoverTrigger };\nexport type { PopoverTriggerProps };\n", "import React from \"react\";\nimport { ScopedProps, usePopoverContext, usePopperScope } from \"./Popover\";\nimport { Presence } from \"@huin-core/react-presence\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Slot } from \"@huin-core/react-slot\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { DismissableLayer } from \"@huin-core/react-dismissable-layer\";\nimport { FocusScope } from \"@huin-core/react-focus-scope\";\nimport { useFocusGuards } from \"@huin-core/react-focus-guards\";\nimport { usePortalContext } from \"./PopoverPortal\";\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<\n PopoverContentTypeElement,\n PopoverContentProps\n>((props: ScopedProps<PopoverContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.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\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit<\n PopoverContentImplProps,\n \"trapFocus\" | \"disableOutsidePointerEvents\"\n > {}\n\nconst PopoverContentModal = React.forwardRef<\n PopoverContentTypeElement,\n PopoverContentTypeProps\n>((props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\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 return (\n <RemoveScroll as={Slot} allowPinchZoom>\n <PopoverContentImpl\n {...props}\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(\n props.onCloseAutoFocus,\n (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current)\n context.triggerRef.current?.focus();\n }\n )}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick =\n 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 );\n});\n\nconst PopoverContentNonModal = React.forwardRef<\n PopoverContentTypeElement,\n PopoverContentTypeProps\n>((props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n <PopoverContentImpl\n {...props}\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)\n 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 hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\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 const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (\n event.detail.originalEvent.type === \"focusin\" &&\n hasPointerDownOutsideRef.current\n ) {\n event.preventDefault();\n }\n }}\n />\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<\n typeof PopperPrimitive.Content\n>;\ntype FocusScopeProps = React.ComponentPropsWithoutRef<typeof FocusScope>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<\n typeof DismissableLayer\n>;\ntype PopperContentProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Content\n>;\ninterface PopoverContentImplProps\n extends Omit<PopperContentProps, \"onPlaced\">,\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<\n PopoverContentImplElement,\n 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 properties\n ...{\n \"--huin-core-popover-content-transform-origin\":\n \"var(--huin-core-popper-transform-origin)\",\n \"--huin-core-popover-content-available-width\":\n \"var(--huin-core-popper-available-width)\",\n \"--huin-core-popover-content-available-height\":\n \"var(--huin-core-popper-available-height)\",\n \"--huin-core-popover-trigger-width\":\n \"var(--huin-core-popper-anchor-width)\",\n \"--huin-core-popover-trigger-height\":\n \"var(--huin-core-popper-anchor-height)\",\n },\n }}\n />\n </DismissableLayer>\n </FocusScope>\n );\n});\n\nexport function getState(open: boolean) {\n return open ? \"open\" : \"closed\";\n}\nexport { PopoverContent };\nexport type { PopoverContentProps };\n", "import { Portal as PortalPrimitive } from \"@huin-core/react-portal\";\nimport {\n createPopoverContext,\n ScopedProps,\n usePopoverContext,\n} from \"./Popover\";\nimport { Presence } from \"@huin-core/react-presence\";\n\nconst PORTAL_NAME = \"PopoverPortal\";\n\ntype PortalContextValue = { forceMount?: true };\nexport const [PortalProvider, usePortalContext] =\n createPopoverContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n });\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface PopoverPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps[\"container\"];\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 PopoverPortal: React.FC<PopoverPortalProps> = (\n props: ScopedProps<PopoverPortalProps>\n) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return (\n <PortalProvider scope={__scopePopover} forceMount={forceMount}>\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {children}\n </PortalPrimitive>\n </Presence>\n </PortalProvider>\n );\n};\n\nPopoverPortal.displayName = PORTAL_NAME;\n\nexport { PopoverPortal };\nexport type { PopoverPortalProps };\n", "import React from \"react\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { ScopedProps, usePopoverContext } from \"./Popover\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport { PrimitiveButtonProps } from \"./PopoverTrigger\";\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, () =>\n context.onOpenChange(false)\n )}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\nexport { PopoverClose };\nexport type { PopoverCloseProps };\n", "import * as PopperPrimitive from \"@huin-core/react-popper\";\nimport React from \"react\";\nimport { ScopedProps, usePopperScope } from \"./Popover\";\n\nconst ARROW_NAME = \"PopoverArrow\";\n\ntype PopoverArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Arrow\n>;\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 (\n <PopperPrimitive.Arrow\n {...popperScope}\n {...arrowProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\nexport { PopoverArrow };\nexport type { PopoverArrowProps };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAAA;AAAA,EAAA;AAAA;AAAA;;;ACAA,YAAuB;AACvB,2BAAmC;AACnC,sBAAsB;AACtB,sBAAiC;AACjC,0BAAkC;AAClC,0CAAqC;
|
|
6
|
-
"names": ["Root", "Root", "PopperPrimitive", "
|
|
4
|
+
"sourcesContent": ["\"use client\";\nexport { createPopoverScope, Popover, Root } from \"./Popover\";\nexport { PopoverAnchor } from \"./PopoverAnchor\";\nexport { PopoverTrigger } from \"./PopoverTrigger\";\nexport { PopoverPortal } from \"./PopoverPortal\";\nexport { PopoverContent } from \"./PopoverContent\";\nexport { PopoverClose } from \"./PopoverClose\";\nexport { PopoverArrow } from \"./PopoverArrow\";\n\nexport type { PopoverProps } from \"./Popover\";\nexport type { PopoverAnchorProps } from \"./PopoverAnchor\";\nexport type { PopoverTriggerProps } from \"./PopoverTrigger\";\nexport type { PopoverPortalProps } from \"./PopoverPortal\";\nexport type { PopoverContentProps } from \"./PopoverContent\";\nexport type { PopoverCloseProps } from \"./PopoverClose\";\nexport type { PopoverArrowProps } from \"./PopoverArrow\";\n", "import * as React from \"react\";\nimport { createContextScope } from \"@huin-core/react-context\";\nimport { useId } from \"@huin-core/react-id\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { createPopperScope } from \"@huin-core/react-popper\";\nimport { useControllableState } from \"@huin-core/react-use-controllable-state\";\nimport type { Scope } from \"@huin-core/react-context\";\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = \"Popover\";\n\nexport type ScopedProps<P> = P & { __scopePopover?: Scope };\nexport const [createPopoverContext, createPopoverScope] = createContextScope(\n POPOVER_NAME,\n [createPopperScope]\n);\nexport const 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\nexport const [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(\n () => setOpen((prevOpen) => !prevOpen),\n [setOpen]\n )}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(\n () => setHasCustomAnchor(true),\n []\n )}\n onCustomAnchorRemove={React.useCallback(\n () => setHasCustomAnchor(false),\n []\n )}\n modal={modal}\n >\n {children}\n </PopoverProvider>\n </PopperPrimitive.Root>\n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Popover;\n\nexport { Popover, Root };\nexport type { PopoverProps };\n", "import * as PopperPrimitive from \"@huin-core/react-popper\";\nimport React from \"react\";\nimport { ScopedProps, usePopoverContext, usePopperScope } from \"./Popover\";\n\nconst ANCHOR_NAME = \"PopoverAnchor\";\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopperPrimitive.Anchor>;\ntype PopperAnchorProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Anchor\n>;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef<\n PopoverAnchorElement,\n 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 (\n <PopperPrimitive.Anchor\n {...popperScope}\n {...anchorProps}\n ref={forwardedRef}\n />\n );\n});\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\nexport { PopoverAnchor };\nexport type { PopoverAnchorProps };\n", "import React from \"react\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { ScopedProps, usePopoverContext, usePopperScope } from \"./Popover\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport { getState } from \"./PopoverContent\";\n\nconst TRIGGER_NAME = \"PopoverTrigger\";\n\ntype PopoverTriggerElement = React.ElementRef<typeof Primitive.button>;\nexport type PrimitiveButtonProps = React.ComponentPropsWithoutRef<\n typeof Primitive.button\n>;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef<\n PopoverTriggerElement,\n 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\nPopoverTrigger.displayName = TRIGGER_NAME;\n\nexport { PopoverTrigger };\nexport type { PopoverTriggerProps };\n", "import React from \"react\";\nimport { ScopedProps, usePopoverContext, usePopperScope } from \"./Popover\";\nimport { Presence } from \"@huin-core/react-presence\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Slot } from \"@huin-core/react-slot\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { DismissableLayer } from \"@huin-core/react-dismissable-layer\";\nimport { FocusScope } from \"@huin-core/react-focus-scope\";\nimport { useFocusGuards } from \"@huin-core/react-focus-guards\";\nimport { usePortalContext } from \"./PopoverPortal\";\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<\n PopoverContentTypeElement,\n PopoverContentProps\n>((props: ScopedProps<PopoverContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.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\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit<\n PopoverContentImplProps,\n \"trapFocus\" | \"disableOutsidePointerEvents\"\n > {}\n\nconst PopoverContentModal = React.forwardRef<\n PopoverContentTypeElement,\n PopoverContentTypeProps\n>((props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\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 return (\n <RemoveScroll as={Slot} allowPinchZoom>\n <PopoverContentImpl\n {...props}\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(\n props.onCloseAutoFocus,\n (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current)\n context.triggerRef.current?.focus();\n }\n )}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick =\n 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 );\n});\n\nconst PopoverContentNonModal = React.forwardRef<\n PopoverContentTypeElement,\n PopoverContentTypeProps\n>((props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n <PopoverContentImpl\n {...props}\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)\n 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 hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\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 const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (\n event.detail.originalEvent.type === \"focusin\" &&\n hasPointerDownOutsideRef.current\n ) {\n event.preventDefault();\n }\n }}\n />\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<\n typeof PopperPrimitive.Content\n>;\ntype FocusScopeProps = React.ComponentPropsWithoutRef<typeof FocusScope>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<\n typeof DismissableLayer\n>;\ntype PopperContentProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Content\n>;\ninterface PopoverContentImplProps\n extends Omit<PopperContentProps, \"onPlaced\">,\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<\n PopoverContentImplElement,\n 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 properties\n ...{\n \"--huin-core-popover-content-transform-origin\":\n \"var(--huin-core-popper-transform-origin)\",\n \"--huin-core-popover-content-available-width\":\n \"var(--huin-core-popper-available-width)\",\n \"--huin-core-popover-content-available-height\":\n \"var(--huin-core-popper-available-height)\",\n \"--huin-core-popover-trigger-width\":\n \"var(--huin-core-popper-anchor-width)\",\n \"--huin-core-popover-trigger-height\":\n \"var(--huin-core-popper-anchor-height)\",\n },\n }}\n />\n </DismissableLayer>\n </FocusScope>\n );\n});\n\nexport function getState(open: boolean) {\n return open ? \"open\" : \"closed\";\n}\nexport { PopoverContent };\nexport type { PopoverContentProps };\n", "import React from \"react\";\nimport { Portal as PortalPrimitive } from \"@huin-core/react-portal\";\nimport {\n createPopoverContext,\n ScopedProps,\n usePopoverContext,\n} from \"./Popover\";\nimport { Presence } from \"@huin-core/react-presence\";\n\nconst PORTAL_NAME = \"PopoverPortal\";\n\ntype PortalContextValue = { forceMount?: true };\nexport const [PortalProvider, usePortalContext] =\n createPopoverContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n });\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface PopoverPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps[\"container\"];\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 PopoverPortal: React.FC<PopoverPortalProps> = (\n props: ScopedProps<PopoverPortalProps>\n) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return (\n <PortalProvider scope={__scopePopover} forceMount={forceMount}>\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {children}\n </PortalPrimitive>\n </Presence>\n </PortalProvider>\n );\n};\n\nPopoverPortal.displayName = PORTAL_NAME;\n\nexport { PopoverPortal };\nexport type { PopoverPortalProps };\n", "import React from \"react\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { ScopedProps, usePopoverContext } from \"./Popover\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport { PrimitiveButtonProps } from \"./PopoverTrigger\";\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, () =>\n context.onOpenChange(false)\n )}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\nexport { PopoverClose };\nexport type { PopoverCloseProps };\n", "import * as PopperPrimitive from \"@huin-core/react-popper\";\nimport React from \"react\";\nimport { ScopedProps, usePopperScope } from \"./Popover\";\n\nconst ARROW_NAME = \"PopoverArrow\";\n\ntype PopoverArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Arrow\n>;\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 (\n <PopperPrimitive.Arrow\n {...popperScope}\n {...arrowProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\nexport { PopoverArrow };\nexport type { PopoverArrowProps };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Root", "Root", "PopperPrimitive", "React", "import_react", "import_react_compose_refs", "PopperPrimitive", "import_primitive", "import_react", "import_react_presence", "PopperPrimitive", "import_react", "React", "PortalPrimitive", "React", "React", "import_react", "import_react_primitive", "import_primitive", "React", "PopperPrimitive", "import_react", "React"]
|
|
7
7
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -7,7 +7,6 @@ import { useId } from "@huin-core/react-id";
|
|
|
7
7
|
import * as PopperPrimitive from "@huin-core/react-popper";
|
|
8
8
|
import { createPopperScope } from "@huin-core/react-popper";
|
|
9
9
|
import { useControllableState } from "@huin-core/react-use-controllable-state";
|
|
10
|
-
import { jsx } from "react/jsx-runtime";
|
|
11
10
|
var POPOVER_NAME = "Popover";
|
|
12
11
|
var [createPopoverContext, createPopoverScope] = createContextScope(
|
|
13
12
|
POPOVER_NAME,
|
|
@@ -32,7 +31,7 @@ var Popover = (props) => {
|
|
|
32
31
|
defaultProp: defaultOpen,
|
|
33
32
|
onChange: onOpenChange
|
|
34
33
|
});
|
|
35
|
-
return /* @__PURE__ */
|
|
34
|
+
return /* @__PURE__ */ React.createElement(PopperPrimitive.Root, { ...popperScope }, /* @__PURE__ */ React.createElement(
|
|
36
35
|
PopoverProvider,
|
|
37
36
|
{
|
|
38
37
|
scope: __scopePopover,
|
|
@@ -53,10 +52,10 @@ var Popover = (props) => {
|
|
|
53
52
|
() => setHasCustomAnchor(false),
|
|
54
53
|
[]
|
|
55
54
|
),
|
|
56
|
-
modal
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
)
|
|
55
|
+
modal
|
|
56
|
+
},
|
|
57
|
+
children
|
|
58
|
+
));
|
|
60
59
|
};
|
|
61
60
|
Popover.displayName = POPOVER_NAME;
|
|
62
61
|
var Root2 = Popover;
|
|
@@ -64,7 +63,6 @@ var Root2 = Popover;
|
|
|
64
63
|
// packages/react/popover/src/PopoverAnchor.tsx
|
|
65
64
|
import * as PopperPrimitive2 from "@huin-core/react-popper";
|
|
66
65
|
import React2 from "react";
|
|
67
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
68
66
|
var ANCHOR_NAME = "PopoverAnchor";
|
|
69
67
|
var PopoverAnchor = React2.forwardRef((props, forwardedRef) => {
|
|
70
68
|
const { __scopePopover, ...anchorProps } = props;
|
|
@@ -75,7 +73,7 @@ var PopoverAnchor = React2.forwardRef((props, forwardedRef) => {
|
|
|
75
73
|
onCustomAnchorAdd();
|
|
76
74
|
return () => onCustomAnchorRemove();
|
|
77
75
|
}, [onCustomAnchorAdd, onCustomAnchorRemove]);
|
|
78
|
-
return /* @__PURE__ */
|
|
76
|
+
return /* @__PURE__ */ React2.createElement(
|
|
79
77
|
PopperPrimitive2.Anchor,
|
|
80
78
|
{
|
|
81
79
|
...popperScope,
|
|
@@ -87,14 +85,14 @@ var PopoverAnchor = React2.forwardRef((props, forwardedRef) => {
|
|
|
87
85
|
PopoverAnchor.displayName = ANCHOR_NAME;
|
|
88
86
|
|
|
89
87
|
// packages/react/popover/src/PopoverTrigger.tsx
|
|
90
|
-
import
|
|
88
|
+
import React5 from "react";
|
|
91
89
|
import { Primitive } from "@huin-core/react-primitive";
|
|
92
90
|
import { useComposedRefs as useComposedRefs2 } from "@huin-core/react-compose-refs";
|
|
93
91
|
import * as PopperPrimitive4 from "@huin-core/react-popper";
|
|
94
92
|
import { composeEventHandlers as composeEventHandlers2 } from "@huin-core/primitive";
|
|
95
93
|
|
|
96
94
|
// packages/react/popover/src/PopoverContent.tsx
|
|
97
|
-
import
|
|
95
|
+
import React4 from "react";
|
|
98
96
|
import { Presence as Presence2 } from "@huin-core/react-presence";
|
|
99
97
|
import { useComposedRefs } from "@huin-core/react-compose-refs";
|
|
100
98
|
import { hideOthers } from "aria-hidden";
|
|
@@ -107,9 +105,9 @@ import { FocusScope } from "@huin-core/react-focus-scope";
|
|
|
107
105
|
import { useFocusGuards } from "@huin-core/react-focus-guards";
|
|
108
106
|
|
|
109
107
|
// packages/react/popover/src/PopoverPortal.tsx
|
|
108
|
+
import React3 from "react";
|
|
110
109
|
import { Portal as PortalPrimitive } from "@huin-core/react-portal";
|
|
111
110
|
import { Presence } from "@huin-core/react-presence";
|
|
112
|
-
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
113
111
|
var PORTAL_NAME = "PopoverPortal";
|
|
114
112
|
var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {
|
|
115
113
|
forceMount: void 0
|
|
@@ -117,30 +115,29 @@ var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {
|
|
|
117
115
|
var PopoverPortal = (props) => {
|
|
118
116
|
const { __scopePopover, forceMount, children, container } = props;
|
|
119
117
|
const context = usePopoverContext(PORTAL_NAME, __scopePopover);
|
|
120
|
-
return /* @__PURE__ */
|
|
118
|
+
return /* @__PURE__ */ React3.createElement(PortalProvider, { scope: __scopePopover, forceMount }, /* @__PURE__ */ React3.createElement(Presence, { present: forceMount || context.open }, /* @__PURE__ */ React3.createElement(PortalPrimitive, { asChild: true, container }, children)));
|
|
121
119
|
};
|
|
122
120
|
PopoverPortal.displayName = PORTAL_NAME;
|
|
123
121
|
|
|
124
122
|
// packages/react/popover/src/PopoverContent.tsx
|
|
125
|
-
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
126
123
|
var CONTENT_NAME = "PopoverContent";
|
|
127
|
-
var PopoverContent =
|
|
124
|
+
var PopoverContent = React4.forwardRef((props, forwardedRef) => {
|
|
128
125
|
const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);
|
|
129
126
|
const { forceMount = portalContext.forceMount, ...contentProps } = props;
|
|
130
127
|
const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
|
|
131
|
-
return /* @__PURE__ */
|
|
128
|
+
return /* @__PURE__ */ React4.createElement(Presence2, { present: forceMount || context.open }, context.modal ? /* @__PURE__ */ React4.createElement(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ React4.createElement(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }));
|
|
132
129
|
});
|
|
133
130
|
PopoverContent.displayName = CONTENT_NAME;
|
|
134
|
-
var PopoverContentModal =
|
|
131
|
+
var PopoverContentModal = React4.forwardRef((props, forwardedRef) => {
|
|
135
132
|
const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
|
|
136
|
-
const contentRef =
|
|
133
|
+
const contentRef = React4.useRef(null);
|
|
137
134
|
const composedRefs = useComposedRefs(forwardedRef, contentRef);
|
|
138
|
-
const isRightClickOutsideRef =
|
|
139
|
-
|
|
135
|
+
const isRightClickOutsideRef = React4.useRef(false);
|
|
136
|
+
React4.useEffect(() => {
|
|
140
137
|
const content = contentRef.current;
|
|
141
138
|
if (content) return hideOthers(content);
|
|
142
139
|
}, []);
|
|
143
|
-
return /* @__PURE__ */
|
|
140
|
+
return /* @__PURE__ */ React4.createElement(RemoveScroll, { as: Slot, allowPinchZoom: true }, /* @__PURE__ */ React4.createElement(
|
|
144
141
|
PopoverContentImpl,
|
|
145
142
|
{
|
|
146
143
|
...props,
|
|
@@ -171,13 +168,13 @@ var PopoverContentModal = React3.forwardRef((props, forwardedRef) => {
|
|
|
171
168
|
{ checkForDefaultPrevented: false }
|
|
172
169
|
)
|
|
173
170
|
}
|
|
174
|
-
)
|
|
171
|
+
));
|
|
175
172
|
});
|
|
176
|
-
var PopoverContentNonModal =
|
|
173
|
+
var PopoverContentNonModal = React4.forwardRef((props, forwardedRef) => {
|
|
177
174
|
const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
|
|
178
|
-
const hasInteractedOutsideRef =
|
|
179
|
-
const hasPointerDownOutsideRef =
|
|
180
|
-
return /* @__PURE__ */
|
|
175
|
+
const hasInteractedOutsideRef = React4.useRef(false);
|
|
176
|
+
const hasPointerDownOutsideRef = React4.useRef(false);
|
|
177
|
+
return /* @__PURE__ */ React4.createElement(
|
|
181
178
|
PopoverContentImpl,
|
|
182
179
|
{
|
|
183
180
|
...props,
|
|
@@ -212,7 +209,7 @@ var PopoverContentNonModal = React3.forwardRef((props, forwardedRef) => {
|
|
|
212
209
|
}
|
|
213
210
|
);
|
|
214
211
|
});
|
|
215
|
-
var PopoverContentImpl =
|
|
212
|
+
var PopoverContentImpl = React4.forwardRef((props, forwardedRef) => {
|
|
216
213
|
const {
|
|
217
214
|
__scopePopover,
|
|
218
215
|
trapFocus,
|
|
@@ -228,49 +225,49 @@ var PopoverContentImpl = React3.forwardRef((props, forwardedRef) => {
|
|
|
228
225
|
const context = usePopoverContext(CONTENT_NAME, __scopePopover);
|
|
229
226
|
const popperScope = usePopperScope(__scopePopover);
|
|
230
227
|
useFocusGuards();
|
|
231
|
-
return /* @__PURE__ */
|
|
228
|
+
return /* @__PURE__ */ React4.createElement(
|
|
232
229
|
FocusScope,
|
|
233
230
|
{
|
|
234
231
|
asChild: true,
|
|
235
232
|
loop: true,
|
|
236
233
|
trapped: trapFocus,
|
|
237
234
|
onMountAutoFocus: onOpenAutoFocus,
|
|
238
|
-
onUnmountAutoFocus: onCloseAutoFocus
|
|
239
|
-
|
|
240
|
-
|
|
235
|
+
onUnmountAutoFocus: onCloseAutoFocus
|
|
236
|
+
},
|
|
237
|
+
/* @__PURE__ */ React4.createElement(
|
|
238
|
+
DismissableLayer,
|
|
239
|
+
{
|
|
240
|
+
asChild: true,
|
|
241
|
+
disableOutsidePointerEvents,
|
|
242
|
+
onInteractOutside,
|
|
243
|
+
onEscapeKeyDown,
|
|
244
|
+
onPointerDownOutside,
|
|
245
|
+
onFocusOutside,
|
|
246
|
+
onDismiss: () => context.onOpenChange(false)
|
|
247
|
+
},
|
|
248
|
+
/* @__PURE__ */ React4.createElement(
|
|
249
|
+
PopperPrimitive3.Content,
|
|
241
250
|
{
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
{
|
|
252
|
-
"
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
ref: forwardedRef,
|
|
258
|
-
style: {
|
|
259
|
-
...contentProps.style,
|
|
260
|
-
// re-namespace exposed content custom properties
|
|
261
|
-
...{
|
|
262
|
-
"--huin-core-popover-content-transform-origin": "var(--huin-core-popper-transform-origin)",
|
|
263
|
-
"--huin-core-popover-content-available-width": "var(--huin-core-popper-available-width)",
|
|
264
|
-
"--huin-core-popover-content-available-height": "var(--huin-core-popper-available-height)",
|
|
265
|
-
"--huin-core-popover-trigger-width": "var(--huin-core-popper-anchor-width)",
|
|
266
|
-
"--huin-core-popover-trigger-height": "var(--huin-core-popper-anchor-height)"
|
|
267
|
-
}
|
|
268
|
-
}
|
|
251
|
+
"data-state": getState(context.open),
|
|
252
|
+
role: "dialog",
|
|
253
|
+
id: context.contentId,
|
|
254
|
+
...popperScope,
|
|
255
|
+
...contentProps,
|
|
256
|
+
ref: forwardedRef,
|
|
257
|
+
style: {
|
|
258
|
+
...contentProps.style,
|
|
259
|
+
// re-namespace exposed content custom properties
|
|
260
|
+
...{
|
|
261
|
+
"--huin-core-popover-content-transform-origin": "var(--huin-core-popper-transform-origin)",
|
|
262
|
+
"--huin-core-popover-content-available-width": "var(--huin-core-popper-available-width)",
|
|
263
|
+
"--huin-core-popover-content-available-height": "var(--huin-core-popper-available-height)",
|
|
264
|
+
"--huin-core-popover-trigger-width": "var(--huin-core-popper-anchor-width)",
|
|
265
|
+
"--huin-core-popover-trigger-height": "var(--huin-core-popper-anchor-height)"
|
|
269
266
|
}
|
|
270
|
-
|
|
267
|
+
}
|
|
271
268
|
}
|
|
272
269
|
)
|
|
273
|
-
|
|
270
|
+
)
|
|
274
271
|
);
|
|
275
272
|
});
|
|
276
273
|
function getState(open) {
|
|
@@ -278,14 +275,13 @@ function getState(open) {
|
|
|
278
275
|
}
|
|
279
276
|
|
|
280
277
|
// packages/react/popover/src/PopoverTrigger.tsx
|
|
281
|
-
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
282
278
|
var TRIGGER_NAME = "PopoverTrigger";
|
|
283
|
-
var PopoverTrigger =
|
|
279
|
+
var PopoverTrigger = React5.forwardRef((props, forwardedRef) => {
|
|
284
280
|
const { __scopePopover, ...triggerProps } = props;
|
|
285
281
|
const context = usePopoverContext(TRIGGER_NAME, __scopePopover);
|
|
286
282
|
const popperScope = usePopperScope(__scopePopover);
|
|
287
283
|
const composedTriggerRef = useComposedRefs2(forwardedRef, context.triggerRef);
|
|
288
|
-
const trigger = /* @__PURE__ */
|
|
284
|
+
const trigger = /* @__PURE__ */ React5.createElement(
|
|
289
285
|
Primitive.button,
|
|
290
286
|
{
|
|
291
287
|
type: "button",
|
|
@@ -298,21 +294,20 @@ var PopoverTrigger = React4.forwardRef((props, forwardedRef) => {
|
|
|
298
294
|
onClick: composeEventHandlers2(props.onClick, context.onOpenToggle)
|
|
299
295
|
}
|
|
300
296
|
);
|
|
301
|
-
return context.hasCustomAnchor ? trigger : /* @__PURE__ */
|
|
297
|
+
return context.hasCustomAnchor ? trigger : /* @__PURE__ */ React5.createElement(PopperPrimitive4.Anchor, { asChild: true, ...popperScope }, trigger);
|
|
302
298
|
});
|
|
303
299
|
PopoverTrigger.displayName = TRIGGER_NAME;
|
|
304
300
|
|
|
305
301
|
// packages/react/popover/src/PopoverClose.tsx
|
|
306
|
-
import
|
|
302
|
+
import React6 from "react";
|
|
307
303
|
import { Primitive as Primitive2 } from "@huin-core/react-primitive";
|
|
308
304
|
import { composeEventHandlers as composeEventHandlers3 } from "@huin-core/primitive";
|
|
309
|
-
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
310
305
|
var CLOSE_NAME = "PopoverClose";
|
|
311
|
-
var PopoverClose =
|
|
306
|
+
var PopoverClose = React6.forwardRef(
|
|
312
307
|
(props, forwardedRef) => {
|
|
313
308
|
const { __scopePopover, ...closeProps } = props;
|
|
314
309
|
const context = usePopoverContext(CLOSE_NAME, __scopePopover);
|
|
315
|
-
return /* @__PURE__ */
|
|
310
|
+
return /* @__PURE__ */ React6.createElement(
|
|
316
311
|
Primitive2.button,
|
|
317
312
|
{
|
|
318
313
|
type: "button",
|
|
@@ -330,14 +325,13 @@ PopoverClose.displayName = CLOSE_NAME;
|
|
|
330
325
|
|
|
331
326
|
// packages/react/popover/src/PopoverArrow.tsx
|
|
332
327
|
import * as PopperPrimitive5 from "@huin-core/react-popper";
|
|
333
|
-
import
|
|
334
|
-
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
328
|
+
import React7 from "react";
|
|
335
329
|
var ARROW_NAME = "PopoverArrow";
|
|
336
|
-
var PopoverArrow =
|
|
330
|
+
var PopoverArrow = React7.forwardRef(
|
|
337
331
|
(props, forwardedRef) => {
|
|
338
332
|
const { __scopePopover, ...arrowProps } = props;
|
|
339
333
|
const popperScope = usePopperScope(__scopePopover);
|
|
340
|
-
return /* @__PURE__ */
|
|
334
|
+
return /* @__PURE__ */ React7.createElement(
|
|
341
335
|
PopperPrimitive5.Arrow,
|
|
342
336
|
{
|
|
343
337
|
...popperScope,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/Popover.tsx", "../src/PopoverAnchor.tsx", "../src/PopoverTrigger.tsx", "../src/PopoverContent.tsx", "../src/PopoverPortal.tsx", "../src/PopoverClose.tsx", "../src/PopoverArrow.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from \"react\";\nimport { createContextScope } from \"@huin-core/react-context\";\nimport { useId } from \"@huin-core/react-id\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { createPopperScope } from \"@huin-core/react-popper\";\nimport { useControllableState } from \"@huin-core/react-use-controllable-state\";\nimport type { Scope } from \"@huin-core/react-context\";\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = \"Popover\";\n\nexport type ScopedProps<P> = P & { __scopePopover?: Scope };\nexport const [createPopoverContext, createPopoverScope] = createContextScope(\n POPOVER_NAME,\n [createPopperScope]\n);\nexport const 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\nexport const [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(\n () => setOpen((prevOpen) => !prevOpen),\n [setOpen]\n )}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(\n () => setHasCustomAnchor(true),\n []\n )}\n onCustomAnchorRemove={React.useCallback(\n () => setHasCustomAnchor(false),\n []\n )}\n modal={modal}\n >\n {children}\n </PopoverProvider>\n </PopperPrimitive.Root>\n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Popover;\n\nexport { Popover, Root };\nexport type { PopoverProps };\n", "import * as PopperPrimitive from \"@huin-core/react-popper\";\nimport React from \"react\";\nimport { ScopedProps, usePopoverContext, usePopperScope } from \"./Popover\";\n\nconst ANCHOR_NAME = \"PopoverAnchor\";\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopperPrimitive.Anchor>;\ntype PopperAnchorProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Anchor\n>;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef<\n PopoverAnchorElement,\n 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 (\n <PopperPrimitive.Anchor\n {...popperScope}\n {...anchorProps}\n ref={forwardedRef}\n />\n );\n});\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\nexport { PopoverAnchor };\nexport type { PopoverAnchorProps };\n", "import React from \"react\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { ScopedProps, usePopoverContext, usePopperScope } from \"./Popover\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport { getState } from \"./PopoverContent\";\n\nconst TRIGGER_NAME = \"PopoverTrigger\";\n\ntype PopoverTriggerElement = React.ElementRef<typeof Primitive.button>;\nexport type PrimitiveButtonProps = React.ComponentPropsWithoutRef<\n typeof Primitive.button\n>;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef<\n PopoverTriggerElement,\n 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\nPopoverTrigger.displayName = TRIGGER_NAME;\n\nexport { PopoverTrigger };\nexport type { PopoverTriggerProps };\n", "import React from \"react\";\nimport { ScopedProps, usePopoverContext, usePopperScope } from \"./Popover\";\nimport { Presence } from \"@huin-core/react-presence\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Slot } from \"@huin-core/react-slot\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { DismissableLayer } from \"@huin-core/react-dismissable-layer\";\nimport { FocusScope } from \"@huin-core/react-focus-scope\";\nimport { useFocusGuards } from \"@huin-core/react-focus-guards\";\nimport { usePortalContext } from \"./PopoverPortal\";\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<\n PopoverContentTypeElement,\n PopoverContentProps\n>((props: ScopedProps<PopoverContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.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\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit<\n PopoverContentImplProps,\n \"trapFocus\" | \"disableOutsidePointerEvents\"\n > {}\n\nconst PopoverContentModal = React.forwardRef<\n PopoverContentTypeElement,\n PopoverContentTypeProps\n>((props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\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 return (\n <RemoveScroll as={Slot} allowPinchZoom>\n <PopoverContentImpl\n {...props}\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(\n props.onCloseAutoFocus,\n (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current)\n context.triggerRef.current?.focus();\n }\n )}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick =\n 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 );\n});\n\nconst PopoverContentNonModal = React.forwardRef<\n PopoverContentTypeElement,\n PopoverContentTypeProps\n>((props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n <PopoverContentImpl\n {...props}\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)\n 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 hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\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 const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (\n event.detail.originalEvent.type === \"focusin\" &&\n hasPointerDownOutsideRef.current\n ) {\n event.preventDefault();\n }\n }}\n />\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<\n typeof PopperPrimitive.Content\n>;\ntype FocusScopeProps = React.ComponentPropsWithoutRef<typeof FocusScope>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<\n typeof DismissableLayer\n>;\ntype PopperContentProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Content\n>;\ninterface PopoverContentImplProps\n extends Omit<PopperContentProps, \"onPlaced\">,\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<\n PopoverContentImplElement,\n 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 properties\n ...{\n \"--huin-core-popover-content-transform-origin\":\n \"var(--huin-core-popper-transform-origin)\",\n \"--huin-core-popover-content-available-width\":\n \"var(--huin-core-popper-available-width)\",\n \"--huin-core-popover-content-available-height\":\n \"var(--huin-core-popper-available-height)\",\n \"--huin-core-popover-trigger-width\":\n \"var(--huin-core-popper-anchor-width)\",\n \"--huin-core-popover-trigger-height\":\n \"var(--huin-core-popper-anchor-height)\",\n },\n }}\n />\n </DismissableLayer>\n </FocusScope>\n );\n});\n\nexport function getState(open: boolean) {\n return open ? \"open\" : \"closed\";\n}\nexport { PopoverContent };\nexport type { PopoverContentProps };\n", "import { Portal as PortalPrimitive } from \"@huin-core/react-portal\";\nimport {\n createPopoverContext,\n ScopedProps,\n usePopoverContext,\n} from \"./Popover\";\nimport { Presence } from \"@huin-core/react-presence\";\n\nconst PORTAL_NAME = \"PopoverPortal\";\n\ntype PortalContextValue = { forceMount?: true };\nexport const [PortalProvider, usePortalContext] =\n createPopoverContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n });\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface PopoverPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps[\"container\"];\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 PopoverPortal: React.FC<PopoverPortalProps> = (\n props: ScopedProps<PopoverPortalProps>\n) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return (\n <PortalProvider scope={__scopePopover} forceMount={forceMount}>\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {children}\n </PortalPrimitive>\n </Presence>\n </PortalProvider>\n );\n};\n\nPopoverPortal.displayName = PORTAL_NAME;\n\nexport { PopoverPortal };\nexport type { PopoverPortalProps };\n", "import React from \"react\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { ScopedProps, usePopoverContext } from \"./Popover\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport { PrimitiveButtonProps } from \"./PopoverTrigger\";\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, () =>\n context.onOpenChange(false)\n )}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\nexport { PopoverClose };\nexport type { PopoverCloseProps };\n", "import * as PopperPrimitive from \"@huin-core/react-popper\";\nimport React from \"react\";\nimport { ScopedProps, usePopperScope } from \"./Popover\";\n\nconst ARROW_NAME = \"PopoverArrow\";\n\ntype PopoverArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Arrow\n>;\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 (\n <PopperPrimitive.Arrow\n {...popperScope}\n {...arrowProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\nexport { PopoverArrow };\nexport type { PopoverArrowProps };\n"],
|
|
5
|
-
"mappings": ";;;AAAA,YAAY,WAAW;AACvB,SAAS,0BAA0B;AACnC,SAAS,aAAa;AACtB,YAAY,qBAAqB;AACjC,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;
|
|
6
|
-
"names": ["Root", "PopperPrimitive", "React", "
|
|
4
|
+
"sourcesContent": ["import * as React from \"react\";\nimport { createContextScope } from \"@huin-core/react-context\";\nimport { useId } from \"@huin-core/react-id\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { createPopperScope } from \"@huin-core/react-popper\";\nimport { useControllableState } from \"@huin-core/react-use-controllable-state\";\nimport type { Scope } from \"@huin-core/react-context\";\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = \"Popover\";\n\nexport type ScopedProps<P> = P & { __scopePopover?: Scope };\nexport const [createPopoverContext, createPopoverScope] = createContextScope(\n POPOVER_NAME,\n [createPopperScope]\n);\nexport const 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\nexport const [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(\n () => setOpen((prevOpen) => !prevOpen),\n [setOpen]\n )}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(\n () => setHasCustomAnchor(true),\n []\n )}\n onCustomAnchorRemove={React.useCallback(\n () => setHasCustomAnchor(false),\n []\n )}\n modal={modal}\n >\n {children}\n </PopoverProvider>\n </PopperPrimitive.Root>\n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Popover;\n\nexport { Popover, Root };\nexport type { PopoverProps };\n", "import * as PopperPrimitive from \"@huin-core/react-popper\";\nimport React from \"react\";\nimport { ScopedProps, usePopoverContext, usePopperScope } from \"./Popover\";\n\nconst ANCHOR_NAME = \"PopoverAnchor\";\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopperPrimitive.Anchor>;\ntype PopperAnchorProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Anchor\n>;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef<\n PopoverAnchorElement,\n 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 (\n <PopperPrimitive.Anchor\n {...popperScope}\n {...anchorProps}\n ref={forwardedRef}\n />\n );\n});\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\nexport { PopoverAnchor };\nexport type { PopoverAnchorProps };\n", "import React from \"react\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { ScopedProps, usePopoverContext, usePopperScope } from \"./Popover\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport { getState } from \"./PopoverContent\";\n\nconst TRIGGER_NAME = \"PopoverTrigger\";\n\ntype PopoverTriggerElement = React.ElementRef<typeof Primitive.button>;\nexport type PrimitiveButtonProps = React.ComponentPropsWithoutRef<\n typeof Primitive.button\n>;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef<\n PopoverTriggerElement,\n 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\nPopoverTrigger.displayName = TRIGGER_NAME;\n\nexport { PopoverTrigger };\nexport type { PopoverTriggerProps };\n", "import React from \"react\";\nimport { ScopedProps, usePopoverContext, usePopperScope } from \"./Popover\";\nimport { Presence } from \"@huin-core/react-presence\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Slot } from \"@huin-core/react-slot\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { DismissableLayer } from \"@huin-core/react-dismissable-layer\";\nimport { FocusScope } from \"@huin-core/react-focus-scope\";\nimport { useFocusGuards } from \"@huin-core/react-focus-guards\";\nimport { usePortalContext } from \"./PopoverPortal\";\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<\n PopoverContentTypeElement,\n PopoverContentProps\n>((props: ScopedProps<PopoverContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.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\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit<\n PopoverContentImplProps,\n \"trapFocus\" | \"disableOutsidePointerEvents\"\n > {}\n\nconst PopoverContentModal = React.forwardRef<\n PopoverContentTypeElement,\n PopoverContentTypeProps\n>((props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\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 return (\n <RemoveScroll as={Slot} allowPinchZoom>\n <PopoverContentImpl\n {...props}\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(\n props.onCloseAutoFocus,\n (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current)\n context.triggerRef.current?.focus();\n }\n )}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick =\n 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 );\n});\n\nconst PopoverContentNonModal = React.forwardRef<\n PopoverContentTypeElement,\n PopoverContentTypeProps\n>((props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n <PopoverContentImpl\n {...props}\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)\n 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 hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\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 const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (\n event.detail.originalEvent.type === \"focusin\" &&\n hasPointerDownOutsideRef.current\n ) {\n event.preventDefault();\n }\n }}\n />\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<\n typeof PopperPrimitive.Content\n>;\ntype FocusScopeProps = React.ComponentPropsWithoutRef<typeof FocusScope>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<\n typeof DismissableLayer\n>;\ntype PopperContentProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Content\n>;\ninterface PopoverContentImplProps\n extends Omit<PopperContentProps, \"onPlaced\">,\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<\n PopoverContentImplElement,\n 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 properties\n ...{\n \"--huin-core-popover-content-transform-origin\":\n \"var(--huin-core-popper-transform-origin)\",\n \"--huin-core-popover-content-available-width\":\n \"var(--huin-core-popper-available-width)\",\n \"--huin-core-popover-content-available-height\":\n \"var(--huin-core-popper-available-height)\",\n \"--huin-core-popover-trigger-width\":\n \"var(--huin-core-popper-anchor-width)\",\n \"--huin-core-popover-trigger-height\":\n \"var(--huin-core-popper-anchor-height)\",\n },\n }}\n />\n </DismissableLayer>\n </FocusScope>\n );\n});\n\nexport function getState(open: boolean) {\n return open ? \"open\" : \"closed\";\n}\nexport { PopoverContent };\nexport type { PopoverContentProps };\n", "import React from \"react\";\nimport { Portal as PortalPrimitive } from \"@huin-core/react-portal\";\nimport {\n createPopoverContext,\n ScopedProps,\n usePopoverContext,\n} from \"./Popover\";\nimport { Presence } from \"@huin-core/react-presence\";\n\nconst PORTAL_NAME = \"PopoverPortal\";\n\ntype PortalContextValue = { forceMount?: true };\nexport const [PortalProvider, usePortalContext] =\n createPopoverContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n });\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface PopoverPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps[\"container\"];\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 PopoverPortal: React.FC<PopoverPortalProps> = (\n props: ScopedProps<PopoverPortalProps>\n) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return (\n <PortalProvider scope={__scopePopover} forceMount={forceMount}>\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {children}\n </PortalPrimitive>\n </Presence>\n </PortalProvider>\n );\n};\n\nPopoverPortal.displayName = PORTAL_NAME;\n\nexport { PopoverPortal };\nexport type { PopoverPortalProps };\n", "import React from \"react\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { ScopedProps, usePopoverContext } from \"./Popover\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport { PrimitiveButtonProps } from \"./PopoverTrigger\";\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, () =>\n context.onOpenChange(false)\n )}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\nexport { PopoverClose };\nexport type { PopoverCloseProps };\n", "import * as PopperPrimitive from \"@huin-core/react-popper\";\nimport React from \"react\";\nimport { ScopedProps, usePopperScope } from \"./Popover\";\n\nconst ARROW_NAME = \"PopoverArrow\";\n\ntype PopoverArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Arrow\n>;\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 (\n <PopperPrimitive.Arrow\n {...popperScope}\n {...arrowProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\nexport { PopoverArrow };\nexport type { PopoverArrowProps };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Root", "PopperPrimitive", "React", "React", "React", "useComposedRefs", "PopperPrimitive", "composeEventHandlers", "React", "Presence", "PopperPrimitive", "React", "React", "React", "Presence", "React", "useComposedRefs", "composeEventHandlers", "React", "Primitive", "composeEventHandlers", "React", "Primitive", "PopperPrimitive", "React", "React"]
|
|
7
7
|
}
|