essor 0.0.6 → 0.0.7-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/essor.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ExcludeType } from 'essor-shared';
2
2
  import * as csstype from 'csstype';
3
3
 
4
- declare const __essor_version = "0.0.6-beta.16";
4
+ declare const __essor_version = "0.0.6";
5
5
 
6
6
  type EffectFn = () => void;
7
7
  /**
@@ -9,14 +9,12 @@ type EffectFn = () => void;
9
9
  */
10
10
  declare class Signal$1<T> {
11
11
  private _value;
12
- private _reactive;
13
- private __activeEffect;
14
12
  constructor(value: T);
15
13
  valueOf(): T;
16
14
  toString(): string;
17
15
  toJSON(): T;
18
16
  get value(): T;
19
- __triggerObject(): void;
17
+ private __triggerObject;
20
18
  set value(newValue: T);
21
19
  peek(): T;
22
20
  update(): void;
@@ -36,7 +34,7 @@ declare function isSignal<T>(value: any): value is Signal$1<T>;
36
34
  /**
37
35
  * Computed class representing a computed reactive value.
38
36
  */
39
- declare class Computed<T> {
37
+ declare class Computed<T = unknown> {
40
38
  private readonly fn;
41
39
  private _value;
42
40
  private _deps;
package/dist/essor.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ExcludeType } from 'essor-shared';
2
2
  import * as csstype from 'csstype';
3
3
 
4
- declare const __essor_version = "0.0.6-beta.16";
4
+ declare const __essor_version = "0.0.6";
5
5
 
6
6
  type EffectFn = () => void;
7
7
  /**
@@ -9,14 +9,12 @@ type EffectFn = () => void;
9
9
  */
10
10
  declare class Signal$1<T> {
11
11
  private _value;
12
- private _reactive;
13
- private __activeEffect;
14
12
  constructor(value: T);
15
13
  valueOf(): T;
16
14
  toString(): string;
17
15
  toJSON(): T;
18
16
  get value(): T;
19
- __triggerObject(): void;
17
+ private __triggerObject;
20
18
  set value(newValue: T);
21
19
  peek(): T;
22
20
  update(): void;
@@ -36,7 +34,7 @@ declare function isSignal<T>(value: any): value is Signal$1<T>;
36
34
  /**
37
35
  * Computed class representing a computed reactive value.
38
36
  */
39
- declare class Computed<T> {
37
+ declare class Computed<T = unknown> {
40
38
  private readonly fn;
41
39
  private _value;
42
40
  private _deps;
@@ -18,7 +18,7 @@ var __spreadValues = (a, b) => {
18
18
  };
19
19
 
20
20
  // src/version.ts
21
- var __essor_version = "0.0.6-beta.16";
21
+ var __essor_version = "0.0.6";
22
22
 
23
23
  // ../shared/dist/essor-shared.js
24
24
  var isObject = (val) => val !== null && typeof val === "object";
@@ -167,15 +167,17 @@ var capitalizeFirstLetter = (inputString) => {
167
167
  // src/signal/signal.ts
168
168
  var activeEffect = null;
169
169
  var activeComputed = null;
170
- var computedSet = /* @__PURE__ */ new Set();
171
- var targetMap = /* @__PURE__ */ new WeakMap();
172
- var EffectDeps = /* @__PURE__ */ new Set();
170
+ var computedMap = /* @__PURE__ */ new WeakMap();
171
+ var signalMap = /* @__PURE__ */ new WeakMap();
172
+ var effectDeps = /* @__PURE__ */ new Set();
173
+ var reactiveMap = /* @__PURE__ */ new WeakMap();
173
174
  var arrayMethods = ["push", "pop", "shift", "unshift", "splice", "sort", "reverse"];
174
175
  function track(target, key) {
175
- let depsMap = targetMap.get(target);
176
+ if (!activeEffect && !activeComputed) return;
177
+ let depsMap = signalMap.get(target);
176
178
  if (!depsMap) {
177
179
  depsMap = /* @__PURE__ */ new Map();
178
- targetMap.set(target, depsMap);
180
+ signalMap.set(target, depsMap);
179
181
  }
180
182
  let dep = depsMap.get(key);
181
183
  if (!dep) {
@@ -183,27 +185,35 @@ function track(target, key) {
183
185
  depsMap.set(key, dep);
184
186
  }
185
187
  if (activeEffect) dep.add(activeEffect);
186
- if (activeComputed) {
187
- computedSet.add(activeComputed);
188
+ let depsMap2 = computedMap.get(target);
189
+ if (!depsMap2) {
190
+ depsMap2 = /* @__PURE__ */ new Map();
191
+ computedMap.set(target, depsMap2);
192
+ }
193
+ let dep2 = depsMap2.get(key);
194
+ if (!dep2) {
195
+ dep2 = /* @__PURE__ */ new Set();
196
+ depsMap2.set(key, dep2);
188
197
  }
198
+ if (activeComputed) dep2.add(activeComputed);
189
199
  }
190
200
  function trigger(target, key) {
191
- if (computedSet.size > 0) {
192
- computedSet.forEach((computedSignal) => computedSignal.run());
193
- }
194
- const depsMap = targetMap.get(target);
195
- if (!depsMap) {
196
- return;
197
- }
201
+ const depsMap = signalMap.get(target);
202
+ if (!depsMap) return;
198
203
  const dep = depsMap.get(key);
199
204
  if (dep) {
200
- dep.forEach((effect) => EffectDeps.has(effect) && effect());
205
+ dep.forEach((effect) => effectDeps.has(effect) && effect());
206
+ }
207
+ const computedDeps = computedMap.get(target);
208
+ if (computedDeps) {
209
+ const computeds = computedDeps.get(key);
210
+ if (computeds) {
211
+ computeds.forEach((computed) => computed.run());
212
+ }
201
213
  }
202
214
  }
203
215
  var Signal = class {
204
216
  constructor(value) {
205
- // @ts-ignore
206
- this.__activeEffect = null;
207
217
  this._value = value;
208
218
  }
209
219
  valueOf() {
@@ -224,12 +234,10 @@ var Signal = class {
224
234
  this.__triggerObject();
225
235
  return this._value;
226
236
  }
227
- // if the value is not a primitive or an HTML element, create a reactive proxy
228
237
  __triggerObject() {
229
- if (activeEffect) {
230
- this.__activeEffect = activeEffect;
238
+ if (!isPrimitive(this._value) && !isHtmlElement(this._value)) {
239
+ useReactive(this._value);
231
240
  }
232
- this._reactive = isPrimitive(this._value) || isHtmlElement(this._value) ? this._value : useReactive(this._value);
233
241
  }
234
242
  set value(newValue) {
235
243
  if (isSignal(newValue)) {
@@ -238,10 +246,8 @@ var Signal = class {
238
246
  }
239
247
  if (hasChanged(newValue, this._value)) {
240
248
  this._value = newValue;
241
- if (!isPrimitive(this._value) && !isHtmlElement(this._value) && !activeEffect) {
242
- activeEffect = this.__activeEffect;
249
+ if (!isPrimitive(this._value) && !isHtmlElement(this._value)) {
243
250
  this.__triggerObject();
244
- activeEffect = null;
245
251
  }
246
252
  trigger(this, "value");
247
253
  }
@@ -302,10 +308,10 @@ function useEffect(fn) {
302
308
  fn();
303
309
  activeEffect = prev;
304
310
  }
305
- EffectDeps.add(effectFn);
311
+ effectDeps.add(effectFn);
306
312
  effectFn();
307
313
  return () => {
308
- EffectDeps.delete(effectFn);
314
+ effectDeps.delete(effectFn);
309
315
  activeEffect = null;
310
316
  };
311
317
  }
@@ -344,9 +350,8 @@ function unReactive(obj) {
344
350
  if (!isReactive(obj)) {
345
351
  return obj;
346
352
  }
347
- return Object.assign({}, obj);
353
+ return __spreadValues({}, obj);
348
354
  }
349
- var reactiveMap = /* @__PURE__ */ new WeakMap();
350
355
  function useReactive(initialValue, exclude) {
351
356
  if (!isObject(initialValue)) {
352
357
  return initialValue;
@@ -984,18 +989,17 @@ function convertToHtmlTag(tag) {
984
989
  // src/template/patch.ts
985
990
  function patchChildren(parent, childrenMap, nextChildren, before) {
986
991
  const result = /* @__PURE__ */ new Map();
987
- const children = childrenMap.values();
988
- const parentChildNodesLength = parent.childNodes.length;
992
+ const children = Array.from(childrenMap.values());
993
+ const childrenLength = children.length;
989
994
  if (childrenMap.size > 0 && nextChildren.length === 0) {
990
- if (parentChildNodesLength === childrenMap.size + (before ? 1 : 0)) {
991
- const parentElement = parent;
992
- parentElement.innerHTML = "";
995
+ if (parent.childNodes.length === childrenLength + (before ? 1 : 0)) {
996
+ parent.innerHTML = "";
993
997
  if (before) {
994
998
  insertChild(parent, before);
995
999
  }
996
1000
  } else {
997
1001
  const range = document.createRange();
998
- const child = children.next().value;
1002
+ const child = children[0];
999
1003
  const start = isJsxElement(child) ? child.firstChild : child;
1000
1004
  range.setStartBefore(start);
1001
1005
  if (before) {
@@ -1005,7 +1009,7 @@ function patchChildren(parent, childrenMap, nextChildren, before) {
1005
1009
  }
1006
1010
  range.deleteContents();
1007
1011
  }
1008
- childrenMap.forEach((node) => {
1012
+ children.forEach((node) => {
1009
1013
  if (isJsxElement(node)) {
1010
1014
  node.unmount();
1011
1015
  }
@@ -1014,13 +1018,14 @@ function patchChildren(parent, childrenMap, nextChildren, before) {
1014
1018
  }
1015
1019
  const replaces = [];
1016
1020
  const nextChildrenMap = mapKeys(nextChildren);
1021
+ let childIndex = 0;
1017
1022
  for (let [i, child] of nextChildren.entries()) {
1018
- let currChild = children.next().value;
1023
+ let currChild = children[childIndex];
1019
1024
  let currKey = getKey(currChild, i);
1020
1025
  while (currChild && !nextChildrenMap.has(currKey)) {
1021
1026
  removeChild(currChild);
1022
1027
  childrenMap.delete(currKey);
1023
- currChild = children.next().value;
1028
+ currChild = children[++childIndex];
1024
1029
  currKey = getKey(currChild, i);
1025
1030
  }
1026
1031
  const key = getKey(child, i);
@@ -1029,7 +1034,9 @@ function patchChildren(parent, childrenMap, nextChildren, before) {
1029
1034
  child = patch(parent, origChild, child);
1030
1035
  }
1031
1036
  if (currChild) {
1032
- if (currChild) {
1037
+ if (currChild === origChild) {
1038
+ childIndex++;
1039
+ } else if (currChild) {
1033
1040
  const placeholder = document.createComment("");
1034
1041
  insertChild(parent, placeholder, currChild);
1035
1042
  replaces.push([placeholder, child]);
@@ -16,7 +16,7 @@ var __spreadValues = (a, b) => {
16
16
  };
17
17
 
18
18
  // src/version.ts
19
- var __essor_version = "0.0.6-beta.16";
19
+ var __essor_version = "0.0.6";
20
20
 
21
21
  // ../shared/dist/essor-shared.js
22
22
  var isObject = (val) => val !== null && typeof val === "object";
@@ -165,15 +165,17 @@ var capitalizeFirstLetter = (inputString) => {
165
165
  // src/signal/signal.ts
166
166
  var activeEffect = null;
167
167
  var activeComputed = null;
168
- var computedSet = /* @__PURE__ */ new Set();
169
- var targetMap = /* @__PURE__ */ new WeakMap();
170
- var EffectDeps = /* @__PURE__ */ new Set();
168
+ var computedMap = /* @__PURE__ */ new WeakMap();
169
+ var signalMap = /* @__PURE__ */ new WeakMap();
170
+ var effectDeps = /* @__PURE__ */ new Set();
171
+ var reactiveMap = /* @__PURE__ */ new WeakMap();
171
172
  var arrayMethods = ["push", "pop", "shift", "unshift", "splice", "sort", "reverse"];
172
173
  function track(target, key) {
173
- let depsMap = targetMap.get(target);
174
+ if (!activeEffect && !activeComputed) return;
175
+ let depsMap = signalMap.get(target);
174
176
  if (!depsMap) {
175
177
  depsMap = /* @__PURE__ */ new Map();
176
- targetMap.set(target, depsMap);
178
+ signalMap.set(target, depsMap);
177
179
  }
178
180
  let dep = depsMap.get(key);
179
181
  if (!dep) {
@@ -181,27 +183,35 @@ function track(target, key) {
181
183
  depsMap.set(key, dep);
182
184
  }
183
185
  if (activeEffect) dep.add(activeEffect);
184
- if (activeComputed) {
185
- computedSet.add(activeComputed);
186
+ let depsMap2 = computedMap.get(target);
187
+ if (!depsMap2) {
188
+ depsMap2 = /* @__PURE__ */ new Map();
189
+ computedMap.set(target, depsMap2);
190
+ }
191
+ let dep2 = depsMap2.get(key);
192
+ if (!dep2) {
193
+ dep2 = /* @__PURE__ */ new Set();
194
+ depsMap2.set(key, dep2);
186
195
  }
196
+ if (activeComputed) dep2.add(activeComputed);
187
197
  }
188
198
  function trigger(target, key) {
189
- if (computedSet.size > 0) {
190
- computedSet.forEach((computedSignal) => computedSignal.run());
191
- }
192
- const depsMap = targetMap.get(target);
193
- if (!depsMap) {
194
- return;
195
- }
199
+ const depsMap = signalMap.get(target);
200
+ if (!depsMap) return;
196
201
  const dep = depsMap.get(key);
197
202
  if (dep) {
198
- dep.forEach((effect) => EffectDeps.has(effect) && effect());
203
+ dep.forEach((effect) => effectDeps.has(effect) && effect());
204
+ }
205
+ const computedDeps = computedMap.get(target);
206
+ if (computedDeps) {
207
+ const computeds = computedDeps.get(key);
208
+ if (computeds) {
209
+ computeds.forEach((computed) => computed.run());
210
+ }
199
211
  }
200
212
  }
201
213
  var Signal = class {
202
214
  constructor(value) {
203
- // @ts-ignore
204
- this.__activeEffect = null;
205
215
  this._value = value;
206
216
  }
207
217
  valueOf() {
@@ -222,12 +232,10 @@ var Signal = class {
222
232
  this.__triggerObject();
223
233
  return this._value;
224
234
  }
225
- // if the value is not a primitive or an HTML element, create a reactive proxy
226
235
  __triggerObject() {
227
- if (activeEffect) {
228
- this.__activeEffect = activeEffect;
236
+ if (!isPrimitive(this._value) && !isHtmlElement(this._value)) {
237
+ useReactive(this._value);
229
238
  }
230
- this._reactive = isPrimitive(this._value) || isHtmlElement(this._value) ? this._value : useReactive(this._value);
231
239
  }
232
240
  set value(newValue) {
233
241
  if (isSignal(newValue)) {
@@ -236,10 +244,8 @@ var Signal = class {
236
244
  }
237
245
  if (hasChanged(newValue, this._value)) {
238
246
  this._value = newValue;
239
- if (!isPrimitive(this._value) && !isHtmlElement(this._value) && !activeEffect) {
240
- activeEffect = this.__activeEffect;
247
+ if (!isPrimitive(this._value) && !isHtmlElement(this._value)) {
241
248
  this.__triggerObject();
242
- activeEffect = null;
243
249
  }
244
250
  trigger(this, "value");
245
251
  }
@@ -300,10 +306,10 @@ function useEffect(fn) {
300
306
  fn();
301
307
  activeEffect = prev;
302
308
  }
303
- EffectDeps.add(effectFn);
309
+ effectDeps.add(effectFn);
304
310
  effectFn();
305
311
  return () => {
306
- EffectDeps.delete(effectFn);
312
+ effectDeps.delete(effectFn);
307
313
  activeEffect = null;
308
314
  };
309
315
  }
@@ -342,9 +348,8 @@ function unReactive(obj) {
342
348
  if (!isReactive(obj)) {
343
349
  return obj;
344
350
  }
345
- return Object.assign({}, obj);
351
+ return __spreadValues({}, obj);
346
352
  }
347
- var reactiveMap = /* @__PURE__ */ new WeakMap();
348
353
  function useReactive(initialValue, exclude) {
349
354
  if (!isObject(initialValue)) {
350
355
  return initialValue;
@@ -982,18 +987,17 @@ function convertToHtmlTag(tag) {
982
987
  // src/template/patch.ts
983
988
  function patchChildren(parent, childrenMap, nextChildren, before) {
984
989
  const result = /* @__PURE__ */ new Map();
985
- const children = childrenMap.values();
986
- const parentChildNodesLength = parent.childNodes.length;
990
+ const children = Array.from(childrenMap.values());
991
+ const childrenLength = children.length;
987
992
  if (childrenMap.size > 0 && nextChildren.length === 0) {
988
- if (parentChildNodesLength === childrenMap.size + (before ? 1 : 0)) {
989
- const parentElement = parent;
990
- parentElement.innerHTML = "";
993
+ if (parent.childNodes.length === childrenLength + (before ? 1 : 0)) {
994
+ parent.innerHTML = "";
991
995
  if (before) {
992
996
  insertChild(parent, before);
993
997
  }
994
998
  } else {
995
999
  const range = document.createRange();
996
- const child = children.next().value;
1000
+ const child = children[0];
997
1001
  const start = isJsxElement(child) ? child.firstChild : child;
998
1002
  range.setStartBefore(start);
999
1003
  if (before) {
@@ -1003,7 +1007,7 @@ function patchChildren(parent, childrenMap, nextChildren, before) {
1003
1007
  }
1004
1008
  range.deleteContents();
1005
1009
  }
1006
- childrenMap.forEach((node) => {
1010
+ children.forEach((node) => {
1007
1011
  if (isJsxElement(node)) {
1008
1012
  node.unmount();
1009
1013
  }
@@ -1012,13 +1016,14 @@ function patchChildren(parent, childrenMap, nextChildren, before) {
1012
1016
  }
1013
1017
  const replaces = [];
1014
1018
  const nextChildrenMap = mapKeys(nextChildren);
1019
+ let childIndex = 0;
1015
1020
  for (let [i, child] of nextChildren.entries()) {
1016
- let currChild = children.next().value;
1021
+ let currChild = children[childIndex];
1017
1022
  let currKey = getKey(currChild, i);
1018
1023
  while (currChild && !nextChildrenMap.has(currKey)) {
1019
1024
  removeChild(currChild);
1020
1025
  childrenMap.delete(currKey);
1021
- currChild = children.next().value;
1026
+ currChild = children[++childIndex];
1022
1027
  currKey = getKey(currChild, i);
1023
1028
  }
1024
1029
  const key = getKey(child, i);
@@ -1027,7 +1032,9 @@ function patchChildren(parent, childrenMap, nextChildren, before) {
1027
1032
  child = patch(parent, origChild, child);
1028
1033
  }
1029
1034
  if (currChild) {
1030
- if (currChild) {
1035
+ if (currChild === origChild) {
1036
+ childIndex++;
1037
+ } else if (currChild) {
1031
1038
  const placeholder = document.createComment("");
1032
1039
  insertChild(parent, placeholder, currChild);
1033
1040
  replaces.push([placeholder, child]);
package/dist/essor.esm.js CHANGED
@@ -1,6 +1,6 @@
1
- var Oe=Object.defineProperty;var de=Object.getOwnPropertySymbols;var je=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable;var me=(e,t,n)=>t in e?Oe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,j=(e,t)=>{for(var n in t||(t={}))je.call(t,n)&&me(e,n,t[n]);if(de)for(var n of de(t))_e.call(t,n)&&me(e,n,t[n]);return e};var he="0.0.6-beta.16";var S=e=>e!==null&&typeof e=="object";var k=Array.isArray;function q(e){return typeof e=="string"}function Re(e){return e===null}function ge(e){return e==null}var d=e=>typeof e=="function";function U(e){return e===!1||e===null||e===void 0||e===""}var M=e=>["string","number","boolean","symbol","undefined"].includes(typeof e)||Re(e),Z=e=>e instanceof HTMLElement||e instanceof SVGElement;function Q(e){return Array.isArray(e)?e.flat():[e]}var J=(e,t)=>e!==t&&(e===e||t===t),ye=Function.prototype;function y(e,t){return q(e)?e.indexOf(t)===0:!1}function w(e,t=new WeakMap){if(e===null||typeof e!="object")return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e);if(e instanceof RegExp)return new RegExp(e);if(e instanceof Map){let o=new Map;return t.set(e,o),e.forEach((s,i)=>{o.set(w(i,t),w(s,t));}),o}if(e instanceof Set){let o=new Set;return t.set(e,o),e.forEach(s=>{o.add(w(s,t));}),o}let n=Array.isArray(e)?[]:{};t.set(e,n);let r=Object.keys(e);for(let o of r)n[o]=w(e[o],t);return n}function _(e,t,n=new WeakMap){if(M(e)&&M(t))return e===t;if(e===t)return !0;if(e==null||t==null||typeof e!="object"||typeof t!="object"||e.constructor!==t.constructor)return !1;if(n.has(e))return n.get(e)===t;if(n.set(e,t),Array.isArray(e)){if(e.length!==t.length)return !1;for(let[s,i]of e.entries())if(!_(i,t[s],n))return !1;return !0}if(e instanceof Map){if(e.size!==t.size)return !1;for(let[s,i]of e)if(!t.has(s)||!_(i,t.get(s),n))return !1;return !0}if(e instanceof Set){if(e.size!==t.size)return !1;let s=Array.from(e).sort(),i=Array.from(t).sort();for(let[a,c]of s.entries())if(!_(c,i[a],n))return !1;return !0}let r=Object.keys(e),o=new Set(Object.keys(t));if(r.length!==o.size)return !1;for(let s of r)if(!o.has(s)||!_(e[s],t[s],n))return !1;return !0}function K(e,t){return Array.isArray(t)?t.includes(e):d(t)?t(e):!1}var Te=e=>e.replaceAll(/[A-Z]+/g,(t,n)=>`${n>0?"-":""}${t.toLocaleLowerCase()}`);var ve=e=>e.charAt(0).toUpperCase()+e.slice(1);var g=null,F=null,ee=new Set,te=new WeakMap,ne=new Set,Le=["push","pop","shift","unshift","splice","sort","reverse"];function R(e,t){let n=te.get(e);n||(n=new Map,te.set(e,n));let r=n.get(t);r||(r=new Set,n.set(t,r)),g&&r.add(g),F&&ee.add(F);}function I(e,t){ee.size>0&&ee.forEach(o=>o.run());let n=te.get(e);if(!n)return;let r=n.get(t);r&&r.forEach(o=>ne.has(o)&&o());}var G=class{constructor(t){this.__activeEffect=null;this._value=t;}valueOf(){return R(this,"value"),this.__triggerObject(),this._value}toString(){return R(this,"value"),this.__triggerObject(),String(this._value)}toJSON(){return this._value}get value(){return R(this,"value"),this.__triggerObject(),this._value}__triggerObject(){g&&(this.__activeEffect=g),this._reactive=M(this._value)||Z(this._value)?this._value:A(this._value);}set value(t){p(t)&&(console.warn("Signal cannot be set to another signal, use .peek() instead"),t=t.peek()),J(t,this._value)&&(this._value=t,!M(this._value)&&!Z(this._value)&&!g&&(g=this.__activeEffect,this.__triggerObject(),g=null),I(this,"value"));}peek(){return this._value}update(){I(this,"value");}};function L(e){return p(e)?e:new G(e)}function p(e){return e instanceof G}var z=class{constructor(t){this.fn=t;this._deps=new Set;let n=F;F=this,this._value=this.fn(),F=n;}peek(){return this._value}run(){let t=this.fn();J(t,this._value)&&(this._value=t,this._deps.forEach(n=>n()));}get value(){return g&&this._deps.add(g),R(this,"_value"),this._value}};function re(e){return new z(e)}function X(e){return e instanceof z}function N(e){function t(){let n=g;g=t,e(),g=n;}return ne.add(t),t(),()=>{ne.delete(t),g=null;}}function oe(e,t){return Object.entries(e).reduce((r,[o,s])=>(r[o]=K(o,t)||p(s)?s:L(s),r),{})}function be(e,t){return e?p(e)?e.peek():k(e)?e.map(n=>be(n,t)):S(e)?Object.entries(e).reduce((n,[r,o])=>(K(r,t)?n[r]=o:n[r]=p(o)?o.peek():o,n),{}):e:{}}var xe=Symbol("useReactive");function W(e){return e&&e[xe]===!0}function We(e){return W(e)?Object.assign({},e):e}var Y=new WeakMap;function A(e,t){if(!S(e)||W(e))return e;if(Y.has(e))return Y.get(e);Array.isArray(e)&&Le.forEach(o=>{let s=e[o];R(e,"length"),Object.defineProperties(e,{[o]:{value(...i){let a=s.apply(this,i);return I(e,"length"),a},enumerable:!1,configurable:!0,writable:!0}});});let n={get(o,s,i){if(s===xe||y(s,"_"))return !0;let a=Reflect.get(o,s,i),c=p(a)?a.value:a;return K(s,t)?c:(R(o,s),S(c)?A(c):c)},set(o,s,i,a){if(K(s,t))return Reflect.set(o,s,i,a),!0;let c=Reflect.get(o,s,a);p(c)&&(c=c.value),p(i)&&(i=i.value);let u=Reflect.set(o,s,i,a);return J(i,c)&&I(o,s),u},deleteProperty(o,s){let i=Reflect.get(o,s),a=Reflect.deleteProperty(o,s);return i!==void 0&&I(o,s),a}},r=new Proxy(e,n);return Y.set(e,r),r}function se(e,...t){console.warn.apply(console,[`[Essor warn]: ${e}`].concat(t));}function Pe(e,t,n){return He(e,t,n)}function He(e,t,n){let r,o=n==null?void 0:n.deep;if(p(e)||X(e)?r=()=>e.value:W(e)?r=()=>j({},e):k(e)?r=()=>e.map(c=>p(c)||X(c)?c.value:W(c)?j({},c):d(c)?c():se("Invalid source",c)):d(e)?r=e:(se("Invalid source type",e),r=ye),t&&o){let c=r;r=()=>P(c());}let s,i=()=>{let c=w(r());_(c,s)||(t&&t(c,s),s=M(c)?c:w(c));},a=N(i);return n!=null&&n.immediate&&i(),a}function P(e,t=new Set){return !S(e)||t.has(e)||(t.add(e),k(e)?e.forEach(n=>P(n,t)):e instanceof Map?e.forEach((n,r)=>{P(r,t),P(n,t);}):e instanceof Set?e.forEach(n=>P(n,t)):Object.keys(e).forEach(n=>{P(e[n],t);})),e}var B=0,ie=new Map;function $e(e){let{state:t,getters:n,actions:r}=e,o=j({},t!=null?t:{}),s=A(t!=null?t:{}),i=[],a=[],u=j({state:s},{patch$(l){Object.assign(s,l),i.forEach(f=>f(s)),a.forEach(f=>f(s));},subscribe$(l){i.push(l);},unsubscribe$(l){let f=i.indexOf(l);f!==-1&&i.splice(f,1);},onAction$(l){a.push(l);},reset$(){Object.assign(s,o);}});for(let l in n){let f=n[l];f&&(u[l]=re(f.bind(s,s)));}for(let l in r){let f=r[l];f&&(u[l]=f.bind(s));}return ie.set(B,u),++B,u}function Ke(e){return function(){return ie.has(B)?ie.get(B):$e(e)}}var E=class E{constructor(t,n,r){this.template=t;this.props=n;this.key=r;this.proxyProps={};this.context={};this.emitter=new Set;this.mounted=!1;this.rootNode=null;this.hooks={mounted:new Set,destroy:new Set};this.trackMap=new Map;this.proxyProps=oe(n,o=>y(o,"on")||y(o,"update"));}addEventListener(){}removeEventListener(){}get firstChild(){var t,n;return (n=(t=this.rootNode)==null?void 0:t.firstChild)!=null?n:null}get isConnected(){var t,n;return (n=(t=this.rootNode)==null?void 0:t.isConnected)!=null?n:!1}addHook(t,n){var r;(r=this.hooks[t])==null||r.add(n);}getContext(t){return E.context[t]}setContext(t,n){E.context[t]=n;}inheritNode(t){this.context=t.context,this.hooks=t.hooks,Object.assign(this.proxyProps,t.proxyProps),this.rootNode=t.rootNode,this.trackMap=t.trackMap;let n=this.props;this.props=t.props,this.patchProps(n);}unmount(){var t;this.hooks.destroy.forEach(n=>n()),Object.values(this.hooks).forEach(n=>n.clear()),(t=this.rootNode)==null||t.unmount(),this.rootNode=null,this.proxyProps={},this.mounted=!1,this.emitter.forEach(n=>n()),E.context={};}mount(t,n){var o,s,i,a;if(!d(this.template))throw new Error("Template must be a function");if(this.isConnected)return (s=(o=this.rootNode)==null?void 0:o.mount(t,n))!=null?s:[];E.ref=this,this.rootNode=this.template(A(this.proxyProps,["children"])),E.ref=null,this.mounted=!0;let r=(a=(i=this.rootNode)==null?void 0:i.mount(t,n))!=null?a:[];return this.hooks.mounted.forEach(c=>c()),this.patchProps(this.props),r}getNodeTrack(t,n){let r=this.trackMap.get(t);return r||(r={cleanup:()=>{}},this.trackMap.set(t,r)),n||r.cleanup(),r}patchProps(t){var n,r,o,s,i;for(let[a,c]of Object.entries(t))if(y(a,"on")&&((n=this.rootNode)!=null&&n.nodes)){let u=a.slice(2).toLowerCase(),l=c,f=v(this.rootNode.nodes[0],u,l);this.emitter.add(f);}else if(a==="ref")p(c)?t[a].value=(r=this.rootNode)==null?void 0:r.nodes[0]:d(c)&&t[a]((o=this.rootNode)==null?void 0:o.nodes[0]);else if(y(a,"update"))t[a]=p(c)?c.value:c;else {let u=(i=(s=this.proxyProps)[a])!=null?i:s[a]=L(c),l=this.getNodeTrack(a);l.cleanup=N(()=>{u.value=d(c)?c():c;});}this.props=t;}};E.ref=null,E.context={};var T=E;function Fe(e,t,n){return q(e)&&(Ee(e)&&(e=Se(e),t={1:t}),e=Ne(e)),d(e)?new T(e,t,n):new H(e,t,n)}function b(e){return e instanceof T||e instanceof H}function Ne(e){let t=document.createElement("template");return t.innerHTML=e,t}function Ie(e){return e.children}function ae(e){if(b(e)||e instanceof Node)return e;let t=U(e)?"":String(e);return document.createTextNode(t)}function x(e,t,n=null){let r=b(n)?n.firstChild:n;b(t)?t.mount(e,r):r?r.before(t):e.append(t);}function O(e){b(e)?e.unmount():e.parentNode&&e.remove();}function ce(e,t,n){x(e,t,n),O(n);}function ue(e,t,n){if(t==="class"){typeof n=="string"?e.className=n:Array.isArray(n)?e.className=n.join(" "):n&&typeof n=="object"&&(e.className=Object.entries(n).reduce((r,[o,s])=>r+(s?` ${o}`:""),"").trim());return}if(t==="style"){if(typeof n=="string")e.style.cssText=n;else if(n&&typeof n=="object"){let r=n;Object.keys(r).forEach(o=>{e.style.setProperty(Te(o),String(r[o]));});}return}U(n)?e.removeAttribute(t):n===!0?e.setAttribute(t,""):e.setAttribute(t,String(n));}function Ce(e,t){if(e instanceof HTMLInputElement){if(e.type==="checkbox")return v(e,"change",()=>{t(!!e.checked);});if(e.type==="date")return v(e,"change",()=>{t(e.value?e.value:"");});if(e.type==="file")return v(e,"change",()=>{e.files&&t(e.files);});if(e.type==="number")return v(e,"input",()=>{let n=Number.parseFloat(e.value);t(Number.isNaN(n)?"":String(n));});if(e.type==="radio")return v(e,"change",()=>{t(e.checked?e.value:"");});if(e.type==="text")return v(e,"input",()=>{t(e.value);})}if(e instanceof HTMLSelectElement)return v(e,"change",()=>{t(e.value);});if(e instanceof HTMLTextAreaElement)return v(e,"input",()=>{t(e.value);})}var ke=Promise.resolve();function Je(e){return e?ke.then(e):ke}function v(e,t,n){return e.addEventListener(t,n),()=>e.removeEventListener(t,n)}var Ge=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],ze=["a","abbr","acronym","address","applet","area","article","aside","audio","b","base","basefont","bdi","bdo","bgsound","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","command","content","data","datalist","dd","del","details","dfn","dialog","dir","div","dl","dt","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","image","img","input","ins","kbd","keygen","label","legend","li","link","listing","main","map","mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes","noscript","object","ol","optgroup","option","output","p","param","picture","plaintext","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","tt","u","ul","var","video","wbr","xmp"];function Ee(e){return ze.includes(e)}function Se(e){return Ge.includes(e)?`<${e}/>`:`<${e}></${e}>`}function we(e,t,n,r){let o=new Map,s=t.values(),i=e.childNodes.length;if(t.size>0&&n.length===0){if(i===t.size+(r?1:0)){let u=e;u.innerHTML="",r&&x(e,r);}else {let u=document.createRange(),l=s.next().value,f=b(l)?l.firstChild:l;u.setStartBefore(f),r?u.setEndBefore(r):u.setEndAfter(e),u.deleteContents();}return t.forEach(u=>{b(u)&&u.unmount();}),o}let a=[],c=Be(n);for(let[u,l]of n.entries()){let f=s.next().value,C=D(f,u);for(;f&&!c.has(C);)O(f),t.delete(C),f=s.next().value,C=D(f,u);let $=D(l,u),fe=t.get($);if(fe&&(l=Xe(e,fe,l)),f)if(f){let pe=document.createComment("");x(e,pe,f),a.push([pe,l]);}else x(e,l,r);else x(e,l,r);o.set($,l);}return a.forEach(([u,l])=>ce(e,l,u)),t.forEach((u,l)=>{u.isConnected&&!o.has(l)&&O(u);}),o}function Xe(e,t,n){return t===n?t:b(t)&&b(n)&&t.template===n.template?(n.inheritNode(t),n):t instanceof Text&&n instanceof Text?(t.textContent!==n.textContent&&(t.textContent=n.textContent),t):(ce(e,n,t),n)}function Be(e){let t=new Map;for(let[n,r]of e.entries()){let o=D(r,n);t.set(o,r);}return t}function D(e,t){let n=e instanceof Element?e.id:void 0,r=n===""?void 0:n;return r!=null?r:`_$${t}$`}var H=class e{constructor(t,n,r){this.template=t;this.props=n;this.key=r;this.treeMap=new Map;this.mounted=!1;this.nodes=[];this.provides={};this.trackMap=new Map;this.parent=null;}get firstChild(){var t;return (t=this.nodes[0])!=null?t:null}get isConnected(){return this.mounted}addEventListener(){}removeEventListener(){}unmount(){this.trackMap.forEach(t=>{var n,r;(n=t.cleanup)==null||n.call(t),(r=t.lastNodes)==null||r.forEach(o=>{t.isRoot?O(o):o instanceof e&&o.unmount();});}),this.trackMap.clear(),this.treeMap.clear(),this.nodes.forEach(t=>O(t)),this.nodes=[],this.mounted=!1;}mount(t,n){var s;if(this.parent=t,this.isConnected)return this.nodes.forEach(i=>x(t,i,n)),this.nodes;let r=this.template.content.cloneNode(!0),o=r.firstChild;return (s=o==null?void 0:o.hasAttribute)!=null&&s.call(o,"_svg_")&&(o.remove(),o==null||o.childNodes.forEach(i=>{r.append(i);})),this.nodes=Array.from(r.childNodes),this.mapNodeTree(t,r),x(t,r,n),this.patchNodes(this.props),this.mounted=!0,this.nodes}mapNodeTree(t,n){let r=1;this.treeMap.set(0,t);let o=s=>{s.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&this.treeMap.set(r++,s);let i=s.firstChild;for(;i;)o(i),i=i.nextSibling;};o(n);}patchNodes(t){for(let n in t){let r=Number(n),o=this.treeMap.get(r);if(o){let s=this.props[n];this.patchNode(n,o,s,r===0);}}this.props=t;}getNodeTrack(t,n,r){var s;let o=this.trackMap.get(t);return o||(o={cleanup:()=>{}},n&&(o.lastNodes=new Map),r&&(o.isRoot=!0),this.trackMap.set(t,o)),(s=o.cleanup)==null||s.call(o),o}inheritNode(t){this.mounted=t.mounted,this.nodes=t.nodes,this.trackMap=t.trackMap,this.treeMap=t.treeMap;let n=this.props;this.props=t.props,this.patchNodes(n);}patchNode(t,n,r,o){for(let s in r)if(s==="children"&&r.children)if(k(r.children))r.children.filter(Boolean).forEach((i,a)=>{var $;let[c,u]=k(i)?i:[i,null],l=ge(u)?null:($=this.treeMap.get(u))!=null?$:null,f=`${t}:${s}:${a}`,C=this.getNodeTrack(f,!0,o);Ae(C,n,c,l);});else {let i=`${t}:${s}:0`,a=this.getNodeTrack(i,!0,o);Ae(a,n,r.children,null);}else if(s==="ref")p(r[s])?r[s].value=n:d(r[s])&&r[s](n);else if(y(s,"on")){let i=s.slice(2).toLocaleLowerCase(),a=this.getNodeTrack(`${t}:${s}`),c=r[s];a.cleanup=v(n,i,c);}else if(!y(s,"update")){let i=this.getNodeTrack(`${t}:${s}`),a=r[s],c=p(a)?a:L(a);Me(i,n,s,c.value);let u=N(()=>{c.value=p(a)?a.value:a,Me(i,n,s,c.value);}),l,f=`update${ve(s)}`;r[f]&&(l=Ce(n,C=>{r[f](C);})),i.cleanup=()=>{u&&u(),l&&l();};}}};function Me(e,t,n,r){let o=t;o.setAttribute&&(d(r)?e.cleanup=N(()=>{ue(o,n,r());}):ue(o,n,r));}function Ae(e,t,n,r){d(n)?e.cleanup=N(()=>{let o=Q(n()).map(ae);e.lastNodes=we(t,e.lastNodes,o,r);}):Q(n).forEach((o,s)=>{let i=ae(o);e.lastNodes.set(String(s),i),x(t,i,r);});}function De(e){var t;V("onMounted"),(t=T.ref)==null||t.addHook("mounted",e);}function Ve(e){var t;V("onDestroy"),(t=T.ref)==null||t.addHook("destroy",e);}function V(e){T.ref||console.error(`"${e}" can only be called within the component function body
2
- and cannot be used in asynchronous or deferred calls.`);}function qe(e,t){var n;V("useProvide"),(n=T.ref)==null||n.setContext(e,t);}function Ue(e,t){var n;return V("useInject"),((n=T.ref)==null?void 0:n.getContext(e))||t}function Ze(){let e=null;return new Proxy({},{get(t,n){return n==="__is_ref"?!0:e},set(t,n,r){return e=r,!0}})}function Qe(e){return Object.entries(e).map(([t,n])=>`${t}=${JSON.stringify(escape(String(n)))}`).join(" ")}function le(e,t){if(d(e))return e(t);let n=Array.isArray(e)?e.reduce((s,i,a)=>(s[a+1]={template:i},s),{}):e,r={},o={};if(S(n))for(let[s,i]of Object.entries(n)){let a=t[s];if(a){for(let c in a)y(c,"on")&&d(a[c])&&delete a[c];if(a.children){for(let[c,u]of a.children)r[u]||(r[u]=[]),r[u].push(c);delete a.children;}}o[s]={template:i.template,prop:a};}return Object.entries(o).map(([s,{template:i,prop:a}])=>{let c=i;return a&&(c+=` ${Qe(a)}`),r[s]&&(c+=r[s].map(u=>le(u,a)).join("")),c}).join("")}function pn(e,t){return le(e,t)}function dn(e,t,n={}){t.innerHTML=le(e,n);}globalThis&&(globalThis.__essor_version=he);
1
+ var je=Object.defineProperty;var me=Object.getOwnPropertySymbols;var Re=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable;var he=(e,t,n)=>t in e?je(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,k=(e,t)=>{for(var n in t||(t={}))Re.call(t,n)&&he(e,n,t[n]);if(me)for(var n of me(t))_e.call(t,n)&&he(e,n,t[n]);return e};var ge="0.0.6";var C=e=>e!==null&&typeof e=="object";var M=Array.isArray;function U(e){return typeof e=="string"}function Le(e){return e===null}function ye(e){return e==null}var d=e=>typeof e=="function";function Z(e){return e===!1||e===null||e===void 0||e===""}var A=e=>["string","number","boolean","symbol","undefined"].includes(typeof e)||Le(e),Q=e=>e instanceof HTMLElement||e instanceof SVGElement;function Y(e){return Array.isArray(e)?e.flat():[e]}var J=(e,t)=>e!==t&&(e===e||t===t),Te=Function.prototype;function y(e,t){return U(e)?e.indexOf(t)===0:!1}function w(e,t=new WeakMap){if(e===null||typeof e!="object")return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e);if(e instanceof RegExp)return new RegExp(e);if(e instanceof Map){let s=new Map;return t.set(e,s),e.forEach((o,i)=>{s.set(w(i,t),w(o,t));}),s}if(e instanceof Set){let s=new Set;return t.set(e,s),e.forEach(o=>{s.add(w(o,t));}),s}let n=Array.isArray(e)?[]:{};t.set(e,n);let r=Object.keys(e);for(let s of r)n[s]=w(e[s],t);return n}function _(e,t,n=new WeakMap){if(A(e)&&A(t))return e===t;if(e===t)return !0;if(e==null||t==null||typeof e!="object"||typeof t!="object"||e.constructor!==t.constructor)return !1;if(n.has(e))return n.get(e)===t;if(n.set(e,t),Array.isArray(e)){if(e.length!==t.length)return !1;for(let[o,i]of e.entries())if(!_(i,t[o],n))return !1;return !0}if(e instanceof Map){if(e.size!==t.size)return !1;for(let[o,i]of e)if(!t.has(o)||!_(i,t.get(o),n))return !1;return !0}if(e instanceof Set){if(e.size!==t.size)return !1;let o=Array.from(e).sort(),i=Array.from(t).sort();for(let[a,c]of o.entries())if(!_(c,i[a],n))return !1;return !0}let r=Object.keys(e),s=new Set(Object.keys(t));if(r.length!==s.size)return !1;for(let o of r)if(!s.has(o)||!_(e[o],t[o],n))return !1;return !0}function I(e,t){return Array.isArray(t)?t.includes(e):d(t)?t(e):!1}var be=e=>e.replaceAll(/[A-Z]+/g,(t,n)=>`${n>0?"-":""}${t.toLocaleLowerCase()}`);var ve=e=>e.charAt(0).toUpperCase()+e.slice(1);var N=null,L=null,te=new WeakMap,ne=new WeakMap,re=new Set,ee=new WeakMap,We=["push","pop","shift","unshift","splice","sort","reverse"];function W(e,t){if(!N&&!L)return;let n=ne.get(e);n||(n=new Map,ne.set(e,n));let r=n.get(t);r||(r=new Set,n.set(t,r)),N&&r.add(N);let s=te.get(e);s||(s=new Map,te.set(e,s));let o=s.get(t);o||(o=new Set,s.set(t,o)),L&&o.add(L);}function F(e,t){let n=ne.get(e);if(!n)return;let r=n.get(t);r&&r.forEach(o=>re.has(o)&&o());let s=te.get(e);if(s){let o=s.get(t);o&&o.forEach(i=>i.run());}}var G=class{constructor(t){this._value=t;}valueOf(){return W(this,"value"),this.__triggerObject(),this._value}toString(){return W(this,"value"),this.__triggerObject(),String(this._value)}toJSON(){return this._value}get value(){return W(this,"value"),this.__triggerObject(),this._value}__triggerObject(){!A(this._value)&&!Q(this._value)&&O(this._value);}set value(t){p(t)&&(console.warn("Signal cannot be set to another signal, use .peek() instead"),t=t.peek()),J(t,this._value)&&(this._value=t,!A(this._value)&&!Q(this._value)&&this.__triggerObject(),F(this,"value"));}peek(){return this._value}update(){F(this,"value");}};function P(e){return p(e)?e:new G(e)}function p(e){return e instanceof G}var X=class{constructor(t){this.fn=t;this._deps=new Set;let n=L;L=this,this._value=this.fn(),L=n;}peek(){return this._value}run(){let t=this.fn();J(t,this._value)&&(this._value=t,this._deps.forEach(n=>n()));}get value(){return N&&this._deps.add(N),W(this,"_value"),this._value}};function oe(e){return new X(e)}function z(e){return e instanceof X}function S(e){function t(){let n=N;N=t,e(),N=n;}return re.add(t),t(),()=>{re.delete(t),N=null;}}function se(e,t){return Object.entries(e).reduce((r,[s,o])=>(r[s]=I(s,t)||p(o)?o:P(o),r),{})}function xe(e,t){return e?p(e)?e.peek():M(e)?e.map(n=>xe(n,t)):C(e)?Object.entries(e).reduce((n,[r,s])=>(I(r,t)?n[r]=s:n[r]=p(s)?s.peek():s,n),{}):e:{}}var Ne=Symbol("useReactive");function H(e){return e&&e[Ne]===!0}function Pe(e){return H(e)?k({},e):e}function O(e,t){if(!C(e)||H(e))return e;if(ee.has(e))return ee.get(e);Array.isArray(e)&&We.forEach(s=>{let o=e[s];W(e,"length"),Object.defineProperties(e,{[s]:{value(...i){let a=o.apply(this,i);return F(e,"length"),a},enumerable:!1,configurable:!0,writable:!0}});});let n={get(s,o,i){if(o===Ne||y(o,"_"))return !0;let a=Reflect.get(s,o,i),c=p(a)?a.value:a;return I(o,t)?c:(W(s,o),C(c)?O(c):c)},set(s,o,i,a){if(I(o,t))return Reflect.set(s,o,i,a),!0;let c=Reflect.get(s,o,a);p(c)&&(c=c.value),p(i)&&(i=i.value);let f=Reflect.set(s,o,i,a);return J(i,c)&&F(s,o),f},deleteProperty(s,o){let i=Reflect.get(s,o),a=Reflect.deleteProperty(s,o);return i!==void 0&&F(s,o),a}},r=new Proxy(e,n);return ee.set(e,r),r}function ie(e,...t){console.warn.apply(console,[`[Essor warn]: ${e}`].concat(t));}function He(e,t,n){return $e(e,t,n)}function $e(e,t,n){let r,s=n==null?void 0:n.deep;if(p(e)||z(e)?r=()=>e.value:H(e)?r=()=>k({},e):M(e)?r=()=>e.map(c=>p(c)||z(c)?c.value:H(c)?k({},c):d(c)?c():ie("Invalid source",c)):d(e)?r=e:(ie("Invalid source type",e),r=Te),t&&s){let c=r;r=()=>$(c());}let o,i=()=>{let c=w(r());_(c,o)||(t&&t(c,o),o=A(c)?c:w(c));},a=S(i);return n!=null&&n.immediate&&i(),a}function $(e,t=new Set){return !C(e)||t.has(e)||(t.add(e),M(e)?e.forEach(n=>$(n,t)):e instanceof Map?e.forEach((n,r)=>{$(r,t),$(n,t);}):e instanceof Set?e.forEach(n=>$(n,t)):Object.keys(e).forEach(n=>{$(e[n],t);})),e}var B=0,ae=new Map;function Ke(e){let{state:t,getters:n,actions:r}=e,s=k({},t!=null?t:{}),o=O(t!=null?t:{}),i=[],a=[],f=k({state:o},{patch$(u){Object.assign(o,u),i.forEach(l=>l(o)),a.forEach(l=>l(o));},subscribe$(u){i.push(u);},unsubscribe$(u){let l=i.indexOf(u);l!==-1&&i.splice(l,1);},onAction$(u){a.push(u);},reset$(){Object.assign(o,s);}});for(let u in n){let l=n[u];l&&(f[u]=oe(l.bind(o,o)));}for(let u in r){let l=r[u];l&&(f[u]=l.bind(o));}return ae.set(B,f),++B,f}function Ie(e){return function(){return ae.has(B)?ae.get(B):Ke(e)}}var E=class E{constructor(t,n,r){this.template=t;this.props=n;this.key=r;this.proxyProps={};this.context={};this.emitter=new Set;this.mounted=!1;this.rootNode=null;this.hooks={mounted:new Set,destroy:new Set};this.trackMap=new Map;this.proxyProps=se(n,s=>y(s,"on")||y(s,"update"));}addEventListener(){}removeEventListener(){}get firstChild(){var t,n;return (n=(t=this.rootNode)==null?void 0:t.firstChild)!=null?n:null}get isConnected(){var t,n;return (n=(t=this.rootNode)==null?void 0:t.isConnected)!=null?n:!1}addHook(t,n){var r;(r=this.hooks[t])==null||r.add(n);}getContext(t){return E.context[t]}setContext(t,n){E.context[t]=n;}inheritNode(t){this.context=t.context,this.hooks=t.hooks,Object.assign(this.proxyProps,t.proxyProps),this.rootNode=t.rootNode,this.trackMap=t.trackMap;let n=this.props;this.props=t.props,this.patchProps(n);}unmount(){var t;this.hooks.destroy.forEach(n=>n()),Object.values(this.hooks).forEach(n=>n.clear()),(t=this.rootNode)==null||t.unmount(),this.rootNode=null,this.proxyProps={},this.mounted=!1,this.emitter.forEach(n=>n()),E.context={};}mount(t,n){var s,o,i,a;if(!d(this.template))throw new Error("Template must be a function");if(this.isConnected)return (o=(s=this.rootNode)==null?void 0:s.mount(t,n))!=null?o:[];E.ref=this,this.rootNode=this.template(O(this.proxyProps,["children"])),E.ref=null,this.mounted=!0;let r=(a=(i=this.rootNode)==null?void 0:i.mount(t,n))!=null?a:[];return this.hooks.mounted.forEach(c=>c()),this.patchProps(this.props),r}getNodeTrack(t,n){let r=this.trackMap.get(t);return r||(r={cleanup:()=>{}},this.trackMap.set(t,r)),n||r.cleanup(),r}patchProps(t){var n,r,s,o,i;for(let[a,c]of Object.entries(t))if(y(a,"on")&&((n=this.rootNode)!=null&&n.nodes)){let f=a.slice(2).toLowerCase(),u=c,l=b(this.rootNode.nodes[0],f,u);this.emitter.add(l);}else if(a==="ref")p(c)?t[a].value=(r=this.rootNode)==null?void 0:r.nodes[0]:d(c)&&t[a]((s=this.rootNode)==null?void 0:s.nodes[0]);else if(y(a,"update"))t[a]=p(c)?c.value:c;else {let f=(i=(o=this.proxyProps)[a])!=null?i:o[a]=P(c),u=this.getNodeTrack(a);u.cleanup=S(()=>{f.value=d(c)?c():c;});}this.props=t;}};E.ref=null,E.context={};var T=E;function Fe(e,t,n){return U(e)&&(Ee(e)&&(e=ke(e),t={1:t}),e=Se(e)),d(e)?new T(e,t,n):new K(e,t,n)}function v(e){return e instanceof T||e instanceof K}function Se(e){let t=document.createElement("template");return t.innerHTML=e,t}function Je(e){return e.children}function ce(e){if(v(e)||e instanceof Node)return e;let t=Z(e)?"":String(e);return document.createTextNode(t)}function x(e,t,n=null){let r=v(n)?n.firstChild:n;v(t)?t.mount(e,r):r?r.before(t):e.append(t);}function j(e){v(e)?e.unmount():e.parentNode&&e.remove();}function ue(e,t,n){x(e,t,n),j(n);}function le(e,t,n){if(t==="class"){typeof n=="string"?e.className=n:Array.isArray(n)?e.className=n.join(" "):n&&typeof n=="object"&&(e.className=Object.entries(n).reduce((r,[s,o])=>r+(o?` ${s}`:""),"").trim());return}if(t==="style"){if(typeof n=="string")e.style.cssText=n;else if(n&&typeof n=="object"){let r=n;Object.keys(r).forEach(s=>{e.style.setProperty(be(s),String(r[s]));});}return}Z(n)?e.removeAttribute(t):n===!0?e.setAttribute(t,""):e.setAttribute(t,String(n));}function Me(e,t){if(e instanceof HTMLInputElement){if(e.type==="checkbox")return b(e,"change",()=>{t(!!e.checked);});if(e.type==="date")return b(e,"change",()=>{t(e.value?e.value:"");});if(e.type==="file")return b(e,"change",()=>{e.files&&t(e.files);});if(e.type==="number")return b(e,"input",()=>{let n=Number.parseFloat(e.value);t(Number.isNaN(n)?"":String(n));});if(e.type==="radio")return b(e,"change",()=>{t(e.checked?e.value:"");});if(e.type==="text")return b(e,"input",()=>{t(e.value);})}if(e instanceof HTMLSelectElement)return b(e,"change",()=>{t(e.value);});if(e instanceof HTMLTextAreaElement)return b(e,"input",()=>{t(e.value);})}var Ce=Promise.resolve();function Ge(e){return e?Ce.then(e):Ce}function b(e,t,n){return e.addEventListener(t,n),()=>e.removeEventListener(t,n)}var Xe=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],ze=["a","abbr","acronym","address","applet","area","article","aside","audio","b","base","basefont","bdi","bdo","bgsound","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","command","content","data","datalist","dd","del","details","dfn","dialog","dir","div","dl","dt","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","image","img","input","ins","kbd","keygen","label","legend","li","link","listing","main","map","mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes","noscript","object","ol","optgroup","option","output","p","param","picture","plaintext","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","tt","u","ul","var","video","wbr","xmp"];function Ee(e){return ze.includes(e)}function ke(e){return Xe.includes(e)?`<${e}/>`:`<${e}></${e}>`}function we(e,t,n,r){let s=new Map,o=Array.from(t.values()),i=o.length;if(t.size>0&&n.length===0){if(e.childNodes.length===i+(r?1:0))e.innerHTML="",r&&x(e,r);else {let u=document.createRange(),l=o[0],m=v(l)?l.firstChild:l;u.setStartBefore(m),r?u.setEndBefore(r):u.setEndAfter(e),u.deleteContents();}return o.forEach(u=>{v(u)&&u.unmount();}),s}let a=[],c=De(n),f=0;for(let[u,l]of n.entries()){let m=o[f],R=D(m,u);for(;m&&!c.has(R);)j(m),t.delete(R),m=o[++f],R=D(m,u);let pe=D(l,u),q=t.get(pe);if(q&&(l=Be(e,q,l)),m)if(m===q)f++;else if(m){let de=document.createComment("");x(e,de,m),a.push([de,l]);}else x(e,l,r);else x(e,l,r);s.set(pe,l);}return a.forEach(([u,l])=>ue(e,l,u)),t.forEach((u,l)=>{u.isConnected&&!s.has(l)&&j(u);}),s}function Be(e,t,n){return t===n?t:v(t)&&v(n)&&t.template===n.template?(n.inheritNode(t),n):t instanceof Text&&n instanceof Text?(t.textContent!==n.textContent&&(t.textContent=n.textContent),t):(ue(e,n,t),n)}function De(e){let t=new Map;for(let[n,r]of e.entries()){let s=D(r,n);t.set(s,r);}return t}function D(e,t){let n=e instanceof Element?e.id:void 0,r=n===""?void 0:n;return r!=null?r:`_$${t}$`}var K=class e{constructor(t,n,r){this.template=t;this.props=n;this.key=r;this.treeMap=new Map;this.mounted=!1;this.nodes=[];this.provides={};this.trackMap=new Map;this.parent=null;}get firstChild(){var t;return (t=this.nodes[0])!=null?t:null}get isConnected(){return this.mounted}addEventListener(){}removeEventListener(){}unmount(){this.trackMap.forEach(t=>{var n,r;(n=t.cleanup)==null||n.call(t),(r=t.lastNodes)==null||r.forEach(s=>{t.isRoot?j(s):s instanceof e&&s.unmount();});}),this.trackMap.clear(),this.treeMap.clear(),this.nodes.forEach(t=>j(t)),this.nodes=[],this.mounted=!1;}mount(t,n){var o;if(this.parent=t,this.isConnected)return this.nodes.forEach(i=>x(t,i,n)),this.nodes;let r=this.template.content.cloneNode(!0),s=r.firstChild;return (o=s==null?void 0:s.hasAttribute)!=null&&o.call(s,"_svg_")&&(s.remove(),s==null||s.childNodes.forEach(i=>{r.append(i);})),this.nodes=Array.from(r.childNodes),this.mapNodeTree(t,r),x(t,r,n),this.patchNodes(this.props),this.mounted=!0,this.nodes}mapNodeTree(t,n){let r=1;this.treeMap.set(0,t);let s=o=>{o.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&this.treeMap.set(r++,o);let i=o.firstChild;for(;i;)s(i),i=i.nextSibling;};s(n);}patchNodes(t){for(let n in t){let r=Number(n),s=this.treeMap.get(r);if(s){let o=this.props[n];this.patchNode(n,s,o,r===0);}}this.props=t;}getNodeTrack(t,n,r){var o;let s=this.trackMap.get(t);return s||(s={cleanup:()=>{}},n&&(s.lastNodes=new Map),r&&(s.isRoot=!0),this.trackMap.set(t,s)),(o=s.cleanup)==null||o.call(s),s}inheritNode(t){this.mounted=t.mounted,this.nodes=t.nodes,this.trackMap=t.trackMap,this.treeMap=t.treeMap;let n=this.props;this.props=t.props,this.patchNodes(n);}patchNode(t,n,r,s){for(let o in r)if(o==="children"&&r.children)if(M(r.children))r.children.filter(Boolean).forEach((i,a)=>{var R;let[c,f]=M(i)?i:[i,null],u=ye(f)?null:(R=this.treeMap.get(f))!=null?R:null,l=`${t}:${o}:${a}`,m=this.getNodeTrack(l,!0,s);Oe(m,n,c,u);});else {let i=`${t}:${o}:0`,a=this.getNodeTrack(i,!0,s);Oe(a,n,r.children,null);}else if(o==="ref")p(r[o])?r[o].value=n:d(r[o])&&r[o](n);else if(y(o,"on")){let i=o.slice(2).toLocaleLowerCase(),a=this.getNodeTrack(`${t}:${o}`),c=r[o];a.cleanup=b(n,i,c);}else if(!y(o,"update")){let i=this.getNodeTrack(`${t}:${o}`),a=r[o],c=p(a)?a:P(a);Ae(i,n,o,c.value);let f=S(()=>{c.value=p(a)?a.value:a,Ae(i,n,o,c.value);}),u,l=`update${ve(o)}`;r[l]&&(u=Me(n,m=>{r[l](m);})),i.cleanup=()=>{f&&f(),u&&u();};}}};function Ae(e,t,n,r){let s=t;s.setAttribute&&(d(r)?e.cleanup=S(()=>{le(s,n,r());}):le(s,n,r));}function Oe(e,t,n,r){d(n)?e.cleanup=S(()=>{let s=Y(n()).map(ce);e.lastNodes=we(t,e.lastNodes,s,r);}):Y(n).forEach((s,o)=>{let i=ce(s);e.lastNodes.set(String(o),i),x(t,i,r);});}function Ve(e){var t;V("onMounted"),(t=T.ref)==null||t.addHook("mounted",e);}function qe(e){var t;V("onDestroy"),(t=T.ref)==null||t.addHook("destroy",e);}function V(e){T.ref||console.error(`"${e}" can only be called within the component function body
2
+ and cannot be used in asynchronous or deferred calls.`);}function Ue(e,t){var n;V("useProvide"),(n=T.ref)==null||n.setContext(e,t);}function Ze(e,t){var n;return V("useInject"),((n=T.ref)==null?void 0:n.getContext(e))||t}function Qe(){let e=null;return new Proxy({},{get(t,n){return n==="__is_ref"?!0:e},set(t,n,r){return e=r,!0}})}function Ye(e){return Object.entries(e).map(([t,n])=>`${t}=${JSON.stringify(escape(String(n)))}`).join(" ")}function fe(e,t){if(d(e))return e(t);let n=Array.isArray(e)?e.reduce((o,i,a)=>(o[a+1]={template:i},o),{}):e,r={},s={};if(C(n))for(let[o,i]of Object.entries(n)){let a=t[o];if(a){for(let c in a)y(c,"on")&&d(a[c])&&delete a[c];if(a.children){for(let[c,f]of a.children)r[f]||(r[f]=[]),r[f].push(c);delete a.children;}}s[o]={template:i.template,prop:a};}return Object.entries(s).map(([o,{template:i,prop:a}])=>{let c=i;return a&&(c+=` ${Ye(a)}`),r[o]&&(c+=r[o].map(f=>fe(f,a)).join("")),c}).join("")}function mn(e,t){return fe(e,t)}function hn(e,t,n={}){t.innerHTML=fe(e,n);}globalThis&&(globalThis.__essor_version=ge);
3
3
 
4
- export { T as ComponentNode, Ie as Fragment, H as TemplateNode, he as __essor_version, Ke as createStore, Fe as h, X as isComputed, b as isJsxElement, W as isReactive, p as isSignal, Je as nextTick, Ve as onDestroy, De as onMount, le as renderTemplate, pn as renderToString, oe as signalObject, dn as ssgRender, Ne as template, We as unReactive, be as unSignal, re as useComputed, N as useEffect, Ue as useInject, qe as useProvide, A as useReactive, Ze as useRef, L as useSignal, Pe as useWatch };
4
+ export { T as ComponentNode, Je as Fragment, K as TemplateNode, ge as __essor_version, Ie as createStore, Fe as h, z as isComputed, v as isJsxElement, H as isReactive, p as isSignal, Ge as nextTick, qe as onDestroy, Ve as onMount, fe as renderTemplate, mn as renderToString, se as signalObject, hn as ssgRender, Se as template, Pe as unReactive, xe as unSignal, oe as useComputed, S as useEffect, Ze as useInject, Ue as useProvide, O as useReactive, Qe as useRef, P as useSignal, He as useWatch };
5
5
  //# sourceMappingURL=out.js.map
6
6
  //# sourceMappingURL=essor.esm.js.map