UNPKG

@loke/ui

Version:
84 lines (83 loc) 4.56 kB
import { DismissableLayer } from "@loke/ui/dismissable-layer"; import { FocusScope } from "@loke/ui/focus-scope"; import * as PopperPrimitive from "@loke/ui/popper"; import { Portal as PortalPrimitive } from "@loke/ui/portal"; import { Primitive } from "@loke/ui/primitive"; import { type ComponentPropsWithoutRef, type FC, type ReactNode } from "react"; declare const createPopoverScope: import("@loke/ui/context").CreateScope; interface PopoverProps { children?: ReactNode; defaultOpen?: boolean; modal?: boolean; onOpenChange?: (open: boolean) => void; open?: boolean; } declare const Popover: FC<PopoverProps>; type PopperAnchorProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Anchor>; interface PopoverAnchorProps extends PopperAnchorProps { } declare const PopoverAnchor: import("react").ForwardRefExoticComponent<PopoverAnchorProps & import("react").RefAttributes<HTMLDivElement>>; type PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>; interface PopoverTriggerProps extends PrimitiveButtonProps { } declare const PopoverTrigger: import("react").ForwardRefExoticComponent<PopoverTriggerProps & import("react").RefAttributes<HTMLButtonElement>>; type PortalProps = ComponentPropsWithoutRef<typeof PortalPrimitive>; interface PopoverPortalProps { children?: ReactNode; /** * Specify a container element to portal the content into. */ container?: PortalProps["container"]; /** * Used to force mounting when more control is needed. Useful when * controlling animation with React animation libraries. */ forceMount?: true; } declare const PopoverPortal: FC<PopoverPortalProps>; interface PopoverContentProps extends PopoverContentTypeProps { /** * Used to force mounting when more control is needed. Useful when * controlling animation with React animation libraries. */ forceMount?: true; } declare const PopoverContent: import("react").ForwardRefExoticComponent<PopoverContentProps & import("react").RefAttributes<HTMLDivElement>>; interface PopoverContentTypeProps extends Omit<PopoverContentImplProps, "trapFocus" | "disableOutsidePointerEvents"> { } type FocusScopeProps = ComponentPropsWithoutRef<typeof FocusScope>; type DismissableLayerProps = ComponentPropsWithoutRef<typeof DismissableLayer>; type PopperContentProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Content>; interface PopoverContentImplProps extends Omit<PopperContentProps, "onPlaced">, Omit<DismissableLayerProps, "onDismiss"> { /** * Event handler called when auto-focusing on close. * Can be prevented. */ onCloseAutoFocus?: FocusScopeProps["onUnmountAutoFocus"]; /** * Event handler called when auto-focusing on open. * Can be prevented. */ onOpenAutoFocus?: FocusScopeProps["onMountAutoFocus"]; /** * Whether focus should be trapped within the `Popover` * (default: false) */ trapFocus?: FocusScopeProps["trapped"]; } interface PopoverCloseProps extends PrimitiveButtonProps { } declare const PopoverClose: import("react").ForwardRefExoticComponent<PopoverCloseProps & import("react").RefAttributes<HTMLButtonElement>>; type PopperArrowProps = ComponentPropsWithoutRef<typeof PopperPrimitive.Arrow>; interface PopoverArrowProps extends PopperArrowProps { } declare const PopoverArrow: import("react").ForwardRefExoticComponent<PopoverArrowProps & import("react").RefAttributes<SVGSVGElement>>; declare const Root: FC<PopoverProps>; declare const Anchor: import("react").ForwardRefExoticComponent<PopoverAnchorProps & import("react").RefAttributes<HTMLDivElement>>; declare const Trigger: import("react").ForwardRefExoticComponent<PopoverTriggerProps & import("react").RefAttributes<HTMLButtonElement>>; declare const Portal: FC<PopoverPortalProps>; declare const Content: import("react").ForwardRefExoticComponent<PopoverContentProps & import("react").RefAttributes<HTMLDivElement>>; declare const Close: import("react").ForwardRefExoticComponent<PopoverCloseProps & import("react").RefAttributes<HTMLButtonElement>>; declare const Arrow: import("react").ForwardRefExoticComponent<PopoverArrowProps & import("react").RefAttributes<SVGSVGElement>>; export { createPopoverScope, Popover, PopoverAnchor, PopoverTrigger, PopoverPortal, PopoverContent, PopoverClose, PopoverArrow, Root, Anchor, Trigger, Portal, Content, Close, Arrow, }; export type { PopoverProps, PopoverAnchorProps, PopoverTriggerProps, PopoverPortalProps, PopoverContentProps, PopoverCloseProps, PopoverArrowProps, };