@spearwolf/shadow-objects 0.30.2 → 0.32.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.
Files changed (122) hide show
  1. package/CHANGELOG.md +23 -1
  2. package/bundle.js +13 -13
  3. package/package.json +3 -3
  4. package/src/bundle.js +4 -4
  5. package/src/bundle.js.map +7 -1
  6. package/src/constants.js +53 -40
  7. package/src/constants.js.map +7 -1
  8. package/src/create-worker.bundle.js +6 -8
  9. package/src/create-worker.bundle.js.map +7 -1
  10. package/src/create-worker.js +5 -2
  11. package/src/create-worker.js.map +7 -1
  12. package/src/elements/ShaeElement.js +57 -54
  13. package/src/elements/ShaeElement.js.map +7 -1
  14. package/src/elements/ShaeEntElement.d.ts.map +1 -1
  15. package/src/elements/ShaeEntElement.js +320 -341
  16. package/src/elements/ShaeEntElement.js.map +7 -1
  17. package/src/elements/ShaePropElement.js +312 -320
  18. package/src/elements/ShaePropElement.js.map +7 -1
  19. package/src/elements/ShaeWorkerElement.js +234 -229
  20. package/src/elements/ShaeWorkerElement.js.map +7 -1
  21. package/src/elements/constants.js +37 -22
  22. package/src/elements/constants.js.map +7 -1
  23. package/src/elements/events.d.ts +1 -1
  24. package/src/elements/events.d.ts.map +1 -1
  25. package/src/elements/events.js +1 -2
  26. package/src/elements/events.js.map +7 -1
  27. package/src/elements.js +4 -4
  28. package/src/elements.js.map +7 -1
  29. package/src/in-the-dark/Entity.d.ts +1 -1
  30. package/src/in-the-dark/Entity.d.ts.map +1 -1
  31. package/src/in-the-dark/Entity.js +299 -293
  32. package/src/in-the-dark/Entity.js.map +7 -1
  33. package/src/in-the-dark/Kernel.d.ts.map +1 -1
  34. package/src/in-the-dark/Kernel.js +556 -533
  35. package/src/in-the-dark/Kernel.js.map +7 -1
  36. package/src/in-the-dark/Registry.d.ts.map +1 -1
  37. package/src/in-the-dark/Registry.js +101 -104
  38. package/src/in-the-dark/Registry.js.map +7 -1
  39. package/src/in-the-dark/ShadowObject.d.ts.map +1 -1
  40. package/src/in-the-dark/ShadowObject.js +21 -23
  41. package/src/in-the-dark/ShadowObject.js.map +7 -1
  42. package/src/in-the-dark/SignalsPath.d.ts.map +1 -1
  43. package/src/in-the-dark/SignalsPath.js +139 -123
  44. package/src/in-the-dark/SignalsPath.js.map +7 -1
  45. package/src/in-the-dark/events.js +11 -9
  46. package/src/in-the-dark/events.js.map +7 -1
  47. package/src/in-the-dark/importModule.js +31 -29
  48. package/src/in-the-dark/importModule.js.map +7 -1
  49. package/src/index.d.ts +2 -2
  50. package/src/index.d.ts.map +1 -1
  51. package/src/index.js +14 -14
  52. package/src/index.js.map +7 -1
  53. package/src/shadow-objects.js +6 -6
  54. package/src/shadow-objects.js.map +7 -1
  55. package/src/shadow-objects.worker.js +3 -3
  56. package/src/shadow-objects.worker.js.map +7 -1
  57. package/src/shae-ent.js +3 -3
  58. package/src/shae-ent.js.map +7 -1
  59. package/src/shae-prop.js +3 -3
  60. package/src/shae-prop.js.map +7 -1
  61. package/src/shae-worker.js +3 -3
  62. package/src/shae-worker.js.map +7 -1
  63. package/src/types.d.ts +3 -2
  64. package/src/types.d.ts.map +1 -1
  65. package/src/types.js +1 -2
  66. package/src/types.js.map +7 -1
  67. package/src/utils/ConsoleLogger.js +179 -185
  68. package/src/utils/ConsoleLogger.js.map +7 -1
  69. package/src/utils/FrameLoop.js +41 -40
  70. package/src/utils/FrameLoop.js.map +7 -1
  71. package/src/utils/array-utils.js +22 -24
  72. package/src/utils/array-utils.js.map +7 -1
  73. package/src/utils/attr-utils.js +15 -11
  74. package/src/utils/attr-utils.js.map +7 -1
  75. package/src/utils/constants.js +5 -2
  76. package/src/utils/constants.js.map +7 -1
  77. package/src/utils/generateUUID.d.ts.map +1 -1
  78. package/src/utils/generateUUID.js +269 -32
  79. package/src/utils/generateUUID.js.map +7 -1
  80. package/src/utils/props-utils.js +34 -43
  81. package/src/utils/props-utils.js.map +7 -1
  82. package/src/utils/toMaybe.js +5 -2
  83. package/src/utils/toMaybe.js.map +7 -1
  84. package/src/utils/toNamespace.js +6 -3
  85. package/src/utils/toNamespace.js.map +7 -1
  86. package/src/utils/toUrlString.js +9 -6
  87. package/src/utils/toUrlString.js.map +7 -1
  88. package/src/utils/waitForMessageOfType.js +30 -32
  89. package/src/utils/waitForMessageOfType.js.map +7 -1
  90. package/src/view/ComponentChanges.d.ts +1 -1
  91. package/src/view/ComponentChanges.d.ts.map +1 -1
  92. package/src/view/ComponentChanges.js +249 -251
  93. package/src/view/ComponentChanges.js.map +7 -1
  94. package/src/view/ComponentContext.d.ts.map +1 -1
  95. package/src/view/ComponentContext.js +303 -331
  96. package/src/view/ComponentContext.js.map +7 -1
  97. package/src/view/ComponentMemory.d.ts +1 -0
  98. package/src/view/ComponentMemory.d.ts.map +1 -1
  99. package/src/view/ComponentMemory.js +73 -76
  100. package/src/view/ComponentMemory.js.map +7 -1
  101. package/src/view/IShadowObjectEnvProxy.js +1 -2
  102. package/src/view/IShadowObjectEnvProxy.js.map +7 -1
  103. package/src/view/LocalShadowObjectEnv.d.ts.map +1 -1
  104. package/src/view/LocalShadowObjectEnv.js +57 -52
  105. package/src/view/LocalShadowObjectEnv.js.map +7 -1
  106. package/src/view/RemoteWorkerEnv.js +134 -123
  107. package/src/view/RemoteWorkerEnv.js.map +7 -1
  108. package/src/view/ShadowEnv.d.ts.map +1 -1
  109. package/src/view/ShadowEnv.js +232 -228
  110. package/src/view/ShadowEnv.js.map +7 -1
  111. package/src/view/ViewComponent.d.ts +9 -0
  112. package/src/view/ViewComponent.d.ts.map +1 -1
  113. package/src/view/ViewComponent.js +142 -130
  114. package/src/view/ViewComponent.js.map +7 -1
  115. package/src/view/cloneChangeTrail.js +13 -11
  116. package/src/view/cloneChangeTrail.js.map +7 -1
  117. package/src/worker/MessageRouter.d.ts.map +1 -1
  118. package/src/worker/MessageRouter.js +78 -67
  119. package/src/worker/MessageRouter.js.map +7 -1
  120. package/src/worker/WorkerRuntime.js +22 -21
  121. package/src/worker/WorkerRuntime.js.map +7 -1
  122. package/tsconfig.lib.tsbuildinfo +0 -1
package/bundle.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  @file @spearwolf/shadow-objects - a reactive entity-component framework that feels at home in the shadows
3
3
  @author Wolfger Schramm <wolfger@spearwolf.de>
4
- @version 0.30.2+bundle.20260226
4
+ @version 0.32.0+bundle.20260513
5
5
 
6
6
  Copyright 2026 Wolfger Schramm
7
7
 
@@ -18,17 +18,17 @@ See the License for the specific language governing permissions and
18
18
  limitations under the License.
19
19
 
20
20
  */
21
- var te="*",Xt=1,xt=2,kt=4,U=Symbol.for("eventize"),Hs="[eventize]",Fe=s=>s===te,es=s=>{switch(typeof s){case"string":case"symbol":return!0;default:return!1}},ts=typeof console<"u",Ys=ts?console[console.warn?"warn":"log"].bind(console,Hs):()=>{},Ks=(s,e,t)=>(Object.defineProperty(s,e,{value:t,configurable:!0}),s),Qs=0,ss=class{static publish(s){s.sort((e,t)=>e.order-t.order).forEach(e=>e.emit())}events=new Map;eventNames=new Set;add(s){Array.isArray(s)?s.forEach(e=>this.eventNames.add(e)):this.eventNames.add(s)}remove(s){Array.isArray(s)?s.forEach(e=>this.eventNames.delete(e)):this.eventNames.delete(s),this.clear(s)}clear(s){Array.isArray(s)?s.forEach(e=>this.events.delete(e)):this.events.delete(s)}retain(s,e){this.eventNames.has(s)&&this.events.set(s,{args:e,order:Qs++})}isKnown(s){return this.eventNames.has(s)}emit(s,e,t=[]){if(Fe(s))this.eventNames.forEach(r=>this.emit(r,e,t));else if(this.events.has(s)){let{order:r,args:i}=this.events.get(s);t.push({order:r,emit:()=>e.apply(s,i)})}return t}},Et=(s,e,t,r)=>{if(typeof e=="function"){let i=e.apply(s,t);i!=null&&r?.(i)}},Js=(s,e,t,r)=>Et(e,e.emit,[s].concat(t),r),Zs=s=>{switch(typeof s){case"function":return Xt;case"string":case"symbol":return xt;case"object":return kt}},Xs=0,er=()=>++Xs,rs=class{id;eventName;isCatchEmAll;priority;listener;listenerObject;listenerType;callAfterApply;isRemoved;refCount;constructor(s,e,t,r=null){this.id=er(),this.eventName=s,this.isCatchEmAll=Fe(s),this.listener=t,this.listenerObject=r,this.priority=e,this.listenerType=Zs(t),this.callAfterApply=void 0,this.isRemoved=!1,this.refCount=1}isEqual(s,e=null){if(s===this)return!0;let t=typeof s;return t==="number"&&s===this.id?!0:e===null&&(t==="string"||t==="symbol")?s===te||s===this.eventName:this.listener===s&&this.listenerObject===e}apply(s,e,t){if(this.isRemoved)return;let{listener:r,listenerObject:i}=this;switch(this.listenerType){case Xt:Et(i,r,e,t),this.callAfterApply&&this.callAfterApply();break;case xt:Et(i,i[r],e,t),this.callAfterApply&&this.callAfterApply();break;case kt:{let n=r[s];if(this.isCatchEmAll||this.eventName===s){if(typeof n=="function"){let o=n.apply(r,e);o!=null&&t?.(o)}else Js(s,r,e,t);this.callAfterApply&&this.callAfterApply()}break}}}},tr=(s,e)=>s.priority!==e.priority?e.priority-s.priority:s.id-e.id,Qt=s=>s?.slice(0),Jt=(s,e)=>{let t=s.indexOf(e);t>-1&&s.splice(t,1)},sr=s=>s===kt||s===xt,St=(s,e,t)=>{let r=s.findIndex(i=>i.isEqual(e,t));r>-1&&(s[r].isRemoved=!0,s.splice(r,1))},Ie=(s,e,t)=>{let r=[];for(let i of s)(e==null&&i.listenerObject===t||i.eventName===e&&i.listener===t)&&r.push(i);for(let i of r)St(s,i,void 0)},Ct=s=>{s&&(s.forEach(e=>{e.isRemoved=!0}),s.length=0)},rr=(s,e)=>s.listenerType===e.listenerType?s.priority===e.priority&&s.eventName===e.eventName&&s.listenerObject===e.listenerObject&&s.listener===e.listener:!1,ir=(s,e)=>{if(sr(s.listenerType))return e.find(t=>rr(s,t))},nr=(s,e)=>{let t=ir(s,e);return t?(t.refCount+=1,t):(e.push(s),e.sort(tr),s)},or=class{namedListeners;catchEmAllListeners;getListenersForEventName=s=>{let e=this.namedListeners.get(s);return e||(e=[],this.namedListeners.set(s,e)),e};constructor(){this.namedListeners=new Map,this.catchEmAllListeners=[]}add(s){return nr(s,s.isCatchEmAll?this.catchEmAllListeners:this.getListenersForEventName(s.eventName))}remove(s,e,t=!1){e==null&&Array.isArray(s)?s.forEach(r=>this.remove(r,null,t)):s==null||e==null&&Fe(s)?this.removeAllListeners():e==null&&es(s)?Ct(this.namedListeners.get(s)):s instanceof rs?s.isRemoved||(s.refCount-=1,s.refCount<1&&(s.isRemoved=!0,this.namedListeners.forEach(r=>Jt(r,s)),Jt(this.catchEmAllListeners,s))):t?Fe(s)&&typeof s=="object"?Ie(this.catchEmAllListeners,te,s):this.namedListeners.forEach(r=>Ie(r,s,e)):(this.namedListeners.forEach(r=>{St(r,s,e),typeof s=="object"&&Ie(r,void 0,s)}),St(this.catchEmAllListeners,s,e),typeof s=="object"&&Ie(this.catchEmAllListeners,void 0,s))}removeAllListeners(){this.namedListeners.forEach(s=>Ct(s)),this.namedListeners.clear(),Ct(this.catchEmAllListeners)}forEach(s,e){let t=Qt(this.catchEmAllListeners),r=Qt(this.namedListeners.get(s));if(s===te||!r||r.length===0)t.forEach(e);else if(t.length===0)r.forEach(e);else{let i=r.length,n=t.length,o=0,l=0;for(;o<i||l<n;){if(o<i){let a=r[o];if(l>=n||a.priority>=t[l].priority){e(a),++o;continue}}l<n&&(e(t[l]),++l)}}}getSubscriptionCount(){let s=this.catchEmAllListeners.length;for(let e of this.namedListeners.values())s+=e.length;return s}},se=s=>!!(s&&s[U]);function ve(s){if(se(s))return s;let e=new or,t=new ss;return Ks(s,U,{keeper:t,store:e}),s}var $={Max:Number.POSITIVE_INFINITY,AAA:1e9,BB:1e6,C:1e3,Default:0,Low:-1e4,Min:Number.NEGATIVE_INFINITY},ar=(s,e,t,r,i,n,o)=>{let l=s.add(new rs(t,r,i,n));return e.emit(t,l,o),l},hr=(s,e,t,r)=>{let i=t.length,n=typeof t[0],o,l,a,f;if(i>=2&&i<=3&&n==="number"?(o=te,[l,a,f]=t):i>=3&&i<=4&&typeof t[1]=="number"?[o,l,a,f]=t:(l=$.Default,n==="string"||n==="symbol"||Array.isArray(t[0])?[o,a,f]=t:(o=te,[a,f]=t)),!a&&ts)throw Ys("called with insufficient arguments!",t),"subscribeTo() called with insufficient arguments!";let w=v=>u=>ar(s,e,u,v,a,f,r);return Array.isArray(o)?o.map(v=>Array.isArray(v)?w(v[1])(v[0]):w(l)(v)):w(l)(o)},is=(s,e,t)=>{let r=[],i=hr(s,e,t,r);return ss.publish(r),i},Zt=s=>e=>{e.callAfterApply=()=>{s?.()}},ns=(s,e)=>Object.assign(()=>S(s,e),Array.isArray(e)?{listeners:e}:{listener:e}),os=(s,e,t,r)=>{let{store:i,keeper:n}=s[U];Array.isArray(e)?e.forEach(o=>{i.forEach(o,l=>l.apply(o,t,r)),n.retain(o,t)}):e!==te&&(i.forEach(e,o=>{o.apply(e,t,r)}),n.retain(e,t))},m=(s,...e)=>{let t=ve(s),{store:r,keeper:i}=t[U];return ns(t,is(r,i,e))},E=(s,...e)=>{let t=ve(s),{store:r,keeper:i}=t[U],n=is(r,i,e),o=ns(t,n),l=!1,a=()=>{l||(o(),l=!0)};return Array.isArray(n)?n.forEach(Zt(a)):Zt(a)(n),a},le=(s,e)=>new Promise(t=>{E(s,e,t)}),S=(s,e,t)=>{if(!se(s))throw new Error("object is not eventized");let{store:r,keeper:i}=s[U],n=typeof e,o=t!=null&&(n==="string"||n==="symbol");r.remove(e,t,o),Array.isArray(e)?i.remove(e.filter(l=>typeof l=="string")):es(e)&&i.remove(e)},y=(s,e,...t)=>{if(!se(s))throw new Error("object is not eventized");os(s,e,t)},lr=(s,e,...t)=>{if(!se(s))throw new Error("object is not eventized");let r=[];return os(s,e,t,i=>{r.push(i)}),r=r.map(i=>Array.isArray(i)?Promise.all(i):Promise.resolve(i)),r.length>0?Promise.all(r):Promise.resolve()},B=(s,e)=>{let t=ve(s),{keeper:r}=t[U];r.add(e)},K=(s,e)=>{if(!se(s))throw new Error("object is not eventized");let{keeper:t}=s[U];t.clear(e)},x=(()=>{let s=(e={})=>ve(e);return s.inject=(e={})=>(e=ve(e),Object.assign(e,{on:(...t)=>m(e,...t),once:(...t)=>E(e,...t),onceAsync:t=>le(e,t),off:(t,r)=>S(e,t,r),emit:(t,...r)=>y(e,t,...r),emitAsync:(t,...r)=>lr(e,t,...r),retain:t=>B(e,t),retainClear:t=>K(e,t)}),e),s.is=se,s})();var At=s=>se(s)?s[U]?.store?.getSubscriptionCount()??0:0;var W=Symbol.for("signal"),ue=Symbol.for("effect"),as=Symbol.for("destroySignal"),hs=Symbol.for("createEffect"),ur=Symbol.for("destroyEffect"),ce="value",Rt="mute",Mt="unmute",de="destroy",we=Symbol.for("recall"),Ce=x(),ne=x(),re=x(),us=x(),ie=class{static current;delayedEffects=[];batch(e,t){let r=this.delayedEffects.length;for(let i=0;i<r;i++){let[n,o]=this.delayedEffects[i];if(!(n>t))if(n===t){o.add(e);return}else{this.delayedEffects.splice(i,0,[t,new Set([e])]);return}}this.delayedEffects.push([t,new Set([e])])}flush(){this.run(),this.delayedEffects.length=0}run(){let e=new Set,t=[m(re,(i,n)=>{n===we&&e.add(i)}),m(us,i=>{e.add(i)})],r=this.delayedEffects.flatMap(([,i])=>Array.from(i));for(let i of r)e.has(i)||y(re,i,i,we);t.forEach(i=>{i()})}},cs=()=>ie.current;function P(s){let e=ie.current;e?e=void 0:e=ie.current=new ie;try{s()}finally{e&&(ie.current=void 0,e.run())}}var Ot=0;function qe(s){Ot++;try{s()}finally{Ot--}}function Lt(){return Ot>0}var ze=class{[ue];constructor(e){this[ue]=e,E(e,Ue.Destroy,()=>{this[ue]=void 0})}run=()=>this[ue]?.run();destroy=()=>{this[ue]?.destroy(),this[ue]=void 0}},Q=new Map,G=class s{#e=new Set;#t=new Set;#s=new Map;#i=new WeakMap;#r=new Map;#n=new Set;#o=new Set;#a;#h;static get(e){if(e!=null)return e instanceof s?e:Q.get(e)}static findOrCreate(e){if(e==null)throw new Error("Cannot create a group with a null object");return new s(e)}static destroy(e){console.warn("SignalGroup.destroy(obj) is deprecated. Use SignalGroup.delete(obj) instead."),s.delete(e)}static delete(e){Q.get(e)?.clear()}static clear(){for(let e of Q.values())e.clear();Q.clear()}constructor(e){if(e!=null&&e instanceof s)return e;if(e??=this,Q.has(e))return Q.get(e);this.#h=e,Q.set(e,this),x(this)}attachGroup(e){if(e===this)throw new Error("Cannot attach a group to itself");return this.#e.add(e),e.#a&&e.#a!==this&&e.#a.#e.delete(e),e.#a=this,e}detachGroup(e){return e!==this&&this.#e.has(e)&&(this.#e.delete(e),e.#a=void 0),e}attachSignal(e){let t=k(e);if(t?.destroyed)throw new Error("Cannot attach a destroyed signal to a group");return t&&this.#t.add(t),e}attachSignalByName(e,t){if(t){this.attachSignal(t);let r=k(t);this.#s.set(e,r),this.#r.has(e)?this.#r.get(e).push(r):this.#r.set(e,[r]),this.#i.has(r)?this.#i.get(r).add(e):this.#i.set(r,new Set([e]))}else this.#s.delete(e);return t}hasSignal(e){return this.#s.has(e)||!!this.#a?.hasSignal(e)}signal(e){return this.#s.get(e)?.object??this.#a?.signal(e)}detachSignal(e){let t=k(e);if(t&&(this.#t.delete(t),this.#i.has(t))){let r=this.#i.get(t);for(let i of r)if(this.#r.has(i)){let n=this.#r.get(i);n.splice(n.indexOf(t),1),n.length===0?(this.#s.delete(i),this.#r.delete(i)):this.#s.get(i)===t&&this.#s.set(i,n.at(-1))}r.clear(),this.#i.delete(t)}return e}attachEffect(e){return this.#n.add(e),e}runEffects(){for(let e of this.#n)e.run();for(let e of this.#e)e.runEffects()}attachLink(e){if(e?.isDestroyed)throw new Error("Cannot attach a destroyed link to a group");return e&&this.#o.add(e),e}detachLink(e){return e&&this.#o.delete(e),e}destroy(){console.warn("SignalGroup#destroy is deprecated. Use SignalGroup#clear instead."),this.clear()}clear(){y(this,de,this),S(this);for(let e of this.#e)e.clear();for(let e of this.#n)e.destroy();for(let e of this.#t)O(e);for(let e of this.#o)e.destroy();this.#e.clear(),this.#t.clear(),this.#s.clear(),this.#r.clear(),this.#n.clear(),this.#o.clear(),this.#a?.detachGroup(this),this.#h&&(Q.delete(this.#h),this.#h=void 0)}},Ve=class{#e;#t;constructor(e="id",t=1){this.#e=e,this.#t=t}make(){return Symbol(`${this.#e}${this.#t++}`)}},Tt=[],ds=()=>Tt.at(-1),cr=(s,e)=>{Tt.push(s);try{return e()}finally{Tt.pop()}};var dr=s=>s!=null&&typeof s.then=="function",Ue=class s{static idGen=new Ve("ef");static Destroy="destroy";static count=0;id;callback;#e;#t=new Set;#s=new Set;#i=new Map;#r=new Set;parentEffect;childEffects=[];curChildEffectSlot=0;autorun=!0;shouldRun=!0;priority;#n;#o=!1;constructor(e,t){x(this),this.callback=e;let r;t?.attach!=null&&(r=G.findOrCreate(t.attach),r.attachEffect(this)),this.autorun=t?.autorun??!0,this.#n=t?.dependencies?t.dependencies.map(i=>{switch(typeof i){case"string":case"symbol":return r.signal(i);default:return i}}):void 0,this.id=s.idGen.make(),this.priority=t?.priority??0,m(re,this.id,we,this),++s.count}hasStaticDeps(){return this.#n!=null&&this.#n.length>0}saveSignalsFromDeps(){for(let e of this.#n)this.whenSignalIsRead(k(e).id)}static createEffect(e,t,r){let i=Array.isArray(t)?t:void 0,n=i?r??{dependencies:i}:t;n&&i&&(n.dependencies=i);let o,l=ds();return l!=null?(o=l.getCurrentChildEffect(),o==null&&(o=new s(e,n),l.attachChildEffect(o),y(re,hs,o)),l.curChildEffectSlot++):(o=new s(e,n),y(re,hs,o)),o.hasStaticDeps()?o.saveSignalsFromDeps():o.autorun&&o.run(),new ze(o)}getCurrentChildEffect(){return this.childEffects[this.curChildEffectSlot]}attachChildEffect(e){this.childEffects.push(e),this.parentEffect=this}run=()=>{if(this.#o||!this.shouldRun)return;let e=cs();e?e.batch(this.id,this.priority):(this.runCleanupCallback(),this.destroyChildEffects(),this.curChildEffectSlot=0,this.shouldRun=!1,y(us,this.id,this.id),this.hasStaticDeps()?this.#e=this.callback():(this.#s=new Set(this.#t),this.#e=cr(this,this.callback),this.cleanupLostSignals(),this.#r.clear()))};[we](){this.shouldRun=!0,this.autorun&&this.run()}whenSignalIsRead(e){this.#s.delete(e),this.#t.has(e)||(this.#t.add(e),this.#i.set(e,[m(Ce,e,this.priority,we,this),E(ne,e,as,this)]))}[as](e){!this.#r.has(e)&&this.#t.has(e)&&(this.#r.add(e),this.unsubscribeSignal(e),this.#r.size===this.#t.size&&this.destroy())}cleanupLostSignals(){for(let e of this.#s)this.unsubscribeSignal(e),this.#t.delete(e)}destroyChildEffects(){for(let e of this.childEffects)e.destroy();this.childEffects.length=0}unsubscribeSignal(e){this.#i.has(e)&&(this.#i.get(e).forEach(t=>{t()}),this.#i.delete(e))}runCleanupCallback(){if(this.#e!=null){let e=this.#e;this.#e=void 0,dr(e)?Promise.resolve(e).then(t=>{typeof t=="function"&&t()}):e()}}destroy=()=>{this.#o||(y(this,s.Destroy,this),S(this),y(re,ur,this),this.runCleanupCallback(),this.destroyChildEffects(),S(Ce,this),S(re,this),S(ne,this),this.#o=!0,this.#t.clear(),this.#s.clear(),this.#i.clear(),this.#r.clear(),--s.count)}},C=(...s)=>Ue.createEffect(...s);var Ee=new WeakMap,fr=s=>{let e=Ee.get(s);return e||(e={},Ee.set(s,e)),e},_=(s,e)=>Ee.get(s)?.signals?.get(e);var fs=(s,e,t)=>{let r=fr(s);r.signals??=new Map,r.signals.set(e,t)};function Se(...s){for(let e of s)if(Ee.has(e)){let t=Ee.get(e);if(t.signals){for(let r of t.signals.values())O(r);t.signals.clear(),t.signals=void 0}}}function ps(s){let e=k(oe(s)?s:_(...s));e!=null&&!e.muted&&!e.destroyed&&Pt(e.id,e.value,{touch:!0})}function fe(s){return oe(s)?k(s)?.value:k(_(...s))?.value}var Be=class{[W];constructor(e){this[W]=e}get get(){return this[W].reader}get set(){return this[W].writer}get value(){return fe(this.get)}set value(e){this.set(e)}onChange(e){let{destroy:t}=C(()=>e(this.value),[this.get]);return t}get muted(){return this[W].muted}set muted(e){this[W].muted=e}touch(){ps(this)}destroy(){O(this)}},pr=new Ve("si");function ls(s){Lt()||ds()?.whenSignalIsRead(s)}function Pt(s,e,t){Lt()||y(Ce,s,e,t)}var oe=s=>s!=null&&s[W]!=null,gr=s=>{let e=t=>(t?C(()=>(s.destroyed||ls(s.id),t(s.value)),[e]):s.destroyed||(s.beforeRead?.(),ls(s.id)),s.value);return Object.defineProperty(e,W,{value:s}),e},Ge=class s{static instanceCount=0;id;lazy;get[W](){return this}compare;beforeRead;muted=!1;destroyed=!1;#e=void 0;get value(){return this.lazy&&(this.#e=this.valueFn(),this.valueFn=void 0,this.lazy=!1),this.#e}set value(e){this.#e=e}valueFn;reader;writer=(e,t)=>{let r=t?.lazy??!1,n=t?.compare??this.compare??((l,a)=>l===a);if((r!==this.lazy||r&&e!==this.valueFn||!r&&!n(e,this.#e))&&(r?(this.#e=void 0,this.valueFn=e,this.lazy=!0):(this.#e=e,this.valueFn=void 0,this.lazy=!1),!this.muted&&!this.destroyed)){Pt(this.id,this.#e);return}(t?.touch??!1)&&Pt(this.id,this.#e,{touch:!0})};object;constructor(e,t){this.id=pr.make(),++s.instanceCount,this.lazy=e,this.lazy?(this.value=void 0,this.valueFn=t):(this.value=t,this.valueFn=void 0),this.reader=gr(this),this.object=new Be(this)}},k=s=>s?.[W];function p(s=void 0,e){let t;if(oe(s))t=k(s);else{let r=e?.lazy??!1;t=new Ge(r,s),t.beforeRead=e?.beforeRead,t.compare=e?.compare}return e?.attach!=null&&G.findOrCreate(e.attach).attachSignal(t),t.object}var O=(...s)=>{for(let e of s){let t=k(e);t!=null&&!t.destroyed&&(t.destroyed=!0,t.beforeRead=void 0,--Ge.instanceCount,y(ne,t.id,t.id))}};function He(s,e){let t=p(),r=e?.attach!=null?G.findOrCreate(e.attach):void 0;r!=null&&(e?.name?r.attachSignalByName(e.name,t):r.attachSignal(t));let i=C(()=>{P(()=>{t.set(s())})},{autorun:!(e?.lazy??!1),priority:e?.priority??$.C,attach:r}),n=k(t);return n.beforeRead=i.run,E(ne,n.id,i.destroy),t.get}var Ke=class{#e=!1;#t;source;lastValue;isDestroyed=!1;constructor(e){x(this),this.source=k(e),this.#t=m(Ce,this.source.id,(t,r)=>{!this.#e&&!this.isDestroyed&&(r?.touch===!0?this.touch():this.write())}),E(ne,this.source.id,()=>this.destroy())}attach(e){let t=G.findOrCreate(e);return t.attachLink(this),E(this,de,()=>{t.detachLink(this)}),t}nextValue(){return new Promise((e,t)=>{let r=[],i=()=>r.forEach(n=>{n()});r.push(E(this,ce,n=>{i(),e(n)}),E(this,de,()=>{i(),t()}))})}async*asyncValues(e){B(this,ce);try{let t=0;for(;!this.isDestroyed;)try{let r=await this.nextValue();if(e&&e(r,t++))break;yield r}catch{break}}finally{K(this,ce)}}destroy(){this.isDestroyed||(this.#t?.(),this.#t=void 0,y(this,de,this),K(this,ce),S(this),this.lastValue=void 0,this.isDestroyed=!0,Object.freeze(this))}get isMuted(){return this.#e}mute(){return!this.isDestroyed&&!this.#e&&(this.#e=!0,y(this,Rt,this)),this}unmute(){return!this.isDestroyed&&this.#e&&(this.#e=!1,y(this,Mt,this)),this}toggleMute(){return this.isDestroyed||(this.#e=!this.#e,y(this,this.#e?Rt:Mt,this)),this.#e}updateValue(e){if(!this.#e&&!this.isDestroyed){let{value:t}=this.source;e(t),y(this,ce,t),this.lastValue=t}}},jt=class extends Ke{target;constructor(e,t){super(e),this.target=k(t),E(ne,this.target.id,()=>this.destroy()),this.touch()}touch(){return this.updateValue(e=>{this.target.writer(e,{touch:!0})}),this}write(){this.updateValue(e=>{this.target.writer(e)})}},Dt=class extends Ke{target;constructor(e,t){super(e),this.target=t,this.touch()}touch(){return this.updateValue(e=>{this.target(e)}),this}write(){this.updateValue(e=>{this.target(e)})}},Ye=new Map;function R(s,e,t){let r=k(s),i;if(Ye.has(r)){i=Ye.get(r);let f=k(e)??e;if(i.has(f))return i.get(f)}else i=new Map,Ye.set(r,i);let n=k(e),o=n!=null?new jt(s,n):new Dt(s,e),l=t?.attach;l&&o.attach(l);let a=n??e;return i.set(a,o),E(o,de,()=>{i.delete(a),i.size===0&&Ye.delete(r)}),o}var Qe=class s{static fromProps(e,t){let r=new s,i=t?t.map(n=>[n,e[n]]):Object.entries(e);for(let[n,o]of i)r.#e.set(n,p(o));return r}#e=new Map;keys(){return this.#e.keys()}signals(){return this.#e.values()}entries(){return this.#e.entries()}clear(){for(let e of this.#e.values())e.destroy();this.#e.clear()}has(e){return this.#e.has(e)}get(e){if(!this.#e.has(e)){let t=p();return this.#e.set(e,t),t}return this.#e.get(e)}update(e){e.size&&P(()=>{for(let[t,r]of e.entries())this.get(t).set(r)})}updateFromProps(e,t){P(()=>{let r=t?t.map(i=>[i,e[i]]):Object.entries(e);for(let[i,n]of r)this.get(i).set(n)})}};var I;(function(s){s[s.StructuralChanges=1]="StructuralChanges",s[s.ContentUpdates=2]="ContentUpdates",s[s.Removal=3]="Removal"})(I||(I={}));var b;(function(s){s[s.CreateEntities=1]="CreateEntities",s[s.DestroyEntities=2]="DestroyEntities",s[s.SetParent=3]="SetParent",s[s.UpdateOrder=4]="UpdateOrder",s[s.ChangeProperties=5]="ChangeProperties",s[s.ChangeToken=6]="ChangeToken",s[s.SendEvents=7]="SendEvents"})(b||(b={}));var ae=Symbol.for("ShadowEntsGlobalNS"),q="#void",gs="contextLost",ys="configure",ms="changeTrail",bs="destroy",vs="loaded",ws="appliedChangeTrail",Cs="importedModule",Es="destroyed",pe="messageToView",Ss=6e4,xs=6e4,ks=5e3,As=5e3,_t="shadowObjects";function Os(s,e){s.indexOf(e)===-1&&s.push(e)}function Nt(s,e){let t=s.indexOf(e);t!==-1&&s.splice(t,1),s.push(e)}function J(s,e){let t=s.indexOf(e);t!==-1&&s.splice(t,1)}var he=s=>typeof s=="string"?s.trim()||ae:typeof s=="symbol"?s:ae;var xe="#root",ke=class{#e;get uuid(){return this.#e}#t=0;constructor(e){this.#e=e}#s=!0;#i=0;#r=0;hasChanges(){return this.#t>0}get isNew(){return this.#s}get isCreated(){return this.#i>0&&this.#i>this.#r}get isDestroyed(){return this.#r>0&&this.#r>=this.#i}#n=q;#o;#a=0;#h;#u;#l;create(e=q,t,r=0){this.#t++,this.#i++,this.#h=e,this.#u=t??xe,this.#l=r||void 0}destroy(){this.#r++,this.#t++}clear(){this.#t=0,this.#s=!1,this.#h=void 0,this.#u=void 0,this.#l=void 0,this.#c.clear(),this.#d.length=0,this.#f.length=0,this.#g.clear()}changeToken(e){e===this.#n?this.#h=void 0:(this.#h=e,this.#t++)}setParent(e){e===this.#o?this.#u=void 0:(this.#u=e??xe,this.#t++)}changeOrder(e){e===this.#a?this.#l=void 0:(this.#l=e,this.#t++)}#p=new Map;#c=new Map;#d=[];changeProperty(e,t,r){let i=this.#p.get(e);r==null&&t!==i||r!=null&&!r(t,i)?(this.#c.set(e,t),Nt(this.#d,e),this.#t++):(this.#c.delete(e),J(this.#d,e))}removeProperty(e){let t=this.#p.has(e);this.#c.has(e)?(this.#c.delete(e),t||J(this.#d,e)):t&&(Nt(this.#d,e),this.#t++)}#f=[];#g=new Set;createEvent(e,t,r){this.#f.push({type:e,data:t}),r?.forEach(i=>this.#g.add(i)),this.#t++}transferEventsTo(e){this.#f.length>0&&(e.#f.push(...this.#f),this.#f.length=0),this.#g.size>0&&(e.#g=new Set([...e.#g,...this.#g]),this.#g.clear())}buildChangeTrail(e,t){let{isNew:r,isCreated:i,isDestroyed:n}=this;if(!(r&&n))switch(t){case I.StructuralChanges:r?e.push(this.makeCreateEntityChange()):n||(this.#u!==void 0&&!(this.#u===xe&&this.#o===void 0)?e.push(this.makeSetParentChange()):this.#l!==void 0&&this.#l!==this.#a&&e.push(this.makeUpdateOrderChange()),this.#h!==void 0&&this.#h!==this.#n&&e.push(this.makeChangeToken()));break;case I.ContentUpdates:!r&&i&&this.#d.length>0&&e.push(this.makeChangePropertyChange()),this.#f.length>0&&e.push(this.makeEvents());break;case I.Removal:n&&e.push(this.makeDestroyEntityChange());break}}makeEvents(){let e={type:b.SendEvents,uuid:this.#e,events:this.#f.slice(0)};return this.#g.size>0&&(e.transferables=Array.from(this.#g)),e}makeCreateEntityChange(){let e={type:b.CreateEntities,uuid:this.#e,token:this.#h};if(this.#n=this.#h,this.#u!==void 0){let t=this.#u===xe?void 0:this.#u;this.#o=t,t!==void 0&&(e.parentUuid=t)}return this.#c.size>0&&(e.properties=Array.from(this.#c.entries()).filter(([,t])=>t!==void 0),e.properties.forEach(([t,r])=>this.#p.set(t,r))),this.#l!==void 0&&this.#l!==this.#a&&(e.order=this.#a=this.#l),e}makeDestroyEntityChange(){return{type:b.DestroyEntities,uuid:this.#e}}makeSetParentChange(){this.#o=this.#u===xe?void 0:this.#u;let e={type:b.SetParent,uuid:this.#e,parentUuid:this.#o};return this.#l!==void 0&&this.#l!==this.#a&&(e.order=this.#a=this.#l),e}makeUpdateOrderChange(){return this.#a=this.#l??0,{type:b.UpdateOrder,uuid:this.#e,order:this.#a}}makeChangeToken(){return this.#n=this.#h??q,{type:b.ChangeToken,uuid:this.#e,token:this.#n}}makeChangePropertyChange(){let e=this.#d.map(t=>{if(this.#c.has(t)){let r=this.#c.get(t);return this.#p.set(t,r),[t,r]}else return this.#p.delete(t),[t,void 0]});return{type:b.ChangeProperties,uuid:this.#e,properties:e}}};var Ts=s=>{if(!(s===void 0||s.length===0))return s.filter(e=>e.length===1||e[1]!==void 0)},$t=(s,e)=>{if(s===e||e===void 0)return s;if(s===void 0)return Ts(e);for(let[t,r]of e){let i=s.find(([n])=>n===t);i===void 0?s.push([t,r]):i[1]=r}return Ts(s)};var Je=class{#e=new Map;get[Symbol.iterator](){return this.#e.entries.bind(this.#e)}clear(){this.#e.clear()}isEmpty(){return this.#e.size===0}hasComponentState(e){return this.#e.has(e)}getComponentState(e){return this.#e.get(e)}write(e){for(let t of e)if(t.type===b.CreateEntities)this.createEntity(t);else if(this.#e.has(t.uuid))switch(t.type){case b.DestroyEntities:this.destroyEntity(t);break;case b.SetParent:this.setParent(t);break;case b.UpdateOrder:this.updateOrder(t);break;case b.ChangeToken:this.changeToken(t);break;case b.ChangeProperties:this.changeProperties(t);break}}changeProperties({uuid:e,properties:t}){let r=this.getComponentState(e);r.properties=$t(r.properties,t)}changeToken({uuid:e,token:t}){this.getComponentState(e).token=t||q}updateOrder({uuid:e,order:t}){this.getComponentState(e).order=t??0}setParent({uuid:e,parentUuid:t,order:r}){let i=this.getComponentState(e);i.parentUuid=t,i.order=r??0}destroyEntity({uuid:e}){this.#e.delete(e)}createEntity({uuid:e,token:t,parentUuid:r,order:i,properties:n}){this.#e.set(e,{token:t||q,parentUuid:r,order:i??0,properties:$t(void 0,n)})}};var M=class s{static{this.ReRequestParentRoots="re-request-parent-roots"}static getContextsMap(){return globalThis.__shadowEntsContexts==null&&(globalThis.__shadowEntsContexts=new Map),globalThis.__shadowEntsContexts}static get(e){let t=he(e),r=s.getContextsMap();return r.has(t)?r.get(t):new s(t)}#e=new Map;#t=[];#s=new Je;constructor(e=ae){let t=he(e),r=s.getContextsMap();if(r.has(t))return r.get(t);this.ns=t,r.set(t,this)}addComponent(e){let t;this.#e.has(e.uuid)?(t=this.#e.get(e.uuid),t.component=e,t.children=[]):(t={component:e,children:[],changes:new ke(e.uuid),propIsEqual:void 0},this.#e.set(e.uuid,t)),t.changes.create(e.token,e.parent?.uuid,e.order),e.parent?(this.addToChildren(e.parent,e),t.changes.setParent(e.parent.uuid)):this.#n(e,this.#t),this.#o=void 0}hasComponent(e){return this.#e.has(e.uuid)}hasComponents(){return this.#e.size>0}isRootComponent(e){return this.#t.includes(e.uuid)}destroyComponent(e){if(this.hasComponent(e)){let t=this.#e.get(e.uuid);t.children.slice(0).forEach(r=>this.#e.get(r)?.component.removeFromParent()),t.changes.destroy(),this.#o=void 0}}getChildren(e){return this.#e.get(e.uuid)?.children.map(t=>this.#e.get(t).component)??[]}removeFromParent(e,t){if(this.hasComponent(t)){let r=this.#e.get(e),i=this.#e.get(t.uuid),n=i.children.indexOf(e);n!==-1&&(i.children.splice(n,1),r.changes.setParent(void 0)),this.#n(r.component,this.#t),this.#o=void 0}}moveToRoot(e){let t=this.#e.get(e);t&&(t.changes?.setParent(void 0),this.#n(t.component,this.#t)),this.#o=void 0}changeToken(e,t){this.#e.get(e.uuid)?.changes.changeToken(t)}isChildOf(e,t){return this.hasComponent(t)?this.#e.get(t.uuid).children.includes(e.uuid):!1}addToChildren(e,t){let r=this.#e.get(e.uuid);if(r)this.#n(t,r.children),this.#e.get(t.uuid)?.changes.setParent(e.uuid),J(this.#t,t.uuid),this.#o=void 0;else throw new Error(`the view component ${e.uuid} cannot have a child added to it because the component do not exist!`)}removeSubTree(e){let t=this.#e.get(e);t&&(t.children.slice(0).forEach(r=>this.removeSubTree(r)),this.destroyComponent(t.component),this.#i(e))}setProperty(e,t,r,i){let n=this.#e.get(e.uuid);return n!=null?(i!=null?(n.propIsEqual??=new Map,n.propIsEqual.set(t,i)):n.propIsEqual?.has(t)&&n.propIsEqual.delete(t),n.changes.changeProperty(t,r,i)):!1}removeProperty(e,t){this.#e.get(e.uuid)?.changes.removeProperty(t)}changeOrder(e){if(e.parent){let t=this.#e.get(e.parent.uuid);J(t.children,e.uuid),this.#n(e,t.children)}else J(this.#t,e.uuid),this.#n(e,this.#t);this.#e.get(e.uuid)?.changes.changeOrder(e.order),this.#o=void 0}traverseLevelOrderBFS(){return this.#a().map(e=>e.component)}dispatchShadowObjectsEvent(e,t,r,i){this.#e.get(e.uuid)?.changes.createEvent(t,r,i)}broadcastEvent(e,t=void 0){for(let r of this.traverseLevelOrderBFS())r.dispatchEvent(e,t,!1)}dispatchMessage(e,t,r=void 0,i=!1){this.#e.get(e)?.component.dispatchEvent(t,r,i)}dispatchReRequestParentRoots(){for(let e of this.#t)this.dispatchMessage(e,s.ReRequestParentRoots)}buildChangeTrails(e=!0){let t=[];if(!this.hasComponents())return t;let r=this.#r();for(let i of r)i.buildChangeTrail(t,I.StructuralChanges);for(let i of r)i.buildChangeTrail(t,I.ContentUpdates);for(let i of r)i.buildChangeTrail(t,I.Removal),(i.isDestroyed||i.isNew&&!i.isCreated)&&this.#i(i.uuid),e&&i.clear();return this.#s.write(t),t}reCreateChanges(){if(!this.#s.isEmpty()){this.buildChangeTrails(!1);for(let[e,t]of this.#s){let r=this.#e.get(e);if(r){let i=new ke(e);if(i.create(t.token,t.parentUuid,t.order),t.properties)for(let[n,o]of t.properties)i.changeProperty(n,o,r.propIsEqual?.get(n));r.changes.transferEventsTo(i),r.changes.clear(),r.changes=i}}this.#s.clear(),this.broadcastEvent(gs)}}clear(){if(this.#o=void 0,this.#s.clear(),this.#t.slice(0).forEach(e=>this.removeSubTree(e)),this.#t.length!==0)throw new Error("component-context panic: #rootComponents is not empty!");if(this.#e.size!==0)throw new Error("component-context panic: #components is not empty!")}#i(e){this.#e.has(e)&&(this.#e.delete(e),J(this.#t,e),this.#o=void 0)}#r(){return this.#a().filter(e=>e.changes.hasChanges()).map(e=>e.changes)}#n(e,t){if(t.length===0){t.push(e.uuid);return}if(t.includes(e.uuid))return;let r=t.length,i=new Array(r);if(i[0]=this.#e.get(t[0]).component,e.order<i[0].order){t.unshift(e.uuid);return}if(r===1){t.push(e.uuid);return}let n=r-1;if(i[n]=this.#e.get(t[n]).component,e.order>=i[n].order){t.push(e.uuid);return}if(r===2){t.splice(1,0,e.uuid);return}for(let o=n-1;o>=1;o--)if(i[o]=this.#e.get(t[o]).component,e.order>=i[o].order){t.splice(o+1,0,e.uuid);return}}#o;#a(){if(this.#o)return this.#o;let e=new Map,t=(r,i)=>{let n=this.#e.get(r);if(n!=null){e.has(i)?e.get(i).push(n):e.set(i,[n]);for(let o of n.children)t(o,i+1)}};return this.#t.forEach(r=>t(r,0)),this.#o=Array.from(e.entries()).sort((r,i)=>r[0]-i[0]).map(([,r])=>r).flat(),this.#o}};function Ae(s,e,t,r,i,n){function o(D){if(D!==void 0&&typeof D!="function")throw new TypeError("Function expected");return D}for(var l=r.kind,a=l==="getter"?"get":l==="setter"?"set":"value",f=!e&&s?r.static?s:s.prototype:null,w=e||(f?Object.getOwnPropertyDescriptor(f,r.name):{}),v,u=!1,h=t.length-1;h>=0;h--){var c={};for(var d in r)c[d]=d==="access"?{}:r[d];for(var d in r.access)c.access[d]=r.access[d];c.addInitializer=function(D){if(u)throw new TypeError("Cannot add initializers after decoration has completed");n.push(o(D||null))};var g=(0,t[h])(l==="accessor"?{get:w.get,set:w.set}:w[a],c);if(l==="accessor"){if(g===void 0)continue;if(g===null||typeof g!="object")throw new TypeError("Object expected");(v=o(g.get))&&(w.get=v),(v=o(g.set))&&(w.set=v),(v=o(g.init))&&i.unshift(v)}else(v=o(g))&&(l==="field"?i.unshift(v):w[a]=v)}f&&Object.defineProperty(f,r.name,w),u=!0}function Z(s,e,t){for(var r=arguments.length>2,i=0;i<e.length;i++)t=r?e[i].call(s,t):e[i].call(s);return r?t:void 0}function Oe(s){return function(e,t){let r=s?.name||t.name,i=!!(s?.readAsValue??!1);return{get(){let n=_(this,r);if(n)return i?n.value:n.get()},set(n){_(this,r)?.set(n)},init(n){let o=p(n,s);return fs(this,r,o),G.findOrCreate(this).attachSignalByName(r,o),o.value}}}}var j="ConsoleLogger",L=`${j}Storage`,yr=!!(globalThis.location?.host?.startsWith("localhost")??!1),Pe="localStorage"in globalThis,Ze=Symbol.for(j),Ps=!1,Rs=s=>{if(typeof s=="boolean")return s;switch(s.toLowerCase()){case"true":case"yes":case"on":return!0;default:return!1}},It=s=>[Pe?j:void 0,...Array.isArray(s)?s:[s]].filter(Boolean).join(".");function Wt(s,e=void 0,t){let r=It(s),i=Pe?localStorage.getItem(r):globalThis[L]?.[r];return i!=null?e(i):t}function Te(s,e){Pe?localStorage.setItem(It(s),e):(globalThis[L]==null&&(globalThis[L]={},console.debug(`${j}: Initialize`,{[L]:globalThis[L]})),globalThis[L][It(s)]=e)}var T=class s{static{this.sharedConfig={enable:yr,debug:!1,info:!0,warn:!0,"styles.debug":"color: #111; background: #999; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em","styles.info":"color: #020; background: #8a8; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em","styles.warn":"color: #fa0; background: #a98; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em","styles.error":"color: #ff0; background: #a00; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em"}}static get isEnabled(){return s.sharedConfig.enable}static get isDebug(){return s.sharedConfig.enable&&s.sharedConfig.debug}static{this.sharedStyles={get debug(){return s.sharedConfig["styles.debug"]},set debug(e){s.sharedConfig["styles.debug"]=e},get info(){return s.sharedConfig["styles.info"]},set info(e){s.sharedConfig["styles.info"]=e},get warn(){return s.sharedConfig["styles.warn"]},set warn(e){s.sharedConfig["styles.warn"]=e},get error(){return s.sharedConfig["styles.error"]},set error(e){s.sharedConfig["styles.error"]=e}}}static loadConfig(){Pe?(["enable","debug","info","warn"].forEach(e=>{this.sharedConfig[e]=Wt(e,Rs,this.sharedConfig[e])}),["debug","info","warn","error"].forEach(e=>{this.sharedStyles[e]=Wt(["styles",e],void 0,this.sharedStyles[e])}),s.isDebug&&console.debug(`${j}: Load config from localStorage`,s.sharedConfig),globalThis[j]?.[Ze]||(globalThis[j]??={[Ze]:!0,get enable(){return s.sharedConfig.enable},set enable(e){s.sharedConfig.enable=e,Te("enable",e?"true":"false")},get debug(){return s.sharedConfig.debug},set debug(e){s.sharedConfig.debug=e,Te("debug",e?"true":"false")},get info(){return s.sharedConfig.info},set info(e){s.sharedConfig.info=e,Te("info",e?"true":"false")},get warn(){return s.sharedConfig.warn},set warn(e){s.sharedConfig.warn=e,Te("warn",e?"true":"false")}})):globalThis[L]?.[Ze]||(globalThis[L]={[Ze]:!0,...s.sharedConfig,...globalThis[L]},s.sharedConfig=globalThis[L],s.isDebug&&console.debug(`${j}: Load config from ${L}`,globalThis[L]))}constructor(e){this.enable=!0,this.namespace=(e||"").trim()||j,Ps||(s.loadConfig(),Ps=!0);let t=[this.namespace,"enable"];this.enable=Wt(t,Rs,this.enable),Te(t,Pe?this.enable?"true":"false":this.enable)}get isEnabled(){return this.enable&&s.sharedConfig.enable}get isDebug(){return this.isEnabled&&s.sharedConfig.debug}get isInfo(){return this.isEnabled&&s.sharedConfig.info}get isWarn(){return this.isEnabled&&s.sharedConfig.warn}debug(...e){this.#e("debug",s.sharedStyles.debug,e)}info(...e){this.#e("info",s.sharedStyles.info,e)}warn(...e){this.#e("warn",s.sharedStyles.warn,e)}error(...e){this.#e("error",s.sharedStyles.error,e)}#e(e,t,r){console[e](`%c${this.namespace}`,t,...r)}};var F=(()=>{var s;let e,t=[],r=[],i,n=[],o=[];return class H{static{let a=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;e=[Oe()],i=[Oe()],Ae(this,null,e,{kind:"accessor",name:"viewReady",static:!1,private:!1,access:{has:f=>"viewReady"in f,get:f=>f.viewReady,set:(f,w)=>{f.viewReady=w}},metadata:a},t,r),Ae(this,null,i,{kind:"accessor",name:"proxyReady",static:!1,private:!1,access:{has:f=>"proxyReady"in f,get:f=>f.proxyReady,set:(f,w)=>{f.proxyReady=w}},metadata:a},n,o),a&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})}static{this.AfterSync="afterSync"}static{this.ContextLost="contextLost"}static{this.ContextCreated="contextCreated"}static get(a){if(a!=null)return globalThis.__shadowEnvs?.get(a)}#e;#t;#s;#i;#r;#n;#o;get viewReady(){return this.#o}set viewReady(a){this.#o=a}#a;get proxyReady(){return this.#a}set proxyReady(a){this.#a=a}#h;get isDestroyed(){return this.#h}constructor(){this.#s=!1,this.#i=!1,this.#r=!1,this.logger=new T("ShadowEnv"),this.ns$=p(),this.#o=Z(this,t,!1),this.#a=(Z(this,r),Z(this,n,!1)),this.#h=(Z(this,o),!1),this.ready=async()=>this.isReady?this:le(this,H.ContextCreated),this.#u=()=>{this.#s&&this.#l()},B(this,H.ContextCreated),m(this,H.ContextLost,$.AAA,()=>{K(this,H.ContextCreated)}),C(()=>{if(this.viewReady&&this.proxyReady)return this.view.reCreateChanges(),y(this,H.ContextCreated,this),this.#i&&(this.#i=!1,this.#l()),()=>{y(this,H.ContextLost,this)}},[_(this,"viewReady"),_(this,"proxyReady")])}get view(){return this.#e}set view(a){a!==this.#e&&(this.#e&&this.#e.ns&&globalThis.__shadowEnvs&&globalThis.__shadowEnvs.delete(this.#e.ns),this.#e=a??void 0,this.#e&&this.#e.ns&&(globalThis.__shadowEnvs??=new Map,globalThis.__shadowEnvs.has(this.#e.ns)&&globalThis.__shadowEnvs.get(this.#e.ns)!==this&&this.logger.isWarn&&this.logger.warn("overwrite a namespace already in use",this.#e.ns,globalThis.__shadowEnvs.get(this.#e.ns)),globalThis.__shadowEnvs.set(this.#e.ns,this)),this.viewReady=!!a)}get envProxy(){return this.#t}set envProxy(a){if(a!==this.#t){let f=this.#t;this.#t=a??void 0,this.#t&&(this.#t.onMessageToView=this.#p.bind(this)),f&&f.destroy(),this.proxyReady=!1,a?.start().then(()=>{this.proxyReady=!0}).catch(w=>{this.logger.error("failed to start envProxy",w),this.proxyReady=!1})}}get isReady(){return!!(this.#e&&this.#t&&this.proxyReady&&!this.isDestroyed)}sync(){if(!this.isReady){this.#i=!0;return}this.#s||(this.#s=!0,queueMicrotask(this.#u))}syncWait(){return this.#r=!0,this.sync(),this.#n?this.#n:(this.#n=le(this,H.AfterSync).then(a=>(this.#n=void 0,a)),this.#n)}destroy(){let a=this.#e?.ns;this.envProxy?.destroy(),this.envProxy=void 0,this.view=void 0,a&&globalThis.__shadowEnvs.has(a)&&globalThis.__shadowEnvs.get(a)===this&&globalThis.__shadowEnvs.delete(a),Se(this),S(this),this.#h=!0,Object.freeze(this)}#u;async#l(){if(this.#s=!1,this.isReady){let a=this.view.buildChangeTrails();if(a.length>0)try{let f=this.#r;this.#r=!1,await this.envProxy.applyChangeTrail(a,f)}catch(f){this.logger.error("failed to apply change trail",f)}finally{y(this,H.AfterSync,a)}}}#p(a){this.logger.isDebug&&this.logger.debug("onMessageToView",a.type,a.data),this.view?.dispatchMessage(a.uuid,a.type,a.data,a.traverseChildren)}}})();var A=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],mr=()=>{let s=Math.random()*4294967295|0,e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,r=Math.random()*4294967295|0;return(A[s&255]+A[s>>8&255]+A[s>>16&255]+A[s>>24&255]+"-"+A[e&255]+A[e>>8&255]+"-"+A[e>>16&15|64]+A[e>>24&255]+"-"+A[t&63|128]+A[t>>8&255]+"-"+A[t>>16&255]+A[t>>24&255]+A[r&255]+A[r>>8&255]+A[r>>16&255]+A[r>>24&255]).toLowerCase()},Ms=()=>globalThis?.crypto?.randomUUID?.()??mr();var Re=class extends Error{constructor(e){super(e),this.name="ViewComponentError"}},Xe=class s{#e;#t;#s;#i;#r=0;get uuid(){return this.#e}get token(){return this.#t}set token(e){e??=q,e!==this.#t&&(this.#t=e,this.#s?.changeToken(this,e))}get parent(){return this.#i}set parent(e){if(e){if(e.#s!==this.#s)throw new Re("cannot set parent from different context");e.addChild(this)}else this.removeFromParent()}get context(){return this.#s}set context(e){this.#s!=e&&(this.#s&&this.destroy(),this.#s=e,e&&e.addComponent(this))}get order(){return this.#r}set order(e){let t=this.#r;this.#r=e??0,t!==this.#r&&this.#s.changeOrder(this)}constructor(e,t){x(this),t instanceof s&&(t={parent:t}),this.#e=t?.uuid??Ms(),this.#t=e,this.#r=t?.order??0,this.#i=t?.parent;let r=t?.context??M.get();if(this.#i&&this.#i.#s!==r)throw new Re("cannot set parent from different context");this.context=r}isChildOf(e){return this.#i===e}removeFromParent(){this.#i?(this.#s?.removeFromParent(this.uuid,this.#i),this.#i=void 0):this.#s?.moveToRoot(this.uuid)}addChild(e){if(e.#s!==this.#s)throw new Re("cannot add a child from another context");e.isChildOf(this)||(e.removeFromParent(),e.#i=this,this.#s.addToChildren(this,e))}setProperty(e,t,r){this.#s.setProperty(this,e,t,r)}removeProperty(e){this.#s.removeProperty(this,e)}dispatchShadowObjectsEvent(e,t,r){this.#s.dispatchShadowObjectsEvent(this,e,t,r)}dispatchEvent(e,t,r){if(y(this,e,t),r)for(let i of this.#s.getChildren(this))i.dispatchEvent(e,t,r)}destroy(){this.removeFromParent(),this.#s?.destroyComponent(this),this.#s=void 0}};var et="shaeRequestEntParent",tt="shaeReRequestEntParent",Ls="shae-worker",st="shae-ent",js="shae-prop",X="token",z="forward-custom-events";var rt="local",Ds="no-autostart",it="no-structured-clone",N="auto-sync";var nt="name",ot="value",at="type",ht="no-trim";var Me=new Set(["on","true","yes","local","1"]);var _s=s=>he(s.getAttribute("ns")),je=(s,e)=>{if(s.hasAttribute(e)){let t=s.getAttribute(e)?.trim()?.toLowerCase()||"1";return Me.has(t)}return!1};var Ns=(s,e)=>{e.set(_s(s))},Ft=new Set,zt=!1,br=s=>{Ft.add(s),zt||(zt=!0,queueMicrotask(()=>{zt=!1;for(let e of Ft)F.get(e)?.sync();Ft.clear()}))},ee=class extends HTMLElement{static{this.observedAttributes=["ns"]}get ns(){return this.ns$.value}set ns(e){typeof e=="symbol"?this.ns$.set(e):this.ns$.set(he(e))}constructor(){super(),this.isShaeElement=!0,this.ns$=p(ae),this.ns$.onChange(e=>{typeof e=="string"&&e.length>0?this.getAttribute("ns")!==e&&this.setAttribute("ns",e):this.removeAttribute("ns")}),Ns(this,this.ns$)}attributeChangedCallback(e){e==="ns"&&Ns(this,this.ns$)}syncShadowObjects(){br(this.ns)}};var lt=class extends ee{static{this.observedAttributes=[...ee.observedAttributes,X,z]}get componentContext(){return this.componentContext$.value}get viewComponent(){return this.viewComponent$.value}get uuid(){return this.viewComponent?.uuid}get token(){return this.token$.value}set token(e){this.token$.set(e)}#e;constructor(){super(),this.isShaeEntElement=!0,this.componentContext$=p(),this.viewComponent$=p(),this.token$=p(),this.forwardCustomEvents$=p(!1),this.#n=!0,this.#c=()=>{let e=this.findShadowRootHost();e!=null&&this.dispatchEvent(new CustomEvent(tt,{bubbles:!0,composed:!0,detail:{requester:this,shadowRootHost:e}}))},this.#d=e=>{let t=e.detail?.requester;if(t===this||!t?.isShaeEntElement||t.ns!==this.ns)return;e.detail?.shadowRootHost&&this.#u()},this.#f=e=>{let t=e.detail?.requester;t!==this&&t?.isShaeEntElement&&t.ns===this.ns&&(e.stopPropagation(),t.#p(this))},this.ns$.onChange(e=>{this.componentContext$.set(M.get(e)),this.isConnected&&this.#u()}),this.#g(),this.token$.onChange(e=>{e==null?this.removeAttribute(X):this.getAttribute(X)!==e&&this.setAttribute(X,e)}),this.#y(),this.forwardCustomEvents$.onChange(e=>{if(!e)this.removeAttribute(z);else if(e===!0)this.hasAttribute(z)||this.setAttribute(z,"");else{let t=Array.from(e).join(",");this.getAttribute(z)!==t&&this.setAttribute(z,t)}}),C(()=>{let e=this.viewComponent$.get();if(e){let t=m(e,M.ReRequestParentRoots,()=>this.#h()),r=e.context?.ns;return()=>{t(),e.destroy(),r&&r!==this.ns?F.get(r)?.sync():this.syncShadowObjects()}}}),C(()=>{let e=this.viewComponent$.get();if(!e)return;let t=Object.hasOwn(e,"dispatchEvent")?Object.getPrototypeOf(e).dispatchEvent:e.dispatchEvent,r=this.forwardCustomEvents$.get();if(!r)return;let i=r instanceof Set?r:void 0,n=(o,l,a)=>{t.call(e,o,l,a),o!==M.ReRequestParentRoots&&(i&&!i.has(o)||this.dispatchEvent(new CustomEvent(o,{bubbles:!0,composed:!0,detail:l})))};return Object.defineProperty(e,"dispatchEvent",{value:n,writable:!0,configurable:!0}),()=>{Object.hasOwn(e,"dispatchEvent")&&e.dispatchEvent===n&&delete e.dispatchEvent}}),this.token$.onChange(e=>{let t=this.viewComponent$.value;t&&(t.token=e,this.syncShadowObjects())}),this.style.display="contents"}#t;#s(){this.#t?.();let e=this.componentContext$.onChange(t=>{let r=this.token$.value,i=this.viewComponent$.value;i?i.context=t:t&&(i=new Xe(r,{context:t}),this.viewComponent$.set(i)),this.syncShadowObjects()});this.#t=()=>{e()}}#i(){this.#t?.(),this.#t=void 0}#r;#n;findShadowRootHost(){if(this.#n){this.#n=!1;let e=this;for(;e;){if(e.parentElement==null){let t=e.parentNode;t&&(this.#r=t.host);break}e=e.parentElement}}return this.#r}getParentNodeForObserver(){let e=this.parentNode;return e||(e.host??e)}connectedCallback(){this.#n=!0,this.addEventListener("slotchange",this.#c,{capture:!1,passive:!1}),this.addEventListener(et,this.#f,{capture:!1,passive:!1}),this.#s(),qe(()=>this.#g()),qe(()=>this.#y()),this.componentContext==null&&this.componentContext$.set(M.get(this.ns)),this.#u(),this.componentContext?.dispatchReRequestParentRoots(),this.#o(),this.syncShadowObjects()}#o(){this.#a();let e=this.getParentNodeForObserver();e&&(this.#e=new MutationObserver((t,r)=>{for(let{target:i,removedNodes:n}of t)if(i===e){for(let o of n)if(o===this){this.#a(),this.onParentChanged(this.getParentNodeForObserver(),e);break}}}),this.#e.observe(e,{childList:!0,subtree:!1,attributes:!1}))}onParentChanged(e,t){this.#p(void 0),this.#u()}#a(){this.#e?.disconnect(),this.#e=void 0}attributeChangedCallback(e){super.attributeChangedCallback(e),e===X?this.#g():e===z&&this.#y()}disconnectedCallback(){this.#n=!0,this.#a(),this.removeEventListener("slotchange",this.#c,{capture:!1}),this.removeEventListener(et,this.#f,{capture:!1}),this.#p(void 0),this.componentContext$.set(void 0),this.syncShadowObjects(),this.#i()}#h(){this.isConnected&&(this.#p(void 0),this.#u())}#u(){this.dispatchEvent(new CustomEvent(et,{bubbles:!0,composed:!0,detail:{requester:this}}))}#l;#p(e){if(this.entParentNode!==e)if(this.entParentNode&&this.entParentNode.removeEventListener(tt,this.#d,{capture:!1}),this.entParentNode=e,this.entParentNode&&this.entParentNode.addEventListener(tt,this.#d,{capture:!1,passive:!1}),this.#l?.(),this.#l=void 0,e){let t=C(()=>{let r=this.viewComponent$.get();if(r){let i=e.viewComponent$.get();r.parent=i&&i.context===r.context?i:void 0,r.parent==null&&queueMicrotask(()=>{this.#u()}),this.syncShadowObjects()}});this.#l=()=>t.destroy()}else{let t=this.viewComponent;t.parent&&(t.parent=void 0,this.syncShadowObjects())}}#c;#d;#f;#g(){if(this.hasAttribute(X)){let e=this.getAttribute(X)?.trim()||void 0;this.token$.set(e)}}#y(){if(this.hasAttribute(z)){let e=this.getAttribute(z);!e||e.trim().length===0?this.forwardCustomEvents$.set(!0):this.forwardCustomEvents$.set(new Set(e.split(",").map(t=>t.trim()).filter(t=>t.length>0)))}else this.forwardCustomEvents$.set(!1)}};customElements.define(st,lt);var vr=s=>{let e=s.parentElement;for(;e;){if(e.isShaeEntElement)return e;e=e.parentElement}},wr=new Set(["string","text","number","bigint","float","int","integer","hex","hexadecimal","oct","octal","bin","binary","bool","boolean","[]","text[]","string[]","number[]","float[]","int[]","integer[]","hex[]","hexadecimal[]","oct[]","octal[]","bin[]","binary[]","bool[]","boolean[]","int8array","uint8array","uint8clampedarray","int16array","uint16array","int32array","uint32array","float32array","float64array","bigint64array","biguint64array","json"]),ut=class extends HTMLElement{static{this.observedAttributes=[nt,ot,at,ht]}get name(){return this.name$.value}get value(){return this.valueOut$.value}set value(e){this.valueIn$.set(e)}get shouldTrim(){return this.shouldTrim$.value}get entNode(){return this.entNode$.value}set entNode(e){this.entNode$.set(e)}get viewComponent(){return this.viewComponent$.value}constructor(){super(),this.isShaeEntElement=!0,this.entNode$=p(),this.viewComponent$=p(),this.name$=p(),this.valueIn$=p(),this.valueOut$=p(),this.type$=p(),this.shouldTrim$=p(!0),this.logger=new T("ShaePropElement"),this.#e=()=>{this.entNode$.set(vr(this))},this.#t=()=>{queueMicrotask(()=>{this.isConnected||this.entNode$.set(void 0)})},this.#s=()=>{this.name$.set(this.getAttribute(nt)?.trim()??void 0)},this.#i=()=>{this.valueIn$.set(this.getAttribute(ot))},this.#r=()=>{let e=this.getAttribute(at)?.trim().toLowerCase();e&&!wr.has(e)&&(this.logger.isWarn&&this.logger.warn(`[${this.name}] unknown type "${e}"`,{shaeProp:this}),e=void 0),this.type$.set(e)},this.#n=()=>{this.shouldTrim$.set(!je(this,ht))},this.entNode$.onChange(e=>{if(e){let t=R(e.viewComponent$,this.viewComponent$);return()=>{t.destroy()}}else this.viewComponent$.set(void 0)}),C(()=>{let e=this.viewComponent$.get();if(e){let t=this.name$.get();if(t){let r=this.valueOut$.get();this.logger.isDebug&&this.logger.debug(`[${this.name}] view-component set-property`,t,r,e.uuid,{viewComponent:e,shaeProp:this}),e.setProperty(t,r),this.isConnected&&this.entNode?.syncShadowObjects()}}}),C(()=>{let e=this.type$.get(),t=this.shouldTrim$.get(),r=this.valueIn$.get();if(t&&typeof r=="string"&&(r=r.trim()),r=r||void 0,r!=null&&typeof r=="string"&&e)switch(e){case"string":case"text":break;case"number":r=Number(r);break;case"bigint":r=BigInt(r);break;case"float":r=parseFloat(r);break;case"int":case"integer":r=parseInt(r,10);break;case"hex":case"hexadecimal":r=parseInt(r,16);break;case"oct":case"octal":r=parseInt(r,8);break;case"bin":case"binary":r=parseInt(r,2);break;case"bool":case"boolean":r=Me.has(r.toLowerCase());break;case"[]":case"text[]":case"string[]":r=r.split(/\W+/);break;case"number[]":r=r.split(/\s+/).map(i=>Number(i));break;case"float[]":r=r.split(/\s+/).map(i=>parseFloat(i));break;case"int[]":case"integer[]":r=r.split(/\s+/).map(i=>parseInt(i));break;case"hex[]":case"hexadecimal[]":r=r.split(/\W+/).map(i=>parseInt(i,16));break;case"oct[]":case"octal[]":r=r.split(/\W+/).map(i=>parseInt(i,8));break;case"bin[]":case"binary[]":r=r.split(/\W+/).map(i=>parseInt(i,2));break;case"bool[]":case"boolean[]":r=r.split(/\W+/).map(i=>Me.has(i.toLowerCase()));break;case"int8array":r=new Int8Array(r.split(/\W+/).map(i=>Number(i)));break;case"uint8array":r=new Uint8Array(r.split(/\W+/).map(i=>Number(i)));break;case"uint8clampedarray":r=new Uint8ClampedArray(r.split(/\W+/).map(i=>Number(i)));break;case"int16array":r=new Int16Array(r.split(/\W+/).map(i=>Number(i)));break;case"uint16array":r=new Uint16Array(r.split(/\W+/).map(i=>Number(i)));break;case"int32array":r=new Int32Array(r.split(/\W+/).map(i=>Number(i)));break;case"uint32array":r=new Uint32Array(r.split(/\W+/).map(i=>Number(i)));break;case"float32array":r=new Float32Array(r.split(/\s+/).map(i=>Number(i)));break;case"float64array":r=new Float64Array(r.split(/\s+/).map(i=>Number(i)));break;case"bigint64array":r=new BigInt64Array(r.split(/\W+/).map(i=>BigInt(i)));break;case"biguint64array":r=new BigUint64Array(r.split(/\W+/).map(i=>BigInt(i)));break;case"json":r=JSON.parse(r);break;default:this.logger.isWarn&&this.logger.warn(`[${this.name}] unknown type "${e}"`,{value:r,shaeProp:this})}this.valueOut$.set(r)}),P(()=>{this.#s(),this.#i(),this.#r(),this.#n()}),this.style.display="contents"}connectedCallback(){P(()=>{this.#e(),this.#s(),this.#i(),this.#r(),this.#n()})}attributeChangedCallback(e){switch(e){case nt:this.#s();break;case ot:this.#i();break;case at:this.#r();break;case ht:this.#n();break}}disconnectedCallback(){this.#t()}#e;#t;#s;#i;#r;#n};customElements.whenDefined(st).then(()=>customElements.define(js,ut));var ct,Vt=null,ge=class{static{this.OnFrame=Symbol("onFrame")}#e=0;#t=0;constructor(){if(Vt)return Vt;x(this),Vt=this}start(e){if(e!=null)return At(this)===0&&this.#i(),m(this,ct.OnFrame,e),this.#t++,()=>{this.stop(e)}}stop(e){S(this,ct.OnFrame,e),At(this)===0&&this.#r()}#s=e=>{y(this,ct.OnFrame,e),this.#i()};#i(){this.#e=requestAnimationFrame(this.#s)}#r(){cancelAnimationFrame(this.#e),this.#e=0}};ct=ge;var dt=s=>s??void 0;var ye="value",De=(()=>{let s,e=[],t=[];return class{static{let i=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;s=[Oe({name:ye})],Ae(this,null,s,{kind:"accessor",name:"value",static:!1,private:!1,access:{has:n=>"value"in n,get:n=>n.value,set:(n,o)=>{n.value=o}},metadata:i},e,t),i&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})}static{this.Value=ye}#e;#t;#s;get value(){return this.#s}set value(i){this.#s=i}constructor(i){this.#e=[],this.#s=Z(this,e,void 0),this.value$=Z(this,t),B(this,ye),this.value$=_(this,ye),this.value$.onChange(n=>y(this,ye,n)),i&&this.add(...i)}add(...i){return this.#e.push(...i),this.#r(),this.#i(i)}unshift(...i){return this.#e.unshift(...i),this.#r(),this.#i(i)}remove(...i){this.#i(i)()}clear(){this.#e.length=0,this.#r()}dispose(){this.clear(),this.#t?.destroy(),this.#t=void 0,K(this,ye),S(this),this.value$.destroy(),Se(this)}#i(i){return()=>{for(let n of i){let o=this.#e.indexOf(n);o!==-1&&this.#e.splice(o,1)}this.#r()}}#r(){this.#t?.destroy(),this.#e.length===0?(this.#t=void 0,this.value=void 0):(this.#t=C(()=>{let i;for(let n of this.#e){let o=fe(n);if(o!=null){i=o;break}}this.value=i},this.#e),this.#t.run())}}})();var Ut=Symbol("onCreate"),V=Symbol("onDestroy"),$s=Symbol("onParentChanged"),ft=Symbol("onViewEvent");var Bt=new Map,Gt=!1,Cr=(s,e)=>{Bt.set(s,e),Gt||(Gt=!0,queueMicrotask(()=>{Gt=!1;let t=Array.from(Bt.entries());Bt.clear();for(let[r,i]of t)r.set(i)}))},pt=class{#e;#t;#s=new Qe;#i=new Map;#r=new Map;#n;#o;#a=new Set;#h=[];#u=0;get kernel(){return this.#e}get uuid(){return this.#t}get order(){return this.#u}set order(e){this.#u!==e&&(this.#u=e,this.#n&&this.parent.resortChildren())}get parentUuid(){return this.#n||void 0}set parentUuid(e){this.#n!==e&&(this.removeFromParent(),this.#n=e||void 0,this.#o=e?this.#e.getEntity(e):void 0,this.#o&&this.#o.addChild(this))}get parent(){return!this.#o&&this.#n&&(this.#o=this.#e.getEntity(this.#n)),this.#o}set parent(e){this.parentUuid=e?.uuid}get hasParent(){return!!this.#n}get children(){return this.#h}constructor(e,t){this.#e=e,this.#t=t,E(this,V,$.Min,this)}traverse(e){e(this);for(let t of this.#h)t.traverse(e)}[V](){this.#s.clear(),S(this),this.#l?.();for(let e of this.#r.values())e.cleanup(),e.signal.destroy();this.#r.clear();for(let e of this.#i.values())e.context.set(void 0),e.unsubscribePathValue(),e.unsubscribeFromParent?.(),e.valuePath.dispose(),e.inherited.destroy(),e.provide.destroy(),e.context.destroy();this.#n=void 0,this.#o=void 0,this.#a.clear(),this.#h.length=0}addChild(e){if(this.#h.length===0){this.#a.add(e.uuid),this.#h.push(e);return}if(this.#a.has(e.uuid))throw new Error(`child with uuid: ${e.uuid} already exists! parentUuid: ${this.uuid}`);this.#a.add(e.uuid),this.#h.push(e),this.resortChildren();for(let[,t]of e.#i)e.#f(t)}resortChildren(){this.#h.sort((e,t)=>e.order-t.order)}removeChild(e){this.#a.has(e.uuid)&&(this.#a.delete(e.uuid),this.#h.splice(this.#h.indexOf(e),1))}removeFromParent(){if(this.#o){this.#o.removeChild(this),this.#o=void 0,this.#n=void 0;for(let[,e]of this.#i)e.unsubscribeFromParent&&(e.unsubscribeFromParent(),e.unsubscribeFromParent=void 0)}}#l;get autoDestructionOnParentRemoval(){return!!this.#l}set autoDestructionOnParentRemoval(e){e?!this.#l&&this.parentUuid&&(this.#l=E(this.parent,V,$.Max,()=>{this.kernel.destroyEntity(this.uuid)})):this.#l&&(this.#l(),this.#l=void 0)}reSubscribeToParentContexts(){for(let[,e]of this.#i)this.#f(e)}dispatchMessageToView(e,t,r,i=!1){this.#e.dispatchMessageToView({uuid:this.#t,type:e,data:t,transferables:r,traverseChildren:i})}dispatchViewEvents(e){for(let{type:t,data:r}of e)y(this,ft,t,r)}dispatchViewEvent(e,t){this.dispatchViewEvents([{type:e,data:t}])}#p(e){return this.#s.get(e)}getPropertyReader(e){return this.#p(e).get}getPropertyWriter(e){return this.#p(e).set}setProperties(e){this.clearTruthyPropsCache(),P(()=>{for(let[t,r]of e)this.setProperty(t,r)})}setProperty(e,t){this.getPropertyWriter(e)(t)}getProperty(e){return fe(this.getPropertyReader(e))}propKeys(){return Array.from(this.#s.keys())}propEntries(){return Array.from(this.#s.entries()).map(([e,t])=>[e,t.value])}#c;clearTruthyPropsCache(){this.#c=void 0}truthyProps(){if(this.#c)return this.#c.size?this.#c:void 0;let e=new Set;for(let[t,r]of this.#s.entries())if(typeof t=="string"){let i=r.value;i!=null&&i!==!1&&i!==""&&e.add(t)}return this.#c=e,e.size?e:void 0}hasContext(e){return this.#i.has(e)}useContext(e){return this.#d(e).context.get}useParentContext(e){return this.#d(e).inherited.get}provideContext(e){return this.#d(e).provide}provideGlobalContext(e){if(this.#r.has(e))return this.#r.get(e).signal;let t=this.#e.findOrCreateRootContext(e),r=p(),i=t.add(r);return this.#r.set(e,{cleanup:i,signal:r}),r}#d(e){if(this.#i.has(e))return this.#i.get(e);let t=p(),r=p(),i=p(),n=new De([r,t]),o=m(n,De.Value,a=>{Cr(i,a)}),l={name:e,inherited:t,provide:r,context:i,valuePath:n,unsubscribePathValue:o};return this.#i.set(e,l),this.#f(l),l}#f(e){if(e.unsubscribeFromParent?.(),e.unsubscribeFromParent=void 0,this.parent){let t=this.parent.#d(e.name),r=R(t.context,e.inherited);e.unsubscribeFromParent=r.destroy.bind(r)}else{let t=this.#e.findOrCreateRootContext(e.name),r=R(t.value$,e.inherited);e.unsubscribeFromParent=r.destroy.bind(r)}}};var Ws=s=>{let e=s.split("@").map(t=>t.trim());if(e.length===2&&e[1])return e[0]?{key:`${e[0]}@${e[1]}`,prop:e[1],token:e[0]}:{key:e[1],prop:e[1]}},gt=(s,e)=>{for(let t of e)s.add(t)},Er=(s,e)=>{if(s!=null)for(let t of s.constructors)e.add(t)},_e=class{static get(e){return e??Sr}#e=new Map;#t=new Map;#s=new Map;define(e,t){this.#e.has(e)?Os(this.#e.get(e).constructors,t):this.#e.set(e,{token:e,constructors:[t]})}appendRoute(e,t){let r=Ws(e);r?this.#s.has(r.key)?gt(this.#s.get(r.key).routes,t):this.#s.set(r.key,{routes:new Set(t),token:r.token}):this.#t.has(e)?gt(this.#t.get(e),t):this.#t.set(e,new Set(t))}clearRoute(e){let t=Ws(e);t?this.#s.delete(t.key):this.#t.delete(e)}findTokensByRoute(e,t){let r=new Set([e]),i=this.#t.has(e)?[...this.#t.get(e)]:[];for(;i.length;){let n=i.shift();r.has(n)||(r.add(n),this.#t.has(n)&&i.push(...Array.from(this.#t.get(n)).filter(o=>!r.has(o))))}if(t){for(let o of t)this.#s.has(o)&&gt(r,this.#s.get(o).routes);let n;do{n=r.size;for(let o of new Set(r))for(let l of t){let a=`${o}@${l}`;this.#s.has(a)&&gt(r,this.#s.get(a).routes)}}while(n!==r.size)}return r}findConstructors(e,t){let r=this.findTokensByRoute(e,t),i=new Set;for(let n of r)Er(this.#e.get(n),i);return i.size>0?Array.from(i):void 0}hasToken(e){return this.#e.has(e)}hasRoute(e){return this.#t.has(e)}clear(){this.#e.clear(),this.#t.clear()}},Sr=new _e;var Y;(function(s){s[s.CreateAndDestroy=0]="CreateAndDestroy",s[s.JustCreate=1]="JustCreate",s[s.DestroyOnly=2]="DestroyOnly"})(Y||(Y={}));var Is=s=>s.displayName||s.name,Fs=!1,zs=!1,Vs=!1,Us=!1,Bs=!1,yt=class{#e;#t;#s;#i;#r;#n;constructor(e){this.logger=new T("Kernel"),this.#e=new Map,this.#t=new Set,this.#r=!0,this.#n=new Map,x(this),this.registry=_e.get(e)}getEntity(e){let t=this.#e.get(e)?.entity;if(!t)throw new Error(`entity with uuid "${e}" not found!`);return t}hasEntity(e){return this.#e.has(e)}traverseLevelOrderBFS(e=!1){if(this.#r){let t=new Map,r=(i,n)=>{let o=this.getEntity(i);t.has(n)?t.get(n).push(o):t.set(n,[o]);for(let l of o.children)r(l.uuid,n+1)};this.#t.forEach(i=>{r(i,0)}),this.#s=Array.from(t.entries()).sort((i,n)=>i[0]-n[0]).flatMap(([,i])=>i),this.#i=this.#s.slice().reverse(),this.#r=!1}return e?this.#i:this.#s}getEntityGraph(){return Array.from(this.#t).map(e=>this.getEntityGraphNode(e))}getEntityGraphNode(e){if(!this.#e.has(e))return;let{token:t,entity:r}=this.#e.get(e);return{token:t,entity:r,props:Object.fromEntries(r.propEntries()),children:r.children.map(i=>this.getEntityGraphNode(i.uuid))}}upgradeEntities(){let e=new Map;for(let t of this.traverseLevelOrderBFS(!0))e.set(t.uuid,this.updateShadowObjects(t.uuid,Y.DestroyOnly));for(let t of this.traverseLevelOrderBFS(!1))this.updateShadowObjects(t.uuid,Y.JustCreate,e.get(t.uuid));e.clear()}run(e){this.logger.isDebug&&this.logger.debug("sync",e),P(()=>{for(let t of e.changeTrail)this.parse(t)})}parse(e){switch(e.type){case b.CreateEntities:this.createEntity(e.uuid,e.token,e.parentUuid,e.order,e.properties),this.#r=!0;break;case b.DestroyEntities:this.destroyEntity(e.uuid),this.#r=!0;break;case b.SetParent:this.setParent(e.uuid,e.parentUuid,e.order),this.#r=!0;break;case b.UpdateOrder:this.updateOrder(e.uuid,e.order),this.#r=!0;break;case b.ChangeProperties:this.changeProperties(e.uuid,e.properties);break;case b.ChangeToken:this.changeToken(e.uuid,e.token);break;case b.SendEvents:this.dispatchEventsToEntity(e.uuid,e.events);break}}createEntity(e,t,r,i=0,n,o=!1){let l=new pt(this,e);l.order=i;let a={token:t,entity:l,usedConstructors:new Map};this.#e.set(e,a),r&&(l.parentUuid=r),l.autoDestructionOnParentRemoval=o,l.hasParent||this.#t.add(e),n&&l.setProperties(n),this.createShadowObjects(e)}destroyEntity(e){if(!this.#e.has(e))return;let{entity:t,usedConstructors:r}=this.#e.get(e);t.removeFromParent(),y(t,V,t),r.clear(),this.#e.delete(t.uuid),this.#t.delete(t.uuid)}setParent(e,t,r=0){let i=this.getEntity(e);i.parentUuid===t&&i.order===r||(i.removeFromParent(),i.order=r,i.parentUuid=t,i.hasParent?this.#t.delete(e):this.#t.add(e),i.reSubscribeToParentContexts(),queueMicrotask(()=>{this.logger.isDebug&&this.logger.debug("entity.onParentChanged",{uuid:e,parentUuid:t,order:r,entity:i}),y(i,$s,i)}))}updateOrder(e,t){this.getEntity(e).order=t}dispatchEventsToEntity(e,t){this.getEntity(e)?.dispatchViewEvents(t)}changeProperties(e,t){this.getEntity(e).setProperties(t),this.updateShadowObjects(e)}changeToken(e,t){if(!this.#e.has(e))return;let r=this.#e.get(e);r.token!==t&&(r.token=t,this.updateShadowObjects(e))}dispatchMessageToView(e){queueMicrotask(()=>{y(this,pe,e)})}updateShadowObjects(e,t=Y.CreateAndDestroy,r){let i=this.#e.get(e);r??=new Set(this.registry.findConstructors(i.token,i.entity.truthyProps()));let n=t===Y.CreateAndDestroy||t===Y.DestroyOnly,o=t===Y.CreateAndDestroy||t===Y.JustCreate;if(n){for(let[l,a]of i.usedConstructors)if(!r.has(l)){i.usedConstructors.delete(l);for(let f of a)this.destroyShadowObject(f,i.entity)}}if(o)for(let l of r)i.usedConstructors.has(l)||this.constructShadowObject(l,i);return r}constructShadowObject(e,t){let r=new Set,i=new Set,n=new Map,o=new Map,l=new Map,a=new Map,f=new Map,w=(u,h)=>{!Bs&&h!=null&&typeof h=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "useProperty()" is now passed as {compare} argument. Please update your code accordingly.'),Bs=!0);let c=typeof h=="function"?{compare:h}:h,d=f.get(u);if(d===void 0){d=p(void 0,c).get,f.set(u,d);let g=R(t.entity.getPropertyReader(u),d);i.add(g.destroy.bind(g))}return d},v=x(new e({entity:t.entity,provideContext(u,h,c){!Fs&&c!=null&&typeof c=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "provideContext()" is now passed as {compare} argument. Please update your code accordingly.'),Fs=!0);let d=typeof c=="function"?{compare:c}:c,g=l.get(u);if(g==null){let D=oe(h),wt=D?void 0:dt(h);if(g=p(wt,d?.compare?{compare:d.compare}:void 0),D){let be=R(h,g);i.add(be.destroy.bind(be))}let me=R(g,t.entity.provideContext(u));i.add(me.destroy.bind(me)),l.set(u,g)}return g!=null&&(d?.clearOnDestroy??!0)&&i.add(()=>{g.set(void 0)}),g},provideGlobalContext(u,h,c){!zs&&c!=null&&typeof c=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "provideGlobalContext()" is now passed as {compare} argument. Please update your code accordingly.'),zs=!0);let d=typeof c=="function"?{compare:c}:c,g=a.get(u);if(g==null){let D=oe(h),wt=D?void 0:dt(h);if(g=p(wt,d?.compare?{compare:d.compare}:void 0),D){let be=R(h,g);i.add(be.destroy.bind(be))}let me=R(g,t.entity.provideGlobalContext(u));i.add(me.destroy.bind(me)),a.set(u,g)}return g!=null&&(d?.clearOnDestroy??!0)&&i.add(()=>{g.set(void 0)}),g},useContext(u,h){!Vs&&h!=null&&typeof h=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "useContext()" is now passed as {compare} argument. Please update your code accordingly.'),Vs=!0);let c=typeof h=="function"?{compare:h}:h,d=n.get(u);if(d===void 0){d=p(void 0,c).get,n.set(u,d);let g=R(t.entity.useContext(u),d);i.add(g.destroy.bind(g))}return d},useParentContext(u,h){!Us&&h!=null&&typeof h=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "useParentContext()" is now passed as {compare} argument. Please update your code accordingly.'),Us=!0);let c=typeof h=="function"?{compare:h}:h,d=o.get(u);if(d===void 0){d=p(void 0,c).get,o.set(u,d);let g=R(t.entity.useParentContext(u),d);i.add(g.destroy.bind(g))}return d},dispatchMessageToView(u,h,c,d=!1){t.entity.dispatchMessageToView(u,h,c,d)},useProperty:w,useProperties(u){let h={};for(let c in u)Object.hasOwn(u,c)&&(h[c]=w(u[c]));return h},createResource(u,h){let c=p(),d=C(()=>{let g=dt(u());return c.set(g),g!==void 0&&h?()=>{h(g),c.set(void 0)}:()=>{c.set(void 0)}});return i.add(()=>{d.destroy(),c.set(void 0),O(c)}),c},createEffect(...u){let h=C(...u);return i.add(h.destroy),h},createSignal(...u){let h=p(...u);return i.add(()=>{O(h)}),h},createMemo(...u){let h=He(...u);return i.add(()=>{O(h)}),h},on(...u){let[h]=u;if(typeof h=="string"||typeof h=="symbol"||Array.isArray(h)){let d=m(t.entity,...u);return i.add(d),d}let c=m(...u);return i.add(c),Object.assign(()=>{i.delete(c),c()},c)},once(...u){let[h]=u;if(typeof h=="string"||typeof h=="symbol"||Array.isArray(h)){let d=E(t.entity,...u);return i.add(d),d}let c=E(...u);return i.add(c),Object.assign(()=>{i.delete(c),c()},c)},emit(...u){let[h]=u;typeof h=="string"||typeof h=="symbol"||Array.isArray(h)?y(t.entity,...u):y(...u)},onViewEvent(u){let h=m(t.entity,ft,(c,d)=>{u(c,d)});i.add(h)},onDestroy(u){r.add(u)}}));return this.logger.isInfo&&this.logger.info("create shadow-object",Is(e),{shadowObject:v,entity:t.entity}),E(t.entity,V,$.Low,()=>{this.logger.isInfo&&this.logger.info("destroy shadow-object",Is(e),{shadowObject:v,entity:t.entity});for(let h of r)h();for(let h of i)h();for(let h of n.values())O(h);for(let h of o.values())O(h);for(let h of f.values())O(h);for(let h of l.values())O(h);for(let h of a.values())O(h);r.clear(),i.clear(),n.clear(),o.clear(),f.clear(),l.clear(),a.clear();let u=t.usedConstructors.get(e);u&&(u.delete(v),u.size===0&&t.usedConstructors.delete(e))}),t.usedConstructors.has(e)?t.usedConstructors.get(e).add(v):t.usedConstructors.set(e,new Set([v])),this.attachShadowObject(v,t.entity),v}createShadowObjects(e){let t=this.#e.get(e);this.registry.findConstructors(t.token,t.entity.truthyProps())?.forEach(r=>{this.constructShadowObject(r,t)})}findShadowObjects(e){if(!this.#e.has(e))return[];let{usedConstructors:t}=this.#e.get(e);return Array.from(new Set(Array.from(t.values()).flatMap(r=>Array.from(r))))}attachShadowObject(e,t){m(t,e),typeof e[Ut]=="function"&&e[Ut](t)}destroyShadowObject(e,t){typeof e[V]=="function"&&e[V](t),y(e,V,t),S(t,e)}findOrCreateRootContext(e){let t=this.#n.get(e);return t||(t=new De,this.#n.set(e,t)),t}destroy(){for(let e of this.#n.values())e.dispose();this.#n.clear();for(let e of this.traverseLevelOrderBFS().reverse())this.destroyEntity(e.uuid)}};async function qt(s,e,t,r=!0){if(t.has(e)){console.warn("importModule: skipping already imported module",e);return}else t.add(e);e.extends&&await Promise.all(e.extends.map(n=>qt(s,n,t,!1)));let{registry:i}=s;if(e.define)for(let[n,o]of Object.entries(e.define))i.define(n,o);if(e.routes)for(let[n,o]of Object.entries(e.routes))i.appendRoute(n,o);await(e.initialize?.({define:(n,o)=>i.define(n,o),kernel:s,registry:i})??Promise.resolve()),r&&s.upgradeEntities()}var mt=s=>(typeof s=="string"&&(s=new URL(s,globalThis.location.href)),s.toString());function Gs(s){return s.map(e=>{if(e.transferables&&e.transferables.length>0){let{transferables:t,...r}=e;return structuredClone(r,{transfer:t})}else return structuredClone(e)})}var bt=class{#e;get registry(){return this.kernel.registry}constructor(e){this.#e=new Set,this.isLocalEnv=!0,this.disableStructuredClone=!1,this.kernel=new yt(e),m(this.kernel,pe,t=>{if(this.onMessageToView!=null){let{type:r,uuid:i,traverseChildren:n}=t,o=structuredClone(t.data,{transfer:t.transferables});this.onMessageToView({type:r,uuid:i,data:o,traverseChildren:n})}})}start(){return Promise.resolve()}applyChangeTrail(e,t){let r={changeTrail:this.disableStructuredClone?e:Gs(e)},i;try{this.kernel.run(r),i=Promise.resolve()}catch(n){i=Promise.reject(n)}return i}async importScript(e){let t=await import(mt(e));t[_t]&&await this.importModule(t[_t])}async importModule(e){return qt(this.kernel,e,this.#e)}destroy(){this.kernel.destroy(),this.registry.clear(),this.#e.clear()}};function Ht(s){let e=new Blob([s],{type:"text/javascript"}),t=URL.createObjectURL(e),r=new Worker(t);return URL.revokeObjectURL(t),r}function Yt(){return Ht(`var Xr=Object.defineProperty;var le=Object.getOwnPropertySymbols;var We=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable;var Zr=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),Je=t=>{throw TypeError(t)};var we=(t,e,r)=>e in t?Xr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Ce=(t,e)=>{for(var r in e||(e={}))We.call(e,r)&&we(t,r,e[r]);if(le)for(var r of le(e))qe.call(e,r)&&we(t,r,e[r]);return t};var Ke=(t,e)=>{var r={};for(var s in t)We.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(t!=null&&le)for(var s of le(t))e.indexOf(s)<0&&qe.call(t,s)&&(r[s]=t[s]);return r};var g=(t,e,r)=>we(t,typeof e!="symbol"?e+"":e,r),Ee=(t,e,r)=>e.has(t)||Je("Cannot "+r);var i=(t,e,r)=>(Ee(t,e,"read from private field"),r?r.call(t):e.get(t)),p=(t,e,r)=>e.has(t)?Je("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),c=(t,e,r,s)=>(Ee(t,e,"write to private field"),s?s.call(t,r):e.set(t,r),r),C=(t,e,r)=>(Ee(t,e,"access private method"),r);var Ye=(t,e,r,s)=>({set _(n){c(t,e,n,r)},get _(){return i(t,e,s)}});var Se=function(t,e){this[0]=t,this[1]=e},Xe=(t,e,r)=>{var s=(a,d,y,m)=>{try{var w=r[a](d),h=(d=w.value)instanceof Se,l=w.done;Promise.resolve(h?d[0]:d).then(u=>h?s(a==="return"?a:"next",d[1]?{done:u.done,value:u.value}:u,y,m):y({value:u,done:l})).catch(u=>s("throw",u,y,m))}catch(u){m(u)}},n=a=>o[a]=d=>new Promise((y,m)=>s(a,d,y,m)),o={};return r=r.apply(t,e),o[Zr("asyncIterator")]=()=>o,n("next"),n("throw"),n("return"),o};var Ze;(function(t){t[t.StructuralChanges=1]="StructuralChanges",t[t.ContentUpdates=2]="ContentUpdates",t[t.Removal=3]="Removal"})(Ze||(Ze={}));var et;(function(t){t[t.CreateEntities=1]="CreateEntities",t[t.DestroyEntities=2]="DestroyEntities",t[t.SetParent=3]="SetParent",t[t.UpdateOrder=4]="UpdateOrder",t[t.ChangeProperties=5]="ChangeProperties",t[t.ChangeToken=6]="ChangeToken",t[t.SendEvents=7]="SendEvents"})(et||(et={}));var Hr="configure",Qr="changeTrail",_r="destroy",ts="loaded",He="appliedChangeTrail",ke="importedModule",es="destroyed",xe="messageToView",Ae="shadowObjects",N="ConsoleLogger",R=\`\${N}Storage\`,br,vr,mr,rs=!!((mr=(vr=(br=globalThis.location)==null?void 0:br.host)==null?void 0:vr.startsWith("localhost"))!=null&&mr),Ht="localStorage"in globalThis,de=Symbol.for(N),Qe=!1,_e=t=>{if(typeof t=="boolean")return t;switch(t.toLowerCase()){case"true":case"yes":case"on":return!0;default:return!1}},Le=t=>[Ht?N:void 0,...Array.isArray(t)?t:[t]].filter(Boolean).join(".");function Pe(t,e=void 0,r){var o;let s=Le(t),n=Ht?localStorage.getItem(s):(o=globalThis[R])==null?void 0:o[s];return n!=null?e(n):r}function Bt(t,e){Ht?localStorage.setItem(Le(t),e):(globalThis[R]==null&&(globalThis[R]={},console.debug(\`\${N}: Initialize\`,{[R]:globalThis[R]})),globalThis[R][Le(t)]=e)}var Ct,qt,b,ss=(b=class{constructor(e){p(this,Ct);this.enable=!0,this.namespace=(e||"").trim()||N,Qe||(b.loadConfig(),Qe=!0);let r=[this.namespace,"enable"];this.enable=Pe(r,_e,this.enable),Bt(r,Ht?this.enable?"true":"false":this.enable)}static get isEnabled(){return b.sharedConfig.enable}static get isDebug(){return b.sharedConfig.enable&&b.sharedConfig.debug}static loadConfig(){var e,r,s;Ht?(["enable","debug","info","warn"].forEach(n=>{this.sharedConfig[n]=Pe(n,_e,this.sharedConfig[n])}),["debug","info","warn","error"].forEach(n=>{this.sharedStyles[n]=Pe(["styles",n],void 0,this.sharedStyles[n])}),b.isDebug&&console.debug(\`\${N}: Load config from localStorage\`,b.sharedConfig),(e=globalThis[N])!=null&&e[de]||((r=globalThis[N])!=null||(globalThis[N]={[de]:!0,get enable(){return b.sharedConfig.enable},set enable(n){b.sharedConfig.enable=n,Bt("enable",n?"true":"false")},get debug(){return b.sharedConfig.debug},set debug(n){b.sharedConfig.debug=n,Bt("debug",n?"true":"false")},get info(){return b.sharedConfig.info},set info(n){b.sharedConfig.info=n,Bt("info",n?"true":"false")},get warn(){return b.sharedConfig.warn},set warn(n){b.sharedConfig.warn=n,Bt("warn",n?"true":"false")}}))):(s=globalThis[R])!=null&&s[de]||(globalThis[R]=Ce(Ce({[de]:!0},b.sharedConfig),globalThis[R]),b.sharedConfig=globalThis[R],b.isDebug&&console.debug(\`\${N}: Load config from \${R}\`,globalThis[R]))}get isEnabled(){return this.enable&&b.sharedConfig.enable}get isDebug(){return this.isEnabled&&b.sharedConfig.debug}get isInfo(){return this.isEnabled&&b.sharedConfig.info}get isWarn(){return this.isEnabled&&b.sharedConfig.warn}debug(...e){C(this,Ct,qt).call(this,"debug",b.sharedStyles.debug,e)}info(...e){C(this,Ct,qt).call(this,"info",b.sharedStyles.info,e)}warn(...e){C(this,Ct,qt).call(this,"warn",b.sharedStyles.warn,e)}error(...e){C(this,Ct,qt).call(this,"error",b.sharedStyles.error,e)}},Ct=new WeakSet,qt=function(e,r,s){console[e](\`%c\${this.namespace}\`,r,...s)},b.sharedConfig={enable:rs,debug:!1,info:!0,warn:!0,"styles.debug":"color: #111; background: #999; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em","styles.info":"color: #020; background: #8a8; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em","styles.warn":"color: #fa0; background: #a98; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em","styles.error":"color: #ff0; background: #a00; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em"},b.sharedStyles={get debug(){return b.sharedConfig["styles.debug"]},set debug(e){b.sharedConfig["styles.debug"]=e},get info(){return b.sharedConfig["styles.info"]},set info(e){b.sharedConfig["styles.info"]=e},get warn(){return b.sharedConfig["styles.warn"]},set warn(e){b.sharedConfig["styles.warn"]=e},get error(){return b.sharedConfig["styles.error"]},set error(e){b.sharedConfig["styles.error"]=e}},b),Mt="*",jr=1,Ie=2,Ue=4,mt=Symbol.for("eventize"),is="[eventize]",ye=t=>t===Mt,Mr=t=>{switch(typeof t){case"string":case"symbol":return!0;default:return!1}},Tr=typeof console<"u",ns=Tr?console[console.warn?"warn":"log"].bind(console,is):()=>{},as=(t,e,r)=>(Object.defineProperty(t,e,{value:r,configurable:!0}),t),os=0,Dr=class{constructor(){g(this,"events",new Map);g(this,"eventNames",new Set)}static publish(t){t.sort((e,r)=>e.order-r.order).forEach(e=>e.emit())}add(t){Array.isArray(t)?t.forEach(e=>this.eventNames.add(e)):this.eventNames.add(t)}remove(t){Array.isArray(t)?t.forEach(e=>this.eventNames.delete(e)):this.eventNames.delete(t),this.clear(t)}clear(t){Array.isArray(t)?t.forEach(e=>this.events.delete(e)):this.events.delete(t)}retain(t,e){this.eventNames.has(t)&&this.events.set(t,{args:e,order:os++})}isKnown(t){return this.eventNames.has(t)}emit(t,e,r=[]){if(ye(t))this.eventNames.forEach(s=>this.emit(s,e,r));else if(this.events.has(t)){let{order:s,args:n}=this.events.get(t);r.push({order:s,emit:()=>e.apply(t,n)})}return r}},Re=(t,e,r,s)=>{if(typeof e=="function"){let n=e.apply(t,r);n!=null&&(s==null||s(n))}},hs=(t,e,r,s)=>Re(e,e.emit,[t].concat(r),s),ls=t=>{switch(typeof t){case"function":return jr;case"string":case"symbol":return Ie;case"object":return Ue}},ds=0,us=()=>++ds,xr=class{constructor(t,e,r,s=null){g(this,"id");g(this,"eventName");g(this,"isCatchEmAll");g(this,"priority");g(this,"listener");g(this,"listenerObject");g(this,"listenerType");g(this,"callAfterApply");g(this,"isRemoved");g(this,"refCount");this.id=us(),this.eventName=t,this.isCatchEmAll=ye(t),this.listener=r,this.listenerObject=s,this.priority=e,this.listenerType=ls(r),this.callAfterApply=void 0,this.isRemoved=!1,this.refCount=1}isEqual(t,e=null){if(t===this)return!0;let r=typeof t;return r==="number"&&t===this.id?!0:e===null&&(r==="string"||r==="symbol")?t===Mt||t===this.eventName:this.listener===t&&this.listenerObject===e}apply(t,e,r){if(this.isRemoved)return;let{listener:s,listenerObject:n}=this;switch(this.listenerType){case jr:Re(n,s,e,r),this.callAfterApply&&this.callAfterApply();break;case Ie:Re(n,n[s],e,r),this.callAfterApply&&this.callAfterApply();break;case Ue:{let o=s[t];if(this.isCatchEmAll||this.eventName===t){if(typeof o=="function"){let a=o.apply(s,e);a!=null&&(r==null||r(a))}else hs(t,s,e,r);this.callAfterApply&&this.callAfterApply()}break}}}},cs=(t,e)=>t.priority!==e.priority?e.priority-t.priority:t.id-e.id,tr=t=>t==null?void 0:t.slice(0),er=(t,e)=>{let r=t.indexOf(e);r>-1&&t.splice(r,1)},fs=t=>t===Ue||t===Ie,ze=(t,e,r)=>{let s=t.findIndex(n=>n.isEqual(e,r));s>-1&&(t[s].isRemoved=!0,t.splice(s,1))},ue=(t,e,r)=>{let s=[];for(let n of t)(e==null&&n.listenerObject===r||n.eventName===e&&n.listener===r)&&s.push(n);for(let n of s)ze(t,n,void 0)},Oe=t=>{t&&(t.forEach(e=>{e.isRemoved=!0}),t.length=0)},ps=(t,e)=>t.listenerType===e.listenerType?t.priority===e.priority&&t.eventName===e.eventName&&t.listenerObject===e.listenerObject&&t.listener===e.listener:!1,gs=(t,e)=>{if(fs(t.listenerType))return e.find(r=>ps(t,r))},ys=(t,e)=>{let r=gs(t,e);return r?(r.refCount+=1,r):(e.push(t),e.sort(cs),t)},bs=class{constructor(){g(this,"namedListeners");g(this,"catchEmAllListeners");g(this,"getListenersForEventName",t=>{let e=this.namedListeners.get(t);return e||(e=[],this.namedListeners.set(t,e)),e});this.namedListeners=new Map,this.catchEmAllListeners=[]}add(t){return ys(t,t.isCatchEmAll?this.catchEmAllListeners:this.getListenersForEventName(t.eventName))}remove(t,e,r=!1){e==null&&Array.isArray(t)?t.forEach(s=>this.remove(s,null,r)):t==null||e==null&&ye(t)?this.removeAllListeners():e==null&&Mr(t)?Oe(this.namedListeners.get(t)):t instanceof xr?t.isRemoved||(t.refCount-=1,t.refCount<1&&(t.isRemoved=!0,this.namedListeners.forEach(s=>er(s,t)),er(this.catchEmAllListeners,t))):r?ye(t)&&typeof t=="object"?ue(this.catchEmAllListeners,Mt,t):this.namedListeners.forEach(s=>ue(s,t,e)):(this.namedListeners.forEach(s=>{ze(s,t,e),typeof t=="object"&&ue(s,void 0,t)}),ze(this.catchEmAllListeners,t,e),typeof t=="object"&&ue(this.catchEmAllListeners,void 0,t))}removeAllListeners(){this.namedListeners.forEach(t=>Oe(t)),this.namedListeners.clear(),Oe(this.catchEmAllListeners)}forEach(t,e){let r=tr(this.catchEmAllListeners),s=tr(this.namedListeners.get(t));if(t===Mt||!s||s.length===0)r.forEach(e);else if(r.length===0)s.forEach(e);else{let n=s.length,o=r.length,a=0,d=0;for(;a<n||d<o;){if(a<n){let y=s[a];if(d>=o||y.priority>=r[d].priority){e(y),++a;continue}}d<o&&(e(r[d]),++d)}}}getSubscriptionCount(){let t=this.catchEmAllListeners.length;for(let e of this.namedListeners.values())t+=e.length;return t}},It=t=>!!(t&&t[mt]);function Qt(t){if(It(t))return t;let e=new bs,r=new Dr;return as(t,mt,{keeper:r,store:e}),t}var _t={Max:Number.POSITIVE_INFINITY,AAA:1e9,BB:1e6,C:1e3,Default:0,Low:-1e4,Min:Number.NEGATIVE_INFINITY},vs=(t,e,r,s,n,o,a)=>{let d=t.add(new xr(r,s,n,o));return e.emit(r,d,a),d},ms=(t,e,r,s)=>{let n=r.length,o=typeof r[0],a,d,y,m;if(n>=2&&n<=3&&o==="number"?(a=Mt,[d,y,m]=r):n>=3&&n<=4&&typeof r[1]=="number"?[a,d,y,m]=r:(d=_t.Default,o==="string"||o==="symbol"||Array.isArray(r[0])?[a,y,m]=r:(a=Mt,[y,m]=r)),!y&&Tr)throw ns("called with insufficient arguments!",r),"subscribeTo() called with insufficient arguments!";let w=h=>l=>vs(t,e,l,h,y,m,s);return Array.isArray(a)?a.map(h=>Array.isArray(h)?w(h[1])(h[0]):w(d)(h)):w(d)(a)},Lr=(t,e,r)=>{let s=[],n=ms(t,e,r,s);return Dr.publish(s),n},rr=t=>e=>{e.callAfterApply=()=>{t==null||t()}},Rr=(t,e)=>Object.assign(()=>$(t,e),Array.isArray(e)?{listeners:e}:{listener:e}),zr=(t,e,r,s)=>{let{store:n,keeper:o}=t[mt];Array.isArray(e)?e.forEach(a=>{n.forEach(a,d=>d.apply(a,r,s)),o.retain(a,r)}):e!==Mt&&(n.forEach(e,a=>{a.apply(e,r,s)}),o.retain(e,r))},V=(t,...e)=>{let r=Qt(t),{store:s,keeper:n}=r[mt];return Rr(r,Lr(s,n,e))},k=(t,...e)=>{let r=Qt(t),{store:s,keeper:n}=r[mt],o=Lr(s,n,e),a=Rr(r,o),d=!1,y=()=>{d||(a(),d=!0)};return Array.isArray(o)?o.forEach(rr(y)):rr(y)(o),y},ws=(t,e)=>new Promise(r=>{k(t,e,r)}),$=(t,e,r)=>{if(!It(t))throw new Error("object is not eventized");let{store:s,keeper:n}=t[mt],o=typeof e,a=r!=null&&(o==="string"||o==="symbol");s.remove(e,r,a),Array.isArray(e)?n.remove(e.filter(d=>typeof d=="string")):Mr(e)&&n.remove(e)},E=(t,e,...r)=>{if(!It(t))throw new Error("object is not eventized");zr(t,e,r)},Cs=(t,e,...r)=>{if(!It(t))throw new Error("object is not eventized");let s=[];return zr(t,e,r,n=>{s.push(n)}),s=s.map(n=>Array.isArray(n)?Promise.all(n):Promise.resolve(n)),s.length>0?Promise.all(s):Promise.resolve()},Ge=(t,e)=>{let r=Qt(t),{keeper:s}=r[mt];s.add(e)},be=(t,e)=>{if(!It(t))throw new Error("object is not eventized");let{keeper:r}=t[mt];r.clear(e)},ht=(()=>{let t=(e={})=>Qt(e);return t.inject=(e={})=>(e=Qt(e),Object.assign(e,{on:(...r)=>V(e,...r),once:(...r)=>k(e,...r),onceAsync:r=>ws(e,r),off:(r,s)=>$(e,r,s),emit:(r,...s)=>E(e,r,...s),emitAsync:(r,...s)=>Cs(e,r,...s),retain:r=>Ge(e,r),retainClear:r=>be(e,r)}),e),t.is=It,t})(),tt=Symbol.for("signal"),Tt=Symbol.for("effect"),sr=Symbol.for("destroySignal"),ir=Symbol.for("createEffect"),Es=Symbol.for("destroyEffect"),Wt="value",nr="mute",ar="unmute",Xt="destroy",Zt=Symbol.for("recall"),ve=ht(),Vt=ht(),wt=ht(),Fr=ht(),De,Jt=(De=class{constructor(){g(this,"delayedEffects",[])}batch(t,e){let r=this.delayedEffects.length;for(let s=0;s<r;s++){let[n,o]=this.delayedEffects[s];if(!(n>e))if(n===e){o.add(t);return}else{this.delayedEffects.splice(s,0,[e,new Set([t])]);return}}this.delayedEffects.push([e,new Set([t])])}flush(){this.run(),this.delayedEffects.length=0}run(){let t=new Set,e=[V(wt,(s,n)=>{n===Zt&&t.add(s)}),V(Fr,s=>{t.add(s)})],r=this.delayedEffects.flatMap(([,s])=>Array.from(s));for(let s of r)t.has(s)||E(wt,s,s,Zt);e.forEach(s=>{s()})}},g(De,"current"),De),Ss=()=>Jt.current;function te(t){let e=Jt.current;e?e=void 0:e=Jt.current=new Jt;try{t()}finally{e&&(Jt.current=void 0,e.run())}}var ks=0;function Nr(){return ks>0}var wr,As=(wr=Tt,class{constructor(t){g(this,wr);g(this,"run",()=>{var t;return(t=this[Tt])==null?void 0:t.run()});g(this,"destroy",()=>{var t;(t=this[Tt])==null||t.destroy(),this[Tt]=void 0});this[Tt]=t,k(t,Ir.Destroy,()=>{this[Tt]=void 0})}}),lt=new Map,K,Et,G,it,Y,St,kt,B,At,ot,he=(ot=class{constructor(e){p(this,K,new Set);p(this,Et,new Set);p(this,G,new Map);p(this,it,new WeakMap);p(this,Y,new Map);p(this,St,new Set);p(this,kt,new Set);p(this,B);p(this,At);if(e!=null&&e instanceof ot)return e;if(e!=null||(e=this),lt.has(e))return lt.get(e);c(this,At,e),lt.set(e,this),ht(this)}static get(e){if(e!=null)return e instanceof ot?e:lt.get(e)}static findOrCreate(e){if(e==null)throw new Error("Cannot create a group with a null object");return new ot(e)}static destroy(e){console.warn("SignalGroup.destroy(obj) is deprecated. Use SignalGroup.delete(obj) instead."),ot.delete(e)}static delete(e){var r;(r=lt.get(e))==null||r.clear()}static clear(){for(let e of lt.values())e.clear();lt.clear()}attachGroup(e){if(e===this)throw new Error("Cannot attach a group to itself");return i(this,K).add(e),i(e,B)&&i(e,B)!==this&&i(i(e,B),K).delete(e),c(e,B,this),e}detachGroup(e){return e!==this&&i(this,K).has(e)&&(i(this,K).delete(e),c(e,B,void 0)),e}attachSignal(e){let r=P(e);if(r!=null&&r.destroyed)throw new Error("Cannot attach a destroyed signal to a group");return r&&i(this,Et).add(r),e}attachSignalByName(e,r){if(r){this.attachSignal(r);let s=P(r);i(this,G).set(e,s),i(this,Y).has(e)?i(this,Y).get(e).push(s):i(this,Y).set(e,[s]),i(this,it).has(s)?i(this,it).get(s).add(e):i(this,it).set(s,new Set([e]))}else i(this,G).delete(e);return r}hasSignal(e){var r;return i(this,G).has(e)||!!((r=i(this,B))!=null&&r.hasSignal(e))}signal(e){var r,s,n;return(n=(r=i(this,G).get(e))==null?void 0:r.object)!=null?n:(s=i(this,B))==null?void 0:s.signal(e)}detachSignal(e){let r=P(e);if(r&&(i(this,Et).delete(r),i(this,it).has(r))){let s=i(this,it).get(r);for(let n of s)if(i(this,Y).has(n)){let o=i(this,Y).get(n);o.splice(o.indexOf(r),1),o.length===0?(i(this,G).delete(n),i(this,Y).delete(n)):i(this,G).get(n)===r&&i(this,G).set(n,o.at(-1))}s.clear(),i(this,it).delete(r)}return e}attachEffect(e){return i(this,St).add(e),e}runEffects(){for(let e of i(this,St))e.run();for(let e of i(this,K))e.runEffects()}attachLink(e){if(e!=null&&e.isDestroyed)throw new Error("Cannot attach a destroyed link to a group");return e&&i(this,kt).add(e),e}detachLink(e){return e&&i(this,kt).delete(e),e}destroy(){console.warn("SignalGroup#destroy is deprecated. Use SignalGroup#clear instead."),this.clear()}clear(){var e;E(this,Xt,this),$(this);for(let r of i(this,K))r.clear();for(let r of i(this,St))r.destroy();for(let r of i(this,Et))U(r);for(let r of i(this,kt))r.destroy();i(this,K).clear(),i(this,Et).clear(),i(this,G).clear(),i(this,Y).clear(),i(this,St).clear(),i(this,kt).clear(),(e=i(this,B))==null||e.detachGroup(this),i(this,At)&&(lt.delete(i(this,At)),c(this,At,void 0))}},K=new WeakMap,Et=new WeakMap,G=new WeakMap,it=new WeakMap,Y=new WeakMap,St=new WeakMap,kt=new WeakMap,B=new WeakMap,At=new WeakMap,ot),ie,ne,Cr,Vr=(Cr=class{constructor(t="id",e=1){p(this,ie);p(this,ne);c(this,ie,t),c(this,ne,e)}make(){return Symbol(\`\${i(this,ie)}\${Ye(this,ne)._++}\`)}},ie=new WeakMap,ne=new WeakMap,Cr),Fe=[],$r=()=>Fe.at(-1),Ps=(t,e)=>{Fe.push(t);try{return e()}finally{Fe.pop()}},Os=t=>t!=null&&typeof t.then=="function",j,ut,X,Pt,ct,ft,Ot,xt,Ir=(j=class{constructor(e,r){g(this,"id");g(this,"callback");p(this,ut);p(this,X,new Set);p(this,Pt,new Set);p(this,ct,new Map);p(this,ft,new Set);g(this,"parentEffect");g(this,"childEffects",[]);g(this,"curChildEffectSlot",0);g(this,"autorun",!0);g(this,"shouldRun",!0);g(this,"priority");p(this,Ot);p(this,xt,!1);g(this,"run",()=>{if(i(this,xt)||!this.shouldRun)return;let e=Ss();e?e.batch(this.id,this.priority):(this.runCleanupCallback(),this.destroyChildEffects(),this.curChildEffectSlot=0,this.shouldRun=!1,E(Fr,this.id,this.id),this.hasStaticDeps()?c(this,ut,this.callback()):(c(this,Pt,new Set(i(this,X))),c(this,ut,Ps(this,this.callback)),this.cleanupLostSignals(),i(this,ft).clear()))});g(this,"destroy",()=>{i(this,xt)||(E(this,j.Destroy,this),$(this),E(wt,Es,this),this.runCleanupCallback(),this.destroyChildEffects(),$(ve,this),$(wt,this),$(Vt,this),c(this,xt,!0),i(this,X).clear(),i(this,Pt).clear(),i(this,ct).clear(),i(this,ft).clear(),--j.count)});var n,o;ht(this),this.callback=e;let s;(r==null?void 0:r.attach)!=null&&(s=he.findOrCreate(r.attach),s.attachEffect(this)),this.autorun=(n=r==null?void 0:r.autorun)!=null?n:!0,c(this,Ot,r!=null&&r.dependencies?r.dependencies.map(a=>{switch(typeof a){case"string":case"symbol":return s.signal(a);default:return a}}):void 0),this.id=j.idGen.make(),this.priority=(o=r==null?void 0:r.priority)!=null?o:0,V(wt,this.id,Zt,this),++j.count}hasStaticDeps(){return i(this,Ot)!=null&&i(this,Ot).length>0}saveSignalsFromDeps(){for(let e of i(this,Ot))this.whenSignalIsRead(P(e).id)}static createEffect(e,r,s){let n=Array.isArray(r)?r:void 0,o=n?s!=null?s:{dependencies:n}:r;o&&n&&(o.dependencies=n);let a,d=$r();return d!=null?(a=d.getCurrentChildEffect(),a==null&&(a=new j(e,o),d.attachChildEffect(a),E(wt,ir,a)),d.curChildEffectSlot++):(a=new j(e,o),E(wt,ir,a)),a.hasStaticDeps()?a.saveSignalsFromDeps():a.autorun&&a.run(),new As(a)}getCurrentChildEffect(){return this.childEffects[this.curChildEffectSlot]}attachChildEffect(e){this.childEffects.push(e),this.parentEffect=this}[Zt](){this.shouldRun=!0,this.autorun&&this.run()}whenSignalIsRead(e){i(this,Pt).delete(e),i(this,X).has(e)||(i(this,X).add(e),i(this,ct).set(e,[V(ve,e,this.priority,Zt,this),k(Vt,e,sr,this)]))}[sr](e){!i(this,ft).has(e)&&i(this,X).has(e)&&(i(this,ft).add(e),this.unsubscribeSignal(e),i(this,ft).size===i(this,X).size&&this.destroy())}cleanupLostSignals(){for(let e of i(this,Pt))this.unsubscribeSignal(e),i(this,X).delete(e)}destroyChildEffects(){for(let e of this.childEffects)e.destroy();this.childEffects.length=0}unsubscribeSignal(e){i(this,ct).has(e)&&(i(this,ct).get(e).forEach(r=>{r()}),i(this,ct).delete(e))}runCleanupCallback(){if(i(this,ut)!=null){let e=i(this,ut);c(this,ut,void 0),Os(e)?Promise.resolve(e).then(r=>{typeof r=="function"&&r()}):e()}}},ut=new WeakMap,X=new WeakMap,Pt=new WeakMap,ct=new WeakMap,ft=new WeakMap,Ot=new WeakMap,xt=new WeakMap,g(j,"idGen",new Vr("ef")),g(j,"Destroy","destroy"),g(j,"count",0),j),$t=(...t)=>Ir.createEffect(...t),ee=new WeakMap,js=t=>{let e=ee.get(t);return e||(e={},ee.set(t,e)),e},re=(t,e)=>{var r,s;return(s=(r=ee.get(t))==null?void 0:r.signals)==null?void 0:s.get(e)},Ms=(t,e,r)=>{var n;let s=js(t);(n=s.signals)!=null||(s.signals=new Map),s.signals.set(e,r)};function Ts(...t){for(let e of t)if(ee.has(e)){let r=ee.get(e);if(r.signals){for(let s of r.signals.values())U(s);r.signals.clear(),r.signals=void 0}}}function Ds(t){let e=P(se(t)?t:re(...t));e!=null&&!e.muted&&!e.destroyed&&Ne(e.id,e.value,{touch:!0})}function Be(t){var e,r;return se(t)?(e=P(t))==null?void 0:e.value:(r=P(re(...t)))==null?void 0:r.value}var Er,xs=(Er=tt,class{constructor(t){g(this,Er);this[tt]=t}get get(){return this[tt].reader}get set(){return this[tt].writer}get value(){return Be(this.get)}set value(t){this.set(t)}onChange(t){let{destroy:e}=$t(()=>t(this.value),[this.get]);return e}get muted(){return this[tt].muted}set muted(t){this[tt].muted=t}touch(){Ds(this)}destroy(){U(this)}}),Ls=new Vr("si");function or(t){var e;Nr()||((e=$r())==null||e.whenSignalIsRead(t))}function Ne(t,e,r){Nr()||E(ve,t,e,r)}var se=t=>t!=null&&t[tt]!=null,Rs=t=>{let e=r=>{var s;return r?$t(()=>(t.destroyed||or(t.id),r(t.value)),[e]):t.destroyed||((s=t.beforeRead)==null||s.call(t),or(t.id)),t.value};return Object.defineProperty(e,tt,{value:t}),e},jt,W,Ur=(jt=class{constructor(e,r){g(this,"id");g(this,"lazy");g(this,"compare");g(this,"beforeRead");g(this,"muted",!1);g(this,"destroyed",!1);p(this,W);g(this,"valueFn");g(this,"reader");g(this,"writer",(e,r)=>{var o,a,d,y;let s=(o=r==null?void 0:r.lazy)!=null?o:!1,n=(d=(a=r==null?void 0:r.compare)!=null?a:this.compare)!=null?d:((m,w)=>m===w);if((s!==this.lazy||s&&e!==this.valueFn||!s&&!n(e,i(this,W)))&&(s?(c(this,W,void 0),this.valueFn=e,this.lazy=!0):(c(this,W,e),this.valueFn=void 0,this.lazy=!1),!this.muted&&!this.destroyed)){Ne(this.id,i(this,W));return}(y=r==null?void 0:r.touch)!=null&&y&&Ne(this.id,i(this,W),{touch:!0})});g(this,"object");this.id=Ls.make(),++jt.instanceCount,this.lazy=e,this.lazy?(this.value=void 0,this.valueFn=r):(this.value=r,this.valueFn=void 0),this.reader=Rs(this),this.object=new xs(this)}get[tt](){return this}get value(){return this.lazy&&(c(this,W,this.valueFn()),this.valueFn=void 0,this.lazy=!1),i(this,W)}set value(e){c(this,W,e)}},W=new WeakMap,g(jt,"instanceCount",0),jt),P=t=>t==null?void 0:t[tt];function A(t=void 0,e){var s;let r;if(se(t))r=P(t);else{let n=(s=e==null?void 0:e.lazy)!=null?s:!1;r=new Ur(n,t),r.beforeRead=e==null?void 0:e.beforeRead,r.compare=e==null?void 0:e.compare}return(e==null?void 0:e.attach)!=null&&he.findOrCreate(e.attach).attachSignal(r),r.object}var U=(...t)=>{for(let e of t){let r=P(e);r!=null&&!r.destroyed&&(r.destroyed=!0,r.beforeRead=void 0,--Ur.instanceCount,E(Vt,r.id,r.id))}};function zs(t,e){var a,d;let r=A(),s=(e==null?void 0:e.attach)!=null?he.findOrCreate(e.attach):void 0;s!=null&&(e!=null&&e.name?s.attachSignalByName(e.name,r):s.attachSignal(r));let n=$t(()=>{te(()=>{r.set(t())})},{autorun:!((a=e==null?void 0:e.lazy)!=null&&a),priority:(d=e==null?void 0:e.priority)!=null?d:_t.C,attach:s}),o=P(r);return o.beforeRead=n.run,k(Vt,o.id,n.destroy),r.get}var O,Lt,Sr,Gr=(Sr=class{constructor(t){p(this,O,!1);p(this,Lt);g(this,"source");g(this,"lastValue");g(this,"isDestroyed",!1);ht(this),this.source=P(t),c(this,Lt,V(ve,this.source.id,(e,r)=>{!i(this,O)&&!this.isDestroyed&&((r==null?void 0:r.touch)===!0?this.touch():this.write())})),k(Vt,this.source.id,()=>this.destroy())}attach(t){let e=he.findOrCreate(t);return e.attachLink(this),k(this,Xt,()=>{e.detachLink(this)}),e}nextValue(){return new Promise((t,e)=>{let r=[],s=()=>r.forEach(n=>{n()});r.push(k(this,Wt,n=>{s(),t(n)}),k(this,Xt,()=>{s(),e()}))})}asyncValues(t){return Xe(this,null,function*(){Ge(this,Wt);try{let e=0;for(;!this.isDestroyed;)try{let r=yield new Se(this.nextValue());if(t&&t(r,e++))break;yield r}catch(r){break}}finally{be(this,Wt)}})}destroy(){var t;this.isDestroyed||((t=i(this,Lt))==null||t.call(this),c(this,Lt,void 0),E(this,Xt,this),be(this,Wt),$(this),this.lastValue=void 0,this.isDestroyed=!0,Object.freeze(this))}get isMuted(){return i(this,O)}mute(){return!this.isDestroyed&&!i(this,O)&&(c(this,O,!0),E(this,nr,this)),this}unmute(){return!this.isDestroyed&&i(this,O)&&(c(this,O,!1),E(this,ar,this)),this}toggleMute(){return this.isDestroyed||(c(this,O,!i(this,O)),E(this,i(this,O)?nr:ar,this)),i(this,O)}updateValue(t){if(!i(this,O)&&!this.isDestroyed){let{value:e}=this.source;t(e),E(this,Wt,e),this.lastValue=e}}},O=new WeakMap,Lt=new WeakMap,Sr),Fs=class extends Gr{constructor(e,r){super(e);g(this,"target");this.target=P(r),k(Vt,this.target.id,()=>this.destroy()),this.touch()}touch(){return this.updateValue(e=>{this.target.writer(e,{touch:!0})}),this}write(){this.updateValue(e=>{this.target.writer(e)})}},Ns=class extends Gr{constructor(e,r){super(e);g(this,"target");this.target=r,this.touch()}touch(){return this.updateValue(e=>{this.target(e)}),this}write(){this.updateValue(e=>{this.target(e)})}},ce=new Map;function rt(t,e,r){var m;let s=P(t),n;if(ce.has(s)){n=ce.get(s);let w=(m=P(e))!=null?m:e;if(n.has(w))return n.get(w)}else n=new Map,ce.set(s,n);let o=P(e),a=o!=null?new Fs(t,o):new Ns(t,e),d=r==null?void 0:r.attach;d&&a.attach(d);let y=o!=null?o:e;return n.set(y,a),k(a,Xt,()=>{n.delete(y),n.size===0&&ce.delete(s)}),a}var D,Rt,Vs=(Rt=class{constructor(){p(this,D,new Map)}static fromProps(e,r){let s=new Rt,n=r?r.map(o=>[o,e[o]]):Object.entries(e);for(let[o,a]of n)i(s,D).set(o,A(a));return s}keys(){return i(this,D).keys()}signals(){return i(this,D).values()}entries(){return i(this,D).entries()}clear(){for(let e of i(this,D).values())e.destroy();i(this,D).clear()}has(e){return i(this,D).has(e)}get(e){if(!i(this,D).has(e)){let r=A();return i(this,D).set(e,r),r}return i(this,D).get(e)}update(e){e.size&&te(()=>{for(let[r,s]of e.entries())this.get(r).set(s)})}updateFromProps(e,r){te(()=>{let s=r?r.map(n=>[n,e[n]]):Object.entries(e);for(let[n,o]of s)this.get(n).set(o)})}},D=new WeakMap,Rt),je=t=>t!=null?t:void 0;function $s(t,e,r,s,n,o){function a(I){if(I!==void 0&&typeof I!="function")throw new TypeError("Function expected");return I}for(var d=s.kind,y=d==="getter"?"get":d==="setter"?"set":"value",m=!e&&t?s.static?t:t.prototype:null,w=e||(m?Object.getOwnPropertyDescriptor(m,s.name):{}),h,l=!1,u=r.length-1;u>=0;u--){var f={};for(var v in s)f[v]=v==="access"?{}:s[v];for(var v in s.access)f.access[v]=s.access[v];f.addInitializer=function(I){if(l)throw new TypeError("Cannot add initializers after decoration has completed");o.push(a(I||null))};var T=(0,r[u])(d==="accessor"?{get:w.get,set:w.set}:w[y],f);if(d==="accessor"){if(T===void 0)continue;if(T===null||typeof T!="object")throw new TypeError("Object expected");(h=a(T.get))&&(w.get=h),(h=a(T.set))&&(w.set=h),(h=a(T.init))&&n.unshift(h)}else(h=a(T))&&(d==="field"?n.unshift(h):w[y]=h)}m&&Object.defineProperty(m,s.name,w),l=!0}function hr(t,e,r){for(var s=arguments.length>2,n=0;n<e.length;n++)r=s?e[n].call(t,r):e[n].call(t);return s?r:void 0}function Is(t){return function(e,r){var o;let s=(t==null?void 0:t.name)||r.name,n=!!((o=t==null?void 0:t.readAsValue)!=null&&o);return{get(){let a=re(this,s);if(a)return n?a.value:a.get()},set(a){var d;(d=re(this,s))==null||d.set(a)},init(a){let d=A(a,t);return Ms(this,s,d),he.findOrCreate(this).attachSignalByName(s,d),d.value}}}}var Dt="value",Ve=(()=>{var s,n,o,a,pe,Kt,m;let t,e=[],r=[];return m=class{constructor(h){p(this,a);p(this,s);p(this,n);p(this,o);c(this,s,[]),c(this,o,hr(this,e,void 0)),this.value$=hr(this,r),Ge(this,Dt),this.value$=re(this,Dt),this.value$.onChange(l=>E(this,Dt,l)),h&&this.add(...h)}get value(){return i(this,o)}set value(h){c(this,o,h)}add(...h){return i(this,s).push(...h),C(this,a,Kt).call(this),C(this,a,pe).call(this,h)}unshift(...h){return i(this,s).unshift(...h),C(this,a,Kt).call(this),C(this,a,pe).call(this,h)}remove(...h){C(this,a,pe).call(this,h)()}clear(){i(this,s).length=0,C(this,a,Kt).call(this)}dispose(){var h;this.clear(),(h=i(this,n))==null||h.destroy(),c(this,n,void 0),be(this,Dt),$(this),this.value$.destroy(),Ts(this)}},s=new WeakMap,n=new WeakMap,o=new WeakMap,a=new WeakSet,pe=function(h){return()=>{for(let l of h){let u=i(this,s).indexOf(l);u!==-1&&i(this,s).splice(u,1)}C(this,a,Kt).call(this)}},Kt=function(){var h;(h=i(this,n))==null||h.destroy(),i(this,s).length===0?(c(this,n,void 0),this.value=void 0):(c(this,n,$t(()=>{let l;for(let u of i(this,s)){let f=Be(u);if(f!=null){l=f;break}}this.value=l},i(this,s))),i(this,n).run())},(()=>{let h=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;t=[Is({name:Dt})],$s(m,null,t,{kind:"accessor",name:"value",static:!1,private:!1,access:{has:l=>"value"in l,get:l=>l.value,set:(l,u)=>{l.value=u}},metadata:h},e,r),h&&Object.defineProperty(m,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:h})})(),m.Value=Dt,m})(),lr=Symbol("onCreate"),dt=Symbol("onDestroy"),Us=Symbol("onParentChanged"),Br=Symbol("onViewEvent"),Me=new Map,Te=!1,Gs=(t,e)=>{Me.set(t,e),Te||(Te=!0,queueMicrotask(()=>{Te=!1;let r=Array.from(Me.entries());Me.clear();for(let[s,n]of r)s.set(n)}))},Z,zt,pt,q,gt,z,x,nt,F,Ft,H,M,$e,yt,Yt,ge,kr,Bs=(kr=class{constructor(t,e){p(this,M);p(this,Z);p(this,zt);p(this,pt,new Vs);p(this,q,new Map);p(this,gt,new Map);p(this,z);p(this,x);p(this,nt,new Set);p(this,F,[]);p(this,Ft,0);p(this,H);p(this,yt);c(this,Z,t),c(this,zt,e),k(this,dt,_t.Min,this)}get kernel(){return i(this,Z)}get uuid(){return i(this,zt)}get order(){return i(this,Ft)}set order(t){i(this,Ft)!==t&&(c(this,Ft,t),i(this,z)&&this.parent.resortChildren())}get parentUuid(){return i(this,z)||void 0}set parentUuid(t){i(this,z)!==t&&(this.removeFromParent(),c(this,z,t||void 0),c(this,x,t?i(this,Z).getEntity(t):void 0),i(this,x)&&i(this,x).addChild(this))}get parent(){return!i(this,x)&&i(this,z)&&c(this,x,i(this,Z).getEntity(i(this,z))),i(this,x)}set parent(t){this.parentUuid=t==null?void 0:t.uuid}get hasParent(){return!!i(this,z)}get children(){return i(this,F)}traverse(t){t(this);for(let e of i(this,F))e.traverse(t)}[dt](){var t,e;i(this,pt).clear(),$(this),(t=i(this,H))==null||t.call(this);for(let r of i(this,gt).values())r.cleanup(),r.signal.destroy();i(this,gt).clear();for(let r of i(this,q).values())r.context.set(void 0),r.unsubscribePathValue(),(e=r.unsubscribeFromParent)==null||e.call(r),r.valuePath.dispose(),r.inherited.destroy(),r.provide.destroy(),r.context.destroy();c(this,z,void 0),c(this,x,void 0),i(this,nt).clear(),i(this,F).length=0}addChild(t){var e;if(i(this,F).length===0){i(this,nt).add(t.uuid),i(this,F).push(t);return}if(i(this,nt).has(t.uuid))throw new Error(\`child with uuid: \${t.uuid} already exists! parentUuid: \${this.uuid}\`);i(this,nt).add(t.uuid),i(this,F).push(t),this.resortChildren();for(let[,r]of i(t,q))C(e=t,M,ge).call(e,r)}resortChildren(){i(this,F).sort((t,e)=>t.order-e.order)}removeChild(t){i(this,nt).has(t.uuid)&&(i(this,nt).delete(t.uuid),i(this,F).splice(i(this,F).indexOf(t),1))}removeFromParent(){if(i(this,x)){i(this,x).removeChild(this),c(this,x,void 0),c(this,z,void 0);for(let[,t]of i(this,q))t.unsubscribeFromParent&&(t.unsubscribeFromParent(),t.unsubscribeFromParent=void 0)}}get autoDestructionOnParentRemoval(){return!!i(this,H)}set autoDestructionOnParentRemoval(t){t?!i(this,H)&&this.parentUuid&&c(this,H,k(this.parent,dt,_t.Max,()=>{this.kernel.destroyEntity(this.uuid)})):i(this,H)&&(i(this,H).call(this),c(this,H,void 0))}reSubscribeToParentContexts(){for(let[,t]of i(this,q))C(this,M,ge).call(this,t)}dispatchMessageToView(t,e,r,s=!1){i(this,Z).dispatchMessageToView({uuid:i(this,zt),type:t,data:e,transferables:r,traverseChildren:s})}dispatchViewEvents(t){for(let{type:e,data:r}of t)E(this,Br,e,r)}dispatchViewEvent(t,e){this.dispatchViewEvents([{type:t,data:e}])}getPropertyReader(t){return C(this,M,$e).call(this,t).get}getPropertyWriter(t){return C(this,M,$e).call(this,t).set}setProperties(t){this.clearTruthyPropsCache(),te(()=>{for(let[e,r]of t)this.setProperty(e,r)})}setProperty(t,e){this.getPropertyWriter(t)(e)}getProperty(t){return Be(this.getPropertyReader(t))}propKeys(){return Array.from(i(this,pt).keys())}propEntries(){return Array.from(i(this,pt).entries()).map(([t,e])=>[t,e.value])}clearTruthyPropsCache(){c(this,yt,void 0)}truthyProps(){if(i(this,yt))return i(this,yt).size?i(this,yt):void 0;let t=new Set;for(let[e,r]of i(this,pt).entries())if(typeof e=="string"){let s=r.value;s!=null&&s!==!1&&s!==""&&t.add(e)}return c(this,yt,t),t.size?t:void 0}hasContext(t){return i(this,q).has(t)}useContext(t){return C(this,M,Yt).call(this,t).context.get}useParentContext(t){return C(this,M,Yt).call(this,t).inherited.get}provideContext(t){return C(this,M,Yt).call(this,t).provide}provideGlobalContext(t){if(i(this,gt).has(t))return i(this,gt).get(t).signal;let e=i(this,Z).findOrCreateRootContext(t),r=A(),s=e.add(r);return i(this,gt).set(t,{cleanup:s,signal:r}),r}},Z=new WeakMap,zt=new WeakMap,pt=new WeakMap,q=new WeakMap,gt=new WeakMap,z=new WeakMap,x=new WeakMap,nt=new WeakMap,F=new WeakMap,Ft=new WeakMap,H=new WeakMap,M=new WeakSet,$e=function(t){return i(this,pt).get(t)},yt=new WeakMap,Yt=function(t){if(i(this,q).has(t))return i(this,q).get(t);let e=A(),r=A(),s=A(),n=new Ve([r,e]),o=V(n,Ve.Value,d=>{Gs(s,d)}),a={name:t,inherited:e,provide:r,context:s,valuePath:n,unsubscribePathValue:o};return i(this,q).set(t,a),C(this,M,ge).call(this,a),a},ge=function(t){var e,r;if((e=t.unsubscribeFromParent)==null||e.call(t),t.unsubscribeFromParent=void 0,this.parent){let s=C(r=this.parent,M,Yt).call(r,t.name),n=rt(s.context,t.inherited);t.unsubscribeFromParent=n.destroy.bind(n)}else{let s=i(this,Z).findOrCreateRootContext(t.name),n=rt(s.value$,t.inherited);t.unsubscribeFromParent=n.destroy.bind(n)}},kr);function Ws(t,e){t.indexOf(e)===-1&&t.push(e)}var dr=t=>{let e=t.split("@").map(r=>r.trim());if(e.length===2&&e[1])return e[0]?{key:\`\${e[0]}@\${e[1]}\`,prop:e[1],token:e[0]}:{key:e[1],prop:e[1]}},fe=(t,e)=>{for(let r of e)t.add(r)},qs=(t,e)=>{if(t!=null)for(let r of t.constructors)e.add(r)},at,L,J,Ar,Wr=(Ar=class{constructor(){p(this,at,new Map);p(this,L,new Map);p(this,J,new Map)}static get(t){return t!=null?t:Js}define(t,e){i(this,at).has(t)?Ws(i(this,at).get(t).constructors,e):i(this,at).set(t,{token:t,constructors:[e]})}appendRoute(t,e){let r=dr(t);r?i(this,J).has(r.key)?fe(i(this,J).get(r.key).routes,e):i(this,J).set(r.key,{routes:new Set(e),token:r.token}):i(this,L).has(t)?fe(i(this,L).get(t),e):i(this,L).set(t,new Set(e))}clearRoute(t){let e=dr(t);e?i(this,J).delete(e.key):i(this,L).delete(t)}findTokensByRoute(t,e){let r=new Set([t]),s=i(this,L).has(t)?[...i(this,L).get(t)]:[];for(;s.length;){let n=s.shift();r.has(n)||(r.add(n),i(this,L).has(n)&&s.push(...Array.from(i(this,L).get(n)).filter(o=>!r.has(o))))}if(e){for(let o of e)i(this,J).has(o)&&fe(r,i(this,J).get(o).routes);let n;do{n=r.size;for(let o of new Set(r))for(let a of e){let d=\`\${o}@\${a}\`;i(this,J).has(d)&&fe(r,i(this,J).get(d).routes)}}while(n!==r.size)}return r}findConstructors(t,e){let r=this.findTokensByRoute(t,e),s=new Set;for(let n of r)qs(i(this,at).get(n),s);return s.size>0?Array.from(s):void 0}hasToken(t){return i(this,at).has(t)}hasRoute(t){return i(this,L).has(t)}clear(){i(this,at).clear(),i(this,L).clear()}},at=new WeakMap,L=new WeakMap,J=new WeakMap,Ar),Js=new Wr,st;(function(t){t[t.CreateAndDestroy=0]="CreateAndDestroy",t[t.JustCreate=1]="JustCreate",t[t.DestroyOnly=2]="DestroyOnly"})(st||(st={}));var ur=t=>t.displayName||t.name,cr=!1,fr=!1,pr=!1,gr=!1,yr=!1,S,Q,Nt,ae,_,bt,Pr,Ks=(Pr=class{constructor(t){p(this,S);p(this,Q);p(this,Nt);p(this,ae);p(this,_);p(this,bt);this.logger=new ss("Kernel"),c(this,S,new Map),c(this,Q,new Set),c(this,_,!0),c(this,bt,new Map),ht(this),this.registry=Wr.get(t)}getEntity(t){var r;let e=(r=i(this,S).get(t))==null?void 0:r.entity;if(!e)throw new Error(\`entity with uuid "\${t}" not found!\`);return e}hasEntity(t){return i(this,S).has(t)}traverseLevelOrderBFS(t=!1){if(i(this,_)){let e=new Map,r=(s,n)=>{let o=this.getEntity(s);e.has(n)?e.get(n).push(o):e.set(n,[o]);for(let a of o.children)r(a.uuid,n+1)};i(this,Q).forEach(s=>{r(s,0)}),c(this,Nt,Array.from(e.entries()).sort((s,n)=>s[0]-n[0]).flatMap(([,s])=>s)),c(this,ae,i(this,Nt).slice().reverse()),c(this,_,!1)}return t?i(this,ae):i(this,Nt)}getEntityGraph(){return Array.from(i(this,Q)).map(t=>this.getEntityGraphNode(t))}getEntityGraphNode(t){if(!i(this,S).has(t))return;let{token:e,entity:r}=i(this,S).get(t);return{token:e,entity:r,props:Object.fromEntries(r.propEntries()),children:r.children.map(s=>this.getEntityGraphNode(s.uuid))}}upgradeEntities(){let t=new Map;for(let e of this.traverseLevelOrderBFS(!0))t.set(e.uuid,this.updateShadowObjects(e.uuid,st.DestroyOnly));for(let e of this.traverseLevelOrderBFS(!1))this.updateShadowObjects(e.uuid,st.JustCreate,t.get(e.uuid));t.clear()}run(t){this.logger.isDebug&&this.logger.debug("sync",t),te(()=>{for(let e of t.changeTrail)this.parse(e)})}parse(t){switch(t.type){case et.CreateEntities:this.createEntity(t.uuid,t.token,t.parentUuid,t.order,t.properties),c(this,_,!0);break;case et.DestroyEntities:this.destroyEntity(t.uuid),c(this,_,!0);break;case et.SetParent:this.setParent(t.uuid,t.parentUuid,t.order),c(this,_,!0);break;case et.UpdateOrder:this.updateOrder(t.uuid,t.order),c(this,_,!0);break;case et.ChangeProperties:this.changeProperties(t.uuid,t.properties);break;case et.ChangeToken:this.changeToken(t.uuid,t.token);break;case et.SendEvents:this.dispatchEventsToEntity(t.uuid,t.events);break}}createEntity(t,e,r,s=0,n,o=!1){let a=new Bs(this,t);a.order=s;let d={token:e,entity:a,usedConstructors:new Map};i(this,S).set(t,d),r&&(a.parentUuid=r),a.autoDestructionOnParentRemoval=o,a.hasParent||i(this,Q).add(t),n&&a.setProperties(n),this.createShadowObjects(t)}destroyEntity(t){if(!i(this,S).has(t))return;let{entity:e,usedConstructors:r}=i(this,S).get(t);e.removeFromParent(),E(e,dt,e),r.clear(),i(this,S).delete(e.uuid),i(this,Q).delete(e.uuid)}setParent(t,e,r=0){let s=this.getEntity(t);s.parentUuid===e&&s.order===r||(s.removeFromParent(),s.order=r,s.parentUuid=e,s.hasParent?i(this,Q).delete(t):i(this,Q).add(t),s.reSubscribeToParentContexts(),queueMicrotask(()=>{this.logger.isDebug&&this.logger.debug("entity.onParentChanged",{uuid:t,parentUuid:e,order:r,entity:s}),E(s,Us,s)}))}updateOrder(t,e){this.getEntity(t).order=e}dispatchEventsToEntity(t,e){var r;(r=this.getEntity(t))==null||r.dispatchViewEvents(e)}changeProperties(t,e){this.getEntity(t).setProperties(e),this.updateShadowObjects(t)}changeToken(t,e){if(!i(this,S).has(t))return;let r=i(this,S).get(t);r.token!==e&&(r.token=e,this.updateShadowObjects(t))}dispatchMessageToView(t){queueMicrotask(()=>{E(this,xe,t)})}updateShadowObjects(t,e=st.CreateAndDestroy,r){let s=i(this,S).get(t);r!=null||(r=new Set(this.registry.findConstructors(s.token,s.entity.truthyProps())));let n=e===st.CreateAndDestroy||e===st.DestroyOnly,o=e===st.CreateAndDestroy||e===st.JustCreate;if(n){for(let[a,d]of s.usedConstructors)if(!r.has(a)){s.usedConstructors.delete(a);for(let y of d)this.destroyShadowObject(y,s.entity)}}if(o)for(let a of r)s.usedConstructors.has(a)||this.constructShadowObject(a,s);return r}constructShadowObject(t,e){let r=new Set,s=new Set,n=new Map,o=new Map,a=new Map,d=new Map,y=new Map,m=(h,l)=>{!yr&&l!=null&&typeof l=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "useProperty()" is now passed as {compare} argument. Please update your code accordingly.'),yr=!0);let u=typeof l=="function"?{compare:l}:l,f=y.get(h);if(f===void 0){f=A(void 0,u).get,y.set(h,f);let v=rt(e.entity.getPropertyReader(h),f);s.add(v.destroy.bind(v))}return f},w=ht(new t({entity:e.entity,provideContext(h,l,u){var T;!cr&&u!=null&&typeof u=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "provideContext()" is now passed as {compare} argument. Please update your code accordingly.'),cr=!0);let f=typeof u=="function"?{compare:u}:u,v=a.get(h);if(v==null){let I=se(l),me=I?void 0:je(l);if(v=A(me,f!=null&&f.compare?{compare:f.compare}:void 0),I){let Gt=rt(l,v);s.add(Gt.destroy.bind(Gt))}let Ut=rt(v,e.entity.provideContext(h));s.add(Ut.destroy.bind(Ut)),a.set(h,v)}return v!=null&&((T=f==null?void 0:f.clearOnDestroy)==null||T)&&s.add(()=>{v.set(void 0)}),v},provideGlobalContext(h,l,u){var T;!fr&&u!=null&&typeof u=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "provideGlobalContext()" is now passed as {compare} argument. Please update your code accordingly.'),fr=!0);let f=typeof u=="function"?{compare:u}:u,v=d.get(h);if(v==null){let I=se(l),me=I?void 0:je(l);if(v=A(me,f!=null&&f.compare?{compare:f.compare}:void 0),I){let Gt=rt(l,v);s.add(Gt.destroy.bind(Gt))}let Ut=rt(v,e.entity.provideGlobalContext(h));s.add(Ut.destroy.bind(Ut)),d.set(h,v)}return v!=null&&((T=f==null?void 0:f.clearOnDestroy)==null||T)&&s.add(()=>{v.set(void 0)}),v},useContext(h,l){!pr&&l!=null&&typeof l=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "useContext()" is now passed as {compare} argument. Please update your code accordingly.'),pr=!0);let u=typeof l=="function"?{compare:l}:l,f=n.get(h);if(f===void 0){f=A(void 0,u).get,n.set(h,f);let v=rt(e.entity.useContext(h),f);s.add(v.destroy.bind(v))}return f},useParentContext(h,l){!gr&&l!=null&&typeof l=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "useParentContext()" is now passed as {compare} argument. Please update your code accordingly.'),gr=!0);let u=typeof l=="function"?{compare:l}:l,f=o.get(h);if(f===void 0){f=A(void 0,u).get,o.set(h,f);let v=rt(e.entity.useParentContext(h),f);s.add(v.destroy.bind(v))}return f},dispatchMessageToView(h,l,u,f=!1){e.entity.dispatchMessageToView(h,l,u,f)},useProperty:m,useProperties(h){let l={};for(let u in h)Object.hasOwn(h,u)&&(l[u]=m(h[u]));return l},createResource(h,l){let u=A(),f=$t(()=>{let v=je(h());return u.set(v),v!==void 0&&l?()=>{l(v),u.set(void 0)}:()=>{u.set(void 0)}});return s.add(()=>{f.destroy(),u.set(void 0),U(u)}),u},createEffect(...h){let l=$t(...h);return s.add(l.destroy),l},createSignal(...h){let l=A(...h);return s.add(()=>{U(l)}),l},createMemo(...h){let l=zs(...h);return s.add(()=>{U(l)}),l},on(...h){let[l]=h;if(typeof l=="string"||typeof l=="symbol"||Array.isArray(l)){let f=V(e.entity,...h);return s.add(f),f}let u=V(...h);return s.add(u),Object.assign(()=>{s.delete(u),u()},u)},once(...h){let[l]=h;if(typeof l=="string"||typeof l=="symbol"||Array.isArray(l)){let f=k(e.entity,...h);return s.add(f),f}let u=k(...h);return s.add(u),Object.assign(()=>{s.delete(u),u()},u)},emit(...h){let[l]=h;typeof l=="string"||typeof l=="symbol"||Array.isArray(l)?E(e.entity,...h):E(...h)},onViewEvent(h){let l=V(e.entity,Br,(u,f)=>{h(u,f)});s.add(l)},onDestroy(h){r.add(h)}}));return this.logger.isInfo&&this.logger.info("create shadow-object",ur(t),{shadowObject:w,entity:e.entity}),k(e.entity,dt,_t.Low,()=>{this.logger.isInfo&&this.logger.info("destroy shadow-object",ur(t),{shadowObject:w,entity:e.entity});for(let l of r)l();for(let l of s)l();for(let l of n.values())U(l);for(let l of o.values())U(l);for(let l of y.values())U(l);for(let l of a.values())U(l);for(let l of d.values())U(l);r.clear(),s.clear(),n.clear(),o.clear(),y.clear(),a.clear(),d.clear();let h=e.usedConstructors.get(t);h&&(h.delete(w),h.size===0&&e.usedConstructors.delete(t))}),e.usedConstructors.has(t)?e.usedConstructors.get(t).add(w):e.usedConstructors.set(t,new Set([w])),this.attachShadowObject(w,e.entity),w}createShadowObjects(t){var r;let e=i(this,S).get(t);(r=this.registry.findConstructors(e.token,e.entity.truthyProps()))==null||r.forEach(s=>{this.constructShadowObject(s,e)})}findShadowObjects(t){if(!i(this,S).has(t))return[];let{usedConstructors:e}=i(this,S).get(t);return Array.from(new Set(Array.from(e.values()).flatMap(r=>Array.from(r))))}attachShadowObject(t,e){V(e,t),typeof t[lr]=="function"&&t[lr](e)}destroyShadowObject(t,e){typeof t[dt]=="function"&&t[dt](e),E(t,dt,e),$(e,t)}findOrCreateRootContext(t){let e=i(this,bt).get(t);return e||(e=new Ve,i(this,bt).set(t,e)),e}destroy(){for(let t of i(this,bt).values())t.dispose();i(this,bt).clear();for(let t of this.traverseLevelOrderBFS().reverse())this.destroyEntity(t.uuid)}},S=new WeakMap,Q=new WeakMap,Nt=new WeakMap,ae=new WeakMap,_=new WeakMap,bt=new WeakMap,Pr);async function qr(t,e,r,s=!0){var o,a;if(r.has(e)){console.warn("importModule: skipping already imported module",e);return}else r.add(e);e.extends&&await Promise.all(e.extends.map(d=>qr(t,d,r,!1)));let{registry:n}=t;if(e.define)for(let[d,y]of Object.entries(e.define))n.define(d,y);if(e.routes)for(let[d,y]of Object.entries(e.routes))n.appendRoute(d,y);await((a=(o=e.initialize)==null?void 0:o.call(e,{define:(d,y)=>n.define(d,y),kernel:t,registry:n}))!=null?a:Promise.resolve()),s&&t.upgradeEntities()}var Ys=t=>(typeof t=="string"&&(t=new URL(t,globalThis.location.href)),t.toString()),oe,vt,Jr,Kr,Yr,Or,Xs=(Or=class{constructor(t){p(this,vt);p(this,oe,new Set);var e,r;this.kernel=(e=t==null?void 0:t.kernel)!=null?e:new Ks,this.postMessage=(r=t==null?void 0:t.postMessage)!=null?r:self.postMessage.bind(self),V(this.kernel,xe,"onMessageToView",this)}route(t){var e;switch(t.data.type){case Hr:C(this,vt,Jr).call(this,t.data);break;case Qr:C(this,vt,Kr).call(this,t.data);break;case _r:C(this,vt,Yr).call(this,t.data);break;default:console.warn("[MessageRouter] unknown message",(e=t.data.type)!=null?e:t.data)}}onMessageToView(t){let s=t,{transferables:e}=s,r=Ke(s,["transferables"]);this.postMessage({type:xe,data:r},{transfer:e})}},oe=new WeakMap,vt=new WeakSet,Jr=async function(t){try{let e=await import(Ys(t.importModule));e[Ae]?(await qr(this.kernel,e[Ae],i(this,oe)),this.postMessage({type:ke,url:t.importModule})):this.postMessage({type:ke,url:t.importModule,error:\`module has no "\${Ae}" export\`})}catch(e){console.error("[MessageRouter] failed to import module",e),this.postMessage({type:ke,url:t.importModule,error:\`\${e}\`})}},Kr=function(t){try{this.kernel.run(t)}catch(e){console.error("[MessageRouter] failed to apply change trail",e),this.postMessage({type:He,serial:t.serial,error:e.toString()})}t.serial&&this.postMessage({type:He,serial:t.serial})},Yr=function(t){console.debug("[MessageRouter] on destroy",t),$(this.kernel,this),i(this,oe).clear(),this.postMessage({type:es})},Or),Zs=class{constructor(){this.onmessage=t=>{var e;t.data.type===N?globalThis[R]=t.data.config:((e=this.router)!=null||(this.router=new Xs),this.router.route(t))}}start(){self.addEventListener("message",this.onmessage),self.postMessage({type:ts})}};console.debug("@spearwolf/shadow-objects/WorkerRuntime: hello!");var Hs=new Zs;Hs.start();
21
+ var ht="shaeRequestEntParent",lt="shaeReRequestEntParent",Ns="shae-worker",ct="shae-ent",_s="shae-prop",oe="token",q="forward-custom-events";var ut="local",$s="no-autostart",dt="no-structured-clone",V="auto-sync";var ft="name",pt="value",gt="type",yt="no-trim";var ve="*",Bs=1,Yt=2,Jt=4,H=Symbol.for("eventize"),Ki="[eventize]",Xt=s=>s===ve,Vs=s=>{switch(typeof s){case"string":case"symbol":return!0;default:return!1}},Us=typeof console<"u",Yi=Us?console[console.warn?"warn":"log"].bind(console,Ki):()=>{},Ji=(s,e,t)=>(Object.defineProperty(s,e,{value:t,configurable:!0}),s),Xi=0,Zt=class{static publish(s){s.sort((e,t)=>e.order-t.order).forEach(e=>e.replay())}events=new Map;eventNames=new Set;add(s){Array.isArray(s)?s.forEach(e=>this.eventNames.add(e)):this.eventNames.add(s)}remove(s){Array.isArray(s)?s.forEach(e=>this.eventNames.delete(e)):this.eventNames.delete(s),this.clear(s)}clear(s){Array.isArray(s)?s.forEach(e=>this.events.delete(e)):this.events.delete(s)}retain(s,e){this.eventNames.has(s)&&this.events.set(s,{args:e,order:Xi++})}isKnown(s){return this.eventNames.has(s)}replayTo(s,e,t=[]){if(Xt(s))this.eventNames.forEach(i=>this.replayTo(i,e,t));else if(this.events.has(s)){let{order:i,args:r}=this.events.get(s);t.push({order:i,replay:()=>e.apply(s,r)})}return t}},Qt=(s,e,t,i)=>{if(typeof e=="function"){let r=e.apply(s,t);r!=null&&i?.(r)}},Zi=(s,e,t,i)=>Qt(e,e.emit,[s].concat(t),i),er=s=>{switch(typeof s){case"function":return Bs;case"string":case"symbol":return Yt;case"object":return Jt}},tr=0,sr=()=>++tr,Gs=class{id;eventName;isCatchEmAll;priority;listener;listenerObject;listenerType;callAfterApply;isRemoved;refCount;constructor(s,e,t,i=null){this.id=sr(),this.eventName=s,this.isCatchEmAll=Xt(s),this.listener=t,this.listenerObject=i,this.priority=e,this.listenerType=er(t),this.callAfterApply=void 0,this.isRemoved=!1,this.refCount=1}isEqual(s,e=null){if(s===this)return!0;let t=typeof s;return t==="number"&&s===this.id?!0:e===null&&(t==="string"||t==="symbol")?s===ve||s===this.eventName:this.listener===s&&this.listenerObject===e}apply(s,e,t){if(this.isRemoved)return;let{listener:i,listenerObject:r}=this;switch(this.listenerType){case Bs:Qt(r,i,e,t),this.callAfterApply&&this.callAfterApply();break;case Yt:Qt(r,r[i],e,t),this.callAfterApply&&this.callAfterApply();break;case Jt:{let n=i[s];if(this.isCatchEmAll||this.eventName===s){if(typeof n=="function"){let o=n.apply(i,e);o!=null&&t?.(o)}else Zi(s,i,e,t);this.callAfterApply&&this.callAfterApply()}break}}}},ir=(s,e)=>s.priority!==e.priority?e.priority-s.priority:s.id-e.id,rr=(s,e)=>{let t=0,i=s.length;for(;t<i;){let r=t+i>>>1;ir(e,s[r])<0?i=r:t=r+1}return t},Ws=s=>s?.slice(0),js=(s,e)=>{let t=s.indexOf(e);t>-1&&s.splice(t,1)},nr=s=>s===Jt||s===Yt,Kt=(s,e,t)=>{let i=s.findIndex(r=>r.isEqual(e,t));i>-1&&(s[i].isRemoved=!0,s.splice(i,1))},qt=(s,e,t)=>{let i=[];for(let r of s)(e==null&&r.listenerObject===t||r.eventName===e&&r.listener===t)&&i.push(r);for(let r of i)Kt(s,r,void 0)},Ht=s=>{s&&(s.forEach(e=>{e.isRemoved=!0}),s.length=0)},or=(s,e)=>s.listenerType===e.listenerType?s.priority===e.priority&&s.eventName===e.eventName&&s.listenerObject===e.listenerObject&&s.listener===e.listener:!1,ar=(s,e)=>{if(nr(s.listenerType))return e.find(t=>or(s,t))},hr=(s,e)=>{let t=ar(s,e);return t?(t.refCount+=1,t):(e.splice(rr(e,s),0,s),s)},lr=class{namedListeners;catchEmAllListeners;getListenersForEventName=s=>{let e=this.namedListeners.get(s);return e||(e=[],this.namedListeners.set(s,e)),e};constructor(){this.namedListeners=new Map,this.catchEmAllListeners=[]}add(s){return hr(s,s.isCatchEmAll?this.catchEmAllListeners:this.getListenersForEventName(s.eventName))}remove(s,e,t=!1){if(e==null&&Array.isArray(s)){s.forEach(i=>this.remove(i,null,t));return}if(s==null||e==null&&Xt(s)){this.removeAllListeners();return}if(e==null&&Vs(s)){this.removeByEventName(s);return}if(s instanceof Gs){this.removeByEventListener(s);return}if(t){this.removeByEventNameAndListenerObject(s,e);return}this.removeByListener(s,e)}removeByEventName(s){Ht(this.namedListeners.get(s)),this.namedListeners.delete(s)}removeByEventListener(s){s.isRemoved||(s.refCount-=1,!(s.refCount>=1)&&(s.isRemoved=!0,this.namedListeners.forEach((e,t)=>{js(e,s),e.length===0&&this.namedListeners.delete(t)}),js(this.catchEmAllListeners,s)))}removeByEventNameAndListenerObject(s,e){this.namedListeners.forEach((t,i)=>{qt(t,s,e),t.length===0&&this.namedListeners.delete(i)})}removeByListener(s,e){let t=typeof s=="object";this.namedListeners.forEach((i,r)=>{Kt(i,s,e),t&&qt(i,void 0,s),i.length===0&&this.namedListeners.delete(r)}),Kt(this.catchEmAllListeners,s,e),t&&qt(this.catchEmAllListeners,void 0,s)}removeAllListeners(){this.namedListeners.forEach(s=>Ht(s)),this.namedListeners.clear(),Ht(this.catchEmAllListeners)}forEach(s,e){let t=Ws(this.catchEmAllListeners),i=Ws(this.namedListeners.get(s));if(s===ve||!i||i.length===0)t.forEach(e);else if(t.length===0)i.forEach(e);else{let r=i.length,n=t.length,o=0,a=0;for(;o<r||a<n;){if(o<r){let f=i[o];if(a>=n||f.priority>=t[a].priority){e(f),++o;continue}}a<n&&(e(t[a]),++a)}}}getSubscriptionCount(){let s=this.catchEmAllListeners.length;for(let e of this.namedListeners.values())s+=e.length;return s}},ae=s=>!!(s&&s[H]);function We(s){if(ae(s))return s;let e=new lr,t=new Zt;return Ji(s,H,{keeper:t,store:e}),s}var Q={Max:Number.POSITIVE_INFINITY,Critical:1e9,High:1e6,Normal:0,Low:-1e4,Min:Number.NEGATIVE_INFINITY,AAA:1e9,BB:1e6,C:1e3,Default:0},cr=(s,e,t,i,r,n,o)=>{let a=s.add(new Gs(t,i,r,n));return e.replayTo(t,a,o),a},qs=(s,e,t,i)=>{let r=t.length,n=typeof t[0],o,a,f,m;if(r>=2&&r<=3&&n==="number"?(o=ve,[a,f,m]=t):r>=3&&r<=4&&typeof t[1]=="number"?[o,a,f,m]=t:(a=Q.Default,n==="string"||n==="symbol"||Array.isArray(t[0])?[o,f,m]=t:(o=ve,[f,m]=t)),!f)throw Us&&Yi("called with insufficient arguments!",t),new Error("subscribeTo() called with insufficient arguments");let P=c=>j=>cr(s,e,j,c,f,m,i);return Array.isArray(o)?o.map(c=>Array.isArray(c)?P(c[1])(c[0]):P(a)(c)):P(a)(o)},ur=(s,e,t)=>{let i=[],r=qs(s,e,t,i);return Zt.publish(i),r},dr=(s,e,t)=>{let i=[];return{listeners:qs(s,e,t,i),publishRetained:()=>Zt.publish(i)}},Fs=s=>e=>{e.callAfterApply=()=>{s?.()}},Hs=(s,e)=>Object.assign(()=>A(s,e),Array.isArray(e)?{listeners:e}:{listener:e}),Is=(s,e,t,i)=>{if(e===ve)throw new Error("emit() must be called with a concrete event name \u2014 '*' is reserved for subscribing to all events and cannot be emitted");let{store:r,keeper:n}=s[H];r.forEach(e,o=>o.apply(e,t,i)),n.retain(e,t)},Qs=(s,e,t,i)=>{Array.isArray(e)?e.forEach(r=>Is(s,r,t,i)):Is(s,e,t,i)},zs=(s,e,t,i)=>{if(e===ve)throw new Error("emit() must be called with a concrete event name \u2014 '*' is reserved for subscribing to all events and cannot be emitted");let r=s,n=r[e];if(typeof n=="function"){let a=n.apply(s,t);a!=null&&i?.(a);return}let o=r.emit;if(typeof o=="function"){let a=o.apply(s,[e,...t]);a!=null&&i?.(a)}},Ks=(s,e,t,i)=>{Array.isArray(e)?e.forEach(r=>zs(s,r,t,i)):zs(s,e,t,i)},Ys=s=>s!=null&&typeof s=="object";function w(s,...e){let t=We(s),{store:i,keeper:r}=t[H];return Hs(t,ur(i,r,e))}function k(s,...e){let t=We(s),{store:i,keeper:r}=t[H],{listeners:n,publishRetained:o}=dr(i,r,e),a=Hs(t,n),f=!1,m=()=>{f||(a(),f=!0)};return Array.isArray(n)?n.forEach(Fs(m)):Fs(m)(n),o(),m}function Ae(s,e){return new Promise(t=>{k(s,e,t)})}function A(s,e,t){if(!ae(s))return;let{store:i,keeper:r}=s[H],n=typeof e,o=t!=null&&(n==="string"||n==="symbol");i.remove(e,t,o),Array.isArray(e)?r.remove(e.filter(a=>typeof a=="string")):Vs(e)&&r.remove(e)}function y(s,e,...t){ae(s)?Qs(s,e,t):Ys(s)&&Ks(s,e,t)}function fr(s,e,...t){let i=[],r=n=>{i.push(n)};return ae(s)?Qs(s,e,t,r):Ys(s)&&Ks(s,e,t,r),i=i.map(n=>Array.isArray(n)?Promise.all(n):Promise.resolve(n)),i.length>0?Promise.all(i):Promise.resolve()}function ee(s,e){let t=We(s),{keeper:i}=t[H];i.add(e)}function he(s,e){if(!ae(s))throw new Error("object is not eventized");let{keeper:t}=s[H];t.clear(e)}function pr(s,e){if(!ae(s))throw new Error("object is not eventized");let{keeper:t}=s[H];t.remove(e)}var gr=w,yr=k,vr=A,mr=y,br=fr,wr=Ae,Cr=ee,Er=he,Sr=pr,O=(()=>{let s=(e={})=>We(e);return s.inject=(e={})=>(e=We(e),Object.assign(e,{on:(...t)=>gr(e,...t),once:(...t)=>yr(e,...t),onceAsync:t=>wr(e,t),off:(t,i)=>vr(e,t,i),emit:(t,...i)=>mr(e,t,...i),emitAsync:(t,...i)=>br(e,t,...i),retain:t=>Cr(e,t),retainClear:t=>Er(e,t),unretain:t=>Sr(e,t)}),e),s.is=ae,s})();var es=s=>ae(s)?s[H]?.store?.getSubscriptionCount()??0:0;var K=Symbol.for("signal"),Pe=Symbol.for("effect"),Js=Symbol.for("destroySignal"),Xs=Symbol.for("createEffect"),kr=Symbol.for("destroyEffect"),Oe="value",ns="mute",os="unmute",le="destroy",je=Symbol.for("recall"),Fe=O(),we=O(),me=O(),ti=O(),be=class{static current;delayedEffects=[];batch(e,t){let i=this.delayedEffects.length;for(let r=0;r<i;r++){let[n,o]=this.delayedEffects[r];if(!(n>t)){if(n===t){o.add(e);return}this.delayedEffects.splice(r,0,[t,new Set([e])]);return}}this.delayedEffects.push([t,new Set([e])])}flush(){this.run(),this.delayedEffects.length=0}run(){let e=new Set,t=[];try{t.push(w(me,(i,r)=>{r===je&&e.add(i)}),w(ti,i=>{e.add(i)}));for(let[,i]of this.delayedEffects)for(let r of i)e.has(r)||y(me,r,r,je)}finally{for(let i of t)i()}}},si=()=>be.current;function N(s){let e=be.current;e?e=void 0:e=be.current=new be;try{s()}finally{e&&(be.current=void 0,e.run())}}var ts=0;function Et(s){ts++;try{s()}finally{ts--}}function as(){return ts>0}var mt=class{[Pe];constructor(e){this[Pe]=e,k(e,le,()=>{this[Pe]=void 0})}run=()=>this[Pe]?.run();destroy=()=>{this[Pe]?.destroy(),this[Pe]=void 0}},ss=[],ii=()=>ss.at(-1),Ar=(s,e)=>{ss.push(s);try{return e()}finally{ss.pop()}};var Te=new WeakMap,vt=new Set,te=class s{#e=new Set;#t=new Set;#s=new Map;#r=new WeakMap;#i=new Map;#n=new Set;#o=new Set;#a;#l;static get(e){if(e!=null)return e instanceof s?e:Te.get(e)}static findOrCreate(e){if(e==null)throw new Error("Cannot create a group with a null object");return new s(e)}static destroy(e){console.warn("SignalGroup.destroy(obj) is deprecated. Use SignalGroup.delete(obj) instead."),s.delete(e)}static delete(e){Te.get(e)?.clear()}static clear(){for(let e of[...vt])e.clear();vt.clear()}constructor(e){if(e!=null&&e instanceof s)return e;if(e??=this,Te.has(e))return Te.get(e);this.#l=new WeakRef(e),Te.set(e,this),vt.add(this),O(this)}attachGroup(e){if(e===this)throw new Error("Cannot attach a group to itself");return this.#e.add(e),e.#a&&e.#a!==this&&e.#a.#e.delete(e),e.#a=this,e}detachGroup(e){return e!==this&&this.#e.has(e)&&(this.#e.delete(e),e.#a=void 0),e}attachSignal(e){let t=R(e);if(t?.destroyed)throw new Error("Cannot attach a destroyed signal to a group");return t&&this.#t.add(t),e}attachSignalByName(e,t){if(t){this.attachSignal(t);let i=R(t);this.#s.set(e,i),this.#i.has(e)?this.#i.get(e).push(i):this.#i.set(e,[i]),this.#r.has(i)?this.#r.get(i).add(e):this.#r.set(i,new Set([e]))}else this.#s.delete(e);return t}hasSignal(e){return this.#s.has(e)||!!this.#a?.hasSignal(e)}signal(e){return this.#s.get(e)?.object??this.#a?.signal(e)}detachSignal(e){let t=R(e);if(t&&(this.#t.delete(t),this.#r.has(t))){let i=this.#r.get(t);for(let r of i)if(this.#i.has(r)){let n=this.#i.get(r);n.splice(n.indexOf(t),1),n.length===0?(this.#s.delete(r),this.#i.delete(r)):this.#s.get(r)===t&&this.#s.set(r,n.at(-1))}i.clear(),this.#r.delete(t)}return e}attachEffect(e){return this.#n.add(e),e}runEffects(){for(let e of this.#n)e.run();for(let e of this.#e)e.runEffects()}attachLink(e){if(e?.isDestroyed)throw new Error("Cannot attach a destroyed link to a group");return e&&this.#o.add(e),e}detachLink(e){return e&&this.#o.delete(e),e}destroy(){console.warn("SignalGroup#destroy is deprecated. Use SignalGroup#clear instead."),this.clear()}clear(){y(this,le,this),A(this);for(let e of this.#e)e.clear();for(let e of this.#n)e.destroy();for(let e of this.#t)L(e);for(let e of this.#o)e.destroy();if(this.#e.clear(),this.#t.clear(),this.#s.clear(),this.#i.clear(),this.#n.clear(),this.#o.clear(),this.#a?.detachGroup(this),this.#l){let e=this.#l.deref();e!==void 0&&Te.delete(e),this.#l=void 0}vt.delete(this)}},bt=class{#e;#t;constructor(e="id",t=1){this.#e=e,this.#t=t}make(){return Symbol(`${this.#e}${this.#t++}`)}},Pr=s=>s!=null&&typeof s.then=="function",is=class s{static idGen=new bt("ef");static count=0;static maxDepth=256;id;callback;#e;#t=new Set;#s=new Set;#r=new Map;#i=new Set;childEffects=[];curChildEffectSlot=0;autorun=!0;shouldRun=!0;priority;#n;#o=!1;#a=0;constructor(e,t){O(this),this.callback=e;let i;t?.attach!=null&&(i=te.findOrCreate(t.attach),i.attachEffect(this)),this.autorun=t?.autorun??!0,this.#n=t?.dependencies?t.dependencies.map(r=>{switch(typeof r){case"string":case"symbol":return i.signal(r);default:return r}}):void 0,this.id=s.idGen.make(),this.priority=t?.priority??0,w(me,this.id,je,this),++s.count}hasStaticDeps(){return this.#n!=null&&this.#n.length>0}saveSignalsFromDeps(){for(let e of this.#n)this.whenSignalIsRead(R(e).id)}static createEffect(e,t,i){let r=Array.isArray(t)?t:void 0,n=r?i??{dependencies:r}:t;n&&r&&(n.dependencies=r);let o,a=ii();return a!=null?(o=a.getCurrentChildEffect(),o==null&&(o=new s(e,n),a.attachChildEffect(o),y(me,Xs,o)),a.curChildEffectSlot++):(o=new s(e,n),y(me,Xs,o)),o.hasStaticDeps()?o.saveSignalsFromDeps():o.autorun&&o.run(),new mt(o)}getCurrentChildEffect(){return this.childEffects[this.curChildEffectSlot]}attachChildEffect(e){this.childEffects.push(e)}run=()=>{if(this.#o||!this.shouldRun)return;let e=si();if(e){e.batch(this.id,this.priority);return}if(this.#a>=s.maxDepth)throw new Error(`[signalize] Effect ${this.id.toString()} exceeded maxDepth=${s.maxDepth}: an effect callback recursively re-triggered itself (likely by writing a signal it depends on). Break the cycle, or raise EffectImpl.maxDepth if the recursion is intentional.`);this.#a++;try{if(this.runCleanupCallback(),this.destroyChildEffects(),this.curChildEffectSlot=0,this.shouldRun=!1,y(ti,this.id,this.id),this.hasStaticDeps())this.#e=this.callback();else{this.#s.clear();for(let t of this.#t)this.#s.add(t);this.#e=Ar(this,this.callback),this.cleanupLostSignals(),this.#i.clear()}}finally{this.#a--}};[je](){this.shouldRun=!0,this.autorun&&this.run()}whenSignalIsRead(e){this.#s.delete(e),this.#t.has(e)||(this.#t.add(e),this.#r.set(e,[w(Fe,e,this.priority,je,this),k(we,e,Js,this)]))}[Js](e){!this.#i.has(e)&&this.#t.has(e)&&(this.#i.add(e),this.unsubscribeSignal(e),this.#i.size===this.#t.size&&this.destroy())}cleanupLostSignals(){for(let e of this.#s)this.unsubscribeSignal(e),this.#t.delete(e)}destroyChildEffects(){for(let e of this.childEffects)e.destroy();this.childEffects.length=0}unsubscribeSignal(e){this.#r.has(e)&&(this.#r.get(e).forEach(t=>{t()}),this.#r.delete(e))}runCleanupCallback(){if(this.#e!=null){let e=this.#e;this.#e=void 0,Pr(e)?Promise.resolve(e).then(t=>{typeof t=="function"&&t()}):e()}}destroy=()=>{this.#o||(y(this,le,this),A(this),y(me,kr,this),this.runCleanupCallback(),this.destroyChildEffects(),A(Fe,this),A(me,this),A(we,this),this.#o=!0,this.#t.clear(),this.#s.clear(),this.#r.clear(),this.#i.clear(),--s.count)}},S=(...s)=>is.createEffect(...s);var Ie=new WeakMap,Tr=s=>{let e=Ie.get(s);return e||(e={},Ie.set(s,e)),e},U=(s,e)=>Ie.get(s)?.signals?.get(e);var ri=(s,e,t)=>{let i=Tr(s);i.signals??=new Map,i.signals.set(e,t)};function ze(...s){for(let e of s)if(Ie.has(e)){let t=Ie.get(e);if(t.signals){for(let i of t.signals.values())L(i);t.signals.clear(),t.signals=void 0}}}function ni(s){let e=R(Ce(s)?s:U(...s));e!=null&&!e.muted&&!e.destroyed&&rs(e.id,e.value,{touch:!0})}function xe(s){return Ce(s)?R(s)?.value:R(U(...s))?.value}var wt=class{[K];constructor(e){this[K]=e}get get(){return this[K].reader}get set(){return this[K].writer}get value(){return xe(this.get)}set value(e){this.set(e)}onChange(e){let{destroy:t}=S(()=>e(this.value),[this.get]);return t}get muted(){return this[K].muted}set muted(e){this[K].muted=e}touch(){ni(this)}destroy(){L(this)}},Or=new bt("si"),Zs=!1;function xr(){Zs||(Zs=!0,console.warn("signalReader(callback) is deprecated and will be removed in a future release. Use Signal.onChange(callback) instead \u2014 it returns an unsubscribe function for proper cleanup."))}function ei(s){as()||ii()?.whenSignalIsRead(s)}function rs(s,e,t){as()||y(Fe,s,e,t)}var Ce=s=>s!=null&&s[K]!=null,Mr=s=>{let e=t=>(s.destroyed||s.beforeRead?.(),t?(xr(),S(()=>(s.destroyed||ei(s.id),t(s.value)),[e])):s.destroyed||ei(s.id),s.value);return Object.defineProperty(e,K,{value:s}),e},Ct=class s{static instanceCount=0;id;lazy;get[K](){return this}compare;beforeRead;muted=!1;destroyed=!1;#e=void 0;get value(){return this.lazy&&(this.#e=this.valueFn(),this.valueFn=void 0,this.lazy=!1),this.#e}set value(e){this.#e=e}valueFn;reader;writer=(e,t)=>{let i=t?.lazy??!1,n=t?.compare??this.compare??((a,f)=>a===f);if((i!==this.lazy||i&&e!==this.valueFn||!i&&!n(e,this.#e))&&(i?(this.#e=void 0,this.valueFn=e,this.lazy=!0):(this.#e=e,this.valueFn=void 0,this.lazy=!1),!this.muted&&!this.destroyed)){rs(this.id,this.#e);return}(t?.touch??!1)&&!this.muted&&!this.destroyed&&rs(this.id,this.#e,{touch:!0})};object;constructor(e,t){this.id=Or.make(),++s.instanceCount,this.lazy=e,this.lazy?(this.value=void 0,this.valueFn=t):(this.value=t,this.valueFn=void 0),this.reader=Mr(this),this.object=new wt(this)}},R=s=>s?.[K];function p(s=void 0,e){let t;if(Ce(s))t=R(s);else{let i=e?.lazy??!1;t=new Ct(i,s),t.beforeRead=e?.beforeRead,t.compare=e?.compare}return e?.attach!=null&&te.findOrCreate(e.attach).attachSignal(t),t.object}var L=(...s)=>{for(let e of s){let t=R(e);t!=null&&!t.destroyed&&(t.destroyed=!0,t.beforeRead=void 0,--Ct.instanceCount,y(we,t.id,t.id))}};function St(s,e){let t=p(),i=e?.attach!=null?te.findOrCreate(e.attach):void 0;i!=null&&(e?.name?i.attachSignalByName(e.name,t):i.attachSignal(t));let r=S(()=>{N(()=>{t.set(s())})},{autorun:!(e?.lazy??!1),priority:e?.priority??Q.C,attach:i}),n=R(t);return n.beforeRead=r.run,k(we,n.id,r.destroy),t.get}var At=class{#e=!1;#t;source;lastValue;isDestroyed=!1;constructor(e){O(this),this.source=R(e),this.#t=w(Fe,this.source.id,(t,i)=>{!this.#e&&!this.isDestroyed&&(i?.touch===!0?this.touch():this.write())}),k(we,this.source.id,()=>this.destroy())}attach(e){let t=te.findOrCreate(e);return t.attachLink(this),k(this,le,()=>{t.detachLink(this)}),t}nextValue(){return new Promise((e,t)=>{let i=[],r=()=>i.forEach(n=>{n()});i.push(k(this,Oe,n=>{r(),e(n)}),k(this,le,()=>{r(),t()}))})}async*asyncValues(e){ee(this,Oe);try{let t=0;for(;!this.isDestroyed;)try{let i=await this.nextValue();if(e?.(i,t++))break;yield i}catch{break}}finally{he(this,Oe)}}destroy(){this.isDestroyed||(this.#t?.(),this.#t=void 0,y(this,le,this),he(this,Oe),A(this),this.lastValue=void 0,this.isDestroyed=!0,Object.freeze(this))}get isMuted(){return this.#e}mute(){return!this.isDestroyed&&!this.#e&&(this.#e=!0,y(this,ns,this)),this}unmute(){return!this.isDestroyed&&this.#e&&(this.#e=!1,y(this,os,this)),this}toggleMute(){return this.isDestroyed||(this.#e=!this.#e,y(this,this.#e?ns:os,this)),this.#e}updateValue(e){if(!this.#e&&!this.isDestroyed){let{value:t}=this.source;e(t),y(this,Oe,t),this.lastValue=t}}},hs=class extends At{target;constructor(e,t){super(e),this.target=R(t),k(we,this.target.id,()=>this.destroy()),this.touch()}touch(){return this.updateValue(e=>{this.target.writer(e,{touch:!0})}),this}write(){this.updateValue(e=>{this.target.writer(e)})}},ls=class extends At{target;constructor(e,t){super(e),this.target=t,this.touch()}touch(){return this.updateValue(e=>{this.target(e)}),this}write(){this.updateValue(e=>{this.target(e)})}},kt=new Map;function _(s,e,t){let i=R(s),r=R(e),n=r??e,o;if(kt.has(i)){if(o=kt.get(i),o.has(n))return o.get(n)}else o=new Map,kt.set(i,o);let a=r!=null?new hs(s,r):new ls(s,e),f=t?.attach;return f&&a.attach(f),o.set(n,a),k(a,le,()=>{o.delete(n),o.size===0&&kt.delete(i)}),a}var Pt=class s{static fromProps(e,t){let i=new s,r=t?t.map(n=>[n,e[n]]):Object.entries(e);for(let[n,o]of r)i.#e.set(n,p(o));return i}#e=new Map;keys(){return this.#e.keys()}signals(){return this.#e.values()}entries(){return this.#e.entries()}clear(){for(let e of this.#e.values())e.destroy();this.#e.clear()}has(e){return this.#e.has(e)}get(e){if(!this.#e.has(e)){let t=p();return this.#e.set(e,t),t}return this.#e.get(e)}update(e){e.size&&N(()=>{for(let[t,i]of e.entries())this.get(t).set(i)})}updateFromProps(e,t){N(()=>{let i=t?t.map(r=>[r,e[r]]):Object.entries(e);for(let[r,n]of i)this.get(r).set(n)})}};var se=(s=>(s[s.StructuralChanges=1]="StructuralChanges",s[s.ContentUpdates=2]="ContentUpdates",s[s.Removal=3]="Removal",s))(se||{}),E=(s=>(s[s.CreateEntities=1]="CreateEntities",s[s.DestroyEntities=2]="DestroyEntities",s[s.SetParent=3]="SetParent",s[s.UpdateOrder=4]="UpdateOrder",s[s.ChangeProperties=5]="ChangeProperties",s[s.ChangeToken=6]="ChangeToken",s[s.SendEvents=7]="SendEvents",s))(E||{}),Ee=Symbol.for("ShadowEntsGlobalNS"),ie="#void",oi="contextLost",ai="configure",hi="changeTrail",li="destroy",ci="loaded",ui="appliedChangeTrail",di="importedModule",fi="destroyed",Me="messageToView",pi=6e4,gi=6e4,yi=5e3,vi=5e3,cs="shadowObjects";function mi(s,e){s.indexOf(e)===-1&&s.push(e)}function us(s,e){let t=s.indexOf(e);t!==-1&&s.splice(t,1),s.push(e)}function ce(s,e){let t=s.indexOf(e);t!==-1&&s.splice(t,1)}var Se=s=>typeof s=="string"?s.trim()||Ee:typeof s=="symbol"?s:Ee;var Be="#root",Ve=class{#e;get uuid(){return this.#e}#t=0;constructor(e){this.#e=e}#s=!0;#r=0;#i=0;hasChanges(){return this.#t>0}get isNew(){return this.#s}get isCreated(){return this.#r>0&&this.#r>this.#i}get isDestroyed(){return this.#i>0&&this.#i>=this.#r}#n=ie;#o;#a=0;#l=!1;#c;#u;#h;create(e=ie,t,i=0,r=!1){this.#t++,this.#r++,this.#c=e,this.#u=t??Be,this.#h=i||void 0,this.#l=r}destroy(){this.#i++,this.#t++}clear(){this.#t=0,this.#s=!1,this.#c=void 0,this.#u=void 0,this.#h=void 0,this.#p.clear(),this.#g.length=0,this.#d.length=0,this.#f.clear()}changeToken(e){e===this.#n?this.#c=void 0:(this.#c=e,this.#t++)}setParent(e){e===this.#o?this.#u=void 0:(this.#u=e??Be,this.#t++)}changeOrder(e){e===this.#a?this.#h=void 0:(this.#h=e,this.#t++)}#y=new Map;#p=new Map;#g=[];changeProperty(e,t,i){let r=this.#y.get(e);i==null&&t!==r||i!=null&&!i(t,r)?(this.#p.set(e,t),us(this.#g,e),this.#t++):(this.#p.delete(e),ce(this.#g,e))}removeProperty(e){let t=this.#y.has(e);this.#p.has(e)?(this.#p.delete(e),t||ce(this.#g,e)):t&&(us(this.#g,e),this.#t++)}#d=[];#f=new Set;createEvent(e,t,i){this.#d.push({type:e,data:t}),i?.forEach(r=>this.#f.add(r)),this.#t++}transferEventsTo(e){this.#d.length>0&&(e.#d.push(...this.#d),this.#d.length=0),this.#f.size>0&&(e.#f=new Set([...e.#f,...this.#f]),this.#f.clear())}buildChangeTrail(e,t){let{isNew:i,isCreated:r,isDestroyed:n}=this;if(!(i&&n))switch(t){case se.StructuralChanges:i?e.push(this.makeCreateEntityChange()):n||(this.#u!==void 0&&!(this.#u===Be&&this.#o===void 0)?e.push(this.makeSetParentChange()):this.#h!==void 0&&this.#h!==this.#a&&e.push(this.makeUpdateOrderChange()),this.#c!==void 0&&this.#c!==this.#n&&e.push(this.makeChangeToken()));break;case se.ContentUpdates:!i&&r&&this.#g.length>0&&e.push(this.makeChangePropertyChange()),this.#d.length>0&&e.push(this.makeEvents());break;case se.Removal:n&&e.push(this.makeDestroyEntityChange());break}}makeEvents(){let e={type:E.SendEvents,uuid:this.#e,events:this.#d.slice(0)};return this.#f.size>0&&(e.transferables=Array.from(this.#f)),e}makeCreateEntityChange(){let e={type:E.CreateEntities,uuid:this.#e,token:this.#c};if(this.#n=this.#c,this.#u!==void 0){let t=this.#u===Be?void 0:this.#u;this.#o=t,t!==void 0&&(e.parentUuid=t)}return this.#p.size>0&&(e.properties=Array.from(this.#p.entries()).filter(([,t])=>t!==void 0),e.properties.forEach(([t,i])=>this.#y.set(t,i))),this.#h!==void 0&&this.#h!==this.#a&&(e.order=this.#a=this.#h),this.#l&&(e.autoDestructionOnParentRemoval=!0),e}makeDestroyEntityChange(){return{type:E.DestroyEntities,uuid:this.#e}}makeSetParentChange(){this.#o=this.#u===Be?void 0:this.#u;let e={type:E.SetParent,uuid:this.#e,parentUuid:this.#o};return this.#h!==void 0&&this.#h!==this.#a&&(e.order=this.#a=this.#h),e}makeUpdateOrderChange(){return this.#a=this.#h??0,{type:E.UpdateOrder,uuid:this.#e,order:this.#a}}makeChangeToken(){return this.#n=this.#c??ie,{type:E.ChangeToken,uuid:this.#e,token:this.#n}}makeChangePropertyChange(){let e=this.#g.map(t=>{if(this.#p.has(t)){let i=this.#p.get(t);return this.#y.set(t,i),[t,i]}else return this.#y.delete(t),[t,void 0]});return{type:E.ChangeProperties,uuid:this.#e,properties:e}}};var bi=s=>{if(!(s===void 0||s.length===0))return s.filter(e=>e.length===1||e[1]!==void 0)},ds=(s,e)=>{if(s===e||e===void 0)return s;if(s===void 0)return bi(e);for(let[t,i]of e){let r=s.find(([n])=>n===t);r===void 0?s.push([t,i]):r[1]=i}return bi(s)};var Tt=class{#e=new Map;get[Symbol.iterator](){return this.#e.entries.bind(this.#e)}clear(){this.#e.clear()}isEmpty(){return this.#e.size===0}hasComponentState(e){return this.#e.has(e)}getComponentState(e){return this.#e.get(e)}write(e){for(let t of e)if(t.type===E.CreateEntities)this.createEntity(t);else if(this.#e.has(t.uuid))switch(t.type){case E.DestroyEntities:this.destroyEntity(t);break;case E.SetParent:this.setParent(t);break;case E.UpdateOrder:this.updateOrder(t);break;case E.ChangeToken:this.changeToken(t);break;case E.ChangeProperties:this.changeProperties(t);break}}changeProperties({uuid:e,properties:t}){let i=this.getComponentState(e);i.properties=ds(i.properties,t)}changeToken({uuid:e,token:t}){this.getComponentState(e).token=t||ie}updateOrder({uuid:e,order:t}){this.getComponentState(e).order=t??0}setParent({uuid:e,parentUuid:t,order:i}){let r=this.getComponentState(e);r.parentUuid=t,r.order=i??0}destroyEntity({uuid:e}){this.#e.delete(e)}createEntity({uuid:e,token:t,parentUuid:i,order:r,properties:n,autoDestructionOnParentRemoval:o}){this.#e.set(e,{token:t||ie,parentUuid:i,order:r??0,properties:ds(void 0,n),...o?{autoDestructionOnParentRemoval:!0}:{}})}};var F=class s{static{this.ReRequestParentRoots="re-request-parent-roots"}static getContextsMap(){return globalThis.__shadowEntsContexts==null&&(globalThis.__shadowEntsContexts=new Map),globalThis.__shadowEntsContexts}static get(e){let t=Se(e),i=s.getContextsMap();return i.has(t)?i.get(t):new s(t)}#e=new Map;#t=[];#s=new Tt;constructor(e=Ee){let t=Se(e),i=s.getContextsMap();if(i.has(t))return i.get(t);this.ns=t,i.set(t,this)}addComponent(e){let t;this.#e.has(e.uuid)?(t=this.#e.get(e.uuid),t.component=e,t.children=[]):(t={component:e,children:[],changes:new Ve(e.uuid),propIsEqual:void 0},this.#e.set(e.uuid,t)),t.changes.create(e.token,e.parent?.uuid,e.order,e.autoDestructionOnParentRemoval),e.parent?(this.addToChildren(e.parent,e),t.changes.setParent(e.parent.uuid)):this.#n(e,this.#t),this.#o=void 0}hasComponent(e){return this.#e.has(e.uuid)}hasComponents(){return this.#e.size>0}isRootComponent(e){return this.#t.includes(e.uuid)}destroyComponent(e){if(this.hasComponent(e)){let t=this.#e.get(e.uuid);t.children.slice(0).forEach(i=>this.#e.get(i)?.component.removeFromParent()),t.changes.destroy(),this.#o=void 0}}getChildren(e){return this.#e.get(e.uuid)?.children.map(t=>this.#e.get(t).component)??[]}removeFromParent(e,t){if(this.hasComponent(t)){let i=this.#e.get(e),r=this.#e.get(t.uuid),n=r.children.indexOf(e);n!==-1&&(r.children.splice(n,1),i.changes.setParent(void 0)),this.#n(i.component,this.#t),this.#o=void 0}}moveToRoot(e){let t=this.#e.get(e);t&&(t.changes?.setParent(void 0),this.#n(t.component,this.#t)),this.#o=void 0}changeToken(e,t){this.#e.get(e.uuid)?.changes.changeToken(t)}isChildOf(e,t){return this.hasComponent(t)?this.#e.get(t.uuid).children.includes(e.uuid):!1}addToChildren(e,t){let i=this.#e.get(e.uuid);if(i)this.#n(t,i.children),this.#e.get(t.uuid)?.changes.setParent(e.uuid),ce(this.#t,t.uuid),this.#o=void 0;else throw new Error(`the view component ${e.uuid} cannot have a child added to it because the component do not exist!`)}removeSubTree(e){let t=this.#e.get(e);t&&(t.children.slice(0).forEach(i=>this.removeSubTree(i)),this.destroyComponent(t.component),this.#r(e))}setProperty(e,t,i,r){let n=this.#e.get(e.uuid);return n!=null?(r!=null?(n.propIsEqual??=new Map,n.propIsEqual.set(t,r)):n.propIsEqual?.has(t)&&n.propIsEqual.delete(t),n.changes.changeProperty(t,i,r)):!1}removeProperty(e,t){this.#e.get(e.uuid)?.changes.removeProperty(t)}changeOrder(e){if(e.parent){let t=this.#e.get(e.parent.uuid);ce(t.children,e.uuid),this.#n(e,t.children)}else ce(this.#t,e.uuid),this.#n(e,this.#t);this.#e.get(e.uuid)?.changes.changeOrder(e.order),this.#o=void 0}traverseLevelOrderBFS(){return this.#a().map(e=>e.component)}dispatchShadowObjectsEvent(e,t,i,r){this.#e.get(e.uuid)?.changes.createEvent(t,i,r)}broadcastEvent(e,t=void 0){for(let i of this.traverseLevelOrderBFS())i.dispatchEvent(e,t,!1)}dispatchMessage(e,t,i=void 0,r=!1){this.#e.get(e)?.component.dispatchEvent(t,i,r)}dispatchReRequestParentRoots(){for(let e of this.#t)this.dispatchMessage(e,s.ReRequestParentRoots)}buildChangeTrails(e=!0){let t=[];if(!this.hasComponents())return t;let i=this.#i();for(let r of i)r.buildChangeTrail(t,se.StructuralChanges);for(let r of i)r.buildChangeTrail(t,se.ContentUpdates);for(let r of i)r.buildChangeTrail(t,se.Removal),(r.isDestroyed||r.isNew&&!r.isCreated)&&this.#r(r.uuid),e&&r.clear();return this.#s.write(t),t}reCreateChanges(){if(!this.#s.isEmpty()){this.buildChangeTrails(!1);for(let[e,t]of this.#s){let i=this.#e.get(e);if(i){let r=new Ve(e);if(r.create(t.token,t.parentUuid,t.order,t.autoDestructionOnParentRemoval),t.properties)for(let[n,o]of t.properties)r.changeProperty(n,o,i.propIsEqual?.get(n));i.changes.transferEventsTo(r),i.changes.clear(),i.changes=r}}this.#s.clear(),this.broadcastEvent(oi)}}clear(){if(this.#o=void 0,this.#s.clear(),this.#t.slice(0).forEach(e=>this.removeSubTree(e)),this.#t.length!==0)throw new Error("component-context panic: #rootComponents is not empty!");if(this.#e.size!==0)throw new Error("component-context panic: #components is not empty!")}#r(e){this.#e.has(e)&&(this.#e.delete(e),ce(this.#t,e),this.#o=void 0)}#i(){return this.#a().filter(e=>e.changes.hasChanges()).map(e=>e.changes)}#n(e,t){if(t.length===0){t.push(e.uuid);return}if(t.includes(e.uuid))return;let i=t.length,r=new Array(i);if(r[0]=this.#e.get(t[0]).component,e.order<r[0].order){t.unshift(e.uuid);return}if(i===1){t.push(e.uuid);return}let n=i-1;if(r[n]=this.#e.get(t[n]).component,e.order>=r[n].order){t.push(e.uuid);return}if(i===2){t.splice(1,0,e.uuid);return}for(let o=n-1;o>=1;o--)if(r[o]=this.#e.get(t[o]).component,e.order>=r[o].order){t.splice(o+1,0,e.uuid);return}}#o;#a(){if(this.#o)return this.#o;let e=new Map,t=(i,r)=>{let n=this.#e.get(i);if(n!=null){e.has(r)?e.get(r).push(n):e.set(r,[n]);for(let o of n.children)t(o,r+1)}};return this.#t.forEach(i=>t(i,0)),this.#o=Array.from(e.entries()).sort((i,r)=>i[0]-r[0]).flatMap(([,i])=>i),this.#o}};function Ue(s){return function(e,t){let i=s?.name||t.name,r=!!(s?.readAsValue??!1);return{get(){let n=U(this,i);if(n)return r?n.value:n.get()},set(n){U(this,i)?.set(n)},init(n){let o=p(n,s);return ri(this,i,o),te.findOrCreate(this).attachSignalByName(i,o),o.value}}}}var z="ConsoleLogger",I=`${z}Storage`,Rr=!!(globalThis.location?.host?.startsWith("localhost")??!1),qe="localStorage"in globalThis,Ot=Symbol.for(z),wi=!1,Ci=s=>{if(typeof s=="boolean")return s;switch(s.toLowerCase()){case"true":case"yes":case"on":return!0;default:return!1}},ps=s=>[qe?z:void 0,...Array.isArray(s)?s:[s]].filter(Boolean).join(".");function fs(s,e=void 0,t){let i=ps(s),r=qe?localStorage.getItem(i):globalThis[I]?.[i];return r!=null?e(r):t}function Ge(s,e){qe?localStorage.setItem(ps(s),e):(globalThis[I]==null&&(globalThis[I]={},console.debug(`${z}: Initialize`,{[I]:globalThis[I]})),globalThis[I][ps(s)]=e)}var D=class s{constructor(e){this.enable=!0,this.namespace=(e||"").trim()||z,wi||(s.loadConfig(),wi=!0);let t=[this.namespace,"enable"];this.enable=fs(t,Ci,this.enable),Ge(t,qe?this.enable?"true":"false":this.enable)}static{this.sharedConfig={enable:Rr,debug:!1,info:!0,warn:!0,"styles.debug":"color: #111; background: #999; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em","styles.info":"color: #020; background: #8a8; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em","styles.warn":"color: #fa0; background: #a98; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em","styles.error":"color: #ff0; background: #a00; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em"}}static get isEnabled(){return s.sharedConfig.enable}static get isDebug(){return s.sharedConfig.enable&&s.sharedConfig.debug}static{this.sharedStyles={get debug(){return s.sharedConfig["styles.debug"]},set debug(e){s.sharedConfig["styles.debug"]=e},get info(){return s.sharedConfig["styles.info"]},set info(e){s.sharedConfig["styles.info"]=e},get warn(){return s.sharedConfig["styles.warn"]},set warn(e){s.sharedConfig["styles.warn"]=e},get error(){return s.sharedConfig["styles.error"]},set error(e){s.sharedConfig["styles.error"]=e}}}static loadConfig(){qe?(["enable","debug","info","warn"].forEach(e=>{this.sharedConfig[e]=fs(e,Ci,this.sharedConfig[e])}),["debug","info","warn","error"].forEach(e=>{this.sharedStyles[e]=fs(["styles",e],void 0,this.sharedStyles[e])}),s.isDebug&&console.debug(`${z}: Load config from localStorage`,s.sharedConfig),globalThis[z]?.[Ot]||(globalThis[z]??={[Ot]:!0,get enable(){return s.sharedConfig.enable},set enable(e){s.sharedConfig.enable=e,Ge("enable",e?"true":"false")},get debug(){return s.sharedConfig.debug},set debug(e){s.sharedConfig.debug=e,Ge("debug",e?"true":"false")},get info(){return s.sharedConfig.info},set info(e){s.sharedConfig.info=e,Ge("info",e?"true":"false")},get warn(){return s.sharedConfig.warn},set warn(e){s.sharedConfig.warn=e,Ge("warn",e?"true":"false")}})):globalThis[I]?.[Ot]||(globalThis[I]={[Ot]:!0,...s.sharedConfig,...globalThis[I]},s.sharedConfig=globalThis[I],s.isDebug&&console.debug(`${z}: Load config from ${I}`,globalThis[I]))}get isEnabled(){return this.enable&&s.sharedConfig.enable}get isDebug(){return this.isEnabled&&s.sharedConfig.debug}get isInfo(){return this.isEnabled&&s.sharedConfig.info}get isWarn(){return this.isEnabled&&s.sharedConfig.warn}debug(...e){this.#e("debug",s.sharedStyles.debug,e)}info(...e){this.#e("info",s.sharedStyles.info,e)}warn(...e){this.#e("warn",s.sharedStyles.warn,e)}error(...e){this.#e("error",s.sharedStyles.error,e)}#e(e,t,i){console[e](`%c${this.namespace}`,t,...i)}};var Lr=Object.create,vs=Object.defineProperty,Dr=Object.getOwnPropertyDescriptor,Si=(s,e)=>(e=Symbol[s])?e:Symbol.for("Symbol."+s),Le=s=>{throw TypeError(s)},Nr=(s,e,t)=>e in s?vs(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,Ei=(s,e)=>vs(s,"name",{value:e,configurable:!0}),_r=s=>[,,,Lr(s?.[Si("metadata")]??null)],ki=["class","method","getter","setter","accessor","field","value","get","set"],He=s=>s!==void 0&&typeof s!="function"?Le("Function expected"):s,$r=(s,e,t,i,r)=>({kind:ki[s],name:e,metadata:i,addInitializer:n=>t._?Le("Already initialized"):r.push(He(n||null))}),Ai=(s,e)=>Nr(e,Si("metadata"),s[3]),xt=(s,e,t,i)=>{for(var r=0,n=s[e>>1],o=n&&n.length;r<o;r++)e&1?n[r].call(t):i=n[r].call(t,i);return i},Pi=(s,e,t,i,r,n)=>{var o,a,f,m,P,c=e&7,j=!!(e&8),C=!!(e&16),M=c>3?s.length+1:c?j?1:2:0,l=ki[c+5],h=c>3&&(s[M-1]=[]),d=s[M]||(s[M]=[]),u=c&&(!C&&!j&&(r=r.prototype),c<5&&(c>3||!C)&&Dr(c<4?r:{get[t](){return b(this,n)},set[t](v){return $(this,n,v)}},t));c?C&&c<4&&Ei(n,(c>2?"set ":c>1?"get ":"")+t):Ei(r,t);for(var g=i.length-1;g>=0;g--)m=$r(c,t,f={},s[3],d),c&&(m.static=j,m.private=C,P=m.access={has:C?v=>Wr(r,v):v=>t in v},c^3&&(P.get=C?v=>(c^1?b:Mt)(v,r,c^4?n:u.get):v=>v[t]),c>2&&(P.set=C?(v,B)=>$(v,r,B,c^4?n:u.set):(v,B)=>v[t]=B)),a=(0,i[g])(c?c<4?C?n:u[l]:c>4?void 0:{get:u.get,set:u.set}:r,m),f._=1,c^4||a===void 0?He(a)&&(c>4?h.unshift(a):c?C?n=a:u[l]=a:r=a):typeof a!="object"||a===null?Le("Object expected"):(He(o=a.get)&&(u.get=o),He(o=a.set)&&(u.set=o),He(o=a.init)&&h.unshift(o));return c||Ai(s,r),u&&vs(r,t,u),C?c^4?n:u:r},ms=(s,e,t)=>e.has(s)||Le("Cannot "+t),Wr=(s,e)=>Object(e)!==e?Le('Cannot use the "in" operator on this value'):s.has(e),b=(s,e,t)=>(ms(s,e,"read from private field"),t?t.call(s):e.get(s)),G=(s,e,t)=>e.has(s)?Le("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(s):e.set(s,t),$=(s,e,t,i)=>(ms(s,e,"write to private field"),i?i.call(s,t):e.set(s,t),t),Mt=(s,e,t)=>(ms(s,e,"access private method"),t),Ti,Oi,T,re,Re,Qe,Ye,ke,de,bs,ws,Rt,gs,Ke,ys,xi;Oi=[Ue()],Ti=[Ue()];var fe=class ue{constructor(){G(this,Ke),G(this,T),G(this,re),G(this,Re,!1),G(this,Qe,!1),G(this,Ye,!1),G(this,ke),this.logger=new D("ShadowEnv"),this.ns$=p(),G(this,bs,xt(de,8,this,!1)),xt(de,11,this),G(this,ws,xt(de,12,this,!1)),xt(de,15,this),G(this,Rt,!1),this.ready=async()=>this.isReady?this:Ae(this,ue.ContextCreated),G(this,gs,()=>{b(this,Re)&&Mt(this,Ke,ys).call(this)});let e=this;ee(e,ue.ContextCreated),w(e,ue.ContextLost,Q.AAA,()=>{he(e,ue.ContextCreated)}),S(()=>{if(this.viewReady&&this.proxyReady)return this.view.reCreateChanges(),y(e,ue.ContextCreated,e),b(this,Qe)&&($(this,Qe,!1),Mt(this,Ke,ys).call(this)),()=>{y(e,ue.ContextLost,e)}},[U(this,"viewReady"),U(this,"proxyReady")])}static get(e){if(e!=null)return globalThis.__shadowEnvs?.get(e)}get isDestroyed(){return b(this,Rt)}get view(){return b(this,T)}set view(e){e!==b(this,T)&&(b(this,T)&&b(this,T).ns&&globalThis.__shadowEnvs&&globalThis.__shadowEnvs.delete(b(this,T).ns),$(this,T,e??void 0),b(this,T)&&b(this,T).ns&&(globalThis.__shadowEnvs??=new Map,globalThis.__shadowEnvs.has(b(this,T).ns)&&globalThis.__shadowEnvs.get(b(this,T).ns)!==this&&this.logger.isWarn&&this.logger.warn("overwrite a namespace already in use",b(this,T).ns,globalThis.__shadowEnvs.get(b(this,T).ns)),globalThis.__shadowEnvs.set(b(this,T).ns,this)),this.viewReady=!!e)}get envProxy(){return b(this,re)}set envProxy(e){if(e!==b(this,re)){let t=b(this,re);$(this,re,e??void 0),b(this,re)&&(b(this,re).onMessageToView=Mt(this,Ke,xi).bind(this)),t&&t.destroy(),this.proxyReady=!1,e?.start().then(()=>{this.proxyReady=!0}).catch(i=>{this.logger.error("failed to start envProxy",i),this.proxyReady=!1})}}get isReady(){return!!(b(this,T)&&b(this,re)&&this.proxyReady&&!this.isDestroyed)}sync(){if(!this.isReady){$(this,Qe,!0);return}b(this,Re)||($(this,Re,!0),queueMicrotask(b(this,gs)))}syncWait(){return $(this,Ye,!0),this.sync(),b(this,ke)?b(this,ke):($(this,ke,Ae(this,ue.AfterSync).then(e=>($(this,ke,void 0),e))),b(this,ke))}destroy(){let e=b(this,T)?.ns;this.envProxy?.destroy(),this.envProxy=void 0,this.view=void 0,e&&globalThis.__shadowEnvs.has(e)&&globalThis.__shadowEnvs.get(e)===this&&globalThis.__shadowEnvs.delete(e),ze(this),A(this),$(this,Rt,!0),Object.freeze(this)}};de=_r(null);T=new WeakMap;re=new WeakMap;Re=new WeakMap;Qe=new WeakMap;Ye=new WeakMap;ke=new WeakMap;bs=new WeakMap;ws=new WeakMap;Rt=new WeakMap;gs=new WeakMap;Ke=new WeakSet;ys=async function(){if($(this,Re,!1),this.isReady){let s=this.view.buildChangeTrails();if(s.length>0)try{let e=b(this,Ye);$(this,Ye,!1),await this.envProxy.applyChangeTrail(s,e)}catch(e){this.logger.error("failed to apply change trail",e)}finally{y(this,fe.AfterSync,s)}}};xi=function(s){this.logger.isDebug&&this.logger.debug("onMessageToView",s.type,s.data),this.view?.dispatchMessage(s.uuid,s.type,s.data,s.traverseChildren)};Pi(de,4,"viewReady",Oi,fe,bs);Pi(de,4,"proxyReady",Ti,fe,ws);Ai(de,fe);fe.AfterSync="afterSync";fe.ContextLost="contextLost";fe.ContextCreated="contextCreated";var Y=fe;var x=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],jr=()=>{let s=Math.random()*4294967295|0,e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,i=Math.random()*4294967295|0;return(x[s&255]+x[s>>8&255]+x[s>>16&255]+x[s>>24&255]+"-"+x[e&255]+x[e>>8&255]+"-"+x[e>>16&15|64]+x[e>>24&255]+"-"+x[t&63|128]+x[t>>8&255]+"-"+x[t>>16&255]+x[t>>24&255]+x[i&255]+x[i>>8&255]+x[i>>16&255]+x[i>>24&255]).toLowerCase()},Mi=()=>globalThis?.crypto?.randomUUID?.()??jr();var Je=class extends Error{constructor(e){super(e),this.name="ViewComponentError"}},Lt=class s{#e;#t;#s;#r;#i=0;#n;get uuid(){return this.#e}get token(){return this.#t}set token(e){e??=ie,e!==this.#t&&(this.#t=e,this.#s?.changeToken(this,e))}get parent(){return this.#r}set parent(e){if(e){if(e.#s!==this.#s)throw new Je("cannot set parent from different context");e.addChild(this)}else this.removeFromParent()}get context(){return this.#s}set context(e){this.#s!=e&&(this.#s&&this.destroy(),this.#s=e,e&&e.addComponent(this))}get order(){return this.#i}set order(e){let t=this.#i;this.#i=e??0,t!==this.#i&&this.#s.changeOrder(this)}get autoDestructionOnParentRemoval(){return this.#n}constructor(e,t){O(this),t instanceof s&&(t={parent:t}),this.#e=t?.uuid??Mi(),this.#t=e,this.#i=t?.order??0,this.#r=t?.parent,this.#n=t?.autoDestructionOnParentRemoval??!1;let i=t?.context??F.get();if(this.#r&&this.#r.#s!==i)throw new Je("cannot set parent from different context");this.context=i}isChildOf(e){return this.#r===e}removeFromParent(){this.#r?(this.#s?.removeFromParent(this.uuid,this.#r),this.#r=void 0):this.#s?.moveToRoot(this.uuid)}addChild(e){if(e.#s!==this.#s)throw new Je("cannot add a child from another context");e.isChildOf(this)||(e.removeFromParent(),e.#r=this,this.#s.addToChildren(this,e))}setProperty(e,t,i){this.#s.setProperty(this,e,t,i)}removeProperty(e){this.#s.removeProperty(this,e)}dispatchShadowObjectsEvent(e,t,i){this.#s.dispatchShadowObjectsEvent(this,e,t,i)}dispatchEvent(e,t,i){if(y(this,e,t),i)for(let r of this.#s.getChildren(this))r.dispatchEvent(e,t,i)}destroy(){this.removeFromParent(),this.#s?.destroyComponent(this),this.#s=void 0}};var Xe=new Set(["on","true","yes","local","1"]);var Ri=s=>Se(s.getAttribute("ns")),et=(s,e)=>{if(s.hasAttribute(e)){let t=s.getAttribute(e)?.trim()?.toLowerCase()||"1";return Xe.has(t)}return!1};var Li=(s,e)=>{e.set(Ri(s))},Cs=new Set,Es=!1,Fr=s=>{Cs.add(s),Es||(Es=!0,queueMicrotask(()=>{Es=!1;for(let e of Cs)Y.get(e)?.sync();Cs.clear()}))},pe=class extends HTMLElement{constructor(){super(),this.isShaeElement=!0,this.ns$=p(Ee),this.ns$.onChange(e=>{typeof e=="string"&&e.length>0?this.getAttribute("ns")!==e&&this.setAttribute("ns",e):this.removeAttribute("ns")}),Li(this,this.ns$)}static{this.observedAttributes=["ns"]}get ns(){return this.ns$.value}set ns(e){typeof e=="symbol"?this.ns$.set(e):this.ns$.set(Se(e))}attributeChangedCallback(e){e==="ns"&&Li(this,this.ns$)}syncShadowObjects(){Fr(this.ns)}};var Dt=class extends pe{constructor(){super(),this.isShaeEntElement=!0,this.componentContext$=p(),this.viewComponent$=p(),this.token$=p(),this.forwardCustomEvents$=p(!1),this.#n=!0,this.#y=()=>{let e=this.findShadowRootHost();e!=null&&this.dispatchEvent(new CustomEvent(lt,{bubbles:!0,composed:!0,detail:{requester:this,shadowRootHost:e}}))},this.#p=e=>{let t=e.detail?.requester;if(t===this||!t?.isShaeEntElement||t.ns!==this.ns)return;e.detail?.shadowRootHost&&this.#c()},this.#g=e=>{let t=e.detail?.requester;t!==this&&t?.isShaeEntElement&&t.ns===this.ns&&(e.stopPropagation(),t.#h(this))},this.ns$.onChange(e=>{this.componentContext$.set(F.get(e)),this.isConnected&&this.#c()}),this.#d(),this.token$.onChange(e=>{e==null?this.removeAttribute(oe):this.getAttribute(oe)!==e&&this.setAttribute(oe,e)}),this.#f(),this.forwardCustomEvents$.onChange(e=>{if(!e)this.removeAttribute(q);else if(e===!0)this.hasAttribute(q)||this.setAttribute(q,"");else{let t=Array.from(e).join(",");this.getAttribute(q)!==t&&this.setAttribute(q,t)}}),S(()=>{let e=this.viewComponent$.get();if(e){let t=w(e,F.ReRequestParentRoots,()=>this.#l()),i=e.context?.ns;return()=>{t(),e.destroy(),i&&i!==this.ns?Y.get(i)?.sync():this.syncShadowObjects()}}}),S(()=>{let e=this.viewComponent$.get();if(!e)return;let t=Object.hasOwn(e,"dispatchEvent")?Object.getPrototypeOf(e).dispatchEvent:e.dispatchEvent,i=this.forwardCustomEvents$.get();if(!i)return;let r=i instanceof Set?i:void 0,n=(o,a,f)=>{t.call(e,o,a,f),o!==F.ReRequestParentRoots&&(r&&!r.has(o)||this.dispatchEvent(new CustomEvent(o,{bubbles:!0,composed:!0,detail:a})))};return Object.defineProperty(e,"dispatchEvent",{value:n,writable:!0,configurable:!0}),()=>{Object.hasOwn(e,"dispatchEvent")&&e.dispatchEvent===n&&delete e.dispatchEvent}}),this.token$.onChange(e=>{let t=this.viewComponent$.value;t&&(t.token=e,this.syncShadowObjects())}),this.style.display="contents"}static{this.observedAttributes=[...pe.observedAttributes,oe,q]}get componentContext(){return this.componentContext$.value}get viewComponent(){return this.viewComponent$.value}get uuid(){return this.viewComponent?.uuid}get token(){return this.token$.value}set token(e){this.token$.set(e)}#e;#t;#s(){this.#t?.();let e=this.componentContext$.onChange(t=>{let i=this.token$.value,r=this.viewComponent$.value;r?r.context=t:t&&(r=new Lt(i,{context:t}),this.viewComponent$.set(r)),this.syncShadowObjects()});this.#t=()=>{e()}}#r(){this.#t?.(),this.#t=void 0}#i;#n;findShadowRootHost(){if(this.#n){this.#n=!1;let e=this;for(;e;){if(e.parentElement==null){let t=e.parentNode;t&&(this.#i=t.host);break}e=e.parentElement}}return this.#i}getParentNodeForObserver(){let e=this.parentNode;return e||(e.host??e)}connectedCallback(){this.#n=!0,this.addEventListener("slotchange",this.#y,{capture:!1,passive:!1}),this.addEventListener(ht,this.#g,{capture:!1,passive:!1}),this.#s(),Et(()=>this.#d()),Et(()=>this.#f()),this.componentContext==null&&this.componentContext$.set(F.get(this.ns)),this.#c(),this.componentContext?.dispatchReRequestParentRoots(),this.#o(),this.syncShadowObjects()}#o(){this.#a();let e=this.getParentNodeForObserver();e&&(this.#e=new MutationObserver((t,i)=>{for(let{target:r,removedNodes:n}of t)if(r===e){for(let o of n)if(o===this){this.#a(),this.onParentChanged(this.getParentNodeForObserver(),e);break}}}),this.#e.observe(e,{childList:!0,subtree:!1,attributes:!1}))}onParentChanged(e,t){this.#h(void 0),this.#c()}#a(){this.#e?.disconnect(),this.#e=void 0}attributeChangedCallback(e){super.attributeChangedCallback(e),e===oe?this.#d():e===q&&this.#f()}disconnectedCallback(){this.#n=!0,this.#a(),this.removeEventListener("slotchange",this.#y,{capture:!1}),this.removeEventListener(ht,this.#g,{capture:!1}),this.#h(void 0),this.componentContext$.set(void 0),this.syncShadowObjects(),this.#r()}#l(){this.isConnected&&(this.#h(void 0),this.#c())}#c(){this.dispatchEvent(new CustomEvent(ht,{bubbles:!0,composed:!0,detail:{requester:this}}))}#u;#h(e){if(this.entParentNode!==e)if(this.entParentNode&&this.entParentNode.removeEventListener(lt,this.#p,{capture:!1}),this.entParentNode=e,this.entParentNode&&this.entParentNode.addEventListener(lt,this.#p,{capture:!1,passive:!1}),this.#u?.(),this.#u=void 0,e){let t=S(()=>{let i=this.viewComponent$.get();if(i){let r=e.viewComponent$.get();i.parent=r&&r.context===i.context?r:void 0,i.parent==null&&queueMicrotask(()=>{this.#c()}),this.syncShadowObjects()}});this.#u=()=>t.destroy()}else{let t=this.viewComponent;t.parent&&(t.parent=void 0,this.syncShadowObjects())}}#y;#p;#g;#d(){if(this.hasAttribute(oe)){let e=this.getAttribute(oe)?.trim()||void 0;this.token$.set(e)}}#f(){if(this.hasAttribute(q)){let e=this.getAttribute(q);!e||e.trim().length===0?this.forwardCustomEvents$.set(!0):this.forwardCustomEvents$.set(new Set(e.split(",").map(t=>t.trim()).filter(t=>t.length>0)))}else this.forwardCustomEvents$.set(!1)}};customElements.define(ct,Dt);var Ir=s=>{let e=s.parentElement;for(;e;){if(e.isShaeEntElement)return e;e=e.parentElement}},zr=new Set(["string","text","number","bigint","float","int","integer","hex","hexadecimal","oct","octal","bin","binary","bool","boolean","[]","text[]","string[]","number[]","float[]","int[]","integer[]","hex[]","hexadecimal[]","oct[]","octal[]","bin[]","binary[]","bool[]","boolean[]","int8array","uint8array","uint8clampedarray","int16array","uint16array","int32array","uint32array","float32array","float64array","bigint64array","biguint64array","json"]),Nt=class extends HTMLElement{constructor(){super(),this.isShaeEntElement=!0,this.entNode$=p(),this.viewComponent$=p(),this.name$=p(),this.valueIn$=p(),this.valueOut$=p(),this.type$=p(),this.shouldTrim$=p(!0),this.logger=new D("ShaePropElement"),this.#e=()=>{this.entNode$.set(Ir(this))},this.#t=()=>{queueMicrotask(()=>{this.isConnected||this.entNode$.set(void 0)})},this.#s=()=>{this.name$.set(this.getAttribute(ft)?.trim()??void 0)},this.#r=()=>{this.valueIn$.set(this.getAttribute(pt))},this.#i=()=>{let e=this.getAttribute(gt)?.trim().toLowerCase();e&&!zr.has(e)&&(this.logger.isWarn&&this.logger.warn(`[${this.name}] unknown type "${e}"`,{shaeProp:this}),e=void 0),this.type$.set(e)},this.#n=()=>{this.shouldTrim$.set(!et(this,yt))},this.entNode$.onChange(e=>{if(e){let t=_(e.viewComponent$,this.viewComponent$);return()=>{t.destroy()}}else this.viewComponent$.set(void 0)}),S(()=>{let e=this.viewComponent$.get();if(e){let t=this.name$.get();if(t){let i=this.valueOut$.get();this.logger.isDebug&&this.logger.debug(`[${this.name}] view-component set-property`,t,i,e.uuid,{viewComponent:e,shaeProp:this}),e.setProperty(t,i),this.isConnected&&this.entNode?.syncShadowObjects()}}}),S(()=>{let e=this.type$.get(),t=this.shouldTrim$.get(),i=this.valueIn$.get();if(t&&typeof i=="string"&&(i=i.trim()),i=i||void 0,i!=null&&typeof i=="string"&&e)switch(e){case"string":case"text":break;case"number":i=Number(i);break;case"bigint":i=BigInt(i);break;case"float":i=parseFloat(i);break;case"int":case"integer":i=parseInt(i,10);break;case"hex":case"hexadecimal":i=parseInt(i,16);break;case"oct":case"octal":i=parseInt(i,8);break;case"bin":case"binary":i=parseInt(i,2);break;case"bool":case"boolean":i=Xe.has(i.toLowerCase());break;case"[]":case"text[]":case"string[]":i=i.split(/\W+/);break;case"number[]":i=i.split(/\s+/).map(r=>Number(r));break;case"float[]":i=i.split(/\s+/).map(r=>parseFloat(r));break;case"int[]":case"integer[]":i=i.split(/\s+/).map(r=>parseInt(r));break;case"hex[]":case"hexadecimal[]":i=i.split(/\W+/).map(r=>parseInt(r,16));break;case"oct[]":case"octal[]":i=i.split(/\W+/).map(r=>parseInt(r,8));break;case"bin[]":case"binary[]":i=i.split(/\W+/).map(r=>parseInt(r,2));break;case"bool[]":case"boolean[]":i=i.split(/\W+/).map(r=>Xe.has(r.toLowerCase()));break;case"int8array":i=new Int8Array(i.split(/\W+/).map(r=>Number(r)));break;case"uint8array":i=new Uint8Array(i.split(/\W+/).map(r=>Number(r)));break;case"uint8clampedarray":i=new Uint8ClampedArray(i.split(/\W+/).map(r=>Number(r)));break;case"int16array":i=new Int16Array(i.split(/\W+/).map(r=>Number(r)));break;case"uint16array":i=new Uint16Array(i.split(/\W+/).map(r=>Number(r)));break;case"int32array":i=new Int32Array(i.split(/\W+/).map(r=>Number(r)));break;case"uint32array":i=new Uint32Array(i.split(/\W+/).map(r=>Number(r)));break;case"float32array":i=new Float32Array(i.split(/\s+/).map(r=>Number(r)));break;case"float64array":i=new Float64Array(i.split(/\s+/).map(r=>Number(r)));break;case"bigint64array":i=new BigInt64Array(i.split(/\W+/).map(r=>BigInt(r)));break;case"biguint64array":i=new BigUint64Array(i.split(/\W+/).map(r=>BigInt(r)));break;case"json":i=JSON.parse(i);break;default:this.logger.isWarn&&this.logger.warn(`[${this.name}] unknown type "${e}"`,{value:i,shaeProp:this})}this.valueOut$.set(i)}),N(()=>{this.#s(),this.#r(),this.#i(),this.#n()}),this.style.display="contents"}static{this.observedAttributes=[ft,pt,gt,yt]}get name(){return this.name$.value}get value(){return this.valueOut$.value}set value(e){this.valueIn$.set(e)}get shouldTrim(){return this.shouldTrim$.value}get entNode(){return this.entNode$.value}set entNode(e){this.entNode$.set(e)}get viewComponent(){return this.viewComponent$.value}connectedCallback(){N(()=>{this.#e(),this.#s(),this.#r(),this.#i(),this.#n()})}attributeChangedCallback(e){switch(e){case ft:this.#s();break;case pt:this.#r();break;case gt:this.#i();break;case yt:this.#n();break}}disconnectedCallback(){this.#t()}#e;#t;#s;#r;#i;#n};customElements.whenDefined(ct).then(()=>customElements.define(_s,Nt));var Ss=null,tt=class s{static{this.OnFrame=Symbol("onFrame")}#e=0;#t=0;constructor(){if(Ss)return Ss;O(this),Ss=this}start(e){if(e!=null)return es(this)===0&&this.#r(),w(this,s.OnFrame,e),this.#t++,()=>{this.stop(e)}}stop(e){A(this,s.OnFrame,e),es(this)===0&&this.#i()}#s=e=>{y(this,s.OnFrame,e),this.#r()};#r(){this.#e=requestAnimationFrame(this.#s)}#i(){cancelAnimationFrame(this.#e),this.#e=0}};async function ks(s,e,t,i=!0){if(t.has(e)){console.warn("importModule: skipping already imported module",e);return}else t.add(e);e.extends&&await Promise.all(e.extends.map(n=>ks(s,n,t,!1)));let{registry:r}=s;if(e.define)for(let[n,o]of Object.entries(e.define))r.define(n,o);if(e.routes)for(let[n,o]of Object.entries(e.routes))r.appendRoute(n,o);await(e.initialize?.({define:(n,o)=>r.define(n,o),kernel:s,registry:r})??Promise.resolve()),i&&s.upgradeEntities()}var _t=s=>s??void 0;var As=Symbol("onCreate"),J=Symbol("onDestroy"),Di=Symbol("onParentChanged"),$t=Symbol("onViewEvent");var Br=Object.create,Ps=Object.defineProperty,Vr=Object.getOwnPropertyDescriptor,$i=(s,e)=>(e=Symbol[s])?e:Symbol.for("Symbol."+s),Ne=s=>{throw TypeError(s)},Ur=(s,e,t)=>e in s?Ps(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,Ni=(s,e)=>Ps(s,"name",{value:e,configurable:!0}),Gr=s=>[,,,Br(s?.[$i("metadata")]??null)],Wi=["class","method","getter","setter","accessor","field","value","get","set"],st=s=>s!==void 0&&typeof s!="function"?Ne("Function expected"):s,qr=(s,e,t,i,r)=>({kind:Wi[s],name:e,metadata:i,addInitializer:n=>t._?Ne("Already initialized"):r.push(st(n||null))}),ji=(s,e)=>Ur(e,$i("metadata"),s[3]),_i=(s,e,t,i)=>{for(var r=0,n=s[e>>1],o=n&&n.length;r<o;r++)e&1?n[r].call(t):i=n[r].call(t,i);return i},Hr=(s,e,t,i,r,n)=>{var o,a,f,m,P,c=e&7,j=!!(e&8),C=!!(e&16),M=c>3?s.length+1:c?j?1:2:0,l=Wi[c+5],h=c>3&&(s[M-1]=[]),d=s[M]||(s[M]=[]),u=c&&(!C&&!j&&(r=r.prototype),c<5&&(c>3||!C)&&Vr(c<4?r:{get[t](){return W(this,n)},set[t](v){return rt(this,n,v)}},t));c?C&&c<4&&Ni(n,(c>2?"set ":c>1?"get ":"")+t):Ni(r,t);for(var g=i.length-1;g>=0;g--)m=qr(c,t,f={},s[3],d),c&&(m.static=j,m.private=C,P=m.access={has:C?v=>Qr(r,v):v=>t in v},c^3&&(P.get=C?v=>(c^1?W:ge)(v,r,c^4?n:u.get):v=>v[t]),c>2&&(P.set=C?(v,B)=>rt(v,r,B,c^4?n:u.set):(v,B)=>v[t]=B)),a=(0,i[g])(c?c<4?C?n:u[l]:c>4?void 0:{get:u.get,set:u.set}:r,m),f._=1,c^4||a===void 0?st(a)&&(c>4?h.unshift(a):c?C?n=a:u[l]=a:r=a):typeof a!="object"||a===null?Ne("Object expected"):(st(o=a.get)&&(u.get=o),st(o=a.set)&&(u.set=o),st(o=a.init)&&h.unshift(o));return c||ji(s,r),u&&Ps(r,t,u),C?c^4?n:u:r},Ts=(s,e,t)=>e.has(s)||Ne("Cannot "+t),Qr=(s,e)=>Object(e)!==e?Ne('Cannot use the "in" operator on this value'):s.has(e),W=(s,e,t)=>(Ts(s,e,"read from private field"),t?t.call(s):e.get(s)),Wt=(s,e,t)=>e.has(s)?Ne("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(s):e.set(s,t),rt=(s,e,t,i)=>(Ts(s,e,"write to private field"),i?i.call(s,t):e.set(s,t),t),ge=(s,e,t)=>(Ts(s,e,"access private method"),t),Fi,X,ye,nt,Os,ne,jt,it,De="value";Fi=[Ue({name:De})];var Z=class{constructor(e){Wt(this,ne),Wt(this,X,[]),Wt(this,ye),Wt(this,Os,_i(nt,8,this)),_i(nt,11,this),this.value$=void 0,ee(this,De),this.value$=U(this,De),this.value$.onChange(t=>y(this,De,t)),e&&this.add(...e)}add(...e){return W(this,X).push(...e),ge(this,ne,it).call(this),ge(this,ne,jt).call(this,e)}unshift(...e){return W(this,X).unshift(...e),ge(this,ne,it).call(this),ge(this,ne,jt).call(this,e)}remove(...e){ge(this,ne,jt).call(this,e)()}clear(){W(this,X).length=0,ge(this,ne,it).call(this)}dispose(){this.clear(),W(this,ye)?.destroy(),rt(this,ye,void 0),he(this,De),A(this),this.value$.destroy(),ze(this)}};nt=Gr(null);X=new WeakMap;ye=new WeakMap;Os=new WeakMap;ne=new WeakSet;jt=function(s){return()=>{for(let e of s){let t=W(this,X).indexOf(e);t!==-1&&W(this,X).splice(t,1)}ge(this,ne,it).call(this)}};it=function(){W(this,ye)?.destroy(),W(this,X).length===0?(rt(this,ye,void 0),this.value=void 0):(rt(this,ye,S(()=>{let s;for(let e of W(this,X)){let t=xe(e);if(t!=null){s=t;break}}this.value=s},W(this,X))),W(this,ye).run())};Hr(nt,4,"value",Fi,Z,Os);ji(nt,Z);Z.Value=De;var xs=new Map,Ms=!1,Kr=(s,e)=>{xs.set(s,e),Ms||(Ms=!0,queueMicrotask(()=>{Ms=!1;let t=Array.from(xs.entries());xs.clear();for(let[i,r]of t)i.set(r)}))},Ft=class{#e;#t;#s=new Pt;#r=new Map;#i=new Map;#n;#o;#a=new Set;#l=[];#c=0;get kernel(){return this.#e}get uuid(){return this.#t}get order(){return this.#c}set order(e){this.#c!==e&&(this.#c=e,this.#n&&this.parent.resortChildren())}get parentUuid(){return this.#n||void 0}set parentUuid(e){if(this.#n!==e){let t=e?this.#e.getEntity(e):void 0;this.removeFromParent(),this.#n=e||void 0,this.#o=t,this.#o&&this.#o.addChild(this),this.#p()}}get parent(){return!this.#o&&this.#n&&(this.#o=this.#e.getEntity(this.#n)),this.#o}set parent(e){this.parentUuid=e?.uuid}get hasParent(){return!!this.#n}get children(){return this.#l}constructor(e,t){this.#e=e,this.#t=t,k(this,J,Q.Min,this)}traverse(e){e(this);for(let t of this.#l)t.traverse(e)}[J](){this.#s.clear(),A(this),this.#h?.();for(let e of this.#i.values())e.cleanup(),e.signal.destroy();this.#i.clear();for(let e of this.#r.values())e.context.set(void 0),e.unsubscribePathValue(),e.unsubscribeFromParent?.(),e.valuePath.dispose(),e.inherited.destroy(),e.provide.destroy(),e.context.destroy();this.#n=void 0,this.#o=void 0,this.#a.clear(),this.#l.length=0}addChild(e){if(this.#l.length===0){this.#a.add(e.uuid),this.#l.push(e);return}if(this.#a.has(e.uuid))throw new Error(`child with uuid: ${e.uuid} already exists! parentUuid: ${this.uuid}`);this.#a.add(e.uuid),this.#l.push(e),this.resortChildren();for(let[,t]of e.#r)e.#v(t)}resortChildren(){this.#l.sort((e,t)=>e.order-t.order)}removeChild(e){this.#a.has(e.uuid)&&(this.#a.delete(e.uuid),this.#l.splice(this.#l.indexOf(e),1))}removeFromParent(){if(this.#o){this.#o.removeChild(this),this.#o=void 0,this.#n=void 0;for(let[,e]of this.#r)e.unsubscribeFromParent&&(e.unsubscribeFromParent(),e.unsubscribeFromParent=void 0);this.#y()}}#u=!1;#h;get autoDestructionOnParentRemoval(){return this.#u}set autoDestructionOnParentRemoval(e){this.#u!==e&&(this.#u=e,this.#p())}#y(){this.#h&&(this.#h(),this.#h=void 0)}#p(){this.#y(),this.#u&&this.#o&&(this.#h=k(this.#o,J,Q.Max,()=>{this.#h=void 0,this.#e.destroyEntity(this.#t)}))}reSubscribeToParentContexts(){for(let[,e]of this.#r)this.#v(e)}dispatchMessageToView(e,t,i,r=!1){this.#e.dispatchMessageToView({uuid:this.#t,type:e,data:t,transferables:i,traverseChildren:r})}dispatchViewEvents(e){for(let{type:t,data:i}of e)y(this,$t,t,i)}dispatchViewEvent(e,t){this.dispatchViewEvents([{type:e,data:t}])}#g(e){return this.#s.get(e)}getPropertyReader(e){return this.#g(e).get}getPropertyWriter(e){return this.#g(e).set}setProperties(e){this.clearTruthyPropsCache(),N(()=>{for(let[t,i]of e)this.setProperty(t,i)})}setProperty(e,t){this.getPropertyWriter(e)(t)}getProperty(e){return xe(this.getPropertyReader(e))}propKeys(){return Array.from(this.#s.keys())}propEntries(){return Array.from(this.#s.entries()).map(([e,t])=>[e,t.value])}#d;clearTruthyPropsCache(){this.#d=void 0}truthyProps(){if(this.#d)return this.#d.size?this.#d:void 0;let e=new Set;for(let[t,i]of this.#s.entries())if(typeof t=="string"){let r=i.value;r!=null&&r!==!1&&r!==""&&e.add(t)}return this.#d=e,e.size?e:void 0}hasContext(e){return this.#r.has(e)}useContext(e){return this.#f(e).context.get}useParentContext(e){return this.#f(e).inherited.get}provideContext(e){return this.#f(e).provide}provideGlobalContext(e){if(this.#i.has(e))return this.#i.get(e).signal;let t=this.#e.findOrCreateRootContext(e),i=p(),r=t.add(i);return this.#i.set(e,{cleanup:r,signal:i}),i}#f(e){if(this.#r.has(e))return this.#r.get(e);let t=p(),i=p(),r=p(),n=new Z([i,t]),o=w(n,Z.Value,f=>{Kr(r,f)}),a={name:e,inherited:t,provide:i,context:r,valuePath:n,unsubscribePathValue:o};return this.#r.set(e,a),this.#v(a),a}#v(e){if(e.unsubscribeFromParent?.(),e.unsubscribeFromParent=void 0,this.parent){let t=this.parent.#f(e.name),i=_(t.context,e.inherited);e.unsubscribeFromParent=i.destroy.bind(i)}else{let t=this.#e.findOrCreateRootContext(e.name),i=_(t.value$,e.inherited);e.unsubscribeFromParent=i.destroy.bind(i)}}};var Ii=s=>{let e=s.split("@").map(t=>t.trim());if(e.length===2&&e[1])return e[0]?{key:`${e[0]}@${e[1]}`,prop:e[1],token:e[0]}:{key:e[1],prop:e[1]}},It=(s,e)=>{for(let t of e)s.add(t)},Yr=(s,e)=>{if(s!=null)for(let t of s.constructors)e.add(t)},ot=class{static get(e){return e??Jr}#e=new Map;#t=new Map;#s=new Map;define(e,t){this.#e.has(e)?mi(this.#e.get(e).constructors,t):this.#e.set(e,{token:e,constructors:[t]})}appendRoute(e,t){let i=Ii(e);i?this.#s.has(i.key)?It(this.#s.get(i.key).routes,t):this.#s.set(i.key,{routes:new Set(t),token:i.token}):this.#t.has(e)?It(this.#t.get(e),t):this.#t.set(e,new Set(t))}clearRoute(e){let t=Ii(e);t?this.#s.delete(t.key):this.#t.delete(e)}findTokensByRoute(e,t){let i=new Set([e]),r=this.#t.has(e)?[...this.#t.get(e)]:[];for(;r.length;){let n=r.shift();i.has(n)||(i.add(n),this.#t.has(n)&&r.push(...Array.from(this.#t.get(n)).filter(o=>!i.has(o))))}if(t){for(let o of t)this.#s.has(o)&&It(i,this.#s.get(o).routes);let n;do{n=i.size;for(let o of new Set(i))for(let a of t){let f=`${o}@${a}`;this.#s.has(f)&&It(i,this.#s.get(f).routes)}}while(n!==i.size)}return i}findConstructors(e,t){let i=this.findTokensByRoute(e,t),r=new Set;for(let n of i)Yr(this.#e.get(n),r);return r.size>0?Array.from(r):void 0}hasToken(e){return this.#e.has(e)}hasRoute(e){return this.#t.has(e)}clear(){this.#e.clear(),this.#t.clear(),this.#s.clear()}},Jr=new ot;var zi=s=>s.displayName||s.name,Bi=!1,Vi=!1,Ui=!1,Gi=!1,qi=!1,zt=class{constructor(e){this.logger=new D("Kernel"),this.#e=new Map,this.#t=new Set,this.#i=!0,this.#n=new Map,O(this),this.registry=ot.get(e)}#e;#t;#s;#r;#i;#n;getEntity(e){let t=this.#e.get(e)?.entity;if(!t)throw new Error(`entity with uuid "${e}" not found!`);return t}hasEntity(e){return this.#e.has(e)}traverseLevelOrderBFS(e=!1){if(this.#i){let t=new Map,i=(r,n)=>{let o=this.getEntity(r);t.has(n)?t.get(n).push(o):t.set(n,[o]);for(let a of o.children)i(a.uuid,n+1)};this.#t.forEach(r=>{i(r,0)}),this.#s=Array.from(t.entries()).sort((r,n)=>r[0]-n[0]).flatMap(([,r])=>r),this.#r=this.#s.slice().reverse(),this.#i=!1}return e?this.#r:this.#s}getEntityGraph(){return Array.from(this.#t).map(e=>this.getEntityGraphNode(e))}getEntityGraphNode(e){if(!this.#e.has(e))return;let{token:t,entity:i}=this.#e.get(e);return{token:t,entity:i,props:Object.fromEntries(i.propEntries()),children:i.children.map(r=>this.getEntityGraphNode(r.uuid))}}upgradeEntities(){let e=new Map;for(let t of this.traverseLevelOrderBFS(!0))e.set(t.uuid,this.updateShadowObjects(t.uuid,2));for(let t of this.traverseLevelOrderBFS(!1))this.updateShadowObjects(t.uuid,1,e.get(t.uuid));e.clear()}run(e){this.logger.isDebug&&this.logger.debug("sync",e),N(()=>{for(let t of e.changeTrail)this.parse(t)})}parse(e){switch(e.type){case E.CreateEntities:this.createEntity(e.uuid,e.token,e.parentUuid,e.order,e.properties,e.autoDestructionOnParentRemoval),this.#i=!0;break;case E.DestroyEntities:this.destroyEntity(e.uuid),this.#i=!0;break;case E.SetParent:this.setParent(e.uuid,e.parentUuid,e.order),this.#i=!0;break;case E.UpdateOrder:this.updateOrder(e.uuid,e.order),this.#i=!0;break;case E.ChangeProperties:this.changeProperties(e.uuid,e.properties);break;case E.ChangeToken:this.changeToken(e.uuid,e.token);break;case E.SendEvents:this.dispatchEventsToEntity(e.uuid,e.events);break}}createEntity(e,t,i,r=0,n,o=!1){let a=new Ft(this,e);a.order=r;let f={token:t,entity:a,usedConstructors:new Map};this.#e.set(e,f),i&&(a.parentUuid=i),a.autoDestructionOnParentRemoval=o,a.hasParent||this.#t.add(e),n&&a.setProperties(n),this.createShadowObjects(e)}destroyEntity(e){if(!this.#e.has(e))return;let{entity:t,usedConstructors:i}=this.#e.get(e),r=[...t.children];for(let n of r)n.autoDestructionOnParentRemoval?this.destroyEntity(n.uuid):(n.removeFromParent(),this.#t.add(n.uuid));t.removeFromParent(),y(t,J,t),i.clear(),this.#e.delete(t.uuid),this.#t.delete(t.uuid),this.#i=!0}setParent(e,t,i=0){let r=this.getEntity(e);if(!(r.parentUuid===t&&r.order===i)){if(t&&!this.#e.has(t))throw new Error(`entity with uuid "${t}" not found!`);r.removeFromParent(),r.order=i,r.parentUuid=t,r.hasParent?this.#t.delete(e):this.#t.add(e),r.reSubscribeToParentContexts(),queueMicrotask(()=>{this.logger.isDebug&&this.logger.debug("entity.onParentChanged",{uuid:e,parentUuid:t,order:i,entity:r}),y(r,Di,r)})}}updateOrder(e,t){this.getEntity(e).order=t}dispatchEventsToEntity(e,t){this.getEntity(e)?.dispatchViewEvents(t)}changeProperties(e,t){this.getEntity(e).setProperties(t),this.updateShadowObjects(e)}changeToken(e,t){if(!this.#e.has(e))return;let i=this.#e.get(e);i.token!==t&&(i.token=t,this.updateShadowObjects(e))}dispatchMessageToView(e){queueMicrotask(()=>{y(this,Me,e)})}updateShadowObjects(e,t=0,i){let r=this.#e.get(e);i??=new Set(this.registry.findConstructors(r.token,r.entity.truthyProps()));let n=t===0||t===2,o=t===0||t===1;if(n){for(let[a,f]of r.usedConstructors)if(!i.has(a)){r.usedConstructors.delete(a);for(let m of f)this.destroyShadowObject(m,r.entity)}}if(o)for(let a of i)r.usedConstructors.has(a)||this.constructShadowObject(a,r);return i}constructShadowObject(e,t){let i=new Set,r=new Set,n=new Map,o=new Map,a=new Map,f=new Map,m=new Map,P=new Map,c=new Map,j=new Map,C=(l,h)=>{!qi&&h!=null&&typeof h=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "useProperty()" is now passed as {compare} argument. Please update your code accordingly.'),qi=!0);let d=typeof h=="function"?{compare:h}:h,u=c.get(l);if(u===void 0){u=p(void 0,d).get,c.set(l,u),j.set(l,d?.compare);let g=_(t.entity.getPropertyReader(l),u);r.add(g.destroy.bind(g))}else d?.compare!=null&&j.get(l)!==d.compare&&console.warn(`[shadow-objects] useProperty("${l}"): the cached signal already exists with a different (or no) {compare} function \u2014 the new options are ignored. Pass options only on the first call per property.`);return u},M=O(new e({entity:t.entity,provideContext(l,h,d){!Bi&&d!=null&&typeof d=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "provideContext()" is now passed as {compare} argument. Please update your code accordingly.'),Bi=!0);let u=typeof d=="function"?{compare:d}:d,g=m.get(l);if(g==null){let v=Ce(h),B=v?void 0:_t(h);if(g=p(B,u?.compare?{compare:u.compare}:void 0),v){let $e=_(h,g);r.add($e.destroy.bind($e))}let _e=_(g,t.entity.provideContext(l));r.add(_e.destroy.bind(_e)),m.set(l,g)}return g!=null&&(u?.clearOnDestroy??!0)&&r.add(()=>{g.set(void 0)}),g},provideGlobalContext(l,h,d){!Vi&&d!=null&&typeof d=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "provideGlobalContext()" is now passed as {compare} argument. Please update your code accordingly.'),Vi=!0);let u=typeof d=="function"?{compare:d}:d,g=P.get(l);if(g==null){let v=Ce(h),B=v?void 0:_t(h);if(g=p(B,u?.compare?{compare:u.compare}:void 0),v){let $e=_(h,g);r.add($e.destroy.bind($e))}let _e=_(g,t.entity.provideGlobalContext(l));r.add(_e.destroy.bind(_e)),P.set(l,g)}return g!=null&&(u?.clearOnDestroy??!0)&&r.add(()=>{g.set(void 0)}),g},useContext(l,h){!Ui&&h!=null&&typeof h=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "useContext()" is now passed as {compare} argument. Please update your code accordingly.'),Ui=!0);let d=typeof h=="function"?{compare:h}:h,u=n.get(l);if(u===void 0){u=p(void 0,d).get,n.set(l,u),o.set(l,d?.compare);let g=_(t.entity.useContext(l),u);r.add(g.destroy.bind(g))}else d?.compare!=null&&o.get(l)!==d.compare&&console.warn(`[shadow-objects] useContext("${String(l)}"): the cached signal already exists with a different (or no) {compare} function \u2014 the new options are ignored. Pass options only on the first call per context.`);return u},useParentContext(l,h){!Gi&&h!=null&&typeof h=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "useParentContext()" is now passed as {compare} argument. Please update your code accordingly.'),Gi=!0);let d=typeof h=="function"?{compare:h}:h,u=a.get(l);if(u===void 0){u=p(void 0,d).get,a.set(l,u),f.set(l,d?.compare);let g=_(t.entity.useParentContext(l),u);r.add(g.destroy.bind(g))}else d?.compare!=null&&f.get(l)!==d.compare&&console.warn(`[shadow-objects] useParentContext("${String(l)}"): the cached signal already exists with a different (or no) {compare} function \u2014 the new options are ignored. Pass options only on the first call per parent context.`);return u},dispatchMessageToView(l,h,d,u=!1){t.entity.dispatchMessageToView(l,h,d,u)},useProperty:C,useProperties(l){let h={};for(let d in l)Object.hasOwn(l,d)&&(h[d]=C(l[d]));return h},createResource(l,h){let d=p(),u=S(()=>{let g=_t(l());return d.set(g),g!==void 0&&h?()=>{h(g),d.set(void 0)}:()=>{d.set(void 0)}});return r.add(()=>{u.destroy(),d.set(void 0),L(d)}),d},createEffect(...l){let h=S(...l);return r.add(h.destroy),h},createSignal(...l){let h=p(...l);return r.add(()=>{L(h)}),h},createMemo(...l){let h=St(...l);return r.add(()=>{L(h)}),h},on(...l){let[h]=l;if(typeof h=="string"||typeof h=="symbol"||Array.isArray(h)){let u=w(t.entity,...l);return r.add(u),u}let d=w(...l);return r.add(d),Object.assign(()=>{r.delete(d),d()},d)},once(...l){let[h]=l;if(typeof h=="string"||typeof h=="symbol"||Array.isArray(h)){let u=k(t.entity,...l);return r.add(u),u}let d=k(...l);return r.add(d),Object.assign(()=>{r.delete(d),d()},d)},emit(...l){let[h]=l;typeof h=="string"||typeof h=="symbol"||Array.isArray(h)?y(t.entity,...l):y(...l)},onViewEvent(l){let h=w(t.entity,$t,(d,u)=>{l(d,u)});r.add(h)},onDestroy(l){i.add(l)}}));return this.logger.isInfo&&this.logger.info("create shadow-object",zi(e),{shadowObject:M,entity:t.entity}),k(t.entity,J,Q.Low,()=>{this.logger.isInfo&&this.logger.info("destroy shadow-object",zi(e),{shadowObject:M,entity:t.entity});for(let h of i)h();for(let h of r)h();for(let h of n.values())L(h);for(let h of a.values())L(h);for(let h of c.values())L(h);for(let h of m.values())L(h);for(let h of P.values())L(h);i.clear(),r.clear(),n.clear(),a.clear(),c.clear(),m.clear(),P.clear();let l=t.usedConstructors.get(e);l&&(l.delete(M),l.size===0&&t.usedConstructors.delete(e))}),t.usedConstructors.has(e)?t.usedConstructors.get(e).add(M):t.usedConstructors.set(e,new Set([M])),this.attachShadowObject(M,t.entity),M}createShadowObjects(e){let t=this.#e.get(e);this.registry.findConstructors(t.token,t.entity.truthyProps())?.forEach(i=>{this.constructShadowObject(i,t)})}findShadowObjects(e){if(!this.#e.has(e))return[];let{usedConstructors:t}=this.#e.get(e);return Array.from(new Set(Array.from(t.values()).flatMap(i=>Array.from(i))))}attachShadowObject(e,t){w(t,e),typeof e[As]=="function"&&e[As](t)}destroyShadowObject(e,t){typeof e[J]=="function"&&e[J](t),y(e,J,t),A(t,e)}findOrCreateRootContext(e){let t=this.#n.get(e);return t||(t=new Z,this.#n.set(e,t)),t}destroy(){for(let e of this.#n.values())e.dispose();this.#n.clear();for(let e of this.traverseLevelOrderBFS().reverse())this.destroyEntity(e.uuid)}};var Bt=s=>(typeof s=="string"&&(s=new URL(s,globalThis.location.href)),s.toString());function Hi(s){return s.map(e=>{if(e.transferables&&e.transferables.length>0){let{transferables:t,...i}=e;return structuredClone(i,{transfer:t})}else return structuredClone(e)})}var Vt=class{constructor(e){this.#e=new Set,this.isLocalEnv=!0,this.disableStructuredClone=!1,this.kernel=new zt(e),w(this.kernel,Me,t=>{if(this.onMessageToView!=null){let{type:i,uuid:r,traverseChildren:n}=t,o=structuredClone(t.data,{transfer:t.transferables});this.onMessageToView({type:i,uuid:r,data:o,traverseChildren:n})}})}#e;get registry(){return this.kernel.registry}start(){return Promise.resolve()}applyChangeTrail(e,t){let i={changeTrail:this.disableStructuredClone?e:Hi(e)},r;try{this.kernel.run(i),r=Promise.resolve()}catch(n){r=Promise.reject(n)}return r}async importScript(e){let t=await import(Bt(e));t[cs]&&await this.importModule(t[cs])}async importModule(e){return ks(this.kernel,e,this.#e)}destroy(){this.kernel.destroy(),this.registry.clear(),this.#e.clear()}};function Rs(s){let e=new Blob([s],{type:"text/javascript"}),t=URL.createObjectURL(e),i=new Worker(t);return URL.revokeObjectURL(t),i}function Ls(){return Rs(`var _i=Object.defineProperty;var xt=Object.getOwnPropertySymbols;var Fs=Object.prototype.hasOwnProperty,Gs=Object.prototype.propertyIsEnumerable;var Vi=(s,e)=>(e=Symbol[s])?e:Symbol.for("Symbol."+s),$s=s=>{throw TypeError(s)};var ts=(s,e,t)=>e in s?_i(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,ss=(s,e)=>{for(var t in e||(e={}))Fs.call(e,t)&&ts(s,t,e[t]);if(xt)for(var t of xt(e))Gs.call(e,t)&&ts(s,t,e[t]);return s};var Ns=(s,e)=>{var t={};for(var i in s)Fs.call(s,i)&&e.indexOf(i)<0&&(t[i]=s[i]);if(s!=null&&xt)for(var i of xt(s))e.indexOf(i)<0&&Gs.call(s,i)&&(t[i]=s[i]);return t};var y=(s,e,t)=>ts(s,typeof e!="symbol"?e+"":e,t),is=(s,e,t)=>e.has(s)||$s("Cannot "+t);var n=(s,e,t)=>(is(s,e,"read from private field"),t?t.call(s):e.get(s)),d=(s,e,t)=>e.has(s)?$s("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(s):e.set(s,t),g=(s,e,t,i)=>(is(s,e,"write to private field"),i?i.call(s,t):e.set(s,t),t),C=(s,e,t)=>(is(s,e,"access private method"),t);var Mt=(s,e,t,i)=>({set _(r){g(s,e,r,t)},get _(){return n(s,e,i)}});var rs=function(s,e){this[0]=s,this[1]=e},Us=(s,e,t)=>{var i=(c,p,w,A)=>{try{var v=t[c](p),G=(p=v.value)instanceof rs,R=v.done;Promise.resolve(G?p[0]:p).then(S=>G?i(c==="return"?c:"next",p[1]?{done:S.done,value:S.value}:S,w,A):w({value:S,done:R})).catch(S=>i("throw",S,w,A))}catch(S){A(S)}},r=(c,p,w,A)=>a[c]=v=>(p=new Promise((G,R,S)=>(S=()=>i(c,v,G,R),o?o.then(S):S())),A=()=>o===w&&(o=0),o=w=p.then(A,A),p),o,a={};return t=t.apply(s,e),a[Vi("asyncIterator")]=()=>a,r("next"),r("throw"),r("return"),a};var le=(s=>(s[s.CreateEntities=1]="CreateEntities",s[s.DestroyEntities=2]="DestroyEntities",s[s.SetParent=3]="SetParent",s[s.UpdateOrder=4]="UpdateOrder",s[s.ChangeProperties=5]="ChangeProperties",s[s.ChangeToken=6]="ChangeToken",s[s.SendEvents=7]="SendEvents",s))(le||{});var js="configure",_s="changeTrail",Vs="destroy",Is="loaded",ns="appliedChangeTrail",Lt="importedModule",Ws="destroyed",ht="messageToView";var Rt="shadowObjects";var $="ConsoleLogger",z=\`\${$}Storage\`,Hs,Ks,Js,Ii=!!((Js=(Ks=(Hs=globalThis.location)==null?void 0:Hs.host)==null?void 0:Ks.startsWith("localhost"))!=null&&Js),ft="localStorage"in globalThis,Tt=Symbol.for($),Qs=!1,qs=s=>{if(typeof s=="boolean")return s;switch(s.toLowerCase()){case"true":case"yes":case"on":return!0;default:return!1}},as=s=>[ft?$:void 0,...Array.isArray(s)?s:[s]].filter(Boolean).join(".");function os(s,e=void 0,t){var o;let i=as(s),r=ft?localStorage.getItem(i):(o=globalThis[z])==null?void 0:o[i];return r!=null?e(r):t}function lt(s,e){ft?localStorage.setItem(as(s),e):(globalThis[z]==null&&(globalThis[z]={},console.debug(\`\${$}: Initialize\`,{[z]:globalThis[z]})),globalThis[z][as(s)]=e)}var ze,ut,m=class m{constructor(e){d(this,ze);this.enable=!0,this.namespace=(e||"").trim()||$,Qs||(m.loadConfig(),Qs=!0);let t=[this.namespace,"enable"];this.enable=os(t,qs,this.enable),lt(t,ft?this.enable?"true":"false":this.enable)}static get isEnabled(){return m.sharedConfig.enable}static get isDebug(){return m.sharedConfig.enable&&m.sharedConfig.debug}static loadConfig(){var e,t,i;ft?(["enable","debug","info","warn"].forEach(r=>{this.sharedConfig[r]=os(r,qs,this.sharedConfig[r])}),["debug","info","warn","error"].forEach(r=>{this.sharedStyles[r]=os(["styles",r],void 0,this.sharedStyles[r])}),m.isDebug&&console.debug(\`\${$}: Load config from localStorage\`,m.sharedConfig),(e=globalThis[$])!=null&&e[Tt]||(t=globalThis[$])!=null||(globalThis[$]={[Tt]:!0,get enable(){return m.sharedConfig.enable},set enable(r){m.sharedConfig.enable=r,lt("enable",r?"true":"false")},get debug(){return m.sharedConfig.debug},set debug(r){m.sharedConfig.debug=r,lt("debug",r?"true":"false")},get info(){return m.sharedConfig.info},set info(r){m.sharedConfig.info=r,lt("info",r?"true":"false")},get warn(){return m.sharedConfig.warn},set warn(r){m.sharedConfig.warn=r,lt("warn",r?"true":"false")}})):(i=globalThis[z])!=null&&i[Tt]||(globalThis[z]=ss(ss({[Tt]:!0},m.sharedConfig),globalThis[z]),m.sharedConfig=globalThis[z],m.isDebug&&console.debug(\`\${$}: Load config from \${z}\`,globalThis[z]))}get isEnabled(){return this.enable&&m.sharedConfig.enable}get isDebug(){return this.isEnabled&&m.sharedConfig.debug}get isInfo(){return this.isEnabled&&m.sharedConfig.info}get isWarn(){return this.isEnabled&&m.sharedConfig.warn}debug(...e){C(this,ze,ut).call(this,"debug",m.sharedStyles.debug,e)}info(...e){C(this,ze,ut).call(this,"info",m.sharedStyles.info,e)}warn(...e){C(this,ze,ut).call(this,"warn",m.sharedStyles.warn,e)}error(...e){C(this,ze,ut).call(this,"error",m.sharedStyles.error,e)}};ze=new WeakSet,ut=function(e,t,i){console[e](\`%c\${this.namespace}\`,t,...i)},m.sharedConfig={enable:Ii,debug:!1,info:!0,warn:!0,"styles.debug":"color: #111; background: #999; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em","styles.info":"color: #020; background: #8a8; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em","styles.warn":"color: #fa0; background: #a98; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em","styles.error":"color: #ff0; background: #a00; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em"},m.sharedStyles={get debug(){return m.sharedConfig["styles.debug"]},set debug(e){m.sharedConfig["styles.debug"]=e},get info(){return m.sharedConfig["styles.info"]},set info(e){m.sharedConfig["styles.info"]=e},get warn(){return m.sharedConfig["styles.warn"]},set warn(e){m.sharedConfig["styles.warn"]=e},get error(){return m.sharedConfig["styles.error"]},set error(e){m.sharedConfig["styles.error"]=e}};var Dt=m;var Fe="*",si=1,fs=2,ds=4,ue=Symbol.for("eventize"),Wi="[eventize]",gs=s=>s===Fe,ii=s=>{switch(typeof s){case"string":case"symbol":return!0;default:return!1}},ri=typeof console!="undefined",Qi=ri?console[console.warn?"warn":"log"].bind(console,Wi):()=>{},qi=(s,e,t)=>(Object.defineProperty(s,e,{value:t,configurable:!0}),s),Hi=0,ys=class{constructor(){y(this,"events",new Map);y(this,"eventNames",new Set)}static publish(s){s.sort((e,t)=>e.order-t.order).forEach(e=>e.replay())}add(s){Array.isArray(s)?s.forEach(e=>this.eventNames.add(e)):this.eventNames.add(s)}remove(s){Array.isArray(s)?s.forEach(e=>this.eventNames.delete(e)):this.eventNames.delete(s),this.clear(s)}clear(s){Array.isArray(s)?s.forEach(e=>this.events.delete(e)):this.events.delete(s)}retain(s,e){this.eventNames.has(s)&&this.events.set(s,{args:e,order:Hi++})}isKnown(s){return this.eventNames.has(s)}replayTo(s,e,t=[]){if(gs(s))this.eventNames.forEach(i=>this.replayTo(i,e,t));else if(this.events.has(s)){let{order:i,args:r}=this.events.get(s);t.push({order:i,replay:()=>e.apply(s,r)})}return t}},ls=(s,e,t,i)=>{if(typeof e=="function"){let r=e.apply(s,t);r!=null&&(i==null||i(r))}},Ki=(s,e,t,i)=>ls(e,e.emit,[s].concat(t),i),Ji=s=>{switch(typeof s){case"function":return si;case"string":case"symbol":return fs;case"object":return ds}},Yi=0,Xi=()=>++Yi,ni=class{constructor(s,e,t,i=null){y(this,"id");y(this,"eventName");y(this,"isCatchEmAll");y(this,"priority");y(this,"listener");y(this,"listenerObject");y(this,"listenerType");y(this,"callAfterApply");y(this,"isRemoved");y(this,"refCount");this.id=Xi(),this.eventName=s,this.isCatchEmAll=gs(s),this.listener=t,this.listenerObject=i,this.priority=e,this.listenerType=Ji(t),this.callAfterApply=void 0,this.isRemoved=!1,this.refCount=1}isEqual(s,e=null){if(s===this)return!0;let t=typeof s;return t==="number"&&s===this.id?!0:e===null&&(t==="string"||t==="symbol")?s===Fe||s===this.eventName:this.listener===s&&this.listenerObject===e}apply(s,e,t){if(this.isRemoved)return;let{listener:i,listenerObject:r}=this;switch(this.listenerType){case si:ls(r,i,e,t),this.callAfterApply&&this.callAfterApply();break;case fs:ls(r,r[i],e,t),this.callAfterApply&&this.callAfterApply();break;case ds:{let o=i[s];if(this.isCatchEmAll||this.eventName===s){if(typeof o=="function"){let a=o.apply(i,e);a!=null&&(t==null||t(a))}else Ki(s,i,e,t);this.callAfterApply&&this.callAfterApply()}break}}}},Zi=(s,e)=>s.priority!==e.priority?e.priority-s.priority:s.id-e.id,er=(s,e)=>{let t=0,i=s.length;for(;t<i;){let r=t+i>>>1;Zi(e,s[r])<0?i=r:t=r+1}return t},Ys=s=>s==null?void 0:s.slice(0),Xs=(s,e)=>{let t=s.indexOf(e);t>-1&&s.splice(t,1)},tr=s=>s===ds||s===fs,us=(s,e,t)=>{let i=s.findIndex(r=>r.isEqual(e,t));i>-1&&(s[i].isRemoved=!0,s.splice(i,1))},cs=(s,e,t)=>{let i=[];for(let r of s)(e==null&&r.listenerObject===t||r.eventName===e&&r.listener===t)&&i.push(r);for(let r of i)us(s,r,void 0)},hs=s=>{s&&(s.forEach(e=>{e.isRemoved=!0}),s.length=0)},sr=(s,e)=>s.listenerType===e.listenerType?s.priority===e.priority&&s.eventName===e.eventName&&s.listenerObject===e.listenerObject&&s.listener===e.listener:!1,ir=(s,e)=>{if(tr(s.listenerType))return e.find(t=>sr(s,t))},rr=(s,e)=>{let t=ir(s,e);return t?(t.refCount+=1,t):(e.splice(er(e,s),0,s),s)},nr=class{constructor(){y(this,"namedListeners");y(this,"catchEmAllListeners");y(this,"getListenersForEventName",s=>{let e=this.namedListeners.get(s);return e||(e=[],this.namedListeners.set(s,e)),e});this.namedListeners=new Map,this.catchEmAllListeners=[]}add(s){return rr(s,s.isCatchEmAll?this.catchEmAllListeners:this.getListenersForEventName(s.eventName))}remove(s,e,t=!1){if(e==null&&Array.isArray(s)){s.forEach(i=>this.remove(i,null,t));return}if(s==null||e==null&&gs(s)){this.removeAllListeners();return}if(e==null&&ii(s)){this.removeByEventName(s);return}if(s instanceof ni){this.removeByEventListener(s);return}if(t){this.removeByEventNameAndListenerObject(s,e);return}this.removeByListener(s,e)}removeByEventName(s){hs(this.namedListeners.get(s)),this.namedListeners.delete(s)}removeByEventListener(s){s.isRemoved||(s.refCount-=1,!(s.refCount>=1)&&(s.isRemoved=!0,this.namedListeners.forEach((e,t)=>{Xs(e,s),e.length===0&&this.namedListeners.delete(t)}),Xs(this.catchEmAllListeners,s)))}removeByEventNameAndListenerObject(s,e){this.namedListeners.forEach((t,i)=>{cs(t,s,e),t.length===0&&this.namedListeners.delete(i)})}removeByListener(s,e){let t=typeof s=="object";this.namedListeners.forEach((i,r)=>{us(i,s,e),t&&cs(i,void 0,s),i.length===0&&this.namedListeners.delete(r)}),us(this.catchEmAllListeners,s,e),t&&cs(this.catchEmAllListeners,void 0,s)}removeAllListeners(){this.namedListeners.forEach(s=>hs(s)),this.namedListeners.clear(),hs(this.catchEmAllListeners)}forEach(s,e){let t=Ys(this.catchEmAllListeners),i=Ys(this.namedListeners.get(s));if(s===Fe||!i||i.length===0)t.forEach(e);else if(t.length===0)i.forEach(e);else{let r=i.length,o=t.length,a=0,c=0;for(;a<r||c<o;){if(a<r){let p=i[a];if(c>=o||p.priority>=t[c].priority){e(p),++a;continue}}c<o&&(e(t[c]),++c)}}}getSubscriptionCount(){let s=this.catchEmAllListeners.length;for(let e of this.namedListeners.values())s+=e.length;return s}},Ge=s=>!!(s&&s[ue]);function dt(s){if(Ge(s))return s;let e=new nr,t=new ys;return qi(s,ue,{keeper:t,store:e}),s}var be={Max:Number.POSITIVE_INFINITY,Critical:1e9,High:1e6,Normal:0,Low:-1e4,Min:Number.NEGATIVE_INFINITY,AAA:1e9,BB:1e6,C:1e3,Default:0},or=(s,e,t,i,r,o,a)=>{let c=s.add(new ni(t,i,r,o));return e.replayTo(t,c,a),c},oi=(s,e,t,i)=>{let r=t.length,o=typeof t[0],a,c,p,w;if(r>=2&&r<=3&&o==="number"?(a=Fe,[c,p,w]=t):r>=3&&r<=4&&typeof t[1]=="number"?[a,c,p,w]=t:(c=be.Default,o==="string"||o==="symbol"||Array.isArray(t[0])?[a,p,w]=t:(a=Fe,[p,w]=t)),!p)throw ri&&Qi("called with insufficient arguments!",t),new Error("subscribeTo() called with insufficient arguments");let A=v=>G=>or(s,e,G,v,p,w,i);return Array.isArray(a)?a.map(v=>Array.isArray(v)?A(v[1])(v[0]):A(c)(v)):A(c)(a)},ar=(s,e,t)=>{let i=[],r=oi(s,e,t,i);return ys.publish(i),r},cr=(s,e,t)=>{let i=[];return{listeners:oi(s,e,t,i),publishRetained:()=>ys.publish(i)}},Zs=s=>e=>{e.callAfterApply=()=>{s==null||s()}},ai=(s,e)=>Object.assign(()=>L(s,e),Array.isArray(e)?{listeners:e}:{listener:e}),ei=(s,e,t,i)=>{if(e===Fe)throw new Error("emit() must be called with a concrete event name \\u2014 '*' is reserved for subscribing to all events and cannot be emitted");let{store:r,keeper:o}=s[ue];r.forEach(e,a=>a.apply(e,t,i)),o.retain(e,t)},ci=(s,e,t,i)=>{Array.isArray(e)?e.forEach(r=>ei(s,r,t,i)):ei(s,e,t,i)},ti=(s,e,t,i)=>{if(e===Fe)throw new Error("emit() must be called with a concrete event name \\u2014 '*' is reserved for subscribing to all events and cannot be emitted");let r=s,o=r[e];if(typeof o=="function"){let c=o.apply(s,t);c!=null&&(i==null||i(c));return}let a=r.emit;if(typeof a=="function"){let c=a.apply(s,[e,...t]);c!=null&&(i==null||i(c))}},hi=(s,e,t,i)=>{Array.isArray(e)?e.forEach(r=>ti(s,r,t,i)):ti(s,e,t,i)},li=s=>s!=null&&typeof s=="object";function T(s,...e){let t=dt(s),{store:i,keeper:r}=t[ue];return ai(t,ar(i,r,e))}function k(s,...e){let t=dt(s),{store:i,keeper:r}=t[ue],{listeners:o,publishRetained:a}=cr(i,r,e),c=ai(t,o),p=!1,w=()=>{p||(c(),p=!0)};return Array.isArray(o)?o.forEach(Zs(w)):Zs(w)(o),a(),w}function hr(s,e){return new Promise(t=>{k(s,e,t)})}function L(s,e,t){if(!Ge(s))return;let{store:i,keeper:r}=s[ue],o=typeof e,a=t!=null&&(o==="string"||o==="symbol");i.remove(e,t,a),Array.isArray(e)?r.remove(e.filter(c=>typeof c=="string")):ii(e)&&r.remove(e)}function E(s,e,...t){Ge(s)?ci(s,e,t):li(s)&&hi(s,e,t)}function lr(s,e,...t){let i=[],r=o=>{i.push(o)};return Ge(s)?ci(s,e,t,r):li(s)&&hi(s,e,t,r),i=i.map(o=>Array.isArray(o)?Promise.all(o):Promise.resolve(o)),i.length>0?Promise.all(i):Promise.resolve()}function gt(s,e){let t=dt(s),{keeper:i}=t[ue];i.add(e)}function He(s,e){if(!Ge(s))throw new Error("object is not eventized");let{keeper:t}=s[ue];t.clear(e)}function ur(s,e){if(!Ge(s))throw new Error("object is not eventized");let{keeper:t}=s[ue];t.remove(e)}var fr=T,dr=k,gr=L,yr=E,pr=lr,vr=hr,mr=gt,br=He,wr=ur,V=(()=>{let s=(e={})=>dt(e);return s.inject=(e={})=>(e=dt(e),Object.assign(e,{on:(...t)=>fr(e,...t),once:(...t)=>dr(e,...t),onceAsync:t=>vr(e,t),off:(t,i)=>gr(e,t,i),emit:(t,...i)=>yr(e,t,...i),emitAsync:(t,...i)=>pr(e,t,...i),retain:t=>mr(e,t),retainClear:t=>br(e,t),unretain:t=>wr(e,t)}),e),s.is=Ge,s})();async function ps(s,e,t,i=!0){var o,a;if(t.has(e)){console.warn("importModule: skipping already imported module",e);return}else t.add(e);e.extends&&await Promise.all(e.extends.map(c=>ps(s,c,t,!1)));let{registry:r}=s;if(e.define)for(let[c,p]of Object.entries(e.define))r.define(c,p);if(e.routes)for(let[c,p]of Object.entries(e.routes))r.appendRoute(c,p);await((a=(o=e.initialize)==null?void 0:o.call(e,{define:(c,p)=>r.define(c,p),kernel:s,registry:r}))!=null?a:Promise.resolve()),i&&s.upgradeEntities()}var ne=Symbol.for("signal"),Ke=Symbol.for("effect"),ui=Symbol.for("destroySignal"),fi=Symbol.for("createEffect"),Er=Symbol.for("destroyEffect"),et="value",ws="mute",Es="unmute",ke="destroy",yt=Symbol.for("recall"),pt=V(),Ie=V(),$e=V(),vi=V(),Ae=class{constructor(){y(this,"delayedEffects",[])}batch(e,t){let i=this.delayedEffects.length;for(let r=0;r<i;r++){let[o,a]=this.delayedEffects[r];if(!(o>t)){if(o===t){a.add(e);return}this.delayedEffects.splice(r,0,[t,new Set([e])]);return}}this.delayedEffects.push([t,new Set([e])])}flush(){this.run(),this.delayedEffects.length=0}run(){let e=new Set,t=[];try{t.push(T($e,(i,r)=>{r===yt&&e.add(i)}),T(vi,i=>{e.add(i)}));for(let[,i]of this.delayedEffects)for(let r of i)e.has(r)||E($e,r,r,yt)}finally{for(let i of t)i()}}};y(Ae,"current");var mi=()=>Ae.current;function Pe(s){let e=Ae.current;e?e=void 0:e=Ae.current=new Ae;try{s()}finally{e&&(Ae.current=void 0,e.run())}}var Sr=0;function Ss(){return Sr>0}var yi;yi=Ke;var zt=class{constructor(e){y(this,yi);y(this,"run",()=>{var e;return(e=this[Ke])==null?void 0:e.run()});y(this,"destroy",()=>{var e;(e=this[Ke])==null||e.destroy(),this[Ke]=void 0});this[Ke]=e,k(e,ke,()=>{this[Ke]=void 0})}},vs=[],bi=()=>vs.at(-1),Cr=(s,e)=>{vs.push(s);try{return e()}finally{vs.pop()}};var Je=new WeakMap,Bt=new Set,se,Ne,H,fe,ie,Ue,je,K,_e,Ye=class Ye{constructor(e){d(this,se,new Set);d(this,Ne,new Set);d(this,H,new Map);d(this,fe,new WeakMap);d(this,ie,new Map);d(this,Ue,new Set);d(this,je,new Set);d(this,K);d(this,_e);if(e!=null&&e instanceof Ye)return e;if(e!=null||(e=this),Je.has(e))return Je.get(e);g(this,_e,new WeakRef(e)),Je.set(e,this),Bt.add(this),V(this)}static get(e){if(e!=null)return e instanceof Ye?e:Je.get(e)}static findOrCreate(e){if(e==null)throw new Error("Cannot create a group with a null object");return new Ye(e)}static destroy(e){console.warn("SignalGroup.destroy(obj) is deprecated. Use SignalGroup.delete(obj) instead."),Ye.delete(e)}static delete(e){var t;(t=Je.get(e))==null||t.clear()}static clear(){for(let e of[...Bt])e.clear();Bt.clear()}attachGroup(e){if(e===this)throw new Error("Cannot attach a group to itself");return n(this,se).add(e),n(e,K)&&n(e,K)!==this&&n(n(e,K),se).delete(e),g(e,K,this),e}detachGroup(e){return e!==this&&n(this,se).has(e)&&(n(this,se).delete(e),g(e,K,void 0)),e}attachSignal(e){let t=D(e);if(t!=null&&t.destroyed)throw new Error("Cannot attach a destroyed signal to a group");return t&&n(this,Ne).add(t),e}attachSignalByName(e,t){if(t){this.attachSignal(t);let i=D(t);n(this,H).set(e,i),n(this,ie).has(e)?n(this,ie).get(e).push(i):n(this,ie).set(e,[i]),n(this,fe).has(i)?n(this,fe).get(i).add(e):n(this,fe).set(i,new Set([e]))}else n(this,H).delete(e);return t}hasSignal(e){var t;return n(this,H).has(e)||!!((t=n(this,K))!=null&&t.hasSignal(e))}signal(e){var t,i,r;return(r=(t=n(this,H).get(e))==null?void 0:t.object)!=null?r:(i=n(this,K))==null?void 0:i.signal(e)}detachSignal(e){let t=D(e);if(t&&(n(this,Ne).delete(t),n(this,fe).has(t))){let i=n(this,fe).get(t);for(let r of i)if(n(this,ie).has(r)){let o=n(this,ie).get(r);o.splice(o.indexOf(t),1),o.length===0?(n(this,H).delete(r),n(this,ie).delete(r)):n(this,H).get(r)===t&&n(this,H).set(r,o.at(-1))}i.clear(),n(this,fe).delete(t)}return e}attachEffect(e){return n(this,Ue).add(e),e}runEffects(){for(let e of n(this,Ue))e.run();for(let e of n(this,se))e.runEffects()}attachLink(e){if(e!=null&&e.isDestroyed)throw new Error("Cannot attach a destroyed link to a group");return e&&n(this,je).add(e),e}detachLink(e){return e&&n(this,je).delete(e),e}destroy(){console.warn("SignalGroup#destroy is deprecated. Use SignalGroup#clear instead."),this.clear()}clear(){var e;E(this,ke,this),L(this);for(let t of n(this,se))t.clear();for(let t of n(this,Ue))t.destroy();for(let t of n(this,Ne))N(t);for(let t of n(this,je))t.destroy();if(n(this,se).clear(),n(this,Ne).clear(),n(this,H).clear(),n(this,ie).clear(),n(this,Ue).clear(),n(this,je).clear(),(e=n(this,K))==null||e.detachGroup(this),n(this,_e)){let t=n(this,_e).deref();t!==void 0&&Je.delete(t),g(this,_e,void 0)}Bt.delete(this)}};se=new WeakMap,Ne=new WeakMap,H=new WeakMap,fe=new WeakMap,ie=new WeakMap,Ue=new WeakMap,je=new WeakMap,K=new WeakMap,_e=new WeakMap;var de=Ye,mt,bt,Ft=class{constructor(e="id",t=1){d(this,mt);d(this,bt);g(this,mt,e),g(this,bt,t)}make(){return Symbol(\`\${n(this,mt)}\${Mt(this,bt)._++}\`)}};mt=new WeakMap,bt=new WeakMap;var Ar=s=>s!=null&&typeof s.then=="function",we,re,Ee,Se,Ce,Ve,Xe,Ze,I=class I{constructor(e,t){y(this,"id");y(this,"callback");d(this,we);d(this,re,new Set);d(this,Ee,new Set);d(this,Se,new Map);d(this,Ce,new Set);y(this,"childEffects",[]);y(this,"curChildEffectSlot",0);y(this,"autorun",!0);y(this,"shouldRun",!0);y(this,"priority");d(this,Ve);d(this,Xe,!1);d(this,Ze,0);y(this,"run",()=>{if(n(this,Xe)||!this.shouldRun)return;let e=mi();if(e){e.batch(this.id,this.priority);return}if(n(this,Ze)>=I.maxDepth)throw new Error(\`[signalize] Effect \${this.id.toString()} exceeded maxDepth=\${I.maxDepth}: an effect callback recursively re-triggered itself (likely by writing a signal it depends on). Break the cycle, or raise EffectImpl.maxDepth if the recursion is intentional.\`);Mt(this,Ze)._++;try{if(this.runCleanupCallback(),this.destroyChildEffects(),this.curChildEffectSlot=0,this.shouldRun=!1,E(vi,this.id,this.id),this.hasStaticDeps())g(this,we,this.callback());else{n(this,Ee).clear();for(let t of n(this,re))n(this,Ee).add(t);g(this,we,Cr(this,this.callback)),this.cleanupLostSignals(),n(this,Ce).clear()}}finally{Mt(this,Ze)._--}});y(this,"destroy",()=>{n(this,Xe)||(E(this,ke,this),L(this),E($e,Er,this),this.runCleanupCallback(),this.destroyChildEffects(),L(pt,this),L($e,this),L(Ie,this),g(this,Xe,!0),n(this,re).clear(),n(this,Ee).clear(),n(this,Se).clear(),n(this,Ce).clear(),--I.count)});var r,o;V(this),this.callback=e;let i;(t==null?void 0:t.attach)!=null&&(i=de.findOrCreate(t.attach),i.attachEffect(this)),this.autorun=(r=t==null?void 0:t.autorun)!=null?r:!0,g(this,Ve,t!=null&&t.dependencies?t.dependencies.map(a=>{switch(typeof a){case"string":case"symbol":return i.signal(a);default:return a}}):void 0),this.id=I.idGen.make(),this.priority=(o=t==null?void 0:t.priority)!=null?o:0,T($e,this.id,yt,this),++I.count}hasStaticDeps(){return n(this,Ve)!=null&&n(this,Ve).length>0}saveSignalsFromDeps(){for(let e of n(this,Ve))this.whenSignalIsRead(D(e).id)}static createEffect(e,t,i){let r=Array.isArray(t)?t:void 0,o=r?i!=null?i:{dependencies:r}:t;o&&r&&(o.dependencies=r);let a,c=bi();return c!=null?(a=c.getCurrentChildEffect(),a==null&&(a=new I(e,o),c.attachChildEffect(a),E($e,fi,a)),c.curChildEffectSlot++):(a=new I(e,o),E($e,fi,a)),a.hasStaticDeps()?a.saveSignalsFromDeps():a.autorun&&a.run(),new zt(a)}getCurrentChildEffect(){return this.childEffects[this.curChildEffectSlot]}attachChildEffect(e){this.childEffects.push(e)}[yt](){this.shouldRun=!0,this.autorun&&this.run()}whenSignalIsRead(e){n(this,Ee).delete(e),n(this,re).has(e)||(n(this,re).add(e),n(this,Se).set(e,[T(pt,e,this.priority,yt,this),k(Ie,e,ui,this)]))}[ui](e){!n(this,Ce).has(e)&&n(this,re).has(e)&&(n(this,Ce).add(e),this.unsubscribeSignal(e),n(this,Ce).size===n(this,re).size&&this.destroy())}cleanupLostSignals(){for(let e of n(this,Ee))this.unsubscribeSignal(e),n(this,re).delete(e)}destroyChildEffects(){for(let e of this.childEffects)e.destroy();this.childEffects.length=0}unsubscribeSignal(e){n(this,Se).has(e)&&(n(this,Se).get(e).forEach(t=>{t()}),n(this,Se).delete(e))}runCleanupCallback(){if(n(this,we)!=null){let e=n(this,we);g(this,we,void 0),Ar(e)?Promise.resolve(e).then(t=>{typeof t=="function"&&t()}):e()}}};we=new WeakMap,re=new WeakMap,Ee=new WeakMap,Se=new WeakMap,Ce=new WeakMap,Ve=new WeakMap,Xe=new WeakMap,Ze=new WeakMap,y(I,"idGen",new Ft("ef")),y(I,"count",0),y(I,"maxDepth",256);var ms=I,ge=(...s)=>ms.createEffect(...s);var vt=new WeakMap,kr=s=>{let e=vt.get(s);return e||(e={},vt.set(s,e)),e},Oe=(s,e)=>{var t,i;return(i=(t=vt.get(s))==null?void 0:t.signals)==null?void 0:i.get(e)};var wi=(s,e,t)=>{var r;let i=kr(s);(r=i.signals)!=null||(i.signals=new Map),i.signals.set(e,t)};function Cs(...s){for(let e of s)if(vt.has(e)){let t=vt.get(e);if(t.signals){for(let i of t.signals.values())N(i);t.signals.clear(),t.signals=void 0}}}function Ei(s){let e=D(We(s)?s:Oe(...s));e!=null&&!e.muted&&!e.destroyed&&bs(e.id,e.value,{touch:!0})}function tt(s){var e,t;return We(s)?(e=D(s))==null?void 0:e.value:(t=D(Oe(...s)))==null?void 0:t.value}var pi;pi=ne;var Gt=class{constructor(e){y(this,pi);this[ne]=e}get get(){return this[ne].reader}get set(){return this[ne].writer}get value(){return tt(this.get)}set value(e){this.set(e)}onChange(e){let{destroy:t}=ge(()=>e(this.value),[this.get]);return t}get muted(){return this[ne].muted}set muted(e){this[ne].muted=e}touch(){Ei(this)}destroy(){N(this)}},Pr=new Ft("si"),di=!1;function Or(){di||(di=!0,console.warn("signalReader(callback) is deprecated and will be removed in a future release. Use Signal.onChange(callback) instead \\u2014 it returns an unsubscribe function for proper cleanup."))}function gi(s){var e;Ss()||(e=bi())==null||e.whenSignalIsRead(s)}function bs(s,e,t){Ss()||E(pt,s,e,t)}var We=s=>s!=null&&s[ne]!=null,xr=s=>{let e=t=>{var i;return s.destroyed||(i=s.beforeRead)==null||i.call(s),t?(Or(),ge(()=>(s.destroyed||gi(s.id),t(s.value)),[e])):s.destroyed||gi(s.id),s.value};return Object.defineProperty(e,ne,{value:s}),e},J,Nt=class Nt{constructor(e,t){y(this,"id");y(this,"lazy");y(this,"compare");y(this,"beforeRead");y(this,"muted",!1);y(this,"destroyed",!1);d(this,J);y(this,"valueFn");y(this,"reader");y(this,"writer",(e,t)=>{var c,p,w;let i=(c=t==null?void 0:t.lazy)!=null?c:!1,r=(p=t==null?void 0:t.compare)!=null?p:this.compare,o=r!=null?r:((A,v)=>A===v);if((i!==this.lazy||i&&e!==this.valueFn||!i&&!o(e,n(this,J)))&&(i?(g(this,J,void 0),this.valueFn=e,this.lazy=!0):(g(this,J,e),this.valueFn=void 0,this.lazy=!1),!this.muted&&!this.destroyed)){bs(this.id,n(this,J));return}(w=t==null?void 0:t.touch)!=null&&w&&!this.muted&&!this.destroyed&&bs(this.id,n(this,J),{touch:!0})});y(this,"object");this.id=Pr.make(),++Nt.instanceCount,this.lazy=e,this.lazy?(this.value=void 0,this.valueFn=t):(this.value=t,this.valueFn=void 0),this.reader=xr(this),this.object=new Gt(this)}get[ne](){return this}get value(){return this.lazy&&(g(this,J,this.valueFn()),this.valueFn=void 0,this.lazy=!1),n(this,J)}set value(e){g(this,J,e)}};J=new WeakMap,y(Nt,"instanceCount",0);var $t=Nt,D=s=>s==null?void 0:s[ne];function x(s=void 0,e){var i;let t;if(We(s))t=D(s);else{let r=(i=e==null?void 0:e.lazy)!=null?i:!1;t=new $t(r,s),t.beforeRead=e==null?void 0:e.beforeRead,t.compare=e==null?void 0:e.compare}return(e==null?void 0:e.attach)!=null&&de.findOrCreate(e.attach).attachSignal(t),t.object}var N=(...s)=>{for(let e of s){let t=D(e);t!=null&&!t.destroyed&&(t.destroyed=!0,t.beforeRead=void 0,--$t.instanceCount,E(Ie,t.id,t.id))}};function Ut(s,e){var a,c;let t=x(),i=(e==null?void 0:e.attach)!=null?de.findOrCreate(e.attach):void 0;i!=null&&(e!=null&&e.name?i.attachSignalByName(e.name,t):i.attachSignal(t));let r=ge(()=>{Pe(()=>{t.set(s())})},{autorun:!((a=e==null?void 0:e.lazy)!=null&&a),priority:(c=e==null?void 0:e.priority)!=null?c:be.C,attach:i}),o=D(t);return o.beforeRead=r.run,k(Ie,o.id,r.destroy),t.get}var F,st,_t=class{constructor(e){d(this,F,!1);d(this,st);y(this,"source");y(this,"lastValue");y(this,"isDestroyed",!1);V(this),this.source=D(e),g(this,st,T(pt,this.source.id,(t,i)=>{!n(this,F)&&!this.isDestroyed&&((i==null?void 0:i.touch)===!0?this.touch():this.write())})),k(Ie,this.source.id,()=>this.destroy())}attach(e){let t=de.findOrCreate(e);return t.attachLink(this),k(this,ke,()=>{t.detachLink(this)}),t}nextValue(){return new Promise((e,t)=>{let i=[],r=()=>i.forEach(o=>{o()});i.push(k(this,et,o=>{r(),e(o)}),k(this,ke,()=>{r(),t()}))})}asyncValues(e){return Us(this,null,function*(){gt(this,et);try{let t=0;for(;!this.isDestroyed;)try{let i=yield new rs(this.nextValue());if(e!=null&&e(i,t++))break;yield i}catch(i){break}}finally{He(this,et)}})}destroy(){var e;this.isDestroyed||((e=n(this,st))==null||e.call(this),g(this,st,void 0),E(this,ke,this),He(this,et),L(this),this.lastValue=void 0,this.isDestroyed=!0,Object.freeze(this))}get isMuted(){return n(this,F)}mute(){return!this.isDestroyed&&!n(this,F)&&(g(this,F,!0),E(this,ws,this)),this}unmute(){return!this.isDestroyed&&n(this,F)&&(g(this,F,!1),E(this,Es,this)),this}toggleMute(){return this.isDestroyed||(g(this,F,!n(this,F)),E(this,n(this,F)?ws:Es,this)),n(this,F)}updateValue(e){if(!n(this,F)&&!this.isDestroyed){let{value:t}=this.source;e(t),E(this,et,t),this.lastValue=t}}};F=new WeakMap,st=new WeakMap;var As=class extends _t{constructor(t,i){super(t);y(this,"target");this.target=D(i),k(Ie,this.target.id,()=>this.destroy()),this.touch()}touch(){return this.updateValue(t=>{this.target.writer(t,{touch:!0})}),this}write(){this.updateValue(t=>{this.target.writer(t)})}},ks=class extends _t{constructor(t,i){super(t);y(this,"target");this.target=i,this.touch()}touch(){return this.updateValue(t=>{this.target(t)}),this}write(){this.updateValue(t=>{this.target(t)})}},jt=new Map;function Y(s,e,t){let i=D(s),r=D(e),o=r!=null?r:e,a;if(jt.has(i)){if(a=jt.get(i),a.has(o))return a.get(o)}else a=new Map,jt.set(i,a);let c=r!=null?new As(s,r):new ks(s,e),p=t==null?void 0:t.attach;return p&&c.attach(p),a.set(o,c),k(c,ke,()=>{a.delete(o),a.size===0&&jt.delete(i)}),c}var U,Ps=class Ps{constructor(){d(this,U,new Map)}static fromProps(e,t){let i=new Ps,r=t?t.map(o=>[o,e[o]]):Object.entries(e);for(let[o,a]of r)n(i,U).set(o,x(a));return i}keys(){return n(this,U).keys()}signals(){return n(this,U).values()}entries(){return n(this,U).entries()}clear(){for(let e of n(this,U).values())e.destroy();n(this,U).clear()}has(e){return n(this,U).has(e)}get(e){if(!n(this,U).has(e)){let t=x();return n(this,U).set(e,t),t}return n(this,U).get(e)}update(e){e.size&&Pe(()=>{for(let[t,i]of e.entries())this.get(t).set(i)})}updateFromProps(e,t){Pe(()=>{let i=t?t.map(r=>[r,e[r]]):Object.entries(e);for(let[r,o]of i)this.get(r).set(o)})}};U=new WeakMap;var Vt=Ps;var It=s=>s!=null?s:void 0;var Os=Symbol("onCreate"),oe=Symbol("onDestroy"),Si=Symbol("onParentChanged"),Wt=Symbol("onViewEvent");function Ci(s){return function(e,t){var o;let i=(s==null?void 0:s.name)||t.name,r=!!((o=s==null?void 0:s.readAsValue)!=null&&o);return{get(){let a=Oe(this,i);if(a)return r?a.value:a.get()},set(a){var c;(c=Oe(this,i))==null||c.set(a)},init(a){let c=x(a,s);return wi(this,i,c),de.findOrCreate(this).attachSignalByName(i,c),c.value}}}}var Mr=Object.create,xs=Object.defineProperty,Lr=Object.getOwnPropertyDescriptor,Pi=(s,e)=>(e=Symbol[s])?e:Symbol.for("Symbol."+s),rt=s=>{throw TypeError(s)},Rr=(s,e,t)=>e in s?xs(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,Ai=(s,e)=>xs(s,"name",{value:e,configurable:!0}),Tr=s=>{var e;return[,,,Mr((e=s==null?void 0:s[Pi("metadata")])!=null?e:null)]},Oi=["class","method","getter","setter","accessor","field","value","get","set"],wt=s=>s!==void 0&&typeof s!="function"?rt("Function expected"):s,Dr=(s,e,t,i,r)=>({kind:Oi[s],name:e,metadata:i,addInitializer:o=>t._?rt("Already initialized"):r.push(wt(o||null))}),xi=(s,e)=>Rr(e,Pi("metadata"),s[3]),ki=(s,e,t,i)=>{for(var r=0,o=s[e>>1],a=o&&o.length;r<a;r++)e&1?o[r].call(t):i=o[r].call(t,i);return i},Br=(s,e,t,i,r,o)=>{var a,c,p,w,A,v=e&7,G=!!(e&8),R=!!(e&16),S=v>3?s.length+1:v?G?1:2:0,l=Oi[v+5],h=v>3&&(s[S-1]=[]),u=s[S]||(s[S]=[]),f=v&&(!R&&!G&&(r=r.prototype),v<5&&(v>3||!R)&&Lr(v<4?r:{get[t](){return j(this,o)},set[t](O){return St(this,o,O)}},t));v?R&&v<4&&Ai(o,(v>2?"set ":v>1?"get ":"")+t):Ai(r,t);for(var b=i.length-1;b>=0;b--)w=Dr(v,t,p={},s[3],u),v&&(w.static=G,w.private=R,A=w.access={has:R?O=>zr(r,O):O=>t in O},v^3&&(A.get=R?O=>(v^1?j:xe)(O,r,v^4?o:f.get):O=>O[t]),v>2&&(A.set=R?(O,he)=>St(O,r,he,v^4?o:f.set):(O,he)=>O[t]=he)),c=(0,i[b])(v?v<4?R?o:f[l]:v>4?void 0:{get:f.get,set:f.set}:r,w),p._=1,v^4||c===void 0?wt(c)&&(v>4?h.unshift(c):v?R?o=c:f[l]=c:r=c):typeof c!="object"||c===null?rt("Object expected"):(wt(a=c.get)&&(f.get=a),wt(a=c.set)&&(f.set=a),wt(a=c.init)&&h.unshift(a));return v||xi(s,r),f&&xs(r,t,f),R?v^4?o:f:r},Ms=(s,e,t)=>e.has(s)||rt("Cannot "+t),zr=(s,e)=>Object(e)!==e?rt('Cannot use the "in" operator on this value'):s.has(e),j=(s,e,t)=>(Ms(s,e,"read from private field"),t?t.call(s):e.get(s)),Qt=(s,e,t)=>e.has(s)?rt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(s):e.set(s,t),St=(s,e,t,i)=>(Ms(s,e,"write to private field"),i?i.call(s,t):e.set(s,t),t),xe=(s,e,t)=>(Ms(s,e,"access private method"),t),Mi,ae,Me,Ct,Ls,ye,qt,Et,it="value";Mi=[Ci({name:it})];var ce=class{constructor(e){Qt(this,ye),Qt(this,ae,[]),Qt(this,Me),Qt(this,Ls,ki(Ct,8,this)),ki(Ct,11,this),this.value$=void 0,gt(this,it),this.value$=Oe(this,it),this.value$.onChange(t=>E(this,it,t)),e&&this.add(...e)}add(...e){return j(this,ae).push(...e),xe(this,ye,Et).call(this),xe(this,ye,qt).call(this,e)}unshift(...e){return j(this,ae).unshift(...e),xe(this,ye,Et).call(this),xe(this,ye,qt).call(this,e)}remove(...e){xe(this,ye,qt).call(this,e)()}clear(){j(this,ae).length=0,xe(this,ye,Et).call(this)}dispose(){var e;this.clear(),(e=j(this,Me))==null||e.destroy(),St(this,Me,void 0),He(this,it),L(this),this.value$.destroy(),Cs(this)}};Ct=Tr(null);ae=new WeakMap;Me=new WeakMap;Ls=new WeakMap;ye=new WeakSet;qt=function(s){return()=>{for(let e of s){let t=j(this,ae).indexOf(e);t!==-1&&j(this,ae).splice(t,1)}xe(this,ye,Et).call(this)}};Et=function(){var s;(s=j(this,Me))==null||s.destroy(),j(this,ae).length===0?(St(this,Me,void 0),this.value=void 0):(St(this,Me,ge(()=>{let e;for(let t of j(this,ae)){let i=tt(t);if(i!=null){e=i;break}}this.value=e},j(this,ae))),j(this,Me).run())};Br(Ct,4,"value",Mi,ce,Ls);xi(Ct,ce);ce.Value=it;var Rs=new Map,Ts=!1,Fr=(s,e)=>{Rs.set(s,e),Ts||(Ts=!0,queueMicrotask(()=>{Ts=!1;let t=Array.from(Rs.entries());Rs.clear();for(let[i,r]of t)i.set(r)}))},X,Qe,Le,Z,Re,W,B,pe,Q,nt,qe,ve,P,Ds,Bs,zs,Te,At,Ht,Kt=class{constructor(e,t){d(this,P);d(this,X);d(this,Qe);d(this,Le,new Vt);d(this,Z,new Map);d(this,Re,new Map);d(this,W);d(this,B);d(this,pe,new Set);d(this,Q,[]);d(this,nt,0);d(this,qe,!1);d(this,ve);d(this,Te);g(this,X,e),g(this,Qe,t),k(this,oe,be.Min,this)}get kernel(){return n(this,X)}get uuid(){return n(this,Qe)}get order(){return n(this,nt)}set order(e){n(this,nt)!==e&&(g(this,nt,e),n(this,W)&&this.parent.resortChildren())}get parentUuid(){return n(this,W)||void 0}set parentUuid(e){if(n(this,W)!==e){let t=e?n(this,X).getEntity(e):void 0;this.removeFromParent(),g(this,W,e||void 0),g(this,B,t),n(this,B)&&n(this,B).addChild(this),C(this,P,Bs).call(this)}}get parent(){return!n(this,B)&&n(this,W)&&g(this,B,n(this,X).getEntity(n(this,W))),n(this,B)}set parent(e){this.parentUuid=e==null?void 0:e.uuid}get hasParent(){return!!n(this,W)}get children(){return n(this,Q)}traverse(e){e(this);for(let t of n(this,Q))t.traverse(e)}[oe](){var e,t;n(this,Le).clear(),L(this),(e=n(this,ve))==null||e.call(this);for(let i of n(this,Re).values())i.cleanup(),i.signal.destroy();n(this,Re).clear();for(let i of n(this,Z).values())i.context.set(void 0),i.unsubscribePathValue(),(t=i.unsubscribeFromParent)==null||t.call(i),i.valuePath.dispose(),i.inherited.destroy(),i.provide.destroy(),i.context.destroy();g(this,W,void 0),g(this,B,void 0),n(this,pe).clear(),n(this,Q).length=0}addChild(e){var t;if(n(this,Q).length===0){n(this,pe).add(e.uuid),n(this,Q).push(e);return}if(n(this,pe).has(e.uuid))throw new Error(\`child with uuid: \${e.uuid} already exists! parentUuid: \${this.uuid}\`);n(this,pe).add(e.uuid),n(this,Q).push(e),this.resortChildren();for(let[,i]of n(e,Z))C(t=e,P,Ht).call(t,i)}resortChildren(){n(this,Q).sort((e,t)=>e.order-t.order)}removeChild(e){n(this,pe).has(e.uuid)&&(n(this,pe).delete(e.uuid),n(this,Q).splice(n(this,Q).indexOf(e),1))}removeFromParent(){if(n(this,B)){n(this,B).removeChild(this),g(this,B,void 0),g(this,W,void 0);for(let[,e]of n(this,Z))e.unsubscribeFromParent&&(e.unsubscribeFromParent(),e.unsubscribeFromParent=void 0);C(this,P,Ds).call(this)}}get autoDestructionOnParentRemoval(){return n(this,qe)}set autoDestructionOnParentRemoval(e){n(this,qe)!==e&&(g(this,qe,e),C(this,P,Bs).call(this))}reSubscribeToParentContexts(){for(let[,e]of n(this,Z))C(this,P,Ht).call(this,e)}dispatchMessageToView(e,t,i,r=!1){n(this,X).dispatchMessageToView({uuid:n(this,Qe),type:e,data:t,transferables:i,traverseChildren:r})}dispatchViewEvents(e){for(let{type:t,data:i}of e)E(this,Wt,t,i)}dispatchViewEvent(e,t){this.dispatchViewEvents([{type:e,data:t}])}getPropertyReader(e){return C(this,P,zs).call(this,e).get}getPropertyWriter(e){return C(this,P,zs).call(this,e).set}setProperties(e){this.clearTruthyPropsCache(),Pe(()=>{for(let[t,i]of e)this.setProperty(t,i)})}setProperty(e,t){this.getPropertyWriter(e)(t)}getProperty(e){return tt(this.getPropertyReader(e))}propKeys(){return Array.from(n(this,Le).keys())}propEntries(){return Array.from(n(this,Le).entries()).map(([e,t])=>[e,t.value])}clearTruthyPropsCache(){g(this,Te,void 0)}truthyProps(){if(n(this,Te))return n(this,Te).size?n(this,Te):void 0;let e=new Set;for(let[t,i]of n(this,Le).entries())if(typeof t=="string"){let r=i.value;r!=null&&r!==!1&&r!==""&&e.add(t)}return g(this,Te,e),e.size?e:void 0}hasContext(e){return n(this,Z).has(e)}useContext(e){return C(this,P,At).call(this,e).context.get}useParentContext(e){return C(this,P,At).call(this,e).inherited.get}provideContext(e){return C(this,P,At).call(this,e).provide}provideGlobalContext(e){if(n(this,Re).has(e))return n(this,Re).get(e).signal;let t=n(this,X).findOrCreateRootContext(e),i=x(),r=t.add(i);return n(this,Re).set(e,{cleanup:r,signal:i}),i}};X=new WeakMap,Qe=new WeakMap,Le=new WeakMap,Z=new WeakMap,Re=new WeakMap,W=new WeakMap,B=new WeakMap,pe=new WeakMap,Q=new WeakMap,nt=new WeakMap,qe=new WeakMap,ve=new WeakMap,P=new WeakSet,Ds=function(){n(this,ve)&&(n(this,ve).call(this),g(this,ve,void 0))},Bs=function(){C(this,P,Ds).call(this),n(this,qe)&&n(this,B)&&g(this,ve,k(n(this,B),oe,be.Max,()=>{g(this,ve,void 0),n(this,X).destroyEntity(n(this,Qe))}))},zs=function(e){return n(this,Le).get(e)},Te=new WeakMap,At=function(e){if(n(this,Z).has(e))return n(this,Z).get(e);let t=x(),i=x(),r=x(),o=new ce([i,t]),a=T(o,ce.Value,p=>{Fr(r,p)}),c={name:e,inherited:t,provide:i,context:r,valuePath:o,unsubscribePathValue:a};return n(this,Z).set(e,c),C(this,P,Ht).call(this,c),c},Ht=function(e){var t,i;if((t=e.unsubscribeFromParent)==null||t.call(e),e.unsubscribeFromParent=void 0,this.parent){let r=C(i=this.parent,P,At).call(i,e.name),o=Y(r.context,e.inherited);e.unsubscribeFromParent=o.destroy.bind(o)}else{let r=n(this,X).findOrCreateRootContext(e.name),o=Y(r.value$,e.inherited);e.unsubscribeFromParent=o.destroy.bind(o)}};function Li(s,e){s.indexOf(e)===-1&&s.push(e)}var Ri=s=>{let e=s.split("@").map(t=>t.trim());if(e.length===2&&e[1])return e[0]?{key:\`\${e[0]}@\${e[1]}\`,prop:e[1],token:e[0]}:{key:e[1],prop:e[1]}},Jt=(s,e)=>{for(let t of e)s.add(t)},Gr=(s,e)=>{if(s!=null)for(let t of s.constructors)e.add(t)},me,_,q,kt=class{constructor(){d(this,me,new Map);d(this,_,new Map);d(this,q,new Map)}static get(e){return e!=null?e:$r}define(e,t){n(this,me).has(e)?Li(n(this,me).get(e).constructors,t):n(this,me).set(e,{token:e,constructors:[t]})}appendRoute(e,t){let i=Ri(e);i?n(this,q).has(i.key)?Jt(n(this,q).get(i.key).routes,t):n(this,q).set(i.key,{routes:new Set(t),token:i.token}):n(this,_).has(e)?Jt(n(this,_).get(e),t):n(this,_).set(e,new Set(t))}clearRoute(e){let t=Ri(e);t?n(this,q).delete(t.key):n(this,_).delete(e)}findTokensByRoute(e,t){let i=new Set([e]),r=n(this,_).has(e)?[...n(this,_).get(e)]:[];for(;r.length;){let o=r.shift();i.has(o)||(i.add(o),n(this,_).has(o)&&r.push(...Array.from(n(this,_).get(o)).filter(a=>!i.has(a))))}if(t){for(let a of t)n(this,q).has(a)&&Jt(i,n(this,q).get(a).routes);let o;do{o=i.size;for(let a of new Set(i))for(let c of t){let p=\`\${a}@\${c}\`;n(this,q).has(p)&&Jt(i,n(this,q).get(p).routes)}}while(o!==i.size)}return i}findConstructors(e,t){let i=this.findTokensByRoute(e,t),r=new Set;for(let o of i)Gr(n(this,me).get(o),r);return r.size>0?Array.from(r):void 0}hasToken(e){return n(this,me).has(e)}hasRoute(e){return n(this,_).has(e)}clear(){n(this,me).clear(),n(this,_).clear(),n(this,q).clear()}};me=new WeakMap,_=new WeakMap,q=new WeakMap;var $r=new kt;var Ti=s=>s.displayName||s.name,Di=!1,Bi=!1,zi=!1,Fi=!1,Gi=!1,M,ee,ot,Pt,te,De,Yt=class{constructor(e){d(this,M);d(this,ee);d(this,ot);d(this,Pt);d(this,te);d(this,De);this.logger=new Dt("Kernel"),g(this,M,new Map),g(this,ee,new Set),g(this,te,!0),g(this,De,new Map),V(this),this.registry=kt.get(e)}getEntity(e){var i;let t=(i=n(this,M).get(e))==null?void 0:i.entity;if(!t)throw new Error(\`entity with uuid "\${e}" not found!\`);return t}hasEntity(e){return n(this,M).has(e)}traverseLevelOrderBFS(e=!1){if(n(this,te)){let t=new Map,i=(r,o)=>{let a=this.getEntity(r);t.has(o)?t.get(o).push(a):t.set(o,[a]);for(let c of a.children)i(c.uuid,o+1)};n(this,ee).forEach(r=>{i(r,0)}),g(this,ot,Array.from(t.entries()).sort((r,o)=>r[0]-o[0]).flatMap(([,r])=>r)),g(this,Pt,n(this,ot).slice().reverse()),g(this,te,!1)}return e?n(this,Pt):n(this,ot)}getEntityGraph(){return Array.from(n(this,ee)).map(e=>this.getEntityGraphNode(e))}getEntityGraphNode(e){if(!n(this,M).has(e))return;let{token:t,entity:i}=n(this,M).get(e);return{token:t,entity:i,props:Object.fromEntries(i.propEntries()),children:i.children.map(r=>this.getEntityGraphNode(r.uuid))}}upgradeEntities(){let e=new Map;for(let t of this.traverseLevelOrderBFS(!0))e.set(t.uuid,this.updateShadowObjects(t.uuid,2));for(let t of this.traverseLevelOrderBFS(!1))this.updateShadowObjects(t.uuid,1,e.get(t.uuid));e.clear()}run(e){this.logger.isDebug&&this.logger.debug("sync",e),Pe(()=>{for(let t of e.changeTrail)this.parse(t)})}parse(e){switch(e.type){case le.CreateEntities:this.createEntity(e.uuid,e.token,e.parentUuid,e.order,e.properties,e.autoDestructionOnParentRemoval),g(this,te,!0);break;case le.DestroyEntities:this.destroyEntity(e.uuid),g(this,te,!0);break;case le.SetParent:this.setParent(e.uuid,e.parentUuid,e.order),g(this,te,!0);break;case le.UpdateOrder:this.updateOrder(e.uuid,e.order),g(this,te,!0);break;case le.ChangeProperties:this.changeProperties(e.uuid,e.properties);break;case le.ChangeToken:this.changeToken(e.uuid,e.token);break;case le.SendEvents:this.dispatchEventsToEntity(e.uuid,e.events);break}}createEntity(e,t,i,r=0,o,a=!1){let c=new Kt(this,e);c.order=r;let p={token:t,entity:c,usedConstructors:new Map};n(this,M).set(e,p),i&&(c.parentUuid=i),c.autoDestructionOnParentRemoval=a,c.hasParent||n(this,ee).add(e),o&&c.setProperties(o),this.createShadowObjects(e)}destroyEntity(e){if(!n(this,M).has(e))return;let{entity:t,usedConstructors:i}=n(this,M).get(e),r=[...t.children];for(let o of r)o.autoDestructionOnParentRemoval?this.destroyEntity(o.uuid):(o.removeFromParent(),n(this,ee).add(o.uuid));t.removeFromParent(),E(t,oe,t),i.clear(),n(this,M).delete(t.uuid),n(this,ee).delete(t.uuid),g(this,te,!0)}setParent(e,t,i=0){let r=this.getEntity(e);if(!(r.parentUuid===t&&r.order===i)){if(t&&!n(this,M).has(t))throw new Error(\`entity with uuid "\${t}" not found!\`);r.removeFromParent(),r.order=i,r.parentUuid=t,r.hasParent?n(this,ee).delete(e):n(this,ee).add(e),r.reSubscribeToParentContexts(),queueMicrotask(()=>{this.logger.isDebug&&this.logger.debug("entity.onParentChanged",{uuid:e,parentUuid:t,order:i,entity:r}),E(r,Si,r)})}}updateOrder(e,t){this.getEntity(e).order=t}dispatchEventsToEntity(e,t){var i;(i=this.getEntity(e))==null||i.dispatchViewEvents(t)}changeProperties(e,t){this.getEntity(e).setProperties(t),this.updateShadowObjects(e)}changeToken(e,t){if(!n(this,M).has(e))return;let i=n(this,M).get(e);i.token!==t&&(i.token=t,this.updateShadowObjects(e))}dispatchMessageToView(e){queueMicrotask(()=>{E(this,ht,e)})}updateShadowObjects(e,t=0,i){let r=n(this,M).get(e);i!=null||(i=new Set(this.registry.findConstructors(r.token,r.entity.truthyProps())));let o=t===0||t===2,a=t===0||t===1;if(o){for(let[c,p]of r.usedConstructors)if(!i.has(c)){r.usedConstructors.delete(c);for(let w of p)this.destroyShadowObject(w,r.entity)}}if(a)for(let c of i)r.usedConstructors.has(c)||this.constructShadowObject(c,r);return i}constructShadowObject(e,t){let i=new Set,r=new Set,o=new Map,a=new Map,c=new Map,p=new Map,w=new Map,A=new Map,v=new Map,G=new Map,R=(l,h)=>{!Gi&&h!=null&&typeof h=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "useProperty()" is now passed as {compare} argument. Please update your code accordingly.'),Gi=!0);let u=typeof h=="function"?{compare:h}:h,f=v.get(l);if(f===void 0){f=x(void 0,u).get,v.set(l,f),G.set(l,u==null?void 0:u.compare);let b=Y(t.entity.getPropertyReader(l),f);r.add(b.destroy.bind(b))}else(u==null?void 0:u.compare)!=null&&G.get(l)!==u.compare&&console.warn(\`[shadow-objects] useProperty("\${l}"): the cached signal already exists with a different (or no) {compare} function \\u2014 the new options are ignored. Pass options only on the first call per property.\`);return f},S=V(new e({entity:t.entity,provideContext(l,h,u){var O;!Di&&u!=null&&typeof u=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "provideContext()" is now passed as {compare} argument. Please update your code accordingly.'),Di=!0);let f=typeof u=="function"?{compare:u}:u,b=w.get(l);if(b==null){let he=We(h),es=he?void 0:It(h);if(b=x(es,f!=null&&f.compare?{compare:f.compare}:void 0),he){let ct=Y(h,b);r.add(ct.destroy.bind(ct))}let at=Y(b,t.entity.provideContext(l));r.add(at.destroy.bind(at)),w.set(l,b)}return b!=null&&((O=f==null?void 0:f.clearOnDestroy)==null||O)&&r.add(()=>{b.set(void 0)}),b},provideGlobalContext(l,h,u){var O;!Bi&&u!=null&&typeof u=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "provideGlobalContext()" is now passed as {compare} argument. Please update your code accordingly.'),Bi=!0);let f=typeof u=="function"?{compare:u}:u,b=A.get(l);if(b==null){let he=We(h),es=he?void 0:It(h);if(b=x(es,f!=null&&f.compare?{compare:f.compare}:void 0),he){let ct=Y(h,b);r.add(ct.destroy.bind(ct))}let at=Y(b,t.entity.provideGlobalContext(l));r.add(at.destroy.bind(at)),A.set(l,b)}return b!=null&&((O=f==null?void 0:f.clearOnDestroy)==null||O)&&r.add(()=>{b.set(void 0)}),b},useContext(l,h){!zi&&h!=null&&typeof h=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "useContext()" is now passed as {compare} argument. Please update your code accordingly.'),zi=!0);let u=typeof h=="function"?{compare:h}:h,f=o.get(l);if(f===void 0){f=x(void 0,u).get,o.set(l,f),a.set(l,u==null?void 0:u.compare);let b=Y(t.entity.useContext(l),f);r.add(b.destroy.bind(b))}else(u==null?void 0:u.compare)!=null&&a.get(l)!==u.compare&&console.warn(\`[shadow-objects] useContext("\${String(l)}"): the cached signal already exists with a different (or no) {compare} function \\u2014 the new options are ignored. Pass options only on the first call per context.\`);return f},useParentContext(l,h){!Fi&&h!=null&&typeof h=="function"&&(console.warn('[shadow-objects] Deprecation Warning: The "isEqual" option of "useParentContext()" is now passed as {compare} argument. Please update your code accordingly.'),Fi=!0);let u=typeof h=="function"?{compare:h}:h,f=c.get(l);if(f===void 0){f=x(void 0,u).get,c.set(l,f),p.set(l,u==null?void 0:u.compare);let b=Y(t.entity.useParentContext(l),f);r.add(b.destroy.bind(b))}else(u==null?void 0:u.compare)!=null&&p.get(l)!==u.compare&&console.warn(\`[shadow-objects] useParentContext("\${String(l)}"): the cached signal already exists with a different (or no) {compare} function \\u2014 the new options are ignored. Pass options only on the first call per parent context.\`);return f},dispatchMessageToView(l,h,u,f=!1){t.entity.dispatchMessageToView(l,h,u,f)},useProperty:R,useProperties(l){let h={};for(let u in l)Object.hasOwn(l,u)&&(h[u]=R(l[u]));return h},createResource(l,h){let u=x(),f=ge(()=>{let b=It(l());return u.set(b),b!==void 0&&h?()=>{h(b),u.set(void 0)}:()=>{u.set(void 0)}});return r.add(()=>{f.destroy(),u.set(void 0),N(u)}),u},createEffect(...l){let h=ge(...l);return r.add(h.destroy),h},createSignal(...l){let h=x(...l);return r.add(()=>{N(h)}),h},createMemo(...l){let h=Ut(...l);return r.add(()=>{N(h)}),h},on(...l){let[h]=l;if(typeof h=="string"||typeof h=="symbol"||Array.isArray(h)){let f=T(t.entity,...l);return r.add(f),f}let u=T(...l);return r.add(u),Object.assign(()=>{r.delete(u),u()},u)},once(...l){let[h]=l;if(typeof h=="string"||typeof h=="symbol"||Array.isArray(h)){let f=k(t.entity,...l);return r.add(f),f}let u=k(...l);return r.add(u),Object.assign(()=>{r.delete(u),u()},u)},emit(...l){let[h]=l;typeof h=="string"||typeof h=="symbol"||Array.isArray(h)?E(t.entity,...l):E(...l)},onViewEvent(l){let h=T(t.entity,Wt,(u,f)=>{l(u,f)});r.add(h)},onDestroy(l){i.add(l)}}));return this.logger.isInfo&&this.logger.info("create shadow-object",Ti(e),{shadowObject:S,entity:t.entity}),k(t.entity,oe,be.Low,()=>{this.logger.isInfo&&this.logger.info("destroy shadow-object",Ti(e),{shadowObject:S,entity:t.entity});for(let h of i)h();for(let h of r)h();for(let h of o.values())N(h);for(let h of c.values())N(h);for(let h of v.values())N(h);for(let h of w.values())N(h);for(let h of A.values())N(h);i.clear(),r.clear(),o.clear(),c.clear(),v.clear(),w.clear(),A.clear();let l=t.usedConstructors.get(e);l&&(l.delete(S),l.size===0&&t.usedConstructors.delete(e))}),t.usedConstructors.has(e)?t.usedConstructors.get(e).add(S):t.usedConstructors.set(e,new Set([S])),this.attachShadowObject(S,t.entity),S}createShadowObjects(e){var i;let t=n(this,M).get(e);(i=this.registry.findConstructors(t.token,t.entity.truthyProps()))==null||i.forEach(r=>{this.constructShadowObject(r,t)})}findShadowObjects(e){if(!n(this,M).has(e))return[];let{usedConstructors:t}=n(this,M).get(e);return Array.from(new Set(Array.from(t.values()).flatMap(i=>Array.from(i))))}attachShadowObject(e,t){T(t,e),typeof e[Os]=="function"&&e[Os](t)}destroyShadowObject(e,t){typeof e[oe]=="function"&&e[oe](t),E(e,oe,t),L(t,e)}findOrCreateRootContext(e){let t=n(this,De).get(e);return t||(t=new ce,n(this,De).set(e,t)),t}destroy(){for(let e of n(this,De).values())e.dispose();n(this,De).clear();for(let e of this.traverseLevelOrderBFS().reverse())this.destroyEntity(e.uuid)}};M=new WeakMap,ee=new WeakMap,ot=new WeakMap,Pt=new WeakMap,te=new WeakMap,De=new WeakMap;var $i=s=>(typeof s=="string"&&(s=new URL(s,globalThis.location.href)),s.toString());var Ot,Be,Ni,Ui,ji,Xt=class{constructor(e){d(this,Be);d(this,Ot,new Set);var t,i;this.kernel=(t=e==null?void 0:e.kernel)!=null?t:new Yt,this.postMessage=(i=e==null?void 0:e.postMessage)!=null?i:self.postMessage.bind(self),T(this.kernel,ht,"onMessageToView",this)}route(e){var t;switch(e.data.type){case js:C(this,Be,Ni).call(this,e.data);break;case _s:C(this,Be,Ui).call(this,e.data);break;case Vs:C(this,Be,ji).call(this,e.data);break;default:console.warn("[MessageRouter] unknown message",(t=e.data.type)!=null?t:e.data)}}onMessageToView(e){let r=e,{transferables:t}=r,i=Ns(r,["transferables"]);this.postMessage({type:ht,data:i},{transfer:t})}};Ot=new WeakMap,Be=new WeakSet,Ni=async function(e){try{let t=await import($i(e.importModule));t[Rt]?(await ps(this.kernel,t[Rt],n(this,Ot)),this.postMessage({type:Lt,url:e.importModule})):this.postMessage({type:Lt,url:e.importModule,error:\`module has no "\${Rt}" export\`})}catch(t){console.error("[MessageRouter] failed to import module",t),this.postMessage({type:Lt,url:e.importModule,error:\`\${t}\`})}},Ui=function(e){try{this.kernel.run(e)}catch(t){console.error("[MessageRouter] failed to apply change trail",t),this.postMessage({type:ns,serial:e.serial,error:t.toString()})}e.serial&&this.postMessage({type:ns,serial:e.serial})},ji=function(e){console.debug("[MessageRouter] on destroy",e),L(this.kernel,this),n(this,Ot).clear(),this.postMessage({type:Ws})};var Zt=class{constructor(){this.onmessage=e=>{var t;e.data.type===$?globalThis[z]=e.data.config:((t=this.router)!=null||(this.router=new Xt),this.router.route(e))}}start(){self.addEventListener("message",this.onmessage),self.postMessage({type:Is})}};console.debug("@spearwolf/shadow-objects/WorkerRuntime: hello!");var Nr=new Zt;Nr.start();
22
22
  /*! Bundled license information:
23
23
 
24
24
  @spearwolf/eventize/lib/index.mjs:
25
25
  (*!
26
26
  =============================================================================
27
- @spearwolf/eventize 4.0.2+build.20250807
28
- \u2014 https://github.com/spearwolf/eventize.git
27
+ @spearwolf/eventize 5.0.0+build.20260513
28
+ \u2014 git+https://github.com/spearwolf/eventize.git
29
29
  =============================================================================
30
30
 
31
- Copyright 2015-2025 Wolfger Schramm
31
+ Copyright 2015-2026 Wolfger Schramm
32
32
 
33
33
  Licensed under the Apache License, Version 2.0 (the "License");
34
34
  you may not use this file except in compliance with the License.
@@ -43,13 +43,13 @@ var te="*",Xt=1,xt=2,kt=4,U=Symbol.for("eventize"),Hs="[eventize]",Fe=s=>s===te,
43
43
  limitations under the License.
44
44
  *)
45
45
 
46
- @spearwolf/signalize/dist/signalize.DWPi0AAt.js:
46
+ @spearwolf/signalize/dist/signalize.BQvuuTxK.js:
47
47
  @spearwolf/signalize/dist/index.js:
48
48
  @spearwolf/signalize/dist/decorators.js:
49
49
  (*!
50
50
  @file @spearwolf/signalize - signals and effects for all
51
51
  @author Wolfger Schramm <wolfger@spearwolf.de>
52
- @version 0.27.2+esm.20260204
52
+ @version 0.29.0+esm.20260513
53
53
 
54
54
  Copyright 2022-2026 Wolfger Schramm
55
55
 
@@ -67,17 +67,17 @@ var te="*",Xt=1,xt=2,kt=4,U=Symbol.for("eventize"),Hs="[eventize]",Fe=s=>s===te,
67
67
 
68
68
  *)
69
69
  */
70
- `)}var qs=()=>new Yt;var Ne=(s,e,t=1e3,r)=>new Promise((i,n)=>{let o,l,a=()=>{clearTimeout(o),s.removeEventListener("message",l)};t!==0&&t!==1/0&&(o=setTimeout(()=>{a(),n(new Error(`Timeout waiting for message of type: ${e}`))},t)),l=f=>{if(f.data.type===e)try{(!r||r(f.data))&&(a(),i())}catch(w){a(),n(w.toString())}},s.addEventListener("message",l)});var xr=s=>{let e;if(s!=null&&Array.isArray(s))for(let t of s)t.transferables&&(e?e=[...e,...t.transferables]:e=t.transferables,delete t.transferables);return e},vt=class s{static{this.WorkerLoaded="workerLoaded"}#e;#t;#s;get isDestroyed(){return this.#t}get workerLoaded(){return le(this,s.WorkerLoaded)}constructor(){this.#t=!1,this.#s=0,this.logger=new T("RemoteWorkerEnv"),B(this,s.WorkerLoaded)}async start(){if(this.#e)return this.logger.isWarn&&this.logger.warn("already started"),this.workerLoaded.then(()=>{if(this.isDestroyed)throw"worker was destroyed"});let e=this.#e=qs();this.configureConsoleLogger(e);try{if(await Ne(e,vs,Ss),this.isDestroyed)throw"worker was destroyed";e.addEventListener("message",this.onMessageFromWorker.bind(this)),queueMicrotask(()=>{y(this,s.WorkerLoaded,this)})}catch(t){throw this.logger.error("failed to start",t),this.#e=void 0,t}}applyChangeTrail(e,t){let r=xr(e),i={type:ms,changeTrail:e},n=++this.#s;return t&&(i.serial=n),this.#e.postMessage(i,r),t?Ne(this.#e,ws,ks,o=>{if(o.error)throw o.error;return o.serial===n}):Promise.resolve()}importScript(e){return e=mt(e),this.#e.postMessage({type:ys,importModule:e}),Ne(this.#e,Cs,xs,t=>{if(t.error)throw t.error;return t.url===e})}destroy(){if(!this.#e)return;let e=this.#e;this.#e=void 0,this.#t=!0,e.postMessage({type:bs}),Ne(e,Es,As).finally(()=>{e.terminate()})}onMessageFromWorker(e){e.data?.type===pe?this.onMessageToView?.(e.data.data):this.logger.isDebug&&this.logger.debug("message from worker",e)}configureConsoleLogger(e){let t=`${j}.RemoteWorkerEnv.workerConfig`,r=JSON.parse(localStorage.getItem(t)??"{}");this.logger.isInfo&&this.logger.info("load console-logger worker config",{localStorageKey:t,workerConfig:r}),e.postMessage({type:j,config:{...T.sharedConfig,enable:this.logger.isEnabled,...r,...T.isEnabled?{}:{enable:!1}}})}};var $e,We=class extends ee{static{this.observedAttributes=[...ee.observedAttributes,rt,"src",it,N]}static{this.DefaultAutoSync="frame"}#e;#t;#s;#i;#r;constructor(){super(),this.isShaeWorkerElement=!0,this.shadowEnv=new F,this.logger=new T("ShaeWorkerElement"),this.autostart=!0,this.isConnected$=p(!1),this.autoSync$=p($e.DefaultAutoSync),this.src$=p(""),this.#e=!1,this.#t=!1,this.ns$.onChange(e=>{this.shadowEnv.view=M.get(e)}),m(this.shadowEnv,F.ContextCreated,()=>{this.#r?.run(),this.dispatchEvent(new CustomEvent(F.ContextCreated.toLowerCase(),{bubbles:!1,detail:{shadowEnv:this.shadowEnv}}))}),m(this.shadowEnv,F.ContextLost,()=>{this.dispatchEvent(new CustomEvent(F.ContextLost.toLowerCase(),{bubbles:!1,detail:{shadowEnv:this.shadowEnv}}))}),this.autoSync$.onChange(e=>{let t=this.hasAttribute(N),r=t?this.getAttribute(N):void 0;e===$e.DefaultAutoSync?t&&r!==e&&this.setAttribute(N,e):r!==e&&this.setAttribute(N,e)}),this.#a(),this.#n(),this.style.display="contents"}#n(){this.#r=C(()=>{let e=this.src$.get();e&&this.importScript(e)},{autorun:!1})}get shouldAutostart(){return this.autostart&&!je(this,Ds)}get autoSync(){return this.autoSync$.value}set autoSync(e){typeof e!="string"&&(e=e?$e.DefaultAutoSync:"no"),this.autoSync$.set(`${e}`.trim().toLowerCase())}get frameLoop(){return this.#s??=new ge,this.#s}[ge.OnFrame](){this.syncShadowObjects()}async importScript(e){if(!e)throw new Error("src is blank");let t=await this.shadowEnv.ready();return this.logger.isInfo&&this.logger.info("shadowEnv importScript:",e,{shadowEnv:t}),await t.envProxy.importScript(e),this}connectedCallback(){P(()=>{this.hasAttribute(N)&&this.autoSync$.set(this.getAttribute(N)),this.isConnected$.set(!0)}),this.shouldAutostart&&this.start()}disconnectedCallback(){this.isConnected$.set(!1),this.#o()}attributeChangedCallback(e){if(super.attributeChangedCallback(e),e===rt&&this.shadowEnv.envProxy!=null)throw new Error('Changing the "local" attribute after the shadowEnv has been created is not supported.');if(e===it&&this.#h(),e===N&&(this.autoSync=this.hasAttribute(N)?this.getAttribute(N):!0),e==="src"){let t=(this.getAttribute("src")||"").trim();this.src$.set(t),this.shadowEnv.isReady&&this.#r?.run()}}start(){if(!this.#t){if(this.#e=!1,this.shadowEnv.view??=M.get(this.ns),this.shadowEnv.envProxy==null){let e=je(this,rt)?new bt:new vt;this.shadowEnv.envProxy=e,this.#h()}this.#t=!0}return this.shadowEnv.ready()}destroy(){this.#i?.destroy(),this.#r?.destroy(),O(this.isConnected$,this.autoSync$,this.src$),this.shadowEnv.envProxy=void 0,this.shadowEnv.destroy()}#o(){this.#e||(this.#e=!0,queueMicrotask(()=>{this.#e&&this.destroy()}))}#a(){this.#i=C(()=>{if(this.isConnected$.get()){let e=(this.autoSync$.get()||$e.DefaultAutoSync).trim().toLowerCase(),t;if(["true","yes","on","frame","auto-sync"].includes(e))return this.logger.isDebug&&this.logger.debug("auto-sync",e,this),this.frameLoop.start(this),()=>{this.frameLoop.stop(this)};if(e.toLowerCase().endsWith("fps")){let r=parseInt(e,10);r>0?t=Math.floor(1e3/r):this.logger.isWarn&&this.logger.warn(`invalid auto-sync value: ${e}`)}else t=parseInt(e,10),isNaN(t)&&(t=void 0,["false","no","off"].includes(e)||this.logger.error(`invalid auto-sync value: ${e}`));if(t!==void 0&&t>0){this.logger.isDebug&&this.logger.debug("auto-sync interval (ms)",t,this);let r=setInterval(()=>{this.syncShadowObjects()},t);return()=>{clearInterval(r)}}else this.logger.isDebug&&this.logger.debug("auto-sync off",this)}},[this.autoSync$,this.isConnected$])}#h(){let e=this.shadowEnv.envProxy;e?.isLocalEnv&&(e.disableStructuredClone=this.hasAttribute(it))}};$e=We;customElements.define(Ls,We);globalThis.SHADOW_ENTS_BUNDLE_LOADED=!0;
70
+ `)}var Qi=()=>new Ls;var at=(s,e,t=1e3,i)=>new Promise((r,n)=>{let o,a,f=()=>{clearTimeout(o),s.removeEventListener("message",a)};t!==0&&t!==1/0&&(o=setTimeout(()=>{f(),n(new Error(`Timeout waiting for message of type: ${e}`))},t)),a=m=>{if(m.data.type===e)try{(!i||i(m.data))&&(f(),r())}catch(P){f(),n(P.toString())}},s.addEventListener("message",a)});var Xr=s=>{let e;if(s!=null&&Array.isArray(s))for(let t of s)t.transferables&&(e?e=[...e,...t.transferables]:e=t.transferables,delete t.transferables);return e},Ut=class s{constructor(){this.#t=!1,this.#s=0,this.logger=new D("RemoteWorkerEnv"),ee(this,s.WorkerLoaded)}static{this.WorkerLoaded="workerLoaded"}#e;#t;#s;get isDestroyed(){return this.#t}get workerLoaded(){return Ae(this,s.WorkerLoaded)}async start(){if(this.#e)return this.logger.isWarn&&this.logger.warn("already started"),this.workerLoaded.then(()=>{if(this.isDestroyed)throw"worker was destroyed"});let e=this.#e=Qi();this.configureConsoleLogger(e);try{if(await at(e,ci,pi),this.isDestroyed)throw"worker was destroyed";e.addEventListener("message",this.onMessageFromWorker.bind(this)),queueMicrotask(()=>{y(this,s.WorkerLoaded,this)})}catch(t){throw this.logger.error("failed to start",t),this.#e=void 0,t}}applyChangeTrail(e,t){let i=Xr(e),r={type:hi,changeTrail:e},n=++this.#s;return t&&(r.serial=n),this.#e.postMessage(r,i),t?at(this.#e,ui,yi,o=>{if(o.error)throw o.error;return o.serial===n}):Promise.resolve()}importScript(e){return e=Bt(e),this.#e.postMessage({type:ai,importModule:e}),at(this.#e,di,gi,t=>{if(t.error)throw t.error;return t.url===e})}destroy(){if(!this.#e)return;let e=this.#e;this.#e=void 0,this.#t=!0,e.postMessage({type:li}),at(e,fi,vi).finally(()=>{e.terminate()})}onMessageFromWorker(e){e.data?.type===Me?this.onMessageToView?.(e.data.data):this.logger.isDebug&&this.logger.debug("message from worker",e)}configureConsoleLogger(e){let t=`${z}.RemoteWorkerEnv.workerConfig`,i=JSON.parse(localStorage.getItem(t)??"{}");this.logger.isInfo&&this.logger.info("load console-logger worker config",{localStorageKey:t,workerConfig:i}),e.postMessage({type:z,config:{...D.sharedConfig,enable:this.logger.isEnabled,...i,...D.isEnabled?{}:{enable:!1}}})}};var Gt=class s extends pe{constructor(){super(),this.isShaeWorkerElement=!0,this.shadowEnv=new Y,this.logger=new D("ShaeWorkerElement"),this.autostart=!0,this.isConnected$=p(!1),this.autoSync$=p(s.DefaultAutoSync),this.src$=p(""),this.#e=!1,this.#t=!1,this.ns$.onChange(e=>{this.shadowEnv.view=F.get(e)}),w(this.shadowEnv,Y.ContextCreated,()=>{this.#i?.run(),this.dispatchEvent(new CustomEvent(Y.ContextCreated.toLowerCase(),{bubbles:!1,detail:{shadowEnv:this.shadowEnv}}))}),w(this.shadowEnv,Y.ContextLost,()=>{this.dispatchEvent(new CustomEvent(Y.ContextLost.toLowerCase(),{bubbles:!1,detail:{shadowEnv:this.shadowEnv}}))}),this.autoSync$.onChange(e=>{let t=this.hasAttribute(V),i=t?this.getAttribute(V):void 0;e===s.DefaultAutoSync?t&&i!==e&&this.setAttribute(V,e):i!==e&&this.setAttribute(V,e)}),this.#a(),this.#n(),this.style.display="contents"}static{this.observedAttributes=[...pe.observedAttributes,ut,"src",dt,V]}static{this.DefaultAutoSync="frame"}#e;#t;#s;#r;#i;#n(){this.#i=S(()=>{let e=this.src$.get();e&&this.importScript(e)},{autorun:!1})}get shouldAutostart(){return this.autostart&&!et(this,$s)}get autoSync(){return this.autoSync$.value}set autoSync(e){typeof e!="string"&&(e=e?s.DefaultAutoSync:"no"),this.autoSync$.set(`${e}`.trim().toLowerCase())}get frameLoop(){return this.#s??=new tt,this.#s}[tt.OnFrame](){this.syncShadowObjects()}async importScript(e){if(!e)throw new Error("src is blank");let t=await this.shadowEnv.ready();return this.logger.isInfo&&this.logger.info("shadowEnv importScript:",e,{shadowEnv:t}),await t.envProxy.importScript(e),this}connectedCallback(){N(()=>{this.hasAttribute(V)&&this.autoSync$.set(this.getAttribute(V)),this.isConnected$.set(!0)}),this.shouldAutostart&&this.start()}disconnectedCallback(){this.isConnected$.set(!1),this.#o()}attributeChangedCallback(e){if(super.attributeChangedCallback(e),e===ut&&this.shadowEnv.envProxy!=null)throw new Error('Changing the "local" attribute after the shadowEnv has been created is not supported.');if(e===dt&&this.#l(),e===V&&(this.autoSync=this.hasAttribute(V)?this.getAttribute(V):!0),e==="src"){let t=(this.getAttribute("src")||"").trim();this.src$.set(t),this.shadowEnv.isReady&&this.#i?.run()}}start(){if(!this.#t){if(this.#e=!1,this.shadowEnv.view??=F.get(this.ns),this.shadowEnv.envProxy==null){let e=et(this,ut)?new Vt:new Ut;this.shadowEnv.envProxy=e,this.#l()}this.#t=!0}return this.shadowEnv.ready()}destroy(){this.#r?.destroy(),this.#i?.destroy(),L(this.isConnected$,this.autoSync$,this.src$),this.shadowEnv.envProxy=void 0,this.shadowEnv.destroy()}#o(){this.#e||(this.#e=!0,queueMicrotask(()=>{this.#e&&this.destroy()}))}#a(){this.#r=S(()=>{if(this.isConnected$.get()){let e=(this.autoSync$.get()||s.DefaultAutoSync).trim().toLowerCase(),t;if(["true","yes","on","frame","auto-sync"].includes(e))return this.logger.isDebug&&this.logger.debug("auto-sync",e,this),this.frameLoop.start(this),()=>{this.frameLoop.stop(this)};if(e.toLowerCase().endsWith("fps")){let i=parseInt(e,10);i>0?t=Math.floor(1e3/i):this.logger.isWarn&&this.logger.warn(`invalid auto-sync value: ${e}`)}else t=parseInt(e,10),isNaN(t)&&(t=void 0,["false","no","off"].includes(e)||this.logger.error(`invalid auto-sync value: ${e}`));if(t!==void 0&&t>0){this.logger.isDebug&&this.logger.debug("auto-sync interval (ms)",t,this);let i=setInterval(()=>{this.syncShadowObjects()},t);return()=>{clearInterval(i)}}else this.logger.isDebug&&this.logger.debug("auto-sync off",this)}},[this.autoSync$,this.isConnected$])}#l(){let e=this.shadowEnv.envProxy;e?.isLocalEnv&&(e.disableStructuredClone=this.hasAttribute(dt))}};customElements.define(Ns,Gt);globalThis.SHADOW_ENTS_BUNDLE_LOADED=!0;
71
71
  /*! Bundled license information:
72
72
 
73
73
  @spearwolf/eventize/lib/index.mjs:
74
74
  (*!
75
75
  =============================================================================
76
- @spearwolf/eventize 4.0.2+build.20250807
77
- — https://github.com/spearwolf/eventize.git
76
+ @spearwolf/eventize 5.0.0+build.20260513
77
+ git+https://github.com/spearwolf/eventize.git
78
78
  =============================================================================
79
79
 
80
- Copyright 2015-2025 Wolfger Schramm
80
+ Copyright 2015-2026 Wolfger Schramm
81
81
 
82
82
  Licensed under the Apache License, Version 2.0 (the "License");
83
83
  you may not use this file except in compliance with the License.
@@ -92,13 +92,13 @@ var te="*",Xt=1,xt=2,kt=4,U=Symbol.for("eventize"),Hs="[eventize]",Fe=s=>s===te,
92
92
  limitations under the License.
93
93
  *)
94
94
 
95
- @spearwolf/signalize/dist/signalize.DWPi0AAt.js:
95
+ @spearwolf/signalize/dist/signalize.BQvuuTxK.js:
96
96
  @spearwolf/signalize/dist/index.js:
97
97
  @spearwolf/signalize/dist/decorators.js:
98
98
  (*!
99
99
  @file @spearwolf/signalize - signals and effects for all
100
100
  @author Wolfger Schramm <wolfger@spearwolf.de>
101
- @version 0.27.2+esm.20260204
101
+ @version 0.29.0+esm.20260513
102
102
 
103
103
  Copyright 2022-2026 Wolfger Schramm
104
104