UNPKG

@vertisanpro/flowbite-react

Version:

Non-Official React components built for Flowbite and Tailwind CSS

42 lines (41 loc) 2.05 kB
import type { ExtendedRefs } from '@floating-ui/react'; import type { Dispatch, FC, HTMLProps, ReactElement, ReactNode, SetStateAction } from 'react'; import React from 'react'; import type { DeepPartial } from '../../types'; import { type ButtonProps } from '../Button'; import type { FloatingProps, FlowbiteFloatingTheme } from '../Floating'; import { type FlowbiteDropdownDividerTheme } from './DropdownDivider'; import { type FlowbiteDropdownHeaderTheme } from './DropdownHeader'; import { type FlowbiteDropdownItemTheme } from './DropdownItem'; export interface FlowbiteDropdownFloatingTheme extends FlowbiteFloatingTheme, FlowbiteDropdownDividerTheme, FlowbiteDropdownHeaderTheme { item: FlowbiteDropdownItemTheme; } export interface FlowbiteDropdownTheme { floating: FlowbiteDropdownFloatingTheme; content: string; inlineWrapper: string; arrowIcon: string; } export interface DropdownProps extends Pick<FloatingProps, 'placement' | 'trigger'>, Omit<ButtonProps, 'theme'> { arrowIcon?: boolean; dismissOnClick?: boolean; floatingArrow?: boolean; inline?: boolean; label: ReactNode; theme?: DeepPartial<FlowbiteDropdownTheme>; renderTrigger?: (theme: FlowbiteDropdownTheme) => ReactElement; 'data-testid'?: string; } export interface TriggerProps extends Omit<ButtonProps, 'theme'> { refs: ExtendedRefs<HTMLElement>; inline?: boolean; theme: FlowbiteDropdownTheme; setButtonWidth?: Dispatch<SetStateAction<number | undefined>>; getReferenceProps: (userProps?: HTMLProps<Element> | undefined) => Record<string, unknown>; renderTrigger?: (theme: FlowbiteDropdownTheme) => ReactElement; } export declare const Dropdown: FC<DropdownProps> & { Item: <T extends React.ElementType = "button">({ children, className, icon: Icon, onClick, theme: customTheme, ...props }: import("./DropdownItem").DropdownItemProps<T>) => React.JSX.Element; Header: FC<import("./DropdownHeader").DropdownHeaderProps>; Divider: FC<import("./DropdownDivider").DropdownDividerProps>; };