UNPKG

@loke/ui

Version:
53 lines (52 loc) 2.6 kB
import { Primitive } from "@loke/ui/primitive"; import { type ComponentPropsWithoutRef } from "react"; type PrimitiveDivProps = ComponentPropsWithoutRef<typeof Primitive.div>; interface DismissableLayerProps extends PrimitiveDivProps { /** * When `true`, hover/focus/click interactions will be disabled on elements outside * the `DismissableLayer`. Users will need to click twice on outside elements to * interact with them: once to close the `DismissableLayer`, and again to trigger the element. */ disableOutsidePointerEvents?: boolean; /** * Handler called when the `DismissableLayer` should be dismissed */ onDismiss?: () => void; /** * Event handler called when the escape key is down. * Can be prevented. */ onEscapeKeyDown?: (event: KeyboardEvent) => void; /** * Event handler called when the focus moves outside of the `DismissableLayer`. * Can be prevented. */ onFocusOutside?: (event: FocusOutsideEvent) => void; /** * Event handler called when an interaction happens outside the `DismissableLayer`. * Specifically, when a `pointerdown` event happens outside or focus moves outside of it. * Can be prevented. */ onInteractOutside?: (event: PointerDownOutsideEvent | FocusOutsideEvent) => void; /** * Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`. * Can be prevented. */ onPointerDownOutside?: (event: PointerDownOutsideEvent) => void; } declare const DismissableLayer: import("react").ForwardRefExoticComponent<DismissableLayerProps & import("react").RefAttributes<HTMLDivElement>>; declare const DismissableLayerBranch: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & { asChild?: boolean; }, "ref"> & import("react").RefAttributes<HTMLDivElement>>; type PointerDownOutsideEvent = CustomEvent<{ originalEvent: PointerEvent; }>; type FocusOutsideEvent = CustomEvent<{ originalEvent: FocusEvent; }>; declare const Root: import("react").ForwardRefExoticComponent<DismissableLayerProps & import("react").RefAttributes<HTMLDivElement>>; declare const Branch: import("react").ForwardRefExoticComponent<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & { asChild?: boolean; }, "ref"> & import("react").RefAttributes<HTMLDivElement>>; export { DismissableLayer, DismissableLayerBranch, Root, Branch, }; export type { DismissableLayerProps };