CoreConfirmDialog
Примеры использования и документация.
Страховка перед необратимым действием: удаление, публикация, оплата — пользователь ещё раз подтверждает решение и не теряет данные по случайному клику. Вызывается программно из любого места: одна строка await confirm({ title }) вместо ручного диалога в каждом компоненте; промис возвращает булев ответ.
Диалог state-driven: контейнер CoreConfirmDialog монтируется один раз на уровне layout и живёт всю сессию, а не в каждом месте вызова. Опции запроса: title/message, подписи кнопок cancelText/confirmText, danger — подтверждающая кнопка становится красной (деструктивное действие), position — у верхней кромки или по центру. Фокус при открытии — на «Отмене»: наименее деструктивный выбор по умолчанию.
Гонки исключены конструкцией: активен один запрос — новый confirm() не встаёт в очередь, а заменяет текущий (его промис честно резолвится false, диалог показывает новый вопрос). Esc, клик по фону и системная «назад» отвечают отказом через стек оверлеев; гвард по seq даёт ровно один resolve на запрос. Подписи кнопок локализованы (coreConfirm.cancel/confirm), точечный override — cancelText/confirmText.
результат: —