@pie-players/pie-section-tools-toolbar 0.2.9 → 0.2.10

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.
@@ -0,0 +1,4181 @@
1
+ var ws = Object.defineProperty, sn = (e) => {
2
+ throw TypeError(e);
3
+ }, xs = (e, o, t) => o in e ? ws(e, o, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[o] = t, v = (e, o, t) => xs(e, typeof o != "symbol" ? o + "" : o, t), di = (e, o, t) => o.has(e) || sn("Cannot " + t), p = (e, o, t) => (di(e, o, "read from private field"), t ? t.call(e) : o.get(e)), x = (e, o, t) => o.has(e) ? sn("Cannot add the same private member more than once") : o instanceof WeakSet ? o.add(e) : o.set(e, t), b = (e, o, t, i) => (di(e, o, "write to private field"), o.set(e, t), t), Z = (e, o, t) => (di(e, o, "access private method"), t), Ni;
4
+ typeof window < "u" && ((Ni = window.__svelte ?? (window.__svelte = {})).v ?? (Ni.v = /* @__PURE__ */ new Set())).add("5");
5
+ const ks = 1, Ss = 2, ln = 4, Is = 8, $s = 16, Ts = 2, ui = "[", Tt = "[!", fi = "]", To = {}, W = /* @__PURE__ */ Symbol(), rn = "http://www.w3.org/1999/xhtml", Cs = !1;
6
+ var an = Array.isArray, As = Array.prototype.indexOf, Co = Array.prototype.includes, Ct = Array.from, wt = Object.keys, xt = Object.defineProperty, Io = Object.getOwnPropertyDescriptor, Ls = Object.getOwnPropertyDescriptors, zs = Object.prototype, js = Array.prototype, cn = Object.getPrototypeOf, Oi = Object.isExtensible;
7
+ const Es = () => {
8
+ };
9
+ function Ms(e) {
10
+ for (var o = 0; o < e.length; o++)
11
+ e[o]();
12
+ }
13
+ function pn() {
14
+ var e, o, t = new Promise((i, s) => {
15
+ e = i, o = s;
16
+ });
17
+ return { promise: t, resolve: e, reject: o };
18
+ }
19
+ const F = 2, Zo = 4, At = 8, dn = 1 << 24, De = 16, xe = 32, so = 64, Ut = 128, ae = 512, H = 1024, X = 2048, we = 4096, te = 8192, Be = 16384, Ro = 32768, Ao = 65536, Vi = 1 << 17, un = 1 << 18, wo = 1 << 19, Rs = 1 << 20, Pe = 1 << 25, go = 65536, Jt = 1 << 21, mi = 1 << 22, to = 1 << 23, mt = /* @__PURE__ */ Symbol("$state"), Ns = /* @__PURE__ */ Symbol("legacy props"), Os = /* @__PURE__ */ Symbol(""), uo = new class extends Error {
20
+ constructor() {
21
+ super(...arguments), v(this, "name", "StaleReactionError"), v(this, "message", "The reaction that called `getAbortSignal()` was re-run or destroyed");
22
+ }
23
+ }(), Vs = (
24
+ // We gotta write it like this because after downleveling the pure comment may end up in the wrong location
25
+ !!globalThis.document?.contentType && /* @__PURE__ */ globalThis.document.contentType.includes("xml")
26
+ ), et = 3, ot = 8;
27
+ function Ps(e) {
28
+ throw new Error("https://svelte.dev/e/lifecycle_outside_component");
29
+ }
30
+ function Hs() {
31
+ throw new Error("https://svelte.dev/e/async_derived_orphan");
32
+ }
33
+ function Bs(e, o, t) {
34
+ throw new Error("https://svelte.dev/e/each_key_duplicate");
35
+ }
36
+ function Gs(e) {
37
+ throw new Error("https://svelte.dev/e/effect_in_teardown");
38
+ }
39
+ function Ds() {
40
+ throw new Error("https://svelte.dev/e/effect_in_unowned_derived");
41
+ }
42
+ function Ws(e) {
43
+ throw new Error("https://svelte.dev/e/effect_orphan");
44
+ }
45
+ function Fs() {
46
+ throw new Error("https://svelte.dev/e/effect_update_depth_exceeded");
47
+ }
48
+ function Xs() {
49
+ throw new Error("https://svelte.dev/e/hydration_failed");
50
+ }
51
+ function Us() {
52
+ throw new Error("https://svelte.dev/e/state_descriptors_fixed");
53
+ }
54
+ function Js() {
55
+ throw new Error("https://svelte.dev/e/state_prototype_fixed");
56
+ }
57
+ function Ks() {
58
+ throw new Error("https://svelte.dev/e/state_unsafe_mutation");
59
+ }
60
+ function qs() {
61
+ throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror");
62
+ }
63
+ function Lt(e) {
64
+ console.warn("https://svelte.dev/e/hydration_mismatch");
65
+ }
66
+ function Ys() {
67
+ console.warn("https://svelte.dev/e/svelte_boundary_reset_noop");
68
+ }
69
+ let $ = !1;
70
+ function He(e) {
71
+ $ = e;
72
+ }
73
+ let T;
74
+ function J(e) {
75
+ if (e === null)
76
+ throw Lt(), To;
77
+ return T = e;
78
+ }
79
+ function zt() {
80
+ return J(/* @__PURE__ */ Ae(T));
81
+ }
82
+ function I(e) {
83
+ if ($) {
84
+ if (/* @__PURE__ */ Ae(T) !== null)
85
+ throw Lt(), To;
86
+ T = e;
87
+ }
88
+ }
89
+ function Zs(e = 1) {
90
+ if ($) {
91
+ for (var o = e, t = T; o--; )
92
+ t = /** @type {TemplateNode} */
93
+ /* @__PURE__ */ Ae(t);
94
+ T = t;
95
+ }
96
+ }
97
+ function kt(e = !0) {
98
+ for (var o = 0, t = T; ; ) {
99
+ if (t.nodeType === ot) {
100
+ var i = (
101
+ /** @type {Comment} */
102
+ t.data
103
+ );
104
+ if (i === fi) {
105
+ if (o === 0) return t;
106
+ o -= 1;
107
+ } else (i === ui || i === Tt || // "[1", "[2", etc. for if blocks
108
+ i[0] === "[" && !isNaN(Number(i.slice(1)))) && (o += 1);
109
+ }
110
+ var s = (
111
+ /** @type {TemplateNode} */
112
+ /* @__PURE__ */ Ae(t)
113
+ );
114
+ e && t.remove(), t = s;
115
+ }
116
+ }
117
+ function fn(e) {
118
+ if (!e || e.nodeType !== ot)
119
+ throw Lt(), To;
120
+ return (
121
+ /** @type {Comment} */
122
+ e.data
123
+ );
124
+ }
125
+ function mn(e) {
126
+ return e === this.v;
127
+ }
128
+ function Qs(e, o) {
129
+ return e != e ? o == o : e !== o || e !== null && typeof e == "object" || typeof e == "function";
130
+ }
131
+ function hn(e) {
132
+ return !Qs(e, this.v);
133
+ }
134
+ let el = !1, ne = null;
135
+ function Lo(e) {
136
+ ne = e;
137
+ }
138
+ function gn(e, o = !1, t) {
139
+ ne = {
140
+ p: ne,
141
+ i: !1,
142
+ c: null,
143
+ e: null,
144
+ s: e,
145
+ x: null,
146
+ l: null
147
+ };
148
+ }
149
+ function _n(e) {
150
+ var o = (
151
+ /** @type {ComponentContext} */
152
+ ne
153
+ ), t = o.e;
154
+ if (t !== null) {
155
+ o.e = null;
156
+ for (var i of t)
157
+ Gn(i);
158
+ }
159
+ return e !== void 0 && (o.x = e), o.i = !0, ne = o.p, e ?? /** @type {T} */
160
+ {};
161
+ }
162
+ function yn() {
163
+ return !0;
164
+ }
165
+ let fo = [];
166
+ function bn() {
167
+ var e = fo;
168
+ fo = [], Ms(e);
169
+ }
170
+ function Ge(e) {
171
+ if (fo.length === 0 && !Jo) {
172
+ var o = fo;
173
+ queueMicrotask(() => {
174
+ o === fo && bn();
175
+ });
176
+ }
177
+ fo.push(e);
178
+ }
179
+ function ol() {
180
+ for (; fo.length > 0; )
181
+ bn();
182
+ }
183
+ function vn(e) {
184
+ var o = C;
185
+ if (o === null)
186
+ return S.f |= to, e;
187
+ if ((o.f & Ro) === 0 && (o.f & Zo) === 0)
188
+ throw e;
189
+ zo(e, o);
190
+ }
191
+ function zo(e, o) {
192
+ for (; o !== null; ) {
193
+ if ((o.f & Ut) !== 0) {
194
+ if ((o.f & Ro) === 0)
195
+ throw e;
196
+ try {
197
+ o.b.error(e);
198
+ return;
199
+ } catch (t) {
200
+ e = t;
201
+ }
202
+ }
203
+ o = o.parent;
204
+ }
205
+ throw e;
206
+ }
207
+ const tl = -7169;
208
+ function R(e, o) {
209
+ e.f = e.f & tl | o;
210
+ }
211
+ function hi(e) {
212
+ (e.f & ae) !== 0 || e.deps === null ? R(e, H) : R(e, we);
213
+ }
214
+ function wn(e) {
215
+ if (e !== null)
216
+ for (const o of e)
217
+ (o.f & F) === 0 || (o.f & go) === 0 || (o.f ^= go, wn(
218
+ /** @type {Derived} */
219
+ o.deps
220
+ ));
221
+ }
222
+ function xn(e, o, t) {
223
+ (e.f & X) !== 0 ? o.add(e) : (e.f & we) !== 0 && t.add(e), wn(e.deps), R(e, H);
224
+ }
225
+ const ht = /* @__PURE__ */ new Set();
226
+ let M = null, ve = null, Q = [], jt = null, Kt = !1, Jo = !1;
227
+ var Go, Do, Ue, ao, Wo, St, $o, Qe, Fo, co, qt, Yt, kn;
228
+ const il = class Sn {
229
+ constructor() {
230
+ x(this, co), v(this, "committed", !1), v(this, "current", /* @__PURE__ */ new Map()), v(this, "previous", /* @__PURE__ */ new Map()), x(this, Go, /* @__PURE__ */ new Set()), x(this, Do, /* @__PURE__ */ new Set()), x(this, Ue, 0), x(this, ao, 0), x(this, Wo, null), x(this, St, /* @__PURE__ */ new Set()), x(this, $o, /* @__PURE__ */ new Set()), x(this, Qe, /* @__PURE__ */ new Map()), v(this, "is_fork", !1), x(this, Fo, !1);
231
+ }
232
+ is_deferred() {
233
+ return this.is_fork || p(this, ao) > 0;
234
+ }
235
+ /**
236
+ * Add an effect to the #skipped_branches map and reset its children
237
+ * @param {Effect} effect
238
+ */
239
+ skip_effect(o) {
240
+ p(this, Qe).has(o) || p(this, Qe).set(o, { d: [], m: [] });
241
+ }
242
+ /**
243
+ * Remove an effect from the #skipped_branches map and reschedule
244
+ * any tracked dirty/maybe_dirty child effects
245
+ * @param {Effect} effect
246
+ */
247
+ unskip_effect(o) {
248
+ var t = p(this, Qe).get(o);
249
+ if (t) {
250
+ p(this, Qe).delete(o);
251
+ for (var i of t.d)
252
+ R(i, X), ye(i);
253
+ for (i of t.m)
254
+ R(i, we), ye(i);
255
+ }
256
+ }
257
+ /**
258
+ *
259
+ * @param {Effect[]} root_effects
260
+ */
261
+ process(o) {
262
+ Q = [], this.apply();
263
+ var t = [], i = [];
264
+ for (const s of o)
265
+ Z(this, co, qt).call(this, s, t, i);
266
+ if (this.is_deferred()) {
267
+ Z(this, co, Yt).call(this, i), Z(this, co, Yt).call(this, t);
268
+ for (const [s, n] of p(this, Qe))
269
+ Cn(s, n);
270
+ } else {
271
+ for (const s of p(this, Go)) s();
272
+ p(this, Go).clear(), p(this, Ue) === 0 && Z(this, co, kn).call(this), M = null, Pi(i), Pi(t), p(this, Wo)?.resolve();
273
+ }
274
+ ve = null;
275
+ }
276
+ /**
277
+ * Associate a change to a given source with the current
278
+ * batch, noting its previous and current values
279
+ * @param {Source} source
280
+ * @param {any} value
281
+ */
282
+ capture(o, t) {
283
+ t !== W && !this.previous.has(o) && this.previous.set(o, t), (o.f & to) === 0 && (this.current.set(o, o.v), ve?.set(o, o.v));
284
+ }
285
+ activate() {
286
+ M = this, this.apply();
287
+ }
288
+ deactivate() {
289
+ M === this && (M = null, ve = null);
290
+ }
291
+ flush() {
292
+ if (this.activate(), Q.length > 0) {
293
+ if (In(), M !== null && M !== this)
294
+ return;
295
+ } else p(this, Ue) === 0 && this.process([]);
296
+ this.deactivate();
297
+ }
298
+ discard() {
299
+ for (const o of p(this, Do)) o(this);
300
+ p(this, Do).clear();
301
+ }
302
+ /**
303
+ *
304
+ * @param {boolean} blocking
305
+ */
306
+ increment(o) {
307
+ b(this, Ue, p(this, Ue) + 1), o && b(this, ao, p(this, ao) + 1);
308
+ }
309
+ /**
310
+ *
311
+ * @param {boolean} blocking
312
+ */
313
+ decrement(o) {
314
+ b(this, Ue, p(this, Ue) - 1), o && b(this, ao, p(this, ao) - 1), !p(this, Fo) && (b(this, Fo, !0), Ge(() => {
315
+ b(this, Fo, !1), this.is_deferred() ? Q.length > 0 && this.flush() : this.revive();
316
+ }));
317
+ }
318
+ revive() {
319
+ for (const o of p(this, St))
320
+ p(this, $o).delete(o), R(o, X), ye(o);
321
+ for (const o of p(this, $o))
322
+ R(o, we), ye(o);
323
+ this.flush();
324
+ }
325
+ /** @param {() => void} fn */
326
+ oncommit(o) {
327
+ p(this, Go).add(o);
328
+ }
329
+ /** @param {(batch: Batch) => void} fn */
330
+ ondiscard(o) {
331
+ p(this, Do).add(o);
332
+ }
333
+ settled() {
334
+ return (p(this, Wo) ?? b(this, Wo, pn())).promise;
335
+ }
336
+ static ensure() {
337
+ if (M === null) {
338
+ const o = M = new Sn();
339
+ ht.add(M), Jo || Ge(() => {
340
+ M === o && o.flush();
341
+ });
342
+ }
343
+ return M;
344
+ }
345
+ apply() {
346
+ }
347
+ };
348
+ Go = /* @__PURE__ */ new WeakMap(), Do = /* @__PURE__ */ new WeakMap(), Ue = /* @__PURE__ */ new WeakMap(), ao = /* @__PURE__ */ new WeakMap(), Wo = /* @__PURE__ */ new WeakMap(), St = /* @__PURE__ */ new WeakMap(), $o = /* @__PURE__ */ new WeakMap(), Qe = /* @__PURE__ */ new WeakMap(), Fo = /* @__PURE__ */ new WeakMap(), co = /* @__PURE__ */ new WeakSet(), /**
349
+ * Traverse the effect tree, executing effects or stashing
350
+ * them for later execution as appropriate
351
+ * @param {Effect} root
352
+ * @param {Effect[]} effects
353
+ * @param {Effect[]} render_effects
354
+ */
355
+ qt = function(e, o, t) {
356
+ e.f ^= H;
357
+ for (var i = e.first, s = null; i !== null; ) {
358
+ var n = i.f, l = (n & (xe | so)) !== 0, r = l && (n & H) !== 0, a = r || (n & te) !== 0 || p(this, Qe).has(i);
359
+ if (!a && i.fn !== null) {
360
+ l ? i.f ^= H : s !== null && (n & (Zo | At | dn)) !== 0 ? s.b.defer_effect(i) : (n & Zo) !== 0 ? o.push(i) : tt(i) && ((n & De) !== 0 && p(this, $o).add(i), Mo(i));
361
+ var c = i.first;
362
+ if (c !== null) {
363
+ i = c;
364
+ continue;
365
+ }
366
+ }
367
+ for (; i !== null; ) {
368
+ i === s && (s = null);
369
+ var d = i.next;
370
+ if (d !== null) {
371
+ i = d;
372
+ break;
373
+ }
374
+ i = i.parent;
375
+ }
376
+ }
377
+ }, /**
378
+ * @param {Effect[]} effects
379
+ */
380
+ Yt = function(e) {
381
+ for (var o = 0; o < e.length; o += 1)
382
+ xn(e[o], p(this, St), p(this, $o));
383
+ }, kn = function() {
384
+ var e;
385
+ if (ht.size > 1) {
386
+ this.previous.clear();
387
+ var o = ve, t = !0;
388
+ for (const s of ht) {
389
+ if (s === this) {
390
+ t = !1;
391
+ continue;
392
+ }
393
+ const n = [];
394
+ for (const [r, a] of this.current) {
395
+ if (s.current.has(r))
396
+ if (t && a !== s.current.get(r))
397
+ s.current.set(r, a);
398
+ else
399
+ continue;
400
+ n.push(r);
401
+ }
402
+ if (n.length === 0)
403
+ continue;
404
+ const l = [...s.current.keys()].filter((r) => !this.current.has(r));
405
+ if (l.length > 0) {
406
+ var i = Q;
407
+ Q = [];
408
+ const r = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map();
409
+ for (const c of n)
410
+ $n(c, l, r, a);
411
+ if (Q.length > 0) {
412
+ M = s, s.apply();
413
+ for (const c of Q)
414
+ Z(e = s, co, qt).call(e, c, [], []);
415
+ s.deactivate();
416
+ }
417
+ Q = i;
418
+ }
419
+ }
420
+ M = null, ve = o;
421
+ }
422
+ this.committed = !0, ht.delete(this);
423
+ };
424
+ let _o = il;
425
+ function Zt(e) {
426
+ var o = Jo;
427
+ Jo = !0;
428
+ try {
429
+ for (var t; ; ) {
430
+ if (ol(), Q.length === 0 && (M?.flush(), Q.length === 0))
431
+ return jt = null, /** @type {T} */
432
+ t;
433
+ In();
434
+ }
435
+ } finally {
436
+ Jo = o;
437
+ }
438
+ }
439
+ function In() {
440
+ Kt = !0;
441
+ try {
442
+ for (var e = 0; Q.length > 0; ) {
443
+ var o = _o.ensure();
444
+ if (e++ > 1e3) {
445
+ var t, i;
446
+ nl();
447
+ }
448
+ o.process(Q), io.clear();
449
+ }
450
+ } finally {
451
+ Q = [], Kt = !1, jt = null;
452
+ }
453
+ }
454
+ function nl() {
455
+ try {
456
+ Fs();
457
+ } catch (e) {
458
+ zo(e, jt);
459
+ }
460
+ }
461
+ let Ne = null;
462
+ function Pi(e) {
463
+ var o = e.length;
464
+ if (o !== 0) {
465
+ for (var t = 0; t < o; ) {
466
+ var i = e[t++];
467
+ if ((i.f & (Be | te)) === 0 && tt(i) && (Ne = /* @__PURE__ */ new Set(), Mo(i), i.deps === null && i.first === null && i.nodes === null && i.teardown === null && i.ac === null && Fn(i), Ne?.size > 0)) {
468
+ io.clear();
469
+ for (const s of Ne) {
470
+ if ((s.f & (Be | te)) !== 0) continue;
471
+ const n = [s];
472
+ let l = s.parent;
473
+ for (; l !== null; )
474
+ Ne.has(l) && (Ne.delete(l), n.push(l)), l = l.parent;
475
+ for (let r = n.length - 1; r >= 0; r--) {
476
+ const a = n[r];
477
+ (a.f & (Be | te)) === 0 && Mo(a);
478
+ }
479
+ }
480
+ Ne.clear();
481
+ }
482
+ }
483
+ Ne = null;
484
+ }
485
+ }
486
+ function $n(e, o, t, i) {
487
+ if (!t.has(e) && (t.add(e), e.reactions !== null))
488
+ for (const s of e.reactions) {
489
+ const n = s.f;
490
+ (n & F) !== 0 ? $n(
491
+ /** @type {Derived} */
492
+ s,
493
+ o,
494
+ t,
495
+ i
496
+ ) : (n & (mi | De)) !== 0 && (n & X) === 0 && Tn(s, o, i) && (R(s, X), ye(
497
+ /** @type {Effect} */
498
+ s
499
+ ));
500
+ }
501
+ }
502
+ function Tn(e, o, t) {
503
+ const i = t.get(e);
504
+ if (i !== void 0) return i;
505
+ if (e.deps !== null)
506
+ for (const s of e.deps) {
507
+ if (Co.call(o, s))
508
+ return !0;
509
+ if ((s.f & F) !== 0 && Tn(
510
+ /** @type {Derived} */
511
+ s,
512
+ o,
513
+ t
514
+ ))
515
+ return t.set(
516
+ /** @type {Derived} */
517
+ s,
518
+ !0
519
+ ), !0;
520
+ }
521
+ return t.set(e, !1), !1;
522
+ }
523
+ function ye(e) {
524
+ for (var o = jt = e; o.parent !== null; ) {
525
+ o = o.parent;
526
+ var t = o.f;
527
+ if (Kt && o === C && (t & De) !== 0 && (t & un) === 0)
528
+ return;
529
+ if ((t & (so | xe)) !== 0) {
530
+ if ((t & H) === 0) return;
531
+ o.f ^= H;
532
+ }
533
+ }
534
+ Q.push(o);
535
+ }
536
+ function Cn(e, o) {
537
+ if (!((e.f & xe) !== 0 && (e.f & H) !== 0)) {
538
+ (e.f & X) !== 0 ? o.d.push(e) : (e.f & we) !== 0 && o.m.push(e), R(e, H);
539
+ for (var t = e.first; t !== null; )
540
+ Cn(t, o), t = t.next;
541
+ }
542
+ }
543
+ function sl(e) {
544
+ let o = 0, t = yo(0), i;
545
+ return () => {
546
+ bi() && (u(t), vi(() => (o === 0 && (i = Si(() => e(() => Yo(t)))), o += 1, () => {
547
+ Ge(() => {
548
+ o -= 1, o === 0 && (i?.(), i = void 0, Yo(t));
549
+ });
550
+ })));
551
+ };
552
+ }
553
+ var ll = Ao | wo;
554
+ function rl(e, o, t) {
555
+ new al(e, o, t);
556
+ }
557
+ var _e, gt, eo, ko, Oe, Ve, re, Re, Je, po, Ke, Xo, Ko, qo, qe, Qt, ge, An, Ln, ei, It, oi;
558
+ class al {
559
+ /**
560
+ * @param {TemplateNode} node
561
+ * @param {BoundaryProps} props
562
+ * @param {((anchor: Node) => void)} children
563
+ */
564
+ constructor(o, t, i) {
565
+ x(this, ge), v(this, "parent"), v(this, "is_pending", !1), x(this, _e), x(this, gt, $ ? T : null), x(this, eo), x(this, ko), x(this, Oe), x(this, Ve, null), x(this, re, null), x(this, Re, null), x(this, Je, null), x(this, po, 0), x(this, Ke, 0), x(this, Xo, !1), x(this, Ko, /* @__PURE__ */ new Set()), x(this, qo, /* @__PURE__ */ new Set()), x(this, qe, null), x(this, Qt, sl(() => (b(this, qe, yo(p(this, po))), () => {
566
+ b(this, qe, null);
567
+ }))), b(this, _e, o), b(this, eo, t), b(this, ko, (s) => {
568
+ var n = (
569
+ /** @type {Effect} */
570
+ C
571
+ );
572
+ n.b = this, n.f |= Ut, i(s);
573
+ }), this.parent = /** @type {Effect} */
574
+ C.b, b(this, Oe, wi(() => {
575
+ if ($) {
576
+ const s = (
577
+ /** @type {Comment} */
578
+ p(this, gt)
579
+ );
580
+ zt(), s.data === Tt ? Z(this, ge, Ln).call(this) : Z(this, ge, An).call(this);
581
+ } else
582
+ Z(this, ge, ei).call(this);
583
+ }, ll)), $ && b(this, _e, T);
584
+ }
585
+ /**
586
+ * Defer an effect inside a pending boundary until the boundary resolves
587
+ * @param {Effect} effect
588
+ */
589
+ defer_effect(o) {
590
+ xn(o, p(this, Ko), p(this, qo));
591
+ }
592
+ /**
593
+ * Returns `false` if the effect exists inside a boundary whose pending snippet is shown
594
+ * @returns {boolean}
595
+ */
596
+ is_rendered() {
597
+ return !this.is_pending && (!this.parent || this.parent.is_rendered());
598
+ }
599
+ has_pending_snippet() {
600
+ return !!p(this, eo).pending;
601
+ }
602
+ /**
603
+ * Update the source that powers `$effect.pending()` inside this boundary,
604
+ * and controls when the current `pending` snippet (if any) is removed.
605
+ * Do not call from inside the class
606
+ * @param {1 | -1} d
607
+ */
608
+ update_pending_count(o) {
609
+ Z(this, ge, oi).call(this, o), b(this, po, p(this, po) + o), !(!p(this, qe) || p(this, Xo)) && (b(this, Xo, !0), Ge(() => {
610
+ b(this, Xo, !1), p(this, qe) && jo(p(this, qe), p(this, po));
611
+ }));
612
+ }
613
+ get_effect_pending() {
614
+ return p(this, Qt).call(this), u(
615
+ /** @type {Source<number>} */
616
+ p(this, qe)
617
+ );
618
+ }
619
+ /** @param {unknown} error */
620
+ error(o) {
621
+ var t = p(this, eo).onerror;
622
+ let i = p(this, eo).failed;
623
+ if (!t && !i)
624
+ throw o;
625
+ p(this, Ve) && (K(p(this, Ve)), b(this, Ve, null)), p(this, re) && (K(p(this, re)), b(this, re, null)), p(this, Re) && (K(p(this, Re)), b(this, Re, null)), $ && (J(
626
+ /** @type {TemplateNode} */
627
+ p(this, gt)
628
+ ), Zs(), J(kt()));
629
+ var s = !1, n = !1;
630
+ const l = () => {
631
+ if (s) {
632
+ Ys();
633
+ return;
634
+ }
635
+ s = !0, n && qs(), p(this, Re) !== null && bo(p(this, Re), () => {
636
+ b(this, Re, null);
637
+ }), Z(this, ge, It).call(this, () => {
638
+ _o.ensure(), Z(this, ge, ei).call(this);
639
+ });
640
+ };
641
+ Ge(() => {
642
+ try {
643
+ n = !0, t?.(o, l), n = !1;
644
+ } catch (r) {
645
+ zo(r, p(this, Oe) && p(this, Oe).parent);
646
+ }
647
+ i && b(this, Re, Z(this, ge, It).call(this, () => {
648
+ _o.ensure();
649
+ try {
650
+ return Te(() => {
651
+ var r = (
652
+ /** @type {Effect} */
653
+ C
654
+ );
655
+ r.b = this, r.f |= Ut, i(
656
+ p(this, _e),
657
+ () => o,
658
+ () => l
659
+ );
660
+ });
661
+ } catch (r) {
662
+ return zo(
663
+ r,
664
+ /** @type {Effect} */
665
+ p(this, Oe).parent
666
+ ), null;
667
+ }
668
+ }));
669
+ });
670
+ }
671
+ }
672
+ _e = /* @__PURE__ */ new WeakMap(), gt = /* @__PURE__ */ new WeakMap(), eo = /* @__PURE__ */ new WeakMap(), ko = /* @__PURE__ */ new WeakMap(), Oe = /* @__PURE__ */ new WeakMap(), Ve = /* @__PURE__ */ new WeakMap(), re = /* @__PURE__ */ new WeakMap(), Re = /* @__PURE__ */ new WeakMap(), Je = /* @__PURE__ */ new WeakMap(), po = /* @__PURE__ */ new WeakMap(), Ke = /* @__PURE__ */ new WeakMap(), Xo = /* @__PURE__ */ new WeakMap(), Ko = /* @__PURE__ */ new WeakMap(), qo = /* @__PURE__ */ new WeakMap(), qe = /* @__PURE__ */ new WeakMap(), Qt = /* @__PURE__ */ new WeakMap(), ge = /* @__PURE__ */ new WeakSet(), An = function() {
673
+ try {
674
+ b(this, Ve, Te(() => p(this, ko).call(this, p(this, _e))));
675
+ } catch (e) {
676
+ this.error(e);
677
+ }
678
+ }, Ln = function() {
679
+ const e = p(this, eo).pending;
680
+ e && (this.is_pending = !0, b(this, re, Te(() => e(p(this, _e)))), Ge(() => {
681
+ var o = b(this, Je, document.createDocumentFragment()), t = ie();
682
+ o.append(t), b(this, Ve, Z(this, ge, It).call(this, () => (_o.ensure(), Te(() => p(this, ko).call(this, t))))), p(this, Ke) === 0 && (p(this, _e).before(o), b(this, Je, null), bo(
683
+ /** @type {Effect} */
684
+ p(this, re),
685
+ () => {
686
+ b(this, re, null);
687
+ }
688
+ ), this.is_pending = !1);
689
+ }));
690
+ }, ei = function() {
691
+ try {
692
+ if (this.is_pending = this.has_pending_snippet(), b(this, Ke, 0), b(this, po, 0), b(this, Ve, Te(() => {
693
+ p(this, ko).call(this, p(this, _e));
694
+ })), p(this, Ke) > 0) {
695
+ var e = b(this, Je, document.createDocumentFragment());
696
+ Jn(p(this, Ve), e);
697
+ const o = (
698
+ /** @type {(anchor: Node) => void} */
699
+ p(this, eo).pending
700
+ );
701
+ b(this, re, Te(() => o(p(this, _e))));
702
+ } else
703
+ this.is_pending = !1;
704
+ } catch (o) {
705
+ this.error(o);
706
+ }
707
+ }, /**
708
+ * @template T
709
+ * @param {() => T} fn
710
+ */
711
+ It = function(e) {
712
+ var o = C, t = S, i = ne;
713
+ Ce(p(this, Oe)), pe(p(this, Oe)), Lo(p(this, Oe).ctx);
714
+ try {
715
+ return e();
716
+ } catch (s) {
717
+ return vn(s), null;
718
+ } finally {
719
+ Ce(o), pe(t), Lo(i);
720
+ }
721
+ }, /**
722
+ * Updates the pending count associated with the currently visible pending snippet,
723
+ * if any, such that we can replace the snippet with content once work is done
724
+ * @param {1 | -1} d
725
+ */
726
+ oi = function(e) {
727
+ var o;
728
+ if (!this.has_pending_snippet()) {
729
+ this.parent && Z(o = this.parent, ge, oi).call(o, e);
730
+ return;
731
+ }
732
+ if (b(this, Ke, p(this, Ke) + e), p(this, Ke) === 0) {
733
+ this.is_pending = !1;
734
+ for (const t of p(this, Ko))
735
+ R(t, X), ye(t);
736
+ for (const t of p(this, qo))
737
+ R(t, we), ye(t);
738
+ p(this, Ko).clear(), p(this, qo).clear(), p(this, re) && bo(p(this, re), () => {
739
+ b(this, re, null);
740
+ }), p(this, Je) && (p(this, _e).before(p(this, Je)), b(this, Je, null));
741
+ }
742
+ };
743
+ function cl(e, o, t, i) {
744
+ const s = Et;
745
+ var n = e.filter((f) => !f.settled);
746
+ if (t.length === 0 && n.length === 0) {
747
+ i(o.map(s));
748
+ return;
749
+ }
750
+ var l = M, r = (
751
+ /** @type {Effect} */
752
+ C
753
+ ), a = pl(), c = n.length === 1 ? n[0].promise : n.length > 1 ? Promise.all(n.map((f) => f.promise)) : null;
754
+ function d(f) {
755
+ a();
756
+ try {
757
+ i(f);
758
+ } catch (h) {
759
+ (r.f & Be) === 0 && zo(h, r);
760
+ }
761
+ l?.deactivate(), ti();
762
+ }
763
+ if (t.length === 0) {
764
+ c.then(() => d(o.map(s)));
765
+ return;
766
+ }
767
+ function g() {
768
+ a(), Promise.all(t.map((f) => /* @__PURE__ */ dl(f))).then((f) => d([...o.map(s), ...f])).catch((f) => zo(f, r));
769
+ }
770
+ c ? c.then(g) : g();
771
+ }
772
+ function pl() {
773
+ var e = C, o = S, t = ne, i = M;
774
+ return function(s = !0) {
775
+ Ce(e), pe(o), Lo(t), s && i?.activate();
776
+ };
777
+ }
778
+ function ti() {
779
+ Ce(null), pe(null), Lo(null);
780
+ }
781
+ // @__NO_SIDE_EFFECTS__
782
+ function Et(e) {
783
+ var o = F | X, t = S !== null && (S.f & F) !== 0 ? (
784
+ /** @type {Derived} */
785
+ S
786
+ ) : null;
787
+ return C !== null && (C.f |= wo), {
788
+ ctx: ne,
789
+ deps: null,
790
+ effects: null,
791
+ equals: mn,
792
+ f: o,
793
+ fn: e,
794
+ reactions: null,
795
+ rv: 0,
796
+ v: (
797
+ /** @type {V} */
798
+ W
799
+ ),
800
+ wv: 0,
801
+ parent: t ?? C,
802
+ ac: null
803
+ };
804
+ }
805
+ // @__NO_SIDE_EFFECTS__
806
+ function dl(e, o, t) {
807
+ let i = (
808
+ /** @type {Effect | null} */
809
+ C
810
+ );
811
+ i === null && Hs();
812
+ var s = (
813
+ /** @type {Boundary} */
814
+ i.b
815
+ ), n = (
816
+ /** @type {Promise<V>} */
817
+ /** @type {unknown} */
818
+ void 0
819
+ ), l = yo(
820
+ /** @type {V} */
821
+ W
822
+ ), r = !S, a = /* @__PURE__ */ new Map();
823
+ return xl(() => {
824
+ var c = pn();
825
+ n = c.promise;
826
+ try {
827
+ Promise.resolve(e()).then(c.resolve, c.reject).then(() => {
828
+ d === M && d.committed && d.deactivate(), ti();
829
+ });
830
+ } catch (h) {
831
+ c.reject(h), ti();
832
+ }
833
+ var d = (
834
+ /** @type {Batch} */
835
+ M
836
+ );
837
+ if (r) {
838
+ var g = s.is_rendered();
839
+ s.update_pending_count(1), d.increment(g), a.get(d)?.reject(uo), a.delete(d), a.set(d, c);
840
+ }
841
+ const f = (h, y = void 0) => {
842
+ if (d.activate(), y)
843
+ y !== uo && (l.f |= to, jo(l, y));
844
+ else {
845
+ (l.f & to) !== 0 && (l.f ^= to), jo(l, h);
846
+ for (const [w, m] of a) {
847
+ if (a.delete(w), w === d) break;
848
+ m.reject(uo);
849
+ }
850
+ }
851
+ r && (s.update_pending_count(-1), d.decrement(g));
852
+ };
853
+ c.promise.then(f, (h) => f(null, h || "unknown"));
854
+ }), Bn(() => {
855
+ for (const c of a.values())
856
+ c.reject(uo);
857
+ }), new Promise((c) => {
858
+ function d(g) {
859
+ function f() {
860
+ g === n ? c(l) : d(n);
861
+ }
862
+ g.then(f, f);
863
+ }
864
+ d(n);
865
+ });
866
+ }
867
+ // @__NO_SIDE_EFFECTS__
868
+ function Dt(e) {
869
+ const o = /* @__PURE__ */ Et(e);
870
+ return Kn(o), o;
871
+ }
872
+ // @__NO_SIDE_EFFECTS__
873
+ function ul(e) {
874
+ const o = /* @__PURE__ */ Et(e);
875
+ return o.equals = hn, o;
876
+ }
877
+ function fl(e) {
878
+ var o = e.effects;
879
+ if (o !== null) {
880
+ e.effects = null;
881
+ for (var t = 0; t < o.length; t += 1)
882
+ K(
883
+ /** @type {Effect} */
884
+ o[t]
885
+ );
886
+ }
887
+ }
888
+ function ml(e) {
889
+ for (var o = e.parent; o !== null; ) {
890
+ if ((o.f & F) === 0)
891
+ return (o.f & Be) === 0 ? (
892
+ /** @type {Effect} */
893
+ o
894
+ ) : null;
895
+ o = o.parent;
896
+ }
897
+ return null;
898
+ }
899
+ function gi(e) {
900
+ var o, t = C;
901
+ Ce(ml(e));
902
+ try {
903
+ e.f &= ~go, fl(e), o = Qn(e);
904
+ } finally {
905
+ Ce(t);
906
+ }
907
+ return o;
908
+ }
909
+ function zn(e) {
910
+ var o = gi(e);
911
+ if (!e.equals(o) && (e.wv = Yn(), (!M?.is_fork || e.deps === null) && (e.v = o, e.deps === null))) {
912
+ R(e, H);
913
+ return;
914
+ }
915
+ no || (ve !== null ? (bi() || M?.is_fork) && ve.set(e, o) : hi(e));
916
+ }
917
+ function hl(e) {
918
+ if (e.effects !== null)
919
+ for (const o of e.effects)
920
+ (o.teardown || o.ac) && (o.teardown?.(), o.ac?.abort(uo), o.teardown = Es, o.ac = null, Qo(o, 0), xi(o));
921
+ }
922
+ function jn(e) {
923
+ if (e.effects !== null)
924
+ for (const o of e.effects)
925
+ o.teardown && Mo(o);
926
+ }
927
+ let ii = /* @__PURE__ */ new Set();
928
+ const io = /* @__PURE__ */ new Map();
929
+ let En = !1;
930
+ function yo(e, o) {
931
+ var t = {
932
+ f: 0,
933
+ // TODO ideally we could skip this altogether, but it causes type errors
934
+ v: e,
935
+ reactions: null,
936
+ equals: mn,
937
+ rv: 0,
938
+ wv: 0
939
+ };
940
+ return t;
941
+ }
942
+ // @__NO_SIDE_EFFECTS__
943
+ function N(e, o) {
944
+ const t = yo(e);
945
+ return Kn(t), t;
946
+ }
947
+ // @__NO_SIDE_EFFECTS__
948
+ function Mn(e, o = !1, t = !0) {
949
+ const i = yo(e);
950
+ return o || (i.equals = hn), i;
951
+ }
952
+ function O(e, o, t = !1) {
953
+ S !== null && // since we are untracking the function inside `$inspect.with` we need to add this check
954
+ // to ensure we error if state is set inside an inspect effect
955
+ (!be || (S.f & Vi) !== 0) && yn() && (S.f & (F | De | mi | Vi)) !== 0 && (ce === null || !Co.call(ce, e)) && Ks();
956
+ let i = t ? oo(o) : o;
957
+ return jo(e, i);
958
+ }
959
+ function jo(e, o) {
960
+ if (!e.equals(o)) {
961
+ var t = e.v;
962
+ no ? io.set(e, o) : io.set(e, t), e.v = o;
963
+ var i = _o.ensure();
964
+ if (i.capture(e, t), (e.f & F) !== 0) {
965
+ const s = (
966
+ /** @type {Derived} */
967
+ e
968
+ );
969
+ (e.f & X) !== 0 && gi(s), hi(s);
970
+ }
971
+ e.wv = Yn(), Rn(e, X), C !== null && (C.f & H) !== 0 && (C.f & (xe | so)) === 0 && (le === null ? Il([e]) : le.push(e)), !i.is_fork && ii.size > 0 && !En && gl();
972
+ }
973
+ return o;
974
+ }
975
+ function gl() {
976
+ En = !1;
977
+ for (const e of ii)
978
+ (e.f & H) !== 0 && R(e, we), tt(e) && Mo(e);
979
+ ii.clear();
980
+ }
981
+ function Yo(e) {
982
+ O(e, e.v + 1);
983
+ }
984
+ function Rn(e, o) {
985
+ var t = e.reactions;
986
+ if (t !== null)
987
+ for (var i = t.length, s = 0; s < i; s++) {
988
+ var n = t[s], l = n.f, r = (l & X) === 0;
989
+ if (r && R(n, o), (l & F) !== 0) {
990
+ var a = (
991
+ /** @type {Derived} */
992
+ n
993
+ );
994
+ ve?.delete(a), (l & go) === 0 && (l & ae && (n.f |= go), Rn(a, we));
995
+ } else r && ((l & De) !== 0 && Ne !== null && Ne.add(
996
+ /** @type {Effect} */
997
+ n
998
+ ), ye(
999
+ /** @type {Effect} */
1000
+ n
1001
+ ));
1002
+ }
1003
+ }
1004
+ function oo(e) {
1005
+ if (typeof e != "object" || e === null || mt in e)
1006
+ return e;
1007
+ const o = cn(e);
1008
+ if (o !== zs && o !== js)
1009
+ return e;
1010
+ var t = /* @__PURE__ */ new Map(), i = an(e), s = /* @__PURE__ */ N(0), n = ho, l = (r) => {
1011
+ if (ho === n)
1012
+ return r();
1013
+ var a = S, c = ho;
1014
+ pe(null), Gi(n);
1015
+ var d = r();
1016
+ return pe(a), Gi(c), d;
1017
+ };
1018
+ return i && t.set("length", /* @__PURE__ */ N(
1019
+ /** @type {any[]} */
1020
+ e.length
1021
+ )), new Proxy(
1022
+ /** @type {any} */
1023
+ e,
1024
+ {
1025
+ defineProperty(r, a, c) {
1026
+ (!("value" in c) || c.configurable === !1 || c.enumerable === !1 || c.writable === !1) && Us();
1027
+ var d = t.get(a);
1028
+ return d === void 0 ? l(() => {
1029
+ var g = /* @__PURE__ */ N(c.value);
1030
+ return t.set(a, g), g;
1031
+ }) : O(d, c.value, !0), !0;
1032
+ },
1033
+ deleteProperty(r, a) {
1034
+ var c = t.get(a);
1035
+ if (c === void 0) {
1036
+ if (a in r) {
1037
+ const d = l(() => /* @__PURE__ */ N(W));
1038
+ t.set(a, d), Yo(s);
1039
+ }
1040
+ } else
1041
+ O(c, W), Yo(s);
1042
+ return !0;
1043
+ },
1044
+ get(r, a, c) {
1045
+ if (a === mt)
1046
+ return e;
1047
+ var d = t.get(a), g = a in r;
1048
+ if (d === void 0 && (!g || Io(r, a)?.writable) && (d = l(() => {
1049
+ var h = oo(g ? r[a] : W), y = /* @__PURE__ */ N(h);
1050
+ return y;
1051
+ }), t.set(a, d)), d !== void 0) {
1052
+ var f = u(d);
1053
+ return f === W ? void 0 : f;
1054
+ }
1055
+ return Reflect.get(r, a, c);
1056
+ },
1057
+ getOwnPropertyDescriptor(r, a) {
1058
+ var c = Reflect.getOwnPropertyDescriptor(r, a);
1059
+ if (c && "value" in c) {
1060
+ var d = t.get(a);
1061
+ d && (c.value = u(d));
1062
+ } else if (c === void 0) {
1063
+ var g = t.get(a), f = g?.v;
1064
+ if (g !== void 0 && f !== W)
1065
+ return {
1066
+ enumerable: !0,
1067
+ configurable: !0,
1068
+ value: f,
1069
+ writable: !0
1070
+ };
1071
+ }
1072
+ return c;
1073
+ },
1074
+ has(r, a) {
1075
+ if (a === mt)
1076
+ return !0;
1077
+ var c = t.get(a), d = c !== void 0 && c.v !== W || Reflect.has(r, a);
1078
+ if (c !== void 0 || C !== null && (!d || Io(r, a)?.writable)) {
1079
+ c === void 0 && (c = l(() => {
1080
+ var f = d ? oo(r[a]) : W, h = /* @__PURE__ */ N(f);
1081
+ return h;
1082
+ }), t.set(a, c));
1083
+ var g = u(c);
1084
+ if (g === W)
1085
+ return !1;
1086
+ }
1087
+ return d;
1088
+ },
1089
+ set(r, a, c, d) {
1090
+ var g = t.get(a), f = a in r;
1091
+ if (i && a === "length")
1092
+ for (var h = c; h < /** @type {Source<number>} */
1093
+ g.v; h += 1) {
1094
+ var y = t.get(h + "");
1095
+ y !== void 0 ? O(y, W) : h in r && (y = l(() => /* @__PURE__ */ N(W)), t.set(h + "", y));
1096
+ }
1097
+ if (g === void 0)
1098
+ (!f || Io(r, a)?.writable) && (g = l(() => /* @__PURE__ */ N(void 0)), O(g, oo(c)), t.set(a, g));
1099
+ else {
1100
+ f = g.v !== W;
1101
+ var w = l(() => oo(c));
1102
+ O(g, w);
1103
+ }
1104
+ var m = Reflect.getOwnPropertyDescriptor(r, a);
1105
+ if (m?.set && m.set.call(d, c), !f) {
1106
+ if (i && typeof a == "string") {
1107
+ var _ = (
1108
+ /** @type {Source<number>} */
1109
+ t.get("length")
1110
+ ), j = Number(a);
1111
+ Number.isInteger(j) && j >= _.v && O(_, j + 1);
1112
+ }
1113
+ Yo(s);
1114
+ }
1115
+ return !0;
1116
+ },
1117
+ ownKeys(r) {
1118
+ u(s);
1119
+ var a = Reflect.ownKeys(r).filter((g) => {
1120
+ var f = t.get(g);
1121
+ return f === void 0 || f.v !== W;
1122
+ });
1123
+ for (var [c, d] of t)
1124
+ d.v !== W && !(c in r) && a.push(c);
1125
+ return a;
1126
+ },
1127
+ setPrototypeOf() {
1128
+ Js();
1129
+ }
1130
+ }
1131
+ );
1132
+ }
1133
+ var Hi, Nn, On, Vn;
1134
+ function ni() {
1135
+ if (Hi === void 0) {
1136
+ Hi = window, Nn = /Firefox/.test(navigator.userAgent);
1137
+ var e = Element.prototype, o = Node.prototype, t = Text.prototype;
1138
+ On = Io(o, "firstChild").get, Vn = Io(o, "nextSibling").get, Oi(e) && (e.__click = void 0, e.__className = void 0, e.__attributes = null, e.__style = void 0, e.__e = void 0), Oi(t) && (t.__t = void 0);
1139
+ }
1140
+ }
1141
+ function ie(e = "") {
1142
+ return document.createTextNode(e);
1143
+ }
1144
+ // @__NO_SIDE_EFFECTS__
1145
+ function Eo(e) {
1146
+ return (
1147
+ /** @type {TemplateNode | null} */
1148
+ On.call(e)
1149
+ );
1150
+ }
1151
+ // @__NO_SIDE_EFFECTS__
1152
+ function Ae(e) {
1153
+ return (
1154
+ /** @type {TemplateNode | null} */
1155
+ Vn.call(e)
1156
+ );
1157
+ }
1158
+ function L(e, o) {
1159
+ if (!$)
1160
+ return /* @__PURE__ */ Eo(e);
1161
+ var t = /* @__PURE__ */ Eo(T);
1162
+ if (t === null)
1163
+ t = T.appendChild(ie());
1164
+ else if (o && t.nodeType !== et) {
1165
+ var i = ie();
1166
+ return t?.before(i), J(i), i;
1167
+ }
1168
+ return o && Mt(
1169
+ /** @type {Text} */
1170
+ t
1171
+ ), J(t), t;
1172
+ }
1173
+ function _l(e, o = !1) {
1174
+ if (!$) {
1175
+ var t = /* @__PURE__ */ Eo(e);
1176
+ return t instanceof Comment && t.data === "" ? /* @__PURE__ */ Ae(t) : t;
1177
+ }
1178
+ if (o) {
1179
+ if (T?.nodeType !== et) {
1180
+ var i = ie();
1181
+ return T?.before(i), J(i), i;
1182
+ }
1183
+ Mt(
1184
+ /** @type {Text} */
1185
+ T
1186
+ );
1187
+ }
1188
+ return T;
1189
+ }
1190
+ function V(e, o = 1, t = !1) {
1191
+ let i = $ ? T : e;
1192
+ for (var s; o--; )
1193
+ s = i, i = /** @type {TemplateNode} */
1194
+ /* @__PURE__ */ Ae(i);
1195
+ if (!$)
1196
+ return i;
1197
+ if (t) {
1198
+ if (i?.nodeType !== et) {
1199
+ var n = ie();
1200
+ return i === null ? s?.after(n) : i.before(n), J(n), n;
1201
+ }
1202
+ Mt(
1203
+ /** @type {Text} */
1204
+ i
1205
+ );
1206
+ }
1207
+ return J(i), i;
1208
+ }
1209
+ function Pn(e) {
1210
+ e.textContent = "";
1211
+ }
1212
+ function Hn() {
1213
+ return !1;
1214
+ }
1215
+ function _i(e, o, t) {
1216
+ return (
1217
+ /** @type {T extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[T] : Element} */
1218
+ document.createElementNS(rn, e, void 0)
1219
+ );
1220
+ }
1221
+ function Mt(e) {
1222
+ if (
1223
+ /** @type {string} */
1224
+ e.nodeValue.length < 65536
1225
+ )
1226
+ return;
1227
+ let o = e.nextSibling;
1228
+ for (; o !== null && o.nodeType === et; )
1229
+ o.remove(), e.nodeValue += /** @type {string} */
1230
+ o.nodeValue, o = e.nextSibling;
1231
+ }
1232
+ function yi(e) {
1233
+ var o = S, t = C;
1234
+ pe(null), Ce(null);
1235
+ try {
1236
+ return e();
1237
+ } finally {
1238
+ pe(o), Ce(t);
1239
+ }
1240
+ }
1241
+ function yl(e) {
1242
+ C === null && (S === null && Ws(), Ds()), no && Gs();
1243
+ }
1244
+ function bl(e, o) {
1245
+ var t = o.last;
1246
+ t === null ? o.last = o.first = e : (t.next = e, e.prev = t, o.last = e);
1247
+ }
1248
+ function Le(e, o, t) {
1249
+ var i = C;
1250
+ i !== null && (i.f & te) !== 0 && (e |= te);
1251
+ var s = {
1252
+ ctx: ne,
1253
+ deps: null,
1254
+ nodes: null,
1255
+ f: e | X | ae,
1256
+ first: null,
1257
+ fn: o,
1258
+ last: null,
1259
+ next: null,
1260
+ parent: i,
1261
+ b: i && i.b,
1262
+ prev: null,
1263
+ teardown: null,
1264
+ wv: 0,
1265
+ ac: null
1266
+ };
1267
+ if (t)
1268
+ try {
1269
+ Mo(s);
1270
+ } catch (r) {
1271
+ throw K(s), r;
1272
+ }
1273
+ else o !== null && ye(s);
1274
+ var n = s;
1275
+ if (t && n.deps === null && n.teardown === null && n.nodes === null && n.first === n.last && // either `null`, or a singular child
1276
+ (n.f & wo) === 0 && (n = n.first, (e & De) !== 0 && (e & Ao) !== 0 && n !== null && (n.f |= Ao)), n !== null && (n.parent = i, i !== null && bl(n, i), S !== null && (S.f & F) !== 0 && (e & so) === 0)) {
1277
+ var l = (
1278
+ /** @type {Derived} */
1279
+ S
1280
+ );
1281
+ (l.effects ?? (l.effects = [])).push(n);
1282
+ }
1283
+ return s;
1284
+ }
1285
+ function bi() {
1286
+ return S !== null && !be;
1287
+ }
1288
+ function Bn(e) {
1289
+ const o = Le(At, null, !1);
1290
+ return R(o, H), o.teardown = e, o;
1291
+ }
1292
+ function _t(e) {
1293
+ yl();
1294
+ var o = (
1295
+ /** @type {Effect} */
1296
+ C.f
1297
+ ), t = !S && (o & xe) !== 0 && (o & Ro) === 0;
1298
+ if (t) {
1299
+ var i = (
1300
+ /** @type {ComponentContext} */
1301
+ ne
1302
+ );
1303
+ (i.e ?? (i.e = [])).push(e);
1304
+ } else
1305
+ return Gn(e);
1306
+ }
1307
+ function Gn(e) {
1308
+ return Le(Zo | Rs, e, !1);
1309
+ }
1310
+ function vl(e) {
1311
+ _o.ensure();
1312
+ const o = Le(so | wo, e, !0);
1313
+ return () => {
1314
+ K(o);
1315
+ };
1316
+ }
1317
+ function wl(e) {
1318
+ _o.ensure();
1319
+ const o = Le(so | wo, e, !0);
1320
+ return (t = {}) => new Promise((i) => {
1321
+ t.outro ? bo(o, () => {
1322
+ K(o), i(void 0);
1323
+ }) : (K(o), i(void 0));
1324
+ });
1325
+ }
1326
+ function Dn(e) {
1327
+ return Le(Zo, e, !1);
1328
+ }
1329
+ function xl(e) {
1330
+ return Le(mi | wo, e, !0);
1331
+ }
1332
+ function vi(e, o = 0) {
1333
+ return Le(At | o, e, !0);
1334
+ }
1335
+ function ct(e, o = [], t = [], i = []) {
1336
+ cl(i, o, t, (s) => {
1337
+ Le(At, () => e(...s.map(u)), !0);
1338
+ });
1339
+ }
1340
+ function wi(e, o = 0) {
1341
+ var t = Le(De | o, e, !0);
1342
+ return t;
1343
+ }
1344
+ function Te(e) {
1345
+ return Le(xe | wo, e, !0);
1346
+ }
1347
+ function Wn(e) {
1348
+ var o = e.teardown;
1349
+ if (o !== null) {
1350
+ const t = no, i = S;
1351
+ Bi(!0), pe(null);
1352
+ try {
1353
+ o.call(null);
1354
+ } finally {
1355
+ Bi(t), pe(i);
1356
+ }
1357
+ }
1358
+ }
1359
+ function xi(e, o = !1) {
1360
+ var t = e.first;
1361
+ for (e.first = e.last = null; t !== null; ) {
1362
+ const s = t.ac;
1363
+ s !== null && yi(() => {
1364
+ s.abort(uo);
1365
+ });
1366
+ var i = t.next;
1367
+ (t.f & so) !== 0 ? t.parent = null : K(t, o), t = i;
1368
+ }
1369
+ }
1370
+ function kl(e) {
1371
+ for (var o = e.first; o !== null; ) {
1372
+ var t = o.next;
1373
+ (o.f & xe) === 0 && K(o), o = t;
1374
+ }
1375
+ }
1376
+ function K(e, o = !0) {
1377
+ var t = !1;
1378
+ (o || (e.f & un) !== 0) && e.nodes !== null && e.nodes.end !== null && (Sl(
1379
+ e.nodes.start,
1380
+ /** @type {TemplateNode} */
1381
+ e.nodes.end
1382
+ ), t = !0), xi(e, o && !t), Qo(e, 0), R(e, Be);
1383
+ var i = e.nodes && e.nodes.t;
1384
+ if (i !== null)
1385
+ for (const n of i)
1386
+ n.stop();
1387
+ Wn(e);
1388
+ var s = e.parent;
1389
+ s !== null && s.first !== null && Fn(e), e.next = e.prev = e.teardown = e.ctx = e.deps = e.fn = e.nodes = e.ac = null;
1390
+ }
1391
+ function Sl(e, o) {
1392
+ for (; e !== null; ) {
1393
+ var t = e === o ? null : /* @__PURE__ */ Ae(e);
1394
+ e.remove(), e = t;
1395
+ }
1396
+ }
1397
+ function Fn(e) {
1398
+ var o = e.parent, t = e.prev, i = e.next;
1399
+ t !== null && (t.next = i), i !== null && (i.prev = t), o !== null && (o.first === e && (o.first = i), o.last === e && (o.last = t));
1400
+ }
1401
+ function bo(e, o, t = !0) {
1402
+ var i = [];
1403
+ Xn(e, i, !0);
1404
+ var s = () => {
1405
+ t && K(e), o && o();
1406
+ }, n = i.length;
1407
+ if (n > 0) {
1408
+ var l = () => --n || s();
1409
+ for (var r of i)
1410
+ r.out(l);
1411
+ } else
1412
+ s();
1413
+ }
1414
+ function Xn(e, o, t) {
1415
+ if ((e.f & te) === 0) {
1416
+ e.f ^= te;
1417
+ var i = e.nodes && e.nodes.t;
1418
+ if (i !== null)
1419
+ for (const r of i)
1420
+ (r.is_global || t) && o.push(r);
1421
+ for (var s = e.first; s !== null; ) {
1422
+ var n = s.next, l = (s.f & Ao) !== 0 || // If this is a branch effect without a block effect parent,
1423
+ // it means the parent block effect was pruned. In that case,
1424
+ // transparency information was transferred to the branch effect.
1425
+ (s.f & xe) !== 0 && (e.f & De) !== 0;
1426
+ Xn(s, o, l ? t : !1), s = n;
1427
+ }
1428
+ }
1429
+ }
1430
+ function ki(e) {
1431
+ Un(e, !0);
1432
+ }
1433
+ function Un(e, o) {
1434
+ if ((e.f & te) !== 0) {
1435
+ e.f ^= te, (e.f & H) === 0 && (R(e, X), ye(e));
1436
+ for (var t = e.first; t !== null; ) {
1437
+ var i = t.next, s = (t.f & Ao) !== 0 || (t.f & xe) !== 0;
1438
+ Un(t, s ? o : !1), t = i;
1439
+ }
1440
+ var n = e.nodes && e.nodes.t;
1441
+ if (n !== null)
1442
+ for (const l of n)
1443
+ (l.is_global || o) && l.in();
1444
+ }
1445
+ }
1446
+ function Jn(e, o) {
1447
+ if (e.nodes)
1448
+ for (var t = e.nodes.start, i = e.nodes.end; t !== null; ) {
1449
+ var s = t === i ? null : /* @__PURE__ */ Ae(t);
1450
+ o.append(t), t = s;
1451
+ }
1452
+ }
1453
+ let yt = !1, no = !1;
1454
+ function Bi(e) {
1455
+ no = e;
1456
+ }
1457
+ let S = null, be = !1;
1458
+ function pe(e) {
1459
+ S = e;
1460
+ }
1461
+ let C = null;
1462
+ function Ce(e) {
1463
+ C = e;
1464
+ }
1465
+ let ce = null;
1466
+ function Kn(e) {
1467
+ S !== null && (ce === null ? ce = [e] : ce.push(e));
1468
+ }
1469
+ let Y = null, oe = 0, le = null;
1470
+ function Il(e) {
1471
+ le = e;
1472
+ }
1473
+ let qn = 1, mo = 0, ho = mo;
1474
+ function Gi(e) {
1475
+ ho = e;
1476
+ }
1477
+ function Yn() {
1478
+ return ++qn;
1479
+ }
1480
+ function tt(e) {
1481
+ var o = e.f;
1482
+ if ((o & X) !== 0)
1483
+ return !0;
1484
+ if (o & F && (e.f &= ~go), (o & we) !== 0) {
1485
+ for (var t = (
1486
+ /** @type {Value[]} */
1487
+ e.deps
1488
+ ), i = t.length, s = 0; s < i; s++) {
1489
+ var n = t[s];
1490
+ if (tt(
1491
+ /** @type {Derived} */
1492
+ n
1493
+ ) && zn(
1494
+ /** @type {Derived} */
1495
+ n
1496
+ ), n.wv > e.wv)
1497
+ return !0;
1498
+ }
1499
+ (o & ae) !== 0 && // During time traveling we don't want to reset the status so that
1500
+ // traversal of the graph in the other batches still happens
1501
+ ve === null && R(e, H);
1502
+ }
1503
+ return !1;
1504
+ }
1505
+ function Zn(e, o, t = !0) {
1506
+ var i = e.reactions;
1507
+ if (i !== null && !(ce !== null && Co.call(ce, e)))
1508
+ for (var s = 0; s < i.length; s++) {
1509
+ var n = i[s];
1510
+ (n.f & F) !== 0 ? Zn(
1511
+ /** @type {Derived} */
1512
+ n,
1513
+ o,
1514
+ !1
1515
+ ) : o === n && (t ? R(n, X) : (n.f & H) !== 0 && R(n, we), ye(
1516
+ /** @type {Effect} */
1517
+ n
1518
+ ));
1519
+ }
1520
+ }
1521
+ function Qn(e) {
1522
+ var o, t = Y, i = oe, s = le, n = S, l = ce, r = ne, a = be, c = ho, d = e.f;
1523
+ Y = /** @type {null | Value[]} */
1524
+ null, oe = 0, le = null, S = (d & (xe | so)) === 0 ? e : null, ce = null, Lo(e.ctx), be = !1, ho = ++mo, e.ac !== null && (yi(() => {
1525
+ e.ac.abort(uo);
1526
+ }), e.ac = null);
1527
+ try {
1528
+ e.f |= Jt;
1529
+ var g = (
1530
+ /** @type {Function} */
1531
+ e.fn
1532
+ ), f = g();
1533
+ e.f |= Ro;
1534
+ var h = e.deps, y = M?.is_fork;
1535
+ if (Y !== null) {
1536
+ var w;
1537
+ if (y || Qo(e, oe), h !== null && oe > 0)
1538
+ for (h.length = oe + Y.length, w = 0; w < Y.length; w++)
1539
+ h[oe + w] = Y[w];
1540
+ else
1541
+ e.deps = h = Y;
1542
+ if (bi() && (e.f & ae) !== 0)
1543
+ for (w = oe; w < h.length; w++)
1544
+ ((o = h[w]).reactions ?? (o.reactions = [])).push(e);
1545
+ } else !y && h !== null && oe < h.length && (Qo(e, oe), h.length = oe);
1546
+ if (yn() && le !== null && !be && h !== null && (e.f & (F | we | X)) === 0)
1547
+ for (w = 0; w < /** @type {Source[]} */
1548
+ le.length; w++)
1549
+ Zn(
1550
+ le[w],
1551
+ /** @type {Effect} */
1552
+ e
1553
+ );
1554
+ if (n !== null && n !== e) {
1555
+ if (mo++, n.deps !== null)
1556
+ for (let m = 0; m < i; m += 1)
1557
+ n.deps[m].rv = mo;
1558
+ if (t !== null)
1559
+ for (const m of t)
1560
+ m.rv = mo;
1561
+ le !== null && (s === null ? s = le : s.push(.../** @type {Source[]} */
1562
+ le));
1563
+ }
1564
+ return (e.f & to) !== 0 && (e.f ^= to), f;
1565
+ } catch (m) {
1566
+ return vn(m);
1567
+ } finally {
1568
+ e.f ^= Jt, Y = t, oe = i, le = s, S = n, ce = l, Lo(r), be = a, ho = c;
1569
+ }
1570
+ }
1571
+ function $l(e, o) {
1572
+ let t = o.reactions;
1573
+ if (t !== null) {
1574
+ var i = As.call(t, e);
1575
+ if (i !== -1) {
1576
+ var s = t.length - 1;
1577
+ s === 0 ? t = o.reactions = null : (t[i] = t[s], t.pop());
1578
+ }
1579
+ }
1580
+ if (t === null && (o.f & F) !== 0 && // Destroying a child effect while updating a parent effect can cause a dependency to appear
1581
+ // to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`
1582
+ // allows us to skip the expensive work of disconnecting and immediately reconnecting it
1583
+ (Y === null || !Co.call(Y, o))) {
1584
+ var n = (
1585
+ /** @type {Derived} */
1586
+ o
1587
+ );
1588
+ (n.f & ae) !== 0 && (n.f ^= ae, n.f &= ~go), hi(n), hl(n), Qo(n, 0);
1589
+ }
1590
+ }
1591
+ function Qo(e, o) {
1592
+ var t = e.deps;
1593
+ if (t !== null)
1594
+ for (var i = o; i < t.length; i++)
1595
+ $l(e, t[i]);
1596
+ }
1597
+ function Mo(e) {
1598
+ var o = e.f;
1599
+ if ((o & Be) === 0) {
1600
+ R(e, H);
1601
+ var t = C, i = yt;
1602
+ C = e, yt = !0;
1603
+ try {
1604
+ (o & (De | dn)) !== 0 ? kl(e) : xi(e), Wn(e);
1605
+ var s = Qn(e);
1606
+ e.teardown = typeof s == "function" ? s : null, e.wv = qn;
1607
+ var n;
1608
+ Cs && el && (e.f & X) !== 0 && e.deps;
1609
+ } finally {
1610
+ yt = i, C = t;
1611
+ }
1612
+ }
1613
+ }
1614
+ function u(e) {
1615
+ var o = e.f, t = (o & F) !== 0;
1616
+ if (S !== null && !be) {
1617
+ var i = C !== null && (C.f & Be) !== 0;
1618
+ if (!i && (ce === null || !Co.call(ce, e))) {
1619
+ var s = S.deps;
1620
+ if ((S.f & Jt) !== 0)
1621
+ e.rv < mo && (e.rv = mo, Y === null && s !== null && s[oe] === e ? oe++ : Y === null ? Y = [e] : Y.push(e));
1622
+ else {
1623
+ (S.deps ?? (S.deps = [])).push(e);
1624
+ var n = e.reactions;
1625
+ n === null ? e.reactions = [S] : Co.call(n, S) || n.push(S);
1626
+ }
1627
+ }
1628
+ }
1629
+ if (no && io.has(e))
1630
+ return io.get(e);
1631
+ if (t) {
1632
+ var l = (
1633
+ /** @type {Derived} */
1634
+ e
1635
+ );
1636
+ if (no) {
1637
+ var r = l.v;
1638
+ return ((l.f & H) === 0 && l.reactions !== null || os(l)) && (r = gi(l)), io.set(l, r), r;
1639
+ }
1640
+ var a = (l.f & ae) === 0 && !be && S !== null && (yt || (S.f & ae) !== 0), c = (l.f & Ro) === 0;
1641
+ tt(l) && (a && (l.f |= ae), zn(l)), a && !c && (jn(l), es(l));
1642
+ }
1643
+ if (ve?.has(e))
1644
+ return ve.get(e);
1645
+ if ((e.f & to) !== 0)
1646
+ throw e.v;
1647
+ return e.v;
1648
+ }
1649
+ function es(e) {
1650
+ if (e.f |= ae, e.deps !== null)
1651
+ for (const o of e.deps)
1652
+ (o.reactions ?? (o.reactions = [])).push(e), (o.f & F) !== 0 && (o.f & ae) === 0 && (jn(
1653
+ /** @type {Derived} */
1654
+ o
1655
+ ), es(
1656
+ /** @type {Derived} */
1657
+ o
1658
+ ));
1659
+ }
1660
+ function os(e) {
1661
+ if (e.v === W) return !0;
1662
+ if (e.deps === null) return !1;
1663
+ for (const o of e.deps)
1664
+ if (io.has(o) || (o.f & F) !== 0 && os(
1665
+ /** @type {Derived} */
1666
+ o
1667
+ ))
1668
+ return !0;
1669
+ return !1;
1670
+ }
1671
+ function Si(e) {
1672
+ var o = be;
1673
+ try {
1674
+ return be = !0, e();
1675
+ } finally {
1676
+ be = o;
1677
+ }
1678
+ }
1679
+ const So = /* @__PURE__ */ Symbol("events"), ts = /* @__PURE__ */ new Set(), si = /* @__PURE__ */ new Set();
1680
+ function Tl(e, o, t, i = {}) {
1681
+ function s(n) {
1682
+ if (i.capture || li.call(o, n), !n.cancelBubble)
1683
+ return yi(() => t?.call(this, n));
1684
+ }
1685
+ return e.startsWith("pointer") || e.startsWith("touch") || e === "wheel" ? Ge(() => {
1686
+ o.addEventListener(e, s, i);
1687
+ }) : o.addEventListener(e, s, i), s;
1688
+ }
1689
+ function Cl(e, o, t, i, s) {
1690
+ var n = { capture: i, passive: s }, l = Tl(e, o, t, n);
1691
+ (o === document.body || // @ts-ignore
1692
+ o === window || // @ts-ignore
1693
+ o === document || // Firefox has quirky behavior, it can happen that we still get "canplay" events when the element is already removed
1694
+ o instanceof HTMLMediaElement) && Bn(() => {
1695
+ o.removeEventListener(e, l, n);
1696
+ });
1697
+ }
1698
+ function Me(e, o, t) {
1699
+ (o[So] ?? (o[So] = {}))[e] = t;
1700
+ }
1701
+ function Al(e) {
1702
+ for (var o = 0; o < e.length; o++)
1703
+ ts.add(e[o]);
1704
+ for (var t of si)
1705
+ t(e);
1706
+ }
1707
+ let Di = null;
1708
+ function li(e) {
1709
+ var o = this, t = (
1710
+ /** @type {Node} */
1711
+ o.ownerDocument
1712
+ ), i = e.type, s = e.composedPath?.() || [], n = (
1713
+ /** @type {null | Element} */
1714
+ s[0] || e.target
1715
+ );
1716
+ Di = e;
1717
+ var l = 0, r = Di === e && e[So];
1718
+ if (r) {
1719
+ var a = s.indexOf(r);
1720
+ if (a !== -1 && (o === document || o === /** @type {any} */
1721
+ window)) {
1722
+ e[So] = o;
1723
+ return;
1724
+ }
1725
+ var c = s.indexOf(o);
1726
+ if (c === -1)
1727
+ return;
1728
+ a <= c && (l = a);
1729
+ }
1730
+ if (n = /** @type {Element} */
1731
+ s[l] || e.target, n !== o) {
1732
+ xt(e, "currentTarget", {
1733
+ configurable: !0,
1734
+ get() {
1735
+ return n || t;
1736
+ }
1737
+ });
1738
+ var d = S, g = C;
1739
+ pe(null), Ce(null);
1740
+ try {
1741
+ for (var f, h = []; n !== null; ) {
1742
+ var y = n.assignedSlot || n.parentNode || /** @type {any} */
1743
+ n.host || null;
1744
+ try {
1745
+ var w = n[So]?.[i];
1746
+ w != null && (!/** @type {any} */
1747
+ n.disabled || // DOM could've been updated already by the time this is reached, so we check this as well
1748
+ // -> the target could not have been disabled because it emits the event in the first place
1749
+ e.target === n) && w.call(n, e);
1750
+ } catch (m) {
1751
+ f ? h.push(m) : f = m;
1752
+ }
1753
+ if (e.cancelBubble || y === o || y === null)
1754
+ break;
1755
+ n = y;
1756
+ }
1757
+ if (f) {
1758
+ for (let m of h)
1759
+ queueMicrotask(() => {
1760
+ throw m;
1761
+ });
1762
+ throw f;
1763
+ }
1764
+ } finally {
1765
+ e[So] = o, delete e.currentTarget, pe(d), Ce(g);
1766
+ }
1767
+ }
1768
+ }
1769
+ const Ll = (
1770
+ // We gotta write it like this because after downleveling the pure comment may end up in the wrong location
1771
+ globalThis?.window?.trustedTypes && /* @__PURE__ */ globalThis.window.trustedTypes.createPolicy("svelte-trusted-html", {
1772
+ /** @param {string} html */
1773
+ createHTML: (e) => e
1774
+ })
1775
+ );
1776
+ function zl(e) {
1777
+ return (
1778
+ /** @type {string} */
1779
+ Ll?.createHTML(e) ?? e
1780
+ );
1781
+ }
1782
+ function jl(e, o = !1) {
1783
+ var t = _i("template");
1784
+ return e = e.replaceAll("<!>", "<!---->"), t.innerHTML = o ? zl(e) : e, t.content;
1785
+ }
1786
+ function vo(e, o) {
1787
+ var t = (
1788
+ /** @type {Effect} */
1789
+ C
1790
+ );
1791
+ t.nodes === null && (t.nodes = { start: e, end: o, a: null, t: null });
1792
+ }
1793
+ // @__NO_SIDE_EFFECTS__
1794
+ function No(e, o) {
1795
+ var t = (o & Ts) !== 0, i, s = !e.startsWith("<!>");
1796
+ return () => {
1797
+ if ($)
1798
+ return vo(T, null), T;
1799
+ i === void 0 && (i = jl(s ? e : "<!>" + e, !0), i = /** @type {TemplateNode} */
1800
+ /* @__PURE__ */ Eo(i));
1801
+ var n = (
1802
+ /** @type {TemplateNode} */
1803
+ t || Nn ? document.importNode(i, !0) : i.cloneNode(!0)
1804
+ );
1805
+ return vo(n, n), n;
1806
+ };
1807
+ }
1808
+ function Wt(e = "") {
1809
+ if (!$) {
1810
+ var o = ie(e + "");
1811
+ return vo(o, o), o;
1812
+ }
1813
+ var t = T;
1814
+ return t.nodeType !== et ? (t.before(t = ie()), J(t)) : Mt(
1815
+ /** @type {Text} */
1816
+ t
1817
+ ), vo(t, t), t;
1818
+ }
1819
+ function El() {
1820
+ if ($)
1821
+ return vo(T, null), T;
1822
+ var e = document.createDocumentFragment(), o = document.createComment(""), t = ie();
1823
+ return e.append(o, t), vo(o, t), e;
1824
+ }
1825
+ function me(e, o) {
1826
+ if ($) {
1827
+ var t = (
1828
+ /** @type {Effect & { nodes: EffectNodes }} */
1829
+ C
1830
+ );
1831
+ ((t.f & Ro) === 0 || t.nodes.end === null) && (t.nodes.end = T), zt();
1832
+ return;
1833
+ }
1834
+ e !== null && e.before(
1835
+ /** @type {Node} */
1836
+ o
1837
+ );
1838
+ }
1839
+ const Ml = ["touchstart", "touchmove"];
1840
+ function Rl(e) {
1841
+ return Ml.includes(e);
1842
+ }
1843
+ function fe(e, o) {
1844
+ var t = o == null ? "" : typeof o == "object" ? o + "" : o;
1845
+ t !== (e.__t ?? (e.__t = e.nodeValue)) && (e.__t = t, e.nodeValue = t + "");
1846
+ }
1847
+ function is(e, o) {
1848
+ return ns(e, o);
1849
+ }
1850
+ function Nl(e, o) {
1851
+ ni(), o.intro = o.intro ?? !1;
1852
+ const t = o.target, i = $, s = T;
1853
+ try {
1854
+ for (var n = /* @__PURE__ */ Eo(t); n && (n.nodeType !== ot || /** @type {Comment} */
1855
+ n.data !== ui); )
1856
+ n = /* @__PURE__ */ Ae(n);
1857
+ if (!n)
1858
+ throw To;
1859
+ He(!0), J(
1860
+ /** @type {Comment} */
1861
+ n
1862
+ );
1863
+ const l = ns(e, { ...o, anchor: n });
1864
+ return He(!1), /** @type {Exports} */
1865
+ l;
1866
+ } catch (l) {
1867
+ if (l instanceof Error && l.message.split(`
1868
+ `).some((r) => r.startsWith("https://svelte.dev/e/")))
1869
+ throw l;
1870
+ return l !== To && console.warn("Failed to hydrate: ", l), o.recover === !1 && Xs(), ni(), Pn(t), He(!1), is(e, o);
1871
+ } finally {
1872
+ He(i), J(s);
1873
+ }
1874
+ }
1875
+ const pt = /* @__PURE__ */ new Map();
1876
+ function ns(e, { target: o, anchor: t, props: i = {}, events: s, context: n, intro: l = !0 }) {
1877
+ ni();
1878
+ var r = void 0, a = wl(() => {
1879
+ var c = t ?? o.appendChild(ie());
1880
+ rl(
1881
+ /** @type {TemplateNode} */
1882
+ c,
1883
+ {
1884
+ pending: () => {
1885
+ }
1886
+ },
1887
+ (f) => {
1888
+ gn({});
1889
+ var h = (
1890
+ /** @type {ComponentContext} */
1891
+ ne
1892
+ );
1893
+ if (n && (h.c = n), s && (i.$$events = s), $ && vo(
1894
+ /** @type {TemplateNode} */
1895
+ f,
1896
+ null
1897
+ ), r = e(f, i) || {}, $ && (C.nodes.end = T, T === null || T.nodeType !== ot || /** @type {Comment} */
1898
+ T.data !== fi))
1899
+ throw Lt(), To;
1900
+ _n();
1901
+ }
1902
+ );
1903
+ var d = /* @__PURE__ */ new Set(), g = (f) => {
1904
+ for (var h = 0; h < f.length; h++) {
1905
+ var y = f[h];
1906
+ if (!d.has(y)) {
1907
+ d.add(y);
1908
+ var w = Rl(y);
1909
+ for (const j of [o, document]) {
1910
+ var m = pt.get(j);
1911
+ m === void 0 && (m = /* @__PURE__ */ new Map(), pt.set(j, m));
1912
+ var _ = m.get(y);
1913
+ _ === void 0 ? (j.addEventListener(y, li, { passive: w }), m.set(y, 1)) : m.set(y, _ + 1);
1914
+ }
1915
+ }
1916
+ }
1917
+ };
1918
+ return g(Ct(ts)), si.add(g), () => {
1919
+ for (var f of d)
1920
+ for (const w of [o, document]) {
1921
+ var h = (
1922
+ /** @type {Map<string, number>} */
1923
+ pt.get(w)
1924
+ ), y = (
1925
+ /** @type {number} */
1926
+ h.get(f)
1927
+ );
1928
+ --y == 0 ? (w.removeEventListener(f, li), h.delete(f), h.size === 0 && pt.delete(w)) : h.set(f, y);
1929
+ }
1930
+ si.delete(g), c !== t && c.parentNode?.removeChild(c);
1931
+ };
1932
+ });
1933
+ return ri.set(r, a), r;
1934
+ }
1935
+ let ri = /* @__PURE__ */ new WeakMap();
1936
+ function Ol(e, o) {
1937
+ const t = ri.get(e);
1938
+ return t ? (ri.delete(e), t(o)) : Promise.resolve();
1939
+ }
1940
+ var Ie, Ye, $e, xo, bt, ai, ss;
1941
+ class Vl {
1942
+ /**
1943
+ * @param {TemplateNode} anchor
1944
+ * @param {boolean} transition
1945
+ */
1946
+ constructor(o, t = !0) {
1947
+ v(this, "anchor"), x(this, Ie, /* @__PURE__ */ new Map()), x(this, Ye, /* @__PURE__ */ new Map()), x(this, $e, /* @__PURE__ */ new Map()), x(this, xo, /* @__PURE__ */ new Set()), x(this, bt, !0), x(this, ai, () => {
1948
+ var i = (
1949
+ /** @type {Batch} */
1950
+ M
1951
+ );
1952
+ if (p(this, Ie).has(i)) {
1953
+ var s = (
1954
+ /** @type {Key} */
1955
+ p(this, Ie).get(i)
1956
+ ), n = p(this, Ye).get(s);
1957
+ if (n)
1958
+ ki(n), p(this, xo).delete(s);
1959
+ else {
1960
+ var l = p(this, $e).get(s);
1961
+ l && (p(this, Ye).set(s, l.effect), p(this, $e).delete(s), l.fragment.lastChild.remove(), this.anchor.before(l.fragment), n = l.effect);
1962
+ }
1963
+ for (const [r, a] of p(this, Ie)) {
1964
+ if (p(this, Ie).delete(r), r === i)
1965
+ break;
1966
+ const c = p(this, $e).get(a);
1967
+ c && (K(c.effect), p(this, $e).delete(a));
1968
+ }
1969
+ for (const [r, a] of p(this, Ye)) {
1970
+ if (r === s || p(this, xo).has(r)) continue;
1971
+ const c = () => {
1972
+ if (Array.from(p(this, Ie).values()).includes(r)) {
1973
+ var d = document.createDocumentFragment();
1974
+ Jn(a, d), d.append(ie()), p(this, $e).set(r, { effect: a, fragment: d });
1975
+ } else
1976
+ K(a);
1977
+ p(this, xo).delete(r), p(this, Ye).delete(r);
1978
+ };
1979
+ p(this, bt) || !n ? (p(this, xo).add(r), bo(a, c, !1)) : c();
1980
+ }
1981
+ }
1982
+ }), x(this, ss, (i) => {
1983
+ p(this, Ie).delete(i);
1984
+ const s = Array.from(p(this, Ie).values());
1985
+ for (const [n, l] of p(this, $e))
1986
+ s.includes(n) || (K(l.effect), p(this, $e).delete(n));
1987
+ }), this.anchor = o, b(this, bt, t);
1988
+ }
1989
+ /**
1990
+ *
1991
+ * @param {any} key
1992
+ * @param {null | ((target: TemplateNode) => void)} fn
1993
+ */
1994
+ ensure(o, t) {
1995
+ var i = (
1996
+ /** @type {Batch} */
1997
+ M
1998
+ ), s = Hn();
1999
+ t && !p(this, Ye).has(o) && !p(this, $e).has(o) && p(this, Ye).set(
2000
+ o,
2001
+ Te(() => t(this.anchor))
2002
+ ), p(this, Ie).set(i, o), s || ($ && (this.anchor = T), p(this, ai).call(this));
2003
+ }
2004
+ }
2005
+ Ie = /* @__PURE__ */ new WeakMap(), Ye = /* @__PURE__ */ new WeakMap(), $e = /* @__PURE__ */ new WeakMap(), xo = /* @__PURE__ */ new WeakMap(), bt = /* @__PURE__ */ new WeakMap(), ai = /* @__PURE__ */ new WeakMap(), ss = /* @__PURE__ */ new WeakMap();
2006
+ function Pl(e) {
2007
+ ne === null && Ps(), _t(() => {
2008
+ const o = Si(e);
2009
+ if (typeof o == "function") return (
2010
+ /** @type {() => void} */
2011
+ o
2012
+ );
2013
+ });
2014
+ }
2015
+ function Ft(e, o, t = !1) {
2016
+ $ && zt();
2017
+ var i = new Vl(e), s = t ? Ao : 0;
2018
+ function n(l, r) {
2019
+ if ($) {
2020
+ const d = fn(e);
2021
+ var a;
2022
+ if (d === ui ? a = 0 : d === Tt ? a = !1 : a = parseInt(d.substring(1)), l !== a) {
2023
+ var c = kt();
2024
+ J(c), i.anchor = c, He(!1), i.ensure(l, r), He(!0);
2025
+ return;
2026
+ }
2027
+ }
2028
+ i.ensure(l, r);
2029
+ }
2030
+ wi(() => {
2031
+ var l = !1;
2032
+ o((r, a = 0) => {
2033
+ l = !0, n(a, r);
2034
+ }), l || n(!1, null);
2035
+ }, s);
2036
+ }
2037
+ function Wi(e, o) {
2038
+ return o;
2039
+ }
2040
+ function Hl(e, o, t) {
2041
+ for (var i = [], s = o.length, n, l = o.length, r = 0; r < s; r++) {
2042
+ let g = o[r];
2043
+ bo(
2044
+ g,
2045
+ () => {
2046
+ if (n) {
2047
+ if (n.pending.delete(g), n.done.add(g), n.pending.size === 0) {
2048
+ var f = (
2049
+ /** @type {Set<EachOutroGroup>} */
2050
+ e.outrogroups
2051
+ );
2052
+ ci(Ct(n.done)), f.delete(n), f.size === 0 && (e.outrogroups = null);
2053
+ }
2054
+ } else
2055
+ l -= 1;
2056
+ },
2057
+ !1
2058
+ );
2059
+ }
2060
+ if (l === 0) {
2061
+ var a = i.length === 0 && t !== null;
2062
+ if (a) {
2063
+ var c = (
2064
+ /** @type {Element} */
2065
+ t
2066
+ ), d = (
2067
+ /** @type {Element} */
2068
+ c.parentNode
2069
+ );
2070
+ Pn(d), d.append(c), e.items.clear();
2071
+ }
2072
+ ci(o, !a);
2073
+ } else
2074
+ n = {
2075
+ pending: new Set(o),
2076
+ done: /* @__PURE__ */ new Set()
2077
+ }, (e.outrogroups ?? (e.outrogroups = /* @__PURE__ */ new Set())).add(n);
2078
+ }
2079
+ function ci(e, o = !0) {
2080
+ for (var t = 0; t < e.length; t++)
2081
+ K(e[t], o);
2082
+ }
2083
+ var dt;
2084
+ function ut(e, o, t, i, s, n = null) {
2085
+ var l = e, r = /* @__PURE__ */ new Map(), a = (o & ln) !== 0;
2086
+ if (a) {
2087
+ var c = (
2088
+ /** @type {Element} */
2089
+ e
2090
+ );
2091
+ l = $ ? J(/* @__PURE__ */ Eo(c)) : c.appendChild(ie());
2092
+ }
2093
+ $ && zt();
2094
+ var d = null, g = /* @__PURE__ */ ul(() => {
2095
+ var _ = t();
2096
+ return an(_) ? _ : _ == null ? [] : Ct(_);
2097
+ }), f, h = !0;
2098
+ function y() {
2099
+ m.fallback = d, Bl(m, f, l, o, i), d !== null && (f.length === 0 ? (d.f & Pe) === 0 ? ki(d) : (d.f ^= Pe, Uo(d, null, l)) : bo(d, () => {
2100
+ d = null;
2101
+ }));
2102
+ }
2103
+ var w = wi(() => {
2104
+ f = /** @type {V[]} */
2105
+ u(g);
2106
+ var _ = f.length;
2107
+ let j = !1;
2108
+ if ($) {
2109
+ var se = fn(l) === Tt;
2110
+ se !== (_ === 0) && (l = kt(), J(l), He(!1), j = !0);
2111
+ }
2112
+ for (var q = /* @__PURE__ */ new Set(), je = (
2113
+ /** @type {Batch} */
2114
+ M
2115
+ ), We = Hn(), U = 0; U < _; U += 1) {
2116
+ $ && T.nodeType === ot && /** @type {Comment} */
2117
+ T.data === fi && (l = /** @type {Comment} */
2118
+ T, j = !0, He(!1));
2119
+ var ke = f[U], Ee = i(ke, U), P = h ? null : r.get(Ee);
2120
+ P ? (P.v && jo(P.v, ke), P.i && jo(P.i, U), We && je.unskip_effect(P.e)) : (P = Gl(
2121
+ r,
2122
+ h ? l : dt ?? (dt = ie()),
2123
+ ke,
2124
+ Ee,
2125
+ U,
2126
+ s,
2127
+ o,
2128
+ t
2129
+ ), h || (P.e.f |= Pe), r.set(Ee, P)), q.add(Ee);
2130
+ }
2131
+ if (_ === 0 && n && !d && (h ? d = Te(() => n(l)) : (d = Te(() => n(dt ?? (dt = ie()))), d.f |= Pe)), _ > q.size && Bs(), $ && _ > 0 && J(kt()), !h)
2132
+ if (We) {
2133
+ for (const [Ot, it] of r)
2134
+ q.has(Ot) || je.skip_effect(it.e);
2135
+ je.oncommit(y), je.ondiscard(() => {
2136
+ });
2137
+ } else
2138
+ y();
2139
+ j && He(!0), u(g);
2140
+ }), m = { effect: w, items: r, outrogroups: null, fallback: d };
2141
+ h = !1, $ && (l = T);
2142
+ }
2143
+ function Ho(e) {
2144
+ for (; e !== null && (e.f & xe) === 0; )
2145
+ e = e.next;
2146
+ return e;
2147
+ }
2148
+ function Bl(e, o, t, i, s) {
2149
+ var n = (i & Is) !== 0, l = o.length, r = e.items, a = Ho(e.effect.first), c, d = null, g, f = [], h = [], y, w, m, _;
2150
+ if (n)
2151
+ for (_ = 0; _ < l; _ += 1)
2152
+ y = o[_], w = s(y, _), m = /** @type {EachItem} */
2153
+ r.get(w).e, (m.f & Pe) === 0 && (m.nodes?.a?.measure(), (g ?? (g = /* @__PURE__ */ new Set())).add(m));
2154
+ for (_ = 0; _ < l; _ += 1) {
2155
+ if (y = o[_], w = s(y, _), m = /** @type {EachItem} */
2156
+ r.get(w).e, e.outrogroups !== null)
2157
+ for (const P of e.outrogroups)
2158
+ P.pending.delete(m), P.done.delete(m);
2159
+ if ((m.f & Pe) !== 0)
2160
+ if (m.f ^= Pe, m === a)
2161
+ Uo(m, null, t);
2162
+ else {
2163
+ var j = d ? d.next : a;
2164
+ m === e.effect.last && (e.effect.last = m.prev), m.prev && (m.prev.next = m.next), m.next && (m.next.prev = m.prev), Xe(e, d, m), Xe(e, m, j), Uo(m, j, t), d = m, f = [], h = [], a = Ho(d.next);
2165
+ continue;
2166
+ }
2167
+ if ((m.f & te) !== 0 && (ki(m), n && (m.nodes?.a?.unfix(), (g ?? (g = /* @__PURE__ */ new Set())).delete(m))), m !== a) {
2168
+ if (c !== void 0 && c.has(m)) {
2169
+ if (f.length < h.length) {
2170
+ var se = h[0], q;
2171
+ d = se.prev;
2172
+ var je = f[0], We = f[f.length - 1];
2173
+ for (q = 0; q < f.length; q += 1)
2174
+ Uo(f[q], se, t);
2175
+ for (q = 0; q < h.length; q += 1)
2176
+ c.delete(h[q]);
2177
+ Xe(e, je.prev, We.next), Xe(e, d, je), Xe(e, We, se), a = se, d = We, _ -= 1, f = [], h = [];
2178
+ } else
2179
+ c.delete(m), Uo(m, a, t), Xe(e, m.prev, m.next), Xe(e, m, d === null ? e.effect.first : d.next), Xe(e, d, m), d = m;
2180
+ continue;
2181
+ }
2182
+ for (f = [], h = []; a !== null && a !== m; )
2183
+ (c ?? (c = /* @__PURE__ */ new Set())).add(a), h.push(a), a = Ho(a.next);
2184
+ if (a === null)
2185
+ continue;
2186
+ }
2187
+ (m.f & Pe) === 0 && f.push(m), d = m, a = Ho(m.next);
2188
+ }
2189
+ if (e.outrogroups !== null) {
2190
+ for (const P of e.outrogroups)
2191
+ P.pending.size === 0 && (ci(Ct(P.done)), e.outrogroups?.delete(P));
2192
+ e.outrogroups.size === 0 && (e.outrogroups = null);
2193
+ }
2194
+ if (a !== null || c !== void 0) {
2195
+ var U = [];
2196
+ if (c !== void 0)
2197
+ for (m of c)
2198
+ (m.f & te) === 0 && U.push(m);
2199
+ for (; a !== null; )
2200
+ (a.f & te) === 0 && a !== e.fallback && U.push(a), a = Ho(a.next);
2201
+ var ke = U.length;
2202
+ if (ke > 0) {
2203
+ var Ee = (i & ln) !== 0 && l === 0 ? t : null;
2204
+ if (n) {
2205
+ for (_ = 0; _ < ke; _ += 1)
2206
+ U[_].nodes?.a?.measure();
2207
+ for (_ = 0; _ < ke; _ += 1)
2208
+ U[_].nodes?.a?.fix();
2209
+ }
2210
+ Hl(e, U, Ee);
2211
+ }
2212
+ }
2213
+ n && Ge(() => {
2214
+ if (g !== void 0)
2215
+ for (m of g)
2216
+ m.nodes?.a?.apply();
2217
+ });
2218
+ }
2219
+ function Gl(e, o, t, i, s, n, l, r) {
2220
+ var a = (l & ks) !== 0 ? (l & $s) === 0 ? /* @__PURE__ */ Mn(t, !1, !1) : yo(t) : null, c = (l & Ss) !== 0 ? yo(s) : null;
2221
+ return {
2222
+ v: a,
2223
+ i: c,
2224
+ e: Te(() => (n(o, a ?? t, c ?? s, r), () => {
2225
+ e.delete(i);
2226
+ }))
2227
+ };
2228
+ }
2229
+ function Uo(e, o, t) {
2230
+ if (e.nodes)
2231
+ for (var i = e.nodes.start, s = e.nodes.end, n = o && (o.f & Pe) === 0 ? (
2232
+ /** @type {EffectNodes} */
2233
+ o.nodes.start
2234
+ ) : t; i !== null; ) {
2235
+ var l = (
2236
+ /** @type {TemplateNode} */
2237
+ /* @__PURE__ */ Ae(i)
2238
+ );
2239
+ if (n.before(i), i === s)
2240
+ return;
2241
+ i = l;
2242
+ }
2243
+ }
2244
+ function Xe(e, o, t) {
2245
+ o === null ? e.effect.first = t : o.next = t, t === null ? e.effect.last = o : t.prev = o;
2246
+ }
2247
+ function Dl(e, o) {
2248
+ Dn(() => {
2249
+ var t = e.getRootNode(), i = (
2250
+ /** @type {ShadowRoot} */
2251
+ t.host ? (
2252
+ /** @type {ShadowRoot} */
2253
+ t
2254
+ ) : (
2255
+ /** @type {Document} */
2256
+ t.head ?? /** @type {Document} */
2257
+ t.ownerDocument.head
2258
+ )
2259
+ );
2260
+ if (!i.querySelector("#" + o.hash)) {
2261
+ const s = _i("style");
2262
+ s.id = o.hash, s.textContent = o.code, i.appendChild(s);
2263
+ }
2264
+ });
2265
+ }
2266
+ const Fi = [...`
2267
+ \r\f \v\uFEFF`];
2268
+ function Wl(e, o, t) {
2269
+ var i = e == null ? "" : "" + e;
2270
+ if (o && (i = i ? i + " " + o : o), t) {
2271
+ for (var s in t)
2272
+ if (t[s])
2273
+ i = i ? i + " " + s : s;
2274
+ else if (i.length)
2275
+ for (var n = s.length, l = 0; (l = i.indexOf(s, l)) >= 0; ) {
2276
+ var r = l + n;
2277
+ (l === 0 || Fi.includes(i[l - 1])) && (r === i.length || Fi.includes(i[r])) ? i = (l === 0 ? "" : i.substring(0, l)) + i.substring(r + 1) : l = r;
2278
+ }
2279
+ }
2280
+ return i === "" ? null : i;
2281
+ }
2282
+ function Fl(e, o) {
2283
+ return e == null ? null : String(e);
2284
+ }
2285
+ function ft(e, o, t, i, s, n) {
2286
+ var l = e.__className;
2287
+ if ($ || l !== t || l === void 0) {
2288
+ var r = Wl(t, i, n);
2289
+ (!$ || r !== e.getAttribute("class")) && (r == null ? e.removeAttribute("class") : e.className = r), e.__className = t;
2290
+ } else if (n && s !== n)
2291
+ for (var a in n) {
2292
+ var c = !!n[a];
2293
+ (s == null || c !== !!s[a]) && e.classList.toggle(a, c);
2294
+ }
2295
+ return n;
2296
+ }
2297
+ function Xt(e, o, t, i) {
2298
+ var s = e.__style;
2299
+ if ($ || s !== o) {
2300
+ var n = Fl(o);
2301
+ (!$ || n !== e.getAttribute("style")) && (n == null ? e.removeAttribute("style") : e.style.cssText = n), e.__style = o;
2302
+ }
2303
+ return i;
2304
+ }
2305
+ const Xl = /* @__PURE__ */ Symbol("is custom element"), Ul = /* @__PURE__ */ Symbol("is html"), Jl = Vs ? "link" : "LINK";
2306
+ function Bo(e, o, t, i) {
2307
+ var s = Kl(e);
2308
+ $ && (s[o] = e.getAttribute(o), o === "src" || o === "srcset" || o === "href" && e.nodeName === Jl) || s[o] !== (s[o] = t) && (o === "loading" && (e[Os] = t), t == null ? e.removeAttribute(o) : typeof t != "string" && ql(e).includes(o) ? e[o] = t : e.setAttribute(o, t));
2309
+ }
2310
+ function Kl(e) {
2311
+ return (
2312
+ /** @type {Record<string | symbol, unknown>} **/
2313
+ // @ts-expect-error
2314
+ e.__attributes ?? (e.__attributes = {
2315
+ [Xl]: e.nodeName.includes("-"),
2316
+ [Ul]: e.namespaceURI === rn
2317
+ })
2318
+ );
2319
+ }
2320
+ var Xi = /* @__PURE__ */ new Map();
2321
+ function ql(e) {
2322
+ var o = e.getAttribute("is") || e.nodeName, t = Xi.get(o);
2323
+ if (t) return t;
2324
+ Xi.set(o, t = []);
2325
+ for (var i, s = e, n = Element.prototype; n !== s; ) {
2326
+ i = Ls(s);
2327
+ for (var l in i)
2328
+ i[l].set && t.push(l);
2329
+ s = cn(s);
2330
+ }
2331
+ return t;
2332
+ }
2333
+ function Ui(e, o) {
2334
+ return e === o || e?.[mt] === o;
2335
+ }
2336
+ function Yl(e = {}, o, t, i) {
2337
+ return Dn(() => {
2338
+ var s, n;
2339
+ return vi(() => {
2340
+ s = n, n = [], Si(() => {
2341
+ e !== t(...n) && (o(e, ...n), s && Ui(t(...s), e) && o(null, ...s));
2342
+ });
2343
+ }), () => {
2344
+ Ge(() => {
2345
+ n && Ui(t(...n), e) && o(null, ...n);
2346
+ });
2347
+ };
2348
+ }), e;
2349
+ }
2350
+ function Ji(e, o, t, i) {
2351
+ var s = (
2352
+ /** @type {V} */
2353
+ i
2354
+ ), n = !0, l = () => (n && (n = !1, s = /** @type {V} */
2355
+ i), s), r;
2356
+ r = /** @type {V} */
2357
+ e[o], r === void 0 && i !== void 0 && (r = l());
2358
+ var a;
2359
+ a = () => {
2360
+ var f = (
2361
+ /** @type {V} */
2362
+ e[o]
2363
+ );
2364
+ return f === void 0 ? l() : (n = !0, f);
2365
+ };
2366
+ var c = !1, d = /* @__PURE__ */ Et(() => (c = !1, a())), g = (
2367
+ /** @type {Effect} */
2368
+ C
2369
+ );
2370
+ return (
2371
+ /** @type {() => V} */
2372
+ (function(f, h) {
2373
+ if (arguments.length > 0) {
2374
+ const y = h ? u(d) : f;
2375
+ return O(d, y), c = !0, s !== void 0 && (s = y), f;
2376
+ }
2377
+ return no && c || (g.f & Be) !== 0 ? d.v : u(d);
2378
+ })
2379
+ );
2380
+ }
2381
+ function Zl(e) {
2382
+ return new Ql(e);
2383
+ }
2384
+ var Ze, he;
2385
+ class Ql {
2386
+ /**
2387
+ * @param {ComponentConstructorOptions & {
2388
+ * component: any;
2389
+ * }} options
2390
+ */
2391
+ constructor(o) {
2392
+ x(this, Ze), x(this, he);
2393
+ var t = /* @__PURE__ */ new Map(), i = (n, l) => {
2394
+ var r = /* @__PURE__ */ Mn(l, !1, !1);
2395
+ return t.set(n, r), r;
2396
+ };
2397
+ const s = new Proxy(
2398
+ { ...o.props || {}, $$events: {} },
2399
+ {
2400
+ get(n, l) {
2401
+ return u(t.get(l) ?? i(l, Reflect.get(n, l)));
2402
+ },
2403
+ has(n, l) {
2404
+ return l === Ns ? !0 : (u(t.get(l) ?? i(l, Reflect.get(n, l))), Reflect.has(n, l));
2405
+ },
2406
+ set(n, l, r) {
2407
+ return O(t.get(l) ?? i(l, r), r), Reflect.set(n, l, r);
2408
+ }
2409
+ }
2410
+ );
2411
+ b(this, he, (o.hydrate ? Nl : is)(o.component, {
2412
+ target: o.target,
2413
+ anchor: o.anchor,
2414
+ props: s,
2415
+ context: o.context,
2416
+ intro: o.intro ?? !1,
2417
+ recover: o.recover
2418
+ })), (!o?.props?.$$host || o.sync === !1) && Zt(), b(this, Ze, s.$$events);
2419
+ for (const n of Object.keys(p(this, he)))
2420
+ n === "$set" || n === "$destroy" || n === "$on" || xt(this, n, {
2421
+ get() {
2422
+ return p(this, he)[n];
2423
+ },
2424
+ /** @param {any} value */
2425
+ set(l) {
2426
+ p(this, he)[n] = l;
2427
+ },
2428
+ enumerable: !0
2429
+ });
2430
+ p(this, he).$set = /** @param {Record<string, any>} next */
2431
+ (n) => {
2432
+ Object.assign(s, n);
2433
+ }, p(this, he).$destroy = () => {
2434
+ Ol(p(this, he));
2435
+ };
2436
+ }
2437
+ /** @param {Record<string, any>} props */
2438
+ $set(o) {
2439
+ p(this, he).$set(o);
2440
+ }
2441
+ /**
2442
+ * @param {string} event
2443
+ * @param {(...args: any[]) => any} callback
2444
+ * @returns {any}
2445
+ */
2446
+ $on(o, t) {
2447
+ p(this, Ze)[o] = p(this, Ze)[o] || [];
2448
+ const i = (...s) => t.call(this, ...s);
2449
+ return p(this, Ze)[o].push(i), () => {
2450
+ p(this, Ze)[o] = p(this, Ze)[o].filter(
2451
+ /** @param {any} fn */
2452
+ (s) => s !== i
2453
+ );
2454
+ };
2455
+ }
2456
+ $destroy() {
2457
+ p(this, he).$destroy();
2458
+ }
2459
+ }
2460
+ Ze = /* @__PURE__ */ new WeakMap(), he = /* @__PURE__ */ new WeakMap();
2461
+ let ls;
2462
+ typeof HTMLElement == "function" && (ls = class extends HTMLElement {
2463
+ /**
2464
+ * @param {*} $$componentCtor
2465
+ * @param {*} $$slots
2466
+ * @param {ShadowRootInit | undefined} shadow_root_init
2467
+ */
2468
+ constructor(e, o, t) {
2469
+ super(), v(this, "$$ctor"), v(this, "$$s"), v(this, "$$c"), v(this, "$$cn", !1), v(this, "$$d", {}), v(this, "$$r", !1), v(this, "$$p_d", {}), v(this, "$$l", {}), v(this, "$$l_u", /* @__PURE__ */ new Map()), v(this, "$$me"), v(this, "$$shadowRoot", null), this.$$ctor = e, this.$$s = o, t && (this.$$shadowRoot = this.attachShadow(t));
2470
+ }
2471
+ /**
2472
+ * @param {string} type
2473
+ * @param {EventListenerOrEventListenerObject} listener
2474
+ * @param {boolean | AddEventListenerOptions} [options]
2475
+ */
2476
+ addEventListener(e, o, t) {
2477
+ if (this.$$l[e] = this.$$l[e] || [], this.$$l[e].push(o), this.$$c) {
2478
+ const i = this.$$c.$on(e, o);
2479
+ this.$$l_u.set(o, i);
2480
+ }
2481
+ super.addEventListener(e, o, t);
2482
+ }
2483
+ /**
2484
+ * @param {string} type
2485
+ * @param {EventListenerOrEventListenerObject} listener
2486
+ * @param {boolean | AddEventListenerOptions} [options]
2487
+ */
2488
+ removeEventListener(e, o, t) {
2489
+ if (super.removeEventListener(e, o, t), this.$$c) {
2490
+ const i = this.$$l_u.get(o);
2491
+ i && (i(), this.$$l_u.delete(o));
2492
+ }
2493
+ }
2494
+ async connectedCallback() {
2495
+ if (this.$$cn = !0, !this.$$c) {
2496
+ let e = function(i) {
2497
+ return (s) => {
2498
+ const n = _i("slot");
2499
+ i !== "default" && (n.name = i), me(s, n);
2500
+ };
2501
+ };
2502
+ if (await Promise.resolve(), !this.$$cn || this.$$c)
2503
+ return;
2504
+ const o = {}, t = er(this);
2505
+ for (const i of this.$$s)
2506
+ i in t && (i === "default" && !this.$$d.children ? (this.$$d.children = e(i), o.default = !0) : o[i] = e(i));
2507
+ for (const i of this.attributes) {
2508
+ const s = this.$$g_p(i.name);
2509
+ s in this.$$d || (this.$$d[s] = vt(s, i.value, this.$$p_d, "toProp"));
2510
+ }
2511
+ for (const i in this.$$p_d)
2512
+ !(i in this.$$d) && this[i] !== void 0 && (this.$$d[i] = this[i], delete this[i]);
2513
+ this.$$c = Zl({
2514
+ component: this.$$ctor,
2515
+ target: this.$$shadowRoot || this,
2516
+ props: {
2517
+ ...this.$$d,
2518
+ $$slots: o,
2519
+ $$host: this
2520
+ }
2521
+ }), this.$$me = vl(() => {
2522
+ vi(() => {
2523
+ this.$$r = !0;
2524
+ for (const i of wt(this.$$c)) {
2525
+ if (!this.$$p_d[i]?.reflect) continue;
2526
+ this.$$d[i] = this.$$c[i];
2527
+ const s = vt(
2528
+ i,
2529
+ this.$$d[i],
2530
+ this.$$p_d,
2531
+ "toAttribute"
2532
+ );
2533
+ s == null ? this.removeAttribute(this.$$p_d[i].attribute || i) : this.setAttribute(this.$$p_d[i].attribute || i, s);
2534
+ }
2535
+ this.$$r = !1;
2536
+ });
2537
+ });
2538
+ for (const i in this.$$l)
2539
+ for (const s of this.$$l[i]) {
2540
+ const n = this.$$c.$on(i, s);
2541
+ this.$$l_u.set(s, n);
2542
+ }
2543
+ this.$$l = {};
2544
+ }
2545
+ }
2546
+ // We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte
2547
+ // and setting attributes through setAttribute etc, this is helpful
2548
+ /**
2549
+ * @param {string} attr
2550
+ * @param {string} _oldValue
2551
+ * @param {string} newValue
2552
+ */
2553
+ attributeChangedCallback(e, o, t) {
2554
+ this.$$r || (e = this.$$g_p(e), this.$$d[e] = vt(e, t, this.$$p_d, "toProp"), this.$$c?.$set({ [e]: this.$$d[e] }));
2555
+ }
2556
+ disconnectedCallback() {
2557
+ this.$$cn = !1, Promise.resolve().then(() => {
2558
+ !this.$$cn && this.$$c && (this.$$c.$destroy(), this.$$me(), this.$$c = void 0);
2559
+ });
2560
+ }
2561
+ /**
2562
+ * @param {string} attribute_name
2563
+ */
2564
+ $$g_p(e) {
2565
+ return wt(this.$$p_d).find(
2566
+ (o) => this.$$p_d[o].attribute === e || !this.$$p_d[o].attribute && o.toLowerCase() === e
2567
+ ) || e;
2568
+ }
2569
+ });
2570
+ function vt(e, o, t, i) {
2571
+ const s = t[e]?.type;
2572
+ if (o = s === "Boolean" && typeof o != "boolean" ? o != null : o, !i || !t[e])
2573
+ return o;
2574
+ if (i === "toAttribute")
2575
+ switch (s) {
2576
+ case "Object":
2577
+ case "Array":
2578
+ return o == null ? null : JSON.stringify(o);
2579
+ case "Boolean":
2580
+ return o ? "" : null;
2581
+ case "Number":
2582
+ return o ?? null;
2583
+ default:
2584
+ return o;
2585
+ }
2586
+ else
2587
+ switch (s) {
2588
+ case "Object":
2589
+ case "Array":
2590
+ return o && JSON.parse(o);
2591
+ case "Boolean":
2592
+ return o;
2593
+ // conversion already handled above
2594
+ case "Number":
2595
+ return o != null ? +o : o;
2596
+ default:
2597
+ return o;
2598
+ }
2599
+ }
2600
+ function er(e) {
2601
+ const o = {};
2602
+ return e.childNodes.forEach((t) => {
2603
+ o[
2604
+ /** @type {Element} node */
2605
+ t.slot || "default"
2606
+ ] = !0;
2607
+ }), o;
2608
+ }
2609
+ function or(e, o, t, i, s, n) {
2610
+ let l = class extends ls {
2611
+ constructor() {
2612
+ super(e, t, s), this.$$p_d = o;
2613
+ }
2614
+ static get observedAttributes() {
2615
+ return wt(o).map(
2616
+ (r) => (o[r].attribute || r).toLowerCase()
2617
+ );
2618
+ }
2619
+ };
2620
+ return wt(o).forEach((r) => {
2621
+ xt(l.prototype, r, {
2622
+ get() {
2623
+ return this.$$c && r in this.$$c ? this.$$c[r] : this.$$d[r];
2624
+ },
2625
+ set(a) {
2626
+ a = vt(r, a, o), this.$$d[r] = a;
2627
+ var c = this.$$c;
2628
+ if (c) {
2629
+ var d = Io(c, r)?.get;
2630
+ d ? c[r] = a : c.$set({ [r]: a });
2631
+ }
2632
+ }
2633
+ });
2634
+ }), i.forEach((r) => {
2635
+ xt(l.prototype, r, {
2636
+ get() {
2637
+ return this.$$c?.[r];
2638
+ }
2639
+ });
2640
+ }), e.element = /** @type {any} */
2641
+ l, l;
2642
+ }
2643
+ class tr extends Event {
2644
+ constructor(o, t, i, s) {
2645
+ super("context-request", { bubbles: !0, composed: !0 }), v(this, "context"), v(this, "contextTarget"), v(this, "callback"), v(this, "subscribe"), this.context = o, this.contextTarget = t, this.callback = i, this.subscribe = s ?? !1;
2646
+ }
2647
+ }
2648
+ class ir {
2649
+ constructor(o, t) {
2650
+ v(this, "host"), v(this, "context"), v(this, "subscribe"), v(this, "onValue"), v(this, "isConnected", !1), v(this, "unsubscribe"), v(this, "currentValue"), v(this, "handleValue", (i, s) => {
2651
+ s !== this.unsubscribe && (this.unsubscribe?.(), this.unsubscribe = s), !this.subscribe && this.unsubscribe && (this.unsubscribe(), this.unsubscribe = void 0), this.currentValue = i, this.onValue?.(i);
2652
+ }), this.host = o, this.context = t.context, this.subscribe = t.subscribe ?? !0, this.onValue = t.onValue;
2653
+ }
2654
+ connect() {
2655
+ this.isConnected || (this.isConnected = !0, this.requestValue());
2656
+ }
2657
+ disconnect() {
2658
+ this.isConnected && (this.isConnected = !1, this.unsubscribe?.(), this.unsubscribe = void 0);
2659
+ }
2660
+ get value() {
2661
+ return this.currentValue;
2662
+ }
2663
+ requestValue() {
2664
+ this.host.dispatchEvent(new tr(this.context, this.host, this.handleValue, this.subscribe));
2665
+ }
2666
+ }
2667
+ const nr = (e) => e, sr = nr(/* @__PURE__ */ Symbol.for("pie.assessmentToolkit.runtimeContext"));
2668
+ function lr(e, o, t) {
2669
+ let i = !1;
2670
+ const s = new ir(e, {
2671
+ context: o,
2672
+ subscribe: !0,
2673
+ onValue: (c) => {
2674
+ i = !0, t(c);
2675
+ }
2676
+ });
2677
+ s.connect();
2678
+ const n = (c) => {
2679
+ c.context === o && s.requestValue();
2680
+ };
2681
+ e.addEventListener("context-provider", n);
2682
+ let l = 0;
2683
+ const r = 200, a = globalThis.setInterval(() => {
2684
+ if (i || l >= r) {
2685
+ globalThis.clearInterval(a);
2686
+ return;
2687
+ }
2688
+ l += 1, s.requestValue();
2689
+ }, 50);
2690
+ return () => {
2691
+ globalThis.clearInterval(a), e.removeEventListener("context-provider", n), s.disconnect();
2692
+ };
2693
+ }
2694
+ function rr(e, o) {
2695
+ return lr(e, sr, o);
2696
+ }
2697
+ function ar(e, o) {
2698
+ return rr(e, o);
2699
+ }
2700
+ var Ki;
2701
+ (function(e) {
2702
+ e.TTS_WORD = "tts-word", e.TTS_SENTENCE = "tts-sentence", e.ANNOTATION = "annotation";
2703
+ })(Ki || (Ki = {}));
2704
+ var qi;
2705
+ (function(e) {
2706
+ e.YELLOW = "yellow", e.GREEN = "green", e.BLUE = "blue", e.PINK = "pink", e.ORANGE = "orange", e.UNDERLINE = "underline";
2707
+ })(qi || (qi = {}));
2708
+ class cr {
2709
+ constructor() {
2710
+ v(this, "tools", /* @__PURE__ */ new Map()), v(this, "pnpIndex", /* @__PURE__ */ new Map()), v(this, "componentOverrides", {}), v(this, "moduleLoaders", /* @__PURE__ */ new Map()), v(this, "loadedToolModules", /* @__PURE__ */ new Set()), v(this, "moduleLoadPromises", /* @__PURE__ */ new Map());
2711
+ }
2712
+ /**
2713
+ * Normalize a single tool alias to canonical toolId.
2714
+ */
2715
+ normalizeToolId(o) {
2716
+ return o === "tts" ? "textToSpeech" : o;
2717
+ }
2718
+ /**
2719
+ * Normalize a list of tool aliases to canonical toolIds.
2720
+ */
2721
+ normalizeToolIds(o) {
2722
+ return o.map((t) => this.normalizeToolId(t));
2723
+ }
2724
+ /**
2725
+ * Register a tool
2726
+ *
2727
+ * @param registration - Tool registration
2728
+ * @throws Error if toolId is already registered
2729
+ */
2730
+ register(o) {
2731
+ if (this.tools.has(o.toolId))
2732
+ throw new Error(`Tool '${o.toolId}' is already registered`);
2733
+ if (this.tools.set(o.toolId, o), o.pnpSupportIds)
2734
+ for (const t of o.pnpSupportIds)
2735
+ this.pnpIndex.has(t) || this.pnpIndex.set(t, /* @__PURE__ */ new Set()), this.pnpIndex.get(t).add(o.toolId);
2736
+ }
2737
+ /**
2738
+ * Override an existing tool registration
2739
+ *
2740
+ * @param registration - New tool registration (must have existing toolId)
2741
+ */
2742
+ override(o) {
2743
+ if (!this.tools.has(o.toolId))
2744
+ throw new Error(`Cannot override non-existent tool '${o.toolId}'`);
2745
+ const t = this.tools.get(o.toolId);
2746
+ if (t.pnpSupportIds)
2747
+ for (const i of t.pnpSupportIds)
2748
+ this.pnpIndex.get(i)?.delete(o.toolId);
2749
+ if (this.tools.set(o.toolId, o), o.pnpSupportIds)
2750
+ for (const i of o.pnpSupportIds)
2751
+ this.pnpIndex.has(i) || this.pnpIndex.set(i, /* @__PURE__ */ new Set()), this.pnpIndex.get(i).add(o.toolId);
2752
+ }
2753
+ /**
2754
+ * Unregister a tool
2755
+ *
2756
+ * @param toolId - Tool ID to remove
2757
+ */
2758
+ unregister(o) {
2759
+ const t = this.tools.get(o);
2760
+ if (t) {
2761
+ if (t.pnpSupportIds)
2762
+ for (const i of t.pnpSupportIds)
2763
+ this.pnpIndex.get(i)?.delete(o);
2764
+ this.tools.delete(o);
2765
+ }
2766
+ }
2767
+ /**
2768
+ * Get a tool registration by ID
2769
+ *
2770
+ * @param toolId - Tool ID
2771
+ * @returns Tool registration or undefined
2772
+ */
2773
+ get(o) {
2774
+ return this.tools.get(o);
2775
+ }
2776
+ /**
2777
+ * Check if a tool is registered
2778
+ *
2779
+ * @param toolId - Tool ID
2780
+ * @returns true if registered
2781
+ */
2782
+ has(o) {
2783
+ return this.tools.has(o);
2784
+ }
2785
+ /**
2786
+ * Get all registered tool IDs
2787
+ *
2788
+ * @returns Array of tool IDs
2789
+ */
2790
+ getAllToolIds() {
2791
+ return Array.from(this.tools.keys());
2792
+ }
2793
+ /**
2794
+ * Get all tool registrations
2795
+ *
2796
+ * @returns Array of tool registrations
2797
+ */
2798
+ getAllTools() {
2799
+ return Array.from(this.tools.values());
2800
+ }
2801
+ /**
2802
+ * Find tool IDs that support a given PNP support ID
2803
+ *
2804
+ * @param pnpSupportId - PNP support ID (e.g., 'calculator')
2805
+ * @returns Set of tool IDs that support this PNP ID
2806
+ */
2807
+ getToolsByPNPSupport(o) {
2808
+ return this.pnpIndex.get(o) || /* @__PURE__ */ new Set();
2809
+ }
2810
+ /**
2811
+ * Get tools that support a specific level
2812
+ *
2813
+ * @param level - Tool level (assessment, section, item, passage, element)
2814
+ * @returns Array of tool registrations that support this level
2815
+ */
2816
+ getToolsByLevel(o) {
2817
+ return this.getAllTools().filter((t) => t.supportedLevels.includes(o));
2818
+ }
2819
+ /**
2820
+ * Filter tools by visibility in a given context
2821
+ *
2822
+ * Pass 2 of the two-pass model: Given a list of allowed tool IDs (from Pass 1),
2823
+ * ask each tool if it's relevant in this context.
2824
+ *
2825
+ * @param allowedToolIds - Tool IDs that passed Pass 1 (orchestrator approval)
2826
+ * @param context - Context to evaluate
2827
+ * @returns Array of visible tool registrations
2828
+ */
2829
+ filterVisibleInContext(o, t) {
2830
+ const i = [];
2831
+ for (const s of o) {
2832
+ const n = this.get(s);
2833
+ if (!n) {
2834
+ console.warn(`Tool '${s}' is allowed but not registered`);
2835
+ continue;
2836
+ }
2837
+ if (n.supportedLevels.includes(t.level))
2838
+ try {
2839
+ n.isVisibleInContext(t) && i.push(n);
2840
+ } catch (l) {
2841
+ console.error(`Error evaluating visibility for tool '${s}':`, l);
2842
+ }
2843
+ }
2844
+ return i;
2845
+ }
2846
+ /**
2847
+ * Get tool metadata for building UIs
2848
+ * Useful for building PNP configuration interfaces
2849
+ *
2850
+ * @returns Array of tool metadata (id, name, description, pnpSupportIds)
2851
+ */
2852
+ getToolMetadata() {
2853
+ return this.getAllTools().map((o) => ({
2854
+ toolId: o.toolId,
2855
+ name: o.name,
2856
+ description: o.description,
2857
+ pnpSupportIds: o.pnpSupportIds || [],
2858
+ supportedLevels: o.supportedLevels
2859
+ }));
2860
+ }
2861
+ /**
2862
+ * Generate PNP support IDs from enabled tools
2863
+ * Useful for creating PNP profiles
2864
+ *
2865
+ * @param enabledToolIds - Tool IDs to enable
2866
+ * @returns Array of unique PNP support IDs
2867
+ */
2868
+ generatePNPSupportsFromTools(o) {
2869
+ const t = /* @__PURE__ */ new Set();
2870
+ for (const i of o) {
2871
+ const s = this.get(i);
2872
+ if (s?.pnpSupportIds)
2873
+ for (const n of s.pnpSupportIds)
2874
+ t.add(n);
2875
+ }
2876
+ return Array.from(t);
2877
+ }
2878
+ /**
2879
+ * Clear all registrations (useful for testing)
2880
+ */
2881
+ clear() {
2882
+ this.tools.clear(), this.pnpIndex.clear();
2883
+ }
2884
+ /**
2885
+ * Configure global component overrides used by tool instance creation.
2886
+ */
2887
+ setComponentOverrides(o) {
2888
+ this.componentOverrides = o;
2889
+ }
2890
+ /**
2891
+ * Register lazy module loaders by toolId.
2892
+ * Toolbars call ensureToolModuleLoaded(toolId) before instance creation.
2893
+ */
2894
+ setToolModuleLoaders(o) {
2895
+ for (const [t, i] of Object.entries(o))
2896
+ i && this.moduleLoaders.set(t, i);
2897
+ }
2898
+ /**
2899
+ * Ensure tool module side-effects are loaded exactly once.
2900
+ * Safe to call repeatedly; concurrent callers share the same promise.
2901
+ */
2902
+ async ensureToolModuleLoaded(o) {
2903
+ if (this.loadedToolModules.has(o))
2904
+ return;
2905
+ const t = this.moduleLoadPromises.get(o);
2906
+ if (t) {
2907
+ await t;
2908
+ return;
2909
+ }
2910
+ const i = this.moduleLoaders.get(o);
2911
+ if (!i)
2912
+ return;
2913
+ const s = (async () => {
2914
+ await i(), this.loadedToolModules.add(o);
2915
+ })();
2916
+ this.moduleLoadPromises.set(o, s);
2917
+ try {
2918
+ await s;
2919
+ } finally {
2920
+ this.moduleLoadPromises.delete(o);
2921
+ }
2922
+ }
2923
+ /**
2924
+ * Ensure a set of tool modules are loaded.
2925
+ */
2926
+ async ensureToolModulesLoaded(o) {
2927
+ await Promise.all(o.map((t) => this.ensureToolModuleLoaded(t)));
2928
+ }
2929
+ /**
2930
+ * Whether a tool module has already been loaded.
2931
+ */
2932
+ isToolModuleLoaded(o) {
2933
+ return this.loadedToolModules.has(o);
2934
+ }
2935
+ /**
2936
+ * Render a tool for toolbar use with component overrides attached.
2937
+ */
2938
+ renderForToolbar(o, t, i) {
2939
+ const s = this.get(o);
2940
+ if (!s)
2941
+ throw new Error(`Tool '${o}' is not registered`);
2942
+ const n = {
2943
+ ...i,
2944
+ componentOverrides: {
2945
+ ...this.componentOverrides || {},
2946
+ ...i.componentOverrides || {}
2947
+ }
2948
+ };
2949
+ return s.renderToolbar(t, n);
2950
+ }
2951
+ }
2952
+ function rs(e) {
2953
+ return e.level === "item";
2954
+ }
2955
+ function pr(e) {
2956
+ return e.level === "passage";
2957
+ }
2958
+ function dr(e) {
2959
+ return e.level === "rubric";
2960
+ }
2961
+ function as(e) {
2962
+ return e.level === "element";
2963
+ }
2964
+ function Ii(e) {
2965
+ if (as(e)) {
2966
+ const o = e.item.config;
2967
+ if (!o)
2968
+ return "";
2969
+ const t = [], i = (r) => r.replace(/<[^>]*>/g, " ").trim(), s = o.elements?.[e.elementId];
2970
+ s && typeof s == "string" && t.push(i(s));
2971
+ const n = o.models, l = (Array.isArray(n) ? n : n && typeof n == "object" ? Object.values(n) : []).find((r) => r && typeof r == "object" && r.id === e.elementId);
2972
+ if (l) {
2973
+ for (const r of Object.values(l))
2974
+ if (typeof r == "string" && t.push(i(r)), Array.isArray(r)) {
2975
+ for (const a of r)
2976
+ if (a && typeof a == "object")
2977
+ for (const c of Object.values(a))
2978
+ typeof c == "string" && t.push(i(c));
2979
+ }
2980
+ }
2981
+ return t.filter(Boolean).join(" ").trim();
2982
+ }
2983
+ if (rs(e)) {
2984
+ const o = e.item;
2985
+ if (!o?.config)
2986
+ return "";
2987
+ const t = o.config, i = [], s = (a) => a.replace(/<[^>]*>/g, " ").trim();
2988
+ typeof t.markup == "string" && i.push(s(t.markup));
2989
+ const n = t.elements;
2990
+ if (n && typeof n == "object")
2991
+ for (const a of Object.values(n))
2992
+ typeof a == "string" && i.push(s(a));
2993
+ const l = t.models, r = Array.isArray(l) ? l : l && typeof l == "object" ? Object.values(l) : [];
2994
+ for (const a of r)
2995
+ if (!(!a || typeof a != "object")) {
2996
+ for (const c of Object.values(a))
2997
+ if (typeof c == "string" && i.push(s(c)), Array.isArray(c)) {
2998
+ for (const d of c)
2999
+ if (d && typeof d == "object")
3000
+ for (const g of Object.values(d))
3001
+ typeof g == "string" && i.push(s(g));
3002
+ }
3003
+ }
3004
+ return i.filter(Boolean).join(" ").trim();
3005
+ }
3006
+ if (pr(e)) {
3007
+ const o = e.passage;
3008
+ return o?.config ? (o.config.markup || "").replace(/<[^>]*>/g, " ").trim() : "";
3009
+ }
3010
+ if (dr(e)) {
3011
+ const o = e.rubricBlock;
3012
+ return o.passage?.config ? (o.passage.config.markup || "").replace(/<[^>]*>/g, " ").trim() : (o.content || "").replace(/<[^>]*>/g, " ").trim();
3013
+ }
3014
+ return "";
3015
+ }
3016
+ function Rt(e) {
3017
+ const o = Ii(e);
3018
+ return [
3019
+ /<math[>\s]/i,
3020
+ // MathML
3021
+ /\\\[([^\]]+)\\\]/,
3022
+ // LaTeX display math
3023
+ /\$\$[^$]+\$\$/,
3024
+ // LaTeX display math ($$...$$)
3025
+ /\\\(/,
3026
+ // LaTeX inline math
3027
+ /[+\-*/=<>≤≥∑∫√π]/,
3028
+ // Math symbols
3029
+ /\d+\s*[+\-*/=]\s*\d+/
3030
+ // Simple arithmetic
3031
+ ].some((t) => t.test(o));
3032
+ }
3033
+ function ur(e) {
3034
+ const o = [
3035
+ "pie-multiple-choice",
3036
+ "pie-inline-choice",
3037
+ "pie-select-text",
3038
+ "multiple-choice",
3039
+ "inline-choice",
3040
+ "select-text"
3041
+ ];
3042
+ if (as(e)) {
3043
+ const t = e.item.config;
3044
+ if (!t?.models)
3045
+ return !1;
3046
+ const i = (Array.isArray(t.models) ? t.models : Object.values(t.models)).find((n) => n && typeof n == "object" && n.id === e.elementId);
3047
+ if (!i)
3048
+ return !1;
3049
+ const s = i.element || "";
3050
+ return o.includes(s);
3051
+ }
3052
+ if (rs(e)) {
3053
+ const t = e.item.config?.models;
3054
+ return (Array.isArray(t) ? t : t && typeof t == "object" ? Object.values(t) : []).some((i) => {
3055
+ if (!i || typeof i != "object")
3056
+ return !1;
3057
+ const s = i.element || "";
3058
+ return o.includes(s) ? !0 : Array.isArray(i.choices) && i.choices.length > 0;
3059
+ });
3060
+ }
3061
+ return !1;
3062
+ }
3063
+ function Nt(e) {
3064
+ return Ii(e).trim().length >= 10;
3065
+ }
3066
+ function fr(e) {
3067
+ const o = Ii(e);
3068
+ return [
3069
+ /chemistry|chemical|element|atom|molecule|compound/i,
3070
+ /periodic\s+table/i,
3071
+ /H₂O|CO₂|NaCl|O₂|N₂/i,
3072
+ // Chemical formulas
3073
+ /\b[A-Z][a-z]?\d*\b/,
3074
+ // Element symbols (H, He, Li, etc.)
3075
+ /biology|organism|cell|DNA|RNA|protein/i,
3076
+ /physics|force|energy|velocity|acceleration/i
3077
+ ].some((t) => t.test(o));
3078
+ }
3079
+ const mr = [
3080
+ "assessment",
3081
+ "section",
3082
+ "item",
3083
+ "passage",
3084
+ "rubric"
3085
+ ], hr = new Set(mr);
3086
+ function gr(e) {
3087
+ return hr.has(e);
3088
+ }
3089
+ function de(e, o, t, i = "overlay") {
3090
+ const s = e.trim(), n = t.trim();
3091
+ if (!s || !n)
3092
+ throw new Error("Tool instance ids require non-empty tool and scope ids");
3093
+ if (!gr(o))
3094
+ throw new Error(`Unknown tool scope level '${o}'. Register custom levels with registerToolScopeLevel().`);
3095
+ return i === "inline" ? `${s}:${o}:${n}:inline` : `${s}:${o}:${n}`;
3096
+ }
3097
+ const _r = /* @__PURE__ */ new Set([
3098
+ "annotation-xml",
3099
+ "color-profile",
3100
+ "font-face",
3101
+ "font-face-src",
3102
+ "font-face-uri",
3103
+ "font-face-format",
3104
+ "font-face-name",
3105
+ "missing-glyph"
3106
+ ]), yr = /^[a-z][a-z0-9._-]*-[a-z0-9._-]*$/, br = (e, o = "custom element tag") => {
3107
+ if (!e || typeof e != "string")
3108
+ throw new Error(`Invalid ${o}: expected a non-empty string`);
3109
+ const t = e.trim();
3110
+ if (!t)
3111
+ throw new Error(`Invalid ${o}: tag is empty`);
3112
+ if (t !== t.toLowerCase())
3113
+ throw new Error(`Invalid ${o} "${t}": custom element names must be lowercase`);
3114
+ if (!t.includes("-"))
3115
+ throw new Error(`Invalid ${o} "${t}": custom element names must include a hyphen`);
3116
+ if (_r.has(t))
3117
+ throw new Error(`Invalid ${o} "${t}": this name is reserved by the HTML spec`);
3118
+ if (!yr.test(t))
3119
+ throw new Error(`Invalid ${o} "${t}": allowed characters are lowercase letters, numbers, ".", "_" and "-"`);
3120
+ return t;
3121
+ }, cs = {
3122
+ calculator: "pie-tool-calculator",
3123
+ textToSpeech: "pie-tool-text-to-speech",
3124
+ ruler: "pie-tool-ruler",
3125
+ protractor: "pie-tool-protractor",
3126
+ answerEliminator: "pie-tool-answer-eliminator",
3127
+ highlighter: "pie-tool-annotation-toolbar",
3128
+ lineReader: "pie-tool-line-reader",
3129
+ colorScheme: "pie-tool-color-scheme",
3130
+ annotationToolbar: "pie-tool-annotation-toolbar",
3131
+ graph: "pie-tool-graph",
3132
+ periodicTable: "pie-tool-periodic-table"
3133
+ }, vr = (e, o) => {
3134
+ const t = o?.toolTagMap?.[e] ?? cs[e] ?? e;
3135
+ return br(t, `tool component tag for "${e}"`);
3136
+ }, wr = (e) => document.createElement(e), ze = (e, o, t, i) => {
3137
+ const s = vr(e, i), n = i?.toolComponentFactories?.[e] ?? i?.toolComponentFactory;
3138
+ return n ? n({ toolId: e, tagName: s, context: o, toolbarContext: t }) : wr(s);
3139
+ }, xr = {
3140
+ toolId: "calculator",
3141
+ name: "Calculator",
3142
+ description: "Multi-type calculator (basic, scientific, graphing)",
3143
+ icon: "calculator",
3144
+ // Calculator is item-level in this player architecture.
3145
+ supportedLevels: ["item"],
3146
+ // PNP support IDs that enable this tool
3147
+ // Maps to QTI 3.0 standard features: calculator, graphingCalculator
3148
+ pnpSupportIds: [
3149
+ "calculator",
3150
+ // QTI 3.0 standard (cognitive.calculator)
3151
+ "graphingCalculator",
3152
+ // QTI 3.0 standard (assessment.graphingCalculator)
3153
+ "basicCalculator",
3154
+ // Common variant
3155
+ "scientificCalculator"
3156
+ // Common variant
3157
+ ],
3158
+ /**
3159
+ * Pass 2: Determine if calculator is relevant in this context
3160
+ *
3161
+ * Calculator is relevant when context contains mathematical content
3162
+ * (MathML, LaTeX, arithmetic markers).
3163
+ */
3164
+ isVisibleInContext(e) {
3165
+ return Rt(e);
3166
+ },
3167
+ renderToolbar(e, o) {
3168
+ const t = de(this.toolId, "item", o.itemId), i = o.componentOverrides, s = ze(this.toolId, e, o, i);
3169
+ s.setAttribute("tool-id", t);
3170
+ const n = document.createElement("pie-tool-calculator-inline");
3171
+ return n.setAttribute("tool-id", de(this.toolId, "item", o.itemId, "inline")), n.setAttribute("target-tool-id", t), n.setAttribute("calculator-type", "scientific"), n.setAttribute("available-types", "basic,scientific,graphing"), n.setAttribute("size", o.ui?.size || "md"), {
3172
+ toolId: this.toolId,
3173
+ inlineElement: n,
3174
+ overlayElement: s,
3175
+ button: null,
3176
+ sync: () => {
3177
+ const l = o.isToolVisible(t);
3178
+ s.visible = l;
3179
+ },
3180
+ subscribeActive: (l) => o.subscribeVisibility ? o.subscribeVisibility(() => {
3181
+ l(o.isToolVisible(t));
3182
+ }) : () => {
3183
+ }
3184
+ };
3185
+ }
3186
+ }, kr = {
3187
+ toolId: "textToSpeech",
3188
+ name: "Text to Speech",
3189
+ description: "Read content aloud",
3190
+ icon: "volume-up",
3191
+ // TTS can appear at all levels except assessment and element.
3192
+ supportedLevels: ["section", "item", "passage", "rubric"],
3193
+ // PNP support IDs that enable this tool
3194
+ // Maps to QTI 3.0 standard features: textToSpeech, readAloud
3195
+ pnpSupportIds: [
3196
+ "textToSpeech",
3197
+ // QTI 3.0 standard (auditory.textToSpeech)
3198
+ "readAloud",
3199
+ // QTI 3.0 standard (auditory.readAloud)
3200
+ "tts",
3201
+ // Common abbreviation
3202
+ "speechOutput"
3203
+ // Common variant
3204
+ ],
3205
+ /**
3206
+ * Pass 2: Determine if TTS is relevant in this context
3207
+ *
3208
+ * TTS is relevant when:
3209
+ * - Context contains readable text (at least 10 characters)
3210
+ */
3211
+ isVisibleInContext(e) {
3212
+ return Nt(e);
3213
+ },
3214
+ renderToolbar(e, o) {
3215
+ const t = de(this.toolId, "item", o.itemId, "inline"), i = document.createElement("pie-tool-tts-inline");
3216
+ i.setAttribute("tool-id", t), i.setAttribute("catalog-id", o.catalogId || o.itemId), i.setAttribute("language", o.language), i.setAttribute("size", o.ui?.size || "md");
3217
+ let s = !1;
3218
+ return {
3219
+ toolId: this.toolId,
3220
+ inlineElement: i,
3221
+ sync: () => {
3222
+ i.setAttribute("catalog-id", o.catalogId || o.itemId), i.setAttribute("language", o.language), i.setAttribute("size", o.ui?.size || "md"), o.ttsService && (i.ttsService = o.ttsService), !s && o.ensureTTSReady && (s = !0, o.ensureTTSReady().catch((n) => {
3223
+ console.error("[ttsToolRegistration] Failed to initialize TTS service:", n);
3224
+ }));
3225
+ }
3226
+ };
3227
+ }
3228
+ }, Sr = {
3229
+ toolId: "ruler",
3230
+ name: "Ruler",
3231
+ description: "On-screen ruler for measurements",
3232
+ icon: "ruler",
3233
+ // Ruler typically appears at item/element level
3234
+ supportedLevels: ["item", "element"],
3235
+ // PNP support IDs
3236
+ // Maps to QTI 3.0 standard feature: ruler
3237
+ pnpSupportIds: [
3238
+ "ruler",
3239
+ // QTI 3.0 standard (assessment.ruler)
3240
+ "measurement"
3241
+ // Common variant
3242
+ ],
3243
+ /**
3244
+ * Pass 2: Ruler is relevant when math content is present
3245
+ */
3246
+ isVisibleInContext(e) {
3247
+ return Rt(e);
3248
+ },
3249
+ renderToolbar(e, o) {
3250
+ const t = de(this.toolId, "item", o.itemId), i = {
3251
+ toolId: this.toolId,
3252
+ label: this.name,
3253
+ icon: typeof this.icon == "function" ? this.icon(e) : this.icon,
3254
+ disabled: !1,
3255
+ ariaLabel: "Open ruler tool",
3256
+ tooltip: "Ruler",
3257
+ onClick: () => o.toggleTool(this.toolId),
3258
+ active: o.isToolVisible(t)
3259
+ }, s = o.componentOverrides ?? {}, n = ze(this.toolId, e, o, s);
3260
+ return n.setAttribute("tool-id", t), {
3261
+ toolId: this.toolId,
3262
+ button: i,
3263
+ overlayElement: n,
3264
+ sync: () => {
3265
+ const l = o.isToolVisible(t);
3266
+ i.active = l, n.visible = l, o.toolkitCoordinator && (n.toolkitCoordinator = o.toolkitCoordinator);
3267
+ },
3268
+ subscribeActive: (l) => o.subscribeVisibility ? o.subscribeVisibility(() => {
3269
+ l(o.isToolVisible(t));
3270
+ }) : () => {
3271
+ }
3272
+ };
3273
+ }
3274
+ }, Ir = {
3275
+ toolId: "protractor",
3276
+ name: "Protractor",
3277
+ description: "On-screen protractor for angle measurements",
3278
+ icon: "protractor",
3279
+ // Protractor typically appears at item/element level
3280
+ supportedLevels: ["item", "element"],
3281
+ // PNP support IDs
3282
+ // Maps to QTI 3.0 standard feature: protractor
3283
+ pnpSupportIds: [
3284
+ "protractor",
3285
+ // QTI 3.0 standard (assessment.protractor)
3286
+ "angleMeasurement"
3287
+ // Common variant
3288
+ ],
3289
+ /**
3290
+ * Pass 2: Protractor is relevant when math content is present
3291
+ */
3292
+ isVisibleInContext(e) {
3293
+ return Rt(e);
3294
+ },
3295
+ renderToolbar(e, o) {
3296
+ const t = de(this.toolId, "item", o.itemId), i = {
3297
+ toolId: this.toolId,
3298
+ label: this.name,
3299
+ icon: typeof this.icon == "function" ? this.icon(e) : this.icon,
3300
+ disabled: !1,
3301
+ ariaLabel: "Open protractor tool",
3302
+ tooltip: "Protractor",
3303
+ onClick: () => o.toggleTool(this.toolId),
3304
+ active: o.isToolVisible(t)
3305
+ }, s = o.componentOverrides ?? {}, n = ze(this.toolId, e, o, s);
3306
+ return n.setAttribute("tool-id", t), {
3307
+ toolId: this.toolId,
3308
+ button: i,
3309
+ overlayElement: n,
3310
+ sync: () => {
3311
+ const l = o.isToolVisible(t);
3312
+ i.active = l, n.visible = l, o.toolkitCoordinator && (n.toolkitCoordinator = o.toolkitCoordinator);
3313
+ },
3314
+ subscribeActive: (l) => o.subscribeVisibility ? o.subscribeVisibility(() => {
3315
+ l(o.isToolVisible(t));
3316
+ }) : () => {
3317
+ }
3318
+ };
3319
+ }
3320
+ }, $r = {
3321
+ toolId: "answerEliminator",
3322
+ name: "Answer Eliminator",
3323
+ description: "Strike through answer choices",
3324
+ icon: "strikethrough",
3325
+ // Answer eliminator appears at item level only
3326
+ supportedLevels: ["item"],
3327
+ // PNP support IDs
3328
+ // Maps to QTI 3.0 standard feature: answerMasking
3329
+ pnpSupportIds: [
3330
+ "answerMasking",
3331
+ // QTI 3.0 standard (assessment.answerMasking)
3332
+ "answerEliminator",
3333
+ // QTI 3.0 standard (assessment.answerEliminator)
3334
+ "strikethrough",
3335
+ // Common variant
3336
+ "choiceMasking"
3337
+ // Common variant
3338
+ ],
3339
+ /**
3340
+ * Pass 2: Answer eliminator is relevant only for choice-based questions
3341
+ */
3342
+ isVisibleInContext(e) {
3343
+ return ur(e);
3344
+ },
3345
+ renderToolbar(e, o) {
3346
+ const t = de(this.toolId, "item", o.itemId), i = o.componentOverrides ?? {}, s = ze(this.toolId, e, o, i);
3347
+ s.setAttribute("tool-id", t), s.setAttribute("strategy", "strikethrough"), s.setAttribute("button-alignment", "inline");
3348
+ const n = {
3349
+ toolId: this.toolId,
3350
+ label: this.name,
3351
+ icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M19,3H16.3H7.7H5A2,2 0 0,0 3,5V7.7V16.4V19A2,2 0 0,0 5,21H7.7H16.4H19A2,2 0 0,0 21,19V16.3V7.7V5A2,2 0 0,0 19,3M15.6,17L12,13.4L8.4,17L7,15.6L10.6,12L7,8.4L8.4,7L12,10.6L15.6,7L17,8.4L13.4,12L17,15.6L15.6,17Z"/></svg>',
3352
+ disabled: !1,
3353
+ ariaLabel: "Answer eliminator - Strike through choices",
3354
+ tooltip: "Strike Through",
3355
+ onClick: () => o.toggleTool(this.toolId),
3356
+ active: o.isToolVisible(t)
3357
+ };
3358
+ return {
3359
+ toolId: this.toolId,
3360
+ button: n,
3361
+ overlayElement: s,
3362
+ sync: () => {
3363
+ const l = o.isToolVisible(t);
3364
+ n.active = l, s.visible = l, o.toolCoordinator && (s.coordinator = o.toolCoordinator), s.scopeElement = o.getScopeElement?.() || null, o.elementToolStateStore && (s.elementToolStateStore = o.elementToolStateStore);
3365
+ const r = o.getGlobalElementId?.();
3366
+ r && (s.globalElementId = r);
3367
+ },
3368
+ subscribeActive: (l) => o.subscribeVisibility ? o.subscribeVisibility(() => {
3369
+ l(o.isToolVisible(t));
3370
+ }) : () => {
3371
+ }
3372
+ };
3373
+ }
3374
+ }, Tr = {
3375
+ toolId: "highlighter",
3376
+ name: "Highlighter",
3377
+ description: "Highlight text",
3378
+ icon: "highlighter",
3379
+ // Highlighter appears at passage, rubric, item, and element levels
3380
+ supportedLevels: ["passage", "rubric", "item", "element"],
3381
+ // PNP support IDs
3382
+ pnpSupportIds: ["highlighter", "textHighlight", "annotation"],
3383
+ /**
3384
+ * Pass 2: Highlighter is relevant when readable text is available
3385
+ */
3386
+ isVisibleInContext(e) {
3387
+ return Nt(e);
3388
+ },
3389
+ renderToolbar(e, o) {
3390
+ const t = de(this.toolId, "item", o.itemId), i = {
3391
+ toolId: this.toolId,
3392
+ label: this.name,
3393
+ icon: typeof this.icon == "function" ? this.icon(e) : this.icon,
3394
+ disabled: !1,
3395
+ ariaLabel: "Highlighter - Highlight text",
3396
+ tooltip: "Highlight",
3397
+ onClick: () => o.toggleTool(this.toolId),
3398
+ active: o.isToolVisible(t)
3399
+ }, s = o.componentOverrides ?? {}, n = ze(this.toolId, e, o, s);
3400
+ return n.setAttribute("tool-id", t), {
3401
+ toolId: this.toolId,
3402
+ button: i,
3403
+ overlayElement: n,
3404
+ sync: () => {
3405
+ const l = o.isToolVisible(t);
3406
+ i.active = l, n.enabled = l, n.visible = l, o.ttsService && (n.ttsService = o.ttsService);
3407
+ },
3408
+ subscribeActive: (l) => o.subscribeVisibility ? o.subscribeVisibility(() => {
3409
+ l(o.isToolVisible(t));
3410
+ }) : () => {
3411
+ }
3412
+ };
3413
+ }
3414
+ }, Cr = {
3415
+ toolId: "lineReader",
3416
+ name: "Line Reader",
3417
+ description: "Reading guide overlay",
3418
+ icon: "bars-3",
3419
+ // Line reader appears where there's text to read
3420
+ supportedLevels: ["passage", "rubric", "item"],
3421
+ // PNP support IDs
3422
+ // Maps to QTI 3.0 standard features: readingMask, readingGuide, readingRuler
3423
+ pnpSupportIds: [
3424
+ "readingMask",
3425
+ // QTI 3.0 standard (reading.readingMask)
3426
+ "readingGuide",
3427
+ // QTI 3.0 standard (reading.readingGuide)
3428
+ "readingRuler",
3429
+ // QTI 3.0 standard (reading.readingRuler)
3430
+ "lineReader",
3431
+ // Common variant
3432
+ "trackingGuide"
3433
+ // Common variant
3434
+ ],
3435
+ /**
3436
+ * Pass 2: Line reader is relevant when readable text is present
3437
+ */
3438
+ isVisibleInContext(e) {
3439
+ return Nt(e);
3440
+ },
3441
+ renderToolbar(e, o) {
3442
+ const t = de(this.toolId, "item", o.itemId), i = {
3443
+ toolId: this.toolId,
3444
+ label: this.name,
3445
+ icon: typeof this.icon == "function" ? this.icon(e) : this.icon,
3446
+ disabled: !1,
3447
+ ariaLabel: "Line reader - Reading guide",
3448
+ tooltip: "Line Reader",
3449
+ onClick: () => o.toggleTool(this.toolId),
3450
+ active: o.isToolVisible(t)
3451
+ }, s = o.componentOverrides ?? {}, n = ze(this.toolId, e, o, s);
3452
+ return n.setAttribute("tool-id", t), {
3453
+ toolId: this.toolId,
3454
+ button: i,
3455
+ overlayElement: n,
3456
+ sync: () => {
3457
+ const l = o.isToolVisible(t);
3458
+ i.active = l, n.visible = l, o.toolkitCoordinator && (n.toolkitCoordinator = o.toolkitCoordinator);
3459
+ },
3460
+ subscribeActive: (l) => o.subscribeVisibility ? o.subscribeVisibility(() => {
3461
+ l(o.isToolVisible(t));
3462
+ }) : () => {
3463
+ }
3464
+ };
3465
+ }
3466
+ }, Ar = {
3467
+ toolId: "colorScheme",
3468
+ name: "Color Scheme",
3469
+ description: "Accessible color themes and contrast",
3470
+ icon: "swatch",
3471
+ // Color scheme is assessment-wide
3472
+ supportedLevels: ["assessment", "section"],
3473
+ // PNP support IDs
3474
+ // Maps to QTI 3.0 standard features: highContrastDisplay, colorContrast, invertColors
3475
+ pnpSupportIds: [
3476
+ "highContrastDisplay",
3477
+ // QTI 3.0 standard (visual.highContrastDisplay)
3478
+ "colorContrast",
3479
+ // QTI 3.0 standard (visual.colorContrast)
3480
+ "invertColors",
3481
+ // QTI 3.0 standard (visual.invertColors)
3482
+ "colorScheme",
3483
+ // Common variant
3484
+ "highContrast",
3485
+ // Common variant
3486
+ "customColors"
3487
+ // Common variant
3488
+ ],
3489
+ /**
3490
+ * Pass 2: Color scheme is always relevant when allowed
3491
+ */
3492
+ isVisibleInContext(e) {
3493
+ return !0;
3494
+ },
3495
+ renderToolbar(e, o) {
3496
+ const t = de(this.toolId, "item", o.itemId), i = {
3497
+ toolId: this.toolId,
3498
+ label: this.name,
3499
+ icon: typeof this.icon == "function" ? this.icon(e) : this.icon,
3500
+ disabled: !1,
3501
+ ariaLabel: "Color scheme - Change colors and contrast",
3502
+ tooltip: "Color Scheme",
3503
+ onClick: () => o.toggleTool(this.toolId),
3504
+ active: o.isToolVisible(t)
3505
+ }, s = o.componentOverrides ?? {}, n = ze(this.toolId, e, o, s);
3506
+ return n.setAttribute("tool-id", t), {
3507
+ toolId: this.toolId,
3508
+ button: i,
3509
+ overlayElement: n,
3510
+ sync: () => {
3511
+ const l = o.isToolVisible(t);
3512
+ i.active = l, n.visible = l, o.toolkitCoordinator && (n.toolkitCoordinator = o.toolkitCoordinator);
3513
+ },
3514
+ subscribeActive: (l) => o.subscribeVisibility ? o.subscribeVisibility(() => {
3515
+ l(o.isToolVisible(t));
3516
+ }) : () => {
3517
+ }
3518
+ };
3519
+ }
3520
+ }, Lr = {
3521
+ toolId: "annotationToolbar",
3522
+ name: "Highlighter",
3523
+ description: "Highlight and annotate text",
3524
+ icon: "highlighter",
3525
+ // Annotation appears where there's text content
3526
+ supportedLevels: ["passage", "rubric", "item", "element"],
3527
+ // PNP support IDs
3528
+ // Maps to QTI 3.0 standard features: highlighting, annotations
3529
+ pnpSupportIds: [
3530
+ "highlighting",
3531
+ // QTI 3.0 standard (cognitive.highlighting / reading.wordHighlighting)
3532
+ "annotations",
3533
+ // QTI 3.0 standard (cognitive.annotations)
3534
+ "highlighter",
3535
+ // Common variant
3536
+ "textHighlight",
3537
+ // Common variant
3538
+ "annotation"
3539
+ // Common variant
3540
+ ],
3541
+ /**
3542
+ * Pass 2: Annotation is relevant when readable text is present
3543
+ */
3544
+ isVisibleInContext(e) {
3545
+ return Nt(e);
3546
+ },
3547
+ renderToolbar(e, o) {
3548
+ const t = de(this.toolId, "item", o.itemId), i = {
3549
+ toolId: this.toolId,
3550
+ label: this.name,
3551
+ icon: typeof this.icon == "function" ? this.icon(e) : this.icon,
3552
+ disabled: !1,
3553
+ ariaLabel: "Annotation toolbar - Highlight text",
3554
+ tooltip: "Highlight",
3555
+ onClick: () => o.toggleTool(this.toolId),
3556
+ active: o.isToolVisible(t)
3557
+ }, s = o.componentOverrides ?? {}, n = ze(this.toolId, e, o, s);
3558
+ return n.setAttribute("tool-id", t), {
3559
+ toolId: this.toolId,
3560
+ button: i,
3561
+ overlayElement: n,
3562
+ sync: () => {
3563
+ const l = o.isToolVisible(t);
3564
+ i.active = l, n.visible = l, o.toolkitCoordinator && (n.toolkitCoordinator = o.toolkitCoordinator);
3565
+ },
3566
+ subscribeActive: (l) => o.subscribeVisibility ? o.subscribeVisibility(() => {
3567
+ l(o.isToolVisible(t));
3568
+ }) : () => {
3569
+ }
3570
+ };
3571
+ }
3572
+ }, zr = {
3573
+ toolId: "graph",
3574
+ name: "Graph",
3575
+ description: "Graphing calculator and coordinate plane",
3576
+ icon: "chart-bar",
3577
+ // Graph appears at item and element level where graphing might be needed
3578
+ supportedLevels: ["item", "element"],
3579
+ // PNP support IDs
3580
+ // Maps to QTI 3.0 standard features: graph, graphingCalculator
3581
+ pnpSupportIds: [
3582
+ "graph",
3583
+ // QTI 3.0 standard (assessment.graph)
3584
+ "graphingCalculator",
3585
+ // QTI 3.0 standard (assessment.graphingCalculator)
3586
+ "coordinatePlane",
3587
+ // Common variant
3588
+ "graphingTool"
3589
+ // Common variant
3590
+ ],
3591
+ /**
3592
+ * Pass 2: Graph is relevant when math content is present
3593
+ */
3594
+ isVisibleInContext(e) {
3595
+ return Rt(e);
3596
+ },
3597
+ renderToolbar(e, o) {
3598
+ const t = de(this.toolId, "item", o.itemId), i = {
3599
+ toolId: this.toolId,
3600
+ label: this.name,
3601
+ icon: typeof this.icon == "function" ? this.icon(e) : this.icon,
3602
+ disabled: !1,
3603
+ ariaLabel: "Graph - Graphing calculator",
3604
+ tooltip: "Graph",
3605
+ onClick: () => o.toggleTool(this.toolId),
3606
+ active: o.isToolVisible(t)
3607
+ }, s = o.componentOverrides ?? {}, n = ze(this.toolId, e, o, s);
3608
+ return n.setAttribute("tool-id", t), {
3609
+ toolId: this.toolId,
3610
+ button: i,
3611
+ overlayElement: n,
3612
+ sync: () => {
3613
+ const l = o.isToolVisible(t);
3614
+ i.active = l, n.visible = l, o.toolkitCoordinator && (n.toolkitCoordinator = o.toolkitCoordinator);
3615
+ },
3616
+ subscribeActive: (l) => o.subscribeVisibility ? o.subscribeVisibility(() => {
3617
+ l(o.isToolVisible(t));
3618
+ }) : () => {
3619
+ }
3620
+ };
3621
+ }
3622
+ }, jr = {
3623
+ toolId: "periodicTable",
3624
+ name: "Periodic Table",
3625
+ description: "Chemistry periodic table reference",
3626
+ icon: "beaker",
3627
+ // Periodic table appears at item and element level
3628
+ supportedLevels: ["item", "element"],
3629
+ // PNP support IDs
3630
+ // Maps to QTI 3.0 standard feature: periodicTable
3631
+ pnpSupportIds: [
3632
+ "periodicTable",
3633
+ // QTI 3.0 standard (assessment.periodicTable)
3634
+ "chemistryReference",
3635
+ // Common variant
3636
+ "elementReference"
3637
+ // Common variant
3638
+ ],
3639
+ /**
3640
+ * Pass 2: Periodic table is relevant when science content is present
3641
+ */
3642
+ isVisibleInContext(e) {
3643
+ return fr(e);
3644
+ },
3645
+ renderToolbar(e, o) {
3646
+ const t = de(this.toolId, "item", o.itemId), i = {
3647
+ toolId: this.toolId,
3648
+ label: this.name,
3649
+ icon: typeof this.icon == "function" ? this.icon(e) : this.icon,
3650
+ disabled: !1,
3651
+ ariaLabel: "Periodic table - Chemistry reference",
3652
+ tooltip: "Periodic Table",
3653
+ onClick: () => o.toggleTool(this.toolId),
3654
+ active: o.isToolVisible(t)
3655
+ }, s = o.componentOverrides ?? {}, n = ze(this.toolId, e, o, s);
3656
+ return n.setAttribute("tool-id", t), {
3657
+ toolId: this.toolId,
3658
+ button: i,
3659
+ overlayElement: n,
3660
+ sync: () => {
3661
+ const l = o.isToolVisible(t);
3662
+ i.active = l, n.visible = l, o.toolkitCoordinator && (n.toolkitCoordinator = o.toolkitCoordinator);
3663
+ },
3664
+ subscribeActive: (l) => o.subscribeVisibility ? o.subscribeVisibility(() => {
3665
+ l(o.isToolVisible(t));
3666
+ }) : () => {
3667
+ }
3668
+ };
3669
+ }
3670
+ };
3671
+ function Er(e = {}) {
3672
+ const o = new cr(), t = {
3673
+ toolTagMap: {
3674
+ ...cs,
3675
+ ...e.toolTagMap || {}
3676
+ },
3677
+ toolComponentFactory: e.toolComponentFactory,
3678
+ toolComponentFactories: e.toolComponentFactories
3679
+ }, i = (s) => e.overrides?.[s.toolId] || s;
3680
+ return o.register(i(xr)), o.register(i(kr)), o.register(i(Sr)), o.register(i(Ir)), o.register(i($r)), o.register(i(Tr)), o.register(i(Cr)), o.register(i(Ar)), o.register(i(Lr)), o.register(i(zr)), o.register(i(jr)), e.toolModuleLoaders && Object.keys(e.toolModuleLoaders).length > 0 && o.setToolModuleLoaders(e.toolModuleLoaders), o.setComponentOverrides(t), o;
3681
+ }
3682
+ function Mr() {
3683
+ const e = Er(), o = /* @__PURE__ */ new Set();
3684
+ for (const t of e.getAllTools())
3685
+ for (const i of t.pnpSupportIds || [])
3686
+ o.add(i);
3687
+ return [...o].sort();
3688
+ }
3689
+ Mr();
3690
+ const Rr = {
3691
+ /**
3692
+ * Visual accessibility features
3693
+ * For students with low vision, color blindness, or visual processing needs
3694
+ */
3695
+ visual: {
3696
+ // Magnification and zoom
3697
+ magnification: "magnification",
3698
+ screenMagnifier: "screenMagnifier",
3699
+ zoomable: "zoomable",
3700
+ // Color and contrast
3701
+ highContrastDisplay: "highContrastDisplay",
3702
+ highContrastAudio: "highContrastAudio",
3703
+ colorContrast: "colorContrast",
3704
+ invertColors: "invertColors",
3705
+ // Display customization
3706
+ displayTransformability: "displayTransformability",
3707
+ largePrint: "largePrint",
3708
+ fontEnlargement: "fontEnlargement",
3709
+ resizeText: "resizeText",
3710
+ // Visual alternatives
3711
+ alternativeText: "alternativeText",
3712
+ longDescription: "longDescription",
3713
+ describedMath: "describedMath",
3714
+ tactileGraphic: "tactileGraphic",
3715
+ tactileObject: "tactileObject"
3716
+ },
3717
+ /**
3718
+ * Auditory accessibility features
3719
+ * For students who are deaf, hard of hearing, or benefit from audio
3720
+ */
3721
+ auditory: {
3722
+ // Audio output
3723
+ audioDescription: "audioDescription",
3724
+ textToSpeech: "textToSpeech",
3725
+ readAloud: "readAloud",
3726
+ humanVoice: "humanVoice",
3727
+ syntheticVoice: "syntheticVoice",
3728
+ // Speech control
3729
+ speechRate: "speechRate",
3730
+ speechVolume: "speechVolume",
3731
+ voicePitch: "voicePitch",
3732
+ // Visual alternatives for audio
3733
+ captions: "captions",
3734
+ closedCaptions: "closedCaptions",
3735
+ openCaptions: "openCaptions",
3736
+ transcript: "transcript",
3737
+ signLanguage: "signLanguage",
3738
+ subtitles: "subtitles",
3739
+ // Audio adjustments
3740
+ audioControl: "audioControl",
3741
+ noBackgroundAudio: "noBackgroundAudio"
3742
+ },
3743
+ /**
3744
+ * Motor/physical accessibility features
3745
+ * For students with limited mobility or motor control
3746
+ */
3747
+ motor: {
3748
+ // Input alternatives
3749
+ keyboardControl: "keyboardControl",
3750
+ mouseControl: "mouseControl",
3751
+ touchControl: "touchControl",
3752
+ voiceControl: "voiceControl",
3753
+ switchControl: "switchControl",
3754
+ eyeGazeControl: "eyeGazeControl",
3755
+ // Keyboard features
3756
+ singleSwitchAccess: "singleSwitchAccess",
3757
+ stickyKeys: "stickyKeys",
3758
+ keyboardShortcuts: "keyboardShortcuts",
3759
+ // Timing
3760
+ timingControl: "timingControl",
3761
+ unlimitedTime: "unlimitedTime",
3762
+ extendedTime: "extendedTime",
3763
+ pauseControl: "pauseControl"
3764
+ },
3765
+ /**
3766
+ * Cognitive/learning accessibility features
3767
+ * For students with learning disabilities, ADHD, autism, etc.
3768
+ */
3769
+ cognitive: {
3770
+ // Content simplification
3771
+ simplifiedLanguage: "simplifiedLanguage",
3772
+ reducedComplexity: "reducedComplexity",
3773
+ structuralNavigation: "structuralNavigation",
3774
+ tableOfContents: "tableOfContents",
3775
+ // Focus and attention
3776
+ reducedDistraction: "reducedDistraction",
3777
+ noFlashing: "noFlashing",
3778
+ pauseAnimation: "pauseAnimation",
3779
+ // Organization and support
3780
+ annotations: "annotations",
3781
+ bookmarking: "bookmarking",
3782
+ highlighting: "highlighting",
3783
+ guidedNavigation: "guidedNavigation",
3784
+ // Tools
3785
+ calculator: "calculator",
3786
+ thesaurus: "thesaurus",
3787
+ spellingAssistance: "spellingAssistance",
3788
+ grammarAssistance: "grammarAssistance"
3789
+ },
3790
+ /**
3791
+ * Reading support features
3792
+ * For students with dyslexia or reading challenges
3793
+ */
3794
+ reading: {
3795
+ // Text presentation
3796
+ lineSpacing: "lineSpacing",
3797
+ wordSpacing: "wordSpacing",
3798
+ letterSpacing: "letterSpacing",
3799
+ fontFamily: "fontFamily",
3800
+ readingMask: "readingMask",
3801
+ readingGuide: "readingGuide",
3802
+ readingRuler: "readingRuler",
3803
+ // Highlighting and emphasis
3804
+ wordHighlighting: "wordHighlighting",
3805
+ lineHighlighting: "lineHighlighting",
3806
+ focusIndicator: "focusIndicator",
3807
+ // Content support
3808
+ printableResource: "printableResource",
3809
+ braille: "braille",
3810
+ nemeth: "nemeth",
3811
+ refreshableBraille: "refreshableBraille"
3812
+ },
3813
+ /**
3814
+ * Navigation features
3815
+ * For efficient content navigation
3816
+ */
3817
+ navigation: {
3818
+ // Structure
3819
+ index: "index",
3820
+ pageNavigation: "pageNavigation",
3821
+ skipContent: "skipContent",
3822
+ breadcrumbs: "breadcrumbs",
3823
+ // Search
3824
+ searchable: "searchable",
3825
+ fullTextSearch: "fullTextSearch"
3826
+ },
3827
+ /**
3828
+ * Linguistic features
3829
+ * For language support
3830
+ */
3831
+ linguistic: {
3832
+ // Languages
3833
+ multilingualText: "multilingualText",
3834
+ translatedText: "translatedText",
3835
+ glossary: "glossary",
3836
+ // Sign language
3837
+ signLanguageInterpretation: "signLanguageInterpretation",
3838
+ visualLanguage: "visualLanguage"
3839
+ },
3840
+ /**
3841
+ * Assessment-specific features
3842
+ * Features specific to test-taking environments
3843
+ */
3844
+ assessment: {
3845
+ // Tools
3846
+ protractor: "protractor",
3847
+ ruler: "ruler",
3848
+ graph: "graph",
3849
+ graphingCalculator: "graphingCalculator",
3850
+ periodicTable: "periodicTable",
3851
+ formulaSheet: "formulaSheet",
3852
+ // Answer support
3853
+ answerMasking: "answerMasking",
3854
+ answerEliminator: "answerEliminator",
3855
+ strikethrough: "strikethrough",
3856
+ // Item features
3857
+ itemGlossary: "itemGlossary",
3858
+ tutorialAvailable: "tutorialAvailable"
3859
+ }
3860
+ };
3861
+ Object.values(Rr).flatMap((e) => Object.values(e));
3862
+ var $t;
3863
+ (function(e) {
3864
+ e[e.BASE = 0] = "BASE", e[e.TOOL = 1e3] = "TOOL", e[e.MODAL = 2e3] = "MODAL", e[e.CONTROL = 3e3] = "CONTROL", e[e.HIGHLIGHT = 4e3] = "HIGHLIGHT";
3865
+ })($t || ($t = {}));
3866
+ var Yi;
3867
+ (function(e) {
3868
+ e.IDLE = "idle", e.LOADING = "loading", e.PLAYING = "playing", e.PAUSED = "paused", e.ERROR = "error";
3869
+ })(Yi || (Yi = {}));
3870
+ const Nr = { BASE_URL: "/", DEV: !1, MODE: "production", PROD: !0, SSR: !1 };
3871
+ function ps(e) {
3872
+ try {
3873
+ const o = Nr?.[e];
3874
+ if (typeof o == "string" && o.length > 0)
3875
+ return o;
3876
+ } catch {
3877
+ }
3878
+ }
3879
+ typeof window < "u" && window.PIE_BUILDER_ORIGIN_URL || ps("PUBLIC_BUILDER_ORIGIN_URL");
3880
+ typeof window < "u" && window.PIE_BUILDER_BUNDLE_URL || ps("PUBLIC_BUILDER_BUNDLE_URL");
3881
+ var pi;
3882
+ (function(e) {
3883
+ e.player = "player.js", e.clientPlayer = "client-player.js", e.editor = "editor.js";
3884
+ })(pi || (pi = {}));
3885
+ var Zi;
3886
+ (function(e) {
3887
+ e.loading = "loading", e.loaded = "loaded";
3888
+ })(Zi || (Zi = {}));
3889
+ typeof window < "u" && !window.pieHelpers && (window.pieHelpers = {
3890
+ loadingScripts: {},
3891
+ loadingPromises: {}
3892
+ });
3893
+ var Qi;
3894
+ (function(e) {
3895
+ e.SAVE = "save", e.MODEL = "model", e.SCORE = "score", e.MANUAL_SCORE = "manual-score";
3896
+ })(Qi || (Qi = {}));
3897
+ var en;
3898
+ (function(e) {
3899
+ e.AUTO = "auto", e.MANUAL = "manual";
3900
+ })(en || (en = {}));
3901
+ var on;
3902
+ (function(e) {
3903
+ e.GATHER = "gather", e.VIEW = "view", e.EVALUATE = "evaluate";
3904
+ })(on || (on = {}));
3905
+ var tn;
3906
+ (function(e) {
3907
+ e.PENDING = "pending", e.IN_PROGRESS = "in_progress", e.COMPLETED = "completed", e.FAILED = "failed";
3908
+ })(tn || (tn = {}));
3909
+ var nn;
3910
+ (function(e) {
3911
+ e[e.ROOT = 0] = "ROOT", e[e.SUBJECT = 1] = "SUBJECT", e[e.LEVEL = 2] = "LEVEL", e[e.STANDARD = 3] = "STANDARD";
3912
+ })(nn || (nn = {}));
3913
+ pi.player;
3914
+ const Or = /* @__PURE__ */ JSON.parse('[{"name":"Hydrogen","atomic_mass":1.008,"boil":20.271,"category":"diatomic nonmetal","density":0.08988,"discovered_by":"Henry Cavendish","melt":13.99,"molar_heat":28.836,"named_by":"Antoine Lavoisier","number":1,"period":1,"group":1,"phase":"Gas","symbol":"H","xpos":1,"ypos":1,"wxpos":1,"wypos":1,"shells":[1],"electron_configuration":"1s1","electron_configuration_semantic":"1s1","electron_affinity":72.769,"electronegativity_pauling":2.2,"ionization_energies":[1312],"block":"s"},{"name":"Helium","atomic_mass":4.0026022,"boil":4.222,"category":"noble gas","density":0.1786,"discovered_by":"Pierre Janssen","melt":0.95,"molar_heat":null,"named_by":null,"number":2,"period":1,"group":18,"phase":"Gas","symbol":"He","xpos":18,"ypos":1,"wxpos":32,"wypos":1,"shells":[2],"electron_configuration":"1s2","electron_configuration_semantic":"1s2","electron_affinity":-48,"electronegativity_pauling":null,"ionization_energies":[2372.3,5250.5],"block":"s"},{"name":"Lithium","atomic_mass":6.94,"boil":1603,"category":"alkali metal","density":0.534,"discovered_by":"Johan August Arfwedson","melt":453.65,"molar_heat":24.86,"named_by":null,"number":3,"period":2,"group":1,"phase":"Solid","symbol":"Li","xpos":1,"ypos":2,"wxpos":1,"wypos":2,"shells":[2,1],"electron_configuration":"1s2 2s1","electron_configuration_semantic":"[He] 2s1","electron_affinity":59.6326,"electronegativity_pauling":0.98,"ionization_energies":[520.2,7298.1,11815],"block":"s"},{"name":"Beryllium","atomic_mass":9.01218315,"boil":2742,"category":"alkaline earth metal","density":1.85,"discovered_by":"Louis Nicolas Vauquelin","melt":1560,"molar_heat":16.443,"named_by":null,"number":4,"period":2,"group":2,"phase":"Solid","symbol":"Be","xpos":2,"ypos":2,"wxpos":2,"wypos":2,"shells":[2,2],"electron_configuration":"1s2 2s2","electron_configuration_semantic":"[He] 2s2","electron_affinity":-48,"electronegativity_pauling":1.57,"ionization_energies":[899.5,1757.1,14848.7,21006.6],"block":"s"},{"name":"Boron","atomic_mass":10.81,"boil":4200,"category":"metalloid","density":2.08,"discovered_by":"Joseph Louis Gay-Lussac","melt":2349,"molar_heat":11.087,"named_by":null,"number":5,"period":2,"group":13,"phase":"Solid","symbol":"B","xpos":13,"ypos":2,"wxpos":27,"wypos":2,"shells":[2,3],"electron_configuration":"1s2 2s2 2p1","electron_configuration_semantic":"[He] 2s2 2p1","electron_affinity":26.989,"electronegativity_pauling":2.04,"ionization_energies":[800.6,2427.1,3659.7,25025.8,32826.7],"block":"p"},{"name":"Carbon","atomic_mass":12.011,"boil":null,"category":"polyatomic nonmetal","density":1.821,"discovered_by":"Ancient Egypt","melt":null,"molar_heat":8.517,"named_by":null,"number":6,"period":2,"group":14,"phase":"Solid","symbol":"C","xpos":14,"ypos":2,"wxpos":28,"wypos":2,"shells":[2,4],"electron_configuration":"1s2 2s2 2p2","electron_configuration_semantic":"[He] 2s2 2p2","electron_affinity":121.7763,"electronegativity_pauling":2.55,"ionization_energies":[1086.5,2352.6,4620.5,6222.7,37831,47277],"block":"p"},{"name":"Nitrogen","atomic_mass":14.007,"boil":77.355,"category":"diatomic nonmetal","density":1.251,"discovered_by":"Daniel Rutherford","melt":63.15,"molar_heat":null,"named_by":"Jean-Antoine Chaptal","number":7,"period":2,"group":15,"phase":"Gas","symbol":"N","xpos":15,"ypos":2,"wxpos":29,"wypos":2,"shells":[2,5],"electron_configuration":"1s2 2s2 2p3","electron_configuration_semantic":"[He] 2s2 2p3","electron_affinity":-6.8,"electronegativity_pauling":3.04,"ionization_energies":[1402.3,2856,4578.1,7475,9444.9,53266.6,64360],"block":"p"},{"name":"Oxygen","atomic_mass":15.999,"boil":90.188,"category":"diatomic nonmetal","density":1.429,"discovered_by":"Carl Wilhelm Scheele","melt":54.36,"molar_heat":null,"named_by":"Antoine Lavoisier","number":8,"period":2,"group":16,"phase":"Gas","symbol":"O","xpos":16,"ypos":2,"wxpos":30,"wypos":2,"shells":[2,6],"electron_configuration":"1s2 2s2 2p4","electron_configuration_semantic":"[He] 2s2 2p4","electron_affinity":140.976,"electronegativity_pauling":3.44,"ionization_energies":[1313.9,3388.3,5300.5,7469.2,10989.5,13326.5,71330,84078],"block":"p"},{"name":"Fluorine","atomic_mass":18.9984031636,"boil":85.03,"category":"diatomic nonmetal","density":1.696,"discovered_by":"André-Marie Ampère","melt":53.48,"molar_heat":null,"named_by":"Humphry Davy","number":9,"period":2,"group":17,"phase":"Gas","symbol":"F","xpos":17,"ypos":2,"wxpos":31,"wypos":2,"shells":[2,7],"electron_configuration":"1s2 2s2 2p5","electron_configuration_semantic":"[He] 2s2 2p5","electron_affinity":328.1649,"electronegativity_pauling":3.98,"ionization_energies":[1681,3374.2,6050.4,8407.7,11022.7,15164.1,17868,92038.1,106434.3],"block":"p"},{"name":"Neon","atomic_mass":20.17976,"boil":27.104,"category":"noble gas","density":0.9002,"discovered_by":"Morris Travers","melt":24.56,"molar_heat":null,"named_by":null,"number":10,"period":2,"group":18,"phase":"Gas","symbol":"Ne","xpos":18,"ypos":2,"wxpos":32,"wypos":2,"shells":[2,8],"electron_configuration":"1s2 2s2 2p6","electron_configuration_semantic":"[He] 2s2 2p6","electron_affinity":-116,"electronegativity_pauling":null,"ionization_energies":[2080.7,3952.3,6122,9371,12177,15238,19999,23069.5,115379.5,131432],"block":"p"},{"name":"Sodium","atomic_mass":22.989769282,"boil":1156.09,"category":"alkali metal","density":0.968,"discovered_by":"Humphry Davy","melt":370.944,"molar_heat":28.23,"named_by":null,"number":11,"period":3,"group":1,"phase":"Solid","symbol":"Na","xpos":1,"ypos":3,"wxpos":1,"wypos":3,"shells":[2,8,1],"electron_configuration":"1s2 2s2 2p6 3s1","electron_configuration_semantic":"[Ne] 3s1","electron_affinity":52.867,"electronegativity_pauling":0.93,"ionization_energies":[495.8,4562,6910.3,9543,13354,16613,20117,25496,28932,141362,159076],"block":"s"},{"name":"Magnesium","atomic_mass":24.305,"boil":1363,"category":"alkaline earth metal","density":1.738,"discovered_by":"Joseph Black","melt":923,"molar_heat":24.869,"named_by":null,"number":12,"period":3,"group":2,"phase":"Solid","symbol":"Mg","xpos":2,"ypos":3,"wxpos":2,"wypos":3,"shells":[2,8,2],"electron_configuration":"1s2 2s2 2p6 3s2","electron_configuration_semantic":"[Ne] 3s2","electron_affinity":-40,"electronegativity_pauling":1.31,"ionization_energies":[737.7,1450.7,7732.7,10542.5,13630,18020,21711,25661,31653,35458,169988,189368],"block":"s"},{"name":"Aluminium","atomic_mass":26.98153857,"boil":2743,"category":"post-transition metal","density":2.7,"discovered_by":null,"melt":933.47,"molar_heat":24.2,"named_by":"Humphry Davy","number":13,"period":3,"group":13,"phase":"Solid","symbol":"Al","xpos":13,"ypos":3,"wxpos":27,"wypos":3,"shells":[2,8,3],"electron_configuration":"1s2 2s2 2p6 3s2 3p1","electron_configuration_semantic":"[Ne] 3s2 3p1","electron_affinity":41.762,"electronegativity_pauling":1.61,"ionization_energies":[577.5,1816.7,2744.8,11577,14842,18379,23326,27465,31853,38473,42647,201266,222316],"block":"p"},{"name":"Silicon","atomic_mass":28.085,"boil":3538,"category":"metalloid","density":2.329,"discovered_by":"Jöns Jacob Berzelius","melt":1687,"molar_heat":19.789,"named_by":"Thomas Thomson (chemist)","number":14,"period":3,"group":14,"phase":"Solid","symbol":"Si","xpos":14,"ypos":3,"wxpos":28,"wypos":3,"shells":[2,8,4],"electron_configuration":"1s2 2s2 2p6 3s2 3p2","electron_configuration_semantic":"[Ne] 3s2 3p2","electron_affinity":134.0684,"electronegativity_pauling":1.9,"ionization_energies":[786.5,1577.1,3231.6,4355.5,16091,19805,23780,29287,33878,38726,45962,50502,235196,257923],"block":"p"},{"name":"Phosphorus","atomic_mass":30.9737619985,"boil":null,"category":"polyatomic nonmetal","density":1.823,"discovered_by":"Hennig Brand","melt":null,"molar_heat":23.824,"named_by":null,"number":15,"period":3,"group":15,"phase":"Solid","symbol":"P","xpos":15,"ypos":3,"wxpos":29,"wypos":3,"shells":[2,8,5],"electron_configuration":"1s2 2s2 2p6 3s2 3p3","electron_configuration_semantic":"[Ne] 3s2 3p3","electron_affinity":72.037,"electronegativity_pauling":2.19,"ionization_energies":[1011.8,1907,2914.1,4963.6,6273.9,21267,25431,29872,35905,40950,46261,54110,59024,271791,296195],"block":"p"},{"name":"Sulfur","atomic_mass":32.06,"boil":717.8,"category":"polyatomic nonmetal","density":2.07,"discovered_by":"Ancient china","melt":388.36,"molar_heat":22.75,"named_by":null,"number":16,"period":3,"group":16,"phase":"Solid","symbol":"S","xpos":16,"ypos":3,"wxpos":30,"wypos":3,"shells":[2,8,6],"electron_configuration":"1s2 2s2 2p6 3s2 3p4","electron_configuration_semantic":"[Ne] 3s2 3p4","electron_affinity":200.4101,"electronegativity_pauling":2.58,"ionization_energies":[999.6,2252,3357,4556,7004.3,8495.8,27107,31719,36621,43177,48710,54460,62930,68216,311048,337138],"block":"p"},{"name":"Chlorine","atomic_mass":35.45,"boil":239.11,"category":"diatomic nonmetal","density":3.2,"discovered_by":"Carl Wilhelm Scheele","melt":171.6,"molar_heat":null,"named_by":null,"number":17,"period":3,"group":17,"phase":"Gas","symbol":"Cl","xpos":17,"ypos":3,"wxpos":31,"wypos":3,"shells":[2,8,7],"electron_configuration":"1s2 2s2 2p6 3s2 3p5","electron_configuration_semantic":"[Ne] 3s2 3p5","electron_affinity":348.575,"electronegativity_pauling":3.16,"ionization_energies":[1251.2,2298,3822,5158.6,6542,9362,11018,33604,38600,43961,51068,57119,63363,72341,78095,352994,380760],"block":"p"},{"name":"Argon","atomic_mass":39.9481,"boil":87.302,"category":"noble gas","density":1.784,"discovered_by":"Lord Rayleigh","melt":83.81,"molar_heat":null,"named_by":null,"number":18,"period":3,"group":18,"phase":"Gas","symbol":"Ar","xpos":18,"ypos":3,"wxpos":32,"wypos":3,"shells":[2,8,8],"electron_configuration":"1s2 2s2 2p6 3s2 3p6","electron_configuration_semantic":"[Ne] 3s2 3p6","electron_affinity":-96,"electronegativity_pauling":null,"ionization_energies":[1520.6,2665.8,3931,5771,7238,8781,11995,13842,40760,46186,52002,59653,66199,72918,82473,88576,397605,427066],"block":"p"},{"name":"Potassium","atomic_mass":39.09831,"boil":1032,"category":"alkali metal","density":0.862,"discovered_by":"Humphry Davy","melt":336.7,"molar_heat":29.6,"named_by":null,"number":19,"period":4,"group":1,"phase":"Solid","symbol":"K","xpos":1,"ypos":4,"wxpos":1,"wypos":4,"shells":[2,8,8,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s1","electron_configuration_semantic":"[Ar] 4s1","electron_affinity":48.383,"electronegativity_pauling":0.82,"ionization_energies":[418.8,3052,4420,5877,7975,9590,11343,14944,16963.7,48610,54490,60730,68950,75900,83080,93400,99710,444880,476063],"block":"s"},{"name":"Calcium","atomic_mass":40.0784,"boil":1757,"category":"alkaline earth metal","density":1.55,"discovered_by":"Humphry Davy","melt":1115,"molar_heat":25.929,"named_by":null,"number":20,"period":4,"group":2,"phase":"Solid","symbol":"Ca","xpos":2,"ypos":4,"wxpos":2,"wypos":4,"shells":[2,8,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2","electron_configuration_semantic":"[Ar] 4s2","electron_affinity":2.37,"electronegativity_pauling":1,"ionization_energies":[589.8,1145.4,4912.4,6491,8153,10496,12270,14206,18191,20385,57110,63410,70110,78890,86310,94000,104900,111711,494850,527762],"block":"s"},{"name":"Scandium","atomic_mass":44.9559085,"boil":3109,"category":"transition metal","density":2.985,"discovered_by":"Lars Fredrik Nilson","melt":1814,"molar_heat":25.52,"named_by":null,"number":21,"period":4,"group":3,"phase":"Solid","symbol":"Sc","xpos":3,"ypos":4,"wxpos":17,"wypos":4,"shells":[2,8,9,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d1","electron_configuration_semantic":"[Ar] 3d1 4s2","electron_affinity":18,"electronegativity_pauling":1.36,"ionization_energies":[633.1,1235,2388.6,7090.6,8843,10679,13310,15250,17370,21726,24102,66320,73010,80160,89490,97400,105600,117000,124270,547530,582163],"block":"d"},{"name":"Titanium","atomic_mass":47.8671,"boil":3560,"category":"transition metal","density":4.506,"discovered_by":"William Gregor","melt":1941,"molar_heat":25.06,"named_by":"Martin Heinrich Klaproth","number":22,"period":4,"group":4,"phase":"Solid","symbol":"Ti","xpos":4,"ypos":4,"wxpos":18,"wypos":4,"shells":[2,8,10,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d2","electron_configuration_semantic":"[Ar] 3d2 4s2","electron_affinity":7.289,"electronegativity_pauling":1.54,"ionization_energies":[658.8,1309.8,2652.5,4174.6,9581,11533,13590,16440,18530,20833,25575,28125,76015,83280,90880,100700,109100,117800,129900,137530,602930,639294],"block":"d"},{"name":"Vanadium","atomic_mass":50.94151,"boil":3680,"category":"transition metal","density":6,"discovered_by":"Andrés Manuel del Río","melt":2183,"molar_heat":24.89,"named_by":"Isotopes of vanadium","number":23,"period":4,"group":5,"phase":"Solid","symbol":"V","xpos":5,"ypos":4,"wxpos":19,"wypos":4,"shells":[2,8,11,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d3","electron_configuration_semantic":"[Ar] 3d3 4s2","electron_affinity":50.911,"electronegativity_pauling":1.63,"ionization_energies":[650.9,1414,2830,4507,6298.7,12363,14530,16730,19860,22240,24670,29730,32446,86450,94170,102300,112700,121600,130700,143400,151440,661050,699144],"block":"d"},{"name":"Chromium","atomic_mass":51.99616,"boil":2944,"category":"transition metal","density":7.19,"discovered_by":"Louis Nicolas Vauquelin","melt":2180,"molar_heat":23.35,"named_by":null,"number":24,"period":4,"group":6,"phase":"Solid","symbol":"Cr","xpos":6,"ypos":4,"wxpos":20,"wypos":4,"shells":[2,8,13,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s1 3d5","electron_configuration_semantic":"[Ar] 3d5 4s1","electron_affinity":65.21,"electronegativity_pauling":1.66,"ionization_energies":[652.9,1590.6,2987,4743,6702,8744.9,15455,17820,20190,23580,26130,28750,34230,37066,97510,105800,114300,125300,134700,144300,157700,166090,721870,761733],"block":"d"},{"name":"Manganese","atomic_mass":54.9380443,"boil":2334,"category":"transition metal","density":7.21,"discovered_by":"Torbern Olof Bergman","melt":1519,"molar_heat":26.32,"named_by":null,"number":25,"period":4,"group":7,"phase":"Solid","symbol":"Mn","xpos":7,"ypos":4,"wxpos":21,"wypos":4,"shells":[2,8,13,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d5","electron_configuration_semantic":"[Ar] 3d5 4s2","electron_affinity":-50,"electronegativity_pauling":1.55,"ionization_energies":[717.3,1509,3248,4940,6990,9220,11500,18770,21400,23960,27590,30330,33150,38880,41987,109480,118100,127100,138600,148500,158600,172500,181380,785450,827067],"block":"d"},{"name":"Iron","atomic_mass":55.8452,"boil":3134,"category":"transition metal","density":7.874,"discovered_by":"5000 BC","melt":1811,"molar_heat":25.1,"named_by":null,"number":26,"period":4,"group":8,"phase":"Solid","symbol":"Fe","xpos":8,"ypos":4,"wxpos":22,"wypos":4,"shells":[2,8,14,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d6","electron_configuration_semantic":"[Ar] 3d6 4s2","electron_affinity":14.785,"electronegativity_pauling":1.83,"ionization_energies":[762.5,1561.9,2957,5290,7240,9560,12060,14580,22540,25290,28000,31920,34830,37840,44100,47206,122200,131000,140500,152600,163000,173600,188100,195200,851800,895161],"block":"d"},{"name":"Cobalt","atomic_mass":58.9331944,"boil":3200,"category":"transition metal","density":8.9,"discovered_by":"Georg Brandt","melt":1768,"molar_heat":24.81,"named_by":null,"number":27,"period":4,"group":9,"phase":"Solid","symbol":"Co","xpos":9,"ypos":4,"wxpos":23,"wypos":4,"shells":[2,8,15,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d7","electron_configuration_semantic":"[Ar] 3d7 4s2","electron_affinity":63.898,"electronegativity_pauling":1.88,"ionization_energies":[760.4,1648,3232,4950,7670,9840,12440,15230,17959,26570,29400,32400,36600,39700,42800,49396,52737,134810,145170,154700,167400,178100,189300,204500,214100,920870,966023],"block":"d"},{"name":"Nickel","atomic_mass":58.69344,"boil":3003,"category":"transition metal","density":8.908,"discovered_by":"Axel Fredrik Cronstedt","melt":1728,"molar_heat":26.07,"named_by":null,"number":28,"period":4,"group":10,"phase":"Solid","symbol":"Ni","xpos":10,"ypos":4,"wxpos":24,"wypos":4,"shells":[2,8,16,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d8","electron_configuration_semantic":"[Ar] 3d8 4s2","electron_affinity":111.65,"electronegativity_pauling":1.91,"ionization_energies":[737.1,1753,3395,5300,7339,10400,12800,15600,18600,21670,30970,34000,37100,41500,44800,48100,55101,58570,148700,159000,169400,182700,194000,205600,221400,231490,992718,1039668],"block":"d"},{"name":"Copper","atomic_mass":63.5463,"boil":2835,"category":"transition metal","density":8.96,"discovered_by":"Middle East","melt":1357.77,"molar_heat":24.44,"named_by":null,"number":29,"period":4,"group":11,"phase":"Solid","symbol":"Cu","xpos":11,"ypos":4,"wxpos":25,"wypos":4,"shells":[2,8,18,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s1 3d10","electron_configuration_semantic":"[Ar] 3d10 4s1","electron_affinity":119.235,"electronegativity_pauling":1.9,"ionization_energies":[745.5,1957.9,3555,5536,7700,9900,13400,16000,19200,22400,25600,35600,38700,42000,46700,50200,53700,61100,64702,163700,174100,184900,198800,210500,222700,239100,249660,1067358,1116105],"block":"d"},{"name":"Zinc","atomic_mass":65.382,"boil":1180,"category":"transition metal","density":7.14,"discovered_by":"India","melt":692.68,"molar_heat":25.47,"named_by":null,"number":30,"period":4,"group":12,"phase":"Solid","symbol":"Zn","xpos":12,"ypos":4,"wxpos":26,"wypos":4,"shells":[2,8,18,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10","electron_configuration_semantic":"[Ar] 3d10 4s2","electron_affinity":-58,"electronegativity_pauling":1.65,"ionization_energies":[906.4,1733.3,3833,5731,7970,10400,12900,16800,19600,23000,26400,29990,40490,43800,47300,52300,55900,59700,67300,71200,179100],"block":"d"},{"name":"Gallium","atomic_mass":69.7231,"boil":2673,"category":"post-transition metal","density":5.91,"discovered_by":"Lecoq de Boisbaudran","melt":302.9146,"molar_heat":25.86,"named_by":null,"number":31,"period":4,"group":13,"phase":"Solid","symbol":"Ga","xpos":13,"ypos":4,"wxpos":27,"wypos":4,"shells":[2,8,18,3],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p1","electron_configuration_semantic":"[Ar] 3d10 4s2 4p1","electron_affinity":41,"electronegativity_pauling":1.81,"ionization_energies":[578.8,1979.3,2963,6180],"block":"p"},{"name":"Germanium","atomic_mass":72.6308,"boil":3106,"category":"metalloid","density":5.323,"discovered_by":"Clemens Winkler","melt":1211.4,"molar_heat":23.222,"named_by":null,"number":32,"period":4,"group":14,"phase":"Solid","symbol":"Ge","xpos":14,"ypos":4,"wxpos":28,"wypos":4,"shells":[2,8,18,4],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p2","electron_configuration_semantic":"[Ar] 3d10 4s2 4p2","electron_affinity":118.9352,"electronegativity_pauling":2.01,"ionization_energies":[762,1537.5,3302.1,4411,9020],"block":"p"},{"name":"Arsenic","atomic_mass":74.9215956,"boil":null,"category":"metalloid","density":5.727,"discovered_by":"Bronze Age","melt":null,"molar_heat":24.64,"named_by":null,"number":33,"period":4,"group":15,"phase":"Solid","symbol":"As","xpos":15,"ypos":4,"wxpos":29,"wypos":4,"shells":[2,8,18,5],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p3","electron_configuration_semantic":"[Ar] 3d10 4s2 4p3","electron_affinity":77.65,"electronegativity_pauling":2.18,"ionization_energies":[947,1798,2735,4837,6043,12310],"block":"p"},{"name":"Selenium","atomic_mass":78.9718,"boil":958,"category":"polyatomic nonmetal","density":4.81,"discovered_by":"Jöns Jakob Berzelius","melt":494,"molar_heat":25.363,"named_by":null,"number":34,"period":4,"group":16,"phase":"Solid","symbol":"Se","xpos":16,"ypos":4,"wxpos":30,"wypos":4,"shells":[2,8,18,6],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p4","electron_configuration_semantic":"[Ar] 3d10 4s2 4p4","electron_affinity":194.9587,"electronegativity_pauling":2.55,"ionization_energies":[941,2045,2973.7,4144,6590,7880,14990],"block":"p"},{"name":"Bromine","atomic_mass":79.904,"boil":332,"category":"diatomic nonmetal","density":3.1028,"discovered_by":"Antoine Jérôme Balard","melt":265.8,"molar_heat":null,"named_by":null,"number":35,"period":4,"group":17,"phase":"Liquid","symbol":"Br","xpos":17,"ypos":4,"wxpos":31,"wypos":4,"shells":[2,8,18,7],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p5","electron_configuration_semantic":"[Ar] 3d10 4s2 4p5","electron_affinity":324.537,"electronegativity_pauling":2.96,"ionization_energies":[1139.9,2103,3470,4560,5760,8550,9940,18600],"block":"p"},{"name":"Krypton","atomic_mass":83.7982,"boil":119.93,"category":"noble gas","density":3.749,"discovered_by":"William Ramsay","melt":115.78,"molar_heat":null,"named_by":null,"number":36,"period":4,"group":18,"phase":"Gas","symbol":"Kr","xpos":18,"ypos":4,"wxpos":32,"wypos":4,"shells":[2,8,18,8],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6","electron_configuration_semantic":"[Ar] 3d10 4s2 4p6","electron_affinity":-96,"electronegativity_pauling":3,"ionization_energies":[1350.8,2350.4,3565,5070,6240,7570,10710,12138,22274,25880,29700,33800,37700,43100,47500,52200,57100,61800,75800,80400,85300,90400,96300,101400,111100,116290,282500,296200,311400,326200],"block":"p"},{"name":"Rubidium","atomic_mass":85.46783,"boil":961,"category":"alkali metal","density":1.532,"discovered_by":"Robert Bunsen","melt":312.45,"molar_heat":31.06,"named_by":null,"number":37,"period":5,"group":1,"phase":"Solid","symbol":"Rb","xpos":1,"ypos":5,"wxpos":1,"wypos":5,"shells":[2,8,18,8,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s1","electron_configuration_semantic":"[Kr] 5s1","electron_affinity":46.884,"electronegativity_pauling":0.82,"ionization_energies":[403,2633,3860,5080,6850,8140,9570,13120,14500,26740],"block":"s"},{"name":"Strontium","atomic_mass":87.621,"boil":1650,"category":"alkaline earth metal","density":2.64,"discovered_by":"William Cruickshank (chemist)","melt":1050,"molar_heat":26.4,"named_by":null,"number":38,"period":5,"group":2,"phase":"Solid","symbol":"Sr","xpos":2,"ypos":5,"wxpos":2,"wypos":5,"shells":[2,8,18,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2","electron_configuration_semantic":"[Kr] 5s2","electron_affinity":5.023,"electronegativity_pauling":0.95,"ionization_energies":[549.5,1064.2,4138,5500,6910,8760,10230,11800,15600,17100,31270],"block":"s"},{"name":"Yttrium","atomic_mass":88.905842,"boil":3203,"category":"transition metal","density":4.472,"discovered_by":"Johan Gadolin","melt":1799,"molar_heat":26.53,"named_by":null,"number":39,"period":5,"group":3,"phase":"Solid","symbol":"Y","xpos":3,"ypos":5,"wxpos":17,"wypos":5,"shells":[2,8,18,9,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d1","electron_configuration_semantic":"[Kr] 4d1 5s2","electron_affinity":29.6,"electronegativity_pauling":1.22,"ionization_energies":[600,1180,1980,5847,7430,8970,11190,12450,14110,18400,19900,36090],"block":"d"},{"name":"Zirconium","atomic_mass":91.2242,"boil":4650,"category":"transition metal","density":6.52,"discovered_by":"Martin Heinrich Klaproth","melt":2128,"molar_heat":25.36,"named_by":null,"number":40,"period":5,"group":4,"phase":"Solid","symbol":"Zr","xpos":4,"ypos":5,"wxpos":18,"wypos":5,"shells":[2,8,18,10,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d2","electron_configuration_semantic":"[Kr] 4d2 5s2","electron_affinity":41.806,"electronegativity_pauling":1.33,"ionization_energies":[640.1,1270,2218,3313,7752,9500],"block":"d"},{"name":"Niobium","atomic_mass":92.906372,"boil":5017,"category":"transition metal","density":8.57,"discovered_by":"Charles Hatchett","melt":2750,"molar_heat":24.6,"named_by":null,"number":41,"period":5,"group":5,"phase":"Solid","symbol":"Nb","xpos":5,"ypos":5,"wxpos":19,"wypos":5,"shells":[2,8,18,12,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s1 4d4","electron_configuration_semantic":"[Kr] 4d4 5s1","electron_affinity":88.516,"electronegativity_pauling":1.6,"ionization_energies":[652.1,1380,2416,3700,4877,9847,12100],"block":"d"},{"name":"Molybdenum","atomic_mass":95.951,"boil":4912,"category":"transition metal","density":10.28,"discovered_by":"Carl Wilhelm Scheele","melt":2896,"molar_heat":24.06,"named_by":null,"number":42,"period":5,"group":6,"phase":"Solid","symbol":"Mo","xpos":6,"ypos":5,"wxpos":20,"wypos":5,"shells":[2,8,18,13,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s1 4d5","electron_configuration_semantic":"[Kr] 4d5 5s1","electron_affinity":72.1,"electronegativity_pauling":2.16,"ionization_energies":[684.3,1560,2618,4480,5257,6640.8,12125,13860,15835,17980,20190,22219,26930,29196,52490,55000,61400,67700,74000,80400,87000,93400,98420,104400,121900,127700,133800,139800,148100,154500],"block":"d"},{"name":"Technetium","atomic_mass":98,"boil":4538,"category":"transition metal","density":11,"discovered_by":"Emilio Segrè","melt":2430,"molar_heat":24.27,"named_by":null,"number":43,"period":5,"group":7,"phase":"Solid","symbol":"Tc","xpos":7,"ypos":5,"wxpos":21,"wypos":5,"shells":[2,8,18,13,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d5","electron_configuration_semantic":"[Kr] 4d5 5s2","electron_affinity":53,"electronegativity_pauling":1.9,"ionization_energies":[702,1470,2850],"block":"d"},{"name":"Ruthenium","atomic_mass":101.072,"boil":4423,"category":"transition metal","density":12.45,"discovered_by":"Karl Ernst Claus","melt":2607,"molar_heat":24.06,"named_by":null,"number":44,"period":5,"group":8,"phase":"Solid","symbol":"Ru","xpos":8,"ypos":5,"wxpos":22,"wypos":5,"shells":[2,8,18,15,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s1 4d7","electron_configuration_semantic":"[Kr] 4d7 5s1","electron_affinity":100.96,"electronegativity_pauling":2.2,"ionization_energies":[710.2,1620,2747],"block":"d"},{"name":"Rhodium","atomic_mass":102.905502,"boil":3968,"category":"transition metal","density":12.41,"discovered_by":"William Hyde Wollaston","melt":2237,"molar_heat":24.98,"named_by":null,"number":45,"period":5,"group":9,"phase":"Solid","symbol":"Rh","xpos":9,"ypos":5,"wxpos":23,"wypos":5,"shells":[2,8,18,16,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s1 4d8","electron_configuration_semantic":"[Kr] 4d8 5s1","electron_affinity":110.27,"electronegativity_pauling":2.28,"ionization_energies":[719.7,1740,2997],"block":"d"},{"name":"Palladium","atomic_mass":106.421,"boil":3236,"category":"transition metal","density":12.023,"discovered_by":"William Hyde Wollaston","melt":1828.05,"molar_heat":25.98,"named_by":null,"number":46,"period":5,"group":10,"phase":"Solid","symbol":"Pd","xpos":10,"ypos":5,"wxpos":24,"wypos":5,"shells":[2,8,18,18],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 4d10","electron_configuration_semantic":"[Kr] 4d10","electron_affinity":54.24,"electronegativity_pauling":2.2,"ionization_energies":[804.4,1870,3177],"block":"d"},{"name":"Silver","atomic_mass":107.86822,"boil":2435,"category":"transition metal","density":10.49,"discovered_by":"unknown, before 5000 BC","melt":1234.93,"molar_heat":25.35,"named_by":null,"number":47,"period":5,"group":11,"phase":"Solid","symbol":"Ag","xpos":11,"ypos":5,"wxpos":25,"wypos":5,"shells":[2,8,18,18,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s1 4d10","electron_configuration_semantic":"[Kr] 4d10 5s1","electron_affinity":125.862,"electronegativity_pauling":1.93,"ionization_energies":[731,2070,3361],"block":"d"},{"name":"Cadmium","atomic_mass":112.4144,"boil":1040,"category":"transition metal","density":8.65,"discovered_by":"Karl Samuel Leberecht Hermann","melt":594.22,"molar_heat":26.02,"named_by":"Isotopes of cadmium","number":48,"period":5,"group":12,"phase":"Solid","symbol":"Cd","xpos":12,"ypos":5,"wxpos":26,"wypos":5,"shells":[2,8,18,18,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10","electron_configuration_semantic":"[Kr] 4d10 5s2","electron_affinity":-68,"electronegativity_pauling":1.69,"ionization_energies":[867.8,1631.4,3616],"block":"d"},{"name":"Indium","atomic_mass":114.8181,"boil":2345,"category":"post-transition metal","density":7.31,"discovered_by":"Ferdinand Reich","melt":429.7485,"molar_heat":26.74,"named_by":null,"number":49,"period":5,"group":13,"phase":"Solid","symbol":"In","xpos":13,"ypos":5,"wxpos":27,"wypos":5,"shells":[2,8,18,18,3],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p1","electron_configuration_semantic":"[Kr] 4d10 5s2 5p1","electron_affinity":37.043,"electronegativity_pauling":1.78,"ionization_energies":[558.3,1820.7,2704,5210],"block":"p"},{"name":"Tin","atomic_mass":118.7107,"boil":2875,"category":"post-transition metal","density":7.365,"discovered_by":"unknown, before 3500 BC","melt":505.08,"molar_heat":27.112,"named_by":null,"number":50,"period":5,"group":14,"phase":"Solid","symbol":"Sn","xpos":14,"ypos":5,"wxpos":28,"wypos":5,"shells":[2,8,18,18,4],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p2","electron_configuration_semantic":"[Kr] 4d10 5s2 5p2","electron_affinity":107.2984,"electronegativity_pauling":1.96,"ionization_energies":[708.6,1411.8,2943,3930.3,7456],"block":"p"},{"name":"Antimony","atomic_mass":121.7601,"boil":1908,"category":"metalloid","density":6.697,"discovered_by":"unknown, before 3000 BC","melt":903.78,"molar_heat":25.23,"named_by":null,"number":51,"period":5,"group":15,"phase":"Solid","symbol":"Sb","xpos":15,"ypos":5,"wxpos":29,"wypos":5,"shells":[2,8,18,18,5],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p3","electron_configuration_semantic":"[Kr] 4d10 5s2 5p3","electron_affinity":101.059,"electronegativity_pauling":2.05,"ionization_energies":[834,1594.9,2440,4260,5400,10400],"block":"p"},{"name":"Tellurium","atomic_mass":127.603,"boil":1261,"category":"metalloid","density":6.24,"discovered_by":"Franz-Joseph Müller von Reichenstein","melt":722.66,"molar_heat":25.73,"named_by":null,"number":52,"period":5,"group":16,"phase":"Solid","symbol":"Te","xpos":16,"ypos":5,"wxpos":30,"wypos":5,"shells":[2,8,18,18,6],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p4","electron_configuration_semantic":"[Kr] 4d10 5s2 5p4","electron_affinity":190.161,"electronegativity_pauling":2.1,"ionization_energies":[869.3,1790,2698,3610,5668,6820,13200],"block":"p"},{"name":"Iodine","atomic_mass":126.904473,"boil":457.4,"category":"diatomic nonmetal","density":4.933,"discovered_by":"Bernard Courtois","melt":386.85,"molar_heat":null,"named_by":null,"number":53,"period":5,"group":17,"phase":"Solid","symbol":"I","xpos":17,"ypos":5,"wxpos":31,"wypos":5,"shells":[2,8,18,18,7],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p5","electron_configuration_semantic":"[Kr] 4d10 5s2 5p5","electron_affinity":295.1531,"electronegativity_pauling":2.66,"ionization_energies":[1008.4,1845.9,3180],"block":"p"},{"name":"Xenon","atomic_mass":131.2936,"boil":165.051,"category":"noble gas","density":5.894,"discovered_by":"William Ramsay","melt":161.4,"molar_heat":null,"named_by":null,"number":54,"period":5,"group":18,"phase":"Gas","symbol":"Xe","xpos":18,"ypos":5,"wxpos":32,"wypos":5,"shells":[2,8,18,18,8],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6","electron_configuration_semantic":"[Kr] 4d10 5s2 5p6","electron_affinity":-77,"electronegativity_pauling":2.6,"ionization_energies":[1170.4,2046.4,3099.4],"block":"p"},{"name":"Cesium","atomic_mass":132.905451966,"boil":944,"category":"alkali metal","density":1.93,"discovered_by":"Robert Bunsen","melt":301.7,"molar_heat":32.21,"named_by":null,"number":55,"period":6,"group":1,"phase":"Solid","symbol":"Cs","xpos":1,"ypos":6,"wxpos":1,"wypos":6,"shells":[2,8,18,18,8,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s1","electron_configuration_semantic":"[Xe] 6s1","electron_affinity":45.505,"electronegativity_pauling":0.79,"ionization_energies":[375.7,2234.3,3400],"block":"s"},{"name":"Barium","atomic_mass":137.3277,"boil":2118,"category":"alkaline earth metal","density":3.51,"discovered_by":"Carl Wilhelm Scheele","melt":1000,"molar_heat":28.07,"named_by":null,"number":56,"period":6,"group":2,"phase":"Solid","symbol":"Ba","xpos":2,"ypos":6,"wxpos":2,"wypos":6,"shells":[2,8,18,18,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2","electron_configuration_semantic":"[Xe] 6s2","electron_affinity":13.954,"electronegativity_pauling":0.89,"ionization_energies":[502.9,965.2,3600],"block":"s"},{"name":"Lanthanum","atomic_mass":138.905477,"boil":3737,"category":"lanthanide","density":6.162,"discovered_by":"Carl Gustaf Mosander","melt":1193,"molar_heat":27.11,"named_by":null,"number":57,"period":6,"group":3,"phase":"Solid","symbol":"La","xpos":3,"ypos":9,"wxpos":3,"wypos":6,"shells":[2,8,18,18,9,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 5d1","electron_configuration_semantic":"[Xe] 5d16s2","electron_affinity":53,"electronegativity_pauling":1.1,"ionization_energies":[538.1,1067,1850.3,4819,5940],"block":"f"},{"name":"Cerium","atomic_mass":140.1161,"boil":3716,"category":"lanthanide","density":6.77,"discovered_by":"Martin Heinrich Klaproth","melt":1068,"molar_heat":26.94,"named_by":null,"number":58,"period":6,"group":3,"phase":"Solid","symbol":"Ce","xpos":4,"ypos":9,"wxpos":4,"wypos":6,"shells":[2,8,18,19,9,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 5d1 4f1","electron_configuration_semantic":"[Xe] 4f1 5d1 6s2","electron_affinity":55,"electronegativity_pauling":1.12,"ionization_energies":[534.4,1050,1949,3547,6325,7490],"block":"f"},{"name":"Praseodymium","atomic_mass":140.907662,"boil":3403,"category":"lanthanide","density":6.77,"discovered_by":"Carl Auer von Welsbach","melt":1208,"molar_heat":27.2,"named_by":null,"number":59,"period":6,"group":3,"phase":"Solid","symbol":"Pr","xpos":5,"ypos":9,"wxpos":5,"wypos":6,"shells":[2,8,18,21,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f3","electron_configuration_semantic":"[Xe] 4f3 6s2","electron_affinity":93,"electronegativity_pauling":1.13,"ionization_energies":[527,1020,2086,3761,5551],"block":"f"},{"name":"Neodymium","atomic_mass":144.2423,"boil":3347,"category":"lanthanide","density":7.01,"discovered_by":"Carl Auer von Welsbach","melt":1297,"molar_heat":27.45,"named_by":null,"number":60,"period":6,"group":3,"phase":"Solid","symbol":"Nd","xpos":6,"ypos":9,"wxpos":6,"wypos":6,"shells":[2,8,18,22,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f4","electron_configuration_semantic":"[Xe] 4f4 6s2","electron_affinity":184.87,"electronegativity_pauling":1.14,"ionization_energies":[533.1,1040,2130,3900],"block":"f"},{"name":"Promethium","atomic_mass":145,"boil":3273,"category":"lanthanide","density":7.26,"discovered_by":"Chien Shiung Wu","melt":1315,"molar_heat":null,"named_by":"Isotopes of promethium","number":61,"period":6,"group":3,"phase":"Solid","symbol":"Pm","xpos":7,"ypos":9,"wxpos":7,"wypos":6,"shells":[2,8,18,23,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f5","electron_configuration_semantic":"[Xe] 4f5 6s2","electron_affinity":12.45,"electronegativity_pauling":1.13,"ionization_energies":[540,1050,2150,3970],"block":"f"},{"name":"Samarium","atomic_mass":150.362,"boil":2173,"category":"lanthanide","density":7.52,"discovered_by":"Lecoq de Boisbaudran","melt":1345,"molar_heat":29.54,"named_by":null,"number":62,"period":6,"group":3,"phase":"Solid","symbol":"Sm","xpos":8,"ypos":9,"wxpos":8,"wypos":6,"shells":[2,8,18,24,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f6","electron_configuration_semantic":"[Xe] 4f6 6s2","electron_affinity":15.63,"electronegativity_pauling":1.17,"ionization_energies":[544.5,1070,2260,3990],"block":"f"},{"name":"Europium","atomic_mass":151.9641,"boil":1802,"category":"lanthanide","density":5.264,"discovered_by":"Eugène-Anatole Demarçay","melt":1099,"molar_heat":27.66,"named_by":null,"number":63,"period":6,"group":3,"phase":"Solid","symbol":"Eu","xpos":9,"ypos":9,"wxpos":9,"wypos":6,"shells":[2,8,18,25,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f7","electron_configuration_semantic":"[Xe] 4f7 6s2","electron_affinity":11.2,"electronegativity_pauling":1.2,"ionization_energies":[547.1,1085,2404,4120],"block":"f"},{"name":"Gadolinium","atomic_mass":157.253,"boil":3273,"category":"lanthanide","density":7.9,"discovered_by":"Jean Charles Galissard de Marignac","melt":1585,"molar_heat":37.03,"named_by":null,"number":64,"period":6,"group":3,"phase":"Solid","symbol":"Gd","xpos":10,"ypos":9,"wxpos":10,"wypos":6,"shells":[2,8,18,25,9,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f7 5d1","electron_configuration_semantic":"[Xe] 4f7 5d1 6s2","electron_affinity":13.22,"electronegativity_pauling":1.2,"ionization_energies":[593.4,1170,1990,4250],"block":"f"},{"name":"Terbium","atomic_mass":158.925352,"boil":3396,"category":"lanthanide","density":8.23,"discovered_by":"Carl Gustaf Mosander","melt":1629,"molar_heat":28.91,"named_by":null,"number":65,"period":6,"group":3,"phase":"Solid","symbol":"Tb","xpos":11,"ypos":9,"wxpos":11,"wypos":6,"shells":[2,8,18,27,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f9","electron_configuration_semantic":"[Xe] 4f9 6s2","electron_affinity":112.4,"electronegativity_pauling":1.1,"ionization_energies":[565.8,1110,2114,3839],"block":"f"},{"name":"Dysprosium","atomic_mass":162.5001,"boil":2840,"category":"lanthanide","density":8.54,"discovered_by":"Lecoq de Boisbaudran","melt":1680,"molar_heat":27.7,"named_by":null,"number":66,"period":6,"group":3,"phase":"Solid","symbol":"Dy","xpos":12,"ypos":9,"wxpos":12,"wypos":6,"shells":[2,8,18,28,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f10","electron_configuration_semantic":"[Xe] 4f10 6s2","electron_affinity":33.96,"electronegativity_pauling":1.22,"ionization_energies":[573,1130,2200,3990],"block":"f"},{"name":"Holmium","atomic_mass":164.930332,"boil":2873,"category":"lanthanide","density":8.79,"discovered_by":"Marc Delafontaine","melt":1734,"molar_heat":27.15,"named_by":null,"number":67,"period":6,"group":3,"phase":"Solid","symbol":"Ho","xpos":13,"ypos":9,"wxpos":13,"wypos":6,"shells":[2,8,18,29,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f11","electron_configuration_semantic":"[Xe] 4f11 6s2","electron_affinity":32.61,"electronegativity_pauling":1.23,"ionization_energies":[581,1140,2204,4100],"block":"f"},{"name":"Erbium","atomic_mass":167.2593,"boil":3141,"category":"lanthanide","density":9.066,"discovered_by":"Carl Gustaf Mosander","melt":1802,"molar_heat":28.12,"named_by":null,"number":68,"period":6,"group":3,"phase":"Solid","symbol":"Er","xpos":14,"ypos":9,"wxpos":14,"wypos":6,"shells":[2,8,18,30,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f12","electron_configuration_semantic":"[Xe] 4f12 6s2","electron_affinity":30.1,"electronegativity_pauling":1.24,"ionization_energies":[589.3,1150,2194,4120],"block":"f"},{"name":"Thulium","atomic_mass":168.934222,"boil":2223,"category":"lanthanide","density":9.32,"discovered_by":"Per Teodor Cleve","melt":1818,"molar_heat":27.03,"named_by":null,"number":69,"period":6,"group":3,"phase":"Solid","symbol":"Tm","xpos":15,"ypos":9,"wxpos":15,"wypos":6,"shells":[2,8,18,31,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f13","electron_configuration_semantic":"[Xe] 4f13 6s2","electron_affinity":99,"electronegativity_pauling":1.25,"ionization_energies":[596.7,1160,2285,4120],"block":"f"},{"name":"Ytterbium","atomic_mass":173.0451,"boil":1469,"category":"lanthanide","density":6.9,"discovered_by":"Jean Charles Galissard de Marignac","melt":1097,"molar_heat":26.74,"named_by":null,"number":70,"period":6,"group":3,"phase":"Solid","symbol":"Yb","xpos":16,"ypos":9,"wxpos":16,"wypos":6,"shells":[2,8,18,32,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14","electron_configuration_semantic":"[Xe] 4f14 6s2","electron_affinity":-1.93,"electronegativity_pauling":1.1,"ionization_energies":[603.4,1174.8,2417,4203],"block":"f"},{"name":"Lutetium","atomic_mass":174.96681,"boil":3675,"category":"lanthanide","density":9.841,"discovered_by":"Georges Urbain","melt":1925,"molar_heat":26.86,"named_by":null,"number":71,"period":6,"group":3,"phase":"Solid","symbol":"Lu","xpos":17,"ypos":9,"wxpos":17,"wypos":6,"shells":[2,8,18,32,9,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d1","electron_configuration_semantic":"[Xe] 4f14 5d1 6s2","electron_affinity":33.4,"electronegativity_pauling":1.27,"ionization_energies":[523.5,1340,2022.3,4370,6445],"block":"d"},{"name":"Hafnium","atomic_mass":178.492,"boil":4876,"category":"transition metal","density":13.31,"discovered_by":"Dirk Coster","melt":2506,"molar_heat":25.73,"named_by":null,"number":72,"period":6,"group":4,"phase":"Solid","symbol":"Hf","xpos":4,"ypos":6,"wxpos":18,"wypos":6,"shells":[2,8,18,32,10,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d2","electron_configuration_semantic":"[Xe] 4f14 5d2 6s2","electron_affinity":17.18,"electronegativity_pauling":1.3,"ionization_energies":[658.5,1440,2250,3216],"block":"d"},{"name":"Tantalum","atomic_mass":180.947882,"boil":5731,"category":"transition metal","density":16.69,"discovered_by":"Anders Gustaf Ekeberg","melt":3290,"molar_heat":25.36,"named_by":null,"number":73,"period":6,"group":5,"phase":"Solid","symbol":"Ta","xpos":5,"ypos":6,"wxpos":19,"wypos":6,"shells":[2,8,18,32,11,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d3","electron_configuration_semantic":"[Xe] 4f14 5d3 6s2","electron_affinity":31,"electronegativity_pauling":1.5,"ionization_energies":[761,1500],"block":"d"},{"name":"Tungsten","atomic_mass":183.841,"boil":6203,"category":"transition metal","density":19.25,"discovered_by":"Carl Wilhelm Scheele","melt":3695,"molar_heat":24.27,"named_by":null,"number":74,"period":6,"group":6,"phase":"Solid","symbol":"W","xpos":6,"ypos":6,"wxpos":20,"wypos":6,"shells":[2,8,18,32,12,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d4","electron_configuration_semantic":"[Xe] 4f14 5d4 6s2","electron_affinity":78.76,"electronegativity_pauling":2.36,"ionization_energies":[770,1700],"block":"d"},{"name":"Rhenium","atomic_mass":186.2071,"boil":5869,"category":"transition metal","density":21.02,"discovered_by":"Masataka Ogawa","melt":3459,"molar_heat":25.48,"named_by":"Walter Noddack","number":75,"period":6,"group":7,"phase":"Solid","symbol":"Re","xpos":7,"ypos":6,"wxpos":21,"wypos":6,"shells":[2,8,18,32,13,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d5","electron_configuration_semantic":"[Xe] 4f14 5d5 6s2","electron_affinity":5.8273,"electronegativity_pauling":1.9,"ionization_energies":[760,1260,2510,3640],"block":"d"},{"name":"Osmium","atomic_mass":190.233,"boil":5285,"category":"transition metal","density":22.59,"discovered_by":"Smithson Tennant","melt":3306,"molar_heat":24.7,"named_by":null,"number":76,"period":6,"group":8,"phase":"Solid","symbol":"Os","xpos":8,"ypos":6,"wxpos":22,"wypos":6,"shells":[2,8,18,32,14,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d6","electron_configuration_semantic":"[Xe] 4f14 5d6 6s2","electron_affinity":103.99,"electronegativity_pauling":2.2,"ionization_energies":[840,1600],"block":"d"},{"name":"Iridium","atomic_mass":192.2173,"boil":4403,"category":"transition metal","density":22.56,"discovered_by":"Smithson Tennant","melt":2719,"molar_heat":25.1,"named_by":null,"number":77,"period":6,"group":9,"phase":"Solid","symbol":"Ir","xpos":9,"ypos":6,"wxpos":23,"wypos":6,"shells":[2,8,18,32,15,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d7","electron_configuration_semantic":"[Xe] 4f14 5d7 6s2","electron_affinity":150.94,"electronegativity_pauling":2.2,"ionization_energies":[880,1600],"block":"d"},{"name":"Platinum","atomic_mass":195.0849,"boil":4098,"category":"transition metal","density":21.45,"discovered_by":"Antonio de Ulloa","melt":2041.4,"molar_heat":25.86,"named_by":null,"number":78,"period":6,"group":10,"phase":"Solid","symbol":"Pt","xpos":10,"ypos":6,"wxpos":24,"wypos":6,"shells":[2,8,18,32,17,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s1 4f14 5d9","electron_configuration_semantic":"[Xe] 4f14 5d9 6s1","electron_affinity":205.041,"electronegativity_pauling":2.28,"ionization_energies":[870,1791],"block":"d"},{"name":"Gold","atomic_mass":196.9665695,"boil":3243,"category":"transition metal","density":19.3,"discovered_by":"Middle East","melt":1337.33,"molar_heat":25.418,"named_by":null,"number":79,"period":6,"group":11,"phase":"Solid","symbol":"Au","xpos":11,"ypos":6,"wxpos":25,"wypos":6,"shells":[2,8,18,32,18,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s1 4f14 5d10","electron_configuration_semantic":"[Xe] 4f14 5d10 6s1","electron_affinity":222.747,"electronegativity_pauling":2.54,"ionization_energies":[890.1,1980],"block":"d"},{"name":"Mercury","atomic_mass":200.5923,"boil":629.88,"category":"transition metal","density":13.534,"discovered_by":"unknown, before 2000 BCE","melt":234.321,"molar_heat":27.983,"named_by":null,"number":80,"period":6,"group":12,"phase":"Liquid","symbol":"Hg","xpos":12,"ypos":6,"wxpos":26,"wypos":6,"shells":[2,8,18,32,18,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10","electron_configuration_semantic":"[Xe] 4f14 5d10 6s2","electron_affinity":-48,"electronegativity_pauling":2,"ionization_energies":[1007.1,1810,3300],"block":"d"},{"name":"Thallium","atomic_mass":204.38,"boil":1746,"category":"post-transition metal","density":11.85,"discovered_by":"William Crookes","melt":577,"molar_heat":26.32,"named_by":null,"number":81,"period":6,"group":13,"phase":"Solid","symbol":"Tl","xpos":13,"ypos":6,"wxpos":27,"wypos":6,"shells":[2,8,18,32,18,3],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p1","electron_configuration_semantic":"[Xe] 4f14 5d10 6s2 6p1","electron_affinity":36.4,"electronegativity_pauling":1.62,"ionization_energies":[589.4,1971,2878],"block":"p"},{"name":"Lead","atomic_mass":207.21,"boil":2022,"category":"post-transition metal","density":11.34,"discovered_by":"Middle East","melt":600.61,"molar_heat":26.65,"named_by":null,"number":82,"period":6,"group":14,"phase":"Solid","symbol":"Pb","xpos":14,"ypos":6,"wxpos":28,"wypos":6,"shells":[2,8,18,32,18,4],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p2","electron_configuration_semantic":"[Xe] 4f14 5d10 6s2 6p2","electron_affinity":34.4204,"electronegativity_pauling":1.87,"ionization_energies":[715.6,1450.5,3081.5,4083,6640],"block":"p"},{"name":"Bismuth","atomic_mass":208.980401,"boil":1837,"category":"post-transition metal","density":9.78,"discovered_by":"Claude François Geoffroy","melt":544.7,"molar_heat":25.52,"named_by":null,"number":83,"period":6,"group":15,"phase":"Solid","symbol":"Bi","xpos":15,"ypos":6,"wxpos":29,"wypos":6,"shells":[2,8,18,32,18,5],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p3","electron_configuration_semantic":"[Xe] 4f14 5d10 6s2 6p3","electron_affinity":90.924,"electronegativity_pauling":2.02,"ionization_energies":[703,1610,2466,4370,5400,8520],"block":"p"},{"name":"Polonium","atomic_mass":209,"boil":1235,"category":"post-transition metal","density":9.196,"discovered_by":"Pierre Curie","melt":527,"molar_heat":26.4,"named_by":null,"number":84,"period":6,"group":16,"phase":"Solid","symbol":"Po","xpos":16,"ypos":6,"wxpos":30,"wypos":6,"shells":[2,8,18,32,18,6],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p4","electron_configuration_semantic":"[Xe] 4f14 5d10 6s2 6p4","electron_affinity":136,"electronegativity_pauling":2,"ionization_energies":[812.1],"block":"p"},{"name":"Astatine","atomic_mass":210,"boil":610,"category":"metalloid","density":6.35,"discovered_by":"Dale R. Corson","melt":575,"molar_heat":null,"named_by":null,"number":85,"period":6,"group":17,"phase":"Solid","symbol":"At","xpos":17,"ypos":6,"wxpos":31,"wypos":6,"shells":[2,8,18,32,18,7],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p5","electron_configuration_semantic":"[Xe] 4f14 5d10 6s2 6p5","electron_affinity":233,"electronegativity_pauling":2.2,"ionization_energies":[899.003],"block":"p"},{"name":"Radon","atomic_mass":222,"boil":211.5,"category":"noble gas","density":9.73,"discovered_by":"Friedrich Ernst Dorn","melt":202,"molar_heat":null,"named_by":null,"number":86,"period":6,"group":18,"phase":"Gas","symbol":"Rn","xpos":18,"ypos":6,"wxpos":32,"wypos":6,"shells":[2,8,18,32,18,8],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6","electron_configuration_semantic":"[Xe] 4f14 5d10 6s2 6p6","electron_affinity":-68,"electronegativity_pauling":2.2,"ionization_energies":[1037],"block":"p"},{"name":"Francium","atomic_mass":223,"boil":950,"category":"alkali metal","density":1.87,"discovered_by":"Marguerite Perey","melt":300,"molar_heat":null,"named_by":null,"number":87,"period":7,"group":1,"phase":"Solid","symbol":"Fr","xpos":1,"ypos":7,"wxpos":1,"wypos":7,"shells":[2,8,18,32,18,8,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s1","electron_configuration_semantic":"[Rn] 7s1","electron_affinity":46.89,"electronegativity_pauling":0.79,"ionization_energies":[380],"block":"s"},{"name":"Radium","atomic_mass":226,"boil":2010,"category":"alkaline earth metal","density":5.5,"discovered_by":"Pierre Curie","melt":1233,"molar_heat":null,"named_by":null,"number":88,"period":7,"group":2,"phase":"Solid","symbol":"Ra","xpos":2,"ypos":7,"wxpos":2,"wypos":7,"shells":[2,8,18,32,18,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2","electron_configuration_semantic":"[Rn] 7s2","electron_affinity":9.6485,"electronegativity_pauling":0.9,"ionization_energies":[509.3,979],"block":"s"},{"name":"Actinium","atomic_mass":227,"boil":3500,"category":"actinide","density":10,"discovered_by":"Friedrich Oskar Giesel","melt":1500,"molar_heat":27.2,"named_by":null,"number":89,"period":7,"group":3,"phase":"Solid","symbol":"Ac","xpos":3,"ypos":10,"wxpos":3,"wypos":7,"shells":[2,8,18,32,18,9,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 6d1","electron_configuration_semantic":"[Rn] 6d1 7s2","electron_affinity":33.77,"electronegativity_pauling":1.1,"ionization_energies":[499,1170],"block":"f"},{"name":"Thorium","atomic_mass":232.03774,"boil":5061,"category":"actinide","density":11.724,"discovered_by":"Jöns Jakob Berzelius","melt":2023,"molar_heat":26.23,"named_by":null,"number":90,"period":7,"group":3,"phase":"Solid","symbol":"Th","xpos":4,"ypos":10,"wxpos":4,"wypos":7,"shells":[2,8,18,32,18,10,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 6d2","electron_configuration_semantic":"[Rn] 6d2 7s2","electron_affinity":112.72,"electronegativity_pauling":1.3,"ionization_energies":[587,1110,1930,2780],"block":"f"},{"name":"Protactinium","atomic_mass":231.035882,"boil":4300,"category":"actinide","density":15.37,"discovered_by":"William Crookes","melt":1841,"molar_heat":null,"named_by":"Otto Hahn","number":91,"period":7,"group":3,"phase":"Solid","symbol":"Pa","xpos":5,"ypos":10,"wxpos":5,"wypos":7,"shells":[2,8,18,32,20,9,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f2 6d1","electron_configuration_semantic":"[Rn] 5f2 6d1 7s2","electron_affinity":53.03,"electronegativity_pauling":1.5,"ionization_energies":[568],"block":"f"},{"name":"Uranium","atomic_mass":238.028913,"boil":4404,"category":"actinide","density":19.1,"discovered_by":"Martin Heinrich Klaproth","melt":1405.3,"molar_heat":27.665,"named_by":null,"number":92,"period":7,"group":3,"phase":"Solid","symbol":"U","xpos":6,"ypos":10,"wxpos":6,"wypos":7,"shells":[2,8,18,32,21,9,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f3 6d1","electron_configuration_semantic":"[Rn] 5f3 6d1 7s2","electron_affinity":50.94,"electronegativity_pauling":1.38,"ionization_energies":[597.6,1420],"block":"f"},{"name":"Neptunium","atomic_mass":237,"boil":4447,"category":"actinide","density":20.45,"discovered_by":"Edwin McMillan","melt":912,"molar_heat":29.46,"named_by":null,"number":93,"period":7,"group":3,"phase":"Solid","symbol":"Np","xpos":7,"ypos":10,"wxpos":7,"wypos":7,"shells":[2,8,18,32,22,9,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f4 6d1","electron_configuration_semantic":"[Rn] 5f4 6d1 7s2","electron_affinity":45.85,"electronegativity_pauling":1.36,"ionization_energies":[604.5],"block":"f"},{"name":"Plutonium","atomic_mass":244,"boil":3505,"category":"actinide","density":19.816,"discovered_by":"Glenn T. Seaborg","melt":912.5,"molar_heat":35.5,"named_by":null,"number":94,"period":7,"group":3,"phase":"Solid","symbol":"Pu","xpos":8,"ypos":10,"wxpos":8,"wypos":7,"shells":[2,8,18,32,24,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f6","electron_configuration_semantic":"[Rn] 5f6 7s2","electron_affinity":-48.33,"electronegativity_pauling":1.28,"ionization_energies":[584.7],"block":"f"},{"name":"Americium","atomic_mass":243,"boil":2880,"category":"actinide","density":12,"discovered_by":"Glenn T. Seaborg","melt":1449,"molar_heat":62.7,"named_by":null,"number":95,"period":7,"group":3,"phase":"Solid","symbol":"Am","xpos":9,"ypos":10,"wxpos":9,"wypos":7,"shells":[2,8,18,32,25,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f7","electron_configuration_semantic":"[Rn] 5f7 7s2","electron_affinity":9.93,"electronegativity_pauling":1.13,"ionization_energies":[578],"block":"f"},{"name":"Curium","atomic_mass":247,"boil":3383,"category":"actinide","density":13.51,"discovered_by":"Glenn T. Seaborg","melt":1613,"molar_heat":null,"named_by":null,"number":96,"period":7,"group":3,"phase":"Solid","symbol":"Cm","xpos":10,"ypos":10,"wxpos":10,"wypos":7,"shells":[2,8,18,32,25,9,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f7 6d1","electron_configuration_semantic":"[Rn] 5f7 6d1 7s2","electron_affinity":27.17,"electronegativity_pauling":1.28,"ionization_energies":[581],"block":"f"},{"name":"Berkelium","atomic_mass":247,"boil":2900,"category":"actinide","density":14.78,"discovered_by":"Lawrence Berkeley National Laboratory","melt":1259,"molar_heat":null,"named_by":null,"number":97,"period":7,"group":3,"phase":"Solid","symbol":"Bk","xpos":11,"ypos":10,"wxpos":11,"wypos":7,"shells":[2,8,18,32,27,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f9","electron_configuration_semantic":"[Rn] 5f9 7s2","electron_affinity":-165.24,"electronegativity_pauling":1.3,"ionization_energies":[601],"block":"f"},{"name":"Californium","atomic_mass":251,"boil":1743,"category":"actinide","density":15.1,"discovered_by":"Lawrence Berkeley National Laboratory","melt":1173,"molar_heat":null,"named_by":null,"number":98,"period":7,"group":3,"phase":"Solid","symbol":"Cf","xpos":12,"ypos":10,"wxpos":12,"wypos":7,"shells":[2,8,18,32,28,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f10","electron_configuration_semantic":"[Rn] 5f10 7s2","electron_affinity":-97.31,"electronegativity_pauling":1.3,"ionization_energies":[608],"block":"f"},{"name":"Einsteinium","atomic_mass":252,"boil":1269,"category":"actinide","density":8.84,"discovered_by":"Lawrence Berkeley National Laboratory","melt":1133,"molar_heat":null,"named_by":null,"number":99,"period":7,"group":3,"phase":"Solid","symbol":"Es","xpos":13,"ypos":10,"wxpos":13,"wypos":7,"shells":[2,8,18,32,29,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f11","electron_configuration_semantic":"[Rn] 5f11 7s2","electron_affinity":-28.6,"electronegativity_pauling":1.3,"ionization_energies":[619],"block":"f"},{"name":"Fermium","atomic_mass":257,"boil":null,"category":"actinide","density":null,"discovered_by":"Lawrence Berkeley National Laboratory","melt":1800,"molar_heat":null,"named_by":null,"number":100,"period":7,"group":3,"phase":"Solid","symbol":"Fm","xpos":14,"ypos":10,"wxpos":14,"wypos":7,"shells":[2,8,18,32,30,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f12","electron_configuration_semantic":"[Rn] 5f12 7s2","electron_affinity":33.96,"electronegativity_pauling":1.3,"ionization_energies":[627],"block":"f"},{"name":"Mendelevium","atomic_mass":258,"boil":null,"category":"actinide","density":null,"discovered_by":"Lawrence Berkeley National Laboratory","melt":1100,"molar_heat":null,"named_by":null,"number":101,"period":7,"group":3,"phase":"Solid","symbol":"Md","xpos":15,"ypos":10,"wxpos":15,"wypos":7,"shells":[2,8,18,32,31,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f13","electron_configuration_semantic":"[Rn] 5f13 7s2","electron_affinity":93.91,"electronegativity_pauling":1.3,"ionization_energies":[635],"block":"f"},{"name":"Nobelium","atomic_mass":259,"boil":null,"category":"actinide","density":null,"discovered_by":"Joint Institute for Nuclear Research","melt":1100,"molar_heat":null,"named_by":null,"number":102,"period":7,"group":3,"phase":"Solid","symbol":"No","xpos":16,"ypos":10,"wxpos":16,"wypos":7,"shells":[2,8,18,32,32,8,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14","electron_configuration_semantic":"[Rn] 5f14 7s2","electron_affinity":-223.22,"electronegativity_pauling":1.3,"ionization_energies":[642],"block":"f"},{"name":"Lawrencium","atomic_mass":266,"boil":null,"category":"actinide","density":null,"discovered_by":"Lawrence Berkeley National Laboratory","melt":1900,"molar_heat":null,"named_by":null,"number":103,"period":7,"group":3,"phase":"Solid","symbol":"Lr","xpos":17,"ypos":10,"wxpos":17,"wypos":7,"shells":[2,8,18,32,32,8,3],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 7p1","electron_configuration_semantic":"[Rn] 5f14 7s2 7p1","electron_affinity":-30.04,"electronegativity_pauling":1.3,"ionization_energies":[470],"block":"d"},{"name":"Rutherfordium","atomic_mass":267,"boil":5800,"category":"transition metal","density":23.2,"discovered_by":"Joint Institute for Nuclear Research","melt":2400,"molar_heat":null,"named_by":null,"number":104,"period":7,"group":4,"phase":"Solid","symbol":"Rf","xpos":4,"ypos":7,"wxpos":18,"wypos":7,"shells":[2,8,18,32,32,10,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d2","electron_configuration_semantic":"[Rn] 5f14 6d2 7s2","electron_affinity":null,"electronegativity_pauling":null,"ionization_energies":[580],"block":"d"},{"name":"Dubnium","atomic_mass":268,"boil":null,"category":"transition metal","density":29.3,"discovered_by":"Joint Institute for Nuclear Research","melt":null,"molar_heat":null,"named_by":null,"number":105,"period":7,"group":5,"phase":"Solid","symbol":"Db","xpos":5,"ypos":7,"wxpos":19,"wypos":7,"shells":[2,8,18,32,32,11,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d3","electron_configuration_semantic":"*[Rn] 5f14 6d3 7s2","electron_affinity":null,"electronegativity_pauling":null,"ionization_energies":[],"block":"d"},{"name":"Seaborgium","atomic_mass":269,"boil":null,"category":"transition metal","density":35,"discovered_by":"Lawrence Berkeley National Laboratory","melt":null,"molar_heat":null,"named_by":null,"number":106,"period":7,"group":6,"phase":"Solid","symbol":"Sg","xpos":6,"ypos":7,"wxpos":20,"wypos":7,"shells":[2,8,18,32,32,12,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d4","electron_configuration_semantic":"*[Rn] 5f14 6d4 7s2","electron_affinity":null,"electronegativity_pauling":null,"ionization_energies":[],"block":"d"},{"name":"Bohrium","atomic_mass":270,"boil":null,"category":"transition metal","density":37.1,"discovered_by":"Gesellschaft für Schwerionenforschung","melt":null,"molar_heat":null,"named_by":null,"number":107,"period":7,"group":7,"phase":"Solid","symbol":"Bh","xpos":7,"ypos":7,"wxpos":21,"wypos":7,"shells":[2,8,18,32,32,13,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d5","electron_configuration_semantic":"*[Rn] 5f14 6d5 7s2","electron_affinity":null,"electronegativity_pauling":null,"ionization_energies":[],"block":"d"},{"name":"Hassium","atomic_mass":269,"boil":null,"category":"transition metal","density":40.7,"discovered_by":"Gesellschaft für Schwerionenforschung","melt":126,"molar_heat":null,"named_by":null,"number":108,"period":7,"group":8,"phase":"Solid","symbol":"Hs","xpos":8,"ypos":7,"wxpos":22,"wypos":7,"shells":[2,8,18,32,32,14,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d6","electron_configuration_semantic":"*[Rn] 5f14 6d6 7s2","electron_affinity":null,"electronegativity_pauling":null,"ionization_energies":[],"block":"d"},{"name":"Meitnerium","atomic_mass":278,"boil":null,"category":"unknown, probably transition metal","density":37.4,"discovered_by":"Gesellschaft für Schwerionenforschung","melt":null,"molar_heat":null,"named_by":null,"number":109,"period":7,"group":9,"phase":"Solid","symbol":"Mt","xpos":9,"ypos":7,"wxpos":23,"wypos":7,"shells":[2,8,18,32,32,15,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d7","electron_configuration_semantic":"*[Rn] 5f14 6d7 7s2","electron_affinity":null,"electronegativity_pauling":null,"ionization_energies":[],"block":"d"},{"name":"Darmstadtium","atomic_mass":281,"boil":null,"category":"unknown, probably transition metal","density":34.8,"discovered_by":"Gesellschaft für Schwerionenforschung","melt":null,"molar_heat":null,"named_by":null,"number":110,"period":7,"group":10,"phase":"Solid","symbol":"Ds","xpos":10,"ypos":7,"wxpos":24,"wypos":7,"shells":[2,8,18,32,32,16,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d8","electron_configuration_semantic":"*[Rn] 5f14 6d9 7s1","electron_affinity":null,"electronegativity_pauling":null,"ionization_energies":[],"block":"d"},{"name":"Roentgenium","atomic_mass":282,"boil":null,"category":"unknown, probably transition metal","density":28.7,"discovered_by":"Gesellschaft für Schwerionenforschung","melt":null,"molar_heat":null,"named_by":null,"number":111,"period":7,"group":11,"phase":"Solid","symbol":"Rg","xpos":11,"ypos":7,"wxpos":25,"wypos":7,"shells":[2,8,18,32,32,17,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d9","electron_configuration_semantic":"*[Rn] 5f14 6d10 7s1","electron_affinity":151,"electronegativity_pauling":null,"ionization_energies":[],"block":"d"},{"name":"Copernicium","atomic_mass":285,"boil":3570,"category":"transition metal","density":14,"discovered_by":"Gesellschaft für Schwerionenforschung","melt":null,"molar_heat":null,"named_by":null,"number":112,"period":7,"group":12,"phase":"Liquid","symbol":"Cn","xpos":12,"ypos":7,"wxpos":26,"wypos":7,"shells":[2,8,18,32,32,18,2],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d10","electron_configuration_semantic":"*[Rn] 5f14 6d10 7s2","electron_affinity":null,"electronegativity_pauling":null,"ionization_energies":[],"block":"d"},{"name":"Nihonium","atomic_mass":286,"boil":1430,"category":"unknown, probably transition metal","density":16,"discovered_by":"RIKEN","melt":700,"molar_heat":null,"named_by":null,"number":113,"period":7,"group":13,"phase":"Solid","symbol":"Nh","xpos":13,"ypos":7,"wxpos":27,"wypos":7,"shells":[2,8,18,32,32,18,3],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d10 7p1","electron_configuration_semantic":"*[Rn] 5f14 6d10 7s2 7p1","electron_affinity":66.6,"electronegativity_pauling":null,"ionization_energies":[],"block":"p"},{"name":"Flerovium","atomic_mass":289,"boil":420,"category":"post-transition metal","density":14,"discovered_by":"Joint Institute for Nuclear Research","melt":340,"molar_heat":null,"named_by":null,"number":114,"period":7,"group":14,"phase":"Solid","symbol":"Fl","xpos":14,"ypos":7,"wxpos":28,"wypos":7,"shells":[2,8,18,32,32,18,4],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d10 7p2","electron_configuration_semantic":"*[Rn] 5f14 6d10 7s2 7p2","electron_affinity":null,"electronegativity_pauling":null,"ionization_energies":[],"block":"p"},{"name":"Moscovium","atomic_mass":289,"boil":1400,"category":"unknown, probably post-transition metal","density":13.5,"discovered_by":"Joint Institute for Nuclear Research","melt":670,"molar_heat":null,"named_by":null,"number":115,"period":7,"group":15,"phase":"Solid","symbol":"Mc","xpos":15,"ypos":7,"wxpos":29,"wypos":7,"shells":[2,8,18,32,32,18,5],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d10 7p3","electron_configuration_semantic":"*[Rn] 5f14 6d10 7s2 7p3","electron_affinity":35.3,"electronegativity_pauling":null,"ionization_energies":[],"block":"p"},{"name":"Livermorium","atomic_mass":293,"boil":1085,"category":"unknown, probably post-transition metal","density":12.9,"discovered_by":"Joint Institute for Nuclear Research","melt":709,"molar_heat":null,"named_by":null,"number":116,"period":7,"group":16,"phase":"Solid","symbol":"Lv","xpos":16,"ypos":7,"wxpos":30,"wypos":7,"shells":[2,8,18,32,32,18,6],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d10 7p4","electron_configuration_semantic":"*[Rn] 5f14 6d10 7s2 7p4","electron_affinity":74.9,"electronegativity_pauling":null,"ionization_energies":[],"block":"p"},{"name":"Tennessine","atomic_mass":294,"boil":883,"category":"unknown, probably metalloid","density":7.17,"discovered_by":"Joint Institute for Nuclear Research","melt":723,"molar_heat":null,"named_by":null,"number":117,"period":7,"group":17,"phase":"Solid","symbol":"Ts","xpos":17,"ypos":7,"wxpos":31,"wypos":7,"shells":[2,8,18,32,32,18,7],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d10 7p5","electron_configuration_semantic":"*[Rn] 5f14 6d10 7s2 7p5","electron_affinity":165.9,"electronegativity_pauling":null,"ionization_energies":[],"block":"p"},{"name":"Oganesson","atomic_mass":294,"boil":350,"category":"unknown, predicted to be noble gas","density":4.95,"discovered_by":"Joint Institute for Nuclear Research","melt":null,"molar_heat":null,"named_by":null,"number":118,"period":7,"group":18,"phase":"Solid","symbol":"Og","xpos":18,"ypos":7,"wxpos":32,"wypos":7,"shells":[2,8,18,32,32,18,8],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d10 7p6","electron_configuration_semantic":"*[Rn] 5f14 6d10 7s2 7p6","electron_affinity":5.40318,"electronegativity_pauling":null,"ionization_energies":[],"block":"p"},{"name":"Ununennium","atomic_mass":315,"boil":630,"category":"unknown, but predicted to be an alkali metal","density":3,"discovered_by":"GSI Helmholtz Centre for Heavy Ion Research","melt":null,"molar_heat":null,"named_by":null,"number":119,"period":8,"group":1,"phase":"Solid","symbol":"Uue","xpos":1,"ypos":8,"wxpos":1,"wypos":8,"shells":[2,8,18,32,32,18,8,1],"electron_configuration":"1s2 2s2 2p6 3s2 3p6 4s2 3d10 4p6 5s2 4d10 5p6 6s2 4f14 5d10 6p6 7s2 5f14 6d10 7p6 8s1","electron_configuration_semantic":"*[Uuo] 8s1","electron_affinity":63.87,"electronegativity_pauling":null,"ionization_energies":[],"block":"s"}]'), Vr = {
3915
+ elements: Or
3916
+ };
3917
+ var Pr = /* @__PURE__ */ No("<button> </button>"), Hr = /* @__PURE__ */ No('<div class="pie-tool-periodic-table__element-overview svelte-1h56j87" style="grid-row: 2 / span 2; grid-column: 3 / span 10;" aria-live="polite"><div><div class="pie-tool-periodic-table__left-col svelte-1h56j87"><div class="pie-tool-periodic-table__symbol-center svelte-1h56j87"> </div> <div class="pie-tool-periodic-table__element-name svelte-1h56j87"> </div></div> <div class="pie-tool-periodic-table__right-col svelte-1h56j87"><div class="pie-tool-periodic-table__top-row svelte-1h56j87"><div class="pie-tool-periodic-table__info-block svelte-1h56j87"><div class="pie-tool-periodic-table__label svelte-1h56j87">Atomic Mass</div> <div class="pie-tool-periodic-table__value svelte-1h56j87"> </div></div> <div class="pie-tool-periodic-table__info-block svelte-1h56j87"><div class="pie-tool-periodic-table__label svelte-1h56j87">Atomic No</div> <div class="pie-tool-periodic-table__value svelte-1h56j87"> </div></div></div> <div class="pie-tool-periodic-table__bottom-row svelte-1h56j87"><div class="pie-tool-periodic-table__info-block svelte-1h56j87"><div class="pie-tool-periodic-table__label svelte-1h56j87">Electron Config</div> <div class="pie-tool-periodic-table__value svelte-1h56j87"> </div></div> <div class="pie-tool-periodic-table__info-block svelte-1h56j87"><div class="pie-tool-periodic-table__label svelte-1h56j87">Phase</div> <div class="pie-tool-periodic-table__value svelte-1h56j87"> </div></div></div></div></div></div>'), Br = /* @__PURE__ */ No('<button tabindex="0"><div class="pie-tool-periodic-table__atomic-number svelte-1h56j87"> </div> <div class="pie-tool-periodic-table__symbol svelte-1h56j87"> </div> <div class="pie-tool-periodic-table__name svelte-1h56j87"> </div> <div class="pie-tool-periodic-table__atomic-mass svelte-1h56j87"> </div></button>'), Gr = /* @__PURE__ */ No('<div class="pie-tool-periodic-table__group-label svelte-1h56j87"></div>'), Dr = /* @__PURE__ */ No('<div class="pie-tool-periodic-table__period-label svelte-1h56j87"><!></div>'), Wr = /* @__PURE__ */ No('<div class="pie-tool-periodic-table svelte-1h56j87" role="dialog" tabindex="-1" aria-label="Periodic Table - Click elements to view details"><div class="pie-tool-periodic-table__header svelte-1h56j87"><h3 id="periodic-table-title" class="pie-tool-periodic-table__title svelte-1h56j87">Periodic Table</h3> <div class="pie-tool-periodic-table__header-controls svelte-1h56j87"><button class="pie-tool-periodic-table__close-btn svelte-1h56j87" aria-label="Close periodic table"><svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 svelte-1h56j87" viewBox="0 0 20 20" fill="currentColor"><path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path></svg></button></div></div> <div class="pie-tool-periodic-table__content svelte-1h56j87"><div class="pie-tool-periodic-table__wrapper svelte-1h56j87"><div class="pie-tool-periodic-table__grid svelte-1h56j87" role="grid" aria-labelledby="periodic-table-title"><div class="pie-tool-periodic-table__category-header pie-tool-periodic-table__category-badge-row svelte-1h56j87" role="presentation" style="grid-row: 1; grid-column: 2 / span 16;"><button aria-label="Show all elements">All Elements</button> <!></div> <!> <!></div> <div class="pie-tool-periodic-table__group-labels svelte-1h56j87" aria-hidden="true"></div> <div class="pie-tool-periodic-table__period-labels svelte-1h56j87" aria-hidden="true"></div></div></div></div>');
3918
+ const Fr = {
3919
+ hash: "svelte-1h56j87",
3920
+ code: `.pie-tool-periodic-table.svelte-1h56j87 {position:fixed;background:white;box-shadow:0 10px 40px rgba(0, 0, 0, 0.3);user-select:none;touch-action:none;border-radius:12px;overflow:visible; /* Changed from hidden to visible to show all content without clipping */z-index:2000; /* ZIndexLayer.MODAL */min-width:1100px; /* Match default width */display:flex;flex-direction:column;}
3921
+
3922
+ /* Header (matching production implementation: dark teal) */.pie-tool-periodic-table__header.svelte-1h56j87 {padding:12px 16px;background:var(--pie-primary-dark, #2c3e50); /* Dark teal-like color */color:var(--pie-white, white);display:flex;justify-content:space-between;align-items:center;cursor:move;user-select:none;border-radius:12px 12px 0 0;}.pie-tool-periodic-table__title.svelte-1h56j87 {font-weight:600;font-size:16px;color:var(--pie-white, white);margin:0;}.pie-tool-periodic-table__header-controls.svelte-1h56j87 {display:flex;gap:8px;align-items:center;}.pie-tool-periodic-table__close-btn.svelte-1h56j87 {background:transparent;border:none;color:var(--pie-white, white);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color 0.2s;}.pie-tool-periodic-table__close-btn.svelte-1h56j87:hover {background:rgba(255, 255, 255, 0.1);}.pie-tool-periodic-table__close-btn.svelte-1h56j87:focus-visible {outline:2px solid var(--pie-primary, #3f51b5);outline-offset:2px;}.pie-tool-periodic-table__close-btn.svelte-1h56j87 svg:where(.svelte-1h56j87) {width:20px;height:20px;display:block;}
3923
+
3924
+ /* Content wrapper */.pie-tool-periodic-table__content.svelte-1h56j87 {flex:1;display:flex;flex-direction:column;overflow:visible; /* Changed from auto to visible - no scrolling needed */padding:10px 4px 0 16px; /* top | right | bottom | left */}
3925
+
3926
+ /* Wrapper needed for absolute positioning of overlays */.pie-tool-periodic-table__wrapper.svelte-1h56j87 {position:relative;}
3927
+
3928
+ /* Main grid layout */.pie-tool-periodic-table__grid.svelte-1h56j87 {display:grid;grid-gap:3px;grid-template-columns:repeat(18, minmax(35px, 1fr));grid-template-rows:repeat(10, minmax(35px, 1fr));margin:0 auto;width:100%;}
3929
+
3930
+ /* Category badge row (matching production implementation) */.pie-tool-periodic-table__category-header.pie-tool-periodic-table__category-badge-row.svelte-1h56j87 {align-items:center;background-color:transparent;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;padding:0.5rem;}.pie-tool-periodic-table__category-badge.svelte-1h56j87 {border:1px solid rgba(0, 0, 0, 0.1);border-radius:1rem;cursor:pointer;font-size:0.7rem;line-height:1;padding:4px 6px;transition:background-color 0.2s ease, color 0.2s ease;white-space:nowrap;background:white;color:#333;}.pie-tool-periodic-table__category-badge.svelte-1h56j87:hover {background:rgba(0, 0, 0, 0.05);}.pie-tool-periodic-table__category-badge.pie-tool-periodic-table__category-badge--active.svelte-1h56j87 {background-color:var(--pie-primary-dark, #2c3e50);border-color:var(--pie-primary-dark, #2c3e50);color:#fff;}
3931
+
3932
+ /* Element overview section (matching production implementation) */.pie-tool-periodic-table__element-overview.svelte-1h56j87 {align-items:center;display:flex;height:100%;justify-content:center;padding:6px;z-index:2;}.pie-tool-periodic-table__selected-element.pie-tool-periodic-table__selected-grid.svelte-1h56j87 {align-items:center;border:2px solid #000;border-radius:8px;box-sizing:border-box;display:flex;gap:16px;padding:12px;background:white;}.pie-tool-periodic-table__left-col.svelte-1h56j87 {align-items:center;display:flex;flex-direction:column;min-width:0;}.pie-tool-periodic-table__symbol-center.svelte-1h56j87 {font-size:2rem;font-weight:bold;line-height:1.2;margin-bottom:4px;}.pie-tool-periodic-table__element-name.svelte-1h56j87 {color:#333;font-size:1rem;font-weight:500;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;}.pie-tool-periodic-table__right-col.svelte-1h56j87 {display:flex;flex-direction:column;gap:8px;justify-content:space-between;min-width:0;}.pie-tool-periodic-table__top-row.svelte-1h56j87,
3933
+ .pie-tool-periodic-table__bottom-row.svelte-1h56j87 {display:flex;gap:8px;justify-content:space-between;min-width:0;}.pie-tool-periodic-table__info-block.svelte-1h56j87 {display:flex;flex-direction:column;min-width:0;text-align:left;}.pie-tool-periodic-table__info-block.svelte-1h56j87 .pie-tool-periodic-table__label:where(.svelte-1h56j87) {color:#444;font-size:0.75rem;font-weight:bold;margin-bottom:2px;}.pie-tool-periodic-table__info-block.svelte-1h56j87 .pie-tool-periodic-table__value:where(.svelte-1h56j87) {color:#000;font-size:0.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
3934
+
3935
+ /* Element styles */.pie-tool-periodic-table__element.svelte-1h56j87 {background-color:white;border:1px solid rgba(0, 0, 0, 0.1);border-radius:4px;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;min-height:50px;padding:3px;position:relative;transition:transform 0.1s ease-in-out;}.pie-tool-periodic-table__element.svelte-1h56j87:hover {border-color:var(--pie-primary-dark, #2c3e50);transform:scale(1.03);z-index:10;}.pie-tool-periodic-table__element.svelte-1h56j87:focus {outline:2px solid var(--pie-primary-dark, #2c3e50);outline-offset:2px;z-index:10;}.pie-tool-periodic-table__element.pie-tool-periodic-table__element--selected.svelte-1h56j87 {border-color:var(--pie-primary-dark, #2c3e50);box-shadow:0 0 0 2px rgba(0, 0, 0, 0.1);z-index:11;}
3936
+
3937
+ /* Dim out elements not in the selected category */.pie-tool-periodic-table__element.pie-tool-periodic-table__element--dim.svelte-1h56j87 {filter:grayscale(80%);opacity:0.4;}
3938
+
3939
+ /* Text inside each element box */.pie-tool-periodic-table__atomic-number.svelte-1h56j87 {font-size:9px;opacity:0.8;text-align:left;}.pie-tool-periodic-table__symbol.svelte-1h56j87 {font-size:14px;font-weight:bold;margin:2px 0;text-align:center;}.pie-tool-periodic-table__name.svelte-1h56j87 {font-size:8px;opacity:0.9;overflow:hidden;text-align:center;white-space:nowrap;}.pie-tool-periodic-table__atomic-mass.svelte-1h56j87 {font-size:9px;opacity:0.8;text-align:right;}
3940
+
3941
+ /* Overlay for Group (column) labels */.pie-tool-periodic-table__group-labels.svelte-1h56j87 {color:#333;display:flex;font-size:0.65rem;font-weight:bold;left:0;pointer-events:none;position:absolute;top:-1.2em;width:100%;}.pie-tool-periodic-table__group-label.svelte-1h56j87 {text-align:center;}
3942
+
3943
+ /* Overlay for Period (row) labels */.pie-tool-periodic-table__period-labels.svelte-1h56j87 {color:#333;display:flex;flex-direction:column;font-size:0.65rem;font-weight:bold;height:100%;justify-content:space-evenly;left:-1.2em;pointer-events:none;position:absolute;top:0;}.pie-tool-periodic-table__period-label.svelte-1h56j87 {padding-right:0.2em;text-align:right;}
3944
+
3945
+ /* Category-based background colors (matching production implementation) */.pie-tool-periodic-table__category--alkali-metal.svelte-1h56j87 {background-color:#ff9e9e;}.pie-tool-periodic-table__category--alkaline-earth-metal.svelte-1h56j87 {background-color:#ffdc8a;}.pie-tool-periodic-table__category--alkaline-earth.svelte-1h56j87 {background-color:#ffdc8a; /* Also handle without "-metal" suffix */}.pie-tool-periodic-table__category--lanthanide.svelte-1h56j87 {background-color:#f9a8d4;}.pie-tool-periodic-table__category--actinide.svelte-1h56j87 {background-color:#e0aaff;}.pie-tool-periodic-table__category--transition-metal.svelte-1h56j87 {background-color:#a3d8f4;}.pie-tool-periodic-table__category--post-transition-metal.svelte-1h56j87 {background-color:#b4f8c8;}.pie-tool-periodic-table__category--metalloid.svelte-1h56j87 {background-color:#d9f99d;}.pie-tool-periodic-table__category--diatomic-nonmetal.svelte-1h56j87 {background-color:#f5f5f5;}.pie-tool-periodic-table__category--noble-gas.svelte-1h56j87 {background-color:#c4b5fd;}.pie-tool-periodic-table__category--polyatomic-nonmetal.svelte-1h56j87 {background-color:#fbcfe8;}.pie-tool-periodic-table__category--nonmetal.svelte-1h56j87 {background-color:#f0f0f0; /* Production implementation also has this */}.pie-tool-periodic-table__category--halogen.svelte-1h56j87 {background-color:#8ef5d0; /* Production implementation has halogen color */}.pie-tool-periodic-table__category--unknown.svelte-1h56j87 {background-color:#f5f5f5;}`
3946
+ };
3947
+ function Xr(e, o) {
3948
+ gn(o, !0), Dl(e, Fr);
3949
+ let t = Ji(o, "visible", 7, !1), i = Ji(o, "toolId", 7, "periodicTable");
3950
+ const s = typeof window < "u";
3951
+ let n = /* @__PURE__ */ N(void 0), l = /* @__PURE__ */ N(null);
3952
+ const r = /* @__PURE__ */ Dt(() => u(l)?.toolCoordinator);
3953
+ let a = /* @__PURE__ */ N(!1), c = /* @__PURE__ */ N(oo(s ? window.innerWidth / 2 : 400)), d = /* @__PURE__ */ N(oo(s ? window.innerHeight / 2 : 300)), g = /* @__PURE__ */ N(
3954
+ 1100
3955
+ // Increased to show all 18 columns without horizontal scrolling
3956
+ ), f = /* @__PURE__ */ N(
3957
+ 750
3958
+ // Increased to show all 10 rows without vertical scrolling
3959
+ ), h = /* @__PURE__ */ N(0), y = /* @__PURE__ */ N(0), w = /* @__PURE__ */ N(!1);
3960
+ const m = Vr.elements;
3961
+ let _ = /* @__PURE__ */ N(oo(
3962
+ m[0] || null
3963
+ // Initialize with Hydrogen
3964
+ )), j = /* @__PURE__ */ N("All");
3965
+ _t(() => {
3966
+ if (u(n))
3967
+ return ar(u(n), (k) => {
3968
+ O(l, k, !0);
3969
+ });
3970
+ });
3971
+ function se(k) {
3972
+ const E = k.toLowerCase();
3973
+ return E.indexOf("unknown") !== -1 ? "Unknown" : {
3974
+ "alkali metal": "Alkali Metal",
3975
+ "alkaline earth": "Alkaline Earth Metal",
3976
+ "alkaline earth metal": "Alkaline Earth Metal",
3977
+ "transition metal": "Transition Metal",
3978
+ "post-transition metal": "Post-transition Metal",
3979
+ metalloid: "Metalloid",
3980
+ nonmetal: "Diatomic Nonmetal",
3981
+ "polyatomic nonmetal": "Polyatomic Nonmetal",
3982
+ "diatomic nonmetal": "Diatomic Nonmetal",
3983
+ halogen: "Diatomic Nonmetal",
3984
+ // Halogens are diatomic nonmetals
3985
+ "noble gas": "Noble Gas",
3986
+ lanthanide: "Lanthanide",
3987
+ actinide: "Actinide",
3988
+ metal: "Post-transition Metal"
3989
+ // Some elements might just be 'metal'
3990
+ }[E] || k;
3991
+ }
3992
+ function q(k) {
3993
+ return k.split(" ").map((E) => E.charAt(0).toUpperCase() + E.slice(1)).join(" ");
3994
+ }
3995
+ let je = /* @__PURE__ */ Dt(() => {
3996
+ const k = /* @__PURE__ */ new Set();
3997
+ return m.forEach((E) => {
3998
+ E.category && k.add(se(E.category));
3999
+ }), Array.from(k).sort();
4000
+ }), We = /* @__PURE__ */ Dt(() => u(j) === "All" ? m : m.filter((k) => se(k.category) === u(j)));
4001
+ function U(k) {
4002
+ O(_, k, !0);
4003
+ }
4004
+ function ke(k) {
4005
+ O(j, k, !0);
4006
+ }
4007
+ function Ee() {
4008
+ u(r)?.hideTool(i());
4009
+ }
4010
+ function P(k) {
4011
+ const E = k.target;
4012
+ E.closest(".pie-tool-periodic-table__header") && (E.closest("button") || (O(a, !0), O(h, k.clientX - u(c)), O(y, k.clientY - u(d)), u(n) && (u(n).setPointerCapture(k.pointerId), u(r)?.bringToFront(u(n)))));
4013
+ }
4014
+ function Ot(k) {
4015
+ if (!u(a)) return;
4016
+ let E = k.clientX - u(h), Oo = k.clientY - u(y);
4017
+ const Vo = (u(n)?.offsetWidth || u(g)) / 2, nt = (u(n)?.offsetHeight || u(f)) / 2;
4018
+ O(c, Math.max(Vo, Math.min(E, window.innerWidth - Vo)), !0), O(d, Math.max(nt, Math.min(Oo, window.innerHeight - nt)), !0);
4019
+ }
4020
+ function it(k) {
4021
+ u(a) && u(n) && (O(a, !1), u(n).releasePointerCapture(k.pointerId));
4022
+ }
4023
+ function ds(k) {
4024
+ k.key === "Escape" && Ee();
4025
+ }
4026
+ _t(() => {
4027
+ u(r) && i() && !u(w) && (u(n) ? u(r).registerTool(i(), "Periodic Table", u(n), $t.MODAL) : u(r).registerTool(i(), "Periodic Table", void 0, $t.MODAL), O(w, !0));
4028
+ }), _t(() => {
4029
+ u(r) && u(n) && i() && (u(r).updateToolElement(i(), u(n)), u(r).bringToFront(u(n)));
4030
+ }), Pl(() => () => {
4031
+ u(r) && i() && u(r).unregisterTool(i());
4032
+ });
4033
+ var us = {
4034
+ get visible() {
4035
+ return t();
4036
+ },
4037
+ set visible(k = !1) {
4038
+ t(k), Zt();
4039
+ },
4040
+ get toolId() {
4041
+ return i();
4042
+ },
4043
+ set toolId(k = "periodicTable") {
4044
+ i(k), Zt();
4045
+ }
4046
+ }, $i = El(), fs = _l($i);
4047
+ {
4048
+ var ms = (k) => {
4049
+ var E = Wr(), Oo = L(E), Vo = V(L(Oo), 2), nt = L(Vo);
4050
+ I(Vo), I(Oo);
4051
+ var Ti = V(Oo, 2), Ci = L(Ti), Vt = L(Ci), Pt = L(Vt), st = L(Pt);
4052
+ let Ai;
4053
+ var hs = V(st, 2);
4054
+ ut(hs, 16, () => u(je), (B) => B, (B, A) => {
4055
+ var z = Pr();
4056
+ let G;
4057
+ var ue = L(z, !0);
4058
+ I(z), ct(
4059
+ (lo, Se) => {
4060
+ G = ft(z, 1, `pie-tool-periodic-table__category-badge pie-tool-periodic-table__category--${lo ?? ""}`, "svelte-1h56j87", G, {
4061
+ "pie-tool-periodic-table__category-badge--active": u(j) === A
4062
+ }), Bo(z, "aria-label", `Filter by ${A ?? ""}`), Bo(z, "aria-pressed", u(j) === A), fe(ue, Se);
4063
+ },
4064
+ [
4065
+ () => A.replace(" ", "-").toLowerCase(),
4066
+ () => q(A)
4067
+ ]
4068
+ ), Me("click", z, () => ke(A)), me(B, z);
4069
+ }), I(Pt);
4070
+ var Li = V(Pt, 2);
4071
+ {
4072
+ var gs = (B) => {
4073
+ var A = Hr(), z = L(A), G = L(z), ue = L(G), lo = L(ue, !0);
4074
+ I(ue);
4075
+ var Se = V(ue, 2), Po = L(Se, !0);
4076
+ I(Se), I(G);
4077
+ var Fe = V(G, 2), D = L(Fe), ee = L(D), lt = V(L(ee), 2), ro = L(lt, !0);
4078
+ I(lt), I(ee);
4079
+ var rt = V(ee, 2), at = V(L(rt), 2), Bt = L(at, !0);
4080
+ I(at), I(rt), I(D);
4081
+ var ji = V(D, 2), Gt = L(ji), Ei = V(L(Gt), 2), ys = L(Ei, !0);
4082
+ I(Ei), I(Gt);
4083
+ var Mi = V(Gt, 2), Ri = V(L(Mi), 2), bs = L(Ri, !0);
4084
+ I(Ri), I(Mi), I(ji), I(Fe), I(z), I(A), ct(
4085
+ (vs) => {
4086
+ ft(z, 1, `pie-tool-periodic-table__selected-element pie-tool-periodic-table__selected-grid pie-tool-periodic-table__category--${vs ?? ""}`, "svelte-1h56j87"), fe(lo, u(_).symbol), fe(Po, u(_).name), fe(ro, u(_).atomic_mass), fe(Bt, u(_).number), fe(ys, u(_).electron_configuration_semantic), fe(bs, u(_).phase);
4087
+ },
4088
+ [
4089
+ () => se(u(_).category).replace(" ", "-").toLowerCase()
4090
+ ]
4091
+ ), me(B, A);
4092
+ };
4093
+ Ft(Li, (B) => {
4094
+ u(_) && B(gs);
4095
+ });
4096
+ }
4097
+ var _s = V(Li, 2);
4098
+ ut(_s, 17, () => u(We), (B) => B.symbol, (B, A) => {
4099
+ var z = Br();
4100
+ let G;
4101
+ var ue = L(z), lo = L(ue, !0);
4102
+ I(ue);
4103
+ var Se = V(ue, 2), Po = L(Se, !0);
4104
+ I(Se);
4105
+ var Fe = V(Se, 2), D = L(Fe, !0);
4106
+ I(Fe);
4107
+ var ee = V(Fe, 2), lt = L(ee, !0);
4108
+ I(ee), I(z), ct(
4109
+ (ro, rt, at, Bt) => {
4110
+ G = ft(z, 1, `pie-tool-periodic-table__element pie-tool-periodic-table__category--${ro ?? ""}`, "svelte-1h56j87", G, rt), Xt(z, `grid-row: ${u(A).ypos ?? ""}; grid-column: ${u(A).xpos ?? ""};`), Bo(z, "title", u(A).name), Bo(z, "aria-label", `${u(A).name ?? ""}, Symbol: ${u(A).symbol ?? ""}, Atomic number: ${u(A).number ?? ""}, Atomic mass: ${at ?? ""}, Category: ${u(A).category ?? ""}`), fe(lo, u(A).number), fe(Po, u(A).symbol), fe(D, u(A).name), fe(lt, Bt);
4111
+ },
4112
+ [
4113
+ () => se(u(A).category).replace(" ", "-").toLowerCase(),
4114
+ () => ({
4115
+ "pie-tool-periodic-table__element--selected": u(_)?.symbol === u(A).symbol,
4116
+ "pie-tool-periodic-table__element--dim": u(j) !== "All" && se(u(A).category) !== u(j)
4117
+ }),
4118
+ () => u(A).atomic_mass.toFixed(3),
4119
+ () => u(A).atomic_mass.toFixed(3)
4120
+ ]
4121
+ ), Me("click", z, () => U(u(A))), Me("keydown", z, (ro) => {
4122
+ (ro.key === "Enter" || ro.key === " ") && (ro.preventDefault(), U(u(A)));
4123
+ }), me(B, z);
4124
+ }), I(Vt);
4125
+ var Ht = V(Vt, 2);
4126
+ ut(Ht, 20, () => Array(18), Wi, (B, A, z) => {
4127
+ var G = Gr();
4128
+ Xt(G, `left: ${z * 5.555555555555555}%; width: 5.555555555555555%;`), G.textContent = z + 1, me(B, G);
4129
+ }), I(Ht);
4130
+ var zi = V(Ht, 2);
4131
+ ut(zi, 20, () => Array(10), Wi, (B, A, z) => {
4132
+ var G = Dr(), ue = L(G);
4133
+ {
4134
+ var lo = (D) => {
4135
+ }, Se = (D) => {
4136
+ var ee = Wt("6");
4137
+ me(D, ee);
4138
+ }, Po = (D) => {
4139
+ var ee = Wt("7");
4140
+ me(D, ee);
4141
+ }, Fe = (D) => {
4142
+ var ee = Wt();
4143
+ ee.nodeValue = z - 2, me(D, ee);
4144
+ };
4145
+ Ft(ue, (D) => {
4146
+ z < 3 ? D(lo) : z === 8 ? D(Se, 1) : z === 9 ? D(Po, 2) : D(Fe, !1);
4147
+ });
4148
+ }
4149
+ I(G), me(B, G);
4150
+ }), I(zi), I(Ci), I(Ti), I(E), Yl(E, (B) => O(n, B), () => u(n)), ct(() => {
4151
+ Xt(E, `left: ${u(c) ?? ""}px; top: ${u(d) ?? ""}px; width: ${u(g) ?? ""}px; height: ${u(f) ?? ""}px; transform: translate(-50%, -50%);`), Ai = ft(st, 1, "pie-tool-periodic-table__category-badge svelte-1h56j87", null, Ai, {
4152
+ "pie-tool-periodic-table__category-badge--active": u(j) === "All"
4153
+ }), Bo(st, "aria-pressed", u(j) === "All");
4154
+ }), Me("pointerdown", E, P), Me("pointermove", E, Ot), Me("pointerup", E, it), Cl("lostpointercapture", E, it), Me("keydown", E, ds), Me("click", nt, Ee), Me("click", st, () => ke("All")), me(k, E);
4155
+ };
4156
+ Ft(fs, (k) => {
4157
+ t() && k(ms);
4158
+ });
4159
+ }
4160
+ return me(e, $i), _n(us);
4161
+ }
4162
+ Al([
4163
+ "pointerdown",
4164
+ "pointermove",
4165
+ "pointerup",
4166
+ "keydown",
4167
+ "click"
4168
+ ]);
4169
+ customElements.define("pie-tool-periodic-table", or(
4170
+ Xr,
4171
+ {
4172
+ visible: { attribute: "visible", type: "Boolean" },
4173
+ toolId: { attribute: "tool-id", type: "String" }
4174
+ },
4175
+ [],
4176
+ [],
4177
+ { mode: "open" }
4178
+ ));
4179
+ export {
4180
+ Xr as default
4181
+ };