@radix-ui/react-hover-card 0.1.6-rc.9 → 1.0.1-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
2
  import * as PopperPrimitive from "@radix-ui/react-popper";
3
+ import { Portal as _Portal1 } from "@radix-ui/react-portal";
3
4
  import * as Radix from "@radix-ui/react-primitive";
4
5
  import { Primitive } from "@radix-ui/react-primitive";
5
6
  import { DismissableLayer } from "@radix-ui/react-dismissable-layer";
@@ -17,6 +18,16 @@ type PrimitiveLinkProps = Radix.ComponentPropsWithoutRef<typeof Primitive.a>;
17
18
  export interface HoverCardTriggerProps extends PrimitiveLinkProps {
18
19
  }
19
20
  export const HoverCardTrigger: React.ForwardRefExoticComponent<HoverCardTriggerProps & React.RefAttributes<HTMLAnchorElement>>;
21
+ type PortalProps = React.ComponentPropsWithoutRef<typeof _Portal1>;
22
+ export interface HoverCardPortalProps extends Omit<PortalProps, 'asChild'> {
23
+ children?: React.ReactNode;
24
+ /**
25
+ * Used to force mounting when more control is needed. Useful when
26
+ * controlling animation with React animation libraries.
27
+ */
28
+ forceMount?: true;
29
+ }
30
+ export const HoverCardPortal: React.FC<HoverCardPortalProps>;
20
31
  export interface HoverCardContentProps extends HoverCardContentImplProps {
21
32
  /**
22
33
  * Used to force mounting when more control is needed. Useful when
@@ -49,11 +60,6 @@ interface HoverCardContentImplProps extends PopperContentProps {
49
60
  * Can be prevented.
50
61
  */
51
62
  onInteractOutside?: DismissableLayerProps['onInteractOutside'];
52
- /**
53
- * Whether the `HoverCard` should render in a `Portal`
54
- * (default: `true`)
55
- */
56
- portalled?: boolean;
57
63
  }
58
64
  type PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;
59
65
  export interface HoverCardArrowProps extends PopperArrowProps {
@@ -61,6 +67,7 @@ export interface HoverCardArrowProps extends PopperArrowProps {
61
67
  export const HoverCardArrow: React.ForwardRefExoticComponent<HoverCardArrowProps & React.RefAttributes<SVGSVGElement>>;
62
68
  export const Root: React.FC<HoverCardProps>;
63
69
  export const Trigger: React.ForwardRefExoticComponent<HoverCardTriggerProps & React.RefAttributes<HTMLAnchorElement>>;
70
+ export const Portal: React.FC<HoverCardPortalProps>;
64
71
  export const Content: React.ForwardRefExoticComponent<HoverCardContentProps & React.RefAttributes<HTMLDivElement>>;
65
72
  export const Arrow: React.ForwardRefExoticComponent<HoverCardArrowProps & React.RefAttributes<SVGSVGElement>>;
66
73
 
@@ -1 +1 @@
1
- {"mappings":";;;;;AAsBA,OAAA,2FAEE,CAAC;AAcH;IACE,QAAQ,CAAC,EAAE,MAAM,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,OAAA,MAAM,WAAW,MAAM,EAAE,CAAC,cAAc,CAoDvC,CAAC;AAWF,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;AAC7E,sCAAgC,SAAQ,kBAAkB;CAAG;AAE7D,OAAA,MAAM,iHAqBL,CAAC;AAWF,sCAAgC,SAAQ,yBAAyB;IAC/D;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED,OAAA,MAAM,8GAgBL,CAAC;AAOF,6BAA6B,MAAM,wBAAwB,CAAC,uBAAuB,CAAC,CAAC;AACrF,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,gBAAgB,OAAO,CAAC,CAAC;AACzF,mCAAoC,SAAQ,kBAAkB;IAC5D;;;OAGG;IACH,eAAe,CAAC,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IAC3D;;;OAGG;IACH,oBAAoB,CAAC,EAAE,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;IACrE;;;OAGG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IACzD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;IAC/D;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA8DD,wBAAwB,MAAM,wBAAwB,CAAC,OAAO,gBAAgB,KAAK,CAAC,CAAC;AACrF,oCAA8B,SAAQ,gBAAgB;CAAG;AAEzD,OAAA,MAAM,yGAML,CAAC;AA6BF,OAAA,MAAM,8BAAgB,CAAC;AACvB,OAAA,MAAM,wGAA0B,CAAC;AACjC,OAAA,MAAM,qGAA0B,CAAC;AACjC,OAAA,MAAM,gGAAsB,CAAC","sources":["packages/react/hover-card/src/packages/react/hover-card/src/HoverCard.tsx","packages/react/hover-card/src/packages/react/hover-card/src/index.ts","packages/react/hover-card/src/index.ts"],"sourcesContent":[null,null,"export * from './HoverCard';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
1
+ {"mappings":";;;;;;AAsBA,OAAA,2FAEE,CAAC;AAcH;IACE,QAAQ,CAAC,EAAE,MAAM,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,OAAA,MAAM,WAAW,MAAM,EAAE,CAAC,cAAc,CAoDvC,CAAC;AAWF,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;AAC7E,sCAAgC,SAAQ,kBAAkB;CAAG;AAE7D,OAAA,MAAM,iHAqBL,CAAC;AAeF,mBAAmB,MAAM,wBAAwB,CAAC,eAAsB,CAAC,CAAC;AAC1E,qCAA+B,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;IACjE,QAAQ,CAAC,EAAE,MAAM,SAAS,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED,OAAA,MAAM,iBAAiB,MAAM,EAAE,CAAC,oBAAoB,CAcnD,CAAC;AAWF,sCAAgC,SAAQ,yBAAyB;IAC/D;;;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED,OAAA,MAAM,8GAiBL,CAAC;AAOF,6BAA6B,MAAM,wBAAwB,CAAC,uBAAuB,CAAC,CAAC;AACrF,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,gBAAgB,OAAO,CAAC,CAAC;AACzF,mCAAoC,SAAQ,kBAAkB;IAC5D;;;OAGG;IACH,eAAe,CAAC,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IAC3D;;;OAGG;IACH,oBAAoB,CAAC,EAAE,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;IACrE;;;OAGG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IACzD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;CAChE;AA0DD,wBAAwB,MAAM,wBAAwB,CAAC,OAAO,gBAAgB,KAAK,CAAC,CAAC;AACrF,oCAA8B,SAAQ,gBAAgB;CAAG;AAEzD,OAAA,MAAM,yGAML,CAAC;AA6BF,OAAA,MAAM,8BAAgB,CAAC;AACvB,OAAA,MAAM,wGAA0B,CAAC;AACjC,OAAA,MAAM,sCAAwB,CAAC;AAC/B,OAAA,MAAM,qGAA0B,CAAC;AACjC,OAAA,MAAM,gGAAsB,CAAC","sources":["packages/react/hover-card/src/packages/react/hover-card/src/HoverCard.tsx","packages/react/hover-card/src/packages/react/hover-card/src/index.ts","packages/react/hover-card/src/index.ts"],"sourcesContent":[null,null,"export {\n createHoverCardScope,\n //\n HoverCard,\n HoverCardTrigger,\n HoverCardPortal,\n HoverCardContent,\n HoverCardArrow,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Arrow,\n} from './HoverCard';\nexport type {\n HoverCardProps,\n HoverCardTriggerProps,\n HoverCardPortalProps,\n HoverCardContentProps,\n HoverCardArrowProps,\n} from './HoverCard';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
package/dist/index.js CHANGED
@@ -10,39 +10,24 @@ var $eFX7w$radixuireactpresence = require("@radix-ui/react-presence");
10
10
  var $eFX7w$radixuireactprimitive = require("@radix-ui/react-primitive");
11
11
  var $eFX7w$radixuireactdismissablelayer = require("@radix-ui/react-dismissable-layer");
12
12
 
13
- function $parcel$exportWildcard(dest, source) {
14
- Object.keys(source).forEach(function(key) {
15
- if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {
16
- return;
17
- }
18
-
19
- Object.defineProperty(dest, key, {
20
- enumerable: true,
21
- get: function get() {
22
- return source[key];
23
- }
24
- });
25
- });
26
-
27
- return dest;
13
+ function $parcel$export(e, n, v, s) {
14
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
28
15
  }
29
16
  function $parcel$interopDefault(a) {
30
17
  return a && a.__esModule ? a.default : a;
31
18
  }
32
- function $parcel$export(e, n, v, s) {
33
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
34
- }
35
- var $e5715e9205c1e1fe$exports = {};
36
19
 
37
- $parcel$export($e5715e9205c1e1fe$exports, "createHoverCardScope", () => $e5715e9205c1e1fe$export$47b6998a836b7260);
38
- $parcel$export($e5715e9205c1e1fe$exports, "HoverCard", () => $e5715e9205c1e1fe$export$57a077cc9fbe653e);
39
- $parcel$export($e5715e9205c1e1fe$exports, "HoverCardTrigger", () => $e5715e9205c1e1fe$export$ef9f7fd8e4ba882f);
40
- $parcel$export($e5715e9205c1e1fe$exports, "HoverCardContent", () => $e5715e9205c1e1fe$export$aa4724a5938c586);
41
- $parcel$export($e5715e9205c1e1fe$exports, "HoverCardArrow", () => $e5715e9205c1e1fe$export$b9744d3e7456d806);
42
- $parcel$export($e5715e9205c1e1fe$exports, "Root", () => $e5715e9205c1e1fe$export$be92b6f5f03c0fe9);
43
- $parcel$export($e5715e9205c1e1fe$exports, "Trigger", () => $e5715e9205c1e1fe$export$41fb9f06171c75f4);
44
- $parcel$export($e5715e9205c1e1fe$exports, "Content", () => $e5715e9205c1e1fe$export$7c6e2c02157bb7d2);
45
- $parcel$export($e5715e9205c1e1fe$exports, "Arrow", () => $e5715e9205c1e1fe$export$21b07c8f274aebd5);
20
+ $parcel$export(module.exports, "createHoverCardScope", () => $e5715e9205c1e1fe$export$47b6998a836b7260);
21
+ $parcel$export(module.exports, "HoverCard", () => $e5715e9205c1e1fe$export$57a077cc9fbe653e);
22
+ $parcel$export(module.exports, "HoverCardTrigger", () => $e5715e9205c1e1fe$export$ef9f7fd8e4ba882f);
23
+ $parcel$export(module.exports, "HoverCardPortal", () => $e5715e9205c1e1fe$export$b384c6e0a789f88b);
24
+ $parcel$export(module.exports, "HoverCardContent", () => $e5715e9205c1e1fe$export$aa4724a5938c586);
25
+ $parcel$export(module.exports, "HoverCardArrow", () => $e5715e9205c1e1fe$export$b9744d3e7456d806);
26
+ $parcel$export(module.exports, "Root", () => $e5715e9205c1e1fe$export$be92b6f5f03c0fe9);
27
+ $parcel$export(module.exports, "Trigger", () => $e5715e9205c1e1fe$export$41fb9f06171c75f4);
28
+ $parcel$export(module.exports, "Portal", () => $e5715e9205c1e1fe$export$602eac185826482c);
29
+ $parcel$export(module.exports, "Content", () => $e5715e9205c1e1fe$export$7c6e2c02157bb7d2);
30
+ $parcel$export(module.exports, "Arrow", () => $e5715e9205c1e1fe$export$21b07c8f274aebd5);
46
31
 
47
32
 
48
33
 
@@ -136,11 +121,34 @@ const $e5715e9205c1e1fe$export$ef9f7fd8e4ba882f = /*#__PURE__*/ $eFX7w$react.for
136
121
  /*#__PURE__*/ Object.assign($e5715e9205c1e1fe$export$ef9f7fd8e4ba882f, {
137
122
  displayName: $e5715e9205c1e1fe$var$TRIGGER_NAME
138
123
  });
124
+ /* -------------------------------------------------------------------------------------------------
125
+ * HoverCardPortal
126
+ * -----------------------------------------------------------------------------------------------*/ const $e5715e9205c1e1fe$var$PORTAL_NAME = 'HoverCardPortal';
127
+ const [$e5715e9205c1e1fe$var$PortalProvider, $e5715e9205c1e1fe$var$usePortalContext] = $e5715e9205c1e1fe$var$createHoverCardContext($e5715e9205c1e1fe$var$PORTAL_NAME, {
128
+ forceMount: undefined
129
+ });
130
+ const $e5715e9205c1e1fe$export$b384c6e0a789f88b = (props)=>{
131
+ const { __scopeHoverCard: __scopeHoverCard , forceMount: forceMount , children: children , container: container } = props;
132
+ const context = $e5715e9205c1e1fe$var$useHoverCardContext($e5715e9205c1e1fe$var$PORTAL_NAME, __scopeHoverCard);
133
+ return /*#__PURE__*/ $eFX7w$react.createElement($e5715e9205c1e1fe$var$PortalProvider, {
134
+ scope: __scopeHoverCard,
135
+ forceMount: forceMount
136
+ }, /*#__PURE__*/ $eFX7w$react.createElement($eFX7w$radixuireactpresence.Presence, {
137
+ present: forceMount || context.open
138
+ }, /*#__PURE__*/ $eFX7w$react.createElement($eFX7w$radixuireactportal.Portal, {
139
+ asChild: true,
140
+ container: container
141
+ }, children)));
142
+ };
143
+ /*#__PURE__*/ Object.assign($e5715e9205c1e1fe$export$b384c6e0a789f88b, {
144
+ displayName: $e5715e9205c1e1fe$var$PORTAL_NAME
145
+ });
139
146
  /* -------------------------------------------------------------------------------------------------
140
147
  * HoverCardContent
141
148
  * -----------------------------------------------------------------------------------------------*/ const $e5715e9205c1e1fe$var$CONTENT_NAME = 'HoverCardContent';
142
149
  const $e5715e9205c1e1fe$export$aa4724a5938c586 = /*#__PURE__*/ $eFX7w$react.forwardRef((props, forwardedRef)=>{
143
- const { forceMount: forceMount , ...contentProps } = props;
150
+ const portalContext = $e5715e9205c1e1fe$var$usePortalContext($e5715e9205c1e1fe$var$CONTENT_NAME, props.__scopeHoverCard);
151
+ const { forceMount: forceMount = portalContext.forceMount , ...contentProps } = props;
144
152
  const context = $e5715e9205c1e1fe$var$useHoverCardContext($e5715e9205c1e1fe$var$CONTENT_NAME, props.__scopeHoverCard);
145
153
  return /*#__PURE__*/ $eFX7w$react.createElement($eFX7w$radixuireactpresence.Presence, {
146
154
  present: forceMount || context.open
@@ -156,12 +164,11 @@ const $e5715e9205c1e1fe$export$aa4724a5938c586 = /*#__PURE__*/ $eFX7w$react.forw
156
164
  displayName: $e5715e9205c1e1fe$var$CONTENT_NAME
157
165
  });
158
166
  /* ---------------------------------------------------------------------------------------------- */ const $e5715e9205c1e1fe$var$HoverCardContentImpl = /*#__PURE__*/ $eFX7w$react.forwardRef((props, forwardedRef)=>{
159
- const { __scopeHoverCard: __scopeHoverCard , portalled: portalled = true , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , ...contentProps } = props;
167
+ const { __scopeHoverCard: __scopeHoverCard , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , ...contentProps } = props;
160
168
  const context = $e5715e9205c1e1fe$var$useHoverCardContext($e5715e9205c1e1fe$var$CONTENT_NAME, __scopeHoverCard);
161
169
  const popperScope = $e5715e9205c1e1fe$var$usePopperScope(__scopeHoverCard);
162
170
  const ref = $eFX7w$react.useRef(null);
163
171
  const composedRefs = $eFX7w$radixuireactcomposerefs.useComposedRefs(forwardedRef, ref);
164
- const PortalWrapper = portalled ? $eFX7w$radixuireactportal.Portal : $eFX7w$react.Fragment;
165
172
  $eFX7w$react.useEffect(()=>{
166
173
  if (ref.current) {
167
174
  const tabbables = $e5715e9205c1e1fe$var$getTabbableNodes(ref.current);
@@ -169,7 +176,7 @@ const $e5715e9205c1e1fe$export$aa4724a5938c586 = /*#__PURE__*/ $eFX7w$react.forw
169
176
  );
170
177
  }
171
178
  });
172
- return /*#__PURE__*/ $eFX7w$react.createElement(PortalWrapper, null, /*#__PURE__*/ $eFX7w$react.createElement($eFX7w$radixuireactdismissablelayer.DismissableLayer, {
179
+ return /*#__PURE__*/ $eFX7w$react.createElement($eFX7w$radixuireactdismissablelayer.DismissableLayer, {
173
180
  asChild: true,
174
181
  disableOutsidePointerEvents: false,
175
182
  onInteractOutside: onInteractOutside,
@@ -184,7 +191,7 @@ const $e5715e9205c1e1fe$export$aa4724a5938c586 = /*#__PURE__*/ $eFX7w$react.forw
184
191
  // re-namespace exposed content custom property
185
192
  ['--radix-hover-card-content-transform-origin']: 'var(--radix-popper-transform-origin)'
186
193
  }
187
- }))));
194
+ })));
188
195
  });
189
196
  /* -------------------------------------------------------------------------------------------------
190
197
  * HoverCardArrow
@@ -221,11 +228,11 @@ const $e5715e9205c1e1fe$export$b9744d3e7456d806 = /*#__PURE__*/ $eFX7w$react.for
221
228
  }
222
229
  const $e5715e9205c1e1fe$export$be92b6f5f03c0fe9 = $e5715e9205c1e1fe$export$57a077cc9fbe653e;
223
230
  const $e5715e9205c1e1fe$export$41fb9f06171c75f4 = $e5715e9205c1e1fe$export$ef9f7fd8e4ba882f;
231
+ const $e5715e9205c1e1fe$export$602eac185826482c = $e5715e9205c1e1fe$export$b384c6e0a789f88b;
224
232
  const $e5715e9205c1e1fe$export$7c6e2c02157bb7d2 = $e5715e9205c1e1fe$export$aa4724a5938c586;
225
233
  const $e5715e9205c1e1fe$export$21b07c8f274aebd5 = $e5715e9205c1e1fe$export$b9744d3e7456d806;
226
234
 
227
235
 
228
- $parcel$exportWildcard(module.exports, $e5715e9205c1e1fe$exports);
229
236
 
230
237
 
231
238
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react/hover-card/src/index.ts","packages/react/hover-card/src/HoverCard.tsx"],"sourcesContent":["export * from './HoverCard';\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCard\n * -----------------------------------------------------------------------------------------------*/\n\nconst HOVERCARD_NAME = 'HoverCard';\n\ntype ScopedProps<P> = P & { __scopeHoverCard?: Scope };\nconst [createHoverCardContext, createHoverCardScope] = createContextScope(HOVERCARD_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype HoverCardContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpen(): void;\n onClose(): void;\n onDismiss(): void;\n};\n\nconst [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> = (props: ScopedProps<HoverCardProps>) => {\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\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 closeTimerRef.current = window.setTimeout(() => setOpen(false), closeDelay);\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 >\n <PopperPrimitive.Root {...popperScope}>{children}</PopperPrimitive.Root>\n </HoverCardProvider>\n );\n};\n\nHoverCard.displayName = HOVERCARD_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'HoverCardTrigger';\n\ntype HoverCardTriggerElement = React.ElementRef<typeof Primitive.a>;\ntype PrimitiveLinkProps = Radix.ComponentPropsWithoutRef<typeof Primitive.a>;\ninterface HoverCardTriggerProps extends PrimitiveLinkProps {}\n\nconst HoverCardTrigger = React.forwardRef<HoverCardTriggerElement, 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(props.onPointerEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose))}\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) => event.preventDefault())}\n />\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nHoverCardTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardContent\n * -----------------------------------------------------------------------------------------------*/\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<HoverCardContentElement, HoverCardContentProps>(\n (props: ScopedProps<HoverCardContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = 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(props.onPointerEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose))}\n ref={forwardedRef}\n />\n </Presence>\n );\n }\n);\n\nHoverCardContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype HoverCardContentImplElement = React.ElementRef<typeof PopperPrimitive.Content>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface HoverCardContentImplProps extends PopperContentProps {\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 * Whether the `HoverCard` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n}\n\nconst HoverCardContentImpl = React.forwardRef<\n HoverCardContentImplElement,\n HoverCardContentImplProps\n>((props: ScopedProps<HoverCardContentImplProps>, forwardedRef) => {\n const {\n __scopeHoverCard,\n portalled = true,\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 PortalWrapper = portalled ? Portal : React.Fragment;\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 <PortalWrapper>\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={false}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={onFocusOutside}\n onDismiss={context.onDismiss}\n >\n <PopperPrimitive.Content\n {...popperScope}\n {...contentProps}\n ref={composedRefs}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-hover-card-content-transform-origin' as any]:\n 'var(--radix-popper-transform-origin)',\n }}\n />\n </DismissableLayer>\n </PortalWrapper>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'HoverCardArrow';\n\ntype HoverCardArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface HoverCardArrowProps extends PopperArrowProps {}\n\nconst HoverCardArrow = React.forwardRef<HoverCardArrowElement, HoverCardArrowProps>(\n (props: ScopedProps<HoverCardArrowProps>, forwardedRef) => {\n const { __scopeHoverCard, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n return <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />;\n }\n);\n\nHoverCardArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction excludeTouch<E>(eventHandler: () => void) {\n return (event: React.PointerEvent<E>) =>\n event.pointerType === 'touch' ? undefined : eventHandler();\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 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n return nodes;\n}\n\nconst Root = HoverCard;\nconst Trigger = HoverCardTrigger;\nconst Content = HoverCardContent;\nconst Arrow = HoverCardArrow;\n\nexport {\n createHoverCardScope,\n //\n HoverCard,\n HoverCardTrigger,\n HoverCardContent,\n HoverCardArrow,\n //\n Root,\n Trigger,\n Content,\n Arrow,\n};\nexport type { HoverCardProps, HoverCardTriggerProps, HoverCardContentProps, HoverCardArrowProps };\n"],"names":["React","composeEventHandlers","createContextScope","useControllableState","useComposedRefs","PopperPrimitive","createPopperScope","Portal","Presence","Primitive","DismissableLayer","HOVERCARD_NAME","createHoverCardContext","createHoverCardScope","usePopperScope","HoverCardProvider","useHoverCardContext","HoverCard","props","__scopeHoverCard","children","open","openProp","defaultOpen","onOpenChange","openDelay","closeDelay","popperScope","openTimerRef","useRef","closeTimerRef","setOpen","prop","defaultProp","onChange","handleOpen","useCallback","clearTimeout","current","window","setTimeout","handleClose","handleDismiss","useEffect","TRIGGER_NAME","HoverCardTrigger","forwardRef","forwardedRef","triggerProps","context","onPointerEnter","excludeTouch","onOpen","onPointerLeave","onClose","onFocus","onBlur","onTouchStart","event","preventDefault","CONTENT_NAME","HoverCardContent","forceMount","contentProps","HoverCardContentImpl","portalled","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","ref","composedRefs","PortalWrapper","Fragment","tabbables","getTabbableNodes","forEach","tabbable","setAttribute","onDismiss","style","ARROW_NAME","HoverCardArrow","arrowProps","eventHandler","pointerType","undefined","container","nodes","walker","document","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","node","tabIndex","FILTER_ACCEPT","FILTER_SKIP","nextNode","push","currentNode","Root","Trigger","Content","Arrow"],"version":3,"file":"index.js.map"}
1
+ {"mappings":"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","sources":["packages/react/hover-card/src/index.ts","packages/react/hover-card/src/HoverCard.tsx"],"sourcesContent":["export {\n createHoverCardScope,\n //\n HoverCard,\n HoverCardTrigger,\n HoverCardPortal,\n HoverCardContent,\n HoverCardArrow,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Arrow,\n} from './HoverCard';\nexport type {\n HoverCardProps,\n HoverCardTriggerProps,\n HoverCardPortalProps,\n HoverCardContentProps,\n HoverCardArrowProps,\n} from './HoverCard';\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCard\n * -----------------------------------------------------------------------------------------------*/\n\nconst HOVERCARD_NAME = 'HoverCard';\n\ntype ScopedProps<P> = P & { __scopeHoverCard?: Scope };\nconst [createHoverCardContext, createHoverCardScope] = createContextScope(HOVERCARD_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype HoverCardContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpen(): void;\n onClose(): void;\n onDismiss(): void;\n};\n\nconst [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> = (props: ScopedProps<HoverCardProps>) => {\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\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 closeTimerRef.current = window.setTimeout(() => setOpen(false), closeDelay);\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 >\n <PopperPrimitive.Root {...popperScope}>{children}</PopperPrimitive.Root>\n </HoverCardProvider>\n );\n};\n\nHoverCard.displayName = HOVERCARD_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'HoverCardTrigger';\n\ntype HoverCardTriggerElement = React.ElementRef<typeof Primitive.a>;\ntype PrimitiveLinkProps = Radix.ComponentPropsWithoutRef<typeof Primitive.a>;\ninterface HoverCardTriggerProps extends PrimitiveLinkProps {}\n\nconst HoverCardTrigger = React.forwardRef<HoverCardTriggerElement, 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(props.onPointerEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose))}\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) => event.preventDefault())}\n />\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nHoverCardTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'HoverCardPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createHoverCardContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface HoverCardPortalProps extends Omit<PortalProps, 'asChild'> {\n children?: React.ReactNode;\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\n/* -------------------------------------------------------------------------------------------------\n * HoverCardContent\n * -----------------------------------------------------------------------------------------------*/\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<HoverCardContentElement, HoverCardContentProps>(\n (props: ScopedProps<HoverCardContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeHoverCard);\n const { forceMount = portalContext.forceMount, ...contentProps } = 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(props.onPointerEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose))}\n ref={forwardedRef}\n />\n </Presence>\n );\n }\n);\n\nHoverCardContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype HoverCardContentImplElement = React.ElementRef<typeof PopperPrimitive.Content>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface HoverCardContentImplProps extends PopperContentProps {\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\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={onFocusOutside}\n onDismiss={context.onDismiss}\n >\n <PopperPrimitive.Content\n {...popperScope}\n {...contentProps}\n ref={composedRefs}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-hover-card-content-transform-origin' as any]:\n 'var(--radix-popper-transform-origin)',\n }}\n />\n </DismissableLayer>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'HoverCardArrow';\n\ntype HoverCardArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface HoverCardArrowProps extends PopperArrowProps {}\n\nconst HoverCardArrow = React.forwardRef<HoverCardArrowElement, HoverCardArrowProps>(\n (props: ScopedProps<HoverCardArrowProps>, forwardedRef) => {\n const { __scopeHoverCard, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n return <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />;\n }\n);\n\nHoverCardArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction excludeTouch<E>(eventHandler: () => void) {\n return (event: React.PointerEvent<E>) =>\n event.pointerType === 'touch' ? undefined : eventHandler();\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 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n return nodes;\n}\n\nconst Root = HoverCard;\nconst Trigger = HoverCardTrigger;\nconst Portal = HoverCardPortal;\nconst Content = HoverCardContent;\nconst Arrow = HoverCardArrow;\n\nexport {\n createHoverCardScope,\n //\n HoverCard,\n HoverCardTrigger,\n HoverCardPortal,\n HoverCardContent,\n HoverCardArrow,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Arrow,\n};\nexport type {\n HoverCardProps,\n HoverCardTriggerProps,\n HoverCardPortalProps,\n HoverCardContentProps,\n HoverCardArrowProps,\n};\n"],"names":["createHoverCardScope","HoverCard","HoverCardTrigger","HoverCardPortal","HoverCardContent","HoverCardArrow","Root","Trigger","Portal","Content","Arrow","React","composeEventHandlers","createContextScope","useControllableState","useComposedRefs","PopperPrimitive","createPopperScope","PortalPrimitive","Presence","Primitive","DismissableLayer","HOVERCARD_NAME","createHoverCardContext","usePopperScope","HoverCardProvider","useHoverCardContext","props","__scopeHoverCard","children","open","openProp","defaultOpen","onOpenChange","openDelay","closeDelay","popperScope","openTimerRef","useRef","closeTimerRef","setOpen","prop","defaultProp","onChange","handleOpen","useCallback","clearTimeout","current","window","setTimeout","handleClose","handleDismiss","useEffect","TRIGGER_NAME","forwardRef","forwardedRef","triggerProps","context","onPointerEnter","excludeTouch","onOpen","onPointerLeave","onClose","onFocus","onBlur","onTouchStart","event","preventDefault","PORTAL_NAME","PortalProvider","usePortalContext","forceMount","undefined","container","CONTENT_NAME","portalContext","contentProps","HoverCardContentImpl","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","ref","composedRefs","tabbables","getTabbableNodes","forEach","tabbable","setAttribute","onDismiss","style","ARROW_NAME","arrowProps","eventHandler","pointerType","nodes","walker","document","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","node","tabIndex","FILTER_ACCEPT","FILTER_SKIP","nextNode","push","currentNode"],"version":3,"file":"index.js.map"}
@@ -1,5 +1,5 @@
1
1
  import $eRSIW$babelruntimehelpersesmextends from "@babel/runtime/helpers/esm/extends";
2
- import {useRef as $eRSIW$useRef, useCallback as $eRSIW$useCallback, useEffect as $eRSIW$useEffect, createElement as $eRSIW$createElement, forwardRef as $eRSIW$forwardRef, Fragment as $eRSIW$Fragment} from "react";
2
+ import {useRef as $eRSIW$useRef, useCallback as $eRSIW$useCallback, useEffect as $eRSIW$useEffect, createElement as $eRSIW$createElement, forwardRef as $eRSIW$forwardRef} from "react";
3
3
  import {composeEventHandlers as $eRSIW$composeEventHandlers} from "@radix-ui/primitive";
4
4
  import {createContextScope as $eRSIW$createContextScope} from "@radix-ui/react-context";
5
5
  import {useControllableState as $eRSIW$useControllableState} from "@radix-ui/react-use-controllable-state";
@@ -10,20 +10,6 @@ import {Presence as $eRSIW$Presence} from "@radix-ui/react-presence";
10
10
  import {Primitive as $eRSIW$Primitive} from "@radix-ui/react-primitive";
11
11
  import {DismissableLayer as $eRSIW$DismissableLayer} from "@radix-ui/react-dismissable-layer";
12
12
 
13
- function $parcel$export(e, n, v, s) {
14
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
15
- }
16
- var $cef8881cdc69808e$exports = {};
17
-
18
- $parcel$export($cef8881cdc69808e$exports, "createHoverCardScope", () => $cef8881cdc69808e$export$47b6998a836b7260);
19
- $parcel$export($cef8881cdc69808e$exports, "HoverCard", () => $cef8881cdc69808e$export$57a077cc9fbe653e);
20
- $parcel$export($cef8881cdc69808e$exports, "HoverCardTrigger", () => $cef8881cdc69808e$export$ef9f7fd8e4ba882f);
21
- $parcel$export($cef8881cdc69808e$exports, "HoverCardContent", () => $cef8881cdc69808e$export$aa4724a5938c586);
22
- $parcel$export($cef8881cdc69808e$exports, "HoverCardArrow", () => $cef8881cdc69808e$export$b9744d3e7456d806);
23
- $parcel$export($cef8881cdc69808e$exports, "Root", () => $cef8881cdc69808e$export$be92b6f5f03c0fe9);
24
- $parcel$export($cef8881cdc69808e$exports, "Trigger", () => $cef8881cdc69808e$export$41fb9f06171c75f4);
25
- $parcel$export($cef8881cdc69808e$exports, "Content", () => $cef8881cdc69808e$export$7c6e2c02157bb7d2);
26
- $parcel$export($cef8881cdc69808e$exports, "Arrow", () => $cef8881cdc69808e$export$21b07c8f274aebd5);
27
13
 
28
14
 
29
15
 
@@ -117,11 +103,34 @@ const $cef8881cdc69808e$export$ef9f7fd8e4ba882f = /*#__PURE__*/ $eRSIW$forwardRe
117
103
  /*#__PURE__*/ Object.assign($cef8881cdc69808e$export$ef9f7fd8e4ba882f, {
118
104
  displayName: $cef8881cdc69808e$var$TRIGGER_NAME
119
105
  });
106
+ /* -------------------------------------------------------------------------------------------------
107
+ * HoverCardPortal
108
+ * -----------------------------------------------------------------------------------------------*/ const $cef8881cdc69808e$var$PORTAL_NAME = 'HoverCardPortal';
109
+ const [$cef8881cdc69808e$var$PortalProvider, $cef8881cdc69808e$var$usePortalContext] = $cef8881cdc69808e$var$createHoverCardContext($cef8881cdc69808e$var$PORTAL_NAME, {
110
+ forceMount: undefined
111
+ });
112
+ const $cef8881cdc69808e$export$b384c6e0a789f88b = (props)=>{
113
+ const { __scopeHoverCard: __scopeHoverCard , forceMount: forceMount , children: children , container: container } = props;
114
+ const context = $cef8881cdc69808e$var$useHoverCardContext($cef8881cdc69808e$var$PORTAL_NAME, __scopeHoverCard);
115
+ return /*#__PURE__*/ $eRSIW$createElement($cef8881cdc69808e$var$PortalProvider, {
116
+ scope: __scopeHoverCard,
117
+ forceMount: forceMount
118
+ }, /*#__PURE__*/ $eRSIW$createElement($eRSIW$Presence, {
119
+ present: forceMount || context.open
120
+ }, /*#__PURE__*/ $eRSIW$createElement($eRSIW$Portal, {
121
+ asChild: true,
122
+ container: container
123
+ }, children)));
124
+ };
125
+ /*#__PURE__*/ Object.assign($cef8881cdc69808e$export$b384c6e0a789f88b, {
126
+ displayName: $cef8881cdc69808e$var$PORTAL_NAME
127
+ });
120
128
  /* -------------------------------------------------------------------------------------------------
121
129
  * HoverCardContent
122
130
  * -----------------------------------------------------------------------------------------------*/ const $cef8881cdc69808e$var$CONTENT_NAME = 'HoverCardContent';
123
131
  const $cef8881cdc69808e$export$aa4724a5938c586 = /*#__PURE__*/ $eRSIW$forwardRef((props, forwardedRef)=>{
124
- const { forceMount: forceMount , ...contentProps } = props;
132
+ const portalContext = $cef8881cdc69808e$var$usePortalContext($cef8881cdc69808e$var$CONTENT_NAME, props.__scopeHoverCard);
133
+ const { forceMount: forceMount = portalContext.forceMount , ...contentProps } = props;
125
134
  const context = $cef8881cdc69808e$var$useHoverCardContext($cef8881cdc69808e$var$CONTENT_NAME, props.__scopeHoverCard);
126
135
  return /*#__PURE__*/ $eRSIW$createElement($eRSIW$Presence, {
127
136
  present: forceMount || context.open
@@ -137,12 +146,11 @@ const $cef8881cdc69808e$export$aa4724a5938c586 = /*#__PURE__*/ $eRSIW$forwardRef
137
146
  displayName: $cef8881cdc69808e$var$CONTENT_NAME
138
147
  });
139
148
  /* ---------------------------------------------------------------------------------------------- */ const $cef8881cdc69808e$var$HoverCardContentImpl = /*#__PURE__*/ $eRSIW$forwardRef((props, forwardedRef)=>{
140
- const { __scopeHoverCard: __scopeHoverCard , portalled: portalled = true , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , ...contentProps } = props;
149
+ const { __scopeHoverCard: __scopeHoverCard , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , onFocusOutside: onFocusOutside , onInteractOutside: onInteractOutside , ...contentProps } = props;
141
150
  const context = $cef8881cdc69808e$var$useHoverCardContext($cef8881cdc69808e$var$CONTENT_NAME, __scopeHoverCard);
142
151
  const popperScope = $cef8881cdc69808e$var$usePopperScope(__scopeHoverCard);
143
152
  const ref = $eRSIW$useRef(null);
144
153
  const composedRefs = $eRSIW$useComposedRefs(forwardedRef, ref);
145
- const PortalWrapper = portalled ? $eRSIW$Portal : $eRSIW$Fragment;
146
154
  $eRSIW$useEffect(()=>{
147
155
  if (ref.current) {
148
156
  const tabbables = $cef8881cdc69808e$var$getTabbableNodes(ref.current);
@@ -150,7 +158,7 @@ const $cef8881cdc69808e$export$aa4724a5938c586 = /*#__PURE__*/ $eRSIW$forwardRef
150
158
  );
151
159
  }
152
160
  });
153
- return /*#__PURE__*/ $eRSIW$createElement(PortalWrapper, null, /*#__PURE__*/ $eRSIW$createElement($eRSIW$DismissableLayer, {
161
+ return /*#__PURE__*/ $eRSIW$createElement($eRSIW$DismissableLayer, {
154
162
  asChild: true,
155
163
  disableOutsidePointerEvents: false,
156
164
  onInteractOutside: onInteractOutside,
@@ -165,7 +173,7 @@ const $cef8881cdc69808e$export$aa4724a5938c586 = /*#__PURE__*/ $eRSIW$forwardRef
165
173
  // re-namespace exposed content custom property
166
174
  ['--radix-hover-card-content-transform-origin']: 'var(--radix-popper-transform-origin)'
167
175
  }
168
- }))));
176
+ })));
169
177
  });
170
178
  /* -------------------------------------------------------------------------------------------------
171
179
  * HoverCardArrow
@@ -202,11 +210,12 @@ const $cef8881cdc69808e$export$b9744d3e7456d806 = /*#__PURE__*/ $eRSIW$forwardRe
202
210
  }
203
211
  const $cef8881cdc69808e$export$be92b6f5f03c0fe9 = $cef8881cdc69808e$export$57a077cc9fbe653e;
204
212
  const $cef8881cdc69808e$export$41fb9f06171c75f4 = $cef8881cdc69808e$export$ef9f7fd8e4ba882f;
213
+ const $cef8881cdc69808e$export$602eac185826482c = $cef8881cdc69808e$export$b384c6e0a789f88b;
205
214
  const $cef8881cdc69808e$export$7c6e2c02157bb7d2 = $cef8881cdc69808e$export$aa4724a5938c586;
206
215
  const $cef8881cdc69808e$export$21b07c8f274aebd5 = $cef8881cdc69808e$export$b9744d3e7456d806;
207
216
 
208
217
 
209
218
 
210
219
 
211
- export {$cef8881cdc69808e$export$47b6998a836b7260 as createHoverCardScope, $cef8881cdc69808e$export$57a077cc9fbe653e as HoverCard, $cef8881cdc69808e$export$ef9f7fd8e4ba882f as HoverCardTrigger, $cef8881cdc69808e$export$aa4724a5938c586 as HoverCardContent, $cef8881cdc69808e$export$b9744d3e7456d806 as HoverCardArrow, $cef8881cdc69808e$export$be92b6f5f03c0fe9 as Root, $cef8881cdc69808e$export$41fb9f06171c75f4 as Trigger, $cef8881cdc69808e$export$7c6e2c02157bb7d2 as Content, $cef8881cdc69808e$export$21b07c8f274aebd5 as Arrow};
220
+ export {$cef8881cdc69808e$export$47b6998a836b7260 as createHoverCardScope, $cef8881cdc69808e$export$57a077cc9fbe653e as HoverCard, $cef8881cdc69808e$export$ef9f7fd8e4ba882f as HoverCardTrigger, $cef8881cdc69808e$export$b384c6e0a789f88b as HoverCardPortal, $cef8881cdc69808e$export$aa4724a5938c586 as HoverCardContent, $cef8881cdc69808e$export$b9744d3e7456d806 as HoverCardArrow, $cef8881cdc69808e$export$be92b6f5f03c0fe9 as Root, $cef8881cdc69808e$export$41fb9f06171c75f4 as Trigger, $cef8881cdc69808e$export$602eac185826482c as Portal, $cef8881cdc69808e$export$7c6e2c02157bb7d2 as Content, $cef8881cdc69808e$export$21b07c8f274aebd5 as Arrow};
212
221
  //# sourceMappingURL=index.module.js.map
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react/hover-card/src/index.ts","packages/react/hover-card/src/HoverCard.tsx"],"sourcesContent":["export * from './HoverCard';\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCard\n * -----------------------------------------------------------------------------------------------*/\n\nconst HOVERCARD_NAME = 'HoverCard';\n\ntype ScopedProps<P> = P & { __scopeHoverCard?: Scope };\nconst [createHoverCardContext, createHoverCardScope] = createContextScope(HOVERCARD_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype HoverCardContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpen(): void;\n onClose(): void;\n onDismiss(): void;\n};\n\nconst [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> = (props: ScopedProps<HoverCardProps>) => {\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\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 closeTimerRef.current = window.setTimeout(() => setOpen(false), closeDelay);\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 >\n <PopperPrimitive.Root {...popperScope}>{children}</PopperPrimitive.Root>\n </HoverCardProvider>\n );\n};\n\nHoverCard.displayName = HOVERCARD_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'HoverCardTrigger';\n\ntype HoverCardTriggerElement = React.ElementRef<typeof Primitive.a>;\ntype PrimitiveLinkProps = Radix.ComponentPropsWithoutRef<typeof Primitive.a>;\ninterface HoverCardTriggerProps extends PrimitiveLinkProps {}\n\nconst HoverCardTrigger = React.forwardRef<HoverCardTriggerElement, 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(props.onPointerEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose))}\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) => event.preventDefault())}\n />\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nHoverCardTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardContent\n * -----------------------------------------------------------------------------------------------*/\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<HoverCardContentElement, HoverCardContentProps>(\n (props: ScopedProps<HoverCardContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = 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(props.onPointerEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose))}\n ref={forwardedRef}\n />\n </Presence>\n );\n }\n);\n\nHoverCardContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype HoverCardContentImplElement = React.ElementRef<typeof PopperPrimitive.Content>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface HoverCardContentImplProps extends PopperContentProps {\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 * Whether the `HoverCard` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n}\n\nconst HoverCardContentImpl = React.forwardRef<\n HoverCardContentImplElement,\n HoverCardContentImplProps\n>((props: ScopedProps<HoverCardContentImplProps>, forwardedRef) => {\n const {\n __scopeHoverCard,\n portalled = true,\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 PortalWrapper = portalled ? Portal : React.Fragment;\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 <PortalWrapper>\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={false}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={onFocusOutside}\n onDismiss={context.onDismiss}\n >\n <PopperPrimitive.Content\n {...popperScope}\n {...contentProps}\n ref={composedRefs}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-hover-card-content-transform-origin' as any]:\n 'var(--radix-popper-transform-origin)',\n }}\n />\n </DismissableLayer>\n </PortalWrapper>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'HoverCardArrow';\n\ntype HoverCardArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface HoverCardArrowProps extends PopperArrowProps {}\n\nconst HoverCardArrow = React.forwardRef<HoverCardArrowElement, HoverCardArrowProps>(\n (props: ScopedProps<HoverCardArrowProps>, forwardedRef) => {\n const { __scopeHoverCard, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n return <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />;\n }\n);\n\nHoverCardArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction excludeTouch<E>(eventHandler: () => void) {\n return (event: React.PointerEvent<E>) =>\n event.pointerType === 'touch' ? undefined : eventHandler();\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 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n return nodes;\n}\n\nconst Root = HoverCard;\nconst Trigger = HoverCardTrigger;\nconst Content = HoverCardContent;\nconst Arrow = HoverCardArrow;\n\nexport {\n createHoverCardScope,\n //\n HoverCard,\n HoverCardTrigger,\n HoverCardContent,\n HoverCardArrow,\n //\n Root,\n Trigger,\n Content,\n Arrow,\n};\nexport type { HoverCardProps, HoverCardTriggerProps, HoverCardContentProps, HoverCardArrowProps };\n"],"names":["React","composeEventHandlers","createContextScope","useControllableState","useComposedRefs","PopperPrimitive","createPopperScope","Portal","Presence","Primitive","DismissableLayer","HOVERCARD_NAME","createHoverCardContext","createHoverCardScope","usePopperScope","HoverCardProvider","useHoverCardContext","HoverCard","props","__scopeHoverCard","children","open","openProp","defaultOpen","onOpenChange","openDelay","closeDelay","popperScope","openTimerRef","useRef","closeTimerRef","setOpen","prop","defaultProp","onChange","handleOpen","useCallback","clearTimeout","current","window","setTimeout","handleClose","handleDismiss","useEffect","TRIGGER_NAME","HoverCardTrigger","forwardRef","forwardedRef","triggerProps","context","onPointerEnter","excludeTouch","onOpen","onPointerLeave","onClose","onFocus","onBlur","onTouchStart","event","preventDefault","CONTENT_NAME","HoverCardContent","forceMount","contentProps","HoverCardContentImpl","portalled","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","ref","composedRefs","PortalWrapper","Fragment","tabbables","getTabbableNodes","forEach","tabbable","setAttribute","onDismiss","style","ARROW_NAME","HoverCardArrow","arrowProps","eventHandler","pointerType","undefined","container","nodes","walker","document","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","node","tabIndex","FILTER_ACCEPT","FILTER_SKIP","nextNode","push","currentNode","Root","Trigger","Content","Arrow"],"version":3,"file":"index.module.js.map"}
1
+ {"mappings":"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","sources":["packages/react/hover-card/src/index.ts","packages/react/hover-card/src/HoverCard.tsx"],"sourcesContent":["export {\n createHoverCardScope,\n //\n HoverCard,\n HoverCardTrigger,\n HoverCardPortal,\n HoverCardContent,\n HoverCardArrow,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Arrow,\n} from './HoverCard';\nexport type {\n HoverCardProps,\n HoverCardTriggerProps,\n HoverCardPortalProps,\n HoverCardContentProps,\n HoverCardArrowProps,\n} from './HoverCard';\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCard\n * -----------------------------------------------------------------------------------------------*/\n\nconst HOVERCARD_NAME = 'HoverCard';\n\ntype ScopedProps<P> = P & { __scopeHoverCard?: Scope };\nconst [createHoverCardContext, createHoverCardScope] = createContextScope(HOVERCARD_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype HoverCardContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpen(): void;\n onClose(): void;\n onDismiss(): void;\n};\n\nconst [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> = (props: ScopedProps<HoverCardProps>) => {\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\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 closeTimerRef.current = window.setTimeout(() => setOpen(false), closeDelay);\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 >\n <PopperPrimitive.Root {...popperScope}>{children}</PopperPrimitive.Root>\n </HoverCardProvider>\n );\n};\n\nHoverCard.displayName = HOVERCARD_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'HoverCardTrigger';\n\ntype HoverCardTriggerElement = React.ElementRef<typeof Primitive.a>;\ntype PrimitiveLinkProps = Radix.ComponentPropsWithoutRef<typeof Primitive.a>;\ninterface HoverCardTriggerProps extends PrimitiveLinkProps {}\n\nconst HoverCardTrigger = React.forwardRef<HoverCardTriggerElement, 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(props.onPointerEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose))}\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) => event.preventDefault())}\n />\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nHoverCardTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'HoverCardPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createHoverCardContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface HoverCardPortalProps extends Omit<PortalProps, 'asChild'> {\n children?: React.ReactNode;\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\n/* -------------------------------------------------------------------------------------------------\n * HoverCardContent\n * -----------------------------------------------------------------------------------------------*/\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<HoverCardContentElement, HoverCardContentProps>(\n (props: ScopedProps<HoverCardContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeHoverCard);\n const { forceMount = portalContext.forceMount, ...contentProps } = 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(props.onPointerEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose))}\n ref={forwardedRef}\n />\n </Presence>\n );\n }\n);\n\nHoverCardContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype HoverCardContentImplElement = React.ElementRef<typeof PopperPrimitive.Content>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface HoverCardContentImplProps extends PopperContentProps {\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\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={onFocusOutside}\n onDismiss={context.onDismiss}\n >\n <PopperPrimitive.Content\n {...popperScope}\n {...contentProps}\n ref={composedRefs}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-hover-card-content-transform-origin' as any]:\n 'var(--radix-popper-transform-origin)',\n }}\n />\n </DismissableLayer>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'HoverCardArrow';\n\ntype HoverCardArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface HoverCardArrowProps extends PopperArrowProps {}\n\nconst HoverCardArrow = React.forwardRef<HoverCardArrowElement, HoverCardArrowProps>(\n (props: ScopedProps<HoverCardArrowProps>, forwardedRef) => {\n const { __scopeHoverCard, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeHoverCard);\n return <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />;\n }\n);\n\nHoverCardArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction excludeTouch<E>(eventHandler: () => void) {\n return (event: React.PointerEvent<E>) =>\n event.pointerType === 'touch' ? undefined : eventHandler();\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 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n return nodes;\n}\n\nconst Root = HoverCard;\nconst Trigger = HoverCardTrigger;\nconst Portal = HoverCardPortal;\nconst Content = HoverCardContent;\nconst Arrow = HoverCardArrow;\n\nexport {\n createHoverCardScope,\n //\n HoverCard,\n HoverCardTrigger,\n HoverCardPortal,\n HoverCardContent,\n HoverCardArrow,\n //\n Root,\n Trigger,\n Portal,\n Content,\n Arrow,\n};\nexport type {\n HoverCardProps,\n HoverCardTriggerProps,\n HoverCardPortalProps,\n HoverCardContentProps,\n HoverCardArrowProps,\n};\n"],"names":["createHoverCardScope","HoverCard","HoverCardTrigger","HoverCardPortal","HoverCardContent","HoverCardArrow","Root","Trigger","Portal","Content","Arrow","React","composeEventHandlers","createContextScope","useControllableState","useComposedRefs","PopperPrimitive","createPopperScope","PortalPrimitive","Presence","Primitive","DismissableLayer","HOVERCARD_NAME","createHoverCardContext","usePopperScope","HoverCardProvider","useHoverCardContext","props","__scopeHoverCard","children","open","openProp","defaultOpen","onOpenChange","openDelay","closeDelay","popperScope","openTimerRef","useRef","closeTimerRef","setOpen","prop","defaultProp","onChange","handleOpen","useCallback","clearTimeout","current","window","setTimeout","handleClose","handleDismiss","useEffect","TRIGGER_NAME","forwardRef","forwardedRef","triggerProps","context","onPointerEnter","excludeTouch","onOpen","onPointerLeave","onClose","onFocus","onBlur","onTouchStart","event","preventDefault","PORTAL_NAME","PortalProvider","usePortalContext","forceMount","undefined","container","CONTENT_NAME","portalContext","contentProps","HoverCardContentImpl","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","ref","composedRefs","tabbables","getTabbableNodes","forEach","tabbable","setAttribute","onDismiss","style","ARROW_NAME","arrowProps","eventHandler","pointerType","nodes","walker","document","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","node","tabIndex","FILTER_ACCEPT","FILTER_SKIP","nextNode","push","currentNode"],"version":3,"file":"index.module.js.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@radix-ui/react-hover-card",
3
- "version": "0.1.6-rc.9",
3
+ "version": "1.0.1-rc.1",
4
4
  "license": "MIT",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
@@ -17,15 +17,15 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@babel/runtime": "^7.13.10",
20
- "@radix-ui/primitive": "0.1.0",
21
- "@radix-ui/react-compose-refs": "0.1.1-rc.9",
22
- "@radix-ui/react-context": "0.1.2-rc.9",
23
- "@radix-ui/react-dismissable-layer": "0.1.6-rc.9",
24
- "@radix-ui/react-popper": "0.1.5-rc.9",
25
- "@radix-ui/react-portal": "0.1.5-rc.9",
26
- "@radix-ui/react-presence": "0.1.3-rc.9",
27
- "@radix-ui/react-primitive": "0.1.5-rc.9",
28
- "@radix-ui/react-use-controllable-state": "0.1.1-rc.9"
20
+ "@radix-ui/primitive": "1.0.0",
21
+ "@radix-ui/react-compose-refs": "1.0.0",
22
+ "@radix-ui/react-context": "1.0.0",
23
+ "@radix-ui/react-dismissable-layer": "1.0.1-rc.1",
24
+ "@radix-ui/react-popper": "1.0.0",
25
+ "@radix-ui/react-portal": "1.0.0",
26
+ "@radix-ui/react-presence": "1.0.0",
27
+ "@radix-ui/react-primitive": "1.0.0",
28
+ "@radix-ui/react-use-controllable-state": "1.0.0"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "react": "^16.8 || ^17.0 || ^18.0",
@@ -39,5 +39,5 @@
39
39
  "bugs": {
40
40
  "url": "https://github.com/radix-ui/primitives/issues"
41
41
  },
42
- "stableVersion": "0.1.5"
42
+ "stableVersion": "1.0.0"
43
43
  }