@radix-ui/react-hover-card 0.1.6-rc.2 → 0.1.6-rc.5

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.
@@ -1 +1 @@
1
- {"mappings":"A;A;A;A;A;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;A;A;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;A;A;OAGG;IACH,eAAe,CAAC,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;IAC3D;A;A;OAGG;IACH,oBAAoB,CAAC,EAAE,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;IACrE;A;A;OAGG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IACzD;A;A;A;OAIG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;IAC/D;A;A;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"],"sourcesContent":[null,null],"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;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"}
package/dist/index.js CHANGED
@@ -1,2 +1,231 @@
1
- var e,r=require("@radix-ui/react-dismissable-layer").DismissableLayer,o=require("@radix-ui/react-primitive").Primitive,t=require("@radix-ui/react-presence").Presence,n=require("@radix-ui/react-portal").Portal,a=require("@radix-ui/react-popper"),s=C({},a),c=a.createPopperScope,i=require("@radix-ui/react-compose-refs").useComposedRefs,u=require("@radix-ui/react-use-controllable-state").useControllableState,d=require("@radix-ui/react-context").createContextScope,l=require("@radix-ui/primitive").composeEventHandlers,p=C({},require("react")),f=(e=require("@babel/runtime/helpers/extends"))&&e.__esModule?e.default:e;function C(e,r){return Object.keys(r).forEach((function(o){"default"!==o&&"__esModule"!==o&&Object.defineProperty(e,o,{enumerable:!0,get:function(){return r[o]}})})),e}const[m,v]=d("HoverCard",[c]);exports.createHoverCardScope=v;const E=c(),[x,P]=m("HoverCard"),H=e=>{const{__scopeHoverCard:r,children:o,open:t,defaultOpen:n,onOpenChange:a,openDelay:c=700,closeDelay:i=300}=e,d=E(r),l=p.useRef(0),f=p.useRef(0),[C=!1,m]=u({prop:t,defaultProp:n,onChange:a}),v=p.useCallback((()=>{clearTimeout(f.current),l.current=window.setTimeout((()=>m(!0)),c)}),[c,m]),P=p.useCallback((()=>{clearTimeout(l.current),f.current=window.setTimeout((()=>m(!1)),i)}),[i,m]),H=p.useCallback((()=>m(!1)),[m]);return p.useEffect((()=>()=>{clearTimeout(l.current),clearTimeout(f.current)}),[]),/*#__PURE__*/p.createElement(x,{scope:r,open:C,onOpenChange:m,onOpen:v,onClose:P,onDismiss:H},/*#__PURE__*/p.createElement(s.Root,d,o))};exports.HoverCard=H;const O=/*#__PURE__*/p.forwardRef(((e,r)=>{const{__scopeHoverCard:t,...n}=e,a=P("HoverCardTrigger",t),c=E(t);/*#__PURE__*/return p.createElement(s.Anchor,f({asChild:!0},c),/*#__PURE__*/p.createElement(o.a,f({"data-state":a.open?"open":"closed"},n,{ref:r,onPointerEnter:l(e.onPointerEnter,h(a.onOpen)),onPointerLeave:l(e.onPointerLeave,h(a.onClose)),onFocus:l(e.onFocus,a.onOpen),onBlur:l(e.onBlur,a.onClose),onTouchStart:l(e.onTouchStart,(e=>e.preventDefault()))})))}));exports.HoverCardTrigger=O;const T=/*#__PURE__*/p.forwardRef(((e,r)=>{const{forceMount:o,...n}=e,a=P("HoverCardContent",e.__scopeHoverCard);/*#__PURE__*/return p.createElement(t,{present:o||a.open},/*#__PURE__*/p.createElement(_,f({"data-state":a.open?"open":"closed"},n,{onPointerEnter:l(e.onPointerEnter,h(a.onOpen)),onPointerLeave:l(e.onPointerLeave,h(a.onClose)),ref:r})))}));exports.HoverCardContent=T;const _=/*#__PURE__*/p.forwardRef(((e,o)=>{const{__scopeHoverCard:t,portalled:a=!0,onEscapeKeyDown:c,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:l,...C}=e,m=P("HoverCardContent",t),v=E(t),x=p.useRef(null),H=i(o,x),O=a?n:p.Fragment;return p.useEffect((()=>{if(x.current){(function(e){const r=[],o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;o.nextNode();)r.push(o.currentNode);return r})(x.current).forEach((e=>e.setAttribute("tabindex","-1")))}})),/*#__PURE__*/p.createElement(O,null,/*#__PURE__*/p.createElement(r,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:l,onEscapeKeyDown:c,onPointerDownOutside:u,onFocusOutside:d,onDismiss:m.onDismiss},/*#__PURE__*/p.createElement(s.Content,f({},v,C,{ref:H,style:{...C.style,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)"}}))))})),b=/*#__PURE__*/p.forwardRef(((e,r)=>{const{__scopeHoverCard:o,...t}=e,n=E(o);/*#__PURE__*/return p.createElement(s.Arrow,f({},n,t,{ref:r}))}));function h(e){return r=>"touch"===r.pointerType?void 0:e()}exports.HoverCardArrow=b;const w=H;exports.Root=w;const g=O;exports.Trigger=g;const R=T;exports.Content=R;const q=b;exports.Arrow=q;
1
+ var $eFX7w$babelruntimehelpersextends = require("@babel/runtime/helpers/extends");
2
+ var $eFX7w$react = require("react");
3
+ var $eFX7w$radixuiprimitive = require("@radix-ui/primitive");
4
+ var $eFX7w$radixuireactcontext = require("@radix-ui/react-context");
5
+ var $eFX7w$radixuireactusecontrollablestate = require("@radix-ui/react-use-controllable-state");
6
+ var $eFX7w$radixuireactcomposerefs = require("@radix-ui/react-compose-refs");
7
+ var $eFX7w$radixuireactpopper = require("@radix-ui/react-popper");
8
+ var $eFX7w$radixuireactportal = require("@radix-ui/react-portal");
9
+ var $eFX7w$radixuireactpresence = require("@radix-ui/react-presence");
10
+ var $eFX7w$radixuireactprimitive = require("@radix-ui/react-primitive");
11
+ var $eFX7w$radixuireactdismissablelayer = require("@radix-ui/react-dismissable-layer");
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;
28
+ }
29
+ function $parcel$interopDefault(a) {
30
+ return a && a.__esModule ? a.default : a;
31
+ }
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
+
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);
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+ /* -------------------------------------------------------------------------------------------------
59
+ * HoverCard
60
+ * -----------------------------------------------------------------------------------------------*/ const $e5715e9205c1e1fe$var$HOVERCARD_NAME = 'HoverCard';
61
+ const [$e5715e9205c1e1fe$var$createHoverCardContext, $e5715e9205c1e1fe$export$47b6998a836b7260] = $eFX7w$radixuireactcontext.createContextScope($e5715e9205c1e1fe$var$HOVERCARD_NAME, [
62
+ $eFX7w$radixuireactpopper.createPopperScope
63
+ ]);
64
+ const $e5715e9205c1e1fe$var$usePopperScope = $eFX7w$radixuireactpopper.createPopperScope();
65
+ const [$e5715e9205c1e1fe$var$HoverCardProvider, $e5715e9205c1e1fe$var$useHoverCardContext] = $e5715e9205c1e1fe$var$createHoverCardContext($e5715e9205c1e1fe$var$HOVERCARD_NAME);
66
+ const $e5715e9205c1e1fe$export$57a077cc9fbe653e = (props)=>{
67
+ const { __scopeHoverCard: __scopeHoverCard , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , openDelay: openDelay = 700 , closeDelay: closeDelay = 300 } = props;
68
+ const popperScope = $e5715e9205c1e1fe$var$usePopperScope(__scopeHoverCard);
69
+ const openTimerRef = $eFX7w$react.useRef(0);
70
+ const closeTimerRef = $eFX7w$react.useRef(0);
71
+ const [open = false, setOpen] = $eFX7w$radixuireactusecontrollablestate.useControllableState({
72
+ prop: openProp,
73
+ defaultProp: defaultOpen,
74
+ onChange: onOpenChange
75
+ });
76
+ const handleOpen = $eFX7w$react.useCallback(()=>{
77
+ clearTimeout(closeTimerRef.current);
78
+ openTimerRef.current = window.setTimeout(()=>setOpen(true)
79
+ , openDelay);
80
+ }, [
81
+ openDelay,
82
+ setOpen
83
+ ]);
84
+ const handleClose = $eFX7w$react.useCallback(()=>{
85
+ clearTimeout(openTimerRef.current);
86
+ closeTimerRef.current = window.setTimeout(()=>setOpen(false)
87
+ , closeDelay);
88
+ }, [
89
+ closeDelay,
90
+ setOpen
91
+ ]);
92
+ const handleDismiss = $eFX7w$react.useCallback(()=>setOpen(false)
93
+ , [
94
+ setOpen
95
+ ]); // cleanup any queued state updates on unmount
96
+ $eFX7w$react.useEffect(()=>{
97
+ return ()=>{
98
+ clearTimeout(openTimerRef.current);
99
+ clearTimeout(closeTimerRef.current);
100
+ };
101
+ }, []);
102
+ return /*#__PURE__*/ $eFX7w$react.createElement($e5715e9205c1e1fe$var$HoverCardProvider, {
103
+ scope: __scopeHoverCard,
104
+ open: open,
105
+ onOpenChange: setOpen,
106
+ onOpen: handleOpen,
107
+ onClose: handleClose,
108
+ onDismiss: handleDismiss
109
+ }, /*#__PURE__*/ $eFX7w$react.createElement($eFX7w$radixuireactpopper.Root, popperScope, children));
110
+ };
111
+ /*#__PURE__*/ Object.assign($e5715e9205c1e1fe$export$57a077cc9fbe653e, {
112
+ displayName: $e5715e9205c1e1fe$var$HOVERCARD_NAME
113
+ });
114
+ /* -------------------------------------------------------------------------------------------------
115
+ * HoverCardTrigger
116
+ * -----------------------------------------------------------------------------------------------*/ const $e5715e9205c1e1fe$var$TRIGGER_NAME = 'HoverCardTrigger';
117
+ const $e5715e9205c1e1fe$export$ef9f7fd8e4ba882f = /*#__PURE__*/ $eFX7w$react.forwardRef((props, forwardedRef)=>{
118
+ const { __scopeHoverCard: __scopeHoverCard , ...triggerProps } = props;
119
+ const context = $e5715e9205c1e1fe$var$useHoverCardContext($e5715e9205c1e1fe$var$TRIGGER_NAME, __scopeHoverCard);
120
+ const popperScope = $e5715e9205c1e1fe$var$usePopperScope(__scopeHoverCard);
121
+ return /*#__PURE__*/ $eFX7w$react.createElement($eFX7w$radixuireactpopper.Anchor, ($parcel$interopDefault($eFX7w$babelruntimehelpersextends))({
122
+ asChild: true
123
+ }, popperScope), /*#__PURE__*/ $eFX7w$react.createElement($eFX7w$radixuireactprimitive.Primitive.a, ($parcel$interopDefault($eFX7w$babelruntimehelpersextends))({
124
+ "data-state": context.open ? 'open' : 'closed'
125
+ }, triggerProps, {
126
+ ref: forwardedRef,
127
+ onPointerEnter: $eFX7w$radixuiprimitive.composeEventHandlers(props.onPointerEnter, $e5715e9205c1e1fe$var$excludeTouch(context.onOpen)),
128
+ onPointerLeave: $eFX7w$radixuiprimitive.composeEventHandlers(props.onPointerLeave, $e5715e9205c1e1fe$var$excludeTouch(context.onClose)),
129
+ onFocus: $eFX7w$radixuiprimitive.composeEventHandlers(props.onFocus, context.onOpen),
130
+ onBlur: $eFX7w$radixuiprimitive.composeEventHandlers(props.onBlur, context.onClose) // prevent focus event on touch devices
131
+ ,
132
+ onTouchStart: $eFX7w$radixuiprimitive.composeEventHandlers(props.onTouchStart, (event)=>event.preventDefault()
133
+ )
134
+ })));
135
+ });
136
+ /*#__PURE__*/ Object.assign($e5715e9205c1e1fe$export$ef9f7fd8e4ba882f, {
137
+ displayName: $e5715e9205c1e1fe$var$TRIGGER_NAME
138
+ });
139
+ /* -------------------------------------------------------------------------------------------------
140
+ * HoverCardContent
141
+ * -----------------------------------------------------------------------------------------------*/ const $e5715e9205c1e1fe$var$CONTENT_NAME = 'HoverCardContent';
142
+ const $e5715e9205c1e1fe$export$aa4724a5938c586 = /*#__PURE__*/ $eFX7w$react.forwardRef((props, forwardedRef)=>{
143
+ const { forceMount: forceMount , ...contentProps } = props;
144
+ const context = $e5715e9205c1e1fe$var$useHoverCardContext($e5715e9205c1e1fe$var$CONTENT_NAME, props.__scopeHoverCard);
145
+ return /*#__PURE__*/ $eFX7w$react.createElement($eFX7w$radixuireactpresence.Presence, {
146
+ present: forceMount || context.open
147
+ }, /*#__PURE__*/ $eFX7w$react.createElement($e5715e9205c1e1fe$var$HoverCardContentImpl, ($parcel$interopDefault($eFX7w$babelruntimehelpersextends))({
148
+ "data-state": context.open ? 'open' : 'closed'
149
+ }, contentProps, {
150
+ onPointerEnter: $eFX7w$radixuiprimitive.composeEventHandlers(props.onPointerEnter, $e5715e9205c1e1fe$var$excludeTouch(context.onOpen)),
151
+ onPointerLeave: $eFX7w$radixuiprimitive.composeEventHandlers(props.onPointerLeave, $e5715e9205c1e1fe$var$excludeTouch(context.onClose)),
152
+ ref: forwardedRef
153
+ })));
154
+ });
155
+ /*#__PURE__*/ Object.assign($e5715e9205c1e1fe$export$aa4724a5938c586, {
156
+ displayName: $e5715e9205c1e1fe$var$CONTENT_NAME
157
+ });
158
+ /* ---------------------------------------------------------------------------------------------- */ 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;
160
+ const context = $e5715e9205c1e1fe$var$useHoverCardContext($e5715e9205c1e1fe$var$CONTENT_NAME, __scopeHoverCard);
161
+ const popperScope = $e5715e9205c1e1fe$var$usePopperScope(__scopeHoverCard);
162
+ const ref = $eFX7w$react.useRef(null);
163
+ const composedRefs = $eFX7w$radixuireactcomposerefs.useComposedRefs(forwardedRef, ref);
164
+ const PortalWrapper = portalled ? $eFX7w$radixuireactportal.Portal : $eFX7w$react.Fragment;
165
+ $eFX7w$react.useEffect(()=>{
166
+ if (ref.current) {
167
+ const tabbables = $e5715e9205c1e1fe$var$getTabbableNodes(ref.current);
168
+ tabbables.forEach((tabbable)=>tabbable.setAttribute('tabindex', '-1')
169
+ );
170
+ }
171
+ });
172
+ return /*#__PURE__*/ $eFX7w$react.createElement(PortalWrapper, null, /*#__PURE__*/ $eFX7w$react.createElement($eFX7w$radixuireactdismissablelayer.DismissableLayer, {
173
+ asChild: true,
174
+ disableOutsidePointerEvents: false,
175
+ onInteractOutside: onInteractOutside,
176
+ onEscapeKeyDown: onEscapeKeyDown,
177
+ onPointerDownOutside: onPointerDownOutside,
178
+ onFocusOutside: onFocusOutside,
179
+ onDismiss: context.onDismiss
180
+ }, /*#__PURE__*/ $eFX7w$react.createElement($eFX7w$radixuireactpopper.Content, ($parcel$interopDefault($eFX7w$babelruntimehelpersextends))({}, popperScope, contentProps, {
181
+ ref: composedRefs,
182
+ style: {
183
+ ...contentProps.style,
184
+ // re-namespace exposed content custom property
185
+ ['--radix-hover-card-content-transform-origin']: 'var(--radix-popper-transform-origin)'
186
+ }
187
+ }))));
188
+ });
189
+ /* -------------------------------------------------------------------------------------------------
190
+ * HoverCardArrow
191
+ * -----------------------------------------------------------------------------------------------*/ const $e5715e9205c1e1fe$var$ARROW_NAME = 'HoverCardArrow';
192
+ const $e5715e9205c1e1fe$export$b9744d3e7456d806 = /*#__PURE__*/ $eFX7w$react.forwardRef((props, forwardedRef)=>{
193
+ const { __scopeHoverCard: __scopeHoverCard , ...arrowProps } = props;
194
+ const popperScope = $e5715e9205c1e1fe$var$usePopperScope(__scopeHoverCard);
195
+ return /*#__PURE__*/ $eFX7w$react.createElement($eFX7w$radixuireactpopper.Arrow, ($parcel$interopDefault($eFX7w$babelruntimehelpersextends))({}, popperScope, arrowProps, {
196
+ ref: forwardedRef
197
+ }));
198
+ });
199
+ /*#__PURE__*/ Object.assign($e5715e9205c1e1fe$export$b9744d3e7456d806, {
200
+ displayName: $e5715e9205c1e1fe$var$ARROW_NAME
201
+ });
202
+ /* -----------------------------------------------------------------------------------------------*/ function $e5715e9205c1e1fe$var$excludeTouch(eventHandler) {
203
+ return (event)=>event.pointerType === 'touch' ? undefined : eventHandler()
204
+ ;
205
+ }
206
+ /**
207
+ * Returns a list of nodes that can be in the tab sequence.
208
+ * @see: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker
209
+ */ function $e5715e9205c1e1fe$var$getTabbableNodes(container) {
210
+ const nodes = [];
211
+ const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
212
+ acceptNode: (node)=>{
213
+ // `.tabIndex` is not the same as the `tabindex` attribute. It works on the
214
+ // runtime's understanding of tabbability, so this automatically accounts
215
+ // for any kind of element that could be tabbed to.
216
+ return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
217
+ }
218
+ });
219
+ while(walker.nextNode())nodes.push(walker.currentNode);
220
+ return nodes;
221
+ }
222
+ const $e5715e9205c1e1fe$export$be92b6f5f03c0fe9 = $e5715e9205c1e1fe$export$57a077cc9fbe653e;
223
+ const $e5715e9205c1e1fe$export$41fb9f06171c75f4 = $e5715e9205c1e1fe$export$ef9f7fd8e4ba882f;
224
+ const $e5715e9205c1e1fe$export$7c6e2c02157bb7d2 = $e5715e9205c1e1fe$export$aa4724a5938c586;
225
+ const $e5715e9205c1e1fe$export$21b07c8f274aebd5 = $e5715e9205c1e1fe$export$b9744d3e7456d806;
226
+
227
+
228
+ $parcel$exportWildcard(module.exports, $e5715e9205c1e1fe$exports);
229
+
230
+
2
231
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["./node_modules/@parcel/scope-hoisting/lib/helpers.js","./packages/react/hover-card/src/HoverCard.tsx"],"sourcesContent":["function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true});\n}\n\nfunction $parcel$reexport(e, n, v) {\n Object.defineProperty(e, n, {get: v, enumerable: true});\n}\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule') {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n },\n });\n });\n\n return dest;\n}\n\nfunction $parcel$missingModule(name) {\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n}\n\nvar $parcel$global =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { 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":["a","__esModule","default","$parcel$exportWildcard","dest","source","Object","keys","forEach","key","defineProperty","enumerable","get","createHoverCardContext","createHoverCardScope","createContextScope","createPopperScope","usePopperScope","HoverCardProvider","useHoverCardContext","HoverCard","props","__scopeHoverCard","children","open","openProp","defaultOpen","onOpenChange","openDelay","closeDelay","popperScope","openTimerRef","React","useRef","closeTimerRef","setOpen","useControllableState","prop","defaultProp","onChange","handleOpen","useCallback","clearTimeout","current","window","setTimeout","handleClose","handleDismiss","useEffect","_react","createElement","$a9187305359b3319ee1ff04b4d7510$var$HoverCardProvider","scope","onOpen","onClose","onDismiss","_radixUiReactPopper","Root","HoverCardTrigger","forwardRef","forwardedRef","triggerProps","context","Anchor","_babelRuntimeHelpersExtends","asChild","Primitive","ref","onPointerEnter","composeEventHandlers","excludeTouch","onPointerLeave","onFocus","onBlur","onTouchStart","event","preventDefault","HoverCardContent","forceMount","contentProps","Presence","present","$a9187305359b3319ee1ff04b4d7510$var$HoverCardContentImpl","HoverCardContentImpl","portalled","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","composedRefs","useComposedRefs","PortalWrapper","Portal","Fragment","container","nodes","walker","document","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","node","tabIndex","FILTER_ACCEPT","FILTER_SKIP","nextNode","push","currentNode","getTabbableNodes","tabbable","setAttribute","DismissableLayer","disableOutsidePointerEvents","Content","style","HoverCardArrow","arrowProps","Arrow","eventHandler","pointerType","undefined","Trigger"],"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 * 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,2 +1,212 @@
1
- import{DismissableLayer as e}from"@radix-ui/react-dismissable-layer";import{Primitive as r}from"@radix-ui/react-primitive";import{Presence as o}from"@radix-ui/react-presence";import{Portal as t}from"@radix-ui/react-portal";import*as n from"@radix-ui/react-popper";import{createPopperScope as a}from"@radix-ui/react-popper";import{useComposedRefs as i}from"@radix-ui/react-compose-refs";import{useControllableState as c}from"@radix-ui/react-use-controllable-state";import{createContextScope as s}from"@radix-ui/react-context";import{composeEventHandlers as p}from"@radix-ui/primitive";import*as u from"react";import d from"@babel/runtime/helpers/esm/extends";const[l,m]=s("HoverCard",[a]);export{m as createHoverCardScope};const f=a(),[C,v]=l("HoverCard");export const HoverCard=e=>{const{__scopeHoverCard:r,children:o,open:t,defaultOpen:a,onOpenChange:i,openDelay:s=700,closeDelay:p=300}=e,d=f(r),l=u.useRef(0),m=u.useRef(0),[v=!1,x]=c({prop:t,defaultProp:a,onChange:i}),E=u.useCallback((()=>{clearTimeout(m.current),l.current=window.setTimeout((()=>x(!0)),s)}),[s,x]),H=u.useCallback((()=>{clearTimeout(l.current),m.current=window.setTimeout((()=>x(!1)),p)}),[p,x]),T=u.useCallback((()=>x(!1)),[x]);return u.useEffect((()=>()=>{clearTimeout(l.current),clearTimeout(m.current)}),[]),/*#__PURE__*/u.createElement(C,{scope:r,open:v,onOpenChange:x,onOpen:E,onClose:H,onDismiss:T},/*#__PURE__*/u.createElement(n.Root,d,o))};/*#__PURE__*/export const HoverCardTrigger=/*#__PURE__*/u.forwardRef(((e,o)=>{const{__scopeHoverCard:t,...a}=e,i=v("HoverCardTrigger",t),c=f(t);/*#__PURE__*/return u.createElement(n.Anchor,d({asChild:!0},c),/*#__PURE__*/u.createElement(r.a,d({"data-state":i.open?"open":"closed"},a,{ref:o,onPointerEnter:p(e.onPointerEnter,E(i.onOpen)),onPointerLeave:p(e.onPointerLeave,E(i.onClose)),onFocus:p(e.onFocus,i.onOpen),onBlur:p(e.onBlur,i.onClose),onTouchStart:p(e.onTouchStart,(e=>e.preventDefault()))})))}));/*#__PURE__*/export const HoverCardContent=/*#__PURE__*/u.forwardRef(((e,r)=>{const{forceMount:t,...n}=e,a=v("HoverCardContent",e.__scopeHoverCard);/*#__PURE__*/return u.createElement(o,{present:t||a.open},/*#__PURE__*/u.createElement(x,d({"data-state":a.open?"open":"closed"},n,{onPointerEnter:p(e.onPointerEnter,E(a.onOpen)),onPointerLeave:p(e.onPointerLeave,E(a.onClose)),ref:r})))}));/*#__PURE__*/const x=/*#__PURE__*/u.forwardRef(((r,o)=>{const{__scopeHoverCard:a,portalled:c=!0,onEscapeKeyDown:s,onPointerDownOutside:p,onFocusOutside:l,onInteractOutside:m,...C}=r,x=v("HoverCardContent",a),E=f(a),H=u.useRef(null),T=i(o,H),w=c?t:u.Fragment;return u.useEffect((()=>{if(H.current){(function(e){const r=[],o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;o.nextNode();)r.push(o.currentNode);return r})(H.current).forEach((e=>e.setAttribute("tabindex","-1")))}})),/*#__PURE__*/u.createElement(w,null,/*#__PURE__*/u.createElement(e,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:m,onEscapeKeyDown:s,onPointerDownOutside:p,onFocusOutside:l,onDismiss:x.onDismiss},/*#__PURE__*/u.createElement(n.Content,d({},E,C,{ref:T,style:{...C.style,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)"}}))))}));export const HoverCardArrow=/*#__PURE__*/u.forwardRef(((e,r)=>{const{__scopeHoverCard:o,...t}=e,a=f(o);/*#__PURE__*/return u.createElement(n.Arrow,d({},a,t,{ref:r}))}));/*#__PURE__*/function E(e){return r=>"touch"===r.pointerType?void 0:e()}export const Root=HoverCard;export const Trigger=HoverCardTrigger;export const Content=HoverCardContent;export const Arrow=HoverCardArrow;
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";
3
+ import {composeEventHandlers as $eRSIW$composeEventHandlers} from "@radix-ui/primitive";
4
+ import {createContextScope as $eRSIW$createContextScope} from "@radix-ui/react-context";
5
+ import {useControllableState as $eRSIW$useControllableState} from "@radix-ui/react-use-controllable-state";
6
+ import {useComposedRefs as $eRSIW$useComposedRefs} from "@radix-ui/react-compose-refs";
7
+ import {createPopperScope as $eRSIW$createPopperScope, Root as $eRSIW$Root, Anchor as $eRSIW$Anchor, Content as $eRSIW$Content, Arrow as $eRSIW$Arrow} from "@radix-ui/react-popper";
8
+ import {Portal as $eRSIW$Portal} from "@radix-ui/react-portal";
9
+ import {Presence as $eRSIW$Presence} from "@radix-ui/react-presence";
10
+ import {Primitive as $eRSIW$Primitive} from "@radix-ui/react-primitive";
11
+ import {DismissableLayer as $eRSIW$DismissableLayer} from "@radix-ui/react-dismissable-layer";
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
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+ /* -------------------------------------------------------------------------------------------------
40
+ * HoverCard
41
+ * -----------------------------------------------------------------------------------------------*/ const $cef8881cdc69808e$var$HOVERCARD_NAME = 'HoverCard';
42
+ const [$cef8881cdc69808e$var$createHoverCardContext, $cef8881cdc69808e$export$47b6998a836b7260] = $eRSIW$createContextScope($cef8881cdc69808e$var$HOVERCARD_NAME, [
43
+ $eRSIW$createPopperScope
44
+ ]);
45
+ const $cef8881cdc69808e$var$usePopperScope = $eRSIW$createPopperScope();
46
+ const [$cef8881cdc69808e$var$HoverCardProvider, $cef8881cdc69808e$var$useHoverCardContext] = $cef8881cdc69808e$var$createHoverCardContext($cef8881cdc69808e$var$HOVERCARD_NAME);
47
+ const $cef8881cdc69808e$export$57a077cc9fbe653e = (props)=>{
48
+ const { __scopeHoverCard: __scopeHoverCard , children: children , open: openProp , defaultOpen: defaultOpen , onOpenChange: onOpenChange , openDelay: openDelay = 700 , closeDelay: closeDelay = 300 } = props;
49
+ const popperScope = $cef8881cdc69808e$var$usePopperScope(__scopeHoverCard);
50
+ const openTimerRef = $eRSIW$useRef(0);
51
+ const closeTimerRef = $eRSIW$useRef(0);
52
+ const [open = false, setOpen] = $eRSIW$useControllableState({
53
+ prop: openProp,
54
+ defaultProp: defaultOpen,
55
+ onChange: onOpenChange
56
+ });
57
+ const handleOpen = $eRSIW$useCallback(()=>{
58
+ clearTimeout(closeTimerRef.current);
59
+ openTimerRef.current = window.setTimeout(()=>setOpen(true)
60
+ , openDelay);
61
+ }, [
62
+ openDelay,
63
+ setOpen
64
+ ]);
65
+ const handleClose = $eRSIW$useCallback(()=>{
66
+ clearTimeout(openTimerRef.current);
67
+ closeTimerRef.current = window.setTimeout(()=>setOpen(false)
68
+ , closeDelay);
69
+ }, [
70
+ closeDelay,
71
+ setOpen
72
+ ]);
73
+ const handleDismiss = $eRSIW$useCallback(()=>setOpen(false)
74
+ , [
75
+ setOpen
76
+ ]); // cleanup any queued state updates on unmount
77
+ $eRSIW$useEffect(()=>{
78
+ return ()=>{
79
+ clearTimeout(openTimerRef.current);
80
+ clearTimeout(closeTimerRef.current);
81
+ };
82
+ }, []);
83
+ return /*#__PURE__*/ $eRSIW$createElement($cef8881cdc69808e$var$HoverCardProvider, {
84
+ scope: __scopeHoverCard,
85
+ open: open,
86
+ onOpenChange: setOpen,
87
+ onOpen: handleOpen,
88
+ onClose: handleClose,
89
+ onDismiss: handleDismiss
90
+ }, /*#__PURE__*/ $eRSIW$createElement($eRSIW$Root, popperScope, children));
91
+ };
92
+ /*#__PURE__*/ Object.assign($cef8881cdc69808e$export$57a077cc9fbe653e, {
93
+ displayName: $cef8881cdc69808e$var$HOVERCARD_NAME
94
+ });
95
+ /* -------------------------------------------------------------------------------------------------
96
+ * HoverCardTrigger
97
+ * -----------------------------------------------------------------------------------------------*/ const $cef8881cdc69808e$var$TRIGGER_NAME = 'HoverCardTrigger';
98
+ const $cef8881cdc69808e$export$ef9f7fd8e4ba882f = /*#__PURE__*/ $eRSIW$forwardRef((props, forwardedRef)=>{
99
+ const { __scopeHoverCard: __scopeHoverCard , ...triggerProps } = props;
100
+ const context = $cef8881cdc69808e$var$useHoverCardContext($cef8881cdc69808e$var$TRIGGER_NAME, __scopeHoverCard);
101
+ const popperScope = $cef8881cdc69808e$var$usePopperScope(__scopeHoverCard);
102
+ return /*#__PURE__*/ $eRSIW$createElement($eRSIW$Anchor, $eRSIW$babelruntimehelpersesmextends({
103
+ asChild: true
104
+ }, popperScope), /*#__PURE__*/ $eRSIW$createElement($eRSIW$Primitive.a, $eRSIW$babelruntimehelpersesmextends({
105
+ "data-state": context.open ? 'open' : 'closed'
106
+ }, triggerProps, {
107
+ ref: forwardedRef,
108
+ onPointerEnter: $eRSIW$composeEventHandlers(props.onPointerEnter, $cef8881cdc69808e$var$excludeTouch(context.onOpen)),
109
+ onPointerLeave: $eRSIW$composeEventHandlers(props.onPointerLeave, $cef8881cdc69808e$var$excludeTouch(context.onClose)),
110
+ onFocus: $eRSIW$composeEventHandlers(props.onFocus, context.onOpen),
111
+ onBlur: $eRSIW$composeEventHandlers(props.onBlur, context.onClose) // prevent focus event on touch devices
112
+ ,
113
+ onTouchStart: $eRSIW$composeEventHandlers(props.onTouchStart, (event)=>event.preventDefault()
114
+ )
115
+ })));
116
+ });
117
+ /*#__PURE__*/ Object.assign($cef8881cdc69808e$export$ef9f7fd8e4ba882f, {
118
+ displayName: $cef8881cdc69808e$var$TRIGGER_NAME
119
+ });
120
+ /* -------------------------------------------------------------------------------------------------
121
+ * HoverCardContent
122
+ * -----------------------------------------------------------------------------------------------*/ const $cef8881cdc69808e$var$CONTENT_NAME = 'HoverCardContent';
123
+ const $cef8881cdc69808e$export$aa4724a5938c586 = /*#__PURE__*/ $eRSIW$forwardRef((props, forwardedRef)=>{
124
+ const { forceMount: forceMount , ...contentProps } = props;
125
+ const context = $cef8881cdc69808e$var$useHoverCardContext($cef8881cdc69808e$var$CONTENT_NAME, props.__scopeHoverCard);
126
+ return /*#__PURE__*/ $eRSIW$createElement($eRSIW$Presence, {
127
+ present: forceMount || context.open
128
+ }, /*#__PURE__*/ $eRSIW$createElement($cef8881cdc69808e$var$HoverCardContentImpl, $eRSIW$babelruntimehelpersesmextends({
129
+ "data-state": context.open ? 'open' : 'closed'
130
+ }, contentProps, {
131
+ onPointerEnter: $eRSIW$composeEventHandlers(props.onPointerEnter, $cef8881cdc69808e$var$excludeTouch(context.onOpen)),
132
+ onPointerLeave: $eRSIW$composeEventHandlers(props.onPointerLeave, $cef8881cdc69808e$var$excludeTouch(context.onClose)),
133
+ ref: forwardedRef
134
+ })));
135
+ });
136
+ /*#__PURE__*/ Object.assign($cef8881cdc69808e$export$aa4724a5938c586, {
137
+ displayName: $cef8881cdc69808e$var$CONTENT_NAME
138
+ });
139
+ /* ---------------------------------------------------------------------------------------------- */ 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;
141
+ const context = $cef8881cdc69808e$var$useHoverCardContext($cef8881cdc69808e$var$CONTENT_NAME, __scopeHoverCard);
142
+ const popperScope = $cef8881cdc69808e$var$usePopperScope(__scopeHoverCard);
143
+ const ref = $eRSIW$useRef(null);
144
+ const composedRefs = $eRSIW$useComposedRefs(forwardedRef, ref);
145
+ const PortalWrapper = portalled ? $eRSIW$Portal : $eRSIW$Fragment;
146
+ $eRSIW$useEffect(()=>{
147
+ if (ref.current) {
148
+ const tabbables = $cef8881cdc69808e$var$getTabbableNodes(ref.current);
149
+ tabbables.forEach((tabbable)=>tabbable.setAttribute('tabindex', '-1')
150
+ );
151
+ }
152
+ });
153
+ return /*#__PURE__*/ $eRSIW$createElement(PortalWrapper, null, /*#__PURE__*/ $eRSIW$createElement($eRSIW$DismissableLayer, {
154
+ asChild: true,
155
+ disableOutsidePointerEvents: false,
156
+ onInteractOutside: onInteractOutside,
157
+ onEscapeKeyDown: onEscapeKeyDown,
158
+ onPointerDownOutside: onPointerDownOutside,
159
+ onFocusOutside: onFocusOutside,
160
+ onDismiss: context.onDismiss
161
+ }, /*#__PURE__*/ $eRSIW$createElement($eRSIW$Content, $eRSIW$babelruntimehelpersesmextends({}, popperScope, contentProps, {
162
+ ref: composedRefs,
163
+ style: {
164
+ ...contentProps.style,
165
+ // re-namespace exposed content custom property
166
+ ['--radix-hover-card-content-transform-origin']: 'var(--radix-popper-transform-origin)'
167
+ }
168
+ }))));
169
+ });
170
+ /* -------------------------------------------------------------------------------------------------
171
+ * HoverCardArrow
172
+ * -----------------------------------------------------------------------------------------------*/ const $cef8881cdc69808e$var$ARROW_NAME = 'HoverCardArrow';
173
+ const $cef8881cdc69808e$export$b9744d3e7456d806 = /*#__PURE__*/ $eRSIW$forwardRef((props, forwardedRef)=>{
174
+ const { __scopeHoverCard: __scopeHoverCard , ...arrowProps } = props;
175
+ const popperScope = $cef8881cdc69808e$var$usePopperScope(__scopeHoverCard);
176
+ return /*#__PURE__*/ $eRSIW$createElement($eRSIW$Arrow, $eRSIW$babelruntimehelpersesmextends({}, popperScope, arrowProps, {
177
+ ref: forwardedRef
178
+ }));
179
+ });
180
+ /*#__PURE__*/ Object.assign($cef8881cdc69808e$export$b9744d3e7456d806, {
181
+ displayName: $cef8881cdc69808e$var$ARROW_NAME
182
+ });
183
+ /* -----------------------------------------------------------------------------------------------*/ function $cef8881cdc69808e$var$excludeTouch(eventHandler) {
184
+ return (event)=>event.pointerType === 'touch' ? undefined : eventHandler()
185
+ ;
186
+ }
187
+ /**
188
+ * Returns a list of nodes that can be in the tab sequence.
189
+ * @see: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker
190
+ */ function $cef8881cdc69808e$var$getTabbableNodes(container) {
191
+ const nodes = [];
192
+ const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
193
+ acceptNode: (node)=>{
194
+ // `.tabIndex` is not the same as the `tabindex` attribute. It works on the
195
+ // runtime's understanding of tabbability, so this automatically accounts
196
+ // for any kind of element that could be tabbed to.
197
+ return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
198
+ }
199
+ });
200
+ while(walker.nextNode())nodes.push(walker.currentNode);
201
+ return nodes;
202
+ }
203
+ const $cef8881cdc69808e$export$be92b6f5f03c0fe9 = $cef8881cdc69808e$export$57a077cc9fbe653e;
204
+ const $cef8881cdc69808e$export$41fb9f06171c75f4 = $cef8881cdc69808e$export$ef9f7fd8e4ba882f;
205
+ const $cef8881cdc69808e$export$7c6e2c02157bb7d2 = $cef8881cdc69808e$export$aa4724a5938c586;
206
+ const $cef8881cdc69808e$export$21b07c8f274aebd5 = $cef8881cdc69808e$export$b9744d3e7456d806;
207
+
208
+
209
+
210
+
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};
2
212
  //# sourceMappingURL=index.module.js.map
@@ -1 +1 @@
1
- {"mappings":"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","sources":["./packages/react/hover-card/src/HoverCard.tsx"],"sourcesContent":["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":["createHoverCardContext","createHoverCardScope","createContextScope","createPopperScope","usePopperScope","HoverCardProvider","useHoverCardContext","HoverCard","props","__scopeHoverCard","children","open","openProp","defaultOpen","onOpenChange","openDelay","closeDelay","popperScope","openTimerRef","React","useRef","closeTimerRef","setOpen","useControllableState","prop","defaultProp","onChange","handleOpen","useCallback","clearTimeout","current","window","setTimeout","handleClose","handleDismiss","useEffect","_react","createElement","$ddf490131a2c96ef2ad05ece6$var$HoverCardProvider","scope","onOpen","onClose","onDismiss","_radixUiReactPopper","Root","HoverCardTrigger","forwardRef","forwardedRef","triggerProps","context","Anchor","_babelRuntimeHelpersEsmExtends","asChild","Primitive","a","ref","onPointerEnter","composeEventHandlers","excludeTouch","onPointerLeave","onFocus","onBlur","onTouchStart","event","preventDefault","HoverCardContent","forceMount","contentProps","Presence","present","$ddf490131a2c96ef2ad05ece6$var$HoverCardContentImpl","HoverCardContentImpl","portalled","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","composedRefs","useComposedRefs","PortalWrapper","Portal","Fragment","container","nodes","walker","document","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","node","tabIndex","FILTER_ACCEPT","FILTER_SKIP","nextNode","push","currentNode","getTabbableNodes","forEach","tabbable","setAttribute","DismissableLayer","disableOutsidePointerEvents","Content","style","HoverCardArrow","arrowProps","Arrow","eventHandler","pointerType","undefined","Trigger"],"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 * 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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@radix-ui/react-hover-card",
3
- "version": "0.1.6-rc.2",
3
+ "version": "0.1.6-rc.5",
4
4
  "license": "MIT",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
@@ -18,14 +18,14 @@
18
18
  "dependencies": {
19
19
  "@babel/runtime": "^7.13.10",
20
20
  "@radix-ui/primitive": "0.1.0",
21
- "@radix-ui/react-compose-refs": "0.1.1-rc.2",
22
- "@radix-ui/react-context": "0.1.2-rc.2",
23
- "@radix-ui/react-dismissable-layer": "0.1.6-rc.2",
24
- "@radix-ui/react-popper": "0.1.5-rc.2",
25
- "@radix-ui/react-portal": "0.1.5-rc.2",
26
- "@radix-ui/react-presence": "0.1.3-rc.2",
27
- "@radix-ui/react-primitive": "0.1.5-rc.2",
28
- "@radix-ui/react-use-controllable-state": "0.1.1-rc.2"
21
+ "@radix-ui/react-compose-refs": "0.1.1-rc.5",
22
+ "@radix-ui/react-context": "0.1.2-rc.5",
23
+ "@radix-ui/react-dismissable-layer": "0.1.6-rc.5",
24
+ "@radix-ui/react-popper": "0.1.5-rc.5",
25
+ "@radix-ui/react-portal": "0.1.5-rc.5",
26
+ "@radix-ui/react-presence": "0.1.3-rc.5",
27
+ "@radix-ui/react-primitive": "0.1.5-rc.5",
28
+ "@radix-ui/react-use-controllable-state": "0.1.1-rc.5"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "react": "^16.8 || ^17.0 || ^18.0",