@decidables/decidables-elements 0.4.9 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,20 +4,20 @@
4
4
  * SPDX-License-Identifier: BSD-3-Clause
5
5
  */
6
6
  const t$1 = globalThis,
7
- e$2 = t$1.ShadowRoot && (undefined === t$1.ShadyCSS || t$1.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype,
8
- s$1 = Symbol(),
9
- o$3 = new WeakMap();
7
+ e$2 = t$1.ShadowRoot && (void 0 === t$1.ShadyCSS || t$1.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype,
8
+ s$2 = Symbol(),
9
+ o$4 = new WeakMap();
10
10
  let n$2 = class n {
11
11
  constructor(t, e, o) {
12
- if (this._$cssResult$ = true, o !== s$1) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
12
+ if (this._$cssResult$ = true, o !== s$2) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
13
13
  this.cssText = t, this.t = e;
14
14
  }
15
15
  get styleSheet() {
16
16
  let t = this.o;
17
17
  const s = this.t;
18
- if (e$2 && undefined === t) {
19
- const e = undefined !== s && 1 === s.length;
20
- e && (t = o$3.get(s)), undefined === t && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), e && o$3.set(s, t));
18
+ if (e$2 && void 0 === t) {
19
+ const e = void 0 !== s && 1 === s.length;
20
+ e && (t = o$4.get(s)), void 0 === t && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), e && o$4.set(s, t));
21
21
  }
22
22
  return t;
23
23
  }
@@ -25,26 +25,26 @@ let n$2 = class n {
25
25
  return this.cssText;
26
26
  }
27
27
  };
28
- const r$3 = t => new n$2("string" == typeof t ? t : t + "", undefined, s$1),
28
+ const r$2 = t => new n$2("string" == typeof t ? t : t + "", void 0, s$2),
29
29
  i$3 = (t, ...e) => {
30
30
  const o = 1 === t.length ? t[0] : e.reduce((e, s, o) => e + (t => {
31
31
  if (true === t._$cssResult$) return t.cssText;
32
32
  if ("number" == typeof t) return t;
33
33
  throw Error("Value passed to 'css' function must be a 'css' function result: " + t + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
34
34
  })(s) + t[o + 1], t[0]);
35
- return new n$2(o, t, s$1);
35
+ return new n$2(o, t, s$2);
36
36
  },
37
37
  S$1 = (s, o) => {
38
38
  if (e$2) s.adoptedStyleSheets = o.map(t => t instanceof CSSStyleSheet ? t : t.styleSheet);else for (const e of o) {
39
39
  const o = document.createElement("style"),
40
40
  n = t$1.litNonce;
41
- undefined !== n && o.setAttribute("nonce", n), o.textContent = e.cssText, s.appendChild(o);
41
+ void 0 !== n && o.setAttribute("nonce", n), o.textContent = e.cssText, s.appendChild(o);
42
42
  }
43
43
  },
44
44
  c$2 = e$2 ? t => t : t => t instanceof CSSStyleSheet ? (t => {
45
45
  let e = "";
46
46
  for (const s of t.cssRules) e += s.cssText;
47
- return r$3(e);
47
+ return r$2(e);
48
48
  })(t) : t;
49
49
 
50
50
  /**
@@ -55,9 +55,9 @@ const r$3 = t => new n$2("string" == typeof t ? t : t + "", undefined, s$1),
55
55
  const {
56
56
  is: i$2,
57
57
  defineProperty: e$1,
58
- getOwnPropertyDescriptor: r$2,
59
- getOwnPropertyNames: h$1,
60
- getOwnPropertySymbols: o$2,
58
+ getOwnPropertyDescriptor: h$1,
59
+ getOwnPropertyNames: r$1,
60
+ getOwnPropertySymbols: o$3,
61
61
  getPrototypeOf: n$1
62
62
  } = Object,
63
63
  a$1 = globalThis,
@@ -98,33 +98,34 @@ const {
98
98
  }
99
99
  },
100
100
  f$1 = (t, s) => !i$2(t, s),
101
- y$1 = {
101
+ b$1 = {
102
102
  attribute: true,
103
103
  type: String,
104
104
  converter: u$1,
105
105
  reflect: false,
106
+ useDefault: false,
106
107
  hasChanged: f$1
107
108
  };
108
109
  Symbol.metadata ??= Symbol("metadata"), a$1.litPropertyMetadata ??= new WeakMap();
109
- let b$1 = class b extends HTMLElement {
110
+ let y$1 = class y extends HTMLElement {
110
111
  static addInitializer(t) {
111
112
  this._$Ei(), (this.l ??= []).push(t);
112
113
  }
113
114
  static get observedAttributes() {
114
115
  return this.finalize(), this._$Eh && [...this._$Eh.keys()];
115
116
  }
116
- static createProperty(t, s = y$1) {
117
- if (s.state && (s.attribute = false), this._$Ei(), this.elementProperties.set(t, s), !s.noAccessor) {
117
+ static createProperty(t, s = b$1) {
118
+ if (s.state && (s.attribute = false), this._$Ei(), this.prototype.hasOwnProperty(t) && ((s = Object.create(s)).wrapped = true), this.elementProperties.set(t, s), !s.noAccessor) {
118
119
  const i = Symbol(),
119
- r = this.getPropertyDescriptor(t, i, s);
120
- undefined !== r && e$1(this.prototype, t, r);
120
+ h = this.getPropertyDescriptor(t, i, s);
121
+ void 0 !== h && e$1(this.prototype, t, h);
121
122
  }
122
123
  }
123
124
  static getPropertyDescriptor(t, s, i) {
124
125
  const {
125
126
  get: e,
126
- set: h
127
- } = r$2(this.prototype, t) ?? {
127
+ set: r
128
+ } = h$1(this.prototype, t) ?? {
128
129
  get() {
129
130
  return this[s];
130
131
  },
@@ -133,41 +134,39 @@ let b$1 = class b extends HTMLElement {
133
134
  }
134
135
  };
135
136
  return {
136
- get() {
137
- return e?.call(this);
138
- },
137
+ get: e,
139
138
  set(s) {
140
- const r = e?.call(this);
141
- h.call(this, s), this.requestUpdate(t, r, i);
139
+ const h = e?.call(this);
140
+ r?.call(this, s), this.requestUpdate(t, h, i);
142
141
  },
143
142
  configurable: true,
144
143
  enumerable: true
145
144
  };
146
145
  }
147
146
  static getPropertyOptions(t) {
148
- return this.elementProperties.get(t) ?? y$1;
147
+ return this.elementProperties.get(t) ?? b$1;
149
148
  }
150
149
  static _$Ei() {
151
150
  if (this.hasOwnProperty(d$1("elementProperties"))) return;
152
151
  const t = n$1(this);
153
- t.finalize(), undefined !== t.l && (this.l = [...t.l]), this.elementProperties = new Map(t.elementProperties);
152
+ t.finalize(), void 0 !== t.l && (this.l = [...t.l]), this.elementProperties = new Map(t.elementProperties);
154
153
  }
155
154
  static finalize() {
156
155
  if (this.hasOwnProperty(d$1("finalized"))) return;
157
156
  if (this.finalized = true, this._$Ei(), this.hasOwnProperty(d$1("properties"))) {
158
157
  const t = this.properties,
159
- s = [...h$1(t), ...o$2(t)];
158
+ s = [...r$1(t), ...o$3(t)];
160
159
  for (const i of s) this.createProperty(i, t[i]);
161
160
  }
162
161
  const t = this[Symbol.metadata];
163
162
  if (null !== t) {
164
163
  const s = litPropertyMetadata.get(t);
165
- if (undefined !== s) for (const [t, i] of s) this.elementProperties.set(t, i);
164
+ if (void 0 !== s) for (const [t, i] of s) this.elementProperties.set(t, i);
166
165
  }
167
166
  this._$Eh = new Map();
168
167
  for (const [t, s] of this.elementProperties) {
169
168
  const i = this._$Eu(t, s);
170
- undefined !== i && this._$Eh.set(i, t);
169
+ void 0 !== i && this._$Eh.set(i, t);
171
170
  }
172
171
  this.elementStyles = this.finalizeStyles(this.styles);
173
172
  }
@@ -176,21 +175,21 @@ let b$1 = class b extends HTMLElement {
176
175
  if (Array.isArray(s)) {
177
176
  const e = new Set(s.flat(1 / 0).reverse());
178
177
  for (const s of e) i.unshift(c$2(s));
179
- } else undefined !== s && i.push(c$2(s));
178
+ } else void 0 !== s && i.push(c$2(s));
180
179
  return i;
181
180
  }
182
181
  static _$Eu(t, s) {
183
182
  const i = s.attribute;
184
- return false === i ? undefined : "string" == typeof i ? i : "string" == typeof t ? t.toLowerCase() : undefined;
183
+ return false === i ? void 0 : "string" == typeof i ? i : "string" == typeof t ? t.toLowerCase() : void 0;
185
184
  }
186
185
  constructor() {
187
- super(), this._$Ep = undefined, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
186
+ super(), this._$Ep = void 0, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
188
187
  }
189
188
  _$Ev() {
190
189
  this._$ES = new Promise(t => this.enableUpdating = t), this._$AL = new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach(t => t(this));
191
190
  }
192
191
  addController(t) {
193
- (this._$EO ??= new Set()).add(t), undefined !== this.renderRoot && this.isConnected && t.hostConnected?.();
192
+ (this._$EO ??= new Set()).add(t), void 0 !== this.renderRoot && this.isConnected && t.hostConnected?.();
194
193
  }
195
194
  removeController(t) {
196
195
  this._$EO?.delete(t);
@@ -215,36 +214,44 @@ let b$1 = class b extends HTMLElement {
215
214
  attributeChangedCallback(t, s, i) {
216
215
  this._$AK(t, i);
217
216
  }
218
- _$EC(t, s) {
217
+ _$ET(t, s) {
219
218
  const i = this.constructor.elementProperties.get(t),
220
219
  e = this.constructor._$Eu(t, i);
221
- if (undefined !== e && true === i.reflect) {
222
- const r = (undefined !== i.converter?.toAttribute ? i.converter : u$1).toAttribute(s, i.type);
223
- this._$Em = t, null == r ? this.removeAttribute(e) : this.setAttribute(e, r), this._$Em = null;
220
+ if (void 0 !== e && true === i.reflect) {
221
+ const h = (void 0 !== i.converter?.toAttribute ? i.converter : u$1).toAttribute(s, i.type);
222
+ this._$Em = t, null == h ? this.removeAttribute(e) : this.setAttribute(e, h), this._$Em = null;
224
223
  }
225
224
  }
226
225
  _$AK(t, s) {
227
226
  const i = this.constructor,
228
227
  e = i._$Eh.get(t);
229
- if (undefined !== e && this._$Em !== e) {
228
+ if (void 0 !== e && this._$Em !== e) {
230
229
  const t = i.getPropertyOptions(e),
231
- r = "function" == typeof t.converter ? {
230
+ h = "function" == typeof t.converter ? {
232
231
  fromAttribute: t.converter
233
- } : undefined !== t.converter?.fromAttribute ? t.converter : u$1;
234
- this._$Em = e, this[e] = r.fromAttribute(s, t.type), this._$Em = null;
232
+ } : void 0 !== t.converter?.fromAttribute ? t.converter : u$1;
233
+ this._$Em = e;
234
+ const r = h.fromAttribute(s, t.type);
235
+ this[e] = r ?? this._$Ej?.get(e) ?? r, this._$Em = null;
235
236
  }
236
237
  }
237
238
  requestUpdate(t, s, i) {
238
- if (undefined !== t) {
239
- if (i ??= this.constructor.getPropertyOptions(t), !(i.hasChanged ?? f$1)(this[t], s)) return;
240
- this.P(t, s, i);
239
+ if (void 0 !== t) {
240
+ const e = this.constructor,
241
+ h = this[t];
242
+ if (i ??= e.getPropertyOptions(t), !((i.hasChanged ?? f$1)(h, s) || i.useDefault && i.reflect && h === this._$Ej?.get(t) && !this.hasAttribute(e._$Eu(t, i)))) return;
243
+ this.C(t, s, i);
241
244
  }
242
- false === this.isUpdatePending && (this._$ES = this._$ET());
245
+ false === this.isUpdatePending && (this._$ES = this._$EP());
243
246
  }
244
- P(t, s, i) {
245
- this._$AL.has(t) || this._$AL.set(t, s), true === i.reflect && this._$Em !== t && (this._$Ej ??= new Set()).add(t);
247
+ C(t, s, {
248
+ useDefault: i,
249
+ reflect: e,
250
+ wrapped: h
251
+ }, r) {
252
+ i && !(this._$Ej ??= new Map()).has(t) && (this._$Ej.set(t, r ?? s ?? this[t]), true !== h || void 0 !== r) || (this._$AL.has(t) || (this.hasUpdated || i || (s = void 0), this._$AL.set(t, s)), true === e && this._$Em !== t && (this._$Eq ??= new Set()).add(t));
246
253
  }
247
- async _$ET() {
254
+ async _$EP() {
248
255
  this.isUpdatePending = true;
249
256
  try {
250
257
  await this._$ES;
@@ -262,17 +269,23 @@ let b$1 = class b extends HTMLElement {
262
269
  if (!this.hasUpdated) {
263
270
  if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
264
271
  for (const [t, s] of this._$Ep) this[t] = s;
265
- this._$Ep = undefined;
272
+ this._$Ep = void 0;
266
273
  }
267
274
  const t = this.constructor.elementProperties;
268
- if (t.size > 0) for (const [s, i] of t) true !== i.wrapped || this._$AL.has(s) || undefined === this[s] || this.P(s, this[s], i);
275
+ if (t.size > 0) for (const [s, i] of t) {
276
+ const {
277
+ wrapped: t
278
+ } = i,
279
+ e = this[s];
280
+ true !== t || this._$AL.has(s) || void 0 === e || this.C(s, void 0, i, e);
281
+ }
269
282
  }
270
283
  let t = false;
271
284
  const s = this._$AL;
272
285
  try {
273
- t = this.shouldUpdate(s), t ? (this.willUpdate(s), this._$EO?.forEach(t => t.hostUpdate?.()), this.update(s)) : this._$EU();
286
+ t = this.shouldUpdate(s), t ? (this.willUpdate(s), this._$EO?.forEach(t => t.hostUpdate?.()), this.update(s)) : this._$EM();
274
287
  } catch (s) {
275
- throw t = false, this._$EU(), s;
288
+ throw t = false, this._$EM(), s;
276
289
  }
277
290
  t && this._$AE(s);
278
291
  }
@@ -280,7 +293,7 @@ let b$1 = class b extends HTMLElement {
280
293
  _$AE(t) {
281
294
  this._$EO?.forEach(t => t.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t)), this.updated(t);
282
295
  }
283
- _$EU() {
296
+ _$EM() {
284
297
  this._$AL = new Map(), this.isUpdatePending = false;
285
298
  }
286
299
  get updateComplete() {
@@ -293,16 +306,16 @@ let b$1 = class b extends HTMLElement {
293
306
  return true;
294
307
  }
295
308
  update(t) {
296
- this._$Ej &&= this._$Ej.forEach(t => this._$EC(t, this[t])), this._$EU();
309
+ this._$Eq &&= this._$Eq.forEach(t => this._$ET(t, this[t])), this._$EM();
297
310
  }
298
311
  updated(t) {}
299
312
  firstUpdated(t) {}
300
313
  };
301
- b$1.elementStyles = [], b$1.shadowRootOptions = {
314
+ y$1.elementStyles = [], y$1.shadowRootOptions = {
302
315
  mode: "open"
303
- }, b$1[d$1("elementProperties")] = new Map(), b$1[d$1("finalized")] = new Map(), p$1?.({
304
- ReactiveElement: b$1
305
- }), (a$1.reactiveElementVersions ??= []).push("2.0.4");
316
+ }, y$1[d$1("elementProperties")] = new Map(), y$1[d$1("finalized")] = new Map(), p$1?.({
317
+ ReactiveElement: y$1
318
+ }), (a$1.reactiveElementVersions ??= []).push("2.1.1");
306
319
 
307
320
  /**
308
321
  * @license
@@ -311,15 +324,15 @@ b$1.elementStyles = [], b$1.shadowRootOptions = {
311
324
  */
312
325
  const t = globalThis,
313
326
  i$1 = t.trustedTypes,
314
- s = i$1 ? i$1.createPolicy("lit-html", {
327
+ s$1 = i$1 ? i$1.createPolicy("lit-html", {
315
328
  createHTML: t => t
316
- }) : undefined,
329
+ }) : void 0,
317
330
  e = "$lit$",
318
331
  h = `lit$${Math.random().toFixed(9).slice(2)}$`,
319
- o$1 = "?" + h,
320
- n = `<${o$1}>`,
321
- r$1 = document,
322
- l = () => r$1.createComment(""),
332
+ o$2 = "?" + h,
333
+ n = `<${o$2}>`,
334
+ r = document,
335
+ l = () => r.createComment(""),
323
336
  c = t => null === t || "object" != typeof t && "function" != typeof t,
324
337
  a = Array.isArray,
325
338
  u = t => a(t) || "function" == typeof t?.[Symbol.iterator],
@@ -341,10 +354,10 @@ const t = globalThis,
341
354
  T = Symbol.for("lit-noChange"),
342
355
  E = Symbol.for("lit-nothing"),
343
356
  A = new WeakMap(),
344
- C = r$1.createTreeWalker(r$1, 129);
357
+ C = r.createTreeWalker(r, 129);
345
358
  function P(t, i) {
346
359
  if (!a(t) || !t.hasOwnProperty("raw")) throw Error("invalid template strings array");
347
- return undefined !== s ? s.createHTML(i) : i;
360
+ return void 0 !== s$1 ? s$1.createHTML(i) : i;
348
361
  }
349
362
  const V = (t, i) => {
350
363
  const s = t.length - 1,
@@ -358,7 +371,7 @@ const V = (t, i) => {
358
371
  u,
359
372
  d = -1,
360
373
  y = 0;
361
- for (; y < s.length && (c.lastIndex = y, u = c.exec(s), null !== u);) y = c.lastIndex, c === f ? "!--" === u[1] ? c = v : undefined !== u[1] ? c = _ : undefined !== u[2] ? ($.test(u[2]) && (r = RegExp("</" + u[2], "g")), c = m) : undefined !== u[3] && (c = m) : c === m ? ">" === u[0] ? (c = r ?? f, d = -1) : undefined === u[1] ? d = -2 : (d = c.lastIndex - u[2].length, a = u[1], c = undefined === u[3] ? m : '"' === u[3] ? g : p) : c === g || c === p ? c = m : c === v || c === _ ? c = f : (c = m, r = undefined);
374
+ for (; y < s.length && (c.lastIndex = y, u = c.exec(s), null !== u);) y = c.lastIndex, c === f ? "!--" === u[1] ? c = v : void 0 !== u[1] ? c = _ : void 0 !== u[2] ? ($.test(u[2]) && (r = RegExp("</" + u[2], "g")), c = m) : void 0 !== u[3] && (c = m) : c === m ? ">" === u[0] ? (c = r ?? f, d = -1) : void 0 === u[1] ? d = -2 : (d = c.lastIndex - u[2].length, a = u[1], c = void 0 === u[3] ? m : '"' === u[3] ? g : p) : c === g || c === p ? c = m : c === v || c === _ ? c = f : (c = m, r = void 0);
362
375
  const x = c === m && t[i + 1].startsWith("/>") ? " " : "";
363
376
  l += c === f ? s + n : d >= 0 ? (o.push(a), s.slice(0, d) + e + s.slice(d) + h + x) : s + h + (-2 === d ? i : x);
364
377
  }
@@ -409,7 +422,7 @@ class N {
409
422
  r.append(t[s], l());
410
423
  }
411
424
  }
412
- } else if (8 === r.nodeType) if (r.data === o$1) d.push({
425
+ } else if (8 === r.nodeType) if (r.data === o$2) d.push({
413
426
  type: 2,
414
427
  index: c
415
428
  });else {
@@ -423,19 +436,19 @@ class N {
423
436
  }
424
437
  }
425
438
  static createElement(t, i) {
426
- const s = r$1.createElement("template");
439
+ const s = r.createElement("template");
427
440
  return s.innerHTML = t, s;
428
441
  }
429
442
  }
430
443
  function S(t, i, s = t, e) {
431
444
  if (i === T) return i;
432
- let h = undefined !== e ? s._$Co?.[e] : s._$Cl;
433
- const o = c(i) ? undefined : i._$litDirective$;
434
- return h?.constructor !== o && (h?._$AO?.(false), undefined === o ? h = undefined : (h = new o(t), h._$AT(t, s, e)), undefined !== e ? (s._$Co ??= [])[e] = h : s._$Cl = h), undefined !== h && (i = S(t, h._$AS(t, i.values), h, e)), i;
445
+ let h = void 0 !== e ? s._$Co?.[e] : s._$Cl;
446
+ const o = c(i) ? void 0 : i._$litDirective$;
447
+ return h?.constructor !== o && (h?._$AO?.(false), void 0 === o ? h = void 0 : (h = new o(t), h._$AT(t, s, e)), void 0 !== e ? (s._$Co ??= [])[e] = h : s._$Cl = h), void 0 !== h && (i = S(t, h._$AS(t, i.values), h, e)), i;
435
448
  }
436
449
  class M {
437
450
  constructor(t, i) {
438
- this._$AV = [], this._$AN = undefined, this._$AD = t, this._$AM = i;
451
+ this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = i;
439
452
  }
440
453
  get parentNode() {
441
454
  return this._$AM.parentNode;
@@ -450,24 +463,24 @@ class M {
450
463
  },
451
464
  parts: s
452
465
  } = this._$AD,
453
- e = (t?.creationScope ?? r$1).importNode(i, true);
466
+ e = (t?.creationScope ?? r).importNode(i, true);
454
467
  C.currentNode = e;
455
468
  let h = C.nextNode(),
456
469
  o = 0,
457
470
  n = 0,
458
471
  l = s[0];
459
- for (; undefined !== l;) {
472
+ for (; void 0 !== l;) {
460
473
  if (o === l.index) {
461
474
  let i;
462
475
  2 === l.type ? i = new R(h, h.nextSibling, this, t) : 1 === l.type ? i = new l.ctor(h, l.name, l.strings, this, t) : 6 === l.type && (i = new z(h, this, t)), this._$AV.push(i), l = s[++n];
463
476
  }
464
477
  o !== l?.index && (h = C.nextNode(), o++);
465
478
  }
466
- return C.currentNode = r$1, e;
479
+ return C.currentNode = r, e;
467
480
  }
468
481
  p(t) {
469
482
  let i = 0;
470
- for (const s of this._$AV) undefined !== s && (undefined !== s.strings ? (s._$AI(t, s, i), i += s.strings.length - 2) : s._$AI(t[i])), i++;
483
+ for (const s of this._$AV) void 0 !== s && (void 0 !== s.strings ? (s._$AI(t, s, i), i += s.strings.length - 2) : s._$AI(t[i])), i++;
471
484
  }
472
485
  }
473
486
  class R {
@@ -475,12 +488,12 @@ class R {
475
488
  return this._$AM?._$AU ?? this._$Cv;
476
489
  }
477
490
  constructor(t, i, s, e) {
478
- this.type = 2, this._$AH = E, this._$AN = undefined, this._$AA = t, this._$AB = i, this._$AM = s, this.options = e, this._$Cv = e?.isConnected ?? true;
491
+ this.type = 2, this._$AH = E, this._$AN = void 0, this._$AA = t, this._$AB = i, this._$AM = s, this.options = e, this._$Cv = e?.isConnected ?? true;
479
492
  }
480
493
  get parentNode() {
481
494
  let t = this._$AA.parentNode;
482
495
  const i = this._$AM;
483
- return undefined !== i && 11 === t?.nodeType && (t = i.parentNode), t;
496
+ return void 0 !== i && 11 === t?.nodeType && (t = i.parentNode), t;
484
497
  }
485
498
  get startNode() {
486
499
  return this._$AA;
@@ -489,7 +502,7 @@ class R {
489
502
  return this._$AB;
490
503
  }
491
504
  _$AI(t, i = this) {
492
- t = S(this, t, i), c(t) ? t === E || null == t || "" === t ? (this._$AH !== E && this._$AR(), this._$AH = E) : t !== this._$AH && t !== T && this._(t) : undefined !== t._$litType$ ? this.$(t) : undefined !== t.nodeType ? this.T(t) : u(t) ? this.k(t) : this._(t);
505
+ t = S(this, t, i), c(t) ? t === E || null == t || "" === t ? (this._$AH !== E && this._$AR(), this._$AH = E) : t !== this._$AH && t !== T && this._(t) : void 0 !== t._$litType$ ? this.$(t) : void 0 !== t.nodeType ? this.T(t) : u(t) ? this.k(t) : this._(t);
493
506
  }
494
507
  O(t) {
495
508
  return this._$AA.parentNode.insertBefore(t, this._$AB);
@@ -498,14 +511,14 @@ class R {
498
511
  this._$AH !== t && (this._$AR(), this._$AH = this.O(t));
499
512
  }
500
513
  _(t) {
501
- this._$AH !== E && c(this._$AH) ? this._$AA.nextSibling.data = t : this.T(r$1.createTextNode(t)), this._$AH = t;
514
+ this._$AH !== E && c(this._$AH) ? this._$AA.nextSibling.data = t : this.T(r.createTextNode(t)), this._$AH = t;
502
515
  }
503
516
  $(t) {
504
517
  const {
505
518
  values: i,
506
519
  _$litType$: s
507
520
  } = t,
508
- e = "number" == typeof s ? this._$AC(t) : (undefined === s.el && (s.el = N.createElement(P(s.h, s.h[0]), this.options)), s);
521
+ e = "number" == typeof s ? this._$AC(t) : (void 0 === s.el && (s.el = N.createElement(P(s.h, s.h[0]), this.options)), s);
509
522
  if (this._$AH?._$AD === e) this._$AH.p(i);else {
510
523
  const t = new M(e, this),
511
524
  s = t.u(this.options);
@@ -514,7 +527,7 @@ class R {
514
527
  }
515
528
  _$AC(t) {
516
529
  let i = A.get(t.strings);
517
- return undefined === i && A.set(t.strings, i = new N(t)), i;
530
+ return void 0 === i && A.set(t.strings, i = new N(t)), i;
518
531
  }
519
532
  k(t) {
520
533
  a(this._$AH) || (this._$AH = [], this._$AR());
@@ -525,13 +538,13 @@ class R {
525
538
  e < i.length && (this._$AR(s && s._$AB.nextSibling, e), i.length = e);
526
539
  }
527
540
  _$AR(t = this._$AA.nextSibling, i) {
528
- for (this._$AP?.(false, true, i); t && t !== this._$AB;) {
541
+ for (this._$AP?.(false, true, i); t !== this._$AB;) {
529
542
  const i = t.nextSibling;
530
543
  t.remove(), t = i;
531
544
  }
532
545
  }
533
546
  setConnected(t) {
534
- undefined === this._$AM && (this._$Cv = t, this._$AP?.(t));
547
+ void 0 === this._$AM && (this._$Cv = t, this._$AP?.(t));
535
548
  }
536
549
  }
537
550
  class k {
@@ -542,12 +555,12 @@ class k {
542
555
  return this._$AM._$AU;
543
556
  }
544
557
  constructor(t, i, s, e, h) {
545
- this.type = 1, this._$AH = E, this._$AN = undefined, this.element = t, this.name = i, this._$AM = e, this.options = h, s.length > 2 || "" !== s[0] || "" !== s[1] ? (this._$AH = Array(s.length - 1).fill(new String()), this.strings = s) : this._$AH = E;
558
+ this.type = 1, this._$AH = E, this._$AN = void 0, this.element = t, this.name = i, this._$AM = e, this.options = h, s.length > 2 || "" !== s[0] || "" !== s[1] ? (this._$AH = Array(s.length - 1).fill(new String()), this.strings = s) : this._$AH = E;
546
559
  }
547
560
  _$AI(t, i = this, s, e) {
548
561
  const h = this.strings;
549
562
  let o = false;
550
- if (undefined === h) t = S(this, t, i, 0), o = !c(t) || t !== this._$AH && t !== T, o && (this._$AH = t);else {
563
+ if (void 0 === h) t = S(this, t, i, 0), o = !c(t) || t !== this._$AH && t !== T, o && (this._$AH = t);else {
551
564
  const e = t;
552
565
  let n, r;
553
566
  for (t = h[0], n = 0; n < h.length - 1; n++) r = S(this, e[s + n], i, n), r === T && (r = this._$AH[n]), o ||= !c(r) || r !== this._$AH[n], r === E ? t = E : t !== E && (t += (r ?? "") + h[n + 1]), this._$AH[n] = r;
@@ -563,7 +576,7 @@ class H extends k {
563
576
  super(...arguments), this.type = 3;
564
577
  }
565
578
  j(t) {
566
- this.element[this.name] = t === E ? undefined : t;
579
+ this.element[this.name] = t === E ? void 0 : t;
567
580
  }
568
581
  }
569
582
  class I extends k {
@@ -591,7 +604,7 @@ class L extends k {
591
604
  }
592
605
  class z {
593
606
  constructor(t, i, s) {
594
- this.element = t, this.type = 6, this._$AN = undefined, this._$AM = i, this.options = s;
607
+ this.element = t, this.type = 6, this._$AN = void 0, this._$AM = i, this.options = s;
595
608
  }
596
609
  get _$AU() {
597
610
  return this._$AM._$AU;
@@ -601,13 +614,13 @@ class z {
601
614
  }
602
615
  }
603
616
  const j = t.litHtmlPolyfillSupport;
604
- j?.(N, R), (t.litHtmlVersions ??= []).push("3.2.1");
617
+ j?.(N, R), (t.litHtmlVersions ??= []).push("3.3.1");
605
618
  const B = (t, i, s) => {
606
619
  const e = s?.renderBefore ?? i;
607
620
  let h = e._$litPart$;
608
- if (undefined === h) {
621
+ if (void 0 === h) {
609
622
  const t = s?.renderBefore ?? null;
610
- e._$litPart$ = h = new R(i.insertBefore(l(), t), t, undefined, s ?? {});
623
+ e._$litPart$ = h = new R(i.insertBefore(l(), t), t, void 0, s ?? {});
611
624
  }
612
625
  return h._$AI(t), h;
613
626
  };
@@ -617,19 +630,20 @@ const B = (t, i, s) => {
617
630
  * Copyright 2017 Google LLC
618
631
  * SPDX-License-Identifier: BSD-3-Clause
619
632
  */
620
- class r extends b$1 {
633
+ const s = globalThis;
634
+ class i extends y$1 {
621
635
  constructor() {
622
636
  super(...arguments), this.renderOptions = {
623
637
  host: this
624
- }, this._$Do = undefined;
638
+ }, this._$Do = void 0;
625
639
  }
626
640
  createRenderRoot() {
627
641
  const t = super.createRenderRoot();
628
642
  return this.renderOptions.renderBefore ??= t.firstChild, t;
629
643
  }
630
644
  update(t) {
631
- const s = this.render();
632
- this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = B(s, this.renderRoot, this.renderOptions);
645
+ const r = this.render();
646
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = B(r, this.renderRoot, this.renderOptions);
633
647
  }
634
648
  connectedCallback() {
635
649
  super.connectedCallback(), this._$Do?.setConnected(true);
@@ -641,14 +655,14 @@ class r extends b$1 {
641
655
  return T;
642
656
  }
643
657
  }
644
- r._$litElement$ = true, r["finalized"] = true, globalThis.litElementHydrateSupport?.({
645
- LitElement: r
658
+ i._$litElement$ = true, i["finalized"] = true, s.litElementHydrateSupport?.({
659
+ LitElement: i
646
660
  });
647
- const i = globalThis.litElementPolyfillSupport;
648
- i?.({
649
- LitElement: r
661
+ const o$1 = s.litElementPolyfillSupport;
662
+ o$1?.({
663
+ LitElement: i
650
664
  });
651
- (globalThis.litElementVersions ??= []).push("4.1.1");
665
+ (s.litElementVersions ??= []).push("4.2.1");
652
666
 
653
667
  var noop = {
654
668
  value: () => {}
@@ -3068,7 +3082,7 @@ Transform.prototype;
3068
3082
  DecidablesElement Base Class - Not intended for instantiation!
3069
3083
  <decidables-element>
3070
3084
  */
3071
- class DecidablesElement extends r {
3085
+ class DecidablesElement extends i {
3072
3086
  getComputedStyleValue(property) {
3073
3087
  return getComputedStyle(this).getPropertyValue(property).trim();
3074
3088
  }
@@ -3323,22 +3337,22 @@ class DecidablesElement extends r {
3323
3337
  static get styles() {
3324
3338
  return i$3`
3325
3339
  :host {
3326
- ---shadow-0: var(--shadow-0, ${r$3(this.cssBoxShadow(0))});
3327
- ---shadow-2: var(--shadow-2, ${r$3(this.cssBoxShadow(2))});
3328
- ---shadow-4: var(--shadow-4, ${r$3(this.cssBoxShadow(4))});
3329
- ---shadow-8: var(--shadow-8, ${r$3(this.cssBoxShadow(8))});
3330
-
3331
- ---color-background: var(--color-background, ${r$3(this.greys.white)});
3332
- ---color-border: var(--color-border, ${r$3(this.greys.light75)});
3333
- ---color-text: var(--color-text, ${r$3(this.greys.dark75)});
3334
- ---color-text-inverse: var(--color-text-inverse, ${r$3(this.greys.white)});
3335
- ---color-link: var(--color-link, ${r$3(this.greys.dark25)});
3336
- ---color-element-background: var(--color-element-background, ${r$3(this.greys.light75)});
3337
- ---color-element-disabled: var(--color-element-disabled, ${r$3(this.greys.light50)});
3338
- ---color-element-enabled: var(--color-element-enabled, ${r$3(this.greys.dark25)});
3339
- ---color-element-selected: var(--color-element-selected, ${r$3(this.greys.grey)});
3340
- ---color-element-border: var(--color-element-border, ${r$3(this.greys.dark50)});
3341
- ---color-element-emphasis: var(--color-element-emphasis, ${r$3(this.greys.dark75)});
3340
+ ---shadow-0: var(--shadow-0, ${r$2(this.cssBoxShadow(0))});
3341
+ ---shadow-2: var(--shadow-2, ${r$2(this.cssBoxShadow(2))});
3342
+ ---shadow-4: var(--shadow-4, ${r$2(this.cssBoxShadow(4))});
3343
+ ---shadow-8: var(--shadow-8, ${r$2(this.cssBoxShadow(8))});
3344
+
3345
+ ---color-background: var(--color-background, ${r$2(this.greys.white)});
3346
+ ---color-border: var(--color-border, ${r$2(this.greys.light75)});
3347
+ ---color-text: var(--color-text, ${r$2(this.greys.dark75)});
3348
+ ---color-text-inverse: var(--color-text-inverse, ${r$2(this.greys.white)});
3349
+ ---color-link: var(--color-link, ${r$2(this.greys.dark25)});
3350
+ ---color-element-background: var(--color-element-background, ${r$2(this.greys.light75)});
3351
+ ---color-element-disabled: var(--color-element-disabled, ${r$2(this.greys.light50)});
3352
+ ---color-element-enabled: var(--color-element-enabled, ${r$2(this.greys.dark25)});
3353
+ ---color-element-selected: var(--color-element-selected, ${r$2(this.greys.grey)});
3354
+ ---color-element-border: var(--color-element-border, ${r$2(this.greys.dark50)});
3355
+ ---color-element-emphasis: var(--color-element-emphasis, ${r$2(this.greys.dark75)});
3342
3356
 
3343
3357
  ---font-family-base: var(--font-family-base, "Source Sans", sans-serif);
3344
3358
  ---font-family-math: var(--font-family-math, "Source Serif", serif);
@@ -3348,6 +3362,7 @@ class DecidablesElement extends r {
3348
3362
  ---transition-duration: var(--transition-duration, 500ms);
3349
3363
 
3350
3364
  font-family: var(---font-family-base);
3365
+ font-weight: normal;
3351
3366
  }
3352
3367
 
3353
3368
  :host,
@@ -3401,6 +3416,9 @@ class DecidablesButton extends DecidablesElement {
3401
3416
  static get styles() {
3402
3417
  return [super.styles, i$3`
3403
3418
  :host {
3419
+ ---decidables-button-background-color-disabled: var(--decidables-button-background-color, var(---color-element-disabled));
3420
+ ---decidables-button-background-color-enabled: var(--decidables-button-background-color, var(---color-element-enabled));
3421
+
3404
3422
  margin: 0.25rem;
3405
3423
  }
3406
3424
 
@@ -3420,7 +3438,7 @@ class DecidablesButton extends DecidablesElement {
3420
3438
  }
3421
3439
 
3422
3440
  button:disabled {
3423
- background-color: var(--decidables-button-background-color, var(---color-element-disabled));
3441
+ background-color: var(---decidables-button-background-color-disabled);
3424
3442
  outline: none;
3425
3443
  box-shadow: none;
3426
3444
  }
@@ -3428,7 +3446,7 @@ class DecidablesButton extends DecidablesElement {
3428
3446
  button:enabled {
3429
3447
  cursor: pointer;
3430
3448
 
3431
- background-color: var(--decidables-button-background-color, var(---color-element-enabled));
3449
+ background-color: var(---decidables-button-background-color-enabled);
3432
3450
  outline: none;
3433
3451
  box-shadow: var(---shadow-2);
3434
3452
  }
@@ -3479,6 +3497,11 @@ class DecidablesSlider extends DecidablesElement {
3479
3497
  type: Boolean,
3480
3498
  reflect: true
3481
3499
  },
3500
+ scale: {
3501
+ attribute: 'scale',
3502
+ type: Boolean,
3503
+ reflect: true
3504
+ },
3482
3505
  max: {
3483
3506
  attribute: 'max',
3484
3507
  type: Number,
@@ -3498,6 +3521,11 @@ class DecidablesSlider extends DecidablesElement {
3498
3521
  attribute: 'value',
3499
3522
  type: Number,
3500
3523
  reflect: true
3524
+ },
3525
+ nonlinear: {
3526
+ attribute: false,
3527
+ type: Boolean,
3528
+ reflect: false
3501
3529
  }
3502
3530
  };
3503
3531
  }
@@ -3506,13 +3534,30 @@ class DecidablesSlider extends DecidablesElement {
3506
3534
 
3507
3535
  // Attributes
3508
3536
  this.disabled = false;
3537
+ this.scale = false;
3509
3538
  this.max = undefined;
3510
3539
  this.min = undefined;
3511
3540
  this.step = undefined;
3512
3541
  this.value = undefined;
3542
+ this.nonlinear = false;
3543
+
3544
+ // Properties
3545
+ this.rangeMax = undefined;
3546
+ this.rangeMin = undefined;
3547
+ this.rangeStep = undefined;
3548
+ this.rangeValue = undefined;
3549
+
3550
+ // Transform
3551
+ this.toRange = undefined;
3552
+ this.fromRange = undefined;
3513
3553
  }
3514
- changed(event) {
3515
- this.value = event.target.value;
3554
+ nonlinearRange(nonlinear, toRange, fromRange) {
3555
+ this.nonlinear = nonlinear;
3556
+ this.toRange = nonlinear ? toRange : undefined;
3557
+ this.fromRange = nonlinear ? fromRange : undefined;
3558
+ }
3559
+ rangeChanged(event) {
3560
+ this.value = this.nonlinear ? this.fromRange(event.target.value) : event.target.value;
3516
3561
  this.dispatchEvent(new CustomEvent('change', {
3517
3562
  detail: {
3518
3563
  value: this.value
@@ -3520,15 +3565,28 @@ class DecidablesSlider extends DecidablesElement {
3520
3565
  bubbles: true
3521
3566
  }));
3522
3567
  }
3523
- inputted(event) {
3568
+ rangeInputted(event) {
3569
+ this.value = this.nonlinear ? this.fromRange(event.target.value) : event.target.value;
3570
+ }
3571
+ spinnerInputted(event) {
3524
3572
  this.value = event.target.value;
3525
3573
  }
3574
+ willUpdate() {
3575
+ this.rangeMax = this.max === undefined ? undefined : this.nonlinear ? this.toRange(this.max) : this.max;
3576
+ this.rangeMin = this.min === undefined ? undefined : this.nonlinear ? this.toRange(this.min) : this.min;
3577
+ this.rangeStep = this.step === undefined ? undefined : this.nonlinear ? 'any' : this.step;
3578
+ this.rangeValue = this.value === undefined ? undefined : this.nonlinear ? this.toRange(this.value) : this.value;
3579
+ }
3526
3580
  static get styles() {
3527
3581
  return [super.styles, i$3`
3528
3582
  :host {
3529
- ---shadow-2-rotate: var(--shadow-2-rotate, ${r$3(this.cssBoxShadow(2, true, false))});
3530
- ---shadow-4-rotate: var(--shadow-4-rotate, ${r$3(this.cssBoxShadow(4, true, false))});
3531
- ---shadow-8-rotate: var(--shadow-8-rotate, ${r$3(this.cssBoxShadow(8, true, false))});
3583
+ ---decidables-slider-background-color: var(--decidables-slider-background-color, var(---color-element-disabled));
3584
+ ---decidables-slider-color: var(--decidables-slider-color, var(---color-element-enabled));
3585
+ ---decidables-spinner-background-color: var(--decidables-slider-background-color, none);
3586
+
3587
+ ---shadow-2-rotate: var(--shadow-2-rotate, ${r$2(this.cssBoxShadow(2, true, false))});
3588
+ ---shadow-4-rotate: var(--shadow-4-rotate, ${r$2(this.cssBoxShadow(4, true, false))});
3589
+ ---shadow-8-rotate: var(--shadow-8-rotate, ${r$2(this.cssBoxShadow(8, true, false))});
3532
3590
 
3533
3591
  display: flex;
3534
3592
 
@@ -3543,7 +3601,10 @@ class DecidablesSlider extends DecidablesElement {
3543
3601
  }
3544
3602
 
3545
3603
  .range {
3546
- display: inline-block;
3604
+ position: relative;
3605
+ display: flex;
3606
+
3607
+ flex-direction: row;
3547
3608
 
3548
3609
  width: 3.5rem;
3549
3610
  height: 4.75rem;
@@ -3554,6 +3615,8 @@ class DecidablesSlider extends DecidablesElement {
3554
3615
  --decidables-spinner-input-width: 3.5rem;
3555
3616
 
3556
3617
  margin: 0 0.25rem 0.25rem;
3618
+
3619
+ background: var(---decidables-spinner-background-color);
3557
3620
  }
3558
3621
 
3559
3622
  /* Adapted from http://danielstern.ca/range.css/#/ */
@@ -3592,14 +3655,14 @@ class DecidablesSlider extends DecidablesElement {
3592
3655
  width: 100%;
3593
3656
  height: 4px;
3594
3657
 
3595
- background: var(---color-element-disabled);
3658
+ background: var(---decidables-slider-background-color);
3596
3659
  border: 0;
3597
3660
  border-radius: 2px;
3598
3661
  box-shadow: none;
3599
3662
  }
3600
3663
 
3601
3664
  input[type=range]:focus::-webkit-slider-runnable-track {
3602
- background: var(---color-element-disabled);
3665
+ background: var(---decidables-slider-background-color);
3603
3666
  }
3604
3667
 
3605
3668
  /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
@@ -3607,7 +3670,7 @@ class DecidablesSlider extends DecidablesElement {
3607
3670
  width: 100%;
3608
3671
  height: 4px;
3609
3672
 
3610
- background: var(---color-element-disabled);
3673
+ background: var(---decidables-slider-background-color);
3611
3674
  border: 0;
3612
3675
  border-radius: 2px;
3613
3676
  box-shadow: none;
@@ -3627,7 +3690,7 @@ class DecidablesSlider extends DecidablesElement {
3627
3690
  /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
3628
3691
  input[type=range]::-ms-fill-lower {
3629
3692
  background: #cccccc;
3630
- /* background: var(---color-element-disabled); */
3693
+ /* background: var(---decidables-slider-background-color); */
3631
3694
  border: 0;
3632
3695
  border-radius: 2px;
3633
3696
  box-shadow: none;
@@ -3636,7 +3699,7 @@ class DecidablesSlider extends DecidablesElement {
3636
3699
  /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
3637
3700
  input[type=range]::-ms-fill-upper {
3638
3701
  background: #cccccc;
3639
- /* background: var(---color-element-disabled); */
3702
+ /* background: var(---decidables-slider-background-color); */
3640
3703
  border: 0;
3641
3704
  border-radius: 2px;
3642
3705
  box-shadow: none;
@@ -3644,12 +3707,12 @@ class DecidablesSlider extends DecidablesElement {
3644
3707
 
3645
3708
  /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
3646
3709
  input[type=range]:focus::-ms-fill-lower {
3647
- background: var(---color-element-disabled);
3710
+ background: var(---decidables-slider-background-color);
3648
3711
  }
3649
3712
 
3650
3713
  /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
3651
3714
  input[type=range]:focus::-ms-fill-upper {
3652
- background: var(---color-element-disabled);
3715
+ background: var(---decidables-slider-background-color);
3653
3716
  }
3654
3717
 
3655
3718
  /* Thumb */
@@ -3667,12 +3730,12 @@ class DecidablesSlider extends DecidablesElement {
3667
3730
  }
3668
3731
 
3669
3732
  input[type=range]:disabled::-webkit-slider-thumb {
3670
- background: var(---color-element-disabled);
3733
+ background: var(---decidables-slider-background-color);
3671
3734
  box-shadow: none;
3672
3735
  }
3673
3736
 
3674
3737
  input[type=range]:enabled::-webkit-slider-thumb {
3675
- background: var(---color-element-enabled);
3738
+ background: var(---decidables-slider-color);
3676
3739
  box-shadow: var(---shadow-2-rotate);
3677
3740
  }
3678
3741
 
@@ -3703,13 +3766,13 @@ class DecidablesSlider extends DecidablesElement {
3703
3766
 
3704
3767
  /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
3705
3768
  input[type=range]:disabled::-moz-range-thumb {
3706
- background: var(---color-element-disabled);
3769
+ background: var(---decidables-slider-background-color);
3707
3770
  box-shadow: none;
3708
3771
  }
3709
3772
 
3710
3773
  /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
3711
3774
  input[type=range]:enabled::-moz-range-thumb {
3712
- background: var(---color-element-enabled);
3775
+ background: var(---decidables-slider-color);
3713
3776
  box-shadow: var(---shadow-2-rotate);
3714
3777
  }
3715
3778
 
@@ -3746,13 +3809,13 @@ class DecidablesSlider extends DecidablesElement {
3746
3809
 
3747
3810
  /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
3748
3811
  input[type=range]:disabled::-ms-thumb {
3749
- background: var(---color-element-disabled);
3812
+ background: var(---decidables-slider-background-color);
3750
3813
  box-shadow: none;
3751
3814
  }
3752
3815
 
3753
3816
  /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
3754
3817
  input[type=range]:enabled::-ms-thumb {
3755
- background: var(---color-element-enabled);
3818
+ background: var(---decidables-slider-color);
3756
3819
  box-shadow: var(---shadow-2-rotate);
3757
3820
  }
3758
3821
 
@@ -3774,6 +3837,33 @@ class DecidablesSlider extends DecidablesElement {
3774
3837
  :host(.keyboard) input[type=range]:enabled:focus:active::-ms-thumb {
3775
3838
  box-shadow: var(---shadow-8-rotate);
3776
3839
  }
3840
+
3841
+ datalist {
3842
+ position: absolute;
3843
+ left: 2rem;
3844
+ z-index: -1;
3845
+ display: flex;
3846
+
3847
+ flex-direction: column;
3848
+
3849
+ align-items: flex-start;
3850
+ justify-content: space-between;
3851
+
3852
+ height: 4.75rem;
3853
+
3854
+ font-size: 0.75rem;
3855
+ }
3856
+
3857
+ option {
3858
+ padding: 0;
3859
+
3860
+ line-height: 0.8;
3861
+ min-block-size: 0;
3862
+ }
3863
+
3864
+ option::before {
3865
+ content: "– ";
3866
+ }
3777
3867
  `];
3778
3868
  }
3779
3869
  render() {
@@ -3782,9 +3872,15 @@ class DecidablesSlider extends DecidablesElement {
3782
3872
  <slot></slot>
3783
3873
  </label>
3784
3874
  <div class="range">
3785
- <input ?disabled=${this.disabled} type="range" id="slider" min=${o(this.min)} max=${o(this.max)} step=${o(this.step)} .value=${this.value} @change=${this.changed.bind(this)} @input=${this.inputted.bind(this)}>
3875
+ <input ?disabled=${this.disabled} type="range" id="slider" min=${o(this.rangeMin)} max=${o(this.rangeMax)} step=${o(this.rangeStep)} .value=${this.rangeValue} @change=${this.rangeChanged.bind(this)} @input=${this.rangeInputted.bind(this)}>
3876
+ ${this.scale ? x`
3877
+ <datalist id="ticks">
3878
+ <option value=${o(this.rangeMax)} label=${o(this.max)}></option>
3879
+ <option value=${o(this.rangeMin)} label=${o(this.min)}></option>
3880
+ </datalist>
3881
+ ` : x``}
3786
3882
  </div>
3787
- <decidables-spinner ?disabled=${this.disabled} min=${o(this.min)} max=${o(this.max)} step=${o(this.step)} .value=${this.value} @input=${this.inputted.bind(this)}></decidables-spinner>
3883
+ <decidables-spinner ?disabled=${this.disabled} min=${o(this.min)} max=${o(this.max)} step=${o(this.step)} .value=${this.value} @input=${this.spinnerInputted.bind(this)}></decidables-spinner>
3788
3884
  `;
3789
3885
  }
3790
3886
  }
@@ -3993,7 +4089,6 @@ class DecidablesSwitch extends DecidablesElement {
3993
4089
  padding: 0;
3994
4090
  margin: -1px;
3995
4091
  overflow: hidden;
3996
- clip: rect(0 0 0 0);
3997
4092
 
3998
4093
  white-space: nowrap;
3999
4094
 
@@ -4215,7 +4310,6 @@ class DecidablesToggleOption extends DecidablesElement {
4215
4310
  padding: 0;
4216
4311
  margin: -1px;
4217
4312
  overflow: hidden;
4218
- clip: rect(0 0 0 0);
4219
4313
 
4220
4314
  white-space: nowrap;
4221
4315