umwelt-js 0.2.0 → 0.2.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/index.js CHANGED
@@ -1,13 +1,13 @@
1
- import { createComponent as S, use as Ne, template as A, delegateEvents as at, insert as x, effect as L, setAttribute as Me, memo as pe, className as Vt, render as It } from "solid-js/web";
2
- import { createContext as Y, createSignal as R, useContext as X, createMemo as k, createEffect as P, onCleanup as H, Switch as Lt, Match as Be, For as ie, onMount as jt, Show as st } from "solid-js";
1
+ import { createComponent as S, use as Ne, template as A, delegateEvents as at, insert as _, effect as L, setAttribute as Me, memo as pe, className as Ct, render as It } from "solid-js/web";
2
+ import { createContext as W, createSignal as V, useContext as Y, createMemo as k, createEffect as P, onCleanup as H, Switch as Lt, Match as Be, For as ie, onMount as jt, Show as st } from "solid-js";
3
3
  import { isMultiSpec as ze, olliVis as qt } from "olli";
4
4
  import { VegaLiteAdapter as Mt } from "olli/adapters";
5
5
  import he from "moize";
6
6
  import { getDomain as Bt, fetchAndParse as zt, typeCoerceData as Gt, getBins as Kt, serializeValue as Ht } from "@umwelt-data/umwelt-utils/data";
7
7
  import { compile as Fe } from "vega-lite";
8
- import { evaluateVegaData as ot, extractOutputDatasets as ct, computeGuideTicks as Jt } from "@umwelt-data/umwelt-utils/vega";
8
+ import { evaluateVegaData as ot, extractOutputDatasets as ct, computeGuideTicks as Xt } from "@umwelt-data/umwelt-utils/vega";
9
9
  import $e from "lodash.clonedeep";
10
- import { withExternalStateParam as Wt, selectionStoreToSelection as Yt, EXTERNAL_STATE_STORE as Ge, predicateToSelectionStore as Xt } from "@umwelt-data/umwelt-utils/vl-bridge";
10
+ import { withExternalStateParam as Jt, selectionStoreToSelection as Wt, EXTERNAL_STATE_STORE as Ge, predicateToSelectionStore as Yt } from "@umwelt-data/umwelt-utils/vl-bridge";
11
11
  import "lz-string";
12
12
  import { parse as Zt, View as Qt } from "vega";
13
13
  import { debounce as en } from "@solid-primitives/scheduled";
@@ -38,30 +38,30 @@ function vn(e) {
38
38
  function dt(e) {
39
39
  return pn.includes(e);
40
40
  }
41
- const ft = "None";
41
+ const ft = "None", hn = "vis_unit_", yn = "audio_unit_", Sn = (e) => `${hn}${e}`, bn = (e) => `${yn}${e}`;
42
42
  function Ke(e) {
43
43
  return "units" in e;
44
44
  }
45
45
  function He(e) {
46
46
  return "units" in e;
47
47
  }
48
- const hn = "", J = (e, t) => `${t}_${e}`, j = (e) => [`${e}_bin_start`, `${e}_bin_end`], W = (e, t) => `${t}_${e}`, Se = (e) => {
49
- const t = Ce([e]);
48
+ const wn = "", X = (e, t) => `${t}_${e}`, j = (e) => [`${e}_bin_start`, `${e}_bin_end`], J = (e, t) => `${t}_${e}`, Se = (e) => {
49
+ const t = Re([e]);
50
50
  let n = e.field;
51
51
  for (const i of t)
52
52
  if ("aggregate" in i)
53
53
  for (const r of i.aggregate)
54
- lt(r.op) && (n = J(n, r.op));
55
- else "bin" in i && !e.aggregate ? n = j(n)[0] : "timeUnit" in i && !e.aggregate && (n = W(n, i.timeUnit));
54
+ lt(r.op) && (n = X(n, r.op));
55
+ else "bin" in i && !e.aggregate ? n = j(n)[0] : "timeUnit" in i && !e.aggregate && (n = J(n, i.timeUnit));
56
56
  return n;
57
57
  }, mt = (e) => {
58
- const t = Ce([e]);
58
+ const t = Re([e]);
59
59
  let n = e.field;
60
60
  for (const i of t)
61
61
  if ("aggregate" in i)
62
62
  for (const r of i.aggregate)
63
- lt(r.op) && (typeof n == "string" ? n = J(n, r.op) : n = [J(n[0], r.op), J(n[1], r.op)]);
64
- else "bin" in i && !e.aggregate ? typeof n == "string" ? n = j(n) : n = [j(n[0])[0], j(n[1])[1]] : "timeUnit" in i && !e.aggregate && (typeof n == "string" ? n = W(n, i.timeUnit) : n = [W(n[0], i.timeUnit), W(n[1], i.timeUnit)]);
63
+ lt(r.op) && (typeof n == "string" ? n = X(n, r.op) : n = [X(n[0], r.op), X(n[1], r.op)]);
64
+ else "bin" in i && !e.aggregate ? typeof n == "string" ? n = j(n) : n = [j(n[0])[0], j(n[1])[1]] : "timeUnit" in i && !e.aggregate && (typeof n == "string" ? n = J(n, i.timeUnit) : n = [J(n[0], i.timeUnit), J(n[1], i.timeUnit)]);
65
65
  if (typeof n == "string")
66
66
  throw new Error("Expected derived field name to be a tuple");
67
67
  return n;
@@ -71,14 +71,14 @@ const hn = "", J = (e, t) => `${t}_${e}`, j = (e) => [`${e}_bin_start`, `${e}_bi
71
71
  i.size && (r = e.map((s) => {
72
72
  const o = { ...s };
73
73
  for (const f of i) {
74
- const [d, u] = j(f), c = yn(s[f], n[f]);
74
+ const [d, u] = j(f), c = En(s[f], n[f]);
75
75
  o[d] = c ? c[0] : null, o[u] = c ? c[1] : null;
76
76
  }
77
77
  return o;
78
78
  }));
79
- const a = Ce(t, i);
79
+ const a = Re(t, i);
80
80
  return pt(r, a);
81
- }, yn = (e, t) => {
81
+ }, En = (e, t) => {
82
82
  if (e == null) return;
83
83
  const n = Number(e);
84
84
  if (!isNaN(n))
@@ -87,11 +87,11 @@ const hn = "", J = (e, t) => `${t}_${e}`, j = (e) => [`${e}_bin_start`, `${e}_bi
87
87
  if (n >= r && (n < a || i === t.length - 1 && n <= a))
88
88
  return t[i];
89
89
  }
90
- }, Ce = (e, t) => {
90
+ }, Re = (e, t) => {
91
91
  const n = [], i = [], r = [], a = /* @__PURE__ */ new Set();
92
92
  for (const l of e) {
93
93
  const { field: s, timeUnit: o, bin: f, aggregate: d } = l;
94
- d || (o && a.add(W(s, o)), f && j(s).forEach((u) => a.add(u)), !o && !f && a.add(s));
94
+ d || (o && a.add(J(s, o)), f && j(s).forEach((u) => a.add(u)), !o && !f && a.add(s));
95
95
  }
96
96
  for (const l of e) {
97
97
  const { field: s, timeUnit: o, bin: f, aggregate: d } = l;
@@ -104,7 +104,7 @@ const hn = "", J = (e, t) => `${t}_${e}`, j = (e) => [`${e}_bin_start`, `${e}_bi
104
104
  });
105
105
  }
106
106
  if (o) {
107
- const u = f ? j(s)[0] : W(s, o);
107
+ const u = f ? j(s)[0] : J(s, o);
108
108
  n.push({
109
109
  timeUnit: o,
110
110
  field: s,
@@ -116,13 +116,13 @@ const hn = "", J = (e, t) => `${t}_${e}`, j = (e) => [`${e}_bin_start`, `${e}_bi
116
116
  c ? c.aggregate.push({
117
117
  op: d,
118
118
  field: u,
119
- as: J(s, d)
119
+ as: X(s, d)
120
120
  }) : r.push({
121
121
  aggregate: [
122
122
  {
123
123
  op: d,
124
124
  field: u,
125
- as: J(s, d)
125
+ as: X(s, d)
126
126
  }
127
127
  ],
128
128
  groupby: Array.from(a)
@@ -139,7 +139,7 @@ function pt(e, t) {
139
139
  }).spec.data ?? [], a = ot(r), l = ct(r, a);
140
140
  return l[l.length - 1] ?? [];
141
141
  }
142
- function Sn(e) {
142
+ function Un(e) {
143
143
  const n = Fe(e).spec.data ?? [], i = ot(n), r = ct(n, i), a = /* @__PURE__ */ new Set();
144
144
  for (const l of r) {
145
145
  const s = l.find((o) => o && typeof o == "object");
@@ -150,7 +150,7 @@ function Sn(e) {
150
150
  const re = he((e, t, n) => {
151
151
  const i = n ? Se(e) : e.field;
152
152
  return Bt({ field: i, type: e.type, timeUnit: e.timeUnit }, t);
153
- }), bn = he((e, t) => {
153
+ }), An = he((e, t) => {
154
154
  if (e.bin) {
155
155
  const n = mt(e);
156
156
  return t.map((i) => {
@@ -159,29 +159,29 @@ const re = he((e, t, n) => {
159
159
  }).sort((i, r) => typeof i[0] == "number" && typeof r[0] == "number" ? i[0] - r[0] : i[0] instanceof Date && r[0] instanceof Date ? i[0].getTime() - r[0].getTime() : typeof i[0] == "string" && typeof r[0] == "string" ? i[0].localeCompare(r[0]) : 0);
160
160
  }
161
161
  return [];
162
- }), ve = "dataset", wn = "https://raw.githubusercontent.com/vega/vega-datasets/master/data/", En = Object.fromEntries(
163
- ["stocks.csv", "cars.json", "weather.csv", "seattle-weather.csv", "penguins.json", "driving.json", "barley.json", "disasters.csv", "gapminder.json"].map((e) => [e, `${wn}${e}`])
162
+ }), ve = "dataset", Dn = "https://raw.githubusercontent.com/vega/vega-datasets/master/data/", $n = Object.fromEntries(
163
+ ["stocks.csv", "cars.json", "weather.csv", "seattle-weather.csv", "penguins.json", "driving.json", "barley.json", "disasters.csv", "gapminder.json"].map((e) => [e, `${Dn}${e}`])
164
164
  );
165
- async function Un(e) {
165
+ async function Tn(e) {
166
166
  if (mn(e)) {
167
167
  const t = e.name || ve;
168
168
  return e.values.length ? { name: t, data: e.values } : void 0;
169
169
  }
170
170
  if (ut(e)) {
171
- const t = e.name || e.url.split("/").pop() || ve, n = await Je(e.url);
171
+ const t = e.name || e.url.split("/").pop() || ve, n = await Xe(e.url);
172
172
  return n.length ? { name: t, data: n, sourceUrl: e.url } : void 0;
173
173
  }
174
174
  if (e.name) {
175
- const t = En[e.name];
175
+ const t = $n[e.name];
176
176
  if (!t) {
177
177
  console.error(`Unknown example dataset "${e.name}". A name-only data source must reference a built-in example dataset, or provide a url or values.`);
178
178
  return;
179
179
  }
180
- const n = await Je(t);
180
+ const n = await Xe(t);
181
181
  return n.length ? { name: e.name, data: n, sourceUrl: t } : void 0;
182
182
  }
183
183
  }
184
- const Je = he.promise(async (e) => {
184
+ const Xe = he.promise(async (e) => {
185
185
  try {
186
186
  const t = await zt(e);
187
187
  return Array.isArray(t) ? t : [];
@@ -198,47 +198,47 @@ he.promise(async (e, t) => {
198
198
  ${n}`), [];
199
199
  }
200
200
  });
201
- function An(e, t) {
201
+ function kn(e, t) {
202
202
  const n = t.map((i) => ({ name: i.name, type: i.type }));
203
203
  return Gt(e, n);
204
204
  }
205
- function Dn(e, t) {
205
+ function _n(e, t) {
206
206
  return e.filter((n) => Object.entries(n).every(([i, r]) => t.find((a) => a.name === i) ? r != null : !0));
207
207
  }
208
208
  function D(e, t) {
209
209
  return e.fields.find((n) => n.name === t);
210
210
  }
211
- function _(e, t) {
211
+ function x(e, t) {
212
212
  const { active: n, name: i, encodings: r, ...a } = e, l = t ? {
213
213
  ...a,
214
214
  ...t
215
215
  } : { field: i, ...a };
216
216
  return Object.fromEntries(Object.entries(l).filter(([s, o]) => o !== ft));
217
217
  }
218
- function Re(e, t) {
218
+ function Ve(e, t) {
219
219
  const i = [...Object.values(t.encoding), ...t.traversal].flatMap((a) => {
220
220
  const l = D(e, a.field);
221
- return l ? [_(l, a)] : [];
221
+ return l ? [x(l, a)] : [];
222
222
  }), r = /* @__PURE__ */ new Set();
223
223
  return i.filter((a) => {
224
224
  const l = JSON.stringify(a);
225
225
  return r.has(l) ? !1 : (r.add(l), !0);
226
226
  });
227
227
  }
228
- async function $n(e, t, n) {
228
+ async function xn(e, t, n) {
229
229
  if (!e.data || !(e.fields && e.fields.length))
230
230
  return;
231
231
  const i = e.data.name;
232
232
  if (i && t[i]?.data?.length)
233
- return We(e);
234
- const r = await Un(e.data);
233
+ return Je(e);
234
+ const r = await Tn(e.data);
235
235
  if (!r)
236
236
  return;
237
- const a = We(e), l = An(r.data, a.fields), s = Dn(l, a.fields);
237
+ const a = Je(e), l = kn(r.data, a.fields), s = _n(l, a.fields);
238
238
  if (s.length)
239
239
  return n(r.name, s, r.sourceUrl), a;
240
240
  }
241
- function Tn(e) {
241
+ function Nn(e) {
242
242
  if (e.instrument !== void 0 && !vn(e.instrument)) {
243
243
  console.warn(`Unknown audio instrument "${e.instrument}" on unit "${e.name}"; falling back to the default.`);
244
244
  const { instrument: t, ...n } = e;
@@ -246,8 +246,8 @@ function Tn(e) {
246
246
  }
247
247
  return e;
248
248
  }
249
- function We(e) {
250
- const t = Ke(e.visual) ? e.visual.units : [e.visual], n = Ke(e.visual) ? e.visual.composition : void 0, i = He(e.audio) ? e.audio.units : [e.audio], r = He(e.audio) ? e.audio.composition : void 0, a = e.fields.map((s) => {
249
+ function Je(e) {
250
+ const t = (Ke(e.visual) ? e.visual.units : [e.visual]).map((s, o) => ({ ...s, name: s.name ?? Sn(o) })), n = Ke(e.visual) ? e.visual.composition : void 0, i = (He(e.audio) ? e.audio.units : [e.audio]).map((s, o) => ({ ...s, name: s.name ?? bn(o) })), r = He(e.audio) ? e.audio.composition : void 0, a = e.fields.map((s) => {
251
251
  const o = [];
252
252
  return t.forEach((f) => {
253
253
  Object.entries(f.encoding).forEach(([d, u]) => {
@@ -266,7 +266,7 @@ function We(e) {
266
266
  },
267
267
  fields: a,
268
268
  visual: { units: t, composition: n || "layer" },
269
- audio: { units: i.map(Tn), composition: r || "concat" },
269
+ audio: { units: i.map(Nn), composition: r || "concat" },
270
270
  // regenerate node ids on import so a serialized id can never collide with one
271
271
  // this session's counter later mints
272
272
  text: {
@@ -274,7 +274,7 @@ function We(e) {
274
274
  }
275
275
  };
276
276
  }
277
- function xe(e, t) {
277
+ function _e(e, t) {
278
278
  if (e.visual.units.length === 0 || e.visual.units.map((o) => Object.values(o.encoding).length).reduce((o, f) => o + f, 0) === 0) return;
279
279
  const i = [
280
280
  {
@@ -292,7 +292,7 @@ function xe(e, t) {
292
292
  if (p) {
293
293
  const m = D(o, p.field);
294
294
  if (m) {
295
- const y = _(m, p);
295
+ const y = x(m, p);
296
296
  if (u[c] = {
297
297
  ...y
298
298
  }, c === "facet") {
@@ -355,13 +355,13 @@ function xe(e, t) {
355
355
  }) : s = $e({
356
356
  data: { values: t },
357
357
  ...l
358
- }), Wt(s);
358
+ }), Jt(s);
359
359
  }
360
- async function kn(e, t) {
360
+ async function Fn(e, t) {
361
361
  let n;
362
362
  const i = e.text.structures, r = e.visual.units.map((o) => o.name);
363
363
  JSON.stringify(i);
364
- const a = new Map(e.fields.map((o) => [o.name, o.type])), l = xe(e, t);
364
+ const a = new Map(e.fields.map((o) => [o.name, o.type])), l = _e(e, t);
365
365
  if (l ? n = await Mt(l) : n = {
366
366
  data: t,
367
367
  fields: []
@@ -370,11 +370,11 @@ async function kn(e, t) {
370
370
  }) : s(n, e), l)
371
371
  (ze(n) ? n.units : [n]).forEach((f, d) => {
372
372
  const u = i[r[d]];
373
- u?.length && Xe(f, u, a);
373
+ u?.length && Ye(f, u, a);
374
374
  });
375
375
  else {
376
- const o = i[hn];
377
- o?.length && Xe(n, o, a);
376
+ const o = i[wn];
377
+ o?.length && Ye(n, o, a);
378
378
  }
379
379
  function s(o, f) {
380
380
  o.fields?.length === 0 && (delete o.mark, delete o.axes, delete o.legends), o.fields && f.fields.filter((d) => d.active).forEach((d) => {
@@ -387,12 +387,12 @@ async function kn(e, t) {
387
387
  }
388
388
  return n;
389
389
  }
390
- let xn = 0;
391
- function _n() {
392
- return `text_node_${xn++}`;
390
+ let Pn = 0;
391
+ function On() {
392
+ return `text_node_${Pn++}`;
393
393
  }
394
394
  function gt(e) {
395
- return { ...e, id: _n(), children: e.children.map(gt) };
395
+ return { ...e, id: On(), children: e.children.map(gt) };
396
396
  }
397
397
  function ge(e, t) {
398
398
  if (!e || typeof e != "object") return e;
@@ -420,7 +420,7 @@ function vt(e, t, n) {
420
420
  ...i.length ? { children: i } : {}
421
421
  };
422
422
  }
423
- function Ye(e, t) {
423
+ function We(e, t) {
424
424
  return {
425
425
  type: e.type ?? t?.type,
426
426
  timeUnit: e.timeUnit === ft ? void 0 : e.timeUnit ?? t?.timeUnit,
@@ -428,10 +428,10 @@ function Ye(e, t) {
428
428
  };
429
429
  }
430
430
  const Te = (e) => `${e.type ?? ""}|${e.timeUnit ?? ""}|${e.bin ? "bin" : ""}`;
431
- function Xe(e, t, n) {
431
+ function Ye(e, t, n) {
432
432
  const i = e.fields ?? (e.fields = []), r = e.data ?? [], a = (d) => i.find((u) => u.field === d), l = /* @__PURE__ */ new Map(), s = (d) => d.forEach((u) => {
433
433
  u.nodeType === "group" && u.groupby.forEach((c) => {
434
- const p = Ye(c, a(c.field)), m = l.get(c.field) ?? /* @__PURE__ */ new Map();
434
+ const p = We(c, a(c.field)), m = l.get(c.field) ?? /* @__PURE__ */ new Map();
435
435
  m.set(Te(p), p), l.set(c.field, m);
436
436
  }), s(u.children);
437
437
  });
@@ -443,17 +443,17 @@ function Xe(e, t, n) {
443
443
  if (O === y)
444
444
  c && (w.type && (c.type = w.type), c.timeUnit = w.timeUnit, c.bin = w.bin || void 0), o.set(`${u}|${O}`, u);
445
445
  else {
446
- const V = [w.type, w.timeUnit, w.bin ? "bin" : ""].filter(Boolean), C = `${u}__${V.join("_") || "raw"}`;
447
- o.set(`${u}|${O}`, C), i.find((T) => T.field === C) || i.push({ field: C, label: u, type: w.type ?? n.get(u), timeUnit: w.timeUnit, bin: w.bin || void 0 }), r.forEach((T) => {
448
- u in T && !(C in T) && (T[C] = T[u]);
446
+ const C = [w.type, w.timeUnit, w.bin ? "bin" : ""].filter(Boolean), R = `${u}__${C.join("_") || "raw"}`;
447
+ o.set(`${u}|${O}`, R), i.find((T) => T.field === R) || i.push({ field: R, label: u, type: w.type ?? n.get(u), timeUnit: w.timeUnit, bin: w.bin || void 0 }), r.forEach((T) => {
448
+ u in T && !(R in T) && (T[R] = T[u]);
449
449
  });
450
450
  }
451
451
  });
452
452
  });
453
- const f = (d) => o.get(`${d.field}|${Te(Ye(d, a(d.field)))}`) ?? d.field;
453
+ const f = (d) => o.get(`${d.field}|${Te(We(d, a(d.field)))}`) ?? d.field;
454
454
  e.structure = t.map((d) => vt(d, n, f));
455
455
  }
456
- function Nn(e, t) {
456
+ function Rn(e, t) {
457
457
  const n = Fe(e).spec, i = Zt(n), r = new Qt(i, {
458
458
  renderer: "canvas",
459
459
  container: t,
@@ -461,9 +461,9 @@ function Nn(e, t) {
461
461
  });
462
462
  return r.runAsync(), r;
463
463
  }
464
- const ht = Y();
465
- function Fn(e) {
466
- const [t, n] = R(void 0), i = {
464
+ const ht = W();
465
+ function Vn(e) {
466
+ const [t, n] = V(void 0), i = {
467
467
  setSelection: (r) => {
468
468
  r && r.predicate && "and" in r.predicate && r.predicate.and.length === 0 && (r.predicate = void 0), n(r);
469
469
  }
@@ -476,7 +476,7 @@ function Fn(e) {
476
476
  });
477
477
  }
478
478
  function se() {
479
- const e = X(ht);
479
+ const e = Y(ht);
480
480
  if (e === void 0)
481
481
  throw new Error("useUmweltSelection must be used within a UmweltSelectionProvider");
482
482
  return e;
@@ -488,7 +488,7 @@ function yt(e, t, n) {
488
488
  if (!r) return;
489
489
  const a = e.visual.units.find((u) => u.name === r.unit), l = a?.encoding[r.property];
490
490
  if (!a || !l) return;
491
- const s = _(i, l), o = a.mark === "point" && s.type === "quantitative" ? !1 : s.scale?.zero, f = Array.isArray(s.scale?.domain) ? s.scale?.domain : void 0, d = {
491
+ const s = x(i, l), o = a.mark === "point" && s.type === "quantitative" ? !1 : s.scale?.zero, f = Array.isArray(s.scale?.domain) ? s.scale?.domain : void 0, d = {
492
492
  field: n,
493
493
  type: s.type,
494
494
  bin: !!s.bin,
@@ -498,7 +498,7 @@ function yt(e, t, n) {
498
498
  // vega-lite sorts discrete scales ascending unless told otherwise
499
499
  sort: s.sort === void 0 ? "ascending" : s.sort
500
500
  };
501
- return Jt(t, d);
501
+ return Xt(t, d);
502
502
  }
503
503
  function St(e, t) {
504
504
  const n = D(e, t);
@@ -507,16 +507,16 @@ function St(e, t) {
507
507
  if (!i) return;
508
508
  const a = e.visual.units.find((l) => l.name === i.unit)?.encoding[i.property];
509
509
  if (a)
510
- return _(n, a);
510
+ return x(n, a);
511
511
  }
512
- function Pn(e, t) {
512
+ function Cn(e, t) {
513
513
  return !!St(e, t)?.bin;
514
514
  }
515
- function Ve(e, t, n, i) {
515
+ function Ce(e, t, n, i) {
516
516
  const r = {};
517
517
  for (const a of i)
518
518
  if (a.bin && a.type === "quantitative" && !(a.field in r)) {
519
- if (Pn(e, a.field)) continue;
519
+ if (Cn(e, a.field)) continue;
520
520
  const l = { field: a.field, type: a.type };
521
521
  let s = Kt(l, n, yt(e, t, a.field));
522
522
  if (s.length === 0) {
@@ -537,10 +537,10 @@ function Ie(e, t) {
537
537
  return e.filter((n) => tn(n, t));
538
538
  }
539
539
  const Ze = (e) => e == null ? e : e instanceof Date ? e.getTime() : new Date(e).getTime();
540
- function On(e, t, n) {
540
+ function In(e, t, n) {
541
541
  return e.aggregate ? `${e.aggregate}_${t}` : e.timeUnit ? `${e.timeUnit}_${t}` : e.bin ? n.find((i) => i.startsWith("bin") && i.includes(t) && !i.endsWith("_end")) ?? t : t;
542
542
  }
543
- function Cn(e, t, n) {
543
+ function Ln(e, t, n) {
544
544
  if (!t) return t;
545
545
  const i = (r) => {
546
546
  if (!r || typeof r != "object") return r;
@@ -550,24 +550,24 @@ function Cn(e, t, n) {
550
550
  if (!("field" in r)) return r;
551
551
  const a = St(e, r.field);
552
552
  if (!a) return r;
553
- const l = On(a, r.field, n), s = l === r.field ? { ...r } : { ...r, field: l };
553
+ const l = In(a, r.field, n), s = l === r.field ? { ...r } : { ...r, field: l };
554
554
  return a.type === "temporal" && ("equal" in s && (s.equal = Ze(s.equal)), "range" in s && Array.isArray(s.range) && (s.range = s.range.map(Ze))), s;
555
555
  };
556
556
  return i(t);
557
557
  }
558
- var Rn = /* @__PURE__ */ A("<div class=uw-vl-container>");
559
- function Vn(e) {
560
- const [t, n] = se(), [i, r] = R(!1), [a, l] = R(null), [s, o] = R(null), f = en((u) => {
558
+ var jn = /* @__PURE__ */ A("<div class=uw-vl-container>");
559
+ function qn(e) {
560
+ const [t, n] = se(), [i, r] = V(!1), [a, l] = V(null), [s, o] = V(null), f = en((u) => {
561
561
  if (i()) {
562
- const c = Yt(u);
562
+ const c = Wt(u);
563
563
  n.setSelection({
564
564
  source: "visualization",
565
565
  predicate: c
566
566
  });
567
567
  }
568
568
  }, 250), d = k(() => {
569
- const u = xe(e.spec, e.data);
570
- return u ? Sn(u) : [];
569
+ const u = _e(e.spec, e.data);
570
+ return u ? Un(u) : [];
571
571
  });
572
572
  return P(() => {
573
573
  const u = t(), c = a();
@@ -576,14 +576,14 @@ function Vn(e) {
576
576
  return;
577
577
  }
578
578
  if (c && (u.source === "sonification" || u.source === "text-navigation")) {
579
- const p = u.source === "sonification" ? Cn(e.spec, u.predicate, d()) : u.predicate, m = Xt(p);
579
+ const p = u.source === "sonification" ? Ln(e.spec, u.predicate, d()) : u.predicate, m = Yt(p);
580
580
  c.data(Ge, m ? [m] : []).run();
581
581
  }
582
582
  }), P(() => {
583
- const u = xe(e.spec, e.data), c = s();
583
+ const u = _e(e.spec, e.data), c = s();
584
584
  if (u && c)
585
585
  try {
586
- const p = Nn(u, c);
586
+ const p = Rn(u, c);
587
587
  p.addDataListener("brush_store", (m, y) => {
588
588
  f(y);
589
589
  }), l(p);
@@ -596,19 +596,19 @@ function Vn(e) {
596
596
  p && (p.innerHTML = "");
597
597
  });
598
598
  }), (() => {
599
- var u = Rn();
599
+ var u = jn();
600
600
  return u.addEventListener("mouseleave", () => r(!1)), u.addEventListener("mouseenter", () => r(!0)), Ne(o, u), u;
601
601
  })();
602
602
  }
603
- var In = /* @__PURE__ */ A("<div class=uw-olli-container>");
604
- function Ln(e) {
605
- const [t, n] = se(), [i, r] = R(null), [a, l] = R(null);
603
+ var Mn = /* @__PURE__ */ A("<div class=uw-olli-container>");
604
+ function Bn(e) {
605
+ const [t, n] = se(), [i, r] = V(null), [a, l] = V(null);
606
606
  let s = !1;
607
607
  return P(() => {
608
608
  let o = !1;
609
609
  H(() => {
610
610
  o = !0;
611
- }), kn(e.spec, e.data).then((f) => {
611
+ }), Fn(e.spec, e.data).then((f) => {
612
612
  const d = i();
613
613
  if (o || !f || !d) return;
614
614
  a()?.destroy(), d.innerHTML = "";
@@ -640,12 +640,12 @@ function Ln(e) {
640
640
  }), H(() => {
641
641
  a()?.destroy();
642
642
  }), (() => {
643
- var o = In();
643
+ var o = Mn();
644
644
  return Ne(r, o), o;
645
645
  })();
646
646
  }
647
- const bt = Y();
648
- function jn(e) {
647
+ const bt = W();
648
+ function zn(e) {
649
649
  const [t] = se(), n = () => ({
650
650
  activeUnitName: void 0,
651
651
  selection: void 0
@@ -677,23 +677,23 @@ function jn(e) {
677
677
  });
678
678
  }
679
679
  function be() {
680
- const e = X(bt);
680
+ const e = Y(bt);
681
681
  if (e === void 0)
682
682
  throw new Error("useSonificationRuntime must be used within a SonificationRuntimeProvider");
683
683
  return e;
684
684
  }
685
- const B = (e, t) => Array.isArray(e) ? e.length === 2 && (t.type === "quantitative" || t.type === "temporal") ? e.map((n) => B(n, t)).join("–") : Pe(e.map((n) => B(n, t))) : nn(e, t), qn = "umwelt", Mn = 1, Bn = {
685
+ const B = (e, t) => Array.isArray(e) ? e.length === 2 && (t.type === "quantitative" || t.type === "temporal") ? e.map((n) => B(n, t)).join("–") : Pe(e.map((n) => B(n, t))) : nn(e, t), Gn = "umwelt", Kn = 1, Hn = {
686
686
  muted: !1,
687
687
  speakAxisTicks: !0,
688
688
  speechRate: 50,
689
689
  playbackRate: 1
690
- }, wt = () => new rn(qn, Mn), Et = () => wt().read(), de = (e) => {
691
- const t = Et() ?? Bn;
690
+ }, wt = () => new rn(Gn, Kn), Et = () => wt().read(), de = (e) => {
691
+ const t = Et() ?? Hn;
692
692
  wt().write({
693
693
  ...t,
694
694
  ...e
695
695
  });
696
- }, Qe = (e, t, n) => Math.min(Math.max(e, t), n), zn = {
696
+ }, Qe = (e, t, n) => Math.min(Math.max(e, t), n), Xn = {
697
697
  // clean triangle beep — the historical default; most pitch-legible source
698
698
  pure: {
699
699
  create: () => new $.Synth({
@@ -810,10 +810,10 @@ const B = (e, t) => Array.isArray(e) ? e.length === 2 && (t.type === "quantitati
810
810
  }),
811
811
  gainTrim: -7
812
812
  }
813
- }, et = ["pure", "bell", "bright", "reed", "hollow", "strings"], Gn = (e) => et[e % et.length], ke = "default", ne = 0.1;
813
+ }, et = ["pure", "bell", "bright", "reed", "hollow", "strings"], Jn = (e) => et[e % et.length], ke = "default", ne = 0.1;
814
814
  let M = null;
815
- const ae = 120, Ut = Y();
816
- function Kn(e) {
815
+ const ae = 120, Ut = W();
816
+ function Wn(e) {
817
817
  const t = /* @__PURE__ */ new Map(), n = {
818
818
  attack: 0.01,
819
819
  decay: 0,
@@ -824,15 +824,15 @@ function Kn(e) {
824
824
  }, r = (c, p) => {
825
825
  let m = t.get(c);
826
826
  if (m && p !== void 0 && m.instrument !== p && (i(m), t.delete(c), m = void 0), !m) {
827
- const y = p ?? "pure", w = zn[y], O = new $.Panner(0).toDestination(), V = w.create().connect(O), C = new $.NoiseSynth({
827
+ const y = p ?? "pure", w = Xn[y], O = new $.Panner(0).toDestination(), C = w.create().connect(O), R = new $.NoiseSynth({
828
828
  noise: {
829
829
  type: "pink"
830
830
  },
831
831
  envelope: n
832
832
  }), T = new $.Gain(0.3);
833
- C.connect(T), T.connect(O), m = {
834
- synth: V,
835
- noiseSynth: C,
833
+ R.connect(T), T.connect(O), m = {
834
+ synth: C,
835
+ noiseSynth: R,
836
836
  noiseGain: T,
837
837
  panner: O,
838
838
  instrument: y,
@@ -964,12 +964,12 @@ function Kn(e) {
964
964
  });
965
965
  }
966
966
  function Z() {
967
- const e = X(Ut);
967
+ const e = Y(Ut);
968
968
  if (e === void 0)
969
969
  throw new Error("useSonificationRuntime must be used within a SonificationRuntimeProvider");
970
970
  return e;
971
971
  }
972
- const At = Y(), Hn = {
972
+ const At = W(), Yn = {
973
973
  pitch: [48, 84],
974
974
  // in MIDI. Three octaves from C3 to C6
975
975
  duration: [0.25, 1],
@@ -990,7 +990,7 @@ const At = Y(), Hn = {
990
990
  pan: 0
991
991
  // center
992
992
  };
993
- function Jn(e, t, n) {
993
+ function Zn(e, t, n) {
994
994
  if (t.length === e.length) {
995
995
  const a = on().domain(e).range(t);
996
996
  return (l) => a(l);
@@ -1007,10 +1007,10 @@ function fe(e, t, n, i) {
1007
1007
  const a = D(e, r.field);
1008
1008
  if (!a)
1009
1009
  return console.warn(`Field ${r.field} not found in spec`), () => tt[i];
1010
- const l = _(a, r);
1010
+ const l = x(a, r);
1011
1011
  let s = l.scale?.domain;
1012
1012
  if (!s) {
1013
- const f = l.aggregate === "count" || l.aggregate === "sum", d = Re(e, n), u = f ? Oe(t, d, Ve(e, t, t, d)) : t;
1013
+ const f = l.aggregate === "count" || l.aggregate === "sum", d = Ve(e, n), u = f ? Oe(t, d, Ce(e, t, t, d)) : t;
1014
1014
  switch (a.type) {
1015
1015
  case "ordinal":
1016
1016
  case "nominal":
@@ -1024,11 +1024,11 @@ function fe(e, t, n, i) {
1024
1024
  throw new Error(`Unsupported field type ${l.type}`);
1025
1025
  }
1026
1026
  }
1027
- const o = l.scale?.range || Hn[i];
1027
+ const o = l.scale?.range || Yn[i];
1028
1028
  switch (l.type) {
1029
1029
  case "ordinal":
1030
1030
  case "nominal":
1031
- return Jn(s, o, i);
1031
+ return Zn(s, o, i);
1032
1032
  case "quantitative":
1033
1033
  return sn().domain(s).range(o);
1034
1034
  case "temporal":
@@ -1048,7 +1048,7 @@ function Dt(e, t, n) {
1048
1048
  function $t(e, t, n) {
1049
1049
  return yt(e, t, n) ?? [];
1050
1050
  }
1051
- function Wn(e) {
1051
+ function Qn(e) {
1052
1052
  const t = (r) => $t(e.spec, e.data, r.field), n = Dt(e.spec, e.data, e.audioUnitSpec), i = {
1053
1053
  getAxisTicks: t
1054
1054
  };
@@ -1059,8 +1059,8 @@ function Wn(e) {
1059
1059
  }
1060
1060
  });
1061
1061
  }
1062
- function Yn() {
1063
- const e = X(At);
1062
+ function ei() {
1063
+ const e = Y(At);
1064
1064
  if (e === void 0)
1065
1065
  throw new Error("useSonificationRuntime must be used within a SonificationRuntimeProvider");
1066
1066
  return e;
@@ -1081,12 +1081,12 @@ function me(e, t, n, i, r) {
1081
1081
  const a = D(t, n.field);
1082
1082
  if (!a)
1083
1083
  return nt[e];
1084
- const l = _(a, n), s = Se(l);
1084
+ const l = x(a, n), s = Se(l);
1085
1085
  return i(r[0][s]);
1086
1086
  }
1087
1087
  const Le = (e, t) => e.audioUnitSpec.traversal.find((n) => n.field === t);
1088
1088
  function we(e, t, n) {
1089
- const i = D(e.spec, t), r = _(i, Le(e, t)), a = e.fieldDomains[t];
1089
+ const i = D(e.spec, t), r = x(i, Le(e, t)), a = e.fieldDomains[t];
1090
1090
  if (r.bin && !r.aggregate) {
1091
1091
  const [l, s] = mt(r), o = a[n], f = e.derivedData.find((d) => d[l] === o)?.[s] ?? null;
1092
1092
  return [o, f];
@@ -1109,13 +1109,13 @@ function Tt(e, t) {
1109
1109
  })
1110
1110
  };
1111
1111
  }
1112
- function _e(e, t) {
1112
+ function xe(e, t) {
1113
1113
  const n = {
1114
1114
  and: Object.entries(t).map(([i, r]) => {
1115
1115
  const a = e.fieldDomains[i][r], l = D(e.spec, i);
1116
1116
  if (!l)
1117
1117
  return { field: i, equal: a };
1118
- const s = _(l, Le(e, i));
1118
+ const s = x(l, Le(e, i));
1119
1119
  return {
1120
1120
  field: Se(s),
1121
1121
  equal: Ht(a, l)
@@ -1124,7 +1124,7 @@ function _e(e, t) {
1124
1124
  };
1125
1125
  return Ie(e.derivedData, n);
1126
1126
  }
1127
- function Xn(e, t) {
1127
+ function ti(e, t) {
1128
1128
  const n = e.audioUnitSpec.encoding;
1129
1129
  return {
1130
1130
  pitch: t.length ? me("pitch", e.spec, n.pitch, e.scales.pitch, t) : void 0,
@@ -1133,7 +1133,7 @@ function Xn(e, t) {
1133
1133
  pan: me("pan", e.spec, n.pan, e.scales.pan, t)
1134
1134
  };
1135
1135
  }
1136
- function Zn(e, t) {
1136
+ function ni(e, t) {
1137
1137
  const n = Object.entries(t).map(([r, a]) => a === e.fieldDomains[r].length - 1 ? 1 : 0).reverse();
1138
1138
  let i = 0;
1139
1139
  for (let r of n)
@@ -1142,13 +1142,13 @@ function Zn(e, t) {
1142
1142
  else break;
1143
1143
  return i;
1144
1144
  }
1145
- function Qn(e) {
1145
+ function ii(e) {
1146
1146
  if (e.audioUnitSpec.traversal.length === 0)
1147
1147
  return !1;
1148
1148
  const t = e.audioUnitSpec.traversal[e.audioUnitSpec.traversal.length - 1].field, n = D(e.spec, t);
1149
1149
  return n?.type === "quantitative" || n?.type === "temporal";
1150
1150
  }
1151
- function ei(e) {
1151
+ function ri(e) {
1152
1152
  const t = e.audioUnitSpec.traversal.map((r) => r.field), n = t.map((r) => Array.from({ length: e.fieldDomains[r].length }, (a, l) => l));
1153
1153
  return ln(n).map((r) => {
1154
1154
  const a = {};
@@ -1157,12 +1157,12 @@ function ei(e) {
1157
1157
  }), a;
1158
1158
  });
1159
1159
  }
1160
- function ti(e, t, n, i) {
1160
+ function ai(e, t, n, i) {
1161
1161
  if (!n)
1162
1162
  return !0;
1163
1163
  if (i.bin || i.type === "nominal" || i.type === "ordinal")
1164
1164
  return t[i.field] !== n[i.field];
1165
- const r = e.axisTicks[i.field] ?? [], a = _e(e, t), l = _e(e, n);
1165
+ const r = e.axisTicks[i.field] ?? [], a = xe(e, t), l = xe(e, n);
1166
1166
  if (a.length && l.length) {
1167
1167
  const s = Se(i), o = a[0][s], f = l[0][s];
1168
1168
  if (o && f) {
@@ -1178,20 +1178,20 @@ function ti(e, t, n, i) {
1178
1178
  }
1179
1179
  return !1;
1180
1180
  }
1181
- function ni(e, t, n) {
1181
+ function si(e, t, n) {
1182
1182
  const i = [];
1183
1183
  return Object.entries(t).forEach(([r]) => {
1184
1184
  if (!e.fieldDomains[r].length) return;
1185
- const l = D(e.spec, r), s = _(l, Le(e, r));
1186
- ti(e, t, n, s) && i.push(B(we(e, r, t[r]), s));
1185
+ const l = D(e.spec, r), s = x(l, Le(e, r));
1186
+ ai(e, t, n, s) && i.push(B(we(e, r, t[r]), s));
1187
1187
  }), i.join(", ");
1188
1188
  }
1189
1189
  function kt(e) {
1190
1190
  let t = 0;
1191
- const n = [], i = ei(e), r = Qn(e);
1191
+ const n = [], i = ri(e), r = ii(e);
1192
1192
  let a;
1193
1193
  return i.forEach((l) => {
1194
- const s = _e(e, l), o = Xn(e, s), f = Zn(e, l), d = e.pauseBetweenSections * f;
1194
+ const s = xe(e, l), o = ti(e, s), f = ni(e, l), d = e.pauseBetweenSections * f;
1195
1195
  n.push({
1196
1196
  ...o,
1197
1197
  time: t,
@@ -1199,11 +1199,11 @@ function kt(e) {
1199
1199
  ramp: r,
1200
1200
  rest: s.length === 0,
1201
1201
  state: l,
1202
- speakBefore: ni(e, l, a)
1202
+ speakBefore: si(e, l, a)
1203
1203
  }), t += o.duration + d, a = l;
1204
1204
  }), n;
1205
1205
  }
1206
- function ii(e) {
1206
+ function oi(e) {
1207
1207
  if (!e.length) return [];
1208
1208
  const t = e[0].notes.length, n = [];
1209
1209
  let i = 0;
@@ -1221,39 +1221,39 @@ function ii(e) {
1221
1221
  }
1222
1222
  return n;
1223
1223
  }
1224
- function xt(e) {
1224
+ function _t(e) {
1225
1225
  return Pe(
1226
- Object.entries(e.audioUnitSpec.encoding).map(([t, n]) => n ? `${K(_(D(e.spec, n.field), n))} as ${t}` : "").filter((t) => t)
1226
+ Object.entries(e.audioUnitSpec.encoding).map(([t, n]) => n ? `${K(x(D(e.spec, n.field), n))} as ${t}` : "").filter((t) => t)
1227
1227
  );
1228
1228
  }
1229
- function _t(e) {
1229
+ function xt(e) {
1230
1230
  if (!e.audioUnitSpec.traversal.length)
1231
1231
  return "";
1232
- const t = e.audioUnitSpec.traversal[e.audioUnitSpec.traversal.length - 1], n = D(e.spec, t.field), i = _(n, t);
1232
+ const t = e.audioUnitSpec.traversal[e.audioUnitSpec.traversal.length - 1], n = D(e.spec, t.field), i = x(n, t);
1233
1233
  let r;
1234
- i.bin ? r = bn(i, e.derivedData) : r = e.fieldDomains[t.field];
1234
+ i.bin ? r = An(i, e.derivedData) : r = e.fieldDomains[t.field];
1235
1235
  let a = "";
1236
1236
  r.length > 1 ? a = `${K(i)} from ${B(r[0], i)} to ${B(r[r.length - 1], i)}` : r.length === 1 ? a = `${K(i)} equals ${B(r[0], i)}` : a = K(i);
1237
1237
  const l = e.audioUnitSpec.traversal.slice(0, -1).map((s) => {
1238
1238
  const o = D(e.spec, s.field);
1239
- return K(_(o, s));
1239
+ return K(x(o, s));
1240
1240
  });
1241
1241
  return l.length && (a += ` for each ${Pe(l)}`), a;
1242
1242
  }
1243
- const je = Y();
1244
- function ri(e) {
1245
- const [t, n] = se(), [i, r] = Yn(), [a, l] = be(), [s, o] = Z(), [f, d] = R(), u = () => {
1243
+ const je = W();
1244
+ function ci(e) {
1245
+ const [t, n] = se(), [i, r] = ei(), [a, l] = be(), [s, o] = Z(), [f, d] = V(), u = () => {
1246
1246
  const E = speechSynthesis.getVoices(), b = E.find((h) => h.name === "Samantha"), g = E.find((h) => h.localService && h.default), v = E.find((h) => h.default);
1247
1247
  d(b ?? g ?? v);
1248
1248
  };
1249
1249
  u(), speechSynthesis.addEventListener("voiceschanged", u), H(() => speechSynthesis.removeEventListener("voiceschanged", u));
1250
1250
  const c = () => ({
1251
1251
  traversalState: Object.fromEntries(e.audioUnitSpec.traversal.map((E) => [E.field, 0]))
1252
- }), [p, m] = ye(c()), y = () => e.audioUnitSpec.name, w = () => e.audioUnitSpec.instrument ?? "pure", O = k(() => Re(e.spec, e.audioUnitSpec)), V = k(() => a.selection ? Ie(e.data, a.selection) : e.data), C = k(() => Ve(e.spec, e.data, V(), O())), T = k(() => Oe(V(), O(), C())), z = k(() => Object.fromEntries(e.audioUnitSpec.traversal.map((E) => {
1253
- const b = D(e.spec, E.field), g = _(b, E), v = re(g, T(), !0);
1252
+ }), [p, m] = ye(c()), y = () => e.audioUnitSpec.name, w = () => e.audioUnitSpec.instrument ?? "pure", O = k(() => Ve(e.spec, e.audioUnitSpec)), C = k(() => a.selection ? Ie(e.data, a.selection) : e.data), R = k(() => Ce(e.spec, e.data, C(), O())), T = k(() => Oe(C(), O(), R())), z = k(() => Object.fromEntries(e.audioUnitSpec.traversal.map((E) => {
1253
+ const b = D(e.spec, E.field), g = x(b, E), v = re(g, T(), !0);
1254
1254
  return [E.field, v];
1255
1255
  }))), Ue = k(() => Object.fromEntries(e.audioUnitSpec.traversal.map((E) => {
1256
- const b = D(e.spec, E.field), g = _(b, E);
1256
+ const b = D(e.spec, E.field), g = x(b, E);
1257
1257
  return [E.field, r.getAxisTicks(g)];
1258
1258
  }))), q = k(() => ({
1259
1259
  spec: e.spec,
@@ -1340,8 +1340,8 @@ function ri(e) {
1340
1340
  E.every((v) => b[v] === z()[v].length - 1) && (m(c()), s.transport.seconds = 0);
1341
1341
  },
1342
1342
  getDomainValue: Ae,
1343
- describeEncodings: () => xt(q()),
1344
- describePlaybackOrder: () => _t(q())
1343
+ describeEncodings: () => _t(q()),
1344
+ describePlaybackOrder: () => xt(q())
1345
1345
  };
1346
1346
  return S(je.Provider, {
1347
1347
  value: [p, G],
@@ -1351,7 +1351,7 @@ function ri(e) {
1351
1351
  });
1352
1352
  }
1353
1353
  function Ee() {
1354
- const e = X(je);
1354
+ const e = Y(je);
1355
1355
  if (e === void 0)
1356
1356
  throw new Error("useAudioUnitState must be used within a AudioUnitStateProvider");
1357
1357
  return e;
@@ -1427,29 +1427,29 @@ N("div")`
1427
1427
  align-items: center;
1428
1428
  gap: 8px;
1429
1429
  `;
1430
- var ai = /* @__PURE__ */ A("<select>"), si = /* @__PURE__ */ A("<div><input aria-live=assertive type=range min=0><span>"), oi = /* @__PURE__ */ A("<label><span>"), ci = /* @__PURE__ */ A("<option>");
1430
+ var li = /* @__PURE__ */ A("<select>"), ui = /* @__PURE__ */ A("<div><input aria-live=assertive type=range min=0><span>"), di = /* @__PURE__ */ A("<label><span>"), fi = /* @__PURE__ */ A("<option>");
1431
1431
  function Pt(e) {
1432
- const [t, n] = Ee(), [i, r] = Z(), a = () => D(e.spec, e.traversalFieldDef.field), l = () => _(a(), e.traversalFieldDef), s = () => n.getTraversalIndex(e.traversalFieldDef.field), o = (u) => {
1432
+ const [t, n] = Ee(), [i, r] = Z(), a = () => D(e.spec, e.traversalFieldDef.field), l = () => x(a(), e.traversalFieldDef), s = () => n.getTraversalIndex(e.traversalFieldDef.field), o = (u) => {
1433
1433
  r.startAudioContext(), n.setTraversalIndex(e.traversalFieldDef.field, u);
1434
1434
  }, f = () => n.getFieldDomains()[e.traversalFieldDef.field], d = () => n.getDomainValue(e.traversalFieldDef.field, s());
1435
1435
  return S(Nt, {
1436
1436
  get children() {
1437
- var u = oi(), c = u.firstChild;
1438
- return x(c, () => K(l())), x(u, S(Lt, {
1437
+ var u = di(), c = u.firstChild;
1438
+ return _(c, () => K(l())), _(u, S(Lt, {
1439
1439
  get children() {
1440
1440
  return [S(Be, {
1441
1441
  get when() {
1442
1442
  return l().type === "nominal";
1443
1443
  },
1444
1444
  get children() {
1445
- var p = ai();
1446
- return p.$$mousedown = () => r.stopTransport(), p.addEventListener("change", (m) => o(m.target.selectedIndex)), x(p, S(ie, {
1445
+ var p = li();
1446
+ return p.$$mousedown = () => r.stopTransport(), p.addEventListener("change", (m) => o(m.target.selectedIndex)), _(p, S(ie, {
1447
1447
  get each() {
1448
1448
  return f();
1449
1449
  },
1450
1450
  children: (m) => (() => {
1451
- var y = ci();
1452
- return x(y, () => String(m)), L(() => y.value = String(m)), y;
1451
+ var y = fi();
1452
+ return _(y, () => String(m)), L(() => y.value = String(m)), y;
1453
1453
  })()
1454
1454
  })), L(() => p.value = String(d())), p;
1455
1455
  }
@@ -1458,10 +1458,10 @@ function Pt(e) {
1458
1458
  return l().type !== "nominal";
1459
1459
  },
1460
1460
  get children() {
1461
- var p = si(), m = p.firstChild, y = m.nextSibling;
1462
- return m.$$mousedown = () => r.stopTransport(), m.$$input = (w) => o(w.currentTarget.valueAsNumber), x(y, () => B(d(), l())), L((w) => {
1463
- var O = B(d(), l()), V = f().length - 1;
1464
- return O !== w.e && Me(m, "aria-valuetext", w.e = O), V !== w.t && Me(m, "max", w.t = V), w;
1461
+ var p = ui(), m = p.firstChild, y = m.nextSibling;
1462
+ return m.$$mousedown = () => r.stopTransport(), m.$$input = (w) => o(w.currentTarget.valueAsNumber), _(y, () => B(d(), l())), L((w) => {
1463
+ var O = B(d(), l()), C = f().length - 1;
1464
+ return O !== w.e && Me(m, "aria-valuetext", w.e = O), C !== w.t && Me(m, "max", w.t = C), w;
1465
1465
  }, {
1466
1466
  e: void 0,
1467
1467
  t: void 0
@@ -1474,7 +1474,7 @@ function Pt(e) {
1474
1474
  });
1475
1475
  }
1476
1476
  at(["mousedown", "input"]);
1477
- var li = /* @__PURE__ */ A("<button>Pause"), ui = /* @__PURE__ */ A("<div>"), di = /* @__PURE__ */ A("<button>Play");
1477
+ var mi = /* @__PURE__ */ A("<button>Pause"), pi = /* @__PURE__ */ A("<div>"), gi = /* @__PURE__ */ A("<button>Play");
1478
1478
  function Ot(e) {
1479
1479
  const [t, n] = Ee(), [i, r] = Z(), [a, l] = be();
1480
1480
  function s() {
@@ -1483,32 +1483,32 @@ function Ot(e) {
1483
1483
  return jt(() => l.registerPlayCallback(s)), P(() => {
1484
1484
  a.activeUnitName === e.unitName && l.registerPlayCallback(s, !0);
1485
1485
  }), (() => {
1486
- var o = ui();
1487
- return x(o, S(st, {
1486
+ var o = pi();
1487
+ return _(o, S(st, {
1488
1488
  get when() {
1489
1489
  return pe(() => !!i.isPlaying)() && a.activeUnitName === e.unitName;
1490
1490
  },
1491
1491
  get fallback() {
1492
1492
  return (() => {
1493
- var f = di();
1493
+ var f = gi();
1494
1494
  return f.$$click = () => s(), f;
1495
1495
  })();
1496
1496
  },
1497
1497
  get children() {
1498
- var f = li();
1498
+ var f = mi();
1499
1499
  return f.$$click = () => r.stopTransport(), f;
1500
1500
  }
1501
1501
  })), o;
1502
1502
  })();
1503
1503
  }
1504
1504
  at(["click"]);
1505
- var fi = /* @__PURE__ */ A("<label> <input readonly>"), mi = /* @__PURE__ */ A("<p><br>playing ");
1506
- const pi = N.div`
1505
+ var vi = /* @__PURE__ */ A("<label> <input readonly>"), hi = /* @__PURE__ */ A("<p><br>playing ");
1506
+ const yi = N.div`
1507
1507
  margin-bottom: 1em;
1508
1508
  `;
1509
- function gi(e) {
1509
+ function Si(e) {
1510
1510
  function t() {
1511
- return S(pi, {
1511
+ return S(yi, {
1512
1512
  get children() {
1513
1513
  return S(ie, {
1514
1514
  get each() {
@@ -1518,11 +1518,11 @@ function gi(e) {
1518
1518
  if (r) {
1519
1519
  const a = D(e.spec, r.field);
1520
1520
  if (a) {
1521
- const l = _(a, r);
1521
+ const l = x(a, r);
1522
1522
  return S(Nt, {
1523
1523
  get children() {
1524
- var s = fi(), o = s.firstChild, f = o.nextSibling;
1525
- return x(s, i, o), L(() => f.value = K(l)), s;
1524
+ var s = vi(), o = s.firstChild, f = o.nextSibling;
1525
+ return _(s, i, o), L(() => f.value = K(l)), s;
1526
1526
  }
1527
1527
  });
1528
1528
  }
@@ -1535,13 +1535,13 @@ function gi(e) {
1535
1535
  function n() {
1536
1536
  const [i, r] = Ee();
1537
1537
  return (() => {
1538
- var a = mi(), l = a.firstChild;
1539
- return l.nextSibling, x(a, () => r.describeEncodings(), l), x(a, () => r.describePlaybackOrder(), null), a;
1538
+ var a = hi(), l = a.firstChild;
1539
+ return l.nextSibling, _(a, () => r.describeEncodings(), l), _(a, () => r.describePlaybackOrder(), null), a;
1540
1540
  })();
1541
1541
  }
1542
1542
  return Object.keys(e.audioUnitSpec.encoding).length === 0 ? null : S(Ft, {
1543
1543
  get children() {
1544
- return S(Wn, {
1544
+ return S(Qn, {
1545
1545
  get spec() {
1546
1546
  return e.spec;
1547
1547
  },
@@ -1552,7 +1552,7 @@ function gi(e) {
1552
1552
  return e.audioUnitSpec;
1553
1553
  },
1554
1554
  get children() {
1555
- return S(ri, {
1555
+ return S(ci, {
1556
1556
  get spec() {
1557
1557
  return e.spec;
1558
1558
  },
@@ -1585,8 +1585,8 @@ function gi(e) {
1585
1585
  }
1586
1586
  });
1587
1587
  }
1588
- function vi(e) {
1589
- const [t, n] = se(), [i, r] = be(), [a, l] = Z(), [s, o] = R(), f = () => {
1588
+ function bi(e) {
1589
+ const [t, n] = se(), [i, r] = be(), [a, l] = Z(), [s, o] = V(), f = () => {
1590
1590
  const g = speechSynthesis.getVoices(), v = g.find((F) => F.name === "Samantha"), h = g.find((F) => F.localService && F.default), U = g.find((F) => F.default);
1591
1591
  o(v ?? h ?? U);
1592
1592
  };
@@ -1596,7 +1596,7 @@ function vi(e) {
1596
1596
  }), [p, m] = ye(c()), y = k(() => {
1597
1597
  const g = i.selection;
1598
1598
  return e.units.map((v) => {
1599
- const h = Re(e.spec, v), U = g ? Ie(e.data, g) : e.data, F = Ve(e.spec, e.data, U, h), I = Oe(U, h, F), ee = Dt(e.spec, e.data, v);
1599
+ const h = Ve(e.spec, v), U = g ? Ie(e.data, g) : e.data, F = Ce(e.spec, e.data, U, h), I = Oe(U, h, F), ee = Dt(e.spec, e.data, v);
1600
1600
  return {
1601
1601
  unit: v,
1602
1602
  derivedData: I,
@@ -1606,10 +1606,10 @@ function vi(e) {
1606
1606
  }), w = k(() => {
1607
1607
  const g = y().flatMap((v) => v.derivedData);
1608
1608
  return Object.fromEntries(u().map((v) => {
1609
- const h = D(e.spec, v.field), U = _(h, v);
1609
+ const h = D(e.spec, v.field), U = x(h, v);
1610
1610
  return [v.field, re(U, g, !0)];
1611
1611
  }));
1612
- }), O = k(() => Object.fromEntries(u().map((g) => [g.field, $t(e.spec, e.data, g.field)]))), V = (g, v, h) => ({
1612
+ }), O = k(() => Object.fromEntries(u().map((g) => [g.field, $t(e.spec, e.data, g.field)]))), C = (g, v, h) => ({
1613
1613
  spec: e.spec,
1614
1614
  audioUnitSpec: g,
1615
1615
  derivedData: v,
@@ -1617,17 +1617,17 @@ function vi(e) {
1617
1617
  axisTicks: O(),
1618
1618
  scales: h,
1619
1619
  pauseBetweenSections: a.pauseBetweenSections
1620
- }), C = k(() => {
1620
+ }), R = k(() => {
1621
1621
  const g = y()[0];
1622
- return V(g.unit, g.derivedData, g.scales);
1622
+ return C(g.unit, g.derivedData, g.scales);
1623
1623
  }), T = k(() => y().map((g, v) => ({
1624
1624
  voiceId: g.unit.name,
1625
- instrument: g.unit.instrument ?? Gn(v),
1626
- notes: kt(V(g.unit, g.derivedData, g.scales))
1627
- }))), z = k(() => ii(T().map((g) => ({
1625
+ instrument: g.unit.instrument ?? Jn(v),
1626
+ notes: kt(C(g.unit, g.derivedData, g.scales))
1627
+ }))), z = k(() => oi(T().map((g) => ({
1628
1628
  voiceId: g.voiceId,
1629
1629
  notes: g.notes
1630
- })))), Ue = (g) => z().find((v) => Object.entries(g).every(([h, U]) => v.state[h] === U)), q = k(() => Tt(C(), p.traversalState)), oe = () => w(), Ae = (g, v) => we(C(), g, v), Q = () => i.activeUnitName === e.groupName;
1630
+ })))), Ue = (g) => z().find((v) => Object.entries(g).every(([h, U]) => v.state[h] === U)), q = k(() => Tt(R(), p.traversalState)), oe = () => w(), Ae = (g, v) => we(R(), g, v), Q = () => i.activeUnitName === e.groupName;
1631
1631
  P(() => {
1632
1632
  a.isPlaying && n.setSelection({
1633
1633
  source: "sonification",
@@ -1644,7 +1644,7 @@ function vi(e) {
1644
1644
  return Object.entries(v).forEach(([I, ee]) => {
1645
1645
  const te = h[I], ue = (g?.[I] ?? ee)[te];
1646
1646
  if (ue !== void 0) {
1647
- const De = ee.findIndex((Rt) => Rt === ue);
1647
+ const De = ee.findIndex((Vt) => Vt === ue);
1648
1648
  De !== te && (F[I] = De !== -1 ? De : 0, U = !0);
1649
1649
  }
1650
1650
  }), U && (m((I) => ({
@@ -1684,7 +1684,7 @@ function vi(e) {
1684
1684
  },
1685
1685
  getTraversalIndex: (g) => p.traversalState[g],
1686
1686
  getFieldDomains: oe,
1687
- getDerivedData: () => C().derivedData,
1687
+ getDerivedData: () => R().derivedData,
1688
1688
  getDomainValue: Ae,
1689
1689
  setupTransportSequence: () => {
1690
1690
  a.transport.cancel(), a.transport.bpm.value = ae, ce();
@@ -1712,8 +1712,8 @@ function vi(e) {
1712
1712
  const g = w();
1713
1713
  u().every((h) => p.traversalState[h.field] === g[h.field].length - 1) && (m(c()), a.transport.seconds = 0);
1714
1714
  },
1715
- describeEncodings: () => e.units.map((g, v) => `layer ${v + 1}: ${xt(V(g, y()[v].derivedData, y()[v].scales))}`).join("; "),
1716
- describePlaybackOrder: () => _t(C())
1715
+ describeEncodings: () => e.units.map((g, v) => `layer ${v + 1}: ${_t(C(g, y()[v].derivedData, y()[v].scales))}`).join("; "),
1716
+ describePlaybackOrder: () => xt(R())
1717
1717
  };
1718
1718
  return S(je.Provider, {
1719
1719
  value: [p, b],
@@ -1722,23 +1722,23 @@ function vi(e) {
1722
1722
  }
1723
1723
  });
1724
1724
  }
1725
- var hi = /* @__PURE__ */ A("<p><br>playing ");
1725
+ var wi = /* @__PURE__ */ A("<p><br>playing ");
1726
1726
  const it = "layer-group";
1727
- function yi() {
1727
+ function Ei() {
1728
1728
  const [e, t] = Ee();
1729
1729
  return (() => {
1730
- var n = hi(), i = n.firstChild;
1731
- return i.nextSibling, x(n, () => t.describeEncodings(), i), x(n, () => t.describePlaybackOrder(), null), n;
1730
+ var n = wi(), i = n.firstChild;
1731
+ return i.nextSibling, _(n, () => t.describeEncodings(), i), _(n, () => t.describePlaybackOrder(), null), n;
1732
1732
  })();
1733
1733
  }
1734
- function Si(e) {
1734
+ function Ui(e) {
1735
1735
  const t = () => e.units.filter((i) => Object.keys(i.encoding).length > 0);
1736
1736
  if (t().length === 0)
1737
1737
  return null;
1738
1738
  const n = () => t()[0].traversal;
1739
1739
  return S(Ft, {
1740
1740
  get children() {
1741
- return S(vi, {
1741
+ return S(bi, {
1742
1742
  get spec() {
1743
1743
  return e.spec;
1744
1744
  },
@@ -1750,7 +1750,7 @@ function Si(e) {
1750
1750
  },
1751
1751
  groupName: it,
1752
1752
  get children() {
1753
- return [S(yi, {}), S(ie, {
1753
+ return [S(Ei, {}), S(ie, {
1754
1754
  get each() {
1755
1755
  return n();
1756
1756
  },
@@ -1768,46 +1768,46 @@ function Si(e) {
1768
1768
  }
1769
1769
  });
1770
1770
  }
1771
- var bi = /* @__PURE__ */ A("<div><label>Playback rate <input type=number min=0.1 max=4 step=0.1 id=rate>x"), wi = /* @__PURE__ */ A("<label><input type=checkbox>Speak axis ticks"), Ei = /* @__PURE__ */ A("<label><input type=number min=1 max=100 step=10 id=speechRate>speech rate"), Ui = /* @__PURE__ */ A("<div><label><input type=checkbox aria-live=polite>");
1772
- const Ai = N.div`
1771
+ var Ai = /* @__PURE__ */ A("<div><label>Playback rate <input type=number min=0.1 max=4 step=0.1 id=rate>x"), Di = /* @__PURE__ */ A("<label><input type=checkbox>Speak axis ticks"), $i = /* @__PURE__ */ A("<label><input type=number min=1 max=100 step=10 id=speechRate>speech rate"), Ti = /* @__PURE__ */ A("<div><label><input type=checkbox aria-live=polite>");
1772
+ const ki = N.div`
1773
1773
  margin-top: 1rem;
1774
- `, Di = N.div`
1774
+ `, _i = N.div`
1775
1775
  display: flex;
1776
1776
  gap: 3px;
1777
1777
  `;
1778
- function $i(e) {
1778
+ function xi(e) {
1779
1779
  const [t, n] = Z();
1780
- return S(Ai, {
1780
+ return S(ki, {
1781
1781
  get children() {
1782
1782
  return [(() => {
1783
- var i = bi(), r = i.firstChild, a = r.firstChild, l = a.nextSibling;
1783
+ var i = Ai(), r = i.firstChild, a = r.firstChild, l = a.nextSibling;
1784
1784
  return l.addEventListener("change", (s) => n.setPlaybackRate(Number(s.target.value))), L(() => l.value = t.playbackRate), i;
1785
- })(), S(Di, {
1785
+ })(), S(_i, {
1786
1786
  get children() {
1787
1787
  return [(() => {
1788
- var i = wi(), r = i.firstChild;
1788
+ var i = Di(), r = i.firstChild;
1789
1789
  return r.addEventListener("change", (a) => n.setSpeakAxisTicks(a.target.checked)), L(() => r.checked = t.speakAxisTicks), i;
1790
1790
  })(), (() => {
1791
- var i = Ei(), r = i.firstChild;
1791
+ var i = $i(), r = i.firstChild;
1792
1792
  return r.addEventListener("change", (a) => n.setSpeechRate(Number(a.target.value))), L(() => r.value = t.speechRate), i;
1793
1793
  })()];
1794
1794
  }
1795
1795
  }), (() => {
1796
- var i = Ui(), r = i.firstChild, a = r.firstChild;
1797
- return a.addEventListener("change", (l) => n.setMuted(l.target.checked)), x(r, () => t.muted ? "Muted" : "Unmuted", null), L(() => a.checked = t.muted), i;
1796
+ var i = Ti(), r = i.firstChild, a = r.firstChild;
1797
+ return a.addEventListener("change", (l) => n.setMuted(l.target.checked)), _(r, () => t.muted ? "Muted" : "Unmuted", null), L(() => a.checked = t.muted), i;
1798
1798
  })()];
1799
1799
  }
1800
1800
  });
1801
1801
  }
1802
- function Ti() {
1802
+ function Ni() {
1803
1803
  const e = document.activeElement;
1804
1804
  if (!e) return !1;
1805
1805
  const t = e.tagName.toLowerCase();
1806
1806
  return t === "input" || t === "select" || t === "textarea" || e.isContentEditable;
1807
1807
  }
1808
- function ki(e, t) {
1808
+ function Fi(e, t) {
1809
1809
  const n = (i) => {
1810
- if (Ti()) return;
1810
+ if (Ni()) return;
1811
1811
  const r = e[i.key];
1812
1812
  r && (i.preventDefault(), r());
1813
1813
  };
@@ -1816,21 +1816,21 @@ function ki(e, t) {
1816
1816
  i && (i.addEventListener("keydown", n), H(() => i.removeEventListener("keydown", n)));
1817
1817
  });
1818
1818
  }
1819
- function xi(e) {
1819
+ function Pi(e) {
1820
1820
  const [t, n] = Z(), [i, r] = be();
1821
- return ki({
1821
+ return Fi({
1822
1822
  p: () => {
1823
1823
  t.isPlaying ? n.stopTransport() : r.triggerPlay();
1824
1824
  }
1825
1825
  }, e.target), null;
1826
1826
  }
1827
- function _i(e) {
1827
+ function Oi(e) {
1828
1828
  const t = () => e.spec.audio.composition === "layer" && e.spec.audio.units.length > 1;
1829
- return S(jn, {
1829
+ return S(zn, {
1830
1830
  get children() {
1831
- return S(Kn, {
1831
+ return S(Wn, {
1832
1832
  get children() {
1833
- return [S(xi, {
1833
+ return [S(Pi, {
1834
1834
  get target() {
1835
1835
  return e.keyEventTarget;
1836
1836
  }
@@ -1843,7 +1843,7 @@ function _i(e) {
1843
1843
  get each() {
1844
1844
  return e.spec.audio.units;
1845
1845
  },
1846
- children: (n) => S(gi, {
1846
+ children: (n) => S(Si, {
1847
1847
  get spec() {
1848
1848
  return e.spec;
1849
1849
  },
@@ -1855,7 +1855,7 @@ function _i(e) {
1855
1855
  });
1856
1856
  },
1857
1857
  get children() {
1858
- return S(Si, {
1858
+ return S(Ui, {
1859
1859
  get spec() {
1860
1860
  return e.spec;
1861
1861
  },
@@ -1867,34 +1867,34 @@ function _i(e) {
1867
1867
  }
1868
1868
  });
1869
1869
  }
1870
- }), S($i, {})];
1870
+ }), S(xi, {})];
1871
1871
  }
1872
1872
  });
1873
1873
  }
1874
1874
  });
1875
1875
  }
1876
- var Ni = /* @__PURE__ */ A("<h2>Visualization"), Fi = /* @__PURE__ */ A("<h2>Description"), Pi = /* @__PURE__ */ A("<h2>Sonification"), Oi = /* @__PURE__ */ A('<div><div class=uw-viewer role=region aria-label="Umwelt Viewer">');
1877
- function Ci(e) {
1878
- const [t, n] = R();
1876
+ var Ri = /* @__PURE__ */ A("<h2>Visualization"), Vi = /* @__PURE__ */ A("<h2>Description"), Ci = /* @__PURE__ */ A("<h2>Sonification"), Ii = /* @__PURE__ */ A('<div><div class=uw-viewer role=region aria-label="Umwelt Viewer">');
1877
+ function Li(e) {
1878
+ const [t, n] = V();
1879
1879
  return (() => {
1880
- var i = Oi(), r = i.firstChild;
1881
- return Ne(n, r), x(r, S(Fn, {
1880
+ var i = Ii(), r = i.firstChild;
1881
+ return Ne(n, r), _(r, S(Vn, {
1882
1882
  get children() {
1883
- return [Ni(), S(Vn, {
1883
+ return [Ri(), S(qn, {
1884
1884
  get spec() {
1885
1885
  return e.spec;
1886
1886
  },
1887
1887
  get data() {
1888
1888
  return e.data;
1889
1889
  }
1890
- }), Fi(), S(Ln, {
1890
+ }), Vi(), S(Bn, {
1891
1891
  get spec() {
1892
1892
  return e.spec;
1893
1893
  },
1894
1894
  get data() {
1895
1895
  return e.data;
1896
1896
  }
1897
- }), Pi(), S(_i, {
1897
+ }), Ci(), S(Oi, {
1898
1898
  get spec() {
1899
1899
  return e.spec;
1900
1900
  },
@@ -1904,11 +1904,11 @@ function Ci(e) {
1904
1904
  keyEventTarget: t
1905
1905
  })];
1906
1906
  }
1907
- })), L(() => Vt(i, dn.Viewer)), i;
1907
+ })), L(() => Ct(i, dn.Viewer)), i;
1908
1908
  })();
1909
1909
  }
1910
1910
  function rt(e, t, n = localStorage) {
1911
- const i = n.getItem(e) ? JSON.parse(n.getItem(e)) : t, [r, a] = R(i);
1911
+ const i = n.getItem(e) ? JSON.parse(n.getItem(e)) : t, [r, a] = V(i);
1912
1912
  return [r, ((s) => {
1913
1913
  if (s) {
1914
1914
  const o = a(s);
@@ -1916,9 +1916,9 @@ function rt(e, t, n = localStorage) {
1916
1916
  }
1917
1917
  })];
1918
1918
  }
1919
- const Ct = Y();
1920
- function Ri(e) {
1921
- const t = e.persist !== !1, [n, i] = t ? rt("umweltDatastore", {}) : R({}), [r, a] = t ? rt("umweltSessionDatastore", {}, sessionStorage) : R({}), l = () => ({
1919
+ const Rt = W();
1920
+ function ji(e) {
1921
+ const t = e.persist !== !1, [n, i] = t ? rt("umweltDatastore", {}) : V({}), [r, a] = t ? rt("umweltSessionDatastore", {}, sessionStorage) : V({}), l = () => ({
1922
1922
  ...n(),
1923
1923
  ...r()
1924
1924
  }), s = {
@@ -1954,22 +1954,22 @@ function Ri(e) {
1954
1954
  });
1955
1955
  }
1956
1956
  };
1957
- return S(Ct.Provider, {
1957
+ return S(Rt.Provider, {
1958
1958
  value: [l, s],
1959
1959
  get children() {
1960
1960
  return e.children;
1961
1961
  }
1962
1962
  });
1963
1963
  }
1964
- function Vi() {
1965
- const e = X(Ct);
1964
+ function qi() {
1965
+ const e = Y(Rt);
1966
1966
  if (e === void 0)
1967
1967
  throw new Error("useUmweltDatastore must be used within a UmweltDatastoreProvider");
1968
1968
  return e;
1969
1969
  }
1970
- var Ii = /* @__PURE__ */ A("<div>"), Li = /* @__PURE__ */ A("<div>Loading..."), ji = /* @__PURE__ */ A("<div role=alert>");
1971
- function qi(e) {
1972
- const [t, n] = Vi(), [i, r] = R(), [a, l] = R(!0), [s, o] = R(), f = () => {
1970
+ var Mi = /* @__PURE__ */ A("<div>"), Bi = /* @__PURE__ */ A("<div>Loading..."), zi = /* @__PURE__ */ A("<div role=alert>");
1971
+ function Gi(e) {
1972
+ const [t, n] = qi(), [i, r] = V(), [a, l] = V(!0), [s, o] = V(), f = () => {
1973
1973
  const d = i();
1974
1974
  return d ? t()[d.data.name]?.data || [] : [];
1975
1975
  };
@@ -1977,7 +1977,7 @@ function qi(e) {
1977
1977
  const d = e.exportableSpec;
1978
1978
  l(!0), o(void 0);
1979
1979
  try {
1980
- const u = await $n(d, t(), n.setDataset);
1980
+ const u = await xn(d, t(), n.setDataset);
1981
1981
  u ? r(u) : o("Failed to load Umwelt spec: the spec is invalid or its data source could not be resolved.");
1982
1982
  } catch (u) {
1983
1983
  console.error("Error loading spec:", u), o(`Failed to load Umwelt spec: ${u}`);
@@ -1985,19 +1985,19 @@ function qi(e) {
1985
1985
  l(!1);
1986
1986
  }
1987
1987
  }), (() => {
1988
- var d = Ii();
1989
- return x(d, (() => {
1988
+ var d = Mi();
1989
+ return _(d, (() => {
1990
1990
  var u = pe(() => !!a());
1991
- return () => u() && Li();
1992
- })(), null), x(d, (() => {
1991
+ return () => u() && Bi();
1992
+ })(), null), _(d, (() => {
1993
1993
  var u = pe(() => !!(!a() && s()));
1994
1994
  return () => u() && (() => {
1995
- var c = ji();
1996
- return x(c, s), c;
1995
+ var c = zi();
1996
+ return _(c, s), c;
1997
1997
  })();
1998
- })(), null), x(d, (() => {
1998
+ })(), null), _(d, (() => {
1999
1999
  var u = pe(() => !!(!a() && !s() && i()));
2000
- return () => u() && S(Ci, {
2000
+ return () => u() && S(Li, {
2001
2001
  get spec() {
2002
2002
  return i();
2003
2003
  },
@@ -2008,11 +2008,11 @@ function qi(e) {
2008
2008
  })(), null), d;
2009
2009
  })();
2010
2010
  }
2011
- function Mi(e) {
2012
- return S(Ri, {
2011
+ function Ki(e) {
2012
+ return S(ji, {
2013
2013
  persist: !1,
2014
2014
  get children() {
2015
- return S(qi, {
2015
+ return S(Gi, {
2016
2016
  get exportableSpec() {
2017
2017
  return e.exportableSpec;
2018
2018
  }
@@ -2020,7 +2020,7 @@ function Mi(e) {
2020
2020
  }
2021
2021
  });
2022
2022
  }
2023
- class Bi {
2023
+ class Hi {
2024
2024
  constructor(t) {
2025
2025
  this.options = t, this.mount();
2026
2026
  }
@@ -2029,7 +2029,7 @@ class Bi {
2029
2029
  mount() {
2030
2030
  if (this.isDestroyed)
2031
2031
  throw new Error("Cannot mount a destroyed UmweltViewer. Create a new instance.");
2032
- this.disposal = It(() => Mi({ exportableSpec: this.options.spec }), this.options.container);
2032
+ this.disposal = It(() => Ki({ exportableSpec: this.options.spec }), this.options.container);
2033
2033
  }
2034
2034
  /**
2035
2035
  * Update the viewer with a new specification.
@@ -2069,10 +2069,10 @@ class Bi {
2069
2069
  return this.isDestroyed;
2070
2070
  }
2071
2071
  }
2072
- function ur(e, t) {
2073
- return new Bi({ spec: e, container: t });
2072
+ function pr(e, t) {
2073
+ return new Hi({ spec: e, container: t });
2074
2074
  }
2075
2075
  export {
2076
- Bi as UmweltViewer,
2077
- ur as createViewer
2076
+ Hi as UmweltViewer,
2077
+ pr as createViewer
2078
2078
  };