@loke/ui
Version:
84 lines (83 loc) • 4.56 kB
TypeScript
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, };