@radix-ui/react-hover-card 0.1.1-rc.6 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -0
- 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 +10 -9
package/dist/index.d.ts
CHANGED
|
@@ -2,12 +2,14 @@ import * as React from "react";
|
|
|
2
2
|
import * as PopperPrimitive from "@radix-ui/react-popper";
|
|
3
3
|
import * as Radix from "@radix-ui/react-primitive";
|
|
4
4
|
import { Primitive } from "@radix-ui/react-primitive";
|
|
5
|
+
export const createHoverCardScope: import("@radix-ui/react-context").CreateScope;
|
|
5
6
|
export interface HoverCardProps {
|
|
6
7
|
open?: boolean;
|
|
7
8
|
defaultOpen?: boolean;
|
|
8
9
|
onOpenChange?: (open: boolean) => void;
|
|
9
10
|
openDelay?: number;
|
|
10
11
|
closeDelay?: number;
|
|
12
|
+
children?: React.ReactNode;
|
|
11
13
|
}
|
|
12
14
|
export const HoverCard: React.FC<HoverCardProps>;
|
|
13
15
|
type PrimitiveLinkProps = Radix.ComponentPropsWithoutRef<typeof Primitive.a>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A;A;A;A;
|
|
1
|
+
{"mappings":"A;A;A;A;AAsBA,OAAA,2FAEE,CAAC;AAaH;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;IACpB,QAAQ,CAAC,EAAE,MAAM,SAAS,CAAC;CAC5B;AAED,OAAA,MAAM,WAAW,MAAM,EAAE,CAAC,cAAc,CAiDvC,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,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,gBAAgB,OAAO,CAAC,CAAC;AACzF,mCAAoC,SAAQ,kBAAkB;IAC5D;A;A;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA8CD,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"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,r=require("@radix-ui/react-primitive").Primitive,
|
|
1
|
+
var e,r=require("@radix-ui/react-primitive").Primitive,o=require("@radix-ui/react-presence").Presence,t=require("@radix-ui/react-portal").Portal,n=require("@radix-ui/react-popper"),a=C({},n),c=n.createPopperScope,u=require("@radix-ui/react-compose-refs").useComposedRefs,i=require("@radix-ui/react-use-escape-keydown").useEscapeKeydown,s=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[v,m]=d("HoverCard",[c]);exports.createHoverCardScope=m;const x=c(),[E,H]=v("HoverCard"),T=e=>{const{__scopeHoverCard:r,children:o,open:t,defaultOpen:n,onOpenChange:c,openDelay:u=700,closeDelay:i=300}=e,d=x(r),l=p.useRef(0),f=p.useRef(0),[C=!1,v]=s({prop:t,defaultProp:n,onChange:c}),m=p.useCallback((()=>{clearTimeout(f.current),l.current=window.setTimeout((()=>v(!0)),u)}),[u,v]),H=p.useCallback((()=>{clearTimeout(l.current),f.current=window.setTimeout((()=>v(!1)),i)}),[i,v]);return p.useEffect((()=>()=>{clearTimeout(l.current),clearTimeout(f.current)}),[]),/*#__PURE__*/p.createElement(E,{scope:r,open:C,onOpenChange:v,onOpen:m,onClose:H},/*#__PURE__*/p.createElement(a.Root,d,o))};exports.HoverCard=T;const _=/*#__PURE__*/p.forwardRef(((e,o)=>{const{__scopeHoverCard:t,...n}=e,c=H("HoverCardTrigger",t),u=x(t);/*#__PURE__*/return p.createElement(a.Anchor,f({asChild:!0},u),/*#__PURE__*/p.createElement(r.a,f({"data-state":c.open?"open":"closed"},n,{ref:o,onPointerEnter:l(e.onPointerEnter,w(c.onOpen)),onPointerLeave:l(e.onPointerLeave,w(c.onClose)),onFocus:l(e.onFocus,c.onOpen),onBlur:l(e.onBlur,c.onClose),onTouchStart:l(e.onTouchStart,(e=>e.preventDefault()))})))}));exports.HoverCardTrigger=_;const P=/*#__PURE__*/p.forwardRef(((e,r)=>{const{forceMount:t,...n}=e,a=H("HoverCardContent",e.__scopeHoverCard);/*#__PURE__*/return p.createElement(o,{present:t||a.open},/*#__PURE__*/p.createElement(h,f({"data-state":a.open?"open":"closed"},n,{onPointerEnter:l(e.onPointerEnter,w(a.onOpen)),onPointerLeave:l(e.onPointerLeave,w(a.onClose)),ref:r})))}));exports.HoverCardContent=P;const h=/*#__PURE__*/p.forwardRef(((e,r)=>{const{__scopeHoverCard:o,portalled:n=!0,...c}=e,s=H("HoverCardContent",o),d=x(o),l=p.useRef(null),C=u(r,l),v=n?t:p.Fragment;return i((()=>s.onClose())),p.useEffect((()=>{if(l.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})(l.current).forEach((e=>e.setAttribute("tabindex","-1")))}})),/*#__PURE__*/p.createElement(v,null,/*#__PURE__*/p.createElement(a.Content,f({},d,c,{ref:C,style:{...c.style,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)"}})))})),g=/*#__PURE__*/p.forwardRef(((e,r)=>{const{__scopeHoverCard:o,...t}=e,n=x(o);/*#__PURE__*/return p.createElement(a.Arrow,f({},n,t,{ref:r}))}));function w(e){return r=>"touch"===r.pointerType?void 0:e()}exports.HoverCardArrow=g;const b=T;exports.Root=b;const R=_;exports.Trigger=R;const q=P;exports.Content=q;const O=g;exports.Arrow=O;
|
|
2
2
|
//# 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 { 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 />\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"}
|
|
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 { useEscapeKeydown } from '@radix-ui/react-use-escape-keydown';\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';\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};\n\nconst [HoverCardProvider, useHoverCardContext] =\n createHoverCardContext<HoverCardContextValue>(HOVERCARD_NAME);\n\ninterface HoverCardProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n openDelay?: number;\n closeDelay?: number;\n children?: React.ReactNode;\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 // 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 >\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 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: ScopedProps<HoverCardContentImplProps>, forwardedRef) => {\n const { __scopeHoverCard, portalled = true, ...contentProps } = 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 useEscapeKeydown(() => context.onClose());\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 <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 </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","useEffect","_react","createElement","$a9187305359b3319ee1ff04b4d7510$var$HoverCardProvider","scope","onOpen","onClose","_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","composedRefs","useComposedRefs","PortalWrapper","Portal","Fragment","useEscapeKeydown","container","nodes","walker","document","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","node","tabIndex","FILTER_ACCEPT","FILTER_SKIP","nextNode","push","currentNode","getTabbableNodes","tabbable","setAttribute","Content","style","HoverCardArrow","arrowProps","Arrow","eventHandler","pointerType","undefined","Trigger"],"version":3,"file":"index.js.map"}
|
package/dist/index.module.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
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{
|
|
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{createPopperScope as n}from"@radix-ui/react-popper";import{useComposedRefs as a}from"@radix-ui/react-compose-refs";import{useEscapeKeydown as c}from"@radix-ui/react-use-escape-keydown";import{useControllableState as i}from"@radix-ui/react-use-controllable-state";import{createContextScope as p}from"@radix-ui/react-context";import{composeEventHandlers as s}from"@radix-ui/primitive";import*as u from"react";import d from"@babel/runtime/helpers/esm/extends";const[l,m]=p("HoverCard",[n]);export{m as createHoverCardScope};const f=n(),[C,v]=l("HoverCard");export const HoverCard=e=>{const{__scopeHoverCard:r,children:o,open:n,defaultOpen:a,onOpenChange:c,openDelay:p=700,closeDelay:s=300}=e,d=f(r),l=u.useRef(0),m=u.useRef(0),[v=!1,x]=i({prop:n,defaultProp:a,onChange:c}),E=u.useCallback((()=>{clearTimeout(m.current),l.current=window.setTimeout((()=>x(!0)),p)}),[p,x]),H=u.useCallback((()=>{clearTimeout(l.current),m.current=window.setTimeout((()=>x(!1)),s)}),[s,x]);return u.useEffect((()=>()=>{clearTimeout(l.current),clearTimeout(m.current)}),[]),/*#__PURE__*/u.createElement(C,{scope:r,open:v,onOpenChange:x,onOpen:E,onClose:H},/*#__PURE__*/u.createElement(t.Root,d,o))};/*#__PURE__*/export const HoverCardTrigger=/*#__PURE__*/u.forwardRef(((r,o)=>{const{__scopeHoverCard:n,...a}=r,c=v("HoverCardTrigger",n),i=f(n);/*#__PURE__*/return u.createElement(t.Anchor,d({asChild:!0},i),/*#__PURE__*/u.createElement(e.a,d({"data-state":c.open?"open":"closed"},a,{ref:o,onPointerEnter:s(r.onPointerEnter,E(c.onOpen)),onPointerLeave:s(r.onPointerLeave,E(c.onClose)),onFocus:s(r.onFocus,c.onOpen),onBlur:s(r.onBlur,c.onClose),onTouchStart:s(r.onTouchStart,(e=>e.preventDefault()))})))}));/*#__PURE__*/export const HoverCardContent=/*#__PURE__*/u.forwardRef(((e,o)=>{const{forceMount:t,...n}=e,a=v("HoverCardContent",e.__scopeHoverCard);/*#__PURE__*/return u.createElement(r,{present:t||a.open},/*#__PURE__*/u.createElement(x,d({"data-state":a.open?"open":"closed"},n,{onPointerEnter:s(e.onPointerEnter,E(a.onOpen)),onPointerLeave:s(e.onPointerLeave,E(a.onClose)),ref:o})))}));/*#__PURE__*/const x=/*#__PURE__*/u.forwardRef(((e,r)=>{const{__scopeHoverCard:n,portalled:i=!0,...p}=e,s=v("HoverCardContent",n),l=f(n),m=u.useRef(null),C=a(r,m),x=i?o:u.Fragment;return c((()=>s.onClose())),u.useEffect((()=>{if(m.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})(m.current).forEach((e=>e.setAttribute("tabindex","-1")))}})),/*#__PURE__*/u.createElement(x,null,/*#__PURE__*/u.createElement(t.Content,d({},l,p,{ref:C,style:{...p.style,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)"}})))}));export const HoverCardArrow=/*#__PURE__*/u.forwardRef(((e,r)=>{const{__scopeHoverCard:o,...n}=e,a=f(o);/*#__PURE__*/return u.createElement(t.Arrow,d({},a,n,{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;
|
|
2
2
|
//# sourceMappingURL=index.module.js.map
|
package/dist/index.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 />\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"}
|
|
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 { useEscapeKeydown } from '@radix-ui/react-use-escape-keydown';\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';\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};\n\nconst [HoverCardProvider, useHoverCardContext] =\n createHoverCardContext<HoverCardContextValue>(HOVERCARD_NAME);\n\ninterface HoverCardProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n openDelay?: number;\n closeDelay?: number;\n children?: React.ReactNode;\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 // 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 >\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 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: ScopedProps<HoverCardContentImplProps>, forwardedRef) => {\n const { __scopeHoverCard, portalled = true, ...contentProps } = 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 useEscapeKeydown(() => context.onClose());\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 <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 </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","useEffect","_react","createElement","$ddf490131a2c96ef2ad05ece6$var$HoverCardProvider","scope","onOpen","onClose","_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","composedRefs","useComposedRefs","PortalWrapper","Portal","Fragment","useEscapeKeydown","container","nodes","walker","document","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","node","tabIndex","FILTER_ACCEPT","FILTER_SKIP","nextNode","push","currentNode","getTabbableNodes","forEach","tabbable","setAttribute","Content","style","HoverCardArrow","arrowProps","Arrow","eventHandler","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.1.1
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -18,12 +18,14 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@babel/runtime": "^7.13.10",
|
|
20
20
|
"@radix-ui/primitive": "0.1.0",
|
|
21
|
-
"@radix-ui/react-
|
|
22
|
-
"@radix-ui/react-
|
|
23
|
-
"@radix-ui/react-
|
|
24
|
-
"@radix-ui/react-
|
|
25
|
-
"@radix-ui/react-
|
|
26
|
-
"@radix-ui/react-
|
|
21
|
+
"@radix-ui/react-compose-refs": "0.1.0",
|
|
22
|
+
"@radix-ui/react-context": "0.1.1",
|
|
23
|
+
"@radix-ui/react-popper": "0.1.1",
|
|
24
|
+
"@radix-ui/react-portal": "0.1.1",
|
|
25
|
+
"@radix-ui/react-presence": "0.1.1",
|
|
26
|
+
"@radix-ui/react-primitive": "0.1.1",
|
|
27
|
+
"@radix-ui/react-use-controllable-state": "0.1.0",
|
|
28
|
+
"@radix-ui/react-use-escape-keydown": "0.1.0"
|
|
27
29
|
},
|
|
28
30
|
"peerDependencies": {
|
|
29
31
|
"react": "^16.8 || ^17.0",
|
|
@@ -36,6 +38,5 @@
|
|
|
36
38
|
},
|
|
37
39
|
"bugs": {
|
|
38
40
|
"url": "https://github.com/radix-ui/primitives/issues"
|
|
39
|
-
}
|
|
40
|
-
"stableVersion": "0.1.0"
|
|
41
|
+
}
|
|
41
42
|
}
|