Storybook stories for the `Toaster` component system, providing static previews and interactive demos for toast notifications built on Sonner with ODS-styled cards. ## Key Components | Export | Type | Description | |---|---|---| | `AllVariants` | Story | Static grid showing all five toast variants plus edge cases (title-only, description-only, non-dismissible, persistent) | | `Playground` | Story | Interactive arg-driven story for tweaking `ToastCard` props via Storybook controls | | `CommandApprovalCollapsed` | Story | `CommandApprovalToast` in its default collapsed state | | `CommandApprovalExpanded` | Story | `CommandApprovalToast` pre-expanded to show command preview and Approve/Reject actions | | `CommandApprovalPerTool` | Story | Renders one approval toast per supported tool type to verify icon mapping | | `CommandApprovalLive` | Story | Fires real Sonner toasts via `showCommandApprovalToast()` with approve/reject callbacks | | `LiveTriggers` | Story | Button grid for firing all five variants plus edge cases using the live `toast()` and `showToast()` APIs | ## Usage Example ```typescript // Fire a warning toast from anywhere in the app import { showToast } from '../components/ui/toaster'; showToast({ variant: 'warning', title: 'Device Package limit', description: 'Extra devices will be billed at pay-as-you-go rates.', duration: 4000, dismissible: true, }); // Fire a command approval toast with action callbacks import { showCommandApprovalToast } from '../components/ui/toaster'; import { toast } from '../hooks/use-toast'; import { ToolTypeValues } from '../types/tool.types'; showCommandApprovalToast({ title: 'Tech Required', description: 'Approval is required to execute the command.', command: 'fleetctl query --hosts mac-* "SELECT * FROM system_info"', toolType: ToolTypeValues.FLEET_MDM, approvalDescription: 'Queries system info across all macOS hosts.', onApprove: () => toast({ variant: 'success', title: 'Command approved' }), onReject: () => toast({ variant: 'error', title: 'Command rejected' }), }); ``` Place `` once near your app root to render the Sonner portal. Supported variants: `default`, `success`, `warning`, `error`, `info`.