# Action morph

A floating button that morphs into a quick-action menu, then an inline form, then back with a check.

- ID: `action-morph`
- Import: `animui/action-morph`
- Category: Special
- Runtime exports: `ActionMorph`
- Declaration: `types/pro/action-morph.d.ts`
- Type provenance: reconstructed-from-docs-and-runtime
- Related: action-button, orbit-menu, dropdown-menu, dialog, toast

```tsx
import { ActionMorph } from 'animui/action-morph';
```

This import example is not a complete render recipe: read the declaration below and its local references for required props, data, callbacks and provider context. Use `animui info action-morph` to resolve the local declaration graph. Global setup is in `llms.txt`.

```ts
/** Reconstructed from saved Arc documentation and runtime binding evidence; original TypeScript source was unavailable. */
import type { ComponentType, ReactNode, CSSProperties, Ref, ButtonHTMLAttributes, HTMLAttributes, ReactElement } from 'react';

export interface ActionMorphAction { id: string; label: string; description?: string; icon: ReactNode; shortcut?: string; composer: { title: string; placeholder: string; multiline?: boolean; choices?: string[]; submitLabel: string; successLabel: string; emptyHint?: string }; }
export interface ActionMorphSubmission { action: ActionMorphAction; text: string; choice?: string; }
export interface ActionMorphProps {
  actions: ActionMorphAction[];
  label?: string;
  onSubmit?: (submission: ActionMorphSubmission) => void | Promise<unknown>;
  corner?: "end" | "start";
  resetAfter?: number;
  className?: string;
}

export declare const ActionMorph: ComponentType<ActionMorphProps>;

export default ActionMorph;
```
