import type { ControlSize } from "@charcuterie/tokens"; import type { ReactNode } from "react"; import type { MenuEntry } from "../Menu/Menu.tsx"; export type ActionMenuProps = { /** * Replaces the default dots. Pass the app's own glyph to match an * icon set exactly — Docket and Whereabouts both use lucide's * `EllipsisVertical` at `strokeWidth={1.75}`. */ icon?: ReactNode; items: MenuEntry[]; /** * The trigger's accessible name, and through it the menu's. Name * the THING, not the gesture: `Actions for Cables`, so a page with * twenty of these has twenty different buttons. */ label: string; size?: ControlSize; }; /** * The overflow control: a thing's secondary actions behind one * labelled vertical-dots button, opening a `Menu` aligned to the * button's end edge. * * Docket's `TaskActionMenu` and Whereabouts' `PlaceActionsMenu` were * the same fifty lines — a ghost neutral `IconButton`, a `useState` * for visibility, `placement="bottom-end"`, a toggle on click and a * close on dismiss. This owns all of it, so the caller hands over * only the actions and a name. * * The open state is internal on purpose: nothing outside the button * has a reason to open it, and choosing an item, Escape and an * outside press already close it through `Menu`'s `onDismiss`. */ export declare const ActionMenu: ({ icon, items, label, size, }: ActionMenuProps) => ReactNode; //# sourceMappingURL=ActionMenu.d.ts.map