@radix-ui/react-hover-card 0.0.3 → 0.1.0
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 +22 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.module.js +1 -1
- package/dist/index.module.js.map +1 -1
- package/package.json +8 -10
package/dist/index.d.ts
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import * as PopperPrimitive from "@radix-ui/react-popper";
|
|
3
|
+
import * as Radix from "@radix-ui/react-primitive";
|
|
3
4
|
import { Primitive } from "@radix-ui/react-primitive";
|
|
4
|
-
|
|
5
|
-
type HoverCardOwnProps = {
|
|
5
|
+
export interface HoverCardProps {
|
|
6
6
|
open?: boolean;
|
|
7
7
|
defaultOpen?: boolean;
|
|
8
8
|
onOpenChange?: (open: boolean) => void;
|
|
9
9
|
openDelay?: number;
|
|
10
10
|
closeDelay?: number;
|
|
11
|
-
}
|
|
12
|
-
export const HoverCard: React.FC<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export const HoverCardTrigger:
|
|
17
|
-
|
|
11
|
+
}
|
|
12
|
+
export const HoverCard: React.FC<HoverCardProps>;
|
|
13
|
+
type PrimitiveLinkProps = Radix.ComponentPropsWithoutRef<typeof Primitive.a>;
|
|
14
|
+
export interface HoverCardTriggerProps extends PrimitiveLinkProps {
|
|
15
|
+
}
|
|
16
|
+
export const HoverCardTrigger: React.ForwardRefExoticComponent<HoverCardTriggerProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
17
|
+
export interface HoverCardContentProps extends HoverCardContentImplProps {
|
|
18
18
|
/**
|
|
19
19
|
* Used to force mounting when more control is needed. Useful when
|
|
20
20
|
* controlling animation with React animation libraries.
|
|
21
21
|
*/
|
|
22
22
|
forceMount?: true;
|
|
23
|
-
}
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
type HoverCardContentImplOwnProps = Polymorphic.Merge<PopperPrimitiveOwnProps, {
|
|
23
|
+
}
|
|
24
|
+
export const HoverCardContent: React.ForwardRefExoticComponent<HoverCardContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
25
|
+
type PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;
|
|
26
|
+
interface HoverCardContentImplProps extends PopperContentProps {
|
|
28
27
|
/**
|
|
29
28
|
* Whether the `HoverCard` should render in a `Portal`
|
|
30
29
|
* (default: `true`)
|
|
31
30
|
*/
|
|
32
31
|
portalled?: boolean;
|
|
33
|
-
}
|
|
34
|
-
type
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
export const
|
|
38
|
-
export const
|
|
39
|
-
export const
|
|
40
|
-
export const
|
|
32
|
+
}
|
|
33
|
+
type PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;
|
|
34
|
+
export interface HoverCardArrowProps extends PopperArrowProps {
|
|
35
|
+
}
|
|
36
|
+
export const HoverCardArrow: React.ForwardRefExoticComponent<HoverCardArrowProps & React.RefAttributes<SVGSVGElement>>;
|
|
37
|
+
export const Root: React.FC<HoverCardProps>;
|
|
38
|
+
export const Trigger: React.ForwardRefExoticComponent<HoverCardTriggerProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
39
|
+
export const Content: React.ForwardRefExoticComponent<HoverCardContentProps & React.RefAttributes<HTMLDivElement>>;
|
|
40
|
+
export const Arrow: React.ForwardRefExoticComponent<HoverCardArrowProps & React.RefAttributes<SVGSVGElement>>;
|
|
41
41
|
|
|
42
42
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A;A;A;A;
|
|
1
|
+
{"mappings":"A;A;A;A;AA0BA;IACE,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,CAyCvC,CAAC;AAWF,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;AAC7E,sCAAgC,SAAQ,kBAAkB;CAAG;AAE7D,OAAA,MAAM,iHAeL,CAAC;AAWF,sCAAgC,SAAQ,yBAAyB;IAC/D;A;A;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED,OAAA,MAAM,8GAgBL,CAAC;AAOF,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,gBAAgB,OAAO,CAAC,CAAC;AACzF,mCAAoC,SAAQ,kBAAkB;IAC5D;A;A;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA+BD,wBAAwB,MAAM,wBAAwB,CAAC,OAAO,gBAAgB,KAAK,CAAC,CAAC;AACrF,oCAA8B,SAAQ,gBAAgB;CAAG;AAEzD,OAAA,MAAM,yGAEL,CAAC;AAWF,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"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,r=require("@radix-ui/react-primitive").
|
|
1
|
+
var e,r=require("@radix-ui/react-primitive").Primitive,t=require("@radix-ui/react-presence").Presence,o=require("@radix-ui/react-portal").Portal,n=l({},require("@radix-ui/react-popper")),a=require("@radix-ui/react-use-controllable-state").useControllableState,i=require("@radix-ui/react-context").createContext,c=require("@radix-ui/primitive").composeEventHandlers,u=l({},require("react")),s=(e=require("@babel/runtime/helpers/extends"))&&e.__esModule?e.default:e;function l(e,r){return Object.keys(r).forEach((function(t){"default"!==t&&"__esModule"!==t&&Object.defineProperty(e,t,{enumerable:!0,get:function(){return r[t]}})})),e}const[p,d]=i("HoverCard"),f=e=>{const{children:r,open:t,defaultOpen:o,onOpenChange:i,openDelay:c=700,closeDelay:s=300}=e,l=u.useRef(0),d=u.useRef(0),[f=!1,m]=a({prop:t,defaultProp:o,onChange:i}),C=u.useCallback((()=>{clearTimeout(d.current),l.current=window.setTimeout((()=>m(!0)),c)}),[c,m]),x=u.useCallback((()=>{clearTimeout(l.current),d.current=window.setTimeout((()=>m(!1)),s)}),[s,m]);return u.useEffect((()=>()=>{clearTimeout(l.current),clearTimeout(d.current)}),[]),/*#__PURE__*/u.createElement(p,{open:f,onOpenChange:m,onOpen:C,onClose:x},/*#__PURE__*/u.createElement(n.Root,null,r))};exports.HoverCard=f;const m=/*#__PURE__*/u.forwardRef(((e,t)=>{const o=d("HoverCardTrigger");/*#__PURE__*/return u.createElement(n.Anchor,{asChild:!0},/*#__PURE__*/u.createElement(r.a,s({"data-state":o.open?"open":"closed"},e,{ref:t,onPointerEnter:c(e.onPointerEnter,E(o.onOpen)),onPointerLeave:c(e.onPointerLeave,E(o.onClose))})))}));exports.HoverCardTrigger=m;const C=/*#__PURE__*/u.forwardRef(((e,r)=>{const{forceMount:o,...n}=e,a=d("HoverCardContent");/*#__PURE__*/return u.createElement(t,{present:o||a.open},/*#__PURE__*/u.createElement(x,s({"data-state":a.open?"open":"closed"},n,{onPointerEnter:c(e.onMouseEnter,E(a.onOpen)),onPointerLeave:c(e.onMouseLeave,E(a.onClose)),ref:r})))}));exports.HoverCardContent=C;const x=/*#__PURE__*/u.forwardRef(((e,r)=>{const{portalled:t=!0,...a}=e,i=t?o:u.Fragment;/*#__PURE__*/return u.createElement(i,null,/*#__PURE__*/u.createElement(n.Content,s({},a,{ref:r,style:{...a.style,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)"}})))})),v=/*#__PURE__*/u.forwardRef(((e,r)=>/*#__PURE__*/u.createElement(n.Arrow,s({},e,{ref:r}))));function E(e){return r=>"touch"===r.pointerType?void 0:e()}exports.HoverCardArrow=v;const g=f;exports.Root=g;const w=m;exports.Trigger=w;const P=C;exports.Content=P;const h=v;exports.Arrow=h;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"IAAgCA,2YAAAA,8CAClBA,EAAEC,WAAaD,EAAEE,QAAUF,EAWzC,SAASG,EAAuBC,EAAMC,GAcpC,OAbAC,OAAOC,KAAKF,GAAQG,SAAQ,SAASC,GACvB,YAARA,GAA6B,eAARA,GAIzBH,OAAOI,eAAeN,EAAMK,EAAK,CAC/BE,YAAY,EACZC,IAAK,WACH,OAAOP,EAAOI,SAKbL,ECZT,MASOS,EAAmBC,GAAuBC,EAT1B,aAqBjBC,EAA0CC,IAC9C,MAAMC,SACJA,EACAC,KAAMC,EAFFC,YAGJA,EAHIC,aAIJA,EAJIC,UAKJA,EAAY,IALRC,WAMJA,EAAa,KACXP,EACEQ,EAAeC,EAAMC,OAAO,GAC5BC,EAAgBF,EAAMC,OAAO,IAE5BR,GAAO,EAAOU,GAAWC,EAAqB,CACnDC,KAAMX,EACNY,YAAaX,EACbY,SAAUX,IAGNY,EAAaR,EAAMS,aAAY,KACnCC,aAAaR,EAAcS,SAC3BZ,EAAaY,QAAUC,OAAOC,YAAW,IAAMV,GAAQ,IAAON,KAC7D,CAACA,EAAWM,IAETW,EAAcd,EAAMS,aAAY,KACpCC,aAAaX,EAAaY,SAC1BT,EAAcS,QAAUC,OAAOC,YAAW,IAAMV,GAAQ,IAAQL,KAC/D,CAACA,EAAYK,IAUhB,OAPAH,EAAMe,WAAU,IACP,KACLL,aAAaX,EAAaY,SAC1BD,aAAaR,EAAcS,WAE5B,iBAGDK,EAAAC,cAACC,EAAD,CAAmBzB,KAAMA,EAAMG,aAAcO,EAASgB,OAAQX,EAAYY,QAASN,gBACjFE,EAAAC,cAACI,EAAgBC,KAAjB,KAAuB9B,yBAW7B,MACM+B,EAAsB,IAQtBC,eAAmBxB,EAAMyB,YAAW,CAAClC,EAAOmC,KAChD,MAAMC,GAAEA,EAAKJ,KAAwBK,GAAiBrC,EAChDsC,EAAUzC,EAXG,iCAanB,OACE4B,EAAAC,cAACI,EAAgBS,OAAjBC,EAAA,CACEC,aAAYH,EAAQpC,KAAO,OAAS,UAChCmC,EAFN,CAGED,GAAIA,EACJM,IAAKP,EACLQ,eAAgBC,EAAqB5C,EAAM2C,eAAgBE,EAAaP,EAAQV,SAChFkB,eAAgBF,EAAqB5C,EAAM8C,eAAgBD,EAAaP,EAAQT,2CAWtF,MAkBMkB,eAAmBtC,EAAMyB,YAAW,CAAClC,EAAOmC,KAChD,MAAMa,WAAEA,KAAeC,GAAiBjD,EAClCsC,EAAUzC,EApBG,iCAsBnB,OACE4B,EAAAC,cAACwB,EAAD,CAAUC,QAASH,GAAcV,EAAQpC,mBACvCuB,EAAAC,cAAC0B,EAADZ,EAAA,CACEC,aAAYH,EAAQpC,KAAO,OAAS,UAChC+C,EAFN,CAGEN,eAAgBC,EAAqB5C,EAAMqD,aAAcR,EAAaP,EAAQV,SAC9EkB,eAAgBF,EAAqB5C,EAAMsD,aAAcT,EAAaP,EAAQT,UAC9Ea,IAAKP,oCAuBb,MAAMoB,eAAuB9C,EAAMyB,YAAW,CAAClC,EAAOmC,KACpD,MAAMqB,UAAEA,GAAY,KAASP,GAAiBjD,EAExCyD,EAAgBD,EAAYE,EAASjD,EAAMkD,sBAEjD,OACElC,EAAAC,cAAC+B,EAAD,kBACEhC,EAAAC,cAACI,EAAgB8B,QAAjBpB,EAAA,GACMS,EADN,CAEEP,IAAKP,EACL0B,MAAO,IACFZ,EAAaY,MAEhBC,8CAAwD,+CAW5DC,EAAiBC,EAAgBC,EAAgBC,MAAO,CAAEC,YAAa,gCAI7E,SAAStB,EAAgBuB,GACvB,OAAQC,GACgB,UAAtBA,EAAMC,iBAA0BC,EAAYH,6BAGhD,MAAMrC,EAAOhC,iBACb,MAAMyE,EAAUvC,oBAChB,MAAM2B,EAAUb,oBAChB,MAAMmB,EAAQH","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 { createContext } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { Portal } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive, extendPrimitive } from '@radix-ui/react-primitive';\nimport type * as Polymorphic from '@radix-ui/react-polymorphic';\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCard\n * -----------------------------------------------------------------------------------------------*/\n\nconst HOVERCARD_NAME = 'HoverCard';\n\ntype HoverCardContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpen(): void;\n onClose(): void;\n};\n\nconst [HoverCardProvider, useHoverCardContext] = createContext<HoverCardContextValue>(\n HOVERCARD_NAME\n);\n\ntype HoverCardOwnProps = {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n openDelay?: number;\n closeDelay?: number;\n};\n\nconst HoverCard: React.FC<HoverCardOwnProps> = (props) => {\n const {\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n openDelay = 700,\n closeDelay = 300,\n } = props;\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 // 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 open={open} onOpenChange={setOpen} onOpen={handleOpen} onClose={handleClose}>\n <PopperPrimitive.Root>{children}</PopperPrimitive.Root>\n </HoverCardProvider>\n );\n};\n\nHoverCard.displayName = HOVERCARD_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'HoverCardTrigger';\nconst TRIGGER_DEFAULT_TAG = 'a';\n\ntype HoverCardTriggerOwnProps = Polymorphic.OwnProps<typeof Primitive>;\ntype HoverCardTriggerPrimitive = Polymorphic.ForwardRefComponent<\n typeof TRIGGER_DEFAULT_TAG,\n HoverCardTriggerOwnProps\n>;\n\nconst HoverCardTrigger = React.forwardRef((props, forwardedRef) => {\n const { as = TRIGGER_DEFAULT_TAG, ...triggerProps } = props;\n const context = useHoverCardContext(TRIGGER_NAME);\n\n return (\n <PopperPrimitive.Anchor\n data-state={context.open ? 'open' : 'closed'}\n {...triggerProps}\n as={as}\n ref={forwardedRef}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose))}\n />\n );\n}) as HoverCardTriggerPrimitive;\n\nHoverCardTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'HoverCardContent';\n\ntype HoverCardContentOwnProps = Polymorphic.Merge<\n Polymorphic.OwnProps<typeof HoverCardContentImpl>,\n {\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>;\n\ntype HoverCardContentPrimitive = Polymorphic.ForwardRefComponent<\n Polymorphic.IntrinsicElement<typeof HoverCardContentImpl>,\n HoverCardContentOwnProps\n>;\n\nconst HoverCardContent = React.forwardRef((props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useHoverCardContext(CONTENT_NAME);\n\n return (\n <Presence present={forceMount || context.open}>\n <HoverCardContentImpl\n data-state={context.open ? 'open' : 'closed'}\n {...contentProps}\n onPointerEnter={composeEventHandlers(props.onMouseEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onMouseLeave, excludeTouch(context.onClose))}\n ref={forwardedRef}\n />\n </Presence>\n );\n}) as HoverCardContentPrimitive;\n\ntype PopperPrimitiveOwnProps = Polymorphic.OwnProps<typeof PopperPrimitive.Content>;\ntype HoverCardContentImplOwnProps = Polymorphic.Merge<\n PopperPrimitiveOwnProps,\n {\n /**\n * Whether the `HoverCard` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n }\n>;\n\ntype HoverCardContentImplPrimitive = Polymorphic.ForwardRefComponent<\n Polymorphic.IntrinsicElement<typeof PopperPrimitive.Content>,\n HoverCardContentImplOwnProps\n>;\n\nconst HoverCardContentImpl = React.forwardRef((props, forwardedRef) => {\n const { portalled = true, ...contentProps } = props;\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <PopperPrimitive.Content\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-hover-card-content-transform-origin' as any]: 'var(--radix-popper-transform-origin)',\n }}\n />\n </PortalWrapper>\n );\n}) as HoverCardContentImplPrimitive;\n\nHoverCardContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nconst HoverCardArrow = extendPrimitive(PopperPrimitive.Arrow, { displayName: 'HoverCardArrow' });\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction excludeTouch<E>(eventHandler: () => void) {\n return (event: React.PointerEvent<E>) =>\n event.pointerType === 'touch' ? undefined : eventHandler();\n}\n\nconst Root = HoverCard;\nconst Trigger = HoverCardTrigger;\nconst Content = HoverCardContent;\nconst Arrow = HoverCardArrow;\n\nexport {\n HoverCard,\n HoverCardTrigger,\n HoverCardContent,\n HoverCardArrow,\n //\n Root,\n Trigger,\n Content,\n Arrow,\n};\nexport type { HoverCardTriggerPrimitive, HoverCardContentPrimitive };\n"],"names":["a","__esModule","default","$parcel$exportWildcard","dest","source","Object","keys","forEach","key","defineProperty","enumerable","get","HoverCardProvider","useHoverCardContext","createContext","HoverCard","props","children","open","openProp","defaultOpen","onOpenChange","openDelay","closeDelay","openTimerRef","React","useRef","closeTimerRef","setOpen","useControllableState","prop","defaultProp","onChange","handleOpen","useCallback","clearTimeout","current","window","setTimeout","handleClose","useEffect","_react","createElement","$a9187305359b3319ee1ff04b4d7510$var$HoverCardProvider","onOpen","onClose","_radixUiReactPopper","Root","TRIGGER_DEFAULT_TAG","HoverCardTrigger","forwardRef","forwardedRef","as","triggerProps","context","Anchor","_babelRuntimeHelpersExtends","data-state","ref","onPointerEnter","composeEventHandlers","excludeTouch","onPointerLeave","HoverCardContent","forceMount","contentProps","Presence","present","$a9187305359b3319ee1ff04b4d7510$var$HoverCardContentImpl","onMouseEnter","onMouseLeave","HoverCardContentImpl","portalled","PortalWrapper","Portal","Fragment","Content","style","--radix-hover-card-content-transform-origin","HoverCardArrow","extendPrimitive","PopperPrimitive","Arrow","displayName","eventHandler","event","pointerType","undefined","Trigger"],"version":3,"file":"index.js.map"}
|
|
1
|
+
{"mappings":"IAAgCA,qYAAAA,8CAClBA,EAAEC,WAAaD,EAAEE,QAAUF,EAWzC,SAASG,EAAuBC,EAAMC,GAcpC,OAbAC,OAAOC,KAAKF,GAAQG,SAAQ,SAASC,GACvB,YAARA,GAA6B,eAARA,GAIzBH,OAAOI,eAAeN,EAAMK,EAAK,CAC/BE,YAAY,EACZC,IAAK,WACH,OAAOP,EAAOI,SAKbL,ECZT,MASOS,EAAmBC,GACxBC,EAVqB,aAoBjBC,EAAuCC,IAC3C,MAAMC,SACJA,EACAC,KAAMC,EAFFC,YAGJA,EAHIC,aAIJA,EAJIC,UAKJA,EAAY,IALRC,WAMJA,EAAa,KACXP,EACEQ,EAAeC,EAAMC,OAAO,GAC5BC,EAAgBF,EAAMC,OAAO,IAE5BR,GAAO,EAAOU,GAAWC,EAAqB,CACnDC,KAAMX,EACNY,YAAaX,EACbY,SAAUX,IAGNY,EAAaR,EAAMS,aAAY,KACnCC,aAAaR,EAAcS,SAC3BZ,EAAaY,QAAUC,OAAOC,YAAW,IAAMV,GAAQ,IAAON,KAC7D,CAACA,EAAWM,IAETW,EAAcd,EAAMS,aAAY,KACpCC,aAAaX,EAAaY,SAC1BT,EAAcS,QAAUC,OAAOC,YAAW,IAAMV,GAAQ,IAAQL,KAC/D,CAACA,EAAYK,IAUhB,OAPAH,EAAMe,WAAU,IACP,KACLL,aAAaX,EAAaY,SAC1BD,aAAaR,EAAcS,WAE5B,iBAGDK,EAAAC,cAACC,EAAD,CAAmBzB,KAAMA,EAAMG,aAAcO,EAASgB,OAAQX,EAAYY,QAASN,gBACjFE,EAAAC,cAACI,EAAgBC,KAAjB,KAAuB9B,yBAW7B,MAMM+B,eAAmBvB,EAAMwB,YAC7B,CAACjC,EAAOkC,KACN,MAAMC,EAAUtC,EARC,iCASjB,OACE4B,EAAAC,cAACI,EAAgBM,OAAjB,CAAwBC,SAAO,gBAC7BZ,EAAAC,cAACY,EAAUvD,EAAXwD,EAAA,CACE,aAAYJ,EAAQjC,KAAO,OAAS,UAChCF,EAFN,CAGEwC,IAAKN,EACLO,eAAgBC,EAAqB1C,EAAMyC,eAAgBE,EAAaR,EAAQP,SAChFgB,eAAgBF,EAAqB1C,EAAM4C,eAAgBD,EAAaR,EAAQN,4CAa1F,MAWMgB,eAAmBpC,EAAMwB,YAC7B,CAACjC,EAAOkC,KACN,MAAMY,WAAEA,KAAeC,GAAiB/C,EAClCmC,EAAUtC,EAdC,iCAejB,OACE4B,EAAAC,cAACsB,EAAD,CAAUC,QAASH,GAAcX,EAAQjC,mBACvCuB,EAAAC,cAACwB,EAADX,EAAA,CACE,aAAYJ,EAAQjC,KAAO,OAAS,UAChC6C,EAFN,CAGEN,eAAgBC,EAAqB1C,EAAMmD,aAAcR,EAAaR,EAAQP,SAC9EgB,eAAgBF,EAAqB1C,EAAMoD,aAAcT,EAAaR,EAAQN,UAC9EW,IAAKN,oCAqBf,MAAMmB,eAAuB5C,EAAMwB,YAGjC,CAACjC,EAAOkC,KACR,MAAMoB,UAAEA,GAAY,KAASP,GAAiB/C,EACxCuD,EAAgBD,EAAYE,EAAS/C,EAAMgD,sBACjD,OACEhC,EAAAC,cAAC6B,EAAD,kBACE9B,EAAAC,cAACI,EAAgB4B,QAAjBnB,EAAA,GACMQ,EADN,CAEEP,IAAKN,EACLyB,MAAO,IACFZ,EAAaY,MAEhB,8CACE,+CAiBNC,eAAiBnD,EAAMwB,YAC3B,CAACjC,EAAOkC,iBAAiBT,EAAAC,cAACI,EAAgB+B,MAAjBtB,EAAA,GAA2BvC,EAA3B,CAAkCwC,IAAKN,OAOlE,SAASS,EAAgBmB,GACvB,OAAQC,GACgB,UAAtBA,EAAMC,iBAA0BC,EAAYH,6BAGhD,MAAM/B,EAAOhC,iBACb,MAAMmE,EAAUlC,oBAChB,MAAM0B,EAAUb,oBAChB,MAAMgB,EAAQD","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 { createContext } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopperPrimitive 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 type * as Radix from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCard\n * -----------------------------------------------------------------------------------------------*/\n\nconst HOVERCARD_NAME = 'HoverCard';\n\ntype HoverCardContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpen(): void;\n onClose(): void;\n};\n\nconst [HoverCardProvider, useHoverCardContext] =\n createContext<HoverCardContextValue>(HOVERCARD_NAME);\n\ninterface HoverCardProps {\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) => {\n const {\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n openDelay = 700,\n closeDelay = 300,\n } = props;\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 // 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 open={open} onOpenChange={setOpen} onOpen={handleOpen} onClose={handleClose}>\n <PopperPrimitive.Root>{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, forwardedRef) => {\n const context = useHoverCardContext(TRIGGER_NAME);\n return (\n <PopperPrimitive.Anchor asChild>\n <Primitive.a\n data-state={context.open ? 'open' : 'closed'}\n {...props}\n ref={forwardedRef}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose))}\n ></Primitive.a>\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, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useHoverCardContext(CONTENT_NAME);\n return (\n <Presence present={forceMount || context.open}>\n <HoverCardContentImpl\n data-state={context.open ? 'open' : 'closed'}\n {...contentProps}\n onPointerEnter={composeEventHandlers(props.onMouseEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onMouseLeave, 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 PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface HoverCardContentImplProps extends PopperContentProps {\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, forwardedRef) => {\n const { portalled = true, ...contentProps } = props;\n const PortalWrapper = portalled ? Portal : React.Fragment;\n return (\n <PortalWrapper>\n <PopperPrimitive.Content\n {...contentProps}\n ref={forwardedRef}\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 </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, forwardedRef) => <PopperPrimitive.Arrow {...props} ref={forwardedRef} />\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\nconst Root = HoverCard;\nconst Trigger = HoverCardTrigger;\nconst Content = HoverCardContent;\nconst Arrow = HoverCardArrow;\n\nexport {\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","HoverCardProvider","useHoverCardContext","createContext","HoverCard","props","children","open","openProp","defaultOpen","onOpenChange","openDelay","closeDelay","openTimerRef","React","useRef","closeTimerRef","setOpen","useControllableState","prop","defaultProp","onChange","handleOpen","useCallback","clearTimeout","current","window","setTimeout","handleClose","useEffect","_react","createElement","$a9187305359b3319ee1ff04b4d7510$var$HoverCardProvider","onOpen","onClose","_radixUiReactPopper","Root","HoverCardTrigger","forwardRef","forwardedRef","context","Anchor","asChild","Primitive","_babelRuntimeHelpersExtends","ref","onPointerEnter","composeEventHandlers","excludeTouch","onPointerLeave","HoverCardContent","forceMount","contentProps","Presence","present","$a9187305359b3319ee1ff04b4d7510$var$HoverCardContentImpl","onMouseEnter","onMouseLeave","HoverCardContentImpl","portalled","PortalWrapper","Portal","Fragment","Content","style","HoverCardArrow","Arrow","eventHandler","event","pointerType","undefined","Trigger"],"version":3,"file":"index.js.map"}
|
package/dist/index.module.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Primitive as e}from"@radix-ui/react-primitive";import{Presence as r}from"@radix-ui/react-presence";import{Portal as o}from"@radix-ui/react-portal";import*as t from"@radix-ui/react-popper";import{useControllableState as n}from"@radix-ui/react-use-controllable-state";import{createContext as a}from"@radix-ui/react-context";import{composeEventHandlers as i}from"@radix-ui/primitive";import*as c from"react";import p from"@babel/runtime/helpers/esm/extends";const[s,l]=a("HoverCard");export const HoverCard=e=>{const{children:r,open:o,defaultOpen:a,onOpenChange:i,openDelay:p=700,closeDelay:l=300}=e,m=c.useRef(0),u=c.useRef(0),[d=!1,f]=n({prop:o,defaultProp:a,onChange:i}),C=c.useCallback((()=>{clearTimeout(u.current),m.current=window.setTimeout((()=>f(!0)),p)}),[p,f]),v=c.useCallback((()=>{clearTimeout(m.current),u.current=window.setTimeout((()=>f(!1)),l)}),[l,f]);return c.useEffect((()=>()=>{clearTimeout(m.current),clearTimeout(u.current)}),[]),/*#__PURE__*/c.createElement(s,{open:d,onOpenChange:f,onOpen:C,onClose:v},/*#__PURE__*/c.createElement(t.Root,null,r))};/*#__PURE__*/export const HoverCardTrigger=/*#__PURE__*/c.forwardRef(((r,o)=>{const n=l("HoverCardTrigger");/*#__PURE__*/return c.createElement(t.Anchor,{asChild:!0},/*#__PURE__*/c.createElement(e.a,p({"data-state":n.open?"open":"closed"},r,{ref:o,onPointerEnter:i(r.onPointerEnter,u(n.onOpen)),onPointerLeave:i(r.onPointerLeave,u(n.onClose))})))}));/*#__PURE__*/export const HoverCardContent=/*#__PURE__*/c.forwardRef(((e,o)=>{const{forceMount:t,...n}=e,a=l("HoverCardContent");/*#__PURE__*/return c.createElement(r,{present:t||a.open},/*#__PURE__*/c.createElement(m,p({"data-state":a.open?"open":"closed"},n,{onPointerEnter:i(e.onMouseEnter,u(a.onOpen)),onPointerLeave:i(e.onMouseLeave,u(a.onClose)),ref:o})))}));/*#__PURE__*/const m=/*#__PURE__*/c.forwardRef(((e,r)=>{const{portalled:n=!0,...a}=e,i=n?o:c.Fragment;/*#__PURE__*/return c.createElement(i,null,/*#__PURE__*/c.createElement(t.Content,p({},a,{ref:r,style:{...a.style,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)"}})))}));export const HoverCardArrow=/*#__PURE__*/c.forwardRef(((e,r)=>/*#__PURE__*/c.createElement(t.Arrow,p({},e,{ref:r}))));/*#__PURE__*/function u(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;
|
|
2
2
|
//# sourceMappingURL=index.module.js.map
|
package/dist/index.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"odAcA,MASOA,EAAmBC,GAAuBC,EAT1B,oBAqBvB,MAAMC,UAA0CC,IAC9C,MAAMC,SACJA,EACAC,KAAMC,EAFFC,YAGJA,EAHIC,aAIJA,EAJIC,UAKJA,EAAY,IALRC,WAMJA,EAAa,KACXP,EACEQ,EAAeC,EAAMC,OAAO,GAC5BC,EAAgBF,EAAMC,OAAO,IAE5BR,GAAO,EAAOU,GAAWC,EAAqB,CACnDC,KAAMX,EACNY,YAAaX,EACbY,SAAUX,IAGNY,EAAaR,EAAMS,aAAY,KACnCC,aAAaR,EAAcS,SAC3BZ,EAAaY,QAAUC,OAAOC,YAAW,IAAMV,GAAQ,IAAON,KAC7D,CAACA,EAAWM,IAETW,EAAcd,EAAMS,aAAY,KACpCC,aAAaX,EAAaY,SAC1BT,EAAcS,QAAUC,OAAOC,YAAW,IAAMV,GAAQ,IAAQL,KAC/D,CAACA,EAAYK,IAUhB,OAPAH,EAAMe,WAAU,IACP,KACLL,aAAaX,EAAaY,SAC1BD,aAAaR,EAAcS,WAE5B,iBAGDK,EAAAC,cAACC,EAAD,CAAmBzB,KAAMA,EAAMG,aAAcO,EAASgB,OAAQX,EAAYY,QAASN,gBACjFE,EAAAC,cAACI,EAAgBC,KAAjB,KAAuB9B,kBAW7B,MACM+B,EAAsB,WAQ5B,MAAMC,8BAAmBxB,EAAMyB,YAAW,CAAClC,EAAOmC,KAChD,MAAMC,GAAEA,EAAKJ,KAAwBK,GAAiBrC,EAChDsC,EAAUzC,EAXG,iCAanB,OACE4B,EAAAC,cAACI,EAAgBS,OAAjBC,EAAA,CACEC,aAAYH,EAAQpC,KAAO,OAAS,UAChCmC,EAFN,CAGED,GAAIA,EACJM,IAAKP,EACLQ,eAAgBC,EAAqB5C,EAAM2C,eAAgBE,EAAaP,EAAQV,SAChFkB,eAAgBF,EAAqB5C,EAAM8C,eAAgBD,EAAaP,EAAQT,oCA6BtF,MAAMkB,8BAAmBtC,EAAMyB,YAAW,CAAClC,EAAOmC,KAChD,MAAMa,WAAEA,KAAeC,GAAiBjD,EAClCsC,EAAUzC,EApBG,iCAsBnB,OACE4B,EAAAC,cAACwB,EAAD,CAAUC,QAASH,GAAcV,EAAQpC,mBACvCuB,EAAAC,cAAC0B,EAADZ,EAAA,CACEC,aAAYH,EAAQpC,KAAO,OAAS,UAChC+C,EAFN,CAGEN,eAAgBC,EAAqB5C,EAAMqD,aAAcR,EAAaP,EAAQV,SAC9EkB,eAAgBF,EAAqB5C,EAAMsD,aAAcT,EAAaP,EAAQT,UAC9Ea,IAAKP,SAuBb,MAAMoB,eAAuB9C,EAAMyB,YAAW,CAAClC,EAAOmC,KACpD,MAAMqB,UAAEA,GAAY,KAASP,GAAiBjD,EAExCyD,EAAgBD,EAAYE,EAASjD,EAAMkD,sBAEjD,OACElC,EAAAC,cAAC+B,EAAD,kBACEhC,EAAAC,cAACI,EAAgB8B,QAAjBpB,EAAA,GACMS,EADN,CAEEP,IAAKP,EACL0B,MAAO,IACFZ,EAAaY,MAEhBC,8CAAwD,mEAWlE,MAAMC,eAAiBC,EAAgBC,EAAgBC,MAAO,CAAEC,YAAa,mBAI7E,SAAStB,EAAgBuB,GACvB,OAAQC,GACgB,UAAtBA,EAAMC,iBAA0BC,EAAYH,WAGhD,MAAMrC,KAAOhC,iBACb,MAAMyE,QAAUvC,wBAChB,MAAM2B,QAAUb,wBAChB,MAAMmB,MAAQH","sources":["./packages/react/hover-card/src/HoverCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContext } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { Portal } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive, extendPrimitive } from '@radix-ui/react-primitive';\nimport type * as Polymorphic from '@radix-ui/react-polymorphic';\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCard\n * -----------------------------------------------------------------------------------------------*/\n\nconst HOVERCARD_NAME = 'HoverCard';\n\ntype HoverCardContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpen(): void;\n onClose(): void;\n};\n\nconst [HoverCardProvider, useHoverCardContext] = createContext<HoverCardContextValue>(\n HOVERCARD_NAME\n);\n\ntype HoverCardOwnProps = {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n openDelay?: number;\n closeDelay?: number;\n};\n\nconst HoverCard: React.FC<HoverCardOwnProps> = (props) => {\n const {\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n openDelay = 700,\n closeDelay = 300,\n } = props;\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 // 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 open={open} onOpenChange={setOpen} onOpen={handleOpen} onClose={handleClose}>\n <PopperPrimitive.Root>{children}</PopperPrimitive.Root>\n </HoverCardProvider>\n );\n};\n\nHoverCard.displayName = HOVERCARD_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'HoverCardTrigger';\nconst TRIGGER_DEFAULT_TAG = 'a';\n\ntype HoverCardTriggerOwnProps = Polymorphic.OwnProps<typeof Primitive>;\ntype HoverCardTriggerPrimitive = Polymorphic.ForwardRefComponent<\n typeof TRIGGER_DEFAULT_TAG,\n HoverCardTriggerOwnProps\n>;\n\nconst HoverCardTrigger = React.forwardRef((props, forwardedRef) => {\n const { as = TRIGGER_DEFAULT_TAG, ...triggerProps } = props;\n const context = useHoverCardContext(TRIGGER_NAME);\n\n return (\n <PopperPrimitive.Anchor\n data-state={context.open ? 'open' : 'closed'}\n {...triggerProps}\n as={as}\n ref={forwardedRef}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose))}\n />\n );\n}) as HoverCardTriggerPrimitive;\n\nHoverCardTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCardContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'HoverCardContent';\n\ntype HoverCardContentOwnProps = Polymorphic.Merge<\n Polymorphic.OwnProps<typeof HoverCardContentImpl>,\n {\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>;\n\ntype HoverCardContentPrimitive = Polymorphic.ForwardRefComponent<\n Polymorphic.IntrinsicElement<typeof HoverCardContentImpl>,\n HoverCardContentOwnProps\n>;\n\nconst HoverCardContent = React.forwardRef((props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useHoverCardContext(CONTENT_NAME);\n\n return (\n <Presence present={forceMount || context.open}>\n <HoverCardContentImpl\n data-state={context.open ? 'open' : 'closed'}\n {...contentProps}\n onPointerEnter={composeEventHandlers(props.onMouseEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onMouseLeave, excludeTouch(context.onClose))}\n ref={forwardedRef}\n />\n </Presence>\n );\n}) as HoverCardContentPrimitive;\n\ntype PopperPrimitiveOwnProps = Polymorphic.OwnProps<typeof PopperPrimitive.Content>;\ntype HoverCardContentImplOwnProps = Polymorphic.Merge<\n PopperPrimitiveOwnProps,\n {\n /**\n * Whether the `HoverCard` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n }\n>;\n\ntype HoverCardContentImplPrimitive = Polymorphic.ForwardRefComponent<\n Polymorphic.IntrinsicElement<typeof PopperPrimitive.Content>,\n HoverCardContentImplOwnProps\n>;\n\nconst HoverCardContentImpl = React.forwardRef((props, forwardedRef) => {\n const { portalled = true, ...contentProps } = props;\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <PopperPrimitive.Content\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-hover-card-content-transform-origin' as any]: 'var(--radix-popper-transform-origin)',\n }}\n />\n </PortalWrapper>\n );\n}) as HoverCardContentImplPrimitive;\n\nHoverCardContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nconst HoverCardArrow = extendPrimitive(PopperPrimitive.Arrow, { displayName: 'HoverCardArrow' });\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction excludeTouch<E>(eventHandler: () => void) {\n return (event: React.PointerEvent<E>) =>\n event.pointerType === 'touch' ? undefined : eventHandler();\n}\n\nconst Root = HoverCard;\nconst Trigger = HoverCardTrigger;\nconst Content = HoverCardContent;\nconst Arrow = HoverCardArrow;\n\nexport {\n HoverCard,\n HoverCardTrigger,\n HoverCardContent,\n HoverCardArrow,\n //\n Root,\n Trigger,\n Content,\n Arrow,\n};\nexport type { HoverCardTriggerPrimitive, HoverCardContentPrimitive };\n"],"names":["HoverCardProvider","useHoverCardContext","createContext","HoverCard","props","children","open","openProp","defaultOpen","onOpenChange","openDelay","closeDelay","openTimerRef","React","useRef","closeTimerRef","setOpen","useControllableState","prop","defaultProp","onChange","handleOpen","useCallback","clearTimeout","current","window","setTimeout","handleClose","useEffect","_react","createElement","$ddf490131a2c96ef2ad05ece6$var$HoverCardProvider","onOpen","onClose","_radixUiReactPopper","Root","TRIGGER_DEFAULT_TAG","HoverCardTrigger","forwardRef","forwardedRef","as","triggerProps","context","Anchor","_babelRuntimeHelpersEsmExtends","data-state","ref","onPointerEnter","composeEventHandlers","excludeTouch","onPointerLeave","HoverCardContent","forceMount","contentProps","Presence","present","$ddf490131a2c96ef2ad05ece6$var$HoverCardContentImpl","onMouseEnter","onMouseLeave","HoverCardContentImpl","portalled","PortalWrapper","Portal","Fragment","Content","style","--radix-hover-card-content-transform-origin","HoverCardArrow","extendPrimitive","PopperPrimitive","Arrow","displayName","eventHandler","event","pointerType","undefined","Trigger"],"version":3,"file":"index.module.js.map"}
|
|
1
|
+
{"mappings":"8cAcA,MASOA,EAAmBC,GACxBC,EAVqB,oBAoBvB,MAAMC,UAAuCC,IAC3C,MAAMC,SACJA,EACAC,KAAMC,EAFFC,YAGJA,EAHIC,aAIJA,EAJIC,UAKJA,EAAY,IALRC,WAMJA,EAAa,KACXP,EACEQ,EAAeC,EAAMC,OAAO,GAC5BC,EAAgBF,EAAMC,OAAO,IAE5BR,GAAO,EAAOU,GAAWC,EAAqB,CACnDC,KAAMX,EACNY,YAAaX,EACbY,SAAUX,IAGNY,EAAaR,EAAMS,aAAY,KACnCC,aAAaR,EAAcS,SAC3BZ,EAAaY,QAAUC,OAAOC,YAAW,IAAMV,GAAQ,IAAON,KAC7D,CAACA,EAAWM,IAETW,EAAcd,EAAMS,aAAY,KACpCC,aAAaX,EAAaY,SAC1BT,EAAcS,QAAUC,OAAOC,YAAW,IAAMV,GAAQ,IAAQL,KAC/D,CAACA,EAAYK,IAUhB,OAPAH,EAAMe,WAAU,IACP,KACLL,aAAaX,EAAaY,SAC1BD,aAAaR,EAAcS,WAE5B,iBAGDK,EAAAC,cAACC,EAAD,CAAmBzB,KAAMA,EAAMG,aAAcO,EAASgB,OAAQX,EAAYY,QAASN,gBACjFE,EAAAC,cAACI,EAAgBC,KAAjB,KAAuB9B,yBAiB7B,MAAM+B,8BAAmBvB,EAAMwB,YAC7B,CAACjC,EAAOkC,KACN,MAAMC,EAAUtC,EARC,iCASjB,OACE4B,EAAAC,cAACI,EAAgBM,OAAjB,CAAwBC,SAAO,gBAC7BZ,EAAAC,cAACY,EAAUC,EAAXC,EAAA,CACE,aAAYL,EAAQjC,KAAO,OAAS,UAChCF,EAFN,CAGEyC,IAAKP,EACLQ,eAAgBC,EAAqB3C,EAAM0C,eAAgBE,EAAaT,EAAQP,SAChFiB,eAAgBF,EAAqB3C,EAAM6C,eAAgBD,EAAaT,EAAQN,qCAwB1F,MAAMiB,8BAAmBrC,EAAMwB,YAC7B,CAACjC,EAAOkC,KACN,MAAMa,WAAEA,KAAeC,GAAiBhD,EAClCmC,EAAUtC,EAdC,iCAejB,OACE4B,EAAAC,cAACuB,EAAD,CAAUC,QAASH,GAAcZ,EAAQjC,mBACvCuB,EAAAC,cAACyB,EAADX,EAAA,CACE,aAAYL,EAAQjC,KAAO,OAAS,UAChC8C,EAFN,CAGEN,eAAgBC,EAAqB3C,EAAMoD,aAAcR,EAAaT,EAAQP,SAC9EiB,eAAgBF,EAAqB3C,EAAMqD,aAAcT,EAAaT,EAAQN,UAC9EY,IAAKP,sBAqBf,MAAMoB,eAAuB7C,EAAMwB,YAGjC,CAACjC,EAAOkC,KACR,MAAMqB,UAAEA,GAAY,KAASP,GAAiBhD,EACxCwD,EAAgBD,EAAYE,EAAShD,EAAMiD,sBACjD,OACEjC,EAAAC,cAAC8B,EAAD,kBACE/B,EAAAC,cAACI,EAAgB6B,QAAjBnB,EAAA,GACMQ,EADN,CAEEP,IAAKP,EACL0B,MAAO,IACFZ,EAAaY,MAEhB,8CACE,sDAiBZ,MAAMC,4BAAiBpD,EAAMwB,YAC3B,CAACjC,EAAOkC,iBAAiBT,EAAAC,cAACI,EAAgBgC,MAAjBtB,EAAA,GAA2BxC,EAA3B,CAAkCyC,IAAKP,oBAOlE,SAASU,EAAgBmB,GACvB,OAAQC,GACgB,UAAtBA,EAAMC,iBAA0BC,EAAYH,WAGhD,MAAMhC,KAAOhC,iBACb,MAAMoE,QAAUnC,wBAChB,MAAM2B,QAAUb,wBAChB,MAAMgB,MAAQD","sources":["./packages/react/hover-card/src/HoverCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContext } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopperPrimitive 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 type * as Radix from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * HoverCard\n * -----------------------------------------------------------------------------------------------*/\n\nconst HOVERCARD_NAME = 'HoverCard';\n\ntype HoverCardContextValue = {\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpen(): void;\n onClose(): void;\n};\n\nconst [HoverCardProvider, useHoverCardContext] =\n createContext<HoverCardContextValue>(HOVERCARD_NAME);\n\ninterface HoverCardProps {\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) => {\n const {\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n openDelay = 700,\n closeDelay = 300,\n } = props;\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 // 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 open={open} onOpenChange={setOpen} onOpen={handleOpen} onClose={handleClose}>\n <PopperPrimitive.Root>{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, forwardedRef) => {\n const context = useHoverCardContext(TRIGGER_NAME);\n return (\n <PopperPrimitive.Anchor asChild>\n <Primitive.a\n data-state={context.open ? 'open' : 'closed'}\n {...props}\n ref={forwardedRef}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, excludeTouch(context.onClose))}\n ></Primitive.a>\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, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useHoverCardContext(CONTENT_NAME);\n return (\n <Presence present={forceMount || context.open}>\n <HoverCardContentImpl\n data-state={context.open ? 'open' : 'closed'}\n {...contentProps}\n onPointerEnter={composeEventHandlers(props.onMouseEnter, excludeTouch(context.onOpen))}\n onPointerLeave={composeEventHandlers(props.onMouseLeave, 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 PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface HoverCardContentImplProps extends PopperContentProps {\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, forwardedRef) => {\n const { portalled = true, ...contentProps } = props;\n const PortalWrapper = portalled ? Portal : React.Fragment;\n return (\n <PortalWrapper>\n <PopperPrimitive.Content\n {...contentProps}\n ref={forwardedRef}\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 </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, forwardedRef) => <PopperPrimitive.Arrow {...props} ref={forwardedRef} />\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\nconst Root = HoverCard;\nconst Trigger = HoverCardTrigger;\nconst Content = HoverCardContent;\nconst Arrow = HoverCardArrow;\n\nexport {\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":["HoverCardProvider","useHoverCardContext","createContext","HoverCard","props","children","open","openProp","defaultOpen","onOpenChange","openDelay","closeDelay","openTimerRef","React","useRef","closeTimerRef","setOpen","useControllableState","prop","defaultProp","onChange","handleOpen","useCallback","clearTimeout","current","window","setTimeout","handleClose","useEffect","_react","createElement","$ddf490131a2c96ef2ad05ece6$var$HoverCardProvider","onOpen","onClose","_radixUiReactPopper","Root","HoverCardTrigger","forwardRef","forwardedRef","context","Anchor","asChild","Primitive","a","_babelRuntimeHelpersEsmExtends","ref","onPointerEnter","composeEventHandlers","excludeTouch","onPointerLeave","HoverCardContent","forceMount","contentProps","Presence","present","$ddf490131a2c96ef2ad05ece6$var$HoverCardContentImpl","onMouseEnter","onMouseLeave","HoverCardContentImpl","portalled","PortalWrapper","Portal","Fragment","Content","style","HoverCardArrow","Arrow","eventHandler","event","pointerType","undefined","Trigger"],"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.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,19 +13,17 @@
|
|
|
13
13
|
"sideEffects": false,
|
|
14
14
|
"scripts": {
|
|
15
15
|
"clean": "rm -rf dist",
|
|
16
|
-
"prepublish": "yarn clean",
|
|
17
16
|
"version": "yarn version"
|
|
18
17
|
},
|
|
19
18
|
"dependencies": {
|
|
20
19
|
"@babel/runtime": "^7.13.10",
|
|
21
|
-
"@radix-ui/primitive": "0.0
|
|
22
|
-
"@radix-ui/react-context": "0.0
|
|
23
|
-
"@radix-ui/react-
|
|
24
|
-
"@radix-ui/react-
|
|
25
|
-
"@radix-ui/react-
|
|
26
|
-
"@radix-ui/react-
|
|
27
|
-
"@radix-ui/react-
|
|
28
|
-
"@radix-ui/react-use-controllable-state": "0.0.6"
|
|
20
|
+
"@radix-ui/primitive": "0.1.0",
|
|
21
|
+
"@radix-ui/react-context": "0.1.0",
|
|
22
|
+
"@radix-ui/react-popper": "0.1.0",
|
|
23
|
+
"@radix-ui/react-portal": "0.1.0",
|
|
24
|
+
"@radix-ui/react-presence": "0.1.0",
|
|
25
|
+
"@radix-ui/react-primitive": "0.1.0",
|
|
26
|
+
"@radix-ui/react-use-controllable-state": "0.1.0"
|
|
29
27
|
},
|
|
30
28
|
"peerDependencies": {
|
|
31
29
|
"react": "^16.8 || ^17.0",
|