@webwriter/quiz 1.1.3 → 2.0.0

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.
Files changed (167) hide show
  1. package/.github/workflows/publish.yml +8 -0
  2. package/LICENSE +6 -6
  3. package/README.md +778 -0
  4. package/assets/icons/grip-horizontal.svg +8 -0
  5. package/assets/icons/grip-vertical.svg +8 -0
  6. package/assets/icons/truefalse.svg +6 -0
  7. package/custom-elements.json +2779 -0
  8. package/custom.d.ts +180 -176
  9. package/dist/api/index.d.ts +27 -0
  10. package/dist/api/index.js +40 -0
  11. package/dist/migrate.js +1434 -0
  12. package/dist/widgets/webwriter-choice-item.js +4036 -3895
  13. package/dist/widgets/webwriter-choice.js +2269 -5821
  14. package/dist/widgets/webwriter-gap-item.js +3987 -0
  15. package/dist/widgets/webwriter-gap.js +2908 -0
  16. package/dist/widgets/webwriter-mark.js +4335 -3489
  17. package/dist/widgets/webwriter-order-item.js +4014 -3306
  18. package/dist/widgets/webwriter-order.js +2944 -4386
  19. package/dist/widgets/webwriter-pairing-item.js +1058 -2421
  20. package/dist/widgets/webwriter-pairing.js +2993 -4383
  21. package/dist/widgets/webwriter-quiz-hint.js +2469 -0
  22. package/dist/widgets/webwriter-quiz.js +4933 -6099
  23. package/dist/widgets/webwriter-speech.js +6077 -5230
  24. package/dist/widgets/webwriter-task-prompt.js +4775 -2165
  25. package/dist/widgets/webwriter-task.js +2364 -8382
  26. package/dist/widgets/webwriter-text.js +4169 -4337
  27. package/dist/widgets/webwriter-true-false.js +4674 -0
  28. package/editing-config.json +106 -0
  29. package/lit-localize.json +21 -15
  30. package/localization/de.xlf +407 -74
  31. package/localization/es.xlf +407 -69
  32. package/localization/fr.xlf +407 -69
  33. package/localization/generated/de.ts +112 -29
  34. package/localization/generated/es.ts +112 -29
  35. package/localization/generated/fr.ts +112 -29
  36. package/localization/generated/index.d.ts +5 -0
  37. package/localization/generated/index.js +2 -2
  38. package/localization/generated/it.ts +112 -29
  39. package/localization/generated/locale-codes.js +31 -79
  40. package/localization/generated/nl.ts +112 -29
  41. package/localization/it.xlf +407 -69
  42. package/localization/nl.xlf +407 -69
  43. package/package.json +119 -252
  44. package/scripts/apply-translations.mjs +97 -0
  45. package/src/api/index.ts +72 -0
  46. package/src/lib/artboard.ts +686 -0
  47. package/src/lib/draggable-grid.ts +432 -0
  48. package/src/lib/encrypted-property.ts +202 -0
  49. package/src/lib/hint-popup.ts +152 -0
  50. package/src/lib/utils.ts +97 -0
  51. package/src/lib/webwriter-quirks.ts +121 -0
  52. package/src/migrate/index.ts +622 -0
  53. package/src/migrate/legacy-solution.ts +362 -0
  54. package/src/snippets/order.html +9 -8
  55. package/src/widgets/choice/webwriter-choice-item.ts +316 -0
  56. package/src/widgets/choice/webwriter-choice.ts +328 -0
  57. package/src/widgets/choice/webwriter-true-false.ts +113 -0
  58. package/src/widgets/dnd/webwriter-dnd-draggable.ts +28 -0
  59. package/src/widgets/dnd/webwriter-dnd-dropzone.ts +9 -0
  60. package/src/widgets/dnd/webwriter-dnd.ts +36 -0
  61. package/src/widgets/gap/webwriter-gap-item.ts +250 -0
  62. package/src/widgets/gap/webwriter-gap.ts +447 -0
  63. package/src/widgets/order/webwriter-order-item.ts +243 -0
  64. package/src/widgets/order/webwriter-order.ts +282 -0
  65. package/src/widgets/pairing/webwriter-pairing-item.ts +46 -0
  66. package/src/widgets/pairing/webwriter-pairing.ts +934 -0
  67. package/src/widgets/speech/audio-player.ts +325 -0
  68. package/src/widgets/speech/audio-recorder.ts +285 -0
  69. package/src/widgets/speech/waveform.ts +113 -0
  70. package/src/widgets/speech/webwriter-speech.ts +87 -0
  71. package/src/widgets/webwriter-mark.ts +374 -432
  72. package/src/widgets/webwriter-quiz-hint.ts +36 -0
  73. package/src/widgets/webwriter-quiz.ts +320 -282
  74. package/src/widgets/webwriter-task-prompt.ts +49 -24
  75. package/src/widgets/webwriter-task.ts +216 -547
  76. package/src/widgets/webwriter-text.ts +291 -156
  77. package/tsconfig.api.json +12 -0
  78. package/tsconfig.json +8 -7
  79. package/dist/widgets/webwriter-choice.css +0 -444
  80. package/dist/widgets/webwriter-cloze-gap.css +0 -444
  81. package/dist/widgets/webwriter-cloze-gap.js +0 -5866
  82. package/dist/widgets/webwriter-cloze.css +0 -444
  83. package/dist/widgets/webwriter-cloze.js +0 -3786
  84. package/dist/widgets/webwriter-mark.css +0 -444
  85. package/dist/widgets/webwriter-order.css +0 -444
  86. package/dist/widgets/webwriter-pairing-item.css +0 -444
  87. package/dist/widgets/webwriter-pairing.css +0 -444
  88. package/dist/widgets/webwriter-quiz.css +0 -444
  89. package/dist/widgets/webwriter-task-explainer.css +0 -444
  90. package/dist/widgets/webwriter-task-explainer.js +0 -2872
  91. package/dist/widgets/webwriter-task-hint.css +0 -444
  92. package/dist/widgets/webwriter-task-hint.js +0 -2811
  93. package/dist/widgets/webwriter-task.css +0 -444
  94. package/dist/widgets/webwriter-text.css +0 -444
  95. package/localization/bg.xlf +0 -69
  96. package/localization/cs.xlf +0 -69
  97. package/localization/da.xlf +0 -69
  98. package/localization/el.xlf +0 -69
  99. package/localization/et.xlf +0 -69
  100. package/localization/fi.xlf +0 -69
  101. package/localization/generated/bg.ts +0 -30
  102. package/localization/generated/cs.ts +0 -30
  103. package/localization/generated/da.ts +0 -30
  104. package/localization/generated/el.ts +0 -30
  105. package/localization/generated/et.ts +0 -30
  106. package/localization/generated/fi.ts +0 -30
  107. package/localization/generated/hu.ts +0 -30
  108. package/localization/generated/id.ts +0 -30
  109. package/localization/generated/ja.ts +0 -30
  110. package/localization/generated/ko.ts +0 -30
  111. package/localization/generated/lt.ts +0 -30
  112. package/localization/generated/lv.ts +0 -30
  113. package/localization/generated/nb.ts +0 -30
  114. package/localization/generated/pl.ts +0 -30
  115. package/localization/generated/pt-BR.ts +0 -30
  116. package/localization/generated/pt-PT.ts +0 -30
  117. package/localization/generated/ro.ts +0 -30
  118. package/localization/generated/ru.ts +0 -30
  119. package/localization/generated/sk.ts +0 -30
  120. package/localization/generated/sl.ts +0 -30
  121. package/localization/generated/sv.ts +0 -30
  122. package/localization/generated/tr.ts +0 -30
  123. package/localization/generated/uk.ts +0 -30
  124. package/localization/generated/zh-hans.ts +0 -30
  125. package/localization/hu.xlf +0 -69
  126. package/localization/id.xlf +0 -69
  127. package/localization/ja.xlf +0 -69
  128. package/localization/ko.xlf +0 -69
  129. package/localization/lt.xlf +0 -69
  130. package/localization/lv.xlf +0 -69
  131. package/localization/nb.xlf +0 -69
  132. package/localization/pl.xlf +0 -69
  133. package/localization/pt-BR.xlf +0 -69
  134. package/localization/pt-PT.xlf +0 -69
  135. package/localization/ro.xlf +0 -69
  136. package/localization/ru.xlf +0 -69
  137. package/localization/sk.xlf +0 -69
  138. package/localization/sl.xlf +0 -69
  139. package/localization/sv.xlf +0 -69
  140. package/localization/tr.xlf +0 -69
  141. package/localization/uk.xlf +0 -69
  142. package/localization/zh-hans.xlf +0 -69
  143. package/src/lib/combobox.ts +0 -456
  144. package/src/lib/highlighter-fill.svg +0 -6
  145. package/src/snippets/Beispiel-Choice.html +0 -57
  146. package/src/snippets/Beispiel-Mark.html +0 -14
  147. package/src/snippets/Beispiel-Order.html +0 -52
  148. package/src/snippets/Beispiel-Text.html +0 -20
  149. package/src/snippets/blank.html +0 -1
  150. package/src/snippets/choice.html +0 -8
  151. package/src/snippets/cloze.html +0 -4
  152. package/src/snippets/mark.html +0 -4
  153. package/src/snippets/pairing.html +0 -10
  154. package/src/snippets/speech.html +0 -4
  155. package/src/snippets/text.html +0 -4
  156. package/src/snippets/wordsearch.html +0 -4
  157. package/src/widgets/webwriter-choice-item.ts +0 -254
  158. package/src/widgets/webwriter-choice.ts +0 -353
  159. package/src/widgets/webwriter-cloze-gap.ts +0 -216
  160. package/src/widgets/webwriter-cloze.ts +0 -136
  161. package/src/widgets/webwriter-order-item.ts +0 -441
  162. package/src/widgets/webwriter-order.ts +0 -327
  163. package/src/widgets/webwriter-pairing-item.ts +0 -161
  164. package/src/widgets/webwriter-pairing.ts +0 -193
  165. package/src/widgets/webwriter-speech.ts +0 -273
  166. package/src/widgets/webwriter-task-explainer.ts +0 -43
  167. package/src/widgets/webwriter-task-hint.ts +0 -23
@@ -0,0 +1,3987 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
5
+ var __typeError = (msg2) => {
6
+ throw TypeError(msg2);
7
+ };
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
10
+ var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
11
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
12
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
13
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
14
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
15
+ var __runInitializers = (array, flags, self, value) => {
16
+ for (var i7 = 0, fns = array[flags >> 1], n9 = fns && fns.length; i7 < n9; i7++) flags & 1 ? fns[i7].call(self) : value = fns[i7].call(self, value);
17
+ return value;
18
+ };
19
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
20
+ var fn, it, done, ctx, access, k3 = flags & 7, s6 = !!(flags & 8), p5 = !!(flags & 16);
21
+ var j2 = k3 > 3 ? array.length + 1 : k3 ? s6 ? 1 : 2 : 0, key = __decoratorStrings[k3 + 5];
22
+ var initializers = k3 > 3 && (array[j2 - 1] = []), extraInitializers = array[j2] || (array[j2] = []);
23
+ var desc = k3 && (!p5 && !s6 && (target = target.prototype), k3 < 5 && (k3 > 3 || !p5) && __getOwnPropDesc(k3 < 4 ? target : { get [name]() {
24
+ return __privateGet(this, extra);
25
+ }, set [name](x3) {
26
+ return __privateSet(this, extra, x3);
27
+ } }, name));
28
+ k3 ? p5 && k3 < 4 && __name(extra, (k3 > 2 ? "set " : k3 > 1 ? "get " : "") + name) : __name(target, name);
29
+ for (var i7 = decorators.length - 1; i7 >= 0; i7--) {
30
+ ctx = __decoratorContext(k3, name, done = {}, array[3], extraInitializers);
31
+ if (k3) {
32
+ ctx.static = s6, ctx.private = p5, access = ctx.access = { has: p5 ? (x3) => __privateIn(target, x3) : (x3) => name in x3 };
33
+ if (k3 ^ 3) access.get = p5 ? (x3) => (k3 ^ 1 ? __privateGet : __privateMethod)(x3, target, k3 ^ 4 ? extra : desc.get) : (x3) => x3[name];
34
+ if (k3 > 2) access.set = p5 ? (x3, y4) => __privateSet(x3, target, y4, k3 ^ 4 ? extra : desc.set) : (x3, y4) => x3[name] = y4;
35
+ }
36
+ it = (0, decorators[i7])(k3 ? k3 < 4 ? p5 ? extra : desc[key] : k3 > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
37
+ if (k3 ^ 4 || it === void 0) __expectFn(it) && (k3 > 4 ? initializers.unshift(it) : k3 ? p5 ? extra = it : desc[key] = it : target = it);
38
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
39
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
40
+ }
41
+ return k3 || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p5 ? k3 ^ 4 ? extra : desc : target;
42
+ };
43
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
44
+ var __accessCheck = (obj, member, msg2) => member.has(obj) || __typeError("Cannot " + msg2);
45
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
46
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
47
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
48
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
49
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
50
+
51
+ // node_modules/@lit/localize/internal/str-tag.js
52
+ var isStrTagged = (val) => typeof val !== "string" && "strTag" in val;
53
+ var joinStringsAndValues = (strings, values, valueOrder) => {
54
+ let concat = strings[0];
55
+ for (let i7 = 1; i7 < strings.length; i7++) {
56
+ concat += values[valueOrder ? valueOrder[i7 - 1] : i7 - 1];
57
+ concat += strings[i7];
58
+ }
59
+ return concat;
60
+ };
61
+
62
+ // node_modules/@lit/localize/internal/default-msg.js
63
+ var defaultMsg = ((template) => isStrTagged(template) ? joinStringsAndValues(template.strings, template.values) : template);
64
+
65
+ // node_modules/@lit/localize/init/install.js
66
+ var msg = defaultMsg;
67
+
68
+ // node_modules/@lit/localize/internal/deferred.js
69
+ var Deferred = class {
70
+ constructor() {
71
+ this.settled = false;
72
+ this.promise = new Promise((resolve, reject) => {
73
+ this._resolve = resolve;
74
+ this._reject = reject;
75
+ });
76
+ }
77
+ resolve(value) {
78
+ this.settled = true;
79
+ this._resolve(value);
80
+ }
81
+ reject(error) {
82
+ this.settled = true;
83
+ this._reject(error);
84
+ }
85
+ };
86
+
87
+ // node_modules/@lit/localize/internal/fnv1a64.js
88
+ var hl = [];
89
+ for (let i7 = 0; i7 < 256; i7++) {
90
+ hl[i7] = (i7 >> 4 & 15).toString(16) + (i7 & 15).toString(16);
91
+ }
92
+
93
+ // node_modules/@lit/localize/init/runtime.js
94
+ var loading = new Deferred();
95
+ loading.resolve();
96
+
97
+ // node_modules/@lit/reactive-element/css-tag.js
98
+ var t = globalThis;
99
+ var e = t.ShadowRoot && (void 0 === t.ShadyCSS || t.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype;
100
+ var s = Symbol();
101
+ var o = /* @__PURE__ */ new WeakMap();
102
+ var n = class {
103
+ constructor(t7, e10, o11) {
104
+ if (this._$cssResult$ = true, o11 !== s) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
105
+ this.cssText = t7, this.t = e10;
106
+ }
107
+ get styleSheet() {
108
+ let t7 = this.o;
109
+ const s6 = this.t;
110
+ if (e && void 0 === t7) {
111
+ const e10 = void 0 !== s6 && 1 === s6.length;
112
+ e10 && (t7 = o.get(s6)), void 0 === t7 && ((this.o = t7 = new CSSStyleSheet()).replaceSync(this.cssText), e10 && o.set(s6, t7));
113
+ }
114
+ return t7;
115
+ }
116
+ toString() {
117
+ return this.cssText;
118
+ }
119
+ };
120
+ var r = (t7) => new n("string" == typeof t7 ? t7 : t7 + "", void 0, s);
121
+ var i = (t7, ...e10) => {
122
+ const o11 = 1 === t7.length ? t7[0] : e10.reduce((e11, s6, o12) => e11 + ((t8) => {
123
+ if (true === t8._$cssResult$) return t8.cssText;
124
+ if ("number" == typeof t8) return t8;
125
+ throw Error("Value passed to 'css' function must be a 'css' function result: " + t8 + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
126
+ })(s6) + t7[o12 + 1], t7[0]);
127
+ return new n(o11, t7, s);
128
+ };
129
+ var S = (s6, o11) => {
130
+ if (e) s6.adoptedStyleSheets = o11.map((t7) => t7 instanceof CSSStyleSheet ? t7 : t7.styleSheet);
131
+ else for (const e10 of o11) {
132
+ const o12 = document.createElement("style"), n9 = t.litNonce;
133
+ void 0 !== n9 && o12.setAttribute("nonce", n9), o12.textContent = e10.cssText, s6.appendChild(o12);
134
+ }
135
+ };
136
+ var c = e ? (t7) => t7 : (t7) => t7 instanceof CSSStyleSheet ? ((t8) => {
137
+ let e10 = "";
138
+ for (const s6 of t8.cssRules) e10 += s6.cssText;
139
+ return r(e10);
140
+ })(t7) : t7;
141
+
142
+ // node_modules/@lit/reactive-element/reactive-element.js
143
+ var { is: i2, defineProperty: e2, getOwnPropertyDescriptor: h, getOwnPropertyNames: r2, getOwnPropertySymbols: o2, getPrototypeOf: n2 } = Object;
144
+ var a = globalThis;
145
+ var c2 = a.trustedTypes;
146
+ var l = c2 ? c2.emptyScript : "";
147
+ var p = a.reactiveElementPolyfillSupport;
148
+ var d = (t7, s6) => t7;
149
+ var u = { toAttribute(t7, s6) {
150
+ switch (s6) {
151
+ case Boolean:
152
+ t7 = t7 ? l : null;
153
+ break;
154
+ case Object:
155
+ case Array:
156
+ t7 = null == t7 ? t7 : JSON.stringify(t7);
157
+ }
158
+ return t7;
159
+ }, fromAttribute(t7, s6) {
160
+ let i7 = t7;
161
+ switch (s6) {
162
+ case Boolean:
163
+ i7 = null !== t7;
164
+ break;
165
+ case Number:
166
+ i7 = null === t7 ? null : Number(t7);
167
+ break;
168
+ case Object:
169
+ case Array:
170
+ try {
171
+ i7 = JSON.parse(t7);
172
+ } catch (t8) {
173
+ i7 = null;
174
+ }
175
+ }
176
+ return i7;
177
+ } };
178
+ var f = (t7, s6) => !i2(t7, s6);
179
+ var b = { attribute: true, type: String, converter: u, reflect: false, useDefault: false, hasChanged: f };
180
+ Symbol.metadata ??= Symbol("metadata"), a.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
181
+ var y = class extends HTMLElement {
182
+ static addInitializer(t7) {
183
+ this._$Ei(), (this.l ??= []).push(t7);
184
+ }
185
+ static get observedAttributes() {
186
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
187
+ }
188
+ static createProperty(t7, s6 = b) {
189
+ if (s6.state && (s6.attribute = false), this._$Ei(), this.prototype.hasOwnProperty(t7) && ((s6 = Object.create(s6)).wrapped = true), this.elementProperties.set(t7, s6), !s6.noAccessor) {
190
+ const i7 = Symbol(), h6 = this.getPropertyDescriptor(t7, i7, s6);
191
+ void 0 !== h6 && e2(this.prototype, t7, h6);
192
+ }
193
+ }
194
+ static getPropertyDescriptor(t7, s6, i7) {
195
+ const { get: e10, set: r9 } = h(this.prototype, t7) ?? { get() {
196
+ return this[s6];
197
+ }, set(t8) {
198
+ this[s6] = t8;
199
+ } };
200
+ return { get: e10, set(s7) {
201
+ const h6 = e10?.call(this);
202
+ r9?.call(this, s7), this.requestUpdate(t7, h6, i7);
203
+ }, configurable: true, enumerable: true };
204
+ }
205
+ static getPropertyOptions(t7) {
206
+ return this.elementProperties.get(t7) ?? b;
207
+ }
208
+ static _$Ei() {
209
+ if (this.hasOwnProperty(d("elementProperties"))) return;
210
+ const t7 = n2(this);
211
+ t7.finalize(), void 0 !== t7.l && (this.l = [...t7.l]), this.elementProperties = new Map(t7.elementProperties);
212
+ }
213
+ static finalize() {
214
+ if (this.hasOwnProperty(d("finalized"))) return;
215
+ if (this.finalized = true, this._$Ei(), this.hasOwnProperty(d("properties"))) {
216
+ const t8 = this.properties, s6 = [...r2(t8), ...o2(t8)];
217
+ for (const i7 of s6) this.createProperty(i7, t8[i7]);
218
+ }
219
+ const t7 = this[Symbol.metadata];
220
+ if (null !== t7) {
221
+ const s6 = litPropertyMetadata.get(t7);
222
+ if (void 0 !== s6) for (const [t8, i7] of s6) this.elementProperties.set(t8, i7);
223
+ }
224
+ this._$Eh = /* @__PURE__ */ new Map();
225
+ for (const [t8, s6] of this.elementProperties) {
226
+ const i7 = this._$Eu(t8, s6);
227
+ void 0 !== i7 && this._$Eh.set(i7, t8);
228
+ }
229
+ this.elementStyles = this.finalizeStyles(this.styles);
230
+ }
231
+ static finalizeStyles(s6) {
232
+ const i7 = [];
233
+ if (Array.isArray(s6)) {
234
+ const e10 = new Set(s6.flat(1 / 0).reverse());
235
+ for (const s7 of e10) i7.unshift(c(s7));
236
+ } else void 0 !== s6 && i7.push(c(s6));
237
+ return i7;
238
+ }
239
+ static _$Eu(t7, s6) {
240
+ const i7 = s6.attribute;
241
+ return false === i7 ? void 0 : "string" == typeof i7 ? i7 : "string" == typeof t7 ? t7.toLowerCase() : void 0;
242
+ }
243
+ constructor() {
244
+ super(), this._$Ep = void 0, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
245
+ }
246
+ _$Ev() {
247
+ this._$ES = new Promise((t7) => this.enableUpdating = t7), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((t7) => t7(this));
248
+ }
249
+ addController(t7) {
250
+ (this._$EO ??= /* @__PURE__ */ new Set()).add(t7), void 0 !== this.renderRoot && this.isConnected && t7.hostConnected?.();
251
+ }
252
+ removeController(t7) {
253
+ this._$EO?.delete(t7);
254
+ }
255
+ _$E_() {
256
+ const t7 = /* @__PURE__ */ new Map(), s6 = this.constructor.elementProperties;
257
+ for (const i7 of s6.keys()) this.hasOwnProperty(i7) && (t7.set(i7, this[i7]), delete this[i7]);
258
+ t7.size > 0 && (this._$Ep = t7);
259
+ }
260
+ createRenderRoot() {
261
+ const t7 = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
262
+ return S(t7, this.constructor.elementStyles), t7;
263
+ }
264
+ connectedCallback() {
265
+ this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(true), this._$EO?.forEach((t7) => t7.hostConnected?.());
266
+ }
267
+ enableUpdating(t7) {
268
+ }
269
+ disconnectedCallback() {
270
+ this._$EO?.forEach((t7) => t7.hostDisconnected?.());
271
+ }
272
+ attributeChangedCallback(t7, s6, i7) {
273
+ this._$AK(t7, i7);
274
+ }
275
+ _$ET(t7, s6) {
276
+ const i7 = this.constructor.elementProperties.get(t7), e10 = this.constructor._$Eu(t7, i7);
277
+ if (void 0 !== e10 && true === i7.reflect) {
278
+ const h6 = (void 0 !== i7.converter?.toAttribute ? i7.converter : u).toAttribute(s6, i7.type);
279
+ this._$Em = t7, null == h6 ? this.removeAttribute(e10) : this.setAttribute(e10, h6), this._$Em = null;
280
+ }
281
+ }
282
+ _$AK(t7, s6) {
283
+ const i7 = this.constructor, e10 = i7._$Eh.get(t7);
284
+ if (void 0 !== e10 && this._$Em !== e10) {
285
+ const t8 = i7.getPropertyOptions(e10), h6 = "function" == typeof t8.converter ? { fromAttribute: t8.converter } : void 0 !== t8.converter?.fromAttribute ? t8.converter : u;
286
+ this._$Em = e10;
287
+ const r9 = h6.fromAttribute(s6, t8.type);
288
+ this[e10] = r9 ?? this._$Ej?.get(e10) ?? r9, this._$Em = null;
289
+ }
290
+ }
291
+ requestUpdate(t7, s6, i7, e10 = false, h6) {
292
+ if (void 0 !== t7) {
293
+ const r9 = this.constructor;
294
+ if (false === e10 && (h6 = this[t7]), i7 ??= r9.getPropertyOptions(t7), !((i7.hasChanged ?? f)(h6, s6) || i7.useDefault && i7.reflect && h6 === this._$Ej?.get(t7) && !this.hasAttribute(r9._$Eu(t7, i7)))) return;
295
+ this.C(t7, s6, i7);
296
+ }
297
+ false === this.isUpdatePending && (this._$ES = this._$EP());
298
+ }
299
+ C(t7, s6, { useDefault: i7, reflect: e10, wrapped: h6 }, r9) {
300
+ i7 && !(this._$Ej ??= /* @__PURE__ */ new Map()).has(t7) && (this._$Ej.set(t7, r9 ?? s6 ?? this[t7]), true !== h6 || void 0 !== r9) || (this._$AL.has(t7) || (this.hasUpdated || i7 || (s6 = void 0), this._$AL.set(t7, s6)), true === e10 && this._$Em !== t7 && (this._$Eq ??= /* @__PURE__ */ new Set()).add(t7));
301
+ }
302
+ async _$EP() {
303
+ this.isUpdatePending = true;
304
+ try {
305
+ await this._$ES;
306
+ } catch (t8) {
307
+ Promise.reject(t8);
308
+ }
309
+ const t7 = this.scheduleUpdate();
310
+ return null != t7 && await t7, !this.isUpdatePending;
311
+ }
312
+ scheduleUpdate() {
313
+ return this.performUpdate();
314
+ }
315
+ performUpdate() {
316
+ if (!this.isUpdatePending) return;
317
+ if (!this.hasUpdated) {
318
+ if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
319
+ for (const [t9, s7] of this._$Ep) this[t9] = s7;
320
+ this._$Ep = void 0;
321
+ }
322
+ const t8 = this.constructor.elementProperties;
323
+ if (t8.size > 0) for (const [s7, i7] of t8) {
324
+ const { wrapped: t9 } = i7, e10 = this[s7];
325
+ true !== t9 || this._$AL.has(s7) || void 0 === e10 || this.C(s7, void 0, i7, e10);
326
+ }
327
+ }
328
+ let t7 = false;
329
+ const s6 = this._$AL;
330
+ try {
331
+ t7 = this.shouldUpdate(s6), t7 ? (this.willUpdate(s6), this._$EO?.forEach((t8) => t8.hostUpdate?.()), this.update(s6)) : this._$EM();
332
+ } catch (s7) {
333
+ throw t7 = false, this._$EM(), s7;
334
+ }
335
+ t7 && this._$AE(s6);
336
+ }
337
+ willUpdate(t7) {
338
+ }
339
+ _$AE(t7) {
340
+ this._$EO?.forEach((t8) => t8.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t7)), this.updated(t7);
341
+ }
342
+ _$EM() {
343
+ this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = false;
344
+ }
345
+ get updateComplete() {
346
+ return this.getUpdateComplete();
347
+ }
348
+ getUpdateComplete() {
349
+ return this._$ES;
350
+ }
351
+ shouldUpdate(t7) {
352
+ return true;
353
+ }
354
+ update(t7) {
355
+ this._$Eq &&= this._$Eq.forEach((t8) => this._$ET(t8, this[t8])), this._$EM();
356
+ }
357
+ updated(t7) {
358
+ }
359
+ firstUpdated(t7) {
360
+ }
361
+ };
362
+ y.elementStyles = [], y.shadowRootOptions = { mode: "open" }, y[d("elementProperties")] = /* @__PURE__ */ new Map(), y[d("finalized")] = /* @__PURE__ */ new Map(), p?.({ ReactiveElement: y }), (a.reactiveElementVersions ??= []).push("2.1.2");
363
+
364
+ // node_modules/lit-html/lit-html.js
365
+ var t2 = globalThis;
366
+ var i3 = (t7) => t7;
367
+ var s2 = t2.trustedTypes;
368
+ var e3 = s2 ? s2.createPolicy("lit-html", { createHTML: (t7) => t7 }) : void 0;
369
+ var h2 = "$lit$";
370
+ var o3 = `lit$${Math.random().toFixed(9).slice(2)}$`;
371
+ var n3 = "?" + o3;
372
+ var r3 = `<${n3}>`;
373
+ var l2 = document;
374
+ var c3 = () => l2.createComment("");
375
+ var a2 = (t7) => null === t7 || "object" != typeof t7 && "function" != typeof t7;
376
+ var u2 = Array.isArray;
377
+ var d2 = (t7) => u2(t7) || "function" == typeof t7?.[Symbol.iterator];
378
+ var f2 = "[ \n\f\r]";
379
+ var v = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g;
380
+ var _ = /-->/g;
381
+ var m = />/g;
382
+ var p2 = RegExp(`>|${f2}(?:([^\\s"'>=/]+)(${f2}*=${f2}*(?:[^
383
+ \f\r"'\`<>=]|("|')|))|$)`, "g");
384
+ var g = /'/g;
385
+ var $ = /"/g;
386
+ var y2 = /^(?:script|style|textarea|title)$/i;
387
+ var x = (t7) => (i7, ...s6) => ({ _$litType$: t7, strings: i7, values: s6 });
388
+ var b2 = x(1);
389
+ var w = x(2);
390
+ var T = x(3);
391
+ var E = Symbol.for("lit-noChange");
392
+ var A = Symbol.for("lit-nothing");
393
+ var C = /* @__PURE__ */ new WeakMap();
394
+ var P = l2.createTreeWalker(l2, 129);
395
+ function V(t7, i7) {
396
+ if (!u2(t7) || !t7.hasOwnProperty("raw")) throw Error("invalid template strings array");
397
+ return void 0 !== e3 ? e3.createHTML(i7) : i7;
398
+ }
399
+ var N = (t7, i7) => {
400
+ const s6 = t7.length - 1, e10 = [];
401
+ let n9, l7 = 2 === i7 ? "<svg>" : 3 === i7 ? "<math>" : "", c7 = v;
402
+ for (let i8 = 0; i8 < s6; i8++) {
403
+ const s7 = t7[i8];
404
+ let a5, u5, d4 = -1, f5 = 0;
405
+ for (; f5 < s7.length && (c7.lastIndex = f5, u5 = c7.exec(s7), null !== u5); ) f5 = c7.lastIndex, c7 === v ? "!--" === u5[1] ? c7 = _ : void 0 !== u5[1] ? c7 = m : void 0 !== u5[2] ? (y2.test(u5[2]) && (n9 = RegExp("</" + u5[2], "g")), c7 = p2) : void 0 !== u5[3] && (c7 = p2) : c7 === p2 ? ">" === u5[0] ? (c7 = n9 ?? v, d4 = -1) : void 0 === u5[1] ? d4 = -2 : (d4 = c7.lastIndex - u5[2].length, a5 = u5[1], c7 = void 0 === u5[3] ? p2 : '"' === u5[3] ? $ : g) : c7 === $ || c7 === g ? c7 = p2 : c7 === _ || c7 === m ? c7 = v : (c7 = p2, n9 = void 0);
406
+ const x3 = c7 === p2 && t7[i8 + 1].startsWith("/>") ? " " : "";
407
+ l7 += c7 === v ? s7 + r3 : d4 >= 0 ? (e10.push(a5), s7.slice(0, d4) + h2 + s7.slice(d4) + o3 + x3) : s7 + o3 + (-2 === d4 ? i8 : x3);
408
+ }
409
+ return [V(t7, l7 + (t7[s6] || "<?>") + (2 === i7 ? "</svg>" : 3 === i7 ? "</math>" : "")), e10];
410
+ };
411
+ var S2 = class _S2 {
412
+ constructor({ strings: t7, _$litType$: i7 }, e10) {
413
+ let r9;
414
+ this.parts = [];
415
+ let l7 = 0, a5 = 0;
416
+ const u5 = t7.length - 1, d4 = this.parts, [f5, v3] = N(t7, i7);
417
+ if (this.el = _S2.createElement(f5, e10), P.currentNode = this.el.content, 2 === i7 || 3 === i7) {
418
+ const t8 = this.el.content.firstChild;
419
+ t8.replaceWith(...t8.childNodes);
420
+ }
421
+ for (; null !== (r9 = P.nextNode()) && d4.length < u5; ) {
422
+ if (1 === r9.nodeType) {
423
+ if (r9.hasAttributes()) for (const t8 of r9.getAttributeNames()) if (t8.endsWith(h2)) {
424
+ const i8 = v3[a5++], s6 = r9.getAttribute(t8).split(o3), e11 = /([.?@])?(.*)/.exec(i8);
425
+ d4.push({ type: 1, index: l7, name: e11[2], strings: s6, ctor: "." === e11[1] ? I : "?" === e11[1] ? L : "@" === e11[1] ? z : H }), r9.removeAttribute(t8);
426
+ } else t8.startsWith(o3) && (d4.push({ type: 6, index: l7 }), r9.removeAttribute(t8));
427
+ if (y2.test(r9.tagName)) {
428
+ const t8 = r9.textContent.split(o3), i8 = t8.length - 1;
429
+ if (i8 > 0) {
430
+ r9.textContent = s2 ? s2.emptyScript : "";
431
+ for (let s6 = 0; s6 < i8; s6++) r9.append(t8[s6], c3()), P.nextNode(), d4.push({ type: 2, index: ++l7 });
432
+ r9.append(t8[i8], c3());
433
+ }
434
+ }
435
+ } else if (8 === r9.nodeType) if (r9.data === n3) d4.push({ type: 2, index: l7 });
436
+ else {
437
+ let t8 = -1;
438
+ for (; -1 !== (t8 = r9.data.indexOf(o3, t8 + 1)); ) d4.push({ type: 7, index: l7 }), t8 += o3.length - 1;
439
+ }
440
+ l7++;
441
+ }
442
+ }
443
+ static createElement(t7, i7) {
444
+ const s6 = l2.createElement("template");
445
+ return s6.innerHTML = t7, s6;
446
+ }
447
+ };
448
+ function M(t7, i7, s6 = t7, e10) {
449
+ if (i7 === E) return i7;
450
+ let h6 = void 0 !== e10 ? s6._$Co?.[e10] : s6._$Cl;
451
+ const o11 = a2(i7) ? void 0 : i7._$litDirective$;
452
+ return h6?.constructor !== o11 && (h6?._$AO?.(false), void 0 === o11 ? h6 = void 0 : (h6 = new o11(t7), h6._$AT(t7, s6, e10)), void 0 !== e10 ? (s6._$Co ??= [])[e10] = h6 : s6._$Cl = h6), void 0 !== h6 && (i7 = M(t7, h6._$AS(t7, i7.values), h6, e10)), i7;
453
+ }
454
+ var R = class {
455
+ constructor(t7, i7) {
456
+ this._$AV = [], this._$AN = void 0, this._$AD = t7, this._$AM = i7;
457
+ }
458
+ get parentNode() {
459
+ return this._$AM.parentNode;
460
+ }
461
+ get _$AU() {
462
+ return this._$AM._$AU;
463
+ }
464
+ u(t7) {
465
+ const { el: { content: i7 }, parts: s6 } = this._$AD, e10 = (t7?.creationScope ?? l2).importNode(i7, true);
466
+ P.currentNode = e10;
467
+ let h6 = P.nextNode(), o11 = 0, n9 = 0, r9 = s6[0];
468
+ for (; void 0 !== r9; ) {
469
+ if (o11 === r9.index) {
470
+ let i8;
471
+ 2 === r9.type ? i8 = new k(h6, h6.nextSibling, this, t7) : 1 === r9.type ? i8 = new r9.ctor(h6, r9.name, r9.strings, this, t7) : 6 === r9.type && (i8 = new Z(h6, this, t7)), this._$AV.push(i8), r9 = s6[++n9];
472
+ }
473
+ o11 !== r9?.index && (h6 = P.nextNode(), o11++);
474
+ }
475
+ return P.currentNode = l2, e10;
476
+ }
477
+ p(t7) {
478
+ let i7 = 0;
479
+ for (const s6 of this._$AV) void 0 !== s6 && (void 0 !== s6.strings ? (s6._$AI(t7, s6, i7), i7 += s6.strings.length - 2) : s6._$AI(t7[i7])), i7++;
480
+ }
481
+ };
482
+ var k = class _k2 {
483
+ get _$AU() {
484
+ return this._$AM?._$AU ?? this._$Cv;
485
+ }
486
+ constructor(t7, i7, s6, e10) {
487
+ this.type = 2, this._$AH = A, this._$AN = void 0, this._$AA = t7, this._$AB = i7, this._$AM = s6, this.options = e10, this._$Cv = e10?.isConnected ?? true;
488
+ }
489
+ get parentNode() {
490
+ let t7 = this._$AA.parentNode;
491
+ const i7 = this._$AM;
492
+ return void 0 !== i7 && 11 === t7?.nodeType && (t7 = i7.parentNode), t7;
493
+ }
494
+ get startNode() {
495
+ return this._$AA;
496
+ }
497
+ get endNode() {
498
+ return this._$AB;
499
+ }
500
+ _$AI(t7, i7 = this) {
501
+ t7 = M(this, t7, i7), a2(t7) ? t7 === A || null == t7 || "" === t7 ? (this._$AH !== A && this._$AR(), this._$AH = A) : t7 !== this._$AH && t7 !== E && this._(t7) : void 0 !== t7._$litType$ ? this.$(t7) : void 0 !== t7.nodeType ? this.T(t7) : d2(t7) ? this.k(t7) : this._(t7);
502
+ }
503
+ O(t7) {
504
+ return this._$AA.parentNode.insertBefore(t7, this._$AB);
505
+ }
506
+ T(t7) {
507
+ this._$AH !== t7 && (this._$AR(), this._$AH = this.O(t7));
508
+ }
509
+ _(t7) {
510
+ this._$AH !== A && a2(this._$AH) ? this._$AA.nextSibling.data = t7 : this.T(l2.createTextNode(t7)), this._$AH = t7;
511
+ }
512
+ $(t7) {
513
+ const { values: i7, _$litType$: s6 } = t7, e10 = "number" == typeof s6 ? this._$AC(t7) : (void 0 === s6.el && (s6.el = S2.createElement(V(s6.h, s6.h[0]), this.options)), s6);
514
+ if (this._$AH?._$AD === e10) this._$AH.p(i7);
515
+ else {
516
+ const t8 = new R(e10, this), s7 = t8.u(this.options);
517
+ t8.p(i7), this.T(s7), this._$AH = t8;
518
+ }
519
+ }
520
+ _$AC(t7) {
521
+ let i7 = C.get(t7.strings);
522
+ return void 0 === i7 && C.set(t7.strings, i7 = new S2(t7)), i7;
523
+ }
524
+ k(t7) {
525
+ u2(this._$AH) || (this._$AH = [], this._$AR());
526
+ const i7 = this._$AH;
527
+ let s6, e10 = 0;
528
+ for (const h6 of t7) e10 === i7.length ? i7.push(s6 = new _k2(this.O(c3()), this.O(c3()), this, this.options)) : s6 = i7[e10], s6._$AI(h6), e10++;
529
+ e10 < i7.length && (this._$AR(s6 && s6._$AB.nextSibling, e10), i7.length = e10);
530
+ }
531
+ _$AR(t7 = this._$AA.nextSibling, s6) {
532
+ for (this._$AP?.(false, true, s6); t7 !== this._$AB; ) {
533
+ const s7 = i3(t7).nextSibling;
534
+ i3(t7).remove(), t7 = s7;
535
+ }
536
+ }
537
+ setConnected(t7) {
538
+ void 0 === this._$AM && (this._$Cv = t7, this._$AP?.(t7));
539
+ }
540
+ };
541
+ var H = class {
542
+ get tagName() {
543
+ return this.element.tagName;
544
+ }
545
+ get _$AU() {
546
+ return this._$AM._$AU;
547
+ }
548
+ constructor(t7, i7, s6, e10, h6) {
549
+ this.type = 1, this._$AH = A, this._$AN = void 0, this.element = t7, this.name = i7, this._$AM = e10, this.options = h6, s6.length > 2 || "" !== s6[0] || "" !== s6[1] ? (this._$AH = Array(s6.length - 1).fill(new String()), this.strings = s6) : this._$AH = A;
550
+ }
551
+ _$AI(t7, i7 = this, s6, e10) {
552
+ const h6 = this.strings;
553
+ let o11 = false;
554
+ if (void 0 === h6) t7 = M(this, t7, i7, 0), o11 = !a2(t7) || t7 !== this._$AH && t7 !== E, o11 && (this._$AH = t7);
555
+ else {
556
+ const e11 = t7;
557
+ let n9, r9;
558
+ for (t7 = h6[0], n9 = 0; n9 < h6.length - 1; n9++) r9 = M(this, e11[s6 + n9], i7, n9), r9 === E && (r9 = this._$AH[n9]), o11 ||= !a2(r9) || r9 !== this._$AH[n9], r9 === A ? t7 = A : t7 !== A && (t7 += (r9 ?? "") + h6[n9 + 1]), this._$AH[n9] = r9;
559
+ }
560
+ o11 && !e10 && this.j(t7);
561
+ }
562
+ j(t7) {
563
+ t7 === A ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t7 ?? "");
564
+ }
565
+ };
566
+ var I = class extends H {
567
+ constructor() {
568
+ super(...arguments), this.type = 3;
569
+ }
570
+ j(t7) {
571
+ this.element[this.name] = t7 === A ? void 0 : t7;
572
+ }
573
+ };
574
+ var L = class extends H {
575
+ constructor() {
576
+ super(...arguments), this.type = 4;
577
+ }
578
+ j(t7) {
579
+ this.element.toggleAttribute(this.name, !!t7 && t7 !== A);
580
+ }
581
+ };
582
+ var z = class extends H {
583
+ constructor(t7, i7, s6, e10, h6) {
584
+ super(t7, i7, s6, e10, h6), this.type = 5;
585
+ }
586
+ _$AI(t7, i7 = this) {
587
+ if ((t7 = M(this, t7, i7, 0) ?? A) === E) return;
588
+ const s6 = this._$AH, e10 = t7 === A && s6 !== A || t7.capture !== s6.capture || t7.once !== s6.once || t7.passive !== s6.passive, h6 = t7 !== A && (s6 === A || e10);
589
+ e10 && this.element.removeEventListener(this.name, this, s6), h6 && this.element.addEventListener(this.name, this, t7), this._$AH = t7;
590
+ }
591
+ handleEvent(t7) {
592
+ "function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t7) : this._$AH.handleEvent(t7);
593
+ }
594
+ };
595
+ var Z = class {
596
+ constructor(t7, i7, s6) {
597
+ this.element = t7, this.type = 6, this._$AN = void 0, this._$AM = i7, this.options = s6;
598
+ }
599
+ get _$AU() {
600
+ return this._$AM._$AU;
601
+ }
602
+ _$AI(t7) {
603
+ M(this, t7);
604
+ }
605
+ };
606
+ var j = { M: h2, P: o3, A: n3, C: 1, L: N, R, D: d2, V: M, I: k, H, N: L, U: z, B: I, F: Z };
607
+ var B = t2.litHtmlPolyfillSupport;
608
+ B?.(S2, k), (t2.litHtmlVersions ??= []).push("3.3.3");
609
+ var D = (t7, i7, s6) => {
610
+ const e10 = s6?.renderBefore ?? i7;
611
+ let h6 = e10._$litPart$;
612
+ if (void 0 === h6) {
613
+ const t8 = s6?.renderBefore ?? null;
614
+ e10._$litPart$ = h6 = new k(i7.insertBefore(c3(), t8), t8, void 0, s6 ?? {});
615
+ }
616
+ return h6._$AI(t7), h6;
617
+ };
618
+
619
+ // node_modules/lit-element/lit-element.js
620
+ var s3 = globalThis;
621
+ var i4 = class extends y {
622
+ constructor() {
623
+ super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
624
+ }
625
+ createRenderRoot() {
626
+ const t7 = super.createRenderRoot();
627
+ return this.renderOptions.renderBefore ??= t7.firstChild, t7;
628
+ }
629
+ update(t7) {
630
+ const r9 = this.render();
631
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t7), this._$Do = D(r9, this.renderRoot, this.renderOptions);
632
+ }
633
+ connectedCallback() {
634
+ super.connectedCallback(), this._$Do?.setConnected(true);
635
+ }
636
+ disconnectedCallback() {
637
+ super.disconnectedCallback(), this._$Do?.setConnected(false);
638
+ }
639
+ render() {
640
+ return E;
641
+ }
642
+ };
643
+ i4._$litElement$ = true, i4["finalized"] = true, s3.litElementHydrateSupport?.({ LitElement: i4 });
644
+ var o4 = s3.litElementPolyfillSupport;
645
+ o4?.({ LitElement: i4 });
646
+ (s3.litElementVersions ??= []).push("4.2.2");
647
+
648
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.6I2T3DLI.js
649
+ var icon_button_styles_default = i`
650
+ :host {
651
+ display: inline-block;
652
+ color: var(--sl-color-neutral-600);
653
+ }
654
+
655
+ .icon-button {
656
+ flex: 0 0 auto;
657
+ display: flex;
658
+ align-items: center;
659
+ background: none;
660
+ border: none;
661
+ border-radius: var(--sl-border-radius-medium);
662
+ font-size: inherit;
663
+ color: inherit;
664
+ padding: var(--sl-spacing-x-small);
665
+ cursor: pointer;
666
+ transition: var(--sl-transition-x-fast) color;
667
+ -webkit-appearance: none;
668
+ }
669
+
670
+ .icon-button:hover:not(.icon-button--disabled),
671
+ .icon-button:focus-visible:not(.icon-button--disabled) {
672
+ color: var(--sl-color-primary-600);
673
+ }
674
+
675
+ .icon-button:active:not(.icon-button--disabled) {
676
+ color: var(--sl-color-primary-700);
677
+ }
678
+
679
+ .icon-button:focus {
680
+ outline: none;
681
+ }
682
+
683
+ .icon-button--disabled {
684
+ opacity: 0.5;
685
+ cursor: not-allowed;
686
+ }
687
+
688
+ .icon-button:focus-visible {
689
+ outline: var(--sl-focus-ring);
690
+ outline-offset: var(--sl-focus-ring-offset);
691
+ }
692
+
693
+ .icon-button__icon {
694
+ pointer-events: none;
695
+ }
696
+ `;
697
+
698
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3Y6SB6QS.js
699
+ var basePath = "";
700
+ function setBasePath(path) {
701
+ basePath = path;
702
+ }
703
+ function getBasePath(subpath = "") {
704
+ if (!basePath) {
705
+ const scripts = [...document.getElementsByTagName("script")];
706
+ const configScript = scripts.find((script) => script.hasAttribute("data-shoelace"));
707
+ if (configScript) {
708
+ setBasePath(configScript.getAttribute("data-shoelace"));
709
+ } else {
710
+ const fallbackScript = scripts.find((s6) => {
711
+ return /shoelace(\.min)?\.js($|\?)/.test(s6.src) || /shoelace-autoloader(\.min)?\.js($|\?)/.test(s6.src);
712
+ });
713
+ let path = "";
714
+ if (fallbackScript) {
715
+ path = fallbackScript.getAttribute("src");
716
+ }
717
+ setBasePath(path.split("/").slice(0, -1).join("/"));
718
+ }
719
+ }
720
+ return basePath.replace(/\/$/, "") + (subpath ? `/${subpath.replace(/^\//, "")}` : ``);
721
+ }
722
+
723
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.P7ZG6EMR.js
724
+ var library = {
725
+ name: "default",
726
+ resolver: (name) => getBasePath(`assets/icons/${name}.svg`)
727
+ };
728
+ var library_default_default = library;
729
+
730
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3TFKS637.js
731
+ var icons = {
732
+ caret: `
733
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
734
+ <polyline points="6 9 12 15 18 9"></polyline>
735
+ </svg>
736
+ `,
737
+ check: `
738
+ <svg part="checked-icon" class="checkbox__icon" viewBox="0 0 16 16">
739
+ <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
740
+ <g stroke="currentColor">
741
+ <g transform="translate(3.428571, 3.428571)">
742
+ <path d="M0,5.71428571 L3.42857143,9.14285714"></path>
743
+ <path d="M9.14285714,0 L3.42857143,9.14285714"></path>
744
+ </g>
745
+ </g>
746
+ </g>
747
+ </svg>
748
+ `,
749
+ "chevron-down": `
750
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-down" viewBox="0 0 16 16">
751
+ <path fill-rule="evenodd" d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"/>
752
+ </svg>
753
+ `,
754
+ "chevron-left": `
755
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-left" viewBox="0 0 16 16">
756
+ <path fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z"/>
757
+ </svg>
758
+ `,
759
+ "chevron-right": `
760
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
761
+ <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
762
+ </svg>
763
+ `,
764
+ copy: `
765
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-copy" viewBox="0 0 16 16">
766
+ <path fill-rule="evenodd" d="M4 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V2Zm2-1a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H6ZM2 5a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1v-1h1v1a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h1v1H2Z"/>
767
+ </svg>
768
+ `,
769
+ eye: `
770
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-eye" viewBox="0 0 16 16">
771
+ <path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
772
+ <path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
773
+ </svg>
774
+ `,
775
+ "eye-slash": `
776
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-eye-slash" viewBox="0 0 16 16">
777
+ <path d="M13.359 11.238C15.06 9.72 16 8 16 8s-3-5.5-8-5.5a7.028 7.028 0 0 0-2.79.588l.77.771A5.944 5.944 0 0 1 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.134 13.134 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755-.165.165-.337.328-.517.486l.708.709z"/>
778
+ <path d="M11.297 9.176a3.5 3.5 0 0 0-4.474-4.474l.823.823a2.5 2.5 0 0 1 2.829 2.829l.822.822zm-2.943 1.299.822.822a3.5 3.5 0 0 1-4.474-4.474l.823.823a2.5 2.5 0 0 0 2.829 2.829z"/>
779
+ <path d="M3.35 5.47c-.18.16-.353.322-.518.487A13.134 13.134 0 0 0 1.172 8l.195.288c.335.48.83 1.12 1.465 1.755C4.121 11.332 5.881 12.5 8 12.5c.716 0 1.39-.133 2.02-.36l.77.772A7.029 7.029 0 0 1 8 13.5C3 13.5 0 8 0 8s.939-1.721 2.641-3.238l.708.709zm10.296 8.884-12-12 .708-.708 12 12-.708.708z"/>
780
+ </svg>
781
+ `,
782
+ eyedropper: `
783
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-eyedropper" viewBox="0 0 16 16">
784
+ <path d="M13.354.646a1.207 1.207 0 0 0-1.708 0L8.5 3.793l-.646-.647a.5.5 0 1 0-.708.708L8.293 5l-7.147 7.146A.5.5 0 0 0 1 12.5v1.793l-.854.853a.5.5 0 1 0 .708.707L1.707 15H3.5a.5.5 0 0 0 .354-.146L11 7.707l1.146 1.147a.5.5 0 0 0 .708-.708l-.647-.646 3.147-3.146a1.207 1.207 0 0 0 0-1.708l-2-2zM2 12.707l7-7L10.293 7l-7 7H2v-1.293z"></path>
785
+ </svg>
786
+ `,
787
+ "grip-vertical": `
788
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-grip-vertical" viewBox="0 0 16 16">
789
+ <path d="M7 2a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zM7 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zM7 8a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm-3 3a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm-3 3a1 1 0 1 1-2 0 1 1 0 0 1 2 0zm3 0a1 1 0 1 1-2 0 1 1 0 0 1 2 0z"></path>
790
+ </svg>
791
+ `,
792
+ indeterminate: `
793
+ <svg part="indeterminate-icon" class="checkbox__icon" viewBox="0 0 16 16">
794
+ <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
795
+ <g stroke="currentColor" stroke-width="2">
796
+ <g transform="translate(2.285714, 6.857143)">
797
+ <path d="M10.2857143,1.14285714 L1.14285714,1.14285714"></path>
798
+ </g>
799
+ </g>
800
+ </g>
801
+ </svg>
802
+ `,
803
+ "person-fill": `
804
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-person-fill" viewBox="0 0 16 16">
805
+ <path d="M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6z"/>
806
+ </svg>
807
+ `,
808
+ "play-fill": `
809
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-play-fill" viewBox="0 0 16 16">
810
+ <path d="m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z"></path>
811
+ </svg>
812
+ `,
813
+ "pause-fill": `
814
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-pause-fill" viewBox="0 0 16 16">
815
+ <path d="M5.5 3.5A1.5 1.5 0 0 1 7 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5zm5 0A1.5 1.5 0 0 1 12 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5z"></path>
816
+ </svg>
817
+ `,
818
+ radio: `
819
+ <svg part="checked-icon" class="radio__icon" viewBox="0 0 16 16">
820
+ <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
821
+ <g fill="currentColor">
822
+ <circle cx="8" cy="8" r="3.42857143"></circle>
823
+ </g>
824
+ </g>
825
+ </svg>
826
+ `,
827
+ "star-fill": `
828
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-star-fill" viewBox="0 0 16 16">
829
+ <path d="M3.612 15.443c-.386.198-.824-.149-.746-.592l.83-4.73L.173 6.765c-.329-.314-.158-.888.283-.95l4.898-.696L7.538.792c.197-.39.73-.39.927 0l2.184 4.327 4.898.696c.441.062.612.636.282.95l-3.522 3.356.83 4.73c.078.443-.36.79-.746.592L8 13.187l-4.389 2.256z"/>
830
+ </svg>
831
+ `,
832
+ "x-lg": `
833
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x-lg" viewBox="0 0 16 16">
834
+ <path d="M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z"/>
835
+ </svg>
836
+ `,
837
+ "x-circle-fill": `
838
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x-circle-fill" viewBox="0 0 16 16">
839
+ <path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM5.354 4.646a.5.5 0 1 0-.708.708L7.293 8l-2.647 2.646a.5.5 0 0 0 .708.708L8 8.707l2.646 2.647a.5.5 0 0 0 .708-.708L8.707 8l2.647-2.646a.5.5 0 0 0-.708-.708L8 7.293 5.354 4.646z"></path>
840
+ </svg>
841
+ `
842
+ };
843
+ var systemLibrary = {
844
+ name: "system",
845
+ resolver: (name) => {
846
+ if (name in icons) {
847
+ return `data:image/svg+xml,${encodeURIComponent(icons[name])}`;
848
+ }
849
+ return "";
850
+ }
851
+ };
852
+ var library_system_default = systemLibrary;
853
+
854
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.ZL53POKZ.js
855
+ var registry = [library_default_default, library_system_default];
856
+ var watchedIcons = [];
857
+ function watchIcon(icon) {
858
+ watchedIcons.push(icon);
859
+ }
860
+ function unwatchIcon(icon) {
861
+ watchedIcons = watchedIcons.filter((el) => el !== icon);
862
+ }
863
+ function getIconLibrary(name) {
864
+ return registry.find((lib) => lib.name === name);
865
+ }
866
+
867
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.QLXRCYS4.js
868
+ var icon_styles_default = i`
869
+ :host {
870
+ display: inline-block;
871
+ width: 1em;
872
+ height: 1em;
873
+ box-sizing: content-box !important;
874
+ }
875
+
876
+ svg {
877
+ display: block;
878
+ height: 100%;
879
+ width: 100%;
880
+ }
881
+ `;
882
+
883
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.KAW7D32O.js
884
+ var __defProp2 = Object.defineProperty;
885
+ var __defProps = Object.defineProperties;
886
+ var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
887
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
888
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
889
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
890
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
891
+ var __typeError2 = (msg2) => {
892
+ throw TypeError(msg2);
893
+ };
894
+ var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
895
+ var __spreadValues = (a5, b4) => {
896
+ for (var prop in b4 || (b4 = {}))
897
+ if (__hasOwnProp.call(b4, prop))
898
+ __defNormalProp2(a5, prop, b4[prop]);
899
+ if (__getOwnPropSymbols)
900
+ for (var prop of __getOwnPropSymbols(b4)) {
901
+ if (__propIsEnum.call(b4, prop))
902
+ __defNormalProp2(a5, prop, b4[prop]);
903
+ }
904
+ return a5;
905
+ };
906
+ var __spreadProps = (a5, b4) => __defProps(a5, __getOwnPropDescs(b4));
907
+ var __decorateClass = (decorators, target, key, kind) => {
908
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc2(target, key) : target;
909
+ for (var i7 = decorators.length - 1, decorator; i7 >= 0; i7--)
910
+ if (decorator = decorators[i7])
911
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
912
+ if (kind && result) __defProp2(target, key, result);
913
+ return result;
914
+ };
915
+ var __accessCheck2 = (obj, member, msg2) => member.has(obj) || __typeError2("Cannot " + msg2);
916
+ var __privateGet2 = (obj, member, getter) => (__accessCheck2(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
917
+ var __privateAdd2 = (obj, member, value) => member.has(obj) ? __typeError2("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
918
+ var __privateSet2 = (obj, member, value, setter) => (__accessCheck2(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
919
+
920
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.GMYPQTFK.js
921
+ function watch(propertyName, options) {
922
+ const resolvedOptions = __spreadValues({
923
+ waitUntilFirstUpdate: false
924
+ }, options);
925
+ return (proto, decoratedFnName) => {
926
+ const { update: update2 } = proto;
927
+ const watchedProperties = Array.isArray(propertyName) ? propertyName : [propertyName];
928
+ proto.update = function(changedProps) {
929
+ watchedProperties.forEach((property) => {
930
+ const key = property;
931
+ if (changedProps.has(key)) {
932
+ const oldValue = changedProps.get(key);
933
+ const newValue = this[key];
934
+ if (oldValue !== newValue) {
935
+ if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {
936
+ this[decoratedFnName](oldValue, newValue);
937
+ }
938
+ }
939
+ }
940
+ });
941
+ update2.call(this, changedProps);
942
+ };
943
+ };
944
+ }
945
+
946
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.TUVJKY7S.js
947
+ var component_styles_default = i`
948
+ :host {
949
+ box-sizing: border-box;
950
+ }
951
+
952
+ :host *,
953
+ :host *::before,
954
+ :host *::after {
955
+ box-sizing: inherit;
956
+ }
957
+
958
+ [hidden] {
959
+ display: none !important;
960
+ }
961
+ `;
962
+
963
+ // node_modules/@lit/reactive-element/decorators/custom-element.js
964
+ var t3 = (t7) => (e10, o11) => {
965
+ void 0 !== o11 ? o11.addInitializer(() => {
966
+ customElements.define(t7, e10);
967
+ }) : customElements.define(t7, e10);
968
+ };
969
+
970
+ // node_modules/@lit/reactive-element/decorators/property.js
971
+ var o5 = { attribute: true, type: String, converter: u, reflect: false, hasChanged: f };
972
+ var r4 = (t7 = o5, e10, r9) => {
973
+ const { kind: n9, metadata: i7 } = r9;
974
+ let s6 = globalThis.litPropertyMetadata.get(i7);
975
+ if (void 0 === s6 && globalThis.litPropertyMetadata.set(i7, s6 = /* @__PURE__ */ new Map()), "setter" === n9 && ((t7 = Object.create(t7)).wrapped = true), s6.set(r9.name, t7), "accessor" === n9) {
976
+ const { name: o11 } = r9;
977
+ return { set(r10) {
978
+ const n10 = e10.get.call(this);
979
+ e10.set.call(this, r10), this.requestUpdate(o11, n10, t7, true, r10);
980
+ }, init(e11) {
981
+ return void 0 !== e11 && this.C(o11, void 0, t7, e11), e11;
982
+ } };
983
+ }
984
+ if ("setter" === n9) {
985
+ const { name: o11 } = r9;
986
+ return function(r10) {
987
+ const n10 = this[o11];
988
+ e10.call(this, r10), this.requestUpdate(o11, n10, t7, true, r10);
989
+ };
990
+ }
991
+ throw Error("Unsupported decorator location: " + n9);
992
+ };
993
+ function n4(t7) {
994
+ return (e10, o11) => "object" == typeof o11 ? r4(t7, e10, o11) : ((t8, e11, o12) => {
995
+ const r9 = e11.hasOwnProperty(o12);
996
+ return e11.constructor.createProperty(o12, t8), r9 ? Object.getOwnPropertyDescriptor(e11, o12) : void 0;
997
+ })(t7, e10, o11);
998
+ }
999
+
1000
+ // node_modules/@lit/reactive-element/decorators/state.js
1001
+ function r5(r9) {
1002
+ return n4({ ...r9, state: true, attribute: false });
1003
+ }
1004
+
1005
+ // node_modules/@lit/reactive-element/decorators/base.js
1006
+ var e4 = (e10, t7, c7) => (c7.configurable = true, c7.enumerable = true, Reflect.decorate && "object" != typeof t7 && Object.defineProperty(e10, t7, c7), c7);
1007
+
1008
+ // node_modules/@lit/reactive-element/decorators/query.js
1009
+ function e5(e10, r9) {
1010
+ return (n9, s6, i7) => {
1011
+ const o11 = (t7) => t7.renderRoot?.querySelector(e10) ?? null;
1012
+ if (r9) {
1013
+ const { get: e11, set: r10 } = "object" == typeof s6 ? n9 : i7 ?? (() => {
1014
+ const t7 = Symbol();
1015
+ return { get() {
1016
+ return this[t7];
1017
+ }, set(e12) {
1018
+ this[t7] = e12;
1019
+ } };
1020
+ })();
1021
+ return e4(n9, s6, { get() {
1022
+ let t7 = e11.call(this);
1023
+ return void 0 === t7 && (t7 = o11(this), (null !== t7 || this.hasUpdated) && r10.call(this, t7)), t7;
1024
+ } });
1025
+ }
1026
+ return e4(n9, s6, { get() {
1027
+ return o11(this);
1028
+ } });
1029
+ };
1030
+ }
1031
+
1032
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.4TUIT776.js
1033
+ var _hasRecordedInitialProperties;
1034
+ var ShoelaceElement = class extends i4 {
1035
+ constructor() {
1036
+ super();
1037
+ __privateAdd2(this, _hasRecordedInitialProperties, false);
1038
+ this.initialReflectedProperties = /* @__PURE__ */ new Map();
1039
+ Object.entries(this.constructor.dependencies).forEach(([name, component]) => {
1040
+ this.constructor.define(name, component);
1041
+ });
1042
+ }
1043
+ emit(name, options) {
1044
+ const event = new CustomEvent(name, __spreadValues({
1045
+ bubbles: true,
1046
+ cancelable: false,
1047
+ composed: true,
1048
+ detail: {}
1049
+ }, options));
1050
+ this.dispatchEvent(event);
1051
+ return event;
1052
+ }
1053
+ /* eslint-enable */
1054
+ static define(name, elementConstructor = this, options = {}) {
1055
+ const currentlyRegisteredConstructor = customElements.get(name);
1056
+ if (!currentlyRegisteredConstructor) {
1057
+ try {
1058
+ customElements.define(name, elementConstructor, options);
1059
+ } catch (_err) {
1060
+ customElements.define(name, class extends elementConstructor {
1061
+ }, options);
1062
+ }
1063
+ return;
1064
+ }
1065
+ let newVersion = " (unknown version)";
1066
+ let existingVersion = newVersion;
1067
+ if ("version" in elementConstructor && elementConstructor.version) {
1068
+ newVersion = " v" + elementConstructor.version;
1069
+ }
1070
+ if ("version" in currentlyRegisteredConstructor && currentlyRegisteredConstructor.version) {
1071
+ existingVersion = " v" + currentlyRegisteredConstructor.version;
1072
+ }
1073
+ if (newVersion && existingVersion && newVersion === existingVersion) {
1074
+ return;
1075
+ }
1076
+ console.warn(
1077
+ `Attempted to register <${name}>${newVersion}, but <${name}>${existingVersion} has already been registered.`
1078
+ );
1079
+ }
1080
+ attributeChangedCallback(name, oldValue, newValue) {
1081
+ if (!__privateGet2(this, _hasRecordedInitialProperties)) {
1082
+ this.constructor.elementProperties.forEach(
1083
+ (obj, prop) => {
1084
+ if (obj.reflect && this[prop] != null) {
1085
+ this.initialReflectedProperties.set(prop, this[prop]);
1086
+ }
1087
+ }
1088
+ );
1089
+ __privateSet2(this, _hasRecordedInitialProperties, true);
1090
+ }
1091
+ super.attributeChangedCallback(name, oldValue, newValue);
1092
+ }
1093
+ willUpdate(changedProperties) {
1094
+ super.willUpdate(changedProperties);
1095
+ this.initialReflectedProperties.forEach((value, prop) => {
1096
+ if (changedProperties.has(prop) && this[prop] == null) {
1097
+ this[prop] = value;
1098
+ }
1099
+ });
1100
+ }
1101
+ };
1102
+ _hasRecordedInitialProperties = /* @__PURE__ */ new WeakMap();
1103
+ ShoelaceElement.version = "2.20.1";
1104
+ ShoelaceElement.dependencies = {};
1105
+ __decorateClass([
1106
+ n4()
1107
+ ], ShoelaceElement.prototype, "dir", 2);
1108
+ __decorateClass([
1109
+ n4()
1110
+ ], ShoelaceElement.prototype, "lang", 2);
1111
+
1112
+ // node_modules/lit-html/directive-helpers.js
1113
+ var { I: t4 } = j;
1114
+ var l3 = (o11, t7) => void 0 === t7 ? void 0 !== o11?._$litType$ : o11?._$litType$ === t7;
1115
+ var r6 = (o11) => void 0 === o11.strings;
1116
+ var m2 = {};
1117
+ var p3 = (o11, t7 = m2) => o11._$AH = t7;
1118
+
1119
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.YHLNUJ7P.js
1120
+ var CACHEABLE_ERROR = Symbol();
1121
+ var RETRYABLE_ERROR = Symbol();
1122
+ var parser;
1123
+ var iconCache = /* @__PURE__ */ new Map();
1124
+ var SlIcon = class extends ShoelaceElement {
1125
+ constructor() {
1126
+ super(...arguments);
1127
+ this.initialRender = false;
1128
+ this.svg = null;
1129
+ this.label = "";
1130
+ this.library = "default";
1131
+ }
1132
+ /** Given a URL, this function returns the resulting SVG element or an appropriate error symbol. */
1133
+ async resolveIcon(url, library2) {
1134
+ var _a3;
1135
+ let fileData;
1136
+ if (library2 == null ? void 0 : library2.spriteSheet) {
1137
+ this.svg = b2`<svg part="svg">
1138
+ <use part="use" href="${url}"></use>
1139
+ </svg>`;
1140
+ return this.svg;
1141
+ }
1142
+ try {
1143
+ fileData = await fetch(url, { mode: "cors" });
1144
+ if (!fileData.ok) return fileData.status === 410 ? CACHEABLE_ERROR : RETRYABLE_ERROR;
1145
+ } catch (e10) {
1146
+ return RETRYABLE_ERROR;
1147
+ }
1148
+ try {
1149
+ const div = document.createElement("div");
1150
+ div.innerHTML = await fileData.text();
1151
+ const svg = div.firstElementChild;
1152
+ if (((_a3 = svg == null ? void 0 : svg.tagName) == null ? void 0 : _a3.toLowerCase()) !== "svg") return CACHEABLE_ERROR;
1153
+ if (!parser) parser = new DOMParser();
1154
+ const doc = parser.parseFromString(svg.outerHTML, "text/html");
1155
+ const svgEl = doc.body.querySelector("svg");
1156
+ if (!svgEl) return CACHEABLE_ERROR;
1157
+ svgEl.part.add("svg");
1158
+ return document.adoptNode(svgEl);
1159
+ } catch (e10) {
1160
+ return CACHEABLE_ERROR;
1161
+ }
1162
+ }
1163
+ connectedCallback() {
1164
+ super.connectedCallback();
1165
+ watchIcon(this);
1166
+ }
1167
+ firstUpdated() {
1168
+ this.initialRender = true;
1169
+ this.setIcon();
1170
+ }
1171
+ disconnectedCallback() {
1172
+ super.disconnectedCallback();
1173
+ unwatchIcon(this);
1174
+ }
1175
+ getIconSource() {
1176
+ const library2 = getIconLibrary(this.library);
1177
+ if (this.name && library2) {
1178
+ return {
1179
+ url: library2.resolver(this.name),
1180
+ fromLibrary: true
1181
+ };
1182
+ }
1183
+ return {
1184
+ url: this.src,
1185
+ fromLibrary: false
1186
+ };
1187
+ }
1188
+ handleLabelChange() {
1189
+ const hasLabel = typeof this.label === "string" && this.label.length > 0;
1190
+ if (hasLabel) {
1191
+ this.setAttribute("role", "img");
1192
+ this.setAttribute("aria-label", this.label);
1193
+ this.removeAttribute("aria-hidden");
1194
+ } else {
1195
+ this.removeAttribute("role");
1196
+ this.removeAttribute("aria-label");
1197
+ this.setAttribute("aria-hidden", "true");
1198
+ }
1199
+ }
1200
+ async setIcon() {
1201
+ var _a3;
1202
+ const { url, fromLibrary } = this.getIconSource();
1203
+ const library2 = fromLibrary ? getIconLibrary(this.library) : void 0;
1204
+ if (!url) {
1205
+ this.svg = null;
1206
+ return;
1207
+ }
1208
+ let iconResolver = iconCache.get(url);
1209
+ if (!iconResolver) {
1210
+ iconResolver = this.resolveIcon(url, library2);
1211
+ iconCache.set(url, iconResolver);
1212
+ }
1213
+ if (!this.initialRender) {
1214
+ return;
1215
+ }
1216
+ const svg = await iconResolver;
1217
+ if (svg === RETRYABLE_ERROR) {
1218
+ iconCache.delete(url);
1219
+ }
1220
+ if (url !== this.getIconSource().url) {
1221
+ return;
1222
+ }
1223
+ if (l3(svg)) {
1224
+ this.svg = svg;
1225
+ if (library2) {
1226
+ await this.updateComplete;
1227
+ const shadowSVG = this.shadowRoot.querySelector("[part='svg']");
1228
+ if (typeof library2.mutator === "function" && shadowSVG) {
1229
+ library2.mutator(shadowSVG);
1230
+ }
1231
+ }
1232
+ return;
1233
+ }
1234
+ switch (svg) {
1235
+ case RETRYABLE_ERROR:
1236
+ case CACHEABLE_ERROR:
1237
+ this.svg = null;
1238
+ this.emit("sl-error");
1239
+ break;
1240
+ default:
1241
+ this.svg = svg.cloneNode(true);
1242
+ (_a3 = library2 == null ? void 0 : library2.mutator) == null ? void 0 : _a3.call(library2, this.svg);
1243
+ this.emit("sl-load");
1244
+ }
1245
+ }
1246
+ render() {
1247
+ return this.svg;
1248
+ }
1249
+ };
1250
+ SlIcon.styles = [component_styles_default, icon_styles_default];
1251
+ __decorateClass([
1252
+ r5()
1253
+ ], SlIcon.prototype, "svg", 2);
1254
+ __decorateClass([
1255
+ n4({ reflect: true })
1256
+ ], SlIcon.prototype, "name", 2);
1257
+ __decorateClass([
1258
+ n4()
1259
+ ], SlIcon.prototype, "src", 2);
1260
+ __decorateClass([
1261
+ n4()
1262
+ ], SlIcon.prototype, "label", 2);
1263
+ __decorateClass([
1264
+ n4({ reflect: true })
1265
+ ], SlIcon.prototype, "library", 2);
1266
+ __decorateClass([
1267
+ watch("label")
1268
+ ], SlIcon.prototype, "handleLabelChange", 1);
1269
+ __decorateClass([
1270
+ watch(["name", "src", "library"])
1271
+ ], SlIcon.prototype, "setIcon", 1);
1272
+
1273
+ // node_modules/lit-html/directive.js
1274
+ var t5 = { ATTRIBUTE: 1, CHILD: 2, PROPERTY: 3, BOOLEAN_ATTRIBUTE: 4, EVENT: 5, ELEMENT: 6 };
1275
+ var e6 = (t7) => (...e10) => ({ _$litDirective$: t7, values: e10 });
1276
+ var i5 = class {
1277
+ constructor(t7) {
1278
+ }
1279
+ get _$AU() {
1280
+ return this._$AM._$AU;
1281
+ }
1282
+ _$AT(t7, e10, i7) {
1283
+ this._$Ct = t7, this._$AM = e10, this._$Ci = i7;
1284
+ }
1285
+ _$AS(t7, e10) {
1286
+ return this.update(t7, e10);
1287
+ }
1288
+ update(t7, e10) {
1289
+ return this.render(...e10);
1290
+ }
1291
+ };
1292
+
1293
+ // node_modules/lit-html/directives/class-map.js
1294
+ var e7 = e6(class extends i5 {
1295
+ constructor(t7) {
1296
+ if (super(t7), t7.type !== t5.ATTRIBUTE || "class" !== t7.name || t7.strings?.length > 2) throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.");
1297
+ }
1298
+ render(t7) {
1299
+ return " " + Object.keys(t7).filter((s6) => t7[s6]).join(" ") + " ";
1300
+ }
1301
+ update(s6, [i7]) {
1302
+ if (void 0 === this.st) {
1303
+ this.st = /* @__PURE__ */ new Set(), void 0 !== s6.strings && (this.nt = new Set(s6.strings.join(" ").split(/\s/).filter((t7) => "" !== t7)));
1304
+ for (const t7 in i7) i7[t7] && !this.nt?.has(t7) && this.st.add(t7);
1305
+ return this.render(i7);
1306
+ }
1307
+ const r9 = s6.element.classList;
1308
+ for (const t7 of this.st) t7 in i7 || (r9.remove(t7), this.st.delete(t7));
1309
+ for (const t7 in i7) {
1310
+ const s7 = !!i7[t7];
1311
+ s7 === this.st.has(t7) || this.nt?.has(t7) || (s7 ? (r9.add(t7), this.st.add(t7)) : (r9.remove(t7), this.st.delete(t7)));
1312
+ }
1313
+ return E;
1314
+ }
1315
+ });
1316
+
1317
+ // node_modules/lit-html/static.js
1318
+ var a3 = Symbol.for("");
1319
+ var o6 = (t7) => {
1320
+ if (t7?.r === a3) return t7?._$litStatic$;
1321
+ };
1322
+ var i6 = (t7, ...r9) => ({ _$litStatic$: r9.reduce((r10, e10, a5) => r10 + ((t8) => {
1323
+ if (void 0 !== t8._$litStatic$) return t8._$litStatic$;
1324
+ throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t8}. Use 'unsafeStatic' to pass non-literal values, but
1325
+ take care to ensure page security.`);
1326
+ })(e10) + t7[a5 + 1], t7[0]), r: a3 });
1327
+ var l4 = /* @__PURE__ */ new Map();
1328
+ var n5 = (t7) => (r9, ...e10) => {
1329
+ const a5 = e10.length;
1330
+ let s6, i7;
1331
+ const n9 = [], u5 = [];
1332
+ let c7, $4 = 0, f5 = false;
1333
+ for (; $4 < a5; ) {
1334
+ for (c7 = r9[$4]; $4 < a5 && void 0 !== (i7 = e10[$4], s6 = o6(i7)); ) c7 += s6 + r9[++$4], f5 = true;
1335
+ $4 !== a5 && u5.push(i7), n9.push(c7), $4++;
1336
+ }
1337
+ if ($4 === a5 && n9.push(r9[a5]), f5) {
1338
+ const t8 = n9.join("$$lit$$");
1339
+ void 0 === (r9 = l4.get(t8)) && (n9.raw = n9, l4.set(t8, r9 = n9)), e10 = u5;
1340
+ }
1341
+ return t7(r9, ...e10);
1342
+ };
1343
+ var u3 = n5(b2);
1344
+ var c4 = n5(w);
1345
+ var $2 = n5(T);
1346
+
1347
+ // node_modules/lit-html/directives/if-defined.js
1348
+ var o7 = (o11) => o11 ?? A;
1349
+
1350
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.7E4JTYWU.js
1351
+ var SlIconButton = class extends ShoelaceElement {
1352
+ constructor() {
1353
+ super(...arguments);
1354
+ this.hasFocus = false;
1355
+ this.label = "";
1356
+ this.disabled = false;
1357
+ }
1358
+ handleBlur() {
1359
+ this.hasFocus = false;
1360
+ this.emit("sl-blur");
1361
+ }
1362
+ handleFocus() {
1363
+ this.hasFocus = true;
1364
+ this.emit("sl-focus");
1365
+ }
1366
+ handleClick(event) {
1367
+ if (this.disabled) {
1368
+ event.preventDefault();
1369
+ event.stopPropagation();
1370
+ }
1371
+ }
1372
+ /** Simulates a click on the icon button. */
1373
+ click() {
1374
+ this.button.click();
1375
+ }
1376
+ /** Sets focus on the icon button. */
1377
+ focus(options) {
1378
+ this.button.focus(options);
1379
+ }
1380
+ /** Removes focus from the icon button. */
1381
+ blur() {
1382
+ this.button.blur();
1383
+ }
1384
+ render() {
1385
+ const isLink = this.href ? true : false;
1386
+ const tag = isLink ? i6`a` : i6`button`;
1387
+ return u3`
1388
+ <${tag}
1389
+ part="base"
1390
+ class=${e7({
1391
+ "icon-button": true,
1392
+ "icon-button--disabled": !isLink && this.disabled,
1393
+ "icon-button--focused": this.hasFocus
1394
+ })}
1395
+ ?disabled=${o7(isLink ? void 0 : this.disabled)}
1396
+ type=${o7(isLink ? void 0 : "button")}
1397
+ href=${o7(isLink ? this.href : void 0)}
1398
+ target=${o7(isLink ? this.target : void 0)}
1399
+ download=${o7(isLink ? this.download : void 0)}
1400
+ rel=${o7(isLink && this.target ? "noreferrer noopener" : void 0)}
1401
+ role=${o7(isLink ? void 0 : "button")}
1402
+ aria-disabled=${this.disabled ? "true" : "false"}
1403
+ aria-label="${this.label}"
1404
+ tabindex=${this.disabled ? "-1" : "0"}
1405
+ @blur=${this.handleBlur}
1406
+ @focus=${this.handleFocus}
1407
+ @click=${this.handleClick}
1408
+ >
1409
+ <sl-icon
1410
+ class="icon-button__icon"
1411
+ name=${o7(this.name)}
1412
+ library=${o7(this.library)}
1413
+ src=${o7(this.src)}
1414
+ aria-hidden="true"
1415
+ ></sl-icon>
1416
+ </${tag}>
1417
+ `;
1418
+ }
1419
+ };
1420
+ SlIconButton.styles = [component_styles_default, icon_button_styles_default];
1421
+ SlIconButton.dependencies = { "sl-icon": SlIcon };
1422
+ __decorateClass([
1423
+ e5(".icon-button")
1424
+ ], SlIconButton.prototype, "button", 2);
1425
+ __decorateClass([
1426
+ r5()
1427
+ ], SlIconButton.prototype, "hasFocus", 2);
1428
+ __decorateClass([
1429
+ n4()
1430
+ ], SlIconButton.prototype, "name", 2);
1431
+ __decorateClass([
1432
+ n4()
1433
+ ], SlIconButton.prototype, "library", 2);
1434
+ __decorateClass([
1435
+ n4()
1436
+ ], SlIconButton.prototype, "src", 2);
1437
+ __decorateClass([
1438
+ n4()
1439
+ ], SlIconButton.prototype, "href", 2);
1440
+ __decorateClass([
1441
+ n4()
1442
+ ], SlIconButton.prototype, "target", 2);
1443
+ __decorateClass([
1444
+ n4()
1445
+ ], SlIconButton.prototype, "download", 2);
1446
+ __decorateClass([
1447
+ n4()
1448
+ ], SlIconButton.prototype, "label", 2);
1449
+ __decorateClass([
1450
+ n4({ type: Boolean, reflect: true })
1451
+ ], SlIconButton.prototype, "disabled", 2);
1452
+
1453
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.GGT72J62.js
1454
+ var input_styles_default = i`
1455
+ :host {
1456
+ display: block;
1457
+ }
1458
+
1459
+ .input {
1460
+ flex: 1 1 auto;
1461
+ display: inline-flex;
1462
+ align-items: stretch;
1463
+ justify-content: start;
1464
+ position: relative;
1465
+ width: 100%;
1466
+ font-family: var(--sl-input-font-family);
1467
+ font-weight: var(--sl-input-font-weight);
1468
+ letter-spacing: var(--sl-input-letter-spacing);
1469
+ vertical-align: middle;
1470
+ overflow: hidden;
1471
+ cursor: text;
1472
+ transition:
1473
+ var(--sl-transition-fast) color,
1474
+ var(--sl-transition-fast) border,
1475
+ var(--sl-transition-fast) box-shadow,
1476
+ var(--sl-transition-fast) background-color;
1477
+ }
1478
+
1479
+ /* Standard inputs */
1480
+ .input--standard {
1481
+ background-color: var(--sl-input-background-color);
1482
+ border: solid var(--sl-input-border-width) var(--sl-input-border-color);
1483
+ }
1484
+
1485
+ .input--standard:hover:not(.input--disabled) {
1486
+ background-color: var(--sl-input-background-color-hover);
1487
+ border-color: var(--sl-input-border-color-hover);
1488
+ }
1489
+
1490
+ .input--standard.input--focused:not(.input--disabled) {
1491
+ background-color: var(--sl-input-background-color-focus);
1492
+ border-color: var(--sl-input-border-color-focus);
1493
+ box-shadow: 0 0 0 var(--sl-focus-ring-width) var(--sl-input-focus-ring-color);
1494
+ }
1495
+
1496
+ .input--standard.input--focused:not(.input--disabled) .input__control {
1497
+ color: var(--sl-input-color-focus);
1498
+ }
1499
+
1500
+ .input--standard.input--disabled {
1501
+ background-color: var(--sl-input-background-color-disabled);
1502
+ border-color: var(--sl-input-border-color-disabled);
1503
+ opacity: 0.5;
1504
+ cursor: not-allowed;
1505
+ }
1506
+
1507
+ .input--standard.input--disabled .input__control {
1508
+ color: var(--sl-input-color-disabled);
1509
+ }
1510
+
1511
+ .input--standard.input--disabled .input__control::placeholder {
1512
+ color: var(--sl-input-placeholder-color-disabled);
1513
+ }
1514
+
1515
+ /* Filled inputs */
1516
+ .input--filled {
1517
+ border: none;
1518
+ background-color: var(--sl-input-filled-background-color);
1519
+ color: var(--sl-input-color);
1520
+ }
1521
+
1522
+ .input--filled:hover:not(.input--disabled) {
1523
+ background-color: var(--sl-input-filled-background-color-hover);
1524
+ }
1525
+
1526
+ .input--filled.input--focused:not(.input--disabled) {
1527
+ background-color: var(--sl-input-filled-background-color-focus);
1528
+ outline: var(--sl-focus-ring);
1529
+ outline-offset: var(--sl-focus-ring-offset);
1530
+ }
1531
+
1532
+ .input--filled.input--disabled {
1533
+ background-color: var(--sl-input-filled-background-color-disabled);
1534
+ opacity: 0.5;
1535
+ cursor: not-allowed;
1536
+ }
1537
+
1538
+ .input__control {
1539
+ flex: 1 1 auto;
1540
+ font-family: inherit;
1541
+ font-size: inherit;
1542
+ font-weight: inherit;
1543
+ min-width: 0;
1544
+ height: 100%;
1545
+ color: var(--sl-input-color);
1546
+ border: none;
1547
+ background: inherit;
1548
+ box-shadow: none;
1549
+ padding: 0;
1550
+ margin: 0;
1551
+ cursor: inherit;
1552
+ -webkit-appearance: none;
1553
+ }
1554
+
1555
+ .input__control::-webkit-search-decoration,
1556
+ .input__control::-webkit-search-cancel-button,
1557
+ .input__control::-webkit-search-results-button,
1558
+ .input__control::-webkit-search-results-decoration {
1559
+ -webkit-appearance: none;
1560
+ }
1561
+
1562
+ .input__control:-webkit-autofill,
1563
+ .input__control:-webkit-autofill:hover,
1564
+ .input__control:-webkit-autofill:focus,
1565
+ .input__control:-webkit-autofill:active {
1566
+ box-shadow: 0 0 0 var(--sl-input-height-large) var(--sl-input-background-color-hover) inset !important;
1567
+ -webkit-text-fill-color: var(--sl-color-primary-500);
1568
+ caret-color: var(--sl-input-color);
1569
+ }
1570
+
1571
+ .input--filled .input__control:-webkit-autofill,
1572
+ .input--filled .input__control:-webkit-autofill:hover,
1573
+ .input--filled .input__control:-webkit-autofill:focus,
1574
+ .input--filled .input__control:-webkit-autofill:active {
1575
+ box-shadow: 0 0 0 var(--sl-input-height-large) var(--sl-input-filled-background-color) inset !important;
1576
+ }
1577
+
1578
+ .input__control::placeholder {
1579
+ color: var(--sl-input-placeholder-color);
1580
+ user-select: none;
1581
+ -webkit-user-select: none;
1582
+ }
1583
+
1584
+ .input:hover:not(.input--disabled) .input__control {
1585
+ color: var(--sl-input-color-hover);
1586
+ }
1587
+
1588
+ .input__control:focus {
1589
+ outline: none;
1590
+ }
1591
+
1592
+ .input__prefix,
1593
+ .input__suffix {
1594
+ display: inline-flex;
1595
+ flex: 0 0 auto;
1596
+ align-items: center;
1597
+ cursor: default;
1598
+ }
1599
+
1600
+ .input__prefix ::slotted(sl-icon),
1601
+ .input__suffix ::slotted(sl-icon) {
1602
+ color: var(--sl-input-icon-color);
1603
+ }
1604
+
1605
+ /*
1606
+ * Size modifiers
1607
+ */
1608
+
1609
+ .input--small {
1610
+ border-radius: var(--sl-input-border-radius-small);
1611
+ font-size: var(--sl-input-font-size-small);
1612
+ height: var(--sl-input-height-small);
1613
+ }
1614
+
1615
+ .input--small .input__control {
1616
+ height: calc(var(--sl-input-height-small) - var(--sl-input-border-width) * 2);
1617
+ padding: 0 var(--sl-input-spacing-small);
1618
+ }
1619
+
1620
+ .input--small .input__clear,
1621
+ .input--small .input__password-toggle {
1622
+ width: calc(1em + var(--sl-input-spacing-small) * 2);
1623
+ }
1624
+
1625
+ .input--small .input__prefix ::slotted(*) {
1626
+ margin-inline-start: var(--sl-input-spacing-small);
1627
+ }
1628
+
1629
+ .input--small .input__suffix ::slotted(*) {
1630
+ margin-inline-end: var(--sl-input-spacing-small);
1631
+ }
1632
+
1633
+ .input--medium {
1634
+ border-radius: var(--sl-input-border-radius-medium);
1635
+ font-size: var(--sl-input-font-size-medium);
1636
+ height: var(--sl-input-height-medium);
1637
+ }
1638
+
1639
+ .input--medium .input__control {
1640
+ height: calc(var(--sl-input-height-medium) - var(--sl-input-border-width) * 2);
1641
+ padding: 0 var(--sl-input-spacing-medium);
1642
+ }
1643
+
1644
+ .input--medium .input__clear,
1645
+ .input--medium .input__password-toggle {
1646
+ width: calc(1em + var(--sl-input-spacing-medium) * 2);
1647
+ }
1648
+
1649
+ .input--medium .input__prefix ::slotted(*) {
1650
+ margin-inline-start: var(--sl-input-spacing-medium);
1651
+ }
1652
+
1653
+ .input--medium .input__suffix ::slotted(*) {
1654
+ margin-inline-end: var(--sl-input-spacing-medium);
1655
+ }
1656
+
1657
+ .input--large {
1658
+ border-radius: var(--sl-input-border-radius-large);
1659
+ font-size: var(--sl-input-font-size-large);
1660
+ height: var(--sl-input-height-large);
1661
+ }
1662
+
1663
+ .input--large .input__control {
1664
+ height: calc(var(--sl-input-height-large) - var(--sl-input-border-width) * 2);
1665
+ padding: 0 var(--sl-input-spacing-large);
1666
+ }
1667
+
1668
+ .input--large .input__clear,
1669
+ .input--large .input__password-toggle {
1670
+ width: calc(1em + var(--sl-input-spacing-large) * 2);
1671
+ }
1672
+
1673
+ .input--large .input__prefix ::slotted(*) {
1674
+ margin-inline-start: var(--sl-input-spacing-large);
1675
+ }
1676
+
1677
+ .input--large .input__suffix ::slotted(*) {
1678
+ margin-inline-end: var(--sl-input-spacing-large);
1679
+ }
1680
+
1681
+ /*
1682
+ * Pill modifier
1683
+ */
1684
+
1685
+ .input--pill.input--small {
1686
+ border-radius: var(--sl-input-height-small);
1687
+ }
1688
+
1689
+ .input--pill.input--medium {
1690
+ border-radius: var(--sl-input-height-medium);
1691
+ }
1692
+
1693
+ .input--pill.input--large {
1694
+ border-radius: var(--sl-input-height-large);
1695
+ }
1696
+
1697
+ /*
1698
+ * Clearable + Password Toggle
1699
+ */
1700
+
1701
+ .input__clear,
1702
+ .input__password-toggle {
1703
+ display: inline-flex;
1704
+ align-items: center;
1705
+ justify-content: center;
1706
+ font-size: inherit;
1707
+ color: var(--sl-input-icon-color);
1708
+ border: none;
1709
+ background: none;
1710
+ padding: 0;
1711
+ transition: var(--sl-transition-fast) color;
1712
+ cursor: pointer;
1713
+ }
1714
+
1715
+ .input__clear:hover,
1716
+ .input__password-toggle:hover {
1717
+ color: var(--sl-input-icon-color-hover);
1718
+ }
1719
+
1720
+ .input__clear:focus,
1721
+ .input__password-toggle:focus {
1722
+ outline: none;
1723
+ }
1724
+
1725
+ /* Don't show the browser's password toggle in Edge */
1726
+ ::-ms-reveal {
1727
+ display: none;
1728
+ }
1729
+
1730
+ /* Hide the built-in number spinner */
1731
+ .input--no-spin-buttons input[type='number']::-webkit-outer-spin-button,
1732
+ .input--no-spin-buttons input[type='number']::-webkit-inner-spin-button {
1733
+ -webkit-appearance: none;
1734
+ display: none;
1735
+ }
1736
+
1737
+ .input--no-spin-buttons input[type='number'] {
1738
+ -moz-appearance: textfield;
1739
+ }
1740
+ `;
1741
+
1742
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.GI7VDIWX.js
1743
+ var defaultValue = (propertyName = "value") => (proto, key) => {
1744
+ const ctor = proto.constructor;
1745
+ const attributeChangedCallback = ctor.prototype.attributeChangedCallback;
1746
+ ctor.prototype.attributeChangedCallback = function(name, old, value) {
1747
+ var _a3;
1748
+ const options = ctor.getPropertyOptions(propertyName);
1749
+ const attributeName = typeof options.attribute === "string" ? options.attribute : propertyName;
1750
+ if (name === attributeName) {
1751
+ const converter = options.converter || u;
1752
+ const fromAttribute = typeof converter === "function" ? converter : (_a3 = converter == null ? void 0 : converter.fromAttribute) != null ? _a3 : u.fromAttribute;
1753
+ const newValue = fromAttribute(value, options.type);
1754
+ if (this[propertyName] !== newValue) {
1755
+ this[key] = newValue;
1756
+ }
1757
+ }
1758
+ attributeChangedCallback.call(this, name, old, value);
1759
+ };
1760
+ };
1761
+
1762
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.SI4ACBFK.js
1763
+ var form_control_styles_default = i`
1764
+ .form-control .form-control__label {
1765
+ display: none;
1766
+ }
1767
+
1768
+ .form-control .form-control__help-text {
1769
+ display: none;
1770
+ }
1771
+
1772
+ /* Label */
1773
+ .form-control--has-label .form-control__label {
1774
+ display: inline-block;
1775
+ color: var(--sl-input-label-color);
1776
+ margin-bottom: var(--sl-spacing-3x-small);
1777
+ }
1778
+
1779
+ .form-control--has-label.form-control--small .form-control__label {
1780
+ font-size: var(--sl-input-label-font-size-small);
1781
+ }
1782
+
1783
+ .form-control--has-label.form-control--medium .form-control__label {
1784
+ font-size: var(--sl-input-label-font-size-medium);
1785
+ }
1786
+
1787
+ .form-control--has-label.form-control--large .form-control__label {
1788
+ font-size: var(--sl-input-label-font-size-large);
1789
+ }
1790
+
1791
+ :host([required]) .form-control--has-label .form-control__label::after {
1792
+ content: var(--sl-input-required-content);
1793
+ margin-inline-start: var(--sl-input-required-content-offset);
1794
+ color: var(--sl-input-required-content-color);
1795
+ }
1796
+
1797
+ /* Help text */
1798
+ .form-control--has-help-text .form-control__help-text {
1799
+ display: block;
1800
+ color: var(--sl-input-help-text-color);
1801
+ margin-top: var(--sl-spacing-3x-small);
1802
+ }
1803
+
1804
+ .form-control--has-help-text.form-control--small .form-control__help-text {
1805
+ font-size: var(--sl-input-help-text-font-size-small);
1806
+ }
1807
+
1808
+ .form-control--has-help-text.form-control--medium .form-control__help-text {
1809
+ font-size: var(--sl-input-help-text-font-size-medium);
1810
+ }
1811
+
1812
+ .form-control--has-help-text.form-control--large .form-control__help-text {
1813
+ font-size: var(--sl-input-help-text-font-size-large);
1814
+ }
1815
+
1816
+ .form-control--has-help-text.form-control--radio-group .form-control__help-text {
1817
+ margin-top: var(--sl-spacing-2x-small);
1818
+ }
1819
+ `;
1820
+
1821
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3RPBFEDE.js
1822
+ var formCollections = /* @__PURE__ */ new WeakMap();
1823
+ var reportValidityOverloads = /* @__PURE__ */ new WeakMap();
1824
+ var checkValidityOverloads = /* @__PURE__ */ new WeakMap();
1825
+ var userInteractedControls = /* @__PURE__ */ new WeakSet();
1826
+ var interactions = /* @__PURE__ */ new WeakMap();
1827
+ var FormControlController = class {
1828
+ constructor(host, options) {
1829
+ this.handleFormData = (event) => {
1830
+ const disabled = this.options.disabled(this.host);
1831
+ const name = this.options.name(this.host);
1832
+ const value = this.options.value(this.host);
1833
+ const isButton = this.host.tagName.toLowerCase() === "sl-button";
1834
+ if (this.host.isConnected && !disabled && !isButton && typeof name === "string" && name.length > 0 && typeof value !== "undefined") {
1835
+ if (Array.isArray(value)) {
1836
+ value.forEach((val) => {
1837
+ event.formData.append(name, val.toString());
1838
+ });
1839
+ } else {
1840
+ event.formData.append(name, value.toString());
1841
+ }
1842
+ }
1843
+ };
1844
+ this.handleFormSubmit = (event) => {
1845
+ var _a3;
1846
+ const disabled = this.options.disabled(this.host);
1847
+ const reportValidity = this.options.reportValidity;
1848
+ if (this.form && !this.form.noValidate) {
1849
+ (_a3 = formCollections.get(this.form)) == null ? void 0 : _a3.forEach((control) => {
1850
+ this.setUserInteracted(control, true);
1851
+ });
1852
+ }
1853
+ if (this.form && !this.form.noValidate && !disabled && !reportValidity(this.host)) {
1854
+ event.preventDefault();
1855
+ event.stopImmediatePropagation();
1856
+ }
1857
+ };
1858
+ this.handleFormReset = () => {
1859
+ this.options.setValue(this.host, this.options.defaultValue(this.host));
1860
+ this.setUserInteracted(this.host, false);
1861
+ interactions.set(this.host, []);
1862
+ };
1863
+ this.handleInteraction = (event) => {
1864
+ const emittedEvents = interactions.get(this.host);
1865
+ if (!emittedEvents.includes(event.type)) {
1866
+ emittedEvents.push(event.type);
1867
+ }
1868
+ if (emittedEvents.length === this.options.assumeInteractionOn.length) {
1869
+ this.setUserInteracted(this.host, true);
1870
+ }
1871
+ };
1872
+ this.checkFormValidity = () => {
1873
+ if (this.form && !this.form.noValidate) {
1874
+ const elements = this.form.querySelectorAll("*");
1875
+ for (const element of elements) {
1876
+ if (typeof element.checkValidity === "function") {
1877
+ if (!element.checkValidity()) {
1878
+ return false;
1879
+ }
1880
+ }
1881
+ }
1882
+ }
1883
+ return true;
1884
+ };
1885
+ this.reportFormValidity = () => {
1886
+ if (this.form && !this.form.noValidate) {
1887
+ const elements = this.form.querySelectorAll("*");
1888
+ for (const element of elements) {
1889
+ if (typeof element.reportValidity === "function") {
1890
+ if (!element.reportValidity()) {
1891
+ return false;
1892
+ }
1893
+ }
1894
+ }
1895
+ }
1896
+ return true;
1897
+ };
1898
+ (this.host = host).addController(this);
1899
+ this.options = __spreadValues({
1900
+ form: (input) => {
1901
+ const formId = input.form;
1902
+ if (formId) {
1903
+ const root = input.getRootNode();
1904
+ const form = root.querySelector(`#${formId}`);
1905
+ if (form) {
1906
+ return form;
1907
+ }
1908
+ }
1909
+ return input.closest("form");
1910
+ },
1911
+ name: (input) => input.name,
1912
+ value: (input) => input.value,
1913
+ defaultValue: (input) => input.defaultValue,
1914
+ disabled: (input) => {
1915
+ var _a3;
1916
+ return (_a3 = input.disabled) != null ? _a3 : false;
1917
+ },
1918
+ reportValidity: (input) => typeof input.reportValidity === "function" ? input.reportValidity() : true,
1919
+ checkValidity: (input) => typeof input.checkValidity === "function" ? input.checkValidity() : true,
1920
+ setValue: (input, value) => input.value = value,
1921
+ assumeInteractionOn: ["sl-input"]
1922
+ }, options);
1923
+ }
1924
+ hostConnected() {
1925
+ const form = this.options.form(this.host);
1926
+ if (form) {
1927
+ this.attachForm(form);
1928
+ }
1929
+ interactions.set(this.host, []);
1930
+ this.options.assumeInteractionOn.forEach((event) => {
1931
+ this.host.addEventListener(event, this.handleInteraction);
1932
+ });
1933
+ }
1934
+ hostDisconnected() {
1935
+ this.detachForm();
1936
+ interactions.delete(this.host);
1937
+ this.options.assumeInteractionOn.forEach((event) => {
1938
+ this.host.removeEventListener(event, this.handleInteraction);
1939
+ });
1940
+ }
1941
+ hostUpdated() {
1942
+ const form = this.options.form(this.host);
1943
+ if (!form) {
1944
+ this.detachForm();
1945
+ }
1946
+ if (form && this.form !== form) {
1947
+ this.detachForm();
1948
+ this.attachForm(form);
1949
+ }
1950
+ if (this.host.hasUpdated) {
1951
+ this.setValidity(this.host.validity.valid);
1952
+ }
1953
+ }
1954
+ attachForm(form) {
1955
+ if (form) {
1956
+ this.form = form;
1957
+ if (formCollections.has(this.form)) {
1958
+ formCollections.get(this.form).add(this.host);
1959
+ } else {
1960
+ formCollections.set(this.form, /* @__PURE__ */ new Set([this.host]));
1961
+ }
1962
+ this.form.addEventListener("formdata", this.handleFormData);
1963
+ this.form.addEventListener("submit", this.handleFormSubmit);
1964
+ this.form.addEventListener("reset", this.handleFormReset);
1965
+ if (!reportValidityOverloads.has(this.form)) {
1966
+ reportValidityOverloads.set(this.form, this.form.reportValidity);
1967
+ this.form.reportValidity = () => this.reportFormValidity();
1968
+ }
1969
+ if (!checkValidityOverloads.has(this.form)) {
1970
+ checkValidityOverloads.set(this.form, this.form.checkValidity);
1971
+ this.form.checkValidity = () => this.checkFormValidity();
1972
+ }
1973
+ } else {
1974
+ this.form = void 0;
1975
+ }
1976
+ }
1977
+ detachForm() {
1978
+ if (!this.form) return;
1979
+ const formCollection = formCollections.get(this.form);
1980
+ if (!formCollection) {
1981
+ return;
1982
+ }
1983
+ formCollection.delete(this.host);
1984
+ if (formCollection.size <= 0) {
1985
+ this.form.removeEventListener("formdata", this.handleFormData);
1986
+ this.form.removeEventListener("submit", this.handleFormSubmit);
1987
+ this.form.removeEventListener("reset", this.handleFormReset);
1988
+ if (reportValidityOverloads.has(this.form)) {
1989
+ this.form.reportValidity = reportValidityOverloads.get(this.form);
1990
+ reportValidityOverloads.delete(this.form);
1991
+ }
1992
+ if (checkValidityOverloads.has(this.form)) {
1993
+ this.form.checkValidity = checkValidityOverloads.get(this.form);
1994
+ checkValidityOverloads.delete(this.form);
1995
+ }
1996
+ this.form = void 0;
1997
+ }
1998
+ }
1999
+ setUserInteracted(el, hasInteracted) {
2000
+ if (hasInteracted) {
2001
+ userInteractedControls.add(el);
2002
+ } else {
2003
+ userInteractedControls.delete(el);
2004
+ }
2005
+ el.requestUpdate();
2006
+ }
2007
+ doAction(type, submitter) {
2008
+ if (this.form) {
2009
+ const button = document.createElement("button");
2010
+ button.type = type;
2011
+ button.style.position = "absolute";
2012
+ button.style.width = "0";
2013
+ button.style.height = "0";
2014
+ button.style.clipPath = "inset(50%)";
2015
+ button.style.overflow = "hidden";
2016
+ button.style.whiteSpace = "nowrap";
2017
+ if (submitter) {
2018
+ button.name = submitter.name;
2019
+ button.value = submitter.value;
2020
+ ["formaction", "formenctype", "formmethod", "formnovalidate", "formtarget"].forEach((attr) => {
2021
+ if (submitter.hasAttribute(attr)) {
2022
+ button.setAttribute(attr, submitter.getAttribute(attr));
2023
+ }
2024
+ });
2025
+ }
2026
+ this.form.append(button);
2027
+ button.click();
2028
+ button.remove();
2029
+ }
2030
+ }
2031
+ /** Returns the associated `<form>` element, if one exists. */
2032
+ getForm() {
2033
+ var _a3;
2034
+ return (_a3 = this.form) != null ? _a3 : null;
2035
+ }
2036
+ /** Resets the form, restoring all the control to their default value */
2037
+ reset(submitter) {
2038
+ this.doAction("reset", submitter);
2039
+ }
2040
+ /** Submits the form, triggering validation and form data injection. */
2041
+ submit(submitter) {
2042
+ this.doAction("submit", submitter);
2043
+ }
2044
+ /**
2045
+ * Synchronously sets the form control's validity. Call this when you know the future validity but need to update
2046
+ * the host element immediately, i.e. before Lit updates the component in the next update.
2047
+ */
2048
+ setValidity(isValid) {
2049
+ const host = this.host;
2050
+ const hasInteracted = Boolean(userInteractedControls.has(host));
2051
+ const required = Boolean(host.required);
2052
+ host.toggleAttribute("data-required", required);
2053
+ host.toggleAttribute("data-optional", !required);
2054
+ host.toggleAttribute("data-invalid", !isValid);
2055
+ host.toggleAttribute("data-valid", isValid);
2056
+ host.toggleAttribute("data-user-invalid", !isValid && hasInteracted);
2057
+ host.toggleAttribute("data-user-valid", isValid && hasInteracted);
2058
+ }
2059
+ /**
2060
+ * Updates the form control's validity based on the current value of `host.validity.valid`. Call this when anything
2061
+ * that affects constraint validation changes so the component receives the correct validity states.
2062
+ */
2063
+ updateValidity() {
2064
+ const host = this.host;
2065
+ this.setValidity(host.validity.valid);
2066
+ }
2067
+ /**
2068
+ * Dispatches a non-bubbling, cancelable custom event of type `sl-invalid`.
2069
+ * If the `sl-invalid` event will be cancelled then the original `invalid`
2070
+ * event (which may have been passed as argument) will also be cancelled.
2071
+ * If no original `invalid` event has been passed then the `sl-invalid`
2072
+ * event will be cancelled before being dispatched.
2073
+ */
2074
+ emitInvalidEvent(originalInvalidEvent) {
2075
+ const slInvalidEvent = new CustomEvent("sl-invalid", {
2076
+ bubbles: false,
2077
+ composed: false,
2078
+ cancelable: true,
2079
+ detail: {}
2080
+ });
2081
+ if (!originalInvalidEvent) {
2082
+ slInvalidEvent.preventDefault();
2083
+ }
2084
+ if (!this.host.dispatchEvent(slInvalidEvent)) {
2085
+ originalInvalidEvent == null ? void 0 : originalInvalidEvent.preventDefault();
2086
+ }
2087
+ }
2088
+ };
2089
+ var validValidityState = Object.freeze({
2090
+ badInput: false,
2091
+ customError: false,
2092
+ patternMismatch: false,
2093
+ rangeOverflow: false,
2094
+ rangeUnderflow: false,
2095
+ stepMismatch: false,
2096
+ tooLong: false,
2097
+ tooShort: false,
2098
+ typeMismatch: false,
2099
+ valid: true,
2100
+ valueMissing: false
2101
+ });
2102
+ var valueMissingValidityState = Object.freeze(__spreadProps(__spreadValues({}, validValidityState), {
2103
+ valid: false,
2104
+ valueMissing: true
2105
+ }));
2106
+ var customErrorValidityState = Object.freeze(__spreadProps(__spreadValues({}, validValidityState), {
2107
+ valid: false,
2108
+ customError: true
2109
+ }));
2110
+
2111
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.NYIIDP5N.js
2112
+ var HasSlotController = class {
2113
+ constructor(host, ...slotNames) {
2114
+ this.slotNames = [];
2115
+ this.handleSlotChange = (event) => {
2116
+ const slot = event.target;
2117
+ if (this.slotNames.includes("[default]") && !slot.name || slot.name && this.slotNames.includes(slot.name)) {
2118
+ this.host.requestUpdate();
2119
+ }
2120
+ };
2121
+ (this.host = host).addController(this);
2122
+ this.slotNames = slotNames;
2123
+ }
2124
+ hasDefaultSlot() {
2125
+ return [...this.host.childNodes].some((node) => {
2126
+ if (node.nodeType === node.TEXT_NODE && node.textContent.trim() !== "") {
2127
+ return true;
2128
+ }
2129
+ if (node.nodeType === node.ELEMENT_NODE) {
2130
+ const el = node;
2131
+ const tagName = el.tagName.toLowerCase();
2132
+ if (tagName === "sl-visually-hidden") {
2133
+ return false;
2134
+ }
2135
+ if (!el.hasAttribute("slot")) {
2136
+ return true;
2137
+ }
2138
+ }
2139
+ return false;
2140
+ });
2141
+ }
2142
+ hasNamedSlot(name) {
2143
+ return this.host.querySelector(`:scope > [slot="${name}"]`) !== null;
2144
+ }
2145
+ test(slotName) {
2146
+ return slotName === "[default]" ? this.hasDefaultSlot() : this.hasNamedSlot(slotName);
2147
+ }
2148
+ hostConnected() {
2149
+ this.host.shadowRoot.addEventListener("slotchange", this.handleSlotChange);
2150
+ }
2151
+ hostDisconnected() {
2152
+ this.host.shadowRoot.removeEventListener("slotchange", this.handleSlotChange);
2153
+ }
2154
+ };
2155
+
2156
+ // node_modules/@shoelace-style/localize/dist/index.js
2157
+ var connectedElements = /* @__PURE__ */ new Set();
2158
+ var translations = /* @__PURE__ */ new Map();
2159
+ var fallback;
2160
+ var documentDirection = "ltr";
2161
+ var documentLanguage = "en";
2162
+ var isClient = typeof MutationObserver !== "undefined" && typeof document !== "undefined" && typeof document.documentElement !== "undefined";
2163
+ if (isClient) {
2164
+ const documentElementObserver = new MutationObserver(update);
2165
+ documentDirection = document.documentElement.dir || "ltr";
2166
+ documentLanguage = document.documentElement.lang || navigator.language;
2167
+ documentElementObserver.observe(document.documentElement, {
2168
+ attributes: true,
2169
+ attributeFilter: ["dir", "lang"]
2170
+ });
2171
+ }
2172
+ function registerTranslation(...translation2) {
2173
+ translation2.map((t7) => {
2174
+ const code = t7.$code.toLowerCase();
2175
+ if (translations.has(code)) {
2176
+ translations.set(code, Object.assign(Object.assign({}, translations.get(code)), t7));
2177
+ } else {
2178
+ translations.set(code, t7);
2179
+ }
2180
+ if (!fallback) {
2181
+ fallback = t7;
2182
+ }
2183
+ });
2184
+ update();
2185
+ }
2186
+ function update() {
2187
+ if (isClient) {
2188
+ documentDirection = document.documentElement.dir || "ltr";
2189
+ documentLanguage = document.documentElement.lang || navigator.language;
2190
+ }
2191
+ [...connectedElements.keys()].map((el) => {
2192
+ if (typeof el.requestUpdate === "function") {
2193
+ el.requestUpdate();
2194
+ }
2195
+ });
2196
+ }
2197
+ var LocalizeController = class {
2198
+ constructor(host) {
2199
+ this.host = host;
2200
+ this.host.addController(this);
2201
+ }
2202
+ hostConnected() {
2203
+ connectedElements.add(this.host);
2204
+ }
2205
+ hostDisconnected() {
2206
+ connectedElements.delete(this.host);
2207
+ }
2208
+ dir() {
2209
+ return `${this.host.dir || documentDirection}`.toLowerCase();
2210
+ }
2211
+ lang() {
2212
+ const lang = `${this.host.lang || documentLanguage}`.toLowerCase().replace(/_/g, "-");
2213
+ try {
2214
+ new Intl.Locale(lang);
2215
+ return lang;
2216
+ } catch (_a3) {
2217
+ return fallback ? fallback.$code.toLowerCase() : "en";
2218
+ }
2219
+ }
2220
+ getTranslationData(lang) {
2221
+ var _a3, _b;
2222
+ let locale;
2223
+ try {
2224
+ locale = new Intl.Locale(lang.replace(/_/g, "-"));
2225
+ } catch (_c) {
2226
+ return { locale: void 0, language: "", region: "", primary: void 0, secondary: void 0 };
2227
+ }
2228
+ const language = locale.language.toLowerCase();
2229
+ const region = (_b = (_a3 = locale.region) === null || _a3 === void 0 ? void 0 : _a3.toLowerCase()) !== null && _b !== void 0 ? _b : "";
2230
+ const primary = translations.get(`${language}-${region}`);
2231
+ const secondary = translations.get(language);
2232
+ return { locale, language, region, primary, secondary };
2233
+ }
2234
+ exists(key, options) {
2235
+ var _a3;
2236
+ const { primary, secondary } = this.getTranslationData((_a3 = options.lang) !== null && _a3 !== void 0 ? _a3 : this.lang());
2237
+ options = Object.assign({ includeFallback: false }, options);
2238
+ if (primary && primary[key] || secondary && secondary[key] || options.includeFallback && fallback && fallback[key]) {
2239
+ return true;
2240
+ }
2241
+ return false;
2242
+ }
2243
+ term(key, ...args) {
2244
+ const { primary, secondary } = this.getTranslationData(this.lang());
2245
+ let term;
2246
+ if (primary && primary[key]) {
2247
+ term = primary[key];
2248
+ } else if (secondary && secondary[key]) {
2249
+ term = secondary[key];
2250
+ } else if (fallback && fallback[key]) {
2251
+ term = fallback[key];
2252
+ } else {
2253
+ console.error(`No translation found for: ${String(key)}`);
2254
+ return String(key);
2255
+ }
2256
+ if (typeof term === "function") {
2257
+ return term(...args);
2258
+ }
2259
+ return term;
2260
+ }
2261
+ date(dateToFormat, options) {
2262
+ dateToFormat = new Date(dateToFormat);
2263
+ return new Intl.DateTimeFormat(this.lang(), options).format(dateToFormat);
2264
+ }
2265
+ number(numberToFormat, options) {
2266
+ numberToFormat = Number(numberToFormat);
2267
+ return isNaN(numberToFormat) ? "" : new Intl.NumberFormat(this.lang(), options).format(numberToFormat);
2268
+ }
2269
+ relativeTime(value, unit, options) {
2270
+ return new Intl.RelativeTimeFormat(this.lang(), options).format(value, unit);
2271
+ }
2272
+ };
2273
+
2274
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.7BTDLTNI.js
2275
+ var translation = {
2276
+ $code: "en",
2277
+ $name: "English",
2278
+ $dir: "ltr",
2279
+ carousel: "Carousel",
2280
+ clearEntry: "Clear entry",
2281
+ close: "Close",
2282
+ copied: "Copied",
2283
+ copy: "Copy",
2284
+ currentValue: "Current value",
2285
+ error: "Error",
2286
+ goToSlide: (slide, count) => `Go to slide ${slide} of ${count}`,
2287
+ hidePassword: "Hide password",
2288
+ loading: "Loading",
2289
+ nextSlide: "Next slide",
2290
+ numOptionsSelected: (num) => {
2291
+ if (num === 0) return "No options selected";
2292
+ if (num === 1) return "1 option selected";
2293
+ return `${num} options selected`;
2294
+ },
2295
+ previousSlide: "Previous slide",
2296
+ progress: "Progress",
2297
+ remove: "Remove",
2298
+ resize: "Resize",
2299
+ scrollToEnd: "Scroll to end",
2300
+ scrollToStart: "Scroll to start",
2301
+ selectAColorFromTheScreen: "Select a color from the screen",
2302
+ showPassword: "Show password",
2303
+ slideNum: (slide) => `Slide ${slide}`,
2304
+ toggleColorFormat: "Toggle color format"
2305
+ };
2306
+ registerTranslation(translation);
2307
+ var en_default = translation;
2308
+
2309
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.6CTB5ZDJ.js
2310
+ var LocalizeController2 = class extends LocalizeController {
2311
+ };
2312
+ registerTranslation(en_default);
2313
+
2314
+ // node_modules/lit-html/directives/live.js
2315
+ var l5 = e6(class extends i5 {
2316
+ constructor(r9) {
2317
+ if (super(r9), r9.type !== t5.PROPERTY && r9.type !== t5.ATTRIBUTE && r9.type !== t5.BOOLEAN_ATTRIBUTE) throw Error("The `live` directive is not allowed on child or event bindings");
2318
+ if (!r6(r9)) throw Error("`live` bindings can only contain a single expression");
2319
+ }
2320
+ render(r9) {
2321
+ return r9;
2322
+ }
2323
+ update(i7, [t7]) {
2324
+ if (t7 === E || t7 === A) return t7;
2325
+ const o11 = i7.element, l7 = i7.name;
2326
+ if (i7.type === t5.PROPERTY) {
2327
+ if (t7 === o11[l7]) return E;
2328
+ } else if (i7.type === t5.BOOLEAN_ATTRIBUTE) {
2329
+ if (!!t7 === o11.hasAttribute(l7)) return E;
2330
+ } else if (i7.type === t5.ATTRIBUTE && o11.getAttribute(l7) === t7 + "") return E;
2331
+ return p3(i7), t7;
2332
+ }
2333
+ });
2334
+
2335
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.VM65NPGC.js
2336
+ var SlInput = class extends ShoelaceElement {
2337
+ constructor() {
2338
+ super(...arguments);
2339
+ this.formControlController = new FormControlController(this, {
2340
+ assumeInteractionOn: ["sl-blur", "sl-input"]
2341
+ });
2342
+ this.hasSlotController = new HasSlotController(this, "help-text", "label");
2343
+ this.localize = new LocalizeController2(this);
2344
+ this.hasFocus = false;
2345
+ this.title = "";
2346
+ this.__numberInput = Object.assign(document.createElement("input"), { type: "number" });
2347
+ this.__dateInput = Object.assign(document.createElement("input"), { type: "date" });
2348
+ this.type = "text";
2349
+ this.name = "";
2350
+ this.value = "";
2351
+ this.defaultValue = "";
2352
+ this.size = "medium";
2353
+ this.filled = false;
2354
+ this.pill = false;
2355
+ this.label = "";
2356
+ this.helpText = "";
2357
+ this.clearable = false;
2358
+ this.disabled = false;
2359
+ this.placeholder = "";
2360
+ this.readonly = false;
2361
+ this.passwordToggle = false;
2362
+ this.passwordVisible = false;
2363
+ this.noSpinButtons = false;
2364
+ this.form = "";
2365
+ this.required = false;
2366
+ this.spellcheck = true;
2367
+ }
2368
+ //
2369
+ // NOTE: We use an in-memory input for these getters/setters instead of the one in the template because the properties
2370
+ // can be set before the component is rendered.
2371
+ //
2372
+ /**
2373
+ * Gets or sets the current value as a `Date` object. Returns `null` if the value can't be converted. This will use the native `<input type="{{type}}">` implementation and may result in an error.
2374
+ */
2375
+ get valueAsDate() {
2376
+ var _a3;
2377
+ this.__dateInput.type = this.type;
2378
+ this.__dateInput.value = this.value;
2379
+ return ((_a3 = this.input) == null ? void 0 : _a3.valueAsDate) || this.__dateInput.valueAsDate;
2380
+ }
2381
+ set valueAsDate(newValue) {
2382
+ this.__dateInput.type = this.type;
2383
+ this.__dateInput.valueAsDate = newValue;
2384
+ this.value = this.__dateInput.value;
2385
+ }
2386
+ /** Gets or sets the current value as a number. Returns `NaN` if the value can't be converted. */
2387
+ get valueAsNumber() {
2388
+ var _a3;
2389
+ this.__numberInput.value = this.value;
2390
+ return ((_a3 = this.input) == null ? void 0 : _a3.valueAsNumber) || this.__numberInput.valueAsNumber;
2391
+ }
2392
+ set valueAsNumber(newValue) {
2393
+ this.__numberInput.valueAsNumber = newValue;
2394
+ this.value = this.__numberInput.value;
2395
+ }
2396
+ /** Gets the validity state object */
2397
+ get validity() {
2398
+ return this.input.validity;
2399
+ }
2400
+ /** Gets the validation message */
2401
+ get validationMessage() {
2402
+ return this.input.validationMessage;
2403
+ }
2404
+ firstUpdated() {
2405
+ this.formControlController.updateValidity();
2406
+ }
2407
+ handleBlur() {
2408
+ this.hasFocus = false;
2409
+ this.emit("sl-blur");
2410
+ }
2411
+ handleChange() {
2412
+ this.value = this.input.value;
2413
+ this.emit("sl-change");
2414
+ }
2415
+ handleClearClick(event) {
2416
+ event.preventDefault();
2417
+ if (this.value !== "") {
2418
+ this.value = "";
2419
+ this.emit("sl-clear");
2420
+ this.emit("sl-input");
2421
+ this.emit("sl-change");
2422
+ }
2423
+ this.input.focus();
2424
+ }
2425
+ handleFocus() {
2426
+ this.hasFocus = true;
2427
+ this.emit("sl-focus");
2428
+ }
2429
+ handleInput() {
2430
+ this.value = this.input.value;
2431
+ this.formControlController.updateValidity();
2432
+ this.emit("sl-input");
2433
+ }
2434
+ handleInvalid(event) {
2435
+ this.formControlController.setValidity(false);
2436
+ this.formControlController.emitInvalidEvent(event);
2437
+ }
2438
+ handleKeyDown(event) {
2439
+ const hasModifier = event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;
2440
+ if (event.key === "Enter" && !hasModifier) {
2441
+ setTimeout(() => {
2442
+ if (!event.defaultPrevented && !event.isComposing) {
2443
+ this.formControlController.submit();
2444
+ }
2445
+ });
2446
+ }
2447
+ }
2448
+ handlePasswordToggle() {
2449
+ this.passwordVisible = !this.passwordVisible;
2450
+ }
2451
+ handleDisabledChange() {
2452
+ this.formControlController.setValidity(this.disabled);
2453
+ }
2454
+ handleStepChange() {
2455
+ this.input.step = String(this.step);
2456
+ this.formControlController.updateValidity();
2457
+ }
2458
+ async handleValueChange() {
2459
+ await this.updateComplete;
2460
+ this.formControlController.updateValidity();
2461
+ }
2462
+ /** Sets focus on the input. */
2463
+ focus(options) {
2464
+ this.input.focus(options);
2465
+ }
2466
+ /** Removes focus from the input. */
2467
+ blur() {
2468
+ this.input.blur();
2469
+ }
2470
+ /** Selects all the text in the input. */
2471
+ select() {
2472
+ this.input.select();
2473
+ }
2474
+ /** Sets the start and end positions of the text selection (0-based). */
2475
+ setSelectionRange(selectionStart, selectionEnd, selectionDirection = "none") {
2476
+ this.input.setSelectionRange(selectionStart, selectionEnd, selectionDirection);
2477
+ }
2478
+ /** Replaces a range of text with a new string. */
2479
+ setRangeText(replacement, start, end, selectMode = "preserve") {
2480
+ const selectionStart = start != null ? start : this.input.selectionStart;
2481
+ const selectionEnd = end != null ? end : this.input.selectionEnd;
2482
+ this.input.setRangeText(replacement, selectionStart, selectionEnd, selectMode);
2483
+ if (this.value !== this.input.value) {
2484
+ this.value = this.input.value;
2485
+ }
2486
+ }
2487
+ /** Displays the browser picker for an input element (only works if the browser supports it for the input type). */
2488
+ showPicker() {
2489
+ if ("showPicker" in HTMLInputElement.prototype) {
2490
+ this.input.showPicker();
2491
+ }
2492
+ }
2493
+ /** Increments the value of a numeric input type by the value of the step attribute. */
2494
+ stepUp() {
2495
+ this.input.stepUp();
2496
+ if (this.value !== this.input.value) {
2497
+ this.value = this.input.value;
2498
+ }
2499
+ }
2500
+ /** Decrements the value of a numeric input type by the value of the step attribute. */
2501
+ stepDown() {
2502
+ this.input.stepDown();
2503
+ if (this.value !== this.input.value) {
2504
+ this.value = this.input.value;
2505
+ }
2506
+ }
2507
+ /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */
2508
+ checkValidity() {
2509
+ return this.input.checkValidity();
2510
+ }
2511
+ /** Gets the associated form, if one exists. */
2512
+ getForm() {
2513
+ return this.formControlController.getForm();
2514
+ }
2515
+ /** Checks for validity and shows the browser's validation message if the control is invalid. */
2516
+ reportValidity() {
2517
+ return this.input.reportValidity();
2518
+ }
2519
+ /** Sets a custom validation message. Pass an empty string to restore validity. */
2520
+ setCustomValidity(message) {
2521
+ this.input.setCustomValidity(message);
2522
+ this.formControlController.updateValidity();
2523
+ }
2524
+ render() {
2525
+ const hasLabelSlot = this.hasSlotController.test("label");
2526
+ const hasHelpTextSlot = this.hasSlotController.test("help-text");
2527
+ const hasLabel = this.label ? true : !!hasLabelSlot;
2528
+ const hasHelpText = this.helpText ? true : !!hasHelpTextSlot;
2529
+ const hasClearIcon = this.clearable && !this.disabled && !this.readonly;
2530
+ const isClearIconVisible = hasClearIcon && (typeof this.value === "number" || this.value.length > 0);
2531
+ return b2`
2532
+ <div
2533
+ part="form-control"
2534
+ class=${e7({
2535
+ "form-control": true,
2536
+ "form-control--small": this.size === "small",
2537
+ "form-control--medium": this.size === "medium",
2538
+ "form-control--large": this.size === "large",
2539
+ "form-control--has-label": hasLabel,
2540
+ "form-control--has-help-text": hasHelpText
2541
+ })}
2542
+ >
2543
+ <label
2544
+ part="form-control-label"
2545
+ class="form-control__label"
2546
+ for="input"
2547
+ aria-hidden=${hasLabel ? "false" : "true"}
2548
+ >
2549
+ <slot name="label">${this.label}</slot>
2550
+ </label>
2551
+
2552
+ <div part="form-control-input" class="form-control-input">
2553
+ <div
2554
+ part="base"
2555
+ class=${e7({
2556
+ input: true,
2557
+ // Sizes
2558
+ "input--small": this.size === "small",
2559
+ "input--medium": this.size === "medium",
2560
+ "input--large": this.size === "large",
2561
+ // States
2562
+ "input--pill": this.pill,
2563
+ "input--standard": !this.filled,
2564
+ "input--filled": this.filled,
2565
+ "input--disabled": this.disabled,
2566
+ "input--focused": this.hasFocus,
2567
+ "input--empty": !this.value,
2568
+ "input--no-spin-buttons": this.noSpinButtons
2569
+ })}
2570
+ >
2571
+ <span part="prefix" class="input__prefix">
2572
+ <slot name="prefix"></slot>
2573
+ </span>
2574
+
2575
+ <input
2576
+ part="input"
2577
+ id="input"
2578
+ class="input__control"
2579
+ type=${this.type === "password" && this.passwordVisible ? "text" : this.type}
2580
+ title=${this.title}
2581
+ name=${o7(this.name)}
2582
+ ?disabled=${this.disabled}
2583
+ ?readonly=${this.readonly}
2584
+ ?required=${this.required}
2585
+ placeholder=${o7(this.placeholder)}
2586
+ minlength=${o7(this.minlength)}
2587
+ maxlength=${o7(this.maxlength)}
2588
+ min=${o7(this.min)}
2589
+ max=${o7(this.max)}
2590
+ step=${o7(this.step)}
2591
+ .value=${l5(this.value)}
2592
+ autocapitalize=${o7(this.autocapitalize)}
2593
+ autocomplete=${o7(this.autocomplete)}
2594
+ autocorrect=${o7(this.autocorrect)}
2595
+ ?autofocus=${this.autofocus}
2596
+ spellcheck=${this.spellcheck}
2597
+ pattern=${o7(this.pattern)}
2598
+ enterkeyhint=${o7(this.enterkeyhint)}
2599
+ inputmode=${o7(this.inputmode)}
2600
+ aria-describedby="help-text"
2601
+ @change=${this.handleChange}
2602
+ @input=${this.handleInput}
2603
+ @invalid=${this.handleInvalid}
2604
+ @keydown=${this.handleKeyDown}
2605
+ @focus=${this.handleFocus}
2606
+ @blur=${this.handleBlur}
2607
+ />
2608
+
2609
+ ${isClearIconVisible ? b2`
2610
+ <button
2611
+ part="clear-button"
2612
+ class="input__clear"
2613
+ type="button"
2614
+ aria-label=${this.localize.term("clearEntry")}
2615
+ @click=${this.handleClearClick}
2616
+ tabindex="-1"
2617
+ >
2618
+ <slot name="clear-icon">
2619
+ <sl-icon name="x-circle-fill" library="system"></sl-icon>
2620
+ </slot>
2621
+ </button>
2622
+ ` : ""}
2623
+ ${this.passwordToggle && !this.disabled ? b2`
2624
+ <button
2625
+ part="password-toggle-button"
2626
+ class="input__password-toggle"
2627
+ type="button"
2628
+ aria-label=${this.localize.term(this.passwordVisible ? "hidePassword" : "showPassword")}
2629
+ @click=${this.handlePasswordToggle}
2630
+ tabindex="-1"
2631
+ >
2632
+ ${this.passwordVisible ? b2`
2633
+ <slot name="show-password-icon">
2634
+ <sl-icon name="eye-slash" library="system"></sl-icon>
2635
+ </slot>
2636
+ ` : b2`
2637
+ <slot name="hide-password-icon">
2638
+ <sl-icon name="eye" library="system"></sl-icon>
2639
+ </slot>
2640
+ `}
2641
+ </button>
2642
+ ` : ""}
2643
+
2644
+ <span part="suffix" class="input__suffix">
2645
+ <slot name="suffix"></slot>
2646
+ </span>
2647
+ </div>
2648
+ </div>
2649
+
2650
+ <div
2651
+ part="form-control-help-text"
2652
+ id="help-text"
2653
+ class="form-control__help-text"
2654
+ aria-hidden=${hasHelpText ? "false" : "true"}
2655
+ >
2656
+ <slot name="help-text">${this.helpText}</slot>
2657
+ </div>
2658
+ </div>
2659
+ `;
2660
+ }
2661
+ };
2662
+ SlInput.styles = [component_styles_default, form_control_styles_default, input_styles_default];
2663
+ SlInput.dependencies = { "sl-icon": SlIcon };
2664
+ __decorateClass([
2665
+ e5(".input__control")
2666
+ ], SlInput.prototype, "input", 2);
2667
+ __decorateClass([
2668
+ r5()
2669
+ ], SlInput.prototype, "hasFocus", 2);
2670
+ __decorateClass([
2671
+ n4()
2672
+ ], SlInput.prototype, "title", 2);
2673
+ __decorateClass([
2674
+ n4({ reflect: true })
2675
+ ], SlInput.prototype, "type", 2);
2676
+ __decorateClass([
2677
+ n4()
2678
+ ], SlInput.prototype, "name", 2);
2679
+ __decorateClass([
2680
+ n4()
2681
+ ], SlInput.prototype, "value", 2);
2682
+ __decorateClass([
2683
+ defaultValue()
2684
+ ], SlInput.prototype, "defaultValue", 2);
2685
+ __decorateClass([
2686
+ n4({ reflect: true })
2687
+ ], SlInput.prototype, "size", 2);
2688
+ __decorateClass([
2689
+ n4({ type: Boolean, reflect: true })
2690
+ ], SlInput.prototype, "filled", 2);
2691
+ __decorateClass([
2692
+ n4({ type: Boolean, reflect: true })
2693
+ ], SlInput.prototype, "pill", 2);
2694
+ __decorateClass([
2695
+ n4()
2696
+ ], SlInput.prototype, "label", 2);
2697
+ __decorateClass([
2698
+ n4({ attribute: "help-text" })
2699
+ ], SlInput.prototype, "helpText", 2);
2700
+ __decorateClass([
2701
+ n4({ type: Boolean })
2702
+ ], SlInput.prototype, "clearable", 2);
2703
+ __decorateClass([
2704
+ n4({ type: Boolean, reflect: true })
2705
+ ], SlInput.prototype, "disabled", 2);
2706
+ __decorateClass([
2707
+ n4()
2708
+ ], SlInput.prototype, "placeholder", 2);
2709
+ __decorateClass([
2710
+ n4({ type: Boolean, reflect: true })
2711
+ ], SlInput.prototype, "readonly", 2);
2712
+ __decorateClass([
2713
+ n4({ attribute: "password-toggle", type: Boolean })
2714
+ ], SlInput.prototype, "passwordToggle", 2);
2715
+ __decorateClass([
2716
+ n4({ attribute: "password-visible", type: Boolean })
2717
+ ], SlInput.prototype, "passwordVisible", 2);
2718
+ __decorateClass([
2719
+ n4({ attribute: "no-spin-buttons", type: Boolean })
2720
+ ], SlInput.prototype, "noSpinButtons", 2);
2721
+ __decorateClass([
2722
+ n4({ reflect: true })
2723
+ ], SlInput.prototype, "form", 2);
2724
+ __decorateClass([
2725
+ n4({ type: Boolean, reflect: true })
2726
+ ], SlInput.prototype, "required", 2);
2727
+ __decorateClass([
2728
+ n4()
2729
+ ], SlInput.prototype, "pattern", 2);
2730
+ __decorateClass([
2731
+ n4({ type: Number })
2732
+ ], SlInput.prototype, "minlength", 2);
2733
+ __decorateClass([
2734
+ n4({ type: Number })
2735
+ ], SlInput.prototype, "maxlength", 2);
2736
+ __decorateClass([
2737
+ n4()
2738
+ ], SlInput.prototype, "min", 2);
2739
+ __decorateClass([
2740
+ n4()
2741
+ ], SlInput.prototype, "max", 2);
2742
+ __decorateClass([
2743
+ n4()
2744
+ ], SlInput.prototype, "step", 2);
2745
+ __decorateClass([
2746
+ n4()
2747
+ ], SlInput.prototype, "autocapitalize", 2);
2748
+ __decorateClass([
2749
+ n4()
2750
+ ], SlInput.prototype, "autocorrect", 2);
2751
+ __decorateClass([
2752
+ n4()
2753
+ ], SlInput.prototype, "autocomplete", 2);
2754
+ __decorateClass([
2755
+ n4({ type: Boolean })
2756
+ ], SlInput.prototype, "autofocus", 2);
2757
+ __decorateClass([
2758
+ n4()
2759
+ ], SlInput.prototype, "enterkeyhint", 2);
2760
+ __decorateClass([
2761
+ n4({
2762
+ type: Boolean,
2763
+ converter: {
2764
+ // Allow "true|false" attribute values but keep the property boolean
2765
+ fromAttribute: (value) => !value || value === "false" ? false : true,
2766
+ toAttribute: (value) => value ? "true" : "false"
2767
+ }
2768
+ })
2769
+ ], SlInput.prototype, "spellcheck", 2);
2770
+ __decorateClass([
2771
+ n4()
2772
+ ], SlInput.prototype, "inputmode", 2);
2773
+ __decorateClass([
2774
+ watch("disabled", { waitUntilFirstUpdate: true })
2775
+ ], SlInput.prototype, "handleDisabledChange", 1);
2776
+ __decorateClass([
2777
+ watch("step", { waitUntilFirstUpdate: true })
2778
+ ], SlInput.prototype, "handleStepChange", 1);
2779
+ __decorateClass([
2780
+ watch("value", { waitUntilFirstUpdate: true })
2781
+ ], SlInput.prototype, "handleValueChange", 1);
2782
+
2783
+ // node_modules/@webwriter/lit/index.js
2784
+ var __create2 = Object.create;
2785
+ var __defProp3 = Object.defineProperty;
2786
+ var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor;
2787
+ var __knownSymbol2 = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
2788
+ var __typeError3 = (msg2) => {
2789
+ throw TypeError(msg2);
2790
+ };
2791
+ var __defNormalProp3 = (obj, key, value) => key in obj ? __defProp3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2792
+ var __name2 = (target, value) => __defProp3(target, "name", { value, configurable: true });
2793
+ var __decoratorStart2 = (base) => [, , , __create2(base?.[__knownSymbol2("metadata")] ?? null)];
2794
+ var __decoratorStrings2 = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
2795
+ var __expectFn2 = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError3("Function expected") : fn;
2796
+ var __decoratorContext2 = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings2[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError3("Already initialized") : fns.push(__expectFn2(fn || null)) });
2797
+ var __decoratorMetadata2 = (array, target) => __defNormalProp3(target, __knownSymbol2("metadata"), array[3]);
2798
+ var __runInitializers2 = (array, flags, self, value) => {
2799
+ for (var i52 = 0, fns = array[flags >> 1], n52 = fns && fns.length; i52 < n52; i52++) flags & 1 ? fns[i52].call(self) : value = fns[i52].call(self, value);
2800
+ return value;
2801
+ };
2802
+ var __decorateElement2 = (array, flags, name, decorators, target, extra) => {
2803
+ var fn, it, done, ctx, access, k22 = flags & 7, s42 = !!(flags & 8), p32 = !!(flags & 16);
2804
+ var j2 = k22 > 3 ? array.length + 1 : k22 ? s42 ? 1 : 2 : 0, key = __decoratorStrings2[k22 + 5];
2805
+ var initializers = k22 > 3 && (array[j2 - 1] = []), extraInitializers = array[j2] || (array[j2] = []);
2806
+ var desc = k22 && (!p32 && !s42 && (target = target.prototype), k22 < 5 && (k22 > 3 || !p32) && __getOwnPropDesc3(k22 < 4 ? target : { get [name]() {
2807
+ return __privateGet3(this, extra);
2808
+ }, set [name](x22) {
2809
+ return __privateSet3(this, extra, x22);
2810
+ } }, name));
2811
+ k22 ? p32 && k22 < 4 && __name2(extra, (k22 > 2 ? "set " : k22 > 1 ? "get " : "") + name) : __name2(target, name);
2812
+ for (var i52 = decorators.length - 1; i52 >= 0; i52--) {
2813
+ ctx = __decoratorContext2(k22, name, done = {}, array[3], extraInitializers);
2814
+ if (k22) {
2815
+ ctx.static = s42, ctx.private = p32, access = ctx.access = { has: p32 ? (x22) => __privateIn2(target, x22) : (x22) => name in x22 };
2816
+ if (k22 ^ 3) access.get = p32 ? (x22) => (k22 ^ 1 ? __privateGet3 : __privateMethod2)(x22, target, k22 ^ 4 ? extra : desc.get) : (x22) => x22[name];
2817
+ if (k22 > 2) access.set = p32 ? (x22, y32) => __privateSet3(x22, target, y32, k22 ^ 4 ? extra : desc.set) : (x22, y32) => x22[name] = y32;
2818
+ }
2819
+ it = (0, decorators[i52])(k22 ? k22 < 4 ? p32 ? extra : desc[key] : k22 > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
2820
+ if (k22 ^ 4 || it === void 0) __expectFn2(it) && (k22 > 4 ? initializers.unshift(it) : k22 ? p32 ? extra = it : desc[key] = it : target = it);
2821
+ else if (typeof it !== "object" || it === null) __typeError3("Object expected");
2822
+ else __expectFn2(fn = it.get) && (desc.get = fn), __expectFn2(fn = it.set) && (desc.set = fn), __expectFn2(fn = it.init) && initializers.unshift(fn);
2823
+ }
2824
+ return k22 || __decoratorMetadata2(array, target), desc && __defProp3(target, name, desc), p32 ? k22 ^ 4 ? extra : desc : target;
2825
+ };
2826
+ var __publicField2 = (obj, key, value) => __defNormalProp3(obj, typeof key !== "symbol" ? key + "" : key, value);
2827
+ var __accessCheck3 = (obj, member, msg2) => member.has(obj) || __typeError3("Cannot " + msg2);
2828
+ var __privateIn2 = (member, obj) => Object(obj) !== obj ? __typeError3('Cannot use the "in" operator on this value') : member.has(obj);
2829
+ var __privateGet3 = (obj, member, getter) => (__accessCheck3(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
2830
+ var __privateAdd3 = (obj, member, value) => member.has(obj) ? __typeError3("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
2831
+ var __privateSet3 = (obj, member, value, setter) => (__accessCheck3(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
2832
+ var __privateMethod2 = (obj, member, method) => (__accessCheck3(obj, member, "access private method"), method);
2833
+ var t6 = globalThis;
2834
+ var e8 = t6.ShadowRoot && (void 0 === t6.ShadyCSS || t6.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype;
2835
+ var s4 = Symbol();
2836
+ var o8 = /* @__PURE__ */ new WeakMap();
2837
+ var n6 = class {
2838
+ constructor(t32, e52, o62) {
2839
+ if (this._$cssResult$ = true, o62 !== s4) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
2840
+ this.cssText = t32, this.t = e52;
2841
+ }
2842
+ get styleSheet() {
2843
+ let t32 = this.o;
2844
+ const s42 = this.t;
2845
+ if (e8 && void 0 === t32) {
2846
+ const e52 = void 0 !== s42 && 1 === s42.length;
2847
+ e52 && (t32 = o8.get(s42)), void 0 === t32 && ((this.o = t32 = new CSSStyleSheet()).replaceSync(this.cssText), e52 && o8.set(s42, t32));
2848
+ }
2849
+ return t32;
2850
+ }
2851
+ toString() {
2852
+ return this.cssText;
2853
+ }
2854
+ };
2855
+ var r7 = (t32) => new n6("string" == typeof t32 ? t32 : t32 + "", void 0, s4);
2856
+ var S3 = (s42, o62) => {
2857
+ if (e8) s42.adoptedStyleSheets = o62.map((t32) => t32 instanceof CSSStyleSheet ? t32 : t32.styleSheet);
2858
+ else for (const e52 of o62) {
2859
+ const o72 = document.createElement("style"), n52 = t6.litNonce;
2860
+ void 0 !== n52 && o72.setAttribute("nonce", n52), o72.textContent = e52.cssText, s42.appendChild(o72);
2861
+ }
2862
+ };
2863
+ var c5 = e8 ? (t32) => t32 : (t32) => t32 instanceof CSSStyleSheet ? ((t42) => {
2864
+ let e52 = "";
2865
+ for (const s42 of t42.cssRules) e52 += s42.cssText;
2866
+ return r7(e52);
2867
+ })(t32) : t32;
2868
+ var { is: i22, defineProperty: e22, getOwnPropertyDescriptor: h3, getOwnPropertyNames: r22, getOwnPropertySymbols: o22, getPrototypeOf: n22 } = Object;
2869
+ var a4 = globalThis;
2870
+ var c22 = a4.trustedTypes;
2871
+ var l6 = c22 ? c22.emptyScript : "";
2872
+ var p4 = a4.reactiveElementPolyfillSupport;
2873
+ var d3 = (t32, s42) => t32;
2874
+ var u4 = { toAttribute(t32, s42) {
2875
+ switch (s42) {
2876
+ case Boolean:
2877
+ t32 = t32 ? l6 : null;
2878
+ break;
2879
+ case Object:
2880
+ case Array:
2881
+ t32 = null == t32 ? t32 : JSON.stringify(t32);
2882
+ }
2883
+ return t32;
2884
+ }, fromAttribute(t32, s42) {
2885
+ let i52 = t32;
2886
+ switch (s42) {
2887
+ case Boolean:
2888
+ i52 = null !== t32;
2889
+ break;
2890
+ case Number:
2891
+ i52 = null === t32 ? null : Number(t32);
2892
+ break;
2893
+ case Object:
2894
+ case Array:
2895
+ try {
2896
+ i52 = JSON.parse(t32);
2897
+ } catch (t42) {
2898
+ i52 = null;
2899
+ }
2900
+ }
2901
+ return i52;
2902
+ } };
2903
+ var f3 = (t32, s42) => !i22(t32, s42);
2904
+ var b3 = { attribute: true, type: String, converter: u4, reflect: false, useDefault: false, hasChanged: f3 };
2905
+ Symbol.metadata ??= Symbol("metadata"), a4.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
2906
+ var y3 = class extends HTMLElement {
2907
+ static addInitializer(t32) {
2908
+ this._$Ei(), (this.l ??= []).push(t32);
2909
+ }
2910
+ static get observedAttributes() {
2911
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
2912
+ }
2913
+ static createProperty(t32, s42 = b3) {
2914
+ if (s42.state && (s42.attribute = false), this._$Ei(), this.prototype.hasOwnProperty(t32) && ((s42 = Object.create(s42)).wrapped = true), this.elementProperties.set(t32, s42), !s42.noAccessor) {
2915
+ const i52 = Symbol(), h32 = this.getPropertyDescriptor(t32, i52, s42);
2916
+ void 0 !== h32 && e22(this.prototype, t32, h32);
2917
+ }
2918
+ }
2919
+ static getPropertyDescriptor(t32, s42, i52) {
2920
+ const { get: e52, set: r52 } = h3(this.prototype, t32) ?? { get() {
2921
+ return this[s42];
2922
+ }, set(t42) {
2923
+ this[s42] = t42;
2924
+ } };
2925
+ return { get: e52, set(s52) {
2926
+ const h32 = e52?.call(this);
2927
+ r52?.call(this, s52), this.requestUpdate(t32, h32, i52);
2928
+ }, configurable: true, enumerable: true };
2929
+ }
2930
+ static getPropertyOptions(t32) {
2931
+ return this.elementProperties.get(t32) ?? b3;
2932
+ }
2933
+ static _$Ei() {
2934
+ if (this.hasOwnProperty(d3("elementProperties"))) return;
2935
+ const t32 = n22(this);
2936
+ t32.finalize(), void 0 !== t32.l && (this.l = [...t32.l]), this.elementProperties = new Map(t32.elementProperties);
2937
+ }
2938
+ static finalize() {
2939
+ if (this.hasOwnProperty(d3("finalized"))) return;
2940
+ if (this.finalized = true, this._$Ei(), this.hasOwnProperty(d3("properties"))) {
2941
+ const t42 = this.properties, s42 = [...r22(t42), ...o22(t42)];
2942
+ for (const i52 of s42) this.createProperty(i52, t42[i52]);
2943
+ }
2944
+ const t32 = this[Symbol.metadata];
2945
+ if (null !== t32) {
2946
+ const s42 = litPropertyMetadata.get(t32);
2947
+ if (void 0 !== s42) for (const [t42, i52] of s42) this.elementProperties.set(t42, i52);
2948
+ }
2949
+ this._$Eh = /* @__PURE__ */ new Map();
2950
+ for (const [t42, s42] of this.elementProperties) {
2951
+ const i52 = this._$Eu(t42, s42);
2952
+ void 0 !== i52 && this._$Eh.set(i52, t42);
2953
+ }
2954
+ this.elementStyles = this.finalizeStyles(this.styles);
2955
+ }
2956
+ static finalizeStyles(s42) {
2957
+ const i52 = [];
2958
+ if (Array.isArray(s42)) {
2959
+ const e52 = new Set(s42.flat(1 / 0).reverse());
2960
+ for (const s52 of e52) i52.unshift(c5(s52));
2961
+ } else void 0 !== s42 && i52.push(c5(s42));
2962
+ return i52;
2963
+ }
2964
+ static _$Eu(t32, s42) {
2965
+ const i52 = s42.attribute;
2966
+ return false === i52 ? void 0 : "string" == typeof i52 ? i52 : "string" == typeof t32 ? t32.toLowerCase() : void 0;
2967
+ }
2968
+ constructor() {
2969
+ super(), this._$Ep = void 0, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
2970
+ }
2971
+ _$Ev() {
2972
+ this._$ES = new Promise((t32) => this.enableUpdating = t32), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((t32) => t32(this));
2973
+ }
2974
+ addController(t32) {
2975
+ (this._$EO ??= /* @__PURE__ */ new Set()).add(t32), void 0 !== this.renderRoot && this.isConnected && t32.hostConnected?.();
2976
+ }
2977
+ removeController(t32) {
2978
+ this._$EO?.delete(t32);
2979
+ }
2980
+ _$E_() {
2981
+ const t32 = /* @__PURE__ */ new Map(), s42 = this.constructor.elementProperties;
2982
+ for (const i52 of s42.keys()) this.hasOwnProperty(i52) && (t32.set(i52, this[i52]), delete this[i52]);
2983
+ t32.size > 0 && (this._$Ep = t32);
2984
+ }
2985
+ createRenderRoot() {
2986
+ const t32 = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
2987
+ return S3(t32, this.constructor.elementStyles), t32;
2988
+ }
2989
+ connectedCallback() {
2990
+ this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(true), this._$EO?.forEach((t32) => t32.hostConnected?.());
2991
+ }
2992
+ enableUpdating(t32) {
2993
+ }
2994
+ disconnectedCallback() {
2995
+ this._$EO?.forEach((t32) => t32.hostDisconnected?.());
2996
+ }
2997
+ attributeChangedCallback(t32, s42, i52) {
2998
+ this._$AK(t32, i52);
2999
+ }
3000
+ _$ET(t32, s42) {
3001
+ const i52 = this.constructor.elementProperties.get(t32), e52 = this.constructor._$Eu(t32, i52);
3002
+ if (void 0 !== e52 && true === i52.reflect) {
3003
+ const h32 = (void 0 !== i52.converter?.toAttribute ? i52.converter : u4).toAttribute(s42, i52.type);
3004
+ this._$Em = t32, null == h32 ? this.removeAttribute(e52) : this.setAttribute(e52, h32), this._$Em = null;
3005
+ }
3006
+ }
3007
+ _$AK(t32, s42) {
3008
+ const i52 = this.constructor, e52 = i52._$Eh.get(t32);
3009
+ if (void 0 !== e52 && this._$Em !== e52) {
3010
+ const t42 = i52.getPropertyOptions(e52), h32 = "function" == typeof t42.converter ? { fromAttribute: t42.converter } : void 0 !== t42.converter?.fromAttribute ? t42.converter : u4;
3011
+ this._$Em = e52;
3012
+ const r52 = h32.fromAttribute(s42, t42.type);
3013
+ this[e52] = r52 ?? this._$Ej?.get(e52) ?? r52, this._$Em = null;
3014
+ }
3015
+ }
3016
+ requestUpdate(t32, s42, i52, e52 = false, h32) {
3017
+ if (void 0 !== t32) {
3018
+ const r52 = this.constructor;
3019
+ if (false === e52 && (h32 = this[t32]), i52 ??= r52.getPropertyOptions(t32), !((i52.hasChanged ?? f3)(h32, s42) || i52.useDefault && i52.reflect && h32 === this._$Ej?.get(t32) && !this.hasAttribute(r52._$Eu(t32, i52)))) return;
3020
+ this.C(t32, s42, i52);
3021
+ }
3022
+ false === this.isUpdatePending && (this._$ES = this._$EP());
3023
+ }
3024
+ C(t32, s42, { useDefault: i52, reflect: e52, wrapped: h32 }, r52) {
3025
+ i52 && !(this._$Ej ??= /* @__PURE__ */ new Map()).has(t32) && (this._$Ej.set(t32, r52 ?? s42 ?? this[t32]), true !== h32 || void 0 !== r52) || (this._$AL.has(t32) || (this.hasUpdated || i52 || (s42 = void 0), this._$AL.set(t32, s42)), true === e52 && this._$Em !== t32 && (this._$Eq ??= /* @__PURE__ */ new Set()).add(t32));
3026
+ }
3027
+ async _$EP() {
3028
+ this.isUpdatePending = true;
3029
+ try {
3030
+ await this._$ES;
3031
+ } catch (t42) {
3032
+ Promise.reject(t42);
3033
+ }
3034
+ const t32 = this.scheduleUpdate();
3035
+ return null != t32 && await t32, !this.isUpdatePending;
3036
+ }
3037
+ scheduleUpdate() {
3038
+ return this.performUpdate();
3039
+ }
3040
+ performUpdate() {
3041
+ if (!this.isUpdatePending) return;
3042
+ if (!this.hasUpdated) {
3043
+ if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
3044
+ for (const [t52, s52] of this._$Ep) this[t52] = s52;
3045
+ this._$Ep = void 0;
3046
+ }
3047
+ const t42 = this.constructor.elementProperties;
3048
+ if (t42.size > 0) for (const [s52, i52] of t42) {
3049
+ const { wrapped: t52 } = i52, e52 = this[s52];
3050
+ true !== t52 || this._$AL.has(s52) || void 0 === e52 || this.C(s52, void 0, i52, e52);
3051
+ }
3052
+ }
3053
+ let t32 = false;
3054
+ const s42 = this._$AL;
3055
+ try {
3056
+ t32 = this.shouldUpdate(s42), t32 ? (this.willUpdate(s42), this._$EO?.forEach((t42) => t42.hostUpdate?.()), this.update(s42)) : this._$EM();
3057
+ } catch (s52) {
3058
+ throw t32 = false, this._$EM(), s52;
3059
+ }
3060
+ t32 && this._$AE(s42);
3061
+ }
3062
+ willUpdate(t32) {
3063
+ }
3064
+ _$AE(t32) {
3065
+ this._$EO?.forEach((t42) => t42.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t32)), this.updated(t32);
3066
+ }
3067
+ _$EM() {
3068
+ this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = false;
3069
+ }
3070
+ get updateComplete() {
3071
+ return this.getUpdateComplete();
3072
+ }
3073
+ getUpdateComplete() {
3074
+ return this._$ES;
3075
+ }
3076
+ shouldUpdate(t32) {
3077
+ return true;
3078
+ }
3079
+ update(t32) {
3080
+ this._$Eq &&= this._$Eq.forEach((t42) => this._$ET(t42, this[t42])), this._$EM();
3081
+ }
3082
+ updated(t32) {
3083
+ }
3084
+ firstUpdated(t32) {
3085
+ }
3086
+ };
3087
+ y3.elementStyles = [], y3.shadowRootOptions = { mode: "open" }, y3[d3("elementProperties")] = /* @__PURE__ */ new Map(), y3[d3("finalized")] = /* @__PURE__ */ new Map(), p4?.({ ReactiveElement: y3 }), (a4.reactiveElementVersions ??= []).push("2.1.2");
3088
+ var t22 = globalThis;
3089
+ var i32 = (t32) => t32;
3090
+ var s22 = t22.trustedTypes;
3091
+ var e32 = s22 ? s22.createPolicy("lit-html", { createHTML: (t32) => t32 }) : void 0;
3092
+ var h22 = "$lit$";
3093
+ var o32 = `lit$${Math.random().toFixed(9).slice(2)}$`;
3094
+ var n32 = "?" + o32;
3095
+ var r32 = `<${n32}>`;
3096
+ var l22 = document;
3097
+ var c32 = () => l22.createComment("");
3098
+ var a22 = (t32) => null === t32 || "object" != typeof t32 && "function" != typeof t32;
3099
+ var u22 = Array.isArray;
3100
+ var d22 = (t32) => u22(t32) || "function" == typeof t32?.[Symbol.iterator];
3101
+ var f22 = "[ \n\f\r]";
3102
+ var v2 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g;
3103
+ var _2 = /-->/g;
3104
+ var m3 = />/g;
3105
+ var p22 = RegExp(`>|${f22}(?:([^\\s"'>=/]+)(${f22}*=${f22}*(?:[^
3106
+ \f\r"'\`<>=]|("|')|))|$)`, "g");
3107
+ var g2 = /'/g;
3108
+ var $3 = /"/g;
3109
+ var y22 = /^(?:script|style|textarea|title)$/i;
3110
+ var x2 = (t32) => (i52, ...s42) => ({ _$litType$: t32, strings: i52, values: s42 });
3111
+ var b22 = x2(1);
3112
+ var w2 = x2(2);
3113
+ var T2 = x2(3);
3114
+ var E2 = Symbol.for("lit-noChange");
3115
+ var A2 = Symbol.for("lit-nothing");
3116
+ var C2 = /* @__PURE__ */ new WeakMap();
3117
+ var P2 = l22.createTreeWalker(l22, 129);
3118
+ function V2(t32, i52) {
3119
+ if (!u22(t32) || !t32.hasOwnProperty("raw")) throw Error("invalid template strings array");
3120
+ return void 0 !== e32 ? e32.createHTML(i52) : i52;
3121
+ }
3122
+ var N2 = (t32, i52) => {
3123
+ const s42 = t32.length - 1, e52 = [];
3124
+ let n52, l32 = 2 === i52 ? "<svg>" : 3 === i52 ? "<math>" : "", c42 = v2;
3125
+ for (let i62 = 0; i62 < s42; i62++) {
3126
+ const s52 = t32[i62];
3127
+ let a32, u32, d32 = -1, f32 = 0;
3128
+ for (; f32 < s52.length && (c42.lastIndex = f32, u32 = c42.exec(s52), null !== u32); ) f32 = c42.lastIndex, c42 === v2 ? "!--" === u32[1] ? c42 = _2 : void 0 !== u32[1] ? c42 = m3 : void 0 !== u32[2] ? (y22.test(u32[2]) && (n52 = RegExp("</" + u32[2], "g")), c42 = p22) : void 0 !== u32[3] && (c42 = p22) : c42 === p22 ? ">" === u32[0] ? (c42 = n52 ?? v2, d32 = -1) : void 0 === u32[1] ? d32 = -2 : (d32 = c42.lastIndex - u32[2].length, a32 = u32[1], c42 = void 0 === u32[3] ? p22 : '"' === u32[3] ? $3 : g2) : c42 === $3 || c42 === g2 ? c42 = p22 : c42 === _2 || c42 === m3 ? c42 = v2 : (c42 = p22, n52 = void 0);
3129
+ const x22 = c42 === p22 && t32[i62 + 1].startsWith("/>") ? " " : "";
3130
+ l32 += c42 === v2 ? s52 + r32 : d32 >= 0 ? (e52.push(a32), s52.slice(0, d32) + h22 + s52.slice(d32) + o32 + x22) : s52 + o32 + (-2 === d32 ? i62 : x22);
3131
+ }
3132
+ return [V2(t32, l32 + (t32[s42] || "<?>") + (2 === i52 ? "</svg>" : 3 === i52 ? "</math>" : "")), e52];
3133
+ };
3134
+ var S22 = class _S {
3135
+ constructor({ strings: t32, _$litType$: i52 }, e52) {
3136
+ let r52;
3137
+ this.parts = [];
3138
+ let l32 = 0, a32 = 0;
3139
+ const u32 = t32.length - 1, d32 = this.parts, [f32, v22] = N2(t32, i52);
3140
+ if (this.el = _S.createElement(f32, e52), P2.currentNode = this.el.content, 2 === i52 || 3 === i52) {
3141
+ const t42 = this.el.content.firstChild;
3142
+ t42.replaceWith(...t42.childNodes);
3143
+ }
3144
+ for (; null !== (r52 = P2.nextNode()) && d32.length < u32; ) {
3145
+ if (1 === r52.nodeType) {
3146
+ if (r52.hasAttributes()) for (const t42 of r52.getAttributeNames()) if (t42.endsWith(h22)) {
3147
+ const i62 = v22[a32++], s42 = r52.getAttribute(t42).split(o32), e62 = /([.?@])?(.*)/.exec(i62);
3148
+ d32.push({ type: 1, index: l32, name: e62[2], strings: s42, ctor: "." === e62[1] ? I2 : "?" === e62[1] ? L2 : "@" === e62[1] ? z2 : H2 }), r52.removeAttribute(t42);
3149
+ } else t42.startsWith(o32) && (d32.push({ type: 6, index: l32 }), r52.removeAttribute(t42));
3150
+ if (y22.test(r52.tagName)) {
3151
+ const t42 = r52.textContent.split(o32), i62 = t42.length - 1;
3152
+ if (i62 > 0) {
3153
+ r52.textContent = s22 ? s22.emptyScript : "";
3154
+ for (let s42 = 0; s42 < i62; s42++) r52.append(t42[s42], c32()), P2.nextNode(), d32.push({ type: 2, index: ++l32 });
3155
+ r52.append(t42[i62], c32());
3156
+ }
3157
+ }
3158
+ } else if (8 === r52.nodeType) if (r52.data === n32) d32.push({ type: 2, index: l32 });
3159
+ else {
3160
+ let t42 = -1;
3161
+ for (; -1 !== (t42 = r52.data.indexOf(o32, t42 + 1)); ) d32.push({ type: 7, index: l32 }), t42 += o32.length - 1;
3162
+ }
3163
+ l32++;
3164
+ }
3165
+ }
3166
+ static createElement(t32, i52) {
3167
+ const s42 = l22.createElement("template");
3168
+ return s42.innerHTML = t32, s42;
3169
+ }
3170
+ };
3171
+ function M2(t32, i52, s42 = t32, e52) {
3172
+ if (i52 === E2) return i52;
3173
+ let h32 = void 0 !== e52 ? s42._$Co?.[e52] : s42._$Cl;
3174
+ const o62 = a22(i52) ? void 0 : i52._$litDirective$;
3175
+ return h32?.constructor !== o62 && (h32?._$AO?.(false), void 0 === o62 ? h32 = void 0 : (h32 = new o62(t32), h32._$AT(t32, s42, e52)), void 0 !== e52 ? (s42._$Co ??= [])[e52] = h32 : s42._$Cl = h32), void 0 !== h32 && (i52 = M2(t32, h32._$AS(t32, i52.values), h32, e52)), i52;
3176
+ }
3177
+ var R2 = class {
3178
+ constructor(t32, i52) {
3179
+ this._$AV = [], this._$AN = void 0, this._$AD = t32, this._$AM = i52;
3180
+ }
3181
+ get parentNode() {
3182
+ return this._$AM.parentNode;
3183
+ }
3184
+ get _$AU() {
3185
+ return this._$AM._$AU;
3186
+ }
3187
+ u(t32) {
3188
+ const { el: { content: i52 }, parts: s42 } = this._$AD, e52 = (t32?.creationScope ?? l22).importNode(i52, true);
3189
+ P2.currentNode = e52;
3190
+ let h32 = P2.nextNode(), o62 = 0, n52 = 0, r52 = s42[0];
3191
+ for (; void 0 !== r52; ) {
3192
+ if (o62 === r52.index) {
3193
+ let i62;
3194
+ 2 === r52.type ? i62 = new k2(h32, h32.nextSibling, this, t32) : 1 === r52.type ? i62 = new r52.ctor(h32, r52.name, r52.strings, this, t32) : 6 === r52.type && (i62 = new Z2(h32, this, t32)), this._$AV.push(i62), r52 = s42[++n52];
3195
+ }
3196
+ o62 !== r52?.index && (h32 = P2.nextNode(), o62++);
3197
+ }
3198
+ return P2.currentNode = l22, e52;
3199
+ }
3200
+ p(t32) {
3201
+ let i52 = 0;
3202
+ for (const s42 of this._$AV) void 0 !== s42 && (void 0 !== s42.strings ? (s42._$AI(t32, s42, i52), i52 += s42.strings.length - 2) : s42._$AI(t32[i52])), i52++;
3203
+ }
3204
+ };
3205
+ var k2 = class _k {
3206
+ get _$AU() {
3207
+ return this._$AM?._$AU ?? this._$Cv;
3208
+ }
3209
+ constructor(t32, i52, s42, e52) {
3210
+ this.type = 2, this._$AH = A2, this._$AN = void 0, this._$AA = t32, this._$AB = i52, this._$AM = s42, this.options = e52, this._$Cv = e52?.isConnected ?? true;
3211
+ }
3212
+ get parentNode() {
3213
+ let t32 = this._$AA.parentNode;
3214
+ const i52 = this._$AM;
3215
+ return void 0 !== i52 && 11 === t32?.nodeType && (t32 = i52.parentNode), t32;
3216
+ }
3217
+ get startNode() {
3218
+ return this._$AA;
3219
+ }
3220
+ get endNode() {
3221
+ return this._$AB;
3222
+ }
3223
+ _$AI(t32, i52 = this) {
3224
+ t32 = M2(this, t32, i52), a22(t32) ? t32 === A2 || null == t32 || "" === t32 ? (this._$AH !== A2 && this._$AR(), this._$AH = A2) : t32 !== this._$AH && t32 !== E2 && this._(t32) : void 0 !== t32._$litType$ ? this.$(t32) : void 0 !== t32.nodeType ? this.T(t32) : d22(t32) ? this.k(t32) : this._(t32);
3225
+ }
3226
+ O(t32) {
3227
+ return this._$AA.parentNode.insertBefore(t32, this._$AB);
3228
+ }
3229
+ T(t32) {
3230
+ this._$AH !== t32 && (this._$AR(), this._$AH = this.O(t32));
3231
+ }
3232
+ _(t32) {
3233
+ this._$AH !== A2 && a22(this._$AH) ? this._$AA.nextSibling.data = t32 : this.T(l22.createTextNode(t32)), this._$AH = t32;
3234
+ }
3235
+ $(t32) {
3236
+ const { values: i52, _$litType$: s42 } = t32, e52 = "number" == typeof s42 ? this._$AC(t32) : (void 0 === s42.el && (s42.el = S22.createElement(V2(s42.h, s42.h[0]), this.options)), s42);
3237
+ if (this._$AH?._$AD === e52) this._$AH.p(i52);
3238
+ else {
3239
+ const t42 = new R2(e52, this), s52 = t42.u(this.options);
3240
+ t42.p(i52), this.T(s52), this._$AH = t42;
3241
+ }
3242
+ }
3243
+ _$AC(t32) {
3244
+ let i52 = C2.get(t32.strings);
3245
+ return void 0 === i52 && C2.set(t32.strings, i52 = new S22(t32)), i52;
3246
+ }
3247
+ k(t32) {
3248
+ u22(this._$AH) || (this._$AH = [], this._$AR());
3249
+ const i52 = this._$AH;
3250
+ let s42, e52 = 0;
3251
+ for (const h32 of t32) e52 === i52.length ? i52.push(s42 = new _k(this.O(c32()), this.O(c32()), this, this.options)) : s42 = i52[e52], s42._$AI(h32), e52++;
3252
+ e52 < i52.length && (this._$AR(s42 && s42._$AB.nextSibling, e52), i52.length = e52);
3253
+ }
3254
+ _$AR(t32 = this._$AA.nextSibling, s42) {
3255
+ for (this._$AP?.(false, true, s42); t32 !== this._$AB; ) {
3256
+ const s52 = i32(t32).nextSibling;
3257
+ i32(t32).remove(), t32 = s52;
3258
+ }
3259
+ }
3260
+ setConnected(t32) {
3261
+ void 0 === this._$AM && (this._$Cv = t32, this._$AP?.(t32));
3262
+ }
3263
+ };
3264
+ var H2 = class {
3265
+ get tagName() {
3266
+ return this.element.tagName;
3267
+ }
3268
+ get _$AU() {
3269
+ return this._$AM._$AU;
3270
+ }
3271
+ constructor(t32, i52, s42, e52, h32) {
3272
+ this.type = 1, this._$AH = A2, this._$AN = void 0, this.element = t32, this.name = i52, this._$AM = e52, this.options = h32, s42.length > 2 || "" !== s42[0] || "" !== s42[1] ? (this._$AH = Array(s42.length - 1).fill(new String()), this.strings = s42) : this._$AH = A2;
3273
+ }
3274
+ _$AI(t32, i52 = this, s42, e52) {
3275
+ const h32 = this.strings;
3276
+ let o62 = false;
3277
+ if (void 0 === h32) t32 = M2(this, t32, i52, 0), o62 = !a22(t32) || t32 !== this._$AH && t32 !== E2, o62 && (this._$AH = t32);
3278
+ else {
3279
+ const e62 = t32;
3280
+ let n52, r52;
3281
+ for (t32 = h32[0], n52 = 0; n52 < h32.length - 1; n52++) r52 = M2(this, e62[s42 + n52], i52, n52), r52 === E2 && (r52 = this._$AH[n52]), o62 ||= !a22(r52) || r52 !== this._$AH[n52], r52 === A2 ? t32 = A2 : t32 !== A2 && (t32 += (r52 ?? "") + h32[n52 + 1]), this._$AH[n52] = r52;
3282
+ }
3283
+ o62 && !e52 && this.j(t32);
3284
+ }
3285
+ j(t32) {
3286
+ t32 === A2 ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t32 ?? "");
3287
+ }
3288
+ };
3289
+ var I2 = class extends H2 {
3290
+ constructor() {
3291
+ super(...arguments), this.type = 3;
3292
+ }
3293
+ j(t32) {
3294
+ this.element[this.name] = t32 === A2 ? void 0 : t32;
3295
+ }
3296
+ };
3297
+ var L2 = class extends H2 {
3298
+ constructor() {
3299
+ super(...arguments), this.type = 4;
3300
+ }
3301
+ j(t32) {
3302
+ this.element.toggleAttribute(this.name, !!t32 && t32 !== A2);
3303
+ }
3304
+ };
3305
+ var z2 = class extends H2 {
3306
+ constructor(t32, i52, s42, e52, h32) {
3307
+ super(t32, i52, s42, e52, h32), this.type = 5;
3308
+ }
3309
+ _$AI(t32, i52 = this) {
3310
+ if ((t32 = M2(this, t32, i52, 0) ?? A2) === E2) return;
3311
+ const s42 = this._$AH, e52 = t32 === A2 && s42 !== A2 || t32.capture !== s42.capture || t32.once !== s42.once || t32.passive !== s42.passive, h32 = t32 !== A2 && (s42 === A2 || e52);
3312
+ e52 && this.element.removeEventListener(this.name, this, s42), h32 && this.element.addEventListener(this.name, this, t32), this._$AH = t32;
3313
+ }
3314
+ handleEvent(t32) {
3315
+ "function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t32) : this._$AH.handleEvent(t32);
3316
+ }
3317
+ };
3318
+ var Z2 = class {
3319
+ constructor(t32, i52, s42) {
3320
+ this.element = t32, this.type = 6, this._$AN = void 0, this._$AM = i52, this.options = s42;
3321
+ }
3322
+ get _$AU() {
3323
+ return this._$AM._$AU;
3324
+ }
3325
+ _$AI(t32) {
3326
+ M2(this, t32);
3327
+ }
3328
+ };
3329
+ var B2 = t22.litHtmlPolyfillSupport;
3330
+ B2?.(S22, k2), (t22.litHtmlVersions ??= []).push("3.3.2");
3331
+ var D2 = (t32, i52, s42) => {
3332
+ const e52 = s42?.renderBefore ?? i52;
3333
+ let h32 = e52._$litPart$;
3334
+ if (void 0 === h32) {
3335
+ const t42 = s42?.renderBefore ?? null;
3336
+ e52._$litPart$ = h32 = new k2(i52.insertBefore(c32(), t42), t42, void 0, s42 ?? {});
3337
+ }
3338
+ return h32._$AI(t32), h32;
3339
+ };
3340
+ var s32 = globalThis;
3341
+ var i42 = class extends y3 {
3342
+ constructor() {
3343
+ super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
3344
+ }
3345
+ createRenderRoot() {
3346
+ const t32 = super.createRenderRoot();
3347
+ return this.renderOptions.renderBefore ??= t32.firstChild, t32;
3348
+ }
3349
+ update(t32) {
3350
+ const r52 = this.render();
3351
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t32), this._$Do = D2(r52, this.renderRoot, this.renderOptions);
3352
+ }
3353
+ connectedCallback() {
3354
+ super.connectedCallback(), this._$Do?.setConnected(true);
3355
+ }
3356
+ disconnectedCallback() {
3357
+ super.disconnectedCallback(), this._$Do?.setConnected(false);
3358
+ }
3359
+ render() {
3360
+ return E2;
3361
+ }
3362
+ };
3363
+ i42._$litElement$ = true, i42["finalized"] = true, s32.litElementHydrateSupport?.({ LitElement: i42 });
3364
+ var o42 = s32.litElementPolyfillSupport;
3365
+ o42?.({ LitElement: i42 });
3366
+ (s32.litElementVersions ??= []).push("4.2.2");
3367
+ var o52 = { attribute: true, type: String, converter: u4, reflect: false, hasChanged: f3 };
3368
+ var r42 = (t32 = o52, e52, r52) => {
3369
+ const { kind: n52, metadata: i52 } = r52;
3370
+ let s42 = globalThis.litPropertyMetadata.get(i52);
3371
+ if (void 0 === s42 && globalThis.litPropertyMetadata.set(i52, s42 = /* @__PURE__ */ new Map()), "setter" === n52 && ((t32 = Object.create(t32)).wrapped = true), s42.set(r52.name, t32), "accessor" === n52) {
3372
+ const { name: o62 } = r52;
3373
+ return { set(r62) {
3374
+ const n62 = e52.get.call(this);
3375
+ e52.set.call(this, r62), this.requestUpdate(o62, n62, t32, true, r62);
3376
+ }, init(e62) {
3377
+ return void 0 !== e62 && this.C(o62, void 0, t32, e62), e62;
3378
+ } };
3379
+ }
3380
+ if ("setter" === n52) {
3381
+ const { name: o62 } = r52;
3382
+ return function(r62) {
3383
+ const n62 = this[o62];
3384
+ e52.call(this, r62), this.requestUpdate(o62, n62, t32, true, r62);
3385
+ };
3386
+ }
3387
+ throw Error("Unsupported decorator location: " + n52);
3388
+ };
3389
+ function n42(t32) {
3390
+ return (e52, o62) => "object" == typeof o62 ? r42(t32, e52, o62) : ((t42, e62, o72) => {
3391
+ const r52 = e62.hasOwnProperty(o72);
3392
+ return e62.constructor.createProperty(o72, t42), r52 ? Object.getOwnPropertyDescriptor(e62, o72) : void 0;
3393
+ })(t32, e52, o62);
3394
+ }
3395
+ var appliedClassMixins = /* @__PURE__ */ new WeakMap();
3396
+ function wasMixinPreviouslyApplied(mixin, superClass) {
3397
+ let klass = superClass;
3398
+ while (klass) {
3399
+ if (appliedClassMixins.get(klass) === mixin) {
3400
+ return true;
3401
+ }
3402
+ klass = Object.getPrototypeOf(klass);
3403
+ }
3404
+ return false;
3405
+ }
3406
+ function dedupeMixin(mixin) {
3407
+ return (superClass) => {
3408
+ if (wasMixinPreviouslyApplied(mixin, superClass)) {
3409
+ return superClass;
3410
+ }
3411
+ const mixedClass = mixin(superClass);
3412
+ appliedClassMixins.set(mixedClass, mixin);
3413
+ return mixedClass;
3414
+ };
3415
+ }
3416
+ var version = "3.0.0";
3417
+ var versions = window.scopedElementsVersions || (window.scopedElementsVersions = []);
3418
+ if (!versions.includes(version)) {
3419
+ versions.push(version);
3420
+ }
3421
+ var ScopedElementsMixinImplementation = (superclass) => (
3422
+ /** @type {ScopedElementsHost} */
3423
+ class ScopedElementsHost extends superclass {
3424
+ /**
3425
+ * Obtains the scoped elements definitions map if specified.
3426
+ *
3427
+ * @type {ScopedElementsMap=}
3428
+ */
3429
+ static scopedElements;
3430
+ static get scopedElementsVersion() {
3431
+ return version;
3432
+ }
3433
+ /** @type {CustomElementRegistry=} */
3434
+ static __registry;
3435
+ /**
3436
+ * Obtains the CustomElementRegistry associated to the ShadowRoot.
3437
+ *
3438
+ * @returns {CustomElementRegistry=}
3439
+ */
3440
+ get registry() {
3441
+ return (
3442
+ /** @type {typeof ScopedElementsHost} */
3443
+ this.constructor.__registry
3444
+ );
3445
+ }
3446
+ /**
3447
+ * Set the CustomElementRegistry associated to the ShadowRoot
3448
+ *
3449
+ * @param {CustomElementRegistry} registry
3450
+ */
3451
+ set registry(registry2) {
3452
+ this.constructor.__registry = registry2;
3453
+ }
3454
+ /**
3455
+ * @param {ShadowRootInit} options
3456
+ * @returns {ShadowRoot}
3457
+ */
3458
+ attachShadow(options) {
3459
+ const { scopedElements } = (
3460
+ /** @type {typeof ScopedElementsHost} */
3461
+ this.constructor
3462
+ );
3463
+ const shouldCreateRegistry = !this.registry || // @ts-ignore
3464
+ this.registry === this.constructor.__registry && !Object.prototype.hasOwnProperty.call(this.constructor, "__registry");
3465
+ if (shouldCreateRegistry) {
3466
+ this.registry = new CustomElementRegistry();
3467
+ for (const [tagName, klass] of Object.entries(scopedElements ?? {})) {
3468
+ this.registry.define(tagName, klass);
3469
+ }
3470
+ }
3471
+ return super.attachShadow({
3472
+ ...options,
3473
+ // The polyfill currently expects the registry to be passed as `customElements`
3474
+ customElements: this.registry,
3475
+ // But the proposal has moved forward, and renamed it to `registry`
3476
+ // For backwards compatibility, we pass it as both
3477
+ registry: this.registry
3478
+ });
3479
+ }
3480
+ }
3481
+ );
3482
+ var ScopedElementsMixin = dedupeMixin(ScopedElementsMixinImplementation);
3483
+ var ScopedElementsMixinImplementation2 = (superclass) => (
3484
+ /** @type {ScopedElementsHost} */
3485
+ class ScopedElementsHost extends ScopedElementsMixin(superclass) {
3486
+ createRenderRoot() {
3487
+ const { shadowRootOptions, elementStyles } = (
3488
+ /** @type {TypeofLitElement} */
3489
+ this.constructor
3490
+ );
3491
+ const shadowRoot = this.attachShadow(shadowRootOptions);
3492
+ this.renderOptions.creationScope = shadowRoot;
3493
+ S3(shadowRoot, elementStyles);
3494
+ this.renderOptions.renderBefore ??= shadowRoot.firstChild;
3495
+ return shadowRoot;
3496
+ }
3497
+ }
3498
+ );
3499
+ var ScopedElementsMixin2 = dedupeMixin(ScopedElementsMixinImplementation2);
3500
+ var _lang_dec;
3501
+ var _contentEditable_dec;
3502
+ var _a;
3503
+ var _init;
3504
+ var _contentEditable;
3505
+ var _lang;
3506
+ var LitElementWw = class extends (_a = ScopedElementsMixin2(i42), _contentEditable_dec = [n42({ type: String, attribute: true, reflect: true })], _lang_dec = [n42({ type: String, attribute: true, reflect: true })], _a) {
3507
+ constructor() {
3508
+ super(...arguments);
3509
+ __runInitializers2(_init, 5, this);
3510
+ __publicField2(this, "localize");
3511
+ __privateAdd3(this, _contentEditable, __runInitializers2(_init, 8, this)), __runInitializers2(_init, 11, this);
3512
+ __privateAdd3(this, _lang, "");
3513
+ __publicField2(this, "_inTransaction", false);
3514
+ }
3515
+ /** Declare attributes as options. Used by WebWriter to auto-generate input fields to modify these attributes. As the name suggests, this is mostly suited to simple attributes (boolean, string, etc.). As this is a getter, you can dynamically change options depending on the state of the widget. */
3516
+ get dynamicOptions() {
3517
+ return {};
3518
+ }
3519
+ /** Declare methods as actions. Used by WebWriter to treat all DOM changes triggered by the method as a single change (as a transaction). As this is a getter, you can dynamically change actions depending on the state of the widget. */
3520
+ get dynamicActions() {
3521
+ return {};
3522
+ }
3523
+ get lang() {
3524
+ return (__privateGet3(this, _lang) || this.parentElement?.closest("[lang]")?.lang) ?? "";
3525
+ }
3526
+ set lang(value) {
3527
+ __privateSet3(this, _lang, value);
3528
+ this.localize?.setLocale(value).finally(() => this.requestUpdate("lang"));
3529
+ }
3530
+ connectedCallback() {
3531
+ super.connectedCallback();
3532
+ this.localize?.setLocale(this.lang).finally(() => this.requestUpdate());
3533
+ this.getAttributeNames().forEach((k22) => this.setAttribute(k22, this.getAttribute(k22)));
3534
+ }
3535
+ };
3536
+ _init = __decoratorStart2(_a);
3537
+ _contentEditable = /* @__PURE__ */ new WeakMap();
3538
+ _lang = /* @__PURE__ */ new WeakMap();
3539
+ __decorateElement2(_init, 4, "contentEditable", _contentEditable_dec, LitElementWw, _contentEditable);
3540
+ __decorateElement2(_init, 3, "lang", _lang_dec, LitElementWw);
3541
+ __decoratorMetadata2(_init, LitElementWw);
3542
+ __publicField2(LitElementWw, "scopedElements", {});
3543
+ __publicField2(LitElementWw, "options", {});
3544
+ __publicField2(LitElementWw, "actions", {});
3545
+
3546
+ // node_modules/bootstrap-icons/icons/x.svg
3547
+ var x_default = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x" viewBox="0 0 16 16">%0A <path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708"/>%0A</svg>';
3548
+
3549
+ // node_modules/lit-html/async-directive.js
3550
+ var s5 = (i7, t7) => {
3551
+ const e10 = i7._$AN;
3552
+ if (void 0 === e10) return false;
3553
+ for (const i8 of e10) i8._$AO?.(t7, false), s5(i8, t7);
3554
+ return true;
3555
+ };
3556
+ var o9 = (i7) => {
3557
+ let t7, e10;
3558
+ do {
3559
+ if (void 0 === (t7 = i7._$AM)) break;
3560
+ e10 = t7._$AN, e10.delete(i7), i7 = t7;
3561
+ } while (0 === e10?.size);
3562
+ };
3563
+ var r8 = (i7) => {
3564
+ for (let t7; t7 = i7._$AM; i7 = t7) {
3565
+ let e10 = t7._$AN;
3566
+ if (void 0 === e10) t7._$AN = e10 = /* @__PURE__ */ new Set();
3567
+ else if (e10.has(i7)) break;
3568
+ e10.add(i7), c6(t7);
3569
+ }
3570
+ };
3571
+ function h4(i7) {
3572
+ void 0 !== this._$AN ? (o9(this), this._$AM = i7, r8(this)) : this._$AM = i7;
3573
+ }
3574
+ function n7(i7, t7 = false, e10 = 0) {
3575
+ const r9 = this._$AH, h6 = this._$AN;
3576
+ if (void 0 !== h6 && 0 !== h6.size) if (t7) if (Array.isArray(r9)) for (let i8 = e10; i8 < r9.length; i8++) s5(r9[i8], false), o9(r9[i8]);
3577
+ else null != r9 && (s5(r9, false), o9(r9));
3578
+ else s5(this, i7);
3579
+ }
3580
+ var c6 = (i7) => {
3581
+ i7.type == t5.CHILD && (i7._$AP ??= n7, i7._$AQ ??= h4);
3582
+ };
3583
+ var f4 = class extends i5 {
3584
+ constructor() {
3585
+ super(...arguments), this._$AN = void 0;
3586
+ }
3587
+ _$AT(i7, t7, e10) {
3588
+ super._$AT(i7, t7, e10), r8(this), this.isConnected = i7._$AU;
3589
+ }
3590
+ _$AO(i7, t7 = true) {
3591
+ i7 !== this.isConnected && (this.isConnected = i7, i7 ? this.reconnected?.() : this.disconnected?.()), t7 && (s5(this, i7), o9(this));
3592
+ }
3593
+ setValue(t7) {
3594
+ if (r6(this._$Ct)) this._$Ct._$AI(t7, this);
3595
+ else {
3596
+ const i7 = [...this._$Ct._$AH];
3597
+ i7[this._$Ci] = t7, this._$Ct._$AI(i7, this, 0);
3598
+ }
3599
+ }
3600
+ disconnected() {
3601
+ }
3602
+ reconnected() {
3603
+ }
3604
+ };
3605
+
3606
+ // node_modules/lit-html/directives/ref.js
3607
+ var e9 = () => new h5();
3608
+ var h5 = class {
3609
+ };
3610
+ var o10 = /* @__PURE__ */ new WeakMap();
3611
+ var n8 = e6(class extends f4 {
3612
+ render(i7) {
3613
+ return A;
3614
+ }
3615
+ update(i7, [s6]) {
3616
+ const e10 = s6 !== this.G;
3617
+ return e10 && this.rt(void 0), (e10 || this.lt !== this.ct) && (this.G = s6, this.ht = i7.options?.host, this.rt(this.ct = i7.element)), A;
3618
+ }
3619
+ rt(t7) {
3620
+ if (void 0 !== this.G) if (this.isConnected || (t7 = void 0), "function" == typeof this.G) {
3621
+ const i7 = this.ht ?? globalThis;
3622
+ let s6 = o10.get(i7);
3623
+ void 0 === s6 && (s6 = /* @__PURE__ */ new WeakMap(), o10.set(i7, s6)), void 0 !== s6.get(this.G) && this.G.call(this.ht, void 0), s6.set(this.G, t7), void 0 !== t7 && this.G.call(this.ht, t7);
3624
+ } else this.G.value = t7;
3625
+ }
3626
+ get lt() {
3627
+ return "function" == typeof this.G ? o10.get(this.ht ?? globalThis)?.get(this.G) : this.G?.value;
3628
+ }
3629
+ disconnected() {
3630
+ this.lt === this.ct && this.rt(void 0);
3631
+ }
3632
+ reconnected() {
3633
+ this.rt(this.ct);
3634
+ }
3635
+ });
3636
+
3637
+ // src/widgets/gap/webwriter-gap-item.ts
3638
+ var _placeholder_dec, _dropActive_dec, _answerSelected_dec, _feedback_dec, _graded_dec, _inputAnswer_dec, _answer_dec, _mode_dec, _a2, _WebwriterGapItem_decorators, _init2, _mode, _answer, _inputAnswer, _graded, _feedback, _answerSelected, _dropActive, _placeholder;
3639
+ _WebwriterGapItem_decorators = [t3("webwriter-gap-item")];
3640
+ var WebwriterGapItem = class extends (_a2 = LitElementWw, _mode_dec = [n4({ attribute: false })], _answer_dec = [r5()], _inputAnswer_dec = [r5()], _graded_dec = [r5()], _feedback_dec = [r5()], _answerSelected_dec = [r5()], _dropActive_dec = [r5()], _placeholder_dec = [n4({ type: String, attribute: "placeholder", reflect: true })], _a2) {
3641
+ constructor() {
3642
+ super(...arguments);
3643
+ __privateAdd(this, _mode, __runInitializers(_init2, 8, this)), __runInitializers(_init2, 11, this);
3644
+ __privateAdd(this, _answer, __runInitializers(_init2, 12, this, "")), __runInitializers(_init2, 15, this);
3645
+ __privateAdd(this, _inputAnswer, __runInitializers(_init2, 16, this, "")), __runInitializers(_init2, 19, this);
3646
+ __privateAdd(this, _graded, __runInitializers(_init2, 20, this, false)), __runInitializers(_init2, 23, this);
3647
+ __privateAdd(this, _feedback, __runInitializers(_init2, 24, this, null)), __runInitializers(_init2, 27, this);
3648
+ __privateAdd(this, _answerSelected, __runInitializers(_init2, 28, this, false)), __runInitializers(_init2, 31, this);
3649
+ __privateAdd(this, _dropActive, __runInitializers(_init2, 32, this, false)), __runInitializers(_init2, 35, this);
3650
+ __publicField(this, "slotRef", e9());
3651
+ __privateAdd(this, _placeholder, __runInitializers(_init2, 36, this, "")), __runInitializers(_init2, 39, this);
3652
+ }
3653
+ /** @internal */
3654
+ get dynamicOptions() {
3655
+ const options = {};
3656
+ if (this.mode === "input") {
3657
+ options.placeholder = { type: "string", label: { _: msg("Placeholder") } };
3658
+ }
3659
+ return options;
3660
+ }
3661
+ renderEditable() {
3662
+ return b2`<div class="container-base container-input">
3663
+ <slot
3664
+ ${n8(this.slotRef)}
3665
+ @slotchange=${(event) => {
3666
+ const slot = event.target;
3667
+ if (slot.assignedNodes().length == 0) this.remove();
3668
+ }}
3669
+ ></slot>
3670
+ <sl-icon-button
3671
+ src=${x_default}
3672
+ @click=${() => {
3673
+ const slot = this.slotRef.value;
3674
+ if (!slot) return;
3675
+ this.replaceWith(...slot.assignedNodes());
3676
+ }}
3677
+ ></sl-icon-button>
3678
+ </div>`;
3679
+ }
3680
+ renderInput() {
3681
+ return b2`<sl-input placeholder=${this.placeholder} .value=${this.inputAnswer} ?disabled=${this.graded}
3682
+ @sl-input=${(event) => {
3683
+ this.inputAnswer = event.target.value;
3684
+ }}
3685
+ ></sl-input>`;
3686
+ }
3687
+ renderDragAndDrop() {
3688
+ return b2`<button
3689
+ type="button"
3690
+ ?disabled=${this.graded}
3691
+ class="container-base container-placeholder ${this.dropActive ? "active" : ""} ${this.answer ? "filled" : ""}"
3692
+ aria-label=${this.answer || msg("Empty gap")}
3693
+ aria-pressed=${this.answerSelected}
3694
+ @pointerdown=${(event) => this.closest("webwriter-gap")?.startGapDrag(event, this)}
3695
+ @click=${() => this.closest("webwriter-gap")?.activateGap(this)}
3696
+ >
3697
+ ${this.answer || "\xA0"}
3698
+ </button>`;
3699
+ }
3700
+ render() {
3701
+ if (this.isContentEditable) return this.renderEditable();
3702
+ if (this.feedback) {
3703
+ const { correct, answer, solution } = this.feedback;
3704
+ return b2`<span class="container-base feedback ${correct ? "correct" : "incorrect"}" role="status">
3705
+ ${correct ? answer : b2`
3706
+ <del aria-label=${msg("Your answer")}>${answer || msg("No answer")}</del>
3707
+ <span class="correction" aria-label=${msg("Correct answer")}>${solution}</span>
3708
+ `}
3709
+ </span>`;
3710
+ }
3711
+ if (this.mode === "input") return this.renderInput();
3712
+ if (this.mode === "drag-and-drop") return this.renderDragAndDrop();
3713
+ if (this.mode !== void 0) console.warn("[webwriter-gap-item] Unknown mode:", this.mode);
3714
+ return A;
3715
+ }
3716
+ };
3717
+ _init2 = __decoratorStart(_a2);
3718
+ _mode = new WeakMap();
3719
+ _answer = new WeakMap();
3720
+ _inputAnswer = new WeakMap();
3721
+ _graded = new WeakMap();
3722
+ _feedback = new WeakMap();
3723
+ _answerSelected = new WeakMap();
3724
+ _dropActive = new WeakMap();
3725
+ _placeholder = new WeakMap();
3726
+ __decorateElement(_init2, 4, "mode", _mode_dec, WebwriterGapItem, _mode);
3727
+ __decorateElement(_init2, 4, "answer", _answer_dec, WebwriterGapItem, _answer);
3728
+ __decorateElement(_init2, 4, "inputAnswer", _inputAnswer_dec, WebwriterGapItem, _inputAnswer);
3729
+ __decorateElement(_init2, 4, "graded", _graded_dec, WebwriterGapItem, _graded);
3730
+ __decorateElement(_init2, 4, "feedback", _feedback_dec, WebwriterGapItem, _feedback);
3731
+ __decorateElement(_init2, 4, "answerSelected", _answerSelected_dec, WebwriterGapItem, _answerSelected);
3732
+ __decorateElement(_init2, 4, "dropActive", _dropActive_dec, WebwriterGapItem, _dropActive);
3733
+ __decorateElement(_init2, 4, "placeholder", _placeholder_dec, WebwriterGapItem, _placeholder);
3734
+ WebwriterGapItem = __decorateElement(_init2, 0, "WebwriterGapItem", _WebwriterGapItem_decorators, WebwriterGapItem);
3735
+ /** @internal */
3736
+ __publicField(WebwriterGapItem, "scopedElements", {
3737
+ "sl-icon-button": SlIconButton,
3738
+ "sl-input": SlInput
3739
+ });
3740
+ __publicField(WebwriterGapItem, "styles", i`
3741
+ :host {
3742
+ --outer-line-height: 2.3;
3743
+ --inner-line-height: 2;
3744
+ --inner-height: calc(var(--inner-line-height) * 1em);
3745
+ display: inline-block !important;
3746
+ outline: none !important;
3747
+ vertical-align: baseline;
3748
+ }
3749
+
3750
+ .container-base {
3751
+ height: var(--inner-height);
3752
+ line-height: var(--outer-line-height);
3753
+ box-sizing: border-box;
3754
+ border: 1px solid transparent;
3755
+ border-radius: var(--sl-border-radius-medium);
3756
+ display: flex;
3757
+ align-items: center;
3758
+ }
3759
+
3760
+ .container-input {
3761
+ background-color: var(--sl-input-background-color);
3762
+ border-color: var(--sl-input-border-color);
3763
+ padding-left: var(--sl-spacing-x-small);
3764
+ }
3765
+
3766
+ .container-placeholder {
3767
+ background-color: var(--sl-color-neutral-100);
3768
+ position: relative;
3769
+ border-color: var(--sl-color-neutral-300);
3770
+ min-width: 8em;
3771
+ padding: 0 var(--sl-spacing-x-small);
3772
+ height: 2em;
3773
+ white-space: nowrap;
3774
+ font: inherit;
3775
+ color: inherit;
3776
+ justify-content: center;
3777
+ cursor: pointer;
3778
+ touch-action: none;
3779
+ user-select: none;
3780
+ }
3781
+
3782
+ .container-placeholder::before {
3783
+ content: "";
3784
+ position: absolute;
3785
+ inset: -4px;
3786
+ border: 2px dotted var(--sl-color-primary-400);
3787
+ border-radius: calc(var(--sl-border-radius-medium) + 3px);
3788
+ pointer-events: none;
3789
+ opacity: 0;
3790
+ transition: opacity var(--sl-transition-fast);
3791
+ z-index: 2;
3792
+ }
3793
+
3794
+ .container-placeholder.active::before {
3795
+ opacity: 1;
3796
+ }
3797
+
3798
+ @media (prefers-reduced-motion: reduce) {
3799
+ .container-placeholder::before { transition: none; }
3800
+ }
3801
+
3802
+ .container-placeholder.filled {
3803
+ background-color: var(--sl-color-neutral-0);
3804
+ min-width: 0;
3805
+ width: max-content;
3806
+ cursor: grab;
3807
+ }
3808
+
3809
+ .feedback {
3810
+ padding: 0 var(--sl-spacing-x-small);
3811
+ gap: var(--sl-spacing-x-small);
3812
+ width: max-content;
3813
+ }
3814
+
3815
+ .feedback.correct {
3816
+ color: var(--sl-color-success-700);
3817
+ background: var(--sl-color-success-50);
3818
+ border-color: var(--sl-color-success-600);
3819
+ }
3820
+
3821
+ .feedback.incorrect {
3822
+ color: var(--sl-color-danger-700);
3823
+ background: var(--sl-color-danger-50);
3824
+ border-color: var(--sl-color-danger-600);
3825
+ }
3826
+
3827
+ .correction { color: var(--sl-color-success-700); }
3828
+ .container-placeholder:disabled { cursor: default; }
3829
+
3830
+ sl-input {
3831
+ --sl-input-height-medium: var(--inner-height);
3832
+ line-height: var(--inner-line-height);
3833
+ font: inherit;
3834
+
3835
+ &::part(form-control),
3836
+ &::part(form-control-input),
3837
+ &::part(base) {
3838
+ display: flex;
3839
+ align-items: baseline;
3840
+ }
3841
+
3842
+ &::part(input),
3843
+ &::part(base) {
3844
+ font: inherit;
3845
+ color: inherit;
3846
+ }
3847
+
3848
+ &::part(input) {
3849
+ padding: 0 var(--sl-spacing-x-small);
3850
+ /* The base paints the rounded background; this control must not cover it. */
3851
+ background: transparent;
3852
+ }
3853
+
3854
+ &::part(base) {
3855
+ vertical-align: baseline;
3856
+ overflow: visible;
3857
+ letter-spacing: inherit;
3858
+ }
3859
+ }
3860
+ `);
3861
+ __runInitializers(_init2, 1, WebwriterGapItem);
3862
+ export {
3863
+ WebwriterGapItem
3864
+ };
3865
+ /*! Bundled license information:
3866
+
3867
+ @lit/localize/internal/locale-status-event.js:
3868
+ @lit/localize/internal/str-tag.js:
3869
+ @lit/localize/internal/types.js:
3870
+ @lit/localize/internal/default-msg.js:
3871
+ @lit/localize/internal/localized-controller.js:
3872
+ @lit/localize/internal/localized-decorator.js:
3873
+ @lit/localize/internal/runtime-msg.js:
3874
+ @lit/localize/init/runtime.js:
3875
+ @lit/localize/init/transform.js:
3876
+ @lit/reactive-element/decorators/query-assigned-elements.js:
3877
+ (**
3878
+ * @license
3879
+ * Copyright 2021 Google LLC
3880
+ * SPDX-License-Identifier: BSD-3-Clause
3881
+ *)
3882
+
3883
+ @lit/localize/internal/deferred.js:
3884
+ @lit/localize/internal/id-generation.js:
3885
+ @lit/localize/lit-localize.js:
3886
+ lit-html/directive-helpers.js:
3887
+ lit-html/static.js:
3888
+ lit-html/directives/live.js:
3889
+ lit-html/directives/ref.js:
3890
+ (**
3891
+ * @license
3892
+ * Copyright 2020 Google LLC
3893
+ * SPDX-License-Identifier: BSD-3-Clause
3894
+ *)
3895
+
3896
+ @lit/localize/internal/fnv1a64.js:
3897
+ (**
3898
+ * @license
3899
+ * Copyright 2014 Travis Webb
3900
+ * SPDX-License-Identifier: MIT
3901
+ *)
3902
+
3903
+ @lit/reactive-element/css-tag.js:
3904
+ (**
3905
+ * @license
3906
+ * Copyright 2019 Google LLC
3907
+ * SPDX-License-Identifier: BSD-3-Clause
3908
+ *)
3909
+
3910
+ @lit/reactive-element/reactive-element.js:
3911
+ lit-html/lit-html.js:
3912
+ lit-element/lit-element.js:
3913
+ @lit/reactive-element/decorators/custom-element.js:
3914
+ @lit/reactive-element/decorators/property.js:
3915
+ @lit/reactive-element/decorators/state.js:
3916
+ @lit/reactive-element/decorators/event-options.js:
3917
+ @lit/reactive-element/decorators/base.js:
3918
+ @lit/reactive-element/decorators/query.js:
3919
+ @lit/reactive-element/decorators/query-all.js:
3920
+ @lit/reactive-element/decorators/query-async.js:
3921
+ @lit/reactive-element/decorators/query-assigned-nodes.js:
3922
+ lit-html/directive.js:
3923
+ lit-html/async-directive.js:
3924
+ (**
3925
+ * @license
3926
+ * Copyright 2017 Google LLC
3927
+ * SPDX-License-Identifier: BSD-3-Clause
3928
+ *)
3929
+
3930
+ lit-html/is-server.js:
3931
+ (**
3932
+ * @license
3933
+ * Copyright 2022 Google LLC
3934
+ * SPDX-License-Identifier: BSD-3-Clause
3935
+ *)
3936
+
3937
+ lit-html/directives/class-map.js:
3938
+ lit-html/directives/if-defined.js:
3939
+ (**
3940
+ * @license
3941
+ * Copyright 2018 Google LLC
3942
+ * SPDX-License-Identifier: BSD-3-Clause
3943
+ *)
3944
+
3945
+ @webwriter/lit/index.js:
3946
+ (*! Bundled license information:
3947
+
3948
+ @lit/reactive-element/css-tag.js:
3949
+ (**
3950
+ * @license
3951
+ * Copyright 2019 Google LLC
3952
+ * SPDX-License-Identifier: BSD-3-Clause
3953
+ *)
3954
+
3955
+ @lit/reactive-element/reactive-element.js:
3956
+ lit-html/lit-html.js:
3957
+ lit-element/lit-element.js:
3958
+ @lit/reactive-element/decorators/custom-element.js:
3959
+ @lit/reactive-element/decorators/property.js:
3960
+ @lit/reactive-element/decorators/state.js:
3961
+ @lit/reactive-element/decorators/event-options.js:
3962
+ @lit/reactive-element/decorators/base.js:
3963
+ @lit/reactive-element/decorators/query.js:
3964
+ @lit/reactive-element/decorators/query-all.js:
3965
+ @lit/reactive-element/decorators/query-async.js:
3966
+ @lit/reactive-element/decorators/query-assigned-nodes.js:
3967
+ (**
3968
+ * @license
3969
+ * Copyright 2017 Google LLC
3970
+ * SPDX-License-Identifier: BSD-3-Clause
3971
+ *)
3972
+
3973
+ lit-html/is-server.js:
3974
+ (**
3975
+ * @license
3976
+ * Copyright 2022 Google LLC
3977
+ * SPDX-License-Identifier: BSD-3-Clause
3978
+ *)
3979
+
3980
+ @lit/reactive-element/decorators/query-assigned-elements.js:
3981
+ (**
3982
+ * @license
3983
+ * Copyright 2021 Google LLC
3984
+ * SPDX-License-Identifier: BSD-3-Clause
3985
+ *)
3986
+ *)
3987
+ */