@but212/atom-effect-jquery 0.30.0 → 0.31.0

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/README.md CHANGED
@@ -20,7 +20,18 @@ npm install @but212/atom-effect-jquery jquery
20
20
  <!-- jquery -->
21
21
  <script src="https://code.jquery.com/jquery-4.0.0.min.js"></script>
22
22
  <!-- atom-effect-jquery -->
23
- <script src="https://cdn.jsdelivr.net/npm/@but212/atom-effect-jquery@0.30.0"></script>
23
+ <script src="https://cdn.jsdelivr.net/npm/@but212/atom-effect-jquery@0.31.0"></script>
24
+
25
+ <script>
26
+ /*
27
+ * CDN Usage Notes:
28
+ * 1. The library is exposed via the global `AtomEffectJQuery` namespace.
29
+ * 2. It automatically extends jQuery ($), so methods like $.atom() are available.
30
+ * 3. Manual cleanup initialization: If the library is loaded dynamically,
31
+ * ensure auto-cleanup is enabled for the target container.
32
+ */
33
+ AtomEffectJQuery.enableAutoCleanup(document.body);
34
+ </script>
24
35
  ```
25
36
 
26
37
  ### Usage
@@ -1,11 +1,6 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`jquery`)):typeof define==`function`&&define.amd?define([`exports`,`jquery`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.AtomEffectJQuery={},e.jQuery))})(this,function(e,t){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=a(t),l=0,u=c.length,d;l<u;l++)d=c[l],!s.call(e,d)&&d!==n&&r(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(o=i(t,d))||o.enumerable});return e};t=((e,t,i)=>(i=e==null?{}:n(o(e)),c(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)))(t,1);var l={DISPOSED:1,IS_COMPUTED:2,DIRTY:256,RECOMPUTING:512,HAS_ERROR:1024,FORCE_COMPUTE:2048,IDLE:65536,PENDING:131072,RESOLVED:262144,REJECTED:524288,ATOM_SYNC:16777216,ATOM_NOTIFICATION_SCHEDULED:33554432,EFFECT_EXECUTING:268435456};Object.freeze({ASYNC_STATE:l.IDLE|l.PENDING|l.RESOLVED|l.REJECTED,COMPUTED_DIRTY_MASK:l.DIRTY|l.RECOMPUTING|l.FORCE_COMPUTE});var u=Object.freeze({IDLE:`idle`,PENDING:`pending`,RESOLVED:`resolved`,REJECTED:`rejected`}),d=Object.freeze({DISPOSED:l.DISPOSED,EXECUTING:l.EFFECT_EXECUTING}),f=Object.freeze({DISPOSED:l.DISPOSED,IS_COMPUTED:l.IS_COMPUTED,DIRTY:l.DIRTY,IDLE:l.IDLE,PENDING:l.PENDING,RESOLVED:l.RESOLVED,REJECTED:l.REJECTED,RECOMPUTING:l.RECOMPUTING,HAS_ERROR:l.HAS_ERROR,FORCE_COMPUTE:l.FORCE_COMPUTE}),p=Object.freeze({DISPOSED:l.DISPOSED,SYNC:l.ATOM_SYNC,NOTIFICATION_SCHEDULED:l.ATOM_NOTIFICATION_SCHEDULED}),m=Object.freeze({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}),h=1073741823,g=Object.freeze({WARN_INFINITE_LOOP:!0,EFFECT_FREQUENCY_WINDOW:1e3,LOOP_THRESHOLD:100}),ee=Object.freeze({MAX_PROMISE_ID:h}),_=Object.freeze({UNINITIALIZED:-1,MIN:1}),v=!1;try{v=!!(typeof globalThis<`u`&&globalThis.__ATOM_DEBUG__||typeof sessionStorage<`u`&&sessionStorage.getItem(`__ATOM_DEBUG__`)===`true`)}catch{}var y=(typeof process<`u`&&process.env,typeof __DEV__<`u`&&!!__DEV__||v),b=Object.freeze([]),x=class e extends Error{constructor(e,t=null,n=!0,r){super(e),this.cause=t,this.recoverable=n,this.code=r,this.name=`AtomError`,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}getChain(){if(this.cause===null||this.cause===void 0)return[this];let t=[this],n=new Set([this]),r=this.cause;for(;r!=null;){let i=n.has(r);if(t.push(r),i)break;if(n.add(r),r instanceof e)r=r.cause;else if(r instanceof Error&&`cause`in r)r=r.cause;else break}return t}toJSON(t=new Set){if(t.has(this))return{name:this.name,message:`[Circular Reference]`,recoverable:this.recoverable,code:this.code};t.add(this);let n=this.cause;return this.cause instanceof e?n=this.cause.toJSON(t):this.cause instanceof Error&&(n={name:this.cause.name,message:this.cause.message,stack:this.cause.stack,cause:this.cause.cause}),{name:this.name,message:this.message,code:this.code,recoverable:this.recoverable,stack:this.stack,cause:n}}static format(e,t,n){return`${e} (${t}): ${n}`}},S=class extends x{constructor(...e){super(...e),this.name=`ComputedError`}},C=class extends x{constructor(e,t=null,n=!1,r){super(e,t,n,r),this.name=`EffectError`}},w=class extends x{constructor(e,t=null,n=!1,r){super(e,t,n,r),this.name=`SchedulerError`}},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:(e,t)=>`Maximum flush iterations (${e}) exceeded. ${t} 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.`,SCHEDULER_CALLBACK_MUST_BE_FUNCTION:`Scheduler callback must be a function`,SCHEDULER_END_BATCH_WITHOUT_START:`endBatch() called without matching startBatch(). Ignoring.`,BATCH_CALLBACK_MUST_BE_FUNCTION:`Batch callback must be a function`};function E(e,t,n){if(e instanceof x)return new t(x.format(e.name,n,e.message),e,e.recoverable,e.code);if(e instanceof Error){let r=e.name||e.constructor.name||`Error`;return new t(x.format(r,n,e.message),e)}return new t(x.format(`Unexpected error`,n,String(e)),e)}var te=Symbol(`AtomEffect.DebugName`),ne=Symbol(`AtomEffect.Id`),re=Symbol(`AtomEffect.Type`),ie=Symbol(`AtomEffect.NoDefaultValue`),ae=`[Atom Effect]`,D=y?new class{constructor(){this.enabled=!0,this.warnInfiniteLoop=g.WARN_INFINITE_LOOP,this._updateCounts=new Map,this._nodeRegistry=new Map,this._threshold=g.LOOP_THRESHOLD,this._cleanupScheduled=!1,this.warn=(e,t)=>{this.enabled&&e&&console.warn(`${ae} ${t}`)},this.registerNode=e=>{this._nodeRegistry.set(e.id,new WeakRef(e))},this.attachDebugInfo=(e,t,n,r)=>{this.enabled&&(Object.defineProperties(e,{[te]:{value:r??`${t}_${n}`,configurable:!0},[ne]:{value:n,configurable:!0},[re]:{value:t,configurable:!0}}),this.registerNode(e))},this.trackUpdate=(e,t)=>{if(!this.enabled||!this.warnInfiniteLoop)return;let n=this._updateCounts,r=(n.get(e)??0)+1;r>this._threshold?this.warn(!0,`Infinite loop detected for ${t??`dependency ${e}`}. Over ${this._threshold} updates in a single execution scope.`):n.set(e,r),this._cleanupScheduled||(this._cleanupScheduled=!0,Promise.resolve().then(()=>{this._updateCounts.clear(),this._cleanupScheduled=!1}))},this.dumpGraph=()=>{let e=[];for(let[t,n]of this._nodeRegistry){let r=n.deref();r?e.push({id:t,name:this.getDebugName(r),type:this.getDebugType(r),updateCount:this._updateCounts.get(t)??0}):(this._nodeRegistry.delete(t),this._updateCounts.delete(t))}return e},this.getDebugName=e=>{if(e)return e[te]},this.getDebugType=e=>{if(e)return e[re]}}}:{enabled:!1,warnInfiniteLoop:!1,warn:()=>{},registerNode:()=>{},attachDebugInfo:()=>{},trackUpdate:()=>{},dumpGraph:()=>[],getDebugName:()=>{},getDebugType:()=>{}},oe=1,se=()=>oe++|0,ce=class{constructor(){this._s0=null,this._s1=null,this._s2=null,this._s3=null,this._count=0,this._actualCount=0,this._overflow=null,this._freeIndices=null}_rawWrite(e,t){if(e<4)e===0?this._s0=t:e===1?this._s1=t:e===2?this._s2=t:this._s3=t;else{this._overflow===null&&(this._overflow=[]);let n=this._overflow,r=e-4;n[r]=t}}_rawAdd(e){if(this._s0===null)return this._s0=e,0;if(this._s1===null)return this._s1=e,1;if(this._s2===null)return this._s2=e,2;if(this._s3===null)return this._s3=e,3;this._overflow===null&&(this._overflow=[]);let t=this._overflow,n=this._freeIndices;if(n!==null&&n.length>0){let r=n.pop();return t[r]=e,r+4}return t.push(e),4+t.length-1}_rawSwap(e,t){if(e===t)return;let n=this.getAt(e),r=this.getAt(t);this._rawWrite(e,r),this._rawWrite(t,n)}get size(){return this._actualCount}get physicalSize(){return this._count}getAt(e){return e<4?e===0?this._s0:e===1?this._s1:e===2?this._s2:this._s3:this._overflow?.[e-4]??null}setAt(e,t){let n=this.getAt(e);n!==t&&(this._rawWrite(e,t),n===null?this._actualCount++:t===null&&this._actualCount--,t!==null&&e>=this._count?this._count=e+1:t===null&&this._shrinkPhysicalSizeFrom(e))}_shrinkPhysicalSizeFrom(e){if(e===this._count-1)for(this._count--;this._count>0&&this.getAt(this._count-1)==null;)this._count--}truncateFrom(e){e<=3&&(e<=0&&this._s0!==null&&(this._onItemRemoved(this._s0),this._s0=null,this._actualCount--),e<=1&&this._s1!==null&&(this._onItemRemoved(this._s1),this._s1=null,this._actualCount--),e<=2&&this._s2!==null&&(this._onItemRemoved(this._s2),this._s2=null,this._actualCount--),e<=3&&this._s3!==null&&(this._onItemRemoved(this._s3),this._s3=null,this._actualCount--));let t=this._overflow;if(t!==null){let n=e>4?e-4:0,r=t.length;for(let e=n;e<r;e++){let n=t[e];n!=null&&(this._onItemRemoved(n),t[e]=null,this._actualCount--)}e<=4?this._overflow=null:t.length=e-4}this._count=e,this._actualCount<0&&(this._actualCount=0),this._freeIndices=null}_onItemRemoved(e){}add(e){let t=this._rawAdd(e);return t>=this._count&&(this._count=t+1),this._actualCount++,t}remove(e){let t=-1;if(this._s0===e)t=0;else if(this._s1===e)t=1;else if(this._s2===e)t=2;else if(this._s3===e)t=3;else{let n=this._overflow;n!==null&&(t=n.indexOf(e),t!==-1&&(t+=4))}return t===-1?!1:(this._rawWrite(t,null),this._shrinkPhysicalSizeFrom(t),this._actualCount--,t>=4&&(this._freeIndices===null&&(this._freeIndices=[]),this._freeIndices.push(t-4)),!0)}has(e){if(this._actualCount===0)return!1;if(this._s0===e||this._s1===e||this._s2===e||this._s3===e)return!0;let t=this._overflow;return t===null?!1:t.indexOf(e)!==-1}forEach(e){let t=this._actualCount;if(t===0)return;if(t===this._count){this._s0!=null&&e(this._s0),this._s1!=null&&e(this._s1),this._s2!=null&&e(this._s2),this._s3!=null&&e(this._s3);let t=this._overflow;if(t!==null)for(let n=0,r=t.length;n<r;n++){let r=t[n];r!=null&&e(r)}return}let n=0,r=this._count;for(let i=0;i<r;i++){let r=this.getAt(i);if(r!=null&&(e(r),++n>=t))break}}compact(){if(this._actualCount===this._count)return;let e=0,t=this._count;for(let n=0;n<t;n++){let t=this.getAt(n);t!=null&&(n!==e&&(this._rawWrite(e,t),this._rawWrite(n,null)),e++)}this._count=this._actualCount,this._overflow!==null&&(e<=4?this._overflow=null:this._overflow.length=e-4),this._freeIndices=null}clear(){this._s0=this._s1=this._s2=this._s3=null,this._count=0,this._actualCount=0,this._overflow=null,this._freeIndices=null}dispose(){this.clear()}},le=class extends ce{constructor(...e){super(...e),this._map=null,this._SCAN_THRESHOLD=32,this.hasComputeds=!1}prepareTracking(){this.hasComputeds=!1}_onItemRemoved(e){e.unsub?.()}setAt(e,t){let n=this.getAt(e);super.setAt(e,t),this._map!==null&&(n?.unsub&&this._map.delete(n.node),t?.unsub&&this._map.set(t.node,e))}claimExisting(e,t){let n=this._count;if(n<=t)return!1;let r=this.getAt(t);if(r&&r.node===e&&r.unsub)return r.version=e.version,!0;if(this._map!==null||n-t>this._SCAN_THRESHOLD)return this._claimViaMap(e,t);for(let r=t+1;r<n;r++){let n=this.getAt(r);if(n&&n.node===e&&n.unsub)return n.version=e.version,this._rawSwap(r,t),!0}return!1}_claimViaMap(e,t){this._map===null&&(this._map=this._initMap());let n=this._map,r=n.get(e);if(r===void 0||r<t)return!1;let i=this.getAt(r);if(i==null||!i.unsub)return!1;if(i.version=e.version,r!==t){let i=this.getAt(t);this._rawSwap(r,t),n.set(e,t),i?.unsub&&n.set(i.node,r)}return!0}_initMap(){let e=new Map;for(let t=0;t<this._count;t++){let n=this.getAt(t);n?.unsub&&e.set(n.node,t)}return e}insertNew(e,t){let n=this.getAt(e);if(n!==null){let e=this._rawAdd(n);e>=this._count&&(this._count=e+1),this._map!==null&&n.unsub&&this._map.set(n.node,e)}this._rawWrite(e,t),e>=this._count&&(this._count=e+1),this._actualCount++,this._map!==null&&t.unsub&&this._map.set(t.node,e)}add(e){let t=super.add(e);return this._map!==null&&e.unsub&&this._map.set(e.node,t),t}remove(e){throw Error(`remove() prohibited`)}compact(){}truncateFrom(e){super.truncateFrom(e),this._map!==null&&(this._map=null)}disposeAll(){this.truncateFrom(0),this.hasComputeds=!1}},ue=Symbol.for(`atom-effect/brand`),O={Atom:1,Writable:2,Computed:4,Effect:8};function de(e,t){if(!e)return!1;let n=typeof e;return(n===`object`||n===`function`)&&!!((e[ue]??0)&t)}function fe(e){return de(e,O.Atom)}function pe(e){return de(e,O.Computed)}function me(e){if(e instanceof Promise)return!0;if(!e)return!1;let t=typeof e;return(t===`object`||t===`function`)&&typeof e.then==`function`}var he=class{constructor(e,t,n=void 0){this.node=e,this.version=t,this.unsub=n}},ge=class{constructor(e=void 0,t=void 0){this.fn=e,this.sub=t}notify(e,t){A(()=>{let n=this.fn;n!==void 0&&n(e,t);let r=this.sub;r!==void 0&&r.execute()})}},k=new class{constructor(){this.current=null}run(e,t){if(this.current===e)return t();let n=this.current;this.current=e;try{let e=t();return y&&D.warn(me(e),`Detected Promise returned within tracking context. Dependencies accessed after "await" will NOT be tracked. Consider using synchronous tracking before the async boundary.`),e}finally{this.current=n}}};function A(e){let t=k,n=t.current;if(n===null)return e();t.current=null;try{return e()}finally{t.current=n}}var _e=class{constructor(){this.flags=0,this.version=0,this._lastSeenEpoch=_.UNINITIALIZED,this._nextEpoch=void 0,this._notifying=0,this._hotIndex=-1,this._slots=null,this._deps=null,this.id=se()&h}get isDisposed(){return(this.flags&f.DISPOSED)!==0}get isComputed(){return(this.flags&f.IS_COMPUTED)!==0}get hasError(){return!1}subscribe(e){let t=typeof e==`function`;if(!t&&(!e||typeof e.execute!=`function`))throw E(TypeError(`Invalid subscriber`),x,T.ATOM_SUBSCRIBER_MUST_BE_FUNCTION);let n=this._slots;n||(n=new ce,this._slots=n);let r=!1;if(n._s0!=null&&(t?n._s0.fn===e:n._s0.sub===e))r=!0;else if(n._s1!=null&&(t?n._s1.fn===e:n._s1.sub===e))r=!0;else if(n._s2!=null&&(t?n._s2.fn===e:n._s2.sub===e))r=!0;else if(n._s3!=null&&(t?n._s3.fn===e:n._s3.sub===e))r=!0;else{let i=n._overflow;if(i!=null)for(let n=0,a=i.length;n<a;n++){let a=i[n];if(a!=null&&(t?a.fn===e:a.sub===e)){r=!0;break}}}if(r)return y&&console.warn(`[atom-effect] Duplicate subscription ignored on node ${this.id}`),()=>{};let i=new ge(t?e:void 0,t?void 0:e);return n.add(i),()=>this._unsubscribe(i)}_unsubscribe(e){let t=this._slots;t&&(t.remove(e),this._notifying===0&&t.compact())}subscriberCount(){let e=this._slots;return e===null?0:e.size}_notifySubscribers(e,t){let n=this._slots;if(!(n===null||n.size===0)){this._notifying++;try{let r=n._s0;if(r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}if(r=n._s1,r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}if(r=n._s2,r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}if(r=n._s3,r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}let i=n._overflow;if(i!=null)for(let n=0,r=i.length;n<r;n++){let r=i[n];if(r!=null)try{r.notify(e,t)}catch(e){this._logNotifyError(e)}}}finally{--this._notifying===0&&n.compact()}}}_logNotifyError(e){console.error(E(e,x,T.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED))}_isDirty(){let e=this._deps;if(e===null||e.size===0)return!1;let t=this._hotIndex;if(t!==-1){let n=e.getAt(t);if(n!=null&&n.node.version!==n.version)return!0}return this._deepDirtyCheck()}},ve=0;function ye(){let e=ve+1&h;return ve=e===0?1:e,ve}function be(e){let t=e+1&h;return t===0?1:t}var xe=0,Se=!1,Ce=0;function we(){return Ce}function Te(){return Se?(y&&console.warn(`startFlush() called during flush - ignored`),!1):(Se=!0,Ce=ye(),xe=0,!0)}function Ee(){Se=!1}function De(){if(!Se)return 0;let e=++xe;if(e<=m.MAX_EXECUTIONS_PER_FLUSH)return e;throw Error(`[atom-effect] Infinite loop detected: flush execution count exceeded ${m.MAX_EXECUTIONS_PER_FLUSH}`)}var j=new class{constructor(){this._queueBuffer=[[],[]],this._bufferIndex=0,this._size=0,this._epoch=0,this._isProcessing=!1,this._isFlushingSync=!1,this._batchDepth=0,this._batchQueue=[],this._batchQueueSize=0,this._maxFlushIterations=m.MAX_FLUSH_ITERATIONS,this.onOverflow=null,this._boundRunLoop=this._runLoop.bind(this)}get queueSize(){return this._size+this._batchQueueSize}get isBatching(){return this._batchDepth>0}schedule(e){if(y&&typeof e!=`function`&&(!e||typeof e.execute!=`function`))throw new w(T.SCHEDULER_CALLBACK_MUST_BE_FUNCTION);let t=this._epoch;if(e._nextEpoch===t)return;if(e._nextEpoch=t,this._batchDepth>0||this._isFlushingSync){this._batchQueue[this._batchQueueSize++]=e;return}let n=this._queueBuffer[this._bufferIndex];n[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&&this._batchQueueSize===0)return;let e=Te();this._drainQueue(),e&&Ee()}finally{this._isProcessing=!1}}_flushSync(){if(this._size===0&&this._batchQueueSize===0)return;let e=this._isFlushingSync;this._isFlushingSync=!0;let t=Te();try{this._mergeBatchQueue(),this._drainQueue()}finally{this._isFlushingSync=e,t&&Ee()}}_mergeBatchQueue(){let e=this._batchQueueSize;if(e===0)return;this._epoch=this._epoch+1|0;let t=this._epoch,n=this._batchQueue,r=this._queueBuffer[this._bufferIndex],i=this._size;for(let a=0;a<e;a++){let e=n[a];e._nextEpoch!==t&&(e._nextEpoch=t,r[i++]=e),n[a]=void 0}this._size=i,this._batchQueueSize=0,n.length>m.BATCH_QUEUE_SHRINK_THRESHOLD&&(n.length=0)}_drainQueue(){let e=0;for(;this._size>0||this._batchQueueSize>0;){if(++e>this._maxFlushIterations){this._handleFlushOverflow();return}this._batchQueueSize>0&&this._mergeBatchQueue(),this._size>0&&this._processQueue()}}_processQueue(){let e=this._bufferIndex,t=this._queueBuffer[e],n=this._size;this._bufferIndex=e^1,this._size=0,this._epoch=this._epoch+1|0;for(let e=0;e<n;e++){let n=t[e];t[e]=void 0;try{typeof n==`function`?n():n.execute()}catch(e){console.error(new w(`Error occurred during scheduler execution`,e))}}}_handleFlushOverflow(){let e=this._size+this._batchQueueSize;console.error(new w(T.SCHEDULER_FLUSH_OVERFLOW(this._maxFlushIterations,e))),this._size=0,this._queueBuffer[0].length=0,this._queueBuffer[1].length=0,this._batchQueueSize=0,this._batchQueue.length=0;let t=this.onOverflow;if(t)try{t(e)}catch{}}startBatch(){this._batchDepth++}endBatch(){if(this._batchDepth===0){y&&console.warn(T.SCHEDULER_END_BATCH_WITHOUT_START);return}--this._batchDepth===0&&(this._isFlushingSync||this._flushSync())}setMaxFlushIterations(e){if(e<m.MIN_FLUSH_ITERATIONS)throw new w(`Max iterations must be at least ${m.MIN_FLUSH_ITERATIONS}`);this._maxFlushIterations=e}};function Oe(e){if(y&&typeof e!=`function`)throw TypeError(T.BATCH_CALLBACK_MUST_BE_FUNCTION);j.startBatch();try{return e()}finally{j.endBatch()}}var ke=class extends _e{constructor(e,t){super(),this[ue]=O.Atom|O.Writable,this._value=e,this._equal=t.equal??Object.is,t.sync&&(this.flags|=p.SYNC),D.attachDebugInfo(this,`atom`,this.id,t.name)}get isNotificationScheduled(){return(this.flags&p.NOTIFICATION_SCHEDULED)!==0}get isSync(){return(this.flags&p.SYNC)!==0}get value(){return k.current?.addDependency(this),this._value}set value(e){let t=this._value;if(this._equal(t,e)||(this._value=e,this.version=be(this.version),D.trackUpdate(this.id,D.getDebugName(this)),(this.flags&p.NOTIFICATION_SCHEDULED)!==0))return;let n=this._slots;n==null||n.size===0||(this._pendingOldValue=t,this.flags|=p.NOTIFICATION_SCHEDULED,(this.flags&p.SYNC)!==0&&!j.isBatching?this._notifying===0&&this._flushNotifications():j.schedule(this))}execute(){this._flushNotifications()}_flushNotifications(){let e=p.NOTIFICATION_SCHEDULED,t=p.DISPOSED,n=p.SYNC;for(;(this.flags&(e|t))===e;){let t=this._pendingOldValue;if(this._pendingOldValue=void 0,this.flags&=~e,this._equal(this._value,t)||this._notifySubscribers(this._value,t),(this.flags&n)===0||j.isBatching)break}}peek(){return this._value}dispose(){let e=this.flags;(e&p.DISPOSED)===0&&(this._slots?.clear(),this.flags=e|p.DISPOSED,this._value=void 0,this._pendingOldValue=void 0,this._equal=Object.is)}_deepDirtyCheck(){return!1}[Symbol.dispose](){this.dispose()}};function Ae(e,t={}){return new ke(e,t)}var{IDLE:M,DIRTY:N,PENDING:P,RESOLVED:F,REJECTED:I,HAS_ERROR:je,RECOMPUTING:L,DISPOSED:Me,IS_COMPUTED:R,FORCE_COMPUTE:Ne}=f,Pe=class extends _e{constructor(e,t={}){if(typeof e!=`function`)throw new S(T.COMPUTED_MUST_BE_FUNCTION);if(super(),this[ue]=O.Atom|O.Computed,this._error=null,this._promiseId=0,this._deps=new le,this._trackEpoch=_.UNINITIALIZED,this._trackCount=0,this._value=void 0,this.flags=R|N|M,this._equal=t.equal??Object.is,this._fn=e,this._defaultValue=`defaultValue`in t?t.defaultValue:ie,this._onError=t.onError??null,D.attachDebugInfo(this,`computed`,this.id,t.name),t.lazy===!1)try{this._recompute()}catch{}}get isDirty(){return(this.flags&N)!==0}get isRejected(){return(this.flags&I)!==0}get isRecomputing(){return(this.flags&L)!==0}get _hasErrorInternal(){return(this.flags&je)!==0}_track(){k.current?.addDependency(this)}get value(){k.current?.addDependency(this);let e=this.flags;if((e&(F|N|M))===F)return this._value;if((e&Me)!==0)throw new S(T.COMPUTED_DISPOSED);if((e&L)!==0){let e=this._defaultValue;if(e!==ie)return e;throw new S(T.COMPUTED_CIRCULAR_DEPENDENCY)}if((e&(N|M))!==0){let t=this._deps;if((e&M)===0&&(e&Ne)===0&&t.size>0&&!this._isDirty()?e=this.flags&=~N:(this._recompute(),e=this.flags),(e&F)!==0)return this._value}let t=this._defaultValue,n=t!==ie;if((e&P)!==0){if(n)return t;throw new S(T.COMPUTED_ASYNC_PENDING_NO_DEFAULT)}if((e&I)!==0){if(n)return t;throw this._error}return this._value}peek(){return this._value}get state(){k.current?.addDependency(this);let e=this.flags;return(e&F)===0?(e&P)===0?(e&I)===0?u.IDLE:u.REJECTED:u.PENDING:u.RESOLVED}get hasError(){if(k.current?.addDependency(this),(this.flags&(I|je))!==0)return!0;let e=this._deps;return e.hasComputeds?A(()=>{let t=e.size;for(let n=0;n<t;n++)if(e.getAt(n)?.node.hasError)return!0;return!1}):!1}get isValid(){return!this.hasError}get errors(){k.current?.addDependency(this);let e=this._error,t=this._deps;if(!t.hasComputeds)return e==null?b:Object.freeze([e]);let n=[];return e!=null&&n.push(e),A(()=>{let e=t.size;for(let r=0;r<e;r++){let e=t.getAt(r)?.node;e!=null&&(e.flags&R)!==0&&this._accumulateErrors(e,n)}}),n.length===0?b:Object.freeze(n)}_accumulateErrors(e,t){let n=e._error;n!=null&&!t.includes(n)&&t.push(n);let r=e._deps;if(!r.hasComputeds)return;let i=r.size;for(let e=0;e<i;e++){let n=r.getAt(e)?.node;n!=null&&(n.flags&R)!==0&&this._accumulateErrors(n,t)}}get lastError(){return k.current?.addDependency(this),this._error}get isPending(){return k.current?.addDependency(this),(this.flags&P)!==0}get isResolved(){return k.current?.addDependency(this),(this.flags&F)!==0}invalidate(){this.flags|=Ne,this._markDirty()}dispose(){(this.flags&Me)===0&&(this._deps.disposeAll(),this._slots!=null&&this._slots.clear(),this.flags=Me|N|M,this._error=null,this._value=void 0,this._hotIndex=-1)}[Symbol.dispose](){this.dispose()}addDependency(e){let t=this._trackEpoch;if(e._lastSeenEpoch===t)return;e._lastSeenEpoch=t;let n=this._trackCount++,r=this._deps,i=r.getAt(n);if(i!=null&&i.node===e)i.version=e.version;else if(!r.claimExisting(e,n)){let t=new he(e,e.version,e.subscribe(this));r.insertNew(n,t)}(e.flags&R)!==0&&(r.hasComputeds=!0)}_recompute(){if(this.isRecomputing)return;this.flags=(this.flags|L)&~Ne,this._trackEpoch=ye(),this._trackCount=0,this._deps.prepareTracking(),this._hotIndex=-1;let e=!1;try{let t=k.run(this,this._fn);this._deps.truncateFrom(this._trackCount),e=!0,me(t)?this._handleAsyncComputation(t):this._finalizeResolution(t)}catch(t){if(!e)try{this._deps.truncateFrom(this._trackCount)}catch(e){y&&console.warn(`[atom-effect] _commitDeps failed during error recovery:`,e)}this._handleError(t,T.COMPUTED_COMPUTATION_FAILED,!0)}finally{this._trackEpoch=_.UNINITIALIZED,this._trackCount=0,this.flags&=~L}}_handleAsyncComputation(e){this.flags=(this.flags|P)&~(M|N|F|I),this._notifySubscribers(void 0,void 0),this._promiseId=(this._promiseId+1)%ee.MAX_PROMISE_ID;let t=this._promiseId;e.then(e=>{if(t===this._promiseId){if(this._isDirty())return this._markDirty();this._finalizeResolution(e),this._notifySubscribers(e,void 0)}},e=>t===this._promiseId&&this._handleError(e,T.COMPUTED_ASYNC_COMPUTATION_FAILED))}_handleError(e,t,n=!1){let r=E(e,S,t);if((!this.isRejected||this._error!==r)&&(this.version=be(this.version)),this._error=r,this.flags=this.flags&~(M|N|P|F)|I|je,this._onError)try{this._onError(r)}catch(e){console.error(T.CALLBACK_ERROR_IN_ERROR_HANDLER,e)}if(this._notifySubscribers(void 0,void 0),n)throw r}_finalizeResolution(e){let t=this.flags;((t&F)===0||!this._equal(this._value,e))&&(this.version=be(this.version)),this._value=e,this._error=null,this.flags=(t|F)&~(M|N|P|I|je)}execute(){this._markDirty()}_markDirty(){let e=this.flags;(e&(L|N))===0&&(this.flags=e|N,D.trackUpdate(this.id,D.getDebugName(this)),this._notifySubscribers(void 0,void 0))}_deepDirtyCheck(){let e=this._deps;return A(()=>{let t=e.size;for(let n=0;n<t;n++){let t=e.getAt(n);if(t==null)continue;let r=t.node;if((r.flags&R)!==0)try{r.value}catch{y&&console.warn(`[atom-effect] Dependency #${r.id} threw during dirty check`)}if(r.version!==t.version)return this._hotIndex=n,!0}return this._hotIndex=-1,!1})}};function Fe(e,t={}){return new Pe(e,t)}var Ie=class extends _e{constructor(e,t={}){super(),this[ue]=O.Effect,this._cleanup=null,this._deps=new le,this._currentEpoch=_.UNINITIALIZED,this._lastFlushEpoch=_.UNINITIALIZED,this._fn=e,this._onError=t.onError??null,this._sync=t.sync??!1,this._maxExecutions=t.maxExecutionsPerSecond??m.MAX_EXECUTIONS_PER_SECOND,this._maxExecutionsPerFlush=t.maxExecutionsPerFlush??m.MAX_EXECUTIONS_PER_EFFECT,this._executionsInEpoch=0,this._executionCount=0,this._windowStart=0,this._windowCount=0,this._execId=0,this._trackCount=0,this._sync?this._notifyCallback=()=>this.execute():this._notifyCallback=()=>j.schedule(this),D.attachDebugInfo(this,`effect`,this.id,t.name)}run(){if(this.isDisposed)throw new C(T.EFFECT_DISPOSED);this.execute(!0)}dispose(){this.isDisposed||(this.flags|=d.DISPOSED,this._execCleanup(),this._deps?.disposeAll())}[Symbol.dispose](){this.dispose()}addDependency(e){if((this.flags&d.EXECUTING)===0)return;let t=this._currentEpoch;if(e._lastSeenEpoch===t)return;e._lastSeenEpoch=t;let n=this._trackCount++,r=this._deps,i;switch(n){case 0:i=r._s0;break;case 1:i=r._s1;break;case 2:i=r._s2;break;case 3:i=r._s3;break;default:i=r.getAt(n)}i!=null&&i.node===e?i.version=e.version:r.claimExisting(e,n)||this._insertNewDependency(e,n),e.isComputed&&(r.hasComputeds=!0)}_insertNewDependency(e,t){let n;try{let t=e.subscribe(this._notifyCallback);n=new he(e,e.version,t)}catch(t){let r=E(t,C,T.EFFECT_EXECUTION_FAILED);if(console.error(r),this._onError)try{this._onError(r)}catch{}n=new he(e,e.version,void 0)}this._deps.insertNew(t,n)}execute(e=!1){let t=this.flags;if((t&(d.DISPOSED|d.EXECUTING))!==0)return;let n=this._deps;if(!e&&n.size>0&&!this._isDirty())return;this._checkInfiniteLoops(),D.trackUpdate(this.id,D.getDebugName(this)),this.flags=t|d.EXECUTING,this._execCleanup(),this._currentEpoch=ye(),this._trackCount=0,n.prepareTracking(),this._hotIndex=-1;let r=!1;try{let e=k.run(this,this._fn);n.truncateFrom(this._trackCount),r=!0,me(e)?this._handleAsyncResult(e):this._cleanup=typeof e==`function`?e:null}catch(e){if(!r)try{n.truncateFrom(this._trackCount)}catch(e){y&&console.warn(`[atom-effect] _commitDeps failed during error recovery:`,e)}this._handleExecutionError(e),this._cleanup=null}finally{this.flags&=~d.EXECUTING}}_handleAsyncResult(e){let t=++this._execId;e.then(e=>{if(t!==this._execId||this.isDisposed){if(typeof e==`function`)try{e()}catch(e){this._handleExecutionError(e,T.EFFECT_CLEANUP_FAILED)}return}typeof e==`function`&&(this._cleanup=e)},e=>t===this._execId&&this._handleExecutionError(e))}_deepDirtyCheck(){let e=k.current;k.current=null;let t=this._deps;try{let e=t.size;for(let n=0;n<e;n++){let e=t.getAt(n);if(e==null)continue;let r=e.node;if(r.isComputed&&this._tryPullComputed(r),r.version!==e.version)return this._hotIndex=n,!0}return!1}finally{k.current=e}}_tryPullComputed(e){try{e.value}catch{y&&console.warn(`[atom-effect] Dependency #${e.id} threw during dirty check`)}}_execCleanup(){let e=this._cleanup;if(e!=null){this._cleanup=null;try{e()}catch(e){this._handleExecutionError(e,T.EFFECT_CLEANUP_FAILED)}}}_checkInfiniteLoops(){let e=we();this._lastFlushEpoch!==e&&(this._lastFlushEpoch=e,this._executionsInEpoch=0),++this._executionsInEpoch>this._maxExecutionsPerFlush&&this._throwInfiniteLoopError(`per-effect`),De()>m.MAX_EXECUTIONS_PER_FLUSH&&this._throwInfiniteLoopError(`global`),this._executionCount++,y&&this._checkFrequencyLimit()}_checkFrequencyLimit(){if(!Number.isFinite(this._maxExecutions))return;let e=Date.now();if(e-this._windowStart>=g.EFFECT_FREQUENCY_WINDOW){this._windowStart=e,this._windowCount=1;return}if(++this._windowCount>this._maxExecutions){let e=new C(T.EFFECT_FREQUENCY_LIMIT_EXCEEDED);throw this.dispose(),this._handleExecutionError(e),e}}get executionCount(){return this._executionCount}get isExecuting(){return(this.flags&d.EXECUTING)!==0}_throwInfiniteLoopError(e){let t=new C(`Infinite loop detected (${e}): effect executed ${this._executionsInEpoch} times in current flush. Total executions in flush: ${xe}`);throw this.dispose(),console.error(t),t}_handleExecutionError(e,t=T.EFFECT_EXECUTION_FAILED){let n=E(e,C,t);if(console.error(n),this._onError)try{this._onError(n)}catch(e){console.error(E(e,C,T.CALLBACK_ERROR_IN_ERROR_HANDLER))}}};function z(e,t={}){if(typeof e!=`function`)throw new C(T.EFFECT_MUST_BE_FUNCTION);let n=new Ie(e,t);return n.execute(),n}function Le(e,t,n,r){if(n===t.length)return r;let i=t[n],a=typeof e==`object`&&e?e:{},o=a[i],s=Le(o,t,n+1,r);if(Object.is(o,s))return e;if(Array.isArray(a)){let e=a.slice(),t=Number.parseInt(i,10);return Number.isNaN(t)?e[i]=s:e[t]=s,e}return{...a,[i]:s}}function B(e,t){let n=e,r=t.length;for(let e=0;e<r;e++){if(n==null)return;n=n[t[e]]}return n}function Re(e,t){let n=t.includes(`.`)?t.split(`.`):[t],r=new Set,i=()=>{r.forEach(e=>e()),r.clear()};return{get value(){return B(e.value,n)},set value(t){let r=e.peek(),i=Le(r,n,0,t);i!==r&&(e.value=i)},peek:()=>B(e.peek(),n),subscribe(t){let i=e.subscribe((e,r)=>{let i=B(e,n),a=B(r,n);Object.is(i,a)||t(i,a)});return r.add(i),()=>{i(),r.delete(i)}},subscriberCount:()=>r.size,dispose:i,[Symbol.dispose]:i,[ue]:O.Atom|O.Writable}}var ze=(e,t)=>Re(e,t),Be=e=>t=>Re(e,t),Ve=e=>typeof e==`object`&&!!e,He=e=>fe(e),Ue=e=>(Ve(e)||typeof e==`function`)&&typeof e.then==`function`;function We(e){let{localName:t,id:n,className:r}=e,i=t;n&&(i+=`#${n}`);let a=typeof r==`string`?r:r.baseVal;if(typeof a==`string`){let e=a.trim();e&&(i+=`.${e.replace(/\s+/g,`.`)}`)}let o=e.type;return o&&typeof o==`string`&&o!==`text`&&(i+=`.${o}`),i}var V=Object.prototype.hasOwnProperty;function Ge(e,t){if(e===t)return!0;if(!Ve(e)||!Ve(t))return!1;let n=e,r=t,i=Object.keys(n),a=Object.keys(r);if(i.length!==a.length)return!1;for(let e of i)if(!V.call(r,e)||!Object.is(n[e],r[e]))return!1;return!0}var H={ROUTE:`[atom-route]`,BINDING:`[atom-binding]`,LIST:`[atom-list]`,MOUNT:`[atom-mount]`},Ke=Object.freeze({mode:`hash`,basePath:``,autoBindLinks:!1,activeClass:`active`}),qe=Object.freeze({EVENT:`input`,DEBOUNCE:0}),Je=Object.freeze({HIGHLIGHT_DURATION_MS:500}),Ye=new Set([`input`,`select`,`textarea`]),Xe=new Set([`innerHTML`,`outerHTML`,`srcdoc`,`__proto__`,`constructor`,`prototype`]),Ze=`(?: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)`,U={ROUTE:{NOT_FOUND:e=>`Route "${e}" not found and no notFound route configured`,TEMPLATE_NOT_FOUND:e=>`Template "${e}" not found`,TARGET_NOT_FOUND:e=>`Target element "${e}" not found`,MALFORMED_URI:e=>`Malformed URI component: ${e}`},SECURITY:{UNSAFE_CONTENT:()=>`Unsafe content neutralized during sanitization.`,BLOCKED_CSS_VALUE:e=>`Blocked dangerous value in CSS style property "${e}".`,BLOCKED_EVENT_HANDLER:e=>`Blocked setting dangerous event handler attribute/property "${e}".`,BLOCKED_PROTOCOL:e=>`Blocked dangerous protocol in "${e}".`,BLOCKED_PROP:e=>`Blocked setting dangerous property "${e}". Use html binding for sanitized HTML.`},BINDING:{INVALID_INPUT_ELEMENT:e=>`Val binding used on non-input element <${e}>.`,MISSING_SOURCE:e=>`[${e}] source is required when prop/name is a string.`,MISSING_CONDITION:e=>`[${e}] condition is required when className is a string.`,UPDATER_ERROR:(e,t)=>`Updater threw in binding "${e}"${t?` (static)`:``}`,CLEANUP_ERROR:e=>`Binding cleanup error${e?`: ${e}`:``}`,PARSE_ERROR:e=>`parse() threw during DOM→Atom sync${e?`: ${e}`:``}`},LIST:{DUPLICATE_KEY:(e,t,n)=>`Duplicate key "${e}" at index ${t} in atomList <${n}>.`},MOUNT:{ERROR:e=>`Mount error${e?` in component <${e}>`:``}`,CLEANUP_ERROR:e=>`Cleanup error${e?` in component <${e}>`:``}`},CORE:{EFFECT_DISPOSE_ERROR:e=>`Effect dispose error${e?`: ${e}`:``}`}},Qe=`atom-debug-highlight`,W=`data-atom-debug`,$e=typeof window<`u`,et=new WeakMap,tt=new WeakMap,nt=!1,rt=()=>`${Je.HIGHLIGHT_DURATION_MS/1e3}s`,it=()=>`
2
- [${W}] {
3
- transition: outline ${rt()} ease-out;
4
- }
5
- .${Qe} {
6
- outline: 2px solid rgba(255, 68, 68, 0.8);
7
- outline-offset: 1px;
8
- }
9
- `.replace(/\s+/g,` `);function at(){if(nt||!$e)return;if(document.querySelector(`style[${W}]`)){nt=!0;return}let e=document.createElement(`style`);e.setAttribute(W,``),e.textContent=it(),document.head.appendChild(e),nt=!0}function ot(){let e=globalThis;if(e.__ATOM_DEBUG__!==void 0)return!!e.__ATOM_DEBUG__;try{if(typeof sessionStorage<`u`&&sessionStorage.getItem(`__ATOM_DEBUG__`)===`true`)return!0}catch{}return e.process?.env?.NODE_ENV!==`production`&&e.process?.env?.NODE_ENV!==void 0?!0:e.__DEV__===void 0?!1:!!e.__DEV__}var st=class{constructor(){this.enabled=!0}log(e,...t){this.enabled&&console.log(e,...t)}atomChanged(e,t,n,r){this.enabled&&console.log(`${e} Atom "${t??`anonymous`}" changed:`,n,`→`,r)}cleanup(e,t){this.enabled&&console.log(`${e} Cleanup: ${t}`)}warn(e,t,...n){console.warn(`${e} ${t}`,...n)}error(e,t,n){console.error(`${e} ${t}`,n)}domUpdated(e,t,n,r){if(!this.enabled)return;let i=`jquery`in t?t[0]:t;i&&i.nodeType===1&&i.isConnected&&(console.log(`${e} DOM updated: ${We(i)}.${n} =`,r),this._triggerVisualHighlight(i))}_triggerVisualHighlight(e){let t=globalThis,n=t.requestAnimationFrame,r=t.cancelAnimationFrame;if(!$e||typeof n!=`function`)return;at();let i=tt.get(e),a=et.get(e);i!==void 0&&typeof r==`function`&&r(i),a!==void 0&&(clearTimeout(a),et.delete(e)),e.hasAttribute(W)||e.setAttribute(W,``),tt.set(e,n(()=>{tt.delete(e),e.isConnected&&(e.classList.add(Qe),et.set(e,setTimeout(()=>{e.classList.remove(Qe),et.delete(e)},Je.HIGHLIGHT_DURATION_MS)))}))}},G=ot()?new st:{enabled:!1,log:()=>{},atomChanged:()=>{},domUpdated:()=>{},cleanup:()=>{},warn:(e,t,...n)=>console.warn(`${e} ${t}`,...n),error:(e,t,n)=>console.error(`${e} ${t}`,n)};function ct(e,t){return Ae(e,t)}Object.defineProperty(ct,`debug`,{enumerable:!0,configurable:!0,get:()=>G.enabled,set:e=>{G.enabled=e}});var lt=()=>Promise.resolve();t.default.extend({atom:ct,computed:Fe,effect:z,batch:Oe,untracked:A,isAtom:fe,isComputed:pe,isReactive:He,nextTick:lt,atomLens:Re,composeLens:ze,lensFor:Be});var ut=class{constructor(e=50,t=256){this.limit=e,this.capacity=t,this.pool=[]}acquire(){return this.pool.pop()??[]}release(e){if(Object.isFrozen(e))return;let t=e.length;e.length=0,this.pool.length<this.limit&&t<=this.capacity&&this.pool.indexOf(e)===-1&&this.pool.push(e)}reset(){this.pool.length=0}},dt=class{constructor(e,t,n=64){this.factory=e,this.reset=t,this.limit=n,this.pool=[]}acquire(){return this.pool.pop()??this.factory()}release(e){Object.isFrozen(e)||(this.reset(e),this.pool.length<this.limit&&this.pool.indexOf(e)===-1&&this.pool.push(e))}drain(){this.pool.length>0&&(this.pool.length=0)}get size(){return this.pool.length}},ft=128,pt=new ut(ft),mt=new ut(ft),ht=new dt(()=>({effects:void 0,cleanups:void 0,componentCleanup:void 0}),e=>{if(e.effects){let t=e.effects.length;for(let n=0;n<t;n++)try{e.effects[n].dispose()}catch{}pt.release(e.effects),e.effects=void 0}if(e.cleanups){let t=e.cleanups.length;for(let n=0;n<t;n++)try{e.cleanups[n]()}catch{}mt.release(e.cleanups),e.cleanups=void 0}if(e.componentCleanup){try{e.componentCleanup()}catch{}e.componentCleanup=void 0}},ft),gt=!1;function _t(){gt||typeof document<`u`&&document.body&&(gt=!0,yt(document.body))}var K=`_aes-bound`,q=new class{constructor(){this.records=new WeakMap,this.preservedNodes=new WeakSet,this.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){_t();let t=this.records.get(e);return t||(t=ht.acquire(),this.records.set(e,t),e.classList.add(K)),t}trackEffect(e,t){let n=this.getOrCreateRecord(e);n.effects||=pt.acquire(),n.effects.push(t)}trackCleanup(e,t){let n=this.getOrCreateRecord(e);n.cleanups||=mt.acquire(),n.cleanups.push(t)}setComponentCleanup(e,t){this.getOrCreateRecord(e).componentCleanup=t}hasBind(e){return this.records.has(e)}cleanup(e){if(this.preservedNodes.delete(e),this.ignoredNodes.delete(e),e.nodeType!==1)return;let t=e,n=this.records.get(t);if(!n){t.classList.remove(K);return}this.records.delete(t),t.classList.remove(K);let r=We(t);if(G.cleanup(H.BINDING,r),n.componentCleanup){try{n.componentCleanup()}catch(e){G.error(H.MOUNT,U.MOUNT.CLEANUP_ERROR(r),e)}n.componentCleanup=void 0}if(n.effects){for(let e of n.effects)try{e.dispose()}catch(e){G.error(H.BINDING,U.CORE.EFFECT_DISPOSE_ERROR(r),e)}pt.release(n.effects),n.effects=void 0}if(n.cleanups){for(let e of n.cleanups)try{e()}catch(e){G.error(H.BINDING,U.BINDING.CLEANUP_ERROR(r),e)}mt.release(n.cleanups),n.cleanups=void 0}ht.release(n)}cleanupDescendants(e){let t=`getElementsByClassName`in e?e.getElementsByClassName(K):e.querySelectorAll(`.${K}`),n=t.length;if(n===0)return;let r=Array(n);for(let e=0;e<n;e++)r[e]=t[e];for(let e=n-1;e>=0;e--){let t=r[e];this.records.has(t)?this.cleanup(t):t.classList.remove(K)}}cleanupTree(e){(e.nodeType===1||e.nodeType===11)&&this.cleanupDescendants(e),this.cleanup(e)}},vt=new Map;function yt(e){if(vt.has(e))return;let t=new MutationObserver(e=>{let t=q;for(let n=0,r=e.length;n<r;n++){let r=e[n].removedNodes;for(let e=0,n=r.length;e<n;e++){let n=r[e];if(n.nodeType!==1||n.isConnected)continue;let i=n;t.isKept(i)||t.isIgnored(i)||t.cleanupTree(i)}}});t.observe(e,{childList:!0,subtree:!0}),vt.set(e,t)}function bt(){vt.forEach(e=>e.disconnect()),vt.clear()}function xt(e){return{el:e,trackCleanup:t=>q.trackCleanup(e,t)}}function J(e,t,n={}){for(let r=0,i=e.length;r<i;r++){let i=e[r];if(i?.nodeType===1){let e=i;t(n.needsCtx?xt(e):null,e)}else i&&G.log(H.BINDING,`Skipping non-Element node (nodeType=${i.nodeType})`)}return e}function St(e){return Array.isArray(e)&&e.length===2&&(typeof e[0]==`function`||e[0]!==null&&typeof e[0]==`object`&&(`value`in e[0]||`then`in e[0]))?e:[e]}var Y=Symbol.for(`atom-effect-internal`),Ct=Symbol.for(`atom-effect-wrapped`),wt=new WeakMap,X=null,Tt=e=>{let t=e;if(t[Y])return e;let n=t[Ct];if(n)return n;if(n=wt.get(e),!n){n=function(...t){return Oe(()=>e.apply(this,t))},n[Y]=!0,wt.set(e,n);try{t[Ct]=n}catch{}}return n},Et=e=>e[Ct]??wt.get(e)??e;function Dt(e){let t={};for(let n in e){let r=e[n];typeof r==`function`?t[n]=Tt(r):r!==void 0&&(t[n]=r)}return t}function Ot(e){let t={};for(let n in e){let r=e[n];typeof r==`function`?t[n]=Et(r):t[n]=r}return t}function kt(e,t,n){let r=e[0];if(r&&typeof r==`object`)e[0]=t(r);else for(let t=1;t<e.length;t++)typeof e[t]==`function`&&(e[t]=n(e[t]))}function At(e){return function(...t){return kt(t,Dt,Tt),e.apply(this,t)??this}}function jt(){if(X!==null)return;X={on:t.default.fn.on,one:t.default.fn.one,off:t.default.fn.off,remove:t.default.fn.remove,empty:t.default.fn.empty,detach:t.default.fn.detach};let e=X;t.default.fn.remove=function(t){let n=t?this.filter(t):this,r=n.length;for(let e=0;e<r;e++){let t=n[e];t&&(q.markIgnored(t),q.cleanupTree(t))}return e.remove.call(this,t)??this},t.default.fn.empty=function(){let t=this.length;for(let e=0;e<t;e++){let t=this[e];t?.hasChildNodes()&&q.cleanupDescendants(t)}return e.empty.call(this)??this},t.default.fn.detach=function(t){let n=t?this.filter(t):this,r=n.length;for(let e=0;e<r;e++){let t=n[e];t&&q.keep(t)}return e.detach.call(this,t)??this},t.default.fn.on=At(e.on),t.default.fn.one=At(e.one),t.default.fn.off=function(...t){return kt(t,Ot,Et),e.off.apply(this,t)??this}}function Mt(){X!==null&&(t.default.fn.on=X.on,t.default.fn.one=X.one,t.default.fn.off=X.off,t.default.fn.remove=X.remove,t.default.fn.empty=X.empty,t.default.fn.detach=X.detach,X=null)}var Z=function(e){return e[e.None=0]=`None`,e[e.Focused=1]=`Focused`,e[e.Composing=2]=`Composing`,e[e.SyncingToAtom=4]=`SyncingToAtom`,e[e.SyncingToDom=8]=`SyncingToDom`,e[e.Busy=14]=`Busy`,e}({}),Nt=0;function Pt(e){e[Y]=!0}var Ft=class{constructor(e,t,n){this.flags=0,this.timeoutId=void 0,this.handleCompositionStart=()=>{this.flags|=Z.Composing},this.handleCompositionEnd=()=>{this.flags&=~Z.Composing,this.handleInput()},this.handleFocus=()=>{this.flags|=Z.Focused},this.handleBlur=()=>{this.flags&=~Z.Focused;let e=!!(this.flags&Z.Composing);this.flags&=~Z.Composing;let t=this.flushPendingDebounce();e&&!t&&this.syncAtomFromDom(),this.normalizeDomValue()},this.syncDomFromAtom=()=>{let e=this.atom.value;this.flags&Z.Busy||A(()=>{if(this.isDomUpToDate(e))return;let t=this.format(e);this.flags|=Z.SyncingToDom;try{this.writeDom(e,t),G.domUpdated(H.BINDING,this.$el,`val`,t)}finally{this.flags&=~Z.SyncingToDom}})},this.cleanup=()=>{this.$el.off(this.ns),clearTimeout(this.timeoutId),this.timeoutId=void 0},this.$el=e,this.el=e[0],this.atom=t;let r=this.el.tagName;this.isMultipleSelect=r===`SELECT`&&this.el.multiple,this.isTextControl=r===`INPUT`||r===`TEXTAREA`,this.ns=`.atomBind-${++Nt}`;let{parse:i,format:a,equal:o,readDom:s,getRawDom:c,writeDom:l}=this.initStrategies(n);this.parse=i,this.format=a,this.equal=o,this.readDom=s,this.getRawDom=c,this.writeDom=l;let u=n.debounce??0;u>0?this.handleInput=()=>{this.flags&Z.Composing||(clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>this.syncAtomFromDom(),u))}:this.handleInput=()=>{this.flags&Z.Composing||this.syncAtomFromDom()},[this.handleFocus,this.handleBlur,this.handleCompositionStart,this.handleCompositionEnd,this.handleInput].forEach(Pt),this.bindEvents(n.event??qe.EVENT)}initStrategies(e){let t=e.parse??(e=>e),n=e.equal??Object.is;return this.isMultipleSelect?{parse:t,format:e.format??(e=>(Array.isArray(e)?e:e?[String(e)]:[]).join(`,`)),getRawDom:()=>this.$el.val()||[],readDom:()=>this.$el.val()||[],writeDom:e=>{this.$el.val(e)},equal:(e,t)=>{if(n(e,t))return!0;if(Array.isArray(e)&&Array.isArray(t)){let n=e.length;if(n!==t.length)return!1;for(let r=0;r<n;r++)if(!Object.is(e[r],t[r]))return!1;return!0}return!1}}:{parse:t,format:e.format??(e=>String(e??``)),equal:n,readDom:()=>t(this.el.value),getRawDom:()=>this.el.value,writeDom:this.isTextControl?(e,t)=>this.writeTextValue(t):(e,t)=>{this.el.value=t}}}writeTextValue(e){let t=this.el;if(this.flags&Z.Focused)try{let n=t.selectionStart,r=t.selectionEnd;t.value=e;let i=e.length;n!==null&&r!==null&&t.setSelectionRange(Math.min(n,i),Math.min(r,i))}catch{t.value=e}else t.value=e}flushPendingDebounce(){return this.timeoutId===void 0?!1:(clearTimeout(this.timeoutId),this.timeoutId=void 0,this.syncAtomFromDom(),!0)}normalizeDomValue(){let e=this.atom.peek(),t=this.format(e),n=this.getRawDom();this.isMultipleSelect?this.equal(n,e)||this.writeDom(e,t):n!==t&&this.writeDom(e,t)}syncAtomFromDom(){if(!(this.flags&Z.Busy)){this.flags|=Z.SyncingToAtom;try{let e=this.readDom();this.equal(this.atom.peek(),e)||(this.atom.value=e)}catch(e){G.warn(H.BINDING,U.BINDING.PARSE_ERROR(e instanceof Error?e.message:String(e)),e)}finally{this.flags&=~Z.SyncingToAtom}}}isDomUpToDate(e){let t=this.getRawDom();if(this.isMultipleSelect)return this.equal(t,e);if(t===this.format(e))return!0;if(this.flags&Z.Focused)try{return this.equal(this.readDom(),e)}catch{}return!1}bindEvents(e){let t=this.ns,n=e.trim().split(/\s+/).map(e=>`${e}${t}`).join(` `);this.$el.on(`focus${t}`,this.handleFocus).on(`blur${t}`,this.handleBlur).on(`compositionstart${t}`,this.handleCompositionStart).on(`compositionend${t}`,this.handleCompositionEnd).on(n,this.handleInput)}};function It(e,t,n){let r=new Ft(e,t,n);return{fx:z(r.syncDomFromAtom),cleanup:()=>{r&&=(r.cleanup(),null)}}}function Lt(e,t,n,r){let i={latestId:0,isDisposed:!1};q.trackCleanup(e,()=>{i.isDisposed=!0});let a=t=>{if(!Ue(t)){i.latestId++,A(()=>{try{n(t),G.domUpdated(H.BINDING,e,r,t)}catch(e){G.error(H.BINDING,U.BINDING.UPDATER_ERROR(r,!0),e)}});return}let a=++i.latestId;t.then(t=>{a===i.latestId&&!i.isDisposed&&A(()=>{try{n(t),G.domUpdated(H.BINDING,e,`${r} (async)`,t)}catch(e){G.error(H.BINDING,U.BINDING.UPDATER_ERROR(r),e)}})}).catch(e=>{a===i.latestId&&!i.isDisposed&&G.error(H.BINDING,U.BINDING.UPDATER_ERROR(r),e)})},o=He(t);o||typeof t==`function`?q.trackEffect(e,z(()=>{a(o?t.value:t())},{name:r})):a(t)}function Rt(e,t,n,r){let i=Object.keys(t),a=[],o=[],s=[],c={};for(let e=0,n=i.length;e<n;e++){let n=i[e],r=t[n],l=He(r);l||typeof r==`function`?(a.push(n),o.push(r),s.push(l)):c[n]=r}let l={latestId:0,isDisposed:!1,cache:{}};q.trackCleanup(e,()=>{l.isDisposed=!0});let u=t=>{let a=[],o={},s=i.length;for(let e=0;e<s;e++){let n=i[e],r=t[n];if(Ue(r)&&V.call(l.cache,n)){let e=l.cache[n];if(e.p===r){o[n]=e.v;continue}}Ue(r)?a.push(r.then(e=>(l.cache[n]={p:r,v:e},{key:n,val:e}))):o[n]=r}if(a.length>0){let t=++l.latestId;Promise.all(a).then(i=>{if(t===l.latestId&&!l.isDisposed){for(let e=0,t=i.length;e<t;e++){let t=i[e];o[t.key]=t.val}A(()=>{try{n(o),G.domUpdated(H.BINDING,e,`${r} (async)`,o)}catch(e){G.error(H.BINDING,U.BINDING.UPDATER_ERROR(r),e)}})}},e=>{t===l.latestId&&!l.isDisposed&&G.error(H.BINDING,U.BINDING.UPDATER_ERROR(r),e)})}else l.latestId++,A(()=>{try{n(o),G.domUpdated(H.BINDING,e,r,o)}catch(e){G.error(H.BINDING,U.BINDING.UPDATER_ERROR(r,!0),e)}})};a.length>0?q.trackEffect(e,z(()=>{let e={...c};for(let t=0,n=a.length;t<n;t++){let n=o[t];e[a[t]]=s[t]?n.value:n()}u(e)},{name:r})):u(c)}var zt=new Set([`href`,`src`,`action`,`formaction`,`xlink:href`,`data`,`poster`,`background`,`cite`,`longdesc`,`profile`,`usemap`,`classid`,`codebase`,`fill`,`filter`,`mask`,`marker-start`,`marker-mid`,`marker-end`,`clip-path`]),Bt={colon:`:`,Tab:` `,NewLine:`
10
- `},Vt=/&#x([0-9a-f]+);?|&#([0-9]+);?/gi,Ht=/&(colon|Tab|NewLine);/g,Ut=/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,Wt=/[<&\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/,Gt=/<\?[\s\S]*?\?>/g,Kt=/(<(script|iframe|object|embed|base|meta|applet|noscript|form|style|link)\b[^>]*>([\s\S]*?)<\/\2>|<(script|iframe|object|embed|base|meta|applet|noscript|form|style|link)\b[^>]*\/?>)/gi,qt=/\bon\w+\s*=/gim,Jt=/data\s*:\s*(?:text\/(?:html|javascript|vbscript|xml)|application\/(?:javascript|xhtml\+xml|xml|x-shockwave-flash)|image\/svg\+xml)/gi,Yt=RegExp(`${Ze}\\s*:`,`gi`),Xt=RegExp(`^\\s*${Ze}\\s*:`,`i`),Zt=`(?:expression\\s*\\(|behavior\\s*:|-moz-binding\\s*:|(?:\\\\[0-9a-f]{1,6}\\s*|[\\s\\x00-\\x20/'"])*${Ze}\\s*:(?!image\\/)|data\\s*:\\s*(?!image\\/))`,Qt=new RegExp(Zt,`gim`),$t=new RegExp(Zt,`im`),en=RegExp(`url\\s*\\(\\s*(?:["']?\\s*)?${Ze}\\s*:`,`i`);function tn(e){return e.replace(Vt,(e,t,n)=>{let r=t?parseInt(t,16):parseInt(n,10);return r>=0&&r<=1114111?String.fromCodePoint(r):``}).replace(Ht,(e,t)=>Bt[t]??``).replace(Ut,``)}function nn(e){return Xt.test(e)||new RegExp(Jt.source,`i`).test(e)}function rn(e){return e.toLowerCase().includes(`url(`)&&en.test(e)||$t.test(e)}function an(e){if(Wt.test(e)||e.indexOf(`:`)!==-1)return!0;let t=e.toLowerCase(),n=t.indexOf(`on`);for(;n!==-1&&n<e.length-2;){let e=t.charCodeAt(n+2);if(e>=97&&e<=122)return!0;n=t.indexOf(`on`,n+1)}return!1}function Q(e){if(!e)return``;let t=String(e);if(!an(t))return t;let n=tn(t);if(n.indexOf(`<`)!==-1){n=n.replace(Gt,``);let e;do e=n,n=n.replace(Kt,``);while(n!==e)}return n.replace(Qt,`data-unsafe-css:`).replace(Yt,`data-unsafe-protocol:`).replace(Jt,`data-unsafe-protocol:`).replace(qt,`data-unsafe-attr=`)}var on=(e,t)=>{let n=e.toLowerCase();return zt.has(n)?nn(tn(t)):!1},sn=e=>rn(tn(e)),cn=new Map;function ln(e){let t=cn.get(e);return t===void 0?(t=e.includes(`-`)?e.replace(/-./g,e=>e[1].toUpperCase()):e,cn.set(e,t),t):t}var un=new WeakMap;function dn(e){let t=un.get(e);return t||(t=Fe(()=>{let t=e.value;return Ue(t)?t.then(e=>Q(e)):Q(t)}),un.set(e,t)),t}function fn({el:e},t,n){Lt(e,t,t=>{let r=n?n(t):String(t??``);e.textContent!==r&&(e.textContent=r)},`text`)}function pn({el:e},t){let n=fe(t)?dn(t):t,r=null;Lt(e,n,i=>{let a=n===t?Q(i):i;r!==a&&(q.cleanupDescendants(e),e.innerHTML=a,r=a)},`html`)}function mn({el:e},t){let n={},r={};for(let e in t)if(V.call(t,e)){let t=e.trim();n[e]=/\s/.test(t)?t.split(/\s+/).filter(Boolean):[t]}Rt(e,t,t=>{for(let i in t){let a=!!t[i];if(r[i]===a)continue;let o=n[i];if(a)e.classList.add(...o);else for(let r of o){let a=!1;for(let e in t)if(e!==i&&t[e]&&n[e].includes(r)){a=!0;break}a||e.classList.remove(r)}r[i]=a}},`class`)}function hn({el:e},t){let n=e.style,r={},i={},a={};for(let e in t)if(V.call(t,e)){let n=t[e],[a,o]=Array.isArray(n)?n:[n,``];r[e]=a,i[e]={camel:ln(e),unit:o}}Rt(e,r,e=>{for(let t in e){let r=i[t],o=e[t],s=r.unit?`${o}${r.unit}`:String(o),c=r.camel;a[t]!==s&&(sn(s)||(n[c]=s),a[t]=s)}},`css`)}function gn({el:e},t){let n={},r={},i={};for(let a in t){if(!V.call(t,a))continue;let o=a.toLowerCase();if(o.startsWith(`on`)){console.warn(`${H.BINDING} ${U.SECURITY.BLOCKED_EVENT_HANDLER(a)}`);continue}n[a]=t[a],r[a]={isAria:o.startsWith(`aria-`),isUrl:zt.has(o)},i[a]=e.getAttribute(a)}Rt(e,n,t=>{for(let n in t){let a=r[n],o=t[n];if(o==null||o===!1&&!a.isAria){i[n]!==null&&e.removeAttribute(n),i[n]=null;continue}let s=o===!0?a.isAria?`true`:n:String(o);if(on(n,s)){console.warn(`${H.BINDING} ${U.SECURITY.BLOCKED_PROTOCOL(n)}`);continue}i[n]!==s&&(e.setAttribute(n,s),i[n]=s)}},`attr`)}function _n(e,t){let n=e.el,r={},i={},a={};for(let e in t){if(!V.call(t,e))continue;let n=e.toLowerCase();if(n.startsWith(`on`)||Xe.has(e)){console.warn(`${H.BINDING} ${n.startsWith(`on`)?U.SECURITY.BLOCKED_EVENT_HANDLER(e):U.SECURITY.BLOCKED_PROP(e)}`);continue}r[e]=t[e],i[e]={isUrl:zt.has(n)}}Rt(e.el,r,e=>{for(let t in e){let r=e[t];if(a[t]!==r){if(typeof r==`string`&&on(t,r)){console.warn(`${H.BINDING} ${U.SECURITY.BLOCKED_PROTOCOL(t)}`);continue}n[t]=r,a[t]=r}}},`prop`)}function vn({el:e},t,n){let r=e.style.display===`none`?``:e.style.display;Lt(e,t,t=>{n===!!t?e.style.display!==`none`&&(r=e.style.display,e.style.display=`none`):e.style.display===`none`&&(e.style.display=r)},n?`hide`:`show`)}function yn(e,n,r={}){let i=e.el.tagName.toLowerCase();if(!Ye.has(i)){console.warn(`${H.BINDING} ${U.BINDING.INVALID_INPUT_ELEMENT(i)}`);return}let{fx:a,cleanup:o}=It((0,t.default)(e.el),n,r);q.trackEffect(e.el,a),e.trackCleanup(o)}function bn(e){e.type===`radio`&&e.name&&(e.form?(0,t.default)(e.form):(0,t.default)(document)).find(`input[type="radio"][name="${t.default.escapeSelector(e.name)}"]`).not(e).trigger(`change.atomRadioSync`)}function xn(e,n){let r=e.el,i=(0,t.default)(r),a=()=>{n.peek()!==r.checked&&(n.value=r.checked,bn(r))};a[Y]=!0,i.on(`change change.atomRadioSync`,a),e.trackCleanup(()=>i.off(`change change.atomRadioSync`,a)),q.trackEffect(r,z(()=>{let e=!!n.value;A(()=>{r.checked!==e&&(r.checked=e,G.domUpdated(H.BINDING,r,`checked`,e),e&&bn(r))})}))}function Sn(e,n){let r=(0,t.default)(e.el);r.on(n),e.trackCleanup(()=>r.off(n))}function Cn({el:e,trackCleanup:n},r,i){let a=(0,t.default)(e);a.on(r,i),n(()=>a.off(r,i))}function wn(e){q.cleanupTree(e)}var Tn=`input, select, textarea`,En=class{constructor(e,t,n={}){this.form=e,this.atom=t,this.options=n,this.fieldMap=new Map,this.fields=[],this.elementNames=new WeakMap,this.isSyncingFromLeaf=!1,this.init()}init(){let e=z(()=>{let e=this.atom.value;this.isSyncingFromLeaf||!this.fields.length||Oe(()=>{A(()=>{for(let t=0;t<this.fields.length;t++){let n=this.fields[t],r=B(e,n.parts);Object.is(n.atom.peek(),r)||(n.atom.value=r)}})})});q.trackEffect(this.form,e),this.bindElement(this.form),this.setupObserver()}bindElement(e){let t=e.matches?.(Tn)?[e]:e.querySelectorAll?.(Tn)||[];for(let e=0,n=t.length;e<n;e++)this.bindControl(t[e])}bindControl(e){if(!(e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement))return;let t=e,n=t.name;if(!n)return;let r=this.elementNames.get(t);if(r!==void 0&&r!==n&&q.cleanup(t),this.elementNames.has(t)&&r===n)return;let i=this.acquireField(n);this.elementNames.set(t,n);let a=xt(t);a.trackCleanup(()=>this.releaseField(t,n)),t instanceof HTMLInputElement&&(t.type===`radio`||t.type===`checkbox`)?this.bindToggle(a,i.atom,t.value,t.type===`checkbox`):yn(a,i.atom,this.options)}bindToggle(e,n,r,i){let a=e.el,o=()=>{let e=n.peek();if(i&&Array.isArray(e)){let t=new Set(e.map(String));a.checked?t.add(r):t.delete(r),n.value=Array.from(t)}else n.value=i?a.checked:r};o[Y]=!0,(0,t.default)(a).on(`change`,o),e.trackCleanup(()=>(0,t.default)(a).off(`change`,o)),q.trackEffect(a,z(()=>{let e=n.value,t=i?Array.isArray(e)?e.some(e=>String(e)===r):!!e:String(e)===r;a.checked!==t&&(a.checked=t)}))}acquireField(e){let t=this.fieldMap.get(e);if(t)return t.refCount++,t;let n=e.replace(/\[(\w+)\]/g,`.$1`).split(`.`).filter(Boolean),r=Ae(B(this.atom.peek(),n));return t={atom:r,parts:n,name:e,refCount:1,effect:null},t.effect=z(()=>{let t=r.value;this.options.transform&&(t=this.options.transform(e,t));let i=this.atom.peek(),a=Le(i,n,0,t);if(a!==i){this.isSyncingFromLeaf=!0;try{this.atom.value=a,this.options.onChange&&A(()=>this.options.onChange(e,t))}finally{this.isSyncingFromLeaf=!1}}}),this.fieldMap.set(e,t),this.fields.push(t),t}releaseField(e,t){let n=this.fieldMap.get(t);if(n&&--n.refCount<=0){let e=this.fields.indexOf(n);e!==-1&&this.fields.splice(e,1),n.effect?.dispose(),this.fieldMap.delete(t)}q.cleanup(e)}setupObserver(){let e=new MutationObserver(e=>{for(let t=0,n=e.length;t<n;t++){let n=e[t];if(n.type===`childList`)for(let e=0;e<n.addedNodes.length;e++){let t=n.addedNodes[e];t.nodeType===1&&this.bindElement(t)}else n.attributeName===`name`&&this.bindElement(n.target)}});e.observe(this.form,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`name`]}),q.trackCleanup(this.form,()=>e.disconnect())}};function Dn(e,t,n={}){new En(e,t,n)}t.default.fn.atomText=function(e,t){return J(this,n=>fn(n,e,t),{needsCtx:!0})},t.default.fn.atomHtml=function(e){return J(this,t=>pn(t,e),{needsCtx:!0})},t.default.fn.atomClass=function(e,t){let n=typeof e==`string`?t===void 0?null:{[e]:t}:e;return n?J(this,e=>mn(e,n),{needsCtx:!0}):(console.warn(`${H.BINDING} ${U.BINDING.MISSING_CONDITION(`atomClass`)}`),this)},t.default.fn.atomCss=function(e,t,n){let r=typeof e==`string`?t===void 0?null:{[e]:n?[t,n]:t}:e;return r?J(this,e=>hn(e,r),{needsCtx:!0}):(console.warn(`${H.BINDING} ${U.BINDING.MISSING_SOURCE(`atomCss`)}`),this)},t.default.fn.atomAttr=function(e,t){let n=typeof e==`string`?t===void 0?null:{[e]:t}:e;return n?J(this,e=>gn(e,n),{needsCtx:!0}):(console.warn(`${H.BINDING} ${U.BINDING.MISSING_SOURCE(`atomAttr`)}`),this)},t.default.fn.atomProp=function(e,t){let n=typeof e==`string`?t===void 0?null:{[e]:t}:e;return n?J(this,e=>_n(e,n),{needsCtx:!0}):(console.warn(`${H.BINDING} ${U.BINDING.MISSING_SOURCE(`atomProp`)}`),this)},t.default.fn.atomShow=function(e){return J(this,t=>vn(t,e,!1),{needsCtx:!0})},t.default.fn.atomHide=function(e){return J(this,t=>vn(t,e,!0),{needsCtx:!0})},t.default.fn.atomVal=function(e,t={}){return J(this,n=>yn(n,e,t),{needsCtx:!0})},t.default.fn.atomChecked=function(e){return J(this,t=>xn(t,e),{needsCtx:!0})},t.default.fn.atomForm=function(e,t={}){return J(this,(n,r)=>{r instanceof HTMLFormElement?Dn(r,e,t):G.log(H.BINDING,`Skipping non-Form element for atomForm`)},{needsCtx:!1})},t.default.fn.atomOn=function(e,t){return J(this,n=>Cn(n,e,t),{needsCtx:!0})};var On=[(e,t)=>fn(e,...St(t.text)),(e,t)=>pn(e,t.html),(e,t)=>mn(e,t.class),(e,t)=>hn(e,t.css),(e,t)=>gn(e,t.attr),(e,t)=>_n(e,t.prop),(e,t)=>vn(e,t.show,!1),(e,t)=>vn(e,t.hide,!0),(e,t)=>yn(e,...St(t.val)),(e,t)=>xn(e,t.checked),(e,t)=>{e.el instanceof HTMLFormElement&&Dn(e.el,...St(t.form))},(e,t)=>Sn(e,t.on)];t.default.fn.atomBind=function(e){let t=0;return e.text!==void 0&&(t|=1),e.html!==void 0&&(t|=2),e.class!==void 0&&(t|=4),e.css!==void 0&&(t|=8),e.attr!==void 0&&(t|=16),e.prop!==void 0&&(t|=32),e.show!==void 0&&(t|=64),e.hide!==void 0&&(t|=128),e.val!==void 0&&(t|=256),e.checked!==void 0&&(t|=512),e.form!==void 0&&(t|=1024),e.on!==void 0&&(t|=2048),t===0?this:J(this,n=>{let r=t;for(;r>0;){let t=r&-r;On[31-Math.clz32(t)](n,e),r^=t}},{needsCtx:!0})},t.default.fn.atomUnbind=function(){return J(this,(e,t)=>wn(t),{needsCtx:!1})};function kn(e){return e instanceof Element?(0,t.default)(e):e}function An(e,t){if(e instanceof Element)t===null?e.removeAttribute(`data-atom-key`):e.setAttribute(`data-atom-key`,t);else if(!e.nodeType){let n=e;for(let e=0,r=n.length;e<r;e++){let r=n[e];r instanceof Element&&(t===null?r.removeAttribute(`data-atom-key`):r.setAttribute(`data-atom-key`,t))}}}function jn(e){if(e instanceof Element)q.cleanupTree(e);else for(let t=0,n=e.length;t<n;t++){let n=e[t];n instanceof Element&&q.cleanupTree(n)}}var Mn=class{constructor(e,t,n){this.$container=e,this.containerSelector=t,this.onRemove=n,this.oldKeys=[],this.oldItems=[],this.oldNodes=[],this.removingKeys=new Set,this.$emptyEl=null,this.keyToIndex=new Map,this.statesBuffer=new Uint8Array(256),this.indicesBuffer=new Int32Array(256)}scheduleRemoval(e,t){let n=()=>{this.fx?.isDisposed||t[0]instanceof Element&&t[0].hasAttribute(`data-atom-key`)||(t[0]?.isConnected&&t.remove(),this.removingKeys.delete(e),G.log(H.LIST,`${this.containerSelector} removed item:`,e))},r=this.onRemove?.(t);r instanceof Promise?r.then(n,n):n()}removeItem(e,t){An(t,null),this.removingKeys.add(e),this.scheduleRemoval(e,t)}dispose(){this.removingKeys.clear(),this.oldKeys.length=0,this.oldItems.length=0,this.oldNodes.length=0,this.keyToIndex.clear(),this.$emptyEl?.remove(),this.$container.off(`.atomList`),this.statesBuffer=new Uint8Array,this.indicesBuffer=new Int32Array}ensureBuffers(e){this.statesBuffer.length<e&&(this.statesBuffer=new Uint8Array(Math.max(e,this.statesBuffer.length*2))),this.indicesBuffer.length<e&&(this.indicesBuffer=new Int32Array(Math.max(e,this.indicesBuffer.length*2)))}};function Nn(e,t,n,r,i,a,o){let{oldKeys:s,oldItems:c,oldNodes:l,removingKeys:u,keyToIndex:d}=e,f=s.length,p=0,m=f-1,h=n-1,g=a||Ge;for(;p<=m&&p<=h;){let e=t[p],n=r(e,p);if(s[p]!==n||!g(c[p],e)||!l[p])break;d.set(n,p++)}for(;m>=p&&h>=p;){let e=t[h],n=r(e,h);if(s[m]!==n||!g(c[m],e)||!l[m])break;d.set(n,h--),m--}let ee=o.map.acquire();for(let e=p;e<=m;e++)ee.set(s[e],e);let _=o.set.acquire();e.ensureBuffers(n);let v=o.array.acquire();v.length=n;let y=o.array.acquire();y.length=n;let b=o.array.acquire();b.length=n;let x=e.statesBuffer,S=e.indicesBuffer,C=o.array.acquire(),w=o.array.acquire(),T=o.array.acquire();for(let e=0;e<p;e++){let n=s[e];v[e]=n,y[e]=t[e],b[e]=l[e],x[e]=3,S[e]=e,_.add(n)}for(let e=f-1,r=n-1;r>h;r--,e--){let n=s[e];v[r]=n,y[r]=t[r],b[r]=l[e],x[r]=3,S[r]=e,_.add(n)}for(let n=p;n<=h;n++){let o=t[n],s=r(o,n);if(v[n]=s,y[n]=o,d.set(s,n),_.has(s)){G.warn(H.LIST,U.LIST.DUPLICATE_KEY(s,n,e.containerSelector)),S[n]=-1;continue}_.add(s);let f=ee.get(s);if(f===void 0){C.push(s),w.push(o),T.push(n),S[n]=-1,x[n]=1;continue}let p=c[f];b[n]=l[f],!i&&p!==o&&!(a?a(p,o):Ge(p,o))?(C.push(s),w.push(o),T.push(n),x[n]=2):x[n]=0,S[n]=u.has(s)?-1:f}return o.map.release(ee),{newKeys:v,newKeySet:_,newItems:y,newNodes:b,newStates:x,newIndices:S,trKeys:C,trItems:w,trIdxs:T,startIndex:p,oldEndIndex:m,newEndIndex:h}}var Pn=0;function Fn(e,t,n){if(!e)return;if(e instanceof Element){n.insertBefore(e,t);return}let r=e.length;for(let i=0;i<r;i++){let r=e[i];r&&n.insertBefore(r,t)}}function In(e,n,r,i,a){if(e.$emptyEl&&n>0&&(e.$emptyEl.remove(),e.$emptyEl=null),n!==0)return;let{oldKeys:o,oldNodes:s,onRemove:c}=e;if(c)for(let t=0,n=o.length;t<n;t++){let n=o[t];s[t]&&e.removeItem(n,kn(s[t]))}else{for(let t=0,n=o.length;t<n;t++)e.removingKeys.delete(o[t]);r.empty()}i&&!e.$emptyEl&&(e.$emptyEl=typeof i==`string`?(0,t.default)(Q(i)):(0,t.default)(i),e.$emptyEl.appendTo(r)),a.release(e.oldKeys),a.release(e.oldItems),a.release(e.oldNodes),e.oldKeys=[],e.oldItems=[],e.oldNodes=[]}function Ln(e,n,r){let{trKeys:i,trItems:a,trIdxs:o,newNodes:s,newStates:c}=e,l=i.length,u=Array(l),d=[],f=0;for(let e=0;e<l;e++){let t=n.render(a[e],o[e]);u[e]=t,typeof t==`string`&&(d.push(t),f++)}let p=null;if(d.length>0)if(d.length===1)p=[Q(d[0])];else{let e=`<template data-atom-sep="${(Pn++).toString(36)}"></template>`;p=Q(d.join(e)).split(e)}if(r&&p&&f===l&&!n.bind&&!n.onAdd&&!n.onRemove&&!n.events&&t.default.parseHTML(p.join(``)).length===l)return p;let m=0;for(let e=0;e<l;e++){let n=u[e],r=typeof n==`string`?(0,t.default)(t.default.parseHTML(p[m++])):(0,t.default)(n),a=o[e];if(An(r,String(i[e])),c[a]===2&&s[a]){let e=s[a];jn(e);let t=kn(e);t.first().before(r),t.remove()}s[a]=r.length===1?r[0]:r}return null}function Rn(e,t){let{startIndex:n,oldEndIndex:r,newKeySet:i}=t;for(let t=n;t<=r;t++){let n=e.oldKeys[t];!i.has(n)&&e.oldNodes[t]&&e.removeItem(n,kn(e.oldNodes[t]))}}function zn(e,n,r,i,a){let{newKeys:o,newItems:s,newNodes:c,newStates:l,newIndices:u}=n,d=o.length;if(a!==null){r.innerHTML=a.join(``);let n=r.firstElementChild;for(let r=0;r<d&&n;r++)n.setAttribute(`data-atom-key`,String(o[r])),c[r]=n,l[r]=0,e.removingKeys.delete(o[r]),G.domUpdated(H.LIST,(0,t.default)(n),`list.add`,s[r]),n=n.nextElementSibling;return}if(e.oldKeys.length===0&&e.removingKeys.size===0){let e=document.createDocumentFragment();for(let t=0;t<d;t++){let n=c[t];if(n)if(n instanceof Element)e.appendChild(n);else for(let t=0;t<n.length;t++)e.appendChild(n[t])}r.innerHTML=``,r.appendChild(e)}else{let e=null,t=2147483647;for(let n=d-1;n>=0;n--){let i=u[n],a=c[n];a&&(i!==-1&&i<t?t=i:Fn(a,e,r),e=a instanceof Element?a:a[0]??null)}}for(let t=0;t<d;t++){let n=l[t];if(n!==3){let r=c[t];if(!r)continue;let a=kn(r),l=s[t];n===0?i.update?.(a,l,t):i.bind?.(a,l,t),n===1&&(i.onAdd?.(a),e.removingKeys.delete(o[t]),G.domUpdated(H.LIST,a,`list.add`,l))}}}var Bn=new WeakMap,Vn=new dt(()=>new Map,e=>e.clear()),Hn=new dt(()=>new Set,e=>e.clear()),$=new ut(100,1024),Un={map:Vn,set:Hn,array:$};function Wn(e,n){let r=typeof n.key==`function`?n.key:e=>e[n.key],i={bind:n.bind,update:n.update,onAdd:n.onAdd,onRemove:n.onRemove,events:n.events};for(let a=0,o=this.length;a<o;a++){let o=this[a],s=(0,t.default)(o);s.off(`.atomList`);let c=Bn.get(o);c&&(c.fx.dispose(),c.ctx.dispose());let l=new Mn(s,We(o),n.onRemove),u=z(()=>{let t=e.value,a=t.length;A(()=>{if(In(l,a,s,n.empty,$),a===0)return;G.log(H.LIST,`${l.containerSelector} updating with ${a} items`);let e=Nn(l,t,a,r,n.update,n.isEqual,Un),c=Ln(e,n,l.oldKeys.length===0);if(Rn(l,e),zn(l,e,o,i,c),n.events)for(let t=e.startIndex;t<=e.oldEndIndex;t++)e.newKeySet.has(l.oldKeys[t])||l.keyToIndex.delete(l.oldKeys[t]);$.release(l.oldKeys),$.release(l.oldItems),$.release(l.oldNodes),l.oldKeys=e.newKeys,l.oldItems=e.newItems,l.oldNodes=e.newNodes,Hn.release(e.newKeySet),$.release(e.trKeys),$.release(e.trItems),$.release(e.trIdxs)})});if(l.fx=u,n.events)for(let e in n.events){if(!V.call(n.events,e))continue;let t=e.indexOf(` `),r=t===-1?e:e.slice(0,t),i=t===-1?`> *`:e.slice(t+1).trim(),a=n.events[e];s.on(`${r}.atomList`,i,function(e){let t=e.target.closest?.(`[data-atom-key]`),n=t?.getAttribute(`data-atom-key`);if(n==null)return;let r=n;if(!l.keyToIndex.has(n)){let e=Number(n);!Number.isNaN(e)&&l.keyToIndex.has(e)&&(r=e)}let i=l.keyToIndex.get(r);i!==void 0&&a.call(t,l.oldItems[i],i,e)})}q.trackEffect(o,u),Bn.set(o,{fx:u,ctx:l}),q.trackCleanup(o,()=>{l.dispose(),Bn.delete(o)})}return this}t.default.fn.atomList=Wn;var Gn=Object.freeze({});t.default.fn.atomMount=function(e,n){let r=n??Gn,i=e.name||`Component`;return J(this,(n,a)=>{q.cleanupTree(a);try{let n=A(()=>Oe(()=>e((0,t.default)(a),r)));typeof n==`function`&&q.setComponentCleanup(a,n)}catch(e){G.error(H.MOUNT,U.MOUNT.ERROR(i),e)}})},t.default.fn.atomUnmount=function(){return J(this,(e,t)=>wn(t))};function Kn(e,t){try{history.pushState(e,``,t)}catch(e){G.warn(H.ROUTE,`PushState failed (likely file:// protocol or security restriction). UI will update, but URL will not.`,e)}}var qn=class{parseQueryParams(e){let t={};return e&&new URLSearchParams(e).forEach((e,n)=>{t[n]=e}),t}constructor(e){this.isDestroyed=!1,this.previousRoute=``,this.cleanups=[],this.templateCache=new Map,this.routeCleanups=[],this.lastRawQuery=``,this.cachedParams={},this.config={mode:Ke.mode,basePath:Ke.basePath,autoBindLinks:Ke.autoBindLinks,activeClass:Ke.activeClass,notFound:e.notFound||``,beforeTransition:e.beforeTransition||(()=>{}),afterTransition:e.afterTransition||(()=>{}),...e},this.isHistoryMode=this.config.mode===`history`,this.basePath=this.config.basePath.replace(/\/$/,``),this.activeClass=this.config.activeClass,this.$target=(0,t.default)(this.config.target),this.previousUrl=this.isHistoryMode?location.pathname+location.search:location.hash,this.currentRouteAtom=Ae(this.getRouteName()),this.currentRoute=this.currentRouteAtom,this.queryParamsAtom=Ae(this.getQueryParams()),this.queryParams=Fe(()=>this.queryParamsAtom.value),this.init()}init(){let e=this.isHistoryMode?`popstate`:`hashchange`,t=this.handleUrlChange.bind(this);window.addEventListener(e,t),this.cleanups.push(()=>window.removeEventListener(e,t));let n=z(()=>{let e=this.currentRouteAtom.value;A(()=>{for(let e of this.routeCleanups)try{e()}catch{}this.routeCleanups.length=0}),this.renderRoute(e)});this.cleanups.push(()=>n.dispose()),this.setupAutoBindLinks(),this.$target[0]&&q.trackCleanup(this.$target[0],()=>this.destroy())}getRouteName(){let{default:e}=this.config;if(this.isHistoryMode){let t=this.basePath,n=location.pathname;return t&&(n===t||n.startsWith(`${t}/`))&&(n=n.substring(t.length)),n.replace(/^\/+/,``)||e}let t=location.hash,{route:n}=this.splitPath(t.startsWith(`#`)?t.substring(1):t);return n||e}getQueryParams(){let e=this.getCurrentRawQuery();if(e===this.lastRawQuery)return this.cachedParams;this.lastRawQuery=e;let t=this.parseQueryParams(e);return this.areParamsEqual(t,this.cachedParams)?this.cachedParams:(e.indexOf(`%`),this.cachedParams=t,t)}getCurrentRawQuery(){if(this.isHistoryMode)return location.search.substring(1);let e=location.hash,t=e.indexOf(`?`);return t===-1?``:e.substring(t+1)}areParamsEqual(e,t){let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(e[r]!==t[r])return!1;return!0}splitPath(e){let t=e.indexOf(`?`),n=t===-1?e:e.slice(0,t),r=t===-1?void 0:e.slice(t+1);return{route:n.replace(/^\/+/,``),query:r}}setUrl(e){let{route:t,query:n}=this.splitPath(e),r=n?`${t}?${n}`:t,i=this.isHistoryMode?`${this.basePath}/${r}`:`#${r}`;this.isHistoryMode?Kn(null,i):location.hash=i,this.previousUrl=this.isHistoryMode?i:location.hash}restoreUrl(){try{this.isHistoryMode?history.replaceState(null,``,this.previousUrl):location.hash=this.previousUrl}catch(e){G.warn(H.ROUTE,`Restore URL failed`,e)}}renderRoute(e){if(this.isDestroyed||!this.$target[0])return;let{routes:t,notFound:n,beforeTransition:r,afterTransition:i}=this.config,a=t[e]??(n?t[n]:void 0);if(!a){G.warn(H.ROUTE,U.ROUTE.NOT_FOUND(e));return}let o=this.getQueryParams(),s=this.previousRoute;r&&A(()=>r(s,e)),this.$target.empty();let c=o;if(a.onEnter){let e=A(()=>a.onEnter(o,this));e&&(c={...o,...e})}let l=e=>this.routeCleanups.push(e);if(a.render)a.render(this.$target[0],e,c,l,this);else if(a.template){let e=this.templateCache.get(a.template);if(!e){let t=document.querySelector(a.template);if(t instanceof HTMLTemplateElement)e=t,this.templateCache.set(a.template,e);else{G.warn(H.ROUTE,U.ROUTE.TEMPLATE_NOT_FOUND(a.template));return}}this.$target.append(e.content.cloneNode(!0)),a.onMount&&a.onMount(this.$target.children(),l,this)}i&&A(()=>i(s,e)),this.previousRoute=e}handleUrlChange(){if(this.isDestroyed)return;let e=this.isHistoryMode?location.pathname+location.search:location.hash;if(e===this.previousUrl)return;let t=this.getRouteName(),n=this.currentRouteAtom.peek();if(n!==t){if(A(()=>this.config.routes[n]?.onLeave?.(this))===!1){this.restoreUrl();return}this.currentRouteAtom.value=t}this.queryParamsAtom.value=this.getQueryParams(),this.previousUrl=e}setupAutoBindLinks(){if(!this.config.autoBindLinks)return;let e=e=>{e.preventDefault();let t=e.currentTarget.dataset.route;t!=null&&this.navigate(t)};(0,t.default)(document).on(`click`,`[data-route]`,e),this.cleanups.push(()=>(0,t.default)(document).off(`click`,`[data-route]`,e));let n=[],r=z(()=>{let e=this.currentRouteAtom.value,t=this.activeClass;A(()=>{for(let e of n)e.classList.remove(t),e.removeAttribute(`aria-current`);try{let r=`[data-route="${e.replace(/"/g,`\\"`)}"]`,i=Array.from(document.querySelectorAll(r));for(let e of i)e.classList.add(t),e.setAttribute(`aria-current`,`page`);n=i}catch{n=[]}})});this.cleanups.push(()=>{r.dispose(),n.length=0})}navigate(e){if(this.isDestroyed)return;let n=this.currentRouteAtom.peek();if(this.config.routes[n]?.onLeave?.(this)===!1)return;let{route:r,query:i}=this.splitPath(e),a=r||this.config.default||``;a&&t.default.batch(()=>{this.setUrl(e);let t=i?this.parseQueryParams(i):{};this.areParamsEqual(t,this.queryParamsAtom.peek())||(this.queryParamsAtom.value=t),this.currentRouteAtom.value=a})}destroy(){if(!this.isDestroyed){this.isDestroyed=!0;for(let e of this.cleanups)try{e()}catch{}this.cleanups.length=0,this.templateCache.clear()}}};function Jn(e){return new qn(e)}t.default.extend({route:Jn});var Yn=class{constructor(e,n){this.abortController=null,this.execute=async()=>{this.abort();let e=new AbortController;this.abortController=e;let{signal:n}=e,r;try{let e=this.prepareSettings(),i=t.default.ajax(e);r=()=>i.abort(),n.addEventListener(`abort`,r),n.aborted&&i.abort();let a=await i;return this.transformFn?this.transformFn(a):a}catch(e){if(n.aborted)throw this.createAbortError();return this.handleError(e)}finally{r&&n.removeEventListener(`abort`,r),this.abortController===e&&(this.abortController=null)}};let r=typeof e==`string`;this.isStaticUrl=r,r?(this.staticUrl=e,this.getUrl=()=>this.staticUrl):this.getUrl=e,this.ajaxOptionsFn=typeof n.ajaxOptions==`function`?n.ajaxOptions:void 0;let i=typeof n.ajaxOptions==`object`?n.ajaxOptions:{};this.staticOptions={...i,headers:{...i?.headers,...n.headers}},n.method&&(this.staticOptions.method=n.method),this.transformFn=n.transform,this.onErrorFn=n.onError}abort(){this.abortController?.abort()}handleError(e){let t;if(e&&e.readyState!==void 0){let n=e;t=Error(`Network Error: ${n.statusText||`Unknown`} (${n.status})`),t.jqXHR=n}else t=e instanceof Error?e:Error(String(e??`Unknown error`));if(this.onErrorFn)try{this.onErrorFn(t)}catch{}throw t}prepareSettings(){let e=this.ajaxOptionsFn?.()??{};return{...this.staticOptions,...e,headers:{...this.staticOptions.headers,...e.headers},url:this.isStaticUrl?this.staticUrl:this.getUrl(),success:void 0,error:void 0,complete:void 0}}createAbortError(){let e=Error(`AbortError`);return e.name=`AbortError`,e}};t.default.extend({atomFetch(e,t){let n=new Yn(e,t),r=Fe(n.execute,{defaultValue:t.defaultValue,lazy:t.eager===!1}),i=r.dispose.bind(r);return r.dispose=()=>{n.abort(),i()},Object.assign(r,{abort:()=>n.abort()})}}),(0,t.default)(()=>{jt(),document.body&&yt(document.body)}),e.default=t.default,e.disableAutoCleanup=bt,e.disablejQueryOverrides=Mt,e.enableAutoCleanup=yt,e.enablejQueryOverrides=jt,e.isReactive=He,e.nextTick=lt,e.registry=q});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`jquery`)):typeof define==`function`&&define.amd?define([`exports`,`jquery`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.AtomEffectJQuery={},e.jQuery))})(this,function(e,t){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=a(t),l=0,u=c.length,d;l<u;l++)d=c[l],!s.call(e,d)&&d!==n&&r(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(o=i(t,d))||o.enumerable});return e};t=((e,t,i)=>(i=e==null?{}:n(o(e)),c(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)))(t,1);var l={DISPOSED:1,IS_COMPUTED:2,DIRTY:256,RECOMPUTING:512,HAS_ERROR:1024,FORCE_COMPUTE:2048,IDLE:65536,PENDING:131072,RESOLVED:262144,REJECTED:524288,ATOM_SYNC:16777216,ATOM_NOTIFICATION_SCHEDULED:33554432,EFFECT_EXECUTING:268435456};Object.freeze({ASYNC_STATE:l.IDLE|l.PENDING|l.RESOLVED|l.REJECTED,COMPUTED_DIRTY_MASK:l.DIRTY|l.RECOMPUTING|l.FORCE_COMPUTE});var u=Object.freeze({IDLE:`idle`,PENDING:`pending`,RESOLVED:`resolved`,REJECTED:`rejected`}),d=Object.freeze({DISPOSED:l.DISPOSED,EXECUTING:l.EFFECT_EXECUTING}),f=Object.freeze({DISPOSED:l.DISPOSED,IS_COMPUTED:l.IS_COMPUTED,DIRTY:l.DIRTY,IDLE:l.IDLE,PENDING:l.PENDING,RESOLVED:l.RESOLVED,REJECTED:l.REJECTED,RECOMPUTING:l.RECOMPUTING,HAS_ERROR:l.HAS_ERROR,FORCE_COMPUTE:l.FORCE_COMPUTE}),p=Object.freeze({DISPOSED:l.DISPOSED,SYNC:l.ATOM_SYNC,NOTIFICATION_SCHEDULED:l.ATOM_NOTIFICATION_SCHEDULED}),m=Object.freeze({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}),h=1073741823,g=Object.freeze({WARN_INFINITE_LOOP:!0,EFFECT_FREQUENCY_WINDOW:1e3,LOOP_THRESHOLD:100}),_=Object.freeze({MAX_PROMISE_ID:h}),v=Object.freeze({UNINITIALIZED:-1,MIN:1}),y=!1;try{y=!!(typeof globalThis<`u`&&globalThis.__ATOM_DEBUG__||typeof sessionStorage<`u`&&sessionStorage.getItem(`__ATOM_DEBUG__`)===`true`)}catch{}var b=(typeof process<`u`&&process.env,typeof __DEV__<`u`&&!!__DEV__||y),x=Object.freeze([]),S=class e extends Error{constructor(e,t=null,n=!0,r){super(e),this.cause=t,this.recoverable=n,this.code=r,this.name=`AtomError`,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}getChain(){let t=this.cause;if(t==null)return[this];let n=[this],r=t,i=null;for(;r!=null&&(n.push(r),!(r===this||i?.has(r)));){if(r instanceof e)r=r.cause;else if(r instanceof Error)r=r.cause;else break;n.length>3&&(i===null?i=new Set(n):i.add(r))}return n}toJSON(t){let n=t??new Set;if(n.has(this))return{name:this.name,message:`[Circular Reference]`,recoverable:this.recoverable,code:this.code};n.add(this);let r=this.cause;return r instanceof e?r=r.toJSON(n):r instanceof Error&&(r={name:r.name,message:r.message,stack:r.stack,cause:r.cause}),{name:this.name,message:this.message,code:this.code,recoverable:this.recoverable,stack:this.stack,cause:r}}static format(e,t,n){return`${e} (${t}): ${n}`}},C=class extends S{constructor(...e){super(...e),this.name=`ComputedError`}},w=class extends S{constructor(e,t=null,n=!1,r){super(e,t,n,r),this.name=`EffectError`}},ee=class extends S{constructor(e,t=null,n=!1,r){super(e,t,n,r),this.name=`SchedulerError`}},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:(e,t)=>`Maximum flush iterations (${e}) exceeded. ${t} 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.`,SCHEDULER_CALLBACK_MUST_BE_FUNCTION:`Scheduler callback must be a function`,SCHEDULER_END_BATCH_WITHOUT_START:`endBatch() called without matching startBatch(). Ignoring.`,BATCH_CALLBACK_MUST_BE_FUNCTION:`Batch callback must be a function`};function E(e,t,n){return e instanceof S?new t(`${e.name} (${n}): ${e.message}`,e,e.recoverable,e.code):e instanceof Error?new t(`${e.name||`Error`} (${n}): ${e.message}`,e):new t(`Unexpected error (${n}): ${String(e)}`,e)}var te=Symbol(`AtomEffect.DebugName`),ne=Symbol(`AtomEffect.Id`),re=Symbol(`AtomEffect.Type`),ie=Symbol(`AtomEffect.NoDefaultValue`),ae=`[Atom Effect]`,oe=()=>{},D=b?new class{constructor(){this.enabled=!0,this.warnInfiniteLoop=g.WARN_INFINITE_LOOP,this._updateCounts=new Map,this._nodeRegistry=new Map,this._threshold=g.LOOP_THRESHOLD,this._cleanupScheduled=!1,this.warn=(e,t)=>{this.enabled&&e&&console.warn(`${ae} ${t}`)},this.registerNode=e=>{this._nodeRegistry.set(e.id,new WeakRef(e))},this.attachDebugInfo=(e,t,n,r)=>{if(!this.enabled)return;let i=e;i[te]=r??`${t}_${n}`,i[ne]=n,i[re]=t,this.registerNode(e)},this.trackUpdate=(e,t)=>{if(!this.enabled||!this.warnInfiniteLoop)return;let n=this._updateCounts,r=(n.get(e)??0)+1;r>this._threshold?this.warn(!0,`Infinite loop detected for ${t??`dependency ${e}`}. Over ${this._threshold} updates in a single execution scope.`):n.set(e,r),this._cleanupScheduled||(this._cleanupScheduled=!0,queueMicrotask(()=>{this._updateCounts.clear(),this._cleanupScheduled=!1}))},this.dumpGraph=()=>{let e=[];for(let[t,n]of this._nodeRegistry){let r=n.deref();r?e.push({id:t,name:this.getDebugName(r),type:this.getDebugType(r),updateCount:this._updateCounts.get(t)??0}):(this._nodeRegistry.delete(t),this._updateCounts.delete(t))}return e},this.getDebugName=e=>{if(e!=null)return e[te]},this.getDebugType=e=>{if(e!=null)return e[re]}}}:{enabled:!1,warnInfiniteLoop:!1,warn:oe,registerNode:oe,attachDebugInfo:oe,trackUpdate:oe,dumpGraph:()=>[],getDebugName:()=>{},getDebugType:()=>{}},se=1,ce=()=>se++|0,le=class{constructor(){this._count=0,this._actualCount=0,this._s0=null,this._s1=null,this._s2=null,this._s3=null,this._overflow=null,this._freeIndices=null}_rawWrite(e,t){if(e<4)e===0?this._s0=t:e===1?this._s1=t:e===2?this._s2=t:this._s3=t;else{this._overflow===null&&(this._overflow=[]);let n=this._overflow;n[e-4]=t}}_rawAdd(e){if(this._s0===null)return this._s0=e,0;if(this._s1===null)return this._s1=e,1;if(this._s2===null)return this._s2=e,2;if(this._s3===null)return this._s3=e,3;this._overflow===null&&(this._overflow=[]);let t=this._overflow,n=this._freeIndices;if(n!==null&&n.length>0){let r=n.pop();return t[r]=e,r+4}return t.push(e),3+t.length}_rawSwap(e,t){if(e===t)return;let n=this.getAt(e),r=this.getAt(t);this._rawWrite(e,r),this._rawWrite(t,n)}get size(){return this._actualCount}get physicalSize(){return this._count}getAt(e){if(e<4)return e===0?this._s0:e===1?this._s1:e===2?this._s2:e===3?this._s3:null;let t=this._overflow;return t===null?null:t[e-4]??null}setAt(e,t){let n=this.getAt(e);n!==t&&(this._rawWrite(e,t),n===null?this._actualCount++:t===null&&this._actualCount--,t===null?this._shrinkPhysicalSizeFrom(e):e>=this._count&&(this._count=e+1))}_shrinkPhysicalSizeFrom(e){if(e===this._count-1){if(this._count--,this._count>4){let e=this._overflow;for(;this._count>4&&e[this._count-5]===null;)this._count--}this._count===4&&this._s3===null&&(this._count=3,this._s2===null&&(this._count=2,this._s1===null&&(this._count=1,this._s0===null&&(this._count=0))))}}truncateFrom(e){e<=3&&(e<=3&&this._s3!==null&&(this._onItemRemoved(this._s3),this._s3=null,this._actualCount--),e<=2&&this._s2!==null&&(this._onItemRemoved(this._s2),this._s2=null,this._actualCount--),e<=1&&this._s1!==null&&(this._onItemRemoved(this._s1),this._s1=null,this._actualCount--),e<=0&&this._s0!==null&&(this._onItemRemoved(this._s0),this._s0=null,this._actualCount--));let t=this._overflow;if(t!==null){let n=e>4?e-4:0,r=t.length;for(let e=n;e<r;e++){let n=t[e];n!=null&&(this._onItemRemoved(n),t[e]=null,this._actualCount--)}e<=4?this._overflow=null:t.length=e-4}this._count=e,this._actualCount<0&&(this._actualCount=0),this._freeIndices=null}_onItemRemoved(e){}add(e){let t=this._rawAdd(e);return t>=this._count&&(this._count=t+1),this._actualCount++,t}remove(e){let t=-1;if(this._s0===e)t=0;else if(this._s1===e)t=1;else if(this._s2===e)t=2;else if(this._s3===e)t=3;else{let n=this._overflow;n!==null&&(t=n.indexOf(e),t!==-1&&(t+=4))}return t===-1?!1:(this._rawWrite(t,null),this._shrinkPhysicalSizeFrom(t),this._actualCount--,t>=4&&(this._freeIndices===null&&(this._freeIndices=[]),this._freeIndices.push(t-4)),!0)}has(e){if(this._actualCount===0)return!1;if(this._s0===e||this._s1===e||this._s2===e||this._s3===e)return!0;let t=this._overflow;return t===null?!1:t.indexOf(e)!==-1}forEach(e){let t=this._actualCount;if(t===0)return;if(t===this._count){if(e(this._s0),t>1&&(e(this._s1),t>2&&(e(this._s2),t>3&&(e(this._s3),t>4)))){let t=this._overflow;for(let n=0,r=t.length;n<r;n++)e(t[n])}return}let n=0;if(this._s0!==null&&(e(this._s0),++n>=t)||this._s1!==null&&(e(this._s1),++n>=t)||this._s2!==null&&(e(this._s2),++n>=t)||this._s3!==null&&(e(this._s3),++n>=t))return;let r=this._overflow;if(r!==null)for(let i=0,a=r.length;i<a;i++){let a=r[i];if(a!=null&&(e(a),++n>=t))return}}compact(){let e=this._actualCount;if(e===this._count)return;if(e===0){this.clear();return}let t=0,n=this._count;for(let r=0;r<n;r++){let n=this.getAt(r);if(n!==null&&(r!==t&&(this._rawWrite(t,n),this._rawWrite(r,null)),t++,t===e))break}this._count=e,this._overflow!==null&&(t<=4?this._overflow=null:this._overflow.length=t-4),this._freeIndices=null}clear(){this._s0=this._s1=this._s2=this._s3=null,this._count=0,this._actualCount=0,this._overflow=null,this._freeIndices=null}dispose(){this.clear()}},ue=class extends le{constructor(...e){super(...e),this._map=null,this._SCAN_THRESHOLD=32,this.hasComputeds=!1}prepareTracking(){this.hasComputeds=!1}_onItemRemoved(e){e.unsub?.()}setAt(e,t){let n=this.getAt(e);super.setAt(e,t),this._map!==null&&(n!==null&&this._map.delete(n.node),t!==null&&this._map.set(t.node,e))}claimExisting(e,t){let n=this._count;if(n<=t)return!1;let r=null;if(r=t<4?t===0?this._s0:t===1?this._s1:t===2?this._s2:this._s3:this._overflow[t-4]??null,r&&r.node===e&&r.unsub)return r.version=e.version,!0;if(this._map!==null||n-t>this._SCAN_THRESHOLD)return this._claimViaMap(e,t);let i=-1,a=null,o=t+1;for(;o<4&&o<n;o++){let t=o===1?this._s1:o===2?this._s2:this._s3;if(t&&t.node===e&&t.unsub){i=o,a=t;break}}if(i===-1&&o<n){let t=this._overflow;for(let r=o-4,s=n-4;r<s;r++){let n=t[r];if(n&&n.node===e&&n.unsub){i=r+4,a=n;break}}}return i===-1?!1:(a.version=e.version,this._rawWrite(t,a),this._rawWrite(i,r),!0)}_claimViaMap(e,t){this._map===null&&(this._map=this._initMap());let n=this._map,r=n.get(e);if(r===void 0||r<t)return!1;let i=this.getAt(r);if(i===null||!i.unsub)return!1;if(i.version=e.version,r!==t){let i=this.getAt(t);this._rawSwap(r,t),n.set(e,t),i?.unsub&&n.set(i.node,r)}return!0}_initMap(){let e=new Map;this._s0?.unsub&&e.set(this._s0.node,0),this._s1?.unsub&&e.set(this._s1.node,1),this._s2?.unsub&&e.set(this._s2.node,2),this._s3?.unsub&&e.set(this._s3.node,3);let t=this._overflow;if(t!==null)for(let n=0,r=t.length;n<r;n++){let r=t[n];r?.unsub&&e.set(r.node,n+4)}return e}insertNew(e,t){let n=null;if(e<4)e===0?(n=this._s0,this._s0=t):e===1?(n=this._s1,this._s1=t):e===2?(n=this._s2,this._s2=t):(n=this._s3,this._s3=t);else{this._overflow===null&&(this._overflow=[]);let r=this._overflow;n=r[e-4]??null,r[e-4]=t}if(n!==null){let e=this._rawAdd(n);e>=this._count&&(this._count=e+1),this._map!==null&&n.unsub&&this._map.set(n.node,e)}e>=this._count&&(this._count=e+1),this._actualCount++,this._map!==null&&t.unsub&&this._map.set(t.node,e)}add(e){let t=super.add(e);return this._map!==null&&e.unsub&&this._map.set(e.node,t),t}remove(e){throw Error(`remove() prohibited`)}compact(){}truncateFrom(e){super.truncateFrom(e),this._map!==null&&(this._map=null)}disposeAll(){this.truncateFrom(0),this.hasComputeds=!1}},O=Symbol.for(`atom-effect/brand`),k={Atom:1,Writable:2,Computed:4,Effect:8};function de(e,t){return!e||typeof e!=`object`&&typeof e!=`function`?!1:!!(e[O]&t)}function fe(e){return de(e,k.Atom)}function pe(e){return de(e,k.Computed)}function me(e){return e instanceof Promise?!0:typeof e!=`object`||!e?!1:typeof e.then==`function`}var he=class{constructor(e,t,n=void 0){this.node=e,this.version=t,this.unsub=n}},ge=class{constructor(e=void 0,t=void 0){this.fn=e,this.sub=t}notify(e,t){let n=this.fn,r=this.sub;if(n===void 0&&r===void 0)return;let i=A,a=i.current;if(a===null){n!==void 0&&n(e,t),r!==void 0&&r.execute();return}i.current=null;try{n!==void 0&&n(e,t),r!==void 0&&r.execute()}finally{i.current=a}}},A=new class{constructor(){this.current=null}run(e,t){if(this.current===e)return t();let n=this.current;this.current=e;try{if(!b)return t();let e=t();return D.warn(me(e),`Detected Promise returned within tracking context. Dependencies accessed after "await" will NOT be tracked. Consider using synchronous tracking before the async boundary.`),e}finally{this.current=n}}};function j(e){let t=A,n=t.current;if(n===null)return e();t.current=null;try{return e()}finally{t.current=n}}var _e=class{constructor(){this.flags=0,this.version=0,this._lastSeenEpoch=v.UNINITIALIZED,this._notifying=0,this._hotIndex=-1,this.id=ce()&h,this._nextEpoch=void 0,this._slots=null,this._deps=null}get isDisposed(){return(this.flags&f.DISPOSED)!==0}get isComputed(){return(this.flags&f.IS_COMPUTED)!==0}get hasError(){return!1}subscribe(e){let t=typeof e==`function`;if(!t&&(e===null||typeof e.execute!=`function`))throw E(TypeError(`Invalid subscriber`),S,T.ATOM_SUBSCRIBER_MUST_BE_FUNCTION);let n=this._slots;if(n===null&&(n=new le,this._slots=n),n.size>0){let r=!1;if(n._s0!==null&&(n._s0.fn===e||n._s0.sub===e)||n._s1!==null&&(n._s1.fn===e||n._s1.sub===e)||n._s2!==null&&(n._s2.fn===e||n._s2.sub===e)||n._s3!==null&&(n._s3.fn===e||n._s3.sub===e))r=!0;else{let i=n._overflow;if(i!==null){let n=i.length;if(t)for(let t=0;t<n;t++){let n=i[t];if(n!==null&&n?.fn===e){r=!0;break}}else for(let t=0;t<n;t++){let n=i[t];if(n!==null&&n?.sub===e){r=!0;break}}}}if(r)return b&&console.warn(`[atom-effect] Duplicate subscription ignored on node ${this.id}`),()=>{}}let r=new ge(t?e:void 0,t?void 0:e);return n.add(r),()=>this._unsubscribe(r)}_unsubscribe(e){let t=this._slots;t!==null&&(t.remove(e),this._notifying===0&&t.compact())}subscriberCount(){let e=this._slots;return e===null?0:e.size}_notifySubscribers(e,t){let n=this._slots;if(!(n===null||n.size===0)){this._notifying++;try{if(n._s0!==null)try{n._s0.notify(e,t)}catch(e){this._logNotifyError(e)}if(n._s1!==null)try{n._s1.notify(e,t)}catch(e){this._logNotifyError(e)}if(n._s2!==null)try{n._s2.notify(e,t)}catch(e){this._logNotifyError(e)}if(n._s3!==null)try{n._s3.notify(e,t)}catch(e){this._logNotifyError(e)}let r=n._overflow;if(r!==null)for(let n=0,i=r.length;n<i;n++){let i=r[n];if(i!==null)try{i?.notify(e,t)}catch(e){this._logNotifyError(e)}}}finally{--this._notifying===0&&n.compact()}}}_logNotifyError(e){console.error(E(e,S,T.ATOM_INDIVIDUAL_SUBSCRIBER_FAILED))}_isDirty(){let e=this._deps;if(e===null||e.size===0)return!1;let t=this._hotIndex;if(t!==-1){let n=e.getAt(t);if(n!==null&&n.node.version!==n.version)return!0}return this._deepDirtyCheck()}},ve=0;function ye(){let e=ve+1&h;return ve=e===0?1:e,ve}function be(e){let t=e+1&h;return t===0?1:t}var xe=0,Se=!1,Ce=0;function we(){return Ce}function Te(){return Se?(b&&console.warn(`startFlush() called during flush - ignored`),!1):(Se=!0,Ce=ye(),xe=0,!0)}function Ee(){Se=!1}function De(){if(!Se)return 0;let e=++xe;if(e<=m.MAX_EXECUTIONS_PER_FLUSH)return e;throw Error(`[atom-effect] Infinite loop detected: flush execution count exceeded ${m.MAX_EXECUTIONS_PER_FLUSH}`)}var M=new class{constructor(){this._bufferIndex=0,this._size=0,this._epoch=0,this._batchDepth=0,this._batchQueueSize=0,this._maxFlushIterations=m.MAX_FLUSH_ITERATIONS,this._isProcessing=!1,this._isFlushingSync=!1,this._buffer0=[],this._buffer1=[],this._batchQueue=[],this.onOverflow=null,this._boundRunLoop=this._runLoop.bind(this)}get queueSize(){return this._size+this._batchQueueSize}get isBatching(){return this._batchDepth>0}schedule(e){if(b&&typeof e!=`function`&&(!e||typeof e.execute!=`function`))throw new ee(T.SCHEDULER_CALLBACK_MUST_BE_FUNCTION);let t=this._epoch;if(e._nextEpoch===t)return;if(e._nextEpoch=t,this._batchDepth>0||this._isFlushingSync){this._batchQueue[this._batchQueueSize++]=e;return}let n=this._bufferIndex===0?this._buffer0:this._buffer1;n[this._size++]=e,this._isProcessing||this._flush()}_flush(){this._isProcessing||this._size===0&&this._batchQueueSize===0||(this._isProcessing=!0,queueMicrotask(this._boundRunLoop))}_runLoop(){try{if(this._size===0&&this._batchQueueSize===0)return;let e=Te();this._drainQueue(),e&&Ee()}finally{this._isProcessing=!1}}_flushSync(){if(this._size===0&&this._batchQueueSize===0)return;let e=this._isFlushingSync;this._isFlushingSync=!0;let t=Te();try{this._mergeBatchQueue(),this._drainQueue()}finally{this._isFlushingSync=e,t&&Ee()}}_mergeBatchQueue(){let e=this._batchQueueSize;if(e===0)return;let t=++this._epoch|0,n=this._batchQueue,r=this._bufferIndex===0?this._buffer0:this._buffer1,i=this._size;for(let a=0;a<e;a++){let e=n[a];e._nextEpoch!==t&&(e._nextEpoch=t,r[i++]=e),n[a]=void 0}this._size=i,this._batchQueueSize=0,n.length>m.BATCH_QUEUE_SHRINK_THRESHOLD&&(n.length=0)}_drainQueue(){let e=0;for(;this._size>0||this._batchQueueSize>0;){if(++e>this._maxFlushIterations){this._handleFlushOverflow();return}this._batchQueueSize>0&&this._mergeBatchQueue(),this._size>0&&this._processQueue()}}_processQueue(){let e=this._bufferIndex,t=e===0?this._buffer0:this._buffer1,n=this._size;this._bufferIndex=e^1,this._size=0,this._epoch=this._epoch+1|0;for(let e=0;e<n;e++){let n=t[e];t[e]=void 0;try{typeof n==`function`?n():n.execute()}catch(e){console.error(new ee(`Error occurred during scheduler execution`,e))}}}_handleFlushOverflow(){let e=this._size+this._batchQueueSize;console.error(new ee(T.SCHEDULER_FLUSH_OVERFLOW(this._maxFlushIterations,e))),this._size=0,this._buffer0.length=0,this._buffer1.length=0,this._batchQueueSize=0,this._batchQueue.length=0;let t=this.onOverflow;if(t)try{t(e)}catch{}}startBatch(){this._batchDepth++}endBatch(){if(this._batchDepth===0){b&&console.warn(T.SCHEDULER_END_BATCH_WITHOUT_START);return}--this._batchDepth===0&&(this._isFlushingSync||this._flushSync())}setMaxFlushIterations(e){if(e<m.MIN_FLUSH_ITERATIONS)throw new ee(`Max iterations must be at least ${m.MIN_FLUSH_ITERATIONS}`);this._maxFlushIterations=e}};function Oe(e){if(b&&typeof e!=`function`)throw TypeError(T.BATCH_CALLBACK_MUST_BE_FUNCTION);M.startBatch();try{return e()}finally{M.endBatch()}}var ke=null;function Ae(e){return e?new Promise((t,n)=>{M.schedule(()=>{try{e(),t()}catch(e){n(e)}})}):ke||(ke=new Promise(e=>{M.schedule(()=>{ke=null,e()})}),ke)}var je=class extends _e{constructor(e,t){super(),this[O]=k.Atom|k.Writable,this._value=e,this._equal=t.equal??Object.is,t.sync&&(this.flags|=p.SYNC),b&&D.attachDebugInfo(this,`atom`,this.id,t.name)}get isNotificationScheduled(){return(this.flags&p.NOTIFICATION_SCHEDULED)!==0}get isSync(){return(this.flags&p.SYNC)!==0}get value(){return A.current?.addDependency(this),this._value}set value(e){let t=this._value;if(this._equal(t,e))return;this._value=e,this.version=be(this.version),b&&D.trackUpdate(this.id,D.getDebugName(this));let n=this.flags,r=p.NOTIFICATION_SCHEDULED;if((n&r)!==0)return;let i=this._slots;if(i===null||i.size===0)return;this._pendingOldValue=t;let a=n|r;if(this.flags=a,(a&p.SYNC)!==0&&!M.isBatching){this._notifying===0&&this._flushNotifications();return}M.schedule(this)}execute(){this._flushNotifications()}_flushNotifications(){let e=p.NOTIFICATION_SCHEDULED,t=p.DISPOSED,n=p.SYNC,r=e|t,i=this.flags;for(;(i&r)===e;){let t=this._pendingOldValue;this._pendingOldValue=void 0,this.flags=i&=~e;let r=this._value;if(this._equal(r,t)||this._notifySubscribers(r,t),i=this.flags,(i&n)===0||M.isBatching)break}}peek(){return this._value}dispose(){let e=this.flags,t=p.DISPOSED;(e&t)===0&&(this.flags=e|t,this._slots?.clear(),this._value=void 0,this._pendingOldValue=void 0,this._equal=Object.is)}_deepDirtyCheck(){return!1}};function Me(e,t={}){return new je(e,t)}var{IDLE:N,DIRTY:P,PENDING:F,RESOLVED:I,REJECTED:L,HAS_ERROR:Ne,RECOMPUTING:R,DISPOSED:Pe,IS_COMPUTED:z,FORCE_COMPUTE:Fe}=f,Ie=class extends _e{constructor(e,t={}){if(typeof e!=`function`)throw new C(T.COMPUTED_MUST_BE_FUNCTION);if(super(),this[O]=k.Atom|k.Computed,this._promiseId=0,this._trackEpoch=v.UNINITIALIZED,this._trackCount=0,this._error=null,this._deps=new ue,this._value=void 0,this.flags=z|P|N,this._equal=t.equal??Object.is,this._computation=e,this._defaultValue=`defaultValue`in t?t.defaultValue:ie,this._onError=t.onError??null,D.attachDebugInfo(this,`computed`,this.id,t.name),t.lazy===!1)try{this._recompute()}catch{}}get isDirty(){return(this.flags&P)!==0}get isRejected(){return(this.flags&L)!==0}get isRecomputing(){return(this.flags&R)!==0}get value(){let e=A.current;e!==null&&e.addDependency(this);let t=this.flags;if((t&(I|P|N|Pe|R))===I)return this._value;if((t&Pe)!==0)throw new C(T.COMPUTED_DISPOSED);if((t&R)!==0){let e=this._defaultValue;if(e!==ie)return e;throw new C(T.COMPUTED_CIRCULAR_DEPENDENCY)}if((t&(P|N))!==0){let e=this._deps;if((t&(N|Fe))!==0||e.size===0||this._isDirty()?this._recompute():this.flags&=~P,(this.flags&I)!==0)return this._value}let n=this._defaultValue,r=n!==ie;if((this.flags&F)!==0){if(r)return n;throw new C(T.COMPUTED_ASYNC_PENDING_NO_DEFAULT)}if((this.flags&L)!==0){if(r)return n;throw this._error}return this._value}peek(){return this._value}get state(){let e=A.current;e!==null&&e.addDependency(this);let t=this.flags;return(t&I)===0?(t&F)===0?(t&L)===0?u.IDLE:u.REJECTED:u.PENDING:u.RESOLVED}get hasError(){let e=A.current;if(e!==null&&e.addDependency(this),(this.flags&(L|Ne))!==0)return!0;let t=this._deps;return t.hasComputeds?j(()=>{let e=t.size;for(let n=0;n<e;n++)if(t.getAt(n)?.node.hasError)return!0;return!1}):!1}get isValid(){return!this.hasError}get errors(){let e=A.current;e!==null&&e.addDependency(this);let t=this._error,n=this._deps;if(!n.hasComputeds)return t===null?x:Object.freeze([t]);let r=[];return t!==null&&r.push(t),j(()=>{let e=n.size;for(let t=0;t<e;t++){let e=n.getAt(t)?.node;e!==void 0&&(e.flags&z)!==0&&this._accumulateErrors(e,r)}}),r.length===0?x:Object.freeze(r)}_accumulateErrors(e,t){let n=e._error;n!==null&&!t.includes(n)&&t.push(n);let r=e._deps;if(!r.hasComputeds)return;let i=r.size;for(let e=0;e<i;e++){let n=r.getAt(e)?.node;n!==void 0&&(n.flags&z)!==0&&this._accumulateErrors(n,t)}}get lastError(){let e=A.current;return e!==null&&e.addDependency(this),this._error}get isPending(){let e=A.current;return e!==null&&e.addDependency(this),(this.flags&F)!==0}get isResolved(){let e=A.current;return e!==null&&e.addDependency(this),(this.flags&I)!==0}invalidate(){this.flags|=Fe,this._markDirty()}dispose(){(this.flags&Pe)===0&&(this._deps.disposeAll(),this._slots!==null&&this._slots.clear(),this.flags=Pe|P|N,this._error=null,this._value=void 0,this._hotIndex=-1)}addDependency(e){let t=this._trackEpoch;if(e._lastSeenEpoch===t)return;e._lastSeenEpoch=t;let n=this._trackCount++,r=this._deps,i=null;if(n<4)i=n===0?r._s0:n===1?r._s1:n===2?r._s2:r._s3;else{let e=r._overflow;e!==null&&(i=e[n-4]??null)}if(i!==null&&i.node===e)i.version=e.version;else if(!r.claimExisting(e,n)){let t=new he(e,e.version,e.subscribe(this));r.insertNew(n,t)}(e.flags&z)!==0&&(r.hasComputeds=!0)}_recompute(){if((this.flags&R)!==0)return;this.flags=(this.flags|R)&~Fe,this._trackEpoch=ye(),this._trackCount=0,this._deps.prepareTracking(),this._hotIndex=-1;let e=!1;try{let t=A.run(this,this._computation);this._deps.truncateFrom(this._trackCount),e=!0,me(t)?this._handleAsyncComputation(t):this._finalizeResolution(t)}catch(t){if(!e)try{this._deps.truncateFrom(this._trackCount)}catch(e){b&&console.warn(`[atom-effect] _commitDeps failed during error recovery:`,e)}this._handleError(t,T.COMPUTED_COMPUTATION_FAILED,!0)}finally{this._trackEpoch=v.UNINITIALIZED,this._trackCount=0,this.flags&=~R}}_handleAsyncComputation(e){this.flags=(this.flags|F)&~(N|P|I|L),this._notifySubscribers(void 0,void 0),this._promiseId=(this._promiseId+1)%_.MAX_PROMISE_ID;let t=this._promiseId;e.then(e=>{if(t===this._promiseId){if(this._isDirty())return this._markDirty();this._finalizeResolution(e),this._notifySubscribers(e,void 0)}},e=>t===this._promiseId&&this._handleError(e,T.COMPUTED_ASYNC_COMPUTATION_FAILED))}_handleError(e,t,n=!1){let r=E(e,C,t);if((!this.isRejected||this._error!==r)&&(this.version=be(this.version)),this._error=r,this.flags=this.flags&~(N|P|F|I)|L|Ne,this._onError)try{this._onError(r)}catch(e){console.error(T.CALLBACK_ERROR_IN_ERROR_HANDLER,e)}if(this._notifySubscribers(void 0,void 0),n)throw r}_finalizeResolution(e){let t=this.flags;((t&I)===0||!this._equal(this._value,e))&&(this.version=be(this.version)),this._value=e,this._error=null,this.flags=(t|I)&~(N|P|F|L|Ne)}execute(){this._markDirty()}_markDirty(){let e=this.flags;(e&(R|P))===0&&(this.flags=e|P,D.trackUpdate(this.id,D.getDebugName(this)),this._notifySubscribers(void 0,void 0))}_deepDirtyCheck(){let e=this._deps,t=e.size,n=this._hotIndex;return j(()=>{if(n!==-1&&n<t){let t=e.getAt(n);if(t!==null&&this._checkLinkDirty(t))return!0}for(let r=0;r<t;r++){if(r===n)continue;let t=e.getAt(r);if(t!==null&&this._checkLinkDirty(t))return this._hotIndex=r,!0}return this._hotIndex=-1,!1})}_checkLinkDirty(e){let t=e.node;if((t.flags&z)!==0)try{t.value}catch{b&&console.warn(`[atom-effect] Dependency #${t.id} threw during check`)}return t.version!==e.version}};function Le(e,t={}){return new Ie(e,t)}var Re=class extends _e{constructor(e,t={}){super(),this[O]=k.Effect,this._currentEpoch=v.UNINITIALIZED,this._lastFlushEpoch=v.UNINITIALIZED,this._executionsInEpoch=0,this._executionCount=0,this._windowStart=0,this._windowCount=0,this._execId=0,this._trackCount=0,this._cleanup=null,this._deps=new ue,this._fn=e,this._onError=t.onError??null,this._sync=t.sync??!1,this._maxExecutions=t.maxExecutionsPerSecond??m.MAX_EXECUTIONS_PER_SECOND,this._maxExecutionsPerFlush=t.maxExecutionsPerFlush??m.MAX_EXECUTIONS_PER_EFFECT,this._sync?this._notifyCallback=()=>this.execute():this._notifyCallback=()=>M.schedule(this),D.attachDebugInfo(this,`effect`,this.id,t.name)}run(){if(this.isDisposed)throw new w(T.EFFECT_DISPOSED);this.execute(!0)}dispose(){this.isDisposed||(this.flags|=d.DISPOSED,this._execCleanup(),this._deps?.disposeAll())}addDependency(e){if((this.flags&d.EXECUTING)===0||e._lastSeenEpoch===this._currentEpoch)return;e._lastSeenEpoch=this._currentEpoch;let t=this._trackCount++,n=this._deps,r=e.version,i=null;if(t<4)i=t===0?n._s0:t===1?n._s1:t===2?n._s2:n._s3;else{let e=n._overflow;e!==null&&(i=e[t-4]??null)}i!==null&&i.node===e?i.version=r:n.claimExisting(e,t)||this._insertNewDependency(e,t,r),e.isComputed&&!n.hasComputeds&&(n.hasComputeds=!0)}_insertNewDependency(e,t,n){let r;try{r=new he(e,n,e.subscribe(this._notifyCallback))}catch(t){let i=E(t,w,T.EFFECT_EXECUTION_FAILED);if(console.error(i),this._onError)try{this._onError(i)}catch{}r=new he(e,n,void 0)}this._deps.insertNew(t,r)}execute(e=!1){let t=this.flags;if((t&(d.DISPOSED|d.EXECUTING))!==0)return;let n=this._deps;if(!e&&n.physicalSize>0&&!this._isDirty())return;this._checkInfiniteLoops(),D.trackUpdate(this.id,D.getDebugName(this)),this.flags=t|d.EXECUTING,this._execCleanup(),this._currentEpoch=ye(),this._trackCount=0,n.prepareTracking(),this._hotIndex=-1;let r=!1;try{let e=A.run(this,this._fn);n.truncateFrom(this._trackCount),r=!0,typeof e==`function`?this._cleanup=e:me(e)?this._handleAsyncResult(e):this._cleanup=null}catch(e){if(!r)try{n.truncateFrom(this._trackCount)}catch(e){b&&console.warn(`[atom-effect] _commitDeps failed during error recovery:`,e)}this._handleExecutionError(e),this._cleanup=null}finally{this.flags&=~d.EXECUTING}}_handleAsyncResult(e){let t=++this._execId;e.then(e=>{if(t!==this._execId||(this.flags&d.DISPOSED)!==0){if(typeof e==`function`)try{e()}catch(e){this._handleExecutionError(e,T.EFFECT_CLEANUP_FAILED)}return}typeof e==`function`&&(this._cleanup=e)},e=>t===this._execId&&this._handleExecutionError(e))}_isDirty(){let e=this._deps,t=e.size;if(t===0)return!1;let n=this._hotIndex;if(n!==-1&&n<t){let t=e.getAt(n);if(t!==null){let e=t.node;if(!e.isComputed&&e.version!==t.version)return!0}}return this._deepDirtyCheck()}_deepDirtyCheck(){let e=this._deps,t=e.size,n=this._hotIndex,r=A.current;A.current=null;try{for(let r=0;r<t;r++){if(r===n)continue;let t=e.getAt(r);if(t===null)continue;let i=t.node;if(i.isComputed)try{i.value}catch{b&&console.warn(`[atom-effect] Dependency #${i.id} error in check`)}if(i.version!==t.version)return this._hotIndex=r,!0}return this._hotIndex=-1,!1}finally{A.current=r}}_execCleanup(){let e=this._cleanup;if(e!=null){this._cleanup=null;try{e()}catch(e){this._handleExecutionError(e,T.EFFECT_CLEANUP_FAILED)}}}_checkInfiniteLoops(){let e=we();this._lastFlushEpoch!==e&&(this._lastFlushEpoch=e,this._executionsInEpoch=0),++this._executionsInEpoch>this._maxExecutionsPerFlush&&this._throwInfiniteLoopError(`per-effect`),De()>m.MAX_EXECUTIONS_PER_FLUSH&&this._throwInfiniteLoopError(`global`),this._executionCount++,b&&this._checkFrequencyLimit()}_checkFrequencyLimit(){if(!Number.isFinite(this._maxExecutions))return;let e=Date.now();if(e-this._windowStart>=g.EFFECT_FREQUENCY_WINDOW){this._windowStart=e,this._windowCount=1;return}if(++this._windowCount>this._maxExecutions){let e=new w(T.EFFECT_FREQUENCY_LIMIT_EXCEEDED);throw this.dispose(),this._handleExecutionError(e),e}}get executionCount(){return this._executionCount}get isExecuting(){return(this.flags&d.EXECUTING)!==0}_throwInfiniteLoopError(e){let t=new w(`Infinite loop detected (${e}): effect executed ${this._executionsInEpoch} times in current flush. Total executions in flush: ${xe}`);throw this.dispose(),console.error(t),t}_handleExecutionError(e,t=T.EFFECT_EXECUTION_FAILED){let n=E(e,w,t);if(console.error(n),this._onError)try{this._onError(n)}catch(e){console.error(E(e,w,T.CALLBACK_ERROR_IN_ERROR_HANDLER))}}};function B(e,t={}){if(typeof e!=`function`)throw new w(T.EFFECT_MUST_BE_FUNCTION);let n=new Re(e,t);return n.execute(),n}function ze(e,t,n,r){if(n===t.length)return r;let i=t[n];if(i===`__proto__`||i===`constructor`||i===`prototype`)return e;let a=typeof e==`object`&&e?e:{},o=a[i],s=ze(o,t,n+1,r);if(Object.is(o,s))return e;if(Array.isArray(a)){let e=a.slice(),t=+i;return i.trim()!==``&&t>=0&&t%1==0?e[t]=s:e[i]=s,e}let c={...a};return c[i]=s,c}function Be(e,t){let n=e,r=t.length;for(let e=0;e<r;e++){if(n==null)return;let r=t[e];if(r===`__proto__`||r===`constructor`||r===`prototype`)return;n=n[r]}return n}function Ve(e,t){let n=t.includes(`.`)?t.split(`.`):[t],r=new Set;return{get value(){return Be(e.value,n)},set value(t){let r=e.peek(),i=ze(r,n,0,t);i!==r&&(e.value=i)},peek:()=>Be(e.peek(),n),subscribe(t){let i=Be(e.peek(),n),a=e.subscribe(e=>{let r=Be(e,n);if(!Object.is(r,i)){let e=i;i=r,t(r,e)}});return r.add(a),()=>{a(),r.delete(a)}},subscriberCount:()=>r.size,dispose:()=>{r.forEach(e=>e()),r.clear()},[O]:k.Atom|k.Writable}}var He=(e,t)=>Ve(e,t),Ue=e=>t=>Ve(e,t),We={ERRORS:{EFFECT_DISPOSE_ERROR:e=>`Dispose error${e?`: ${e}`:``}`}},Ge={PREFIX:`[atom-route]`,DEFAULTS:Object.freeze({mode:`hash`,basePath:``,autoBindLinks:!1,activeClass:`active`}),ERRORS:{NOT_FOUND:e=>`Route "${e}" not found`,TEMPLATE_NOT_FOUND:e=>`Template "${e}" not found`,TARGET_NOT_FOUND:e=>`Target "${e}" not found`,MALFORMED_URI:e=>`Malformed URI: ${e}`}},Ke={PREFIX:`[atom-binding]`,INPUT_DEFAULTS:Object.freeze({EVENT:`input`,DEBOUNCE:0}),VALID_INPUT_TAGS:[`input`,`select`,`textarea`],ERRORS:{INVALID_INPUT_ELEMENT:e=>`Invalid element <${e}> for val.`,MISSING_SOURCE:e=>`[${e}] source required.`,MISSING_CONDITION:e=>`[${e}] condition required.`,UPDATER_ERROR:(e,t)=>`Updater failed: "${e}"${t?` (static)`:``}`,CLEANUP_ERROR:e=>`Binding cleanup error${e?`: ${e}`:``}`,PARSE_ERROR:e=>`Parse error${e?`: ${e}`:``}`}},qe={DANGEROUS_PROPS:[`innerHTML`,`outerHTML`,`srcdoc`,`__proto__`,`constructor`,`prototype`],URL_PROPS:[`src`,`href`,`action`,`formaction`,`data`,`poster`,`background`,`cite`,`longdesc`,`profile`,`usemap`,`classid`,`codebase`,`xlink:href`],DANGEROUS_PROTOCOL_PATTERN:`(?:javascript|vbscript)`,ERRORS:{UNSAFE_CONTENT:()=>`Unsafe content neutralized.`,BLOCKED_CSS_VALUE:e=>`Blocked CSS: "${e}".`,BLOCKED_EVENT_HANDLER:e=>`Blocked handler: "${e}".`,BLOCKED_PROTOCOL:e=>`Blocked protocol: "${e}".`,BLOCKED_PROP:e=>`Blocked prop: "${e}".`}},Je={PREFIX:`[atom-list]`,ERRORS:{DUPLICATE_KEY:(e,t)=>`Duplicate key "${e}" at index ${t}.`}},Ye={PREFIX:`[atom-mount]`,ERRORS:{ERROR:e=>`Mount error${e?` in <${e}>`:``}`,CLEANUP_ERROR:e=>`Cleanup error${e?` in <${e}>`:``}`}},Xe={DEFAULTS:Object.freeze({HIGHLIGHT_DURATION_MS:500})},V={ROUTE:Ge.PREFIX,BINDING:Ke.PREFIX,LIST:Je.PREFIX,MOUNT:Ye.PREFIX},H={ROUTE:Ge.ERRORS,SECURITY:qe.ERRORS,BINDING:Ke.ERRORS,LIST:Je.ERRORS,MOUNT:Ye.ERRORS,CORE:We.ERRORS},Ze=Ge.DEFAULTS,Qe=Ke.INPUT_DEFAULTS,$e=Xe.DEFAULTS,et=Ke.VALID_INPUT_TAGS;qe.URL_PROPS;var tt=qe.DANGEROUS_PROPS,nt=qe.DANGEROUS_PROTOCOL_PATTERN,rt=e=>e!==null&&(typeof e==`object`||typeof e==`function`)&&typeof e.then==`function`;function it(e){let{localName:t,id:n,className:r}=e,i=t;n&&(i+=`#${n}`);let a=typeof r==`string`?r:r?.baseVal;if(a){let e=a.trim().replace(/\s+/g,`.`);e&&(i+=`.${e}`)}let o=e.type;return o&&o!==`text`&&(i+=`.${o}`),i}var at=Object.prototype.hasOwnProperty;function ot(e,t){if(e===t)return!0;if(e===null||t===null||typeof e!=`object`||typeof t!=`object`)return!1;let n=e,r=t,i=Object.keys(n);if(i.length!==Object.keys(r).length)return!1;for(let e of i)if(!at.call(r,e)||!Object.is(n[e],r[e]))return!1;return!0}var st=`atom-debug-highlight`,ct=`data-atom-debug`,lt=typeof window<`u`,ut=new WeakMap,dt=new WeakMap,ft=!1;function pt(){if(ft||!lt)return;let e=document.createElement(`style`);e.setAttribute(ct,``),e.textContent=`
2
+ [${ct}] { transition: outline ${$e.HIGHLIGHT_DURATION_MS/1e3}s ease-out; }
3
+ .${st} { outline: 2px solid rgba(255, 68, 68, 0.8); outline-offset: 1px; }
4
+ `.replace(/\s+/g,` `),document.head.appendChild(e),ft=!0}function mt(){let e=globalThis;return e.__ATOM_DEBUG__===void 0?e.process?.env?.NODE_ENV!==`production`&&e.process?.env?.NODE_ENV!==void 0:!!e.__ATOM_DEBUG__}var U={enabled:mt(),warn:(e,t,...n)=>console.warn(`${e} ${t}`,...n),error:(e,t,n)=>console.error(`${e} ${t}`,n),domUpdated(e,t,n,r){if(!this.enabled)return;let i=`jquery`in t?t[0]:t;i&&i.nodeType===1&&i.isConnected&&(console.log(`${e} DOM updated: ${it(i)}.${n} =`,r),ht(i))}};function ht(e){let t=globalThis;if(!lt||typeof t.requestAnimationFrame!=`function`)return;pt();let n=dt.get(e),r=ut.get(e);n!==void 0&&t.cancelAnimationFrame(n),r!==void 0&&clearTimeout(r),e.hasAttribute(ct)||e.setAttribute(ct,``),dt.set(e,t.requestAnimationFrame(()=>{dt.delete(e),e.isConnected&&(e.classList.add(st),ut.set(e,setTimeout(()=>{e.classList.remove(st),ut.delete(e)},$e.HIGHLIGHT_DURATION_MS)))}))}var gt=()=>Ae();t.default.extend({atom:Me,computed:Le,effect:B,batch:Oe,untracked:j,isAtom:fe,isComputed:pe,nextTick:gt,atomLens:Ve,composeLens:He,lensFor:Ue,debug:U});var _t=!1,vt=`_aes-bound`,W=new class{constructor(){this.records=new WeakMap,this.preservedNodes=new WeakSet,this.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){!_t&&typeof document<`u`&&document.body&&(_t=!0,bt(document.body));let t=this.records.get(e);return t||(t={},this.records.set(e,t),e.classList.add(vt)),t}addCleanup(e,t){let n=this.getOrCreateRecord(e);n.cleanups||=[],n.cleanups.push(t)}trackEffect(e,t){let n=it(e);this.addCleanup(e,()=>{try{t.dispose()}catch(e){U.error(V.BINDING,H.CORE.EFFECT_DISPOSE_ERROR(n),e)}})}trackCleanup(e,t){let n=it(e);this.addCleanup(e,()=>{try{t()}catch(e){U.error(V.BINDING,H.BINDING.CLEANUP_ERROR(n),e)}})}setComponentCleanup(e,t){this.getOrCreateRecord(e).componentCleanup=t}hasBind(e){return this.records.has(e)}cleanup(e){if(this.preservedNodes.delete(e),this.ignoredNodes.delete(e),e.nodeType!==1)return;let t=e,n=this.records.get(t);if(this.records.delete(t),t.classList.remove(vt),n){if(n.componentCleanup)try{n.componentCleanup()}catch(e){let n=it(t);U.error(V.MOUNT,H.MOUNT.CLEANUP_ERROR(n),e)}if(n.cleanups)for(let e of n.cleanups)e()}}cleanupDescendants(e){let t=e.querySelectorAll(`.${vt}`);for(let e=0,n=t.length;e<n;e++){let n=t[e];n&&this.cleanup(n)}}cleanupTree(e){(e.nodeType===1||e.nodeType===11)&&this.cleanupDescendants(e),this.cleanup(e)}},yt=new Map;function bt(e){if(yt.has(e))return;let t=new MutationObserver(e=>{for(let t=0,n=e.length;t<n;t++){let n=e[t].removedNodes;for(let e=0,t=n.length;e<t;e++){let t=n[e];if(t.nodeType!==1||t.isConnected)continue;let r=t;W.isKept(r)||W.isIgnored(r)||W.cleanupTree(r)}}});t.observe(e,{childList:!0,subtree:!0}),yt.set(e,t)}function xt(){yt.forEach(e=>e.disconnect()),yt.clear()}var St=Symbol.for(`atom-effect-internal`),Ct=new WeakMap,G=null,wt=e=>{if(e[St])return e;let t=Ct.get(e);return t||(t=function(...t){return Oe(()=>e.apply(this,t))},t[St]=!0,Ct.set(e,t)),t},Tt=e=>Ct.get(e)??e;function Et(e){let t={};for(let n in e){let r=e[n];t[n]=typeof r==`function`?wt(r):r}return t}function Dt(e){let t={};for(let n in e){let r=e[n];t[n]=typeof r==`function`?Tt(r):r}return t}function Ot(e,t,n){let r=e[0];if(r&&typeof r==`object`)e[0]=t(r);else for(let t=1;t<e.length;t++)typeof e[t]==`function`&&(e[t]=n(e[t]))}function kt(e){return function(...t){return Ot(t,Et,wt),e.apply(this,t)??this}}function At(){if(G!==null)return;G={on:t.default.fn.on,one:t.default.fn.one,off:t.default.fn.off,remove:t.default.fn.remove,empty:t.default.fn.empty,detach:t.default.fn.detach};let e=G;t.default.fn.remove=function(t){let n=t?this.filter(t):this,r=n.length;for(let e=0;e<r;e++){let t=n[e];t&&(W.markIgnored(t),W.cleanupTree(t))}return e.remove.call(this,t)??this},t.default.fn.empty=function(){let t=this.length;for(let e=0;e<t;e++){let t=this[e];t?.hasChildNodes()&&W.cleanupDescendants(t)}return e.empty.call(this)??this},t.default.fn.detach=function(t){let n=t?this.filter(t):this,r=n.length;for(let e=0;e<r;e++){let t=n[e];t&&W.keep(t)}return e.detach.call(this,t)??this},t.default.fn.on=kt(e.on),t.default.fn.one=kt(e.one),t.default.fn.off=function(...t){return Ot(t,Dt,Tt),e.off.apply(this,t)??this}}function jt(){G!==null&&(t.default.fn.on=G.on,t.default.fn.one=G.one,t.default.fn.off=G.off,t.default.fn.remove=G.remove,t.default.fn.empty=G.empty,t.default.fn.detach=G.detach,G=null)}var K=function(e){return e[e.None=0]=`None`,e[e.Focused=1]=`Focused`,e[e.Composing=2]=`Composing`,e[e.SyncingToAtom=4]=`SyncingToAtom`,e[e.SyncingToDom=8]=`SyncingToDom`,e[e.Busy=14]=`Busy`,e}({}),Mt=0;function Nt(e){e[St]=!0}var Pt=class{constructor(e,t,n){this.$element=e,this.atom=t,this.options=n,this.namespace=`.atomBind-${++Mt}`,this.flags=K.None,this.handleFocus=()=>{this.flags|=K.Focused},this.handleCompositionStart=()=>{this.flags|=K.Composing},this.handleCompositionEnd=()=>{this.flags&=~K.Composing,this.syncToAtom()},this.handleBlur=()=>{let e=!!(this.flags&K.Composing);this.flags&=~(K.Focused|K.Composing),this.debounceTimer?(clearTimeout(this.debounceTimer),this.debounceTimer=void 0,this.syncToAtom()):e&&this.syncToAtom();let t=this.atom.peek();this.isDomUpToDate(t)||this.writeToDom(t,this.formatValue(t))},this.syncToDom=()=>{let e=this.atom.value;this.flags&K.Busy||j(()=>{if(!this.isDomUpToDate(e)){this.flags|=K.SyncingToDom;try{let t=this.formatValue(e);this.writeToDom(e,t),U.domUpdated(V.BINDING,this.$element,`val`,t)}finally{this.flags&=~K.SyncingToDom}}})};let r=e[0],i=r.tagName===`SELECT`&&r.multiple,a=r.tagName===`INPUT`||r.tagName===`TEXTAREA`,o=n.parse??(e=>e),s=n.equal??Object.is;i?(this.readValue=()=>e.val()||[],this.writeToDom=t=>{e.val(t)},this.areEqual=(e,t)=>s(e,t)?!0:Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>Object.is(e,t[n])),this.formatValue=n.format??(e=>(Array.isArray(e)?e:e?[String(e)]:[]).join(`,`))):(this.readValue=()=>o(r.value),this.writeToDom=(e,t)=>{if(a&&document.activeElement===r){let e=r;try{let{selectionStart:n,selectionEnd:r}=e;if(e.value=t,n!==null&&r!==null){let i=t.length;e.setSelectionRange(Math.min(n,i),Math.min(r,i))}}catch{e.value=t}}else r.value=t},this.areEqual=s,this.formatValue=n.format??(e=>String(e??``))),this.initializeEvents()}initializeEvents(){let e=this.namespace,t=this.options.debounce??0,n=()=>{this.flags&K.Composing||this.syncToAtom()},r=t>0?()=>{clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(n,t)}:n;[this.handleFocus,this.handleBlur,this.handleCompositionStart,this.handleCompositionEnd,r].forEach(Nt);let i=(this.options.event??Qe.EVENT).trim().split(/\s+/).map(t=>`${t}${e}`).join(` `);this.$element.on(`focus${e}`,this.handleFocus).on(`blur${e}`,this.handleBlur).on(`compositionstart${e}`,this.handleCompositionStart).on(`compositionend${e}`,this.handleCompositionEnd).on(i,r)}syncToAtom(){if(!(this.flags&K.Busy)){this.flags|=K.SyncingToAtom;try{let e=this.readValue();this.areEqual(this.atom.peek(),e)||(this.atom.value=e)}finally{this.flags&=~K.SyncingToAtom}}}isDomUpToDate(e){if(!this.areEqual(this.readValue(),e))return!1;if(this.flags&K.Focused)return!0;let t=this.$element[0];return this.formatValue(e)===t.value}cleanup(){this.$element.off(this.namespace),clearTimeout(this.debounceTimer)}};function Ft(e,t,n){let r=new Pt(e,t,n);return{reactiveEffect:B(r.syncToDom),cleanup:()=>r.cleanup()}}function It(e,t,n){let r=0,i=!1;return W.trackCleanup(e,()=>{i=!0}),a=>{let o=++r;if(!rt(a)){j(()=>{try{n(a),U.domUpdated(V.BINDING,e,t,a)}catch(e){U.error(V.BINDING,H.BINDING.UPDATER_ERROR(t,!0),e)}});return}a.then(a=>{o===r&&!i&&j(()=>{try{n(a),U.domUpdated(V.BINDING,e,`${t} (async)`,a)}catch(e){U.error(V.BINDING,H.BINDING.UPDATER_ERROR(t),e)}})}).catch(e=>{o===r&&!i&&U.error(V.BINDING,H.BINDING.UPDATER_ERROR(t),e)})}}function Lt(e,t,n,r){let i=It(e,r,n),a=fe(t);a||typeof t==`function`?W.trackEffect(e,B(()=>{i(a?t.value:t())},{name:r})):i(t)}function Rt(e,t,n,r){let i=It(e,r,n),a=Object.entries(t),o=!1;for(let e=0,t=a.length;e<t;e++){let t=a[e][1];if(fe(t)||typeof t==`function`){o=!0;break}}let s=()=>{let e=[],t={};for(let n=0,r=a.length;n<r;n++){let[r,i]=a[n],o=fe(i)?i.value:typeof i==`function`?i():i;rt(o)?e.push(o.then(e=>({key:r,val:e}))):t[r]=o}return e.length>0?Promise.all(e).then(e=>{for(let n=0,r=e.length;n<r;n++){let r=e[n];t[r.key]=r.val}return t}):t};o?W.trackEffect(e,B(()=>i(s()),{name:r})):i(s())}var zt=[`href`,`src`,`action`,`formaction`,`xlink:href`,`data`,`poster`,`background`,`cite`,`longdesc`,`profile`,`usemap`,`classid`,`codebase`,`fill`,`filter`,`mask`,`marker-start`,`marker-mid`,`marker-end`,`clip-path`,`srcdoc`,`srcset`],Bt=[`script`,`iframe`,`object`,`embed`,`base`,`meta`,`applet`,`noscript`,`form`,`style`,`link`,`title`],Vt=[/expression\s*\(/i,/behavior\s*:/i,/-moz-binding\s*:/i,/@import/i,RegExp(`url\\s*\\(\\s*["']?\\s*${nt}\\s*:`,`i`),/data\s*:\s*(?!image\/)/i],Ht={colon:`:`,tab:` `,newline:`
5
+ `},Ut=/&#x([0-9a-f]+);?|&#([0-9]+);?/gi,Wt=/&(colon|tab|newline);?/gi,Gt=/[\x00-\x1f\x7f]/g,Kt=/data\s*:\s*(?:text\/(?:html|javascript|vbscript|xml)|application\/(?:javascript|xhtml\+xml|xml|x-shockwave-flash)|image\/svg\+xml)/i,qt=RegExp(`(?:^|url\\s*\\(\\s*["']?)\\s*${nt}\\s*:`,`i`),Jt=new RegExp([`(<(${Bt.join(`|`)})\\b[^>]*>([\\s\\S]*?)<\\/\\2>|<(${Bt.join(`|`)})\\b[^>]*\\/?>)`,`\\bon\\w+\\s*=`,`${nt}\\s*:`,Kt.source].join(`|`),`i`),q={getAttributes:e=>Object.getOwnPropertyDescriptor(Element.prototype,`attributes`).get.call(e),setAttribute:(e,t,n)=>Element.prototype.setAttribute.call(e,t,n),removeAttribute:(e,t)=>Element.prototype.removeAttribute.call(e,t),replaceElement:(e,t)=>Element.prototype.replaceWith.call(e,t),getLocalName:e=>Object.getOwnPropertyDescriptor(Element.prototype,`localName`).get.call(e),getFirstChild:e=>Object.getOwnPropertyDescriptor(Node.prototype,`firstChild`).get.call(e)};function J(e){return typeof e==`string`?e.replace(Ut,(e,t,n)=>{let r=t?parseInt(t,16):parseInt(n,10);return r>=0&&r<=1114111?String.fromCodePoint(r):``}).replace(Wt,(e,t)=>Ht[t.toLowerCase()]??``).replace(Gt,``):``}function Yt(e){let t=e.replace(/\s+/g,``);return qt.test(t)||Kt.test(t)}function Xt(e){return e.split(`,`).map(e=>{let t=e.trim();if(!t)return e;let[n,...r]=t.split(/\s+/),i=J(n);return Yt(i)?[`data-unsafe-protocol:`,...r].join(` `):[i,...r].join(` `)}).join(`,`)}function Zt(e){return J(e).replace(/\/\*[\s\S]*?\*\//g,``)}function Qt(e){let t=Zt(e);return Vt.some(e=>e.test(t))}var $t={srcdoc:(e,t,n)=>{let r=J(n);q.setAttribute(e,t,Y(r))},srcset:(e,t,n)=>{q.setAttribute(e,t,Xt(n))},style:(e,t,n)=>{Qt(n)&&q.setAttribute(e,`style`,`data-unsafe-css:`)}};function en(e){let t=q.getAttributes(e);if(!t)return;let n=[];for(let r=t.length-1;r>=0;r--){let i=t[r],a=i.name,o=a.toLowerCase(),s=i.value;if(o.startsWith(`on`)){q.removeAttribute(e,a),n.push(a);continue}$t[o]?$t[o](e,a,s):zt.includes(o)&&Yt(J(s))&&q.setAttribute(e,a,`data-unsafe-protocol:`)}n.length>0&&q.setAttribute(e,`data-unsafe-attr`,n.join(`,`))}function tn(e){if(!Bt.includes(q.getLocalName(e)))return;let t=document.createElement(`span`),n=q.getAttributes(e);for(let e=0;e<n.length;e++){let r=n[e];r&&t.setAttribute(r.name,r.value)}en(t);let r=q.getFirstChild(e);for(;r;)t.appendChild(r),r=q.getFirstChild(e);q.replaceElement(e,t)}function nn(e){let t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT),n=[],r=t.nextNode();for(;r;)n.push(r),q.getLocalName(r)===`template`&&nn(r.content),r=t.nextNode();for(let e of n)en(e),tn(e)}function Y(e){if(!e)return``;let t=document.createElement(`template`);return t.innerHTML=String(e),nn(t.content),t.innerHTML}var rn=(e,t)=>{let n=e.toLowerCase();if(!zt.includes(n))return!1;let r=J(t);return n===`srcdoc`?Jt.test(r):Yt(r)},an=e=>{let t=J(e).replace(/\/\*[\s\S]*?\*\//g,``);return Vt.some(e=>e.test(t))};function on(e){return e.includes(`-`)?e.replace(/-./g,e=>e[1].toUpperCase()):e}function sn(e,t){return e.toLowerCase().startsWith(`on`)?(console.warn(`${V.BINDING} ${H.SECURITY.BLOCKED_EVENT_HANDLER(e)}`),!1):t&&tt.includes(e)?(console.warn(`${V.BINDING} ${H.SECURITY.BLOCKED_PROP(e)}`),!1):!0}function cn(e,t,n){Lt(e,t,t=>{let r=n?n(t):String(t??``);e.textContent!==r&&(e.textContent=r)},`text`)}function ln(e,t){let n=null;Lt(e,t,t=>{let r=Y(t);n!==r&&(W.cleanupDescendants(e),e.innerHTML=r,n=r)},`html`)}function un(e,t){let n={},r=new Set;for(let e of Object.keys(t)){let t=e.trim();n[e]=t.includes(` `)?t.split(/\s+/).filter(Boolean):[t]}Rt(e,t,t=>{let i=new Set;for(let[e,r]of Object.entries(t))if(r)for(let t of n[e])i.add(t);for(let t of i)r.has(t)||e.classList.add(t);for(let t of r)i.has(t)||e.classList.remove(t);r=i},`class`)}function dn(e,t){let n=e.style,r={},i={},a={};for(let[e,n]of Object.entries(t)){let[t,a]=Array.isArray(n)?n:[n,``];r[e]=t,i[e]={camelCase:on(e),unit:a}}Rt(e,r,e=>{for(let[t,r]of Object.entries(e)){let e=i[t],o=e.unit?`${r}${e.unit}`:String(r);a[t]!==o&&(an(o)||(n[e.camelCase]=o),a[t]=o)}},`css`)}function fn(e,t){let n=Object.entries(t).filter(([e])=>sn(e,!1)),r=Object.fromEntries(n),i={},a={};for(let[t]of n)i[t]={isAria:t.toLowerCase().startsWith(`aria-`)},a[t]=e.getAttribute(t);Rt(e,r,t=>{for(let[n,r]of Object.entries(t)){let t=i[n],o=r;if(o==null||o===!1&&!t.isAria){a[n]!==null&&e.removeAttribute(n),a[n]=null;continue}let s=o===!0?t.isAria?`true`:n:String(o);if(rn(n,s)){console.warn(`${V.BINDING} ${H.SECURITY.BLOCKED_PROTOCOL(n)}`);continue}a[n]!==s&&(e.setAttribute(n,s),a[n]=s)}},`attr`)}function pn(e,t){let n=e,r=Object.entries(t).filter(([e])=>sn(e,!0)),i=Object.fromEntries(r),a={};Rt(e,i,e=>{for(let[t,r]of Object.entries(e))if(a[t]!==r){if(typeof r==`string`&&rn(t,r)){console.warn(`${V.BINDING} ${H.SECURITY.BLOCKED_PROTOCOL(t)}`);continue}n[t]=r,a[t]=r}},`prop`)}function mn(e,t,n){let r=e.style.display===`none`?``:e.style.display;Lt(e,t,t=>{n===!!t?e.style.display!==`none`&&(r=e.style.display,e.style.display=`none`):e.style.display===`none`&&(e.style.display=r)},n?`hide`:`show`)}function hn(e,n,r={}){let i=e.tagName.toLowerCase();if(!et.includes(i)){console.warn(`${V.BINDING} ${H.BINDING.INVALID_INPUT_ELEMENT(i)}`);return}let{reactiveEffect:a,cleanup:o}=Ft((0,t.default)(e),n,r);W.trackEffect(e,a),W.trackCleanup(e,o)}function gn(e){e.type===`radio`&&e.name&&(e.form?(0,t.default)(e.form):(0,t.default)(document)).find(`input[type="radio"][name="${t.default.escapeSelector(e.name)}"]`).not(e).trigger(`change.atomRadioSync`)}function _n(e,n){if(!(e instanceof HTMLInputElement)){console.warn(`${V.BINDING} atomChecked called on non-input element`);return}let r=e,i=(0,t.default)(r),a=()=>{n.peek()!==r.checked&&(n.value=r.checked,gn(r))};a[St]=!0,i.on(`change change.atomRadioSync`,a),W.trackCleanup(r,()=>i.off(`change change.atomRadioSync`,a)),W.trackEffect(r,B(()=>{let e=!!n.value;j(()=>{r.checked!==e&&(r.checked=e,U.domUpdated(V.BINDING,r,`checked`,e),e&&gn(r))})}))}function vn(e,n){let r=(0,t.default)(e);r.on(n),W.trackCleanup(e,()=>r.off(n))}function yn(e,n,r){let i=(0,t.default)(e);i.on(n,r),W.trackCleanup(e,()=>i.off(n,r))}var bn=`input, select, textarea`,xn=class{constructor(e,t,n={}){this.form=e,this.atom=t,this.options=n,this.fieldMap=new Map,this.fields=[],this.elementNames=new WeakMap,this.init()}init(){this.bindElement(this.form),this.setupObserver()}bindElement(e){let t=e.matches?.(bn)?[e]:e.querySelectorAll?.(bn)||[];for(let e=0,n=t.length;e<n;e++)this.bindControl(t[e])}bindControl(e){if(!(e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement))return;let t=e,n=t.name;if(!n)return;let r=this.elementNames.get(t);if(r!==void 0&&r!==n&&W.cleanup(t),this.elementNames.has(t)&&r===n)return;let i=this.acquireField(n);this.elementNames.set(t,n),W.trackCleanup(t,()=>this.releaseField(t,n)),t instanceof HTMLInputElement&&(t.type===`radio`||t.type===`checkbox`)?this.bindToggle(t,i.atom,t.value,t.type===`checkbox`):hn(t,i.atom,this.options)}bindToggle(e,n,r,i){let a=()=>{let t=n.peek();if(i&&Array.isArray(t)){let i=new Set(t.map(String));e.checked?i.add(r):i.delete(r),n.value=Array.from(i)}else n.value=i?e.checked:r};a[St]=!0,(0,t.default)(e).on(`change`,a),W.trackCleanup(e,()=>(0,t.default)(e).off(`change`,a)),W.trackEffect(e,B(()=>{let t=n.value,a=i?Array.isArray(t)?t.some(e=>String(e)===r):!!t:String(t)===r;e.checked!==a&&(e.checked=a)}))}acquireField(e){let t=this.fieldMap.get(e);if(t)return t.refCount++,t;let n=e.replace(/\[(\w+)\]/g,`.$1`).replace(/^\./,``),r=Ve(this.atom,n),i=Object.create(r),{transform:a,onChange:o}=this.options;return Object.defineProperty(i,`value`,{get(){return r.value},set(t){let n=a?a(e,t):t;r.value=n,o&&j(()=>o(e,n))}}),t={atom:i,name:e,refCount:1},this.fieldMap.set(e,t),this.fields.push(t),t}releaseField(e,t){let n=this.fieldMap.get(t);if(n&&--n.refCount<=0){let e=this.fields.indexOf(n);e!==-1&&this.fields.splice(e,1);let r=n.atom;typeof r.dispose==`function`&&r.dispose(),this.fieldMap.delete(t)}W.cleanup(e)}setupObserver(){let e=new MutationObserver(e=>{for(let t=0,n=e.length;t<n;t++){let n=e[t];if(n.type===`childList`)for(let e=0;e<n.addedNodes.length;e++){let t=n.addedNodes[e];t.nodeType===1&&this.bindElement(t)}else n.attributeName===`name`&&this.bindElement(n.target)}});e.observe(this.form,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`name`]}),W.trackCleanup(this.form,()=>e.disconnect())}};function Sn(e,t,n={}){new xn(e,t,n)}function X(e,t){for(let n=0,r=e.length;n<r;n++){let r=e[n];r?.nodeType===1&&t(r)}return e}function Cn(e){if(!Array.isArray(e)||e.length!==2)return[e];let t=e[1];return typeof t==`function`||typeof t==`object`&&t&&!(`value`in t)&&!(`then`in t)?e:[e]}function wn(e,t,n,r=H.BINDING.MISSING_SOURCE(n)){return(typeof e==`string`?t===void 0?null:{[e]:t}:e)||(console.warn(`${V.BINDING} ${r}`),null)}t.default.fn.atomText=function(e,t){return X(this,n=>cn(n,e,t))},t.default.fn.atomHtml=function(e){return X(this,t=>ln(t,e))},t.default.fn.atomClass=function(e,t){let n=wn(e,t,`atomClass`,H.BINDING.MISSING_CONDITION(`atomClass`));return n?X(this,e=>un(e,n)):this},t.default.fn.atomCss=function(e,t,n){let r=wn(e,t!==void 0&&n?[t,n]:t,`atomCss`);return r?X(this,e=>dn(e,r)):this},t.default.fn.atomAttr=function(e,t){let n=wn(e,t,`atomAttr`);return n?X(this,e=>fn(e,n)):this},t.default.fn.atomProp=function(e,t){let n=wn(e,t,`atomProp`);return n?X(this,e=>pn(e,n)):this},t.default.fn.atomShow=function(e){return X(this,t=>mn(t,e,!1))},t.default.fn.atomHide=function(e){return X(this,t=>mn(t,e,!0))},t.default.fn.atomVal=function(e,t={}){return X(this,n=>hn(n,e,t))},t.default.fn.atomChecked=function(e){return X(this,t=>_n(t,e))},t.default.fn.atomForm=function(e,t={}){return X(this,n=>{n instanceof HTMLFormElement?Sn(n,e,t):U.warn(V.BINDING,`Skipping non-Form element for atomForm`)})},t.default.fn.atomOn=function(e,t){return X(this,n=>yn(n,e,t))};var Tn=[{key:`text`,run:(e,t)=>cn(e,...Cn(t))},{key:`html`,run:(e,t)=>ln(e,t)},{key:`class`,run:(e,t)=>un(e,t)},{key:`css`,run:(e,t)=>dn(e,t)},{key:`attr`,run:(e,t)=>fn(e,t)},{key:`prop`,run:(e,t)=>pn(e,t)},{key:`show`,run:(e,t)=>mn(e,t,!1)},{key:`hide`,run:(e,t)=>mn(e,t,!0)},{key:`val`,run:(e,t)=>hn(e,...Cn(t))},{key:`checked`,run:(e,t)=>_n(e,t)},{key:`form`,run:(e,t)=>{e instanceof HTMLFormElement&&Sn(e,...Cn(t))}},{key:`on`,run:(e,t)=>vn(e,t)}];t.default.fn.atomBind=function(e){let t=e,n=!1;for(let e=0,r=Tn.length;e<r;e++)if(t[Tn[e].key]!==void 0){n=!0;break}return n?X(this,e=>{for(let n=0,r=Tn.length;n<r;n++){let r=Tn[n],i=t[r.key];i!==void 0&&r.run(e,i)}}):this},t.default.fn.atomUnbind=function(){return X(this,e=>W.cleanupTree(e))};function En(e){return e instanceof Element?(0,t.default)(e):e}function Dn(e,t){if(e instanceof Element)t===null?e.removeAttribute(`data-atom-key`):e.setAttribute(`data-atom-key`,t);else if(!e.nodeType){let n=e;for(let e=0,r=n.length;e<r;e++){let r=n[e];r instanceof Element&&(t===null?r.removeAttribute(`data-atom-key`):r.setAttribute(`data-atom-key`,t))}}}function On(e){if(e instanceof Element)W.cleanupTree(e);else for(let t=0,n=e.length;t<n;t++){let n=e[t];n instanceof Element&&W.cleanupTree(n)}}var kn=class{constructor(e,t,n){this.$container=e,this.containerSelector=t,this.onRemove=n,this.oldKeys=[],this.oldItems=[],this.oldNodes=[],this.removingKeys=new Set,this.$emptyEl=null,this.keyToIndex=new Map}scheduleRemoval(e,t){let n=()=>{this.fx?.isDisposed||t[0]instanceof Element&&t[0].hasAttribute(`data-atom-key`)||(t[0]?.isConnected&&t.remove(),this.removingKeys.delete(e))},r=this.onRemove?.(t);r instanceof Promise?r.then(n,n):n()}removeItem(e,t){Dn(t,null),this.removingKeys.add(e),this.scheduleRemoval(e,t)}dispose(){this.removingKeys.clear(),this.oldKeys=[],this.oldItems=[],this.oldNodes=[],this.keyToIndex.clear(),this.$emptyEl?.remove(),this.$container.off(`.atomList`)}},Z={Unchanged:0,Existing:1,New:2,ForceReplace:4};function An(e,t,n,r,i,a){let{oldKeys:o,oldItems:s,oldNodes:c,removingKeys:l,keyToIndex:u}=e,d=o.length,f=a||ot,p=0,m=d-1,h=n-1,g=new Set,_=Array(n),v=Array(n),y=Array(n),b=Array(n),x=Array(n),S=[];for(;p<=m&&p<=h;){let e=t[p],n=r(e,p);if(o[p]!==n||!f(s[p],e)||!c[p])break;u.set(n,p++)}for(;m>=p&&h>=p;){let e=t[h],n=r(e,h);if(o[m]!==n||!f(s[m],e)||!c[m])break;u.set(n,h--),m--}for(let e=0;e<p;e++){let n=o[e];_[e]=n,v[e]=t[e],y[e]=c[e],b[e]=Z.Unchanged,x[e]=e,g.add(n)}for(let e=d-1,r=n-1;r>h;r--,e--){let n=o[e];_[r]=n,v[r]=t[r],y[r]=c[e],b[r]=Z.Unchanged,x[r]=e,g.add(n)}let C=new Map;for(let e=p;e<=m;e++)C.set(o[e],e);for(let e=p;e<=h;e++){let n=t[e],a=r(n,e);if(_[e]=a,v[e]=n,u.set(a,e),g.has(a)){U.warn(V.LIST,H.LIST.DUPLICATE_KEY(a,e)),x[e]=-1;continue}g.add(a);let o=C.get(a),d=o!==void 0&&!l.has(a)?o:void 0;if(d===void 0){S.push({key:a,item:n,index:e}),x[e]=-1,b[e]=Z.New;continue}y[e]=c[d],!i&&!f(s[d],n)?(S.push({key:a,item:n,index:e}),b[e]=Z.ForceReplace):b[e]=Z.Existing,x[e]=d}return{newKeys:_,newKeySet:g,newItems:v,newNodes:y,newStates:b,newIndices:x,toRender:S,startIndex:p,oldEndIndex:m,newEndIndex:h}}function jn(e,t,n){if(!e)return;if(e instanceof Element){n.insertBefore(e,t);return}let r=e;for(let e=0,i=r.length;e<i;e++){let i=r[e];i&&n.insertBefore(i,t)}}function Mn(e,n,r,i){if(e.$emptyEl&&n>0&&(e.$emptyEl.remove(),e.$emptyEl=null),n!==0)return;let{oldKeys:a,oldNodes:o,onRemove:s}=e;if(!s)r.empty();else for(let t=0,n=a.length;t<n;t++){let n=a[t],r=o[t];r&&e.removeItem(n,En(r))}i&&!e.$emptyEl&&(e.$emptyEl=(0,t.default)(typeof i==`string`?t.default.parseHTML(Y(i)):i),e.$emptyEl.appendTo(r)),e.oldKeys=[],e.oldItems=[],e.oldNodes=[]}function Nn(e,n,r){let{toRender:i,newNodes:a,newStates:o}=e,s=i.length;if(s===0)return null;let c=Array(s),l=[],u=!0;for(let e=0;e<s;e++){let t=n.render(i[e].item,i[e].index);c[e]=t,typeof t==`string`?l.push(t):u=!1}let d=null;if(l.length>0&&(d=Pn(l)),r&&u&&d&&!n.bind&&!n.onAdd&&!n.events&&t.default.parseHTML(d.join(``)).length===s)return d;let f=0;for(let e=0;e<s;e++){let{key:n,index:r}=i[e],s=c[e],l=typeof s==`string`?(0,t.default)(t.default.parseHTML(d[f++])):(0,t.default)(s);if(Dn(l,String(n)),o[r]===Z.ForceReplace&&a[r]){let e=a[r];On(e);let t=En(e);t.first().before(l),t.remove()}a[r]=l.length===1?l[0]:l}return null}function Pn(e){if(e.length===1)return[Y(e[0])];let t=`<template data-atom-sep="s${Math.random().toString(36).slice(2)}"></template>`;return Y(e.join(t)).split(t)}function Fn(e,t){let{startIndex:n,oldEndIndex:r,newKeySet:i}=t;for(let t=n;t<=r;t++){let n=e.oldKeys[t];!i.has(n)&&e.oldNodes[t]&&e.removeItem(n,En(e.oldNodes[t]))}}function In(e,n,r,i,a){let{newKeys:o,newItems:s,newNodes:c,newStates:l,newIndices:u}=n,d=o.length;if(a){r.innerHTML=a.join(``);let e=r.firstElementChild;for(let n=0;n<d&&e;n++)e.setAttribute(`data-atom-key`,String(o[n])),c[n]=e,l[n]=Z.Existing,U.domUpdated(V.LIST,(0,t.default)(e),`list.add`,s[n]),e=e.nextElementSibling;return}if(e.oldKeys.length===0&&e.removingKeys.size===0){let e=document.createDocumentFragment();for(let t of c)if(t)if(t instanceof Element)e.appendChild(t);else{let n=t;for(let t=0;t<n.length;t++){let r=n[t];r&&e.appendChild(r)}}r.innerHTML=``,r.appendChild(e)}else{let e=null,t=1/0;for(let n=d-1;n>=0;n--){let i=u[n],a=c[n];if(!a)continue;let o=a instanceof Element?a:a[0];o&&(i!==-1&&i<t?t=i:jn(a,e,r),e=o)}}for(let t=0;t<d;t++){let n=l[t];if(n===Z.Unchanged)continue;let r=c[t];if(!r)continue;let a=En(r),u=s[t];n===Z.Existing?i.update?.(a,u,t):(i.bind?.(a,u,t),n===Z.New&&(i.onAdd?.(a),e.removingKeys.delete(o[t]),U.domUpdated(V.LIST,a,`list.add`,u)))}}var Ln=new WeakMap;function Rn(e,n){let r=typeof n.key==`function`?n.key:e=>e[n.key],i={bind:n.bind,update:n.update,onAdd:n.onAdd,onRemove:n.onRemove,events:n.events};for(let a=0,o=this.length;a<o;a++){let o=this[a],s=(0,t.default)(o),c=Ln.get(o);c&&(c.fx.dispose(),c.ctx.dispose());let l=new kn(s,it(o),n.onRemove),u=B(()=>{let t=e.value,a=t.length;j(()=>{if(Mn(l,a,s,n.empty),a===0)return;let e=l.oldKeys.length===0&&l.removingKeys.size===0;l.keyToIndex.clear();let c=An(l,t,a,r,n.update,n.isEqual),u=Nn(c,n,e);Fn(l,c),In(l,c,o,i,u),l.oldKeys=c.newKeys,l.oldItems=c.newItems,l.oldNodes=c.newNodes})});l.fx=u,n.events&&zn(l,s,n.events),W.trackEffect(o,u),Ln.set(o,{fx:u,ctx:l}),W.trackCleanup(o,()=>{l.dispose(),Ln.delete(o)})}return this}function zn(e,t,n){for(let r in n){if(!at.call(n,r))continue;let i=r.indexOf(` `),a=i===-1?r:r.slice(0,i),o=i===-1?`> *`:r.slice(i+1).trim(),s=n[r];t.on(`${a}.atomList`,o,function(t){let n=t.target.closest?.(`[data-atom-key]`),r=n?.getAttribute(`data-atom-key`);if(r==null)return;let i=r;if(!e.keyToIndex.has(r)){let t=Number(r);!Number.isNaN(t)&&e.keyToIndex.has(t)&&(i=t)}let a=e.keyToIndex.get(i);a!==void 0&&s.call(n,e.oldItems[a],a,t)})}}t.default.fn.atomList=Rn;var Bn=Object.freeze({});t.default.fn.atomMount=function(e,n){let r=n??Bn;return X(this,n=>{W.cleanupTree(n);let i=j(()=>Oe(()=>e((0,t.default)(n),r)));if(i){let e=typeof i==`function`?i:i.unmount;W.setComponentCleanup(n,e)}})},t.default.fn.atomUnmount=function(){return X(this,e=>W.cleanupTree(e))};var Q={normalize:e=>e.replace(/(^\/+|\/+$)/g,``),split:e=>{let[t,n]=e.split(`?`);return{route:Q.normalize(t||``),query:n}},isSameParams:(e,t)=>{if(e===t)return!0;let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>e[n]===t[n])}};function Vn(e){let t={};if(!e)return t;try{new URLSearchParams(e).forEach((e,n)=>{t[n]=e})}catch{}return t}var Hn=e=>{let t=e?`/${Q.normalize(e)}`:``,n=`${location.origin}${t}/`.replace(/\/+$/,`/`);return{getBrowserState:()=>{let e=location.pathname;return t&&e.startsWith(t)&&(e=e.substring(t.length)),{path:Q.normalize(e),query:Vn(location.search.substring(1)),url:location.pathname+location.search}},commit:e=>{let{route:t,query:r}=Q.split(e),i=new URL(t,n);r&&(i.search=r);let a=i.pathname+i.search;try{history.pushState(null,``,a)}catch{}return{path:Q.normalize(t),query:Vn(r||``),url:a}},revert:e=>{if(location.pathname+location.search!==e)try{history.replaceState(null,``,e)}catch{}},resolveAnchor:e=>{let n=e.pathname;return t&&n.startsWith(t)&&(n=n.substring(t.length)),Q.normalize(n)+e.search},setupListener:e=>(window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e))}},Un=()=>({getBrowserState:()=>{let e=location.hash,t=e.startsWith(`#`)?e.substring(1):e,{route:n,query:r}=Q.split(t);return{path:n,query:Vn(r||``),url:e}},commit:e=>{let{route:t,query:n}=Q.split(e),r=`#${n?`${t}?${n}`:t}`;return location.hash=r,{path:Q.normalize(t),query:Vn(n||``),url:r}},revert:e=>{location.hash!==e&&(location.hash=e)},resolveAnchor:e=>e.hash.startsWith(`#`)?Q.normalize(e.hash.substring(1)):``,setupListener:e=>(window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e))}),Wn=class{constructor(e){this.routes=[],Object.entries(e).forEach(([e,t])=>{let n=Q.normalize(e);if(!n.includes(`:`))this.routes.push({kind:`exact`,pattern:n,def:t});else{let e=[],r=n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`).replace(/:(\w+)/g,(t,n)=>(e.push(n),`([^/]+)`));this.routes.push({kind:`dynamic`,pattern:n,regex:RegExp(`^${r}$`),paramNames:e,def:t})}})}match(e){let t=Q.normalize(e);for(let e of this.routes)if(e.kind===`exact`){if(e.pattern===t)return{kind:`found`,route:e,params:{}}}else{let n=t.match(e.regex);if(n)return{kind:`found`,route:e,params:e.paramNames.reduce((e,t,r)=>{try{e[t]=decodeURIComponent(n[r+1]||``)}catch{e[t]=n[r+1]||``}return e},{})}}return{kind:`not-found`}}},Gn=class{constructor(e){this.isDestroyed=!1,this.previousPath=``,this.previousUrl=``,this.cleanups=[],this.routeCleanups=[],this.config=this.parseConfig(e),this.activeClass=this.config.activeClass;let n=this.config.target;typeof n==`string`||n instanceof HTMLElement?this.$target=(0,t.default)(n):this.$target=n,this.urlAdapter=this.config.mode===`history`?Hn(this.config.basePath):Un(),this.discoverRoutesFromDOM(),this.matcher=new Wn(this.config.routes);let r=this.urlAdapter.getBrowserState();this.previousUrl=r.url;let i=r.path||this.config.default;this.currentRouteAtom=Me(i),this.currentRoute=this.currentRouteAtom,this.queryParamsAtom=Me(r.query),this.queryParams=Le(()=>this.queryParamsAtom.value);let a=this.matcher.match(i),o=a.kind===`found`?a.params:{};this.paramsAtom=Me({...r.query,...o}),this.params=Le(()=>this.paramsAtom.value),this.setupLifecycle()}parseConfig(e){return{mode:Ze.mode,basePath:Ze.basePath,autoBindLinks:Ze.autoBindLinks,activeClass:Ze.activeClass,notFound:e.notFound||``,beforeTransition:e.beforeTransition||(()=>{}),afterTransition:e.afterTransition||(()=>{}),default:e.default||``,...e,routes:e.routes||{}}}setupLifecycle(){this.cleanups.push(this.urlAdapter.setupListener(()=>this.handleBrowserSync()));let e=B(()=>{let e=this.currentRouteAtom.value;this.queryParamsAtom.value,j(()=>{this.runRouteCleanups(),this.render(e)})});this.cleanups.push(()=>e.dispose()),this.config.autoBindLinks&&this.setupInterception(),this.$target[0]&&W.trackCleanup(this.$target[0],()=>this.destroy())}navigate(e){if(this.isDestroyed||!this.canLeave())return;let{route:t,query:n}=Q.split(e),r=t||this.config.default;if(!r)return;let i=n?`${r}?${n}`:r;Oe(()=>{let e=this.urlAdapter.commit(i);this.previousUrl=e.url,Q.isSameParams(this.queryParamsAtom.peek(),e.query)||(this.queryParamsAtom.value=e.query),this.currentRouteAtom.peek()!==e.path&&(this.currentRouteAtom.value=e.path)})}handleBrowserSync(){if(this.isDestroyed)return;let e=this.urlAdapter.getBrowserState();if(e.url===this.previousUrl)return;let t=e.path||this.config.default;if(this.currentRouteAtom.peek()!==t){if(!this.canLeave()){this.urlAdapter.revert(this.previousUrl);return}this.currentRouteAtom.value=t}this.queryParamsAtom.value=e.query,this.previousUrl=e.url}render(e){let t=this.matcher.match(e),n=t.kind===`found`?t.route.def:this.config.routes[this.config.notFound];if(!n){U.warn(V.ROUTE,H.ROUTE.NOT_FOUND(e));return}let r=t.kind===`found`?t.route.pattern:e,i=t.kind===`found`?t.params:{},a={...this.queryParamsAtom.peek(),...i};if(j(()=>this.config.beforeTransition(this.previousPath,r)),n.onEnter){let e=j(()=>n.onEnter(a,this));if(e===!1){this.urlAdapter.revert(this.previousUrl);return}e&&Object.assign(a,e)}Q.isSameParams(this.paramsAtom.peek(),a)||(this.paramsAtom.value=a),n.title&&(document.title=n.title),this.updateDom(n,r,a),j(()=>this.config.afterTransition(this.previousPath,r)),this.finalizeNavigation(r,a)}updateDom(e,n,r){let i=this.$target[0];if(!i)return;i.replaceChildren();let a=e=>this.routeCleanups.push(e);if(e.render)e.render(i,n,r,a,this);else if(e.template){let n=this.getTemplate(e.template);n&&(i.appendChild(n.content.cloneNode(!0)),e.onMount?.((0,t.default)(i).children(),a,this))}}discoverRoutesFromDOM(){document.querySelectorAll(`template[data-path]`).forEach(e=>{let t=Q.normalize(e.getAttribute(`data-path`)||``),n=e.getAttribute(`title`)||e.getAttribute(`data-title`),r=this.config.routes[t];r?n&&!r.title&&(r.title=n):(e.id||=`route-${Math.random().toString(36).substring(2,9)}`,this.config.routes[t]={template:`#${e.id}`,...n?{title:n}:{}}),e.hasAttribute(`data-default`)&&!this.config.default&&(this.config.default=t)})}setupInterception(){let e=e=>{let t=e.originalEvent;if(t&&(t.ctrlKey||t.metaKey||t.altKey||t.shiftKey||t.button!==0))return;let n=e.currentTarget;if(n.hasAttribute(`data-ignore`))return;let r=this.resolvePathFromElement(n);r&&this.shouldIntercept(r,n)&&(e.preventDefault(),this.navigate(r))};(0,t.default)(document).on(`click`,`a, [data-route]`,e),this.cleanups.push(()=>(0,t.default)(document).off(`click`,`a, [data-route]`,e)),this.setupActiveEffect()}setupActiveEffect(){let e=B(()=>{let e=this.currentRouteAtom.value,t=this.matcher.match(e),n=t.kind===`found`?t.route.pattern:``;j(()=>{document.querySelectorAll(`a, [data-route]`).forEach(t=>{let r=this.resolvePathFromElement(t,!0),i=r===e||r===n;t.classList.toggle(this.activeClass,i),i?t.setAttribute(`aria-current`,`page`):t.removeAttribute(`aria-current`)})})});this.cleanups.push(()=>e.dispose())}resolvePathFromElement(e,t=!1){let n=e.dataset.route||``;return!n&&e instanceof HTMLAnchorElement&&(n=this.urlAdapter.resolveAnchor(e)),t?Q.split(n).route:n}shouldIntercept(e,t){if(t instanceof HTMLAnchorElement&&(t.rel===`external`||t.target&&t.target!==`_self`||t.hasAttribute(`download`)||t.origin!==location.origin||(e.split(`/`).pop()||``).includes(`.`)&&this.matcher.match(Q.split(e).route).kind===`not-found`))return!1;let{route:n}=Q.split(e);return this.matcher.match(n).kind===`found`||!!this.config.notFound}canLeave(){let e=this.matcher.match(this.currentRouteAtom.peek()),t=e.kind===`found`?e.route.def:this.config.routes[this.config.notFound];return t?.onLeave?j(()=>t.onLeave(this))!==!1:!0}getTemplate(e){let t=document.querySelector(e);return t instanceof HTMLTemplateElement?t:null}runRouteCleanups(){this.routeCleanups.forEach(e=>{try{e()}catch{}}),this.routeCleanups=[]}finalizeNavigation(e,t){window.dispatchEvent(new CustomEvent(`route-change`,{detail:{from:this.previousPath,to:e,params:t}}));let n=this.$target[0];if(!n)return;let r=n.querySelector(`h1, [role="heading"]`),i=r instanceof HTMLElement?r:n;i.tabIndex=-1,i.focus(),this.previousPath=e}destroy(){this.isDestroyed||(this.isDestroyed=!0,this.runRouteCleanups(),this.cleanups.forEach(e=>{try{e()}catch{}}),this.cleanups=[])}};function Kn(e){return new Gn(e)}t.default.extend({route:Kn});function qn(e,t){let n=typeof t.ajaxOptions==`object`?t.ajaxOptions:{},r=typeof t.ajaxOptions==`function`?t.ajaxOptions():{};return{...n,...r,url:e(),method:t.method||r.method||n.method,headers:{...n?.headers,...t.headers,...r.headers},success:void 0,error:void 0,complete:void 0}}function Jn(e,t){let n;if(e&&e.readyState!==void 0){let t=e;n=Error(`Network Error: ${t.statusText||`Unknown`} (${t.status})`),n.jqXHR=t}else n=e instanceof Error?e:Error(String(e??`Unknown error`));if(t)try{t(n)}catch{}throw n}function Yn(e,n){let r=typeof e==`string`?()=>e:e,i=null,a=Le(async()=>{i?.abort();let e=new AbortController;i=e;let{signal:a}=e,o=qn(r,n),s,c;try{s=t.default.ajax(o);let e=s;c=()=>e.abort(),a.addEventListener(`abort`,c),a.aborted&&e.abort();let r=await e;return n.transform?n.transform(r,e):r}catch(e){if(a.aborted){let e=Error(`AbortError`);throw e.name=`AbortError`,e}return Jn(e,n.onError)}finally{c&&a.removeEventListener(`abort`,c),i===e&&(i=null)}},{defaultValue:n.defaultValue,lazy:n.eager===!1,...n.name===void 0?{}:{name:n.name}}),o=a.dispose.bind(a);return a.dispose=()=>{i?.abort(),o()},Object.assign(a,{abort:()=>i?.abort()})}t.default.extend({atomFetch:Yn});function $(e,t){try{return new URL(e,t)}catch{return new URL(e,`http://localhost`)}}function Xn(e){let{pathname:t,search:n,hash:r}=e.location;return(t||`/`)+(n||``)+(r||``)}function Zn(e){return e.pathname+e.search}function Qn(e,t,n){let r=new DOMParser().parseFromString(e,`text/html`),i=r.querySelector(`title`)?.textContent?.trim()||null,a=t?r.querySelector(t):null,o=a?a.innerHTML:r.body?.innerHTML||e,s={};if(a)for(let{name:e,value:t}of Array.from(a.attributes))e!==`id`&&(s[e]=t);let c={},l=e=>r.querySelector(e)?.getAttribute(`content`),u=l(`meta[name="description"]`),d=l(`meta[name="keywords"]`),f=r.querySelector(`link[rel="canonical"]`)?.getAttribute(`href`);return u&&(c.description=u),d&&(c.keywords=d),f&&(c.canonical=f),{html:Y(o).trim(),title:i,attributes:s,redirectUrl:n?.getResponseHeader?.(`X-PJAX-URL`)||void 0,meta:c}}function $n(e,t){let n=e.document,r=n.head,i=(e,t,i,a=!1)=>{let o=r.querySelector(e);if(!t){o?.remove();return}let s=o||n.createElement(a?`link`:`meta`);o||(a?s.setAttribute(`rel`,`canonical`):s.setAttribute(`name`,i),r.appendChild(s));let c=a?`href`:`content`;s.getAttribute(c)!==t&&s.setAttribute(c,t)};i(`meta[name="description"]`,t?.description,`description`),i(`meta[name="keywords"]`,t?.keywords,`keywords`),i(`link[rel="canonical"]`,t?.canonical,`canonical`,!0)}function er(e,t){for(let n of Array.from(e.attributes)){let{name:r}=n;r!==`id`&&r!==`data-atom-nav-target`&&!(r in t)&&e.removeAttribute(r)}for(let[n,r]of Object.entries(t))e.getAttribute(n)!==r&&e.setAttribute(n,r)}function tr(e,t,n=!1){if(t){let r=e.document.getElementById(decodeURIComponent(t));if(r){r.scrollIntoView({behavior:`auto`,block:`start`});return}if(!n)return}e.scrollTo(0,0)}function nr(e){let{target:n,selector:r=`a[data-nav]`,headers:i={},syncTitle:a=!0}=e,o=e.window??window,s=(0,t.default)(n);s.attr(`data-atom-nav-target`,`true`);let c=Xn(o),l=Zn($(c,o.location.href)),u=t.default.atom({url:c,type:`init`},{name:`nav:state`}),d=t.default.atom(0,{name:`nav:hook-pending-count`}),f=t.default.atom({url:c,path:l},{name:`nav:rendered`}),p=t.default.computed(()=>{let{url:e,type:t}=u.value,n=$(e,o.location.href);return{url:e,pathAndSearch:Zn(n),hash:n.hash.slice(1),type:t}},{name:`nav:normalized`}),m=typeof n==`string`?n:s.attr(`id`)?`#${t.default.escapeSelector(s.attr(`id`))}`:void 0,h=t.default.atomFetch(()=>p.value.pathAndSearch,{name:`nav:content`,defaultValue:{html:``,title:null},headers:{"X-PJAX":`true`,...i},eager:!1,transform:(e,t)=>Qn(String(e),m,t)}),g=new AbortController,_=null;function v(){_?.abort(),h.abort?.();let e=new AbortController;return _=e,e}function y(n,r,i){t.default.untracked(()=>{let t=o.document;a&&n.title!==null&&t.title!==n.title&&(t.title=n.title),$n(o,n.meta),e.onUnmount?.(s,i),s.children().atomUnbind();let c=s[0];c&&n.attributes&&er(c,n.attributes),s.html(n.html),e.onMount?.(s,r)})}function b(){let{url:n,pathAndSearch:r,hash:i,type:a}=p.value,c=f.value;if(a===`init`&&r===c.path){i&&tr(o,i),e.onMount?.(s,n);return}if(h.hasError){let t=h.lastError;if(t instanceof Error&&t.name===`AbortError`)return;e.onError?.(t,n)!==!1&&o.location.assign(n);return}let l=h.value;if(!h.isResolved||h.isPending)return;let u=l.redirectUrl&&l.redirectUrl!==n,d=c.url,m=u?l.redirectUrl:n,g=u?$(m,o.location.href):null,_=g?Zn(g):r,v=_!==c.path;t.default.batch(()=>{u&&o.history.replaceState(null,``,m),(v||u)&&y(l,m,d);let{scrollToTop:t=!0}=e,n=$(f.value.url,o.location.href),r=!i&&n.hash!==``,s=a===`pop`;(i||!s&&(r||v&&t))&&tr(o,i,!s&&v&&t),f.value={url:m,path:_}})}let x=t.default.effect(()=>b(),{name:`nav:sync-effect`});o.document.addEventListener(`click`,e=>{let n=e.target.closest(r);if(!n)return;let i=n.dataset.target,a=s.attr(`id`),c=i&&a&&i===`#${a}`;if(i&&!c)return;let l=(0,t.default)(n).closest(`[data-atom-nav-target="true"]`)[0],u=l&&l!==s[0];if(!c&&u)return;let d=e;if(e.defaultPrevented||e.isDefaultPrevented?.()||e.originalEvent?.defaultPrevented||d.ctrlKey||d.metaKey||d.shiftKey||d.button>0)return;let f=n.getAttribute(`href`);if(f&&!f.startsWith(`#`)&&n.target!==`_blank`&&!n.hasAttribute(`download`)&&n.getAttribute(`rel`)!==`external`&&n.dataset.nav!==`false`&&(n.protocol===`http:`||n.protocol===`https:`))try{(n.origin??new URL(n.href,n.ownerDocument.location?.href??o.location.origin).origin)===o.location.origin&&(e.preventDefault(),S.navigate(n.href))}catch{}},{signal:g.signal}),o.addEventListener(`popstate`,()=>{v(),u.value={url:Xn(o),type:`pop`}},{signal:g.signal});let S={currentUrl:t.default.computed(()=>f.value.url,{name:`nav:public-url`}),isPending:t.default.computed(()=>h.isPending||d.value>0,{name:`nav:isPending`}),hasError:t.default.computed(()=>h.hasError,{name:`nav:hasError`}),async navigate(n,r={}){let{signal:i}=v();if(e.onBeforeLoad){d.value++;try{let t=await e.onBeforeLoad(n,i);if(i.aborted||t===!1)return}finally{d.value=Math.max(0,d.value-1)}}let a=o.document.baseURI??o.location.href,s=$(n,a);if(s.origin!==o.location.origin){o.location.assign(n);return}let c=Zn(s),l=Zn($(o.location.href,a)),f=c+s.hash;!(c===l&&s.hash===(o.location.hash||``))||r.replace?t.default.batch(()=>{let e=r.replace?`replaceState`:`pushState`;o.history[e](null,``,f),u.value={url:f,type:r.replace?`replace`:`push`}}):(n.includes(`#`)||s.hash)&&tr(o,s.hash.slice(1),!0)},destroy(){g.abort(),_?.abort(),x.dispose(),h.dispose(),s.removeAttr(`data-atom-nav-target`),[u,d,f,p,S.currentUrl,S.isPending,S.hasError].forEach(e=>e.dispose?.())}};return S}t.default.extend({atomNav:nr}),(0,t.default)(()=>{At(),document.body&&bt(document.body)}),e.default=t.default,e.disableAutoCleanup=xt,e.disablejQueryOverrides=jt,e.enableAutoCleanup=bt,e.enablejQueryOverrides=At,e.nextTick=gt,e.registry=W});
11
6
  //# sourceMappingURL=atom-effect-jquery.min.js.map