UNPKG

selection-popover

Version:

Easy-to-use, composable react selection popover.

65 lines (62 loc) 2.83 kB
import * as React from 'react'; import { Primitive } from '@radix-ui/react-primitive'; import { Portal } from '@radix-ui/react-portal'; import { DismissableLayer } from '@radix-ui/react-dismissable-layer'; import * as ArrowPrimitive from '@radix-ui/react-arrow'; declare const SIDE_OPTIONS: readonly ["top", "right", "bottom", "left"]; declare const ALIGN_OPTIONS: readonly ["start", "center", "end"]; type Side = (typeof SIDE_OPTIONS)[number]; type Align = (typeof ALIGN_OPTIONS)[number]; interface SelectionProps { children?: React.ReactNode; open?: boolean; defaultOpen?: boolean; onOpenChange?(open: boolean): void; whileSelect?: boolean; disabled?: boolean; openDelay?: number; closeDelay?: number; } declare const Selection: (props: SelectionProps) => JSX.Element; interface SelectionTriggerProps extends SelectionTriggerImplProps { } declare const SelectionTrigger: React.ForwardRefExoticComponent<SelectionTriggerProps & React.RefAttributes<HTMLDivElement>>; type PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>; interface SelectionTriggerImplProps extends PrimitiveDivProps { } type PortalProps = React.ComponentPropsWithoutRef<typeof Portal>; interface SelectionPortalProps extends Omit<PortalProps, 'asChild'> { children?: React.ReactNode; forceMount?: true; } declare const SelectionPortal: { (props: SelectionPortalProps): JSX.Element; displayName: string; }; interface SelectionContentProps extends SelectionContentImplProps { forceMount?: true; } declare const SelectionContent: React.ForwardRefExoticComponent<SelectionContentProps & React.RefAttributes<HTMLDivElement>>; type Boundary = Element | null; type DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>; interface SelectionContentImplProps extends PrimitiveDivProps { side?: Side; sideOffset?: number; align?: Align; alignOffset?: number; arrowPadding?: number; collisionBoundary?: Boundary | Boundary[]; collisionPadding?: number | Partial<Record<Side, number>>; sticky?: 'partial' | 'always'; hideWhenDetached?: boolean; avoidCollisions?: boolean; onEscapeKeyDown?: DismissableLayerProps['onEscapeKeyDown']; onPointerDownOutside?: DismissableLayerProps['onPointerDownOutside']; onFocusOutside?: DismissableLayerProps['onFocusOutside']; onInteractOutside?: DismissableLayerProps['onInteractOutside']; } type ArrowProps = React.ComponentPropsWithoutRef<typeof ArrowPrimitive.Root>; interface SelectionArrowProps extends ArrowProps { } declare const SelectionArrow: React.ForwardRefExoticComponent<SelectionArrowProps & React.RefAttributes<SVGSVGElement>>; export { SelectionArrow as Arrow, SelectionContent as Content, SelectionPortal as Portal, Selection as Root, SelectionTrigger as Trigger };