diff --git a/apps/app/src/components-v2/layout/AppSidebar.vue b/apps/app/src/components-v2/layout/AppSidebar.vue index 03a7d061..f7680f35 100644 --- a/apps/app/src/components-v2/layout/AppSidebar.vue +++ b/apps/app/src/components-v2/layout/AppSidebar.vue @@ -114,6 +114,16 @@ const mobileVisible = computed({ The children are intentionally repeated (not factored into a slot or render-fn) — the 3-component block is short and the duplication is preferable to the indirection of a dynamic component or slot wiring. + + Close control (MOBILE-SHELL-PARITY defect 2): PrimeVue's default header + close-X is force-hidden via `header: '!hidden'`. Plain `hidden` lost to + PrimeVue's base `.p-drawer-header` display in stylesheet order, so the + default X leaked through and overlapped the brand row (the reported + defect). The important variant (`!hidden`, matching this file's existing + `!w-64`) wins. The mobile close affordance instead lives in + SidebarHeader's brand row, which renders an X ("Sluit menu") on mobile — + a single, non-overlapping control in the same top-right slot the desktop + sidebar uses for its collapse chevron. No duplicate, no overlap. --> ({ class="!w-64" :pt="{ content: { class: 'flex flex-col p-0 overflow-hidden h-full' }, - header: { class: 'hidden' }, + header: { class: '!hidden' }, }" > diff --git a/apps/app/src/components-v2/layout/SidebarHeader.vue b/apps/app/src/components-v2/layout/SidebarHeader.vue index 571b1418..a1bd544e 100644 --- a/apps/app/src/components-v2/layout/SidebarHeader.vue +++ b/apps/app/src/components-v2/layout/SidebarHeader.vue @@ -109,19 +109,26 @@ function handleCollapseClick(): void {