// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Commercial // SPDX-FileCopyrightText: 2025-2026 Christian Galo package server import ( "git.coopcloud.tech/wiki-cafe/member-console/internal/forms" ) // shell.confirm (design D4, D12; docs/design-system.md "Confirm modal"; // task 5.6). The one shared confirmation dialog every destructive action on // both surfaces opens through (shell_confirm_modal.html, driven by // static/confirm-action-modal.js): one dialog, reused by every trigger, its // title, body text, hidden fields, endpoint and commit class all // reassigned by the script from the trigger's own data-action-* // attributes at the moment it opens (design-system.md's trigger-contract // table). // // Because one dialog serves many different mutations, this declaration // carries no Fields of its own; CheckInvariants exempts the Confirm kind // from the "declares no fields" rule for exactly this reason (a Field // would have to belong to one trigger's shape, and every trigger's shape // differs). The hidden fields a trigger needs are appended straight into // the rendered