(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.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 a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).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 br=!1;var wr=Array.isArray,ks=Array.prototype.indexOf,Wt=Array.prototype.includes,pn=Array.from,yr=Object.defineProperty,At=Object.getOwnPropertyDescriptor,Ms=Object.getOwnPropertyDescriptors,Es=Object.prototype,Ss=Array.prototype,xr=Object.getPrototypeOf,tr=Object.isExtensible;const Ts=()=>{};function As(t){for(var e=0;e<t.length;e++)t[e]()}function kr(){var t,e,n=new Promise((r,s)=>{t=r,e=s});return{promise:n,resolve:t,reject:e}}const ye=2,Rt=4,mn=8,Mr=1<<24,De=16,Ve=32,ft=64,An=128,Vn=256,He=512,he=1024,ue=2048,Ie=4096,Me=8192,_e=16384,qt=32768,Gt=1<<25,Ot=65536,on=1<<17,Ps=1<<18,Dt=1<<19,Fs=1<<20,We=1<<25,ln=1<<21,Pt=1<<22,ut=1<<23,jt=Symbol("$state"),Er=Symbol("component"),Cs=Symbol("legacy props"),Rs=Symbol(""),Sr=Symbol("attributes"),Pn=Symbol("class"),Fn=Symbol("style"),Cn=Symbol("text"),Jt=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},Os=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),zs=1,Is=2,Tr=4,Ns=8,qs=16,Ds=1,Ls=4,Us=8,Bs=16,Hs=1,Vs=2,Ar={},fe=Symbol("uninitialized"),js="http://www.w3.org/1999/xhtml";function Ys(){console.warn("https://svelte.dev/e/derived_inert")}function Xs(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function Pr(t){return t===this.v}function Ws(t,e){return t!=t?e==e:t!==e||t!==null&&typeof t=="object"||typeof t=="function"}function Fr(t){return!Ws(t,this.v)}function Cr(t){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Gs(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Ks(t,e,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Zs(t){throw new Error("https://svelte.dev/e/effect_in_teardown")}function $s(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Js(t){throw new Error("https://svelte.dev/e/effect_orphan")}function Qs(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function ei(t){throw new Error("https://svelte.dev/e/props_invalid_value")}function ti(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function ni(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function ri(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function si(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}let ii=!1,be=null;function zt(t){be=t}function $e(t,e=!1,n){be={p:be,i:!1,c:null,e:null,s:t,x:null,r:Z,l:null}}function Je(t){var e=be,n=e.e;if(n!==null){e.e=null;for(var r of n)Kr(r)}return e.i=!0,be=e.p,jn(t)}function jn(t={}){return yr(t,Er,{value:!0}),t}function Rr(){return!0}let St=[];function ai(){var t=St;St=[],As(t)}function rt(t){if(St.length===0){var e=St;queueMicrotask(()=>{e===St&&ai()})}St.push(t)}const oi=-7169;function oe(t,e){t.f=t.f&oi|e}function Yn(t){(t.f&He)!==0||t.deps===null?oe(t,he):oe(t,Ie)}function Or(t,e,n){(t.f&ue)!==0?e.add(t):(t.f&Ie)!==0&&n.add(t),oe(t,he)}function Qt(t){var e=W,n=Z;Ne(null),Ze(null);try{return t()}finally{Ne(e),Ze(n)}}function li(t,e,n,r){const s=Kt;var i=t.filter(d=>!d.settled),a=e.map(s);if(n.length===0&&i.length===0){r(a);return}var u=Z,o=ui(),c=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(d=>d.promise)):null;function v(d){if((u.f&_e)===0){o();try{r([...a,...d])}catch(m){Xe(m,u)}un()}}var h=zr();if(n.length===0){c.then(()=>v([])).finally(h);return}function p(){Promise.all(n.map(d=>ci(d))).then(v).catch(d=>Xe(d,u)).finally(h)}c?c.then(()=>{if((u.f&_e)!==0){h();return}o(),p(),un()}):p()}function ui(){var t=Z,e=W,n=be,r=J;return function(i=!0){Ze(t),Ne(e),zt(n),i&&(t.f&_e)===0&&(r?.activate(),r?.apply())}}function un(t=!0){Ze(null),Ne(null),zt(null),t&&J?.deactivate()}function zr(){var t=Z,e=t.b,n=J,r=!!e?.is_rendered();return e?.update_pending_count(1,n),n.increment(r,t),()=>{e?.update_pending_count(-1,n),n.decrement(r,t)}}function Kt(t){var e=ye|ue;return Z!==null&&(Z.f|=Dt),{ctx:be,deps:null,effects:null,equals:Pr,f:e,fn:t,reactions:null,rv:0,v:fe,wv:0,parent:Z,ac:null}}const Bt=Symbol("obsolete");function ci(t,e,n){let r=Z;r===null&&Gs();var s=void 0,i=xt(fe),a=!W,u=new Set;return Mi(()=>{var o=Z,c=kr();s=c.promise;try{Promise.resolve(t()).then(c.resolve,d=>{d!==Jt&&c.reject(d)}).finally(un)}catch(d){c.reject(d),un()}var v=J;if(a){if((o.f&qt)!==0)var h=zr();if(r.b?.is_rendered())v.async_deriveds.get(o)?.reject(Bt);else for(const d of u.values())d.reject(Bt);u.add(c),v.async_deriveds.set(o,c)}const p=(d,m=void 0)=>{h?.(),u.delete(c),m!==Bt&&(v.activate(),m?(i.f|=ut,It(i,m)):((i.f&ut)!==0&&(i.f^=ut),It(i,d)),v.deactivate())};c.promise.then(p,d=>p(null,d||"unknown"))}),Gr(()=>{for(const o of u)o.reject(Bt)}),new Promise(o=>{function c(v){function h(){v===s?o(i):c(s)}v.then(h,h)}c(s)})}function ve(t){const e=Kt(t);return ns(e),e}function Ir(t){const e=Kt(t);return e.equals=Fr,e}function fi(t){var e=t.effects;if(e!==null){t.effects=null;for(var n=0;n<e.length;n+=1)Ae(e[n])}}function Xn(t){var e,n=Z,r=t.parent;if(!it&&r!==null&&t.v!==fe&&(r.f&(_e|Me))!==0)return Ys(),t.v;Ze(r);try{fi(t),e=as(t)}finally{Ze(n)}return e}function Nr(t){var e=Xn(t);if(!t.equals(e)&&(t.wv=ss(),(!J?.is_fork||t.deps===null)&&(J!==null?(J.capture(t,e,!0),Rn?.capture(t,e,!0)):t.v=e,t.deps===null))){oe(t,he);return}it||(Le!==null?(Kn()||J?.is_fork)&&Le.set(t,e):Yn(t))}function di(t){if(t.effects!==null)for(const e of t.effects)(e.teardown||e.ac)&&(e.teardown?.(),e.ac!==null&&Qt(()=>{e.ac.abort(Jt),e.ac=null}),e.fn!==null&&(e.teardown=Ts),$t(e,0),$n(e))}function qr(t){if(t.effects!==null)for(const e of t.effects)e.teardown&&e.fn!==null&&Nt(e)}let _n=null,Et=null,J=null,Rn=null,Le=null,On=null,bn=!1,Yt=null,an=null;var nr=0;let hi=1;class dt{id=hi++;#e=!1;linked=!0;#s=null;#t=null;async_deriveds=new Map;current=new Map;previous=new Map;#o=new Set;#r=new Set;#a=0;#n=new Map;#l=null;#i=[];#m=[];#u=new Set;#c=new Set;#d=new Map;#g=new Set;is_fork=!1;#f=!1;constructor(){Et===null?_n=Et=this:(Et.#t=this,this.#s=Et),Et=this}#y(){if(this.is_fork)return!0;for(const r of this.#n.keys()){for(var e=r,n=!1;e.parent!==null;){if(this.#d.has(e)){n=!0;break}e=e.parent}if(!n)return!0}return!1}skip_effect(e){this.#d.has(e)||this.#d.set(e,{d:[],m:[]}),this.#g.delete(e)}unskip_effect(e,n=r=>this.schedule(r)){var r=this.#d.get(e);if(r){this.#d.delete(e);for(var s of r.d)oe(s,ue),n(s);for(s of r.m)oe(s,Ie),n(s)}this.#g.add(e)}#x(){var e=[];for(const i of this.#i)if(!((i.f&_e)!==0||(i.f&(ue|Ie))===0)){for(var n=i,r=!1;n.parent!==null;){n=n.parent;var s=n.f;if((s&(ft|Ve))!==0){if((s&he)===0){r=!0;break}n.f^=he}}r||e.push(n)}return this.#i=[],e}#_(){this.#e=!0;for(const u of this.#u)this.#c.delete(u),oe(u,ue),this.schedule(u);for(const u of this.#c)oe(u,Ie),this.schedule(u);this.apply();for(var e=Yt=[],n=[],r=an=[];this.#i.length>0;){nr++>1e3&&(this.#p(),vi());for(const u of this.#x())try{this.#b(u,e,n)}catch(o){throw Ur(u),this.#y()||this.discard(),o}}if(J=null,r.length>0){var s=dt.ensure();for(const u of r)s.schedule(u)}if(Yt=null,an=null,this.#y()){this.#v(n),this.#v(e);for(const[u,o]of this.#d)Lr(u,o);r.length>0&&J.#_();return}const i=this.#h();if(i){this.#v(n),this.#v(e),i.#k(this);return}this.#u.clear(),this.#c.clear();for(const u of this.#o)u(this);this.#o.clear(),Rn=this,rr(n),rr(e),Rn=null,this.#l?.resolve();var a=J;if(this.#a===0&&(this.#i.length===0||a!==null)&&this.#p(),this.#i.length>0)if(a!==null){for(const u of this.#i)a.#i.push(u);this.#i=[]}else a=this;a!==null&&(Ge.clear(),a.#_())}#b(e,n,r){e.f^=he;for(var s=e.first;s!==null;){var i=s.f,a=(i&(Ve|ft))!==0,u=a&&(i&he)!==0,o=u||(i&Me)!==0||this.#d.has(s);if(!o&&s.fn!==null){a?s.f^=he:(i&Rt)!==0?n.push(s):tn(s)&&((i&De)!==0&&this.#c.add(s),Nt(s));var c=s.first;if(c!==null){s=c;continue}}for(;s!==null;){var v=s.next;if(v!==null){s=v;break}s=s.parent}}}#h(){for(var e=this.#s;e!==null;){if(!e.is_fork){for(const[n,[,r]]of this.current)if(e.current.has(n)&&!r)return e}e=e.#s}return null}#k(e){for(const[r,s]of e.current)!this.previous.has(r)&&e.previous.has(r)&&this.previous.set(r,e.previous.get(r)),this.current.set(r,s);for(const[r,s]of e.async_deriveds){const i=this.async_deriveds.get(r);i&&s.promise.then(i.resolve).catch(i.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#c);const n=r=>{var s=r.reactions;if(s!==null&&!((r.f&ye)!==0&&(r.f&(ue|Ie))===0))for(const u of s){var i=u.f;if((i&ye)!==0)n(u);else{var a=u;i&(Pt|De)&&!this.async_deriveds.has(a)&&(this.#c.delete(a),oe(a,ue),this.schedule(a))}}};for(const r of this.current.keys())n(r);this.oncommit(()=>e.discard()),e.#p(),J=this,this.#_()}#v(e){for(var n=0;n<e.length;n+=1)Or(e[n],this.#u,this.#c)}capture(e,n,r=!1){e.v!==fe&&!this.previous.has(e)&&this.previous.set(e,e.v),(e.f&ut)===0&&(this.current.set(e,[n,r]),Le?.set(e,n)),this.is_fork||(e.v=n)}activate(){J=this}deactivate(){J=null,Le=null}flush(){try{bn=!0,J=this,this.#_()}finally{nr=0,On=null,Yt=null,an=null,bn=!1,J=null,Le=null,Ge.clear()}}discard(){for(const e of this.#r)e(this);this.#r.clear();for(const e of this.async_deriveds.values())e.reject(Bt);this.#p(),this.#l?.resolve()}register_created_effect(e){this.#m.push(e)}#w(){for(let h=_n;h!==null;h=h.#t){var e=h.id<this.id,n=[];for(const[p,[d,m]]of this.current){if(h.current.has(p)){var r=h.current.get(p)[0];if(e&&d!==r)h.current.set(p,[d,m]);else continue}n.push(p)}if(e)for(const[p,d]of this.async_deriveds){const m=h.async_deriveds.get(p);m&&d.promise.then(m.resolve).catch(m.reject)}var s=[...h.current.keys()].filter(p=>!h.current.get(p)[1]);if(!(!h.#e||s.length===0)){var i=s.filter(p=>!this.current.has(p));if(i.length===0)e&&h.discard();else if(n.length>0){if(e)for(const p of this.#g)h.unskip_effect(p,d=>{(d.f&(De|Pt))!==0?h.schedule(d):h.#v([d])});h.activate();var a=new Set,u=new Map;for(var o of n)Dr(o,i,a,u);u=new Map;var c=[...h.current].filter(([p,d])=>{const m=this.current.get(p);return m?m[0]!==d[0]||m[1]!==d[1]:!0}).map(([p])=>p);if(c.length>0)for(const p of this.#m)(p.f&(_e|Me|on))===0&&Wn(p,c,u)&&((p.f&(Pt|De))!==0?(oe(p,ue),h.schedule(p)):h.#u.add(p));if(h.#i.length>0&&!h.#f){h.apply();for(var v of h.#x())h.#b(v,[],[])}h.deactivate()}}}}increment(e,n){if(this.#a+=1,e){let r=this.#n.get(n)??0;this.#n.set(n,r+1)}}decrement(e,n){if(this.#a-=1,e){let r=this.#n.get(n)??0;r===1?this.#n.delete(n):this.#n.set(n,r-1)}this.#f||(this.#f=!0,rt(()=>{this.#f=!1,this.linked&&this.flush()}))}transfer_effects(e,n){for(const r of e)this.#u.add(r);for(const r of n)this.#c.add(r);e.clear(),n.clear()}oncommit(e){this.#o.add(e)}ondiscard(e){this.#r.add(e)}settled(){return(this.#l??=kr()).promise}static ensure(){if(J===null){const e=J=new dt;bn||rt(()=>{e.#e||e.flush()})}return J}apply(){{Le=null;return}}schedule(e){if(On=e,e.b?.is_pending&&(e.f&(Rt|mn|Mr))!==0&&(e.f&qt)===0){e.b.defer_effect(e);return}this.#i.push(e)}#p(){if(this.linked){var e=this.#s,n=this.#t;e===null?_n=n:e.#t=n,n===null?Et=e:n.#s=e,this.linked=!1}}}function vi(){try{Qs()}catch(t){Xe(t,On)}}let tt=null;function rr(t){var e=t.length;if(e!==0){for(var n=0;n<e;){var r=t[n++];if((r.f&(_e|Me))===0&&tn(r)&&(tt=new Set,Nt(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Qr(r),tt?.size>0)){Ge.clear();for(const s of tt){if((s.f&(_e|Me))!==0)continue;const i=[s];let a=s.parent;for(;a!==null;)tt.has(a)&&(tt.delete(a),i.push(a)),a=a.parent;for(let u=i.length-1;u>=0;u--){const o=i[u];(o.f&(_e|Me))===0&&Nt(o)}}tt.clear()}}tt=null}}function Dr(t,e,n,r){if(!n.has(t)&&(n.add(t),t.reactions!==null))for(const s of t.reactions){const i=s.f;(i&ye)!==0?Dr(s,e,n,r):(i&(Pt|De))!==0&&(i&ue)===0&&Wn(s,e,r)&&(oe(s,ue),Gn(s))}}function Wn(t,e,n){const r=n.get(t);if(r!==void 0)return r;if(t.deps!==null)for(const s of t.deps){if(Wt.call(e,s))return!0;if((s.f&ye)!==0&&Wn(s,e,n))return n.set(s,!0),!0}return n.set(t,!1),!1}function Gn(t){J.schedule(t)}function Lr(t,e){if(!((t.f&Ve)!==0&&(t.f&he)!==0)){(t.f&ue)!==0?e.d.push(t):(t.f&Ie)!==0&&e.m.push(t),oe(t,he);for(var n=t.first;n!==null;)Lr(n,e),n=n.next}}function Ur(t){oe(t,he);for(var e=t.first;e!==null;)Ur(e),e=e.next}let cn=new Set;const Ge=new Map;let Br=!1;function xt(t,e){var n={f:0,v:t,reactions:null,equals:Pr,rv:0,wv:0};return n}function z(t,e){const n=xt(t);return ns(n),n}function pi(t,e=!1,n=!0){const r=xt(t);return e||(r.equals=Fr),r}function A(t,e,n=!1){W!==null&&(!Ue||(W.f&on)!==0)&&Rr()&&(W.f&(ye|De|Pt|on))!==0&&(Ke===null||!Ke.has(t))&&ri();let r=n?de(e):e;return It(t,r,an)}var gt=null,zn=0;function It(t,e,n=null){if(!t.equals(e)){it?Ge.set(t,e):Ge.has(t)||Ge.set(t,t.v);var r=dt.ensure();if(r.capture(t,e),(t.f&ye)!==0){const s=t;(t.f&ue)!==0&&Xn(s),Le===null&&Yn(s)}t.wv=ss(),gt=null,zn=0,Hr(t,ue,n),gt=null,Z!==null&&(Z.f&he)!==0&&(Z.f&(Ve|ft))===0&&(Oe===null?Ti([t]):Oe.push(t)),!r.is_fork&&cn.size>0&&!Br&&mi()}return e}function mi(){Br=!1;for(const t of cn){(t.f&he)!==0&&oe(t,Ie);let e;try{e=tn(t)}catch{e=!0}e&&Nt(t)}cn.clear()}function Xt(t){A(t,t.v+1)}function Hr(t,e,n){var r=t.reactions;if(r!==null){var s=r.length;if(zn+=s,zn>1e5&>===null&&(gt=new Set),gt!==null){if(gt.has(t))return;gt.add(t)}for(var i=0;i<s;i++){var a=r[i],u=a.f,o=(u&ue)===0;if(o&&oe(a,e),(u&on)!==0)cn.add(a);else if((u&ye)!==0){var c=a;Le?.delete(c),Hr(c,Ie,n)}else if(o){var v=a;(u&De)!==0&&tt!==null&&tt.add(v),n!==null?n.push(v):Gn(v)}}}}function de(t){if(typeof t!="object"||t===null||jt in t||Er in t)return t;const e=xr(t);if(e!==Es&&e!==Ss)return t;var n=new Map,r=wr(t),s=z(0),i=yt,a=u=>{if(yt===i)return u();var o=W,c=yt;Ne(null),ir(i);var v=u();return Ne(o),ir(c),v};return r&&n.set("length",z(t.length)),new Proxy(t,{defineProperty(u,o,c){(!("value"in c)||c.configurable===!1||c.enumerable===!1||c.writable===!1)&&ti();var v=n.get(o);return v===void 0?a(()=>{var h=z(c.value);return n.set(o,h),h}):A(v,c.value,!0),!0},deleteProperty(u,o){var c=n.get(o);if(c===void 0){if(o in u){const v=a(()=>z(fe));n.set(o,v),Xt(s)}}else A(c,fe),Xt(s);return!0},get(u,o,c){if(o===jt)return t;var v=n.get(o),h=o in u;if(v===void 0&&(!h||At(u,o)?.writable)&&(v=a(()=>{var d=de(h?u[o]:fe),m=z(d);return m}),n.set(o,v)),v!==void 0){var p=l(v);return p===fe?void 0:p}return Reflect.get(u,o,c)},getOwnPropertyDescriptor(u,o){this.has?.(u,o);var c=Reflect.getOwnPropertyDescriptor(u,o),v=n.get(o);if(v!==void 0){var h=l(v);if(h===fe)return;if(c&&"value"in c)c.value=h;else return{enumerable:!0,configurable:!0,value:h,writable:!0}}return c},has(u,o){if(o===jt)return!0;var c=n.get(o),v=c!==void 0&&c.v!==fe||Reflect.has(u,o);if(c!==void 0||Z!==null&&(!v||At(u,o)?.writable)){c===void 0&&(c=a(()=>{var p=v?de(u[o]):fe,d=z(p);return d}),n.set(o,c));var h=l(c);if(h===fe)return!1}return v},set(u,o,c,v){var h=n.get(o),p=o in u;if(r&&o==="length")for(var d=c;d<h.v;d+=1){var m=n.get(d+"");m!==void 0?A(m,fe):d in u&&(m=a(()=>z(fe)),n.set(d+"",m))}if(h===void 0)(!p||At(u,o)?.writable)&&(h=a(()=>z(void 0)),A(h,de(c)),n.set(o,h));else{p=h.v!==fe;var P=a(()=>de(c));A(h,P)}var f=Reflect.getOwnPropertyDescriptor(u,o);if(f?.set&&f.set.call(v,c),!p){if(r&&typeof o=="string"){var _=n.get("length"),M=Number(o);Number.isInteger(M)&&M>=_.v&&A(_,M+1)}Xt(s)}return!0},ownKeys(u){l(s);var o=Reflect.ownKeys(u).filter(h=>{var p=n.get(h);return p===void 0||p.v!==fe});for(var[c,v]of n)v.v!==fe&&!(c in u)&&o.push(c);return o},setPrototypeOf(){ni()}})}var Zt,Vr,jr,Yr;function gi(){if(Zt===void 0){Zt=window,Vr=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,n=Text.prototype;jr=At(e,"firstChild").get,Yr=At(e,"nextSibling").get,tr(t)&&(t[Pn]=void 0,t[Sr]=null,t[Fn]=void 0,t.__e=void 0),tr(n)&&(n[Cn]=void 0)}}function ct(t=""){return document.createTextNode(t)}function kt(t){return jr.call(t)}function en(t){return Yr.call(t)}function H(t,e){return kt(t)}function Xr(t,e=!1){{var n=kt(t);return n instanceof Comment&&n.data===""?en(n):n}}function B(t,e=!1){return kt(t)}function k(t,e=1,n=!1){let r=t;for(;e--;)r=en(r);return r}function _i(t){t.textContent=""}function Wr(){return!1}function bi(t,e,n){return n?document.createElement(t,{is:n}):document.createElement(t)}function wi(t){var e=Z;if(e===null)return W.f|=ut,t;if((e.f&qt)===0&&(e.f&Rt)===0)throw t;Xe(t,e)}function Xe(t,e){if(t===Ar)throw t;if(!(e!==null&&(e.f&_e)!==0)){for(;e!==null;){if((e.f&An)!==0&&(e.f&(_e|Gt))===0){if((e.f&qt)===0)throw t;try{e.b.error(t);return}catch(n){t=n}}e=e.parent}throw t}}function yi(t){Z===null&&(W===null&&Js(),$s()),it&&Zs()}function xi(t,e){var n=e.last;n===null?e.last=e.first=t:(n.next=t,t.prev=n,e.last=t)}function at(t,e){var n=Z;n!==null&&(n.f&Me)!==0&&(t|=Me);var r={ctx:be,deps:null,nodes:null,f:t|ue|He,first:null,fn:e,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};J?.register_created_effect(r);var s=r;if((t&Rt)!==0)Yt!==null?Yt.push(r):dt.ensure().schedule(r);else if(e!==null){try{Nt(r)}catch(a){throw Ae(r),a}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&(s.f&Dt)===0&&(s=s.first,(t&De)!==0&&(t&Ot)!==0&&s!==null&&(s.f|=Ot))}if(s!==null&&(s.parent=n,n!==null&&xi(s,n),W!==null&&(W.f&ye)!==0&&(t&ft)===0)){var i=W;(i.effects??=[]).push(s)}return r}function Kn(){return W!==null&&!Ue}function Gr(t){const e=at(mn,null);return oe(e,he),e.teardown=t,e}function bt(t){yi();var e=Z.f,n=!W&&(e&Ve)!==0&&be!==null&&!be.i;if(n){var r=be;(r.e??=[]).push(t)}else return Kr(t)}function Kr(t){return at(Rt|Fs,t)}function ki(t){dt.ensure();const e=at(ft|Dt,t);return(n={})=>new Promise(r=>{n.outro?wt(e,()=>{Ae(e),r(void 0)}):(Ae(e),r(void 0))})}function Zr(t){return at(Rt,t)}function Mi(t){return at(Pt|Dt,t)}function $r(t,e=0){return at(mn|e,t)}function Q(t,e=[],n=[],r=[]){li(r,e,n,s=>{at(mn,()=>{t(...s.map(l))})})}function Zn(t,e=0){var n=at(De|e,t);return n}function ze(t){return at(Ve|Dt,t)}function Jr(t){var e=t.teardown;if(e!==null){const n=it,r=W;sr(!0),Ne(null);try{e.call(null)}catch(s){Xe(s,t.parent)}finally{sr(n),Ne(r)}}}function $n(t,e=!1){var n=t.first;for(t.first=t.last=null;n!==null;){const s=n.ac;s!==null&&Qt(()=>{s.abort(Jt)});var r=n.next;(n.f&ft)!==0?n.parent=null:Ae(n,e),n=r}}function Ei(t){for(var e=t.first;e!==null;){var n=e.next;(e.f&Ve)===0&&Ae(e),e=n}}function Ae(t,e=!0){var n=!1;(e||(t.f&Ps)!==0)&&t.nodes!==null&&t.nodes.end!==null&&(Si(t.nodes.start,t.nodes.end),n=!0),t.f|=Gt,$n(t,e&&!n),$t(t,0);var r=t.nodes&&t.nodes.t;if(r!==null)for(const i of r)i.stop();Jr(t),t.f^=Gt,t.f|=_e;var s=t.parent;s!==null&&s.first!==null&&Qr(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes=t.ac=t.b=null}function Si(t,e){for(;t!==null;){var n=t===e?null:en(t);t.remove(),t=n}}function Qr(t){var e=t.parent,n=t.prev,r=t.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),e!==null&&(e.first===t&&(e.first=r),e.last===t&&(e.last=n))}function wt(t,e,n=!0){var r=[];t.f|=Vn,es(t,r,!0);var s=()=>{n&&Ae(t),e&&e()},i=r.length;if(i>0){var a=()=>--i||s();for(var u of r)u.out(a)}else s()}function es(t,e,n){if((t.f&Me)===0){t.f^=Me;var r=t.nodes&&t.nodes.t;if(r!==null)for(const u of r)(u.is_global||n)&&e.push(u);for(var s=t.first;s!==null;){var i=s.next;if((s.f&ft)===0){var a=(s.f&Ot)!==0||(s.f&Ve)!==0&&(t.f&De)!==0;es(s,e,a?n:!1)}s=i}}}function fn(t){t.f&=~Vn,ts(t,!0)}function ts(t,e){if((t.f&Vn)===0&&(t.f&Me)!==0){t.f^=Me,(t.f&he)===0&&(oe(t,ue),dt.ensure().schedule(t));for(var n=t.first;n!==null;){var r=n.next,s=(n.f&Ot)!==0||(n.f&Ve)!==0;ts(n,s?e:!1),n=r}var i=t.nodes&&t.nodes.t;if(i!==null)for(const a of i)(a.is_global||e)&&a.in()}}function Jn(t,e){if(t.nodes)for(var n=t.nodes.start,r=t.nodes.end;n!==null;){var s=n===r?null:en(n);e.append(n),n=s}}let it=!1;function sr(t){it=t}let W=null,Ue=!1;function Ne(t){W=t}let Z=null;function Ze(t){Z=t}let Ke=null;function ns(t){W!==null&&((W.f&ln)!==0||(W.f&ye)!==0)&&(Ke??=new Set).add(t)}let Te=null,Ce=0,Oe=null;function Ti(t){Oe=t}let rs=1,_t=0,yt=_t;function ir(t){yt=t}function ss(){return++rs}function tn(t){var e=t.f;if((e&ue)!==0)return!0;if((e&Ie)!==0){for(var n=t.deps,r=n.length,s=0;s<r;s++){var i=n[s];if(tn(i)&&Nr(i),i.wv>t.wv)return!0}(e&He)!==0&&Le===null&&oe(t,he)}return!1}function is(t,e,n=!0){var r=t.reactions;if(r!==null&&!(Ke!==null&&Ke.has(t)))for(var s=0;s<r.length;s++){var i=r[s];(i.f&ye)!==0?is(i,e,!1):e===i&&(n?oe(i,ue):(i.f&he)!==0&&oe(i,Ie),Gn(i))}}function as(t){var e=Te,n=Ce,r=Oe,s=W,i=Ke,a=be,u=Ue,o=yt,c=t.f;Te=null,Ce=0,Oe=null,W=(c&(Ve|ft))===0?t:null,Ke=null,zt(t.ctx),Ue=!1,yt=++_t,t.ac!==null&&(Qt(()=>{t.ac.abort(Jt)}),t.ac=null);try{t.f|=ln;var v=t.fn,h=v();t.f|=qt;var p=ar(t);if(Rr()&&Oe!==null&&!Ue&&p!==null&&(t.f&(ye|Ie|ue))===0)for(var d=0;d<Oe.length;d++)is(Oe[d],t);if(s!==null&&s!==t){if(_t++,s.deps!==null)for(let m=0;m<n;m+=1)s.deps[m].rv=_t;if(e!==null)for(const m of e)m.rv=_t;Oe!==null&&(r===null?r=Oe:r.push(...Oe))}return(t.f&ut)!==0&&(t.f^=ut),h}catch(m){return ar(t),wi(m)}finally{t.f^=ln,Te=e,Ce=n,Oe=r,W=s,Ke=i,zt(a),Ue=u,yt=o}}function ar(t){var e=t.deps,n=J?.is_fork;if(Te!==null){var r;if(n||$t(t,Ce),e!==null&&Ce>0)for(e.length=Ce+Te.length,r=0;r<Te.length;r++)e[Ce+r]=Te[r];else t.deps=e=Te;if(Kn()&&(t.f&He)!==0)for(r=Ce;r<e.length;r++)(e[r].reactions??=[]).push(t)}else!n&&e!==null&&Ce<e.length&&($t(t,Ce),e.length=Ce);return e}function Ai(t,e){let n=e.reactions;if(n!==null){var r=ks.call(n,t);if(r!==-1){var s=n.length-1;s===0?n=e.reactions=null:(n[r]=n[s],n.pop())}}if(n===null&&(e.f&ye)!==0&&(Te===null||!Wt.call(Te,e))){var i=e;(i.f&He)!==0&&(i.f^=He),i.v!==fe&&Yn(i),i.ac!==null&&Qt(()=>{i.ac.abort(Jt),i.ac=null,oe(i,ue)}),di(i),$t(i,0)}}function $t(t,e){var n=t.deps;if(n!==null)for(var r=e;r<n.length;r++)Ai(t,n[r])}function Nt(t){var e=t.f;if((e&_e)===0){oe(t,he);var n=Z;Z=t;try{(e&(De|Mr))!==0?Ei(t):$n(t),Jr(t);var r=as(t);t.teardown=typeof r=="function"?r:null,t.wv=rs;var s;br&&ii&&(t.f&ue)!==0&&t.deps}finally{Z=n}}}function l(t){var e=t.f,n=(e&ye)!==0;if(W!==null&&!Ue){var r=Z!==null&&(Z.f&_e)!==0;if(!r&&(Ke===null||!Ke.has(t))){var s=W.deps;if((W.f&ln)!==0)t.rv<_t&&(t.rv=_t,Te===null&&s!==null&&s[Ce]===t?Ce++:Te===null?Te=[t]:Te.push(t));else{W.deps??=[],Wt.call(W.deps,t)||W.deps.push(t);var i=t.reactions;i===null?t.reactions=[W]:Wt.call(i,W)||i.push(W)}}}if(it&&Ge.has(t))return Ge.get(t);if(n){var a=t;if(it){var u=a.v;return((a.f&he)===0&&a.reactions!==null||ls(a))&&(u=Xn(a)),Ge.set(a,u),u}var o=(a.f&He)===0&&!Ue&&W!==null&&(W.f&He)!==0,c=(a.f&qt)===0;tn(a)&&(o&&(a.f|=He),Nr(a)),o&&!c&&(qr(a),os(a))}if(Le?.has(t))return Le.get(t);if((t.f&ut)!==0)throw t.v;return t.v}function os(t){if(t.f|=He,t.deps!==null)for(const n of t.deps){var e=n.reactions;e===null?n.reactions=[t]:Wt.call(e,t)||e.push(t),(n.f&ye)!==0&&(n.f&He)===0&&(qr(n),os(n))}}function ls(t){if(t.v===fe)return!0;if(t.deps===null)return!1;for(const e of t.deps)if(Ge.has(e)||(e.f&ye)!==0&&ls(e))return!0;return!1}function vt(t){var e=Ue;try{return Ue=!0,t()}finally{Ue=e}}const Pi=["touchstart","touchmove"];function Fi(t){return Pi.includes(t)}const Ht=Symbol("events"),us=new Set,In=new Set;function Ci(t,e,n,r={}){function s(i){if(r.capture||Nn.call(e,i),!i.cancelBubble)return Qt(()=>n?.call(this,i))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?(s.__removed=!1,rt(()=>{s.__removed||e.addEventListener(t,s,r)})):e.addEventListener(t,s,r),s}function nn(t,e,n,r,s){var i={capture:r,passive:s},a=Ci(t,e,n,i);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&Gr(()=>{a.__removed=!0,e.removeEventListener(t,a,i)})}function V(t,e,n){(e[Ht]??={})[t]=n}function pt(t){for(var e=0;e<t.length;e++)us.add(t[e]);for(var n of In)n(t)}let wn=null,yn=!1;function Nn(t){var e=this,n=e.ownerDocument,r=t.type,s=t.composedPath?.()||[],i=s[0]||t.target;wn=t,yn||(yn=!0,setTimeout(()=>{yn=!1,wn=null}));var a=0,u=wn===t&&t[Ht];if(u){var o=s.indexOf(u);if(o!==-1&&(e===document||e===window)){t[Ht]=e;return}var c=s.indexOf(e);if(c===-1)return;o<=c&&(a=o)}if(i=s[a]||t.target,i!==e){yr(t,"currentTarget",{configurable:!0,get(){return i||n}});var v=W,h=Z;Ne(null),Ze(null);try{for(var p,d=[];i!==null&&i!==e;){try{var m=i[Ht]?.[r];m!=null&&(!i.disabled||t.target===i)&&m.call(i,t)}catch(P){p?d.push(P):p=P}if(t.cancelBubble)break;a++,i=a<s.length?s[a]:null}if(p){for(let P of d)queueMicrotask(()=>{throw P});throw p}}finally{t[Ht]=e,delete t.currentTarget,Ne(v),Ze(h)}}}const Ri=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:t=>t});function Oi(t){return Ri?.createHTML(t)??t}function cs(t){var e=bi("template");return e.innerHTML=Oi(t.replaceAll("<!>","<!---->")),e.content}function dn(t,e){var n=Z;n.nodes===null&&(n.nodes={start:t,end:e,a:null,t:null})}function ee(t,e){var n=(e&Hs)!==0,r=(e&Vs)!==0,s,i=!t.startsWith("<!>");return()=>{s===void 0&&(s=cs(i?t:"<!>"+t),n||(s=kt(s)));var a=r||Vr?document.importNode(s,!0):s.cloneNode(!0);if(n){var u=kt(a),o=a.lastChild;dn(u,o)}else dn(a,a);return a}}function zi(t,e,n="svg"){var r=!t.startsWith("<!>"),s=`<${n}>${r?t:"<!>"+t}</${n}>`,i;return()=>{if(!i){var a=cs(s),u=kt(a);i=kt(u)}var o=i.cloneNode(!0);return dn(o,o),o}}function Ii(t,e){return zi(t,e,"svg")}function or(t=""){{var e=ct(t+"");return dn(e,e),e}}function G(t,e){t!==null&&t.before(e)}function Ni(t){let e=0,n=xt(0),r;return()=>{Kn()&&(l(n),$r(()=>(e===0&&(r=vt(()=>t(()=>Xt(n)))),e+=1,()=>{rt(()=>{e-=1,e===0&&(r?.(),r=void 0,Xt(n))})})))}}var qi=Ot|Dt;function Di(t,e,n,r){new Li(t,e,n,r)}class Li{parent;is_pending=!1;transform_error;#e;#s=null;#t;#o;#r;#a=null;#n=null;#l=null;#i=null;#m=0;#u=0;#c=!1;#d=new Set;#g=new Set;#f=null;#y=Ni(()=>(this.#f=xt(this.#m),()=>{this.#f=null}));constructor(e,n,r,s){this.#e=e,this.#t=n,this.#o=i=>{var a=Z;a.b=this,a.f|=An,r(i)},this.parent=Z.b,this.transform_error=s??this.parent?.transform_error??(i=>i),this.#r=Zn(()=>{this.#v()},qi)}#x(){try{this.#a=ze(()=>this.#o(this.#e))}catch(e){this.error(e)}}#_(e){const n=this.#t.failed,{reset:r,invoke_onerror:s}=this.#b(e);rt(s),n&&(this.#l=ze(()=>{n(this.#e,()=>e,()=>r)}))}#b(e){var n=!1,r=!1;const s=()=>{if(!this.#h()){if(n){Xs();return}n=!0,r&&si(),this.#l!==null&&wt(this.#l,()=>{this.#l=null}),this.#p(()=>{this.#v()})}};return{reset:s,invoke_onerror:()=>{if(!this.#h())try{r=!0,this.#t.onerror?.(e,s),r=!1}catch(a){Xe(a,this.#r&&this.#r.parent)}}}}#h(){return(this.#r.f&(_e|Gt))!==0}#k(){const e=this.#t.pending;e&&(this.is_pending=!0,this.#n=ze(()=>e(this.#e)),rt(()=>{if(!this.#h()){var n=this.#i=document.createDocumentFragment(),r=ct(),s=!1;if(n.append(r),this.#a=this.#p(()=>{try{return ze(()=>this.#o(r))}catch(i){try{this.error(i),s=!0}catch(a){Xe(a,this.#r.parent)}return null}}),this.#a===null){this.#i=null,s&&this.#w(J);return}this.#u===0&&(this.#e.before(n),this.#i=null,wt(this.#n,()=>{this.#n=null}),this.#w(J))}}))}#v(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#m=0,this.#a=ze(()=>{this.#o(this.#e)}),this.#u>0){var e=this.#i=document.createDocumentFragment();Jn(this.#a,e);const n=this.#t.pending;this.#n=ze(()=>n(this.#e))}else this.#w(J)}catch(n){this.error(n)}}#w(e){this.is_pending=!1,e.transfer_effects(this.#d,this.#g)}defer_effect(e){Or(e,this.#d,this.#g)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#t.pending}#p(e){var n=Z,r=W,s=be;Ze(this.#r),Ne(this.#r),zt(this.#r.ctx);try{return dt.ensure(),e()}finally{Ze(n),Ne(r),zt(s)}}#M(e,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#M(e,n);return}this.#u+=e,this.#u===0&&(this.#w(n),this.#n&&wt(this.#n,()=>{this.#n=null}),this.#i&&(this.#e.before(this.#i),this.#i=null))}update_pending_count(e,n){this.#M(e,n),this.#m+=e,!(!this.#f||this.#c)&&(this.#c=!0,rt(()=>{this.#c=!1,this.#f&&It(this.#f,this.#m)}))}get_effect_pending(){return this.#y(),l(this.#f)}error(e){if(e===Ar||!this.#t.onerror&&!this.#t.failed)throw e;J?.is_fork?(this.#a&&J.skip_effect(this.#a),this.#n&&J.skip_effect(this.#n),this.#l&&J.skip_effect(this.#l),J.oncommit(()=>{this.#h()||this.#E(e)})):this.#E(e)}#E(e){this.#a&&(Ae(this.#a),this.#a=null),this.#n&&(Ae(this.#n),this.#n=null),this.#l&&(Ae(this.#l),this.#l=null);let n=this.#t.failed;const r=s=>{if(this.#h())return;const{reset:i,invoke_onerror:a}=this.#b(s);a(),n&&!this.#h()&&(this.#l=this.#p(()=>{try{return ze(()=>{var u=Z;u.b=this,u.f|=An,n(this.#e,()=>s,()=>i)})}catch(u){return Xe(u,this.#r.parent),null}}))};rt(()=>{if(!this.#h()){var s;try{s=this.transform_error(e)}catch(i){Xe(i,this.#r&&this.#r.parent);return}s!==null&&typeof s=="object"&&typeof s.then=="function"?s.then(r,i=>Xe(i,this.#r&&this.#r.parent)):r(s)}})}}function N(t,e){var n=e==null?"":typeof e=="object"?`${e}`:e;n!==(t[Cn]??=t.nodeValue)&&(t[Cn]=n,t.nodeValue=`${n}`)}function xn(t,e){return Ui(t,e)}const rn=new Map;function Ui(t,{target:e,anchor:n,props:r={},events:s,context:i,intro:a=!0,transformError:u}){gi();var o=void 0,c=ki(()=>{var v=n??e.appendChild(ct());Di(v,{pending:()=>{}},d=>{$e({});var m=be;i&&(m.c=i),s&&(r.$$events=s),o=t(d,r)||jn(),Je()},u);var h=new Set,p=d=>{for(var m=0;m<d.length;m++){var P=d[m];if(!h.has(P)){h.add(P);var f=Fi(P);for(const y of[e,document]){var _=rn.get(y);_===void 0&&(_=new Map,rn.set(y,_));var M=_.get(P);M===void 0?(y.addEventListener(P,Nn,{passive:f}),_.set(P,1)):_.set(P,M+1)}}}};return p(pn(us)),In.add(p),()=>{for(var d of h)for(const f of[e,document]){var m=rn.get(f),P=m.get(d);--P==0?(f.removeEventListener(d,Nn),m.delete(d),m.size===0&&rn.delete(f)):m.set(d,P)}In.delete(p),v!==n&&v.parentNode?.removeChild(v)}});return Bi.set(o,c),o}let Bi=new WeakMap;class Hi{anchor;#e=new Map;#s=new Map;#t=new Map;#o=new Set;#r=!0;constructor(e,n=!0){this.anchor=e,this.#r=n}#a=e=>{if(this.#e.has(e)){var n=this.#e.get(e),r=this.#s.get(n);if(r)fn(r),this.#o.delete(n);else{var s=this.#t.get(n);s&&(fn(s.effect),this.#s.set(n,s.effect),this.#t.delete(n),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),r=s.effect)}for(const[i,a]of this.#e){if(this.#e.delete(i),i===e)break;const u=this.#t.get(a);u&&(Ae(u.effect),this.#t.delete(a))}for(const[i,a]of this.#s){if(i===n||this.#o.has(i))continue;const u=()=>{if(Array.from(this.#e.values()).includes(i)){var c=document.createDocumentFragment();Jn(a,c),c.append(ct()),this.#t.set(i,{effect:a,fragment:c})}else Ae(a);this.#o.delete(i),this.#s.delete(i)};this.#r||!r?(this.#o.add(i),wt(a,u,!1)):u()}}};#n=e=>{this.#e.delete(e);const n=Array.from(this.#e.values());for(const[r,s]of this.#t)n.includes(r)||(Ae(s.effect),this.#t.delete(r))};ensure(e,n){var r=J,s=Wr();if(n&&!this.#s.has(e)&&!this.#t.has(e))if(s){var i=document.createDocumentFragment(),a=ct();i.append(a),this.#t.set(e,{effect:ze(()=>n(a)),fragment:i})}else this.#s.set(e,ze(()=>n(this.anchor)));if(this.#e.set(r,e),s){for(const[u,o]of this.#s)u===e?r.unskip_effect(o):r.skip_effect(o);for(const[u,o]of this.#t)u===e?r.unskip_effect(o.effect):r.skip_effect(o.effect);r.oncommit(this.#a),r.ondiscard(this.#n)}else this.#a(r)}}function ge(t,e,n=!1){var r=new Hi(t),s=n?Ot:0;function i(a,u){r.ensure(a,u)}Zn(()=>{var a=!1;e((u,o=0)=>{a=!0,i(o,u)}),a||i(-1,null)},s)}function Vi(t,e){return e}function ji(t,e,n){for(var r=[],s=e.length,i,a=e.length,u=0;u<s;u++){let h=e[u];wt(h,()=>{if(i){if(i.pending.delete(h),i.done.add(h),i.pending.size===0){var p=t.outrogroups;qn(t,pn(i.done)),p.delete(i),p.size===0&&(t.outrogroups=null)}}else a-=1},!1)}if(a===0){var o=r.length===0&&n!==null&&t.pending.size===0;if(o){var c=n,v=c.parentNode;_i(v),v.append(c),t.items.clear()}qn(t,e,!o)}else i={pending:new Set(e),done:new Set},(t.outrogroups??=new Set).add(i)}function qn(t,e,n=!0){var r;if(t.pending.size>0){r=new Set;for(const a of t.pending.values())for(const u of a)r.add(t.items.get(u).e)}for(var s=0;s<e.length;s++){var i=e[s];if(r?.has(i)){i.f|=We;const a=document.createDocumentFragment();Jn(i,a)}else Ae(e[s],n)}}var lr;function Be(t,e,n,r,s,i=null){var a=t,u=new Map,o=(e&Tr)!==0;if(o){var c=t;a=c.appendChild(ct())}var v=null,h=Ir(()=>{var M=n();return wr(M)?M:M==null?[]:pn(M)}),p=new Map,d=!0;function m(M){if((_.effect.f&_e)===0){_.pending.delete(M);var y=l(h);_.fallback=v,Yi(_,y,a,e,r),v!==null&&(y.length===0?(v.f&We)===0?fn(v):(v.f^=We,Vt(v,null,a)):wt(v,()=>{v=null}))}}function P(M){_.pending.delete(M)}var f=Zn(()=>{for(var M=l(h),y=M.length,w=new Set,T=J,E=Wr(),D=0;D<y;D+=1){var ne=M[D],F=r(ne,D),L=d?null:u.get(F);L?(L.v&&It(L.v,ne),L.i&&It(L.i,D),E&&T.unskip_effect(L.e)):(L=Xi(u,d?a:lr??=ct(),ne,F,D,s,e,n),d||(L.e.f|=We),u.set(F,L)),w.add(F)}if(y===0&&i&&!v&&(d?v=ze(()=>i(a)):(v=ze(()=>i(lr??=ct())),v.f|=We)),y>w.size&&Ks(),!d)if(p.set(T,w),E){for(const[q,te]of u)w.has(q)||T.skip_effect(te.e);T.oncommit(m),T.ondiscard(P)}else m(T);l(h)}),_={effect:f,items:u,pending:p,outrogroups:null,fallback:v};d=!1}function Ut(t){for(;t!==null&&(t.f&Ve)===0;)t=t.next;return t}function Yi(t,e,n,r,s){var i=(r&Ns)!==0,a=e.length,u=t.items,o=Ut(t.effect.first),c,v=null,h,p=[],d=[],m,P,f,_;if(i)for(_=0;_<a;_+=1)m=e[_],P=s(m,_),f=u.get(P).e,(f.f&We)===0&&(f.nodes?.a?.measure(),(h??=new Set).add(f));for(_=0;_<a;_+=1){if(m=e[_],P=s(m,_),f=u.get(P).e,t.outrogroups!==null)for(const L of t.outrogroups)L.pending.delete(f),L.done.delete(f);if((f.f&Me)!==0&&(fn(f),i&&(f.nodes?.a?.unfix(),(h??=new Set).delete(f))),(f.f&We)!==0)if(f.f^=We,f===o)Vt(f,null,n);else{var M=v?v.next:o;f===t.effect.last&&(t.effect.last=f.prev),f.prev&&(f.prev.next=f.next),f.next&&(f.next.prev=f.prev),lt(t,v,f),lt(t,f,M),Vt(f,M,n),v=f,p=[],d=[],o=Ut(v.next);continue}if(f!==o){if(c!==void 0&&c.has(f)){if(p.length<d.length){var y=d[0],w;v=y.prev;var T=p[0],E=p[p.length-1];for(w=0;w<p.length;w+=1)Vt(p[w],y,n);for(w=0;w<d.length;w+=1)c.delete(d[w]);lt(t,T.prev,E.next),lt(t,v,T),lt(t,E,y),o=y,v=E,_-=1,p=[],d=[]}else c.delete(f),Vt(f,o,n),lt(t,f.prev,f.next),lt(t,f,v===null?t.effect.first:v.next),lt(t,v,f),v=f;continue}for(p=[],d=[];o!==null&&o!==f;)(c??=new Set).add(o),d.push(o),o=Ut(o.next);if(o===null)continue}(f.f&We)===0&&p.push(f),v=f,o=Ut(f.next)}if(t.outrogroups!==null){for(const L of t.outrogroups)L.pending.size===0&&(qn(t,pn(L.done)),t.outrogroups?.delete(L));t.outrogroups.size===0&&(t.outrogroups=null)}if(o!==null||c!==void 0){var D=[];if(c!==void 0)for(f of c)(f.f&Me)===0&&D.push(f);for(;o!==null;)(o.f&Me)===0&&o!==t.fallback&&D.push(o),o=Ut(o.next);var ne=D.length;if(ne>0){var F=(r&Tr)!==0&&a===0?n:null;if(i){for(_=0;_<ne;_+=1)D[_].nodes?.a?.measure();for(_=0;_<ne;_+=1)D[_].nodes?.a?.fix()}ji(t,D,F)}}i&&rt(()=>{if(h!==void 0)for(f of h)f.nodes?.a?.apply()})}function Xi(t,e,n,r,s,i,a,u){var o=(a&zs)!==0?(a&qs)===0?pi(n,!1,!1):xt(n):null,c=(a&Is)!==0?xt(s):null;return{v:o,i:c,e:ze(()=>(i(e,o??n,c??s,u),()=>{t.delete(r)}))}}function Vt(t,e,n){if(t.nodes)for(var r=t.nodes.start,s=t.nodes.end,i=e&&(e.f&We)===0?e.nodes.start:n;r!==null;){var a=en(r);if(i.before(r),r===s)return;r=a}}function lt(t,e,n){e===null?t.effect.first=n:e.next=n,n===null?t.effect.last=e:n.prev=e}const ur=[...`
\r\f \v\uFEFF`];function Wi(t,e,n){var r=t==null?"":""+t;if(e&&(r=r?r+" "+e:e),n){for(var s of Object.keys(n))if(n[s])r=r?r+" "+s:s;else if(r.length)for(var i=s.length,a=0;(a=r.indexOf(s,a))>=0;){var u=a+i;(a===0||ur.includes(r[a-1]))&&(u===r.length||ur.includes(r[u]))?r=(a===0?"":r.substring(0,a))+r.substring(u+1):a=u}}return r===""?null:r}function cr(t,e=!1){var n=e?" !important;":";",r="";for(var s of Object.keys(t)){var i=t[s];i!=null&&i!==""&&(r+=" "+s+": "+i+n)}return r}function Gi(t,e){if(e){var n="",r,s;return Array.isArray(e)?(r=e[0],s=e[1]):r=e,r&&(n+=cr(r)),s&&(n+=cr(s,!0)),n=n.trim(),n===""?null:n}return String(t)}function Ft(t,e,n,r,s,i){var a=t[Pn];if(a!==n||a===void 0){var u=Wi(n,r,i);u==null?t.removeAttribute("class"):t.className=u,t[Pn]=n}else if(i&&s!==i)for(var o in i){var c=!!i[o];(s==null||c!==!!s[o])&&t.classList.toggle(o,c)}return i}function kn(t,e={},n,r){for(var s in n){var i=n[s];e[s]!==i&&(n[s]==null?t.style.removeProperty(s):t.style.setProperty(s,i,r))}}function nt(t,e,n,r){var s=t[Fn];if(s!==e){var i=Gi(e,r);i==null?t.removeAttribute("style"):t.style.cssText=i,t[Fn]=e}else r&&(Array.isArray(r)?(kn(t,n?.[0],r[0]),kn(t,n?.[1],r[1],"important")):kn(t,n,r));return r}const Ki=Symbol("is custom element"),Zi=Symbol("is html"),$i=Os?"progress":"PROGRESS";function fr(t,e){var n=fs(t);n.value===(n.value=e??void 0)||t.value===e&&(e!==0||t.nodeName!==$i)||(t.value=e??"")}function x(t,e,n,r){var s=fs(t);s[e]!==(s[e]=n)&&(e==="loading"&&(t[Rs]=n),n==null?t.removeAttribute(e):typeof n!="string"&&Ji(t).has(e)?t[e]=n:t.setAttribute(e,n))}function fs(t){return t[Sr]??={[Ki]:t.nodeName.includes("-"),[Zi]:t.namespaceURI===js}}var dr=new Map;function Ji(t){var e=t.getAttribute("is")||t.nodeName,n=dr.get(e);if(n)return n;dr.set(e,n=new Set);for(var r,s=t,i=Element.prototype;i!==s;){r=Ms(s);for(var a in r)r[a].set&&a!=="innerHTML"&&a!=="textContent"&&a!=="innerText"&&n.add(a);s=xr(s)}return n}class Qn{#e=new WeakMap;#s;#t;static entries=new WeakMap;constructor(e){this.#t=e}observe(e,n){var r=this.#e.get(e)||new Set;return r.add(n),this.#e.set(e,r),this.#o().observe(e,this.#t),()=>{var s=this.#e.get(e);s.delete(n),s.size===0&&(this.#e.delete(e),this.#s.unobserve(e))}}#o(){return this.#s??(this.#s=new ResizeObserver(e=>{for(var n of e){Qn.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var Qi=new Qn({box:"border-box"});function ea(t,e,n){var r=Qi.observe(t,()=>n(t[e]));Zr(()=>(vt(()=>n(t[e])),r))}function Mn(t,e){return t===e||t?.[jt]===e}function ht(t=jn(),e,n,r){var s=be.r,i=Z;return Zr(()=>{var a,u;return $r(()=>{a=u,u=[],vt(()=>{Mn(n(...u),t)||(e(t,...u),a&&Mn(n(...a),t)&&e(null,...a))})}),()=>{let o=i;for(;o!==s&&o.parent!==null&&o.parent.f≫)o=o.parent;const c=()=>{u&&Mn(n(...u),t)&&e(null,...u)},v=o.teardown;o.teardown=()=>{c(),v?.()}}}),t}let sn=!1;function ta(t){var e=sn;try{return sn=!1,[t(),sn]}finally{sn=e}}function st(t,e,n,r){var s=!0,i=(n&Us)!==0,a=(n&Bs)!==0,u=r,o=!0,c=void 0,v=()=>a&&s?(c??=Kt(r),l(c)):(o&&(o=!1,u=a?vt(r):r),u);let h;if(i){var p=jt in t||Cs in t;h=At(t,e)?.set??(p&&e in t?w=>t[e]=w:void 0)}var d,m=!1;i?[d,m]=ta(()=>t[e]):d=t[e],d===void 0&&r!==void 0&&(d=v(),h&&(ei(),h(d)));var P;if(P=()=>{var w=t[e];return w===void 0?v():(o=!0,w)},(n&Ls)===0)return P;if(h){var f=t.$$legacy;return(function(w,T){return arguments.length>0?((!T||f||m)&&h(T?P():w),w):P()})}var _=!1,M=((n&Ds)!==0?Kt:Ir)(()=>(_=!1,P()));i&&l(M);var y=Z;return(function(w,T){if(arguments.length>0){const E=T?l(M):i?de(w):w;return A(M,E),_=!0,u!==void 0&&(u=E),w}return it&&_||(y.f&_e)!==0?M.v:l(M)})}function Lt(t){be===null&&Cr(),bt(()=>{const e=vt(t);if(typeof e=="function")return e})}function ds(t){be===null&&Cr(),Lt(()=>()=>vt(t))}const Dn=1,Ct={Webp:1,Jpeg:2,Rgba:3,Surface:4,Pcm:5},hn=16;function hs(t){if(t.byteLength<hn)return null;const e=new DataView(t),n=e.getUint8(8);return n<1||n>5?null:{frame:e.getUint32(0,!0),width:e.getUint16(4,!0),height:e.getUint16(6,!0),format:n,len:e.getUint32(12,!0)}}const na={[Ct.Jpeg]:"image/jpeg",[Ct.Webp]:"image/webp"};async function ra(t){const e=hs(t);if(!e||e.format===Ct.Pcm||e.format===Ct.Surface)return null;const n=new Uint8Array(t,hn,e.len);let r;if(e.format===Ct.Rgba){const s=new ImageData(new Uint8ClampedArray(n),e.width,e.height);r=await createImageBitmap(s)}else r=await createImageBitmap(new Blob([n],{type:na[e.format]}));return{header:e,image:r}}function sa(t,e,n){const r=new URL(t,n);return r.protocol==="http:"&&(r.protocol="ws:"),r.protocol==="https:"&&(r.protocol="wss:"),e&&r.searchParams.set("token",e),r.toString()}const ia=4401,vs="unauthorized";function aa(t,e,n){return Math.min(n,e*2**Math.max(0,t-1))}class oa{kind="ws";ws=null;handlers=null;attempt=0;timer=null;closed=!1;latestFrame=-1;decodeChain=Promise.resolve();url;min;max;WS;constructor(e){const n=typeof location<"u"?location.href:"http://127.0.0.1/";this.url=sa(e.url,e.token,n),this.min=e.minDelayMs??250,this.max=e.maxDelayMs??5e3,this.WS=e.WebSocketImpl??WebSocket}connect(e){this.handlers=e,this.closed=!1,this.open()}open(){const e=this.handlers;if(!e||this.closed)return;e.status(this.attempt===0?{state:"connecting"}:{state:"reconnecting",attempt:this.attempt,delayMs:0});const n=new this.WS(this.url);n.binaryType="arraybuffer",this.ws=n,n.onopen=()=>{this.attempt=0,e.status({state:"open"})},n.onmessage=r=>{if(typeof r.data=="string"){let a;try{a=JSON.parse(r.data)}catch{return}this.decodeChain=this.decodeChain.then(()=>e.event(a));return}const s=r.data,i=hs(s);if(i?.format===Ct.Pcm){const a=Math.min(s.byteLength,hn+i.len),u=s.slice(hn,a);this.decodeChain=this.decodeChain.then(()=>e.audio?.({rate:i.width,pcm:u}));return}this.decodeChain=this.decodeChain.then(async()=>{const a=await ra(s);a&&(this.latestFrame=a.header.frame,e.frame(a))})},n.onclose=r=>{if(this.ws=null,this.closed)return;if(r?.code===ia){this.closed=!0,e.status({state:"closed",reason:vs});return}this.attempt+=1;const s=aa(this.attempt,this.min,this.max);e.status({state:"reconnecting",attempt:this.attempt,delayMs:s}),this.timer=setTimeout(()=>this.open(),s)},n.onerror=()=>n.close()}send(e){this.ws?.readyState===1&&this.ws.send(JSON.stringify(e))}close(){this.closed=!0,this.timer&&clearTimeout(this.timer),this.ws?.close(),this.handlers?.status({state:"closed",reason:"closed by editor"})}get lastFrame(){return this.latestFrame}}class la{kind="mock";h=null;frame=0;playing=null;viewport={w:640,h:360};selected=null;sent=[];fps=30;size=[1920,1080];scenes=[{name:"intro",start:0,frames:60,transition:0,transition_at:0},{name:"outro",start:60,frames:60,transition:0,transition_at:0}];metas={intro:{version:1,markers:{beat:1},eases:{slide:[.65,0,.35,1]},tunables:{speed:1.5}},outro:{version:1,markers:{fade:.5},eases:{},tunables:{}}};get total(){return 120}connect(e){this.h=e,e.status({state:"connecting"}),queueMicrotask(()=>e.status({state:"open"}))}emit(e){this.h?.event(e)}inject(e){this.emit(e)}markers(){return Object.entries(this.metas).flatMap(([e,n])=>Object.entries(n.markers??{}).map(([r,s])=>({scene:e,name:r,time:s})))}timeline(){this.emit({type:"Timeline",frames:this.total,markers:this.markers(),scenes:this.scenes,audio_waveform:Array.from({length:240},(e,n)=>Math.abs(Math.sin(n/7))*.8),slides:[{scene:"intro",frame:30,notes:"Say hello."},{scene:"intro",frame:59,notes:"The square moves."},{scene:"outro",frame:119,notes:""}]})}squareX(e){return 200+e/this.total*1400}async show(){const e=this.frame;this.emit({type:"Frame",index:e});const[n,r]=this.size,s=Math.min(this.viewport.w/n,this.viewport.h/r,1),i=Math.max(1,Math.round(n*s)),a=Math.max(1,Math.round(r*s));let u=null;if(typeof OffscreenCanvas<"u"){const o=new OffscreenCanvas(i,a),c=o.getContext("2d");c.fillStyle="#141414",c.fillRect(0,0,i,a),c.fillStyle="#e13238",c.fillRect((this.squareX(e)-100)*s,440*s,200*s,200*s),c.fillStyle="#fff",c.font=`${Math.round(48*s)}px sans-serif`,c.fillText(`frame ${e}`,40*s,80*s),u=o.transferToImageBitmap()}if(u){const o={header:{frame:e,width:i,height:a,format:3,len:i*a*4},image:u};this.h?.frame(o)}if(this.selected!==null){const o=this.squareX(e);this.emit({type:"Signals",node_id:this.selected,values:[{name:"x",value:(o-960).toFixed(3)},{name:"y",value:"0.000"},{name:"fill",value:"#e13238ff"}],bounds:[o-100,440,o+100,440,o+100,640,o-100,640]})}}send(e){switch(this.sent.push(e),e.type){case"Hello":if(e.protocol_version!==Dn){this.emit({type:"Error",kind:"Incompatible",message:"protocol mismatch",spans:[]});return}this.emit({type:"Ready",protocol_version:Dn,engine_version:"mock",fps:this.fps,size:this.size,scenes:this.scenes});for(const[n,r]of Object.entries(this.metas))this.emit({type:"MetaChanged",scene:n,meta:r});this.timeline(),this.emit({type:"Tree",nodes:[{id:0,parent:null,kind:"Group",name:"view"},{id:1,parent:0,kind:"Rect",name:"square"}]}),this.show();break;case"Seek":this.frame=Math.max(0,Math.min(this.total-1,e.frame)),this.show();break;case"Step":this.stopPlayback(),this.frame=Math.max(0,Math.min(this.total-1,this.frame+e.delta)),this.emit({type:"Playback",playing:!1,frame:this.frame}),this.show();break;case"Play":this.stopPlayback(),this.emit({type:"Playback",playing:!0,frame:this.frame}),this.playing=setInterval(()=>{this.frame=(this.frame+1)%this.total,this.show()},1e3/this.fps);break;case"Pause":this.stopPlayback(),this.emit({type:"Playback",playing:!1,frame:this.frame});break;case"SetViewport":this.viewport={w:e.w*e.dpr,h:e.h*e.dpr},this.show();break;case"SetMarker":{const n=e.scene??Object.keys(this.metas).find(s=>e.name in(this.metas[s]?.markers??{})),r=n?this.metas[n]:void 0;if(!n||!r){this.emit({type:"Error",kind:"Meta",message:`no marker named \`${e.name}\``,spans:[]});return}r.markers={...r.markers,[e.name]:e.time},this.emit({type:"MetaChanged",scene:n,meta:r}),this.timeline(),this.show();break}case"SetEase":case"SetTunable":{const n=this.metas.intro;e.type==="SetEase"?n.eases={...n.eases,[e.name]:e.value}:n.tunables={...n.tunables,[e.name]:e.value},this.emit({type:"MetaChanged",scene:"intro",meta:n}),this.show();break}case"Pick":{const n=this.squareX(this.frame),r=Math.abs(e.x-n)<=100&&Math.abs(e.y-540)<=100;this.selected=r?1:null,this.emit({type:"Selected",node_id:this.selected}),this.show();break}case"Select":this.selected=e.node_id??null,this.emit({type:"Selected",node_id:this.selected}),this.show();break;case"SetTransition":{const n=this.scenes.find(r=>r.name===e.scene);if(!n){this.emit({type:"Error",kind:"Meta",message:`no scene named \`${e.scene}\``,spans:[]});return}n.transition=Math.max(0,Math.round(e.seconds*this.fps)),this.timeline(),this.show();break}}}stopPlayback(){this.playing!==null&&clearInterval(this.playing),this.playing=null}close(){this.stopPlayback(),this.h?.status({state:"closed",reason:"closed"})}}const ua="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(ua);const ca={"app.title":"oxframe","conn.connecting":"Connecting…","conn.open":"Connected","conn.reconnecting":"Reconnecting…","conn.closed":"Disconnected","conn.unauthorized":"Link expired: open the URL printed by `oxframe dev`","status.building":"Building…","status.reloaded":"Reloaded","status.incompatible":"Version mismatch","error.build":"Build failed","error.runtime":"Runtime error","error.meta":"Could not apply the edit","error.incompatible":"Incompatible versions","error.dismiss":"Dismiss","error.previous":"The previous version keeps running.","transport.play":"Play (Space)","transport.pause":"Pause (Space)","transport.prev":"Previous frame (←, Shift+← for 10)","transport.next":"Next frame (→, Shift+→ for 10)","transport.start":"Go to start (Home)","transport.end":"Go to end (End)","timeline.label":"Timeline","timeline.marker":"Marker {name} at {time} s. Drag or use ←/→ to move.","timeline.addMarker":"Add marker at playhead (M)","timeline.transition":"Transition into {name}, {seconds} s. Drag the right edge to change it.","timeline.soundtrack":"Soundtrack {name}","inspector.tree":"Scene","inspector.signals":"Signals","inspector.noSelection":"Click a node in the viewport or the tree.","inspector.tunables":"Tunables","inspector.eases":"Eases","inspector.none":"None yet — use tune!() and ease!() in your scene.","curve.title":"Ease “{name}”","curve.presets":"Presets","curve.close":"Close","viewport.label":"Preview","viewport.axes":"Axes","viewport.fit":"Fit (double-click)","theme.toggle":"Toggle light/dark theme","help.title":"Shortcuts","help.keys":"Space play/pause · ←/→ step · Shift+←/→ 10 frames · Home/End · M marker · wheel zoom · Alt/middle-drag pan"},fa=ca;function R(t,e={}){return fa[t].replace(/\{(\w+)\}/g,(n,r)=>String(e[r]??`{${r}}`))}var da=ee('<span class="chip ok svelte-yic9pk" data-testid="reloaded"> </span>'),ha=ee('<span class="dim svelte-yic9pk"> </span>'),va=ee('<header class="svelte-yic9pk"><strong class="logo svelte-yic9pk"> </strong> <span role="status" aria-live="polite" data-testid="status"><span class="dot svelte-yic9pk" aria-hidden="true"></span> </span> <!> <span class="spacer svelte-yic9pk"></span> <!> <button> </button> <button>1:1</button> <button> </button> <span class="help svelte-yic9pk">?</span></header>');function pa(t,e){$e(e,!0);let n=st(e,"editor",7);const r=ve(()=>{const w=n().connection;if(n().error?.kind==="Incompatible")return{cls:"bad",text:R("status.incompatible")};if(n().building)return{cls:"busy",text:R("status.building")};switch(w.state){case"open":return{cls:"ok",text:R("conn.open")};case"connecting":return{cls:"busy",text:R("conn.connecting")};case"reconnecting":return{cls:"busy",text:R("conn.reconnecting")};default:return{cls:"bad",text:w.reason===vs?R("conn.unauthorized"):R("conn.closed")}}});let s=z(!1);bt(()=>{if(!n().reloadedAt)return;A(s,!0);const w=setTimeout(()=>A(s,!1),1500);return()=>clearTimeout(w)});var i=va(),a=H(i),u=B(a,!0),o=k(a,2),c=k(H(o),1,!0),v=k(o,2);{var h=w=>{var T=da(),E=B(T,!0);Q(D=>N(E,D),[()=>R("status.reloaded")]),G(w,T)};ge(v,w=>{l(s)&&w(h)})}var p=k(v,4);{var d=w=>{var T=ha(),E=B(T);Q(()=>N(E,`engine ${n().engineVersion??""} · ${n().size[0]??""}×${n().size[1]??""} · ${n().fps??""} fps`)),G(w,T)};ge(p,w=>{n().engineVersion&&w(d)})}var m=k(p,2),P=B(m,!0),f=k(m,2),_=k(f,2),M=B(_,!0),y=k(_,2);Q((w,T,E,D,ne,F,L,q)=>{N(u,w),Ft(o,1,`chip ${l(r).cls??""}`,"svelte-yic9pk"),N(c,l(r).text),x(m,"aria-pressed",n().showAxes),x(m,"title",T),N(P,E),x(f,"title",D),x(_,"title",ne),x(_,"aria-label",F),N(M,e.theme==="dark"?"☾":"☀"),x(y,"title",L),x(y,"aria-label",q)},[()=>R("app.title"),()=>R("viewport.axes"),()=>R("viewport.axes"),()=>R("viewport.fit"),()=>R("theme.toggle"),()=>R("theme.toggle"),()=>R("help.keys"),()=>R("help.keys")]),V("click",m,()=>n().showAxes=!n().showAxes),V("click",f,()=>n().resetView()),V("click",_,function(...w){e.onToggleTheme?.apply(this,w)}),G(t,i),Je()}pt(["click"]);function Ln(t,e,n,r,s){const a=Math.min(e.w/t[0],e.h/t[1])*n;return{scale:a,ox:e.w/2-t[0]*a/2+r,oy:e.h/2-t[1]*a/2+s}}function ps(t,e,n){return[(e-t.ox)/t.scale,(n-t.oy)/t.scale]}function Un(t,e,n){return[t.ox+e*t.scale,t.oy+n*t.scale]}function ma(t,e,n,r,s,i,a,u){const o=Ln(t,e,n,r,s),[c,v]=ps(o,a,u),h=Ln(t,e,i,0,0),[p,d]=Un(h,c,v);return{panX:a-p,panY:u-d}}var ga=ee('<div class="viewport svelte-10js0q2" data-testid="viewport"><canvas class="svelte-10js0q2"></canvas> <span class="zoom svelte-10js0q2" aria-live="off"> </span></div>');function _a(t,e){$e(e,!0);let n,r,s=z(de({w:0,h:0}));const i=ve(()=>Ln(e.editor.size,l(s),e.editor.zoom,e.editor.panX,e.editor.panY));Lt(()=>{const f=new ResizeObserver(([_])=>{if(!_)return;const{width:M,height:y}=_.contentRect;A(s,{w:Math.round(M),h:Math.round(y)},!0),e.editor.setViewport(l(s).w,l(s).h)});return f.observe(n),()=>f.disconnect()}),bt(()=>{const f=r?.getContext("2d");if(!f)return;const _=typeof devicePixelRatio=="number"?devicePixelRatio:1,{w:M,h:y}=l(s);(r.width!==Math.round(M*_)||r.height!==Math.round(y*_))&&(r.width=Math.round(M*_),r.height=Math.round(y*_)),f.setTransform(_,0,0,_,0,0),f.clearRect(0,0,M,y);const[w,T]=e.editor.size,E=l(i),D=e.editor.image;f.fillStyle="#000",f.fillRect(E.ox,E.oy,w*E.scale,T*E.scale),D&&(f.imageSmoothingQuality="high",f.drawImage(D,E.ox,E.oy,w*E.scale,T*E.scale));const ne=getComputedStyle(n).getPropertyValue("--m-accent")||"#6cb2eb";if(e.editor.showAxes){const[L,q]=Un(E,w/2,T/2);f.strokeStyle="rgba(255,255,255,0.25)",f.lineWidth=1,f.setLineDash([4,4]),f.beginPath(),f.moveTo(E.ox,q+.5),f.lineTo(E.ox+w*E.scale,q+.5),f.moveTo(L+.5,E.oy),f.lineTo(L+.5,E.oy+T*E.scale),f.stroke(),f.setLineDash([])}const F=e.editor.bounds;if(F&&e.editor.selected!==null){f.strokeStyle=ne,f.lineWidth=2,f.beginPath();for(let L=0;L<4;L++){const[q,te]=Un(E,F[2*L],F[2*L+1]);L===0?f.moveTo(q,te):f.lineTo(q,te)}f.closePath(),f.stroke()}});let a=null;function u(f){const _=r.getBoundingClientRect();return[f.clientX-_.left,f.clientY-_.top]}function o(f){r.setPointerCapture(f.pointerId),a={x:f.clientX,y:f.clientY,px:e.editor.panX,py:e.editor.panY,moved:!1}}function c(f){if(!a)return;const _=f.clientX-a.x,M=f.clientY-a.y;Math.abs(_)+Math.abs(M)>3&&(a.moved=!0),a.moved&&(f.altKey||f.buttons===4||f.buttons===2)&&e.editor.setZoom(e.editor.zoom,a.px+_,a.py+M)}function v(f){const _=a;if(a=null,!_||_.moved||f.button!==0)return;const[M,y]=u(f),[w,T]=ps(l(i),M,y),[E,D]=e.editor.size;if(w<0||T<0||w>E||T>D){e.editor.select(null);return}e.editor.pick(w,T)}function h(f){f.preventDefault();const[_,M]=u(f),y=Math.exp(-f.deltaY*.0015),w=Math.max(.1,Math.min(16,e.editor.zoom*y)),T=ma(e.editor.size,l(s),e.editor.zoom,e.editor.panX,e.editor.panY,w,_,M);e.editor.setZoom(w,T.panX,T.panY)}var p=ga(),d=H(p);ht(d,f=>r=f,()=>r);var m=k(d,2),P=B(m);ht(p,f=>n=f,()=>n),Q(f=>{x(d,"data-frame",e.editor.imageFrame),x(d,"aria-label",`frame ${e.editor.imageFrame??""}`),N(P,`${f??""}%`)},[()=>Math.round(e.editor.zoom*100)]),V("pointerdown",d,o),V("pointermove",d,c),V("pointerup",d,v),nn("wheel",d,h),V("dblclick",d,()=>e.editor.resetView()),V("contextmenu",d,f=>f.preventDefault()),G(t,p),Je()}pt(["pointerdown","pointermove","pointerup","dblclick","contextmenu"]);const Tt=48e3,ba=.45,wa=.25,hr=.89;function vn(t){const e=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return e>=0?t.slice(e+1):t}function vr(t){const e=vn(t);return/^[A-Za-z0-9._-]+\.(wav|mp3|ogg|flac)$/.test(e)?`/audio/${e}`:null}function En(t,e){return String.fromCharCode(t.getUint8(e),t.getUint8(e+1),t.getUint8(e+2),t.getUint8(e+3))}function ya(t){if(t.byteLength<44)return null;const e=new DataView(t);if(En(e,0)!=="RIFF"||En(e,8)!=="WAVE")return null;let n=12,r=0,s=0,i=0,a=0,u=null;for(;n+8<=e.byteLength;){const p=En(e,n),d=e.getUint32(n+4,!0),m=n+8;if(m+d>e.byteLength)break;p==="fmt "&&d>=16?(r=e.getUint16(m,!0),s=e.getUint16(m+2,!0),i=e.getUint32(m+4,!0),a=e.getUint16(m+14,!0)):p==="data"&&(u=t.slice(m,m+d)),n=m+d+d%2}if(r!==1||!u||s<1||i<1||a!==16&&a!==8)return null;const o=a/8,c=Math.floor(u.byteLength/(o*s)),v=new Float32Array(c),h=new DataView(u);for(let p=0;p<c;p++){let d=0;for(let m=0;m<s;m++){const P=(p*s+m)*o;d+=a===16?h.getInt16(P,!0)/32768:(h.getUint8(P)-128)/128}v[p]=d/s}return{rate:i,samples:v}}function xa(t,e){const n=Math.max(1,Math.ceil(Math.max(0,e)*Tt)),r=new Float32Array(n),s=new Uint8Array(n);for(const a of t)a.priority&&pr(a,n,u=>{s[u]=1});for(const a of t)pr(a,n,(u,o)=>{const c=a.music?ba*(s[u]?wa:1):1;r[u]=(r[u]??0)+o*c});let i=0;for(let a=0;a<n;a++)i=Math.max(i,Math.abs(r[a]??0));if(i>hr){const a=hr/i;for(let u=0;u<n;u++)r[u]=(r[u]??0)*a}return r}function pr(t,e,n){const r=Math.round(t.start*Tt),s=t.seconds>0?Math.round(t.seconds*Tt):Math.ceil(t.samples.length*Tt/Math.max(1,t.rate)),i=t.rate/Tt;for(let a=0;a<s;a++){const u=r+a;if(u<0||u>=e)continue;const o=Math.floor(a*i);if(o>=t.samples.length)break;n(u,t.samples[o]??0)}}const mr=new Map;function ka(t){const e=mr.get(t);if(e)return e;const n=(async()=>{try{const r=await fetch(t);return r.ok?ya(await r.arrayBuffer()):null}catch{return null}})();return mr.set(t,n),n}function Ma(t,e){const n=Math.max(1,e),r=new Array(n).fill(0);if(t.length===0)return r;for(let s=0;s<n;s++){const i=Math.floor(s*t.length/n),a=Math.max(i+1,Math.floor((s+1)*t.length/n));let u=0;for(let o=i;o<a&&o<t.length;o++)u=Math.max(u,Math.abs(t[o]??0));r[s]=u}return r}const ms="oxframe-editor-view";function Ea(t){const e=new URLSearchParams(t.replace(/^#/,"")),n=o=>{const c=e.get(o);if(c===null||c==="")return;const v=Number(c);return Number.isFinite(v)?v:void 0},r={},s=n("f");s!==void 0&&(r.frame=Math.max(0,Math.round(s)));const i=n("z");i!==void 0&&i>0&&(r.zoom=i);const a=n("px");a!==void 0&&(r.panX=a);const u=n("py");if(u!==void 0&&(r.panY=u),e.has("s")){const o=n("s");r.selected=o===void 0?null:o}return r}function Sa(t){const e=new URLSearchParams;return e.set("f",String(t.frame)),t.zoom!==1&&e.set("z",t.zoom.toFixed(3)),(t.panX!==0||t.panY!==0)&&(e.set("px",t.panX.toFixed(1)),e.set("py",t.panY.toFixed(1))),t.selected!==null&&e.set("s",String(t.selected)),`#${e.toString()}`}function Ta(){let t={};try{t=JSON.parse(sessionStorage.getItem(ms)??"{}")}catch{t={}}return{...t,...Ea(typeof location>"u"?"":location.hash)}}function Aa(t){try{sessionStorage.setItem(ms,JSON.stringify(t))}catch{}typeof history<"u"&&history.replaceState(history.state,"",`${location.pathname}${location.search}${Sa(t)}`)}class Pa{constructor(e,n={}){if(this.backend=e,this.persistEnabled=n.persist??!0,this.uiVersion=n.uiVersion??"0.1.0",this.persistEnabled){const r=Ta();this.restoredFrame=r.frame??null,this.zoom=r.zoom??1,this.panX=r.panX??0,this.panY=r.panY??0,this.selected=r.selected??null}}backend;#e=z(de({state:"connecting"}));get connection(){return l(this.#e)}set connection(e){A(this.#e,e,!0)}#s=z(!1);get ready(){return l(this.#s)}set ready(e){A(this.#s,e,!0)}#t=z("");get engineVersion(){return l(this.#t)}set engineVersion(e){A(this.#t,e,!0)}#o=z(60);get fps(){return l(this.#o)}set fps(e){A(this.#o,e,!0)}#r=z(de([1920,1080]));get size(){return l(this.#r)}set size(e){A(this.#r,e,!0)}#a=z(0);get frames(){return l(this.#a)}set frames(e){A(this.#a,e,!0)}#n=z(0);get frame(){return l(this.#n)}set frame(e){A(this.#n,e,!0)}#l=z(!1);get playing(){return l(this.#l)}set playing(e){A(this.#l,e,!0)}#i=z(de([]));get scenes(){return l(this.#i)}set scenes(e){A(this.#i,e,!0)}#m=z(de([]));get markers(){return l(this.#m)}set markers(e){A(this.#m,e,!0)}#u=z(null);get waveform(){return l(this.#u)}set waveform(e){A(this.#u,e)}#c=z(de([]));get clips(){return l(this.#c)}set clips(e){A(this.#c,e,!0)}#d=z(de([]));get slides(){return l(this.#d)}set slides(e){A(this.#d,e,!0)}#g=z(de({}));get metas(){return l(this.#g)}set metas(e){A(this.#g,e,!0)}#f=z(de([]));get tree(){return l(this.#f)}set tree(e){A(this.#f,e,!0)}#y=z(null);get selected(){return l(this.#y)}set selected(e){A(this.#y,e,!0)}#x=z(de([]));get signals(){return l(this.#x)}set signals(e){A(this.#x,e,!0)}#_=z(null);get bounds(){return l(this.#_)}set bounds(e){A(this.#_,e,!0)}#b=z(!1);get building(){return l(this.#b)}set building(e){A(this.#b,e,!0)}#h=z(0);get reloadedAt(){return l(this.#h)}set reloadedAt(e){A(this.#h,e,!0)}#k=z(null);get error(){return l(this.#k)}set error(e){A(this.#k,e,!0)}#v=z(null);get image(){return l(this.#v)}set image(e){A(this.#v,e)}#w=z(-1);get imageFrame(){return l(this.#w)}set imageFrame(e){A(this.#w,e,!0)}#p=z(1);get zoom(){return l(this.#p)}set zoom(e){A(this.#p,e,!0)}#M=z(0);get panX(){return l(this.#M)}set panX(e){A(this.#M,e,!0)}#E=z(0);get panY(){return l(this.#E)}set panY(e){A(this.#E,e,!0)}#S=z(!0);get showAxes(){return l(this.#S)}set showAxes(e){A(this.#S,e,!0)}viewport={w:0,h:0};#T=z(null);get selectedMarker(){return l(this.#T)}set selectedMarker(e){A(this.#T,e,!0)}#A=z(null);get editingEase(){return l(this.#A)}set editingEase(e){A(this.#A,e,!0)}restoredFrame=null;persistEnabled;uiVersion;pcm=null;pcmFromEngine=!1;audioGen=0;audioCtx=null;audioNode=null;start(){this.backend.connect({event:e=>this.handle(e),frame:e=>this.onFrame(e),status:e=>this.onStatus(e),audio:e=>this.onPcm(e)})}stop(){this.backend.close()}send(e){this.backend.send(e)}onStatus(e){this.connection=e,e.state==="open"?this.send({type:"Hello",protocol_version:Dn,ui_version:this.uiVersion}):(this.ready=!1,this.playing=!1,this.stopAudio())}onFrame(e){this.image?.close?.(),this.image=e.image,this.imageFrame=e.header.frame}handle(e){switch(e.type){case"Ready":this.ready=!0,this.engineVersion=e.engine_version,this.fps=e.fps,this.size=e.size,this.scenes=e.scenes,this.building=!1,this.error?.kind==="Incompatible"&&(this.error=null),this.resync();break;case"Reloaded":this.reloadedAt=Date.now(),this.building=!1,this.error=null,this.stopAudio(),this.pcm=null,this.pcmFromEngine=!1,this.audioGen++,this.waveform=null,this.clips=[],this.resync();break;case"Building":this.building=!0;break;case"Error":this.building=!1,this.error={kind:e.kind,message:e.message,spans:e.spans??[]};break;case"Frame":this.playing&&e.index<this.frame&&this.startAudio(e.index),this.frame=e.index,this.savePersist();break;case"Playback":this.playing=e.playing,this.frame=e.frame,e.playing?this.startAudio(e.frame):this.stopAudio();break;case"Timeline":this.frames=e.frames,this.markers=e.markers,this.scenes=e.scenes,this.clips=e.audio_clips??[],this.slides=e.slides??[],e.audio_waveform&&(this.waveform=e.audio_waveform),this.loadHostedAudio();break;case"Tree":this.tree=e.nodes;break;case"Signals":e.node_id===this.selected&&(this.signals=e.values,this.bounds=e.bounds??null);break;case"Selected":this.selected=e.node_id,e.node_id===null&&(this.signals=[],this.bounds=null),this.savePersist();break;case"MetaChanged":this.metas={...this.metas,[e.scene]:e.meta},this.error?.kind==="Meta"&&(this.error=null),this.loadHostedAudio();break}}resync(){this.viewport.w>0&&this.sendViewport();const e=this.restoredFrame??this.frame;this.restoredFrame=null,this.frame=e,this.send({type:"Seek",frame:e}),this.selected!==null&&this.send({type:"Select",node_id:this.selected})}restart(){this.pause(),this.playing=!1,this.restoredFrame=0,this.seek(0),this.savePersist()}get lastFrame(){return Math.max(0,this.frames-1)}seek(e){const n=Math.max(0,Math.min(this.lastFrame,Math.round(e)));this.frame=n,this.send({type:"Seek",frame:n}),this.playing&&this.startAudio(n)}onPcm(e){const n=new Int16Array(e.pcm),r=new Float32Array(n.length);for(let s=0;s<n.length;s++)r[s]=(n[s]??0)/32768;this.pcmFromEngine=!0,this.audioGen++,this.pcm={rate:e.rate,samples:r},this.playing&&this.startAudio(this.frame)}async loadHostedAudio(){if(this.pcmFromEngine||this.frames<=0||typeof fetch!="function")return;const e=this.hostedPlan();if(e.length===0)return;const n=++this.audioGen,r=new Map;for(const u of e){const o=vr(u.file);if(!o||r.has(o))continue;const c=await ka(o);c&&r.set(o,c)}if(n!==this.audioGen||this.pcmFromEngine)return;const s=[];for(const u of e){const o=r.get(vr(u.file)??"");o&&s.push({samples:o.samples,rate:o.rate,start:u.start,seconds:u.seconds,music:u.music,priority:u.priority})}if(s.length===0)return;const i=this.frames/Math.max(1,this.fps),a=xa(s,i);this.pcm={rate:Tt,samples:a},(!this.waveform||this.waveform.length===0)&&(this.waveform=Ma(a,Math.min(this.frames,4096))),this.playing&&this.startAudio(this.frame)}hostedPlan(){const e=[],n=new Set;for(const r of Object.values(this.metas)){const s=r.audio?.file;if(!s)continue;const i=vn(s);n.has(i)||(n.add(i),e.push({file:s,start:r.audio?.offset??0,seconds:0,music:!0,priority:!1}))}for(const r of this.clips)r.text||e.push({file:r.name,start:r.start,seconds:r.seconds,music:!1,priority:r.priority});return e}startAudio(e){this.stopAudio();const n=this.pcm;if(!n||n.samples.length===0||typeof AudioContext>"u")return;this.audioCtx??=new AudioContext;const r=this.audioCtx.createBuffer(1,n.samples.length,n.rate);r.getChannelData(0).set(n.samples);const s=this.audioCtx.createBufferSource();s.buffer=r,s.connect(this.audioCtx.destination);const i=Math.max(0,Math.min(r.duration,e/Math.max(1,this.fps)));s.start(0,i),this.audioNode=s}stopAudio(){const e=this.audioNode;if(this.audioNode=null,!!e)try{e.stop()}catch{}}play(){this.send({type:"Play"})}pause(){this.send({type:"Pause"})}togglePlay(){this.playing?this.pause():this.play()}step(e){this.send({type:"Step",delta:e})}setViewport(e,n){this.viewport={w:e,h:n},this.sendViewport()}sendViewport(){const e=typeof devicePixelRatio=="number"?devicePixelRatio:1;this.send({type:"SetViewport",w:Math.max(1,Math.round(this.viewport.w*this.zoom)),h:Math.max(1,Math.round(this.viewport.h*this.zoom)),dpr:e})}setZoom(e,n=this.panX,r=this.panY){const s=Math.max(.1,Math.min(16,e)),i=Math.abs(s-this.zoom)>1e-6;this.zoom=s,this.panX=n,this.panY=r,i&&this.viewport.w>0&&this.sendViewport(),this.savePersist()}resetView(){this.setZoom(1,0,0)}sceneStart(e){const n=this.scenes.find(r=>r.name===e);return n?n.start/this.fps:0}sceneAt(e){return[...this.scenes].reverse().find(n=>n.start<=e)??this.scenes[0]}markerFrame(e){return Math.round((this.sceneStart(e.scene)+e.time)*this.fps)}moveMarker(e,n,r){const s=Math.max(0,r/this.fps-this.sceneStart(e));this.send({type:"SetMarker",name:n,time:Number(s.toFixed(6)),scene:e})}markerAtPlayhead(){const e=this.sceneAt(this.frame);if(!e)return;if(this.selectedMarker){this.moveMarker(this.selectedMarker.scene,this.selectedMarker.name,this.frame);return}const n=new Set(this.markers.filter(i=>i.scene===e.name).map(i=>i.name));let r=1;for(;n.has(`marker-${r}`);)r+=1;const s=`marker-${r}`;this.moveMarker(e.name,s,this.frame),this.selectedMarker={scene:e.name,name:s}}setEase(e,n){this.send({type:"SetEase",name:e,value:n})}setTunable(e,n){this.send({type:"SetTunable",name:e,value:n})}setTransition(e,n){this.send({type:"SetTransition",scene:e,seconds:Number(Math.max(0,n).toFixed(6))})}pick(e,n){this.send({type:"Pick",x:e,y:n})}select(e){this.selected=e,this.send({type:"Select",node_id:e})}dismissError(){this.error=null}savePersist(){this.persistEnabled&&Aa({frame:this.frame,zoom:this.zoom,panX:this.panX,panY:this.panY,selected:this.selected})}}function gr(t,e){const n=t/Math.max(1,e),r=Math.floor(n/60),s=Math.floor(n%60),i=t%Math.max(1,e);return`${r}:${String(s).padStart(2,"0")}.${String(i).padStart(2,"0")}`}var Fa=ee('<div class="transition svelte-112n2zp"><button class="trim svelte-112n2zp"></button></div>'),Ca=ee('<div class="scene svelte-112n2zp"><span> </span></div> <!>',1),Ra=ee('<div class="clip music svelte-112n2zp" data-testid="audio-track"><span class="svelte-112n2zp"> </span></div>'),Oa=ee('<div data-testid="audio-clip"><span class="svelte-112n2zp"> </span></div>'),za=ee('<button><span class="flag svelte-112n2zp"> </span></button>'),Ia=ee('<section class="timeline svelte-112n2zp"><div class="transport svelte-112n2zp"><button>⏮</button> <button>◀︎</button> <button class="play svelte-112n2zp" data-testid="play"> </button> <button>▶︎</button> <button>⏭</button> <span class="time svelte-112n2zp" data-testid="time"> </span> <span class="frame svelte-112n2zp" data-testid="frame"> </span> <span class="spacer svelte-112n2zp"></span> <button>+ M</button></div> <div role="slider" tabindex="0" data-testid="track"><div class="scenes svelte-112n2zp"></div> <!> <!> <canvas class="wave svelte-112n2zp" aria-hidden="true"></canvas> <!> <div class="playhead svelte-112n2zp" aria-hidden="true"></div></div></section>');function Na(t,e){$e(e,!0);let n=st(e,"editor",7),r,s,i=z(0);const a=ve(()=>Math.max(1,n().frames)),u=ve(()=>{const b=[],g=new Set;for(const $ of Object.values(n().metas)){const ae=$.audio?.file;if(!ae)continue;const X=vn(ae);g.has(X)||(g.add(X),b.push({name:X,file:ae,start:$.audio?.offset??0}))}return b}),o=b=>b/Math.max(1,l(a)-1)*l(i),c=b=>{const g=r.getBoundingClientRect(),$=Math.min(1,Math.max(0,(b-g.left)/Math.max(1,g.width)));return Math.round($*(l(a)-1))};let v=!1,h=null;function p(b){h=b,requestAnimationFrame(()=>{h!==null&&n().seek(h),h=null})}function d(b){const g=b.target;g.dataset.marker||g.closest("[data-transition]")||(v=!0,r.setPointerCapture(b.pointerId),n().playing&&n().pause(),p(c(b.clientX)))}function m(b){v&&p(c(b.clientX))}function P(){v=!1}let f=z(null);const _=b=>l(f)&&l(f).m.name===b.name&&l(f).m.scene===b.scene?l(f).frame:n().markerFrame(b);function M(b,g){b.stopPropagation(),b.target.setPointerCapture(b.pointerId),n().selectedMarker={scene:g.scene,name:g.name},A(f,{m:g,frame:n().markerFrame(g)},!0)}function y(b){l(f)&&A(f,{...l(f),frame:c(b.clientX)},!0)}function w(){if(!l(f))return;const{m:b,frame:g}=l(f);A(f,null),g!==n().markerFrame(b)&&n().moveMarker(b.scene,b.name,g)}function T(b,g){const $=b.key==="ArrowLeft"?-1:b.key==="ArrowRight"?1:0;$?(b.preventDefault(),n().moveMarker(g.scene,g.name,n().markerFrame(g)+$*(b.shiftKey?10:1))):b.key==="Enter"&&n().seek(n().markerFrame(g))}let E=z(null);const D=b=>l(E)&&l(E).name===b.name?l(E).frames:b.transition??0;function ne(b,g){b.stopPropagation(),b.currentTarget.setPointerCapture(b.pointerId),A(E,{name:g.name,frames:g.transition??0},!0)}function F(b,g){if(!l(E)||l(E).name!==g.name)return;const $=g.start+(g.transition_at??0);A(E,{name:g.name,frames:Math.max(0,c(b.clientX)-$)},!0)}function L(b){if(!l(E)||l(E).name!==b.name)return;const g=l(E).frames;A(E,null),g!==(b.transition??0)&&n().setTransition(b.name,g/n().fps)}bt(()=>{const b=n().waveform,g=s?.getContext("2d");if(!g)return;const $=devicePixelRatio||1,ae=28;if(s.width=Math.max(1,Math.round(l(i)*$)),s.height=Math.round(ae*$),g.setTransform($,0,0,$,0,0),g.clearRect(0,0,l(i),ae),!b||b.length===0)return;g.fillStyle=getComputedStyle(s).getPropertyValue("--m-wave")||"#4b5563";const X=b.length;for(let pe=0;pe<l(i);pe++){const xe=b[Math.min(X-1,Math.floor(pe/l(i)*X))]??0,Ee=Math.max(xe>.02?2:1,Math.pow(xe,.55)*ae);g.fillRect(pe,(ae-Ee)/2,1,Ee)}});var q=Ia(),te=H(q),Re=H(te),Pe=k(Re,2),je=k(Pe,2),ot=B(je,!0),Ye=k(je,2),Qe=k(Ye,2),S=k(Qe,2),C=B(S,!0),O=k(S,2),Y=B(O),re=k(O,4),j=k(te,2);let ce;x(j,"aria-valuemin",0);var we=H(j);Be(we,21,()=>n().scenes,b=>b.name,(b,g)=>{var $=Ca(),ae=Xr($);let X;var pe=H(ae),xe=B(pe,!0),Ee=k(ae,2);{var qe=Fe=>{var Se=Fa();let Mt;var et=B(Se);Q((mt,gn,ys,xs)=>{x(Se,"data-transition",l(g).name),x(Se,"data-testid",`transition-${l(g).name??""}`),x(Se,"title",mt),Mt=nt(Se,"",Mt,{left:gn,width:ys}),x(et,"data-transition",l(g).name),x(et,"aria-label",xs)},[()=>R("timeline.transition",{name:l(g).name,seconds:(D(l(g))/n().fps).toFixed(2)}),()=>`${o(l(g).start+(l(g).transition_at??0))??""}px`,()=>`${Math.max(8,o(l(g).start+(l(g).transition_at??0)+D(l(g)))-o(l(g).start+(l(g).transition_at??0)))}px`,()=>R("timeline.transition",{name:l(g).name,seconds:(D(l(g))/n().fps).toFixed(2)})]),V("pointerdown",et,mt=>ne(mt,l(g))),V("pointermove",et,mt=>F(mt,l(g))),V("pointerup",et,()=>L(l(g))),G(Fe,Se)},ke=ve(()=>D(l(g))>0);ge(Ee,Fe=>{l(ke)&&Fe(qe)})}Q((Fe,Se)=>{x(ae,"title",l(g).name),X=nt(ae,"",X,{left:Fe,width:Se}),N(xe,l(g).name)},[()=>`${o(l(g).start)??""}px`,()=>`${Math.max(0,o(l(g).start+l(g).frames-1)-o(l(g).start))}px`]),G(b,$)});var me=k(we,2);Be(me,17,()=>l(u),b=>b.name,(b,g,$,ae)=>{var X=Ra();let pe;var xe=H(X),Ee=B(xe,!0);Q((qe,ke,Fe)=>{x(X,"title",qe),pe=nt(X,"",pe,{left:ke,width:Fe}),N(Ee,l(g).name)},[()=>R("timeline.soundtrack",{name:l(g).file}),()=>`${o(l(g).start*n().fps)??""}px`,()=>`${Math.max(2,l(i)-o(l(g).start*n().fps))}px`]),G(b,X)});var I=k(me,2);Be(I,19,()=>n().clips,(b,g)=>b.name+":"+g,(b,g)=>{var $=Oa();let ae,X;var pe=H($),xe=B(pe,!0);Q((Ee,qe,ke)=>{ae=Ft($,1,"clip svelte-112n2zp",null,ae,{effect:l(u).length>0,priority:l(g).priority}),x($,"title",l(g).text??l(g).name),X=nt($,"",X,{left:Ee,width:qe}),N(xe,ke)},[()=>`${o(l(g).start*n().fps)??""}px`,()=>`${Math.max(2,o((l(g).start+l(g).seconds)*n().fps)-o(l(g).start*n().fps))}px`,()=>l(g).text??vn(l(g).name)]),G(b,$)});var U=k(I,2);let K;ht(U,b=>s=b,()=>s);var le=k(U,2);Be(le,17,()=>n().markers,b=>b.scene+"/"+b.name,(b,g)=>{const $=ve(()=>_(l(g))),ae=ve(()=>n().selectedMarker?.name===l(g).name&&n().selectedMarker?.scene===l(g).scene);var X=za();let pe,xe;var Ee=H(X),qe=B(Ee,!0);Q((ke,Fe,Se)=>{pe=Ft(X,1,"marker svelte-112n2zp",null,pe,{selected:l(ae)}),x(X,"data-marker",l(g).name),x(X,"data-testid",`marker-${l(g).name??""}`),x(X,"aria-label",ke),x(X,"title",`${l(g).name??""} · ${Fe??""} s`),xe=nt(X,"",xe,{left:Se}),N(qe,l(g).name)},[()=>R("timeline.marker",{name:l(g).name,time:(l($)/n().fps).toFixed(2)}),()=>(l($)/n().fps).toFixed(2),()=>`${o(l($))??""}px`]),V("pointerdown",X,ke=>M(ke,l(g))),V("pointermove",X,y),V("pointerup",X,w),V("keydown",X,ke=>T(ke,l(g))),nn("focus",X,()=>n().selectedMarker={scene:l(g).scene,name:l(g).name}),G(b,X)});var se=k(le,2);let ie;ht(j,b=>r=b,()=>r),Q((b,g,$,ae,X,pe,xe,Ee,qe,ke,Fe,Se,Mt,et,mt,gn)=>{x(q,"aria-label",b),x(Re,"title",g),x(Re,"aria-label",$),x(Pe,"title",ae),x(Pe,"aria-label",X),x(je,"title",pe),x(je,"aria-label",xe),N(ot,n().playing?"❚❚":"▶"),x(Ye,"title",Ee),x(Ye,"aria-label",qe),x(Qe,"title",ke),x(Qe,"aria-label",Fe),N(C,Se),N(Y,`${n().frame??""} / ${n().lastFrame??""}`),x(re,"title",Mt),ce=Ft(j,1,"track svelte-112n2zp",null,ce,{"with-music":l(u).length>0}),x(j,"aria-label",et),x(j,"aria-valuemax",n().lastFrame),x(j,"aria-valuenow",n().frame),x(j,"aria-valuetext",mt),K=nt(U,"",K,{width:`${l(i)??""}px`}),ie=nt(se,"",ie,{left:gn})},[()=>R("timeline.label"),()=>R("transport.start"),()=>R("transport.start"),()=>R("transport.prev"),()=>R("transport.prev"),()=>n().playing?R("transport.pause"):R("transport.play"),()=>n().playing?R("transport.pause"):R("transport.play"),()=>R("transport.next"),()=>R("transport.next"),()=>R("transport.end"),()=>R("transport.end"),()=>gr(n().frame,n().fps),()=>R("timeline.addMarker"),()=>R("timeline.label"),()=>gr(n().frame,n().fps),()=>`${o(n().frame)??""}px`]),V("click",Re,()=>n().seek(0)),V("click",Pe,()=>n().step(-1)),V("click",je,()=>n().togglePlay()),V("click",Ye,()=>n().step(1)),V("click",Qe,()=>n().seek(n().lastFrame)),V("click",re,()=>n().markerAtPlayhead()),V("pointerdown",j,d),V("pointermove",j,m),V("pointerup",j,P),ea(j,"clientWidth",b=>A(i,b)),G(t,q),Je()}pt(["click","pointerdown","pointermove","pointerup","keydown"]);var qa=ee('<span class="name"> </span>'),Da=ee('<li role="treeitem"><button><span class="kind svelte-gu3dqx"> </span> <!> <span class="id svelte-gu3dqx"> </span></button></li>'),Sn=ee('<p class="dim svelte-gu3dqx"> </p>'),La=ee('<span class="swatch svelte-gu3dqx"></span>'),Ua=ee('<tr><th scope="row" class="svelte-gu3dqx"> </th><td class="svelte-gu3dqx"><!> </td></tr>'),Ba=ee('<table data-testid="signals" class="svelte-gu3dqx"><tbody></tbody></table>'),Ha=ee('<label class="tunable svelte-gu3dqx"><span class="svelte-gu3dqx"> </span> <input type="range"/> <input type="number"/></label>'),Va=ee('<button class="ease svelte-gu3dqx"><svg viewBox="-2 -2 28 28" width="28" height="28" aria-hidden="true" class="svelte-gu3dqx"><path fill="none" stroke="currentColor" stroke-width="2"></path></svg> <span> </span> <code class="svelte-gu3dqx"> </code></button>'),ja=ee('<aside class="inspector svelte-gu3dqx"><section class="svelte-gu3dqx"><h2 class="svelte-gu3dqx"> </h2> <ul class="tree svelte-gu3dqx" role="tree" data-testid="tree"></ul></section> <section class="svelte-gu3dqx"><h2 class="svelte-gu3dqx"> </h2> <!></section> <section class="svelte-gu3dqx"><h2 class="svelte-gu3dqx"> </h2> <!> <!></section> <section class="svelte-gu3dqx"><h2 class="svelte-gu3dqx"> </h2> <!> <!></section></aside>');function Ya(t,e){$e(e,!0);let n=st(e,"editor",7);const r=ve(()=>{const S=new Map(n().tree.map(O=>[O.id,O])),C=O=>{let Y=0,re=O.parent;for(;re!=null&&Y<64;)Y+=1,re=S.get(re)?.parent??null;return Y};return n().tree.map(O=>({n:O,depth:C(O)}))}),s=ve(()=>Object.entries(n().metas).flatMap(([S,C])=>Object.entries(C.tunables??{}).map(([O,Y])=>({scene:S,name:O,value:Y})))),i=ve(()=>Object.entries(n().metas).flatMap(([S,C])=>Object.entries(C.eases??{}).map(([O,Y])=>({scene:S,name:O,value:Y}))));function a(S){const C=S===0?10:Math.abs(S)*2,O=S>=0?0:S-C,Y=S>=0?Math.max(S*2,1):S+C;return[O,Y,(Y-O)/200]}const u=new Map;function o(S,C){clearTimeout(u.get(S)),u.set(S,setTimeout(()=>n().setTunable(S,C),60))}const c=new Map;function v(S,C){return c.has(S)||c.set(S,a(C)),c.get(S)}function h(S){const[C=0,O=0,Y=1,re=1]=S,j=24;return`M0 ${j} C${C*j} ${j-O*j} ${Y*j} ${j-re*j} ${j} 0`}var p=ja(),d=H(p),m=H(d),P=B(m,!0),f=k(m,2);Be(f,21,()=>l(r),({n:S,depth:C})=>S.id,(S,C)=>{let O=()=>l(C).n,Y=()=>l(C).depth;var re=Da(),j=H(re);let ce,we;var me=H(j),I=B(me,!0),U=k(me,2);{var K=ie=>{var b=qa(),g=B(b,!0);Q(()=>N(g,O().name)),G(ie,b)};ge(U,ie=>{O().name&&ie(K)})}var le=k(U,2),se=B(le);Q(()=>{x(re,"aria-selected",n().selected===O().id),ce=Ft(j,1,"node svelte-gu3dqx",null,ce,{sel:n().selected===O().id}),we=nt(j,"",we,{"padding-left":`${8+Y()*12}px`}),N(I,O().kind),N(se,`#${O().id??""}`)}),V("click",j,()=>n().select(O().id===n().selected?null:O().id)),G(S,re)});var _=k(d,2),M=H(_),y=B(M,!0),w=k(M,2);{var T=S=>{var C=Sn(),O=B(C,!0);Q(Y=>N(O,Y),[()=>R("inspector.noSelection")]),G(S,C)},E=S=>{var C=Ba(),O=H(C);Be(O,21,()=>n().signals,Y=>Y.name,(Y,re)=>{var j=Ua(),ce=H(j),we=B(ce,!0),me=k(ce),I=H(me);{var U=se=>{var ie=La();let b;Q(()=>b=nt(ie,"",b,{background:l(re).value})),G(se,ie)},K=ve(()=>/^#[0-9a-f]{8}$/i.test(l(re).value));ge(I,se=>{l(K)&&se(U)})}var le=k(I);Q(()=>{N(we,l(re).name),N(le,` ${l(re).value??""}`)}),G(Y,j)}),G(S,C)};ge(w,S=>{n().selected===null?S(T):S(E,-1)})}var D=k(_,2),ne=H(D),F=B(ne,!0),L=k(ne,2);{var q=S=>{var C=Sn(),O=B(C,!0);Q(Y=>N(O,Y),[()=>R("inspector.none")]),G(S,C)};ge(L,S=>{l(s).length===0&&S(q)})}var te=k(L,2);Be(te,17,()=>l(s),S=>S.scene+S.name,(S,C)=>{const O=ve(()=>{const[me,I,U]=v(l(C).name,l(C).value);return{min:me,max:I,step:U}});var Y=Ha(),re=H(Y),j=B(re,!0),ce=k(re,2),we=k(ce,2);Q(()=>{N(j,l(C).name),x(ce,"min",l(O).min),x(ce,"max",l(O).max),x(ce,"step",l(O).step),fr(ce,l(C).value),x(ce,"data-testid",`tunable-${l(C).name??""}`),x(we,"step",l(O).step),fr(we,l(C).value),x(we,"aria-label",`${l(C).name??""} value`)}),V("input",ce,me=>o(l(C).name,+me.currentTarget.value)),V("change",we,me=>n().setTunable(l(C).name,+me.currentTarget.value)),G(S,Y)});var Re=k(D,2),Pe=H(Re),je=B(Pe,!0),ot=k(Pe,2);{var Ye=S=>{var C=Sn(),O=B(C,!0);Q(Y=>N(O,Y),[()=>R("inspector.none")]),G(S,C)};ge(ot,S=>{l(i).length===0&&S(Ye)})}var Qe=k(ot,2);Be(Qe,17,()=>l(i),S=>S.scene+S.name,(S,C)=>{var O=Va(),Y=H(O),re=B(Y),j=k(Y,2),ce=B(j,!0),we=k(j,2),me=B(we,!0);Q((I,U)=>{x(O,"data-testid",`ease-${l(C).name??""}`),x(re,"d",I),N(ce,l(C).name),N(me,U)},[()=>h(l(C).value),()=>l(C).value.map(I=>I.toFixed(2)).join(", ")]),V("click",O,()=>n().editingEase={scene:l(C).scene,name:l(C).name}),G(S,O)}),Q((S,C,O,Y)=>{N(P,S),N(y,C),N(F,O),N(je,Y)},[()=>R("inspector.tree"),()=>R("inspector.signals"),()=>R("inspector.tunables"),()=>R("inspector.eases")]),G(t,p),Je()}pt(["click","input","change"]);var Xa=ee('<span class="dim svelte-1qw5yfa"> </span>'),Wa=ee("<li><code> </code> </li>"),Ga=ee('<ul class="svelte-1qw5yfa"></ul>'),Ka=ee('<div class="overlay svelte-1qw5yfa" role="alert" data-testid="error-overlay"><header class="svelte-1qw5yfa"><strong class="svelte-1qw5yfa"> </strong> <!> <button class="svelte-1qw5yfa"> </button></header> <!> <pre class="svelte-1qw5yfa"> </pre></div>');function Za(t,e){$e(e,!0);const n=ve(()=>e.editor.error),r=ve(()=>l(n).kind==="Build"?R("error.build"):l(n).kind==="Incompatible"?R("error.incompatible"):l(n).kind==="Meta"?R("error.meta"):R("error.runtime"));var s=Ka(),i=H(s),a=H(i),u=B(a,!0),o=k(a,2);{var c=f=>{var _=Xa(),M=B(_,!0);Q(y=>N(M,y),[()=>R("error.previous")]),G(f,_)};ge(o,f=>{l(n).kind==="Build"&&f(c)})}var v=k(o,2),h=B(v,!0),p=k(i,2);{var d=f=>{var _=Ga();Be(_,21,()=>l(n).spans,Vi,(M,y)=>{var w=Wa(),T=H(w),E=B(T),D=k(T);Q(()=>{N(E,`${l(y).file??""}:${l(y).line??""}:${l(y).column??""}`),N(D,` ${l(y).message??""}`)}),G(M,w)}),G(f,_)};ge(p,f=>{l(n).spans.length&&f(d)})}var m=k(p,2),P=B(m,!0);Q(f=>{N(u,l(r)),N(h,f),N(P,l(n).message)},[()=>R("error.dismiss")]),V("click",v,()=>e.editor.dismissError()),G(t,s),Je()}pt(["click"]);function $a(t,e,n,r){const s=3*t,i=3*(n-t)-s,a=1-s-i,u=3*e,o=3*(r-e)-u,c=1-u-o,v=d=>((a*d+i)*d+s)*d,h=d=>((c*d+o)*d+u)*d,p=d=>(3*a*d+2*i)*d+s;return d=>{if(d<=0)return 0;if(d>=1)return 1;let m=d;for(let _=0;_<8;_++){const M=v(m)-d;if(Math.abs(M)<1e-7)return h(m);const y=p(m);if(Math.abs(y)<1e-6)break;m=Math.min(1,Math.max(0,m-M/y))}let P=0,f=1;m=d;for(let _=0;_<40;_++){const M=v(m);if(Math.abs(M-d)<1e-7)break;M<d?P=m:f=m,m=(P+f)/2}return h(m)}}const _r={linear:[0,0,1,1],ease:[.25,.1,.25,1],"in-out-cubic":[.65,0,.35,1],"in-cubic":[.32,0,.67,0],"out-cubic":[.33,1,.68,1],"in-out-sine":[.37,0,.63,1],"in-out-expo":[.87,0,.13,1],"out-back":[.34,1.56,.64,1],"in-out-back":[.68,-.6,.32,1.6]};var Ja=Ii('<circle r="8" class="handle svelte-12hhbkq" tabindex="0" role="slider"></circle>'),Qa=ee("<option> </option>"),eo=ee('<div class="backdrop svelte-12hhbkq" role="presentation"></div> <div class="dialog svelte-12hhbkq" role="dialog" aria-modal="true" data-testid="curve-editor"><header class="svelte-12hhbkq"><strong> </strong> <button> </button></header> <svg role="group" class="svelte-12hhbkq"><rect class="unit svelte-12hhbkq"></rect><line class="arm svelte-12hhbkq"></line><line class="arm svelte-12hhbkq"></line><path class="curve svelte-12hhbkq"></path><circle r="4" class="fixed svelte-12hhbkq"></circle><circle r="4" class="fixed svelte-12hhbkq"></circle><!><circle r="5" class="dot svelte-12hhbkq"></circle></svg> <div class="row svelte-12hhbkq"><label> <select><option>—</option><!></select></label> <code class="svelte-12hhbkq"> </code></div></div>',1);function to(t,e){$e(e,!0);let n=st(e,"editor",7);const r=ve(()=>n().editingEase),s=ve(()=>n().metas[l(r).scene]?.eases?.[l(r).name]??[.65,0,.35,1]);let i=ve(()=>[l(s)[0]??0,l(s)[1]??0,l(s)[2]??1,l(s)[3]??1]);const a=240,u=20,o=I=>u+I*a,c=I=>u+(1.5-I)*(a/2),v=(I,U)=>[Math.min(1,Math.max(0,(I-u)/a)),Math.min(1.5,Math.max(-.5,1.5-(U-u)/(a/2)))];let h,p=null,d;function m(){clearTimeout(d),d=setTimeout(()=>n().setEase(l(r).name,[...l(i)]),80)}function P(I){if(p===null)return;const U=h.getBoundingClientRect(),K=(u*2+a)/U.width,[le,se]=v((I.clientX-U.left)*K,(I.clientY-U.top)*K),ie=[...l(i)];ie[p*2]=Number(le.toFixed(3)),ie[p*2+1]=Number(se.toFixed(3)),A(i,ie),m()}function f(I,U){const K=I.shiftKey?.1:.01,se={ArrowLeft:[-K,0],ArrowRight:[K,0],ArrowUp:[0,K],ArrowDown:[0,-K]}[I.key];if(!se)return;I.preventDefault();const ie=[...l(i)];ie[U*2]=Math.min(1,Math.max(0,ie[U*2]+se[0])),ie[U*2+1]=Math.min(1.5,Math.max(-.5,ie[U*2+1]+se[1])),A(i,ie),m()}const _=ve(()=>`M${o(0)} ${c(0)} C${o(l(i)[0])} ${c(l(i)[1])} ${o(l(i)[2])} ${c(l(i)[3])} ${o(1)} ${c(1)}`);let M=z(0);Lt(()=>{let I=0;const U=performance.now(),K=le=>{const se=(le-U)/1400%1.4;A(M,$a(...l(i))(Math.min(1,se)),!0),I=requestAnimationFrame(K)};return I=requestAnimationFrame(K),()=>cancelAnimationFrame(I)});var y=eo(),w=Xr(y),T=k(w,2),E=H(T),D=H(E),ne=B(D,!0),F=k(D,2),L=B(F,!0),q=k(E,2);x(q,"viewBox","0 0 280 280");var te=H(q);x(te,"width",a),x(te,"height",a/2);var Re=k(te),Pe=k(Re),je=k(Pe),ot=k(je),Ye=k(ot),Qe=k(Ye);Be(Qe,16,()=>[0,1],I=>I,(I,U)=>{var K=Ja();Q((le,se,ie,b)=>{x(K,"cx",le),x(K,"cy",se),x(K,"aria-label",`control point ${U+1}`),x(K,"aria-valuetext",`${ie??""}, ${b??""}`),x(K,"aria-valuenow",l(i)[U*2+1]),x(K,"data-testid",`handle-${U??""}`)},[()=>o(l(i)[U*2]),()=>c(l(i)[U*2+1]),()=>l(i)[U*2].toFixed(2),()=>l(i)[U*2+1].toFixed(2)]),V("pointerdown",K,le=>{p=U,h.setPointerCapture(le.pointerId)}),V("keydown",K,le=>f(le,U)),G(I,K)});var S=k(Qe);x(S,"cy",a+u*2-6),ht(q,I=>h=I,()=>h);var C=k(q,2),O=H(C),Y=H(O),re=k(Y),j=H(re);j.value=j.__value="";var ce=k(j);Be(ce,16,()=>Object.keys(_r),I=>I,(I,U)=>{var K=Qa(),le=B(K,!0),se={};Q(()=>{N(le,U),se!==(se=U)&&(K.value=(K.__value=se)??"")}),G(I,K)});var we=k(O,2),me=B(we);Q((I,U,K,le,se,ie,b,g,$,ae,X,pe,xe,Ee,qe,ke,Fe,Se,Mt,et)=>{x(T,"aria-label",I),N(ne,U),N(L,K),x(te,"x",le),x(te,"y",se),x(Re,"x1",ie),x(Re,"y1",b),x(Re,"x2",g),x(Re,"y2",$),x(Pe,"x1",ae),x(Pe,"y1",X),x(Pe,"x2",pe),x(Pe,"y2",xe),x(je,"d",l(_)),x(ot,"cx",Ee),x(ot,"cy",qe),x(Ye,"cx",ke),x(Ye,"cy",Fe),x(S,"cx",Se),N(Y,`${Mt??""} `),N(me,`[${et??""}]`)},[()=>R("curve.title",{name:l(r).name}),()=>R("curve.title",{name:l(r).name}),()=>R("curve.close"),()=>o(0),()=>c(1),()=>o(0),()=>c(0),()=>o(l(i)[0]),()=>c(l(i)[1]),()=>o(1),()=>c(1),()=>o(l(i)[2]),()=>c(l(i)[3]),()=>o(0),()=>c(0),()=>o(1),()=>c(1),()=>o(l(M)),()=>R("curve.presets"),()=>l(i).map(I=>I.toFixed(2)).join(", ")]),V("click",w,()=>n().editingEase=null),V("click",F,()=>n().editingEase=null),V("pointermove",q,P),V("pointerup",q,()=>p=null),V("change",re,I=>{const U=_r[I.currentTarget.value];U&&(A(i,[...U]),m())}),G(t,y),Je()}pt(["click","pointermove","pointerup","pointerdown","keydown","change"]);var no=ee('<div data-testid="editor" tabindex="-1"><!> <main class="svelte-1ctqrjb"><section class="stage svelte-1ctqrjb"><!> <!></section> <!></main> <!> <!></div>');function ro(t,e){$e(e,!0);let n=st(e,"editor",7),r=st(e,"autostart",3,!0),s=st(e,"compact",3,!1),i=st(e,"scopedKeys",3,!1),a;function u(){try{const F=localStorage.getItem("oxframe-theme");if(F==="dark"||F==="light")return F}catch{}return typeof matchMedia<"u"&&matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}let o=z(de(vt(()=>e.theme)??u()));function c(){A(o,l(o)==="dark"?"light":"dark",!0);try{localStorage.setItem("oxframe-theme",l(o))}catch{}}Lt(()=>{r()&&n().start()}),ds(()=>{r()&&n().stop()});function v(F){const L=F.target;if(i()&&!a?.contains(document.activeElement)||L&&(L.closest("input, textarea, select, [contenteditable]")||L.isContentEditable)||L?.dataset.marker&&(F.key==="ArrowLeft"||F.key==="ArrowRight"))return;const q=F.shiftKey?10:1;switch(F.key){case" ":n().togglePlay();break;case"ArrowLeft":n().step(-q);break;case"ArrowRight":n().step(q);break;case"Home":n().seek(0);break;case"End":n().seek(n().lastFrame);break;case"m":case"M":n().markerAtPlayhead();break;case"Escape":n().editingEase?n().editingEase=null:n().error?n().dismissError():n().selectedMarker=null;break;default:return}F.preventDefault()}var h=no();nn("keydown",Zt,v);let p;var d=H(h);{var m=F=>{pa(F,{get editor(){return n()},get theme(){return l(o)},onToggleTheme:c})};ge(d,F=>{s()||F(m)})}var P=k(d,2),f=H(P),_=H(f);_a(_,{get editor(){return n()}});var M=k(_,2);{var y=F=>{Za(F,{get editor(){return n()}})};ge(M,F=>{n().error&&F(y)})}var w=k(f,2);{var T=F=>{Ya(F,{get editor(){return n()}})};ge(w,F=>{s()||F(T)})}var E=k(P,2);Na(E,{get editor(){return n()}});var D=k(E,2);{var ne=F=>{to(F,{get editor(){return n()}})};ge(D,F=>{n().editingEase&&F(ne)})}ht(h,F=>a=F,()=>a),Q(F=>{p=Ft(h,1,"oxframe-editor svelte-1ctqrjb",null,p,{compact:s()}),x(h,"data-theme",l(o)),x(f,"aria-label",F)},[()=>R("viewport.label")]),G(t,h),Je()}const gs="oxframe-present";class so{constructor(e){this.editor=e}editor;#e=z(-1);get index(){return l(this.#e)}set index(e){A(this.#e,e,!0)}target=null;channel=null;get stops(){return this.editor.slides.length>0?this.editor.slides:this.editor.scenes.filter(e=>e.frames>0).map(e=>({scene:e.name,frame:e.start+e.frames-1,notes:""}))}get total(){return this.stops.length}frameOf(e){return e<0?0:this.stops[e]?.frame??this.editor.lastFrame}next(){if(this.target!==null){this.land(this.target);return}if(this.index+1>=this.total)return;this.index+=1;const e=this.frameOf(this.index);if(e<=this.editor.frame){this.land(e);return}this.target=e,this.editor.play(),this.broadcast()}prev(){this.target=null,this.index=Math.max(-1,this.index-1),this.editor.pause(),this.editor.seek(this.frameOf(this.index)),this.broadcast()}first(){this.target=null,this.index=-1,this.editor.pause(),this.editor.seek(0),this.broadcast()}onFrame(e){this.target!==null&&e>=this.target&&this.land(this.target)}land(e){this.target=null,this.editor.pause(),this.editor.seek(e),this.broadcast()}status(){const e=r=>this.stops[r]?.notes??"",n=this.target!==null?this.index:this.index+1;return{index:this.index,total:this.total,notes:e(n),nextNotes:e(n+1),playing:this.target!==null}}connect(){if(typeof BroadcastChannel>"u")return()=>{};const e=new BroadcastChannel(gs);return this.channel=e,e.onmessage=n=>{const r=n.data;r.type==="next"?this.next():r.type==="prev"?this.prev():r.type==="first"?this.first():r.type==="hello"&&this.broadcast()},()=>{e.close(),this.channel=null}}broadcast(){this.channel?.postMessage({type:"status",status:this.status()})}}function _s(t){switch(t){case"ArrowRight":case"ArrowDown":case"PageDown":case" ":case"Enter":return"next";case"ArrowLeft":case"ArrowUp":case"PageUp":case"Backspace":return"prev";case"Home":return"first";default:return null}}var io=ee('<p class="hint svelte-n614vz">→ next · ← back · F full screen · N notes</p>'),ao=ee('<p class="error svelte-n614vz" role="alert"> </p>'),oo=ee('<div class="present svelte-n614vz" data-testid="present" role="presentation"><canvas class="svelte-n614vz"></canvas> <div class="counter svelte-n614vz" data-testid="present-counter"> </div> <!> <!></div>');function lo(t,e){$e(e,!0);let n=st(e,"autostart",3,!0);const r=new so(vt(()=>e.editor));let s,i,a=z(de({w:0,h:0})),u=z(!0);Lt(()=>{n()&&e.editor.start();const y=r.connect(),w=new ResizeObserver(([E])=>{if(!E)return;const{width:D,height:ne}=E.contentRect;A(a,{w:Math.round(D),h:Math.round(ne)},!0),e.editor.setViewport(l(a).w,l(a).h)});w.observe(s);const T=setTimeout(()=>A(u,!1),4e3);return()=>{w.disconnect(),y(),clearTimeout(T)}}),ds(()=>{n()&&e.editor.stop()}),bt(()=>{r.onFrame(e.editor.frame)}),bt(()=>{e.editor.slides,r.broadcast()}),bt(()=>{const y=i?.getContext("2d");if(!y)return;const w=typeof devicePixelRatio=="number"?devicePixelRatio:1,{w:T,h:E}=l(a);(i.width!==Math.round(T*w)||i.height!==Math.round(E*w))&&(i.width=Math.round(T*w),i.height=Math.round(E*w)),y.setTransform(w,0,0,w,0,0),y.fillStyle="#000",y.fillRect(0,0,T,E);const[D,ne]=e.editor.size,F=Math.min(T/D,E/ne),[L,q]=[D*F,ne*F],te=e.editor.image;te&&(y.imageSmoothingQuality="high",y.drawImage(te,(T-L)/2,(E-q)/2,L,q))});function o(y){if(y.key==="f"||y.key==="F")c();else if(y.key==="n"||y.key==="N")v();else{const w=_s(y.key);if(!w)return;r[w]()}y.preventDefault()}async function c(){document.fullscreenElement?await document.exitFullscreen():await s.requestFullscreen?.()}function v(){const y=new URL(location.href);y.searchParams.set("present","notes"),window.open(y.toString(),"oxframe-notes","width=720,height=520")}var h=oo();nn("keydown",Zt,o);var p=H(h);ht(p,y=>i=y,()=>i);var d=k(p,2),m=B(d),P=k(d,2);{var f=y=>{var w=io();G(y,w)};ge(P,y=>{l(u)&&y(f)})}var _=k(P,2);{var M=y=>{var w=ao(),T=B(w,!0);Q(()=>N(T,e.editor.error.message)),G(y,w)};ge(_,y=>{e.editor.error&&y(M)})}ht(h,y=>s=y,()=>s),Q(()=>N(m,`${r.index+1} / ${r.total??""}`)),V("click",h,()=>r.next()),G(t,h),Je()}pt(["click"]);var uo=ee('<div class="notes svelte-18gf6mg" data-testid="present-notes"><header class="svelte-18gf6mg"><span class="slide svelte-18gf6mg" data-testid="present-notes-counter"><!></span> <span class="timer svelte-18gf6mg" data-testid="present-timer"> </span> <button type="button" class="svelte-18gf6mg">Reset timer</button></header> <section><h2 class="svelte-18gf6mg">Now</h2> <p class="text svelte-18gf6mg" data-testid="present-notes-now"> </p></section> <section class="next svelte-18gf6mg"><h2 class="svelte-18gf6mg">Next</h2> <p class="text svelte-18gf6mg"> </p></section> <footer class="svelte-18gf6mg"><button type="button" class="svelte-18gf6mg">← Back</button> <button type="button" class="svelte-18gf6mg">Next →</button></footer></div>');function co(t,e){$e(e,!0);let n=z(null),r=z(null),s=z(de(Date.now())),i=null;Lt(()=>{if(typeof BroadcastChannel>"u")return;i=new BroadcastChannel(gs),i.onmessage=te=>{te.data.type==="status"&&(A(n,te.data.status,!0),l(r)===null&&l(n).index>=0&&A(r,Date.now(),!0))},a({type:"hello"});const q=setInterval(()=>A(s,Date.now(),!0),500);return()=>{clearInterval(q),i?.close()}});function a(q){i?.postMessage(q)}function u(q){const te=_s(q.key);te&&(a({type:te}),q.preventDefault())}const o=ve(()=>{if(l(r)===null)return"0:00";const q=Math.floor((l(s)-l(r))/1e3);return`${Math.floor(q/60)}:${String(q%60).padStart(2,"0")}`});var c=uo();nn("keydown",Zt,u);var v=H(c),h=H(v),p=H(h);{var d=q=>{var te=or();Q(()=>N(te,`Stop ${l(n).index+1} of ${l(n).total??""}`)),G(q,te)},m=q=>{var te=or("Waiting for the presentation…");G(q,te)};ge(p,q=>{l(n)?q(d):q(m,-1)})}var P=k(h,2),f=B(P,!0),_=k(P,2),M=k(v,2),y=k(H(M),2),w=B(y,!0),T=k(M,2),E=k(H(T),2),D=B(E,!0),ne=k(T,2),F=H(ne),L=k(F,2);Q(()=>{N(f,l(o)),N(w,l(n)?.notes||"—"),N(D,l(n)?.nextNotes||"—")}),V("click",_,()=>A(r,Date.now(),!0)),V("click",F,()=>a({type:"prev"})),V("click",L,()=>a({type:"next"})),G(t,c),Je()}pt(["click"]);const er=new URLSearchParams(location.search),bs=window.__OXFRAME_CONFIG__??{},fo=er.get("backend")??bs.backend??"ws",ws=fo==="mock"?new la:new oa({url:bs.url??"/ws",token:er.get("token")??void 0}),Bn=er.get("present"),Hn=new Pa(ws,{uiVersion:"0.1.4",persist:Bn===null});window.__oxframe={editor:Hn,backend:ws};const Tn=document.getElementById("app");Bn==="notes"?xn(co,{target:Tn}):Bn!==null?xn(lo,{target:Tn,props:{editor:Hn}}):xn(ro,{target:Tn,props:{editor:Hn}});