@navinc/base-react-components
Version:
Nav's Pattern Library
35 lines (33 loc) • 1.82 kB
TypeScript
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 {};