
Confirm Popover
Popovers
Search by name, tag, category or type
Source and install need .
pnpm dlx shadcn@latest add @assembli/danger-zoneThe danger zone at the foot of workspace settings: outlined actions that only turn red on hover. Transfer ownership opens in place with a member picker, Archive makes the workspace read-only with a banner and flips to Unarchive, and Delete opens an alert dialog that lists what goes with counts, offers an export, and stays locked until the name is typed. It can't be dismissed mid-delete.
Other props pass through to the root element.
workspace*
string
The workspace's display name, used in the copy.
confirmText
string
Default workspace
What the person must type to delete. Defaults to the workspace name.
members
DangerZoneMember[]
Default []
People who can take ownership. The Transfer row shows when this and onTransfer are set.
onTransfer
(member: DangerZoneMember) => Promise<void> | void
archived
boolean
defaultArchived
boolean
Default false
onArchivedChange
(archived: boolean) => Promise<void> | void
Archive (true) or unarchive (false). May be async. The Archive row shows when set.
onDelete
() => Promise<void> | void
May be async; the dialog stays open and can't be dismissed until it settles. A rejection shows an error.
onExport
() => void
Offered in the delete dialog as a last chance to take a copy.
consequences
DangerZoneConsequence[]
Default []
container
HTMLElement | React.RefObject<HTMLElement | null> | null
Where the delete dialog portals to. Pass a positioned element to keep it inside a frame.
title
React.ReactNode
Default "Danger zone"
description
React.ReactNode
| Description | |||
|---|---|---|---|
| workspace* | string | – | The workspace's display name, used in the copy. |
| confirmText | string | workspace | What the person must type to delete. Defaults to the workspace name. |
| members | DangerZoneMember[] | [] | People who can take ownership. The Transfer row shows when this and |
| onTransfer | (member: DangerZoneMember) => Promise<void> | void | – | |
| archived | boolean | – | |
| defaultArchived | boolean | false | |
| onArchivedChange | (archived: boolean) => Promise<void> | void | – | Archive (true) or unarchive (false). May be async. The Archive row shows when set. |
| onDelete | () => Promise<void> | void | – | May be async; the dialog stays open and can't be dismissed until it settles. A rejection shows an error. |
| onExport | () => void | – | Offered in the delete dialog as a last chance to take a copy. |
| consequences | DangerZoneConsequence[] | [] | |
| container | HTMLElement | React.RefObject<HTMLElement | null> | null | – | Where the delete dialog portals to. Pass a positioned element to keep it inside a frame. |
| title | React.ReactNode | "Danger zone" | |
| description | React.ReactNode | – |