@huin-core/react-hover-card 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 CHANGED
@@ -1,4 +1,4 @@
1
- import * as React$1 from 'react';
1
+ import * as React from 'react';
2
2
  import React__default from 'react';
3
3
  import { Primitive } from '@huin-core/react-primitive';
4
4
  import { Portal } from '@huin-core/react-portal';
@@ -6,7 +6,7 @@ import * as PopperPrimitive from '@huin-core/react-popper';
6
6
  import { DismissableLayer } from '@huin-core/react-dismissable-layer';
7
7
 
8
8
  type Scope<C = any> = {
9
- [scopeName: string]: React$1.Context<C>[];
9
+ [scopeName: string]: React.Context<C>[];
10
10
  } | undefined;
11
11
  type ScopeHook = (scope: Scope) => {
12
12
  [__scopeProp: string]: Scope;
@@ -18,24 +18,24 @@ interface CreateScope {
18
18
 
19
19
  declare const createHoverCardScope: CreateScope;
20
20
  interface HoverCardProps {
21
- children?: React$1.ReactNode;
21
+ children?: React.ReactNode;
22
22
  open?: boolean;
23
23
  defaultOpen?: boolean;
24
24
  onOpenChange?: (open: boolean) => void;
25
25
  openDelay?: number;
26
26
  closeDelay?: number;
27
27
  }
28
- declare const HoverCard: React$1.FC<HoverCardProps>;
29
- declare const Root: React$1.FC<HoverCardProps>;
28
+ declare const HoverCard: React.FC<HoverCardProps>;
29
+ declare const Root: React.FC<HoverCardProps>;
30
30
 
31
31
  type PrimitiveLinkProps = React__default.ComponentPropsWithoutRef<typeof Primitive.a>;
32
32
  interface HoverCardTriggerProps extends PrimitiveLinkProps {
33
33
  }
34
34
  declare const HoverCardTrigger: React__default.ForwardRefExoticComponent<HoverCardTriggerProps & React__default.RefAttributes<HTMLAnchorElement>>;
35
35
 
36
- type PortalProps = React.ComponentPropsWithoutRef<typeof Portal>;
36
+ type PortalProps = React__default.ComponentPropsWithoutRef<typeof Portal>;
37
37
  interface HoverCardPortalProps {
38
- children?: React.ReactNode;
38
+ children?: React__default.ReactNode;
39
39
  /**
40
40
  * Specify a container element to portal the content into.
41
41
  */
@@ -46,7 +46,7 @@ interface HoverCardPortalProps {
46
46
  */
47
47
  forceMount?: true;
48
48
  }
49
- declare const HoverCardPortal: React.FC<HoverCardPortalProps>;
49
+ declare const HoverCardPortal: React__default.FC<HoverCardPortalProps>;
50
50
 
51
51
  interface HoverCardContentProps extends HoverCardContentImplProps {
52
52
  /**
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as React$1 from 'react';
1
+ import * as React from 'react';
2
2
  import React__default from 'react';
3
3
  import { Primitive } from '@huin-core/react-primitive';
4
4
  import { Portal } from '@huin-core/react-portal';
@@ -6,7 +6,7 @@ import * as PopperPrimitive from '@huin-core/react-popper';
6
6
  import { DismissableLayer } from '@huin-core/react-dismissable-layer';
7
7
 
8
8
  type Scope<C = any> = {
9
- [scopeName: string]: React$1.Context<C>[];
9
+ [scopeName: string]: React.Context<C>[];
10
10
  } | undefined;
11
11
  type ScopeHook = (scope: Scope) => {
12
12
  [__scopeProp: string]: Scope;
@@ -18,24 +18,24 @@ interface CreateScope {
18
18
 
19
19
  declare const createHoverCardScope: CreateScope;
20
20
  interface HoverCardProps {
21
- children?: React$1.ReactNode;
21
+ children?: React.ReactNode;
22
22
  open?: boolean;
23
23
  defaultOpen?: boolean;
24
24
  onOpenChange?: (open: boolean) => void;
25
25
  openDelay?: number;
26
26
  closeDelay?: number;
27
27
  }
28
- declare const HoverCard: React$1.FC<HoverCardProps>;
29
- declare const Root: React$1.FC<HoverCardProps>;
28
+ declare const HoverCard: React.FC<HoverCardProps>;
29
+ declare const Root: React.FC<HoverCardProps>;
30
30
 
31
31
  type PrimitiveLinkProps = React__default.ComponentPropsWithoutRef<typeof Primitive.a>;
32
32
  interface HoverCardTriggerProps extends PrimitiveLinkProps {
33
33
  }
34
34
  declare const HoverCardTrigger: React__default.ForwardRefExoticComponent<HoverCardTriggerProps & React__default.RefAttributes<HTMLAnchorElement>>;
35
35
 
36
- type PortalProps = React.ComponentPropsWithoutRef<typeof Portal>;
36
+ type PortalProps = React__default.ComponentPropsWithoutRef<typeof Portal>;
37
37
  interface HoverCardPortalProps {
38
- children?: React.ReactNode;
38
+ children?: React__default.ReactNode;
39
39
  /**
40
40
  * Specify a container element to portal the content into.
41
41
  */
@@ -46,7 +46,7 @@ interface HoverCardPortalProps {
46
46
  */
47
47
  forceMount?: true;
48
48
  }
49
- declare const HoverCardPortal: React.FC<HoverCardPortalProps>;
49
+ declare const HoverCardPortal: React__default.FC<HoverCardPortalProps>;
50
50
 
51
51
  interface HoverCardContentProps extends HoverCardContentImplProps {
52
52
  /**
package/dist/index.js CHANGED
@@ -47,7 +47,6 @@ var import_react_context = require("@huin-core/react-context");
47
47
  var import_react_use_controllable_state = require("@huin-core/react-use-controllable-state");
48
48
  var PopperPrimitive = __toESM(require("@huin-core/react-popper"));
49
49
  var import_react_popper = require("@huin-core/react-popper");
50
- var import_jsx_runtime = require("react/jsx-runtime");
51
50
  var HOVERCARD_NAME = "HoverCard";
52
51
  var [createHoverCardContext, createHoverCardScope] = (0, import_react_context.createContextScope)(HOVERCARD_NAME, [import_react_popper.createPopperScope]);
53
52
  var usePopperScope = (0, import_react_popper.createPopperScope)();
@@ -92,7 +91,7 @@ var HoverCard = (props) => {
92
91
  clearTimeout(closeTimerRef.current);
93
92
  };
94
93
  }, []);
95
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
94
+ return /* @__PURE__ */ React.createElement(
96
95
  HoverCardProvider,
97
96
  {
98
97
  scope: __scopeHoverCard,
@@ -102,9 +101,9 @@ var HoverCard = (props) => {
102
101
  onClose: handleClose,
103
102
  onDismiss: handleDismiss,
104
103
  hasSelectionRef,
105
- isPointerDownOnContentRef,
106
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopperPrimitive.Root, { ...popperScope, children })
107
- }
104
+ isPointerDownOnContentRef
105
+ },
106
+ /* @__PURE__ */ React.createElement(PopperPrimitive.Root, { ...popperScope }, children)
108
107
  );
109
108
  };
110
109
  HoverCard.displayName = HOVERCARD_NAME;
@@ -118,13 +117,12 @@ var import_react = __toESM(require("react"));
118
117
  var import_react_primitive = require("@huin-core/react-primitive");
119
118
  var PopperPrimitive2 = __toESM(require("@huin-core/react-popper"));
120
119
  var import_primitive = require("@huin-core/primitive");
121
- var import_jsx_runtime2 = require("react/jsx-runtime");
122
120
  var TRIGGER_NAME = "HoverCardTrigger";
123
121
  var HoverCardTrigger = import_react.default.forwardRef((props, forwardedRef) => {
124
122
  const { __scopeHoverCard, ...triggerProps } = props;
125
123
  const context = useHoverCardContext(TRIGGER_NAME, __scopeHoverCard);
126
124
  const popperScope = usePopperScope(__scopeHoverCard);
127
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PopperPrimitive2.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
125
+ return /* @__PURE__ */ import_react.default.createElement(PopperPrimitive2.Anchor, { asChild: true, ...popperScope }, /* @__PURE__ */ import_react.default.createElement(
128
126
  import_react_primitive.Primitive.a,
129
127
  {
130
128
  "data-state": context.open ? "open" : "closed",
@@ -145,14 +143,14 @@ var HoverCardTrigger = import_react.default.forwardRef((props, forwardedRef) =>
145
143
  (event) => event.preventDefault()
146
144
  )
147
145
  }
148
- ) });
146
+ ));
149
147
  });
150
148
  HoverCardTrigger.displayName = TRIGGER_NAME;
151
149
 
152
150
  // packages/react/hover-card/src/HoverCardPortal.tsx
153
151
  var import_react_presence = require("@huin-core/react-presence");
154
152
  var import_react_portal = require("@huin-core/react-portal");
155
- var import_jsx_runtime3 = require("react/jsx-runtime");
153
+ var import_react2 = __toESM(require("react"));
156
154
  var PORTAL_NAME = "HoverCardPortal";
157
155
  var [PortalProvider, usePortalContext] = createHoverCardContext(PORTAL_NAME, {
158
156
  forceMount: void 0
@@ -160,21 +158,20 @@ var [PortalProvider, usePortalContext] = createHoverCardContext(PORTAL_NAME, {
160
158
  var HoverCardPortal = (props) => {
161
159
  const { __scopeHoverCard, forceMount, children, container } = props;
162
160
  const context = useHoverCardContext(PORTAL_NAME, __scopeHoverCard);
163
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(PortalProvider, { scope: __scopeHoverCard, forceMount, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_portal.Portal, { asChild: true, container, children }) }) });
161
+ return /* @__PURE__ */ import_react2.default.createElement(PortalProvider, { scope: __scopeHoverCard, 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
  HoverCardPortal.displayName = PORTAL_NAME;
166
164
 
167
165
  // packages/react/hover-card/src/HoverCardContent.tsx
168
- var import_react2 = __toESM(require("react"));
166
+ var import_react3 = __toESM(require("react"));
169
167
  var import_react_presence2 = require("@huin-core/react-presence");
170
168
  var import_primitive2 = require("@huin-core/primitive");
171
169
  var PopperPrimitive3 = __toESM(require("@huin-core/react-popper"));
172
170
  var import_react_dismissable_layer = require("@huin-core/react-dismissable-layer");
173
171
  var import_react_compose_refs = require("@huin-core/react-compose-refs");
174
- var import_jsx_runtime4 = require("react/jsx-runtime");
175
172
  var originalBodyUserSelect;
176
173
  var CONTENT_NAME = "HoverCardContent";
177
- var HoverCardContent = import_react2.default.forwardRef((props, forwardedRef) => {
174
+ var HoverCardContent = import_react3.default.forwardRef((props, forwardedRef) => {
178
175
  const portalContext = usePortalContext(CONTENT_NAME, props.__scopeHoverCard);
179
176
  const {
180
177
  forceMount = portalContext.forceMount,
@@ -182,7 +179,7 @@ var HoverCardContent = import_react2.default.forwardRef((props, forwardedRef) =>
182
179
  ...contentProps
183
180
  } = props;
184
181
  const context = useHoverCardContext(CONTENT_NAME, props.__scopeHoverCard);
185
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react_presence2.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
182
+ return /* @__PURE__ */ import_react3.default.createElement(import_react_presence2.Presence, { present: forceMount || context.open }, /* @__PURE__ */ import_react3.default.createElement(
186
183
  HoverCardContentImpl,
187
184
  {
188
185
  "data-state": context.open ? "open" : "closed",
@@ -197,10 +194,10 @@ var HoverCardContent = import_react2.default.forwardRef((props, forwardedRef) =>
197
194
  ),
198
195
  ref: forwardedRef
199
196
  }
200
- ) });
197
+ ));
201
198
  });
202
199
  HoverCardContent.displayName = CONTENT_NAME;
203
- var HoverCardContentImpl = import_react2.default.forwardRef((props, forwardedRef) => {
200
+ var HoverCardContentImpl = import_react3.default.forwardRef((props, forwardedRef) => {
204
201
  const {
205
202
  __scopeHoverCard,
206
203
  onEscapeKeyDown,
@@ -211,10 +208,10 @@ var HoverCardContentImpl = import_react2.default.forwardRef((props, forwardedRef
211
208
  } = props;
212
209
  const context = useHoverCardContext(CONTENT_NAME, __scopeHoverCard);
213
210
  const popperScope = usePopperScope(__scopeHoverCard);
214
- const ref = import_react2.default.useRef(null);
211
+ const ref = import_react3.default.useRef(null);
215
212
  const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, ref);
216
- const [containSelection, setContainSelection] = import_react2.default.useState(false);
217
- import_react2.default.useEffect(() => {
213
+ const [containSelection, setContainSelection] = import_react3.default.useState(false);
214
+ import_react3.default.useEffect(() => {
218
215
  if (containSelection) {
219
216
  const body = document.body;
220
217
  originalBodyUserSelect = body.style.userSelect || body.style.webkitUserSelect;
@@ -226,7 +223,7 @@ var HoverCardContentImpl = import_react2.default.forwardRef((props, forwardedRef
226
223
  };
227
224
  }
228
225
  }, [containSelection]);
229
- import_react2.default.useEffect(() => {
226
+ import_react3.default.useEffect(() => {
230
227
  if (ref.current) {
231
228
  const handlePointerUp = () => {
232
229
  setContainSelection(false);
@@ -244,13 +241,13 @@ var HoverCardContentImpl = import_react2.default.forwardRef((props, forwardedRef
244
241
  };
245
242
  }
246
243
  }, [context.isPointerDownOnContentRef, context.hasSelectionRef]);
247
- import_react2.default.useEffect(() => {
244
+ import_react3.default.useEffect(() => {
248
245
  if (ref.current) {
249
246
  const tabbables = getTabbableNodes(ref.current);
250
247
  tabbables.forEach((tabbable) => tabbable.setAttribute("tabindex", "-1"));
251
248
  }
252
249
  });
253
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
250
+ return /* @__PURE__ */ import_react3.default.createElement(
254
251
  import_react_dismissable_layer.DismissableLayer,
255
252
  {
256
253
  asChild: true,
@@ -261,40 +258,40 @@ var HoverCardContentImpl = import_react2.default.forwardRef((props, forwardedRef
261
258
  onFocusOutside: (0, import_primitive2.composeEventHandlers)(onFocusOutside, (event) => {
262
259
  event.preventDefault();
263
260
  }),
264
- onDismiss: context.onDismiss,
265
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
266
- PopperPrimitive3.Content,
267
- {
268
- ...popperScope,
269
- ...contentProps,
270
- onPointerDown: (0, import_primitive2.composeEventHandlers)(
271
- contentProps.onPointerDown,
272
- (event) => {
273
- if (event.currentTarget.contains(event.target)) {
274
- setContainSelection(true);
275
- }
276
- context.hasSelectionRef.current = false;
277
- context.isPointerDownOnContentRef.current = true;
278
- }
279
- ),
280
- ref: composedRefs,
281
- style: {
282
- ...contentProps.style,
283
- userSelect: containSelection ? "text" : void 0,
284
- // Safari requires prefix
285
- WebkitUserSelect: containSelection ? "text" : void 0,
286
- // re-namespace exposed content custom properties
287
- ...{
288
- "--huin-core-hover-card-content-transform-origin": "var(--huin-core-popper-transform-origin)",
289
- "--huin-core-hover-card-content-available-width": "var(--huin-core-popper-available-width)",
290
- "--huin-core-hover-card-content-available-height": "var(--huin-core-popper-available-height)",
291
- "--huin-core-hover-card-trigger-width": "var(--huin-core-popper-anchor-width)",
292
- "--huin-core-hover-card-trigger-height": "var(--huin-core-popper-anchor-height)"
261
+ onDismiss: context.onDismiss
262
+ },
263
+ /* @__PURE__ */ import_react3.default.createElement(
264
+ PopperPrimitive3.Content,
265
+ {
266
+ ...popperScope,
267
+ ...contentProps,
268
+ onPointerDown: (0, import_primitive2.composeEventHandlers)(
269
+ contentProps.onPointerDown,
270
+ (event) => {
271
+ if (event.currentTarget.contains(event.target)) {
272
+ setContainSelection(true);
293
273
  }
274
+ context.hasSelectionRef.current = false;
275
+ context.isPointerDownOnContentRef.current = true;
276
+ }
277
+ ),
278
+ ref: composedRefs,
279
+ style: {
280
+ ...contentProps.style,
281
+ userSelect: containSelection ? "text" : void 0,
282
+ // Safari requires prefix
283
+ WebkitUserSelect: containSelection ? "text" : void 0,
284
+ // re-namespace exposed content custom properties
285
+ ...{
286
+ "--huin-core-hover-card-content-transform-origin": "var(--huin-core-popper-transform-origin)",
287
+ "--huin-core-hover-card-content-available-width": "var(--huin-core-popper-available-width)",
288
+ "--huin-core-hover-card-content-available-height": "var(--huin-core-popper-available-height)",
289
+ "--huin-core-hover-card-trigger-width": "var(--huin-core-popper-anchor-width)",
290
+ "--huin-core-hover-card-trigger-height": "var(--huin-core-popper-anchor-height)"
294
291
  }
295
292
  }
296
- )
297
- }
293
+ }
294
+ )
298
295
  );
299
296
  });
300
297
  function getTabbableNodes(container) {
@@ -310,13 +307,12 @@ function getTabbableNodes(container) {
310
307
 
311
308
  // packages/react/hover-card/src/HoverCardArrow.tsx
312
309
  var PopperPrimitive4 = __toESM(require("@huin-core/react-popper"));
313
- var import_react3 = __toESM(require("react"));
314
- var import_jsx_runtime5 = require("react/jsx-runtime");
310
+ var import_react4 = __toESM(require("react"));
315
311
  var ARROW_NAME = "HoverCardArrow";
316
- var HoverCardArrow = import_react3.default.forwardRef((props, forwardedRef) => {
312
+ var HoverCardArrow = import_react4.default.forwardRef((props, forwardedRef) => {
317
313
  const { __scopeHoverCard, ...arrowProps } = props;
318
314
  const popperScope = usePopperScope(__scopeHoverCard);
319
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
315
+ return /* @__PURE__ */ import_react4.default.createElement(
320
316
  PopperPrimitive4.Arrow,
321
317
  {
322
318
  ...popperScope,
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/HoverCard.tsx", "../src/HoverCardTrigger.tsx", "../src/HoverCardPortal.tsx", "../src/HoverCardContent.tsx", "../src/HoverCardArrow.tsx"],
4
- "sourcesContent": ["\"use client\";\nexport { createHoverCardScope, HoverCard, Root } from \"./HoverCard\";\nexport { HoverCardTrigger } from \"./HoverCardTrigger\";\nexport { HoverCardPortal } from \"./HoverCardPortal\";\nexport { HoverCardContent } from \"./HoverCardContent\";\nexport { HoverCardArrow } from \"./HoverCardArrow\";\n\nexport type { HoverCardProps } from \"./HoverCard\";\nexport type { HoverCardTriggerProps } from \"./HoverCardTrigger\";\nexport type { HoverCardPortalProps } from \"./HoverCardPortal\";\nexport type { HoverCardContentProps } from \"./HoverCardContent\";\nexport type { HoverCardArrowProps } from \"./HoverCardArrow\";\n", "import * as React from \"react\";\nimport { createContextScope } from \"@huin-core/react-context\";\nimport { useControllableState } from \"@huin-core/react-use-controllable-state\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { createPopperScope } from \"@huin-core/react-popper\";\nimport type { Scope } from \"@huin-core/react-context\";\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCard\n * -----------------------------------------------------------------------------------------------*/\n\nconst HOVERCARD_NAME = \"HoverCard\";\n\nexport type ScopedProps<P> = P & { __scopeHoverCard?: Scope };\nexport const [createHoverCardContext, createHoverCardScope] =\n createContextScope(HOVERCARD_NAME, [createPopperScope]);\nexport const usePopperScope = createPopperScope();\n\ntype HoverCardContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpen(): void;\n onClose(): void;\n onDismiss(): void;\n hasSelectionRef: React.MutableRefObject<boolean>;\n isPointerDownOnContentRef: React.MutableRefObject<boolean>;\n};\n\nexport const [HoverCardProvider, useHoverCardContext] =\n createHoverCardContext<HoverCardContextValue>(HOVERCARD_NAME);\n\ninterface HoverCardProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n openDelay?: number;\n closeDelay?: number;\n}\n\nconst HoverCard: React.FC<HoverCardProps> = (\n props: ScopedProps<HoverCardProps>\n) => {\n const {\n __scopeHoverCard,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n openDelay = 700,\n closeDelay = 300,\n } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n const openTimerRef = React.useRef(0);\n const closeTimerRef = React.useRef(0);\n const hasSelectionRef = React.useRef(false);\n const isPointerDownOnContentRef = React.useRef(false);\n\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n const handleOpen = React.useCallback(() => {\n clearTimeout(closeTimerRef.current);\n openTimerRef.current = window.setTimeout(() => setOpen(true), openDelay);\n }, [openDelay, setOpen]);\n\n const handleClose = React.useCallback(() => {\n clearTimeout(openTimerRef.current);\n if (!hasSelectionRef.current && !isPointerDownOnContentRef.current) {\n closeTimerRef.current = window.setTimeout(\n () => setOpen(false),\n closeDelay\n );\n }\n }, [closeDelay, setOpen]);\n\n const handleDismiss = React.useCallback(() => setOpen(false), [setOpen]);\n\n // cleanup any queued state updates on unmount\n React.useEffect(() => {\n return () => {\n clearTimeout(openTimerRef.current);\n clearTimeout(closeTimerRef.current);\n };\n }, []);\n\n return (\n <HoverCardProvider\n scope={__scopeHoverCard}\n open={open}\n onOpenChange={setOpen}\n onOpen={handleOpen}\n onClose={handleClose}\n onDismiss={handleDismiss}\n hasSelectionRef={hasSelectionRef}\n isPointerDownOnContentRef={isPointerDownOnContentRef}\n >\n <PopperPrimitive.Root {...popperScope}>{children}</PopperPrimitive.Root>\n </HoverCardProvider>\n );\n};\n\nHoverCard.displayName = HOVERCARD_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport function excludeTouch<E>(eventHandler: () => void) {\n return (event: React.PointerEvent<E>) =>\n event.pointerType === \"touch\" ? undefined : eventHandler();\n}\n\nconst Root = HoverCard;\n\nexport { HoverCard, Root };\nexport type { HoverCardProps };\n", "import React from \"react\";\nimport {\n excludeTouch,\n ScopedProps,\n useHoverCardContext,\n usePopperScope,\n} from \"./HoverCard\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\n\nconst TRIGGER_NAME = \"HoverCardTrigger\";\n\ntype HoverCardTriggerElement = React.ElementRef<typeof Primitive.a>;\ntype PrimitiveLinkProps = React.ComponentPropsWithoutRef<typeof Primitive.a>;\ninterface HoverCardTriggerProps extends PrimitiveLinkProps {}\n\nconst HoverCardTrigger = React.forwardRef<\n HoverCardTriggerElement,\n HoverCardTriggerProps\n>((props: ScopedProps<HoverCardTriggerProps>, forwardedRef) => {\n const { __scopeHoverCard, ...triggerProps } = props;\n const context = useHoverCardContext(TRIGGER_NAME, __scopeHoverCard);\n const popperScope = usePopperScope(__scopeHoverCard);\n return (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n <Primitive.a\n data-state={context.open ? \"open\" : \"closed\"}\n {...triggerProps}\n ref={forwardedRef}\n onPointerEnter={composeEventHandlers(\n props.onPointerEnter,\n excludeTouch(context.onOpen)\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n excludeTouch(context.onClose)\n )}\n onFocus={composeEventHandlers(props.onFocus, context.onOpen)}\n onBlur={composeEventHandlers(props.onBlur, context.onClose)}\n // prevent focus event on touch devices\n onTouchStart={composeEventHandlers(props.onTouchStart, (event) =>\n event.preventDefault()\n )}\n />\n </PopperPrimitive.Anchor>\n );\n});\n\nHoverCardTrigger.displayName = TRIGGER_NAME;\n\nexport { HoverCardTrigger };\nexport type { HoverCardTriggerProps };\n", "import { Presence } from \"@huin-core/react-presence\";\nimport {\n createHoverCardContext,\n ScopedProps,\n useHoverCardContext,\n} from \"./HoverCard\";\nimport { Portal as PortalPrimitive } from \"@huin-core/react-portal\";\n\nconst PORTAL_NAME = \"HoverCardPortal\";\n\ntype PortalContextValue = { forceMount?: true };\nexport const [PortalProvider, usePortalContext] =\n createHoverCardContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n });\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface HoverCardPortalProps {\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 HoverCardPortal: React.FC<HoverCardPortalProps> = (\n props: ScopedProps<HoverCardPortalProps>\n) => {\n const { __scopeHoverCard, forceMount, children, container } = props;\n const context = useHoverCardContext(PORTAL_NAME, __scopeHoverCard);\n return (\n <PortalProvider scope={__scopeHoverCard} forceMount={forceMount}>\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {children}\n </PortalPrimitive>\n </Presence>\n </PortalProvider>\n );\n};\n\nHoverCardPortal.displayName = PORTAL_NAME;\n\nexport { HoverCardPortal };\nexport type { HoverCardPortalProps };\n", "import React from \"react\";\nimport {\n excludeTouch,\n ScopedProps,\n useHoverCardContext,\n usePopperScope,\n} from \"./HoverCard\";\nimport { Presence } from \"@huin-core/react-presence\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { DismissableLayer } from \"@huin-core/react-dismissable-layer\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { usePortalContext } from \"./HoverCardPortal\";\nlet originalBodyUserSelect: string;\n\nconst CONTENT_NAME = \"HoverCardContent\";\n\ntype HoverCardContentElement = HoverCardContentImplElement;\ninterface HoverCardContentProps extends HoverCardContentImplProps {\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 HoverCardContent = React.forwardRef<\n HoverCardContentElement,\n HoverCardContentProps\n>((props: ScopedProps<HoverCardContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeHoverCard);\n const {\n forceMount = portalContext.forceMount,\n align = \"center\",\n ...contentProps\n } = props;\n const context = useHoverCardContext(CONTENT_NAME, props.__scopeHoverCard);\n return (\n <Presence present={forceMount || context.open}>\n <HoverCardContentImpl\n data-state={context.open ? \"open\" : \"closed\"}\n {...contentProps}\n onPointerEnter={composeEventHandlers(\n props.onPointerEnter,\n excludeTouch(context.onOpen)\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n excludeTouch(context.onClose)\n )}\n ref={forwardedRef}\n />\n </Presence>\n );\n});\n\nHoverCardContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype HoverCardContentImplElement = React.ElementRef<\n typeof PopperPrimitive.Content\n>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<\n typeof DismissableLayer\n>;\ntype PopperContentProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Content\n>;\ninterface HoverCardContentImplProps\n extends Omit<PopperContentProps, \"onPlaced\"> {\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: DismissableLayerProps[\"onEscapeKeyDown\"];\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `HoverCard`.\n * Can be prevented.\n */\n onPointerDownOutside?: DismissableLayerProps[\"onPointerDownOutside\"];\n /**\n * Event handler called when the focus moves outside of the `HoverCard`.\n * Can be prevented.\n */\n onFocusOutside?: DismissableLayerProps[\"onFocusOutside\"];\n /**\n * Event handler called when an interaction happens outside the `HoverCard`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n onInteractOutside?: DismissableLayerProps[\"onInteractOutside\"];\n}\n\nconst HoverCardContentImpl = React.forwardRef<\n HoverCardContentImplElement,\n HoverCardContentImplProps\n>((props: ScopedProps<HoverCardContentImplProps>, forwardedRef) => {\n const {\n __scopeHoverCard,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = useHoverCardContext(CONTENT_NAME, __scopeHoverCard);\n const popperScope = usePopperScope(__scopeHoverCard);\n const ref = React.useRef<HoverCardContentImplElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [containSelection, setContainSelection] = React.useState(false);\n\n React.useEffect(() => {\n if (containSelection) {\n const body = document.body;\n\n // Safari requires prefix\n originalBodyUserSelect =\n body.style.userSelect || body.style.webkitUserSelect;\n\n body.style.userSelect = \"none\";\n body.style.webkitUserSelect = \"none\";\n return () => {\n body.style.userSelect = originalBodyUserSelect;\n body.style.webkitUserSelect = originalBodyUserSelect;\n };\n }\n }, [containSelection]);\n\n React.useEffect(() => {\n if (ref.current) {\n const handlePointerUp = () => {\n setContainSelection(false);\n context.isPointerDownOnContentRef.current = false;\n\n // Delay a frame to ensure we always access the latest selection\n setTimeout(() => {\n const hasSelection = document.getSelection()?.toString() !== \"\";\n if (hasSelection) context.hasSelectionRef.current = true;\n });\n };\n\n document.addEventListener(\"pointerup\", handlePointerUp);\n return () => {\n document.removeEventListener(\"pointerup\", handlePointerUp);\n context.hasSelectionRef.current = false;\n context.isPointerDownOnContentRef.current = false;\n };\n }\n }, [context.isPointerDownOnContentRef, context.hasSelectionRef]);\n\n React.useEffect(() => {\n if (ref.current) {\n const tabbables = getTabbableNodes(ref.current);\n tabbables.forEach((tabbable) => tabbable.setAttribute(\"tabindex\", \"-1\"));\n }\n });\n\n return (\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={false}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={composeEventHandlers(onFocusOutside, (event) => {\n event.preventDefault();\n })}\n onDismiss={context.onDismiss}\n >\n <PopperPrimitive.Content\n {...popperScope}\n {...contentProps}\n onPointerDown={composeEventHandlers(\n contentProps.onPointerDown,\n (event) => {\n // Contain selection to current layer\n if (event.currentTarget.contains(event.target as HTMLElement)) {\n setContainSelection(true);\n }\n context.hasSelectionRef.current = false;\n context.isPointerDownOnContentRef.current = true;\n }\n )}\n ref={composedRefs}\n style={{\n ...contentProps.style,\n userSelect: containSelection ? \"text\" : undefined,\n // Safari requires prefix\n WebkitUserSelect: containSelection ? \"text\" : undefined,\n // re-namespace exposed content custom properties\n ...{\n \"--huin-core-hover-card-content-transform-origin\":\n \"var(--huin-core-popper-transform-origin)\",\n \"--huin-core-hover-card-content-available-width\":\n \"var(--huin-core-popper-available-width)\",\n \"--huin-core-hover-card-content-available-height\":\n \"var(--huin-core-popper-available-height)\",\n \"--huin-core-hover-card-trigger-width\":\n \"var(--huin-core-popper-anchor-width)\",\n \"--huin-core-hover-card-trigger-height\":\n \"var(--huin-core-popper-anchor-height)\",\n },\n }}\n />\n </DismissableLayer>\n );\n});\n\n/**\n * Returns a list of nodes that can be in the tab sequence.\n * @see: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n */\nfunction getTabbableNodes(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n return nodes;\n}\n\nexport { HoverCardContent };\nexport type { HoverCardContentProps };\n", "import * as PopperPrimitive from \"@huin-core/react-popper\";\nimport React from \"react\";\nimport { ScopedProps, usePopperScope } from \"./HoverCard\";\n\nconst ARROW_NAME = \"HoverCardArrow\";\n\ntype HoverCardArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Arrow\n>;\ninterface HoverCardArrowProps extends PopperArrowProps {}\n\nconst HoverCardArrow = React.forwardRef<\n HoverCardArrowElement,\n HoverCardArrowProps\n>((props: ScopedProps<HoverCardArrowProps>, forwardedRef) => {\n const { __scopeHoverCard, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n return (\n <PopperPrimitive.Arrow\n {...popperScope}\n {...arrowProps}\n ref={forwardedRef}\n />\n );\n});\n\nHoverCardArrow.displayName = ARROW_NAME;\n\nexport { HoverCardArrow };\nexport type { HoverCardArrowProps };\n"],
5
- "mappings": "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",
6
- "names": ["Root", "Root", "PopperPrimitive", "import_jsx_runtime", "React", "import_jsx_runtime", "PortalPrimitive", "import_react", "import_react_presence", "import_primitive", "PopperPrimitive", "import_jsx_runtime", "React", "PopperPrimitive", "import_react", "import_jsx_runtime", "React"]
4
+ "sourcesContent": ["\"use client\";\nexport { createHoverCardScope, HoverCard, Root } from \"./HoverCard\";\nexport { HoverCardTrigger } from \"./HoverCardTrigger\";\nexport { HoverCardPortal } from \"./HoverCardPortal\";\nexport { HoverCardContent } from \"./HoverCardContent\";\nexport { HoverCardArrow } from \"./HoverCardArrow\";\n\nexport type { HoverCardProps } from \"./HoverCard\";\nexport type { HoverCardTriggerProps } from \"./HoverCardTrigger\";\nexport type { HoverCardPortalProps } from \"./HoverCardPortal\";\nexport type { HoverCardContentProps } from \"./HoverCardContent\";\nexport type { HoverCardArrowProps } from \"./HoverCardArrow\";\n", "import * as React from \"react\";\nimport { createContextScope } from \"@huin-core/react-context\";\nimport { useControllableState } from \"@huin-core/react-use-controllable-state\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { createPopperScope } from \"@huin-core/react-popper\";\nimport type { Scope } from \"@huin-core/react-context\";\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCard\n * -----------------------------------------------------------------------------------------------*/\n\nconst HOVERCARD_NAME = \"HoverCard\";\n\nexport type ScopedProps<P> = P & { __scopeHoverCard?: Scope };\nexport const [createHoverCardContext, createHoverCardScope] =\n createContextScope(HOVERCARD_NAME, [createPopperScope]);\nexport const usePopperScope = createPopperScope();\n\ntype HoverCardContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpen(): void;\n onClose(): void;\n onDismiss(): void;\n hasSelectionRef: React.MutableRefObject<boolean>;\n isPointerDownOnContentRef: React.MutableRefObject<boolean>;\n};\n\nexport const [HoverCardProvider, useHoverCardContext] =\n createHoverCardContext<HoverCardContextValue>(HOVERCARD_NAME);\n\ninterface HoverCardProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n openDelay?: number;\n closeDelay?: number;\n}\n\nconst HoverCard: React.FC<HoverCardProps> = (\n props: ScopedProps<HoverCardProps>\n) => {\n const {\n __scopeHoverCard,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n openDelay = 700,\n closeDelay = 300,\n } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n const openTimerRef = React.useRef(0);\n const closeTimerRef = React.useRef(0);\n const hasSelectionRef = React.useRef(false);\n const isPointerDownOnContentRef = React.useRef(false);\n\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n const handleOpen = React.useCallback(() => {\n clearTimeout(closeTimerRef.current);\n openTimerRef.current = window.setTimeout(() => setOpen(true), openDelay);\n }, [openDelay, setOpen]);\n\n const handleClose = React.useCallback(() => {\n clearTimeout(openTimerRef.current);\n if (!hasSelectionRef.current && !isPointerDownOnContentRef.current) {\n closeTimerRef.current = window.setTimeout(\n () => setOpen(false),\n closeDelay\n );\n }\n }, [closeDelay, setOpen]);\n\n const handleDismiss = React.useCallback(() => setOpen(false), [setOpen]);\n\n // cleanup any queued state updates on unmount\n React.useEffect(() => {\n return () => {\n clearTimeout(openTimerRef.current);\n clearTimeout(closeTimerRef.current);\n };\n }, []);\n\n return (\n <HoverCardProvider\n scope={__scopeHoverCard}\n open={open}\n onOpenChange={setOpen}\n onOpen={handleOpen}\n onClose={handleClose}\n onDismiss={handleDismiss}\n hasSelectionRef={hasSelectionRef}\n isPointerDownOnContentRef={isPointerDownOnContentRef}\n >\n <PopperPrimitive.Root {...popperScope}>{children}</PopperPrimitive.Root>\n </HoverCardProvider>\n );\n};\n\nHoverCard.displayName = HOVERCARD_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport function excludeTouch<E>(eventHandler: () => void) {\n return (event: React.PointerEvent<E>) =>\n event.pointerType === \"touch\" ? undefined : eventHandler();\n}\n\nconst Root = HoverCard;\n\nexport { HoverCard, Root };\nexport type { HoverCardProps };\n", "import React from \"react\";\nimport {\n excludeTouch,\n ScopedProps,\n useHoverCardContext,\n usePopperScope,\n} from \"./HoverCard\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\n\nconst TRIGGER_NAME = \"HoverCardTrigger\";\n\ntype HoverCardTriggerElement = React.ElementRef<typeof Primitive.a>;\ntype PrimitiveLinkProps = React.ComponentPropsWithoutRef<typeof Primitive.a>;\ninterface HoverCardTriggerProps extends PrimitiveLinkProps {}\n\nconst HoverCardTrigger = React.forwardRef<\n HoverCardTriggerElement,\n HoverCardTriggerProps\n>((props: ScopedProps<HoverCardTriggerProps>, forwardedRef) => {\n const { __scopeHoverCard, ...triggerProps } = props;\n const context = useHoverCardContext(TRIGGER_NAME, __scopeHoverCard);\n const popperScope = usePopperScope(__scopeHoverCard);\n return (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n <Primitive.a\n data-state={context.open ? \"open\" : \"closed\"}\n {...triggerProps}\n ref={forwardedRef}\n onPointerEnter={composeEventHandlers(\n props.onPointerEnter,\n excludeTouch(context.onOpen)\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n excludeTouch(context.onClose)\n )}\n onFocus={composeEventHandlers(props.onFocus, context.onOpen)}\n onBlur={composeEventHandlers(props.onBlur, context.onClose)}\n // prevent focus event on touch devices\n onTouchStart={composeEventHandlers(props.onTouchStart, (event) =>\n event.preventDefault()\n )}\n />\n </PopperPrimitive.Anchor>\n );\n});\n\nHoverCardTrigger.displayName = TRIGGER_NAME;\n\nexport { HoverCardTrigger };\nexport type { HoverCardTriggerProps };\n", "import { Presence } from \"@huin-core/react-presence\";\nimport {\n createHoverCardContext,\n ScopedProps,\n useHoverCardContext,\n} from \"./HoverCard\";\nimport { Portal as PortalPrimitive } from \"@huin-core/react-portal\";\nimport React from \"react\";\n\nconst PORTAL_NAME = \"HoverCardPortal\";\n\ntype PortalContextValue = { forceMount?: true };\nexport const [PortalProvider, usePortalContext] =\n createHoverCardContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n });\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface HoverCardPortalProps {\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 HoverCardPortal: React.FC<HoverCardPortalProps> = (\n props: ScopedProps<HoverCardPortalProps>\n) => {\n const { __scopeHoverCard, forceMount, children, container } = props;\n const context = useHoverCardContext(PORTAL_NAME, __scopeHoverCard);\n return (\n <PortalProvider scope={__scopeHoverCard} forceMount={forceMount}>\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {children}\n </PortalPrimitive>\n </Presence>\n </PortalProvider>\n );\n};\n\nHoverCardPortal.displayName = PORTAL_NAME;\n\nexport { HoverCardPortal };\nexport type { HoverCardPortalProps };\n", "import React from \"react\";\nimport {\n excludeTouch,\n ScopedProps,\n useHoverCardContext,\n usePopperScope,\n} from \"./HoverCard\";\nimport { Presence } from \"@huin-core/react-presence\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { DismissableLayer } from \"@huin-core/react-dismissable-layer\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { usePortalContext } from \"./HoverCardPortal\";\nlet originalBodyUserSelect: string;\n\nconst CONTENT_NAME = \"HoverCardContent\";\n\ntype HoverCardContentElement = HoverCardContentImplElement;\ninterface HoverCardContentProps extends HoverCardContentImplProps {\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 HoverCardContent = React.forwardRef<\n HoverCardContentElement,\n HoverCardContentProps\n>((props: ScopedProps<HoverCardContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeHoverCard);\n const {\n forceMount = portalContext.forceMount,\n align = \"center\",\n ...contentProps\n } = props;\n const context = useHoverCardContext(CONTENT_NAME, props.__scopeHoverCard);\n return (\n <Presence present={forceMount || context.open}>\n <HoverCardContentImpl\n data-state={context.open ? \"open\" : \"closed\"}\n {...contentProps}\n onPointerEnter={composeEventHandlers(\n props.onPointerEnter,\n excludeTouch(context.onOpen)\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n excludeTouch(context.onClose)\n )}\n ref={forwardedRef}\n />\n </Presence>\n );\n});\n\nHoverCardContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype HoverCardContentImplElement = React.ElementRef<\n typeof PopperPrimitive.Content\n>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<\n typeof DismissableLayer\n>;\ntype PopperContentProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Content\n>;\ninterface HoverCardContentImplProps\n extends Omit<PopperContentProps, \"onPlaced\"> {\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: DismissableLayerProps[\"onEscapeKeyDown\"];\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `HoverCard`.\n * Can be prevented.\n */\n onPointerDownOutside?: DismissableLayerProps[\"onPointerDownOutside\"];\n /**\n * Event handler called when the focus moves outside of the `HoverCard`.\n * Can be prevented.\n */\n onFocusOutside?: DismissableLayerProps[\"onFocusOutside\"];\n /**\n * Event handler called when an interaction happens outside the `HoverCard`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n onInteractOutside?: DismissableLayerProps[\"onInteractOutside\"];\n}\n\nconst HoverCardContentImpl = React.forwardRef<\n HoverCardContentImplElement,\n HoverCardContentImplProps\n>((props: ScopedProps<HoverCardContentImplProps>, forwardedRef) => {\n const {\n __scopeHoverCard,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = useHoverCardContext(CONTENT_NAME, __scopeHoverCard);\n const popperScope = usePopperScope(__scopeHoverCard);\n const ref = React.useRef<HoverCardContentImplElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [containSelection, setContainSelection] = React.useState(false);\n\n React.useEffect(() => {\n if (containSelection) {\n const body = document.body;\n\n // Safari requires prefix\n originalBodyUserSelect =\n body.style.userSelect || body.style.webkitUserSelect;\n\n body.style.userSelect = \"none\";\n body.style.webkitUserSelect = \"none\";\n return () => {\n body.style.userSelect = originalBodyUserSelect;\n body.style.webkitUserSelect = originalBodyUserSelect;\n };\n }\n }, [containSelection]);\n\n React.useEffect(() => {\n if (ref.current) {\n const handlePointerUp = () => {\n setContainSelection(false);\n context.isPointerDownOnContentRef.current = false;\n\n // Delay a frame to ensure we always access the latest selection\n setTimeout(() => {\n const hasSelection = document.getSelection()?.toString() !== \"\";\n if (hasSelection) context.hasSelectionRef.current = true;\n });\n };\n\n document.addEventListener(\"pointerup\", handlePointerUp);\n return () => {\n document.removeEventListener(\"pointerup\", handlePointerUp);\n context.hasSelectionRef.current = false;\n context.isPointerDownOnContentRef.current = false;\n };\n }\n }, [context.isPointerDownOnContentRef, context.hasSelectionRef]);\n\n React.useEffect(() => {\n if (ref.current) {\n const tabbables = getTabbableNodes(ref.current);\n tabbables.forEach((tabbable) => tabbable.setAttribute(\"tabindex\", \"-1\"));\n }\n });\n\n return (\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={false}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={composeEventHandlers(onFocusOutside, (event) => {\n event.preventDefault();\n })}\n onDismiss={context.onDismiss}\n >\n <PopperPrimitive.Content\n {...popperScope}\n {...contentProps}\n onPointerDown={composeEventHandlers(\n contentProps.onPointerDown,\n (event) => {\n // Contain selection to current layer\n if (event.currentTarget.contains(event.target as HTMLElement)) {\n setContainSelection(true);\n }\n context.hasSelectionRef.current = false;\n context.isPointerDownOnContentRef.current = true;\n }\n )}\n ref={composedRefs}\n style={{\n ...contentProps.style,\n userSelect: containSelection ? \"text\" : undefined,\n // Safari requires prefix\n WebkitUserSelect: containSelection ? \"text\" : undefined,\n // re-namespace exposed content custom properties\n ...{\n \"--huin-core-hover-card-content-transform-origin\":\n \"var(--huin-core-popper-transform-origin)\",\n \"--huin-core-hover-card-content-available-width\":\n \"var(--huin-core-popper-available-width)\",\n \"--huin-core-hover-card-content-available-height\":\n \"var(--huin-core-popper-available-height)\",\n \"--huin-core-hover-card-trigger-width\":\n \"var(--huin-core-popper-anchor-width)\",\n \"--huin-core-hover-card-trigger-height\":\n \"var(--huin-core-popper-anchor-height)\",\n },\n }}\n />\n </DismissableLayer>\n );\n});\n\n/**\n * Returns a list of nodes that can be in the tab sequence.\n * @see: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n */\nfunction getTabbableNodes(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n return nodes;\n}\n\nexport { HoverCardContent };\nexport type { HoverCardContentProps };\n", "import * as PopperPrimitive from \"@huin-core/react-popper\";\nimport React from \"react\";\nimport { ScopedProps, usePopperScope } from \"./HoverCard\";\n\nconst ARROW_NAME = \"HoverCardArrow\";\n\ntype HoverCardArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Arrow\n>;\ninterface HoverCardArrowProps extends PopperArrowProps {}\n\nconst HoverCardArrow = React.forwardRef<\n HoverCardArrowElement,\n HoverCardArrowProps\n>((props: ScopedProps<HoverCardArrowProps>, forwardedRef) => {\n const { __scopeHoverCard, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n return (\n <PopperPrimitive.Arrow\n {...popperScope}\n {...arrowProps}\n ref={forwardedRef}\n />\n );\n});\n\nHoverCardArrow.displayName = ARROW_NAME;\n\nexport { HoverCardArrow };\nexport type { HoverCardArrowProps };\n"],
5
+ "mappings": "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",
6
+ "names": ["Root", "Root", "PopperPrimitive", "React", "import_react", "React", "PortalPrimitive", "import_react", "import_react_presence", "import_primitive", "PopperPrimitive", "React", "PopperPrimitive", "import_react", "React"]
7
7
  }
package/dist/index.mjs CHANGED
@@ -6,7 +6,6 @@ import { createContextScope } from "@huin-core/react-context";
6
6
  import { useControllableState } from "@huin-core/react-use-controllable-state";
7
7
  import * as PopperPrimitive from "@huin-core/react-popper";
8
8
  import { createPopperScope } from "@huin-core/react-popper";
9
- import { jsx } from "react/jsx-runtime";
10
9
  var HOVERCARD_NAME = "HoverCard";
11
10
  var [createHoverCardContext, createHoverCardScope] = createContextScope(HOVERCARD_NAME, [createPopperScope]);
12
11
  var usePopperScope = createPopperScope();
@@ -51,7 +50,7 @@ var HoverCard = (props) => {
51
50
  clearTimeout(closeTimerRef.current);
52
51
  };
53
52
  }, []);
54
- return /* @__PURE__ */ jsx(
53
+ return /* @__PURE__ */ React.createElement(
55
54
  HoverCardProvider,
56
55
  {
57
56
  scope: __scopeHoverCard,
@@ -61,9 +60,9 @@ var HoverCard = (props) => {
61
60
  onClose: handleClose,
62
61
  onDismiss: handleDismiss,
63
62
  hasSelectionRef,
64
- isPointerDownOnContentRef,
65
- children: /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children })
66
- }
63
+ isPointerDownOnContentRef
64
+ },
65
+ /* @__PURE__ */ React.createElement(PopperPrimitive.Root, { ...popperScope }, children)
67
66
  );
68
67
  };
69
68
  HoverCard.displayName = HOVERCARD_NAME;
@@ -77,13 +76,12 @@ import React2 from "react";
77
76
  import { Primitive } from "@huin-core/react-primitive";
78
77
  import * as PopperPrimitive2 from "@huin-core/react-popper";
79
78
  import { composeEventHandlers } from "@huin-core/primitive";
80
- import { jsx as jsx2 } from "react/jsx-runtime";
81
79
  var TRIGGER_NAME = "HoverCardTrigger";
82
80
  var HoverCardTrigger = React2.forwardRef((props, forwardedRef) => {
83
81
  const { __scopeHoverCard, ...triggerProps } = props;
84
82
  const context = useHoverCardContext(TRIGGER_NAME, __scopeHoverCard);
85
83
  const popperScope = usePopperScope(__scopeHoverCard);
86
- return /* @__PURE__ */ jsx2(PopperPrimitive2.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx2(
84
+ return /* @__PURE__ */ React2.createElement(PopperPrimitive2.Anchor, { asChild: true, ...popperScope }, /* @__PURE__ */ React2.createElement(
87
85
  Primitive.a,
88
86
  {
89
87
  "data-state": context.open ? "open" : "closed",
@@ -104,14 +102,14 @@ var HoverCardTrigger = React2.forwardRef((props, forwardedRef) => {
104
102
  (event) => event.preventDefault()
105
103
  )
106
104
  }
107
- ) });
105
+ ));
108
106
  });
109
107
  HoverCardTrigger.displayName = TRIGGER_NAME;
110
108
 
111
109
  // packages/react/hover-card/src/HoverCardPortal.tsx
112
110
  import { Presence } from "@huin-core/react-presence";
113
111
  import { Portal as PortalPrimitive } from "@huin-core/react-portal";
114
- import { jsx as jsx3 } from "react/jsx-runtime";
112
+ import React3 from "react";
115
113
  var PORTAL_NAME = "HoverCardPortal";
116
114
  var [PortalProvider, usePortalContext] = createHoverCardContext(PORTAL_NAME, {
117
115
  forceMount: void 0
@@ -119,21 +117,20 @@ var [PortalProvider, usePortalContext] = createHoverCardContext(PORTAL_NAME, {
119
117
  var HoverCardPortal = (props) => {
120
118
  const { __scopeHoverCard, forceMount, children, container } = props;
121
119
  const context = useHoverCardContext(PORTAL_NAME, __scopeHoverCard);
122
- return /* @__PURE__ */ jsx3(PortalProvider, { scope: __scopeHoverCard, forceMount, children: /* @__PURE__ */ jsx3(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx3(PortalPrimitive, { asChild: true, container, children }) }) });
120
+ return /* @__PURE__ */ React3.createElement(PortalProvider, { scope: __scopeHoverCard, forceMount }, /* @__PURE__ */ React3.createElement(Presence, { present: forceMount || context.open }, /* @__PURE__ */ React3.createElement(PortalPrimitive, { asChild: true, container }, children)));
123
121
  };
124
122
  HoverCardPortal.displayName = PORTAL_NAME;
125
123
 
126
124
  // packages/react/hover-card/src/HoverCardContent.tsx
127
- import React3 from "react";
125
+ import React4 from "react";
128
126
  import { Presence as Presence2 } from "@huin-core/react-presence";
129
127
  import { composeEventHandlers as composeEventHandlers2 } from "@huin-core/primitive";
130
128
  import * as PopperPrimitive3 from "@huin-core/react-popper";
131
129
  import { DismissableLayer } from "@huin-core/react-dismissable-layer";
132
130
  import { useComposedRefs } from "@huin-core/react-compose-refs";
133
- import { jsx as jsx4 } from "react/jsx-runtime";
134
131
  var originalBodyUserSelect;
135
132
  var CONTENT_NAME = "HoverCardContent";
136
- var HoverCardContent = React3.forwardRef((props, forwardedRef) => {
133
+ var HoverCardContent = React4.forwardRef((props, forwardedRef) => {
137
134
  const portalContext = usePortalContext(CONTENT_NAME, props.__scopeHoverCard);
138
135
  const {
139
136
  forceMount = portalContext.forceMount,
@@ -141,7 +138,7 @@ var HoverCardContent = React3.forwardRef((props, forwardedRef) => {
141
138
  ...contentProps
142
139
  } = props;
143
140
  const context = useHoverCardContext(CONTENT_NAME, props.__scopeHoverCard);
144
- return /* @__PURE__ */ jsx4(Presence2, { present: forceMount || context.open, children: /* @__PURE__ */ jsx4(
141
+ return /* @__PURE__ */ React4.createElement(Presence2, { present: forceMount || context.open }, /* @__PURE__ */ React4.createElement(
145
142
  HoverCardContentImpl,
146
143
  {
147
144
  "data-state": context.open ? "open" : "closed",
@@ -156,10 +153,10 @@ var HoverCardContent = React3.forwardRef((props, forwardedRef) => {
156
153
  ),
157
154
  ref: forwardedRef
158
155
  }
159
- ) });
156
+ ));
160
157
  });
161
158
  HoverCardContent.displayName = CONTENT_NAME;
162
- var HoverCardContentImpl = React3.forwardRef((props, forwardedRef) => {
159
+ var HoverCardContentImpl = React4.forwardRef((props, forwardedRef) => {
163
160
  const {
164
161
  __scopeHoverCard,
165
162
  onEscapeKeyDown,
@@ -170,10 +167,10 @@ var HoverCardContentImpl = React3.forwardRef((props, forwardedRef) => {
170
167
  } = props;
171
168
  const context = useHoverCardContext(CONTENT_NAME, __scopeHoverCard);
172
169
  const popperScope = usePopperScope(__scopeHoverCard);
173
- const ref = React3.useRef(null);
170
+ const ref = React4.useRef(null);
174
171
  const composedRefs = useComposedRefs(forwardedRef, ref);
175
- const [containSelection, setContainSelection] = React3.useState(false);
176
- React3.useEffect(() => {
172
+ const [containSelection, setContainSelection] = React4.useState(false);
173
+ React4.useEffect(() => {
177
174
  if (containSelection) {
178
175
  const body = document.body;
179
176
  originalBodyUserSelect = body.style.userSelect || body.style.webkitUserSelect;
@@ -185,7 +182,7 @@ var HoverCardContentImpl = React3.forwardRef((props, forwardedRef) => {
185
182
  };
186
183
  }
187
184
  }, [containSelection]);
188
- React3.useEffect(() => {
185
+ React4.useEffect(() => {
189
186
  if (ref.current) {
190
187
  const handlePointerUp = () => {
191
188
  setContainSelection(false);
@@ -203,13 +200,13 @@ var HoverCardContentImpl = React3.forwardRef((props, forwardedRef) => {
203
200
  };
204
201
  }
205
202
  }, [context.isPointerDownOnContentRef, context.hasSelectionRef]);
206
- React3.useEffect(() => {
203
+ React4.useEffect(() => {
207
204
  if (ref.current) {
208
205
  const tabbables = getTabbableNodes(ref.current);
209
206
  tabbables.forEach((tabbable) => tabbable.setAttribute("tabindex", "-1"));
210
207
  }
211
208
  });
212
- return /* @__PURE__ */ jsx4(
209
+ return /* @__PURE__ */ React4.createElement(
213
210
  DismissableLayer,
214
211
  {
215
212
  asChild: true,
@@ -220,40 +217,40 @@ var HoverCardContentImpl = React3.forwardRef((props, forwardedRef) => {
220
217
  onFocusOutside: composeEventHandlers2(onFocusOutside, (event) => {
221
218
  event.preventDefault();
222
219
  }),
223
- onDismiss: context.onDismiss,
224
- children: /* @__PURE__ */ jsx4(
225
- PopperPrimitive3.Content,
226
- {
227
- ...popperScope,
228
- ...contentProps,
229
- onPointerDown: composeEventHandlers2(
230
- contentProps.onPointerDown,
231
- (event) => {
232
- if (event.currentTarget.contains(event.target)) {
233
- setContainSelection(true);
234
- }
235
- context.hasSelectionRef.current = false;
236
- context.isPointerDownOnContentRef.current = true;
237
- }
238
- ),
239
- ref: composedRefs,
240
- style: {
241
- ...contentProps.style,
242
- userSelect: containSelection ? "text" : void 0,
243
- // Safari requires prefix
244
- WebkitUserSelect: containSelection ? "text" : void 0,
245
- // re-namespace exposed content custom properties
246
- ...{
247
- "--huin-core-hover-card-content-transform-origin": "var(--huin-core-popper-transform-origin)",
248
- "--huin-core-hover-card-content-available-width": "var(--huin-core-popper-available-width)",
249
- "--huin-core-hover-card-content-available-height": "var(--huin-core-popper-available-height)",
250
- "--huin-core-hover-card-trigger-width": "var(--huin-core-popper-anchor-width)",
251
- "--huin-core-hover-card-trigger-height": "var(--huin-core-popper-anchor-height)"
220
+ onDismiss: context.onDismiss
221
+ },
222
+ /* @__PURE__ */ React4.createElement(
223
+ PopperPrimitive3.Content,
224
+ {
225
+ ...popperScope,
226
+ ...contentProps,
227
+ onPointerDown: composeEventHandlers2(
228
+ contentProps.onPointerDown,
229
+ (event) => {
230
+ if (event.currentTarget.contains(event.target)) {
231
+ setContainSelection(true);
252
232
  }
233
+ context.hasSelectionRef.current = false;
234
+ context.isPointerDownOnContentRef.current = true;
235
+ }
236
+ ),
237
+ ref: composedRefs,
238
+ style: {
239
+ ...contentProps.style,
240
+ userSelect: containSelection ? "text" : void 0,
241
+ // Safari requires prefix
242
+ WebkitUserSelect: containSelection ? "text" : void 0,
243
+ // re-namespace exposed content custom properties
244
+ ...{
245
+ "--huin-core-hover-card-content-transform-origin": "var(--huin-core-popper-transform-origin)",
246
+ "--huin-core-hover-card-content-available-width": "var(--huin-core-popper-available-width)",
247
+ "--huin-core-hover-card-content-available-height": "var(--huin-core-popper-available-height)",
248
+ "--huin-core-hover-card-trigger-width": "var(--huin-core-popper-anchor-width)",
249
+ "--huin-core-hover-card-trigger-height": "var(--huin-core-popper-anchor-height)"
253
250
  }
254
251
  }
255
- )
256
- }
252
+ }
253
+ )
257
254
  );
258
255
  });
259
256
  function getTabbableNodes(container) {
@@ -269,13 +266,12 @@ function getTabbableNodes(container) {
269
266
 
270
267
  // packages/react/hover-card/src/HoverCardArrow.tsx
271
268
  import * as PopperPrimitive4 from "@huin-core/react-popper";
272
- import React4 from "react";
273
- import { jsx as jsx5 } from "react/jsx-runtime";
269
+ import React5 from "react";
274
270
  var ARROW_NAME = "HoverCardArrow";
275
- var HoverCardArrow = React4.forwardRef((props, forwardedRef) => {
271
+ var HoverCardArrow = React5.forwardRef((props, forwardedRef) => {
276
272
  const { __scopeHoverCard, ...arrowProps } = props;
277
273
  const popperScope = usePopperScope(__scopeHoverCard);
278
- return /* @__PURE__ */ jsx5(
274
+ return /* @__PURE__ */ React5.createElement(
279
275
  PopperPrimitive4.Arrow,
280
276
  {
281
277
  ...popperScope,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/HoverCard.tsx", "../src/HoverCardTrigger.tsx", "../src/HoverCardPortal.tsx", "../src/HoverCardContent.tsx", "../src/HoverCardArrow.tsx"],
4
- "sourcesContent": ["import * as React from \"react\";\nimport { createContextScope } from \"@huin-core/react-context\";\nimport { useControllableState } from \"@huin-core/react-use-controllable-state\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { createPopperScope } from \"@huin-core/react-popper\";\nimport type { Scope } from \"@huin-core/react-context\";\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCard\n * -----------------------------------------------------------------------------------------------*/\n\nconst HOVERCARD_NAME = \"HoverCard\";\n\nexport type ScopedProps<P> = P & { __scopeHoverCard?: Scope };\nexport const [createHoverCardContext, createHoverCardScope] =\n createContextScope(HOVERCARD_NAME, [createPopperScope]);\nexport const usePopperScope = createPopperScope();\n\ntype HoverCardContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpen(): void;\n onClose(): void;\n onDismiss(): void;\n hasSelectionRef: React.MutableRefObject<boolean>;\n isPointerDownOnContentRef: React.MutableRefObject<boolean>;\n};\n\nexport const [HoverCardProvider, useHoverCardContext] =\n createHoverCardContext<HoverCardContextValue>(HOVERCARD_NAME);\n\ninterface HoverCardProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n openDelay?: number;\n closeDelay?: number;\n}\n\nconst HoverCard: React.FC<HoverCardProps> = (\n props: ScopedProps<HoverCardProps>\n) => {\n const {\n __scopeHoverCard,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n openDelay = 700,\n closeDelay = 300,\n } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n const openTimerRef = React.useRef(0);\n const closeTimerRef = React.useRef(0);\n const hasSelectionRef = React.useRef(false);\n const isPointerDownOnContentRef = React.useRef(false);\n\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n const handleOpen = React.useCallback(() => {\n clearTimeout(closeTimerRef.current);\n openTimerRef.current = window.setTimeout(() => setOpen(true), openDelay);\n }, [openDelay, setOpen]);\n\n const handleClose = React.useCallback(() => {\n clearTimeout(openTimerRef.current);\n if (!hasSelectionRef.current && !isPointerDownOnContentRef.current) {\n closeTimerRef.current = window.setTimeout(\n () => setOpen(false),\n closeDelay\n );\n }\n }, [closeDelay, setOpen]);\n\n const handleDismiss = React.useCallback(() => setOpen(false), [setOpen]);\n\n // cleanup any queued state updates on unmount\n React.useEffect(() => {\n return () => {\n clearTimeout(openTimerRef.current);\n clearTimeout(closeTimerRef.current);\n };\n }, []);\n\n return (\n <HoverCardProvider\n scope={__scopeHoverCard}\n open={open}\n onOpenChange={setOpen}\n onOpen={handleOpen}\n onClose={handleClose}\n onDismiss={handleDismiss}\n hasSelectionRef={hasSelectionRef}\n isPointerDownOnContentRef={isPointerDownOnContentRef}\n >\n <PopperPrimitive.Root {...popperScope}>{children}</PopperPrimitive.Root>\n </HoverCardProvider>\n );\n};\n\nHoverCard.displayName = HOVERCARD_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport function excludeTouch<E>(eventHandler: () => void) {\n return (event: React.PointerEvent<E>) =>\n event.pointerType === \"touch\" ? undefined : eventHandler();\n}\n\nconst Root = HoverCard;\n\nexport { HoverCard, Root };\nexport type { HoverCardProps };\n", "import React from \"react\";\nimport {\n excludeTouch,\n ScopedProps,\n useHoverCardContext,\n usePopperScope,\n} from \"./HoverCard\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\n\nconst TRIGGER_NAME = \"HoverCardTrigger\";\n\ntype HoverCardTriggerElement = React.ElementRef<typeof Primitive.a>;\ntype PrimitiveLinkProps = React.ComponentPropsWithoutRef<typeof Primitive.a>;\ninterface HoverCardTriggerProps extends PrimitiveLinkProps {}\n\nconst HoverCardTrigger = React.forwardRef<\n HoverCardTriggerElement,\n HoverCardTriggerProps\n>((props: ScopedProps<HoverCardTriggerProps>, forwardedRef) => {\n const { __scopeHoverCard, ...triggerProps } = props;\n const context = useHoverCardContext(TRIGGER_NAME, __scopeHoverCard);\n const popperScope = usePopperScope(__scopeHoverCard);\n return (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n <Primitive.a\n data-state={context.open ? \"open\" : \"closed\"}\n {...triggerProps}\n ref={forwardedRef}\n onPointerEnter={composeEventHandlers(\n props.onPointerEnter,\n excludeTouch(context.onOpen)\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n excludeTouch(context.onClose)\n )}\n onFocus={composeEventHandlers(props.onFocus, context.onOpen)}\n onBlur={composeEventHandlers(props.onBlur, context.onClose)}\n // prevent focus event on touch devices\n onTouchStart={composeEventHandlers(props.onTouchStart, (event) =>\n event.preventDefault()\n )}\n />\n </PopperPrimitive.Anchor>\n );\n});\n\nHoverCardTrigger.displayName = TRIGGER_NAME;\n\nexport { HoverCardTrigger };\nexport type { HoverCardTriggerProps };\n", "import { Presence } from \"@huin-core/react-presence\";\nimport {\n createHoverCardContext,\n ScopedProps,\n useHoverCardContext,\n} from \"./HoverCard\";\nimport { Portal as PortalPrimitive } from \"@huin-core/react-portal\";\n\nconst PORTAL_NAME = \"HoverCardPortal\";\n\ntype PortalContextValue = { forceMount?: true };\nexport const [PortalProvider, usePortalContext] =\n createHoverCardContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n });\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface HoverCardPortalProps {\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 HoverCardPortal: React.FC<HoverCardPortalProps> = (\n props: ScopedProps<HoverCardPortalProps>\n) => {\n const { __scopeHoverCard, forceMount, children, container } = props;\n const context = useHoverCardContext(PORTAL_NAME, __scopeHoverCard);\n return (\n <PortalProvider scope={__scopeHoverCard} forceMount={forceMount}>\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {children}\n </PortalPrimitive>\n </Presence>\n </PortalProvider>\n );\n};\n\nHoverCardPortal.displayName = PORTAL_NAME;\n\nexport { HoverCardPortal };\nexport type { HoverCardPortalProps };\n", "import React from \"react\";\nimport {\n excludeTouch,\n ScopedProps,\n useHoverCardContext,\n usePopperScope,\n} from \"./HoverCard\";\nimport { Presence } from \"@huin-core/react-presence\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { DismissableLayer } from \"@huin-core/react-dismissable-layer\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { usePortalContext } from \"./HoverCardPortal\";\nlet originalBodyUserSelect: string;\n\nconst CONTENT_NAME = \"HoverCardContent\";\n\ntype HoverCardContentElement = HoverCardContentImplElement;\ninterface HoverCardContentProps extends HoverCardContentImplProps {\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 HoverCardContent = React.forwardRef<\n HoverCardContentElement,\n HoverCardContentProps\n>((props: ScopedProps<HoverCardContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeHoverCard);\n const {\n forceMount = portalContext.forceMount,\n align = \"center\",\n ...contentProps\n } = props;\n const context = useHoverCardContext(CONTENT_NAME, props.__scopeHoverCard);\n return (\n <Presence present={forceMount || context.open}>\n <HoverCardContentImpl\n data-state={context.open ? \"open\" : \"closed\"}\n {...contentProps}\n onPointerEnter={composeEventHandlers(\n props.onPointerEnter,\n excludeTouch(context.onOpen)\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n excludeTouch(context.onClose)\n )}\n ref={forwardedRef}\n />\n </Presence>\n );\n});\n\nHoverCardContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype HoverCardContentImplElement = React.ElementRef<\n typeof PopperPrimitive.Content\n>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<\n typeof DismissableLayer\n>;\ntype PopperContentProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Content\n>;\ninterface HoverCardContentImplProps\n extends Omit<PopperContentProps, \"onPlaced\"> {\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: DismissableLayerProps[\"onEscapeKeyDown\"];\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `HoverCard`.\n * Can be prevented.\n */\n onPointerDownOutside?: DismissableLayerProps[\"onPointerDownOutside\"];\n /**\n * Event handler called when the focus moves outside of the `HoverCard`.\n * Can be prevented.\n */\n onFocusOutside?: DismissableLayerProps[\"onFocusOutside\"];\n /**\n * Event handler called when an interaction happens outside the `HoverCard`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n onInteractOutside?: DismissableLayerProps[\"onInteractOutside\"];\n}\n\nconst HoverCardContentImpl = React.forwardRef<\n HoverCardContentImplElement,\n HoverCardContentImplProps\n>((props: ScopedProps<HoverCardContentImplProps>, forwardedRef) => {\n const {\n __scopeHoverCard,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = useHoverCardContext(CONTENT_NAME, __scopeHoverCard);\n const popperScope = usePopperScope(__scopeHoverCard);\n const ref = React.useRef<HoverCardContentImplElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [containSelection, setContainSelection] = React.useState(false);\n\n React.useEffect(() => {\n if (containSelection) {\n const body = document.body;\n\n // Safari requires prefix\n originalBodyUserSelect =\n body.style.userSelect || body.style.webkitUserSelect;\n\n body.style.userSelect = \"none\";\n body.style.webkitUserSelect = \"none\";\n return () => {\n body.style.userSelect = originalBodyUserSelect;\n body.style.webkitUserSelect = originalBodyUserSelect;\n };\n }\n }, [containSelection]);\n\n React.useEffect(() => {\n if (ref.current) {\n const handlePointerUp = () => {\n setContainSelection(false);\n context.isPointerDownOnContentRef.current = false;\n\n // Delay a frame to ensure we always access the latest selection\n setTimeout(() => {\n const hasSelection = document.getSelection()?.toString() !== \"\";\n if (hasSelection) context.hasSelectionRef.current = true;\n });\n };\n\n document.addEventListener(\"pointerup\", handlePointerUp);\n return () => {\n document.removeEventListener(\"pointerup\", handlePointerUp);\n context.hasSelectionRef.current = false;\n context.isPointerDownOnContentRef.current = false;\n };\n }\n }, [context.isPointerDownOnContentRef, context.hasSelectionRef]);\n\n React.useEffect(() => {\n if (ref.current) {\n const tabbables = getTabbableNodes(ref.current);\n tabbables.forEach((tabbable) => tabbable.setAttribute(\"tabindex\", \"-1\"));\n }\n });\n\n return (\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={false}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={composeEventHandlers(onFocusOutside, (event) => {\n event.preventDefault();\n })}\n onDismiss={context.onDismiss}\n >\n <PopperPrimitive.Content\n {...popperScope}\n {...contentProps}\n onPointerDown={composeEventHandlers(\n contentProps.onPointerDown,\n (event) => {\n // Contain selection to current layer\n if (event.currentTarget.contains(event.target as HTMLElement)) {\n setContainSelection(true);\n }\n context.hasSelectionRef.current = false;\n context.isPointerDownOnContentRef.current = true;\n }\n )}\n ref={composedRefs}\n style={{\n ...contentProps.style,\n userSelect: containSelection ? \"text\" : undefined,\n // Safari requires prefix\n WebkitUserSelect: containSelection ? \"text\" : undefined,\n // re-namespace exposed content custom properties\n ...{\n \"--huin-core-hover-card-content-transform-origin\":\n \"var(--huin-core-popper-transform-origin)\",\n \"--huin-core-hover-card-content-available-width\":\n \"var(--huin-core-popper-available-width)\",\n \"--huin-core-hover-card-content-available-height\":\n \"var(--huin-core-popper-available-height)\",\n \"--huin-core-hover-card-trigger-width\":\n \"var(--huin-core-popper-anchor-width)\",\n \"--huin-core-hover-card-trigger-height\":\n \"var(--huin-core-popper-anchor-height)\",\n },\n }}\n />\n </DismissableLayer>\n );\n});\n\n/**\n * Returns a list of nodes that can be in the tab sequence.\n * @see: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n */\nfunction getTabbableNodes(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n return nodes;\n}\n\nexport { HoverCardContent };\nexport type { HoverCardContentProps };\n", "import * as PopperPrimitive from \"@huin-core/react-popper\";\nimport React from \"react\";\nimport { ScopedProps, usePopperScope } from \"./HoverCard\";\n\nconst ARROW_NAME = \"HoverCardArrow\";\n\ntype HoverCardArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Arrow\n>;\ninterface HoverCardArrowProps extends PopperArrowProps {}\n\nconst HoverCardArrow = React.forwardRef<\n HoverCardArrowElement,\n HoverCardArrowProps\n>((props: ScopedProps<HoverCardArrowProps>, forwardedRef) => {\n const { __scopeHoverCard, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n return (\n <PopperPrimitive.Arrow\n {...popperScope}\n {...arrowProps}\n ref={forwardedRef}\n />\n );\n});\n\nHoverCardArrow.displayName = ARROW_NAME;\n\nexport { HoverCardArrow };\nexport type { HoverCardArrowProps };\n"],
5
- "mappings": "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",
6
- "names": ["Root", "React", "PopperPrimitive", "jsx", "React", "jsx", "React", "Presence", "composeEventHandlers", "PopperPrimitive", "jsx", "React", "Presence", "composeEventHandlers", "PopperPrimitive", "React", "jsx", "React"]
4
+ "sourcesContent": ["import * as React from \"react\";\nimport { createContextScope } from \"@huin-core/react-context\";\nimport { useControllableState } from \"@huin-core/react-use-controllable-state\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { createPopperScope } from \"@huin-core/react-popper\";\nimport type { Scope } from \"@huin-core/react-context\";\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCard\n * -----------------------------------------------------------------------------------------------*/\n\nconst HOVERCARD_NAME = \"HoverCard\";\n\nexport type ScopedProps<P> = P & { __scopeHoverCard?: Scope };\nexport const [createHoverCardContext, createHoverCardScope] =\n createContextScope(HOVERCARD_NAME, [createPopperScope]);\nexport const usePopperScope = createPopperScope();\n\ntype HoverCardContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpen(): void;\n onClose(): void;\n onDismiss(): void;\n hasSelectionRef: React.MutableRefObject<boolean>;\n isPointerDownOnContentRef: React.MutableRefObject<boolean>;\n};\n\nexport const [HoverCardProvider, useHoverCardContext] =\n createHoverCardContext<HoverCardContextValue>(HOVERCARD_NAME);\n\ninterface HoverCardProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n openDelay?: number;\n closeDelay?: number;\n}\n\nconst HoverCard: React.FC<HoverCardProps> = (\n props: ScopedProps<HoverCardProps>\n) => {\n const {\n __scopeHoverCard,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n openDelay = 700,\n closeDelay = 300,\n } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n const openTimerRef = React.useRef(0);\n const closeTimerRef = React.useRef(0);\n const hasSelectionRef = React.useRef(false);\n const isPointerDownOnContentRef = React.useRef(false);\n\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n const handleOpen = React.useCallback(() => {\n clearTimeout(closeTimerRef.current);\n openTimerRef.current = window.setTimeout(() => setOpen(true), openDelay);\n }, [openDelay, setOpen]);\n\n const handleClose = React.useCallback(() => {\n clearTimeout(openTimerRef.current);\n if (!hasSelectionRef.current && !isPointerDownOnContentRef.current) {\n closeTimerRef.current = window.setTimeout(\n () => setOpen(false),\n closeDelay\n );\n }\n }, [closeDelay, setOpen]);\n\n const handleDismiss = React.useCallback(() => setOpen(false), [setOpen]);\n\n // cleanup any queued state updates on unmount\n React.useEffect(() => {\n return () => {\n clearTimeout(openTimerRef.current);\n clearTimeout(closeTimerRef.current);\n };\n }, []);\n\n return (\n <HoverCardProvider\n scope={__scopeHoverCard}\n open={open}\n onOpenChange={setOpen}\n onOpen={handleOpen}\n onClose={handleClose}\n onDismiss={handleDismiss}\n hasSelectionRef={hasSelectionRef}\n isPointerDownOnContentRef={isPointerDownOnContentRef}\n >\n <PopperPrimitive.Root {...popperScope}>{children}</PopperPrimitive.Root>\n </HoverCardProvider>\n );\n};\n\nHoverCard.displayName = HOVERCARD_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport function excludeTouch<E>(eventHandler: () => void) {\n return (event: React.PointerEvent<E>) =>\n event.pointerType === \"touch\" ? undefined : eventHandler();\n}\n\nconst Root = HoverCard;\n\nexport { HoverCard, Root };\nexport type { HoverCardProps };\n", "import React from \"react\";\nimport {\n excludeTouch,\n ScopedProps,\n useHoverCardContext,\n usePopperScope,\n} from \"./HoverCard\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\n\nconst TRIGGER_NAME = \"HoverCardTrigger\";\n\ntype HoverCardTriggerElement = React.ElementRef<typeof Primitive.a>;\ntype PrimitiveLinkProps = React.ComponentPropsWithoutRef<typeof Primitive.a>;\ninterface HoverCardTriggerProps extends PrimitiveLinkProps {}\n\nconst HoverCardTrigger = React.forwardRef<\n HoverCardTriggerElement,\n HoverCardTriggerProps\n>((props: ScopedProps<HoverCardTriggerProps>, forwardedRef) => {\n const { __scopeHoverCard, ...triggerProps } = props;\n const context = useHoverCardContext(TRIGGER_NAME, __scopeHoverCard);\n const popperScope = usePopperScope(__scopeHoverCard);\n return (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n <Primitive.a\n data-state={context.open ? \"open\" : \"closed\"}\n {...triggerProps}\n ref={forwardedRef}\n onPointerEnter={composeEventHandlers(\n props.onPointerEnter,\n excludeTouch(context.onOpen)\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n excludeTouch(context.onClose)\n )}\n onFocus={composeEventHandlers(props.onFocus, context.onOpen)}\n onBlur={composeEventHandlers(props.onBlur, context.onClose)}\n // prevent focus event on touch devices\n onTouchStart={composeEventHandlers(props.onTouchStart, (event) =>\n event.preventDefault()\n )}\n />\n </PopperPrimitive.Anchor>\n );\n});\n\nHoverCardTrigger.displayName = TRIGGER_NAME;\n\nexport { HoverCardTrigger };\nexport type { HoverCardTriggerProps };\n", "import { Presence } from \"@huin-core/react-presence\";\nimport {\n createHoverCardContext,\n ScopedProps,\n useHoverCardContext,\n} from \"./HoverCard\";\nimport { Portal as PortalPrimitive } from \"@huin-core/react-portal\";\nimport React from \"react\";\n\nconst PORTAL_NAME = \"HoverCardPortal\";\n\ntype PortalContextValue = { forceMount?: true };\nexport const [PortalProvider, usePortalContext] =\n createHoverCardContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n });\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface HoverCardPortalProps {\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 HoverCardPortal: React.FC<HoverCardPortalProps> = (\n props: ScopedProps<HoverCardPortalProps>\n) => {\n const { __scopeHoverCard, forceMount, children, container } = props;\n const context = useHoverCardContext(PORTAL_NAME, __scopeHoverCard);\n return (\n <PortalProvider scope={__scopeHoverCard} forceMount={forceMount}>\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {children}\n </PortalPrimitive>\n </Presence>\n </PortalProvider>\n );\n};\n\nHoverCardPortal.displayName = PORTAL_NAME;\n\nexport { HoverCardPortal };\nexport type { HoverCardPortalProps };\n", "import React from \"react\";\nimport {\n excludeTouch,\n ScopedProps,\n useHoverCardContext,\n usePopperScope,\n} from \"./HoverCard\";\nimport { Presence } from \"@huin-core/react-presence\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport * as PopperPrimitive from \"@huin-core/react-popper\";\nimport { DismissableLayer } from \"@huin-core/react-dismissable-layer\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { usePortalContext } from \"./HoverCardPortal\";\nlet originalBodyUserSelect: string;\n\nconst CONTENT_NAME = \"HoverCardContent\";\n\ntype HoverCardContentElement = HoverCardContentImplElement;\ninterface HoverCardContentProps extends HoverCardContentImplProps {\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 HoverCardContent = React.forwardRef<\n HoverCardContentElement,\n HoverCardContentProps\n>((props: ScopedProps<HoverCardContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeHoverCard);\n const {\n forceMount = portalContext.forceMount,\n align = \"center\",\n ...contentProps\n } = props;\n const context = useHoverCardContext(CONTENT_NAME, props.__scopeHoverCard);\n return (\n <Presence present={forceMount || context.open}>\n <HoverCardContentImpl\n data-state={context.open ? \"open\" : \"closed\"}\n {...contentProps}\n onPointerEnter={composeEventHandlers(\n props.onPointerEnter,\n excludeTouch(context.onOpen)\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n excludeTouch(context.onClose)\n )}\n ref={forwardedRef}\n />\n </Presence>\n );\n});\n\nHoverCardContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype HoverCardContentImplElement = React.ElementRef<\n typeof PopperPrimitive.Content\n>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<\n typeof DismissableLayer\n>;\ntype PopperContentProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Content\n>;\ninterface HoverCardContentImplProps\n extends Omit<PopperContentProps, \"onPlaced\"> {\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: DismissableLayerProps[\"onEscapeKeyDown\"];\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `HoverCard`.\n * Can be prevented.\n */\n onPointerDownOutside?: DismissableLayerProps[\"onPointerDownOutside\"];\n /**\n * Event handler called when the focus moves outside of the `HoverCard`.\n * Can be prevented.\n */\n onFocusOutside?: DismissableLayerProps[\"onFocusOutside\"];\n /**\n * Event handler called when an interaction happens outside the `HoverCard`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n onInteractOutside?: DismissableLayerProps[\"onInteractOutside\"];\n}\n\nconst HoverCardContentImpl = React.forwardRef<\n HoverCardContentImplElement,\n HoverCardContentImplProps\n>((props: ScopedProps<HoverCardContentImplProps>, forwardedRef) => {\n const {\n __scopeHoverCard,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = useHoverCardContext(CONTENT_NAME, __scopeHoverCard);\n const popperScope = usePopperScope(__scopeHoverCard);\n const ref = React.useRef<HoverCardContentImplElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [containSelection, setContainSelection] = React.useState(false);\n\n React.useEffect(() => {\n if (containSelection) {\n const body = document.body;\n\n // Safari requires prefix\n originalBodyUserSelect =\n body.style.userSelect || body.style.webkitUserSelect;\n\n body.style.userSelect = \"none\";\n body.style.webkitUserSelect = \"none\";\n return () => {\n body.style.userSelect = originalBodyUserSelect;\n body.style.webkitUserSelect = originalBodyUserSelect;\n };\n }\n }, [containSelection]);\n\n React.useEffect(() => {\n if (ref.current) {\n const handlePointerUp = () => {\n setContainSelection(false);\n context.isPointerDownOnContentRef.current = false;\n\n // Delay a frame to ensure we always access the latest selection\n setTimeout(() => {\n const hasSelection = document.getSelection()?.toString() !== \"\";\n if (hasSelection) context.hasSelectionRef.current = true;\n });\n };\n\n document.addEventListener(\"pointerup\", handlePointerUp);\n return () => {\n document.removeEventListener(\"pointerup\", handlePointerUp);\n context.hasSelectionRef.current = false;\n context.isPointerDownOnContentRef.current = false;\n };\n }\n }, [context.isPointerDownOnContentRef, context.hasSelectionRef]);\n\n React.useEffect(() => {\n if (ref.current) {\n const tabbables = getTabbableNodes(ref.current);\n tabbables.forEach((tabbable) => tabbable.setAttribute(\"tabindex\", \"-1\"));\n }\n });\n\n return (\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={false}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={composeEventHandlers(onFocusOutside, (event) => {\n event.preventDefault();\n })}\n onDismiss={context.onDismiss}\n >\n <PopperPrimitive.Content\n {...popperScope}\n {...contentProps}\n onPointerDown={composeEventHandlers(\n contentProps.onPointerDown,\n (event) => {\n // Contain selection to current layer\n if (event.currentTarget.contains(event.target as HTMLElement)) {\n setContainSelection(true);\n }\n context.hasSelectionRef.current = false;\n context.isPointerDownOnContentRef.current = true;\n }\n )}\n ref={composedRefs}\n style={{\n ...contentProps.style,\n userSelect: containSelection ? \"text\" : undefined,\n // Safari requires prefix\n WebkitUserSelect: containSelection ? \"text\" : undefined,\n // re-namespace exposed content custom properties\n ...{\n \"--huin-core-hover-card-content-transform-origin\":\n \"var(--huin-core-popper-transform-origin)\",\n \"--huin-core-hover-card-content-available-width\":\n \"var(--huin-core-popper-available-width)\",\n \"--huin-core-hover-card-content-available-height\":\n \"var(--huin-core-popper-available-height)\",\n \"--huin-core-hover-card-trigger-width\":\n \"var(--huin-core-popper-anchor-width)\",\n \"--huin-core-hover-card-trigger-height\":\n \"var(--huin-core-popper-anchor-height)\",\n },\n }}\n />\n </DismissableLayer>\n );\n});\n\n/**\n * Returns a list of nodes that can be in the tab sequence.\n * @see: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n */\nfunction getTabbableNodes(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n return nodes;\n}\n\nexport { HoverCardContent };\nexport type { HoverCardContentProps };\n", "import * as PopperPrimitive from \"@huin-core/react-popper\";\nimport React from \"react\";\nimport { ScopedProps, usePopperScope } from \"./HoverCard\";\n\nconst ARROW_NAME = \"HoverCardArrow\";\n\ntype HoverCardArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = React.ComponentPropsWithoutRef<\n typeof PopperPrimitive.Arrow\n>;\ninterface HoverCardArrowProps extends PopperArrowProps {}\n\nconst HoverCardArrow = React.forwardRef<\n HoverCardArrowElement,\n HoverCardArrowProps\n>((props: ScopedProps<HoverCardArrowProps>, forwardedRef) => {\n const { __scopeHoverCard, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n return (\n <PopperPrimitive.Arrow\n {...popperScope}\n {...arrowProps}\n ref={forwardedRef}\n />\n );\n});\n\nHoverCardArrow.displayName = ARROW_NAME;\n\nexport { HoverCardArrow };\nexport type { HoverCardArrowProps };\n"],
5
+ "mappings": "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",
6
+ "names": ["Root", "React", "PopperPrimitive", "React", "React", "React", "Presence", "composeEventHandlers", "PopperPrimitive", "React", "Presence", "composeEventHandlers", "PopperPrimitive", "React", "React"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@huin-core/react-hover-card",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": {