1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[24311],{27:(e,t,a)=>{a.d(t,{Oq:()=>m,Rf:()=>l,v$:()=>i,xM:()=>o});var r=a(61321),s=a(36317),n=a(92558);let l=(0,r.xP)({reducerPath:"busApi",baseQuery:(0,s.cw)({baseUrl:"/",timeout:35e3,prepareHeaders:async e=>{try{let r=localStorage.getItem("user_ip_location");if(r){var t,a;let s=null==(a=JSON.parse(r))||null==(t=a.data)?void 0:t.ip;s&&(e.set("X-Forwarded-For",s),e.set("X-Real-IP",s))}}catch(e){}return(0,n.zW)(e,"both",{"content-type":"application/json"})}}),tagTypes:["BusSearch","BusSelect","BusCities"],endpoints:e=>({searchBus:e.mutation({query:e=>{let{display_currency:t,...a}=e,r=t&&/^[A-Z]{3}$/.test(t)?"?display_currency=".concat(encodeURIComponent(t)):"";return{url:"api/v1/etravos/bus/search".concat(r),method:"POST",body:a}},invalidatesTags:["BusSearch"]}),selectBus:e.mutation({query:e=>{let{display_currency:t,...a}=e,r=t&&/^[A-Z]{3}$/.test(t)?"?display_currency=".concat(encodeURIComponent(t)):"";return{url:"api/v1/etravos/bus/select".concat(r),method:"POST",body:a}},invalidatesTags:["BusSelect"]}),getCities:e.query({query:()=>({url:"api/v1/etravos/bus/cities",method:"GET"}),providesTags:["BusCities"]}),matchCities:e.query({query:e=>({url:"api/v1/etravos/bus/cities/match/".concat(encodeURIComponent(e)),method:"GET"}),keepUnusedDataFor:0,providesTags:["BusCities"]})})}),{useSearchBusMutation:i,useSelectBusMutation:o,useGetCitiesQuery:c,useLazyGetCitiesQuery:d,useMatchCitiesQuery:u,useLazyMatchCitiesQuery:m}=l},24311:(e,t,a)=>{a.d(t,{A:()=>eT});var r=a(95155),s=a(12115),n=a(47650),l=a(26497),i=a(46176),o=a(95740),c=a(84114),d=a(76907),u=a(91169),m=a(76561),p=a(70968),x=a(65229),h=a(5917),g=a(26983),f=a(20779),b=a(37494),y=a(39347),v=a(3764),w=a(24033),j=a(74826),k=a(77890),N=a(65102),S=a(4480),A=a(68854);let C={seater:"Seater",sleeper:"Sleeper",private:"Private Sleeper"},B={seater:0,sleeper:1,private:2};function E(e,t){return C[e]||t||e.charAt(0).toUpperCase()+e.slice(1)}function F(e,t){if(!Array.isArray(e)||0===e.length)return[];let a=new Map;for(let o of e){var r,s,n,l,i;let e=(o.status||"").toUpperCase();if(!(!e||e.startsWith("AF")))continue;let c=(o.type||"").toUpperCase(),d=o.class_key||("SL"===c?"sleeper":"ST"===c?"seater":(null!=(l=o.height)?l:1)>=2||(null!=(i=o.width)?i:1)>=2?"sleeper":"seater"),u="number"==typeof(null==(r=o.fare)?void 0:r.total)?o.fare.total:NaN,m="number"==typeof(null==(s=o.fare)?void 0:s.market_total)&&o.fare.market_total>u?o.fare.market_total:null,p=(null==(n=o.fare)?void 0:n.currency)||t,x=a.get(d);x?(x.count+=1,Number.isFinite(u)&&u<x.min&&(x.min=u,x.market=m)):a.set(d,{min:Number.isFinite(u)?u:1/0,market:Number.isFinite(u)?m:null,count:1,currency:p})}return Array.from(a.entries()).map(e=>{let[t,a]=e;return{key:t,label:E(t),fare:a.min,currency:a.currency,count:a.count,...null!=a.market&&a.market>a.min?{marketFare:a.market}:{}}}).filter(e=>Number.isFinite(e.fare)).sort((e,t)=>{var a,r;return(null!=(a=B[e.key])?a:9)-(null!=(r=B[t.key])?r:9)})}function _(e){let{bus:t,currency:a,tiers:n,size:l="sm",className:i=""}=e,o=(0,s.useMemo)(()=>null!=n?n:function(e,t){var a,r,s;let n=(s=e.seat_classes,Array.isArray(s)&&0!==s.length?s.map(e=>{var a,r,s;let n="number"==typeof(null==(a=e.fare)?void 0:a.total)?e.fare.total:NaN,l="number"==typeof(null==(r=e.fare)?void 0:r.market_total)&&e.fare.market_total>n?e.fare.market_total:void 0;return{key:e.key,label:e.label||E(e.key),fare:n,currency:(null==(s=e.fare)?void 0:s.currency)||t,count:"number"==typeof e.count?e.count:void 0,...null!=l?{marketFare:l}:{}}}).filter(e=>Number.isFinite(e.fare)).sort((e,t)=>{var a,r;return(null!=(a=B[e.key])?a:9)-(null!=(r=B[t.key])?r:9)}):[]);if(n.length>0)return n;let l=null==(a=e.fares)?void 0:a[0];if("number"==typeof(null==l?void 0:l.total)){let a="number"==typeof l.market_total&&l.market_total>l.total?l.market_total:void 0;return[{key:"from",label:"From",fare:l.total,currency:l.currency||(null==(r=e.seats)?void 0:r.currency)||t,...null!=a?{marketFare:a}:{}}]}return[]}(t,a),[n,t,a]);if(0===o.length)return null;let c=1===o.length&&"from"===o[0].key,d="sm"===l,u="md"===l?"text-[12px]":"text-[11px]",m="md"===l?"text-[20px]":"text-[22px] sm:text-[25px]";return(0,r.jsx)("div",{className:"flex flex-wrap ".concat(d?"items-stretch justify-end gap-y-3":"items-center gap-2"," ").concat(i),"data-testid":"bus-fare-tiers",children:o.map((e,t)=>{var a,s,n,l,i;let o="from"===e.key?v.A:"sleeper"===(a=e.key)?S.A:"private"===a?A.A:v.A,p=(0,j.P)(e.fare,e.marketFare),x=null!=e.count?"".concat(e.label," \xb7 ").concat(e.count," seat").concat(1===e.count?"":"s"):e.label;return d?(0,r.jsxs)("div",{className:"flex flex-col items-end justify-center gap-1 ".concat(t>0?"ml-4 sm:ml-5 border-l border-gray-200 pl-4 sm:pl-5":""),title:x,children:[!c&&(0,r.jsxs)("p",{className:"".concat(u," font-bold uppercase tracking-[0.06em] text-gray-500 whitespace-nowrap"),children:[e.label,null!=e.count&&(0,r.jsxs)("span",{className:"text-gray-400 font-semibold normal-case tracking-normal",children:[" ","\xb7 ",e.count]})]}),p&&(0,r.jsx)("span",{className:"".concat(u," font-semibold text-gray-400 line-through tabular-nums leading-none"),children:(0,j.S)(p.marketTotal,e.currency)}),(0,r.jsxs)("p",{className:"flex items-center gap-1.5 leading-none whitespace-nowrap",children:[(0,r.jsx)(o,{className:"w-[19px] h-[19px] text-[#6B30EA] shrink-0"}),(0,r.jsx)("span",{className:"".concat(m," font-extrabold text-gray-900 tabular-nums tracking-tight"),children:(s=e.fare,n=e.currency,(0,j.S)(s,n))})]})]},e.key):(0,r.jsxs)("div",{className:"inline-flex items-center gap-2 rounded-xl bg-[#6B30EA]/[0.06] border border-[#6
1B30EA]/15 ".concat("px-3.5 py-2.5"),title:x,children:[(0,r.jsx)(o,{className:"w-5 h-5 text-[#6B30EA] shrink-0"}),(0,r.jsxs)("div",{className:"leading-tight",children:[(0,r.jsxs)("p",{className:"".concat(u," font-semibold text-gray-500"),children:[c?"From":e.label,null!=e.count&&!c&&(0,r.jsxs)("span",{className:"text-gray-400 font-medium",children:[" \xb7 ",e.count]})]}),(0,r.jsxs)("p",{className:"flex items-baseline gap-1.5 leading-none",children:[p&&(0,r.jsx)("span",{className:"".concat(u," font-semibold text-gray-400 line-through tabular-nums"),children:(0,j.S)(p.marketTotal,e.currency)}),(0,r.jsx)("span",{className:"".concat(m," font-extrabold text-gray-900 tabular-nums"),children:(l=e.fare,i=e.currency,(0,j.S)(l,i))})]})]})]},e.key)})})}var T=a(90834),M=a(20063),L=a(21873),P=a(86651),R=a(61362),I=a(52056),D=a(17910),U=a(89559),z=a(35299),W=a(52987),O=a(44517),H=a(27),K=a(53542),Y=a(25802),G=a(55849),q=a(24503);let $={available:{body:"#FFFFFF",border:"#CBD5E1",back:"#E2E8F0",arm:"#E2E8F0",ink:"#334155"},selected:{body:"#16A34A",border:"#15803D",back:"#22C55E",arm:"#15803D",ink:"#FFFFFF"},bookedNeutral:{body:"#E5E7EB",border:"#D1D5DB",back:"#D1D5DB",arm:"#D1D5DB",ink:"#9CA3AF"},bookedMale:{body:"#E0F2FE",border:"#BAE6FD",back:"#BAE6FD",arm:"#BAE6FD",ink:"#7DBEE0"},bookedFemale:{body:"#FCE7F3",border:"#FBCFE8",back:"#FBCFE8",arm:"#FBCFE8",ink:"#E58FBE"},ladies:{body:"#FFFFFF",border:"#F472B6",back:"#FBCFE8",arm:"#FBCFE8",ink:"#9D174D"},gents:{body:"#FFFFFF",border:"#38BDF8",back:"#BAE6FD",arm:"#BAE6FD",ink:"#075985"}};function Q(e){let t=(e.status||"").toUpperCase().trim();if(!t)return{available:!0,gender:null};let a=t.startsWith("AF"),r=t.charAt(t.length-1);return{available:a,gender:"M"===r?"M":"F"===r?"F":null}}function V(e){return Q(e).available}function X(e){var t;return"number"==typeof(null==(t=e.fare)?void 0:t.total)}function Z(e){let{className:t}=e;return(0,r.jsxs)("svg",{className:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.8,strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"9"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"2.4"}),(0,r.jsx)("path",{d:"M12 9.6V3.2M9.7 13.9 4.4 17.2M14.3 13.9 19.6 17.2"})]})}function J(e){let{s:t}=e;return(0,r.jsxs)("svg",{className:"w-full h-full",viewBox:"0 0 40 40",preserveAspectRatio:"xMidYMid meet","aria-hidden":!0,children:[(0,r.jsx)("rect",{x:"27.5",y:"7",width:"9.5",height:"26",rx:"4",fill:t.back,stroke:t.border,strokeWidth:"1.3"}),(0,r.jsx)("rect",{x:"3",y:"4",width:"25",height:"5.5",rx:"2.6",fill:t.arm,stroke:t.border,strokeWidth:"1"}),(0,r.jsx)("rect",{x:"3",y:"30.5",width:"25",height:"5.5",rx:"2.6",fill:t.arm,stroke:t.border,strokeWidth:"1"}),(0,r.jsx)("rect",{x:"3",y:"9",width:"26",height:"22",rx:"4",fill:t.body,stroke:t.border,strokeWidth:"1.4"})]})}function ee(e){let{s:t,wide:a}=e;return a?(0,r.jsxs)("svg",{className:"w-full h-full",viewBox:"0 0 60 34",preserveAspectRatio:"xMidYMid meet","aria-hidden":!0,children:[(0,r.jsx)("rect",{x:"2",y:"3",width:"56",height:"28",rx:"8",fill:t.body,stroke:t.border,strokeWidth:"1.6"}),(0,r.jsx)("line",{x1:"40",y1:"6",x2:"40",y2:"28",stroke:t.border,strokeWidth:"1.2",opacity:"0.45"}),(0,r.jsx)("rect",{x:"5",y:"7.5",width:"11",height:"19",rx:"4",fill:t.back,stroke:t.border,strokeWidth:"1.1"})]}):(0,r.jsxs)("svg",{className:"w-full h-full",viewBox:"0 0 34 60",preserveAspectRatio:"xMidYMid meet","aria-hidden":!0,children:[(0,r.jsx)("rect",{x:"3",y:"2",width:"28",height:"56",rx:"8",fill:t.body,stroke:t.border,strokeWidth:"1.6"}),(0,r.jsx)("line",{x1:"6",y1:"40",x2:"28",y2:"40",stroke:t.border,strokeWidth:"1.2",opacity:"0.45"}),(0,r.jsx)("rect",{x:"7.5",y:"4",width:"19",height:"11",rx:"4",fill:t.back,stroke:t.border,strokeWidth:"1.1"})]})}function et(e){let{className:t,color:a,style:s}=e;return(0,r.jsxs)("svg",{className:t,style:s,viewBox:"0 0 24 24",fill:"none",stroke:a||"currentColor",strokeWidth:2.4,children:[(0,r.jsx)("rect",{x:"5",y:"11",width:"14",height:"9",rx:"2"}),(0,r.jsx)("path",{d:"M8 11V8a4 4 0 0 1 8 0v3"})]})}function ea(e){var t,a;let{tip:l}=e,[i,o]=(0,s.useState)(!1);if((0,s.useEffect)(()=>o(!0),[]),!i)return null;
1let c=(a=l).available?"F"===a.gender?"Reserved for female passengers":"M"===a.gender?"Reserved for male passengers":null:"F"===a.gender?"Booked by a female passenger":"M"===a.gender?"Booked by a male passenger":"Already booked";return(0,n.createPortal)((0,r.jsxs)("div",{role:"tooltip",className:"pointer-events-none fixed z-[9999] rounded-lg bg-[#0F172B] px-2.5 py-1.5 shadow-lg",style:{left:l.rect.left+l.rect.width/2,top:l.rect.top-14,transform:"translate(-50%, -100%)"},children:[(0,r.jsxs)("div",{className:"flex items-baseline gap-1.5 whitespace-nowrap",children:[(0,r.jsx)("span",{className:"text-[11px] font-extrabold text-white tabular-nums",children:l.label}),(0,r.jsx)("span",{className:"text-[10px] text-gray-400",children:l.sleeper?"Sleeper":"Seater"})]}),l.available&&(0,r.jsx)("div",{className:"text-[11px] font-bold text-white tabular-nums whitespace-nowrap",children:null!=(t=l.fareText)?t:"Price on request"}),c&&(0,r.jsx)("div",{className:"text-[10px] font-medium text-gray-300 whitespace-nowrap",children:c}),(0,r.jsx)("span",{"aria-hidden":!0,style:{position:"absolute",left:"50%",top:"100%",marginLeft:-6,width:0,height:0,borderLeft:"6px solid transparent",borderRight:"6px solid transparent",borderTop:"6px solid #0F172B"}})]}),document.body)}let er=(0,s.memo)(function(e){var t;let{seat:a,sleeper:n,wide:l,isSelected:i,gridStyle:o,currency:c,vertical:d,onDirectSelect:u,onHover:m}
1=e,p=(0,s.useRef)(null),[x,h]=(0,s.useState)(!1);(0,s.useEffect)(()=>{h(!window.matchMedia("(hover: hover)").matches)},[]);let g=V(a),f=g&&X(a),b=function(e,t){let{available:a,gender:r}=Q(e);return a?t?"selected":"F"===r?"ladies":"M"===r?"gents":"available":"M"===r?"bookedMale":"F"===r?"bookedFemale":"bookedNeutral"}(a,i),y=$[b],v=a.name||a.key||a.id,{gender:w}=Q(a),j=d&&!n?{transform:"rotate(90deg)"}:void 0,k=n?void 0:{transform:d?"translateY(-4px)":"translateX(-4px)"},N="number"==typeof(null==(t=a.fare)?void 0:t.total)?(0,Y.QG)(a.fare.total,c):null,S=(0,s.useCallback)(()=>{if(x)return;let e=p.current;if(!e)return;let t=e.getBoundingClientRect();m({label:v,fareText:N,gender:w,available:g,sleeper:n,rect:{top:t.top,left:t.left,width:t.width}}),f&&(e.style.transform="translateY(-2px) scale(1.06)",e.style.zIndex="20")},[x,f,m,v,N,w,g,n]),A=(0,s.useCallback)(()=>{m(null);let e=p.current;e&&(e.style.transform="",e.style.zIndex="")},[m]);if(!f){let e=g&&!X(a);return(0,r.jsx)("div",{style:o,className:"p-[3px]",children:(0,r.jsxs)("div",{ref:p,onMouseEnter:S,onMouseLeave:A,className:"relative w-full h-full flex items-center justify-center select-none cursor-not-allowed","aria-label":e?"Seat ".concat(v," â not bookable online"):"Seat ".concat(v," booked").concat("F"===w?" by a female passenger":"M"===w?" by a male passenger":""),children:[(0,r.jsx)("div",{className:"absolute inset-0 opacity-90",style:j,children:n?(0,r.jsx)(ee,{s:y,wide:l}):(0,r.jsx)(J,{s:y})}),(0,r.jsx)(et,{className:"relative w-3.5 h-3.5",color:y.ink,style:k})]})})}return(0,r.jsx)("div",{style:o,className:"p-[3px]",children:(0,r.jsxs)("button",{ref:p,type:"button",onClick:()=>u(a),onMouseEnter:S,onMouseLeave:A,onFocus:S,onBlur:A,"aria-pressed":i,"aria-label":"".concat(n?"Sleeper berth":"Seat"," ").concat(v).concat(N?", ".concat(N):"").concat("ladies"===b?", ladies only":"gents"===b?", gents only":"").concat(i?", selected â tap to remove":""),className:"group relative w-full h-full min-h-[46px] min-w-[46px] cursor-pointer flex items-center justify-center",style:{transition:"transform 0.16s cubic-bezier(0.16,1,0.3,1)",filter:i?"drop-shadow(0 4px 8px rgba(22,163,74,0.35))":"drop-shadow(0 1px 2px rgba(16,24,40,0.10))"},children:[(0,r.jsx)("span",{className:"absolute inset-0",style:j,children:n?(0,r.jsx)(ee,{s:y,wide:l}):(0,r.jsx)(J,{s:y})}),(0,r.jsxs)("span",{className:"relative flex flex-col items-center justify-center gap-[1px] leading-none pointer-events-none max-w-[94%]",style:k,children:[(0,r.jsx)("span",{className:"text-[10.5px] sm:text-[11.5px] font-extrabold tabular-nums truncate max-w-full text-center",style:{color:y.ink},children:v}),N&&(0,r.jsx)("span",{className:"text-[8px] sm:text-[8.5px] font-bold tabular-nums truncate max-w-full text-center",style:{color:y.ink,opacity:.78},children:N})]}),i&&(0,r.jsx)("span",{className:"absolute -top-1.5 -right-1.5 w-4 h-4 rounded-full bg-white flex items-center justify-center shadow ring-2 ring-green-500 z-10",children:(0,r.jsx)("svg",{className:"w-2.5 h-2.5 text-green-600",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3.4,strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("path",{d:"M5 13l4 4L19 7"})})})]})})});function es(e){let{seats:t,selectedIds:a,currency:n,vertical:l,onDirectSelect:i,onHover:o}=e,{templateCols:c,templateRows:d,place:u}=(0,s.useMemo)(()=>(function(e){var t,a,r;let s=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],l=function(e){let t=Array.from(new Set(e.map(e=>{var t;return null!=(t=e.y)?t:0}))).sort((e,t)=>e-t);if(2!==t.length||t[1]-t[0]!=1)return e;let a=t[1];return e.map(e=>{var t;return(null!=(t=e.y)?t:0)===a?{...e,y:a+1}:e})}(e),i=e=>Math.max(1,Math.round(Number(e.height)||1)),o=e=>Math.max(1,Math.round(Number(e.width)||1)),c=null!=(t=Array.from(new Set(l.map(e=>{var t;return null!=(t=e.y)?t:0}))).sort((e,t)=>e-t)[0])?t:0,d=l.filter(e=>1>=o(e)).map(e=>{var t;return null!=(t=e.y)?t:0}),u=d.length?Math.max(...d):Math.max(0,...l.map(e=>{var t;return null!=(t=e.y)?t:0})),m=Math.max(0,...l.map(e=>{var t;return(null!=(t=e.y)?t:0)+o(e)-1})),p=Math.max(0,...l.map(e=>{var t;let a=null!=(t=e.y)?t:0;return a+Math.max(1,Math.min(o(e),u-a+1))-1})),x=new Set,h=new Set,g=new Set,f=new Map,b=(e,t,a,r)=>{for(let s=0;s<a;s++)for(let a=0;a<r;a++)if(x.has("".concat(e+s,",").concat(t+a)))return!1;return!0},y=(e,t,a,r)=>{for(let s=0;s<a;s++)for(let a=0;a<r;a++)x.add("".concat(e+s,",").concat(t+a)),h.add(e+s),g.add(t+a)},v=0,w=0;for(let e of[...l].sort((e,t)=>
1i(t)*o(t)-i(e)*o(e))){let t=null!=(a=e.x)?a:0,s=null!=(r=e.y)?r:0,d=i(e),x=Math.max(1,Math.min(o(e),u-s+1)),h=s+x-1,g=n?p-h+1:t+1,j=n?t+1:s+1,k=n?x:d,N=n?d:x;if(!b(j,g,N,k)&&(k=1,N=1,!b(j,g,1,1))){let e=!1;for(let t=1;t<=l.length+1&&!e;t++){let a=n?j+t:j,r=n?g:g+t;b(a,r,1,1)&&(j=a,g=r,e=!0)}if(!e)for(let t=1;t<=w+l.length+1&&!e;t++)for(let a=1;a<=v+l.length+1&&!e;a++)b(t,a,1,1)&&(j=t,g=a,e=!0)}y(j,g,N,k),v=Math.max(v,g+k-1),w=Math.max(w,j+N-1),f.set(e.id,{col:g,colSpan:k,row:j,rowSpan:N,window:s===c||s+o(e)-1===m})}let j=Math.max(1,v),k=Math.max(1,w),N=n?"26px":"14px",S="12px",A=s&&!n?"minmax(52px,1fr)":"minmax(52px,58px)",C=n?N:S,B=n?S:N,E=[];for(let e=1;e<=j;e++)E.push(g.has(e)?A:C);let F=[];for(let e=1;e<=k;e++)F.push(h.has(e)?"minmax(48px,56px)":B);return{cols:j,rows:k,templateCols:E.join(" "),templateRows:F.join(" "),place:f}})(t,!0,l),[t,l]);return(0,r.jsx)("div",{className:"grid gap-[4px] py-3 w-full ".concat(l?"px-1 justify-center":"px-3"),style:{gridTemplateColumns:c,gridTemplateRows:d,minWidth:"fit-content"},children:t.map(e=>{var t,s,c,d,m,p;let x=u.get(e.id),h={gridColumn:"".concat(null!=(t=null==x?void 0:x.col)?t:1," / span ").concat(null!=(s=null==x?void 0:x.colSpan)?s:1),gridRow:"".concat(null!=(c=null==x?void 0:x.row)?c:1," / span ").concat(null!=(d=null==x?void 0:x.rowSpan)?d:1)},g=function(e){var t,a;if("SL"===(e.type||"").toUpperCase())return!0;let r=(e.class_key||"").toLowerCase();return"sleeper"===r||"private"===r||(null!=(t=e.height)?t:1)>=2||(null!=(a=e.width)?a:1)>=2}(e),f=null!=(m=null==x?void 0:x.colSpan)?m:1,b=null!=(p=null==x?void 0:x.rowSpan)?p:1,y=l?f>b:f>=b;return(0,r.jsx)(er,{seat:e,sleeper:g,wide:y,isSelected:a.has(e.id),gridStyle:h,currency:n,vertical:l,onDirectSelect:i,onHover:o},e.id)})})}function en(e){let{label:t,children:a}=e;return(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[a,(0,r.jsx)("span",{className:"text-[13px] sm:text-[12px] text-gray-600 font-medium whitespace-nowrap",children:t})]})}function el(e){let{scheme:t}=e;return(0,r.jsx)("span",{className:"w-5 h-5 rounded-md flex items-center justify-center",style:{background:t.body,border:"2px solid ".concat(t.border)}})}function ei(e){let{z:t,seats:a,selectedIds:s,currency:n,vertical:l,multiDeck:i,onDirectSelect:o,onHover:c}=e,d=a.filter(e=>V(e)).length;return(0,r.jsxs)("div",{className:"rounded-2xl border border-gray-200 bg-white overflow-hidden w-full",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 py-2 border-b border-gray-100 bg-gray-50",children:[i?(0,r.jsx)("span",{className:"text-[12px] sm:text-[11px] font-bold uppercase tracking-[0.14em] text-[#6B30EA]",children:t>=1?"Upper deck":"Lower deck"}):(0,r.jsx)("span",{}),(0,r.jsxs)("span",{className:"text-[12.5px] sm:text-[12px] font-semibold text-gray-500 whitespace-nowrap",children:[d," available"]})]}),(0,r.jsxs)("div",{className:l?"flex flex-col items-stretch":"flex items-stretch",children:[(0,r.jsxs)("div",{className:"flex items-center justify-center gap-1.5 border-dashed border-gray-200 bg-gray-50/70 shrink-0 ".concat(l?"flex-row px-3 py-2 border-b":"flex-col px-2.5 py-3 border-r"),children:[(0,r.jsx)("div",{className:"w-8 h-8 rounded-full bg-white border border-gray-200 flex items-center justify-center shadow-sm",children:(0,r.jsx)(Z,{className:"w-4 h-4 text-gray-500"})}),(0,r.jsx)("span",{className:"font-bold uppercase tracking-[0.12em] text-gray-500 ".concat(l?"text-[11px]":"text-[8px] [writing-mode:vertical-rl]"),children:"Front"})]}),(0,r.jsx)("div",{className:l?"w-full":"overflow-x-auto flex-1",onScroll:()=>c(null),style:{scrollbarWidth:"thin",WebkitOverflowScrolling:"touch",touchAction:"pan-x pan-y"},children:(0,r.jsx)("div",{className:"min-w-full flex justify-start [&>*]:flex-1",children:(0,r.jsx)(es,{seats:a,selectedIds:s,currency:n,vertical:l,onDirectSelect:o,onHover:c})})})]})]})}function eo(e){let{seats:t,currency:a,assignments:n,onSelect:l}=e,i=function(){let[e,t]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{let e=window.matchMedia("(max-width: 639px)"),a=()=>t(e.matches);return a(),e.addEventListener("change",a),()=>e.removeEventListener("change",a)},[]),e}(),o=(0,s.useMemo)(()=>{let e=new Map;for(let a of t){let t="number"==typeof a.z?a.z:0;e.has(t)||e.set(t,[]),e.get(t).push(a)}return Array.from(e.entries()).sort((e,t)=>
1e[0]-t[0]).map(e=>{let[t,a]=e;return{z:t,seats:a}})},[t]),c=(0,s.useMemo)(()=>new Set(Object.values(n).filter(Boolean)),[n]),d=(0,s.useCallback)(e=>{V(e)&&X(e)&&l(e.id)},[l]),[u,m]=(0,s.useState)(null),p=(0,s.useCallback)(e=>m(e),[]);(0,s.useEffect)(()=>{if(!u)return;let e=()=>m(null);return window.addEventListener("scroll",e,!0),()=>window.removeEventListener("scroll",e,!0)},[u]);let x=t.some(e=>{let t=Q(e);return t.available&&"F"===t.gender}),h=t.some(e=>{let t=Q(e);return t.available&&"M"===t.gender});return 0===t.length?(0,r.jsxs)("div",{className:"w-full rounded-2xl border border-gray-200 bg-white p-8 text-center",children:[(0,r.jsx)("div",{className:"w-12 h-12 mx-auto mb-3",children:(0,r.jsx)(J,{s:$.available})}),(0,r.jsx)("p",{className:"text-[13px] text-gray-600 font-semibold",children:"Seat map unavailable for this coach."}),(0,r.jsx)("p",{className:"text-[11px] text-gray-400 mt-1",children:"You can still continue â a seat will be assigned at the counter."})]}):(0,r.jsxs)("div",{className:"w-full",children:[(0,r.jsxs)("div",{className:"mb-3 flex items-center gap-x-3.5 gap-y-2 flex-wrap rounded-xl bg-gray-50 border border-gray-200 px-3 py-2",children:[(0,r.jsx)(en,{label:"Available",children:(0,r.jsx)(el,{scheme:$.available})}),(0,r.jsx)(en,{label:"Selected",children:(0,r.jsx)(el,{scheme:$.selected})}),(0,r.jsx)(en,{label:"Booked",children:(0,r.jsx)(el,{scheme:$.bookedNeutral})}),x&&(0,r.jsx)(en,{label:"Ladies only",children:(0,r.jsx)("span",{className:"w-6 h-6 block",children:(0,r.jsx)(J,{s:$.ladies})})}),h&&(0,r.jsx)(en,{label:"Gents only",children:(0,r.jsx)("span",{className:"w-6 h-6 block",children:(0,r.jsx)(J,{s:$.gents})})}),(0,r.jsx)("span",{className:"w-px h-4 bg-gray-200"}),(0,r.jsx)(en,{label:"Seater",children:(0,r.jsx)("span",{className:"w-6 h-6 block",children:(0,r.jsx)(J,{s:$.available})})}),(0,r.jsx)(en,{label:"Sleeper",children:(0,r.jsx)("span",{className:"w-8 h-5 block",children:(0,r.jsx)(ee,{s:$.available,wide:!0})})})]}),(0,r.jsx)("div",{className:"flex flex-col gap-4",children:o.map(e=>(0,r.jsx)(ei,{z:e.z,seats:e.seats,selectedIds:c,currency:a,vertical:i,multiDeck:o.length>1,onDirectSelect:d,onHover:p},e.z))}),u&&(0,r.jsx)(ea,{tip:u})]})}function ec(e){let{title:t,variant:a="boarding",points:o,selectedId:c,onSelect:d}=e,[u,m]=(0,s.useState)(!1),p=(0,s.useRef)(null),h=(0,s.useRef)(null),g=(0,s.useRef)(null),f=(0,s.useRef)(null),b=o.find(e=>e.id===c)||null,[y,v]=(0,s.useState)(""),j=o.length>=6,k=(0,s.useMemo)(()=>{let e=y.trim().toLowerCase();return e?o.filter(t=>[t.name,t.location,t.id,t.address,t.landmark,t.phone].some(t=>"string"==typeof t&&t.toLowerCase().includes(e))):o},[o,y]);(0,s.useEffect)(()=>{u||v("")},[u]),(0,s.useEffect)(()=>{if(!u||!j||!window.matchMedia("(hover: hover)").matches)return;let e=requestAnimationFrame(()=>{var e;return null==(e=f.current)?void 0:e.focus()});return()=>cancelAnimationFrame(e)},[u,j]);let[N,S]=(0,s.useState)(!1);(0,s.useEffect)(()=>S(!0),[]);let[A,C]=(0,s.useState)(null),B=(0,s.useCallback)(()=>{let e=h.current;if(!e)return;let t=e.getBoundingClientRect();C({top:t.top,bottom:t.bottom,left:t.left,width:t.width})},[]);if((0,s.useEffect)(()=>{if(!u)return;B();let e=()=>B();return window.addEventListener("scroll",e,!0),window.addEventListener("resize",e),()=>{window.removeEventListener("scroll",e,!0),window.removeEventListener("resize",e)}},[u,B]),(0,s.useEffect)(()=>{if(!u)return;let e=e=>{var t,a;let r=e.target;(null==(t=p.current)?void 0:t.contains(r))||(null==(a=g.current)?void 0:a.contains(r))||m(!1)},t=e=>{"Escape"===e.key&&m(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("keydown",t)}},[u]),0===o.length)return null;let E=window.innerHeight,F=A?E-A.bottom-16:0,_=A?A.top-16:0,T=F<180&&_>F,M=Math.max(140,Math.min(288,T?_:F)),I="boarding"===a?"#6B30EA":"#EC0FAC",D="boarding"===a?"rgba(107,48,234,0.10)":"rgba(236,15,172,0.10)";return(0,r.jsxs)("div",{ref:p,className:"relative",children:[(0,r.jsxs)("button",{ref:h,type:"button",onClick:()=>{u||B(),m(e=>!e)},className:"group w-full flex items-start gap-3 px-3.5 py-3 min-h-[48px] rounded-2xl bg-white backdrop-blur-sm border text-left shadow-sm hover:-translate-y-0.5 hover:shadow-md transition-all duration-300 ".concat(u?"border-[#6
1B30EA]/45 ring-2 ring-[#6B30EA]/10":"border-gray-200 hover:border-[#6B30EA]/40"),"aria-expanded":u,"aria-haspopup":"listbox",children:[(0,r.jsx)("div",{className:"w-9 h-9 rounded-xl flex items-center justify-center shrink-0",style:{background:D},children:(0,r.jsx)(L.A,{className:"w-4 h-4",style:{color:I}})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-[0.12em]",style:{color:I},children:t}),(0,r.jsx)("p",{className:"text-[13.5px] font-semibold leading-snug text-gray-900 break-words",children:b?b.name||b.location||b.id:"Select a point"}),(null==b?void 0:b.address)&&(0,r.jsx)("p",{className:"text-[10.5px] leading-snug text-gray-400 mt-0.5 break-words",children:b.address})]}),(null==b?void 0:b.time)&&(0,r.jsx)("span",{className:"text-[11px] font-bold text-gray-700 bg-gray-50 border border-gray-100 px-2 py-1 rounded-lg shrink-0 whitespace-nowrap mt-0.5",children:(0,G.z)(b.time)}),(0,r.jsx)(w.A,{className:"w-4 h-4 text-gray-400 shrink-0 transition-transform duration-300 mt-1.5 ".concat(u?"rotate-180":"")})]}),N&&(0,n.createPortal)((0,r.jsx)(l.N,{children:u&&A&&(0,r.jsxs)(i.P.div,{ref:g,initial:{opacity:0,y:T?6:-6},animate:{opacity:1,y:0},exit:{opacity:0,y:T?6:-6},transition:{duration:.18},className:"fixed z-[9999] overflow-y-auto rounded-2xl bg-white/95 backdrop-blur-xl border border-gray-100 shadow-2xl p-1.5",style:{left:A.left,width:A.width,maxHeight:M,...T?{bottom:E-A.top+8}:{top:A.bottom+8}},children:[j&&(0,r.jsx)("div",{className:"sticky top-0 z-10 -mx-1.5 -mt-1.5 mb-1 px-1.5 pt-1.5 pb-1.5 bg-white/95 backdrop-blur-xl border-b border-gray-100",children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(P.A,{className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-gray-400"}),(0,r.jsx)("input",{ref:f,type:"text",value:y,onChange:e=>v(e.target.value),placeholder:"Search ".concat(t.toLowerCase()," points"),"aria-label":"Search ".concat(t.toLowerCase()," points"),className:"w-full pl-8 pr-8 py-2 rounded-xl bg-gray-50 border border-gray-200 text-[12.5px] text-gray-900 placeholder:text-gray-400 focus:outline-none focus:bg-white focus:border-[#6B30EA]/40 focu
1s:ring-2 focus:ring-[#6B30EA]/10 transition-colors"}),y&&(0,r.jsx)("button",{type:"button",onClick:()=>{var e;v(""),null==(e=f.current)||e.focus()},"aria-label":"Clear search",className:"absolute right-2 top-1/2 -translate-y-1/2 p-1 rounded-md text-gray-400 hover:text-gray-600 hover:bg-gray-100 transition-colors",children:(0,r.jsx)(x.A,{className:"w-3.5 h-3.5"})})]})}),0===k.length&&(0,r.jsxs)("p",{className:"px-3 py-5 text-center text-[12px] text-gray-400",children:["No stops match â",y.trim(),"â."]}),k.map(e=>{let t=e.id===c;return(0,r.jsxs)("button",{type:"button",onClick:()=>{d(e.id),m(!1)},className:"w-full text-left px-3 py-2.5 min-h-[44px] rounded-xl flex items-start gap-2.5 transition-all duration-200 ".concat(t?"bg-[#6B30EA]/[0.07] ring-1 ring-[#6B30EA]/15":"hover:bg-gray-50"),children:[(0,r.jsx)("div",{className:"w-7 h-7 rounded-lg flex items-center justify-center shrink-0 mt-0.5 ".concat(t?"":"bg-gray-50"),style:t?{background:D}:void 0,children:t?(0,r.jsx)(R.A,{className:"w-4 h-4",style:{color:I}}):(0,r.jsx)(L.A,{className:"w-3.5 h-3.5 text-gray-400"})}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,r.jsx)("span",{className:"text-[13px] font-semibold leading-snug text-gray-900 break-words min-w-0",children:e.name||e.location||e.id}),e.time&&(0,r.jsx)("span",{className:"text-[11px] font-semibold text-gray-400 shrink-0 whitespace-nowrap",children:(0,G.z)(e.time)})]}),(e.address||e.landmark)&&(0,r.jsx)("p",{className:"text-[11px] leading-snug text-gray-400 mt-0.5 break-words",children:e.address||e.landmark})]})]},e.id)})]})}),document.body)]})}function ed(e){var t,a;let{bus:n,currency:l,traceId:i,className:o="",onSubStepChange:c}=e,d=(0,M.useRouter)(),u=(0,M.useSearchParams)(),m=(0,T.useBusStore)(e=>e.selectedBusId),p=(0,T.useBusStore)(e=>e.selectedBoardingId),x=(0,T.useBusStore)(e=>e.selectedDroppingId),h=(0,T.useBusStore)(e=>e.tripKey),g=(0,T.useBusStore)(e=>e.seats),f=(0,T.useBusStore)(e=>e.selectBoarding),b=(0,T.useBusStore)(e=>e.selectDropping),y=(0,T.useBusStore)(e=>e.maxSeatsPerTicket),v=(0,T.useBusStore)(e=>e.seatAssignments),w=(0,T.useBusStore)(e=>e.isTraceStale),j=(0,T.useBusStore)(e=>e.selectBus),k=(0,T.useBusStore)(e=>e.setBoarding),N=(0,T.useBusStore)(e=>e.setDropping),S=(0,T.useBusStore)(e=>e.setSelect),A=(0,T.useBusStore)(e=>e.assignSeat),C=(0,T.useBusStore)(e=>e.clearSeat),[B,{isLoading:E}]=(0,H.xM)(),[P]=(0,H.v$)(),[G,$]=(0,s.useState)("loading"),[Q,V]=(0,s.useState)(null),[X,Z]=(0,s.use
1State)(!1),[J,ee]=(0,s.useState)(0),[et,ea]=(0,s.useState)("seats"),er=(0,s.useRef)(null),es=(0,s.useRef)(!1),en=(0,s.useRef)(null);(0,s.useEffect)(()=>{m!==n.id&&j(n.id),es.current=!0},[n.id]);let el=m===n.id,ei="number"==typeof y&&y>0?y:6,ed=(0,q.A3)("BUS"),eu=ed?Math.max(1,Number(u.get("adults")||1))+Math.max(0,Number(u.get("children")||0))+Math.max(0,Number(u.get("infants")||0)):null,em=null!=eu?eu:ei,ep=(0,s.useMemo)(()=>Array.from({length:em},(e,t)=>"Traveller ".concat(t+1)),[em]),ex=(0,s.useCallback)(async(e,t)=>{var a,r,s,o,c,d,u,m;if(!n.id){$("error"),V("Your bus selection was lost. Please search again.");return}let p=T.useBusStore.getState();if(!i||p.isTraceStale())if((null==(a=p.searchParams)?void 0:a.src)&&(null==(r=p.searchParams)?void 0:r.dst)&&(null==(s=p.searchParams)?void 0:s.doj))try{$("loading"),V(null);let e=await P({.../^[A-Z]{3}$/.test(l)?{display_currency:l}:{},trips:[{src:p.searchParams.src,dst:p.searchParams.dst,doj:p.searchParams.doj}]}).unwrap(),t=null==e||null==(o=e.detail)?void 0:o.data;if(!t)throw Error("Empty search response");T.useBusStore.getState().setSearch(p.searchParams,t,new Date().toISOString());let a=T.useBusStore.getState().buses,r=a.find(e=>e.id===n.id)||((0,q.A3)("BUS")?void 0:a.find(e=>e.name===n.name&&e.time_d===n.time_d));if(!r){$("error"),V("This bus is no longer available for that date. Ask Shasa to search again.");return}T.useBusStore.getState().selectBus(r.id)}catch(e){$("error"),V("Could not refresh the search. Ask Shasa to search buses again.");return}else{$("error"),V(i?"Your search session expired. Please search again for the latest prices.":"Your bus selection was lost. Please search again.");return}let x=T.useBusStore.getState().traceId;if(!x){$("error"),V("Your bus selection was lost. Please search again.");return}let h="".concat(x,"|").concat(n.id,"|").concat(e,"|").concat(t);if(er.current!==h){er.current=h,$("loading"),V(null);try{let a=await B({.../^[A-Z]{3}$/.test(l)?{display_currency:l}:{},traceId:x,busId:n.id,bpid:e,dpid:t}).unwrap(),r=null==a||null==(c=a.detail)?void 0:c.data;if(!r||"error"===a.detail.status)throw Error((null==a||null==(d=a.detail)?void 0:d.message)||"Could not load the seat map.");S(r),$("ready")}catch(e){er.current=null,V((null==e||null==(m=e.data)||null==(u=m.detail)?void 0:u.message)||(null==e?void 0:e.message)||"Could not load the seat map. Please try again."),$("error")}}},[i,n.id,n.name,n.time_d,l,B,S,P]);(0,s.useEffect)(()=>{var e,t,a,r;if(!el)return;let s=p||(null==(t=n.boarding)||null==(e=t[0])?void 0:e.id)||null,l=x||(null==(r=n.dropping)||null==(a=r[0])?void 0:a.id)||null;if(!s||!l){$("error"),V("No boarding/dropping points are available for this bus.");return}let o="".concat(i,"|").concat(n.id,"|").concat(s,"|").concat(l);if(h&&g.length>0&&er.current===o)return void $("ready");ex(s,l)},[el,p,x]);let eh=(0,s.useCallback)(e=>{k(e),x&&ex(e,x)},[k,x,ex]),eg=(0,s.useCallback)(e=>{N(e),p&&ex(p,e)},[N,p,ex]),ef=(0,s.useCallback)(e=>{let t=T.useBusStore.getState().seatAssignments,a=Object.entries(t).find(t=>{let[,a]=t;return a===e});if(a){let e=Number(a[0]);C(e),ee(e);return}if(Object.values(t).filter(Boolean).length>=ei)return void O.default.error("You can select up to ".concat(ei," seat").concat(1===ei?"":"s"," per booking."));let r=t[J]?ep.findIndex((e,a)=>!t[a]):J,s=r>=0?r:J;A(s,e);let n=T.useBusStore.getState().seatAssignments,l=ep.findIndex((e,t)=>!n[t]);ee(l>=0?l:s)},[J,A,C,ep,ei]),eb=ep.map((e,t)=>v[t]).filter(e=>!!e),ey=eb.length,ev=new Set(eb).size===eb.length&&(null!=eu?eu<=ei&&ey===eu:ey>=1&&ey<=ei),ew=(0,s.useMemo)(()=>{let e={};for(let t of g)e[t.id]=t;return e},[g]),ej=(0,s.useMemo)(()=>{let e=0,t=!1;for(let s of eb){var a,r;let n=null==(r=ew[s])||null==(a=r.fare)?void 0:a.total;"number"==typeof n&&(e+=n,t=!0)}return t?e:null},[eb,ew]),ek=(0,s.useMemo)(()=>F(g,l),[g,l]),eN=null!=(t=f.length>0?f:n.boarding)?t:[],eS=null!=(a=b.length>0?b:n.dropping)?a:[],eA=eN.find(e=>e.id===p)||eN[0]||null,eC=eS.find(e=>e.id===x)||eS[0]||null,eB=(0,s.useMemo)(()=>{let e=(null==eA?void 0:eA.name)||(null==eA?void 0:eA.location)||"",t=(null==eC?void 0:eC.name)||(null==eC?void 0:eC.location)||"";return e&&t?"".concat(e," â ").concat(t):""},[eA,eC]),eE=(0,s.useCallback)(()=>
1{if(!ev)return void O.default.error(0===ey?null!=eu?"Please pick one seat for each of the ".concat(eu," travellers."):"Please pick at least one seat.":null!=eu&&ey!==eu?"Please pick exactly ".concat(eu," seats for this holiday."):"Each seat can only be selected once.");ea("points")},[ev,ey,eu]);(0,s.useEffect)(()=>{null==c||c(et)},[et,c]),(0,s.useEffect)(()=>{if("points"!==et)return;let e=requestAnimationFrame(()=>{var e;null==(e=en.current)||e.scrollIntoView({behavior:"smooth",block:"start"})});return()=>cancelAnimationFrame(e)},[et]);let eF=(0,s.useCallback)(async()=>{if(!ev){O.default.error(0===ey?"Please pick at least one seat.":"Each seat can only be selected once."),ea("seats");return}if(!p||!x)return void O.default.error("Please select your boarding and dropping points.");if(!T.useBusStore.getState().traceId||w()){$("error"),V("Your search session expired. Please search again for the latest prices.");return}if(ed){let e=null!=eu?eu:1;if(ey!==e){O.default.error("Choose exactly ".concat(e," seat").concat(1===e?"":"s"," â one for every traveller in this holiday.")),ea("seats");return}if(!eA||!eC)return void O.default.error("Please select your boarding and dropping points.");Z(!0);try{let e=await (0,q.XK)({kind:"BUS",choice:{bus_id:n.id,operator:n.name||"Coach",bus_type:n.type||"Coach",departure:n.time_d||"",arrival:n.time_a||"",boarding_point_id:eA.id,boarding_point_name:eA.name||eA.location||"Boarding point",dropping_point_id:eC.id,dropping_point_name:eC.name||eC.location||"Dropping point",seat_ids:eb}});d.push(e)}catch(e){Z(!1),O.default.error(e instanceof Error?e.message:"We could not return this coach to your holiday.")}return}try{window.location.pathname.startsWith("/chat")&&sessionStorage.setItem("nxvoy_chat_return",window.location.pathname+window.location.search)}catch(e){}d.push("/book-bus/checkout")},[ev,ey,p,x,w,d,u,ed,eu,eA,eC,n,eb]);if(("loading"===G||E)&&0===g.length)return(0,r.jsx)("div",{className:"px-6 sm:px-7 py-10 ".concat(o),children:(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center text-center",children:[(0,r.jsxs)("div",{className:"relative w-14 h-14 mb-4",children:[(0,r.jsx)("div",{className:"absolute inset-0 rounded-full border-[3px] border-gray-100"}),(0,r.jsx)("div",{className:"absolute inset-0 rounded-full border-[3px] border-transparent border-t-[#6B30EA] border-r-[#EC0FAC] animate-spin"})]}),(0,r.jsx)("p",{className:"text-[14px] font-bold text-gray-900",children:"Loading the seat map"}),(0,r.jsx)("p",{className:"text-[12px] text-gray-500 mt-0.5",children:"Fetching live seats and fares for this busâ¦"})]})});if("error"===G&&0===g.length)return(0,r.jsx)("div",{className:"px-6 sm:px-7 py-8 ".concat(o),children:(0,r.jsxs)("div",{className:"max-w-md mx-auto text-center space-y-4",children:[(0,r.jsx)("div",{className:"w-12 h-12 mx-auto rounded-full bg-gradient-to-br from-purple-100 to-pink-100 flex items-center justify-center",children:(0,r.jsx)(I.A,{className:"w-6 h-6 text-[#6B30EA]"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"text-[15px] font-extrabold text-gray-900",children:"Let's try that again"}),(0,r.jsx)("p",{className:"text-[12.5px] text-gray-500 mt-1",children:Q||"We couldnât load the seat map. Availability may have changed."})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2.5 p-3 rounded-xl bg-green-50/80 border border-green-100 text-left",children:[(0,r.jsx)(D.A,{className:"w-4 h-4 text-green-600 shrink-0"}),(0,r.jsxs)("p",{className:"text-[11.5px] text-green-800",children:[(0,r.jsx)("span",{className:"font-semibold",children:"Nothing was charged."})," Retry to load the latest seats and prices."]})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>{var e,t,a,r;er.current=null;let s=p||(null==(t=n.boarding)||null==(e=t[0])?void 0:e.id)||"",l=x||(null==(r=n.dropping)||null==(a=r[0])?void 0:a.id)||"";s&&l&&ex(s,l)},className:"inline-flex items-center gap-1.5 px-4 py-2.5 rounded-xl bg-gradient-to-r from-[#6B30EA] to-[#EC0FAC] text-white text-[13px] font-bold shadow-md hover:shadow-lg active:scale-[0.98] transition-all",children:[(0,r.jsx)(U.A,{className:"w-4 h-4"}),"Retry"]})]})});let e_=(null==eA?void 0:eA.name)||(null==eA?void 0:eA.location)||(null==eA?void 0:eA.id)||null,eT=(null==eC?void 0:eC.name)||(null==eC?void 0:eC.location)||(null==eC?void 0:eC.id)||null;return(0,r.jsxs)("div",{ref:en,className:"px-5 sm:px-7 py-5 ".concat(o),"data-testid":"bus-seat-panel",children:[(0,r.jsx)("div",{className:"flex items-center gap-2 mb-4",children:[{n:1,label:"Select seats",key:"seats"},{n:2,label:"Boarding & dropping",key:"points"}].map((e,t)=>{let a="points"===et&&"seats"===e.key,n=et===e.key;return(0,r.jsxs)(s.Fragment,{children:[(0,r.jsxs)("button",{type:"button",onClick:()=>"seats"===e.key&&ea("seats"),disabled:"points"===e.key,className:"inline-flex items-center gap-1.5 ".concat("seats"===e.key?"cursor-pointer":"cursor-default"),children:[(0,r.jsx)("span",{className:"w-5 h-5 rounded-full flex items-center justify-center text-[10px] font-bold transition-colors ".concat(a||n?"bg-gradient-to-r from-[#EC0FAC] to-[#6B30EA] text-white":"bg-gray-100 text-gray-400"),children:a?(0,r.jsx)(R.A,{className:"w-3.5 h-3.5"}):e.n}),(0,r.jsx)("span",{className:"text-[12px] font-semibold whitespace-nowrap ".concat(n?"text-gray-900":a?"text-[#6B30EA]":"text-gray-400"),children:e.label})]}),0===t&&(0,r.jsx)("span",{className:"flex-1 h-[2px] rounded-full ".concat("points"===et?"bg-gradient-to-r from-[#EC0FAC] to-[#6B30EA]":"bg-gray-200")})]},e.key)})}),"seats"===et?(0,r.jsxs)(r.Fragment,{children:[ek.length>1&&(0,r.jsxs)("div",{className:"mb-4",children:[(0,r.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-[0.14em] text-[#6B30EA]/70 mb-2",children:"Fares by class"}),(0,r.jsx)(_,{bus:n,currency:l,tiers:ek,size:"md"})]}),!1,(0,r.jsx)("div",{className:"rounded-2xl border border-gray-100 bg-white/60 backdrop-blur-sm p-1.5 sm:p-4",children:el?(0,r.jsx)(eo,{seats:g,currency:l,assignments:v,activePaxIndex:J,onSelect:ef,passengerLabels:ep,operatorName:n.name,busType:n.type,routeLabel:eB}):(0,r.jsx)("div",{className:"flex items-center justify-center py-10",children:(0,r.jsx)(z.A,{className:"w-5 h-5 text-[#6B30EA] animate-spin"})})}),(0,r.jsx)("div",{className:"sticky bottom-0 -mx-5 sm:-mx-7 mt-5 px-5 sm:px-7 pt-3 pb-1 bg-gradient-to-t from-white via-white/95 to-transparent",children:(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-2xl border border-gray-100 bg-white/90 backdrop-blur-sm px-4 py-3 shadow-[0_4px_20px_rgba(0,0,0,0.06)]",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("p",{className:"text-[10px] font-bold uppercase tracking-[0.12em] text-gray-400 truncate",children:[ey," seat",1===ey?"":"s"," selected"]}),(0,r.jsx)("p",{className:"text-[17px] sm:text-[18px] font-extrabold text-gray-900 leading-tight tabular-nums whitespace-nowrap",children:null!=ej?(0,Y.QG)(ej,l):"".concat((0,K.Qn)(l),"â")})]}),(0,r.jsxs)("button",{type:"button",onClick:eE,disabled:!ev,className:"inline-flex items-center gap-2 min-w-0 max-w-[58%] sm:max-w-none px-4 sm:px-5 py-3 min-h-[48px] rounded-xl font-bold text-[13px] sm:text-[14px] transition-all ".concat(ev?"bg-gradient-to-r from-[#6B30EA] to-[#EC0FAC] text-white shadow-lg hover:shadow-xl hover:scale-[1.02] active:scale-[0.98]":"bg-gray-200 text-gray-400 cursor-not-allowed"),children:[(0,r.jsx)("span",{className:"min-w-0 text-left leading-tight whitespace-normal sm:whitespace-nowrap",children:ev?"Next \xb7 Boarding & Dropping":"Pick a seat to continue"}),ev&&(0,r.jsx)(W.A,{className:"w-4 h-4 shrink-0"})]})]})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"rounded-2xl border border-gray-100 bg-white/60 backdrop-blur-sm px-4 py-3 mb-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2 mb-2",children:[(0,r.jsxs)("p",{className:"text-[11px] font-bold uppercase tracking-[0.12em] text-gray-400",children:["Your seats (",ey,")"]}),(0,r.jsx)("button",{type:"button",onClick:()=>ea("seats"),className:"text-[12px] font-bold text-[#6B30EA] hover:underline",children:"Edit"})]}),(0,r.jsx)("div",{className:"flex items-center gap-2 flex-wrap",children:eb.slice().sort((e,t)=>
1String(e).localeCompare(String(t),void 0,{numeric:!0,sensitivity:"base"})).map(e=>(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg text-[12px] font-semibold bg-green-50 text-green-700 border border-green-200/60",children:[(0,r.jsx)(R.A,{className:"w-3.5 h-3.5 text-green-500"}),"Seat ",e]},e))}),(e_||eT)&&(0,r.jsxs)("p",{className:"text-[11.5px] text-gray-500 mt-2.5 inline-flex items-center gap-1.5",children:[(0,r.jsx)(L.A,{className:"w-3.5 h-3.5 text-gray-400"}),e_||"â"," ",(0,r.jsx)(W.A,{className:"w-3 h-3 text-gray-300"})," ",eT||"â"]})]}),(0,r.jsx)("p",{className:"text-[11px] font-bold uppercase tracking-[0.12em] text-gray-400 mb-2.5",children:"Select Boarding & dropping"}),(0,r.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:[(0,r.jsx)(ec,{title:"Boarding",variant:"boarding",points:eN,selectedId:p,onSelect:eh}),(0,r.jsx)(ec,{title:"Dropping",variant:"dropping",points:eS,selectedId:x,onSelect:eg})]}),(0,r.jsx)("div",{className:"sticky bottom-0 -mx-5 sm:-mx-7 mt-5 px-5 sm:px-7 pt-3 pb-1 bg-gradient-to-t from-white via-white/95 to-transparent",children:(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-2xl border border-gray-100 bg-white/90 backdrop-blur-sm px-4 py-3 shadow-[0_4px_20px_rgba(0,0,0,0.06)]",children:[(0,r.jsx)("button",{type:"button",onClick:()=>ea("seats"),className:"inline-flex items-center gap-1.5 px-4 py-3 min-h-[48px] rounded-xl font-bold text-[13px] text-gray-600 border border-gray-200 bg-white hover:bg-gray-50 transition-all",children:"Back"}),(0,r.jsxs)("button",{type:"button",onClick:eF,disabled:X||!ev||!p||!x,className:"inline-flex items-center gap-2 px-5 py-3 min-h-[48px] rounded-xl font-bold text-[14px] transition-all ".concat(ev&&p&&x?"bg-gradient-to-r from-[#6B30EA] to-[#EC0FAC] text-white shadow-lg hover:shadow-xl hover:scale-[1.02] active:scale-[0.98]":"bg-gray-200 text-gray-400 cursor-not-allowed"),children:[X?"Updating your holidayâ¦":null!=ej?"Continue \xb7 ".concat((0,Y.QG)(ej,l)):"Continue to checkout",(0,r.jsx)(W.A,{className:"w-4 h-4"})]})]})})]})]})}var eu=a(3166),em=a(56154),ep=a(45207),ex=a(60890),eh=a(20181),eg=a(16253),ef=a(34157),eb=a(82063);let ey=[{kws:["wifi","wi-fi","internet"],Icon:eu.A},{kws:["charg","usb","socket","plug"],Icon:em.A},{kws:["track","gps","live"],Icon:m.A},{kws:["washroom","toilet","restroom"],Icon:p.A},{kws:["water","bottle"],Icon:ep.A},{kws:["cctv","camera"],Icon:ex.A},{kws:["blanket","pillow","bedding"],Icon:S.A},{kws:["tv","screen","entertain","movie"],Icon:eh.A},{kws:["ac","air condition","air-condition"],Icon:eg.A},{kws:["fan","vent"],Icon:ef.A},{kws:["sanit","safety","hygiene"],Icon:d.A},{kws:["ladies","women"],Icon:u.A},{kws:["snack","meal","food","refresh"],Icon:o.A}];function ev(e){let{bus:t,className:a=""}=e,n=(0,s.useMemo)(()=>(function(e){let t=e.tags||{},a=[],r=new Set,s=(e,t,s)=>{let n=t.toLowerCase();r.has(n)||(r.add(n),a.push({key:e,label:t,Icon:s}))};for(let a of(t.ac?s("ac","AC",eg.A):t.non_ac&&s("non_ac","Non-AC",ef.A),t.sleeper&&s("sleeper","Sleeper Berths",S.A),t.seater&&s("seater","Seater",v.A),t.live_tracking&&s("live_tracking","Live Tracking",m.A),t.washroom&&s("washroom","Washroom",p.A),t.safety&&s("safety","Safety+",d.A),t.single_ladies&&s("single_ladies","Ladies Friendly",u.A),t.m_ticket&&s("m_ticket","M-Ticket",eb.A),t.social_distance&&s("social_distance","Social Distancing",u.A),e.amenities||[])){let e=function(e){let t=String(e).trim().replace(/[_-]+/g," ");return t?t.split(/\s+/).map(e=>e.length<=3?e.toUpperCase():e.charAt(0).toUpperCase()+e.slice(1)).join(" "):t}(String(a));e&&s("amenity_".concat(e.toLowerCase()),e,function(e){let t=e.toLowerCase();for(let e of ey)if(e.kws.some(e=>t.includes(e)))return e.Icon;return d.A}(e))}return a})(t),[t]);return 0===n.length?(0,r.jsxs)("div",{className:"px-6 sm:px-7 py-6 text-center ".concat(a),children:[(0,r.jsx)("div",{className:"w-11 h-11 mx-auto mb-2.5 rounded-2xl bg-gray-50 border border-gray-100 flex items-center justify-center",children:(0,r.jsx)(o.A,{className:"w-5 h-5 text-gray-300"})}),(0,r.jsx)("p",{className:"text-[13px] text-gray-500 font-medium",children:"Amenity details weren't shared for this coach."})]}):(0,r.jsxs)("div",{className:"px-6 sm:px-7 py-5 ".concat(a),"data-testid":"bus-amenities-panel",children:[(0,r.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-[0.14em] text-[#6B30EA]/70 mb-3",children:"Onboard amenities"}),(0,r.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-2.5",children:n.map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-2.5 px-3 py-2.5 rounded-xl bg-white/70 border border-gray-100 min-h-[44px]",children:[(0,r.jsx)("div",{className:"w-8 h-8 rounded-lg bg-[#6B30EA]/[0.06] flex items-center justify-center shrink-0",children:(0,r.jsx)(e.Icon,{className:"w-4 h-4 text-[#6B30EA]"})}),(0,r.jsx)("span",{className:"text-[12px] font-semibold text-gray-700 leading-tight",children:e.label})]},e.key))})]})}var ew=a(96871),ej=a(23327),ek=a(29502);function eN(e){if(null==e)return null;let t="number"==typeof e?e:parseFloat(String(e).replace("%","").trim());return Number.isFinite(t)?t:null}function eS(e){if(!Array.isArray(e)||0===e.length)return[];let t=e.map(e=>({span:function(e){if(null==e)return null;let t="number"==typeof e?e:parseFloat(String(e).trim());return Number.isFinite(t)?t:null}(e.span),suffix:function(e){let t=(e||"").toLowerCase();return"hh"===t||t.startsWith("hour")||"hr"===t||"h"===t||"hours"===t?"h":"dd"===t||t.startsWith("day")||"d"===t?"d":"mm"===t||t.startsWith("min")||"m"===t?"m":"h"}(e.unit),rate:eN(e.rate)})).filter(e=>null!=e.span);if(0===t.length)return e.map(e=>{let t,a=eN(e.rate),r=null==e.span?"":String(e.span).trim();return{window:r&&(t=r.trim())?(t=(t=(t=(t=t.replace(/^B\/?W\s+/i,"")).replace(/of\s+bus\s+start\s+time/gi,"before departure")).replace(/bus\s+start\s+time/gi,"departure")).replace(/\s+/g," ").trim()).charAt(0).toUpperCase()+t.slice(1):"Cancellation charge",rate:a,free:0===a}});t.sort((e,t)=>
1t.span-e.span);let a=[];for(let e=0;e<t.length;e++){let r,s=t[e],n=t[e+1];if(0===e)r="More than ".concat(s.span).concat(s.suffix," before departure");else{let a=t[e-1];r="".concat(s.span).concat(s.suffix," â ").concat(a.span).concat(a.suffix," before departure")}a.push({window:r,rate:s.rate,free:0===s.rate}),n||a.push({window:"Less than ".concat(s.span).concat(s.suffix," before departure"),rate:100,free:!1})}return a}function eA(e){return null==e?"Penalty charge applies":0===e?"No charge (full refund)":e>=100?"Non-refundable (100% penalty charge)":"".concat(e,"% penalty charge")}function eC(e){let{bus:t,className:a=""}=e,n=(0,s.useMemo)(()=>{var e;return eS(null==(e=t.policy)?void 0:e.cancel)},[t]),l=(0,s.useMemo)(()=>{var e;return eS(null==(e=t.policy)?void 0:e.reschedule)},[t]),i=t.tags||{},o=n.length>0;return(0,r.jsxs)("div",{className:"px-6 sm:px-7 py-5 space-y-5 ".concat(a),"data-testid":"bus-policy-panel",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{className:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.14em] text-[#6B30EA]/70 mb-3",children:[(0,r.jsx)(ew.A,{className:"w-3.5 h-3.5"}),"Cancellation policy"]}),o?(0,r.jsx)("div",{className:"rounded-2xl border border-gray-100 overflow-hidden divide-y divide-gray-100",children:n.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3 px-4 py-3 bg-white/60",children:[(0,r.jsx)("span",{className:"text-[12.5px] font-semibold text-gray-700 leading-tight",children:e.window}),(0,r.jsx)("span",{className:"text-[12px] font-bold px-2.5 py-1 rounded-full shrink-0 ".concat(e.free?"bg-emerald-50 text-emerald-700 border border-emerald-200":null!=e.rate&&e.rate>=100?"bg-rose-50 text-rose-600 border border-rose-200":"bg-amber-50 text-amber-700 border border-amber-200"),children:eA(e.rate)})]},t))}):(0,r.jsxs)("div",{className:"flex items-start gap-2.5 px-4 py-3 rounded-xl bg-gray-50 border border-gray-100",children:[(0,r.jsx)(ej.A,{className:"w-4 h-4 text-gray-400 shrink-0 mt-0.5"}),(0,r.jsx)("p",{className:"text-[12.5px] text-gray-500",children:!1===i.cancel||!1===i.refund?"This ticket is non-refundable.":i.cancel||i.refund?"Cancellation is available â the operator confirms exact charges at cancellation time.":"Cancellation terms weren't shared for this bus."})]})]}),l.length>0&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{className:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-[0.14em] text-[#EC0FAC]/70 mb-3",children:[(0,r.jsx)(ek.A,{className:"w-3.5 h-3.5"}),"Reschedule policy"]}),(0,r.jsx)("div",{className:"rounded-2xl border border-gray-100 overflow-hidden divide-y divide-gray-100",children:l.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3 px-4 py-3 bg-white/60",children:[(0,r.jsx)("span",{className:"text-[12.5px] font-semibold text-gray-700 leading-tight",children:e.window}),(0,r.jsx)("span",{className:"text-[12px] font-bold px-2.5 py-1 rounded-full shrink-0 bg-amber-50 text-amber-700 border border-amber-200",children:eA(e.rate)})]},t))})]}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-2",children:[i.partial_cancel&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-emerald-50 border border-emerald-100 text-[12px] font-semibold text-emerald-700",children:[(0,r.jsx)(R.A,{className:"w-3.5 h-3.5"}),"Partial cancellation supported"]}),i.reschedule&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-sky-50 border border-sky-100 text-[12px] font-semibold text-sky-700",children:[(0,r.jsx)(ek.A,{className:"w-3.5 h-3.5"}),"Reschedule available"]}),i.m_ticket&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-gray-50 border border-gray-100 text-[12px] font-semibold text-gray-600",children:[(0,r.jsx)(ej.A,{className:"w-3.5 h-3.5"}),"M-Ticket accepted"]})]})]})}var eB=a(99106);let eE=[{id:"amenities",label:"Amenities",Icon:o.A},{id:"policy",label:"Booking Policy",Icon:c.A}];function eF(e){if(!e)return"";let t=new Date(e);return Number.isNaN(t.getTime())?"":"".concat(String(t.getHours()).padStart(2,"0"),":").concat(String(t.getMinutes()).padStart(2,"0"))}function e_(e){let{open:t,title:a,subtitle:o,onClose:c,children:d}
1=e,[u,m]=(0,s.useState)(!1);return((0,s.useEffect)(()=>m(!0),[]),(0,s.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key&&c()};document.addEventListener("keydown",e);let a=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.removeEventListener("keydown",e),document.body.style.overflow=a}},[t,c]),u)?(0,n.createPortal)((0,r.jsx)(l.N,{children:t&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("style",{children:"header.lg\\:hidden.fixed.top-0.left-0 { display: none !important; }"},"bus-seat-sheet-chrome"),(0,r.jsx)(i.P.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},onClick:c,className:"fixed inset-0 z-[200] bg-black/45 backdrop-blur-[2px]","aria-hidden":!0},"bus-seat-sheet-backdrop"),(0,r.jsx)(i.P.div,{className:"pointer-events-none fixed inset-0 z-[201] flex flex-col justify-end",children:(0,r.jsxs)(i.P.div,{role:"dialog","aria-modal":"true","aria-label":a,initial:{y:"100%"},animate:{y:0},exit:{y:"100%"},transition:{type:"spring",stiffness:320,damping:34},className:"pointer-events-auto mx-auto flex w-full max-h-[92%] min-h-0 flex-col rounded-t-3xl bg-white shadow-[0_-8px_40px_rgba(0,0,0,0.18)] sm:max-w-[680px]",children:[(0,r.jsxs)("div",{className:"shrink-0 rounded-t-3xl border-b border-gray-100 bg-white",children:[(0,r.jsx)("div",{className:"flex justify-center pt-2.5 pb-1",children:(0,r.jsx)("span",{className:"h-1 w-10 rounded-full bg-gray-300"})}),(0,r.jsxs)("div",{className:"flex items-center gap-3 px-5 pb-3",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("p",{className:"truncate text-[15px] font-extrabold text-gray-900",children:a}),o&&(0,r.jsx)("p",{className:"truncate text-[12px] text-gray-500",children:o})]}),(0,r.jsx)("button",{type:"button",onClick:c,"aria-label":"Close seat selection",className:"grid h-9 w-9 shrink-0 place-items-center rounded-full bg-gray-100 text-gray-600 transition-colors hover:bg-gray-200 active:scale-95",children:(0,r.jsx)(x.A,{className:"h-4 w-4"})})]})]}),(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto overscroll-contain",style:{touchAction:"pan-y",WebkitOverflowScrolling:"touch"},children:d})]})},"bus-seat-sheet")]})}),document.body):null}function eT(e){var t,a,n,o,c,x,S,A;let{bus:C,currency:B="INR",isSelected:E=!1,onSelect:M,index:L=0,badges:P=[],expandedTab:R=null,onTabChange:I,traceId:D=null,forceSeatSheet:U=!1}=e,z="function"==typeof I,W=(null==(a=C.fares)||null==(t=a[0])?void 0:t.currency)||(null==(n=C.seats)?void 0:n.currency)||B,O=null==(o=C.fares)?void 0:o[0],H=(0,s.useMemo)(()=>(0,j.P)(null==O?void 0:O.total,null==O?void 0:O.market_total),[null==O?void 0:O.total,null==O?void 0:O.market_total]),K=eF(C.time_d),Y=eF(C.time_a),G=function(e){if(!e)return"";let t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleDateString("en-GB",{weekday:"short",day:"numeric",month:"short"})}(C.time_d),q=function(e){let t="number"==typeof e.duration&&e.duration>0?e.duration:0;if(!t&&e.time_d&&e.time_a){let a=new Date(e.time_d).getTime(),r=new Date(e.time_a).getTime();Number.isNaN(a)||Number.isNaN(r)||!(r>a)||(t=Math.round((r-a)/6e4))}if(!t)return"";let a=Math.floor(t/60),r=t%60;return 0===r?"".concat(a,"h"):"".concat(a,"h ").concat(r,"m")}(C),$=function(e){let t=(e.type||"").trim(),a=e.tags||{},r=[];if(a.ac?r.push("AC"):a.non_ac&&r.push("Non-AC"),a.sleeper?r.push("Sleeper"):a.seater&&r.push("Seater"),!r.length)return t;let s=t.match(/(\d)\s*\+\s*(\d)/),n=r.join(" ");return s?"".concat(n," \xb7 ").concat(s[1],"+").concat(s[2]):n}(C),Q=[$,String(null!=(A=C.nmbr)?A:"").replace(/[\u0000-\u001F\u007F]+/g," ").replace(/\\[tnr]/g," ").replace(/\s+/g," ").replace(/[\s·,;|-]+$/,"").trim(),G].filter(Boolean),V=(0,s.useMemo)(()=>(function(e){let t=e.tags||{},a=[];return t.safety&&a.push({key:"safety",label:"Safety+",Icon:d.A,tone:"trust"}),(t.cancel||t.refund||t.reschedule)&&a.push({key:"cancel",label:"Free cancellation",Icon:d.A,tone:"trust"}),t.single_ladies&&a.push({key:"ladies",label:"Ladies Friendly",Icon:u.A,tone:"trust"}),t.live_tracking&&a.push({key:"tracking",label:"Live Tracking",Icon:m.A,tone:"feature"}),t.washroom&&a.push({key:"washroom",label:"Washroom",Icon:p.A,tone:"feature"}),a})(C),[C]),X=C.name||"Bus operator",Z=null==(c=C.seats)?void 0:c.avl_all,J="number"==typeof Z&&Z>0,ee=J&&Z<=5,et="number"==typeof C.rating&&C.rating>0?C.rating:null,ea=null==(x=C.boarding)?void 0:x[0],er=null==(S=C.dropping)?void 0:S[0],es=P.includes("best"),en=!es&&P.includes("cheapest"),el=!es&&P.includes("fastest"),ei=z&&null!=R,eo=function(){let[e,t]=(0,s.use
1State)(!1);return(0,s.useEffect)(()=>{let e=window.matchMedia("(max-width: 639px)"),a=()=>t(e.matches);return a(),e.addEventListener("change",a),()=>e.removeEventListener("change",a)},[]),e}(),ec=ei&&"seats"===R,eu=(eo||U)&&ec,em=(0,s.useCallback)(()=>null==I?void 0:I(C.id,null),[I,C.id]),[ep,ex]=(0,s.useState)("seats"),eh=(0,T.useBusStore)(e=>e.seats),eg=(0,s.useMemo)(()=>{if(!ec||!eh||0===eh.length)return;let e=F(eh,W);return e.length>0?e:void 0},[ec,eh,W]),ef=(0,s.useRef)(null),eb=(0,s.useRef)(null),ey=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!ei||eu)return;let e=requestAnimationFrame(()=>{var e,t,a;let r=ef.current;if(!r)return;let s=function(e){var t;let a=null!=(t=null==e?void 0:e.parentElement)?t:null;for(;a;){let{overflowY:e}=getComputedStyle(a);if(("auto"===e||"scroll"===e)&&a.scrollHeight>a.clientHeight)return a;a=a.parentElement}return null}(r),n=s?s.clientHeight:window.innerHeight;((null!=(t=null==(e=eb.current)?void 0:e.offsetHeight)?t:r.offsetHeight)+180<=n?r:null!=(a=ey.current)?a:r).scrollIntoView({behavior:"smooth",block:"start"})});return()=>cancelAnimationFrame(e)},[ei,eu,R]);let ew=(0,s.useCallback)(e=>{if(!I){(0,k.u)(N.s.Bus.CardClicked,{bus_id:C.id,tab:e,mode:"legacy"}),M(C);return}I(C.id,R===e?null:e)},[I,R,C,M]),ej=(0,s.useCallback)(()=>{if(!I){(0,k.u)(N.s.Bus.CardClicked,{bus_id:C.id,tab:"seats",mode:"legacy"}),M(C);return}I(C.id,"seats"===R?null:"seats")},[I,R,C,M]);return(0,r.jsxs)(i.P.div,{ref:ef,initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{type:"spring",stiffness:300,damping:25,delay:Math.min(.06*L,.5)},role:"listitem",className:"scroll-mt-24 lg:scroll-mt-2",children:[(0,r.jsxs)("div",{ref:eb,className:"\n relative w-full rounded-2xl border transition-all duration-300\n ".concat(ei?"rounded-b-none":"","\n ").concat(E?"bg-white border-2 border-emerald-400 shadow-[0_8px_32px_rgba(16,185,129,0.15)]":ei?"bg-white border border-[#6B30EA]/20 shadow-[0_12px_40px_rgba(107,48,234,0.1)]":"bg-white/80 backdrop-blur-sm border border-gray-100/80 shadow-[0_2px_8px_rgba(0,0,0,0.04)] hover:shadow-[0_12px_40px_rgba(0,0,0,0.08)] hover:border-gray-200","\n "),children:[(0,r.jsx)("div",{className:"pl-6 sm:pl-7 pt-5 sm:pt-6 pb-3 pr-5 sm:pr-7",children:(0,r.jsxs)("div",{className:"flex items-start justify-between gap-2 sm:gap-3",children:[(0,r.jsxs)("div",{className:"flex items-start gap-3 min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"w-14 h-14 sm:w-16 sm:h-16 shrink-0 flex items-start justify-center",children:(0,r.jsx)(eB.A,{name:X,logoUrl:C.logo_url,className:"w-12 h-12 sm:w-14 sm:h-14 rounded-2xl",textClassName:"text-[18px] sm:text-[20px]"})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("p",{className:"font-bold text-[15px] sm:text-[16px] text-gray-900 leading-snug break-words line-clamp-2 sm:line-clamp-none sm:truncate",children:X}),(0,r.jsx)("div",{className:"mt-0.5 flex flex-wrap items-center gap-x-1.5 gap-y-0.5 text-[12px] sm:text-[13px] leading-[1.45] text-gray-400",children:Q.map((e,t)=>(0,r.jsxs)("span",{className:"whitespace-nowrap",children:[e,t<Q.length-1&&(0,r.jsx)("span",{className:"text-gray-300 ml-1.5",children:"\xb7"})]},"".concat(e,"-").concat(t)))})]})]}),H&&!E&&(0,r.jsx)("div",{className:"shrink-0 mt-0.5","data-testid":"bus-card-offer-ribbon",title:"Standard fare ".concat((0,j.S)(H.marketTotal,W)," \xb7 NxVoy ").concat((0,j.S)(H.total,W)," â you pay below the standard fare"),children:(0,r.jsxs)("span",{className:"relative inline-flex items-center rounded-md rounded-l-sm bg-gradient-to-r from-amber-300 to-amber-400 px-2.5 py-1 text-[11px] font-extrabold tracking-tight text-amber-900 shadow-sm ring-1 ring-amber-500/30 whitespace-nowrap",children:[(0,r.jsx)("span",{className:"absolute -left-1 top-1/2 -translate-y-1/2 h-2 w-2 rotate-45 bg-amber-300 ring-1 ring-amber-500/30"}),(0,r.jsxs)("span",{className:"relative",children:[(0,r.jsx)("span",{className:"hidden sm:inline",children:"Exclusive "}),H.pct,"% OFF"]})]})}),E&&(0,r.jsx)(i.P.div,{initial:{scale:0},animate:{scale:1},transition:{type:"spring",stiffness:400,damping:15},className:"w-8 h-8 rounded-full bg-gradient-to-br from-emerald-400 to-emerald-500 flex items-center justify-center shadow-md ring-2 ring-emerald-200/60 shrink-0 mt-0.5",children:(0,r.jsx)(h.A,{className:"w-[18px] h-[18px] text-white",strokeWidth:3})})]})}),(0,r.jsx)("div",{className:"mx-5 sm:mx-6 mb-3 bg-gray-50/60 rounded-2xl border border-gray-100/50 px-5 sm:px-6 py-4 sm:py-5",children:(0,r.jsxs)("div",{className:"flex items-start gap-2 sm:gap-4",children:[(0,r.jsxs)("div",{className:"shrink-0 min-w-0 max-w-[36%]",children:[(0,r.jsx)("p",{className:"text-[22px] sm:text-[26px] font-extrabold text-gray-900 leading-none tabular-nums",children:K||"â"}),(null==ea?void 0:ea.name)&&(0,r.jsx)("p",{className:"text-[13px] sm:text-[15px] font-bold text-gray-800 mt-1.5 leading-tight truncate",children:ea.name}),(null==ea?void 0:ea.location)&&ea.location!==ea.name&&(0,r.jsx)("p",{className:"text-[10px] sm:text-[11px] font-medium text-gray-400 tracking-wide truncate",children:ea.location})]}),(0,r.jsxs)("div",{className:"flex-1 min-w-0 pt-1.5",children:[(0,r.jsxs)("div",{className:"flex items-center justify-center mb-2",children:[(0,r.jsx)(g.A,{className:"w-3.5 h-3.5 text-gray-400 shrink-0 mr-1.5"}),(0,r.jsx)("span",{className:"text-[12px] sm:text-[13px] text-gray-500 font-semibold whitespace-nowrap",children:q||"â"})]}),(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("div",{className:"w-2.5 h-2.5 rounded-full bg-gray-300"}),(0,r.jsx)("div",{className:"flex-1 border-t-2 border-dashed border-gray-200 mx-1.5 relative",children:(0,r.jsx)(f.A,{className:"w-4 h-4 text-[#6B30EA] absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-gray-50/60"})}),(0,r.jsx)("div",{className:"w-2.5 h-2.5 rounded-full bg-gray-300"})]}),(0,r.jsx)("div",{className:"text-center mt-2",children:C.next_day?(0,r.jsxs)("p",{className:"inline-flex items-center gap-1 text-[12px] sm:text-[13px] text-amber-600 font-semibold",children:[(0,r.jsx)(b.A,{className:"w-3 h-3"}),"Arrives next day"]}):(0,r.jsx)("p",{className:"text-[12px] sm:text-[13px] font-bold text-emerald-600",children:"Direct"})})]}),(0,r.jsxs)("div",{className:"shrink-0 min-w-0 max-w-[36%] text-right",children:[(0,r.jsx)("p",{className:"text-[22px] sm:text-[26px] font-extrabold text-gray-900 leading-none tabular-nums",children:Y||"â"}),(null==er?void 0:er.name)&&(0,r.jsx)("p",{className:"text-[13px] sm:text-[15px] font-bold text-gray-800 mt-1.5 leading-tight truncate",children:er.name}),(null==er?void 0:er.location)&&er.location!==er.name&&(0,r.jsx)("p",{className:"text-[10px] sm:text-[11px] font-medium text-gray-400 tracking-wide truncate",children:er.location})]})]})}),(0,r.jsxs)("div",{className:"px-6 sm:px-7 pb-5 flex items-start justify-between gap-3 sm:gap-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-wrap min-w-0 flex-1",children:[es&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5 pl-1 pr-2.5 py-0.5 rounded-full bg-gradient-to-r from-[#6B30EA] to-[#EC0FAC] shadow-[0_2px_8px_-2px_rgba(107,48,234,0.5)] ring-1 ring-white/20",title:"Shasa recommends this bus based on price, duration, and rating",children:[(0,r.jsx)("span",{className:"w-[18px] h-[18px] rounded-full bg-white/15 ring-1 ring-white/30 flex items-center justify-center overflow-hidden",children:(0,r.jsx)("img",{src:"https://static.nxvoy.ai/nxvoy-travel-agent-holidayPlanner/chatPage/Logo.svg",alt:"",className:"w-[11
1px] h-[11px] drop-shadow-sm"})}),(0,r.jsx)("span",{className:"text-[10px] font-extrabold text-white tracking-wide",children:"Shasa Pick"})]}),en&&(0,r.jsx)("span",{className:"px-2.5 py-1 text-[11px] font-bold rounded-full border bg-emerald-50 border-emerald-200 text-emerald-700",children:"Cheapest"}),el&&(0,r.jsx)("span",{className:"px-2.5 py-1 text-[11px] font-bold rounded-full border bg-blue-50 border-blue-200 text-blue-700",children:"Fastest"}),null!=et&&(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 px-2.5 py-1 rounded-full bg-emerald-50 border border-emerald-100 text-[11px] font-bold text-emerald-700",children:[(0,r.jsx)(y.A,{className:"w-3 h-3 fill-emerald-500 text-emerald-500"}),et.toFixed(1)]}),V.slice(0,6).map(e=>(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-lg text-[11px] font-medium border ".concat("trust"===e.tone?"bg-emerald-50 border-emerald-100 text-emerald-700":"bg-gray-50 border-gray-100 text-gray-500"),children:[(0,r.jsx)(e.Icon,{className:"w-3.5 h-3.5"}),e.label]},e.key)),ee?(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 px-2.5 py-1 text-[11px] font-bold rounded-full border bg-rose-50 border-rose-200 text-rose-600",children:["Only ",Z," seat",Z>1?"s":""," left"]}):J?(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 px-2.5 py-1 text-[11px] font-semibold rounded-full border bg-gray-50 border-gray-200 text-gray-600",children:[Z," seats available"]}):null]}),(0,r.jsx)("div",{className:"shrink-0",children:(0,r.jsx)(_,{bus:C,currency:W,tiers:eg,size:"sm"})})]}),(0,r.jsx)("div",{className:"px-5 sm:px-6 pb-4 sm:pb-5",children:(0,r.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2.5",children:[(0,r.jsx)("div",{className:"flex items-stretch gap-1 bg-gray-100/70 rounded-xl p-1 flex-1 min-w-0 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:eE.map(e=>{let t=ei&&R===e.id;return(0,r.jsxs)("button",{type:"button",onClick:()=>ew(e.id),"aria-expanded":t,className:"shrink-0 sm:flex-1 sm:min-w-0 inline-flex items-center justify-center gap-1.5 px-3 sm:px-2.5 py-2 min-h-[44px] rounded-lg text-[12px] font-bold transition-all ".concat(t?"bg-white text-[#6B30EA] shadow-sm":"text-gray-600 hover:text-gray-900"),children:[(0,r.jsx)(e.Icon,{className:"w-3.5 h-3.5 shrink-0"}),(0,r.jsx)("span",{className:"whitespace-nowrap sm:truncate",children:e.label})]},e.id)})}),(0,r.jsxs)("button",{type:"button",onClick:ej,className:"inline-flex items-center justify-center gap-1.5 px-5 py-2.5 min-h-[44px] rounded-xl text-[13px] font-bold whitespace-nowrap transition-all shrink-0 ".concat(ei&&"seats"===R?"bg-gray-100 text-gray-700 hover:bg-gray-200":"bg-gradient-to-r from-[#6B30EA] to-[#EC0FAC] text-white shadow-md hover:shadow-lg hover:scale-[1.02] active:scale-[0.98]"),children:[(0,r.jsx)(v.A,{className:"w-4 h-4 shrink-0"}),ei&&"seats"===R?"Hide Seats":"Select Seats",(0,r.jsx)(w.A,{className:"w-4 h-4 transition-transform duration-200 ".concat(ei&&"seats"===R?"rotate-180":"")})]})]})})]}),(0,r.jsx)(l.N,{initial:!1,children:ei&&!eu&&(0,r.jsxs)(i.P.div,{ref:ey,initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{type:"spring",stiffness:280,damping:30},className:"overflow-hidden rounded-b-2xl border border-t-0 border-[#6B30EA]/20 bg-white shadow-[0_12px_40px_rgba(107,48,234,0.08)]",children:["seats"===R&&(0,r.jsx)(ed,{bus:C,currency:W,traceId:D,onSubStepChange:ex}),"amenities"===R&&(0,r.jsx)(ev,{bus:C}),"policy"===R&&(0,r.jsx)(eC,{bus:C})]},R)}),z&&(0,r.jsx)(e_,{open:eu,title:"points"===ep?"Select boarding & dropping":"Select your seats",subtitle:[X,$].filter(Boolean).join(" \xb7 "),onClose:em,children:eu&&(0,r.jsx)(ed,{bus:C,currency:W,traceId:D,onSubStepChange:ex})})]})}},55849:(e,t,a)=>{a.d(t,{z:()=>r});function r(e){if(!e)return"";let t=String(e).trim(),a=t.match(/^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})/);if(a){let e=new Date(+a[1],a[2]-1,+a[3],+a[4],+a[5]);if(!Number.isNaN(e.getTime())){let t=e.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit"}),a=e.toLocaleDateString("en-GB",{day:"numeric",month:"short"});return"".concat(t," \xb7 ").concat(a)}}let r=t.match(/^(\d{1,2}):(\d{2})/);if(r){let e=+r[1];return"".concat((e+11)%12+1,":").concat(r[2]," ").concat(e>=12?"PM":"AM")}return t}},74826:(e,t,a)=>{a.d(t,{P:()=>s,S:()=>n});var r=a(53542);function s(e,t){if("number"!=typeof e||Number.isNaN(e)||"number"!=typeof t||Number.isNaN(t)||t<=e)return null;let a=t-e,r=t>0?Math.round(a/t*100):0;return r<1||a<.01?null:{marketTotal:t,total:e,savings:a,pct:r}}function n(e,t){let a=Number(e);if(!Number.isFinite(a))return"â";
1let s=a.toLocaleString("en-IN",{minimumFractionDigits:0,maximumFractionDigits:2});return"".concat((0,r.Qn)(t)).concat(s)}},99106:(e,t,a)=>{a.d(t,{A:()=>d});var r=a(95155),s=a(12115);let n=(a(95704).env.NEXT_PUBLIC_BUS_OPERATOR_LOGO_BASE||"https://storage.googleapis.com/nxvoy-logos/bus_operator_logos").replace(/\/+$/,""),l=[{key:"kkrtc-nekrtc",displayName:"KKRTC / NEKRTC (Kalyana Karnataka Road Transport Corporation)",file:"kkrtc-nekrtc.png",match:["kkrtcnekrtckalyanakarnatakaroadtransportcorporation","kalyanakarnatakaroadtransportcorporation","northeasternkarnatakartc","nekrtcgulbarga","nekrtc","kkrtc"]},{key:"jksrtc",displayName:"JKSRTC (Jammu & Kashmir State Road Transport Corporation)",file:"jksrtc.png",match:["jksrtcjammukashmirstateroadtransportcorporation","jammuandkashmirstateroadtransportcorporation","jksrtc","jkrtc"]},{key:"tgsrtc",displayName:"TGSRTC (Telangana State Road Transport Corporation)",file:"tgsrtc.webp",match:["tgsrtctelanganastateroadtransportcorporation","telanganastateroadtransportcorporation","telanganartc","tgsrtc","tsrtc"]},{key:"ksrtc",displayName:"KSRTC (Karnataka State Road Transport Corporation)",file:"ksrtc.png",match:["ksrtckarnatakastateroadtransportcorporation","karnatakastateroadtransportcorporation","ksrtckarnataka","karnatakartc","ksrtc"]},{key:"gsrtc",displayName:"GSRTC (Gujarat State Road Transport Corporation)",file:"gsrtc.png",match:["gsrtcgujaratstateroadtransportcorporation","gujaratstateroadtransportcorporation","gujaratst","stnigam","gsrtc"]},{key:"ktcl-kadamba",displayName:"KTCL Kadamba (Kadamba Transport Corporation, Goa)",file:"ktcl-kadamba.png",match:["ktclkadambakadambatransportcorporationgoa","kadambatransportcorporation","kadambagoa","kadamba","ktclgoa","ktcl"]},{key:"tnstc",displayName:"TNSTC (Tamil Nadu State Transport Corporation)",file:"tnstc.png",match:["tnstctamilnadustatetransportcorporation","tamilnadustatetransportcorporation","tnstatetransport","tnstconline","tnstc"]},{key:"hrtc",displayName:"HRTC (Himachal Road Transport Corporation)",file:"hrtc.png",match:["hrtchimachalroadtransportcorporation","himachalroadtransportcorporation","himachalpradeshrtc","hrtchp","hrtc"]},{key:"utc",displayName:"UTC (Uttarakhand Transport Corporation)",file:"utc.png",match:["utcuttarakhandtransportcorporation","uttarakhandtransportcorporation","uttarakhandroadways","utconline","utc"]},{key:"prtc-pepsu",displayName:"PRTC / PEPSU Road Transport Corporation",file:"prtc-pepsu.png",match:["prtcpepsuroadtransportcorporation","pepsuroadtransportcorporation","prtcpatiala","pepsu","prtc"]},{key:"haryana-roadways",displayName:"Haryana Roadways",file:"haryana-roadways.png",match:["departmentofstatetransportharyana","haryanastatetransport","haryanaroadways","hrroadways","haryana"]},{key:"ctu",displayName:"CTU (Chandigarh Transport Undertaking)",file:"ctu.png",match:["ctuchandigarhtransportundertaking","chandigarhtransportundertaking","ctuchandigarh","ctumusafir","ctu"]},{key:"chartered-speed",displayName:"Chartered Speed (Chartered Bus)",file:"chartered-speed.png",match:["charteredspeedcharteredbus","charteredspeedlimited","charteredbus","chartered"]},{key:"shrinath",displayName:"Shrinath Travel Agency",file:"shrinath.jpg",match:["shrinathtravelagencypvtltd","shrinathtravelagency","shrinathsolitaire","shrinathtravels","shrinath"]},{key:"intrcity-smartbus",displayName:"IntrCity SmartBus",file:"intrcity-smartbus.png",match:["intrcitysmartbusrailyatri","intrcitysmartbus","smartbus","intrcity"]},{key:"sri-krishna",displayName:"Sri Krishna Travels",file:"sri-krishna.png",match:["srikrishnatoursandtravels","srikrishnatravels","srikrishna"]},{key:"saini",displayName:"Saini Travels Pvt. Ltd.",file:"saini.png",match:["sainitravelsmercedesbenz","sainitravelsnagpur","sainitravelspvtltd","sainitravels","saini"]},{key:"sugama",displayName:"Sugama Tourists",file:"sugama.jpg",match:["ananthapadmanabhamotors","sugamatourists","sugamatourist","sugamatravels","sugama"]},{key:"punbus-punjab-roadways",displayName:"PUNBUS / Punjab Roadways",file:"punbus-punjab-roadways.png",match:["punjabroadwaysandpunbus","punbuspunjabroadways","punjabroadways","punbusonline","punbus"]},{key:"mahalaxmi",displayName:"Mahalaxmi Travels",file:"mahalaxmi.png",match:["mahalaxmitravelsmumbai","shreemahalaxmitravels","mahalaxmibusservice","mahalaxmitravels","mahalaxmi"]},{key:"dolphin",displayName:"Dolphin Travels",file:"dolphin.png",match:["dolphintoursandtravels","newdolphintravels","dolphintravels","dolphinbus","dolphin"]},{key:"orange",displayName:"Orange Tours & Travels",file:"orange.png",match:["orangetoursandtravels","orangetourstravels","orangetravels","orange"]},{key:"khurana",displayName:"Khurana Travels",file:"khurana.png",match:["shabrijkhuranatravels","khuranatravelservices","shreekhuranatravels","khuranatravels","khurana"]},{key:"neeta",displayName:"Neeta Travels",file:"neeta.png",match:["neetatoursandtravels","neetatravels","neetavolvo","neetabus","neeta"]},{key:"raj-ratan",displayName:"Raj Ratan Tours & Travels",file:"raj-ratan.png",match:["rajratantourstravels","rajratantravels","rajratan"]},{key:"patel",displayName:"Patel Tours & Travels",file:"patel.png",match:["pateltoursandtravels","pateltourstravels","pateltravelssurat","pateltravels","patel","ptt"]},{key:"eagle",displayName:"Eagle Travels",file:"eagle.png",match:["eagletravelsgujarat","eagletravels","eagleexpress","eagle"]},{key:"hans",displayName:"Hans Travels",file:"hans.jpg",match:["hanstourandtravels","hanstravelsipvtltd","hanstravels","hans"]},{key:"bsr",displayName:"BSR Tours and Travels",file:"bsr.png",match:["bsrtoursandtravels","bsrtourstravels","bsrtravels","bsr"]},{key:"vrl",displayName:"VRL Travels",file:"vrl.png",match:["vijayanandtravels","vrllogistics","vrltravels","vrlbus","vrl"]},{key:"jain",displayName:"Jain Travels Regd.",file:"jain.jpg",match:["jaintravelsgudia","jaintravelsregd","jaintravels","jain"]},{key:"bedi",displayName:"Bedi Travels",file:"bedi.png",match:["beditravelsdelhi","beditravels","bedi"]},{key:"kpn",displayName:"KPN Travels",file:"kpn.png",match:["kpntravelsindia","kpntravels","kpn"]},{key:"sea-bird",displayName:"Sea Bird Tourists",file:"sea-bird.png",match:["seabirdtourists","seabirdtravels","seabird"]},{key:"parveen",displayName:"Parveen Travels",file:"parveen.png",match:["parweentravels","parveentravels","parveen"]},{key:"zingbus",displayName:"Zingbus",file:"zingbus.svg",match:["zingbusplus","zingbus"]},{key:"ybm",displayName:"YBM Travels",file:"ybm.png",match:["ybmtravels","ybm"]},{key:"flixbus",displayName:"FlixBus",file:"flixbus.png",match:["flixbus","flix"],darkTile:!0},{key:"yolobus",displayName:"YoloBus",file:"yolobus.svg",match:["yolobus","yolo"]},{key:"nuego",displayName:"NueGo",file:"nuego.svg",match:["nuego"]}];function i(e){return"".concat(e,"?v=").concat("1")}function o(e){var t;let a=(e||"").toLowerCase().replace(/[^a-z0-9]+/g,"");return a&&null!=(t=l.find(e=>e.match.some(e=>a.includes(e))))?t:null}i("".concat(n,"/").concat("default-bus-operator.svg")),Object.fromEntries(l.map(e=>[e.key,{name:e.displayName,logoUrl:i("".concat(n,"/").concat(e.file))}
1]));let c=["from-[#6B30EA] to-[#EC0FAC]","from-indigo-600 to-violet-600","from-violet-600 to-fuchsia-500","from-purple-600 to-indigo-500","from-[#7C3AED] to-[#DB2777]","from-blue-600 to-violet-600"];function d(e){let{name:t,logoUrl:a,className:l="w-12 h-12 rounded-2xl",textClassName:d="text-[18px]",imgClassName:u="p-1.5"}=e,m=a||function(e){let t=o(e);return t?i("".concat(n,"/").concat(t.file)):null}(t),[p,x]=(0,s.useState)(!1);if(m&&!p){var h;let e=(null==(h=o(t))?void 0:h.darkTile)===!0;return(0,r.jsx)("div",{className:"shrink-0 overflow-hidden shadow-sm flex items-center justify-center ring-1 ".concat(e?"bg-[#0F172B] ring-black/10":"bg-white ring-black/5"," ").concat(l),children:(0,r.jsx)("img",{src:m,alt:t||"Bus operator",loading:"lazy",onError:()=>x(!0),className:"w-full h-full object-contain ".concat(u)})})}let g=c[Array.from(t||"").reduce((e,t)=>(31*e+t.charCodeAt(0))%0x3b9aca07,0)%c.length];return(0,r.jsx)("div",{className:"shrink-0 bg-gradient-to-br ".concat(g," flex items-center justify-center text-white font-extrabold tracking-tight shadow-md ring-1 ring-white/20 ").concat(l," ").concat(d),role:"img","aria-label":t||"Bus operator",children:function(e){let t=(e||"").trim();if(!t)return"B";let a=t.split(/\s+/).filter(Boolean);return 1===a.length?a[0].slice(0,2).toUpperCase():(a[0][0]+a[1][0]).toUpperCase()}(t)})}}}]);
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.