@radix-ui/react-popover 0.1.6-rc.1 → 0.1.7-rc.2
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 +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.module.js.map +1 -1
- package/package.json +15 -15
package/dist/index.d.ts
CHANGED
|
@@ -7,11 +7,11 @@ import { Primitive } from "@radix-ui/react-primitive";
|
|
|
7
7
|
import { RemoveScroll } from "react-remove-scroll";
|
|
8
8
|
export const createPopoverScope: import("@radix-ui/react-context").CreateScope;
|
|
9
9
|
export interface PopoverProps {
|
|
10
|
+
children?: React.ReactNode;
|
|
10
11
|
open?: boolean;
|
|
11
12
|
defaultOpen?: boolean;
|
|
12
13
|
onOpenChange?: (open: boolean) => void;
|
|
13
14
|
modal?: boolean;
|
|
14
|
-
children?: React.ReactNode;
|
|
15
15
|
}
|
|
16
16
|
export const Popover: React.FC<PopoverProps>;
|
|
17
17
|
type PopperAnchorProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A;A;A;A;A;A;A;AA2BA,OAAA,yFAEE,CAAC;AAkBH;IACE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"mappings":"A;A;A;A;A;A;A;AA2BA,OAAA,yFAEE,CAAC;AAkBH;IACE,QAAQ,CAAC,EAAE,MAAM,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,OAAA,MAAM,SAAS,MAAM,EAAE,CAAC,YAAY,CAoCnC,CAAC;AAWF,yBAAyB,MAAM,wBAAwB,CAAC,OAAO,gBAAgB,MAAM,CAAC,CAAC;AACvF,mCAA6B,SAAQ,iBAAiB;CAAG;AAEzD,OAAA,MAAM,wGAcL,CAAC;AAWF,4BAA4B,MAAM,wBAAwB,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC;AACpF,oCAA8B,SAAQ,oBAAoB;CAAG;AAE7D,OAAA,MAAM,6GA4BL,CAAC;AAUF,oCAA8B,SAAQ,uBAAuB;IAC3D;A;A;OAGG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED,OAAA,MAAM,0GAcL,CAAC;AAMF,yBAAyB,MAAM,cAAc,CAAC,mBAAmB,CAAC,CAAC;AAEnE,iCACE,SAAQ,IAAI,CAAC,uBAAuB,EAAE,WAAW,GAAG,6BAA6B,CAAC;IAClF;A;OAEG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACrD;A;A;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA2GD,uBAAuB,MAAM,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;AACzE,6BAA6B,MAAM,wBAAwB,CAAC,uBAAuB,CAAC,CAAC;AACrF,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,gBAAgB,OAAO,CAAC,CAAC;AACzF,iCACE,SAAQ,kBAAkB,EACxB,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC;IAC1C;A;A;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAEvC;A;A;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEtD;A;A;OAGG;IACH,gBAAgB,CAAC,EAAE,eAAe,CAAC,oBAAoB,CAAC,CAAC;CAC1D;AAmED,kCAA4B,SAAQ,oBAAoB;CAAG;AAE3D,OAAA,MAAM,yGAaL,CAAC;AAWF,wBAAwB,MAAM,wBAAwB,CAAC,OAAO,gBAAgB,KAAK,CAAC,CAAC;AACrF,kCAA4B,SAAQ,gBAAgB;CAAG;AAEvD,OAAA,MAAM,qGAML,CAAC;AAUF,OAAA,MAAM,4BAAc,CAAC;AACrB,OAAA,MAAM,iGAAsB,CAAC;AAC7B,OAAA,MAAM,sGAAwB,CAAC;AAC/B,OAAA,MAAM,mGAAwB,CAAC;AAC/B,OAAA,MAAM,kGAAoB,CAAC;AAC3B,OAAA,MAAM,8FAAoB,CAAC","sources":["./packages/react/popover/src/packages/react/popover/src/Popover.tsx","./packages/react/popover/src/packages/react/popover/src/index.ts"],"sourcesContent":[null,null],"names":[],"version":3,"file":"index.d.ts.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/popover/src/Popover.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 { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal } from '@radix-ui/react-portal';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useId } from '@radix-ui/react-id';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = 'Popover';\n\ntype ScopedProps<P> = P & { __scopePopover?: Scope };\nconst [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype PopoverContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement>;\n contentId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n hasCustomAnchor: boolean;\n onCustomAnchorAdd(): void;\n onCustomAnchorRemove(): void;\n modal: boolean;\n};\n\nconst [PopoverProvider, usePopoverContext] =\n createPopoverContext<PopoverContextValue>(POPOVER_NAME);\n\ninterface PopoverProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n children?: React.ReactNode;\n}\n\nconst Popover: React.FC<PopoverProps> = (props: ScopedProps<PopoverProps>) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false,\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n <PopperPrimitive.Root {...popperScope}>\n <PopoverProvider\n scope={__scopePopover}\n contentId={useId()}\n triggerRef={triggerRef}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(() => setHasCustomAnchor(true), [])}\n onCustomAnchorRemove={React.useCallback(() => setHasCustomAnchor(false), [])}\n modal={modal}\n >\n {children}\n </PopoverProvider>\n </PopperPrimitive.Root>\n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'PopoverAnchor';\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopperPrimitive.Anchor>;\ntype PopperAnchorProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef<PopoverAnchorElement, PopoverAnchorProps>(\n (props: ScopedProps<PopoverAnchorProps>, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n\n return <PopperPrimitive.Anchor {...popperScope} {...anchorProps} ref={forwardedRef} />;\n }\n);\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'PopoverTrigger';\n\ntype PopoverTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef<PopoverTriggerElement, PopoverTriggerProps>(\n (props: ScopedProps<PopoverTriggerProps>, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n\n const trigger = (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n\n return context.hasCustomAnchor ? (\n trigger\n ) : (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n {trigger}\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nPopoverTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'PopoverContent';\n\ninterface PopoverContentProps extends PopoverContentTypeProps {\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 PopoverContent = React.forwardRef<PopoverContentTypeElement, PopoverContentProps>(\n (props: ScopedProps<PopoverContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <PopoverContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <PopoverContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype RemoveScrollProps = React.ComponentProps<typeof RemoveScroll>;\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit<PopoverContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom'];\n /**\n * Whether the `Popover` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n}\n\nconst PopoverContentModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { allowPinchZoom, portalled = true, ...contentModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <RemoveScroll allowPinchZoom={allowPinchZoom}>\n <PopoverContentImpl\n {...contentModalProps}\n ref={composedRefs}\n // we make sure we're not trapping once it's been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n )}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )}\n />\n </RemoveScroll>\n </PortalWrapper>\n );\n }\n);\n\nconst PopoverContentNonModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { portalled = true, ...contentNonModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <PopoverContentImpl\n {...contentNonModalProps}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true;\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n }}\n />\n </PortalWrapper>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<typeof PopperPrimitive.Content>;\ntype FocusScopeProps = Radix.ComponentPropsWithoutRef<typeof FocusScope>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface PopoverContentImplProps\n extends PopperContentProps,\n Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * Whether focus should be trapped within the `Popover`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst PopoverContentImpl = React.forwardRef<PopoverContentImplElement, PopoverContentImplProps>(\n (props: ScopedProps<PopoverContentImplProps>, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n\n // Make sure the whole tree has focus guards as our `Popover` may be\n // the last element in the DOM (beacuse of the `Portal`)\n useFocusGuards();\n\n return (\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={disableOutsidePointerEvents}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={onFocusOutside}\n onDismiss={() => context.onOpenChange(false)}\n >\n <PopperPrimitive.Content\n data-state={getState(context.open)}\n role=\"dialog\"\n id={context.contentId}\n {...popperScope}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-popover-content-transform-origin' as any]:\n 'var(--radix-popper-transform-origin)',\n }}\n />\n </DismissableLayer>\n </FocusScope>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'PopoverClose';\n\ntype PopoverCloseElement = React.ElementRef<typeof Primitive.button>;\ninterface PopoverCloseProps extends PrimitiveButtonProps {}\n\nconst PopoverClose = React.forwardRef<PopoverCloseElement, PopoverCloseProps>(\n (props: ScopedProps<PopoverCloseProps>, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'PopoverArrow';\n\ntype PopoverArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface PopoverArrowProps extends PopperArrowProps {}\n\nconst PopoverArrow = React.forwardRef<PopoverArrowElement, PopoverArrowProps>(\n (props: ScopedProps<PopoverArrowProps>, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />;\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Popover;\nconst Anchor = PopoverAnchor;\nconst Trigger = PopoverTrigger;\nconst Content = PopoverContent;\nconst Close = PopoverClose;\nconst Arrow = PopoverArrow;\n\nexport {\n createPopoverScope,\n //\n Popover,\n PopoverAnchor,\n PopoverTrigger,\n PopoverContent,\n PopoverClose,\n PopoverArrow,\n //\n Root,\n Anchor,\n Trigger,\n Content,\n Close,\n Arrow,\n};\nexport type {\n PopoverProps,\n PopoverAnchorProps,\n PopoverTriggerProps,\n PopoverContentProps,\n PopoverCloseProps,\n PopoverArrowProps,\n};\n"],"names":["a","__esModule","default","$parcel$exportWildcard","dest","source","Object","keys","forEach","key","defineProperty","enumerable","get","createPopoverContext","createPopoverScope","createContextScope","createPopperScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","props","__scopePopover","children","open","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","React","useRef","hasCustomAnchor","setHasCustomAnchor","useState","setOpen","useControllableState","prop","defaultProp","onChange","_react","createElement","_radixUiReactPopper","Root","$bb8ca9d5c97a93670591f7c54ba$var$PopoverProvider","scope","contentId","useId","onOpenToggle","useCallback","prevOpen","onCustomAnchorAdd","onCustomAnchorRemove","PopoverAnchor","forwardRef","forwardedRef","anchorProps","context","useEffect","Anchor","_babelRuntimeHelpersExtends","ref","PopoverTrigger","triggerProps","composedTriggerRef","useComposedRefs","trigger","Primitive","button","type","getState","onClick","composeEventHandlers","asChild","PopoverContent","forceMount","contentProps","Presence","present","$bb8ca9d5c97a93670591f7c54ba$var$PopoverContentModal","$bb8ca9d5c97a93670591f7c54ba$var$PopoverContentNonModal","PopoverContentModal","allowPinchZoom","portalled","contentModalProps","contentRef","composedRefs","isRightClickOutsideRef","content","current","hideOthers","PortalWrapper","Portal","Fragment","RemoveScroll","$bb8ca9d5c97a93670591f7c54ba$var$PopoverContentImpl","trapFocus","disableOutsidePointerEvents","onCloseAutoFocus","event","_context$triggerRef$c","preventDefault","focus","onPointerDownOutside","originalEvent","detail","ctrlLeftClick","ctrlKey","isRightClick","checkForDefaultPrevented","onFocusOutside","PopoverContentNonModal","contentNonModalProps","hasInteractedOutsideRef","_props$onCloseAutoFoc","_context$triggerRef$c2","call","defaultPrevented","onInteractOutside","_props$onInteractOuts","_context$triggerRef$c3","target","contains","PopoverContentImpl","onOpenAutoFocus","onEscapeKeyDown","useFocusGuards","FocusScope","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","DismissableLayer","onDismiss","Content","role","id","style","PopoverClose","closeProps","PopoverArrow","arrowProps","Arrow","Trigger","Close"],"version":3,"file":"index.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["./node_modules/@parcel/scope-hoisting/lib/helpers.js","./packages/react/popover/src/Popover.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 { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal } from '@radix-ui/react-portal';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useId } from '@radix-ui/react-id';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = 'Popover';\n\ntype ScopedProps<P> = P & { __scopePopover?: Scope };\nconst [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype PopoverContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement>;\n contentId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n hasCustomAnchor: boolean;\n onCustomAnchorAdd(): void;\n onCustomAnchorRemove(): void;\n modal: boolean;\n};\n\nconst [PopoverProvider, usePopoverContext] =\n createPopoverContext<PopoverContextValue>(POPOVER_NAME);\n\ninterface PopoverProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n}\n\nconst Popover: React.FC<PopoverProps> = (props: ScopedProps<PopoverProps>) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false,\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n <PopperPrimitive.Root {...popperScope}>\n <PopoverProvider\n scope={__scopePopover}\n contentId={useId()}\n triggerRef={triggerRef}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(() => setHasCustomAnchor(true), [])}\n onCustomAnchorRemove={React.useCallback(() => setHasCustomAnchor(false), [])}\n modal={modal}\n >\n {children}\n </PopoverProvider>\n </PopperPrimitive.Root>\n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'PopoverAnchor';\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopperPrimitive.Anchor>;\ntype PopperAnchorProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef<PopoverAnchorElement, PopoverAnchorProps>(\n (props: ScopedProps<PopoverAnchorProps>, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n\n return <PopperPrimitive.Anchor {...popperScope} {...anchorProps} ref={forwardedRef} />;\n }\n);\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'PopoverTrigger';\n\ntype PopoverTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef<PopoverTriggerElement, PopoverTriggerProps>(\n (props: ScopedProps<PopoverTriggerProps>, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n\n const trigger = (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n\n return context.hasCustomAnchor ? (\n trigger\n ) : (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n {trigger}\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nPopoverTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'PopoverContent';\n\ninterface PopoverContentProps extends PopoverContentTypeProps {\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 PopoverContent = React.forwardRef<PopoverContentTypeElement, PopoverContentProps>(\n (props: ScopedProps<PopoverContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <PopoverContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <PopoverContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype RemoveScrollProps = React.ComponentProps<typeof RemoveScroll>;\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit<PopoverContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom'];\n /**\n * Whether the `Popover` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n}\n\nconst PopoverContentModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { allowPinchZoom, portalled = true, ...contentModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <RemoveScroll allowPinchZoom={allowPinchZoom}>\n <PopoverContentImpl\n {...contentModalProps}\n ref={composedRefs}\n // we make sure we're not trapping once it's been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n )}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )}\n />\n </RemoveScroll>\n </PortalWrapper>\n );\n }\n);\n\nconst PopoverContentNonModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { portalled = true, ...contentNonModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <PopoverContentImpl\n {...contentNonModalProps}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true;\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n }}\n />\n </PortalWrapper>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<typeof PopperPrimitive.Content>;\ntype FocusScopeProps = Radix.ComponentPropsWithoutRef<typeof FocusScope>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface PopoverContentImplProps\n extends PopperContentProps,\n Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * Whether focus should be trapped within the `Popover`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst PopoverContentImpl = React.forwardRef<PopoverContentImplElement, PopoverContentImplProps>(\n (props: ScopedProps<PopoverContentImplProps>, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n\n // Make sure the whole tree has focus guards as our `Popover` may be\n // the last element in the DOM (beacuse of the `Portal`)\n useFocusGuards();\n\n return (\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={disableOutsidePointerEvents}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={onFocusOutside}\n onDismiss={() => context.onOpenChange(false)}\n >\n <PopperPrimitive.Content\n data-state={getState(context.open)}\n role=\"dialog\"\n id={context.contentId}\n {...popperScope}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-popover-content-transform-origin' as any]:\n 'var(--radix-popper-transform-origin)',\n }}\n />\n </DismissableLayer>\n </FocusScope>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'PopoverClose';\n\ntype PopoverCloseElement = React.ElementRef<typeof Primitive.button>;\ninterface PopoverCloseProps extends PrimitiveButtonProps {}\n\nconst PopoverClose = React.forwardRef<PopoverCloseElement, PopoverCloseProps>(\n (props: ScopedProps<PopoverCloseProps>, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'PopoverArrow';\n\ntype PopoverArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface PopoverArrowProps extends PopperArrowProps {}\n\nconst PopoverArrow = React.forwardRef<PopoverArrowElement, PopoverArrowProps>(\n (props: ScopedProps<PopoverArrowProps>, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />;\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Popover;\nconst Anchor = PopoverAnchor;\nconst Trigger = PopoverTrigger;\nconst Content = PopoverContent;\nconst Close = PopoverClose;\nconst Arrow = PopoverArrow;\n\nexport {\n createPopoverScope,\n //\n Popover,\n PopoverAnchor,\n PopoverTrigger,\n PopoverContent,\n PopoverClose,\n PopoverArrow,\n //\n Root,\n Anchor,\n Trigger,\n Content,\n Close,\n Arrow,\n};\nexport type {\n PopoverProps,\n PopoverAnchorProps,\n PopoverTriggerProps,\n PopoverContentProps,\n PopoverCloseProps,\n PopoverArrowProps,\n};\n"],"names":["a","__esModule","default","$parcel$exportWildcard","dest","source","Object","keys","forEach","key","defineProperty","enumerable","get","createPopoverContext","createPopoverScope","createContextScope","createPopperScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","props","__scopePopover","children","open","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","React","useRef","hasCustomAnchor","setHasCustomAnchor","useState","setOpen","useControllableState","prop","defaultProp","onChange","_react","createElement","_radixUiReactPopper","Root","$bb8ca9d5c97a93670591f7c54ba$var$PopoverProvider","scope","contentId","useId","onOpenToggle","useCallback","prevOpen","onCustomAnchorAdd","onCustomAnchorRemove","PopoverAnchor","forwardRef","forwardedRef","anchorProps","context","useEffect","Anchor","_babelRuntimeHelpersExtends","ref","PopoverTrigger","triggerProps","composedTriggerRef","useComposedRefs","trigger","Primitive","button","type","getState","onClick","composeEventHandlers","asChild","PopoverContent","forceMount","contentProps","Presence","present","$bb8ca9d5c97a93670591f7c54ba$var$PopoverContentModal","$bb8ca9d5c97a93670591f7c54ba$var$PopoverContentNonModal","PopoverContentModal","allowPinchZoom","portalled","contentModalProps","contentRef","composedRefs","isRightClickOutsideRef","content","current","hideOthers","PortalWrapper","Portal","Fragment","RemoveScroll","$bb8ca9d5c97a93670591f7c54ba$var$PopoverContentImpl","trapFocus","disableOutsidePointerEvents","onCloseAutoFocus","event","_context$triggerRef$c","preventDefault","focus","onPointerDownOutside","originalEvent","detail","ctrlLeftClick","ctrlKey","isRightClick","checkForDefaultPrevented","onFocusOutside","PopoverContentNonModal","contentNonModalProps","hasInteractedOutsideRef","_props$onCloseAutoFoc","_context$triggerRef$c2","call","defaultPrevented","onInteractOutside","_props$onInteractOuts","_context$triggerRef$c3","target","contains","PopoverContentImpl","onOpenAutoFocus","onEscapeKeyDown","useFocusGuards","FocusScope","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","DismissableLayer","onDismiss","Content","role","id","style","PopoverClose","closeProps","PopoverArrow","arrowProps","Arrow","Trigger","Close"],"version":3,"file":"index.js.map"}
|
package/dist/index.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["./packages/react/popover/src/Popover.tsx"],"sourcesContent":["import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal } from '@radix-ui/react-portal';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useId } from '@radix-ui/react-id';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = 'Popover';\n\ntype ScopedProps<P> = P & { __scopePopover?: Scope };\nconst [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype PopoverContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement>;\n contentId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n hasCustomAnchor: boolean;\n onCustomAnchorAdd(): void;\n onCustomAnchorRemove(): void;\n modal: boolean;\n};\n\nconst [PopoverProvider, usePopoverContext] =\n createPopoverContext<PopoverContextValue>(POPOVER_NAME);\n\ninterface PopoverProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n children?: React.ReactNode;\n}\n\nconst Popover: React.FC<PopoverProps> = (props: ScopedProps<PopoverProps>) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false,\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n <PopperPrimitive.Root {...popperScope}>\n <PopoverProvider\n scope={__scopePopover}\n contentId={useId()}\n triggerRef={triggerRef}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(() => setHasCustomAnchor(true), [])}\n onCustomAnchorRemove={React.useCallback(() => setHasCustomAnchor(false), [])}\n modal={modal}\n >\n {children}\n </PopoverProvider>\n </PopperPrimitive.Root>\n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'PopoverAnchor';\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopperPrimitive.Anchor>;\ntype PopperAnchorProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef<PopoverAnchorElement, PopoverAnchorProps>(\n (props: ScopedProps<PopoverAnchorProps>, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n\n return <PopperPrimitive.Anchor {...popperScope} {...anchorProps} ref={forwardedRef} />;\n }\n);\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'PopoverTrigger';\n\ntype PopoverTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef<PopoverTriggerElement, PopoverTriggerProps>(\n (props: ScopedProps<PopoverTriggerProps>, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n\n const trigger = (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n\n return context.hasCustomAnchor ? (\n trigger\n ) : (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n {trigger}\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nPopoverTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'PopoverContent';\n\ninterface PopoverContentProps extends PopoverContentTypeProps {\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 PopoverContent = React.forwardRef<PopoverContentTypeElement, PopoverContentProps>(\n (props: ScopedProps<PopoverContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <PopoverContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <PopoverContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype RemoveScrollProps = React.ComponentProps<typeof RemoveScroll>;\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit<PopoverContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom'];\n /**\n * Whether the `Popover` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n}\n\nconst PopoverContentModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { allowPinchZoom, portalled = true, ...contentModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <RemoveScroll allowPinchZoom={allowPinchZoom}>\n <PopoverContentImpl\n {...contentModalProps}\n ref={composedRefs}\n // we make sure we're not trapping once it's been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n )}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )}\n />\n </RemoveScroll>\n </PortalWrapper>\n );\n }\n);\n\nconst PopoverContentNonModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { portalled = true, ...contentNonModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <PopoverContentImpl\n {...contentNonModalProps}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true;\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n }}\n />\n </PortalWrapper>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<typeof PopperPrimitive.Content>;\ntype FocusScopeProps = Radix.ComponentPropsWithoutRef<typeof FocusScope>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface PopoverContentImplProps\n extends PopperContentProps,\n Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * Whether focus should be trapped within the `Popover`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst PopoverContentImpl = React.forwardRef<PopoverContentImplElement, PopoverContentImplProps>(\n (props: ScopedProps<PopoverContentImplProps>, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n\n // Make sure the whole tree has focus guards as our `Popover` may be\n // the last element in the DOM (beacuse of the `Portal`)\n useFocusGuards();\n\n return (\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={disableOutsidePointerEvents}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={onFocusOutside}\n onDismiss={() => context.onOpenChange(false)}\n >\n <PopperPrimitive.Content\n data-state={getState(context.open)}\n role=\"dialog\"\n id={context.contentId}\n {...popperScope}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-popover-content-transform-origin' as any]:\n 'var(--radix-popper-transform-origin)',\n }}\n />\n </DismissableLayer>\n </FocusScope>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'PopoverClose';\n\ntype PopoverCloseElement = React.ElementRef<typeof Primitive.button>;\ninterface PopoverCloseProps extends PrimitiveButtonProps {}\n\nconst PopoverClose = React.forwardRef<PopoverCloseElement, PopoverCloseProps>(\n (props: ScopedProps<PopoverCloseProps>, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'PopoverArrow';\n\ntype PopoverArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface PopoverArrowProps extends PopperArrowProps {}\n\nconst PopoverArrow = React.forwardRef<PopoverArrowElement, PopoverArrowProps>(\n (props: ScopedProps<PopoverArrowProps>, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />;\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Popover;\nconst Anchor = PopoverAnchor;\nconst Trigger = PopoverTrigger;\nconst Content = PopoverContent;\nconst Close = PopoverClose;\nconst Arrow = PopoverArrow;\n\nexport {\n createPopoverScope,\n //\n Popover,\n PopoverAnchor,\n PopoverTrigger,\n PopoverContent,\n PopoverClose,\n PopoverArrow,\n //\n Root,\n Anchor,\n Trigger,\n Content,\n Close,\n Arrow,\n};\nexport type {\n PopoverProps,\n PopoverAnchorProps,\n PopoverTriggerProps,\n PopoverContentProps,\n PopoverCloseProps,\n PopoverArrowProps,\n};\n"],"names":["createPopoverContext","createPopoverScope","createContextScope","createPopperScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","props","__scopePopover","children","open","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","React","useRef","hasCustomAnchor","setHasCustomAnchor","useState","setOpen","useControllableState","prop","defaultProp","onChange","_react","createElement","_radixUiReactPopper","Root","$f4ab2d44b661a498b6a640a78746e78$var$PopoverProvider","scope","contentId","useId","onOpenToggle","useCallback","prevOpen","onCustomAnchorAdd","onCustomAnchorRemove","PopoverAnchor","forwardRef","forwardedRef","anchorProps","context","useEffect","Anchor","_babelRuntimeHelpersEsmExtends","ref","PopoverTrigger","triggerProps","composedTriggerRef","useComposedRefs","trigger","Primitive","button","type","getState","onClick","composeEventHandlers","asChild","PopoverContent","forceMount","contentProps","Presence","present","$f4ab2d44b661a498b6a640a78746e78$var$PopoverContentModal","$f4ab2d44b661a498b6a640a78746e78$var$PopoverContentNonModal","PopoverContentModal","allowPinchZoom","portalled","contentModalProps","contentRef","composedRefs","isRightClickOutsideRef","content","current","hideOthers","PortalWrapper","Portal","Fragment","RemoveScroll","$f4ab2d44b661a498b6a640a78746e78$var$PopoverContentImpl","trapFocus","disableOutsidePointerEvents","onCloseAutoFocus","event","_context$triggerRef$c","preventDefault","focus","onPointerDownOutside","originalEvent","detail","ctrlLeftClick","ctrlKey","isRightClick","checkForDefaultPrevented","onFocusOutside","PopoverContentNonModal","contentNonModalProps","hasInteractedOutsideRef","_props$onCloseAutoFoc","_context$triggerRef$c2","call","defaultPrevented","onInteractOutside","_props$onInteractOuts","_context$triggerRef$c3","target","contains","PopoverContentImpl","onOpenAutoFocus","onEscapeKeyDown","useFocusGuards","FocusScope","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","DismissableLayer","onDismiss","Content","role","id","style","PopoverClose","closeProps","PopoverArrow","arrowProps","Arrow","Trigger","Close"],"version":3,"file":"index.module.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["./packages/react/popover/src/Popover.tsx"],"sourcesContent":["import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport * as PopperPrimitive from '@radix-ui/react-popper';\nimport { createPopperScope } from '@radix-ui/react-popper';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal } from '@radix-ui/react-portal';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useId } from '@radix-ui/react-id';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\n\nimport type * as Radix from '@radix-ui/react-primitive';\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Popover\n * -----------------------------------------------------------------------------------------------*/\n\nconst POPOVER_NAME = 'Popover';\n\ntype ScopedProps<P> = P & { __scopePopover?: Scope };\nconst [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope,\n]);\nconst usePopperScope = createPopperScope();\n\ntype PopoverContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement>;\n contentId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n hasCustomAnchor: boolean;\n onCustomAnchorAdd(): void;\n onCustomAnchorRemove(): void;\n modal: boolean;\n};\n\nconst [PopoverProvider, usePopoverContext] =\n createPopoverContext<PopoverContextValue>(POPOVER_NAME);\n\ninterface PopoverProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n modal?: boolean;\n}\n\nconst Popover: React.FC<PopoverProps> = (props: ScopedProps<PopoverProps>) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false,\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open = false, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n\n return (\n <PopperPrimitive.Root {...popperScope}>\n <PopoverProvider\n scope={__scopePopover}\n contentId={useId()}\n triggerRef={triggerRef}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={React.useCallback(() => setHasCustomAnchor(true), [])}\n onCustomAnchorRemove={React.useCallback(() => setHasCustomAnchor(false), [])}\n modal={modal}\n >\n {children}\n </PopoverProvider>\n </PopperPrimitive.Root>\n );\n};\n\nPopover.displayName = POPOVER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverAnchor\n * -----------------------------------------------------------------------------------------------*/\n\nconst ANCHOR_NAME = 'PopoverAnchor';\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopperPrimitive.Anchor>;\ntype PopperAnchorProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>;\ninterface PopoverAnchorProps extends PopperAnchorProps {}\n\nconst PopoverAnchor = React.forwardRef<PopoverAnchorElement, PopoverAnchorProps>(\n (props: ScopedProps<PopoverAnchorProps>, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n\n return <PopperPrimitive.Anchor {...popperScope} {...anchorProps} ref={forwardedRef} />;\n }\n);\n\nPopoverAnchor.displayName = ANCHOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'PopoverTrigger';\n\ntype PopoverTriggerElement = React.ElementRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = Radix.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface PopoverTriggerProps extends PrimitiveButtonProps {}\n\nconst PopoverTrigger = React.forwardRef<PopoverTriggerElement, PopoverTriggerProps>(\n (props: ScopedProps<PopoverTriggerProps>, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n\n const trigger = (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n\n return context.hasCustomAnchor ? (\n trigger\n ) : (\n <PopperPrimitive.Anchor asChild {...popperScope}>\n {trigger}\n </PopperPrimitive.Anchor>\n );\n }\n);\n\nPopoverTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'PopoverContent';\n\ninterface PopoverContentProps extends PopoverContentTypeProps {\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 PopoverContent = React.forwardRef<PopoverContentTypeElement, PopoverContentProps>(\n (props: ScopedProps<PopoverContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <PopoverContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <PopoverContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nPopoverContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype RemoveScrollProps = React.ComponentProps<typeof RemoveScroll>;\ntype PopoverContentTypeElement = PopoverContentImplElement;\ninterface PopoverContentTypeProps\n extends Omit<PopoverContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {\n /**\n * @see https://github.com/theKashey/react-remove-scroll#usage\n */\n allowPinchZoom?: RemoveScrollProps['allowPinchZoom'];\n /**\n * Whether the `Popover` should render in a `Portal`\n * (default: `true`)\n */\n portalled?: boolean;\n}\n\nconst PopoverContentModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { allowPinchZoom, portalled = true, ...contentModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <RemoveScroll allowPinchZoom={allowPinchZoom}>\n <PopoverContentImpl\n {...contentModalProps}\n ref={composedRefs}\n // we make sure we're not trapping once it's been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n )}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )}\n />\n </RemoveScroll>\n </PortalWrapper>\n );\n }\n);\n\nconst PopoverContentNonModal = React.forwardRef<PopoverContentTypeElement, PopoverContentTypeProps>(\n (props: ScopedProps<PopoverContentTypeProps>, forwardedRef) => {\n const { portalled = true, ...contentNonModalProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n\n const PortalWrapper = portalled ? Portal : React.Fragment;\n\n return (\n <PortalWrapper>\n <PopoverContentImpl\n {...contentNonModalProps}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) hasInteractedOutsideRef.current = true;\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n //\n // We use `onInteractOutside` as some browsers also\n // focus on pointer down, creating the same issue.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n }}\n />\n </PortalWrapper>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PopoverContentImplElement = React.ElementRef<typeof PopperPrimitive.Content>;\ntype FocusScopeProps = Radix.ComponentPropsWithoutRef<typeof FocusScope>;\ntype DismissableLayerProps = Radix.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype PopperContentProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Content>;\ninterface PopoverContentImplProps\n extends PopperContentProps,\n Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * Whether focus should be trapped within the `Popover`\n * (default: false)\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst PopoverContentImpl = React.forwardRef<PopoverContentImplElement, PopoverContentImplProps>(\n (props: ScopedProps<PopoverContentImplProps>, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n\n // Make sure the whole tree has focus guards as our `Popover` may be\n // the last element in the DOM (beacuse of the `Portal`)\n useFocusGuards();\n\n return (\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n asChild\n disableOutsidePointerEvents={disableOutsidePointerEvents}\n onInteractOutside={onInteractOutside}\n onEscapeKeyDown={onEscapeKeyDown}\n onPointerDownOutside={onPointerDownOutside}\n onFocusOutside={onFocusOutside}\n onDismiss={() => context.onOpenChange(false)}\n >\n <PopperPrimitive.Content\n data-state={getState(context.open)}\n role=\"dialog\"\n id={context.contentId}\n {...popperScope}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...contentProps.style,\n // re-namespace exposed content custom property\n ['--radix-popover-content-transform-origin' as any]:\n 'var(--radix-popper-transform-origin)',\n }}\n />\n </DismissableLayer>\n </FocusScope>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'PopoverClose';\n\ntype PopoverCloseElement = React.ElementRef<typeof Primitive.button>;\ninterface PopoverCloseProps extends PrimitiveButtonProps {}\n\nconst PopoverClose = React.forwardRef<PopoverCloseElement, PopoverCloseProps>(\n (props: ScopedProps<PopoverCloseProps>, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nPopoverClose.displayName = CLOSE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * PopoverArrow\n * -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_NAME = 'PopoverArrow';\n\ntype PopoverArrowElement = React.ElementRef<typeof PopperPrimitive.Arrow>;\ntype PopperArrowProps = Radix.ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>;\ninterface PopoverArrowProps extends PopperArrowProps {}\n\nconst PopoverArrow = React.forwardRef<PopoverArrowElement, PopoverArrowProps>(\n (props: ScopedProps<PopoverArrowProps>, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return <PopperPrimitive.Arrow {...popperScope} {...arrowProps} ref={forwardedRef} />;\n }\n);\n\nPopoverArrow.displayName = ARROW_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Popover;\nconst Anchor = PopoverAnchor;\nconst Trigger = PopoverTrigger;\nconst Content = PopoverContent;\nconst Close = PopoverClose;\nconst Arrow = PopoverArrow;\n\nexport {\n createPopoverScope,\n //\n Popover,\n PopoverAnchor,\n PopoverTrigger,\n PopoverContent,\n PopoverClose,\n PopoverArrow,\n //\n Root,\n Anchor,\n Trigger,\n Content,\n Close,\n Arrow,\n};\nexport type {\n PopoverProps,\n PopoverAnchorProps,\n PopoverTriggerProps,\n PopoverContentProps,\n PopoverCloseProps,\n PopoverArrowProps,\n};\n"],"names":["createPopoverContext","createPopoverScope","createContextScope","createPopperScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","props","__scopePopover","children","open","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","React","useRef","hasCustomAnchor","setHasCustomAnchor","useState","setOpen","useControllableState","prop","defaultProp","onChange","_react","createElement","_radixUiReactPopper","Root","$f4ab2d44b661a498b6a640a78746e78$var$PopoverProvider","scope","contentId","useId","onOpenToggle","useCallback","prevOpen","onCustomAnchorAdd","onCustomAnchorRemove","PopoverAnchor","forwardRef","forwardedRef","anchorProps","context","useEffect","Anchor","_babelRuntimeHelpersEsmExtends","ref","PopoverTrigger","triggerProps","composedTriggerRef","useComposedRefs","trigger","Primitive","button","type","getState","onClick","composeEventHandlers","asChild","PopoverContent","forceMount","contentProps","Presence","present","$f4ab2d44b661a498b6a640a78746e78$var$PopoverContentModal","$f4ab2d44b661a498b6a640a78746e78$var$PopoverContentNonModal","PopoverContentModal","allowPinchZoom","portalled","contentModalProps","contentRef","composedRefs","isRightClickOutsideRef","content","current","hideOthers","PortalWrapper","Portal","Fragment","RemoveScroll","$f4ab2d44b661a498b6a640a78746e78$var$PopoverContentImpl","trapFocus","disableOutsidePointerEvents","onCloseAutoFocus","event","_context$triggerRef$c","preventDefault","focus","onPointerDownOutside","originalEvent","detail","ctrlLeftClick","ctrlKey","isRightClick","checkForDefaultPrevented","onFocusOutside","PopoverContentNonModal","contentNonModalProps","hasInteractedOutsideRef","_props$onCloseAutoFoc","_context$triggerRef$c2","call","defaultPrevented","onInteractOutside","_props$onInteractOuts","_context$triggerRef$c3","target","contains","PopoverContentImpl","onOpenAutoFocus","onEscapeKeyDown","useFocusGuards","FocusScope","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","DismissableLayer","onDismiss","Content","role","id","style","PopoverClose","closeProps","PopoverArrow","arrowProps","Arrow","Trigger","Close"],"version":3,"file":"index.module.js.map"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@radix-ui/react-popover",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7-rc.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -18,23 +18,23 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@babel/runtime": "^7.13.10",
|
|
20
20
|
"@radix-ui/primitive": "0.1.0",
|
|
21
|
-
"@radix-ui/react-compose-refs": "0.1.
|
|
22
|
-
"@radix-ui/react-context": "0.1.
|
|
23
|
-
"@radix-ui/react-dismissable-layer": "0.1.
|
|
24
|
-
"@radix-ui/react-focus-guards": "0.1.
|
|
25
|
-
"@radix-ui/react-focus-scope": "0.1.
|
|
26
|
-
"@radix-ui/react-id": "0.1.
|
|
27
|
-
"@radix-ui/react-popper": "0.1.
|
|
28
|
-
"@radix-ui/react-portal": "0.1.
|
|
29
|
-
"@radix-ui/react-presence": "0.1.2",
|
|
30
|
-
"@radix-ui/react-primitive": "0.1.
|
|
31
|
-
"@radix-ui/react-use-controllable-state": "0.1.
|
|
21
|
+
"@radix-ui/react-compose-refs": "0.1.1-rc.2",
|
|
22
|
+
"@radix-ui/react-context": "0.1.2-rc.2",
|
|
23
|
+
"@radix-ui/react-dismissable-layer": "0.1.6-rc.2",
|
|
24
|
+
"@radix-ui/react-focus-guards": "0.1.1-rc.2",
|
|
25
|
+
"@radix-ui/react-focus-scope": "0.1.5-rc.2",
|
|
26
|
+
"@radix-ui/react-id": "0.1.6-rc.2",
|
|
27
|
+
"@radix-ui/react-popper": "0.1.5-rc.2",
|
|
28
|
+
"@radix-ui/react-portal": "0.1.5-rc.2",
|
|
29
|
+
"@radix-ui/react-presence": "0.1.3-rc.2",
|
|
30
|
+
"@radix-ui/react-primitive": "0.1.5-rc.2",
|
|
31
|
+
"@radix-ui/react-use-controllable-state": "0.1.1-rc.2",
|
|
32
32
|
"aria-hidden": "^1.1.1",
|
|
33
33
|
"react-remove-scroll": "^2.4.0"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"react": "^16.8 || ^17.0",
|
|
37
|
-
"react-dom": "^16.8 || ^17.0"
|
|
36
|
+
"react": "^16.8 || ^17.0 || ^18.0",
|
|
37
|
+
"react-dom": "^16.8 || ^17.0 || ^18.0"
|
|
38
38
|
},
|
|
39
39
|
"homepage": "https://radix-ui.com/primitives",
|
|
40
40
|
"repository": {
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"bugs": {
|
|
45
45
|
"url": "https://github.com/radix-ui/primitives/issues"
|
|
46
46
|
},
|
|
47
|
-
"stableVersion": "0.1.
|
|
47
|
+
"stableVersion": "0.1.6"
|
|
48
48
|
}
|