import "./action_menu.css"; import type * as React from "react"; import type { Button as BaseButton } from "@base-ui/react/button"; import type { PopoverAlign, PopoverSide } from "./popover"; import { type StyleProps } from "./style_props"; import type { IconName } from "./icon"; import type { IconButtonSize } from "./icon_button"; export interface ActionMenuItem { key: string; /** * A node where the row shows the thing itself (a column's own heading); then `accessibilityLabel` * carries what is announced. */ label: React.ReactNode; /** * A menu item is read without its trigger, so a row showing only a destination announces the * whole act. */ accessibilityLabel?: string; icon?: IconName; /** Still confirm destructive actions per the Action Layout rules. */ danger?: boolean; disabled?: boolean; /** * Above all, why a disabled item cannot be pressed: it takes no pointer, so a tooltip is never * seen. */ hint?: string; onPress: () => void; } export interface ActionMenuProps extends StyleProps { /** Priority order, destructive last. */ items: ActionMenuItem[]; /** Announced name for the trigger ("Hành động cho SR-2026-0081"). */ accessibilityLabel: string; /** * `ellipsis` is the overflow menu; another glyph only where the menu is one act with a choice of * destinations. */ icon?: IconName; size?: IconButtonSize; /** The trigger stands over a picture (`IconButton`'s `elevated`). */ elevated?: boolean; side?: PopoverSide; align?: PopoverAlign; testID?: string; /** The trigger — the only box in the layout. */ ref?: React.Ref; /** Substitutes the trigger's element, for the same reason `ref` names it. */ render?: BaseButton.Props["render"]; } /** * The ⋯ overflow menu — the minimum door a list row may have: a real `menu` with one tab stop, * arrows, typeahead and Escape back to the trigger. `className`/`style`/`ref` land on the trigger. */ export declare function ActionMenu(props: ActionMenuProps): React.JSX.Element;