lecodes-cli 2.0.3 → 2.0.5

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.
Files changed (82) hide show
  1. package/dist/index.js +2580 -872
  2. package/package.json +16 -11
  3. package/runtime/sdk-types.json +1 -1
  4. package/runtime/web/VERSION.json +3 -3
  5. package/runtime/web/assets/creator-2d-CYlV77UR.js +1 -0
  6. package/runtime/web/assets/creator-2d-nG7rGEmq.wasm +0 -0
  7. package/runtime/web/assets/{creator-full-D2dSDdDj.wasm → creator-full-Cla1R8N6.wasm} +0 -0
  8. package/runtime/web/assets/creator-full-DmfoULcB.js +1 -0
  9. package/runtime/web/assets/creator-full.js-D8SMHuCt.symbols +8419 -0
  10. package/runtime/web/assets/creator-ui-CbtoaRlz.js +1 -0
  11. package/runtime/web/assets/creator-ui-DZaoxIpX.wasm +0 -0
  12. package/runtime/web/player.js +17 -17
  13. package/runtime/web-lite/assets/__vite-browser-external-BIHI7g3E.js +1 -0
  14. package/runtime/web-lite/assets/ar-BOdQ-wV4.js +1 -0
  15. package/runtime/web-lite/assets/basis-C64VHDVD.js +1 -0
  16. package/runtime/web-lite/assets/basis_transcoder-VXdx5NbI.wasm +0 -0
  17. package/runtime/web-lite/assets/canvas-WxiusXCB.js +1 -0
  18. package/runtime/web-lite/assets/creatorAnim-BOwKr-C1.js +1 -0
  19. package/runtime/web-lite/assets/creatorParticles-DYlv4g1J.js +1 -0
  20. package/runtime/web-lite/assets/creatorPhysics-k7wL0kV1.js +1 -0
  21. package/runtime/web-lite/assets/draco-BiISTFcR.js +118 -0
  22. package/runtime/web-lite/assets/draco_decoder-DsQ12WqX.wasm +0 -0
  23. package/runtime/web-lite/assets/index-3CbsYWmo.js +2 -0
  24. package/runtime/web-lite/assets/neutral_ibl128-D-lzdkLN.ktx +0 -0
  25. package/runtime/web-lite/assets/pager-Db5BY7FB.js +1 -0
  26. package/runtime/web-lite/assets/plugins-CuEPHbHL.js +1 -0
  27. package/runtime/web-lite/assets/roboto-cyrillic-DVBNKCCH.woff2 +0 -0
  28. package/runtime/web-lite/assets/roboto-cyrillic-ext-1gPz9dK9.woff2 +0 -0
  29. package/runtime/web-lite/assets/roboto-greek-DVLYEgdx.woff2 +0 -0
  30. package/runtime/web-lite/assets/roboto-greek-ext-D98D44EL.woff2 +0 -0
  31. package/runtime/web-lite/assets/roboto-latin-cAJwcdBQ.woff2 +0 -0
  32. package/runtime/web-lite/assets/roboto-latin-ext-t610Sqxq.woff2 +0 -0
  33. package/runtime/web-lite/assets/roboto-rest-C7JkyNHT.woff2 +0 -0
  34. package/runtime/web-lite/assets/roboto-vietnamese-w-p-nKZZ.woff2 +0 -0
  35. package/runtime/web-lite/assets/scene3d-CX7MAqmN.js +866 -0
  36. package/runtime/web-lite/assets/tween-BnWYhJ7P.js +1 -0
  37. package/runtime/web-lite/assets/video-BLj61nDx.js +1 -0
  38. package/runtime/web-lite/assets/vlist-DrV2Q7P5.js +1 -0
  39. package/runtime/web-lite/assets/worker-Caf-yYEI.js +2 -0
  40. package/runtime/web-lite/features.json +134 -0
  41. package/runtime/web-lite/lite.js +90 -13
  42. package/runtime/web-lite/plugins/camera/index-5XOM8eHl.js +1 -0
  43. package/runtime/web-lite/plugins/geolocation/index-BjTKN9_P.js +1 -0
  44. package/runtime/web-lite/plugins/map/_virtual_lecodes-half-CQBO044A.js +1 -0
  45. package/runtime/web-lite/plugins/map/_virtual_lecodes-half-resources-BYwqQkWQ.js +1 -0
  46. package/runtime/web-lite/plugins/map/assets/maplibre-gl-worker-DeQFNGa4.js +8 -0
  47. package/runtime/web-lite/plugins/map/index-BTBHQ264.js +1 -0
  48. package/runtime/web-lite/plugins/map/mapImpl-C6E1SwCS.js +823 -0
  49. package/runtime/web-lite/plugins/qr-scanner/index-CK_cYoJR.js +1 -0
  50. package/runtime/web-lite/plugins.json +8 -0
  51. package/src/commands/compile.ts +7 -1
  52. package/src/commands/desktop.ts +7 -4
  53. package/src/commands/dev.ts +4 -14
  54. package/src/commands/render.ts +6 -2
  55. package/src/commands/test.ts +25 -9
  56. package/src/commands/update/index.ts +5 -4
  57. package/src/compile/projectCompile.ts +47 -1
  58. package/src/dev/androidDev.ts +1 -1
  59. package/src/dev/backendWorker.ts +138 -0
  60. package/src/dev/devServer.ts +119 -115
  61. package/src/dev/localBackend.ts +214 -0
  62. package/src/dev/projectBackend.ts +199 -0
  63. package/src/dev/serve.ts +164 -0
  64. package/src/hosts/archives.ts +41 -7
  65. package/src/hosts/cmgenTool.ts +6 -9
  66. package/src/hosts/desktopRenderer.ts +6 -5
  67. package/src/hosts/liteRunner.ts +52 -9
  68. package/src/hosts/matcTool.ts +5 -22
  69. package/src/hosts/peerInstall.ts +7 -7
  70. package/src/hosts/peers.ts +1 -0
  71. package/src/hosts/releases.ts +6 -0
  72. package/src/index.ts +5 -1
  73. package/src/plugin/generate.ts +10 -6
  74. package/src/web/build.ts +45 -5
  75. package/runtime/web/assets/creator-2d-D9WKYM6h.js +0 -1
  76. package/runtime/web/assets/creator-2d-ukvEmNEp.wasm +0 -0
  77. package/runtime/web/assets/creator-full-BBXzQlhq.js +0 -1
  78. package/runtime/web/assets/creator-full.js-BYswGsqR.symbols +0 -8124
  79. package/runtime/web/assets/creator-ui-DIc92ion.wasm +0 -0
  80. package/runtime/web/assets/creator-ui-_1Z_AX2M.js +0 -1
  81. package/runtime/web-lite/assets/Roboto-Variable-DHm9jpd-.woff2 +0 -0
  82. package/runtime/web-lite/assets/creatorTween-PF8B6T8V.wasm +0 -0
@@ -1,14 +1,14 @@
1
- var ir=Object.defineProperty;var ar=(e,t,n)=>t in e?ir(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Pe=(e,t,n)=>ar(e,typeof t!="symbol"?t+"":t,n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))o(a);new MutationObserver(a=>{for(const i of a)if(i.type==="childList")for(const r of i.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&o(r)}).observe(document,{childList:!0,subtree:!0});function n(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?i.credentials="include":a.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function o(a){if(a.ep)return;a.ep=!0;const i=n(a);fetch(a.href,i)}})();const cr=e=>{if(typeof e=="string")return e;if(e instanceof Error)return e.stack?`${String(e)}
2
- ${e.stack}`:String(e);try{return JSON.stringify(e)}catch{return String(e)}},lr=(e,t)=>{const n=r=>{fetch(`${e}/log`,{method:"POST",body:JSON.stringify(r),headers:{"content-type":"application/json"},keepalive:!0}).catch(()=>{})};let o=-1;const a=async()=>{try{const{v:r}=await(await fetch(`${e}/version`,{cache:"no-store"})).json();typeof r=="number"&&t(r)}catch{}setTimeout(a,2500)};setTimeout(a,2500);const i=()=>{let r;try{r=new WebSocket(e.replace(/^http/,"ws")+"/ws")}catch{return}r.onopen=()=>r.send(JSON.stringify({type:"hello",v:o})),r.onmessage=c=>{let u={};try{u=JSON.parse(String(c.data))}catch{return}u.type==="reload"&&typeof u.v=="number"&&t(u.v)},r.onclose=()=>{setTimeout(i,2e3)}};return i(),{bundleUrl:r=>`${e}/bundle.js?t=web&v=${r}`,versionOf(r,c){const u=Number(r.headers.get("x-lecodes-v"));return r.headers.has("x-lecodes-v")&&Number.isFinite(u)?u:c},ran(r){o=r},log:(r,c)=>n({type:"log",level:r,text:c.map(cr).join(" ")}),error:r=>n({type:"error",text:r})}},ur=(e,t)=>{try{const n=new URL(e,t);return n.origin===new URL(t).origin&&(n.protocol==="http:"||n.protocol==="https:")?n.href:null}catch{return null}},Tt="2.0.3",et=e=>{const t=e==null?void 0:e.match(/^(\d+)\.\d+\.\d+/);return t?Number(t[1]):null},fr=(e,t)=>et(e)!==null&&et(e)===et(t),dr=""+new URL("assets/Roboto-Variable-DHm9jpd-.woff2",import.meta.url).href,dn="Roboto",pr=[`400 14px ${dn}`],_t="data-lecodes-fonts",mr=async(e=pr,t)=>{const n=t??(typeof document>"u"?void 0:document);if(!(!n||!n.fonts)){if(!n.head.querySelector(`style[${_t}]`)){const o=new URL(dr,document.baseURI).href,a=n.createElement("style");a.setAttribute(_t,""),a.textContent=`@font-face{font-family:"${dn}";src:url("${o}") format("woff2");font-weight:100 900;font-display:swap}`,n.head.appendChild(a)}try{await Promise.all(e.map(o=>n.fonts.load(o)))}catch{}}},hr=(e,t="woff2")=>{const n=/^\/\/ fonts: (.+)$/m.exec(e);if(!n)return[];const o=[];for(const a of n[1].split(";")){const i=a.indexOf("=");if(i===-1)continue;const r=/^(.+)@(\d+)(i?)$/.exec(a.slice(0,i));r&&o.push({family:r[1],weight:parseInt(r[2],10),italic:r[3]==="i",url:a.slice(i+1).replace("{fmt}",t)})}return o},gr=async(e,t,n=2e3)=>{const o=t??(typeof document>"u"?void 0:document);if(!(o!=null&&o.fonts)||e.length===0)return;const a=[];for(const i of e)try{const r=new FontFace(i.family,`url("${i.url}")`,{weight:String(i.weight),style:i.italic?"italic":"normal"});o.fonts.add(r),a.push(r.load().catch(()=>{}))}catch{}await Promise.race([Promise.all(a),new Promise(i=>setTimeout(i,n))])},yr=e=>{var u,d,v,p;const t=e.slice(0,2e3),n=new Set,o=t.match(/\/\/ preload: (.+)/);if(o)for(const f of o[1].split(";"))n.add(f);const a=t.includes("// gl: disable")?"off":t.includes("// gl: defer")?"defer":"on",i=((u=t.match(/^\/\/ sdk: (\d+\.\d+\.\d+\S*)/m))==null?void 0:u[1])??null,r=((v=(d=t.match(/^\/\/ name: (.+)$/m))==null?void 0:d[1])==null?void 0:v.trim())??null,c=new Set((((p=t.match(/^\/\/ plugins: (.+)$/m))==null?void 0:p[1])??"").split(";").map(f=>f.trim()).filter(Boolean));return{sdk:i,name:r,preloads:n,gl:a,is2d:t.includes("// 2d: enable"),plugins:c,bootFonts:hr(t)}},br=1,vr=2,Er=3,wr=4,Sr=5,Tr=6,kt=7,_r=8,Rt=9,kr=10,Rr=11,xr=12,Lr=13,Ar=14,$r=15,Cr=16,xt=17,Or=18,Lt=19,Ie=20,Mr=26,Nr=27,Pr=30,At=31,Ir=32,Fr=33,$t=34,Ct=35,We=1,Dr=2,Br=4,ge=8,Ur=16,tt=32,Wr=64,nt=128,Hr=256,zr=512,Vr=1024,Gr=2048,jr=4096,Ot=8192,Kr=32768,Yr=1<<18,Xr=255,Mt=256,Nt=512,qr=1024,se=0,Jr=1,Qr=2,Zr=3,Ke=4,He=255,pn=e=>{const t=e.clientWidth;if(!t)return 1;const n=e.getBoundingClientRect().width;return n>0?n/t:1},Pt={text:{type:"text"},password:{type:"password"},search:{type:"search"},tel:{type:"tel"},email:{type:"email"},url:{type:"url"},number:{type:"text",mode:"numeric"},decimal:{type:"text",mode:"decimal"},date:{type:"date"},time:{type:"time"}},It=(e,t)=>e==null?t:e===!0||e==="true"||e==="1"||typeof e=="number"&&e>.5,re=(e,t,n)=>{n===null?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)},eo=(e,t)=>{if(e.type!=="input"&&e.type!=="textarea")return;const n=e.el,o=t("placeholder");if(re(n,"placeholder",o==null?null:String(o)),e.type==="input"){const c=Pt[String(t("type")??"text")]??Pt.text,u=n;u.type!==c.type&&(u.type=c.type),re(n,"inputmode",c.mode??null);const d=t("enterKey");re(n,"enterkeyhint",d==null?null:String(d))}const a=t("autocapitalize");re(n,"autocapitalize",a==null?null:String(a));const i=t("autocorrect");i==null?(re(n,"autocorrect",null),re(n,"spellcheck",null)):(re(n,"autocorrect",It(i,!0)?"on":"off"),re(n,"spellcheck",It(i,!0)?"true":"false"));const r=Number(t("maxLength")??0);re(n,"maxlength",r>0?String(Math.round(r)):null)},Ye={width:"layout",height:"layout",minWidth:"layout",minHeight:"layout",maxWidth:"layout",maxHeight:"layout",flexBasis:"layout",flexGrow:"layout",flexShrink:"layout",aspectRatio:"layout",gap:"layout",rowGap:"layout",columnGap:"layout",padding:"layout",paddingTop:"layout",paddingRight:"layout",paddingBottom:"layout",paddingLeft:"layout",paddingHorizontal:"layout",paddingVertical:"layout",paddingStart:"layout",paddingEnd:"layout",margin:"layout",marginTop:"layout",marginRight:"layout",marginBottom:"layout",marginLeft:"layout",marginHorizontal:"layout",marginVertical:"layout",marginStart:"layout",marginEnd:"layout",left:"layout",right:"layout",top:"layout",bottom:"layout",start:"layout",end:"layout",inset:"layout",flexDirection:"enum",justifyContent:"enum",alignItems:"enum",alignSelf:"enum",position:"enum",flexWrap:"enum",boxSizing:"enum",display:"enum",overflow:"enum",scrollDirection:"enum",borderWidth:"len",borderTopWidth:"len",borderRightWidth:"len",borderBottomWidth:"len",borderLeftWidth:"len",borderHorizontalWidth:"len",borderVerticalWidth:"len",borderStartWidth:"len",borderEndWidth:"len",color:"color",backgroundColor:"color",borderColor:"color",borderTopColor:"color",borderRightColor:"color",borderBottomColor:"color",borderLeftColor:"color",placeholderColor:"color",refreshControlColor:"color",tintColor:"color",rippleColor:"color",overlayColor:"color",backgroundImage:"str",backgroundSize:"enum",backgroundGradient:"str",borderRadius:"len",borderTopLeftRadius:"len",borderTopRightRadius:"len",borderBottomRightRadius:"len",borderBottomLeftRadius:"len",opacity:"num",transform:"str",transformOrigin:"str",pointerEvents:"enum",fontSize:"len",fontWeight:"num",fontStyle:"enum",fontFamily:"str",lineHeight:"len",letterSpacing:"len",textAlign:"enum",textDecoration:"enum",lineClamp:"num",textOverflow:"enum",objectFit:"enum",placeholder:"str",type:"enum",enterKey:"enum",autocapitalize:"enum",autocorrect:"num",maxLength:"num",keyboardShrink:"num",keyboardDismiss:"num",showScrollbar:"num",overscrollMode:"enum",keyboardDismissMode:"enum",snap:"enum",sheetDetents:"str",sheetDetent:"num",sheetDismissible:"num",dim:"num"},to={p:"padding",pt:"paddingTop",pr:"paddingRight",pb:"paddingBottom",pl:"paddingLeft",px:"paddingHorizontal",py:"paddingVertical",m:"margin",mt:"marginTop",mr:"marginRight",mb:"marginBottom",ml:"marginLeft",mx:"marginHorizontal",my:"marginVertical",bgColor:"backgroundColor",bgImage:"backgroundImage",bgSize:"backgroundSize",bgGradient:"backgroundGradient"},no=["placeholderColor","refreshControlColor","tintColor","rippleColor","overlayColor","backgroundGradient"],ro={display:"flex",overflow:"visible",scrollDirection:"vertical",borderWidth:0,borderTopWidth:0,borderRightWidth:0,borderBottomWidth:0,borderLeftWidth:0,borderHorizontalWidth:0,borderVerticalWidth:0,borderStartWidth:0,borderEndWidth:0,backgroundColor:0,borderColor:0,borderTopColor:0,borderRightColor:0,borderBottomColor:0,borderLeftColor:0,backgroundImage:"",backgroundSize:"cover",borderRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,borderBottomRightRadius:0,borderBottomLeftRadius:0,opacity:1,transform:"identity",transformOrigin:"50% 50%",pointerEvents:"all",fontSize:14,fontWeight:400,fontStyle:"normal",lineHeight:"normal",letterSpacing:0,textAlign:"start",textDecoration:"none",lineClamp:0,textOverflow:"ellipsis",objectFit:"cover",placeholder:"",type:"text",enterKey:"done",autocapitalize:"sentences",autocorrect:1,maxLength:0,keyboardShrink:1,keyboardDismiss:1,showScrollbar:1,overscrollMode:"default",keyboardDismissMode:"interactive",snap:"none",sheetDetents:"",sheetDetent:0,sheetDismissible:1,dim:0},oo=["duration","delay","layer","commit","loop","loopMode","name"],so=/\b(?:calc|min|max|clamp)\(/,io=e=>{if(!so.test(e))return e;let t="";for(let n=0;n<e.length;n++){if(e.startsWith("var(",n)){let a=0;const i=n;for(;n<e.length;n++)if(e[n]==="(")a++;else if(e[n]===")"&&--a===0)break;t+=e.slice(i,Math.min(n+1,e.length));continue}const o=e[n];if(o==="+"||o==="-"){const a=t[t.length-1]??"";if(!(o==="-"&&(a==="e"&&"btlr".includes(e[n+1]??"")||e.slice(Math.max(0,n-7),n)==="comfort"))&&/[\w%.)]/.test(a)){for(t=t.trimEnd()+" "+o+" ";e[n+1]===" ";)n++;continue}}t+=o}return t.replace(/\d*\.\d+|\d+/g,(n,o,a)=>{const i=a.slice(0,o).trimEnd(),r=a.slice(o+n.length).trimStart();return/[\w.%]$/.test(i)||/^[\w.%]/.test(r)||/[*/]$/.test(i)||/^[*/]/.test(r)?n:n+"px"})},ao={top:"12px",bottom:"4px",left:"16px",right:"16px"},mn=e=>`max(var(--safe-${e}, 0px), calc(var(--safe-${e}-bar, 0px) + var(--comfort-${e}, ${ao[e]})))`,co={vw:"cqw",vh:"cqh",vmin:"cqmin",vmax:"cqmax"},Ce=e=>io(e).replace(new RegExp("(?<![-\\w])comfort-(top|bottom|left|right)\\b","g"),(t,n)=>mn(n)).replace(new RegExp("(?<![-\\w])safe-(top|bottom|left|right)\\b","g"),(t,n)=>`var(--safe-${n}, 0px)`).replace(/(\d)(vmin|vmax|vw|vh)\b/g,(t,n,o)=>n+co[o]),yt=/^-?\d*\.?\d+$/,ie=e=>{if(typeof e=="number")return e+"px";const t=String(e).trim();return yt.test(t)?t+"px":Ce(t)},we=e=>{if(typeof e=="number")return"#"+(e>>>0).toString(16).padStart(e<=16777215?6:8,"0");const t=String(e);return t==="clear"?"transparent":t},lo=/^(rotate|skew)/,uo=/^translate/,fo=e=>{const t=String(e).trim();return t===""||t==="identity"?"none":t.replace(/([a-zA-Z0-9]+)\s*\(([^)]*)\)/g,(n,o,a)=>{const i=uo.test(o)?"px":lo.test(o)?"deg":null;return i===null?n:`${o}(${a.split(",").map(r=>{const c=r.trim();return yt.test(c)?c+i:Ce(c)}).join(", ")})`})},hn=e=>typeof e=="number"?e+"px":String(e).trim().split(/\s+/).map(t=>yt.test(t)?t+"px":Ce(t)).join(" "),te=0,ne=1,Le=2,ze=["top","right","bottom","left"],po=(e,t)=>e==="safe-all"?`var(--safe-${t}, 0px)`:e==="comfort-all"||e==="comfort-x"||e==="comfort-y"?mn(t):ie(e),ut=(e,t)=>{const n=(a,i)=>({rank:i,to:r=>a.map(c=>[t(c),po(r,c)])}),o=a=>({rank:ne,to:i=>[[t(a),ie(i)]]});return{[e]:n(ze,te),[`${e}Horizontal`]:n(["left","right"],ne),[`${e}Vertical`]:n(["top","bottom"],ne),[`${e}Start`]:o("inline-start"),[`${e}End`]:o("inline-end"),[`${e}Top`]:n(["top"],Le),[`${e}Right`]:n(["right"],Le),[`${e}Bottom`]:n(["bottom"],Le),[`${e}Left`]:n(["left"],Le)}},mo=()=>{const e=ut("border",n=>`border-${n}-width`),t={};for(const n of Object.keys(e))t[`${n}Width`]=e[n];return t},bt=e=>{const t=[];let n=0,o="";for(const a of e.trim()){if(a==="("&&n++,a===")"&&n--,/\s/.test(a)&&n===0){o&&t.push(o),o="";continue}o+=a}return o&&t.push(o),t},ho=new Set(["none","solid","dashed","dotted","double","hidden"]),go=/^-?\d*\.?\d+([a-z%]*)$|^(calc|min|max|clamp)\(/,Re=(e,t)=>({rank:t,to:n=>{let o=null,a=null,i=null;if(typeof n=="number")o=n+"px";else for(const c of bt(String(n)))ho.has(c)?i=c:go.test(c)?o=ie(c):a=we(c);const r=[];for(const c of e)r.push([`border-${c}-width`,o??(a?"1px":"0px")]),r.push([`border-${c}-color`,a??"transparent"]),i&&r.push([`border-${c}-style`,i]);return r}}),yo=e=>{const t=String(e).trim(),n=(i,r,c)=>[["flex-grow",i],["flex-shrink",r],["flex-basis",c]];if(t==="none")return n("0","0","auto");if(t==="auto")return n("1","1","auto");if(t==="initial")return n("0","1","auto");const o=bt(t),a=i=>i!==void 0&&/^-?\d*\.?\d+$/.test(i);return a(o[0])?o.length===1?n(o[0],"1","0%"):a(o[1])?n(o[0],o[1],o[2]!==void 0?ie(o[2]):"0%"):n(o[0],"1",ie(o[1])):n("1","1",ie(o[0]??"auto"))},gn=e=>{var t;return typeof e=="object"&&e!==null&&"_h"in e&&typeof((t=e._h)==null?void 0:t.id)=="number"},yn=(e,t)=>{if(gn(e))return`url("${t.bufferUrl(e._h.id)}")`;const n=String(e??"");return n===""?"none":n.startsWith("id:")?`url("${t.bufferUrl(Number(n.slice(3)))}")`:`url("${n.replace(/["\\\n]/g,o=>"\\"+o)}")`},bo=/^\s*(repeating-)?(linear|radial|conic)-gradient\(/,bn=e=>{const t=String(e??"").trim();return t===""?"none":Ce(t)},vo=(e,t)=>{const n=typeof e=="string"&&bo.test(e),o=gn(e)||typeof e=="string"&&/^(id:|https?:|data:|blob:|\.{0,2}\/)/.test(e);return[["--lc-bg-grad",n?bn(e):"none"],["--lc-bg-img",o?yn(e,t):"none"],["background-color",n||o?"transparent":we(e)]]},Eo=e=>{const t=typeof e=="number"?[e+"px"]:bt(String(e)).map(r=>hn(r)),[n,o=n,a=n,i=o]=t;return[["border-top-left-radius",n??"0px"],["border-top-right-radius",o??"0px"],["border-bottom-right-radius",a??"0px"],["border-bottom-left-radius",i??"0px"]]},wo=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-monospace","ui-sans-serif","ui-serif","inherit"]),So=e=>{const t=String(e).trim();return t==="monospaced"?"monospace":t.startsWith("var(")||t.includes(",")||/^["']/.test(t)||wo.has(t)?t:`"${t.replace(/"/g,'\\"')}"`},To=e=>e===!0||e==="true"||typeof e=="number"&&e>.5||e==="1",_o=e=>t=>e[String(t)]??String(t),Oe={width:{css:"width",as:"len"},height:{css:"height",as:"len"},minWidth:{css:"min-width",as:"len"},minHeight:{css:"min-height",as:"len"},maxWidth:{css:"max-width",as:"len"},maxHeight:{css:"max-height",as:"len"},flexBasis:{css:"flex-basis",as:"len"},flexGrow:{css:"flex-grow",as:"num"},flexShrink:{css:"flex-shrink",as:"num"},aspectRatio:{css:"aspect-ratio",as:"num"},gap:{css:["row-gap","column-gap"],as:"len",rank:te},rowGap:{css:"row-gap",as:"len"},columnGap:{css:"column-gap",as:"len"},...ut("padding",e=>`padding-${e}`),...ut("margin",e=>`margin-${e}`),inset:{css:ze,as:"len",rank:te},top:{css:"top",as:"len"},right:{css:"right",as:"len"},bottom:{css:"bottom",as:"len"},left:{css:"left",as:"len"},start:{css:"inset-inline-start",as:"len",rank:ne},end:{css:"inset-inline-end",as:"len",rank:ne},flexDirection:{css:"flex-direction",as:"raw"},justifyContent:{css:"justify-content",as:"raw"},alignItems:{css:"align-items",as:"raw"},alignSelf:{css:"align-self",as:"raw"},position:{css:"position",as:"raw"},flexWrap:{css:"flex-wrap",as:"raw"},boxSizing:{css:"box-sizing",as:"raw"},display:{css:"display",as:"raw"},overflow:{rank:te,to:e=>{const t=e==="scroll"?"auto":String(e);return[["overflow-x",t],["overflow-y",t]]}},scrollDirection:{to:e=>e==="horizontal"?[["overflow-x","auto"],["overflow-y","hidden"],["flex-direction","row"]]:e==="all"?[["overflow-x","auto"],["overflow-y","auto"]]:[["overflow-x","hidden"],["overflow-y","auto"],["flex-direction","column"]],rank:ne},...mo(),color:{css:"color"},backgroundColor:{css:"background-color"},borderColor:{css:ze.map(e=>`border-${e}-color`),rank:te},borderTopColor:{css:"border-top-color"},borderRightColor:{css:"border-right-color"},borderBottomColor:{css:"border-bottom-color"},borderLeftColor:{css:"border-left-color"},placeholderColor:{css:"--lc-placeholder"},refreshControlColor:{css:"--lc-refresh"},tintColor:{css:"--lc-tint"},overlayColor:{css:"--lc-overlay"},rippleColor:{none:"a browser has no ripple: the press feedback of a page is `$pressed`"},backgroundImage:{to:(e,t)=>[["--lc-bg-img",yn(e,t)]]},backgroundGradient:{to:e=>[["--lc-bg-grad",bn(e)]]},backgroundSize:{to:e=>e==="tile"?[["background-size","auto"],["background-repeat","repeat"]]:[["background-size",e==="fill"?"100% 100%":String(e)],["background-repeat","no-repeat"]]},borderRadius:{to:Eo,rank:te},borderTopLeftRadius:{css:"border-top-left-radius"},borderTopRightRadius:{css:"border-top-right-radius"},borderBottomRightRadius:{css:"border-bottom-right-radius"},borderBottomLeftRadius:{css:"border-bottom-left-radius"},opacity:{css:"opacity"},transform:{to:e=>[["transform",fo(e)]]},transformOrigin:{css:"transform-origin",as:"lens"},pointerEvents:{to:e=>[["pointer-events",e==="none"?"none":"auto"]]},dim:{css:"--lc-dim"},fontSize:{css:"font-size"},fontWeight:{css:"font-weight",as:"raw"},fontStyle:{to:e=>[["font-style",e===2?"italic":e===0?"normal":String(e)]]},fontFamily:{to:e=>[["font-family",So(e)]]},lineHeight:{to:e=>[["line-height",e==="normal"?"1.2":ie(e)]]},letterSpacing:{css:"letter-spacing"},textAlign:{css:"text-align"},textDecoration:{css:"text-decoration-line"},lineClamp:{rank:te,to:e=>Number(e)>0?[["display","-webkit-box"],["-webkit-box-orient","vertical"],["-webkit-line-clamp",String(Math.round(Number(e)))],["overflow-x","hidden"],["overflow-y","hidden"]]:[["-webkit-line-clamp","none"]]},textOverflow:{css:"text-overflow"},objectFit:{to:e=>[["object-fit",String(e)],["--lc-fit",e==="fill"?"100% 100%":String(e)]]},placeholder:{attr:!0},type:{attr:!0},enterKey:{attr:!0},autocapitalize:{attr:!0},autocorrect:{attr:!0},maxLength:{attr:!0},keyboardShrink:{attr:!0},keyboardDismiss:{attr:!0},showScrollbar:{to:e=>[["scrollbar-width",To(e)?"thin":"none"]]},overscrollMode:{to:e=>[["overscroll-behavior",_o({default:"auto",none:"none",absorb:"contain"})(e)]]},keyboardDismissMode:{attr:!0},snap:{to:e=>e==="none"?[["scroll-snap-type","none"],["--lc-snap","none"]]:[["scroll-snap-type","both mandatory"],["--lc-snap",String(e)]]},sheetDetents:{attr:!0},sheetDetent:{attr:!0},sheetDismissible:{attr:!0},background:{to:vo,rank:te},border:Re(ze,te),borderTop:Re(["top"],ne),borderRight:Re(["right"],ne),borderBottom:Re(["bottom"],ne),borderLeft:Re(["left"],ne),flex:{to:yo,rank:te}},ce=e=>to[e]??e,ko=e=>e in Oe,vn=e=>{const t=Oe[e];return!!t&&"attr"in t},Ro={overflow:"overflow-x",pointerEvents:"pointer-events",fontFamily:"font-family",fontStyle:"font-style",lineHeight:"line-height",objectFit:"object-fit",transform:"transform",borderRadius:"border-top-left-radius",borderWidth:"border-top-width",borderColor:"border-top-color",backgroundImage:"--lc-bg-img",backgroundGradient:"--lc-bg-grad",backgroundSize:"background-size",showScrollbar:"scrollbar-width",overscrollMode:"overscroll-behavior",snap:"--lc-snap",lineClamp:"-webkit-line-clamp",borderTopWidth:"border-top-width",borderRightWidth:"border-right-width",borderBottomWidth:"border-bottom-width",borderLeftWidth:"border-left-width",borderHorizontalWidth:"border-left-width",borderVerticalWidth:"border-top-width",borderStartWidth:"border-inline-start-width",borderEndWidth:"border-inline-end-width"},ft=e=>{const t=Oe[e];return t&&"css"in t&&typeof t.css=="string"?t.css:Ro[e]??null},xo={len:ie,lens:hn,num:e=>String(e),raw:e=>String(e),color:we},Lo={color:"color",len:"len",enum:"raw",num:"num",str:"raw",layout:"raw"},Ft=e=>{const t=Oe[e];return t&&"rank"in t&&t.rank!==void 0?t.rank:Le},Ve=(e,t,n)=>{const o=[...e].filter(([,i])=>i!=null);o.sort((i,r)=>Ft(i[0])-Ft(r[0]));const a=new Map;for(const[i,r]of o){const c=Oe[i];if(!c){n==null||n(i);continue}if("attr"in c||"none"in c)continue;if("to"in c){for(const[v,p]of c.to(r,t))a.set(v,p);continue}const u=xo[c.as??Lo[Ye[i]??"layout"]],d=u(r);if(typeof c.css=="string")a.set(c.css,d);else for(const v of c.css)a.set(v,d)}return a},Dt=e=>[...e].sort((t,n)=>t[0]<n[0]?-1:t[0]>n[0]?1:0).map(([t,n])=>`${t}:${n}`).join(";"),En=0,wn=1,Ae=2,$e=3,Sn=4,ve=65,Xe=1.70158,Fe=Xe*1.525,Bt=Xe+1,Ut=2*Math.PI/3,Wt=2*Math.PI/4.5,De=e=>e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375,dt=[["linear",e=>e],["inSine",e=>1-Math.cos(e*Math.PI/2)],["outSine",e=>Math.sin(e*Math.PI/2)],["inOutSine",e=>-(Math.cos(Math.PI*e)-1)/2],["inQuad",e=>e*e],["outQuad",e=>1-(1-e)*(1-e)],["inOutQuad",e=>e<.5?2*e*e:1-(-2*e+2)**2/2],["inCubic",e=>e*e*e],["outCubic",e=>1-(1-e)**3],["inOutCubic",e=>e<.5?4*e*e*e:1-(-2*e+2)**3/2],["inQuart",e=>e**4],["outQuart",e=>1-(1-e)**4],["inOutQuart",e=>e<.5?8*e**4:1-(-2*e+2)**4/2],["inExpo",e=>e===0?0:2**(10*e-10)],["outExpo",e=>e===1?1:1-2**(-10*e)],["inOutExpo",e=>e===0?0:e===1?1:e<.5?2**(20*e-10)/2:(2-2**(-20*e+10))/2],["inCirc",e=>1-Math.sqrt(1-e*e)],["outCirc",e=>Math.sqrt(1-(e-1)**2)],["inOutCirc",e=>e<.5?(1-Math.sqrt(1-(2*e)**2))/2:(Math.sqrt(1-(-2*e+2)**2)+1)/2],["inBack",e=>Bt*e*e*e-Xe*e*e],["outBack",e=>1+Bt*(e-1)**3+Xe*(e-1)**2],["inOutBack",e=>e<.5?(2*e)**2*((Fe+1)*2*e-Fe)/2:((2*e-2)**2*((Fe+1)*(e*2-2)+Fe)+2)/2],["inElastic",e=>e===0?0:e===1?1:-(2**(10*e-10))*Math.sin((e*10-10.75)*Ut)],["outElastic",e=>e===0?0:e===1?1:2**(-10*e)*Math.sin((e*10-.75)*Ut)+1],["inOutElastic",e=>e===0?0:e===1?1:e<.5?-(2**(20*e-10)*Math.sin((20*e-11.125)*Wt))/2:2**(-20*e+10)*Math.sin((20*e-11.125)*Wt)/2+1],["inBounce",e=>1-De(1-e)],["outBounce",De],["inOutBounce",e=>e<.5?(1-De(1-2*e))/2:(1+De(2*e-1))/2],["smoothstep",e=>e*e*(3-2*e)]],Ao={in:"inQuad",out:"outQuad",inOut:"inOutQuad",easeIn:"inQuad",easeOut:"outQuad",easeInOut:"inOutQuad","ease-in":"inQuad","ease-out":"outQuad","ease-in-out":"inOutQuad"},$o=e=>{const t=Ao[e]??e;for(let n=0;n<dt.length;n++)if(dt[n][0]===t)return n;return-1},Co=[.25,.1,.25,1],Be={kind:En,p:[0,0,0,0]},Oo=e=>{const t=new Float32Array(ve);for(let n=0;n<ve;n++)t[n]=e(n/(ve-1));return t[0]=0,t[ve-1]=1,t},Mo=e=>{if(e===void 0)return Be;if(typeof e=="function")return{kind:Sn,p:[0,0,0,0],table:Oo(e)};if(Array.isArray(e)){const[a,i,r,c]=e;return{kind:Ae,p:[a,i,r,c]}}const t=e.trim();if(t==="linear")return Be;if(t==="ease")return{kind:Ae,p:Co};if(t==="steps")return{kind:$e,p:[1,0,0,0]};let n=/^steps\(\s*(\d+)\s*(?:,\s*(start|end|jump-start|jump-end)\s*)?\)$/.exec(t);if(n)return{kind:$e,p:[Math.max(1,parseInt(n[1],10)),n[2]==="start"||n[2]==="jump-start"?1:0,0,0]};if(n=/^cubic-bezier\(\s*([-\d.e]+)\s*,\s*([-\d.e]+)\s*,\s*([-\d.e]+)\s*,\s*([-\d.e]+)\s*\)$/.exec(t),n)return{kind:Ae,p:[parseFloat(n[1]),parseFloat(n[2]),parseFloat(n[3]),parseFloat(n[4])]};const o=$o(t);return o===0?Be:o>0?{kind:wn,p:[o,0,0,0]}:(console.warn(`[tween] unknown easing "${t}" — using linear`),Be)},No=(e,t,n,o,a)=>{const i=1-3*o+3*t,r=3*o-6*t,c=3*t,u=1-3*a+3*n,d=3*a-6*n,v=3*n;let p=e;for(let f=0;f<8;f++){const E=((i*p+r)*p+c)*p-e,s=(3*i*p+2*r)*p+c;if(Math.abs(E)<1e-6||Math.abs(s)<1e-6)break;p-=E/s}return p=Math.min(1,Math.max(0,p)),((u*p+d)*p+v)*p},Po=(e,t)=>{if(t<=0)return e.kind===$e&&e.p[1]===1?1/e.p[0]:0;if(t>=1)return 1;switch(e.kind){case wn:return dt[e.p[0]][1](t);case Ae:return No(t,e.p[0],e.p[1],e.p[2],e.p[3]);case $e:{const n=e.p[0];return e.p[1]===1?Math.min(1,Math.ceil(t*n)/n):Math.floor(t*n)/n}case Sn:{const n=e.table,o=t*(ve-1),a=Math.floor(o),i=n[a],r=n[Math.min(a+1,ve-1)];return i+(r-i)*(o-a)}default:return t}},Ht=24,zt=e=>String(Math.round(e*1e4)/1e4),Io="cubic-bezier(0.3333, 0, 0.6667, 1)",Fo=e=>{if(e===void 0||e==="smoothstep")return Io;const t=Mo(e);switch(t.kind){case En:return"linear";case Ae:return`cubic-bezier(${t.p.map(zt).join(", ")})`;case $e:return`steps(${t.p[0]}, ${t.p[1]===1?"jump-start":"jump-end"})`}const n=[];for(let o=0;o<=Ht;o++)n.push(zt(Po(t,o/Ht)));return`linear(${n.join(", ")})`},Tn=["lc-base","lc-bag","lc-own","lc-orient","lc-class","lc-hover","lc-press","lc-focus"],Do=["--lc-bg-grad","--lc-bg-img","--lc-tint","--lc-overlay","--lc-refresh","--lc-fit","--lc-src","--lc-src-tint","--lc-iw","--lc-ih","--lc-ir","--lc-crop-size","--lc-crop-pos"],_n="lc-app",Bo=`
3
- @layer ${Tn.join(", ")};
1
+ var Fn=Object.defineProperty;var Mn=(e,t,n)=>t in e?Fn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var je=(e,t,n)=>Mn(e,typeof t!="symbol"?t+"":t,n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();const Pn=e=>{if(typeof e=="string")return e;if(e instanceof Error)return e.stack?`${String(e)}
2
+ ${e.stack}`:String(e);try{return JSON.stringify(e)}catch{return String(e)}},In=(e,t)=>{const n=o=>{fetch(`${e}/log`,{method:"POST",body:JSON.stringify(o),headers:{"content-type":"application/json"},keepalive:!0}).catch(()=>{})};let r=-1;const s=async()=>{try{const{v:o}=await(await fetch(`${e}/version`,{cache:"no-store"})).json();typeof o=="number"&&t(o)}catch{}setTimeout(s,2500)};setTimeout(s,2500);const i=()=>{let o;try{o=new WebSocket(e.replace(/^http/,"ws")+"/ws")}catch{return}o.onopen=()=>o.send(JSON.stringify({type:"hello",v:r})),o.onmessage=f=>{let l={};try{l=JSON.parse(String(f.data))}catch{return}l.type==="reload"&&typeof l.v=="number"&&t(l.v)},o.onclose=()=>{setTimeout(i,2e3)}};return i(),{bundleUrl:o=>`${e}/bundle.js?t=web&v=${o}`,versionOf(o,f){const l=Number(o.headers.get("x-lecodes-v"));return o.headers.has("x-lecodes-v")&&Number.isFinite(l)?l:f},ran(o){r=o},log:(o,f)=>n({type:"log",level:o,text:f.map(Pn).join(" ")}),error:o=>n({type:"error",text:o})}},Dn=(e,t)=>{try{const n=new URL(e,t);return n.origin===new URL(t).origin&&(n.protocol==="http:"||n.protocol==="https:")?n.href:null}catch{return null}},Bn="modulepreload",Vn=function(e,t){return new URL(e,t).href},bt={},re=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let o=function(b){return Promise.all(b.map(E=>Promise.resolve(E).then(g=>({status:"fulfilled",value:g}),g=>({status:"rejected",reason:g}))))};const f=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),d=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));s=o(n.map(b=>{if(b=Vn(b,r),b in bt)return;bt[b]=!0;const E=b.endsWith(".css"),g=E?'[rel="stylesheet"]':"";if(!!r)for(let p=f.length-1;p>=0;p--){const h=f[p];if(h.href===b&&(!E||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${b}"]${g}`))return;const a=document.createElement("link");if(a.rel=E?"stylesheet":Bn,E||(a.as="script"),a.crossOrigin="",a.href=b,d&&a.setAttribute("nonce",d),document.head.appendChild(a),E)return new Promise((p,h)=>{a.addEventListener("load",p),a.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${b}`)))})}))}function i(o){const f=new Event("vite:preloadError",{cancelable:!0});if(f.payload=o,window.dispatchEvent(f),!f.defaultPrevented)throw o}return s.then(o=>{for(const f of o||[])f.status==="rejected"&&i(f.reason);return t().catch(i)})},yt="2.0.5",He=e=>{const t=e==null?void 0:e.match(/^(\d+)\.\d+\.\d+/);return t?Number(t[1]):null},zn=(e,t)=>He(e)!==null&&He(e)===He(t),Wn=(e,t="woff2")=>{const n=/^\/\/ fonts: (.+)$/m.exec(e);if(!n)return[];const r=[];for(const s of n[1].split(";")){const i=s.indexOf("=");if(i===-1)continue;const o=/^(.+)@(\d+)(i?)$/.exec(s.slice(0,i));o&&r.push({family:o[1],weight:parseInt(o[2],10),italic:o[3]==="i",url:s.slice(i+1).replace("{fmt}",t)})}return r},Gn=async(e,t,n=2e3)=>{const r=t??(typeof document>"u"?void 0:document);if(!(r!=null&&r.fonts)||e.length===0)return;const s=[];for(const i of e)try{const o=new FontFace(i.family,`url("${i.url}")`,{weight:String(i.weight),style:i.italic?"italic":"normal"});r.fonts.add(o),s.push(o.load().catch(()=>{}))}catch{}await Promise.race([Promise.all(s),new Promise(i=>setTimeout(i,n))])},jn=e=>{var l,d,b,E;const t=e.slice(0,2e3),n=new Set,r=t.match(/\/\/ preload: (.+)/);if(r)for(const g of r[1].split(";"))n.add(g);const s=t.includes("// gl: disable")?"off":t.includes("// gl: defer")?"defer":"on",i=((l=t.match(/^\/\/ sdk: (\d+\.\d+\.\d+\S*)/m))==null?void 0:l[1])??null,o=((b=(d=t.match(/^\/\/ name: (.+)$/m))==null?void 0:d[1])==null?void 0:b.trim())??null,f=new Set((((E=t.match(/^\/\/ plugins: (.+)$/m))==null?void 0:E[1])??"").split(";").map(g=>g.trim()).filter(Boolean));return{sdk:i,name:o,preloads:n,gl:s,is2d:t.includes("// 2d: enable"),plugins:f,bootFonts:Wn(t)}},Hn=1,Kn=2,Yn=3,qn=4,Xn=5,Jn=6,Et=7,Qn=8,vt=9,Zn=10,er=11,tr=12,nr=13,rr=14,or=15,sr=16,wt=17,ir=18,ar=19,xe=20,ri=21,oi=22,si=23,ii=24,ai=25,cr=26,lr=27,ur=28,fr=29,St=30,_t=31,dr=32,pr=33,Tt=34,kt=35,Oe=1,mr=2,hr=4,le=8,gr=16,Ke=32,br=64,Ye=128,yr=256,Er=512,vr=1024,wr=2048,Sr=4096,Lt=8192,ci=16384,_r=32768,Tr=1<<18,kr=255,xt=256,Rt=512,Lr=1024,Y=0,xr=1,Rr=2,Cr=3,Me=4,Ue=255,sn=e=>{const t=e.clientWidth;if(!t)return 1;const n=e.getBoundingClientRect().width;return n>0?n/t:1},Ct={text:{type:"text"},password:{type:"password"},search:{type:"search"},tel:{type:"tel"},email:{type:"email"},url:{type:"url"},number:{type:"text",mode:"numeric"},decimal:{type:"text",mode:"decimal"},date:{type:"date"},time:{type:"time"}},At=(e,t)=>e==null?t:e===!0||e==="true"||e==="1"||typeof e=="number"&&e>.5,Z=(e,t,n)=>{n===null?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)},Ar=(e,t)=>{if(e.type!=="input"&&e.type!=="textarea")return;const n=e.el,r=t("placeholder");if(Z(n,"placeholder",r==null?null:String(r)),e.type==="input"){const f=Ct[String(t("type")??"text")]??Ct.text,l=n;l.type!==f.type&&(l.type=f.type),Z(n,"inputmode",f.mode??null);const d=t("enterKey");Z(n,"enterkeyhint",d==null?null:String(d))}const s=t("autocapitalize");Z(n,"autocapitalize",s==null?null:String(s));const i=t("autocorrect");i==null?(Z(n,"autocorrect",null),Z(n,"spellcheck",null)):(Z(n,"autocorrect",At(i,!0)?"on":"off"),Z(n,"spellcheck",At(i,!0)?"true":"false"));const o=Number(t("maxLength")??0);Z(n,"maxlength",o>0?String(Math.round(o)):null)},Pe={width:"layout",height:"layout",minWidth:"layout",minHeight:"layout",maxWidth:"layout",maxHeight:"layout",flexBasis:"layout",flexGrow:"layout",flexShrink:"layout",aspectRatio:"layout",gap:"layout",rowGap:"layout",columnGap:"layout",padding:"layout",paddingTop:"layout",paddingRight:"layout",paddingBottom:"layout",paddingLeft:"layout",paddingHorizontal:"layout",paddingVertical:"layout",paddingStart:"layout",paddingEnd:"layout",margin:"layout",marginTop:"layout",marginRight:"layout",marginBottom:"layout",marginLeft:"layout",marginHorizontal:"layout",marginVertical:"layout",marginStart:"layout",marginEnd:"layout",left:"layout",right:"layout",top:"layout",bottom:"layout",start:"layout",end:"layout",inset:"layout",flexDirection:"enum",justifyContent:"enum",alignItems:"enum",alignSelf:"enum",position:"enum",flexWrap:"enum",boxSizing:"enum",display:"enum",overflow:"enum",scrollDirection:"enum",borderWidth:"len",borderTopWidth:"len",borderRightWidth:"len",borderBottomWidth:"len",borderLeftWidth:"len",borderHorizontalWidth:"len",borderVerticalWidth:"len",borderStartWidth:"len",borderEndWidth:"len",color:"color",backgroundColor:"color",borderColor:"color",borderTopColor:"color",borderRightColor:"color",borderBottomColor:"color",borderLeftColor:"color",placeholderColor:"color",refreshControlColor:"color",tintColor:"color",rippleColor:"color",overlayColor:"color",backgroundImage:"str",backgroundSize:"enum",backgroundGradient:"str",borderRadius:"len",borderTopLeftRadius:"len",borderTopRightRadius:"len",borderBottomRightRadius:"len",borderBottomLeftRadius:"len",opacity:"num",transform:"str",transformOrigin:"str",pointerEvents:"enum",fontSize:"len",fontWeight:"num",fontStyle:"enum",fontFamily:"str",lineHeight:"len",letterSpacing:"len",textAlign:"enum",textDecoration:"enum",lineClamp:"num",textOverflow:"enum",objectFit:"enum",placeholder:"str",type:"enum",enterKey:"enum",autocapitalize:"enum",autocorrect:"num",maxLength:"num",keyboardShrink:"num",keyboardDismiss:"num",showScrollbar:"num",overscrollMode:"enum",keyboardDismissMode:"enum",snap:"enum",sheetDetents:"str",sheetDetent:"num",sheetDismissible:"num",dim:"num"},$r={p:"padding",pt:"paddingTop",pr:"paddingRight",pb:"paddingBottom",pl:"paddingLeft",px:"paddingHorizontal",py:"paddingVertical",m:"margin",mt:"marginTop",mr:"marginRight",mb:"marginBottom",ml:"marginLeft",mx:"marginHorizontal",my:"marginVertical",bgColor:"backgroundColor",bgImage:"backgroundImage",bgSize:"backgroundSize",bgGradient:"backgroundGradient"},Or=["placeholderColor","refreshControlColor","tintColor","rippleColor","overlayColor","backgroundGradient"],Ur={display:"flex",overflow:"visible",scrollDirection:"vertical",borderWidth:0,borderTopWidth:0,borderRightWidth:0,borderBottomWidth:0,borderLeftWidth:0,borderHorizontalWidth:0,borderVerticalWidth:0,borderStartWidth:0,borderEndWidth:0,backgroundColor:0,borderColor:0,borderTopColor:0,borderRightColor:0,borderBottomColor:0,borderLeftColor:0,backgroundImage:"",backgroundSize:"cover",borderRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,borderBottomRightRadius:0,borderBottomLeftRadius:0,opacity:1,transform:"identity",transformOrigin:"50% 50%",pointerEvents:"all",fontSize:14,fontWeight:400,fontStyle:"normal",lineHeight:"normal",letterSpacing:0,textAlign:"start",textDecoration:"none",lineClamp:0,textOverflow:"ellipsis",objectFit:"cover",placeholder:"",type:"text",enterKey:"done",autocapitalize:"sentences",autocorrect:1,maxLength:0,keyboardShrink:1,keyboardDismiss:1,showScrollbar:1,overscrollMode:"default",keyboardDismissMode:"interactive",snap:"none",sheetDetents:"",sheetDetent:0,sheetDismissible:1,dim:0},Nr=["duration","delay","layer","commit","loop","loopMode","name"];function an(e){let t=e.trim();/\sxmlns\s*=/.test(t)||(t=t.replace(/<svg\b/,'<svg xmlns="http://www.w3.org/2000/svg"'));const n=new TextEncoder().encode(t);let r="";for(const s of n)r+=String.fromCharCode(s);return`data:image/svg+xml;base64,${btoa(r)}`}function Fr(e){const t=e.match(/viewBox\s*=\s*["']([^"']+)["']/);return t?t[1]:null}const Mr=/\b(?:calc|min|max|clamp)\(/,Pr=e=>{if(!Mr.test(e))return e;let t="";for(let n=0;n<e.length;n++){if(e.startsWith("var(",n)){let s=0;const i=n;for(;n<e.length;n++)if(e[n]==="(")s++;else if(e[n]===")"&&--s===0)break;t+=e.slice(i,Math.min(n+1,e.length));continue}const r=e[n];if(r==="+"||r==="-"){const s=t[t.length-1]??"";if(!(r==="-"&&(s==="e"&&"btlr".includes(e[n+1]??"")||e.slice(Math.max(0,n-7),n)==="comfort"))&&/[\w%.)]/.test(s)){for(t=t.trimEnd()+" "+r+" ";e[n+1]===" ";)n++;continue}}t+=r}return t.replace(/\d*\.\d+|\d+/g,(n,r,s)=>{const i=s.slice(0,r).trimEnd(),o=s.slice(r+n.length).trimStart();return/[\w.%]$/.test(i)||/^[\w.%]/.test(o)||/[*/]$/.test(i)||/^[*/]/.test(o)?n:n+"px"})},Ir={top:"12px",bottom:"4px",left:"16px",right:"16px"},cn=e=>`max(var(--safe-${e}, 0px), calc(var(--safe-${e}-bar, 0px) + var(--comfort-${e}, ${Ir[e]})))`,Dr={vw:"cqw",vh:"cqh",vmin:"cqmin",vmax:"cqmax"},Te=e=>Pr(e).replace(new RegExp("(?<![-\\w])comfort-(top|bottom|left|right)\\b","g"),(t,n)=>cn(n)).replace(new RegExp("(?<![-\\w])safe-(top|bottom|left|right)\\b","g"),(t,n)=>`var(--safe-${n}, 0px)`).replace(/(\d)(vmin|vmax|vw|vh)\b/g,(t,n,r)=>n+Dr[r]),ft=/^-?\d*\.?\d+$/,ee=e=>{if(typeof e=="number")return e+"px";const t=String(e).trim();return ft.test(t)?t+"px":Te(t)},ke=e=>{if(typeof e=="number")return"#"+(e>>>0).toString(16).padStart(e<=16777215?6:8,"0");const t=String(e);return t==="clear"?"transparent":t},Br=/^(rotate|skew)/,Vr=/^translate/,zr=e=>{const t=String(e).trim();return t===""||t==="identity"?"none":t.replace(/([a-zA-Z0-9]+)\s*\(([^)]*)\)/g,(n,r,s)=>{const i=Vr.test(r)?"px":Br.test(r)?"deg":null;return i===null?n:`${r}(${s.split(",").map(o=>{const f=o.trim();return ft.test(f)?f+i:Te(f)}).join(", ")})`})},ln=e=>typeof e=="number"?e+"px":String(e).trim().split(/\s+/).map(t=>ft.test(t)?t+"px":Te(t)).join(" "),J=0,Q=1,ve=2,Ne=["top","right","bottom","left"],Wr=(e,t)=>e==="safe-all"?`var(--safe-${t}, 0px)`:e==="comfort-all"||e==="comfort-x"||e==="comfort-y"?cn(t):ee(e),st=(e,t)=>{const n=(s,i)=>({rank:i,to:o=>s.map(f=>[t(f),Wr(o,f)])}),r=s=>({rank:Q,to:i=>[[t(s),ee(i)]]});return{[e]:n(Ne,J),[`${e}Horizontal`]:n(["left","right"],Q),[`${e}Vertical`]:n(["top","bottom"],Q),[`${e}Start`]:r("inline-start"),[`${e}End`]:r("inline-end"),[`${e}Top`]:n(["top"],ve),[`${e}Right`]:n(["right"],ve),[`${e}Bottom`]:n(["bottom"],ve),[`${e}Left`]:n(["left"],ve)}},Gr=()=>{const e=st("border",n=>`border-${n}-width`),t={};for(const n of Object.keys(e))t[`${n}Width`]=e[n];return t},dt=e=>{const t=[];let n=0,r="";for(const s of e.trim()){if(s==="("&&n++,s===")"&&n--,/\s/.test(s)&&n===0){r&&t.push(r),r="";continue}r+=s}return r&&t.push(r),t},jr=new Set(["none","solid","dashed","dotted","double","hidden"]),Hr=/^-?\d*\.?\d+([a-z%]*)$|^(calc|min|max|clamp)\(/,ye=(e,t)=>({rank:t,to:n=>{let r=null,s=null,i=null;if(typeof n=="number")r=n+"px";else for(const f of dt(String(n)))jr.has(f)?i=f:Hr.test(f)?r=ee(f):s=ke(f);const o=[];for(const f of e)o.push([`border-${f}-width`,r??(s?"1px":"0px")]),o.push([`border-${f}-color`,s??"transparent"]),i&&o.push([`border-${f}-style`,i]);return o}}),Kr=e=>{const t=String(e).trim(),n=(i,o,f)=>[["flex-grow",i],["flex-shrink",o],["flex-basis",f]];if(t==="none")return n("0","0","auto");if(t==="auto")return n("1","1","auto");if(t==="initial")return n("0","1","auto");const r=dt(t),s=i=>i!==void 0&&/^-?\d*\.?\d+$/.test(i);return s(r[0])?r.length===1?n(r[0],"1","0%"):s(r[1])?n(r[0],r[1],r[2]!==void 0?ee(r[2]):"0%"):n(r[0],"1",ee(r[1])):n("1","1",ee(r[0]??"auto"))},un=e=>{var t;return typeof e=="object"&&e!==null&&"_h"in e&&typeof((t=e._h)==null?void 0:t.id)=="number"},Yr=e=>e.replace(/<svg\b[^>]*>/,t=>t.replace(/\spreserveAspectRatio\s*=\s*("[^"]*"|'[^']*')/,"").replace(/^<svg\b/,'<svg preserveAspectRatio="none"')),fn=(e,t)=>{if(un(e))return`url("${t.bufferUrl(e._h.id)}")`;const n=String(e??"");return n===""?"none":n.startsWith("id:")?`url("${t.bufferUrl(Number(n.slice(3)))}")`:n.startsWith("svg:")?`url("${an(Yr(n.slice(4)))}")`:`url("${n.replace(/["\\\n]/g,r=>"\\"+r)}")`},qr=/^\s*(repeating-)?(linear|radial|conic)-gradient\(/,dn=e=>{const t=String(e??"").trim();return t===""?"none":Te(t)},Xr=(e,t)=>{const n=typeof e=="string"&&qr.test(e),r=un(e)||typeof e=="string"&&/^(id:|https?:|data:|blob:|\.{0,2}\/)/.test(e);return[["--lc-bg-grad",n?dn(e):"none"],["--lc-bg-img",r?fn(e,t):"none"],["background-color",n||r?"transparent":ke(e)]]},Jr=e=>{const t=typeof e=="number"?[e+"px"]:dt(String(e)).map(o=>ln(o)),[n,r=n,s=n,i=r]=t;return[["border-top-left-radius",n??"0px"],["border-top-right-radius",r??"0px"],["border-bottom-right-radius",s??"0px"],["border-bottom-left-radius",i??"0px"]]},Qr=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-monospace","ui-sans-serif","ui-serif","inherit"]),Zr=e=>{const t=String(e).trim();return t==="monospaced"?"monospace":t.startsWith("var(")||t.includes(",")||/^["']/.test(t)||Qr.has(t)?t:`"${t.replace(/"/g,'\\"')}"`},eo=e=>e===!0||e==="true"||typeof e=="number"&&e>.5||e==="1",to=e=>t=>e[String(t)]??String(t),Le={width:{css:"width",as:"len"},height:{css:"height",as:"len"},minWidth:{css:"min-width",as:"len"},minHeight:{css:"min-height",as:"len"},maxWidth:{css:"max-width",as:"len"},maxHeight:{css:"max-height",as:"len"},flexBasis:{css:"flex-basis",as:"len"},flexGrow:{css:"flex-grow",as:"num"},flexShrink:{css:"flex-shrink",as:"num"},aspectRatio:{css:"aspect-ratio",as:"num"},gap:{css:["row-gap","column-gap"],as:"len",rank:J},rowGap:{css:"row-gap",as:"len"},columnGap:{css:"column-gap",as:"len"},...st("padding",e=>`padding-${e}`),...st("margin",e=>`margin-${e}`),inset:{css:Ne,as:"len",rank:J},top:{css:"top",as:"len"},right:{css:"right",as:"len"},bottom:{css:"bottom",as:"len"},left:{css:"left",as:"len"},start:{css:"inset-inline-start",as:"len",rank:Q},end:{css:"inset-inline-end",as:"len",rank:Q},flexDirection:{css:"flex-direction",as:"raw"},justifyContent:{css:"justify-content",as:"raw"},alignItems:{css:"align-items",as:"raw"},alignSelf:{css:"align-self",as:"raw"},position:{css:"position",as:"raw"},flexWrap:{css:"flex-wrap",as:"raw"},boxSizing:{css:"box-sizing",as:"raw"},display:{css:"display",as:"raw"},overflow:{rank:J,to:e=>{const t=e==="scroll"?"auto":String(e);return[["overflow-x",t],["overflow-y",t]]}},scrollDirection:{to:e=>e==="horizontal"?[["overflow-x","auto"],["overflow-y","hidden"],["flex-direction","row"]]:e==="all"?[["overflow-x","auto"],["overflow-y","auto"]]:[["overflow-x","hidden"],["overflow-y","auto"],["flex-direction","column"]],rank:Q},...Gr(),color:{css:"color"},backgroundColor:{css:"background-color"},borderColor:{css:Ne.map(e=>`border-${e}-color`),rank:J},borderTopColor:{css:"border-top-color"},borderRightColor:{css:"border-right-color"},borderBottomColor:{css:"border-bottom-color"},borderLeftColor:{css:"border-left-color"},placeholderColor:{css:"--lc-placeholder"},refreshControlColor:{css:"--lc-refresh"},tintColor:{css:"--lc-tint"},overlayColor:{css:"--lc-overlay"},rippleColor:{none:"a browser has no ripple: the press feedback of a page is `$pressed`"},backgroundImage:{to:(e,t)=>[["--lc-bg-img",fn(e,t)]]},backgroundGradient:{to:e=>[["--lc-bg-grad",dn(e)]]},backgroundSize:{to:e=>e==="tile"?[["background-size","auto"],["background-repeat","repeat"],["background-position","0 0"]]:[["background-size",e==="fill"?"100% 100%":String(e)],["background-repeat","no-repeat"],["background-position","center"]]},borderRadius:{to:Jr,rank:J},borderTopLeftRadius:{css:"border-top-left-radius"},borderTopRightRadius:{css:"border-top-right-radius"},borderBottomRightRadius:{css:"border-bottom-right-radius"},borderBottomLeftRadius:{css:"border-bottom-left-radius"},opacity:{css:"opacity"},transform:{to:e=>[["transform",zr(e)]]},transformOrigin:{css:"transform-origin",as:"lens"},pointerEvents:{to:e=>[["pointer-events",e==="none"?"none":"auto"]]},dim:{css:"--lc-dim"},fontSize:{css:"font-size"},fontWeight:{css:"font-weight",as:"raw"},fontStyle:{to:e=>[["font-style",e===2?"italic":e===0?"normal":String(e)]]},fontFamily:{to:e=>[["font-family",Zr(e)]]},lineHeight:{to:e=>[["line-height",e==="normal"?"1.2":ee(e)]]},letterSpacing:{css:"letter-spacing"},textAlign:{css:"text-align"},textDecoration:{css:"text-decoration-line"},lineClamp:{rank:J,to:e=>Number(e)>0?[["display","-webkit-box"],["-webkit-box-orient","vertical"],["-webkit-line-clamp",String(Math.round(Number(e)))],["overflow-x","hidden"],["overflow-y","hidden"]]:[["-webkit-line-clamp","none"]]},textOverflow:{css:"text-overflow"},objectFit:{to:e=>[["object-fit",String(e)],["--lc-fit",e==="fill"?"100% 100%":String(e)]]},placeholder:{attr:!0},type:{attr:!0},enterKey:{attr:!0},autocapitalize:{attr:!0},autocorrect:{attr:!0},maxLength:{attr:!0},keyboardShrink:{attr:!0},keyboardDismiss:{attr:!0},showScrollbar:{to:e=>[["scrollbar-width",eo(e)?"thin":"none"]]},overscrollMode:{to:e=>[["overscroll-behavior",to({default:"auto",none:"none",absorb:"contain"})(e)]]},keyboardDismissMode:{attr:!0},snap:{to:e=>e==="none"?[["scroll-snap-type","none"],["--lc-snap","none"]]:[["scroll-snap-type","both mandatory"],["--lc-snap",String(e)]]},sheetDetents:{attr:!0},sheetDetent:{attr:!0},sheetDismissible:{attr:!0},background:{to:Xr,rank:J},border:ye(Ne,J),borderTop:ye(["top"],Q),borderRight:ye(["right"],Q),borderBottom:ye(["bottom"],Q),borderLeft:ye(["left"],Q),flex:{to:Kr,rank:J}},qe=e=>$r[e]??e,no=e=>e in Le,pn=e=>{const t=Le[e];return!!t&&"attr"in t},ro={overflow:"overflow-x",pointerEvents:"pointer-events",fontFamily:"font-family",fontStyle:"font-style",lineHeight:"line-height",objectFit:"object-fit",transform:"transform",borderRadius:"border-top-left-radius",borderWidth:"border-top-width",borderColor:"border-top-color",backgroundImage:"--lc-bg-img",backgroundGradient:"--lc-bg-grad",backgroundSize:"background-size",showScrollbar:"scrollbar-width",overscrollMode:"overscroll-behavior",snap:"--lc-snap",lineClamp:"-webkit-line-clamp",borderTopWidth:"border-top-width",borderRightWidth:"border-right-width",borderBottomWidth:"border-bottom-width",borderLeftWidth:"border-left-width",borderHorizontalWidth:"border-left-width",borderVerticalWidth:"border-top-width",borderStartWidth:"border-inline-start-width",borderEndWidth:"border-inline-end-width"},oo=e=>{const t=Le[e];return t&&"css"in t&&typeof t.css=="string"?t.css:ro[e]??null},so={len:ee,lens:ln,num:e=>String(e),raw:e=>String(e),color:ke},io={color:"color",len:"len",enum:"raw",num:"num",str:"raw",layout:"raw"},$t=e=>{const t=Le[e];return t&&"rank"in t&&t.rank!==void 0?t.rank:ve},Xe=(e,t,n)=>{const r=[...e].filter(([,i])=>i!=null);r.sort((i,o)=>$t(i[0])-$t(o[0]));const s=new Map;for(const[i,o]of r){const f=Le[i];if(!f){n==null||n(i);continue}if("attr"in f||"none"in f)continue;if("to"in f){for(const[b,E]of f.to(o,t))s.set(b,E);continue}const l=so[f.as??io[Pe[i]??"layout"]],d=l(o);if(typeof f.css=="string")s.set(f.css,d);else for(const b of f.css)s.set(b,d)}return s},Ot=e=>[...e].sort((t,n)=>t[0]<n[0]?-1:t[0]>n[0]?1:0).map(([t,n])=>`${t}:${n}`).join(";"),mn=0,hn=1,Se=2,_e=3,gn=4,de=65,Ie=1.70158,Re=Ie*1.525,Ut=Ie+1,Nt=2*Math.PI/3,Ft=2*Math.PI/4.5,Ce=e=>e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375,it=[["linear",e=>e],["inSine",e=>1-Math.cos(e*Math.PI/2)],["outSine",e=>Math.sin(e*Math.PI/2)],["inOutSine",e=>-(Math.cos(Math.PI*e)-1)/2],["inQuad",e=>e*e],["outQuad",e=>1-(1-e)*(1-e)],["inOutQuad",e=>e<.5?2*e*e:1-(-2*e+2)**2/2],["inCubic",e=>e*e*e],["outCubic",e=>1-(1-e)**3],["inOutCubic",e=>e<.5?4*e*e*e:1-(-2*e+2)**3/2],["inQuart",e=>e**4],["outQuart",e=>1-(1-e)**4],["inOutQuart",e=>e<.5?8*e**4:1-(-2*e+2)**4/2],["inExpo",e=>e===0?0:2**(10*e-10)],["outExpo",e=>e===1?1:1-2**(-10*e)],["inOutExpo",e=>e===0?0:e===1?1:e<.5?2**(20*e-10)/2:(2-2**(-20*e+10))/2],["inCirc",e=>1-Math.sqrt(1-e*e)],["outCirc",e=>Math.sqrt(1-(e-1)**2)],["inOutCirc",e=>e<.5?(1-Math.sqrt(1-(2*e)**2))/2:(Math.sqrt(1-(-2*e+2)**2)+1)/2],["inBack",e=>Ut*e*e*e-Ie*e*e],["outBack",e=>1+Ut*(e-1)**3+Ie*(e-1)**2],["inOutBack",e=>e<.5?(2*e)**2*((Re+1)*2*e-Re)/2:((2*e-2)**2*((Re+1)*(e*2-2)+Re)+2)/2],["inElastic",e=>e===0?0:e===1?1:-(2**(10*e-10))*Math.sin((e*10-10.75)*Nt)],["outElastic",e=>e===0?0:e===1?1:2**(-10*e)*Math.sin((e*10-.75)*Nt)+1],["inOutElastic",e=>e===0?0:e===1?1:e<.5?-(2**(20*e-10)*Math.sin((20*e-11.125)*Ft))/2:2**(-20*e+10)*Math.sin((20*e-11.125)*Ft)/2+1],["inBounce",e=>1-Ce(1-e)],["outBounce",Ce],["inOutBounce",e=>e<.5?(1-Ce(1-2*e))/2:(1+Ce(2*e-1))/2],["smoothstep",e=>e*e*(3-2*e)]],ao={in:"inQuad",out:"outQuad",inOut:"inOutQuad",easeIn:"inQuad",easeOut:"outQuad",easeInOut:"inOutQuad","ease-in":"inQuad","ease-out":"outQuad","ease-in-out":"inOutQuad"},co=e=>{const t=ao[e]??e;for(let n=0;n<it.length;n++)if(it[n][0]===t)return n;return-1},lo=[.25,.1,.25,1],Ae={kind:mn,p:[0,0,0,0]},uo=e=>{const t=new Float32Array(de);for(let n=0;n<de;n++)t[n]=e(n/(de-1));return t[0]=0,t[de-1]=1,t},fo=e=>{if(e===void 0)return Ae;if(typeof e=="function")return{kind:gn,p:[0,0,0,0],table:uo(e)};if(Array.isArray(e)){const[s,i,o,f]=e;return{kind:Se,p:[s,i,o,f]}}const t=e.trim();if(t==="linear")return Ae;if(t==="ease")return{kind:Se,p:lo};if(t==="steps")return{kind:_e,p:[1,0,0,0]};let n=/^steps\(\s*(\d+)\s*(?:,\s*(start|end|jump-start|jump-end)\s*)?\)$/.exec(t);if(n)return{kind:_e,p:[Math.max(1,parseInt(n[1],10)),n[2]==="start"||n[2]==="jump-start"?1:0,0,0]};if(n=/^cubic-bezier\(\s*([-\d.e]+)\s*,\s*([-\d.e]+)\s*,\s*([-\d.e]+)\s*,\s*([-\d.e]+)\s*\)$/.exec(t),n)return{kind:Se,p:[parseFloat(n[1]),parseFloat(n[2]),parseFloat(n[3]),parseFloat(n[4])]};const r=co(t);return r===0?Ae:r>0?{kind:hn,p:[r,0,0,0]}:(console.warn(`[tween] unknown easing "${t}" — using linear`),Ae)},po=(e,t,n,r,s)=>{const i=1-3*r+3*t,o=3*r-6*t,f=3*t,l=1-3*s+3*n,d=3*s-6*n,b=3*n;let E=e;for(let g=0;g<8;g++){const m=((i*E+o)*E+f)*E-e,a=(3*i*E+2*o)*E+f;if(Math.abs(m)<1e-6||Math.abs(a)<1e-6)break;E-=m/a}return E=Math.min(1,Math.max(0,E)),((l*E+d)*E+b)*E},mo=(e,t)=>{if(t<=0)return e.kind===_e&&e.p[1]===1?1/e.p[0]:0;if(t>=1)return 1;switch(e.kind){case hn:return it[e.p[0]][1](t);case Se:return po(t,e.p[0],e.p[1],e.p[2],e.p[3]);case _e:{const n=e.p[0];return e.p[1]===1?Math.min(1,Math.ceil(t*n)/n):Math.floor(t*n)/n}case gn:{const n=e.table,r=t*(de-1),s=Math.floor(r),i=n[s],o=n[Math.min(s+1,de-1)];return i+(o-i)*(r-s)}default:return t}},Mt=24,Pt=e=>String(Math.round(e*1e4)/1e4),ho="cubic-bezier(0.3333, 0, 0.6667, 1)",go=e=>{switch(e.kind){case mn:return"linear";case Se:return`cubic-bezier(${e.p.map(Pt).join(", ")})`;case _e:return`steps(${e.p[0]}, ${e.p[1]===1?"jump-start":"jump-end"})`}const t=[];for(let n=0;n<=Mt;n++)t.push(Pt(mo(e,n/Mt)));return`linear(${t.join(", ")})`},bo=e=>e===void 0||e==="smoothstep"?ho:go(fo(e)),bn=["lc-base","lc-bag","lc-own","lc-orient","lc-class","lc-hover","lc-press","lc-focus"],yo=["--lc-bg-grad","--lc-bg-img","--lc-tint","--lc-overlay","--lc-refresh","--lc-fit","--lc-src","--lc-src-tint","--lc-iw","--lc-ih","--lc-ir","--lc-crop-size","--lc-crop-pos"],yn="lc-app",Eo=`
3
+ @layer ${bn.join(", ")};
4
4
 
5
5
  @layer lc-base {
6
6
  .lc-root {
7
7
  position: relative;
8
8
  overflow: hidden;
9
9
  container-type: size;
10
- container-name: ${_n};
11
- color: var(--color, #fff);
10
+ container-name: ${yn};
11
+ color: var(--text, #fff);
12
12
  font-family: var(--fontFamily, "Roboto"), system-ui, sans-serif;
13
13
  font-size: 14px;
14
14
  font-weight: 400;
@@ -20,6 +20,11 @@ ${e.stack}`:String(e);try{return JSON.stringify(e)}catch{return String(e)}},lr=(
20
20
  -webkit-text-size-adjust: 100%;
21
21
  }
22
22
 
23
+ /* A node whose own theme scope names the default text style starts it anew for its subtree
24
+ (the lowest layer: any style of the app wins). */
25
+ .lc[data-theme-text] { color: var(--text); }
26
+ .lc[data-theme-font] { font-family: var(--fontFamily), system-ui, sans-serif; }
27
+
23
28
  .lc {
24
29
  display: flex;
25
30
  flex-direction: column;
@@ -61,7 +66,53 @@ ${e.stack}`:String(e);try{return JSON.stringify(e)}catch{return String(e)}},lr=(
61
66
  /* A screen the router covered keeps its subtree, its layout and its state. */
62
67
  .lc-covered { visibility: hidden !important; pointer-events: none !important; }
63
68
 
64
- .lc-i, .lc-scrollable, input.lc, textarea.lc { pointer-events: auto; }
69
+ /* ---- a video (../../features/video): the player's element fills the node, or the app */
70
+ .lc-video { overflow: hidden; object-fit: contain; }
71
+ .lc-video-picture {
72
+ display: block;
73
+ width: 100%;
74
+ height: 100%;
75
+ object-fit: inherit;
76
+ pointer-events: none;
77
+ }
78
+ .lc-video-full {
79
+ position: absolute;
80
+ inset: 0;
81
+ background: #000;
82
+ object-fit: contain;
83
+ }
84
+
85
+ /* ---- a native view (../../features/plugins): the half's element fills the node, or the app */
86
+ .lc-native { overflow: hidden; pointer-events: auto; }
87
+ .lc-view { position: absolute; inset: 0; width: 100%; height: 100%; }
88
+ .lc-view-full { position: absolute; inset: 0; pointer-events: auto; }
89
+
90
+ /* ---- a pager (../pager.ts): the tabs are the track's scroll, snapped */
91
+ .lc-pager { overflow: hidden; }
92
+ .lc-pager-track {
93
+ position: absolute;
94
+ inset: 0;
95
+ display: flex;
96
+ flex-direction: row;
97
+ overflow-x: auto;
98
+ overflow-y: hidden;
99
+ scroll-snap-type: x mandatory;
100
+ overscroll-behavior-x: contain;
101
+ scrollbar-width: none;
102
+ pointer-events: auto;
103
+ }
104
+ .lc-pager-track::-webkit-scrollbar { display: none; }
105
+ .lc-pager-track.lc-drilled { overflow-x: hidden; }
106
+ .lc-pager-cell {
107
+ position: relative;
108
+ flex: 0 0 100%;
109
+ overflow: hidden;
110
+ scroll-snap-align: start;
111
+ scroll-snap-stop: always;
112
+ }
113
+ .lc-pager-cell > .lc-above, .lc-root > .lc-above { z-index: 1; }
114
+
115
+ .lc-i, .lc-scrollable, .lc-vlist, input.lc, textarea.lc { pointer-events: auto; }
65
116
 
66
117
  /* The core measures a text against the width its parent has: it wraps there even where
67
118
  nothing shrinks it. */
@@ -83,11 +134,16 @@ ${e.stack}`:String(e);try{return JSON.stringify(e)}catch{return String(e)}},lr=(
83
134
  }
84
135
  button.lc:focus:not(:focus-visible) { outline: none; }
85
136
 
86
- img.lc {
137
+ img.lc, canvas.lc {
87
138
  display: block;
88
139
  object-fit: cover;
89
140
  -webkit-user-drag: none;
90
141
  }
142
+ /* A drawing (a canvas of the app's): its size is the drawing's in the app's px, not its pixels'. */
143
+ .lc.lc-image-canvas {
144
+ width: var(--lc-iw, auto);
145
+ aspect-ratio: var(--lc-ir, auto);
146
+ }
91
147
  /* An svg with a tint: its alpha is the mask, the tint the fill — the style's, else the one the
92
148
  source came with. A div has no size of its own: the source's is given to it (--lc-iw /
93
149
  --lc-ir), under any style of the app. */
@@ -132,6 +188,23 @@ ${e.stack}`:String(e);try{return JSON.stringify(e)}catch{return String(e)}},lr=(
132
188
  }
133
189
  .lc-scrollable > .lc { scroll-snap-align: var(--lc-snap, none); }
134
190
 
191
+ /* ---- a virtualized list (../vlist): the scroll is the browser's, where it stands is the
192
+ window's — the browser's own anchoring would compensate a second time */
193
+ .lc-vlist {
194
+ overflow-x: hidden;
195
+ overflow-y: auto;
196
+ scrollbar-width: thin;
197
+ overflow-anchor: none;
198
+ }
199
+ .lc-vlist-content {
200
+ display: flex;
201
+ flex-direction: column;
202
+ flex: 0 0 auto;
203
+ align-items: stretch;
204
+ box-sizing: border-box;
205
+ min-width: 0;
206
+ }
207
+
135
208
  /* ---- the spinner of a pull to refresh (../refresh.ts) */
136
209
  .lc-refresh {
137
210
  position: absolute;
@@ -146,9 +219,9 @@ ${e.stack}`:String(e);try{return JSON.stringify(e)}catch{return String(e)}},lr=(
146
219
  border: 3px solid color-mix(in srgb, var(--lc-refresh-color, #8e8e93) 25%, transparent);
147
220
  border-top-color: var(--lc-refresh-color, #8e8e93);
148
221
  pointer-events: none;
149
- will-change: transform;
222
+ will-change: translate, transform;
150
223
  }
151
- .lc-refresh.lc-settling { transition: transform 0.2s ease; }
224
+ .lc-refresh.lc-settling { transition: translate 0.2s ease, transform 0.2s ease; }
152
225
  .lc-refresh.lc-spinning { animation: lc-spin 0.8s linear infinite; }
153
226
  @keyframes lc-spin { from { rotate: 0deg; } to { rotate: 360deg; } }
154
227
 
@@ -162,6 +235,9 @@ ${e.stack}`:String(e);try{return JSON.stringify(e)}catch{return String(e)}},lr=(
162
235
  align-items: center;
163
236
  overflow: hidden;
164
237
  pointer-events: none;
238
+ /* a root of its own: the default text style starts again here, off the app's table */
239
+ color: var(--text, #fff);
240
+ font-family: var(--fontFamily, "Roboto"), system-ui, sans-serif;
165
241
  }
166
242
  .lc-scrim { position: absolute; inset: 0; pointer-events: auto; }
167
243
  /* A widget lets a touch through where nothing of it takes one (a HUD over a scene) — but
@@ -195,7 +271,8 @@ ${e.stack}`:String(e);try{return JSON.stringify(e)}catch{return String(e)}},lr=(
195
271
  }
196
272
  .lc-toast.lc-on { opacity: 1; transform: none; }
197
273
  }
198
- `,Uo=e=>{const t=e.defaultView??window;for(const u of Do)try{t.CSS.registerProperty({name:u,syntax:"*",inherits:!1})}catch{}const n=e.createElement("style");n.setAttribute("data-lecodes-lite",""),n.textContent=Bo,e.head.appendChild(n);const o=n.sheet,a=(u,d)=>{const v=u.insertRule(d,u.cssRules.length);return u.cssRules[v]},i=(u,d)=>{const v=u.cssRules;for(let p=v.length-1;p>=0;p--)if(v[p]===d){u.deleteRule(p);return}},r=new Map,c=(u,d)=>{const v=d===void 0?u:`${u}.${d}`;let p=r.get(v);return p||(p=d===void 0?a(o,`@layer ${u} {}`):a(c(u),`@layer ${d} {}`),r.set(v,p)),p};for(const u of Tn)u!=="lc-base"&&c(u);return{insert(u,d,v){const p=c(u,v),f=a(p,d);return{remove:()=>i(p,f)}},own(u){const d=c("lc-own"),v=a(d,`${u} {}`);return{set:(p,f)=>v.style.setProperty(p,f),unset:p=>{v.style.removeProperty(p)},remove:()=>i(d,v)}},destroy(){n.remove()}}},pt="lc-i";let Wo=1;const rt=new Map,kn=e=>{let t=rt.get(e);return t||rt.set(e,t=`lc-c${rt.size+1}`),t},Ho=(e,t)=>{const n=`{${t.text}}`,o=a=>`${a} .${e}, .${e}${a}`;switch(t.name){case"pressed":return{layer:"lc-press",text:`${o(`.${pt}:active`)} ${n}`};case"hovered":return{layer:"lc-hover",text:`@media (hover: hover) { ${o(`.${pt}:hover`)} ${n} }`};case"focused":return{layer:"lc-focus",text:`${o(".lc:focus-visible")} ${n}`};case"landscape":case"portrait":return{layer:"lc-orient",text:`@container ${_n} (orientation: ${t.name}) { .${e} ${n} }`};default:{const a=kn(t.name);return{layer:"lc-class",sub:a,text:`${o(`.${a}`)} ${n}`}}}},zo=e=>e.base+""+e.transition+e.blocks.map(t=>`${t.name}${t.text}`).join(""),Vo=256,Go=e=>{const t=new Map,n=new Set,o=()=>{let a=n.size>>1;for(const i of n){if(a--<=0)break;for(const r of i.rules)r.remove();n.delete(i),t.delete(i.key)}};return{acquire(a){const i=zo(a);let r=t.get(i);if(r)return r.refs===0&&n.delete(r),r.refs++,r;const c=`lc-s${Wo++}`,u=[],d=a.transition?`${a.base?";":""}transition:${a.transition}`:"";u.push(e.insert("lc-bag",`.${c} {${a.base}${d}}`));for(const v of a.blocks){const p=Ho(c,v);u.push(e.insert(p.layer,p.text,p.sub))}return t.set(i,r={name:c,key:i,refs:1,rules:u}),r},release(a){--a.refs>0||(n.add(a),n.size>Vo&&o())},count:()=>({live:t.size-n.size,idle:n.size})}},jo=()=>({base:new Map,own:new Map,blocks:new Map,cls:null,rule:null,applied:new Map,dirty:!1}),Vt=new Set([...oo,"easing"]),Ko=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&!("_h"in e),Yo=(e,t,n,o)=>{const a=new Set;let i=!1;const r=new Set,c=b=>{r.has(b)||(r.add(b),o(`style: "${b}" is not a style property — ignored`))};let u=null,d=null;const v=b=>{b.style.dirty=!0,a.add(b),!i&&(i=!0,queueMicrotask(s))},p=b=>{const y=b.style,T=Ve(y.own,n,c);if(!(T.size===0&&!y.rule)){y.rule||(y.rule=e.own(`.lc-n${b.id}`),b.el.classList.add(`lc-n${b.id}`));for(const _ of y.applied.keys())T.has(_)||y.rule.unset(_);for(const[_,C]of T)y.applied.get(_)!==C&&y.rule.set(_,C);y.applied=T}},f=(b,y)=>{const T=new Map;for(const[_,C]of b){if(!(C.duration>0))continue;const h=`${C.duration}ms ${Fo(C.easing)} ${C.delay}ms`;for(const L of y.get(_).keys())L.startsWith("--")||T.set(L,`${L} ${h}`)}return[...T.values()].join(", ")},E=b=>{const y=b.style;y.dirty=!1;const T=Dt(Ve(y.base,n,c)),_=new Map,C=[];for(const[L,S]of y.blocks){const w=Ve(S.props,n,c);_.set(L,w),w.size>0&&C.push({name:L,text:Dt(w)})}const h=y.cls;T===""&&C.length===0?y.cls=null:y.cls=t.acquire({base:T,blocks:C,transition:f(y.blocks,_)}),h!==y.cls&&(h&&b.el.classList.remove(h.name),y.cls&&b.el.classList.add(y.cls.name)),h&&t.release(h),u==null||u(b)};function s(){if(i=!1,a.size===0)return;const b=[...a];a.clear();for(const y of b)y.style.dirty&&E(y)}const l=(b,y,T)=>{if(T==null){b.blocks.delete(y);return}if(!Ko(T))return;let _=b.blocks.get(y);_||b.blocks.set(y,_={props:new Map,duration:0,delay:0,easing:void 0});for(const C of Object.keys(T)){const h=T[C];if(C==="duration"){_.duration=Number(h)||0;continue}if(C==="delay"){_.delay=Number(h)||0;continue}if(C==="easing"){_.easing=h;continue}if(Vt.has(C)||C[0]==="$")continue;const L=ce(C);_.props.delete(L),h!=null&&_.props.set(L,h)}};return{flush:s,set onChange(b){u=b},set onWrite(b){d=b},merge(b,y){const T=b.style;let _=!1;for(const C of Object.keys(y)){const h=y[C];if(C[0]==="$"){l(T,C.slice(1),h);continue}if(Vt.has(C))continue;const L=ce(C);T.base.delete(L),h!=null&&T.base.set(L,h),T.own.delete(L)&&(_=!0),d==null||d(b,L)}_&&p(b),v(b)},set(b,y,T){const _=b.style;if(y[0]==="$"){l(_,y.slice(1),T),v(b);return}const C=ce(y);if(!ko(C)){c(C);return}d==null||d(b,C),T==null?(_.own.delete(C),_.base.delete(C)&&v(b)):_.own.set(C,T),p(b),(vn(C)||C==="tintColor")&&(u==null||u(b))},setClass(b,y,T){b.el.classList.toggle(kn(y),T)},value(b,y){const T=b.style;return T.own.has(y)?T.own.get(y):T.base.get(y)},owns(b,y){return b.style.own.has(y)||b.style.base.has(y)},names(b,y){const T=b.style;if(T.own.has(y)||T.base.has(y))return!0;for(const _ of T.blocks.values())if(_.props.has(y))return!0;return!1},drop(b){const y=b.style;a.delete(b),y.cls&&(t.release(y.cls),y.cls=null),y.rule&&(y.rule.remove(),y.rule=null)}}},Xo={button:"button",input:"input",textarea:"textarea",image:"img"},qo=(e,t)=>{const n=e.createElement(Xo[t]??"div");if(n.className=`lc lc-${t}`,t==="button"&&(n.type="button"),t==="image"){const o=n;o.alt="",o.decoding="async",o.draggable=!1}return n},Jo=(e,t,n)=>({id:t,type:n,el:qo(e,n),parent:null,flags:0,held:!0,rooted:!1,token:{},style:jo(),strings:new Map}),Rn=Symbol("lecodes.node"),Ee=e=>e==null?void 0:e[Rn],xn=e=>{e.el[Rn]=e,e.el.setAttribute("data-node",String(e.id))},Ge=e=>{const t=[];for(let n=e.el.firstElementChild;n;n=n.nextElementSibling){const o=Ee(n);o&&o.parent===e&&t.push(o)}return t},ot=(e,t=",")=>{const n=[];let o=0,a="";for(const i of e){if(i==="("&&o++,i===")"&&o--,i===t&&o===0){n.push(a.trim()),a="";continue}a+=i}return a.trim()!==""&&n.push(a.trim()),n},Gt={"to top":0,"to right":90,"to bottom":180,"to left":270,"to top right":45,"to right top":45,"to bottom right":135,"to right bottom":135,"to bottom left":225,"to left bottom":225,"to top left":315,"to left top":315},Qo=e=>{if(e in Gt)return Gt[e];const t=/^(-?[\d.]+)(deg|rad|turn|grad)$/.exec(e);if(!t)return null;const n=parseFloat(t[1]);return t[2]==="deg"?n:t[2]==="rad"?n*180/Math.PI:t[2]==="turn"?n*360:n*.9},Zo=(e,t)=>{const n=[];for(const o of ot(e.trim())){const a=/^(?:repeating-)?(linear|radial)-gradient\((.*)\)$/s.exec(o);if(!a)return null;const i=a[1],r=ot(a[2]);let c=i==="linear"?180:0;if(r.length>0){const d=r[0],v=i==="linear"?Qo(d):null;v!==null?(c=v,r.shift()):i==="radial"&&/\b(circle|ellipse|at|closest|farthest)\b/.test(d)&&r.shift()}const u=[];for(const d of r){const v=ot(d," "),p=v[v.length-1],f=v.length>1&&/^-?[\d.]+%$/.test(p),E=f?v.slice(0,-1).join(" "):d;u.push({color:t(E)??"#00000000",position:f?parseFloat(p)/100:null})}if(u.length===0)return null;u[0].position===null&&(u[0].position=0),u[u.length-1].position===null&&(u[u.length-1].position=1);for(let d=1;d<u.length-1;d++){if(u[d].position!==null)continue;let v=d;for(;u[v].position===null;)v++;const p=u[d-1].position,f=u[v].position;for(let E=d;E<v;E++)u[E].position=p+(f-p)*(E-d+1)/(v-d+1);d=v}n.push({type:i,angle:c,stops:u.map(d=>({color:d.color,position:d.position}))})}return n.length>0?n:null},es=Object.keys(Ye).filter(e=>Ye[e]!=="layout"),ae=e=>Math.max(0,Math.min(255,Math.round(e))).toString(16).padStart(2,"0"),jt=e=>{const t=/^rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)(?:\s*[,/]\s*([\d.]+%?))?\s*\)$/.exec(e.trim());if(t){const o=t[4]===void 0?1:t[4].endsWith("%")?parseFloat(t[4])/100:parseFloat(t[4]);return`#${ae(+t[1])}${ae(+t[2])}${ae(+t[3])}${ae(o*255)}`}const n=/^color\(srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s*\/\s*([\d.]+))?\)$/.exec(e.trim());return n?`#${ae(+n[1]*255)}${ae(+n[2]*255)}${ae(+n[3]*255)}${ae((n[4]===void 0?1:+n[4])*255)}`:null},ts=e=>{if(e==="none")return[1,0,0,0,1,0,0,0,1];const t=/^matrix\(([^)]+)\)$/.exec(e);if(!t)return null;const[n,o,a,i,r,c]=t[1].split(",").map(u=>parseFloat(u));return[n,o,0,a,i,0,r,c,1]},Kt={pointerEvents:{auto:"all"},overflow:{auto:"scroll"},display:{"-webkit-box":"flex",block:"flex"},showScrollbar:{none:"0",thin:"1",auto:"1"},overscrollMode:{auto:"default",contain:"absorb"},textAlign:{"-webkit-auto":"start"}},ns=e=>{const t=e.root.ownerDocument,n=t.defaultView??window;let o=null;const a=d=>{o||(o=t.createElement("span"),o.style.cssText="position:absolute;visibility:hidden;pointer-events:none"),o.isConnected||e.root.appendChild(o),o.style.color="",o.style.color=d;const v=o.style.color===""?null:jt(n.getComputedStyle(o).color);return o.remove(),v},i=(d,v,p,f)=>{var l,b;if(vn(v)){const y=e.value(d,v);return y==null?null:p==="num"?Number(y===!0?1:y===!1?0:y):String(y)}const E=ft(v);if(E===null)return null;const s=f.getPropertyValue(E).trim();if(s===""&&!d.el.isConnected)return r(d,v,p);if(s==="")return null;switch(p){case"color":return E.startsWith("--")?a(s):jt(s);case"len":{const y=parseFloat(s);return Number.isFinite(y)?y:v==="lineHeight"?parseFloat(f.fontSize)*1.2:null}case"num":{if(v==="lineClamp")return s==="none"?0:parseFloat(s)||0;const y=parseFloat(((l=Kt[v])==null?void 0:l[s])??s);return Number.isFinite(y)?y:null}case"enum":return((b=Kt[v])==null?void 0:b[s])??s;default:return v==="backgroundGradient"?s==="none"?null:Zo(s,a):v==="transform"?ts(s):v==="transformOrigin"?null:v==="fontFamily"?s.split(",")[0].trim().replace(/^["']|["']$/g,""):v==="backgroundImage"&&s==="none"?"":s}},r=(d,v,p)=>{const f=e.value(d,v)??ro[v];if(f==null)return null;if(v==="transform")return f==="identity"||f==="none"?[1,0,0,0,1,0,0,0,1]:null;if(p==="color")return typeof f=="number"?`#${(f>>>0).toString(16).padStart(8,"0")}`:a(String(f));if(p==="len"||p==="num"){const E=typeof f=="number"?f:parseFloat(String(f));return Number.isFinite(E)?E:null}return String(f)},c=d=>{const v=n.getComputedStyle(d.el),p=[],f=[],E={};for(const s of es){const l=e.owns(d,s);l&&p.push(s);const b=i(d,s,Ye[s],v);if(no.includes(s)&&!l&&(b===null||b==="none")){E[s]=null;continue}f.push(s),E[s]=b}return{present:f,dirty:[],own:p,...E}},u=d=>{const v=d.el,p={id:d.id,type:d.type},f=d.strings.get("name");f&&(p.name=f);const E=d.strings.get("text");return d.type==="text"&&E&&(p.text=E),(d.type==="input"||d.type==="textarea")&&(p.value=v.value),p.flags=d.flags,p.layout=[v.offsetLeft,v.offsetTop,v.offsetWidth,v.offsetHeight],p.paint=c(d),p.children=Ge(d).map(u),p};return{dump(){return e.flush(),JSON.stringify({roots:e.roots().map(d=>({kind:d.kind,node:u(d.node)}))})},paint(d){return d?(e.flush(),JSON.stringify(c(d))):"null"}}},Yt=10,rs=500,os=e=>{const{root:t,emit:n}=e,o=t.ownerDocument,a=o.defaultView??window,i=x=>{const k=t.getBoundingClientRect(),I=pn(t)||1;return[(x.clientX-k.left)/I,(x.clientY-k.top)/I]},r=(x,k)=>{for(let I=x instanceof Element?x:null;I&&I!==t;I=I.parentElement){if(e.boundary(I))return null;const $=Ee(I);if($&&($.flags&k)!==0)return $}return null},c=new Map;let u=!1,d=null;const v=(x,k)=>{const I=typeof k=="number"?k:0;(I&Mt)!==0&&(x.tracked=!0,x.wantsMove=(I&Nt)!==0,x.claim=I&Xr)},p=x=>{a.clearTimeout(x.timer),c.delete(x.pointerId)},f=x=>{if(x.pointerType==="mouse"&&x.button!==0)return;const k=r(x.target,We),[I,$]=i(x);d=[I,$],u=!1;const P={pointerId:x.pointerId,node:k,startX:I,startY:$,moved:!1,tracked:!1,wantsMove:!1,claim:0,handled:!1,timer:0};c.set(x.pointerId,P),k&&(v(P,n(k.id,vr,x.pointerId,I,$)),(k.flags&Br)!==0&&(P.timer=a.setTimeout(()=>{if(c.get(P.pointerId)!==P||P.moved)return;const m=n(k.id,wr,P.pointerId,P.startX,P.startY),g=typeof m=="number"?m:0;(g&qr)!==0&&(P.handled=!0),v(P,g)},rs)))},E=x=>{const k=c.get(x.pointerId);if(k){const[I,$]=i(x);!k.moved&&Math.hypot(I-k.startX,$-k.startY)>Yt&&(k.moved=!0,a.clearTimeout(k.timer)),k.tracked&&k.wantsMove&&n(0,Sr,x.pointerId,I,$,I-k.startX,$-k.startY)}x.pointerType==="mouse"&&S(x)},s=x=>{const k=c.get(x.pointerId);if(!k)return;const[I,$]=i(x);k.tracked&&n(0,Tr,x.pointerId,I,$,I-k.startX,$-k.startY),(k.moved||k.handled)&&(u=!0),p(k)},l=x=>{const k=c.get(x.pointerId);k&&(k.tracked&&n(0,kt,x.pointerId),u=!0,p(k))},b=x=>{if(x.cancelable){for(const k of c.values())if(k.tracked&&k.claim!==0){x.preventDefault();return}}},y=x=>{if(u){u=!1;return}const k=r(x.target,We);if(!k||(k.flags&Dr)===0)return;let I,$;if(x.detail===0&&x.clientX===0&&x.clientY===0){const P=k.el.getBoundingClientRect();[I,$]=i({clientX:P.left+P.width/2,clientY:P.top+P.height/2})}else if([I,$]=i(x),d&&Math.hypot(I-d[0],$-d[1])>Yt)return;n(k.id,Er,x.pointerId??0,I,$)};let T=null,_=!1,C=!1,h=[0,0];const L=(x,k)=>{T&&_&&(x===Ct?n(0,x):n(0,x,k[0],k[1],k[0]-h[0],k[1]-h[1])),T=null,_=!1,C=!1};function S(x){const k=i(x),I=t.contains(x.target)?r(x.target,We):null;if(I!==T){if(L($t,k),T=I,I&&(I.flags&Yr)!==0){h=k;const $=n(I.id,Ir,k[0],k[1]),P=typeof $=="number"?$:0;_=(P&Mt)!==0,C=(P&Nt)!==0}return}T&&_&&C&&n(0,Fr,k[0],k[1],k[0]-h[0],k[1]-h[1])}const w=x=>{x.pointerType==="mouse"&&L($t,i(x))},O=x=>{const k=Ee(x instanceof Element?x:null);return k&&(k.type==="input"||k.type==="textarea")?k:null},F=x=>{const k=O(x.target);k&&(k.flags&Hr)!==0&&n(k.id,xr,k.el.value)},D=x=>{const k=O(x.target);k&&(k.flags&zr)!==0&&n(k.id,Lr)},B=x=>{const k=O(x.target);k&&(k.flags&Vr)!==0&&n(k.id,Ar)},H=x=>{if(x.key!=="Enter"||x.isComposing)return;const k=O(x.target);if(!k||k.type!=="input")return;x.preventDefault();const I=k.el;(k.flags&Gr)!==0&&n(k.id,$r,I.value),e.value(k,"enterKey")!=="next"&&o.activeElement===I&&I.blur()},W=x=>{const k=a.getComputedStyle(x);return k.overflowX!=="hidden"&&k.overflowY==="hidden"},G=x=>{const k=Ee(x.target instanceof Element?x.target:null);!k||(k.flags&Ur)===0||n(k.id,_r,W(k.el)?k.el.scrollLeft:k.el.scrollTop)},X=x=>{const k=Ee(x.target instanceof Element?x.target:null);k&&(k.flags&Wr)!==0&&n(k.id,kr)};return t.addEventListener("pointerdown",f),t.addEventListener("click",y),t.addEventListener("pointerleave",w),t.addEventListener("touchmove",b,{passive:!1}),t.addEventListener("input",F),t.addEventListener("focusin",D),t.addEventListener("focusout",B),t.addEventListener("keydown",H),t.addEventListener("scroll",G,!0),t.addEventListener("scrollend",X,!0),o.addEventListener("pointermove",E),o.addEventListener("pointerup",s),o.addEventListener("pointercancel",l),{isPressed(x){for(const k of c.values())if(k.node===x)return!0;return!1},isHovered:x=>T===x,forget(x){for(const k of[...c.values()])k.node===x&&(k.tracked&&n(0,kt,k.pointerId),p(k));T===x&&L(Ct,[0,0])},destroy(){for(const x of c.values())a.clearTimeout(x.timer);c.clear(),t.removeEventListener("pointerdown",f),t.removeEventListener("click",y),t.removeEventListener("pointerleave",w),t.removeEventListener("touchmove",b),t.removeEventListener("input",F),t.removeEventListener("focusin",D),t.removeEventListener("focusout",B),t.removeEventListener("keydown",H),t.removeEventListener("scroll",G,!0),t.removeEventListener("scrollend",X,!0),o.removeEventListener("pointermove",E),o.removeEventListener("pointerup",s),o.removeEventListener("pointercancel",l)}}};function ss(e){let t=e.trim();/\sxmlns\s*=/.test(t)||(t=t.replace(/<svg\b/,'<svg xmlns="http://www.w3.org/2000/svg"'));const n=new TextEncoder().encode(t);let o="";for(const a of n)o+=String.fromCharCode(a);return`data:image/svg+xml;base64,${btoa(o)}`}function is(e){const t=e.match(/viewBox\s*=\s*["']([^"']+)["']/);return t?t[1]:null}const as=e=>`url("${e.replace(/["\\\n]/g,t=>"\\"+t)}")`,cs=e=>{const t=p=>p.image??(p.image={src:"",srcTint:null,rect:null,form:"img",probe:0}),n=p=>p.src.startsWith("svg:")?p.src.slice(4):null;let o=!1;const a=p=>{const f=p.src,E=n(p);return E!==null?ss(E):f.startsWith("id:")?e.bufferUrl(Number(f.slice(3))):f.startsWith("canvas:")?(o||(o=!0,e.warn("an image of a Canvas is not built yet (docs/plans/web-lite-plan.md, phase 2) — shown empty")),""):f.startsWith("scene2d:")?"":f},i=(p,f)=>f.rect?"crop":n(f)!==null&&(f.srcTint!==null||e.hasTint(p))?"mask":"img",r=(p,f)=>{const E=p.el;if(E.tagName.toLowerCase()===f)return;const s=e.doc.createElement(f);if(s.className=E.className,f==="img"){const b=s;b.alt="",b.decoding="async",b.draggable=!1}const l=E.getAttribute("data-name");l!==null&&s.setAttribute("data-name",l),p.el=s,xn(p),E.replaceWith(s),e.swapped(p,E)},c=p=>{for(const f of["--lc-src","--lc-src-tint","--lc-iw","--lc-ih","--lc-ir","--lc-crop-size","--lc-crop-pos"])p.style.removeProperty(f)},u=(p,f,E)=>{const[s,l,b,y]=f,[T,_]=E;p.style.setProperty("--lc-crop-size",`${T/b*100}% ${_/y*100}%`),p.style.setProperty("--lc-crop-pos",`${T===b?0:s/(T-b)*100}% ${_===y?0:l/(_-y)*100}%`)},d=new WeakMap,v=p=>{var C;const f=t(p),E=i(p,f);f.form=E,r(p,E==="img"?"img":"div");const s=p.el;s.classList.toggle("lc-image-mask",E==="mask"),s.classList.toggle("lc-image-crop",E==="crop"),c(s);const l=a(f);if(E==="img"){const h=s;l===""?h.removeAttribute("src"):h.getAttribute("src")!==l&&(h.src=l);return}if(s.style.setProperty("--lc-src",l===""?"none":as(l)),E==="mask"){f.srcTint!==null&&s.style.setProperty("--lc-src-tint",we(f.srcTint));const h=(C=is(n(f)??""))==null?void 0:C.trim().split(/[\s,]+/).map(Number),L=h==null?void 0:h[2],S=h==null?void 0:h[3];L&&S&&(s.style.setProperty("--lc-iw",`${L}px`),s.style.setProperty("--lc-ir",`${L} / ${S}`));return}const b=f.rect;s.style.setProperty("--lc-iw",`${b[2]}px`),s.style.setProperty("--lc-ih",`${b[3]}px`);const y=d.get(p);if(y&&y.url===l){u(s,b,y.size);return}if(l==="")return;const T=++f.probe,_=new Image;_.addEventListener("load",()=>{if(f.probe!==T||!f.rect)return;const h=[_.naturalWidth,_.naturalHeight];d.set(p,{url:l,size:h}),u(p.el,f.rect,h)},{once:!0}),_.src=l};return{setSrc(p,f){const E=t(p);E.src=f??"",E.srcTint=null,v(p)},setSrcTint(p,f){t(p).srcTint=f,v(p)},setSourceRect(p,f){const E=t(p),s=f==null?void 0:f.trim().split(/\s+/).map(Number),l=s&&s.length===4&&s.every(T=>Number.isFinite(T))&&s[2]>0&&s[3]>0?s:null,b=!!E.rect&&!!l&&E.form==="crop"&&E.rect[2]===l[2]&&E.rect[3]===l[3];E.rect=l;const y=d.get(p);if(b&&y){u(p.el,l,y.size);return}v(p)},restyle(p){const f=p.image;f&&i(p,f)!==f.form&&v(p)}}},ls=.5,us=64,Xt=48,fs=e=>{const{root:t,emit:n}=e,o=t.ownerDocument,a=o.defaultView??window,i=new Map;let r=null;const c=s=>{let l=i.get(s);if(!l||!l.isConnected){l=o.createElement("div"),l.className="lc-refresh",l.style.setProperty("--lc-refresh-color",a.getComputedStyle(s.el).getPropertyValue("--lc-refresh").trim()||"#8e8e93");const b=s.el.parentElement;b&&(b.appendChild(l),l.style.top=`${s.el.offsetTop-36}px`,l.style.left=`${s.el.offsetLeft+s.el.offsetWidth/2}px`),i.set(s,l)}return l},u=(s,l,b)=>{const y=c(s);y.classList.toggle("lc-settling",b),y.style.transform=`translateY(${l}px) rotate(${l*3}deg)`,y.style.opacity=String(Math.min(1,l/Xt))},d=s=>{const l=i.get(s);l&&(l.classList.remove("lc-spinning"),u(s,0,!0),a.setTimeout(()=>{i.get(s)===l&&(l.remove(),i.delete(s))},220))},v=s=>{for(let l=s instanceof Element?s:null;l&&l!==t;l=l.parentElement){const b=Ee(l);if(b&&(b.flags&(nt|tt))!==0)return b}return null},p=s=>{if(r||s.touches.length!==1)return;const l=v(s.target);if(!l)return;const b=s.changedTouches[0];r={node:l,touch:b.identifier,startY:b.clientY,pulling:!1,distance:0}},f=s=>{if(!r)return;const l=[...s.changedTouches].find(y=>y.identifier===r.touch);if(!l)return;const b=l.clientY-r.startY;if(!r.pulling){if(r.node.el.scrollTop>0||b<=0){(b<0||r.node.el.scrollTop>0)&&(r.startY=l.clientY);return}r.pulling=!0}s.cancelable&&s.preventDefault(),r.distance=Math.max(0,b*ls),(r.node.flags&tt)!==0&&n(r.node.id,Rt,r.distance),(r.node.flags&nt)!==0&&u(r.node,r.distance,!1)},E=s=>{if(!r||![...s.changedTouches].some(_=>_.identifier===r.touch))return;const{node:l,pulling:b,distance:y}=r;if(r=null,!b||((l.flags&tt)!==0&&n(l.id,Rt,0),(l.flags&nt)===0))return;if(y<us||s.type==="touchcancel"){d(l);return}u(l,Xt,!0),c(l).classList.add("lc-spinning");const T=n(l.id,Rr);Promise.resolve(T).then(()=>d(l),()=>d(l))};return t.addEventListener("touchstart",p,{passive:!0}),t.addEventListener("touchmove",f,{passive:!1}),t.addEventListener("touchend",E),t.addEventListener("touchcancel",E),{forget(s){var l;(r==null?void 0:r.node)===s&&(r=null),(l=i.get(s))==null||l.remove(),i.delete(s)},destroy(){t.removeEventListener("touchstart",p),t.removeEventListener("touchmove",f),t.removeEventListener("touchend",E),t.removeEventListener("touchcancel",E);for(const s of i.values())s.remove();i.clear(),r=null}}},xe=0,be=-1,ds={run:(e,t,n,o)=>o(),settle:()=>{},enterOnTop:()=>!0,holds:()=>!1},ps={[Jr]:"a 3D scene",[Qr]:"a 2D scene",[Zr]:"a native view",[Ke]:"a video"},ms=e=>{const t=e.transitions??ds;let n=null,o=[],a=[];const i=new Map,r=(S,w)=>`${S}:${w}`,c=new Set,u=S=>o.includes(S),d=S=>o.some(w=>w.node===S),v=S=>S&&S.kind===se?S.node:null,p=(S,w)=>{e.emit(S.kind===se||S.kind===Ke?S.id:0,w,S.kind,S.id)},f=(S,w,O,F)=>{let D=null;return(S===se||S===Ke)&&(D=e.node(w)??null,!D||S===se&&D.type!=="screen")?(e.warn(`navigation: ${w} is not a live ${S===se?"screen":"video"} node`),null):{kind:S,id:w,node:D,viewName:O,paramsJson:F||"{}",back:xe,retired:!1}},E=(S,w)=>{const O=v(S);if(!O){c.has(S.kind)||(c.add(S.kind),e.warn(`${ps[S.kind]??"this destination"} as a destination is not built yet (docs/plans/web-lite-plan.md) — nothing is shown for it`));return}e.rootOwned(O,!0),O.el.classList.remove("lc-covered"),w||!e.root.firstChild?e.root.appendChild(O.el):e.root.insertBefore(O.el,e.root.firstChild)},s=S=>{const w=v(S);!w||S===n||n&&n.node===w||(d(w)?w.el.classList.add("lc-covered"):w.el.remove())},l=S=>{const w=v(S);w&&(n&&n.node===w||d(w)||(w.el.remove(),e.rootOwned(w,!1),e.emit(w.id,Pr)))},b=()=>{const S=a;a=[];for(const w of S)w.node&&t.holds(w.node)?a.push(w):l(w)},y=S=>{!S||S.retired||(S.retired=!0,a.push(S),e.post(b))},T=(S,w,O)=>{const F=O===be?xe:O;t.run(v(S),v(w),F,()=>{w&&s(w),a.length>0&&e.post(b)})},_=(S,w)=>{var D;const O=n;if(!S||O===S)return;t.settle(),O&&p(O,Lt),n=S;const F=!!v(S)&&!!v(O);E(S,!!v(S)&&(!F||t.enterOnTop(w))),p(S,Or),O&&!u(O)&&y(O),T(S,O,w),(D=e.changed)==null||D.call(e)},C=S=>{var O;t.settle();const w=n;w&&(p(w,Lt),n=null,u(w)||y(w),T(null,w,S),(O=e.changed)==null||O.call(e))},h=(S,w)=>{_(S,w),e.emit(0,Nr,S.kind,S.id)},L=S=>{const w=o.length;return S===-1?w-2:S<-1?Math.max(w-1+S,0):S===0?0:Math.min(S,w-1)};return{current:()=>n,stack:()=>o,setUrl(S,w,O){var D;O===null||O===""?i.delete(r(S,w)):i.set(r(S,w),O.startsWith("/")?O:`/${O}`),(n&&n.kind===S&&n.id===w||o.some(B=>B.kind===S&&B.id===w))&&((D=e.changed)==null||D.call(e))},address(){if(n){const w=i.get(r(n.kind,n.id));if(w!==void 0)return w}const S=n?o.lastIndexOf(n):o.length-1;for(let w=S<0?o.length-1:S;w>=0;w--){const O=i.get(r(o[w].kind,o[w].id));if(O!==void 0)return O}return null},forgetUrl(S,w){i.delete(r(S,w))},open(S,w,O,F,D){_(f(S,w,O,F),D)},close(S,w,O){!n||n.kind!==S||n.id!==w||C(O)},routerOpen(S,w,O,F){const D=f(S,w,O,F);if(!D)return;const B=o;o=[D];for(const H of B)H!==n&&y(H);_(D,xe)},routerPush(S,w,O,F,D,B){const H=f(S,w,O,F);H&&(H.back=B===be?xe:B,o.push(H),h(H,D))},routerReplace(S,w,O,F,D,B){const H=f(S,w,O,F);if(!H)return;const W=o[o.length-1];if(!W){H.back=B===be?xe:B,o.push(H),h(H,D);return}H.back=B===be?W.back:B,o[o.length-1]=H,h(H,D),y(W)},routerPop(S,w){if(o.length<=1)return!1;const O=L(S);if(O<0||O>=o.length)return!1;const F=w===be?o[o.length-1].back:w,D=o.splice(O+1);h(o[o.length-1],F);for(const B of D)y(B);return D.length>0},routerHide(S){C(S)},routerRestore(S){const w=o[o.length-1];w&&_(w,S)},reset(){var S;t.settle();for(const w of[n,...o,...a])(S=w==null?void 0:w.node)==null||S.el.remove();n=null,o=[],a=[],i.clear()}}},hs=250,gs="cubic-bezier(0.2, 0.8, 0.2, 1)",ys=6,bs=e=>{const{root:t}=e,n=t.ownerDocument,o=n.defaultView??window,a=new Map,i=f=>{var s;const E=e.value(f.node,"overlayColor");if(E==null){(s=f.scrim)==null||s.remove(),f.scrim=null,f.frame.classList.remove("lc-scrimmed");return}f.scrim||(f.scrim=n.createElement("div"),f.scrim.className="lc-scrim",f.scrim.addEventListener("click",()=>{(f.node.flags&jr)!==0&&e.emit(f.node.id,Cr)}),f.frame.insertBefore(f.scrim,f.frame.firstChild),f.frame.classList.add("lc-scrimmed")),f.scrim.style.backgroundColor=we(E)},r=f=>{const E=e.value(f,"sheetDetents");if(E==null||E==="")return null;const s=String(E).split(",").map(Number).filter(l=>Number.isFinite(l)&&l>0).sort((l,b)=>l-b);return s.length>0?s:null},c=(f,E)=>{const s=f.sheet,l=f.node.el.offsetHeight;if(E<0)return l;const b=s.detents[s.detents.length-1],y=s.detents[Math.max(0,Math.min(E,s.detents.length-1))];return l*(1-y/b)},u=(f,E,s)=>{const l=f.sheet.holder;l.style.transition=s?`transform ${hs}ms ${gs}`:"none",l.style.transform=`translateY(${Math.max(0,E)}px)`},d=(f,E)=>{const s=r(f.node);if(!s||!f.sheet)return;const l=f.sheet;l.detents=s;const b=e.value(f.node,"sheetDismissible");l.dismissible=b==null||Number(b)>.5||b===!0;const y=Number(e.value(f.node,"sheetDetent")??0);if(E){u(f,c(f,-1),!1),l.holder.offsetHeight,l.detent=y,u(f,c(f,y),!0);return}y!==l.detent&&(l.detent=y,u(f,c(f,y),!0))},v=f=>{const E=f.node.el;E.addEventListener("pointerdown",s=>{const l=f.sheet;if(!l||s.pointerType==="mouse"&&s.button!==0)return;for(let h=s.target instanceof Element?s.target:null;h&&h!==E;h=h.parentElement)if(h.scrollTop>0)return;const b=c(f,l.detent);let y=!1,T=b;const _=h=>{if(h.pointerId!==s.pointerId)return;const L=h.clientY-s.clientY;if(!y){if(Math.abs(L)<ys||Math.abs(L)<Math.abs(h.clientX-s.clientX))return;y=!0}T=Math.max(0,b+L),u(f,T,!1)},C=h=>{if(h.pointerId!==s.pointerId||(n.removeEventListener("pointermove",_),n.removeEventListener("pointerup",C),n.removeEventListener("pointercancel",C),!y||!f.sheet))return;let L=0,S=1/0;for(let D=0;D<l.detents.length;D++){const B=Math.abs(c(f,D)-T);B<S&&(S=B,L=D)}const w=c(f,0),O=E.offsetHeight;if(l.dismissible&&T>w+(O-w)/2){u(f,O,!0),(f.node.flags&Ot)!==0&&e.emit(f.node.id,xt,-1);return}l.detent=L,u(f,c(f,L),!0),(f.node.flags&Ot)!==0&&e.emit(f.node.id,xt,L)};n.addEventListener("pointermove",_),n.addEventListener("pointerup",C),n.addEventListener("pointercancel",C)})};let p=null;return{show(f,E,s){if(a.has(f))return;e.flush();const l=n.createElement("div");l.className="lc-widget-frame";const b={node:f,frame:l,scrim:null,sheet:null};if(r(f)){const T=n.createElement("div");T.className="lc-sheet",T.appendChild(f.el),l.appendChild(T),b.sheet={holder:T,detents:[1],detent:-1,dismissible:!0},v(b)}else l.appendChild(f.el);a.set(f,b),e.rootOwned(f,!0),i(b);const y=E===se?e.node(s):void 0;(E!==He&&y?y.el:t).appendChild(l),b.sheet&&d(b,!0)},hide(f){const E=a.get(f);E&&(a.delete(f),f.el.remove(),E.frame.remove(),e.rootOwned(f,!1))},overlay(f,E){const s=a.get(f);s&&(E===void 0?i(s):s.scrim&&(s.scrim.style.backgroundColor=we(E)))},restyle(f){const E=a.get(f);E&&(i(E),E.sheet&&d(E,!1))},forget(f){const E=a.get(f);E&&(a.delete(f),E.frame.remove())},shown:()=>[...a.keys()],backTargets:()=>[...a.keys()].reverse().filter(f=>(f.flags&Kr)!==0),isFrame:f=>f.classList.contains("lc-widget-frame"),toast(f,E){(!p||!p.isConnected)&&(p=n.createElement("div"),p.className="lc-toasts",t.appendChild(p));const s=n.createElement("div");s.className="lc-toast",s.setAttribute("role","status"),s.textContent=f,p.appendChild(s),s.offsetHeight,s.classList.add("lc-on"),o.setTimeout(()=>{s.classList.remove("lc-on"),o.setTimeout(()=>s.remove(),200)},Math.max(500,E))},destroy(){for(const f of a.values())f.frame.remove();a.clear(),p==null||p.remove(),p=null}}};var vs=(async function(e={}){var t,n=e,o,a,i=new Promise((R,N)=>{o=R,a=N}),r=(R,N)=>{throw N},c=import.meta.url,u="";function d(R){return n.locateFile?n.locateFile(R,u):u+R}var v;{try{u=new URL(".",c).href}catch{}v=async R=>{var N=await fetch(R,{credentials:"same-origin"});if(N.ok)return N.arrayBuffer();throw new Error(N.status+" : "+N.url)}}console.log.bind(console);var p=console.error.bind(console),f,E,s=!1,l,b;function y(){var R=E.buffer;n.HEAPU8=b=new Uint8Array(R),n.HEAP32=new Int32Array(R),n.HEAPU32=new Uint32Array(R),n.HEAPF32=new Float32Array(R),new BigInt64Array(R),new BigUint64Array(R)}function T(){if(n.preRun)for(typeof n.preRun=="function"&&(n.preRun=[n.preRun]);n.preRun.length;)g(n.preRun.shift());I(m)}function _(){z.g()}function C(){if(n.postRun)for(typeof n.postRun=="function"&&(n.postRun=[n.postRun]);n.postRun.length;)P(n.postRun.shift());I($)}var h=0,L=null;function S(R){var N;h++,(N=n.monitorRunDependencies)==null||N.call(n,h)}function w(R){var U;if(h--,(U=n.monitorRunDependencies)==null||U.call(n,h),h==0&&L){var N=L;L=null,N()}}function O(R){var U;(U=n.onAbort)==null||U.call(n,R),R="Aborted("+R+")",p(R),s=!0,R+=". Build with -sASSERTIONS for more info.";var N=new WebAssembly.RuntimeError(R);throw a(N),N}var F;function D(){return n.locateFile?d("creatorTween.wasm"):new URL(""+new URL("assets/creatorTween-PF8B6T8V.wasm",import.meta.url).href,import.meta.url).href}function B(R){if(R==F&&f)return new Uint8Array(f);throw"both async and sync fetching of the wasm failed"}async function H(R){if(!f)try{var N=await v(R);return new Uint8Array(N)}catch{}return B(R)}async function W(R,N){try{var U=await H(R),V=await WebAssembly.instantiate(U,N);return V}catch(Y){p(`failed to asynchronously prepare wasm: ${Y}`),O(Y)}}async function G(R,N,U){if(!R&&typeof WebAssembly.instantiateStreaming=="function")try{var V=fetch(N,{credentials:"same-origin"}),Y=await WebAssembly.instantiateStreaming(V,U);return Y}catch(K){p(`wasm streaming compile failed: ${K}`),p("falling back to ArrayBuffer instantiation")}return W(N,U)}function X(){return{a:nr}}async function x(){function R(K,ke){return z=K.exports,E=z.f,y(),he=z.F,w(),z}S();function N(K){return R(K.instance)}var U=X();if(n.instantiateWasm)return new Promise((K,ke)=>{n.instantiateWasm(U,(sr,xi)=>{K(R(sr))})});F??(F=D());try{var V=await G(f,F,U),Y=N(V);return Y}catch(K){return a(K),Promise.reject(K)}}class k{constructor(N){Pe(this,"name","ExitStatus");this.message=`Program terminated with exit(${N})`,this.status=N}}var I=R=>{for(;R.length>0;)R.shift()(n)},$=[],P=R=>$.push(R),m=[],g=R=>m.push(R),A=!0,M=()=>O(""),j=0,Q=()=>{A=!1,j=0},J={},ue=R=>{if(R instanceof k||R=="unwind")return l;r(1,R)},Te=()=>A||j>0,q=R=>{var N;l=R,Te()||((N=n.onExit)==null||N.call(n,R),s=!0),r(R,new k(R))},_e=(R,N)=>{l=R,q(R)},pe=_e,me=()=>{if(!Te())try{pe(l)}catch(R){ue(R)}},Wn=R=>{if(!s)try{R(),me()}catch(N){ue(N)}},Hn=()=>performance.now(),zn=(R,N)=>{if(J[R]&&(clearTimeout(J[R].id),delete J[R]),!N)return 0;var U=setTimeout(()=>{delete J[R],Wn(()=>rr(R,Hn()))},N);return J[R]={id:U,timeout_ms:N},0},Vn=()=>2147483648,Gn=(R,N)=>Math.ceil(R/N)*N,jn=R=>{var N=E.buffer,U=(R-N.byteLength+65535)/65536|0;try{return E.grow(U),y(),1}catch{}},Kn=R=>{var N=b.length;R>>>=0;var U=Vn();if(R>U)return!1;for(var V=1;V<=4;V*=2){var Y=N*(1+.2/V);Y=Math.min(Y,R+100663296);var K=Math.min(U,Gn(Math.max(R,Y),65536)),ke=jn(K);if(ke)return!0}return!1},wt=(R,N)=>{R<128?N.push(R):N.push(R%128|128,R>>7)},Yn=R=>{for(var N={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"},U={parameters:[],results:R[0]=="v"?[]:[N[R[0]]]},V=1;V<R.length;++V)U.parameters.push(N[R[V]]);return U},Xn=(R,N)=>{var U=R.slice(0,1),V=R.slice(1),Y={i:127,p:127,j:126,f:125,d:124,e:111};N.push(96),wt(V.length,N);for(var K of V)N.push(Y[K]);U=="v"?N.push(0):N.push(1,Y[U])},qn=(R,N)=>{if(typeof WebAssembly.Function=="function")return new WebAssembly.Function(Yn(N),R);var U=[1];Xn(N,U);var V=[0,97,115,109,1,0,0,0,1];wt(U.length,V),V.push(...U),V.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var Y=new WebAssembly.Module(new Uint8Array(V)),K=new WebAssembly.Instance(Y,{e:{f:R}}),ke=K.exports.f;return ke},he,St=R=>he.get(R),Jn=(R,N)=>{if(fe)for(var U=R;U<R+N;U++){var V=St(U);V&&fe.set(V,U)}},fe,Qn=R=>(fe||(fe=new WeakMap,Jn(0,he.length)),fe.get(R)||0),Je=[],Zn=()=>{if(Je.length)return Je.pop();try{he.grow(1)}catch(R){throw R instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":R}return he.length-1},Qe=(R,N)=>he.set(R,N),er=(R,N)=>{var U=Qn(R);if(U)return U;var V=Zn();try{Qe(V,R)}catch(K){if(!(K instanceof TypeError))throw K;var Y=qn(R,N);Qe(V,Y)}return fe.set(R,V),V},tr=R=>{fe.delete(St(R)),Qe(R,null),Je.push(R)};n.noExitRuntime&&(A=n.noExitRuntime),n.print&&n.print,n.printErr&&(p=n.printErr),n.wasmBinary&&(f=n.wasmBinary),n.arguments&&n.arguments,n.thisProgram&&n.thisProgram,n.addFunction=er,n.removeFunction=tr;var nr={e:M,b:Q,c:zn,d:Kn,a:q},z=await x();z.g,n._ctweenSetHost=z.h,n._ctweenBind=z.i,n._ctweenCreate=z.j,n._ctweenExists=z.k,n._ctweenPlay=z.l,n._ctweenPause=z.m,n._ctweenResume=z.n,n._ctweenCancel=z.o,n._ctweenFinish=z.p,n._ctweenSeek=z.q,n._ctweenSetRate=z.r,n._ctweenGetTime=z.s,n._ctweenGetElapsed=z.t,n._ctweenIsPlaying=z.u,n._ctweenCancelTarget=z.v,n._ctweenTick=z.w,n._ctweenPollEvents=z.x,n._ctweenCount=z.y,n._ctweenParseEasing=z.z,n._ctweenCurrentValue=z.A,n._ctweenSampleTrack=z.B,n._ctweenReset=z.C,n._ctweenEaseNamed=z.D;var rr=z.E;n._malloc=z.G,n._free=z.H;function Ze(){if(h>0){L=Ze;return}if(T(),h>0){L=Ze;return}function R(){var N;n.calledRun=!0,!s&&(_(),o(n),(N=n.onRuntimeInitialized)==null||N.call(n),C())}n.setStatus?(n.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>n.setStatus(""),1),R()},1)):R()}function or(){if(n.preInit)for(typeof n.preInit=="function"&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()()}return or(),Ze(),t=i,t});const Ln=0,An=1,$n=2,Cn=3,On=4,Es=8,de=0,qt=6,ws=1,Ss=new TextDecoder,Ts=new TextEncoder,_s=async e=>{const t=await vs({locateFile:()=>e}),n=s=>{if(s===0)return null;const l=t.HEAPU8;let b=s;for(;l[b]!==0;)b++;return Ss.decode(l.subarray(s,b))},o=s=>{const l=Ts.encode(s),b=t._malloc(l.length+1);return t.HEAPU8.set(l,b),t.HEAPU8[b+l.length]=0,b},a=s=>{const l=t._malloc(Math.max(1,s.length)*4);return t.HEAPF32.set(s,l>>2),l},i=s=>{const l=s.map(o),b=t._malloc(Math.max(1,l.length)*4);for(let y=0;y<l.length;y++)t.HEAPU32[(b>>2)+y]=l[y];return{table:b,free(){for(const y of l)t._free(y);t._free(b)}}},r=s=>{const l=t.HEAPU32,b=t.HEAP32,y=s>>2,T=b[y+7],_=l[y+6],C=[];if(_!==0)for(let h=0;h<T;h++)C.push(t.HEAPF32[(_>>2)+h]);return{animation:l[y],domain:b[y+1],target:l[y+2],prop:n(l[y+3])??"",kind:b[y+4],sig:n(l[y+5]),lanes:C,str:n(l[y+8])}};let c=null,u=s=>t.HEAP32[(s>>2)+7];const d=t._malloc(32),v=[0,t.addFunction((s,l)=>{c==null||c.write(r(l))},"vii"),t.addFunction((s,l,b)=>{const y=u(l),T=(c==null?void 0:c.read(r(l),y))??null;if(!T||T.length<y)return 0;for(let _=0;_<y;_++)t.HEAPF32[(b>>2)+_]=T[_];return 1},"iiii"),t.addFunction((s,l)=>{c==null||c.commit(r(l))},"vii"),t.addFunction((s,l,b,y,T,_)=>{const C=(c==null?void 0:c.resolveColor(l,b,n(y)??"",n(T)??""))??null;if(!C)return 0;for(let h=0;h<4;h++)t.HEAPF32[(_>>2)+h]=C[h];return 1},"iiiiiii"),t.addFunction((s,l,b)=>{const y=(c==null?void 0:c.resolveTransform(n(l)??""))??null;if(!y)return 0;for(let T=0;T<5;T++)t.HEAPF32[(b>>2)+T]=y[T];return 1},"iiii"),0,0];for(let s=0;s<v.length;s++)t.HEAPU32[(d>>2)+s]=v[s];t._ctweenSetHost(d);let p=null;const f=t.addFunction((s,l,b)=>{p==null||p(l,b)},"viii"),E=t._malloc(768);return{setHost(s){c=s},create(s,l){const b=a(s),y=i(l),T=t._ctweenCreate(b,s.length,y.table,l.length);return t._free(b),y.free(),T},bind(s,l,b){const y=a(s),T=t._malloc(Math.max(1,l.length)*4);for(let L=0;L<l.length;L++)t.HEAPU32[(T>>2)+L]=l[L];const _=t._malloc(Math.max(1,s.length)*4);p=b;const C=t._ctweenBind(y,s.length,T,l.length,_,f,0);p=null;const h=C>0?t.HEAPF32.slice(_>>2,(_>>2)+C):null;return t._free(y),t._free(T),t._free(_),h},valid(s,l){const b=a(s),y=t._ctweenBind(b,s.length,0,l,0,0,0);return t._free(b),y!==0},exists:s=>t._ctweenExists(s)!==0,play:s=>t._ctweenPlay(s),pause:s=>t._ctweenPause(s),resume:s=>t._ctweenResume(s),cancel:s=>t._ctweenCancel(s),finish:s=>t._ctweenFinish(s),seek:(s,l)=>t._ctweenSeek(s,l),setRate:(s,l)=>t._ctweenSetRate(s,l),time:s=>t._ctweenGetTime(s),elapsed:s=>t._ctweenGetElapsed(s),isPlaying:s=>t._ctweenIsPlaying(s)!==0,cancelTarget:(s,l)=>t._ctweenCancelTarget(s,l),tick:(s,l)=>t._ctweenTick(s,l),count:()=>t._ctweenCount(),reset:()=>t._ctweenReset(),current(s,l,b,y,T){const _=o(b),C=t._malloc(Math.max(1,T)*4),L=t._ctweenCurrentValue(s,l,_,y,C,T)!==0?Array.from(t.HEAPF32.subarray(C>>2,(C>>2)+T)):null;return t._free(_),t._free(C),L},poll(){const s=[];for(;;){const l=t._ctweenPollEvents(E,64);for(let b=0;b<l;b++){const y=(E>>2)+b*3;s.push({id:t.HEAPU32[y],kind:t.HEAP32[y+1],index:t.HEAP32[y+2]})}if(l<64)break}return s}}},vt={translate:{args:2,unit:"px"},translateX:{args:1,unit:"px"},translateY:{args:1,unit:"px"},"translate%":{args:2,unit:"%"},"translateX%":{args:1,unit:"%"},"translateY%":{args:1,unit:"%"},rotate:{args:1,unit:"deg"},skewX:{args:1,unit:"deg"},skewY:{args:1,unit:"deg"},scale:{args:2,unit:""},scaleX:{args:1,unit:""},scaleY:{args:1,unit:""}},oe=e=>Math.round(e*1e4)/1e4,ks=(e,t)=>{const n=[];let o=0;for(const a of e.split(",").filter(Boolean)){const i=vt[a];if(!i)continue;const r=t.slice(o,o+i.args).map(c=>`${oe(c)}${i.unit}`);o+=i.args,n.push(`${a.replace("%","")}(${r.join(", ")})`)}return n.length>0?n.join(" "):"none"},Rs=(e,t)=>{const n=t.split(",").filter(Boolean),o=[],a=/([a-zA-Z]+)\s*\(([^)]*)\)/g;let i=0;for(let r=a.exec(e);r;r=a.exec(e),i++){const c=n[i];if(!c||c.replace("%","")!==r[1])return null;const u=vt[c],d=r[2].split(",").map(v=>parseFloat(v));if(d.some(v=>!Number.isFinite(v)))return null;for(;d.length<u.args;)d.push(r[1]==="translate"?0:d[0]);o.push(...d.slice(0,u.args))}return i===n.length?o:null},xs=e=>{const t=[];for(const n of e.split(",").filter(Boolean)){const o=vt[n];if(o)for(let a=0;a<o.args;a++)t.push(n.startsWith("scale")?1:0)}return t},Jt=e=>{if(e==="none"||e==="")return[0,0,0,1,1];const t=/^matrix\(([^)]+)\)$/.exec(e.trim());if(!t)return null;const[n,o,a,i,r,c]=t[1].split(",").map(u=>parseFloat(u));return[r,c,Math.atan2(o,n),Math.hypot(n,o),Math.hypot(a,i)]},Qt=e=>{const t=/^rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)(?:\s*[,/]\s*([\d.]+%?))?\s*\)$/.exec(e.trim());if(t){const o=t[4]===void 0?1:t[4].endsWith("%")?parseFloat(t[4])/100:parseFloat(t[4]);return[+t[1]/255,+t[2]/255,+t[3]/255,o]}const n=/^color\(srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s*\/\s*([\d.]+))?\)$/.exec(e.trim());return n?[+n[1],+n[2],+n[3],n[4]===void 0?1:+n[4]]:null},Zt=e=>{switch(e.kind){case Ln:return oe(e.lanes[0]??0);case An:return`${oe(e.lanes[0]??0)}${e.sig??""}`;case $n:{const[t=0,n=0,o=0,a=1]=e.lanes,i=r=>Math.max(0,Math.min(255,Math.round(r*255)));return`rgba(${i(t)}, ${i(n)}, ${i(o)}, ${oe(Math.max(0,Math.min(1,a)))})`}case Cn:return ks(e.sig??"",e.lanes);case On:{const[t=0,n=0,o=0,a=1,i=1]=e.lanes;return`translate(${oe(t)}px, ${oe(n)}px) rotate(${oe(o)}rad) scale(${oe(a)}, ${oe(i)})`}default:return e.str}},st=new Set(["text","src","value"]),Ls=e=>{const t=e.root.ownerDocument.defaultView??window,n=new Map,o=(r,c)=>{var v;const u=n.get(r.id),d=u==null?void 0:u.get(c);if(!(!u||!d)){for(const p of d)r.el.style.removeProperty(p);u.delete(c),u.size===0&&n.delete(r.id),(v=e.wrote)==null||v.call(e,r,c,void 0)}},a=(r,c,u)=>{var p;const d=Ve([[c,u]],e.ctx);let v=n.get(r.id);v||n.set(r.id,v=new Map),v.set(c,[...d.keys()]);for(const[f,E]of d)r.el.style.setProperty(f,E);(p=e.wrote)==null||p.call(e,r,c,u)},i=(r,c,u)=>{var f;const d=(f=n.get(r.id))==null?void 0:f.get(c),v=d!=null&&d.includes(u)?r.el.style.getPropertyValue(u):"";v!==""&&r.el.style.removeProperty(u),e.flush();const p=t.getComputedStyle(r.el).getPropertyValue(u).trim();return v!==""&&r.el.style.setProperty(u,v),p};return{write(r){const c=e.node(r.target);if(c){if(st.has(r.prop)){r.str!==null&&e.setString(c.id,r.prop,r.str);return}a(c,ce(r.prop),Zt(r))}},read(r,c){const u=e.node(r.target);if(!u||st.has(r.prop)||r.kind===Es)return null;const d=ce(r.prop),v=ft(d);if(v===null)return null;const p=i(u,d,v);switch(r.kind){case Ln:{const f=parseFloat(p);return Number.isFinite(f)?[f]:p==="none"||p==="auto"||p==="normal"?[0]:null}case An:{const f=parseFloat(p);return r.sig==="px"&&Number.isFinite(f)?[f]:null}case $n:return Qt(p);case On:return Jt(p);case Cn:{const f=r.sig??"",E=e.value(u,"transform"),s=p==="none"||E===void 0||E===null?xs(f):Rs(String(E),f);return s&&s.length===c?s:null}default:return null}},commit(r){const c=e.node(r.target);if(!c||st.has(r.prop))return;const u=ce(r.prop);o(c,u),e.setStyle(c,u,Zt(r))},resolveColor(r,c,u){const d=e.node(r),v=ft(ce(c));if(!d||v===null)return null;const p=e.root.ownerDocument.createElement("span");p.style.cssText="position:absolute;visibility:hidden;pointer-events:none",d.el.appendChild(p),p.style.color=u;const E=p.style.color!==""?Qt(t.getComputedStyle(p).color):null;return p.remove(),E},resolveTransform(r){const c=e.root.ownerDocument.createElement("span");c.style.cssText="position:absolute;visibility:hidden;pointer-events:none;display:block",e.root.appendChild(c),c.style.transform=r;const u=c.style.transform===""&&r.trim()!==""&&r.trim()!=="none"?null:Jt(t.getComputedStyle(c).transform);return c.remove(),u},restore(r,c){o(r,ce(c))},styled(r,c){o(r,c)},forget(r){n.delete(r.id)}}},As=0,$s=1,Cs=2,Os=3,Ms=1,Ns=65,Ps=100,Is=(e,t)=>{const{win:n,ui:o}=t;let a=[];e.setHost({write(h){h.domain===de?o.write(h):h.domain===qt&&a.push({id:h.animation,slot:h.target-1,lanes:h.lanes})},read:(h,L)=>h.domain!==de?null:e.current(de,h.target,h.prop,h.kind,L)??o.read(h,L),commit(h){h.domain===de&&o.commit(h)},resolveColor:(h,L,S,w)=>h===de?o.resolveColor(L,S,w):null,resolveTransform:h=>o.resolveTransform(h)});const i=()=>{if(a.length===0)return;const h=a;a=[];const L=t.callback();if(L)for(const S of h)L(S.id,2,S.slot,...S.lanes)},r=[],c=new Set;let u=0,d=0;const v=h=>{const L=r.indexOf(h);if(!(L<0)){r.splice(L,1),c.delete(h.animation);for(const[S,w]of h.moved)o.restore(S,w);h.onEnd()}},p=()=>{i();const h=t.callback();for(const L of e.poll())c.has(L.id)||(h==null||h(L.id,L.kind,L.index),L.kind===ws&&l.delete(L.id))},f=h=>{u=0;const L=Math.min(Ps,Math.max(0,h-d));d=h,e.tick(L,L);for(const S of[...r])r.includes(S)&&(S.started?e.exists(S.animation)||v(S):(S.started=!0,e.play(S.animation)));p(),E()};function E(){u===0&&(e.count()===0&&r.length===0||((d===0||e.count()===0)&&(d=n.performance.now()),u=n.requestAnimationFrame(f)))}const s=()=>{u===0&&(d=n.performance.now()),p(),E()},l=new Set,b=new FinalizationRegistry(h=>{!e.exists(h)||e.isPlaying(h)||e.cancel(h)}),y=(h,L)=>{if(h.length<10)return!1;const S=h[7],w=h[8],O=h[9];let F=10+w+O*Ns;for(let D=0;D<S;D++){if(F+10>h.length)return!1;const B=h[F],H=L[h[F+1]],W=typeof H=="number"?H:0;h[F+1]=B===de?t.node(W)?W:0:B===qt?W:0,F+=10+h[F+8]*(7+h[F+4])}return F===h.length},T=new Map;let _=1;const C={run(h,L,S,w){C.settle();const O=T.get(S);if(!O||!h&&!L){w();return}const F=!!h&&!!L,D=F?As:Cs,B=F?$s:Os,H=O.roles.map(x=>x===D?h:x===B?L:null),W=[],G=e.bind(O.data,H.map(x=>(x==null?void 0:x.id)??0),(x,k)=>{const I=H[x],$=O.strings[k];I&&$!==void 0&&W.push([I,$])}),X=G?e.create(G,O.strings):0;if(X===0){w();return}c.add(X),r.push({animation:X,leaving:L,started:!1,moved:W,onEnd:w}),e.seek(X,0),s()},settle(){const h=r[0];h&&(e.cancel(h.animation),v(h))},enterOnTop:h=>{var L;return((L=T.get(h))==null?void 0:L.enterOnTop)??!0},holds:h=>r.some(L=>L.leaving===h)};return{transitions:C,define(h,L,S,w){const O=Float32Array.from(h);if(!e.valid(O,S.length))return 0;const F=_++;return T.set(F,{data:O,strings:L.slice(),roles:S.slice(),enterOnTop:(w&Ms)!==0}),F},create(h,L,S){const w=Float32Array.from(h);if(!y(w,S))return null;const O=e.create(w,L);if(O===0)return null;const F={id:O};return b.register(F,O),F},control(h,L){switch(L){case 0:e.play(h),l.add(h);break;case 1:e.pause(h);break;case 2:e.resume(h);break;case 3:e.cancel(h),l.delete(h);break;case 4:e.finish(h);break}s()},seek(h,L){e.seek(h,L),s()},setRate(h,L){e.setRate(h,L)},time:h=>e.time(h),elapsed:h=>e.elapsed(h),forget(h){e.cancelTarget(de,h.id),o.forget(h);for(const L of r)L.leaving===h&&(L.leaving=null),L.moved=L.moved.filter(([S])=>S!==h)},count:()=>e.count(),destroy(){u!==0&&n.cancelAnimationFrame(u),u=0,r.length=0,c.clear(),l.clear(),T.clear(),a=[],e.reset(),e.setHost(null)}}},Fs={isViewSupported:"phase 2",viewVersion:"phase 2",viewCall:"phase 2",pagerSetContent:"phase 2",pagerSelect:"phase 2",pagerPush:"phase 2",pagerPop:"phase 2",pagerPopToRoot:"phase 2",pagerReplace:"phase 2",vlistInit:"phase 2",vlistSetKeys:"phase 2",vlistInsertKeys:"phase 2",vlistRemoveKeys:"phase 2",vlistInvalidate:"phase 2",vlistMount:"phase 2",vlistScrollTo:"phase 2",vlistScrollToKey:"phase 2",vlistScrollToEnd:"phase 2",tweenCreate:"no tween engine was given to this tree"},Ds=e=>{const t=e.root,n=t.ownerDocument,o=n.defaultView??window,a=new Set,i=m=>console.warn(`[web-lite] ${m}`),r=m=>{if(a.has(m))return;a.add(m);const g=Fs[m]??"";i(/^(step|phase)/.test(g)?`${m} is not built yet (docs/plans/web-lite-plan.md, ${g})`:`${m}: ${g}`)};let c=[],u=!1;const d=m=>{c.push(m),!u&&(u=!0,queueMicrotask(()=>{u=!1;const g=c;c=[];for(const A of g)A()}))};let v=null;const p=(m,g,...A)=>{if(v)try{return v(m,g,...A)}catch(M){o.setTimeout(()=>{throw M},0);return}};t.classList.add("lc-root");const f=e.sink??Uo(n),E=Go(f),s=Yo(f,E,{bufferUrl:e.bufferUrl},i),l=new Map;let b=1;const y=new ResizeObserver(m=>{for(const g of m){const A=g.target,M=l.get(Number(A.getAttribute("data-node")));!M||M.el!==A||!(M.flags&ge)||p(M.id,br,A.offsetLeft,A.offsetTop,A.offsetWidth,A.offsetHeight)}}),T=cs({doc:n,bufferUrl:e.bufferUrl,hasTint:m=>s.names(m,"tintColor"),swapped:(m,g)=>{y.unobserve(g),m.flags&ge&&y.observe(m.el)},warn:i});s.onChange=m=>{const g=m;eo(g,A=>s.value(g,A)),g.type==="image"&&T.restyle(g),g.type==="widget"&&G.restyle(g)};const _=os({root:t,emit:p,value:(m,g)=>s.value(m,g),boundary:m=>G.isFrame(m)}),C=fs({root:t,emit:p}),h=new ResizeObserver(()=>{p(0,Mr,t.clientWidth,t.clientHeight)});h.observe(t);let L=null;const S=e.tween?Ls({root:t,ctx:{bufferUrl:e.bufferUrl},node:m=>l.get(m),value:(m,g)=>s.value(m,g),setStyle:(m,g,A)=>s.set(m,g,A),setString:(m,g,A)=>P.setString(m,g,A),wrote:(m,g,A)=>{g==="overlayColor"&&m.type==="widget"&&G.overlay(m,A)},flush:()=>s.flush()}):null,w=e.tween&&S?Is(e.tween,{win:o,ui:S,node:m=>l.get(m),callback:()=>L}):null;s.onWrite=(m,g)=>S==null?void 0:S.styled(m,g);const O=m=>m.parent===null&&!m.rooted,F=(m,g,A=!0)=>{for(const M of Ge(m))F(M,g,!1);A||g.push(m.id),_.forget(m),C.forget(m),W.forgetUrl(se,m.id),w==null||w.forget(m),G.forget(m),s.drop(m),y.unobserve(m.el),B.unregister(m.token),l.delete(m.id),m.parent=null,m.held=!1,A&&m.el.remove()},D=m=>{if(!l.has(m.id)||m.held||!O(m))return;const g=[];F(m,g),g.length>0&&p(0,At,g)},B=new FinalizationRegistry(m=>{const g=l.get(m);g&&(g.held=!1,O(g)&&d(()=>D(g)))}),H=m=>{m.held||d(()=>D(m))},W=ms({root:t,emit:p,post:d,warn:i,node:m=>l.get(m),rootOwned:(m,g)=>{m.rooted=g,g||H(m)},changed:e.onNavigation,transitions:e.transitions??(w==null?void 0:w.transitions)}),G=bs({root:t,emit:p,node:m=>l.get(m),value:(m,g)=>s.value(m,g),rootOwned:(m,g)=>{m.rooted=g,g||H(m)},flush:()=>s.flush()}),X=()=>{for(const g of G.backTargets())if(p(g.id,Ie,He,0)===!0)return"widget";const m=W.current();if(m){const g=m.kind===se||m.kind===Ke?m.id:0;if(p(g,Ie,m.kind,m.id)===!0)return"destination"}return W.routerPop(-1,be)?"router":p(0,Ie,He,0)===!0?"app":"none"},x=m=>{if(!(m.key!=="Escape"||m.defaultPrevented)){for(const g of G.backTargets())if(p(g.id,Ie,He,0)===!0){m.preventDefault();return}}};n.addEventListener("keydown",x);const k=ns({root:t,roots:()=>{const m=W.current();return[...m!=null&&m.node&&m.kind===se?[{kind:"screen",node:m.node}]:[],...G.shown().map(A=>({kind:"widget",node:A}))]},value:(m,g)=>s.value(m,g),owns:(m,g)=>s.owns(m,g),flush:()=>s.flush()});let I=0;const $=m=>{if(!m.isConnected)return null;s.flush();const g=pn(t)||1,A=t.getBoundingClientRect(),M=m.getBoundingClientRect();return M.width===0&&M.height===0&&m.offsetParent===null?null:[(M.left-A.left)/g,(M.top-A.top)/g,M.width/g,M.height/g]},P={create(m){const g=Jo(n,b++,m);xn(g),l.set(g.id,g);const A={id:g.id};return B.register(A,g.id,g.token),A},destroy(m){const g=l.get(m);if(!g)return;if(!O(g)){console.error(`[web-lite] destroy: node ${m} is attached — remove / hide / close it first`);return}g.held=!1;const A=[];F(g,A),A.length>0&&p(0,At,A)},insert(m,g,A){var ue;const M=l.get(m),j=l.get(g);if(!M||!j||j===M)return;if(!O(j)){i(`insert: node ${g} is not a root — remove it from where it is first`);return}const Q=Ge(M),J=Math.max(0,Math.min(A,Q.length));j.parent=M,M.el.insertBefore(j.el,((ue=Q[J])==null?void 0:ue.el)??null)},remove(m,g){const A=l.get(m),M=l.get(g);!A||!M||M.parent!==A||(M.parent=null,M.el.remove(),H(M))},parent:m=>{var g,A;return((A=(g=l.get(m))==null?void 0:g.parent)==null?void 0:A.id)??0},children(m){const g=l.get(m);return g?Ge(g).map(A=>A.id):[]},setString(m,g,A){const M=l.get(m);if(M)switch(A===null?M.strings.delete(g):M.strings.set(g,A),g){case"text":M.type==="text"&&(M.el.textContent=A??"");return;case"name":A===null?M.el.removeAttribute("data-name"):M.el.setAttribute("data-name",A);return;case"src":M.type==="image"&&T.setSrc(M,A);return;case"srcTintColor":M.type==="image"&&T.setSrcTint(M,A);return;case"sourceRect":M.type==="image"&&T.setSourceRect(M,A);return;case"value":if(M.type==="input"||M.type==="textarea"){const j=M.el;j.value!==(A??"")&&(j.value=A??"")}return;case"focus":A==="1"?M.el.focus({preventScroll:!0}):M.el.blur();return}},setInt(m,g,A){var M;(M=l.get(m))==null||M.strings.set(g,String(A))},setFlags(m,g){const A=l.get(m);if(!A)return;const M=A.flags;A.flags=g,A.el.classList.toggle(pt,(g&We)!==0),g&ge&&!(M&ge)?y.observe(A.el):!(g&ge)&&M&ge&&y.unobserve(A.el)},getTextValue(m){const g=l.get(m);return g&&(g.type==="input"||g.type==="textarea")?g.el.value:""},setStyle(m,g,A){const M=l.get(m);M&&s.set(M,g,A)},mergeStyle(m,g){const A=l.get(m);A&&s.merge(A,g)},setClass(m,g,A){const M=l.get(m);M&&s.setClass(M,g,A)},setTheme(m){for(const g of Object.keys(m)){const A=m[g];A==null?t.style.removeProperty(`--${g}`):t.style.setProperty(`--${g}`,typeof A=="number"?ie(A):Ce(A))}},defineTransition(m,g,A,M){return w?w.define(m,g,A,M):++I},open:W.open,close:W.close,routerOpen:(m,g,A,M)=>W.routerOpen(m,g,A,M),routerPush:W.routerPush,routerReplace:W.routerReplace,routerPop:(m,g)=>{W.routerPop(m,g)},routerHide:W.routerHide,routerRestore:W.routerRestore,setDestUrl:W.setUrl,isViewSupported:()=>(r("isViewSupported"),!1),viewVersion:()=>0,viewCall:(m,g,A,M,j)=>{r("viewCall"),j("native views are not built yet")},showWidget(m,g,A){const M=l.get(m);M&&G.show(M,g,A)},hideWidget(m){const g=l.get(m);g&&G.hide(g)},pagerSetContent:()=>r("pagerSetContent"),pagerSelect:()=>r("pagerSelect"),pagerPush:()=>r("pagerPush"),pagerPop:()=>r("pagerPop"),pagerPopToRoot:()=>r("pagerPopToRoot"),pagerReplace:()=>r("pagerReplace"),vlistInit:()=>r("vlistInit"),vlistSetKeys:()=>r("vlistSetKeys"),vlistInsertKeys:()=>r("vlistInsertKeys"),vlistRemoveKeys:()=>r("vlistRemoveKeys"),vlistInvalidate:()=>r("vlistInvalidate"),vlistMount:()=>r("vlistMount"),vlistScrollTo:()=>r("vlistScrollTo"),vlistScrollToKey:()=>r("vlistScrollToKey"),vlistScrollToEnd:()=>r("vlistScrollToEnd"),registerFont(m,g,A,M,j,Q){try{const J=new o.FontFace(m,`url("${g}")`,{weight:String(A),style:M===2?"italic":"normal"});n.fonts.add(J),J.load().then(()=>j(),()=>Q())}catch{Q()}},fontFormat:"woff2",toast:(m,g)=>G.toast(m,g),isButtonPressed(m){const g=l.get(m);return!!g&&_.isPressed(g)},isHovered(m){const g=l.get(m);return!!g&&_.isHovered(g)},getBoundingClientRect(m){const g=l.get(m);return g?$(g.el):null},getDisplaySize:()=>[t.clientWidth,t.clientHeight],debugDump:()=>k.dump(),debugPaint:m=>k.paint(l.get(m)),tweenCreate(m,g,A){return w?w.create(m,g,A):(r("tweenCreate"),null)},tweenControl:(m,g)=>w==null?void 0:w.control(m,g),tweenSeek:(m,g)=>w==null?void 0:w.seek(m,g),tweenSetRate:(m,g)=>w==null?void 0:w.setRate(m,g),tweenGetTime:m=>(w==null?void 0:w.time(m))??0,tweenGetElapsed:m=>(w==null?void 0:w.elapsed(m))??0,registerTweenEvent(m){L=m},setEmitter(m){v=m}};return{bridge:P,presentation:W,back:X,setSafeArea(m,g=[]){for(const A of["top","right","bottom","left"])t.style.setProperty(`--safe-${A}`,`${m[A]}px`),g.includes(A)?t.style.setProperty(`--safe-${A}-bar`,`${m[A]}px`):t.style.removeProperty(`--safe-${A}-bar`)},flush:()=>s.flush(),stats:()=>({nodes:l.size,classes:E.count(),tweens:(w==null?void 0:w.count())??0}),destroy(){v=null,W.reset(),w==null||w.destroy(),G.destroy(),n.removeEventListener("keydown",x),_.destroy(),C.destroy(),h.disconnect(),y.disconnect();for(const m of l.values())B.unregister(m.token),m.el.remove();l.clear(),e.sink||f.destroy(),t.classList.remove("lc-root");for(const m of Array.from(t.style))m.startsWith("--")&&t.style.removeProperty(m)}}},Bs=""+new URL("assets/creatorTween-PF8B6T8V.wasm",import.meta.url).href,Us=()=>_s(new URL(Bs,import.meta.url).href),le=[null],Et=new TextDecoder("utf-8"),Ws=e=>JSON.parse(Et.decode(Me(e))),Mn=e=>Et.decode(Me(e)),Hs=e=>new Uint8Array(Me(e)).slice(),zs=(e,t,n)=>Et.decode(Me(e).slice(t,n)),Vs=e=>{const t=new Blob([le[e]]);return URL.createObjectURL(t)},Nn=e=>new Blob([le[e]]),Me=e=>le[e],en=e=>{le[e]=null},mt=e=>(le.push(e),le.length-1),Gs=new Map,tn=new Map,js=e=>{const t=tn.get(e);if(t!==void 0)return t;const n=Gs.get(e);if(!n)return-1;le.push(n);const o=le.length-1;return tn.set(e,o),o},Ks=e=>{let t=null,n=null;const o=(u,d)=>{t==null||t(u,d)},a=()=>o(document.hidden?"pause":"resume"),i=()=>o("online"),r=()=>o("offline");return document.addEventListener("visibilitychange",a),window.addEventListener("online",i),window.addEventListener("offline",r),{bridge:{run(u,d,v,p){let f;try{f=Mn(u)}catch{d("run: no such buffer");return}e.rerun(f,p,d)},restart(u){e.rerun(void 0,u)},quit(){},launchUrl:()=>e.launchUrl(),registerEvent(u){t=u},setFreedEmitter(u){n=u},ownedStats:()=>e.stats(),state:()=>document.hidden?"background":"active",isOnline:()=>navigator.onLine,openUrl(u){window.open(u,"_blank","noopener")},setOrientation(u){var p,f,E,s;const d=u==="landscape"||u==="portrait"?u:"auto";if(e.onOrientation){e.onOrientation(d);return}const v=typeof screen<"u"?screen.orientation:void 0;if(v)try{d==="auto"?(p=v.unlock)==null||p.call(v):(s=(E=(f=v.lock)==null?void 0:f.call(v,d))==null?void 0:E.catch)==null||s.call(E,()=>{})}catch{}}},emit:o,freed:(u,d)=>{n==null||n(u,d)},dispose(){t=null,n=null,document.removeEventListener("visibilitychange",a),window.removeEventListener("online",i),window.removeEventListener("offline",r)}}},Ys=(e,t,n,o)=>{try{const a=document.createElement("input");a.type="file",a.multiple=n,o&&(a.accept=o),a.onchange=async()=>{const{files:i}=a;if(n){const r=[];if(!i)return e([]);for(let c of i)r.push([mt(await c.arrayBuffer()),c.name,c.size]);e(r)}else{if(!i||i.length===0)return e(null);e([[mt(await i[0].arrayBuffer()),i[0].name,i[0].size]])}},window.addEventListener("focus",()=>{setTimeout(()=>{(!a.files||a.files.length===0)&&e(n?[]:null)},300)},{once:!0}),a.click()}catch(a){t(a)}},Xs=e=>({get platform(){return"web"},get language(){return e()},get pixelRatio(){return window.devicePixelRatio||1},vibrate(){var t;try{(t=navigator.vibrate)==null||t.call(navigator,30)}catch{}},clipboardWrite(t){var n;(n=navigator.clipboard)==null||n.writeText(t).catch(()=>{})},clipboardRead(t,n){const o=navigator.clipboard;if(!(o!=null&&o.readText)){n("Clipboard is not available");return}o.readText().then(t,a=>n(a instanceof Error?a.message:"Clipboard read failed"))},share(t,n){var c;const o=Nn(t),a=new File([o],"image.png",{type:"image/png"});if((c=navigator.canShare)!=null&&c.call(navigator,{files:[a]})){navigator.share({files:[a],text:n}).catch(()=>{});return}const i=URL.createObjectURL(o),r=document.createElement("a");r.href=i,r.download=a.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(i)},openFilePicker:(t,n,o,a)=>Ys(t,n,o,a??void 0),requestCamera(t){t()}}),qs=e=>{const t=e==null?void 0:e._h;return typeof e=="object"&&e!==null&&typeof(t==null?void 0:t.id)=="number"?t.id:null},Js=e=>{if(e==null)return;if(typeof e=="string")return e;const t=e._entries;if(!Array.isArray(t))throw new Error("fetch: the body is a string or a FormData");const n=new FormData;for(const[o,a,i]of t){const r=qs(a);r!==null?n.append(o,Nn(r),i):n.append(o,String(a))}return n},Qs=()=>{const e=new Set,t=new FinalizationRegistry(i=>{e.delete(i)&&en(i)}),n=i=>{const r={id:i};return e.add(i),t.register(r,i),r};let o=!1;return{bridge:{fetch(i,r,c,u,d){const v=typeof(r==null?void 0:r.onProgress)=="function"?r.onProgress:d;if(i.startsWith("id:")){const p=Number(i.slice(3));c({id:p},Me(p)?200:404);return}(async()=>{var p;try{const f=await fetch(i,{method:r==null?void 0:r.method,headers:r==null?void 0:r.headers,body:Js(r==null?void 0:r.body),mode:"cors",credentials:"omit"}),E=v?(p=f.body)==null?void 0:p.getReader():void 0;let s;if(!E)s=await f.arrayBuffer();else{const l=Number(f.headers.get("content-length"))||void 0,b=[];let y=0;for(;;){const{done:C,value:h}=await E.read();if(C)break;h&&(b.push(h),y+=h.length,o||v({loaded:y,total:l}))}const T=new Uint8Array(y);let _=0;for(const C of b)T.set(C,_),_+=C.length;s=T.buffer}if(o)return;c(n(mt(s)),f.status)}catch(f){o||u(f instanceof Error?f:String(f))}})()},local:i=>js(i),toJson:i=>Ws(i),slice:(i,r,c)=>zs(i,r,c),toText:i=>Mn(i),toBytes:i=>Hs(i)},live:()=>e.size,dispose(){o=!0;for(const i of e)en(i);e.clear()}}},nn=["MouseLeft","MouseMiddle","MouseRight","MouseBack","MouseForward"],it=["GamepadSouth","GamepadEast","GamepadWest","GamepadNorth","GamepadL1","GamepadR1","GamepadL2","GamepadR2","GamepadSelect","GamepadStart","GamepadL3","GamepadR3","GamepadUp","GamepadDown","GamepadLeft","GamepadRight"],Ue=4,at=16,rn=16,Zs=.5,ei=e=>{const t=new Set;let n=null;const o=($,P,m=-1,g=0)=>{n==null||n($,P,m,g)},a=$=>{if(!$.code)return;const P=t.has($.code);t.add($.code),o(0,$.code,-1,P||$.repeat?1:0)},i=$=>{$.code&&t.delete($.code)&&o(1,$.code)},r=()=>{for(const $ of[...t])$.startsWith("Gamepad")||(t.delete($),o(1,$))},{root:c}=e;let u=0,d=0,v=0,p=0,f=0,E=0,s=0,l=0,b=0,y=0;const T=$=>{if($.pointerType&&$.pointerType!=="mouse")return;const P=c.getBoundingClientRect();u=$.clientX-P.left,d=$.clientY-P.top,v+=$.movementX||0,p+=$.movementY||0},_=$=>{const P=nn[$.button];P&&(t.add(P),o(0,P))},C=$=>{const P=nn[$.button];P&&t.delete(P)&&o(1,P)},h=$=>{const P=$.deltaMode===0?.01:1;f+=$.deltaX*P,E+=$.deltaY*P},L=$=>{document.pointerLockElement===c&&$.preventDefault()},S=[],w=[],O=[],F=()=>{var P,m;const $=typeof navigator<"u"&&navigator.getGamepads?Array.from(navigator.getGamepads()):[];for(let g=0;g<Ue;g++){const A=$[g]??null,M=!!A&&A.connected;if(M!==!!S[g]){if(S[g]=M,!M){for(const q of it)t.delete(q+"@"+g)&&(o(1,q,g),D(q));O[g]=[],w[g]=[0,0,0,0,0,0]}o(M?2:3,"",g)}if(!A||!M)continue;const j=A.axes,Q=A.buttons,J=((P=Q[6])==null?void 0:P.value)??0,ue=((m=Q[7])==null?void 0:m.value)??0;w[g]=[j[0]??0,j[1]??0,j[2]??0,j[3]??0,J,ue];const Te=O[g]??(O[g]=[]);for(let q=0;q<it.length;q++){const _e=Q[q],pe=!!_e&&(_e.pressed||_e.value>Zs);if(pe===!!Te[q])continue;Te[q]=pe;const me=it[q];pe?t.add(me+"@"+g):t.delete(me+"@"+g),D(me),o(pe?0:1,me,g)}}},D=$=>{let P=!1;for(let m=0;m<Ue&&!P;m++)t.has($+"@"+m)&&(P=!0);P?t.add($):t.delete($)};let B=0;const H=()=>{s=v,l=p,b=f,y=E,v=p=f=E=0,F(),B=requestAnimationFrame(H)},W=e.windows.filter(($,P,m)=>$&&m.indexOf($)===P);for(const $ of W)e.keyboard!==!1&&($.addEventListener("keydown",a),$.addEventListener("keyup",i)),$.addEventListener("blur",r);return c.addEventListener("pointermove",T,!0),c.addEventListener("mousedown",_,!0),window.addEventListener("mouseup",C,!0),c.addEventListener("wheel",h,{passive:!0,capture:!0}),c.addEventListener("contextmenu",L,!0),typeof requestAnimationFrame=="function"&&(B=requestAnimationFrame(H)),{inputKey:($,P)=>P>=0&&$.startsWith("Gamepad")?t.has($+"@"+P):t.has($),inputRead:$=>{var P;switch($){case 0:return u;case 1:return d;case 2:return s;case 3:return l;case 4:return b;case 5:return y;case 6:return document.pointerLockElement===c?1:0;case 7:{let m=0;for(let g=0;g<Ue;g++)S[g]&&m++;return m}}if($>=at){const m=Math.floor(($-at)/rn),g=($-at)%rn;return m>=Ue||!S[m]?0:g===0?1:((P=w[m])==null?void 0:P[g-1])??0}return 0},inputSetPointerLock:$=>{if(!$)return document.pointerLockElement===c&&document.exitPointerLock(),!0;if(document.pointerLockElement===c)return!0;if(typeof c.requestPointerLock!="function")return!1;try{const P=c.requestPointerLock({unadjustedMovement:!0});return P&&typeof P.catch=="function"&&P.catch(()=>{try{c.requestPointerLock()}catch{}}),!0}catch{return!1}},registerInputEvent:$=>{n=$},dispose:()=>{for(const $ of W)$.removeEventListener("keydown",a),$.removeEventListener("keyup",i),$.removeEventListener("blur",r);c.removeEventListener("pointermove",T,!0),c.removeEventListener("mousedown",_,!0),window.removeEventListener("mouseup",C,!0),c.removeEventListener("wheel",h,!0),c.removeEventListener("contextmenu",L,!0),B&&cancelAnimationFrame(B),document.pointerLockElement===c&&document.exitPointerLock(),t.clear(),n=null}}},ti=e=>{const t=e.ownerDocument.defaultView??window,n=ei({windows:[t],root:e}),o=t.visualViewport,a=()=>o?Math.max(0,Math.round(t.innerHeight-o.height-o.offsetTop)):0;let i=null,r=0;const c=()=>{const d=a();d!==r&&(r=d,i==null||i(d,0))};return o==null||o.addEventListener("resize",c),{bridge:{key:n.inputKey,read:n.inputRead,setPointerLock:n.inputSetPointerLock,registerEvent(d){n.registerInputEvent(d)},keyboardHeight:a,registerKeyboardEvent(d){i=d}},dispose(){i=null,o==null||o.removeEventListener("resize",c),n.dispose()}}},ee=[null],Ne=[!1],Pn=(e,t,n)=>{e.addEventListener("ended",()=>{n(),Ne[t]&&(e.currentTime=0,e.play())})},ni=(e,t)=>{const n=document.createElement("video");document.body.appendChild(n),n.crossOrigin="anonymous",n.style="opacity: 0; position: absolute; top: 0; left: 0; width: 1px; height: 1px",n.src=e,n.playsInline=!0,n.controls=!1;const o=ee.length;return ee.push(n),Ne.push(!1),Pn(n,o,t),o},ri=(e,t)=>{const n=document.createElement("audio");document.body.appendChild(n),n.style="opacity: 0; position: absolute; top: 0; left: 0; width: 1px; height: 1px",n.src=e;const o=ee.length;return ee.push(n),Ne.push(!1),Pn(n,o,t),o},oi=(e,t)=>{const n=ee[e];n&&(t===0?n.muted=!0:(n.muted&&(n.muted=!1),n.volume=t))},si=(e,t)=>{const n=ee[e];n&&(t?n.play():n.pause())},ii=(e,t)=>{Ne[e]=t},ai=e=>{var t;return((t=ee[e])==null?void 0:t.currentTime)??0},ci=(e,t)=>{const n=ee[e];n&&(n.currentTime=t)},li=e=>{var n;const t=((n=ee[e])==null?void 0:n.duration)??0;return isNaN(t)?0:t},ui=e=>{e.pause(),e.removeAttribute("src"),e.load(),e.remove()},fi=e=>{const t=ee[e];t&&(ui(t),ee[e]=null,Ne[e]=!1)},di=()=>{const e=new Map;let t=null;const n=r=>{e.delete(r)&&fi(r)},o=new FinalizationRegistry(r=>{const c=e.get(r);c&&(c.held=!1,c.playing||n(r))}),a=(r,c)=>{let u=-1;if(u=r(c,()=>{const p=e.get(u);p&&(t==null||t(u),!p.loop&&(p.playing=!1,p.held||n(u)))}),u<0)return null;e.set(u,{held:!0,playing:!1,loop:!1});const v={id:u};return o.register(v,u),v};return{bridge:{createAudio:r=>a(ri,r),createVideo:r=>a(ni,r),setVolume:oi,setLoop(r,c){const u=e.get(r);u&&(u.loop=c),ii(r,c)},setPlaying(r,c){const u=e.get(r);u&&(u.playing=c,si(r,c),!c&&!u.held&&n(r))},time:ai,setTime:ci,duration:li,setEmitter(r){t=r}},live:()=>e.size,dispose(){t=null;for(const r of[...e.keys()])n(r)}}},pi=()=>{const e=[];return{bridge:{open(n,o){const a=e.length;let i;try{i=new WebSocket(n)}catch{return e.push(null),queueMicrotask(()=>o("error")),a}return i.addEventListener("open",()=>o("open")),i.addEventListener("message",r=>o("message",r.data)),i.addEventListener("close",r=>{e[a]=null,o("close",r.code)}),i.addEventListener("error",()=>o("error")),e.push(i),a},send(n,o){const a=e[n];a&&a.readyState===WebSocket.OPEN&&a.send(o)},close(n){var o;(o=e[n])==null||o.close()}},dispose(){for(const n of e)n==null||n.close();e.length=0}}},mi=e=>{let t="default",n=null,o=!1;const a=()=>`lecodes:${e}:${t}`,i=()=>{if(n)return n;n={};try{const d=window.localStorage.getItem(a()),v=d?JSON.parse(d):null;if(v&&typeof v=="object")for(const[p,f]of Object.entries(v))typeof f=="string"&&(n[p]=f)}catch{}return n},r=()=>{if(o=!1,!!n)try{window.localStorage.setItem(a(),JSON.stringify(n))}catch{}},c=()=>{o||(o=!0,queueMicrotask(r))};return{bridge:{get:d=>i()[d]??null,set(d,v){i()[d]=String(v),c()},remove(d){delete i()[d],c()},select(d){o&&r(),t=d,n=null}},dispose(){o&&r()}}},on="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",In={};for(let e=0;e<on.length;e++)In[on[e]]=e;const hi=e=>{const t=[];let n=0,o=0;for(const a of e){const i=In[a];if(i===void 0)break;const r=i&32;if(o+=(i&31)<<n,r)n+=5;else{const c=o&1;o>>=1,t.push(c?-o:o),o=0,n=0}}return t};class gi{constructor(t){Pe(this,"sources");Pe(this,"lines");this.sources=t.sources,this.lines=[];let n=0,o=0,a=0;for(const i of t.mappings.split(";")){const r=[];let c=0;if(i)for(const u of i.split(",")){const d=hi(u);d.length!==0&&(c+=d[0],d.length>=4&&(n+=d[1],o+=d[2],a+=d[3],r.push([c,n,o,a])))}this.lines.push(r)}}originalPositionFor(t,n){const o=this.lines[t-1];if(!o||o.length===0)return null;let a=null;for(const r of o)if(r[0]<=n)a=r;else break;a??(a=o[0]);const i=this.sources[a[1]];return i===void 0?null:{source:i,line:a[2]+1,column:a[3]}}}const yi=e=>{const t=e.match(/\/\/# lecodesMap=data:application\/json;(?:charset=[^;]+;)?base64,([A-Za-z0-9+/=]+)\s*$/);if(!t)return null;try{const n=typeof atob=="function"?atob(t[1]):Buffer.from(t[1],"base64").toString("utf8");return new gi(JSON.parse(n))}catch{return null}};let ye=null;const bi=()=>{if(ye!==null)return ye;try{new Function("throw new Error('chisel-calibrate')")()}catch(e){const n=(e.stack??"").match(/<anonymous>:(\d+):\d+/);return ye=n?parseInt(n[1],10)-1:2,ye}return ye=2,ye},sn=(e,t)=>{const n=(e instanceof Error?e.stack:"")??"",o=bi(),a=[];for(const i of n.split(`
199
- `)){const r=i.match(/<anonymous>:(\d+):(\d+)/);if(!r)continue;const c=parseInt(r[1],10)-o,u=parseInt(r[2],10)-1;if(c<1)continue;const d=t.originalPositionFor(c,u<0?0:u);if(!d)continue;const v=i.match(/at\s+([^\s(]+)\s*\(/);a.push({fn:v?v[1]:null,source:d.source,line:d.line,column:d.column})}return a},vi=e=>{const t=[],n=(r,c,u)=>{var p;const d=c instanceof Error?c.message:String(c),v=u[0];console.error(v?`[lecodes] ${d}
200
- at ${v.source}:${v.line}:${v.column}${v.fn?` (${v.fn})`:""}`:`[lecodes] ${d}`),(p=r.onError)==null||p.call(r,{message:d,frames:u,stack:c instanceof Error?c.stack:void 0})},o=r=>{for(let c=t.length-1;c>=0;c--){const u=t[c];if(!u.sourceMap)continue;const d=sn(r,u.sourceMap);if(d.length>0)return n(u,r,d),!0}return!1},a=r=>{o(r.error??r.message)},i=r=>{o(r.reason)};return e.addEventListener("error",a),e.addEventListener("unhandledrejection",i),{track(r,c){const u={sourceMap:yi(r),onError:c};return t.push(u),{thrown(d){n(u,d,u.sourceMap?sn(d,u.sourceMap):[])},drop(){const d=t.indexOf(u);d>=0&&t.splice(d,1)}}},dispose(){e.removeEventListener("error",a),e.removeEventListener("unhandledrejection",i),t.length=0}}},an=e=>typeof e=="object"&&e!==null&&e.lecodes===!0&&typeof e.level=="number",ht=(e,t={})=>{let n;if((t.mode??"hash")==="hash")n=e.hash.replace(/^#/,"");else{const o=t.base??"/";n=(e.pathname.startsWith(o)?e.pathname.slice(o.length-1):e.pathname).replace(/\/index\.html$/,"/")+e.search}return n===""||n==="/"?null:n.startsWith("/")?n:`/${n}`},Ei=(e,t,n={})=>{if((n.mode??"hash")==="hash")return`${t.pathname}${t.search}${e===null?"":`#${e}`}`;const o=n.base??"/";return e===null?o:o.replace(/\/$/,"")+e},wi=(e,t,n={})=>{const o=e.history,a=e.location;let i=0,r=!1,c=0,u=!1;const d=(E,s)=>{const l={lecodes:!0,level:s},b=Ei(t.address(),a,n);E==="push"?o.pushState(l,"",b):o.replaceState(l,"",b)},v=E=>{E!==0&&(c++,o.go(E))},p=()=>{if(c>0){u=!0;return}const E=t.level();if(r){i=E,d("replace",E);return}if(E>i){for(let s=i+1;s<=E;s++)d("push",s);i=E}else if(E<i){const s=E-i;i=E,v(s)}else d("replace",E)},f=E=>{if(c>0){if(c--,c>0)return;u?(u=!1,p()):d("replace",i);return}const s=E.state;if(!an(s)){const T=ht(a,n);o.replaceState({lecodes:!0,level:i},"",a.href),T!==null&&t.link(T);return}const l=s.level,b=i;r=!0;try{if(l<b)for(;t.level()>l;){const T=t.level();if(t.back(),t.level()>=T)break}else if(l>b){const T=ht(a,n);T!==null&&t.link(T)}}finally{r=!1}const y=Math.max(0,t.level());if(i=l,y===l){d("replace",l);return}if(l>b&&y>b){i=y,d("replace",y);return}i=y,v(y-l)};return e.addEventListener("popstate",f),an(o.state)?i=o.state.level:o.replaceState({lecodes:!0,level:0},"",a.href),{sync:p,reset(){const E=-i;i=0,v(E)},destroy(){e.removeEventListener("popstate",f)}}},Si=.1,Ti=e=>{const t=new Set,n=new Set,o=new Map;let a=1,i=0,r=0;const c=u=>{i=0;const d=Math.min(Si,Math.max(0,(u-r)/1e3));r=u;for(const v of[...o.values()])v(d);o.size>0&&(i=e.requestAnimationFrame(c))};return{globals:{setTimeout(u,d,...v){const p=e.setTimeout(()=>{t.delete(p),u(...v)},d);return t.add(p),p},clearTimeout(u){t.delete(u),e.clearTimeout(u)},setInterval(u,d,...v){const p=e.setInterval(()=>u(...v),d);return n.add(p),p},clearInterval(u){n.delete(u),e.clearInterval(u)},setLoop(u){const d=a++;return o.set(d,u),i===0&&(r=e.performance.now(),i=e.requestAnimationFrame(c)),d},clearLoop(u){o.delete(u)}},dispose(){for(const u of t)e.clearTimeout(u);for(const u of n)e.clearInterval(u);t.clear(),n.clear(),o.clear(),i!==0&&e.cancelAnimationFrame(i),i=0}}},_i=["_creator","_creator2d","_creatorNav","_creatorNet","_creatorAudio","_creatorCanvas","_creatorFiles","_creatorService"],cn=new Map,ki=e=>{let t=cn.get(e);return t||cn.set(e,t=Vs(e)),t},Ri=(e,t={})=>{const n=e.ownerDocument,o=n.defaultView??window,a=vi(o),i=t.language??(()=>(navigator.language||"en").slice(0,2));let r=null,c=null;const u=()=>c??(c=Us().catch(_=>(console.warn(`[web-lite] the tween engine did not load: ${_ instanceof Error?_.message:_}`),null)));let d=t.launchRoute!==void 0?t.launchRoute:t.history?ht(o.location,t.history):null,v=t.safeArea??null,p=0;const f=n.createElement("div");f.style.cssText="position:absolute;visibility:hidden;pointer-events:none;width:0;height:0;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);";const E=()=>{f.isConnected||n.body.appendChild(f);const _=o.getComputedStyle(f),C=h=>Math.round(parseFloat(h)||0);return{top:C(_.paddingTop),right:C(_.paddingRight),bottom:C(_.paddingBottom),left:C(_.paddingLeft)}},s=()=>{const _=v??E();r==null||r.tree.setSafeArea(_,_.bars??[])};o.addEventListener("resize",s);const l=t.history?wi(o,{level:()=>Math.max(0,((r==null?void 0:r.tree.presentation.stack().length)??0)-1),address:()=>(r==null?void 0:r.tree.presentation.address())??null,back:()=>{r==null||r.tree.back()},link:_=>{d=_,r==null||r.emitApp("url",_)}},t.history):null,b=()=>{r==null||r.dispose(),r=null},y=(_,C,h)=>{const L=Ds({root:e,bufferUrl:ki,tween:h??void 0,onNavigation:()=>{var x;l==null||l.sync(),(x=t.onNavigation)==null||x.call(t,L)}}),S=Ti(o),w=Qs(),O=mi(t.project??"app"),F=pi(),D=ti(e),B=di(),H=a.track(_,C.onError),W=Ks({launchUrl:()=>d,rerun:(x,k,I)=>{k!==void 0&&(d=k);const $=x??_;o.setTimeout(()=>{T($,C).catch(P=>I==null?void 0:I(P instanceof Error?P.message:String(P)))},0)},stats:()=>JSON.stringify({live:{tree:L.stats().nodes,fetch:w.live(),media:B.live(),tween:L.stats().tweens},pending:0}),onOrientation:t.onOrientation}),G={_creatorTree:L.bridge,_creatorApp:W.bridge,_creatorDevice:Xs(i),_creatorFetch:w.bridge,_creatorStorage:O.bridge,_creatorSocket:F.bridge,_creatorInput:D.bridge,_creatorMedia:B.bridge,...S.globals};for(const x of _i)G[x]=void 0;r={code:_,tree:L,emitApp:W.emit,dispose(){H.drop(),S.dispose(),F.dispose(),B.dispose(),D.dispose(),O.dispose(),w.dispose(),W.dispose(),L.destroy()}},s();const X=Object.keys(G);try{new Function(...X,_)(...X.map(x=>G[x]))}catch(x){H.thrown(x)}};async function T(_,C={}){const h=yr(_);if(!fr(h.sdk,Tt))throw new Error(`This app was built with LeCodes SDK ${h.sdk??"older than 2.0"}; this host runs SDK ${Tt}. It needs a new build.`);(h.gl==="on"||h.is2d)&&console.warn(`[web-lite] this app uses ${h.is2d?"2D":"3D"} scenes, which Web Lite does not show yet (docs/plans/web-lite-plan.md): its UI runs, a scene's calls fail`);const L=++p;r&&(l==null||l.reset()),b();const[S]=await Promise.all([u(),mr(void 0,n),gr(h.bootFonts,n)]);L===p&&y(_,C,S)}return{run:T,restart(_){return r?(_!==void 0&&(d=_),T(r.code)):Promise.resolve()},tree:()=>(r==null?void 0:r.tree)??null,setSafeArea(_){v=_,s()},openRoute(_){d=_,r==null||r.emitApp("url",_)},emitAppEvent(_,C){r==null||r.emitApp(_,C)},destroy(){p++,b(),o.removeEventListener("resize",s),l==null||l.destroy(),f.remove(),a.dispose()}}},je=document.getElementById("app"),ln=document.getElementById("error"),Se=new URLSearchParams(location.search),Fn=e=>{ln&&(ln.textContent=e)},un=Se.has("dev")?new URL(Se.get("dev")||"..",location.href).href.replace(/\/$/,""):null,fn=e=>{const t=e.frames[0];return t?`${e.message}
201
- at ${t.source}:${t.line}:${t.column}${t.fn?` (${t.fn})`:""}`:e.message},Dn=e=>{Fn(fn(e)),Z==null||Z.error(fn(e))},Bn=e=>Dn({message:e instanceof Error?e.message:String(e),frames:[]}),Un=Ri(je,{history:{mode:je.dataset.urls==="path"?"path":"hash",base:je.dataset.base??"/"},project:Se.get("project")??location.pathname});Se.has("test")&&(window.lecodesTest={ready:!1,dump:()=>{var e;return((e=Un.tree())==null?void 0:e.bridge.debugDump())??'{"roots":[]}'},rect:e=>{const t=document.querySelector(`[data-node="${e}"]`);if(!t)return null;const n=t.getBoundingClientRect();return[n.left,n.top,n.width,n.height]}});let ct=!1,lt=null,gt=-1;const qe=async e=>{if(ct){lt=e;return}ct=!0,Fn("");try{const t=await fetch(e.src,{cache:"no-store"});if(!t.ok)throw new Error(t.status===503?"No successful compile yet — check the terminal.":`${e.src} → HTTP ${t.status}`);const n=await t.text();await Un.run(n,{onError:Dn});const o=window.lecodesTest;o&&(o.ready=!0),Z&&e.version!==void 0&&(gt=Z.versionOf(t,e.version),Z.ran(gt))}catch(t){Bn(t)}finally{ct=!1;const t=lt;lt=null,t&&qe(t)}},Z=un?lr(un,e=>{e!==gt&&qe({src:Z.bundleUrl(e),version:e})}):null;if(Z)for(const e of["log","info","warn","error"]){const t=console[e].bind(console);console[e]=(...n)=>{t(...n),Z.log(e,n)}}if(Z)qe({src:Z.bundleUrl(0),version:0});else{const e=ur(Se.get("src")??je.dataset.src??"app.js",document.baseURI);e?qe({src:e}):Bn(`The page runs bundles of its own origin only: ${Se.get("src")}`)}
274
+ `,vo=e=>{const t=e.defaultView??window;try{t.CSS.registerProperty({name:"--lc-dim",syntax:"<number>",inherits:!0,initialValue:"0"})}catch{}for(const l of yo)try{t.CSS.registerProperty({name:l,syntax:"*",inherits:!1})}catch{}const n=e.createElement("style");n.setAttribute("data-lecodes-lite",""),n.textContent=Eo,e.head.appendChild(n);const r=n.sheet,s=(l,d)=>{const b=l.insertRule(d,l.cssRules.length);return l.cssRules[b]},i=(l,d)=>{const b=l.cssRules;for(let E=b.length-1;E>=0;E--)if(b[E]===d){l.deleteRule(E);return}},o=new Map,f=(l,d)=>{const b=d===void 0?l:`${l}.${d}`;let E=o.get(b);return E||(E=d===void 0?s(r,`@layer ${l} {}`):s(f(l),`@layer ${d} {}`),o.set(b,E)),E};for(const l of bn)l!=="lc-base"&&f(l);return{insert(l,d,b){const E=f(l,b),g=s(E,d);return{remove:()=>i(E,g)}},own(l){const d=f("lc-own"),b=s(d,`${l} {}`);return{set:(E,g)=>b.style.setProperty(E,g),unset:E=>{b.style.removeProperty(E)},remove:()=>i(d,b)}},destroy(){n.remove()}}},at="lc-i";let wo=1;const Je=new Map,En=e=>{let t=Je.get(e);return t||Je.set(e,t=`lc-c${Je.size+1}`),t},So=(e,t)=>{const n=`{${t.text}}`,r=s=>`${s} .${e}, .${e}${s}`;switch(t.name){case"pressed":return{layer:"lc-press",text:`${r(`.${at}:active`)} ${n}`};case"hovered":return{layer:"lc-hover",text:`@media (hover: hover) { ${r(`.${at}:hover`)} ${n} }`};case"focused":return{layer:"lc-focus",text:`${r(".lc:focus-visible")} ${n}`};case"landscape":case"portrait":return{layer:"lc-orient",text:`@container ${yn} (orientation: ${t.name}) { .${e} ${n} }`};default:{const s=En(t.name);return{layer:"lc-class",sub:s,text:`${r(`.${s}`)} ${n}`}}}},_o=e=>e.base+""+e.transition+e.blocks.map(t=>`${t.name}${t.text}`).join(""),To=256,ko=e=>{const t=new Map,n=new Set,r=()=>{let s=n.size>>1;for(const i of n){if(s--<=0)break;for(const o of i.rules)o.remove();n.delete(i),t.delete(i.key)}};return{acquire(s){const i=_o(s);let o=t.get(i);if(o)return o.refs===0&&n.delete(o),o.refs++,o;const f=`lc-s${wo++}`,l=[],d=s.transition?`${s.base?";":""}transition:${s.transition}`:"";l.push(e.insert("lc-bag",`.${f} {${s.base}${d}}`));for(const b of s.blocks){const E=So(f,b);l.push(e.insert(E.layer,E.text,E.sub))}return t.set(i,o={name:f,key:i,refs:1,rules:l}),o},release(s){--s.refs>0||(n.add(s),n.size>To&&r())},count:()=>({live:t.size-n.size,idle:n.size})}},Lo=()=>({base:new Map,own:new Map,blocks:new Map,cls:null,rule:null,applied:new Map,dirty:!1}),It=new Set([...Nr,"easing"]),xo=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)&&!("_h"in e),Ro=(e,t,n,r)=>{const s=new Set;let i=!1;const o=new Set,f=h=>{o.has(h)||(o.add(h),r(`style: "${h}" is not a style property — ignored`))};let l=null,d=null;const b=h=>{h.style.dirty=!0,s.add(h),!i&&(i=!0,queueMicrotask(a))},E=h=>{const y=h.style,R=Xe(y.own,n,f);if(!(R.size===0&&!y.rule)){y.rule||(y.rule=e.own(`.lc-n${h.id}`),h.el.classList.add(`lc-n${h.id}`));for(const O of y.applied.keys())R.has(O)||y.rule.unset(O);for(const[O,A]of R)y.applied.get(O)!==A&&y.rule.set(O,A);y.applied=R}},g=(h,y)=>{const R=new Map;for(const[O,A]of h){if(!(A.duration>0))continue;const k=`${A.duration}ms ${bo(A.easing)} ${A.delay}ms`;for(const U of y.get(O).keys())U.startsWith("--")||R.set(U,`${U} ${k}`)}return[...R.values()].join(", ")},m=h=>{const y=h.style;y.dirty=!1;const R=Ot(Xe(y.base,n,f)),O=new Map,A=[];for(const[U,N]of y.blocks){const v=Xe(N.props,n,f);O.set(U,v),v.size>0&&A.push({name:U,text:Ot(v)})}const k=y.cls;R===""&&A.length===0?y.cls=null:y.cls=t.acquire({base:R,blocks:A,transition:g(y.blocks,O)}),k!==y.cls&&(k&&h.el.classList.remove(k.name),y.cls&&h.el.classList.add(y.cls.name)),k&&t.release(k),l==null||l(h)};function a(){if(i=!1,s.size===0)return;const h=[...s];s.clear();for(const y of h)y.style.dirty&&m(y)}const p=(h,y,R)=>{if(R==null){h.blocks.delete(y);return}if(!xo(R))return;let O=h.blocks.get(y);O||h.blocks.set(y,O={props:new Map,duration:0,delay:0,easing:void 0});for(const A of Object.keys(R)){const k=R[A];if(A==="duration"){O.duration=Number(k)||0;continue}if(A==="delay"){O.delay=Number(k)||0;continue}if(A==="easing"){O.easing=k;continue}if(It.has(A)||A[0]==="$")continue;const U=qe(A);O.props.delete(U),k!=null&&O.props.set(U,k)}};return{flush:a,set onChange(h){l=h},set onWrite(h){d=h},merge(h,y){const R=h.style;let O=!1;for(const A of Object.keys(y)){const k=y[A];if(A[0]==="$"){p(R,A.slice(1),k);continue}if(It.has(A))continue;const U=qe(A);R.base.delete(U),k!=null&&R.base.set(U,k),R.own.delete(U)&&(O=!0),d==null||d(h,U)}O&&E(h),b(h)},set(h,y,R){const O=h.style;if(y[0]==="$"){p(O,y.slice(1),R),b(h);return}const A=qe(y);if(!no(A)){f(A);return}d==null||d(h,A),R==null?(O.own.delete(A),O.base.delete(A)&&b(h)):O.own.set(A,R),E(h),(pn(A)||A==="tintColor")&&(l==null||l(h))},setClass(h,y,R){h.el.classList.toggle(En(y),R)},value(h,y){const R=h.style;return R.own.has(y)?R.own.get(y):R.base.get(y)},owns(h,y){return h.style.own.has(y)||h.style.base.has(y)},names(h,y){const R=h.style;if(R.own.has(y)||R.base.has(y))return!0;for(const O of R.blocks.values())if(O.props.has(y))return!0;return!1},drop(h){const y=h.style;s.delete(h),y.cls&&(t.release(y.cls),y.cls=null),y.rule&&(y.rule.remove(),y.rule=null)}}},Co={button:"button",input:"input",textarea:"textarea",image:"img"},Ao=(e,t)=>{const n=e.createElement(Co[t]??"div");if(n.className=`lc lc-${t}`,t==="button"&&(n.type="button"),t==="image"){const r=n;r.alt="",r.decoding="async",r.draggable=!1}return n},$o=(e,t,n)=>({id:t,type:n,el:Ao(e,n),parent:null,flags:0,held:!0,rooted:!1,token:{},style:Lo(),strings:new Map}),vn=Symbol("lecodes.node"),pe=e=>e==null?void 0:e[vn],wn=e=>{e.el[vn]=e,e.el.setAttribute("data-node",String(e.id))},Fe=e=>{const t=[];for(let n=e.el.firstElementChild;n;n=n.nextElementSibling){const r=pe(n);r&&r.parent===e&&t.push(r)}return t},Qe=(e,t=",")=>{const n=[];let r=0,s="";for(const i of e){if(i==="("&&r++,i===")"&&r--,i===t&&r===0){n.push(s.trim()),s="";continue}s+=i}return s.trim()!==""&&n.push(s.trim()),n},Dt={"to top":0,"to right":90,"to bottom":180,"to left":270,"to top right":45,"to right top":45,"to bottom right":135,"to right bottom":135,"to bottom left":225,"to left bottom":225,"to top left":315,"to left top":315},Oo=e=>{if(e in Dt)return Dt[e];const t=/^(-?[\d.]+)(deg|rad|turn|grad)$/.exec(e);if(!t)return null;const n=parseFloat(t[1]);return t[2]==="deg"?n:t[2]==="rad"?n*180/Math.PI:t[2]==="turn"?n*360:n*.9},Uo=(e,t)=>{const n=[];for(const r of Qe(e.trim())){const s=/^(?:repeating-)?(linear|radial)-gradient\((.*)\)$/s.exec(r);if(!s)return null;const i=s[1],o=Qe(s[2]);let f=i==="linear"?180:0;if(o.length>0){const d=o[0],b=i==="linear"?Oo(d):null;b!==null?(f=b,o.shift()):i==="radial"&&/\b(circle|ellipse|at|closest|farthest)\b/.test(d)&&o.shift()}const l=[];for(const d of o){const b=Qe(d," "),E=b[b.length-1],g=b.length>1&&/^-?[\d.]+%$/.test(E),m=g?b.slice(0,-1).join(" "):d;l.push({color:t(m)??"#00000000",position:g?parseFloat(E)/100:null})}if(l.length===0)return null;l[0].position===null&&(l[0].position=0),l[l.length-1].position===null&&(l[l.length-1].position=1);for(let d=1;d<l.length-1;d++){if(l[d].position!==null)continue;let b=d;for(;l[b].position===null;)b++;const E=l[d-1].position,g=l[b].position;for(let m=d;m<b;m++)l[m].position=E+(g-E)*(m-d+1)/(b-d+1);d=b}n.push({type:i,angle:f,stops:l.map(d=>({color:d.color,position:d.position}))})}return n.length>0?n:null},No=Object.keys(Pe).filter(e=>Pe[e]!=="layout"),ne=e=>Math.max(0,Math.min(255,Math.round(e))).toString(16).padStart(2,"0"),Bt=e=>{const t=/^rgba?\(\s*([\d.]+)[,\s]+([\d.]+)[,\s]+([\d.]+)(?:\s*[,/]\s*([\d.]+%?))?\s*\)$/.exec(e.trim());if(t){const r=t[4]===void 0?1:t[4].endsWith("%")?parseFloat(t[4])/100:parseFloat(t[4]);return`#${ne(+t[1])}${ne(+t[2])}${ne(+t[3])}${ne(r*255)}`}const n=/^color\(srgb\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)(?:\s*\/\s*([\d.]+))?\)$/.exec(e.trim());return n?`#${ne(+n[1]*255)}${ne(+n[2]*255)}${ne(+n[3]*255)}${ne((n[4]===void 0?1:+n[4])*255)}`:null},Fo=e=>{if(e==="none")return[1,0,0,0,1,0,0,0,1];const t=/^matrix\(([^)]+)\)$/.exec(e);if(!t)return null;const[n,r,s,i,o,f]=t[1].split(",").map(l=>parseFloat(l));return[n,r,0,s,i,0,o,f,1]},Vt={pointerEvents:{auto:"all"},overflow:{auto:"scroll"},display:{"-webkit-box":"flex",block:"flex"},showScrollbar:{none:"0",thin:"1",auto:"1"},overscrollMode:{auto:"default",contain:"absorb"},textAlign:{"-webkit-auto":"start"}},Mo=e=>{const t=e.root.ownerDocument,n=t.defaultView??window;let r=null;const s=d=>{r||(r=t.createElement("span"),r.style.cssText="position:absolute;visibility:hidden;pointer-events:none"),r.isConnected||e.root.appendChild(r),r.style.color="",r.style.color=d;const b=r.style.color===""?null:Bt(n.getComputedStyle(r).color);return r.remove(),b},i=(d,b,E,g)=>{var p,h;if(pn(b)){const y=e.value(d,b);return y==null?null:E==="num"?Number(y===!0?1:y===!1?0:y):String(y)}const m=oo(b);if(m===null)return null;const a=g.getPropertyValue(m).trim();if(a===""&&!d.el.isConnected)return o(d,b,E);if(a==="")return null;switch(E){case"color":return m.startsWith("--")?s(a):Bt(a);case"len":{const y=parseFloat(a);return Number.isFinite(y)?y:b==="lineHeight"?parseFloat(g.fontSize)*1.2:null}case"num":{if(b==="lineClamp")return a==="none"?0:parseFloat(a)||0;const y=parseFloat(((p=Vt[b])==null?void 0:p[a])??a);return Number.isFinite(y)?y:null}case"enum":return((h=Vt[b])==null?void 0:h[a])??a;default:return b==="backgroundGradient"?a==="none"?null:Uo(a,s):b==="transform"?Fo(a):b==="transformOrigin"?null:b==="fontFamily"?a.split(",")[0].trim().replace(/^["']|["']$/g,""):b==="backgroundImage"&&a==="none"?"":a}},o=(d,b,E)=>{const g=e.value(d,b)??Ur[b];if(g==null)return null;if(b==="transform")return g==="identity"||g==="none"?[1,0,0,0,1,0,0,0,1]:null;if(E==="color")return typeof g=="number"?`#${(g>>>0).toString(16).padStart(8,"0")}`:s(String(g));if(E==="len"||E==="num"){const m=typeof g=="number"?g:parseFloat(String(g));return Number.isFinite(m)?m:null}return String(g)},f=d=>{const b=n.getComputedStyle(d.el),E=[],g=[],m={};for(const a of No){const p=e.owns(d,a);p&&E.push(a);const h=i(d,a,Pe[a],b);if(Or.includes(a)&&!p&&(h===null||h==="none")){m[a]=null;continue}g.push(a),m[a]=h}return{present:g,dirty:[],own:E,...m}},l=d=>{const b=d.el,E={id:d.id,type:d.type},g=d.strings.get("name");g&&(E.name=g);const m=d.strings.get("text");return d.type==="text"&&m&&(E.text=m),(d.type==="input"||d.type==="textarea")&&(E.value=b.value),E.flags=d.flags,E.layout=[b.offsetLeft,b.offsetTop,b.offsetWidth,b.offsetHeight],E.paint=f(d),e.extend(d,E,l),E.children=e.held(d)?[]:Fe(d).map(l),E};return{dump(){return e.flush(),JSON.stringify({roots:e.roots().map(d=>({kind:d.kind,node:l(d.node)}))})},paint(d){return d?(e.flush(),JSON.stringify(f(d))):"null"}}},Ze=10,Po=500,Io=e=>{const{root:t,emit:n}=e,r=t.ownerDocument,s=r.defaultView??window,i=L=>{const T=t.getBoundingClientRect(),F=sn(t)||1;return[(L.clientX-T.left)/F,(L.clientY-T.top)/F]},o=(L,T)=>{for(let F=L instanceof Element?L:null;F&&F!==t;F=F.parentElement){if(e.boundary(F))return null;const C=pe(F);if(C&&(C.flags&T)!==0)return C}return null},f=new Map;let l=!1,d=null;const b=(L,T)=>{const F=typeof T=="number"?T:0;(F&xt)!==0&&(L.tracked=!0,L.wantsMove=(F&Rt)!==0,L.claim=F&kr)},E=L=>{s.clearTimeout(L.timer),f.delete(L.pointerId)},g=L=>{if(L.pointerType==="mouse"&&L.button!==0)return;const T=o(L.target,Oe),[F,C]=i(L);d=[F,C],l=!1;const $={pointerId:L.pointerId,node:T,startX:F,startY:C,moved:!1,tracked:!1,wantsMove:!1,claim:0,handled:!1,timer:0};if(f.set(L.pointerId,$),!T){const I=L.target instanceof Element?e.hit(L.target,F,C):null;I!==null&&b($,n(0,ur,L.pointerId,F,C,I));return}b($,n(T.id,Kn,L.pointerId,F,C)),(T.flags&hr)!==0&&($.timer=s.setTimeout(()=>{if(f.get($.pointerId)!==$||$.moved)return;const I=n(T.id,qn,$.pointerId,$.startX,$.startY),P=typeof I=="number"?I:0;(P&Lr)!==0&&($.handled=!0),b($,P)},Po))},m=L=>{const T=f.get(L.pointerId);if(T){const[F,C]=i(L);!T.moved&&Math.hypot(F-T.startX,C-T.startY)>Ze&&(T.moved=!0,s.clearTimeout(T.timer)),T.tracked&&T.wantsMove&&n(0,Xn,L.pointerId,F,C,F-T.startX,C-T.startY)}L.pointerType==="mouse"&&N(L)},a=L=>{const T=f.get(L.pointerId);if(!T)return;const[F,C]=i(L);T.tracked&&n(0,Jn,L.pointerId,F,C,F-T.startX,C-T.startY),(T.moved||T.handled)&&(l=!0),E(T)},p=L=>{const T=f.get(L.pointerId);T&&(T.tracked&&n(0,Et,L.pointerId),l=!0,E(T))},h=L=>{if(L.cancelable){for(const T of f.values())if(T.tracked&&T.claim!==0){L.preventDefault();return}}},y=L=>{if(l){l=!1;return}const T=o(L.target,Oe);if(!T&&L.target instanceof Element){const[$,I]=i(L);if(d&&Math.hypot($-d[0],I-d[1])>Ze)return;const P=e.hit(L.target,$,I);P!==null&&n(0,fr,L.pointerId??0,$,I,P);return}if(!T||(T.flags&mr)===0)return;let F,C;if(L.detail===0&&L.clientX===0&&L.clientY===0){const $=T.el.getBoundingClientRect();[F,C]=i({clientX:$.left+$.width/2,clientY:$.top+$.height/2})}else if([F,C]=i(L),d&&Math.hypot(F-d[0],C-d[1])>Ze)return;n(T.id,Yn,L.pointerId??0,F,C)};let R=null,O=!1,A=!1,k=[0,0];const U=(L,T)=>{R&&O&&(L===kt?n(0,L):n(0,L,T[0],T[1],T[0]-k[0],T[1]-k[1])),R=null,O=!1,A=!1};function N(L){const T=i(L),F=t.contains(L.target)?o(L.target,Oe):null;if(F!==R){if(U(Tt,T),R=F,F&&(F.flags&Tr)!==0){k=T;const C=n(F.id,dr,T[0],T[1]),$=typeof C=="number"?C:0;O=($&xt)!==0,A=($&Rt)!==0}return}R&&O&&A&&n(0,pr,T[0],T[1],T[0]-k[0],T[1]-k[1])}const v=L=>{L.pointerType==="mouse"&&U(Tt,i(L))},S=L=>{const T=pe(L instanceof Element?L:null);return T&&(T.type==="input"||T.type==="textarea")?T:null},x=L=>{const T=S(L.target);T&&(T.flags&yr)!==0&&n(T.id,tr,T.el.value)},D=L=>{const T=S(L.target);T&&(T.flags&Er)!==0&&n(T.id,nr)},M=L=>{const T=S(L.target);T&&(T.flags&vr)!==0&&n(T.id,rr)},B=L=>{if(L.key!=="Enter"||L.isComposing)return;const T=S(L.target);if(!T||T.type!=="input")return;L.preventDefault();const F=T.el;(T.flags&wr)!==0&&n(T.id,or,F.value),e.value(T,"enterKey")!=="next"&&r.activeElement===F&&F.blur()},z=L=>{const T=s.getComputedStyle(L);return T.overflowX!=="hidden"&&T.overflowY==="hidden"},H=L=>{const T=pe(L.target instanceof Element?L.target:null);!T||(T.flags&gr)===0||n(T.id,Qn,z(T.el)?T.el.scrollLeft:T.el.scrollTop)},X=L=>{const T=pe(L.target instanceof Element?L.target:null);T&&(T.flags&br)!==0&&n(T.id,Zn)};return t.addEventListener("pointerdown",g),t.addEventListener("click",y),t.addEventListener("pointerleave",v),t.addEventListener("touchmove",h,{passive:!1}),t.addEventListener("input",x),t.addEventListener("focusin",D),t.addEventListener("focusout",M),t.addEventListener("keydown",B),t.addEventListener("scroll",H,!0),t.addEventListener("scrollend",X,!0),r.addEventListener("pointermove",m),r.addEventListener("pointerup",a),r.addEventListener("pointercancel",p),{isPressed(L){for(const T of f.values())if(T.node===L)return!0;return!1},isHovered:L=>R===L,forget(L){for(const T of[...f.values()])T.node===L&&(T.tracked&&n(0,Et,T.pointerId),E(T));R===L&&U(kt,[0,0])},destroy(){for(const L of f.values())s.clearTimeout(L.timer);f.clear(),t.removeEventListener("pointerdown",g),t.removeEventListener("click",y),t.removeEventListener("pointerleave",v),t.removeEventListener("touchmove",h),t.removeEventListener("input",x),t.removeEventListener("focusin",D),t.removeEventListener("focusout",M),t.removeEventListener("keydown",B),t.removeEventListener("scroll",H,!0),t.removeEventListener("scrollend",X,!0),r.removeEventListener("pointermove",m),r.removeEventListener("pointerup",a),r.removeEventListener("pointercancel",p)}}},Do=e=>`url("${e.replace(/["\\\n]/g,t=>"\\"+t)}")`,Bo=e=>{const t=m=>m.image??(m.image={src:"",srcTint:null,rect:null,form:"img",probe:0}),n=m=>m.src.startsWith("svg:")?m.src.slice(4):null,r=new Map,s=(m,a)=>{const p=r.get(a);p!=null&&p.delete(m)&&p.size===0&&r.delete(a)},i=m=>{const a=m.src,p=n(m);return p!==null?an(p):a.startsWith("id:")?e.bufferUrl(Number(a.slice(3))):a.startsWith("canvas:")||a.startsWith("scene2d:")?"":a},o=(m,a)=>a.src.startsWith("canvas:")?"canvas":a.rect?"crop":n(a)!==null&&(a.srcTint!==null||e.hasTint(m))?"mask":"img",f=(m,a)=>{const p=m.el;if(p.tagName.toLowerCase()===a)return;const h=e.doc.createElement(a);if(h.className=p.className,a==="img"){const R=h;R.alt="",R.decoding="async",R.draggable=!1}const y=p.getAttribute("data-name");y!==null&&h.setAttribute("data-name",y),m.el=h,wn(m),p.replaceWith(h),e.swapped(m,p)},l=m=>{for(const a of["--lc-src","--lc-src-tint","--lc-iw","--lc-ih","--lc-ir","--lc-crop-size","--lc-crop-pos"])m.style.removeProperty(a)},d=(m,a,p)=>{const[h,y,R,O]=a,[A,k]=p;m.style.setProperty("--lc-crop-size",`${A/R*100}% ${k/O*100}%`),m.style.setProperty("--lc-crop-pos",`${A===R?0:h/(A-R)*100}% ${k===O?0:y/(k-O)*100}%`)},b=new WeakMap,E=(m,a)=>{const p=m.el,h=e.drawable(a);if(!h){p.width=0,p.height=0;return}p.width!==h.pixelWidth&&(p.width=h.pixelWidth),p.height!==h.pixelHeight&&(p.height=h.pixelHeight);const y=p.getContext("2d");y&&(y.clearRect(0,0,p.width,p.height),p.width>0&&p.height>0&&y.drawImage(h.image,0,0),p.style.setProperty("--lc-iw",`${h.width}px`),h.height>0&&p.style.setProperty("--lc-ir",`${h.width} / ${h.height}`))},g=m=>{var U;const a=t(m),p=o(m,a);a.form=p,f(m,p==="img"?"img":p==="canvas"?"canvas":"div");const h=m.el;if(h.classList.toggle("lc-image-mask",p==="mask"),h.classList.toggle("lc-image-crop",p==="crop"),h.classList.toggle("lc-image-canvas",p==="canvas"),l(h),p==="canvas"){E(m,a.src);return}const y=i(a);if(p==="img"){const N=h;y===""?N.removeAttribute("src"):N.getAttribute("src")!==y&&(N.src=y);return}if(h.style.setProperty("--lc-src",y===""?"none":Do(y)),p==="mask"){a.srcTint!==null&&h.style.setProperty("--lc-src-tint",ke(a.srcTint));const N=(U=Fr(n(a)??""))==null?void 0:U.trim().split(/[\s,]+/).map(Number),v=N==null?void 0:N[2],S=N==null?void 0:N[3];v&&S&&(h.style.setProperty("--lc-iw",`${v}px`),h.style.setProperty("--lc-ir",`${v} / ${S}`));return}const R=a.rect;h.style.setProperty("--lc-iw",`${R[2]}px`),h.style.setProperty("--lc-ih",`${R[3]}px`);const O=b.get(m);if(O&&O.url===y){d(h,R,O.size);return}if(y==="")return;const A=++a.probe,k=new Image;k.addEventListener("load",()=>{if(a.probe!==A||!a.rect)return;const N=[k.naturalWidth,k.naturalHeight];b.set(m,{url:y,size:N}),d(m.el,a.rect,N)},{once:!0}),k.src=y};return{setSrc(m,a){const p=t(m);if(p.src.startsWith("canvas:")&&s(m,p.src),p.src=a??"",p.srcTint=null,p.src.startsWith("canvas:")){let h=r.get(p.src);h||r.set(p.src,h=new Set),h.add(m)}g(m)},setSrcTint(m,a){t(m).srcTint=a,g(m)},setSourceRect(m,a){const p=t(m),h=a==null?void 0:a.trim().split(/\s+/).map(Number),y=h&&h.length===4&&h.every(A=>Number.isFinite(A))&&h[2]>0&&h[3]>0?h:null,R=!!p.rect&&!!y&&p.form==="crop"&&p.rect[2]===y[2]&&p.rect[3]===y[3];p.rect=y;const O=b.get(m);if(R&&O){d(m.el,y,O.size);return}g(m)},sourceChanged(m){var a;for(const p of r.get(m)??[])((a=p.image)==null?void 0:a.form)==="canvas"&&E(p,m)},forget(m){var a;(a=m.image)!=null&&a.src.startsWith("canvas:")&&s(m,m.image.src)},restyle(m){const a=m.image;a&&o(m,a)!==a.form&&g(m)}}},Vo=.5,zo=64,zt=48,Wo=e=>{const{root:t,emit:n}=e,r=t.ownerDocument,s=r.defaultView??window,i=new Map;let o=null;const f=a=>{let p=i.get(a);if(!p||!p.isConnected){p=r.createElement("div"),p.className="lc-refresh",p.style.setProperty("--lc-refresh-color",s.getComputedStyle(a.el).getPropertyValue("--lc-refresh").trim()||"#8e8e93");const h=a.el.parentElement;h&&(h.appendChild(p),p.style.top=`${a.el.offsetTop-36}px`,p.style.left=`${a.el.offsetLeft+a.el.offsetWidth/2}px`),i.set(a,p)}return p},l=(a,p,h)=>{const y=f(a);y.classList.toggle("lc-settling",h),y.style.translate=`0 ${p}px`,y.style.transform=`rotate(${p*3}deg)`,y.style.opacity=String(Math.min(1,p/zt))},d=a=>{const p=i.get(a);p&&(p.classList.remove("lc-spinning"),l(a,0,!0),s.setTimeout(()=>{i.get(a)===p&&(p.remove(),i.delete(a))},220))},b=a=>{for(let p=a instanceof Element?a:null;p&&p!==t;p=p.parentElement){const h=pe(p);if(h&&(h.flags&(Ye|Ke))!==0)return h}return null},E=a=>{if(o||a.touches.length!==1)return;const p=b(a.target);if(!p)return;const h=a.changedTouches[0];o={node:p,touch:h.identifier,startY:h.clientY,pulling:!1,distance:0}},g=a=>{if(!o)return;const p=[...a.changedTouches].find(y=>y.identifier===o.touch);if(!p)return;const h=p.clientY-o.startY;if(!o.pulling){if(o.node.el.scrollTop>0||h<=0){(h<0||o.node.el.scrollTop>0)&&(o.startY=p.clientY);return}o.pulling=!0}a.cancelable&&a.preventDefault(),o.distance=Math.max(0,h*Vo),(o.node.flags&Ke)!==0&&n(o.node.id,vt,o.distance),(o.node.flags&Ye)!==0&&l(o.node,o.distance,!1)},m=a=>{if(!o||![...a.changedTouches].some(O=>O.identifier===o.touch))return;const{node:p,pulling:h,distance:y}=o;if(o=null,!h||((p.flags&Ke)!==0&&n(p.id,vt,0),(p.flags&Ye)===0))return;if(y<zo||a.type==="touchcancel"){d(p);return}l(p,zt,!0),f(p).classList.add("lc-spinning");const R=n(p.id,er);Promise.resolve(R).then(()=>d(p),()=>d(p))};return t.addEventListener("touchstart",E,{passive:!0}),t.addEventListener("touchmove",g,{passive:!1}),t.addEventListener("touchend",m),t.addEventListener("touchcancel",m),{forget(a){var p;(o==null?void 0:o.node)===a&&(o=null),(p=i.get(a))==null||p.remove(),i.delete(a)},destroy(){t.removeEventListener("touchstart",E),t.removeEventListener("touchmove",g),t.removeEventListener("touchend",m),t.removeEventListener("touchcancel",m);for(const a of i.values())a.remove();i.clear(),o=null}}},Wt=".lc-scrollable, .lc-vlist, .lc-pager-track, textarea.lc, input.lc",De=new WeakMap,pt=e=>{if(!e.isConnected)return;const t=[],n=r=>{(r.scrollLeft!==0||r.scrollTop!==0)&&t.push({el:r,left:r.scrollLeft,top:r.scrollTop})};e.matches(Wt)&&n(e);for(const r of e.querySelectorAll(Wt))n(r);t.length>0?De.set(e,t):De.delete(e)},Sn=e=>{const t=De.get(e);if(t){De.delete(e);for(const{el:n,left:r,top:s}of t)!n.isConnected||!e.contains(n)||(n.scrollLeft=r,n.scrollTop=s)}},ct=e=>{pt(e),e.remove()},_n=(e,t,n=null)=>{t.parentElement===e&&(n===null||t.nextElementSibling===n)||(t.isConnected&&pt(t),e.insertBefore(t,n),Sn(t))},Ee=0,fe=-1,Tn={run:(e,t,n,r)=>r(),settle:()=>{},enterOnTop:()=>!0,holds:()=>!1},Go={[xr]:"a 3D scene",[Rr]:"a 2D scene",[Cr]:"a native view",[Me]:"a video"},jo=e=>{const t=e.transitions??Tn;let n=null,r=[],s=[];const i=new Map,o=(v,S)=>`${v}:${S}`,f=new Set,l=v=>r.includes(v),d=v=>r.some(S=>S.node===v),b=v=>v&&v.kind===Y?v.node:null,E=(v,S)=>{e.emit(v.kind===Y||v.kind===Me?v.id:0,S,v.kind,v.id)},g=(v,S,x,D)=>{let M=null;return(v===Y||v===Me)&&(M=e.node(S)??null,!M||v===Y&&M.type!=="screen")?(e.warn(`navigation: ${S} is not a live ${v===Y?"screen":"video"} node`),null):{kind:v,id:S,node:M,viewName:x,paramsJson:D||"{}",back:Ee,retired:!1}},m=(v,S)=>{var D;const x=b(v);if(!x){if((D=e.surface)!=null&&D.call(e,v,!0)){v.node&&e.rootOwned(v.node,!0);return}f.has(v.kind)||(f.add(v.kind),e.warn(`${Go[v.kind]??"this destination"} as a destination is not built yet (docs/plans/web-lite-plan.md) — nothing is shown for it`));return}e.rootOwned(x,!0),x.el.classList.remove("lc-covered"),x.el.classList.toggle("lc-above",S),_n(e.root,x.el)},a=v=>{var x;const S=b(v);!S&&v!==n&&((x=e.surface)==null||x.call(e,v,!1)),!(!S||v===n)&&(n&&n.node===S||(S.el.classList.remove("lc-above"),d(S)?S.el.classList.add("lc-covered"):ct(S.el)))},p=v=>{const S=b(v);!S&&v.node&&!(n&&n.node===v.node)&&!d(v.node)&&(e.rootOwned(v.node,!1),v.node.parent===null&&e.emit(v.node.id,St)),S&&(n&&n.node===S||d(S)||(S.el.classList.remove("lc-above"),ct(S.el),e.rootOwned(S,!1),e.emit(S.id,St)))},h=()=>{const v=s;s=[];for(const S of v)S.node&&t.holds(S.node)?s.push(S):p(S)},y=v=>{!v||v.retired||(v.retired=!0,s.push(v),e.post(h))},R=(v,S,x)=>{const D=x===fe?Ee:x,M=b(v),B=b(S);M&&B&&B.el.classList.toggle("lc-above",!M.el.classList.contains("lc-above")),t.run(M,B,D,()=>{M==null||M.el.classList.remove("lc-above"),B==null||B.el.classList.remove("lc-above"),S&&a(S),s.length>0&&e.post(h)})},O=v=>{var S;v.kind===Y&&v.node&&((S=e.active)==null||S.call(e,v.node,!1)),E(v,ar)},A=(v,S)=>{var M,B;const x=n;if(!v||x===v)return;t.settle(),x&&O(x),n=v;const D=!!b(v)&&!!b(x);m(v,!!b(v)&&(!D||t.enterOnTop(S))),E(v,ir),v.kind===Y&&v.node&&((M=e.active)==null||M.call(e,v.node,!0)),x&&!l(x)&&y(x),R(v,x,S),(B=e.changed)==null||B.call(e)},k=v=>{var x;t.settle();const S=n;S&&(O(S),n=null,l(S)||y(S),R(null,S,v),(x=e.changed)==null||x.call(e))},U=(v,S)=>{A(v,S),e.emit(0,lr,v.kind,v.id)},N=v=>{const S=r.length;return v===-1?S-2:v<-1?Math.max(S-1+v,0):v===0?0:Math.min(v,S-1)};return{current:()=>n,stack:()=>r,setUrl(v,S,x){var M;x===null||x===""?i.delete(o(v,S)):i.set(o(v,S),x.startsWith("/")?x:`/${x}`),(n&&n.kind===v&&n.id===S||r.some(B=>B.kind===v&&B.id===S))&&((M=e.changed)==null||M.call(e))},address(){if(n){const S=i.get(o(n.kind,n.id));if(S!==void 0)return S}const v=n?r.lastIndexOf(n):r.length-1;for(let S=v<0?r.length-1:v;S>=0;S--){const x=i.get(o(r[S].kind,r[S].id));if(x!==void 0)return x}return null},forgetUrl(v,S){i.delete(o(v,S))},open(v,S,x,D,M){A(g(v,S,x,D),M)},close(v,S,x){!n||n.kind!==v||n.id!==S||k(x)},routerOpen(v,S,x,D){const M=g(v,S,x,D);if(!M)return;const B=r;r=[M];for(const z of B)z!==n&&y(z);A(M,Ee)},routerPush(v,S,x,D,M,B){const z=g(v,S,x,D);z&&(z.back=B===fe?Ee:B,r.push(z),U(z,M))},routerReplace(v,S,x,D,M,B){const z=g(v,S,x,D);if(!z)return;const H=r[r.length-1];if(!H){z.back=B===fe?Ee:B,r.push(z),U(z,M);return}z.back=B===fe?H.back:B,r[r.length-1]=z,U(z,M),y(H)},routerPop(v,S){if(r.length<=1)return!1;const x=N(v);if(x<0||x>=r.length)return!1;const D=S===fe?r[r.length-1].back:S,M=r.splice(x+1);U(r[r.length-1],D);for(const B of M)y(B);return M.length>0},routerHide(v){k(v)},routerRestore(v){const S=r[r.length-1];S&&A(S,v)},reset(){var v;t.settle();for(const S of[n,...r,...s])(v=S==null?void 0:S.node)==null||v.el.remove();n=null,r=[],s=[],i.clear()}}},Ho=250,Ko="cubic-bezier(0.2, 0.8, 0.2, 1)",Yo=6,qo=e=>{const{root:t}=e,n=t.ownerDocument,r=n.defaultView??window,s=new Map,i=g=>{var a;const m=e.value(g.node,"overlayColor");if(m==null){(a=g.scrim)==null||a.remove(),g.scrim=null,g.frame.classList.remove("lc-scrimmed");return}g.scrim||(g.scrim=n.createElement("div"),g.scrim.className="lc-scrim",g.scrim.addEventListener("click",()=>{(g.node.flags&Sr)!==0&&e.emit(g.node.id,sr)}),g.frame.insertBefore(g.scrim,g.frame.firstChild),g.frame.classList.add("lc-scrimmed")),g.scrim.style.backgroundColor=ke(m)},o=g=>{const m=e.value(g,"sheetDetents");if(m==null||m==="")return null;const a=String(m).split(",").map(Number).filter(p=>Number.isFinite(p)&&p>0).sort((p,h)=>p-h);return a.length>0?a:null},f=(g,m)=>{const a=g.sheet,p=g.node.el.offsetHeight;if(m<0)return p;const h=a.detents[a.detents.length-1],y=a.detents[Math.max(0,Math.min(m,a.detents.length-1))];return p*(1-y/h)},l=(g,m,a)=>{const p=g.sheet.holder;p.style.transition=a?`transform ${Ho}ms ${Ko}`:"none",p.style.transform=`translateY(${Math.max(0,m)}px)`},d=(g,m)=>{const a=o(g.node);if(!a||!g.sheet)return;const p=g.sheet;p.detents=a;const h=e.value(g.node,"sheetDismissible");p.dismissible=h==null||Number(h)>.5||h===!0;const y=Number(e.value(g.node,"sheetDetent")??0);if(m){l(g,f(g,-1),!1),p.holder.offsetHeight,p.detent=y,l(g,f(g,y),!0);return}y!==p.detent&&(p.detent=y,l(g,f(g,y),!0))},b=g=>{const m=g.node.el;m.addEventListener("pointerdown",a=>{const p=g.sheet;if(!p||a.pointerType==="mouse"&&a.button!==0)return;for(let k=a.target instanceof Element?a.target:null;k&&k!==m;k=k.parentElement)if(k.scrollTop>0)return;const h=f(g,p.detent);let y=!1,R=h;const O=k=>{if(k.pointerId!==a.pointerId)return;const U=k.clientY-a.clientY;if(!y){if(Math.abs(U)<Yo||Math.abs(U)<Math.abs(k.clientX-a.clientX))return;y=!0}R=Math.max(0,h+U),l(g,R,!1)},A=k=>{if(k.pointerId!==a.pointerId||(n.removeEventListener("pointermove",O),n.removeEventListener("pointerup",A),n.removeEventListener("pointercancel",A),!y||!g.sheet))return;let U=0,N=1/0;for(let D=0;D<p.detents.length;D++){const M=Math.abs(f(g,D)-R);M<N&&(N=M,U=D)}const v=f(g,0),S=m.offsetHeight;if(p.dismissible&&R>v+(S-v)/2){l(g,S,!0),(g.node.flags&Lt)!==0&&e.emit(g.node.id,wt,-1);return}p.detent=U,l(g,f(g,U),!0),(g.node.flags&Lt)!==0&&e.emit(g.node.id,wt,U)};n.addEventListener("pointermove",O),n.addEventListener("pointerup",A),n.addEventListener("pointercancel",A)})};let E=null;return{show(g,m,a){if(s.has(g))return;e.flush();const p=n.createElement("div");p.className="lc-widget-frame";const h={node:g,frame:p,scrim:null,sheet:null};if(o(g)){const R=n.createElement("div");R.className="lc-sheet",R.appendChild(g.el),p.appendChild(R),h.sheet={holder:R,detents:[1],detent:-1,dismissible:!0},b(h)}else p.appendChild(g.el);s.set(g,h),e.rootOwned(g,!0),i(h);const y=m===Y?e.node(a):void 0;(m!==Ue&&y?y.el:t).appendChild(p),Sn(g.el),h.sheet&&d(h,!0)},hide(g){const m=s.get(g);m&&(s.delete(g),pt(g.el),g.el.remove(),m.frame.remove(),e.rootOwned(g,!1))},scrim:g=>{var m;return((m=s.get(g))==null?void 0:m.scrim)??null},restyle(g){const m=s.get(g);m&&(i(m),m.sheet&&d(m,!1))},forget(g){const m=s.get(g);m&&(s.delete(g),m.frame.remove())},shown:()=>[...s.keys()],backTargets:()=>[...s.keys()].reverse().filter(g=>(g.flags&_r)!==0),isFrame:g=>g.classList.contains("lc-widget-frame"),toast(g,m){(!E||!E.isConnected)&&(E=n.createElement("div"),E.className="lc-toasts",t.appendChild(E));const a=n.createElement("div");a.className="lc-toast",a.setAttribute("role","status"),a.textContent=g,E.appendChild(a),a.offsetHeight,a.classList.add("lc-on"),r.setTimeout(()=>{a.classList.remove("lc-on"),r.setTimeout(()=>a.remove(),200)},Math.max(500,m))},destroy(){for(const g of s.values())g.frame.remove();s.clear(),E==null||E.remove(),E=null}}},Gt={pager:["pagerSetContent","pagerSelect","pagerPush","pagerPop","pagerPopToRoot","pagerReplace"],vlist:["vlistInit","vlistSetKeys","vlistInsertKeys","vlistRemoveKeys","vlistInvalidate","vlistMount","vlistScrollTo","vlistScrollToKey","vlistScrollToEnd"],plugins:["viewCall"],tween:["tweenCreate","tweenControl","tweenSeek","tweenSetRate","tweenGetTime","tweenGetElapsed","registerTweenEvent","defineTransition"]},Xo=e=>{const t=e.root,n=t.ownerDocument,r=(c,u,w)=>{for(const _ of Object.keys(u)){const V=u[_],W=V==null?null:typeof V=="number"?ee(V):Te(V);for(const ie of w?[`--${_}`,`--lc-app-${_}`]:[`--${_}`])W===null?c.style.removeProperty(ie):c.style.setProperty(ie,W)}},s=new Set,i=n.defaultView??window,o=new Set,f=c=>console.warn(`[web-lite] ${c}`),l=[],d=c=>{var u;for(const w of l){const _=(u=w.ownerOf)==null?void 0:u.call(w,c);if(_)return _}return null},b=c=>{var u;for(const w of l){const _=(u=w.roots)==null?void 0:u.call(w,c);if(_)return _}return null},E=(c,u)=>{var w;for(const _ of l)(w=_.rootActive)==null||w.call(_,c,u)},g=c=>{var u;for(const w of l)(u=w.subtreeMoved)==null||u.call(w,c)},m=()=>{for(const c of l)if(c.stage)return c.stage();return Tn};let a=null;const p=()=>a??(a=e.transitions??m()),h={run:(c,u,w,_)=>p().run(c,u,w,_),settle:()=>p().settle(),enterOnTop:c=>p().enterOnTop(c),holds:c=>p().holds(c)};let y=[],R=!1;const O=c=>{y.push(c),!R&&(R=!0,queueMicrotask(()=>{R=!1;const u=y;y=[];for(const w of u)w()}))};let A=null;const k=(c,u,...w)=>{if(A)try{return A(c,u,...w)}catch(_){i.setTimeout(()=>{throw _},0);return}},U=(c,u,...w)=>O(()=>{k(c,u,...w)});t.classList.add("lc-root");const N=e.sink??vo(n),v=ko(N),S=Ro(N,v,{bufferUrl:e.bufferUrl},f),x=new Map;let D=1;const M=new ResizeObserver(c=>{for(const u of c){const w=u.target,_=x.get(Number(w.getAttribute("data-node")));!_||_.el!==w||!(_.flags&le)||k(_.id,Hn,w.offsetLeft,w.offsetTop,w.offsetWidth,w.offsetHeight)}}),B=Bo({doc:n,bufferUrl:e.bufferUrl,drawable:c=>{var u;for(const w of l){const _=(u=w.drawable)==null?void 0:u.call(w,c);if(_)return _}return null},hasTint:c=>S.names(c,"tintColor"),swapped:(c,u)=>{M.unobserve(u),c.flags&le&&M.observe(c.el)},warn:f});S.onChange=c=>{const u=c;Ar(u,w=>S.value(u,w)),u.type==="image"&&B.restyle(u),u.type==="widget"&&P.restyle(u)};const z=Io({root:t,emit:k,value:(c,u)=>S.value(c,u),boundary:c=>P.isFrame(c)||l.some(u=>{var w;return((w=u.boundary)==null?void 0:w.call(u,c))===!0}),hit:(c,u,w)=>{var _;for(const V of l){const W=(_=V.hit)==null?void 0:_.call(V,c,u,w);if(W!=null)return W}return null}}),H=Wo({root:t,emit:k}),X=new ResizeObserver(()=>{k(0,cr,t.clientWidth,t.clientHeight)});X.observe(t),S.onWrite=(c,u)=>{var w;for(const _ of l)(w=_.styled)==null||w.call(_,c,u)};const L=c=>c.parent===null&&!c.rooted,T=(c,u,w=!0)=>{var _;for(const V of l)(_=V.forget)==null||_.call(V,c);for(const V of Fe(c))T(V,u,!1);w||u.push(c.id),z.forget(c),H.forget(c),B.forget(c),I.forgetUrl(Y,c.id),P.forget(c),S.drop(c),M.unobserve(c.el),C.unregister(c.token),x.delete(c.id),c.parent=null,c.held=!1,w&&c.el.remove()},F=c=>{if(!x.has(c.id)||c.held||!L(c))return;const u=[];T(c,u),u.length>0&&k(0,_t,u)},C=new FinalizationRegistry(c=>{const u=x.get(c);u&&(u.held=!1,L(u)&&O(()=>F(u)))}),$=c=>{c.held||O(()=>F(c))},I=jo({root:t,emit:U,post:O,warn:f,node:c=>x.get(c),rootOwned:(c,u)=>{c.rooted=u,u||$(c)},changed:e.onNavigation,active:E,surface:(c,u)=>l.some(w=>{var _;return((_=w.destination)==null?void 0:_.call(w,c,u))===!0}),transitions:h}),P=qo({root:t,emit:k,node:c=>x.get(c),value:(c,u)=>S.value(c,u),rootOwned:(c,u)=>{c.rooted=u,u||$(c)},flush:()=>S.flush()}),oe=()=>{var u;for(const w of P.backTargets())if(k(w.id,xe,Ue,0)===!0)return"widget";const c=I.current();if(c){const w=c.kind===Y||c.kind===Me?c.id:0;if(k(w,xe,c.kind,c.id)===!0)return"destination"}for(const w of l)if(((u=w.back)==null?void 0:u.call(w))===!0)return"feature";return I.routerPop(-1,fe)?"router":k(0,xe,Ue,0)===!0?"app":"none"},te=c=>{if(!(c.key!=="Escape"||c.defaultPrevented)){for(const u of P.backTargets())if(k(u.id,xe,Ue,0)===!0){c.preventDefault();return}}};n.addEventListener("keydown",te);const se=Mo({root:t,roots:()=>{const c=I.current();return[...c!=null&&c.node&&c.kind===Y?[{kind:"screen",node:c.node}]:[],...P.shown().map(w=>({kind:"widget",node:w}))]},held:c=>b(c),extend:(c,u,w)=>{var _;for(const V of l)(_=V.dump)==null||_.call(V,c,u,w)},value:(c,u)=>S.value(c,u),owns:(c,u)=>S.owns(c,u),flush:()=>S.flush()}),be=c=>{if(!c.isConnected)return null;S.flush();const u=sn(t)||1,w=t.getBoundingClientRect(),_=c.getBoundingClientRect();return _.width===0&&_.height===0&&c.offsetParent===null?null:[(_.left-w.left)/u,(_.top-w.top)/u,_.width/u,_.height/u]},We=()=>{const c={};for(const u of Object.keys(Gt))for(const w of Gt[u])c[w]=()=>(o.has(w)||(o.add(w),f(`${w}: this tree was made without the "${u}" feature`)),w==="tweenCreate"?null:0);return c},Ge={create(c){const u=$o(n,D++,c);wn(u),x.set(u.id,u);const w={id:u.id};return C.register(w,u.id,u.token),w},destroy(c){const u=x.get(c);if(!u)return;if(!L(u)){console.error(`[web-lite] destroy: node ${c} is attached — remove / hide / close it first`);return}u.held=!1;const w=[];T(u,w),w.length>0&&k(0,_t,w)},insert(c,u,w){var gt;const _=x.get(c),V=x.get(u);if(!_||!V||V===_)return;if(b(_)){f(`insert() on a ${_.type} — what it holds goes through its own calls`);return}if(!L(V)){f(`insert: node ${u} is not a root — remove it from where it is first`);return}const W=Fe(_),ie=Math.max(0,Math.min(w,W.length));V.parent=_,_n(_.el,V.el,((gt=W[ie])==null?void 0:gt.el)??null),g(V)},remove(c,u){const w=x.get(c),_=x.get(u);!w||!_||_.parent!==w||(_.parent=null,ct(_.el),g(_),$(_))},parent(c){var w,_;const u=x.get(c);return u?((w=u.parent)==null?void 0:w.id)??((_=d(u))==null?void 0:_.id)??0:0},children(c){const u=x.get(c);return u?(b(u)??Fe(u)).map(w=>w.id):[]},setString(c,u,w){var V;const _=x.get(c);if(_){w===null?_.strings.delete(u):_.strings.set(u,w);for(const W of l)(V=W.content)==null||V.call(W,_,u,w);switch(u){case"text":_.type==="text"&&(_.el.textContent=w??"");return;case"name":w===null?_.el.removeAttribute("data-name"):_.el.setAttribute("data-name",w);return;case"src":_.type==="image"&&B.setSrc(_,w);return;case"srcTintColor":_.type==="image"&&B.setSrcTint(_,w);return;case"sourceRect":_.type==="image"&&B.setSourceRect(_,w);return;case"value":if(_.type==="input"||_.type==="textarea"){const W=_.el;W.value!==(w??"")&&(W.value=w??"")}return;case"focus":w==="1"?_.el.focus({preventScroll:!0}):_.el.blur();return}}},setInt(c,u,w){var V;const _=x.get(c);if(_){_.strings.set(u,String(w));for(const W of l)(V=W.content)==null||V.call(W,_,u,w)}},setFlags(c,u){const w=x.get(c);if(!w)return;const _=w.flags;w.flags=u,w.el.classList.toggle(at,(u&Oe)!==0),u&le&&!(_&le)?M.observe(w.el):!(u&le)&&_&le&&M.unobserve(w.el)},getTextValue(c){const u=x.get(c);return u&&(u.type==="input"||u.type==="textarea")?u.el.value:""},setStyle(c,u,w){const _=x.get(c);_&&S.set(_,u,w)},mergeStyle(c,u){const w=x.get(c);w&&S.merge(w,u)},setClass(c,u,w){const _=x.get(c);_&&S.setClass(_,u,w)},setTheme(c){r(t,c,!0)},setNodeTheme(c,u){const w=x.get(c);if(w){r(w.el,u,!1);for(const _ of Object.keys(u))s.has(_)||!/^[A-Za-z0-9_-]+$/.test(_)||(s.add(_),N.insert("lc-base",`.lc-widget-frame { --${_}: var(--lc-app-${_}); }`));"text"in u&&w.el.toggleAttribute("data-theme-text",u.text!=null),"fontFamily"in u&&w.el.toggleAttribute("data-theme-font",u.fontFamily!=null)}},open:I.open,close:I.close,routerOpen:(c,u,w,_)=>I.routerOpen(c,u,w,_),routerPush:I.routerPush,routerReplace:I.routerReplace,routerPop:(c,u)=>{I.routerPop(c,u)},routerHide:I.routerHide,routerRestore:I.routerRestore,setDestUrl:I.setUrl,isViewSupported:()=>!1,viewVersion:()=>0,showWidget(c,u,w){const _=x.get(c);!_||P.shown().includes(_)||(P.show(_,u,w),E(_,!0))},hideWidget(c){const u=x.get(c);!u||!P.shown().includes(u)||(E(u,!1),P.hide(u))},registerFont(c,u,w,_,V,W){try{const ie=new i.FontFace(c,`url("${u}")`,{weight:String(w),style:_===2?"italic":"normal"});n.fonts.add(ie),ie.load().then(()=>V(),()=>W())}catch{W()}},fontFormat:"woff2",toast:(c,u)=>P.toast(c,u),isButtonPressed(c){const u=x.get(c);return!!u&&z.isPressed(u)},isHovered(c){const u=x.get(c);return!!u&&z.isHovered(u)},getBoundingClientRect(c){const u=x.get(c);return u?be(u.el):null},getDisplaySize:()=>[t.clientWidth,t.clientHeight],debugDump:()=>se.dump(),debugPaint:c=>se.paint(x.get(c)),setEmitter(c){A=c}},ae={...We(),...Ge},K={root:t,emit:k,emitLater:U,post:O,warn:f,node:c=>x.get(c),rootOwned:(c,u)=>{c.rooted=u,u||$(c)},flush:()=>S.flush(),value:(c,u)=>S.value(c,u),setStyle:(c,u,w)=>S.set(c,u,w),setString:(c,u,w)=>ae.setString(c,u,w),style:{bufferUrl:e.bufferUrl},shown:c=>{var u;return((u=I.current())==null?void 0:u.node)===c||P.shown().includes(c)},scrim:c=>P.scrim(c),stage:m,sourceChanged:c=>B.sourceChanged(c),plugins:e.plugins??null},ce={};for(const c of e.features??[]){const u=c.install(K);l.push(u),Object.assign(ae,u.bridge),Object.assign(ce,u.globals)}return{bridge:ae,globals:ce,presentation:I,back:oe,setSafeArea(c,u=[]){for(const w of["top","right","bottom","left"])t.style.setProperty(`--safe-${w}`,`${c[w]}px`),u.includes(w)?t.style.setProperty(`--safe-${w}-bar`,`${c[w]}px`):t.style.removeProperty(`--safe-${w}-bar`)},flush:()=>S.flush(),stats:()=>Object.assign({nodes:x.size,classes:v.count(),tweens:0},...l.map(c=>{var u;return((u=c.stats)==null?void 0:u.call(c))??{}})),destroy(){var c;A=null,I.reset();for(const u of l)(c=u.destroy)==null||c.call(u);P.destroy(),n.removeEventListener("keydown",te),z.destroy(),H.destroy(),X.disconnect(),M.disconnect();for(const u of x.values())C.unregister(u.token),u.el.remove();x.clear(),e.sink||N.destroy(),t.classList.remove("lc-root");for(const u of Array.from(t.style))u.startsWith("--")&&t.style.removeProperty(u)}}},G=[null],mt=new TextDecoder("utf-8"),li=async(e,t,n,r)=>{var m;let s;if(t.body)if(typeof t.body=="object"&&Array.isArray(t.body._entries)){const a=new FormData;for(let[p,h,y]of t.body._entries)typeof h=="object"?a.append(p,new Blob([he(h._id)]),y):a.append(p,h);s=a}else typeof t.body=="string"?s=t.body:r(new Error("Invalid body"));const i=await fetch(e,{method:t.method,body:s,headers:t.headers,mode:"cors",credentials:"omit"}),o=typeof t.onProgress=="function"?t.onProgress:null;if(!o){const a=await i.arrayBuffer();G.push(a),n(G.length-1,i.status);return}const f=(m=i.body)==null?void 0:m.getReader();if(!f){const a=await i.arrayBuffer();G.push(a),n(G.length-1,i.status);return}const l=Number(i.headers.get("content-length"))||void 0;let d=0;const b=[];for(;;){const{done:a,value:p}=await f.read();if(a)break;p&&(b.push(p),d+=p.length,o({loaded:d,total:l}))}const E=new Uint8Array(d);let g=0;for(const a of b)E.set(a,g),g+=a.length;G.push(E.buffer),n(G.length-1,i.status)},Jo=e=>JSON.parse(mt.decode(he(e))),kn=e=>mt.decode(he(e)),Qo=e=>new Uint8Array(he(e)).slice(),Zo=(e,t,n)=>mt.decode(he(e).slice(t,n)),es=e=>{const t=new Blob([G[e]]);return URL.createObjectURL(t)},Ln=e=>new Blob([G[e]]),he=e=>G[e],jt=e=>{G[e]=null},Be=e=>(G.push(e),G.length-1),ht=new Map,ui=(e,t)=>{ht.set(e,t);const n=Ve.get(e);n!==void 0&&(G[n]=t)},fi=e=>ht.has(e),Ve=new Map,di=e=>{for(const[t,n]of Ve)if(n===e)return t},ts=e=>{const t=Ve.get(e);if(t!==void 0)return t;const n=ht.get(e);if(!n)return-1;G.push(n);const r=G.length-1;return Ve.set(e,r),r},ns=()=>{const e=new Map,t=new Map,n=new Set,r={registerView(s,i,o=1){e.set(s,{factory:i,version:o})},registerService(s,i,o=1){t.set(s,{factory:i,version:o})},putBuffer:Be};return{views:e,services:t,has:s=>n.has(s),register(s,i){if(!n.has(s)){n.add(s);try{i(r)}catch(o){console.warn(`[web-lite] the "${s}" plugin did not register: ${o instanceof Error?o.message:o}`)}}}}},Ht={pager:["pagerSetContent"],vlist:["vlistInit"],tween:["tweenCreate","defineTransition"],canvas:["_creatorCanvas."],video:["createVideo"],plugins:["viewCall","isViewSupported","_creatorService."]},rs={pager:()=>re(()=>import("./assets/pager-Db5BY7FB.js"),[],import.meta.url).then(e=>e.pager),vlist:()=>re(()=>import("./assets/vlist-DrV2Q7P5.js"),[],import.meta.url).then(e=>e.vlist),tween:()=>re(()=>import("./assets/tween-BnWYhJ7P.js"),[],import.meta.url).then(e=>e.tween),canvas:()=>re(()=>import("./assets/canvas-WxiusXCB.js"),[],import.meta.url).then(e=>e.canvas),video:()=>re(()=>import("./assets/video-BLj61nDx.js"),[],import.meta.url).then(e=>e.video),plugins:()=>re(()=>import("./assets/plugins-CuEPHbHL.js"),[],import.meta.url).then(e=>e.plugins)},xn=Object.keys(Ht).map(e=>({name:e,uses:Ht[e],load:rs[e]})),os=e=>xn.filter(t=>t.uses.some(n=>e.includes(n))).map(t=>t.name),ss=async e=>{const t=os(e);return(await Promise.all(xn.filter(r=>t.includes(r.name)).map(r=>r.load().catch(s=>(console.warn(`[web-lite] the "${r.name}" feature did not load: ${s instanceof Error?s.message:s}`),null))))).filter(r=>r!==null)},is=e=>{let t=null,n=null;const r=(l,d)=>{t==null||t(l,d)},s=()=>r(document.hidden?"pause":"resume"),i=()=>r("online"),o=()=>r("offline");return document.addEventListener("visibilitychange",s),window.addEventListener("online",i),window.addEventListener("offline",o),{bridge:{run(l,d,b,E){let g;try{g=kn(l)}catch{d("run: no such buffer");return}e.rerun(g,E,d)},restart(l){e.rerun(void 0,l)},quit(){},launchUrl:()=>e.launchUrl(),registerEvent(l){t=l},setFreedEmitter(l){n=l},ownedStats:()=>e.stats(),state:()=>document.hidden?"background":"active",isOnline:()=>navigator.onLine,openUrl(l){window.open(l,"_blank","noopener")},setOrientation(l){var E,g,m,a;const d=l==="landscape"||l==="portrait"?l:"auto";if(e.onOrientation){e.onOrientation(d);return}const b=typeof screen<"u"?screen.orientation:void 0;if(b)try{d==="auto"?(E=b.unlock)==null||E.call(b):(a=(m=(g=b.lock)==null?void 0:g.call(b,d))==null?void 0:m.catch)==null||a.call(m,()=>{})}catch{}}},emit:r,freed:(l,d)=>{n==null||n(l,d)},dispose(){t=null,n=null,document.removeEventListener("visibilitychange",s),window.removeEventListener("online",i),window.removeEventListener("offline",o)}}},as=(e,t,n,r)=>{try{const s=document.createElement("input");s.type="file",s.multiple=n,r&&(s.accept=r),s.onchange=async()=>{const{files:i}=s;if(n){const o=[];if(!i)return e([]);for(let f of i)o.push([Be(await f.arrayBuffer()),f.name,f.size]);e(o)}else{if(!i||i.length===0)return e(null);e([[Be(await i[0].arrayBuffer()),i[0].name,i[0].size]])}},window.addEventListener("focus",()=>{setTimeout(()=>{(!s.files||s.files.length===0)&&e(n?[]:null)},300)},{once:!0}),s.click()}catch(s){t(s)}},cs=e=>({get platform(){return"web"},get language(){return e()},get pixelRatio(){return window.devicePixelRatio||1},vibrate(){var t;try{(t=navigator.vibrate)==null||t.call(navigator,30)}catch{}},clipboardWrite(t){var n;(n=navigator.clipboard)==null||n.writeText(t).catch(()=>{})},clipboardRead(t,n){const r=navigator.clipboard;if(!(r!=null&&r.readText)){n("Clipboard is not available");return}r.readText().then(t,s=>n(s instanceof Error?s.message:"Clipboard read failed"))},share(t,n){var f;const r=Ln(t),s=new File([r],"image.png",{type:"image/png"});if((f=navigator.canShare)!=null&&f.call(navigator,{files:[s]})){navigator.share({files:[s],text:n}).catch(()=>{});return}const i=URL.createObjectURL(r),o=document.createElement("a");o.href=i,o.download=s.name,document.body.appendChild(o),o.click(),o.remove(),URL.revokeObjectURL(i)},openFilePicker:(t,n,r,s)=>as(t,n,r,s??void 0),requestCamera(t){t()}}),ls=e=>{const t=e==null?void 0:e._h;return typeof e=="object"&&e!==null&&typeof(t==null?void 0:t.id)=="number"?t.id:null},us=e=>{if(e==null)return;if(typeof e=="string")return e;const t=e._entries;if(!Array.isArray(t))throw new Error("fetch: the body is a string or a FormData");const n=new FormData;for(const[r,s,i]of t){const o=ls(s);o!==null?n.append(r,Ln(o),i):n.append(r,String(s))}return n},fs=()=>{const e=new Set,t=new FinalizationRegistry(i=>{e.delete(i)&&jt(i)}),n=i=>{const o={id:i};return e.add(i),t.register(o,i),o};let r=!1;return{bridge:{fetch(i,o,f,l,d){const b=typeof(o==null?void 0:o.onProgress)=="function"?o.onProgress:d;if(i.startsWith("id:")){const E=Number(i.slice(3));f({id:E},he(E)?200:404);return}(async()=>{var E;try{const g=await fetch(i,{method:o==null?void 0:o.method,headers:o==null?void 0:o.headers,body:us(o==null?void 0:o.body),mode:"cors",credentials:"omit"}),m=b?(E=g.body)==null?void 0:E.getReader():void 0;let a;if(!m)a=await g.arrayBuffer();else{const p=Number(g.headers.get("content-length"))||void 0,h=[];let y=0;for(;;){const{done:A,value:k}=await m.read();if(A)break;k&&(h.push(k),y+=k.length,r||b({loaded:y,total:p}))}const R=new Uint8Array(y);let O=0;for(const A of h)R.set(A,O),O+=A.length;a=R.buffer}if(r)return;f(n(Be(a)),g.status)}catch(g){r||l(g instanceof Error?g:String(g))}})()},local:i=>ts(i),toJson:i=>Jo(i),slice:(i,o,f)=>Zo(i,o,f),toText:i=>kn(i),toBytes:i=>Qo(i)},live:()=>e.size,dispose(){r=!0;for(const i of e)jt(i);e.clear()}}},Kt=["MouseLeft","MouseMiddle","MouseRight","MouseBack","MouseForward"],et=["GamepadSouth","GamepadEast","GamepadWest","GamepadNorth","GamepadL1","GamepadR1","GamepadL2","GamepadR2","GamepadSelect","GamepadStart","GamepadL3","GamepadR3","GamepadUp","GamepadDown","GamepadLeft","GamepadRight"],$e=4,tt=16,Yt=16,ds=.5,ps=e=>{const t=new Set;let n=null;const r=(C,$,I=-1,P=0)=>{n==null||n(C,$,I,P)},s=C=>{if(!C.code)return;const $=t.has(C.code);t.add(C.code),r(0,C.code,-1,$||C.repeat?1:0)},i=C=>{C.code&&t.delete(C.code)&&r(1,C.code)},o=()=>{for(const C of[...t])C.startsWith("Gamepad")||(t.delete(C),r(1,C))},{root:f}=e;let l=0,d=0,b=0,E=0,g=0,m=0,a=0,p=0,h=0,y=0;const R=C=>{if(C.pointerType&&C.pointerType!=="mouse")return;const $=f.getBoundingClientRect();l=C.clientX-$.left,d=C.clientY-$.top,b+=C.movementX||0,E+=C.movementY||0},O=C=>{const $=Kt[C.button];$&&(t.add($),r(0,$))},A=C=>{const $=Kt[C.button];$&&t.delete($)&&r(1,$)},k=C=>{const $=C.deltaMode===0?.01:1;g+=C.deltaX*$,m+=C.deltaY*$},U=C=>{document.pointerLockElement===f&&C.preventDefault()},N=[],v=[],S=[],x=()=>{var $,I;const C=typeof navigator<"u"&&navigator.getGamepads?Array.from(navigator.getGamepads()):[];for(let P=0;P<$e;P++){const oe=C[P]??null,te=!!oe&&oe.connected;if(te!==!!N[P]){if(N[P]=te,!te){for(const K of et)t.delete(K+"@"+P)&&(r(1,K,P),D(K));S[P]=[],v[P]=[0,0,0,0,0,0]}r(te?2:3,"",P)}if(!oe||!te)continue;const se=oe.axes,be=oe.buttons,We=(($=be[6])==null?void 0:$.value)??0,Ge=((I=be[7])==null?void 0:I.value)??0;v[P]=[se[0]??0,se[1]??0,se[2]??0,se[3]??0,We,Ge];const ae=S[P]??(S[P]=[]);for(let K=0;K<et.length;K++){const ce=be[K],c=!!ce&&(ce.pressed||ce.value>ds);if(c===!!ae[K])continue;ae[K]=c;const u=et[K];c?t.add(u+"@"+P):t.delete(u+"@"+P),D(u),r(c?0:1,u,P)}}},D=C=>{let $=!1;for(let I=0;I<$e&&!$;I++)t.has(C+"@"+I)&&($=!0);$?t.add(C):t.delete(C)};let M=0;const B=()=>{a=b,p=E,h=g,y=m,b=E=g=m=0,x(),M=requestAnimationFrame(B)},z=e.windows.filter((C,$,I)=>C&&I.indexOf(C)===$);for(const C of z)e.keyboard!==!1&&(C.addEventListener("keydown",s),C.addEventListener("keyup",i)),C.addEventListener("blur",o);return f.addEventListener("pointermove",R,!0),f.addEventListener("mousedown",O,!0),window.addEventListener("mouseup",A,!0),f.addEventListener("wheel",k,{passive:!0,capture:!0}),f.addEventListener("contextmenu",U,!0),typeof requestAnimationFrame=="function"&&(M=requestAnimationFrame(B)),{inputKey:(C,$)=>$>=0&&C.startsWith("Gamepad")?t.has(C+"@"+$):t.has(C),inputRead:C=>{var $;switch(C){case 0:return l;case 1:return d;case 2:return a;case 3:return p;case 4:return h;case 5:return y;case 6:return document.pointerLockElement===f?1:0;case 7:{let I=0;for(let P=0;P<$e;P++)N[P]&&I++;return I}}if(C>=tt){const I=Math.floor((C-tt)/Yt),P=(C-tt)%Yt;return I>=$e||!N[I]?0:P===0?1:(($=v[I])==null?void 0:$[P-1])??0}return 0},inputSetPointerLock:C=>{if(!C)return document.pointerLockElement===f&&document.exitPointerLock(),!0;if(document.pointerLockElement===f)return!0;if(typeof f.requestPointerLock!="function")return!1;try{const $=f.requestPointerLock({unadjustedMovement:!0});return $&&typeof $.catch=="function"&&$.catch(()=>{try{f.requestPointerLock()}catch{}}),!0}catch{return!1}},registerInputEvent:C=>{n=C},dispose:()=>{for(const C of z)C.removeEventListener("keydown",s),C.removeEventListener("keyup",i),C.removeEventListener("blur",o);f.removeEventListener("pointermove",R,!0),f.removeEventListener("mousedown",O,!0),window.removeEventListener("mouseup",A,!0),f.removeEventListener("wheel",k,!0),f.removeEventListener("contextmenu",U,!0),M&&cancelAnimationFrame(M),document.pointerLockElement===f&&document.exitPointerLock(),t.clear(),n=null}}},ms=e=>{const t=e.ownerDocument.defaultView??window,n=ps({windows:[t],root:e}),r=t.visualViewport,s=()=>r?Math.max(0,Math.round(t.innerHeight-r.height-r.offsetTop)):0;let i=null,o=0;const f=()=>{const d=s();d!==o&&(o=d,i==null||i(d,0))};return r==null||r.addEventListener("resize",f),{bridge:{key:n.inputKey,read:n.inputRead,setPointerLock:n.inputSetPointerLock,registerEvent(d){n.registerInputEvent(d)},keyboardHeight:s,registerKeyboardEvent(d){i=d}},dispose(){i=null,r==null||r.removeEventListener("resize",f),n.dispose()}}},j=[null],ge=[!1],Rn=(e,t,n)=>{e.addEventListener("ended",()=>{n(),ge[t]&&(e.currentTime=0,e.play())})},hs=(e,t)=>{const n=document.createElement("video");document.body.appendChild(n),n.crossOrigin="anonymous",n.style="opacity: 0; position: absolute; top: 0; left: 0; width: 1px; height: 1px",n.src=e,n.playsInline=!0,n.controls=!1;const r=j.length;return j.push(n),ge.push(!1),Rn(n,r,t),r},gs=(e,t)=>{const n=document.createElement("audio");document.body.appendChild(n),n.style="opacity: 0; position: absolute; top: 0; left: 0; width: 1px; height: 1px",n.src=e;const r=j.length;return j.push(n),ge.push(!1),Rn(n,r,t),r},bs=(e,t)=>{const n=j[e];n&&(t===0?n.muted=!0:(n.muted&&(n.muted=!1),n.volume=t))},ys=(e,t)=>{const n=j[e];n&&(t?n.play():n.pause())},Es=(e,t)=>{ge[e]=t},vs=e=>{var t;return((t=j[e])==null?void 0:t.currentTime)??0},ws=(e,t)=>{const n=j[e];n&&(n.currentTime=t)},Ss=e=>{var n;const t=((n=j[e])==null?void 0:n.duration)??0;return isNaN(t)?0:t},pi=e=>j[e],Cn=e=>{e.pause(),e.removeAttribute("src"),e.load(),e.remove()},_s=e=>{const t=j[e];t&&(Cn(t),j[e]=null,ge[e]=!1)},mi=()=>{for(let e of j)e&&Cn(e);j.length=1,ge.length=1},Ts=()=>{const e=new Map;let t=null;const n=o=>{e.delete(o)&&_s(o)},r=new FinalizationRegistry(o=>{const f=e.get(o);f&&(f.held=!1,f.playing||n(o))}),s=(o,f)=>{let l=-1;if(l=o(f,()=>{const E=e.get(l);E&&(t==null||t(l),!E.loop&&(E.playing=!1,E.held||n(l)))}),l<0)return null;e.set(l,{held:!0,playing:!1,loop:!1});const b={id:l};return r.register(b,l),b};return{bridge:{createAudio:o=>s(gs,o),createVideo:o=>s(hs,o),setVolume:bs,setLoop(o,f){const l=e.get(o);l&&(l.loop=f),Es(o,f)},setPlaying(o,f){const l=e.get(o);l&&(l.playing=f,ys(o,f),!f&&!l.held&&n(o))},time:vs,setTime:ws,duration:Ss,setEmitter(o){t=o}},live:()=>e.size,dispose(){t=null;for(const o of[...e.keys()])n(o)}}},ks=()=>{const e=[];return{bridge:{open(n,r){const s=e.length;let i;try{i=new WebSocket(n)}catch{return e.push(null),queueMicrotask(()=>r("error")),s}return i.addEventListener("open",()=>r("open")),i.addEventListener("message",o=>r("message",o.data)),i.addEventListener("close",o=>{e[s]=null,r("close",o.code)}),i.addEventListener("error",()=>r("error")),e.push(i),s},send(n,r){const s=e[n];s&&s.readyState===WebSocket.OPEN&&s.send(r)},close(n){var r;(r=e[n])==null||r.close()}},dispose(){for(const n of e)n==null||n.close();e.length=0}}},Ls=e=>{let t="default",n=null,r=!1;const s=()=>`lecodes:${e}:${t}`,i=()=>{if(n)return n;n={};try{const d=window.localStorage.getItem(s()),b=d?JSON.parse(d):null;if(b&&typeof b=="object")for(const[E,g]of Object.entries(b))typeof g=="string"&&(n[E]=g)}catch{}return n},o=()=>{if(r=!1,!!n)try{window.localStorage.setItem(s(),JSON.stringify(n))}catch{}},f=()=>{r||(r=!0,queueMicrotask(o))};return{bridge:{get:d=>i()[d]??null,set(d,b){i()[d]=String(b),f()},remove(d){delete i()[d],f()},select(d){r&&o(),t=d,n=null}},dispose(){r&&o()}}},qt={scene3d:{uses:["_creator.createScene","_creator.createEntity"],module:"/web-lite/src/engines/scene3d.ts"},ar:{uses:["_creator.createARController"],module:"/web-lite/src/engines/ar.ts"},anim:{uses:["_creator.animator","_creator.getGlbClipSet","_creator.loadClips","_creator.createClipFromTracks"],module:"/creator-anim/dist/creatorAnim.js"},physics:{uses:["_creator.physicsBuild","_creator.physicsCreate","_creator.physicsConfigure","_creator.physicsRaycast","_creator.characterCreate","_creator.vehicleCreate","_creator.ragdollCreate"],module:"/creator-physics/dist/creatorPhysics.js"},particles:{uses:["_creator.createParticleSystem","_creator.createNoise"],module:"/creator-particles/dist/creatorParticles.js"}},xs=e=>{const t=Object.keys(qt).filter(n=>qt[n].uses.some(r=>e.includes(r)));return new Set(t)},Xt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",An={};for(let e=0;e<Xt.length;e++)An[Xt[e]]=e;const Rs=e=>{const t=[];let n=0,r=0;for(const s of e){const i=An[s];if(i===void 0)break;const o=i&32;if(r+=(i&31)<<n,o)n+=5;else{const f=r&1;r>>=1,t.push(f?-r:r),r=0,n=0}}return t};class Cs{constructor(t){je(this,"sources");je(this,"lines");this.sources=t.sources,this.lines=[];let n=0,r=0,s=0;for(const i of t.mappings.split(";")){const o=[];let f=0;if(i)for(const l of i.split(",")){const d=Rs(l);d.length!==0&&(f+=d[0],d.length>=4&&(n+=d[1],r+=d[2],s+=d[3],o.push([f,n,r,s])))}this.lines.push(o)}}originalPositionFor(t,n){const r=this.lines[t-1];if(!r||r.length===0)return null;let s=null;for(const o of r)if(o[0]<=n)s=o;else break;s??(s=r[0]);const i=this.sources[s[1]];return i===void 0?null:{source:i,line:s[2]+1,column:s[3]}}}const As=e=>{const t=e.match(/\/\/# lecodesMap=data:application\/json;(?:charset=[^;]+;)?base64,([A-Za-z0-9+/=]+)\s*$/);if(!t)return null;try{const n=typeof atob=="function"?atob(t[1]):Buffer.from(t[1],"base64").toString("utf8");return new Cs(JSON.parse(n))}catch{return null}};let ue=null;const $s=()=>{if(ue!==null)return ue;try{new Function("throw new Error('chisel-calibrate')")()}catch(e){const n=(e.stack??"").match(/<anonymous>:(\d+):\d+/);return ue=n?parseInt(n[1],10)-1:2,ue}return ue=2,ue},Jt=(e,t)=>{const n=(e instanceof Error?e.stack:"")??"",r=$s(),s=[];for(const i of n.split(`
275
+ `)){const o=i.match(/<anonymous>:(\d+):(\d+)/);if(!o)continue;const f=parseInt(o[1],10)-r,l=parseInt(o[2],10)-1;if(f<1)continue;const d=t.originalPositionFor(f,l<0?0:l);if(!d)continue;const b=i.match(/at\s+([^\s(]+)\s*\(/);s.push({fn:b?b[1]:null,source:d.source,line:d.line,column:d.column})}return s},Os=e=>{const t=[],n=(o,f,l)=>{var E;const d=f instanceof Error?f.message:String(f),b=l[0];console.error(b?`[lecodes] ${d}
276
+ at ${b.source}:${b.line}:${b.column}${b.fn?` (${b.fn})`:""}`:`[lecodes] ${d}`),(E=o.onError)==null||E.call(o,{message:d,frames:l,stack:f instanceof Error?f.stack:void 0})},r=o=>{for(let f=t.length-1;f>=0;f--){const l=t[f];if(!l.sourceMap)continue;const d=Jt(o,l.sourceMap);if(d.length>0)return n(l,o,d),!0}return!1},s=o=>{r(o.error??o.message)},i=o=>{r(o.reason)};return e.addEventListener("error",s),e.addEventListener("unhandledrejection",i),{track(o,f){const l={sourceMap:As(o),onError:f};return t.push(l),{thrown(d){n(l,d,l.sourceMap?Jt(d,l.sourceMap):[])},drop(){const d=t.indexOf(l);d>=0&&t.splice(d,1)}}},dispose(){e.removeEventListener("error",s),e.removeEventListener("unhandledrejection",i),t.length=0}}},Us=""+new URL("assets/roboto-cyrillic-ext-1gPz9dK9.woff2",import.meta.url).href,Ns=""+new URL("assets/roboto-cyrillic-DVBNKCCH.woff2",import.meta.url).href,Fs=""+new URL("assets/roboto-greek-ext-D98D44EL.woff2",import.meta.url).href,Ms=""+new URL("assets/roboto-greek-DVLYEgdx.woff2",import.meta.url).href,Ps=""+new URL("assets/roboto-latin-ext-t610Sqxq.woff2",import.meta.url).href,Is=""+new URL("assets/roboto-latin-cAJwcdBQ.woff2",import.meta.url).href,Ds=""+new URL("assets/roboto-rest-C7JkyNHT.woff2",import.meta.url).href,Bs=""+new URL("assets/roboto-vietnamese-w-p-nKZZ.woff2",import.meta.url).href,Vs="Roboto",zs="100 900",Ws=[{name:"rest",file:"roboto-rest.woff2",range:"U+02D8-02D9, U+02DB, U+030F, U+2070, U+2074-208E, U+20C1, U+2105, U+2126, U+212E, U+215B-215E, U+2202, U+2206, U+220F, U+2211, U+221A, U+221E, U+222B, U+2248, U+2260, U+2264-2265, U+25A0, U+25CA-25CB, U+25CF, U+EE01-EE02, U+F6C3, U+FB01-FB04, U+FFFC",bytes:13324},{name:"cyrillic-ext",file:"roboto-cyrillic-ext.woff2",range:"U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F",bytes:36720},{name:"cyrillic",file:"roboto-cyrillic.woff2",range:"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116",bytes:23696},{name:"greek-ext",file:"roboto-greek-ext.woff2",range:"U+1F00-1FFF",bytes:4380},{name:"greek",file:"roboto-greek.woff2",range:"U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF",bytes:17588},{name:"vietnamese",file:"roboto-vietnamese.woff2",range:"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB",bytes:14340},{name:"latin-ext",file:"roboto-latin-ext.woff2",range:"U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF",bytes:26388},{name:"latin",file:"roboto-latin.woff2",range:"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD",bytes:36600}],nt={family:Vs,weight:zs,parts:Ws},Gs=Object.assign({"./assets/fonts/roboto-cyrillic-ext.woff2":Us,"./assets/fonts/roboto-cyrillic.woff2":Ns,"./assets/fonts/roboto-greek-ext.woff2":Fs,"./assets/fonts/roboto-greek.woff2":Ms,"./assets/fonts/roboto-latin-ext.woff2":Ps,"./assets/fonts/roboto-latin.woff2":Is,"./assets/fonts/roboto-rest.woff2":Ds,"./assets/fonts/roboto-vietnamese.woff2":Bs}),Qt="data-lecodes-lite-fonts",js=1500,Hs=e=>{if(e.head.querySelector(`style[${Qt}]`))return;const t=nt.parts.map(r=>{const s=Gs[`./assets/fonts/${r.file}`];if(!s)return"";const i=new URL(s,e.baseURI).href;return`@font-face{font-family:"${nt.family}";src:url("${i}") format("woff2");font-weight:${nt.weight};font-style:normal;font-display:swap;unicode-range:${r.range}}`}),n=e.createElement("style");n.setAttribute(Qt,""),n.textContent=t.join(`
277
+ `),e.head.appendChild(n)},Ks=(e,t=[],n=js)=>{const r=e.defaultView??window,s=e.fonts?e.fonts.ready.then(()=>{},()=>{}):Promise.resolve();return new Promise(i=>{const o=r.setTimeout(i,n);Promise.all([s,...t.map(f=>f.then(()=>{},()=>{}))]).then(()=>{r.clearTimeout(o),i()})})},Zt=e=>typeof e=="object"&&e!==null&&e.lecodes===!0&&typeof e.level=="number",lt=(e,t={})=>{let n;if((t.mode??"hash")==="hash")n=e.hash.replace(/^#/,"");else{const r=t.base??"/";n=(e.pathname.startsWith(r)?e.pathname.slice(r.length-1):e.pathname).replace(/\/index\.html$/,"/")+e.search}return n===""||n==="/"?null:n.startsWith("/")?n:`/${n}`},Ys=(e,t,n={})=>{if((n.mode??"hash")==="hash")return`${t.pathname}${t.search}${e===null?"":`#${e}`}`;const r=n.base??"/";return e===null?r:r.replace(/\/$/,"")+e},qs=(e,t,n={})=>{const r=e.history,s=e.location;let i=0,o=!1,f=0,l=!1;const d=(m,a)=>{const p={lecodes:!0,level:a},h=Ys(t.address(),s,n);m==="push"?r.pushState(p,"",h):r.replaceState(p,"",h)},b=m=>{m!==0&&(f++,r.go(m))},E=()=>{if(f>0){l=!0;return}const m=t.level();if(o){i=m,d("replace",m);return}if(m>i){for(let a=i+1;a<=m;a++)d("push",a);i=m}else if(m<i){const a=m-i;i=m,b(a)}else d("replace",m)},g=m=>{if(f>0){if(f--,f>0)return;l?(l=!1,E()):d("replace",i);return}const a=m.state;if(!Zt(a)){const R=lt(s,n);r.replaceState({lecodes:!0,level:i},"",s.href),R!==null&&t.link(R);return}const p=a.level,h=i;o=!0;try{if(p<h)for(;t.level()>p;){const R=t.level();if(t.back(),t.level()>=R)break}else if(p>h){const R=lt(s,n);R!==null&&t.link(R)}}finally{o=!1}const y=Math.max(0,t.level());if(i=p,y===p){d("replace",p);return}if(p>h&&y>h){i=y,d("replace",y);return}i=y,b(y-p)};return e.addEventListener("popstate",g),Zt(r.state)?i=r.state.level:r.replaceState({lecodes:!0,level:0},"",s.href),{sync:E,reset(){const m=-i;i=0,b(m)},destroy(){e.removeEventListener("popstate",g)}}},Xs=.1,Js=e=>{const t=new Set,n=new Set,r=new Map;let s=1,i=0,o=0;const f=l=>{i=0;const d=Math.min(Xs,Math.max(0,(l-o)/1e3));o=l;for(const b of[...r.values()])b(d);r.size>0&&(i=e.requestAnimationFrame(f))};return{globals:{setTimeout(l,d,...b){const E=e.setTimeout(()=>{t.delete(E),l(...b)},d);return t.add(E),E},clearTimeout(l){t.delete(l),e.clearTimeout(l)},setInterval(l,d,...b){const E=e.setInterval(()=>l(...b),d);return n.add(E),E},clearInterval(l){n.delete(l),e.clearInterval(l)},setLoop(l){const d=s++;return r.set(d,l),i===0&&(o=e.performance.now(),i=e.requestAnimationFrame(f)),d},clearLoop(l){r.delete(l)}},dispose(){for(const l of t)e.clearTimeout(l);for(const l of n)e.clearInterval(l);t.clear(),n.clear(),r.clear(),i!==0&&e.cancelAnimationFrame(i),i=0}}},Qs=["_creator","_creator2d","_creatorNav","_creatorNet","_creatorAudio","_creatorCanvas","_creatorFiles","_creatorService"],en=new Map,Zs=e=>{let t=en.get(e);return t||en.set(e,t=es(e)),t},ei=(e,t={})=>{const n=e.ownerDocument,r=n.defaultView??window,s=Os(r),i=t.language??(()=>(navigator.language||"en").slice(0,2));let o=null;const f=ns(),l=new Set,d=k=>Promise.all([...k].map(async U=>{if(!(!t.loadPlugin||l.has(U))){l.add(U);try{const N=await t.loadPlugin(U);N&&f.register(U,N)}catch(N){console.warn(`[web-lite] the "${U}" plugin did not load: ${N instanceof Error?N.message:N}`)}}})),b=async(k,U)=>{const N=xs(k);if(!N.has("scene3d"))return{features:[],dispose(){}};try{const{createScene3d:v}=await re(async()=>{const{createScene3d:D}=await import("./assets/scene3d-CX7MAqmN.js").then(M=>M.s);return{createScene3d:D}},[],import.meta.url),S=await v(e,{preloads:U,twins:{anim:N.has("anim"),physics:N.has("physics"),particles:N.has("particles")},alpha:N.has("ar")}),x=[S.feature];return N.has("ar")&&x.push((await re(async()=>{const{createAr:D}=await import("./assets/ar-BOdQ-wV4.js");return{createAr:D}},[],import.meta.url)).createAr(S,e)),{features:x,dispose:S.dispose}}catch(v){return console.warn(`[web-lite] the 3D engine did not start: ${v instanceof Error?v.message:v}`),{features:[],dispose(){}}}};let E=t.launchRoute!==void 0?t.launchRoute:t.history?lt(r.location,t.history):null,g=t.safeArea??null,m=0;const a=n.createElement("div");a.style.cssText="position:absolute;visibility:hidden;pointer-events:none;width:0;height:0;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);";const p=()=>{a.isConnected||n.body.appendChild(a);const k=r.getComputedStyle(a),U=N=>Math.round(parseFloat(N)||0);return{top:U(k.paddingTop),right:U(k.paddingRight),bottom:U(k.paddingBottom),left:U(k.paddingLeft)}},h=()=>{const k=g??p();o==null||o.tree.setSafeArea(k,k.bars??[])};r.addEventListener("resize",h);const y=t.history?qs(r,{level:()=>Math.max(0,((o==null?void 0:o.tree.presentation.stack().length)??0)-1),address:()=>(o==null?void 0:o.tree.presentation.address())??null,back:()=>{o==null||o.tree.back()},link:k=>{E=k,o==null||o.emitApp("url",k)}},t.history):null,R=()=>{o==null||o.dispose(),o=null},O=(k,U,N)=>{const v=Xo({root:e,bufferUrl:Zs,features:N,plugins:f,onNavigation:()=>{var F;y==null||y.sync(),(F=t.onNavigation)==null||F.call(t,v)}}),S=Js(r),x=fs(),D=Ls(t.project??"app"),M=ks(),B=ms(e),z=Ts(),H=s.track(k,U.onError),X=is({launchUrl:()=>E,rerun:(F,C,$)=>{C!==void 0&&(E=C);const I=F??k;r.setTimeout(()=>{A(I,U).catch(P=>$==null?void 0:$(P instanceof Error?P.message:String(P)))},0)},stats:()=>JSON.stringify({live:{tree:v.stats().nodes,fetch:x.live(),media:z.live(),tween:v.stats().tweens},pending:0}),onOrientation:t.onOrientation}),L={_creatorTree:v.bridge,_creatorApp:X.bridge,_creatorDevice:cs(i),_creatorFetch:x.bridge,_creatorStorage:D.bridge,_creatorSocket:M.bridge,_creatorInput:B.bridge,_creatorMedia:z.bridge,...S.globals};for(const F of Qs)L[F]=void 0;Object.assign(L,v.globals),o={code:k,tree:v,emitApp:X.emit,dispose(){H.drop(),S.dispose(),M.dispose(),z.dispose(),B.dispose(),D.dispose(),x.dispose(),X.dispose(),v.destroy()}},h();const T=Object.keys(L);try{new Function(...T,k)(...T.map(F=>L[F]))}catch(F){H.thrown(F)}};async function A(k,U={}){const N=jn(k);if(!zn(N.sdk,yt))throw new Error(`This app was built with LeCodes SDK ${N.sdk??"older than 2.0"}; this host runs SDK ${yt}. It needs a new build.`);N.is2d&&console.warn("[web-lite] this app uses 2D scenes, which Web Lite does not show yet (docs/plans/web-lite-plan.md): its UI runs, a scene's calls fail");const v=++m;o&&(y==null||y.reset()),R(),t.defaultFont!=="system"&&Hs(n);const S=Gn(N.bootFonts,n),[x,D]=await Promise.all([ss(k),b(k,N.preloads),d(N.plugins)]);if(v!==m){D.dispose();return}x.push(...D.features),e.style.visibility="hidden";try{O(k,U,x),o==null||o.tree.flush(),e.offsetHeight,await Ks(n,[S])}finally{v===m&&(e.style.visibility="")}}return{run:A,restart(k){return o?(k!==void 0&&(E=k),A(o.code)):Promise.resolve()},tree:()=>(o==null?void 0:o.tree)??null,setSafeArea(k){g=k,h()},openRoute(k){E=k,o==null||o.emitApp("url",k)},emitAppEvent(k,U){o==null||o.emitApp(k,U)},destroy(){m++,R(),r.removeEventListener("resize",h),y==null||y.destroy(),a.remove(),s.dispose()}}},we=document.getElementById("app"),tn=document.getElementById("error"),me=new URLSearchParams(location.search),$n=e=>{tn&&(tn.textContent=e)},nn=me.has("dev")?new URL(me.get("dev")||"..",location.href).href.replace(/\/$/,""):null,rn=e=>{const t=e.frames[0];return t?`${e.message}
278
+ at ${t.source}:${t.line}:${t.column}${t.fn?` (${t.fn})`:""}`:e.message},On=e=>{$n(rn(e)),q==null||q.error(rn(e))},Un=e=>On({message:e instanceof Error?e.message:String(e),frames:[]});let on=null;const ti=async e=>{on??(on=fetch(new URL("plugins.json",document.baseURI)).then(r=>r.ok?r.json():{plugins:{}}).then(r=>r.plugins??{},()=>({})));const t=(await on)[e];if(!t)return null;const n=await import(new URL(t,document.baseURI).href);return typeof n.register=="function"?n.register:null},Nn=ei(we,{loadPlugin:ti,history:{mode:we.dataset.urls==="path"?"path":"hash",base:we.dataset.base??"/"},project:me.get("project")??location.pathname,defaultFont:we.dataset.font==="system"?"system":"roboto"});me.has("test")&&(window.lecodesTest={ready:!1,dump:()=>{var e;return((e=Nn.tree())==null?void 0:e.bridge.debugDump())??'{"roots":[]}'},rect:e=>{const t=document.querySelector(`[data-node="${e}"]`);if(!t)return null;const n=t.getBoundingClientRect();return[n.left,n.top,n.width,n.height]}});let rt=!1,ot=null,ut=-1;const ze=async e=>{if(rt){ot=e;return}rt=!0,$n("");try{const t=await fetch(e.src,{cache:"no-store"});if(!t.ok)throw new Error(t.status===503?"No successful compile yet — check the terminal.":`${e.src} → HTTP ${t.status}`);const n=await t.text();await Nn.run(n,{onError:On});const r=window.lecodesTest;r&&(r.ready=!0),q&&e.version!==void 0&&(ut=q.versionOf(t,e.version),q.ran(ut))}catch(t){Un(t)}finally{rt=!1;const t=ot;ot=null,t&&ze(t)}},q=nn?In(nn,e=>{e!==ut&&ze({src:q.bundleUrl(e),version:e})}):null;if(q)for(const e of["log","info","warn","error"]){const t=console[e].bind(console);console[e]=(...n)=>{t(...n),q.log(e,n)}}if(q)ze({src:q.bundleUrl(0),version:0});else{const e=Dn(me.get("src")??we.dataset.src??"app.js",document.baseURI);e?ze({src:e}):Un(`The page runs bundles of its own origin only: ${me.get("src")}`)}export{qe as A,ke as B,Xe as C,an as D,de as E,Me as F,Cr as G,ai as H,xr as T,li as _,he as a,di as b,ui as c,pi as d,re as e,oi as f,Ln as g,fi as h,Ee as i,fe as j,_n as k,ci as l,St as m,Y as n,ri as o,Be as p,ar as q,mi as r,ir as s,ct as t,ii as u,sn as v,si as w,mo as x,gn as y,go as z};