0"
@click.away="open = false"
@keydown.arrow-down.prevent="move(1)"
@keydown.arrow-up.prevent="move(-1)"
@keydown.enter.prevent="select(focusedIndex)"
placeholder="Search sites or regions..."
class="w-full rounded-full px-5 py-3 pr-12
text-white placeholder-white/70
bg-white/20 backdrop-blur-xl
border border-white/30 ring-1 ring-white/20
shadow-[0_8px_24px_rgba(31,38,135,0.15)]
focus:ring-2 focus:ring-cyan-400
transition-all duration-200 ease-out
placeholder:opacity-70 placeholder:not-italic"
/>
Searching...
No results for “”.
Live
Max
Entry
Level
Create an account to keep track of your favourite dive sites.
Today’s Diveability
6AM–12PM • 12PM–5PM • 5PM–9PMCurrent Conditions
Wind
Swell
•
Period
s (interval) —
s (interval) —
Swell Forecast (Next 24h)
8 && (dragStartState === 'peek' || atTop)) {
$el.style.transform = `translateY(${diff}px)`;
}
// Dragging UP from peek: expand the sheet
else if (diff < -40 && dragStartState === 'peek') {
$el.style.transform = `translateY(${diff}px)`;
}
"
@touchend="
if (!dragging) return;
dragging = false;
$el.style.transform = '';
const diff = $event.changedTouches[0].clientY - dragStartY;
const atTop = dragStartScrollTop <= 2;
if (diff > 80 && (dragStartState === 'peek' || atTop)) {
if (dragStartState === 'full') {
sheetState = 'peek';
$nextTick(() => { if ($refs.sheetScroll) $refs.sheetScroll.scrollTop = 0; });
} else {
if (navigator.vibrate) navigator.vibrate(50);
selectedSite = null;
}
} else if (diff < -60 && dragStartState === 'peek') {
sheetState = 'full';
}
"
class="fixed bottom-0 left-0 right-0 z-50
w-full sm:max-h-[80vh]
bg-slate-900 border-t border-white/10
shadow-[0_-4px_32px_rgba(0,0,0,0.5)]
text-white rounded-t-2xl
transition-all duration-300 ease-out overflow-hidden"
>
Water
Updated:
Updated:
{ if ($refs.sheetScroll) $refs.sheetScroll.scrollTop = 0; });
} else {
sheetState = 'full';
}
">
Live
Max
Entry
Level
Create an account to keep track of your favourite dive sites.
Today’s Diveability
6AM–12PM • 12PM–5PM • 5PM–9PMCurrent Conditions
Wind
Swell
•
Period
s (interval) —
s (interval) —