import { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types.js'; import { ReactNode } from 'react'; import { IconContent } from '../types/icon.types.js'; export type FabSize = 'default' | 'mini'; export interface FabMenuEntry { id: string; icon: IconContent; label?: string; } export type FabSlots = 'root' | 'backdrop' | 'button' | 'icon' | 'menu' | 'menuEntry' | 'menuEntryLabel'; export interface FabProps extends HtmlProps { children?: ReactNode; size?: FabSize; menuEntries?: FabMenuEntry[]; onMenuEntryClicked?: (id: string) => void; onClick?: () => void; closeMenuOnEntryClicked?: boolean; /** Classes for the inner elements. See `FabSlots`. */ classNames?: SlotClassNames; /** Inline styles for the inner elements. See `FabSlots`. */ styles?: SlotStyles; }