{{-- Google Maps Location Picker Component Expert-app UX: fixed crosshair + draggable map (Uber/Careem/Talabat style) Props: $fieldPrefix — prefix for hidden input names (e.g. "delivery" → delivery_lat, delivery_lng …) $placeholder — text shown in the trigger input $initialLat — starting map latitude (default: 24.7136 — Riyadh) $initialLng — starting map longitude (default: 46.6753) $districts — pre-loaded districts array (optional, lazy-loaded if empty) --}} @props([ 'fieldPrefix' => 'location', 'placeholder' => null, 'initialLat' => 24.7136, 'initialLng' => 46.6753, 'districts' => [], ]) @php $placeholder ??= __('Pick location on map'); $mapsKey = config('services.google_maps.key', ''); $uid = 'gmp_' . uniqid(); @endphp
{{-- ─── Trigger Input ──────────────────────────────────── --}}
{{-- ─── Hidden Inputs ──────────────────────────────────── --}} {{-- ─── Full-screen Modal ──────────────────────────────── --}}
{{-- ─── Styles ──────────────────────────────────────────────── --}} {{-- ─── Google Maps Script (loaded once) ──────────────────── --}} @once @if($mapsKey) @endif @endonce {{-- ─── Alpine Component ────────────────────────────────────── --}}