Use createUnsavedWarning() + UnsavedWarningBanner to replace the inline beforeNavigate/isDirty pattern, and add an enhance callback that calls clearOnSuccess() before update() so the guard is disarmed before SvelteKit's internal goto() fires on a redirect result. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>