<!-- source-hash: 1847d3dd263a7c340149cc9157774ef5 -->
A client-side toast notification system built on top of [Sonner](https://sonner.emilkowal.ski/), providing styled toast components with variant support, progress indicators, and a specialized command approval flow.

## Key Components

| Export | Type | Description |
|--------|------|-------------|
| `Toaster` | Component | Root provider wrapping Sonner's `Toaster`; injects the `toast-progress` keyframe animation |
| `ToastCard` | Component | Standard toast card with title, description, colored dot indicator, dismiss button, and animated progress bar |
| `CommandApprovalToast` | Component | Expandable toast with Approve/Reject actions for AI command authorization flows |
| `showToast` | Function | Imperative helper to fire a `ToastCard` toast |
| `showCommandApprovalToast` | Function | Imperative helper to fire a `CommandApprovalToast` |
| `ToastVariant` | Type | `'default' \| 'success' \| 'warning' \| 'error' \| 'info'` |

## Usage Example

**Mount the provider once (root layout):**

```typescript
import { Toaster } from '@/components/toaster'

export default function RootLayout({ children }) {
  return (
    <>
      {children}
      <Toaster position="bottom-right" />
    </>
  )
}
```

**Fire a standard toast:**

```typescript
import { showToast } from '@/components/toaster'

showToast({ title: 'Saved', description: 'Changes saved successfully.', variant: 'success' })

// Shorthand
showToast('Operation complete')
```

**Request command approval (Mingo AI flow):**

```typescript
import { showCommandApprovalToast } from '@/components/toaster'

showCommandApprovalToast({
  command: 'apt-get upgrade -y',
  toolType: 'terminal',
  approvalDescription: 'This will upgrade all system packages.',
  onApprove: () => executeCommand(),
  onReject: () => cancelJob(),
})
```

> `CommandApprovalToast` defaults to `duration: Infinity` so it persists until the technician explicitly approves or rejects the action.