var j=[],X=!1,Z=0,U=new Set;function S(){if(X)return;return j[j.length-1]}function $(q){j.push(q)}function K(){return j.pop()}function J(q){let F=S();if(F)q.add(F.execute),F.dependencies.add(q)}function W(q){let F=[...q];for(let I of F)if(Z>0)U.add(I);else I()}function Y(q){for(let F of q.dependencies)F.delete(q.execute);q.dependencies.clear()}function A(q){let F=X;X=!0;try{return q()}finally{X=F}}function B(){Z++}function R(){if(Z--,Z===0&&U.size>0){let q=[...U];U.clear();for(let F of q)F()}}function y(){return Z>0}function T(q){let F={value:q,subscribers:new Set};function I(G){if(arguments.length===0)return J(F.subscribers),F.value;else{let H=F.value;if(F.value=G,!Object.is(H,G))W(F.subscribers);return F.value}}return Object.defineProperty(I,"value",{get(){return J(F.subscribers),F.value},set(G){let H=F.value;if(F.value=G,!Object.is(H,G))W(F.subscribers)},enumerable:!0,configurable:!1}),I.peek=function(){return F.value},I.subscribe=function(G){let H=()=>G(F.value);return F.subscribers.add(H),()=>{F.subscribers.delete(H)}},I}var z=new WeakMap,V=new WeakMap;function N(q,F){let I=z.get(q);if(!I)I=new Map,z.set(q,I);let G=I.get(F);if(!G)G=new Set,I.set(F,G);return G}function m(q){if(q===null||typeof q!=="object")return!1;if(q instanceof Date||q instanceof RegExp||q instanceof Map||q instanceof Set||q instanceof WeakMap||q instanceof WeakSet||q instanceof Promise||ArrayBuffer.isView(q))return!1;return!0}function x(q){let F=V.get(q);if(F)return F;let I=new Proxy(q,{get(G,H,L){let O=N(G,H);J(O);let Q=Reflect.get(G,H,L);if(m(Q))return x(Q);return Q},set(G,H,L,O){let Q=Reflect.get(G,H,O),D=L,d=Reflect.set(G,H,D,O);if(!Object.is(Q,D)){let k=N(G,H);W(k)}return d},deleteProperty(G,H){let L=Reflect.has(G,H),O=Reflect.deleteProperty(G,H);if(L&&O){let Q=N(G,H);W(Q)}return O},has(G,H){let L=N(G,H);return J(L),Reflect.has(G,H)},ownKeys(G){let H=N(G,Symbol.for("zen:keys"));return J(H),Reflect.ownKeys(G)}});return V.set(q,I),I}function M(q){if(!m(q))throw Error("zenState requires a plain object or array");return x(q)}function P(q){let F={fn:q,cleanup:null,context:{execute:()=>v(F),dependencies:new Set},disposed:!1};return v(F),()=>f(F)}function v(q){if(q.disposed)return;if(q.cleanup)q.cleanup(),q.cleanup=null;Y(q.context),$(q.context);try{let F=q.fn();if(typeof F==="function")q.cleanup=F}finally{K()}}function f(q){if(q.disposed)return;if(q.disposed=!0,q.cleanup)q.cleanup(),q.cleanup=null;Y(q.context)}function E(q){let F={fn:q,value:void 0,dirty:!0,context:{execute:()=>g(F),dependencies:new Set},subscribers:new Set,initialized:!1};function I(){if(J(F.subscribers),F.dirty)h(F);return F.value}return I.peek=function(){if(F.dirty&&!F.initialized)h(F);return F.value},I}function h(q){Y(q.context),$(q.context);try{q.value=q.fn(),q.dirty=!1,q.initialized=!0}finally{K()}}function g(q){if(!q.dirty){q.dirty=!0;let F=[...q.subscribers];for(let I of F)I()}}function _(q){return{current:q}}function C(q){B();try{return q()}finally{R()}}function w(q){return A(q)}var Qq=T,Wq=M,Yq=P,Zq=E,$q=_,Kq=C,Nq=w,Xq=T,Uq=M,jq=P,Aq=E,Bq=_,Rq=C,Tq=w;export{Nq as zenUntrack,Wq as zenState,Qq as zenSignal,$q as zenRef,Zq as zenMemo,Yq as zenEffect,Kq as zenBatch,Tq as untrack,J as trackDependency,Uq as state,B as startBatch,Xq as signal,A as runUntracked,Bq as ref,$ as pushContext,K as popContext,W as notifySubscribers,Aq as memo,y as isBatching,S as getCurrentContext,R as endBatch,jq as effect,Y as cleanupContext,Rq as batch};
