Toast
Imperative notification API (`toast.success`, `toast.error`, `toast.promise`). Differentiates `role="alert"` from `role="status"`.
Preview
Switch the framework picker (top-right of the panel) to render the same demo live in React, Vue, or Angular — same class names, ARIA, and visual output across all three.
Installation
Sisyphos UI ships unified packages for React, Vue, and Angular. Pick the one that matches your stack — every framework exports the same component classes, ARIA semantics, and CSS tokens.
$ pnpm add @sisyphos-ui/reactThen import the bundled stylesheet once at app entry: import "@sisyphos-ui/react/styles.css";
Usage
import { Toaster, toast, Button } from "@sisyphos-ui/react";
export const App = () => (
<>
<Toaster position="bottom-right" />
<Button onClick={() => toast.success("Saved")}>Save</Button>
</>
);Title + description
Second argument accepts `{ description, duration, dismissible, … }`.
With undo action
Pass any ReactNode as `action`. Use `toast.dismiss(id)` to close from inside the action.
Promise + loading
`toast.promise(p, { loading, success, error })` morphs a loading toast into success or error when the promise settles — same id, same slot, animated transition. `success` / `error` accept a function of the resolved value / thrown error.
All positions
Pick any of the six anchor points. The `<Toaster />` itself drives layout.
API
Props table is being written. See the package README for the complete API surface.
The full API including refs, ARIA attributes, and HTML passthroughs lives in the package README on npm.