/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/vanjs-core@1.6.0/src/van.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
let changedStates,derivedStates,curDeps,curNewDerives,statesToGc,_undefined,protoOf=Object.getPrototypeOf,alwaysConnectedDom={isConnected:1},gcCycleInMs=1e3,propSetterCache={},objProto=protoOf(alwaysConnectedDom),funcProto=protoOf(protoOf),addAndScheduleOnFirst=(e,t,r,d)=>(e??(d?setTimeout(r,d):queueMicrotask(r),new Set)).add(t),runAndCaptureDeps=(e,t,r)=>{let d=curDeps;curDeps=t;try{return e(r)}catch(e){return console.error(e),r}finally{curDeps=d}},keepConnected=e=>e.filter((e=>e._dom?.isConnected)),addStatesToGc=e=>statesToGc=addAndScheduleOnFirst(statesToGc,e,(()=>{for(let e of statesToGc)e._bindings=keepConnected(e._bindings),e._listeners=keepConnected(e._listeners);statesToGc=_undefined}),gcCycleInMs),stateProto={get val(){return curDeps?._getters?.add(this),this.rawVal},get oldVal(){return curDeps?._getters?.add(this),this._oldVal},set val(e){curDeps?._setters?.add(this),e!==this.rawVal&&(this.rawVal=e,this._bindings.length+this._listeners.length?(derivedStates?.add(this),changedStates=addAndScheduleOnFirst(changedStates,this,updateDoms)):this._oldVal=e)}},state=e=>({__proto__:stateProto,rawVal:e,_oldVal:e,_bindings:[],_listeners:[]}),bind=(e,t)=>{let r={_getters:new Set,_setters:new Set},d={f:e},s=curNewDerives;curNewDerives=[];let n=runAndCaptureDeps(e,r,t);n=(n??document).nodeType?n:new Text(n);for(let e of r._getters)r._setters.has(e)||(addStatesToGc(e),e._bindings.push(d));for(let e of curNewDerives)e._dom=n;return curNewDerives=s,d._dom=n},derive=(e,t=state(),r)=>{let d={_getters:new Set,_setters:new Set},s={f:e,s:t};s._dom=r??curNewDerives?.push(s)??alwaysConnectedDom,t.val=runAndCaptureDeps(e,d,t.rawVal);for(let e of d._getters)d._setters.has(e)||(addStatesToGc(e),e._listeners.push(s));return t},add=(e,...t)=>{for(let r of t.flat(1/0)){let t=protoOf(r??0),d=t===stateProto?bind((()=>r.val)):t===funcProto?bind(r):r;d!=_undefined&&e.append(d)}return e},tag=(e,t,...r)=>{let[{is:d,...s},...n]=protoOf(r[0]??0)===objProto?r:[{},...r],o=e?document.createElementNS(e,t,{is:d}):document.createElement(t,{is:d});for(let[e,r]of Object.entries(s)){let d=t=>t?Object.getOwnPropertyDescriptor(t,e)??d(protoOf(t)):_undefined,s=t+","+e,n=propSetterCache[s]??=d(protoOf(o))?.set??0,a=e.startsWith("on")?(t,r)=>{let d=e.slice(2);o.removeEventListener(d,r),o.addEventListener(d,t)}:n?n.bind(o):o.setAttribute.bind(o,e),i=protoOf(r??0);e.startsWith("on")||i===funcProto&&(r=derive(r),i=stateProto),i===stateProto?bind((()=>(a(r.val,r._oldVal),o))):a(r)}return add(o,n)},handler=e=>({get:(t,r)=>tag.bind(_undefined,e,r)}),update=(e,t)=>t?t!==e&&e.replaceWith(t):e.remove(),updateDoms=()=>{let e=0,t=[...changedStates].filter((e=>e.rawVal!==e._oldVal));do{derivedStates=new Set;for(let e of new Set(t.flatMap((e=>e._listeners=keepConnected(e._listeners)))))derive(e.f,e.s,e._dom),e._dom=_undefined}while(++e<100&&(t=[...derivedStates]).length);let r=[...changedStates].filter((e=>e.rawVal!==e._oldVal));changedStates=_undefined;for(let e of new Set(r.flatMap((e=>e._bindings=keepConnected(e._bindings)))))update(e._dom,bind(e.f,e._dom)),e._dom=_undefined;for(let e of r)e._oldVal=e.rawVal};export default{tags:new Proxy((e=>new Proxy(tag,handler(e))),handler()),hydrate:(e,t)=>update(e,bind(t,e)),add:add,state:state,derive:derive};
//# sourceMappingURL=/sm/b5d437583f14e98564d4482fd42837dbbc2c0994f4048d71ccde58ae972317a6.map