1import"../chunks/Bzak7iHL.js";import{p as ha,s as x,o as Ve,x as l,w as r,v as a,z as t,h as e,t as S,a as u,A as P,c as va,f as _e,C as Pe,q as ya,y as p,d as Zt,ax as ia,B as Na}from"../chunks/QWGH_Vqv.js";import{s as m}from"../chunks/D34mFCWd.js";import{i as g}from"../chunks/DYDo2J5T.js";import{e as kt,i as jt}from"../chunks/Cp_G1qXa.js";import{c as Xt}from"../chunks/DFQrHiwB.js";import{a as xa}from"../chunks/DMTy2Buu.js";import{s as Rt,b as Ca,a as Ce,r as _t,d as oa,g as za}from"../chunks/n1SVnzFV.js";import{d as wa,a as M}from"../chunks/Co4qpSy7.js";import{b as Ge}from"../chunks/fnt3Fi8D.js";import{o as Aa}from"../chunks/OkQ_WV0O.js";import{s as Ke,r as Ze,p as Lt}from"../chunks/BCbEHqf-.js";import{a as St}from"../chunks/RImBt0qW.js";import{d as Ia,c as Ea}from"../chunks/DWelrVt5.js";import{s as Ta,S as ca,G as Oa}from"../chunks/Br92e4Cv.js";import{I as Je}from"../chunks/BJUlk8IY.js";import{S as ua}from"../chunks/BnuOUs30.js";import{T as Pa}from"../chunks/DUihoX9F.js";import{M as La}from"../chunks/CV-RSRuv.js";import{U as Yt}from"../chunks/BIDGyAok.js";import{C as Ht}from"../chunks/CVVzpwc1.js";import{M as Da}from"../chunks/DiDSbIf2.js";import{M as _a}from"../chunks/D7NY8f5E.js";import{H as Ra}from"../chunks/BKhxWjGk.js";import{p as ja}from"../chunks/BNHejioZ.js";import{d as Ha}from"../chunks/DALlW-Uw.js";import{getSupabase as Dt}from"../chunks/bop2Gos8.js";import{e as Me}from"../chunks/CPP3GVaz.js";import{t as Ne}from"../chunks/Bd7OgdHJ.js";import{c as Ua}from"../chunks/DBJ35AVR.js";import"../chunks/BMK9b5ZS.js";import{S as Fa}from"../chunks/BJybyxAR.js";import{P as qa}from"../chunks/BVciiZKt.js";import{S as da}from"../chunks/D1lEdqwg.js";import{X as Jt}from"../chunks/Dyh_twES.js";import{C as Wa}from"../chunks/EMuOQlmk.js";import{W as pa}from"../chunks/DgyUEQpT.js";import{C as Ba}from"../chunks/BcymwcBs.js";import{E as Ga}from"../chunks/Q6itLKn-.js";import{F as Va}from"../chunks/CDoLQDF4.js";var Ka=new Set(["$$slots","$$events","$$legacy"]);function Za(U,i){let h=Ze(i,Ka);const T=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5"}],["path",{d:"M12 18v-6"}],["path",{d:"m9 15 3 3 3-3"}]];Je(U,Ke({name:"file-down"},()=>h,{get iconNode(){return T}}))}var Ja=new Set(["$$slots","$$events","$$legacy"]);function Sa(U,i){let h=Ze(i,Ja);const T=[["path",{d:"M12 2v8"}],["path",{d:"m4.93 10.93 1.41 1.41"}],["path",{d:"M2 18h2"}],["path",{d:"M20 18h2"}],["path",{d:"m19.07 10.93-1.41 1.41"}],["path",{d:"M22 22H2"}],["path",{d:"m8 6 4-4 4 4"}],["path",{d:"M16 18a4 4 0 0 0-8 0"}]];Je(U,Ke({name:"sunrise"},()=>h,{get iconNode(){return T}}))}var Xa=new Set(["$$slots","$$events","$$legacy"]);function ka(U,i){let h=Ze(i,Xa);const T=[["path",{d:"M12 10V2"}],["path",{d:"m4.93 10.93 1.41 1.41"}],["path",{d:"M2 18h2"}],["path",{d:"M20 18h2"}],["path",{d:"m19.07 10.93-1.41 1.41"}],["path",{d:"M22 22H2"}],["path",{d:"m16 6-4 4-4-4"}],["path",{d:"M16 18a4 4 0 0 0-8 0"}]];Je(U,Ke({name:"sunset"},()=>h,{get iconNode(){return T}}))}var Ya=new Set(["$$slots","$$events","$$legacy"]);function fa(U,i){let h=Ze(i,Ya);const T=[["path",{d:"M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z"}],["path",{d:"M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97"}]];Je(U,Ke({name:"droplets"},()=>h,{get iconNode(){return T}}))}var Qa=new Set(["$$slots","$$events","$$legacy"]);function ba(U,i){let h=Ze(i,Qa);const T=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"}]];Je(U,Ke({name:"cloud"},()=>h,{get iconNode(){return T}}))}var $a=new Set(["$$slots","$$events","$$legacy"]);function er(U,i){let h=Ze(i,$a);const T=[["path",{d:"M12 2v2"}],["path",{d:"m4.93 4.93 1.41 1.41"}],["path",{d:"M20 12h2"}],["path",{d:"m19.07 4.93-1.41 1.41"}],["path",{d:"M15.947 12.65a4 4 0 0 0-5.925-4.128"}],["path",{d:"M13 22H7a5 5 0 1 1 4.9-6H13a3 3 0 0 1 0 6Z"}]];Je(U,Ke({name:"cloud-sun"},()=>h,{get iconNode(){return T}}))}var tr=new Set(["$$slots","$$events","$$legacy"]);function ar(U,i){let h=Ze(i,tr);const T=[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"}],["path",{d:"M16 17H7"}],["path",{d:"M17 21H9"}]];Je(U,Ke({name:"cloud-fog"},()=>h,{get iconNode(){return T}}))}var rr=new Set(["$$slots","$$events","$$legacy"]);function ga(U,i){let h=Ze(i,rr);const T=[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"}],["path",{d:"M16 14v6"}],["path",{d:"M8 14v6"}],["path",{d:"M12 16v6"}]];Je(U,Ke({name:"cloud-rain"},()=>h,{get iconNode(){return T}}))}var nr=new Set(["$$slots","$$events","$$legacy"]);function ma(U,i){let h=Ze(i,nr);const T=[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"}],["path",{d:"M8 15h.01"}],["path",{d:"M8 19h.01"}],["path",{d:"M12 17h.01"}],["path",{d:"M12 21h.01"}],["path",{d:"M16 15h.01"}],["path",{d:"M16 19h.01"}]];Je(U,Ke({name:"cloud-snow"},()=>h,{get iconNode(){return T}}))}var sr=new Set(["$$slots","$$events","$$legacy"]);function lr(U,i){let h=Ze(i,sr);const T=[["path",{d:"M6 16.326A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 .5 8.973"}],["path",{d:"m13 12-3 5h4l-3 5"}]];Je(U,Ke({name:"cloud-lightning"},()=>h,{get iconNode(){return T}}))}var ir=p('<a class="day-edit-btn ics-export-btn svelte-1ha7p1f" title="Export to Calendar (.ics)" aria-label="Export itinerary to calendar" download=""><!></a>'),or=p('<button class="day-edit-btn svelte-1ha7p1f" aria-label="Edit day"><!></button>'),dr=p('<span class="di-sep svelte-1ha7p1f">â</span><span class="di-value svelte-1ha7p1f"> </span>',1),vr=p('<div><span class="di-label svelte-1ha7p1f"> </span> <!></div>'),cr=p("<div></div>"),ur=p('<div class="wx-strip svelte-1ha7p1f"><span class="wx-icon svelte-1ha7p1f"><!></span> <span class="wx-temps svelte-1ha7p1f"> </span> <span class="wx-sep svelte-1ha7p1f">·</span> <span class="wx-precip svelte-1ha7p1f"><!> </span></div>'),_r=p('<div class="tl-weather svelte-1ha7p1f"><span class="tl-wx-temp svelte-1ha7p1f"> </span> <span class="tl-wx-precip svelte-1ha7p1f"><!> </span></div>'),pr=p('<div class="tl-line svelte-1ha7p1f"></div>'),fr=p('<span class="now-badge svelte-1ha7p1f">
1NOW</span>'),br=p('<button type="button" aria-label="More actions">···</button>'),gr=p('<button type="button" class="drag-handle tl-act-btn svelte-1ha7p1f" aria-label="Drag to reorder" title="Reorder"><!></button>'),mr=p('<div class="tl-more-row svelte-1ha7p1f"><button type="button" class="tl-act-btn svelte-1ha7p1f"><!> Edit</button> <button type="button" class="tl-act-btn tl-act-danger svelte-1ha7p1f" aria-label="Delete"><!> Delete</button> <!></div>'),hr=p('<a class="tl-location svelte-1ha7p1f" target="_blank" rel="noopener noreferrer"><!> </a>'),yr=p('<p class="tl-desc svelte-1ha7p1f"> </p>'),xr=p('<div class="tl-meta svelte-1ha7p1f"><!> <!></div>'),wr=p('<div class="tl-actions-strip svelte-1ha7p1f"><button type="button" aria-label="Nearby places"><!> <span class="tl-strip-label svelte-1ha7p1f">Nearby</span></button></div>'),Ir=p('<div class="tl-nearby-loading svelte-1ha7p1f">Looking up placesâ¦</div>'),Dr=p('<a class="tl-place-card svelte-1ha7p1f" target="_blank" rel="noopener noreferrer"><span class="tl-place-emoji svelte-1ha7p1f"> </span> <span class="tl-place-name svelte-1ha7p1f"> </span> <span class="tl-place-dist svelte-1ha7p1f"> </span></a>'),Sr=p('<div class="tl-nearby-scroll svelte-1ha7p1f"></div>'),kr=p('<div class="tl-nearby-loading svelte-1ha7p1f">No places found nearby.</div>'),Mr=p('<div class="tl-nearby-panel svelte-1ha7p1f"><!></div>'),Nr=p('<div class="tl-row stagger-item svelte-1ha7p1f" data-testid="itinerary-item"><div class="tl-spine svelte-1ha7p1f"><div><!> </div> <!> <div class="tl-node svelte-1ha7p1f"><div></div> <!></div></div> <div><div class="tl-top svelte-1ha7p1f"><button type="button" class="tl-title-btn svelte-1ha7p1f"> </button> <div class="tl-top-right svelte-1ha7p1f"><!> <span> </span> <!></div></div> <!> <!> <!> <!></div></div>'),Cr=p('<div class="card svelte-1ha7p1f"><div class="card-header svelte-1ha7p1f"> <span> </span> <!> <!></div> <!> <!> <div class="timeline svelte-1ha7p1f"></div></div>');function zr(U,i){ha(i,!0);let h=Lt(i,"weather",19,()=>({})),T=Lt(i,"dayWeather",3,void 0),pt=Lt(i,"isEditor",3,!1),mt=Lt(i,"icsUrl",3,void 0),Ut=Lt(i,"onViewDetail",3,void 0),st=x(null);function ye(o){l(st,e(st)===o?null:o,!0)}function Ft(o){if(!o)return 12;const d=o.toLowerCase(),k={morning:9,afternoon:14,evening:18,night:20,midday:12,noon:12,lunch:13,dinner:19};if(k[d]!==void 0)return k[d];const z=o.match(/^(\d{1,2}):(\d{2})/);return z?parseInt(z[1]):12}function Mt(o){if(!o.date||!h()||Object.keys(h()).length===0)return null;const d=String(o.date).slice(0,10),k=Ft(o.start_time),z=`${d}T${String(k).padStart(2,"0")}:00`;return h()[z]??null}function qt(o){return o.cost_type==="free"?"Free":o.cost_type==="included"?"Included":o.cost_type==="optional"?"Optional":o.cost_amount==null?"â":Ia(o.cost_amount,o.cost_currency??"NOK",St.currency)}function Qt(o){return o?{morning:{icon:Sa,label:"AM"},afternoon:{icon:ca,label:"PM"},evening:{icon:ka,label:"Eve"},night:{icon:Da,label:"Night"},midday:{icon:Ht,label:"Noon"},noon:{icon:Ht,label:"Noon"},lunch:{icon:Yt,label:"Lunch"},dinner:{icon:Yt,label:"Dinner"}}[o.toLowerCase()]??{icon:null,label:o}:{icon:null,label:"â"}}function Wt(o){return`https://www.google.com/maps/dir/?api=1&destination=${encodeURIComponent(o)}&travelmode=walking`}let W=x(Ve(new Date().getHours())),Bt=x(Ve(new Date().toISOString().slice(0,10)));Aa(()=>{const o=setInterval(()=>{const d=new Date;l(W,d.getHours(),!0),l(Bt,d.toISOString().slice(0,10),!0)},6e4);return()=>clearInterval(o)});function Nt(){const o=i.items.filter(z=>String(z.date).slice(0,10)===e(Bt));if(!o.length)return null;let d=null,k=-1;for(const z of o){const B=Ft(z.start_time);B<=e(W)&&B>k&&(k=B,d=z.id)}return d}let de=x(Ve({})),lt=x(null);async function $t(o){if(e(lt)===o.id){l(lt,null);return}if(l(lt,o.id,!0),!e(de)[o.id]){l(de,{...e(de),[o.id]:"loading"},!0);try{const d=encodeURIComponent(o.location),k=await fetch(`/api/places?location=${d}&category=all`);if(!k.ok){console.warn(`[nearby] API returned ${k.status} for "${o.location}"`),l(de,{...e(de),[o.id]:[]},!0);return}const z=await k.json();z.reason&&console.info(`[nearby] "${o.location}" â reason: ${z.reason}`),l(de,{...e(de),[o.id]:z.places??[]},!0)}catch(d){console.warn("[nearby] fetch error:",d),l(de,{...e(de),[o.id]:[]},!0)}}}function Gt(o){return o<1e3?`${o}
1m`:`${(o/1e3).toFixed(1)}km`}function ht(o){return o===0?ca:o<=2?er:o===3?ba:o>=45&&o<=48?ar:o>=51&&o<=67?ga:o>=71&&o<=77?ma:o>=80&&o<=82?ga:o>=85&&o<=86?ma:o>=95&&o<=99?lr:ba}var we=Cr(),Xe=r(we),Ie=r(Xe),De=a(Ie),Le=r(De,!0);t(De);var Ye=a(De,2);{var it=o=>{var d=ir(),k=r(d);Za(k,{size:14}),t(d),S(()=>Rt(d,"href",mt())),u(o,d)};g(Ye,o=>{mt()&&o(it)})}var ot=a(Ye,2);{var Se=o=>{var d=or(),k=r(d);ua(k,{size:14}),t(d),M("click",d,function(...z){var B;(B=i.onEditDay)==null||B.apply(this,z)}),u(o,d)};g(ot,o=>{pt()&&i.onEditDay&&o(Se)})}t(Xe);var dt=a(Xe,2);{var pe=o=>{const d=P(()=>i.infoText.split("|").map(z=>z.replace(/ /g," ").replace(/\s+/g," ").trim()).filter(Boolean));var k=cr();kt(k,21,()=>e(d),jt,(z,B,ze)=>{const ve=P(()=>e(B).indexOf(":")),ie=P(()=>e(ve)>=0?e(B).slice(0,e(ve)).trim():e(B).trim()),fe=P(()=>e(ve)>=0?e(B).slice(e(ve)+1).trim():"");var be=vr();Ce(be,1,`day-info-row ${ze===0?"first":""}`,"svelte-1ha7p1f");var ge=r(be),je=r(ge,!0);t(ge);var Qe=a(ge,2);{var ct=Ae=>{var He=dr(),ft=a(_e(He)),ut=r(ft,!0);t(ft),S(()=>m(ut,e(fe))),u(Ae,He)};g(Qe,Ae=>{e(fe)&&Ae(ct)})}t(be),S(()=>m(je,e(ie))),u(z,be)}),t(k),S(()=>Ce(k,1,`day-info-card ${i.infoClass??""}`,"svelte-1ha7p1f")),u(o,k)};g(dt,o=>{i.infoText&&o(pe)})}var vt=a(dt,2);{var le=o=>{const d=P(()=>ht(T().weatherCode));var k=ur(),z=r(k),B=r(z);Xt(B,()=>e(d),(ge,je)=>{je(ge,{size:15})}),t(z);var ze=a(z,2),ve=r(ze);t(ze);var ie=a(ze,4),fe=r(ie);fa(fe,{size:12});var be=a(fe);t(ie),t(k),S(()=>{m(ve,`${T().high??""}° / ${T().low??""}°`),m(be,` ${T().precipProb??""}%`)}),u(o,k)};g(vt,o=>{T()&&o(le)})}var Re=a(vt,2);kt(Re,23,()=>i.items,o=>o.id,(o,d,k)=>{const z=P(()=>Nt()===e(d).id),B=P(()=>Qt(e(d).start_time)),ze=P(()=>Mt(e(d)));var ve=Nr(),ie=r(ve),fe=r(ie),be=r(fe);{var ge=y=>{var N=va(),G=_e(N);Xt(G,()=>e(B).icon,(xe,ce)=>{ce(xe,{size:11})}),u(y,N)};g(be,y=>{e(B).icon&&y(ge)})}var je=a(be,1,!0);t(fe);var Qe=a(fe,2);{var ct=y=>{var N=_r(),G=r(N),xe=r(G);t(G);var ce=a(G,2),Ee=r(ce);fa(Ee,{size:10});var ue=a(Ee);t(ce),t(N),S(()=>{m(xe,`${e(ze).temp??""}°`),m(ue,` ${e(ze).precipProb??""}%`)}),u(y,N)};g(Qe,y=>{e(ze)&&y(ct)})}var Ae=a(Qe,2),He=r(Ae),ft=a(He,2);{var ut=y=>{var N=pr();u(y,N)};g(ft,y=>{e(k)<i.items.length-1&&y(ut)})}t(Ae),t(ie);var $e=a(ie,2),Ct=r($e),et=r(Ct),ea=r(et,!0);t(et);var Vt=a(et,2),zt=r(Vt);{var yt=y=>{var N=fr();u(y,N)};g(zt,y=>{e(z)&&y(yt)})}var xt=a(zt,2),ta=r(xt,!0);t(xt);var aa=a(xt,2);{var ra=y=>{var N=br();S(()=>Ce(N,1,`tl-more-btn ${e(st)===e(d).id?"open":""}`,"svelte-1ha7p1f")),M("click",N,()=>ye(e(d).id)),u(y,N)};g(aa,y=>{pt()&&y(ra)})}t(Vt),t(Ct);var At=a(Ct,2);{var Et=y=>{var N=mr(),G=r(N),xe=r(G);ua(xe,{size:12}),Pe(),t(G);var ce=a(G,2),Ee=r(ce);Pa(Ee,{size:12}),Pe(),t(ce);var ue=a(ce,2);{var F=j=>{var Ue=gr(),Fe=r(Ue);Oa(Fe,{size:12}),t(Ue),u(j,Ue)};g(ue,j=>{i.onReorder&&j(F)})}t(N),M("click",G,()=>{var j;(j=i.onEdit)==null||j.call(i,e(d)),l(st,null)}),M("click",ce,()=>{var j;(j=i.onDelete)==null||j.call(i,e(d).id),l(st,null)}),u(y,N)};g(At,y=>{pt()&&e(st)===e(d).id&&y(Et)})}var Tt=a(At,2);{var na=y=>{var N=xr(),G=r(N);{var xe=ue=>{var F=hr(),j=r(F);_a(j,{size:12});var Ue=a(j);t(F),S(Fe=>{Rt(F,"href",Fe),m(Ue,` ${e(d).location??""}`)},[()=>Wt(e(d).location)]),u(ue,F)};g(G,ue=>{e(d).location&&ue(xe)})}var ce=a(G,2);{var Ee=ue=>{var F=yr(),j=r(F,!0);t(F),S(()=>m(j,e(d).description)),u(ue,F)};g(ce,ue=>{e(d).description&&ue(Ee)})}t(N),u(y,N)};g(Tt,y=>{(e(d).description||e(d).location)&&y(na)})}var bt=a(Tt,2);{var Kt=y=>{var N=wr(),G=r(N),xe=r(G);La(xe,{size:13}),Pe(2),t(G),t(N),S(()=>Ce(G,1,`tl-strip-btn ${e(lt)===e(d).id?"active":""}`,"svelte-1ha7p1f")),M("click",G,()=>$t(e(d))),u(y,N)};g(bt,y=>{e(d).location&&y(Kt)})}var sa=a(bt,2);{var la=y=>{var N=Mr(),G=r(N);{var xe=F=>{var j=Ir();u(F,j)},ce=F=>{var j=Sr();kt(j,21,()=>e(de)[e(d).id],jt,(Ue,Fe)=>{var wt=Dr(),Ot=r(wt),n=r(Ot,!0);t(Ot);var s=a(Ot,2),c=r(s,!0);t(s);var f=a(s,2),v=r(f,!0);t(f),t(wt),S((b,I)=>{Rt(wt,"href",`https://www.google.com/maps/search/?api=1&query=${b??""}`),m(n,e(Fe).emoji),m(c,e(Fe).name),m(v,I)},[()=>encodeURIComponent(e(Fe).name),()=>Gt(e(Fe).distance)]),u(Ue,wt)}
1),t(j),u(F,j)},Ee=P(()=>Array.isArray(e(de)[e(d).id])&&e(de)[e(d).id].length),ue=F=>{var j=kr();u(F,j)};g(G,F=>{e(de)[e(d).id]==="loading"?F(xe):e(Ee)?F(ce,1):F(ue,-1)})}t(N),u(y,N)};g(sa,y=>{e(lt)===e(d).id&&y(la)})}t($e),t(ve),S(y=>{Rt(ve,"data-id",e(d).id),Ca(ve,`--i: ${e(k)??""}`),Ce(fe,1,`tl-time ${e(z)?"tl-time-now":""}`,"svelte-1ha7p1f"),m(je,e(B).label),Ce(He,1,`tl-dot ${e(z)?"tl-dot-now":""}`,"svelte-1ha7p1f"),Ce($e,1,`tl-card cost-type-${e(d).cost_type??"estimate"??""} ${e(z)?"tl-card-now":""}`,"svelte-1ha7p1f"),m(ea,e(d).title),Ce(xt,1,`tl-cost cost-type-badge-${e(d).cost_type??"estimate"??""}`,"svelte-1ha7p1f"),m(ta,y)},[()=>qt(e(d))]),M("click",et,()=>{var y;return(y=Ut())==null?void 0:y(e(d))}),u(o,ve)}),t(Re),xa(Re,(o,d)=>{var k;return(k=Ta)==null?void 0:k(o,d)},()=>({enabled:pt(),onEnd:i.onReorder})),t(we),S(()=>{m(Ie,`${i.heading??""} `),Ce(De,1,`badge ${i.badgeClass??""}`,"svelte-1ha7p1f"),m(Le,i.badge)}),u(U,we),ya()}wa(["click"]);var Ar=p("<button> </button>"),Er=p('<span class="weather-loading-pill skeleton-shimmer svelte-14xbg9n" aria-hidden="true"></span>'),Tr=p('<div style="display:flex;justify-content:center;padding:0 24px 24px" class="svelte-14xbg9n"><button class="it-ai-btn svelte-14xbg9n"><!> Generate full itinerary with AI</button></div>'),Or=p('<div class="card svelte-14xbg9n"><p style="color: var(--text-secondary); text-align: center; padding: 24px;" class="svelte-14xbg9n"> </p> <!></div>'),Pr=p('<button class="itinerary-fab svelte-14xbg9n" title="Add item" data-testid="add-itinerary-item"><!></button> <button class="itinerary-ai-fab svelte-14xbg9n" title="Generate with AI"><!></button>',1),Lr=p('<div class="ai-loading-wrap svelte-14xbg9n"><div class="ai-spinner svelte-14xbg9n"></div> <p class="svelte-14xbg9n">Generating your itinerary⦠this may take 10â20 seconds.</p></div>'),Rr=p('<p style="color:var(--danger);font-size:14px;padding:8px 0" class="svelte-14xbg9n"> </p> <div class="sheet-footer svelte-14xbg9n"><button class="sheet-cancel svelte-14xbg9n">Close</button> <button class="sheet-save svelte-14xbg9n">Try Again</button></div>',1),jr=p('<div style="text-align:center;padding:32px 0;color:var(--text-secondary);font-size:14px" class="svelte-14xbg9n"><div style="margin-bottom:10px" class="svelte-14xbg9n"><!></div> </div> <div class="sheet-footer svelte-14xbg9n"><button class="sheet-cancel svelte-14xbg9n">Close</button> <button class="sheet-save svelte-14xbg9n">Regenerate</button></div>',1),Hr=p('<span class="ai-preview-time svelte-14xbg9n"> </span>'),Ur=p('<span class="ai-preview-loc svelte-14xbg9n"><!> </span>'),Fr=p('<span class="ai-preview-cost svelte-14xbg9n"> </span>'),qr=p('<div><input type="checkbox" class="ai-check svelte-14xbg9n"/> <div class="ai-preview-day svelte-14xbg9n"> </div> <div class="ai-preview-content svelte-14xbg9n"><span class="ai-preview-title svelte-14xbg9n"> </span> <!> <!> <!></div></div>'),Wr=p('<p class="ai-budget-note svelte-14xbg9n"><!> </p>'),Br=p('<div class="ai-preview-header svelte-14xbg9n"><span style="font-size:13px;color:var(--text-secondary)" class="svelte-14xbg9n"> </span> <button class="ai-select-all svelte-14xbg9n"> </button></div> <div class="ai-preview-list svelte-14xbg9n"></div> <!> <div class="sheet-footer svelte-14xbg9n"><button class="sheet-cancel svelte-14xbg9n">Discard</button> <button class="sheet-save svelte-14xbg9n"> </button></div>',1),Gr=p('<div class="sheet-backdrop svelte-14xbg9n" role="presentation"></div> <div class="sheet svelte-14xbg9n"><div class="sheet-handle svelte-14xbg9n"></div> <div class="sheet-header svelte-14xbg9n"><span class="sheet-title svelte-14xbg9n"><!> AI Itinerary Draft</span> <button class="sheet-close svelte-14xbg9n" aria-label="Close"><!></button></div> <!></div>',1),Vr=p('<div class="alert alert-error svelte-14xbg9n" style="margin: 0 0 12px;"> </div>'),Kr=p('<option class="svelte-14xbg9n"> </option>'),Zr=p('<div class="form-group svelte-14xbg9n"><label class="form-label svelte-14xbg9n" for="fi-day">Day</label> <select id="fi-day" class="form-input svelte-14xbg9n"></select></div>'),Jr=p('<div class="form-group svelte-14xbg9n"><label class="form-label svelte-14xbg9n" for="fi-cost"> </label> <input id="fi-cost" class="form-input svelte-14xbg9n" type="number" min="0" step="any" placeholder="0.00"/></div>'),Xr=p('<div class="sheet-backdrop svelte-14xbg9n"></div> <div class="sheet svelte-14xbg9n"><div class="sheet-handle svelte-14xbg9n"></div> <div class="sheet-header svelte-14xbg9n"><span class="sheet-title svelte-14xbg9n"> </span> <button class="sheet-close svelte-14xbg9n" aria-label="Close"><!></button></div> <!> <div class="form-group svelte-14xbg9n"><label class="form-label svelte-14xbg9n" for="fi-title">Title</label> <input id="fi-title" class="form-input svelte-14xbg9n" type="text" placeholder="e.g. ðï¸ Visit the mountain"/></div> <!> <div class="form-row svelte-14xbg9n"><div class="form-group svelte-14xbg9n"><label class="form-label svelte-14xbg9n" for="fi-time">
1Start Time</label> <input id="fi-time" class="form-input svelte-14xbg9n" type="text" placeholder="09:00 or Morning"/></div> <div class="form-group svelte-14xbg9n"><label class="form-label svelte-14xbg9n" for="fi-cost_type">Cost Type</label> <select id="fi-cost_type" class="form-input svelte-14xbg9n"><option class="svelte-14xbg9n">Estimate</option><option class="svelte-14xbg9n">Free</option><option class="svelte-14xbg9n">Included</option><option class="svelte-14xbg9n">Optional</option></select></div></div> <!> <div class="form-group svelte-14xbg9n"><label class="form-label svelte-14xbg9n" for="fi-location">Location</label> <input id="fi-location" class="form-input svelte-14xbg9n" type="text" placeholder="e.g. Titlis Summit, Engelberg"/></div> <div class="form-group svelte-14xbg9n"><label class="form-label svelte-14xbg9n" for="fi-desc">Notes</label> <textarea id="fi-desc" class="form-input form-textarea svelte-14xbg9n" rows="2" placeholder="Optional notesâ¦"></textarea></div> <button class="btn-primary svelte-14xbg9n"> </button></div>',1),Yr=p('<div class="alert alert-error svelte-14xbg9n" style="margin:0 0 12px;"> </div>'),Qr=p('<div class="sheet-backdrop svelte-14xbg9n"></div> <div class="sheet svelte-14xbg9n"><div class="sheet-handle svelte-14xbg9n"></div> <div class="sheet-header svelte-14xbg9n"><span class="sheet-title svelte-14xbg9n"> </span> <button class="sheet-close svelte-14xbg9n" aria-label="Close"><!></button></div> <!> <div class="form-row svelte-14xbg9n"><div class="form-group svelte-14xbg9n" style="flex: 0 0 80px;"><label class="form-label svelte-14xbg9n" for="fd-emoji">Emoji</label> <input id="fd-emoji" class="form-input svelte-14xbg9n" type="text" placeholder="ð
" style="font-size:22px; text-align:center;"/></div> <div class="form-group svelte-14xbg9n"><label class="form-label svelte-14xbg9n" for="fd-title">Day Title</label> <input id="fd-title" class="form-input svelte-14xbg9n" type="text" placeholder="Arrival Day"/></div></div> <div class="form-row svelte-14xbg9n"><div class="form-group svelte-14xbg9n"><label class="form-label svelte-14xbg9n" for="fd-badge">Badge Text</label> <input id="fd-badge" class="form-input svelte-14xbg9n" type="text" placeholder="e.g. Free Day"/></div> <div class="form-group svelte-14xbg9n"><label class="form-label svelte-14xbg9n" for="fd-badgeclass">Badge Colour</label> <select id="fd-badgeclass" class="form-input svelte-14xbg9n"><option class="svelte-14xbg9n">Blue</option><option class="svelte-14xbg9n">Green</option><option class="svelte-14xbg9n">Orange</option><option class="svelte-14xbg9n">Red</option><option class="svelte-14xbg9n">Purple</option></select></div></div> <div class="form-group svelte-14xbg9n"><label class="form-label svelte-14xbg9n" for="fd-plan">Overview Summary</label> <textarea id="fd-plan" class="form-input form-textarea svelte-14xbg9n" rows="2" placeholder="Short description for day strip cardsâ¦"></textarea></div> <div class="form-group svelte-14xbg9n"><label class="form-label svelte-14xbg9n" for="fd-info">Info Bar (pipe-separated)</label> <textarea id="fd-info" class="form-input form-textarea svelte-14xbg9n" rows="2" placeholder="Flight: LH873 BGOâFRA 06:35|Seat: 19A"></textarea></div> <button class="btn-primary svelte-14xbg9n"> </button></div>',1),$r=p("<!> ",1),en=p("â <!> ",1),tn=p('<div class="detail-row svelte-14xbg9n" style="--row:0"><span class="detail-label svelte-14xbg9n"><!> Time</span> <span class="detail-value svelte-14xbg9n"><!><!></span></div>'),an=p('<div class="detail-row svelte-14xbg9n" style="--row:2"><span class="detail-label svelte-14xbg9n"><!> Location</span> <a class="detail-location-link svelte-14xbg9n" target="_blank" rel="noopener noreferrer"> <!></a></div>'),rn=p('<div class="detail-row svelte-14xbg9n" style="--row:3"><span class="detail-label svelte-14xbg9n"><!> Notes</span> <p class="detail-desc svelte-14xbg9n"> </p></div>'),nn=p('<div class="detail-actions svelte-14xbg9n" style="--row:5"><button class="detail-edit-btn svelte-14xbg9n"><!> Edit this item</button></div>'),sn=p('<div class="detail-backdrop svelte-14xbg9n" role="presentation"></div> <div class="detail-modal svelte-14xbg9n"><button class="detail-modal-close svelte-14xbg9n" aria-label="Close"><!></button> <div class="detail-modal-title svelte-14xbg9n"> </div> <!> <div class="detail-row svelte-14xbg9n" style="--row:1"><span class="detail-label svelte-14xbg9n"><!> Day</span> <span class="detail-value svelte-14xbg9n"> </span></div> <!> <!> <div class="detail-row svelte-14xbg9n" style="--row:4"><span class="detail-label svelte-14xbg9n"><!> Cost</span> <span> </span></div> <!></div>',1),ln=p('<div class="page svelte-14xbg9n"><!> <div class="day-tabs-wrap svelte-14xbg9n"><!> <!></div> <!> <!></div> <!> <!> <!> <!>',1);function Zn(U,i){ha(i,!0);let h=x(Ve([])),T=x(!0);Zt(()=>{l(T,!0),Promise.resolve(i.data.items).then(n=>{l(h,n??[],!0),l(T,!1)})});let pt=x(Ve({})),mt=x(!0);Zt(()=>{l(mt,!0),Promise.resolve(i.data.weather).then(n=>{l(pt,n??{},!0),l(mt,!1)})});let Ut=x(Ve({}));Zt(()=>{Promise.resolve(i.data.dailyWeather).then(n=>{l(Ut,n??{},!0)})});function st(n){var v;if(!((v=i.data.trip)!=null&&v.start_date))return"";const[s,c,f]=i.data.trip.start_date.split("-").map(Number);return new Date(s,c-1,f+n).toISOString().slice(0,10)}let ye=x(Ve(Number(ja.url.searchParams.get("day")??0))),Ft=P(()=>{var C,V;if(!((C=i.data.trip)!=null&&C.start_date)||!((V=i.data.trip)!=null&&V.end_date))return[];const[n,s,c]=i.data.trip.start_date.split("-").map(Number),[f,v,b]=i.data.trip.end_date.split("-").map(Number),I=new Date(f,v-1,b).getTime()-new Date(n,s-1,c).getTime(),D=Math.round(I/864e5)+1;return Array.from({length:D},(A,Q)=>Q)}),Mt=P(()=>{const n=e(h).map(s=>s.day_number);return[...new Set([...e(Ft),...n])].sort((s,c)=>s-c)}),qt=P(()=>e(h).filter(n=>n.day_number===e(ye)));function Qt(n,s){var V;if(!s)return`Day ${n}`;if(!((V=i.data.trip)!=null&&V.start_date))return`${s.emoji} ${s.title}`;const[c,f,v]=i.data.trip.start_date.split("-").map(Number),b=new Date(c,f-1,v+n),I=b.toLocaleDateString("en-US",{weekday:"short"}),D=b.toLocaleDateString("en-US",{month:"short"}),C=b.getDate();return`${s.emoji} ${I} · ${D} ${C} â ${s.title}`}let Wt=P(()=>e(Mt).map(n=>{var C;if(!((C=i.data.trip)!=null&&C.start_date))return`Day ${n}`;const[s,c,f]=i.data.trip.start_date.split("-").map(Number),v=new Date(s,c-1,f+n),b=v.toLocaleDateString("en-US",{weekday:"short"}),I=v.toLocaleDateString("en-US",{month:"short"}),D=v.getDate();return`${b} ${I} ${D}`})),W=x(null);function Bt(n){l(W,n,!0)}function Nt(){l(W,null)}function de(n){return n.cost_type==="free"?"Free":n.cost_type==="included"?"Included":n.cost_type==="optional"?"Optional":n.cost_amount==null?"â":Ia(n.cost_amount,n.cost_currency??"NOK",St.currency)}function lt(n){return n?{morning:{icon:Sa,label:"Morning"},afternoon:{icon:ca,label:"Afternoon"},evening:{icon:ka,label:"Evening"},night:{icon:Da,label:"Night"},midday:{icon:Ht,label:"Midday"},noon:{icon:Ht,label:"Noon"},lunch:{icon:Yt,label:"Lunch"},dinner:{icon:Yt,label:"Dinner"}}[n.toLowerCase()]??{icon:null,label:n}:null}function $t(n){return`https://www.google.com/maps/dir/?api=1&destination=${encodeURIComponent(n)}&travelmode=walking`}function Gt(n){var b;if(!((b=i.data.trip)!=null&&b.start_date))return null;const[s,c,f]=i.data.trip.start_date.split("-").map(Number);return new Date(s,c-1,f+n.day_number).toLocaleDateString("en-US",{weekday:"long",month:"long",day:"numeric"})}let ht=x(!1),we=x(null),Xe=x(!1),Ie=x(""),De=x(""),Le=x(0),Ye=x(""),it=x(""),ot=x(""),Se=x("estimate"),dt=x(""),pe=x(!1),vt=x(""),le=x(Ve([])),Re=x(0),o=x(Ve(new Set)),d=x(!1);function k(n){const s=new Set(e(o));s.has(n)?s.delete(n):s.add(n),l(o,s,!0)}function z(){l(o,e(o).size===e(le).length?new Set:new Set(e(le).map((n,s)=>s)),!0)}async function B(){l(pe,!0),l(vt,""),l(le,[],!0),l(Re,0),l(o,new Set,!0),l(ve,0),l(d,!0);try{const n=await fetch("/api/ai/generate",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({type:"itinerary",tripId:i.data.tripId})}),s=await n.json();if(!n.ok)throw new Error(s.message??"AI request failed");l(le,s.items??[],!0),l(Re,s.skipped??0,!0),l(o,new Set(e(le).map((c,f)=>f)),!0)}catch(n){l(vt,n.message,!0)}finally{l(pe,!1)}}async function ze(){const n=e(le).filter((s,c)=>e(o).has(c));if(n.length){l(pe,!0);try{const s=Dt(),c=n.map(({expense_category:I,...D})=>({...D,created_by:i.data.userId})),{data:f,error:v}=await s.from("itinerary_items").insert(c).select("*");if(v)throw new Error(v.message);l(h,[...e(h),...f??[]],!0);const b=n.filter(I=>I.cost_amount>0&&["estimate","optional"].includes(I.cost_type));if(b.length>0){const{data:I}=await s.from("trip_members").select("user_id, role").eq("trip_id",i.data.tripId).neq("role","viewer"),D=I??[],C=D.length||1,V=b.map($=>({trip_id:i.data.tripId,label:$.title,category:$.expense_category??"misc",amount:$.cost_amount,currency:$.cost_currency??St.currency,notes:`AI estimate â Day ${$.day_number+1}`,paid:!1,created_by:i.data.userId,paid_by:null})),{data:A,error:Q}=await s.from("expenses").insert(V).select("*");if(Q&&console.warn("[ai] expense insert failed:",Q.message),A!=null&&A.length&&D.length>1){const $=A.flatMap(me=>{const K=Math.round(me.amount/C*100)/100;return D.map(q=>({expense_id:me.id,user_id:q.user_id,share_amount:K,share_currency:me.currency}))});await s.from("expense_splits").insert($)}l(ve,(A==null?void 0:A.length)??0,!0)}l(d,!1),await Promise.all([Me(Ne.itinerary(i.data.tripId)),Me(Ne.overview(i.data.tripId)),Me(Ne.budget(i.data.tripId)),Me(Ne.calendar(i.data.tripId))])}catch(s){l(vt,s.message,!0)}finally{l(pe,!1)}}}let ve=x(0),ie=x(Ve([]));Zt(()=>{Promise.resolve(i.data.dayMeta).then(n=>{l(ie,n??[],!0)})});let fe=x(!1),be=x(!1),ge=x(""),je=x("ð
"),Qe=x(""),ct=x(""),Ae=x("badge-blue"),He=x(""),ft=x("blue"),ut=x(""),$e=x(0);function Ct(n){const s=e(ie).find(c=>c.day_number===n);l($e,n,!0),l(je,(s==null?void 0:s.emoji)??"ð
",!0),l(Qe,(s==null?void 0:s.title)??"",!0),l(ct,(s==null?void 0:s.badge)??"",!0),l(Ae,(s==null?void 0:s.badge_class)??"badge-blue",!0),l(He,(s==null?void 0:s.info_text)??"",!0),l(ft,(s==null?void 0:s.info_class)??"blue",!0),l(ut,(s==null?void 0:s.plan_summary)??"",!0),l(ge,""),l(fe,!0)}function et(){l(fe,!1),l(ge,"")}async function ea(){l(be,!0),l(ge,"");const n={trip_id:i.data.tripId,day_number:e($e),emoji:e(je).trim()||"ð
",title:e(Qe).trim(),badge:e(ct).trim(),badge_class:e(Ae).trim()||"badge-blue",info_text:e(He).trim(),info_class:e(ft).trim()||"blue",plan_summary:e(ut).trim()},{data:s,error:c}=await Dt().from("trip_days").upsert(n,{onConflict:"trip_id,day_number"}).select("*").single();if(l(be,!1),c){l(ge,c.message,!0);return}const f=e(ie).find(v=>v.day_number===e($e));l(ie,f?e(ie).map(v=>v.day_number===e($e)?s:v):[...e(ie),s],!0),et(),Me(Ne.itinerary(i.data.tripId)),Me(Ne.calendar(i.data.tripId))}function Vt(){l(we,null),l(De,""),l(Le,e(ye),!0),l(Ye,""),l(it,""),l(ot,""),l(Se,"estimate"),l(dt,""),l(Ie,""),l(ht,!0)}function zt(n){l(we,n.id,!0),l(De,n.title??"",!0),l(Le,n.day_number??0,!0),l(Ye,n.start_time??"",!0),l(it,n.location??"",!0),l(ot,n.description??"",!0),l(Se,n.cost_type??"estimate",!0);const s=n.cost_currency??"NOK";l(dt,n.cost_amount!=null?String(Math.round(Ea(n.cost_amount,s,St.currency)*100)/100):"",!0),l(Ie,""),l(ht,!0)}function yt(){l(ht,!1),l(Ie,"")}function xt(n){var b;if(!((b=i.data.trip)!=null&&b.start_date))return null;const[s,c,f]=i.data.trip.start_date.split("-").map(Number);return new Date(s,c-1,f+n).toISOString().slice(0,10)}async function ta(){if(!e(De).trim()){l(Ie,"Title is required.");return}l(Xe,!0),l(Ie,"");const n=e(Se)==="free"||e(Se)==="included"?null:parseFloat(e(dt))||null,s=n!=null?St.currency:null;if(e(we)){const{data:c,error:f}=await Dt().from("itinerary_items").update({title:e(De).trim(),description:e(ot).trim()||null,location:e(it).trim()||null,start_time:e(Ye).trim()||null,cost_type:e(Se),cost_amount:n,cost_currency:s}).eq("id",e(we)).eq("trip_id",i.data.tripId).select("*").single();if(l(Xe,!1),f){l(Ie,f.message,!0);return}l(h,e(h).map(v=>v.id===e(we)?c:v),!0)}else{const f=e(h).filter(I=>I.day_number===e(Le)).reduce((I,D)=>Math.max(I,D.order_index??-1),-1),{data:v,error:b}=await Dt().from("itinerary_items").insert({trip_id:i.data.tripId,day_number:e(Le),order_index:f+1,date:xt(e(Le)),title:e(De).trim(),description:e(ot).trim()||null,location:e(it).trim()||null,start_time:e(Ye).trim()||null,cost_type:e(Se),cost_amount:n,cost_currency:s,created_by:i.data.userId}).select("*").single();if(l(Xe,!1),b){l(Ie,b.message,!0);return}
1l(h,[...e(h),v],!0),l(ye,e(Le),!0)}yt(),await Promise.all([Me(Ne.itinerary(i.data.tripId)),Me(Ne.overview(i.data.tripId)),Me(Ne.calendar(i.data.tripId))])}async function aa(n){const s=n.map((v,b)=>{const I=e(h).find(D=>D.id===v);return I?{...I,order_index:b}:null}).filter(Boolean),c=e(h).filter(v=>v.day_number!==e(ye));l(h,[...c,...s].sort((v,b)=>v.day_number!==b.day_number?v.day_number-b.day_number:(v.order_index??0)-(b.order_index??0)),!0),await Dt().from("itinerary_items").upsert(s.map(v=>({id:v.id,trip_id:i.data.tripId,order_index:v.order_index})),{onConflict:"id"})}function ra(n){Ua("this item",async()=>{const{error:s}=await Dt().from("itinerary_items").delete().eq("id",n).eq("trip_id",i.data.tripId);s||l(h,e(h).filter(c=>c.id!==n),!0),await Promise.all([Me(Ne.itinerary(i.data.tripId)),Me(Ne.overview(i.data.tripId)),Me(Ne.calendar(i.data.tripId))])})}var At=ln(),Et=_e(At),Tt=r(Et);{var na=n=>{{let s=P(()=>10-e(h).length),c=P(()=>10-e(h).length===1?"":"s");Ra(n,{get hintKey(){return`badge_planner_${i.data.tripId??""}`},icon:"ðºï¸",get text(){return`Add <strong>${e(s)??""} more itinerary item${e(c)??""}</strong> to unlock the <strong>Planner</strong> badge.`},variant:"tip"})}};g(Tt,n=>{e(h).length<10&&e(h).length>0&&i.data.userRole!=="viewer"&&n(na)})}var bt=a(Tt,2),Kt=r(bt);kt(Kt,17,()=>e(Mt),jt,(n,s,c)=>{var f=Ar(),v=r(f,!0);t(f),S(()=>{Ce(f,1,`day-tab ${e(ye)===e(s)?"active":""}`,"svelte-14xbg9n"),m(v,e(Wt)[c]??`Day ${e(s)}`)}),M("click",f,()=>l(ye,e(s),!0)),u(n,f)});var sa=a(Kt,2);{var la=n=>{var s=Er();u(n,s)};g(sa,n=>{var s;e(mt)&&((s=i.data.trip)!=null&&s.start_date)&&n(la)})}t(bt),xa(bt,n=>{var s;return(s=Ha)==null?void 0:s(n)});var y=a(bt,2);{var N=n=>{const s=P(()=>e(ie).find(c=>c.day_number===e(ye)));{let c=P(()=>Qt(e(ye),e(s))),f=P(()=>{var A;return((A=e(s))==null?void 0:A.badge)??""}),v=P(()=>{var A;return((A=e(s))==null?void 0:A.badge_class)??"badge-blue"}),b=P(()=>{var A;return((A=e(s))==null?void 0:A.info_text)??""}),I=P(()=>{var A;return((A=e(s))==null?void 0:A.info_class)??"blue"}),D=P(()=>e(Ut)[st(e(ye))]),C=P(()=>i.data.userRole!=="viewer"),V=P(()=>i.data.userRole!=="viewer"?aa:void 0);zr(n,{get dayNumber(){return e(ye)},get heading(){return e(c)},get badge(){return e(f)},get badgeClass(){return e(v)},get items(){return e(qt)},get infoText(){return e(b)},get infoClass(){return e(I)},get weather(){return e(pt)},get dayWeather(){return e(D)},get isEditor(){return e(C)},onEdit:zt,onDelete:ra,onEditDay:()=>Ct(e(ye)),get onReorder(){return e(V)},get icsUrl(){return`/trip/${i.data.tripId??""}/itinerary.ics`},onViewDetail:Bt})}},G=n=>{var s=Or(),c=r(s),f=r(c,!0);t(c);var v=a(c,2);{var b=I=>{var D=Tr(),C=r(D),V=r(C);da(V,{size:14,style:"vertical-align:-2px"}),Pe(),t(C),t(D),S(()=>C.disabled=e(pe)),M("click",C,B),u(I,D)};g(v,I=>{i.data.userRole!=="viewer"&&I(b)})}t(s),S(()=>m(f,i.data.userRole!=="viewer"?"No items yet â add the first one!":"No itinerary items for this day.")),u(n,s)};g(y,n=>{e(qt).length?n(N):n(G,-1)})}var xe=a(y,2);{var ce=n=>{var s=Pr(),c=_e(s),f=r(c);qa(f,{size:22}),t(c);var v=a(c,2),b=r(v);{var I=C=>{Fa(C,{size:18})},D=C=>{da(C,{size:20})};g(b,C=>{e(pe)?C(I):C(D,-1)})}t(v),S(()=>v.disabled=e(pe)),M("click",c,Vt),M("click",v,B),u(n,s)};g(xe,n=>{i.data.userRole!=="viewer"&&n(ce)})}t(Et);var Ee=a(Et,2);{var ue=n=>{var s=Gr(),c=_e(s),f=a(c,2),v=a(r(f),2),b=r(v),I=r(b);da(I,{size:15,style:"vertical-align:-2px"}),Pe(),t(b);var D=a(b,2),C=r(D);Jt(C,{size:14}),t(D),t(v);var V=a(v,2);{var A=K=>{var q=Lr();u(K,q)},Q=K=>{var q=Rr(),Z=_e(q),X=r(Z,!0);t(Z);var oe=a(Z,2),ae=r(oe),J=a(ae,2);t(oe),S(()=>m(X,e(vt))),M("click",ae,()=>l(d,!1)),M("click",J,B),u(K,q)},$=K=>{var q=jr(),Z=_e(q),X=r(Z),oe=r(X);Ba(oe,{size:32,style:"color:var(--success)"}),t(X);var ae=a(X);t(Z);var J=a(Z,2),he=r(J),re=a(he,2);t(J),S(()=>m(ae,` Your itinerary already looks comprehensive! All ${e(Re)??""} suggestions were already covered.`)),M("click",he,()=>l(d,!1)),M("click",re,B),u(K,q)},me=K=>{const q=P(()=>e(le).filter((H,w)=>e(o).has(w)&&H.cost_amount>0&&["estimate","optional"].includes(H.cost_type)));var Z=Br(),X=_e(Z),oe=r(X),ae=r(oe);t(oe);var J=a(oe,2),he=r(J,!0);t(J),t(X);var re=a(X,2);kt(re,21,()=>e(le),jt,(H,w,ee)=>{var _=qr(),R=r(_);_t(R);var ne=a(R,2),at=r(ne);t(ne);var Oe=a(ne,2),rt=r(Oe),te=r(rt,!0);t(rt);var ke=a(rt,2);{var We=Y=>{var se=Hr(),Be=r(se,!0);t(se),S(()=>m(Be,e(w).start_time)),u(Y,se)};g(ke,Y=>{e(w).start_time&&Y(We)})}var It=a(ke,2);{var Pt=Y=>{var se=Ur(),Be=r(se);_a(Be,{size:11,style:"vertical-align:-1px"});var Ma=a(Be);t(se),S(()=>m(Ma,` ${e(w).location??""}`)),u(Y,se)};g(It,Y=>{e(w).location&&Y(Pt)})}var nt=a(It,2);{var gt=Y=>{var se=Fr(),Be=r(se);t(se),S(()=>m(Be,`${e(w).cost_currency??""??""} ${e(w).cost_amount??""} · ${e(w).expense_category??""}`)),u(Y,se)};g(nt,Y=>
1{e(w).cost_amount>0&&e(w).cost_type!=="free"&&e(w).cost_type!=="included"&&Y(gt)})}t(Oe),t(_),S((Y,se)=>{Ce(_,1,`ai-preview-row ${Y??""}`,"svelte-14xbg9n"),za(R,se),m(at,`Day ${e(w).day_number+1}`),m(te,e(w).title)},[()=>e(o).has(ee)?"selected":"",()=>e(o).has(ee)]),M("click",_,()=>k(ee)),M("click",R,Y=>Y.stopPropagation()),M("change",R,()=>k(ee)),u(H,_)}),t(re);var Te=a(re,2);{var qe=H=>{var w=Wr(),ee=r(w);pa(ee,{size:12,style:"vertical-align:-2px"});var _=a(ee);t(w),S(()=>m(_,` ${e(q).length??""} budget estimate${e(q).length===1?"":"s"} will be added to the budget & split equally between all travellers`)),u(H,w)};g(Te,H=>{e(q).length>0&&H(qe)})}var tt=a(Te,2),O=r(tt),E=a(O,2),L=r(E,!0);t(E),t(tt),S(()=>{m(ae,`${e(le).length??""} new suggestion${e(le).length===1?"":"s"}${e(Re)>0?` · ${e(Re)} already in itinerary, skipped`:""}`),m(he,e(o).size===e(le).length?"Deselect all":"Select all"),E.disabled=e(pe)||e(o).size===0,m(L,e(pe)?"Addingâ¦":`Add ${e(o).size} Item${e(o).size===1?"":"s"}`)}),M("click",J,z),M("click",O,()=>{l(d,!1),l(le,[],!0)}),M("click",E,ze),u(K,Z)};g(V,K=>{e(pe)?K(A):e(vt)?K(Q,1):e(le).length===0&&e(Re)>0?K($,2):e(le).length&&K(me,3)})}t(f),S(()=>D.disabled=e(pe)),M("click",c,()=>!e(pe)&&l(d,!1)),M("click",D,()=>l(d,!1)),u(n,s)};g(Ee,n=>{e(d)&&n(ue)})}var F=a(Ee,2);{var j=n=>{var s=Xr(),c=_e(s),f=a(c,2),v=a(r(f),2),b=r(v),I=r(b,!0);t(b);var D=a(b,2),C=r(D);Jt(C,{size:14}),t(D),t(v);var V=a(v,2);{var A=_=>{var R=Vr(),ne=r(R,!0);t(R),S(()=>m(ne,e(Ie))),u(_,R)};g(V,_=>{e(Ie)&&_(A)})}var Q=a(V,2),$=a(r(Q),2);_t($),t(Q);var me=a(Q,2);{var K=_=>{var R=Zr(),ne=a(r(R),2);kt(ne,21,()=>e(Mt),jt,(at,Oe,rt)=>{var te=Kr(),ke=r(te,!0);t(te);var We={};S(()=>{m(ke,e(Wt)[rt]??`Day ${e(Oe)}`),We!==(We=e(Oe))&&(te.value=(te.__value=e(Oe))??"")}),u(at,te)}),t(ne),t(R),oa(ne,()=>e(Le),at=>l(Le,at)),u(_,R)};g(me,_=>{e(we)||_(K)})}var q=a(me,2),Z=r(q),X=a(r(Z),2);_t(X),t(Z);var oe=a(Z,2),ae=a(r(oe),2),J=r(ae);J.value=J.__value="estimate";var he=a(J);he.value=he.__value="free";var re=a(he);re.value=re.__value="included";var Te=a(re);Te.value=Te.__value="optional",t(ae),t(oe),t(q);var qe=a(q,2);{var tt=_=>{var R=Jr(),ne=r(R),at=r(ne);t(ne);var Oe=a(ne,2);_t(Oe),t(R),S(()=>m(at,`Cost (${St.currency??""})`)),Ge(Oe,()=>e(dt),rt=>l(dt,rt)),u(_,R)};g(qe,_=>{(e(Se)==="estimate"||e(Se)==="optional")&&_(tt)})}var O=a(qe,2),E=a(r(O),2);_t(E),t(O);var L=a(O,2),H=a(r(L),2);ia(H),t(L);var w=a(L,2),ee=r(w,!0);t(w),t(f),S(()=>{m(I,e(we)?"Edit Item":"Add Item"),w.disabled=e(Xe),m(ee,e(Xe)?"Savingâ¦":e(we)?"Save Changes":"Add Item")}),M("click",c,yt),M("keydown",c,_=>_.key==="Escape"&&yt()),M("click",D,yt),Ge($,()=>e(De),_=>l(De,_)),Ge(X,()=>e(Ye),_=>l(Ye,_)),oa(ae,()=>e(Se),_=>l(Se,_)),Ge(E,()=>e(it),_=>l(it,_)),Ge(H,()=>e(ot),_=>l(ot,_)),M("click",w,ta),u(n,s)};g(F,n=>{e(ht)&&n(j)})}var Ue=a(F,2);{var Fe=n=>{var s=Qr(),c=_e(s),f=a(c,2),v=a(r(f),2),b=r(v),I=r(b);t(b);var D=a(b,2),C=r(D);Jt(C,{size:14}),t(D),t(v);var V=a(v,2);{var A=_=>{var R=Yr(),ne=r(R,!0);t(R),S(()=>m(ne,e(ge))),u(_,R)};g(V,_=>{e(ge)&&_(A)})}var Q=a(V,2),$=r(Q),me=a(r($),2);_t(me),t($);var K=a($,2),q=a(r(K),2);_t(q),t(K),t(Q);var Z=a(Q,2),X=r(Z),oe=a(r(X),2);_t(oe),t(X);var ae=a(X,2),J=a(r(ae),2),he=r(J);he.value=he.__value="badge-blue";var re=a(he);re.value=re.__value="badge-green";var Te=a(re);Te.value=Te.__value="badge-orange";var qe=a(Te);qe.value=qe.__value="badge-red";var tt=a(qe);tt.value=tt.__value="badge-purple",t(J),t(ae),t(Z);var O=a(Z,2),E=a(r(O),2);ia(E),t(O);var L=a(O,2),H=a(r(L),2);ia(H),t(L);var w=a(L,2),ee=r(w,!0);t(w),t(f),S(()=>{m(I,`Edit Day ${e($e)??""}`),w.disabled=e(be),m(ee,e(be)?"Savingâ¦":"Save Day")}),M("click",c,et),M("keydown",c,_=>_.key==="Escape"&&et()),M("click",D,et),Ge(me,()=>e(je),_=>l(je,_)),Ge(q,()=>e(Qe),_=>l(Qe,_)),Ge(oe,()=>e(ct),_=>l(ct,_)),oa(J,()=>e(Ae),_=>l(Ae,_)),Ge(E,()=>e(ut),_=>l(ut,_)),Ge(H,()=>e(He),_=>l(He,_)),M("click",w,ea),u(n,s)};g(Ue,n=>{e(fe)&&n(Fe)})}var wt=a(Ue,2);{var Ot=n=>{var s=sn(),c=_e(s),f=a(c,2),v=r(f),b=r(v);Jt(b,{size:14}),t(v);var I=a(v,2),D=r(I,!0);t(I);var C=a(I,2);{var V=O=>{const E=P(()=>lt(e(W).start_time)),L=P(()=>lt(e(W).end_time));var H=tn(),w=r(H),ee=r(w);Ht(ee,{size:12}),Pe(),t(w);var _=a(w,2),R=r(_);{var ne=te=>{var ke=$r(),We=_e(ke);{var It=nt=>{var gt=va(),Y=_e(gt);Xt(Y,()=>e(E).icon,(se,Be)=>{Be(se,{size:13,style:"vertical-align:-2px"})}),u(nt,gt)};g(We,nt=>{e(E).icon&&nt(It)})}var Pt=a(We,1,!0);S(()=>m(Pt,e(E).label)),u(te,ke)},at=te=>{var ke=Na("â");u(te,ke)};g(R,te=>{e(E)?te(ne):te(at,-1)})}var Oe=a(R);{var rt=te=>{var ke=en(),We=a(_e(ke));{var It=nt=>{var gt=va(),Y=_e(gt);Xt(Y,()=>e(L).icon,(se,Be)=>{Be(se,{size:13,style:"vertical-align:-2px"})}),u(nt,gt)};g(We,nt=>{e(L).icon&&nt(It)})}var Pt=a(We,1,!0);S(()=>m(Pt,e(L).label)),u(te,ke)};g(Oe,te=>{e(L)&&te(rt)}
1)}t(_),t(H),u(O,H)};g(C,O=>{(e(W).start_time||e(W).end_time)&&O(V)})}var A=a(C,2),Q=r(A),$=r(Q);Wa($,{size:12}),Pe(),t(Q);var me=a(Q,2),K=r(me);t(me),t(A);var q=a(A,2);{var Z=O=>{var E=an(),L=r(E),H=r(L);_a(H,{size:12}),Pe(),t(L);var w=a(L,2),ee=r(w),_=a(ee);Ga(_,{size:11,style:"vertical-align:-1px"}),t(w),t(E),S(R=>{Rt(w,"href",R),m(ee,`${e(W).location??""} `)},[()=>$t(e(W).location)]),u(O,E)};g(q,O=>{e(W).location&&O(Z)})}var X=a(q,2);{var oe=O=>{var E=rn(),L=r(E),H=r(L);Va(H,{size:12}),Pe(),t(L);var w=a(L,2),ee=r(w,!0);t(w),t(E),S(()=>m(ee,e(W).description)),u(O,E)};g(X,O=>{e(W).description&&O(oe)})}var ae=a(X,2),J=r(ae),he=r(J);pa(he,{size:12}),Pe(),t(J);var re=a(J,2),Te=r(re,!0);t(re),t(ae);var qe=a(ae,2);{var tt=O=>{var E=nn(),L=r(E),H=r(L);ua(H,{size:14}),Pe(),t(L),t(E),M("click",L,()=>{const w=e(W);Nt(),zt(w)}),u(O,E)};g(qe,O=>{i.data.userRole!=="viewer"&&O(tt)})}t(f),S((O,E)=>{m(D,e(W).title),m(K,`Day ${e(W).day_number+1}${O??""}`),Ce(re,1,`detail-cost cost-type-badge-${e(W).cost_type??"estimate"??""}`,"svelte-14xbg9n"),m(Te,E)},[()=>Gt(e(W))?` · ${Gt(e(W))}`:"",()=>de(e(W))]),M("click",c,Nt),M("click",v,Nt),u(n,s)};g(wt,n=>{e(W)&&n(Ot)})}u(U,At),ya()}wa(["click","change","keydown"]);export{Zn as component};
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.