1import{u as lt,a as rt,i as nt,t as A,r as o,j as e,C as Ue,L as Z,b as W,c as O,d as pe,B as b,K as Ve,O as _e,M as bs,aa as X,a4 as it,aw as We,A as dt,a0 as ys,U as Oe,e as Ss,p as qe,x as xt,J as w,G as Cs,R as Ts}from"./index-U8D282DB.js";import{I as k}from"./input-DFtjl8GZ.js";import{A as ue}from"./AddressAutocomplete-CAjuWtLo.js";import{L as n}from"./label-BdqAIGhN.js";import{S as me,a as ge,b as Ne,c as he,d as i}from"./select-DGSESBU1.js";import{T as Ps}from"./textarea-DE9S6YvS.js";import{S as As}from"./switch-Dn7z-yJG.js";import{L as pt}from"./LineItemsBreakdown-BTPMYgXp.js";import{A as Rs,E as ut,g as mt,a as gt,b as Nt}from"./surcharges-BlHQDOGP.js";import{P as ht}from"./PartnerShowcase-TLvsw7tZ.js";import{F as wt,b as kt,f as ft}from"./publicTripValidation-pfiIZ2tb.js";import{P as Bt}from"./plus-DHOMwzdP.js";import{I as ze}from"./info-5IEjWd3t.js";import{L as jt}from"./luggage-CAvD0ihS.js";import"./useComposition-DGvQVl2f.js";import"./index-BdQq_4o_.js";import"./index-Dyyrzgm7.js";import"./check-fK4IDB-m.js";import"./chevron-up-B1n65gyY.js";import"./badge-BmpMbrZ9.js";import"./undo-2-DuItk8Ae.js";import"./plane-Dqqn_g8f.js";import"./party-popper-DE-_WcTd.js";import"./handshake-CxiU6pmk.js";const vt=[2749,2752,2753,2754,2755,2756,2757,2758,2765,2775];function Is(r){return vt.includes(r)}function Qe(r,p){return r===null||p===null?!1:Is(r)&&Is(p)}const bt=[{minPax:1,maxPax:3,ratePerKm:3,label:"1-3 passengers"},{minPax:4,maxPax:6,ratePerKm:4,label:"4-6 passengers"},{minPax:7,maxPax:10,ratePerKm:5,label:"7-10 passengers"}],ee=19,yt=1;function St(r){return bt.find(p=>r>=p.minPax&&r<=p.maxPax)??null}function Ct(r){const p=St(r.passengerCount);if(!p)return null;const q=Math.round(r.distanceKm*p.ratePerKm*100)/100,G=r.waitTimeMinutes??0,se=Math.round(G*yt*100)/100;let y=q+se;const we=y<ee&&G===0;return y<ee&&(y=ee),{fare:Math.round(y*100)/100,ratePerKm:p.ratePerKm,distanceCost:q,waitTimeCost:se,minimumApplied:we,tier:p}}function Ds(r){const p=r.match(/\b(2\d{3}|3\d{3}|4\d{3}|5\d{3}|6\d{3}|7\d{3}|8\d{3}|9\d{3})\b/);if(p){const q=parseInt(p[1],10);return isNaN(q)?null:q}return null}function Zt(){lt("Book Now");const{user:r,isAuthenticated:p,loading:q}=rt(),[,G]=nt(),{data:se}=A.vehicles.list.useQuery({activeOnly:!0}),y=A.maps.calculateDistance.useMutation(),we=A.maps.calculateRoute.useMutation(),Fs=A.maps.calculateTollsFromAddresses.useMutation(),ke=A.quotes.create.useMutation(),fe=A.bookings.customerCreate.useMutation(),te=A.bookings.guestCreate.useMutation(),{data:ae}=A.customer.loyaltyCredits.useQuery(void 0,{enabled:p}),[m,Ye]=o.useState(""),[g,He]=o.useState(""),[Te,Ge]=o.useState(!1),[Pe,Je]=o.useState(!1),[U,Ae]=o.useState([]),[oe,Ms]=o.useState(""),[R,Ze]=o.useState(""),[I,Xe]=o.useState("07:00"),[ce,es]=o.useState(""),[B,$s]=o.useState(""),[D,ss]=o.use
1State(""),[j,Es]=o.useState(""),[Re,Ls]=o.useState(""),[z,ts]=o.useState(""),[J,as]=o.useState(""),[Q,os]=o.useState(""),[le,Ks]=o.useState(""),[re,Us]=o.useState(""),[ne,Ie]=o.useState(null),[cs,ls]=o.useState(null),[c,Vs]=o.useState(!1),[F,_s]=o.useState(""),[M,Ws]=o.useState(""),[f,De]=o.useState(""),[S,Fe]=o.useState(""),[rs,Me]=o.useState(!1),[ns,$e]=o.useState(!1),[V,is]=o.useState(""),[ie,Ee]=o.useState(""),[N,Y]=o.useState(null),[l,$]=o.useState(null),[h,C]=o.useState(null),[Os,ds]=o.useState(null),[T,Le]=o.useState(null),[qs,Be]=o.useState(!1),[xs,je]=o.useState(null),[H,zs]=o.useState(!1),[ps,Ke]=o.useState([]),[us,de]=o.useState(null),[ve,Qs]=o.useState(null),[be,Ys]=o.useState(null),[E,Hs]=o.useState(""),[xe,Gs]=o.useState(""),[ms,gs]=o.useState(!1),P=Qe(ve,be),[Js,ye]=o.useState(!1),v=o.useMemo(()=>{if(!P||!l||!E)return null;const t={"1-3":2,"4-6":5,"7-10":8}[E]||2,a=parseInt(xe)||0;return Ct({distanceKm:parseFloat(l.distanceKm),passengerCount:t,waitTimeMinutes:a})},[P,l,E,xe]),Zs=A.bookings.createLocalBooking.useMutation(),L=se?.find(s=>s.id.toString()===oe),Ns=o.useMemo(()=>{if(!l)return null;const s={distanceKm:parseFloat(l.distanceKm),durationMin:parseFloat(l.durationMin),isReturnTrip:c,serviceType:B||void 0,pickupAddress:m||void 0,dropoffAddress:g||void 0,returnPickupAddress:c?f||g:void 0,returnDropoffAddress:c?S||m:void 0,returnDistanceKm:c?parseFloat(N?.distanceKm||l.distanceKm):void 0,returnDurationMin:c?parseFloat(N?.durationMin||l.durationMin):void 0,returnPickupIsAirport:c?/airport|terminal|mascot|kingsford smith|\bsyd\b/i.test(f||g):void 0,returnTollCost:c&&ie?parseFloat(ie):void 0};return R&&I&&(s.scheduledAt=new Date(`${R}T${I}`).getTime()),r?.companyId&&(s.companyId=r.companyId),r?.id&&(s.customerId=r.id),D&&(s.airportTerminal=D),c&&F&&M&&(s.returnScheduledAt=new Date(`${F}T${M}`).getTime()),c&&V&&(s.returnAirportTerminal=V),s},[l,N,ie,c,f,S,F,M,V,R,I,B,r?.companyId,r?.id,D,m,g]),{data:K}=A.vehicles.calculatePrices.useQuery(Ns,{enabled:!!Ns}),Xs=s=>{if(!K)return null;const t=K.find(a=>a.vehicleId===s);return t?c&&t.outboundTotal?t.outboundTotal:t.price:null},Se=s=>{if(!K||!c)return null;const t=K.find(a=>a.vehicleId===s);return t&&t.returnTotal||null},et=s=>{if(!K)return null;const t=K.find(d=>d.vehicleId===s);if(!t)return null;const a=t.surcharges?.find(d=>d.percent<0&&d.name.includes("discount"));return a?{name:a.name,percent:Math.abs(a.percent),originalPrice:t.baseFare+t.totalSurcharge-a.amount}:null},hs=U.length>0,ws=y.isPending||we.isPending,st=()=>{Ae(s=>[...s,{id:crypto.randomUUID(),address:"",selected:!1}]),$(null),C(null)},tt=s=>{Ae(t=>t.filter(a=>a.id!==s)),$(null),C(null)},ks=(s,t,a)=>{Ae(d=>d.map(u=>u.id===s?{...u,address:t,selected:a}:u)),a||($(null),C(null))};if(o.useEffect(()=>{if(l&&L&&K){const s=K.find(t=>t.vehicleId===L.id);if(s){const t=c&&s.outboundTotal?s.outboundTotal:s.price;C(t.toFixed(2)),ds(s.surcharges&&s.surcharges.length>0?{totalPrice:t,baseFare:s.baseFare,totalSurcharge:s.totalSurcharge,surcharges:s.surcharges}:null),s.lineItems?Le(s.lineItems):Le(null)}}else C(null),ds(null),Le(null)},[l,L,c,R,I,K]),q)return e.jsx(Ue,{"data-loc":"client/src/pages/BookNow.tsx:259",children:e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:259",className:"flex items-center justify-center py-32",children:e.jsx(Z,{"data-loc":"client/src/pages/BookNow.tsx:259",className:"h-8 w-8 animate-spin",style:{color:"#C8A951"}})})});const at=async()=>{if(!m||!g){w.error("Enter both addresses");return}try{const s=U.filter(t=>t.address).map(t=>t.address);if(s.length>0){const t=await we.mutateAsync({origin:m,destination:g,stops:s});$(t),w.success(`Total route: ${t.distanceText} · ${t.durationText}`)}else{const t=await y.mutateAsync({origin:m,destination:g});$(t),w.success("Distance calculated")}}catch(s){w.error(s.message||"Failed to calculate distance")}},Ce=async(s,t)=>{if(!(!s||!t))try{const[a,d]=await Promise.all([y.mutateAsync({origin:s,destination:t}),Fs.mutateAsync({originAddress:s,destinationAddress:t})]);Y(a),Ee(d.available&&d.tollAmount>0?d.tollAmount.toFixed(2):""),C(null),w.success(`Return route: ${a.distanceText} · ${a.durationText}`)}catch(a){Y(null),Ee(""),w.error(a.message||"Failed to calculate return route")}},ot=s=>{if(Vs(s),!s){Y(null),is(""),Ee("");return}const t=g,a=m;De(t),Fe(a),Me(Pe),$e(Te),Pe&&Te&&t&&a&&Ce(t,a)},fs=(s=!1)=>kt({pickup:m,pickupSelected:Te,dropoff:g,dropoffSelected:Pe,routeCalculated:!!l,incompleteStopLabels:U.flatMap((t,a)=>t.address&&!t.selected?[`Stop ${a+1}`]:[]),scheduledDate:R,scheduledTime:I,passengerCount:s?E:j,vehicleRequired:!s,vehicleId:oe,customerName:z.trim()||r?.name||"",customerPhone:J.trim()||r?.phone||"",customerEmail:Q.trim()||r?.email||"",requireEmail:!0,isReturnTrip:s?!1:c,returnDate:F,returnTime:M,returnPickup:f,returnPickupSelected:rs,returnDropoff:S,returnDropoffSelected:ns,returnRouteCalculated:!!N}),Bs=s=>{Ke(s),de(null),ft(s),w.error(`Please fix ${s.length} highlighted field${s.length===1?"":"s"}.`)},js=async s=>{const t=fs(!1);if(t.length>0){Bs(t);return}Ke([]),de(null);try{const a=new Date(`${R}T${I}`).getTime(),d=U.filter(u=>u.address).length>0?JSON.stringify(U.filter(u=>u.address).map(u=>({address:u.address}))):void 0;if(s==="book"){const u={vehicleId:parseInt(oe),pickupAddress:l?.originAddress||m,dropoffAddress:l?.destinationAddress||g,distanceKm:l?.distanceKm,durationMin:l?.durationMin,estimatedPrice:h||void 0,scheduledAt:a,stops:d,isReturnTrip:c,returnScheduledAt:c&&F&&M?new Date(`${F}T${M}`).getTime():void 0,serviceType:B||void 0,airportTerminal:D||void 0,passengerCount:j?parseInt(j):void 0,flightNumber:Re||void 0,luggageCount:le||void 0,notes:ce||void 0,referralCode:re.trim()||void 0,customerPhone:J||void 0,customerEmail:Q.trim()||r?.email||"",customerName:z.trim()||r?.name||"Customer",lineItems:T?JSON.stringify(T):void 0,outboundPrice:h||void 0,returnPrice:c&&L&&Se(L.id)?.toFixed(2)||void 0,returnPickupAddress:c?N?.originAddress||f||g:void 0,returnDropoffAddress:c?N?.destinationAddress||S||m:void 0,returnDistanceKm:c?N?.distanceKm||l?.distanceKm:void 0,returnDurationMin:c?N?.durationMin||l?.durationMin:void 0,returnTollAmount:c&&ie||void 0,returnAirportTerminal:c&&V?V:void 0};if(p)try{await fe.mutateAsync({...u,useCredits:H||void 0})}catch(_){if(_?.data?.code==="UNAUTHORIZED"||_?.message?.includes("UNAUTHORIZED"))console.warn("[BookNow] Auth failed, falling back to guest booking"),await te.mutateAsync({...u,customerName:z.trim()||r?.name||"Customer",customerEmail:Q.trim()||r?.email||""});else throw _}else await te.mutateAsync(u);w.success("Booking submitted! We'll confirm it shortly."),je("book"),Be(!0)}else await ke.mutateAsync({customerName:z.trim()||r?.name||void 0,customerEmail:Q||r?.email||void 0,customerPhone:J||void 0,vehicleId:parseInt(oe),pickupAddress:l?.originAddress||m,dropoffAddress:l?.destinationAddress||g,distanceKm:l?.distanceKm,durationMin:l?.durationMin,estimatedPrice:h||void 0,scheduledAt:a,stops:d,isReturnTrip:c,returnScheduledAt:c&&F&&M?new Date(`${F}T${M}`).getTime():void 0,serviceType:B||void 0,airportTerminal:D||void 0,passengerCount:j?parseInt(j):void 0,flightNumber:Re||void 0,luggageCount:le||void 0,notes:ce||void 0,referralCode:re.trim()||void 0,source:"website",useCredits:H||void 0,lineItems:T?JSON.stringify(T):void 0,outboundPrice:h||void 0,returnPrice:c&&L&&Se(L.id)?.toFixed(2)||void 0,returnPickupAddress:c?N?.originAddress||f||g:void 0,returnDropoffAddress:c?N?.destinationAddress||S||m:void 0,returnDistanceKm:c?N?.distanceKm||l?.distanceKm:void 0,returnDurationMin:c?N?.durationMin||l?.durationMin:void 0,returnTollAmount:c&&ie||void 0,returnAirportTerminal:c&&V?V:void 0}),je("quote"),Be(!0),w.success("Quote request submitted!")}catch(a){const d=a.message||"We could not submit your booking. Please review the form and try again.";de(d),w.error(d)}},ct=s=>ps.some(t=>t.field===s),x=s=>
1ct(s)?"ring-2 ring-red-500 ring-offset-2":"";return qs?e.jsx(Ue,{"data-loc":"client/src/pages/BookNow.tsx:467",children:e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:467",className:"flex items-center justify-center p-4 py-16",children:e.jsx(W,{"data-loc":"client/src/pages/BookNow.tsx:468",className:"max-w-md w-full shadow-lg",children:e.jsxs(O,{"data-loc":"client/src/pages/BookNow.tsx:469",className:"p-8 text-center",children:[e.jsx(pe,{"data-loc":"client/src/pages/BookNow.tsx:470",className:"h-16 w-16 text-green-500 mx-auto mb-4"}),e.jsx("h2",{"data-loc":"client/src/pages/BookNow.tsx:471",className:"text-2xl font-bold mb-2",children:xs==="book"?"Booking Submitted!":"Quote Request Sent!"}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:474",className:"text-muted-foreground mb-6",children:xs==="book"?"Your booking has been received and is awaiting confirmation. We'll review it and send you a confirmation email shortly.":"We'll review your quote and get back to you shortly. You'll receive an email with the details."}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:479",className:"flex flex-col gap-3",children:[p?e.jsx(b,{"data-loc":"client/src/pages/BookNow.tsx:481",onClick:()=>G("/my-bookings"),children:"View My Bookings"}):e.jsx(b,{"data-loc":"client/src/pages/BookNow.tsx:485",onClick:()=>G("/book"),children:"Book Another Ride"}),e.jsx(b,{"data-loc":"client/src/pages/BookNow.tsx:489",variant:"outline",onClick:()=>G("/"),children:"Back to Home"})]})]})})})}):e.jsx(Ue,{"data-loc":"client/src/pages/BookNow.tsx:498",children:e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:500",className:"container py-8 max-w-2xl mx-auto space-y-6",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:501",children:[e.jsx("h1",{"data-loc":"client/src/pages/BookNow.tsx:502",className:"text-3xl font-bold tracking-tight mb-2",style:{color:"#1B2A4A"},children:"Book a Ride"}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:503",className:"text-muted-foreground",children:"Fill in your trip details and we'll confirm your booking."})]}),e.jsx(wt,{"data-loc":"client/src/pages/BookNow.tsx:506",issues:ps}),us&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:508",role:"alert",className:"rounded-lg border border-red-300 bg-red-50 p-4 text-sm text-red-950 dark:border-red-800 dark:bg-red-950/30 dark:text-red-100",children:[e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:509",className:"font-semibold",children:"Your request was not submitted."}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:510",className:"mt-1",children:us})]}),e.jsxs(W,{"data-loc":"client/src/pages/BookNow.tsx:514",children:[e.jsx(Ve,{"data-loc":"client/src/pages/BookNow.tsx:515",children:e.jsxs(_e,{"data-loc":"client/src/pages/BookNow.tsx:515",className:"flex items-center gap-2",children:[e.jsx(bs,{"data-loc":"client/src/pages/BookNow.tsx:515",className:"h-5 w-5 text-primary"})," Trip Details"]})}),e.jsxs(O,{"data-loc":"client/src/pages/BookNow.tsx:516",className:"space-y-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:518",id:"trip-stops",tabIndex:-1,className:X("space-y-0",x("trip-stops")),children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:520",className:"flex items-start gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:521",className:"flex flex-col items-center pt-3",children:[e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:522",className:"h-3 w-3 rounded-full bg-green-500 ring-2 ring-green-200"}),e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:523",className:"w-0.5 h-full bg-border min-h-[2rem]"})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:525",className:"flex-1 pb-2",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:526",className:"text-xs text-muted-foreground uppercase tracking-wider",children:"Pickup"}),e.jsx(ue,{"data-loc":"client/src/pages/BookNow.tsx:527",id:"pickup-address",value:m,className:x("pickup-address"),onChange:s=>{Ye(s),Ge(!1),$(null),C(null)},onPlaceSelect:s=>{Ye(s.address),Ge(!0),$(null),C(null);const t=s.postcode?parseInt(s.postcode,10):Ds(s.address);Qs(t),be&&t&&!Qe(t,be)&&(ye(!0),setTimeout(()=>ye(!1),5e3))},placeholder:"e.g. Sydney Airport, NSW"})]})]}),e.jsx(Rs,{"data-loc":"client/src/pages/BookNow.tsx:552",pickupAddress:m,currentTerminal:D||"none",onTerminalSelect:s=>ss(s==="none"?"":s)}),U.map((s,t)=>e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:560",className:"flex items-start gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:561",className:"flex flex-col items-center pt-3",children:[e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:562",className:"h-3 w-3 rounded-full bg-amber-500 ring-2 ring-amber-200"}),e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:563",className:"w-0.5 h-full bg-border min-h-[2rem]"})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:565",className:"flex-1 pb-2",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:566",className:"flex items-center justify-between",children:[e.jsxs(n,{"data-loc":"client/src/pages/BookNow.tsx:567",className:"text-xs text-muted-foreground uppercase tracking-wider",children:["Stop ",t+1
1]}),e.jsx(b,{"data-loc":"client/src/pages/BookNow.tsx:570",variant:"ghost",size:"sm",className:"h-6 w-6 p-0 text-muted-foreground hover:text-destructive",onClick:()=>tt(s.id),children:e.jsx(it,{"data-loc":"client/src/pages/BookNow.tsx:576",className:"h-3.5 w-3.5"})})]}),e.jsx(ue,{"data-loc":"client/src/pages/BookNow.tsx:579",value:s.address,onChange:a=>ks(s.id,a,!1),onPlaceSelect:a=>ks(s.id,a.address,!0),placeholder:`Stop ${t+1} address`})]})]},s.id)),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:590",className:"flex items-start gap-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:591",className:"flex flex-col items-center pt-1",children:[e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:592",className:"w-0.5 h-2 bg-border"}),e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:593",className:"h-3 w-3 rounded-full border-2 border-dashed border-muted-foreground/40"}),e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:594",className:"w-0.5 h-2 bg-border"})]}),e.jsxs(b,{"data-loc":"client/src/pages/BookNow.tsx:596",variant:"ghost",size:"sm",className:"text-muted-foreground hover:text-primary gap-1.5 -ml-1",onClick:st,children:[e.jsx(Bt,{"data-loc":"client/src/pages/BookNow.tsx:602",className:"h-3.5 w-3.5"}),"Add a stop"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:608",className:"flex items-start gap-3",children:[e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:609",className:"flex flex-col items-center pt-3",children:e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:610",className:"h-3 w-3 rounded-full bg-red-500 ring-2 ring-red-200"})}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:612",className:"flex-1",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:613",className:"text-xs text-muted-foreground uppercase tracking-wider",children:"Dropoff"}),e.jsx(ue,{"data-loc":"client/src/pages/BookNow.tsx:614",id:"dropoff-address",value:g,className:x("dropoff-address"),onChange:s=>{He(s),Je(!1),$(null),C(null)},onPlaceSelect:s=>{He(s.address),Je(!0),$(null),C(null);const t=s.postcode?parseInt(s.postcode,10):Ds(s.address);Ys(t),ve&&t&&!Qe(ve,t)&&(ye(!0),setTimeout(()=>ye(!1),5e3))},placeholder:"e.g. 123 George St, Sydney NSW"})]})]})]}),e.jsxs(b,{"data-loc":"client/src/pages/BookNow.tsx:639",id:"route-calculation",onClick:at,disabled:ws||!m||!g,className:X("w-full gap-2",x("route-calculation")),variant:"outline",children:[ws?e.jsx(Z,{"data-loc":"client/src/pages/BookNow.tsx:640",className:"h-4 w-4 animate-spin"}):e.jsx(We,{"data-loc":"client/src/pages/BookNow.tsx:640",className:"h-4 w-4"}),"Calculate ",hs?"Route":"Distance"]}),l&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:645",className:"rounded-lg bg-primary/5 border border-primary/20 p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:646",className:"flex items-center gap-2 mb-3",children:[e.jsx(pe,{"data-loc":"client/src/pages/BookNow.tsx:647",className:"h-4 w-4 text-green-500"}),e.jsxs("span",{"data-loc":"client/src/pages/BookNow.tsx:648",className:"text-sm font-medium text-green-700",children:["Route calculated",hs?` (${U.filter(s=>s.address).length} stop${U.filter(s=>s.address).length>1?"s":""})`:""]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:652",className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:653",className:"text-center p-3 bg-background rounded-lg",children:[e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:654",className:"text-xl font-bold text-primary",children:l.distanceText}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:655",className:"text-xs text-muted-foreground",children:"Total Distance"})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:657",className:"text-center p-3 bg-background rounded-lg",children:[e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:658",className:"text-xl font-bold text-primary",children:l.durationText}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:659",className:"text-xs text-muted-foreground",children:"Est. Duration"})]})]}),l.legs&&l.legs.length>1&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:664",className:"mt-3 space-y-1.5",children:[e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:665",className:"text-xs font-medium text-muted-foreground",children:"Route breakdown:"}),l.legs.map((s,t)=>e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:667",className:"flex items-center gap-2 text-xs text-muted-foreground bg-background rounded px-2 py-1.5",children:[e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:668",className:X("h-2 w-2 rounded-full shrink-0",t===0?"bg-green-500":t===l.legs.length-1?"bg-red-500":"bg-amber-500")}),e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:672",className:"truncate flex-1",children:s.from.split(",")[0]}),e.jsx(dt,{"data-loc":"client/src/pages/BookNow.tsx:673",className:"h-3 w-3 shrink-0"}),e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:674",className:"truncate flex-1",children:s.to.split(",")[0]}),e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:675",className:"shrink-0 font-medium",children:s.distanceText})]},t))]})]})]})]}),P&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:687",className:"rounded-xl border-2 border-green-500/50 bg-green-50 dark:bg-green-950/20 p-4 text-center animate-in fade-in slide-in-from-top-2 duration-300",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:688",className:"flex items-center justify-center gap-2 mb-1",children:[e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:689",className:"h-2.5 w-2.5 rounded-full bg-green-500 animate-pulse"}),e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:690",className:"text-sm font-bold text-green-700 dark:text-green-400 uppercase tracking-wider",children:"Drive4U Local"})]}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:692",className:"text-xs text-green-600 dark:text-green-400",children:"Both addresses are within the Hawkesbury area â flat local rates apply!"})]}),Js&&!P&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:698",className:"rounded-xl border-2 border-amber-500/50 bg-amber-50 dark:bg-amber-950/20 p-4 text-center animate-in fade-in slide-in-from-top-2 duration-300",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:699",className:"flex items-center justify-center gap-2 mb-1",children:[e.jsx(ys,{"data-loc":"client/src/pages/BookNow.tsx:700",className:"h-4 w-4 text-amber-600"}),e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:701",className:"text-sm font-semibold text-amber-700 dark:text-amber-400",children:"Extended Trip"})]}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:703",className:"text-xs text-amber-600 dar
1k:text-amber-400",children:"This trip extends beyond our local area â your trip will still be done with our longer distance fleet at standard rates."})]}),P?e.jsxs(W,{"data-loc":"client/src/pages/BookNow.tsx:709",children:[e.jsx(Ve,{"data-loc":"client/src/pages/BookNow.tsx:710",children:e.jsxs(_e,{"data-loc":"client/src/pages/BookNow.tsx:710",className:"flex items-center gap-2",children:[e.jsx(Oe,{"data-loc":"client/src/pages/BookNow.tsx:710",className:"h-5 w-5 text-green-600"})," Passengers & Schedule"]})}),e.jsxs(O,{"data-loc":"client/src/pages/BookNow.tsx:711",className:"space-y-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:713",id:"passenger-count",tabIndex:-1,className:x("passenger-count"),children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:714",className:"text-sm font-medium mb-2 block",children:"How many passengers? *"}),e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:715",className:"grid grid-cols-3 gap-3",children:[{tier:"1-3",label:"1â3",rate:"$3/km",desc:"Sedan"},{tier:"4-6",label:"4â6",rate:"$4/km",desc:"Van"},{tier:"7-10",label:"7â10",rate:"$5/km",desc:"Minibus"}].map(({tier:s,label:t,rate:a,desc:d})=>e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:721",onClick:()=>Hs(s),className:X("rounded-xl border-2 p-4 cursor-pointer transition-all duration-200 text-center",E===s?"border-green-500 bg-green-50 dark:bg-green-950/20 shadow-md":"border-border hover:border-green-400/50 hover:bg-muted/30"),children:[E===s&&e.jsx(pe,{"data-loc":"client/src/pages/BookNow.tsx:732",className:"h-4 w-4 text-green-500 mx-auto mb-1"}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:734",className:"text-2xl font-bold",children:t}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:735",className:"text-xs text-muted-foreground",children:d}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:736",className:"text-sm font-semibold text-green-600 mt-1",children:a})]},s))})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:743",children:[e.jsxs(n,{"data-loc":"client/src/pages/BookNow.tsx:744",className:"flex items-center gap-1.5",children:[e.jsx(Ss,{"data-loc":"client/src/pages/BookNow.tsx:744",className:"h-3.5 w-3.5"})," Estimated Wait Time (optional)"]}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:745",className:"text-xs text-muted-foreground mb-2",children:"If you need the driver to wait at a location. Charged at $1/min ($15 per 15-min block)."}),e.jsxs(me,{"data-loc":"client/src/pages/BookNow.tsx:746",value:xe,onValueChange:Gs,children:[e.jsx(ge,{"data-loc":"client/src/pages/BookNow.tsx:747",children:e.jsx(Ne,{"data-loc":"client/src/pages/BookNow.tsx:747",placeholder:"No wait time"})}),e.jsxs(he,{"data-loc":"client/src/pages/BookNow.tsx:748",children:[e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:749",value:"0",children:"No wait time"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:750",value:"15",children:"15 minutes ($15)"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:751",value:"30",children:"30 minutes ($30)"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:752",value:"45",children:"45 minutes ($45)"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:753",value:"60",children:"60 minutes ($60)"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:754",value:"90",children:"90 minutes ($90)"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:755",value:"120",children:"2 hours ($120)"})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:761",className:"flex items-start gap-2 p-3 rounded-lg bg-amber-500/10 border border-amber-500/30 text-amber-200",children:[e.jsx(ze,{"data-loc":"client/src/pages/BookNow.tsx:762",className:"h-4 w-4 mt-0.5 shrink-0 text-amber-400"}),e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:763",className:"text-sm",children:["Please select your ",e.jsx("strong",{"data-loc":"client/src/pages/BookNow.tsx:763",children:"date"})," below. Time defaults to 7:00 AM â adjust if needed. The system cannot calculate your fare or process your booking without a date."]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:765",className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:766",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:766",children:"Date *"}),e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:766",id:"trip-date",className:x("trip-date"),type:"date",value:R,onChange:s=>Ze(s.target.value)})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:767",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:767",children:"Time *"}),e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:767",id:"trip-time",className:x("trip-time"),type:"time",value:I,onChange:s=>Xe(s.target.value)})]})]}),!p&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:771",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:772",children:"Your Name *"}),e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:773",id:"customer-name",className:x("customer-name"),placeholder:"Full name",value:z,onChange:s=>ts(s.target.value)})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:776",className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:777",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:778",children:"Phone *"}),e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:779",id:"customer-phone",className:x("customer-phone"),type:"tel",placeholder:"04xx xxx xxx",value:J,onChange:s=>as(s.target.value)})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:781",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:782",children:"Email *"}),e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:783",id:"customer-email",className:x("customer-email"),type:"email",placeholder:"[email protected]",value:Q,onChange:s=>os(s.target.value)})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:786",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:786",children:"Notes"}),e.jsx(Ps,{"data-loc":"client/src/pages/BookNow.tsx:786",value:ce,onChange:s=>es(s.target.value),placeholder:"Special requirements, pickup instructions...",rows:3})]})]})]}):e.jsxs(W,{"data-loc":"client/src/pages/BookNow.tsx:790",children:[e.jsx(Ve,{"data-loc":"client/src/pages/BookNow.tsx:791",children:e.jsxs(_e,{"data-loc":"client/src/pages/BookNow.tsx:791",className:"flex items-center gap-2",children:[e.jsx(qe,{"data-loc":"client/src/pages/BookNow.tsx:791",className:"h-5 w-5 text-primary"})," Vehicle & Schedule"]})}),e.jsxs(O,{"data-loc":"client/src/pages/BookNow.tsx:792",className:"space-y-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:793",id:"vehicle-selection",tabIndex:-1,
1className:x("vehicle-selection"),children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:794",children:"Vehicle *"}),parseInt(j)>1&&e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:796",className:"text-xs text-muted-foreground mt-1 flex items-center gap-1",children:[e.jsx(Oe,{"data-loc":"client/src/pages/BookNow.tsx:796",className:"h-3 w-3"})," Showing recommendations for ",j," passenger",parseInt(j)>1?"s":""]}),e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:798",className:"grid gap-3 mt-2",children:[...se||[]].sort((s,t)=>{const a=parseInt(j)||1,d=s.capacity>=a,u=t.capacity>=a;return d&&!u?-1:!d&&u?1:s.capacity-t.capacity}).map(s=>{const t=oe===s.id.toString(),a=Xs(s.id),d=parseInt(j)||1,u=s.capacity<d;return e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:812",onClick:()=>Ms(s.id.toString()),className:X("relative rounded-xl border-2 p-3 cursor-pointer transition-all duration-200",t?"border-primary bg-primary/5 shadow-md":u?"border-destructive/30 bg-destructive/5 opacity-60":"border-border hover:border-primary/40 hover:bg-muted/30"),children:[t&&e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:825",className:"absolute top-2 right-2",children:e.jsx(pe,{"data-loc":"client/src/pages/BookNow.tsx:826",className:"h-5 w-5 text-primary"})}),u&&!t&&e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:830",className:"absolute top-2 right-2",children:e.jsxs("span",{"data-loc":"client/src/pages/BookNow.tsx:831",className:"text-[10px] font-semibold bg-red-100 text-red-700 px-1.5 py-0.5 rounded-full",children:["Max ",s.capacity," pax"]})}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:834",className:"flex items-center gap-3",children:[e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:835",className:"h-16 w-24 rounded-lg bg-muted/50 overflow-hidden shrink-0",children:s.imageUrl?e.jsx("img",{"data-loc":"client/src/pages/BookNow.tsx:837",src:s.imageUrl,alt:s.name,className:"h-full w-full object-cover"}):e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:839",className:"h-full w-full flex items-center justify-center",children:e.jsx(qe,{"data-loc":"client/src/pages/BookNow.tsx:840",className:"h-7 w-7 text-muted-foreground/50"})})}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:844",className:"flex-1 min-w-0",children:[e.jsx("h3",{"data-loc":"client/src/pages/BookNow.tsx:845",className:"font-semibold text-sm",children:s.name}),e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:846",className:"text-xs text-muted-foreground",children:[s.type.charAt(0).toUpperCase()+s.type.slice(1)," · ",s.capacity," pax"]})]}),a!==null&&(()=>{const _=et(s.id),vs=Se(s.id);return e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:852",className:"text-right shrink-0",children:[_&&e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:854",className:"text-xs line-through text-muted-foreground",children:["$",_.originalPrice.toFixed(2)]}),e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:856",className:"text-lg font-bold text-primary",children:["$",a.toFixed(2)]}),c&&vs?e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:858",className:"text-xs text-muted-foreground",children:["outbound · return $",vs.toFixed(2)]}):_?e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:860",className:"text-xs font-medium text-green-600",children:[_.percent,"% off"]}):e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:862",className:"text-xs text-muted-foreground",children:"one way"})]})})()]})]},s.id)})})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:873",className:"flex items-start gap-2 p-3 rounded-lg bg-amber-500/10 border border-amber-500/30",children:[e.jsx(ze,{"data-loc":"client/src/pages/BookNow.tsx:874",className:"h-4 w-4 mt-0.5 shrink-0 text-amber-500"}),e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:875",className:"text-sm text-amber-600 dark:text-amber-200",children:["Please select your ",e.jsx("strong",{"data-loc":"client/src/pages/BookNow.tsx:875",children:"date"})," below. Time defaults to 7:00 AM â adjust if needed. The system cannot calculate your fare or process your booking without a date."]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:877",className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:878",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:878",children:"Date *"}),e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:878",id:"trip-date",className:x("trip-date"),type:"date",value:R,onChange:s=>Ze(s.target.value)})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:879",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:879",children:"Time *"}),e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:879",id:"trip-time",className:x("trip-time"),type:"time",value:I,onChange:s=>Xe(s.target.value)})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:882",className:"grid grid-cols-3 gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:883",children:[e.jsxs(n,{"data-loc":"client/src/pages/BookNow.tsx:884",className:"flex items-center gap-1.5",children:[e.jsx(xt,{"data-loc":"client/src/pages/BookNow.tsx:884",className:"h-3.5 w-3.5"})," Service Type"]}),e.jsxs(me,{"data-loc":"client/src/pages/BookNow.tsx:885",value:
1B,onValueChange:$s,children:[e.jsx(ge,{"data-loc":"client/src/pages/BookNow.tsx:886",children:e.jsx(Ne,{"data-loc":"client/src/pages/BookNow.tsx:886",placeholder:"Select type"})}),e.jsxs(he,{"data-loc":"client/src/pages/BookNow.tsx:887",children:[e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:888",value:"airport_transfer",children:"Airport Transfer"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:889",value:"corporate",children:"Corporate"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:890",value:"event_transport",children:"Event Transport"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:891",value:"wedding",children:"Wedding"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:892",value:"group_transport",children:"Group Transport"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:893",value:"everyday",children:"Everyday"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:894",value:"long_distance",children:"Long Distance"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:895",value:"other",children:"Other"})]})]})]}),B==="airport_transfer"&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:900",children:[e.jsxs(n,{"data-loc":"client/src/pages/BookNow.tsx:901",className:"flex items-center gap-1.5",children:[e.jsx(bs,{"data-loc":"client/src/pages/BookNow.tsx:901",className:"h-3.5 w-3.5"})," Airport Terminal"]}),e.jsxs(me,{"data-loc":"client/src/pages/BookNow.tsx:902",value:D,onValueChange:ss,children:[e.jsx(ge,{"data-loc":"client/src/pages/BookNow.tsx:903",children:e.jsx(Ne,{"data-loc":"client/src/pages/BookNow.tsx:903",placeholder:"Select terminal"})}),e.jsxs(he,{"data-loc":"client/src/pages/BookNow.tsx:904",children:[e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:905",value:"domestic_t2",children:"Domestic Terminal 2 (T2)"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:906",value:"domestic_t3",children:"Domestic Terminal 3 (T3)"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:907",value:"international",children:"International Terminal"})]})]})]}),B==="airport_transfer"&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:913",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:914",className:"flex items-center gap-1.5",children:"Flight Number"}),e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:915",placeholder:"e.g. QF401",value:Re,onChange:s=>Ls(s.target.value.toUpperCase())})]}),B==="event_transport"&&e.jsx(ut,{"data-loc":"client/src/pages/BookNow.tsx:919",serviceType:B,currentEventSize:"",onEventSizeSelect:s=>w.info(`Event size: ${s} â surcharge will be applied`)}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:925",id:"passenger-count",tabIndex:-1,className:x("passenger-count"),children:[e.jsxs(n,{"data-loc":"client/src/pages/BookNow.tsx:926",className:"flex items-center gap-1.5",children:[e.jsx(Oe,{"data-loc":"client/src/pages/BookNow.tsx:926",className:"h-3.5 w-3.5"})," Passengers"]}),e.jsxs(me,{"data-loc":"client/src/pages/BookNow.tsx:927",value:j,onValueChange:Es,children:[e.jsx(ge,{"data-loc":"client/src/pages/BookNow.tsx:928",children:e.jsx(Ne,{"data-loc":"client/src/pages/BookNow.tsx:928",placeholder:"How many?"})}),e.jsxs(he,{"data-loc":"client/src/pages/BookNow.tsx:929",children:[e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:930",value:"1",children:"1"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:931",value:"2",children:"2"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:932",value:"3",children:"3"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:933",value:"4",children:"4"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:934",value:"5",children:"5"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:935",value:"6",children:"6"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:936",value:"7",children:"7+"})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:940",children:[e.jsxs(n,{"data-loc":"client/src/pages/BookNow.tsx:941",className:"flex items-center gap-1.5",children:[e.jsx(jt,{"data-loc":"client/src/pages/BookNow.tsx:941",className:"h-3.5 w-3.5"})," Luggage"]}),e.jsxs(me,{"data-loc":"client/src/pages/BookNow.tsx:942",value:le,onValueChange:Ks,children:[e.jsx(ge,{"data-loc":"client/src/pages/BookNow.tsx:943",children:e.jsx(Ne,{"data-loc":"client/src/pages/BookNow.tsx:943",placeholder:"Bags?"})}),e.jsxs(he,{"data-loc":"client/src/pages/BookNow.tsx:944",children:[e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:945",value:"none",children:"None"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:946",value:"1-2",children:"1-2 bags"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:947",value:"3-5",children:"3-5 bags"}),e.jsx(i,{"data-loc":"client/src/pages/BookNow.tsx:948",value:"6+",children:"6+ bags"})]})]})]})]}),!p&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:956",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:957",className:"flex items-center gap-1.5",children:"Your Name *"}),e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:958",id:"customer-name",className:x("customer-name"),placeholder:"Full name",value:z,onChange:s=>ts(s.target.value)})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:961",className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:962",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:963",className:"flex items-center gap-1.5",children:"Phone *"}),e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:964",id:"customer-phone",className:x("customer-phone"),placeholder:"04xx xxx xxx",value:J,onChange:s=>as(s.target.value)})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:966",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:967",className:"flex items-center gap-1.5",children:"Email *"}),e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:968",id:"customer-email",className:x("customer-email"),type:"email",placeholder:"[email protected]",value:Q,onChange:s=>os(s.target.value)})]})]}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:971",className:"text-xs text-muted-foreground -mt-2",children:"Phone and email are required so we can confirm your booking and send updates."}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:973",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:973",children:"Notes"}),e.jsx(Ps,{"data-loc":"client/src/pages/BookNow.tsx:973",value:ce,onChange:s=>es(s.target.value),placeholder:"Special requirements...",rows:3})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:976",children:[e.jsxs(n,{"data-loc":"client/src/pages/BookNow.tsx:977",className:"flex items-center gap-1.5",children:[e.jsx(Cs,{"data-loc":"client/src/pages/BookNow.tsx:977",className:"h-3.5 w-3.5"})," Referral Code"]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:978",className:"flex gap-2",children:[e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:979",placeholder:"Enter referral code (optional)",value:re,onChange:s=>{Us(s.target.value.toUpperCase()),Ie(null),ls(null)},className:ne===!0?"border-green-500":ne===!1?"border-red-500":""}),re.trim().length>=4&&ne===null&&e.jsx(b,{"data-loc":"client/src/pages/BookNow.tsx:990",type:"button",variant:"outline",size:"sm",onClick:async()=>{try{const a=(await(await fetch(`/api/trpc/customer.validateReferralCode?input=${encodeURIComponent(JSON.stringify({code:re.trim()}))}`)).json())?.result?.data;Ie(a?.valid||!1),ls(a?.referrerName||null)}catch{Ie(!1)}},children:"Check"})]}),ne===!0&&cs&&e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1002",className:"text-xs text-green-600 mt-1",children:["Referred by ",cs," â you'll both get $5 credit after your first ride!"]}),ne===!1&&e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1005",className:"text-xs text-red-500 mt-1",children:"Invalid referral code. Please check and try again."})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1010",className:"flex items-center justify-between rounded-lg border p-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1011",className:"flex items-center gap-3",children:[e.jsx(Ts,{"data-loc":"client/src/pages/BookNow.tsx:1012",className:"h-5 w-5 text-primary"}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1013",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:1014",className:"text-sm font-medium",children:"Return Trip"}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1015",className:"text-xs text-muted-foreground",children:"Add a return journey with its own pickup, destination and price"})]})]}),e.jsx(As,{"data-loc":"client/src/pages/BookNow.tsx:1018",checked:c,onCheckedChange:ot})]}),c&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1022",className:"rounded-lg border border-dashed border-primary/30 bg-primary/5 p-4 space-y-3",children:[e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1023",className:"text-sm font-medium flex items-center gap-2",children:[e.jsx(Ts,{"data-loc":"client/src/pages/BookNow.tsx:1024",className:"h-4 w-4 text-primary"})," Return Journey Details"]}
1),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1026",className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1027",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:1028",className:"text-xs",children:"Return Date"}),e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:1029",id:"return-date",className:x("return-date"),type:"date",value:F,onChange:s=>_s(s.target.value)})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1031",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:1032",className:"text-xs",children:"Return Time"}),e.jsx(k,{"data-loc":"client/src/pages/BookNow.tsx:1033",id:"return-time",className:x("return-time"),type:"time",value:M,onChange:s=>Ws(s.target.value)})]})]}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1036",className:"text-xs text-muted-foreground",children:"Return locations initially reverse the outbound trip, but either address can be changed independently."}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1037",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:1038",className:"text-xs",children:"Return Pickup *"}),e.jsx(ue,{"data-loc":"client/src/pages/BookNow.tsx:1039",id:"return-pickup-address",value:f,className:x("return-pickup-address"),onChange:s=>{De(s),Me(!1),Y(null)},onPlaceSelect:s=>{De(s.address),Me(!0),Y(null),ns&&S&&Ce(s.address,S)},placeholder:"Return pickup address"})]}),e.jsx(Rs,{"data-loc":"client/src/pages/BookNow.tsx:1057",pickupAddress:f,currentTerminal:V||"none",onTerminalSelect:s=>is(s==="none"?"":s)}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1062",children:[e.jsx(n,{"data-loc":"client/src/pages/BookNow.tsx:1063",className:"text-xs",children:"Return Destination *"}),e.jsx(ue,{"data-loc":"client/src/pages/BookNow.tsx:1064",id:"return-dropoff-address",value:S,className:x("return-dropoff-address"),onChange:s=>{Fe(s),$e(!1),Y(null)},onPlaceSelect:s=>{Fe(s.address),$e(!0),Y(null),rs&&f&&Ce(f,s.address)},placeholder:"Return destination address"})]}),e.jsxs(b,{"data-loc":"client/src/pages/BookNow.tsx:1082",id:"return-route-calculation",type:"button",variant:"outline",className:X("w-full gap-2",x("return-route-calculation")),onClick:()=>{Ce(f,S)},disabled:!f||!S||y.isPending,children:[y.isPending?e.jsx(Z,{"data-loc":"client/src/pages/BookNow.tsx:1090",className:"h-4 w-4 animate-spin"}):e.jsx(We,{"data-loc":"client/src/pages/BookNow.tsx:1090",className:"h-4 w-4"}),"Recalculate Return Route"]}),N&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1094",className:"grid grid-cols-2 gap-3 rounded-lg border bg-background p-3 text-center",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1095",children:[e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1095",className:"font-semibold text-primary",children:N.distanceText}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1095",className:"text-xs text-muted-foreground",children:"Return distance"})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1096",children:[e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1096",className:"font-semibold text-primary",children:N.durationText}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1096",className:"text-xs text-muted-foreground",children:"Return travel time"})]})]})]})]})]}),P&&v&&l&&E&&e.jsx(W,{"data-loc":"client/src/pages/BookNow.tsx:1107",className:"border-green-500/30",children:e.jsxs(O,{"data-loc":"client/src/pages/BookNow.tsx:1108",className:"p-6",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1109",className:"text-center mb-4",children:[e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1110",className:"text-sm text-muted-foreground mb-1",children:"Local Fare"}),e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1111",className:"text-4xl font-bold text-green-600",children:["$",v.fare.toFixed(2)]}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1112",className:"text-xs text-muted-foreground mt-1",children:"Prepaid by card â no cash required"})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1114",className:"rounded-lg bg-muted/50 p-3 space-y-1.5 text-sm",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1115",className:"flex justify-between",children:[e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:1115",className:"text-muted-foreground",children:"Distance"}),e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:1115",children:l.distanceText})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1116",className:"flex justify-between",children:[e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:1116",className:"text-muted-foreground",children:"Rate"}),e.jsxs("span",{"data-loc":"client/src/pages/BookNow.tsx:1116",children:["$",v.ratePerKm,"/km (",E," passengers)"]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1117",className:"flex justify-between",children:[e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:1117",className:"text-muted-foreground",children:"Distance charge"}),e.jsxs("span",{"data-loc":"client/src/pages/BookNow.tsx:1117",children:["$",v.distanceCost.toFixed(2)]})]}),v.waitTimeCost>0&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1119",className:"flex justify-between",children:[e.jsxs("span",{"data-loc":"client/src/pages/BookNow.tsx:1119",className:"text-muted-foreground",children:["Wait time (",xe," min)"]}),e.jsxs("span",{"data-loc":"client/src/pages/BookNow.tsx:1119",children:["$",v.waitTimeCost.toFixed(2)]})]}),v.fare===ee&&v.distanceCost+v.waitTimeCost<ee&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1122",className:"flex justify-between text-xs text-amber-600",children:[e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:1122",children:"Minimum fare applied"}),e.jsxs("span",{"data-loc":"client/src/pages/BookNow.tsx:1122",children:["$",ee.toFixed(2)]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1124",className:"flex justify-between font-semibold border-t pt-1.5 mt-1.5",children:[e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:1124",children:"Total"}),e.jsxs("span",{"data-loc":"client/src/pages/BookNow.tsx:1124",children:["$",v.fare.toFixed(2)]})]})]}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1126",className:"text-xs text-muted-foreground text-center mt-3",children:"A hold will be placed on your card. Final charge may vary if wait time changes."})]})}),!P&&h&&(()=>{const s=Os?.surcharges.find(t=>t.percent<0&&t.name.includes("discount"));return e.jsx(W,{"data-loc":"client/src/pages/BookNow.tsx:1134",className:s?"border-green-300 dark:border-green-700":"border-primary/20",children:e.jsxs(O,{"data-loc":"client/src/pages/BookNow.tsx:1135",className:"p-6",children:[s&&e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:1137",className:"rounded-lg bg-green-50 dark:bg-green-950/30 border border-green-200 dark:border-green-800 p-3 mb-4 text-center",children:e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1138",className:"text-sm font-semibold text-green-700 dark:text-green-400",children:[Math.abs(s.percent),"% Member Discount Applied â You save $",Math.abs(s.amount).toFixed(2)]})}),T&&T.length>0&&e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:1145",className:"mb-4",children:e.jsx(pt,{"data-loc":"client/src/pages/BookNow.tsx:1146",items:T,total:parseFloat(h),subtotal:parseFloat(h),discountTotal:0,editable:!1,
1compact:!0})}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1156",className:"text-center",children:[e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1157",className:"text-sm text-muted-foreground mb-1",children:"Estimated Price"}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1158",className:"flex items-center justify-center gap-2",children:[e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1159",className:"text-3xl font-bold text-primary",children:["$",h," AUD"]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1160",className:"relative group",children:[e.jsx(ze,{"data-loc":"client/src/pages/BookNow.tsx:1161",className:"h-4 w-4 text-muted-foreground cursor-help"}),e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:1162",className:"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 w-64 p-3 bg-popover text-popover-foreground border rounded-lg shadow-lg text-xs opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none z-50",children:T&&T.length>0?e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1164",className:"space-y-1",children:[e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1165",className:"font-semibold mb-1",children:"Price breakdown:"}),T.filter(t=>!t.waived).map((t,a)=>e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1167",className:`flex justify-between ${t.amount<0?"text-green-600":"text-muted-foreground"}`,children:[e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:1168",children:t.label}),e.jsxs("span",{"data-loc":"client/src/pages/BookNow.tsx:1169",children:[t.amount<0?"-":"","$",Math.abs(t.amount).toFixed(2)]})]},a)),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1172",className:"flex justify-between font-semibold border-t pt-1 mt-1",children:[e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:1172",children:"Total"}),e.jsxs("span",{"data-loc":"client/src/pages/BookNow.tsx:1172",children:["$",h]})]})]}):e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1175",children:"Price based on distance, duration, and vehicle rates."})})]})]}),c&&L&&(()=>{const t=Se(L.id);return t?e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1183",className:"text-xs text-muted-foreground mt-1 space-y-0.5",children:[e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1184",children:["Outbound leg: $",h," AUD"]}),e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1185",children:["Return leg: $",t.toFixed(2)," AUD"]}),e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1186",className:"font-medium text-foreground",children:["Total both legs: $",(parseFloat(h||"0")+t).toFixed(2)," AUD"]})]}):e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1188",className:"text-xs text-muted-foreground mt-1",children:"Includes return trip"})})()]})]})})})(),!P&&e.jsx(W,{"data-loc":"client/src/pages/BookNow.tsx:1198",className:"bg-muted/30",children:e.jsxs(O,{"data-loc":"client/src/pages/BookNow.tsx:1199",className:"p-4 space-y-3",children:[e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1200",className:"text-xs text-muted-foreground leading-relaxed",children:[e.jsx("strong",{"data-loc":"client/src/pages/BookNow.tsx:1201",children:"Additional charges:"})," ",mt()]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1203",className:"border-t border-border pt-2",children:[e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1204",className:"text-xs font-medium text-muted-foreground flex items-center gap-1 mb-1",children:[e.jsx(Ss,{"data-loc":"client/src/pages/BookNow.tsx:1205",className:"h-3 w-3"})," Complimentary Wait Time"]}),e.jsx("ul",{"data-loc":"client/src/pages/BookNow.tsx:1207",className:"text-xs text-muted-foreground space-y-0.5 pl-4",children:gt().map((s,t)=>e.jsxs("li",{"data-loc":"client/src/pages/BookNow.tsx:1209",children:["â¢"," ",s]},t))})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1213",className:"border-t border-border pt-2",children:[e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1214",className:"text-xs font-medium text-muted-foreground flex items-center gap-1 mb-1",children:[e.jsx(ys,{"data-loc":"client/src/pages/BookNow.tsx:1215",className:"h-3 w-3"})," Surcharge Schedule"]}),e.jsx("ul",{"data-loc":"client/src/pages/BookNow.tsx:1217",className:"text-xs text-muted-foreground space-y-0.5 pl-4",children:Nt().map((s,t)=>e.jsxs("li",{"data-loc":"client/src/pages/BookNow.tsx:1219",children:["â¢"," ",s]},t))})]})]})}),!P&&p&&ae&&parseFloat(ae.balance)>0&&h&&e.jsx(W,{"data-loc":"client/src/pages/BookNow.tsx:1229",className:"border-2",style:{borderColor:H?"#C8A951":"var(--border)",backgroundColor:H?"rgba(200,169,81,0.08)":"transparent"},children:e.jsxs(O,{"data-loc":"client/src/pages/BookNow.tsx:1230",className:"p-4 space-y-3",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1231",className:"flex items-center justify-between",children:[e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1232",className:"flex items-center gap-2",children:[e.jsx(Cs,{"data-loc":"client/src/pages/BookNow.tsx:1233",className:"h-5 w-5",style:{color:"#C8A951"}}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1234",children:[e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1235",className:"text-sm font-semibold",children:"Loyalty Credits"}),e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1236",className:"text-xs text-muted-foreground",children:["Balance: ",e.jsxs("span",{"data-loc":"client/src/pages/BookNow.tsx:1236",className:"font-semibold",style:{color:"#C8A951"},children:["$",parseFloat(ae.balance).toFixed(2)]})]})]})]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1239",className:"flex items-center gap-2",children:[e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:1240",className:"text-xs text-muted-foreground",children:H?"Applied":"Save for later"}),e.jsx(As,{"data-loc":"client/src/pages/BookNow.tsx:1241",checked:H,onCheckedChange:zs})]})]}),H&&e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1245",className:"rounded-md p-2 text-center",style:{backgroundColor:"rgba(200,169,81,0.15)"},children:[e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1246",className:"text-sm font-semibold",style:{color:"#C8A951"},children:["-$",Math.min(parseFloat(ae.balance),parseFloat(h)).toFixed(2)," credits applied"]}),e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1249",className:"text-xs text-muted-foreground mt-0.5",children:["You pay: $",Math.max(0,parseFloat(h)-parseFloat(ae.balance)).toFixed(2)," AUD"]}
1)]})]})}),P?e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1260",className:"flex flex-col gap-3",children:[e.jsxs(b,{"data-loc":"client/src/pages/BookNow.tsx:1261",className:"w-full",size:"lg",disabled:ms,style:{backgroundColor:"#22c55e",color:"#fff"},onClick:async()=>{const s=fs(!0);if(s.length>0){Bs(s);return}Ke([]),de(null),gs(!0);try{const t={"1-3":2,"4-6":5,"7-10":8},a=new Date(`${R}T${I}`).getTime(),d=await Zs.mutateAsync({customerName:z.trim()||r?.name||"Guest",customerEmail:Q.trim()||r?.email||"",customerPhone:J.trim()||r?.phone||"",pickupAddress:l?.originAddress||m,dropoffAddress:l?.destinationAddress||g,pickupPostcode:ve||0,dropoffPostcode:be||0,passengerCount:t[E]||2,distanceKm:parseFloat(l.distanceKm),durationMin:parseFloat(l.durationMin||"0"),estimatedWaitMinutes:parseInt(xe)||0,scheduledAt:a,notes:ce||void 0});d.checkoutUrl?(w.success("Booking created! Redirecting to payment..."),window.open(d.checkoutUrl,"_blank"),je("book"),Be(!0)):(w.error("Booking created but payment link failed. You can pay from My Bookings."),je("book"),Be(!0))}catch(t){const a=t.message||"We could not create your local booking. Please review the form and try again.";de(a),w.error(a)}finally{gs(!1)}},children:[ms?e.jsx(Z,{"data-loc":"client/src/pages/BookNow.tsx:1312",className:"h-4 w-4 animate-spin mr-2"}):e.jsx(pe,{"data-loc":"client/src/pages/BookNow.tsx:1312",className:"h-4 w-4 mr-2"}),"Book & Pay $",v?.fare.toFixed(2)||""]}),e.jsx("p",{"data-loc":"client/src/pages/BookNow.tsx:1315",className:"text-xs text-center text-muted-foreground",children:"A hold will be placed on your card. You won't be charged until your trip is completed."})]}):e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1320",className:"flex flex-col gap-3",children:[e.jsxs(b,{"data-loc":"client/src/pages/BookNow.tsx:1321",className:"w-full",size:"lg",onClick:()=>js("book"),disabled:fe.isPending||te.isPending||ke.isPending,style:{backgroundColor:"#C8A951",color:"#000"},children:[(fe.isPending||te.isPending)&&e.jsx(Z,{"data-loc":"client/src/pages/BookNow.tsx:1322",className:"h-4 w-4 animate-spin mr-2"}),e.jsx(qe,{"data-loc":"client/src/pages/BookNow.tsx:1323",className:"h-4 w-4 mr-2"})," Book Now"]}),e.jsxs("div",{"data-loc":"client/src/pages/BookNow.tsx:1325",className:"relative flex items-center justify-center",children:[e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:1326",className:"border-t border-border flex-1"}),e.jsx("span",{"data-loc":"client/src/pages/BookNow.tsx:1327",className:"px-3 text-xs text-muted-foreground",children:"or"}),e.jsx("div",{"data-loc":"client/src/pages/BookNow.tsx:1328",className:"border-t border-border flex-1"})]}),e.jsxs(b,{"data-loc":"client/src/pages/BookNow.tsx:1330",className:"w-full",size:"lg",variant:"outline",onClick:()=>js("quote"),disabled:fe.isPending||te.isPending||ke.isPending,children:[ke.isPending&&e.jsx(Z,{"data-loc":"client/src/pages/BookNow.tsx:1331",className:"h-4 w-4 animate-spin mr-2"}),e.jsx(We,{"data-loc":"client/src/pages/BookNow.tsx:1332",className:"h-4 w-4 mr-2"})," Get a Quote Instead"]}),e.jsxs("p",{"data-loc":"client/src/pages/BookNow.tsx:1334",className:"text-xs text-center text-muted-foreground",children:[e.jsx("strong",{"data-loc":"client/src/pages/BookNow.tsx:1335",children:"Book Now"})," creates your booking instantly. ",e.jsx("strong",{"data-loc":"client/src/pages/BookNow.tsx:1335",children:"Get a Quote"})," lets us review and confirm the price first."]})]}),e.jsx(ht,{"data-loc":"client/src/pages/BookNow.tsx:1340"})]})})}export{Zt as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.