@but212/atom-effect-jquery 0.18.0 → 0.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("jquery"),tt={ONE_SECOND_MS:1e3},_e={IDLE:"idle",PENDING:"pending",RESOLVED:"resolved",REJECTED:"rejected"},Te={DISPOSED:1},P={...Te,EXECUTING:8},d={...Te,DIRTY:8,IDLE:16,PENDING:32,RESOLVED:64,REJECTED:128,RECOMPUTING:256,HAS_ERROR:512},H={...Te,SYNC:8,NOTIFICATION_SCHEDULED:16},q={MAX_EXECUTIONS_PER_SECOND:1e3,MAX_EXECUTIONS_PER_EFFECT:100,MAX_EXECUTIONS_PER_FLUSH:1e4,MAX_FLUSH_ITERATIONS:1e3,MIN_FLUSH_ITERATIONS:10,BATCH_QUEUE_SHRINK_THRESHOLD:1e3},we={MAX_DEPENDENCIES:1e3,WARN_INFINITE_LOOP:!0},W=1073741823,T=typeof process<"u"&&process.env&&process.env.NODE_ENV!=="production"||typeof __DEV__<"u"&&!!__DEV__,nt=Object.freeze([]);class te extends Error{constructor(e,t=null,s=!0){super(e),this.cause=t,this.recoverable=s,this.timestamp=new Date,this.name="AtomError"}}class z extends te{constructor(e,t=null){super(e,t,!0),this.name="ComputedError"}}class Q extends te{constructor(e,t=null){super(e,t,!1),this.name="EffectError"}}class ue extends te{constructor(e,t=null){super(e,t,!1),this.name="SchedulerError"}}const Re=Symbol("AtomEffect.DebugName"),st=Symbol("AtomEffect.Id"),Le=Symbol("AtomEffect.Type"),me=Symbol("AtomEffect.NoDefaultValue"),it=n=>"dependencies"in n&&Array.isArray(n.dependencies);function Ve(n,e,t){if(n===e)throw new z("Circular dependency detected: The computation refers to itself explicitly or implicitly.");if(!t.has(n.id)&&(t.add(n.id),it(n))){const s=n.dependencies;for(let i=0;i<s.length;i++){const o=s[i];o&&Ve(o,e,t)}}}const Y={enabled:T,maxDependencies:we.MAX_DEPENDENCIES,warnInfiniteLoop:we.WARN_INFINITE_LOOP,warn(n,e){T&&this.enabled&&n&&console.warn(`[Atom Effect] ${e}`)},checkCircular(n,e){if(n===e)throw new z("Direct circular dependency detected");T&&this.enabled&&Ve(n,e,new Set)},attachDebugInfo(n,e,t){if(!T||!this.enabled)return;const s=n;s[Re]=`${e}_${t}`,s[st]=t,s[Le]=e},getDebugName:n=>n?.[Re],getDebugType:n=>n?.[Le]};let ot=1;const rt=()=>ot++;function He(n,e,t){if(typeof e=="function"){const i=e;for(let o=0,r=t.length;o<r;o++){const c=t[o];if(c&&c.fn===i)return}t.push(new Ce(i,void 0));return}if("addDependency"in e){e.addDependency(n);return}const s=e;for(let i=0,o=t.length;i<o;i++){const r=t[i];if(r&&r.sub===s)return}t.push(new Ce(void 0,s))}function ct(n,e,t){for(let s=0,i=e.length;s<i;s++){const o=e[s];o&&(o.node._tempUnsub=o.unsub)}for(let s=0,i=n.length;s<i;s++){const o=n[s];if(!o)continue;const r=o.node;r._tempUnsub!==void 0?(o.unsub=r._tempUnsub,r._tempUnsub=void 0):(Y.checkCircular(r,t),o.unsub=r.subscribe(t))}for(let s=0,i=e.length;s<i;s++){const o=e[s];if(o){const r=o.node;r._tempUnsub!==void 0&&(r._tempUnsub(),r._tempUnsub=void 0),o.unsub=void 0}}}class Ie{constructor(e,t,s=void 0){this.node=e,this.version=t,this.unsub=s}}class Ce{constructor(e,t){this.fn=e,this.sub=t}}const v={COMPUTED_MUST_BE_FUNCTION:"Computed target must be a function",COMPUTED_ASYNC_PENDING_NO_DEFAULT:"Async computation pending with no default value",COMPUTED_COMPUTATION_FAILED:"Computation execution failed",COMPUTED_ASYNC_COMPUTATION_FAILED:"Async computation execution failed",COMPUTED_CIRCULAR_DEPENDENCY:"Circular dependency detected",COMPUTED_DISPOSED:"Attempted to access disposed computed",ATOM_SUBSCRIBER_MUST_BE_FUNCTION:"Subscriber must be a function or Subscriber object",ATOM_INDIVIDUAL_SUBSCRIBER_FAILED:"Subscriber execution failed",EFFECT_MUST_BE_FUNCTION:"Effect target must be a function",EFFECT_EXECUTION_FAILED:"Effect execution failed",EFFECT_CLEANUP_FAILED:"Effect cleanup failed",EFFECT_DISPOSED:"Attempted to run disposed effect",CALLBACK_ERROR_IN_ERROR_HANDLER:"Exception encountered in onError handler"};function ee(n,e,t){if(n instanceof te)return n;const s=n instanceof Error,i=s?n.message:String(n),o=s?n:void 0;let r="Unexpected error";n instanceof TypeError?r="Type error":n instanceof ReferenceError&&(r="Reference error");const c=`${r} (${t}): ${i}`;return new e(c,o)}class ze{constructor(){this.flags=0,this.version=0,this._lastSeenEpoch=-1,this._modifiedAtEpoch=-1,this.id=rt()&W,this._tempUnsub=void 0}}class qe extends ze{subscribe(e){const t=typeof e=="function";if(!t&&(!e||typeof e.execute!="function"))throw ee(new TypeError("Invalid subscriber"),te,v.ATOM_SUBSCRIBER_MUST_BE_FUNCTION);const s=this._subscribers;for(let o=0,r=s.length;o<r;o++){const c=s[o];if(c&&(t?c.fn===e:c.sub===e))return T&&console.warn("Duplicate subscription ignored."),()=>{}}const i=new Ce(t?e:void 0,t?void 0:e);return s.push(i),()=>this._unsubscribe(i)}_unsubscribe(e){const t=this._subscribers,s=t.indexOf(e);if(s===-1)return;const i=t.pop();s<t.length&&i&&(t[s]=i)}subscriberCount(){return this._subscribers.length}_notifySubscribers(e,t){if(this._subscribers.length===0)return;const s=[...this._subscribers],i=s.length;for(let o=0;o<i;o++){const r=s[o];if(r)try{r.fn?r.fn(e,t):r.sub&&r.sub.execute()}catch(c){this._handleNotifyError(c)}}}_handleNotifyError(e){console.error(ee(e,te,v.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED))}}let ae=0;const Xe=()=>(ae=ae+1&W||1,ae),ut=()=>ae;let Se=0,ve=0,fe=!1;function xe(){return fe?(T&&console.warn("startFlush() called during flush - ignored"),!1):(fe=!0,Se=Se+1&W||1,ve=0,!0)}const Ue=()=>{fe=!1},lt=()=>fe?++ve:0,F={_queueBuffer:[[],[]],_bufferIndex:0,_size:0,_epoch:0,_isProcessing:!1,_isBatching:!1,_isFlushingSync:!1,_batchDepth:0,_batchQueue:[],_batchQueueSize:0,_maxFlushIterations:q.MAX_FLUSH_ITERATIONS,get phase(){return this._isProcessing||this._isFlushingSync?2:this._isBatching?1:0},get queueSize(){return this._size},get isBatching(){return this._isBatching},schedule(n){if(T&&typeof n!="function")throw new ue("Scheduler callback must be a function");if(n._nextEpoch!==this._epoch){if(n._nextEpoch=this._epoch,this._isBatching||this._isFlushingSync){this._batchQueue[this._batchQueueSize++]=n;return}this._queueBuffer[this._bufferIndex][this._size++]=n,this._isProcessing||this._flush()}},_flush(){this._isProcessing||this._size===0||(this._isProcessing=!0,queueMicrotask(this._runLoop))},_runLoop:()=>{try{if(F._size===0)return;const n=xe();F._drainQueue(),n&&Ue()}finally{F._isProcessing=!1,F._size>0&&!F._isBatching&&F._flush()}},_flushSync(){this._isFlushingSync=!0;const n=xe();try{this._mergeBatchQueue(),this._drainQueue()}finally{this._isFlushingSync=!1,n&&Ue()}},_mergeBatchQueue(){if(this._batchQueueSize===0)return;const n=++this._epoch,e=this._batchQueue,t=this._queueBuffer[this._bufferIndex];let s=this._size;for(let i=0;i<this._batchQueueSize;i++){const o=e[i];o._nextEpoch!==n&&(o._nextEpoch=n,t[s++]=o)}this._size=s,this._batchQueueSize=0,e.length>q.BATCH_QUEUE_SHRINK_THRESHOLD&&(e.length=0)},_drainQueue(){let n=0;for(;this._size>0;){if(++n>this._maxFlushIterations){this._handleFlushOverflow();return}this._processQueue(),this._mergeBatchQueue()}},_processQueue(){const n=this._bufferIndex,e=this._queueBuffer[n],t=this._size;this._bufferIndex=n^1,this._size=0,this._epoch++;for(let s=0;s<t;s++)try{e[s]()}catch(i){console.error(new ue("Error occurred during scheduler execution",i))}e.length=0},_handleFlushOverflow(){console.error(new ue(`Maximum flush iterations (${this._maxFlushIterations}) exceeded. Possible infinite loop.`)),this._size=0,this._queueBuffer[this._bufferIndex].length=0,this._batchQueueSize=0},startBatch(){this._batchDepth++,this._isBatching=!0},endBatch(){if(this._batchDepth===0){T&&console.warn("endBatch() called without matching startBatch(). Ignoring.");return}--this._batchDepth===0&&(this._flushSync(),this._isBatching=!1)},setMaxFlushIterations(n){if(n<q.MIN_FLUSH_ITERATIONS)throw new ue(`Max flush iterations must be at least ${q.MIN_FLUSH_ITERATIONS}`);this._maxFlushIterations=n}},$={current:null,run(n,e){const t=this.current;this.current=n;try{return e()}finally{this.current=t}}};function Ge(n){const e=$.current;if(e===null)return n();$.current=null;try{return n()}finally{$.current=e}}class at extends qe{constructor(e,t){super(),this._pendingOldValue=void 0,this._notifyTask=void 0,this._subscribers=[],this._value=e,t&&(this.flags|=H.SYNC),Y.attachDebugInfo(this,"atom",this.id)}get value(){const e=$.current;return e&&He(this,e,this._subscribers),this._value}set value(e){const t=this._value;if(Object.is(t,e))return;this._value=e,this.version=this.version+1&W;const s=this.flags;if(!(this._subscribers.length===0||s&H.NOTIFICATION_SCHEDULED)){if(this._pendingOldValue=t,this.flags=s|H.NOTIFICATION_SCHEDULED,s&H.SYNC&&!F.isBatching){this._flushNotifications();return}this._notifyTask||(this._notifyTask=()=>this._flushNotifications()),F.schedule(this._notifyTask)}}_flushNotifications(){const e=this.flags;if(!(e&H.NOTIFICATION_SCHEDULED)||e&H.DISPOSED)return;const t=this._pendingOldValue;this._pendingOldValue=void 0,this.flags&=-17,this._notifySubscribers(this._value,t)}peek(){return this._value}dispose(){this.flags&H.DISPOSED||(this._subscribers.length=0,this.flags|=H.DISPOSED,this._value=void 0,this._pendingOldValue=void 0,this._notifyTask=void 0)}}function ke(n,e={}){return new at(n,e.sync??!1)}class ht{constructor(e=50,t=256){this.limit=e,this.capacity=t,this.pool=[],this.stats=T?{acquired:0,released:0,rejected:{frozen:0,tooLarge:0,poolFull:0}}:null}acquire(){return T&&this.stats&&this.stats.acquired++,this.pool.pop()??[]}release(e,t){if(!(t&&e===t)){if(e.length>this.capacity){T&&this.stats&&this.stats.rejected.tooLarge++;return}if(this.pool.length>=this.limit){T&&this.stats&&this.stats.rejected.poolFull++;return}if(Object.isFrozen(e)){T&&this.stats&&this.stats.rejected.frozen++;return}e.length=0,this.pool.push(e),T&&this.stats&&this.stats.released++}}getStats(){if(!T||!this.stats)return null;const{acquired:e,released:t,rejected:s}=this.stats,i=e-t-(s.frozen+s.tooLarge+s.poolFull);return{acquired:e,released:t,rejected:{...s},leaked:i,poolSize:this.pool.length}}reset(){this.pool.length=0,T&&this.stats&&(this.stats={acquired:0,released:0,rejected:{frozen:0,tooLarge:0,poolFull:0}})}}const oe=n=>Object.freeze(n);oe([]);oe([]);oe([]);oe([]);const x=oe([]),X=new ht;function De(n){return n!==null&&typeof n=="object"&&"value"in n&&typeof n.subscribe=="function"}function Pe(n){return De(n)&&typeof n.invalidate=="function"}function Qe(n){return n!==null&&typeof n=="object"&&typeof n.then=="function"}const Ye=d.RESOLVED|d.PENDING|d.REJECTED,Ee=Array(Ye+1).fill(_e.IDLE);Ee[d.RESOLVED]=_e.RESOLVED;Ee[d.PENDING]=_e.PENDING;Ee[d.REJECTED]=_e.REJECTED;const Fe=3,Me=Number.MAX_SAFE_INTEGER-1;class We extends qe{constructor(e,t={}){if(typeof e!="function")throw new z(v.COMPUTED_MUST_BE_FUNCTION);if(super(),this._error=null,this._promiseId=0,this._subscribers=[],this._links=x,this._cachedErrors=null,this._errorCacheEpoch=-1,this._asyncStartAggregateVersion=0,this._asyncRetryCount=0,this._trackEpoch=-1,this._trackLinks=x,this._trackCount=0,this._value=void 0,this.flags=d.DIRTY|d.IDLE,this._equal=t.equal??Object.is,this._fn=e,this._defaultValue="defaultValue"in t?t.defaultValue:me,this._onError=t.onError??null,Y.attachDebugInfo(this,"computed",this.id),t.lazy===!1)try{this._recompute()}catch{}}_track(){const e=$.current;e&&He(this,e,this._subscribers)}get value(){this._track();const e=this.flags;if((e&(d.RESOLVED|d.DIRTY|d.IDLE))===d.RESOLVED)return this._value;if(e&d.DISPOSED)throw new z(v.COMPUTED_DISPOSED);if(e&d.RECOMPUTING){if(this._defaultValue!==me)return this._defaultValue;throw new z(v.COMPUTED_CIRCULAR_DEPENDENCY)}if(e&(d.DIRTY|d.IDLE)&&(this._recompute(),this.flags&d.RESOLVED))return this._value;const t=this._defaultValue,s=t!==me;if(this.flags&d.PENDING){if(s)return t;throw new z(v.COMPUTED_ASYNC_PENDING_NO_DEFAULT)}if(this.flags&d.REJECTED){if(this._error?.recoverable&&s)return t;throw this._error}return this._value}peek(){return this._value}get state(){return this._track(),Ee[this.flags&Ye]}get hasError(){if(this._track(),this.flags&(d.REJECTED|d.HAS_ERROR))return!0;const e=this._links;for(let t=0,s=e.length;t<s;t++){const i=e[t]?.node;if(i&&i.flags&d.HAS_ERROR)return!0}return!1}get isValid(){return!this.hasError}get errors(){if(this._track(),!this.hasError)return nt;const e=ut();if(this._errorCacheEpoch===e&&this._cachedErrors)return this._cachedErrors;const t=[];this._error&&t.push(this._error);const s=this._links;for(let o=0,r=s.length;o<r;o++){const c=s[o].node;if(c.flags&d.HAS_ERROR){const a=c;if(a.errors){const f=a.errors;for(let p=0;p<f.length;p++){const D=f[p];D&&t.indexOf(D)===-1&&t.push(D)}}}}const i=Object.freeze(t);return this._errorCacheEpoch=e,this._cachedErrors=i,i}get lastError(){return this._track(),this._error}get isPending(){return this._track(),(this.flags&d.PENDING)!==0}get isResolved(){return this._track(),(this.flags&d.RESOLVED)!==0}invalidate(){this._markDirty(),this._errorCacheEpoch=-1,this._cachedErrors=null}dispose(){if(this.flags&d.DISPOSED)return;const e=this._links;if(e!==x){for(let t=0,s=e.length;t<s;t++)e[t].unsub?.();X.release(e),this._links=x}this._subscribers.length=0,this.flags=d.DISPOSED|d.DIRTY|d.IDLE,this._error=null,this._value=void 0,this._promiseId=(this._promiseId+1)%Me,this._cachedErrors=null,this._errorCacheEpoch=-1}addDependency(e){if(e._lastSeenEpoch!==this._trackEpoch){if(e._lastSeenEpoch=this._trackEpoch,this._trackCount<this._trackLinks.length){const t=this._trackLinks[this._trackCount];t.node=e,t.version=e.version}else this._trackLinks.push(new Ie(e,e.version));this._trackCount++}}_commitDeps(e){this._trackLinks.length=this._trackCount,ct(this._trackLinks,e,this),this._links=this._trackLinks}_recompute(){if(this.flags&d.RECOMPUTING)return;this.flags|=d.RECOMPUTING;const e=this._links;this._trackEpoch=Xe(),this._trackLinks=X.acquire(),this._trackCount=0;let t=!1;try{const s=$.run(this,this._fn);this._commitDeps(e),t=!0,Qe(s)?this._handleAsyncComputation(s):this._finalizeResolution(s)}catch(s){if(!t)try{this._commitDeps(e),t=!0}catch{}this._handleError(s,v.COMPUTED_COMPUTATION_FAILED,!0)}finally{t&&e!==x?X.release(e):t||X.release(this._trackLinks),this._trackEpoch=-1,this._trackLinks=x,this._trackCount=0,this.flags&=-257}}_handleAsyncComputation(e){this.flags=(this.flags|d.PENDING)&-217,this._notifySubscribers(void 0,void 0),this._asyncStartAggregateVersion=this._captureVersionSnapshot(),this._asyncRetryCount=0,this._promiseId=(this._promiseId+1)%Me;const t=this._promiseId;e.then(s=>{if(t===this._promiseId){if(this._captureVersionSnapshot()!==this._asyncStartAggregateVersion)return this._asyncRetryCount++<Fe?this._markDirty():this._handleError(new z(`Async drift threshold exceeded after ${Fe} retries.`),v.COMPUTED_ASYNC_COMPUTATION_FAILED);this._finalizeResolution(s),this._notifySubscribers(s,void 0)}},s=>t===this._promiseId&&this._handleError(s,v.COMPUTED_ASYNC_COMPUTATION_FAILED))}_captureVersionSnapshot(){let e=0;const t=this._links;for(let s=0,i=t.length;s<i;s++)e=((e<<5)-e|0)+t[s].node.version&W;return e}_handleError(e,t,s=!1){const i=ee(e,z,t);if(!s&&!(this.flags&d.REJECTED)&&(this.version=this.version+1&W),this._error=i,this.flags=this.flags&-121|(d.REJECTED|d.HAS_ERROR),this._onError)try{this._onError(i)}catch(o){console.error(v.CALLBACK_ERROR_IN_ERROR_HANDLER,o)}if(s)throw i;this._notifySubscribers(void 0,void 0)}_finalizeResolution(e){(!(this.flags&d.RESOLVED)||!this._equal(this._value,e))&&(this.version=this.version+1&W),this._value=e,this._error=null,this.flags=(this.flags|d.RESOLVED)&-697,this._cachedErrors=null,this._errorCacheEpoch=-1}execute(){this._markDirty()}_markDirty(){this.flags&(d.RECOMPUTING|d.DIRTY)||(this.flags|=d.DIRTY,this._notifySubscribers(void 0,void 0))}}Object.freeze(We.prototype);function Ke(n,e={}){return new We(n,e)}class ft extends ze{constructor(e,t={}){super(),this._cleanup=null,this._links=x,this._nextLinks=null,this._currentEpoch=-1,this._lastFlushEpoch=-1,this._executionsInEpoch=0,this._executionCount=0,this._historyPtr=0,this._execId=0,this._fn=e,this._onError=t.onError??null,this._sync=t.sync??!1,this._maxExecutions=t.maxExecutionsPerSecond??q.MAX_EXECUTIONS_PER_SECOND,this._maxExecutionsPerFlush=t.maxExecutionsPerFlush??q.MAX_EXECUTIONS_PER_EFFECT,this._trackModifications=t.trackModifications??!1;const s=Number.isFinite(this._maxExecutions),i=s?Math.min(this._maxExecutions+1,q.MAX_EXECUTIONS_PER_SECOND+1):0;this._historyCapacity=i,this._history=T&&s&&i>0?new Array(i).fill(0):null,Y.attachDebugInfo(this,"effect",this.id)}run(){if(this.flags&P.DISPOSED)throw new Q(v.EFFECT_DISPOSED);this.execute(!0)}dispose(){this.flags&P.DISPOSED||(this.flags|=P.DISPOSED,this._execCleanup(),this._releaseLinks(this._links),this._links=x,this._executeTask=void 0)}addDependency(e){if(!(this.flags&P.EXECUTING)||e._lastSeenEpoch===this._currentEpoch)return;e._lastSeenEpoch=this._currentEpoch;const t=this._nextLinks;if(e._tempUnsub){t.push(new Ie(e,e.version,e._tempUnsub)),e._tempUnsub=void 0;return}try{const s=e.subscribe(()=>{if(this._trackModifications&&this.flags&P.EXECUTING&&(e._modifiedAtEpoch=this._currentEpoch),this._sync)return this.execute();this._executeTask||(this._executeTask=()=>this.execute()),F.schedule(this._executeTask)});t.push(new Ie(e,e.version,s))}catch(s){console.error(ee(s,Q,v.EFFECT_EXECUTION_FAILED))}}execute(e=!1){if(this.flags&(P.DISPOSED|P.EXECUTING)||!e&&this._links.length>0&&!this._isDirty())return;this._checkInfiniteLoops(),this.flags|=P.EXECUTING,this._execCleanup();const t=this._links;if(t!==x)for(let o=0,r=t.length;o<r;o++){const c=t[o];c&&(c.node._tempUnsub=c.unsub)}const s=X.acquire();this._nextLinks=s,this._currentEpoch=Xe();let i=!1;try{const o=$.run(this,this._fn);this._links=s,i=!0,this._checkLoopWarnings(),Qe(o)?this._handleAsyncResult(o):this._cleanup=typeof o=="function"?o:null}catch(o){i=!0,this._handleExecutionError(o),this._cleanup=null}finally{this._finalizeDependencies(i,t,s),this.flags&=-9}}_handleAsyncResult(e){const t=++this._execId;e.then(s=>{if(t!==this._execId||this.flags&P.DISPOSED){if(typeof s=="function")try{s()}catch(i){this._handleExecutionError(i,v.EFFECT_CLEANUP_FAILED)}return}typeof s=="function"&&(this._cleanup=s)},s=>t===this._execId&&this._handleExecutionError(s))}_finalizeDependencies(e,t,s){if(this._nextLinks=null,e){if(t!==x){for(let i=0,o=t.length;i<o;i++){const r=t[i],c=r?.node._tempUnsub;c&&(c(),r&&(r.node._tempUnsub=void 0))}X.release(t)}}else if(this._releaseLinks(s),X.release(s),t!==x)for(let i=0,o=t.length;i<o;i++)t[i]&&(t[i].node._tempUnsub=void 0)}_releaseLinks(e){if(e!==x){for(let t=0,s=e.length;t<s;t++)e[t]?.unsub?.();X.release(e)}}_isDirty(){const e=this._links,t=$.current;$.current=null;try{for(let s=0,i=e.length;s<i;s++){const o=e[s],r=o.node;if(r.version!==o.version)return!0;if("value"in r){try{r.value}catch{return!0}if(r.version!==o.version)return!0}}return!1}finally{$.current=t}}_execCleanup(){if(this._cleanup){try{this._cleanup()}catch(e){this._handleExecutionError(e,v.EFFECT_CLEANUP_FAILED)}this._cleanup=null}}_checkInfiniteLoops(){const e=Se;if(this._lastFlushEpoch!==e&&(this._lastFlushEpoch=e,this._executionsInEpoch=0),++this._executionsInEpoch>this._maxExecutionsPerFlush&&this._throwInfiniteLoopError("per-effect"),lt()>q.MAX_EXECUTIONS_PER_FLUSH&&this._throwInfiniteLoopError("global"),this._executionCount++,this._history){const t=Date.now();this._history[this._historyPtr]=t,this._historyPtr=(this._historyPtr+1)%this._historyCapacity;const s=this._history[this._historyPtr]||0;if(s>0&&t-s<tt.ONE_SECOND_MS){const i=new Q("Effect executed too frequently within 1 second. Suspected infinite loop.");if(this.dispose(),this._handleExecutionError(i),T)throw i}}}get isDisposed(){return(this.flags&P.DISPOSED)!==0}get executionCount(){return this._executionCount}get isExecuting(){return(this.flags&P.EXECUTING)!==0}_throwInfiniteLoopError(e){const t=new Q(`Infinite loop detected (${e}): effect executed ${this._executionsInEpoch} times in current flush. Total executions in flush: ${ve}`);throw this.dispose(),console.error(t),t}_handleExecutionError(e,t=v.EFFECT_EXECUTION_FAILED){const s=ee(e,Q,t);if(console.error(s),this._onError)try{this._onError(s)}catch(i){console.error(ee(i,Q,v.CALLBACK_ERROR_IN_ERROR_HANDLER))}}_checkLoopWarnings(){if(this._trackModifications&&Y.enabled){const e=this._currentEpoch,t=this._links;for(let s=0,i=t.length;s<i;s++){const o=t[s].node;o._modifiedAtEpoch===e&&Y.warn(!0,`Effect is reading a dependency (${Y.getDebugName(o)||"unknown"}) that it just modified. Infinite loop may occur`)}}}}function B(n,e={}){if(typeof n!="function")throw new Q(v.EFFECT_MUST_BE_FUNCTION);const t=new ft(n,e);return t.execute(),t}function pe(n){if(typeof n!="function")throw new TypeError("Batch callback must be a function");F.startBatch();try{return n()}finally{F.endBatch()}}function dt(n){return n!==null&&typeof n=="object"&&"value"in n&&"subscribe"in n}function ge(n){if(!n)return"unknown";const e="jquery"in n?n[0]:n;if(!e)return"unknown";const t=e.id;if(t&&typeof t=="string")return`#${t}`;const s=e.tagName.toLowerCase(),i=e.classList;if(i&&i.length>0){let o=s;for(let r=0,c=i.length;r<c;r++){const a=i[r];a&&(o+=`.${a}`)}return o}return s}function _t(n){const e=n.length;if(e===0)return new Int32Array(0);const t=new Int32Array(e),s=new Int32Array(e);let i=0;for(let r=0;r<e;r++){const c=n[r];if(c===void 0||c===-1)continue;const a=i>0?s[i-1]:void 0;if(i===0||a!==void 0&&(n[a]??-1)<c){t[r]=a??-1,s[i++]=r;continue}let f=0,p=i-1;for(;f<p;){const I=f+p>>>1,O=s[I];O!==void 0&&(n[O]??-1)<c?f=I+1:p=I}const D=s[f];D!==void 0&&c<(n[D]??Number.MAX_SAFE_INTEGER)&&(f>0&&(t[r]=s[f-1]??-1),s[f]=r)}const o=new Int32Array(i);if(i>0){let r=s[i-1];for(let c=i-1;c>=0&&r!==void 0&&r!==-1;c--)o[c]=r,r=t[r]}return o}function Et(){if(typeof window<"u"){const n=window.__ATOM_DEBUG__;if(typeof n=="boolean")return n}try{if(typeof process<"u"&&process.env?.NODE_ENV==="development")return!0}catch{}return!1}let G=Et();const y={get enabled(){return G},set enabled(n){G=n},log(n,...e){G&&console.log(`[atom-effect-jquery] ${n}:`,...e)},atomChanged(n,e,t){G&&console.log(`[atom-effect-jquery] Atom "${n??"anonymous"}" changed:`,e,"→",t)},domUpdated(n,e,t){G&&(console.log(`[atom-effect-jquery] DOM updated: ${ge(n)}.${e} =`,t),pt(n))},cleanup(n){G&&console.log(`[atom-effect-jquery] Cleanup: ${n}`)},warn(...n){G&&console.warn("[atom-effect-jquery]",...n)}},ye=new WeakMap;function pt(n){const e="jquery"in n?n[0]:n;if(!e||!e.isConnected)return;let t=ye.get(e);if(t||(t={},ye.set(e,t)),t.timer&&clearTimeout(t.timer),t.cleanupTimer&&clearTimeout(t.cleanupTimer),!t.orgStyle){const i=e.style;t.orgStyle={outline:i.outline,outlineOffset:i.outlineOffset,transition:i.transition}}const s=e.style;s.outline="2px solid rgba(255, 68, 68, 0.8)",s.outlineOffset="1px",s.transition="none",t.timer=setTimeout(()=>{e.isConnected&&(s.transition="outline 0.5s ease-out",requestAnimationFrame(()=>{if(!e.isConnected)return;const i=t?.orgStyle;i&&(s.outline=i.outline,s.outlineOffset=i.outlineOffset),t.cleanupTimer=setTimeout(()=>{e.isConnected&&t?.orgStyle&&(s.transition=t.orgStyle.transition),ye.delete(e)},500)}))},100)}const gt=new WeakMap;function Je(n,e={}){const t=ke(n,e);return e.name&&gt.set(t,{name:e.name}),t}Object.defineProperty(Je,"debug",{get(){return y.enabled},set(n){y.enabled=n}});function mt(){return new Promise(n=>setTimeout(n,0))}l.extend({atom:Je,computed:Ke,effect:B,batch:pe,untracked:Ge,isAtom:De,isComputed:Pe,isReactive:n=>De(n)||Pe(n),nextTick:mt});const le="_aes-bound";class yt{records=new WeakMap;boundElements=new WeakSet;preservedNodes=new WeakSet;ignoredNodes=new WeakSet;keep(e){this.preservedNodes.add(e)}isKept(e){return this.preservedNodes.has(e)}markIgnored(e){this.ignoredNodes.add(e)}isIgnored(e){return this.ignoredNodes.has(e)}_getOrCreateRecord(e){let t=this.records.get(e);return t||(t={},this.records.set(e,t),this.boundElements.has(e)||(this.boundElements.add(e),e.classList.add(le))),t}trackEffect(e,t){const s=this._getOrCreateRecord(e);s.effects||(s.effects=[]),s.effects.push(t)}trackCleanup(e,t){const s=this._getOrCreateRecord(e);s.cleanups||(s.cleanups=[]),s.cleanups.push(t)}hasBind(e){return this.boundElements.has(e)}cleanup(e){if(!this.boundElements.delete(e))return;const t=this.records.get(e);if(!t)return;this.records.delete(e),this.preservedNodes.delete(e),this.ignoredNodes.delete(e),e.classList.remove(le),y.enabled&&y.cleanup(ge(e));const s=t.effects;if(s)for(let o=0,r=s.length;o<r;o++)try{s[o]?.dispose()}catch(c){y.warn("Effect dispose error:",c)}const i=t.cleanups;if(i)for(let o=0,r=i.length;o<r;o++)try{i[o]?.()}catch(c){y.warn("Cleanup error:",c)}}cleanupDescendants(e){const t=e.querySelectorAll(`.${le}`);for(let s=0,i=t.length;s<i;s++){const o=t[s];o&&this.boundElements.has(o)?this.cleanup(o):o&&o.classList.remove(le)}}cleanupTree(e){this.cleanupDescendants(e),this.cleanup(e)}}const m=new yt;let ie=null;function Ze(n=document.body){ie||(ie=new MutationObserver(e=>{for(let t=0,s=e.length;t<s;t++){const i=e[t]?.removedNodes;if(!i)continue;const o=i.length;if(o!==0)for(let r=0;r<o;r++){const c=i[r];c.nodeType===1&&(c.isConnected||m.isKept(c)||m.isIgnored(c)||m.cleanupTree(c))}}}),ie.observe(n,{childList:!0,subtree:!0}))}function bt(){ie?.disconnect(),ie=null}function k(n,e,t,s){dt(e)?m.trackEffect(n,B(()=>{const i=e.value;t(i),y.domUpdated(l(n),s,i)})):(t(e),y.domUpdated(l(n),s,e))}var S=(n=>(n[n.None=0]="None",n[n.Focused=1]="Focused",n[n.Composing=2]="Composing",n[n.SyncingToAtom=4]="SyncingToAtom",n[n.SyncingToDom=8]="SyncingToDom",n[n.Busy=14]="Busy",n))(S||{});function Oe(){return{timeoutId:null,flags:0}}function et(n,e,t={}){const{debounce:s,event:i="input",parse:o=N=>N,format:r=N=>String(N??""),equal:c=Object.is}=t,a=Oe(),f=n[0],p=()=>{if(!(a.flags&S.Busy)){a.flags|=S.SyncingToAtom;try{const N=f.value,A=o(N);c(e.value,A)||(e.value=A)}finally{a.flags&=~S.SyncingToAtom}}},D=()=>{a.timeoutId&&(clearTimeout(a.timeoutId),a.timeoutId=null,p()),a.flags&=~S.Focused;const N=r(e.value);f.value!==N&&(f.value=N)},I=()=>{a.flags&S.Busy||(s?(a.timeoutId&&clearTimeout(a.timeoutId),a.timeoutId=setTimeout(p,s)):p())},O={compositionstart:()=>{a.flags|=S.Composing},compositionend:()=>{a.flags&=~S.Composing,p()},focus:()=>{a.flags|=S.Focused},blur:D,[i]:I,change:I};return n.on(O),{effect:()=>{const N=e.value,A=r(N),R=f.value;if(R!==A&&!(a.flags&S.Focused&&c(o(R),N))){a.flags|=S.SyncingToDom;try{if(a.flags&S.Focused){const{selectionStart:L,selectionEnd:K}=f;f.value=A;const U=A.length;f.setSelectionRange(Math.min(L??U,U),Math.min(K??U,U))}else f.value=A;y.domUpdated(n,"val",A)}finally{a.flags&=~S.SyncingToDom}}},cleanup:()=>{n.off(O),a.timeoutId&&clearTimeout(a.timeoutId)}}}l.fn.atomText=function(n,e){return this.each(function(){const t=l(this);k(this,n,e?i=>t.text(e(i)):i=>t.text(String(i??"")),"text")})};l.fn.atomHtml=function(n){return this.each(function(){const e=l(this);k(this,n,t=>e.html(String(t??"")),"html")})};l.fn.atomClass=function(n,e){return this.each(function(){const t=l(this);k(this,e,s=>t.toggleClass(n,!!s),`class.${n}`)})};l.fn.atomCss=function(n,e,t){return this.each(function(){const s=l(this);k(this,e,t?o=>s.css(n,`${o}${t}`):o=>s.css(n,o),`css.${n}`)})};l.fn.atomAttr=function(n,e){return this.each(function(){const t=l(this);k(this,e,s=>{if(s==null||s===!1){t.removeAttr(n);return}t.attr(n,s===!0?n:String(s))},`attr.${n}`)})};l.fn.atomProp=function(n,e){return this.each(function(){const t=l(this);k(this,e,s=>t.prop(n,s),`prop.${n}`)})};l.fn.atomShow=function(n){return this.each(function(){const e=l(this);k(this,n,t=>e.toggle(!!t),"show")})};l.fn.atomHide=function(n){return this.each(function(){const e=l(this);k(this,n,t=>e.toggle(!t),"hide")})};l.fn.atomVal=function(n,e={}){return this.each(function(){const{effect:t,cleanup:s}=et(l(this),n,e);m.trackEffect(this,B(t)),m.trackCleanup(this,s)})};l.fn.atomChecked=function(n){return this.each(function(){const e=l(this),t=this,s=Oe(),i=()=>{if(s.flags&S.Busy)return;const r=t.checked;n.value!==r&&(n.value=r)};e.on("change",i),m.trackCleanup(this,()=>e.off("change",i));const o=B(()=>{s.flags|=S.SyncingToDom;const r=!!n.value;t.checked!==r&&(t.checked=r,y.domUpdated(e,"checked",r)),s.flags&=~S.SyncingToDom});m.trackEffect(this,o)})};l.fn.atomOn=function(n,e){return this.each(function(){const t=l(this);t.on(n,e),m.trackCleanup(this,()=>t.off(n,e))})};l.fn.atomUnbind=function(){return this.each(function(){m.cleanupTree(this)})};const $e=Object.create(null);function It(n){let e=$e[n];return e||(e=n.includes("-")?n.replace(/-./g,t=>t[1].toUpperCase()):n,$e[n]=e,e)}function Ct(n,e){const t=n.el;k(t,e,s=>{const i=typeof s=="string"?s:String(s??"");t.textContent!==i&&(t.textContent=i)},"text")}function St(n,e){const t=n.el;k(t,e,s=>{const i=String(s??"");t.innerHTML!==i&&(t.innerHTML=i)},"html")}function Dt(n,e){for(const t in e)k(n.el,e[t],s=>{n.el.classList.toggle(t,!!s)},`class.${t}`)}function Tt(n,e){const t=n.el,s=t.style;for(const i in e){const o=e[i];if(o===void 0)continue;const r=It(i);Array.isArray(o)?k(t,o[0],c=>{s[r]=`${c}${o[1]}`},`css.${i}`):k(t,o,c=>{s[r]=c},`css.${i}`)}}function vt(n,e){const t=n.el;for(const s in e)k(t,e[s],i=>{if(i==null||i===!1){t.removeAttribute(s);return}const o=i===!0?s:String(i);t.getAttribute(s)!==o&&t.setAttribute(s,o)},`attr.${s}`)}function kt(n,e){const t=n.el;for(const s in e)k(n.el,e[s],i=>{t[s]!==i&&(t[s]=i)},`prop.${s}`)}function Ot(n,e){const t=n.el;k(t,e,s=>{t.style.display=s?"":"none",y.enabled&&y.domUpdated(t,"show",s)},"show")}function Nt(n,e){const t=n.el;k(t,e,s=>{t.style.display=s?"none":"",y.enabled&&y.domUpdated(t,"hide",s)},"hide")}function At(n,e){const t=Array.isArray(e),{effect:s,cleanup:i}=et(n.$el,t?e[0]:e,t?e[1]:{});m.trackEffect(n.el,B(s)),n.trackCleanup(i)}function wt(n,e){const t=n.el,s=Oe(),i=()=>{if(s.flags&S.Busy)return;const r=t.checked;e.value!==r&&(e.value=r)};t.addEventListener("change",i),n.trackCleanup(()=>t.removeEventListener("change",i));const o=B(()=>{s.flags|=S.SyncingToDom;const r=!!e.value;t.checked!==r&&(t.checked=r,y.enabled&&y.domUpdated(t,"checked",r)),s.flags&=~S.SyncingToDom});m.trackEffect(t,o)}function Rt(n,e){for(const t in e){const s=e[t];if(typeof s!="function")continue;const i=o=>{pe(()=>s.call(n.el,l.Event(o.type,{originalEvent:o})))};n.el.addEventListener(t,i),n.trackCleanup(()=>n.el.removeEventListener(t,i))}}l.fn.atomBind=function(n){return this.each(function(){const e=this;let t=null;const s={get $el(){return t||(t=l(e)),t},el:e,trackCleanup:i=>m.trackCleanup(e,i)};n.text!==void 0&&Ct(s,n.text),n.html!==void 0&&St(s,n.html),n.class&&Dt(s,n.class),n.css&&Tt(s,n.css),n.attr&&vt(s,n.attr),n.prop&&kt(s,n.prop),n.show!==void 0&&Ot(s,n.show),n.hide!==void 0&&Nt(s,n.hide),n.val!==void 0&&At(s,n.val),n.checked!==void 0&&wt(s,n.checked),n.on&&Rt(s,n.on)})};l.fn.atomList=function(n,e){const{key:t,render:s,bind:i,update:o,onAdd:r,onRemove:c,empty:a}=e,f=typeof t=="function"?t:(p,D)=>p[t];return this.each(function(){const p=l(this),D=ge(this),I=new Map,O=new Set;let w=[],M=null;const N=B(()=>{const A=n.value,R=A.length;if(R===0?a&&!M&&(M=l(a).appendTo(p)):M&&(M.remove(),M=null),R===0&&I.size===0){w=[];return}y.log("list",`${D} updating with ${R} items`);const L=new Map,K=w.length;for(let u=0;u<K;u++)L.set(w[u],u);const U=new Array(R),J=new Set,re=new Int32Array(R);for(let u=0;u<R;u++){const E=A[u],_=f(E,u);y.enabled&&J.has(_)&&console.warn(`[atomList] Duplicate key "${_}" at index ${u}.`),U[u]=_,J.add(_),re[u]=L.get(_)??-1}if(I.size>0)for(const[u,E]of I){if(J.has(u)||O.has(u))continue;const _=()=>{E.$el.remove(),E.$el[0]&&m.cleanup(E.$el[0]),O.delete(u),y.log("list",`${D} removed item:`,u)};if(I.delete(u),O.add(u),c){const g=c(E.$el);g instanceof Promise?g.then(_):_()}else _()}if(R===0){w=[];return}const ne=_t(re);let se=ne.length-1,h=null;for(let u=R-1;u>=0;u--){const E=U[u],_=A[u],g=I.get(E);if(g){const C=g.item;g.item=_;const b=g.$el[0];if(!b)continue;if(o)o(g.$el,_,u),y.domUpdated(g.$el,"list.update",_);else if(C!==_){let V=!0;if(typeof C=="object"&&C!==null&&typeof _=="object"&&_!==null){V=!1;let j=0;const ce=C,Ae=_;for(const Z in ce){if(ce[Z]!==Ae[Z]){V=!0;break}j++}if(!V){let Z=0;for(const Ut in Ae)if(Z++,Z>j){V=!0;break}j!==Z&&(V=!0)}}if(V){const j=l(s(_,u)),ce=h===b;g.$el.replaceWith(j),g.$el=j,i&&i(j,_,u),y.domUpdated(j,"list.render",_),ce&&(h=j[0]||null)}}if(se>=0&&ne[se]===u)se--;else{const V=g.$el[0];h?.isConnected?h!==V&&g.$el.insertBefore(h):g.$el.appendTo(p)}h=g.$el[0]||null}else{const C=s(_,u),b=l(C);I.set(E,{$el:b,item:_}),h?.isConnected?b.insertBefore(h):b.appendTo(p),i&&i(b,_,u),r&&r(b),y.domUpdated(b,"list.add",_),h=b[0]||null}}w=U});m.trackEffect(this,N),m.trackCleanup(this,()=>{I.clear(),O.clear(),w=[],M?.remove()})})};const he=new WeakMap;l.fn.atomMount=function(n,e={}){return this.each(function(){const t=y.enabled,s=t?ge(this):"",i=he.get(this);i&&(t&&y.log("mount",`${s} unmounting existing component`),i()),t&&y.log("mount",`${s} mounting component`);let o;try{o=n(l(this),e)}catch(c){console.error("[atom-effect-jquery] Mount error:",c);return}const r=()=>{if(he.delete(this)){if(t&&y.log("mount",`${s} full cleanup`),typeof o=="function")try{o()}catch(c){console.error("[atom-effect-jquery] Cleanup error:",c)}m.cleanupTree(this)}};he.set(this,r),m.trackCleanup(this,r)})};l.fn.atomUnmount=function(){return this.each(function(){const n=he.get(this);n&&n()})};const be="[$.route]";function Lt(n){const{target:e,default:t,routes:s,notFound:i,autoBindLinks:o=!1,activeClass:r="active",beforeTransition:c,afterTransition:a}=n;let f=!1,p=null,D=window.location.hash;const I=[],O=new Set,w=l(e),M=()=>{const h=window.location.hash,u=h.indexOf("?");return(u===-1?h.substring(1):h.substring(1,u))||t},N=h=>{const u=h.indexOf("?");if(u===-1)return{};const E={},_=h.length;let g=u+1;for(;g<_;){let C=h.indexOf("&",g);if(C===-1&&(C=_),C>g){const b=h.indexOf("=",g);b!==-1&&b<C?E[decodeURIComponent(h.substring(g,b))]=decodeURIComponent(h.substring(b+1,C)):E[decodeURIComponent(h.substring(g,C))]=""}g=C+1}return E},A=h=>{let u=s[h];return!u&&i&&(u=s[i]),u||(console.warn(`${be} Route "${h}" not found and no notFound route configured`),null)},R=h=>{const u=document.querySelector(h);if(!u?.content)return console.warn(`${be} Template "${h}" not found`),!1;const E=u.content.cloneNode(!0);return w.append(E),!0},L=ke(M()),K=h=>{if(f)return;const u=w[0];if(!u){console.warn(`${be} Target element "${e}" not found`);return}const E=A(h);if(!E)return;const _=N(window.location.hash);c&&c(p||h,h),w.empty();let g=_;if(E.onEnter){const C=E.onEnter(_);C!==void 0&&(g={..._,...C})}E.render?E.render(u,h,g):E.template&&R(E.template),a&&a(p||h,h),p=h},U=h=>{if(f)return;const u=L.value,E=s[u];E?.onLeave&&E.onLeave()===!1||(D=`#${h}`,window.location.hash=D,L.value=h)},J=()=>{if(f)return;const h=window.location.hash;if(h===D)return;const u=M(),E=L.value;if(E!==u){const _=s[E];if(_?.onLeave&&_.onLeave()===!1){window.location.hash=D;return}L.value=u}else K(u);D=h},re=()=>{if(!o)return;l("[data-route]").each(function(){const u=this,E=l(u),_=E.data("route");O.add(u);const g=b=>{b.preventDefault(),U(_)};E.on("click",g),m.trackCleanup(u,()=>{E.off("click",g),O.delete(u)});const C=B(()=>{const b=L.value===_;E.toggleClass(r,b),b?E.attr("aria-current","page"):E.removeAttr("aria-current")});m.trackEffect(u,C)})},ne=()=>{f||(f=!0,I.forEach(h=>h()),I.length=0,O.forEach(h=>m.cleanup(h)),O.clear())};window.addEventListener("hashchange",J),I.push(()=>window.removeEventListener("hashchange",J));const se=B(()=>{K(L.value)});return I.push(()=>se.dispose()),re(),w[0]&&m.trackCleanup(w[0],ne),{currentRoute:L,navigate:U,destroy:ne}}l.extend({route:Lt});const de=new WeakMap;let Be=!1;const je=n=>{let e=de.get(n);return e||(e=function(...t){return pe(()=>n.apply(this,t))},de.set(n,e)),e};function Ne(){if(Be)return;Be=!0;const n=l.fn.on,e=l.fn.off,t=l.fn.remove,s=l.fn.empty,i=l.fn.detach;l.fn.remove=function(o){const r=o?this.filter(o):this;for(let c=0,a=r.length;c<a;c++){const f=r[c];f&&(m.cleanupTree(f),m.markIgnored(f))}return t.call(this,o)},l.fn.empty=function(){for(let o=0,r=this.length;o<r;o++){const c=this[o];c&&m.cleanupDescendants(c)}return s.call(this)},l.fn.detach=function(o){const r=o?this.filter(o):this;for(let c=0,a=r.length;c<a;c++){const f=r[c];f&&m.keep(f)}return i.call(this,o)},l.fn.on=function(...o){const r=o[0];if(r&&typeof r=="object"){const c=r,a={};for(const f in c){const p=c[f];p&&(a[f]=je(p))}o[0]=a}else for(let c=o.length-1;c>=0;c--)if(typeof o[c]=="function"){o[c]=je(o[c]);break}return n.apply(this,o)},l.fn.off=function(...o){const r=o[0];if(r&&typeof r=="object"){const c=r,a={};for(const f in c){const p=c[f];p&&(a[f]=de.get(p)||p)}o[0]=a}else for(let c=o.length-1;c>=0;c--)if(typeof o[c]=="function"){o[c]=de.get(o[c])||o[c];break}return e.apply(this,o)}}const xt=Ne;Ne();l(()=>{Ze(document.body)});exports.default=l;exports.atom=ke;exports.batch=pe;exports.computed=Ke;exports.disableAutoCleanup=bt;exports.effect=B;exports.enableAutoCleanup=Ze;exports.enablejQueryBatching=xt;exports.enablejQueryOverrides=Ne;exports.registry=m;exports.untracked=Ge;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("jquery"),st={ONE_SECOND_MS:1e3},me={IDLE:"idle",PENDING:"pending",RESOLVED:"resolved",REJECTED:"rejected"},we={DISPOSED:1},P={...we,EXECUTING:8},d={...we,IS_COMPUTED:2,DIRTY:8,IDLE:16,PENDING:32,RESOLVED:64,REJECTED:128,RECOMPUTING:256,HAS_ERROR:512},H={...we,SYNC:8,NOTIFICATION_SCHEDULED:16},q={MAX_EXECUTIONS_PER_SECOND:1e3,MAX_EXECUTIONS_PER_EFFECT:100,MAX_EXECUTIONS_PER_FLUSH:1e4,MAX_FLUSH_ITERATIONS:1e3,MIN_FLUSH_ITERATIONS:10,BATCH_QUEUE_SHRINK_THRESHOLD:1e3},it={WARN_INFINITE_LOOP:!0},oe=1073741823,L=typeof process<"u"&&process.env&&process.env.NODE_ENV!=="production"||typeof __DEV__<"u"&&!!__DEV__,rt=Object.freeze([]);class ee extends Error{constructor(e,t=null,s=!0){super(e),this.cause=t,this.recoverable=s,this.timestamp=new Date,this.name="AtomError"}}class z extends ee{constructor(e,t=null){super(e,t,!0),this.name="ComputedError"}}class Y extends ee{constructor(e,t=null){super(e,t,!1),this.name="EffectError"}}class le extends ee{constructor(e,t=null){super(e,t,!1),this.name="SchedulerError"}}const xe=Symbol("AtomEffect.DebugName"),ot=Symbol("AtomEffect.Id"),Ue=Symbol("AtomEffect.Type"),Se=Symbol("AtomEffect.NoDefaultValue"),ct=n=>"dependencies"in n&&Array.isArray(n.dependencies);function He(n,e,t){if(n===e)throw new z("Circular dependency detected: The computation refers to itself explicitly or implicitly.");if(!t.has(n.id)&&(t.add(n.id),ct(n))){const s=n.dependencies;for(let i=0;i<s.length;i++){const r=s[i];r&&He(r,e,t)}}}const W={enabled:L,warnInfiniteLoop:it.WARN_INFINITE_LOOP,warn(n,e){L&&this.enabled&&n&&console.warn(`[Atom Effect] ${e}`)},checkCircular(n,e){if(n===e)throw new z("Direct circular dependency detected");L&&this.enabled&&He(n,e,new Set)},attachDebugInfo(n,e,t){if(!L||!this.enabled)return;const s=n;s[xe]=`${e}_${t}`,s[ot]=t,s[Ue]=e},getDebugName:n=>n?.[xe],getDebugType:n=>n?.[Ue]};let at=1;const ut=()=>at++;function ze(n,e,t){if(typeof e=="function"){const i=e;for(let r=0,o=t.length;r<o;r++){const c=t[r];if(c&&c.fn===i)return}t.push(new De(i,void 0));return}if("addDependency"in e){e.addDependency(n);return}const s=e;for(let i=0,r=t.length;i<r;i++){const o=t[i];if(o&&o.sub===s)return}t.push(new De(void 0,s))}function lt(n,e,t){const s=new Map;for(let i=0,r=e.length;i<r;i++){const o=e[i];o?.unsub&&(s.set(o.node,o.unsub),o.unsub=void 0)}for(let i=0,r=n.length;i<r;i++){const o=n[i];if(!o)continue;const c=o.node,a=s.get(c);a!==void 0?(o.unsub=a,s.delete(c)):(W.checkCircular(c,t),o.unsub=c.subscribe(t))}for(const i of s.values())i()}class de{constructor(e,t,s=void 0){this.node=e,this.version=t,this.unsub=s}}class De{constructor(e,t){this.fn=e,this.sub=t}}const T={COMPUTED_MUST_BE_FUNCTION:"Computed target must be a function",COMPUTED_ASYNC_PENDING_NO_DEFAULT:"Async computation pending with no default value",COMPUTED_COMPUTATION_FAILED:"Computation execution failed",COMPUTED_ASYNC_COMPUTATION_FAILED:"Async computation execution failed",COMPUTED_CIRCULAR_DEPENDENCY:"Circular dependency detected",COMPUTED_DISPOSED:"Attempted to access disposed computed",ATOM_SUBSCRIBER_MUST_BE_FUNCTION:"Subscriber must be a function or Subscriber object",ATOM_INDIVIDUAL_SUBSCRIBER_FAILED:"Subscriber execution failed",EFFECT_MUST_BE_FUNCTION:"Effect target must be a function",EFFECT_EXECUTION_FAILED:"Effect execution failed",EFFECT_CLEANUP_FAILED:"Effect cleanup failed",EFFECT_DISPOSED:"Attempted to run disposed effect",SCHEDULER_FLUSH_OVERFLOW:(n,e)=>`Maximum flush iterations (${n}) exceeded. ${e} jobs dropped. Possible infinite loop.`,CALLBACK_ERROR_IN_ERROR_HANDLER:"Exception encountered in onError handler",EFFECT_FREQUENCY_LIMIT_EXCEEDED:"Effect executed too frequently within 1 second. Suspected infinite loop."};function Z(n,e,t){if(n instanceof ee)return n;const s=n instanceof Error,i=s?n.message:String(n),r=s?n:void 0;let o="Unexpected error";n instanceof TypeError?o="Type error":n instanceof ReferenceError&&(o="Reference error");const c=`${o} (${t}): ${i}`;return new e(c,r)}class qe{constructor(){this.flags=0,this.version=0,this._lastSeenEpoch=-1,this._modifiedAtEpoch=-1,this.id=ut()&oe}}class Xe extends qe{subscribe(e){const t=typeof e=="function";if(!t&&(!e||typeof e.execute!="function"))throw Z(new TypeError("Invalid subscriber"),ee,T.ATOM_SUBSCRIBER_MUST_BE_FUNCTION);const s=this._subscribers;for(let r=0,o=s.length;r<o;r++){const c=s[r];if(c&&(t?c.fn===e:c.sub===e))return L&&console.warn("Duplicate subscription ignored."),()=>{}}const i=new De(t?e:void 0,t?void 0:e);return s.push(i),()=>this._unsubscribe(i)}_unsubscribe(e){const t=this._subscribers,s=t.indexOf(e);if(s===-1)return;const i=t.pop();s<t.length&&i&&(t[s]=i)}subscriberCount(){return this._subscribers.length}_notifySubscribers(e,t){if(this._subscribers.length===0)return;const s=this._subscribers.slice(0),i=s.length;for(let r=0;r<i;r++){const o=s[r];if(o)try{o.fn?o.fn(e,t):o.sub&&o.sub.execute()}catch(c){this._handleNotifyError(c)}}}_handleNotifyError(e){console.error(Z(e,ee,T.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED))}}let _e=0;const Qe=()=>(_e=_e+1&oe||1,_e),ht=()=>_e,Te=n=>n+1&oe;let ve=0,Re=0,Ee=!1;function Pe(){return Ee?(L&&console.warn("startFlush() called during flush - ignored"),!1):(Ee=!0,ve=ve+1&oe||1,Re=0,!0)}const Fe=()=>{Ee=!1},ft=()=>Ee?++Re:0;class dt{constructor(){this._queueBuffer=[[],[]],this._bufferIndex=0,this._size=0,this._epoch=0,this._isProcessing=!1,this._isBatching=!1,this._isFlushingSync=!1,this._batchDepth=0,this._batchQueue=[],this._batchQueueSize=0,this._maxFlushIterations=q.MAX_FLUSH_ITERATIONS,this.onOverflow=null,this._boundRunLoop=this._runLoop.bind(this)}get phase(){return this._isProcessing||this._isFlushingSync?2:this._isBatching?1:0}get queueSize(){return this._size}get isBatching(){return this._isBatching}schedule(e){if(L&&typeof e!="function")throw new le("Scheduler callback must be a function");if(e._nextEpoch!==this._epoch){if(e._nextEpoch=this._epoch,this._isBatching||this._isFlushingSync){this._batchQueue[this._batchQueueSize++]=e;return}this._queueBuffer[this._bufferIndex][this._size++]=e,this._isProcessing||this._flush()}}_flush(){this._isProcessing||this._size===0||(this._isProcessing=!0,queueMicrotask(this._boundRunLoop))}_runLoop(){try{if(this._size===0)return;const e=Pe();this._drainQueue(),e&&Fe()}finally{this._isProcessing=!1,this._size>0&&!this._isBatching&&this._flush()}}_flushSync(){this._isFlushingSync=!0;const e=Pe();try{this._mergeBatchQueue(),this._drainQueue()}finally{this._isFlushingSync=!1,e&&Fe()}}_mergeBatchQueue(){if(this._batchQueueSize===0)return;const e=++this._epoch,t=this._batchQueue,s=this._queueBuffer[this._bufferIndex];let i=this._size;for(let r=0;r<this._batchQueueSize;r++){const o=t[r];o._nextEpoch!==e&&(o._nextEpoch=e,s[i++]=o)}this._size=i,this._batchQueueSize=0,t.length>q.BATCH_QUEUE_SHRINK_THRESHOLD&&(t.length=0)}_drainQueue(){let e=0;for(;this._size>0;){if(++e>this._maxFlushIterations){this._handleFlushOverflow();return}this._processQueue(),this._mergeBatchQueue()}}_processQueue(){const e=this._bufferIndex,t=this._queueBuffer[e],s=this._size;this._bufferIndex=e^1,this._size=0,this._epoch++;for(let i=0;i<s;i++)try{t[i]()}catch(r){console.error(new le("Error occurred during scheduler execution",r))}t.length=0}_handleFlushOverflow(){const e=this._size+this._batchQueueSize;if(console.error(new le(T.SCHEDULER_FLUSH_OVERFLOW(this._maxFlushIterations,e))),this._size=0,this._queueBuffer[this._bufferIndex].length=0,this._batchQueueSize=0,this.onOverflow)try{this.onOverflow(e)}catch{}}startBatch(){this._batchDepth++,this._isBatching=!0}endBatch(){if(this._batchDepth===0){L&&console.warn("endBatch() called without matching startBatch(). Ignoring.");return}--this._batchDepth===0&&(this._flushSync(),this._isBatching=!1)}setMaxFlushIterations(e){if(e<q.MIN_FLUSH_ITERATIONS)throw new le(`Max flush iterations must be at least ${q.MIN_FLUSH_ITERATIONS}`);this._maxFlushIterations=e}}const re=new dt,$={current:null,run(n,e){const t=this.current;this.current=n;try{return e()}finally{this.current=t}}};function Ge(n){const e=$.current;if(e===null)return n();$.current=null;try{return n()}finally{$.current=e}}class _t extends Xe{constructor(e,t){super(),this._pendingOldValue=void 0,this._notifyTask=void 0,this._subscribers=[],this._value=e,t&&(this.flags|=H.SYNC),W.attachDebugInfo(this,"atom",this.id)}get value(){const e=$.current;return e&&ze(this,e,this._subscribers),this._value}set value(e){const t=this._value;if(Object.is(t,e))return;this._value=e,this.version=Te(this.version);const s=this.flags;if(!(this._subscribers.length===0||s&H.NOTIFICATION_SCHEDULED)){if(this._pendingOldValue=t,this.flags=s|H.NOTIFICATION_SCHEDULED,s&H.SYNC&&!re.isBatching){this._flushNotifications();return}this._notifyTask||(this._notifyTask=()=>this._flushNotifications()),re.schedule(this._notifyTask)}}_flushNotifications(){const e=this.flags;if(!(e&H.NOTIFICATION_SCHEDULED)||e&H.DISPOSED)return;const t=this._pendingOldValue;this._pendingOldValue=void 0,this.flags&=-17,this._notifySubscribers(this._value,t)}peek(){return this._value}dispose(){this.flags&H.DISPOSED||(this._subscribers.length=0,this.flags|=H.DISPOSED,this._value=void 0,this._pendingOldValue=void 0,this._notifyTask=void 0)}}function Ne(n,e={}){return new _t(n,e.sync??!1)}class pt{constructor(e=50,t=256,s=!1){this.limit=e,this.capacity=t,this.pool=[],this.stats=null,this.stats=L||s?{acquired:0,released:0,rejected:{frozen:0,tooLarge:0,poolFull:0}}:null}acquire(){return this.stats&&this.stats.acquired++,this.pool.pop()??[]}release(e,t){if(!(t&&e===t)){if(e.length>this.capacity){this.stats&&this.stats.rejected.tooLarge++;return}if(this.pool.length>=this.limit){this.stats&&this.stats.rejected.poolFull++;return}if(Object.isFrozen(e)){this.stats&&this.stats.rejected.frozen++;return}e.length=0,this.pool.push(e),this.stats&&this.stats.released++}}getStats(){if(!this.stats)return null;const{acquired:e,released:t,rejected:s}=this.stats,i=e-t-(s.frozen+s.tooLarge+s.poolFull);return{acquired:e,released:t,rejected:{...s},leaked:i,poolSize:this.pool.length}}reset(){this.pool.length=0,this.stats&&(this.stats={acquired:0,released:0,rejected:{frozen:0,tooLarge:0,poolFull:0}})}}const ce=n=>Object.freeze(n);ce([]);ce([]);ce([]);ce([]);const F=ce([]),X=new pt;function ke(n){return n!==null&&typeof n=="object"&&"value"in n&&typeof n.subscribe=="function"}function Me(n){return ke(n)&&typeof n.invalidate=="function"}function Ye(n){return n!==null&&typeof n=="object"&&typeof n.then=="function"}const We=d.RESOLVED|d.PENDING|d.REJECTED,ye=Array(We+1).fill(me.IDLE);ye[d.RESOLVED]=me.RESOLVED;ye[d.PENDING]=me.PENDING;ye[d.REJECTED]=me.REJECTED;const Et=3,$e=Number.MAX_SAFE_INTEGER-1,gt=d.REJECTED|d.HAS_ERROR;class Ke extends Xe{constructor(e,t={}){if(typeof e!="function")throw new z(T.COMPUTED_MUST_BE_FUNCTION);super(),this._error=null,this._promiseId=0,this._subscribers=[],this._links=F,this._cachedErrors=null,this._errorCacheEpoch=-1,this._asyncStartAggregateVersion=0,this._asyncRetryCount=0,this._errorDepCount=0,this._trackEpoch=-1,this._trackLinks=F,this._trackCount=0,this._value=void 0,this.flags=d.IS_COMPUTED|d.DIRTY|d.IDLE,this._equal=t.equal??Object.is,this._fn=e,this._defaultValue="defaultValue"in t?t.defaultValue:Se,this._onError=t.onError??null;const s=t.maxAsyncRetries;if(this._maxAsyncRetries=s!=null&&s>=0?s:Et,W.attachDebugInfo(this,"computed",this.id),t.lazy===!1)try{this._recompute()}catch{}}_track(){const e=$.current;e&&ze(this,e,this._subscribers)}get value(){this._track();const e=this.flags;if((e&(d.RESOLVED|d.DIRTY|d.IDLE))===d.RESOLVED)return this._value;if(e&d.DISPOSED)throw new z(T.COMPUTED_DISPOSED);if(e&d.RECOMPUTING){if(this._defaultValue!==Se)return this._defaultValue;throw new z(T.COMPUTED_CIRCULAR_DEPENDENCY)}if(e&(d.DIRTY|d.IDLE)&&(this._recompute(),this.flags&d.RESOLVED))return this._value;const t=this._defaultValue,s=t!==Se;if(this.flags&d.PENDING){if(s)return t;throw new z(T.COMPUTED_ASYNC_PENDING_NO_DEFAULT)}if(this.flags&d.REJECTED){if(this._error?.recoverable&&s)return t;throw this._error}return this._value}peek(){return this._value}get state(){return this._track(),ye[this.flags&We]}get hasError(){if(this._track(),this.flags&(d.REJECTED|d.HAS_ERROR)||this._errorDepCount>0)return!0;const e=this._links;for(let t=0,s=e.length;t<s;t++){const i=e[t]?.node;if(i&&i.flags&d.HAS_ERROR)return!0}return!1}get isValid(){return!this.hasError}get errors(){if(this._track(),!this.hasError)return rt;const e=ht();if(this._errorCacheEpoch===e&&this._cachedErrors)return this._cachedErrors;const t=[];this._error&&t.push(this._error);const s=this._links;for(let r=0,o=s.length;r<o;r++){const c=s[r].node;if(c.flags&d.HAS_ERROR){const a=c;if(a.errors){const _=a.errors;for(let g=0;g<_.length;g++){const v=_[g];v&&t.indexOf(v)===-1&&t.push(v)}}}}const i=Object.freeze(t);return this._errorCacheEpoch=e,this._cachedErrors=i,i}get lastError(){return this._track(),this._error}get isPending(){return this._track(),(this.flags&d.PENDING)!==0}get isResolved(){return this._track(),(this.flags&d.RESOLVED)!==0}invalidate(){this._markDirty(),this._errorCacheEpoch=-1,this._cachedErrors=null}dispose(){if(this.flags&d.DISPOSED)return;const e=this._links;if(e!==F){for(let t=0,s=e.length;t<s;t++)e[t].unsub?.();X.release(e),this._links=F}this._subscribers.length=0,this.flags=d.DISPOSED|d.DIRTY|d.IDLE,this._error=null,this._value=void 0,this._promiseId=(this._promiseId+1)%$e,this._cachedErrors=null,this._errorCacheEpoch=-1}addDependency(e){if(e._lastSeenEpoch!==this._trackEpoch){if(e._lastSeenEpoch=this._trackEpoch,this._trackCount<this._trackLinks.length){const t=this._trackLinks[this._trackCount];t.node=e,t.version=e.version}else this._trackLinks.push(new de(e,e.version));this._trackCount++}}_commitDeps(e){this._trackLinks.length=this._trackCount,lt(this._trackLinks,e,this),this._links=this._trackLinks}_updateErrorDepCount(){let e=0;const t=this._links;for(let s=0,i=t.length;s<i;s++){const r=t[s]?.node;r&&r.flags&d.HAS_ERROR&&e++}this._errorDepCount=e}_recompute(){if(this.flags&d.RECOMPUTING)return;this.flags|=d.RECOMPUTING;const e=this._links;this._trackEpoch=Qe(),this._trackLinks=X.acquire(),this._trackCount=0;let t=!1;try{const s=$.run(this,this._fn);this._commitDeps(e),t=!0,this._updateErrorDepCount(),Ye(s)?this._handleAsyncComputation(s):this._finalizeResolution(s)}catch(s){if(!t)try{this._commitDeps(e),t=!0,this._updateErrorDepCount()}catch(i){L&&console.warn("[atom-effect] _commitDeps failed during error recovery:",i)}this._handleError(s,T.COMPUTED_COMPUTATION_FAILED,!0)}finally{t&&e!==F?X.release(e):t||X.release(this._trackLinks),this._trackEpoch=-1,this._trackLinks=F,this._trackCount=0,this.flags&=-257}}_handleAsyncComputation(e){this.flags=(this.flags|d.PENDING)&-217,this._notifySubscribers(void 0,void 0),this._asyncStartAggregateVersion=this._captureVersionSnapshot(),this._asyncRetryCount=0,this._promiseId=(this._promiseId+1)%$e;const t=this._promiseId;e.then(s=>{if(t===this._promiseId){if(this._captureVersionSnapshot()!==this._asyncStartAggregateVersion)return this._asyncRetryCount++<this._maxAsyncRetries?this._markDirty():this._handleError(new z(`Async drift threshold exceeded after ${this._maxAsyncRetries} retries.`),T.COMPUTED_ASYNC_COMPUTATION_FAILED);this._finalizeResolution(s),this._notifySubscribers(s,void 0)}},s=>t===this._promiseId&&this._handleError(s,T.COMPUTED_ASYNC_COMPUTATION_FAILED))}_captureVersionSnapshot(){let e=0;const t=this._links;for(let s=0,i=t.length;s<i;s++)e=((e<<5)-e|0)+t[s].node.version&oe;return e}_handleError(e,t,s=!1){const i=Z(e,z,t);if(!s&&!(this.flags&d.REJECTED)&&(this.version=Te(this.version)),this._error=i,this.flags=this.flags&-121|gt,this._onError)try{this._onError(i)}catch(r){console.error(T.CALLBACK_ERROR_IN_ERROR_HANDLER,r)}if(s)throw i;this._notifySubscribers(void 0,void 0)}_finalizeResolution(e){(!(this.flags&d.RESOLVED)||!this._equal(this._value,e))&&(this.version=Te(this.version)),this._value=e,this._error=null,this.flags=(this.flags|d.RESOLVED)&-697,this._cachedErrors=null,this._errorCacheEpoch=-1}execute(){this._markDirty()}_markDirty(){this.flags&(d.RECOMPUTING|d.DIRTY)||(this.flags|=d.DIRTY,this._notifySubscribers(void 0,void 0))}}Object.freeze(Ke.prototype);function Je(n,e={}){return new Ke(n,e)}class mt extends qe{constructor(e,t={}){super(),this._cleanup=null,this._links=F,this._nextLinks=null,this._parkedUnsubs=null,this._currentEpoch=-1,this._lastFlushEpoch=-1,this._executionsInEpoch=0,this._executionCount=0,this._historyPtr=0,this._execId=0,this._fn=e,this._onError=t.onError??null,this._sync=t.sync??!1,this._maxExecutions=t.maxExecutionsPerSecond??q.MAX_EXECUTIONS_PER_SECOND,this._maxExecutionsPerFlush=t.maxExecutionsPerFlush??q.MAX_EXECUTIONS_PER_EFFECT,this._trackModifications=t.trackModifications??!1;const s=Number.isFinite(this._maxExecutions),i=s?Math.min(this._maxExecutions+1,q.MAX_EXECUTIONS_PER_SECOND+1):0;this._historyCapacity=i,this._history=L&&s&&i>0?new Array(i).fill(0):null,W.attachDebugInfo(this,"effect",this.id)}run(){if(this.flags&P.DISPOSED)throw new Y(T.EFFECT_DISPOSED);this.execute(!0)}dispose(){this.flags&P.DISPOSED||(this.flags|=P.DISPOSED,this._execCleanup(),this._releaseLinks(this._links),this._links=F,this._executeTask=void 0)}addDependency(e){if(!(this.flags&P.EXECUTING)||e._lastSeenEpoch===this._currentEpoch)return;e._lastSeenEpoch=this._currentEpoch;const t=this._nextLinks,s=this._parkedUnsubs?.get(e);if(s){t.push(new de(e,e.version,s)),this._parkedUnsubs.delete(e);return}try{const i=e.subscribe(()=>{if(this._trackModifications&&this.flags&P.EXECUTING&&(e._modifiedAtEpoch=this._currentEpoch),this._sync)return this.execute();this._executeTask||(this._executeTask=()=>this.execute()),re.schedule(this._executeTask)});t.push(new de(e,e.version,i))}catch(i){const r=Z(i,Y,T.EFFECT_EXECUTION_FAILED);if(console.error(r),this._onError)try{this._onError(r)}catch{}t.push(new de(e,e.version,void 0))}}execute(e=!1){if(this.flags&(P.DISPOSED|P.EXECUTING)||!e&&this._links.length>0&&!this._isDirty())return;this._checkInfiniteLoops(),this.flags|=P.EXECUTING,this._execCleanup();const t=this._links;if(t!==F){const r=new Map;for(let o=0,c=t.length;o<c;o++){const a=t[o];a?.unsub&&r.set(a.node,a.unsub)}this._parkedUnsubs=r}const s=X.acquire();this._nextLinks=s,this._currentEpoch=Qe();let i=!1;try{const r=$.run(this,this._fn);this._links=s,i=!0,this._checkLoopWarnings(),Ye(r)?this._handleAsyncResult(r):this._cleanup=typeof r=="function"?r:null}catch(r){i=!0,this._handleExecutionError(r),this._cleanup=null}finally{this._finalizeDependencies(i,t,s),this.flags&=-9}}_handleAsyncResult(e){const t=++this._execId;e.then(s=>{if(t!==this._execId||this.flags&P.DISPOSED){if(typeof s=="function")try{s()}catch(i){this._handleExecutionError(i,T.EFFECT_CLEANUP_FAILED)}return}typeof s=="function"&&(this._cleanup=s)},s=>t===this._execId&&this._handleExecutionError(s))}_finalizeDependencies(e,t,s){if(this._nextLinks=null,e){if(this._parkedUnsubs)for(const i of this._parkedUnsubs.values())i();t!==F&&X.release(t)}else this._releaseLinks(s),X.release(s);this._parkedUnsubs=null}_releaseLinks(e){if(e!==F){for(let t=0,s=e.length;t<s;t++)e[t]?.unsub?.();X.release(e)}}_isDirty(){const e=this._links,t=$.current;$.current=null;try{for(let s=0,i=e.length;s<i;s++){const r=e[s],o=r.node;if(o.flags&d.IS_COMPUTED)try{o.value}catch{return L&&console.warn(`[atom-effect] Dependency #${o.id} threw during dirty check`),!0}if(o.version!==r.version)return!0}return!1}finally{$.current=t}}_execCleanup(){if(this._cleanup){try{this._cleanup()}catch(e){this._handleExecutionError(e,T.EFFECT_CLEANUP_FAILED)}this._cleanup=null}}_checkInfiniteLoops(){const e=ve;if(this._lastFlushEpoch!==e&&(this._lastFlushEpoch=e,this._executionsInEpoch=0),++this._executionsInEpoch>this._maxExecutionsPerFlush&&this._throwInfiniteLoopError("per-effect"),ft()>q.MAX_EXECUTIONS_PER_FLUSH&&this._throwInfiniteLoopError("global"),this._executionCount++,this._history){const t=Date.now();this._history[this._historyPtr]=t,this._historyPtr=(this._historyPtr+1)%this._historyCapacity;const s=this._history[this._historyPtr]||0;if(s>0&&t-s<st.ONE_SECOND_MS){const i=new Y(T.EFFECT_FREQUENCY_LIMIT_EXCEEDED);if(this.dispose(),this._handleExecutionError(i),L)throw i}}}get isDisposed(){return(this.flags&P.DISPOSED)!==0}get executionCount(){return this._executionCount}get isExecuting(){return(this.flags&P.EXECUTING)!==0}_throwInfiniteLoopError(e){const t=new Y(`Infinite loop detected (${e}): effect executed ${this._executionsInEpoch} times in current flush. Total executions in flush: ${Re}`);throw this.dispose(),console.error(t),t}_handleExecutionError(e,t=T.EFFECT_EXECUTION_FAILED){const s=Z(e,Y,t);if(console.error(s),this._onError)try{this._onError(s)}catch(i){console.error(Z(i,Y,T.CALLBACK_ERROR_IN_ERROR_HANDLER))}}_checkLoopWarnings(){if(this._trackModifications&&W.enabled){const e=this._currentEpoch,t=this._links;for(let s=0,i=t.length;s<i;s++){const r=t[s].node;r._modifiedAtEpoch===e&&W.warn(!0,`Effect is reading a dependency (${W.getDebugName(r)||"unknown"}) that it just modified. Infinite loop may occur`)}}}}function B(n,e={}){if(typeof n!="function")throw new Y(T.EFFECT_MUST_BE_FUNCTION);const t=new mt(n,e);return t.execute(),t}function be(n){if(typeof n!="function")throw new TypeError("Batch callback must be a function");re.startBatch();try{return n()}finally{re.endBatch()}}function yt(n){return n!==null&&typeof n=="object"&&"value"in n&&"subscribe"in n}function Ce(n){if(!n)return"unknown";const e="jquery"in n?n[0]:n;if(!e)return"unknown";const t=e.id;if(t&&typeof t=="string")return`#${t}`;const s=e.tagName.toLowerCase(),i=e.classList;if(i&&i.length>0){let r=s;for(let o=0,c=i.length;o<c;o++){const a=i[o];a&&(r+=`.${a}`)}return r}return s}function se(n){let e=String(n??"");e=e.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,""),e=e.replace(/<\?[\s\S]*?\?>/g,"");const t=/(<(script|iframe|object|embed|base|meta|applet|noscript)\b[^>]*>([\s\S]*?)<\/\2>|<(script|iframe|object|embed|base|meta|applet|noscript)\b[^>]*\/?>)/gim;let s;do s=e,e=e.replace(t,"");while(e!==s);const i=/(j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t|v\s*b\s*s\s*c\s*r\s*i\s*p\s*t)\s*:/gi;e=e.replace(i,"data-unsafe-protocol:");const r=/data\s*:\s*(?:text\/html|application\/javascript|text\/javascript|text\/vbscript|text\/xml|application\/xhtml\+xml)/gim;return e=e.replace(r,"data-unsafe-protocol:"),e=e.replace(/\bon\w+\s*=/gim,"data-unsafe-attr="),e=e.replace(/expression\s*\(/gim,"data-unsafe-css(").replace(/behavior\s*:/gim,"data-unsafe-css:"),e}const bt=new Set(["href","src","action","formaction","xlink:href","data","poster","srcset","background","cite","longdesc","profile","usemap","classid","codebase"]),Ct=/^\s*(?:javascript|vbscript)\s*:/i;function Ze(n,e){return bt.has(n.toLowerCase())?Ct.test(e):!1}function Oe(n){return n.toLowerCase().includes("url(")?/url\s*\(\s*(?:["']?\s*)?(?:javascript|vbscript)\s*:/i.test(n):!1}function St(n){const e=n.length;if(e===0)return new Int32Array(0);const t=new Int32Array(e),s=new Int32Array(e);let i=0;for(let o=0;o<e;o++){const c=n[o];if(c===void 0||c===-1)continue;const a=i>0?s[i-1]:void 0;if(i===0||a!==void 0&&(n[a]??-1)<c){t[o]=a??-1,s[i++]=o;continue}let _=0,g=i-1;for(;_<g;){const S=_+g>>>1,O=s[S];O!==void 0&&(n[O]??-1)<c?_=S+1:g=S}const v=s[_];v!==void 0&&c<(n[v]??Number.MAX_SAFE_INTEGER)&&(_>0&&(t[o]=s[_-1]??-1),s[_]=o)}const r=new Int32Array(i);if(i>0){let o=s[i-1];for(let c=i-1;c>=0&&o!==void 0&&o!==-1;c--)r[c]=o,o=t[o]}return r}function It(){if(typeof window<"u"){const n=window.__ATOM_DEBUG__;if(typeof n=="boolean")return n}try{if(typeof process<"u"&&process.env?.NODE_ENV==="development")return!0}catch{}return!1}let G=It();const b={get enabled(){return G},set enabled(n){G=n},log(n,...e){G&&console.log(`[atom-effect-jquery] ${n}:`,...e)},atomChanged(n,e,t){G&&console.log(`[atom-effect-jquery] Atom "${n??"anonymous"}" changed:`,e,"→",t)},domUpdated(n,e,t){G&&(console.log(`[atom-effect-jquery] DOM updated: ${Ce(n)}.${e} =`,t),Dt(n))},cleanup(n){G&&console.log(`[atom-effect-jquery] Cleanup: ${n}`)},warn(...n){G&&console.warn("[atom-effect-jquery]",...n)}},Ie=new WeakMap;function Dt(n){const e="jquery"in n?n[0]:n;if(!e||!e.isConnected)return;let t=Ie.get(e);if(t||(t={},Ie.set(e,t)),t.timer&&clearTimeout(t.timer),t.cleanupTimer&&clearTimeout(t.cleanupTimer),!t.orgStyle){const i=e.style;t.orgStyle={outline:i.outline,outlineOffset:i.outlineOffset,transition:i.transition}}const s=e.style;s.outline="2px solid rgba(255, 68, 68, 0.8)",s.outlineOffset="1px",s.transition="none",t.timer=setTimeout(()=>{e.isConnected&&(s.transition="outline 0.5s ease-out",requestAnimationFrame(()=>{if(!e.isConnected)return;const i=t?.orgStyle;i&&(s.outline=i.outline,s.outlineOffset=i.outlineOffset),t.cleanupTimer=setTimeout(()=>{e.isConnected&&t?.orgStyle&&(s.transition=t.orgStyle.transition),Ie.delete(e)},500)}))},100)}const Tt=new WeakMap;function et(n,e={}){const t=Ne(n,e);return e.name&&Tt.set(t,{name:e.name}),t}Object.defineProperty(et,"debug",{get(){return b.enabled},set(n){b.enabled=n}});function vt(){return new Promise(n=>setTimeout(n,0))}l.extend({atom:et,computed:Je,effect:B,batch:be,untracked:Ge,isAtom:ke,isComputed:Me,isReactive:n=>ke(n)||Me(n),nextTick:vt});const he="_aes-bound";class kt{records=new WeakMap;boundElements=new WeakSet;preservedNodes=new WeakSet;ignoredNodes=new WeakSet;keep(e){this.preservedNodes.add(e)}isKept(e){return this.preservedNodes.has(e)}markIgnored(e){this.ignoredNodes.add(e)}isIgnored(e){return this.ignoredNodes.has(e)}_getOrCreateRecord(e){let t=this.records.get(e);return t||(t={},this.records.set(e,t),this.boundElements.has(e)||(this.boundElements.add(e),e.classList.add(he))),t}trackEffect(e,t){const s=this._getOrCreateRecord(e);s.effects||(s.effects=[]),s.effects.push(t)}trackCleanup(e,t){const s=this._getOrCreateRecord(e);s.cleanups||(s.cleanups=[]),s.cleanups.push(t)}hasBind(e){return this.boundElements.has(e)}cleanup(e){if(!this.boundElements.delete(e))return;const t=this.records.get(e);if(!t)return;this.records.delete(e),this.preservedNodes.delete(e),this.ignoredNodes.delete(e),e.classList.remove(he),b.enabled&&b.cleanup(Ce(e));const s=t.effects;if(s)for(let r=0,o=s.length;r<o;r++)try{s[r]?.dispose()}catch(c){b.warn("Effect dispose error:",c)}const i=t.cleanups;if(i)for(let r=0,o=i.length;r<o;r++)try{i[r]?.()}catch(c){b.warn("Cleanup error:",c)}}cleanupDescendants(e){const t=e.querySelectorAll(`.${he}`);for(let s=0,i=t.length;s<i;s++){const r=t[s];r&&this.boundElements.has(r)?this.cleanup(r):r&&r.classList.remove(he)}}cleanupTree(e){this.cleanupDescendants(e),this.cleanup(e)}}const y=new kt;let ie=null;function tt(n=document.body){ie||(ie=new MutationObserver(e=>{for(let t=0,s=e.length;t<s;t++){const i=e[t]?.removedNodes;if(!i)continue;const r=i.length;if(r!==0)for(let o=0;o<r;o++){const c=i[o];c.nodeType===1&&(c.isConnected||y.isKept(c)||y.isIgnored(c)||y.cleanupTree(c))}}}),ie.observe(n,{childList:!0,subtree:!0}))}function Ot(){ie?.disconnect(),ie=null}function k(n,e,t,s){yt(e)?y.trackEffect(n,B(()=>{const i=e.value;t(i),b.domUpdated(l(n),s,i)})):(t(e),b.domUpdated(l(n),s,e))}var D=(n=>(n[n.None=0]="None",n[n.Focused=1]="Focused",n[n.Composing=2]="Composing",n[n.SyncingToAtom=4]="SyncingToAtom",n[n.SyncingToDom=8]="SyncingToDom",n[n.Busy=14]="Busy",n))(D||{});function Ae(){return{timeoutId:null,flags:0}}function nt(n,e,t={}){const{debounce:s,event:i="input",parse:r=w=>w,format:o=w=>String(w??""),equal:c=Object.is}=t,a=Ae(),_=n[0],g=()=>{if(!(a.flags&D.Busy)){a.flags|=D.SyncingToAtom;try{const w=_.value,R=r(w);c(e.value,R)||(e.value=R)}finally{a.flags&=~D.SyncingToAtom}}},v=()=>{a.timeoutId&&(clearTimeout(a.timeoutId),a.timeoutId=null,g()),a.flags&=~D.Focused;const w=o(e.value);_.value!==w&&(_.value=w)},S=()=>{a.flags&D.Busy||(s?(a.timeoutId&&clearTimeout(a.timeoutId),a.timeoutId=setTimeout(g,s)):g())},O={compositionstart:()=>{a.flags|=D.Composing},compositionend:()=>{a.flags&=~D.Composing,g()},focus:()=>{a.flags|=D.Focused},blur:v,[i]:S,change:S};return n.on(O),{effect:()=>{const w=e.value,R=o(w),A=_.value;if(A!==R&&!(a.flags&D.Focused&&c(r(A),w))){a.flags|=D.SyncingToDom;try{if(a.flags&D.Focused){const{selectionStart:x,selectionEnd:K}=_;_.value=R;const U=R.length;_.setSelectionRange(Math.min(x??U,U),Math.min(K??U,U))}else _.value=R;b.domUpdated(n,"val",R)}finally{a.flags&=~D.SyncingToDom}}},cleanup:()=>{n.off(O),a.timeoutId&&clearTimeout(a.timeoutId)}}}l.fn.atomText=function(n,e){return this.each(function(){const t=l(this);k(this,n,e?i=>t.text(e(i)):i=>t.text(String(i??"")),"text")})};l.fn.atomHtml=function(n){return this.each(function(){const e=l(this);k(this,n,t=>{const s=String(t??""),i=se(s);i!==s&&console.warn("[atomHtml] Unsafe content neutralized during sanitization."),e.html(i)},"html")})};l.fn.atomClass=function(n,e){return this.each(function(){const t=l(this);k(this,e,s=>t.toggleClass(n,!!s),`class.${n}`)})};l.fn.atomCss=function(n,e,t){return this.each(function(){const s=l(this);k(this,e,r=>{const o=t?`${r}${t}`:r,c=String(o);if(Oe(c)){console.warn(`[atomCss] Blocked dangerous value in "${n}" property.`);return}s.css(n,o)},`css.${n}`)})};l.fn.atomAttr=function(n,e){return/^on/i.test(n)?(console.warn(`[atomAttr] Blocked setting dangerous event handler attribute "${n}".`),this):this.each(function(){const t=l(this);k(this,e,s=>{if(s==null||s===!1){t.removeAttr(n);return}const i=s===!0?n:String(s);if(Ze(n,i)){console.warn(`[atomAttr] Blocked dangerous protocol in "${n}" attribute.`);return}t.attr(n,i)},`attr.${n}`)})};l.fn.atomProp=function(n,e){return["innerHTML","outerHTML"].includes(n)?(console.warn(`[atomProp] Blocked setting dangerous property "${n}". Use atomHtml for sanitized HTML binding.`),this):this.each(function(){const s=l(this);k(this,e,i=>s.prop(n,i),`prop.${n}`)})};l.fn.atomShow=function(n){return this.each(function(){const e=l(this);k(this,n,t=>e.toggle(!!t),"show")})};l.fn.atomHide=function(n){return this.each(function(){const e=l(this);k(this,n,t=>e.toggle(!t),"hide")})};l.fn.atomVal=function(n,e={}){return this.each(function(){const t=this.tagName.toLowerCase();if(!["input","select","textarea"].includes(t)){console.warn(`[atomVal] Element <${t}> is not a valid input element.`);return}const{effect:s,cleanup:i}=nt(l(this),n,e);y.trackEffect(this,B(s)),y.trackCleanup(this,i)})};l.fn.atomChecked=function(n){return this.each(function(){const e=l(this),t=this,s=Ae(),i=()=>{if(s.flags&D.Busy)return;const o=t.checked;n.value!==o&&(n.value=o)};e.on("change",i),y.trackCleanup(this,()=>e.off("change",i));const r=B(()=>{s.flags|=D.SyncingToDom;const o=!!n.value;t.checked!==o&&(t.checked=o,b.domUpdated(e,"checked",o)),s.flags&=~D.SyncingToDom});y.trackEffect(this,r)})};l.fn.atomOn=function(n,e){return this.each(function(){const t=l(this);t.on(n,e),y.trackCleanup(this,()=>t.off(n,e))})};l.fn.atomUnbind=function(){return this.each(function(){y.cleanupTree(this)})};const Be=Object.create(null);function wt(n){let e=Be[n];return e||(e=n.includes("-")?n.replace(/-./g,t=>t[1].toUpperCase()):n,Be[n]=e,e)}function Rt(n,e){const t=n.el;k(t,e,s=>{const i=typeof s=="string"?s:String(s??"");t.textContent!==i&&(t.textContent=i)},"text")}function Nt(n,e){const t=n.el;k(t,e,s=>{const i=String(s??""),r=se(i);r!==i&&console.warn("[atomBind] Unsafe content neutralized during sanitization.");const o=r;t.innerHTML!==o&&(t.innerHTML=o)},"html")}function At(n,e){for(const t in e)k(n.el,e[t],s=>{n.el.classList.toggle(t,!!s)},`class.${t}`)}function Lt(n,e){const t=n.el,s=t.style;for(const i in e){const r=e[i];if(r===void 0)continue;const o=wt(i);Array.isArray(r)?k(t,r[0],c=>{const a=`${c}${r[1]}`;if(Oe(a)){console.warn(`[atomBind] Blocked dangerous value in "${i}" property.`);return}s[o]=a},`css.${i}`):k(t,r,c=>{const a=String(c);if(Oe(a)){console.warn(`[atomBind] Blocked dangerous value in "${i}" property.`);return}s[o]=a},`css.${i}`)}}function xt(n,e){const t=n.el;for(const s in e){if(/^on/i.test(s)){console.warn(`[atomBind] Blocked setting dangerous event handler attribute "${s}".`);continue}k(t,e[s],i=>{if(i==null||i===!1){t.removeAttribute(s);return}const r=i===!0?s:String(i);if(Ze(s,r)){console.warn(`[atomBind] Blocked dangerous protocol in "${s}" attribute.`);return}t.getAttribute(s)!==r&&t.setAttribute(s,r)},`attr.${s}`)}}const Ut=["innerHTML","outerHTML"];function Pt(n,e){const t=n.el;for(const s in e){if(Ut.includes(s)){console.warn(`[atomBind] Blocked setting dangerous property "${s}". Use html binding for sanitized HTML.`);continue}k(n.el,e[s],i=>{t[s]!==i&&(t[s]=i)},`prop.${s}`)}}function Ft(n,e){const t=n.el;k(t,e,s=>{t.style.display=s?"":"none",b.enabled&&b.domUpdated(t,"show",s)},"show")}function Mt(n,e){const t=n.el;k(t,e,s=>{t.style.display=s?"none":"",b.enabled&&b.domUpdated(t,"hide",s)},"hide")}function $t(n,e){const t=n.el.tagName.toLowerCase();if(!["input","select","textarea"].includes(t)){console.warn(`[atomBind] Val binding used on non-input element <${t}>.`);return}const s=Array.isArray(e),{effect:i,cleanup:r}=nt(n.$el,s?e[0]:e,s?e[1]:{});y.trackEffect(n.el,B(i)),n.trackCleanup(r)}function Bt(n,e){const t=n.el,s=Ae(),i=()=>{if(s.flags&D.Busy)return;const o=t.checked;e.value!==o&&(e.value=o)};t.addEventListener("change",i),n.trackCleanup(()=>t.removeEventListener("change",i));const r=B(()=>{s.flags|=D.SyncingToDom;const o=!!e.value;t.checked!==o&&(t.checked=o,b.enabled&&b.domUpdated(t,"checked",o)),s.flags&=~D.SyncingToDom});y.trackEffect(t,r)}function Vt(n,e){for(const t in e){const s=e[t];if(typeof s!="function")continue;const i=r=>{be(()=>s.call(n.el,l.Event(r.type,{originalEvent:r})))};n.el.addEventListener(t,i),n.trackCleanup(()=>n.el.removeEventListener(t,i))}}l.fn.atomBind=function(n){return this.each(function(){const e=this;let t=null;const s={get $el(){return t||(t=l(e)),t},el:e,trackCleanup:i=>y.trackCleanup(e,i)};n.text!==void 0&&Rt(s,n.text),n.html!==void 0&&Nt(s,n.html),n.class&&At(s,n.class),n.css&&Lt(s,n.css),n.attr&&xt(s,n.attr),n.prop&&Pt(s,n.prop),n.show!==void 0&&Ft(s,n.show),n.hide!==void 0&&Mt(s,n.hide),n.val!==void 0&&$t(s,n.val),n.checked!==void 0&&Bt(s,n.checked),n.on&&Vt(s,n.on)})};l.fn.atomList=function(n,e){const{key:t,render:s,bind:i,update:r,onAdd:o,onRemove:c,empty:a}=e,_=typeof t=="function"?t:(g,v)=>g[t];return this.each(function(){const g=l(this),v=Ce(this),S=new Map,O=new Set;let N=[],M=null;const w=B(()=>{const R=n.value,A=R.length;if(A===0){if(a&&!M){const u=typeof a=="string"?se(a):a;M=l(u).appendTo(g)}}else M&&(M.remove(),M=null);if(A===0&&S.size===0){N=[];return}b.log("list",`${v} updating with ${A} items`);const x=new Map,K=N.length;for(let u=0;u<K;u++)x.set(N[u],u);const U=new Array(A),J=new Set,ae=new Int32Array(A);for(let u=0;u<A;u++){const E=R[u],f=_(E,u);J.has(f)&&console.warn(`[atomList] Duplicate key "${f}" at index ${u}.`),U[u]=f,J.add(f),ae[u]=x.get(f)??-1}if(S.size>0)for(const[u,E]of S){if(J.has(u)||O.has(u))continue;const f=()=>{E.$el.remove(),E.$el[0]&&y.cleanup(E.$el[0]),O.delete(u),b.log("list",`${v} removed item:`,u)};if(S.delete(u),O.add(u),c){const p=c(E.$el);p instanceof Promise?p.then(f):f()}else f()}if(A===0){N=[];return}const te=St(ae);let ne=te.length-1,h=null;for(let u=A-1;u>=0;u--){const E=U[u],f=R[u],p=S.get(E);if(p){const I=p.item;p.item=f;const C=p.$el[0];if(!C)continue;if(r)r(p.$el,f,u),b.domUpdated(p.$el,"list.update",f);else if(I!==f){let m=!0;if(typeof I=="object"&&I!==null&&typeof f=="object"&&f!==null){m=!1;let Q=0;const ue=I,V=f;for(const j in ue){if(ue[j]!==V[j]){m=!0;break}Q++}if(!m){let j=0;for(const zt in V)if(j++,j>Q){m=!0;break}Q!==j&&(m=!0)}}if(m){const Q=s(f,u),ue=typeof Q=="string"?se(Q):Q,V=l(ue),j=h===C;p.$el.replaceWith(V),p.$el=V,i&&i(V,f,u),b.domUpdated(V,"list.render",f),j&&(h=V[0]||null)}}if(ne>=0&&te[ne]===u)ne--;else{const m=p.$el[0];h?.isConnected?h!==m&&p.$el.insertBefore(h):p.$el.appendTo(g)}h=p.$el[0]||null}else{const I=s(f,u),C=typeof I=="string"?se(I):I,m=l(C);S.set(E,{$el:m,item:f}),h?.isConnected?m.insertBefore(h):m.appendTo(g),i&&i(m,f,u),o&&o(m),b.domUpdated(m,"list.add",f),h=m[0]||null}}N=U});y.trackEffect(this,w),y.trackCleanup(this,()=>{S.clear(),O.clear(),N=[],M?.remove()})})};const pe=new WeakMap;l.fn.atomMount=function(n,e={}){return this.each(function(){const t=b.enabled,s=t?Ce(this):"",i=pe.get(this);i&&(t&&b.log("mount",`${s} unmounting existing component`),i()),t&&b.log("mount",`${s} mounting component`);let r;try{r=n(l(this),e)}catch(c){console.error("[atom-effect-jquery] Mount error:",c);return}const o=()=>{if(pe.delete(this)){if(t&&b.log("mount",`${s} full cleanup`),typeof r=="function")try{r()}catch(c){console.error("[atom-effect-jquery] Cleanup error:",c)}y.cleanupTree(this)}};pe.set(this,o),y.trackCleanup(this,o)})};l.fn.atomUnmount=function(){return this.each(function(){const n=pe.get(this);n&&n()})};const fe="[$.route]";function jt(n){const{target:e,default:t,routes:s,notFound:i,autoBindLinks:r=!1,activeClass:o="active",beforeTransition:c,afterTransition:a}=n;let _=!1,g=null,v=window.location.hash;const S=[],O=new Set,N=l(e),M=()=>{const h=window.location.hash,u=h.indexOf("?");return(u===-1?h.substring(1):h.substring(1,u))||t},w=h=>{const u=h.indexOf("?");if(u===-1)return{};const E={},f=h.length;let p=u+1;const I=C=>{try{return decodeURIComponent(C)}catch{return console.warn(`${fe} Malformed URI component: ${C}`),C}};for(;p<f;){let C=h.indexOf("&",p);if(C===-1&&(C=f),C>p){const m=h.indexOf("=",p);m!==-1&&m<C?E[I(h.substring(p,m))]=I(h.substring(m+1,C)):E[I(h.substring(p,C))]=""}p=C+1}return E},R=h=>{let u=s[h];return!u&&i&&(u=s[i]),u||(console.warn(`${fe} Route "${h}" not found and no notFound route configured`),null)},A=h=>{const u=document.querySelector(h);if(!u?.content)return console.warn(`${fe} Template "${h}" not found`),!1;const E=u.content.cloneNode(!0);return N.append(E),!0},x=Ne(M()),K=h=>{if(_)return;const u=N[0];if(!u){console.warn(`${fe} Target element "${e}" not found`);return}const E=R(h);if(!E)return;const f=w(window.location.hash);c&&c(g||h,h),N.empty();let p=f;if(E.onEnter){const I=E.onEnter(f);I!==void 0&&(p={...f,...I})}E.render?E.render(u,h,p):E.template&&A(E.template),a&&a(g||h,h),g=h},U=h=>{if(_)return;const u=x.value,E=s[u];E?.onLeave&&E.onLeave()===!1||(v=`#${h}`,window.location.hash=v,x.value=h)},J=()=>{if(_)return;const h=window.location.hash;if(h===v)return;const u=M(),E=x.value;if(E!==u){const f=s[E];if(f?.onLeave&&f.onLeave()===!1){window.location.hash=v;return}x.value=u}else K(u);v=h},ae=()=>{if(!r)return;const h=f=>{f.preventDefault();const p=l(f.currentTarget).data("route");U(p)};l(document).on("click","[data-route]",h),S.push(()=>{l(document).off("click","[data-route]",h)});const u=f=>{if(O.has(f))return;const p=l(f),I=p.data("route");O.add(f);const C=B(()=>{const m=x.value===I;p.toggleClass(o,m),m?p.attr("aria-current","page"):p.removeAttr("aria-current")});y.trackEffect(f,C),y.trackCleanup(f,()=>{O.delete(f)})};l("[data-route]").each(function(){u(this)});const E=new MutationObserver(f=>{for(const p of f)p.type==="childList"&&p.addedNodes.forEach(I=>{if(I.nodeType===1){const C=I;C.matches?.("[data-route]")&&u(C),C.querySelectorAll&&C.querySelectorAll("[data-route]").forEach(m=>u(m))}})});E.observe(document.body,{childList:!0,subtree:!0}),S.push(()=>E.disconnect())},te=()=>{_||(_=!0,S.forEach(h=>h()),S.length=0,O.forEach(h=>y.cleanup(h)),O.clear())};window.addEventListener("hashchange",J),S.push(()=>window.removeEventListener("hashchange",J));const ne=B(()=>{K(x.value)});return S.push(()=>ne.dispose()),ae(),N[0]&&y.trackCleanup(N[0],te),{currentRoute:x,navigate:U,destroy:te}}l.extend({route:jt});const ge=new WeakMap;let Ve=!1;const je=n=>{let e=ge.get(n);return e||(e=function(...t){return be(()=>n.apply(this,t))},ge.set(n,e)),e};function Le(){if(Ve)return;Ve=!0;const n=l.fn.on,e=l.fn.off,t=l.fn.remove,s=l.fn.empty,i=l.fn.detach;l.fn.remove=function(r){const o=r?this.filter(r):this;for(let c=0,a=o.length;c<a;c++){const _=o[c];_&&(y.cleanupTree(_),y.markIgnored(_))}return t.call(this,r)},l.fn.empty=function(){for(let r=0,o=this.length;r<o;r++){const c=this[r];c&&y.cleanupDescendants(c)}return s.call(this)},l.fn.detach=function(r){const o=r?this.filter(r):this;for(let c=0,a=o.length;c<a;c++){const _=o[c];_&&y.keep(_)}return i.call(this,r)},l.fn.on=function(...r){const o=r[0];if(o&&typeof o=="object"){const c=o,a={};for(const _ in c){const g=c[_];g&&(a[_]=je(g))}r[0]=a}else for(let c=r.length-1;c>=0;c--)if(typeof r[c]=="function"){r[c]=je(r[c]);break}return n.apply(this,r)},l.fn.off=function(...r){const o=r[0];if(o&&typeof o=="object"){const c=o,a={};for(const _ in c){const g=c[_];g&&(a[_]=ge.get(g)||g)}r[0]=a}else for(let c=r.length-1;c>=0;c--)if(typeof r[c]=="function"){r[c]=ge.get(r[c])||r[c];break}return e.apply(this,r)}}const Ht=Le;Le();l(()=>{tt(document.body)});exports.default=l;exports.atom=Ne;exports.batch=be;exports.computed=Je;exports.disableAutoCleanup=Ot;exports.effect=B;exports.enableAutoCleanup=tt;exports.enablejQueryBatching=Ht;exports.enablejQueryOverrides=Le;exports.registry=y;exports.untracked=Ge;
2
2
  //# sourceMappingURL=index.cjs.map