oxframe-cli 0.23.10

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