@spearwolf/shadow-objects 0.28.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,47 +5,55 @@ All notable changes to [@spearwolf/shadow-objects](https://github.com/spearwolf/
5
5
  The format is loosely based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.29.0] - 2026-01-21
9
+
10
+ - **New Feature:** Added `forward-custom-events` attribute to `<shae-ent>` custom element.
11
+ - Allows forwarding events emitted by the internal `ViewComponent` (Shadow Object) as standard DOM `CustomEvent`s on the `<shae-ent>` element.
12
+ - Supports forwarding all events or filtering specific event types (e.g., `forward-custom-events="my-event,another-event"`).
13
+ - Event payload is passed as `detail` property of the `CustomEvent`.
14
+
8
15
  ## [0.28.0] - 2026-01-20
9
16
 
10
17
  - **API Update:** `on()` and `once()` in `ShadowObjectCreationAPI` now support an implicit event source.
11
- - If the first argument is a `string`, `symbol`, or `[]`, the `entity` is automatically used as the event source.
12
- - Example: `on('eventName', callback)` is equivalent to `on(entity, 'eventName', callback)`.
13
- - This simplifies the common case of listening to entity events.
18
+ - If the first argument is a `string`, `symbol`, or `[]`, the `entity` is automatically used as the event source.
19
+ - Example: `on('eventName', callback)` is equivalent to `on(entity, 'eventName', callback)`.
20
+ - This simplifies the common case of listening to entity events.
14
21
  - **API Update:** introduce `onViewEvent()` in `ShadowObjectCreationAPI`
15
- - Simplifies listening to view events dispatched to the entity.
16
- - Example:
17
- ```typescript
18
- onViewEvent((type, data) => {
19
- if (type === 'my-event') {
20
- // handle event
21
- }
22
- });
23
- ```
22
+ - Simplifies listening to view events dispatched to the entity.
23
+ - Example:
24
+ ```typescript
25
+ onViewEvent((type, data) => {
26
+ if (type === 'my-event') {
27
+ // handle event
28
+ }
29
+ });
30
+ ```
24
31
  - **Refactor** the `EntityApi` type
25
32
  - **Refactor** the `useProperties` supports type maps now
26
33
  - **Documentation:** Comprehensive update to the documentation structure and content.
27
34
 
28
35
  ### ⚠️ Breaking Changes
36
+
29
37
  - The _entity_ events `onCreate`, `onDestroy`, `onParentChanged` and `onViewEvent` changed to _symbols_.
30
- - Update your event listeners accordingly:
31
- - import the event symbols from the package:
32
- ```typescript
33
- import { onCreate, onDestroy, onParentChanged, onViewEvent } from '@spearwolf/shadow-objects/shadow-objects.js';
34
- ```
35
- - _Functional Shadow-Objects:_
36
- - **Before:** `on(entity, 'onCreate', ...)`
37
- - **After:** `on(onCreate, ...)`
38
- - _Class-based Shadow-Objects:_
39
- - **Before:** `onCreate(entity)`
40
- - **After:** `[onCreate](entity)`
38
+ - Update your event listeners accordingly:
39
+ - import the event symbols from the package:
40
+ ```typescript
41
+ import {onCreate, onDestroy, onParentChanged, onViewEvent} from '@spearwolf/shadow-objects/shadow-objects.js';
42
+ ```
43
+ - _Functional Shadow-Objects:_
44
+ - **Before:** `on(entity, 'onCreate', ...)`
45
+ - **After:** `on(onCreate, ...)`
46
+ - _Class-based Shadow-Objects:_
47
+ - **Before:** `onCreate(entity)`
48
+ - **After:** `[onCreate](entity)`
41
49
 
42
50
  ## [0.27.0] - 2026-01-19
43
51
 
44
52
  ### ⚠️ Breaking Changes
45
53
 
46
54
  - **API Update:** `dispatchMessageToView` has been moved from the `entity` instance to the `ShadowObjectCreationAPI`.
47
- - **Before:** `entity.dispatchMessageToView(...)`
48
- - **After:** `dispatchMessageToView(...)` (available as an argument in the constructor/factory function)
55
+ - **Before:** `entity.dispatchMessageToView(...)`
56
+ - **After:** `dispatchMessageToView(...)` (available as an argument in the constructor/factory function)
49
57
  - **Type Definitions:** Removed `dispatchMessageToView` from `EntityApi` interface.
50
58
 
51
59
  ## [0.26.4] - 2026-01-15
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.28.0+bundle.20260120
4
+ @version 0.29.0+bundle.20260121
5
5
 
6
6
  Copyright 2026 Wolfger Schramm
7
7
 
@@ -18,7 +18,7 @@ See the License for the specific language governing permissions and
18
18
  limitations under the License.
19
19
 
20
20
  */
21
- var ie="*",ss=1,Tt=2,Pt=4,V=Symbol.for("eventize"),Qs="[eventize]",ze=s=>s===ie,rs=s=>{switch(typeof s){case"string":case"symbol":return!0;default:return!1}},is=typeof console<"u",Ys=is?console[console.warn?"warn":"log"].bind(console,Qs):()=>{},Ks=(s,e,t)=>(Object.defineProperty(s,e,{value:t,configurable:!0}),s),Js=0,ns=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:Js++})}isKnown(s){return this.eventNames.has(s)}emit(s,e,t=[]){if(ze(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}},kt=(s,e,t,r)=>{if(typeof e=="function"){let i=e.apply(s,t);i!=null&&r?.(i)}},Xs=(s,e,t,r)=>kt(e,e.emit,[s].concat(t),r),Zs=s=>{switch(typeof s){case"function":return ss;case"string":case"symbol":return Tt;case"object":return Pt}},er=0,tr=()=>++er,os=class{id;eventName;isCatchEmAll;priority;listener;listenerObject;listenerType;callAfterApply;isRemoved;refCount;constructor(s,e,t,r=null){this.id=tr(),this.eventName=s,this.isCatchEmAll=ze(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===ie||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 ss:kt(i,r,e,t),this.callAfterApply&&this.callAfterApply();break;case Tt:kt(i,i[r],e,t),this.callAfterApply&&this.callAfterApply();break;case Pt:{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 Xs(s,r,e,t);this.callAfterApply&&this.callAfterApply()}break}}}},sr=(s,e)=>s.priority!==e.priority?e.priority-s.priority:s.id-e.id,Zt=s=>s?.slice(0),es=(s,e)=>{let t=s.indexOf(e);t>-1&&s.splice(t,1)},rr=s=>s===Pt||s===Tt,At=(s,e,t)=>{let r=s.findIndex(i=>i.isEqual(e,t));r>-1&&(s[r].isRemoved=!0,s.splice(r,1))},Fe=(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)At(s,i,void 0)},xt=s=>{s&&(s.forEach(e=>{e.isRemoved=!0}),s.length=0)},ir=(s,e)=>s.listenerType===e.listenerType?s.priority===e.priority&&s.eventName===e.eventName&&s.listenerObject===e.listenerObject&&s.listener===e.listener:!1,nr=(s,e)=>{if(rr(s.listenerType))return e.find(t=>ir(s,t))},or=(s,e)=>{let t=nr(s,e);return t?(t.refCount+=1,t):(e.push(s),e.sort(sr),s)},ar=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 or(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&&ze(s)?this.removeAllListeners():e==null&&rs(s)?xt(this.namedListeners.get(s)):s instanceof os?s.isRemoved||(s.refCount-=1,s.refCount<1&&(s.isRemoved=!0,this.namedListeners.forEach(r=>es(r,s)),es(this.catchEmAllListeners,s))):t?ze(s)&&typeof s=="object"?Fe(this.catchEmAllListeners,ie,s):this.namedListeners.forEach(r=>Fe(r,s,e)):(this.namedListeners.forEach(r=>{At(r,s,e),typeof s=="object"&&Fe(r,void 0,s)}),At(this.catchEmAllListeners,s,e),typeof s=="object"&&Fe(this.catchEmAllListeners,void 0,s))}removeAllListeners(){this.namedListeners.forEach(s=>xt(s)),this.namedListeners.clear(),xt(this.catchEmAllListeners)}forEach(s,e){let t=Zt(this.catchEmAllListeners),r=Zt(this.namedListeners.get(s));if(s===ie||!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}},ne=s=>!!(s&&s[V]);function Ee(s){if(ne(s))return s;let e=new ar,t=new ns;return Ks(s,V,{keeper:t,store:e}),s}var U={Max:Number.POSITIVE_INFINITY,AAA:1e9,BB:1e6,C:1e3,Default:0,Low:-1e4,Min:Number.NEGATIVE_INFINITY},hr=(s,e,t,r,i,n,o)=>{let l=s.add(new os(t,r,i,n));return e.emit(t,l,o),l},lr=(s,e,t,r)=>{let i=t.length,n=typeof t[0],o,l,a,f;if(i>=2&&i<=3&&n==="number"?(o=ie,[l,a,f]=t):i>=3&&i<=4&&typeof t[1]=="number"?[o,l,a,f]=t:(l=U.Default,n==="string"||n==="symbol"||Array.isArray(t[0])?[o,a,f]=t:(o=ie,[a,f]=t)),!a&&is)throw Ys("called with insufficient arguments!",t),"subscribeTo() called with insufficient arguments!";let C=v=>u=>hr(s,e,u,v,a,f,r);return Array.isArray(o)?o.map(v=>Array.isArray(v)?C(v[1])(v[0]):C(l)(v)):C(l)(o)},as=(s,e,t)=>{let r=[],i=lr(s,e,t,r);return ns.publish(r),i},ts=s=>e=>{e.callAfterApply=()=>{s?.()}},hs=(s,e)=>Object.assign(()=>x(s,e),Array.isArray(e)?{listeners:e}:{listener:e}),ls=(s,e,t,r)=>{let{store:i,keeper:n}=s[V];Array.isArray(e)?e.forEach(o=>{i.forEach(o,l=>l.apply(o,t,r)),n.retain(o,t)}):e!==ie&&(i.forEach(e,o=>{o.apply(e,t,r)}),n.retain(e,t))},m=(s,...e)=>{let t=Ee(s),{store:r,keeper:i}=t[V];return hs(t,as(r,i,e))},E=(s,...e)=>{let t=Ee(s),{store:r,keeper:i}=t[V],n=as(r,i,e),o=hs(t,n),l=!1,a=()=>{l||(o(),l=!0)};return Array.isArray(n)?n.forEach(ts(a)):ts(a)(n),a},fe=(s,e)=>new Promise(t=>{E(s,e,t)}),x=(s,e,t)=>{if(!ne(s))throw new Error("object is not eventized");let{store:r,keeper:i}=s[V],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")):rs(e)&&i.remove(e)},g=(s,e,...t)=>{if(!ne(s))throw new Error("object is not eventized");ls(s,e,t)},ur=(s,e,...t)=>{if(!ne(s))throw new Error("object is not eventized");let r=[];return ls(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()},G=(s,e)=>{let t=Ee(s),{keeper:r}=t[V];r.add(e)},J=(s,e)=>{if(!ne(s))throw new Error("object is not eventized");let{keeper:t}=s[V];t.clear(e)},k=(()=>{let s=(e={})=>Ee(e);return s.inject=(e={})=>(e=Ee(e),Object.assign(e,{on:(...t)=>m(e,...t),once:(...t)=>E(e,...t),onceAsync:t=>fe(e,t),off:(t,r)=>x(e,t,r),emit:(t,...r)=>g(e,t,...r),emitAsync:(t,...r)=>ur(e,t,...r),retain:t=>G(e,t),retainClear:t=>J(e,t)}),e),s.is=ne,s})();var Ot=s=>ne(s)?s[V]?.store?.getSubscriptionCount()??0:0;var L=Symbol.for("signal"),oe=Symbol.for("effect"),Rt=Symbol.for("destroySignal"),Mt=Symbol.for("createEffect"),us=Symbol.for("destroyEffect"),pe="value",Lt="mute",jt="unmute",X="destroy",ae=Symbol.for("recall");var he=k(),I=k(),B=k(),Ve=k();var le=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(B,(i,n)=>{n===ae&&e.add(i)}),m(Ve,i=>{e.add(i)})],r=this.delayedEffects.flatMap(([,i])=>Array.from(i));for(let i of r)e.has(i)||g(B,i,i,ae);t.forEach(i=>{i()})}},cs=()=>le.current;function P(s){let e=le.current;e?e=void 0:e=le.current=new le;try{s()}finally{e&&(le.current=void 0,e.run())}}var Dt=0;function _t(s){Dt++;try{s()}finally{Dt--}}function Ue(){return Dt>0}var Ge=class{[oe];constructor(e){this[oe]=e,E(e,ge.Destroy,()=>{this[oe]=void 0})}run=()=>this[oe]?.run();destroy=()=>{this[oe]?.destroy(),this[oe]=void 0}};var Z=new Map,j=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:Z.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){Z.get(e)?.clear()}static clear(){for(let e of Z.values())e.destroy();Z.clear()}constructor(e){if(e!=null&&e instanceof s)return e;if(e??=this,Z.has(e))return Z.get(e);this.#h=e,Z.set(e,this),k(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=S(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=S(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=S(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(){g(this,X,this),x(this);for(let e of this.#e)e.destroy();for(let e of this.#n)e.destroy();for(let e of this.#t)A(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&&(Z.delete(this.#h),this.#h=void 0)}};var ye=class{#e;#t;constructor(e="id",t=1){this.#e=e,this.#t=t}make(){return Symbol(`${this.#e}${this.#t++}`)}};var Nt=[],Be=()=>Nt.at(-1),ds=(s,e)=>{Nt.push(s);try{return e()}finally{Nt.pop()}};var cr=s=>s!=null&&typeof s.then=="function",ge=class s{static idGen=new ye("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){k(this),this.callback=e;let r;t?.attach!=null&&(r=j.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(B,this.id,ae,this),++s.count}hasStaticDeps(){return this.#n!=null&&this.#n.length>0}saveSignalsFromDeps(){for(let e of this.#n)this.whenSignalIsRead(S(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=Be();return l!=null?(o=l.getCurrentChildEffect(),o==null&&(o=new s(e,n),l.attachChildEffect(o),g(B,Mt,o)),l.curChildEffectSlot++):(o=new s(e,n),g(B,Mt,o)),o.hasStaticDeps()?o.saveSignalsFromDeps():o.autorun&&o.run(),new Ge(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.curChildEffectSlot=0,this.shouldRun=!1,g(Ve,this.id,this.id),this.hasStaticDeps()?this.#e=this.callback():(this.#s=new Set(this.#t),this.#e=ds(this,this.callback),this.cleanupLostSignals(),this.#r.clear()))};[ae](){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(he,e,this.priority,ae,this),E(I,e,Rt,this)]))}[Rt](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)}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,cr(e)?Promise.resolve(e).then(t=>{typeof t=="function"&&t()}):e()}}destroy=()=>{this.#o||(g(this,s.Destroy,this),x(this),g(B,us,this),this.runCleanupCallback(),x(he,this),x(B,this),x(I,this),this.#o=!0,this.#t.clear(),this.#s.clear(),this.#i.clear(),this.#r.clear(),this.childEffects.forEach(e=>{e.destroy()}),this.childEffects.length=0,--s.count)}};var w=(...s)=>ge.createEffect(...s);var Se=new WeakMap,dr=s=>{let e=Se.get(s);return e||(e={},Se.set(s,e)),e},R=(s,e)=>Se.get(s)?.signals?.get(e);var fs=(s,e,t)=>{let r=dr(s);r.signals??=new Map,r.signals.set(e,t)};function xe(...s){for(let e of s)if(Se.has(e)){let t=Se.get(e);if(t.signals){for(let r of t.signals.values())A(r);t.signals.clear(),t.signals=void 0}}}function ps(s){let e=S(q(s)?s:R(...s));e!=null&&!e.muted&&!e.destroyed&&qe(e.id,e.value,{touch:!0})}function ue(s){return q(s)?S(s)?.value:S(R(...s))?.value}var He=class{[L];constructor(e){this[L]=e}get get(){return this[L].reader}get set(){return this[L].writer}get value(){return ue(this.get)}set value(e){this.set(e)}onChange(e){let{destroy:t}=w(()=>e(this.value),[this.get]);return t}get muted(){return this[L].muted}set muted(e){this[L].muted=e}touch(){ps(this)}destroy(){A(this)}};var fr=new ye("si");function gs(s){Ue()||Be()?.whenSignalIsRead(s)}function qe(s,e,t){Ue()||g(he,s,e,t)}var q=s=>s!=null&&s[L]!=null,pr=s=>{let e=t=>(t?w(()=>(s.destroyed||gs(s.id),t(s.value)),[e]):s.destroyed||(s.beforeRead?.(),gs(s.id)),s.value);return Object.defineProperty(e,L,{value:s}),e},Qe=class s{static instanceCount=0;id;lazy;get[L](){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)){qe(this.id,this.#e);return}(t?.touch??!1)&&qe(this.id,this.#e,{touch:!0})};object;constructor(e,t){this.id=fr.make(),++s.instanceCount,this.lazy=e,this.lazy?(this.value=void 0,this.valueFn=t):(this.value=t,this.valueFn=void 0),this.reader=pr(this),this.object=new He(this)}},S=s=>s?.[L];function p(s=void 0,e){let t;if(q(s))t=S(s);else{let r=e?.lazy??!1;t=new Qe(r,s),t.beforeRead=e?.beforeRead,t.compare=e?.compare}return e?.attach!=null&&j.findOrCreate(e.attach).attachSignal(t),t.object}var A=(...s)=>{for(let e of s){let t=S(e);t!=null&&!t.destroyed&&(t.destroyed=!0,t.beforeRead=void 0,--Qe.instanceCount,g(I,t.id,t.id))}};function $t(s,e){let t=p(),r=e?.attach!=null?j.findOrCreate(e.attach):void 0;r!=null&&(e?.name?r.attachSignalByName(e.name,t):r.attachSignal(t));let i=w(()=>{P(()=>{t.set(s())})},{autorun:!(e?.lazy??!1),priority:e?.priority??U.C,attach:r}),n=S(t);return n.beforeRead=i.run,E(I,n.id,i.destroy),t.get}var Ye=class{#e=!1;#t;source;lastValue;isDestroyed=!1;constructor(e){k(this),this.source=S(e),this.#t=m(he,this.source.id,(t,r)=>{!this.#e&&!this.isDestroyed&&(r?.touch===!0?this.touch():this.write())}),E(I,this.source.id,()=>this.destroy())}attach(e){let t=j.findOrCreate(e);return t.attachLink(this),E(this,X,()=>{t.detachLink(this)}),t}nextValue(){return new Promise((e,t)=>{let r=[],i=()=>r.forEach(n=>{n()});r.push(E(this,pe,n=>{i(),e(n)}),E(this,X,()=>{i(),t()}))})}async*asyncValues(e){let t=0;for(;!this.isDestroyed;)try{let r=await this.nextValue();if(e&&e(r,t++))break;G(this,pe),yield r}catch{break}J(this,pe)}destroy(){this.isDestroyed||(this.#t?.(),this.#t=void 0,g(this,X,this),J(this,pe),x(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,g(this,Lt,this)),this}unmute(){return!this.isDestroyed&&this.#e&&(this.#e=!1,g(this,jt,this)),this}toggleMute(){return this.isDestroyed||(this.#e=!this.#e,g(this,this.#e?Lt:jt,this)),this.#e}updateValue(e){if(!this.#e&&!this.isDestroyed){let{value:t}=this.source;e(t),g(this,pe,t),this.lastValue=t}}},Ke=class extends Ye{target;constructor(e,t){super(e),this.target=S(t),E(I,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)})}},Je=class extends Ye{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)})}};var Xe=new Map;function M(s,e,t){let r=S(s),i;if(Xe.has(r)){i=Xe.get(r);let f=S(e)??e;if(i.has(f))return i.get(f)}else i=new Map,Xe.set(r,i);let n=S(e),o=n!=null?new Ke(s,n):new Je(s,e),l=t?.attach;l&&o.attach(l);let a=n??e;return i.set(a,o),E(o,X,()=>{i.delete(a),i.size===0&&Xe.delete(r)}),o}var Ze=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 F;(function(s){s[s.StructuralChanges=1]="StructuralChanges",s[s.ContentUpdates=2]="ContentUpdates",s[s.Removal=3]="Removal"})(F||(F={}));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 ce=Symbol.for("ShadowEntsGlobalNS"),H="#void",ys="contextLost",ms="configure",bs="changeTrail",vs="destroy",ws="loaded",Cs="appliedChangeTrail",Es="importedModule",Ss="destroyed",me="messageToView",xs=6e4,ks=6e4,As=5e3,Ts=5e3,Wt="shadowObjects";function Ps(s,e){s.indexOf(e)===-1&&s.push(e)}function It(s,e){let t=s.indexOf(e);t!==-1&&s.splice(t,1),s.push(e)}function ee(s,e){let t=s.indexOf(e);t!==-1&&s.splice(t,1)}var de=s=>typeof s=="string"?s.trim()||ce:typeof s=="symbol"?s:ce;var ke="#root",Ae=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=H;#o;#a=0;#h;#l;#u;create(e=H,t,r=0){this.#t++,this.#i++,this.#h=e,this.#l=t??ke,this.#u=r||void 0}destroy(){this.#r++,this.#t++}clear(){this.#t=0,this.#s=!1,this.#h=void 0,this.#l=void 0,this.#u=void 0,this.#d.clear(),this.#f.length=0,this.#g.length=0,this.#p.clear()}changeToken(e){e===this.#n?this.#h=void 0:(this.#h=e,this.#t++)}setParent(e){e===this.#o?this.#l=void 0:(this.#l=e??ke,this.#t++)}changeOrder(e){e===this.#a?this.#u=void 0:(this.#u=e,this.#t++)}#c=new Map;#d=new Map;#f=[];changeProperty(e,t,r){let i=this.#c.get(e);r==null&&t!==i||r!=null&&!r(t,i)?(this.#d.set(e,t),It(this.#f,e),this.#t++):(this.#d.delete(e),ee(this.#f,e))}removeProperty(e){let t=this.#c.has(e);this.#d.has(e)?(this.#d.delete(e),t||ee(this.#f,e)):t&&(It(this.#f,e),this.#t++)}#g=[];#p=new Set;createEvent(e,t,r){this.#g.push({type:e,data:t}),r?.forEach(i=>this.#p.add(i)),this.#t++}transferEventsTo(e){this.#g.length>0&&(e.#g.push(...this.#g),this.#g.length=0),this.#p.size>0&&(e.#p=new Set([...e.#p,...this.#p]),this.#p.clear())}buildChangeTrail(e,t){let{isNew:r,isCreated:i,isDestroyed:n}=this;if(!(r&&n))switch(t){case F.StructuralChanges:r?e.push(this.makeCreateEntityChange()):n||(this.#l!==void 0&&!(this.#l===ke&&this.#o===void 0)?e.push(this.makeSetParentChange()):this.#u!==void 0&&this.#u!==this.#a&&e.push(this.makeUpdateOrderChange()),this.#h!==void 0&&this.#h!==this.#n&&e.push(this.makeChangeToken()));break;case F.ContentUpdates:!r&&i&&this.#f.length>0&&e.push(this.makeChangePropertyChange()),this.#g.length>0&&e.push(this.makeEvents());break;case F.Removal:n&&e.push(this.makeDestroyEntityChange());break}}makeEvents(){let e={type:b.SendEvents,uuid:this.#e,events:this.#g.slice(0)};return this.#p.size>0&&(e.transferables=Array.from(this.#p)),e}makeCreateEntityChange(){let e={type:b.CreateEntities,uuid:this.#e,token:this.#h};if(this.#n=this.#h,this.#l!==void 0){let t=this.#l===ke?void 0:this.#l;this.#o=t,t!==void 0&&(e.parentUuid=t)}return this.#d.size>0&&(e.properties=Array.from(this.#d.entries()).filter(([,t])=>t!==void 0),e.properties.forEach(([t,r])=>this.#c.set(t,r))),this.#u!==void 0&&this.#u!==this.#a&&(e.order=this.#a=this.#u),e}makeDestroyEntityChange(){return{type:b.DestroyEntities,uuid:this.#e}}makeSetParentChange(){this.#o=this.#l===ke?void 0:this.#l;let e={type:b.SetParent,uuid:this.#e,parentUuid:this.#o};return this.#u!==void 0&&this.#u!==this.#a&&(e.order=this.#a=this.#u),e}makeUpdateOrderChange(){return this.#a=this.#u??0,{type:b.UpdateOrder,uuid:this.#e,order:this.#a}}makeChangeToken(){return this.#n=this.#h??H,{type:b.ChangeToken,uuid:this.#e,token:this.#n}}makeChangePropertyChange(){let e=this.#f.map(t=>{if(this.#d.has(t)){let r=this.#d.get(t);return this.#c.set(t,r),[t,r]}else return this.#c.delete(t),[t,void 0]});return{type:b.ChangeProperties,uuid:this.#e,properties:e}}};var Os=s=>{if(!(s===void 0||s.length===0))return s.filter(e=>e.length===1||e[1]!==void 0)},Ft=(s,e)=>{if(s===e||e===void 0)return s;if(s===void 0)return Os(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 Os(s)};var et=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=Ft(r.properties,t)}changeToken({uuid:e,token:t}){this.getComponentState(e).token=t||H}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||H,parentUuid:r,order:i??0,properties:Ft(void 0,n)})}};var $=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=de(e),r=s.getContextsMap();return r.has(t)?r.get(t):new s(t)}#e=new Map;#t=[];#s=new et;constructor(e=ce){let t=de(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 Ae(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),ee(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);ee(t.children,e.uuid),this.#n(e,t.children)}else ee(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,F.StructuralChanges);for(let i of r)i.buildChangeTrail(t,F.ContentUpdates);for(let i of r)i.buildChangeTrail(t,F.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 Ae(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(ys)}}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),ee(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 Te(s,e,t,r,i,n){function o(N){if(N!==void 0&&typeof N!="function")throw new TypeError("Function expected");return N}for(var l=r.kind,a=l==="getter"?"get":l==="setter"?"set":"value",f=!e&&s?r.static?s:s.prototype:null,C=e||(f?Object.getOwnPropertyDescriptor(f,r.name):{}),v,u=!1,h=t.length-1;h>=0;h--){var d={};for(var c in r)d[c]=c==="access"?{}:r[c];for(var c in r.access)d.access[c]=r.access[c];d.addInitializer=function(N){if(u)throw new TypeError("Cannot add initializers after decoration has completed");n.push(o(N||null))};var y=(0,t[h])(l==="accessor"?{get:C.get,set:C.set}:C[a],d);if(l==="accessor"){if(y===void 0)continue;if(y===null||typeof y!="object")throw new TypeError("Object expected");(v=o(y.get))&&(C.get=v),(v=o(y.set))&&(C.set=v),(v=o(y.init))&&i.unshift(v)}else(v=o(y))&&(l==="field"?i.unshift(v):C[a]=v)}f&&Object.defineProperty(f,r.name,C),u=!0}function te(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 Pe(s){return function(e,t){let r=s?.name||t.name,i=!!(s?.readAsValue??!1);return{get(){let n=R(this,r);if(n)return i?n.value:n.get()},set(n){R(this,r)?.set(n)},init(n){let o=p(n,s);return fs(this,r,o),j.findOrCreate(this).attachSignalByName(r,o),o.value}}}}var _="ConsoleLogger",D=`${_}Storage`,gr=!!(globalThis.location?.host?.startsWith("localhost")??!1),Re="localStorage"in globalThis,tt=Symbol.for(_),Rs=!1,Ms=s=>{if(typeof s=="boolean")return s;switch(s.toLowerCase()){case"true":case"yes":case"on":return!0;default:return!1}},Vt=s=>[Re?_:void 0,...Array.isArray(s)?s:[s]].filter(Boolean).join(".");function zt(s,e=void 0,t){let r=Vt(s),i=Re?localStorage.getItem(r):globalThis[D]?.[r];return i!=null?e(i):t}function Oe(s,e){Re?localStorage.setItem(Vt(s),e):(globalThis[D]==null&&(globalThis[D]={},console.debug(`${_}: Initialize`,{[D]:globalThis[D]})),globalThis[D][Vt(s)]=e)}var O=class s{static{this.sharedConfig={enable:gr,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(){Re?(["enable","debug","info","warn"].forEach(e=>{this.sharedConfig[e]=zt(e,Ms,this.sharedConfig[e])}),["debug","info","warn","error"].forEach(e=>{this.sharedStyles[e]=zt(["styles",e],void 0,this.sharedStyles[e])}),s.isDebug&&console.debug(`${_}: Load config from localStorage`,s.sharedConfig),globalThis[_]?.[tt]||(globalThis[_]??={[tt]:!0,get enable(){return s.sharedConfig.enable},set enable(e){s.sharedConfig.enable=e,Oe("enable",e?"true":"false")},get debug(){return s.sharedConfig.debug},set debug(e){s.sharedConfig.debug=e,Oe("debug",e?"true":"false")},get info(){return s.sharedConfig.info},set info(e){s.sharedConfig.info=e,Oe("info",e?"true":"false")},get warn(){return s.sharedConfig.warn},set warn(e){s.sharedConfig.warn=e,Oe("warn",e?"true":"false")}})):globalThis[D]?.[tt]||(globalThis[D]={[tt]:!0,...s.sharedConfig,...globalThis[D]},s.sharedConfig=globalThis[D],s.isDebug&&console.debug(`${_}: Load config from ${D}`,globalThis[D]))}constructor(e){this.enable=!0,this.namespace=(e||"").trim()||_,Rs||(s.loadConfig(),Rs=!0);let t=[this.namespace,"enable"];this.enable=zt(t,Ms,this.enable),Oe(t,Re?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 z=(()=>{var s;let e,t=[],r=[],i,n=[],o=[];return class Q{static{let a=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;e=[Pe()],i=[Pe()],Te(this,null,e,{kind:"accessor",name:"viewReady",static:!1,private:!1,access:{has:f=>"viewReady"in f,get:f=>f.viewReady,set:(f,C)=>{f.viewReady=C}},metadata:a},t,r),Te(this,null,i,{kind:"accessor",name:"proxyReady",static:!1,private:!1,access:{has:f=>"proxyReady"in f,get:f=>f.proxyReady,set:(f,C)=>{f.proxyReady=C}},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 O("ShadowEnv"),this.ns$=p(),this.#o=te(this,t,!1),this.#a=(te(this,r),te(this,n,!1)),this.#h=(te(this,o),!1),this.ready=async()=>this.isReady?this:fe(this,Q.ContextCreated),this.#l=()=>{this.#s&&this.#u()},G(this,Q.ContextCreated),m(this,Q.ContextLost,U.AAA,()=>{J(this,Q.ContextCreated)}),w(()=>{if(this.viewReady&&this.proxyReady)return this.view.reCreateChanges(),g(this,Q.ContextCreated,this),this.#i&&(this.#i=!1,this.#u()),()=>{g(this,Q.ContextLost,this)}},[R(this,"viewReady"),R(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.#c.bind(this)),f&&f.destroy(),this.proxyReady=!1,a?.start().then(()=>{this.proxyReady=!0}).catch(C=>{this.logger.error("failed to start envProxy",C),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.#l))}syncWait(){return this.#r=!0,this.sync(),this.#n?this.#n:(this.#n=fe(this,Q.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),xe(this),x(this),this.#h=!0,Object.freeze(this)}#l;async#u(){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{g(this,Q.AfterSync,a)}}}#c(a){this.logger.isDebug&&this.logger.debug("onMessageToView",a.type,a.data),this.view?.dispatchMessage(a.uuid,a.type,a.data,a.traverseChildren)}}})();var T=["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"],yr=()=>{let s=Math.random()*4294967295|0,e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,r=Math.random()*4294967295|0;return(T[s&255]+T[s>>8&255]+T[s>>16&255]+T[s>>24&255]+"-"+T[e&255]+T[e>>8&255]+"-"+T[e>>16&15|64]+T[e>>24&255]+"-"+T[t&63|128]+T[t>>8&255]+"-"+T[t>>16&255]+T[t>>24&255]+T[r&255]+T[r>>8&255]+T[r>>16&255]+T[r>>24&255]).toLowerCase()},Ls=()=>globalThis?.crypto?.randomUUID?.()??yr();var Me=class extends Error{constructor(e){super(e),this.name="ViewComponentError"}},st=class s{#e;#t;#s;#i;#r=0;get uuid(){return this.#e}get token(){return this.#t}set token(e){e??=H,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 Me("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){k(this),t instanceof s&&(t={parent:t}),this.#e=t?.uuid??Ls(),this.#t=e,this.#r=t?.order??0,this.#i=t?.parent;let r=t?.context??$.get();if(this.#i&&this.#i.#s!==r)throw new Me("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 Me("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(g(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 rt="shaeRequestEntParent",it="shaeReRequestEntParent",js="shae-worker",nt="shae-ent",Ds="shae-prop",se="token";var ot="local",_s="no-autostart",at="no-structured-clone",W="auto-sync";var ht="name",lt="value",ut="type",ct="no-trim";var Le=new Set(["on","true","yes","local","1"]);var Ns=s=>de(s.getAttribute("ns")),De=(s,e)=>{if(s.hasAttribute(e)){let t=s.getAttribute(e)?.trim()?.toLowerCase()||"1";return Le.has(t)}return!1};var $s=(s,e)=>{e.set(Ns(s))},Ut=new Set,Gt=!1,mr=s=>{Ut.add(s),Gt||(Gt=!0,queueMicrotask(()=>{Gt=!1;for(let e of Ut)z.get(e)?.sync();Ut.clear()}))},re=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(de(e))}constructor(){super(),this.isShaeElement=!0,this.ns$=p(ce),this.ns$.onChange(e=>{typeof e=="string"&&e.length>0?this.getAttribute("ns")!==e&&this.setAttribute("ns",e):this.removeAttribute("ns")}),$s(this,this.ns$)}attributeChangedCallback(e){e==="ns"&&$s(this,this.ns$)}syncShadowObjects(){mr(this.ns)}};var dt=class extends re{static{this.observedAttributes=[...re.observedAttributes,se]}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.#n=!0,this.#d=()=>{let e=this.findShadowRootHost();e!=null&&this.dispatchEvent(new CustomEvent(it,{bubbles:!0,composed:!0,detail:{requester:this,shadowRootHost:e}}))},this.#f=e=>{let t=e.detail?.requester;if(t===this||!t?.isShaeEntElement||t.ns!==this.ns)return;e.detail?.shadowRootHost&&this.#l()},this.#g=e=>{let t=e.detail?.requester;t!==this&&t?.isShaeEntElement&&t.ns===this.ns&&(e.stopPropagation(),t.#c(this))},this.ns$.onChange(e=>{this.componentContext$.set($.get(e)),this.isConnected&&this.#l()}),this.#p(),this.token$.onChange(e=>{e==null?this.removeAttribute(se):this.getAttribute(se)!==e&&this.setAttribute(se,e)}),w(()=>{let e=this.viewComponent$.get();if(e){let t=m(e,$.ReRequestParentRoots,()=>this.#h()),r=e.context?.ns;return()=>{t(),e.destroy(),r&&r!==this.ns?z.get(r)?.sync():this.syncShadowObjects()}}}),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 st(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.#d,{capture:!1,passive:!1}),this.addEventListener(rt,this.#g,{capture:!1,passive:!1}),this.#s(),_t(()=>this.#p()),this.componentContext==null&&this.componentContext$.set($.get(this.ns)),this.#l(),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.#c(void 0),this.#l()}#a(){this.#e?.disconnect(),this.#e=void 0}attributeChangedCallback(e){super.attributeChangedCallback(e),e===se&&this.#p()}disconnectedCallback(){this.#n=!0,this.#a(),this.removeEventListener("slotchange",this.#d,{capture:!1}),this.removeEventListener(rt,this.#g,{capture:!1}),this.#c(void 0),this.componentContext$.set(void 0),this.syncShadowObjects(),this.#i()}#h(){this.isConnected&&(this.#c(void 0),this.#l())}#l(){this.dispatchEvent(new CustomEvent(rt,{bubbles:!0,composed:!0,detail:{requester:this}}))}#u;#c(e){if(this.entParentNode!==e)if(this.entParentNode&&this.entParentNode.removeEventListener(it,this.#f,{capture:!1}),this.entParentNode=e,this.entParentNode&&this.entParentNode.addEventListener(it,this.#f,{capture:!1,passive:!1}),this.#u?.(),this.#u=void 0,e){let t=w(()=>{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.#l()}),this.syncShadowObjects()}});this.#u=()=>t.destroy()}else{let t=this.viewComponent;t.parent&&(t.parent=void 0,this.syncShadowObjects())}}#d;#f;#g;#p(){if(this.hasAttribute(se)){let e=this.getAttribute(se)?.trim()||void 0;this.token$.set(e)}}};customElements.define(nt,dt);var br=s=>{let e=s.parentElement;for(;e;){if(e.isShaeEntElement)return e;e=e.parentElement}},vr=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"]),ft=class extends HTMLElement{static{this.observedAttributes=[ht,lt,ut,ct]}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 O("ShaePropElement"),this.#e=()=>{this.entNode$.set(br(this))},this.#t=()=>{queueMicrotask(()=>{this.isConnected||this.entNode$.set(void 0)})},this.#s=()=>{this.name$.set(this.getAttribute(ht)?.trim()??void 0)},this.#i=()=>{this.valueIn$.set(this.getAttribute(lt))},this.#r=()=>{let e=this.getAttribute(ut)?.trim().toLowerCase();e&&!vr.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(!De(this,ct))},this.entNode$.onChange(e=>{if(e){let t=M(e.viewComponent$,this.viewComponent$);return()=>{t.destroy()}}else this.viewComponent$.set(void 0)}),w(()=>{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()}}}),w(()=>{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=Le.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=>Le.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 ht:this.#s();break;case lt:this.#i();break;case ut:this.#r();break;case ct:this.#n();break}}disconnectedCallback(){this.#t()}#e;#t;#s;#i;#r;#n};customElements.whenDefined(nt).then(()=>customElements.define(Ds,ft));var pt,Bt=null,be=class{static{this.OnFrame=Symbol("onFrame")}#e=0;#t=0;constructor(){if(Bt)return Bt;k(this),Bt=this}start(e){if(e!=null)return Ot(this)===0&&this.#i(),m(this,pt.OnFrame,e),this.#t++,()=>{this.stop(e)}}stop(e){x(this,pt.OnFrame,e),Ot(this)===0&&this.#r()}#s=e=>{g(this,pt.OnFrame,e),this.#i()};#i(){this.#e=requestAnimationFrame(this.#s)}#r(){cancelAnimationFrame(this.#e),this.#e=0}};pt=be;var gt=s=>s??void 0;var ve="value",_e=(()=>{let s,e=[],t=[];return class{static{let i=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;s=[Pe({name:ve})],Te(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=ve}#e;#t;#s;get value(){return this.#s}set value(i){this.#s=i}constructor(i){this.#e=[],this.#s=te(this,e,void 0),this.value$=te(this,t),G(this,ve),this.value$=R(this,ve),this.value$.onChange(n=>g(this,ve,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,J(this,ve),x(this),this.value$.destroy(),xe(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=w(()=>{let i;for(let n of this.#e){let o=ue(n);if(o!=null){i=o;break}}this.value=i},this.#e),this.#t.run())}}})();var qt=Symbol("onCreate"),Y=Symbol("onDestroy"),Ws=Symbol("onParentChanged"),yt=Symbol("onViewEvent");var Ht=new Map,Qt=!1,wr=(s,e)=>{Ht.set(s,e),Qt||(Qt=!0,queueMicrotask(()=>{Qt=!1;let t=Array.from(Ht.entries());Ht.clear();for(let[r,i]of t)r.set(i)}))},mt=class{#e;#t;#s=new Ze;#i=new Map;#r=new Map;#n;#o;#a=new Set;#h=[];#l=0;get kernel(){return this.#e}get uuid(){return this.#t}get order(){return this.#l}set order(e){this.#l!==e&&(this.#l=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,Y,U.Min,this)}traverse(e){e(this);for(let t of this.#h)t.traverse(e)}[Y](){this.#s.clear(),x(this);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)}}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)g(this,yt,t,r)}dispatchViewEvent(e,t){this.dispatchViewEvents([{type:e,data:t}])}#u(e){return this.#s.get(e)}getPropertyReader(e){return this.#u(e).get}getPropertyWriter(e){return this.#u(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 ue(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 _e([r,t]),o=m(n,_e.Value,a=>{wr(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=M(t.context,e.inherited);e.unsubscribeFromParent=r.destroy.bind(r)}else{let t=this.#e.findOrCreateRootContext(e.name),r=M(t.value$,e.inherited);e.unsubscribeFromParent=r.destroy.bind(r)}}};var Is=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]}},bt=(s,e)=>{for(let t of e)s.add(t)},Cr=(s,e)=>{if(s!=null)for(let t of s.constructors)e.add(t)},Ne=class{static get(e){return e??Er}#e=new Map;#t=new Map;#s=new Map;define(e,t){this.#e.has(e)?Ps(this.#e.get(e).constructors,t):this.#e.set(e,{token:e,constructors:[t]})}appendRoute(e,t){let r=Is(e);r?this.#s.has(r.key)?bt(this.#s.get(r.key).routes,t):this.#s.set(r.key,{routes:new Set(t),token:r.token}):this.#t.has(e)?bt(this.#t.get(e),t):this.#t.set(e,new Set(t))}clearRoute(e){let t=Is(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)&&bt(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)&&bt(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)Cr(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()}},Er=new Ne;var K;(function(s){s[s.CreateAndDestroy=0]="CreateAndDestroy",s[s.JustCreate=1]="JustCreate",s[s.DestroyOnly=2]="DestroyOnly"})(K||(K={}));var Fs=s=>s.displayName||s.name,zs=!1,Vs=!1,Us=!1,Gs=!1,Bs=!1,vt=class{#e;#t;#s;#i;#r;#n;constructor(e){this.logger=new O("Kernel"),this.#e=new Map,this.#t=new Set,this.#r=!0,this.#n=new Map,k(this),this.registry=Ne.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,K.DestroyOnly));for(let t of this.traverseLevelOrderBFS(!1))this.updateShadowObjects(t.uuid,K.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){let o=new mt(this,e);o.order=i;let l={token:t,entity:o,usedConstructors:new Map};this.#e.set(e,l),r&&(o.parentUuid=r),o.hasParent||this.#t.add(e),n&&o.setProperties(n),this.createShadowObjects(e)}destroyEntity(e){if(!this.#e.has(e))return;let{entity:t,usedConstructors:r}=this.#e.get(e);t.removeFromParent(),g(t,Y,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}),g(i,Ws,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(()=>{g(this,me,e)})}updateShadowObjects(e,t=K.CreateAndDestroy,r){let i=this.#e.get(e);r??=new Set(this.registry.findConstructors(i.token,i.entity.truthyProps()));let n=t===K.CreateAndDestroy||t===K.DestroyOnly,o=t===K.CreateAndDestroy||t===K.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,C=(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 d=typeof h=="function"?{compare:h}:h,c=f.get(u);if(c===void 0){c=p(void 0,d).get,f.set(u,c);let y=M(t.entity.getPropertyReader(u),c);i.add(y.destroy.bind(y))}return c},v=k(new e({entity:t.entity,provideContext(u,h,d){!zs&&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.'),zs=!0);let c=typeof d=="function"?{compare:d}:d,y=l.get(u);if(y==null){let N=q(h),St=N?void 0:gt(h);if(y=p(St,c?.compare?{compare:c.compare}:void 0),N){let Ce=M(h,y);i.add(Ce.destroy.bind(Ce))}let we=M(y,t.entity.provideContext(u));i.add(we.destroy.bind(we)),l.set(u,y)}return y!=null&&(c?.clearOnDestroy??!0)&&i.add(()=>{y.set(void 0)}),y},provideGlobalContext(u,h,d){!Vs&&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.'),Vs=!0);let c=typeof d=="function"?{compare:d}:d,y=a.get(u);if(y==null){let N=q(h),St=N?void 0:gt(h);if(y=p(St,c?.compare?{compare:c.compare}:void 0),N){let Ce=M(h,y);i.add(Ce.destroy.bind(Ce))}let we=M(y,t.entity.provideGlobalContext(u));i.add(we.destroy.bind(we)),a.set(u,y)}return y!=null&&(c?.clearOnDestroy??!0)&&i.add(()=>{y.set(void 0)}),y},useContext(u,h){!Us&&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.'),Us=!0);let d=typeof h=="function"?{compare:h}:h,c=n.get(u);if(c===void 0){c=p(void 0,d).get,n.set(u,c);let y=M(t.entity.useContext(u),c);i.add(y.destroy.bind(y))}return c},useParentContext(u,h){!Gs&&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.'),Gs=!0);let d=typeof h=="function"?{compare:h}:h,c=o.get(u);if(c===void 0){c=p(void 0,d).get,o.set(u,c);let y=M(t.entity.useParentContext(u),c);i.add(y.destroy.bind(y))}return c},dispatchMessageToView(u,h,d,c=!1){t.entity.dispatchMessageToView(u,h,d,c)},useProperty:C,useProperties(u){let h={};for(let d in u)Object.hasOwn(u,d)&&(h[d]=C(u[d]));return h},createResource(u,h){let d=p(),c=w(()=>{let y=gt(u());return d.set(y),y!==void 0&&h?()=>{h(y),d.set(void 0)}:()=>{d.set(void 0)}});return i.add(()=>{c.destroy(),d.set(void 0),A(d)}),d},createEffect(...u){let h=w(...u);return i.add(h.destroy),h},createSignal(...u){let h=p(...u);return i.add(()=>{A(h)}),h},createMemo(...u){let h=$t(...u);return i.add(()=>{A(h)}),h},on(...u){let[h]=u;if(typeof h=="string"||typeof h=="symbol"||Array.isArray(h)){let c=m(t.entity,...u);return i.add(c),c}let d=m(...u);return i.add(d),d},once(...u){let[h]=u;if(typeof h=="string"||typeof h=="symbol"||Array.isArray(h)){let c=E(t.entity,...u);return i.add(c),c}let d=E(...u);return i.add(d),d},onViewEvent(u){let h=m(t.entity,yt,(d,c)=>{u(d,c)});i.add(h)},onDestroy(u){r.add(u)}}));return this.logger.isInfo&&this.logger.info("create shadow-object",Fs(e),{shadowObject:v,entity:t.entity}),E(t.entity,Y,U.Low,()=>{this.logger.isInfo&&this.logger.info("destroy shadow-object",Fs(e),{shadowObject:v,entity:t.entity});for(let h of r)h();for(let h of i)h();for(let h of n.values())A(h);for(let h of o.values())A(h);for(let h of f.values())A(h);for(let h of l.values())A(h);for(let h of a.values())A(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[qt]=="function"&&e[qt](t)}destroyShadowObject(e,t){typeof e[Y]=="function"&&e[Y](t),g(e,Y,t),x(t,e)}findOrCreateRootContext(e){let t=this.#n.get(e);return t||(t=new _e,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 Yt(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=>Yt(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 wt=s=>(typeof s=="string"&&(s=new URL(s,globalThis.location.href)),s.toString());function qs(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 Ct=class{#e;get registry(){return this.kernel.registry}constructor(e){this.#e=new Set,this.isLocalEnv=!0,this.disableStructuredClone=!1,this.kernel=new vt(e),m(this.kernel,me,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:qs(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(wt(e));t[Wt]&&await this.importModule(t[Wt])}async importModule(e){return Yt(this.kernel,e,this.#e)}destroy(){this.kernel.destroy(),this.registry.clear(),this.#e.clear()}};function Kt(s){let e=new Blob([s],{type:"text/javascript"}),t=URL.createObjectURL(e),r=new Worker(t);return URL.revokeObjectURL(t),r}function Jt(){return Kt('var Ys=Object.defineProperty;var oe=Object.getOwnPropertySymbols;var Be=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable;var Hs=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),qe=e=>{throw TypeError(e)};var me=(e,t,s)=>t in e?Ys(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,we=(e,t)=>{for(var s in t||(t={}))Be.call(t,s)&&me(e,s,t[s]);if(oe)for(var s of oe(t))We.call(t,s)&&me(e,s,t[s]);return e};var Je=(e,t)=>{var s={};for(var i in e)Be.call(e,i)&&t.indexOf(i)<0&&(s[i]=e[i]);if(e!=null&&oe)for(var i of oe(e))t.indexOf(i)<0&&We.call(e,i)&&(s[i]=e[i]);return s};var p=(e,t,s)=>me(e,typeof t!="symbol"?t+"":t,s),Ce=(e,t,s)=>t.has(e)||qe("Cannot "+s);var r=(e,t,s)=>(Ce(e,t,"read from private field"),s?s.call(e):t.get(e)),y=(e,t,s)=>t.has(e)?qe("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),f=(e,t,s,i)=>(Ce(e,t,"write to private field"),i?i.call(e,s):t.set(e,s),s),C=(e,t,s)=>(Ce(e,t,"access private method"),s);var Ke=(e,t,s,i)=>({set _(a){f(e,t,a,s)},get _(){return r(e,t,i)}});var Ee=function(e,t){this[0]=e,this[1]=t},Ye=(e,t,s)=>{var i=(n,d,g,m)=>{try{var w=s[n](d),h=(d=w.value)instanceof Ee,l=w.done;Promise.resolve(h?d[0]:d).then(u=>h?i(n==="return"?n:"next",d[1]?{done:u.done,value:u.value}:u,g,m):g({value:u,done:l})).catch(u=>i("throw",u,g,m))}catch(u){m(u)}},a=n=>o[n]=d=>new Promise((g,m)=>i(n,d,g,m)),o={};return s=s.apply(e,t),o[Hs("asyncIterator")]=()=>o,a("next"),a("throw"),a("return"),o};var He;(function(e){e[e.StructuralChanges=1]="StructuralChanges",e[e.ContentUpdates=2]="ContentUpdates",e[e.Removal=3]="Removal"})(He||(He={}));var tt;(function(e){e[e.CreateEntities=1]="CreateEntities",e[e.DestroyEntities=2]="DestroyEntities",e[e.SetParent=3]="SetParent",e[e.UpdateOrder=4]="UpdateOrder",e[e.ChangeProperties=5]="ChangeProperties",e[e.ChangeToken=6]="ChangeToken",e[e.SendEvents=7]="SendEvents"})(tt||(tt={}));var Qs="configure",Xs="changeTrail",Zs="destroy",_s="loaded",Qe="appliedChangeTrail",Se="importedModule",ti="destroyed",De="messageToView",ke="shadowObjects",N="ConsoleLogger",x=`${N}Storage`,gs,vs,bs,ei=!!((bs=(vs=(gs=globalThis.location)==null?void 0:gs.host)==null?void 0:vs.startsWith("localhost"))!=null&&bs),Qt="localStorage"in globalThis,he=Symbol.for(N),Xe=!1,Ze=e=>{if(typeof e=="boolean")return e;switch(e.toLowerCase()){case"true":case"yes":case"on":return!0;default:return!1}},Le=e=>[Qt?N:void 0,...Array.isArray(e)?e:[e]].filter(Boolean).join(".");function Ae(e,t=void 0,s){var o;let i=Le(e),a=Qt?localStorage.getItem(i):(o=globalThis[x])==null?void 0:o[i];return a!=null?t(a):s}function Ut(e,t){Qt?localStorage.setItem(Le(e),t):(globalThis[x]==null&&(globalThis[x]={},console.debug(`${N}: Initialize`,{[x]:globalThis[x]})),globalThis[x][Le(e)]=t)}var wt,Wt,v,si=(v=class{constructor(t){y(this,wt);this.enable=!0,this.namespace=(t||"").trim()||N,Xe||(v.loadConfig(),Xe=!0);let s=[this.namespace,"enable"];this.enable=Ae(s,Ze,this.enable),Ut(s,Qt?this.enable?"true":"false":this.enable)}static get isEnabled(){return v.sharedConfig.enable}static get isDebug(){return v.sharedConfig.enable&&v.sharedConfig.debug}static loadConfig(){var t,s,i;Qt?(["enable","debug","info","warn"].forEach(a=>{this.sharedConfig[a]=Ae(a,Ze,this.sharedConfig[a])}),["debug","info","warn","error"].forEach(a=>{this.sharedStyles[a]=Ae(["styles",a],void 0,this.sharedStyles[a])}),v.isDebug&&console.debug(`${N}: Load config from localStorage`,v.sharedConfig),(t=globalThis[N])!=null&&t[he]||((s=globalThis[N])!=null||(globalThis[N]={[he]:!0,get enable(){return v.sharedConfig.enable},set enable(a){v.sharedConfig.enable=a,Ut("enable",a?"true":"false")},get debug(){return v.sharedConfig.debug},set debug(a){v.sharedConfig.debug=a,Ut("debug",a?"true":"false")},get info(){return v.sharedConfig.info},set info(a){v.sharedConfig.info=a,Ut("info",a?"true":"false")},get warn(){return v.sharedConfig.warn},set warn(a){v.sharedConfig.warn=a,Ut("warn",a?"true":"false")}}))):(i=globalThis[x])!=null&&i[he]||(globalThis[x]=we(we({[he]:!0},v.sharedConfig),globalThis[x]),v.sharedConfig=globalThis[x],v.isDebug&&console.debug(`${N}: Load config from ${x}`,globalThis[x]))}get isEnabled(){return this.enable&&v.sharedConfig.enable}get isDebug(){return this.isEnabled&&v.sharedConfig.debug}get isInfo(){return this.isEnabled&&v.sharedConfig.info}get isWarn(){return this.isEnabled&&v.sharedConfig.warn}debug(...t){C(this,wt,Wt).call(this,"debug",v.sharedStyles.debug,t)}info(...t){C(this,wt,Wt).call(this,"info",v.sharedStyles.info,t)}warn(...t){C(this,wt,Wt).call(this,"warn",v.sharedStyles.warn,t)}error(...t){C(this,wt,Wt).call(this,"error",v.sharedStyles.error,t)}},wt=new WeakSet,Wt=function(t,s,i){console[t](`%c${this.namespace}`,s,...i)},v.sharedConfig={enable:ei,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"},v.sharedStyles={get debug(){return v.sharedConfig["styles.debug"]},set debug(t){v.sharedConfig["styles.debug"]=t},get info(){return v.sharedConfig["styles.info"]},set info(t){v.sharedConfig["styles.info"]=t},get warn(){return v.sharedConfig["styles.warn"]},set warn(t){v.sharedConfig["styles.warn"]=t},get error(){return v.sharedConfig["styles.error"]},set error(t){v.sharedConfig["styles.error"]=t}},v),Mt="*",Os=1,$e=2,Ie=4,vt=Symbol.for("eventize"),ii="[eventize]",pe=e=>e===Mt,Ms=e=>{switch(typeof e){case"string":case"symbol":return!0;default:return!1}},js=typeof console<"u",ri=js?console[console.warn?"warn":"log"].bind(console,ii):()=>{},ai=(e,t,s)=>(Object.defineProperty(e,t,{value:s,configurable:!0}),e),ni=0,Ts=class{constructor(){p(this,"events",new Map);p(this,"eventNames",new Set)}static publish(e){e.sort((t,s)=>t.order-s.order).forEach(t=>t.emit())}add(e){Array.isArray(e)?e.forEach(t=>this.eventNames.add(t)):this.eventNames.add(e)}remove(e){Array.isArray(e)?e.forEach(t=>this.eventNames.delete(t)):this.eventNames.delete(e),this.clear(e)}clear(e){Array.isArray(e)?e.forEach(t=>this.events.delete(t)):this.events.delete(e)}retain(e,t){this.eventNames.has(e)&&this.events.set(e,{args:t,order:ni++})}isKnown(e){return this.eventNames.has(e)}emit(e,t,s=[]){if(pe(e))this.eventNames.forEach(i=>this.emit(i,t,s));else if(this.events.has(e)){let{order:i,args:a}=this.events.get(e);s.push({order:i,emit:()=>t.apply(e,a)})}return s}},Re=(e,t,s,i)=>{if(typeof t=="function"){let a=t.apply(e,s);a!=null&&(i==null||i(a))}},oi=(e,t,s,i)=>Re(t,t.emit,[e].concat(s),i),hi=e=>{switch(typeof e){case"function":return Os;case"string":case"symbol":return $e;case"object":return Ie}},li=0,di=()=>++li,Ds=class{constructor(e,t,s,i=null){p(this,"id");p(this,"eventName");p(this,"isCatchEmAll");p(this,"priority");p(this,"listener");p(this,"listenerObject");p(this,"listenerType");p(this,"callAfterApply");p(this,"isRemoved");p(this,"refCount");this.id=di(),this.eventName=e,this.isCatchEmAll=pe(e),this.listener=s,this.listenerObject=i,this.priority=t,this.listenerType=hi(s),this.callAfterApply=void 0,this.isRemoved=!1,this.refCount=1}isEqual(e,t=null){if(e===this)return!0;let s=typeof e;return s==="number"&&e===this.id?!0:t===null&&(s==="string"||s==="symbol")?e===Mt||e===this.eventName:this.listener===e&&this.listenerObject===t}apply(e,t,s){if(this.isRemoved)return;let{listener:i,listenerObject:a}=this;switch(this.listenerType){case Os:Re(a,i,t,s),this.callAfterApply&&this.callAfterApply();break;case $e:Re(a,a[i],t,s),this.callAfterApply&&this.callAfterApply();break;case Ie:{let o=i[e];if(this.isCatchEmAll||this.eventName===e){if(typeof o=="function"){let n=o.apply(i,t);n!=null&&(s==null||s(n))}else oi(e,i,t,s);this.callAfterApply&&this.callAfterApply()}break}}}},ui=(e,t)=>e.priority!==t.priority?t.priority-e.priority:e.id-t.id,_e=e=>e==null?void 0:e.slice(0),ts=(e,t)=>{let s=e.indexOf(t);s>-1&&e.splice(s,1)},ci=e=>e===Ie||e===$e,xe=(e,t,s)=>{let i=e.findIndex(a=>a.isEqual(t,s));i>-1&&(e[i].isRemoved=!0,e.splice(i,1))},le=(e,t,s)=>{let i=[];for(let a of e)(t==null&&a.listenerObject===s||a.eventName===t&&a.listener===s)&&i.push(a);for(let a of i)xe(e,a,void 0)},Pe=e=>{e&&(e.forEach(t=>{t.isRemoved=!0}),e.length=0)},fi=(e,t)=>e.listenerType===t.listenerType?e.priority===t.priority&&e.eventName===t.eventName&&e.listenerObject===t.listenerObject&&e.listener===t.listener:!1,pi=(e,t)=>{if(ci(e.listenerType))return t.find(s=>fi(e,s))},yi=(e,t)=>{let s=pi(e,t);return s?(s.refCount+=1,s):(t.push(e),t.sort(ui),e)},gi=class{constructor(){p(this,"namedListeners");p(this,"catchEmAllListeners");p(this,"getListenersForEventName",e=>{let t=this.namedListeners.get(e);return t||(t=[],this.namedListeners.set(e,t)),t});this.namedListeners=new Map,this.catchEmAllListeners=[]}add(e){return yi(e,e.isCatchEmAll?this.catchEmAllListeners:this.getListenersForEventName(e.eventName))}remove(e,t,s=!1){t==null&&Array.isArray(e)?e.forEach(i=>this.remove(i,null,s)):e==null||t==null&&pe(e)?this.removeAllListeners():t==null&&Ms(e)?Pe(this.namedListeners.get(e)):e instanceof Ds?e.isRemoved||(e.refCount-=1,e.refCount<1&&(e.isRemoved=!0,this.namedListeners.forEach(i=>ts(i,e)),ts(this.catchEmAllListeners,e))):s?pe(e)&&typeof e=="object"?le(this.catchEmAllListeners,Mt,e):this.namedListeners.forEach(i=>le(i,e,t)):(this.namedListeners.forEach(i=>{xe(i,e,t),typeof e=="object"&&le(i,void 0,e)}),xe(this.catchEmAllListeners,e,t),typeof e=="object"&&le(this.catchEmAllListeners,void 0,e))}removeAllListeners(){this.namedListeners.forEach(e=>Pe(e)),this.namedListeners.clear(),Pe(this.catchEmAllListeners)}forEach(e,t){let s=_e(this.catchEmAllListeners),i=_e(this.namedListeners.get(e));if(e===Mt||!i||i.length===0)s.forEach(t);else if(s.length===0)i.forEach(t);else{let a=i.length,o=s.length,n=0,d=0;for(;n<a||d<o;){if(n<a){let g=i[n];if(d>=o||g.priority>=s[d].priority){t(g),++n;continue}}d<o&&(t(s[d]),++d)}}}getSubscriptionCount(){let e=this.catchEmAllListeners.length;for(let t of this.namedListeners.values())e+=t.length;return e}},$t=e=>!!(e&&e[vt]);function Xt(e){if($t(e))return e;let t=new gi,s=new Ts;return ai(e,vt,{keeper:s,store:t}),e}var ve={Max:Number.POSITIVE_INFINITY,AAA:1e9,BB:1e6,C:1e3,Default:0,Low:-1e4,Min:Number.NEGATIVE_INFINITY},vi=(e,t,s,i,a,o,n)=>{let d=e.add(new Ds(s,i,a,o));return t.emit(s,d,n),d},bi=(e,t,s,i)=>{let a=s.length,o=typeof s[0],n,d,g,m;if(a>=2&&a<=3&&o==="number"?(n=Mt,[d,g,m]=s):a>=3&&a<=4&&typeof s[1]=="number"?[n,d,g,m]=s:(d=ve.Default,o==="string"||o==="symbol"||Array.isArray(s[0])?[n,g,m]=s:(n=Mt,[g,m]=s)),!g&&js)throw ri("called with insufficient arguments!",s),"subscribeTo() called with insufficient arguments!";let w=h=>l=>vi(e,t,l,h,g,m,i);return Array.isArray(n)?n.map(h=>Array.isArray(h)?w(h[1])(h[0]):w(d)(h)):w(d)(n)},Ls=(e,t,s)=>{let i=[],a=bi(e,t,s,i);return Ts.publish(i),a},es=e=>t=>{t.callAfterApply=()=>{e==null||e()}},Rs=(e,t)=>Object.assign(()=>$(e,t),Array.isArray(t)?{listeners:t}:{listener:t}),xs=(e,t,s,i)=>{let{store:a,keeper:o}=e[vt];Array.isArray(t)?t.forEach(n=>{a.forEach(n,d=>d.apply(n,s,i)),o.retain(n,s)}):t!==Mt&&(a.forEach(t,n=>{n.apply(t,s,i)}),o.retain(t,s))},V=(e,...t)=>{let s=Xt(e),{store:i,keeper:a}=s[vt];return Rs(s,Ls(i,a,t))},A=(e,...t)=>{let s=Xt(e),{store:i,keeper:a}=s[vt],o=Ls(i,a,t),n=Rs(s,o),d=!1,g=()=>{d||(n(),d=!0)};return Array.isArray(o)?o.forEach(es(g)):es(g)(o),g},mi=(e,t)=>new Promise(s=>{A(e,t,s)}),$=(e,t,s)=>{if(!$t(e))throw new Error("object is not eventized");let{store:i,keeper:a}=e[vt],o=typeof t,n=s!=null&&(o==="string"||o==="symbol");i.remove(t,s,n),Array.isArray(t)?a.remove(t.filter(d=>typeof d=="string")):Ms(t)&&a.remove(t)},E=(e,t,...s)=>{if(!$t(e))throw new Error("object is not eventized");xs(e,t,s)},wi=(e,t,...s)=>{if(!$t(e))throw new Error("object is not eventized");let i=[];return xs(e,t,s,a=>{i.push(a)}),i=i.map(a=>Array.isArray(a)?Promise.all(a):Promise.resolve(a)),i.length>0?Promise.all(i):Promise.resolve()},Ge=(e,t)=>{let s=Xt(e),{keeper:i}=s[vt];i.add(t)},ye=(e,t)=>{if(!$t(e))throw new Error("object is not eventized");let{keeper:s}=e[vt];s.clear(t)},ot=(()=>{let e=(t={})=>Xt(t);return e.inject=(t={})=>(t=Xt(t),Object.assign(t,{on:(...s)=>V(t,...s),once:(...s)=>A(t,...s),onceAsync:s=>mi(t,s),off:(s,i)=>$(t,s,i),emit:(s,...i)=>E(t,s,...i),emitAsync:(s,...i)=>wi(t,s,...i),retain:s=>Ge(t,s),retainClear:s=>ye(t,s)}),t),e.is=$t,e})(),_=Symbol.for("signal"),jt=Symbol.for("effect"),ss=Symbol.for("destroySignal"),is=Symbol.for("createEffect"),Ci=Symbol.for("destroyEffect"),Bt="value",rs="mute",as="unmute",Yt="destroy",Ht=Symbol.for("recall"),ge=ot(),Nt=ot(),bt=ot(),zs=ot(),Te,qt=(Te=class{constructor(){p(this,"delayedEffects",[])}batch(e,t){let s=this.delayedEffects.length;for(let i=0;i<s;i++){let[a,o]=this.delayedEffects[i];if(!(a>t))if(a===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=[V(bt,(i,a)=>{a===Ht&&e.add(i)}),V(zs,i=>{e.add(i)})],s=this.delayedEffects.flatMap(([,i])=>Array.from(i));for(let i of s)e.has(i)||E(bt,i,i,Ht);t.forEach(i=>{i()})}},p(Te,"current"),Te),Ei=()=>qt.current;function Zt(e){let t=qt.current;t?t=void 0:t=qt.current=new qt;try{e()}finally{t&&(qt.current=void 0,t.run())}}var Si=0;function Fs(){return Si>0}var ms,ki=(ms=jt,class{constructor(e){p(this,ms);p(this,"run",()=>{var e;return(e=this[jt])==null?void 0:e.run()});p(this,"destroy",()=>{var e;(e=this[jt])==null||e.destroy(),this[jt]=void 0});this[jt]=e,A(e,$s.Destroy,()=>{this[jt]=void 0})}}),ht=new Map,K,Ct,U,it,Y,Et,St,B,kt,nt,ne=(nt=class{constructor(t){y(this,K,new Set);y(this,Ct,new Set);y(this,U,new Map);y(this,it,new WeakMap);y(this,Y,new Map);y(this,Et,new Set);y(this,St,new Set);y(this,B);y(this,kt);if(t!=null&&t instanceof nt)return t;if(t!=null||(t=this),ht.has(t))return ht.get(t);f(this,kt,t),ht.set(t,this),ot(this)}static get(t){if(t!=null)return t instanceof nt?t:ht.get(t)}static findOrCreate(t){if(t==null)throw new Error("Cannot create a group with a null object");return new nt(t)}static destroy(t){console.warn("SignalGroup.destroy(obj) is deprecated. Use SignalGroup.delete(obj) instead."),nt.delete(t)}static delete(t){var s;(s=ht.get(t))==null||s.clear()}static clear(){for(let t of ht.values())t.destroy();ht.clear()}attachGroup(t){if(t===this)throw new Error("Cannot attach a group to itself");return r(this,K).add(t),r(t,B)&&r(t,B)!==this&&r(r(t,B),K).delete(t),f(t,B,this),t}detachGroup(t){return t!==this&&r(this,K).has(t)&&(r(this,K).delete(t),f(t,B,void 0)),t}attachSignal(t){let s=P(t);if(s!=null&&s.destroyed)throw new Error("Cannot attach a destroyed signal to a group");return s&&r(this,Ct).add(s),t}attachSignalByName(t,s){if(s){this.attachSignal(s);let i=P(s);r(this,U).set(t,i),r(this,Y).has(t)?r(this,Y).get(t).push(i):r(this,Y).set(t,[i]),r(this,it).has(i)?r(this,it).get(i).add(t):r(this,it).set(i,new Set([t]))}else r(this,U).delete(t);return s}hasSignal(t){var s;return r(this,U).has(t)||!!((s=r(this,B))!=null&&s.hasSignal(t))}signal(t){var s,i,a;return(a=(s=r(this,U).get(t))==null?void 0:s.object)!=null?a:(i=r(this,B))==null?void 0:i.signal(t)}detachSignal(t){let s=P(t);if(s&&(r(this,Ct).delete(s),r(this,it).has(s))){let i=r(this,it).get(s);for(let a of i)if(r(this,Y).has(a)){let o=r(this,Y).get(a);o.splice(o.indexOf(s),1),o.length===0?(r(this,U).delete(a),r(this,Y).delete(a)):r(this,U).get(a)===s&&r(this,U).set(a,o.at(-1))}i.clear(),r(this,it).delete(s)}return t}attachEffect(t){return r(this,Et).add(t),t}runEffects(){for(let t of r(this,Et))t.run();for(let t of r(this,K))t.runEffects()}attachLink(t){if(t!=null&&t.isDestroyed)throw new Error("Cannot attach a destroyed link to a group");return t&&r(this,St).add(t),t}detachLink(t){return t&&r(this,St).delete(t),t}destroy(){console.warn("SignalGroup#destroy is deprecated. Use SignalGroup#clear instead."),this.clear()}clear(){var t;E(this,Yt,this),$(this);for(let s of r(this,K))s.destroy();for(let s of r(this,Et))s.destroy();for(let s of r(this,Ct))G(s);for(let s of r(this,St))s.destroy();r(this,K).clear(),r(this,Ct).clear(),r(this,U).clear(),r(this,Y).clear(),r(this,Et).clear(),r(this,St).clear(),(t=r(this,B))==null||t.detachGroup(this),r(this,kt)&&(ht.delete(r(this,kt)),f(this,kt,void 0))}},K=new WeakMap,Ct=new WeakMap,U=new WeakMap,it=new WeakMap,Y=new WeakMap,Et=new WeakMap,St=new WeakMap,B=new WeakMap,kt=new WeakMap,nt),se,ie,ws,Ns=(ws=class{constructor(e="id",t=1){y(this,se);y(this,ie);f(this,se,e),f(this,ie,t)}make(){return Symbol(`${r(this,se)}${Ke(this,ie)._++}`)}},se=new WeakMap,ie=new WeakMap,ws),ze=[],Vs=()=>ze.at(-1),Ai=(e,t)=>{ze.push(e);try{return t()}finally{ze.pop()}},Pi=e=>e!=null&&typeof e.then=="function",M,lt,H,At,dt,ut,Pt,Dt,$s=(M=class{constructor(t,s){p(this,"id");p(this,"callback");y(this,lt);y(this,H,new Set);y(this,At,new Set);y(this,dt,new Map);y(this,ut,new Set);p(this,"parentEffect");p(this,"childEffects",[]);p(this,"curChildEffectSlot",0);p(this,"autorun",!0);p(this,"shouldRun",!0);p(this,"priority");y(this,Pt);y(this,Dt,!1);p(this,"run",()=>{if(r(this,Dt)||!this.shouldRun)return;let t=Ei();t?t.batch(this.id,this.priority):(this.runCleanupCallback(),this.curChildEffectSlot=0,this.shouldRun=!1,E(zs,this.id,this.id),this.hasStaticDeps()?f(this,lt,this.callback()):(f(this,At,new Set(r(this,H))),f(this,lt,Ai(this,this.callback)),this.cleanupLostSignals(),r(this,ut).clear()))});p(this,"destroy",()=>{r(this,Dt)||(E(this,M.Destroy,this),$(this),E(bt,Ci,this),this.runCleanupCallback(),$(ge,this),$(bt,this),$(Nt,this),f(this,Dt,!0),r(this,H).clear(),r(this,At).clear(),r(this,dt).clear(),r(this,ut).clear(),this.childEffects.forEach(t=>{t.destroy()}),this.childEffects.length=0,--M.count)});var a,o;ot(this),this.callback=t;let i;(s==null?void 0:s.attach)!=null&&(i=ne.findOrCreate(s.attach),i.attachEffect(this)),this.autorun=(a=s==null?void 0:s.autorun)!=null?a:!0,f(this,Pt,s!=null&&s.dependencies?s.dependencies.map(n=>{switch(typeof n){case"string":case"symbol":return i.signal(n);default:return n}}):void 0),this.id=M.idGen.make(),this.priority=(o=s==null?void 0:s.priority)!=null?o:0,V(bt,this.id,Ht,this),++M.count}hasStaticDeps(){return r(this,Pt)!=null&&r(this,Pt).length>0}saveSignalsFromDeps(){for(let t of r(this,Pt))this.whenSignalIsRead(P(t).id)}static createEffect(t,s,i){let a=Array.isArray(s)?s:void 0,o=a?i!=null?i:{dependencies:a}:s;o&&a&&(o.dependencies=a);let n,d=Vs();return d!=null?(n=d.getCurrentChildEffect(),n==null&&(n=new M(t,o),d.attachChildEffect(n),E(bt,is,n)),d.curChildEffectSlot++):(n=new M(t,o),E(bt,is,n)),n.hasStaticDeps()?n.saveSignalsFromDeps():n.autorun&&n.run(),new ki(n)}getCurrentChildEffect(){return this.childEffects[this.curChildEffectSlot]}attachChildEffect(t){this.childEffects.push(t),this.parentEffect=this}[Ht](){this.shouldRun=!0,this.autorun&&this.run()}whenSignalIsRead(t){r(this,At).delete(t),r(this,H).has(t)||(r(this,H).add(t),r(this,dt).set(t,[V(ge,t,this.priority,Ht,this),A(Nt,t,ss,this)]))}[ss](t){!r(this,ut).has(t)&&r(this,H).has(t)&&(r(this,ut).add(t),this.unsubscribeSignal(t),r(this,ut).size===r(this,H).size&&this.destroy())}cleanupLostSignals(){for(let t of r(this,At))this.unsubscribeSignal(t),r(this,H).delete(t)}unsubscribeSignal(t){r(this,dt).has(t)&&(r(this,dt).get(t).forEach(s=>{s()}),r(this,dt).delete(t))}runCleanupCallback(){if(r(this,lt)!=null){let t=r(this,lt);f(this,lt,void 0),Pi(t)?Promise.resolve(t).then(s=>{typeof s=="function"&&s()}):t()}}},lt=new WeakMap,H=new WeakMap,At=new WeakMap,dt=new WeakMap,ut=new WeakMap,Pt=new WeakMap,Dt=new WeakMap,p(M,"idGen",new Ns("ef")),p(M,"Destroy","destroy"),p(M,"count",0),M),Vt=(...e)=>$s.createEffect(...e),_t=new WeakMap,Oi=e=>{let t=_t.get(e);return t||(t={},_t.set(e,t)),t},te=(e,t)=>{var s,i;return(i=(s=_t.get(e))==null?void 0:s.signals)==null?void 0:i.get(t)},Mi=(e,t,s)=>{var a;let i=Oi(e);(a=i.signals)!=null||(i.signals=new Map),i.signals.set(t,s)};function ji(...e){for(let t of e)if(_t.has(t)){let s=_t.get(t);if(s.signals){for(let i of s.signals.values())G(i);s.signals.clear(),s.signals=void 0}}}function Ti(e){let t=P(ee(e)?e:te(...e));t!=null&&!t.muted&&!t.destroyed&&Fe(t.id,t.value,{touch:!0})}function Ue(e){var t,s;return ee(e)?(t=P(e))==null?void 0:t.value:(s=P(te(...e)))==null?void 0:s.value}var Cs,Di=(Cs=_,class{constructor(e){p(this,Cs);this[_]=e}get get(){return this[_].reader}get set(){return this[_].writer}get value(){return Ue(this.get)}set value(e){this.set(e)}onChange(e){let{destroy:t}=Vt(()=>e(this.value),[this.get]);return t}get muted(){return this[_].muted}set muted(e){this[_].muted=e}touch(){Ti(this)}destroy(){G(this)}}),Li=new Ns("si");function ns(e){var t;Fs()||((t=Vs())==null||t.whenSignalIsRead(e))}function Fe(e,t,s){Fs()||E(ge,e,t,s)}var ee=e=>e!=null&&e[_]!=null,Ri=e=>{let t=s=>{var i;return s?Vt(()=>(e.destroyed||ns(e.id),s(e.value)),[t]):e.destroyed||((i=e.beforeRead)==null||i.call(e),ns(e.id)),e.value};return Object.defineProperty(t,_,{value:e}),t},Ot,W,Is=(Ot=class{constructor(t,s){p(this,"id");p(this,"lazy");p(this,"compare");p(this,"beforeRead");p(this,"muted",!1);p(this,"destroyed",!1);y(this,W);p(this,"valueFn");p(this,"reader");p(this,"writer",(t,s)=>{var o,n,d,g;let i=(o=s==null?void 0:s.lazy)!=null?o:!1,a=(d=(n=s==null?void 0:s.compare)!=null?n:this.compare)!=null?d:((m,w)=>m===w);if((i!==this.lazy||i&&t!==this.valueFn||!i&&!a(t,r(this,W)))&&(i?(f(this,W,void 0),this.valueFn=t,this.lazy=!0):(f(this,W,t),this.valueFn=void 0,this.lazy=!1),!this.muted&&!this.destroyed)){Fe(this.id,r(this,W));return}(g=s==null?void 0:s.touch)!=null&&g&&Fe(this.id,r(this,W),{touch:!0})});p(this,"object");this.id=Li.make(),++Ot.instanceCount,this.lazy=t,this.lazy?(this.value=void 0,this.valueFn=s):(this.value=s,this.valueFn=void 0),this.reader=Ri(this),this.object=new Di(this)}get[_](){return this}get value(){return this.lazy&&(f(this,W,this.valueFn()),this.valueFn=void 0,this.lazy=!1),r(this,W)}set value(t){f(this,W,t)}},W=new WeakMap,p(Ot,"instanceCount",0),Ot),P=e=>e==null?void 0:e[_];function k(e=void 0,t){var i;let s;if(ee(e))s=P(e);else{let a=(i=t==null?void 0:t.lazy)!=null?i:!1;s=new Is(a,e),s.beforeRead=t==null?void 0:t.beforeRead,s.compare=t==null?void 0:t.compare}return(t==null?void 0:t.attach)!=null&&ne.findOrCreate(t.attach).attachSignal(s),s.object}var G=(...e)=>{for(let t of e){let s=P(t);s!=null&&!s.destroyed&&(s.destroyed=!0,s.beforeRead=void 0,--Is.instanceCount,E(Nt,s.id,s.id))}};function xi(e,t){var n,d;let s=k(),i=(t==null?void 0:t.attach)!=null?ne.findOrCreate(t.attach):void 0;i!=null&&(t!=null&&t.name?i.attachSignalByName(t.name,s):i.attachSignal(s));let a=Vt(()=>{Zt(()=>{s.set(e())})},{autorun:!((n=t==null?void 0:t.lazy)!=null&&n),priority:(d=t==null?void 0:t.priority)!=null?d:ve.C,attach:i}),o=P(s);return o.beforeRead=a.run,A(Nt,o.id,a.destroy),s.get}var O,Lt,Es,Gs=(Es=class{constructor(e){y(this,O,!1);y(this,Lt);p(this,"source");p(this,"lastValue");p(this,"isDestroyed",!1);ot(this),this.source=P(e),f(this,Lt,V(ge,this.source.id,(t,s)=>{!r(this,O)&&!this.isDestroyed&&((s==null?void 0:s.touch)===!0?this.touch():this.write())})),A(Nt,this.source.id,()=>this.destroy())}attach(e){let t=ne.findOrCreate(e);return t.attachLink(this),A(this,Yt,()=>{t.detachLink(this)}),t}nextValue(){return new Promise((e,t)=>{let s=[],i=()=>s.forEach(a=>{a()});s.push(A(this,Bt,a=>{i(),e(a)}),A(this,Yt,()=>{i(),t()}))})}asyncValues(e){return Ye(this,null,function*(){let t=0;for(;!this.isDestroyed;)try{let s=yield new Ee(this.nextValue());if(e&&e(s,t++))break;Ge(this,Bt),yield s}catch(s){break}ye(this,Bt)})}destroy(){var e;this.isDestroyed||((e=r(this,Lt))==null||e.call(this),f(this,Lt,void 0),E(this,Yt,this),ye(this,Bt),$(this),this.lastValue=void 0,this.isDestroyed=!0,Object.freeze(this))}get isMuted(){return r(this,O)}mute(){return!this.isDestroyed&&!r(this,O)&&(f(this,O,!0),E(this,rs,this)),this}unmute(){return!this.isDestroyed&&r(this,O)&&(f(this,O,!1),E(this,as,this)),this}toggleMute(){return this.isDestroyed||(f(this,O,!r(this,O)),E(this,r(this,O)?rs:as,this)),r(this,O)}updateValue(e){if(!r(this,O)&&!this.isDestroyed){let{value:t}=this.source;e(t),E(this,Bt,t),this.lastValue=t}}},O=new WeakMap,Lt=new WeakMap,Es),zi=class extends Gs{constructor(t,s){super(t);p(this,"target");this.target=P(s),A(Nt,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)})}},Fi=class extends Gs{constructor(t,s){super(t);p(this,"target");this.target=s,this.touch()}touch(){return this.updateValue(t=>{this.target(t)}),this}write(){this.updateValue(t=>{this.target(t)})}},de=new Map;function et(e,t,s){var m;let i=P(e),a;if(de.has(i)){a=de.get(i);let w=(m=P(t))!=null?m:t;if(a.has(w))return a.get(w)}else a=new Map,de.set(i,a);let o=P(t),n=o!=null?new zi(e,o):new Fi(e,t),d=s==null?void 0:s.attach;d&&n.attach(d);let g=o!=null?o:t;return a.set(g,n),A(n,Yt,()=>{a.delete(g),a.size===0&&de.delete(i)}),n}var D,Rt,Ni=(Rt=class{constructor(){y(this,D,new Map)}static fromProps(t,s){let i=new Rt,a=s?s.map(o=>[o,t[o]]):Object.entries(t);for(let[o,n]of a)r(i,D).set(o,k(n));return i}keys(){return r(this,D).keys()}signals(){return r(this,D).values()}entries(){return r(this,D).entries()}clear(){for(let t of r(this,D).values())t.destroy();r(this,D).clear()}has(t){return r(this,D).has(t)}get(t){if(!r(this,D).has(t)){let s=k();return r(this,D).set(t,s),s}return r(this,D).get(t)}update(t){t.size&&Zt(()=>{for(let[s,i]of t.entries())this.get(s).set(i)})}updateFromProps(t,s){Zt(()=>{let i=s?s.map(a=>[a,t[a]]):Object.entries(t);for(let[a,o]of i)this.get(a).set(o)})}},D=new WeakMap,Rt),Oe=e=>e!=null?e:void 0;function Vi(e,t,s,i,a,o){function n(I){if(I!==void 0&&typeof I!="function")throw new TypeError("Function expected");return I}for(var d=i.kind,g=d==="getter"?"get":d==="setter"?"set":"value",m=!t&&e?i.static?e:e.prototype:null,w=t||(m?Object.getOwnPropertyDescriptor(m,i.name):{}),h,l=!1,u=s.length-1;u>=0;u--){var c={};for(var b in i)c[b]=b==="access"?{}:i[b];for(var b in i.access)c.access[b]=i.access[b];c.addInitializer=function(I){if(l)throw new TypeError("Cannot add initializers after decoration has completed");o.push(n(I||null))};var T=(0,s[u])(d==="accessor"?{get:w.get,set:w.set}:w[g],c);if(d==="accessor"){if(T===void 0)continue;if(T===null||typeof T!="object")throw new TypeError("Object expected");(h=n(T.get))&&(w.get=h),(h=n(T.set))&&(w.set=h),(h=n(T.init))&&a.unshift(h)}else(h=n(T))&&(d==="field"?a.unshift(h):w[g]=h)}m&&Object.defineProperty(m,i.name,w),l=!0}function os(e,t,s){for(var i=arguments.length>2,a=0;a<t.length;a++)s=i?t[a].call(e,s):t[a].call(e);return i?s:void 0}function $i(e){return function(t,s){var o;let i=(e==null?void 0:e.name)||s.name,a=!!((o=e==null?void 0:e.readAsValue)!=null&&o);return{get(){let n=te(this,i);if(n)return a?n.value:n.get()},set(n){var d;(d=te(this,i))==null||d.set(n)},init(n){let d=k(n,e);return Mi(this,i,d),ne.findOrCreate(this).attachSignalByName(i,d),d.value}}}}var Tt="value",Ne=(()=>{var i,a,o,n,ce,Jt,m;let e,t=[],s=[];return m=class{constructor(h){y(this,n);y(this,i);y(this,a);y(this,o);f(this,i,[]),f(this,o,os(this,t,void 0)),this.value$=os(this,s),Ge(this,Tt),this.value$=te(this,Tt),this.value$.onChange(l=>E(this,Tt,l)),h&&this.add(...h)}get value(){return r(this,o)}set value(h){f(this,o,h)}add(...h){return r(this,i).push(...h),C(this,n,Jt).call(this),C(this,n,ce).call(this,h)}unshift(...h){return r(this,i).unshift(...h),C(this,n,Jt).call(this),C(this,n,ce).call(this,h)}remove(...h){C(this,n,ce).call(this,h)()}clear(){r(this,i).length=0,C(this,n,Jt).call(this)}dispose(){var h;this.clear(),(h=r(this,a))==null||h.destroy(),f(this,a,void 0),ye(this,Tt),$(this),this.value$.destroy(),ji(this)}},i=new WeakMap,a=new WeakMap,o=new WeakMap,n=new WeakSet,ce=function(h){return()=>{for(let l of h){let u=r(this,i).indexOf(l);u!==-1&&r(this,i).splice(u,1)}C(this,n,Jt).call(this)}},Jt=function(){var h;(h=r(this,a))==null||h.destroy(),r(this,i).length===0?(f(this,a,void 0),this.value=void 0):(f(this,a,Vt(()=>{let l;for(let u of r(this,i)){let c=Ue(u);if(c!=null){l=c;break}}this.value=l},r(this,i))),r(this,a).run())},(()=>{let h=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;e=[$i({name:Tt})],Vi(m,null,e,{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},t,s),h&&Object.defineProperty(m,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:h})})(),m.Value=Tt,m})(),hs=Symbol("onCreate"),mt=Symbol("onDestroy"),Ii=Symbol("onParentChanged"),Us=Symbol("onViewEvent"),Me=new Map,je=!1,Gi=(e,t)=>{Me.set(e,t),je||(je=!0,queueMicrotask(()=>{je=!1;let s=Array.from(Me.entries());Me.clear();for(let[i,a]of s)i.set(a)}))},Q,xt,ct,q,ft,z,L,rt,F,zt,j,Ve,pt,Kt,fe,Ss,Ui=(Ss=class{constructor(e,t){y(this,j);y(this,Q);y(this,xt);y(this,ct,new Ni);y(this,q,new Map);y(this,ft,new Map);y(this,z);y(this,L);y(this,rt,new Set);y(this,F,[]);y(this,zt,0);y(this,pt);f(this,Q,e),f(this,xt,t),A(this,mt,ve.Min,this)}get kernel(){return r(this,Q)}get uuid(){return r(this,xt)}get order(){return r(this,zt)}set order(e){r(this,zt)!==e&&(f(this,zt,e),r(this,z)&&this.parent.resortChildren())}get parentUuid(){return r(this,z)||void 0}set parentUuid(e){r(this,z)!==e&&(this.removeFromParent(),f(this,z,e||void 0),f(this,L,e?r(this,Q).getEntity(e):void 0),r(this,L)&&r(this,L).addChild(this))}get parent(){return!r(this,L)&&r(this,z)&&f(this,L,r(this,Q).getEntity(r(this,z))),r(this,L)}set parent(e){this.parentUuid=e==null?void 0:e.uuid}get hasParent(){return!!r(this,z)}get children(){return r(this,F)}traverse(e){e(this);for(let t of r(this,F))t.traverse(e)}[mt](){var e;r(this,ct).clear(),$(this);for(let t of r(this,ft).values())t.cleanup(),t.signal.destroy();r(this,ft).clear();for(let t of r(this,q).values())t.context.set(void 0),t.unsubscribePathValue(),(e=t.unsubscribeFromParent)==null||e.call(t),t.valuePath.dispose(),t.inherited.destroy(),t.provide.destroy(),t.context.destroy();f(this,z,void 0),f(this,L,void 0),r(this,rt).clear(),r(this,F).length=0}addChild(e){var t;if(r(this,F).length===0){r(this,rt).add(e.uuid),r(this,F).push(e);return}if(r(this,rt).has(e.uuid))throw new Error(`child with uuid: ${e.uuid} already exists! parentUuid: ${this.uuid}`);r(this,rt).add(e.uuid),r(this,F).push(e),this.resortChildren();for(let[,s]of r(e,q))C(t=e,j,fe).call(t,s)}resortChildren(){r(this,F).sort((e,t)=>e.order-t.order)}removeChild(e){r(this,rt).has(e.uuid)&&(r(this,rt).delete(e.uuid),r(this,F).splice(r(this,F).indexOf(e),1))}removeFromParent(){if(r(this,L)){r(this,L).removeChild(this),f(this,L,void 0),f(this,z,void 0);for(let[,e]of r(this,q))e.unsubscribeFromParent&&(e.unsubscribeFromParent(),e.unsubscribeFromParent=void 0)}}reSubscribeToParentContexts(){for(let[,e]of r(this,q))C(this,j,fe).call(this,e)}dispatchMessageToView(e,t,s,i=!1){r(this,Q).dispatchMessageToView({uuid:r(this,xt),type:e,data:t,transferables:s,traverseChildren:i})}dispatchViewEvents(e){for(let{type:t,data:s}of e)E(this,Us,t,s)}dispatchViewEvent(e,t){this.dispatchViewEvents([{type:e,data:t}])}getPropertyReader(e){return C(this,j,Ve).call(this,e).get}getPropertyWriter(e){return C(this,j,Ve).call(this,e).set}setProperties(e){this.clearTruthyPropsCache(),Zt(()=>{for(let[t,s]of e)this.setProperty(t,s)})}setProperty(e,t){this.getPropertyWriter(e)(t)}getProperty(e){return Ue(this.getPropertyReader(e))}propKeys(){return Array.from(r(this,ct).keys())}propEntries(){return Array.from(r(this,ct).entries()).map(([e,t])=>[e,t.value])}clearTruthyPropsCache(){f(this,pt,void 0)}truthyProps(){if(r(this,pt))return r(this,pt).size?r(this,pt):void 0;let e=new Set;for(let[t,s]of r(this,ct).entries())if(typeof t=="string"){let i=s.value;i!=null&&i!==!1&&i!==""&&e.add(t)}return f(this,pt,e),e.size?e:void 0}hasContext(e){return r(this,q).has(e)}useContext(e){return C(this,j,Kt).call(this,e).context.get}useParentContext(e){return C(this,j,Kt).call(this,e).inherited.get}provideContext(e){return C(this,j,Kt).call(this,e).provide}provideGlobalContext(e){if(r(this,ft).has(e))return r(this,ft).get(e).signal;let t=r(this,Q).findOrCreateRootContext(e),s=k(),i=t.add(s);return r(this,ft).set(e,{cleanup:i,signal:s}),s}},Q=new WeakMap,xt=new WeakMap,ct=new WeakMap,q=new WeakMap,ft=new WeakMap,z=new WeakMap,L=new WeakMap,rt=new WeakMap,F=new WeakMap,zt=new WeakMap,j=new WeakSet,Ve=function(e){return r(this,ct).get(e)},pt=new WeakMap,Kt=function(e){if(r(this,q).has(e))return r(this,q).get(e);let t=k(),s=k(),i=k(),a=new Ne([s,t]),o=V(a,Ne.Value,d=>{Gi(i,d)}),n={name:e,inherited:t,provide:s,context:i,valuePath:a,unsubscribePathValue:o};return r(this,q).set(e,n),C(this,j,fe).call(this,n),n},fe=function(e){var t,s;if((t=e.unsubscribeFromParent)==null||t.call(e),e.unsubscribeFromParent=void 0,this.parent){let i=C(s=this.parent,j,Kt).call(s,e.name),a=et(i.context,e.inherited);e.unsubscribeFromParent=a.destroy.bind(a)}else{let i=r(this,Q).findOrCreateRootContext(e.name),a=et(i.value$,e.inherited);e.unsubscribeFromParent=a.destroy.bind(a)}},Ss);function Bi(e,t){e.indexOf(t)===-1&&e.push(t)}var ls=e=>{let t=e.split("@").map(s=>s.trim());if(t.length===2&&t[1])return t[0]?{key:`${t[0]}@${t[1]}`,prop:t[1],token:t[0]}:{key:t[1],prop:t[1]}},ue=(e,t)=>{for(let s of t)e.add(s)},Wi=(e,t)=>{if(e!=null)for(let s of e.constructors)t.add(s)},at,R,J,ks,Bs=(ks=class{constructor(){y(this,at,new Map);y(this,R,new Map);y(this,J,new Map)}static get(e){return e!=null?e:qi}define(e,t){r(this,at).has(e)?Bi(r(this,at).get(e).constructors,t):r(this,at).set(e,{token:e,constructors:[t]})}appendRoute(e,t){let s=ls(e);s?r(this,J).has(s.key)?ue(r(this,J).get(s.key).routes,t):r(this,J).set(s.key,{routes:new Set(t),token:s.token}):r(this,R).has(e)?ue(r(this,R).get(e),t):r(this,R).set(e,new Set(t))}clearRoute(e){let t=ls(e);t?r(this,J).delete(t.key):r(this,R).delete(e)}findTokensByRoute(e,t){let s=new Set([e]),i=r(this,R).has(e)?[...r(this,R).get(e)]:[];for(;i.length;){let a=i.shift();s.has(a)||(s.add(a),r(this,R).has(a)&&i.push(...Array.from(r(this,R).get(a)).filter(o=>!s.has(o))))}if(t){for(let o of t)r(this,J).has(o)&&ue(s,r(this,J).get(o).routes);let a;do{a=s.size;for(let o of new Set(s))for(let n of t){let d=`${o}@${n}`;r(this,J).has(d)&&ue(s,r(this,J).get(d).routes)}}while(a!==s.size)}return s}findConstructors(e,t){let s=this.findTokensByRoute(e,t),i=new Set;for(let a of s)Wi(r(this,at).get(a),i);return i.size>0?Array.from(i):void 0}hasToken(e){return r(this,at).has(e)}hasRoute(e){return r(this,R).has(e)}clear(){r(this,at).clear(),r(this,R).clear()}},at=new WeakMap,R=new WeakMap,J=new WeakMap,ks),qi=new Bs,st;(function(e){e[e.CreateAndDestroy=0]="CreateAndDestroy",e[e.JustCreate=1]="JustCreate",e[e.DestroyOnly=2]="DestroyOnly"})(st||(st={}));var ds=e=>e.displayName||e.name,us=!1,cs=!1,fs=!1,ps=!1,ys=!1,S,X,Ft,re,Z,yt,As,Ji=(As=class{constructor(e){y(this,S);y(this,X);y(this,Ft);y(this,re);y(this,Z);y(this,yt);this.logger=new si("Kernel"),f(this,S,new Map),f(this,X,new Set),f(this,Z,!0),f(this,yt,new Map),ot(this),this.registry=Bs.get(e)}getEntity(e){var s;let t=(s=r(this,S).get(e))==null?void 0:s.entity;if(!t)throw new Error(`entity with uuid "${e}" not found!`);return t}hasEntity(e){return r(this,S).has(e)}traverseLevelOrderBFS(e=!1){if(r(this,Z)){let t=new Map,s=(i,a)=>{let o=this.getEntity(i);t.has(a)?t.get(a).push(o):t.set(a,[o]);for(let n of o.children)s(n.uuid,a+1)};r(this,X).forEach(i=>{s(i,0)}),f(this,Ft,Array.from(t.entries()).sort((i,a)=>i[0]-a[0]).flatMap(([,i])=>i)),f(this,re,r(this,Ft).slice().reverse()),f(this,Z,!1)}return e?r(this,re):r(this,Ft)}getEntityGraph(){return Array.from(r(this,X)).map(e=>this.getEntityGraphNode(e))}getEntityGraphNode(e){if(!r(this,S).has(e))return;let{token:t,entity:s}=r(this,S).get(e);return{token:t,entity:s,props:Object.fromEntries(s.propEntries()),children:s.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,st.DestroyOnly));for(let t of this.traverseLevelOrderBFS(!1))this.updateShadowObjects(t.uuid,st.JustCreate,e.get(t.uuid));e.clear()}run(e){this.logger.isDebug&&this.logger.debug("sync",e),Zt(()=>{for(let t of e.changeTrail)this.parse(t)})}parse(e){switch(e.type){case tt.CreateEntities:this.createEntity(e.uuid,e.token,e.parentUuid,e.order,e.properties),f(this,Z,!0);break;case tt.DestroyEntities:this.destroyEntity(e.uuid),f(this,Z,!0);break;case tt.SetParent:this.setParent(e.uuid,e.parentUuid,e.order),f(this,Z,!0);break;case tt.UpdateOrder:this.updateOrder(e.uuid,e.order),f(this,Z,!0);break;case tt.ChangeProperties:this.changeProperties(e.uuid,e.properties);break;case tt.ChangeToken:this.changeToken(e.uuid,e.token);break;case tt.SendEvents:this.dispatchEventsToEntity(e.uuid,e.events);break}}createEntity(e,t,s,i=0,a){let o=new Ui(this,e);o.order=i;let n={token:t,entity:o,usedConstructors:new Map};r(this,S).set(e,n),s&&(o.parentUuid=s),o.hasParent||r(this,X).add(e),a&&o.setProperties(a),this.createShadowObjects(e)}destroyEntity(e){if(!r(this,S).has(e))return;let{entity:t,usedConstructors:s}=r(this,S).get(e);t.removeFromParent(),E(t,mt,t),s.clear(),r(this,S).delete(t.uuid),r(this,X).delete(t.uuid)}setParent(e,t,s=0){let i=this.getEntity(e);i.parentUuid===t&&i.order===s||(i.removeFromParent(),i.order=s,i.parentUuid=t,i.hasParent?r(this,X).delete(e):r(this,X).add(e),i.reSubscribeToParentContexts(),queueMicrotask(()=>{this.logger.isDebug&&this.logger.debug("entity.onParentChanged",{uuid:e,parentUuid:t,order:s,entity:i}),E(i,Ii,i)}))}updateOrder(e,t){this.getEntity(e).order=t}dispatchEventsToEntity(e,t){var s;(s=this.getEntity(e))==null||s.dispatchViewEvents(t)}changeProperties(e,t){this.getEntity(e).setProperties(t),this.updateShadowObjects(e)}changeToken(e,t){if(!r(this,S).has(e))return;let s=r(this,S).get(e);s.token!==t&&(s.token=t,this.updateShadowObjects(e))}dispatchMessageToView(e){queueMicrotask(()=>{E(this,De,e)})}updateShadowObjects(e,t=st.CreateAndDestroy,s){let i=r(this,S).get(e);s!=null||(s=new Set(this.registry.findConstructors(i.token,i.entity.truthyProps())));let a=t===st.CreateAndDestroy||t===st.DestroyOnly,o=t===st.CreateAndDestroy||t===st.JustCreate;if(a){for(let[n,d]of i.usedConstructors)if(!s.has(n)){i.usedConstructors.delete(n);for(let g of d)this.destroyShadowObject(g,i.entity)}}if(o)for(let n of s)i.usedConstructors.has(n)||this.constructShadowObject(n,i);return s}constructShadowObject(e,t){let s=new Set,i=new Set,a=new Map,o=new Map,n=new Map,d=new Map,g=new Map,m=(h,l)=>{!ys&&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.\'),ys=!0);let u=typeof l=="function"?{compare:l}:l,c=g.get(h);if(c===void 0){c=k(void 0,u).get,g.set(h,c);let b=et(t.entity.getPropertyReader(h),c);i.add(b.destroy.bind(b))}return c},w=ot(new e({entity:t.entity,provideContext(h,l,u){var T;!us&&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.\'),us=!0);let c=typeof u=="function"?{compare:u}:u,b=n.get(h);if(b==null){let I=ee(l),be=I?void 0:Oe(l);if(b=k(be,c!=null&&c.compare?{compare:c.compare}:void 0),I){let Gt=et(l,b);i.add(Gt.destroy.bind(Gt))}let It=et(b,t.entity.provideContext(h));i.add(It.destroy.bind(It)),n.set(h,b)}return b!=null&&((T=c==null?void 0:c.clearOnDestroy)==null||T)&&i.add(()=>{b.set(void 0)}),b},provideGlobalContext(h,l,u){var T;!cs&&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.\'),cs=!0);let c=typeof u=="function"?{compare:u}:u,b=d.get(h);if(b==null){let I=ee(l),be=I?void 0:Oe(l);if(b=k(be,c!=null&&c.compare?{compare:c.compare}:void 0),I){let Gt=et(l,b);i.add(Gt.destroy.bind(Gt))}let It=et(b,t.entity.provideGlobalContext(h));i.add(It.destroy.bind(It)),d.set(h,b)}return b!=null&&((T=c==null?void 0:c.clearOnDestroy)==null||T)&&i.add(()=>{b.set(void 0)}),b},useContext(h,l){!fs&&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.\'),fs=!0);let u=typeof l=="function"?{compare:l}:l,c=a.get(h);if(c===void 0){c=k(void 0,u).get,a.set(h,c);let b=et(t.entity.useContext(h),c);i.add(b.destroy.bind(b))}return c},useParentContext(h,l){!ps&&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.\'),ps=!0);let u=typeof l=="function"?{compare:l}:l,c=o.get(h);if(c===void 0){c=k(void 0,u).get,o.set(h,c);let b=et(t.entity.useParentContext(h),c);i.add(b.destroy.bind(b))}return c},dispatchMessageToView(h,l,u,c=!1){t.entity.dispatchMessageToView(h,l,u,c)},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=k(),c=Vt(()=>{let b=Oe(h());return u.set(b),b!==void 0&&l?()=>{l(b),u.set(void 0)}:()=>{u.set(void 0)}});return i.add(()=>{c.destroy(),u.set(void 0),G(u)}),u},createEffect(...h){let l=Vt(...h);return i.add(l.destroy),l},createSignal(...h){let l=k(...h);return i.add(()=>{G(l)}),l},createMemo(...h){let l=xi(...h);return i.add(()=>{G(l)}),l},on(...h){let[l]=h;if(typeof l=="string"||typeof l=="symbol"||Array.isArray(l)){let c=V(t.entity,...h);return i.add(c),c}let u=V(...h);return i.add(u),u},once(...h){let[l]=h;if(typeof l=="string"||typeof l=="symbol"||Array.isArray(l)){let c=A(t.entity,...h);return i.add(c),c}let u=A(...h);return i.add(u),u},onViewEvent(h){let l=V(t.entity,Us,(u,c)=>{h(u,c)});i.add(l)},onDestroy(h){s.add(h)}}));return this.logger.isInfo&&this.logger.info("create shadow-object",ds(e),{shadowObject:w,entity:t.entity}),A(t.entity,mt,ve.Low,()=>{this.logger.isInfo&&this.logger.info("destroy shadow-object",ds(e),{shadowObject:w,entity:t.entity});for(let l of s)l();for(let l of i)l();for(let l of a.values())G(l);for(let l of o.values())G(l);for(let l of g.values())G(l);for(let l of n.values())G(l);for(let l of d.values())G(l);s.clear(),i.clear(),a.clear(),o.clear(),g.clear(),n.clear(),d.clear();let h=t.usedConstructors.get(e);h&&(h.delete(w),h.size===0&&t.usedConstructors.delete(e))}),t.usedConstructors.has(e)?t.usedConstructors.get(e).add(w):t.usedConstructors.set(e,new Set([w])),this.attachShadowObject(w,t.entity),w}createShadowObjects(e){var s;let t=r(this,S).get(e);(s=this.registry.findConstructors(t.token,t.entity.truthyProps()))==null||s.forEach(i=>{this.constructShadowObject(i,t)})}findShadowObjects(e){if(!r(this,S).has(e))return[];let{usedConstructors:t}=r(this,S).get(e);return Array.from(new Set(Array.from(t.values()).flatMap(s=>Array.from(s))))}attachShadowObject(e,t){V(t,e),typeof e[hs]=="function"&&e[hs](t)}destroyShadowObject(e,t){typeof e[mt]=="function"&&e[mt](t),E(e,mt,t),$(t,e)}findOrCreateRootContext(e){let t=r(this,yt).get(e);return t||(t=new Ne,r(this,yt).set(e,t)),t}destroy(){for(let e of r(this,yt).values())e.dispose();r(this,yt).clear();for(let e of this.traverseLevelOrderBFS().reverse())this.destroyEntity(e.uuid)}},S=new WeakMap,X=new WeakMap,Ft=new WeakMap,re=new WeakMap,Z=new WeakMap,yt=new WeakMap,As);async function Ws(e,t,s,i=!0){var o,n;if(s.has(t)){console.warn("importModule: skipping already imported module",t);return}else s.add(t);t.extends&&await Promise.all(t.extends.map(d=>Ws(e,d,s,!1)));let{registry:a}=e;if(t.define)for(let[d,g]of Object.entries(t.define))a.define(d,g);if(t.routes)for(let[d,g]of Object.entries(t.routes))a.appendRoute(d,g);await((n=(o=t.initialize)==null?void 0:o.call(t,{define:(d,g)=>a.define(d,g),kernel:e,registry:a}))!=null?n:Promise.resolve()),i&&e.upgradeEntities()}var Ki=e=>(typeof e=="string"&&(e=new URL(e,globalThis.location.href)),e.toString()),ae,gt,qs,Js,Ks,Ps,Yi=(Ps=class{constructor(e){y(this,gt);y(this,ae,new Set);var t,s;this.kernel=(t=e==null?void 0:e.kernel)!=null?t:new Ji,this.postMessage=(s=e==null?void 0:e.postMessage)!=null?s:self.postMessage.bind(self),V(this.kernel,De,"onMessageToView",this)}route(e){var t;switch(e.data.type){case Qs:C(this,gt,qs).call(this,e.data);break;case Xs:C(this,gt,Js).call(this,e.data);break;case Zs:C(this,gt,Ks).call(this,e.data);break;default:console.warn("[MessageRouter] unknown message",(t=e.data.type)!=null?t:e.data)}}onMessageToView(e){let i=e,{transferables:t}=i,s=Je(i,["transferables"]);this.postMessage({type:De,data:s},{transfer:t})}},ae=new WeakMap,gt=new WeakSet,qs=async function(e){try{let t=await import(Ki(e.importModule));t[ke]?(await Ws(this.kernel,t[ke],r(this,ae)),this.postMessage({type:Se,url:e.importModule})):this.postMessage({type:Se,url:e.importModule,error:`module has no "${ke}" export`})}catch(t){console.error("[MessageRouter] failed to import module",t),this.postMessage({type:Se,url:e.importModule,error:`${t}`})}},Js=function(e){try{this.kernel.run(e)}catch(t){console.error("[MessageRouter] failed to apply change trail",t),this.postMessage({type:Qe,serial:e.serial,error:t.toString()})}e.serial&&this.postMessage({type:Qe,serial:e.serial})},Ks=function(e){console.debug("[MessageRouter] on destroy",e),$(this.kernel,this),r(this,ae).clear(),this.postMessage({type:ti})},Ps),Hi=class{constructor(){this.onmessage=e=>{var t;e.data.type===N?globalThis[x]=e.data.config:((t=this.router)!=null||(this.router=new Yi),this.router.route(e))}}start(){self.addEventListener("message",this.onmessage),self.postMessage({type:_s})}};console.debug("@spearwolf/shadow-objects/WorkerRuntime: hello!");var Qi=new Hi;Qi.start();\n/*! Bundled license information:\n\n@spearwolf/eventize/lib/index.mjs:\n (*!\n =============================================================================\n @spearwolf/eventize 4.0.2+build.20250807\n \u2014 https://github.com/spearwolf/eventize.git\n =============================================================================\n \n Copyright 2015-2025 Wolfger Schramm\n \n Licensed under the Apache License, Version 2.0 (the "License");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an "AS IS" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n *)\n*/\n')}var Hs=()=>new Jt;var $e=(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(C){a(),n(C.toString())}},s.addEventListener("message",l)});var Sr=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},Et=class s{static{this.WorkerLoaded="workerLoaded"}#e;#t;#s;get isDestroyed(){return this.#t}get workerLoaded(){return fe(this,s.WorkerLoaded)}constructor(){this.#t=!1,this.#s=0,this.logger=new O("RemoteWorkerEnv"),G(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=Hs();this.configureConsoleLogger(e);try{if(await $e(e,ws,xs),this.isDestroyed)throw"worker was destroyed";e.addEventListener("message",this.onMessageFromWorker.bind(this)),queueMicrotask(()=>{g(this,s.WorkerLoaded,this)})}catch(t){throw this.logger.error("failed to start",t),this.#e=void 0,t}}applyChangeTrail(e,t){let r=Sr(e),i={type:bs,changeTrail:e},n=++this.#s;return t&&(i.serial=n),this.#e.postMessage(i,r),t?$e(this.#e,Cs,As,o=>{if(o.error)throw o.error;return o.serial===n}):Promise.resolve()}importScript(e){return e=wt(e),this.#e.postMessage({type:ms,importModule:e}),$e(this.#e,Es,ks,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:vs}),$e(e,Ss,Ts).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=`${_}.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:_,config:{...O.sharedConfig,enable:this.logger.isEnabled,...r,...O.isEnabled?{}:{enable:!1}}})}};var We,Ie=class extends re{static{this.observedAttributes=[...re.observedAttributes,ot,"src",at,W]}static{this.DefaultAutoSync="frame"}#e;#t;#s;#i;#r;constructor(){super(),this.isShaeWorkerElement=!0,this.shadowEnv=new z,this.logger=new O("ShaeWorkerElement"),this.autostart=!0,this.isConnected$=p(!1),this.autoSync$=p(We.DefaultAutoSync),this.src$=p(""),this.#e=!1,this.#t=!1,this.ns$.onChange(e=>{this.shadowEnv.view=$.get(e)}),m(this.shadowEnv,z.ContextCreated,()=>{this.#r?.run(),this.dispatchEvent(new CustomEvent(z.ContextCreated.toLowerCase(),{bubbles:!1,detail:{shadowEnv:this.shadowEnv}}))}),m(this.shadowEnv,z.ContextLost,()=>{this.dispatchEvent(new CustomEvent(z.ContextLost.toLowerCase(),{bubbles:!1,detail:{shadowEnv:this.shadowEnv}}))}),this.autoSync$.onChange(e=>{let t=this.hasAttribute(W),r=t?this.getAttribute(W):void 0;e===We.DefaultAutoSync?t&&r!==e&&this.setAttribute(W,e):r!==e&&this.setAttribute(W,e)}),this.#a(),this.#n(),this.style.display="contents"}#n(){this.#r=w(()=>{let e=this.src$.get();e&&this.importScript(e)},{autorun:!1})}get shouldAutostart(){return this.autostart&&!De(this,_s)}get autoSync(){return this.autoSync$.value}set autoSync(e){typeof e!="string"&&(e=e?We.DefaultAutoSync:"no"),this.autoSync$.set(`${e}`.trim().toLowerCase())}get frameLoop(){return this.#s??=new be,this.#s}[be.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(W)&&this.autoSync$.set(this.getAttribute(W)),this.isConnected$.set(!0)}),this.shouldAutostart&&this.start()}disconnectedCallback(){this.isConnected$.set(!1),this.#o()}attributeChangedCallback(e){if(super.attributeChangedCallback(e),e===ot&&this.shadowEnv.envProxy!=null)throw new Error('Changing the "local" attribute after the shadowEnv has been created is not supported.');if(e===at&&this.#h(),e===W&&(this.autoSync=this.hasAttribute(W)?this.getAttribute(W):!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??=$.get(this.ns),this.shadowEnv.envProxy==null){let e=De(this,ot)?new Ct:new Et;this.shadowEnv.envProxy=e,this.#h()}this.#t=!0}return this.shadowEnv.ready()}destroy(){this.#i?.destroy(),this.#r?.destroy(),A(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=w(()=>{if(this.isConnected$.get()){let e=(this.autoSync$.get()||We.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(at))}};We=Ie;customElements.define(js,Ie);globalThis.SHADOW_ENTS_BUNDLE_LOADED=!0;
21
+ var ne="*",rs=1,Pt=2,Rt=4,U=Symbol.for("eventize"),Ys="[eventize]",ze=s=>s===ne,is=s=>{switch(typeof s){case"string":case"symbol":return!0;default:return!1}},ns=typeof console<"u",Ks=ns?console[console.warn?"warn":"log"].bind(console,Ys):()=>{},Js=(s,e,t)=>(Object.defineProperty(s,e,{value:t,configurable:!0}),s),Xs=0,os=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:Xs++})}isKnown(s){return this.eventNames.has(s)}emit(s,e,t=[]){if(ze(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}},Tt=(s,e,t,r)=>{if(typeof e=="function"){let i=e.apply(s,t);i!=null&&r?.(i)}},Zs=(s,e,t,r)=>Tt(e,e.emit,[s].concat(t),r),er=s=>{switch(typeof s){case"function":return rs;case"string":case"symbol":return Pt;case"object":return Rt}},tr=0,sr=()=>++tr,as=class{id;eventName;isCatchEmAll;priority;listener;listenerObject;listenerType;callAfterApply;isRemoved;refCount;constructor(s,e,t,r=null){this.id=sr(),this.eventName=s,this.isCatchEmAll=ze(s),this.listener=t,this.listenerObject=r,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===ne||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 rs:Tt(i,r,e,t),this.callAfterApply&&this.callAfterApply();break;case Pt:Tt(i,i[r],e,t),this.callAfterApply&&this.callAfterApply();break;case Rt:{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 Zs(s,r,e,t);this.callAfterApply&&this.callAfterApply()}break}}}},rr=(s,e)=>s.priority!==e.priority?e.priority-s.priority:s.id-e.id,es=s=>s?.slice(0),ts=(s,e)=>{let t=s.indexOf(e);t>-1&&s.splice(t,1)},ir=s=>s===Rt||s===Pt,Ot=(s,e,t)=>{let r=s.findIndex(i=>i.isEqual(e,t));r>-1&&(s[r].isRemoved=!0,s.splice(r,1))},Ve=(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)Ot(s,i,void 0)},At=s=>{s&&(s.forEach(e=>{e.isRemoved=!0}),s.length=0)},nr=(s,e)=>s.listenerType===e.listenerType?s.priority===e.priority&&s.eventName===e.eventName&&s.listenerObject===e.listenerObject&&s.listener===e.listener:!1,or=(s,e)=>{if(ir(s.listenerType))return e.find(t=>nr(s,t))},ar=(s,e)=>{let t=or(s,e);return t?(t.refCount+=1,t):(e.push(s),e.sort(rr),s)},hr=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 ar(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&&ze(s)?this.removeAllListeners():e==null&&is(s)?At(this.namedListeners.get(s)):s instanceof as?s.isRemoved||(s.refCount-=1,s.refCount<1&&(s.isRemoved=!0,this.namedListeners.forEach(r=>ts(r,s)),ts(this.catchEmAllListeners,s))):t?ze(s)&&typeof s=="object"?Ve(this.catchEmAllListeners,ne,s):this.namedListeners.forEach(r=>Ve(r,s,e)):(this.namedListeners.forEach(r=>{Ot(r,s,e),typeof s=="object"&&Ve(r,void 0,s)}),Ot(this.catchEmAllListeners,s,e),typeof s=="object"&&Ve(this.catchEmAllListeners,void 0,s))}removeAllListeners(){this.namedListeners.forEach(s=>At(s)),this.namedListeners.clear(),At(this.catchEmAllListeners)}forEach(s,e){let t=es(this.catchEmAllListeners),r=es(this.namedListeners.get(s));if(s===ne||!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}},oe=s=>!!(s&&s[U]);function Se(s){if(oe(s))return s;let e=new hr,t=new os;return Js(s,U,{keeper:t,store:e}),s}var G={Max:Number.POSITIVE_INFINITY,AAA:1e9,BB:1e6,C:1e3,Default:0,Low:-1e4,Min:Number.NEGATIVE_INFINITY},lr=(s,e,t,r,i,n,o)=>{let l=s.add(new as(t,r,i,n));return e.emit(t,l,o),l},ur=(s,e,t,r)=>{let i=t.length,n=typeof t[0],o,l,a,f;if(i>=2&&i<=3&&n==="number"?(o=ne,[l,a,f]=t):i>=3&&i<=4&&typeof t[1]=="number"?[o,l,a,f]=t:(l=G.Default,n==="string"||n==="symbol"||Array.isArray(t[0])?[o,a,f]=t:(o=ne,[a,f]=t)),!a&&ns)throw Ks("called with insufficient arguments!",t),"subscribeTo() called with insufficient arguments!";let C=v=>u=>lr(s,e,u,v,a,f,r);return Array.isArray(o)?o.map(v=>Array.isArray(v)?C(v[1])(v[0]):C(l)(v)):C(l)(o)},hs=(s,e,t)=>{let r=[],i=ur(s,e,t,r);return os.publish(r),i},ss=s=>e=>{e.callAfterApply=()=>{s?.()}},ls=(s,e)=>Object.assign(()=>x(s,e),Array.isArray(e)?{listeners:e}:{listener:e}),us=(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!==ne&&(i.forEach(e,o=>{o.apply(e,t,r)}),n.retain(e,t))},m=(s,...e)=>{let t=Se(s),{store:r,keeper:i}=t[U];return ls(t,hs(r,i,e))},E=(s,...e)=>{let t=Se(s),{store:r,keeper:i}=t[U],n=hs(r,i,e),o=ls(t,n),l=!1,a=()=>{l||(o(),l=!0)};return Array.isArray(n)?n.forEach(ss(a)):ss(a)(n),a},pe=(s,e)=>new Promise(t=>{E(s,e,t)}),x=(s,e,t)=>{if(!oe(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")):is(e)&&i.remove(e)},g=(s,e,...t)=>{if(!oe(s))throw new Error("object is not eventized");us(s,e,t)},cr=(s,e,...t)=>{if(!oe(s))throw new Error("object is not eventized");let r=[];return us(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=Se(s),{keeper:r}=t[U];r.add(e)},X=(s,e)=>{if(!oe(s))throw new Error("object is not eventized");let{keeper:t}=s[U];t.clear(e)},k=(()=>{let s=(e={})=>Se(e);return s.inject=(e={})=>(e=Se(e),Object.assign(e,{on:(...t)=>m(e,...t),once:(...t)=>E(e,...t),onceAsync:t=>pe(e,t),off:(t,r)=>x(e,t,r),emit:(t,...r)=>g(e,t,...r),emitAsync:(t,...r)=>cr(e,t,...r),retain:t=>B(e,t),retainClear:t=>X(e,t)}),e),s.is=oe,s})();var Mt=s=>oe(s)?s[U]?.store?.getSubscriptionCount()??0:0;var L=Symbol.for("signal"),ae=Symbol.for("effect"),Lt=Symbol.for("destroySignal"),jt=Symbol.for("createEffect"),cs=Symbol.for("destroyEffect"),ge="value",Dt="mute",_t="unmute",Z="destroy",he=Symbol.for("recall");var le=k(),I=k(),q=k(),Ue=k();var ue=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(q,(i,n)=>{n===he&&e.add(i)}),m(Ue,i=>{e.add(i)})],r=this.delayedEffects.flatMap(([,i])=>Array.from(i));for(let i of r)e.has(i)||g(q,i,i,he);t.forEach(i=>{i()})}},ds=()=>ue.current;function O(s){let e=ue.current;e?e=void 0:e=ue.current=new ue;try{s()}finally{e&&(ue.current=void 0,e.run())}}var Nt=0;function Ge(s){Nt++;try{s()}finally{Nt--}}function Be(){return Nt>0}var qe=class{[ae];constructor(e){this[ae]=e,E(e,ye.Destroy,()=>{this[ae]=void 0})}run=()=>this[ae]?.run();destroy=()=>{this[ae]?.destroy(),this[ae]=void 0}};var ee=new Map,j=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:ee.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){ee.get(e)?.clear()}static clear(){for(let e of ee.values())e.destroy();ee.clear()}constructor(e){if(e!=null&&e instanceof s)return e;if(e??=this,ee.has(e))return ee.get(e);this.#h=e,ee.set(e,this),k(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=S(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=S(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=S(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(){g(this,Z,this),x(this);for(let e of this.#e)e.destroy();for(let e of this.#n)e.destroy();for(let e of this.#t)A(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&&(ee.delete(this.#h),this.#h=void 0)}};var me=class{#e;#t;constructor(e="id",t=1){this.#e=e,this.#t=t}make(){return Symbol(`${this.#e}${this.#t++}`)}};var $t=[],He=()=>$t.at(-1),fs=(s,e)=>{$t.push(s);try{return e()}finally{$t.pop()}};var dr=s=>s!=null&&typeof s.then=="function",ye=class s{static idGen=new me("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){k(this),this.callback=e;let r;t?.attach!=null&&(r=j.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(q,this.id,he,this),++s.count}hasStaticDeps(){return this.#n!=null&&this.#n.length>0}saveSignalsFromDeps(){for(let e of this.#n)this.whenSignalIsRead(S(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=He();return l!=null?(o=l.getCurrentChildEffect(),o==null&&(o=new s(e,n),l.attachChildEffect(o),g(q,jt,o)),l.curChildEffectSlot++):(o=new s(e,n),g(q,jt,o)),o.hasStaticDeps()?o.saveSignalsFromDeps():o.autorun&&o.run(),new qe(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=ds();e?e.batch(this.id,this.priority):(this.runCleanupCallback(),this.curChildEffectSlot=0,this.shouldRun=!1,g(Ue,this.id,this.id),this.hasStaticDeps()?this.#e=this.callback():(this.#s=new Set(this.#t),this.#e=fs(this,this.callback),this.cleanupLostSignals(),this.#r.clear()))};[he](){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(le,e,this.priority,he,this),E(I,e,Lt,this)]))}[Lt](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)}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||(g(this,s.Destroy,this),x(this),g(q,cs,this),this.runCleanupCallback(),x(le,this),x(q,this),x(I,this),this.#o=!0,this.#t.clear(),this.#s.clear(),this.#i.clear(),this.#r.clear(),this.childEffects.forEach(e=>{e.destroy()}),this.childEffects.length=0,--s.count)}};var w=(...s)=>ye.createEffect(...s);var xe=new WeakMap,fr=s=>{let e=xe.get(s);return e||(e={},xe.set(s,e)),e},R=(s,e)=>xe.get(s)?.signals?.get(e);var ps=(s,e,t)=>{let r=fr(s);r.signals??=new Map,r.signals.set(e,t)};function ke(...s){for(let e of s)if(xe.has(e)){let t=xe.get(e);if(t.signals){for(let r of t.signals.values())A(r);t.signals.clear(),t.signals=void 0}}}function gs(s){let e=S(H(s)?s:R(...s));e!=null&&!e.muted&&!e.destroyed&&Qe(e.id,e.value,{touch:!0})}function ce(s){return H(s)?S(s)?.value:S(R(...s))?.value}var Ye=class{[L];constructor(e){this[L]=e}get get(){return this[L].reader}get set(){return this[L].writer}get value(){return ce(this.get)}set value(e){this.set(e)}onChange(e){let{destroy:t}=w(()=>e(this.value),[this.get]);return t}get muted(){return this[L].muted}set muted(e){this[L].muted=e}touch(){gs(this)}destroy(){A(this)}};var pr=new me("si");function ys(s){Be()||He()?.whenSignalIsRead(s)}function Qe(s,e,t){Be()||g(le,s,e,t)}var H=s=>s!=null&&s[L]!=null,gr=s=>{let e=t=>(t?w(()=>(s.destroyed||ys(s.id),t(s.value)),[e]):s.destroyed||(s.beforeRead?.(),ys(s.id)),s.value);return Object.defineProperty(e,L,{value:s}),e},Ke=class s{static instanceCount=0;id;lazy;get[L](){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)){Qe(this.id,this.#e);return}(t?.touch??!1)&&Qe(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 Ye(this)}},S=s=>s?.[L];function p(s=void 0,e){let t;if(H(s))t=S(s);else{let r=e?.lazy??!1;t=new Ke(r,s),t.beforeRead=e?.beforeRead,t.compare=e?.compare}return e?.attach!=null&&j.findOrCreate(e.attach).attachSignal(t),t.object}var A=(...s)=>{for(let e of s){let t=S(e);t!=null&&!t.destroyed&&(t.destroyed=!0,t.beforeRead=void 0,--Ke.instanceCount,g(I,t.id,t.id))}};function Wt(s,e){let t=p(),r=e?.attach!=null?j.findOrCreate(e.attach):void 0;r!=null&&(e?.name?r.attachSignalByName(e.name,t):r.attachSignal(t));let i=w(()=>{O(()=>{t.set(s())})},{autorun:!(e?.lazy??!1),priority:e?.priority??G.C,attach:r}),n=S(t);return n.beforeRead=i.run,E(I,n.id,i.destroy),t.get}var Je=class{#e=!1;#t;source;lastValue;isDestroyed=!1;constructor(e){k(this),this.source=S(e),this.#t=m(le,this.source.id,(t,r)=>{!this.#e&&!this.isDestroyed&&(r?.touch===!0?this.touch():this.write())}),E(I,this.source.id,()=>this.destroy())}attach(e){let t=j.findOrCreate(e);return t.attachLink(this),E(this,Z,()=>{t.detachLink(this)}),t}nextValue(){return new Promise((e,t)=>{let r=[],i=()=>r.forEach(n=>{n()});r.push(E(this,ge,n=>{i(),e(n)}),E(this,Z,()=>{i(),t()}))})}async*asyncValues(e){let t=0;for(;!this.isDestroyed;)try{let r=await this.nextValue();if(e&&e(r,t++))break;B(this,ge),yield r}catch{break}X(this,ge)}destroy(){this.isDestroyed||(this.#t?.(),this.#t=void 0,g(this,Z,this),X(this,ge),x(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,g(this,Dt,this)),this}unmute(){return!this.isDestroyed&&this.#e&&(this.#e=!1,g(this,_t,this)),this}toggleMute(){return this.isDestroyed||(this.#e=!this.#e,g(this,this.#e?Dt:_t,this)),this.#e}updateValue(e){if(!this.#e&&!this.isDestroyed){let{value:t}=this.source;e(t),g(this,ge,t),this.lastValue=t}}},Xe=class extends Je{target;constructor(e,t){super(e),this.target=S(t),E(I,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)})}},Ze=class extends Je{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)})}};var et=new Map;function M(s,e,t){let r=S(s),i;if(et.has(r)){i=et.get(r);let f=S(e)??e;if(i.has(f))return i.get(f)}else i=new Map,et.set(r,i);let n=S(e),o=n!=null?new Xe(s,n):new Ze(s,e),l=t?.attach;l&&o.attach(l);let a=n??e;return i.set(a,o),E(o,Z,()=>{i.delete(a),i.size===0&&et.delete(r)}),o}var tt=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&&O(()=>{for(let[t,r]of e.entries())this.get(t).set(r)})}updateFromProps(e,t){O(()=>{let r=t?t.map(i=>[i,e[i]]):Object.entries(e);for(let[i,n]of r)this.get(i).set(n)})}};var F;(function(s){s[s.StructuralChanges=1]="StructuralChanges",s[s.ContentUpdates=2]="ContentUpdates",s[s.Removal=3]="Removal"})(F||(F={}));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 de=Symbol.for("ShadowEntsGlobalNS"),Q="#void",ms="contextLost",bs="configure",vs="changeTrail",ws="destroy",Cs="loaded",Es="appliedChangeTrail",Ss="importedModule",xs="destroyed",be="messageToView",ks=6e4,As=6e4,Ts=5e3,Os=5e3,It="shadowObjects";function Ps(s,e){s.indexOf(e)===-1&&s.push(e)}function Ft(s,e){let t=s.indexOf(e);t!==-1&&s.splice(t,1),s.push(e)}function te(s,e){let t=s.indexOf(e);t!==-1&&s.splice(t,1)}var fe=s=>typeof s=="string"?s.trim()||de:typeof s=="symbol"?s:de;var Ae="#root",Te=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;#l;#u;create(e=Q,t,r=0){this.#t++,this.#i++,this.#h=e,this.#l=t??Ae,this.#u=r||void 0}destroy(){this.#r++,this.#t++}clear(){this.#t=0,this.#s=!1,this.#h=void 0,this.#l=void 0,this.#u=void 0,this.#d.clear(),this.#f.length=0,this.#g.length=0,this.#p.clear()}changeToken(e){e===this.#n?this.#h=void 0:(this.#h=e,this.#t++)}setParent(e){e===this.#o?this.#l=void 0:(this.#l=e??Ae,this.#t++)}changeOrder(e){e===this.#a?this.#u=void 0:(this.#u=e,this.#t++)}#c=new Map;#d=new Map;#f=[];changeProperty(e,t,r){let i=this.#c.get(e);r==null&&t!==i||r!=null&&!r(t,i)?(this.#d.set(e,t),Ft(this.#f,e),this.#t++):(this.#d.delete(e),te(this.#f,e))}removeProperty(e){let t=this.#c.has(e);this.#d.has(e)?(this.#d.delete(e),t||te(this.#f,e)):t&&(Ft(this.#f,e),this.#t++)}#g=[];#p=new Set;createEvent(e,t,r){this.#g.push({type:e,data:t}),r?.forEach(i=>this.#p.add(i)),this.#t++}transferEventsTo(e){this.#g.length>0&&(e.#g.push(...this.#g),this.#g.length=0),this.#p.size>0&&(e.#p=new Set([...e.#p,...this.#p]),this.#p.clear())}buildChangeTrail(e,t){let{isNew:r,isCreated:i,isDestroyed:n}=this;if(!(r&&n))switch(t){case F.StructuralChanges:r?e.push(this.makeCreateEntityChange()):n||(this.#l!==void 0&&!(this.#l===Ae&&this.#o===void 0)?e.push(this.makeSetParentChange()):this.#u!==void 0&&this.#u!==this.#a&&e.push(this.makeUpdateOrderChange()),this.#h!==void 0&&this.#h!==this.#n&&e.push(this.makeChangeToken()));break;case F.ContentUpdates:!r&&i&&this.#f.length>0&&e.push(this.makeChangePropertyChange()),this.#g.length>0&&e.push(this.makeEvents());break;case F.Removal:n&&e.push(this.makeDestroyEntityChange());break}}makeEvents(){let e={type:b.SendEvents,uuid:this.#e,events:this.#g.slice(0)};return this.#p.size>0&&(e.transferables=Array.from(this.#p)),e}makeCreateEntityChange(){let e={type:b.CreateEntities,uuid:this.#e,token:this.#h};if(this.#n=this.#h,this.#l!==void 0){let t=this.#l===Ae?void 0:this.#l;this.#o=t,t!==void 0&&(e.parentUuid=t)}return this.#d.size>0&&(e.properties=Array.from(this.#d.entries()).filter(([,t])=>t!==void 0),e.properties.forEach(([t,r])=>this.#c.set(t,r))),this.#u!==void 0&&this.#u!==this.#a&&(e.order=this.#a=this.#u),e}makeDestroyEntityChange(){return{type:b.DestroyEntities,uuid:this.#e}}makeSetParentChange(){this.#o=this.#l===Ae?void 0:this.#l;let e={type:b.SetParent,uuid:this.#e,parentUuid:this.#o};return this.#u!==void 0&&this.#u!==this.#a&&(e.order=this.#a=this.#u),e}makeUpdateOrderChange(){return this.#a=this.#u??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.#f.map(t=>{if(this.#d.has(t)){let r=this.#d.get(t);return this.#c.set(t,r),[t,r]}else return this.#c.delete(t),[t,void 0]});return{type:b.ChangeProperties,uuid:this.#e,properties:e}}};var Rs=s=>{if(!(s===void 0||s.length===0))return s.filter(e=>e.length===1||e[1]!==void 0)},Vt=(s,e)=>{if(s===e||e===void 0)return s;if(s===void 0)return Rs(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 Rs(s)};var st=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=Vt(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:Vt(void 0,n)})}};var D=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=fe(e),r=s.getContextsMap();return r.has(t)?r.get(t):new s(t)}#e=new Map;#t=[];#s=new st;constructor(e=de){let t=fe(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 Te(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),te(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);te(t.children,e.uuid),this.#n(e,t.children)}else te(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,F.StructuralChanges);for(let i of r)i.buildChangeTrail(t,F.ContentUpdates);for(let i of r)i.buildChangeTrail(t,F.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 Te(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(ms)}}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),te(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 Oe(s,e,t,r,i,n){function o($){if($!==void 0&&typeof $!="function")throw new TypeError("Function expected");return $}for(var l=r.kind,a=l==="getter"?"get":l==="setter"?"set":"value",f=!e&&s?r.static?s:s.prototype:null,C=e||(f?Object.getOwnPropertyDescriptor(f,r.name):{}),v,u=!1,h=t.length-1;h>=0;h--){var d={};for(var c in r)d[c]=c==="access"?{}:r[c];for(var c in r.access)d.access[c]=r.access[c];d.addInitializer=function($){if(u)throw new TypeError("Cannot add initializers after decoration has completed");n.push(o($||null))};var y=(0,t[h])(l==="accessor"?{get:C.get,set:C.set}:C[a],d);if(l==="accessor"){if(y===void 0)continue;if(y===null||typeof y!="object")throw new TypeError("Object expected");(v=o(y.get))&&(C.get=v),(v=o(y.set))&&(C.set=v),(v=o(y.init))&&i.unshift(v)}else(v=o(y))&&(l==="field"?i.unshift(v):C[a]=v)}f&&Object.defineProperty(f,r.name,C),u=!0}function se(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 Pe(s){return function(e,t){let r=s?.name||t.name,i=!!(s?.readAsValue??!1);return{get(){let n=R(this,r);if(n)return i?n.value:n.get()},set(n){R(this,r)?.set(n)},init(n){let o=p(n,s);return ps(this,r,o),j.findOrCreate(this).attachSignalByName(r,o),o.value}}}}var N="ConsoleLogger",_=`${N}Storage`,yr=!!(globalThis.location?.host?.startsWith("localhost")??!1),Me="localStorage"in globalThis,rt=Symbol.for(N),Ms=!1,Ls=s=>{if(typeof s=="boolean")return s;switch(s.toLowerCase()){case"true":case"yes":case"on":return!0;default:return!1}},Ut=s=>[Me?N:void 0,...Array.isArray(s)?s:[s]].filter(Boolean).join(".");function zt(s,e=void 0,t){let r=Ut(s),i=Me?localStorage.getItem(r):globalThis[_]?.[r];return i!=null?e(i):t}function Re(s,e){Me?localStorage.setItem(Ut(s),e):(globalThis[_]==null&&(globalThis[_]={},console.debug(`${N}: Initialize`,{[_]:globalThis[_]})),globalThis[_][Ut(s)]=e)}var P=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(){Me?(["enable","debug","info","warn"].forEach(e=>{this.sharedConfig[e]=zt(e,Ls,this.sharedConfig[e])}),["debug","info","warn","error"].forEach(e=>{this.sharedStyles[e]=zt(["styles",e],void 0,this.sharedStyles[e])}),s.isDebug&&console.debug(`${N}: Load config from localStorage`,s.sharedConfig),globalThis[N]?.[rt]||(globalThis[N]??={[rt]:!0,get enable(){return s.sharedConfig.enable},set enable(e){s.sharedConfig.enable=e,Re("enable",e?"true":"false")},get debug(){return s.sharedConfig.debug},set debug(e){s.sharedConfig.debug=e,Re("debug",e?"true":"false")},get info(){return s.sharedConfig.info},set info(e){s.sharedConfig.info=e,Re("info",e?"true":"false")},get warn(){return s.sharedConfig.warn},set warn(e){s.sharedConfig.warn=e,Re("warn",e?"true":"false")}})):globalThis[_]?.[rt]||(globalThis[_]={[rt]:!0,...s.sharedConfig,...globalThis[_]},s.sharedConfig=globalThis[_],s.isDebug&&console.debug(`${N}: Load config from ${_}`,globalThis[_]))}constructor(e){this.enable=!0,this.namespace=(e||"").trim()||N,Ms||(s.loadConfig(),Ms=!0);let t=[this.namespace,"enable"];this.enable=zt(t,Ls,this.enable),Re(t,Me?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 V=(()=>{var s;let e,t=[],r=[],i,n=[],o=[];return class Y{static{let a=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;e=[Pe()],i=[Pe()],Oe(this,null,e,{kind:"accessor",name:"viewReady",static:!1,private:!1,access:{has:f=>"viewReady"in f,get:f=>f.viewReady,set:(f,C)=>{f.viewReady=C}},metadata:a},t,r),Oe(this,null,i,{kind:"accessor",name:"proxyReady",static:!1,private:!1,access:{has:f=>"proxyReady"in f,get:f=>f.proxyReady,set:(f,C)=>{f.proxyReady=C}},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 P("ShadowEnv"),this.ns$=p(),this.#o=se(this,t,!1),this.#a=(se(this,r),se(this,n,!1)),this.#h=(se(this,o),!1),this.ready=async()=>this.isReady?this:pe(this,Y.ContextCreated),this.#l=()=>{this.#s&&this.#u()},B(this,Y.ContextCreated),m(this,Y.ContextLost,G.AAA,()=>{X(this,Y.ContextCreated)}),w(()=>{if(this.viewReady&&this.proxyReady)return this.view.reCreateChanges(),g(this,Y.ContextCreated,this),this.#i&&(this.#i=!1,this.#u()),()=>{g(this,Y.ContextLost,this)}},[R(this,"viewReady"),R(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.#c.bind(this)),f&&f.destroy(),this.proxyReady=!1,a?.start().then(()=>{this.proxyReady=!0}).catch(C=>{this.logger.error("failed to start envProxy",C),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.#l))}syncWait(){return this.#r=!0,this.sync(),this.#n?this.#n:(this.#n=pe(this,Y.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),ke(this),x(this),this.#h=!0,Object.freeze(this)}#l;async#u(){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{g(this,Y.AfterSync,a)}}}#c(a){this.logger.isDebug&&this.logger.debug("onMessageToView",a.type,a.data),this.view?.dispatchMessage(a.uuid,a.type,a.data,a.traverseChildren)}}})();var T=["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(T[s&255]+T[s>>8&255]+T[s>>16&255]+T[s>>24&255]+"-"+T[e&255]+T[e>>8&255]+"-"+T[e>>16&15|64]+T[e>>24&255]+"-"+T[t&63|128]+T[t>>8&255]+"-"+T[t>>16&255]+T[t>>24&255]+T[r&255]+T[r>>8&255]+T[r>>16&255]+T[r>>24&255]).toLowerCase()},js=()=>globalThis?.crypto?.randomUUID?.()??mr();var Le=class extends Error{constructor(e){super(e),this.name="ViewComponentError"}},it=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 Le("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){k(this),t instanceof s&&(t={parent:t}),this.#e=t?.uuid??js(),this.#t=e,this.#r=t?.order??0,this.#i=t?.parent;let r=t?.context??D.get();if(this.#i&&this.#i.#s!==r)throw new Le("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 Le("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(g(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 nt="shaeRequestEntParent",ot="shaeReRequestEntParent",Ds="shae-worker",at="shae-ent",_s="shae-prop",re="token",z="forward-custom-events";var ht="local",Ns="no-autostart",lt="no-structured-clone",W="auto-sync";var ut="name",ct="value",dt="type",ft="no-trim";var je=new Set(["on","true","yes","local","1"]);var $s=s=>fe(s.getAttribute("ns")),_e=(s,e)=>{if(s.hasAttribute(e)){let t=s.getAttribute(e)?.trim()?.toLowerCase()||"1";return je.has(t)}return!1};var Ws=(s,e)=>{e.set($s(s))},Gt=new Set,Bt=!1,br=s=>{Gt.add(s),Bt||(Bt=!0,queueMicrotask(()=>{Bt=!1;for(let e of Gt)V.get(e)?.sync();Gt.clear()}))},ie=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(fe(e))}constructor(){super(),this.isShaeElement=!0,this.ns$=p(de),this.ns$.onChange(e=>{typeof e=="string"&&e.length>0?this.getAttribute("ns")!==e&&this.setAttribute("ns",e):this.removeAttribute("ns")}),Ws(this,this.ns$)}attributeChangedCallback(e){e==="ns"&&Ws(this,this.ns$)}syncShadowObjects(){br(this.ns)}};var pt=class extends ie{static{this.observedAttributes=[...ie.observedAttributes,re,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.#d=()=>{let e=this.findShadowRootHost();e!=null&&this.dispatchEvent(new CustomEvent(ot,{bubbles:!0,composed:!0,detail:{requester:this,shadowRootHost:e}}))},this.#f=e=>{let t=e.detail?.requester;if(t===this||!t?.isShaeEntElement||t.ns!==this.ns)return;e.detail?.shadowRootHost&&this.#l()},this.#g=e=>{let t=e.detail?.requester;t!==this&&t?.isShaeEntElement&&t.ns===this.ns&&(e.stopPropagation(),t.#c(this))},this.ns$.onChange(e=>{this.componentContext$.set(D.get(e)),this.isConnected&&this.#l()}),this.#p(),this.token$.onChange(e=>{e==null?this.removeAttribute(re):this.getAttribute(re)!==e&&this.setAttribute(re,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)}}),w(()=>{let e=this.viewComponent$.get();if(e){let t=m(e,D.ReRequestParentRoots,()=>this.#h()),r=e.context?.ns;return()=>{t(),e.destroy(),r&&r!==this.ns?V.get(r)?.sync():this.syncShadowObjects()}}}),w(()=>{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!==D.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 it(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.#d,{capture:!1,passive:!1}),this.addEventListener(nt,this.#g,{capture:!1,passive:!1}),this.#s(),Ge(()=>this.#p()),Ge(()=>this.#y()),this.componentContext==null&&this.componentContext$.set(D.get(this.ns)),this.#l(),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.#c(void 0),this.#l()}#a(){this.#e?.disconnect(),this.#e=void 0}attributeChangedCallback(e){super.attributeChangedCallback(e),e===re?this.#p():e===z&&this.#y()}disconnectedCallback(){this.#n=!0,this.#a(),this.removeEventListener("slotchange",this.#d,{capture:!1}),this.removeEventListener(nt,this.#g,{capture:!1}),this.#c(void 0),this.componentContext$.set(void 0),this.syncShadowObjects(),this.#i()}#h(){this.isConnected&&(this.#c(void 0),this.#l())}#l(){this.dispatchEvent(new CustomEvent(nt,{bubbles:!0,composed:!0,detail:{requester:this}}))}#u;#c(e){if(this.entParentNode!==e)if(this.entParentNode&&this.entParentNode.removeEventListener(ot,this.#f,{capture:!1}),this.entParentNode=e,this.entParentNode&&this.entParentNode.addEventListener(ot,this.#f,{capture:!1,passive:!1}),this.#u?.(),this.#u=void 0,e){let t=w(()=>{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.#l()}),this.syncShadowObjects()}});this.#u=()=>t.destroy()}else{let t=this.viewComponent;t.parent&&(t.parent=void 0,this.syncShadowObjects())}}#d;#f;#g;#p(){if(this.hasAttribute(re)){let e=this.getAttribute(re)?.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(at,pt);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"]),gt=class extends HTMLElement{static{this.observedAttributes=[ut,ct,dt,ft]}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 P("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(ut)?.trim()??void 0)},this.#i=()=>{this.valueIn$.set(this.getAttribute(ct))},this.#r=()=>{let e=this.getAttribute(dt)?.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(!_e(this,ft))},this.entNode$.onChange(e=>{if(e){let t=M(e.viewComponent$,this.viewComponent$);return()=>{t.destroy()}}else this.viewComponent$.set(void 0)}),w(()=>{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()}}}),w(()=>{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=je.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=>je.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)}),O(()=>{this.#s(),this.#i(),this.#r(),this.#n()}),this.style.display="contents"}connectedCallback(){O(()=>{this.#e(),this.#s(),this.#i(),this.#r(),this.#n()})}attributeChangedCallback(e){switch(e){case ut:this.#s();break;case ct:this.#i();break;case dt:this.#r();break;case ft:this.#n();break}}disconnectedCallback(){this.#t()}#e;#t;#s;#i;#r;#n};customElements.whenDefined(at).then(()=>customElements.define(_s,gt));var yt,qt=null,ve=class{static{this.OnFrame=Symbol("onFrame")}#e=0;#t=0;constructor(){if(qt)return qt;k(this),qt=this}start(e){if(e!=null)return Mt(this)===0&&this.#i(),m(this,yt.OnFrame,e),this.#t++,()=>{this.stop(e)}}stop(e){x(this,yt.OnFrame,e),Mt(this)===0&&this.#r()}#s=e=>{g(this,yt.OnFrame,e),this.#i()};#i(){this.#e=requestAnimationFrame(this.#s)}#r(){cancelAnimationFrame(this.#e),this.#e=0}};yt=ve;var mt=s=>s??void 0;var we="value",Ne=(()=>{let s,e=[],t=[];return class{static{let i=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;s=[Pe({name:we})],Oe(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=we}#e;#t;#s;get value(){return this.#s}set value(i){this.#s=i}constructor(i){this.#e=[],this.#s=se(this,e,void 0),this.value$=se(this,t),B(this,we),this.value$=R(this,we),this.value$.onChange(n=>g(this,we,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,X(this,we),x(this),this.value$.destroy(),ke(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=w(()=>{let i;for(let n of this.#e){let o=ce(n);if(o!=null){i=o;break}}this.value=i},this.#e),this.#t.run())}}})();var Ht=Symbol("onCreate"),K=Symbol("onDestroy"),Is=Symbol("onParentChanged"),bt=Symbol("onViewEvent");var Qt=new Map,Yt=!1,Cr=(s,e)=>{Qt.set(s,e),Yt||(Yt=!0,queueMicrotask(()=>{Yt=!1;let t=Array.from(Qt.entries());Qt.clear();for(let[r,i]of t)r.set(i)}))},vt=class{#e;#t;#s=new tt;#i=new Map;#r=new Map;#n;#o;#a=new Set;#h=[];#l=0;get kernel(){return this.#e}get uuid(){return this.#t}get order(){return this.#l}set order(e){this.#l!==e&&(this.#l=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,K,G.Min,this)}traverse(e){e(this);for(let t of this.#h)t.traverse(e)}[K](){this.#s.clear(),x(this);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)}}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)g(this,bt,t,r)}dispatchViewEvent(e,t){this.dispatchViewEvents([{type:e,data:t}])}#u(e){return this.#s.get(e)}getPropertyReader(e){return this.#u(e).get}getPropertyWriter(e){return this.#u(e).set}setProperties(e){this.clearTruthyPropsCache(),O(()=>{for(let[t,r]of e)this.setProperty(t,r)})}setProperty(e,t){this.getPropertyWriter(e)(t)}getProperty(e){return ce(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 Ne([r,t]),o=m(n,Ne.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=M(t.context,e.inherited);e.unsubscribeFromParent=r.destroy.bind(r)}else{let t=this.#e.findOrCreateRootContext(e.name),r=M(t.value$,e.inherited);e.unsubscribeFromParent=r.destroy.bind(r)}}};var Fs=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]}},wt=(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)?Ps(this.#e.get(e).constructors,t):this.#e.set(e,{token:e,constructors:[t]})}appendRoute(e,t){let r=Fs(e);r?this.#s.has(r.key)?wt(this.#s.get(r.key).routes,t):this.#s.set(r.key,{routes:new Set(t),token:r.token}):this.#t.has(e)?wt(this.#t.get(e),t):this.#t.set(e,new Set(t))}clearRoute(e){let t=Fs(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)&&wt(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)&&wt(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 J;(function(s){s[s.CreateAndDestroy=0]="CreateAndDestroy",s[s.JustCreate=1]="JustCreate",s[s.DestroyOnly=2]="DestroyOnly"})(J||(J={}));var Vs=s=>s.displayName||s.name,zs=!1,Us=!1,Gs=!1,Bs=!1,qs=!1,Ct=class{#e;#t;#s;#i;#r;#n;constructor(e){this.logger=new P("Kernel"),this.#e=new Map,this.#t=new Set,this.#r=!0,this.#n=new Map,k(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,J.DestroyOnly));for(let t of this.traverseLevelOrderBFS(!1))this.updateShadowObjects(t.uuid,J.JustCreate,e.get(t.uuid));e.clear()}run(e){this.logger.isDebug&&this.logger.debug("sync",e),O(()=>{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){let o=new vt(this,e);o.order=i;let l={token:t,entity:o,usedConstructors:new Map};this.#e.set(e,l),r&&(o.parentUuid=r),o.hasParent||this.#t.add(e),n&&o.setProperties(n),this.createShadowObjects(e)}destroyEntity(e){if(!this.#e.has(e))return;let{entity:t,usedConstructors:r}=this.#e.get(e);t.removeFromParent(),g(t,K,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}),g(i,Is,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(()=>{g(this,be,e)})}updateShadowObjects(e,t=J.CreateAndDestroy,r){let i=this.#e.get(e);r??=new Set(this.registry.findConstructors(i.token,i.entity.truthyProps()));let n=t===J.CreateAndDestroy||t===J.DestroyOnly,o=t===J.CreateAndDestroy||t===J.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,C=(u,h)=>{!qs&&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.'),qs=!0);let d=typeof h=="function"?{compare:h}:h,c=f.get(u);if(c===void 0){c=p(void 0,d).get,f.set(u,c);let y=M(t.entity.getPropertyReader(u),c);i.add(y.destroy.bind(y))}return c},v=k(new e({entity:t.entity,provideContext(u,h,d){!zs&&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.'),zs=!0);let c=typeof d=="function"?{compare:d}:d,y=l.get(u);if(y==null){let $=H(h),kt=$?void 0:mt(h);if(y=p(kt,c?.compare?{compare:c.compare}:void 0),$){let Ee=M(h,y);i.add(Ee.destroy.bind(Ee))}let Ce=M(y,t.entity.provideContext(u));i.add(Ce.destroy.bind(Ce)),l.set(u,y)}return y!=null&&(c?.clearOnDestroy??!0)&&i.add(()=>{y.set(void 0)}),y},provideGlobalContext(u,h,d){!Us&&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.'),Us=!0);let c=typeof d=="function"?{compare:d}:d,y=a.get(u);if(y==null){let $=H(h),kt=$?void 0:mt(h);if(y=p(kt,c?.compare?{compare:c.compare}:void 0),$){let Ee=M(h,y);i.add(Ee.destroy.bind(Ee))}let Ce=M(y,t.entity.provideGlobalContext(u));i.add(Ce.destroy.bind(Ce)),a.set(u,y)}return y!=null&&(c?.clearOnDestroy??!0)&&i.add(()=>{y.set(void 0)}),y},useContext(u,h){!Gs&&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.'),Gs=!0);let d=typeof h=="function"?{compare:h}:h,c=n.get(u);if(c===void 0){c=p(void 0,d).get,n.set(u,c);let y=M(t.entity.useContext(u),c);i.add(y.destroy.bind(y))}return c},useParentContext(u,h){!Bs&&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.'),Bs=!0);let d=typeof h=="function"?{compare:h}:h,c=o.get(u);if(c===void 0){c=p(void 0,d).get,o.set(u,c);let y=M(t.entity.useParentContext(u),c);i.add(y.destroy.bind(y))}return c},dispatchMessageToView(u,h,d,c=!1){t.entity.dispatchMessageToView(u,h,d,c)},useProperty:C,useProperties(u){let h={};for(let d in u)Object.hasOwn(u,d)&&(h[d]=C(u[d]));return h},createResource(u,h){let d=p(),c=w(()=>{let y=mt(u());return d.set(y),y!==void 0&&h?()=>{h(y),d.set(void 0)}:()=>{d.set(void 0)}});return i.add(()=>{c.destroy(),d.set(void 0),A(d)}),d},createEffect(...u){let h=w(...u);return i.add(h.destroy),h},createSignal(...u){let h=p(...u);return i.add(()=>{A(h)}),h},createMemo(...u){let h=Wt(...u);return i.add(()=>{A(h)}),h},on(...u){let[h]=u;if(typeof h=="string"||typeof h=="symbol"||Array.isArray(h)){let c=m(t.entity,...u);return i.add(c),c}let d=m(...u);return i.add(d),d},once(...u){let[h]=u;if(typeof h=="string"||typeof h=="symbol"||Array.isArray(h)){let c=E(t.entity,...u);return i.add(c),c}let d=E(...u);return i.add(d),d},onViewEvent(u){let h=m(t.entity,bt,(d,c)=>{u(d,c)});i.add(h)},onDestroy(u){r.add(u)}}));return this.logger.isInfo&&this.logger.info("create shadow-object",Vs(e),{shadowObject:v,entity:t.entity}),E(t.entity,K,G.Low,()=>{this.logger.isInfo&&this.logger.info("destroy shadow-object",Vs(e),{shadowObject:v,entity:t.entity});for(let h of r)h();for(let h of i)h();for(let h of n.values())A(h);for(let h of o.values())A(h);for(let h of f.values())A(h);for(let h of l.values())A(h);for(let h of a.values())A(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[Ht]=="function"&&e[Ht](t)}destroyShadowObject(e,t){typeof e[K]=="function"&&e[K](t),g(e,K,t),x(t,e)}findOrCreateRootContext(e){let t=this.#n.get(e);return t||(t=new Ne,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 Kt(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=>Kt(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 Et=s=>(typeof s=="string"&&(s=new URL(s,globalThis.location.href)),s.toString());function Hs(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 St=class{#e;get registry(){return this.kernel.registry}constructor(e){this.#e=new Set,this.isLocalEnv=!0,this.disableStructuredClone=!1,this.kernel=new Ct(e),m(this.kernel,be,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:Hs(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(Et(e));t[It]&&await this.importModule(t[It])}async importModule(e){return Kt(this.kernel,e,this.#e)}destroy(){this.kernel.destroy(),this.registry.clear(),this.#e.clear()}};function Jt(s){let e=new Blob([s],{type:"text/javascript"}),t=URL.createObjectURL(e),r=new Worker(t);return URL.revokeObjectURL(t),r}function Xt(){return Jt('var Ys=Object.defineProperty;var oe=Object.getOwnPropertySymbols;var Be=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable;var Hs=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),qe=e=>{throw TypeError(e)};var me=(e,t,s)=>t in e?Ys(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,we=(e,t)=>{for(var s in t||(t={}))Be.call(t,s)&&me(e,s,t[s]);if(oe)for(var s of oe(t))We.call(t,s)&&me(e,s,t[s]);return e};var Je=(e,t)=>{var s={};for(var i in e)Be.call(e,i)&&t.indexOf(i)<0&&(s[i]=e[i]);if(e!=null&&oe)for(var i of oe(e))t.indexOf(i)<0&&We.call(e,i)&&(s[i]=e[i]);return s};var p=(e,t,s)=>me(e,typeof t!="symbol"?t+"":t,s),Ce=(e,t,s)=>t.has(e)||qe("Cannot "+s);var r=(e,t,s)=>(Ce(e,t,"read from private field"),s?s.call(e):t.get(e)),y=(e,t,s)=>t.has(e)?qe("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),f=(e,t,s,i)=>(Ce(e,t,"write to private field"),i?i.call(e,s):t.set(e,s),s),C=(e,t,s)=>(Ce(e,t,"access private method"),s);var Ke=(e,t,s,i)=>({set _(a){f(e,t,a,s)},get _(){return r(e,t,i)}});var Ee=function(e,t){this[0]=e,this[1]=t},Ye=(e,t,s)=>{var i=(n,d,g,m)=>{try{var w=s[n](d),h=(d=w.value)instanceof Ee,l=w.done;Promise.resolve(h?d[0]:d).then(u=>h?i(n==="return"?n:"next",d[1]?{done:u.done,value:u.value}:u,g,m):g({value:u,done:l})).catch(u=>i("throw",u,g,m))}catch(u){m(u)}},a=n=>o[n]=d=>new Promise((g,m)=>i(n,d,g,m)),o={};return s=s.apply(e,t),o[Hs("asyncIterator")]=()=>o,a("next"),a("throw"),a("return"),o};var He;(function(e){e[e.StructuralChanges=1]="StructuralChanges",e[e.ContentUpdates=2]="ContentUpdates",e[e.Removal=3]="Removal"})(He||(He={}));var tt;(function(e){e[e.CreateEntities=1]="CreateEntities",e[e.DestroyEntities=2]="DestroyEntities",e[e.SetParent=3]="SetParent",e[e.UpdateOrder=4]="UpdateOrder",e[e.ChangeProperties=5]="ChangeProperties",e[e.ChangeToken=6]="ChangeToken",e[e.SendEvents=7]="SendEvents"})(tt||(tt={}));var Qs="configure",Xs="changeTrail",Zs="destroy",_s="loaded",Qe="appliedChangeTrail",Se="importedModule",ti="destroyed",De="messageToView",ke="shadowObjects",N="ConsoleLogger",x=`${N}Storage`,gs,vs,bs,ei=!!((bs=(vs=(gs=globalThis.location)==null?void 0:gs.host)==null?void 0:vs.startsWith("localhost"))!=null&&bs),Qt="localStorage"in globalThis,he=Symbol.for(N),Xe=!1,Ze=e=>{if(typeof e=="boolean")return e;switch(e.toLowerCase()){case"true":case"yes":case"on":return!0;default:return!1}},Le=e=>[Qt?N:void 0,...Array.isArray(e)?e:[e]].filter(Boolean).join(".");function Ae(e,t=void 0,s){var o;let i=Le(e),a=Qt?localStorage.getItem(i):(o=globalThis[x])==null?void 0:o[i];return a!=null?t(a):s}function Ut(e,t){Qt?localStorage.setItem(Le(e),t):(globalThis[x]==null&&(globalThis[x]={},console.debug(`${N}: Initialize`,{[x]:globalThis[x]})),globalThis[x][Le(e)]=t)}var wt,Wt,v,si=(v=class{constructor(t){y(this,wt);this.enable=!0,this.namespace=(t||"").trim()||N,Xe||(v.loadConfig(),Xe=!0);let s=[this.namespace,"enable"];this.enable=Ae(s,Ze,this.enable),Ut(s,Qt?this.enable?"true":"false":this.enable)}static get isEnabled(){return v.sharedConfig.enable}static get isDebug(){return v.sharedConfig.enable&&v.sharedConfig.debug}static loadConfig(){var t,s,i;Qt?(["enable","debug","info","warn"].forEach(a=>{this.sharedConfig[a]=Ae(a,Ze,this.sharedConfig[a])}),["debug","info","warn","error"].forEach(a=>{this.sharedStyles[a]=Ae(["styles",a],void 0,this.sharedStyles[a])}),v.isDebug&&console.debug(`${N}: Load config from localStorage`,v.sharedConfig),(t=globalThis[N])!=null&&t[he]||((s=globalThis[N])!=null||(globalThis[N]={[he]:!0,get enable(){return v.sharedConfig.enable},set enable(a){v.sharedConfig.enable=a,Ut("enable",a?"true":"false")},get debug(){return v.sharedConfig.debug},set debug(a){v.sharedConfig.debug=a,Ut("debug",a?"true":"false")},get info(){return v.sharedConfig.info},set info(a){v.sharedConfig.info=a,Ut("info",a?"true":"false")},get warn(){return v.sharedConfig.warn},set warn(a){v.sharedConfig.warn=a,Ut("warn",a?"true":"false")}}))):(i=globalThis[x])!=null&&i[he]||(globalThis[x]=we(we({[he]:!0},v.sharedConfig),globalThis[x]),v.sharedConfig=globalThis[x],v.isDebug&&console.debug(`${N}: Load config from ${x}`,globalThis[x]))}get isEnabled(){return this.enable&&v.sharedConfig.enable}get isDebug(){return this.isEnabled&&v.sharedConfig.debug}get isInfo(){return this.isEnabled&&v.sharedConfig.info}get isWarn(){return this.isEnabled&&v.sharedConfig.warn}debug(...t){C(this,wt,Wt).call(this,"debug",v.sharedStyles.debug,t)}info(...t){C(this,wt,Wt).call(this,"info",v.sharedStyles.info,t)}warn(...t){C(this,wt,Wt).call(this,"warn",v.sharedStyles.warn,t)}error(...t){C(this,wt,Wt).call(this,"error",v.sharedStyles.error,t)}},wt=new WeakSet,Wt=function(t,s,i){console[t](`%c${this.namespace}`,s,...i)},v.sharedConfig={enable:ei,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"},v.sharedStyles={get debug(){return v.sharedConfig["styles.debug"]},set debug(t){v.sharedConfig["styles.debug"]=t},get info(){return v.sharedConfig["styles.info"]},set info(t){v.sharedConfig["styles.info"]=t},get warn(){return v.sharedConfig["styles.warn"]},set warn(t){v.sharedConfig["styles.warn"]=t},get error(){return v.sharedConfig["styles.error"]},set error(t){v.sharedConfig["styles.error"]=t}},v),Mt="*",Os=1,$e=2,Ie=4,vt=Symbol.for("eventize"),ii="[eventize]",pe=e=>e===Mt,Ms=e=>{switch(typeof e){case"string":case"symbol":return!0;default:return!1}},js=typeof console<"u",ri=js?console[console.warn?"warn":"log"].bind(console,ii):()=>{},ai=(e,t,s)=>(Object.defineProperty(e,t,{value:s,configurable:!0}),e),ni=0,Ts=class{constructor(){p(this,"events",new Map);p(this,"eventNames",new Set)}static publish(e){e.sort((t,s)=>t.order-s.order).forEach(t=>t.emit())}add(e){Array.isArray(e)?e.forEach(t=>this.eventNames.add(t)):this.eventNames.add(e)}remove(e){Array.isArray(e)?e.forEach(t=>this.eventNames.delete(t)):this.eventNames.delete(e),this.clear(e)}clear(e){Array.isArray(e)?e.forEach(t=>this.events.delete(t)):this.events.delete(e)}retain(e,t){this.eventNames.has(e)&&this.events.set(e,{args:t,order:ni++})}isKnown(e){return this.eventNames.has(e)}emit(e,t,s=[]){if(pe(e))this.eventNames.forEach(i=>this.emit(i,t,s));else if(this.events.has(e)){let{order:i,args:a}=this.events.get(e);s.push({order:i,emit:()=>t.apply(e,a)})}return s}},Re=(e,t,s,i)=>{if(typeof t=="function"){let a=t.apply(e,s);a!=null&&(i==null||i(a))}},oi=(e,t,s,i)=>Re(t,t.emit,[e].concat(s),i),hi=e=>{switch(typeof e){case"function":return Os;case"string":case"symbol":return $e;case"object":return Ie}},li=0,di=()=>++li,Ds=class{constructor(e,t,s,i=null){p(this,"id");p(this,"eventName");p(this,"isCatchEmAll");p(this,"priority");p(this,"listener");p(this,"listenerObject");p(this,"listenerType");p(this,"callAfterApply");p(this,"isRemoved");p(this,"refCount");this.id=di(),this.eventName=e,this.isCatchEmAll=pe(e),this.listener=s,this.listenerObject=i,this.priority=t,this.listenerType=hi(s),this.callAfterApply=void 0,this.isRemoved=!1,this.refCount=1}isEqual(e,t=null){if(e===this)return!0;let s=typeof e;return s==="number"&&e===this.id?!0:t===null&&(s==="string"||s==="symbol")?e===Mt||e===this.eventName:this.listener===e&&this.listenerObject===t}apply(e,t,s){if(this.isRemoved)return;let{listener:i,listenerObject:a}=this;switch(this.listenerType){case Os:Re(a,i,t,s),this.callAfterApply&&this.callAfterApply();break;case $e:Re(a,a[i],t,s),this.callAfterApply&&this.callAfterApply();break;case Ie:{let o=i[e];if(this.isCatchEmAll||this.eventName===e){if(typeof o=="function"){let n=o.apply(i,t);n!=null&&(s==null||s(n))}else oi(e,i,t,s);this.callAfterApply&&this.callAfterApply()}break}}}},ui=(e,t)=>e.priority!==t.priority?t.priority-e.priority:e.id-t.id,_e=e=>e==null?void 0:e.slice(0),ts=(e,t)=>{let s=e.indexOf(t);s>-1&&e.splice(s,1)},ci=e=>e===Ie||e===$e,xe=(e,t,s)=>{let i=e.findIndex(a=>a.isEqual(t,s));i>-1&&(e[i].isRemoved=!0,e.splice(i,1))},le=(e,t,s)=>{let i=[];for(let a of e)(t==null&&a.listenerObject===s||a.eventName===t&&a.listener===s)&&i.push(a);for(let a of i)xe(e,a,void 0)},Pe=e=>{e&&(e.forEach(t=>{t.isRemoved=!0}),e.length=0)},fi=(e,t)=>e.listenerType===t.listenerType?e.priority===t.priority&&e.eventName===t.eventName&&e.listenerObject===t.listenerObject&&e.listener===t.listener:!1,pi=(e,t)=>{if(ci(e.listenerType))return t.find(s=>fi(e,s))},yi=(e,t)=>{let s=pi(e,t);return s?(s.refCount+=1,s):(t.push(e),t.sort(ui),e)},gi=class{constructor(){p(this,"namedListeners");p(this,"catchEmAllListeners");p(this,"getListenersForEventName",e=>{let t=this.namedListeners.get(e);return t||(t=[],this.namedListeners.set(e,t)),t});this.namedListeners=new Map,this.catchEmAllListeners=[]}add(e){return yi(e,e.isCatchEmAll?this.catchEmAllListeners:this.getListenersForEventName(e.eventName))}remove(e,t,s=!1){t==null&&Array.isArray(e)?e.forEach(i=>this.remove(i,null,s)):e==null||t==null&&pe(e)?this.removeAllListeners():t==null&&Ms(e)?Pe(this.namedListeners.get(e)):e instanceof Ds?e.isRemoved||(e.refCount-=1,e.refCount<1&&(e.isRemoved=!0,this.namedListeners.forEach(i=>ts(i,e)),ts(this.catchEmAllListeners,e))):s?pe(e)&&typeof e=="object"?le(this.catchEmAllListeners,Mt,e):this.namedListeners.forEach(i=>le(i,e,t)):(this.namedListeners.forEach(i=>{xe(i,e,t),typeof e=="object"&&le(i,void 0,e)}),xe(this.catchEmAllListeners,e,t),typeof e=="object"&&le(this.catchEmAllListeners,void 0,e))}removeAllListeners(){this.namedListeners.forEach(e=>Pe(e)),this.namedListeners.clear(),Pe(this.catchEmAllListeners)}forEach(e,t){let s=_e(this.catchEmAllListeners),i=_e(this.namedListeners.get(e));if(e===Mt||!i||i.length===0)s.forEach(t);else if(s.length===0)i.forEach(t);else{let a=i.length,o=s.length,n=0,d=0;for(;n<a||d<o;){if(n<a){let g=i[n];if(d>=o||g.priority>=s[d].priority){t(g),++n;continue}}d<o&&(t(s[d]),++d)}}}getSubscriptionCount(){let e=this.catchEmAllListeners.length;for(let t of this.namedListeners.values())e+=t.length;return e}},$t=e=>!!(e&&e[vt]);function Xt(e){if($t(e))return e;let t=new gi,s=new Ts;return ai(e,vt,{keeper:s,store:t}),e}var ve={Max:Number.POSITIVE_INFINITY,AAA:1e9,BB:1e6,C:1e3,Default:0,Low:-1e4,Min:Number.NEGATIVE_INFINITY},vi=(e,t,s,i,a,o,n)=>{let d=e.add(new Ds(s,i,a,o));return t.emit(s,d,n),d},bi=(e,t,s,i)=>{let a=s.length,o=typeof s[0],n,d,g,m;if(a>=2&&a<=3&&o==="number"?(n=Mt,[d,g,m]=s):a>=3&&a<=4&&typeof s[1]=="number"?[n,d,g,m]=s:(d=ve.Default,o==="string"||o==="symbol"||Array.isArray(s[0])?[n,g,m]=s:(n=Mt,[g,m]=s)),!g&&js)throw ri("called with insufficient arguments!",s),"subscribeTo() called with insufficient arguments!";let w=h=>l=>vi(e,t,l,h,g,m,i);return Array.isArray(n)?n.map(h=>Array.isArray(h)?w(h[1])(h[0]):w(d)(h)):w(d)(n)},Ls=(e,t,s)=>{let i=[],a=bi(e,t,s,i);return Ts.publish(i),a},es=e=>t=>{t.callAfterApply=()=>{e==null||e()}},Rs=(e,t)=>Object.assign(()=>$(e,t),Array.isArray(t)?{listeners:t}:{listener:t}),xs=(e,t,s,i)=>{let{store:a,keeper:o}=e[vt];Array.isArray(t)?t.forEach(n=>{a.forEach(n,d=>d.apply(n,s,i)),o.retain(n,s)}):t!==Mt&&(a.forEach(t,n=>{n.apply(t,s,i)}),o.retain(t,s))},V=(e,...t)=>{let s=Xt(e),{store:i,keeper:a}=s[vt];return Rs(s,Ls(i,a,t))},A=(e,...t)=>{let s=Xt(e),{store:i,keeper:a}=s[vt],o=Ls(i,a,t),n=Rs(s,o),d=!1,g=()=>{d||(n(),d=!0)};return Array.isArray(o)?o.forEach(es(g)):es(g)(o),g},mi=(e,t)=>new Promise(s=>{A(e,t,s)}),$=(e,t,s)=>{if(!$t(e))throw new Error("object is not eventized");let{store:i,keeper:a}=e[vt],o=typeof t,n=s!=null&&(o==="string"||o==="symbol");i.remove(t,s,n),Array.isArray(t)?a.remove(t.filter(d=>typeof d=="string")):Ms(t)&&a.remove(t)},E=(e,t,...s)=>{if(!$t(e))throw new Error("object is not eventized");xs(e,t,s)},wi=(e,t,...s)=>{if(!$t(e))throw new Error("object is not eventized");let i=[];return xs(e,t,s,a=>{i.push(a)}),i=i.map(a=>Array.isArray(a)?Promise.all(a):Promise.resolve(a)),i.length>0?Promise.all(i):Promise.resolve()},Ge=(e,t)=>{let s=Xt(e),{keeper:i}=s[vt];i.add(t)},ye=(e,t)=>{if(!$t(e))throw new Error("object is not eventized");let{keeper:s}=e[vt];s.clear(t)},ot=(()=>{let e=(t={})=>Xt(t);return e.inject=(t={})=>(t=Xt(t),Object.assign(t,{on:(...s)=>V(t,...s),once:(...s)=>A(t,...s),onceAsync:s=>mi(t,s),off:(s,i)=>$(t,s,i),emit:(s,...i)=>E(t,s,...i),emitAsync:(s,...i)=>wi(t,s,...i),retain:s=>Ge(t,s),retainClear:s=>ye(t,s)}),t),e.is=$t,e})(),_=Symbol.for("signal"),jt=Symbol.for("effect"),ss=Symbol.for("destroySignal"),is=Symbol.for("createEffect"),Ci=Symbol.for("destroyEffect"),Bt="value",rs="mute",as="unmute",Yt="destroy",Ht=Symbol.for("recall"),ge=ot(),Nt=ot(),bt=ot(),zs=ot(),Te,qt=(Te=class{constructor(){p(this,"delayedEffects",[])}batch(e,t){let s=this.delayedEffects.length;for(let i=0;i<s;i++){let[a,o]=this.delayedEffects[i];if(!(a>t))if(a===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=[V(bt,(i,a)=>{a===Ht&&e.add(i)}),V(zs,i=>{e.add(i)})],s=this.delayedEffects.flatMap(([,i])=>Array.from(i));for(let i of s)e.has(i)||E(bt,i,i,Ht);t.forEach(i=>{i()})}},p(Te,"current"),Te),Ei=()=>qt.current;function Zt(e){let t=qt.current;t?t=void 0:t=qt.current=new qt;try{e()}finally{t&&(qt.current=void 0,t.run())}}var Si=0;function Fs(){return Si>0}var ms,ki=(ms=jt,class{constructor(e){p(this,ms);p(this,"run",()=>{var e;return(e=this[jt])==null?void 0:e.run()});p(this,"destroy",()=>{var e;(e=this[jt])==null||e.destroy(),this[jt]=void 0});this[jt]=e,A(e,$s.Destroy,()=>{this[jt]=void 0})}}),ht=new Map,K,Ct,U,it,Y,Et,St,B,kt,nt,ne=(nt=class{constructor(t){y(this,K,new Set);y(this,Ct,new Set);y(this,U,new Map);y(this,it,new WeakMap);y(this,Y,new Map);y(this,Et,new Set);y(this,St,new Set);y(this,B);y(this,kt);if(t!=null&&t instanceof nt)return t;if(t!=null||(t=this),ht.has(t))return ht.get(t);f(this,kt,t),ht.set(t,this),ot(this)}static get(t){if(t!=null)return t instanceof nt?t:ht.get(t)}static findOrCreate(t){if(t==null)throw new Error("Cannot create a group with a null object");return new nt(t)}static destroy(t){console.warn("SignalGroup.destroy(obj) is deprecated. Use SignalGroup.delete(obj) instead."),nt.delete(t)}static delete(t){var s;(s=ht.get(t))==null||s.clear()}static clear(){for(let t of ht.values())t.destroy();ht.clear()}attachGroup(t){if(t===this)throw new Error("Cannot attach a group to itself");return r(this,K).add(t),r(t,B)&&r(t,B)!==this&&r(r(t,B),K).delete(t),f(t,B,this),t}detachGroup(t){return t!==this&&r(this,K).has(t)&&(r(this,K).delete(t),f(t,B,void 0)),t}attachSignal(t){let s=P(t);if(s!=null&&s.destroyed)throw new Error("Cannot attach a destroyed signal to a group");return s&&r(this,Ct).add(s),t}attachSignalByName(t,s){if(s){this.attachSignal(s);let i=P(s);r(this,U).set(t,i),r(this,Y).has(t)?r(this,Y).get(t).push(i):r(this,Y).set(t,[i]),r(this,it).has(i)?r(this,it).get(i).add(t):r(this,it).set(i,new Set([t]))}else r(this,U).delete(t);return s}hasSignal(t){var s;return r(this,U).has(t)||!!((s=r(this,B))!=null&&s.hasSignal(t))}signal(t){var s,i,a;return(a=(s=r(this,U).get(t))==null?void 0:s.object)!=null?a:(i=r(this,B))==null?void 0:i.signal(t)}detachSignal(t){let s=P(t);if(s&&(r(this,Ct).delete(s),r(this,it).has(s))){let i=r(this,it).get(s);for(let a of i)if(r(this,Y).has(a)){let o=r(this,Y).get(a);o.splice(o.indexOf(s),1),o.length===0?(r(this,U).delete(a),r(this,Y).delete(a)):r(this,U).get(a)===s&&r(this,U).set(a,o.at(-1))}i.clear(),r(this,it).delete(s)}return t}attachEffect(t){return r(this,Et).add(t),t}runEffects(){for(let t of r(this,Et))t.run();for(let t of r(this,K))t.runEffects()}attachLink(t){if(t!=null&&t.isDestroyed)throw new Error("Cannot attach a destroyed link to a group");return t&&r(this,St).add(t),t}detachLink(t){return t&&r(this,St).delete(t),t}destroy(){console.warn("SignalGroup#destroy is deprecated. Use SignalGroup#clear instead."),this.clear()}clear(){var t;E(this,Yt,this),$(this);for(let s of r(this,K))s.destroy();for(let s of r(this,Et))s.destroy();for(let s of r(this,Ct))G(s);for(let s of r(this,St))s.destroy();r(this,K).clear(),r(this,Ct).clear(),r(this,U).clear(),r(this,Y).clear(),r(this,Et).clear(),r(this,St).clear(),(t=r(this,B))==null||t.detachGroup(this),r(this,kt)&&(ht.delete(r(this,kt)),f(this,kt,void 0))}},K=new WeakMap,Ct=new WeakMap,U=new WeakMap,it=new WeakMap,Y=new WeakMap,Et=new WeakMap,St=new WeakMap,B=new WeakMap,kt=new WeakMap,nt),se,ie,ws,Ns=(ws=class{constructor(e="id",t=1){y(this,se);y(this,ie);f(this,se,e),f(this,ie,t)}make(){return Symbol(`${r(this,se)}${Ke(this,ie)._++}`)}},se=new WeakMap,ie=new WeakMap,ws),ze=[],Vs=()=>ze.at(-1),Ai=(e,t)=>{ze.push(e);try{return t()}finally{ze.pop()}},Pi=e=>e!=null&&typeof e.then=="function",M,lt,H,At,dt,ut,Pt,Dt,$s=(M=class{constructor(t,s){p(this,"id");p(this,"callback");y(this,lt);y(this,H,new Set);y(this,At,new Set);y(this,dt,new Map);y(this,ut,new Set);p(this,"parentEffect");p(this,"childEffects",[]);p(this,"curChildEffectSlot",0);p(this,"autorun",!0);p(this,"shouldRun",!0);p(this,"priority");y(this,Pt);y(this,Dt,!1);p(this,"run",()=>{if(r(this,Dt)||!this.shouldRun)return;let t=Ei();t?t.batch(this.id,this.priority):(this.runCleanupCallback(),this.curChildEffectSlot=0,this.shouldRun=!1,E(zs,this.id,this.id),this.hasStaticDeps()?f(this,lt,this.callback()):(f(this,At,new Set(r(this,H))),f(this,lt,Ai(this,this.callback)),this.cleanupLostSignals(),r(this,ut).clear()))});p(this,"destroy",()=>{r(this,Dt)||(E(this,M.Destroy,this),$(this),E(bt,Ci,this),this.runCleanupCallback(),$(ge,this),$(bt,this),$(Nt,this),f(this,Dt,!0),r(this,H).clear(),r(this,At).clear(),r(this,dt).clear(),r(this,ut).clear(),this.childEffects.forEach(t=>{t.destroy()}),this.childEffects.length=0,--M.count)});var a,o;ot(this),this.callback=t;let i;(s==null?void 0:s.attach)!=null&&(i=ne.findOrCreate(s.attach),i.attachEffect(this)),this.autorun=(a=s==null?void 0:s.autorun)!=null?a:!0,f(this,Pt,s!=null&&s.dependencies?s.dependencies.map(n=>{switch(typeof n){case"string":case"symbol":return i.signal(n);default:return n}}):void 0),this.id=M.idGen.make(),this.priority=(o=s==null?void 0:s.priority)!=null?o:0,V(bt,this.id,Ht,this),++M.count}hasStaticDeps(){return r(this,Pt)!=null&&r(this,Pt).length>0}saveSignalsFromDeps(){for(let t of r(this,Pt))this.whenSignalIsRead(P(t).id)}static createEffect(t,s,i){let a=Array.isArray(s)?s:void 0,o=a?i!=null?i:{dependencies:a}:s;o&&a&&(o.dependencies=a);let n,d=Vs();return d!=null?(n=d.getCurrentChildEffect(),n==null&&(n=new M(t,o),d.attachChildEffect(n),E(bt,is,n)),d.curChildEffectSlot++):(n=new M(t,o),E(bt,is,n)),n.hasStaticDeps()?n.saveSignalsFromDeps():n.autorun&&n.run(),new ki(n)}getCurrentChildEffect(){return this.childEffects[this.curChildEffectSlot]}attachChildEffect(t){this.childEffects.push(t),this.parentEffect=this}[Ht](){this.shouldRun=!0,this.autorun&&this.run()}whenSignalIsRead(t){r(this,At).delete(t),r(this,H).has(t)||(r(this,H).add(t),r(this,dt).set(t,[V(ge,t,this.priority,Ht,this),A(Nt,t,ss,this)]))}[ss](t){!r(this,ut).has(t)&&r(this,H).has(t)&&(r(this,ut).add(t),this.unsubscribeSignal(t),r(this,ut).size===r(this,H).size&&this.destroy())}cleanupLostSignals(){for(let t of r(this,At))this.unsubscribeSignal(t),r(this,H).delete(t)}unsubscribeSignal(t){r(this,dt).has(t)&&(r(this,dt).get(t).forEach(s=>{s()}),r(this,dt).delete(t))}runCleanupCallback(){if(r(this,lt)!=null){let t=r(this,lt);f(this,lt,void 0),Pi(t)?Promise.resolve(t).then(s=>{typeof s=="function"&&s()}):t()}}},lt=new WeakMap,H=new WeakMap,At=new WeakMap,dt=new WeakMap,ut=new WeakMap,Pt=new WeakMap,Dt=new WeakMap,p(M,"idGen",new Ns("ef")),p(M,"Destroy","destroy"),p(M,"count",0),M),Vt=(...e)=>$s.createEffect(...e),_t=new WeakMap,Oi=e=>{let t=_t.get(e);return t||(t={},_t.set(e,t)),t},te=(e,t)=>{var s,i;return(i=(s=_t.get(e))==null?void 0:s.signals)==null?void 0:i.get(t)},Mi=(e,t,s)=>{var a;let i=Oi(e);(a=i.signals)!=null||(i.signals=new Map),i.signals.set(t,s)};function ji(...e){for(let t of e)if(_t.has(t)){let s=_t.get(t);if(s.signals){for(let i of s.signals.values())G(i);s.signals.clear(),s.signals=void 0}}}function Ti(e){let t=P(ee(e)?e:te(...e));t!=null&&!t.muted&&!t.destroyed&&Fe(t.id,t.value,{touch:!0})}function Ue(e){var t,s;return ee(e)?(t=P(e))==null?void 0:t.value:(s=P(te(...e)))==null?void 0:s.value}var Cs,Di=(Cs=_,class{constructor(e){p(this,Cs);this[_]=e}get get(){return this[_].reader}get set(){return this[_].writer}get value(){return Ue(this.get)}set value(e){this.set(e)}onChange(e){let{destroy:t}=Vt(()=>e(this.value),[this.get]);return t}get muted(){return this[_].muted}set muted(e){this[_].muted=e}touch(){Ti(this)}destroy(){G(this)}}),Li=new Ns("si");function ns(e){var t;Fs()||((t=Vs())==null||t.whenSignalIsRead(e))}function Fe(e,t,s){Fs()||E(ge,e,t,s)}var ee=e=>e!=null&&e[_]!=null,Ri=e=>{let t=s=>{var i;return s?Vt(()=>(e.destroyed||ns(e.id),s(e.value)),[t]):e.destroyed||((i=e.beforeRead)==null||i.call(e),ns(e.id)),e.value};return Object.defineProperty(t,_,{value:e}),t},Ot,W,Is=(Ot=class{constructor(t,s){p(this,"id");p(this,"lazy");p(this,"compare");p(this,"beforeRead");p(this,"muted",!1);p(this,"destroyed",!1);y(this,W);p(this,"valueFn");p(this,"reader");p(this,"writer",(t,s)=>{var o,n,d,g;let i=(o=s==null?void 0:s.lazy)!=null?o:!1,a=(d=(n=s==null?void 0:s.compare)!=null?n:this.compare)!=null?d:((m,w)=>m===w);if((i!==this.lazy||i&&t!==this.valueFn||!i&&!a(t,r(this,W)))&&(i?(f(this,W,void 0),this.valueFn=t,this.lazy=!0):(f(this,W,t),this.valueFn=void 0,this.lazy=!1),!this.muted&&!this.destroyed)){Fe(this.id,r(this,W));return}(g=s==null?void 0:s.touch)!=null&&g&&Fe(this.id,r(this,W),{touch:!0})});p(this,"object");this.id=Li.make(),++Ot.instanceCount,this.lazy=t,this.lazy?(this.value=void 0,this.valueFn=s):(this.value=s,this.valueFn=void 0),this.reader=Ri(this),this.object=new Di(this)}get[_](){return this}get value(){return this.lazy&&(f(this,W,this.valueFn()),this.valueFn=void 0,this.lazy=!1),r(this,W)}set value(t){f(this,W,t)}},W=new WeakMap,p(Ot,"instanceCount",0),Ot),P=e=>e==null?void 0:e[_];function k(e=void 0,t){var i;let s;if(ee(e))s=P(e);else{let a=(i=t==null?void 0:t.lazy)!=null?i:!1;s=new Is(a,e),s.beforeRead=t==null?void 0:t.beforeRead,s.compare=t==null?void 0:t.compare}return(t==null?void 0:t.attach)!=null&&ne.findOrCreate(t.attach).attachSignal(s),s.object}var G=(...e)=>{for(let t of e){let s=P(t);s!=null&&!s.destroyed&&(s.destroyed=!0,s.beforeRead=void 0,--Is.instanceCount,E(Nt,s.id,s.id))}};function xi(e,t){var n,d;let s=k(),i=(t==null?void 0:t.attach)!=null?ne.findOrCreate(t.attach):void 0;i!=null&&(t!=null&&t.name?i.attachSignalByName(t.name,s):i.attachSignal(s));let a=Vt(()=>{Zt(()=>{s.set(e())})},{autorun:!((n=t==null?void 0:t.lazy)!=null&&n),priority:(d=t==null?void 0:t.priority)!=null?d:ve.C,attach:i}),o=P(s);return o.beforeRead=a.run,A(Nt,o.id,a.destroy),s.get}var O,Lt,Es,Gs=(Es=class{constructor(e){y(this,O,!1);y(this,Lt);p(this,"source");p(this,"lastValue");p(this,"isDestroyed",!1);ot(this),this.source=P(e),f(this,Lt,V(ge,this.source.id,(t,s)=>{!r(this,O)&&!this.isDestroyed&&((s==null?void 0:s.touch)===!0?this.touch():this.write())})),A(Nt,this.source.id,()=>this.destroy())}attach(e){let t=ne.findOrCreate(e);return t.attachLink(this),A(this,Yt,()=>{t.detachLink(this)}),t}nextValue(){return new Promise((e,t)=>{let s=[],i=()=>s.forEach(a=>{a()});s.push(A(this,Bt,a=>{i(),e(a)}),A(this,Yt,()=>{i(),t()}))})}asyncValues(e){return Ye(this,null,function*(){let t=0;for(;!this.isDestroyed;)try{let s=yield new Ee(this.nextValue());if(e&&e(s,t++))break;Ge(this,Bt),yield s}catch(s){break}ye(this,Bt)})}destroy(){var e;this.isDestroyed||((e=r(this,Lt))==null||e.call(this),f(this,Lt,void 0),E(this,Yt,this),ye(this,Bt),$(this),this.lastValue=void 0,this.isDestroyed=!0,Object.freeze(this))}get isMuted(){return r(this,O)}mute(){return!this.isDestroyed&&!r(this,O)&&(f(this,O,!0),E(this,rs,this)),this}unmute(){return!this.isDestroyed&&r(this,O)&&(f(this,O,!1),E(this,as,this)),this}toggleMute(){return this.isDestroyed||(f(this,O,!r(this,O)),E(this,r(this,O)?rs:as,this)),r(this,O)}updateValue(e){if(!r(this,O)&&!this.isDestroyed){let{value:t}=this.source;e(t),E(this,Bt,t),this.lastValue=t}}},O=new WeakMap,Lt=new WeakMap,Es),zi=class extends Gs{constructor(t,s){super(t);p(this,"target");this.target=P(s),A(Nt,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)})}},Fi=class extends Gs{constructor(t,s){super(t);p(this,"target");this.target=s,this.touch()}touch(){return this.updateValue(t=>{this.target(t)}),this}write(){this.updateValue(t=>{this.target(t)})}},de=new Map;function et(e,t,s){var m;let i=P(e),a;if(de.has(i)){a=de.get(i);let w=(m=P(t))!=null?m:t;if(a.has(w))return a.get(w)}else a=new Map,de.set(i,a);let o=P(t),n=o!=null?new zi(e,o):new Fi(e,t),d=s==null?void 0:s.attach;d&&n.attach(d);let g=o!=null?o:t;return a.set(g,n),A(n,Yt,()=>{a.delete(g),a.size===0&&de.delete(i)}),n}var D,Rt,Ni=(Rt=class{constructor(){y(this,D,new Map)}static fromProps(t,s){let i=new Rt,a=s?s.map(o=>[o,t[o]]):Object.entries(t);for(let[o,n]of a)r(i,D).set(o,k(n));return i}keys(){return r(this,D).keys()}signals(){return r(this,D).values()}entries(){return r(this,D).entries()}clear(){for(let t of r(this,D).values())t.destroy();r(this,D).clear()}has(t){return r(this,D).has(t)}get(t){if(!r(this,D).has(t)){let s=k();return r(this,D).set(t,s),s}return r(this,D).get(t)}update(t){t.size&&Zt(()=>{for(let[s,i]of t.entries())this.get(s).set(i)})}updateFromProps(t,s){Zt(()=>{let i=s?s.map(a=>[a,t[a]]):Object.entries(t);for(let[a,o]of i)this.get(a).set(o)})}},D=new WeakMap,Rt),Oe=e=>e!=null?e:void 0;function Vi(e,t,s,i,a,o){function n(I){if(I!==void 0&&typeof I!="function")throw new TypeError("Function expected");return I}for(var d=i.kind,g=d==="getter"?"get":d==="setter"?"set":"value",m=!t&&e?i.static?e:e.prototype:null,w=t||(m?Object.getOwnPropertyDescriptor(m,i.name):{}),h,l=!1,u=s.length-1;u>=0;u--){var c={};for(var b in i)c[b]=b==="access"?{}:i[b];for(var b in i.access)c.access[b]=i.access[b];c.addInitializer=function(I){if(l)throw new TypeError("Cannot add initializers after decoration has completed");o.push(n(I||null))};var T=(0,s[u])(d==="accessor"?{get:w.get,set:w.set}:w[g],c);if(d==="accessor"){if(T===void 0)continue;if(T===null||typeof T!="object")throw new TypeError("Object expected");(h=n(T.get))&&(w.get=h),(h=n(T.set))&&(w.set=h),(h=n(T.init))&&a.unshift(h)}else(h=n(T))&&(d==="field"?a.unshift(h):w[g]=h)}m&&Object.defineProperty(m,i.name,w),l=!0}function os(e,t,s){for(var i=arguments.length>2,a=0;a<t.length;a++)s=i?t[a].call(e,s):t[a].call(e);return i?s:void 0}function $i(e){return function(t,s){var o;let i=(e==null?void 0:e.name)||s.name,a=!!((o=e==null?void 0:e.readAsValue)!=null&&o);return{get(){let n=te(this,i);if(n)return a?n.value:n.get()},set(n){var d;(d=te(this,i))==null||d.set(n)},init(n){let d=k(n,e);return Mi(this,i,d),ne.findOrCreate(this).attachSignalByName(i,d),d.value}}}}var Tt="value",Ne=(()=>{var i,a,o,n,ce,Jt,m;let e,t=[],s=[];return m=class{constructor(h){y(this,n);y(this,i);y(this,a);y(this,o);f(this,i,[]),f(this,o,os(this,t,void 0)),this.value$=os(this,s),Ge(this,Tt),this.value$=te(this,Tt),this.value$.onChange(l=>E(this,Tt,l)),h&&this.add(...h)}get value(){return r(this,o)}set value(h){f(this,o,h)}add(...h){return r(this,i).push(...h),C(this,n,Jt).call(this),C(this,n,ce).call(this,h)}unshift(...h){return r(this,i).unshift(...h),C(this,n,Jt).call(this),C(this,n,ce).call(this,h)}remove(...h){C(this,n,ce).call(this,h)()}clear(){r(this,i).length=0,C(this,n,Jt).call(this)}dispose(){var h;this.clear(),(h=r(this,a))==null||h.destroy(),f(this,a,void 0),ye(this,Tt),$(this),this.value$.destroy(),ji(this)}},i=new WeakMap,a=new WeakMap,o=new WeakMap,n=new WeakSet,ce=function(h){return()=>{for(let l of h){let u=r(this,i).indexOf(l);u!==-1&&r(this,i).splice(u,1)}C(this,n,Jt).call(this)}},Jt=function(){var h;(h=r(this,a))==null||h.destroy(),r(this,i).length===0?(f(this,a,void 0),this.value=void 0):(f(this,a,Vt(()=>{let l;for(let u of r(this,i)){let c=Ue(u);if(c!=null){l=c;break}}this.value=l},r(this,i))),r(this,a).run())},(()=>{let h=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;e=[$i({name:Tt})],Vi(m,null,e,{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},t,s),h&&Object.defineProperty(m,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:h})})(),m.Value=Tt,m})(),hs=Symbol("onCreate"),mt=Symbol("onDestroy"),Ii=Symbol("onParentChanged"),Us=Symbol("onViewEvent"),Me=new Map,je=!1,Gi=(e,t)=>{Me.set(e,t),je||(je=!0,queueMicrotask(()=>{je=!1;let s=Array.from(Me.entries());Me.clear();for(let[i,a]of s)i.set(a)}))},Q,xt,ct,q,ft,z,L,rt,F,zt,j,Ve,pt,Kt,fe,Ss,Ui=(Ss=class{constructor(e,t){y(this,j);y(this,Q);y(this,xt);y(this,ct,new Ni);y(this,q,new Map);y(this,ft,new Map);y(this,z);y(this,L);y(this,rt,new Set);y(this,F,[]);y(this,zt,0);y(this,pt);f(this,Q,e),f(this,xt,t),A(this,mt,ve.Min,this)}get kernel(){return r(this,Q)}get uuid(){return r(this,xt)}get order(){return r(this,zt)}set order(e){r(this,zt)!==e&&(f(this,zt,e),r(this,z)&&this.parent.resortChildren())}get parentUuid(){return r(this,z)||void 0}set parentUuid(e){r(this,z)!==e&&(this.removeFromParent(),f(this,z,e||void 0),f(this,L,e?r(this,Q).getEntity(e):void 0),r(this,L)&&r(this,L).addChild(this))}get parent(){return!r(this,L)&&r(this,z)&&f(this,L,r(this,Q).getEntity(r(this,z))),r(this,L)}set parent(e){this.parentUuid=e==null?void 0:e.uuid}get hasParent(){return!!r(this,z)}get children(){return r(this,F)}traverse(e){e(this);for(let t of r(this,F))t.traverse(e)}[mt](){var e;r(this,ct).clear(),$(this);for(let t of r(this,ft).values())t.cleanup(),t.signal.destroy();r(this,ft).clear();for(let t of r(this,q).values())t.context.set(void 0),t.unsubscribePathValue(),(e=t.unsubscribeFromParent)==null||e.call(t),t.valuePath.dispose(),t.inherited.destroy(),t.provide.destroy(),t.context.destroy();f(this,z,void 0),f(this,L,void 0),r(this,rt).clear(),r(this,F).length=0}addChild(e){var t;if(r(this,F).length===0){r(this,rt).add(e.uuid),r(this,F).push(e);return}if(r(this,rt).has(e.uuid))throw new Error(`child with uuid: ${e.uuid} already exists! parentUuid: ${this.uuid}`);r(this,rt).add(e.uuid),r(this,F).push(e),this.resortChildren();for(let[,s]of r(e,q))C(t=e,j,fe).call(t,s)}resortChildren(){r(this,F).sort((e,t)=>e.order-t.order)}removeChild(e){r(this,rt).has(e.uuid)&&(r(this,rt).delete(e.uuid),r(this,F).splice(r(this,F).indexOf(e),1))}removeFromParent(){if(r(this,L)){r(this,L).removeChild(this),f(this,L,void 0),f(this,z,void 0);for(let[,e]of r(this,q))e.unsubscribeFromParent&&(e.unsubscribeFromParent(),e.unsubscribeFromParent=void 0)}}reSubscribeToParentContexts(){for(let[,e]of r(this,q))C(this,j,fe).call(this,e)}dispatchMessageToView(e,t,s,i=!1){r(this,Q).dispatchMessageToView({uuid:r(this,xt),type:e,data:t,transferables:s,traverseChildren:i})}dispatchViewEvents(e){for(let{type:t,data:s}of e)E(this,Us,t,s)}dispatchViewEvent(e,t){this.dispatchViewEvents([{type:e,data:t}])}getPropertyReader(e){return C(this,j,Ve).call(this,e).get}getPropertyWriter(e){return C(this,j,Ve).call(this,e).set}setProperties(e){this.clearTruthyPropsCache(),Zt(()=>{for(let[t,s]of e)this.setProperty(t,s)})}setProperty(e,t){this.getPropertyWriter(e)(t)}getProperty(e){return Ue(this.getPropertyReader(e))}propKeys(){return Array.from(r(this,ct).keys())}propEntries(){return Array.from(r(this,ct).entries()).map(([e,t])=>[e,t.value])}clearTruthyPropsCache(){f(this,pt,void 0)}truthyProps(){if(r(this,pt))return r(this,pt).size?r(this,pt):void 0;let e=new Set;for(let[t,s]of r(this,ct).entries())if(typeof t=="string"){let i=s.value;i!=null&&i!==!1&&i!==""&&e.add(t)}return f(this,pt,e),e.size?e:void 0}hasContext(e){return r(this,q).has(e)}useContext(e){return C(this,j,Kt).call(this,e).context.get}useParentContext(e){return C(this,j,Kt).call(this,e).inherited.get}provideContext(e){return C(this,j,Kt).call(this,e).provide}provideGlobalContext(e){if(r(this,ft).has(e))return r(this,ft).get(e).signal;let t=r(this,Q).findOrCreateRootContext(e),s=k(),i=t.add(s);return r(this,ft).set(e,{cleanup:i,signal:s}),s}},Q=new WeakMap,xt=new WeakMap,ct=new WeakMap,q=new WeakMap,ft=new WeakMap,z=new WeakMap,L=new WeakMap,rt=new WeakMap,F=new WeakMap,zt=new WeakMap,j=new WeakSet,Ve=function(e){return r(this,ct).get(e)},pt=new WeakMap,Kt=function(e){if(r(this,q).has(e))return r(this,q).get(e);let t=k(),s=k(),i=k(),a=new Ne([s,t]),o=V(a,Ne.Value,d=>{Gi(i,d)}),n={name:e,inherited:t,provide:s,context:i,valuePath:a,unsubscribePathValue:o};return r(this,q).set(e,n),C(this,j,fe).call(this,n),n},fe=function(e){var t,s;if((t=e.unsubscribeFromParent)==null||t.call(e),e.unsubscribeFromParent=void 0,this.parent){let i=C(s=this.parent,j,Kt).call(s,e.name),a=et(i.context,e.inherited);e.unsubscribeFromParent=a.destroy.bind(a)}else{let i=r(this,Q).findOrCreateRootContext(e.name),a=et(i.value$,e.inherited);e.unsubscribeFromParent=a.destroy.bind(a)}},Ss);function Bi(e,t){e.indexOf(t)===-1&&e.push(t)}var ls=e=>{let t=e.split("@").map(s=>s.trim());if(t.length===2&&t[1])return t[0]?{key:`${t[0]}@${t[1]}`,prop:t[1],token:t[0]}:{key:t[1],prop:t[1]}},ue=(e,t)=>{for(let s of t)e.add(s)},Wi=(e,t)=>{if(e!=null)for(let s of e.constructors)t.add(s)},at,R,J,ks,Bs=(ks=class{constructor(){y(this,at,new Map);y(this,R,new Map);y(this,J,new Map)}static get(e){return e!=null?e:qi}define(e,t){r(this,at).has(e)?Bi(r(this,at).get(e).constructors,t):r(this,at).set(e,{token:e,constructors:[t]})}appendRoute(e,t){let s=ls(e);s?r(this,J).has(s.key)?ue(r(this,J).get(s.key).routes,t):r(this,J).set(s.key,{routes:new Set(t),token:s.token}):r(this,R).has(e)?ue(r(this,R).get(e),t):r(this,R).set(e,new Set(t))}clearRoute(e){let t=ls(e);t?r(this,J).delete(t.key):r(this,R).delete(e)}findTokensByRoute(e,t){let s=new Set([e]),i=r(this,R).has(e)?[...r(this,R).get(e)]:[];for(;i.length;){let a=i.shift();s.has(a)||(s.add(a),r(this,R).has(a)&&i.push(...Array.from(r(this,R).get(a)).filter(o=>!s.has(o))))}if(t){for(let o of t)r(this,J).has(o)&&ue(s,r(this,J).get(o).routes);let a;do{a=s.size;for(let o of new Set(s))for(let n of t){let d=`${o}@${n}`;r(this,J).has(d)&&ue(s,r(this,J).get(d).routes)}}while(a!==s.size)}return s}findConstructors(e,t){let s=this.findTokensByRoute(e,t),i=new Set;for(let a of s)Wi(r(this,at).get(a),i);return i.size>0?Array.from(i):void 0}hasToken(e){return r(this,at).has(e)}hasRoute(e){return r(this,R).has(e)}clear(){r(this,at).clear(),r(this,R).clear()}},at=new WeakMap,R=new WeakMap,J=new WeakMap,ks),qi=new Bs,st;(function(e){e[e.CreateAndDestroy=0]="CreateAndDestroy",e[e.JustCreate=1]="JustCreate",e[e.DestroyOnly=2]="DestroyOnly"})(st||(st={}));var ds=e=>e.displayName||e.name,us=!1,cs=!1,fs=!1,ps=!1,ys=!1,S,X,Ft,re,Z,yt,As,Ji=(As=class{constructor(e){y(this,S);y(this,X);y(this,Ft);y(this,re);y(this,Z);y(this,yt);this.logger=new si("Kernel"),f(this,S,new Map),f(this,X,new Set),f(this,Z,!0),f(this,yt,new Map),ot(this),this.registry=Bs.get(e)}getEntity(e){var s;let t=(s=r(this,S).get(e))==null?void 0:s.entity;if(!t)throw new Error(`entity with uuid "${e}" not found!`);return t}hasEntity(e){return r(this,S).has(e)}traverseLevelOrderBFS(e=!1){if(r(this,Z)){let t=new Map,s=(i,a)=>{let o=this.getEntity(i);t.has(a)?t.get(a).push(o):t.set(a,[o]);for(let n of o.children)s(n.uuid,a+1)};r(this,X).forEach(i=>{s(i,0)}),f(this,Ft,Array.from(t.entries()).sort((i,a)=>i[0]-a[0]).flatMap(([,i])=>i)),f(this,re,r(this,Ft).slice().reverse()),f(this,Z,!1)}return e?r(this,re):r(this,Ft)}getEntityGraph(){return Array.from(r(this,X)).map(e=>this.getEntityGraphNode(e))}getEntityGraphNode(e){if(!r(this,S).has(e))return;let{token:t,entity:s}=r(this,S).get(e);return{token:t,entity:s,props:Object.fromEntries(s.propEntries()),children:s.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,st.DestroyOnly));for(let t of this.traverseLevelOrderBFS(!1))this.updateShadowObjects(t.uuid,st.JustCreate,e.get(t.uuid));e.clear()}run(e){this.logger.isDebug&&this.logger.debug("sync",e),Zt(()=>{for(let t of e.changeTrail)this.parse(t)})}parse(e){switch(e.type){case tt.CreateEntities:this.createEntity(e.uuid,e.token,e.parentUuid,e.order,e.properties),f(this,Z,!0);break;case tt.DestroyEntities:this.destroyEntity(e.uuid),f(this,Z,!0);break;case tt.SetParent:this.setParent(e.uuid,e.parentUuid,e.order),f(this,Z,!0);break;case tt.UpdateOrder:this.updateOrder(e.uuid,e.order),f(this,Z,!0);break;case tt.ChangeProperties:this.changeProperties(e.uuid,e.properties);break;case tt.ChangeToken:this.changeToken(e.uuid,e.token);break;case tt.SendEvents:this.dispatchEventsToEntity(e.uuid,e.events);break}}createEntity(e,t,s,i=0,a){let o=new Ui(this,e);o.order=i;let n={token:t,entity:o,usedConstructors:new Map};r(this,S).set(e,n),s&&(o.parentUuid=s),o.hasParent||r(this,X).add(e),a&&o.setProperties(a),this.createShadowObjects(e)}destroyEntity(e){if(!r(this,S).has(e))return;let{entity:t,usedConstructors:s}=r(this,S).get(e);t.removeFromParent(),E(t,mt,t),s.clear(),r(this,S).delete(t.uuid),r(this,X).delete(t.uuid)}setParent(e,t,s=0){let i=this.getEntity(e);i.parentUuid===t&&i.order===s||(i.removeFromParent(),i.order=s,i.parentUuid=t,i.hasParent?r(this,X).delete(e):r(this,X).add(e),i.reSubscribeToParentContexts(),queueMicrotask(()=>{this.logger.isDebug&&this.logger.debug("entity.onParentChanged",{uuid:e,parentUuid:t,order:s,entity:i}),E(i,Ii,i)}))}updateOrder(e,t){this.getEntity(e).order=t}dispatchEventsToEntity(e,t){var s;(s=this.getEntity(e))==null||s.dispatchViewEvents(t)}changeProperties(e,t){this.getEntity(e).setProperties(t),this.updateShadowObjects(e)}changeToken(e,t){if(!r(this,S).has(e))return;let s=r(this,S).get(e);s.token!==t&&(s.token=t,this.updateShadowObjects(e))}dispatchMessageToView(e){queueMicrotask(()=>{E(this,De,e)})}updateShadowObjects(e,t=st.CreateAndDestroy,s){let i=r(this,S).get(e);s!=null||(s=new Set(this.registry.findConstructors(i.token,i.entity.truthyProps())));let a=t===st.CreateAndDestroy||t===st.DestroyOnly,o=t===st.CreateAndDestroy||t===st.JustCreate;if(a){for(let[n,d]of i.usedConstructors)if(!s.has(n)){i.usedConstructors.delete(n);for(let g of d)this.destroyShadowObject(g,i.entity)}}if(o)for(let n of s)i.usedConstructors.has(n)||this.constructShadowObject(n,i);return s}constructShadowObject(e,t){let s=new Set,i=new Set,a=new Map,o=new Map,n=new Map,d=new Map,g=new Map,m=(h,l)=>{!ys&&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.\'),ys=!0);let u=typeof l=="function"?{compare:l}:l,c=g.get(h);if(c===void 0){c=k(void 0,u).get,g.set(h,c);let b=et(t.entity.getPropertyReader(h),c);i.add(b.destroy.bind(b))}return c},w=ot(new e({entity:t.entity,provideContext(h,l,u){var T;!us&&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.\'),us=!0);let c=typeof u=="function"?{compare:u}:u,b=n.get(h);if(b==null){let I=ee(l),be=I?void 0:Oe(l);if(b=k(be,c!=null&&c.compare?{compare:c.compare}:void 0),I){let Gt=et(l,b);i.add(Gt.destroy.bind(Gt))}let It=et(b,t.entity.provideContext(h));i.add(It.destroy.bind(It)),n.set(h,b)}return b!=null&&((T=c==null?void 0:c.clearOnDestroy)==null||T)&&i.add(()=>{b.set(void 0)}),b},provideGlobalContext(h,l,u){var T;!cs&&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.\'),cs=!0);let c=typeof u=="function"?{compare:u}:u,b=d.get(h);if(b==null){let I=ee(l),be=I?void 0:Oe(l);if(b=k(be,c!=null&&c.compare?{compare:c.compare}:void 0),I){let Gt=et(l,b);i.add(Gt.destroy.bind(Gt))}let It=et(b,t.entity.provideGlobalContext(h));i.add(It.destroy.bind(It)),d.set(h,b)}return b!=null&&((T=c==null?void 0:c.clearOnDestroy)==null||T)&&i.add(()=>{b.set(void 0)}),b},useContext(h,l){!fs&&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.\'),fs=!0);let u=typeof l=="function"?{compare:l}:l,c=a.get(h);if(c===void 0){c=k(void 0,u).get,a.set(h,c);let b=et(t.entity.useContext(h),c);i.add(b.destroy.bind(b))}return c},useParentContext(h,l){!ps&&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.\'),ps=!0);let u=typeof l=="function"?{compare:l}:l,c=o.get(h);if(c===void 0){c=k(void 0,u).get,o.set(h,c);let b=et(t.entity.useParentContext(h),c);i.add(b.destroy.bind(b))}return c},dispatchMessageToView(h,l,u,c=!1){t.entity.dispatchMessageToView(h,l,u,c)},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=k(),c=Vt(()=>{let b=Oe(h());return u.set(b),b!==void 0&&l?()=>{l(b),u.set(void 0)}:()=>{u.set(void 0)}});return i.add(()=>{c.destroy(),u.set(void 0),G(u)}),u},createEffect(...h){let l=Vt(...h);return i.add(l.destroy),l},createSignal(...h){let l=k(...h);return i.add(()=>{G(l)}),l},createMemo(...h){let l=xi(...h);return i.add(()=>{G(l)}),l},on(...h){let[l]=h;if(typeof l=="string"||typeof l=="symbol"||Array.isArray(l)){let c=V(t.entity,...h);return i.add(c),c}let u=V(...h);return i.add(u),u},once(...h){let[l]=h;if(typeof l=="string"||typeof l=="symbol"||Array.isArray(l)){let c=A(t.entity,...h);return i.add(c),c}let u=A(...h);return i.add(u),u},onViewEvent(h){let l=V(t.entity,Us,(u,c)=>{h(u,c)});i.add(l)},onDestroy(h){s.add(h)}}));return this.logger.isInfo&&this.logger.info("create shadow-object",ds(e),{shadowObject:w,entity:t.entity}),A(t.entity,mt,ve.Low,()=>{this.logger.isInfo&&this.logger.info("destroy shadow-object",ds(e),{shadowObject:w,entity:t.entity});for(let l of s)l();for(let l of i)l();for(let l of a.values())G(l);for(let l of o.values())G(l);for(let l of g.values())G(l);for(let l of n.values())G(l);for(let l of d.values())G(l);s.clear(),i.clear(),a.clear(),o.clear(),g.clear(),n.clear(),d.clear();let h=t.usedConstructors.get(e);h&&(h.delete(w),h.size===0&&t.usedConstructors.delete(e))}),t.usedConstructors.has(e)?t.usedConstructors.get(e).add(w):t.usedConstructors.set(e,new Set([w])),this.attachShadowObject(w,t.entity),w}createShadowObjects(e){var s;let t=r(this,S).get(e);(s=this.registry.findConstructors(t.token,t.entity.truthyProps()))==null||s.forEach(i=>{this.constructShadowObject(i,t)})}findShadowObjects(e){if(!r(this,S).has(e))return[];let{usedConstructors:t}=r(this,S).get(e);return Array.from(new Set(Array.from(t.values()).flatMap(s=>Array.from(s))))}attachShadowObject(e,t){V(t,e),typeof e[hs]=="function"&&e[hs](t)}destroyShadowObject(e,t){typeof e[mt]=="function"&&e[mt](t),E(e,mt,t),$(t,e)}findOrCreateRootContext(e){let t=r(this,yt).get(e);return t||(t=new Ne,r(this,yt).set(e,t)),t}destroy(){for(let e of r(this,yt).values())e.dispose();r(this,yt).clear();for(let e of this.traverseLevelOrderBFS().reverse())this.destroyEntity(e.uuid)}},S=new WeakMap,X=new WeakMap,Ft=new WeakMap,re=new WeakMap,Z=new WeakMap,yt=new WeakMap,As);async function Ws(e,t,s,i=!0){var o,n;if(s.has(t)){console.warn("importModule: skipping already imported module",t);return}else s.add(t);t.extends&&await Promise.all(t.extends.map(d=>Ws(e,d,s,!1)));let{registry:a}=e;if(t.define)for(let[d,g]of Object.entries(t.define))a.define(d,g);if(t.routes)for(let[d,g]of Object.entries(t.routes))a.appendRoute(d,g);await((n=(o=t.initialize)==null?void 0:o.call(t,{define:(d,g)=>a.define(d,g),kernel:e,registry:a}))!=null?n:Promise.resolve()),i&&e.upgradeEntities()}var Ki=e=>(typeof e=="string"&&(e=new URL(e,globalThis.location.href)),e.toString()),ae,gt,qs,Js,Ks,Ps,Yi=(Ps=class{constructor(e){y(this,gt);y(this,ae,new Set);var t,s;this.kernel=(t=e==null?void 0:e.kernel)!=null?t:new Ji,this.postMessage=(s=e==null?void 0:e.postMessage)!=null?s:self.postMessage.bind(self),V(this.kernel,De,"onMessageToView",this)}route(e){var t;switch(e.data.type){case Qs:C(this,gt,qs).call(this,e.data);break;case Xs:C(this,gt,Js).call(this,e.data);break;case Zs:C(this,gt,Ks).call(this,e.data);break;default:console.warn("[MessageRouter] unknown message",(t=e.data.type)!=null?t:e.data)}}onMessageToView(e){let i=e,{transferables:t}=i,s=Je(i,["transferables"]);this.postMessage({type:De,data:s},{transfer:t})}},ae=new WeakMap,gt=new WeakSet,qs=async function(e){try{let t=await import(Ki(e.importModule));t[ke]?(await Ws(this.kernel,t[ke],r(this,ae)),this.postMessage({type:Se,url:e.importModule})):this.postMessage({type:Se,url:e.importModule,error:`module has no "${ke}" export`})}catch(t){console.error("[MessageRouter] failed to import module",t),this.postMessage({type:Se,url:e.importModule,error:`${t}`})}},Js=function(e){try{this.kernel.run(e)}catch(t){console.error("[MessageRouter] failed to apply change trail",t),this.postMessage({type:Qe,serial:e.serial,error:t.toString()})}e.serial&&this.postMessage({type:Qe,serial:e.serial})},Ks=function(e){console.debug("[MessageRouter] on destroy",e),$(this.kernel,this),r(this,ae).clear(),this.postMessage({type:ti})},Ps),Hi=class{constructor(){this.onmessage=e=>{var t;e.data.type===N?globalThis[x]=e.data.config:((t=this.router)!=null||(this.router=new Yi),this.router.route(e))}}start(){self.addEventListener("message",this.onmessage),self.postMessage({type:_s})}};console.debug("@spearwolf/shadow-objects/WorkerRuntime: hello!");var Qi=new Hi;Qi.start();\n/*! Bundled license information:\n\n@spearwolf/eventize/lib/index.mjs:\n (*!\n =============================================================================\n @spearwolf/eventize 4.0.2+build.20250807\n \u2014 https://github.com/spearwolf/eventize.git\n =============================================================================\n \n Copyright 2015-2025 Wolfger Schramm\n \n Licensed under the Apache License, Version 2.0 (the "License");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an "AS IS" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n *)\n*/\n')}var Qs=()=>new Xt;var We=(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(C){a(),n(C.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},xt=class s{static{this.WorkerLoaded="workerLoaded"}#e;#t;#s;get isDestroyed(){return this.#t}get workerLoaded(){return pe(this,s.WorkerLoaded)}constructor(){this.#t=!1,this.#s=0,this.logger=new P("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 We(e,Cs,ks),this.isDestroyed)throw"worker was destroyed";e.addEventListener("message",this.onMessageFromWorker.bind(this)),queueMicrotask(()=>{g(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:vs,changeTrail:e},n=++this.#s;return t&&(i.serial=n),this.#e.postMessage(i,r),t?We(this.#e,Es,Ts,o=>{if(o.error)throw o.error;return o.serial===n}):Promise.resolve()}importScript(e){return e=Et(e),this.#e.postMessage({type:bs,importModule:e}),We(this.#e,Ss,As,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:ws}),We(e,xs,Os).finally(()=>{e.terminate()})}onMessageFromWorker(e){e.data?.type===be?this.onMessageToView?.(e.data.data):this.logger.isDebug&&this.logger.debug("message from worker",e)}configureConsoleLogger(e){let t=`${N}.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:N,config:{...P.sharedConfig,enable:this.logger.isEnabled,...r,...P.isEnabled?{}:{enable:!1}}})}};var Ie,Fe=class extends ie{static{this.observedAttributes=[...ie.observedAttributes,ht,"src",lt,W]}static{this.DefaultAutoSync="frame"}#e;#t;#s;#i;#r;constructor(){super(),this.isShaeWorkerElement=!0,this.shadowEnv=new V,this.logger=new P("ShaeWorkerElement"),this.autostart=!0,this.isConnected$=p(!1),this.autoSync$=p(Ie.DefaultAutoSync),this.src$=p(""),this.#e=!1,this.#t=!1,this.ns$.onChange(e=>{this.shadowEnv.view=D.get(e)}),m(this.shadowEnv,V.ContextCreated,()=>{this.#r?.run(),this.dispatchEvent(new CustomEvent(V.ContextCreated.toLowerCase(),{bubbles:!1,detail:{shadowEnv:this.shadowEnv}}))}),m(this.shadowEnv,V.ContextLost,()=>{this.dispatchEvent(new CustomEvent(V.ContextLost.toLowerCase(),{bubbles:!1,detail:{shadowEnv:this.shadowEnv}}))}),this.autoSync$.onChange(e=>{let t=this.hasAttribute(W),r=t?this.getAttribute(W):void 0;e===Ie.DefaultAutoSync?t&&r!==e&&this.setAttribute(W,e):r!==e&&this.setAttribute(W,e)}),this.#a(),this.#n(),this.style.display="contents"}#n(){this.#r=w(()=>{let e=this.src$.get();e&&this.importScript(e)},{autorun:!1})}get shouldAutostart(){return this.autostart&&!_e(this,Ns)}get autoSync(){return this.autoSync$.value}set autoSync(e){typeof e!="string"&&(e=e?Ie.DefaultAutoSync:"no"),this.autoSync$.set(`${e}`.trim().toLowerCase())}get frameLoop(){return this.#s??=new ve,this.#s}[ve.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(){O(()=>{this.hasAttribute(W)&&this.autoSync$.set(this.getAttribute(W)),this.isConnected$.set(!0)}),this.shouldAutostart&&this.start()}disconnectedCallback(){this.isConnected$.set(!1),this.#o()}attributeChangedCallback(e){if(super.attributeChangedCallback(e),e===ht&&this.shadowEnv.envProxy!=null)throw new Error('Changing the "local" attribute after the shadowEnv has been created is not supported.');if(e===lt&&this.#h(),e===W&&(this.autoSync=this.hasAttribute(W)?this.getAttribute(W):!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??=D.get(this.ns),this.shadowEnv.envProxy==null){let e=_e(this,ht)?new St:new xt;this.shadowEnv.envProxy=e,this.#h()}this.#t=!0}return this.shadowEnv.ready()}destroy(){this.#i?.destroy(),this.#r?.destroy(),A(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=w(()=>{if(this.isConnected$.get()){let e=(this.autoSync$.get()||Ie.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(lt))}};Ie=Fe;customElements.define(Ds,Fe);globalThis.SHADOW_ENTS_BUNDLE_LOADED=!0;
22
22
  /*! Bundled license information:
23
23
 
24
24
  @spearwolf/eventize/lib/index.mjs:
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@spearwolf/shadow-objects",
3
3
  "description": "a reactive entity-component framework that feels at home in the shadows",
4
- "version": "0.28.0",
4
+ "version": "0.29.0",
5
5
  "author": {
6
6
  "name": "Wolfger Schramm",
7
7
  "email": "wolfger@spearwolf.de",
@@ -8,6 +8,7 @@ export declare class ShaeEntElement extends ShaeElement {
8
8
  readonly componentContext$: import("@spearwolf/signalize").Signal<ComponentContext>;
9
9
  readonly viewComponent$: import("@spearwolf/signalize").Signal<ViewComponent>;
10
10
  readonly token$: import("@spearwolf/signalize").Signal<string>;
11
+ readonly forwardCustomEvents$: import("@spearwolf/signalize").Signal<boolean | Set<string>>;
11
12
  get componentContext(): ComponentContext | undefined;
12
13
  get viewComponent(): ViewComponent | undefined;
13
14
  get uuid(): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ShaeEntElement.d.ts","sourceRoot":"","sources":["../../../src/elements/ShaeEntElement.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAG7C,qBAAa,cAAe,SAAQ,WAAW;;IAC7C,OAAgB,kBAAkB,WAAmD;IAErF,QAAQ,CAAC,gBAAgB,QAAQ;IAEjC,QAAQ,CAAC,iBAAiB,0DAAgD;IAC1E,QAAQ,CAAC,cAAc,uDAA6C;IACpE,QAAQ,CAAC,MAAM,gDAAsC;IAErD,IAAI,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAEnD;IAED,IAAI,aAAa,IAAI,aAAa,GAAG,SAAS,CAE7C;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAElC;IAED,aAAa,CAAC,EAAE,cAAc,CAAC;;IAqF/B,kBAAkB,IAAI,WAAW,GAAG,SAAS;IAmB7C,SAAS,CAAC,wBAAwB;IAMlC,iBAAiB;IAgDjB,eAAe,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,IAAI;IAUrD,wBAAwB,CAAC,IAAI,EAAE,MAAM;IAO9C,oBAAoB;CA4HrB"}
1
+ {"version":3,"file":"ShaeEntElement.d.ts","sourceRoot":"","sources":["../../../src/elements/ShaeEntElement.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAG7C,qBAAa,cAAe,SAAQ,WAAW;;IAC7C,OAAgB,kBAAkB,WAA+E;IAEjH,QAAQ,CAAC,gBAAgB,QAAQ;IAEjC,QAAQ,CAAC,iBAAiB,0DAAgD;IAC1E,QAAQ,CAAC,cAAc,uDAA6C;IACpE,QAAQ,CAAC,MAAM,gDAAsC;IACrD,QAAQ,CAAC,oBAAoB,+DAA8C;IAE3E,IAAI,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAEnD;IAED,IAAI,aAAa,IAAI,aAAa,GAAG,SAAS,CAE7C;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAElC;IAED,aAAa,CAAC,EAAE,cAAc,CAAC;;IAkJ/B,kBAAkB,IAAI,WAAW,GAAG,SAAS;IAmB7C,SAAS,CAAC,wBAAwB;IAMlC,iBAAiB;IAmDjB,eAAe,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,IAAI;IAUrD,wBAAwB,CAAC,IAAI,EAAE,MAAM;IAS9C,oBAAoB;CAgJrB"}
@@ -4,9 +4,9 @@ import { ComponentContext } from '../view/ComponentContext.js';
4
4
  import { ShadowEnv } from '../view/ShadowEnv.js';
5
5
  import { ViewComponent } from '../view/ViewComponent.js';
6
6
  import { ShaeElement } from './ShaeElement.js';
7
- import { ATTR_TOKEN, RequestEntParentEventName, ReRequestEntParentEventName } from './constants.js';
7
+ import { ATTR_FORWARD_CUSTOM_EVENTS, ATTR_TOKEN, RequestEntParentEventName, ReRequestEntParentEventName } from './constants.js';
8
8
  export class ShaeEntElement extends ShaeElement {
9
- static { this.observedAttributes = [...ShaeElement.observedAttributes, ATTR_TOKEN]; }
9
+ static { this.observedAttributes = [...ShaeElement.observedAttributes, ATTR_TOKEN, ATTR_FORWARD_CUSTOM_EVENTS]; }
10
10
  get componentContext() {
11
11
  return this.componentContext$.value;
12
12
  }
@@ -29,6 +29,7 @@ export class ShaeEntElement extends ShaeElement {
29
29
  this.componentContext$ = createSignal();
30
30
  this.viewComponent$ = createSignal();
31
31
  this.token$ = createSignal();
32
+ this.forwardCustomEvents$ = createSignal(false);
32
33
  this.#shadowRootHostNeedsUpdate = true;
33
34
  this.#onSlotChange = () => {
34
35
  const shadowRootHost = this.findShadowRootHost();
@@ -79,6 +80,23 @@ export class ShaeEntElement extends ShaeElement {
79
80
  this.setAttribute(ATTR_TOKEN, token);
80
81
  }
81
82
  });
83
+ this.#updateForwardCustomEventsValue();
84
+ this.forwardCustomEvents$.onChange((val) => {
85
+ if (!val) {
86
+ this.removeAttribute(ATTR_FORWARD_CUSTOM_EVENTS);
87
+ }
88
+ else if (val === true) {
89
+ if (!this.hasAttribute(ATTR_FORWARD_CUSTOM_EVENTS)) {
90
+ this.setAttribute(ATTR_FORWARD_CUSTOM_EVENTS, '');
91
+ }
92
+ }
93
+ else {
94
+ const str = Array.from(val).join(',');
95
+ if (this.getAttribute(ATTR_FORWARD_CUSTOM_EVENTS) !== str) {
96
+ this.setAttribute(ATTR_FORWARD_CUSTOM_EVENTS, str);
97
+ }
98
+ }
99
+ });
82
100
  createEffect(() => {
83
101
  const vc = this.viewComponent$.get();
84
102
  if (vc) {
@@ -96,6 +114,42 @@ export class ShaeEntElement extends ShaeElement {
96
114
  };
97
115
  }
98
116
  });
117
+ createEffect(() => {
118
+ const vc = this.viewComponent$.get();
119
+ if (!vc)
120
+ return;
121
+ // Make sure we are patching the instance method, not the prototype
122
+ const originalDispatchEvent = Object.hasOwn(vc, 'dispatchEvent')
123
+ ? Object.getPrototypeOf(vc).dispatchEvent
124
+ : vc.dispatchEvent;
125
+ const filter = this.forwardCustomEvents$.get();
126
+ if (!filter)
127
+ return;
128
+ const allowedTypes = filter instanceof Set ? filter : undefined;
129
+ const newDispatch = (type, data, traverseChildren) => {
130
+ originalDispatchEvent.call(vc, type, data, traverseChildren);
131
+ if (type === ComponentContext.ReRequestParentRoots)
132
+ return;
133
+ if (allowedTypes && !allowedTypes.has(type))
134
+ return;
135
+ this.dispatchEvent(new CustomEvent(type, {
136
+ bubbles: true,
137
+ composed: true,
138
+ detail: data,
139
+ }));
140
+ };
141
+ // We use defineProperty to ensure it is writable and configurable
142
+ Object.defineProperty(vc, 'dispatchEvent', {
143
+ value: newDispatch,
144
+ writable: true,
145
+ configurable: true,
146
+ });
147
+ return () => {
148
+ if (Object.hasOwn(vc, 'dispatchEvent') && vc.dispatchEvent === newDispatch) {
149
+ delete vc.dispatchEvent;
150
+ }
151
+ };
152
+ });
99
153
  this.token$.onChange((token) => {
100
154
  const vc = this.viewComponent$.value;
101
155
  if (vc) {
@@ -160,6 +214,8 @@ export class ShaeEntElement extends ShaeElement {
160
214
  this.#setupViewComponentEffect();
161
215
  // --- token ---
162
216
  beQuiet(() => this.#updateTokenValue());
217
+ // --- forward-custom-events ---
218
+ beQuiet(() => this.#updateForwardCustomEventsValue());
163
219
  // --- componentContext | viewComponent ---
164
220
  if (this.componentContext == null) {
165
221
  this.componentContext$.set(ComponentContext.get(this.ns));
@@ -205,6 +261,9 @@ export class ShaeEntElement extends ShaeElement {
205
261
  if (name === ATTR_TOKEN) {
206
262
  this.#updateTokenValue();
207
263
  }
264
+ else if (name === ATTR_FORWARD_CUSTOM_EVENTS) {
265
+ this.#updateForwardCustomEventsValue();
266
+ }
208
267
  }
209
268
  disconnectedCallback() {
210
269
  this.#shadowRootHostNeedsUpdate = true;
@@ -279,5 +338,22 @@ export class ShaeEntElement extends ShaeElement {
279
338
  this.token$.set(token);
280
339
  }
281
340
  }
341
+ #updateForwardCustomEventsValue() {
342
+ if (this.hasAttribute(ATTR_FORWARD_CUSTOM_EVENTS)) {
343
+ const val = this.getAttribute(ATTR_FORWARD_CUSTOM_EVENTS);
344
+ if (!val || val.trim().length === 0) {
345
+ this.forwardCustomEvents$.set(true);
346
+ }
347
+ else {
348
+ this.forwardCustomEvents$.set(new Set(val
349
+ .split(',')
350
+ .map((s) => s.trim())
351
+ .filter((s) => s.length > 0)));
352
+ }
353
+ }
354
+ else {
355
+ this.forwardCustomEvents$.set(false);
356
+ }
357
+ }
282
358
  }
283
359
  //# sourceMappingURL=ShaeEntElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShaeEntElement.js","sourceRoot":"","sources":["../../../src/elements/ShaeEntElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShaeEntElement.js","sourceRoot":"","sources":["../../../src/elements/ShaeEntElement.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export declare const SHAE_WORKER = "shae-worker";
4
4
  export declare const SHAE_ENT = "shae-ent";
5
5
  export declare const SHAE_PROP = "shae-prop";
6
6
  export declare const ATTR_TOKEN = "token";
7
+ export declare const ATTR_FORWARD_CUSTOM_EVENTS = "forward-custom-events";
7
8
  export declare const ATTR_NS = "ns";
8
9
  export declare const ATTR_LOCAL = "local";
9
10
  export declare const ATTR_NO_AUTOSTART = "no-autostart";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/elements/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAChE,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AAEpE,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,SAAS,cAAc,CAAC;AAGrC,eAAO,MAAM,UAAU,UAAU,CAAC;AAGlC,eAAO,MAAM,OAAO,OAAO,CAAC;AAG5B,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,eAAO,MAAM,cAAc,cAAc,CAAC;AAC1C,eAAO,MAAM,QAAQ,QAAQ,CAAC;AAG9B,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,YAAY,YAAY,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/elements/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAChE,eAAO,MAAM,2BAA2B,2BAA2B,CAAC;AAEpE,eAAO,MAAM,WAAW,gBAAgB,CAAC;AACzC,eAAO,MAAM,QAAQ,aAAa,CAAC;AACnC,eAAO,MAAM,SAAS,cAAc,CAAC;AAGrC,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAGlE,eAAO,MAAM,OAAO,OAAO,CAAC;AAG5B,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,eAAO,MAAM,cAAc,cAAc,CAAC;AAC1C,eAAO,MAAM,QAAQ,QAAQ,CAAC;AAG9B,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,UAAU,UAAU,CAAC;AAClC,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,YAAY,YAAY,CAAC"}
@@ -5,6 +5,7 @@ export const SHAE_ENT = 'shae-ent';
5
5
  export const SHAE_PROP = 'shae-prop';
6
6
  // <shae-ent> attributes
7
7
  export const ATTR_TOKEN = 'token';
8
+ export const ATTR_FORWARD_CUSTOM_EVENTS = 'forward-custom-events';
8
9
  // <shae-ent> + <shae-worker> attributes
9
10
  export const ATTR_NS = 'ns';
10
11
  // <shae-worker> attributes
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/elements/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AAEpE,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAErC,wBAAwB;AACxB,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAElC,wCAAwC;AACxC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC;AAE5B,2BAA2B;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAChD,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;AAC1C,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC;AAE9B,yBAAyB;AACzB,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAChC,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAClC,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/elements/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAAG,wBAAwB,CAAC;AAEpE,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAErC,wBAAwB;AACxB,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAClC,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAElE,wCAAwC;AACxC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC;AAE5B,2BAA2B;AAC3B,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAChD,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;AAC1C,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC;AAE9B,yBAAyB;AACzB,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAChC,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAClC,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC"}