import * as React from "react"; import type { ActionsCopyProp, ActionsFeedbackProp, ActionsItemProp, ActionsProp } from "../../props/components/general.prop.js"; export type { ActionsProp, ActionsProp as ActionsProps, ActionsItemsProp, ActionsItemProp, ActionsItemProp as ActionsItemProps, ActionsCopyProp, ActionsCopyProp as ActionsCopyProps, ActionsFeedbackProp, ActionsFeedbackProp as ActionsFeedbackProps, ActionsVariantProp, ActionsStatusProp, ActionsFeedbackValueProp, } from "../../props/components/general.prop.js"; /** * Actions — the strip of actions under an assistant message (Ant Design X `Actions`). * * ## What Ant X ships, measured * * `@ant-design/x@2.9.0`, `es/actions/Item.js`: each action is * `
` wrapping `
{item.icon}
`, with * the label supplied only as a `Tooltip` title. Three consequences, all of them defects rather * than choices: the strip cannot be reached by keyboard at all, the actions have no accessible * name, and on a touch device — where `useMobile()` drops the Tooltip entirely — they have no * visible name either. * * ## What this port does about it, while keeping the API * * `items`, `onClick({ item, key, keyPath, domEvent })`, `onItemClick` winning over `onClick`, * `danger`, `subItems`, `actionRender`, `variant`, `fadeIn` / `fadeInLeft` — all Ant's, with Ant's * semantics. What changes is what they render onto: a real `Button` per action carrying `label` as * its accessible name AND its tooltip, inside a WAI-ARIA APG **Toolbar** — one tab stop for the * whole strip, the logical arrows moving between the actions, `Home` / `End` at its ends. That is * the same trade `Conversations` makes and for the same reason: a strip of eight actions under * every message would otherwise be eight tab stops between the reader and the next message. */ export declare const Actions: React.ForwardRefExoticComponent>; /** * ActionsItem — one status-aware action (Ant Design X `Actions.Item`). * * It is a NAMED export rather than `Actions.Item`, because this library has no compound-static * convention: `CardHeader`, `TabsList` and `DropdownMenuItem` are all separate exports, and one * component attaching statics would be the only one of its kind. * * The status table is Ant's, from `es/actions/ActionsItem.js`: `loading` and `error` bring their * own glyph, `running` takes `runningIcon`, anything else takes `defaultIcon`. What is added is * that the status is ANNOUNCED — `aria-busy` while loading, and the state in the accessible name — * because a glyph swap is a colour-and-shape-only signal (WCAG 1.4.1). */ export declare const ActionsItem: React.ForwardRefExoticComponent>; /** * ActionsCopy — copy the message to the clipboard (Ant Design X `Actions.Copy`). * * Ant X hands this to antd's `Typography copyable`, which swaps the glyph to a tick for 3s. The * tick is reproduced at the same 3s, and the change is also SPOKEN through a polite status region: * a glyph that only changes shape tells a screen-reader user nothing about whether the copy * worked, which is the one thing this control exists to report. */ export declare const ActionsCopy: React.ForwardRefExoticComponent>; /** * ActionsFeedback — the like / dislike pair (Ant Design X `Actions.Feedback`). * * `value` / `onChange` and the clear-on-second-click behaviour are Ant's, byte for byte. ONE * rendering difference, and it is deliberate: Ant hides the opposite button once an opinion is * recorded (`[default, like].includes(value) && likeNode`), so a reader who mis-clicked "dislike" * finds no "like" button on the screen at all and has to guess that clicking dislike again brings * it back. Both buttons stay here, and the recorded opinion is carried by `aria-pressed` — the APG * toggle-button pattern, which states the value instead of removing its alternative. */ export declare const ActionsFeedback: React.ForwardRefExoticComponent>;