@cloudparse/up-miniapps-sdk 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.browser.min.js +1 -1
- package/dist/index.browser.min.js.map +1 -1
- package/dist/index.cjs +17 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +41 -1
- package/dist/index.d.ts +41 -1
- package/dist/index.js +17 -3
- package/dist/index.js.map +1 -1
- package/dist/style.css +3 -0
- package/package.json +1 -1
|
@@ -877,7 +877,7 @@ ${new this._window.XMLSerializer().serializeToString(E)}`;return typeof Blob>"u"
|
|
|
877
877
|
`}),(0,Yt.jsx)("div",{className:`absolute inset-0 bg-black/45 backdrop-blur-[1px] transition-opacity duration-300 z-30 ${t!=="closed"?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"}`,onClick:()=>a("closed")}),t==="closed"&&(0,Yt.jsx)(kt,{className:"absolute top-4 left-4 z-40 w-12 h-12 rounded-full bg-zinc-950/80 backdrop-blur-md border border-white/10 shadow-lg flex items-center justify-center text-white active:scale-95 transition-all cursor-pointer hover:bg-zinc-900 hover:text-white p-0!",onClick:()=>a("full"),variant:"ghost",children:(0,Yt.jsxs)("svg",{fill:"none",height:"24",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg",children:[(0,Yt.jsx)("line",{x1:"4",x2:"20",y1:"12",y2:"12"}),(0,Yt.jsx)("line",{x1:"4",x2:"20",y1:"6",y2:"6"}),(0,Yt.jsx)("line",{x1:"4",x2:"20",y1:"18",y2:"18"})]})}),(0,Yt.jsx)(SB,{onOpenChange:h=>a(h?"full":"closed"),open:t!=="closed",children:(0,Yt.jsxs)(a5,{className:"w-80 bg-zinc-950/85 backdrop-blur-md border-r border-y border-white/10 rounded-r-2xl shadow-2xl p-4 text-white flex flex-col h-full overflow-hidden",portal:!1,side:"left",children:[(0,Yt.jsx)(r5,{className:"pb-3 border-b border-white/10 mb-2 text-left",children:(0,Yt.jsx)(i5,{className:"text-sm font-bold tracking-wider text-zinc-400 uppercase",children:"Menu"})}),(0,Yt.jsx)("div",{className:"flex-1 overflow-y-auto no-scrollbar pr-2",onScroll:h=>{let p=h.currentTarget.scrollTop;u(t!=="closed"&&p>o)},ref:s,children:r||(0,Yt.jsx)("div",{className:"flex flex-col gap-1.5",children:e.map(h=>(0,Yt.jsxs)(kt,{className:`flex items-center gap-3 w-full py-3 px-3.5 rounded-xl text-left cursor-pointer transition-all duration-150 justify-start hover:bg-white/5 hover:text-white active:bg-white/10 text-white ${h.disabled?"opacity-45 cursor-not-allowed pointer-events-none":""}`,disabled:h.disabled,onClick:()=>{h.disabled||(h.onPress(),a("closed"))},variant:"ghost",children:[(0,Yt.jsxs)("div",{className:"relative flex items-center justify-center w-8 h-8 rounded-lg bg-white/5 text-zinc-300",children:[h.icon,h.badge!==void 0&&(0,Yt.jsx)("span",{className:"absolute -top-1 -right-1 bg-cyan-500 text-black text-[9px] font-extrabold min-w-[15px] h-3.5 rounded-full flex items-center justify-center px-1 border border-zinc-950 shadow",children:h.badge})]}),(0,Yt.jsx)("span",{className:"text-sm font-medium tracking-wide flex-1",children:h.label})]},h.id))})}),i&&l&&(0,Yt.jsx)(kt,{className:"absolute bottom-6 right-6 z-50 flex items-center justify-center w-10 h-10 rounded-full bg-cyan-500 hover:bg-cyan-400 active:scale-95 text-black hover:text-black shadow-lg shadow-cyan-500/25 transition-all duration-200 cursor-pointer p-0!",onClick:()=>{s.current?.scrollTo({behavior:"smooth",top:0})},variant:"ghost",children:(0,Yt.jsx)("svg",{fill:"none",height:"20",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2.5",viewBox:"0 0 24 24",width:"20",xmlns:"http://www.w3.org/2000/svg",children:(0,Yt.jsx)("polyline",{points:"18 15 12 9 6 15"})})})]})})]})});o5.displayName="MapDrawer";var au=X(de(),1),ru=X(ke(),1),hg=au.forwardRef(({className:e,...t},a)=>(0,ru.jsx)("div",{className:Sr("rounded-lg border bg-card text-card-foreground shadow-sm",e),ref:a,...t}));hg.displayName="Card";var vW=au.forwardRef(({className:e,...t},a)=>(0,ru.jsx)("div",{className:Sr("flex flex-col space-y-1.5 p-6",e),ref:a,...t}));vW.displayName="CardHeader";var _W=au.forwardRef(({className:e,...t},a)=>(0,ru.jsx)("div",{className:Sr("text-2xl font-semibold leading-none tracking-tight",e),ref:a,...t}));_W.displayName="CardTitle";var bW=au.forwardRef(({className:e,...t},a)=>(0,ru.jsx)("div",{className:Sr("text-sm text-muted-foreground",e),ref:a,...t}));bW.displayName="CardDescription";var pg=au.forwardRef(({className:e,...t},a)=>(0,ru.jsx)("div",{className:Sr("p-6 pt-0",e),ref:a,...t}));pg.displayName="CardContent";var CW=au.forwardRef(({className:e,...t},a)=>(0,ru.jsx)("div",{className:Sr("flex items-center p-6 pt-0",e),ref:a,...t}));CW.displayName="CardFooter";var Fe=X(ke(),1),TB=({etaData:e,layoutMode:t,onHeaderClick:a,style:r,isDragging:i=!1})=>t==="closed-banner"?(0,Fe.jsxs)("div",{className:"w-full h-10 flex items-center justify-between px-4 pb-2 pt-1 border-b border-white/5 bg-zinc-950/15 relative overflow-hidden",children:[(0,Fe.jsxs)("div",{className:"flex items-center gap-2 cursor-pointer flex-1",onClick:a,children:[(0,Fe.jsx)("span",{className:"w-2 h-2 rounded-full bg-emerald-500 animate-pulse"}),(0,Fe.jsxs)("span",{className:"text-xs font-bold text-emerald-400",children:[e.etaMins," min (",e.distanceRemainingKm.toFixed(1)," km)"]})]}),e.onAbort&&(0,Fe.jsx)(kt,{className:"px-1 py-1 text-[10px] font-black bg-red-500/20 text-red-400 hover:bg-red-500/30 border border-red-500/25 active:scale-95 rounded-md transition-all cursor-pointer pointer-events-auto h-auto p-0!",onClick:o=>{o.stopPropagation(),e.onAbort?.()},variant:"ghost",children:(0,Fe.jsxs)("svg",{className:"lucide lucide-x",fill:"none",height:"18",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2.5",viewBox:"0 0 24 24",width:"18",xmlns:"http://www.w3.org/2000/svg",children:[(0,Fe.jsx)("path",{d:"M18 6 6 18"}),(0,Fe.jsx)("path",{d:"m6 6 12 12"})]})}),e.progress!==void 0&&(0,Fe.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-[2px] bg-white/5",children:(0,Fe.jsx)("div",{className:"h-full bg-cyan-400",style:{width:`${e.progress}%`}})})]}):t==="open-card"?(0,Fe.jsxs)(hg,{className:"mx-4 mt-2 p-4 bg-white/5 border border-white/10 rounded-xl flex flex-col text-card-foreground",children:[(0,Fe.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,Fe.jsxs)("div",{className:"flex items-center gap-2",children:[(0,Fe.jsx)("span",{className:"w-2 h-2 rounded-full bg-emerald-500 animate-pulse"}),(0,Fe.jsx)("span",{className:"text-[10px] font-bold text-emerald-400 uppercase tracking-wider",children:e.label||"Journey Active"})]}),e.onAbort&&(0,Fe.jsx)(kt,{className:"px-1 py-1 text-xs font-bold bg-red-500/20 text-red-400 hover:bg-red-500/30 border border-red-500/30 active:scale-95 rounded-lg transition-all cursor-pointer pointer-events-auto h-auto p-0!",onClick:e.onAbort,variant:"ghost",children:(0,Fe.jsxs)("svg",{className:"lucide lucide-x",fill:"none",height:"18",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2.5",viewBox:"0 0 24 24",width:"18",xmlns:"http://www.w3.org/2000/svg",children:[(0,Fe.jsx)("path",{d:"M18 6 6 18"}),(0,Fe.jsx)("path",{d:"m6 6 12 12"})]})})]}),(0,Fe.jsxs)(pg,{className:"p-0 flex flex-col",children:[(0,Fe.jsxs)("div",{className:"grid grid-cols-2 divide-x divide-white/10 py-1.5 mb-2.5",children:[(0,Fe.jsxs)("div",{className:"text-center",children:[(0,Fe.jsxs)("div",{className:"text-xl font-black text-white leading-none",children:[e.etaMins,(0,Fe.jsx)("span",{className:"text-xs text-zinc-400 font-normal",children:" min"})]}),(0,Fe.jsx)("div",{className:"text-[8px] text-zinc-500 font-bold uppercase tracking-wider mt-1",children:"Time Remaining"})]}),(0,Fe.jsxs)("div",{className:"text-center",children:[(0,Fe.jsxs)("div",{className:"text-xl font-black text-white leading-none",children:[e.distanceRemainingKm.toFixed(1),(0,Fe.jsx)("span",{className:"text-xs text-zinc-400 font-normal",children:" km"})]}),(0,Fe.jsx)("div",{className:"text-[8px] text-zinc-500 font-bold uppercase tracking-wider mt-1",children:"Distance Remaining"})]})]}),e.progress!==void 0&&(0,Fe.jsxs)("div",{className:"mb-3",children:[(0,Fe.jsxs)("div",{className:"flex justify-between text-[9px] font-bold text-zinc-400 mb-1",children:[(0,Fe.jsx)("span",{children:"Progress"}),(0,Fe.jsxs)("span",{children:[Math.round(e.progress),"%"]})]}),(0,Fe.jsx)("div",{className:"h-1 bg-white/10 rounded-full overflow-hidden",children:(0,Fe.jsx)("div",{className:"h-full bg-cyan-400 rounded-full",style:{width:`${e.progress}%`}})})]}),e.mode==="preview"&&e.onStart&&(0,Fe.jsx)(kt,{className:"w-full py-2.5 text-xs font-bold bg-cyan-500 text-black hover:bg-cyan-400 hover:text-black active:scale-95 rounded-lg transition-all cursor-pointer h-auto",onClick:e.onStart,variant:"ghost",children:"Start Guidance"})]})]}):(0,Fe.jsxs)(hg,{className:`absolute left-1/2 -translate-x-1/2 z-40 w-[calc(100%-2rem)] max-w-[320px] sm:max-w-[380px] bg-zinc-950/85 backdrop-blur-md border border-white/10 rounded-2xl shadow-2xl p-3 sm:p-4 flex flex-col pointer-events-auto select-none text-card-foreground ${i?"transition-none":"transition-all duration-300 ease-out"}`,style:r,children:[(0,Fe.jsxs)("div",{className:"flex items-center justify-between mb-2 sm:mb-3",children:[(0,Fe.jsxs)("div",{className:"flex items-center gap-2",children:[(0,Fe.jsx)("span",{className:"w-1.5 h-1.5 sm:w-2 sm:h-2 rounded-full bg-emerald-500 animate-pulse"}),(0,Fe.jsx)("span",{className:"text-[9px] sm:text-[10px] font-bold text-emerald-400 uppercase tracking-wider",children:e.label||"Guidance Active"})]}),e.onAbort&&(0,Fe.jsx)(kt,{className:"px-1 py-1 text-[10px] sm:text-xs font-bold bg-red-500/20 text-red-400 hover:bg-red-500/30 border border-red-500/30 active:scale-95 rounded-lg transition-all cursor-pointer h-auto p-0!",onClick:e.onAbort,variant:"ghost",children:(0,Fe.jsxs)("svg",{className:"lucide lucide-x",fill:"none",height:"18",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2.5",viewBox:"0 0 24 24",width:"18",xmlns:"http://www.w3.org/2000/svg",children:[(0,Fe.jsx)("path",{d:"M18 6 6 18"}),(0,Fe.jsx)("path",{d:"m6 6 12 12"})]})})]}),(0,Fe.jsxs)(pg,{className:"p-0 flex flex-col",children:[(0,Fe.jsxs)("div",{className:"grid grid-cols-2 divide-x divide-white/10 py-0.5 sm:py-1 mb-2 sm:mb-3",children:[(0,Fe.jsx)("div",{className:"text-center",children:(0,Fe.jsxs)("div",{className:"text-base sm:text-lg font-black text-white leading-none",children:[e.etaMins,(0,Fe.jsxs)("span",{className:"text-[10px] sm:text-xs text-zinc-400 font-normal",children:[" ","min"]})]})}),(0,Fe.jsx)("div",{className:"text-center",children:(0,Fe.jsxs)("div",{className:"text-base sm:text-lg font-black text-white leading-none",children:[e.distanceRemainingKm.toFixed(1),(0,Fe.jsxs)("span",{className:"text-[10px] sm:text-xs text-zinc-400 font-normal",children:[" ","km"]})]})})]}),e.progress!==void 0&&(0,Fe.jsxs)("div",{children:[(0,Fe.jsxs)("div",{className:"flex justify-between text-[8px] sm:text-[9px] font-bold text-zinc-400 mb-1",children:[(0,Fe.jsx)("span",{children:"Progress"}),(0,Fe.jsxs)("span",{children:[Math.round(e.progress),"%"]})]}),(0,Fe.jsx)("div",{className:"h-1 sm:h-1.5 bg-white/10 rounded-full overflow-hidden",children:(0,Fe.jsx)("div",{className:"h-full bg-cyan-400 rounded-full",style:{width:`${e.progress}%`}})})]}),e.mode==="preview"&&e.onStart&&(0,Fe.jsx)(kt,{className:"mt-2.5 sm:mt-3 py-1.5 sm:py-2 text-[11px] sm:text-xs font-bold bg-cyan-500 text-black hover:bg-cyan-400 hover:text-black active:scale-95 rounded-lg transition-all cursor-pointer h-auto",onClick:e.onStart,variant:"ghost",children:"Start Guidance"})]})]});var dt=X(ke(),1),LB=({customControls:e=[],etaBarHeight:t,onRecenter:a,isMapCentered:r,mapBearing:i,mapPitch:o,onResetBearing:n,initialViewState:s,drawerState:l,side:u,etaData:c,isDragging:d,clampedDragOffset:f,customRecenterButton:h,customCompassButton:p,drawerPeekHeight:x,insets:v={bottom:0,left:0,right:0,top:0},bottomOffset:m=0})=>{let g=e.filter(P=>P.position==="above-recenter"),y=e.filter(P=>P.position==="below-recenter"),_=Math.abs(i)>=.5||Math.abs(o)>=.5,b="32px",A=c?t:l==="closed"?v.bottom:0,w=typeof x=="number"?`${x}px`:x||"15%",B=u==="bottom"?l==="closed"?`calc(${b} + 1rem + ${A}px + ${m}px - var(--drag-offset, 0px))`:`calc(${w} + 1rem + ${c?t:0}px + ${m}px - var(--drag-offset, 0px))`:`calc(1rem + ${v.bottom}px + ${m}px)`;return(0,dt.jsxs)("div",{className:`absolute right-4 z-30 flex flex-col items-center gap-3 select-none pointer-events-none ${d?"transition-none":"transition-all duration-300 ease-out"} ${u!=="bottom"||l!=="full"?"opacity-100 scale-100 pointer-events-auto":"opacity-0 scale-75 pointer-events-none"}`,style:{bottom:B},children:[g.length>0&&(0,dt.jsx)("div",{className:"flex flex-col gap-2 pointer-events-auto",children:g.map(P=>(0,dt.jsxs)("div",{className:"relative group flex items-center",children:[P.tooltip&&(0,dt.jsx)("div",{className:"absolute right-14 pointer-events-none opacity-0 scale-95 origin-right group-hover:opacity-100 group-hover:scale-100 transition-all duration-150 bg-zinc-900/95 border border-white/10 text-white text-xs px-2.5 py-1.5 rounded-lg shadow-xl whitespace-nowrap",children:P.tooltip}),(0,dt.jsx)(kt,{className:`w-12 h-12 rounded-full bg-zinc-950/80 backdrop-blur-md border border-white/10 shadow-lg flex items-center justify-center text-white active:scale-95 transition-all cursor-pointer p-0! hover:bg-zinc-900 hover:text-white ${P.activeState?"ring-2 ring-cyan-400 ring-offset-2 ring-offset-zinc-950":""}`,onClick:P.onPress,variant:"ghost",children:P.icon})]},P.id))}),_&&(p?(0,dt.jsx)("div",{className:"pointer-events-auto",children:p}):(0,dt.jsx)("div",{className:"pointer-events-auto",children:(0,dt.jsx)(kt,{className:`w-12 h-12 rounded-full bg-zinc-950/80 backdrop-blur-md border border-white/10 shadow-lg flex items-center justify-center text-white active:scale-95 transition-all duration-300 p-0! hover:bg-zinc-900 hover:text-white ${_?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none h-0 w-0 border-none m-0 p-0 overflow-hidden"}`,onClick:()=>n({pitch:s?.pitch??0}),style:{transform:_?"scale(1) rotate(0deg)":"scale(0.7) rotate(0deg)"},title:"Reset bearing to North",variant:"ghost",children:(0,dt.jsxs)("svg",{className:"w-7 h-7 transition-transform duration-75 ease-out",fill:"none",style:{transform:`rotate(${-i}deg)`},viewBox:"0 0 24 24",children:[(0,dt.jsx)("circle",{cx:"12",cy:"12",r:"9.5",stroke:"white",strokeOpacity:"0.2",strokeWidth:"1"}),(0,dt.jsx)("path",{d:"M12 4.5L15 12H9L12 4.5Z",fill:"#ef4444"}),(0,dt.jsx)("path",{d:"M12 19.5L9 12H15L12 19.5Z",fill:"#f4f4f5"}),(0,dt.jsx)("circle",{cx:"12",cy:"12",fill:"#18181b",r:"1.5"})]})})})),h?(0,dt.jsx)("div",{className:"pointer-events-auto",children:h}):(0,dt.jsx)("div",{className:"pointer-events-auto",children:(0,dt.jsx)(kt,{className:`w-12 h-12 rounded-full bg-zinc-950/80 backdrop-blur-md border border-white/10 shadow-lg flex items-center justify-center text-white active:scale-95 transition-all cursor-pointer p-0! hover:bg-zinc-900 hover:text-white ${r?"ring-2 ring-cyan-400 ring-offset-2 ring-offset-zinc-950":""}`,onClick:()=>a(),title:"Recenter Map",variant:"ghost",children:r?(0,dt.jsxs)("svg",{className:"w-6 h-6 text-cyan-400",fill:"none",stroke:"currentColor",strokeWidth:"2.2",viewBox:"0 0 24 24",children:[(0,dt.jsx)("circle",{cx:"12",cy:"12",r:"8"}),(0,dt.jsx)("circle",{cx:"12",cy:"12",fill:"currentColor",r:"3"}),(0,dt.jsx)("line",{x1:"12",x2:"12",y1:"2",y2:"4"}),(0,dt.jsx)("line",{x1:"12",x2:"12",y1:"20",y2:"22"}),(0,dt.jsx)("line",{x1:"2",x2:"4",y1:"12",y2:"12"}),(0,dt.jsx)("line",{x1:"20",x2:"22",y1:"12",y2:"12"})]}):(0,dt.jsxs)("svg",{className:"w-6 h-6 text-zinc-300",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:[(0,dt.jsx)("circle",{cx:"12",cy:"12",r:"8"}),(0,dt.jsx)("line",{x1:"12",x2:"12",y1:"2",y2:"4"}),(0,dt.jsx)("line",{x1:"12",x2:"12",y1:"20",y2:"22"}),(0,dt.jsx)("line",{x1:"2",x2:"4",y1:"12",y2:"12"}),(0,dt.jsx)("line",{x1:"20",x2:"22",y1:"12",y2:"12"})]})})}),y.length>0&&(0,dt.jsx)("div",{className:"flex flex-col gap-2 pointer-events-auto",children:y.map(P=>(0,dt.jsxs)("div",{className:"relative group flex items-center",children:[P.tooltip&&(0,dt.jsx)("div",{className:"absolute right-14 pointer-events-none opacity-0 scale-95 origin-right group-hover:opacity-100 group-hover:scale-100 transition-all duration-150 bg-zinc-900/95 border border-white/10 text-white text-xs px-2.5 py-1.5 rounded-lg shadow-xl whitespace-nowrap",children:P.tooltip}),(0,dt.jsx)(kt,{className:`w-12 h-12 rounded-full bg-zinc-950/80 backdrop-blur-md border border-white/10 shadow-lg flex items-center justify-center text-white active:scale-95 transition-all cursor-pointer p-0! hover:bg-zinc-900 hover:text-white ${P.activeState?"ring-2 ring-cyan-400 ring-offset-2 ring-offset-zinc-950":""}`,onClick:P.onPress,variant:"ghost",children:P.icon})]},P.id))})]})};var IB=X(de(),1),xg=(0,IB.createContext)({});var MB=X(de(),1);function Hs(e){let t=(0,MB.useRef)(null);return t.current===null&&(t.current=e()),t.current}var mg=X(de(),1);var PB=typeof window<"u";var gg=PB?mg.useLayoutEffect:mg.useEffect;var kB=X(de(),1),t0=(0,kB.createContext)(null);function iu(e,t){e.indexOf(t)===-1&&e.push(t)}function Wi(e,t){let a=e.indexOf(t);a>-1&&e.splice(a,1)}var Wa=(e,t,a)=>a>t?t:a<e?e:a;var Lo=()=>{},Lr=()=>{};var Hr={};var Tf=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e);var Lf=e=>typeof e=="object"&&e!==null;var If=e=>/^0[^.\s]+$/u.test(e);function Mf(e){let t;return()=>(t===void 0&&(t=e()),t)}var ha=e=>e;var Io=(...e)=>e.reduce((t,a)=>r=>a(t(r)));var Ki=(e,t,a)=>{let r=t-e;return r?(a-e)/r:1};var zn=class{constructor(){this.subscriptions=[]}add(t){return iu(this.subscriptions,t),()=>Wi(this.subscriptions,t)}notify(t,a,r){let i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,a,r);else for(let o=0;o<i;o++){let n=this.subscriptions[o];n&&n(t,a,r)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}};var pa=e=>e*1e3,rr=e=>e/1e3;var Pf=(e,t)=>t?e*(1e3/t):0;var RB=(e,t,a)=>{let r=t-e;return((a-e)%r+r)%r+e};var zB=(e,t,a)=>(((1-3*a+3*t)*e+(3*a-6*t))*e+3*t)*e,EW=1e-7,AW=12;function wW(e,t,a,r,i){let o,n,s=0;do n=t+(a-t)/2,o=zB(n,r,i)-e,o>0?a=n:t=n;while(Math.abs(o)>EW&&++s<AW);return n}function Zs(e,t,a,r){if(e===t&&a===r)return ha;let i=o=>wW(o,0,1,e,a);return o=>o===0||o===1?o:zB(i(o),t,r)}var yg=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2;var ou=e=>t=>1-e(1-t);var vg=Zs(.33,1.53,.69,.99),a0=ou(vg),kf=yg(a0);var Rf=e=>e>=1?1:(e*=2)<1?.5*a0(e):.5*(2-Math.pow(2,-10*(e-1)));var zf=e=>1-Math.sin(Math.acos(e)),Of=ou(zf),Nf=yg(zf);var n5=Zs(.42,0,1,1),s5=Zs(0,0,.58,1),Vf=Zs(.42,0,.58,1);var Uf=e=>Array.isArray(e)&&typeof e[0]!="number";function jf(e,t){return Uf(e)?e[RB(0,e.length,t)]:e}var qf=e=>Array.isArray(e)&&typeof e[0]=="number";var OB={linear:ha,easeIn:n5,easeInOut:Vf,easeOut:s5,circIn:zf,circInOut:Nf,circOut:Of,backIn:a0,backInOut:kf,backOut:vg,anticipate:Rf},DW=e=>typeof e=="string",_g=e=>{if(qf(e)){Lr(e.length===4,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");let[t,a,r,i]=e;return Zs(t,a,r,i)}else if(DW(e))return Lr(OB[e]!==void 0,`Invalid easing type '${e}'`,"invalid-easing-type"),OB[e];return e};var Gf=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function NB(e){let t=new Set,a=new Set,r=!1,i=!1,o=new WeakSet,n={delta:0,timestamp:0,isProcessing:!1};function s(u){o.has(u)&&(l.schedule(u),e()),u(n)}let l={schedule:(u,c=!1,d=!1)=>{let h=d&&r?t:a;return c&&o.add(u),h.add(u),u},cancel:u=>{a.delete(u),o.delete(u)},process:u=>{if(n=u,r){i=!0;return}r=!0;let c=t;t=a,a=c,t.forEach(s),t.clear(),r=!1,i&&(i=!1,l.process(u))}};return l}var BW=40;function bg(e,t){let a=!1,r=!0,i={delta:0,timestamp:0,isProcessing:!1},o=()=>a=!0,n=Gf.reduce((y,_)=>(y[_]=NB(o),y),{}),{setup:s,read:l,resolveKeyframes:u,preUpdate:c,update:d,preRender:f,render:h,postRender:p}=n,x=()=>{let y=Hr.useManualTiming,_=y?i.timestamp:performance.now();a=!1,y||(i.delta=r?1e3/60:Math.max(Math.min(_-i.timestamp,BW),1)),i.timestamp=_,i.isProcessing=!0,s.process(i),l.process(i),u.process(i),c.process(i),d.process(i),f.process(i),h.process(i),p.process(i),i.isProcessing=!1,a&&t&&(r=!1,e(x))},v=()=>{a=!0,r=!0,i.isProcessing||e(x)};return{schedule:Gf.reduce((y,_)=>{let b=n[_];return y[_]=(A,w=!1,B=!1)=>(a||v(),b.schedule(A,w,B)),y},{}),cancel:y=>{for(let _=0;_<Gf.length;_++)n[Gf[_]].cancel(y)},state:i,steps:n}}var{schedule:Ge,cancel:Ir,state:ba,steps:Hf}=bg(typeof requestAnimationFrame<"u"?requestAnimationFrame:ha,!0);var Cg;function SW(){Cg=void 0}var xa={now:()=>(Cg===void 0&&xa.set(ba.isProcessing||Hr.useManualTiming?ba.timestamp:performance.now()),Cg),set:e=>{Cg=e,queueMicrotask(SW)}};var VB=e=>t=>typeof t=="string"&&t.startsWith(e),Eg=VB("--"),FW=VB("var(--"),r0=e=>FW(e)?TW.test(e.split("/*")[0].trim()):!1,TW=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function l5(e){return typeof e!="string"?!1:e.split("/*")[0].includes("var(--")}var an={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},On={...an,transform:e=>Wa(0,1,e)},Zf={...an,default:1};var Ws=e=>Math.round(e*1e5)/1e5;var i0=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function UB(e){return e==null}var jB=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu;var o0=(e,t)=>a=>!!(typeof a=="string"&&jB.test(a)&&a.startsWith(e)||t&&!UB(a)&&Object.prototype.hasOwnProperty.call(a,t)),Ag=(e,t,a)=>r=>{if(typeof r!="string")return r;let[i,o,n,s]=r.match(i0);return{[e]:parseFloat(i),[t]:parseFloat(o),[a]:parseFloat(n),alpha:s!==void 0?parseFloat(s):1}};var LW=e=>Wa(0,255,e),u5={...an,transform:e=>Math.round(LW(e))},rn={test:o0("rgb","red"),parse:Ag("red","green","blue"),transform:({red:e,green:t,blue:a,alpha:r=1})=>"rgba("+u5.transform(e)+", "+u5.transform(t)+", "+u5.transform(a)+", "+Ws(On.transform(r))+")"};function IW(e){let t="",a="",r="",i="";return e.length>5?(t=e.substring(1,3),a=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),a=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,a+=a,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(a,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}var Wf={test:o0("#"),parse:IW,transform:rn.transform};var Kf=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Xi=Kf("deg"),Mr=Kf("%"),be=Kf("px"),c5=Kf("vh"),d5=Kf("vw"),wg={...Mr,parse:e=>Mr.parse(e)/100,transform:e=>Mr.transform(e*100)};var Ks={test:o0("hsl","hue"),parse:Ag("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:a,alpha:r=1})=>"hsla("+Math.round(e)+", "+Mr.transform(Ws(t))+", "+Mr.transform(Ws(a))+", "+Ws(On.transform(r))+")"};var oa={test:e=>rn.test(e)||Wf.test(e)||Ks.test(e),parse:e=>rn.test(e)?rn.parse(e):Ks.test(e)?Ks.parse(e):Wf.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?rn.transform(e):Ks.transform(e),getAnimatableNone:e=>{let t=oa.parse(e);return t.alpha=0,oa.transform(t)}};var qB=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function MW(e){return isNaN(e)&&typeof e=="string"&&(e.match(i0)?.length||0)+(e.match(qB)?.length||0)>0}var HB="number",ZB="color",PW="var",kW="var(",GB="${}",RW=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Xs(e){let t=e.toString(),a=[],r={color:[],number:[],var:[]},i=[],o=0,s=t.replace(RW,l=>(oa.test(l)?(r.color.push(o),i.push(ZB),a.push(oa.parse(l))):l.startsWith(kW)?(r.var.push(o),i.push(PW),a.push(l)):(r.number.push(o),i.push(HB),a.push(parseFloat(l))),++o,GB)).split(GB);return{values:a,split:s,indexes:r,types:i}}function zW(e){return Xs(e).values}function WB({split:e,types:t}){let a=e.length;return r=>{let i="";for(let o=0;o<a;o++)if(i+=e[o],r[o]!==void 0){let n=t[o];n===HB?i+=Ws(r[o]):n===ZB?i+=oa.transform(r[o]):i+=r[o]}return i}}function OW(e){return WB(Xs(e))}var NW=e=>typeof e=="number"?0:oa.test(e)?oa.getAnimatableNone(e):e,VW=(e,t)=>typeof e=="number"?t?.trim().endsWith("/")?e:0:NW(e);function UW(e){let t=Xs(e);return WB(t)(t.values.map((r,i)=>VW(r,t.split[i])))}var Ka={test:MW,parse:zW,createTransformer:OW,getAnimatableNone:UW};function f5(e,t,a){return a<0&&(a+=1),a>1&&(a-=1),a<1/6?e+(t-e)*6*a:a<1/2?t:a<2/3?e+(t-e)*(2/3-a)*6:e}function KB({hue:e,saturation:t,lightness:a,alpha:r}){e/=360,t/=100,a/=100;let i=0,o=0,n=0;if(!t)i=o=n=a;else{let s=a<.5?a*(1+t):a+t-a*t,l=2*a-s;i=f5(l,s,e+1/3),o=f5(l,s,e),n=f5(l,s,e-1/3)}return{red:Math.round(i*255),green:Math.round(o*255),blue:Math.round(n*255),alpha:r}}function n0(e,t){return a=>a>0?t:e}var Ke=(e,t,a)=>e+(t-e)*a;var h5=(e,t,a)=>{let r=e*e,i=a*(t*t-r)+r;return i<0?0:Math.sqrt(i)},jW=[Wf,rn,Ks],qW=e=>jW.find(t=>t.test(e));function XB(e){let t=qW(e);if(Lo(!!t,`'${e}' is not an animatable color. Use the equivalent color code instead.`,"color-not-animatable"),!t)return!1;let a=t.parse(e);return t===Ks&&(a=KB(a)),a}var p5=(e,t)=>{let a=XB(e),r=XB(t);if(!a||!r)return n0(e,t);let i={...a};return o=>(i.red=h5(a.red,r.red,o),i.green=h5(a.green,r.green,o),i.blue=h5(a.blue,r.blue,o),i.alpha=Ke(a.alpha,r.alpha,o),rn.transform(i))};var Dg=new Set(["none","hidden"]);function YB(e,t){return Dg.has(e)?a=>a<=0?e:t:a=>a>=1?t:e}function GW(e,t){return a=>Ke(e,t,a)}function Bg(e){return typeof e=="number"?GW:typeof e=="string"?r0(e)?n0:oa.test(e)?p5:WW:Array.isArray(e)?QB:typeof e=="object"?oa.test(e)?p5:HW:n0}function QB(e,t){let a=[...e],r=a.length,i=e.map((o,n)=>Bg(o)(o,t[n]));return o=>{for(let n=0;n<r;n++)a[n]=i[n](o);return a}}function HW(e,t){let a={...e,...t},r={};for(let i in a)e[i]!==void 0&&t[i]!==void 0&&(r[i]=Bg(e[i])(e[i],t[i]));return i=>{for(let o in r)a[o]=r[o](i);return a}}function ZW(e,t){let a=[],r={color:0,var:0,number:0};for(let i=0;i<t.values.length;i++){let o=t.types[i],n=e.indexes[o][r[o]],s=e.values[n]??0;a[i]=s,r[o]++}return a}var WW=(e,t)=>{let a=Ka.createTransformer(t),r=Xs(e),i=Xs(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?Dg.has(e)&&!i.values.length||Dg.has(t)&&!r.values.length?YB(e,t):Io(QB(ZW(r,i),i.values),a):(Lo(!0,`Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`,"complex-values-different"),n0(e,t))};function Sg(e,t,a){return typeof e=="number"&&typeof t=="number"&&typeof a=="number"?Ke(e,t,a):Bg(e)(e,t)}var JB=e=>{let t=({timestamp:a})=>e(a);return{start:(a=!0)=>Ge.update(t,a),stop:()=>Ir(t),now:()=>ba.isProcessing?ba.timestamp:xa.now()}};var Fg=(e,t,a=10)=>{let r="",i=Math.max(Math.round(t/a),2);for(let o=0;o<i;o++)r+=Math.round(e(o/(i-1))*1e4)/1e4+", ";return`linear(${r.substring(0,r.length-2)})`};function s0(e){let t=0,a=50,r=e.next(t);for(;!r.done&&t<2e4;)t+=a,r=e.next(t);return t>=2e4?1/0:t}function Xf(e,t=100,a){let r=a({...e,keyframes:[0,t]}),i=Math.min(s0(r),2e4);return{type:"keyframes",ease:o=>r.next(i*o).value/t,duration:rr(i)}}var ma={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function g5(e,t){return e*Math.sqrt(1-t*t)}var KW=12;function XW(e,t,a){let r=a;for(let i=1;i<KW;i++)r=r-e(r)/t(r);return r}var m5=.001;function YW({duration:e=ma.duration,bounce:t=ma.bounce,velocity:a=ma.velocity,mass:r=ma.mass}){let i,o;Lo(e<=pa(ma.maxDuration),"Spring duration must be 10 seconds or less","spring-duration-limit");let n=1-t;n=Wa(ma.minDamping,ma.maxDamping,n),e=Wa(ma.minDuration,ma.maxDuration,rr(e)),n<1?(i=u=>{let c=u*n,d=c*e,f=c-a,h=g5(u,n),p=Math.exp(-d);return m5-f/h*p},o=u=>{let d=u*n*e,f=d*a+a,h=Math.pow(n,2)*Math.pow(u,2)*e,p=Math.exp(-d),x=g5(Math.pow(u,2),n);return(-i(u)+m5>0?-1:1)*((f-h)*p)/x}):(i=u=>{let c=Math.exp(-u*e),d=(u-a)*e+1;return-m5+c*d},o=u=>{let c=Math.exp(-u*e),d=(a-u)*(e*e);return c*d});let s=5/e,l=XW(i,o,s);if(e=pa(e),isNaN(l))return{stiffness:ma.stiffness,damping:ma.damping,duration:e};{let u=Math.pow(l,2)*r;return{stiffness:u,damping:n*2*Math.sqrt(r*u),duration:e}}}var QW=["duration","bounce"],JW=["stiffness","damping","mass"];function $B(e,t){return t.some(a=>e[a]!==void 0)}function $W(e){let t={velocity:ma.velocity,stiffness:ma.stiffness,damping:ma.damping,mass:ma.mass,isResolvedFromDuration:!1,...e};if(!$B(e,JW)&&$B(e,QW))if(t.velocity=0,e.visualDuration){let a=e.visualDuration,r=2*Math.PI/(a*1.2),i=r*r,o=2*Wa(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:ma.mass,stiffness:i,damping:o}}else{let a=YW({...e,velocity:0});t={...t,...a,mass:ma.mass},t.isResolvedFromDuration=!0}return t}function Nn(e=ma.visualDuration,t=ma.bounce){let a=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e,{restSpeed:r,restDelta:i}=a,o=a.keyframes[0],n=a.keyframes[a.keyframes.length-1],s={done:!1,value:o},{stiffness:l,damping:u,mass:c,duration:d,velocity:f,isResolvedFromDuration:h}=$W({...a,velocity:-rr(a.velocity||0)}),p=f||0,x=u/(2*Math.sqrt(l*c)),v=n-o,m=rr(Math.sqrt(l/c)),g=Math.abs(v)<5;r||(r=g?ma.restSpeed.granular:ma.restSpeed.default),i||(i=g?ma.restDelta.granular:ma.restDelta.default);let y,_,b,A,w,B;if(x<1)b=g5(m,x),A=(p+x*m*v)/b,y=P=>{let R=Math.exp(-x*m*P);return n-R*(A*Math.sin(b*P)+v*Math.cos(b*P))},w=x*m*A+v*b,B=x*m*v-A*b,_=P=>Math.exp(-x*m*P)*(w*Math.sin(b*P)+B*Math.cos(b*P));else if(x===1){y=R=>n-Math.exp(-m*R)*(v+(p+m*v)*R);let P=p+m*v;_=R=>Math.exp(-m*R)*(m*P*R-p)}else{let P=m*Math.sqrt(x*x-1);y=T=>{let C=Math.exp(-x*m*T),E=Math.min(P*T,300);return n-C*((p+x*m*v)*Math.sinh(E)+P*v*Math.cosh(E))/P};let R=(p+x*m*v)/P,k=x*m*R-v*P,S=x*m*v-R*P;_=T=>{let C=Math.exp(-x*m*T),E=Math.min(P*T,300);return C*(k*Math.sinh(E)+S*Math.cosh(E))}}let L={calculatedDuration:h&&d||null,velocity:P=>pa(_(P)),next:P=>{if(!h&&x<1){let k=Math.exp(-x*m*P),S=Math.sin(b*P),T=Math.cos(b*P),C=n-k*(A*S+v*T),E=pa(k*(w*S+B*T));return s.done=Math.abs(E)<=r&&Math.abs(n-C)<=i,s.value=s.done?n:C,s}let R=y(P);if(h)s.done=P>=d;else{let k=pa(_(P));s.done=Math.abs(k)<=r&&Math.abs(n-R)<=i}return s.value=s.done?n:R,s},toString:()=>{let P=Math.min(s0(L),2e4),R=Fg(k=>L.next(P*k).value,P,30);return P+"ms "+R},toTransition:()=>{}};return L}Nn.applyToOptions=e=>{let t=Xf(e,100,Nn);return e.ease=t.ease,e.duration=pa(t.duration),e.type="keyframes",e};var eK=5;function Tg(e,t,a){let r=Math.max(t-eK,0);return Pf(a-e(r),t-r)}function Yf({keyframes:e,velocity:t=0,power:a=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:o=500,modifyTarget:n,min:s,max:l,restDelta:u=.5,restSpeed:c}){let d=e[0],f={done:!1,value:d},h=B=>s!==void 0&&B<s||l!==void 0&&B>l,p=B=>s===void 0?l:l===void 0||Math.abs(s-B)<Math.abs(l-B)?s:l,x=a*t,v=d+x,m=n===void 0?v:n(v);m!==v&&(x=m-d);let g=B=>-x*Math.exp(-B/r),y=B=>m+g(B),_=B=>{let L=g(B),P=y(B);f.done=Math.abs(L)<=u,f.value=f.done?m:P},b,A,w=B=>{h(f.value)&&(b=B,A=Nn({keyframes:[f.value,p(f.value)],velocity:Tg(y,B,f.value),damping:i,stiffness:o,restDelta:u,restSpeed:c}))};return w(0),{calculatedDuration:null,next:B=>{let L=!1;return!A&&b===void 0&&(L=!0,_(B),w(B)),b!==void 0&&B>=b?A.next(B-b):(!L&&_(B),f)}}}function tK(e,t,a){let r=[],i=a||Hr.mix||Sg,o=e.length-1;for(let n=0;n<o;n++){let s=i(e[n],e[n+1]);if(t){let l=Array.isArray(t)?t[n]||ha:t;s=Io(l,s)}r.push(s)}return r}function nu(e,t,{clamp:a=!0,ease:r,mixer:i}={}){let o=e.length;if(Lr(o===t.length,"Both input and output ranges must be the same length","range-length"),o===1)return()=>t[0];if(o===2&&t[0]===t[1])return()=>t[1];let n=e[0]===e[1];e[0]>e[o-1]&&(e=[...e].reverse(),t=[...t].reverse());let s=tK(t,r,i),l=s.length,u=c=>{if(n&&c<e[0])return t[0];let d=0;if(l>1)for(;d<e.length-2&&!(c<e[d+1]);d++);let f=Ki(e[d],e[d+1],c);return s[d](f)};return a?c=>u(Wa(e[0],e[o-1],c)):u}function Qf(e,t){let a=e[e.length-1];for(let r=1;r<=t;r++){let i=Ki(0,t,r);e.push(Ke(a,1,i))}}function Jf(e){let t=[0];return Qf(t,e.length-1),t}function e7(e,t){return e.map(a=>a*t)}function aK(e,t){return e.map(()=>t||Vf).splice(0,e.length-1)}function su({duration:e=300,keyframes:t,times:a,ease:r="easeInOut"}){let i=Uf(r)?r.map(_g):_g(r),o={done:!1,value:t[0]},n=e7(a&&a.length===t.length?a:Jf(t),e),s=nu(n,t,{ease:Array.isArray(i)?i:aK(t,i)});return{calculatedDuration:e,next:l=>(o.value=s(l),o.done=l>=e,o)}}var rK=e=>e!==null;function Ys(e,{repeat:t,repeatType:a="loop"},r,i=1){let o=e.filter(rK),s=i<0||t&&a!=="loop"&&t%2===1?0:o.length-1;return!s||r===void 0?o[s]:r}var iK={decay:Yf,inertia:Yf,tween:su,keyframes:su,spring:Nn};function Lg(e){typeof e.type=="string"&&(e.type=iK[e.type])}var Qs=class{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(t=>{this.resolve=t})}notifyFinished(){this.resolve()}then(t,a){return this.finished.then(t,a)}};var oK=e=>e/100,Vn=class extends Qs{constructor(t){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{let{motionValue:a}=this.options;a&&a.updatedAt!==xa.now()&&this.tick(xa.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=t,this.initAnimation(),this.play(),t.autoplay===!1&&this.pause()}initAnimation(){let{options:t}=this;Lg(t);let{type:a=su,repeat:r=0,repeatDelay:i=0,repeatType:o,velocity:n=0}=t,{keyframes:s}=t,l=a||su;l!==su&&typeof s[0]!="number"&&(this.mixKeyframes=Io(oK,Sg(s[0],s[1])),s=[0,100]);let u=l({...t,keyframes:s});o==="mirror"&&(this.mirroredGenerator=l({...t,keyframes:[...s].reverse(),velocity:-n})),u.calculatedDuration===null&&(u.calculatedDuration=s0(u));let{calculatedDuration:c}=u;this.calculatedDuration=c,this.resolvedDuration=c+i,this.totalDuration=this.resolvedDuration*(r+1)-i,this.generator=u}updateTime(t){let a=Math.round(t-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=a}tick(t,a=!1){let{generator:r,totalDuration:i,mixKeyframes:o,mirroredGenerator:n,resolvedDuration:s,calculatedDuration:l}=this;if(this.startTime===null)return r.next(0);let{delay:u=0,keyframes:c,repeat:d,repeatType:f,repeatDelay:h,type:p,onUpdate:x,finalKeyframe:v}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-i/this.speed,this.startTime)),a?this.currentTime=t:this.updateTime(t);let m=this.currentTime-u*(this.playbackSpeed>=0?1:-1),g=this.playbackSpeed>=0?m<0:m>i;this.currentTime=Math.max(m,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=i);let y=this.currentTime,_=r;if(d){let B=Math.min(this.currentTime,i)/s,L=Math.floor(B),P=B%1;!P&&B>=1&&(P=1),P===1&&L--,L=Math.min(L,d+1),L%2&&(f==="reverse"?(P=1-P,h&&(P-=h/s)):f==="mirror"&&(_=n)),y=Wa(0,1,P)*s}let b;g?(this.delayState.value=c[0],b=this.delayState):b=_.next(y),o&&!g&&(b.value=o(b.value));let{done:A}=b;!g&&l!==null&&(A=this.playbackSpeed>=0?this.currentTime>=i:this.currentTime<=0);let w=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&A);return w&&p!==Yf&&(b.value=Ys(c,this.options,v,this.speed)),x&&x(b.value),w&&this.finish(),b}then(t,a){return this.finished.then(t,a)}get duration(){return rr(this.calculatedDuration)}get iterationDuration(){let{delay:t=0}=this.options||{};return this.duration+rr(t)}get time(){return rr(this.currentTime)}set time(t){t=pa(t),this.currentTime=t,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=t,this.tick(t))}getGeneratorVelocity(){let t=this.currentTime;if(t<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(t);let a=this.generator.next(t).value;return Tg(r=>this.generator.next(r).value,t,a)}get speed(){return this.playbackSpeed}set speed(t){let a=this.playbackSpeed!==t;a&&this.driver&&this.updateTime(xa.now()),this.playbackSpeed=t,a&&this.driver&&(this.time=rr(this.currentTime))}play(){if(this.isStopped)return;let{driver:t=JB,startTime:a}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),this.options.onPlay?.();let r=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=r):this.holdTime!==null?this.startTime=r-this.holdTime:this.startTime||(this.startTime=a??r),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(xa.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}attachTimeline(t){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),t.observe(this)}};function t7(e){for(let t=1;t<e.length;t++)e[t]??(e[t]=e[t-1])}var lu=e=>e*180/Math.PI,y5=e=>{let t=lu(Math.atan2(e[1],e[0]));return v5(t)},nK={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:y5,rotateZ:y5,skewX:e=>lu(Math.atan(e[1])),skewY:e=>lu(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},v5=e=>(e=e%360,e<0&&(e+=360),e),a7=y5,r7=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),i7=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),sK={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:r7,scaleY:i7,scale:e=>(r7(e)+i7(e))/2,rotateX:e=>v5(lu(Math.atan2(e[6],e[5]))),rotateY:e=>v5(lu(Math.atan2(-e[2],e[0]))),rotateZ:a7,rotate:a7,skewX:e=>lu(Math.atan(e[4])),skewY:e=>lu(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function Ig(e){return e.includes("scale")?1:0}function Mg(e,t){if(!e||e==="none")return Ig(t);let a=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u),r,i;if(a)r=sK,i=a;else{let s=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);r=nK,i=s}if(!i)return Ig(t);let o=r[t],n=i[1].split(",").map(lK);return typeof o=="function"?o(n):n[o]}var o7=(e,t)=>{let{transform:a="none"}=getComputedStyle(e);return Mg(a,t)};function lK(e){return parseFloat(e.trim())}var on=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Yi=new Set([...on,"pathRotation"]);var _5=e=>e===an||e===be,uK=new Set(["x","y","z"]),cK=on.filter(e=>!uK.has(e));function n7(e){let t=[];return cK.forEach(a=>{let r=e.getValue(a);r!==void 0&&(t.push([a,r.get()]),r.set(a.startsWith("scale")?1:0))}),t}var Un={width:({x:e},{paddingLeft:t="0",paddingRight:a="0",boxSizing:r})=>{let i=e.max-e.min;return r==="border-box"?i:i-parseFloat(t)-parseFloat(a)},height:({y:e},{paddingTop:t="0",paddingBottom:a="0",boxSizing:r})=>{let i=e.max-e.min;return r==="border-box"?i:i-parseFloat(t)-parseFloat(a)},top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:(e,{transform:t})=>Mg(t,"x"),y:(e,{transform:t})=>Mg(t,"y")};Un.translateX=Un.x;Un.translateY=Un.y;var uu=new Set,b5=!1,C5=!1,E5=!1;function s7(){if(C5){let e=Array.from(uu).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),a=new Map;t.forEach(r=>{let i=n7(r);i.length&&(a.set(r,i),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();let i=a.get(r);i&&i.forEach(([o,n])=>{r.getValue(o)?.set(n)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}C5=!1,b5=!1,uu.forEach(e=>e.complete(E5)),uu.clear()}function l7(){uu.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(C5=!0)})}function u7(){E5=!0,l7(),s7(),E5=!1}var Js=class{constructor(t,a,r,i,o,n=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...t],this.onComplete=a,this.name=r,this.motionValue=i,this.element=o,this.isAsync=n}scheduleResolve(){this.state="scheduled",this.isAsync?(uu.add(this),b5||(b5=!0,Ge.read(l7),Ge.resolveKeyframes(s7))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:t,name:a,element:r,motionValue:i}=this;if(t[0]===null){let o=i?.get(),n=t[t.length-1];if(o!==void 0)t[0]=o;else if(r&&a){let s=r.readValue(a,n);s!=null&&(t[0]=s)}t[0]===void 0&&(t[0]=n),i&&o===void 0&&i.set(t[0])}t7(t)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(t=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,t),uu.delete(this)}cancel(){this.state==="scheduled"&&(uu.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}};var c7=e=>e.startsWith("--");function Pg(e,t,a){c7(t)?e.style.setProperty(t,a):e.style[t]=a}var d7={};function kg(e,t){let a=Mf(e);return()=>d7[t]??a()}var f7=kg(()=>window.ScrollTimeline!==void 0,"scrollTimeline");var Rg=kg(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing");var cu=([e,t,a,r])=>`cubic-bezier(${e}, ${t}, ${a}, ${r})`;var A5={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:cu([0,.65,.55,1]),circOut:cu([.55,0,1,.45]),backIn:cu([.31,.01,.66,-.59]),backOut:cu([.33,1.53,.69,.99])};function w5(e,t){if(e)return typeof e=="function"?Rg()?Fg(e,t):"ease-out":qf(e)?cu(e):Array.isArray(e)?e.map(a=>w5(a,t)||A5.easeOut):A5[e]}function h7(e,t,a,{delay:r=0,duration:i=300,repeat:o=0,repeatType:n="loop",ease:s="easeOut",times:l}={},u=void 0){let c={[t]:a};l&&(c.offset=l);let d=w5(s,i);Array.isArray(d)&&(c.easing=d);let f={delay:r,duration:i,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:o+1,direction:n==="reverse"?"alternate":"normal"};return u&&(f.pseudoElement=u),e.animate(c,f)}function du(e){return typeof e=="function"&&"applyToOptions"in e}function p7({type:e,...t}){return du(e)&&Rg()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}var l0=class extends Qs{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;let{element:a,name:r,keyframes:i,pseudoElement:o,allowFlatten:n=!1,finalKeyframe:s,onComplete:l}=t;this.isPseudoElement=!!o,this.allowFlatten=n,this.options=t,Lr(typeof t.type!="string",`Mini animate() doesn't support "type" as a string.`,"mini-spring");let u=p7(t);this.animation=h7(a,r,i,u,o),u.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!o){let c=Ys(i,this.options,s,this.speed);this.updateMotionValue&&this.updateMotionValue(c),Pg(a,r,c),this.animation.cancel()}l?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:t}=this;t==="idle"||t==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){let t=this.options?.element;!this.isPseudoElement&&t?.isConnected&&this.animation.commitStyles?.()}get duration(){let t=this.animation.effect?.getComputedTiming?.().duration||0;return rr(Number(t))}get iterationDuration(){let{delay:t=0}=this.options||{};return this.duration+rr(t)}get time(){return rr(Number(this.animation.currentTime)||0)}set time(t){let a=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=pa(t),a&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,rangeStart:a,rangeEnd:r,observe:i}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,t&&f7()?(this.animation.timeline=t,a&&(this.animation.rangeStart=a),r&&(this.animation.rangeEnd=r),ha):i(this)}};var x7={anticipate:Rf,backInOut:kf,circInOut:Nf};function dK(e){return e in x7}function m7(e){typeof e.ease=="string"&&dK(e.ease)&&(e.ease=x7[e.ease])}var D5=10,zg=class extends l0{constructor(t){m7(t),Lg(t),super(t),t.startTime!==void 0&&t.autoplay!==!1&&(this.startTime=t.startTime),this.options=t}updateMotionValue(t){let{motionValue:a,onUpdate:r,onComplete:i,element:o,...n}=this.options;if(!a)return;if(t!==void 0){a.set(t);return}let s=new Vn({...n,autoplay:!1}),l=Math.max(D5,xa.now()-this.startTime),u=Wa(0,D5,l-D5),c=s.sample(l).value,{name:d}=this.options;o&&d&&Pg(o,d,c),a.setWithVelocity(s.sample(Math.max(0,l-u)).value,c,u),s.stop()}};var B5=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(Ka.test(e)||e==="0")&&!e.startsWith("url("));function fK(e){let t=e[0];if(e.length===1)return!0;for(let a=0;a<e.length;a++)if(e[a]!==t)return!0}function g7(e,t,a,r){let i=e[0];if(i===null)return!1;if(t==="display"||t==="visibility")return!0;let o=e[e.length-1],n=B5(i,t),s=B5(o,t);return Lo(n===s,`You are trying to animate ${t} from "${i}" to "${o}". "${n?o:i}" is not an animatable value.`,"value-not-animatable"),!n||!s?!1:fK(e)||(a==="spring"||du(a))&&r}function $f(e){e.duration=0,e.type="keyframes"}var Og=new Set(["opacity","clipPath","filter","transform","backgroundColor"]);var hK=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/;function y7(e){for(let t=0;t<e.length;t++)if(typeof e[t]=="string"&&hK.test(e[t]))return!0;return!1}var pK=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),xK=Mf(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));function v7(e){let{motionValue:t,name:a,repeatDelay:r,repeatType:i,damping:o,type:n,keyframes:s}=e,l=t?.owner?.current;if(!(l instanceof HTMLElement)&&!(l instanceof SVGElement))return!1;let{onUpdate:u,transformTemplate:c}=t.owner.getProps();return xK()&&a&&(Og.has(a)||pK.has(a)&&y7(s))&&(a!=="transform"||!c)&&!u&&!r&&i!=="mirror"&&o!==0&&n!=="inertia"}var mK=40,Ng=class extends Qs{constructor({autoplay:t=!0,delay:a=0,type:r="keyframes",repeat:i=0,repeatDelay:o=0,repeatType:n="loop",keyframes:s,name:l,motionValue:u,element:c,...d}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=xa.now();let f={autoplay:t,delay:a,type:r,repeat:i,repeatDelay:o,repeatType:n,name:l,motionValue:u,element:c,...d},h=c?.KeyframeResolver||Js;this.keyframeResolver=new h(s,(p,x,v)=>this.onKeyframesResolved(p,x,f,!v),l,u,c),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(t,a,r,i){this.keyframeResolver=void 0;let{name:o,type:n,velocity:s,delay:l,isHandoff:u,onUpdate:c}=r;this.resolvedAt=xa.now();let d=!0;g7(t,o,n,s)||(d=!1,(Hr.instantAnimations||!l)&&c?.(Ys(t,r,a)),t[0]=t[t.length-1],$f(r),r.repeat=0);let h={startTime:i?this.resolvedAt?this.resolvedAt-this.createdAt>mK?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:a,...r,keyframes:t},p=d&&!u&&v7(h),x=h.motionValue?.owner?.current,v;if(p)try{v=new zg({...h,element:x})}catch{v=new Vn(h)}else v=new Vn(h);v.finished.then(()=>{this.notifyFinished()}).catch(ha),this.pendingTimeline&&(this.stopTimeline=v.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=v}get finished(){return this._animation?this.animation.finished:this._finished}then(t,a){return this.finished.finally(t).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),u7()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(t){this.animation.time=t}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(t){this.animation.speed=t}get startTime(){return this.animation.startTime}attachTimeline(t){return this._animation?this.stopTimeline=this.animation.attachTimeline(t):this.pendingTimeline=t,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}};var Vg=class{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>t.finished))}getAll(t){return this.animations[0][t]}setAll(t,a){for(let r=0;r<this.animations.length;r++)this.animations[r][t]=a}attachTimeline(t){let a=this.animations.map(r=>r.attachTimeline(t));return()=>{a.forEach((r,i)=>{r&&r(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get state(){return this.getAll("state")}get startTime(){return this.getAll("startTime")}get duration(){return _7(this.animations,"duration")}get iterationDuration(){return _7(this.animations,"iterationDuration")}runAll(t){this.animations.forEach(a=>a[t]())}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}};function _7(e,t){let a=0;for(let r=0;r<e.length;r++){let i=e[r][t];i!==null&&i>a&&(a=i)}return a}var eh=class extends Vg{then(t,a){return this.finished.finally(t).then(()=>{})}};function Ug(e,t,a,r=0,i=1){let o=Array.from(e).sort((u,c)=>u.sortNodePosition(c)).indexOf(t),n=e.size,s=(n-1)*r;return typeof a=="function"?a(o,n):i===1?o*r:s-o*r}var b7=30,gK=e=>!isNaN(parseFloat(e)),fu={current:void 0},jg=class{constructor(t,a={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=r=>{let i=xa.now();if(this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(let o of this.dependents)o.dirty()},this.hasAnimated=!1,this.setCurrent(t),this.owner=a.owner}setCurrent(t){this.current=t,this.updatedAt=xa.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=gK(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,a){this.events[t]||(this.events[t]=new zn);let r=this.events[t].add(a);return t==="change"?()=>{r(),Ge.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(let t in this.events)this.events[t].clear()}attach(t,a){this.passiveEffect=t,this.stopPassiveEffect=a}set(t){this.passiveEffect?this.passiveEffect(t,this.updateAndNotify):this.updateAndNotify(t)}setWithVelocity(t,a,r){this.set(a),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,a=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,a&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(t){this.dependents||(this.dependents=new Set),this.dependents.add(t)}removeDependent(t){this.dependents&&this.dependents.delete(t)}get(){return fu.current&&fu.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){let t=xa.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>b7)return 0;let a=Math.min(this.updatedAt-this.prevUpdatedAt,b7);return Pf(parseFloat(this.current)-parseFloat(this.prevFrameValue),a)}start(t){return this.stop(),new Promise(a=>{this.hasAnimated=!0,this.animation=t(a),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}};function Pr(e,t){return new jg(e,t)}function qg(e,t){if(e?.inherit&&t){let{inherit:a,...r}=e;return{...t,...r}}return e}function u0(e,t){let a=e?.[t]??e?.default??e;return a!==e?qg(a,e):a}var yK={type:"spring",stiffness:500,damping:25,restSpeed:10},vK=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),_K={type:"keyframes",duration:.8},bK={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},C7=(e,{keyframes:t})=>t.length>2?_K:Yi.has(e)?e.startsWith("scale")?vK(t[1]):yK:bK;var CK=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]);function E7(e){for(let t in e)if(!CK.has(t))return!0;return!1}var hu=(e,t,a,r={},i,o)=>n=>{let s=u0(r,e)||{},l=s.delay||r.delay||0,{elapsed:u=0}=r;u=u-pa(l);let c={keyframes:Array.isArray(a)?a:[null,a],ease:"easeOut",velocity:t.getVelocity(),...s,delay:-u,onUpdate:f=>{t.set(f),s.onUpdate&&s.onUpdate(f)},onComplete:()=>{n(),s.onComplete&&s.onComplete()},name:e,motionValue:t,element:o?void 0:i};E7(s)||Object.assign(c,C7(e,c)),c.duration&&(c.duration=pa(c.duration)),c.repeatDelay&&(c.repeatDelay=pa(c.repeatDelay)),c.from!==void 0&&(c.keyframes[0]=c.from);let d=!1;if((c.type===!1||c.duration===0&&!c.repeatDelay)&&($f(c),c.delay===0&&(d=!0)),(Hr.instantAnimations||Hr.skipAnimations||i?.shouldSkipAnimations||s.skipAnimations)&&(d=!0,$f(c),c.delay=0),c.allowFlatten=!s.type&&!s.ease,d&&!o&&t.get()!==void 0){let f=Ys(c.keyframes,s);if(f!==void 0){Ge.update(()=>{c.onUpdate(f),c.onComplete()});return}}return s.isSync?new Vn(c):new Ng(c)};var EK=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function AK(e){let t=EK.exec(e);if(!t)return[,];let[,a,r,i]=t;return[`--${a??r}`,i]}var wK=4;function S5(e,t,a=1){Lr(a<=wK,`Max CSS variable fallback depth detected in property "${e}". This may indicate a circular fallback dependency.`,"max-css-var-depth");let[r,i]=AK(e);if(!r)return;let o=window.getComputedStyle(t).getPropertyValue(r);if(o){let n=o.trim();return Tf(n)?parseFloat(n):n}return r0(i)?S5(i,t,a+1):i}function A7(e){let t=[{},{}];return e?.values.forEach((a,r)=>{t[0][r]=a.get(),t[1][r]=a.getVelocity()}),t}function pu(e,t,a,r){if(typeof t=="function"){let[i,o]=A7(r);t=t(a!==void 0?a:e.custom,i,o)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){let[i,o]=A7(r);t=t(a!==void 0?a:e.custom,i,o)}return t}function Ci(e,t,a){let r=e.getProps();return pu(r,t,a!==void 0?a:r.custom,e)}var Gg=new Set(["width","height","top","left","right","bottom",...on]);var th=e=>Array.isArray(e);function DK(e,t,a){e.hasValue(t)?e.getValue(t).set(a):e.addValue(t,Pr(a))}function BK(e){return th(e)?e[e.length-1]||0:e}function w7(e,t){let a=Ci(e,t),{transitionEnd:r={},transition:i={},...o}=a||{};o={...o,...r};for(let n in o){let s=BK(o[n]);DK(e,n,s)}}var vt=e=>!!(e&&e.getVelocity);function D7(e){return!!(vt(e)&&e.add)}function c0(e,t){let a=e.getValue("willChange");if(D7(a))return a.add(t);if(!a&&Hr.WillChange){let r=new Hr.WillChange("auto");e.addValue("willChange",r),r.add(t)}}function d0(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}var B7="framerAppearId",ah="data-"+d0(B7);function Hg(e){return e.props[ah]}var SK=typeof window<"u";function FK({protectedKeys:e,needsAnimating:t},a){let r=e.hasOwnProperty(a)&&t[a]!==!0;return t[a]=!1,r}function xu(e,t,{delay:a=0,transitionOverride:r,type:i}={}){let{transition:o,transitionEnd:n,...s}=t,l=e.getDefaultTransition();o=o?qg(o,l):l;let u=o?.reduceMotion,c=o?.skipAnimations;r&&(o=r);let d=[],f=i&&e.animationState&&e.animationState.getState()[i],h=o?.path;h&&h.animateVisualElement(e,s,o,a,d);for(let p in s){let x=e.getValue(p,e.latestValues[p]??null),v=s[p];if(v===void 0||f&&FK(f,p))continue;let m={delay:a,...u0(o||{},p)};c&&(m.skipAnimations=!0);let g=x.get();if(g!==void 0&&!x.isAnimating()&&!Array.isArray(v)&&v===g&&!m.velocity){Ge.update(()=>x.set(v));continue}let y=!1;if(SK&&window.MotionHandoffAnimation){let A=Hg(e);if(A){let w=window.MotionHandoffAnimation(A,p,Ge);w!==null&&(m.startTime=w,y=!0)}}c0(e,p);let _=u??e.shouldReduceMotion;x.start(hu(p,x,v,_&&Gg.has(p)?{type:!1}:m,e,y));let b=x.animation;b&&d.push(b)}if(n){let p=()=>Ge.update(()=>{n&&w7(e,n)});d.length?Promise.all(d).then(p):p()}return d}function Zg(e,t,a={}){let r=Ci(e,t,a.type==="exit"?e.presenceContext?.custom:void 0),{transition:i=e.getDefaultTransition()||{}}=r||{};a.transitionOverride&&(i=a.transitionOverride);let o=r?()=>Promise.all(xu(e,r,a)):()=>Promise.resolve(),n=e.variantChildren&&e.variantChildren.size?(l=0)=>{let{delayChildren:u=0,staggerChildren:c,staggerDirection:d}=i;return TK(e,t,l,u,c,d,a)}:()=>Promise.resolve(),{when:s}=i;if(s){let[l,u]=s==="beforeChildren"?[o,n]:[n,o];return l().then(()=>u())}else return Promise.all([o(),n(a.delay)])}function TK(e,t,a=0,r=0,i=0,o=1,n){let s=[];for(let l of e.variantChildren)l.notify("AnimationStart",t),s.push(Zg(l,t,{...n,delay:a+(typeof r=="function"?0:r)+Ug(e.variantChildren,l,r,i,o)}).then(()=>l.notify("AnimationComplete",t)));return Promise.all(s)}function S7(e,t,a={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){let i=t.map(o=>Zg(e,o,a));r=Promise.all(i)}else if(typeof t=="string")r=Zg(e,t,a);else{let i=typeof t=="function"?Ci(e,t,a.custom):t;r=Promise.all(xu(e,i,a))}return r.then(()=>{e.notify("AnimationComplete",t)})}var F7={test:e=>e==="auto",parse:e=>e};var Wg=e=>t=>t.test(e);var F5=[an,be,Mr,Xi,d5,c5,F7],T5=e=>F5.find(Wg(e));function T7(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||If(e):!0}var LK=new Set(["brightness","contrast","saturate","opacity"]);function IK(e){let[t,a]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;let[r]=a.match(i0)||[];if(!r)return e;let i=a.replace(r,""),o=LK.has(t)?1:0;return r!==a&&(o*=100),t+"("+o+i+")"}var MK=/\b([a-z-]*)\(.*?\)/gu,rh={...Ka,getAnimatableNone:e=>{let t=e.match(MK);return t?t.map(IK).join(" "):e}};var ih={...Ka,getAnimatableNone:e=>{let t=Ka.parse(e);return Ka.createTransformer(e)(t.map(r=>typeof r=="number"?0:typeof r=="object"?{...r,alpha:1}:r))}};var L5={...an,transform:Math.round};var L7={rotate:Xi,pathRotation:Xi,rotateX:Xi,rotateY:Xi,rotateZ:Xi,scale:Zf,scaleX:Zf,scaleY:Zf,scaleZ:Zf,skew:Xi,skewX:Xi,skewY:Xi,distance:be,translateX:be,translateY:be,translateZ:be,x:be,y:be,z:be,perspective:be,transformPerspective:be,opacity:On,originX:wg,originY:wg,originZ:be};var mu={borderWidth:be,borderTopWidth:be,borderRightWidth:be,borderBottomWidth:be,borderLeftWidth:be,borderRadius:be,borderTopLeftRadius:be,borderTopRightRadius:be,borderBottomRightRadius:be,borderBottomLeftRadius:be,width:be,maxWidth:be,height:be,maxHeight:be,top:be,right:be,bottom:be,left:be,inset:be,insetBlock:be,insetBlockStart:be,insetBlockEnd:be,insetInline:be,insetInlineStart:be,insetInlineEnd:be,padding:be,paddingTop:be,paddingRight:be,paddingBottom:be,paddingLeft:be,paddingBlock:be,paddingBlockStart:be,paddingBlockEnd:be,paddingInline:be,paddingInlineStart:be,paddingInlineEnd:be,margin:be,marginTop:be,marginRight:be,marginBottom:be,marginLeft:be,marginBlock:be,marginBlockStart:be,marginBlockEnd:be,marginInline:be,marginInlineStart:be,marginInlineEnd:be,fontSize:be,backgroundPositionX:be,backgroundPositionY:be,...L7,zIndex:L5,fillOpacity:On,strokeOpacity:On,numOctaves:L5};var PK={...mu,color:oa,backgroundColor:oa,outlineColor:oa,fill:oa,stroke:oa,borderColor:oa,borderTopColor:oa,borderRightColor:oa,borderBottomColor:oa,borderLeftColor:oa,filter:rh,WebkitFilter:rh,mask:ih,WebkitMask:ih},Kg=e=>PK[e];var kK=new Set([rh,ih]);function Xg(e,t){let a=Kg(e);return kK.has(a)||(a=Ka),a.getAnimatableNone?a.getAnimatableNone(t):void 0}var RK=new Set(["auto","none","0"]);function I7(e,t,a){let r=0,i;for(;r<e.length&&!i;){let o=e[r];typeof o=="string"&&!RK.has(o)&&Xs(o).values.length&&(i=e[r]),r++}if(i&&a)for(let o of t)e[o]=Xg(a,i)}var Yg=class extends Js{constructor(t,a,r,i,o){super(t,a,r,i,o,!0)}readKeyframes(){let{unresolvedKeyframes:t,element:a,name:r}=this;if(!a||!a.current)return;super.readKeyframes();for(let c=0;c<t.length;c++){let d=t[c];if(typeof d=="string"&&(d=d.trim(),r0(d))){let f=S5(d,a.current);f!==void 0&&(t[c]=f),c===t.length-1&&(this.finalKeyframe=d)}}if(this.resolveNoneKeyframes(),!Gg.has(r)||t.length!==2)return;let[i,o]=t,n=T5(i),s=T5(o),l=l5(i),u=l5(o);if(l!==u&&Un[r]){this.needsMeasurement=!0;return}if(n!==s)if(_5(n)&&_5(s))for(let c=0;c<t.length;c++){let d=t[c];typeof d=="string"&&(t[c]=parseFloat(d))}else Un[r]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){let{unresolvedKeyframes:t,name:a}=this,r=[];for(let i=0;i<t.length;i++)(t[i]===null||T7(t[i]))&&r.push(i);r.length&&I7(t,r,a)}measureInitialState(){let{element:t,unresolvedKeyframes:a,name:r}=this;if(!t||!t.current)return;r==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=Un[r](t.measureViewportBox(),window.getComputedStyle(t.current)),a[0]=this.measuredOrigin;let i=a[a.length-1];i!==void 0&&t.getValue(r,i).jump(i,!1)}measureEndState(){let{element:t,name:a,unresolvedKeyframes:r}=this;if(!t||!t.current)return;let i=t.getValue(a);i&&i.jump(this.measuredOrigin,!1);let o=r.length-1,n=r[o];r[o]=Un[a](t.measureViewportBox(),window.getComputedStyle(t.current)),n!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=n),this.removedTransforms?.length&&this.removedTransforms.forEach(([s,l])=>{t.getValue(s).set(l)}),this.resolveNoneKeyframes()}};var oh=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"];function gu(e,t,a){if(e==null)return[];if(e instanceof EventTarget)return[e];if(typeof e=="string"){let r=document;t&&(r=t.current);let i=a?.[e]??r.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e).filter(r=>r!=null)}var nh=(e,t)=>t&&typeof e=="number"?t.transform(e):e;function M7(e){return Lf(e)&&"offsetHeight"in e&&!("ownerSVGElement"in e)}var{schedule:yu,cancel:zK}=bg(queueMicrotask,!1);var Qi={x:!1,y:!1};function Qg(){return Qi.x||Qi.y}function I5(e){return e==="x"||e==="y"?Qi[e]?null:(Qi[e]=!0,()=>{Qi[e]=!1}):Qi.x||Qi.y?null:(Qi.x=Qi.y=!0,()=>{Qi.x=Qi.y=!1})}function Jg(e,t){let a=gu(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[a,i,()=>r.abort()]}function OK(e){return!(e.pointerType==="touch"||Qg())}function M5(e,t,a={}){let[r,i,o]=Jg(e,a);return r.forEach(n=>{let s=!1,l=!1,u,c=()=>{n.removeEventListener("pointerleave",p)},d=v=>{u&&(u(v),u=void 0),c()},f=v=>{s=!1,window.removeEventListener("pointerup",f),window.removeEventListener("pointercancel",f),l&&(l=!1,d(v))},h=()=>{s=!0,window.addEventListener("pointerup",f,i),window.addEventListener("pointercancel",f,i)},p=v=>{if(v.pointerType!=="touch"){if(s){l=!0;return}d(v)}},x=v=>{if(!OK(v))return;l=!1;let m=t(n,v);typeof m=="function"&&(u=m,n.addEventListener("pointerleave",p,i))};n.addEventListener("pointerenter",x,i),n.addEventListener("pointerdown",h,i)}),o}var P5=(e,t)=>t?e===t?!0:P5(e,t.parentElement):!1;var vu=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1;var NK=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function k5(e){return NK.has(e.tagName)||e.isContentEditable===!0}var VK=new Set(["INPUT","SELECT","TEXTAREA"]);function R5(e){return VK.has(e.tagName)||e.isContentEditable===!0}var f0=new WeakSet;function P7(e){return t=>{t.key==="Enter"&&e(t)}}function z5(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}var k7=(e,t)=>{let a=e.currentTarget;if(!a)return;let r=P7(()=>{if(f0.has(a))return;z5(a,"down");let i=P7(()=>{z5(a,"up")}),o=()=>z5(a,"cancel");a.addEventListener("keyup",i,t),a.addEventListener("blur",o,t)});a.addEventListener("keydown",r,t),a.addEventListener("blur",()=>a.removeEventListener("keydown",r),t)};function R7(e){return vu(e)&&!Qg()}var z7=new WeakSet;function O5(e,t,a={}){let[r,i,o]=Jg(e,a),n=s=>{let l=s.currentTarget;if(!R7(s)||z7.has(s))return;f0.add(l),a.stopPropagation&&z7.add(s);let u=t(l,s),c={...i,capture:!0},d=(p,x)=>{window.removeEventListener("pointerup",f,c),window.removeEventListener("pointercancel",h,c),f0.has(l)&&f0.delete(l),R7(p)&&typeof u=="function"&&u(p,{success:x})},f=p=>{d(p,l===window||l===document||a.useGlobalTarget||P5(l,p.target))},h=p=>{d(p,!1)};window.addEventListener("pointerup",f,c),window.addEventListener("pointercancel",h,c)};return r.forEach(s=>{(a.useGlobalTarget?window:s).addEventListener("pointerdown",n,i),M7(s)&&(s.addEventListener("focus",u=>k7(u,i)),!k5(s)&&!s.hasAttribute("tabindex")&&(s.tabIndex=0))}),o}function jn(e){return Lf(e)&&"ownerSVGElement"in e}var $g=new WeakMap,e2,O7=(e,t,a)=>(r,i)=>i&&i[0]?i[0][e+"Size"]:jn(r)&&"getBBox"in r?r.getBBox()[t]:r[a],UK=O7("inline","width","offsetWidth"),jK=O7("block","height","offsetHeight");function qK({target:e,borderBoxSize:t}){$g.get(e)?.forEach(a=>{a(e,{get width(){return UK(e,t)},get height(){return jK(e,t)}})})}function GK(e){e.forEach(qK)}function HK(){typeof ResizeObserver>"u"||(e2=new ResizeObserver(GK))}function N7(e,t){e2||HK();let a=gu(e);return a.forEach(r=>{let i=$g.get(r);i||(i=new Set,$g.set(r,i)),i.add(t),e2?.observe(r)}),()=>{a.forEach(r=>{let i=$g.get(r);i?.delete(t),i?.size||e2?.unobserve(r)})}}var t2=new Set,h0;function ZK(){h0=()=>{let e={get width(){return window.innerWidth},get height(){return window.innerHeight}};t2.forEach(t=>t(e))},window.addEventListener("resize",h0)}function V7(e){return t2.add(e),h0||ZK(),()=>{t2.delete(e),!t2.size&&typeof h0=="function"&&(window.removeEventListener("resize",h0),h0=void 0)}}function a2(e,t){return typeof e=="function"?V7(e):N7(e,t)}var _u={value:null,addProjectionMetrics:null};function sh(e){return jn(e)&&e.tagName==="svg"}function bu(...e){let t=!Array.isArray(e[0]),a=t?0:-1,r=e[0+a],i=e[1+a],o=e[2+a],n=e[3+a],s=nu(i,o,n);return t?s(r):s}var WK=[...F5,oa,Ka],U7=e=>WK.find(Wg(e));var N5=()=>({translate:0,scale:1,origin:0,originPoint:0}),$s=()=>({x:N5(),y:N5()}),V5=()=>({min:0,max:0}),Nt=()=>({x:V5(),y:V5()});var qn=new WeakMap;function Gn(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function nn(e){return typeof e=="string"||Array.isArray(e)}var r2=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],lh=["initial",...r2];function el(e){return Gn(e.animate)||lh.some(t=>nn(e[t]))}function uh(e){return!!(el(e)||e.variants)}function j7(e,t,a){for(let r in t){let i=t[r],o=a[r];if(vt(i))e.addValue(r,i);else if(vt(o))e.addValue(r,Pr(i,{owner:e}));else if(o!==i)if(e.hasValue(r)){let n=e.getValue(r);n.liveStyle===!0?n.jump(i):n.hasAnimated||n.set(i)}else{let n=e.getStaticValue(r);e.addValue(r,Pr(n!==void 0?n:i,{owner:e}))}}for(let r in a)t[r]===void 0&&e.removeValue(r);return t}var tl={current:null},Cu={current:!1};var KK=typeof window<"u";function ch(){if(Cu.current=!0,!!KK)if(window.matchMedia){let e=window.matchMedia("(prefers-reduced-motion)"),t=()=>tl.current=e.matches;e.addEventListener("change",t),t()}else tl.current=!1}var q7=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],i2={};function dh(e){i2=e}function U5(){return i2}var Eu=class{scrapeMotionValuesFromProps(t,a,r){return{}}constructor({parent:t,props:a,presenceContext:r,reducedMotionConfig:i,skipAnimations:o,blockInitialAnimation:n,visualState:s},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=Js,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let h=xa.now();this.renderScheduledAt<h&&(this.renderScheduledAt=h,Ge.render(this.render,!1,!0))};let{latestValues:u,renderState:c}=s;this.latestValues=u,this.baseTarget={...u},this.initialValues=a.initial?{...u}:{},this.renderState=c,this.parent=t,this.props=a,this.presenceContext=r,this.depth=t?t.depth+1:0,this.reducedMotionConfig=i,this.skipAnimationsConfig=o,this.options=l,this.blockInitialAnimation=!!n,this.isControllingVariants=el(a),this.isVariantNode=uh(a),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);let{willChange:d,...f}=this.scrapeMotionValuesFromProps(a,{},this);for(let h in f){let p=f[h];u[h]!==void 0&&vt(p)&&p.set(u[h])}}mount(t){if(this.hasBeenMounted)for(let a in this.initialValues)this.values.get(a)?.jump(this.initialValues[a]),this.latestValues[a]=this.initialValues[a];this.current=t,qn.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((a,r)=>this.bindToMotionValue(r,a)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(Cu.current||ch(),this.shouldReduceMotion=tl.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),Ir(this.notifyUpdate),Ir(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(let t in this.events)this.events[t].clear();for(let t in this.features){let a=this.features[t];a&&(a.unmount(),a.isMounted=!1)}this.current=null}addChild(t){this.children.add(t),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(t)}removeChild(t){this.children.delete(t),this.enteringChildren&&this.enteringChildren.delete(t)}bindToMotionValue(t,a){if(this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)(),a.accelerate&&Og.has(t)&&this.current instanceof HTMLElement){let{factory:n,keyframes:s,times:l,ease:u,duration:c}=a.accelerate,d=new l0({element:this.current,name:t,keyframes:s,times:l,ease:u,duration:pa(c)}),f=n(d);this.valueSubscriptions.set(t,()=>{f(),d.cancel()});return}let r=Yi.has(t);r&&this.onBindTransform&&this.onBindTransform();let i=a.on("change",n=>{this.latestValues[t]=n,this.props.onUpdate&&Ge.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()}),o;typeof window<"u"&&window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,a)),this.valueSubscriptions.set(t,()=>{i(),o&&o()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in i2){let a=i2[t];if(!a)continue;let{isEnabled:r,Feature:i}=a;if(!this.features[t]&&i&&r(this.props)&&(this.features[t]=new i(this)),this.features[t]){let o=this.features[t];o.isMounted?o.update():(o.mount(),o.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Nt()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,a){this.latestValues[t]=a}update(t,a){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=a;for(let r=0;r<q7.length;r++){let i=q7[r];this.propEventSubscriptions[i]&&(this.propEventSubscriptions[i](),delete this.propEventSubscriptions[i]);let o="on"+i,n=t[o];n&&(this.propEventSubscriptions[i]=this.on(i,n))}this.prevMotionValues=j7(this,this.scrapeMotionValuesFromProps(t,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(t){return this.props.variants?this.props.variants[t]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(t){let a=this.getClosestVariantNode();if(a)return a.variantChildren&&a.variantChildren.add(t),()=>a.variantChildren.delete(t)}addValue(t,a){let r=this.values.get(t);a!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,a),this.values.set(t,a),this.latestValues[t]=a.get())}removeValue(t){this.values.delete(t);let a=this.valueSubscriptions.get(t);a&&(a(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,a){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&a!==void 0&&(r=Pr(a===null?void 0:a,{owner:this}),this.addValue(t,r)),r}readValue(t,a){let r=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.getBaseTargetFromProps(this.props,t)??this.readValueFromInstance(this.current,t,this.options);return r!=null&&(typeof r=="string"&&(Tf(r)||If(r))?r=parseFloat(r):!U7(r)&&Ka.test(a)&&(r=Xg(t,a)),this.setBaseTarget(t,vt(r)?r.get():r)),vt(r)?r.get():r}setBaseTarget(t,a){this.baseTarget[t]=a}getBaseTarget(t){let{initial:a}=this.props,r;if(typeof a=="string"||typeof a=="object"){let o=pu(this.props,a,this.presenceContext?.custom);o&&(r=o[t])}if(a&&r!==void 0)return r;let i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!vt(i)?i:this.initialValues[t]!==void 0&&r===void 0?void 0:this.baseTarget[t]}on(t,a){return this.events[t]||(this.events[t]=new zn),this.events[t].add(a)}notify(t,...a){this.events[t]&&this.events[t].notify(...a)}scheduleRenderMicrotask(){yu.render(this.render)}};var p0=class extends Eu{constructor(){super(...arguments),this.KeyframeResolver=Yg}sortInstanceNodePosition(t,a){return t.compareDocumentPosition(a)&2?1:-1}getBaseTargetFromProps(t,a){let r=t.style;return r?r[a]:void 0}removeValueFromRenderState(t,{vars:a,style:r}){delete a[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:t}=this.props;vt(t)&&(this.childSubscription=t.on("change",a=>{this.current&&(this.current.textContent=`${a}`)}))}};var Xa=class{constructor(t){this.isMounted=!1,this.node=t}update(){}};function fh({top:e,left:t,right:a,bottom:r}){return{x:{min:t,max:a},y:{min:e,max:r}}}function j5({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function q5(e,t){if(!t)return e;let a=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:a.y,left:a.x,bottom:r.y,right:r.x}}function G5(e){return e===void 0||e===1}function o2({scale:e,scaleX:t,scaleY:a}){return!G5(e)||!G5(t)||!G5(a)}function Hn(e){return o2(e)||H5(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function H5(e){return G7(e.x)||G7(e.y)}function G7(e){return e&&e!=="0%"}function hh(e,t,a){let r=e-a,i=t*r;return a+i}function H7(e,t,a,r,i){return i!==void 0&&(e=hh(e,i,r)),hh(e,a,r)+t}function Z5(e,t=0,a=1,r,i){e.min=H7(e.min,t,a,r,i),e.max=H7(e.max,t,a,r,i)}function W5(e,{x:t,y:a}){Z5(e.x,t.translate,t.scale,t.originPoint),Z5(e.y,a.translate,a.scale,a.originPoint)}var Z7=.999999999999,W7=1.0000000000001;function Y7(e,t,a,r=!1){let i=a.length;if(!i)return;t.x=t.y=1;let o,n;for(let s=0;s<i;s++){o=a[s],n=o.projectionDelta;let{visualElement:l}=o.options;l&&l.props.style&&l.props.style.display==="contents"||(r&&o.options.layoutScroll&&o.scroll&&o!==o.root&&(Ji(e.x,-o.scroll.offset.x),Ji(e.y,-o.scroll.offset.y)),n&&(t.x*=n.x.scale,t.y*=n.y.scale,W5(e,n)),r&&Hn(o.latestValues)&&ph(e,o.latestValues,o.layout?.layoutBox))}t.x<W7&&t.x>Z7&&(t.x=1),t.y<W7&&t.y>Z7&&(t.y=1)}function Ji(e,t){e.min+=t,e.max+=t}function K7(e,t,a,r,i=.5){let o=Ke(e.min,e.max,i);Z5(e,t,a,o,r)}function X7(e,t){return typeof e=="string"?parseFloat(e)/100*(t.max-t.min):e}function ph(e,t,a){let r=a??e;K7(e.x,X7(t.x,r.x),t.scaleX,t.scale,t.originX),K7(e.y,X7(t.y,r.y),t.scaleY,t.scale,t.originY)}function n2(e,t){return fh(q5(e.getBoundingClientRect(),t))}function K5(e,t,a){let r=n2(e,a),{scroll:i}=t;return i&&(Ji(r.x,i.offset.x),Ji(r.y,i.offset.y)),r}var XK={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},YK=on.length;function Q7(e,t,a){let r="",i=!0;for(let n=0;n<YK;n++){let s=on[n],l=e[s];if(l===void 0)continue;let u=!0;if(typeof l=="number")u=l===(s.startsWith("scale")?1:0);else{let c=parseFloat(l);u=s.startsWith("scale")?c===1:c===0}if(!u||a){let c=nh(l,mu[s]);if(!u){i=!1;let d=XK[s]||s;r+=`${d}(${c}) `}a&&(t[s]=c)}}let o=e.pathRotation;return o&&(i=!1,r+=`rotate(${nh(o,mu.pathRotation)}) `),r=r.trim(),a?r=a(t,i?"":r):i&&(r="none"),r}function Au(e,t,a){let{style:r,vars:i,transformOrigin:o}=e,n=!1,s=!1;for(let l in t){let u=t[l];if(Yi.has(l)){n=!0;continue}else if(Eg(l)){i[l]=u;continue}else{let c=nh(u,mu[l]);l.startsWith("origin")?(s=!0,o[l]=c):r[l]=c}}if(t.transform||(n||a?r.transform=Q7(t,e.transform,a):r.transform&&(r.transform="none")),s){let{originX:l="50%",originY:u="50%",originZ:c=0}=o;r.transformOrigin=`${l} ${u} ${c}`}}function s2(e,{style:t,vars:a},r,i){let o=e.style,n;for(n in t)o[n]=t[n];i?.applyProjectionStyles(o,r);for(n in a)o.setProperty(n,a[n])}function J7(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}var x0={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(be.test(e))e=parseFloat(e);else return e;let a=J7(e,t.target.x),r=J7(e,t.target.y);return`${a}% ${r}%`}};var $7={correct:(e,{treeScale:t,projectionDelta:a})=>{let r=e,i=Ka.parse(e);if(i.length>5)return r;let o=Ka.createTransformer(e),n=typeof i[0]!="number"?1:0,s=a.x.scale*t.x,l=a.y.scale*t.y;i[0+n]/=s,i[1+n]/=l;let u=Ke(s,l,.5);return typeof i[2+n]=="number"&&(i[2+n]/=u),typeof i[3+n]=="number"&&(i[3+n]/=u),o(i)}};var xh={borderRadius:{...x0,applyTo:[...oh]},borderTopLeftRadius:x0,borderTopRightRadius:x0,borderBottomLeftRadius:x0,borderBottomRightRadius:x0,boxShadow:$7};function mh(e,{layout:t,layoutId:a}){return Yi.has(e)||e.startsWith("origin")||(t||a!==void 0)&&(!!xh[e]||e==="opacity")}function wu(e,t,a){let r=e.style,i=t?.style,o={};if(!r)return o;for(let n in r)(vt(r[n])||i&&vt(i[n])||mh(n,e)||a?.getValue(n)?.liveStyle!==void 0)&&(o[n]=r[n]);return o}function QK(e){return window.getComputedStyle(e)}var Du=class extends p0{constructor(){super(...arguments),this.type="html",this.renderInstance=s2}mount(t){Lr(!!t.style,"motion.create() components must forward their ref to a HTML or SVG element","custom-component-ref"),super.mount(t)}readValueFromInstance(t,a){if(Yi.has(a))return this.projection?.isProjecting?Ig(a):o7(t,a);{let r=QK(t),i=(Eg(a)?r.getPropertyValue(a):r[a])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:a}){return n2(t,a)}build(t,a,r){Au(t,a,r.transformTemplate)}scrapeMotionValuesFromProps(t,a,r){return wu(t,a,r)}};function JK(e,t){return e in t}var gh=class extends Eu{constructor(){super(...arguments),this.type="object"}readValueFromInstance(t,a){if(JK(a,t)){let r=t[a];if(typeof r=="string"||typeof r=="number")return r}}getBaseTargetFromProps(){}removeValueFromRenderState(t,a){delete a.output[t]}measureInstanceViewportBox(){return Nt()}build(t,a){Object.assign(t.output,a)}renderInstance(t,{output:a}){Object.assign(t,a)}sortInstanceNodePosition(){return 0}};var $K={offset:"stroke-dashoffset",array:"stroke-dasharray"},eX={offset:"strokeDashoffset",array:"strokeDasharray"};function eS(e,t,a=1,r=0,i=!0){e.pathLength=1;let o=i?$K:eX;e[o.offset]=`${-r}`,e[o.array]=`${t} ${a}`}var X5=["transform","opacity","offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function yh(e,{attrX:t,attrY:a,attrScale:r,pathLength:i,pathSpacing:o=1,pathOffset:n=0,...s},l,u,c){if(Au(e,s,u),l){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};let{attrs:d,style:f}=e;for(let h of X5)d[h]!==void 0&&(f[h]=d[h],delete d[h]);(f.transform||d.transformOrigin)&&(f.transformOrigin=d.transformOrigin??"50% 50%",delete d.transformOrigin),f.transform&&(f.transformBox=c?.transformBox??"fill-box",delete d.transformBox),t!==void 0&&(d.x=t),a!==void 0&&(d.y=a),r!==void 0&&(d.scale=r),i!==void 0&&eS(d,i,o,n,!1)}var l2=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);var vh=e=>typeof e=="string"&&e.toLowerCase()==="svg";function tS(e,t,a,r){s2(e,t,void 0,r);for(let i in t.attrs)e.setAttribute(l2.has(i)?i:d0(i),t.attrs[i])}function _h(e,t,a){let r=wu(e,t,a);for(let i in e)if(vt(e[i])||vt(t[i])){let o=on.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[o]=e[i]}return r}var Bu=class extends p0{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Nt}getBaseTargetFromProps(t,a){return t[a]}readValueFromInstance(t,a){if(Yi.has(a)){let r=Kg(a);return r&&r.default||0}if(X5.includes(a)){let i=getComputedStyle(t)[a];if(typeof i=="string"&&i)return i.trim()}return a=l2.has(a)?a:d0(a),t.getAttribute(a)}scrapeMotionValuesFromProps(t,a,r){return _h(t,a,r)}build(t,a,r){yh(t,a,this.isSVGTag,r.transformTemplate,r.style)}renderInstance(t,a,r,i){tS(t,a,r,i)}mount(t){this.isSVGTag=vh(t.tagName),super.mount(t)}};var tX=lh.length;function Y5(e){if(!e)return;if(!e.isControllingVariants){let a=e.parent?Y5(e.parent)||{}:{};return e.props.initial!==void 0&&(a.initial=e.props.initial),a}let t={};for(let a=0;a<tX;a++){let r=lh[a],i=e.props[r];(nn(i)||i===!1)&&(t[r]=i)}return t}function Q5(e,t){if(!Array.isArray(t))return!1;let a=t.length;if(a!==e.length)return!1;for(let r=0;r<a;r++)if(t[r]!==e[r])return!1;return!0}var aX=[...r2].reverse(),rX=r2.length;function iX(e){return t=>Promise.all(t.map(({animation:a,options:r})=>S7(e,a,r)))}function J5(e){let t=iX(e),a=aS(),r=!0,i=!1,o=u=>(c,d)=>{let f=Ci(e,d,u==="exit"?e.presenceContext?.custom:void 0);if(f){let{transition:h,transitionEnd:p,...x}=f;c={...c,...x,...p}}return c};function n(u){t=u(e)}function s(u){let{props:c}=e,d=Y5(e.parent)||{},f=[],h=new Set,p={},x=1/0;for(let m=0;m<rX;m++){let g=aX[m],y=a[g],_=c[g]!==void 0?c[g]:d[g],b=nn(_),A=g===u?y.isActive:null;A===!1&&(x=m);let w=_===d[g]&&_!==c[g]&&b;if(w&&(r||i)&&e.manuallyAnimateOnMount&&(w=!1),y.protectedKeys={...p},!y.isActive&&A===null||!_&&!y.prevProp||Gn(_)||typeof _=="boolean")continue;if(g==="exit"&&y.isActive&&A!==!0){y.prevResolvedValues&&(p={...p,...y.prevResolvedValues});continue}let B=rS(y.prevProp,_),L=B||g===u&&y.isActive&&!w&&b||m>x&&b,P=!1,R=Array.isArray(_)?_:[_],k=R.reduce(o(g),{});A===!1&&(k={});let{prevResolvedValues:S={}}=y,T={...S,...k},C=F=>{L=!0,h.has(F)&&(P=!0,h.delete(F)),y.needsAnimating[F]=!0;let D=e.getValue(F);D&&(D.liveStyle=!1)};for(let F in T){let D=k[F],M=S[F];if(p.hasOwnProperty(F))continue;let j=!1;th(D)&&th(M)?j=!Q5(D,M)||B:j=D!==M,j?D!=null?C(F):h.add(F):D!==void 0&&h.has(F)?C(F):y.protectedKeys[F]=!0}y.prevProp=_,y.prevResolvedValues=k,y.isActive&&(p={...p,...k}),(r||i)&&e.blockInitialAnimation&&(L=!1);let E=w&&B;L&&(!E||P)&&f.push(...R.map(F=>{let D={type:g};if(typeof F=="string"&&(r||i)&&!E&&e.manuallyAnimateOnMount&&e.parent){let{parent:M}=e,j=Ci(M,F);if(M.enteringChildren&&j){let{delayChildren:z}=j.transition||{};D.delay=Ug(M.enteringChildren,e,z)}}return{animation:F,options:D}}))}if(h.size){let m={};if(typeof c.initial!="boolean"){let g=Ci(e,Array.isArray(c.initial)?c.initial[0]:c.initial);g&&g.transition&&(m.transition=g.transition)}h.forEach(g=>{let y=e.getBaseTarget(g),_=e.getValue(g);_&&(_.liveStyle=!0),m[g]=y??null}),f.push({animation:m})}let v=!!f.length;return r&&(c.initial===!1||c.initial===c.animate)&&!e.manuallyAnimateOnMount&&(v=!1),r=!1,i=!1,v?t(f):Promise.resolve()}function l(u,c){if(a[u].isActive===c)return Promise.resolve();e.variantChildren?.forEach(f=>f.animationState?.setActive(u,c)),a[u].isActive=c;let d=s(u);for(let f in a)a[f].protectedKeys={};return d}return{animateChanges:s,setActive:l,setAnimateFunction:n,getState:()=>a,reset:()=>{a=aS(),i=!0}}}function rS(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Q5(t,e):!1}function Su(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function aS(){return{animate:Su(!0),whileInView:Su(),whileHover:Su(),whileTap:Su(),whileDrag:Su(),whileFocus:Su(),exit:Su()}}function u2(e,t){e.min=t.min,e.max=t.max}function $i(e,t){u2(e.x,t.x),u2(e.y,t.y)}function $5(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}var iS=1e-4,oX=1-iS,nX=1+iS,oS=.01,sX=0-oS,lX=0+oS;function za(e){return e.max-e.min}function rC(e,t,a){return Math.abs(e-t)<=a}function eC(e,t,a,r=.5){e.origin=r,e.originPoint=Ke(t.min,t.max,e.origin),e.scale=za(a)/za(t),e.translate=Ke(a.min,a.max,e.origin)-e.originPoint,(e.scale>=oX&&e.scale<=nX||isNaN(e.scale))&&(e.scale=1),(e.translate>=sX&&e.translate<=lX||isNaN(e.translate))&&(e.translate=0)}function Fu(e,t,a,r){eC(e.x,t.x,a.x,r?r.originX:void 0),eC(e.y,t.y,a.y,r?r.originY:void 0)}function tC(e,t,a,r=0){let i=r?Ke(a.min,a.max,r):a.min;e.min=i+t.min,e.max=e.min+za(t)}function iC(e,t,a,r){tC(e.x,t.x,a.x,r?.x),tC(e.y,t.y,a.y,r?.y)}function aC(e,t,a,r=0){let i=r?Ke(a.min,a.max,r):a.min;e.min=t.min-i,e.max=e.min+za(t)}function m0(e,t,a,r){aC(e.x,t.x,a.x,r?.x),aC(e.y,t.y,a.y,r?.y)}function nS(e,t,a,r,i){return e-=t,e=hh(e,1/a,r),i!==void 0&&(e=hh(e,1/i,r)),e}function uX(e,t=0,a=1,r=.5,i,o=e,n=e){if(Mr.test(t)&&(t=parseFloat(t),t=Ke(n.min,n.max,t/100)-n.min),typeof t!="number")return;let s=Ke(o.min,o.max,r);e===o&&(s-=t),e.min=nS(e.min,t,a,s,i),e.max=nS(e.max,t,a,s,i)}function sS(e,t,[a,r,i],o,n){uX(e,t[a],t[r],t[i],t.scale,o,n)}var cX=["x","scaleX","originX"],dX=["y","scaleY","originY"];function oC(e,t,a,r){sS(e.x,t,cX,a?a.x:void 0,r?r.x:void 0),sS(e.y,t,dX,a?a.y:void 0,r?r.y:void 0)}function lS(e){return e.translate===0&&e.scale===1}function nC(e){return lS(e.x)&&lS(e.y)}function uS(e,t){return e.min===t.min&&e.max===t.max}function dS(e,t){return uS(e.x,t.x)&&uS(e.y,t.y)}function cS(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function sC(e,t){return cS(e.x,t.x)&&cS(e.y,t.y)}function lC(e){return za(e.x)/za(e.y)}function uC(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}function Ei(e){return[e("x"),e("y")]}function fS(e,t,a){let r="",i=e.x.translate/t.x,o=e.y.translate/t.y,n=a?.z||0;if((i||o||n)&&(r=`translate3d(${i}px, ${o}px, ${n}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),a){let{transformPerspective:u,rotate:c,pathRotation:d,rotateX:f,rotateY:h,skewX:p,skewY:x}=a;u&&(r=`perspective(${u}px) ${r}`),c&&(r+=`rotate(${c}deg) `),d&&(r+=`rotate(${d}deg) `),f&&(r+=`rotateX(${f}deg) `),h&&(r+=`rotateY(${h}deg) `),p&&(r+=`skewX(${p}deg) `),x&&(r+=`skewY(${x}deg) `)}let s=e.x.scale*t.x,l=e.y.scale*t.y;return(s!==1||l!==1)&&(r+=`scale(${s}, ${l})`),r||"none"}var fX=oh.length,hS=e=>typeof e=="string"?parseFloat(e):e,pS=e=>typeof e=="number"||be.test(e);function mS(e,t,a,r,i,o){i?(e.opacity=Ke(0,a.opacity??1,hX(r)),e.opacityExit=Ke(t.opacity??1,0,pX(r))):o&&(e.opacity=Ke(t.opacity??1,a.opacity??1,r));for(let n=0;n<fX;n++){let s=oh[n],l=xS(t,s),u=xS(a,s);if(l===void 0&&u===void 0)continue;l||(l=0),u||(u=0),l===0||u===0||pS(l)===pS(u)?(e[s]=Math.max(Ke(hS(l),hS(u),r),0),(Mr.test(u)||Mr.test(l))&&(e[s]+="%")):e[s]=u}(t.rotate||a.rotate)&&(e.rotate=Ke(t.rotate||0,a.rotate||0,r))}function xS(e,t){return e[t]!==void 0?e[t]:e.borderRadius}var hX=gS(0,.5,Of),pX=gS(.5,.95,ha);function gS(e,t,a){return r=>r<e?0:r>t?1:a(Ki(e,t,r))}function bh(e,t,a){let r=vt(e)?e:Pr(e);return r.start(hu("",r,t,a)),r.animation}function sn(e,t,a,r={passive:!0}){return e.addEventListener(t,a,r),()=>e.removeEventListener(t,a,r)}var yS=(e,t)=>e.depth-t.depth;var c2=class{constructor(){this.children=[],this.isDirty=!1}add(t){iu(this.children,t),this.isDirty=!0}remove(t){Wi(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(yS),this.isDirty=!1,this.children.forEach(t)}};function vS(e,t){let a=xa.now(),r=({timestamp:i})=>{let o=i-a;o>=t&&(Ir(r),e(o-t))};return Ge.setup(r,!0),()=>Ir(r)}function Tu(e){return vt(e)?e.get():e}var d2=class{constructor(){this.members=[]}add(t){iu(this.members,t);for(let a=this.members.length-1;a>=0;a--){let r=this.members[a];if(r===t||r===this.lead||r===this.prevLead)continue;let i=r.instance;(!i||i.isConnected===!1)&&!r.snapshot&&(Wi(this.members,r),r.unmount())}t.scheduleRender()}remove(t){if(Wi(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){let a=this.members[this.members.length-1];a&&this.promote(a)}}relegate(t){for(let a=this.members.indexOf(t)-1;a>=0;a--){let r=this.members[a];if(r.isPresent!==!1&&r.instance?.isConnected!==!1)return this.promote(r),!0}return!1}promote(t,a){let r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.updateSnapshot(),t.scheduleRender();let{layoutDependency:i}=r.options,{layoutDependency:o}=t.options;(i===void 0||i!==o)&&(t.resumeFrom=r,a&&(r.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root?.isUpdating&&(t.isLayoutDirty=!0)),t.options.crossfade===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{t.options.onExitComplete?.(),t.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(t=>t.instance&&t.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}};var Lu={hasAnimatedSinceResize:!0,hasEverUpdated:!1};var Iu={nodes:0,calculatedTargetDeltas:0,calculatedProjections:0},cC=["","X","Y","Z"],xX=1e3,mX=0;function dC(e,t,a,r){let{latestValues:i}=t;i[e]&&(a[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function SS(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;let{visualElement:t}=e.options;if(!t)return;let a=Hg(t);if(window.MotionHasOptimisedAnimation(a,"transform")){let{layout:i,layoutId:o}=e.options;window.MotionCancelOptimisedAnimation(a,"transform",Ge,!(i||o))}let{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&SS(r)}function f2({attachResizeListener:e,defaultParent:t,measureScroll:a,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(n={},s=t?.()){this.id=mX++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,_u.value&&(Iu.nodes=Iu.calculatedTargetDeltas=Iu.calculatedProjections=0),this.nodes.forEach(vX),this.nodes.forEach(wX),this.nodes.forEach(DX),this.nodes.forEach(_X),_u.addProjectionMetrics&&_u.addProjectionMetrics(Iu)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=n,this.root=s?s.root||s:this,this.path=s?[...s.path,s]:[],this.parent=s,this.depth=s?s.depth+1:0;for(let l=0;l<this.path.length;l++)this.path[l].shouldResetTransform=!0;this.root===this&&(this.nodes=new c2)}addEventListener(n,s){return this.eventHandlers.has(n)||this.eventHandlers.set(n,new zn),this.eventHandlers.get(n).add(s)}notifyListeners(n,...s){let l=this.eventHandlers.get(n);l&&l.notify(...s)}hasListeners(n){return this.eventHandlers.has(n)}mount(n){if(this.instance)return;this.isSVG=jn(n)&&!sh(n),this.instance=n;let{layoutId:s,layout:l,visualElement:u}=this.options;if(u&&!u.current&&u.mount(n),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(l||s)&&(this.isLayoutDirty=!0),e){let c,d=0,f=()=>this.root.updateBlockedByResize=!1;Ge.read(()=>{d=window.innerWidth}),e(n,()=>{let h=window.innerWidth;h!==d&&(d=h,this.root.updateBlockedByResize=!0,c&&c(),c=vS(f,250),Lu.hasAnimatedSinceResize&&(Lu.hasAnimatedSinceResize=!1,this.nodes.forEach(CS)))})}s&&this.root.registerSharedNode(s,this),this.options.animate!==!1&&u&&(s||l)&&this.addEventListener("didUpdate",({delta:c,hasLayoutChanged:d,hasRelativeLayoutChanged:f,layout:h})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let p=this.options.transition||u.getDefaultTransition()||LX,{onLayoutAnimationStart:x,onLayoutAnimationComplete:v}=u.getProps(),m=!this.targetLayout||!sC(this.targetLayout,h),g=!d&&f;if(this.options.layoutRoot||this.resumeFrom||g||d&&(m||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let y={...u0(p,"layout"),onPlay:x,onComplete:v};(u.shouldReduceMotion||this.options.layoutRoot)&&(y.delay=0,y.type=!1),this.startAnimation(y),this.setAnimationOrigin(c,g,y.path)}else d||CS(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=h})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let n=this.getStack();n&&n.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),Ir(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(BX),this.animationId++)}getTransformTemplate(){let{visualElement:n}=this.options;return n&&n.getProps().transformTemplate}willUpdate(n=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&SS(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let c=0;c<this.path.length;c++){let d=this.path[c];d.shouldResetTransform=!0,(typeof d.latestValues.x=="string"||typeof d.latestValues.y=="string")&&(d.isLayoutDirty=!0),d.updateScroll("snapshot"),d.options.layoutRoot&&d.willUpdate(!1)}let{layoutId:s,layout:l}=this.options;if(s===void 0&&!l)return;let u=this.getTransformTemplate();this.prevTransformTemplateValue=u?u(this.latestValues,""):void 0,this.updateSnapshot(),n&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){let l=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),l&&this.nodes.forEach(CX),this.nodes.forEach(_S);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(bS);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(EX),this.nodes.forEach(AX),this.nodes.forEach(gX),this.nodes.forEach(yX)):this.nodes.forEach(bS),this.clearAllSnapshots();let s=xa.now();ba.delta=Wa(0,1e3/60,s-ba.timestamp),ba.timestamp=s,ba.isProcessing=!0,Hf.update.process(ba),Hf.preRender.process(ba),Hf.render.process(ba),ba.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,yu.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(bX),this.sharedNodes.forEach(SX)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,Ge.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){Ge.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!za(this.snapshot.measuredBox.x)&&!za(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l<this.path.length;l++)this.path[l].updateScroll();let n=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||(this.layoutCorrected=Nt()),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);let{visualElement:s}=this.options;s&&s.notify("LayoutMeasure",this.layout.layoutBox,n?n.layoutBox:void 0)}updateScroll(n="measure"){let s=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===n&&(s=!1),s&&this.instance){let l=r(this.instance);this.scroll={animationId:this.root.animationId,phase:n,isRoot:l,offset:a(this.instance),wasRoot:this.scroll?this.scroll.isRoot:l}}}resetTransform(){if(!i)return;let n=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,s=this.projectionDelta&&!nC(this.projectionDelta),l=this.getTransformTemplate(),u=l?l(this.latestValues,""):void 0,c=u!==this.prevTransformTemplateValue;n&&this.instance&&(s||Hn(this.latestValues)||c)&&(i(this.instance,u),this.shouldResetTransform=!1,this.scheduleRender())}measure(n=!0){let s=this.measurePageBox(),l=this.removeElementScroll(s);return n&&(l=this.removeTransform(l)),IX(l),{animationId:this.root.animationId,measuredBox:s,layoutBox:l,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:n}=this.options;if(!n)return Nt();let s=n.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(MX))){let{scroll:u}=this.root;u&&(Ji(s.x,u.offset.x),Ji(s.y,u.offset.y))}return s}removeElementScroll(n){let s=Nt();if($i(s,n),this.scroll?.wasRoot)return s;for(let l=0;l<this.path.length;l++){let u=this.path[l],{scroll:c,options:d}=u;u!==this.root&&c&&d.layoutScroll&&(c.wasRoot&&$i(s,n),Ji(s.x,c.offset.x),Ji(s.y,c.offset.y))}return s}applyTransform(n,s=!1,l){let u=l||Nt();$i(u,n);for(let c=0;c<this.path.length;c++){let d=this.path[c];!s&&d.options.layoutScroll&&d.scroll&&d!==d.root&&(Ji(u.x,-d.scroll.offset.x),Ji(u.y,-d.scroll.offset.y)),Hn(d.latestValues)&&ph(u,d.latestValues,d.layout?.layoutBox)}return Hn(this.latestValues)&&ph(u,this.latestValues,this.layout?.layoutBox),u}removeTransform(n){let s=Nt();$i(s,n);for(let l=0;l<this.path.length;l++){let u=this.path[l];if(!Hn(u.latestValues))continue;let c;u.instance&&(o2(u.latestValues)&&u.updateSnapshot(),c=Nt(),$i(c,u.measurePageBox())),oC(s,u.latestValues,u.snapshot?.layoutBox,c)}return Hn(this.latestValues)&&oC(s,this.latestValues),s}setTargetDelta(n){this.targetDelta=n,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(n){this.options={...this.options,...n,crossfade:n.crossfade!==void 0?n.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==ba.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(n=!1){let s=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=s.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=s.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=s.isSharedProjectionDirty);let l=!!this.resumingFrom||this!==s;if(!(n||l&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout:c,layoutId:d}=this.options;if(!this.layout||!(c||d))return;this.resolvedRelativeTargetAt=ba.timestamp;let f=this.getClosestProjectingParent();f&&this.linkedParentVersion!==f.layoutVersion&&!f.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&f&&f.layout?this.createRelativeTarget(f,this.layout.layoutBox,f.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=Nt(),this.targetWithTransforms=Nt()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),iC(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):$i(this.target,this.layout.layoutBox),W5(this.target,this.targetDelta)):$i(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&f&&!!f.resumingFrom==!!this.resumingFrom&&!f.options.layoutScroll&&f.target&&this.animationProgress!==1?this.createRelativeTarget(f,this.target,f.target):this.relativeParent=this.relativeTarget=void 0),_u.value&&Iu.calculatedTargetDeltas++)}getClosestProjectingParent(){if(!(!this.parent||o2(this.parent.latestValues)||H5(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(n,s,l){this.relativeParent=n,this.linkedParentVersion=n.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Nt(),this.relativeTargetOrigin=Nt(),m0(this.relativeTargetOrigin,s,l,this.options.layoutAnchor||void 0),$i(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){let n=this.getLead(),s=!!this.resumingFrom||this!==n,l=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(l=!1),s&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(l=!1),this.resolvedRelativeTargetAt===ba.timestamp&&(l=!1),l)return;let{layout:u,layoutId:c}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(u||c))return;$i(this.layoutCorrected,this.layout.layoutBox);let d=this.treeScale.x,f=this.treeScale.y;Y7(this.layoutCorrected,this.treeScale,this.path,s),n.layout&&!n.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(n.target=n.layout.layoutBox,n.targetWithTransforms=Nt());let{target:h}=n;if(!h){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():($5(this.prevProjectionDelta.x,this.projectionDelta.x),$5(this.prevProjectionDelta.y,this.projectionDelta.y)),Fu(this.projectionDelta,this.layoutCorrected,h,this.latestValues),(this.treeScale.x!==d||this.treeScale.y!==f||!uC(this.projectionDelta.x,this.prevProjectionDelta.x)||!uC(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",h)),_u.value&&Iu.calculatedProjections++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(n=!0){if(this.options.visualElement?.scheduleRender(),n){let s=this.getStack();s&&s.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=$s(),this.projectionDelta=$s(),this.projectionDeltaWithTransform=$s()}setAnimationOrigin(n,s=!1,l){let u=this.snapshot,c=u?u.latestValues:{},d={...this.latestValues},f=$s();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!s;let h=Nt(),p=u?u.source:void 0,x=this.layout?this.layout.source:void 0,v=p!==x,m=this.getStack(),g=!m||m.members.length<=1,y=!!(v&&!g&&this.options.crossfade===!0&&!this.path.some(TX));this.animationProgress=0;let _,b=l?.interpolateProjection(n);this.mixTargetDelta=A=>{let w=A/1e3,B=b?.(w);B?(f.x.translate=B.x,f.x.scale=Ke(n.x.scale,1,w),f.x.origin=n.x.origin,f.x.originPoint=n.x.originPoint,f.y.translate=B.y,f.y.scale=Ke(n.y.scale,1,w),f.y.origin=n.y.origin,f.y.originPoint=n.y.originPoint):(ES(f.x,n.x,w),ES(f.y,n.y,w)),this.setTargetDelta(f),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(m0(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),FX(this.relativeTarget,this.relativeTargetOrigin,h,w),_&&dS(this.relativeTarget,_)&&(this.isProjectionDirty=!1),_||(_=Nt()),$i(_,this.relativeTarget)),v&&(this.animationValues=d,mS(d,c,this.latestValues,w,y,g)),B&&B.rotate!==void 0&&(this.animationValues||(this.animationValues=d),this.animationValues.pathRotation=B.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=w},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(n){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(Ir(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Ge.update(()=>{Lu.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Pr(0)),this.motionValue.jump(0,!1),this.currentAnimation=bh(this.motionValue,[0,1e3],{...n,velocity:0,isSync:!0,onUpdate:s=>{this.mixTargetDelta(s),n.onUpdate&&n.onUpdate(s)},onComplete:()=>{n.onComplete&&n.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let n=this.getStack();n&&n.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(xX),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let n=this.getLead(),{targetWithTransforms:s,target:l,layout:u,latestValues:c}=n;if(!(!s||!l||!u)){if(this!==n&&this.layout&&u&&FS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){l=this.target||Nt();let d=za(this.layout.layoutBox.x);l.x.min=n.target.x.min,l.x.max=l.x.min+d;let f=za(this.layout.layoutBox.y);l.y.min=n.target.y.min,l.y.max=l.y.min+f}$i(s,l),ph(s,c),Fu(this.projectionDeltaWithTransform,this.layoutCorrected,s,c)}}registerSharedNode(n,s){this.sharedNodes.has(n)||this.sharedNodes.set(n,new d2),this.sharedNodes.get(n).add(s);let u=s.options.initialPromotionConfig;s.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(s):void 0})}isLead(){let n=this.getStack();return n?n.lead===this:!0}getLead(){let{layoutId:n}=this.options;return n?this.getStack()?.lead||this:this}getPrevLead(){let{layoutId:n}=this.options;return n?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:n}=this.options;if(n)return this.root.sharedNodes.get(n)}promote({needsReset:n,transition:s,preserveFollowOpacity:l}={}){let u=this.getStack();u&&u.promote(this,l),n&&(this.projectionDelta=void 0,this.needsReset=!0),s&&this.setOptions({transition:s})}relegate(){let n=this.getStack();return n?n.relegate(this):!1}resetSkewAndRotation(){let{visualElement:n}=this.options;if(!n)return;let s=!1,{latestValues:l}=n;if((l.z||l.rotate||l.rotateX||l.rotateY||l.rotateZ||l.skewX||l.skewY)&&(s=!0),!s)return;let u={};l.z&&dC("z",n,u,this.animationValues);for(let c=0;c<cC.length;c++)dC(`rotate${cC[c]}`,n,u,this.animationValues),dC(`skew${cC[c]}`,n,u,this.animationValues);n.render();for(let c in u)n.setStaticValue(c,u[c]),this.animationValues&&(this.animationValues[c]=u[c]);n.scheduleRender()}applyProjectionStyles(n,s){if(!this.instance||this.isSVG)return;if(!this.isVisible){n.visibility="hidden";return}let l=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,n.visibility="",n.opacity="",n.pointerEvents=Tu(s?.pointerEvents)||"",n.transform=l?l(this.latestValues,""):"none";return}let u=this.getLead();if(!this.projectionDelta||!this.layout||!u.target){this.options.layoutId&&(n.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,n.pointerEvents=Tu(s?.pointerEvents)||""),this.hasProjected&&!Hn(this.latestValues)&&(n.transform=l?l({},""):"none",this.hasProjected=!1);return}n.visibility="";let c=u.animationValues||u.latestValues;this.applyTransformsToTarget();let d=fS(this.projectionDeltaWithTransform,this.treeScale,c);l&&(d=l(c,d)),n.transform=d;let{x:f,y:h}=this.projectionDelta;n.transformOrigin=`${f.origin*100}% ${h.origin*100}% 0`,u.animationValues?n.opacity=u===this?c.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:c.opacityExit:n.opacity=u===this?c.opacity!==void 0?c.opacity:"":c.opacityExit!==void 0?c.opacityExit:0;for(let p in xh){if(c[p]===void 0)continue;let{correct:x,applyTo:v,isCSSVariable:m}=xh[p],g=d==="none"?c[p]:x(c[p],u);if(v){let y=v.length;for(let _=0;_<y;_++)n[v[_]]=g}else m?this.options.visualElement.renderState.vars[p]=g:n[p]=g}this.options.layoutId&&(n.pointerEvents=u===this?Tu(s?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(n=>n.currentAnimation?.stop()),this.root.nodes.forEach(_S),this.root.sharedNodes.clear()}}}function gX(e){e.updateLayout()}function yX(e){let t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners("didUpdate")){let{layoutBox:a,measuredBox:r}=e.layout,{animationType:i}=e.options,o=t.source!==e.layout.source;if(i==="size")Ei(c=>{let d=o?t.measuredBox[c]:t.layoutBox[c],f=za(d);d.min=a[c].min,d.max=d.min+f});else if(i==="x"||i==="y"){let c=i==="x"?"y":"x";u2(o?t.measuredBox[c]:t.layoutBox[c],a[c])}else FS(i,t.layoutBox,a)&&Ei(c=>{let d=o?t.measuredBox[c]:t.layoutBox[c],f=za(a[c]);d.max=d.min+f,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[c].max=e.relativeTarget[c].min+f)});let n=$s();Fu(n,a,t.layoutBox);let s=$s();o?Fu(s,e.applyTransform(r,!0),t.measuredBox):Fu(s,a,t.layoutBox);let l=!nC(n),u=!1;if(!e.resumeFrom){let c=e.getClosestProjectingParent();if(c&&!c.resumeFrom){let{snapshot:d,layout:f}=c;if(d&&f){let h=e.options.layoutAnchor||void 0,p=Nt();m0(p,t.layoutBox,d.layoutBox,h);let x=Nt();m0(x,a,f.layoutBox,h),sC(p,x)||(u=!0),c.options.layoutRoot&&(e.relativeTarget=x,e.relativeTargetOrigin=p,e.relativeParent=c)}}}e.notifyListeners("didUpdate",{layout:a,snapshot:t,delta:s,layoutDelta:n,hasLayoutChanged:l,hasRelativeLayoutChanged:u})}else if(e.isLead()){let{onExitComplete:a}=e.options;a&&a()}e.options.transition=void 0}function vX(e){_u.value&&Iu.nodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function _X(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function bX(e){e.clearSnapshot()}function _S(e){e.clearMeasurements()}function CX(e){e.isLayoutDirty=!0,e.updateLayout()}function bS(e){e.isLayoutDirty=!1}function EX(e){e.isAnimationBlocked&&e.layout&&!e.isLayoutDirty&&(e.snapshot=e.layout,e.isLayoutDirty=!0)}function AX(e){let{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function CS(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function wX(e){e.resolveTargetDelta()}function DX(e){e.calcProjection()}function BX(e){e.resetSkewAndRotation()}function SX(e){e.removeLeadSnapshot()}function ES(e,t,a){e.translate=Ke(t.translate,0,a),e.scale=Ke(t.scale,1,a),e.origin=t.origin,e.originPoint=t.originPoint}function AS(e,t,a,r){e.min=Ke(t.min,a.min,r),e.max=Ke(t.max,a.max,r)}function FX(e,t,a,r){AS(e.x,t.x,a.x,r),AS(e.y,t.y,a.y,r)}function TX(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}var LX={duration:.45,ease:[.4,0,.1,1]},wS=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),DS=wS("applewebkit/")&&!wS("chrome/")?Math.round:ha;function BS(e){e.min=DS(e.min),e.max=DS(e.max)}function IX(e){BS(e.x),BS(e.y)}function FS(e,t,a){return e==="position"||e==="preserve-aspect"&&!rC(lC(t),lC(a),.2)}function MX(e){return e!==e.root&&e.scroll?.wasRoot}var TS=f2({attachResizeListener:(e,t)=>sn(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0});var h2={current:void 0},Ch=f2({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!h2.current){let e=new TS({});e.mount(window),e.setOptions({layoutScroll:!0}),h2.current=e}return h2.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"});var LS=X(de(),1),g0=(0,LS.createContext)({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});var al=X(de(),1);function IS(e=!0){let t=(0,al.useContext)(t0);if(t===null)return[!0,null];let{isPresent:a,onExitComplete:r,register:i}=t,o=(0,al.useId)();(0,al.useEffect)(()=>{if(e)return i(o)},[e]);let n=(0,al.useCallback)(()=>e&&r&&r(o),[o,r,e]);return!a&&r?[!1,n]:[!0]}var MS=X(de(),1),p2=(0,MS.createContext)({strict:!1});var PS={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},kS=!1;function PX(){if(kS)return;let e={};for(let t in PS)e[t]={isEnabled:a=>PS[t].some(r=>!!a[r])};dh(e),kS=!0}function x2(){return PX(),U5()}function RS(e){let t=x2();for(let a in e)t[a]={...t[a],...e[a]};dh(t)}var _2=X(ke(),1);var b0=X(de(),1);var zS=X(de(),1),rl=(0,zS.createContext)({});var m2=X(de(),1);function OS(e,t){if(el(e)){let{initial:a,animate:r}=e;return{initial:a===!1||nn(a)?a:void 0,animate:nn(r)?r:void 0}}return e.inherit!==!1?t:{}}function VS(e){let{initial:t,animate:a}=OS(e,(0,m2.useContext)(rl));return(0,m2.useMemo)(()=>({initial:t,animate:a}),[NS(t),NS(a)])}function NS(e){return Array.isArray(e)?e.join(" "):e}var _0=X(de(),1);var US=X(de(),1);var y0=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function fC(e,t,a){for(let r in t)!vt(t[r])&&!mh(r,a)&&(e[r]=t[r])}function kX({transformTemplate:e},t){return(0,US.useMemo)(()=>{let a=y0();return Au(a,t,e),Object.assign({},a.vars,a.style)},[t])}function RX(e,t){let a=e.style||{},r={};return fC(r,a,e),Object.assign(r,kX(e,t)),r}function jS(e,t){let a={},r=RX(e,t);return e.drag&&e.dragListener!==!1&&(a.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(a.tabIndex=0),a.style=r,a}var qS=X(de(),1);var g2=()=>({...y0(),attrs:{}});function GS(e,t,a,r){let i=(0,qS.useMemo)(()=>{let o=g2();return yh(o,t,vh(r),e.transformTemplate,e.style),{...o.attrs,style:{...o.style}}},[t]);if(e.style){let o={};fC(o,e.style,e),i.style={...o,...i.style}}return i}var zX=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function Eh(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||zX.has(e)}function OX(e,t){return e.startsWith("on")?!Eh(e):t?.(e)??!Eh(e)}function HS(e,t,a,r){let i={};for(let o in e)o==="values"&&typeof e.values=="object"||vt(e[o])||(OX(o,r)||a===!0&&Eh(o)||!t&&!Eh(o)||e.draggable&&o.startsWith("onDrag"))&&(i[o]=e[o]);return i}var ZS=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function v0(e){return typeof e!="string"||e.includes("-")?!1:!!(ZS.indexOf(e)>-1||/[A-Z]/u.test(e))}function WS(e,t,a,{latestValues:r},i,o=!1,n,s){let u=(n??v0(e)?GS:jS)(t,r,i,e),c=HS(t,typeof e=="string",o,s),d=e!==_0.Fragment?{...c,...u,ref:a}:{},{children:f}=t,h=(0,_0.useMemo)(()=>vt(f)?f.get():f,[f]);return(0,_0.createElement)(e,{...d,children:h})}var hC=X(de(),1);function NX({scrapeMotionValuesFromProps:e,createRenderState:t},a,r,i){return{latestValues:VX(a,r,i,e),renderState:t()}}function VX(e,t,a,r){let i={},o=r(e,{});for(let f in o)i[f]=Tu(o[f]);let{initial:n,animate:s}=e,l=el(e),u=uh(e);t&&u&&!l&&e.inherit!==!1&&(n===void 0&&(n=t.initial),s===void 0&&(s=t.animate));let c=a?a.initial===!1:!1;c=c||n===!1;let d=c?s:n;if(d&&typeof d!="boolean"&&!Gn(d)){let f=Array.isArray(d)?d:[d];for(let h=0;h<f.length;h++){let p=pu(e,f[h]);if(p){let{transitionEnd:x,transition:v,...m}=p;for(let g in m){let y=m[g];if(Array.isArray(y)){let _=c?y.length-1:0;y=y[_]}y!==null&&(i[g]=y)}for(let g in x)i[g]=x[g]}}}return i}var y2=e=>(t,a)=>{let r=(0,hC.useContext)(rl),i=(0,hC.useContext)(t0),o=()=>NX(e,t,r,i);return a?o():Hs(o)};var KS=y2({scrapeMotionValuesFromProps:wu,createRenderState:y0});var XS=y2({scrapeMotionValuesFromProps:_h,createRenderState:g2});var YS=Symbol.for("motionComponentSymbol");var Mu=X(de(),1);function QS(e,t,a){let r=(0,Mu.useRef)(a);(0,Mu.useInsertionEffect)(()=>{r.current=a});let i=(0,Mu.useRef)(null);return(0,Mu.useCallback)(o=>{o&&e.onMount?.(o),t&&(o?t.mount(o):t.unmount());let n=r.current;if(typeof n=="function")if(o){let s=n(o);typeof s=="function"&&(i.current=s)}else i.current?(i.current(),i.current=null):n(o);else n&&(n.current=o)},[t])}var Zr=X(de(),1);var JS=X(de(),1),v2=(0,JS.createContext)({});function il(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function $S(e,t,a,r,i,o){let{visualElement:n}=(0,Zr.useContext)(rl),s=(0,Zr.useContext)(p2),l=(0,Zr.useContext)(t0),u=(0,Zr.useContext)(g0),c=u.reducedMotion,d=u.skipAnimations,f=(0,Zr.useRef)(null),h=(0,Zr.useRef)(!1);r=r||s.renderer,!f.current&&r&&(f.current=r(e,{visualState:t,parent:n,props:a,presenceContext:l,blockInitialAnimation:l?l.initial===!1:!1,reducedMotionConfig:c,skipAnimations:d,isSVG:o}),h.current&&f.current&&(f.current.manuallyAnimateOnMount=!0));let p=f.current,x=(0,Zr.useContext)(v2);p&&!p.projection&&i&&(p.type==="html"||p.type==="svg")&&UX(f.current,a,i,x);let v=(0,Zr.useRef)(!1);(0,Zr.useInsertionEffect)(()=>{p&&v.current&&p.update(a,l)});let m=a[ah],g=(0,Zr.useRef)(!!m&&typeof window<"u"&&!window.MotionHandoffIsComplete?.(m)&&window.MotionHasOptimisedAnimation?.(m));return gg(()=>{h.current=!0,p&&(v.current=!0,window.MotionIsMounted=!0,p.updateFeatures(),p.scheduleRenderMicrotask(),g.current&&p.animationState&&p.animationState.animateChanges())}),(0,Zr.useEffect)(()=>{p&&(!g.current&&p.animationState&&p.animationState.animateChanges(),g.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(m)}),g.current=!1),p.enteringChildren=void 0)}),p}function UX(e,t,a,r){let{layoutId:i,layout:o,drag:n,dragConstraints:s,layoutScroll:l,layoutRoot:u,layoutAnchor:c,layoutCrossfade:d}=t;e.projection=new a(e.latestValues,t["data-framer-portal-id"]?void 0:eF(e.parent)),e.projection.setOptions({layoutId:i,layout:o,alwaysMeasureLayout:!!n||s&&il(s),visualElement:e,animationType:typeof o=="string"?o:"both",initialPromotionConfig:r,crossfade:d,layoutScroll:l,layoutRoot:u,layoutAnchor:c})}function eF(e){if(e)return e.options.allowProjection!==!1?e.projection:eF(e.parent)}function b2(e,{forwardMotionProps:t=!1,type:a}={},r,i){r&&RS(r);let o=a?a==="svg":v0(e),n=o?XS:KS;function s(u,c){let d,f={...(0,b0.useContext)(g0),...u,layoutId:jX(u)},{isStatic:h,isValidProp:p}=f,x=VS(u),v=n(u,h);if(!h&&typeof window<"u"){qX(f,r);let m=GX(f);d=m.MeasureLayout,x.visualElement=$S(e,v,f,i,m.ProjectionNode,o)}return(0,_2.jsxs)(rl.Provider,{value:x,children:[d&&x.visualElement?(0,_2.jsx)(d,{visualElement:x.visualElement,...f}):null,WS(e,u,QS(v,x.visualElement,c),v,h,t,o,p)]})}s.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;let l=(0,b0.forwardRef)(s);return l[YS]=e,l}function jX({layoutId:e}){let t=(0,b0.useContext)(xg).id;return t&&e!==void 0?t+"-"+e:e}function qX(e,t){let a=(0,b0.useContext)(p2).strict}function GX(e){let t=x2(),{drag:a,layout:r}=t;if(!a&&!r)return{};let i={...a,...r};return{MeasureLayout:a?.isEnabled(e)||r?.isEnabled(e)?i.MeasureLayout:void 0,ProjectionNode:i.ProjectionNode}}function tF(e,t){if(typeof Proxy>"u")return b2;let a=new Map,r=(o,n)=>b2(o,n,e,t),i=(o,n)=>r(o,n);return new Proxy(i,{get:(o,n)=>n==="create"?r:(a.has(n)||a.set(n,b2(n,void 0,e,t)),a.get(n))})}var aF=X(de(),1);var rF=(e,t)=>t.isSVG??v0(e)?new Bu(t):new Du(t,{allowProjection:e!==aF.Fragment});var C2=class extends Xa{constructor(t){super(t),t.animationState||(t.animationState=J5(t))}updateAnimationControlsSubscription(){let{animate:t}=this.node.getProps();Gn(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:t}=this.node.getProps(),{animate:a}=this.node.prevProps||{};t!==a&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}};var HX=0,E2=class extends Xa{constructor(){super(...arguments),this.id=HX++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;let{isPresent:t,onExitComplete:a}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;if(t&&r===!1){if(this.isExitComplete){let{initial:o,custom:n}=this.node.getProps();if(typeof o=="string"||typeof o=="object"&&o!==null&&!Array.isArray(o)){let s=Ci(this.node,o,n);if(s){let{transition:l,transitionEnd:u,...c}=s;for(let d in c)this.node.getValue(d)?.jump(c[d])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}let i=this.node.animationState.setActive("exit",!t);a&&!t&&i.then(()=>{this.isExitComplete=!0,a(this.id)})}mount(){let{register:t,onExitComplete:a}=this.node.presenceContext||{};a&&a(this.id),t&&(this.unmount=t(this.id))}unmount(){}};var iF={animation:{Feature:C2},exit:{Feature:E2}};function Zn(e){return{point:{x:e.pageX,y:e.pageY}}}var oF=e=>t=>vu(t)&&e(t,Zn(t));function ol(e,t,a,r){return sn(e,t,oF(a),r)}var A2=({current:e})=>e?e.ownerDocument.defaultView:null;var nF=(e,t)=>Math.abs(e-t);function sF(e,t){let a=nF(e.x,t.x),r=nF(e.y,t.y);return Math.sqrt(a**2+r**2)}var lF=new Set(["auto","scroll"]),C0=class{constructor(t,a,{transformPagePoint:r,contextWindow:i=window,dragSnapToOrigin:o=!1,distanceThreshold:n=3,element:s}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=p=>{this.handleScroll(p.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=w2(this.lastRawMoveEventInfo,this.transformPagePoint));let p=pC(this.lastMoveEventInfo,this.history),x=this.startEvent!==null,v=sF(p.offset,{x:0,y:0})>=this.distanceThreshold;if(!x&&!v)return;let{point:m}=p,{timestamp:g}=ba;this.history.push({...m,timestamp:g});let{onStart:y,onMove:_}=this.handlers;x||(y&&y(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),_&&_(this.lastMoveEvent,p)},this.handlePointerMove=(p,x)=>{this.lastMoveEvent=p,this.lastRawMoveEventInfo=x,this.lastMoveEventInfo=w2(x,this.transformPagePoint),Ge.update(this.updatePoint,!0)},this.handlePointerUp=(p,x)=>{this.end();let{onEnd:v,onSessionEnd:m,resumeAnimation:g}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&g&&g(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let y=pC(p.type==="pointercancel"?this.lastMoveEventInfo:w2(x,this.transformPagePoint),this.history);this.startEvent&&v&&v(p,y),m&&m(p,y)},!vu(t))return;this.dragSnapToOrigin=o,this.handlers=a,this.transformPagePoint=r,this.distanceThreshold=n,this.contextWindow=i||window;let l=Zn(t),u=w2(l,this.transformPagePoint),{point:c}=u,{timestamp:d}=ba;this.history=[{...c,timestamp:d}];let{onSessionStart:f}=a;f&&f(t,pC(u,this.history));let h={passive:!0,capture:!0};this.removeListeners=Io(ol(this.contextWindow,"pointermove",this.handlePointerMove,h),ol(this.contextWindow,"pointerup",this.handlePointerUp,h),ol(this.contextWindow,"pointercancel",this.handlePointerUp,h)),s&&this.startScrollTracking(s)}startScrollTracking(t){let a=t.parentElement;for(;a;){let r=getComputedStyle(a);(lF.has(r.overflowX)||lF.has(r.overflowY))&&this.scrollPositions.set(a,{x:a.scrollLeft,y:a.scrollTop}),a=a.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){let a=this.scrollPositions.get(t);if(!a)return;let r=t===window,i=r?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},o={x:i.x-a.x,y:i.y-a.y};o.x===0&&o.y===0||(r?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=o.x,this.lastMoveEventInfo.point.y+=o.y):this.history.length>0&&(this.history[0].x-=o.x,this.history[0].y-=o.y),this.scrollPositions.set(t,i),Ge.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),Ir(this.updatePoint)}};function w2(e,t){return t?{point:t(e.point)}:e}function uF(e,t){return{x:e.x-t.x,y:e.y-t.y}}function pC({point:e},t){return{point:e,delta:uF(e,cF(t)),offset:uF(e,ZX(t)),velocity:WX(t,.1)}}function ZX(e){return e[0]}function cF(e){return e[e.length-1]}function WX(e,t){if(e.length<2)return{x:0,y:0};let a=e.length-1,r=null,i=cF(e);for(;a>=0&&(r=e[a],!(i.timestamp-r.timestamp>pa(t)));)a--;if(!r)return{x:0,y:0};r===e[0]&&e.length>2&&i.timestamp-r.timestamp>pa(t)*2&&(r=e[1]);let o=rr(i.timestamp-r.timestamp);if(o===0)return{x:0,y:0};let n={x:(i.x-r.x)/o,y:(i.y-r.y)/o};return n.x===1/0&&(n.x=0),n.y===1/0&&(n.y=0),n}function xF(e,{min:t,max:a},r){return t!==void 0&&e<t?e=r?Ke(t,e,r.min):Math.max(e,t):a!==void 0&&e>a&&(e=r?Ke(a,e,r.max):Math.min(e,a)),e}function dF(e,t,a){return{min:t!==void 0?e.min+t:void 0,max:a!==void 0?e.max+a-(e.max-e.min):void 0}}function mF(e,{top:t,left:a,bottom:r,right:i}){return{x:dF(e.x,a,i),y:dF(e.y,t,r)}}function fF(e,t){let a=t.min-e.min,r=t.max-e.max;return t.max-t.min<e.max-e.min&&([a,r]=[r,a]),{min:a,max:r}}function gF(e,t){return{x:fF(e.x,t.x),y:fF(e.y,t.y)}}function yF(e,t){let a=.5,r=za(e),i=za(t);return i>r?a=Ki(t.min,t.max-r,e.min):r>i&&(a=Ki(e.min,e.max-i,t.min)),Wa(0,1,a)}function vF(e,t){let a={};return t.min!==void 0&&(a.min=t.min-e.min),t.max!==void 0&&(a.max=t.max-e.min),a}var D2=.35;function _F(e=D2){return e===!1?e=0:e===!0&&(e=D2),{x:hF(e,"left","right"),y:hF(e,"top","bottom")}}function hF(e,t,a){return{min:pF(e,t),max:pF(e,a)}}function pF(e,t){return typeof e=="number"?e:e[t]||0}var KX=new WeakMap,S2=class{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Nt(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:a=!1,distanceThreshold:r}={}){let{presenceContext:i}=this.visualElement;if(i&&i.isPresent===!1)return;let o=d=>{a&&this.snapToCursor(Zn(d).point),this.stopAnimation()},n=(d,f)=>{let{drag:h,dragPropagation:p,onDragStart:x}=this.getProps();if(h&&!p&&(this.openDragLock&&this.openDragLock(),this.openDragLock=I5(h),!this.openDragLock))return;this.latestPointerEvent=d,this.latestPanInfo=f,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Ei(m=>{let g=this.getAxisMotionValue(m).get()||0;if(Mr.test(g)){let{projection:y}=this.visualElement;if(y&&y.layout){let _=y.layout.layoutBox[m];_&&(g=za(_)*(parseFloat(g)/100))}}this.originPoint[m]=g}),x&&Ge.update(()=>x(d,f),!1,!0),c0(this.visualElement,"transform");let{animationState:v}=this.visualElement;v&&v.setActive("whileDrag",!0)},s=(d,f)=>{this.latestPointerEvent=d,this.latestPanInfo=f;let{dragPropagation:h,dragDirectionLock:p,onDirectionLock:x,onDrag:v}=this.getProps();if(!h&&!this.openDragLock)return;let{offset:m}=f;if(p&&this.currentDirection===null){this.currentDirection=YX(m),this.currentDirection!==null&&x&&x(this.currentDirection);return}this.updateAxis("x",f.point,m),this.updateAxis("y",f.point,m),this.visualElement.render(),v&&Ge.update(()=>v(d,f),!1,!0)},l=(d,f)=>{this.latestPointerEvent=d,this.latestPanInfo=f,this.stop(d,f),this.latestPointerEvent=null,this.latestPanInfo=null},u=()=>{let{dragSnapToOrigin:d}=this.getProps();(d||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:c}=this.getProps();this.panSession=new C0(t,{onSessionStart:o,onStart:n,onMove:s,onSessionEnd:l,resumeAnimation:u},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,distanceThreshold:r,contextWindow:A2(this.visualElement),element:this.visualElement.current})}stop(t,a){let r=t||this.latestPointerEvent,i=a||this.latestPanInfo,o=this.isDragging;if(this.cancel(),!o||!i||!r)return;let{velocity:n}=i;this.startAnimation(n);let{onDragEnd:s}=this.getProps();s&&Ge.postRender(()=>s(r,i))}cancel(){this.isDragging=!1;let{projection:t,animationState:a}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();let{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),a&&a.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,a,r){let{drag:i}=this.getProps();if(!r||!B2(t,i,this.currentDirection))return;let o=this.getAxisMotionValue(t),n=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(n=xF(n,this.constraints[t],this.elastic[t])),o.set(n)}resolveConstraints(){let{dragConstraints:t,dragElastic:a}=this.getProps(),r=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,i=this.constraints;t&&il(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=mF(r.layoutBox,t):this.constraints=!1,this.elastic=_F(a),i!==this.constraints&&!il(t)&&r&&this.constraints&&!this.hasMutatedConstraints&&Ei(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=vF(r.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){let{dragConstraints:t,onMeasureDragConstraints:a}=this.getProps();if(!t||!il(t))return!1;let r=t.current;Lr(r!==null,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.","drag-constraints-ref");let{projection:i}=this.visualElement;if(!i||!i.layout)return!1;i.root&&(i.root.scroll=void 0,i.root.updateScroll());let o=K5(r,i.root,this.visualElement.getTransformPagePoint()),n=gF(i.layout.layoutBox,o);if(a){let s=a(j5(n));this.hasMutatedConstraints=!!s,s&&(n=fh(s))}return n}startAnimation(t){let{drag:a,dragMomentum:r,dragElastic:i,dragTransition:o,dragSnapToOrigin:n,onDragTransitionEnd:s}=this.getProps(),l=this.constraints||{},u=Ei(c=>{if(!B2(c,a,this.currentDirection))return;let d=l&&l[c]||{};(n===!0||n===c)&&(d={min:0,max:0});let f=i?200:1e6,h=i?40:1e7,p={type:"inertia",velocity:r?t[c]:0,bounceStiffness:f,bounceDamping:h,timeConstant:750,restDelta:1,restSpeed:10,...o,...d};return this.startAxisValueAnimation(c,p)});return Promise.all(u).then(s)}startAxisValueAnimation(t,a){let r=this.getAxisMotionValue(t);return c0(this.visualElement,t),r.start(hu(t,r,0,a,this.visualElement,!1))}stopAnimation(){Ei(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){let a=`_drag${t.toUpperCase()}`,i=this.visualElement.getProps()[a];return i||this.visualElement.getValue(t,this.visualElement.latestValues[t]??0)}snapToCursor(t){Ei(a=>{let{drag:r}=this.getProps();if(!B2(a,r,this.currentDirection))return;let{projection:i}=this.visualElement,o=this.getAxisMotionValue(a);if(i&&i.layout){let{min:n,max:s}=i.layout.layoutBox[a],l=o.get()||0;o.set(t[a]-Ke(n,s,.5)+l)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:t,dragConstraints:a}=this.getProps(),{projection:r}=this.visualElement;if(!il(a)||!r||!this.constraints)return;this.stopAnimation();let i={x:0,y:0};Ei(n=>{let s=this.getAxisMotionValue(n);if(s&&this.constraints!==!1){let l=s.get();i[n]=yF({min:l,max:l},this.constraints[n])}});let{transformTemplate:o}=this.visualElement.getProps();this.visualElement.current.style.transform=o?o({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.constraints=!1,this.resolveConstraints(),Ei(n=>{if(!B2(n,t,null))return;let s=this.getAxisMotionValue(n),{min:l,max:u}=this.constraints[n];s.set(Ke(l,u,i[n]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;KX.set(this.visualElement,this);let t=this.visualElement.current,a=ol(t,"pointerdown",u=>{let{drag:c,dragListener:d=!0}=this.getProps(),f=u.target,h=f!==t&&R5(f);c&&d&&!h&&this.start(u)}),r,i=()=>{let{dragConstraints:u}=this.getProps();il(u)&&u.current&&(this.constraints=this.resolveRefConstraints(),r||(r=XX(t,u.current,()=>this.scalePositionWithinConstraints())))},{projection:o}=this.visualElement,n=o.addEventListener("measure",i);o&&!o.layout&&(o.root&&o.root.updateScroll(),o.updateLayout()),Ge.read(i);let s=sn(window,"resize",()=>this.scalePositionWithinConstraints()),l=o.addEventListener("didUpdate",(({delta:u,hasLayoutChanged:c})=>{this.isDragging&&c&&(Ei(d=>{let f=this.getAxisMotionValue(d);f&&(this.originPoint[d]+=u[d].translate,f.set(f.get()+u[d].translate))}),this.visualElement.render())}));return()=>{s(),a(),n(),l&&l(),r&&r()}}getProps(){let t=this.visualElement.getProps(),{drag:a=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:o=!1,dragElastic:n=D2,dragMomentum:s=!0}=t;return{...t,drag:a,dragDirectionLock:r,dragPropagation:i,dragConstraints:o,dragElastic:n,dragMomentum:s}}};function bF(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function XX(e,t,a){let r=a2(e,bF(a)),i=a2(t,bF(a));return()=>{r(),i()}}function B2(e,t,a){return(t===!0||t===e)&&(a===null||a===e)}function YX(e,t=10){let a=null;return Math.abs(e.y)>t?a="y":Math.abs(e.x)>t&&(a="x"),a}var F2=class extends Xa{constructor(t){super(t),this.removeGroupControls=ha,this.removeListeners=ha,this.controls=new S2(t)}mount(){let{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ha}update(){let{dragControls:t}=this.node.getProps(),{dragControls:a}=this.node.prevProps||{};t!==a&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}};var xC=e=>(t,a)=>{e&&Ge.update(()=>e(t,a),!1,!0)},T2=class extends Xa{constructor(){super(...arguments),this.removePointerDownListener=ha}onPointerDown(t){this.session=new C0(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:A2(this.node)})}createPanHandlers(){let{onPanSessionStart:t,onPanStart:a,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:xC(t),onStart:xC(a),onMove:xC(r),onEnd:(o,n)=>{delete this.session,i&&Ge.postRender(()=>i(o,n))}}}mount(){this.removePointerDownListener=ol(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}};var CF=X(ke(),1);var Ah=X(de(),1);var mC=!1,gC=class extends Ah.Component{componentDidMount(){let{visualElement:t,layoutGroup:a,switchLayoutGroup:r,layoutId:i}=this.props,{projection:o}=t;o&&(a.group&&a.group.add(o),r&&r.register&&i&&r.register(o),mC&&o.root.didUpdate(),o.addEventListener("animationComplete",()=>{this.safeToRemove()}),o.setOptions({...o.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),Lu.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){let{layoutDependency:a,visualElement:r,drag:i,isPresent:o}=this.props,{projection:n}=r;return n&&(n.isPresent=o,t.layoutDependency!==a&&n.setOptions({...n.options,layoutDependency:a}),mC=!0,i||t.layoutDependency!==a||a===void 0||t.isPresent!==o?n.willUpdate():this.safeToRemove(),t.isPresent!==o&&(o?n.promote():n.relegate()||Ge.postRender(()=>{let s=n.getStack();(!s||!s.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){let{visualElement:t,layoutAnchor:a}=this.props,{projection:r}=t;r&&(r.options.layoutAnchor=a,r.root.didUpdate(),yu.postRender(()=>{!r.currentAnimation&&r.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:t,layoutGroup:a,switchLayoutGroup:r}=this.props,{projection:i}=t;mC=!0,i&&(i.scheduleCheckAfterUnmount(),a&&a.group&&a.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){let{safeToRemove:t}=this.props;t&&t()}render(){return null}};function L2(e){let[t,a]=IS(),r=(0,Ah.useContext)(xg);return(0,CF.jsx)(gC,{...e,layoutGroup:r,switchLayoutGroup:(0,Ah.useContext)(v2),isPresent:t,safeToRemove:a})}var EF={pan:{Feature:T2},drag:{Feature:F2,ProjectionNode:Ch,MeasureLayout:L2}};function AF(e,t,a){let{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",a==="Start");let i="onHover"+a,o=r[i];o&&Ge.postRender(()=>o(t,Zn(t)))}var I2=class extends Xa{mount(){let{current:t}=this.node;t&&(this.unmount=M5(t,(a,r)=>(AF(this.node,r,"Start"),i=>AF(this.node,i,"End"))))}unmount(){}};var M2=class extends Xa{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Io(sn(this.node.current,"focus",()=>this.onFocus()),sn(this.node.current,"blur",()=>this.onBlur()))}unmount(){}};function wF(e,t,a){let{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",a==="Start");let i="onTap"+(a==="End"?"":a),o=r[i];o&&Ge.postRender(()=>o(t,Zn(t)))}var P2=class extends Xa{mount(){let{current:t}=this.node;if(!t)return;let{globalTapTarget:a,propagate:r}=this.node.props;this.unmount=O5(t,(i,o)=>(wF(this.node,o,"Start"),(n,{success:s})=>wF(this.node,n,s?"End":"Cancel")),{useGlobalTarget:a,stopPropagation:r?.tap===!1})}unmount(){}};var vC=new WeakMap,yC=new WeakMap,QX=e=>{let t=vC.get(e.target);t&&t(e)},JX=e=>{e.forEach(QX)};function $X({root:e,...t}){let a=e||document;yC.has(a)||yC.set(a,{});let r=yC.get(a),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(JX,{root:e,...t})),r[i]}function DF(e,t,a){let r=$X(t);return vC.set(e,a),r.observe(e),()=>{vC.delete(e),r.unobserve(e)}}var eY={some:0,all:1},k2=class extends Xa{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();let{viewport:t={}}=this.node.getProps(),{root:a,margin:r,amount:i="some",once:o}=t,n={root:a?a.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:eY[i]},s=l=>{let{isIntersecting:u}=l;if(this.isInView===u||(this.isInView=u,o&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);let{onViewportEnter:c,onViewportLeave:d}=this.node.getProps(),f=u?c:d;f&&f(l)};this.stopObserver=DF(this.node.current,n,s)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;let{props:t,prevProps:a}=this.node;["amount","margin","root"].some(tY(t,a))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}};function tY({viewport:e={}},{viewport:t={}}={}){return a=>e[a]!==t[a]}var BF={inView:{Feature:k2},tap:{Feature:P2},focus:{Feature:M2},hover:{Feature:I2}};var SF={layout:{ProjectionNode:Ch,MeasureLayout:L2}};var FF={...iF,...BF,...EF,...SF};var _C=tF(FF,rF);var E0=X(de(),1);function A0(e){let t=Hs(()=>Pr(e)),{isStatic:a}=(0,E0.useContext)(g0);if(a){let[,r]=(0,E0.useState)(e);(0,E0.useEffect)(()=>t.on("change",r),[])}return t}function R2(e,t){let a=A0(t()),r=()=>a.set(t());return r(),gg(()=>{let i=()=>Ge.preRender(r,!1,!0),o=e.map(n=>n.on("change",i));return()=>{o.forEach(n=>n()),Ir(r)}}),a}function TF(e){fu.current=[],e();let t=R2(fu.current,e);return fu.current=void 0,t}function Mo(e,t,a,r){if(typeof e=="function")return TF(e);if(a!==void 0&&!Array.isArray(a)&&typeof t!="function")return aY(e,t,a,r);let n=typeof t=="function"?t:bu(t,a,r),s=Array.isArray(e)?LF(e,n):LF([e],([u])=>n(u)),l=Array.isArray(e)?void 0:e.accelerate;return l&&!l.isTransformed&&typeof t!="function"&&Array.isArray(a)&&r?.clamp!==!1&&(s.accelerate={...l,times:t,keyframes:a,isTransformed:!0,...r?.ease?{ease:r.ease}:{}}),s}function LF(e,t){let a=Hs(()=>[]);return R2(e,()=>{a.length=0;let r=e.length;for(let i=0;i<r;i++)a[i]=e[i].get();return t(a)})}function aY(e,t,a,r){let i=Hs(()=>Object.keys(a)),o=Hs(()=>({}));for(let n of i)o[n]=Mo(e,t,a[n],r);return o}var IF=X(de(),1);function bC(){!Cu.current&&ch();let[e]=(0,IF.useState)(tl.current);return e}function wh(e){return typeof e=="object"&&!Array.isArray(e)}function z2(e,t,a,r){return e==null?[]:typeof e=="string"&&wh(t)?gu(e,a,r):e instanceof NodeList?Array.from(e):Array.isArray(e)?e.filter(i=>i!=null):[e]}function MF(e,t,a){return e*(t+1)+a*t}function CC(e,t,a,r){return typeof t=="number"?t:t.startsWith("-")||t.startsWith("+")?Math.max(0,e+parseFloat(t)):t==="<"?a:t.startsWith("<")?Math.max(0,a+parseFloat(t.slice(1))):r.get(t)??e}function rY(e,t,a){for(let r=0;r<e.length;r++){let i=e[r];i.at>t&&i.at<a&&(Wi(e,i),r--)}}function PF(e,t,a,r,i,o){rY(e,i,o);for(let n=0;n<t.length;n++)e.push({value:t[n],at:Ke(i,o,r[n]),easing:jf(a,n)})}function kF(e,t,a=0){let r=t+1+t*a;for(let i=0;i<e.length;i++)e[i]=e[i]/r}function RF(e,t){return e.at===t.at?e.value===null?1:t.value===null?-1:0:e.at-t.at}var iY="easeInOut",EC=20;function NF(e,{defaultTransition:t={},...a}={},r,i){let o=t.duration||.3,n=new Map,s=new Map,l={},u=new Map,c=0,d=0,f=0;for(let h=0;h<e.length;h++){let p=e[h];if(typeof p=="string"){u.set(p,d);continue}else if(!Array.isArray(p)){u.set(p.name,CC(d,p.at,c,u));continue}let[x,v,m={}]=p;m.at!==void 0&&(d=CC(d,m.at,c,u));let g=0,y=(_,b,A,w=0,B=0)=>{let L=oY(_),{delay:P=0,times:R=Jf(L),type:k=t.type||"keyframes",repeat:S,repeatType:T,repeatDelay:C=0,...E}=b,{ease:I=t.ease||"easeOut",duration:F}=b,D=typeof P=="function"?P(w,B):P,M=L.length,j=du(k)?k:i?.[k||"keyframes"];if(M<=2&&j){let U=100;if(M===2&&lY(L)){let le=L[1]-L[0];U=Math.abs(le)}let W={...t,...E};F!==void 0&&(W.duration=pa(F));let Q=Xf(W,U,j);I=Q.ease,F=Q.duration}F??(F=o);let z=d+D;R.length===1&&R[0]===0&&(R[1]=1);let V=R.length-L.length;if(V>0&&Qf(R,V),L.length===1&&L.unshift(null),S&&Lo(S<EC,`Sequence segments can't repeat ${S} times \u2014 ignoring repeat option. Use a value below ${EC} or apply repeat at the sequence level instead.`),S&&S<EC){let U=F>0?C/F:0;F=MF(F,S,C);let W=[...L],Q=[...R];I=Array.isArray(I)?[...I]:[I];let le=[...I],ie=T==="reverse"||T==="mirror",O=W,H=le;ie&&(O=[...W].reverse(),T==="reverse"&&(H=[...le].reverse().map(N=>typeof N=="function"?ou(N):N)));for(let N=0;N<S;N++){let Z=ie&&N%2===0,J=Z?O:W,fe=Z?H:le,ye=(N+1)*(1+U);U>0&&(L.push(L[L.length-1]),R.push(ye),I.push("linear")),L.push(...J);for(let Y=0;Y<J.length;Y++)R.push(Q[Y]+ye),I.push(Y===0?"linear":jf(fe,Y-1))}kF(R,S,U)}let q=z+F;PF(A,L,I,R,z,q),g=Math.max(D+F,g),f=Math.max(q,f)};if(vt(x)){let _=zF(x,s);y(v,m,OF("default",_))}else{let _=z2(x,v,r,l),b=_.length;for(let A=0;A<b;A++){v=v,m=m;let w=_[A],B=zF(w,s);for(let L in v)y(v[L],nY(m,L),OF(L,B),A,b)}}c=d,d+=g}return s.forEach((h,p)=>{for(let x in h){let v=h[x];v.sort(RF);let m=[],g=[],y=[];for(let w=0;w<v.length;w++){let{at:B,value:L,easing:P}=v[w];m.push(L),g.push(Ki(0,f,B)),y.push(P||"easeOut")}g[0]!==0&&(g.unshift(0),m.unshift(m[0]),y.unshift(iY)),g[g.length-1]!==1&&(g.push(1),m.push(null)),n.has(p)||n.set(p,{keyframes:{},transition:{}});let _=n.get(p);_.keyframes[x]=m;let{type:b,...A}=t;_.transition[x]={...A,duration:f,ease:y,times:g,...a}}}),n}function zF(e,t){return!t.has(e)&&t.set(e,{}),t.get(e)}function OF(e,t){return t[e]||(t[e]=[]),t[e]}function oY(e){return Array.isArray(e)?e:[e]}function nY(e,t){return e&&e[t]?{...e,...e[t]}:{...e}}var sY=e=>typeof e=="number",lY=e=>e.every(sY);function VF(e){let t={presenceContext:null,props:{},visualState:{renderState:{transform:{},transformOrigin:{},style:{},vars:{},attrs:{}},latestValues:{}}},a=jn(e)&&!sh(e)?new Bu(t):new Du(t);a.mount(e),qn.set(e,a)}function UF(e){let t={presenceContext:null,props:{},visualState:{renderState:{output:{}},latestValues:{}}},a=new gh(t);a.mount(e),qn.set(e,a)}function uY(e,t){return vt(e)||typeof e=="number"||typeof e=="string"&&!wh(t)}function O2(e,t,a,r){let i=[];if(uY(e,t))i.push(bh(e,wh(t)&&t.default||t,a&&(a.default||a)));else{if(e==null)return i;let o=z2(e,t,r),n=o.length;Lr(!!n,"No valid elements provided.","no-valid-elements");for(let s=0;s<n;s++){let l=o[s],u=l instanceof Element?VF:UF;qn.has(l)||u(l);let c=qn.get(l),d={...a};"delay"in d&&typeof d.delay=="function"&&(d.delay=d.delay(s,n)),i.push(...xu(c,{...t,transition:d},{}))}}return i}function jF(e,t,a){let r=[],i=e.map(n=>{if(Array.isArray(n)&&typeof n[0]=="function"){let s=n[0],l=Pr(0);return l.on("change",s),n.length===1?[l,[0,1]]:n.length===2?[l,[0,1],n[1]]:[l,n[1],n[2]]}return n});return NF(i,t,a,{spring:Nn}).forEach(({keyframes:n,transition:s},l)=>{r.push(...O2(l,n,s))}),r}function cY(e){return Array.isArray(e)&&e.some(Array.isArray)}function qF(e={}){let{scope:t,reduceMotion:a,skipAnimations:r}=e;function i(o,n,s){let l=[],u,c={};if(a!==void 0&&(c.reduceMotion=a),r!==void 0&&(c.skipAnimations=r),cY(o)){let{onComplete:f,...h}=n||{};typeof f=="function"&&(u=f),l=jF(o,{...c,...h},t)}else{let{onComplete:f,...h}=s||{};typeof f=="function"&&(u=f),l=O2(o,n,{...c,...h},t)}let d=new eh(l);return u&&d.finished.then(u),t&&(t.animations.push(d),d.finished.then(()=>{Wi(t.animations,d)})),d}return i}var Pu=qF();var ln=_C;var ga=X(de(),1);var Ie=X(de(),1);var $F=X(Zc(),1);var Ai=X(de(),1);function GF(e,t){let a;return(...r)=>{window.clearTimeout(a),a=window.setTimeout(()=>e(...r),t)}}function HF({debounce:e,scroll:t,polyfill:a,offsetSize:r}={debounce:0,scroll:!1,offsetSize:!1}){let i=a||(typeof window>"u"?class{}:window.ResizeObserver);if(!i)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");let[o,n]=(0,Ai.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),s=(0,Ai.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o,orientationHandler:null}),l=e?typeof e=="number"?e:e.scroll:null,u=e?typeof e=="number"?e:e.resize:null,c=(0,Ai.useRef)(!1);(0,Ai.useEffect)(()=>(c.current=!0,()=>{c.current=!1}));let[d,f,h]=(0,Ai.useMemo)(()=>{let m=()=>{if(!s.current.element)return;let{left:g,top:y,width:_,height:b,bottom:A,right:w,x:B,y:L}=s.current.element.getBoundingClientRect(),P={left:g,top:y,width:_,height:b,bottom:A,right:w,x:B,y:L};s.current.element instanceof HTMLElement&&r&&(P.height=s.current.element.offsetHeight,P.width=s.current.element.offsetWidth),Object.freeze(P),c.current&&!xY(s.current.lastBounds,P)&&n(s.current.lastBounds=P)};return[m,u?GF(m,u):m,l?GF(m,l):m]},[n,r,l,u]);function p(){s.current.scrollContainers&&(s.current.scrollContainers.forEach(m=>m.removeEventListener("scroll",h,!0)),s.current.scrollContainers=null),s.current.resizeObserver&&(s.current.resizeObserver.disconnect(),s.current.resizeObserver=null),s.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",s.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",s.current.orientationHandler))}function x(){s.current.element&&(s.current.resizeObserver=new i(h),s.current.resizeObserver.observe(s.current.element),t&&s.current.scrollContainers&&s.current.scrollContainers.forEach(m=>m.addEventListener("scroll",h,{capture:!0,passive:!0})),s.current.orientationHandler=()=>{h()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",s.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",s.current.orientationHandler))}let v=m=>{!m||m===s.current.element||(p(),s.current.element=m,s.current.scrollContainers=ZF(m),x())};return hY(h,!!t),fY(f),(0,Ai.useEffect)(()=>{p(),x()},[t,h,f]),(0,Ai.useEffect)(()=>p,[]),[v,o,d]}function fY(e){(0,Ai.useEffect)(()=>{let t=e;return window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[e])}function hY(e,t){(0,Ai.useEffect)(()=>{if(t){let a=e;return window.addEventListener("scroll",a,{capture:!0,passive:!0}),()=>{window.removeEventListener("scroll",a,!0)}}},[e,t])}function ZF(e){let t=[];if(!e||e===document.body)return t;let{overflow:a,overflowX:r,overflowY:i}=window.getComputedStyle(e);return[a,r,i].some(o=>o==="auto"||o==="scroll")&&t.push(e),[...t,...ZF(e.parentElement)]}var pY=["x","y","top","bottom","left","right","width","height"],xY=(e,t)=>pY.every(a=>e[a]===t[a]);var eT=(0,Ie.createContext)(void 0),tT=(0,Ie.createContext)(void 0);function Th(){let e=(0,Ie.useContext)(eT);if(!e)throw new Error("Sheet context error");return e}function mY(){let e=(0,Ie.useContext)(tT);if(!e)throw new Error("Sheet context error");return e}var WF="calc(100% - env(safe-area-inset-top) - 34px)",Fh=typeof window>"u",gY={ease:"easeOut",duration:.2},yY={ease:"linear",duration:.01},vY=.6,_Y=1200,FC=Fh?Ie.useEffect:Ie.useLayoutEffect;function bY(){let[e,t]=(0,Ie.useState)(()=>({windowHeight:Fh?0:window.innerHeight,windowWidth:Fh?0:window.innerWidth}));return FC(()=>{function a(){t({windowHeight:window.innerHeight,windowWidth:window.innerWidth})}return a(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a)}},[]),e}function Wn(e,t){return t?e.base:{...e.base,...e.decorative}}function CY(e){for(let t=0;t<e.length;t++)if(e[t+1]<e[t])return!1;return!0}function q2(e){return t=>{e.forEach(a=>{typeof a=="function"?a(t):a&&(a.current=t)})}}function TC(e){var t;return typeof window<"u"&&window.navigator!=null?e.test(((t=window.navigator.userAgentData)==null?void 0:t.platform)||window.navigator.platform):!1}function H2(e){let t=null;return()=>(t==null&&(t=e()),t)}var EY=H2(function(){return TC(/^Mac/i)}),AY=H2(function(){return TC(/^iPhone/i)}),wY=H2(function(){return TC(/^iPad/i)||EY()&&navigator.maxTouchPoints>1}),DY=H2(function(){return AY()||wY()});function BY(e,t=50,a=20){return new Promise(r=>{let i=0,o=setInterval(()=>{let n=document.getElementsByClassName(e)[0];i++,(n||i>=a)&&(clearInterval(o),r(n))},t)})}var SY=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function ku(e){return e instanceof HTMLInputElement&&!SY.has(e.type)||e instanceof HTMLTextAreaElement||e instanceof HTMLElement&&e.isContentEditable}function aT(){return typeof window<"u"&&window.isSecureContext}function rT(e,t,a){return Math.min(Math.max(e,t),a)}function ir(e){let t=(0,Ie.useRef)(void 0);return FC(()=>{t.current=e}),(0,Ie.useCallback)((...a)=>{let r=t.current;return r?.(...a)},[])}var Dh=0,AC=null;function FY(e={}){let{containerRef:t,isEnabled:a=!0,debounceDelay:r=100,visualViewportThreshold:i=100}=e,[o,n]=(0,Ie.useState)({isVisible:!1,height:0}),s=(0,Ie.useRef)(null),l=(0,Ie.useRef)(null);return(0,Ie.useEffect)(()=>{let u=window.visualViewport,c=TY();function d(m){let g=t?.current||document.documentElement;c?g.style.setProperty("--keyboard-inset-height",`env(keyboard-inset-height, ${m}px)`):g.style.setProperty("--keyboard-inset-height",`${m}px`)}function f(m){n(g=>g.isVisible===m.isVisible&&g.height===m.height?g:m)}function h(){s.current=null,d(0),f({isVisible:!1,height:0})}if(!a){h();return}function p(){l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{let m=wC()??s.current;if(!(m?ku(m):!1)){h();return}if(s.current=m,c?.overlaysContent){let y=c.boundingRect.height;d(y),f({isVisible:!0,height:y});return}if(u){let y=window.innerHeight-u.height;if(y>i){d(y),f({isVisible:!0,height:y});return}}h()},r)}function x(m){m.target instanceof HTMLElement&&ku(m.target)&&(s.current=m.target,p())}function v(){requestAnimationFrame(()=>{s.current=wC(),p()})}return document.addEventListener("focusin",x),document.addEventListener("focusout",v),u&&(u.addEventListener("resize",p),u.addEventListener("scroll",p)),c&&(Dh===0&&(AC=c.overlaysContent,c.overlaysContent=!0),Dh++,c.addEventListener("geometrychange",p)),s.current=wC(),p(),()=>{document.removeEventListener("focusin",x),document.removeEventListener("focusout",v),u&&(u.removeEventListener("resize",p),u.removeEventListener("scroll",p)),c&&(c.removeEventListener("geometrychange",p),Dh=Math.max(0,Dh-1),Dh===0&&(c.overlaysContent=AC??!1,AC=null)),l.current&&clearTimeout(l.current),h()}},[r,a,i]),{keyboardHeight:o.height,isKeyboardOpen:o.isVisible}}function TY(){return aT()&&"virtualKeyboard"in navigator?navigator.virtualKeyboard:null}function wC(){var e;let t=document.activeElement;for(;t instanceof HTMLElement&&((e=t.shadowRoot)!=null&&e.activeElement);)t=t.shadowRoot.activeElement;return t&&ku(t)?t:null}function LY({isEnabled:e,containerRef:t,onWillOpenKeyboard:a,onDidOpenKeyboard:r}){let[i,o]=(0,Ie.useState)(null),n=FY({isEnabled:e,containerRef:t}),s=ir(async u=>{var c;let d=u.target;ku(d)&&((c=t.current)!=null&&c.contains(d))&&(await a?.(u),o(d))}),l=ir(u=>{let c=u.target;i===c&&o(null)});return(0,Ie.useEffect)(()=>{if(e)return document.addEventListener("focusin",s),document.addEventListener("focusout",l),()=>{document.removeEventListener("focusin",s),document.removeEventListener("focusout",l)}},[e]),(0,Ie.useEffect)(()=>{let u=t.current;!e||!i||!u||!n.isKeyboardOpen||requestAnimationFrame(()=>{r?.(i)})},[e,n.isKeyboardOpen,i]),n}function IY(){let[e]=(0,Ie.useState)(()=>{let t={top:0,left:0,right:0,bottom:0};if(Fh)return t;let a=document.querySelector(":root");if(!a)return t;a.style.setProperty("--rms-sat","env(safe-area-inset-top)"),a.style.setProperty("--rms-sal","env(safe-area-inset-left)"),a.style.setProperty("--rms-sar","env(safe-area-inset-right)"),a.style.setProperty("--rms-sab","env(safe-area-inset-bottom)");let r=getComputedStyle(a),i=N2(r,"--rms-sat"),o=N2(r,"--rms-sal"),n=N2(r,"--rms-sar"),s=N2(r,"--rms-sab");return a.style.removeProperty("--rms-sat"),a.style.removeProperty("--rms-sal"),a.style.removeProperty("--rms-sar"),a.style.removeProperty("--rms-sab"),{top:i,left:o,right:n,bottom:s}});return e}function N2(e,t){let a=e.getPropertyValue(t).replace("px","").trim();return parseInt(a,10)||0}function MY({y:e,detent:t,rootId:a,sheetHeight:r,snapPoints:i,startThreshold:o}){let n=IY().top,s=a;s&&t==="full"&&(console.warn('Using "full" detent with modal effect is not supported.'),s=void 0);let l=ir(c=>{if(!s)return;let d=Math.max(0,1-c/r),f=i.length>1?i[i.length-2]:void 0;if(f!==void 0){let p=f.snapValueY;c<=p?d=(p-c)/p:d=0}if(o!==void 0){let p=r-Math.min(Math.floor(o*r),r);c<=p?d=(p-c)/p:d=0}d=Math.max(0,Math.min(1,d));let h=window.innerWidth;kY(s,{scale:bu(d,[0,1],[1,(h-16)/h]),translateY:bu(d,[0,1],[0,24+n]),borderRadius:bu(d,[0,1],[0,10])})}),u=ir(()=>{s&&e.get()+5>=r&&KF(s)});(0,Ie.useEffect)(()=>{if(!s)return;let c=e.on("animationStart",()=>{s&&PY(s)}),d=e.on("change",p=>{l(p)}),f=e.on("animationComplete",u),h=e.on("animationCancel",u);return()=>{s&&KF(s),c(),d(),f(),h()}},[s])}function PY(e){let t=document.querySelector(`#${e}`);if(!t)return;let a=document.querySelector("body");a.style.backgroundColor="#000000",t.style.overflow="hidden",t.style.transitionTimingFunction="cubic-bezier(0.32, 0.72, 0, 1)",t.style.transitionProperty="transform, border-radius",t.style.transitionDuration="0.5s",t.style.transformOrigin="center top"}function kY(e,t){let a=document.querySelector(`#${e}`);if(!a)return;let{scale:r,translateY:i,borderRadius:o}=t;a.style.transform=`scale(${r}) translate3d(0, ${i}px, 0)`,a.style.borderTopRightRadius=`${o}px`,a.style.borderTopLeftRadius=`${o}px`}function KF(e){let t=document.querySelector(`#${e}`);if(!t)return;document.querySelector("body").style.removeProperty("background-color"),t.style.removeProperty("overflow"),t.style.removeProperty("transition-timing-function"),t.style.removeProperty("transition-property"),t.style.removeProperty("transition-duration"),t.style.removeProperty("transform-origin"),t.style.removeProperty("transform"),t.style.removeProperty("border-top-right-radius"),t.style.removeProperty("border-top-left-radius")}var RY=24;function SC(...e){return(...t)=>{for(let a of e)typeof a=="function"&&a(...t)}}var DC=typeof document<"u"&&window.visualViewport;function XF(e,t){if(!e)return!1;let a=window.getComputedStyle(e),r=/(auto|scroll)/.test(a.overflow+a.overflowX+a.overflowY);return r&&t&&(r=e.scrollHeight!==e.clientHeight||e.scrollWidth!==e.clientWidth),r}function iT(e,t){let a=e;for(XF(a,t)&&(a=a.parentElement);a&&!XF(a,t);)a=a.parentElement;return a||document.scrollingElement||document.documentElement}var V2=0,U2;function zY(e={}){let{isDisabled:t}=e;FC(()=>{if(!t)return V2++,V2===1&&(DY()?U2=NY():U2=OY()),()=>{V2--,V2===0&&U2?.()}},[t])}function OY(){return SC(Sh(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`),Sh(document.documentElement,"overflow","hidden"))}function NY(){let e,t=0,a=d=>{var f;let h=(f=d.composedPath())==null?void 0:f[0];e=iT(h,!0),!(e===document.documentElement&&e===document.body)&&(t=d.changedTouches[0].pageY)},r=d=>{if(e===void 0)return;if(!e||e===document.documentElement||e===document.body){d.preventDefault();return}let f=d.changedTouches[0].pageY,h=e.scrollTop,p=e.scrollHeight-e.clientHeight;p!==0&&((h<=0&&f>t||h>=p&&f<t)&&d.preventDefault(),t=f)},i=d=>{var f;let h=(f=d.composedPath())==null?void 0:f[0];ku(h)&&h!==document.activeElement&&(d.preventDefault(),h.style.transform="translateY(-2000px)",h.focus(),requestAnimationFrame(()=>{h.style.transform=""}))},o=d=>{var f;let h=(f=d.composedPath())==null?void 0:f[0];ku(h)&&(h.style.transform="translateY(-2000px)",requestAnimationFrame(()=>{h.style.transform="",DC&&(DC.height<window.innerHeight?requestAnimationFrame(()=>{YF(h)}):DC.addEventListener("resize",()=>YF(h),{once:!0}))}))},n=()=>{window.scrollTo(0,0)},s=window.pageXOffset,l=window.pageYOffset,u=SC(Sh(document.documentElement,"paddingRight",`${window.innerWidth-document.documentElement.clientWidth}px`),Sh(document.documentElement,"overflow","hidden"),Sh(document.body,"marginTop",`-${l}px`));window.scrollTo(0,0);let c=SC(Bh(document,"touchstart",a,{passive:!1,capture:!0}),Bh(document,"touchmove",r,{passive:!1,capture:!0}),Bh(document,"touchend",i,{passive:!1,capture:!0}),Bh(document,"focus",o,!0),Bh(window,"scroll",n));return()=>{u(),c(),window.scrollTo(s,l)}}function Sh(e,t,a){let r=e.style[t];return e.style[t]=a,()=>{e.style[t]=r}}function Bh(e,t,a,r){return e.addEventListener(t,a,r),()=>{e.removeEventListener(t,a,r)}}function YF(e){let t=document.scrollingElement||document.documentElement;for(;e&&e!==t;){let a=iT(e);if(a!==document.documentElement&&a!==document.body&&a!==e){let r=a.getBoundingClientRect().top,i=e.getBoundingClientRect().top,o=e.getBoundingClientRect().bottom,n=a.getBoundingClientRect().bottom+RY;o>n&&(a.scrollTop+=i-r)}e=a.parentElement}}function VY({isOpen:e,onClosed:t,onOpening:a,onOpen:r,onClosing:i}){let[o,n]=(0,Ie.useState)(e?"opening":"closed"),s=ir(()=>t?.()),l=ir(()=>a?.()),u=ir(()=>r?.()),c=ir(()=>i?.());return(0,Ie.useEffect)(()=>{e&&o==="closed"?n("opening"):!e&&(o==="open"||o==="opening")&&n("closing")},[e,o]),(0,Ie.useEffect)(()=>{async function d(){switch(o){case"closed":await s?.();break;case"opening":await l?.(),n("open");break;case"open":await u?.();break;case"closing":await c?.(),n("closed");break}}d().catch(f=>{console.error("Internal sheet state error:",f)})},[o]),o}function UY({snapPointsProp:e,sheetHeight:t}){if(e[0]!==0&&(console.error(`First snap point should be 0 to ensure the sheet can be fully closed. Got: [${e.join(", ")}]`),e.unshift(0)),e[e.length-1]!==1&&(console.error(`Last snap point should be 1 to ensure the sheet can be fully opened. Got: [${e.join(", ")}]`),e.push(1)),t<=0)return console.error(`Sheet height is ${t}, cannot compute snap points. Make sure the sheet is mounted and has a valid height.`),[];let a=e.map(r=>r>0&&r<=1?Math.round(r*t):r<0?t+r:r);return console.assert(CY(a),`Snap points need to be in ascending order got: [${e.join(", ")}]`),a.forEach(r=>{(r<0||r>t)&&console.warn(`Snap point ${r} is outside of the sheet height ${t}. This can cause unexpected behavior. Consider adjusting your snap points.`)}),a.includes(t)||(console.warn("Snap points do not include the sheet height.Please include `1` as the last snap point or it will be included automatically.This is to ensure the sheet can be fully opened."),a.push(t)),a.map((r,i)=>({snapIndex:i,snapValue:r,snapValueY:t-r}))}function BC(e){return e>0?1:e<0?-1:0}function G2(e){return e.slice().sort((t,a)=>t.snapValueY-a.snapValueY)}function j2(e,t){return e.reduce((a,r)=>Math.abs(r.snapValueY-t)<Math.abs(a.snapValueY-t)?r:a)}function QF(e,t){let a=G2(e);for(let r=a.length-1;r>=0;r--)if(a[r].snapValueY<t)return a[r];return null}function JF(e,t){let a=G2(e);for(let r=0;r<a.length;r++)if(a[r].snapValueY>t)return a[r];return null}function jY({offsetY:e,velocityY:t,deltaY:a}){if(Math.abs(t)>50)return BC(t);let r=BC(e);return r!==0?r:BC(a)}function qY({y:e,info:t,sheetHeight:a,snapPoints:r,dragVelocityThreshold:i,dragCloseThreshold:o}){let n=i,s=Math.max(2e3,n),l=.35,u=.2,c=20,d=24,f=0,h=a,p=t.offset.y,x=t.delta.y,v=t.velocity.y,m=rT(e+v*u,f,h),g=Math.abs(v),y=jY({offsetY:p,velocityY:v,deltaY:x}),_=g>s,b=g>n;if(r.length===0){if(b)return{yTo:y<0?f:h,snapIndex:void 0};let T=f+(h-f)*o;return{yTo:m<T?f:h,snapIndex:void 0}}let A=j2(r,e);if(!b&&Math.abs(p)<c)return{yTo:A.snapValueY,snapIndex:A.snapIndex};if(!b&&Math.abs(e-A.snapValueY)<d)return{yTo:A.snapValueY,snapIndex:A.snapIndex};if(_){let T=y<0?f:h,C=j2(r,T);return{yTo:T,snapIndex:C.snapIndex}}if(b){let T=y<0?QF(r,e):JF(r,e),C=y<0?f:h,E=j2(r,C),I=T??E;return{yTo:I.snapValueY,snapIndex:I.snapIndex}}let w=G2(r)[0],B=G2(r)[r.length-1],L=QF(r,e)??w,P=JF(r,e)??B;if(L.snapIndex===P.snapIndex)return{yTo:L.snapValueY,snapIndex:L.snapIndex};let R=P.snapValueY-L.snapValueY,k=R>0?(e-L.snapValueY)/R:0,S=A;if(y>0?S=k>l?P:L:y<0&&(S=k<1-l?L:P),g>200){let T=j2(r,m);Math.abs(T.snapValueY-e)<Math.abs(S.snapValueY-e)&&(S=T)}return{yTo:S.snapValueY,snapIndex:S.snapIndex}}var Kn={root:{base:{position:"fixed",top:0,bottom:0,left:0,right:0,overflow:"hidden",pointerEvents:"none"},decorative:{}},backdrop:{base:{zIndex:1,position:"fixed",top:0,left:0,width:"100%",height:"100%",touchAction:"none",userSelect:"none"},decorative:{backgroundColor:"rgba(0, 0, 0, 0.2)",border:"none",WebkitTapHighlightColor:"transparent"}},container:{base:{zIndex:2,position:"absolute",left:0,bottom:0,width:"100%",pointerEvents:"auto",display:"flex",flexDirection:"column"},decorative:{backgroundColor:"#fff",borderTopRightRadius:"8px",borderTopLeftRadius:"8px",boxShadow:"0px -2px 16px rgba(0, 0, 0, 0.3)"}},headerWrapper:{base:{width:"100%"},decorative:{}},header:{base:{width:"100%",position:"relative"},decorative:{height:"40px",display:"flex",alignItems:"center",justifyContent:"center"}},indicatorWrapper:{base:{display:"flex"},decorative:{}},indicator:{base:{display:"inline-block"},decorative:{width:"18px",height:"4px",borderRadius:"99px",backgroundColor:"#ddd"}},content:{base:{minHeight:"0px",position:"relative",flexGrow:1,display:"flex",flexDirection:"column"},decorative:{}},scroller:{base:{height:"100%",overflowY:"auto",overscrollBehaviorY:"none"},decorative:{}}},oT=(0,Ie.forwardRef)(({avoidKeyboard:e=!0,children:t,className:a="",detent:r="default",disableDismiss:i=!1,disableDrag:o=!1,disableScrollLocking:n=!1,dragCloseThreshold:s=vY,dragVelocityThreshold:l=_Y,initialSnap:u,isOpen:c,modalEffectRootId:d,modalEffectThreshold:f,mountPoint:h,prefersReducedMotion:p=!1,snapPoints:x,style:v,tweenConfig:m=gY,unstyled:g=!1,onOpenStart:y,onOpenEnd:_,onClose:b,onCloseStart:A,onCloseEnd:w,onSnap:B,onDrag:L,onDragStart:P,onDragEnd:R,...k},S)=>{let[T,C]=HF(),E=(0,Ie.useRef)(null),I=Math.round(C.height),[F,D]=(0,Ie.useState)(u),{windowHeight:M}=bY(),j=I>0?I:M,z=A0(j),V=Mo(z,ce=>Math.max(I-ce,0)),q=Mo(z,ce=>rT(1-ce/j,0,1)),U=A0(0),W=bC(),le={type:"tween",...!!(p||W)?yY:m},ie=Mo(z,ce=>ce+2>=j?-1:v?.zIndex??9999),O=Mo(z,ce=>ce+2>=j?"hidden":"visible"),H=(0,Ie.useMemo)(()=>x&&I>0?UY({sheetHeight:I,snapPointsProp:x}):[],[I,x?.join("")]),N=ir(ce=>{D(ce),B?.(ce)}),Z=ir(ce=>x&&H?ce<0||ce>=H.length?(console.warn(`Invalid snap index ${ce}. Snap points are: [${x.join(", ")}] and their computed values are: [${H.map(me=>me.snapValue).join(", ")}]`),null):H[ce]:null),J=ir(async ce=>{if(!x){console.warn("Snapping is not possible without `snapPoints` prop.");return}let me=Z(ce);if(me===null){console.warn(`Invalid snap index ${ce}.`);return}if(ce===0){b();return}await Pu(z,me.snapValueY,{...le,onComplete:()=>N(ce)})}),ye=LY({isEnabled:c&&e,containerRef:E,onWillOpenKeyboard:async()=>{let ce=H[H.length-1];ce&&ce.snapIndex!==F&&(await Pu(z,ce.snapValueY,le),N(ce.snapIndex))},onDidOpenKeyboard:ce=>{let me=E.current;if(!me)return;let _e=ce.getBoundingClientRect(),ct=me.getBoundingClientRect(),tt=me.querySelector(".react-modal-sheet-content-scroller"),it=Math.max(_e.top-ct.top+tt.scrollTop-_e.height,0);requestAnimationFrame(()=>{tt.scrollTo({top:it,behavior:"smooth"})})}}).isKeyboardOpen||o,Y=ir(()=>{var ce;let me=document.activeElement;me&&ku(me)&&((ce=E.current)!=null&&ce.contains(me))&&me.blur()}),he=ir((ce,me)=>{Y(),P?.(ce,me)}),oe=ir((ce,me)=>{L?.(ce,me);let _e=z.get(),ct=z.getVelocity();ct>0&&U.set(10),ct<0&&U.set(-10),z.set(Math.max(_e+me.delta.y,0))}),$=ir((ce,me)=>{Y(),R?.(ce,me);let _e=z.get(),ct=qY({y:_e,info:me,sheetHeight:I,dragCloseThreshold:s,snapPoints:H,dragVelocityThreshold:l}),tt=ct.yTo;if(i&&tt+1>=I){let it=H.find(ra=>ra.snapValue>0);it?(tt=it.snapValueY,N(it.snapIndex)):tt=_e}else ct.snapIndex!==void 0&&N(ct.snapIndex);Pu(z,tt,le),tt+1>=I&&!i&&b(),U.set(0)});MY({y:z,detent:r,sheetHeight:I,snapPoints:H,rootId:d,startThreshold:f}),zY({isDisabled:n||!c});let Ee=VY({isOpen:c,onOpen:async()=>{y?.(),await BY("react-modal-sheet-container");let ce=u!==void 0?Z(u):null,me=ce?.snapValueY??0;await Pu(z,me,le),u!==void 0&&N(u),_?.()},onClosing:async()=>{A?.(),await Pu(z,j,le),w?.()}}),te={currentSnap:F,detent:r,disableDrag:ye,dragProps:{drag:"y",dragElastic:0,dragMomentum:!1,dragPropagation:!1,onDrag:oe,onDragStart:he,onDragEnd:$},indicatorRotation:U,avoidKeyboard:e,prefersReducedMotion:p,sheetBoundsRef:T,sheetRef:E,unstyled:g,yProgress:q,y:z},ae={height:I,currentSnap:F,snapPoints:H,snapTo:J,y:z,yInverted:V,yProgress:q};(0,Ie.useImperativeHandle)(S,()=>ae);let ue=Ie.default.createElement(eT.Provider,{value:te},Ie.default.createElement(ln.div,{...k,ref:S,"data-sheet-state":Ee,className:`react-modal-sheet-root ${a}`,style:{...Wn(Kn.root,g),zIndex:ie,visibility:O,...v}},Ie.default.createElement(tT.Provider,{value:ae},Ee!=="closed"?t:null)));return Fh?ue:(0,$F.createPortal)(ue,h??document.body)});oT.displayName="Sheet";var GY=e=>!!e.onClick||!!e.onTap,nT=(0,Ie.forwardRef)(({style:e,className:t="",unstyled:a,...r},i)=>{let o=Th(),n=GY(r),s=n?ln.button:ln.div,l=n?"auto":"none",u=a??o.unstyled,c={opacity:o.yProgress,...Wn(Kn.backdrop,u),...e,pointerEvents:l};return Ie.default.createElement(s,{...r,ref:i,className:`react-modal-sheet-backdrop ${t}`,style:c})});nT.displayName="SheetBackdrop";var sT=(0,Ie.forwardRef)(({children:e,style:t,className:a="",unstyled:r,...i},o)=>{let n=Th(),s=r??n.unstyled,l={...Wn(Kn.container,s),...t,y:n.y};return n.detent==="default"&&(l.height=WF),n.detent==="full"&&(l.height="100%",l.maxHeight="100%"),n.detent==="content"&&(l.height="auto",l.maxHeight=WF),Ie.default.createElement(ln.div,{...i,ref:q2([o,n.sheetRef,n.sheetBoundsRef]),className:`react-modal-sheet-container ${a}`,style:l},e)});sT.displayName="SheetContainer";var HY={bottom:0,top:0,left:0,right:0};function lT(){let e=(0,Ie.useRef)(null),t=(0,Ie.useCallback)(()=>HY,[]);return{ref:e,onMeasure:t}}function ZY(e={}){let{debounceDelay:t=32,isEnabled:a=!0}=e,r=(0,Ie.useRef)(null),[i,o]=(0,Ie.useState)(null),[n,s]=(0,Ie.useState)(void 0),l=(0,Ie.useMemo)(()=>f=>{o(f)},[]),u=ir(f=>{let{scrollTop:h,scrollHeight:p,clientHeight:x}=f;if(!(p>x)){n&&s(void 0);return}let m=h<=0,g=Math.ceil(p)-Math.ceil(h)===Math.ceil(x),y;m?y="top":g?y="bottom":y="middle",f.style.touchAction=m?"pan-down":"",y!==n&&s(y)}),c=ir(f=>{if(f.currentTarget instanceof HTMLElement){let h=f.currentTarget;r.current&&clearTimeout(r.current),t===0?u(h):r.current=setTimeout(()=>u(h),t)}}),d=ir(f=>{if(f.currentTarget instanceof HTMLElement){let h=f.currentTarget;requestAnimationFrame(()=>{u(h)})}});return(0,Ie.useEffect)(()=>{if(!(!i||!a))return u(i),i.addEventListener("scroll",c),i.addEventListener("touchstart",d),()=>{r.current&&clearTimeout(r.current),i.removeEventListener("scroll",c),i.removeEventListener("touchstart",d)}},[i,a]),{scrollRef:l,scrollPosition:n}}var uT=(0,Ie.forwardRef)(({disableScroll:e,disableDrag:t,children:a,style:r,className:i="",scrollClassName:o="",scrollStyle:n,scrollRef:s=null,unstyled:l,...u},c)=>{let d=Th(),f=lT(),h=ZY({isEnabled:typeof e=="function"?!0:!e}),p=typeof e=="function"?e({scrollPosition:h.scrollPosition,currentSnap:d.currentSnap}):!!e,x=!p&&h.scrollPosition&&h.scrollPosition!=="top",g=(typeof t=="function"?t({scrollPosition:h.scrollPosition,currentSnap:d.currentSnap}):!!t)||x||d.disableDrag||d.disableDrag?void 0:d.dragProps,y=l??d.unstyled,_={...Wn(Kn.content,y),...r},b=Wn(Kn.scroller,y);return d.avoidKeyboard&&(b.paddingBottom=aT()?"env(keyboard-inset-height, var(--keyboard-inset-height, 0px))":"var(--keyboard-inset-height, 0px)"),p&&(b.overflowY="clip"),g!==void 0&&(b.touchAction="pan-down"),Ie.default.createElement(ln.div,{...u,ref:q2([c,f.ref]),className:`react-modal-sheet-content ${i}`,style:_,...g,dragConstraints:f.ref,onMeasureDragConstraints:f.onMeasure},Ie.default.createElement(ln.div,{ref:q2([h.scrollRef,s]),style:{...b,...n},className:`react-modal-sheet-content-scroller ${o}`},a))});uT.displayName="SheetContent";function cT({style:e,className:t="",unstyled:a,...r}){let i=Th(),o=Mo(i.indicatorRotation,c=>`translateX(2px) rotate(${c}deg)`),n=Mo(i.indicatorRotation,c=>`translateX(-2px) rotate(${-1*c}deg)`),s=a??i.unstyled,l={...Wn(Kn.indicatorWrapper,s),...e},u=Wn(Kn.indicator,s);return Ie.default.createElement("div",{className:`react-modal-sheet-drag-indicator-container ${t}`,style:l,...r},Ie.default.createElement(ln.span,{className:"react-modal-sheet-drag-indicator",style:{...u,transform:o}}),Ie.default.createElement(ln.span,{className:"react-modal-sheet-drag-indicator",style:{...u,transform:n}}))}var dT=(0,Ie.forwardRef)(({children:e,style:t,disableDrag:a,unstyled:r,className:i="",...o},n)=>{let s=Th(),l=lT(),u=a||s.disableDrag?void 0:s.dragProps,c=r??s.unstyled,d={...Wn(Kn.headerWrapper,c),...t},f=Wn(Kn.header,c);return Ie.default.createElement(ln.div,{...o,ref:q2([n,l.ref]),style:d,className:`react-modal-sheet-header-container ${i}`,...u,dragConstraints:l.ref,onMeasureDragConstraints:l.onMeasure},e||Ie.default.createElement("div",{className:"react-modal-sheet-header",style:f},Ie.default.createElement(cT,null)))});dT.displayName="SheetHeader";var Ru=Object.assign(oT,{Container:sT,Header:dT,DragIndicator:cT,Content:uT,Backdrop:nT,useContext:mY});var Ta=X(ke(),1),fT=(e,t)=>typeof e=="number"?e:e.endsWith("%")?parseFloat(e)/100*t:parseFloat(e),WY=32,KY={duration:.4,ease:[.32,.72,0,1]},XY=1700,LC=(0,ga.forwardRef)(({menuItems:e,state:t,onChangeState:a,drawerPeekHeight:r,drawerFullHeight:i,drawerAutoMaxHeight:o,containerHeight:n,menuContent:s,enableTouchDrag:l=!0,handleVisible:u=!0,onAutoContentHeightChange:c,showScrollToTopButton:d=!0,scrollToTopThreshold:f=300,safeAreaInsets:h={bottom:0,left:0,right:0,top:0}},p)=>{let x=(0,ga.useRef)(null);(0,ga.useImperativeHandle)(p,()=>x.current);let v=(0,ga.useRef)(null),m=(0,ga.useRef)(null),[g,y]=(0,ga.useState)(()=>n??(typeof window<"u"?window.innerHeight:800));(0,ga.useEffect)(()=>{if(n){y(n);return}if(typeof window>"u")return;let M=()=>y(window.innerHeight);return M(),window.addEventListener("resize",M),()=>window.removeEventListener("resize",M)},[n]);let[_,b]=(0,ga.useState)(0);(0,ga.useEffect)(()=>{let M=m.current;if(!M)return;let j=()=>{let q=(u?v.current?.offsetHeight??0:0)+M.scrollHeight;b(q),c?.(q)};j();let z=new ResizeObserver(j);return z.observe(M),()=>z.disconnect()},[u,c]);let A=(u?WY:0)+h.bottom,w=fT(r??"15%",g),B=fT(o??"100%",g),L=Math.min(B,Math.max(_,A+1)),{snapPoints:P,snapLabels:R,backdropOutput:k}=(0,ga.useMemo)(()=>{let M=q=>q>0&&q<=1?q*g:q,z=[{label:"closed",raw:0},{label:"closed",raw:A},{label:"peek",raw:w},{label:"auto",raw:L},{label:"full",raw:1}].sort((q,U)=>M(q.raw)-M(U.raw)),V=[];for(let q of z){let U=V[V.length-1];if(U&&Math.abs(M(U.raw)-M(q.raw))<.5){V[V.length-1]=q;continue}V.push(q)}return{backdropOutput:V.map(q=>q.label==="full"||q.label==="auto"?1:0),snapLabels:V.map(q=>q.label),snapPoints:V.map(q=>q.raw)}},[A,w,L,g]),S=Math.max(0,R.lastIndexOf(t)),T=(0,ga.useRef)(null);(0,ga.useEffect)(()=>{let M=!1,j=0,z=()=>{if(M)return;let V=T.current;if(V&&V.snapPoints.length>0){V.snapTo(S);return}j+=1,!(j>60)&&requestAnimationFrame(z)};return z(),()=>{M=!0}},[S]);let C=(0,ga.useCallback)(M=>{let j=R[M]??"closed";j!==t&&a(j)},[R,t,a]),E=()=>{a(t==="closed"?"peek":t==="peek"?"full":t==="auto"?"closed":"peek")},[I,F]=(0,ga.useState)(!1);(0,ga.useEffect)(()=>{let M=x.current;if(!M)return;let j=()=>{F(t!=="closed"&&M.scrollTop>f)};return M.addEventListener("scroll",j),()=>M.removeEventListener("scroll",j)},[t,f]),(0,ga.useEffect)(()=>{t==="closed"&&F(!1)},[t]);let D=!l;return(0,Ta.jsxs)(Ta.Fragment,{children:[(0,Ta.jsx)("style",{children:`
|
|
878
878
|
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
|
|
879
879
|
.no-scrollbar::-webkit-scrollbar { display: none; }
|
|
880
|
-
`}),(0,Ta.jsxs)(Ru,{disableDismiss:!0,disableDrag:D,dragVelocityThreshold:XY,initialSnap:S,isOpen:!0,onClose:()=>a("closed"),onSnap:C,ref:T,snapPoints:P,tweenConfig:KY,children:[(0,Ta.jsxs)(Ru.Container,{className:"!bg-zinc-950/85 !backdrop-blur-md !border !border-white/10 !border-b-0 !rounded-t-2xl !shadow-2xl ",style:{paddingBottom:h.bottom},children:[u&&(0,Ta.jsx)(Ru.Header,{className:"!bg-transparent cursor-pointer hover:!bg-white/5 transition-colors",onClick:E,ref:v}),(0,Ta.jsxs)(Ru.Content,{className:"!bg-transparent",disableDrag:M=>D||M.scrollPosition==="middle",disableScroll:M=>!D&&M.currentSnap!==P.length-1,scrollClassName:"no-scrollbar",scrollRef:x,children:[(0,Ta.jsx)("div",{className:"px-4 pb-4 pt-2 relative",ref:m,children:s||(0,Ta.jsx)("div",{className:"flex flex-col gap-1",children:e.map(M=>(0,Ta.jsxs)(kt,{className:`flex items-center gap-3 w-full py-3 px-3.5 rounded-xl text-left cursor-pointer transition-all duration-150 justify-start hover:bg-white/5 hover:text-white active:bg-white/10 text-white ${M.disabled?"opacity-45 cursor-not-allowed pointer-events-none":""}`,disabled:M.disabled,onClick:()=>{M.disabled||(M.onPress(),a("closed"))},variant:"ghost",children:[(0,Ta.jsxs)("div",{className:"relative flex items-center justify-center w-8 h-8 rounded-lg bg-white/5 text-zinc-300",children:[M.icon,M.badge!==void 0&&(0,Ta.jsx)("span",{className:"absolute -top-1 -right-1 bg-cyan-500 text-black text-[9px] font-extrabold min-w-[15px] h-3.5 rounded-full flex items-center justify-center px-1 border border-zinc-950 shadow",children:M.badge})]}),(0,Ta.jsx)("span",{className:"text-sm font-medium tracking-wide",children:M.label})]},M.id))})}),d&&I&&(0,Ta.jsx)(kt,{className:"absolute bottom-4 right-6 z-50 flex items-center justify-center w-10 h-10 rounded-full bg-cyan-500 hover:bg-cyan-400 active:scale-95 text-black hover:text-black shadow-lg shadow-cyan-500/25 transition-all duration-200 cursor-pointer p-0!",onClick:()=>{x.current?.scrollTo({behavior:"smooth",top:0})},variant:"ghost",children:(0,Ta.jsx)("svg",{fill:"none",height:"20",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2.5",viewBox:"0 0 24 24",width:"20",xmlns:"http://www.w3.org/2000/svg",children:(0,Ta.jsx)("polyline",{points:"18 15 12 9 6 15"})})})]})]}),(0,Ta.jsx)(YY,{active:t==="full"||t==="auto",onTap:()=>a("closed"),output:k})]})]})});LC.displayName="MobileBottomDrawer";function YY({active:e,output:t,onTap:a}){let{y:r,snapPoints:i}=Ru.useContext(),o=Mo(r,n=>i.length===0||t.length!==i.length?0:nu(i.map(l=>l.snapValueY),t)(n)*.45);return(0,Ta.jsx)(Ru.Backdrop,{className:"!bg-black !backdrop-blur-[1px]",onTap:e?a:void 0,style:{opacity:o}})}var pt=X(de(),1),hT=X(ke(),1),un=(0,pt.createContext)(null),IC=({children:e})=>{let[t,a]=(0,pt.useState)(!0),[r,i]=(0,pt.useState)(0),[o,n]=(0,pt.useState)(0),[s,l]=(0,pt.useState)("closed"),u=(0,pt.useRef)(null),c=(0,pt.useCallback)(D=>{l(D)},[]),[d,f]=(0,pt.useState)(!0),h=(0,pt.useCallback)(D=>{f(M=>M===D?M:D)},[]),[p,x]=(0,pt.useState)(!1),v=(0,pt.useCallback)(D=>{x(M=>M===D?M:D)},[]),[m,g]=(0,pt.useState)(void 0),y=(0,pt.useCallback)(D=>{g(M=>!M&&!D?M:!M||!D?D:M.etaMins===D.etaMins&&M.distanceRemainingKm===D.distanceRemainingKm&&M.label===D.label&&M.progress===D.progress&&M.mode===D.mode&&M.isCalculating===D.isCalculating&&M.error===D.error?M:D)},[]),[_,b]=(0,pt.useState)({bottom:0,left:0,right:0,top:0}),A=(0,pt.useCallback)(D=>{b(M=>({...M,...D}))},[]),w=(0,pt.useRef)(null),B=(0,pt.useRef)(null),L=(0,pt.useRef)(null),P=(0,pt.useCallback)(D=>{w.current&&w.current(D)},[]),R=(0,pt.useCallback)(D=>{B.current&&B.current(D)},[]),k=(0,pt.useCallback)((D,M)=>{L.current&&L.current(D,M)},[]),S=(0,pt.useCallback)(D=>{w.current=D},[]),T=(0,pt.useCallback)(D=>{B.current=D},[]),C=(0,pt.useCallback)(D=>{L.current=D},[]),E=(0,pt.useCallback)(D=>{i(D)},[]),I=(0,pt.useCallback)(D=>{n(D)},[]),F=(0,pt.useMemo)(()=>({_registerCenterCallback:S,_registerFlyToCallback:C,_registerResetBearingCallback:T,bearing:r,centerOnUser:P,drawerContentRef:u,drawerHandleVisible:d,drawerState:s,etaData:m,flyTo:k,hasControls:p,insets:_,isFollowing:t,pitch:o,resetBearing:R,setBearing:E,setDrawerHandleVisible:h,setDrawerState:c,setEtaData:y,setHasControls:v,setInsets:A,setIsFollowing:a,setPitch:I}),[S,C,T,r,P,d,s,m,k,p,t,o,R,E,h,c,y,v,I,_,A]);return(0,hT.jsx)(un.Provider,{value:F,children:e})},QY=()=>{let e=(0,pt.useContext)(un);if(!e)throw new Error("useMapControls must be used within a MapControlsProvider");return e};var xr=X(de(),1),cn=X(ke(),1),MC=(e,t)=>typeof e=="number"?e:e.endsWith("%")?parseFloat(e)/100*t:parseFloat(e),PC=({menuItems:e=[],drawerSide:t,customControls:a=[],etaBarHeight:r=100,onRecenter:i,isMapCentered:o,mapBearing:n,onResetBearing:s,etaData:l,customRecenterButton:u,defaultState:c,initialViewState:d,customCompassButton:f,drawerPeekHeight:h,drawerFullHeight:p,drawerAutoMaxHeight:x,drawerContentRef:v,menuContent:m,children:g,enableTouchDrag:y=!1,showScrollToTopButton:_=!0,scrollToTopThreshold:b=300,controlsBottomOffset:A=0,isInternal:w=!1})=>{let B=(0,xr.useContext)(un),L=B?.drawerContentRef,P=(0,xr.useCallback)(te=>{v&&(typeof v=="function"?v(te):v.current=te),L&&(L.current=te)},[v,L]),[R,k]=(0,xr.useState)(c??"closed"),S=B?B.drawerState:R,T=(0,xr.useCallback)(te=>{B?B.setDrawerState(te):k(te)},[B]);(0,xr.useEffect)(()=>{c&&B&&B.setDrawerState(c)},[]);let[C,E]=(0,xr.useState)("left"),I=(0,xr.useRef)(null),[F,D]=(0,xr.useState)(600);(0,xr.useEffect)(()=>{let te=I.current?.parentElement;if(!te)return;let ae=()=>{D(te.getBoundingClientRect().height)};ae();let ue=new ResizeObserver(ae);return ue.observe(te),()=>{ue.disconnect()}},[]);let M=B?.setHasControls;(0,xr.useEffect)(()=>{if(M&&!w)return M(!0),()=>M(!1)},[M,w]);let j=o!==void 0?o:B?B.isFollowing:!0,z=n!==void 0?n:B?B.bearing:0,V=te=>{i?i(te):B&&B.centerOnUser(te)},q=te=>{s?s(te):B&&B.resetBearing(te)},U=B?B.pitch:0,W=l!==void 0?l:B?.etaData,[Q,le]=(0,xr.useState)(0);(0,xr.useEffect)(()=>{if(typeof window>"u")return;let te=()=>{t?E(t):window.innerWidth<768?E("bottom"):E("left")};return te(),window.addEventListener("resize",te),()=>window.removeEventListener("resize",te)},[t]);let ie=!1,O=0,H=MC(p||"85%",F),N=MC(h||"15%",F),Z=MC(x||"100%",F),J=Math.min(Z,Q),fe=B?.insets.bottom||0,ye=B?B.drawerHandleVisible:!0,Y=ye?32:0;S==="peek"?Y=N:S==="full"?Y=H:S==="auto"&&(Y=J);let he=Y,oe=N+20,$=N+(H-N)*.35,Ee=1,se="1rem";return C==="bottom"?(he<=oe?Ee=1:he>=$?Ee=0:Ee=1-(he-oe)/($-oe),se=`calc(${Y+(S==="closed"?fe:0)+16}px - var(--drag-offset, 0px))`):(Ee=S==="full"?0:1,se=`calc(1rem + ${fe}px)`),(0,cn.jsxs)(cn.Fragment,{children:[(0,cn.jsx)("div",{ref:I,style:{display:"none"}}),C==="bottom"?(0,cn.jsx)(LC,{containerHeight:F,drawerAutoMaxHeight:x,drawerFullHeight:p,drawerPeekHeight:h,enableTouchDrag:y,handleVisible:ye,menuContent:g||m,menuItems:e,onAutoContentHeightChange:le,onChangeState:T,ref:P,safeAreaInsets:B?.insets,scrollToTopThreshold:b,showScrollToTopButton:_,state:S}):(0,cn.jsx)(o5,{menuContent:g||m,menuItems:e,onChangeState:T,ref:P,scrollToTopThreshold:b,showScrollToTopButton:_,state:S}),(0,cn.jsx)(LB,{bottomOffset:A,clampedDragOffset:O,customCompassButton:f,customControls:a,customRecenterButton:u,drawerPeekHeight:h,drawerState:S,etaBarHeight:r+(S==="closed"?fe:0),etaData:W,initialViewState:d,insets:B?.insets,isDragging:ie,isMapCentered:j,mapBearing:z,mapPitch:U,onRecenter:()=>V(),onResetBearing:q,side:C}),W&&(0,cn.jsx)(TB,{etaData:W,isDragging:ie,layoutMode:"floating-card",style:{bottom:se,opacity:Ee,pointerEvents:Ee>.1?"auto":"none",transition:ie?"none":"bottom 250ms ease-in-out, opacity 300ms ease-out"}})]})};var pT=X(de(),1),Po=X(ke(),1),Lh=({children:e})=>(0,Po.jsx)("div",{className:"flex flex-col gap-1.5",children:e}),Z2=({id:e,label:t,icon:a,onPress:r,badge:i,disabled:o=!1,children:n})=>{let s=(0,pT.useContext)(un);return(0,Po.jsxs)("button",{className:`flex items-center gap-3 w-full py-3 px-3.5 rounded-xl text-left cursor-pointer transition-all duration-150 ${o?"opacity-45 cursor-not-allowed pointer-events-none":"hover:bg-white/5 active:bg-white/10 text-white"}`,disabled:o,onClick:u=>{o||(r&&r(),s&&s.setDrawerState&&s.setDrawerState("closed"))},type:"button",children:[a&&(0,Po.jsxs)("div",{className:"relative flex items-center justify-center w-8 h-8 rounded-lg bg-white/5 text-zinc-300",children:[a,i!==void 0&&(0,Po.jsx)("span",{className:"absolute -top-1 -right-1 bg-cyan-500 text-black text-[9px] font-extrabold min-w-[15px] h-3.5 rounded-full flex items-center justify-center px-1 border border-zinc-950 shadow",children:i})]}),(0,Po.jsxs)("div",{className:"flex-1 flex flex-col justify-center",children:[(0,Po.jsx)("span",{className:"text-sm font-medium tracking-wide flex-1",children:t}),n]})]})};Lh.displayName="MapMenu";Z2.displayName="MapMenuItem";var W2=({children:e,showDivider:t=!0,className:a=""})=>(0,Po.jsx)("div",{className:`flex items-center justify-between pb-3 first:mt-0 px-3.5 ${a} ${t?"border-b border-white/10 mb-2 mt-4":""}`,children:e});W2.displayName="MapMenuTitle";var K2=({className:e=""})=>(0,Po.jsx)("div",{className:`h-[1px] bg-white/10 my-3 mx-3.5 ${e}`});K2.displayName="MapMenuDivider";var X2=({children:e,className:t=""})=>(0,Po.jsx)("div",{className:`mt-auto pt-4 border-t border-white/10 px-3.5 text-xs text-zinc-500 font-medium ${t}`,children:e});X2.displayName="MapMenuFooter";var xT=(r=>(r.TOP_SCROLL_MORE="TOP_SCROLL_MORE",r.BOTTOM_SCROLL_MORE="BOTTOM_SCROLL_MORE",r.BACK_GESTURE="BACK_GESTURE",r))(xT||{}),mT=(a=>(a.LOCATION_UPDATE="LOCATION_UPDATE",a.LOCATION_STREAM_UPDATE="LOCATION_STREAM_UPDATE",a))(mT||{}),gT=(t=>(t.UPDATE_CONTEXT="UPDATE_CONTEXT",t))(gT||{});var J2=X(de(),1),kC=.12,yT={accuracy:null,coords:null,heading:null};function RC(e){let t=e.location?.coords||e.coords,a=e.heading,r=t?[t.longitude,t.latitude]:null,i=null;return a?.trueHeading!==void 0&&a.trueHeading>=0?i=a.trueHeading:a?.magneticHeading!==void 0&&a.magneticHeading>=0?i=a.magneticHeading:a?.heading!==null&&a?.heading>=0&&(i=a.heading),{accuracy:t?.accuracy||null,coords:r,heading:i}}var Y2=0,Q2=0,zC=new Set,ko={...yT},eo={coords:null,heading:null},Ih=null,OC=null,NC=null;function VC(){return{accuracy:ko.accuracy,coords:eo.coords?[...eo.coords]:null,heading:eo.heading}}function JY(){let e=VC();for(let t of zC)t(e)}function vT(){let e=!1;if(ko.coords)if(!eo.coords)eo.coords=[...ko.coords],e=!0;else{let[t,a]=ko.coords,[r,i]=eo.coords,o=r+(t-r)*kC,n=i+(a-i)*kC;(Math.abs(o-r)>1e-7||Math.abs(n-i)>1e-7)&&(eo.coords=[o,n],e=!0)}if(ko.heading!==null)if(eo.heading===null)eo.heading=ko.heading,e=!0;else{let t=ko.heading,a=eo.heading,r=t-a;r>180&&(r-=360),r<-180&&(r+=360);let o=((a+r*kC)%360+360)%360;Math.abs(r)>.1&&(eo.heading=o,e=!0)}e&&JY(),Ih=requestAnimationFrame(vT)}function $Y(){Ih=requestAnimationFrame(vT),Q2++;let e=Q2;xt.location.getCurrentPosition().then(t=>{e===Q2&&(ko=RC(t))}).catch(t=>console.warn("Initial location fetch failed",t)),OC=xt.on("LOCATION_STREAM_UPDATE",t=>{ko=RC(t)}),NC=xt.on("LOCATION_UPDATE",t=>{ko=RC(t)}),xt.location.startStream({distanceFilter:1,headingThreshold:2}).catch(t=>console.warn("Failed to start location stream",t))}function eQ(){Q2++,Ih!==null&&cancelAnimationFrame(Ih),Ih=null,OC?.(),NC?.(),OC=null,NC=null,xt.location.stopStream().catch(()=>{}),ko={...yT},eo={coords:null,heading:null}}var Mh=()=>{let[e,t]=(0,J2.useState)(VC);return(0,J2.useEffect)(()=>(Y2++,Y2===1?$Y():t(VC()),zC.add(t),()=>{zC.delete(t),Y2--,Y2===0&&eQ()}),[]),e};var ya=X(de(),1),tQ=15,UC=({origin:e,destination:t,profile:a="driving",recalculateThreshold:r=50,enabled:i=!0,initialMode:o="preview",arrivalThresholdMeters:n=tQ})=>{let[s,l]=(0,ya.useState)(null),[u,c]=(0,ya.useState)(null),[d,f]=(0,ya.useState)(!1),[h,p]=(0,ya.useState)(null),[x,v]=(0,ya.useState)(o),m=Mh(),g=e||m.coords,y=m.coords||e,_=(0,ya.useRef)(null),b=(0,ya.useRef)(null),A=(0,ya.useRef)(!1),w=(0,ya.useRef)(null),B=(0,ya.useCallback)((k,S)=>{let C=k[1]*Math.PI/180,E=S[1]*Math.PI/180,I=(S[1]-k[1])*Math.PI/180,F=(S[0]-k[0])*Math.PI/180,D=Math.sin(I/2)*Math.sin(I/2)+Math.cos(C)*Math.cos(E)*Math.sin(F/2)*Math.sin(F/2);return 6371e3*(2*Math.atan2(Math.sqrt(D),Math.sqrt(1-D)))},[]),L=(0,ya.useMemo)(()=>{if(!y||!s||s.geometry.coordinates.length<2)return y&&t?B(y,t):null;let k=s.geometry.coordinates,S=1/0,T=0,C=(D,M)=>(D[0]-M[0])**2+(D[1]-M[1])**2;for(let D=0;D<k.length;D++){let M=C(y,k[D]);M<S&&(S=M,T=D)}let E=k.slice(T+1),I=0,F=y;for(let D of E)I+=B(F,D),F=D;return I},[y,s,t,B]),P=L!==null&&L<=n,R=(0,ya.useCallback)(async(k,S,T)=>{if(!A.current){A.current=!0,f(!0);try{let C=await xt.routing.getRoute({destination:S,origin:k,profile:a});if(l(C),p(null),T){let E=C.geometry.coordinates,I=0;for(let F=0;F<E.length-1;F++)I+=B(E[F],E[F+1]);c(I)}_.current=k,b.current=S}catch(C){p(C.message||"Failed to fetch route")}finally{f(!1),A.current=!1}}},[a,B]);return(0,ya.useEffect)(()=>{o==="navigation"&&v("navigation")},[o]),(0,ya.useEffect)(()=>{if(!i||!t||!g){(!i||!t)&&(l(null),c(null),_.current=null,b.current=null,w.current=null,v(o));return}let k=!b.current||b.current[0]!==t[0]||b.current[1]!==t[1],S=`${t[0]},${t[1]}`;if(w.current!==S&&(w.current=S,v(o),l(null),c(null)),k)R(g,t,!0);else if(_.current){let T=y||g;B(T,_.current)>r&&R(T,t,!1)}else R(g,t,!0)},[g,y,t,i,o,r,R,B]),{currentDistanceMeters:L,error:h,hasArrived:P,isCalculating:d,mode:x,recalculate:()=>g&&t&&R(g,t,!1),route:s,start:()=>v("navigation"),totalDistance:u}},aQ=(e,t,a="driving")=>{let[r,i]=(0,ya.useState)(null),[o,n]=(0,ya.useState)(!1),[s,l]=(0,ya.useState)(null);return(0,ya.useEffect)(()=>{if(!e||!t){i(null);return}(async()=>{n(!0);try{let c=await xt.routing.getRoute({destination:t,origin:e,profile:a});i(c),l(null)}catch(c){l(c.message||"Failed to fetch route")}finally{n(!1)}})()},[e,t,a]),{error:s,isCalculating:o,route:r}};var wi=X(de(),1),jC=(e={})=>{let{navigation:t,onAbort:a,onModeChange:r}=e,[i,o]=(0,wi.useState)(null),[n,s]=(0,wi.useState)(!1);(0,wi.useEffect)(()=>{let w=xt.on("SDK_NAVIGATION_CREATE",P=>{s(!1),o(P)}),B=xt.on("SDK_NAVIGATION_START",()=>{s(!1),o(P=>P?{...P,mode:"navigation"}:null)}),L=xt.on("SDK_NAVIGATION_ABORT",()=>{s(!0),o(null)});return()=>{w(),B(),L()}},[]);let l=i||t,u=UC({arrivalThresholdMeters:l?.arrivalThresholdMeters,destination:l?.destination||null,enabled:!n&&!!l?.destination,initialMode:l?.mode||"preview",origin:l?.origin,profile:l?.profile||"driving",recalculateThreshold:l?.recalculateThreshold||50}),c=(0,wi.useRef)(null),d=l?.destination;(0,wi.useEffect)(()=>{d&&(!c.current||c.current[0]!==d[0]||c.current[1]!==d[1])&&s(!1),c.current=d},[d]);let f=(0,wi.useRef)(r);f.current=r,(0,wi.useEffect)(()=>{f.current?.(u.mode)},[u.mode]);let h=!n&&!!l?.destination,p=h?u.currentDistanceMeters:null,x=h?u.totalDistance:null,v=u.route?.durationSeconds??null,m=p??0,g=m/1e3,y=(()=>{if(!v||!x||!p)return 0;let w=p/x;return Math.ceil(v*w/60)})(),_=x&&x>0?Math.min(100,Math.max(0,(x-m)/x*100)):0,b=(0,wi.useCallback)(()=>{s(!0),o(null),xt.navigation.abort(),a&&a()},[a]),A=(0,wi.useCallback)(()=>{xt.navigation.start(),u.start()},[u.start]);return{cancel:b,distanceRemainingKm:g,distanceRemainingMeters:p,error:h?u.error:null,etaMinutes:y,hasArrived:h?u.hasArrived:!1,isActive:h,isCalculating:h?u.isCalculating:!1,mode:h?u.mode:"preview",progress:_,recalculate:u.recalculate,route:h?u.route:null,start:A,totalDistanceMeters:x}};var _T=X(de(),1),qC=(e,t)=>(0,_T.useMemo)(()=>{if(!e||!t||e.coordinates.length<2)return e;let a=e.coordinates,r=1/0,i=0,o=(s,l)=>(s[0]-l[0])**2+(s[1]-l[1])**2;for(let s=0;s<a.length;s++){let l=o(t,a[s]);l<r&&(r=l,i=s)}let n=a.slice(i+1);return{coordinates:[t,...n],type:"LineString"}},[e,t]);var El=X(de(),1),Mi=X(de(),1);var $2=X(de(),1),dn=X(de(),1);var e1=$2.createContext(null),GC=e=>{let[t,a]=(0,dn.useState)({}),r=(0,dn.useCallback)((o,n="default")=>{a(s=>{if(n==="current")throw new Error("'current' cannot be used as map id");if(s[n])throw new Error(`Multiple maps with the same id: ${n}`);return{...s,[n]:o}})},[]),i=(0,dn.useCallback)((o="default")=>{a(n=>{if(n[o]){let s={...n};return delete s[o],s}return n})},[]);return $2.createElement(e1.Provider,{value:{maps:t,onMapMount:r,onMapUnmount:i}},e.children)};function HC(){let e=(0,dn.useContext)(e1)?.maps,t=(0,dn.useContext)(Xn);return(0,dn.useMemo)(()=>({...e,current:t?.map}),[e,t])}function bT(e,t){let a=Array.isArray(e)?e[0]:e?e.x:0,r=Array.isArray(e)?e[1]:e?e.y:0,i=Array.isArray(t)?t[0]:t?t.x:0,o=Array.isArray(t)?t[1]:t?t.y:0;return a===i&&r===o}function mr(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let a=0;a<e.length;a++)if(!mr(e[a],t[a]))return!1;return!0}else if(Array.isArray(t))return!1;if(typeof e=="object"&&typeof t=="object"){let a=Object.keys(e),r=Object.keys(t);if(a.length!==r.length)return!1;for(let i of a)if(!t.hasOwnProperty(i)||!mr(e[i],t[i]))return!1;return!0}return!1}function ZC(e){return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch(),elevation:e.getCenterElevation?.()??0,padding:e.getPadding()}}function WC(e){return{longitude:e.center.lng,latitude:e.center.lat,zoom:e.zoom,pitch:e.pitch,bearing:e.bearing,padding:e.padding}}function KC(e,t){let a=t.viewState||t,r={};if("longitude"in a&&"latitude"in a&&(a.longitude!==e.center.lng||a.latitude!==e.center.lat)){let i=e.center.constructor;r.center=new i(a.longitude,a.latitude)}return"zoom"in a&&a.zoom!==e.zoom&&(r.zoom=a.zoom),"bearing"in a&&a.bearing!==e.bearing&&(r.bearing=a.bearing),"pitch"in a&&a.pitch!==e.pitch&&(r.pitch=a.pitch),a.padding&&e.padding&&!mr(a.padding,e.padding)&&(r.padding=a.padding),r}function CT(e,t,a,r){return e.min===t.min&&e.max===t.max?!1:(e.min>=t.min?(e.max!==t.max&&r(e.max),e.min!==t.min&&a(e.min)):(e.min!==t.min&&a(e.min),e.max!==t.max&&r(e.max)),!0)}function ET(e,t,a){return CT(t,a,r=>e.setMinZoom(r),r=>e.setMaxZoom(r))}function AT(e,t,a){return CT(t,a,r=>e.setMinPitch(r),r=>e.setMaxPitch(r))}var rQ=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function XC(e){if(!e)return null;if(typeof e=="string"||("toJS"in e&&(e=e.toJS()),!e.layers))return e;let t={};for(let r of e.layers)t[r.id]=r;let a=e.layers.map(r=>{let i=null;"interactive"in r&&(i=Object.assign({},r),delete i.interactive);let o=t[r.ref];if(o){i=i||Object.assign({},r),delete i.ref;for(let n of rQ)n in o&&(i[n]=o[n])}return i||r});return{...e,layers:a}}var wT={version:8,sources:{},layers:[]},Yn={minZoom:0,maxZoom:22,minPitch:0,maxPitch:85,maxBounds:[-180,-85.051129,180,85.051129],projection:"mercator",renderWorldCopies:!0},DT={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},BT={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},ST={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},iQ=["maxBounds","projection","renderWorldCopies"],oQ=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"],t1=class e{constructor(t,a,r){this._map=null,this._internalUpdate=!1,this._hoveredFeatures=null,this._propsedCameraUpdate=null,this._styleComponents={},this._onEvent=i=>{let o=this.props[ST[i.type]];o?o(i):i.type==="error"&&console.error(i.error)},this._onCameraEvent=i=>{if(this._internalUpdate)return;i.viewState=this._propsedCameraUpdate||WC(ZC(this._map));let o=this.props[BT[i.type]];o&&o(i)},this._onCameraUpdate=i=>this._internalUpdate?i:(this._propsedCameraUpdate=WC(i),KC(i,this.props)),this._onPointerEvent=i=>{(i.type==="mousemove"||i.type==="mouseout")&&this._updateHover(i);let o=this.props[DT[i.type]];o&&(this.props.interactiveLayerIds&&i.type!=="mouseover"&&i.type!=="mouseout"&&(i.features=this._hoveredFeatures||this._queryRenderedFeatures(i.point)),o(i),delete i.features)},this._MapClass=t,this.props=a,this._initialize(r)}get map(){return this._map}setProps(t){let a=this.props;this.props=t;let r=this._updateSettings(t,a),i=this._updateSize(t),o=this._updateViewState(t);this._updateStyle(t,a),this._updateStyleComponents(t),this._updateHandlers(t,a),(r||i||o&&!this._map.isMoving())&&this.redraw()}static reuse(t,a){let r=e.savedMaps.pop();if(!r)return null;let i=r.map,o=i.getContainer();for(a.className=o.className;o.childNodes.length>0;)a.appendChild(o.childNodes[0]);i._container=a;let n=i._resizeObserver;n&&(n.disconnect(),n.observe(a)),r.setProps({...t,styleDiffing:!1}),i.resize();let{initialViewState:s}=t;return s&&(s.bounds?i.fitBounds(s.bounds,{...s.fitBoundsOptions,duration:0}):r._updateViewState(s)),i.isStyleLoaded()?i.fire("load"):i.once("style.load",()=>i.fire("load")),i._update(),r}_initialize(t){let{props:a}=this,{mapStyle:r=wT}=a,i={...a,...a.initialViewState,container:t,style:XC(r)},o=i.initialViewState||i.viewState||i;if(Object.assign(i,{center:[o.longitude||0,o.latitude||0],zoom:o.zoom||0,pitch:o.pitch||0,bearing:o.bearing||0}),a.gl){let l=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=l,a.gl)}let n=new this._MapClass(i);o.padding&&n.setPadding(o.padding),a.cursor&&(n.getCanvas().style.cursor=a.cursor);let s=n;typeof s.setTransformCameraUpdate=="function"?s.setTransformCameraUpdate(this._onCameraUpdate):s.transformCameraUpdate=this._onCameraUpdate,n.on("style.load",()=>{this._styleComponents={light:n.getLight(),sky:n.getSky(),projection:n.getProjection?.(),terrain:n.getTerrain()},this._updateStyleComponents(this.props)}),n.on("sourcedata",()=>{this._updateStyleComponents(this.props)});for(let l in DT)n.on(l,this._onPointerEvent);for(let l in BT)n.on(l,this._onCameraEvent);for(let l in ST)n.on(l,this._onEvent);this._map=n}recycle(){this.map.getContainer().querySelector("[mapboxgl-children]")?.remove(),e.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){let t=this._map;t.style&&(t._frame&&(t._frame.cancel(),t._frame=null),t._render())}_updateSize(t){let{viewState:a}=t;if(a){let r=this._map,i=r.getCanvas();if(a.width!==i.clientWidth||a.height!==i.clientHeight)return r.resize(),!0}return!1}_updateViewState(t){let a=this._map,r=ZC(a);if(!a.isMoving()){let o=KC(r,t);if(Object.keys(o).length>0)return this._internalUpdate=!0,a.jumpTo(o),this._internalUpdate=!1,!0}return!1}_updateConstraints(t,a){let r=ET(this._map,{min:t.minZoom??Yn.minZoom,max:t.maxZoom??Yn.maxZoom},{min:a.minZoom??Yn.minZoom,max:a.maxZoom??Yn.maxZoom}),i=AT(this._map,{min:t.minPitch??Yn.minPitch,max:t.maxPitch??Yn.maxPitch},{min:a.minPitch??Yn.minPitch,max:a.maxPitch??Yn.maxPitch});return r||i}_updateSettings(t,a){let r=this._map,i=!1;for(let n of iQ)if((n in t||n in a)&&!mr(t[n],a[n])){i=!0;let l=n in t?t[n]:Yn[n];r[`set${n[0].toUpperCase()}${n.slice(1)}`]?.call(r,l)}let o=this._updateConstraints(t,a);return i||o}_updateStyle(t,a){if(t.cursor!==a.cursor&&(this._map.getCanvas().style.cursor=t.cursor||""),t.mapStyle!==a.mapStyle){let{mapStyle:r=wT,styleDiffing:i=!0}=t,o={diff:i};"localIdeographFontFamily"in t&&(o.localIdeographFontFamily=t.localIdeographFontFamily),this._map.setStyle(XC(r),o)}}_updateStyleComponents({light:t,projection:a,sky:r,terrain:i}){let o=this._map,n=this._styleComponents;o.style?._loaded&&(t&&!mr(t,n.light)&&(n.light=t,o.setLight(t)),a&&!mr(a,n.projection)&&a!==n.projection?.type&&(n.projection=typeof a=="string"?{type:a}:a,o.setProjection?.(n.projection)),r&&!mr(r,n.sky)&&(n.sky=r,o.setSky(r)),i!==void 0&&!mr(i,n.terrain)&&(!i||o.getSource(i.source))&&(n.terrain=i,o.setTerrain(i)))}_updateHandlers(t,a){let r=this._map;for(let i of oQ){let o=t[i]??!0,n=a[i]??!0;mr(o,n)||(o?r[i].enable(o):r[i].disable())}}_queryRenderedFeatures(t){let a=this._map,{interactiveLayerIds:r=[]}=this.props;try{return a.queryRenderedFeatures(t,{layers:r.filter(a.getLayer.bind(a))})}catch{return[]}}_updateHover(t){let{props:a}=this;if(a.interactiveLayerIds&&(a.onMouseMove||a.onMouseEnter||a.onMouseLeave)){let i=t.type,o=this._hoveredFeatures?.length>0,n=this._queryRenderedFeatures(t.point),s=n.length>0;!s&&o&&(t.type="mouseleave",this._onPointerEvent(t)),this._hoveredFeatures=n,s&&!o&&(t.type="mouseenter",this._onPointerEvent(t)),t.type=i}else this._hoveredFeatures=null}};t1.savedMaps=[];var YC=t1;var nQ=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function QC(e){if(!e)return null;let t=e.map,a={getMap:()=>t};for(let r of sQ(t))!(r in a)&&!nQ.includes(r)&&(a[r]=t[r].bind(t));return a}function sQ(e){let t=new Set,a=e;for(;a;){for(let r of Object.getOwnPropertyNames(a))r[0]!=="_"&&typeof e[r]=="function"&&r!=="fire"&&r!=="setEventedParent"&&t.add(r);a=Object.getPrototypeOf(a)}return Array.from(t)}var a1=X(de(),1),lQ=typeof document<"u"?a1.useLayoutEffect:a1.useEffect,FT=lQ;function JC(e,t){let{RTLTextPlugin:a,maxParallelImageRequests:r,workerCount:i,workerUrl:o}=t;if(a&&e.getRTLTextPluginStatus&&e.getRTLTextPluginStatus()==="unavailable"){let{pluginUrl:n,lazy:s=!0}=typeof a=="string"?{pluginUrl:a}:a;e.setRTLTextPlugin(n,l=>{l&&console.error(l)},s)}r!==void 0&&e.setMaxParallelImageRequests(r),i!==void 0&&e.setWorkerCount(i),o!==void 0&&e.setWorkerUrl(o)}var Xn=El.createContext(null);function Efe(e,t){let a=(0,Mi.useContext)(e1),[r,i]=(0,Mi.useState)(null),o=(0,Mi.useRef)(),{current:n}=(0,Mi.useRef)({mapLib:null,map:null});(0,Mi.useEffect)(()=>{let u=e.mapLib,c=!0,d;return Promise.resolve(u||Promise.resolve().then(()=>(CN(),_N))).then(f=>{if(!c)return;if(!f)throw new Error("Invalid mapLib");let h="Map"in f?f:f.default;if(!h.Map)throw new Error("Invalid mapLib");JC(h,e),e.reuseMaps&&(d=YC.reuse(e,o.current)),d||(d=new YC(h.Map,e,o.current)),n.map=QC(d),n.mapLib=h,i(d),a?.onMapMount(n.map,e.id)}).catch(f=>{let{onError:h}=e;h?h({type:"error",target:null,originalEvent:null,error:f}):console.error(f)}),()=>{c=!1,d&&(a?.onMapUnmount(e.id),e.reuseMaps?d.recycle():d.destroy())}},[]),FT(()=>{r&&r.setProps(e)}),(0,Mi.useImperativeHandle)(t,()=>n.map,[r]);let s=(0,Mi.useMemo)(()=>({position:"relative",width:"100%",height:"100%",...e.style}),[e.style]),l={height:"100%"};return El.createElement("div",{id:e.id,ref:o,style:s},r&&El.createElement(Xn.Provider,{value:n},El.createElement("div",{"mapboxgl-children":"",style:l},e.children)))}var sA=El.forwardRef(Efe);var DN=X(de(),1),BN=X(Zc(),1),Jr=X(de(),1);var Afe=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function EN(e,t){if(!e||!t)return;let a=e.style;for(let r in t){let i=t[r];Number.isFinite(i)&&!Afe.test(r)?a[r]=`${i}px`:a[r]=i}}function wN(e,t){if(e===t)return null;let a=AN(e),r=AN(t),i=[];for(let o of r)a.has(o)||i.push(o);for(let o of a)r.has(o)||i.push(o);return i.length===0?null:i}function AN(e){return new Set(e?e.trim().split(/\s+/):[])}var lx=(0,Jr.memo)((0,Jr.forwardRef)((e,t)=>{let{map:a,mapLib:r}=(0,Jr.useContext)(Xn),i=(0,Jr.useRef)({props:e}),o=(0,Jr.useMemo)(()=>{let m=!1;DN.Children.forEach(e.children,_=>{_&&(m=!0)});let g={...e,element:m?document.createElement("div"):void 0},y=new r.Marker(g);return y.setLngLat([e.longitude,e.latitude]),y.getElement().addEventListener("click",_=>{i.current.props.onClick?.({type:"click",target:y,originalEvent:_})}),y.on("dragstart",_=>{let b=_;b.lngLat=o.getLngLat(),i.current.props.onDragStart?.(b)}),y.on("drag",_=>{let b=_;b.lngLat=o.getLngLat(),i.current.props.onDrag?.(b)}),y.on("dragend",_=>{let b=_;b.lngLat=o.getLngLat(),i.current.props.onDragEnd?.(b)}),y},[]);(0,Jr.useEffect)(()=>(o.addTo(a.getMap()),()=>{o.remove()}),[]);let{longitude:n,latitude:s,offset:l,style:u,draggable:c=!1,popup:d=null,rotation:f=0,rotationAlignment:h="auto",pitchAlignment:p="auto"}=e;(0,Jr.useEffect)(()=>{EN(o.getElement(),u)},[u]),(0,Jr.useImperativeHandle)(t,()=>o,[]);let x=i.current.props;(o.getLngLat().lng!==n||o.getLngLat().lat!==s)&&o.setLngLat([n,s]),l&&!bT(o.getOffset(),l)&&o.setOffset(l),o.isDraggable()!==c&&o.setDraggable(c),o.getRotation()!==f&&o.setRotation(f),o.getRotationAlignment()!==h&&o.setRotationAlignment(h),o.getPitchAlignment()!==p&&o.setPitchAlignment(p),o.getPopup()!==d&&o.setPopup(d);let v=wN(x.className,e.className);if(v)for(let m of v)o.toggleClassName(m);return i.current.props=e,(0,BN.createPortal)(e.children,o.getElement())}));var SN=X(de(),1),mo=X(de(),1);function pc(e,t){if(!e)throw new Error(t)}var wfe=0;function Dfe(e,t,a){if(e.style&&e.style._loaded){let r={...a};return delete r.id,delete r.children,e.addSource(t,r),e.getSource(t)}return null}function Bfe(e,t,a){pc(t.id===a.id,"source id changed"),pc(t.type===a.type,"source type changed");let r="",i=0;for(let n in t)n!=="children"&&n!=="id"&&!mr(a[n],t[n])&&(r=n,i++);if(!i)return;let o=t.type;if(o==="geojson")e.setData(t.data);else if(o==="image")e.updateImage({url:t.url,coordinates:t.coordinates});else switch(r){case"coordinates":e.setCoordinates?.(t.coordinates);break;case"url":e.setUrl?.(t.url);break;case"tiles":e.setTiles?.(t.tiles);break;default:console.warn(`Unable to update <Source> prop: ${r}`)}}function xc(e){let t=(0,mo.useContext)(Xn).map.getMap(),a=(0,mo.useRef)(e),[,r]=(0,mo.useState)(0),i=(0,mo.useMemo)(()=>e.id||`jsx-source-${wfe++}`,[]);(0,mo.useEffect)(()=>{if(t){let n=()=>setTimeout(()=>r(s=>s+1),0);return t.on("styledata",n),n(),()=>{if(t.off("styledata",n),t.style&&t.style._loaded&&t.getSource(i)){let s=t.getStyle()?.layers;if(s)for(let l of s)l.source===i&&t.removeLayer(l.id);t.removeSource(i)}}}},[t]);let o=t&&t.style&&t.getSource(i);return o?Bfe(o,e,a.current):o=Dfe(t,i,e),a.current=e,o&&SN.Children.map(e.children,n=>n&&(0,mo.cloneElement)(n,{source:i}))||null}var En=X(de(),1);function Sfe(e,t,a,r){if(pc(a.id===r.id,"layer id changed"),pc(a.type===r.type,"layer type changed"),a.type==="custom"||r.type==="custom")return;let{layout:i={},paint:o={},filter:n,minzoom:s,maxzoom:l,beforeId:u}=a;if(u!==r.beforeId&&e.moveLayer(t,u),i!==r.layout){let c=r.layout||{};for(let d in i)mr(i[d],c[d])||e.setLayoutProperty(t,d,i[d]);for(let d in c)i.hasOwnProperty(d)||e.setLayoutProperty(t,d,void 0)}if(o!==r.paint){let c=r.paint||{};for(let d in o)mr(o[d],c[d])||e.setPaintProperty(t,d,o[d]);for(let d in c)o.hasOwnProperty(d)||e.setPaintProperty(t,d,void 0)}mr(n,r.filter)||e.setFilter(t,n),(s!==r.minzoom||l!==r.maxzoom)&&e.setLayerZoomRange(t,s,l)}function Ffe(e,t,a){if(e.style&&e.style._loaded&&(!("source"in a)||e.getSource(a.source))){let r={...a,id:t};delete r.beforeId,e.addLayer(r,a.beforeId)}}var Tfe=0;function ps(e){let t=(0,En.useContext)(Xn).map.getMap(),a=(0,En.useRef)(e),[,r]=(0,En.useState)(0),i=(0,En.useMemo)(()=>e.id||`jsx-layer-${Tfe++}`,[]);if((0,En.useEffect)(()=>{if(t){let n=()=>r(s=>s+1);return t.on("styledata",n),n(),()=>{t.off("styledata",n),t.style&&t.style._loaded&&t.getLayer(i)&&t.removeLayer(i)}}},[t]),t&&t.style&&t.getLayer(i))try{Sfe(t,i,e,a.current)}catch(n){console.warn(n)}else Ffe(t,i,e);return a.current=e,null}var ux=X(ke(),1),lA=({geometry:e,color:t="#3b82f6",width:a=5,opacity:r=.8,dashArray:i})=>e?(0,ux.jsxs)(xc,{data:{geometry:e,properties:{},type:"Feature"},id:"sdk-route-source",type:"geojson",children:[(0,ux.jsx)(ps,{id:"sdk-route-layer-casing",paint:{"line-blur":1,"line-color":"#ffffff","line-opacity":r,"line-width":a+2},type:"line"}),(0,ux.jsx)(ps,{id:"sdk-route-layer",layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":t,"line-opacity":r,"line-width":a,...i?{"line-dasharray":i}:{}},type:"line"})]}):null;var FN=(e,t,a=64)=>{let[r,i]=e,o=i*Math.PI/180,n=[];for(let s=0;s<=a;s++){let l=s/a*2*Math.PI,u=t*Math.cos(l)/6371e3*(180/Math.PI),c=t*Math.sin(l)/(6371e3*Math.cos(o))*(180/Math.PI);n.push([r+c,i+u])}return{geometry:{coordinates:[n],type:"Polygon"},properties:{},type:"Feature"}};var TN=X(de(),1),cx=X(ke(),1),LN=({center:e,radiusMeters:t,color:a="#e2e8f0"})=>{let r=(0,TN.useMemo)(()=>FN(e,t),[e,t]);return(0,cx.jsxs)(xc,{data:r,id:"sdk-mock-radius-source",type:"geojson",children:[(0,cx.jsx)(ps,{id:"sdk-mock-radius-fill",paint:{"fill-color":a,"fill-opacity":.12},type:"fill"}),(0,cx.jsx)(ps,{id:"sdk-mock-radius-outline",paint:{"line-color":a,"line-dasharray":[2,2],"line-width":2},type:"line"})]})};var mc=X(de(),1),uA=X(ke(),1);function IN(e,t=64){let a=document.createElement("canvas");a.width=t,a.height=t;let r=a.getContext("2d");return r.font=`${t*.75}px serif`,r.textAlign="center",r.textBaseline="middle",r.fillText(e,t/2,t/2),r.getImageData(0,0,t,t)}var MN=({pois:e})=>{let[t,a]=(0,mc.useState)(0),{current:r}=HC(),i=(0,mc.useMemo)(()=>e.filter(n=>!n.displayMode||n.displayMode==="gl"),[e]);(0,mc.useEffect)(()=>{if(!r)return;let n=r.getMap();[{emoji:"\u{1F37A}",name:"sdk-default-bar"},{emoji:"\u{1F37D}\uFE0F",name:"sdk-default-restaurant"},{emoji:"\u{1F4CD}",name:"sdk-default-poi"}].forEach(u=>{n.hasImage(u.name)||n.addImage(u.name,IN(u.emoji),{pixelRatio:2})});let l=0;i.forEach(u=>{if(u.imageUrl){let c=`custom-url-${u.id}`;n.hasImage(c)||n.loadImage(u.imageUrl,(d,f)=>{!d&&f&&(n.hasImage(c)||(n.addImage(c,f),a(h=>h+1)))})}if(u.emoji){let c=`custom-emoji-${u.emoji}`;n.hasImage(c)||(n.addImage(c,IN(u.emoji),{pixelRatio:2}),l++)}}),l>0&&a(u=>u+l)},[r,i]);let o=(0,mc.useMemo)(()=>({features:i.map(n=>({geometry:{coordinates:[n.longitude,n.latitude],type:"Point"},properties:{...n,"sdk-icon":n.imageUrl?`custom-url-${n.id}`:n.spriteName?n.spriteName:n.emoji?`custom-emoji-${n.emoji}`:n.type==="bar"?"sdk-default-bar":n.type==="restaurant"?"sdk-default-restaurant":"sdk-default-poi"},type:"Feature"})),type:"FeatureCollection"}),[i]);return(0,uA.jsx)(xc,{data:o,id:"sdk-pois",type:"geojson",children:(0,uA.jsx)(ps,{id:"sdk-poi-layer",layout:{"icon-allow-overlap":!0,"icon-image":["get","sdk-icon"],"icon-size":1,"text-anchor":"top","text-field":["step",["zoom"],"",14,["get","name"]],"text-font":["Open Sans Bold"],"text-offset":[0,1.5],"text-optional":!0,"text-size":11},paint:{"icon-opacity":["interpolate",["linear"],["zoom"],11,0,12,1],"text-color":"#ffffff","text-halo-color":"#000000","text-halo-width":1,"text-opacity":["interpolate",["linear"],["zoom"],13.5,0,14,1]},type:"symbol"})})};var Wo=X(ke(),1),PN=({pois:e,onClick:t})=>{let a=e.filter(r=>r.displayMode==="marker");return a.length===0?null:(0,Wo.jsx)(Wo.Fragment,{children:a.map(r=>(0,Wo.jsx)(lx,{anchor:"bottom",latitude:r.latitude,longitude:r.longitude,onClick:i=>{i.originalEvent.stopPropagation(),t&&t(r)},children:r.markerComponent?r.markerComponent:(0,Wo.jsxs)("div",{style:{cursor:"pointer",filter:"drop-shadow(0 4px 6px rgba(0,0,0,0.1))",transform:"transition-transform duration-200 hover:scale-110"},children:[(0,Wo.jsx)("div",{style:{alignItems:"center",backgroundColor:r.type==="bar"?"#f97316":"#10b981",border:"2px solid white",borderRadius:"50%",display:"flex",height:"32px",justifyContent:"center",width:"32px"},children:r.emoji?(0,Wo.jsx)("span",{style:{fontSize:"16px"},children:r.emoji}):(0,Wo.jsx)("div",{style:{backgroundColor:"white",borderRadius:"50%",height:"8px",width:"8px"}})}),(0,Wo.jsx)("div",{style:{borderLeft:"6px solid transparent",borderRight:"6px solid transparent",borderTop:`8px solid ${r.type==="bar"?"#f97316":"#10b981"}`,height:0,margin:"-2px auto 0",width:0}})]})},r.id))})};var $r=X(ke(),1),kN=({forcedLocation:e,heading:t})=>e?(0,$r.jsx)(lx,{anchor:"center",latitude:e[1],longitude:e[0],children:(0,$r.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"center",position:"relative"},children:[(0,$r.jsx)("div",{style:{animation:"pulse 2s infinite",backgroundColor:"rgba(59, 130, 246, 0.4)",borderRadius:"50%",height:"40px",position:"absolute",width:"40px"}}),t!=null&&(0,$r.jsx)("div",{style:{height:"60px",position:"absolute",transform:`rotate(${t}deg)`,width:"60px",zIndex:0},children:(0,$r.jsxs)("svg",{style:{height:"100%",width:"100%"},viewBox:"0 0 100 100",children:[(0,$r.jsx)("defs",{children:(0,$r.jsxs)("radialGradient",{cx:"50%",cy:"50%",fx:"50%",fy:"50%",id:"grad1",r:"50%",children:[(0,$r.jsx)("stop",{offset:"0%",style:{stopColor:"rgba(37, 99, 235, 0.6)",stopOpacity:1}}),(0,$r.jsx)("stop",{offset:"100%",style:{stopColor:"rgba(37, 99, 235, 0)",stopOpacity:0}})]})}),(0,$r.jsx)("path",{d:"M 50 50 L 35 0 A 50 50 0 0 1 65 0 Z",fill:"url(#grad1)"})]})}),(0,$r.jsx)("div",{style:{alignItems:"center",backgroundColor:"white",borderRadius:"50%",boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 0 0 2px rgba(37, 99, 235, 0.2)",display:"flex",height:"20px",justifyContent:"center",width:"20px",zIndex:1},children:(0,$r.jsx)("div",{style:{backgroundColor:"#2563eb",border:"2px solid white",borderRadius:"50%",height:"12px",width:"12px"}})}),(0,$r.jsx)("style",{children:"@keyframes pulse { 0% { transform: scale(0.95); opacity: 0.7; } 70% { transform: scale(1.5); opacity: 0; } 100% { transform: scale(0.95); opacity: 0; } }"})]})}):null;var lt=X(de(),1);var Va=X(ke(),1),Lfe=({initialViewState:e={latitude:45.90583599233422,longitude:6.12589018919138,zoom:12},style:t={},mapStyle:a="https://tiles.cloudparse.fr/style/up_dark_matter",className:r="",maxBounds:i,children:o,onClick:n,onMapClickMiss:s,onContextMenu:l,interactiveLayerIds:u=[],onLoad:c,showUserLocation:d=!0,followUser:f=!1,lockToUser:h=!1,showUserLocationButton:p=!0,renderUserLocation:x,pois:v=[],onPoiClick:m,route:g,routeStyle:y,showNavigationUI:_,navigationData:b,onNavigationAbort:A,onNavigationModeChange:w,navigation:B,showControls:L=!0,menuItems:P,menuContent:R,drawerState:k,drawerContentRef:S,controlProps:T={},enableTouchDrag:C=!1})=>{let E=(0,lt.useContext)(un),I=(0,lt.useContext)(Hc),F=(0,lt.useRef)(null),D=Mh(),M=jC({navigation:B,onModeChange:B?w:void 0}),j=M.isActive,z=j?{currentDistanceMeters:M.distanceRemainingMeters,hasArrived:M.hasArrived,mode:M.mode,route:M.route,start:M.start,totalDistance:M.totalDistanceMeters}:b,V=j?M.route?.geometry:g,q=j?_!==!1&&B?.showUI!==!1:_,U=z?.mode||"preview",W=E?E.isFollowing:f,Q=(0,lt.useRef)(W),le=(0,lt.useRef)(!1),ie=(0,lt.useRef)(0),O=(0,lt.useCallback)(()=>(le.current=!0,++ie.current),[]),H=(0,lt.useCallback)(rt=>{ie.current===rt&&(le.current=!1)},[]),[N,Z]=(0,lt.useState)(W),J=E?E.isFollowing:N,fe=E?.setIsFollowing,ye=(0,lt.useCallback)(rt=>{Q.current=rt,Z(rt),fe&&fe(rt)},[fe]);(0,lt.useEffect)(()=>{E&&E.isFollowing!==Q.current&&(Q.current=E.isFollowing)},[E?.isFollowing,E]);let Y=[...u];v.length>0&&!Y.includes("sdk-poi-layer")&&Y.push("sdk-poi-layer");let he=(0,lt.useRef)(f);(0,lt.useEffect)(()=>{if(f!==he.current&&(ye(f),he.current=f,f&&D.coords&&F.current)){let rt=O();F.current.flyTo({center:D.coords,duration:1e3,essential:!0,zoom:Math.max(F.current.getZoom(),16)}),setTimeout(()=>{H(rt)},1050)}},[f,ye,D.coords,O,H]);let oe=(0,lt.useRef)(null),$=(0,lt.useRef)(null);(0,lt.useEffect)(()=>{if(!V||!F.current){V||(oe.current=null);return}let rt=V!==oe.current,_a=$.current!==U;if(U==="navigation"){if((_a||rt)&&ye(!0),(_a||rt)&&D.coords&&F.current){let Ra=O();F.current.flyTo({center:D.coords,duration:1e3,essential:!0,zoom:17}),setTimeout(()=>{H(Ra)},1050)}}else if(U==="preview"&&rt){ye(!1);let Ra=V.coordinates;if(Ra.length>0){let Zt=Ra.reduce((Wt,jr)=>[[Math.min(Wt[0][0],jr[0]),Math.min(Wt[0][1],jr[1])],[Math.max(Wt[1][0],jr[0]),Math.max(Wt[1][1],jr[1])]],[[Ra[0][0],Ra[0][1]],[Ra[0][0],Ra[0][1]]]);F.current.fitBounds([Zt[0][0],Zt[0][1],Zt[1][0],Zt[1][1]],{padding:100,speed:1.2})}}oe.current=V,$.current=U},[V,U,ye,D.coords,O,H]),(0,lt.useEffect)(()=>{Q.current&&!le.current&&D.coords&&F.current&&F.current.easeTo({center:D.coords,duration:50,easing:rt=>rt,essential:!0})},[D.coords]);let Ee=qC(V,d?D.coords:null),se=z?.currentDistanceMeters??null,te=z?.totalDistance??null,ae=z?.route?.durationSeconds??null,ue=se??0,ce=(()=>{if(!ae||!te||!se)return 0;let rt=se/te;return Math.ceil(ae*rt/60)})(),me=ue/1e3,_e=te&&te>0?Math.min(100,Math.max(0,(te-ue)/te*100)):0,ct=q&&z&&V?{distanceRemainingKm:me,etaMins:ce,hasArrived:z.hasArrived??!1,label:U==="navigation"?"Walking Guidance Active":"Route Preview",mode:U,onAbort:()=>{M.cancel(),A&&A()},onStart:z.start,progress:_e}:void 0,tt=E?.setEtaData;(0,lt.useEffect)(()=>{tt&&tt(ct)},[ct,tt]);let it=E?.setDrawerState;(0,lt.useEffect)(()=>{it&&k!==void 0&&it(k)},[k,it]);let ra=P??[],{mapLibreChildren:at,menuContentFromChildren:$e}=(0,lt.useMemo)(()=>{let rt=[],_a=[];lt.default.Children.forEach(o,Zt=>{if(lt.default.isValidElement(Zt)){let Wt=Zt.type,jr=Wt?.displayName||Wt?.name,zc=Wt===Lh||jr==="MapMenu",mm=zc||Wt===Z2||Wt===W2||Wt===K2||Wt===X2||["MapMenuItem","MapMenuTitle","MapMenuDivider","MapMenuFooter"].includes(jr);zc?lt.default.Children.forEach(Zt.props.children,lf=>{lf&&_a.push(lf)}):mm?_a.push(Zt):rt.push(Zt)}else rt.push(Zt)});let Ra=_a.length>0?(0,Va.jsx)(Lh,{children:_a}):null;return{mapLibreChildren:rt,menuContentFromChildren:Ra}},[o]),ti=rt=>{if(I?.isPlacingLocation){I.placeLocation([rt.lngLat.lng,rt.lngLat.lat]);return}let _a=rt.features||[];if(m){let Zt=_a.find(Wt=>Wt.layer.id==="sdk-poi-layer");if(Zt){m(Zt.properties);return}}_a.some(Zt=>Y.includes(Zt.layer.id))||s&&s(rt),n&&n(rt)},Ur=(0,lt.useCallback)(rt=>{if(D.coords&&F.current){ye(!0);let _a=O();F.current.flyTo({center:D.coords,duration:1e3,essential:!0,pitch:rt?.pitch||0,zoom:Math.max(F.current.getZoom(),16),...rt?.bearing!==void 0?{bearing:rt.bearing}:{}}),setTimeout(()=>{H(_a)},1050)}},[D.coords,ye,O,H]),Mn=(0,lt.useCallback)((rt,_a)=>{let Ra=F.current;if(!Ra)return;ye(!1);let Zt=O();Ra.flyTo({center:rt,essential:!0,pitch:_a?.pitch??0,zoom:_a?.zoom??Ra.getZoom(),..._a?.duration!==void 0?{duration:_a.duration}:{},..._a?.bearing!==void 0?{bearing:_a.bearing}:{}}),Ra.once("moveend",()=>H(Zt))},[ye,O,H]),ia=(0,lt.useCallback)(rt=>{F.current&&F.current.easeTo({bearing:0,duration:500,essential:!0,pitch:rt?.pitch??0})},[]);(0,lt.useEffect)(()=>{E&&(E._registerCenterCallback(Ur),E._registerResetBearingCallback(ia),E._registerFlyToCallback(Mn))},[E,Ur,ia,Mn]);let Ha=(0,lt.useCallback)(()=>{F.current&&E&&(E.setBearing(F.current.getBearing()),E.setPitch(F.current.getPitch()))},[E]),Rs=()=>{h||Q.current&&(ye(!1),F.current&&F.current.stop())};return(0,Va.jsxs)("div",{className:`w-full h-full overflow-hidden relative ${I?.isPlacingLocation?"cursor-crosshair":""} ${r}`,style:t,children:[(0,Va.jsxs)(sA,{attributionControl:!1,initialViewState:e,interactiveLayerIds:Y,mapStyle:a,maxBounds:i?[i[0][0],i[0][1],i[1][0],i[1][1]]:void 0,onClick:ti,onContextMenu:l,onDragStart:Rs,onLoad:rt=>{c&&c(rt),f&&D.coords&&F.current&&F.current.jumpTo({center:D.coords,zoom:16})},onMouseDown:Rs,onMove:Ha,onRotateStart:Rs,onTouchStart:Rs,onWheel:Rs,ref:F,children:[d&&D.coords&&(x?x({coords:D.coords,heading:D.heading}):(0,Va.jsx)(kN,{forcedLocation:D.coords,heading:D.heading})),I&&I.radiusMeters>0&&D.coords&&(0,Va.jsx)(LN,{center:D.coords,radiusMeters:I.radiusMeters}),Ee&&(0,Va.jsx)(lA,{color:y?.color,dashArray:y?.dashArray,geometry:Ee,opacity:y?.opacity,width:y?.width}),v.length>0&&(0,Va.jsxs)(Va.Fragment,{children:[(0,Va.jsx)(MN,{pois:v}),(0,Va.jsx)(PN,{onClick:m,pois:v})]}),at]}),L&&E&&!E.hasControls&&(0,Va.jsx)(PC,{drawerContentRef:S,enableTouchDrag:C,etaData:ct,initialViewState:e,isInternal:!0,menuContent:R||$e,menuItems:ra,...T})]})},Ife=({children:e})=>(0,lt.useContext)(un)?(0,Va.jsx)(Va.Fragment,{children:e}):(0,Va.jsx)(IC,{children:e}),cA=e=>(0,Va.jsx)(Ife,{children:(0,Va.jsx)(GC,{children:(0,Va.jsx)(Lfe,{...e})})});var uG=X(de(),1),cG=X(lG(),1);function qw(e,t={}){let a=document.getElementById(e);if(!a)throw new Error(`Container with id "${e}" not found.`);let r=(0,cG.createRoot)(a);return r.render(uG.default.createElement(cA,t)),r}var fG=X(dG(),1),oxe=512,nxe="#18181b",sxe="#ffffff",lxe=6,uxe="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+oIBggpDsP9ZQ0AACAASURBVHja7L15tG3rVRf4m3ufc+6953bv3Zc83ktCBQgh9OkEAwgYQEKgpEBURB02Y6ChRALRSBqsGAgEIyKOoIJWY6FWjeGowbCaIVKWHVJhlF1ZqNiVFgUlMQl5zb339HvvNeuPtZu1vjW7b+1zX+65Z84x9jjn7LPWt9bXzjl/swOSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkh4IUQ5B0nkTf/9X7jBNnibC06DJbezuvxRXblzD3v4emsXjaBY3wHwFwLRdhctlyKsVSe3v4aVLxa/S/RRY+tR+zd1r2LiXhWevvqaiHePZq3duGmB2BsxO5Wu5GKv12LHzDKGvLLxvr93O7zdudS4m+RpvbM17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",cxe="600 %PXpx -apple-system, BlinkMacSystemFont, sans-serif",dxe=.175,fxe=-.04;async function hG(e,t={}){let a=t.size??oxe,r=t.color??nxe,i=t.backgroundColor??sxe,o=t.label||(t.appName?`${t.appName} by UP`:""),s=await new fG.default({backgroundOptions:{color:i,...t.backgroundGradient?{gradient:t.backgroundGradient}:{}},cornersDotOptions:{color:t.cornersDotColor??r,type:t.cornersDotType??"extra-rounded",...t.cornersDotGradient?{gradient:t.cornersDotGradient}:{}},cornersSquareOptions:{color:t.cornersSquareColor??r,type:t.cornersSquareType??"extra-rounded",...t.cornersSquareGradient?{gradient:t.cornersSquareGradient}:{}},data:e,dotsOptions:{color:r,type:t.dotsType??"extra-rounded",...t.dotsGradient?{gradient:t.dotsGradient}:{}},height:a,margin:t.margin??0,qrOptions:{errorCorrectionLevel:t.errorCorrectionLevel??"Q",mode:"Byte",typeNumber:0},shape:t.shape??"square",type:"canvas",width:a,...t.logo!==null?{image:t.logo??uxe,imageOptions:{hideBackgroundDots:t.hideBackgroundDots??!0,imageSize:t.logoSize??.3,margin:t.logoMargin??0}}:{}}).getRawData("png");if(!s||!(s instanceof Blob))throw new Error("Failed to generate QR code image");let l=await hxe(s),u=t.outerPadding??32,c=t.borderRadius??lxe,d=o?await pxe(l,o,a,i,r):l;return mxe(d,u,c,i)}var hxe=e=>new Promise((t,a)=>{let r=new FileReader;r.onloadend=()=>t(r.result),r.onerror=a,r.readAsDataURL(e)}),pG=e=>new Promise((t,a)=>{let r=new Image;r.onload=()=>t(r),r.onerror=a,r.src=e});async function pxe(e,t,a,r,i){let o=await pG(e),n=Math.round(a*dxe),s=Math.round(a*fxe),l=document.createElement("canvas");l.width=a,l.height=a+n;let u=l.getContext("2d");if(!u)return e;u.fillStyle=r,u.fillRect(0,0,l.width,l.height);let c=Math.round(n*.45);return u.fillStyle=i,u.font=cxe.replace("%PX",String(c)),u.textAlign="center",u.textBaseline="middle",u.fillText(t,l.width/2,n/2+s/2,l.width-s*2),u.drawImage(o,0,n,a,a),l.toDataURL("image/png")}function xxe(e,t,a,r,i,o){e.beginPath(),e.moveTo(t+o,a),e.arcTo(t+r,a,t+r,a+i,o),e.arcTo(t+r,a+i,t,a+i,o),e.arcTo(t,a+i,t,a,o),e.arcTo(t,a,t+r,a,o),e.closePath()}async function mxe(e,t,a,r){let i=await pG(e),o=i.width+t*2,n=i.height+t*2,s=Math.max(o,n),l=Math.min(Math.max(a,0),50)/100*s;if(!(l>0||o!==s||n!==s))return e;let c=document.createElement("canvas");c.width=s,c.height=s;let d=c.getContext("2d");if(!d)return e;l>0&&(xxe(d,0,0,s,s,l),d.clip()),d.fillStyle=r,d.fillRect(0,0,s,s);let f=Math.round((s-i.width)/2),h=Math.round((s-i.height)/2);return d.drawImage(i,f,h),c.toDataURL("image/png")}var xG=X(Zw(),1);async function mG(e){let t=await gxe(e),a=document.createElement("canvas");a.width=t.naturalWidth||t.width,a.height=t.naturalHeight||t.height;let r=a.getContext("2d");if(!r)throw new Error("No 2D canvas context available to decode the image.");r.drawImage(t,0,0,a.width,a.height);let i=r.getImageData(0,0,a.width,a.height);return(0,xG.default)(i.data,i.width,i.height,{inversionAttempts:"attemptBoth"})?.data??null}var gxe=e=>new Promise((t,a)=>{let r=new Image;r.onload=()=>t(r),r.onerror=a,r.src=e});var H_={createErrorResponse(e,t,a){return{error:{code:t,message:a},requestId:e.requestId,sdkVersion:e.sdkVersion,success:!1,type:"SDK_ROUTING_GETROUTE_RESPONSE"}},decodePolyline(e,t){let a=0,r=0,i=0,o=[],n=10**t;for(;a<e.length;){let s,l=0,u=0;do s=e.charCodeAt(a++)-63,u|=(s&31)<<l,l+=5;while(s>=32);let c=u&1?~(u>>1):u>>1;r+=c,l=0,u=0;do s=e.charCodeAt(a++)-63,u|=(s&31)<<l,l+=5;while(s>=32);let d=u&1?~(u>>1):u>>1;i+=d,o.push([i/n,r/n])}return o},async fetchOSRMRoute(e,t,a,r){let i=t.map(d=>`${d[0]},${d[1]}`).join(";"),n=`${r}/route/v1/${a==="walking"?"foot":a==="driving"?"car":"bike"}/${i}?overview=full&geometries=geojson&steps=true`,s=await fetch(n);if(!s.ok)throw new Error(`OSRM Error: ${s.statusText}`);let l=await s.json();if(l.code!=="Ok"||!l.routes||l.routes.length===0)throw new Error("NO_ROUTE");let u=l.routes[0],c=u.legs?.flatMap(d=>d.steps?.map(f=>({distance:f.distance,duration:f.duration,instruction:f.maneuver?.instruction||"Continue"})))||[];return{data:{distanceMeters:u.distance,durationSeconds:u.duration,geometry:u.geometry,steps:c},requestId:e.requestId,sdkVersion:e.sdkVersion,success:!0,type:"SDK_ROUTING_GETROUTE_RESPONSE"}},async fetchRoute(e,t){let{origin:a,destination:r,waypoints:i,profile:o,language:n}=e.payload;if(!this.isValidCoordinate(a)||!this.isValidCoordinate(r))return this.createErrorResponse(e,"INVALID_INPUT","Origin or destination coordinates are invalid.");if(i&&!i.every(this.isValidCoordinate))return this.createErrorResponse(e,"INVALID_INPUT","One or more waypoints are invalid.");let s=[a,...i||[],r];try{return t.backend==="osrm"?await this.fetchOSRMRoute(e,s,o,t.baseUrl):await this.fetchValhallaRoute(e,s,o,n,t.baseUrl)}catch(l){return l instanceof Error&&l.message.includes("NO_ROUTE")?this.createErrorResponse(e,"NO_ROUTE","No route could be found for the given points."):l instanceof TypeError?this.createErrorResponse(e,"NETWORK_ERROR","Failed to connect to the routing backend."):this.createErrorResponse(e,"BACKEND_ERROR",`Routing backend error: ${l instanceof Error?l.message:"Unknown error"}`)}},async fetchValhallaRoute(e,t,a,r,i){let n={costing:a==="driving"?"auto":a==="walking"?"pedestrian":"bicycle",directions_options:{language:r||"en-US"},locations:t.map(f=>({lat:f[1],lon:f[0]}))},s=await fetch(`${i}/route`,{body:JSON.stringify(n),headers:{"Content-Type":"application/json"},method:"POST"});if(!s.ok)throw new Error(`Valhalla Error: ${s.statusText}`);let l=await s.json();if(!l.trip||!l.trip.legs||l.trip.legs.length===0)throw new Error("NO_ROUTE");let u=l.trip,c=this.decodePolyline(u.legs[0].shape,6),d=u.legs.flatMap(f=>f.maneuvers?.map(h=>({distance:h.length*1e3,duration:h.time,instruction:h.instruction||"Continue"})))||[];return{data:{distanceMeters:u.summary.length*1e3,durationSeconds:u.summary.time,geometry:{coordinates:c,type:"LineString"},steps:d},requestId:e.requestId,sdkVersion:e.sdkVersion,success:!0,type:"SDK_ROUTING_GETROUTE_RESPONSE"}},isValidCoordinate(e){let[t,a]=e;return t>=-180&&t<=180&&a>=-90&&a<=90}};var hm="0.9.0";function gG(e){let t=Object.getOwnPropertyNames(e);for(let a of t){let r=e[a];r&&typeof r=="object"&&!Object.isFrozen(r)&&!(r instanceof bf)&&gG(r)}return Object.freeze(e)}var Ww=null,Kw=null,pm=class{maps=Object.freeze({render:qw});qrCode=Object.freeze({decode:t=>mG(t),generate:(t,a)=>hG(t,a)});bridge;storage=Object.freeze({get:t=>this.bridge.send("STORAGE_GET",{key:t}),getAll:()=>this.bridge.send("STORAGE_GET_ALL"),set:(t,a)=>this.bridge.send("STORAGE_SET",{key:t,value:a})});secureStore=Object.freeze({get:t=>this.bridge.send("SECURE_GET",{key:t}),set:(t,a)=>this.bridge.send("SECURE_SET",{key:t,value:a})});database=Object.freeze({getUserData:()=>this.bridge.send("DATABASE_GET_USER_DATA"),setUserData:t=>this.bridge.send("DATABASE_SET_USER_DATA",{data:t})});location=Object.freeze({getCurrentPosition:()=>this.bridge.send("GET_CURRENT_POSITION"),startStream:t=>this.bridge.send("START_LOCATION_STREAM",t),stopStream:()=>this.bridge.send("STOP_LOCATION_STREAM")});user=Object.freeze({getProfile:t=>this.bridge.send("GET_USER_PROFILE",{fields:t}),getProfilePicture:(t=>this.bridge.send("GET_PROFILE_PICTURE",{uuids:t||[]}))});permission=Object.freeze({request:((t,a)=>this.bridge.send("REQUEST_PERMISSION",{fields:a,type:t}))});media=Object.freeze({pickImage:()=>this.bridge.send("PICK_IMAGE",{}),saveImage:(t,a)=>this.bridge.send("SAVE_IMAGE",{base64:t,filename:a})});payment=Object.freeze({request:t=>this.bridge.send("PAYMENT_REQUEST",t)});activity=Object.freeze({start:(t,a,r)=>this.bridge.send("START_ACTIVITY",{id:t,status:r,title:a})});haptic=Object.freeze({trigger:t=>this.bridge.send("TRIGGER_HAPTIC",{style:t})});network=Object.freeze({request:async t=>this.bridge.send("NETWORK_REQUEST",t)});navigation=Object.freeze({abort:()=>{this.bridge.handleNativeMessage({eventName:"SDK_NAVIGATION_ABORT",type:"EVENT"})},createJourney:t=>{this.bridge.handleNativeMessage({eventName:"SDK_NAVIGATION_CREATE",payload:{...t,mode:"preview"},type:"EVENT"})},start:()=>{this.bridge.handleNativeMessage({eventName:"SDK_NAVIGATION_START",type:"EVENT"})}});fidelity=Object.freeze({getFidelityBalance:()=>this.bridge.send("GET_FIDELITY_BALANCE"),getFidelityHistory:t=>this.bridge.send("GET_FIDELITY_HISTORY",t),showHistory:t=>this.bridge.send("SHOW_FIDELITY_HISTORY",t),spendFPoints:t=>this.bridge.send("SPEND_FPOINTS",{intentUuid:t})});ui=Object.freeze({exit:()=>this.bridge.send("EXIT"),setScrollConfig:t=>this.bridge.send("SET_SCROLL_CONFIG",t)});debug=Object.freeze({log:(...t)=>this.bridge.send("DEBUG_LOG",{message:t})});routing=Object.freeze({clearRoute:()=>{let t=crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).substring(2);return this.bridge.send("SDK_ROUTING_CLEARROUTE",{requestId:t,sdkVersion:hm})},drawRoute:t=>{let a=crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).substring(2);return this.bridge.send("SDK_ROUTING_DRAWROUTE",{payload:{routeData:t},requestId:a,sdkVersion:hm})},getRoute:async t=>{let a=crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).substring(2),r={payload:t,requestId:a,sdkVersion:hm,type:"SDK_ROUTING_GETROUTE"};if(Ww){let i=await H_.fetchRoute(r,Ww);if(i.success&&i.data)return i.data;throw new Error(i.error?.message||"Routing failed")}return this.bridge.send("SDK_ROUTING_GETROUTE",{payload:t,requestId:a,sdkVersion:hm})}});constructor(){this.bridge=new bf,this.bridge.on("UPDATE_CONTEXT",t=>{t?.env&&(Kw=t.env)}),this.initialize=this.initialize.bind(this),this.getEnv=this.getEnv.bind(this),this.achievement=this.achievement.bind(this),this.achievements=this.achievements.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this)}config(t){t.routingBackend&&(Ww=t.routingBackend)}updateContext(t){return this.bridge.send("UPDATE_CONTEXT",t)}async initialize(t){let a=await this.bridge.send("INITIALIZE",t);return a?.env&&(Kw=a.env),a}getEnv(){return Kw}achievement(t){return this.bridge.send("GET_ACHIEVEMENT",{slug:t})}achievements(){return this.bridge.send("GET_ACHIEVEMENTS")}on(t,a){return this.bridge.on(t,a)}off(t,a){this.bridge.off(t,a)}},xt=gG(new pm);var Pt=X(de(),1),Oe=X(ke(),1),yG=[{completed:!0,description:"Complete your first navigation journey.",playerActionCount:1,priority:1,slug:"first-journey",title:"First Steps",totalActionCount:1,pointsReward:10},{completed:!1,description:"Discover 5 points of interest around Annecy.",playerActionCount:3,priority:2,slug:"explore-5-pois",title:"Explorer",totalActionCount:5,pointsReward:15},{completed:!1,description:"Scan 10 QR codes at partner venues.",playerActionCount:4,priority:3,slug:"scan-10-qrcodes",title:"Code Breaker",totalActionCount:10,pointsReward:20}],vxe=["variant03","variant07","variant08","variant09","variant10","variant11","variant12","variant13","variant14","variant15","variant16","variant21","variant22","variant23","variant25","variant26","variant27","variant28","variant29","variant30"].join(","),_xe=["variant03","variant04","variant05"].join(",");function bxe(e){let t=5381;for(let a=0;a<e.length;a++)t=t*33^e.charCodeAt(a);return(t>>>0).toString(36)}function vG(e){return`https://api.dicebear.com/10.x/notionists-neutral/png?seed=${bxe(e)}&mouth=${vxe}&eyes=${_xe}&glassesProbability=50`}function Cxe(e){try{let r=(e.startsWith("Bearer ")?e.slice(7):e).split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),i=decodeURIComponent(atob(r).split("").map(o=>`%${`00${o.charCodeAt(0).toString(16)}`.slice(-2)}`).join(""));return JSON.parse(i)}catch{return null}}function _G(e){let t=e?Cxe(e):null,a=t?.sub||"mock-user-42",r=t?.name||t?.username||"Smart Caveman",i=t?.username||"smart_caveman",[o,...n]=r.split(" ");return{admin:!0,countryCode:"FR",createdAt:new Date().toISOString(),email:"caveman@up.app",firstName:o||"Smart",fullName:r,lastName:n.join(" ")||"Caveman",localNumber:"0600000000",username:i,uuid:a}}var Exe=(e,t)=>{let a=e[1]*Math.PI/180,r=t[1]*Math.PI/180,i=(t[0]-e[0])*Math.PI/180,o=Math.sin(i)*Math.cos(r),n=Math.cos(a)*Math.sin(r)-Math.sin(a)*Math.cos(r)*Math.cos(i);return(Math.atan2(o,n)*180/Math.PI+360)%360},Xw=({appId:e,initialLocation:t=[6.1258,45.9058],isMoving:a=!1,simulationPath:r,simulationSpeed:i=1,mockJWTToken:o,children:n})=>{let[s,l]=(0,Pt.useState)(a),[u,c]=(0,Pt.useState)(t),[d,f]=(0,Pt.useState)(0),[h,p]=(0,Pt.useState)(i),[x,v]=(0,Pt.useState)(!1),[m,g]=(0,Pt.useState)(!0),[y,_]=(0,Pt.useState)(0),[b,A]=(0,Pt.useState)("m"),[w,B]=(0,Pt.useState)(!1),L=(0,Pt.useRef)(null),P=(0,Pt.useRef)(0),R=(0,Pt.useRef)(null),k=(0,Pt.useRef)({autoMove:s,heading:d,location:u,mockJWTToken:o,pushLocationUpdate:()=>{},setHeading:f,setLocation:c,simulationPath:r,speedMultiplier:h}),S=(0,Pt.useCallback)((F,D)=>{let M=k.current,j={accelerometer:null,heading:{accuracy:3,magneticHeading:D,trueHeading:D},location:{coords:{accuracy:10,altitude:0,altitudeAccuracy:null,heading:D,latitude:F[1],longitude:F[0],speed:M.autoMove?1.5*M.speedMultiplier:0},timestamp:Date.now()},timestamp:Date.now()};window.__MiniAppBridge?.onNativeMessage({eventName:"LOCATION_STREAM_UPDATE",payload:j,type:"EVENT"})},[]),T=(0,Pt.useCallback)(()=>{let F=k.current;S(F.location,F.heading)},[S]),C=(0,Pt.useCallback)(F=>{c(F),B(!1),S(F,k.current.heading)},[S]);(0,Pt.useEffect)(()=>{k.current={autoMove:s,heading:d,location:u,mockJWTToken:o,pushLocationUpdate:T,setHeading:f,setLocation:c,simulationPath:r,speedMultiplier:h}},[u,d,s,T,r,h,o]),(0,Pt.useEffect)(()=>{l(a)},[a]),(0,Pt.useEffect)(()=>{p(i)},[i]),(0,Pt.useEffect)(()=>{r&&r.length>0&&(P.current=0,c(r[0]))},[r]),(0,Pt.useEffect)(()=>{L.current&&R.current&&xt.bridge.send("START_LOCATION_STREAM",R.current)},[h]),(0,Pt.useEffect)(()=>{let F=xt.bridge,D=F.send.bind(F),M=()=>{L.current&&(clearInterval(L.current),L.current=null),R.current=null},j=V=>{M(),R.current=V||{};let q=V?.interval||500,U=Math.max(10,q/k.current.speedMultiplier);L.current=setInterval(()=>{let W=k.current;if(W.autoMove)if(W.simulationPath&&W.simulationPath.length>0)if(P.current<W.simulationPath.length-1){let Q=W.simulationPath[P.current],le=W.simulationPath[P.current+1];P.current+=1;let ie=Exe(Q,le);W.setHeading(ie),W.setLocation(le)}else W.setLocation(W.simulationPath[W.simulationPath.length-1]);else W.setLocation(Q=>[Q[0]+(Math.random()-.5)*1e-4,Q[1]+(Math.random()-.5)*1e-4]);W.pushLocationUpdate()},U)},z=async V=>{let{url:q,method:U="GET",headers:W={},body:Q}=V,le=k.current,ie=new Headers(W);le.mockJWTToken&&ie.set("Authorization",`Bearer ${le.mockJWTToken.replace("Bearer ","")}`),Q&&typeof Q=="object"&&!ie.has("Content-Type")&&ie.set("Content-Type","application/json");try{let O=await fetch(q,{body:Q?typeof Q=="string"?Q:JSON.stringify(Q):void 0,headers:ie,method:U}),H=O.headers.get("content-type"),N;H?.includes("application/json")?N=await O.json():N=await O.text();let Z={};return O.headers.forEach((J,fe)=>{Z[fe]=J}),{data:N,headers:Z,status:O.status,statusText:O.statusText}}catch(O){throw{error:O.message||"Network request failed",status:0}}};return F.send=async(V,q)=>{if(V==="INITIALIZE")return Promise.resolve({appId:e,context:{theme:"dark"},description:"Mocked for Dev",env:{},insets:{bottom:0,left:0,right:0,top:0},name:"Vite Dev (Mock)",params:{},profile:_G(k.current.mockJWTToken),success:!0,userData:{},uuid:e||"mock-app-id",version:"1.0.0"});if(V==="GET_CURRENT_POSITION"){let U=k.current;return Promise.resolve({coords:{accuracy:10,altitude:0,altitudeAccuracy:0,heading:U.heading,latitude:U.location[1],longitude:U.location[0],speed:U.autoMove?1.5*U.speedMultiplier:0},timestamp:Date.now()})}if(V==="START_LOCATION_STREAM")return j(q),Promise.resolve();if(V==="STOP_LOCATION_STREAM")return M(),Promise.resolve();if(V==="NETWORK_REQUEST")return z(q);if(V==="STORAGE_GET"||V==="SECURE_GET")return Promise.resolve(localStorage.getItem(`mock_sdk_${q.key}`));if(V==="STORAGE_SET"||V==="SECURE_SET")return localStorage.setItem(`mock_sdk_${q.key}`,q.value),Promise.resolve();if(V==="GET_USER_PROFILE")return Promise.resolve(_G(k.current.mockJWTToken));if(V==="GET_PROFILE_PICTURE"){let U=q?.uuids||[];if(U.length===0)return Promise.resolve(vG("dummy"));let W={};for(let Q of U)W[Q]=vG(Q);return Promise.resolve(W)}if(V==="GET_FIDELITY_BALANCE")return Promise.resolve({balance:1337,currency:"FPoints"});if(V==="GET_ACHIEVEMENTS")return Promise.resolve(yG);if(V==="GET_ACHIEVEMENT"){let U=q?.slug;return Promise.resolve(yG.find(W=>W.slug===U)??{completed:!1,description:"Mocked achievement (no native shell attached).",playerActionCount:0,priority:1,slug:U||"unknown-achievement",title:U||"Unknown Achievement",totalActionCount:1,pointsReward:0})}return V==="PAYMENT_REQUEST"?Promise.resolve({success:!0,transactionId:`tx_${Math.random().toString(36).slice(2)}`}):V==="TRIGGER_HAPTIC"||V==="EXIT"||V==="UPDATE_CONTEXT"?Promise.resolve({success:!0}):D(V,q)},v(!0),()=>{M(),F.send=D}},[e]);let E=b==="km"?y*1e3:y,I=(0,Pt.useMemo)(()=>({isPlacingLocation:w,placeLocation:C,radiusMeters:E}),[w,C,E]);return x?(0,Oe.jsxs)("div",{className:"relative w-full h-full",children:[(0,Oe.jsx)("div",{className:"w-full h-full",children:(0,Oe.jsx)(Hc.Provider,{value:I,children:n})}),m?(0,Oe.jsx)(kt,{className:"fixed bottom-4 right-4 w-8 h-8 rounded-full bg-slate-900/60 backdrop-blur-sm border border-slate-700/50 flex items-center justify-center text-slate-400 hover:text-blue-400 hover:bg-slate-900/80 z-[9999] transition-all shadow-lg group p-0!",onClick:()=>g(!1),title:"Open Simulation Controls",type:"button",variant:"ghost",children:(0,Oe.jsxs)("svg",{className:"group-hover:scale-110 transition-transform",fill:"none",height:"14",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",width:"14",xmlns:"http://www.w3.org/2000/svg",children:[(0,Oe.jsx)("path",{d:"M21 4H3"}),(0,Oe.jsx)("path",{d:"M10 8H3"}),(0,Oe.jsx)("path",{d:"M21 12H3"}),(0,Oe.jsx)("path",{d:"M10 16H3"}),(0,Oe.jsx)("path",{d:"M21 20H3"}),(0,Oe.jsx)("circle",{cx:"14",cy:"8",r:"2"}),(0,Oe.jsx)("circle",{cx:"14",cy:"16",r:"2"})]})}):(0,Oe.jsxs)("div",{className:"fixed bottom-4 right-4 bg-slate-900 text-slate-300 font-mono text-xs rounded-xl shadow-2xl border border-slate-700 pointer-events-auto flex flex-col w-80 overflow-hidden animate-in slide-in-from-right duration-300",style:{zIndex:9998},children:[(0,Oe.jsxs)("div",{className:"flex justify-between items-center p-3 border-b border-slate-800 cursor-pointer bg-slate-800/50 hover:bg-slate-800 transition-colors",onClick:()=>g(!0),children:[(0,Oe.jsxs)("span",{className:"font-bold text-slate-100 flex items-center gap-2",children:[(0,Oe.jsx)("span",{className:"text-lg",children:"\u{1F6E0}\uFE0F"})," Simulation Controls"]}),(0,Oe.jsx)(kt,{className:"text-slate-500 hover:text-white p-0 h-auto hover:bg-transparent cursor-pointer",type:"button",variant:"ghost",children:"\u25BC"})]}),(0,Oe.jsxs)("div",{className:"p-4 flex flex-col gap-3",children:[(0,Oe.jsxs)("div",{className:"flex justify-between items-center",children:[(0,Oe.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,Oe.jsx)("input",{checked:s,className:"accent-blue-500 w-4 h-4",onChange:F=>l(F.target.checked),type:"checkbox"}),(0,Oe.jsxs)("span",{className:"text-slate-200 font-bold",children:["Auto-Move ",r?"(Path)":"(Random)"]})]}),(0,Oe.jsxs)("div",{className:"flex items-center gap-2",children:[(0,Oe.jsx)("span",{className:"text-[10px] text-slate-500",children:"Speed:"}),(0,Oe.jsx)("select",{className:"bg-slate-800 border border-slate-700 rounded px-1 py-0.5 text-white focus:outline-none focus:border-blue-500 text-[10px]",onChange:F=>p(Number(F.target.value)),value:h,children:[1,2,5,10,50,100,250].map(F=>(0,Oe.jsxs)("option",{value:F,children:[F,"x"]},F))})]})]}),(0,Oe.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,Oe.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,Oe.jsx)("span",{className:"text-[10px] text-slate-500 text-left",children:"Lng"}),(0,Oe.jsx)("input",{className:"bg-slate-800 border border-slate-700 rounded px-2 py-1 text-white focus:outline-none focus:border-blue-500",onChange:F=>{let D=parseFloat(F.target.value)||0;c([D,u[1]]),T()},step:"0.001",type:"number",value:u[0]})]}),(0,Oe.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,Oe.jsx)("span",{className:"text-[10px] text-slate-500 text-left",children:"Lat"}),(0,Oe.jsx)("input",{className:"bg-slate-800 border border-slate-700 rounded px-2 py-1 text-white focus:outline-none focus:border-blue-500",onChange:F=>{let D=parseFloat(F.target.value)||0;c([u[0],D]),T()},step:"0.001",type:"number",value:u[1]})]}),(0,Oe.jsxs)("div",{className:"flex flex-col gap-1 col-span-2",children:[(0,Oe.jsx)("span",{className:"text-[10px] text-slate-500",children:"Heading (Degrees)"}),(0,Oe.jsx)("input",{className:"w-full accent-blue-500",max:"360",min:"0",onChange:F=>{f(parseInt(F.target.value,10)),T()},type:"range",value:d}),(0,Oe.jsxs)("div",{className:"text-right text-slate-400",children:[d,"\xB0"]})]})]}),(0,Oe.jsx)(kt,{className:`w-full rounded px-2 py-1.5 text-[10px] font-bold border cursor-pointer ${w?"bg-blue-500/20 border-blue-500 text-blue-300":"bg-slate-800 border-slate-700 text-slate-200 hover:bg-slate-700"}`,onClick:()=>B(F=>!F),type:"button",variant:"ghost",children:w?"\u{1F4CD} Click the map to drop location\u2026":"\u{1F4CD} Drop location on map"}),(0,Oe.jsxs)("div",{className:"flex flex-col gap-1 border-t border-slate-800 pt-3",children:[(0,Oe.jsxs)("div",{className:"flex justify-between items-center",children:[(0,Oe.jsx)("span",{className:"text-[10px] text-slate-500",children:"Scan Radius"}),(0,Oe.jsxs)("div",{className:"flex items-center gap-1",children:[(0,Oe.jsx)("input",{className:"w-16 bg-slate-800 border border-slate-700 rounded px-1.5 py-0.5 text-white text-[10px] focus:outline-none focus:border-blue-500",min:"0",onChange:F=>_(Math.max(0,Number(F.target.value)||0)),type:"number",value:y}),(0,Oe.jsxs)("select",{className:"bg-slate-800 border border-slate-700 rounded px-1 py-0.5 text-white text-[10px] focus:outline-none focus:border-blue-500",onChange:F=>A(F.target.value),value:b,children:[(0,Oe.jsx)("option",{value:"m",children:"m"}),(0,Oe.jsx)("option",{value:"km",children:"km"})]})]})]}),(0,Oe.jsx)("input",{className:"w-full accent-blue-500",max:b==="km"?10:500,min:"0",onChange:F=>_(Number(F.target.value)),step:b==="km"?.1:5,type:"range",value:y}),(0,Oe.jsx)("div",{className:"text-right text-slate-400",children:y===0?"hidden":`${y}${b} radius around user`})]})]})]})]}):null};var Ln=X(de(),1),Tt=X(ke(),1),Yw=({isOpen:e=!1,onClose:t})=>{let[a,r]=(0,Ln.useState)(e),[i,o]=(0,Ln.useState)([]),n=(0,Ln.useRef)(null);(0,Ln.useEffect)(()=>{r(e)},[e]);let s=()=>o([]),l=(0,Ln.useCallback)((u,c)=>{if(u.includes("LOCATION_STREAM_UPDATE"))return;let d={content:typeof c=="string"?c:JSON.stringify(c,null,2),id:Math.random().toString(36).slice(2),label:u,time:new Date().toLocaleTimeString()};o(f=>[d,...f].slice(0,100))},[]);return(0,Ln.useEffect)(()=>{if(typeof window>"u")return;let u=xt.bridge,c=u.send.bind(u);u.send=async(f,h)=>(l(`OUT: ${f}`,h),c(f,h));let d=u.handleNativeMessage.bind(u);return u.handleNativeMessage=f=>{let h=f.eventName||f.event||f.type||"MSG";typeof h=="string"&&(l(`IN: ${h}`,f.payload||f.value||f),d(f))},()=>{u.send=c,u.handleNativeMessage=d}},[l]),a?(0,Tt.jsxs)("div",{className:"fixed inset-x-0 bottom-0 w-full bg-[#0a080f] border-t border-slate-800 z-[9998] p-4 shadow-2xl flex flex-col animate-in slide-in-from-bottom duration-300",children:[(0,Tt.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,Tt.jsxs)("span",{className:"text-[10px] font-bold uppercase tracking-widest text-slate-400 flex items-center gap-2",children:[(0,Tt.jsx)("span",{className:"w-2 h-2 rounded-full bg-emerald-500 animate-pulse"}),"UP SDK Debug Console"]}),(0,Tt.jsxs)("div",{className:"flex gap-4",children:[(0,Tt.jsx)(kt,{className:"text-[10px] text-slate-500 font-bold uppercase hover:text-slate-300 hover:bg-transparent transition-colors p-0 h-auto cursor-pointer",onClick:s,type:"button",variant:"ghost",children:"Clear"}),(0,Tt.jsx)(kt,{className:"text-[10px] text-pink-500 font-bold uppercase hover:text-pink-400 hover:bg-transparent transition-colors p-0 h-auto cursor-pointer",onClick:()=>{r(!1),t&&t()},type:"button",variant:"ghost",children:"Close"})]})]}),(0,Tt.jsx)("div",{className:"bg-black/80 rounded-xl p-3 font-mono text-[10px] text-emerald-400 min-h-[120px] max-h-[240px] overflow-y-auto border border-slate-900 custom-scrollbar",ref:n,children:i.length===0?(0,Tt.jsx)("div",{className:"text-slate-600 italic text-center py-8",children:"No logs yet. Interacting with the SDK will show events here."}):i.map(u=>(0,Tt.jsxs)("div",{className:"mb-3 pb-3 border-b border-slate-900/50 last:border-0 last:mb-0 last:pb-0",children:[(0,Tt.jsxs)("div",{className:"flex gap-2 text-slate-500 mb-1 items-center",children:[(0,Tt.jsx)("span",{className:"text-[8px]",children:u.time}),(0,Tt.jsx)("span",{className:"font-bold text-white uppercase text-[8px] bg-slate-800 px-1.5 py-0.5 rounded leading-none",children:u.label})]}),(0,Tt.jsx)("pre",{className:"whitespace-pre-wrap break-all opacity-90",children:u.content})]},u.id))})]}):(0,Tt.jsx)(kt,{className:"fixed bottom-4 left-4 w-8 h-8 rounded-full bg-slate-900/60 backdrop-blur-sm border border-slate-700/50 flex items-center justify-center text-slate-400 hover:text-emerald-400 hover:bg-slate-900/80 transition-all z-[9998] shadow-lg group p-0!",onClick:()=>r(!0),title:"Open Debug Console",type:"button",variant:"ghost",children:(0,Tt.jsxs)("svg",{className:"group-hover:scale-110 transition-transform",fill:"none",height:"14",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",width:"14",xmlns:"http://www.w3.org/2000/svg",children:[(0,Tt.jsx)("path",{d:"m8 2 1.88 1.88"}),(0,Tt.jsx)("path",{d:"M14.12 3.88 16 2"}),(0,Tt.jsx)("path",{d:"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"}),(0,Tt.jsx)("path",{d:"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"}),(0,Tt.jsx)("path",{d:"M12 20v-9"}),(0,Tt.jsx)("path",{d:"M6.53 9C4.6 8.8 3 7.1 3 5"}),(0,Tt.jsx)("path",{d:"M6 13H2"}),(0,Tt.jsx)("path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4"}),(0,Tt.jsx)("path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4"}),(0,Tt.jsx)("path",{d:"M22 13h-4"}),(0,Tt.jsx)("path",{d:"M17.2 17c2.1.1 3.8 1.9 3.8 4"})]})})};var ka=X(de(),1),Qo=X(ke(),1),Axe=64,wxe=96,Dxe=.5,bG=8,Bxe=.95,CG=.02;function Sxe({progress:e,isRefreshing:t}){return(0,Qo.jsxs)("div",{style:{alignItems:"center",background:"rgba(24, 24, 27, 0.9)",border:"1px solid rgba(255, 255, 255, 0.1)",borderRadius:9999,boxShadow:"0 4px 16px -4px rgba(0, 0, 0, 0.5)",display:"flex",height:28,justifyContent:"center",width:28},children:[(0,Qo.jsxs)("svg",{height:14,style:{animation:t?"up-sdk-ptr-spin 0.8s linear infinite":void 0,color:t?"#a78bfa":"#a1a1aa",transform:t?void 0:`rotate(${e*360}deg)`},viewBox:"0 0 24 24",width:14,children:[(0,Qo.jsx)("title",{children:"Refreshing"}),(0,Qo.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeWidth:2.5})]}),(0,Qo.jsx)("style",{children:"@keyframes up-sdk-ptr-spin { to { transform: rotate(360deg); } }"})]})}var Fxe=({onRefresh:e,children:t,className:a="",disabled:r=!1,pullThreshold:i=Axe,maxPull:o=wxe,renderIndicator:n})=>{let s=(0,ka.useRef)(null),l=(0,ka.useRef)(null),u=(0,ka.useRef)(0),c=(0,ka.useRef)(0),d=(0,ka.useRef)(0),f=(0,ka.useRef)(null),h=(0,ka.useRef)(!1),p=(0,ka.useRef)(0),x=(0,ka.useRef)(null),[v,m]=(0,ka.useState)(0),[g,y]=(0,ka.useState)(!1),[_,b]=(0,ka.useState)(!1),A=(0,ka.useRef)(r);A.current=r;let w=(0,ka.useRef)(e);w.current=e;let B=(0,ka.useRef)(i);B.current=i;let L=(0,ka.useRef)(o);L.current=o,(0,ka.useEffect)(()=>{let S=s.current;if(!S||typeof window>"u")return;let T=()=>{let E=S.scrollHeight<=S.clientHeight,I=S.clientHeight>window.innerHeight;E&&I&&console.warn("[PullToRefresh] This container is taller than the viewport but has no internal scroll (scrollHeight <= clientHeight). Because this component disables native touch scrolling entirely (touch-action: none), scrolling is now completely broken here. This almost always means either: (1) an ancestor's flex-1 item is missing `min-h-0` (a flex item defaults to min-height:auto and refuses to shrink below its content size), or (2) an ancestor uses `min-h-screen`/`min-h-full` (a floor, not a ceiling) instead of `h-full`/`h-screen`/`h-dvh`. See the vault skill js/pull-to-refresh-scroll-chain.md for the fix pattern.")},C=requestAnimationFrame(T);return window.addEventListener("resize",T),()=>{cancelAnimationFrame(C),window.removeEventListener("resize",T)}},[]),(0,ka.useEffect)(()=>{let S=s.current;if(!S)return;let T=z=>{p.current=z,m(z)},C=()=>{x.current!==null&&(cancelAnimationFrame(x.current),x.current=null)},E=()=>{f.current=null,l.current=null,h.current=!1,b(!1),T(0)},I=()=>{if(d.current*=Bxe,Math.abs(d.current)<CG){x.current=null;return}if(S.scrollTop-=d.current*16,S.scrollTop<=0||S.scrollTop>=S.scrollHeight-S.clientHeight){x.current=null;return}x.current=requestAnimationFrame(I)},F=z=>{if(!A.current&&f.current===null){C(),f.current=z.pointerId,l.current=z.clientY,u.current=z.clientY,c.current=performance.now(),d.current=0,h.current=!1,b(!0);try{S.setPointerCapture(z.pointerId)}catch{}}},D=z=>{if(l.current===null||z.pointerId!==f.current)return;let V=z.clientY-l.current;if(!h.current&&Math.abs(V)<bG)return;let q=performance.now(),U=z.clientY-u.current,W=Math.max(q-c.current,1);if(d.current=U/W,u.current=z.clientY,c.current=q,z.cancelable&&z.preventDefault(),S.scrollTop<=0&&V>0){h.current=!0,T(Math.min(Math.max(V-bG,0)*Dxe,L.current));return}h.current&&(h.current=!1,T(0)),S.scrollTop-=U},M=z=>{if(l.current===null||z.pointerId!==f.current)return;let V=h.current;if(f.current=null,l.current=null,h.current=!1,b(!1),!V){Math.abs(d.current)>CG&&(C(),x.current=requestAnimationFrame(I));return}if(!(p.current>=B.current)){T(0);return}y(!0),T(B.current),Promise.resolve(w.current()).catch(U=>{console.error("Pull-to-refresh failed:",U)}).finally(()=>{y(!1),T(0)})},j=z=>{z.pointerId===f.current&&(C(),E())};return S.addEventListener("pointerdown",F),S.addEventListener("pointermove",D,{passive:!1}),S.addEventListener("pointerup",M),S.addEventListener("pointercancel",j),()=>{C(),S.removeEventListener("pointerdown",F),S.removeEventListener("pointermove",D),S.removeEventListener("pointerup",M),S.removeEventListener("pointercancel",j)}},[]);let P=g?i:v,R=Math.min(P/i,1),k=v===0&&!g&&!_;return(0,Qo.jsxs)("div",{className:`up-sdk-pull-to-refresh ${a}`,ref:s,style:{overflowY:"auto",overscrollBehavior:"none",touchAction:"none"},children:[(0,Qo.jsx)("style",{children:".up-sdk-pull-to-refresh::-webkit-scrollbar { display: none; } .up-sdk-pull-to-refresh { scrollbar-width: none; -ms-overflow-style: none; }"}),(0,Qo.jsx)("div",{style:{alignItems:"center",display:"flex",height:P,justifyContent:"center",overflow:"hidden",transition:k?"height 0.2s ease-out":"none",userSelect:"none",width:"100%"},children:n?n({isRefreshing:g,progress:R}):(0,Qo.jsx)(Sxe,{isRefreshing:g,progress:R})}),t]})};var EG=X(Zw(),1),In=X(de(),1),nf=X(ke(),1);function Txe({onScan:e,onError:t,className:a=""}){let r=(0,In.useRef)(null),i=(0,In.useRef)(null),o=(0,In.useRef)(null),n=(0,In.useRef)(null),s=(0,In.useRef)(!1),[l,u]=(0,In.useState)(!1);return(0,In.useEffect)(()=>{let c=!1;s.current=!1;let d=()=>{if(n.current&&(cancelAnimationFrame(n.current),n.current=null),o.current){for(let p of o.current.getTracks())p.stop();o.current=null}},f=()=>{if(c||s.current)return;let p=r.current,x=i.current;if(!p||p.readyState!==p.HAVE_ENOUGH_DATA||!x){n.current=requestAnimationFrame(f);return}let v=x.getContext("2d");if(!v){n.current=requestAnimationFrame(f);return}x.height=p.videoHeight,x.width=p.videoWidth,v.drawImage(p,0,0,x.width,x.height);let m=v.getImageData(0,0,x.width,x.height),g=(0,EG.default)(m.data,m.width,m.height,{inversionAttempts:"dontInvert"});if(g?.data){s.current=!0,d(),e(g.data);return}n.current=requestAnimationFrame(f)};return(async()=>{try{if(!await xt.permission.request("camera")){t?.("Permission cam\xE9ra refus\xE9e par l'utilisateur.");return}if(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia){t?.("L'acc\xE8s \xE0 la cam\xE9ra requiert une connexion s\xE9curis\xE9e (HTTPS) ou n'est pas support\xE9 par ce navigateur.");return}let x=await navigator.mediaDevices.getUserMedia({video:{facingMode:"environment"}});if(c){for(let m of x.getTracks())m.stop();return}o.current=x;let v=r.current;if(!v||(v.srcObject=x,v.setAttribute("playsinline","true"),await v.play(),c))return;u(!0),n.current=requestAnimationFrame(f)}catch(p){console.error("QRScanner: camera access failed:",p),t?.("Acc\xE8s cam\xE9ra refus\xE9 ou non disponible sur cet appareil.")}})(),()=>{c=!0,d()}},[]),(0,nf.jsxs)("div",{className:a,style:{alignItems:"center",display:"flex",justifyContent:"center",overflow:"hidden",position:"relative"},children:[(0,nf.jsx)("video",{playsInline:!0,ref:r,style:{height:"100%",objectFit:"cover",width:"100%"}}),(0,nf.jsx)("canvas",{ref:i,style:{display:"none"}}),l&&(0,nf.jsx)("div",{style:{border:"2px dashed rgba(255,255,255,0.8)",borderRadius:12,bottom:"10%",left:"10%",pointerEvents:"none",position:"absolute",right:"10%",top:"10%"}})]})}var sf=X(de(),1);var ks=X(ke(),1),Qw=(0,sf.createContext)({isMocked:!1}),Lxe=()=>(0,sf.useContext)(Qw).isMocked,Ixe=({children:e,debug:t=!1,...a})=>{let r=typeof window<"u"&&!(window.__UP_REACT_NATIVE_APP__===!0||window.ReactNativeWebView),i=(0,sf.useMemo)(()=>({isMocked:r}),[r]),o=(0,ks.jsxs)(ks.Fragment,{children:[e,(t||r)&&(0,ks.jsx)(Yw,{})]});return r?(0,ks.jsx)(Qw.Provider,{value:i,children:(0,ks.jsx)(Xw,{...a,children:o})}):(0,ks.jsx)(Qw.Provider,{value:i,children:o})};var Br=X(de(),1),Z_=X(ke(),1),AG=8,Mxe=40,Pxe=.4,kxe=.35,Rxe="cubic-bezier(0.16, 1, 0.3, 1)",zxe=300,Oxe=15,Nxe=200,Vxe=.5,Uxe=2,jxe=1,qxe="[data-swipe-scroll-root]",wG=`transform ${zxe}ms ${Rxe}`,Gxe=({items:e,activeId:t,onActiveChange:a,peek:r=1.1,gap:i=10,className:o,itemClassName:n,axisPriority:s="horizontal",verticalDrag:l,overscan:u=Uxe,visibleOverscan:c=jxe})=>{let d=(0,Br.useRef)(null),[f,h]=(0,Br.useState)(0),[p,x]=(0,Br.useState)(0),[v,m]=(0,Br.useState)(0),[g,y]=(0,Br.useState)(!1),[_,b]=(0,Br.useState)(!1),A=(0,Br.useRef)(null),[w,B]=(0,Br.useState)(()=>Math.max(0,e.findIndex(V=>V.id===t))),L=(0,Br.useRef)(t),[P,R]=(0,Br.useState)(!0);(0,Br.useEffect)(()=>{let V=setTimeout(()=>{R(!1)},1e3);return()=>clearTimeout(V)},[]),(0,Br.useEffect)(()=>{if(t!==L.current){let V=e.findIndex(q=>q.id===t);V!==-1&&B(V),L.current=t}},[t,e]);let k=Math.min(Math.max(w,0),Math.max(e.length-1,0));(0,Br.useLayoutEffect)(()=>{let V=d.current;if(!V)return;let q=()=>h(V.clientWidth);q();let U=new ResizeObserver(q);return U.observe(V),()=>U.disconnect()},[]);let S=f/r,T=S+i,E=(f-S)/2-k*T+p,I=V=>{B(V);let q=e[V];q&&q.id!==t&&a(q.id)},F=V=>{let q=V.targetTouches[0];if(!q)return;let U=!1;if(l){let W=l.scrollRootSelector??qxe,Q=V.target.closest(W);U=!Q||Q.scrollTop<=2}A.current={lastT:V.timeStamp,lastX:q.clientX,lastY:q.clientY,lockedAxis:null,startX:q.clientX,startY:q.clientY,velocityX:0,velocityY:0,verticalAllowed:U}},D=V=>{let q=V.targetTouches[0],U=A.current;if(!q||!U)return;let W=q.clientX-U.startX,Q=q.clientY-U.startY;if(!U.lockedAxis){if(Math.abs(W)<AG&&Math.abs(Q)<AG)return;Math.abs(W)>Math.abs(Q)||Math.abs(W)===Math.abs(Q)&&s==="horizontal"?U.lockedAxis="x":l&&U.verticalAllowed?U.lockedAxis="y":U.lockedAxis="passthrough"}if(U.lockedAxis==="passthrough")return;let le=V.timeStamp-U.lastT;if(le>0&&(U.velocityX=(q.clientX-U.lastX)/le,U.velocityY=(q.clientY-U.lastY)/le),U.lastX=q.clientX,U.lastY=q.clientY,U.lastT=V.timeStamp,U.lockedAxis==="x"){g||y(!0);let ie=k===0&&W>0,O=k===e.length-1&&W<0;x(ie||O?W*kxe:W)}else if(l){let ie=l.direction??"down",O=Q;ie==="down"&&(O=Math.max(0,Q)),ie==="up"&&(O=Math.min(0,Q));let H=Math.sign(O)*Math.max(0,Math.abs(O)-Oxe);_||b(!0),m(H),l.onDragChange?.(H,!0)}V.cancelable&&V.preventDefault()},M=()=>{let V=A.current;if(A.current=null,y(!1),b(!1),!V){x(0),m(0);return}if(V.lockedAxis==="x"){if(Math.abs(p)>Mxe||Math.abs(V.velocityX)>Pxe){let U=p<0?Math.min(e.length-1,k+1):Math.max(0,k-1);I(U)}}else if(V.lockedAxis==="y"){let q=l?.dismissThreshold??Nxe,U=l?.dismissVelocity??Vxe,W=l?.direction??"down",Q=W==="down"?Math.max(0,V.velocityY):W==="up"?Math.max(0,-V.velocityY):Math.abs(V.velocityY);(Math.abs(v)>q||Q>U)&&l?.onDismiss?.()}x(0),m(0),l?.onDragChange?.(0,!1)},j=Math.max(0,k-u),z=Math.min(e.length-1,k+u);return(0,Z_.jsx)("div",{className:`relative overflow-hidden touch-pan-y ${o??""}`,onTouchCancel:M,onTouchEnd:M,onTouchMove:D,onTouchStart:F,ref:d,children:(0,Z_.jsx)("div",{className:"relative h-full",style:{transform:`translateX(${E}px)`,transition:g||P?"none":wG,willChange:"transform"},children:e.map((V,q)=>{if(q<j||q>z)return null;let U=q===k,W=U?v:0,Q=Math.abs(q-k),le=Q<=c;return(0,Z_.jsx)("div",{className:`absolute top-0 left-0 h-full shrink-0 ${n??""} ${V.className??""}`,style:{opacity:le?1:0,pointerEvents:le?void 0:"none",transform:`translateX(${q*T}px) translateY(${W}px)`,transition:U&&_||P?"none":wG,width:`${S}px`,zIndex:u+1-Q},children:V.content},V.id)})})})};var Jw=X(de(),1),Hxe=10,Zxe=500,Wxe=e=>{let t=(0,Jw.useRef)(null),a=(0,Jw.useRef)(!1);return{onClick:()=>{if(a.current){a.current=!1;return}e()},onTouchEnd:n=>{let s=t.current,l=n.changedTouches[0];t.current=null,!(!s||!l||Math.hypot(l.clientX-s.x,l.clientY-s.y)>Hxe)&&(a.current=!0,setTimeout(()=>{a.current=!1},Zxe),e())},onTouchStart:n=>{let s=n.targetTouches[0];t.current=s?{x:s.clientX,y:s.clientY}:null}}};async function Kxe(e,t){return H_.fetchRoute(e,t)}function Xxe(e,t,a){let r=`sdk-route-${t}`,i=`sdk-route-casing-${t}`,o=`sdk-route-line-${t}`,n={features:[{geometry:a.payload.routeData.geometry,properties:{},type:"Feature"}],type:"FeatureCollection"},s=e.getSource(r);s?s.setData(n):(e.addSource(r,{data:n,type:"geojson"}),e.addLayer({id:i,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#111111","line-opacity":.8,"line-width":8},source:r,type:"line"}),e.addLayer({id:o,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3b82f6","line-width":4},source:r,type:"line"}))}function Yxe(e,t){let a=`sdk-route-${t}`,r=`sdk-route-casing-${t}`,i=`sdk-route-line-${t}`;e.getLayer(i)&&e.removeLayer(i),e.getLayer(r)&&e.removeLayer(r),e.getSource(a)&&e.removeSource(a)}function xm(e,t){if(t.startsWith("http://")||t.startsWith("https://"))return t;let a=e.trim();for(;a.endsWith("/");)a=a.slice(0,-1);let r=t.trim();r.startsWith("/")||(r=`/${r}`);let i=a.endsWith("/api/v1"),o=r.startsWith("/api/v1/")||r==="/api/v1";if(i&&o){let n=r.slice(7);return`${a}${n}`}return`${a}${r}`}function DG(e){return typeof window>"u"?void 0:window.__UP_BACKEND_URLS__?.[e]??void 0}function Qxe(e){let t=()=>DG("http")||xt.getEnv()?.backendUrl||e.defaultBaseUrl,a=()=>DG("ws")||xt.getEnv()?.wsBackendUrl||e.defaultWsBackendUrl;return{get baseUrl(){return t()},delete:r=>xt.network.request({method:"DELETE",url:xm(t(),r)}),get:r=>xt.network.request({headers:{"Content-Type":"application/json"},method:"GET",url:xm(t(),r)}),graphqlQuery:(r,i={})=>xt.network.request({body:{query:r,variables:i},headers:{"Content-Type":"application/json"},method:"POST",url:xm(t(),"/graphql")}),patch:(r,i)=>xt.network.request({body:i,headers:{"Content-Type":"application/json"},method:"PATCH",url:xm(t(),r)}),post:(r,i)=>xt.network.request({body:i,headers:{"Content-Type":"application/json"},method:"POST",url:xm(t(),r)}),get wsUrl(){return a()}}}function Jxe(e){let t=e.channelField,a=null,r=new Map,i=new Set,o=null,n=1e3,s=!1,l="closed",u=new Set,c=_=>{if(l!==_){l=_;for(let b of u)b(l)}},d=()=>e.baseUrl||e.api.wsUrl||"",f=(_,b)=>{a?.readyState===WebSocket.OPEN&&a.send(JSON.stringify({action:_,[t]:b}))},h=()=>{o&&clearTimeout(o),o=setTimeout(()=>{n=Math.min(n*2,3e4),p()},n)},p=async()=>{if(!(a?.readyState===WebSocket.OPEN||a?.readyState===WebSocket.CONNECTING||s)){s=!0,c("connecting");try{let _=d();if(!_){console.warn("[WS] No WebSocket backend URL available, connection delayed."),s=!1,c("closed");return}let b={};if(jm()&&e.ticketPath!==null)b={ticket:(await e.api.post(e.ticketPath??"/ws-ticket")).data.ticket};else if(e.devToken)b={token:e.devToken.startsWith("Bearer ")?e.devToken.slice(7):e.devToken};else if(e.requireAuth!==!1){console.warn("[WS] No auth available, connection delayed."),s=!1,c("closed");return}let w=new URLSearchParams({...e.query,...b}).toString();a=new WebSocket(w?`${_}?${w}`:_),a.onopen=()=>{if(s=!1,c("open"),n=1e3,t)for(let B of r.keys())f("subscribe",B)},a.onmessage=B=>{try{let L=JSON.parse(B.data);if(t){let P=L[t];if(typeof P=="string"){let R=r.get(P);if(R)for(let k of R)k(L)}}for(let P of i)P(L)}catch(L){console.error("[WS] Failed to parse message:",L)}},a.onclose=()=>{s=!1,c("closed"),h()},a.onerror=B=>{console.error("[WS] error:",B),s=!1,a?.close()}}catch(_){console.error("[WS] Failed to establish connection:",_),s=!1,c("closed"),h()}}},x=()=>{o&&(clearTimeout(o),o=null),a&&(a.onclose=null,a.close(),a=null),c("closed")},v=()=>l,m=_=>(u.add(_),_(l),()=>{u.delete(_)}),g=(_,b)=>{let A=!r.has(_);return A&&r.set(_,new Set),r.get(_)?.add(b),A&&f("subscribe",_),p(),()=>{let w=r.get(_);w&&(w.delete(b),w.size===0&&(r.delete(_),f("unsubscribe",_)))}},y=_=>(i.add(_),p(),()=>{i.delete(_)});return t?{connect:p,disconnect:x,getStatus:v,onMessage:y,onStatusChange:m,subscribe:g}:{connect:p,disconnect:x,getStatus:v,onMessage:y,onStatusChange:m}}var $xe=xt;return OG(eme);})();
|
|
880
|
+
`}),(0,Ta.jsxs)(Ru,{disableDismiss:!0,disableDrag:D,dragVelocityThreshold:XY,initialSnap:S,isOpen:!0,onClose:()=>a("closed"),onSnap:C,ref:T,snapPoints:P,tweenConfig:KY,children:[(0,Ta.jsxs)(Ru.Container,{className:"!bg-zinc-950/85 !backdrop-blur-md !border !border-white/10 !border-b-0 !rounded-t-2xl !shadow-2xl ",style:{paddingBottom:h.bottom},children:[u&&(0,Ta.jsx)(Ru.Header,{className:"!bg-transparent cursor-pointer hover:!bg-white/5 transition-colors",onClick:E,ref:v}),(0,Ta.jsxs)(Ru.Content,{className:"!bg-transparent",disableDrag:M=>D||M.scrollPosition==="middle",disableScroll:M=>!D&&M.currentSnap!==P.length-1,scrollClassName:"no-scrollbar",scrollRef:x,children:[(0,Ta.jsx)("div",{className:"px-4 pb-4 pt-2 relative",ref:m,children:s||(0,Ta.jsx)("div",{className:"flex flex-col gap-1",children:e.map(M=>(0,Ta.jsxs)(kt,{className:`flex items-center gap-3 w-full py-3 px-3.5 rounded-xl text-left cursor-pointer transition-all duration-150 justify-start hover:bg-white/5 hover:text-white active:bg-white/10 text-white ${M.disabled?"opacity-45 cursor-not-allowed pointer-events-none":""}`,disabled:M.disabled,onClick:()=>{M.disabled||(M.onPress(),a("closed"))},variant:"ghost",children:[(0,Ta.jsxs)("div",{className:"relative flex items-center justify-center w-8 h-8 rounded-lg bg-white/5 text-zinc-300",children:[M.icon,M.badge!==void 0&&(0,Ta.jsx)("span",{className:"absolute -top-1 -right-1 bg-cyan-500 text-black text-[9px] font-extrabold min-w-[15px] h-3.5 rounded-full flex items-center justify-center px-1 border border-zinc-950 shadow",children:M.badge})]}),(0,Ta.jsx)("span",{className:"text-sm font-medium tracking-wide",children:M.label})]},M.id))})}),d&&I&&(0,Ta.jsx)(kt,{className:"absolute bottom-4 right-6 z-50 flex items-center justify-center w-10 h-10 rounded-full bg-cyan-500 hover:bg-cyan-400 active:scale-95 text-black hover:text-black shadow-lg shadow-cyan-500/25 transition-all duration-200 cursor-pointer p-0!",onClick:()=>{x.current?.scrollTo({behavior:"smooth",top:0})},variant:"ghost",children:(0,Ta.jsx)("svg",{fill:"none",height:"20",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2.5",viewBox:"0 0 24 24",width:"20",xmlns:"http://www.w3.org/2000/svg",children:(0,Ta.jsx)("polyline",{points:"18 15 12 9 6 15"})})})]})]}),(0,Ta.jsx)(YY,{active:t==="full"||t==="auto",onTap:()=>a("closed"),output:k})]})]})});LC.displayName="MobileBottomDrawer";function YY({active:e,output:t,onTap:a}){let{y:r,snapPoints:i}=Ru.useContext(),o=Mo(r,n=>i.length===0||t.length!==i.length?0:nu(i.map(l=>l.snapValueY),t)(n)*.45);return(0,Ta.jsx)(Ru.Backdrop,{className:"!bg-black !backdrop-blur-[1px]",onTap:e?a:void 0,style:{opacity:o}})}var pt=X(de(),1),hT=X(ke(),1),un=(0,pt.createContext)(null),IC=({children:e})=>{let[t,a]=(0,pt.useState)(!0),[r,i]=(0,pt.useState)(0),[o,n]=(0,pt.useState)(0),[s,l]=(0,pt.useState)("closed"),u=(0,pt.useRef)(null),c=(0,pt.useCallback)(D=>{l(D)},[]),[d,f]=(0,pt.useState)(!0),h=(0,pt.useCallback)(D=>{f(M=>M===D?M:D)},[]),[p,x]=(0,pt.useState)(!1),v=(0,pt.useCallback)(D=>{x(M=>M===D?M:D)},[]),[m,g]=(0,pt.useState)(void 0),y=(0,pt.useCallback)(D=>{g(M=>!M&&!D?M:!M||!D?D:M.etaMins===D.etaMins&&M.distanceRemainingKm===D.distanceRemainingKm&&M.label===D.label&&M.progress===D.progress&&M.mode===D.mode&&M.isCalculating===D.isCalculating&&M.error===D.error?M:D)},[]),[_,b]=(0,pt.useState)({bottom:0,left:0,right:0,top:0}),A=(0,pt.useCallback)(D=>{b(M=>({...M,...D}))},[]),w=(0,pt.useRef)(null),B=(0,pt.useRef)(null),L=(0,pt.useRef)(null),P=(0,pt.useCallback)(D=>{w.current&&w.current(D)},[]),R=(0,pt.useCallback)(D=>{B.current&&B.current(D)},[]),k=(0,pt.useCallback)((D,M)=>{L.current&&L.current(D,M)},[]),S=(0,pt.useCallback)(D=>{w.current=D},[]),T=(0,pt.useCallback)(D=>{B.current=D},[]),C=(0,pt.useCallback)(D=>{L.current=D},[]),E=(0,pt.useCallback)(D=>{i(D)},[]),I=(0,pt.useCallback)(D=>{n(D)},[]),F=(0,pt.useMemo)(()=>({_registerCenterCallback:S,_registerFlyToCallback:C,_registerResetBearingCallback:T,bearing:r,centerOnUser:P,drawerContentRef:u,drawerHandleVisible:d,drawerState:s,etaData:m,flyTo:k,hasControls:p,insets:_,isFollowing:t,pitch:o,resetBearing:R,setBearing:E,setDrawerHandleVisible:h,setDrawerState:c,setEtaData:y,setHasControls:v,setInsets:A,setIsFollowing:a,setPitch:I}),[S,C,T,r,P,d,s,m,k,p,t,o,R,E,h,c,y,v,I,_,A]);return(0,hT.jsx)(un.Provider,{value:F,children:e})},QY=()=>{let e=(0,pt.useContext)(un);if(!e)throw new Error("useMapControls must be used within a MapControlsProvider");return e};var xr=X(de(),1),cn=X(ke(),1),MC=(e,t)=>typeof e=="number"?e:e.endsWith("%")?parseFloat(e)/100*t:parseFloat(e),PC=({menuItems:e=[],drawerSide:t,customControls:a=[],etaBarHeight:r=100,onRecenter:i,isMapCentered:o,mapBearing:n,onResetBearing:s,etaData:l,customRecenterButton:u,defaultState:c,initialViewState:d,customCompassButton:f,drawerPeekHeight:h,drawerFullHeight:p,drawerAutoMaxHeight:x,drawerContentRef:v,menuContent:m,children:g,enableTouchDrag:y=!1,showScrollToTopButton:_=!0,scrollToTopThreshold:b=300,controlsBottomOffset:A=0,isInternal:w=!1})=>{let B=(0,xr.useContext)(un),L=B?.drawerContentRef,P=(0,xr.useCallback)(te=>{v&&(typeof v=="function"?v(te):v.current=te),L&&(L.current=te)},[v,L]),[R,k]=(0,xr.useState)(c??"closed"),S=B?B.drawerState:R,T=(0,xr.useCallback)(te=>{B?B.setDrawerState(te):k(te)},[B]);(0,xr.useEffect)(()=>{c&&B&&B.setDrawerState(c)},[]);let[C,E]=(0,xr.useState)("left"),I=(0,xr.useRef)(null),[F,D]=(0,xr.useState)(600);(0,xr.useEffect)(()=>{let te=I.current?.parentElement;if(!te)return;let ae=()=>{D(te.getBoundingClientRect().height)};ae();let ue=new ResizeObserver(ae);return ue.observe(te),()=>{ue.disconnect()}},[]);let M=B?.setHasControls;(0,xr.useEffect)(()=>{if(M&&!w)return M(!0),()=>M(!1)},[M,w]);let j=o!==void 0?o:B?B.isFollowing:!0,z=n!==void 0?n:B?B.bearing:0,V=te=>{i?i(te):B&&B.centerOnUser(te)},q=te=>{s?s(te):B&&B.resetBearing(te)},U=B?B.pitch:0,W=l!==void 0?l:B?.etaData,[Q,le]=(0,xr.useState)(0);(0,xr.useEffect)(()=>{if(typeof window>"u")return;let te=()=>{t?E(t):window.innerWidth<768?E("bottom"):E("left")};return te(),window.addEventListener("resize",te),()=>window.removeEventListener("resize",te)},[t]);let ie=!1,O=0,H=MC(p||"85%",F),N=MC(h||"15%",F),Z=MC(x||"100%",F),J=Math.min(Z,Q),fe=B?.insets.bottom||0,ye=B?B.drawerHandleVisible:!0,Y=ye?32:0;S==="peek"?Y=N:S==="full"?Y=H:S==="auto"&&(Y=J);let he=Y,oe=N+20,$=N+(H-N)*.35,Ee=1,se="1rem";return C==="bottom"?(he<=oe?Ee=1:he>=$?Ee=0:Ee=1-(he-oe)/($-oe),se=`calc(${Y+(S==="closed"?fe:0)+16}px - var(--drag-offset, 0px))`):(Ee=S==="full"?0:1,se=`calc(1rem + ${fe}px)`),(0,cn.jsxs)(cn.Fragment,{children:[(0,cn.jsx)("div",{ref:I,style:{display:"none"}}),C==="bottom"?(0,cn.jsx)(LC,{containerHeight:F,drawerAutoMaxHeight:x,drawerFullHeight:p,drawerPeekHeight:h,enableTouchDrag:y,handleVisible:ye,menuContent:g||m,menuItems:e,onAutoContentHeightChange:le,onChangeState:T,ref:P,safeAreaInsets:B?.insets,scrollToTopThreshold:b,showScrollToTopButton:_,state:S}):(0,cn.jsx)(o5,{menuContent:g||m,menuItems:e,onChangeState:T,ref:P,scrollToTopThreshold:b,showScrollToTopButton:_,state:S}),(0,cn.jsx)(LB,{bottomOffset:A,clampedDragOffset:O,customCompassButton:f,customControls:a,customRecenterButton:u,drawerPeekHeight:h,drawerState:S,etaBarHeight:r+(S==="closed"?fe:0),etaData:W,initialViewState:d,insets:B?.insets,isDragging:ie,isMapCentered:j,mapBearing:z,mapPitch:U,onRecenter:()=>V(),onResetBearing:q,side:C}),W&&(0,cn.jsx)(TB,{etaData:W,isDragging:ie,layoutMode:"floating-card",style:{bottom:se,opacity:Ee,pointerEvents:Ee>.1?"auto":"none",transition:ie?"none":"bottom 250ms ease-in-out, opacity 300ms ease-out"}})]})};var pT=X(de(),1),Po=X(ke(),1),Lh=({children:e})=>(0,Po.jsx)("div",{className:"flex flex-col gap-1.5",children:e}),Z2=({id:e,label:t,icon:a,onPress:r,badge:i,disabled:o=!1,children:n})=>{let s=(0,pT.useContext)(un);return(0,Po.jsxs)("button",{className:`flex items-center gap-3 w-full py-3 px-3.5 rounded-xl text-left cursor-pointer transition-all duration-150 ${o?"opacity-45 cursor-not-allowed pointer-events-none":"hover:bg-white/5 active:bg-white/10 text-white"}`,disabled:o,onClick:u=>{o||(r&&r(),s&&s.setDrawerState&&s.setDrawerState("closed"))},type:"button",children:[a&&(0,Po.jsxs)("div",{className:"relative flex items-center justify-center w-8 h-8 rounded-lg bg-white/5 text-zinc-300",children:[a,i!==void 0&&(0,Po.jsx)("span",{className:"absolute -top-1 -right-1 bg-cyan-500 text-black text-[9px] font-extrabold min-w-[15px] h-3.5 rounded-full flex items-center justify-center px-1 border border-zinc-950 shadow",children:i})]}),(0,Po.jsxs)("div",{className:"flex-1 flex flex-col justify-center",children:[(0,Po.jsx)("span",{className:"text-sm font-medium tracking-wide flex-1",children:t}),n]})]})};Lh.displayName="MapMenu";Z2.displayName="MapMenuItem";var W2=({children:e,showDivider:t=!0,className:a=""})=>(0,Po.jsx)("div",{className:`flex items-center justify-between pb-3 first:mt-0 px-3.5 ${a} ${t?"border-b border-white/10 mb-2 mt-4":""}`,children:e});W2.displayName="MapMenuTitle";var K2=({className:e=""})=>(0,Po.jsx)("div",{className:`h-[1px] bg-white/10 my-3 mx-3.5 ${e}`});K2.displayName="MapMenuDivider";var X2=({children:e,className:t=""})=>(0,Po.jsx)("div",{className:`mt-auto pt-4 border-t border-white/10 px-3.5 text-xs text-zinc-500 font-medium ${t}`,children:e});X2.displayName="MapMenuFooter";var xT=(r=>(r.TOP_SCROLL_MORE="TOP_SCROLL_MORE",r.BOTTOM_SCROLL_MORE="BOTTOM_SCROLL_MORE",r.BACK_GESTURE="BACK_GESTURE",r))(xT||{}),mT=(a=>(a.LOCATION_UPDATE="LOCATION_UPDATE",a.LOCATION_STREAM_UPDATE="LOCATION_STREAM_UPDATE",a))(mT||{}),gT=(t=>(t.UPDATE_CONTEXT="UPDATE_CONTEXT",t))(gT||{});var J2=X(de(),1),kC=.12,yT={accuracy:null,coords:null,heading:null};function RC(e){let t=e.location?.coords||e.coords,a=e.heading,r=t?[t.longitude,t.latitude]:null,i=null;return a?.trueHeading!==void 0&&a.trueHeading>=0?i=a.trueHeading:a?.magneticHeading!==void 0&&a.magneticHeading>=0?i=a.magneticHeading:a?.heading!==null&&a?.heading>=0&&(i=a.heading),{accuracy:t?.accuracy||null,coords:r,heading:i}}var Y2=0,Q2=0,zC=new Set,ko={...yT},eo={coords:null,heading:null},Ih=null,OC=null,NC=null;function VC(){return{accuracy:ko.accuracy,coords:eo.coords?[...eo.coords]:null,heading:eo.heading}}function JY(){let e=VC();for(let t of zC)t(e)}function vT(){let e=!1;if(ko.coords)if(!eo.coords)eo.coords=[...ko.coords],e=!0;else{let[t,a]=ko.coords,[r,i]=eo.coords,o=r+(t-r)*kC,n=i+(a-i)*kC;(Math.abs(o-r)>1e-7||Math.abs(n-i)>1e-7)&&(eo.coords=[o,n],e=!0)}if(ko.heading!==null)if(eo.heading===null)eo.heading=ko.heading,e=!0;else{let t=ko.heading,a=eo.heading,r=t-a;r>180&&(r-=360),r<-180&&(r+=360);let o=((a+r*kC)%360+360)%360;Math.abs(r)>.1&&(eo.heading=o,e=!0)}e&&JY(),Ih=requestAnimationFrame(vT)}function $Y(){Ih=requestAnimationFrame(vT),Q2++;let e=Q2;xt.location.getCurrentPosition().then(t=>{e===Q2&&(ko=RC(t))}).catch(t=>console.warn("Initial location fetch failed",t)),OC=xt.on("LOCATION_STREAM_UPDATE",t=>{ko=RC(t)}),NC=xt.on("LOCATION_UPDATE",t=>{ko=RC(t)}),xt.location.startStream({distanceFilter:1,headingThreshold:2}).catch(t=>console.warn("Failed to start location stream",t))}function eQ(){Q2++,Ih!==null&&cancelAnimationFrame(Ih),Ih=null,OC?.(),NC?.(),OC=null,NC=null,xt.location.stopStream().catch(()=>{}),ko={...yT},eo={coords:null,heading:null}}var Mh=()=>{let[e,t]=(0,J2.useState)(VC);return(0,J2.useEffect)(()=>(Y2++,Y2===1?$Y():t(VC()),zC.add(t),()=>{zC.delete(t),Y2--,Y2===0&&eQ()}),[]),e};var ya=X(de(),1),tQ=15,UC=({origin:e,destination:t,profile:a="driving",recalculateThreshold:r=50,enabled:i=!0,initialMode:o="preview",arrivalThresholdMeters:n=tQ})=>{let[s,l]=(0,ya.useState)(null),[u,c]=(0,ya.useState)(null),[d,f]=(0,ya.useState)(!1),[h,p]=(0,ya.useState)(null),[x,v]=(0,ya.useState)(o),m=Mh(),g=e||m.coords,y=m.coords||e,_=(0,ya.useRef)(null),b=(0,ya.useRef)(null),A=(0,ya.useRef)(!1),w=(0,ya.useRef)(null),B=(0,ya.useCallback)((k,S)=>{let C=k[1]*Math.PI/180,E=S[1]*Math.PI/180,I=(S[1]-k[1])*Math.PI/180,F=(S[0]-k[0])*Math.PI/180,D=Math.sin(I/2)*Math.sin(I/2)+Math.cos(C)*Math.cos(E)*Math.sin(F/2)*Math.sin(F/2);return 6371e3*(2*Math.atan2(Math.sqrt(D),Math.sqrt(1-D)))},[]),L=(0,ya.useMemo)(()=>{if(!y||!s||s.geometry.coordinates.length<2)return y&&t?B(y,t):null;let k=s.geometry.coordinates,S=1/0,T=0,C=(D,M)=>(D[0]-M[0])**2+(D[1]-M[1])**2;for(let D=0;D<k.length;D++){let M=C(y,k[D]);M<S&&(S=M,T=D)}let E=k.slice(T+1),I=0,F=y;for(let D of E)I+=B(F,D),F=D;return I},[y,s,t,B]),P=L!==null&&L<=n,R=(0,ya.useCallback)(async(k,S,T)=>{if(!A.current){A.current=!0,f(!0);try{let C=await xt.routing.getRoute({destination:S,origin:k,profile:a});if(l(C),p(null),T){let E=C.geometry.coordinates,I=0;for(let F=0;F<E.length-1;F++)I+=B(E[F],E[F+1]);c(I)}_.current=k,b.current=S}catch(C){p(C.message||"Failed to fetch route")}finally{f(!1),A.current=!1}}},[a,B]);return(0,ya.useEffect)(()=>{o==="navigation"&&v("navigation")},[o]),(0,ya.useEffect)(()=>{if(!i||!t||!g){(!i||!t)&&(l(null),c(null),_.current=null,b.current=null,w.current=null,v(o));return}let k=!b.current||b.current[0]!==t[0]||b.current[1]!==t[1],S=`${t[0]},${t[1]}`;if(w.current!==S&&(w.current=S,v(o),l(null),c(null)),k)R(g,t,!0);else if(_.current){let T=y||g;B(T,_.current)>r&&R(T,t,!1)}else R(g,t,!0)},[g,y,t,i,o,r,R,B]),{currentDistanceMeters:L,error:h,hasArrived:P,isCalculating:d,mode:x,recalculate:()=>g&&t&&R(g,t,!1),route:s,start:()=>v("navigation"),totalDistance:u}},aQ=(e,t,a="driving")=>{let[r,i]=(0,ya.useState)(null),[o,n]=(0,ya.useState)(!1),[s,l]=(0,ya.useState)(null);return(0,ya.useEffect)(()=>{if(!e||!t){i(null);return}(async()=>{n(!0);try{let c=await xt.routing.getRoute({destination:t,origin:e,profile:a});i(c),l(null)}catch(c){l(c.message||"Failed to fetch route")}finally{n(!1)}})()},[e,t,a]),{error:s,isCalculating:o,route:r}};var wi=X(de(),1),jC=(e={})=>{let{navigation:t,onAbort:a,onModeChange:r}=e,[i,o]=(0,wi.useState)(null),[n,s]=(0,wi.useState)(!1);(0,wi.useEffect)(()=>{let w=xt.on("SDK_NAVIGATION_CREATE",P=>{s(!1),o(P)}),B=xt.on("SDK_NAVIGATION_START",()=>{s(!1),o(P=>P?{...P,mode:"navigation"}:null)}),L=xt.on("SDK_NAVIGATION_ABORT",()=>{s(!0),o(null)});return()=>{w(),B(),L()}},[]);let l=i||t,u=UC({arrivalThresholdMeters:l?.arrivalThresholdMeters,destination:l?.destination||null,enabled:!n&&!!l?.destination,initialMode:l?.mode||"preview",origin:l?.origin,profile:l?.profile||"driving",recalculateThreshold:l?.recalculateThreshold||50}),c=(0,wi.useRef)(null),d=l?.destination;(0,wi.useEffect)(()=>{d&&(!c.current||c.current[0]!==d[0]||c.current[1]!==d[1])&&s(!1),c.current=d},[d]);let f=(0,wi.useRef)(r);f.current=r,(0,wi.useEffect)(()=>{f.current?.(u.mode)},[u.mode]);let h=!n&&!!l?.destination,p=h?u.currentDistanceMeters:null,x=h?u.totalDistance:null,v=u.route?.durationSeconds??null,m=p??0,g=m/1e3,y=(()=>{if(!v||!x||!p)return 0;let w=p/x;return Math.ceil(v*w/60)})(),_=x&&x>0?Math.min(100,Math.max(0,(x-m)/x*100)):0,b=(0,wi.useCallback)(()=>{s(!0),o(null),xt.navigation.abort(),a&&a()},[a]),A=(0,wi.useCallback)(()=>{xt.navigation.start(),u.start()},[u.start]);return{cancel:b,distanceRemainingKm:g,distanceRemainingMeters:p,error:h?u.error:null,etaMinutes:y,hasArrived:h?u.hasArrived:!1,isActive:h,isCalculating:h?u.isCalculating:!1,mode:h?u.mode:"preview",progress:_,recalculate:u.recalculate,route:h?u.route:null,start:A,totalDistanceMeters:x}};var _T=X(de(),1),qC=(e,t)=>(0,_T.useMemo)(()=>{if(!e||!t||e.coordinates.length<2)return e;let a=e.coordinates,r=1/0,i=0,o=(s,l)=>(s[0]-l[0])**2+(s[1]-l[1])**2;for(let s=0;s<a.length;s++){let l=o(t,a[s]);l<r&&(r=l,i=s)}let n=a.slice(i+1);return{coordinates:[t,...n],type:"LineString"}},[e,t]);var El=X(de(),1),Mi=X(de(),1);var $2=X(de(),1),dn=X(de(),1);var e1=$2.createContext(null),GC=e=>{let[t,a]=(0,dn.useState)({}),r=(0,dn.useCallback)((o,n="default")=>{a(s=>{if(n==="current")throw new Error("'current' cannot be used as map id");if(s[n])throw new Error(`Multiple maps with the same id: ${n}`);return{...s,[n]:o}})},[]),i=(0,dn.useCallback)((o="default")=>{a(n=>{if(n[o]){let s={...n};return delete s[o],s}return n})},[]);return $2.createElement(e1.Provider,{value:{maps:t,onMapMount:r,onMapUnmount:i}},e.children)};function HC(){let e=(0,dn.useContext)(e1)?.maps,t=(0,dn.useContext)(Xn);return(0,dn.useMemo)(()=>({...e,current:t?.map}),[e,t])}function bT(e,t){let a=Array.isArray(e)?e[0]:e?e.x:0,r=Array.isArray(e)?e[1]:e?e.y:0,i=Array.isArray(t)?t[0]:t?t.x:0,o=Array.isArray(t)?t[1]:t?t.y:0;return a===i&&r===o}function mr(e,t){if(e===t)return!0;if(!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let a=0;a<e.length;a++)if(!mr(e[a],t[a]))return!1;return!0}else if(Array.isArray(t))return!1;if(typeof e=="object"&&typeof t=="object"){let a=Object.keys(e),r=Object.keys(t);if(a.length!==r.length)return!1;for(let i of a)if(!t.hasOwnProperty(i)||!mr(e[i],t[i]))return!1;return!0}return!1}function ZC(e){return{center:e.getCenter(),zoom:e.getZoom(),bearing:e.getBearing(),pitch:e.getPitch(),elevation:e.getCenterElevation?.()??0,padding:e.getPadding()}}function WC(e){return{longitude:e.center.lng,latitude:e.center.lat,zoom:e.zoom,pitch:e.pitch,bearing:e.bearing,padding:e.padding}}function KC(e,t){let a=t.viewState||t,r={};if("longitude"in a&&"latitude"in a&&(a.longitude!==e.center.lng||a.latitude!==e.center.lat)){let i=e.center.constructor;r.center=new i(a.longitude,a.latitude)}return"zoom"in a&&a.zoom!==e.zoom&&(r.zoom=a.zoom),"bearing"in a&&a.bearing!==e.bearing&&(r.bearing=a.bearing),"pitch"in a&&a.pitch!==e.pitch&&(r.pitch=a.pitch),a.padding&&e.padding&&!mr(a.padding,e.padding)&&(r.padding=a.padding),r}function CT(e,t,a,r){return e.min===t.min&&e.max===t.max?!1:(e.min>=t.min?(e.max!==t.max&&r(e.max),e.min!==t.min&&a(e.min)):(e.min!==t.min&&a(e.min),e.max!==t.max&&r(e.max)),!0)}function ET(e,t,a){return CT(t,a,r=>e.setMinZoom(r),r=>e.setMaxZoom(r))}function AT(e,t,a){return CT(t,a,r=>e.setMinPitch(r),r=>e.setMaxPitch(r))}var rQ=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function XC(e){if(!e)return null;if(typeof e=="string"||("toJS"in e&&(e=e.toJS()),!e.layers))return e;let t={};for(let r of e.layers)t[r.id]=r;let a=e.layers.map(r=>{let i=null;"interactive"in r&&(i=Object.assign({},r),delete i.interactive);let o=t[r.ref];if(o){i=i||Object.assign({},r),delete i.ref;for(let n of rQ)n in o&&(i[n]=o[n])}return i||r});return{...e,layers:a}}var wT={version:8,sources:{},layers:[]},Yn={minZoom:0,maxZoom:22,minPitch:0,maxPitch:85,maxBounds:[-180,-85.051129,180,85.051129],projection:"mercator",renderWorldCopies:!0},DT={mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",click:"onClick",dblclick:"onDblClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mouseout:"onMouseOut",contextmenu:"onContextMenu",touchstart:"onTouchStart",touchend:"onTouchEnd",touchmove:"onTouchMove",touchcancel:"onTouchCancel"},BT={movestart:"onMoveStart",move:"onMove",moveend:"onMoveEnd",dragstart:"onDragStart",drag:"onDrag",dragend:"onDragEnd",zoomstart:"onZoomStart",zoom:"onZoom",zoomend:"onZoomEnd",rotatestart:"onRotateStart",rotate:"onRotate",rotateend:"onRotateEnd",pitchstart:"onPitchStart",pitch:"onPitch",pitchend:"onPitchEnd"},ST={wheel:"onWheel",boxzoomstart:"onBoxZoomStart",boxzoomend:"onBoxZoomEnd",boxzoomcancel:"onBoxZoomCancel",resize:"onResize",load:"onLoad",render:"onRender",idle:"onIdle",remove:"onRemove",data:"onData",styledata:"onStyleData",sourcedata:"onSourceData",error:"onError"},iQ=["maxBounds","projection","renderWorldCopies"],oQ=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch"],t1=class e{constructor(t,a,r){this._map=null,this._internalUpdate=!1,this._hoveredFeatures=null,this._propsedCameraUpdate=null,this._styleComponents={},this._onEvent=i=>{let o=this.props[ST[i.type]];o?o(i):i.type==="error"&&console.error(i.error)},this._onCameraEvent=i=>{if(this._internalUpdate)return;i.viewState=this._propsedCameraUpdate||WC(ZC(this._map));let o=this.props[BT[i.type]];o&&o(i)},this._onCameraUpdate=i=>this._internalUpdate?i:(this._propsedCameraUpdate=WC(i),KC(i,this.props)),this._onPointerEvent=i=>{(i.type==="mousemove"||i.type==="mouseout")&&this._updateHover(i);let o=this.props[DT[i.type]];o&&(this.props.interactiveLayerIds&&i.type!=="mouseover"&&i.type!=="mouseout"&&(i.features=this._hoveredFeatures||this._queryRenderedFeatures(i.point)),o(i),delete i.features)},this._MapClass=t,this.props=a,this._initialize(r)}get map(){return this._map}setProps(t){let a=this.props;this.props=t;let r=this._updateSettings(t,a),i=this._updateSize(t),o=this._updateViewState(t);this._updateStyle(t,a),this._updateStyleComponents(t),this._updateHandlers(t,a),(r||i||o&&!this._map.isMoving())&&this.redraw()}static reuse(t,a){let r=e.savedMaps.pop();if(!r)return null;let i=r.map,o=i.getContainer();for(a.className=o.className;o.childNodes.length>0;)a.appendChild(o.childNodes[0]);i._container=a;let n=i._resizeObserver;n&&(n.disconnect(),n.observe(a)),r.setProps({...t,styleDiffing:!1}),i.resize();let{initialViewState:s}=t;return s&&(s.bounds?i.fitBounds(s.bounds,{...s.fitBoundsOptions,duration:0}):r._updateViewState(s)),i.isStyleLoaded()?i.fire("load"):i.once("style.load",()=>i.fire("load")),i._update(),r}_initialize(t){let{props:a}=this,{mapStyle:r=wT}=a,i={...a,...a.initialViewState,container:t,style:XC(r)},o=i.initialViewState||i.viewState||i;if(Object.assign(i,{center:[o.longitude||0,o.latitude||0],zoom:o.zoom||0,pitch:o.pitch||0,bearing:o.bearing||0}),a.gl){let l=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=()=>(HTMLCanvasElement.prototype.getContext=l,a.gl)}let n=new this._MapClass(i);o.padding&&n.setPadding(o.padding),a.cursor&&(n.getCanvas().style.cursor=a.cursor);let s=n;typeof s.setTransformCameraUpdate=="function"?s.setTransformCameraUpdate(this._onCameraUpdate):s.transformCameraUpdate=this._onCameraUpdate,n.on("style.load",()=>{this._styleComponents={light:n.getLight(),sky:n.getSky(),projection:n.getProjection?.(),terrain:n.getTerrain()},this._updateStyleComponents(this.props)}),n.on("sourcedata",()=>{this._updateStyleComponents(this.props)});for(let l in DT)n.on(l,this._onPointerEvent);for(let l in BT)n.on(l,this._onCameraEvent);for(let l in ST)n.on(l,this._onEvent);this._map=n}recycle(){this.map.getContainer().querySelector("[mapboxgl-children]")?.remove(),e.savedMaps.push(this)}destroy(){this._map.remove()}redraw(){let t=this._map;t.style&&(t._frame&&(t._frame.cancel(),t._frame=null),t._render())}_updateSize(t){let{viewState:a}=t;if(a){let r=this._map,i=r.getCanvas();if(a.width!==i.clientWidth||a.height!==i.clientHeight)return r.resize(),!0}return!1}_updateViewState(t){let a=this._map,r=ZC(a);if(!a.isMoving()){let o=KC(r,t);if(Object.keys(o).length>0)return this._internalUpdate=!0,a.jumpTo(o),this._internalUpdate=!1,!0}return!1}_updateConstraints(t,a){let r=ET(this._map,{min:t.minZoom??Yn.minZoom,max:t.maxZoom??Yn.maxZoom},{min:a.minZoom??Yn.minZoom,max:a.maxZoom??Yn.maxZoom}),i=AT(this._map,{min:t.minPitch??Yn.minPitch,max:t.maxPitch??Yn.maxPitch},{min:a.minPitch??Yn.minPitch,max:a.maxPitch??Yn.maxPitch});return r||i}_updateSettings(t,a){let r=this._map,i=!1;for(let n of iQ)if((n in t||n in a)&&!mr(t[n],a[n])){i=!0;let l=n in t?t[n]:Yn[n];r[`set${n[0].toUpperCase()}${n.slice(1)}`]?.call(r,l)}let o=this._updateConstraints(t,a);return i||o}_updateStyle(t,a){if(t.cursor!==a.cursor&&(this._map.getCanvas().style.cursor=t.cursor||""),t.mapStyle!==a.mapStyle){let{mapStyle:r=wT,styleDiffing:i=!0}=t,o={diff:i};"localIdeographFontFamily"in t&&(o.localIdeographFontFamily=t.localIdeographFontFamily),this._map.setStyle(XC(r),o)}}_updateStyleComponents({light:t,projection:a,sky:r,terrain:i}){let o=this._map,n=this._styleComponents;o.style?._loaded&&(t&&!mr(t,n.light)&&(n.light=t,o.setLight(t)),a&&!mr(a,n.projection)&&a!==n.projection?.type&&(n.projection=typeof a=="string"?{type:a}:a,o.setProjection?.(n.projection)),r&&!mr(r,n.sky)&&(n.sky=r,o.setSky(r)),i!==void 0&&!mr(i,n.terrain)&&(!i||o.getSource(i.source))&&(n.terrain=i,o.setTerrain(i)))}_updateHandlers(t,a){let r=this._map;for(let i of oQ){let o=t[i]??!0,n=a[i]??!0;mr(o,n)||(o?r[i].enable(o):r[i].disable())}}_queryRenderedFeatures(t){let a=this._map,{interactiveLayerIds:r=[]}=this.props;try{return a.queryRenderedFeatures(t,{layers:r.filter(a.getLayer.bind(a))})}catch{return[]}}_updateHover(t){let{props:a}=this;if(a.interactiveLayerIds&&(a.onMouseMove||a.onMouseEnter||a.onMouseLeave)){let i=t.type,o=this._hoveredFeatures?.length>0,n=this._queryRenderedFeatures(t.point),s=n.length>0;!s&&o&&(t.type="mouseleave",this._onPointerEvent(t)),this._hoveredFeatures=n,s&&!o&&(t.type="mouseenter",this._onPointerEvent(t)),t.type=i}else this._hoveredFeatures=null}};t1.savedMaps=[];var YC=t1;var nQ=["setMaxBounds","setMinZoom","setMaxZoom","setMinPitch","setMaxPitch","setRenderWorldCopies","setProjection","setStyle","addSource","removeSource","addLayer","removeLayer","setLayerZoomRange","setFilter","setPaintProperty","setLayoutProperty","setLight","setTerrain","setFog","remove"];function QC(e){if(!e)return null;let t=e.map,a={getMap:()=>t};for(let r of sQ(t))!(r in a)&&!nQ.includes(r)&&(a[r]=t[r].bind(t));return a}function sQ(e){let t=new Set,a=e;for(;a;){for(let r of Object.getOwnPropertyNames(a))r[0]!=="_"&&typeof e[r]=="function"&&r!=="fire"&&r!=="setEventedParent"&&t.add(r);a=Object.getPrototypeOf(a)}return Array.from(t)}var a1=X(de(),1),lQ=typeof document<"u"?a1.useLayoutEffect:a1.useEffect,FT=lQ;function JC(e,t){let{RTLTextPlugin:a,maxParallelImageRequests:r,workerCount:i,workerUrl:o}=t;if(a&&e.getRTLTextPluginStatus&&e.getRTLTextPluginStatus()==="unavailable"){let{pluginUrl:n,lazy:s=!0}=typeof a=="string"?{pluginUrl:a}:a;e.setRTLTextPlugin(n,l=>{l&&console.error(l)},s)}r!==void 0&&e.setMaxParallelImageRequests(r),i!==void 0&&e.setWorkerCount(i),o!==void 0&&e.setWorkerUrl(o)}var Xn=El.createContext(null);function Efe(e,t){let a=(0,Mi.useContext)(e1),[r,i]=(0,Mi.useState)(null),o=(0,Mi.useRef)(),{current:n}=(0,Mi.useRef)({mapLib:null,map:null});(0,Mi.useEffect)(()=>{let u=e.mapLib,c=!0,d;return Promise.resolve(u||Promise.resolve().then(()=>(CN(),_N))).then(f=>{if(!c)return;if(!f)throw new Error("Invalid mapLib");let h="Map"in f?f:f.default;if(!h.Map)throw new Error("Invalid mapLib");JC(h,e),e.reuseMaps&&(d=YC.reuse(e,o.current)),d||(d=new YC(h.Map,e,o.current)),n.map=QC(d),n.mapLib=h,i(d),a?.onMapMount(n.map,e.id)}).catch(f=>{let{onError:h}=e;h?h({type:"error",target:null,originalEvent:null,error:f}):console.error(f)}),()=>{c=!1,d&&(a?.onMapUnmount(e.id),e.reuseMaps?d.recycle():d.destroy())}},[]),FT(()=>{r&&r.setProps(e)}),(0,Mi.useImperativeHandle)(t,()=>n.map,[r]);let s=(0,Mi.useMemo)(()=>({position:"relative",width:"100%",height:"100%",...e.style}),[e.style]),l={height:"100%"};return El.createElement("div",{id:e.id,ref:o,style:s},r&&El.createElement(Xn.Provider,{value:n},El.createElement("div",{"mapboxgl-children":"",style:l},e.children)))}var sA=El.forwardRef(Efe);var DN=X(de(),1),BN=X(Zc(),1),Jr=X(de(),1);var Afe=/box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;function EN(e,t){if(!e||!t)return;let a=e.style;for(let r in t){let i=t[r];Number.isFinite(i)&&!Afe.test(r)?a[r]=`${i}px`:a[r]=i}}function wN(e,t){if(e===t)return null;let a=AN(e),r=AN(t),i=[];for(let o of r)a.has(o)||i.push(o);for(let o of a)r.has(o)||i.push(o);return i.length===0?null:i}function AN(e){return new Set(e?e.trim().split(/\s+/):[])}var lx=(0,Jr.memo)((0,Jr.forwardRef)((e,t)=>{let{map:a,mapLib:r}=(0,Jr.useContext)(Xn),i=(0,Jr.useRef)({props:e}),o=(0,Jr.useMemo)(()=>{let m=!1;DN.Children.forEach(e.children,_=>{_&&(m=!0)});let g={...e,element:m?document.createElement("div"):void 0},y=new r.Marker(g);return y.setLngLat([e.longitude,e.latitude]),y.getElement().addEventListener("click",_=>{i.current.props.onClick?.({type:"click",target:y,originalEvent:_})}),y.on("dragstart",_=>{let b=_;b.lngLat=o.getLngLat(),i.current.props.onDragStart?.(b)}),y.on("drag",_=>{let b=_;b.lngLat=o.getLngLat(),i.current.props.onDrag?.(b)}),y.on("dragend",_=>{let b=_;b.lngLat=o.getLngLat(),i.current.props.onDragEnd?.(b)}),y},[]);(0,Jr.useEffect)(()=>(o.addTo(a.getMap()),()=>{o.remove()}),[]);let{longitude:n,latitude:s,offset:l,style:u,draggable:c=!1,popup:d=null,rotation:f=0,rotationAlignment:h="auto",pitchAlignment:p="auto"}=e;(0,Jr.useEffect)(()=>{EN(o.getElement(),u)},[u]),(0,Jr.useImperativeHandle)(t,()=>o,[]);let x=i.current.props;(o.getLngLat().lng!==n||o.getLngLat().lat!==s)&&o.setLngLat([n,s]),l&&!bT(o.getOffset(),l)&&o.setOffset(l),o.isDraggable()!==c&&o.setDraggable(c),o.getRotation()!==f&&o.setRotation(f),o.getRotationAlignment()!==h&&o.setRotationAlignment(h),o.getPitchAlignment()!==p&&o.setPitchAlignment(p),o.getPopup()!==d&&o.setPopup(d);let v=wN(x.className,e.className);if(v)for(let m of v)o.toggleClassName(m);return i.current.props=e,(0,BN.createPortal)(e.children,o.getElement())}));var SN=X(de(),1),mo=X(de(),1);function pc(e,t){if(!e)throw new Error(t)}var wfe=0;function Dfe(e,t,a){if(e.style&&e.style._loaded){let r={...a};return delete r.id,delete r.children,e.addSource(t,r),e.getSource(t)}return null}function Bfe(e,t,a){pc(t.id===a.id,"source id changed"),pc(t.type===a.type,"source type changed");let r="",i=0;for(let n in t)n!=="children"&&n!=="id"&&!mr(a[n],t[n])&&(r=n,i++);if(!i)return;let o=t.type;if(o==="geojson")e.setData(t.data);else if(o==="image")e.updateImage({url:t.url,coordinates:t.coordinates});else switch(r){case"coordinates":e.setCoordinates?.(t.coordinates);break;case"url":e.setUrl?.(t.url);break;case"tiles":e.setTiles?.(t.tiles);break;default:console.warn(`Unable to update <Source> prop: ${r}`)}}function xc(e){let t=(0,mo.useContext)(Xn).map.getMap(),a=(0,mo.useRef)(e),[,r]=(0,mo.useState)(0),i=(0,mo.useMemo)(()=>e.id||`jsx-source-${wfe++}`,[]);(0,mo.useEffect)(()=>{if(t){let n=()=>setTimeout(()=>r(s=>s+1),0);return t.on("styledata",n),n(),()=>{if(t.off("styledata",n),t.style&&t.style._loaded&&t.getSource(i)){let s=t.getStyle()?.layers;if(s)for(let l of s)l.source===i&&t.removeLayer(l.id);t.removeSource(i)}}}},[t]);let o=t&&t.style&&t.getSource(i);return o?Bfe(o,e,a.current):o=Dfe(t,i,e),a.current=e,o&&SN.Children.map(e.children,n=>n&&(0,mo.cloneElement)(n,{source:i}))||null}var En=X(de(),1);function Sfe(e,t,a,r){if(pc(a.id===r.id,"layer id changed"),pc(a.type===r.type,"layer type changed"),a.type==="custom"||r.type==="custom")return;let{layout:i={},paint:o={},filter:n,minzoom:s,maxzoom:l,beforeId:u}=a;if(u!==r.beforeId&&e.moveLayer(t,u),i!==r.layout){let c=r.layout||{};for(let d in i)mr(i[d],c[d])||e.setLayoutProperty(t,d,i[d]);for(let d in c)i.hasOwnProperty(d)||e.setLayoutProperty(t,d,void 0)}if(o!==r.paint){let c=r.paint||{};for(let d in o)mr(o[d],c[d])||e.setPaintProperty(t,d,o[d]);for(let d in c)o.hasOwnProperty(d)||e.setPaintProperty(t,d,void 0)}mr(n,r.filter)||e.setFilter(t,n),(s!==r.minzoom||l!==r.maxzoom)&&e.setLayerZoomRange(t,s,l)}function Ffe(e,t,a){if(e.style&&e.style._loaded&&(!("source"in a)||e.getSource(a.source))){let r={...a,id:t};delete r.beforeId,e.addLayer(r,a.beforeId)}}var Tfe=0;function ps(e){let t=(0,En.useContext)(Xn).map.getMap(),a=(0,En.useRef)(e),[,r]=(0,En.useState)(0),i=(0,En.useMemo)(()=>e.id||`jsx-layer-${Tfe++}`,[]);if((0,En.useEffect)(()=>{if(t){let n=()=>r(s=>s+1);return t.on("styledata",n),n(),()=>{t.off("styledata",n),t.style&&t.style._loaded&&t.getLayer(i)&&t.removeLayer(i)}}},[t]),t&&t.style&&t.getLayer(i))try{Sfe(t,i,e,a.current)}catch(n){console.warn(n)}else Ffe(t,i,e);return a.current=e,null}var ux=X(ke(),1),lA=({geometry:e,color:t="#3b82f6",width:a=5,opacity:r=.8,dashArray:i})=>e?(0,ux.jsxs)(xc,{data:{geometry:e,properties:{},type:"Feature"},id:"sdk-route-source",type:"geojson",children:[(0,ux.jsx)(ps,{id:"sdk-route-layer-casing",paint:{"line-blur":1,"line-color":"#ffffff","line-opacity":r,"line-width":a+2},type:"line"}),(0,ux.jsx)(ps,{id:"sdk-route-layer",layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":t,"line-opacity":r,"line-width":a,...i?{"line-dasharray":i}:{}},type:"line"})]}):null;var FN=(e,t,a=64)=>{let[r,i]=e,o=i*Math.PI/180,n=[];for(let s=0;s<=a;s++){let l=s/a*2*Math.PI,u=t*Math.cos(l)/6371e3*(180/Math.PI),c=t*Math.sin(l)/(6371e3*Math.cos(o))*(180/Math.PI);n.push([r+c,i+u])}return{geometry:{coordinates:[n],type:"Polygon"},properties:{},type:"Feature"}};var TN=X(de(),1),cx=X(ke(),1),LN=({center:e,radiusMeters:t,color:a="#e2e8f0"})=>{let r=(0,TN.useMemo)(()=>FN(e,t),[e,t]);return(0,cx.jsxs)(xc,{data:r,id:"sdk-mock-radius-source",type:"geojson",children:[(0,cx.jsx)(ps,{id:"sdk-mock-radius-fill",paint:{"fill-color":a,"fill-opacity":.12},type:"fill"}),(0,cx.jsx)(ps,{id:"sdk-mock-radius-outline",paint:{"line-color":a,"line-dasharray":[2,2],"line-width":2},type:"line"})]})};var mc=X(de(),1),uA=X(ke(),1);function IN(e,t=64){let a=document.createElement("canvas");a.width=t,a.height=t;let r=a.getContext("2d");return r.font=`${t*.75}px serif`,r.textAlign="center",r.textBaseline="middle",r.fillText(e,t/2,t/2),r.getImageData(0,0,t,t)}var MN=({pois:e})=>{let[t,a]=(0,mc.useState)(0),{current:r}=HC(),i=(0,mc.useMemo)(()=>e.filter(n=>!n.displayMode||n.displayMode==="gl"),[e]);(0,mc.useEffect)(()=>{if(!r)return;let n=r.getMap();[{emoji:"\u{1F37A}",name:"sdk-default-bar"},{emoji:"\u{1F37D}\uFE0F",name:"sdk-default-restaurant"},{emoji:"\u{1F4CD}",name:"sdk-default-poi"}].forEach(u=>{n.hasImage(u.name)||n.addImage(u.name,IN(u.emoji),{pixelRatio:2})});let l=0;i.forEach(u=>{if(u.imageUrl){let c=`custom-url-${u.id}`;n.hasImage(c)||n.loadImage(u.imageUrl,(d,f)=>{!d&&f&&(n.hasImage(c)||(n.addImage(c,f),a(h=>h+1)))})}if(u.emoji){let c=`custom-emoji-${u.emoji}`;n.hasImage(c)||(n.addImage(c,IN(u.emoji),{pixelRatio:2}),l++)}}),l>0&&a(u=>u+l)},[r,i]);let o=(0,mc.useMemo)(()=>({features:i.map(n=>({geometry:{coordinates:[n.longitude,n.latitude],type:"Point"},properties:{...n,"sdk-icon":n.imageUrl?`custom-url-${n.id}`:n.spriteName?n.spriteName:n.emoji?`custom-emoji-${n.emoji}`:n.type==="bar"?"sdk-default-bar":n.type==="restaurant"?"sdk-default-restaurant":"sdk-default-poi"},type:"Feature"})),type:"FeatureCollection"}),[i]);return(0,uA.jsx)(xc,{data:o,id:"sdk-pois",type:"geojson",children:(0,uA.jsx)(ps,{id:"sdk-poi-layer",layout:{"icon-allow-overlap":!0,"icon-image":["get","sdk-icon"],"icon-size":1,"text-anchor":"top","text-field":["step",["zoom"],"",14,["get","name"]],"text-font":["Open Sans Bold"],"text-offset":[0,1.5],"text-optional":!0,"text-size":11},paint:{"icon-opacity":["interpolate",["linear"],["zoom"],11,0,12,1],"text-color":"#ffffff","text-halo-color":"#000000","text-halo-width":1,"text-opacity":["interpolate",["linear"],["zoom"],13.5,0,14,1]},type:"symbol"})})};var Wo=X(ke(),1),PN=({pois:e,onClick:t})=>{let a=e.filter(r=>r.displayMode==="marker");return a.length===0?null:(0,Wo.jsx)(Wo.Fragment,{children:a.map(r=>(0,Wo.jsx)(lx,{anchor:"bottom",latitude:r.latitude,longitude:r.longitude,onClick:i=>{i.originalEvent.stopPropagation(),t&&t(r)},children:r.markerComponent?r.markerComponent:(0,Wo.jsxs)("div",{style:{cursor:"pointer",filter:"drop-shadow(0 4px 6px rgba(0,0,0,0.1))",transform:"transition-transform duration-200 hover:scale-110"},children:[(0,Wo.jsx)("div",{style:{alignItems:"center",backgroundColor:r.type==="bar"?"#f97316":"#10b981",border:"2px solid white",borderRadius:"50%",display:"flex",height:"32px",justifyContent:"center",width:"32px"},children:r.emoji?(0,Wo.jsx)("span",{style:{fontSize:"16px"},children:r.emoji}):(0,Wo.jsx)("div",{style:{backgroundColor:"white",borderRadius:"50%",height:"8px",width:"8px"}})}),(0,Wo.jsx)("div",{style:{borderLeft:"6px solid transparent",borderRight:"6px solid transparent",borderTop:`8px solid ${r.type==="bar"?"#f97316":"#10b981"}`,height:0,margin:"-2px auto 0",width:0}})]})},r.id))})};var $r=X(ke(),1),kN=({forcedLocation:e,heading:t})=>e?(0,$r.jsx)(lx,{anchor:"center",latitude:e[1],longitude:e[0],children:(0,$r.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"center",position:"relative"},children:[(0,$r.jsx)("div",{style:{animation:"pulse 2s infinite",backgroundColor:"rgba(59, 130, 246, 0.4)",borderRadius:"50%",height:"40px",position:"absolute",width:"40px"}}),t!=null&&(0,$r.jsx)("div",{style:{height:"60px",position:"absolute",transform:`rotate(${t}deg)`,width:"60px",zIndex:0},children:(0,$r.jsxs)("svg",{style:{height:"100%",width:"100%"},viewBox:"0 0 100 100",children:[(0,$r.jsx)("defs",{children:(0,$r.jsxs)("radialGradient",{cx:"50%",cy:"50%",fx:"50%",fy:"50%",id:"grad1",r:"50%",children:[(0,$r.jsx)("stop",{offset:"0%",style:{stopColor:"rgba(37, 99, 235, 0.6)",stopOpacity:1}}),(0,$r.jsx)("stop",{offset:"100%",style:{stopColor:"rgba(37, 99, 235, 0)",stopOpacity:0}})]})}),(0,$r.jsx)("path",{d:"M 50 50 L 35 0 A 50 50 0 0 1 65 0 Z",fill:"url(#grad1)"})]})}),(0,$r.jsx)("div",{style:{alignItems:"center",backgroundColor:"white",borderRadius:"50%",boxShadow:"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 0 0 2px rgba(37, 99, 235, 0.2)",display:"flex",height:"20px",justifyContent:"center",width:"20px",zIndex:1},children:(0,$r.jsx)("div",{style:{backgroundColor:"#2563eb",border:"2px solid white",borderRadius:"50%",height:"12px",width:"12px"}})}),(0,$r.jsx)("style",{children:"@keyframes pulse { 0% { transform: scale(0.95); opacity: 0.7; } 70% { transform: scale(1.5); opacity: 0; } 100% { transform: scale(0.95); opacity: 0; } }"})]})}):null;var lt=X(de(),1);var Va=X(ke(),1),Lfe=({initialViewState:e={latitude:45.90583599233422,longitude:6.12589018919138,zoom:12},style:t={},mapStyle:a="https://tiles.cloudparse.fr/style/up_dark_matter",className:r="",maxBounds:i,children:o,onClick:n,onMapClickMiss:s,onContextMenu:l,interactiveLayerIds:u=[],onLoad:c,showUserLocation:d=!0,followUser:f=!1,lockToUser:h=!1,showUserLocationButton:p=!0,renderUserLocation:x,pois:v=[],onPoiClick:m,route:g,routeStyle:y,showNavigationUI:_,navigationData:b,onNavigationAbort:A,onNavigationModeChange:w,navigation:B,showControls:L=!0,menuItems:P,menuContent:R,drawerState:k,drawerContentRef:S,controlProps:T={},enableTouchDrag:C=!1})=>{let E=(0,lt.useContext)(un),I=(0,lt.useContext)(Hc),F=(0,lt.useRef)(null),D=Mh(),M=jC({navigation:B,onModeChange:B?w:void 0}),j=M.isActive,z=j?{currentDistanceMeters:M.distanceRemainingMeters,hasArrived:M.hasArrived,mode:M.mode,route:M.route,start:M.start,totalDistance:M.totalDistanceMeters}:b,V=j?M.route?.geometry:g,q=j?_!==!1&&B?.showUI!==!1:_,U=z?.mode||"preview",W=E?E.isFollowing:f,Q=(0,lt.useRef)(W),le=(0,lt.useRef)(!1),ie=(0,lt.useRef)(0),O=(0,lt.useCallback)(()=>(le.current=!0,++ie.current),[]),H=(0,lt.useCallback)(rt=>{ie.current===rt&&(le.current=!1)},[]),[N,Z]=(0,lt.useState)(W),J=E?E.isFollowing:N,fe=E?.setIsFollowing,ye=(0,lt.useCallback)(rt=>{Q.current=rt,Z(rt),fe&&fe(rt)},[fe]);(0,lt.useEffect)(()=>{E&&E.isFollowing!==Q.current&&(Q.current=E.isFollowing)},[E?.isFollowing,E]);let Y=[...u];v.length>0&&!Y.includes("sdk-poi-layer")&&Y.push("sdk-poi-layer");let he=(0,lt.useRef)(f);(0,lt.useEffect)(()=>{if(f!==he.current&&(ye(f),he.current=f,f&&D.coords&&F.current)){let rt=O();F.current.flyTo({center:D.coords,duration:1e3,essential:!0,zoom:Math.max(F.current.getZoom(),16)}),setTimeout(()=>{H(rt)},1050)}},[f,ye,D.coords,O,H]);let oe=(0,lt.useRef)(null),$=(0,lt.useRef)(null);(0,lt.useEffect)(()=>{if(!V||!F.current){V||(oe.current=null);return}let rt=V!==oe.current,_a=$.current!==U;if(U==="navigation"){if((_a||rt)&&ye(!0),(_a||rt)&&D.coords&&F.current){let Ra=O();F.current.flyTo({center:D.coords,duration:1e3,essential:!0,zoom:17}),setTimeout(()=>{H(Ra)},1050)}}else if(U==="preview"&&rt){ye(!1);let Ra=V.coordinates;if(Ra.length>0){let Zt=Ra.reduce((Wt,jr)=>[[Math.min(Wt[0][0],jr[0]),Math.min(Wt[0][1],jr[1])],[Math.max(Wt[1][0],jr[0]),Math.max(Wt[1][1],jr[1])]],[[Ra[0][0],Ra[0][1]],[Ra[0][0],Ra[0][1]]]);F.current.fitBounds([Zt[0][0],Zt[0][1],Zt[1][0],Zt[1][1]],{padding:100,speed:1.2})}}oe.current=V,$.current=U},[V,U,ye,D.coords,O,H]),(0,lt.useEffect)(()=>{Q.current&&!le.current&&D.coords&&F.current&&F.current.easeTo({center:D.coords,duration:50,easing:rt=>rt,essential:!0})},[D.coords]);let Ee=qC(V,d?D.coords:null),se=z?.currentDistanceMeters??null,te=z?.totalDistance??null,ae=z?.route?.durationSeconds??null,ue=se??0,ce=(()=>{if(!ae||!te||!se)return 0;let rt=se/te;return Math.ceil(ae*rt/60)})(),me=ue/1e3,_e=te&&te>0?Math.min(100,Math.max(0,(te-ue)/te*100)):0,ct=q&&z&&V?{distanceRemainingKm:me,etaMins:ce,hasArrived:z.hasArrived??!1,label:U==="navigation"?"Walking Guidance Active":"Route Preview",mode:U,onAbort:()=>{M.cancel(),A&&A()},onStart:z.start,progress:_e}:void 0,tt=E?.setEtaData;(0,lt.useEffect)(()=>{tt&&tt(ct)},[ct,tt]);let it=E?.setDrawerState;(0,lt.useEffect)(()=>{it&&k!==void 0&&it(k)},[k,it]);let ra=P??[],{mapLibreChildren:at,menuContentFromChildren:$e}=(0,lt.useMemo)(()=>{let rt=[],_a=[];lt.default.Children.forEach(o,Zt=>{if(lt.default.isValidElement(Zt)){let Wt=Zt.type,jr=Wt?.displayName||Wt?.name,zc=Wt===Lh||jr==="MapMenu",mm=zc||Wt===Z2||Wt===W2||Wt===K2||Wt===X2||["MapMenuItem","MapMenuTitle","MapMenuDivider","MapMenuFooter"].includes(jr);zc?lt.default.Children.forEach(Zt.props.children,lf=>{lf&&_a.push(lf)}):mm?_a.push(Zt):rt.push(Zt)}else rt.push(Zt)});let Ra=_a.length>0?(0,Va.jsx)(Lh,{children:_a}):null;return{mapLibreChildren:rt,menuContentFromChildren:Ra}},[o]),ti=rt=>{if(I?.isPlacingLocation){I.placeLocation([rt.lngLat.lng,rt.lngLat.lat]);return}let _a=rt.features||[];if(m){let Zt=_a.find(Wt=>Wt.layer.id==="sdk-poi-layer");if(Zt){m(Zt.properties);return}}_a.some(Zt=>Y.includes(Zt.layer.id))||s&&s(rt),n&&n(rt)},Ur=(0,lt.useCallback)(rt=>{if(D.coords&&F.current){ye(!0);let _a=O();F.current.flyTo({center:D.coords,duration:1e3,essential:!0,pitch:rt?.pitch||0,zoom:Math.max(F.current.getZoom(),16),...rt?.bearing!==void 0?{bearing:rt.bearing}:{}}),setTimeout(()=>{H(_a)},1050)}},[D.coords,ye,O,H]),Mn=(0,lt.useCallback)((rt,_a)=>{let Ra=F.current;if(!Ra)return;ye(!1);let Zt=O();Ra.flyTo({center:rt,essential:!0,pitch:_a?.pitch??0,zoom:_a?.zoom??Ra.getZoom(),..._a?.duration!==void 0?{duration:_a.duration}:{},..._a?.bearing!==void 0?{bearing:_a.bearing}:{}}),Ra.once("moveend",()=>H(Zt))},[ye,O,H]),ia=(0,lt.useCallback)(rt=>{F.current&&F.current.easeTo({bearing:0,duration:500,essential:!0,pitch:rt?.pitch??0})},[]);(0,lt.useEffect)(()=>{E&&(E._registerCenterCallback(Ur),E._registerResetBearingCallback(ia),E._registerFlyToCallback(Mn))},[E,Ur,ia,Mn]);let Ha=(0,lt.useCallback)(()=>{F.current&&E&&(E.setBearing(F.current.getBearing()),E.setPitch(F.current.getPitch()))},[E]),Rs=()=>{h||Q.current&&(ye(!1),F.current&&F.current.stop())};return(0,Va.jsxs)("div",{className:`w-full h-full overflow-hidden relative ${I?.isPlacingLocation?"cursor-crosshair":""} ${r}`,style:t,children:[(0,Va.jsxs)(sA,{attributionControl:!1,initialViewState:e,interactiveLayerIds:Y,mapStyle:a,maxBounds:i?[i[0][0],i[0][1],i[1][0],i[1][1]]:void 0,onClick:ti,onContextMenu:l,onDragStart:Rs,onLoad:rt=>{c&&c(rt),f&&D.coords&&F.current&&F.current.jumpTo({center:D.coords,zoom:16})},onMouseDown:Rs,onMove:Ha,onRotateStart:Rs,onTouchStart:Rs,onWheel:Rs,ref:F,children:[d&&D.coords&&(x?x({coords:D.coords,heading:D.heading}):(0,Va.jsx)(kN,{forcedLocation:D.coords,heading:D.heading})),I&&I.radiusMeters>0&&D.coords&&(0,Va.jsx)(LN,{center:D.coords,radiusMeters:I.radiusMeters}),Ee&&(0,Va.jsx)(lA,{color:y?.color,dashArray:y?.dashArray,geometry:Ee,opacity:y?.opacity,width:y?.width}),v.length>0&&(0,Va.jsxs)(Va.Fragment,{children:[(0,Va.jsx)(MN,{pois:v}),(0,Va.jsx)(PN,{onClick:m,pois:v})]}),at]}),L&&E&&!E.hasControls&&(0,Va.jsx)(PC,{drawerContentRef:S,enableTouchDrag:C,etaData:ct,initialViewState:e,isInternal:!0,menuContent:R||$e,menuItems:ra,...T})]})},Ife=({children:e})=>(0,lt.useContext)(un)?(0,Va.jsx)(Va.Fragment,{children:e}):(0,Va.jsx)(IC,{children:e}),cA=e=>(0,Va.jsx)(Ife,{children:(0,Va.jsx)(GC,{children:(0,Va.jsx)(Lfe,{...e})})});var uG=X(de(),1),cG=X(lG(),1);function qw(e,t={}){let a=document.getElementById(e);if(!a)throw new Error(`Container with id "${e}" not found.`);let r=(0,cG.createRoot)(a);return r.render(uG.default.createElement(cA,t)),r}var fG=X(dG(),1),oxe=512,nxe="#18181b",sxe="#ffffff",lxe=6,uxe="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+oIBggpDsP9ZQ0AACAASURBVHja7L15tG3rVRf4m3ufc+6953bv3Zc83ktCBQgh9OkEAwgYQEKgpEBURB02Y6ChRALRSBqsGAgEIyKOoIJWY6FWjeGowbCaIVKWHVJhlF1ZqNiVFgUlMQl5zb339HvvNeuPtZu1vjW7b+1zX+65Z84x9jjn7LPWt9bXzjl/swOSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkh4IUQ5B0nkTf/9X7jBNnibC06DJbezuvxRXblzD3v4emsXjaBY3wHwFwLRdhctlyKsVSe3v4aVLxa/S/RRY+tR+zd1r2LiXhWevvqaiHePZq3duGmB2BsxO5Wu5GKv12LHzDKGvLLxvr93O7zdudS4m+RpvbM17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",cxe="600 %PXpx -apple-system, BlinkMacSystemFont, sans-serif",dxe=.175,fxe=-.04;async function hG(e,t={}){let a=t.size??oxe,r=t.color??nxe,i=t.backgroundColor??sxe,o=t.label||(t.appName?`${t.appName} by UP`:""),s=await new fG.default({backgroundOptions:{color:i,...t.backgroundGradient?{gradient:t.backgroundGradient}:{}},cornersDotOptions:{color:t.cornersDotColor??r,type:t.cornersDotType??"extra-rounded",...t.cornersDotGradient?{gradient:t.cornersDotGradient}:{}},cornersSquareOptions:{color:t.cornersSquareColor??r,type:t.cornersSquareType??"extra-rounded",...t.cornersSquareGradient?{gradient:t.cornersSquareGradient}:{}},data:e,dotsOptions:{color:r,type:t.dotsType??"extra-rounded",...t.dotsGradient?{gradient:t.dotsGradient}:{}},height:a,margin:t.margin??0,qrOptions:{errorCorrectionLevel:t.errorCorrectionLevel??"Q",mode:"Byte",typeNumber:0},shape:t.shape??"square",type:"canvas",width:a,...t.logo!==null?{image:t.logo??uxe,imageOptions:{hideBackgroundDots:t.hideBackgroundDots??!0,imageSize:t.logoSize??.3,margin:t.logoMargin??0}}:{}}).getRawData("png");if(!s||!(s instanceof Blob))throw new Error("Failed to generate QR code image");let l=await hxe(s),u=t.outerPadding??32,c=t.borderRadius??lxe,d=o?await pxe(l,o,a,i,r):l;return mxe(d,u,c,i)}var hxe=e=>new Promise((t,a)=>{let r=new FileReader;r.onloadend=()=>t(r.result),r.onerror=a,r.readAsDataURL(e)}),pG=e=>new Promise((t,a)=>{let r=new Image;r.onload=()=>t(r),r.onerror=a,r.src=e});async function pxe(e,t,a,r,i){let o=await pG(e),n=Math.round(a*dxe),s=Math.round(a*fxe),l=document.createElement("canvas");l.width=a,l.height=a+n;let u=l.getContext("2d");if(!u)return e;u.fillStyle=r,u.fillRect(0,0,l.width,l.height);let c=Math.round(n*.45);return u.fillStyle=i,u.font=cxe.replace("%PX",String(c)),u.textAlign="center",u.textBaseline="middle",u.fillText(t,l.width/2,n/2+s/2,l.width-s*2),u.drawImage(o,0,n,a,a),l.toDataURL("image/png")}function xxe(e,t,a,r,i,o){e.beginPath(),e.moveTo(t+o,a),e.arcTo(t+r,a,t+r,a+i,o),e.arcTo(t+r,a+i,t,a+i,o),e.arcTo(t,a+i,t,a,o),e.arcTo(t,a,t+r,a,o),e.closePath()}async function mxe(e,t,a,r){let i=await pG(e),o=i.width+t*2,n=i.height+t*2,s=Math.max(o,n),l=Math.min(Math.max(a,0),50)/100*s;if(!(l>0||o!==s||n!==s))return e;let c=document.createElement("canvas");c.width=s,c.height=s;let d=c.getContext("2d");if(!d)return e;l>0&&(xxe(d,0,0,s,s,l),d.clip()),d.fillStyle=r,d.fillRect(0,0,s,s);let f=Math.round((s-i.width)/2),h=Math.round((s-i.height)/2);return d.drawImage(i,f,h),c.toDataURL("image/png")}var xG=X(Zw(),1);async function mG(e){let t=await gxe(e),a=document.createElement("canvas");a.width=t.naturalWidth||t.width,a.height=t.naturalHeight||t.height;let r=a.getContext("2d");if(!r)throw new Error("No 2D canvas context available to decode the image.");r.drawImage(t,0,0,a.width,a.height);let i=r.getImageData(0,0,a.width,a.height);return(0,xG.default)(i.data,i.width,i.height,{inversionAttempts:"attemptBoth"})?.data??null}var gxe=e=>new Promise((t,a)=>{let r=new Image;r.onload=()=>t(r),r.onerror=a,r.src=e});var H_={createErrorResponse(e,t,a){return{error:{code:t,message:a},requestId:e.requestId,sdkVersion:e.sdkVersion,success:!1,type:"SDK_ROUTING_GETROUTE_RESPONSE"}},decodePolyline(e,t){let a=0,r=0,i=0,o=[],n=10**t;for(;a<e.length;){let s,l=0,u=0;do s=e.charCodeAt(a++)-63,u|=(s&31)<<l,l+=5;while(s>=32);let c=u&1?~(u>>1):u>>1;r+=c,l=0,u=0;do s=e.charCodeAt(a++)-63,u|=(s&31)<<l,l+=5;while(s>=32);let d=u&1?~(u>>1):u>>1;i+=d,o.push([i/n,r/n])}return o},async fetchOSRMRoute(e,t,a,r){let i=t.map(d=>`${d[0]},${d[1]}`).join(";"),n=`${r}/route/v1/${a==="walking"?"foot":a==="driving"?"car":"bike"}/${i}?overview=full&geometries=geojson&steps=true`,s=await fetch(n);if(!s.ok)throw new Error(`OSRM Error: ${s.statusText}`);let l=await s.json();if(l.code!=="Ok"||!l.routes||l.routes.length===0)throw new Error("NO_ROUTE");let u=l.routes[0],c=u.legs?.flatMap(d=>d.steps?.map(f=>({distance:f.distance,duration:f.duration,instruction:f.maneuver?.instruction||"Continue"})))||[];return{data:{distanceMeters:u.distance,durationSeconds:u.duration,geometry:u.geometry,steps:c},requestId:e.requestId,sdkVersion:e.sdkVersion,success:!0,type:"SDK_ROUTING_GETROUTE_RESPONSE"}},async fetchRoute(e,t){let{origin:a,destination:r,waypoints:i,profile:o,language:n}=e.payload;if(!this.isValidCoordinate(a)||!this.isValidCoordinate(r))return this.createErrorResponse(e,"INVALID_INPUT","Origin or destination coordinates are invalid.");if(i&&!i.every(this.isValidCoordinate))return this.createErrorResponse(e,"INVALID_INPUT","One or more waypoints are invalid.");let s=[a,...i||[],r];try{return t.backend==="osrm"?await this.fetchOSRMRoute(e,s,o,t.baseUrl):await this.fetchValhallaRoute(e,s,o,n,t.baseUrl)}catch(l){return l instanceof Error&&l.message.includes("NO_ROUTE")?this.createErrorResponse(e,"NO_ROUTE","No route could be found for the given points."):l instanceof TypeError?this.createErrorResponse(e,"NETWORK_ERROR","Failed to connect to the routing backend."):this.createErrorResponse(e,"BACKEND_ERROR",`Routing backend error: ${l instanceof Error?l.message:"Unknown error"}`)}},async fetchValhallaRoute(e,t,a,r,i){let n={costing:a==="driving"?"auto":a==="walking"?"pedestrian":"bicycle",directions_options:{language:r||"en-US"},locations:t.map(f=>({lat:f[1],lon:f[0]}))},s=await fetch(`${i}/route`,{body:JSON.stringify(n),headers:{"Content-Type":"application/json"},method:"POST"});if(!s.ok)throw new Error(`Valhalla Error: ${s.statusText}`);let l=await s.json();if(!l.trip||!l.trip.legs||l.trip.legs.length===0)throw new Error("NO_ROUTE");let u=l.trip,c=this.decodePolyline(u.legs[0].shape,6),d=u.legs.flatMap(f=>f.maneuvers?.map(h=>({distance:h.length*1e3,duration:h.time,instruction:h.instruction||"Continue"})))||[];return{data:{distanceMeters:u.summary.length*1e3,durationSeconds:u.summary.time,geometry:{coordinates:c,type:"LineString"},steps:d},requestId:e.requestId,sdkVersion:e.sdkVersion,success:!0,type:"SDK_ROUTING_GETROUTE_RESPONSE"}},isValidCoordinate(e){let[t,a]=e;return t>=-180&&t<=180&&a>=-90&&a<=90}};var hm="0.10.0";function gG(e){let t=Object.getOwnPropertyNames(e);for(let a of t){let r=e[a];r&&typeof r=="object"&&!Object.isFrozen(r)&&!(r instanceof bf)&&gG(r)}return Object.freeze(e)}var Ww=null,Kw=null,pm=class{maps=Object.freeze({render:qw});qrCode=Object.freeze({decode:t=>mG(t),generate:(t,a)=>hG(t,a)});bridge;storage=Object.freeze({get:t=>this.bridge.send("STORAGE_GET",{key:t}),getAll:()=>this.bridge.send("STORAGE_GET_ALL"),set:(t,a)=>this.bridge.send("STORAGE_SET",{key:t,value:a})});secureStore=Object.freeze({get:t=>this.bridge.send("SECURE_GET",{key:t}),set:(t,a)=>this.bridge.send("SECURE_SET",{key:t,value:a})});database=Object.freeze({getUserData:()=>this.bridge.send("DATABASE_GET_USER_DATA"),setUserData:t=>this.bridge.send("DATABASE_SET_USER_DATA",{data:t})});location=Object.freeze({getCurrentPosition:()=>this.bridge.send("GET_CURRENT_POSITION"),startStream:t=>this.bridge.send("START_LOCATION_STREAM",t),stopStream:()=>this.bridge.send("STOP_LOCATION_STREAM")});user=Object.freeze({getProfile:t=>this.bridge.send("GET_USER_PROFILE",{fields:t}),getProfilePicture:(t=>this.bridge.send("GET_PROFILE_PICTURE",{uuids:t||[]}))});permission=Object.freeze({request:((t,a)=>this.bridge.send("REQUEST_PERMISSION",{fields:a,type:t}))});media=Object.freeze({pickImage:()=>this.bridge.send("PICK_IMAGE",{}),saveImage:(t,a)=>this.bridge.send("SAVE_IMAGE",{base64:t,filename:a})});payment=Object.freeze({request:t=>this.bridge.send("PAYMENT_REQUEST",t)});activity=Object.freeze({start:(t,a,r)=>this.bridge.send("START_ACTIVITY",{id:t,status:r,title:a})});haptic=Object.freeze({trigger:t=>this.bridge.send("TRIGGER_HAPTIC",{style:t})});network=Object.freeze({request:async t=>this.bridge.send("NETWORK_REQUEST",t,t.timeoutMs)});navigation=Object.freeze({abort:()=>{this.bridge.handleNativeMessage({eventName:"SDK_NAVIGATION_ABORT",type:"EVENT"})},createJourney:t=>{this.bridge.handleNativeMessage({eventName:"SDK_NAVIGATION_CREATE",payload:{...t,mode:"preview"},type:"EVENT"})},start:()=>{this.bridge.handleNativeMessage({eventName:"SDK_NAVIGATION_START",type:"EVENT"})}});fidelity=Object.freeze({getFidelityBalance:()=>this.bridge.send("GET_FIDELITY_BALANCE"),getFidelityHistory:t=>this.bridge.send("GET_FIDELITY_HISTORY",t),showHistory:t=>this.bridge.send("SHOW_FIDELITY_HISTORY",t),spendFPoints:t=>this.bridge.send("SPEND_FPOINTS",{intentUuid:t})});ui=Object.freeze({exit:()=>this.bridge.send("EXIT"),setScrollConfig:t=>this.bridge.send("SET_SCROLL_CONFIG",t)});debug=Object.freeze({log:(...t)=>this.bridge.send("DEBUG_LOG",{message:t})});routing=Object.freeze({clearRoute:()=>{let t=crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).substring(2);return this.bridge.send("SDK_ROUTING_CLEARROUTE",{requestId:t,sdkVersion:hm})},drawRoute:t=>{let a=crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).substring(2);return this.bridge.send("SDK_ROUTING_DRAWROUTE",{payload:{routeData:t},requestId:a,sdkVersion:hm})},getRoute:async t=>{let a=crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).substring(2),r={payload:t,requestId:a,sdkVersion:hm,type:"SDK_ROUTING_GETROUTE"};if(Ww){let i=await H_.fetchRoute(r,Ww);if(i.success&&i.data)return i.data;throw new Error(i.error?.message||"Routing failed")}return this.bridge.send("SDK_ROUTING_GETROUTE",{payload:t,requestId:a,sdkVersion:hm})}});constructor(){this.bridge=new bf,this.bridge.on("UPDATE_CONTEXT",t=>{t?.env&&(Kw=t.env)}),this.initialize=this.initialize.bind(this),this.getEnv=this.getEnv.bind(this),this.achievement=this.achievement.bind(this),this.achievements=this.achievements.bind(this),this.on=this.on.bind(this),this.off=this.off.bind(this)}config(t){t.routingBackend&&(Ww=t.routingBackend)}updateContext(t){return this.bridge.send("UPDATE_CONTEXT",t)}async initialize(t){let a=await this.bridge.send("INITIALIZE",t);return a?.env&&(Kw=a.env),a}getEnv(){return Kw}achievement(t){return this.bridge.send("GET_ACHIEVEMENT",{slug:t})}achievements(){return this.bridge.send("GET_ACHIEVEMENTS")}on(t,a){return this.bridge.on(t,a)}off(t,a){this.bridge.off(t,a)}},xt=gG(new pm);var Pt=X(de(),1),Oe=X(ke(),1),yG=[{completed:!0,description:"Complete your first navigation journey.",playerActionCount:1,priority:1,slug:"first-journey",title:"First Steps",totalActionCount:1,pointsReward:10},{completed:!1,description:"Discover 5 points of interest around Annecy.",playerActionCount:3,priority:2,slug:"explore-5-pois",title:"Explorer",totalActionCount:5,pointsReward:15},{completed:!1,description:"Scan 10 QR codes at partner venues.",playerActionCount:4,priority:3,slug:"scan-10-qrcodes",title:"Code Breaker",totalActionCount:10,pointsReward:20}],vxe=["variant03","variant07","variant08","variant09","variant10","variant11","variant12","variant13","variant14","variant15","variant16","variant21","variant22","variant23","variant25","variant26","variant27","variant28","variant29","variant30"].join(","),_xe=["variant03","variant04","variant05"].join(",");function bxe(e){let t=5381;for(let a=0;a<e.length;a++)t=t*33^e.charCodeAt(a);return(t>>>0).toString(36)}function vG(e){return`https://api.dicebear.com/10.x/notionists-neutral/png?seed=${bxe(e)}&mouth=${vxe}&eyes=${_xe}&glassesProbability=50`}function Cxe(e){try{let r=(e.startsWith("Bearer ")?e.slice(7):e).split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),i=decodeURIComponent(atob(r).split("").map(o=>`%${`00${o.charCodeAt(0).toString(16)}`.slice(-2)}`).join(""));return JSON.parse(i)}catch{return null}}function _G(e){let t=e?Cxe(e):null,a=t?.sub||"mock-user-42",r=t?.name||t?.username||"Smart Caveman",i=t?.username||"smart_caveman",[o,...n]=r.split(" ");return{admin:!0,countryCode:"FR",createdAt:new Date().toISOString(),email:"caveman@up.app",firstName:o||"Smart",fullName:r,lastName:n.join(" ")||"Caveman",localNumber:"0600000000",username:i,uuid:a}}var Exe=(e,t)=>{let a=e[1]*Math.PI/180,r=t[1]*Math.PI/180,i=(t[0]-e[0])*Math.PI/180,o=Math.sin(i)*Math.cos(r),n=Math.cos(a)*Math.sin(r)-Math.sin(a)*Math.cos(r)*Math.cos(i);return(Math.atan2(o,n)*180/Math.PI+360)%360},Xw=({appId:e,initialLocation:t=[6.1258,45.9058],isMoving:a=!1,simulationPath:r,simulationSpeed:i=1,mockJWTToken:o,children:n})=>{let[s,l]=(0,Pt.useState)(a),[u,c]=(0,Pt.useState)(t),[d,f]=(0,Pt.useState)(0),[h,p]=(0,Pt.useState)(i),[x,v]=(0,Pt.useState)(!1),[m,g]=(0,Pt.useState)(!0),[y,_]=(0,Pt.useState)(0),[b,A]=(0,Pt.useState)("m"),[w,B]=(0,Pt.useState)(!1),L=(0,Pt.useRef)(null),P=(0,Pt.useRef)(0),R=(0,Pt.useRef)(null),k=(0,Pt.useRef)({autoMove:s,heading:d,location:u,mockJWTToken:o,pushLocationUpdate:()=>{},setHeading:f,setLocation:c,simulationPath:r,speedMultiplier:h}),S=(0,Pt.useCallback)((F,D)=>{let M=k.current,j={accelerometer:null,heading:{accuracy:3,magneticHeading:D,trueHeading:D},location:{coords:{accuracy:10,altitude:0,altitudeAccuracy:null,heading:D,latitude:F[1],longitude:F[0],speed:M.autoMove?1.5*M.speedMultiplier:0},timestamp:Date.now()},timestamp:Date.now()};window.__MiniAppBridge?.onNativeMessage({eventName:"LOCATION_STREAM_UPDATE",payload:j,type:"EVENT"})},[]),T=(0,Pt.useCallback)(()=>{let F=k.current;S(F.location,F.heading)},[S]),C=(0,Pt.useCallback)(F=>{c(F),B(!1),S(F,k.current.heading)},[S]);(0,Pt.useEffect)(()=>{k.current={autoMove:s,heading:d,location:u,mockJWTToken:o,pushLocationUpdate:T,setHeading:f,setLocation:c,simulationPath:r,speedMultiplier:h}},[u,d,s,T,r,h,o]),(0,Pt.useEffect)(()=>{l(a)},[a]),(0,Pt.useEffect)(()=>{p(i)},[i]),(0,Pt.useEffect)(()=>{r&&r.length>0&&(P.current=0,c(r[0]))},[r]),(0,Pt.useEffect)(()=>{L.current&&R.current&&xt.bridge.send("START_LOCATION_STREAM",R.current)},[h]),(0,Pt.useEffect)(()=>{let F=xt.bridge,D=F.send.bind(F),M=()=>{L.current&&(clearInterval(L.current),L.current=null),R.current=null},j=V=>{M(),R.current=V||{};let q=V?.interval||500,U=Math.max(10,q/k.current.speedMultiplier);L.current=setInterval(()=>{let W=k.current;if(W.autoMove)if(W.simulationPath&&W.simulationPath.length>0)if(P.current<W.simulationPath.length-1){let Q=W.simulationPath[P.current],le=W.simulationPath[P.current+1];P.current+=1;let ie=Exe(Q,le);W.setHeading(ie),W.setLocation(le)}else W.setLocation(W.simulationPath[W.simulationPath.length-1]);else W.setLocation(Q=>[Q[0]+(Math.random()-.5)*1e-4,Q[1]+(Math.random()-.5)*1e-4]);W.pushLocationUpdate()},U)},z=async V=>{let{url:q,method:U="GET",headers:W={},body:Q}=V,le=k.current,ie=new Headers(W);le.mockJWTToken&&ie.set("Authorization",`Bearer ${le.mockJWTToken.replace("Bearer ","")}`),Q&&typeof Q=="object"&&!ie.has("Content-Type")&&ie.set("Content-Type","application/json");try{let O=await fetch(q,{body:Q?typeof Q=="string"?Q:JSON.stringify(Q):void 0,headers:ie,method:U}),H=O.headers.get("content-type"),N;H?.includes("application/json")?N=await O.json():N=await O.text();let Z={};return O.headers.forEach((J,fe)=>{Z[fe]=J}),{data:N,headers:Z,status:O.status,statusText:O.statusText}}catch(O){throw{error:O.message||"Network request failed",status:0}}};return F.send=async(V,q)=>{if(V==="INITIALIZE")return Promise.resolve({appId:e,context:{theme:"dark"},description:"Mocked for Dev",env:{},insets:{bottom:0,left:0,right:0,top:0},name:"Vite Dev (Mock)",params:{},profile:_G(k.current.mockJWTToken),success:!0,userData:{},uuid:e||"mock-app-id",version:"1.0.0"});if(V==="GET_CURRENT_POSITION"){let U=k.current;return Promise.resolve({coords:{accuracy:10,altitude:0,altitudeAccuracy:0,heading:U.heading,latitude:U.location[1],longitude:U.location[0],speed:U.autoMove?1.5*U.speedMultiplier:0},timestamp:Date.now()})}if(V==="START_LOCATION_STREAM")return j(q),Promise.resolve();if(V==="STOP_LOCATION_STREAM")return M(),Promise.resolve();if(V==="NETWORK_REQUEST")return z(q);if(V==="STORAGE_GET"||V==="SECURE_GET")return Promise.resolve(localStorage.getItem(`mock_sdk_${q.key}`));if(V==="STORAGE_SET"||V==="SECURE_SET")return localStorage.setItem(`mock_sdk_${q.key}`,q.value),Promise.resolve();if(V==="GET_USER_PROFILE")return Promise.resolve(_G(k.current.mockJWTToken));if(V==="GET_PROFILE_PICTURE"){let U=q?.uuids||[];if(U.length===0)return Promise.resolve(vG("dummy"));let W={};for(let Q of U)W[Q]=vG(Q);return Promise.resolve(W)}if(V==="GET_FIDELITY_BALANCE")return Promise.resolve({balance:1337,currency:"FPoints"});if(V==="GET_ACHIEVEMENTS")return Promise.resolve(yG);if(V==="GET_ACHIEVEMENT"){let U=q?.slug;return Promise.resolve(yG.find(W=>W.slug===U)??{completed:!1,description:"Mocked achievement (no native shell attached).",playerActionCount:0,priority:1,slug:U||"unknown-achievement",title:U||"Unknown Achievement",totalActionCount:1,pointsReward:0})}return V==="PAYMENT_REQUEST"?Promise.resolve({success:!0,transactionId:`tx_${Math.random().toString(36).slice(2)}`}):V==="TRIGGER_HAPTIC"||V==="EXIT"||V==="UPDATE_CONTEXT"?Promise.resolve({success:!0}):D(V,q)},v(!0),()=>{M(),F.send=D}},[e]);let E=b==="km"?y*1e3:y,I=(0,Pt.useMemo)(()=>({isPlacingLocation:w,placeLocation:C,radiusMeters:E}),[w,C,E]);return x?(0,Oe.jsxs)("div",{className:"relative w-full h-full",children:[(0,Oe.jsx)("div",{className:"w-full h-full",children:(0,Oe.jsx)(Hc.Provider,{value:I,children:n})}),m?(0,Oe.jsx)(kt,{className:"fixed bottom-4 right-4 w-8 h-8 rounded-full bg-slate-900/60 backdrop-blur-sm border border-slate-700/50 flex items-center justify-center text-slate-400 hover:text-blue-400 hover:bg-slate-900/80 z-[9999] transition-all shadow-lg group p-0!",onClick:()=>g(!1),title:"Open Simulation Controls",type:"button",variant:"ghost",children:(0,Oe.jsxs)("svg",{className:"group-hover:scale-110 transition-transform",fill:"none",height:"14",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",width:"14",xmlns:"http://www.w3.org/2000/svg",children:[(0,Oe.jsx)("path",{d:"M21 4H3"}),(0,Oe.jsx)("path",{d:"M10 8H3"}),(0,Oe.jsx)("path",{d:"M21 12H3"}),(0,Oe.jsx)("path",{d:"M10 16H3"}),(0,Oe.jsx)("path",{d:"M21 20H3"}),(0,Oe.jsx)("circle",{cx:"14",cy:"8",r:"2"}),(0,Oe.jsx)("circle",{cx:"14",cy:"16",r:"2"})]})}):(0,Oe.jsxs)("div",{className:"fixed bottom-4 right-4 bg-slate-900 text-slate-300 font-mono text-xs rounded-xl shadow-2xl border border-slate-700 pointer-events-auto flex flex-col w-80 overflow-hidden animate-in slide-in-from-right duration-300",style:{zIndex:9998},children:[(0,Oe.jsxs)("div",{className:"flex justify-between items-center p-3 border-b border-slate-800 cursor-pointer bg-slate-800/50 hover:bg-slate-800 transition-colors",onClick:()=>g(!0),children:[(0,Oe.jsxs)("span",{className:"font-bold text-slate-100 flex items-center gap-2",children:[(0,Oe.jsx)("span",{className:"text-lg",children:"\u{1F6E0}\uFE0F"})," Simulation Controls"]}),(0,Oe.jsx)(kt,{className:"text-slate-500 hover:text-white p-0 h-auto hover:bg-transparent cursor-pointer",type:"button",variant:"ghost",children:"\u25BC"})]}),(0,Oe.jsxs)("div",{className:"p-4 flex flex-col gap-3",children:[(0,Oe.jsxs)("div",{className:"flex justify-between items-center",children:[(0,Oe.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,Oe.jsx)("input",{checked:s,className:"accent-blue-500 w-4 h-4",onChange:F=>l(F.target.checked),type:"checkbox"}),(0,Oe.jsxs)("span",{className:"text-slate-200 font-bold",children:["Auto-Move ",r?"(Path)":"(Random)"]})]}),(0,Oe.jsxs)("div",{className:"flex items-center gap-2",children:[(0,Oe.jsx)("span",{className:"text-[10px] text-slate-500",children:"Speed:"}),(0,Oe.jsx)("select",{className:"bg-slate-800 border border-slate-700 rounded px-1 py-0.5 text-white focus:outline-none focus:border-blue-500 text-[10px]",onChange:F=>p(Number(F.target.value)),value:h,children:[1,2,5,10,50,100,250].map(F=>(0,Oe.jsxs)("option",{value:F,children:[F,"x"]},F))})]})]}),(0,Oe.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,Oe.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,Oe.jsx)("span",{className:"text-[10px] text-slate-500 text-left",children:"Lng"}),(0,Oe.jsx)("input",{className:"bg-slate-800 border border-slate-700 rounded px-2 py-1 text-white focus:outline-none focus:border-blue-500",onChange:F=>{let D=parseFloat(F.target.value)||0;c([D,u[1]]),T()},step:"0.001",type:"number",value:u[0]})]}),(0,Oe.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,Oe.jsx)("span",{className:"text-[10px] text-slate-500 text-left",children:"Lat"}),(0,Oe.jsx)("input",{className:"bg-slate-800 border border-slate-700 rounded px-2 py-1 text-white focus:outline-none focus:border-blue-500",onChange:F=>{let D=parseFloat(F.target.value)||0;c([u[0],D]),T()},step:"0.001",type:"number",value:u[1]})]}),(0,Oe.jsxs)("div",{className:"flex flex-col gap-1 col-span-2",children:[(0,Oe.jsx)("span",{className:"text-[10px] text-slate-500",children:"Heading (Degrees)"}),(0,Oe.jsx)("input",{className:"w-full accent-blue-500",max:"360",min:"0",onChange:F=>{f(parseInt(F.target.value,10)),T()},type:"range",value:d}),(0,Oe.jsxs)("div",{className:"text-right text-slate-400",children:[d,"\xB0"]})]})]}),(0,Oe.jsx)(kt,{className:`w-full rounded px-2 py-1.5 text-[10px] font-bold border cursor-pointer ${w?"bg-blue-500/20 border-blue-500 text-blue-300":"bg-slate-800 border-slate-700 text-slate-200 hover:bg-slate-700"}`,onClick:()=>B(F=>!F),type:"button",variant:"ghost",children:w?"\u{1F4CD} Click the map to drop location\u2026":"\u{1F4CD} Drop location on map"}),(0,Oe.jsxs)("div",{className:"flex flex-col gap-1 border-t border-slate-800 pt-3",children:[(0,Oe.jsxs)("div",{className:"flex justify-between items-center",children:[(0,Oe.jsx)("span",{className:"text-[10px] text-slate-500",children:"Scan Radius"}),(0,Oe.jsxs)("div",{className:"flex items-center gap-1",children:[(0,Oe.jsx)("input",{className:"w-16 bg-slate-800 border border-slate-700 rounded px-1.5 py-0.5 text-white text-[10px] focus:outline-none focus:border-blue-500",min:"0",onChange:F=>_(Math.max(0,Number(F.target.value)||0)),type:"number",value:y}),(0,Oe.jsxs)("select",{className:"bg-slate-800 border border-slate-700 rounded px-1 py-0.5 text-white text-[10px] focus:outline-none focus:border-blue-500",onChange:F=>A(F.target.value),value:b,children:[(0,Oe.jsx)("option",{value:"m",children:"m"}),(0,Oe.jsx)("option",{value:"km",children:"km"})]})]})]}),(0,Oe.jsx)("input",{className:"w-full accent-blue-500",max:b==="km"?10:500,min:"0",onChange:F=>_(Number(F.target.value)),step:b==="km"?.1:5,type:"range",value:y}),(0,Oe.jsx)("div",{className:"text-right text-slate-400",children:y===0?"hidden":`${y}${b} radius around user`})]})]})]})]}):null};var Ln=X(de(),1),Tt=X(ke(),1),Yw=({isOpen:e=!1,onClose:t})=>{let[a,r]=(0,Ln.useState)(e),[i,o]=(0,Ln.useState)([]),n=(0,Ln.useRef)(null);(0,Ln.useEffect)(()=>{r(e)},[e]);let s=()=>o([]),l=(0,Ln.useCallback)((u,c)=>{if(u.includes("LOCATION_STREAM_UPDATE"))return;let d={content:typeof c=="string"?c:JSON.stringify(c,null,2),id:Math.random().toString(36).slice(2),label:u,time:new Date().toLocaleTimeString()};o(f=>[d,...f].slice(0,100))},[]);return(0,Ln.useEffect)(()=>{if(typeof window>"u")return;let u=xt.bridge,c=u.send.bind(u);u.send=async(f,h)=>(l(`OUT: ${f}`,h),c(f,h));let d=u.handleNativeMessage.bind(u);return u.handleNativeMessage=f=>{let h=f.eventName||f.event||f.type||"MSG";typeof h=="string"&&(l(`IN: ${h}`,f.payload||f.value||f),d(f))},()=>{u.send=c,u.handleNativeMessage=d}},[l]),a?(0,Tt.jsxs)("div",{className:"fixed inset-x-0 bottom-0 w-full bg-[#0a080f] border-t border-slate-800 z-[9998] p-4 shadow-2xl flex flex-col animate-in slide-in-from-bottom duration-300",children:[(0,Tt.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,Tt.jsxs)("span",{className:"text-[10px] font-bold uppercase tracking-widest text-slate-400 flex items-center gap-2",children:[(0,Tt.jsx)("span",{className:"w-2 h-2 rounded-full bg-emerald-500 animate-pulse"}),"UP SDK Debug Console"]}),(0,Tt.jsxs)("div",{className:"flex gap-4",children:[(0,Tt.jsx)(kt,{className:"text-[10px] text-slate-500 font-bold uppercase hover:text-slate-300 hover:bg-transparent transition-colors p-0 h-auto cursor-pointer",onClick:s,type:"button",variant:"ghost",children:"Clear"}),(0,Tt.jsx)(kt,{className:"text-[10px] text-pink-500 font-bold uppercase hover:text-pink-400 hover:bg-transparent transition-colors p-0 h-auto cursor-pointer",onClick:()=>{r(!1),t&&t()},type:"button",variant:"ghost",children:"Close"})]})]}),(0,Tt.jsx)("div",{className:"bg-black/80 rounded-xl p-3 font-mono text-[10px] text-emerald-400 min-h-[120px] max-h-[240px] overflow-y-auto border border-slate-900 custom-scrollbar",ref:n,children:i.length===0?(0,Tt.jsx)("div",{className:"text-slate-600 italic text-center py-8",children:"No logs yet. Interacting with the SDK will show events here."}):i.map(u=>(0,Tt.jsxs)("div",{className:"mb-3 pb-3 border-b border-slate-900/50 last:border-0 last:mb-0 last:pb-0",children:[(0,Tt.jsxs)("div",{className:"flex gap-2 text-slate-500 mb-1 items-center",children:[(0,Tt.jsx)("span",{className:"text-[8px]",children:u.time}),(0,Tt.jsx)("span",{className:"font-bold text-white uppercase text-[8px] bg-slate-800 px-1.5 py-0.5 rounded leading-none",children:u.label})]}),(0,Tt.jsx)("pre",{className:"whitespace-pre-wrap break-all opacity-90",children:u.content})]},u.id))})]}):(0,Tt.jsx)(kt,{className:"fixed bottom-4 left-4 w-8 h-8 rounded-full bg-slate-900/60 backdrop-blur-sm border border-slate-700/50 flex items-center justify-center text-slate-400 hover:text-emerald-400 hover:bg-slate-900/80 transition-all z-[9998] shadow-lg group p-0!",onClick:()=>r(!0),title:"Open Debug Console",type:"button",variant:"ghost",children:(0,Tt.jsxs)("svg",{className:"group-hover:scale-110 transition-transform",fill:"none",height:"14",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",width:"14",xmlns:"http://www.w3.org/2000/svg",children:[(0,Tt.jsx)("path",{d:"m8 2 1.88 1.88"}),(0,Tt.jsx)("path",{d:"M14.12 3.88 16 2"}),(0,Tt.jsx)("path",{d:"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"}),(0,Tt.jsx)("path",{d:"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"}),(0,Tt.jsx)("path",{d:"M12 20v-9"}),(0,Tt.jsx)("path",{d:"M6.53 9C4.6 8.8 3 7.1 3 5"}),(0,Tt.jsx)("path",{d:"M6 13H2"}),(0,Tt.jsx)("path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4"}),(0,Tt.jsx)("path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4"}),(0,Tt.jsx)("path",{d:"M22 13h-4"}),(0,Tt.jsx)("path",{d:"M17.2 17c2.1.1 3.8 1.9 3.8 4"})]})})};var ka=X(de(),1),Qo=X(ke(),1),Axe=64,wxe=96,Dxe=.5,bG=8,Bxe=.95,CG=.02;function Sxe({progress:e,isRefreshing:t}){return(0,Qo.jsxs)("div",{style:{alignItems:"center",background:"rgba(24, 24, 27, 0.9)",border:"1px solid rgba(255, 255, 255, 0.1)",borderRadius:9999,boxShadow:"0 4px 16px -4px rgba(0, 0, 0, 0.5)",display:"flex",height:28,justifyContent:"center",width:28},children:[(0,Qo.jsxs)("svg",{height:14,style:{animation:t?"up-sdk-ptr-spin 0.8s linear infinite":void 0,color:t?"#a78bfa":"#a1a1aa",transform:t?void 0:`rotate(${e*360}deg)`},viewBox:"0 0 24 24",width:14,children:[(0,Qo.jsx)("title",{children:"Refreshing"}),(0,Qo.jsx)("path",{d:"M21 12a9 9 0 1 1-2.64-6.36",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeWidth:2.5})]}),(0,Qo.jsx)("style",{children:"@keyframes up-sdk-ptr-spin { to { transform: rotate(360deg); } }"})]})}var Fxe=({onRefresh:e,children:t,className:a="",disabled:r=!1,pullThreshold:i=Axe,maxPull:o=wxe,renderIndicator:n})=>{let s=(0,ka.useRef)(null),l=(0,ka.useRef)(null),u=(0,ka.useRef)(0),c=(0,ka.useRef)(0),d=(0,ka.useRef)(0),f=(0,ka.useRef)(null),h=(0,ka.useRef)(!1),p=(0,ka.useRef)(0),x=(0,ka.useRef)(null),[v,m]=(0,ka.useState)(0),[g,y]=(0,ka.useState)(!1),[_,b]=(0,ka.useState)(!1),A=(0,ka.useRef)(r);A.current=r;let w=(0,ka.useRef)(e);w.current=e;let B=(0,ka.useRef)(i);B.current=i;let L=(0,ka.useRef)(o);L.current=o,(0,ka.useEffect)(()=>{let S=s.current;if(!S||typeof window>"u")return;let T=()=>{let E=S.scrollHeight<=S.clientHeight,I=S.clientHeight>window.innerHeight;E&&I&&console.warn("[PullToRefresh] This container is taller than the viewport but has no internal scroll (scrollHeight <= clientHeight). Because this component disables native touch scrolling entirely (touch-action: none), scrolling is now completely broken here. This almost always means either: (1) an ancestor's flex-1 item is missing `min-h-0` (a flex item defaults to min-height:auto and refuses to shrink below its content size), or (2) an ancestor uses `min-h-screen`/`min-h-full` (a floor, not a ceiling) instead of `h-full`/`h-screen`/`h-dvh`. See the vault skill js/pull-to-refresh-scroll-chain.md for the fix pattern.")},C=requestAnimationFrame(T);return window.addEventListener("resize",T),()=>{cancelAnimationFrame(C),window.removeEventListener("resize",T)}},[]),(0,ka.useEffect)(()=>{let S=s.current;if(!S)return;let T=z=>{p.current=z,m(z)},C=()=>{x.current!==null&&(cancelAnimationFrame(x.current),x.current=null)},E=()=>{f.current=null,l.current=null,h.current=!1,b(!1),T(0)},I=()=>{if(d.current*=Bxe,Math.abs(d.current)<CG){x.current=null;return}if(S.scrollTop-=d.current*16,S.scrollTop<=0||S.scrollTop>=S.scrollHeight-S.clientHeight){x.current=null;return}x.current=requestAnimationFrame(I)},F=z=>{if(!A.current&&f.current===null){C(),f.current=z.pointerId,l.current=z.clientY,u.current=z.clientY,c.current=performance.now(),d.current=0,h.current=!1,b(!0);try{S.setPointerCapture(z.pointerId)}catch{}}},D=z=>{if(l.current===null||z.pointerId!==f.current)return;let V=z.clientY-l.current;if(!h.current&&Math.abs(V)<bG)return;let q=performance.now(),U=z.clientY-u.current,W=Math.max(q-c.current,1);if(d.current=U/W,u.current=z.clientY,c.current=q,z.cancelable&&z.preventDefault(),S.scrollTop<=0&&V>0){h.current=!0,T(Math.min(Math.max(V-bG,0)*Dxe,L.current));return}h.current&&(h.current=!1,T(0)),S.scrollTop-=U},M=z=>{if(l.current===null||z.pointerId!==f.current)return;let V=h.current;if(f.current=null,l.current=null,h.current=!1,b(!1),!V){Math.abs(d.current)>CG&&(C(),x.current=requestAnimationFrame(I));return}if(!(p.current>=B.current)){T(0);return}y(!0),T(B.current),Promise.resolve(w.current()).catch(U=>{console.error("Pull-to-refresh failed:",U)}).finally(()=>{y(!1),T(0)})},j=z=>{z.pointerId===f.current&&(C(),E())};return S.addEventListener("pointerdown",F),S.addEventListener("pointermove",D,{passive:!1}),S.addEventListener("pointerup",M),S.addEventListener("pointercancel",j),()=>{C(),S.removeEventListener("pointerdown",F),S.removeEventListener("pointermove",D),S.removeEventListener("pointerup",M),S.removeEventListener("pointercancel",j)}},[]);let P=g?i:v,R=Math.min(P/i,1),k=v===0&&!g&&!_;return(0,Qo.jsxs)("div",{className:`up-sdk-pull-to-refresh ${a}`,ref:s,style:{overflowY:"auto",overscrollBehavior:"none",touchAction:"none"},children:[(0,Qo.jsx)("style",{children:".up-sdk-pull-to-refresh::-webkit-scrollbar { display: none; } .up-sdk-pull-to-refresh { scrollbar-width: none; -ms-overflow-style: none; }"}),(0,Qo.jsx)("div",{style:{alignItems:"center",display:"flex",height:P,justifyContent:"center",overflow:"hidden",transition:k?"height 0.2s ease-out":"none",userSelect:"none",width:"100%"},children:n?n({isRefreshing:g,progress:R}):(0,Qo.jsx)(Sxe,{isRefreshing:g,progress:R})}),t]})};var EG=X(Zw(),1),In=X(de(),1),nf=X(ke(),1);function Txe({onScan:e,onError:t,className:a=""}){let r=(0,In.useRef)(null),i=(0,In.useRef)(null),o=(0,In.useRef)(null),n=(0,In.useRef)(null),s=(0,In.useRef)(!1),[l,u]=(0,In.useState)(!1);return(0,In.useEffect)(()=>{let c=!1;s.current=!1;let d=()=>{if(n.current&&(cancelAnimationFrame(n.current),n.current=null),o.current){for(let p of o.current.getTracks())p.stop();o.current=null}},f=()=>{if(c||s.current)return;let p=r.current,x=i.current;if(!p||p.readyState!==p.HAVE_ENOUGH_DATA||!x){n.current=requestAnimationFrame(f);return}let v=x.getContext("2d");if(!v){n.current=requestAnimationFrame(f);return}x.height=p.videoHeight,x.width=p.videoWidth,v.drawImage(p,0,0,x.width,x.height);let m=v.getImageData(0,0,x.width,x.height),g=(0,EG.default)(m.data,m.width,m.height,{inversionAttempts:"dontInvert"});if(g?.data){s.current=!0,d(),e(g.data);return}n.current=requestAnimationFrame(f)};return(async()=>{try{if(!await xt.permission.request("camera")){t?.("Permission cam\xE9ra refus\xE9e par l'utilisateur.");return}if(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia){t?.("L'acc\xE8s \xE0 la cam\xE9ra requiert une connexion s\xE9curis\xE9e (HTTPS) ou n'est pas support\xE9 par ce navigateur.");return}let x=await navigator.mediaDevices.getUserMedia({video:{facingMode:"environment"}});if(c){for(let m of x.getTracks())m.stop();return}o.current=x;let v=r.current;if(!v||(v.srcObject=x,v.setAttribute("playsinline","true"),await v.play(),c))return;u(!0),n.current=requestAnimationFrame(f)}catch(p){console.error("QRScanner: camera access failed:",p),t?.("Acc\xE8s cam\xE9ra refus\xE9 ou non disponible sur cet appareil.")}})(),()=>{c=!0,d()}},[]),(0,nf.jsxs)("div",{className:a,style:{alignItems:"center",display:"flex",justifyContent:"center",overflow:"hidden",position:"relative"},children:[(0,nf.jsx)("video",{playsInline:!0,ref:r,style:{height:"100%",objectFit:"cover",width:"100%"}}),(0,nf.jsx)("canvas",{ref:i,style:{display:"none"}}),l&&(0,nf.jsx)("div",{style:{border:"2px dashed rgba(255,255,255,0.8)",borderRadius:12,bottom:"10%",left:"10%",pointerEvents:"none",position:"absolute",right:"10%",top:"10%"}})]})}var sf=X(de(),1);var ks=X(ke(),1),Qw=(0,sf.createContext)({isMocked:!1}),Lxe=()=>(0,sf.useContext)(Qw).isMocked,Ixe=({children:e,debug:t=!1,...a})=>{let r=typeof window<"u"&&!(window.__UP_REACT_NATIVE_APP__===!0||window.ReactNativeWebView),i=(0,sf.useMemo)(()=>({isMocked:r}),[r]),o=(0,ks.jsxs)(ks.Fragment,{children:[e,(t||r)&&(0,ks.jsx)(Yw,{})]});return r?(0,ks.jsx)(Qw.Provider,{value:i,children:(0,ks.jsx)(Xw,{...a,children:o})}):(0,ks.jsx)(Qw.Provider,{value:i,children:o})};var Br=X(de(),1),Z_=X(ke(),1),AG=8,Mxe=40,Pxe=.4,kxe=.35,Rxe="cubic-bezier(0.16, 1, 0.3, 1)",zxe=300,Oxe=15,Nxe=200,Vxe=.5,Uxe=2,jxe=1,qxe="[data-swipe-scroll-root]",wG=`transform ${zxe}ms ${Rxe}`,Gxe=({items:e,activeId:t,onActiveChange:a,peek:r=1.1,gap:i=10,className:o,itemClassName:n,axisPriority:s="horizontal",verticalDrag:l,overscan:u=Uxe,visibleOverscan:c=jxe})=>{let d=(0,Br.useRef)(null),[f,h]=(0,Br.useState)(0),[p,x]=(0,Br.useState)(0),[v,m]=(0,Br.useState)(0),[g,y]=(0,Br.useState)(!1),[_,b]=(0,Br.useState)(!1),A=(0,Br.useRef)(null),[w,B]=(0,Br.useState)(()=>Math.max(0,e.findIndex(V=>V.id===t))),L=(0,Br.useRef)(t),[P,R]=(0,Br.useState)(!0);(0,Br.useEffect)(()=>{let V=setTimeout(()=>{R(!1)},1e3);return()=>clearTimeout(V)},[]),(0,Br.useEffect)(()=>{if(t!==L.current){let V=e.findIndex(q=>q.id===t);V!==-1&&B(V),L.current=t}},[t,e]);let k=Math.min(Math.max(w,0),Math.max(e.length-1,0));(0,Br.useLayoutEffect)(()=>{let V=d.current;if(!V)return;let q=()=>h(V.clientWidth);q();let U=new ResizeObserver(q);return U.observe(V),()=>U.disconnect()},[]);let S=f/r,T=S+i,E=(f-S)/2-k*T+p,I=V=>{B(V);let q=e[V];q&&q.id!==t&&a(q.id)},F=V=>{let q=V.targetTouches[0];if(!q)return;let U=!1;if(l){let W=l.scrollRootSelector??qxe,Q=V.target.closest(W);U=!Q||Q.scrollTop<=2}A.current={lastT:V.timeStamp,lastX:q.clientX,lastY:q.clientY,lockedAxis:null,startX:q.clientX,startY:q.clientY,velocityX:0,velocityY:0,verticalAllowed:U}},D=V=>{let q=V.targetTouches[0],U=A.current;if(!q||!U)return;let W=q.clientX-U.startX,Q=q.clientY-U.startY;if(!U.lockedAxis){if(Math.abs(W)<AG&&Math.abs(Q)<AG)return;Math.abs(W)>Math.abs(Q)||Math.abs(W)===Math.abs(Q)&&s==="horizontal"?U.lockedAxis="x":l&&U.verticalAllowed?U.lockedAxis="y":U.lockedAxis="passthrough"}if(U.lockedAxis==="passthrough")return;let le=V.timeStamp-U.lastT;if(le>0&&(U.velocityX=(q.clientX-U.lastX)/le,U.velocityY=(q.clientY-U.lastY)/le),U.lastX=q.clientX,U.lastY=q.clientY,U.lastT=V.timeStamp,U.lockedAxis==="x"){g||y(!0);let ie=k===0&&W>0,O=k===e.length-1&&W<0;x(ie||O?W*kxe:W)}else if(l){let ie=l.direction??"down",O=Q;ie==="down"&&(O=Math.max(0,Q)),ie==="up"&&(O=Math.min(0,Q));let H=Math.sign(O)*Math.max(0,Math.abs(O)-Oxe);_||b(!0),m(H),l.onDragChange?.(H,!0)}V.cancelable&&V.preventDefault()},M=()=>{let V=A.current;if(A.current=null,y(!1),b(!1),!V){x(0),m(0);return}if(V.lockedAxis==="x"){if(Math.abs(p)>Mxe||Math.abs(V.velocityX)>Pxe){let U=p<0?Math.min(e.length-1,k+1):Math.max(0,k-1);I(U)}}else if(V.lockedAxis==="y"){let q=l?.dismissThreshold??Nxe,U=l?.dismissVelocity??Vxe,W=l?.direction??"down",Q=W==="down"?Math.max(0,V.velocityY):W==="up"?Math.max(0,-V.velocityY):Math.abs(V.velocityY);(Math.abs(v)>q||Q>U)&&l?.onDismiss?.()}x(0),m(0),l?.onDragChange?.(0,!1)},j=Math.max(0,k-u),z=Math.min(e.length-1,k+u);return(0,Z_.jsx)("div",{className:`relative overflow-hidden touch-pan-y ${o??""}`,onTouchCancel:M,onTouchEnd:M,onTouchMove:D,onTouchStart:F,ref:d,children:(0,Z_.jsx)("div",{className:"relative h-full",style:{transform:`translateX(${E}px)`,transition:g||P?"none":wG,willChange:"transform"},children:e.map((V,q)=>{if(q<j||q>z)return null;let U=q===k,W=U?v:0,Q=Math.abs(q-k),le=Q<=c;return(0,Z_.jsx)("div",{className:`absolute top-0 left-0 h-full shrink-0 ${n??""} ${V.className??""}`,style:{opacity:le?1:0,pointerEvents:le?void 0:"none",transform:`translateX(${q*T}px) translateY(${W}px)`,transition:U&&_||P?"none":wG,width:`${S}px`,zIndex:u+1-Q},children:V.content},V.id)})})})};var Jw=X(de(),1),Hxe=10,Zxe=500,Wxe=e=>{let t=(0,Jw.useRef)(null),a=(0,Jw.useRef)(!1);return{onClick:()=>{if(a.current){a.current=!1;return}e()},onTouchEnd:n=>{let s=t.current,l=n.changedTouches[0];t.current=null,!(!s||!l||Math.hypot(l.clientX-s.x,l.clientY-s.y)>Hxe)&&(a.current=!0,setTimeout(()=>{a.current=!1},Zxe),e())},onTouchStart:n=>{let s=n.targetTouches[0];t.current=s?{x:s.clientX,y:s.clientY}:null}}};async function Kxe(e,t){return H_.fetchRoute(e,t)}function Xxe(e,t,a){let r=`sdk-route-${t}`,i=`sdk-route-casing-${t}`,o=`sdk-route-line-${t}`,n={features:[{geometry:a.payload.routeData.geometry,properties:{},type:"Feature"}],type:"FeatureCollection"},s=e.getSource(r);s?s.setData(n):(e.addSource(r,{data:n,type:"geojson"}),e.addLayer({id:i,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#111111","line-opacity":.8,"line-width":8},source:r,type:"line"}),e.addLayer({id:o,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3b82f6","line-width":4},source:r,type:"line"}))}function Yxe(e,t){let a=`sdk-route-${t}`,r=`sdk-route-casing-${t}`,i=`sdk-route-line-${t}`;e.getLayer(i)&&e.removeLayer(i),e.getLayer(r)&&e.removeLayer(r),e.getSource(a)&&e.removeSource(a)}function xm(e,t){if(t.startsWith("http://")||t.startsWith("https://"))return t;let a=e.trim();for(;a.endsWith("/");)a=a.slice(0,-1);let r=t.trim();r.startsWith("/")||(r=`/${r}`);let i=a.endsWith("/api/v1"),o=r.startsWith("/api/v1/")||r==="/api/v1";if(i&&o){let n=r.slice(7);return`${a}${n}`}return`${a}${r}`}function DG(e){return typeof window>"u"?void 0:window.__UP_BACKEND_URLS__?.[e]??void 0}function Qxe(e){let t=()=>DG("http")||xt.getEnv()?.backendUrl||e.defaultBaseUrl,a=()=>DG("ws")||xt.getEnv()?.wsBackendUrl||e.defaultWsBackendUrl;return{get baseUrl(){return t()},delete:r=>xt.network.request({method:"DELETE",url:xm(t(),r)}),get:r=>xt.network.request({headers:{"Content-Type":"application/json"},method:"GET",url:xm(t(),r)}),graphqlQuery:(r,i={})=>xt.network.request({body:{query:r,variables:i},headers:{"Content-Type":"application/json"},method:"POST",url:xm(t(),"/graphql")}),patch:(r,i)=>xt.network.request({body:i,headers:{"Content-Type":"application/json"},method:"PATCH",url:xm(t(),r)}),post:(r,i,o)=>xt.network.request({body:i,headers:{"Content-Type":"application/json"},method:"POST",timeoutMs:o,url:xm(t(),r)}),get wsUrl(){return a()}}}function Jxe(e){let t=e.channelField,a=null,r=new Map,i=new Set,o=null,n=1e3,s=!1,l="closed",u=new Set,c=_=>{if(l!==_){l=_;for(let b of u)b(l)}},d=()=>e.baseUrl||e.api.wsUrl||"",f=(_,b)=>{a?.readyState===WebSocket.OPEN&&a.send(JSON.stringify({action:_,[t]:b}))},h=()=>{o&&clearTimeout(o),o=setTimeout(()=>{n=Math.min(n*2,3e4),p()},n)},p=async()=>{if(!(a?.readyState===WebSocket.OPEN||a?.readyState===WebSocket.CONNECTING||s)){s=!0,c("connecting");try{let _=d();if(!_){console.warn("[WS] No WebSocket backend URL available, connection delayed."),s=!1,c("closed");return}let b={};if(jm()&&e.ticketPath!==null)b={ticket:(await e.api.post(e.ticketPath??"/ws-ticket")).data.ticket};else if(e.devToken)b={token:e.devToken.startsWith("Bearer ")?e.devToken.slice(7):e.devToken};else if(e.requireAuth!==!1){console.warn("[WS] No auth available, connection delayed."),s=!1,c("closed");return}let w=new URLSearchParams({...e.query,...b}).toString();a=new WebSocket(w?`${_}?${w}`:_),a.onopen=()=>{if(s=!1,c("open"),n=1e3,t)for(let B of r.keys())f("subscribe",B)},a.onmessage=B=>{try{let L=JSON.parse(B.data);if(t){let P=L[t];if(typeof P=="string"){let R=r.get(P);if(R)for(let k of R)k(L)}}for(let P of i)P(L)}catch(L){console.error("[WS] Failed to parse message:",L)}},a.onclose=()=>{s=!1,c("closed"),h()},a.onerror=B=>{console.error("[WS] error:",B),s=!1,a?.close()}}catch(_){console.error("[WS] Failed to establish connection:",_),s=!1,c("closed"),h()}}},x=()=>{o&&(clearTimeout(o),o=null),a&&(a.onclose=null,a.close(),a=null),c("closed")},v=()=>l,m=_=>(u.add(_),_(l),()=>{u.delete(_)}),g=(_,b)=>{let A=!r.has(_);return A&&r.set(_,new Set),r.get(_)?.add(b),A&&f("subscribe",_),p(),()=>{let w=r.get(_);w&&(w.delete(b),w.size===0&&(r.delete(_),f("unsubscribe",_)))}},y=_=>(i.add(_),p(),()=>{i.delete(_)});return t?{connect:p,disconnect:x,getStatus:v,onMessage:y,onStatusChange:m,subscribe:g}:{connect:p,disconnect:x,getStatus:v,onMessage:y,onStatusChange:m}}var $xe=xt;return OG(eme);})();
|
|
881
881
|
/*! Bundled license information:
|
|
882
882
|
|
|
883
883
|
react/cjs/react.production.js:
|