feat(ui): modals close only via Esc/X/cancel; standard 3:1 form cover processing

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-07 15:23:14 +03:30
co-authored by Cursor
parent f5b6a47f3c
commit 2f3646d085
19 changed files with 366 additions and 117 deletions
+3 -1
View File
@@ -1,5 +1,6 @@
<script setup lang="ts">
import { computed, onMounted, onUnmounted, ref, watch } from 'vue';
import { useEscClose } from '@/lib/modal-stack';
import { matchesSearch } from '@/lib/search';
import TableColumnsMenu from '@/components/TableColumnsMenu.vue';
import { useRoute, useRouter } from 'vue-router';
@@ -66,6 +67,7 @@ const selectedRoleId = ref<string | null>(null);
const showAllMembers = ref(false);
const menuUserId = ref<string | null>(null);
const isNarrow = ref(false);
useEscClose(() => isNarrow.value && selectedRoleId.value, () => { selectedRoleId.value = null; });
const inviteOpen = ref(false);
const inviteSaving = ref(false);
@@ -851,7 +853,7 @@ onUnmounted(() => {
</button>
</footer>
</aside>
<div v-if="isNarrow && selectedRoleId" class="sheet-backdrop" @click="selectedRoleId = null" />
<div v-if="isNarrow && selectedRoleId" class="sheet-backdrop" aria-hidden="true" />
<div class="main-col">
<div class="toolbar">