UNPKG

@navinc/base-react-components

Version:
35 lines (33 loc) 1.82 kB
import * as PopoverPrimitive from '@radix-ui/react-popover'; import { InferComponentProps } from '../../types.js'; import { ReactNode } from 'react'; declare const PopoverRoot: import("react").FC<PopoverPrimitive.PopoverProps>; export declare const PopoverClose: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverCloseProps & import("react").RefAttributes<HTMLButtonElement>>; declare const PopoverContent: ({ children, ...props }: InferComponentProps<typeof PopoverPrimitive.Content>) => import("react/jsx-runtime").JSX.Element; declare const Content: ({ title, description, buttons, className, }: { title: ReactNode; description: ReactNode; buttons?: ReactNode; className?: string; }) => import("react/jsx-runtime").JSX.Element; /** Wayfinder Popover * * Popover component that provides a customizable popover interface. * Similar to a dialog, but pops over the screen next to the trigger that was pressed. Does not blur background like Dialog. * The "trigger" must be a node that can have props applied to it, ideally a button. ie plain strings or fragments will not work. * @returns {ReactNode} The Popover component. * * @example * <Popover * title="Popover Title" * description="This is a customizable popover description." * buttons={[<button>Action</button>]} * trigger={<button>Open Popover</button>} * /> */ type PopoverProps = { trigger?: ReactNode; hasArrow?: boolean; } & InferComponentProps<typeof PopoverRoot> & InferComponentProps<typeof PopoverContent> & Partial<InferComponentProps<typeof Content>>; export declare const Popover: ({ title, description, buttons, open, defaultOpen, onOpenChange, trigger, modal, hasArrow, align, sideOffset, children, className, ...props }: PopoverProps) => import("react/jsx-runtime").JSX.Element; export {};