@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,4674 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __knownSymbol = (name2, symbol) => (symbol = Symbol[name2]) ? symbol : Symbol.for("Symbol." + name2);
6
+ var __typeError = (msg2) => {
7
+ throw TypeError(msg2);
8
+ };
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
11
+ var __glob = (map) => (path) => {
12
+ var fn = map[path];
13
+ if (fn) return fn();
14
+ throw new Error("Module not found in bundle: " + path);
15
+ };
16
+ var __esm = (fn, res) => function __init() {
17
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
18
+ };
19
+ var __export = (target, all) => {
20
+ for (var name2 in all)
21
+ __defProp(target, name2, { get: all[name2], enumerable: true });
22
+ };
23
+ var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
24
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
25
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
26
+ var __decoratorContext = (kind, name2, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name: name2, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
27
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
28
+ var __runInitializers = (array, flags, self, value) => {
29
+ for (var i7 = 0, fns = array[flags >> 1], n7 = fns && fns.length; i7 < n7; i7++) flags & 1 ? fns[i7].call(self) : value = fns[i7].call(self, value);
30
+ return value;
31
+ };
32
+ var __decorateElement = (array, flags, name2, decorators, target, extra) => {
33
+ var fn, it, done, ctx, access, k3 = flags & 7, s5 = !!(flags & 8), p4 = !!(flags & 16);
34
+ var j2 = k3 > 3 ? array.length + 1 : k3 ? s5 ? 1 : 2 : 0, key = __decoratorStrings[k3 + 5];
35
+ var initializers = k3 > 3 && (array[j2 - 1] = []), extraInitializers = array[j2] || (array[j2] = []);
36
+ var desc = k3 && (!p4 && !s5 && (target = target.prototype), k3 < 5 && (k3 > 3 || !p4) && __getOwnPropDesc(k3 < 4 ? target : { get [name2]() {
37
+ return __privateGet(this, extra);
38
+ }, set [name2](x3) {
39
+ return __privateSet(this, extra, x3);
40
+ } }, name2));
41
+ k3 ? p4 && k3 < 4 && __name(extra, (k3 > 2 ? "set " : k3 > 1 ? "get " : "") + name2) : __name(target, name2);
42
+ for (var i7 = decorators.length - 1; i7 >= 0; i7--) {
43
+ ctx = __decoratorContext(k3, name2, done = {}, array[3], extraInitializers);
44
+ if (k3) {
45
+ ctx.static = s5, ctx.private = p4, access = ctx.access = { has: p4 ? (x3) => __privateIn(target, x3) : (x3) => name2 in x3 };
46
+ if (k3 ^ 3) access.get = p4 ? (x3) => (k3 ^ 1 ? __privateGet : __privateMethod)(x3, target, k3 ^ 4 ? extra : desc.get) : (x3) => x3[name2];
47
+ if (k3 > 2) access.set = p4 ? (x3, y4) => __privateSet(x3, target, y4, k3 ^ 4 ? extra : desc.set) : (x3, y4) => x3[name2] = y4;
48
+ }
49
+ it = (0, decorators[i7])(k3 ? k3 < 4 ? p4 ? extra : desc[key] : k3 > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
50
+ if (k3 ^ 4 || it === void 0) __expectFn(it) && (k3 > 4 ? initializers.unshift(it) : k3 ? p4 ? extra = it : desc[key] = it : target = it);
51
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
52
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
53
+ }
54
+ return k3 || __decoratorMetadata(array, target), desc && __defProp(target, name2, desc), p4 ? k3 ^ 4 ? extra : desc : target;
55
+ };
56
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
57
+ var __accessCheck = (obj, member, msg2) => member.has(obj) || __typeError("Cannot " + msg2);
58
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
59
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
60
+ 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);
61
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
62
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
63
+
64
+ // node_modules/@lit/localize/internal/locale-status-event.js
65
+ var LOCALE_STATUS_EVENT;
66
+ var init_locale_status_event = __esm({
67
+ "node_modules/@lit/localize/internal/locale-status-event.js"() {
68
+ LOCALE_STATUS_EVENT = "lit-localize-status";
69
+ }
70
+ });
71
+
72
+ // node_modules/@lit/localize/internal/str-tag.js
73
+ var _str, str, isStrTagged, joinStringsAndValues;
74
+ var init_str_tag = __esm({
75
+ "node_modules/@lit/localize/internal/str-tag.js"() {
76
+ _str = (strings, ...values) => ({
77
+ strTag: true,
78
+ strings,
79
+ values
80
+ });
81
+ str = _str;
82
+ isStrTagged = (val) => typeof val !== "string" && "strTag" in val;
83
+ joinStringsAndValues = (strings, values, valueOrder) => {
84
+ let concat = strings[0];
85
+ for (let i7 = 1; i7 < strings.length; i7++) {
86
+ concat += values[valueOrder ? valueOrder[i7 - 1] : i7 - 1];
87
+ concat += strings[i7];
88
+ }
89
+ return concat;
90
+ };
91
+ }
92
+ });
93
+
94
+ // node_modules/@lit/localize/internal/types.js
95
+ var init_types = __esm({
96
+ "node_modules/@lit/localize/internal/types.js"() {
97
+ }
98
+ });
99
+
100
+ // node_modules/@lit/localize/internal/default-msg.js
101
+ var defaultMsg;
102
+ var init_default_msg = __esm({
103
+ "node_modules/@lit/localize/internal/default-msg.js"() {
104
+ init_str_tag();
105
+ defaultMsg = ((template) => isStrTagged(template) ? joinStringsAndValues(template.strings, template.values) : template);
106
+ }
107
+ });
108
+
109
+ // node_modules/@lit/localize/init/install.js
110
+ function _installMsgImplementation(impl) {
111
+ if (installed) {
112
+ throw new Error("lit-localize can only be configured once");
113
+ }
114
+ msg = impl;
115
+ installed = true;
116
+ }
117
+ var msg, installed;
118
+ var init_install = __esm({
119
+ "node_modules/@lit/localize/init/install.js"() {
120
+ init_default_msg();
121
+ msg = defaultMsg;
122
+ installed = false;
123
+ }
124
+ });
125
+
126
+ // node_modules/@lit/localize/internal/localized-controller.js
127
+ var init_localized_controller = __esm({
128
+ "node_modules/@lit/localize/internal/localized-controller.js"() {
129
+ init_locale_status_event();
130
+ }
131
+ });
132
+
133
+ // node_modules/@lit/localize/internal/localized-decorator.js
134
+ var init_localized_decorator = __esm({
135
+ "node_modules/@lit/localize/internal/localized-decorator.js"() {
136
+ init_localized_controller();
137
+ }
138
+ });
139
+
140
+ // node_modules/@lit/localize/internal/deferred.js
141
+ var Deferred;
142
+ var init_deferred = __esm({
143
+ "node_modules/@lit/localize/internal/deferred.js"() {
144
+ Deferred = class {
145
+ constructor() {
146
+ this.settled = false;
147
+ this.promise = new Promise((resolve, reject) => {
148
+ this._resolve = resolve;
149
+ this._reject = reject;
150
+ });
151
+ }
152
+ resolve(value) {
153
+ this.settled = true;
154
+ this._resolve(value);
155
+ }
156
+ reject(error) {
157
+ this.settled = true;
158
+ this._reject(error);
159
+ }
160
+ };
161
+ }
162
+ });
163
+
164
+ // node_modules/@lit/localize/internal/fnv1a64.js
165
+ function fnv1a64(str2) {
166
+ let t0 = 0, v0 = 8997, t1 = 0, v1 = 33826, t23 = 0, v22 = 40164, t32 = 0, v3 = 52210;
167
+ for (let i7 = 0; i7 < str2.length; i7++) {
168
+ v0 ^= str2.charCodeAt(i7);
169
+ t0 = v0 * 435;
170
+ t1 = v1 * 435;
171
+ t23 = v22 * 435;
172
+ t32 = v3 * 435;
173
+ t23 += v0 << 8;
174
+ t32 += v1 << 8;
175
+ t1 += t0 >>> 16;
176
+ v0 = t0 & 65535;
177
+ t23 += t1 >>> 16;
178
+ v1 = t1 & 65535;
179
+ v3 = t32 + (t23 >>> 16) & 65535;
180
+ v22 = t23 & 65535;
181
+ }
182
+ return hl[v3 >> 8] + hl[v3 & 255] + hl[v22 >> 8] + hl[v22 & 255] + hl[v1 >> 8] + hl[v1 & 255] + hl[v0 >> 8] + hl[v0 & 255];
183
+ }
184
+ var hl;
185
+ var init_fnv1a64 = __esm({
186
+ "node_modules/@lit/localize/internal/fnv1a64.js"() {
187
+ hl = [];
188
+ for (let i7 = 0; i7 < 256; i7++) {
189
+ hl[i7] = (i7 >> 4 & 15).toString(16) + (i7 & 15).toString(16);
190
+ }
191
+ }
192
+ });
193
+
194
+ // node_modules/@lit/localize/internal/id-generation.js
195
+ function generateMsgId(strings, isHtmlTagged) {
196
+ return (isHtmlTagged ? HTML_PREFIX : STRING_PREFIX) + fnv1a64(typeof strings === "string" ? strings : strings.join(HASH_DELIMITER));
197
+ }
198
+ var HASH_DELIMITER, HTML_PREFIX, STRING_PREFIX;
199
+ var init_id_generation = __esm({
200
+ "node_modules/@lit/localize/internal/id-generation.js"() {
201
+ init_fnv1a64();
202
+ HASH_DELIMITER = "";
203
+ HTML_PREFIX = "h";
204
+ STRING_PREFIX = "s";
205
+ }
206
+ });
207
+
208
+ // node_modules/@lit/localize/internal/runtime-msg.js
209
+ function runtimeMsg(templates7, template, options) {
210
+ if (templates7) {
211
+ const id = options?.id ?? generateId(template);
212
+ const localized = templates7[id];
213
+ if (localized) {
214
+ if (typeof localized === "string") {
215
+ return localized;
216
+ } else if ("strTag" in localized) {
217
+ return joinStringsAndValues(
218
+ localized.strings,
219
+ // Cast `template` because its type wasn't automatically narrowed (but
220
+ // we know it must be the same type as `localized`).
221
+ template.values,
222
+ localized.values
223
+ );
224
+ } else {
225
+ let order = expressionOrders.get(localized);
226
+ if (order === void 0) {
227
+ order = localized.values;
228
+ expressionOrders.set(localized, order);
229
+ }
230
+ return {
231
+ ...localized,
232
+ values: order.map((i7) => template.values[i7])
233
+ };
234
+ }
235
+ }
236
+ }
237
+ return defaultMsg(template);
238
+ }
239
+ function generateId(template) {
240
+ const strings = typeof template === "string" ? template : template.strings;
241
+ let id = hashCache.get(strings);
242
+ if (id === void 0) {
243
+ id = generateMsgId(strings, typeof template !== "string" && !("strTag" in template));
244
+ hashCache.set(strings, id);
245
+ }
246
+ return id;
247
+ }
248
+ var expressionOrders, hashCache;
249
+ var init_runtime_msg = __esm({
250
+ "node_modules/@lit/localize/internal/runtime-msg.js"() {
251
+ init_default_msg();
252
+ init_str_tag();
253
+ init_id_generation();
254
+ expressionOrders = /* @__PURE__ */ new WeakMap();
255
+ hashCache = /* @__PURE__ */ new Map();
256
+ }
257
+ });
258
+
259
+ // node_modules/@lit/localize/init/runtime.js
260
+ function dispatchStatusEvent(detail) {
261
+ window.dispatchEvent(new CustomEvent(LOCALE_STATUS_EVENT, { detail }));
262
+ }
263
+ var activeLocale, loadingLocale, sourceLocale, validLocales, loadLocale, templates, loading, requestId, configureLocalization, getLocale, setLocale;
264
+ var init_runtime = __esm({
265
+ "node_modules/@lit/localize/init/runtime.js"() {
266
+ init_deferred();
267
+ init_locale_status_event();
268
+ init_runtime_msg();
269
+ init_install();
270
+ activeLocale = "";
271
+ loading = new Deferred();
272
+ loading.resolve();
273
+ requestId = 0;
274
+ configureLocalization = (config) => {
275
+ _installMsgImplementation(((template, options) => runtimeMsg(templates, template, options)));
276
+ activeLocale = sourceLocale = config.sourceLocale;
277
+ validLocales = new Set(config.targetLocales);
278
+ validLocales.add(config.sourceLocale);
279
+ loadLocale = config.loadLocale;
280
+ return { getLocale, setLocale };
281
+ };
282
+ getLocale = () => {
283
+ return activeLocale;
284
+ };
285
+ setLocale = (newLocale) => {
286
+ if (newLocale === (loadingLocale ?? activeLocale)) {
287
+ return loading.promise;
288
+ }
289
+ if (!validLocales || !loadLocale) {
290
+ throw new Error("Internal error");
291
+ }
292
+ if (!validLocales.has(newLocale)) {
293
+ throw new Error("Invalid locale code");
294
+ }
295
+ requestId++;
296
+ const thisRequestId = requestId;
297
+ loadingLocale = newLocale;
298
+ if (loading.settled) {
299
+ loading = new Deferred();
300
+ }
301
+ dispatchStatusEvent({ status: "loading", loadingLocale: newLocale });
302
+ const localePromise = newLocale === sourceLocale ? (
303
+ // We could switch to the source locale synchronously, but we prefer to
304
+ // queue it on a microtask so that switching locales is consistently
305
+ // asynchronous.
306
+ Promise.resolve({ templates: void 0 })
307
+ ) : loadLocale(newLocale);
308
+ localePromise.then((mod) => {
309
+ if (requestId === thisRequestId) {
310
+ activeLocale = newLocale;
311
+ loadingLocale = void 0;
312
+ templates = mod.templates;
313
+ dispatchStatusEvent({ status: "ready", readyLocale: newLocale });
314
+ loading.resolve();
315
+ }
316
+ }, (err) => {
317
+ if (requestId === thisRequestId) {
318
+ dispatchStatusEvent({
319
+ status: "error",
320
+ errorLocale: newLocale,
321
+ errorMessage: err.toString()
322
+ });
323
+ loading.reject(err);
324
+ }
325
+ });
326
+ return loading.promise;
327
+ };
328
+ }
329
+ });
330
+
331
+ // node_modules/@lit/localize/init/transform.js
332
+ var init_transform = __esm({
333
+ "node_modules/@lit/localize/init/transform.js"() {
334
+ init_default_msg();
335
+ init_install();
336
+ }
337
+ });
338
+
339
+ // node_modules/@lit/localize/lit-localize.js
340
+ var init_lit_localize = __esm({
341
+ "node_modules/@lit/localize/lit-localize.js"() {
342
+ init_locale_status_event();
343
+ init_str_tag();
344
+ init_types();
345
+ init_install();
346
+ init_localized_controller();
347
+ init_localized_decorator();
348
+ init_runtime();
349
+ init_transform();
350
+ }
351
+ });
352
+
353
+ // localization/generated/de.ts
354
+ var de_exports = {};
355
+ __export(de_exports, {
356
+ templates: () => templates2
357
+ });
358
+ var templates2;
359
+ var init_de = __esm({
360
+ "localization/generated/de.ts"() {
361
+ init_lit_localize();
362
+ templates2 = {
363
+ "s021fb26da6a25f79": `Wahr oder Falsch`,
364
+ "s03d845021c14b84f": `Zur\xFCck zu den Antworten`,
365
+ "s0b733d4a22c3b12f": `Antworten zur Auswertung abgeben?`,
366
+ "s0d9a7bb29fee2d85": `Richtige Antwort`,
367
+ "s159928724265eb05": `Option hinzuf\xFCgen`,
368
+ "s15bdec250a4a55fb": `Absteigend`,
369
+ "s16e1bead7b9c95ce": `Memory`,
370
+ "s1705e89d78286348": `Meldung bei richtiger L\xF6sung`,
371
+ "s19d2c07c1effbdaf": `Teilweise richtig`,
372
+ "s21b5ec7253ee5705": `Die zu verwendende Sortierrichtung.`,
373
+ "s2317e68a652c8498": `Kurzer Text`,
374
+ "s2492f5fb1b05b45e": `Text`,
375
+ "s270d49ea25614a7b": `Antworten zur\xFCcksetzen`,
376
+ "s2ba5f4d8f3bd7c57": `Reihenfolge`,
377
+ "s2ceb11be2290bb1b": `Abbrechen`,
378
+ "s2d96dca399230ff3": `Die zu verwendende Layout-Variante.`,
379
+ "s2e4818861000b13f": `Layout`,
380
+ "s2f9c7cb1f24c3de8": `Vor dem Abgeben best\xE4tigen`,
381
+ "s31ac9cd289910c65": `Feedback ohne Auswahl`,
382
+ "s34adfb0ab932043d": `Gro\xDF-/Kleinschreibung ignorieren`,
383
+ "s36163be9d8064432": `Der zu verwendende Nummerierungsstil.`,
384
+ "s37cbecaec58e2192": `Modus`,
385
+ "s3d249bb480032121": `Liste`,
386
+ "s3ff3b89e5871fae3": `Mehrere Zeilen werden nicht unterst\xFCtzt`,
387
+ "s4058ed60e59264ed": `Die zu verwendende Bewertungsmethode.`,
388
+ "s4158d5fc29a1f991": `Richtig`,
389
+ "s43f438831bf2524d": `Nicht beantwortet`,
390
+ "s468f08dd3166cf44": `Hintergrund w\xE4hlen`,
391
+ "s4802e47fe2e95134": `Option`,
392
+ "s485bbcc5d19e2b20": `Mehrfachauswahl`,
393
+ "s48e186fb300e5464": `Uhrzeit`,
394
+ "s49c940aecfef3ea0": `Textmarkierung`,
395
+ "s52cfa1d198476806": `Element`,
396
+ "s53bc6e49623c8f80": `Frage hinzuf\xFCgen`,
397
+ "s54393bfa280ea55b": `Aufgabenstellung`,
398
+ "s57784c3b7df6150c": `Teilpunkte (Position)`,
399
+ "s5c8e286841ccfd0e": `Rasterspalten`,
400
+ "s5ca3b69235e6046b": `Vor dem Zur\xFCcksetzen best\xE4tigen`,
401
+ "s5d86300c6e210017": `WebWriter hat keine Berechtigung f\xFCr den Zugriff auf das Mikrofon.`,
402
+ "s653f729e608b6653": `Zum Starten der Aufnahme klicken`,
403
+ "s669b18c6d2d9c95b": `Keine`,
404
+ "s678dbf717a0b079d": `Alles oder nichts`,
405
+ "s71ba655ef7772e6c": `Falsch`,
406
+ "s721db58b7b0ea2e3": `Verf\xFCgbare Antworten`,
407
+ "s7254ca27b16ae2d8": `Falsch`,
408
+ "s729db3aabe406a0a": `Frage 1`,
409
+ "s729dc6aabe408a53": str`Frage ${0}`,
410
+ "s73c0e4814878d26e": `Am Raster ausrichten`,
411
+ "s73feab3544c345b1": `Punkt`,
412
+ "s7667ffa7b27a7232": `R\xF6misch`,
413
+ "s766f42576852db83": `Antworten abgeben?`,
414
+ "s7a153886c76b7dcb": `Detailliertes Feedback anzeigen`,
415
+ "s7ac431061b2ebf1a": `Alle Antworten zur\xFCcksetzen und neu beginnen?`,
416
+ "s7acd963aa22be70c": str`Geschwindigkeit: ${0}x`,
417
+ "s80dc9f56411917df": `Zu markierender Text`,
418
+ "s848dd69654cedb5a": `Markierung an Position umschalten`,
419
+ "s855bb4e2b08d1a18": `Keine Antwort`,
420
+ "s85ea99fb52be3385": `Wahr`,
421
+ "s8685fbc5eca0de27": `Bewertung`,
422
+ "s94c650bef124bd01": `Aufsteigend`,
423
+ "s96d2f1dc180a46d8": `Debug`,
424
+ "s9bae45e308549364": `Datum &amp; Uhrzeit`,
425
+ "s9daa676c05ab2a68": `Einfachauswahl`,
426
+ "s9dcffdd89c8e0f58": `Hinweis`,
427
+ "sa0a8f80935f767dd": `Gro\xDF-/Kleinschreibung ignorieren`,
428
+ "sa937fce28916575e": `L\xF6sung`,
429
+ "saa3efba1f0c816b7": `Sprachaufnahme`,
430
+ "saa48690ce74705d4": `Punkte ausblenden`,
431
+ "saadba46653e4ffef": `Zuordnung`,
432
+ "sac8252732f2edb19": `Datum`,
433
+ "sb1c40c0af94993b6": `Teilpunkte (Reihenfolge)`,
434
+ "sb20f85b66b8eed5b": `Drag &amp; Drop`,
435
+ "sb3d4f79d9d8b71e5": `Abgeben`,
436
+ "sb5b8485f95c97a79": `Beim Zugriff auf das Mikrofon ist ein Fehler aufgetreten.`,
437
+ "sb8f0e32715402f50": `Bewertungsmethode`,
438
+ "sbbb7581f20733d79": `Freie Eingabe`,
439
+ "sbbb97b1c63507dc0": `Zahl`,
440
+ "sbcdedcdd8451318c": `Antworten zur\xFCcksetzen?`,
441
+ "sbdc2605da169f810": `Paar hinzuf\xFCgen`,
442
+ "sc01c972e33754d22": `Feedback bei Auswahl`,
443
+ "scabf78417c4e5d86": `Punkte`,
444
+ "scc337566a7187408": `Numerisch`,
445
+ "scc5671964ae0d6f7": `Auswahl in L\xFCcke umwandeln`,
446
+ "sd2223afb7d6b100d": `Typ`,
447
+ "sd23ee5e66df8400a": `Richtung`,
448
+ "sd24f4d056c0124f6": `Leere L\xFCcke`,
449
+ "sdb9694f31d64cfc8": `Deine Antwort`,
450
+ "sdc9d86c26cff613b": `Drag &amp; Drop`,
451
+ "sdd02ad83d7cf88a6": `Punkte`,
452
+ "sde7fee183b3bda88": `Nummerierung`,
453
+ "sde8252d2a4d268ce": `Kacheln`,
454
+ "se2af7220fe721133": `Freie Antwort`,
455
+ "se8a94b4effa2033e": `Alphabetisch`,
456
+ "sea7b286dd4c986fd": `Meldung bei falscher L\xF6sung`,
457
+ "seaf97719986faf4f": `L\xFCckentext`,
458
+ "sf0fce877a8caebec": `Zuf\xE4llige Reihenfolge`,
459
+ "sf4e3c96801ebe794": str`Lautstärke: ${0}%`,
460
+ "sf90be97cb08f3d5a": `Platzhalter`,
461
+ "sfe628f6e69f78cca": `Langer Text`,
462
+ "sffeb741d73d302b3": `Teilpunkte`
463
+ };
464
+ }
465
+ });
466
+
467
+ // localization/generated/es.ts
468
+ var es_exports = {};
469
+ __export(es_exports, {
470
+ templates: () => templates3
471
+ });
472
+ var templates3;
473
+ var init_es = __esm({
474
+ "localization/generated/es.ts"() {
475
+ init_lit_localize();
476
+ templates3 = {
477
+ "s021fb26da6a25f79": `Verdadero o falso`,
478
+ "s03d845021c14b84f": `Devolver a las respuestas`,
479
+ "s0b733d4a22c3b12f": `\xBFEnviar tus respuestas para su evaluaci\xF3n?`,
480
+ "s0d9a7bb29fee2d85": `Respuesta correcta`,
481
+ "s159928724265eb05": `A\xF1adir opci\xF3n`,
482
+ "s15bdec250a4a55fb": `Descendente`,
483
+ "s16e1bead7b9c95ce": `Memoria`,
484
+ "s1705e89d78286348": `Mensaje para soluci\xF3n correcta`,
485
+ "s19d2c07c1effbdaf": `Parcialmente correcto`,
486
+ "s21b5ec7253ee5705": `La direcci\xF3n de ordenaci\xF3n que se utilizar\xE1.`,
487
+ "s2317e68a652c8498": `Texto corto`,
488
+ "s2492f5fb1b05b45e": `Texto`,
489
+ "s270d49ea25614a7b": `Reiniciar respuestas`,
490
+ "s2ba5f4d8f3bd7c57": `Ordenar`,
491
+ "s2ceb11be2290bb1b": `Cancelar`,
492
+ "s2d96dca399230ff3": `La variante de disposici\xF3n que se utilizar\xE1.`,
493
+ "s2e4818861000b13f": `Disposici\xF3n`,
494
+ "s2f9c7cb1f24c3de8": `Pedir confirmaci\xF3n antes de enviar`,
495
+ "s31ac9cd289910c65": `Retroalimentaci\xF3n si no se selecciona`,
496
+ "s34adfb0ab932043d": `Ignorar may\xFAsculas`,
497
+ "s36163be9d8064432": `El estilo de numeraci\xF3n que se utilizar\xE1.`,
498
+ "s37cbecaec58e2192": `Modo`,
499
+ "s3d249bb480032121": `Lista`,
500
+ "s3ff3b89e5871fae3": `No se admiten varias l\xEDneas`,
501
+ "s4058ed60e59264ed": `El m\xE9todo de calificaci\xF3n que se utilizar\xE1.`,
502
+ "s4158d5fc29a1f991": `Correcto`,
503
+ "s43f438831bf2524d": `Sin responder`,
504
+ "s468f08dd3166cf44": `Elegir fondo`,
505
+ "s4802e47fe2e95134": `Opci\xF3n`,
506
+ "s485bbcc5d19e2b20": `Opci\xF3n m\xFAltiple`,
507
+ "s48e186fb300e5464": `Hora`,
508
+ "s49c940aecfef3ea0": `Resaltar`,
509
+ "s52cfa1d198476806": `Elemento`,
510
+ "s53bc6e49623c8f80": `A\xF1adir pregunta`,
511
+ "s54393bfa280ea55b": `Enunciado`,
512
+ "s57784c3b7df6150c": `Parcial (posici\xF3n)`,
513
+ "s5c8e286841ccfd0e": `Columnas de la cuadr\xEDcula`,
514
+ "s5ca3b69235e6046b": `Pedir confirmaci\xF3n antes de reiniciar`,
515
+ "s5d86300c6e210017": `WebWriter no tiene permiso para acceder al micr\xF3fono.`,
516
+ "s653f729e608b6653": `Haz clic para empezar a grabar`,
517
+ "s669b18c6d2d9c95b": `Ninguna`,
518
+ "s678dbf717a0b079d": `Todo o nada`,
519
+ "s71ba655ef7772e6c": `Incorrecto`,
520
+ "s721db58b7b0ea2e3": `Respuestas disponibles`,
521
+ "s7254ca27b16ae2d8": `Falso`,
522
+ "s729db3aabe406a0a": `Pregunta 1`,
523
+ "s729dc6aabe408a53": str`Pregunta ${0}`,
524
+ "s73c0e4814878d26e": `Ajustar a la cuadr\xEDcula`,
525
+ "s73feab3544c345b1": `punto`,
526
+ "s7667ffa7b27a7232": `Romana`,
527
+ "s766f42576852db83": `\xBFEnviar respuestas?`,
528
+ "s7a153886c76b7dcb": `Mostrar retroalimentaci\xF3n detallada`,
529
+ "s7ac431061b2ebf1a": `\xBFReiniciar todas las respuestas y empezar de nuevo?`,
530
+ "s7acd963aa22be70c": str`Velocidad: ${0}x`,
531
+ "s80dc9f56411917df": `Texto para resaltar`,
532
+ "s848dd69654cedb5a": `Alternar resaltado en la posici\xF3n`,
533
+ "s855bb4e2b08d1a18": `Sin respuesta`,
534
+ "s85ea99fb52be3385": `Verdadero`,
535
+ "s8685fbc5eca0de27": `Calificaci\xF3n`,
536
+ "s94c650bef124bd01": `Ascendente`,
537
+ "s96d2f1dc180a46d8": `Depurar`,
538
+ "s9bae45e308549364": `Fecha y hora`,
539
+ "s9daa676c05ab2a68": `Opci\xF3n \xFAnica`,
540
+ "s9dcffdd89c8e0f58": `Pista`,
541
+ "sa0a8f80935f767dd": `Ignorar may\xFAsculas y min\xFAsculas`,
542
+ "sa937fce28916575e": `Soluci\xF3n`,
543
+ "saa3efba1f0c816b7": `Voz`,
544
+ "saa48690ce74705d4": `Ocultar puntos`,
545
+ "saadba46653e4ffef": `Emparejamiento`,
546
+ "sac8252732f2edb19": `Fecha`,
547
+ "sb1c40c0af94993b6": `Parcial (secuencia)`,
548
+ "sb20f85b66b8eed5b": `Arrastrar y soltar`,
549
+ "sb3d4f79d9d8b71e5": `Enviar`,
550
+ "sb5b8485f95c97a79": `Se ha producido un error al acceder al micr\xF3fono.`,
551
+ "sb8f0e32715402f50": `M\xE9todo de calificaci\xF3n`,
552
+ "sbbb7581f20733d79": `Entrada libre`,
553
+ "sbbb97b1c63507dc0": `N\xFAmero`,
554
+ "sbcdedcdd8451318c": `\xBFReiniciar respuestas?`,
555
+ "sbdc2605da169f810": `A\xF1adir pareja`,
556
+ "sc01c972e33754d22": `Retroalimentaci\xF3n si se selecciona`,
557
+ "scabf78417c4e5d86": `Puntos`,
558
+ "scc337566a7187408": `Num\xE9rica`,
559
+ "scc5671964ae0d6f7": `Insertar hueco en la selecci\xF3n`,
560
+ "sd2223afb7d6b100d": `Tipo`,
561
+ "sd23ee5e66df8400a": `Direcci\xF3n`,
562
+ "sd24f4d056c0124f6": `Hueco vac\xEDo`,
563
+ "sdb9694f31d64cfc8": `Tu respuesta`,
564
+ "sdc9d86c26cff613b": `Arrastrar y soltar`,
565
+ "sdd02ad83d7cf88a6": `puntos`,
566
+ "sde7fee183b3bda88": `Numeraci\xF3n`,
567
+ "sde8252d2a4d268ce": `Mosaico`,
568
+ "se2af7220fe721133": `Respuesta libre`,
569
+ "se8a94b4effa2033e": `Alfab\xE9tica`,
570
+ "sea7b286dd4c986fd": `Mensaje para soluci\xF3n incorrecta`,
571
+ "seaf97719986faf4f": `Hueco`,
572
+ "sf0fce877a8caebec": `Orden aleatorio`,
573
+ "sf4e3c96801ebe794": str`Volumen: ${0}%`,
574
+ "sf90be97cb08f3d5a": `Marcador de posici\xF3n`,
575
+ "sfe628f6e69f78cca": `Texto largo`,
576
+ "sffeb741d73d302b3": `Puntuaci\xF3n parcial`
577
+ };
578
+ }
579
+ });
580
+
581
+ // localization/generated/fr.ts
582
+ var fr_exports = {};
583
+ __export(fr_exports, {
584
+ templates: () => templates4
585
+ });
586
+ var templates4;
587
+ var init_fr = __esm({
588
+ "localization/generated/fr.ts"() {
589
+ init_lit_localize();
590
+ templates4 = {
591
+ "s021fb26da6a25f79": `Vrai ou faux`,
592
+ "s03d845021c14b84f": `Remettre dans les r\xE9ponses`,
593
+ "s0b733d4a22c3b12f": `Envoyer vos r\xE9ponses pour \xE9valuation ?`,
594
+ "s0d9a7bb29fee2d85": `Bonne r\xE9ponse`,
595
+ "s159928724265eb05": `Ajouter une option`,
596
+ "s15bdec250a4a55fb": `D\xE9croissant`,
597
+ "s16e1bead7b9c95ce": `Memory`,
598
+ "s1705e89d78286348": `Message en cas de bonne r\xE9ponse`,
599
+ "s19d2c07c1effbdaf": `Partiellement correct`,
600
+ "s21b5ec7253ee5705": `Sens de classement \xE0 utiliser.`,
601
+ "s2317e68a652c8498": `Texte court`,
602
+ "s2492f5fb1b05b45e": `Texte`,
603
+ "s270d49ea25614a7b": `R\xE9initialiser les r\xE9ponses`,
604
+ "s2ba5f4d8f3bd7c57": `Mise en ordre`,
605
+ "s2ceb11be2290bb1b": `Annuler`,
606
+ "s2d96dca399230ff3": `Variante de disposition \xE0 utiliser.`,
607
+ "s2e4818861000b13f": `Disposition`,
608
+ "s2f9c7cb1f24c3de8": `Demander confirmation avant l'envoi`,
609
+ "s31ac9cd289910c65": `Feedback si non s\xE9lectionn\xE9`,
610
+ "s34adfb0ab932043d": `Ignorer la casse`,
611
+ "s36163be9d8064432": `Style de num\xE9rotation \xE0 utiliser.`,
612
+ "s37cbecaec58e2192": `Mode`,
613
+ "s3d249bb480032121": `Liste`,
614
+ "s3ff3b89e5871fae3": `Les lignes multiples ne sont pas prises en charge`,
615
+ "s4058ed60e59264ed": `M\xE9thode de notation \xE0 utiliser.`,
616
+ "s4158d5fc29a1f991": `Correct`,
617
+ "s43f438831bf2524d": `Sans r\xE9ponse`,
618
+ "s468f08dd3166cf44": `Choisir un arri\xE8re-plan`,
619
+ "s4802e47fe2e95134": `Option`,
620
+ "s485bbcc5d19e2b20": `Choix multiple`,
621
+ "s48e186fb300e5464": `Heure`,
622
+ "s49c940aecfef3ea0": `Surlignage`,
623
+ "s52cfa1d198476806": `\xC9l\xE9ment`,
624
+ "s53bc6e49623c8f80": `Ajouter une question`,
625
+ "s54393bfa280ea55b": `\xC9nonc\xE9`,
626
+ "s57784c3b7df6150c": `Partielle (position)`,
627
+ "s5c8e286841ccfd0e": `Colonnes de la grille`,
628
+ "s5ca3b69235e6046b": `Demander confirmation avant la r\xE9initialisation`,
629
+ "s5d86300c6e210017": `WebWriter n'a pas l'autorisation d'acc\xE9der au microphone.`,
630
+ "s653f729e608b6653": `Cliquez pour d\xE9marrer l'enregistrement`,
631
+ "s669b18c6d2d9c95b": `Aucune`,
632
+ "s678dbf717a0b079d": `Tout ou rien`,
633
+ "s71ba655ef7772e6c": `Incorrect`,
634
+ "s721db58b7b0ea2e3": `R\xE9ponses disponibles`,
635
+ "s7254ca27b16ae2d8": `Faux`,
636
+ "s729db3aabe406a0a": `Question 1`,
637
+ "s729dc6aabe408a53": str`Question ${0}`,
638
+ "s73c0e4814878d26e": `Aligner sur la grille`,
639
+ "s73feab3544c345b1": `point`,
640
+ "s7667ffa7b27a7232": `Romaine`,
641
+ "s766f42576852db83": `Envoyer les r\xE9ponses ?`,
642
+ "s7a153886c76b7dcb": `Afficher un feedback d\xE9taill\xE9`,
643
+ "s7ac431061b2ebf1a": `R\xE9initialiser toutes les r\xE9ponses et recommencer ?`,
644
+ "s7acd963aa22be70c": str`Vitesse : ${0}x`,
645
+ "s80dc9f56411917df": `Texte \xE0 surligner`,
646
+ "s848dd69654cedb5a": `Activer/d\xE9sactiver le surlignage \xE0 cette position`,
647
+ "s855bb4e2b08d1a18": `Aucune r\xE9ponse`,
648
+ "s85ea99fb52be3385": `Vrai`,
649
+ "s8685fbc5eca0de27": `Notation`,
650
+ "s94c650bef124bd01": `Croissant`,
651
+ "s96d2f1dc180a46d8": `D\xE9bogage`,
652
+ "s9bae45e308549364": `Date et heure`,
653
+ "s9daa676c05ab2a68": `Choix unique`,
654
+ "s9dcffdd89c8e0f58": `Indice`,
655
+ "sa0a8f80935f767dd": `Ignorer la casse`,
656
+ "sa937fce28916575e": `Solution`,
657
+ "saa3efba1f0c816b7": `Enregistrement vocal`,
658
+ "saa48690ce74705d4": `Masquer les points`,
659
+ "saadba46653e4ffef": `Appariement`,
660
+ "sac8252732f2edb19": `Date`,
661
+ "sb1c40c0af94993b6": `Partielle (s\xE9quence)`,
662
+ "sb20f85b66b8eed5b": `Glisser-d\xE9poser`,
663
+ "sb3d4f79d9d8b71e5": `Envoyer`,
664
+ "sb5b8485f95c97a79": `Une erreur s'est produite lors de l'acc\xE8s au microphone.`,
665
+ "sb8f0e32715402f50": `M\xE9thode de notation`,
666
+ "sbbb7581f20733d79": `Saisie libre`,
667
+ "sbbb97b1c63507dc0": `Nombre`,
668
+ "sbcdedcdd8451318c": `R\xE9initialiser les r\xE9ponses ?`,
669
+ "sbdc2605da169f810": `Ajouter une paire`,
670
+ "sc01c972e33754d22": `Feedback si s\xE9lectionn\xE9`,
671
+ "scabf78417c4e5d86": `Points`,
672
+ "scc337566a7187408": `Num\xE9rique`,
673
+ "scc5671964ae0d6f7": `Ins\xE9rer un trou dans la s\xE9lection`,
674
+ "sd2223afb7d6b100d": `Type`,
675
+ "sd23ee5e66df8400a": `Sens`,
676
+ "sd24f4d056c0124f6": `Trou vide`,
677
+ "sdb9694f31d64cfc8": `Votre r\xE9ponse`,
678
+ "sdc9d86c26cff613b": `Glisser-d\xE9poser`,
679
+ "sdd02ad83d7cf88a6": `points`,
680
+ "sde7fee183b3bda88": `Num\xE9rotation`,
681
+ "sde8252d2a4d268ce": `Tuiles`,
682
+ "se2af7220fe721133": `R\xE9ponse libre`,
683
+ "se8a94b4effa2033e": `Alphab\xE9tique`,
684
+ "sea7b286dd4c986fd": `Message en cas de mauvaise r\xE9ponse`,
685
+ "seaf97719986faf4f": `Texte \xE0 trous`,
686
+ "sf0fce877a8caebec": `Ordre al\xE9atoire`,
687
+ "sf4e3c96801ebe794": str`Volume : ${0} %`,
688
+ "sf90be97cb08f3d5a": `Texte indicatif`,
689
+ "sfe628f6e69f78cca": `Texte long`,
690
+ "sffeb741d73d302b3": `Notation partielle`
691
+ };
692
+ }
693
+ });
694
+
695
+ // localization/generated/index.d.ts
696
+ var index_d_exports = {};
697
+ __export(index_d_exports, {
698
+ default: () => index_d_default
699
+ });
700
+ var index_d_default;
701
+ var init_index_d = __esm({
702
+ "localization/generated/index.d.ts"() {
703
+ index_d_default = LOCALIZE;
704
+ }
705
+ });
706
+
707
+ // localization/generated/it.ts
708
+ var it_exports = {};
709
+ __export(it_exports, {
710
+ templates: () => templates5
711
+ });
712
+ var templates5;
713
+ var init_it = __esm({
714
+ "localization/generated/it.ts"() {
715
+ init_lit_localize();
716
+ templates5 = {
717
+ "s021fb26da6a25f79": `Vero o falso`,
718
+ "s03d845021c14b84f": `Rimetti tra le risposte`,
719
+ "s0b733d4a22c3b12f": `Inviare le risposte per la valutazione?`,
720
+ "s0d9a7bb29fee2d85": `Risposta corretta`,
721
+ "s159928724265eb05": `Aggiungi opzione`,
722
+ "s15bdec250a4a55fb": `Decrescente`,
723
+ "s16e1bead7b9c95ce": `Memory`,
724
+ "s1705e89d78286348": `Messaggio per soluzione corretta`,
725
+ "s19d2c07c1effbdaf": `Parzialmente corretto`,
726
+ "s21b5ec7253ee5705": `La direzione di ordinamento da usare.`,
727
+ "s2317e68a652c8498": `Testo breve`,
728
+ "s2492f5fb1b05b45e": `Testo`,
729
+ "s270d49ea25614a7b": `Azzera risposte`,
730
+ "s2ba5f4d8f3bd7c57": `Ordinamento`,
731
+ "s2ceb11be2290bb1b": `Annulla`,
732
+ "s2d96dca399230ff3": `La variante di layout da usare.`,
733
+ "s2e4818861000b13f": `Layout`,
734
+ "s2f9c7cb1f24c3de8": `Chiedi conferma prima dell'invio`,
735
+ "s31ac9cd289910c65": `Feedback se non selezionata`,
736
+ "s34adfb0ab932043d": `Ignora maiuscole/minuscole`,
737
+ "s36163be9d8064432": `Lo stile di numerazione da usare.`,
738
+ "s37cbecaec58e2192": `Modalit\xE0`,
739
+ "s3d249bb480032121": `Elenco`,
740
+ "s3ff3b89e5871fae3": `Le righe multiple non sono supportate`,
741
+ "s4058ed60e59264ed": `Il metodo di valutazione da usare.`,
742
+ "s4158d5fc29a1f991": `Corretto`,
743
+ "s43f438831bf2524d": `Senza risposta`,
744
+ "s468f08dd3166cf44": `Scegli sfondo`,
745
+ "s4802e47fe2e95134": `Opzione`,
746
+ "s485bbcc5d19e2b20": `Scelta multipla`,
747
+ "s48e186fb300e5464": `Ora`,
748
+ "s49c940aecfef3ea0": `Evidenziazione`,
749
+ "s52cfa1d198476806": `Elemento`,
750
+ "s53bc6e49623c8f80": `Aggiungi domanda`,
751
+ "s54393bfa280ea55b": `Consegna`,
752
+ "s57784c3b7df6150c": `Parziale (posizione)`,
753
+ "s5c8e286841ccfd0e": `Colonne griglia`,
754
+ "s5ca3b69235e6046b": `Chiedi conferma prima di azzerare`,
755
+ "s5d86300c6e210017": `WebWriter non dispone dell'autorizzazione per accedere al microfono.`,
756
+ "s653f729e608b6653": `Clicca per avviare la registrazione`,
757
+ "s669b18c6d2d9c95b": `Nessuna`,
758
+ "s678dbf717a0b079d": `Tutto o niente`,
759
+ "s71ba655ef7772e6c": `Errato`,
760
+ "s721db58b7b0ea2e3": `Risposte disponibili`,
761
+ "s7254ca27b16ae2d8": `Falso`,
762
+ "s729db3aabe406a0a": `Domanda 1`,
763
+ "s729dc6aabe408a53": str`Domanda ${0}`,
764
+ "s73c0e4814878d26e": `Aggancia alla griglia`,
765
+ "s73feab3544c345b1": `punto`,
766
+ "s7667ffa7b27a7232": `Romana`,
767
+ "s766f42576852db83": `Inviare le risposte?`,
768
+ "s7a153886c76b7dcb": `Mostra feedback dettagliato`,
769
+ "s7ac431061b2ebf1a": `Azzerare tutte le risposte e ricominciare?`,
770
+ "s7acd963aa22be70c": str`Velocità: ${0}x`,
771
+ "s80dc9f56411917df": `Testo da evidenziare`,
772
+ "s848dd69654cedb5a": `Attiva/disattiva evidenziazione al cursore`,
773
+ "s855bb4e2b08d1a18": `Nessuna risposta`,
774
+ "s85ea99fb52be3385": `Vero`,
775
+ "s8685fbc5eca0de27": `Valutazione`,
776
+ "s94c650bef124bd01": `Crescente`,
777
+ "s96d2f1dc180a46d8": `Debug`,
778
+ "s9bae45e308549364": `Data e ora`,
779
+ "s9daa676c05ab2a68": `Scelta singola`,
780
+ "s9dcffdd89c8e0f58": `Suggerimento`,
781
+ "sa0a8f80935f767dd": `Ignora maiuscole/minuscole`,
782
+ "sa937fce28916575e": `Soluzione`,
783
+ "saa3efba1f0c816b7": `Registrazione vocale`,
784
+ "saa48690ce74705d4": `Nascondi punti`,
785
+ "saadba46653e4ffef": `Abbinamento`,
786
+ "sac8252732f2edb19": `Data`,
787
+ "sb1c40c0af94993b6": `Parziale (sequenza)`,
788
+ "sb20f85b66b8eed5b": `Trascinamento`,
789
+ "sb3d4f79d9d8b71e5": `Invia`,
790
+ "sb5b8485f95c97a79": `Si \xE8 verificato un errore durante l'accesso al microfono.`,
791
+ "sb8f0e32715402f50": `Metodo di valutazione`,
792
+ "sbbb7581f20733d79": `Inserimento libero`,
793
+ "sbbb97b1c63507dc0": `Numero`,
794
+ "sbcdedcdd8451318c": `Azzerare le risposte?`,
795
+ "sbdc2605da169f810": `Aggiungi coppia`,
796
+ "sc01c972e33754d22": `Feedback se selezionata`,
797
+ "scabf78417c4e5d86": `Punti`,
798
+ "scc337566a7187408": `Numerica`,
799
+ "scc5671964ae0d6f7": `Inserisci lacuna nella selezione`,
800
+ "sd2223afb7d6b100d": `Tipo`,
801
+ "sd23ee5e66df8400a": `Direzione`,
802
+ "sd24f4d056c0124f6": `Lacuna vuota`,
803
+ "sdb9694f31d64cfc8": `La tua risposta`,
804
+ "sdc9d86c26cff613b": `Trascinamento`,
805
+ "sdd02ad83d7cf88a6": `punti`,
806
+ "sde7fee183b3bda88": `Numerazione`,
807
+ "sde8252d2a4d268ce": `Riquadri`,
808
+ "se2af7220fe721133": `Risposta libera`,
809
+ "se8a94b4effa2033e": `Alfabetica`,
810
+ "sea7b286dd4c986fd": `Messaggio per soluzione errata`,
811
+ "seaf97719986faf4f": `Lacuna`,
812
+ "sf0fce877a8caebec": `Ordine casuale`,
813
+ "sf4e3c96801ebe794": str`Volume: ${0}%`,
814
+ "sf90be97cb08f3d5a": `Segnaposto`,
815
+ "sfe628f6e69f78cca": `Testo lungo`,
816
+ "sffeb741d73d302b3": `Punteggio parziale`
817
+ };
818
+ }
819
+ });
820
+
821
+ // localization/generated/nl.ts
822
+ var nl_exports = {};
823
+ __export(nl_exports, {
824
+ templates: () => templates6
825
+ });
826
+ var templates6;
827
+ var init_nl = __esm({
828
+ "localization/generated/nl.ts"() {
829
+ init_lit_localize();
830
+ templates6 = {
831
+ "s021fb26da6a25f79": `Waar of niet waar`,
832
+ "s03d845021c14b84f": `Terug naar antwoorden`,
833
+ "s0b733d4a22c3b12f": `Antwoorden inleveren ter beoordeling?`,
834
+ "s0d9a7bb29fee2d85": `Juiste antwoord`,
835
+ "s159928724265eb05": `Optie toevoegen`,
836
+ "s15bdec250a4a55fb": `Aflopend`,
837
+ "s16e1bead7b9c95ce": `Memory`,
838
+ "s1705e89d78286348": `Bericht bij juiste oplossing`,
839
+ "s19d2c07c1effbdaf": `Deels goed`,
840
+ "s21b5ec7253ee5705": `De te gebruiken richting van de volgorde.`,
841
+ "s2317e68a652c8498": `Korte tekst`,
842
+ "s2492f5fb1b05b45e": `Tekst`,
843
+ "s270d49ea25614a7b": `Antwoorden wissen`,
844
+ "s2ba5f4d8f3bd7c57": `Volgorde`,
845
+ "s2ceb11be2290bb1b": `Annuleren`,
846
+ "s2d96dca399230ff3": `De te gebruiken lay-outvariant.`,
847
+ "s2e4818861000b13f": `Lay-out`,
848
+ "s2f9c7cb1f24c3de8": `Bevestiging vragen voor inleveren`,
849
+ "s31ac9cd289910c65": `Feedback indien niet geselecteerd`,
850
+ "s34adfb0ab932043d": `Hoofdletters negeren`,
851
+ "s36163be9d8064432": `De te gebruiken nummeringsstijl.`,
852
+ "s37cbecaec58e2192": `Modus`,
853
+ "s3d249bb480032121": `Lijst`,
854
+ "s3ff3b89e5871fae3": `Meerdere regels worden niet ondersteund`,
855
+ "s4058ed60e59264ed": `De te gebruiken beoordelingsmethode.`,
856
+ "s4158d5fc29a1f991": `Goed`,
857
+ "s43f438831bf2524d": `Niet beantwoord`,
858
+ "s468f08dd3166cf44": `Achtergrond kiezen`,
859
+ "s4802e47fe2e95134": `Optie`,
860
+ "s485bbcc5d19e2b20": `Meervoudige keuze`,
861
+ "s48e186fb300e5464": `Tijd`,
862
+ "s49c940aecfef3ea0": `Markeren`,
863
+ "s52cfa1d198476806": `Item`,
864
+ "s53bc6e49623c8f80": `Vraag toevoegen`,
865
+ "s54393bfa280ea55b": `Opdracht`,
866
+ "s57784c3b7df6150c": `Deelpunten (positie)`,
867
+ "s5c8e286841ccfd0e": `Rasterkolommen`,
868
+ "s5ca3b69235e6046b": `Bevestiging vragen voor wissen`,
869
+ "s5d86300c6e210017": `WebWriter heeft geen toestemming om de microfoon te gebruiken.`,
870
+ "s653f729e608b6653": `Klik om de opname te starten`,
871
+ "s669b18c6d2d9c95b": `Geen`,
872
+ "s678dbf717a0b079d": `Goed/fout`,
873
+ "s71ba655ef7772e6c": `Fout`,
874
+ "s721db58b7b0ea2e3": `Beschikbare antwoorden`,
875
+ "s7254ca27b16ae2d8": `Niet waar`,
876
+ "s729db3aabe406a0a": `Vraag 1`,
877
+ "s729dc6aabe408a53": str`Vraag ${0}`,
878
+ "s73c0e4814878d26e": `Uitlijnen op raster`,
879
+ "s73feab3544c345b1": `punt`,
880
+ "s7667ffa7b27a7232": `Romeins`,
881
+ "s766f42576852db83": `Antwoorden inleveren?`,
882
+ "s7a153886c76b7dcb": `Gedetailleerde feedback tonen`,
883
+ "s7ac431061b2ebf1a": `Alle antwoorden wissen en opnieuw beginnen?`,
884
+ "s7acd963aa22be70c": str`Snelheid: ${0}x`,
885
+ "s80dc9f56411917df": `Te markeren tekst`,
886
+ "s848dd69654cedb5a": `Markering op positie aan/uit`,
887
+ "s855bb4e2b08d1a18": `Geen antwoord`,
888
+ "s85ea99fb52be3385": `Waar`,
889
+ "s8685fbc5eca0de27": `Beoordeling`,
890
+ "s94c650bef124bd01": `Oplopend`,
891
+ "s96d2f1dc180a46d8": `Debug`,
892
+ "s9bae45e308549364": `Datum en tijd`,
893
+ "s9daa676c05ab2a68": `Enkelvoudige keuze`,
894
+ "s9dcffdd89c8e0f58": `Hint`,
895
+ "sa0a8f80935f767dd": `Hoofdlettergebruik negeren`,
896
+ "sa937fce28916575e": `Oplossing`,
897
+ "saa3efba1f0c816b7": `Spraak`,
898
+ "saa48690ce74705d4": `Punten verbergen`,
899
+ "saadba46653e4ffef": `Koppelen`,
900
+ "sac8252732f2edb19": `Datum`,
901
+ "sb1c40c0af94993b6": `Deelpunten (volgorde)`,
902
+ "sb20f85b66b8eed5b": `Slepen en neerzetten`,
903
+ "sb3d4f79d9d8b71e5": `Inleveren`,
904
+ "sb5b8485f95c97a79": `Er is een fout opgetreden bij de toegang tot de microfoon.`,
905
+ "sb8f0e32715402f50": `Beoordelingsmethode`,
906
+ "sbbb7581f20733d79": `Vrije invoer`,
907
+ "sbbb97b1c63507dc0": `Getal`,
908
+ "sbcdedcdd8451318c": `Antwoorden wissen?`,
909
+ "sbdc2605da169f810": `Paar toevoegen`,
910
+ "sc01c972e33754d22": `Feedback indien geselecteerd`,
911
+ "scabf78417c4e5d86": `Punten`,
912
+ "scc337566a7187408": `Numeriek`,
913
+ "scc5671964ae0d6f7": `Invulveld invoegen bij selectie`,
914
+ "sd2223afb7d6b100d": `Type`,
915
+ "sd23ee5e66df8400a": `Richting`,
916
+ "sd24f4d056c0124f6": `Leeg invulveld`,
917
+ "sdb9694f31d64cfc8": `Jouw antwoord`,
918
+ "sdc9d86c26cff613b": `Slepen en neerzetten`,
919
+ "sdd02ad83d7cf88a6": `punten`,
920
+ "sde7fee183b3bda88": `Nummering`,
921
+ "sde8252d2a4d268ce": `Tegels`,
922
+ "se2af7220fe721133": `Vrij antwoord`,
923
+ "se8a94b4effa2033e": `Alfabetisch`,
924
+ "sea7b286dd4c986fd": `Bericht bij foute oplossing`,
925
+ "seaf97719986faf4f": `Invulveld`,
926
+ "sf0fce877a8caebec": `Volgorde willekeurig maken`,
927
+ "sf4e3c96801ebe794": str`Volume: ${0}%`,
928
+ "sf90be97cb08f3d5a": `Voorbeeldtekst`,
929
+ "sfe628f6e69f78cca": `Lange tekst`,
930
+ "sffeb741d73d302b3": `Deelpunten`
931
+ };
932
+ }
933
+ });
934
+
935
+ // src/widgets/choice/webwriter-true-false.ts
936
+ init_lit_localize();
937
+
938
+ // node_modules/@lit/reactive-element/css-tag.js
939
+ var t = globalThis;
940
+ var e = t.ShadowRoot && (void 0 === t.ShadyCSS || t.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype;
941
+ var s = Symbol();
942
+ var o = /* @__PURE__ */ new WeakMap();
943
+ var n = class {
944
+ constructor(t7, e9, o9) {
945
+ if (this._$cssResult$ = true, o9 !== s) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
946
+ this.cssText = t7, this.t = e9;
947
+ }
948
+ get styleSheet() {
949
+ let t7 = this.o;
950
+ const s5 = this.t;
951
+ if (e && void 0 === t7) {
952
+ const e9 = void 0 !== s5 && 1 === s5.length;
953
+ e9 && (t7 = o.get(s5)), void 0 === t7 && ((this.o = t7 = new CSSStyleSheet()).replaceSync(this.cssText), e9 && o.set(s5, t7));
954
+ }
955
+ return t7;
956
+ }
957
+ toString() {
958
+ return this.cssText;
959
+ }
960
+ };
961
+ var r = (t7) => new n("string" == typeof t7 ? t7 : t7 + "", void 0, s);
962
+ var i = (t7, ...e9) => {
963
+ const o9 = 1 === t7.length ? t7[0] : e9.reduce((e10, s5, o10) => e10 + ((t8) => {
964
+ if (true === t8._$cssResult$) return t8.cssText;
965
+ if ("number" == typeof t8) return t8;
966
+ 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.");
967
+ })(s5) + t7[o10 + 1], t7[0]);
968
+ return new n(o9, t7, s);
969
+ };
970
+ var S = (s5, o9) => {
971
+ if (e) s5.adoptedStyleSheets = o9.map((t7) => t7 instanceof CSSStyleSheet ? t7 : t7.styleSheet);
972
+ else for (const e9 of o9) {
973
+ const o10 = document.createElement("style"), n7 = t.litNonce;
974
+ void 0 !== n7 && o10.setAttribute("nonce", n7), o10.textContent = e9.cssText, s5.appendChild(o10);
975
+ }
976
+ };
977
+ var c = e ? (t7) => t7 : (t7) => t7 instanceof CSSStyleSheet ? ((t8) => {
978
+ let e9 = "";
979
+ for (const s5 of t8.cssRules) e9 += s5.cssText;
980
+ return r(e9);
981
+ })(t7) : t7;
982
+
983
+ // node_modules/@lit/reactive-element/reactive-element.js
984
+ var { is: i2, defineProperty: e2, getOwnPropertyDescriptor: h, getOwnPropertyNames: r2, getOwnPropertySymbols: o2, getPrototypeOf: n2 } = Object;
985
+ var a = globalThis;
986
+ var c2 = a.trustedTypes;
987
+ var l = c2 ? c2.emptyScript : "";
988
+ var p = a.reactiveElementPolyfillSupport;
989
+ var d = (t7, s5) => t7;
990
+ var u = { toAttribute(t7, s5) {
991
+ switch (s5) {
992
+ case Boolean:
993
+ t7 = t7 ? l : null;
994
+ break;
995
+ case Object:
996
+ case Array:
997
+ t7 = null == t7 ? t7 : JSON.stringify(t7);
998
+ }
999
+ return t7;
1000
+ }, fromAttribute(t7, s5) {
1001
+ let i7 = t7;
1002
+ switch (s5) {
1003
+ case Boolean:
1004
+ i7 = null !== t7;
1005
+ break;
1006
+ case Number:
1007
+ i7 = null === t7 ? null : Number(t7);
1008
+ break;
1009
+ case Object:
1010
+ case Array:
1011
+ try {
1012
+ i7 = JSON.parse(t7);
1013
+ } catch (t8) {
1014
+ i7 = null;
1015
+ }
1016
+ }
1017
+ return i7;
1018
+ } };
1019
+ var f = (t7, s5) => !i2(t7, s5);
1020
+ var b = { attribute: true, type: String, converter: u, reflect: false, useDefault: false, hasChanged: f };
1021
+ Symbol.metadata ??= Symbol("metadata"), a.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
1022
+ var y = class extends HTMLElement {
1023
+ static addInitializer(t7) {
1024
+ this._$Ei(), (this.l ??= []).push(t7);
1025
+ }
1026
+ static get observedAttributes() {
1027
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
1028
+ }
1029
+ static createProperty(t7, s5 = b) {
1030
+ if (s5.state && (s5.attribute = false), this._$Ei(), this.prototype.hasOwnProperty(t7) && ((s5 = Object.create(s5)).wrapped = true), this.elementProperties.set(t7, s5), !s5.noAccessor) {
1031
+ const i7 = Symbol(), h4 = this.getPropertyDescriptor(t7, i7, s5);
1032
+ void 0 !== h4 && e2(this.prototype, t7, h4);
1033
+ }
1034
+ }
1035
+ static getPropertyDescriptor(t7, s5, i7) {
1036
+ const { get: e9, set: r7 } = h(this.prototype, t7) ?? { get() {
1037
+ return this[s5];
1038
+ }, set(t8) {
1039
+ this[s5] = t8;
1040
+ } };
1041
+ return { get: e9, set(s6) {
1042
+ const h4 = e9?.call(this);
1043
+ r7?.call(this, s6), this.requestUpdate(t7, h4, i7);
1044
+ }, configurable: true, enumerable: true };
1045
+ }
1046
+ static getPropertyOptions(t7) {
1047
+ return this.elementProperties.get(t7) ?? b;
1048
+ }
1049
+ static _$Ei() {
1050
+ if (this.hasOwnProperty(d("elementProperties"))) return;
1051
+ const t7 = n2(this);
1052
+ t7.finalize(), void 0 !== t7.l && (this.l = [...t7.l]), this.elementProperties = new Map(t7.elementProperties);
1053
+ }
1054
+ static finalize() {
1055
+ if (this.hasOwnProperty(d("finalized"))) return;
1056
+ if (this.finalized = true, this._$Ei(), this.hasOwnProperty(d("properties"))) {
1057
+ const t8 = this.properties, s5 = [...r2(t8), ...o2(t8)];
1058
+ for (const i7 of s5) this.createProperty(i7, t8[i7]);
1059
+ }
1060
+ const t7 = this[Symbol.metadata];
1061
+ if (null !== t7) {
1062
+ const s5 = litPropertyMetadata.get(t7);
1063
+ if (void 0 !== s5) for (const [t8, i7] of s5) this.elementProperties.set(t8, i7);
1064
+ }
1065
+ this._$Eh = /* @__PURE__ */ new Map();
1066
+ for (const [t8, s5] of this.elementProperties) {
1067
+ const i7 = this._$Eu(t8, s5);
1068
+ void 0 !== i7 && this._$Eh.set(i7, t8);
1069
+ }
1070
+ this.elementStyles = this.finalizeStyles(this.styles);
1071
+ }
1072
+ static finalizeStyles(s5) {
1073
+ const i7 = [];
1074
+ if (Array.isArray(s5)) {
1075
+ const e9 = new Set(s5.flat(1 / 0).reverse());
1076
+ for (const s6 of e9) i7.unshift(c(s6));
1077
+ } else void 0 !== s5 && i7.push(c(s5));
1078
+ return i7;
1079
+ }
1080
+ static _$Eu(t7, s5) {
1081
+ const i7 = s5.attribute;
1082
+ return false === i7 ? void 0 : "string" == typeof i7 ? i7 : "string" == typeof t7 ? t7.toLowerCase() : void 0;
1083
+ }
1084
+ constructor() {
1085
+ super(), this._$Ep = void 0, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
1086
+ }
1087
+ _$Ev() {
1088
+ this._$ES = new Promise((t7) => this.enableUpdating = t7), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((t7) => t7(this));
1089
+ }
1090
+ addController(t7) {
1091
+ (this._$EO ??= /* @__PURE__ */ new Set()).add(t7), void 0 !== this.renderRoot && this.isConnected && t7.hostConnected?.();
1092
+ }
1093
+ removeController(t7) {
1094
+ this._$EO?.delete(t7);
1095
+ }
1096
+ _$E_() {
1097
+ const t7 = /* @__PURE__ */ new Map(), s5 = this.constructor.elementProperties;
1098
+ for (const i7 of s5.keys()) this.hasOwnProperty(i7) && (t7.set(i7, this[i7]), delete this[i7]);
1099
+ t7.size > 0 && (this._$Ep = t7);
1100
+ }
1101
+ createRenderRoot() {
1102
+ const t7 = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
1103
+ return S(t7, this.constructor.elementStyles), t7;
1104
+ }
1105
+ connectedCallback() {
1106
+ this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(true), this._$EO?.forEach((t7) => t7.hostConnected?.());
1107
+ }
1108
+ enableUpdating(t7) {
1109
+ }
1110
+ disconnectedCallback() {
1111
+ this._$EO?.forEach((t7) => t7.hostDisconnected?.());
1112
+ }
1113
+ attributeChangedCallback(t7, s5, i7) {
1114
+ this._$AK(t7, i7);
1115
+ }
1116
+ _$ET(t7, s5) {
1117
+ const i7 = this.constructor.elementProperties.get(t7), e9 = this.constructor._$Eu(t7, i7);
1118
+ if (void 0 !== e9 && true === i7.reflect) {
1119
+ const h4 = (void 0 !== i7.converter?.toAttribute ? i7.converter : u).toAttribute(s5, i7.type);
1120
+ this._$Em = t7, null == h4 ? this.removeAttribute(e9) : this.setAttribute(e9, h4), this._$Em = null;
1121
+ }
1122
+ }
1123
+ _$AK(t7, s5) {
1124
+ const i7 = this.constructor, e9 = i7._$Eh.get(t7);
1125
+ if (void 0 !== e9 && this._$Em !== e9) {
1126
+ const t8 = i7.getPropertyOptions(e9), h4 = "function" == typeof t8.converter ? { fromAttribute: t8.converter } : void 0 !== t8.converter?.fromAttribute ? t8.converter : u;
1127
+ this._$Em = e9;
1128
+ const r7 = h4.fromAttribute(s5, t8.type);
1129
+ this[e9] = r7 ?? this._$Ej?.get(e9) ?? r7, this._$Em = null;
1130
+ }
1131
+ }
1132
+ requestUpdate(t7, s5, i7, e9 = false, h4) {
1133
+ if (void 0 !== t7) {
1134
+ const r7 = this.constructor;
1135
+ if (false === e9 && (h4 = this[t7]), i7 ??= r7.getPropertyOptions(t7), !((i7.hasChanged ?? f)(h4, s5) || i7.useDefault && i7.reflect && h4 === this._$Ej?.get(t7) && !this.hasAttribute(r7._$Eu(t7, i7)))) return;
1136
+ this.C(t7, s5, i7);
1137
+ }
1138
+ false === this.isUpdatePending && (this._$ES = this._$EP());
1139
+ }
1140
+ C(t7, s5, { useDefault: i7, reflect: e9, wrapped: h4 }, r7) {
1141
+ i7 && !(this._$Ej ??= /* @__PURE__ */ new Map()).has(t7) && (this._$Ej.set(t7, r7 ?? s5 ?? this[t7]), true !== h4 || void 0 !== r7) || (this._$AL.has(t7) || (this.hasUpdated || i7 || (s5 = void 0), this._$AL.set(t7, s5)), true === e9 && this._$Em !== t7 && (this._$Eq ??= /* @__PURE__ */ new Set()).add(t7));
1142
+ }
1143
+ async _$EP() {
1144
+ this.isUpdatePending = true;
1145
+ try {
1146
+ await this._$ES;
1147
+ } catch (t8) {
1148
+ Promise.reject(t8);
1149
+ }
1150
+ const t7 = this.scheduleUpdate();
1151
+ return null != t7 && await t7, !this.isUpdatePending;
1152
+ }
1153
+ scheduleUpdate() {
1154
+ return this.performUpdate();
1155
+ }
1156
+ performUpdate() {
1157
+ if (!this.isUpdatePending) return;
1158
+ if (!this.hasUpdated) {
1159
+ if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
1160
+ for (const [t9, s6] of this._$Ep) this[t9] = s6;
1161
+ this._$Ep = void 0;
1162
+ }
1163
+ const t8 = this.constructor.elementProperties;
1164
+ if (t8.size > 0) for (const [s6, i7] of t8) {
1165
+ const { wrapped: t9 } = i7, e9 = this[s6];
1166
+ true !== t9 || this._$AL.has(s6) || void 0 === e9 || this.C(s6, void 0, i7, e9);
1167
+ }
1168
+ }
1169
+ let t7 = false;
1170
+ const s5 = this._$AL;
1171
+ try {
1172
+ t7 = this.shouldUpdate(s5), t7 ? (this.willUpdate(s5), this._$EO?.forEach((t8) => t8.hostUpdate?.()), this.update(s5)) : this._$EM();
1173
+ } catch (s6) {
1174
+ throw t7 = false, this._$EM(), s6;
1175
+ }
1176
+ t7 && this._$AE(s5);
1177
+ }
1178
+ willUpdate(t7) {
1179
+ }
1180
+ _$AE(t7) {
1181
+ this._$EO?.forEach((t8) => t8.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t7)), this.updated(t7);
1182
+ }
1183
+ _$EM() {
1184
+ this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = false;
1185
+ }
1186
+ get updateComplete() {
1187
+ return this.getUpdateComplete();
1188
+ }
1189
+ getUpdateComplete() {
1190
+ return this._$ES;
1191
+ }
1192
+ shouldUpdate(t7) {
1193
+ return true;
1194
+ }
1195
+ update(t7) {
1196
+ this._$Eq &&= this._$Eq.forEach((t8) => this._$ET(t8, this[t8])), this._$EM();
1197
+ }
1198
+ updated(t7) {
1199
+ }
1200
+ firstUpdated(t7) {
1201
+ }
1202
+ };
1203
+ 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");
1204
+
1205
+ // node_modules/lit-html/lit-html.js
1206
+ var t2 = globalThis;
1207
+ var i3 = (t7) => t7;
1208
+ var s2 = t2.trustedTypes;
1209
+ var e3 = s2 ? s2.createPolicy("lit-html", { createHTML: (t7) => t7 }) : void 0;
1210
+ var h2 = "$lit$";
1211
+ var o3 = `lit$${Math.random().toFixed(9).slice(2)}$`;
1212
+ var n3 = "?" + o3;
1213
+ var r3 = `<${n3}>`;
1214
+ var l2 = document;
1215
+ var c3 = () => l2.createComment("");
1216
+ var a2 = (t7) => null === t7 || "object" != typeof t7 && "function" != typeof t7;
1217
+ var u2 = Array.isArray;
1218
+ var d2 = (t7) => u2(t7) || "function" == typeof t7?.[Symbol.iterator];
1219
+ var f2 = "[ \n\f\r]";
1220
+ var v = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g;
1221
+ var _ = /-->/g;
1222
+ var m = />/g;
1223
+ var p2 = RegExp(`>|${f2}(?:([^\\s"'>=/]+)(${f2}*=${f2}*(?:[^
1224
+ \f\r"'\`<>=]|("|')|))|$)`, "g");
1225
+ var g = /'/g;
1226
+ var $ = /"/g;
1227
+ var y2 = /^(?:script|style|textarea|title)$/i;
1228
+ var x = (t7) => (i7, ...s5) => ({ _$litType$: t7, strings: i7, values: s5 });
1229
+ var b2 = x(1);
1230
+ var w = x(2);
1231
+ var T = x(3);
1232
+ var E = Symbol.for("lit-noChange");
1233
+ var A = Symbol.for("lit-nothing");
1234
+ var C = /* @__PURE__ */ new WeakMap();
1235
+ var P = l2.createTreeWalker(l2, 129);
1236
+ function V(t7, i7) {
1237
+ if (!u2(t7) || !t7.hasOwnProperty("raw")) throw Error("invalid template strings array");
1238
+ return void 0 !== e3 ? e3.createHTML(i7) : i7;
1239
+ }
1240
+ var N = (t7, i7) => {
1241
+ const s5 = t7.length - 1, e9 = [];
1242
+ let n7, l6 = 2 === i7 ? "<svg>" : 3 === i7 ? "<math>" : "", c6 = v;
1243
+ for (let i8 = 0; i8 < s5; i8++) {
1244
+ const s6 = t7[i8];
1245
+ let a5, u5, d4 = -1, f4 = 0;
1246
+ for (; f4 < s6.length && (c6.lastIndex = f4, u5 = c6.exec(s6), null !== u5); ) f4 = c6.lastIndex, c6 === v ? "!--" === u5[1] ? c6 = _ : void 0 !== u5[1] ? c6 = m : void 0 !== u5[2] ? (y2.test(u5[2]) && (n7 = RegExp("</" + u5[2], "g")), c6 = p2) : void 0 !== u5[3] && (c6 = p2) : c6 === p2 ? ">" === u5[0] ? (c6 = n7 ?? v, d4 = -1) : void 0 === u5[1] ? d4 = -2 : (d4 = c6.lastIndex - u5[2].length, a5 = u5[1], c6 = void 0 === u5[3] ? p2 : '"' === u5[3] ? $ : g) : c6 === $ || c6 === g ? c6 = p2 : c6 === _ || c6 === m ? c6 = v : (c6 = p2, n7 = void 0);
1247
+ const x3 = c6 === p2 && t7[i8 + 1].startsWith("/>") ? " " : "";
1248
+ l6 += c6 === v ? s6 + r3 : d4 >= 0 ? (e9.push(a5), s6.slice(0, d4) + h2 + s6.slice(d4) + o3 + x3) : s6 + o3 + (-2 === d4 ? i8 : x3);
1249
+ }
1250
+ return [V(t7, l6 + (t7[s5] || "<?>") + (2 === i7 ? "</svg>" : 3 === i7 ? "</math>" : "")), e9];
1251
+ };
1252
+ var S2 = class _S2 {
1253
+ constructor({ strings: t7, _$litType$: i7 }, e9) {
1254
+ let r7;
1255
+ this.parts = [];
1256
+ let l6 = 0, a5 = 0;
1257
+ const u5 = t7.length - 1, d4 = this.parts, [f4, v3] = N(t7, i7);
1258
+ if (this.el = _S2.createElement(f4, e9), P.currentNode = this.el.content, 2 === i7 || 3 === i7) {
1259
+ const t8 = this.el.content.firstChild;
1260
+ t8.replaceWith(...t8.childNodes);
1261
+ }
1262
+ for (; null !== (r7 = P.nextNode()) && d4.length < u5; ) {
1263
+ if (1 === r7.nodeType) {
1264
+ if (r7.hasAttributes()) for (const t8 of r7.getAttributeNames()) if (t8.endsWith(h2)) {
1265
+ const i8 = v3[a5++], s5 = r7.getAttribute(t8).split(o3), e10 = /([.?@])?(.*)/.exec(i8);
1266
+ d4.push({ type: 1, index: l6, name: e10[2], strings: s5, ctor: "." === e10[1] ? I : "?" === e10[1] ? L : "@" === e10[1] ? z : H }), r7.removeAttribute(t8);
1267
+ } else t8.startsWith(o3) && (d4.push({ type: 6, index: l6 }), r7.removeAttribute(t8));
1268
+ if (y2.test(r7.tagName)) {
1269
+ const t8 = r7.textContent.split(o3), i8 = t8.length - 1;
1270
+ if (i8 > 0) {
1271
+ r7.textContent = s2 ? s2.emptyScript : "";
1272
+ for (let s5 = 0; s5 < i8; s5++) r7.append(t8[s5], c3()), P.nextNode(), d4.push({ type: 2, index: ++l6 });
1273
+ r7.append(t8[i8], c3());
1274
+ }
1275
+ }
1276
+ } else if (8 === r7.nodeType) if (r7.data === n3) d4.push({ type: 2, index: l6 });
1277
+ else {
1278
+ let t8 = -1;
1279
+ for (; -1 !== (t8 = r7.data.indexOf(o3, t8 + 1)); ) d4.push({ type: 7, index: l6 }), t8 += o3.length - 1;
1280
+ }
1281
+ l6++;
1282
+ }
1283
+ }
1284
+ static createElement(t7, i7) {
1285
+ const s5 = l2.createElement("template");
1286
+ return s5.innerHTML = t7, s5;
1287
+ }
1288
+ };
1289
+ function M(t7, i7, s5 = t7, e9) {
1290
+ if (i7 === E) return i7;
1291
+ let h4 = void 0 !== e9 ? s5._$Co?.[e9] : s5._$Cl;
1292
+ const o9 = a2(i7) ? void 0 : i7._$litDirective$;
1293
+ return h4?.constructor !== o9 && (h4?._$AO?.(false), void 0 === o9 ? h4 = void 0 : (h4 = new o9(t7), h4._$AT(t7, s5, e9)), void 0 !== e9 ? (s5._$Co ??= [])[e9] = h4 : s5._$Cl = h4), void 0 !== h4 && (i7 = M(t7, h4._$AS(t7, i7.values), h4, e9)), i7;
1294
+ }
1295
+ var R = class {
1296
+ constructor(t7, i7) {
1297
+ this._$AV = [], this._$AN = void 0, this._$AD = t7, this._$AM = i7;
1298
+ }
1299
+ get parentNode() {
1300
+ return this._$AM.parentNode;
1301
+ }
1302
+ get _$AU() {
1303
+ return this._$AM._$AU;
1304
+ }
1305
+ u(t7) {
1306
+ const { el: { content: i7 }, parts: s5 } = this._$AD, e9 = (t7?.creationScope ?? l2).importNode(i7, true);
1307
+ P.currentNode = e9;
1308
+ let h4 = P.nextNode(), o9 = 0, n7 = 0, r7 = s5[0];
1309
+ for (; void 0 !== r7; ) {
1310
+ if (o9 === r7.index) {
1311
+ let i8;
1312
+ 2 === r7.type ? i8 = new k(h4, h4.nextSibling, this, t7) : 1 === r7.type ? i8 = new r7.ctor(h4, r7.name, r7.strings, this, t7) : 6 === r7.type && (i8 = new Z(h4, this, t7)), this._$AV.push(i8), r7 = s5[++n7];
1313
+ }
1314
+ o9 !== r7?.index && (h4 = P.nextNode(), o9++);
1315
+ }
1316
+ return P.currentNode = l2, e9;
1317
+ }
1318
+ p(t7) {
1319
+ let i7 = 0;
1320
+ for (const s5 of this._$AV) void 0 !== s5 && (void 0 !== s5.strings ? (s5._$AI(t7, s5, i7), i7 += s5.strings.length - 2) : s5._$AI(t7[i7])), i7++;
1321
+ }
1322
+ };
1323
+ var k = class _k2 {
1324
+ get _$AU() {
1325
+ return this._$AM?._$AU ?? this._$Cv;
1326
+ }
1327
+ constructor(t7, i7, s5, e9) {
1328
+ this.type = 2, this._$AH = A, this._$AN = void 0, this._$AA = t7, this._$AB = i7, this._$AM = s5, this.options = e9, this._$Cv = e9?.isConnected ?? true;
1329
+ }
1330
+ get parentNode() {
1331
+ let t7 = this._$AA.parentNode;
1332
+ const i7 = this._$AM;
1333
+ return void 0 !== i7 && 11 === t7?.nodeType && (t7 = i7.parentNode), t7;
1334
+ }
1335
+ get startNode() {
1336
+ return this._$AA;
1337
+ }
1338
+ get endNode() {
1339
+ return this._$AB;
1340
+ }
1341
+ _$AI(t7, i7 = this) {
1342
+ 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);
1343
+ }
1344
+ O(t7) {
1345
+ return this._$AA.parentNode.insertBefore(t7, this._$AB);
1346
+ }
1347
+ T(t7) {
1348
+ this._$AH !== t7 && (this._$AR(), this._$AH = this.O(t7));
1349
+ }
1350
+ _(t7) {
1351
+ this._$AH !== A && a2(this._$AH) ? this._$AA.nextSibling.data = t7 : this.T(l2.createTextNode(t7)), this._$AH = t7;
1352
+ }
1353
+ $(t7) {
1354
+ const { values: i7, _$litType$: s5 } = t7, e9 = "number" == typeof s5 ? this._$AC(t7) : (void 0 === s5.el && (s5.el = S2.createElement(V(s5.h, s5.h[0]), this.options)), s5);
1355
+ if (this._$AH?._$AD === e9) this._$AH.p(i7);
1356
+ else {
1357
+ const t8 = new R(e9, this), s6 = t8.u(this.options);
1358
+ t8.p(i7), this.T(s6), this._$AH = t8;
1359
+ }
1360
+ }
1361
+ _$AC(t7) {
1362
+ let i7 = C.get(t7.strings);
1363
+ return void 0 === i7 && C.set(t7.strings, i7 = new S2(t7)), i7;
1364
+ }
1365
+ k(t7) {
1366
+ u2(this._$AH) || (this._$AH = [], this._$AR());
1367
+ const i7 = this._$AH;
1368
+ let s5, e9 = 0;
1369
+ for (const h4 of t7) e9 === i7.length ? i7.push(s5 = new _k2(this.O(c3()), this.O(c3()), this, this.options)) : s5 = i7[e9], s5._$AI(h4), e9++;
1370
+ e9 < i7.length && (this._$AR(s5 && s5._$AB.nextSibling, e9), i7.length = e9);
1371
+ }
1372
+ _$AR(t7 = this._$AA.nextSibling, s5) {
1373
+ for (this._$AP?.(false, true, s5); t7 !== this._$AB; ) {
1374
+ const s6 = i3(t7).nextSibling;
1375
+ i3(t7).remove(), t7 = s6;
1376
+ }
1377
+ }
1378
+ setConnected(t7) {
1379
+ void 0 === this._$AM && (this._$Cv = t7, this._$AP?.(t7));
1380
+ }
1381
+ };
1382
+ var H = class {
1383
+ get tagName() {
1384
+ return this.element.tagName;
1385
+ }
1386
+ get _$AU() {
1387
+ return this._$AM._$AU;
1388
+ }
1389
+ constructor(t7, i7, s5, e9, h4) {
1390
+ this.type = 1, this._$AH = A, this._$AN = void 0, this.element = t7, this.name = i7, this._$AM = e9, this.options = h4, s5.length > 2 || "" !== s5[0] || "" !== s5[1] ? (this._$AH = Array(s5.length - 1).fill(new String()), this.strings = s5) : this._$AH = A;
1391
+ }
1392
+ _$AI(t7, i7 = this, s5, e9) {
1393
+ const h4 = this.strings;
1394
+ let o9 = false;
1395
+ if (void 0 === h4) t7 = M(this, t7, i7, 0), o9 = !a2(t7) || t7 !== this._$AH && t7 !== E, o9 && (this._$AH = t7);
1396
+ else {
1397
+ const e10 = t7;
1398
+ let n7, r7;
1399
+ for (t7 = h4[0], n7 = 0; n7 < h4.length - 1; n7++) r7 = M(this, e10[s5 + n7], i7, n7), r7 === E && (r7 = this._$AH[n7]), o9 ||= !a2(r7) || r7 !== this._$AH[n7], r7 === A ? t7 = A : t7 !== A && (t7 += (r7 ?? "") + h4[n7 + 1]), this._$AH[n7] = r7;
1400
+ }
1401
+ o9 && !e9 && this.j(t7);
1402
+ }
1403
+ j(t7) {
1404
+ t7 === A ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t7 ?? "");
1405
+ }
1406
+ };
1407
+ var I = class extends H {
1408
+ constructor() {
1409
+ super(...arguments), this.type = 3;
1410
+ }
1411
+ j(t7) {
1412
+ this.element[this.name] = t7 === A ? void 0 : t7;
1413
+ }
1414
+ };
1415
+ var L = class extends H {
1416
+ constructor() {
1417
+ super(...arguments), this.type = 4;
1418
+ }
1419
+ j(t7) {
1420
+ this.element.toggleAttribute(this.name, !!t7 && t7 !== A);
1421
+ }
1422
+ };
1423
+ var z = class extends H {
1424
+ constructor(t7, i7, s5, e9, h4) {
1425
+ super(t7, i7, s5, e9, h4), this.type = 5;
1426
+ }
1427
+ _$AI(t7, i7 = this) {
1428
+ if ((t7 = M(this, t7, i7, 0) ?? A) === E) return;
1429
+ const s5 = this._$AH, e9 = t7 === A && s5 !== A || t7.capture !== s5.capture || t7.once !== s5.once || t7.passive !== s5.passive, h4 = t7 !== A && (s5 === A || e9);
1430
+ e9 && this.element.removeEventListener(this.name, this, s5), h4 && this.element.addEventListener(this.name, this, t7), this._$AH = t7;
1431
+ }
1432
+ handleEvent(t7) {
1433
+ "function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t7) : this._$AH.handleEvent(t7);
1434
+ }
1435
+ };
1436
+ var Z = class {
1437
+ constructor(t7, i7, s5) {
1438
+ this.element = t7, this.type = 6, this._$AN = void 0, this._$AM = i7, this.options = s5;
1439
+ }
1440
+ get _$AU() {
1441
+ return this._$AM._$AU;
1442
+ }
1443
+ _$AI(t7) {
1444
+ M(this, t7);
1445
+ }
1446
+ };
1447
+ 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 };
1448
+ var B = t2.litHtmlPolyfillSupport;
1449
+ B?.(S2, k), (t2.litHtmlVersions ??= []).push("3.3.3");
1450
+ var D = (t7, i7, s5) => {
1451
+ const e9 = s5?.renderBefore ?? i7;
1452
+ let h4 = e9._$litPart$;
1453
+ if (void 0 === h4) {
1454
+ const t8 = s5?.renderBefore ?? null;
1455
+ e9._$litPart$ = h4 = new k(i7.insertBefore(c3(), t8), t8, void 0, s5 ?? {});
1456
+ }
1457
+ return h4._$AI(t7), h4;
1458
+ };
1459
+
1460
+ // node_modules/lit-element/lit-element.js
1461
+ var s3 = globalThis;
1462
+ var i4 = class extends y {
1463
+ constructor() {
1464
+ super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
1465
+ }
1466
+ createRenderRoot() {
1467
+ const t7 = super.createRenderRoot();
1468
+ return this.renderOptions.renderBefore ??= t7.firstChild, t7;
1469
+ }
1470
+ update(t7) {
1471
+ const r7 = this.render();
1472
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t7), this._$Do = D(r7, this.renderRoot, this.renderOptions);
1473
+ }
1474
+ connectedCallback() {
1475
+ super.connectedCallback(), this._$Do?.setConnected(true);
1476
+ }
1477
+ disconnectedCallback() {
1478
+ super.disconnectedCallback(), this._$Do?.setConnected(false);
1479
+ }
1480
+ render() {
1481
+ return E;
1482
+ }
1483
+ };
1484
+ i4._$litElement$ = true, i4["finalized"] = true, s3.litElementHydrateSupport?.({ LitElement: i4 });
1485
+ var o4 = s3.litElementPolyfillSupport;
1486
+ o4?.({ LitElement: i4 });
1487
+ (s3.litElementVersions ??= []).push("4.2.2");
1488
+
1489
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.2OUC42YY.js
1490
+ var button_group_styles_default = i`
1491
+ :host {
1492
+ display: inline-block;
1493
+ }
1494
+
1495
+ .button-group {
1496
+ display: flex;
1497
+ flex-wrap: nowrap;
1498
+ }
1499
+ `;
1500
+
1501
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.TUVJKY7S.js
1502
+ var component_styles_default = i`
1503
+ :host {
1504
+ box-sizing: border-box;
1505
+ }
1506
+
1507
+ :host *,
1508
+ :host *::before,
1509
+ :host *::after {
1510
+ box-sizing: inherit;
1511
+ }
1512
+
1513
+ [hidden] {
1514
+ display: none !important;
1515
+ }
1516
+ `;
1517
+
1518
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.KAW7D32O.js
1519
+ var __defProp2 = Object.defineProperty;
1520
+ var __defProps = Object.defineProperties;
1521
+ var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
1522
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
1523
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
1524
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
1525
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
1526
+ var __typeError2 = (msg2) => {
1527
+ throw TypeError(msg2);
1528
+ };
1529
+ var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1530
+ var __spreadValues = (a5, b4) => {
1531
+ for (var prop in b4 || (b4 = {}))
1532
+ if (__hasOwnProp.call(b4, prop))
1533
+ __defNormalProp2(a5, prop, b4[prop]);
1534
+ if (__getOwnPropSymbols)
1535
+ for (var prop of __getOwnPropSymbols(b4)) {
1536
+ if (__propIsEnum.call(b4, prop))
1537
+ __defNormalProp2(a5, prop, b4[prop]);
1538
+ }
1539
+ return a5;
1540
+ };
1541
+ var __spreadProps = (a5, b4) => __defProps(a5, __getOwnPropDescs(b4));
1542
+ var __decorateClass = (decorators, target, key, kind) => {
1543
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc2(target, key) : target;
1544
+ for (var i7 = decorators.length - 1, decorator; i7 >= 0; i7--)
1545
+ if (decorator = decorators[i7])
1546
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1547
+ if (kind && result) __defProp2(target, key, result);
1548
+ return result;
1549
+ };
1550
+ var __accessCheck2 = (obj, member, msg2) => member.has(obj) || __typeError2("Cannot " + msg2);
1551
+ var __privateGet2 = (obj, member, getter) => (__accessCheck2(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
1552
+ 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);
1553
+ var __privateSet2 = (obj, member, value, setter) => (__accessCheck2(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
1554
+
1555
+ // node_modules/@lit/reactive-element/decorators/custom-element.js
1556
+ var t3 = (t7) => (e9, o9) => {
1557
+ void 0 !== o9 ? o9.addInitializer(() => {
1558
+ customElements.define(t7, e9);
1559
+ }) : customElements.define(t7, e9);
1560
+ };
1561
+
1562
+ // node_modules/@lit/reactive-element/decorators/property.js
1563
+ var o5 = { attribute: true, type: String, converter: u, reflect: false, hasChanged: f };
1564
+ var r4 = (t7 = o5, e9, r7) => {
1565
+ const { kind: n7, metadata: i7 } = r7;
1566
+ let s5 = globalThis.litPropertyMetadata.get(i7);
1567
+ if (void 0 === s5 && globalThis.litPropertyMetadata.set(i7, s5 = /* @__PURE__ */ new Map()), "setter" === n7 && ((t7 = Object.create(t7)).wrapped = true), s5.set(r7.name, t7), "accessor" === n7) {
1568
+ const { name: o9 } = r7;
1569
+ return { set(r8) {
1570
+ const n8 = e9.get.call(this);
1571
+ e9.set.call(this, r8), this.requestUpdate(o9, n8, t7, true, r8);
1572
+ }, init(e10) {
1573
+ return void 0 !== e10 && this.C(o9, void 0, t7, e10), e10;
1574
+ } };
1575
+ }
1576
+ if ("setter" === n7) {
1577
+ const { name: o9 } = r7;
1578
+ return function(r8) {
1579
+ const n8 = this[o9];
1580
+ e9.call(this, r8), this.requestUpdate(o9, n8, t7, true, r8);
1581
+ };
1582
+ }
1583
+ throw Error("Unsupported decorator location: " + n7);
1584
+ };
1585
+ function n4(t7) {
1586
+ return (e9, o9) => "object" == typeof o9 ? r4(t7, e9, o9) : ((t8, e10, o10) => {
1587
+ const r7 = e10.hasOwnProperty(o10);
1588
+ return e10.constructor.createProperty(o10, t8), r7 ? Object.getOwnPropertyDescriptor(e10, o10) : void 0;
1589
+ })(t7, e9, o9);
1590
+ }
1591
+
1592
+ // node_modules/@lit/reactive-element/decorators/state.js
1593
+ function r5(r7) {
1594
+ return n4({ ...r7, state: true, attribute: false });
1595
+ }
1596
+
1597
+ // node_modules/@lit/reactive-element/decorators/base.js
1598
+ var e4 = (e9, t7, c6) => (c6.configurable = true, c6.enumerable = true, Reflect.decorate && "object" != typeof t7 && Object.defineProperty(e9, t7, c6), c6);
1599
+
1600
+ // node_modules/@lit/reactive-element/decorators/query.js
1601
+ function e5(e9, r7) {
1602
+ return (n7, s5, i7) => {
1603
+ const o9 = (t7) => t7.renderRoot?.querySelector(e9) ?? null;
1604
+ if (r7) {
1605
+ const { get: e10, set: r8 } = "object" == typeof s5 ? n7 : i7 ?? (() => {
1606
+ const t7 = Symbol();
1607
+ return { get() {
1608
+ return this[t7];
1609
+ }, set(e11) {
1610
+ this[t7] = e11;
1611
+ } };
1612
+ })();
1613
+ return e4(n7, s5, { get() {
1614
+ let t7 = e10.call(this);
1615
+ return void 0 === t7 && (t7 = o9(this), (null !== t7 || this.hasUpdated) && r8.call(this, t7)), t7;
1616
+ } });
1617
+ }
1618
+ return e4(n7, s5, { get() {
1619
+ return o9(this);
1620
+ } });
1621
+ };
1622
+ }
1623
+
1624
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.4TUIT776.js
1625
+ var _hasRecordedInitialProperties;
1626
+ var ShoelaceElement = class extends i4 {
1627
+ constructor() {
1628
+ super();
1629
+ __privateAdd2(this, _hasRecordedInitialProperties, false);
1630
+ this.initialReflectedProperties = /* @__PURE__ */ new Map();
1631
+ Object.entries(this.constructor.dependencies).forEach(([name2, component]) => {
1632
+ this.constructor.define(name2, component);
1633
+ });
1634
+ }
1635
+ emit(name2, options) {
1636
+ const event = new CustomEvent(name2, __spreadValues({
1637
+ bubbles: true,
1638
+ cancelable: false,
1639
+ composed: true,
1640
+ detail: {}
1641
+ }, options));
1642
+ this.dispatchEvent(event);
1643
+ return event;
1644
+ }
1645
+ /* eslint-enable */
1646
+ static define(name2, elementConstructor = this, options = {}) {
1647
+ const currentlyRegisteredConstructor = customElements.get(name2);
1648
+ if (!currentlyRegisteredConstructor) {
1649
+ try {
1650
+ customElements.define(name2, elementConstructor, options);
1651
+ } catch (_err) {
1652
+ customElements.define(name2, class extends elementConstructor {
1653
+ }, options);
1654
+ }
1655
+ return;
1656
+ }
1657
+ let newVersion = " (unknown version)";
1658
+ let existingVersion = newVersion;
1659
+ if ("version" in elementConstructor && elementConstructor.version) {
1660
+ newVersion = " v" + elementConstructor.version;
1661
+ }
1662
+ if ("version" in currentlyRegisteredConstructor && currentlyRegisteredConstructor.version) {
1663
+ existingVersion = " v" + currentlyRegisteredConstructor.version;
1664
+ }
1665
+ if (newVersion && existingVersion && newVersion === existingVersion) {
1666
+ return;
1667
+ }
1668
+ console.warn(
1669
+ `Attempted to register <${name2}>${newVersion}, but <${name2}>${existingVersion} has already been registered.`
1670
+ );
1671
+ }
1672
+ attributeChangedCallback(name2, oldValue, newValue) {
1673
+ if (!__privateGet2(this, _hasRecordedInitialProperties)) {
1674
+ this.constructor.elementProperties.forEach(
1675
+ (obj, prop) => {
1676
+ if (obj.reflect && this[prop] != null) {
1677
+ this.initialReflectedProperties.set(prop, this[prop]);
1678
+ }
1679
+ }
1680
+ );
1681
+ __privateSet2(this, _hasRecordedInitialProperties, true);
1682
+ }
1683
+ super.attributeChangedCallback(name2, oldValue, newValue);
1684
+ }
1685
+ willUpdate(changedProperties) {
1686
+ super.willUpdate(changedProperties);
1687
+ this.initialReflectedProperties.forEach((value, prop) => {
1688
+ if (changedProperties.has(prop) && this[prop] == null) {
1689
+ this[prop] = value;
1690
+ }
1691
+ });
1692
+ }
1693
+ };
1694
+ _hasRecordedInitialProperties = /* @__PURE__ */ new WeakMap();
1695
+ ShoelaceElement.version = "2.20.1";
1696
+ ShoelaceElement.dependencies = {};
1697
+ __decorateClass([
1698
+ n4()
1699
+ ], ShoelaceElement.prototype, "dir", 2);
1700
+ __decorateClass([
1701
+ n4()
1702
+ ], ShoelaceElement.prototype, "lang", 2);
1703
+
1704
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.A36OXQYR.js
1705
+ var SlButtonGroup = class extends ShoelaceElement {
1706
+ constructor() {
1707
+ super(...arguments);
1708
+ this.disableRole = false;
1709
+ this.label = "";
1710
+ }
1711
+ handleFocus(event) {
1712
+ const button = findButton(event.target);
1713
+ button == null ? void 0 : button.toggleAttribute("data-sl-button-group__button--focus", true);
1714
+ }
1715
+ handleBlur(event) {
1716
+ const button = findButton(event.target);
1717
+ button == null ? void 0 : button.toggleAttribute("data-sl-button-group__button--focus", false);
1718
+ }
1719
+ handleMouseOver(event) {
1720
+ const button = findButton(event.target);
1721
+ button == null ? void 0 : button.toggleAttribute("data-sl-button-group__button--hover", true);
1722
+ }
1723
+ handleMouseOut(event) {
1724
+ const button = findButton(event.target);
1725
+ button == null ? void 0 : button.toggleAttribute("data-sl-button-group__button--hover", false);
1726
+ }
1727
+ handleSlotChange() {
1728
+ const slottedElements = [...this.defaultSlot.assignedElements({ flatten: true })];
1729
+ slottedElements.forEach((el) => {
1730
+ const index = slottedElements.indexOf(el);
1731
+ const button = findButton(el);
1732
+ if (button) {
1733
+ button.toggleAttribute("data-sl-button-group__button", true);
1734
+ button.toggleAttribute("data-sl-button-group__button--first", index === 0);
1735
+ button.toggleAttribute("data-sl-button-group__button--inner", index > 0 && index < slottedElements.length - 1);
1736
+ button.toggleAttribute("data-sl-button-group__button--last", index === slottedElements.length - 1);
1737
+ button.toggleAttribute(
1738
+ "data-sl-button-group__button--radio",
1739
+ button.tagName.toLowerCase() === "sl-radio-button"
1740
+ );
1741
+ }
1742
+ });
1743
+ }
1744
+ render() {
1745
+ return b2`
1746
+ <div
1747
+ part="base"
1748
+ class="button-group"
1749
+ role="${this.disableRole ? "presentation" : "group"}"
1750
+ aria-label=${this.label}
1751
+ @focusout=${this.handleBlur}
1752
+ @focusin=${this.handleFocus}
1753
+ @mouseover=${this.handleMouseOver}
1754
+ @mouseout=${this.handleMouseOut}
1755
+ >
1756
+ <slot @slotchange=${this.handleSlotChange}></slot>
1757
+ </div>
1758
+ `;
1759
+ }
1760
+ };
1761
+ SlButtonGroup.styles = [component_styles_default, button_group_styles_default];
1762
+ __decorateClass([
1763
+ e5("slot")
1764
+ ], SlButtonGroup.prototype, "defaultSlot", 2);
1765
+ __decorateClass([
1766
+ r5()
1767
+ ], SlButtonGroup.prototype, "disableRole", 2);
1768
+ __decorateClass([
1769
+ n4()
1770
+ ], SlButtonGroup.prototype, "label", 2);
1771
+ function findButton(el) {
1772
+ var _a3;
1773
+ const selector = "sl-button, sl-radio-button";
1774
+ return (_a3 = el.closest(selector)) != null ? _a3 : el.querySelector(selector);
1775
+ }
1776
+
1777
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.7DUCI5S4.js
1778
+ var spinner_styles_default = i`
1779
+ :host {
1780
+ --track-width: 2px;
1781
+ --track-color: rgb(128 128 128 / 25%);
1782
+ --indicator-color: var(--sl-color-primary-600);
1783
+ --speed: 2s;
1784
+
1785
+ display: inline-flex;
1786
+ width: 1em;
1787
+ height: 1em;
1788
+ flex: none;
1789
+ }
1790
+
1791
+ .spinner {
1792
+ flex: 1 1 auto;
1793
+ height: 100%;
1794
+ width: 100%;
1795
+ }
1796
+
1797
+ .spinner__track,
1798
+ .spinner__indicator {
1799
+ fill: none;
1800
+ stroke-width: var(--track-width);
1801
+ r: calc(0.5em - var(--track-width) / 2);
1802
+ cx: 0.5em;
1803
+ cy: 0.5em;
1804
+ transform-origin: 50% 50%;
1805
+ }
1806
+
1807
+ .spinner__track {
1808
+ stroke: var(--track-color);
1809
+ transform-origin: 0% 0%;
1810
+ }
1811
+
1812
+ .spinner__indicator {
1813
+ stroke: var(--indicator-color);
1814
+ stroke-linecap: round;
1815
+ stroke-dasharray: 150% 75%;
1816
+ animation: spin var(--speed) linear infinite;
1817
+ }
1818
+
1819
+ @keyframes spin {
1820
+ 0% {
1821
+ transform: rotate(0deg);
1822
+ stroke-dasharray: 0.05em, 3em;
1823
+ }
1824
+
1825
+ 50% {
1826
+ transform: rotate(450deg);
1827
+ stroke-dasharray: 1.375em, 1.375em;
1828
+ }
1829
+
1830
+ 100% {
1831
+ transform: rotate(1080deg);
1832
+ stroke-dasharray: 0.05em, 3em;
1833
+ }
1834
+ }
1835
+ `;
1836
+
1837
+ // node_modules/@shoelace-style/localize/dist/index.js
1838
+ var connectedElements = /* @__PURE__ */ new Set();
1839
+ var translations = /* @__PURE__ */ new Map();
1840
+ var fallback;
1841
+ var documentDirection = "ltr";
1842
+ var documentLanguage = "en";
1843
+ var isClient = typeof MutationObserver !== "undefined" && typeof document !== "undefined" && typeof document.documentElement !== "undefined";
1844
+ if (isClient) {
1845
+ const documentElementObserver = new MutationObserver(update);
1846
+ documentDirection = document.documentElement.dir || "ltr";
1847
+ documentLanguage = document.documentElement.lang || navigator.language;
1848
+ documentElementObserver.observe(document.documentElement, {
1849
+ attributes: true,
1850
+ attributeFilter: ["dir", "lang"]
1851
+ });
1852
+ }
1853
+ function registerTranslation(...translation2) {
1854
+ translation2.map((t7) => {
1855
+ const code = t7.$code.toLowerCase();
1856
+ if (translations.has(code)) {
1857
+ translations.set(code, Object.assign(Object.assign({}, translations.get(code)), t7));
1858
+ } else {
1859
+ translations.set(code, t7);
1860
+ }
1861
+ if (!fallback) {
1862
+ fallback = t7;
1863
+ }
1864
+ });
1865
+ update();
1866
+ }
1867
+ function update() {
1868
+ if (isClient) {
1869
+ documentDirection = document.documentElement.dir || "ltr";
1870
+ documentLanguage = document.documentElement.lang || navigator.language;
1871
+ }
1872
+ [...connectedElements.keys()].map((el) => {
1873
+ if (typeof el.requestUpdate === "function") {
1874
+ el.requestUpdate();
1875
+ }
1876
+ });
1877
+ }
1878
+ var LocalizeController = class {
1879
+ constructor(host) {
1880
+ this.host = host;
1881
+ this.host.addController(this);
1882
+ }
1883
+ hostConnected() {
1884
+ connectedElements.add(this.host);
1885
+ }
1886
+ hostDisconnected() {
1887
+ connectedElements.delete(this.host);
1888
+ }
1889
+ dir() {
1890
+ return `${this.host.dir || documentDirection}`.toLowerCase();
1891
+ }
1892
+ lang() {
1893
+ const lang = `${this.host.lang || documentLanguage}`.toLowerCase().replace(/_/g, "-");
1894
+ try {
1895
+ new Intl.Locale(lang);
1896
+ return lang;
1897
+ } catch (_a3) {
1898
+ return fallback ? fallback.$code.toLowerCase() : "en";
1899
+ }
1900
+ }
1901
+ getTranslationData(lang) {
1902
+ var _a3, _b;
1903
+ let locale;
1904
+ try {
1905
+ locale = new Intl.Locale(lang.replace(/_/g, "-"));
1906
+ } catch (_c) {
1907
+ return { locale: void 0, language: "", region: "", primary: void 0, secondary: void 0 };
1908
+ }
1909
+ const language = locale.language.toLowerCase();
1910
+ const region = (_b = (_a3 = locale.region) === null || _a3 === void 0 ? void 0 : _a3.toLowerCase()) !== null && _b !== void 0 ? _b : "";
1911
+ const primary = translations.get(`${language}-${region}`);
1912
+ const secondary = translations.get(language);
1913
+ return { locale, language, region, primary, secondary };
1914
+ }
1915
+ exists(key, options) {
1916
+ var _a3;
1917
+ const { primary, secondary } = this.getTranslationData((_a3 = options.lang) !== null && _a3 !== void 0 ? _a3 : this.lang());
1918
+ options = Object.assign({ includeFallback: false }, options);
1919
+ if (primary && primary[key] || secondary && secondary[key] || options.includeFallback && fallback && fallback[key]) {
1920
+ return true;
1921
+ }
1922
+ return false;
1923
+ }
1924
+ term(key, ...args) {
1925
+ const { primary, secondary } = this.getTranslationData(this.lang());
1926
+ let term;
1927
+ if (primary && primary[key]) {
1928
+ term = primary[key];
1929
+ } else if (secondary && secondary[key]) {
1930
+ term = secondary[key];
1931
+ } else if (fallback && fallback[key]) {
1932
+ term = fallback[key];
1933
+ } else {
1934
+ console.error(`No translation found for: ${String(key)}`);
1935
+ return String(key);
1936
+ }
1937
+ if (typeof term === "function") {
1938
+ return term(...args);
1939
+ }
1940
+ return term;
1941
+ }
1942
+ date(dateToFormat, options) {
1943
+ dateToFormat = new Date(dateToFormat);
1944
+ return new Intl.DateTimeFormat(this.lang(), options).format(dateToFormat);
1945
+ }
1946
+ number(numberToFormat, options) {
1947
+ numberToFormat = Number(numberToFormat);
1948
+ return isNaN(numberToFormat) ? "" : new Intl.NumberFormat(this.lang(), options).format(numberToFormat);
1949
+ }
1950
+ relativeTime(value, unit, options) {
1951
+ return new Intl.RelativeTimeFormat(this.lang(), options).format(value, unit);
1952
+ }
1953
+ };
1954
+
1955
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.7BTDLTNI.js
1956
+ var translation = {
1957
+ $code: "en",
1958
+ $name: "English",
1959
+ $dir: "ltr",
1960
+ carousel: "Carousel",
1961
+ clearEntry: "Clear entry",
1962
+ close: "Close",
1963
+ copied: "Copied",
1964
+ copy: "Copy",
1965
+ currentValue: "Current value",
1966
+ error: "Error",
1967
+ goToSlide: (slide, count) => `Go to slide ${slide} of ${count}`,
1968
+ hidePassword: "Hide password",
1969
+ loading: "Loading",
1970
+ nextSlide: "Next slide",
1971
+ numOptionsSelected: (num) => {
1972
+ if (num === 0) return "No options selected";
1973
+ if (num === 1) return "1 option selected";
1974
+ return `${num} options selected`;
1975
+ },
1976
+ previousSlide: "Previous slide",
1977
+ progress: "Progress",
1978
+ remove: "Remove",
1979
+ resize: "Resize",
1980
+ scrollToEnd: "Scroll to end",
1981
+ scrollToStart: "Scroll to start",
1982
+ selectAColorFromTheScreen: "Select a color from the screen",
1983
+ showPassword: "Show password",
1984
+ slideNum: (slide) => `Slide ${slide}`,
1985
+ toggleColorFormat: "Toggle color format"
1986
+ };
1987
+ registerTranslation(translation);
1988
+ var en_default = translation;
1989
+
1990
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.6CTB5ZDJ.js
1991
+ var LocalizeController2 = class extends LocalizeController {
1992
+ };
1993
+ registerTranslation(en_default);
1994
+
1995
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.36O46B5H.js
1996
+ var SlSpinner = class extends ShoelaceElement {
1997
+ constructor() {
1998
+ super(...arguments);
1999
+ this.localize = new LocalizeController2(this);
2000
+ }
2001
+ render() {
2002
+ return b2`
2003
+ <svg part="base" class="spinner" role="progressbar" aria-label=${this.localize.term("loading")}>
2004
+ <circle class="spinner__track"></circle>
2005
+ <circle class="spinner__indicator"></circle>
2006
+ </svg>
2007
+ `;
2008
+ }
2009
+ };
2010
+ SlSpinner.styles = [component_styles_default, spinner_styles_default];
2011
+
2012
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3RPBFEDE.js
2013
+ var formCollections = /* @__PURE__ */ new WeakMap();
2014
+ var reportValidityOverloads = /* @__PURE__ */ new WeakMap();
2015
+ var checkValidityOverloads = /* @__PURE__ */ new WeakMap();
2016
+ var userInteractedControls = /* @__PURE__ */ new WeakSet();
2017
+ var interactions = /* @__PURE__ */ new WeakMap();
2018
+ var FormControlController = class {
2019
+ constructor(host, options) {
2020
+ this.handleFormData = (event) => {
2021
+ const disabled = this.options.disabled(this.host);
2022
+ const name2 = this.options.name(this.host);
2023
+ const value = this.options.value(this.host);
2024
+ const isButton = this.host.tagName.toLowerCase() === "sl-button";
2025
+ if (this.host.isConnected && !disabled && !isButton && typeof name2 === "string" && name2.length > 0 && typeof value !== "undefined") {
2026
+ if (Array.isArray(value)) {
2027
+ value.forEach((val) => {
2028
+ event.formData.append(name2, val.toString());
2029
+ });
2030
+ } else {
2031
+ event.formData.append(name2, value.toString());
2032
+ }
2033
+ }
2034
+ };
2035
+ this.handleFormSubmit = (event) => {
2036
+ var _a3;
2037
+ const disabled = this.options.disabled(this.host);
2038
+ const reportValidity = this.options.reportValidity;
2039
+ if (this.form && !this.form.noValidate) {
2040
+ (_a3 = formCollections.get(this.form)) == null ? void 0 : _a3.forEach((control) => {
2041
+ this.setUserInteracted(control, true);
2042
+ });
2043
+ }
2044
+ if (this.form && !this.form.noValidate && !disabled && !reportValidity(this.host)) {
2045
+ event.preventDefault();
2046
+ event.stopImmediatePropagation();
2047
+ }
2048
+ };
2049
+ this.handleFormReset = () => {
2050
+ this.options.setValue(this.host, this.options.defaultValue(this.host));
2051
+ this.setUserInteracted(this.host, false);
2052
+ interactions.set(this.host, []);
2053
+ };
2054
+ this.handleInteraction = (event) => {
2055
+ const emittedEvents = interactions.get(this.host);
2056
+ if (!emittedEvents.includes(event.type)) {
2057
+ emittedEvents.push(event.type);
2058
+ }
2059
+ if (emittedEvents.length === this.options.assumeInteractionOn.length) {
2060
+ this.setUserInteracted(this.host, true);
2061
+ }
2062
+ };
2063
+ this.checkFormValidity = () => {
2064
+ if (this.form && !this.form.noValidate) {
2065
+ const elements = this.form.querySelectorAll("*");
2066
+ for (const element of elements) {
2067
+ if (typeof element.checkValidity === "function") {
2068
+ if (!element.checkValidity()) {
2069
+ return false;
2070
+ }
2071
+ }
2072
+ }
2073
+ }
2074
+ return true;
2075
+ };
2076
+ this.reportFormValidity = () => {
2077
+ if (this.form && !this.form.noValidate) {
2078
+ const elements = this.form.querySelectorAll("*");
2079
+ for (const element of elements) {
2080
+ if (typeof element.reportValidity === "function") {
2081
+ if (!element.reportValidity()) {
2082
+ return false;
2083
+ }
2084
+ }
2085
+ }
2086
+ }
2087
+ return true;
2088
+ };
2089
+ (this.host = host).addController(this);
2090
+ this.options = __spreadValues({
2091
+ form: (input) => {
2092
+ const formId = input.form;
2093
+ if (formId) {
2094
+ const root = input.getRootNode();
2095
+ const form = root.querySelector(`#${formId}`);
2096
+ if (form) {
2097
+ return form;
2098
+ }
2099
+ }
2100
+ return input.closest("form");
2101
+ },
2102
+ name: (input) => input.name,
2103
+ value: (input) => input.value,
2104
+ defaultValue: (input) => input.defaultValue,
2105
+ disabled: (input) => {
2106
+ var _a3;
2107
+ return (_a3 = input.disabled) != null ? _a3 : false;
2108
+ },
2109
+ reportValidity: (input) => typeof input.reportValidity === "function" ? input.reportValidity() : true,
2110
+ checkValidity: (input) => typeof input.checkValidity === "function" ? input.checkValidity() : true,
2111
+ setValue: (input, value) => input.value = value,
2112
+ assumeInteractionOn: ["sl-input"]
2113
+ }, options);
2114
+ }
2115
+ hostConnected() {
2116
+ const form = this.options.form(this.host);
2117
+ if (form) {
2118
+ this.attachForm(form);
2119
+ }
2120
+ interactions.set(this.host, []);
2121
+ this.options.assumeInteractionOn.forEach((event) => {
2122
+ this.host.addEventListener(event, this.handleInteraction);
2123
+ });
2124
+ }
2125
+ hostDisconnected() {
2126
+ this.detachForm();
2127
+ interactions.delete(this.host);
2128
+ this.options.assumeInteractionOn.forEach((event) => {
2129
+ this.host.removeEventListener(event, this.handleInteraction);
2130
+ });
2131
+ }
2132
+ hostUpdated() {
2133
+ const form = this.options.form(this.host);
2134
+ if (!form) {
2135
+ this.detachForm();
2136
+ }
2137
+ if (form && this.form !== form) {
2138
+ this.detachForm();
2139
+ this.attachForm(form);
2140
+ }
2141
+ if (this.host.hasUpdated) {
2142
+ this.setValidity(this.host.validity.valid);
2143
+ }
2144
+ }
2145
+ attachForm(form) {
2146
+ if (form) {
2147
+ this.form = form;
2148
+ if (formCollections.has(this.form)) {
2149
+ formCollections.get(this.form).add(this.host);
2150
+ } else {
2151
+ formCollections.set(this.form, /* @__PURE__ */ new Set([this.host]));
2152
+ }
2153
+ this.form.addEventListener("formdata", this.handleFormData);
2154
+ this.form.addEventListener("submit", this.handleFormSubmit);
2155
+ this.form.addEventListener("reset", this.handleFormReset);
2156
+ if (!reportValidityOverloads.has(this.form)) {
2157
+ reportValidityOverloads.set(this.form, this.form.reportValidity);
2158
+ this.form.reportValidity = () => this.reportFormValidity();
2159
+ }
2160
+ if (!checkValidityOverloads.has(this.form)) {
2161
+ checkValidityOverloads.set(this.form, this.form.checkValidity);
2162
+ this.form.checkValidity = () => this.checkFormValidity();
2163
+ }
2164
+ } else {
2165
+ this.form = void 0;
2166
+ }
2167
+ }
2168
+ detachForm() {
2169
+ if (!this.form) return;
2170
+ const formCollection = formCollections.get(this.form);
2171
+ if (!formCollection) {
2172
+ return;
2173
+ }
2174
+ formCollection.delete(this.host);
2175
+ if (formCollection.size <= 0) {
2176
+ this.form.removeEventListener("formdata", this.handleFormData);
2177
+ this.form.removeEventListener("submit", this.handleFormSubmit);
2178
+ this.form.removeEventListener("reset", this.handleFormReset);
2179
+ if (reportValidityOverloads.has(this.form)) {
2180
+ this.form.reportValidity = reportValidityOverloads.get(this.form);
2181
+ reportValidityOverloads.delete(this.form);
2182
+ }
2183
+ if (checkValidityOverloads.has(this.form)) {
2184
+ this.form.checkValidity = checkValidityOverloads.get(this.form);
2185
+ checkValidityOverloads.delete(this.form);
2186
+ }
2187
+ this.form = void 0;
2188
+ }
2189
+ }
2190
+ setUserInteracted(el, hasInteracted) {
2191
+ if (hasInteracted) {
2192
+ userInteractedControls.add(el);
2193
+ } else {
2194
+ userInteractedControls.delete(el);
2195
+ }
2196
+ el.requestUpdate();
2197
+ }
2198
+ doAction(type, submitter) {
2199
+ if (this.form) {
2200
+ const button = document.createElement("button");
2201
+ button.type = type;
2202
+ button.style.position = "absolute";
2203
+ button.style.width = "0";
2204
+ button.style.height = "0";
2205
+ button.style.clipPath = "inset(50%)";
2206
+ button.style.overflow = "hidden";
2207
+ button.style.whiteSpace = "nowrap";
2208
+ if (submitter) {
2209
+ button.name = submitter.name;
2210
+ button.value = submitter.value;
2211
+ ["formaction", "formenctype", "formmethod", "formnovalidate", "formtarget"].forEach((attr) => {
2212
+ if (submitter.hasAttribute(attr)) {
2213
+ button.setAttribute(attr, submitter.getAttribute(attr));
2214
+ }
2215
+ });
2216
+ }
2217
+ this.form.append(button);
2218
+ button.click();
2219
+ button.remove();
2220
+ }
2221
+ }
2222
+ /** Returns the associated `<form>` element, if one exists. */
2223
+ getForm() {
2224
+ var _a3;
2225
+ return (_a3 = this.form) != null ? _a3 : null;
2226
+ }
2227
+ /** Resets the form, restoring all the control to their default value */
2228
+ reset(submitter) {
2229
+ this.doAction("reset", submitter);
2230
+ }
2231
+ /** Submits the form, triggering validation and form data injection. */
2232
+ submit(submitter) {
2233
+ this.doAction("submit", submitter);
2234
+ }
2235
+ /**
2236
+ * Synchronously sets the form control's validity. Call this when you know the future validity but need to update
2237
+ * the host element immediately, i.e. before Lit updates the component in the next update.
2238
+ */
2239
+ setValidity(isValid) {
2240
+ const host = this.host;
2241
+ const hasInteracted = Boolean(userInteractedControls.has(host));
2242
+ const required = Boolean(host.required);
2243
+ host.toggleAttribute("data-required", required);
2244
+ host.toggleAttribute("data-optional", !required);
2245
+ host.toggleAttribute("data-invalid", !isValid);
2246
+ host.toggleAttribute("data-valid", isValid);
2247
+ host.toggleAttribute("data-user-invalid", !isValid && hasInteracted);
2248
+ host.toggleAttribute("data-user-valid", isValid && hasInteracted);
2249
+ }
2250
+ /**
2251
+ * Updates the form control's validity based on the current value of `host.validity.valid`. Call this when anything
2252
+ * that affects constraint validation changes so the component receives the correct validity states.
2253
+ */
2254
+ updateValidity() {
2255
+ const host = this.host;
2256
+ this.setValidity(host.validity.valid);
2257
+ }
2258
+ /**
2259
+ * Dispatches a non-bubbling, cancelable custom event of type `sl-invalid`.
2260
+ * If the `sl-invalid` event will be cancelled then the original `invalid`
2261
+ * event (which may have been passed as argument) will also be cancelled.
2262
+ * If no original `invalid` event has been passed then the `sl-invalid`
2263
+ * event will be cancelled before being dispatched.
2264
+ */
2265
+ emitInvalidEvent(originalInvalidEvent) {
2266
+ const slInvalidEvent = new CustomEvent("sl-invalid", {
2267
+ bubbles: false,
2268
+ composed: false,
2269
+ cancelable: true,
2270
+ detail: {}
2271
+ });
2272
+ if (!originalInvalidEvent) {
2273
+ slInvalidEvent.preventDefault();
2274
+ }
2275
+ if (!this.host.dispatchEvent(slInvalidEvent)) {
2276
+ originalInvalidEvent == null ? void 0 : originalInvalidEvent.preventDefault();
2277
+ }
2278
+ }
2279
+ };
2280
+ var validValidityState = Object.freeze({
2281
+ badInput: false,
2282
+ customError: false,
2283
+ patternMismatch: false,
2284
+ rangeOverflow: false,
2285
+ rangeUnderflow: false,
2286
+ stepMismatch: false,
2287
+ tooLong: false,
2288
+ tooShort: false,
2289
+ typeMismatch: false,
2290
+ valid: true,
2291
+ valueMissing: false
2292
+ });
2293
+ var valueMissingValidityState = Object.freeze(__spreadProps(__spreadValues({}, validValidityState), {
2294
+ valid: false,
2295
+ valueMissing: true
2296
+ }));
2297
+ var customErrorValidityState = Object.freeze(__spreadProps(__spreadValues({}, validValidityState), {
2298
+ valid: false,
2299
+ customError: true
2300
+ }));
2301
+
2302
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.MAQXLKQ7.js
2303
+ var button_styles_default = i`
2304
+ :host {
2305
+ display: inline-block;
2306
+ position: relative;
2307
+ width: auto;
2308
+ cursor: pointer;
2309
+ }
2310
+
2311
+ .button {
2312
+ display: inline-flex;
2313
+ align-items: stretch;
2314
+ justify-content: center;
2315
+ width: 100%;
2316
+ border-style: solid;
2317
+ border-width: var(--sl-input-border-width);
2318
+ font-family: var(--sl-input-font-family);
2319
+ font-weight: var(--sl-font-weight-semibold);
2320
+ text-decoration: none;
2321
+ user-select: none;
2322
+ -webkit-user-select: none;
2323
+ white-space: nowrap;
2324
+ vertical-align: middle;
2325
+ padding: 0;
2326
+ transition:
2327
+ var(--sl-transition-x-fast) background-color,
2328
+ var(--sl-transition-x-fast) color,
2329
+ var(--sl-transition-x-fast) border,
2330
+ var(--sl-transition-x-fast) box-shadow;
2331
+ cursor: inherit;
2332
+ }
2333
+
2334
+ .button::-moz-focus-inner {
2335
+ border: 0;
2336
+ }
2337
+
2338
+ .button:focus {
2339
+ outline: none;
2340
+ }
2341
+
2342
+ .button:focus-visible {
2343
+ outline: var(--sl-focus-ring);
2344
+ outline-offset: var(--sl-focus-ring-offset);
2345
+ }
2346
+
2347
+ .button--disabled {
2348
+ opacity: 0.5;
2349
+ cursor: not-allowed;
2350
+ }
2351
+
2352
+ /* When disabled, prevent mouse events from bubbling up from children */
2353
+ .button--disabled * {
2354
+ pointer-events: none;
2355
+ }
2356
+
2357
+ .button__prefix,
2358
+ .button__suffix {
2359
+ flex: 0 0 auto;
2360
+ display: flex;
2361
+ align-items: center;
2362
+ pointer-events: none;
2363
+ }
2364
+
2365
+ .button__label {
2366
+ display: inline-block;
2367
+ }
2368
+
2369
+ .button__label::slotted(sl-icon) {
2370
+ vertical-align: -2px;
2371
+ }
2372
+
2373
+ /*
2374
+ * Standard buttons
2375
+ */
2376
+
2377
+ /* Default */
2378
+ .button--standard.button--default {
2379
+ background-color: var(--sl-color-neutral-0);
2380
+ border-color: var(--sl-input-border-color);
2381
+ color: var(--sl-color-neutral-700);
2382
+ }
2383
+
2384
+ .button--standard.button--default:hover:not(.button--disabled) {
2385
+ background-color: var(--sl-color-primary-50);
2386
+ border-color: var(--sl-color-primary-300);
2387
+ color: var(--sl-color-primary-700);
2388
+ }
2389
+
2390
+ .button--standard.button--default:active:not(.button--disabled) {
2391
+ background-color: var(--sl-color-primary-100);
2392
+ border-color: var(--sl-color-primary-400);
2393
+ color: var(--sl-color-primary-700);
2394
+ }
2395
+
2396
+ /* Primary */
2397
+ .button--standard.button--primary {
2398
+ background-color: var(--sl-color-primary-600);
2399
+ border-color: var(--sl-color-primary-600);
2400
+ color: var(--sl-color-neutral-0);
2401
+ }
2402
+
2403
+ .button--standard.button--primary:hover:not(.button--disabled) {
2404
+ background-color: var(--sl-color-primary-500);
2405
+ border-color: var(--sl-color-primary-500);
2406
+ color: var(--sl-color-neutral-0);
2407
+ }
2408
+
2409
+ .button--standard.button--primary:active:not(.button--disabled) {
2410
+ background-color: var(--sl-color-primary-600);
2411
+ border-color: var(--sl-color-primary-600);
2412
+ color: var(--sl-color-neutral-0);
2413
+ }
2414
+
2415
+ /* Success */
2416
+ .button--standard.button--success {
2417
+ background-color: var(--sl-color-success-600);
2418
+ border-color: var(--sl-color-success-600);
2419
+ color: var(--sl-color-neutral-0);
2420
+ }
2421
+
2422
+ .button--standard.button--success:hover:not(.button--disabled) {
2423
+ background-color: var(--sl-color-success-500);
2424
+ border-color: var(--sl-color-success-500);
2425
+ color: var(--sl-color-neutral-0);
2426
+ }
2427
+
2428
+ .button--standard.button--success:active:not(.button--disabled) {
2429
+ background-color: var(--sl-color-success-600);
2430
+ border-color: var(--sl-color-success-600);
2431
+ color: var(--sl-color-neutral-0);
2432
+ }
2433
+
2434
+ /* Neutral */
2435
+ .button--standard.button--neutral {
2436
+ background-color: var(--sl-color-neutral-600);
2437
+ border-color: var(--sl-color-neutral-600);
2438
+ color: var(--sl-color-neutral-0);
2439
+ }
2440
+
2441
+ .button--standard.button--neutral:hover:not(.button--disabled) {
2442
+ background-color: var(--sl-color-neutral-500);
2443
+ border-color: var(--sl-color-neutral-500);
2444
+ color: var(--sl-color-neutral-0);
2445
+ }
2446
+
2447
+ .button--standard.button--neutral:active:not(.button--disabled) {
2448
+ background-color: var(--sl-color-neutral-600);
2449
+ border-color: var(--sl-color-neutral-600);
2450
+ color: var(--sl-color-neutral-0);
2451
+ }
2452
+
2453
+ /* Warning */
2454
+ .button--standard.button--warning {
2455
+ background-color: var(--sl-color-warning-600);
2456
+ border-color: var(--sl-color-warning-600);
2457
+ color: var(--sl-color-neutral-0);
2458
+ }
2459
+ .button--standard.button--warning:hover:not(.button--disabled) {
2460
+ background-color: var(--sl-color-warning-500);
2461
+ border-color: var(--sl-color-warning-500);
2462
+ color: var(--sl-color-neutral-0);
2463
+ }
2464
+
2465
+ .button--standard.button--warning:active:not(.button--disabled) {
2466
+ background-color: var(--sl-color-warning-600);
2467
+ border-color: var(--sl-color-warning-600);
2468
+ color: var(--sl-color-neutral-0);
2469
+ }
2470
+
2471
+ /* Danger */
2472
+ .button--standard.button--danger {
2473
+ background-color: var(--sl-color-danger-600);
2474
+ border-color: var(--sl-color-danger-600);
2475
+ color: var(--sl-color-neutral-0);
2476
+ }
2477
+
2478
+ .button--standard.button--danger:hover:not(.button--disabled) {
2479
+ background-color: var(--sl-color-danger-500);
2480
+ border-color: var(--sl-color-danger-500);
2481
+ color: var(--sl-color-neutral-0);
2482
+ }
2483
+
2484
+ .button--standard.button--danger:active:not(.button--disabled) {
2485
+ background-color: var(--sl-color-danger-600);
2486
+ border-color: var(--sl-color-danger-600);
2487
+ color: var(--sl-color-neutral-0);
2488
+ }
2489
+
2490
+ /*
2491
+ * Outline buttons
2492
+ */
2493
+
2494
+ .button--outline {
2495
+ background: none;
2496
+ border: solid 1px;
2497
+ }
2498
+
2499
+ /* Default */
2500
+ .button--outline.button--default {
2501
+ border-color: var(--sl-input-border-color);
2502
+ color: var(--sl-color-neutral-700);
2503
+ }
2504
+
2505
+ .button--outline.button--default:hover:not(.button--disabled),
2506
+ .button--outline.button--default.button--checked:not(.button--disabled) {
2507
+ border-color: var(--sl-color-primary-600);
2508
+ background-color: var(--sl-color-primary-600);
2509
+ color: var(--sl-color-neutral-0);
2510
+ }
2511
+
2512
+ .button--outline.button--default:active:not(.button--disabled) {
2513
+ border-color: var(--sl-color-primary-700);
2514
+ background-color: var(--sl-color-primary-700);
2515
+ color: var(--sl-color-neutral-0);
2516
+ }
2517
+
2518
+ /* Primary */
2519
+ .button--outline.button--primary {
2520
+ border-color: var(--sl-color-primary-600);
2521
+ color: var(--sl-color-primary-600);
2522
+ }
2523
+
2524
+ .button--outline.button--primary:hover:not(.button--disabled),
2525
+ .button--outline.button--primary.button--checked:not(.button--disabled) {
2526
+ background-color: var(--sl-color-primary-600);
2527
+ color: var(--sl-color-neutral-0);
2528
+ }
2529
+
2530
+ .button--outline.button--primary:active:not(.button--disabled) {
2531
+ border-color: var(--sl-color-primary-700);
2532
+ background-color: var(--sl-color-primary-700);
2533
+ color: var(--sl-color-neutral-0);
2534
+ }
2535
+
2536
+ /* Success */
2537
+ .button--outline.button--success {
2538
+ border-color: var(--sl-color-success-600);
2539
+ color: var(--sl-color-success-600);
2540
+ }
2541
+
2542
+ .button--outline.button--success:hover:not(.button--disabled),
2543
+ .button--outline.button--success.button--checked:not(.button--disabled) {
2544
+ background-color: var(--sl-color-success-600);
2545
+ color: var(--sl-color-neutral-0);
2546
+ }
2547
+
2548
+ .button--outline.button--success:active:not(.button--disabled) {
2549
+ border-color: var(--sl-color-success-700);
2550
+ background-color: var(--sl-color-success-700);
2551
+ color: var(--sl-color-neutral-0);
2552
+ }
2553
+
2554
+ /* Neutral */
2555
+ .button--outline.button--neutral {
2556
+ border-color: var(--sl-color-neutral-600);
2557
+ color: var(--sl-color-neutral-600);
2558
+ }
2559
+
2560
+ .button--outline.button--neutral:hover:not(.button--disabled),
2561
+ .button--outline.button--neutral.button--checked:not(.button--disabled) {
2562
+ background-color: var(--sl-color-neutral-600);
2563
+ color: var(--sl-color-neutral-0);
2564
+ }
2565
+
2566
+ .button--outline.button--neutral:active:not(.button--disabled) {
2567
+ border-color: var(--sl-color-neutral-700);
2568
+ background-color: var(--sl-color-neutral-700);
2569
+ color: var(--sl-color-neutral-0);
2570
+ }
2571
+
2572
+ /* Warning */
2573
+ .button--outline.button--warning {
2574
+ border-color: var(--sl-color-warning-600);
2575
+ color: var(--sl-color-warning-600);
2576
+ }
2577
+
2578
+ .button--outline.button--warning:hover:not(.button--disabled),
2579
+ .button--outline.button--warning.button--checked:not(.button--disabled) {
2580
+ background-color: var(--sl-color-warning-600);
2581
+ color: var(--sl-color-neutral-0);
2582
+ }
2583
+
2584
+ .button--outline.button--warning:active:not(.button--disabled) {
2585
+ border-color: var(--sl-color-warning-700);
2586
+ background-color: var(--sl-color-warning-700);
2587
+ color: var(--sl-color-neutral-0);
2588
+ }
2589
+
2590
+ /* Danger */
2591
+ .button--outline.button--danger {
2592
+ border-color: var(--sl-color-danger-600);
2593
+ color: var(--sl-color-danger-600);
2594
+ }
2595
+
2596
+ .button--outline.button--danger:hover:not(.button--disabled),
2597
+ .button--outline.button--danger.button--checked:not(.button--disabled) {
2598
+ background-color: var(--sl-color-danger-600);
2599
+ color: var(--sl-color-neutral-0);
2600
+ }
2601
+
2602
+ .button--outline.button--danger:active:not(.button--disabled) {
2603
+ border-color: var(--sl-color-danger-700);
2604
+ background-color: var(--sl-color-danger-700);
2605
+ color: var(--sl-color-neutral-0);
2606
+ }
2607
+
2608
+ @media (forced-colors: active) {
2609
+ .button.button--outline.button--checked:not(.button--disabled) {
2610
+ outline: solid 2px transparent;
2611
+ }
2612
+ }
2613
+
2614
+ /*
2615
+ * Text buttons
2616
+ */
2617
+
2618
+ .button--text {
2619
+ background-color: transparent;
2620
+ border-color: transparent;
2621
+ color: var(--sl-color-primary-600);
2622
+ }
2623
+
2624
+ .button--text:hover:not(.button--disabled) {
2625
+ background-color: transparent;
2626
+ border-color: transparent;
2627
+ color: var(--sl-color-primary-500);
2628
+ }
2629
+
2630
+ .button--text:focus-visible:not(.button--disabled) {
2631
+ background-color: transparent;
2632
+ border-color: transparent;
2633
+ color: var(--sl-color-primary-500);
2634
+ }
2635
+
2636
+ .button--text:active:not(.button--disabled) {
2637
+ background-color: transparent;
2638
+ border-color: transparent;
2639
+ color: var(--sl-color-primary-700);
2640
+ }
2641
+
2642
+ /*
2643
+ * Size modifiers
2644
+ */
2645
+
2646
+ .button--small {
2647
+ height: auto;
2648
+ min-height: var(--sl-input-height-small);
2649
+ font-size: var(--sl-button-font-size-small);
2650
+ line-height: calc(var(--sl-input-height-small) - var(--sl-input-border-width) * 2);
2651
+ border-radius: var(--sl-input-border-radius-small);
2652
+ }
2653
+
2654
+ .button--medium {
2655
+ height: auto;
2656
+ min-height: var(--sl-input-height-medium);
2657
+ font-size: var(--sl-button-font-size-medium);
2658
+ line-height: calc(var(--sl-input-height-medium) - var(--sl-input-border-width) * 2);
2659
+ border-radius: var(--sl-input-border-radius-medium);
2660
+ }
2661
+
2662
+ .button--large {
2663
+ height: auto;
2664
+ min-height: var(--sl-input-height-large);
2665
+ font-size: var(--sl-button-font-size-large);
2666
+ line-height: calc(var(--sl-input-height-large) - var(--sl-input-border-width) * 2);
2667
+ border-radius: var(--sl-input-border-radius-large);
2668
+ }
2669
+
2670
+ /*
2671
+ * Pill modifier
2672
+ */
2673
+
2674
+ .button--pill.button--small {
2675
+ border-radius: var(--sl-input-height-small);
2676
+ }
2677
+
2678
+ .button--pill.button--medium {
2679
+ border-radius: var(--sl-input-height-medium);
2680
+ }
2681
+
2682
+ .button--pill.button--large {
2683
+ border-radius: var(--sl-input-height-large);
2684
+ }
2685
+
2686
+ /*
2687
+ * Circle modifier
2688
+ */
2689
+
2690
+ .button--circle {
2691
+ padding-left: 0;
2692
+ padding-right: 0;
2693
+ }
2694
+
2695
+ .button--circle.button--small {
2696
+ width: var(--sl-input-height-small);
2697
+ border-radius: 50%;
2698
+ }
2699
+
2700
+ .button--circle.button--medium {
2701
+ width: var(--sl-input-height-medium);
2702
+ border-radius: 50%;
2703
+ }
2704
+
2705
+ .button--circle.button--large {
2706
+ width: var(--sl-input-height-large);
2707
+ border-radius: 50%;
2708
+ }
2709
+
2710
+ .button--circle .button__prefix,
2711
+ .button--circle .button__suffix,
2712
+ .button--circle .button__caret {
2713
+ display: none;
2714
+ }
2715
+
2716
+ /*
2717
+ * Caret modifier
2718
+ */
2719
+
2720
+ .button--caret .button__suffix {
2721
+ display: none;
2722
+ }
2723
+
2724
+ .button--caret .button__caret {
2725
+ height: auto;
2726
+ }
2727
+
2728
+ /*
2729
+ * Loading modifier
2730
+ */
2731
+
2732
+ .button--loading {
2733
+ position: relative;
2734
+ cursor: wait;
2735
+ }
2736
+
2737
+ .button--loading .button__prefix,
2738
+ .button--loading .button__label,
2739
+ .button--loading .button__suffix,
2740
+ .button--loading .button__caret {
2741
+ visibility: hidden;
2742
+ }
2743
+
2744
+ .button--loading sl-spinner {
2745
+ --indicator-color: currentColor;
2746
+ position: absolute;
2747
+ font-size: 1em;
2748
+ height: 1em;
2749
+ width: 1em;
2750
+ top: calc(50% - 0.5em);
2751
+ left: calc(50% - 0.5em);
2752
+ }
2753
+
2754
+ /*
2755
+ * Badges
2756
+ */
2757
+
2758
+ .button ::slotted(sl-badge) {
2759
+ position: absolute;
2760
+ top: 0;
2761
+ right: 0;
2762
+ translate: 50% -50%;
2763
+ pointer-events: none;
2764
+ }
2765
+
2766
+ .button--rtl ::slotted(sl-badge) {
2767
+ right: auto;
2768
+ left: 0;
2769
+ translate: -50% -50%;
2770
+ }
2771
+
2772
+ /*
2773
+ * Button spacing
2774
+ */
2775
+
2776
+ .button--has-label.button--small .button__label {
2777
+ padding: 0 var(--sl-spacing-small);
2778
+ }
2779
+
2780
+ .button--has-label.button--medium .button__label {
2781
+ padding: 0 var(--sl-spacing-medium);
2782
+ }
2783
+
2784
+ .button--has-label.button--large .button__label {
2785
+ padding: 0 var(--sl-spacing-large);
2786
+ }
2787
+
2788
+ .button--has-prefix.button--small {
2789
+ padding-inline-start: var(--sl-spacing-x-small);
2790
+ }
2791
+
2792
+ .button--has-prefix.button--small .button__label {
2793
+ padding-inline-start: var(--sl-spacing-x-small);
2794
+ }
2795
+
2796
+ .button--has-prefix.button--medium {
2797
+ padding-inline-start: var(--sl-spacing-small);
2798
+ }
2799
+
2800
+ .button--has-prefix.button--medium .button__label {
2801
+ padding-inline-start: var(--sl-spacing-small);
2802
+ }
2803
+
2804
+ .button--has-prefix.button--large {
2805
+ padding-inline-start: var(--sl-spacing-small);
2806
+ }
2807
+
2808
+ .button--has-prefix.button--large .button__label {
2809
+ padding-inline-start: var(--sl-spacing-small);
2810
+ }
2811
+
2812
+ .button--has-suffix.button--small,
2813
+ .button--caret.button--small {
2814
+ padding-inline-end: var(--sl-spacing-x-small);
2815
+ }
2816
+
2817
+ .button--has-suffix.button--small .button__label,
2818
+ .button--caret.button--small .button__label {
2819
+ padding-inline-end: var(--sl-spacing-x-small);
2820
+ }
2821
+
2822
+ .button--has-suffix.button--medium,
2823
+ .button--caret.button--medium {
2824
+ padding-inline-end: var(--sl-spacing-small);
2825
+ }
2826
+
2827
+ .button--has-suffix.button--medium .button__label,
2828
+ .button--caret.button--medium .button__label {
2829
+ padding-inline-end: var(--sl-spacing-small);
2830
+ }
2831
+
2832
+ .button--has-suffix.button--large,
2833
+ .button--caret.button--large {
2834
+ padding-inline-end: var(--sl-spacing-small);
2835
+ }
2836
+
2837
+ .button--has-suffix.button--large .button__label,
2838
+ .button--caret.button--large .button__label {
2839
+ padding-inline-end: var(--sl-spacing-small);
2840
+ }
2841
+
2842
+ /*
2843
+ * Button groups support a variety of button types (e.g. buttons with tooltips, buttons as dropdown triggers, etc.).
2844
+ * This means buttons aren't always direct descendants of the button group, thus we can't target them with the
2845
+ * ::slotted selector. To work around this, the button group component does some magic to add these special classes to
2846
+ * buttons and we style them here instead.
2847
+ */
2848
+
2849
+ :host([data-sl-button-group__button--first]:not([data-sl-button-group__button--last])) .button {
2850
+ border-start-end-radius: 0;
2851
+ border-end-end-radius: 0;
2852
+ }
2853
+
2854
+ :host([data-sl-button-group__button--inner]) .button {
2855
+ border-radius: 0;
2856
+ }
2857
+
2858
+ :host([data-sl-button-group__button--last]:not([data-sl-button-group__button--first])) .button {
2859
+ border-start-start-radius: 0;
2860
+ border-end-start-radius: 0;
2861
+ }
2862
+
2863
+ /* All except the first */
2864
+ :host([data-sl-button-group__button]:not([data-sl-button-group__button--first])) {
2865
+ margin-inline-start: calc(-1 * var(--sl-input-border-width));
2866
+ }
2867
+
2868
+ /* Add a visual separator between solid buttons */
2869
+ :host(
2870
+ [data-sl-button-group__button]:not(
2871
+ [data-sl-button-group__button--first],
2872
+ [data-sl-button-group__button--radio],
2873
+ [variant='default']
2874
+ ):not(:hover)
2875
+ )
2876
+ .button:after {
2877
+ content: '';
2878
+ position: absolute;
2879
+ top: 0;
2880
+ inset-inline-start: 0;
2881
+ bottom: 0;
2882
+ border-left: solid 1px rgb(128 128 128 / 33%);
2883
+ mix-blend-mode: multiply;
2884
+ }
2885
+
2886
+ /* Bump hovered, focused, and checked buttons up so their focus ring isn't clipped */
2887
+ :host([data-sl-button-group__button--hover]) {
2888
+ z-index: 1;
2889
+ }
2890
+
2891
+ /* Focus and checked are always on top */
2892
+ :host([data-sl-button-group__button--focus]),
2893
+ :host([data-sl-button-group__button][checked]) {
2894
+ z-index: 2;
2895
+ }
2896
+ `;
2897
+
2898
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.NYIIDP5N.js
2899
+ var HasSlotController = class {
2900
+ constructor(host, ...slotNames) {
2901
+ this.slotNames = [];
2902
+ this.handleSlotChange = (event) => {
2903
+ const slot = event.target;
2904
+ if (this.slotNames.includes("[default]") && !slot.name || slot.name && this.slotNames.includes(slot.name)) {
2905
+ this.host.requestUpdate();
2906
+ }
2907
+ };
2908
+ (this.host = host).addController(this);
2909
+ this.slotNames = slotNames;
2910
+ }
2911
+ hasDefaultSlot() {
2912
+ return [...this.host.childNodes].some((node) => {
2913
+ if (node.nodeType === node.TEXT_NODE && node.textContent.trim() !== "") {
2914
+ return true;
2915
+ }
2916
+ if (node.nodeType === node.ELEMENT_NODE) {
2917
+ const el = node;
2918
+ const tagName = el.tagName.toLowerCase();
2919
+ if (tagName === "sl-visually-hidden") {
2920
+ return false;
2921
+ }
2922
+ if (!el.hasAttribute("slot")) {
2923
+ return true;
2924
+ }
2925
+ }
2926
+ return false;
2927
+ });
2928
+ }
2929
+ hasNamedSlot(name2) {
2930
+ return this.host.querySelector(`:scope > [slot="${name2}"]`) !== null;
2931
+ }
2932
+ test(slotName) {
2933
+ return slotName === "[default]" ? this.hasDefaultSlot() : this.hasNamedSlot(slotName);
2934
+ }
2935
+ hostConnected() {
2936
+ this.host.shadowRoot.addEventListener("slotchange", this.handleSlotChange);
2937
+ }
2938
+ hostDisconnected() {
2939
+ this.host.shadowRoot.removeEventListener("slotchange", this.handleSlotChange);
2940
+ }
2941
+ };
2942
+
2943
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3Y6SB6QS.js
2944
+ var basePath = "";
2945
+ function setBasePath(path) {
2946
+ basePath = path;
2947
+ }
2948
+ function getBasePath(subpath = "") {
2949
+ if (!basePath) {
2950
+ const scripts = [...document.getElementsByTagName("script")];
2951
+ const configScript = scripts.find((script) => script.hasAttribute("data-shoelace"));
2952
+ if (configScript) {
2953
+ setBasePath(configScript.getAttribute("data-shoelace"));
2954
+ } else {
2955
+ const fallbackScript = scripts.find((s5) => {
2956
+ return /shoelace(\.min)?\.js($|\?)/.test(s5.src) || /shoelace-autoloader(\.min)?\.js($|\?)/.test(s5.src);
2957
+ });
2958
+ let path = "";
2959
+ if (fallbackScript) {
2960
+ path = fallbackScript.getAttribute("src");
2961
+ }
2962
+ setBasePath(path.split("/").slice(0, -1).join("/"));
2963
+ }
2964
+ }
2965
+ return basePath.replace(/\/$/, "") + (subpath ? `/${subpath.replace(/^\//, "")}` : ``);
2966
+ }
2967
+
2968
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.P7ZG6EMR.js
2969
+ var library = {
2970
+ name: "default",
2971
+ resolver: (name2) => getBasePath(`assets/icons/${name2}.svg`)
2972
+ };
2973
+ var library_default_default = library;
2974
+
2975
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.3TFKS637.js
2976
+ var icons = {
2977
+ caret: `
2978
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
2979
+ <polyline points="6 9 12 15 18 9"></polyline>
2980
+ </svg>
2981
+ `,
2982
+ check: `
2983
+ <svg part="checked-icon" class="checkbox__icon" viewBox="0 0 16 16">
2984
+ <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
2985
+ <g stroke="currentColor">
2986
+ <g transform="translate(3.428571, 3.428571)">
2987
+ <path d="M0,5.71428571 L3.42857143,9.14285714"></path>
2988
+ <path d="M9.14285714,0 L3.42857143,9.14285714"></path>
2989
+ </g>
2990
+ </g>
2991
+ </g>
2992
+ </svg>
2993
+ `,
2994
+ "chevron-down": `
2995
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-down" viewBox="0 0 16 16">
2996
+ <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"/>
2997
+ </svg>
2998
+ `,
2999
+ "chevron-left": `
3000
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-left" viewBox="0 0 16 16">
3001
+ <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"/>
3002
+ </svg>
3003
+ `,
3004
+ "chevron-right": `
3005
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
3006
+ <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"/>
3007
+ </svg>
3008
+ `,
3009
+ copy: `
3010
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-copy" viewBox="0 0 16 16">
3011
+ <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"/>
3012
+ </svg>
3013
+ `,
3014
+ eye: `
3015
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-eye" viewBox="0 0 16 16">
3016
+ <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"/>
3017
+ <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"/>
3018
+ </svg>
3019
+ `,
3020
+ "eye-slash": `
3021
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-eye-slash" viewBox="0 0 16 16">
3022
+ <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"/>
3023
+ <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"/>
3024
+ <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"/>
3025
+ </svg>
3026
+ `,
3027
+ eyedropper: `
3028
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-eyedropper" viewBox="0 0 16 16">
3029
+ <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>
3030
+ </svg>
3031
+ `,
3032
+ "grip-vertical": `
3033
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-grip-vertical" viewBox="0 0 16 16">
3034
+ <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>
3035
+ </svg>
3036
+ `,
3037
+ indeterminate: `
3038
+ <svg part="indeterminate-icon" class="checkbox__icon" viewBox="0 0 16 16">
3039
+ <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
3040
+ <g stroke="currentColor" stroke-width="2">
3041
+ <g transform="translate(2.285714, 6.857143)">
3042
+ <path d="M10.2857143,1.14285714 L1.14285714,1.14285714"></path>
3043
+ </g>
3044
+ </g>
3045
+ </g>
3046
+ </svg>
3047
+ `,
3048
+ "person-fill": `
3049
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-person-fill" viewBox="0 0 16 16">
3050
+ <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"/>
3051
+ </svg>
3052
+ `,
3053
+ "play-fill": `
3054
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-play-fill" viewBox="0 0 16 16">
3055
+ <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>
3056
+ </svg>
3057
+ `,
3058
+ "pause-fill": `
3059
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-pause-fill" viewBox="0 0 16 16">
3060
+ <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>
3061
+ </svg>
3062
+ `,
3063
+ radio: `
3064
+ <svg part="checked-icon" class="radio__icon" viewBox="0 0 16 16">
3065
+ <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
3066
+ <g fill="currentColor">
3067
+ <circle cx="8" cy="8" r="3.42857143"></circle>
3068
+ </g>
3069
+ </g>
3070
+ </svg>
3071
+ `,
3072
+ "star-fill": `
3073
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-star-fill" viewBox="0 0 16 16">
3074
+ <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"/>
3075
+ </svg>
3076
+ `,
3077
+ "x-lg": `
3078
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-x-lg" viewBox="0 0 16 16">
3079
+ <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"/>
3080
+ </svg>
3081
+ `,
3082
+ "x-circle-fill": `
3083
+ <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">
3084
+ <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>
3085
+ </svg>
3086
+ `
3087
+ };
3088
+ var systemLibrary = {
3089
+ name: "system",
3090
+ resolver: (name2) => {
3091
+ if (name2 in icons) {
3092
+ return `data:image/svg+xml,${encodeURIComponent(icons[name2])}`;
3093
+ }
3094
+ return "";
3095
+ }
3096
+ };
3097
+ var library_system_default = systemLibrary;
3098
+
3099
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.ZL53POKZ.js
3100
+ var registry = [library_default_default, library_system_default];
3101
+ var watchedIcons = [];
3102
+ function watchIcon(icon) {
3103
+ watchedIcons.push(icon);
3104
+ }
3105
+ function unwatchIcon(icon) {
3106
+ watchedIcons = watchedIcons.filter((el) => el !== icon);
3107
+ }
3108
+ function getIconLibrary(name2) {
3109
+ return registry.find((lib) => lib.name === name2);
3110
+ }
3111
+
3112
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.QLXRCYS4.js
3113
+ var icon_styles_default = i`
3114
+ :host {
3115
+ display: inline-block;
3116
+ width: 1em;
3117
+ height: 1em;
3118
+ box-sizing: content-box !important;
3119
+ }
3120
+
3121
+ svg {
3122
+ display: block;
3123
+ height: 100%;
3124
+ width: 100%;
3125
+ }
3126
+ `;
3127
+
3128
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.GMYPQTFK.js
3129
+ function watch(propertyName, options) {
3130
+ const resolvedOptions = __spreadValues({
3131
+ waitUntilFirstUpdate: false
3132
+ }, options);
3133
+ return (proto, decoratedFnName) => {
3134
+ const { update: update2 } = proto;
3135
+ const watchedProperties = Array.isArray(propertyName) ? propertyName : [propertyName];
3136
+ proto.update = function(changedProps) {
3137
+ watchedProperties.forEach((property) => {
3138
+ const key = property;
3139
+ if (changedProps.has(key)) {
3140
+ const oldValue = changedProps.get(key);
3141
+ const newValue = this[key];
3142
+ if (oldValue !== newValue) {
3143
+ if (!resolvedOptions.waitUntilFirstUpdate || this.hasUpdated) {
3144
+ this[decoratedFnName](oldValue, newValue);
3145
+ }
3146
+ }
3147
+ }
3148
+ });
3149
+ update2.call(this, changedProps);
3150
+ };
3151
+ };
3152
+ }
3153
+
3154
+ // node_modules/lit-html/directive-helpers.js
3155
+ var { I: t4 } = j;
3156
+ var l3 = (o9, t7) => void 0 === t7 ? void 0 !== o9?._$litType$ : o9?._$litType$ === t7;
3157
+
3158
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.YHLNUJ7P.js
3159
+ var CACHEABLE_ERROR = Symbol();
3160
+ var RETRYABLE_ERROR = Symbol();
3161
+ var parser;
3162
+ var iconCache = /* @__PURE__ */ new Map();
3163
+ var SlIcon = class extends ShoelaceElement {
3164
+ constructor() {
3165
+ super(...arguments);
3166
+ this.initialRender = false;
3167
+ this.svg = null;
3168
+ this.label = "";
3169
+ this.library = "default";
3170
+ }
3171
+ /** Given a URL, this function returns the resulting SVG element or an appropriate error symbol. */
3172
+ async resolveIcon(url, library2) {
3173
+ var _a3;
3174
+ let fileData;
3175
+ if (library2 == null ? void 0 : library2.spriteSheet) {
3176
+ this.svg = b2`<svg part="svg">
3177
+ <use part="use" href="${url}"></use>
3178
+ </svg>`;
3179
+ return this.svg;
3180
+ }
3181
+ try {
3182
+ fileData = await fetch(url, { mode: "cors" });
3183
+ if (!fileData.ok) return fileData.status === 410 ? CACHEABLE_ERROR : RETRYABLE_ERROR;
3184
+ } catch (e9) {
3185
+ return RETRYABLE_ERROR;
3186
+ }
3187
+ try {
3188
+ const div = document.createElement("div");
3189
+ div.innerHTML = await fileData.text();
3190
+ const svg = div.firstElementChild;
3191
+ if (((_a3 = svg == null ? void 0 : svg.tagName) == null ? void 0 : _a3.toLowerCase()) !== "svg") return CACHEABLE_ERROR;
3192
+ if (!parser) parser = new DOMParser();
3193
+ const doc = parser.parseFromString(svg.outerHTML, "text/html");
3194
+ const svgEl = doc.body.querySelector("svg");
3195
+ if (!svgEl) return CACHEABLE_ERROR;
3196
+ svgEl.part.add("svg");
3197
+ return document.adoptNode(svgEl);
3198
+ } catch (e9) {
3199
+ return CACHEABLE_ERROR;
3200
+ }
3201
+ }
3202
+ connectedCallback() {
3203
+ super.connectedCallback();
3204
+ watchIcon(this);
3205
+ }
3206
+ firstUpdated() {
3207
+ this.initialRender = true;
3208
+ this.setIcon();
3209
+ }
3210
+ disconnectedCallback() {
3211
+ super.disconnectedCallback();
3212
+ unwatchIcon(this);
3213
+ }
3214
+ getIconSource() {
3215
+ const library2 = getIconLibrary(this.library);
3216
+ if (this.name && library2) {
3217
+ return {
3218
+ url: library2.resolver(this.name),
3219
+ fromLibrary: true
3220
+ };
3221
+ }
3222
+ return {
3223
+ url: this.src,
3224
+ fromLibrary: false
3225
+ };
3226
+ }
3227
+ handleLabelChange() {
3228
+ const hasLabel = typeof this.label === "string" && this.label.length > 0;
3229
+ if (hasLabel) {
3230
+ this.setAttribute("role", "img");
3231
+ this.setAttribute("aria-label", this.label);
3232
+ this.removeAttribute("aria-hidden");
3233
+ } else {
3234
+ this.removeAttribute("role");
3235
+ this.removeAttribute("aria-label");
3236
+ this.setAttribute("aria-hidden", "true");
3237
+ }
3238
+ }
3239
+ async setIcon() {
3240
+ var _a3;
3241
+ const { url, fromLibrary } = this.getIconSource();
3242
+ const library2 = fromLibrary ? getIconLibrary(this.library) : void 0;
3243
+ if (!url) {
3244
+ this.svg = null;
3245
+ return;
3246
+ }
3247
+ let iconResolver = iconCache.get(url);
3248
+ if (!iconResolver) {
3249
+ iconResolver = this.resolveIcon(url, library2);
3250
+ iconCache.set(url, iconResolver);
3251
+ }
3252
+ if (!this.initialRender) {
3253
+ return;
3254
+ }
3255
+ const svg = await iconResolver;
3256
+ if (svg === RETRYABLE_ERROR) {
3257
+ iconCache.delete(url);
3258
+ }
3259
+ if (url !== this.getIconSource().url) {
3260
+ return;
3261
+ }
3262
+ if (l3(svg)) {
3263
+ this.svg = svg;
3264
+ if (library2) {
3265
+ await this.updateComplete;
3266
+ const shadowSVG = this.shadowRoot.querySelector("[part='svg']");
3267
+ if (typeof library2.mutator === "function" && shadowSVG) {
3268
+ library2.mutator(shadowSVG);
3269
+ }
3270
+ }
3271
+ return;
3272
+ }
3273
+ switch (svg) {
3274
+ case RETRYABLE_ERROR:
3275
+ case CACHEABLE_ERROR:
3276
+ this.svg = null;
3277
+ this.emit("sl-error");
3278
+ break;
3279
+ default:
3280
+ this.svg = svg.cloneNode(true);
3281
+ (_a3 = library2 == null ? void 0 : library2.mutator) == null ? void 0 : _a3.call(library2, this.svg);
3282
+ this.emit("sl-load");
3283
+ }
3284
+ }
3285
+ render() {
3286
+ return this.svg;
3287
+ }
3288
+ };
3289
+ SlIcon.styles = [component_styles_default, icon_styles_default];
3290
+ __decorateClass([
3291
+ r5()
3292
+ ], SlIcon.prototype, "svg", 2);
3293
+ __decorateClass([
3294
+ n4({ reflect: true })
3295
+ ], SlIcon.prototype, "name", 2);
3296
+ __decorateClass([
3297
+ n4()
3298
+ ], SlIcon.prototype, "src", 2);
3299
+ __decorateClass([
3300
+ n4()
3301
+ ], SlIcon.prototype, "label", 2);
3302
+ __decorateClass([
3303
+ n4({ reflect: true })
3304
+ ], SlIcon.prototype, "library", 2);
3305
+ __decorateClass([
3306
+ watch("label")
3307
+ ], SlIcon.prototype, "handleLabelChange", 1);
3308
+ __decorateClass([
3309
+ watch(["name", "src", "library"])
3310
+ ], SlIcon.prototype, "setIcon", 1);
3311
+
3312
+ // node_modules/lit-html/directive.js
3313
+ var t5 = { ATTRIBUTE: 1, CHILD: 2, PROPERTY: 3, BOOLEAN_ATTRIBUTE: 4, EVENT: 5, ELEMENT: 6 };
3314
+ var e6 = (t7) => (...e9) => ({ _$litDirective$: t7, values: e9 });
3315
+ var i5 = class {
3316
+ constructor(t7) {
3317
+ }
3318
+ get _$AU() {
3319
+ return this._$AM._$AU;
3320
+ }
3321
+ _$AT(t7, e9, i7) {
3322
+ this._$Ct = t7, this._$AM = e9, this._$Ci = i7;
3323
+ }
3324
+ _$AS(t7, e9) {
3325
+ return this.update(t7, e9);
3326
+ }
3327
+ update(t7, e9) {
3328
+ return this.render(...e9);
3329
+ }
3330
+ };
3331
+
3332
+ // node_modules/lit-html/directives/class-map.js
3333
+ var e7 = e6(class extends i5 {
3334
+ constructor(t7) {
3335
+ 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.");
3336
+ }
3337
+ render(t7) {
3338
+ return " " + Object.keys(t7).filter((s5) => t7[s5]).join(" ") + " ";
3339
+ }
3340
+ update(s5, [i7]) {
3341
+ if (void 0 === this.st) {
3342
+ this.st = /* @__PURE__ */ new Set(), void 0 !== s5.strings && (this.nt = new Set(s5.strings.join(" ").split(/\s/).filter((t7) => "" !== t7)));
3343
+ for (const t7 in i7) i7[t7] && !this.nt?.has(t7) && this.st.add(t7);
3344
+ return this.render(i7);
3345
+ }
3346
+ const r7 = s5.element.classList;
3347
+ for (const t7 of this.st) t7 in i7 || (r7.remove(t7), this.st.delete(t7));
3348
+ for (const t7 in i7) {
3349
+ const s6 = !!i7[t7];
3350
+ s6 === this.st.has(t7) || this.nt?.has(t7) || (s6 ? (r7.add(t7), this.st.add(t7)) : (r7.remove(t7), this.st.delete(t7)));
3351
+ }
3352
+ return E;
3353
+ }
3354
+ });
3355
+
3356
+ // node_modules/lit-html/static.js
3357
+ var a3 = Symbol.for("");
3358
+ var o6 = (t7) => {
3359
+ if (t7?.r === a3) return t7?._$litStatic$;
3360
+ };
3361
+ var i6 = (t7, ...r7) => ({ _$litStatic$: r7.reduce((r8, e9, a5) => r8 + ((t8) => {
3362
+ if (void 0 !== t8._$litStatic$) return t8._$litStatic$;
3363
+ throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t8}. Use 'unsafeStatic' to pass non-literal values, but
3364
+ take care to ensure page security.`);
3365
+ })(e9) + t7[a5 + 1], t7[0]), r: a3 });
3366
+ var l4 = /* @__PURE__ */ new Map();
3367
+ var n5 = (t7) => (r7, ...e9) => {
3368
+ const a5 = e9.length;
3369
+ let s5, i7;
3370
+ const n7 = [], u5 = [];
3371
+ let c6, $4 = 0, f4 = false;
3372
+ for (; $4 < a5; ) {
3373
+ for (c6 = r7[$4]; $4 < a5 && void 0 !== (i7 = e9[$4], s5 = o6(i7)); ) c6 += s5 + r7[++$4], f4 = true;
3374
+ $4 !== a5 && u5.push(i7), n7.push(c6), $4++;
3375
+ }
3376
+ if ($4 === a5 && n7.push(r7[a5]), f4) {
3377
+ const t8 = n7.join("$$lit$$");
3378
+ void 0 === (r7 = l4.get(t8)) && (n7.raw = n7, l4.set(t8, r7 = n7)), e9 = u5;
3379
+ }
3380
+ return t7(r7, ...e9);
3381
+ };
3382
+ var u3 = n5(b2);
3383
+ var c4 = n5(w);
3384
+ var $2 = n5(T);
3385
+
3386
+ // node_modules/lit-html/directives/if-defined.js
3387
+ var o7 = (o9) => o9 ?? A;
3388
+
3389
+ // node_modules/@shoelace-style/shoelace/dist/chunks/chunk.SBCFYC2S.js
3390
+ var SlButton = class extends ShoelaceElement {
3391
+ constructor() {
3392
+ super(...arguments);
3393
+ this.formControlController = new FormControlController(this, {
3394
+ assumeInteractionOn: ["click"]
3395
+ });
3396
+ this.hasSlotController = new HasSlotController(this, "[default]", "prefix", "suffix");
3397
+ this.localize = new LocalizeController2(this);
3398
+ this.hasFocus = false;
3399
+ this.invalid = false;
3400
+ this.title = "";
3401
+ this.variant = "default";
3402
+ this.size = "medium";
3403
+ this.caret = false;
3404
+ this.disabled = false;
3405
+ this.loading = false;
3406
+ this.outline = false;
3407
+ this.pill = false;
3408
+ this.circle = false;
3409
+ this.type = "button";
3410
+ this.name = "";
3411
+ this.value = "";
3412
+ this.href = "";
3413
+ this.rel = "noreferrer noopener";
3414
+ }
3415
+ /** Gets the validity state object */
3416
+ get validity() {
3417
+ if (this.isButton()) {
3418
+ return this.button.validity;
3419
+ }
3420
+ return validValidityState;
3421
+ }
3422
+ /** Gets the validation message */
3423
+ get validationMessage() {
3424
+ if (this.isButton()) {
3425
+ return this.button.validationMessage;
3426
+ }
3427
+ return "";
3428
+ }
3429
+ firstUpdated() {
3430
+ if (this.isButton()) {
3431
+ this.formControlController.updateValidity();
3432
+ }
3433
+ }
3434
+ handleBlur() {
3435
+ this.hasFocus = false;
3436
+ this.emit("sl-blur");
3437
+ }
3438
+ handleFocus() {
3439
+ this.hasFocus = true;
3440
+ this.emit("sl-focus");
3441
+ }
3442
+ handleClick() {
3443
+ if (this.type === "submit") {
3444
+ this.formControlController.submit(this);
3445
+ }
3446
+ if (this.type === "reset") {
3447
+ this.formControlController.reset(this);
3448
+ }
3449
+ }
3450
+ handleInvalid(event) {
3451
+ this.formControlController.setValidity(false);
3452
+ this.formControlController.emitInvalidEvent(event);
3453
+ }
3454
+ isButton() {
3455
+ return this.href ? false : true;
3456
+ }
3457
+ isLink() {
3458
+ return this.href ? true : false;
3459
+ }
3460
+ handleDisabledChange() {
3461
+ if (this.isButton()) {
3462
+ this.formControlController.setValidity(this.disabled);
3463
+ }
3464
+ }
3465
+ /** Simulates a click on the button. */
3466
+ click() {
3467
+ this.button.click();
3468
+ }
3469
+ /** Sets focus on the button. */
3470
+ focus(options) {
3471
+ this.button.focus(options);
3472
+ }
3473
+ /** Removes focus from the button. */
3474
+ blur() {
3475
+ this.button.blur();
3476
+ }
3477
+ /** Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid. */
3478
+ checkValidity() {
3479
+ if (this.isButton()) {
3480
+ return this.button.checkValidity();
3481
+ }
3482
+ return true;
3483
+ }
3484
+ /** Gets the associated form, if one exists. */
3485
+ getForm() {
3486
+ return this.formControlController.getForm();
3487
+ }
3488
+ /** Checks for validity and shows the browser's validation message if the control is invalid. */
3489
+ reportValidity() {
3490
+ if (this.isButton()) {
3491
+ return this.button.reportValidity();
3492
+ }
3493
+ return true;
3494
+ }
3495
+ /** Sets a custom validation message. Pass an empty string to restore validity. */
3496
+ setCustomValidity(message) {
3497
+ if (this.isButton()) {
3498
+ this.button.setCustomValidity(message);
3499
+ this.formControlController.updateValidity();
3500
+ }
3501
+ }
3502
+ render() {
3503
+ const isLink = this.isLink();
3504
+ const tag = isLink ? i6`a` : i6`button`;
3505
+ return u3`
3506
+ <${tag}
3507
+ part="base"
3508
+ class=${e7({
3509
+ button: true,
3510
+ "button--default": this.variant === "default",
3511
+ "button--primary": this.variant === "primary",
3512
+ "button--success": this.variant === "success",
3513
+ "button--neutral": this.variant === "neutral",
3514
+ "button--warning": this.variant === "warning",
3515
+ "button--danger": this.variant === "danger",
3516
+ "button--text": this.variant === "text",
3517
+ "button--small": this.size === "small",
3518
+ "button--medium": this.size === "medium",
3519
+ "button--large": this.size === "large",
3520
+ "button--caret": this.caret,
3521
+ "button--circle": this.circle,
3522
+ "button--disabled": this.disabled,
3523
+ "button--focused": this.hasFocus,
3524
+ "button--loading": this.loading,
3525
+ "button--standard": !this.outline,
3526
+ "button--outline": this.outline,
3527
+ "button--pill": this.pill,
3528
+ "button--rtl": this.localize.dir() === "rtl",
3529
+ "button--has-label": this.hasSlotController.test("[default]"),
3530
+ "button--has-prefix": this.hasSlotController.test("prefix"),
3531
+ "button--has-suffix": this.hasSlotController.test("suffix")
3532
+ })}
3533
+ ?disabled=${o7(isLink ? void 0 : this.disabled)}
3534
+ type=${o7(isLink ? void 0 : this.type)}
3535
+ title=${this.title}
3536
+ name=${o7(isLink ? void 0 : this.name)}
3537
+ value=${o7(isLink ? void 0 : this.value)}
3538
+ href=${o7(isLink && !this.disabled ? this.href : void 0)}
3539
+ target=${o7(isLink ? this.target : void 0)}
3540
+ download=${o7(isLink ? this.download : void 0)}
3541
+ rel=${o7(isLink ? this.rel : void 0)}
3542
+ role=${o7(isLink ? void 0 : "button")}
3543
+ aria-disabled=${this.disabled ? "true" : "false"}
3544
+ tabindex=${this.disabled ? "-1" : "0"}
3545
+ @blur=${this.handleBlur}
3546
+ @focus=${this.handleFocus}
3547
+ @invalid=${this.isButton() ? this.handleInvalid : null}
3548
+ @click=${this.handleClick}
3549
+ >
3550
+ <slot name="prefix" part="prefix" class="button__prefix"></slot>
3551
+ <slot part="label" class="button__label"></slot>
3552
+ <slot name="suffix" part="suffix" class="button__suffix"></slot>
3553
+ ${this.caret ? u3` <sl-icon part="caret" class="button__caret" library="system" name="caret"></sl-icon> ` : ""}
3554
+ ${this.loading ? u3`<sl-spinner part="spinner"></sl-spinner>` : ""}
3555
+ </${tag}>
3556
+ `;
3557
+ }
3558
+ };
3559
+ SlButton.styles = [component_styles_default, button_styles_default];
3560
+ SlButton.dependencies = {
3561
+ "sl-icon": SlIcon,
3562
+ "sl-spinner": SlSpinner
3563
+ };
3564
+ __decorateClass([
3565
+ e5(".button")
3566
+ ], SlButton.prototype, "button", 2);
3567
+ __decorateClass([
3568
+ r5()
3569
+ ], SlButton.prototype, "hasFocus", 2);
3570
+ __decorateClass([
3571
+ r5()
3572
+ ], SlButton.prototype, "invalid", 2);
3573
+ __decorateClass([
3574
+ n4()
3575
+ ], SlButton.prototype, "title", 2);
3576
+ __decorateClass([
3577
+ n4({ reflect: true })
3578
+ ], SlButton.prototype, "variant", 2);
3579
+ __decorateClass([
3580
+ n4({ reflect: true })
3581
+ ], SlButton.prototype, "size", 2);
3582
+ __decorateClass([
3583
+ n4({ type: Boolean, reflect: true })
3584
+ ], SlButton.prototype, "caret", 2);
3585
+ __decorateClass([
3586
+ n4({ type: Boolean, reflect: true })
3587
+ ], SlButton.prototype, "disabled", 2);
3588
+ __decorateClass([
3589
+ n4({ type: Boolean, reflect: true })
3590
+ ], SlButton.prototype, "loading", 2);
3591
+ __decorateClass([
3592
+ n4({ type: Boolean, reflect: true })
3593
+ ], SlButton.prototype, "outline", 2);
3594
+ __decorateClass([
3595
+ n4({ type: Boolean, reflect: true })
3596
+ ], SlButton.prototype, "pill", 2);
3597
+ __decorateClass([
3598
+ n4({ type: Boolean, reflect: true })
3599
+ ], SlButton.prototype, "circle", 2);
3600
+ __decorateClass([
3601
+ n4()
3602
+ ], SlButton.prototype, "type", 2);
3603
+ __decorateClass([
3604
+ n4()
3605
+ ], SlButton.prototype, "name", 2);
3606
+ __decorateClass([
3607
+ n4()
3608
+ ], SlButton.prototype, "value", 2);
3609
+ __decorateClass([
3610
+ n4()
3611
+ ], SlButton.prototype, "href", 2);
3612
+ __decorateClass([
3613
+ n4()
3614
+ ], SlButton.prototype, "target", 2);
3615
+ __decorateClass([
3616
+ n4()
3617
+ ], SlButton.prototype, "rel", 2);
3618
+ __decorateClass([
3619
+ n4()
3620
+ ], SlButton.prototype, "download", 2);
3621
+ __decorateClass([
3622
+ n4()
3623
+ ], SlButton.prototype, "form", 2);
3624
+ __decorateClass([
3625
+ n4({ attribute: "formaction" })
3626
+ ], SlButton.prototype, "formAction", 2);
3627
+ __decorateClass([
3628
+ n4({ attribute: "formenctype" })
3629
+ ], SlButton.prototype, "formEnctype", 2);
3630
+ __decorateClass([
3631
+ n4({ attribute: "formmethod" })
3632
+ ], SlButton.prototype, "formMethod", 2);
3633
+ __decorateClass([
3634
+ n4({ attribute: "formnovalidate", type: Boolean })
3635
+ ], SlButton.prototype, "formNoValidate", 2);
3636
+ __decorateClass([
3637
+ n4({ attribute: "formtarget" })
3638
+ ], SlButton.prototype, "formTarget", 2);
3639
+ __decorateClass([
3640
+ watch("disabled", { waitUntilFirstUpdate: true })
3641
+ ], SlButton.prototype, "handleDisabledChange", 1);
3642
+
3643
+ // node_modules/@webwriter/lit/index.js
3644
+ var __create2 = Object.create;
3645
+ var __defProp3 = Object.defineProperty;
3646
+ var __getOwnPropDesc3 = Object.getOwnPropertyDescriptor;
3647
+ var __knownSymbol2 = (name2, symbol) => (symbol = Symbol[name2]) ? symbol : Symbol.for("Symbol." + name2);
3648
+ var __typeError3 = (msg2) => {
3649
+ throw TypeError(msg2);
3650
+ };
3651
+ var __defNormalProp3 = (obj, key, value) => key in obj ? __defProp3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3652
+ var __name2 = (target, value) => __defProp3(target, "name", { value, configurable: true });
3653
+ var __decoratorStart2 = (base) => [, , , __create2(base?.[__knownSymbol2("metadata")] ?? null)];
3654
+ var __decoratorStrings2 = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
3655
+ var __expectFn2 = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError3("Function expected") : fn;
3656
+ var __decoratorContext2 = (kind, name2, done, metadata, fns) => ({ kind: __decoratorStrings2[kind], name: name2, metadata, addInitializer: (fn) => done._ ? __typeError3("Already initialized") : fns.push(__expectFn2(fn || null)) });
3657
+ var __decoratorMetadata2 = (array, target) => __defNormalProp3(target, __knownSymbol2("metadata"), array[3]);
3658
+ var __runInitializers2 = (array, flags, self, value) => {
3659
+ 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);
3660
+ return value;
3661
+ };
3662
+ var __decorateElement2 = (array, flags, name2, decorators, target, extra) => {
3663
+ var fn, it, done, ctx, access, k22 = flags & 7, s42 = !!(flags & 8), p32 = !!(flags & 16);
3664
+ var j2 = k22 > 3 ? array.length + 1 : k22 ? s42 ? 1 : 2 : 0, key = __decoratorStrings2[k22 + 5];
3665
+ var initializers = k22 > 3 && (array[j2 - 1] = []), extraInitializers = array[j2] || (array[j2] = []);
3666
+ var desc = k22 && (!p32 && !s42 && (target = target.prototype), k22 < 5 && (k22 > 3 || !p32) && __getOwnPropDesc3(k22 < 4 ? target : { get [name2]() {
3667
+ return __privateGet3(this, extra);
3668
+ }, set [name2](x22) {
3669
+ return __privateSet3(this, extra, x22);
3670
+ } }, name2));
3671
+ k22 ? p32 && k22 < 4 && __name2(extra, (k22 > 2 ? "set " : k22 > 1 ? "get " : "") + name2) : __name2(target, name2);
3672
+ for (var i52 = decorators.length - 1; i52 >= 0; i52--) {
3673
+ ctx = __decoratorContext2(k22, name2, done = {}, array[3], extraInitializers);
3674
+ if (k22) {
3675
+ ctx.static = s42, ctx.private = p32, access = ctx.access = { has: p32 ? (x22) => __privateIn2(target, x22) : (x22) => name2 in x22 };
3676
+ if (k22 ^ 3) access.get = p32 ? (x22) => (k22 ^ 1 ? __privateGet3 : __privateMethod2)(x22, target, k22 ^ 4 ? extra : desc.get) : (x22) => x22[name2];
3677
+ if (k22 > 2) access.set = p32 ? (x22, y32) => __privateSet3(x22, target, y32, k22 ^ 4 ? extra : desc.set) : (x22, y32) => x22[name2] = y32;
3678
+ }
3679
+ 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;
3680
+ if (k22 ^ 4 || it === void 0) __expectFn2(it) && (k22 > 4 ? initializers.unshift(it) : k22 ? p32 ? extra = it : desc[key] = it : target = it);
3681
+ else if (typeof it !== "object" || it === null) __typeError3("Object expected");
3682
+ else __expectFn2(fn = it.get) && (desc.get = fn), __expectFn2(fn = it.set) && (desc.set = fn), __expectFn2(fn = it.init) && initializers.unshift(fn);
3683
+ }
3684
+ return k22 || __decoratorMetadata2(array, target), desc && __defProp3(target, name2, desc), p32 ? k22 ^ 4 ? extra : desc : target;
3685
+ };
3686
+ var __publicField2 = (obj, key, value) => __defNormalProp3(obj, typeof key !== "symbol" ? key + "" : key, value);
3687
+ var __accessCheck3 = (obj, member, msg2) => member.has(obj) || __typeError3("Cannot " + msg2);
3688
+ var __privateIn2 = (member, obj) => Object(obj) !== obj ? __typeError3('Cannot use the "in" operator on this value') : member.has(obj);
3689
+ var __privateGet3 = (obj, member, getter) => (__accessCheck3(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
3690
+ 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);
3691
+ var __privateSet3 = (obj, member, value, setter) => (__accessCheck3(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
3692
+ var __privateMethod2 = (obj, member, method) => (__accessCheck3(obj, member, "access private method"), method);
3693
+ var t6 = globalThis;
3694
+ var e8 = t6.ShadowRoot && (void 0 === t6.ShadyCSS || t6.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype;
3695
+ var s4 = Symbol();
3696
+ var o8 = /* @__PURE__ */ new WeakMap();
3697
+ var n6 = class {
3698
+ constructor(t32, e52, o62) {
3699
+ if (this._$cssResult$ = true, o62 !== s4) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
3700
+ this.cssText = t32, this.t = e52;
3701
+ }
3702
+ get styleSheet() {
3703
+ let t32 = this.o;
3704
+ const s42 = this.t;
3705
+ if (e8 && void 0 === t32) {
3706
+ const e52 = void 0 !== s42 && 1 === s42.length;
3707
+ e52 && (t32 = o8.get(s42)), void 0 === t32 && ((this.o = t32 = new CSSStyleSheet()).replaceSync(this.cssText), e52 && o8.set(s42, t32));
3708
+ }
3709
+ return t32;
3710
+ }
3711
+ toString() {
3712
+ return this.cssText;
3713
+ }
3714
+ };
3715
+ var r6 = (t32) => new n6("string" == typeof t32 ? t32 : t32 + "", void 0, s4);
3716
+ var S3 = (s42, o62) => {
3717
+ if (e8) s42.adoptedStyleSheets = o62.map((t32) => t32 instanceof CSSStyleSheet ? t32 : t32.styleSheet);
3718
+ else for (const e52 of o62) {
3719
+ const o72 = document.createElement("style"), n52 = t6.litNonce;
3720
+ void 0 !== n52 && o72.setAttribute("nonce", n52), o72.textContent = e52.cssText, s42.appendChild(o72);
3721
+ }
3722
+ };
3723
+ var c5 = e8 ? (t32) => t32 : (t32) => t32 instanceof CSSStyleSheet ? ((t42) => {
3724
+ let e52 = "";
3725
+ for (const s42 of t42.cssRules) e52 += s42.cssText;
3726
+ return r6(e52);
3727
+ })(t32) : t32;
3728
+ var { is: i22, defineProperty: e22, getOwnPropertyDescriptor: h3, getOwnPropertyNames: r22, getOwnPropertySymbols: o22, getPrototypeOf: n22 } = Object;
3729
+ var a4 = globalThis;
3730
+ var c22 = a4.trustedTypes;
3731
+ var l5 = c22 ? c22.emptyScript : "";
3732
+ var p3 = a4.reactiveElementPolyfillSupport;
3733
+ var d3 = (t32, s42) => t32;
3734
+ var u4 = { toAttribute(t32, s42) {
3735
+ switch (s42) {
3736
+ case Boolean:
3737
+ t32 = t32 ? l5 : null;
3738
+ break;
3739
+ case Object:
3740
+ case Array:
3741
+ t32 = null == t32 ? t32 : JSON.stringify(t32);
3742
+ }
3743
+ return t32;
3744
+ }, fromAttribute(t32, s42) {
3745
+ let i52 = t32;
3746
+ switch (s42) {
3747
+ case Boolean:
3748
+ i52 = null !== t32;
3749
+ break;
3750
+ case Number:
3751
+ i52 = null === t32 ? null : Number(t32);
3752
+ break;
3753
+ case Object:
3754
+ case Array:
3755
+ try {
3756
+ i52 = JSON.parse(t32);
3757
+ } catch (t42) {
3758
+ i52 = null;
3759
+ }
3760
+ }
3761
+ return i52;
3762
+ } };
3763
+ var f3 = (t32, s42) => !i22(t32, s42);
3764
+ var b3 = { attribute: true, type: String, converter: u4, reflect: false, useDefault: false, hasChanged: f3 };
3765
+ Symbol.metadata ??= Symbol("metadata"), a4.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
3766
+ var y3 = class extends HTMLElement {
3767
+ static addInitializer(t32) {
3768
+ this._$Ei(), (this.l ??= []).push(t32);
3769
+ }
3770
+ static get observedAttributes() {
3771
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
3772
+ }
3773
+ static createProperty(t32, s42 = b3) {
3774
+ 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) {
3775
+ const i52 = Symbol(), h32 = this.getPropertyDescriptor(t32, i52, s42);
3776
+ void 0 !== h32 && e22(this.prototype, t32, h32);
3777
+ }
3778
+ }
3779
+ static getPropertyDescriptor(t32, s42, i52) {
3780
+ const { get: e52, set: r52 } = h3(this.prototype, t32) ?? { get() {
3781
+ return this[s42];
3782
+ }, set(t42) {
3783
+ this[s42] = t42;
3784
+ } };
3785
+ return { get: e52, set(s5) {
3786
+ const h32 = e52?.call(this);
3787
+ r52?.call(this, s5), this.requestUpdate(t32, h32, i52);
3788
+ }, configurable: true, enumerable: true };
3789
+ }
3790
+ static getPropertyOptions(t32) {
3791
+ return this.elementProperties.get(t32) ?? b3;
3792
+ }
3793
+ static _$Ei() {
3794
+ if (this.hasOwnProperty(d3("elementProperties"))) return;
3795
+ const t32 = n22(this);
3796
+ t32.finalize(), void 0 !== t32.l && (this.l = [...t32.l]), this.elementProperties = new Map(t32.elementProperties);
3797
+ }
3798
+ static finalize() {
3799
+ if (this.hasOwnProperty(d3("finalized"))) return;
3800
+ if (this.finalized = true, this._$Ei(), this.hasOwnProperty(d3("properties"))) {
3801
+ const t42 = this.properties, s42 = [...r22(t42), ...o22(t42)];
3802
+ for (const i52 of s42) this.createProperty(i52, t42[i52]);
3803
+ }
3804
+ const t32 = this[Symbol.metadata];
3805
+ if (null !== t32) {
3806
+ const s42 = litPropertyMetadata.get(t32);
3807
+ if (void 0 !== s42) for (const [t42, i52] of s42) this.elementProperties.set(t42, i52);
3808
+ }
3809
+ this._$Eh = /* @__PURE__ */ new Map();
3810
+ for (const [t42, s42] of this.elementProperties) {
3811
+ const i52 = this._$Eu(t42, s42);
3812
+ void 0 !== i52 && this._$Eh.set(i52, t42);
3813
+ }
3814
+ this.elementStyles = this.finalizeStyles(this.styles);
3815
+ }
3816
+ static finalizeStyles(s42) {
3817
+ const i52 = [];
3818
+ if (Array.isArray(s42)) {
3819
+ const e52 = new Set(s42.flat(1 / 0).reverse());
3820
+ for (const s5 of e52) i52.unshift(c5(s5));
3821
+ } else void 0 !== s42 && i52.push(c5(s42));
3822
+ return i52;
3823
+ }
3824
+ static _$Eu(t32, s42) {
3825
+ const i52 = s42.attribute;
3826
+ return false === i52 ? void 0 : "string" == typeof i52 ? i52 : "string" == typeof t32 ? t32.toLowerCase() : void 0;
3827
+ }
3828
+ constructor() {
3829
+ super(), this._$Ep = void 0, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
3830
+ }
3831
+ _$Ev() {
3832
+ this._$ES = new Promise((t32) => this.enableUpdating = t32), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((t32) => t32(this));
3833
+ }
3834
+ addController(t32) {
3835
+ (this._$EO ??= /* @__PURE__ */ new Set()).add(t32), void 0 !== this.renderRoot && this.isConnected && t32.hostConnected?.();
3836
+ }
3837
+ removeController(t32) {
3838
+ this._$EO?.delete(t32);
3839
+ }
3840
+ _$E_() {
3841
+ const t32 = /* @__PURE__ */ new Map(), s42 = this.constructor.elementProperties;
3842
+ for (const i52 of s42.keys()) this.hasOwnProperty(i52) && (t32.set(i52, this[i52]), delete this[i52]);
3843
+ t32.size > 0 && (this._$Ep = t32);
3844
+ }
3845
+ createRenderRoot() {
3846
+ const t32 = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
3847
+ return S3(t32, this.constructor.elementStyles), t32;
3848
+ }
3849
+ connectedCallback() {
3850
+ this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(true), this._$EO?.forEach((t32) => t32.hostConnected?.());
3851
+ }
3852
+ enableUpdating(t32) {
3853
+ }
3854
+ disconnectedCallback() {
3855
+ this._$EO?.forEach((t32) => t32.hostDisconnected?.());
3856
+ }
3857
+ attributeChangedCallback(t32, s42, i52) {
3858
+ this._$AK(t32, i52);
3859
+ }
3860
+ _$ET(t32, s42) {
3861
+ const i52 = this.constructor.elementProperties.get(t32), e52 = this.constructor._$Eu(t32, i52);
3862
+ if (void 0 !== e52 && true === i52.reflect) {
3863
+ const h32 = (void 0 !== i52.converter?.toAttribute ? i52.converter : u4).toAttribute(s42, i52.type);
3864
+ this._$Em = t32, null == h32 ? this.removeAttribute(e52) : this.setAttribute(e52, h32), this._$Em = null;
3865
+ }
3866
+ }
3867
+ _$AK(t32, s42) {
3868
+ const i52 = this.constructor, e52 = i52._$Eh.get(t32);
3869
+ if (void 0 !== e52 && this._$Em !== e52) {
3870
+ const t42 = i52.getPropertyOptions(e52), h32 = "function" == typeof t42.converter ? { fromAttribute: t42.converter } : void 0 !== t42.converter?.fromAttribute ? t42.converter : u4;
3871
+ this._$Em = e52;
3872
+ const r52 = h32.fromAttribute(s42, t42.type);
3873
+ this[e52] = r52 ?? this._$Ej?.get(e52) ?? r52, this._$Em = null;
3874
+ }
3875
+ }
3876
+ requestUpdate(t32, s42, i52, e52 = false, h32) {
3877
+ if (void 0 !== t32) {
3878
+ const r52 = this.constructor;
3879
+ 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;
3880
+ this.C(t32, s42, i52);
3881
+ }
3882
+ false === this.isUpdatePending && (this._$ES = this._$EP());
3883
+ }
3884
+ C(t32, s42, { useDefault: i52, reflect: e52, wrapped: h32 }, r52) {
3885
+ 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));
3886
+ }
3887
+ async _$EP() {
3888
+ this.isUpdatePending = true;
3889
+ try {
3890
+ await this._$ES;
3891
+ } catch (t42) {
3892
+ Promise.reject(t42);
3893
+ }
3894
+ const t32 = this.scheduleUpdate();
3895
+ return null != t32 && await t32, !this.isUpdatePending;
3896
+ }
3897
+ scheduleUpdate() {
3898
+ return this.performUpdate();
3899
+ }
3900
+ performUpdate() {
3901
+ if (!this.isUpdatePending) return;
3902
+ if (!this.hasUpdated) {
3903
+ if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
3904
+ for (const [t52, s5] of this._$Ep) this[t52] = s5;
3905
+ this._$Ep = void 0;
3906
+ }
3907
+ const t42 = this.constructor.elementProperties;
3908
+ if (t42.size > 0) for (const [s5, i52] of t42) {
3909
+ const { wrapped: t52 } = i52, e52 = this[s5];
3910
+ true !== t52 || this._$AL.has(s5) || void 0 === e52 || this.C(s5, void 0, i52, e52);
3911
+ }
3912
+ }
3913
+ let t32 = false;
3914
+ const s42 = this._$AL;
3915
+ try {
3916
+ t32 = this.shouldUpdate(s42), t32 ? (this.willUpdate(s42), this._$EO?.forEach((t42) => t42.hostUpdate?.()), this.update(s42)) : this._$EM();
3917
+ } catch (s5) {
3918
+ throw t32 = false, this._$EM(), s5;
3919
+ }
3920
+ t32 && this._$AE(s42);
3921
+ }
3922
+ willUpdate(t32) {
3923
+ }
3924
+ _$AE(t32) {
3925
+ this._$EO?.forEach((t42) => t42.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t32)), this.updated(t32);
3926
+ }
3927
+ _$EM() {
3928
+ this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = false;
3929
+ }
3930
+ get updateComplete() {
3931
+ return this.getUpdateComplete();
3932
+ }
3933
+ getUpdateComplete() {
3934
+ return this._$ES;
3935
+ }
3936
+ shouldUpdate(t32) {
3937
+ return true;
3938
+ }
3939
+ update(t32) {
3940
+ this._$Eq &&= this._$Eq.forEach((t42) => this._$ET(t42, this[t42])), this._$EM();
3941
+ }
3942
+ updated(t32) {
3943
+ }
3944
+ firstUpdated(t32) {
3945
+ }
3946
+ };
3947
+ y3.elementStyles = [], y3.shadowRootOptions = { mode: "open" }, y3[d3("elementProperties")] = /* @__PURE__ */ new Map(), y3[d3("finalized")] = /* @__PURE__ */ new Map(), p3?.({ ReactiveElement: y3 }), (a4.reactiveElementVersions ??= []).push("2.1.2");
3948
+ var t22 = globalThis;
3949
+ var i32 = (t32) => t32;
3950
+ var s22 = t22.trustedTypes;
3951
+ var e32 = s22 ? s22.createPolicy("lit-html", { createHTML: (t32) => t32 }) : void 0;
3952
+ var h22 = "$lit$";
3953
+ var o32 = `lit$${Math.random().toFixed(9).slice(2)}$`;
3954
+ var n32 = "?" + o32;
3955
+ var r32 = `<${n32}>`;
3956
+ var l22 = document;
3957
+ var c32 = () => l22.createComment("");
3958
+ var a22 = (t32) => null === t32 || "object" != typeof t32 && "function" != typeof t32;
3959
+ var u22 = Array.isArray;
3960
+ var d22 = (t32) => u22(t32) || "function" == typeof t32?.[Symbol.iterator];
3961
+ var f22 = "[ \n\f\r]";
3962
+ var v2 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g;
3963
+ var _2 = /-->/g;
3964
+ var m2 = />/g;
3965
+ var p22 = RegExp(`>|${f22}(?:([^\\s"'>=/]+)(${f22}*=${f22}*(?:[^
3966
+ \f\r"'\`<>=]|("|')|))|$)`, "g");
3967
+ var g2 = /'/g;
3968
+ var $3 = /"/g;
3969
+ var y22 = /^(?:script|style|textarea|title)$/i;
3970
+ var x2 = (t32) => (i52, ...s42) => ({ _$litType$: t32, strings: i52, values: s42 });
3971
+ var b22 = x2(1);
3972
+ var w2 = x2(2);
3973
+ var T2 = x2(3);
3974
+ var E2 = Symbol.for("lit-noChange");
3975
+ var A2 = Symbol.for("lit-nothing");
3976
+ var C2 = /* @__PURE__ */ new WeakMap();
3977
+ var P2 = l22.createTreeWalker(l22, 129);
3978
+ function V2(t32, i52) {
3979
+ if (!u22(t32) || !t32.hasOwnProperty("raw")) throw Error("invalid template strings array");
3980
+ return void 0 !== e32 ? e32.createHTML(i52) : i52;
3981
+ }
3982
+ var N2 = (t32, i52) => {
3983
+ const s42 = t32.length - 1, e52 = [];
3984
+ let n52, l32 = 2 === i52 ? "<svg>" : 3 === i52 ? "<math>" : "", c42 = v2;
3985
+ for (let i62 = 0; i62 < s42; i62++) {
3986
+ const s5 = t32[i62];
3987
+ let a32, u32, d32 = -1, f32 = 0;
3988
+ for (; f32 < s5.length && (c42.lastIndex = f32, u32 = c42.exec(s5), null !== u32); ) f32 = c42.lastIndex, c42 === v2 ? "!--" === u32[1] ? c42 = _2 : void 0 !== u32[1] ? c42 = m2 : 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 === m2 ? c42 = v2 : (c42 = p22, n52 = void 0);
3989
+ const x22 = c42 === p22 && t32[i62 + 1].startsWith("/>") ? " " : "";
3990
+ l32 += c42 === v2 ? s5 + r32 : d32 >= 0 ? (e52.push(a32), s5.slice(0, d32) + h22 + s5.slice(d32) + o32 + x22) : s5 + o32 + (-2 === d32 ? i62 : x22);
3991
+ }
3992
+ return [V2(t32, l32 + (t32[s42] || "<?>") + (2 === i52 ? "</svg>" : 3 === i52 ? "</math>" : "")), e52];
3993
+ };
3994
+ var S22 = class _S {
3995
+ constructor({ strings: t32, _$litType$: i52 }, e52) {
3996
+ let r52;
3997
+ this.parts = [];
3998
+ let l32 = 0, a32 = 0;
3999
+ const u32 = t32.length - 1, d32 = this.parts, [f32, v22] = N2(t32, i52);
4000
+ if (this.el = _S.createElement(f32, e52), P2.currentNode = this.el.content, 2 === i52 || 3 === i52) {
4001
+ const t42 = this.el.content.firstChild;
4002
+ t42.replaceWith(...t42.childNodes);
4003
+ }
4004
+ for (; null !== (r52 = P2.nextNode()) && d32.length < u32; ) {
4005
+ if (1 === r52.nodeType) {
4006
+ if (r52.hasAttributes()) for (const t42 of r52.getAttributeNames()) if (t42.endsWith(h22)) {
4007
+ const i62 = v22[a32++], s42 = r52.getAttribute(t42).split(o32), e62 = /([.?@])?(.*)/.exec(i62);
4008
+ 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);
4009
+ } else t42.startsWith(o32) && (d32.push({ type: 6, index: l32 }), r52.removeAttribute(t42));
4010
+ if (y22.test(r52.tagName)) {
4011
+ const t42 = r52.textContent.split(o32), i62 = t42.length - 1;
4012
+ if (i62 > 0) {
4013
+ r52.textContent = s22 ? s22.emptyScript : "";
4014
+ for (let s42 = 0; s42 < i62; s42++) r52.append(t42[s42], c32()), P2.nextNode(), d32.push({ type: 2, index: ++l32 });
4015
+ r52.append(t42[i62], c32());
4016
+ }
4017
+ }
4018
+ } else if (8 === r52.nodeType) if (r52.data === n32) d32.push({ type: 2, index: l32 });
4019
+ else {
4020
+ let t42 = -1;
4021
+ for (; -1 !== (t42 = r52.data.indexOf(o32, t42 + 1)); ) d32.push({ type: 7, index: l32 }), t42 += o32.length - 1;
4022
+ }
4023
+ l32++;
4024
+ }
4025
+ }
4026
+ static createElement(t32, i52) {
4027
+ const s42 = l22.createElement("template");
4028
+ return s42.innerHTML = t32, s42;
4029
+ }
4030
+ };
4031
+ function M2(t32, i52, s42 = t32, e52) {
4032
+ if (i52 === E2) return i52;
4033
+ let h32 = void 0 !== e52 ? s42._$Co?.[e52] : s42._$Cl;
4034
+ const o62 = a22(i52) ? void 0 : i52._$litDirective$;
4035
+ 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;
4036
+ }
4037
+ var R2 = class {
4038
+ constructor(t32, i52) {
4039
+ this._$AV = [], this._$AN = void 0, this._$AD = t32, this._$AM = i52;
4040
+ }
4041
+ get parentNode() {
4042
+ return this._$AM.parentNode;
4043
+ }
4044
+ get _$AU() {
4045
+ return this._$AM._$AU;
4046
+ }
4047
+ u(t32) {
4048
+ const { el: { content: i52 }, parts: s42 } = this._$AD, e52 = (t32?.creationScope ?? l22).importNode(i52, true);
4049
+ P2.currentNode = e52;
4050
+ let h32 = P2.nextNode(), o62 = 0, n52 = 0, r52 = s42[0];
4051
+ for (; void 0 !== r52; ) {
4052
+ if (o62 === r52.index) {
4053
+ let i62;
4054
+ 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];
4055
+ }
4056
+ o62 !== r52?.index && (h32 = P2.nextNode(), o62++);
4057
+ }
4058
+ return P2.currentNode = l22, e52;
4059
+ }
4060
+ p(t32) {
4061
+ let i52 = 0;
4062
+ 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++;
4063
+ }
4064
+ };
4065
+ var k2 = class _k {
4066
+ get _$AU() {
4067
+ return this._$AM?._$AU ?? this._$Cv;
4068
+ }
4069
+ constructor(t32, i52, s42, e52) {
4070
+ 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;
4071
+ }
4072
+ get parentNode() {
4073
+ let t32 = this._$AA.parentNode;
4074
+ const i52 = this._$AM;
4075
+ return void 0 !== i52 && 11 === t32?.nodeType && (t32 = i52.parentNode), t32;
4076
+ }
4077
+ get startNode() {
4078
+ return this._$AA;
4079
+ }
4080
+ get endNode() {
4081
+ return this._$AB;
4082
+ }
4083
+ _$AI(t32, i52 = this) {
4084
+ 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);
4085
+ }
4086
+ O(t32) {
4087
+ return this._$AA.parentNode.insertBefore(t32, this._$AB);
4088
+ }
4089
+ T(t32) {
4090
+ this._$AH !== t32 && (this._$AR(), this._$AH = this.O(t32));
4091
+ }
4092
+ _(t32) {
4093
+ this._$AH !== A2 && a22(this._$AH) ? this._$AA.nextSibling.data = t32 : this.T(l22.createTextNode(t32)), this._$AH = t32;
4094
+ }
4095
+ $(t32) {
4096
+ 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);
4097
+ if (this._$AH?._$AD === e52) this._$AH.p(i52);
4098
+ else {
4099
+ const t42 = new R2(e52, this), s5 = t42.u(this.options);
4100
+ t42.p(i52), this.T(s5), this._$AH = t42;
4101
+ }
4102
+ }
4103
+ _$AC(t32) {
4104
+ let i52 = C2.get(t32.strings);
4105
+ return void 0 === i52 && C2.set(t32.strings, i52 = new S22(t32)), i52;
4106
+ }
4107
+ k(t32) {
4108
+ u22(this._$AH) || (this._$AH = [], this._$AR());
4109
+ const i52 = this._$AH;
4110
+ let s42, e52 = 0;
4111
+ 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++;
4112
+ e52 < i52.length && (this._$AR(s42 && s42._$AB.nextSibling, e52), i52.length = e52);
4113
+ }
4114
+ _$AR(t32 = this._$AA.nextSibling, s42) {
4115
+ for (this._$AP?.(false, true, s42); t32 !== this._$AB; ) {
4116
+ const s5 = i32(t32).nextSibling;
4117
+ i32(t32).remove(), t32 = s5;
4118
+ }
4119
+ }
4120
+ setConnected(t32) {
4121
+ void 0 === this._$AM && (this._$Cv = t32, this._$AP?.(t32));
4122
+ }
4123
+ };
4124
+ var H2 = class {
4125
+ get tagName() {
4126
+ return this.element.tagName;
4127
+ }
4128
+ get _$AU() {
4129
+ return this._$AM._$AU;
4130
+ }
4131
+ constructor(t32, i52, s42, e52, h32) {
4132
+ 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;
4133
+ }
4134
+ _$AI(t32, i52 = this, s42, e52) {
4135
+ const h32 = this.strings;
4136
+ let o62 = false;
4137
+ if (void 0 === h32) t32 = M2(this, t32, i52, 0), o62 = !a22(t32) || t32 !== this._$AH && t32 !== E2, o62 && (this._$AH = t32);
4138
+ else {
4139
+ const e62 = t32;
4140
+ let n52, r52;
4141
+ 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;
4142
+ }
4143
+ o62 && !e52 && this.j(t32);
4144
+ }
4145
+ j(t32) {
4146
+ t32 === A2 ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t32 ?? "");
4147
+ }
4148
+ };
4149
+ var I2 = class extends H2 {
4150
+ constructor() {
4151
+ super(...arguments), this.type = 3;
4152
+ }
4153
+ j(t32) {
4154
+ this.element[this.name] = t32 === A2 ? void 0 : t32;
4155
+ }
4156
+ };
4157
+ var L2 = class extends H2 {
4158
+ constructor() {
4159
+ super(...arguments), this.type = 4;
4160
+ }
4161
+ j(t32) {
4162
+ this.element.toggleAttribute(this.name, !!t32 && t32 !== A2);
4163
+ }
4164
+ };
4165
+ var z2 = class extends H2 {
4166
+ constructor(t32, i52, s42, e52, h32) {
4167
+ super(t32, i52, s42, e52, h32), this.type = 5;
4168
+ }
4169
+ _$AI(t32, i52 = this) {
4170
+ if ((t32 = M2(this, t32, i52, 0) ?? A2) === E2) return;
4171
+ 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);
4172
+ e52 && this.element.removeEventListener(this.name, this, s42), h32 && this.element.addEventListener(this.name, this, t32), this._$AH = t32;
4173
+ }
4174
+ handleEvent(t32) {
4175
+ "function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t32) : this._$AH.handleEvent(t32);
4176
+ }
4177
+ };
4178
+ var Z2 = class {
4179
+ constructor(t32, i52, s42) {
4180
+ this.element = t32, this.type = 6, this._$AN = void 0, this._$AM = i52, this.options = s42;
4181
+ }
4182
+ get _$AU() {
4183
+ return this._$AM._$AU;
4184
+ }
4185
+ _$AI(t32) {
4186
+ M2(this, t32);
4187
+ }
4188
+ };
4189
+ var B2 = t22.litHtmlPolyfillSupport;
4190
+ B2?.(S22, k2), (t22.litHtmlVersions ??= []).push("3.3.2");
4191
+ var D2 = (t32, i52, s42) => {
4192
+ const e52 = s42?.renderBefore ?? i52;
4193
+ let h32 = e52._$litPart$;
4194
+ if (void 0 === h32) {
4195
+ const t42 = s42?.renderBefore ?? null;
4196
+ e52._$litPart$ = h32 = new k2(i52.insertBefore(c32(), t42), t42, void 0, s42 ?? {});
4197
+ }
4198
+ return h32._$AI(t32), h32;
4199
+ };
4200
+ var s32 = globalThis;
4201
+ var i42 = class extends y3 {
4202
+ constructor() {
4203
+ super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
4204
+ }
4205
+ createRenderRoot() {
4206
+ const t32 = super.createRenderRoot();
4207
+ return this.renderOptions.renderBefore ??= t32.firstChild, t32;
4208
+ }
4209
+ update(t32) {
4210
+ const r52 = this.render();
4211
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t32), this._$Do = D2(r52, this.renderRoot, this.renderOptions);
4212
+ }
4213
+ connectedCallback() {
4214
+ super.connectedCallback(), this._$Do?.setConnected(true);
4215
+ }
4216
+ disconnectedCallback() {
4217
+ super.disconnectedCallback(), this._$Do?.setConnected(false);
4218
+ }
4219
+ render() {
4220
+ return E2;
4221
+ }
4222
+ };
4223
+ i42._$litElement$ = true, i42["finalized"] = true, s32.litElementHydrateSupport?.({ LitElement: i42 });
4224
+ var o42 = s32.litElementPolyfillSupport;
4225
+ o42?.({ LitElement: i42 });
4226
+ (s32.litElementVersions ??= []).push("4.2.2");
4227
+ var o52 = { attribute: true, type: String, converter: u4, reflect: false, hasChanged: f3 };
4228
+ var r42 = (t32 = o52, e52, r52) => {
4229
+ const { kind: n52, metadata: i52 } = r52;
4230
+ let s42 = globalThis.litPropertyMetadata.get(i52);
4231
+ 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) {
4232
+ const { name: o62 } = r52;
4233
+ return { set(r62) {
4234
+ const n62 = e52.get.call(this);
4235
+ e52.set.call(this, r62), this.requestUpdate(o62, n62, t32, true, r62);
4236
+ }, init(e62) {
4237
+ return void 0 !== e62 && this.C(o62, void 0, t32, e62), e62;
4238
+ } };
4239
+ }
4240
+ if ("setter" === n52) {
4241
+ const { name: o62 } = r52;
4242
+ return function(r62) {
4243
+ const n62 = this[o62];
4244
+ e52.call(this, r62), this.requestUpdate(o62, n62, t32, true, r62);
4245
+ };
4246
+ }
4247
+ throw Error("Unsupported decorator location: " + n52);
4248
+ };
4249
+ function n42(t32) {
4250
+ return (e52, o62) => "object" == typeof o62 ? r42(t32, e52, o62) : ((t42, e62, o72) => {
4251
+ const r52 = e62.hasOwnProperty(o72);
4252
+ return e62.constructor.createProperty(o72, t42), r52 ? Object.getOwnPropertyDescriptor(e62, o72) : void 0;
4253
+ })(t32, e52, o62);
4254
+ }
4255
+ var appliedClassMixins = /* @__PURE__ */ new WeakMap();
4256
+ function wasMixinPreviouslyApplied(mixin, superClass) {
4257
+ let klass = superClass;
4258
+ while (klass) {
4259
+ if (appliedClassMixins.get(klass) === mixin) {
4260
+ return true;
4261
+ }
4262
+ klass = Object.getPrototypeOf(klass);
4263
+ }
4264
+ return false;
4265
+ }
4266
+ function dedupeMixin(mixin) {
4267
+ return (superClass) => {
4268
+ if (wasMixinPreviouslyApplied(mixin, superClass)) {
4269
+ return superClass;
4270
+ }
4271
+ const mixedClass = mixin(superClass);
4272
+ appliedClassMixins.set(mixedClass, mixin);
4273
+ return mixedClass;
4274
+ };
4275
+ }
4276
+ var version = "3.0.0";
4277
+ var versions = window.scopedElementsVersions || (window.scopedElementsVersions = []);
4278
+ if (!versions.includes(version)) {
4279
+ versions.push(version);
4280
+ }
4281
+ var ScopedElementsMixinImplementation = (superclass) => (
4282
+ /** @type {ScopedElementsHost} */
4283
+ class ScopedElementsHost extends superclass {
4284
+ /**
4285
+ * Obtains the scoped elements definitions map if specified.
4286
+ *
4287
+ * @type {ScopedElementsMap=}
4288
+ */
4289
+ static scopedElements;
4290
+ static get scopedElementsVersion() {
4291
+ return version;
4292
+ }
4293
+ /** @type {CustomElementRegistry=} */
4294
+ static __registry;
4295
+ /**
4296
+ * Obtains the CustomElementRegistry associated to the ShadowRoot.
4297
+ *
4298
+ * @returns {CustomElementRegistry=}
4299
+ */
4300
+ get registry() {
4301
+ return (
4302
+ /** @type {typeof ScopedElementsHost} */
4303
+ this.constructor.__registry
4304
+ );
4305
+ }
4306
+ /**
4307
+ * Set the CustomElementRegistry associated to the ShadowRoot
4308
+ *
4309
+ * @param {CustomElementRegistry} registry
4310
+ */
4311
+ set registry(registry2) {
4312
+ this.constructor.__registry = registry2;
4313
+ }
4314
+ /**
4315
+ * @param {ShadowRootInit} options
4316
+ * @returns {ShadowRoot}
4317
+ */
4318
+ attachShadow(options) {
4319
+ const { scopedElements } = (
4320
+ /** @type {typeof ScopedElementsHost} */
4321
+ this.constructor
4322
+ );
4323
+ const shouldCreateRegistry = !this.registry || // @ts-ignore
4324
+ this.registry === this.constructor.__registry && !Object.prototype.hasOwnProperty.call(this.constructor, "__registry");
4325
+ if (shouldCreateRegistry) {
4326
+ this.registry = new CustomElementRegistry();
4327
+ for (const [tagName, klass] of Object.entries(scopedElements ?? {})) {
4328
+ this.registry.define(tagName, klass);
4329
+ }
4330
+ }
4331
+ return super.attachShadow({
4332
+ ...options,
4333
+ // The polyfill currently expects the registry to be passed as `customElements`
4334
+ customElements: this.registry,
4335
+ // But the proposal has moved forward, and renamed it to `registry`
4336
+ // For backwards compatibility, we pass it as both
4337
+ registry: this.registry
4338
+ });
4339
+ }
4340
+ }
4341
+ );
4342
+ var ScopedElementsMixin = dedupeMixin(ScopedElementsMixinImplementation);
4343
+ var ScopedElementsMixinImplementation2 = (superclass) => (
4344
+ /** @type {ScopedElementsHost} */
4345
+ class ScopedElementsHost extends ScopedElementsMixin(superclass) {
4346
+ createRenderRoot() {
4347
+ const { shadowRootOptions, elementStyles } = (
4348
+ /** @type {TypeofLitElement} */
4349
+ this.constructor
4350
+ );
4351
+ const shadowRoot = this.attachShadow(shadowRootOptions);
4352
+ this.renderOptions.creationScope = shadowRoot;
4353
+ S3(shadowRoot, elementStyles);
4354
+ this.renderOptions.renderBefore ??= shadowRoot.firstChild;
4355
+ return shadowRoot;
4356
+ }
4357
+ }
4358
+ );
4359
+ var ScopedElementsMixin2 = dedupeMixin(ScopedElementsMixinImplementation2);
4360
+ var _lang_dec;
4361
+ var _contentEditable_dec;
4362
+ var _a;
4363
+ var _init;
4364
+ var _contentEditable;
4365
+ var _lang;
4366
+ 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) {
4367
+ constructor() {
4368
+ super(...arguments);
4369
+ __runInitializers2(_init, 5, this);
4370
+ __publicField2(this, "localize");
4371
+ __privateAdd3(this, _contentEditable, __runInitializers2(_init, 8, this)), __runInitializers2(_init, 11, this);
4372
+ __privateAdd3(this, _lang, "");
4373
+ __publicField2(this, "_inTransaction", false);
4374
+ }
4375
+ /** 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. */
4376
+ get dynamicOptions() {
4377
+ return {};
4378
+ }
4379
+ /** 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. */
4380
+ get dynamicActions() {
4381
+ return {};
4382
+ }
4383
+ get lang() {
4384
+ return (__privateGet3(this, _lang) || this.parentElement?.closest("[lang]")?.lang) ?? "";
4385
+ }
4386
+ set lang(value) {
4387
+ __privateSet3(this, _lang, value);
4388
+ this.localize?.setLocale(value).finally(() => this.requestUpdate("lang"));
4389
+ }
4390
+ connectedCallback() {
4391
+ super.connectedCallback();
4392
+ this.localize?.setLocale(this.lang).finally(() => this.requestUpdate());
4393
+ this.getAttributeNames().forEach((k22) => this.setAttribute(k22, this.getAttribute(k22)));
4394
+ }
4395
+ };
4396
+ _init = __decoratorStart2(_a);
4397
+ _contentEditable = /* @__PURE__ */ new WeakMap();
4398
+ _lang = /* @__PURE__ */ new WeakMap();
4399
+ __decorateElement2(_init, 4, "contentEditable", _contentEditable_dec, LitElementWw, _contentEditable);
4400
+ __decorateElement2(_init, 3, "lang", _lang_dec, LitElementWw);
4401
+ __decoratorMetadata2(_init, LitElementWw);
4402
+ __publicField2(LitElementWw, "scopedElements", {});
4403
+ __publicField2(LitElementWw, "options", {});
4404
+ __publicField2(LitElementWw, "actions", {});
4405
+
4406
+ // src/api/index.ts
4407
+ function getRegistry() {
4408
+ window.__wwQuizRegistry__ ??= { version: 1, quizTypes: [], listeners: [] };
4409
+ return window.__wwQuizRegistry__;
4410
+ }
4411
+ function getQuizTypes() {
4412
+ return [...getRegistry().quizTypes];
4413
+ }
4414
+ function registerQuizType(type) {
4415
+ const registry2 = getRegistry();
4416
+ let i7 = 0;
4417
+ if (type.packageId !== "@webwriter/quiz") {
4418
+ while (i7 < registry2.quizTypes.length) {
4419
+ if (registry2.quizTypes[i7].packageId.localeCompare(type.packageId) >= 0) break;
4420
+ i7++;
4421
+ }
4422
+ }
4423
+ const newPosition = type.widgetPosition ?? Infinity;
4424
+ while (i7 < registry2.quizTypes.length && registry2.quizTypes[i7].packageId === type.packageId) {
4425
+ const currentPosition = registry2.quizTypes[i7].widgetPosition ?? Infinity;
4426
+ if (currentPosition > newPosition) break;
4427
+ if (currentPosition === newPosition && registry2.quizTypes[i7].id.localeCompare(type.id) >= 0) break;
4428
+ i7++;
4429
+ }
4430
+ registry2.quizTypes.splice(i7, 0, type);
4431
+ const quizTypes = getQuizTypes();
4432
+ registry2.listeners.forEach((cb) => cb(quizTypes));
4433
+ }
4434
+
4435
+ // localization/generated/locale-codes.js
4436
+ var sourceLocale2 = `en`;
4437
+ var targetLocales = [
4438
+ `de`,
4439
+ `es`,
4440
+ `fr`,
4441
+ `it`,
4442
+ `nl`
4443
+ ];
4444
+
4445
+ // localization/generated/index.js
4446
+ init_lit_localize();
4447
+
4448
+ // import("./**/*.ts") in localization/generated/index.js
4449
+ var globImport_ts = __glob({
4450
+ "./de.ts": () => Promise.resolve().then(() => (init_de(), de_exports)),
4451
+ "./es.ts": () => Promise.resolve().then(() => (init_es(), es_exports)),
4452
+ "./fr.ts": () => Promise.resolve().then(() => (init_fr(), fr_exports)),
4453
+ "./index.d.ts": () => Promise.resolve().then(() => (init_index_d(), index_d_exports)),
4454
+ "./it.ts": () => Promise.resolve().then(() => (init_it(), it_exports)),
4455
+ "./nl.ts": () => Promise.resolve().then(() => (init_nl(), nl_exports))
4456
+ });
4457
+
4458
+ // localization/generated/index.js
4459
+ var generated_default = configureLocalization({ sourceLocale: sourceLocale2, targetLocales, loadLocale: (locale) => globImport_ts(`./${locale}.ts`) });
4460
+
4461
+ // package.json
4462
+ var name = "@webwriter/quiz";
4463
+
4464
+ // assets/icons/truefalse.svg
4465
+ var truefalse_default = 'data:image/svg+xml,<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg">%0A<path d="M1.854 14.854L14.854 1.854C14.9005 1.80751 14.9374 1.75232 14.9625 1.69158C14.9877 1.63084 15.0006 1.56574 15.0006 1.5C15.0006 1.43425 14.9877 1.36915 14.9625 1.30841C14.9374 1.24768 14.9005 1.19249 14.854 1.146C14.8075 1.09951 14.7523 1.06263 14.6916 1.03748C14.6308 1.01232 14.5657 0.999367 14.5 0.999367C14.4343 0.999367 14.3692 1.01232 14.3084 1.03748C14.2477 1.06263 14.1925 1.09951 14.146 1.146L1.146 14.146C1.09951 14.1925 1.06264 14.2477 1.03748 14.3084C1.01232 14.3692 0.999368 14.4343 0.999368 14.5C0.999368 14.5657 1.01232 14.6308 1.03748 14.6916C1.06264 14.7523 1.09951 14.8075 1.146 14.854C1.23989 14.9479 1.36722 15.0006 1.5 15.0006C1.56574 15.0006 1.63084 14.9877 1.69158 14.9625C1.75232 14.9374 1.80751 14.9005 1.854 14.854Z" />%0A<path d="M14.4784 13.7692C14.6737 13.9645 14.6737 14.2811 14.4784 14.4763C14.2831 14.6716 13.9666 14.6716 13.7713 14.4763L9.52866 10.2337C9.3334 10.0384 9.3334 9.72185 9.52866 9.52659C9.72392 9.33133 10.0405 9.33133 10.2358 9.52659L14.4784 13.7692Z" />%0A<path d="M9.52866 13.7692C9.3334 13.9645 9.3334 14.2811 9.52866 14.4763C9.72392 14.6716 10.0405 14.6716 10.2358 14.4763L14.4784 10.2337C14.6737 10.0384 14.6737 9.72185 14.4784 9.52659C14.2831 9.33133 13.9666 9.33133 13.7713 9.52659L9.52866 13.7692Z" />%0A<path d="M7.05346 1.69367C7.22266 1.47544 7.53666 1.4357 7.7549 1.6049C7.97313 1.7741 8.01287 2.0881 7.84367 2.30634L3.63794 7.73083L1.00756 5.69143C0.789322 5.52223 0.749583 5.20823 0.918784 4.98999C1.08798 4.77176 1.40199 4.73202 1.62022 4.90122L3.4604 6.32795L7.05346 1.69367Z" />%0A</svg>%0A';
4466
+
4467
+ // src/widgets/choice/webwriter-true-false.ts
4468
+ registerQuizType({
4469
+ packageId: name,
4470
+ widgetPosition: 1,
4471
+ id: "webwriter-true-false",
4472
+ getName: () => msg("True or False"),
4473
+ icon: truefalse_default,
4474
+ createInstance: () => document.createElement("webwriter-true-false")
4475
+ });
4476
+ var _showFeedback_dec, _graded_dec, _currentAnswer_dec, _solution_dec, _a2, _WebwriterTrueFalse_decorators, _init2, _solution, _currentAnswer, _graded, _showFeedback;
4477
+ _WebwriterTrueFalse_decorators = [t3("webwriter-true-false")];
4478
+ var WebwriterTrueFalse = class extends (_a2 = LitElementWw, _solution_dec = [n4({ type: String, attribute: true, reflect: true })], _currentAnswer_dec = [r5()], _graded_dec = [r5()], _showFeedback_dec = [r5()], _a2) {
4479
+ constructor() {
4480
+ super(...arguments);
4481
+ /** @internal */
4482
+ __publicField(this, "localize", generated_default);
4483
+ __privateAdd(this, _solution, __runInitializers(_init2, 8, this, "true")), __runInitializers(_init2, 11, this);
4484
+ __privateAdd(this, _currentAnswer, __runInitializers(_init2, 12, this)), __runInitializers(_init2, 15, this);
4485
+ __privateAdd(this, _graded, __runInitializers(_init2, 16, this, false)), __runInitializers(_init2, 19, this);
4486
+ __privateAdd(this, _showFeedback, __runInitializers(_init2, 20, this, false)), __runInitializers(_init2, 23, this);
4487
+ }
4488
+ checkValidity() {
4489
+ return this.currentAnswer !== void 0;
4490
+ }
4491
+ reset() {
4492
+ this.graded = false;
4493
+ this.currentAnswer = void 0;
4494
+ }
4495
+ checkAnswer(detailedFeedback) {
4496
+ this.graded = true;
4497
+ this.showFeedback = detailedFeedback;
4498
+ return this.currentAnswer === this.solution ? 1 : 0;
4499
+ }
4500
+ get selected() {
4501
+ return this.isContentEditable ? this.solution : this.currentAnswer;
4502
+ }
4503
+ set selected(value) {
4504
+ if (this.isContentEditable) this.solution = value ?? "true";
4505
+ else this.currentAnswer = value;
4506
+ }
4507
+ Button(choice, label) {
4508
+ let variant = "default";
4509
+ if (this.selected === choice) {
4510
+ if (this.graded && this.showFeedback) {
4511
+ variant = this.solution === choice ? "success" : "danger";
4512
+ } else {
4513
+ variant = "primary";
4514
+ }
4515
+ }
4516
+ return b2`<sl-button
4517
+ variant=${variant}
4518
+ @click=${() => this.selected = choice}
4519
+ ?disabled=${this.graded}
4520
+ >
4521
+ ${label}
4522
+ </sl-button>`;
4523
+ }
4524
+ render() {
4525
+ return b2`<sl-button-group>
4526
+ ${this.Button("true", msg("True"))} ${this.Button("false", msg("False"))}
4527
+ </sl-button-group>`;
4528
+ }
4529
+ };
4530
+ _init2 = __decoratorStart(_a2);
4531
+ _solution = new WeakMap();
4532
+ _currentAnswer = new WeakMap();
4533
+ _graded = new WeakMap();
4534
+ _showFeedback = new WeakMap();
4535
+ __decorateElement(_init2, 4, "solution", _solution_dec, WebwriterTrueFalse, _solution);
4536
+ __decorateElement(_init2, 4, "currentAnswer", _currentAnswer_dec, WebwriterTrueFalse, _currentAnswer);
4537
+ __decorateElement(_init2, 4, "graded", _graded_dec, WebwriterTrueFalse, _graded);
4538
+ __decorateElement(_init2, 4, "showFeedback", _showFeedback_dec, WebwriterTrueFalse, _showFeedback);
4539
+ WebwriterTrueFalse = __decorateElement(_init2, 0, "WebwriterTrueFalse", _WebwriterTrueFalse_decorators, WebwriterTrueFalse);
4540
+ /** @internal */
4541
+ __publicField(WebwriterTrueFalse, "scopedElements", {
4542
+ "sl-button": SlButton,
4543
+ "sl-button-group": SlButtonGroup
4544
+ });
4545
+ __publicField(WebwriterTrueFalse, "styles", i`
4546
+ sl-button:disabled::part(base) {
4547
+ opacity: 1 !important;
4548
+ cursor: default !important;
4549
+ }
4550
+ `);
4551
+ __runInitializers(_init2, 1, WebwriterTrueFalse);
4552
+ export {
4553
+ WebwriterTrueFalse
4554
+ };
4555
+ /*! Bundled license information:
4556
+
4557
+ @lit/localize/internal/locale-status-event.js:
4558
+ @lit/localize/internal/str-tag.js:
4559
+ @lit/localize/internal/types.js:
4560
+ @lit/localize/internal/default-msg.js:
4561
+ @lit/localize/internal/localized-controller.js:
4562
+ @lit/localize/internal/localized-decorator.js:
4563
+ @lit/localize/internal/runtime-msg.js:
4564
+ @lit/localize/init/runtime.js:
4565
+ @lit/localize/init/transform.js:
4566
+ @lit/reactive-element/decorators/query-assigned-elements.js:
4567
+ (**
4568
+ * @license
4569
+ * Copyright 2021 Google LLC
4570
+ * SPDX-License-Identifier: BSD-3-Clause
4571
+ *)
4572
+
4573
+ @lit/localize/internal/deferred.js:
4574
+ @lit/localize/internal/id-generation.js:
4575
+ @lit/localize/lit-localize.js:
4576
+ lit-html/directive-helpers.js:
4577
+ lit-html/static.js:
4578
+ (**
4579
+ * @license
4580
+ * Copyright 2020 Google LLC
4581
+ * SPDX-License-Identifier: BSD-3-Clause
4582
+ *)
4583
+
4584
+ @lit/localize/internal/fnv1a64.js:
4585
+ (**
4586
+ * @license
4587
+ * Copyright 2014 Travis Webb
4588
+ * SPDX-License-Identifier: MIT
4589
+ *)
4590
+
4591
+ @lit/reactive-element/css-tag.js:
4592
+ (**
4593
+ * @license
4594
+ * Copyright 2019 Google LLC
4595
+ * SPDX-License-Identifier: BSD-3-Clause
4596
+ *)
4597
+
4598
+ @lit/reactive-element/reactive-element.js:
4599
+ lit-html/lit-html.js:
4600
+ lit-element/lit-element.js:
4601
+ @lit/reactive-element/decorators/custom-element.js:
4602
+ @lit/reactive-element/decorators/property.js:
4603
+ @lit/reactive-element/decorators/state.js:
4604
+ @lit/reactive-element/decorators/event-options.js:
4605
+ @lit/reactive-element/decorators/base.js:
4606
+ @lit/reactive-element/decorators/query.js:
4607
+ @lit/reactive-element/decorators/query-all.js:
4608
+ @lit/reactive-element/decorators/query-async.js:
4609
+ @lit/reactive-element/decorators/query-assigned-nodes.js:
4610
+ lit-html/directive.js:
4611
+ (**
4612
+ * @license
4613
+ * Copyright 2017 Google LLC
4614
+ * SPDX-License-Identifier: BSD-3-Clause
4615
+ *)
4616
+
4617
+ lit-html/is-server.js:
4618
+ (**
4619
+ * @license
4620
+ * Copyright 2022 Google LLC
4621
+ * SPDX-License-Identifier: BSD-3-Clause
4622
+ *)
4623
+
4624
+ lit-html/directives/class-map.js:
4625
+ lit-html/directives/if-defined.js:
4626
+ (**
4627
+ * @license
4628
+ * Copyright 2018 Google LLC
4629
+ * SPDX-License-Identifier: BSD-3-Clause
4630
+ *)
4631
+
4632
+ @webwriter/lit/index.js:
4633
+ (*! Bundled license information:
4634
+
4635
+ @lit/reactive-element/css-tag.js:
4636
+ (**
4637
+ * @license
4638
+ * Copyright 2019 Google LLC
4639
+ * SPDX-License-Identifier: BSD-3-Clause
4640
+ *)
4641
+
4642
+ @lit/reactive-element/reactive-element.js:
4643
+ lit-html/lit-html.js:
4644
+ lit-element/lit-element.js:
4645
+ @lit/reactive-element/decorators/custom-element.js:
4646
+ @lit/reactive-element/decorators/property.js:
4647
+ @lit/reactive-element/decorators/state.js:
4648
+ @lit/reactive-element/decorators/event-options.js:
4649
+ @lit/reactive-element/decorators/base.js:
4650
+ @lit/reactive-element/decorators/query.js:
4651
+ @lit/reactive-element/decorators/query-all.js:
4652
+ @lit/reactive-element/decorators/query-async.js:
4653
+ @lit/reactive-element/decorators/query-assigned-nodes.js:
4654
+ (**
4655
+ * @license
4656
+ * Copyright 2017 Google LLC
4657
+ * SPDX-License-Identifier: BSD-3-Clause
4658
+ *)
4659
+
4660
+ lit-html/is-server.js:
4661
+ (**
4662
+ * @license
4663
+ * Copyright 2022 Google LLC
4664
+ * SPDX-License-Identifier: BSD-3-Clause
4665
+ *)
4666
+
4667
+ @lit/reactive-element/decorators/query-assigned-elements.js:
4668
+ (**
4669
+ * @license
4670
+ * Copyright 2021 Google LLC
4671
+ * SPDX-License-Identifier: BSD-3-Clause
4672
+ *)
4673
+ *)
4674
+ */