ns-ui
Select-all where the change propagates like a domino run: flip the master and a wavefront tips down the list, each row's checkbox flipping and shoving the next — click any row mid-run to halt the wave there, leaving the rest untouched.
Use when a bulk select-all/mark-all-read/enable-all over a visible list, where users routinely want 'all except a few' — clicking any row mid-run halts the propagating wave there, leaving rows beyond it untouched, so there's no all-then-undo. Prefer a plain checked-count select-all when the list is never long enough for mid-toggle interruption to matter; prefer this when it is.
Install
npx shadcn add https://design.helpmarq.com /r/checkbox-domino-run.jsonns-ui / checkbox-domino-run
Flip the master checkbox — a wavefront tips down the list, marking each row read as it passes. Click any row while the wave is live to halt it there; everything below stays untouched.
| Prop | Type | Default | Description |
|---|---|---|---|
| items | ToppleRunItem[] | — | Rows the master toggle governs, top to bottom = wave direction. |
| label? | string | — | Label for the master control. @default "Select all" |
| defaultChecked? | string[] | — | Ids checked on mount. @default [] |
| onChange? | (checkedIds: string[]) => void | — | Fires whenever the checked set changes, including mid-run commits. |
| className? | string | — | — |