Improve dropdown menus positioning

This commit is contained in:
brufdev
2025-03-31 18:58:15 +01:00
parent 410e803ee8
commit 7025be7ced
5 changed files with 21 additions and 7 deletions
@@ -1,6 +1,5 @@
<header
class="border-b bg-light-base-100 dark:bg-base-800 text-light-base-950 dark:text-base-50 border-light-base-300 dark:border-base-500">
<div class="max-w-[63rem] mx-auto">
<header class="border-b bg-light-base-100 dark:bg-base-800 text-light-base-950 dark:text-base-50 border-light-base-300 dark:border-base-500">
<div class="max-w-[63rem] mx-auto" x-ref="header">
<div class="flex justify-between px-4 py-5">
{{ $slot }}
</div>
@@ -1,4 +1,8 @@
@props(['wide' => false])
@props([
'wide' => false,
'anchorElement' => null,
'anchorOffset' => null,
])
<div {{ $attributes->merge(['class' => 'relative']) }}
x-data="{ menuOpen: false, wide: {{ $wide ? 'true' : 'false' }} }"
@@ -1,6 +1,17 @@
@aware([
'anchorElement',
'anchorOffset',
])
<div class="z-[35] border bg-light-base-200 dark:bg-base-950 border-light-base-300 dark:border-base-500 rounded-md shadow-lg p-1.5 text-light-base-950 dark:text-base-50"
:class="wide ? 'min-w-[15rem]' : 'min-w-[10rem]'"
x-show="menuOpen" x-anchor.bottom-end="$refs.button" x-cloak
x-show="menuOpen"
x-cloak
@if ($anchorElement)
x-anchor.bottom-end{{ $anchorOffset ? '.offset.' . $anchorOffset : '' }}="{{ $anchorElement }}"
@else
x-anchor.bottom-end.offset.5="$refs.button"
@endif
@click.away="menuOpen = false"
>
{{ $slot }}
@@ -1,5 +1,5 @@
<div>
<x-menu wide>
<x-menu anchorElement="$refs.header" anchorOffset="-15" wide>
<x-menu.button>
<x-icons.bell class="w-5 h-5" />
@@ -1,5 +1,5 @@
<div>
<x-menu>
<x-menu anchorElement="$refs.header" anchorOffset="-15">
<x-menu.button>
<x-icons.user class="w-5 h-5" />
</x-menu.button>