Centered modal confirmation dialog — a title, a message, and Cancel / Confirm
buttons — for guarding destructive or irreversible actions (delete, discard,
leave). Promoted from the tracking app's repeated inline dialogs so the
tracking app and the portal share one implementation.
Parameters
__namedParameters: Props
Returns Element|null
Remarks
Rendered in a body portal with position: fixed, so it escapes any
overflow clipping or CSS transform from a hosting drawer/card and always
covers the full viewport.
Does not dismiss on backdrop click (deliberate for destructive
actions); Escape triggers onCancel. Pass busy to lock both buttons
while an async onConfirm runs.
Centered modal confirmation dialog — a title, a message, and Cancel / Confirm buttons — for guarding destructive or irreversible actions (delete, discard, leave). Promoted from the tracking app's repeated inline dialogs so the tracking app and the portal share one implementation.