sprae 10.10.6 → 10.11.2

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/sprae.umd.js CHANGED
@@ -28,26 +28,70 @@ function use(s) {
28
28
  batch = s.batch || ((fn) => fn());
29
29
  untracked = s.untracked || batch;
30
30
  }
31
- var signal, effect, untracked, batch, computed;
31
+ var current, batched, signal, effect, computed, batch, untracked;
32
32
  var init_signal = __esm({
33
33
  "signal.js"() {
34
+ signal = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {
35
+ get value() {
36
+ current?.deps.push(obs.add(current));
37
+ return v;
38
+ },
39
+ set value(val) {
40
+ if (val === v) return;
41
+ v = val;
42
+ for (let sub of obs) batched ? batched.add(sub) : sub();
43
+ },
44
+ peek() {
45
+ return v;
46
+ }
47
+ }, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);
48
+ effect = (fn, teardown, fx, deps) => (fx = (prev) => {
49
+ teardown?.call?.();
50
+ prev = current, current = fx;
51
+ try {
52
+ teardown = fn();
53
+ } finally {
54
+ current = prev;
55
+ }
56
+ }, deps = fx.deps = [], fx(), (dep) => {
57
+ teardown?.call?.();
58
+ while (dep = deps.pop()) dep.delete(fx);
59
+ });
60
+ computed = (fn, s = signal(), c, e) => (c = {
61
+ get value() {
62
+ e || (e = effect(() => s.value = fn()));
63
+ return s.value;
64
+ },
65
+ peek: s.peek
66
+ }, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);
67
+ batch = (fn) => {
68
+ let fxs = batched;
69
+ if (!fxs) batched = /* @__PURE__ */ new Set();
70
+ try {
71
+ fn();
72
+ } finally {
73
+ if (!fxs) {
74
+ fxs = batched;
75
+ batched = null;
76
+ for (const fx of fxs) fx();
77
+ }
78
+ }
79
+ };
80
+ untracked = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);
34
81
  }
35
82
  });
36
83
 
37
84
  // store.js
38
85
  function store(values, parent) {
39
- if (!values)
40
- return values;
41
- if (values[_signals])
42
- return values;
43
- if (Array.isArray(values))
44
- return list(values);
45
- if (values.constructor !== Object)
46
- return values;
86
+ if (!values) return values;
87
+ if (values[_signals]) return values;
88
+ if (Array.isArray(values)) return list(values);
89
+ if (values.constructor !== Object) return values;
47
90
  let signals = { ...parent?.[_signals] }, _len = signal(Object.values(values).length);
48
91
  const state = new Proxy(signals, {
49
92
  get: (_, key) => key === _change ? _len : key === _signals ? signals : signals[key]?.valueOf(),
50
93
  set: (_, key, v, s) => (s = signals[key], set(signals, key, v), s ?? ++_len.value, 1),
94
+ // bump length for new signal
51
95
  deleteProperty: (_, key) => (signals[key] && (del(signals, key), _len.value--), 1),
52
96
  ownKeys() {
53
97
  _len.value;
@@ -67,31 +111,24 @@ function store(values, parent) {
67
111
  }
68
112
  function list(values) {
69
113
  let lastProp;
70
- if (values[_signals])
71
- return values;
114
+ if (values[_signals]) return values;
72
115
  let _len = signal(values.length), signals = Array(values.length).fill();
73
116
  const state = new Proxy(signals, {
74
117
  get(_, key) {
75
- if (typeof key === "symbol")
76
- return key === _change ? _len : key === _signals ? signals : signals[key];
77
- if (key === "length")
78
- return mut[lastProp] ? _len.peek() : _len.value;
118
+ if (typeof key === "symbol") return key === _change ? _len : key === _signals ? signals : signals[key];
119
+ if (key === "length") return mut[lastProp] ? _len.peek() : _len.value;
79
120
  lastProp = key;
80
- if (signals[key])
81
- return signals[key].valueOf();
82
- if (key < signals.length)
83
- return (signals[key] = signal(store(values[key]))).value;
121
+ if (signals[key]) return signals[key].valueOf();
122
+ if (key < signals.length) return (signals[key] = signal(store(values[key]))).value;
84
123
  },
85
124
  set(_, key, v) {
86
125
  if (key === "length") {
87
- for (let i = v, l = signals.length; i < l; i++)
88
- delete state[i];
126
+ for (let i = v, l = signals.length; i < l; i++) delete state[i];
89
127
  _len.value = signals.length = v;
90
128
  return true;
91
129
  }
92
130
  set(signals, key, v);
93
- if (key >= _len.peek())
94
- _len.value = signals.length = Number(key) + 1;
131
+ if (key >= _len.peek()) _len.value = signals.length = Number(key) + 1;
95
132
  return true;
96
133
  },
97
134
  deleteProperty: (_, key) => (signals[key] && del(signals, key), 1)
@@ -100,25 +137,20 @@ function list(values) {
100
137
  }
101
138
  function set(signals, key, v) {
102
139
  let s = signals[key];
103
- if (key[0] === "_")
104
- signals[key] = v;
140
+ if (key[0] === "_") signals[key] = v;
105
141
  else if (!s) {
106
142
  signals[key] = s = v?.peek ? v : signal(store(v));
107
- } else if (v === s.peek())
108
- ;
109
- else if (s._set)
110
- s._set(v);
143
+ } else if (v === s.peek()) ;
144
+ else if (s._set) s._set(v);
111
145
  else if (Array.isArray(v) && Array.isArray(s.peek())) {
112
146
  const cur = s.peek();
113
- if (cur[_change])
114
- untracked(() => {
115
- batch(() => {
116
- let i = 0, l = v.length;
117
- for (; i < l; i++)
118
- cur[i] = v[i];
119
- cur.length = l;
120
- });
147
+ if (cur[_change]) untracked(() => {
148
+ batch(() => {
149
+ let i = 0, l = v.length;
150
+ for (; i < l; i++) cur[i] = v[i];
151
+ cur.length = l;
121
152
  });
153
+ });
122
154
  else {
123
155
  s.value = v;
124
156
  }
@@ -128,8 +160,7 @@ function set(signals, key, v) {
128
160
  }
129
161
  function del(signals, key) {
130
162
  const s = signals[key], del2 = s[Symbol.dispose];
131
- if (del2)
132
- delete s[Symbol.dispose];
163
+ if (del2) delete s[Symbol.dispose];
133
164
  delete signals[key];
134
165
  del2?.();
135
166
  }
@@ -145,24 +176,20 @@ var init_store = __esm({
145
176
 
146
177
  // core.js
147
178
  function sprae(el, values) {
148
- if (!el?.childNodes)
149
- return;
179
+ if (!el?.childNodes) return;
150
180
  if (memo.has(el)) {
151
181
  return Object.assign(memo.get(el), values);
152
182
  }
153
183
  const state = store(values || {}), disposes = [];
154
184
  init2(el);
155
- if (!memo.has(el))
156
- memo.set(el, state);
185
+ if (!memo.has(el)) memo.set(el, state);
157
186
  el[_dispose] = () => {
158
- while (disposes.length)
159
- disposes.pop()();
187
+ while (disposes.length) disposes.pop()();
160
188
  memo.delete(el);
161
189
  };
162
190
  return state;
163
191
  function init2(el2, parent = el2.parentNode) {
164
- if (!el2.childNodes)
165
- return;
192
+ if (!el2.childNodes) return;
166
193
  for (let i = 0; i < el2.attributes?.length; ) {
167
194
  let attr2 = el2.attributes[i];
168
195
  if (attr2.name[0] === ":") {
@@ -172,18 +199,13 @@ function sprae(el, values) {
172
199
  let dir = directive[name] || directive.default;
173
200
  let evaluate = (dir.parse || parse)(attr2.value);
174
201
  let dispose = dir(el2, evaluate, state, name);
175
- if (dispose)
176
- disposes.push(dispose);
202
+ if (dispose) disposes.push(dispose);
177
203
  }
178
- if (memo.has(el2))
179
- return el2[_dispose] && disposes.push(el2[_dispose]);
180
- if (el2.parentNode !== parent)
181
- return;
182
- } else
183
- i++;
204
+ if (memo.has(el2)) return el2[_dispose] && disposes.push(el2[_dispose]);
205
+ if (el2.parentNode !== parent) return;
206
+ } else i++;
184
207
  }
185
- for (let child of [...el2.childNodes])
186
- init2(child, el2);
208
+ for (let child of [...el2.childNodes]) init2(child, el2);
187
209
  }
188
210
  ;
189
211
  }
@@ -197,8 +219,7 @@ var init_core = __esm({
197
219
  memo = /* @__PURE__ */ new WeakMap();
198
220
  evalMemo = {};
199
221
  parse = (expr, dir, fn) => {
200
- if (fn = evalMemo[expr = expr.trim()])
201
- return fn;
222
+ if (fn = evalMemo[expr = expr.trim()]) return fn;
202
223
  try {
203
224
  fn = compile(expr);
204
225
  } catch (e) {
@@ -218,16 +239,14 @@ ${dir}${expr ? `="${expr}"
218
239
  s.compile && (compile = s.compile);
219
240
  };
220
241
  frag = (tpl) => {
221
- if (!tpl.nodeType)
222
- return tpl;
242
+ if (!tpl.nodeType) return tpl;
223
243
  let content = tpl.content.cloneNode(true), attributes = [...tpl.attributes], ref = document.createTextNode(""), childNodes = (content.append(ref), [...content.childNodes]);
224
244
  return {
225
245
  childNodes,
226
246
  content,
227
247
  remove: () => content.append(...childNodes),
228
248
  replaceWith(el) {
229
- if (el === ref)
230
- return;
249
+ if (el === ref) return;
231
250
  ref.before(el);
232
251
  content.append(...childNodes);
233
252
  },
@@ -240,73 +259,6 @@ ${dir}${expr ? `="${expr}"
240
259
  }
241
260
  });
242
261
 
243
- // node_modules/ulive/dist/ulive.es.js
244
- var ulive_es_exports = {};
245
- __export(ulive_es_exports, {
246
- batch: () => batch2,
247
- computed: () => computed2,
248
- effect: () => effect2,
249
- signal: () => signal2,
250
- untracked: () => untracked2
251
- });
252
- var current, batched, signal2, effect2, computed2, batch2, untracked2;
253
- var init_ulive_es = __esm({
254
- "node_modules/ulive/dist/ulive.es.js"() {
255
- signal2 = (v, s, obs = /* @__PURE__ */ new Set()) => (s = {
256
- get value() {
257
- current?.deps.push(obs.add(current));
258
- return v;
259
- },
260
- set value(val) {
261
- if (val === v)
262
- return;
263
- v = val;
264
- for (let sub of obs)
265
- batched ? batched.add(sub) : sub();
266
- },
267
- peek() {
268
- return v;
269
- }
270
- }, s.toJSON = s.then = s.toString = s.valueOf = () => s.value, s);
271
- effect2 = (fn, teardown, fx, deps) => (fx = (prev) => {
272
- teardown?.call?.();
273
- prev = current, current = fx;
274
- try {
275
- teardown = fn();
276
- } finally {
277
- current = prev;
278
- }
279
- }, deps = fx.deps = [], fx(), (dep) => {
280
- teardown?.call?.();
281
- while (dep = deps.pop())
282
- dep.delete(fx);
283
- });
284
- computed2 = (fn, s = signal2(), c, e) => (c = {
285
- get value() {
286
- e || (e = effect2(() => s.value = fn()));
287
- return s.value;
288
- },
289
- peek: s.peek
290
- }, c.toJSON = c.then = c.toString = c.valueOf = () => c.value, c);
291
- batch2 = (fn) => {
292
- let fxs = batched;
293
- if (!fxs)
294
- batched = /* @__PURE__ */ new Set();
295
- try {
296
- fn();
297
- } finally {
298
- if (!fxs) {
299
- fxs = batched;
300
- batched = null;
301
- for (const fx of fxs)
302
- fx();
303
- }
304
- }
305
- };
306
- untracked2 = (fn, prev, v) => (prev = current, current = null, v = fn(), current = prev, v);
307
- }
308
- });
309
-
310
262
  // directive/if.js
311
263
  var _prevIf;
312
264
  var init_if = __esm({
@@ -321,13 +273,11 @@ var init_if = __esm({
321
273
  memo.set(ifEl, null);
322
274
  if (next?.hasAttribute(":else")) {
323
275
  next.removeAttribute(":else");
324
- if (!next.hasAttribute(":if"))
325
- next.remove(), elseEl = next.content ? frag(next) : next, memo.set(elseEl, null);
276
+ if (!next.hasAttribute(":if")) next.remove(), elseEl = next.content ? frag(next) : next, memo.set(elseEl, null);
326
277
  }
327
278
  return effect(() => {
328
279
  const newEl = evaluate(state) ? ifEl : el[_prevIf] ? null : elseEl;
329
- if (next)
330
- next[_prevIf] = newEl === ifEl;
280
+ if (next) next[_prevIf] = newEl === ifEl;
331
281
  if (curEl != newEl) {
332
282
  curEl?.remove();
333
283
  if (curEl = newEl) {
@@ -354,10 +304,8 @@ var init_each = __esm({
354
304
  const items = computed(() => {
355
305
  keys2 = null;
356
306
  let items2 = evaluate(state);
357
- if (typeof items2 === "number")
358
- items2 = Array.from({ length: items2 }, (_, i) => i + 1);
359
- if (items2?.constructor === Object)
360
- keys2 = Object.keys(items2), items2 = Object.values(items2);
307
+ if (typeof items2 === "number") items2 = Array.from({ length: items2 }, (_, i) => i + 1);
308
+ if (items2?.constructor === Object) keys2 = Object.keys(items2), items2 = Object.values(items2);
361
309
  return items2 || [];
362
310
  });
363
311
  const update = () => {
@@ -402,8 +350,7 @@ var init_each = __esm({
402
350
  if (!planned) {
403
351
  update();
404
352
  queueMicrotask(() => (planned && update(), planned = 0));
405
- } else
406
- planned++;
353
+ } else planned++;
407
354
  });
408
355
  };
409
356
  directive.each.parse = (expr) => {
@@ -449,8 +396,7 @@ var init_html = __esm({
449
396
  init_core();
450
397
  directive.html = (el, evaluate, state) => {
451
398
  let tpl = evaluate(state);
452
- if (!tpl)
453
- return;
399
+ if (!tpl) return;
454
400
  let content = (tpl.content || tpl).cloneNode(true);
455
401
  el.replaceChildren(content);
456
402
  sprae(el, state);
@@ -464,8 +410,7 @@ var init_text = __esm({
464
410
  init_core();
465
411
  init_signal();
466
412
  directive.text = (el, evaluate, state) => {
467
- if (el.content)
468
- el.replaceWith(el = frag(el).childNodes[0]);
413
+ if (el.content) el.replaceWith(el = frag(el).childNodes[0]);
469
414
  return effect(() => {
470
415
  let value = evaluate(state);
471
416
  el.textContent = value == null ? "" : value;
@@ -485,20 +430,13 @@ var init_class = __esm({
485
430
  let v = evaluate(state);
486
431
  let clsx = /* @__PURE__ */ new Set();
487
432
  if (v) {
488
- if (typeof v === "string")
489
- v.split(" ").map((cls) => clsx.add(cls));
490
- else if (Array.isArray(v))
491
- v.map((v2) => v2 && clsx.add(v2));
492
- else
493
- Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));
433
+ if (typeof v === "string") v.split(" ").map((cls) => clsx.add(cls));
434
+ else if (Array.isArray(v)) v.map((v2) => v2 && clsx.add(v2));
435
+ else Object.entries(v).map(([k, v2]) => v2 && clsx.add(k));
494
436
  }
495
- for (let cls of cur)
496
- if (clsx.has(cls))
497
- clsx.delete(cls);
498
- else
499
- el.classList.remove(cls);
500
- for (let cls of cur = clsx)
501
- el.classList.add(cls);
437
+ for (let cls of cur) if (clsx.has(cls)) clsx.delete(cls);
438
+ else el.classList.remove(cls);
439
+ for (let cls of cur = clsx) el.classList.add(cls);
502
440
  });
503
441
  };
504
442
  }
@@ -513,13 +451,10 @@ var init_style = __esm({
513
451
  let initStyle = el.getAttribute("style");
514
452
  return effect(() => {
515
453
  let v = evaluate(state);
516
- if (typeof v === "string")
517
- el.setAttribute("style", initStyle + (initStyle.endsWith(";") ? "" : "; ") + v);
454
+ if (typeof v === "string") el.setAttribute("style", initStyle + (initStyle.endsWith(";") ? "" : "; ") + v);
518
455
  else {
519
- if (initStyle)
520
- el.setAttribute("style", initStyle);
521
- for (let k in v)
522
- k[0] == "-" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];
456
+ if (initStyle) el.setAttribute("style", initStyle);
457
+ for (let k in v) k[0] == "-" ? el.style.setProperty(k, v[k]) : el.style[k] = v[k];
523
458
  }
524
459
  });
525
460
  };
@@ -533,15 +468,11 @@ var init_default = __esm({
533
468
  init_core();
534
469
  init_signal();
535
470
  directive.default = (target, evaluate, state, name) => {
536
- if (!name.startsWith("on"))
537
- return effect(() => {
538
- let value = evaluate(state);
539
- if (name)
540
- attr(target, name, value);
541
- else
542
- for (let key in value)
543
- attr(target, dashcase(key), value[key]);
544
- });
471
+ if (!name.startsWith("on")) return effect(() => {
472
+ let value = evaluate(state);
473
+ if (name) attr(target, name, value);
474
+ else for (let key in value) attr(target, dashcase(key), value[key]);
475
+ });
545
476
  const ctxs = name.split("..").map((e) => {
546
477
  let ctx = { evt: "", target, test: () => true };
547
478
  ctx.evt = (e.startsWith("on") ? e.slice(2) : e).replace(
@@ -550,16 +481,14 @@ var init_default = __esm({
550
481
  );
551
482
  return ctx;
552
483
  });
553
- if (ctxs.length == 1)
554
- return effect(() => addListener(evaluate(state), ctxs[0]));
484
+ if (ctxs.length == 1) return effect(() => addListener(evaluate(state), ctxs[0]));
555
485
  let startFn, nextFn, off, idx = 0;
556
486
  const nextListener = (fn) => {
557
487
  off = addListener((e) => (off(), nextFn = fn?.(e), (idx = ++idx % ctxs.length) ? nextListener(nextFn) : startFn && nextListener(startFn)), ctxs[idx]);
558
488
  };
559
489
  return effect(() => (startFn = evaluate(state), !off && nextListener(startFn), () => startFn = null));
560
490
  function addListener(fn, { evt, target: target2, test, defer, stop, prevent, immediate, ...opts }) {
561
- if (defer)
562
- fn = defer(fn);
491
+ if (defer) fn = defer(fn);
563
492
  const cb = (e) => {
564
493
  try {
565
494
  test(e) && (stop && (immediate ? e.stopImmediatePropagation() : e.stopPropagation()), prevent && e.preventDefault(), fn?.(e));
@@ -573,6 +502,7 @@ var init_default = __esm({
573
502
  ;
574
503
  };
575
504
  mods = {
505
+ // actions
576
506
  prevent(ctx) {
577
507
  ctx.prevent = true;
578
508
  },
@@ -582,6 +512,7 @@ var init_default = __esm({
582
512
  immediate(ctx) {
583
513
  ctx.immediate = true;
584
514
  },
515
+ // options
585
516
  once(ctx) {
586
517
  ctx.once = true;
587
518
  },
@@ -591,6 +522,7 @@ var init_default = __esm({
591
522
  capture(ctx) {
592
523
  ctx.capture = true;
593
524
  },
525
+ // target
594
526
  window(ctx) {
595
527
  ctx.target = window;
596
528
  },
@@ -603,21 +535,21 @@ var init_default = __esm({
603
535
  debounce(ctx, wait) {
604
536
  ctx.defer = (fn) => debounce(fn, wait ? Number(wait) || 0 : 108);
605
537
  },
538
+ // test
606
539
  outside: (ctx) => (e) => {
607
540
  let target = ctx.target;
608
- if (target.contains(e.target))
609
- return false;
610
- if (e.target.isConnected === false)
611
- return false;
612
- if (target.offsetWidth < 1 && target.offsetHeight < 1)
613
- return false;
541
+ if (target.contains(e.target)) return false;
542
+ if (e.target.isConnected === false) return false;
543
+ if (target.offsetWidth < 1 && target.offsetHeight < 1) return false;
614
544
  return true;
615
545
  },
616
546
  self: (ctx) => (e) => e.target === ctx.target,
547
+ // keyboard
617
548
  ctrl: (_, ...param) => (e) => keys.ctrl(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),
618
549
  shift: (_, ...param) => (e) => keys.shift(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),
619
550
  alt: (_, ...param) => (e) => keys.alt(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),
620
551
  meta: (_, ...param) => (e) => keys.meta(e) && param.every((p) => keys[p] ? keys[p](e) : e.key === p),
552
+ // NOTE: we don't expose up/left/right/down as too verbose: can and better be handled/differentiated at once
621
553
  arrow: () => keys.arrow,
622
554
  enter: () => keys.enter,
623
555
  esc: () => keys.esc,
@@ -644,23 +576,19 @@ var init_default = __esm({
644
576
  char: (e) => /^\S$/.test(e.key)
645
577
  };
646
578
  attr = (el, name, v) => {
647
- if (v == null || v === false)
648
- el.removeAttribute(name);
649
- else
650
- el.setAttribute(name, v === true ? "" : typeof v === "number" || typeof v === "string" ? v : "");
579
+ if (v == null || v === false) el.removeAttribute(name);
580
+ else el.setAttribute(name, v === true ? "" : typeof v === "number" || typeof v === "string" ? v : "");
651
581
  };
652
582
  throttle = (fn, limit) => {
653
583
  let pause, planned, block = (e) => {
654
584
  pause = true;
655
585
  setTimeout(() => {
656
586
  pause = false;
657
- if (planned)
658
- return planned = false, block(e), fn(e);
587
+ if (planned) return planned = false, block(e), fn(e);
659
588
  }, limit);
660
589
  };
661
590
  return (e) => {
662
- if (pause)
663
- return planned = true;
591
+ if (pause) return planned = true;
664
592
  block(e);
665
593
  return fn(e);
666
594
  };
@@ -688,9 +616,11 @@ var init_value = __esm({
688
616
  init_default();
689
617
  init_signal();
690
618
  directive.value = (el, [getValue, setValue], state) => {
691
- const update = el.type === "text" || el.type === "" ? (value) => el.setAttribute("value", el.value = value == null ? "" : value) : el.tagName === "TEXTAREA" || el.type === "text" || el.type === "" ? (value, from, to) => (from = el.selectionStart, to = el.selectionEnd, el.setAttribute("value", el.value = value == null ? "" : value), from && el.setSelectionRange(from, to)) : el.type === "checkbox" ? (value) => (el.checked = value, attr(el, "checked", value)) : el.type === "select-one" ? (value) => {
692
- for (let option in el.options)
693
- option.removeAttribute("selected");
619
+ const update = el.type === "text" || el.type === "" ? (value) => el.setAttribute("value", el.value = value == null ? "" : value) : el.tagName === "TEXTAREA" || el.type === "text" || el.type === "" ? (value, from, to) => (
620
+ // we retain selection in input
621
+ (from = el.selectionStart, to = el.selectionEnd, el.setAttribute("value", el.value = value == null ? "" : value), from && el.setSelectionRange(from, to))
622
+ ) : el.type === "checkbox" ? (value) => (el.checked = value, attr(el, "checked", value)) : el.type === "select-one" ? (value) => {
623
+ for (let option of el.options) option.removeAttribute("selected");
694
624
  el.value = value;
695
625
  el.selectedOptions[0]?.setAttribute("selected", "");
696
626
  } : (value) => el.value = value;
@@ -736,7 +666,6 @@ var sprae_default;
736
666
  var init_sprae = __esm({
737
667
  "sprae.js"() {
738
668
  init_core();
739
- init_ulive_es();
740
669
  init_if();
741
670
  init_each();
742
671
  init_ref();
@@ -748,7 +677,6 @@ var init_sprae = __esm({
748
677
  init_value();
749
678
  init_fx();
750
679
  init_default();
751
- sprae.use(ulive_es_exports);
752
680
  sprae.use({ compile: (expr) => sprae.constructor(`with (arguments[0]) { return ${expr} };`) });
753
681
  sprae_default = sprae;
754
682
  }
@@ -763,8 +691,7 @@ var init_data = __esm({
763
691
  directive["data"] = (el, evaluate, state) => {
764
692
  return effect(() => {
765
693
  let value = evaluate(state);
766
- for (let key in value)
767
- el.dataset[key] = value[key];
694
+ for (let key in value) el.dataset[key] = value[key];
768
695
  });
769
696
  };
770
697
  }
@@ -779,8 +706,7 @@ var init_aria = __esm({
779
706
  init_signal();
780
707
  directive["aria"] = (el, evaluate, state) => {
781
708
  const update = (value) => {
782
- for (let key in value)
783
- attr(el, "aria-" + dashcase(key), value[key] == null ? null : value[key] + "");
709
+ for (let key in value) attr(el, "aria-" + dashcase(key), value[key] == null ? null : value[key] + "");
784
710
  };
785
711
  return effect(() => update(evaluate(state)));
786
712
  };
@@ -794,8 +720,7 @@ init_aria();
794
720
  init_html();
795
721
  module.exports = sprae2;
796
722
  var init = document.currentScript?.getAttribute("init") || null;
797
- if (init)
798
- sprae2(document.documentElement, JSON.parse(init));
723
+ if (init) sprae2(document.documentElement, JSON.parse(init));
799
724
  ;if (typeof module.exports == "object" && typeof exports == "object") {
800
725
  var __cp = (to, from, except, desc) => {
801
726
  if ((from && typeof from === "object") || typeof from === "function") {