memlnaut-nisps/playground/dist/assets/index-C1-a2ZPT.js
monkey-w1n5t0n 0d1a2102eb feat(manifold)!: P1 — retire playground/, manifold is the sole browser app
Playground archived at branch archive/playground-solidjs (tag
playground-solidjs-final) and deleted from main. Retargets:

- run-all-tests.sh stage 5 → manifold (typecheck + bun test + build +
  playwright via non-snap node runner, BUILD-PLAN gotcha)
- ci.yml playground-tests → manifold-tests; osc-bridge.yml → manifold/osc-bridge
  (was already broken: playground/osc-bridge no longer existed)
- codegen: TS emission target removed (returns at P5 → manifold); golden
  test now C++-only; TS emitters retained dormant
- .gitignore: manifold/osc-bridge paths; drop dead playground faust exception
- docs: AGENTS.md gates, README quickstart, MAP.md, ALIGNMENT.md (C15 now
  archive-only — defect #1 updated), AGENT-REFERENCE.md, specs/MAIN.md

Part of docs/specs/plans/one-core-engine-refactor.md P1.
2026-07-13 23:27:56 +02:00

3 lines
160 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PrimitivesShowcase-D2lYbVrQ.js","assets/PrimitivesShowcase-B55FOguW.css"])))=>i.map(i=>d[i]);
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))a(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&a(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function a(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();const J={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return ea(this.context.count)},getNextContextId(){return ea(this.context.count++)}};function ea(e){const t=String(e),n=t.length-1;return J.context.id+(n?String.fromCharCode(96+n):"")+t}function Zt(e){J.context=e}const Fa=!1,Pr=(e,t)=>e===t,tt=Symbol("solid-proxy"),kr=typeof Proxy=="function",bn=Symbol("solid-track"),pn={equals:Pr};let Ea=za;const ut=1,_n=2,Ia={owned:null,cleanups:null,context:null,owner:null},kn={};var be=null;let Ln=null,Lr=null,ve=null,De=null,lt=null,Cn=0;function Jt(e,t){const n=ve,a=be,r=e.length===0,i=t===void 0?a:t,o=r?Ia:{owned:null,cleanups:null,context:i?i.context:null,owner:i},s=r?e:()=>e(()=>pe(()=>nn(o)));be=o,ve=null;try{return st(s,!0)}finally{ve=n,be=a}}function ee(e,t){t=t?Object.assign({},pn,t):pn;const n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},a=r=>(typeof r=="function"&&(r=r(n.value)),Ta(n,r));return[Oa.bind(n),a]}function Fr(e,t,n){const a=$n(e,t,!0,ut);Bt(a)}function A(e,t,n){const a=$n(e,t,!1,ut);Bt(a)}function ze(e,t,n){Ea=zr;const a=$n(e,t,!1,ut);(!n||!n.render)&&(a.user=!0),lt?lt.push(a):Bt(a)}function $e(e,t,n){n=n?Object.assign({},pn,n):pn;const a=$n(e,t,!0,0);return a.observers=null,a.observerSlots=null,a.comparator=n.equals||void 0,Bt(a),Oa.bind(a)}function Er(e){return e&&typeof e=="object"&&"then"in e}function Ir(e,t,n){let a,r,i;a=!0,r=e,i={};let o=null,s=kn,l=null,d=!1,c="initialValue"in i,u=typeof a=="function"&&$e(a);const m=new Set,[v,g]=(i.storage||ee)(i.initialValue),[f,w]=ee(void 0),[x,_]=ee(void 0,{equals:!1}),[M,O]=ee(c?"ready":"unresolved");J.context&&(l=J.getNextContextId(),i.ssrLoadFrom==="initial"?s=i.initialValue:J.load&&J.has(l)&&(s=J.load(l)));function y(F,$,U,ne){return o===F&&(o=null,ne!==void 0&&(c=!0),(F===s||$===s)&&i.onHydrated&&queueMicrotask(()=>i.onHydrated(ne,{value:$})),s=kn,q($,U)),$}function q(F,$){st(()=>{$===void 0&&g(()=>F),O($!==void 0?"errored":c?"ready":"unresolved"),w($);for(const U of m.keys())U.decrement();m.clear()},!1)}function W(){const F=Rr,$=v(),U=f();if(U!==void 0&&!o)throw U;return ve&&ve.user,$}function N(F=!0){if(F!==!1&&d)return;d=!1;const $=u?u():a;if($==null||$===!1){y(o,pe(v));return}let U;const ne=s!==kn?s:pe(()=>{try{return r($,{value:v(),refetching:F})}catch(oe){U=oe}});if(U!==void 0){y(o,void 0,hn(U),$);return}else if(!Er(ne))return y(o,ne,void 0,$),ne;return o=ne,"v"in ne?(ne.s===1?y(o,ne.v,void 0,$):y(o,void 0,hn(ne.v),$),ne):(d=!0,queueMicrotask(()=>d=!1),st(()=>{O(c?"refreshing":"pending"),_()},!1),ne.then(oe=>y(ne,oe,void 0,$),oe=>y(ne,void 0,hn(oe),$)))}Object.defineProperties(W,{state:{get:()=>M()},error:{get:()=>f()},loading:{get(){const F=M();return F==="pending"||F==="refreshing"}},latest:{get(){if(!c)return W();const F=f();if(F&&!o)throw F;return v()}}});let Y=be;return u?Fr(()=>(Y=be,N(!1))):N(!1),[W,{refetch:F=>Ra(Y,()=>N(F)),mutate:g}]}function Qt(e){return st(e,!1)}function pe(e){if(ve===null)return e();const t=ve;ve=null;try{return e()}finally{ve=t}}function Yn(e){ze(()=>pe(e))}function et(e){return be===null||(be.cleanups===null?be.cleanups=[e]:be.cleanups.push(e)),e}function Vn(){return ve}function ta(){return be}function Ra(e,t){const n=be,a=ve;be=e,ve=null;try{return st(t,!0)}catch(r){Zn(r)}finally{be=n,ve=a}}const[nd,ad]=ee(!1);let Rr;function Oa(){if(this.sources&&this.state)if(this.state===ut)Bt(this);else{const e=De;De=null,st(()=>xn(this),!1),De=e}if(ve){const e=this.observers;if(!e||e[e.length-1]!==ve){const t=e?e.length:0;ve.sources?(ve.sources.push(this),ve.sourceSlots.push(t)):(ve.sources=[this],ve.sourceSlots=[t]),e?(e.push(ve),this.observerSlots.push(ve.sources.length-1)):(this.observers=[ve],this.observerSlots=[ve.sources.length-1])}}return this.value}function Ta(e,t,n){let a=e.value;return(!e.comparator||!e.comparator(a,t))&&(e.value=t,e.observers&&e.observers.length&&st(()=>{for(let r=0;r<e.observers.length;r+=1){const i=e.observers[r],o=Ln&&Ln.running;o&&Ln.disposed.has(i),(o?!i.tState:!i.state)&&(i.pure?De.push(i):lt.push(i),i.observers&&Da(i)),o||(i.state=ut)}if(De.length>1e6)throw De=[],new Error},!1)),t}function Bt(e){if(!e.fn)return;nn(e);const t=Cn;Or(e,e.value,t)}function Or(e,t,n){let a;const r=be,i=ve;ve=be=e;try{a=e.fn(t)}catch(o){return e.pure&&(e.state=ut,e.owned&&e.owned.forEach(nn),e.owned=null),e.updatedAt=n+1,Zn(o)}finally{ve=i,be=r}(!e.updatedAt||e.updatedAt<=n)&&(e.updatedAt!=null&&"observers"in e?Ta(e,a):e.value=a,e.updatedAt=n)}function $n(e,t,n,a=ut,r){const i={fn:e,state:a,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:be,context:be?be.context:null,pure:n};return be===null||be!==Ia&&(be.owned?be.owned.push(i):be.owned=[i]),i}function yn(e){if(e.state===0)return;if(e.state===_n)return xn(e);if(e.suspense&&pe(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt<Cn);)e.state&&t.push(e);for(let n=t.length-1;n>=0;n--)if(e=t[n],e.state===ut)Bt(e);else if(e.state===_n){const a=De;De=null,st(()=>xn(e,t[0]),!1),De=a}}function st(e,t){if(De)return e();let n=!1;t||(De=[]),lt?n=!0:lt=[],Cn++;try{const a=e();return Tr(n),a}catch(a){n||(lt=null),De=null,Zn(a)}}function Tr(e){if(De&&(za(De),De=null),e)return;const t=lt;lt=null,t.length&&st(()=>Ea(t),!1)}function za(e){for(let t=0;t<e.length;t++)yn(e[t])}function zr(e){let t,n=0;for(t=0;t<e.length;t++){const a=e[t];a.user?e[n++]=a:yn(a)}if(J.context){if(J.count){J.effects||(J.effects=[]),J.effects.push(...e.slice(0,n));return}Zt()}for(J.effects&&(J.done||!J.count)&&(e=[...J.effects,...e],n+=J.effects.length,delete J.effects),t=0;t<n;t++)yn(e[t])}function xn(e,t){e.state=0;for(let n=0;n<e.sources.length;n+=1){const a=e.sources[n];if(a.sources){const r=a.state;r===ut?a!==t&&(!a.updatedAt||a.updatedAt<Cn)&&yn(a):r===_n&&xn(a,t)}}}function Da(e){for(let t=0;t<e.observers.length;t+=1){const n=e.observers[t];n.state||(n.state=_n,n.pure?De.push(n):lt.push(n),n.observers&&Da(n))}}function nn(e){let t;if(e.sources)for(;e.sources.length;){const n=e.sources.pop(),a=e.sourceSlots.pop(),r=n.observers;if(r&&r.length){const i=r.pop(),o=n.observerSlots.pop();a<r.length&&(i.sourceSlots[o]=a,r[a]=i,n.observerSlots[a]=o)}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)nn(e.tOwned[t]);delete e.tOwned}if(e.owned){for(t=e.owned.length-1;t>=0;t--)nn(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0}function hn(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function Zn(e,t=be){throw hn(e)}const Dr=Symbol("fallback");function na(e){for(let t=0;t<e.length;t++)e[t]()}function qr(e,t,n={}){let a=[],r=[],i=[],o=0,s=t.length>1?[]:null;return et(()=>na(i)),()=>{let l=e()||[],d=l.length,c,u;return l[bn],pe(()=>{let v,g,f,w,x,_,M,O,y;if(d===0)o!==0&&(na(i),i=[],a=[],r=[],o=0,s&&(s=[])),n.fallback&&(a=[Dr],r[0]=Jt(q=>(i[0]=q,n.fallback())),o=1);else if(o===0){for(r=new Array(d),u=0;u<d;u++)a[u]=l[u],r[u]=Jt(m);o=d}else{for(f=new Array(d),w=new Array(d),s&&(x=new Array(d)),_=0,M=Math.min(o,d);_<M&&a[_]===l[_];_++);for(M=o-1,O=d-1;M>=_&&O>=_&&a[M]===l[O];M--,O--)f[O]=r[M],w[O]=i[M],s&&(x[O]=s[M]);for(v=new Map,g=new Array(O+1),u=O;u>=_;u--)y=l[u],c=v.get(y),g[u]=c===void 0?-1:c,v.set(y,u);for(c=_;c<=M;c++)y=a[c],u=v.get(y),u!==void 0&&u!==-1?(f[u]=r[c],w[u]=i[c],s&&(x[u]=s[c]),u=g[u],v.set(y,u)):i[c]();for(u=_;u<d;u++)u in f?(r[u]=f[u],i[u]=w[u],s&&(s[u]=x[u],s[u](u))):r[u]=Jt(m);r=r.slice(0,o=d),a=l.slice(0)}return r});function m(v){if(i[u]=v,s){const[g,f]=ee(u);return s[u]=f,t(l[u],g)}return t(l[u])}}}function p(e,t){return pe(()=>e(t||{}))}function ln(){return!0}const aa={get(e,t,n){return t===tt?n:e.get(t)},has(e,t){return t===tt?!0:e.has(t)},set:ln,deleteProperty:ln,getOwnPropertyDescriptor(e,t){return{configurable:!0,enumerable:!0,get(){return e.get(t)},set:ln,deleteProperty:ln}},ownKeys(e){return e.keys()}};function Nr(e,...t){const n=t.length;if(kr&&tt in e){const r=n>1?t.flat():t[0],i=t.map(o=>new Proxy({get(s){return o.includes(s)?e[s]:void 0},has(s){return o.includes(s)&&s in e},keys(){return o.filter(s=>s in e)}},aa));return i.push(new Proxy({get(o){return r.includes(o)?void 0:e[o]},has(o){return r.includes(o)?!1:o in e},keys(){return Object.keys(e).filter(o=>!r.includes(o))}},aa)),i}const a=[];for(let r=0;r<=n;r++)a[r]={};for(const r of Object.getOwnPropertyNames(e)){let i=n;for(let l=0;l<t.length;l++)if(t[l].includes(r)){i=l;break}const o=Object.getOwnPropertyDescriptor(e,r);!o.get&&!o.set&&o.enumerable&&o.writable&&o.configurable?a[i][r]=o.value:Object.defineProperty(a[i],r,o)}return a}function Br(e){let t,n;const a=r=>{const i=J.context;if(i){const[s,l]=ee();J.count||(J.count=0),J.count++,(n||(n=e())).then(d=>{!J.done&&Zt(i),J.count--,l(()=>d.default),Zt()}),t=s}else if(!t){const[s]=Ir(()=>(n||(n=e())).then(l=>l.default));t=s}let o;return $e(()=>(o=t())?pe(()=>{if(!i||J.done)return o(r);const s=J.context;Zt(i);const l=o(r);return Zt(s),l}):"")};return a.preload=()=>n||((n=e()).then(r=>t=()=>r.default),n),a}const Vr=e=>`Stale read from <${e}>.`;function vt(e){const t="fallback"in e&&{fallback:()=>e.fallback};return $e(qr(()=>e.each,e.children,t||void 0))}function re(e){const t=e.keyed,n=$e(()=>e.when,void 0,void 0),a=t?n:$e(n,void 0,{equals:(r,i)=>!r==!i});return $e(()=>{const r=a();if(r){const i=e.children;return typeof i=="function"&&i.length>0?pe(()=>i(t?r:()=>{if(!pe(a))throw Vr("Show");return n()})):i}return e.fallback},void 0,void 0)}const jr=["allowfullscreen","async","alpha","autofocus","autoplay","checked","controls","default","disabled","formnovalidate","hidden","indeterminate","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","seamless","selected","adauctionheaders","browsingtopics","credentialless","defaultchecked","defaultmuted","defaultselected","defer","disablepictureinpicture","disableremoteplayback","preservespitch","shadowrootclonable","shadowrootcustomelementregistry","shadowrootdelegatesfocus","shadowrootserializable","sharedstoragewritable"],Hr=new Set(["className","value","readOnly","noValidate","formNoValidate","isMap","noModule","playsInline","adAuctionHeaders","allowFullscreen","browsingTopics","defaultChecked","defaultMuted","defaultSelected","disablePictureInPicture","disableRemotePlayback","preservesPitch","shadowRootClonable","shadowRootCustomElementRegistry","shadowRootDelegatesFocus","shadowRootSerializable","sharedStorageWritable",...jr]),Wr=new Set(["innerHTML","textContent","innerText","children"]),Ur=Object.assign(Object.create(null),{className:"class",htmlFor:"for"}),Gr=Object.assign(Object.create(null),{class:"className",novalidate:{$:"noValidate",FORM:1},formnovalidate:{$:"formNoValidate",BUTTON:1,INPUT:1},ismap:{$:"isMap",IMG:1},nomodule:{$:"noModule",SCRIPT:1},playsinline:{$:"playsInline",VIDEO:1},readonly:{$:"readOnly",INPUT:1,TEXTAREA:1},adauctionheaders:{$:"adAuctionHeaders",IFRAME:1},allowfullscreen:{$:"allowFullscreen",IFRAME:1},browsingtopics:{$:"browsingTopics",IMG:1},defaultchecked:{$:"defaultChecked",INPUT:1},defaultmuted:{$:"defaultMuted",AUDIO:1,VIDEO:1},defaultselected:{$:"defaultSelected",OPTION:1},disablepictureinpicture:{$:"disablePictureInPicture",VIDEO:1},disableremoteplayback:{$:"disableRemotePlayback",AUDIO:1,VIDEO:1},preservespitch:{$:"preservesPitch",AUDIO:1,VIDEO:1},shadowrootclonable:{$:"shadowRootClonable",TEMPLATE:1},shadowrootdelegatesfocus:{$:"shadowRootDelegatesFocus",TEMPLATE:1},shadowrootserializable:{$:"shadowRootSerializable",TEMPLATE:1},sharedstoragewritable:{$:"sharedStorageWritable",IFRAME:1,IMG:1}});function Xr(e,t){const n=Gr[e];return typeof n=="object"?n[t]?n.$:void 0:n}const Yr=new Set(["beforeinput","click","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"]),Zr=new Set(["altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignObject","g","glyph","glyphRef","hkern","image","line","linearGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tref","tspan","use","view","vkern"]),Kr={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},zt=e=>$e(()=>e());function Jr(e,t,n){let a=n.length,r=t.length,i=a,o=0,s=0,l=t[r-1].nextSibling,d=null;for(;o<r||s<i;){if(t[o]===n[s]){o++,s++;continue}for(;t[r-1]===n[i-1];)r--,i--;if(r===o){const c=i<a?s?n[s-1].nextSibling:n[i-s]:l;for(;s<i;)e.insertBefore(n[s++],c)}else if(i===s)for(;o<r;)(!d||!d.has(t[o]))&&t[o].remove(),o++;else if(t[o]===n[i-1]&&n[s]===t[r-1]){const c=t[--r].nextSibling;e.insertBefore(n[s++],t[o++].nextSibling),e.insertBefore(n[--i],c),t[r]=n[i]}else{if(!d){d=new Map;let u=s;for(;u<i;)d.set(n[u],u++)}const c=d.get(t[o]);if(c!=null)if(s<c&&c<i){let u=o,m=1,v;for(;++u<r&&u<i&&!((v=d.get(t[u]))==null||v!==c+m);)m++;if(m>c-s){const g=t[o];for(;s<c;)e.insertBefore(n[s++],g)}else e.replaceChild(n[s++],t[o++])}else o++;else t[o++].remove()}}}const ra="_$DX_DELEGATE";function Qr(e,t,n,a={}){let r;return Jt(i=>{r=i,t===document?e():b(t,e(),t.firstChild?null:void 0,n)},a.owner),()=>{r(),t.textContent=""}}function E(e,t,n,a){let r;const i=()=>{const s=a?document.createElementNS("http://www.w3.org/1998/Math/MathML","template"):document.createElement("template");return s.innerHTML=e,n?s.content.firstChild.firstChild:a?s.firstChild:s.content.firstChild},o=t?()=>pe(()=>document.importNode(r||(r=i()),!0)):()=>(r||(r=i())).cloneNode(!0);return o.cloneNode=o,o}function Je(e,t=window.document){const n=t[ra]||(t[ra]=new Set);for(let a=0,r=e.length;a<r;a++){const i=e[a];n.has(i)||(n.add(i),t.addEventListener(i,oi))}}function X(e,t,n){kt(e)||(n==null?e.removeAttribute(t):e.setAttribute(t,n))}function ei(e,t,n,a){kt(e)||(a==null?e.removeAttributeNS(t,n):e.setAttributeNS(t,n,a))}function ti(e,t,n){kt(e)||(n?e.setAttribute(t,""):e.removeAttribute(t))}function h(e,t){kt(e)||(t==null?e.removeAttribute("class"):e.className=t)}function $t(e,t,n,a){if(a)Array.isArray(n)?(e[`$$${t}`]=n[0],e[`$$${t}Data`]=n[1]):e[`$$${t}`]=n;else if(Array.isArray(n)){const r=n[0];e.addEventListener(t,n[0]=i=>r.call(e,n[1],i))}else e.addEventListener(t,n,typeof n!="function"&&n)}function Ke(e,t,n={}){const a=Object.keys(t||{}),r=Object.keys(n);let i,o;for(i=0,o=r.length;i<o;i++){const s=r[i];!s||s==="undefined"||t[s]||(ia(e,s,!1),delete n[s])}for(i=0,o=a.length;i<o;i++){const s=a[i],l=!!t[s];!s||s==="undefined"||n[s]===l||!l||(ia(e,s,!0),n[s]=l)}return n}function An(e,t,n){if(!t)return n?X(e,"style"):t;const a=e.style;if(typeof t=="string")return a.cssText=t;typeof n=="string"&&(a.cssText=n=void 0),n||(n={}),t||(t={});let r,i;for(i in n)t[i]==null&&a.removeProperty(i),delete n[i];for(i in t)r=t[i],r!==n[i]&&(a.setProperty(i,r),n[i]=r);return n}function ke(e,t,n){n!=null?e.style.setProperty(t,n):e.style.removeProperty(t)}function ni(e,t={},n,a){const r={};return A(()=>r.children=an(e,t.children,r.children)),A(()=>typeof t.ref=="function"&&ct(t.ref,e)),A(()=>ai(e,t,n,!0,r,!0)),r}function ct(e,t,n){return pe(()=>e(t,n))}function b(e,t,n,a){if(n!==void 0&&!a&&(a=[]),typeof t!="function")return an(e,t,a,n);A(r=>an(e,t(),r,n),a)}function ai(e,t,n,a,r={},i=!1){t||(t={});for(const o in r)if(!(o in t)){if(o==="children")continue;r[o]=oa(e,o,null,r[o],n,i,t)}for(const o in t){if(o==="children")continue;const s=t[o];r[o]=oa(e,o,s,r[o],n,i,t)}}function ri(e){let t,n;return!kt()||!(t=J.registry.get(n=li()))?e():(J.completed&&J.completed.add(t),J.registry.delete(n),t)}function kt(e){return!!J.context&&!J.done&&(!e||e.isConnected)}function ii(e){return e.toLowerCase().replace(/-([a-z])/g,(t,n)=>n.toUpperCase())}function ia(e,t,n){const a=t.trim().split(/\s+/);for(let r=0,i=a.length;r<i;r++)e.classList.toggle(a[r],n)}function oa(e,t,n,a,r,i,o){let s,l,d,c,u;if(t==="style")return An(e,n,a);if(t==="classList")return Ke(e,n,a);if(n===a)return a;if(t==="ref")i||n(e);else if(t.slice(0,3)==="on:"){const m=t.slice(3);a&&e.removeEventListener(m,a,typeof a!="function"&&a),n&&e.addEventListener(m,n,typeof n!="function"&&n)}else if(t.slice(0,10)==="oncapture:"){const m=t.slice(10);a&&e.removeEventListener(m,a,!0),n&&e.addEventListener(m,n,!0)}else if(t.slice(0,2)==="on"){const m=t.slice(2).toLowerCase(),v=Yr.has(m);if(!v&&a){const g=Array.isArray(a)?a[0]:a;e.removeEventListener(m,g)}(v||n)&&($t(e,m,n,v),v&&Je([m]))}else if(t.slice(0,5)==="attr:")X(e,t.slice(5),n);else if(t.slice(0,5)==="bool:")ti(e,t.slice(5),n);else if((u=t.slice(0,5)==="prop:")||(d=Wr.has(t))||!r&&((c=Xr(t,e.tagName))||(l=Hr.has(t)))||(s=e.nodeName.includes("-")||"is"in o)){if(u)t=t.slice(5),l=!0;else if(kt(e))return n;t==="class"||t==="className"?h(e,n):s&&!l&&!d?e[ii(t)]=n:e[c||t]=n}else{const m=r&&t.indexOf(":")>-1&&Kr[t.split(":")[0]];m?ei(e,m,t,n):X(e,Ur[t]||t,n)}return n}function oi(e){if(J.registry&&J.events&&J.events.find(([l,d])=>d===e))return;let t=e.target;const n=`$$${e.type}`,a=e.target,r=e.currentTarget,i=l=>Object.defineProperty(e,"target",{configurable:!0,value:l}),o=()=>{const l=t[n];if(l&&!t.disabled){const d=t[`${n}Data`];if(d!==void 0?l.call(t,d,e):l.call(t,e),e.cancelBubble)return}return t.host&&typeof t.host!="string"&&!t.host._$host&&t.contains(e.target)&&i(t.host),!0},s=()=>{for(;o()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:!0,get(){return t||document}}),J.registry&&!J.done&&(J.done=_$HY.done=!0),e.composedPath){const l=e.composedPath();i(l[0]);for(let d=0;d<l.length-2&&(t=l[d],!!o());d++){if(t._$host){t=t._$host,s();break}if(t.parentNode===r)break}}else s();i(a)}function an(e,t,n,a,r){const i=kt(e);if(i){!n&&(n=[...e.childNodes]);let l=[];for(let d=0;d<n.length;d++){const c=n[d];c.nodeType===8&&c.data.slice(0,2)==="!$"?c.remove():l.push(c)}n=l}for(;typeof n=="function";)n=n();if(t===n)return n;const o=typeof t,s=a!==void 0;if(e=s&&n[0]&&n[0].parentNode||e,o==="string"||o==="number"){if(i||o==="number"&&(t=t.toString(),t===n))return n;if(s){let l=n[0];l&&l.nodeType===3?l.data!==t&&(l.data=t):l=document.createTextNode(t),n=Ft(e,n,a,l)}else n!==""&&typeof n=="string"?n=e.firstChild.data=t:n=e.textContent=t}else if(t==null||o==="boolean"){if(i)return n;n=Ft(e,n,a)}else{if(o==="function")return A(()=>{let l=t();for(;typeof l=="function";)l=l();n=an(e,l,n,a)}),()=>n;if(Array.isArray(t)){const l=[],d=n&&Array.isArray(n);if(jn(l,t,n,r))return A(()=>n=an(e,l,n,a,!0)),()=>n;if(i){if(!l.length)return n;if(a===void 0)return n=[...e.childNodes];let c=l[0];if(c.parentNode!==e)return n;const u=[c];for(;(c=c.nextSibling)!==a;)u.push(c);return n=u}if(l.length===0){if(n=Ft(e,n,a),s)return n}else d?n.length===0?la(e,l,a):Jr(e,n,l):(n&&Ft(e),la(e,l));n=l}else if(t.nodeType){if(i&&t.parentNode)return n=s?[t]:t;if(Array.isArray(n)){if(s)return n=Ft(e,n,a,t);Ft(e,n,null,t)}else n==null||n===""||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);n=t}}return n}function jn(e,t,n,a){let r=!1;for(let i=0,o=t.length;i<o;i++){let s=t[i],l=n&&n[e.length],d;if(!(s==null||s===!0||s===!1))if((d=typeof s)=="object"&&s.nodeType)e.push(s);else if(Array.isArray(s))r=jn(e,s,l)||r;else if(d==="function")if(a){for(;typeof s=="function";)s=s();r=jn(e,Array.isArray(s)?s:[s],Array.isArray(l)?l:[l])||r}else e.push(s),r=!0;else{const c=String(s);l&&l.nodeType===3&&l.data===c?e.push(l):e.push(document.createTextNode(c))}}return r}function la(e,t,n=null){for(let a=0,r=t.length;a<r;a++)e.insertBefore(t[a],n)}function Ft(e,t,n,a){if(n===void 0)return e.textContent="";const r=a||document.createTextNode("");if(t.length){let i=!1;for(let o=t.length-1;o>=0;o--){const s=t[o];if(r!==s){const l=s.parentNode===e;!i&&!o?l?e.replaceChild(r,s):e.insertBefore(r,n):l&&s.remove()}else i=!0}}else e.insertBefore(r,n);return[r]}function li(){return J.getNextContextId()}const si="http://www.w3.org/2000/svg";function qa(e,t=!1,n=void 0){return t?document.createElementNS(si,e):document.createElement(e,{is:n})}function ui(e){const{useShadow:t}=e,n=document.createTextNode(""),a=()=>e.mount||document.body,r=ta();let i,o=!!J.context;return ze(()=>{o&&(ta().user=o=!1),i||(i=Ra(r,()=>$e(()=>e.children)));const s=a();if(s instanceof HTMLHeadElement){const[l,d]=ee(!1),c=()=>d(!0);Jt(u=>b(s,()=>l()?u():i(),null)),et(c)}else{const l=qa(e.isSVG?"g":"div",e.isSVG),d=t&&l.attachShadow?l.attachShadow({mode:"open"}):l;Object.defineProperty(l,"_$host",{get(){return n.parentNode},configurable:!0}),b(d,i),s.appendChild(l),e.ref&&e.ref(l),et(()=>s.removeChild(l))}},void 0,{render:!o}),n}function ci(e,t){const n=$e(e);return $e(()=>{const a=n();switch(typeof a){case"function":return pe(()=>a(t));case"string":const r=Zr.has(a),i=J.context?ri():qa(a,r,pe(()=>t.is));return ni(i,t,r),i}})}function di(e){const[,t]=Nr(e,["component"]);return ci(()=>e.component,t)}const mi="modulepreload",fi=function(e){return"/"+e},sa={},Na=function(t,n,a){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),s=o?.nonce||o?.getAttribute("nonce");r=Promise.allSettled(n.map(l=>{if(l=fi(l),l in sa)return;sa[l]=!0;const d=l.endsWith(".css"),c=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${c}`))return;const u=document.createElement("link");if(u.rel=d?"stylesheet":mi,d||(u.as="script"),u.crossOrigin="",u.href=l,s&&u.setAttribute("nonce",s),document.head.appendChild(u),d)return new Promise((m,v)=>{u.addEventListener("load",m),u.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${l}`)))})}))}function i(o){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=o,window.dispatchEvent(s),!s.defaultPrevented)throw o}return r.then(o=>{for(const s of o||[])s.status==="rejected"&&i(s.reason);return t().catch(i)})},wn=Symbol("store-raw"),At=Symbol("store-node"),rt=Symbol("store-has"),Ba=Symbol("store-self");function Va(e){let t=e[tt];if(!t&&(Object.defineProperty(e,tt,{value:t=new Proxy(e,gi)}),!Array.isArray(e))){const n=Object.keys(e),a=Object.getOwnPropertyDescriptors(e),r=Object.getPrototypeOf(e),i=r!==null&&e!==null&&typeof e=="object"&&!Array.isArray(e)&&r!==Object.prototype;if(i){const o=Object.getOwnPropertyDescriptors(r);n.push(...Object.keys(o)),Object.assign(a,o)}for(let o=0,s=n.length;o<s;o++){const l=n[o];i&&l==="constructor"||a[l].get&&Object.defineProperty(e,l,{configurable:!0,enumerable:a[l].enumerable,get:a[l].get.bind(t)})}}return t}function Dt(e){let t;return e!=null&&typeof e=="object"&&(e[tt]||!(t=Object.getPrototypeOf(e))||t===Object.prototype||Array.isArray(e))}function qt(e,t=new Set){let n,a,r,i;if(n=e!=null&&e[wn])return n;if(!Dt(e)||t.has(e))return e;if(Array.isArray(e)){Object.isFrozen(e)?e=e.slice(0):t.add(e);for(let o=0,s=e.length;o<s;o++)r=e[o],(a=qt(r,t))!==r&&(e[o]=a)}else{Object.isFrozen(e)?e=Object.assign({},e):t.add(e);const o=Object.keys(e),s=Object.getOwnPropertyDescriptors(e);for(let l=0,d=o.length;l<d;l++)i=o[l],!s[i].get&&(r=e[i],(a=qt(r,t))!==r&&(e[i]=a))}return e}function Sn(e,t){let n=e[t];return n||Object.defineProperty(e,t,{value:n=Object.create(null)}),n}function rn(e,t,n){if(e[t])return e[t];const[a,r]=ee(n,{equals:!1,internal:!0});return a.$=r,e[t]=a}function hi(e,t){const n=Reflect.getOwnPropertyDescriptor(e,t);return!n||n.get||!n.configurable||t===tt||t===At||(delete n.value,delete n.writable,n.get=()=>e[tt][t]),n}function ja(e){Vn()&&rn(Sn(e,At),Ba)()}function vi(e){return ja(e),Reflect.ownKeys(e)}const gi={get(e,t,n){if(t===wn)return e;if(t===tt)return n;if(t===bn)return ja(e),n;const a=Sn(e,At),r=a[t];let i=r?r():e[t];if(t===At||t===rt||t==="__proto__")return i;if(!r){const o=Object.getOwnPropertyDescriptor(e,t);Vn()&&(typeof i!="function"||e.hasOwnProperty(t))&&!(o&&o.get)&&(i=rn(a,t,i)())}return Dt(i)?Va(i):i},has(e,t){return t===wn||t===tt||t===bn||t===At||t===rt||t==="__proto__"?!0:(Vn()&&rn(Sn(e,rt),t)(),t in e)},set(){return!0},deleteProperty(){return!0},ownKeys:vi,getOwnPropertyDescriptor:hi};function Nt(e,t,n,a=!1){if(t==="__proto__"||!a&&e[t]===n)return;const r=e[t],i=e.length;n===void 0?(delete e[t],e[rt]&&e[rt][t]&&r!==void 0&&e[rt][t].$()):(e[t]=n,e[rt]&&e[rt][t]&&r===void 0&&e[rt][t].$());let o=Sn(e,At),s;if((s=rn(o,t,r))&&s.$(()=>n),Array.isArray(e)&&e.length!==i){for(let l=e.length;l<i;l++)(s=o[l])&&s.$();(s=rn(o,"length",i))&&s.$(e.length)}(s=o[Ba])&&s.$()}function Ha(e,t){const n=Object.keys(t);for(let a=0;a<n.length;a+=1){const r=n[a];Wa(r)||Nt(e,r,t[r])}}function Wa(e){return e==="__proto__"||e==="constructor"||e==="prototype"}function bi(e,t){if(typeof t=="function"&&(t=t(e)),t=qt(t),Array.isArray(t)){if(e===t)return;let n=0,a=t.length;for(;n<a;n++){const r=t[n];e[n]!==r&&Nt(e,n,r)}Nt(e,"length",a)}else Ha(e,t)}function Kt(e,t,n=[]){let a,r=e;if(t.length>1){a=t.shift();const o=typeof a,s=Array.isArray(e);if(o==="string"&&(a==="__proto__"||t.length>1&&Wa(a)))return;if(Array.isArray(a)){for(let l=0;l<a.length;l++)Kt(e,[a[l]].concat(t),n);return}else if(s&&o==="function"){for(let l=0;l<e.length;l++)a(e[l],l)&&Kt(e,[l].concat(t),n);return}else if(s&&o==="object"){const{from:l=0,to:d=e.length-1,by:c=1}=a;for(let u=l;u<=d;u+=c)Kt(e,[u].concat(t),n);return}else if(t.length>1){Kt(e[a],t,[a].concat(n));return}r=e[a],n=[a].concat(n)}let i=t[0];typeof i=="function"&&(i=i(r,n),i===r)||a===void 0&&i==null||(i=qt(i),a===void 0||Dt(r)&&Dt(i)&&!Array.isArray(i)?Ha(r,i):Nt(e,a,i))}function gt(...[e,t]){const n=qt(e||{}),a=Array.isArray(n),r=Va(n);function i(...o){Qt(()=>{a&&o.length===1?bi(n,o[0]):Kt(n,o)})}return[r,i]}const Mn=new WeakMap,Ua={get(e,t){if(t===wn)return e;const n=e[t];if(t===tt||t===bn||t===At||t===rt||t==="__proto__")return n;let a;return Dt(n)?Mn.get(n)||(Mn.set(n,a=new Proxy(n,Ua)),a):n},set(e,t,n){return Nt(e,t,qt(n)),!0},deleteProperty(e,t){return Nt(e,t,void 0,!0),!0}};function D(e){return t=>{if(Dt(t)){let n;(n=Mn.get(t))||Mn.set(t,n=new Proxy(t,Ua)),e(n)}return t}}function pi(){const e=new Map,t=[];function n(o,s){const l=e.get(o);if(l)for(const d of l)try{d(s,o)}catch(c){console.error(`[bus] handler for "${o}" threw:`,c)}for(const{prefix:d,handler:c}of t)if(o===d||o.startsWith(d+"."))try{c(s,o)}catch(u){console.error(`[bus] prefix handler "${d}" threw on "${o}":`,u)}}function a(o,s){let l=e.get(o);return l||(l=new Set,e.set(o,l)),l.add(s),()=>{l.delete(s)}}function r(o,s){const l={prefix:o,handler:s};return t.push(l),()=>{const d=t.indexOf(l);d>=0&&t.splice(d,1)}}function i(){e.clear(),t.length=0}return{emit:n,on:a,onPrefix:r,clear:i}}const Fe=pi(),_i=200,Hn=new Map;let Wn=null;function yi(){Wn=null;for(const[e,t]of Hn)try{const n=t();n===void 0?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify(n))}catch(n){console.warn(`[persistence] failed to write "${e}":`,n)}Hn.clear()}function Vt(e,t){typeof localStorage>"u"||(Hn.set(e,t),Wn===null&&(Wn=setTimeout(yi,_i)))}function jt(e,t){if(typeof localStorage>"u")return t;try{const n=localStorage.getItem(e);return n===null?t:JSON.parse(n)}catch{return t}}const Ga="nisps:mode";function xi(){const e=jt(Ga,{});return{activeModeId:e.activeModeId??null,overrides:e.overrides??{}}}const[en,Ht]=gt(xi());function Wt(){Vt(Ga,()=>({activeModeId:en.activeModeId,overrides:en.overrides}))}const xe={state:en,switchMode(e){const t=en.activeModeId;t!==e&&(Ht(D(n=>{n.activeModeId=e,n.overrides[e]||(n.overrides[e]={})})),Wt(),Fe.emit("ui.mode_switch",{from:t,to:e}))},setOverride(e,t,n){Ht(D(a=>{a.overrides[e]||(a.overrides[e]={}),a.overrides[e][t]=n})),Wt(),Fe.emit("mode.params_changed",{modeId:e})},clearOverride(e,t){Ht(D(n=>{const a=n.overrides[e];a&&delete a[t]})),Wt(),Fe.emit("mode.params_changed",{modeId:e})},clearAllOverrides(e){Ht(D(t=>{t.overrides[e]={}})),Wt(),Fe.emit("mode.params_changed",{modeId:e})},getOverride(e,t){return en.overrides[e]?.[t]},reset(){Ht({activeModeId:null,overrides:{}}),Wt()}},wi="_wrap_1uogo_1",Si="_row_1uogo_12",Mi="_btn_1uogo_17",Ci="_thumbsUp_1uogo_25",$i="_thumbsDown_1uogo_34",Ai="_undo_1uogo_43",Pi="_btnAlt_1uogo_48",ki="_status_1uogo_55",Li="_statusItem_1uogo_63",Fi="_statusLabel_1uogo_70",Ei="_statusValue_1uogo_76",Ii="_busy_1uogo_81",Pe={wrap:wi,row:Si,btn:Mi,thumbsUp:Ci,thumbsDown:$i,undo:Ai,btnAlt:Pi,status:ki,statusItem:Li,statusLabel:Fi,statusValue:Ei,busy:Ii};var Ri=E("<span><span>loss</span><span>"),Oi=E("<span>training…"),Ti=E('<div role=toolbar aria-label="Training controls"><div><button type=button aria-label="Thumbs down (explore)"title="Thumbs down — explore (key: 2)"></button><button type=button aria-label="Thumbs up (train)"title="Thumbs up — train (key: 1)">+</button><button type=button aria-label=Undo title="Undo (key: Z)">↶</button></div><div><button type=button>Train</button><button type=button>Randomise</button></div><div><span><span>examples</span><span>');const zi=e=>{const t=()=>e.busy?.()??!1,n=()=>e.canUndo?.()??!0;return(()=>{var a=Ti(),r=a.firstChild,i=r.firstChild,o=i.nextSibling,s=o.nextSibling,l=r.nextSibling,d=l.firstChild,c=d.nextSibling,u=l.nextSibling,m=u.firstChild,v=m.firstChild,g=v.nextSibling;return $t(i,"click",e.onThumbsDown,!0),$t(o,"click",e.onThumbsUp,!0),$t(s,"click",e.onUndo,!0),$t(d,"click",e.onTrain,!0),$t(c,"click",e.onRandomize,!0),b(g,()=>e.exampleCount()),b(u,p(re,{get when(){return e.lastLoss()!==null},get children(){var f=Ri(),w=f.firstChild,x=w.nextSibling;return b(x,()=>e.lastLoss().toExponential(2)),A(_=>{var M=Pe.statusItem,O=Pe.statusLabel,y=Pe.statusValue;return M!==_.e&&h(f,_.e=M),O!==_.t&&h(w,_.t=O),y!==_.a&&h(x,_.a=y),_},{e:void 0,t:void 0,a:void 0}),f}}),null),b(u,p(re,{get when(){return t()},get children(){var f=Oi();return A(()=>h(f,`${Pe.statusItem} ${Pe.busy}`)),f}}),null),A(f=>{var w=Pe.wrap,x=Pe.row,_=`${Pe.btn} ${Pe.thumbsDown}`,M=t(),O=`${Pe.btn} ${Pe.thumbsUp}`,y=t(),q=`${Pe.btn} ${Pe.undo}`,W=t()||!n(),N=Pe.row,Y=Pe.btnAlt,F=t(),$=Pe.btnAlt,U=t(),ne=Pe.status,oe=Pe.statusItem,S=Pe.statusLabel,te=Pe.statusValue;return w!==f.e&&h(a,f.e=w),x!==f.t&&h(r,f.t=x),_!==f.a&&h(i,f.a=_),M!==f.o&&(i.disabled=f.o=M),O!==f.i&&h(o,f.i=O),y!==f.n&&(o.disabled=f.n=y),q!==f.s&&h(s,f.s=q),W!==f.h&&(s.disabled=f.h=W),N!==f.r&&h(l,f.r=N),Y!==f.d&&h(d,f.d=Y),F!==f.l&&(d.disabled=f.l=F),$!==f.u&&h(c,f.u=$),U!==f.c&&(c.disabled=f.c=U),ne!==f.w&&h(u,f.w=ne),oe!==f.m&&h(m,f.m=oe),S!==f.f&&h(v,f.f=S),te!==f.y&&h(g,f.y=te),f},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0}),a})()};Je(["click"]);const Di="_axis_1gq0t_1",qi="_head_1gq0t_12",Ni="_label_1gq0t_19",Bi="_preset_1gq0t_27",Vi="_value_1gq0t_34",ji="_input_1gq0t_42",Hi="_endpoints_1gq0t_87",Wi="_disabled_1gq0t_96",ft={axis:Di,head:qi,label:Ni,preset:Bi,value:Vi,input:ji,endpoints:Hi,disabled:Wi};var Ui=E("<span>"),Gi=E("<div><span></span><span>"),Xi=E("<div><div><span></span><span></span></div><input type=range min=0 max=1 step=0.001>");const Yi=e=>{let t=0;const n=()=>{const i=performance.now();i-t<350&&e.onDoubleTap?(e.onDoubleTap(),t=0):t=i},a=i=>{const o=parseFloat(i.currentTarget.value);Number.isNaN(o)||e.onChange(Math.max(0,Math.min(1,o)))},r=()=>e.accentColor??"var(--accent)";return(()=>{var i=Xi(),o=i.firstChild,s=o.firstChild,l=s.nextSibling,d=o.nextSibling;return b(s,()=>e.label),b(o,p(re,{get when(){return e.preset?.()},get children(){var c=Ui();return b(c,e.preset),A(()=>h(c,ft.preset)),c}}),l),b(l,()=>e.value().toFixed(2)),d.$$pointerdown=n,d.$$input=a,b(i,p(re,{get when(){return e.endpoints},get children(){var c=Gi(),u=c.firstChild,m=u.nextSibling;return b(u,()=>e.endpoints[0]),b(m,()=>e.endpoints[1]),A(()=>h(c,ft.endpoints)),c}}),null),A(c=>{var u=ft.axis,m={[ft.disabled]:!!e.disabled},v=r(),g=ft.head,f=ft.label,w=ft.value,x=ft.input,_=e.disabled,M=`${e.label} control axis`;return u!==c.e&&h(i,c.e=u),c.t=Ke(i,m,c.t),v!==c.a&&ke(i,"--axis-accent",c.a=v),g!==c.o&&h(o,c.o=g),f!==c.i&&h(s,c.i=f),w!==c.n&&h(l,c.n=w),x!==c.s&&h(d,c.s=x),_!==c.h&&(d.disabled=c.h=_),M!==c.r&&X(d,"aria-label",c.r=M),c},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),A(()=>d.value=e.value()),i})()};Je(["input","pointerdown"]);const Zi="_group_1erfx_1",Ki="_pill_1erfx_10",Ji="_active_1erfx_22",Qi="_disabled_1erfx_31",sn={group:Zi,pill:Ki,active:Ji,disabled:Qi};var eo=E("<div role=radiogroup>"),to=E("<button type=button role=radio>");const tn=e=>(()=>{var t=eo();return b(t,p(vt,{get each(){return e.options},children:n=>(()=>{var a=to();return a.$$click=()=>!e.disabled&&e.onChange(n.value),b(a,()=>n.label),A(r=>{var i=sn.pill,o={[sn.active]:e.value()===n.value},s=e.value()===n.value,l=e.disabled;return i!==r.e&&h(a,r.e=i),r.t=Ke(a,o,r.t),s!==r.a&&X(a,"aria-checked",r.a=s),l!==r.o&&(a.disabled=r.o=l),r},{e:void 0,t:void 0,a:void 0,o:void 0}),a})()})),A(n=>{var a=sn.group,r={[sn.disabled]:!!e.disabled},i=e.ariaLabel??"segmented control";return a!==n.e&&h(t,n.e=a),n.t=Ke(t,r,n.t),i!==n.a&&X(t,"aria-label",n.a=i),n},{e:void 0,t:void 0,a:void 0}),t})();Je(["click"]);const no="_root_xdkqq_1",ao="_scrim_xdkqq_8",ro="_panel_xdkqq_16",io="_left_xdkqq_29",oo="_right_xdkqq_36",lo="_header_xdkqq_40",so="_title_xdkqq_49",uo="_close_xdkqq_57",co="_body_xdkqq_73",ot={root:no,scrim:ao,panel:ro,left:io,right:oo,header:lo,title:so,close:uo,body:co};var mo=E('<div role=dialog aria-modal=false><div></div><aside><header><span></span><button type=button aria-label="Close drawer">×</button></header><div>');const ua=e=>{const t=n=>{e.open&&e.dismissable!==!1&&n.key==="Escape"&&(n.stopPropagation(),e.onClose())};return Yn(()=>{document.addEventListener("keydown",t)}),et(()=>{document.removeEventListener("keydown",t)}),p(re,{get when(){return e.open},get children(){return p(ui,{get children(){var n=mo(),a=n.firstChild,r=a.nextSibling,i=r.firstChild,o=i.firstChild,s=o.nextSibling,l=i.nextSibling;return a.$$click=()=>{e.dismissable!==!1&&e.onClose()},b(o,()=>e.title??""),$t(s,"click",e.onClose,!0),b(l,()=>e.children),A(d=>{var c=ot.root,u={[ot.left]:e.side==="left",[ot.right]:e.side==="right"},m=e.title??"drawer",v=ot.scrim,g=ot.panel,f=`${e.width??360}px`,w=ot.header,x=ot.title,_=ot.close,M=ot.body;return c!==d.e&&h(n,d.e=c),d.t=Ke(n,u,d.t),m!==d.a&&X(n,"aria-label",d.a=m),v!==d.o&&h(a,d.o=v),g!==d.i&&h(r,d.i=g),f!==d.n&&ke(r,"width",d.n=f),w!==d.s&&h(i,d.s=w),x!==d.h&&h(o,d.h=x),_!==d.r&&h(s,d.r=_),M!==d.d&&h(l,d.d=M),d},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),n}})}})};Je(["click"]);const fo="_canvas_mlv8d_1",ho={canvas:fo};var vo=E("<canvas role=img>");const ca=12,Fn=5e3,da=1.5,go=4,bo=600,ma=["rgba(255, 106, 0, 0.25)","rgba(0, 204, 255, 0.25)","rgba(180, 100, 255, 0.25)","rgba(80, 200, 120, 0.25)","rgba(255, 200, 80, 0.25)"],fa=["rgba(255, 106, 0, 0.7)","rgba(0, 204, 255, 0.7)","rgba(180, 100, 255, 0.7)","rgba(80, 200, 120, 0.7)","rgba(255, 200, 80, 0.7)"];function po(e,t){if(!(t.length<2)){e.beginPath(),e.moveTo(t[0].x,t[0].y);for(let n=0;n<t.length-1;n++){const a=t[Math.max(0,n-1)],r=t[n],i=t[n+1],o=t[Math.min(t.length-1,n+2)];for(let s=1;s<=8;s++){const l=s/8,d=l*l,c=d*l,u=.5*(2*r.x+(-a.x+i.x)*l+(2*a.x-5*r.x+4*i.x-o.x)*d+(-a.x+3*r.x-3*i.x+o.x)*c),m=.5*(2*r.y+(-a.y+i.y)*l+(2*a.y-5*r.y+4*i.y-o.y)*d+(-a.y+3*r.y-3*i.y+o.y)*c);e.lineTo(u,m)}}e.stroke()}}const _o=e=>{let t,n=0,a=null;const r=()=>e.size??200,i=(c,u,m,v)=>{const g=m<=.1?16:m<=.3?8:m<=.6?4:2;c.strokeStyle="rgba(255,255,255,0.04)",c.lineWidth=1;for(let x=1;x<g;x++){const _=x/g*u;c.beginPath(),c.moveTo(_,0),c.lineTo(_,u),c.stroke(),c.beginPath(),c.moveTo(0,_),c.lineTo(u,_),c.stroke()}c.strokeStyle="rgba(255,255,255,0.08)",c.beginPath(),c.moveTo(0,u/2),c.lineTo(u,u/2),c.moveTo(u/2,0),c.lineTo(u/2,u),c.stroke();const f=v[0]-m*.5,w=v[1]-m*.5;c.strokeStyle="rgba(255, 106, 0, 0.7)",c.lineWidth=1,c.strokeRect(f*u,(1-w-m)*u,m*u,m*u)},o=()=>{if(!t)return;const c=window.devicePixelRatio||1,u=r()*c;(t.width!==u||t.height!==u)&&(t.width=u,t.height=u);const m=t.getContext("2d");if(!m)return;m.clearRect(0,0,u,u);const v=Math.max(.01,Math.min(1,e.zoom())),g=e.anchor(),f=e.position(),w=e.trail(),x=e.regionPins?.()??[];m.fillStyle="#0a0a0a",m.fillRect(0,0,u,u),i(m,u,v,g);for(const y of x){const q=y.x*u,W=(1-y.y-y.height)*u,N=y.width*u,Y=y.height*u,F=ma[y.colorSlot%ma.length],$=fa[y.colorSlot%fa.length];m.fillStyle=F,m.fillRect(q,W,N,Y),m.strokeStyle=$,m.lineWidth=2*c,m.strokeRect(q,W,N,Y)}if(w.length>=2){const y=performance.now(),q=da+(go-da)*(1-v),W=w.filter(N=>y-N.t<=Fn).map(N=>({x:N.x*u,y:(1-N.y)*u}));W.length>=2&&(m.lineWidth=q*c,m.lineCap="round",m.lineJoin="round",m.strokeStyle="rgba(255, 106, 0, 0.55)",po(m,W));for(const N of w){const Y=y-N.t;if(Y>Fn)continue;const F=1-Y/Fn;m.fillStyle=`rgba(255, 106, 0, ${F*.6})`;const $=N.x*u,U=(1-N.y)*u;m.beginPath(),m.arc($,U,2*c,0,Math.PI*2),m.fill()}}const _=f[0]*u,M=(1-f[1])*u;m.fillStyle="#00ccff",m.beginPath(),m.arc(_,M,4*c,0,Math.PI*2),m.fill(),m.strokeStyle="rgba(0, 204, 255, 0.4)",m.lineWidth=1,m.beginPath(),m.arc(_,M,9*c,0,Math.PI*2),m.stroke();const O=e.noiseRings?.();if(O){const[y,q]=O;m.strokeStyle="rgba(255, 200, 80, 0.4)",m.beginPath(),m.arc(_,M,y*u,0,Math.PI*2),m.stroke(),m.strokeStyle="rgba(255, 200, 80, 0.6)",m.beginPath(),m.arc(_,M,q*u,0,Math.PI*2),m.stroke()}e.frozen?.()&&(m.fillStyle="rgba(100, 180, 255, 0.15)",m.fillRect(0,0,u,u),m.fillStyle="rgba(100, 180, 255, 0.85)",m.font=`${12*c}px var(--font-mono)`,m.textAlign="center",m.fillText("FROZEN",u/2,u-12*c))},s=()=>{o(),n=requestAnimationFrame(s)};Yn(()=>{n=requestAnimationFrame(s)}),et(()=>{n&&cancelAnimationFrame(n),a&&clearTimeout(a)}),ze(()=>{e.zoom(),e.position(),e.trail(),o()});const l=c=>{if(e.onLongPress&&(a=setTimeout(()=>{e.onLongPress?.(),a=null},bo)),t&&e.onTrailTap){const u=t.getBoundingClientRect(),m=c.clientX-u.left,v=c.clientY-u.top,g=e.trail();for(const f of g){const w=f.x*u.width,x=(1-f.y)*u.height,_=w-m,M=x-v;if(_*_+M*M<=ca*ca){e.onTrailTap({x:f.x,y:f.y,t:f.t}),a&&(clearTimeout(a),a=null);return}}}},d=()=>{a&&(clearTimeout(a),a=null)};return(()=>{var c=vo();c.addEventListener("pointercancel",d),c.$$pointerup=d,c.$$pointerdown=l;var u=t;return typeof u=="function"?ct(u,c):t=c,A(m=>{var v=ho.canvas,g=`${r()}px`,f=`${r()}px`,w=e.ariaLabel??"Joy map";return v!==m.e&&h(c,m.e=v),g!==m.t&&ke(c,"width",m.t=g),f!==m.a&&ke(c,"height",m.a=f),w!==m.o&&X(c,"aria-label",m.o=w),m},{e:void 0,t:void 0,a:void 0,o:void 0}),c})()};Je(["pointerdown","pointerup"]);function We(e){return e<0?0:e>1?1:e}function K(e,t,n){return e<t?t:e>n?n:e}function yo(e){return We(e)}function xo(e,t=4){if(e<=0)return 0;if(e>=1)return 1;const n=Math.exp(t)-1;return n===0?e:(Math.exp(t*e)-1)/n}function wo(e,t=4){if(e<=0)return 0;if(e>=1)return 1;const n=Math.exp(t)-1;return n===0?e:Math.log(1+e*n)/t}function So(e){const t=We(e);return t*t}function Mo(e){return Math.sqrt(We(e))}function Co(e,t=8){const n=(e-.5)*t,a=1/(1+Math.exp(-n)),r=1/(1+Math.exp(t/2)),i=1/(1+Math.exp(-t/2));return(a-r)/(i-r)}function $o(e){const t=We(e);return t*t*(3-2*t)}function Un(e,t){if(t===1)return We(e);const n=e-.5,r=(n<0?-1:1)*Math.pow(Math.abs(n)*2,t)/2;return We(r+.5)}function Xa(e,t,n){switch(e){case"linear":return yo(t);case"exp":return xo(t,n??4);case"log":return wo(t,n??4);case"square":return So(t);case"sqrt":return Mo(t);case"sigmoid":return Co(t,n??8);case"cubic":return $o(t);case"centered_power":return Un(t,n??1)}}const Ao=["linear","exp","log","square","sqrt","sigmoid","cubic","centered_power"],Ya="nisps:control",Po=[{axis:0,values:{zoom:.1,noiseCap:.02,noiseGrowth:1.1,learningRate:.1,weightDecay:.15,noiseDistribution:"gaussian"}},{axis:.5,values:{zoom:.5,noiseCap:.12,noiseGrowth:1.5,learningRate:1,weightDecay:.06,noiseDistribution:"gaussian"}},{axis:1,values:{zoom:1,noiseCap:.3,noiseGrowth:2.5,learningRate:3,weightDecay:0,noiseDistribution:"cauchy"}}],ko=[{axis:0,values:{maxExamples:5,exampleDecay:.3,memoryWeightDecay:.2,noiseDecay:.85,convergenceThreshold:.001}},{axis:.5,values:{maxExamples:50,exampleDecay:.7,memoryWeightDecay:.06,noiseDecay:.97,convergenceThreshold:1e-5}},{axis:1,values:{maxExamples:500,exampleDecay:1,memoryWeightDecay:0,noiseDecay:.995,convergenceThreshold:1e-8}}],Lo=[{axis:0,values:{inputCurve:1,deadzone:0,smoothing:0,slewRate:1,momentumZoom:"off"}},{axis:.5,values:{inputCurve:1.5,deadzone:.05,smoothing:.15,slewRate:.3,momentumZoom:"off"}},{axis:1,values:{inputCurve:3,deadzone:.15,smoothing:.4,slewRate:.1,momentumZoom:"off"}}],Fo=[{id:"default",label:"Default",boldness:.5,memory:.5,precision:.3},{id:"first-touch",label:"First Touch",boldness:.2,memory:.7,precision:.6},{id:"jazz-hands",label:"Jazz Hands",boldness:.8,memory:.2,precision:0},{id:"sculptor",label:"Sculptor",boldness:.3,memory:.9,precision:.8},{id:"improviser",label:"Improviser",boldness:.6,memory:.3,precision:.2},{id:"microscope",label:"Microscope",boldness:.1,memory:1,precision:1}];function En(e,t){const n=K(t,0,1);let a=e[0],r=e[e.length-1];for(let s=0;s<e.length-1;s++){const l=e[s],d=e[s+1];if(n>=l.axis&&n<=d.axis){a=l,r=d;break}}if(a===r)return{...a.values};const i=(n-a.axis)/(r.axis-a.axis),o={};for(const s of Object.keys(a.values)){const l=a.values[s],d=r.values[s];typeof l=="number"&&typeof d=="number"?o[s]=l+(d-l)*i:o[s]=i>=.75?d??l:l}return o}function Eo(){const e={boldness:.5,memory:.5,precision:.3,offsets:{boldness:{},memory:{},precision:{}},presetId:"default"},t=jt(Ya,{});return{boldness:t.boldness??e.boldness,memory:t.memory??e.memory,precision:t.precision??e.precision,offsets:t.offsets??e.offsets,presetId:t.presetId??e.presetId}}const[it,Ut]=gt(Eo());function Gt(){Vt(Ya,()=>({boldness:it.boldness,memory:it.memory,precision:it.precision,offsets:it.offsets,presetId:it.presetId}))}const Me={state:it,setAxis(e,t){const n=K(t,0,1);Ut(D(a=>{a[e]=n,a.presetId!==null&&(a.presetId=null)})),Gt()},setOffset(e,t,n){Ut(D(a=>{a.offsets[e][t]=n})),Gt()},clearOffsets(e){Ut(D(t=>{t.offsets[e]={}})),Gt()},applyPreset(e){const t=Fo.find(n=>n.id===e);return t?(Ut(D(n=>{n.boldness=t.boldness,n.memory=t.memory,n.precision=t.precision,n.presetId=t.id})),Gt(),!0):!1},resolveParams(){const e=En(Po,it.boldness),t=En(ko,it.memory),n=En(Lo,it.precision),a={...e,...t,...n},r=i=>{const o=it.offsets[i];for(const[s,l]of Object.entries(o)){const d=a[s];typeof d=="number"&&(a[s]=d+l)}};return r("boldness"),r("memory"),r("precision"),a},reset(){Ut({boldness:.5,memory:.5,precision:.3,offsets:{boldness:{},memory:{},precision:{}},presetId:"default"}),Gt()}},Pt=.01,Ot=1,un=Pt,Za=.4,vn=.2,gn=5,Ka=.95,Io=150,Gn=1/60,Ro={off:null,gentle:{factor:.6,minZoomMul:.3,maxZoomMul:1},strong:{factor:1.5,minZoomMul:.15,maxZoomMul:1}};function Ja(){return{zoom:1,zoomX:null,zoomY:null,anchorX:.5,anchorY:.5,anchorMode:"center",deadzone:0,inputCurve:1,inputCurveX:null,inputCurveY:null,smoothing:0,momentumZoom:"off",velocityWindow:Io,invertX:!1,invertY:!1}}function Kn(){return{smoothedX:.5,smoothedY:.5,velocityHistory:[],momentumZoomMultiplier:1,frozen:!1}}function ha(e,t){if(t<=0)return e;const n=e-.5,a=Math.abs(n),r=t*.5;if(a<=r)return .5;const i=n<0?-1:1,o=(a-r)/(.5-r)*.5;return .5+i*o}function va(e,t,n){return K(t+(e-.5)*n,0,1)}function ga(e,t,n,a){if(n<=0)return t;const r=a>0?a:Gn,i=1-n,o=1-Math.pow(1-i,r/Gn);return e+o*(t-e)}function Oo(e,t,n,a,r){const i=Ro[e.momentumZoom];if(!i)return{multiplier:1,history:[]};const o=performance.now(),s=e.velocityWindow,d=[...t.velocityHistory.filter(y=>o-y.t<=s),{x:n,y:a,t:o}];if(d.length<2)return{multiplier:1,history:d};const c=d[0],u=d[d.length-1],m=u.t-c.t;if(m<=0)return{multiplier:t.momentumZoomMultiplier,history:d};const v=u.x-c.x,g=u.y-c.y,w=Math.sqrt(v*v+g*g)/(m/1e3),x=K(w*i.factor,0,1),_=i.maxZoomMul-(i.maxZoomMul-i.minZoomMul)*x,M=K(r*6,0,1);return{multiplier:t.momentumZoomMultiplier+M*(_-t.momentumZoomMultiplier),history:d}}function To(e,t){return e.anchorMode==="center"?.5:(e.anchorMode==="sticky",e.anchorX)}function zo(e,t){return e.anchorMode==="center"?.5:(e.anchorMode==="sticky",e.anchorY)}function Do(e,t,n,a=Gn){const r=Math.max(0,a),i=t.zoomX??t.zoom,o=t.zoomY??t.zoom,s=i<=un,l=o<=un;if(s&&l)return{x:n.smoothedX,y:n.smoothedY,frozen:!0,state:{...n,frozen:!0}};let[c,u]=e,m=t.invertX?1-c:c,v=t.invertY?1-u:u;m=ha(m,t.deadzone),v=ha(v,t.deadzone);{const N=m-.5,Y=v-.5,F=Math.sqrt(N*N+Y*Y);if(F>.5&&F>1e-12){const $=.5/F;m=.5+N*$,v=.5+Y*$}}const g=To(t),f=zo(t),w=s?un:K(i*n.momentumZoomMultiplier,Pt,Ot),x=l?un:K(o*n.momentumZoomMultiplier,Pt,Ot);m=s?n.smoothedX:va(m,g,w),v=l?n.smoothedY:va(v,f,x);const _=t.inputCurveX??t.inputCurve,M=t.inputCurveY??t.inputCurve;s||(m=Un(m,_)),l||(v=Un(v,M));const O=s?n.smoothedX:ga(n.smoothedX,m,t.smoothing,r),y=l?n.smoothedY:ga(n.smoothedY,v,t.smoothing,r),{multiplier:q,history:W}=Oo(t,n,c,u,r);return{x:O,y,frozen:!1,state:{smoothedX:O,smoothedY:y,velocityHistory:W,momentumZoomMultiplier:q,frozen:!1}}}const Qa="nisps:input";function qo(){const e=Ja(),t=jt(Qa,{});return{...e,...t}}const[er,Ue]=gt(qo()),[xt,In]=gt(Kn());function Ge(){Vt(Qa,()=>({...er}))}const H={config:er,liveState:xt,setZoom(e){const t=K(e,Pt,Ot);Ue(D(n=>{const a=n.zoom;n.zoom=t,n.anchorMode==="auto"&&a!==t&&(n.anchorX=xt.smoothedX,n.anchorY=xt.smoothedY)})),Ge()},setZoomPerAxis(e,t){Ue(D(n=>{n.zoomX=e!==null?K(e,Pt,Ot):null,n.zoomY=t!==null?K(t,Pt,Ot):null,n.anchorMode==="auto"&&(n.anchorX=xt.smoothedX,n.anchorY=xt.smoothedY)})),Ge()},setAnchor(e,t){Ue(D(n=>{n.anchorX=K(e,0,1),n.anchorY=K(t,0,1)})),Ge()},setAnchorMode(e){Ue(D(t=>{t.anchorMode=e,e==="center"?(t.anchorX=.5,t.anchorY=.5):e==="auto"&&(t.anchorX=xt.smoothedX,t.anchorY=xt.smoothedY)})),Ge()},setDeadzone(e){Ue(D(t=>{t.deadzone=K(e,0,Za)})),Ge()},setInputCurve(e){Ue(D(t=>{t.inputCurve=K(e,vn,gn)})),Ge()},setInputCurvePerAxis(e,t){Ue(D(n=>{n.inputCurveX=e!==null?K(e,vn,gn):null,n.inputCurveY=t!==null?K(t,vn,gn):null})),Ge()},setSmoothing(e){Ue(D(t=>{t.smoothing=K(e,0,Ka)})),Ge()},setMomentumZoom(e){Ue(D(t=>{t.momentumZoom=e})),e==="off"&&In(D(t=>{t.velocityHistory=[],t.momentumZoomMultiplier=1})),Ge()},setInvert(e,t){Ue(D(n=>{n.invertX=e,n.invertY=t})),Ge()},setVelocityWindow(e){Ue(D(t=>{t.velocityWindow=K(e,50,500)})),Ge()},__setLiveState(e){In(e)},reset(){Ue(Ja()),In(Kn()),Ge()}},tr="nisps:session",No=20;function nr(){const e=jt(tr,{});return{snapshots:[],ab:{a:null,b:null,live:"B"},regionPins:e.regionPins??[],paramPins:e.paramPins??[],presets:e.presets??[]}}const[Ye,Ee]=gt(nr());function wt(){Vt(tr,()=>({regionPins:Ye.regionPins,paramPins:Ye.paramPins,presets:Ye.presets}))}let Xn=0;function Bo(){return Xn+=1,`snap-${Date.now().toString(36)}-${Xn}`}const Z={state:Ye,pushSnapshot(e,t={}){const n={id:Bo(),tag:e,timestamp:Date.now(),noiseLevel:t.noiseLevel??0,zoomLevel:t.zoomLevel??null,weights:t.weights?new Float32Array(t.weights):null};return Ee(D(a=>{a.snapshots.push(n),a.snapshots.length>No&&a.snapshots.shift()})),Fe.emit("snap.push",{tag:e}),n},peekSnapshot(){return Ye.snapshots.length>0?Ye.snapshots[Ye.snapshots.length-1]:null},listSnapshots(){return Ye.snapshots},popSnapshot(){let e=null;Ee(D(n=>{e=n.snapshots.pop()??null}));const t=e?.tag??null;return Fe.emit("snap.pop",{tag:t}),e},jumpToSnapshot(e){const t=Ye.snapshots.find(n=>n.id===e)??null;return t?(Ee(D(n=>{const a=n.snapshots.findIndex(r=>r.id===e);a>=0&&(n.snapshots=n.snapshots.slice(0,a+1))})),Fe.emit("snap.pop",{tag:t.tag}),t):null},clearSnapshots(){Ee(D(e=>{e.snapshots=[]})),Fe.emit("snap.cleared",void 0)},captureA(e){Ee(D(t=>{t.ab.a=e,t.ab.live="B"}))},captureB(e){Ee(D(t=>{t.ab.b=e}))},toggleAB(){let e="B";return Ee(D(t=>{e=t.ab.live==="A"?"B":"A",t.ab.live=e})),e},acceptB(){Ee(D(e=>{e.ab.a=null,e.ab.live="B"}))},revertToA(){Ee(D(e=>{e.ab.b=null,e.ab.live="A"}))},resetAB(){Ee(D(e=>{e.ab={a:null,b:null,live:"B"}}))},addRegionPin(e){const t=`pin-${Date.now().toString(36)}-${Math.floor(Math.random()*1e6)}`,n=e.colorSlot??Ye.regionPins.length%5,a={...e,colorSlot:n,id:t,createdAt:Date.now()};return Ee(D(r=>{r.regionPins.length>=5&&r.regionPins.shift(),r.regionPins.push(a)})),wt(),Fe.emit("pin.create",{kind:"region",id:t}),a},removeRegionPin(e){Ee(D(t=>{const n=t.regionPins.findIndex(a=>a.id===e);n>=0&&t.regionPins.splice(n,1)})),wt(),Fe.emit("pin.remove",{kind:"region",id:e})},clearRegionPins(){Ee(D(e=>{e.regionPins=[]})),wt()},toggleParamPin(e,t){let n=!1;return Ee(D(a=>{const r=a.paramPins.findIndex(i=>i.key===e);r>=0?(a.paramPins.splice(r,1),n=!1):(a.paramPins.push({key:e,outputIndex:t}),n=!0)})),wt(),n?Fe.emit("pin.create",{kind:"param",id:e}):Fe.emit("pin.remove",{kind:"param",id:e}),n},isParamPinned(e){return Ye.paramPins.some(t=>t.key===e)},clearParamPins(){Ee(D(e=>{e.paramPins=[]})),wt()},paramPinMask(e,t){const n=new Uint8Array(e);for(const a of Ye.paramPins)t&&!a.key.startsWith(t+":")||a.outputIndex>=0&&a.outputIndex<e&&(n[a.outputIndex]=1);return n},savePreset(e,t){const n={id:`preset-${Date.now().toString(36)}`,name:e,createdAt:Date.now(),payload:t};return Ee(D(a=>{a.presets.push(n)})),wt(),n},removePreset(e){Ee(D(t=>{const n=t.presets.findIndex(a=>a.id===e);n>=0&&t.presets.splice(n,1)})),wt()},reset(){Ee(nr()),Xn=0}},ar="nisps:exploration";function rr(){return{noiseLevel:.05,noiseFloor:.005,noiseCap:.12,noiseGrowth:1.5,noiseDecay:.97,spread:.6,learningRate:1,weightDecay:.06,autoExploreEnabled:!1,autoExploreIntervalMs:2e3,autoExploreIntensity:.5,pressureForce:0,holdMs:0}}function Vo(){const e=rr(),t=jt(ar,{});return{...e,noiseFloor:t.noiseFloor??e.noiseFloor,noiseCap:t.noiseCap??e.noiseCap,noiseGrowth:t.noiseGrowth??e.noiseGrowth,noiseDecay:t.noiseDecay??e.noiseDecay,spread:t.spread??e.spread,learningRate:t.learningRate??e.learningRate,weightDecay:t.weightDecay??e.weightDecay,autoExploreEnabled:t.autoExploreEnabled??e.autoExploreEnabled,autoExploreIntervalMs:t.autoExploreIntervalMs??e.autoExploreIntervalMs,autoExploreIntensity:t.autoExploreIntensity??e.autoExploreIntensity}}const[He,Te]=gt(Vo());function Xe(){Vt(ar,()=>({noiseFloor:He.noiseFloor,noiseCap:He.noiseCap,noiseGrowth:He.noiseGrowth,noiseDecay:He.noiseDecay,spread:He.spread,learningRate:He.learningRate,weightDecay:He.weightDecay,autoExploreEnabled:He.autoExploreEnabled,autoExploreIntervalMs:He.autoExploreIntervalMs,autoExploreIntensity:He.autoExploreIntensity}))}const I={state:He,applyCompoundParams(e){Te(D(t=>{const n=l=>{const d=e[l];return typeof d=="number"?d:void 0},a=n("noiseCap");a!==void 0&&(t.noiseCap=K(a,.005,1));const r=n("noiseGrowth");r!==void 0&&(t.noiseGrowth=K(r,1,4));const i=n("noiseDecay");i!==void 0&&(t.noiseDecay=K(i,0,1));const o=n("learningRate");o!==void 0&&(t.learningRate=K(o,.01,10));const s=n("weightDecay");s!==void 0&&(t.weightDecay=K(s,0,.5)),t.noiseLevel>t.noiseCap&&(t.noiseLevel=t.noiseCap),t.noiseLevel<t.noiseFloor&&(t.noiseLevel=t.noiseFloor)})),Xe()},setNoiseLevel(e){Te(D(t=>{t.noiseLevel=K(e,t.noiseFloor,t.noiseCap)}))},setSpread(e){Te(D(t=>{t.spread=K(e,0,1)})),Xe()},setNoiseFloor(e){Te(D(t=>{t.noiseFloor=K(e,0,t.noiseCap),t.noiseLevel<t.noiseFloor&&(t.noiseLevel=t.noiseFloor)})),Xe()},setNoiseCap(e){Te(D(t=>{t.noiseCap=K(e,t.noiseFloor,1),t.noiseLevel>t.noiseCap&&(t.noiseLevel=t.noiseCap)})),Xe()},setNoiseGrowth(e){Te(D(t=>{t.noiseGrowth=K(e,1,4)})),Xe()},setNoiseDecay(e){Te(D(t=>{t.noiseDecay=K(e,0,1)})),Xe()},setLearningRate(e){Te(D(t=>{t.learningRate=K(e,.001,10)})),Xe()},setWeightDecay(e){Te(D(t=>{t.weightDecay=K(e,0,.5)})),Xe()},growNoise(e=.5){let t=He.noiseLevel;return Te(D(n=>{const a=K(e,0,1),r=1+(n.noiseGrowth-1)*(.5+a);t=K(n.noiseLevel*r,n.noiseFloor,n.noiseCap),n.noiseLevel=t})),t},decayNoise(e=.5){let t=He.noiseLevel;return Te(D(n=>{const a=K(e,0,1),r=n.noiseDecay-(1-n.noiseDecay)*(a-.5)*.4;t=K(n.noiseLevel*K(r,0,1),n.noiseFloor,n.noiseCap),n.noiseLevel=t})),t},setAutoExplore(e){Te(D(t=>{t.autoExploreEnabled=e})),Xe()},setAutoExploreInterval(e){Te(D(t=>{t.autoExploreIntervalMs=K(e,500,1e4)})),Xe()},setAutoExploreIntensity(e){Te(D(t=>{t.autoExploreIntensity=K(e,.1,1)})),Xe()},setPressure(e,t){Te(D(n=>{n.pressureForce=K(e,0,1),n.holdMs=Math.max(0,t)}))},reset(){Te(rr()),Xe()}},jo="_wrap_lq3ei_1",Ho="_label_lq3ei_10",Wo="_row_lq3ei_17",Uo="_input_lq3ei_23",Go="_value_lq3ei_80",Xo="_unit_lq3ei_88",Yo="_disabled_lq3ei_93",St={wrap:jo,label:Ho,row:Wo,input:Uo,value:Go,unit:Xo,disabled:Yo};var ba=E("<span>"),Zo=E("<label><div><input type=range min=0 max=1><span>");const Le=e=>{const t=()=>e.min,n=()=>e.max,a=()=>e.step??(n()-t())/100,r=()=>e.curve??"linear",i=()=>e.curveParam,o=$e(()=>{const d=e.value,c=e.decimals;if(c===void 0){const u=n()-t(),m=u>=100?0:u>=10?1:u>=1?2:3;return d.toFixed(m)}return d.toFixed(c)}),s=$e(()=>{const d=n()-t();if(d<=0)return 0;const c=(e.value-t())/d;return r()==="linear",c}),l=d=>{const c=parseFloat(d.currentTarget.value);let u;if(r()==="linear")u=t()+c*(n()-t());else{const m=Xa(r(),c,i());u=t()+m*(n()-t())}e.onChange(u)};return(()=>{var d=Zo(),c=d.firstChild,u=c.firstChild,m=u.nextSibling;return b(d,p(re,{get when(){return e.label},get children(){var v=ba();return b(v,()=>e.label),A(()=>h(v,St.label)),v}}),c),u.$$input=l,b(m,o,null),b(m,(()=>{var v=zt(()=>!!e.unit);return()=>v()?(()=>{var g=ba();return b(g,()=>e.unit),A(()=>h(g,St.unit)),g})():null})(),null),A(v=>{var g=St.wrap,f={[St.disabled]:!!e.disabled},w=St.row,x=St.input,_=a()/Math.max(1e-6,n()-t()),M=e.disabled,O=e.ariaLabel??e.label??"slider",y=St.value;return g!==v.e&&h(d,v.e=g),v.t=Ke(d,f,v.t),w!==v.a&&h(c,v.a=w),x!==v.o&&h(u,v.o=x),_!==v.i&&X(u,"step",v.i=_),M!==v.n&&(u.disabled=v.n=M),O!==v.s&&X(u,"aria-label",v.s=O),y!==v.h&&h(m,v.h=y),v},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),A(()=>u.value=s()),d})()};Je(["input"]);const Ko="_editor_1yxvy_1",Jo="_compact_1yxvy_11",Qo="_header_1yxvy_16",el="_name_1yxvy_22",tl="_id_1yxvy_28",nl="_toggles_1yxvy_33",al="_fields_1yxvy_38",rl="_curveRow_1yxvy_44",il="_fieldLabel_1yxvy_51",ol="_select_1yxvy_58",nt={editor:Ko,compact:Jo,header:Qo,name:el,id:tl,toggles:nl,fields:al,curveRow:rl,fieldLabel:il,select:ol};var ll=E("<div><header><strong></strong><span></span></header><div></div><div><label><span>curve</span><select>"),sl=E("<option>");const ul=e=>{const t=n=>{e.onChange({...e.override(),...n})};return(()=>{var n=ll(),a=n.firstChild,r=a.firstChild,i=r.nextSibling,o=a.nextSibling,s=o.nextSibling,l=s.firstChild,d=l.firstChild,c=d.nextSibling;return b(r,()=>e.param.label),b(i,()=>e.param.name),b(o,p(tn,{options:[{value:"live",label:"Live"},{value:"muted",label:"Mute"},{value:"pinned",label:"Pin"}],value:()=>e.override().pinned?"pinned":e.override().muted?"muted":"live",onChange:u=>{t(u==="live"?{muted:!1,pinned:!1}:u==="muted"?{muted:!0,pinned:!1}:{muted:!1,pinned:!0})},ariaLabel:"param mode"})),b(s,p(Le,{label:"min",get min(){return e.param.hardMin},get max(){return e.param.hardMax},get value(){return e.override().min},onChange:u=>t({min:Math.min(u,e.override().max)})}),l),b(s,p(Le,{label:"max",get min(){return e.param.hardMin},get max(){return e.param.hardMax},get value(){return e.override().max},onChange:u=>t({max:Math.max(u,e.override().min)})}),l),c.addEventListener("change",u=>t({curve:u.currentTarget.value})),b(c,()=>Ao.map(u=>(()=>{var m=sl();return m.value=u,b(m,u),m})())),b(s,p(Le,{label:"fixed value",get min(){return e.param.hardMin},get max(){return e.param.hardMax},get value(){return e.override().fixedValue},onChange:u=>t({fixedValue:u}),get disabled(){return!e.override().muted}}),null),A(u=>{var m=nt.editor,v={[nt.compact]:!!e.compact},g=nt.header,f=nt.name,w=nt.id,x=nt.toggles,_=nt.fields,M=nt.curveRow,O=nt.fieldLabel,y=nt.select;return m!==u.e&&h(n,u.e=m),u.t=Ke(n,v,u.t),g!==u.a&&h(a,u.a=g),f!==u.o&&h(r,u.o=f),w!==u.i&&h(i,u.i=w),x!==u.n&&h(o,u.n=x),_!==u.s&&h(s,u.s=_),M!==u.h&&h(l,u.h=M),O!==u.r&&h(d,u.r=O),y!==u.d&&h(c,u.d=y),u},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),A(()=>c.value=e.override().curve),n})()},cl="_wrap_389vj_1",dl="_canvas_389vj_12",ml="_label_389vj_18",fl="_pulsing_389vj_30",cn={wrap:cl,canvas:dl,label:ml,pulsing:fl};var hl=E("<div><canvas role=img></canvas><div>");const pa={dead:{glow:"rgba(140, 140, 140, 0.45)",text:"DEAD"},saturating:{glow:"rgba(245, 196, 94, 0.6)",text:"SATURATING"},healthy:{glow:"rgba(107, 194, 107, 0.45)",text:"HEALTHY"}},vl=e=>{let t;const n=()=>e.status();ze(()=>{if(!t)return;const r=window.devicePixelRatio||1,i=(e.width??200)*r,o=(e.height??60)*r;(t.width!==i||t.height!==o)&&(t.width=i,t.height=o);const s=t.getContext("2d");if(!s)return;s.clearRect(0,0,i,o);const l=e.histogram();if(l.length===0)return;let d=0;for(const m of l)m>d&&(d=m);d<=0&&(d=1);const c={dead:"rgba(140, 140, 140, 0.7)",saturating:"rgba(245, 196, 94, 0.85)",healthy:"rgba(107, 194, 107, 0.85)"};s.fillStyle=c[n()];const u=i/l.length;for(let m=0;m<l.length;m++){const v=l[m]/d*o;s.fillRect(m*u+1,o-v,u-2,v)}});const a=$e(()=>`box-shadow: 0 0 18px ${pa[n()].glow};`);return(()=>{var r=hl(),i=r.firstChild,o=i.nextSibling,s=t;return typeof s=="function"?ct(s,i):t=i,b(o,()=>pa[n()].text),A(l=>{var d=cn.wrap,c=cn.canvas,u={[cn.pulsing]:n()==="saturating"},m=`${e.width??200}px`,v=`${e.height??60}px`,g=e.ariaLabel??"Weight health histogram",f=cn.label,w=a();return d!==l.e&&h(r,l.e=d),c!==l.t&&h(i,l.t=c),l.a=Ke(i,u,l.a),m!==l.o&&ke(i,"width",l.o=m),v!==l.i&&ke(i,"height",l.i=v),g!==l.n&&X(i,"aria-label",l.n=g),f!==l.s&&h(o,l.s=f),l.h=An(o,w,l.h),l},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),r})()},gl="_canvas_1ra7r_1",bl={canvas:gl};var pl=E("<canvas role=img>");const _l={vanishing:"#5b9eef",exploding:"#ef5b5b",converged:"#9a9a9a",healthy:"#6bc26b"},yl=e=>{let t;return ze(()=>{if(!t)return;const n=window.devicePixelRatio||1,a=(e.width??240)*n,r=(e.height??80)*n;(t.width!==a||t.height!==r)&&(t.width=a,t.height=r);const i=t.getContext("2d");if(!i)return;i.clearRect(0,0,a,r);const o=e.layerNorms(),s=e.status();if(o.length===0)return;let l=0;for(const c of o)c>l&&(l=c);l<=0&&(l=1);const d=a/o.length;for(let c=0;c<o.length;c++){const u=o[c]/l*(r-14*n),m=s[c]??"healthy";i.fillStyle=_l[m],i.fillRect(c*d+2,r-u-2,d-4,u),i.fillStyle="#5a5a5a",i.font=`${10*n}px var(--font-mono)`,i.textAlign="center",i.fillText(`L${c}`,c*d+d/2,r-2)}}),(()=>{var n=pl(),a=t;return typeof a=="function"?ct(a,n):t=n,A(r=>{var i=bl.canvas,o=`${e.width??240}px`,s=`${e.height??80}px`,l=e.ariaLabel??"Gradient flow per layer";return i!==r.e&&h(n,r.e=i),o!==r.t&&ke(n,"width",r.t=o),s!==r.a&&ke(n,"height",r.a=s),l!==r.o&&X(n,"aria-label",r.o=l),r},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()},xl="_canvas_rdbrc_1",wl={canvas:xl};var Sl=E("<canvas role=img>");const Ml=["#1a0033","#5a1f5a","#a64f30","#ff8030","#ffe0a8","#ffffff"];function Cl(e){return e.map(t=>{const n=t.replace("#",""),a=parseInt(n.substring(0,2),16),r=parseInt(n.substring(2,4),16),i=parseInt(n.substring(4,6),16);return[a,r,i]})}function $l(e,t,n){return[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n,e[2]+(t[2]-e[2])*n]}function Al(e,t){if(e.length===0)return[0,0,0];if(e.length===1)return e[0];const a=Math.max(0,Math.min(1,t))*(e.length-1),r=Math.min(e.length-2,Math.floor(a)),i=a-r;return $l(e[r],e[r+1],i)}const Pl=e=>{let t;return ze(()=>{if(!t)return;const n=e.samples(),a=e.resolution,r=Cl(e.palette??Ml),i=e.size??240,o=window.devicePixelRatio||1,s=i*o;(t.width!==s||t.height!==s)&&(t.width=s,t.height=s);const l=t.getContext("2d");if(!l||(l.imageSmoothingEnabled=!1,l.clearRect(0,0,s,s),n.length===0||a<=0))return;const d=a*a;if(n.length<d)return;let c=1/0,u=-1/0;for(let g=0;g<d;g++){const f=n[g];f<c&&(c=f),f>u&&(u=f)}const m=u-c,v=s/a;for(let g=0;g<a;g++)for(let f=0;f<a;f++){const w=n[g*a+f]??0;let x=m>0?(w-c)/m:0;e.colorMode==="variance"?x=Math.sqrt(x):e.colorMode==="divergence"&&(x=x*x);const[_,M,O]=Al(r,x);l.fillStyle=`rgb(${_|0}, ${M|0}, ${O|0})`,l.fillRect(Math.floor(f*v),Math.floor((a-1-g)*v),Math.ceil(v+1),Math.ceil(v+1))}if(e.showGrid){l.strokeStyle="rgba(0,0,0,0.18)",l.lineWidth=1;for(let g=1;g<a;g++){const f=Math.floor(g*v)+.5;l.beginPath(),l.moveTo(f,0),l.lineTo(f,s),l.stroke(),l.beginPath(),l.moveTo(0,f),l.lineTo(s,f),l.stroke()}}}),(()=>{var n=Sl(),a=t;return typeof a=="function"?ct(a,n):t=n,A(r=>{var i=wl.canvas,o=`${e.size??240}px`,s=`${e.size??240}px`,l=e.ariaLabel??`Heatmap (${e.colorMode})`;return i!==r.e&&h(n,r.e=i),o!==r.t&&ke(n,"width",r.t=o),s!==r.a&&ke(n,"height",r.a=s),l!==r.o&&X(n,"aria-label",r.o=l),r},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()};var kl=E('<svg role=progressbar aria-valuemin=0 aria-valuemax=100><circle stroke=var(--bg-3) fill=none></circle><circle fill=none stroke-linecap=round style="transition:stroke-dashoffset 120ms linear">'),Ll=E("<svg><text dominant-baseline=central text-anchor=middle font-family=var(--font-mono) fill=var(--fg-mute)></svg>",!1,!0,!1);const Fl=e=>{const t=()=>e.size??32,n=()=>e.strokeWidth??Math.max(2,Math.round(t()/10)),a=()=>(t()-n())/2,r=()=>2*Math.PI*a(),i=()=>Math.max(0,Math.min(1,e.progress())),o=$e(()=>r()*(1-i())),s=()=>e.color??"var(--accent)";return(()=>{var l=kl(),d=l.firstChild,c=d.nextSibling;return b(l,(()=>{var u=zt(()=>!!e.showLabel);return()=>u()&&(()=>{var m=Ll();return b(m,()=>Math.round(i()*100)),A(v=>{var g=t()/2,f=t()/2,w=`${Math.round(t()/3.5)}`;return g!==v.e&&X(m,"x",v.e=g),f!==v.t&&X(m,"y",v.t=f),w!==v.a&&X(m,"font-size",v.a=w),v},{e:void 0,t:void 0,a:void 0}),m})()})(),null),A(u=>{var m=t(),v=t(),g=`0 0 ${t()} ${t()}`,f=Math.round(i()*100),w=e.ariaLabel??"progress",x=t()/2,_=t()/2,M=a(),O=n(),y=t()/2,q=t()/2,W=a(),N=s(),Y=n(),F=`${r()}`,$=`${o()}`,U=`rotate(-90 ${t()/2} ${t()/2})`;return m!==u.e&&X(l,"width",u.e=m),v!==u.t&&X(l,"height",u.t=v),g!==u.a&&X(l,"viewBox",u.a=g),f!==u.o&&X(l,"aria-valuenow",u.o=f),w!==u.i&&X(l,"aria-label",u.i=w),x!==u.n&&X(d,"cx",u.n=x),_!==u.s&&X(d,"cy",u.s=_),M!==u.h&&X(d,"r",u.h=M),O!==u.r&&X(d,"stroke-width",u.r=O),y!==u.d&&X(c,"cx",u.d=y),q!==u.l&&X(c,"cy",u.l=q),W!==u.u&&X(c,"r",u.u=W),N!==u.c&&X(c,"stroke",u.c=N),Y!==u.w&&X(c,"stroke-width",u.w=Y),F!==u.m&&X(c,"stroke-dasharray",u.m=F),$!==u.f&&X(c,"stroke-dashoffset",u.f=$),U!==u.y&&X(c,"transform",u.y=U),u},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0}),l})()},El="_canvas_1ra7r_1",Il={canvas:El};var Rl=E("<canvas role=img>");const dt=e=>{let t;return ze(()=>{if(!t)return;const n=window.devicePixelRatio||1,a=(e.width??320)*n,r=(e.height??80)*n;(t.width!==a||t.height!==r)&&(t.width=a,t.height=r);const i=t.getContext("2d");if(!i)return;i.clearRect(0,0,a,r);const o=e.history();if(o.length===0)return;const s=e.maxPoints??200,l=o.length>s?o.slice(o.length-s):o,d=e.log!==!1,c=l.map(g=>d?Math.log(Math.max(1e-10,g)+1):g);let u=1/0,m=-1/0;for(const g of c)g<u&&(u=g),g>m&&(m=g);m===u&&(m=u+1e-6),i.strokeStyle="rgba(255,255,255,0.05)",i.lineWidth=1;for(let g=1;g<4;g++){const f=g/4*r;i.beginPath(),i.moveTo(0,f),i.lineTo(a,f),i.stroke()}i.strokeStyle=e.color??"#00ccff",i.lineWidth=1.5*n,i.beginPath();for(let g=0;g<c.length;g++){const f=g/Math.max(1,c.length-1)*a,w=(c[g]-u)/(m-u),x=r-w*r;g===0?i.moveTo(f,x):i.lineTo(f,x)}i.stroke();const v=l[l.length-1];i.fillStyle="#9a9a9a",i.font=`${10*n}px var(--font-mono)`,i.textAlign="right",i.fillText(v.toExponential(2),a-4*n,12*n)}),(()=>{var n=Rl(),a=t;return typeof a=="function"?ct(a,n):t=n,A(r=>{var i=Il.canvas,o=`${e.width??320}px`,s=`${e.height??80}px`,l=e.ariaLabel??"Training loss over time";return i!==r.e&&h(n,r.e=i),o!==r.t&&ke(n,"width",r.t=o),s!==r.a&&ke(n,"height",r.a=s),l!==r.o&&X(n,"aria-label",r.o=l),r},{e:void 0,t:void 0,a:void 0,o:void 0}),n})()},ir=.2,or=5,Ol=.95,Tl=.005,_a=1/60;function lr(){return{globalCurve:1,smoothing:0,slewRate:1/0,freezeOutput:!1,freezeMask:null,reuseBuffer:!1}}function zl(){return{prev:null,smoothed:null}}function Dl(e,t,n,a){if(n<=0)return t;const r=a>0?a:_a,i=1-n,o=1-Math.pow(1-i,r/_a);return e+o*(t-e)}function ql(e,t,n,a){const r=e.length,i=Math.max(0,a/1e3);let o=n.prev,s=n.smoothed;if(!o||o.length!==r){o=new Float32Array(r);for(let c=0;c<r;c++)o[c]=We(e[c]??0)}if(!s||s.length!==r){s=new Float32Array(r);for(let c=0;c<r;c++)s[c]=We(e[c]??0)}let l;t.reuseBuffer&&o.length===r?l=o:l=new Float32Array(r);const d=t.globalCurve;if(t.freezeOutput)return l!==o&&l.set(o),{processed:l,state:{prev:l,smoothed:s}};for(let c=0;c<r;c++){const u=We(e[c]??0),m=d===1?u:Math.pow(u,d);if(t.freezeMask&&t.freezeMask[c]){l[c]=o[c]??m;continue}let v=Dl(s[c]??m,m,t.smoothing,i);if(s[c]=v,isFinite(t.slewRate)&&t.slewRate>0){const g=t.slewRate*i,f=v-(o[c]??v);Math.abs(f)>g&&(v=(o[c]??v)+Math.sign(f)*g)}l[c]=We(v)}return l!==o&&(o=new Float32Array(l)),{processed:l,state:{prev:o,smoothed:s}}}const sr="nisps:output";function Nl(){const e=lr(),t=jt(sr,{}),n=t.slewRate;return{...e,globalCurve:t.globalCurve??e.globalCurve,smoothing:t.smoothing??e.smoothing,slewRate:n??e.slewRate,freezeOutput:t.freezeOutput??e.freezeOutput,reuseBuffer:t.reuseBuffer??e.reuseBuffer}}const[Ct,Et]=gt(Nl());function Xt(){Vt(sr,()=>({globalCurve:Ct.globalCurve,smoothing:Ct.smoothing,slewRate:isFinite(Ct.slewRate)?Ct.slewRate:null,freezeOutput:Ct.freezeOutput,reuseBuffer:Ct.reuseBuffer}))}const Ie={config:Ct,setGlobalCurve(e){Et(D(t=>{t.globalCurve=K(e,ir,or)})),Xt()},setSmoothing(e){Et(D(t=>{t.smoothing=K(e,0,Ol)})),Xt()},setSlewRate(e){Et(D(t=>{!isFinite(e)||e>=1?t.slewRate=1/0:t.slewRate=Math.max(Tl,e)})),Xt()},setFreezeOutput(e){Et(D(t=>{t.freezeOutput=e})),Xt()},setFreezeMask(e){Et(D(t=>{t.freezeMask=e}))},reset(){Et(lr()),Xt()}},Rt=new Float32Array(0),[ya,Rn]=gt({exampleCount:0,lastLoss:null,lossHistory:[],inputSize:2,outputSize:126,training:!1,ready:!1}),[Bl,xa]=ee(Rt,{equals:!1}),[Vl,wa]=ee(Rt,{equals:!1});let Ce=null,Yt=null;function at(e){if(!Ce)throw new Error(`[ml-store] ${e} called before initialize() — call mlStore.initialize() first`);return Ce}const P={state:ya,outputs:Bl,weights:Vl,get iml(){return Ce},__setOutputs:xa,__setState:Rn,__setWeights:wa,async initialize(e,t){return Ce||Yt||(Yt=(async()=>{const{WasmIML:n}=await Na(async()=>{const{WasmIML:r}=await import("./wasm-iml-FZSgVMmn.js");return{WasmIML:r}},[]),a=await n.create({inputSize:e,outputSize:t});return Ce=a,a})(),Yt)},setInput(e,t){at("setInput").setInput(e,t)},process(){at("process").process()},inferXY(e,t){return at("inferXY").inferXY(e,t)},addExample(e,t){return at("addExample").addExample(e,t)},train(e,t,n,a){return at("train").train(e,t,n,a)},trainAsync(e,t,n,a){return at("trainAsync").trainAsync(e,t,n,a)},drawWeights(e){at("drawWeights").randomiseWeights(e)},moveWeights(e,t,n){at("moveWeights").moveWeights(e,t,n)},evalLoss(){return Ce?Ce.evalLoss():null},inferBatch(e){return Ce?Ce.inferBatch(e):new Float32Array(e.length*ya.outputSize)},getLayerStats(){return Ce?Ce.getLayerStatsFlat():Rt},getLayerStatsRecords(){return Ce?Ce.getLayerStats():[]},getWeights(){return Ce?Ce.getWeights():Rt},setWeights(e){at("setWeights").setWeights(e)},reset(){at("reset").reset()},clearExamples(){if(Ce){Ce.clearExamples();return}Rn(D(e=>{e.exampleCount=0})),Fe.emit("ml.examples_cleared",void 0)},saveNow(){Ce?.saveNow()},__dispose(){Ce&&(Ce.dispose(),Ce=null),Yt=null,Rn({exampleCount:0,lastLoss:null,lossHistory:[],inputSize:2,outputSize:126,training:!1,ready:!1}),xa(Rt),wa(Rt)}},On=10,jl=[0,.01,.05,.15,.4,.8,1.5,2.5,4,7];function ur(e){const t=new Array(On).fill(0);if(e.length===0)return t;for(let n=0;n<e.length;++n){const a=Math.abs(e[n]);let r=On-1;for(let i=0;i<On-1;++i)if(a<jl[i+1]){r=i;break}t[r]++}return t}function cr(e){if(e.length===0)return"healthy";let t=0,n=0;for(let i=0;i<e.length;++i){const o=Math.abs(e[i]);o<.01?t++:o>3&&n++}const a=t/e.length;return n/e.length>.4?"saturating":a>.3?"dead":"healthy"}function dr(e,t,n){const a=[];let r=0;for(const i of n){let o=0;const s=Math.min(e.length,t.length,r+i);for(let l=r;l<s;++l){const d=(t[l]??0)-(e[l]??0);o+=d*d}a.push(Math.sqrt(o)),r+=i}return a}function mr(e){if(e.length===0)return[];if(e.every(a=>a<1e-6))return e.map(()=>"converged");const n=[];for(let a=0;a<e.length;++a){if(a===0){n.push("healthy");continue}const r=e[a-1]??0,i=e[a]??0;r<=1e-12?n.push("healthy"):i<.5*r?n.push("vanishing"):i>2*r?n.push("exploding"):n.push("healthy")}return n}function fr(e){const t=[e.inputSize,...e.hidden,e.outputSize],n=[];for(let a=0;a<t.length-1;++a){const r=t[a],i=t[a+1];n.push(r*i+i)}return n}function Sa(e){return e.saturatingFrac>.4?"saturating":e.deadFrac>.3?"dead":"healthy"}function hr(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function vr(e){try{let t=e.replace(/-/g,"+").replace(/_/g,"/");for(;t.length%4!==0;)t+="=";return atob(t)}catch{return null}}function Hl(e){const t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);let n="";for(let a=0;a<t.length;a++)n+=String.fromCharCode(t[a]);return hr(n)}function Wl(e){const t=vr(e);if(!t)return null;const n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);const a=n.byteLength-n.byteLength%4;return new Float32Array(n.buffer,n.byteOffset,a/4).slice()}function Jn(e=!1){const t=Me.state,n=I.state,a=Ie.config,r=H.config,i={v:1,modeId:xe.state.activeModeId,control:{boldness:t.boldness,memory:t.memory,precision:t.precision,presetId:t.presetId,offsets:JSON.parse(JSON.stringify(t.offsets))},exploration:{spread:n.spread,noiseFloor:n.noiseFloor,noiseCap:n.noiseCap,noiseGrowth:n.noiseGrowth,noiseDecay:n.noiseDecay,learningRate:n.learningRate,weightDecay:n.weightDecay},output:{globalCurve:a.globalCurve,smoothing:a.smoothing,slewRate:isFinite(a.slewRate)?a.slewRate:null,freezeOutput:a.freezeOutput},input:{zoom:r.zoom,anchorMode:r.anchorMode,deadzone:r.deadzone,inputCurve:r.inputCurve,smoothing:r.smoothing,momentumZoom:r.momentumZoom,invertX:r.invertX,invertY:r.invertY},modeOverrides:JSON.parse(JSON.stringify(xe.state.overrides))};if(e){const o=P.getWeights();o.length>0&&(i.weights=Hl(o))}return i}function Qn(e){if(!e||e.v!==1)return!1;if(e.modeId&&e.modeId!==xe.state.activeModeId&&xe.switchMode(e.modeId),e.control){Me.setAxis("boldness",e.control.boldness),Me.setAxis("memory",e.control.memory),Me.setAxis("precision",e.control.precision),e.control.presetId&&Me.applyPreset(e.control.presetId);for(const t of["boldness","memory","precision"]){Me.clearOffsets(t);const n=e.control.offsets[t]??{};for(const[a,r]of Object.entries(n))typeof r=="number"&&Me.setOffset(t,a,r)}}if(e.exploration&&(I.setSpread(e.exploration.spread),I.setNoiseFloor(e.exploration.noiseFloor),I.setNoiseCap(e.exploration.noiseCap),I.setNoiseGrowth(e.exploration.noiseGrowth),I.setNoiseDecay(e.exploration.noiseDecay),I.setLearningRate(e.exploration.learningRate),I.setWeightDecay(e.exploration.weightDecay)),e.output&&(Ie.setGlobalCurve(e.output.globalCurve),Ie.setSmoothing(e.output.smoothing),Ie.setSlewRate(e.output.slewRate??1/0),Ie.setFreezeOutput(e.output.freezeOutput)),e.input&&(H.setZoom(e.input.zoom),H.setAnchorMode(e.input.anchorMode),H.setDeadzone(e.input.deadzone),H.setInputCurve(e.input.inputCurve),H.setSmoothing(e.input.smoothing),H.setMomentumZoom(e.input.momentumZoom),H.setInvert(e.input.invertX,e.input.invertY)),e.modeOverrides)for(const t of Object.keys(e.modeOverrides)){const n=e.modeOverrides[t]??{};xe.clearAllOverrides(t);for(const[a,r]of Object.entries(n))xe.setOverride(t,a,r)}if(e.weights){const t=Wl(e.weights);if(t&&P.iml&&t.length>0)try{P.setWeights(t)}catch{}}return!0}function gr(e,t=!1){const n=Jn(t);Z.savePreset(e,n)}function br(e){const t=Z.state.presets.find(n=>n.id===e);return t?Qn(t.payload):!1}function pr(){const e=Jn(!1),t=JSON.stringify(e);return`?session=${hr(t)}`}function _r(e=window.location.search){const t=new URLSearchParams(e),n=t.get("boldness"),a=t.get("memory"),r=t.get("precision");let i=!1;(n!==null||a!==null||r!==null)&&(n!==null&&Me.setAxis("boldness",Tn(parseFloat(n))),a!==null&&Me.setAxis("memory",Tn(parseFloat(a))),r!==null&&Me.setAxis("precision",Tn(parseFloat(r))),i=!0);const o=t.get("session");if(o){const s=vr(o);if(s)try{const l=JSON.parse(s);i=Qn(l)||i}catch{}}return i}function Tn(e){return isFinite(e)?e<0?0:e>1?1:e:0}function Ze(e){if(!P.iml)return;const t=P.getWeights();t.length!==0&&Z.pushSnapshot(e,{noiseLevel:I.state.noiseLevel,zoomLevel:H.config.zoom,weights:t})}function yr(){const e=Z.popSnapshot();if(!e||!e.weights||!P.iml)return!1;try{return P.setWeights(e.weights),I.setNoiseLevel(e.noiseLevel),!0}catch{return!1}}function xr(){if(!P.iml)return;const e=P.getWeights();e.length!==0&&Z.captureA({id:`a-${Date.now().toString(36)}`,tag:"A",timestamp:Date.now(),noiseLevel:I.state.noiseLevel,zoomLevel:H.config.zoom,weights:e})}function wr(){if(!P.iml)return Z.state.ab.live;const e=P.getWeights(),t=Z.state.ab.live;t==="B"&&!Z.state.ab.b?Z.captureB({id:`b-${Date.now().toString(36)}`,tag:"B",timestamp:Date.now(),noiseLevel:I.state.noiseLevel,zoomLevel:H.config.zoom,weights:e}):t==="A"&&Z.captureB({id:`b-${Date.now().toString(36)}`,tag:"B",timestamp:Date.now(),noiseLevel:I.state.noiseLevel,zoomLevel:H.config.zoom,weights:e});const n=Z.toggleAB(),a=n==="A"?Z.state.ab.a:Z.state.ab.b;if(a?.weights){try{P.setWeights(a.weights)}catch{}I.setNoiseLevel(a.noiseLevel)}return n}function Sr(){Z.acceptB()}function Mr(){if(!P.iml){Z.revertToA();return}const e=Z.state.ab.a;if(e?.weights){try{P.setWeights(e.weights)}catch{}I.setNoiseLevel(e.noiseLevel)}Z.revertToA()}const Ul="_wrap_14adf_1",Gl="_section_14adf_7",Xl="_sectionHeader_14adf_17",Yl="_caret_14adf_38",Zl="_badge_14adf_45",Kl="_body_14adf_55",Jl="_row_14adf_62",Ql="_fieldLabel_14adf_69",es="_checkbox_14adf_77",ts="_subhead_14adf_86",ns="_muted_14adf_94",as="_btnAlt_14adf_100",rs="_btnTiny_14adf_119",is="_snapshotList_14adf_134",os="_presetList_14adf_135",ls="_snapshotBtn_14adf_146",ss="_snapshotTag_14adf_163",us="_snapshotMeta_14adf_168",cs="_presetRow_14adf_174",ds="_paramList_14adf_187",ms="_layerStats_14adf_195",fs="_layerStatRow_14adf_203",hs="_layerStatLabel_14adf_212",vs="_layerStatValue_14adf_218",gs="_layerStatStatus_14adf_223",bs="_textInput_14adf_235",ps="_hr_14adf_246",L={wrap:Ul,section:Gl,sectionHeader:Xl,caret:Yl,badge:Zl,body:Kl,row:Jl,fieldLabel:Ql,checkbox:es,subhead:ts,muted:ns,btnAlt:as,btnTiny:rs,snapshotList:is,presetList:os,snapshotBtn:ls,snapshotTag:ss,snapshotMeta:us,presetRow:cs,paramList:ds,layerStats:ms,layerStatRow:fs,layerStatLabel:hs,layerStatValue:vs,layerStatStatus:gs,textInput:bs,hr:ps};var _s=E("<span>"),ys=E("<button type=button><span></span><span>"),Ma=E("<ul>"),xs=E("<span>no capture yet"),ws=E("<div><div><button type=button>Undo last</button><button type=button>Clear stack</button></div><hr><h4>A / B compare</h4><div></div><div><button type=button>Capture A</button><button type=button>Toggle A/B</button><button type=button>Accept B</button><button type=button>Revert to A"),Ss=E("<div><div><label>Anchor mode</label></div><div><label>Momentum zoom</label></div><div><label><input type=checkbox>Invert X</label><label><input type=checkbox>Invert Y"),Ca=E("<div>"),Ms=E("<div><hr><h4>Auto-explore</h4><div><label><input type=checkbox>Enable auto-explore"),Cs=E("<div><label><input type=checkbox>Freeze output"),$s=E("<div><div><button type=button>Clear all</button></div><div>"),As=E("<h4>Weight health"),Ps=E("<h4>Gradient flow (last train)"),ks=E("<h4>Per-layer stats"),Ls=E("<h4>Input heatmap"),Fs=E("<div><label>Color</label><button type=button>Refresh"),Es=E("<input readonly>"),Is=E('<div><button type=button></button><hr><h4>Session preset</h4><div><input placeholder="preset name"><button type=button>Save</button></div><div><button type=button>Build share URL'),Rs=E("<div><section></section><section></section><section></section><section></section><section></section><section></section><section>"),Os=E("<li><button type=button><span></span><span>noise "),Ts=E("<span>active: <strong>"),zs=E("<p>No training run yet."),Ds=E("<div><span>L</span><span>mean|w| <!>· max|w| <!>· <!>% dead · <!>% sat</span><span>"),qs=E("<li><span></span><button type=button>Load</button><button type=button>Del");const Ns=e=>{const[t,n]=ee({input:!1,training:!1,exploration:!1,output:!1,overrides:!1,advanced:!1,snapshots:!1}),a=F=>n($=>({...$,[F]:!$[F]})),r=()=>xe.state.overrides[e.schema.mode_id]??{},i=F=>{const $=r()[F.name];return $?{min:$.min,max:$.max,curve:$.curve,curveParam:$.curveParam,muted:$.muted,pinned:$.pinned,fixedValue:$.fixedValue}:{min:F.min,max:F.max,curve:F.curve,muted:!1,pinned:!1,fixedValue:F.default}},o=(F,$)=>{const U={min:$.min,max:$.max,curve:$.curve,curveParam:$.curveParam,muted:$.muted,pinned:$.pinned,fixedValue:$.fixedValue,frozen:r()[F.name]?.frozen??!1};xe.setOverride(e.schema.mode_id,F.name,U)},[s,l]=ee(e.showAdvanced??!1),d=$e(()=>{const F=P.weights();return ur(F)}),c=$e(()=>cr(P.weights())),[u,m]=ee([]),[v,g]=ee([]);let f=null;const w=Fe.on("snap.push",F=>{F.tag==="before train"&&P.iml&&(f=P.getWeights())}),x=Fe.on("ml.trained",()=>{if(f&&P.iml){const F=P.getWeights(),$=P.iml.architecture,U=fr({inputSize:$.inputSize,hidden:$.hidden,outputSize:$.outputSize}),ne=dr(f,F,U);m(ne),g(mr(ne)),f=null}}),[_,M]=ee(""),[O,y]=ee(""),q=()=>Z.listSnapshots();ze(()=>()=>{w(),x()});const W=()=>Z.state.ab,N=()=>W().live,Y=F=>(()=>{var $=ys(),U=$.firstChild,ne=U.nextSibling;return $.$$click=()=>a(F.id),b(U,()=>t()[F.id]?"▾":"▸"),b(ne,()=>F.title),b($,p(re,{get when(){return F.count!==void 0},get children(){var oe=_s();return b(oe,()=>F.count),A(()=>h(oe,L.badge)),oe}}),null),A(oe=>{var S=L.sectionHeader,te=!!t()[F.id],me=L.caret;return S!==oe.e&&h($,oe.e=S),te!==oe.t&&X($,"aria-expanded",oe.t=te),me!==oe.a&&h(U,oe.a=me),oe},{e:void 0,t:void 0,a:void 0}),$})();return(()=>{var F=Rs(),$=F.firstChild,U=$.nextSibling,ne=U.nextSibling,oe=ne.nextSibling,S=oe.nextSibling,te=S.nextSibling,me=te.nextSibling;return b($,p(Y,{id:"snapshots",title:"History (snapshots, A/B)",get count(){return q().length}}),null),b($,p(re,{get when(){return t().snapshots},get children(){var C=ws(),V=C.firstChild,le=V.firstChild,G=le.nextSibling,j=V.nextSibling,ie=j.nextSibling,B=ie.nextSibling,_e=B.nextSibling,we=_e.firstChild,k=we.nextSibling,T=k.nextSibling,se=T.nextSibling;return le.$$click=()=>e.runtime.undo(),G.$$click=()=>Z.clearSnapshots(),b(C,p(re,{get when(){return q().length>0},get children(){var R=Ma();return b(R,p(vt,{get each(){return q().slice().reverse()},children:ue=>(()=>{var ae=Os(),fe=ae.firstChild,Ae=fe.firstChild,Se=Ae.nextSibling;return Se.firstChild,fe.$$click=()=>{if(!e.runtime.undo()){const qe=Z.state.snapshots,je=qe.findIndex(Ne=>Ne.id===ue.id);if(je>=0){for(let Ne=qe.length-1;Ne>je;Ne--)Z.popSnapshot();e.runtime.undo()}}},b(Ae,()=>ue.tag),b(Se,()=>ue.noiseLevel.toFixed(3),null),b(Se,(()=>{var de=zt(()=>ue.zoomLevel!==null);return()=>de()?` · zoom ${ue.zoomLevel.toFixed(2)}`:""})(),null),A(de=>{var qe=L.snapshotBtn,je=L.snapshotTag,Ne=L.snapshotMeta;return qe!==de.e&&h(fe,de.e=qe),je!==de.t&&h(Ae,de.t=je),Ne!==de.a&&h(Se,de.a=Ne),de},{e:void 0,t:void 0,a:void 0}),ae})()})),A(()=>h(R,L.snapshotList)),R}}),j),b(B,p(re,{get when(){return!W().a},get fallback(){return(()=>{var R=Ts(),ue=R.firstChild,ae=ue.nextSibling;return b(ae,N),A(()=>h(R,L.muted)),R})()},get children(){var R=xs();return A(()=>h(R,L.muted)),R}})),we.$$click=()=>xr(),k.$$click=()=>wr(),T.$$click=()=>Sr(),se.$$click=()=>Mr(),A(R=>{var ue=L.body,ae=L.row,fe=L.btnAlt,Ae=!e.runtime.canUndo(),Se=L.btnAlt,de=L.hr,qe=L.subhead,je=L.row,Ne=L.row,yt=L.btnAlt,mt=L.btnAlt,Re=!W().a,z=L.btnAlt,Q=!W().a,he=L.btnAlt,ge=!W().a;return ue!==R.e&&h(C,R.e=ue),ae!==R.t&&h(V,R.t=ae),fe!==R.a&&h(le,R.a=fe),Ae!==R.o&&(le.disabled=R.o=Ae),Se!==R.i&&h(G,R.i=Se),de!==R.n&&h(j,R.n=de),qe!==R.s&&h(ie,R.s=qe),je!==R.h&&h(B,R.h=je),Ne!==R.r&&h(_e,R.r=Ne),yt!==R.d&&h(we,R.d=yt),mt!==R.l&&h(k,R.l=mt),Re!==R.u&&(k.disabled=R.u=Re),z!==R.c&&h(T,R.c=z),Q!==R.w&&(T.disabled=R.w=Q),he!==R.m&&h(se,R.m=he),ge!==R.f&&(se.disabled=R.f=ge),R},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0}),C}}),null),b(U,p(Y,{id:"input",title:"Input pipeline"}),null),b(U,p(re,{get when(){return t().input},get children(){var C=Ss(),V=C.firstChild,le=V.firstChild,G=V.nextSibling,j=G.firstChild,ie=G.nextSibling,B=ie.firstChild,_e=B.firstChild,we=B.nextSibling,k=we.firstChild;return b(C,p(Le,{label:"Zoom",min:Pt,max:Ot,get value(){return H.config.zoom},onChange:T=>H.setZoom(T)}),V),b(C,p(Le,{label:"Deadzone",min:0,max:Za,get value(){return H.config.deadzone},onChange:T=>H.setDeadzone(T)}),V),b(C,p(Le,{label:"Input curve",min:vn,max:gn,get value(){return H.config.inputCurve},onChange:T=>H.setInputCurve(T)}),V),b(C,p(Le,{label:"Smoothing",min:0,max:Ka,get value(){return H.config.smoothing},onChange:T=>H.setSmoothing(T)}),V),b(V,p(tn,{options:[{value:"auto",label:"Auto"},{value:"sticky",label:"Sticky"},{value:"center",label:"Center"}],value:()=>H.config.anchorMode,onChange:T=>H.setAnchorMode(T),ariaLabel:"Anchor mode"}),null),b(G,p(tn,{options:[{value:"off",label:"Off"},{value:"gentle",label:"Gentle"},{value:"strong",label:"Strong"}],value:()=>H.config.momentumZoom,onChange:T=>H.setMomentumZoom(T),ariaLabel:"Momentum zoom"}),null),_e.addEventListener("change",T=>H.setInvert(T.currentTarget.checked,H.config.invertY)),k.addEventListener("change",T=>H.setInvert(H.config.invertX,T.currentTarget.checked)),A(T=>{var se=L.body,R=L.row,ue=L.fieldLabel,ae=L.row,fe=L.fieldLabel,Ae=L.row,Se=L.checkbox,de=L.checkbox;return se!==T.e&&h(C,T.e=se),R!==T.t&&h(V,T.t=R),ue!==T.a&&h(le,T.a=ue),ae!==T.o&&h(G,T.o=ae),fe!==T.i&&h(j,T.i=fe),Ae!==T.n&&h(ie,T.n=Ae),Se!==T.s&&h(B,T.s=Se),de!==T.h&&h(we,T.h=de),T},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),A(()=>_e.checked=H.config.invertX),A(()=>k.checked=H.config.invertY),C}}),null),b(ne,p(Y,{id:"training",title:"Training"}),null),b(ne,p(re,{get when(){return t().training},get children(){var C=Ca();return b(C,p(Le,{label:"Learning rate",min:.01,max:5,get value(){return I.state.learningRate},onChange:V=>I.setLearningRate(V)}),null),b(C,p(Le,{label:"Weight decay",min:0,max:.3,get value(){return I.state.weightDecay},onChange:V=>I.setWeightDecay(V)}),null),b(C,p(dt,{history:()=>P.state.lossHistory,width:320,height:70}),null),A(()=>h(C,L.body)),C}}),null),b(oe,p(Y,{id:"exploration",title:"Exploration / RL"}),null),b(oe,p(re,{get when(){return t().exploration},get children(){var C=Ms(),V=C.firstChild,le=V.nextSibling,G=le.nextSibling,j=G.firstChild,ie=j.firstChild;return b(C,p(Le,{label:"Spread",min:0,max:1,get value(){return I.state.spread},onChange:B=>I.setSpread(B)}),V),b(C,p(Le,{label:"Noise floor",min:0,max:.5,get value(){return I.state.noiseFloor},onChange:B=>I.setNoiseFloor(B)}),V),b(C,p(Le,{label:"Noise cap",get min(){return I.state.noiseFloor},max:1,get value(){return I.state.noiseCap},onChange:B=>I.setNoiseCap(B)}),V),b(C,p(Le,{label:"Noise growth",min:1,max:3,get value(){return I.state.noiseGrowth},onChange:B=>I.setNoiseGrowth(B)}),V),b(C,p(Le,{label:"Noise decay",min:.7,max:1,get value(){return I.state.noiseDecay},onChange:B=>I.setNoiseDecay(B)}),V),ie.addEventListener("change",B=>I.setAutoExplore(B.currentTarget.checked)),b(G,p(re,{get when(){return I.state.autoExploreEnabled},get children(){return p(Fl,{size:28,showLabel:!1,progress:()=>1,ariaLabel:"Auto-explore active"})}}),null),b(C,p(Le,{label:"Interval (ms)",min:500,max:1e4,step:100,get value(){return I.state.autoExploreIntervalMs},onChange:B=>I.setAutoExploreInterval(B)}),null),b(C,p(Le,{label:"Intensity",min:.1,max:1,get value(){return I.state.autoExploreIntensity},onChange:B=>I.setAutoExploreIntensity(B)}),null),A(B=>{var _e=L.body,we=L.hr,k=L.subhead,T=L.row,se=L.checkbox;return _e!==B.e&&h(C,B.e=_e),we!==B.t&&h(V,B.t=we),k!==B.a&&h(le,B.a=k),T!==B.o&&h(G,B.o=T),se!==B.i&&h(j,B.i=se),B},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),A(()=>ie.checked=I.state.autoExploreEnabled),C}}),null),b(S,p(Y,{id:"output",title:"Output pipeline"}),null),b(S,p(re,{get when(){return t().output},get children(){var C=Cs(),V=C.firstChild,le=V.firstChild;return b(C,p(Le,{label:"Global curve",min:ir,max:or,get value(){return Ie.config.globalCurve},onChange:G=>Ie.setGlobalCurve(G)}),V),b(C,p(Le,{label:"Output smoothing",min:0,max:.95,get value(){return Ie.config.smoothing},onChange:G=>Ie.setSmoothing(G)}),V),b(C,p(Le,{label:"Slew rate (per sec)",min:.005,max:1,step:.005,get value(){return zt(()=>!!isFinite(Ie.config.slewRate))()?Ie.config.slewRate:1},onChange:G=>Ie.setSlewRate(G)}),V),le.addEventListener("change",G=>Ie.setFreezeOutput(G.currentTarget.checked)),A(G=>{var j=L.body,ie=L.checkbox;return j!==G.e&&h(C,G.e=j),ie!==G.t&&h(V,G.t=ie),G},{e:void 0,t:void 0}),A(()=>le.checked=Ie.config.freezeOutput),C}}),null),b(te,p(Y,{id:"overrides",title:"Parameter overrides",get count(){return Object.keys(r()).length}}),null),b(te,p(re,{get when(){return t().overrides},get children(){var C=$s(),V=C.firstChild,le=V.firstChild,G=V.nextSibling;return le.$$click=()=>xe.clearAllOverrides(e.schema.mode_id),b(G,p(vt,{get each(){return e.schema.params},children:j=>p(ul,{get param(){return{name:j.name,label:j.label,hardMin:j.min,hardMax:j.max,default:j.default,curve:j.curve,group:j.group}},override:()=>i(j),onChange:ie=>o(j,ie),compact:!0})})),A(j=>{var ie=L.body,B=L.row,_e=L.btnAlt,we=L.paramList;return ie!==j.e&&h(C,j.e=ie),B!==j.t&&h(V,j.t=B),_e!==j.a&&h(le,j.a=_e),we!==j.o&&h(G,j.o=we),j},{e:void 0,t:void 0,a:void 0,o:void 0}),C}}),null),b(me,p(Y,{id:"advanced",title:"Advanced"}),null),b(me,p(re,{get when(){return t().advanced},get children(){var C=Is(),V=C.firstChild,le=V.nextSibling,G=le.nextSibling,j=G.nextSibling,ie=j.firstChild,B=ie.nextSibling,_e=j.nextSibling,we=_e.firstChild;return V.$$click=()=>l(k=>!k),b(V,()=>s()?"Hide diagnostics":"Show diagnostics"),b(C,p(re,{get when(){return s()},get children(){return[(()=>{var k=As();return A(()=>h(k,L.subhead)),k})(),p(vl,{histogram:d,status:c,width:300,height:60}),(()=>{var k=Ps();return A(()=>h(k,L.subhead)),k})(),p(re,{get when(){return u().length>0},get fallback(){return(()=>{var k=zs();return A(()=>h(k,L.muted)),k})()},get children(){return p(yl,{layerNorms:u,status:v,width:300,height:70})}}),(()=>{var k=ks();return A(()=>h(k,L.subhead)),k})(),(()=>{var k=Ca();return b(k,p(vt,{get each(){return P.getLayerStatsRecords()},children:(T,se)=>(()=>{var R=Ds(),ue=R.firstChild;ue.firstChild;var ae=ue.nextSibling,fe=ae.firstChild,Ae=fe.nextSibling,Se=Ae.nextSibling,de=Se.nextSibling,qe=de.nextSibling,je=qe.nextSibling,Ne=je.nextSibling,yt=Ne.nextSibling;yt.nextSibling;var mt=ae.nextSibling;return b(ue,se,null),b(ae,()=>T.meanAbs.toFixed(3),Ae),b(ae,()=>T.maxAbs.toFixed(3),de),b(ae,()=>(T.deadFrac*100).toFixed(0),je),b(ae,()=>(T.saturatingFrac*100).toFixed(0),yt),b(mt,()=>Sa(T)),A(Re=>{var z=L.layerStatRow,Q=L.layerStatLabel,he=L.layerStatValue,ge=L.layerStatStatus,ce=Sa(T);return z!==Re.e&&h(R,Re.e=z),Q!==Re.t&&h(ue,Re.t=Q),he!==Re.a&&h(ae,Re.a=he),ge!==Re.o&&h(mt,Re.o=ge),ce!==Re.i&&X(mt,"data-status",Re.i=ce),Re},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),R})()})),A(()=>h(k,L.layerStats)),k})(),(()=>{var k=Ls();return A(()=>h(k,L.subhead)),k})(),(()=>{var k=Fs(),T=k.firstChild,se=T.nextSibling;return b(k,p(tn,{options:[{value:"luminance",label:"Lumi"},{value:"variance",label:"Var"},{value:"divergence",label:"Div"}],value:()=>e.runtime.heatmap.colorMode(),onChange:R=>e.runtime.heatmap.setColorMode(R),ariaLabel:"Heatmap color mode"}),se),se.$$click=()=>e.runtime.heatmap.refresh(!0),A(R=>{var ue=L.row,ae=L.fieldLabel,fe=L.btnAlt;return ue!==R.e&&h(k,R.e=ue),ae!==R.t&&h(T,R.t=ae),fe!==R.a&&h(se,R.a=fe),R},{e:void 0,t:void 0,a:void 0}),k})(),p(Pl,{get samples(){return e.runtime.heatmap.cells},get resolution(){return e.runtime.heatmap.resolution()},get colorMode(){return e.runtime.heatmap.colorMode()},size:240})]}}),le),ie.$$input=k=>M(k.currentTarget.value),B.$$click=()=>{const k=_().trim();k&&(gr(k,!1),M(""))},b(C,p(re,{get when(){return Z.state.presets.length>0},get children(){var k=Ma();return b(k,p(vt,{get each(){return Z.state.presets},children:T=>(()=>{var se=qs(),R=se.firstChild,ue=R.nextSibling,ae=ue.nextSibling;return b(R,()=>T.name),ue.$$click=()=>br(T.id),ae.$$click=()=>Z.removePreset(T.id),A(fe=>{var Ae=L.presetRow,Se=L.btnTiny,de=L.btnTiny;return Ae!==fe.e&&h(se,fe.e=Ae),Se!==fe.t&&h(ue,fe.t=Se),de!==fe.a&&h(ae,fe.a=de),fe},{e:void 0,t:void 0,a:void 0}),se})()})),A(()=>h(k,L.presetList)),k}}),_e),we.$$click=()=>{y(window.location.origin+window.location.pathname+pr())},b(_e,p(re,{get when(){return O()},get children(){var k=Es();return k.$$click=T=>T.currentTarget.select(),A(()=>h(k,L.textInput)),A(()=>k.value=O()),k}}),null),A(k=>{var T=L.body,se=L.btnAlt,R=L.hr,ue=L.subhead,ae=L.row,fe=L.textInput,Ae=L.btnAlt,Se=!_().trim(),de=L.row,qe=L.btnAlt;return T!==k.e&&h(C,k.e=T),se!==k.t&&h(V,k.t=se),R!==k.a&&h(le,k.a=R),ue!==k.o&&h(G,k.o=ue),ae!==k.i&&h(j,k.i=ae),fe!==k.n&&h(ie,k.n=fe),Ae!==k.s&&h(B,k.s=Ae),Se!==k.h&&(B.disabled=k.h=Se),de!==k.r&&h(_e,k.r=de),qe!==k.d&&h(we,k.d=qe),k},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),A(()=>ie.value=_()),C}}),null),A(C=>{var V=L.wrap,le=L.section,G=L.section,j=L.section,ie=L.section,B=L.section,_e=L.section,we=L.section;return V!==C.e&&h(F,C.e=V),le!==C.t&&h($,C.t=le),G!==C.a&&h(U,C.a=G),j!==C.o&&h(ne,C.o=j),ie!==C.i&&h(oe,C.i=ie),B!==C.n&&h(S,C.n=B),_e!==C.s&&h(te,C.s=_e),we!==C.h&&h(me,C.h=we),C},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),F})()};Je(["click","input"]);const Bs="_shell_jqlsx_1",Vs="_header_jqlsx_11",js="_title_jqlsx_19",Hs="_subtitle_jqlsx_26",Ws="_audioToggle_jqlsx_32",Us="_audioBtn_jqlsx_39",Gs="_on_jqlsx_49",Xs="_voiceSpaces_jqlsx_58",Ys="_voiceSpacesLabel_jqlsx_64",Zs="_body_jqlsx_71",Ks="_primaryArea_jqlsx_84",Js="_outputArea_jqlsx_96",Qs="_controls_jqlsx_107",eu="_controlAxes_jqlsx_118",tu="_trainingPanel_jqlsx_125",nu="_drawerToggleBtn_jqlsx_135",au="_statusLine_jqlsx_150",ru="_frozen_jqlsx_156",iu="_notReady_jqlsx_160",ye={shell:Bs,header:Vs,title:js,subtitle:Hs,audioToggle:Ws,audioBtn:Us,on:Gs,voiceSpaces:Xs,voiceSpacesLabel:Ys,body:Zs,primaryArea:Ks,outputArea:Js,controls:Qs,controlAxes:eu,trainingPanel:tu,drawerToggleBtn:nu,statusLine:au,frozen:ru,notReady:iu};var ou=E("<div><span>Voice space"),lu=E('<button type=button aria-label="Disable microphone">🎤 Mic on'),su=E('<button type=button aria-label="Stop audio engine">⏹ Stop audio'),uu=E('<button type=button aria-label="Show snapshot history"style=margin-top:var(--sp-1)>📚 '),cu=E("<span>Loading WASM ML…"),du=E("<span>frozen"),mu=E("<ul style=list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--sp-1)>"),fu=E('<section><header><div><h2></h2><p> in → <!> out · engine: <code></code></p></div><div><button type=button aria-label="Open settings drawer">⚙</button></div></header><div><div></div><div></div></div><div><div></div><div></div></div><p><span>input (<!>, <!>) · noise '),hu=E('<button type=button aria-label="Enable microphone">🎤 Mic'),vu=E('<button type=button aria-label="Start audio engine">▶ Start audio'),gu=E('<li><button type=button style="display:flex;flex-direction:column;width:100%;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-1);padding:var(--sp-1) var(--sp-2);text-align:left;cursor:pointer;color:var(--fg)"><span style=font-family:var(--font-mono);font-size:var(--fs-sm)></span><span style=font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-mute)>noise ');const bt=e=>{const[t,n]=ee(!1),[a,r]=ee(!1),i=()=>e.schema.ui.show_voice_space_selector&&e.schema.voice_spaces.length>0,o=()=>e.schema.voice_spaces.map((l,d)=>({value:String(d),label:l})),s=$e(()=>{const l=I.state.noiseCap,d=I.state.noiseLevel;return l<=0?null:[l*.4,d*.4]});return(()=>{var l=fu(),d=l.firstChild,c=d.firstChild,u=c.firstChild,m=u.nextSibling,v=m.firstChild,g=v.nextSibling,f=g.nextSibling,w=f.nextSibling,x=c.nextSibling,_=x.firstChild,M=d.nextSibling,O=M.firstChild,y=O.nextSibling,q=M.nextSibling,W=q.firstChild,N=W.nextSibling,Y=q.nextSibling,F=Y.firstChild,$=F.firstChild,U=$.nextSibling,ne=U.nextSibling,oe=ne.nextSibling;return oe.nextSibling,b(u,()=>pu(e.schema.mode_id)),b(m,()=>e.schema.ml.input_size,v),b(m,()=>e.schema.ml.output_size,g),b(w,()=>e.schema.engine_id),b(d,p(re,{get when(){return i()},get children(){var S=ou(),te=S.firstChild;return b(S,p(tn,{get options(){return o()},value:()=>String(e.activeVoiceSpace?.()??0),onChange:me=>e.onVoiceSpaceChange?.(Number(me)),ariaLabel:"Voice space"}),null),A(me=>{var C=ye.voiceSpaces,V=ye.voiceSpacesLabel;return C!==me.e&&h(S,me.e=C),V!==me.t&&h(te,me.t=V),me},{e:void 0,t:void 0}),S}}),x),b(x,p(re,{get when(){return e.schema.ui.primary_input==="audio_in"},get children(){return p(re,{get when(){return e.runtime.mic.started()},get fallback(){return(()=>{var S=hu();return S.$$click=()=>void e.runtime.mic.start(),A(()=>h(S,ye.audioBtn)),S})()},get children(){var S=lu();return S.$$click=()=>void e.runtime.mic.stop(),A(()=>h(S,`${ye.audioBtn} ${ye.on}`)),S}})}}),_),b(x,p(re,{get when(){return e.runtime.audio.started()},get fallback(){return(()=>{var S=vu();return S.$$click=()=>void e.runtime.audio.start(),A(()=>h(S,ye.audioBtn)),S})()},get children(){var S=su();return S.$$click=()=>void e.runtime.audio.stop(),A(()=>h(S,`${ye.audioBtn} ${ye.on}`)),S}}),_),_.$$click=()=>n(!0),b(O,()=>e.primaryInput(),null),b(O,p(_o,{size:150,zoom:()=>H.config.zoom,anchor:()=>[H.config.anchorMode==="center"?.5:H.config.anchorX,H.config.anchorMode==="center"?.5:H.config.anchorY],get position(){return e.runtime.pipedInput},get trail(){return e.runtime.trail},regionPins:()=>Z.state.regionPins,noiseRings:s,get frozen(){return e.runtime.frozen},onTrailTap:S=>e.runtime.snapToTrail(S),onLongPress:()=>e.runtime.pinCurrentRegion(),ariaLabel:"Joy map navigator"}),null),b(y,()=>e.outputArea()),b(W,p(vt,{each:bu,children:S=>p(Yi,{get label(){return S.label},get endpoints(){return S.endpoints},value:()=>Me.state[S.key],onChange:te=>Me.setAxis(S.key,te),preset:()=>Me.state.presetId,onDoubleTap:()=>Me.clearOffsets(S.key)})})),b(N,p(zi,{onTrain:()=>e.runtime.trainOnCurrent(),onRandomize:()=>e.runtime.randomize(),onThumbsUp:()=>e.runtime.thumbsUp(),onThumbsDown:()=>e.runtime.thumbsDown(),onUndo:()=>{e.runtime.undo()},exampleCount:()=>e.runtime.training.examples(),lastLoss:()=>e.runtime.training.lastLoss(),busy:()=>e.runtime.training.busy(),canUndo:()=>e.runtime.canUndo()}),null),b(N,p(re,{get when(){return Z.state.snapshots.length>0},get children(){var S=uu();return S.firstChild,S.$$click=()=>r(te=>!te),b(S,()=>Z.state.snapshots.length,null),A(te=>{var me=ye.drawerToggleBtn,C=`History (${Z.state.snapshots.length})`;return me!==te.e&&h(S,te.e=me),C!==te.t&&X(S,"title",te.t=C),te},{e:void 0,t:void 0}),S}}),null),b(Y,p(re,{get when(){return!e.runtime.ready()},get children(){return[(()=>{var S=cu();return A(()=>h(S,ye.notReady)),S})()," "]}}),F),b(Y,p(re,{get when(){return e.runtime.frozen()},get children(){return[(()=>{var S=du();return A(()=>h(S,ye.frozen)),S})()," "]}}),F),b(F,()=>e.runtime.pipedInput()[0].toFixed(2),U),b(F,()=>e.runtime.pipedInput()[1].toFixed(2),oe),b(F,()=>I.state.noiseLevel.toFixed(3),null),b(l,p(ua,{get open(){return t()},onClose:()=>n(!1),side:"right",get title(){return e.drawerTitle??"Mode settings"},width:460,get children(){return p(re,{get when(){return e.drawerContent},get fallback(){return p(Ns,{get schema(){return e.schema},get runtime(){return e.runtime}})},get children(){return e.drawerContent()}})}}),null),b(l,p(ua,{get open(){return a()},onClose:()=>r(!1),side:"right",title:"Snapshot history",width:320,get children(){var S=mu();return b(S,p(vt,{get each(){return Z.listSnapshots().slice().reverse()},children:te=>(()=>{var me=gu(),C=me.firstChild,V=C.firstChild,le=V.nextSibling;return le.firstChild,C.$$click=()=>{const G=Z.state.snapshots,j=G.findIndex(ie=>ie.id===te.id);if(!(j<0)){for(let ie=G.length-1;ie>j;ie--)Z.popSnapshot();e.runtime.undo(),r(!1)}},b(V,()=>te.tag),b(le,()=>te.noiseLevel.toFixed(3),null),b(le,(()=>{var G=zt(()=>te.zoomLevel!==null);return()=>G()?` · zoom ${te.zoomLevel.toFixed(2)}`:""})(),null),me})()})),S}}),null),A(S=>{var te=ye.shell,me=`${e.schema.mode_id} mode`,C=ye.header,V=ye.title,le=ye.subtitle,G=ye.audioToggle,j=ye.drawerToggleBtn,ie=ye.body,B=ye.primaryArea,_e=ye.outputArea,we=ye.controls,k=ye.controlAxes,T=ye.trainingPanel,se=ye.statusLine;return te!==S.e&&h(l,S.e=te),me!==S.t&&X(l,"aria-label",S.t=me),C!==S.a&&h(d,S.a=C),V!==S.o&&h(u,S.o=V),le!==S.i&&h(m,S.i=le),G!==S.n&&h(x,S.n=G),j!==S.s&&h(_,S.s=j),ie!==S.h&&h(M,S.h=ie),B!==S.r&&h(O,S.r=B),_e!==S.d&&h(y,S.d=_e),we!==S.l&&h(q,S.l=we),k!==S.u&&h(W,S.u=k),T!==S.c&&h(N,S.c=T),se!==S.w&&h(Y,S.w=se),S},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0}),l})()},bu=[{key:"boldness",label:"Boldness",endpoints:["Caution","Bold"]},{key:"memory",label:"Memory",endpoints:["Amnesia","Elephant"]},{key:"precision",label:"Precision",endpoints:["Raw","Precise"]}];function pu(e){return e.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}Je(["click"]);const _u="/assets/nisps-processor-BuKuNOY1.js",yu="/nisps.wasm",xu="nisps-processor";class wu{ctx=null;node=null;workletReady=!1;currentEngine="thru";disposed=!1;options;wasmBytes=null;constructor(t={}){this.options=t}get isStarted(){return!!this.ctx&&this.workletReady}get sampleRate(){return this.ctx?.sampleRate??this.options.sampleRate??48e3}async start(t="thru"){if(this.ctx){this.setEngine(t),await this.ctx.resume();return}this.ctx=new AudioContext({sampleRate:this.options.sampleRate,latencyHint:"interactive"}),this.wasmBytes||(this.wasmBytes=await this.fetchWasm_());const n=this.options.processorUrl??_u;await this.ctx.audioWorklet.addModule(n),this.node=new AudioWorkletNode(this.ctx,xu,{numberOfInputs:1,numberOfOutputs:1,outputChannelCount:[2]}),this.node.connect(this.ctx.destination),this.workletReady=!1;const a=new Promise((i,o)=>{const s=l=>{l.data.kind==="ready"?(this.workletReady=!0,this.node?.port.removeEventListener("message",s),i()):l.data.kind==="error"&&(this.node?.port.removeEventListener("message",s),o(new Error(l.data.message)))};this.node.port.addEventListener("message",s),this.node.port.start()}),r=this.wasmBytes.slice(0);this.node.port.postMessage({kind:"init",wasmBinary:r,sampleRate:this.ctx.sampleRate},[r]),await a,this.currentEngine=t,t!=="thru"&&this.setEngine(t)}setEngine(t){!this.node||!this.workletReady||(this.currentEngine=t,this.node.port.postMessage({kind:"engine",engineId:t}))}setParams(t){!this.node||!this.workletReady||this.node.port.postMessage({kind:"params",params:t},[t.buffer])}setMuted(t){!this.node||!this.workletReady||this.node.port.postMessage({kind:"mute",muted:t})}async stop(){if(this.ctx){if(this.node){try{this.node.disconnect()}catch{}this.node=null}try{await this.ctx.close()}catch{}this.ctx=null,this.workletReady=!1}}dispose(){this.disposed||(this.disposed=!0,this.stop(),this.wasmBytes=null)}async fetchWasm_(){const t=new URL(yu,window.location.origin).toString(),n=await fetch(t);if(!n.ok)throw new Error(`fetch nisps.wasm: ${n.status} ${n.statusText}`);return await n.arrayBuffer()}}function Su(e,t,n,a,r){const i=n.length,o=new Float32Array(i);let s=0,l=null;for(let d=0;d<i;++d){const c=n[d],u=a[c.name],m=We(e[d]??0);if(!u){o[d]=m;continue}if(u.frozen){l||(l=new Uint8Array(i)),l[d]=1,o[d]=t?.[d]??m,s++;continue}if(u.muted){const g=u.max-u.min,f=g>0?(u.fixedValue-u.min)/g:.5;o[d]=We(f),s++;continue}let v=m;u.curve&&u.curve!=="linear"&&(v=Xa(u.curve,m,u.curveParam)),o[d]=We(v)}return{values:o,freezeMask:l,affectedCount:s}}function $a(e,t,n,a,r){const i=new Uint8Array(e);for(let o=0;o<n.length&&o<e;++o){const s=a[n[o].name];s&&s.pinned&&(i[o]=1)}for(const o of r)o.key.startsWith(t+":")&&o.outputIndex>=0&&o.outputIndex<e&&(i[o.outputIndex]=1);return i}let Aa="";function Mu(){const e=Me.resolveParams(),t=JSON.stringify({z:e.zoom,nc:e.noiseCap,ng:e.noiseGrowth,nd:e.noiseDecay,lr:e.learningRate,wd:e.weightDecay,ic:e.inputCurve,dz:e.deadzone,sm:e.smoothing,sr:e.slewRate,mz:e.momentumZoom});if(t===Aa)return!1;Aa=t;const n=d=>typeof e[d]=="number"?e[d]:void 0,a=n("zoom");a!==void 0&&H.setZoom(a);const r=n("deadzone");r!==void 0&&H.setDeadzone(r);const i=n("inputCurve");i!==void 0&&H.setInputCurve(i);const o=n("smoothing");o!==void 0&&H.setSmoothing(o);const s=e.momentumZoom;typeof s=="string"&&["off","gentle","strong"].includes(s)&&H.setMomentumZoom(s);const l=n("slewRate");return l!==void 0&&Ie.setSlewRate(l),I.applyCompoundParams(e),!0}const Cu=300,Pa=.005;function $u(){const[e,t]=ee([],{equals:!1});let n=[];return{points:e,push(a,r){const i=performance.now(),o=n.length>0?n[n.length-1]:null;if(o){const s=a-o.x,l=r-o.y;if(s*s+l*l<Pa*Pa&&i-o.t<50)return}n.push({x:a,y:r,t:i}),n.length>Cu&&n.shift(),t(n.slice())},clear(){n=[],t([])}}}const Au=200;class Cr{resolution;colorMode;cells;lastSampleMs=0;pending=!1;constructor(t={}){this.resolution=Math.max(2,Math.min(64,t.resolution??16)),this.colorMode=t.colorMode??"luminance",this.cells=new Float32Array(this.resolution*this.resolution)}getCells(){return this.cells}setColorMode(t){this.colorMode=t}setResolution(t){const n=Math.max(2,Math.min(64,t|0));n!==this.resolution&&(this.resolution=n,this.cells=new Float32Array(n*n))}update(t,n=!1){const a=performance.now();if(!n&&a-this.lastSampleMs<Au)return this.pending=!0,!1;this.lastSampleMs=a,this.pending=!1;const r=this.resolution,i=r*r,o=new Array(i),s=Math.max(.01,Math.min(1,t.zoom));for(let u=0;u<r;u++)for(let m=0;m<r;m++){const v=r>1?m/(r-1):.5,g=r>1?u/(r-1):.5,f=t.cx+(v-.5)*s,w=t.cy+(g-.5)*s;o[u*r+m]=[Math.max(0,Math.min(1,f)),Math.max(0,Math.min(1,w))]}const l=P.inferBatch(o);if(l.length===0)return!1;const d=P.state.outputSize;let c=0;if(this.colorMode==="divergence"){const u=Math.floor(r/2),m=Math.floor(r/2),v=(u*r+m)*d;let g=0;for(let f=0;f<d;f++)g+=l[v+f]??0;c=g/d}for(let u=0;u<i;u++){const m=u*d;let v=0,g=0;for(let x=0;x<d;x++){const _=l[m+x]??0;v+=_,g+=_*_}const f=v/d,w=Math.max(0,g/d-f*f);switch(this.colorMode){case"luminance":this.cells[u]=f;break;case"variance":this.cells[u]=w;break;case"divergence":this.cells[u]=Math.abs(f-c);break}}return!0}hasPendingUpdate(){return this.pending}reset(){this.cells.fill(0),this.lastSampleMs=0}}const dn=80,zn=1200,mn=1024;class Pu{constructor(t={}){this.opts=t}ctx=null;stream=null;analyser=null;freqBuf=new Float32Array(new ArrayBuffer(mn/2*4));timeBuf=new Float32Array(new ArrayBuffer(mn*4));features={energy:0,brightness:0,pitch:0,aperiodicity:1};running=!1;async start(){if(this.running)return;if(typeof navigator>"u"||!navigator.mediaDevices)throw new Error("[mic-input] navigator.mediaDevices unavailable");this.ctx=this.opts.audioContext??new AudioContext,this.ctx.state==="suspended"&&await this.ctx.resume(),this.stream=await navigator.mediaDevices.getUserMedia({audio:!0});const t=this.ctx.createMediaStreamSource(this.stream);this.analyser=this.ctx.createAnalyser(),this.analyser.fftSize=mn,this.analyser.smoothingTimeConstant=.6,t.connect(this.analyser),this.running=!0}async stop(){if(this.running){if(this.running=!1,this.stream){for(const t of this.stream.getTracks())t.stop();this.stream=null}if(this.ctx&&!this.opts.audioContext)try{await this.ctx.close()}catch{}this.ctx=null,this.analyser=null}}isRunning(){return this.running}getFeatures(){if(!this.running||!this.analyser||!this.ctx)return this.features;const t=this.ctx.sampleRate,n=this.analyser;n.getFloatFrequencyData(this.freqBuf),n.getFloatTimeDomainData(this.timeBuf);let a=0;for(let y=0;y<this.timeBuf.length;++y){const q=this.timeBuf[y];a+=q*q}const r=Math.sqrt(a/this.timeBuf.length),i=Math.min(1,r*4);let o=0,s=0,l=0,d=-1/0;const c=t/mn,u=Math.floor(dn/c),m=Math.min(this.freqBuf.length-1,Math.ceil(zn/c));for(let y=0;y<this.freqBuf.length;++y){const q=this.freqBuf[y],W=Math.pow(10,q/20);o+=W,s+=y*c*W,y>=u&&y<=m&&q>d&&(d=q,l=y)}const v=o>1e-12?s/o:0,g=Math.min(1,v/(t*.25)),f=l*c,w=f<=dn?0:f>=zn?1:Math.log(f/dn)/Math.log(zn/dn),x=o/this.freqBuf.length,_=Math.pow(10,d/20),M=x>1e-12?_/x:0,O=Math.max(0,Math.min(1,1-Math.min(1,M/30)));return this.features={energy:i,brightness:g,pitch:w,aperiodicity:O},this.features}}const ku=50;let Dn=null;function Lu(){return Dn||(Dn=new wu),Dn}function pt(e,t={}){const[n,a]=ee(P.state.ready);P.initialize(e.ml.input_size,e.ml.output_size).then(()=>a(!0)).catch(z=>{console.error("[mode-runtime] mlStore.initialize failed:",z)}),xe.state.activeModeId!==e.mode_id&&xe.switchMode(e.mode_id),ze(()=>{Me.state.boldness,Me.state.memory,Me.state.precision,Me.state.offsets.boldness,Me.state.offsets.memory,Me.state.offsets.precision,pe(()=>Mu())});const[r,i]=ee([.5,.5]),[o,s]=ee(!1);let l=Kn(),d=performance.now();const c=$u();let u=null;const m=(z,Q)=>{const he=performance.now(),ge=Math.max(.001,(he-d)/1e3);d=he;const ce=Do([z,Q],H.config,l,ge);if(l=ce.state,H.__setLiveState(ce.state),i([ce.x,ce.y]),s(ce.frozen),c.push(ce.x,ce.y),!n())return;const Oe=e.ml.input_size;if(P.setInput(0,ce.x),Oe>1&&P.setInput(1,ce.y),C.isRunning()&&Oe>2){const Be=C.getFeatures(),Qe=[Be.energy,Be.brightness,Be.pitch,Be.aperiodicity];for(let Lt=2;Lt<Oe;++Lt)P.setInput(Lt,Qe[Lt-2]??0)}else for(let Be=2;Be<Oe;++Be)P.setInput(Be,0);P.process(),u!==null&&I.setPressure(I.state.pressureForce,he-u)};let v=zl();const g=e.ml.output_size,[f,w]=ee(new Float32Array(g),{equals:!1}),x=e.params.length;let _=null;const[M,O]=ee(new Float32Array(x),{equals:!1}),y=P.outputs;let q=performance.now();const W=()=>{const z=y();if(z.length===0)return;const Q=performance.now(),he=Math.max(1,Q-q);q=Q;const ge=z.length===g?z:z.subarray(0,g),ce=ql(ge,Ie.config,v,he);v=ce.state,w(ce.processed);const Oe=ce.processed.length===x?ce.processed:ce.processed.subarray(0,x),Be=xe.state.overrides[e.mode_id]??{},Qe=Su(Oe,_,e.params,Be);_=Qe.values,O(Qe.values)};ze(()=>{y(),pe(W)}),ze(()=>{xe.state.overrides[e.mode_id],pe(()=>{y().length>0&&W()})}),ze(()=>{const z=xe.state.overrides[e.mode_id]??{};let Q=null;for(let he=0;he<e.params.length;++he){const ge=z[e.params[he].name];ge&&ge.frozen&&(Q||(Q=new Uint8Array(e.params.length)),Q[he]=1)}pe(()=>Ie.setFreezeMask(Q))});const N=Lu(),[Y,F]=ee(N.isStarted);let $=null,U=null;const ne=()=>{if(U=null,!$||!N.isStarted){$=null;return}const z=new Float32Array($);$=null;try{N.setParams(z)}catch(Q){console.warn("[mode-runtime] setParams failed:",Q)}},oe=z=>{$=z,U===null&&(U=window.setTimeout(ne,ku))};ze(()=>{const z=M();z.length!==0&&N.isStarted&&oe(z)});const S=t.engineOverride??e.engine_id,te=async()=>{if(!t.audioDisabled)try{await N.start(S),F(!0);const z=M();z.length>0&&N.setParams(new Float32Array(z))}catch(z){console.error("[mode-runtime] audio start failed:",z)}},me=async()=>{try{await N.stop()}finally{F(!1)}};Yn(()=>{N.isStarted&&N.setEngine(S)}),et(()=>{U!==null&&(clearTimeout(U),U=null),$=null});const C=new Pu,[V,le]=ee(!1),G=async()=>{try{await C.start(),le(!0)}catch(z){console.error("[mode-runtime] mic start failed:",z)}},j=async()=>{try{await C.stop()}finally{le(!1)}};et(()=>{j()});const ie=$e(()=>Z.state.snapshots.length>0),B=new Cr({resolution:16}),[_e,we]=ee("luminance"),[k,T]=ee(B.getCells(),{equals:!1}),se=(z=!1)=>{pe(()=>{if(!n())return;const Q=H.config,he=Q.zoom,ge=Q.anchorMode==="center"?.5:Q.anchorX,ce=Q.anchorMode==="center"?.5:Q.anchorY;B.update({cx:ge,cy:ce,zoom:he},z)&&T(new Float32Array(B.getCells()))})},R=Fe.on("ml.trained",()=>se()),ue=Fe.on("ml.delta_update",()=>se());et(()=>{R(),ue()}),ze(()=>{n()&&se(!0)});let ae=null;const fe=()=>{pe(()=>{if(!n()||!I.state.autoExploreEnabled)return;const z=I.state.autoExploreIntensity,Q=H.config.zoom,he=z*(.3+.7*Q),ge=I.state.noiseCap*he;Ze("before auto-explore");const ce=I.state.spread,Oe=xe.state.overrides[e.mode_id]??{},Be=$a(P.state.outputSize,e.mode_id,e.params,Oe,Z.state.paramPins);P.moveWeights(ge,ce,Be),I.growNoise(.5);const[Qe,Lt]=r();m(Qe,Lt)})};ze(()=>{const z=I.state.autoExploreEnabled,Q=I.state.autoExploreIntervalMs;ae!==null&&(window.clearInterval(ae),ae=null),z&&(ae=window.setInterval(fe,Q))}),et(()=>{ae!==null&&(window.clearInterval(ae),ae=null)});const Ae=z=>{u=performance.now(),I.setPressure(z.pressure??.5,0)},Se=()=>{u=null,I.setPressure(0,0)};typeof window<"u"&&(window.addEventListener("pointerdown",Ae,{passive:!0}),window.addEventListener("pointerup",Se),window.addEventListener("pointercancel",Se),et(()=>{window.removeEventListener("pointerdown",Ae),window.removeEventListener("pointerup",Se),window.removeEventListener("pointercancel",Se)}));const de=()=>{if(!n())return;Ze("before train");const z=I.state.learningRate;P.train(z,e.ml.default_max_iterations,.001)},qe=()=>{if(!n())return;const[z,Q]=r();if(M().length===0)return;const ge=new Array(e.ml.input_size).fill(0);if(ge[0]=z,ge.length>1&&(ge[1]=Q),C.isRunning()&&e.ml.input_size>2){const Oe=C.getFeatures(),Be=[Oe.energy,Oe.brightness,Oe.pitch,Oe.aperiodicity];for(let Qe=2;Qe<e.ml.input_size;++Qe)ge[Qe]=Be[Qe-2]??0}const ce=Array.from(f());Ze("before thumbs-up"),P.addExample(ge,ce),I.decayNoise(I.state.pressureForce),de()},je=()=>{if(!n())return;Ze("before thumbs-down");const z=I.state.noiseCap,Q=I.state.spread,he=xe.state.overrides[e.mode_id]??{},ge=$a(P.state.outputSize,e.mode_id,e.params,he,Z.state.paramPins);P.moveWeights(z,Q,ge),I.growNoise(I.state.pressureForce);const[ce,Oe]=r();m(ce,Oe)},Ne=()=>{if(!n())return;Ze("before randomize"),P.drawWeights(I.state.spread);const[z,Q]=r();m(z,Q)},yt=()=>{const z=yr();if(z){const[Q,he]=r();m(Q,he)}return z},mt=()=>{const z=H.config,Q=z.zoom,he=z.anchorMode==="center"?.5:z.anchorX,ge=z.anchorMode==="center"?.5:z.anchorY,ce=Q*.5;Z.addRegionPin({x:Math.max(0,he-ce),y:Math.max(0,ge-ce),width:Math.min(Q,1),height:Math.min(Q,1)}),Ze("pinned baseline")},Re=z=>{Qt(()=>{m(z.x,z.y)})};return{setInput:m,pipedInput:r,frozen:o,rawOutputs:y,processedOutputs:f,paramOutputs:M,ready:n,audio:{started:Y,start:te,stop:me,setMuted:z=>N.setMuted(z)},mic:{started:V,start:G,stop:j},training:{busy:()=>P.state.training,examples:()=>P.state.exampleCount,lastLoss:()=>P.state.lastLoss,lossHistory:()=>P.state.lossHistory},trainOnCurrent:de,thumbsUp:qe,thumbsDown:je,randomize:Ne,undo:yt,canUndo:()=>ie(),trail:c.points,snapToTrail:Re,heatmap:{cells:k,setColorMode:z=>{B.setColorMode(z),we(z),se(!0)},colorMode:_e,refresh:se,resolution:()=>B.resolution},pinCurrentRegion:mt}}const Fu="_pad_1w4bb_1",Eu="_dragging_1w4bb_18",Iu="_disabled_1w4bb_22",Ru="_grid_1w4bb_27",Ou="_gridH_1w4bb_34",Tu="_gridV_1w4bb_34",zu="_dot_1w4bb_53",Mt={pad:Fu,dragging:Eu,disabled:Iu,grid:Ru,gridH:Ou,gridV:Tu,dot:zu};var Du=E("<div role=application><div aria-hidden=true>"),qu=E("<div aria-hidden=true><div></div><div>");const Pn=e=>{const t=()=>e.size??240,n=()=>e.showGrid??!0,[a,r]=ee([.5,.5]),[i,o]=ee(!1);let s;const l=()=>e.position?.()??a(),d=f=>{if(!s)return;const w=s.getBoundingClientRect(),x=Math.max(0,Math.min(1,(f.clientX-w.left)/w.width)),_=Math.max(0,Math.min(1,1-(f.clientY-w.top)/w.height));e.position===void 0&&r([x,_]),e.onMove(x,_)},c=f=>{e.disabled||(f.currentTarget.setPointerCapture?.(f.pointerId),o(!0),e.onGrab?.(),d(f))},u=f=>{i()&&d(f)},m=f=>{i()&&(f.currentTarget.releasePointerCapture?.(f.pointerId),o(!1),e.onRelease?.())},v=f=>{if(e.disabled)return;const w=f.shiftKey?.05:.01;let[x,_]=l(),M=!0;switch(f.key){case"ArrowLeft":x-=w;break;case"ArrowRight":x+=w;break;case"ArrowUp":_+=w;break;case"ArrowDown":_-=w;break;case"Home":x=.5,_=.5;break;default:M=!1}M&&(f.preventDefault(),x=Math.max(0,Math.min(1,x)),_=Math.max(0,Math.min(1,_)),e.position===void 0&&r([x,_]),e.onMove(x,_))},g=$e(()=>{const[f,w]=l(),x=f*t(),_=(1-w)*t();return`transform: translate(${x}px, ${_}px) translate(-50%, -50%);`});return(()=>{var f=Du(),w=f.firstChild;f.$$keydown=v,f.addEventListener("pointercancel",m),f.$$pointerup=m,f.$$pointermove=u,f.$$pointerdown=c;var x=s;return typeof x=="function"?ct(x,f):s=f,b(f,(()=>{var _=zt(()=>!!n());return()=>_()&&(()=>{var M=qu(),O=M.firstChild,y=O.nextSibling;return A(q=>{var W=Mt.grid,N=Mt.gridH,Y=Mt.gridV;return W!==q.e&&h(M,q.e=W),N!==q.t&&h(O,q.t=N),Y!==q.a&&h(y,q.a=Y),q},{e:void 0,t:void 0,a:void 0}),M})()})(),w),A(_=>{var M=Mt.pad,O={[Mt.disabled]:!!e.disabled,[Mt.dragging]:i()},y=`${t()}px`,q=`${t()}px`,W=e.disabled?-1:0,N=e.ariaLabel??"XY pad",Y=Mt.dot,F=g();return M!==_.e&&h(f,_.e=M),_.t=Ke(f,O,_.t),y!==_.a&&ke(f,"width",_.a=y),q!==_.o&&ke(f,"height",_.o=q),W!==_.i&&X(f,"tabindex",_.i=W),N!==_.n&&X(f,"aria-label",_.n=N),Y!==_.s&&h(w,_.s=Y),_.h=An(w,F,_.h),_},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),f})()};Je(["pointerdown","pointermove","pointerup","keydown"]);const Nu="_canvas_136xq_1",Bu="_compact_136xq_8",ka={canvas:Nu,compact:Bu};var Vu=E("<canvas role=img>");const _t=e=>{let t;const n=()=>e.compact??!1;return ze(()=>{if(!t)return;const a=e.values(),r=window.devicePixelRatio||1,i=(e.width??320)*r,o=(e.height??(n()?40:80))*r;(t.width!==i||t.height!==o)&&(t.width=i,t.height=o);const s=t.getContext("2d");if(!s||(s.clearRect(0,0,i,o),a.length===0))return;const l=a.length,d=i/l,c=e.color??"#ff6a00";s.fillStyle=c;for(let u=0;u<l;u++){const v=Math.max(0,Math.min(1,a[u]??0))*o;s.fillRect(u*d,o-v,Math.max(1,d-r),v)}s.strokeStyle="rgba(255,255,255,0.06)",s.beginPath(),s.moveTo(0,o*.5),s.lineTo(i,o*.5),s.stroke()}),(()=>{var a=Vu(),r=t;return typeof r=="function"?ct(r,a):t=a,A(i=>{var o=ka.canvas,s={[ka.compact]:n()},l=`${e.width??320}px`,d=`${e.height??(n()?40:80)}px`,c=`Output bars (${e.values().length} channels)`;return o!==i.e&&h(a,i.e=o),i.t=Ke(a,s,i.t),l!==i.a&&ke(a,"width",i.a=l),d!==i.o&&ke(a,"height",i.o=d),c!==i.i&&X(a,"aria-label",i.i=c),i},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),a})()},ju={mode_id:"paf_synth",engine_id:"paf_synth",ml:{input_channels:["joy_x","joy_y","joy_z","joy_w"],input_size:4,hidden_layers:[10,10,14],output_size:33,default_spread:.6,default_learning_rate:1,default_max_iterations:1e3},params:[{name:"p00",label:"Param 00",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"p01",label:"Param 01",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"paf0_cf",label:"PAF0 Center Freq",min:0,max:1,default:.5,curve:"linear",group:"operators"},{name:"paf1_cf",label:"PAF1 Center Freq",min:0,max:1,default:.5,curve:"linear",group:"operators"},{name:"p04",label:"Param 04",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"paf0_bw",label:"PAF0 Bandwidth",min:0,max:1,default:.5,curve:"linear",group:"operators"},{name:"paf1_bw",label:"PAF1 Bandwidth",min:0,max:1,default:.5,curve:"linear",group:"operators"},{name:"p07",label:"Param 07",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"paf0_vib",label:"PAF0 Vibrato Depth",min:0,max:1,default:0,curve:"square",group:"modulation"},{name:"paf1_vib",label:"PAF1 Vibrato Depth",min:0,max:1,default:0,curve:"square",group:"modulation"},{name:"p10",label:"Param 10",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"paf0_vfr",label:"PAF0 Vibrato Rate",min:0,max:1,default:.5,curve:"square",group:"modulation"},{name:"paf1_vfr",label:"PAF1 Vibrato Rate",min:0,max:1,default:.5,curve:"square",group:"modulation"},{name:"p13",label:"Param 13",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"paf0_shift",label:"PAF0 Shift",min:0,max:1,default:.5,curve:"linear",group:"operators"},{name:"paf1_shift",label:"PAF1 Shift",min:0,max:1,default:.5,curve:"linear",group:"operators"},{name:"p16",label:"Param 16",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"dl1mix",label:"Delay Mix",min:0,max:1,default:0,curve:"square",group:"delay"},{name:"p18",label:"Param 18",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"dlfb",label:"Delay Feedback",min:0,max:1,default:.5,curve:"linear",group:"delay"},{name:"env_decay",label:"Env Decay",min:0,max:1,default:.3,curve:"square",group:"envelope"},{name:"p21",label:"Param 21",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"p22",label:"Param 22",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"p23",label:"Param 23",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"p24",label:"Param 24",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"p25",label:"Param 25",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"shape_gain",label:"Sine Shape Gain",min:0,max:1,default:0,curve:"square",group:"shaper"},{name:"shape_asym",label:"Sine Shape Asym",min:0,max:1,default:0,curve:"square",group:"shaper"},{name:"shape_mix",label:"Sine Shape Mix",min:0,max:1,default:0,curve:"linear",group:"shaper"},{name:"rm_gain",label:"Ring Mod Gain",min:0,max:1,default:0,curve:"square",group:"shaper"},{name:"env_attack",label:"Env Attack",min:0,max:1,default:0,curve:"linear",group:"envelope"},{name:"env_sustain",label:"Env Sustain",min:0,max:1,default:.5,curve:"linear",group:"envelope"},{name:"env_release",label:"Env Release",min:0,max:1,default:.3,curve:"linear",group:"envelope"}],voice_spaces:["Ellipticacacia","Rowantares","Neemeda","Aquillow","Magnetarch","Elderstar","Ipeleiades"],ui:{primary_input:"xy_pad",show_voice_space_selector:!0,show_synth_visualizer:!0}};var Hu=E("<span style=font-size:var(--fs-xs);color:var(--fg-mute)>Drag to sculpt formants. Voice space:&nbsp;<strong>");const Wu=()=>{const e=ju,t=pt(e),[n,a]=ee(0);return p(bt,{schema:e,runtime:t,activeVoiceSpace:n,onVoiceSpaceChange:a,drawerTitle:"PAF synth settings",primaryInput:()=>[p(Pn,{size:280,ariaLabel:"PAF synth control pad",onMove:(r,i)=>t.setInput(r,i),get position(){return t.pipedInput}}),(()=>{var r=Hu(),i=r.firstChild,o=i.nextSibling;return b(o,()=>e.voice_spaces[n()]??"Default"),r})()],outputArea:()=>[p(_t,{get values(){return t.paramOutputs},width:360,height:120,color:"var(--accent)"}),p(dt,{get history(){return t.training.lossHistory},width:360,height:70})]})},Uu="_container_wvoct_1",Gu="_dragging_wvoct_18",Xu="_disabled_wvoct_22",Yu="_boundary_wvoct_27",Zu="_crosshair_wvoct_35",Ku="_hLine_wvoct_42",Ju="_vLine_wvoct_42",Qu="_knob_wvoct_61",ht={container:Uu,dragging:Gu,disabled:Xu,boundary:Yu,crosshair:Zu,hLine:Ku,vLine:Ju,knob:Qu};var ec=E("<div role=application><div></div><div aria-hidden=true><div></div><div></div></div><div aria-hidden=true>");const tc=200,on=e=>{const t=()=>e.size??tc,[n,a]=ee([.5,.5]),[r,i]=ee(!1);let o;const s=()=>e.position?.()??n(),l=g=>{if(!o)return;const f=o.getBoundingClientRect(),w=(g.clientX-f.left)/f.width,x=1-(g.clientY-f.top)/f.height,_=Math.max(0,Math.min(1,w)),M=Math.max(0,Math.min(1,x)),O=_-.5,y=M-.5,q=Math.sqrt(O*O+y*y);let W=_,N=M;q>.5&&q>1e-12&&(W=.5+O/q*.5,N=.5+y/q*.5),e.position===void 0&&a([W,N]),e.onMove(W,N)},d=g=>{e.disabled||(g.currentTarget.setPointerCapture?.(g.pointerId),i(!0),e.onGrab?.(),l(g))},c=g=>{r()&&l(g)},u=g=>{r()&&(g.currentTarget.releasePointerCapture?.(g.pointerId),i(!1),e.onRelease?.())},m=g=>{if(e.disabled)return;const f=g.shiftKey?.05:.01;let[w,x]=s(),_=!0;switch(g.key){case"ArrowLeft":w-=f;break;case"ArrowRight":w+=f;break;case"ArrowUp":x+=f;break;case"ArrowDown":x-=f;break;case"Home":w=.5,x=.5;break;default:_=!1}_&&(g.preventDefault(),w=Math.max(0,Math.min(1,w)),x=Math.max(0,Math.min(1,x)),e.position===void 0&&a([w,x]),e.onMove(w,x))},v=$e(()=>{const[g,f]=s(),w=g*t(),x=(1-f)*t();return`transform: translate(${w}px, ${x}px) translate(-50%, -50%);`});return(()=>{var g=ec(),f=g.firstChild,w=f.nextSibling,x=w.firstChild,_=x.nextSibling,M=w.nextSibling;g.$$keydown=m,g.addEventListener("pointercancel",u),g.$$pointerup=u,g.$$pointermove=c,g.$$pointerdown=d;var O=o;return typeof O=="function"?ct(O,g):o=g,A(y=>{var q=ht.container,W={[ht.disabled]:!!e.disabled,[ht.dragging]:r()},N=`${t()}px`,Y=`${t()}px`,F=e.disabled?-1:0,$=e.ariaLabel??"virtual joystick",U=ht.boundary,ne=ht.crosshair,oe=ht.hLine,S=ht.vLine,te=ht.knob,me=v();return q!==y.e&&h(g,y.e=q),y.t=Ke(g,W,y.t),N!==y.a&&ke(g,"width",y.a=N),Y!==y.o&&ke(g,"height",y.o=Y),F!==y.i&&X(g,"tabindex",y.i=F),$!==y.n&&X(g,"aria-label",y.n=$),U!==y.s&&h(f,y.s=U),ne!==y.h&&h(w,y.h=ne),oe!==y.r&&h(x,y.r=oe),S!==y.d&&h(_,y.d=S),te!==y.l&&h(M,y.l=te),y.u=An(M,me,y.u),y},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0}),g})()};Je(["pointerdown","pointermove","pointerup","keydown"]);const nc={mode_id:"channel_strip",engine_id:"channel_strip",ml:{input_channels:["joy_x","joy_y","joy_z","joy_w"],input_size:4,hidden_layers:[10,10,14],output_size:24,default_spread:.6,default_learning_rate:1,default_max_iterations:1e3},params:[{name:"pre_gain",label:"Pre Gain",min:0,max:1,default:.5,curve:"square",group:"gain"},{name:"peak0_freq",label:"Peak0 Freq",min:0,max:1,default:.3,curve:"square",group:"eq"},{name:"p02",label:"Param 02",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"p03",label:"Param 03",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"peak1_freq",label:"Peak1 Freq",min:0,max:1,default:.3,curve:"square",group:"eq"},{name:"peak_q",label:"Peak Q",min:0,max:1,default:.3,curve:"linear",group:"eq"},{name:"peak_gain",label:"Peak Gain",min:0,max:1,default:.5,curve:"linear",group:"eq"},{name:"in_lpf_cutoff",label:"Input LPF",min:0,max:1,default:.7,curve:"square",group:"filters"},{name:"in_hpf_cutoff",label:"Input HPF",min:0,max:1,default:.2,curve:"square",group:"filters"},{name:"p09",label:"Param 09",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"comp_threshold",label:"Comp Threshold",min:0,max:1,default:0,curve:"linear",group:"comp"},{name:"comp_ratio",label:"Comp Ratio",min:0,max:1,default:0,curve:"linear",group:"comp"},{name:"comp_attack",label:"Comp Attack",min:0,max:1,default:.1,curve:"linear",group:"comp"},{name:"comp_release",label:"Comp Release",min:0,max:1,default:.3,curve:"square",group:"comp"},{name:"lowshelf_freq",label:"Lowshelf Freq",min:0,max:1,default:.3,curve:"square",group:"eq"},{name:"lowshelf_q",label:"Lowshelf Q",min:0,max:1,default:.3,curve:"linear",group:"eq"},{name:"lowshelf_gain",label:"Lowshelf Gain",min:0,max:1,default:.5,curve:"linear",group:"eq"},{name:"highshelf_freq",label:"Highshelf Freq",min:0,max:1,default:.3,curve:"square",group:"eq"},{name:"highshelf_q",label:"Highshelf Q",min:0,max:1,default:.3,curve:"linear",group:"eq"},{name:"highshelf_gain",label:"Highshelf Gain",min:0,max:1,default:.5,curve:"linear",group:"eq"},{name:"p20",label:"Param 20",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"p21",label:"Param 21",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"p22",label:"Param 22",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"post_gain",label:"Post Gain",min:0,max:1,default:.5,curve:"square",group:"gain"}],voice_spaces:["WannabeNeve66","SSL 4K G-ist","SSL 9K-inda","MaleVox","FemaleVox","Neve 80"],ui:{primary_input:"joystick",show_voice_space_selector:!0,show_synth_visualizer:!1}};var ac=E("<span style=font-size:var(--fs-xs);color:var(--fg-mute)>Mix EQ + dynamics by moving the joystick.");const rc=()=>{const e=nc,t=pt(e);return p(bt,{schema:e,runtime:t,drawerTitle:"Channel strip settings",primaryInput:()=>[p(on,{size:260,ariaLabel:"Channel strip joystick",onMove:(n,a)=>t.setInput(n,a),get position(){return t.pipedInput}}),ac()],outputArea:()=>[p(_t,{get values(){return t.paramOutputs},width:360,height:120,color:"var(--accent-3)"}),p(dt,{get history(){return t.training.lossHistory},width:360,height:70})]})},ic={mode_id:"xiasri",engine_id:"xiasri",ml:{input_channels:["joy_x","joy_y","joy_z","joy_w"],input_size:4,hidden_layers:[10,10,14],output_size:24,default_spread:.6,default_learning_rate:1,default_max_iterations:1e3},params:[{name:"dl1_mix",label:"Delay 1 Mix",min:0,max:1,default:0,curve:"linear",group:"delays"},{name:"dl2_mix",label:"Delay 2 Mix",min:0,max:1,default:0,curve:"linear",group:"delays"},{name:"dl3_mix",label:"Delay 3 Mix",min:0,max:1,default:0,curve:"linear",group:"delays"},{name:"p03",label:"Param 03",min:0,max:1,default:.5,curve:"linear",group:"general"},{name:"allp1_fb",label:"Allpass 1 Feedback",min:0,max:1,default:0,curve:"linear",group:"verb"},{name:"allp2_fb",label:"Allpass 2 Feedback",min:0,max:1,default:0,curve:"linear",group:"verb"},{name:"comb1_fb",label:"Comb 1 Feedback",min:0,max:1,default:0,curve:"linear",group:"verb"},{name:"comb2_fb",label:"Comb 2 Feedback",min:0,max:1,default:0,curve:"linear",group:"verb"},{name:"dl1_fb",label:"Delay 1 Feedback",min:0,max:1,default:0,curve:"linear",group:"delays"},{name:"dl2_fb",label:"Delay 2 Feedback",min:0,max:1,default:0,curve:"linear",group:"delays"},{name:"dl3_fb",label:"Delay 3 Feedback",min:0,max:1,default:0,curve:"linear",group:"delays"},{name:"wetdry_mix",label:"Wet/Dry Mix",min:0,max:1,default:.5,curve:"linear",group:"mix"},{name:"pitch_transp",label:"Pitch Transpose",min:0,max:1,default:.5,curve:"linear",group:"pitch"},{name:"pitch_mix",label:"Pitch Mix",min:0,max:1,default:0,curve:"linear",group:"pitch"},{name:"allp3_fb",label:"Allpass 3 Feedback",min:0,max:1,default:0,curve:"linear",group:"verb"},{name:"allp4_fb",label:"Allpass 4 Feedback",min:0,max:1,default:0,curve:"linear",group:"verb"},{name:"allp5_fb",label:"Allpass 5 Feedback",min:0,max:1,default:0,curve:"linear",group:"verb"},{name:"allp6_fb",label:"Allpass 6 Feedback",min:0,max:1,default:0,curve:"linear",group:"verb"},{name:"allp3_mix",label:"Allpass 3 Mix",min:0,max:1,default:0,curve:"linear",group:"verb"},{name:"allp4_mix",label:"Allpass 4 Mix",min:0,max:1,default:0,curve:"linear",group:"verb"},{name:"allp5_mix",label:"Allpass 5 Mix",min:0,max:1,default:0,curve:"linear",group:"verb"},{name:"allp6_mix",label:"Allpass 6 Mix",min:0,max:1,default:0,curve:"linear",group:"verb"},{name:"dl4_mix",label:"Delay 4 Mix",min:0,max:1,default:0,curve:"square",group:"delays"},{name:"dl4_fb",label:"Delay 4 Feedback",min:0,max:1,default:0,curve:"linear",group:"delays"}],voice_spaces:["Direct"],ui:{primary_input:"joystick",show_voice_space_selector:!1,show_synth_visualizer:!1}};var oc=E("<span style=font-size:var(--fs-xs);color:var(--fg-mute)>Joystick → verb / pitch space. Enable mic for audio-reactive features.");const lc=()=>{const e=ic,t=pt(e);return p(bt,{schema:e,runtime:t,drawerTitle:"XIASRI settings",primaryInput:()=>[p(on,{size:260,ariaLabel:"XIASRI joystick",onMove:(n,a)=>t.setInput(n,a),get position(){return t.pipedInput}}),oc()],outputArea:()=>[p(_t,{get values(){return t.paramOutputs},width:360,height:120,color:"var(--accent-2)"}),p(dt,{get history(){return t.training.lossHistory},width:360,height:70})]})},sc={mode_id:"verb_fx",engine_id:"verb_fx",ml:{input_channels:["joy_x","joy_y","joy_z","joy_w"],input_size:4,hidden_layers:[10,14,18],output_size:47,default_spread:.6,default_learning_rate:1,default_max_iterations:1e3},params:[{name:"fb_delay_xfade",label:"Bank/Delay XFade",min:0,max:1,default:0,curve:"linear",group:"routing"},{name:"lp0_fb",label:"LP Comb 0 FB",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp0_cutoff",label:"LP Comb 0 Cutoff",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp1_fb",label:"LP Comb 1 FB",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp1_cutoff",label:"LP Comb 1 Cutoff",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp2_fb",label:"LP Comb 2 FB",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp2_cutoff",label:"LP Comb 2 Cutoff",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp3_fb",label:"LP Comb 3 FB",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp3_cutoff",label:"LP Comb 3 Cutoff",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp4_fb",label:"LP Comb 4 FB",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp4_cutoff",label:"LP Comb 4 Cutoff",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp5_fb",label:"LP Comb 5 FB",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp5_cutoff",label:"LP Comb 5 Cutoff",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp6_fb",label:"LP Comb 6 FB",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp6_cutoff",label:"LP Comb 6 Cutoff",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp7_fb",label:"LP Comb 7 FB",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"lp7_cutoff",label:"LP Comb 7 Cutoff",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"allp0_fb",label:"Allpass 0 FB",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"allp1_fb",label:"Allpass 1 FB",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"allp2_fb",label:"Allpass 2 FB",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"allp3_fb",label:"Allpass 3 FB",min:0,max:1,default:.5,curve:"linear",group:"verb"},{name:"fbank_f0",label:"Filterbank Freq 0",min:0,max:1,default:.5,curve:"linear",group:"filterbank"},{name:"fbank_f1",label:"Filterbank Freq 1",min:0,max:1,default:.5,curve:"linear",group:"filterbank"},{name:"fbank_f2",label:"Filterbank Freq 2",min:0,max:1,default:.5,curve:"linear",group:"filterbank"},{name:"fbank_f3",label:"Filterbank Freq 3",min:0,max:1,default:.5,curve:"linear",group:"filterbank"},{name:"fbank_f4",label:"Filterbank Freq 4",min:0,max:1,default:.5,curve:"linear",group:"filterbank"},{name:"fbank_f5",label:"Filterbank Freq 5",min:0,max:1,default:.5,curve:"linear",group:"filterbank"},{name:"fbank_f6",label:"Filterbank Freq 6",min:0,max:1,default:.5,curve:"linear",group:"filterbank"},{name:"fbank_f7",label:"Filterbank Freq 7",min:0,max:1,default:.5,curve:"linear",group:"filterbank"},{name:"fbank_res0",label:"Filterbank Res 0",min:0,max:1,default:0,curve:"linear",group:"filterbank"},{name:"fbank_res1",label:"Filterbank Res 1",min:0,max:1,default:0,curve:"linear",group:"filterbank"},{name:"fbank_res2",label:"Filterbank Res 2",min:0,max:1,default:0,curve:"linear",group:"filterbank"},{name:"fbank_res3",label:"Filterbank Res 3",min:0,max:1,default:0,curve:"linear",group:"filterbank"},{name:"fbank_res4",label:"Filterbank Res 4",min:0,max:1,default:0,curve:"linear",group:"filterbank"},{name:"fbank_res5",label:"Filterbank Res 5",min:0,max:1,default:0,curve:"linear",group:"filterbank"},{name:"fbank_res6",label:"Filterbank Res 6",min:0,max:1,default:0,curve:"linear",group:"filterbank"},{name:"fbank_res7",label:"Filterbank Res 7",min:0,max:1,default:0,curve:"linear",group:"filterbank"},{name:"delay0_time",label:"Long Delay Time",min:0,max:1,default:.5,curve:"linear",group:"delays"},{name:"delay0_fb",label:"Long Delay FB",min:0,max:1,default:.5,curve:"linear",group:"delays"},{name:"delay1_time",label:"Med Delay Time",min:0,max:1,default:.5,curve:"linear",group:"delays"},{name:"delay1_fb",label:"Med Delay FB",min:0,max:1,default:.5,curve:"linear",group:"delays"},{name:"delay2_time",label:"Short Delay Time",min:0,max:1,default:.5,curve:"linear",group:"delays"},{name:"delay2_fb",label:"Short Delay FB",min:0,max:1,default:.5,curve:"linear",group:"delays"},{name:"verb_vs_delay",label:"Verb vs Delay",min:0,max:1,default:.5,curve:"linear",group:"routing"},{name:"delay_to_verb",label:"Delay→Verb Send",min:0,max:1,default:0,curve:"linear",group:"routing"},{name:"delay_morph",label:"Delay Morph",min:0,max:1,default:.5,curve:"linear",group:"delays"},{name:"delay_blend",label:"Delay Blend",min:0,max:1,default:0,curve:"linear",group:"delays"}],voice_spaces:["Default","Resonant","Soft","Cathedral","Shimmer","Chamber","Metallic","Granular","Diffuse","Dark","Bright","Harmonic"],ui:{primary_input:"joystick",show_voice_space_selector:!0,show_synth_visualizer:!1}};var uc=E("<span style=font-size:var(--fs-xs);color:var(--fg-mute)>Sweep through verb space. Voice space:&nbsp;<strong>");const cc=()=>{const e=sc,t=pt(e),[n,a]=ee(0);return p(bt,{schema:e,runtime:t,activeVoiceSpace:n,onVoiceSpaceChange:a,drawerTitle:"Verb / FX settings",primaryInput:()=>[p(on,{size:260,ariaLabel:"Verb FX joystick",onMove:(r,i)=>t.setInput(r,i),get position(){return t.pipedInput}}),(()=>{var r=uc(),i=r.firstChild,o=i.nextSibling;return b(o,()=>e.voice_spaces[n()]??"Default"),r})()],outputArea:()=>[p(_t,{get values(){return t.paramOutputs},width:360,height:120,color:"#b464ff"}),p(dt,{get history(){return t.training.lossHistory},width:360,height:70})]})},dc={mode_id:"memlcelium",engine_id:"memlcelium",ml:{input_channels:["joy_x","joy_y","joy_z","joy_w"],input_size:4,hidden_layers:[10,14,18],output_size:56,default_spread:.6,default_learning_rate:1,default_max_iterations:1e3},params:[{name:"seq0_ratio0",label:"Seq0 Ratio 0",min:0,max:1,default:.5,curve:"linear",group:"sequencer"},{name:"seq0_ratio1",label:"Seq0 Ratio 1",min:0,max:1,default:.5,curve:"linear",group:"sequencer"},{name:"seq0_ratio2",label:"Seq0 Ratio 2",min:0,max:1,default:.5,curve:"linear",group:"sequencer"},{name:"seq0_phasor_mul",label:"Seq0 Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"sequencer"},{name:"seq0_phase_off",label:"Seq0 Phase Off",min:0,max:1,default:0,curve:"linear",group:"sequencer"},{name:"seq0_amp0",label:"Seq0 Amp 0",min:0,max:1,default:.5,curve:"linear",group:"sequencer"},{name:"seq0_amp1",label:"Seq0 Amp 1",min:0,max:1,default:.5,curve:"linear",group:"sequencer"},{name:"seq1_ratio0",label:"Seq1 Ratio 0",min:0,max:1,default:.5,curve:"linear",group:"sequencer"},{name:"seq1_ratio1",label:"Seq1 Ratio 1",min:0,max:1,default:.5,curve:"linear",group:"sequencer"},{name:"seq1_ratio2",label:"Seq1 Ratio 2",min:0,max:1,default:.5,curve:"linear",group:"sequencer"},{name:"seq1_phasor_mul",label:"Seq1 Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"sequencer"},{name:"seq1_phase_off",label:"Seq1 Phase Off",min:0,max:1,default:0,curve:"linear",group:"sequencer"},{name:"seq1_amp0",label:"Seq1 Amp 0",min:0,max:1,default:.5,curve:"linear",group:"sequencer"},{name:"seq1_amp1",label:"Seq1 Amp 1",min:0,max:1,default:.5,curve:"linear",group:"sequencer"},{name:"v0_base_freq",label:"V0 Base Freq",min:0,max:1,default:.5,curve:"linear",group:"v0_synth"},{name:"v0_paf0_cf",label:"V0 PAF0 CF",min:0,max:1,default:.5,curve:"linear",group:"v0_synth"},{name:"v0_paf1_cf",label:"V0 PAF1 CF",min:0,max:1,default:.5,curve:"linear",group:"v0_synth"},{name:"v0_paf2_cf",label:"V0 PAF2 CF",min:0,max:1,default:.5,curve:"linear",group:"v0_synth"},{name:"v0_paf0_bw",label:"V0 PAF0 BW",min:0,max:1,default:.5,curve:"linear",group:"v0_synth"},{name:"v0_paf1_bw",label:"V0 PAF1 BW",min:0,max:1,default:.5,curve:"linear",group:"v0_synth"},{name:"v0_paf2_bw",label:"V0 PAF2 BW",min:0,max:1,default:.5,curve:"linear",group:"v0_synth"},{name:"v0_paf_vib",label:"V0 PAF Vib",min:0,max:1,default:0,curve:"square",group:"v0_synth"},{name:"v0_paf_vfr",label:"V0 PAF Vib Rate",min:0,max:1,default:.5,curve:"square",group:"v0_synth"},{name:"v0_paf0_shift",label:"V0 PAF0 Shift",min:0,max:1,default:.5,curve:"linear",group:"v0_synth"},{name:"v0_paf1_shift",label:"V0 PAF1 Shift",min:0,max:1,default:.5,curve:"linear",group:"v0_synth"},{name:"v0_paf2_shift",label:"V0 PAF2 Shift",min:0,max:1,default:.5,curve:"linear",group:"v0_synth"},{name:"v0_amp_attack",label:"V0 Amp Attack",min:0,max:1,default:0,curve:"linear",group:"v0_env"},{name:"v0_amp_decay",label:"V0 Amp Decay",min:0,max:1,default:.3,curve:"square",group:"v0_env"},{name:"v0_amp_sustain",label:"V0 Amp Sustain",min:0,max:1,default:.5,curve:"linear",group:"v0_env"},{name:"v0_amp_release",label:"V0 Amp Release",min:0,max:1,default:.3,curve:"square",group:"v0_env"},{name:"v0_pitch_attack",label:"V0 Pitch Attack",min:0,max:1,default:0,curve:"linear",group:"v0_env"},{name:"v0_pitch_decay",label:"V0 Pitch Decay",min:0,max:1,default:.3,curve:"square",group:"v0_env"},{name:"v0_pitch_emph",label:"V0 Pitch Emph",min:0,max:1,default:0,curve:"linear",group:"v0_env"},{name:"v0_shape_gain",label:"V0 Shape Gain",min:0,max:1,default:0,curve:"linear",group:"v0_synth"},{name:"v0_shape_asym",label:"V0 Shape Asym",min:0,max:1,default:0,curve:"linear",group:"v0_synth"},{name:"v0_shape_mix",label:"V0 Shape Mix",min:0,max:1,default:0,curve:"linear",group:"v0_synth"},{name:"v0_rm_gain",label:"V0 RingMod Gain",min:0,max:1,default:0,curve:"linear",group:"v0_synth"},{name:"v1_base_freq",label:"V1 Base Freq",min:0,max:1,default:.5,curve:"linear",group:"v1_synth"},{name:"v1_detune1",label:"V1 Detune 1",min:0,max:1,default:0,curve:"linear",group:"v1_synth"},{name:"v1_detune2",label:"V1 Detune 2",min:0,max:1,default:0,curve:"linear",group:"v1_synth"},{name:"v1_paf0_cf",label:"V1 PAF0 CF",min:0,max:1,default:.5,curve:"linear",group:"v1_synth"},{name:"v1_paf1_cf",label:"V1 PAF1 CF",min:0,max:1,default:.5,curve:"linear",group:"v1_synth"},{name:"v1_paf2_cf",label:"V1 PAF2 CF",min:0,max:1,default:.5,curve:"linear",group:"v1_synth"},{name:"v1_paf0_bw",label:"V1 PAF0 BW",min:0,max:1,default:.5,curve:"linear",group:"v1_synth"},{name:"v1_paf1_bw",label:"V1 PAF1 BW",min:0,max:1,default:.5,curve:"linear",group:"v1_synth"},{name:"v1_paf2_bw",label:"V1 PAF2 BW",min:0,max:1,default:.5,curve:"linear",group:"v1_synth"},{name:"v1_paf0_shift",label:"V1 PAF0 Shift",min:0,max:1,default:.5,curve:"linear",group:"v1_synth"},{name:"v1_paf1_shift",label:"V1 PAF1 Shift",min:0,max:1,default:.5,curve:"linear",group:"v1_synth"},{name:"v1_paf2_shift",label:"V1 PAF2 Shift",min:0,max:1,default:.5,curve:"linear",group:"v1_synth"},{name:"v1_amp_attack",label:"V1 Amp Attack",min:0,max:1,default:0,curve:"linear",group:"v1_env"},{name:"v1_amp_decay",label:"V1 Amp Decay",min:0,max:1,default:.3,curve:"square",group:"v1_env"},{name:"v1_amp_sustain",label:"V1 Amp Sustain",min:0,max:1,default:.5,curve:"linear",group:"v1_env"},{name:"v1_amp_release",label:"V1 Amp Release",min:0,max:1,default:.3,curve:"square",group:"v1_env"},{name:"v1_pitch_attack",label:"V1 Pitch Attack",min:0,max:1,default:0,curve:"linear",group:"v1_env"},{name:"v1_pitch_decay",label:"V1 Pitch Decay",min:0,max:1,default:.3,curve:"square",group:"v1_env"},{name:"v1_pitch_emph",label:"V1 Pitch Emph",min:0,max:1,default:0,curve:"linear",group:"v1_env"}],voice_spaces:["Direct"],ui:{primary_input:"xy_pad",show_voice_space_selector:!1,show_synth_visualizer:!0}};var mc=E("<span style=font-size:var(--fs-xs);color:var(--fg-mute)>Sculpt voice + CV/gate. CV/gate streaming over USB serial requires firmware (browser preview only).");const fc=()=>{const e=dc,t=pt(e),[n,a]=ee(0);return p(bt,{schema:e,runtime:t,activeVoiceSpace:n,onVoiceSpaceChange:a,drawerTitle:"MEMLCelium settings",primaryInput:()=>[p(Pn,{size:280,ariaLabel:"MEMLCelium pad",onMove:(r,i)=>t.setInput(r,i),get position(){return t.pipedInput}}),mc()],outputArea:()=>[p(_t,{get values(){return t.paramOutputs},width:360,height:120,color:"#5b9eef"}),p(dt,{get history(){return t.training.lossHistory},width:360,height:70})]})},hc={mode_id:"breakor",engine_id:"breakor",ml:{input_channels:["joy_x","joy_y","joy_z","joy_w"],input_size:4,hidden_layers:[10,14,18],output_size:56,default_spread:.6,default_learning_rate:1,default_max_iterations:1e3},params:[{name:"kick_ratio0",label:"Kick Ratio 0",min:0,max:1,default:.5,curve:"linear",group:"kick"},{name:"kick_ratio1",label:"Kick Ratio 1",min:0,max:1,default:.5,curve:"linear",group:"kick"},{name:"kick_ratio2",label:"Kick Ratio 2",min:0,max:1,default:.5,curve:"linear",group:"kick"},{name:"kick_pmul",label:"Kick Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"kick"},{name:"kick_poff",label:"Kick Phase Off",min:0,max:1,default:0,curve:"linear",group:"kick"},{name:"kick_amp0",label:"Kick Amp 0",min:0,max:1,default:.5,curve:"linear",group:"kick"},{name:"kick_amp1",label:"Kick Amp 1",min:0,max:1,default:.5,curve:"linear",group:"kick"},{name:"snare_ratio0",label:"Snare Ratio 0",min:0,max:1,default:.5,curve:"linear",group:"snare"},{name:"snare_ratio1",label:"Snare Ratio 1",min:0,max:1,default:.5,curve:"linear",group:"snare"},{name:"snare_ratio2",label:"Snare Ratio 2",min:0,max:1,default:.5,curve:"linear",group:"snare"},{name:"snare_pmul",label:"Snare Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"snare"},{name:"snare_poff",label:"Snare Phase Off",min:0,max:1,default:0,curve:"linear",group:"snare"},{name:"snare_amp0",label:"Snare Amp 0",min:0,max:1,default:.5,curve:"linear",group:"snare"},{name:"snare_amp1",label:"Snare Amp 1",min:0,max:1,default:.5,curve:"linear",group:"snare"},{name:"tom_ratio0",label:"Tom Ratio 0",min:0,max:1,default:.5,curve:"linear",group:"tom"},{name:"tom_ratio1",label:"Tom Ratio 1",min:0,max:1,default:.5,curve:"linear",group:"tom"},{name:"tom_ratio2",label:"Tom Ratio 2",min:0,max:1,default:.5,curve:"linear",group:"tom"},{name:"tom_pmul",label:"Tom Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"tom"},{name:"tom_poff",label:"Tom Phase Off",min:0,max:1,default:0,curve:"linear",group:"tom"},{name:"tom_amp0",label:"Tom Amp 0",min:0,max:1,default:.5,curve:"linear",group:"tom"},{name:"tom_amp1",label:"Tom Amp 1",min:0,max:1,default:.5,curve:"linear",group:"tom"},{name:"lowtom_ratio0",label:"LowTom Ratio 0",min:0,max:1,default:.5,curve:"linear",group:"lowtom"},{name:"lowtom_ratio1",label:"LowTom Ratio 1",min:0,max:1,default:.5,curve:"linear",group:"lowtom"},{name:"lowtom_ratio2",label:"LowTom Ratio 2",min:0,max:1,default:.5,curve:"linear",group:"lowtom"},{name:"lowtom_pmul",label:"LowTom Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"lowtom"},{name:"lowtom_poff",label:"LowTom Phase Off",min:0,max:1,default:0,curve:"linear",group:"lowtom"},{name:"lowtom_amp0",label:"LowTom Amp 0",min:0,max:1,default:.5,curve:"linear",group:"lowtom"},{name:"lowtom_amp1",label:"LowTom Amp 1",min:0,max:1,default:.5,curve:"linear",group:"lowtom"},{name:"rim_ratio0",label:"Rim Ratio 0",min:0,max:1,default:.5,curve:"linear",group:"rim"},{name:"rim_ratio1",label:"Rim Ratio 1",min:0,max:1,default:.5,curve:"linear",group:"rim"},{name:"rim_ratio2",label:"Rim Ratio 2",min:0,max:1,default:.5,curve:"linear",group:"rim"},{name:"rim_pmul",label:"Rim Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"rim"},{name:"rim_poff",label:"Rim Phase Off",min:0,max:1,default:0,curve:"linear",group:"rim"},{name:"rim_amp0",label:"Rim Amp 0",min:0,max:1,default:.5,curve:"linear",group:"rim"},{name:"rim_amp1",label:"Rim Amp 1",min:0,max:1,default:.5,curve:"linear",group:"rim"},{name:"hat_ratio0",label:"Hat Ratio 0",min:0,max:1,default:.5,curve:"linear",group:"hat"},{name:"hat_ratio1",label:"Hat Ratio 1",min:0,max:1,default:.5,curve:"linear",group:"hat"},{name:"hat_ratio2",label:"Hat Ratio 2",min:0,max:1,default:.5,curve:"linear",group:"hat"},{name:"hat_pmul",label:"Hat Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"hat"},{name:"hat_poff",label:"Hat Phase Off",min:0,max:1,default:0,curve:"linear",group:"hat"},{name:"hat_amp0",label:"Hat Amp 0",min:0,max:1,default:.5,curve:"linear",group:"hat"},{name:"hat_amp1",label:"Hat Amp 1",min:0,max:1,default:.5,curve:"linear",group:"hat"},{name:"ophat_ratio0",label:"OpenHat Ratio 0",min:0,max:1,default:.5,curve:"linear",group:"openhat"},{name:"ophat_ratio1",label:"OpenHat Ratio 1",min:0,max:1,default:.5,curve:"linear",group:"openhat"},{name:"ophat_ratio2",label:"OpenHat Ratio 2",min:0,max:1,default:.5,curve:"linear",group:"openhat"},{name:"ophat_pmul",label:"OpenHat Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"openhat"},{name:"ophat_poff",label:"OpenHat Phase Off",min:0,max:1,default:0,curve:"linear",group:"openhat"},{name:"ophat_amp0",label:"OpenHat Amp 0",min:0,max:1,default:.5,curve:"linear",group:"openhat"},{name:"ophat_amp1",label:"OpenHat Amp 1",min:0,max:1,default:.5,curve:"linear",group:"openhat"},{name:"perc_ratio0",label:"Perc Ratio 0",min:0,max:1,default:.5,curve:"linear",group:"perc"},{name:"perc_ratio1",label:"Perc Ratio 1",min:0,max:1,default:.5,curve:"linear",group:"perc"},{name:"perc_ratio2",label:"Perc Ratio 2",min:0,max:1,default:.5,curve:"linear",group:"perc"},{name:"perc_pmul",label:"Perc Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"perc"},{name:"perc_poff",label:"Perc Phase Off",min:0,max:1,default:0,curve:"linear",group:"perc"},{name:"perc_amp0",label:"Perc Amp 0",min:0,max:1,default:.5,curve:"linear",group:"perc"},{name:"perc_amp1",label:"Perc Amp 1",min:0,max:1,default:.5,curve:"linear",group:"perc"}],voice_spaces:[],ui:{primary_input:"xy_pad",show_voice_space_selector:!1,show_synth_visualizer:!1}};var vc=E("<span style=font-size:var(--fs-xs);color:var(--fg-mute)>Drag through drum space.");const gc=()=>{const e=hc,t=pt(e);return p(bt,{schema:e,runtime:t,drawerTitle:"Breakor settings",primaryInput:()=>[p(Pn,{size:280,ariaLabel:"Breakor pad",onMove:(n,a)=>t.setInput(n,a),get position(){return t.pipedInput}}),vc()],outputArea:()=>[p(_t,{get values(){return t.paramOutputs},width:360,height:120,color:"var(--good)"}),p(dt,{get history(){return t.training.lossHistory},width:360,height:70})]})},bc={mode_id:"elysiamorf",engine_id:"elysiamorf",ml:{input_channels:["joy_x","joy_y","joy_z","joy_w"],input_size:4,hidden_layers:[10,14,18],output_size:40,default_spread:.6,default_learning_rate:1,default_max_iterations:1e3},params:[{name:"fm0_carrier",label:"FM0 Carrier",min:0,max:1,default:.5,curve:"linear",group:"fm0"},{name:"fm0_mod_freq",label:"FM0 Mod Freq",min:0,max:1,default:.5,curve:"linear",group:"fm0"},{name:"fm0_mod_index",label:"FM0 Mod Index",min:0,max:1,default:0,curve:"linear",group:"fm0"},{name:"fm0_phasor_mul",label:"FM0 Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"fm0"},{name:"fm0_phase_off",label:"FM0 Phase Off",min:0,max:1,default:0,curve:"linear",group:"fm0"},{name:"fm1_carrier",label:"FM1 Carrier",min:0,max:1,default:.5,curve:"linear",group:"fm1"},{name:"fm1_mod_freq",label:"FM1 Mod Freq",min:0,max:1,default:.5,curve:"linear",group:"fm1"},{name:"fm1_mod_index",label:"FM1 Mod Index",min:0,max:1,default:0,curve:"linear",group:"fm1"},{name:"fm1_phasor_mul",label:"FM1 Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"fm1"},{name:"fm1_phase_off",label:"FM1 Phase Off",min:0,max:1,default:0,curve:"linear",group:"fm1"},{name:"fm2_carrier",label:"FM2 Carrier",min:0,max:1,default:.5,curve:"linear",group:"fm2"},{name:"fm2_mod_freq",label:"FM2 Mod Freq",min:0,max:1,default:.5,curve:"linear",group:"fm2"},{name:"fm2_mod_index",label:"FM2 Mod Index",min:0,max:1,default:0,curve:"linear",group:"fm2"},{name:"fm2_phasor_mul",label:"FM2 Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"fm2"},{name:"fm2_phase_off",label:"FM2 Phase Off",min:0,max:1,default:0,curve:"linear",group:"fm2"},{name:"fm3_carrier",label:"FM3 Carrier",min:0,max:1,default:.5,curve:"linear",group:"fm3"},{name:"fm3_mod_freq",label:"FM3 Mod Freq",min:0,max:1,default:.5,curve:"linear",group:"fm3"},{name:"fm3_mod_index",label:"FM3 Mod Index",min:0,max:1,default:0,curve:"linear",group:"fm3"},{name:"fm3_phasor_mul",label:"FM3 Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"fm3"},{name:"fm3_phase_off",label:"FM3 Phase Off",min:0,max:1,default:0,curve:"linear",group:"fm3"},{name:"fm4_carrier",label:"FM4 Carrier",min:0,max:1,default:.5,curve:"linear",group:"fm4"},{name:"fm4_mod_freq",label:"FM4 Mod Freq",min:0,max:1,default:.5,curve:"linear",group:"fm4"},{name:"fm4_mod_index",label:"FM4 Mod Index",min:0,max:1,default:0,curve:"linear",group:"fm4"},{name:"fm4_phasor_mul",label:"FM4 Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"fm4"},{name:"fm4_phase_off",label:"FM4 Phase Off",min:0,max:1,default:0,curve:"linear",group:"fm4"},{name:"fm5_carrier",label:"FM5 Carrier",min:0,max:1,default:.5,curve:"linear",group:"fm5"},{name:"fm5_mod_freq",label:"FM5 Mod Freq",min:0,max:1,default:.5,curve:"linear",group:"fm5"},{name:"fm5_mod_index",label:"FM5 Mod Index",min:0,max:1,default:0,curve:"linear",group:"fm5"},{name:"fm5_phasor_mul",label:"FM5 Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"fm5"},{name:"fm5_phase_off",label:"FM5 Phase Off",min:0,max:1,default:0,curve:"linear",group:"fm5"},{name:"fm6_carrier",label:"FM6 Carrier",min:0,max:1,default:.5,curve:"linear",group:"fm6"},{name:"fm6_mod_freq",label:"FM6 Mod Freq",min:0,max:1,default:.5,curve:"linear",group:"fm6"},{name:"fm6_mod_index",label:"FM6 Mod Index",min:0,max:1,default:0,curve:"linear",group:"fm6"},{name:"fm6_phasor_mul",label:"FM6 Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"fm6"},{name:"fm6_phase_off",label:"FM6 Phase Off",min:0,max:1,default:0,curve:"linear",group:"fm6"},{name:"fm7_carrier",label:"FM7 Carrier",min:0,max:1,default:.5,curve:"linear",group:"fm7"},{name:"fm7_mod_freq",label:"FM7 Mod Freq",min:0,max:1,default:.5,curve:"linear",group:"fm7"},{name:"fm7_mod_index",label:"FM7 Mod Index",min:0,max:1,default:0,curve:"linear",group:"fm7"},{name:"fm7_phasor_mul",label:"FM7 Phasor Mul",min:0,max:1,default:0,curve:"linear",group:"fm7"},{name:"fm7_phase_off",label:"FM7 Phase Off",min:0,max:1,default:0,curve:"linear",group:"fm7"}],voice_spaces:[],ui:{primary_input:"xy_pad",show_voice_space_selector:!1,show_synth_visualizer:!1}};var pc=E("<span style=font-size:var(--fs-xs);color:var(--fg-mute)>Drag to morph through grain space.");const _c=()=>{const e=bc,t=pt(e);return p(bt,{schema:e,runtime:t,drawerTitle:"Elysiamorf settings",primaryInput:()=>[p(Pn,{size:280,ariaLabel:"Elysiamorf pad",onMove:(n,a)=>t.setInput(n,a),get position(){return t.pipedInput}}),pc()],outputArea:()=>[p(_t,{get values(){return t.paramOutputs},width:360,height:120,color:"#ffb060"}),p(dt,{get history(){return t.training.lossHistory},width:360,height:70})]})},yc={mode_id:"sound_analysis_midi",engine_id:"thru",ml:{input_channels:["audio_pitch","audio_aperiodicity","audio_energy","audio_attack","audio_brightness","audio_energy_crude","joy_x","joy_y","joy_z","joy_w"],input_size:10,hidden_layers:[10,10,14],output_size:8,default_spread:.6,default_learning_rate:1,default_max_iterations:1e3},params:[{name:"midi_cc0",label:"MIDI CC 0",min:0,max:1,default:.5,curve:"linear",group:"midi"},{name:"midi_cc1",label:"MIDI CC 1",min:0,max:1,default:.5,curve:"linear",group:"midi"},{name:"midi_cc2",label:"MIDI CC 2",min:0,max:1,default:.5,curve:"linear",group:"midi"},{name:"midi_cc3",label:"MIDI CC 3",min:0,max:1,default:.5,curve:"linear",group:"midi"},{name:"midi_cc4",label:"MIDI CC 4",min:0,max:1,default:.5,curve:"linear",group:"midi"},{name:"midi_cc5",label:"MIDI CC 5",min:0,max:1,default:.5,curve:"linear",group:"midi"},{name:"midi_cc6",label:"MIDI CC 6",min:0,max:1,default:.5,curve:"linear",group:"midi"},{name:"midi_cc7",label:"MIDI CC 7",min:0,max:1,default:.5,curve:"linear",group:"midi"}],voice_spaces:[],ui:{primary_input:"audio_in",show_voice_space_selector:!1,show_synth_visualizer:!1}};var xc=E("<div style=display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-4);background:var(--bg-2);border-radius:var(--r-2);min-width:260px;min-height:200px;justify-content:center;color:var(--fg-mute);text-align:center><strong></strong><span style=font-size:var(--fs-xs)>");const wc=()=>{const e=yc,t=pt(e);return p(bt,{schema:e,runtime:t,drawerTitle:"Sound analysis → MIDI settings",primaryInput:()=>p(re,{get when(){return e.ui.primary_input==="audio_in"},get fallback(){return p(on,{size:260,onMove:(n,a)=>t.setInput(n,a),get position(){return t.pipedInput},ariaLabel:"Sound analysis joystick"})},get children(){var n=xc(),a=n.firstChild,r=a.nextSibling;return b(a,()=>t.mic.started()?"🎤 Mic active":"Mic input"),b(r,()=>t.mic.started()?"Audio features → channels 2..5. Joystick below drives channels 0..1.":'Tap "Mic" in the header to feed mic features into the model.'),b(n,p(on,{size:200,onMove:(i,o)=>t.setInput(i,o),get position(){return t.pipedInput},ariaLabel:"Manual joystick fallback"}),null),A(i=>{var o=`1px ${t.mic.started()?"solid var(--accent-2)":"dashed var(--line-strong)"}`,s=t.mic.started()?"var(--accent-2)":"var(--fg-mute)";return o!==i.e&&ke(n,"border",i.e=o),s!==i.t&&ke(a,"color",i.t=s),i},{e:void 0,t:void 0}),n}}),outputArea:()=>[p(_t,{get values(){return t.paramOutputs},width:360,height:120,color:"var(--info)"}),p(dt,{get history(){return t.training.lossHistory},width:360,height:70})]})};var Sc=E(`<section style="display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);padding:var(--sp-6);margin:var(--sp-5) auto;max-width:720px;background:var(--bg-1);border:1px dashed var(--line-strong);border-radius:var(--r-3);color:var(--fg);text-align:center"><h2 style=color:var(--accent-2);margin:0>C15 mode — TODO</h2><p style=color:var(--fg-mute);margin:0>The C15 WASM synthesizer hasn't been ported into the SolidJS rewrite yet. The legacy bridge lives in <code>playground/c15/</code> and<code>playground/js/synth/c15-bridge.js</code>; stream 11+ will wrap it as an AudioWorklet engine alongside the firmware-derived ones.</p><p style=color:var(--fg-dim);font-size:var(--fs-sm);margin:0>Until then, pick one of the firmware modes (PAFSynth, Channel Strip, Verb FX, etc.) from the mode switcher above.`);const Mc=()=>(()=>{var e=Sc(),t=e.firstChild,n=t.nextSibling;return n.nextSibling,e})(),Tt=[{id:"paf_synth",label:"PAF Synth",description:"Phase-aligned formant synth (XY pad).",Component:Wu},{id:"channel_strip",label:"Channel Strip",description:"EQ + dynamics processing channel.",Component:rc},{id:"xiasri",label:"XIASRI",description:"Audio-reactive verb / pitch engine.",Component:lc},{id:"verb_fx",label:"Verb FX",description:"Reverb / multi-effects unit.",Component:cc},{id:"memlcelium",label:"MEML Celium",description:"Voice + dual-MLP CV/gate via uSEQ.",Component:fc},{id:"breakor",label:"Breakor",description:"Drum / breakbeat synthesis.",Component:gc},{id:"elysiamorf",label:"Elysiamorf",description:"Granular morphing synth.",Component:_c},{id:"sound_analysis_midi",label:"Sound Analysis → MIDI",description:"Audio features → MIDI CC routing.",Component:wc},{id:"c15",label:"C15 (browser-only)",description:"C15 WASM synth. Not yet ported.",Component:Mc,placeholder:!0}];function $r(e){return e?Tt.find(t=>t.id===e)??Tt[0]:Tt[0]}const Cc="_bar_m3f4r_1",$c="_label_m3f4r_10",Ac="_select_m3f4r_17",Pc="_description_m3f4r_36",kc="_placeholder_m3f4r_41",It={bar:Cc,label:$c,select:Ac,description:Pc,placeholder:kc};var Lc=E("<span aria-hidden=true>⚠"),Fc=E('<div role=region aria-label="Mode selector"><span>Mode</span><select aria-label="Select active mode"></select><span>'),Ec=E("<option>");const Ic=()=>{const e=()=>xe.state.activeModeId??Tt[0].id,t=$e(()=>$r(e()));return(()=>{var n=Fc(),a=n.firstChild,r=a.nextSibling,i=r.nextSibling;return r.addEventListener("change",o=>xe.switchMode(o.currentTarget.value)),b(r,p(vt,{each:Tt,children:o=>(()=>{var s=Ec();return b(s,()=>o.label,null),b(s,()=>o.placeholder?" (TODO)":"",null),A(()=>s.value=o.id),s})()})),b(i,()=>t().description),b(n,p(re,{get when(){return t().placeholder},get children(){var o=Lc();return A(()=>h(o,It.placeholder)),o}}),null),A(o=>{var s=It.bar,l=It.label,d=It.select,c=It.description,u={[It.placeholder]:!!t().placeholder};return s!==o.e&&h(n,o.e=s),l!==o.t&&h(a,o.t=l),d!==o.a&&h(r,o.a=d),c!==o.o&&h(i,o.o=c),o.i=Ke(i,u,o.i),o},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),A(()=>r.value=e()),n})()},Rc="_app_vixlr_1",Oc="_header_vixlr_7",Tc="_dim_vixlr_16",zc="_nav_vixlr_21",Dc="_active_vixlr_32",qc="_main_vixlr_37",Nc="_home_vixlr_43",Bc="_title_vixlr_51",Vc="_tagline_vixlr_57",jc="_linkList_vixlr_62",Hc="_note_vixlr_71",Wc="_notFound_vixlr_77",Ve={app:Rc,header:Oc,dim:Tc,nav:zc,active:Dc,main:qc,home:Nc,title:Bc,tagline:Vc,linkList:jc,note:Hc,notFound:Wc};var Uc=E("<div><h1>404</h1><p>No route at <code></code>.</p><p><a href=/>back to home"),Gc=E("<div><header><strong>MEMLNaut</strong><span>playground</span><nav><button type=button>home</button><button type=button>/modes</button><button type=button>/dev/primitives</button></nav></header><main>"),Xc=E("<div>"),Yc=E('<div><h1>MEMLNaut Playground</h1><p>Interactive ML control of audio. Stream 9: nine modes, one shell.</p><ul><li><a href=/modes>Modes</a> — pick a mode and start playing</li><li><a href=/dev/primitives>Primitives showcase</a> — UI building blocks</li></ul><p>ML inference runs on the main thread via WASM. Audio synthesis runs in an AudioWorklet — start it from inside any mode using the "Start audio" button. Audio cannot autoplay (browser policy).');function qn(e){return e===""||e==="/"||e==="/index.html"?"home":e==="/dev/primitives"||e==="/dev/primitives/"?"primitives":e==="/modes"||e==="/modes/"||e.startsWith("/modes/")?"modes":"unknown"}const Zc=Br(()=>Na(()=>import("./PrimitivesShowcase-D2lYbVrQ.js"),__vite__mapDeps([0,1]))),Kc=()=>{const[e,t]=ee(qn(window.location.pathname)),n=()=>t(qn(window.location.pathname));window.addEventListener("popstate",n),et(()=>window.removeEventListener("popstate",n));const a=r=>{window.location.pathname!==r&&(window.history.pushState({},"",r),t(qn(r)))};return(()=>{var r=Gc(),i=r.firstChild,o=i.firstChild,s=o.nextSibling,l=s.nextSibling,d=l.firstChild,c=d.nextSibling,u=c.nextSibling,m=i.nextSibling;return d.$$click=()=>a("/"),c.$$click=()=>a("/modes"),u.$$click=()=>a("/dev/primitives"),b(m,p(re,{get when(){return e()==="home"},get children(){return p(Qc,{navigate:a})}}),null),b(m,p(re,{get when(){return e()==="modes"},get children(){return p(Jc,{})}}),null),b(m,p(re,{get when(){return e()==="primitives"},get children(){return p(Zc,{})}}),null),b(m,p(re,{get when(){return e()==="unknown"},get children(){var v=Uc(),g=v.firstChild,f=g.nextSibling,w=f.firstChild,x=w.nextSibling,_=f.nextSibling,M=_.firstChild;return b(x,()=>window.location.pathname),M.$$click=O=>{O.preventDefault(),a("/")},A(()=>h(v,Ve.notFound)),v}}),null),A(v=>{var g=Ve.app,f=Ve.header,w=Ve.dim,x=Ve.nav,_=e()==="home"?Ve.active:"",M=e()==="modes"?Ve.active:"",O=e()==="primitives"?Ve.active:"",y=Ve.main;return g!==v.e&&h(r,v.e=g),f!==v.t&&h(i,v.t=f),w!==v.a&&h(s,v.a=w),x!==v.o&&h(l,v.o=x),_!==v.i&&h(d,v.i=_),M!==v.n&&h(c,v.n=M),O!==v.s&&h(u,v.s=O),y!==v.h&&h(m,v.h=y),v},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),r})()},Jc=()=>{const e=()=>xe.state.activeModeId??Tt[0].id,t=$e(()=>$r(e()).Component);return(()=>{var n=Xc();return b(n,p(Ic,{}),null),b(n,p(di,{get component(){return t()}}),null),n})()},Qc=e=>(()=>{var t=Yc(),n=t.firstChild,a=n.nextSibling,r=a.nextSibling,i=r.firstChild,o=i.firstChild,s=i.nextSibling,l=s.firstChild,d=r.nextSibling;return o.$$click=c=>{c.preventDefault(),e.navigate("/modes")},l.$$click=c=>{c.preventDefault(),e.navigate("/dev/primitives")},A(c=>{var u=Ve.home,m=Ve.title,v=Ve.tagline,g=Ve.linkList,f=Ve.note;return u!==c.e&&h(t,c.e=u),m!==c.t&&h(n,c.t=m),v!==c.a&&h(a,c.a=v),g!==c.o&&h(r,c.o=g),f!==c.i&&h(d,c.i=f),c},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),t})();Je(["click"]);const La=new Float32Array(0);let Nn=null;function fn(){return P.iml?Promise.resolve():(Nn||(Nn=P.initialize().then(()=>{})),Nn)}const Bn=new Cr({resolution:16}),ed={get __ready(){return!!P.iml&&P.state.ready},__init(){return fn()},getOutputs(){return P.outputs()},getParamOutputs(){const e=P.outputs();return e.length===0?La:e},getLoss(){return P.state.lastLoss},getLossHistory(){return P.state.lossHistory},getWeights(){return P.getWeights()},getExampleCount(){return P.state.exampleCount},setInputs(e,t){if(!P.iml){fn();return}pe(()=>P.iml.inferXY(e,t))},thumbsUp(){P.iml&&pe(()=>{Ze("before thumbs-up (probe)"),P.iml.train(I.state.learningRate),I.decayNoise(.5)})},thumbsDown(){P.iml&&pe(()=>{Ze("before thumbs-down (probe)");const e=I.state.noiseCap,t=I.state.spread;P.iml.moveWeights(e,t),I.growNoise(.5)})},train(){return P.iml?pe(()=>(Ze("before train (probe)"),P.iml.train(I.state.learningRate))):(fn(),0)},async trainAsync(){return await fn(),P.iml?(Ze("before trainAsync (probe)"),P.iml.trainAsync(I.state.learningRate)):0},randomise(){P.iml&&pe(()=>{Ze("before randomize (probe)"),P.iml.randomiseWeights(I.state.spread)})},clearExamples(){P.clearExamples()},saveState(){P.saveNow()},evalLoss(){return P.iml?P.iml.evalLoss():null},inferBatch(e){return P.iml?P.iml.inferBatch(e):new Float32Array(e.length*P.state.outputSize)},getLayerStats(){return P.iml?P.iml.getLayerStatsFlat():La},pushSnapshot(e){Ze(e)},popSnapshot(){return yr()},listSnapshots(){return Z.listSnapshots().map(e=>({id:e.id,tag:e.tag,timestamp:e.timestamp,noiseLevel:e.noiseLevel}))},clearSnapshots(){Z.clearSnapshots()},captureA(){xr()},toggleAB(){return wr()},acceptB(){Sr()},revertToA(){Mr()},addRegionPin(e){return Z.addRegionPin(e).id},removeRegionPin(e){Z.removeRegionPin(e)},toggleParamPin(e,t,n){return Z.toggleParamPin(`${e}:${t}`,n)},isParamPinned(e,t){return Z.isParamPinned(`${e}:${t}`)},setAutoExplore(e){I.setAutoExplore(e)},setAutoExploreInterval(e){I.setAutoExploreInterval(e)},setAutoExploreIntensity(e){I.setAutoExploreIntensity(e)},setPressure(e,t=0){I.setPressure(e,t)},refreshHeatmap(e=!1){if(!P.iml)return!1;const t=H.config,n=t.zoom,a=t.anchorMode==="center"?.5:t.anchorX,r=t.anchorMode==="center"?.5:t.anchorY;return Bn.update({cx:a,cy:r,zoom:n},e)},getHeatmapCells(){return Bn.getCells()},setHeatmapColorMode(e){Bn.setColorMode(e)},getWeightHistogram(){return ur(P.weights())},getWeightStatus(){return cr(P.weights())},getGradientFlow(e,t){if(!P.iml)return{norms:[],status:[]};const n=P.iml.architecture,a=fr({inputSize:n.inputSize,hidden:n.hidden,outputSize:n.outputSize}),r=dr(e,t,a);return{norms:r,status:mr(r)}},setOverride(e,t,n){const a=xe.getOverride(e,t),r={min:a?.min??0,max:a?.max??1,curve:a?.curve??"linear",curveParam:a?.curveParam,muted:a?.muted??!1,pinned:a?.pinned??!1,frozen:a?.frozen??!1,fixedValue:a?.fixedValue??.5,...n};xe.setOverride(e,t,r)},clearOverride(e,t){xe.clearOverride(e,t)},clearAllOverrides(e){xe.clearAllOverrides(e)},getOverride(e,t){return xe.getOverride(e,t)},setAxis(e,t){Me.setAxis(e,t)},applyControlPreset(e){return Me.applyPreset(e)},setZoom(e){H.setZoom(e)},setSpread(e){I.setSpread(e)},setOutputFreeze(e){Ie.setFreezeOutput(e)},captureSessionPreset(e=!1){return Jn(e)},restoreSessionPreset(e){return Qt(()=>Qn(e))},saveSessionPreset(e,t=!1){gr(e,t)},loadSessionPreset(e){return Qt(()=>br(e))},buildShareUrl(){return pr()},applyUrlParams(e){return Qt(()=>_r(e))},emit(e,t){Fe.emit(e,t)},on(e,t){return Fe.onPrefix(e,t)}};function td(){typeof window>"u"||(window.__nisps=ed)}const Ar=document.getElementById("root");if(!Ar)throw new Error("Root element #root not found");td();try{_r()}catch(e){console.warn("[main] applyUrlParams failed:",e)}Qr(()=>p(Kc,{}),Ar);export{Yi as C,ua as D,vt as F,yl as G,Pl as H,_o as J,dt as L,_t as O,tn as P,Le as S,zi as T,on as V,vl as W,Pn as X,p as a,A as b,ee as c,h as d,re as e,Je as f,et as g,$e as h,b as i,Fl as j,ul as k,Fe as l,P as m,Yn as o,D as p,X as s,E as t};
//# sourceMappingURL=index-C1-a2ZPT.js.map