component · modal
Unsaved Changes Guard
An edit dialog that tracks a dirty state per field; closing with unsaved edits opens a stacked confirm (Keep editing, Discard, Save & close) that lists exactly what changed, and focus returns correctly through both layers.