@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,2908 @@
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 i10 = 0, fns = array[flags >> 1], n10 = fns && fns.length; i10 < n10; i10++) flags & 1 ? fns[i10].call(self) : value = fns[i10].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, s7 = !!(flags & 8), p5 = !!(flags & 16);
34
+ var j = k3 > 3 ? array.length + 1 : k3 ? s7 ? 1 : 2 : 0, key = __decoratorStrings[k3 + 5];
35
+ var initializers = k3 > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
36
+ var desc = k3 && (!p5 && !s7 && (target = target.prototype), k3 < 5 && (k3 > 3 || !p5) && __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 ? p5 && k3 < 4 && __name(extra, (k3 > 2 ? "set " : k3 > 1 ? "get " : "") + name2) : __name(target, name2);
42
+ for (var i10 = decorators.length - 1; i10 >= 0; i10--) {
43
+ ctx = __decoratorContext(k3, name2, done = {}, array[3], extraInitializers);
44
+ if (k3) {
45
+ ctx.static = s7, ctx.private = p5, access = ctx.access = { has: p5 ? (x3) => __privateIn(target, x3) : (x3) => name2 in x3 };
46
+ if (k3 ^ 3) access.get = p5 ? (x3) => (k3 ^ 1 ? __privateGet : __privateMethod)(x3, target, k3 ^ 4 ? extra : desc.get) : (x3) => x3[name2];
47
+ if (k3 > 2) access.set = p5 ? (x3, y5) => __privateSet(x3, target, y5, k3 ^ 4 ? extra : desc.set) : (x3, y5) => x3[name2] = y5;
48
+ }
49
+ it = (0, decorators[i10])(k3 ? k3 < 4 ? p5 ? 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 ? p5 ? 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), p5 ? 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 i10 = 1; i10 < strings.length; i10++) {
86
+ concat += values[valueOrder ? valueOrder[i10 - 1] : i10 - 1];
87
+ concat += strings[i10];
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, t22 = 0, v22 = 40164, t32 = 0, v3 = 52210;
167
+ for (let i10 = 0; i10 < str2.length; i10++) {
168
+ v0 ^= str2.charCodeAt(i10);
169
+ t0 = v0 * 435;
170
+ t1 = v1 * 435;
171
+ t22 = v22 * 435;
172
+ t32 = v3 * 435;
173
+ t22 += v0 << 8;
174
+ t32 += v1 << 8;
175
+ t1 += t0 >>> 16;
176
+ v0 = t0 & 65535;
177
+ t22 += t1 >>> 16;
178
+ v1 = t1 & 65535;
179
+ v3 = t32 + (t22 >>> 16) & 65535;
180
+ v22 = t22 & 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 i10 = 0; i10 < 256; i10++) {
189
+ hl[i10] = (i10 >> 4 & 15).toString(16) + (i10 & 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((i10) => template.values[i10])
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/gap/webwriter-gap.ts
936
+ init_lit_localize();
937
+
938
+ // node_modules/@webwriter/lit/index.js
939
+ var __create2 = Object.create;
940
+ var __defProp2 = Object.defineProperty;
941
+ var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
942
+ var __knownSymbol2 = (name2, symbol) => (symbol = Symbol[name2]) ? symbol : Symbol.for("Symbol." + name2);
943
+ var __typeError2 = (msg2) => {
944
+ throw TypeError(msg2);
945
+ };
946
+ var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
947
+ var __name2 = (target, value) => __defProp2(target, "name", { value, configurable: true });
948
+ var __decoratorStart2 = (base) => [, , , __create2(base?.[__knownSymbol2("metadata")] ?? null)];
949
+ var __decoratorStrings2 = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
950
+ var __expectFn2 = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError2("Function expected") : fn;
951
+ var __decoratorContext2 = (kind, name2, done, metadata, fns) => ({ kind: __decoratorStrings2[kind], name: name2, metadata, addInitializer: (fn) => done._ ? __typeError2("Already initialized") : fns.push(__expectFn2(fn || null)) });
952
+ var __decoratorMetadata2 = (array, target) => __defNormalProp2(target, __knownSymbol2("metadata"), array[3]);
953
+ var __runInitializers2 = (array, flags, self, value) => {
954
+ 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);
955
+ return value;
956
+ };
957
+ var __decorateElement2 = (array, flags, name2, decorators, target, extra) => {
958
+ var fn, it, done, ctx, access, k22 = flags & 7, s42 = !!(flags & 8), p32 = !!(flags & 16);
959
+ var j = k22 > 3 ? array.length + 1 : k22 ? s42 ? 1 : 2 : 0, key = __decoratorStrings2[k22 + 5];
960
+ var initializers = k22 > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
961
+ var desc = k22 && (!p32 && !s42 && (target = target.prototype), k22 < 5 && (k22 > 3 || !p32) && __getOwnPropDesc2(k22 < 4 ? target : { get [name2]() {
962
+ return __privateGet2(this, extra);
963
+ }, set [name2](x22) {
964
+ return __privateSet2(this, extra, x22);
965
+ } }, name2));
966
+ k22 ? p32 && k22 < 4 && __name2(extra, (k22 > 2 ? "set " : k22 > 1 ? "get " : "") + name2) : __name2(target, name2);
967
+ for (var i52 = decorators.length - 1; i52 >= 0; i52--) {
968
+ ctx = __decoratorContext2(k22, name2, done = {}, array[3], extraInitializers);
969
+ if (k22) {
970
+ ctx.static = s42, ctx.private = p32, access = ctx.access = { has: p32 ? (x22) => __privateIn2(target, x22) : (x22) => name2 in x22 };
971
+ if (k22 ^ 3) access.get = p32 ? (x22) => (k22 ^ 1 ? __privateGet2 : __privateMethod2)(x22, target, k22 ^ 4 ? extra : desc.get) : (x22) => x22[name2];
972
+ if (k22 > 2) access.set = p32 ? (x22, y32) => __privateSet2(x22, target, y32, k22 ^ 4 ? extra : desc.set) : (x22, y32) => x22[name2] = y32;
973
+ }
974
+ 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;
975
+ if (k22 ^ 4 || it === void 0) __expectFn2(it) && (k22 > 4 ? initializers.unshift(it) : k22 ? p32 ? extra = it : desc[key] = it : target = it);
976
+ else if (typeof it !== "object" || it === null) __typeError2("Object expected");
977
+ else __expectFn2(fn = it.get) && (desc.get = fn), __expectFn2(fn = it.set) && (desc.set = fn), __expectFn2(fn = it.init) && initializers.unshift(fn);
978
+ }
979
+ return k22 || __decoratorMetadata2(array, target), desc && __defProp2(target, name2, desc), p32 ? k22 ^ 4 ? extra : desc : target;
980
+ };
981
+ var __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== "symbol" ? key + "" : key, value);
982
+ var __accessCheck2 = (obj, member, msg2) => member.has(obj) || __typeError2("Cannot " + msg2);
983
+ var __privateIn2 = (member, obj) => Object(obj) !== obj ? __typeError2('Cannot use the "in" operator on this value') : member.has(obj);
984
+ var __privateGet2 = (obj, member, getter) => (__accessCheck2(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
985
+ 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);
986
+ var __privateSet2 = (obj, member, value, setter) => (__accessCheck2(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
987
+ var __privateMethod2 = (obj, member, method) => (__accessCheck2(obj, member, "access private method"), method);
988
+ var t = globalThis;
989
+ var e = t.ShadowRoot && (void 0 === t.ShadyCSS || t.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype;
990
+ var s = Symbol();
991
+ var o = /* @__PURE__ */ new WeakMap();
992
+ var n = class {
993
+ constructor(t32, e52, o62) {
994
+ if (this._$cssResult$ = true, o62 !== s) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
995
+ this.cssText = t32, this.t = e52;
996
+ }
997
+ get styleSheet() {
998
+ let t32 = this.o;
999
+ const s42 = this.t;
1000
+ if (e && void 0 === t32) {
1001
+ const e52 = void 0 !== s42 && 1 === s42.length;
1002
+ e52 && (t32 = o.get(s42)), void 0 === t32 && ((this.o = t32 = new CSSStyleSheet()).replaceSync(this.cssText), e52 && o.set(s42, t32));
1003
+ }
1004
+ return t32;
1005
+ }
1006
+ toString() {
1007
+ return this.cssText;
1008
+ }
1009
+ };
1010
+ var r = (t32) => new n("string" == typeof t32 ? t32 : t32 + "", void 0, s);
1011
+ var S = (s42, o62) => {
1012
+ if (e) s42.adoptedStyleSheets = o62.map((t32) => t32 instanceof CSSStyleSheet ? t32 : t32.styleSheet);
1013
+ else for (const e52 of o62) {
1014
+ const o72 = document.createElement("style"), n52 = t.litNonce;
1015
+ void 0 !== n52 && o72.setAttribute("nonce", n52), o72.textContent = e52.cssText, s42.appendChild(o72);
1016
+ }
1017
+ };
1018
+ var c = e ? (t32) => t32 : (t32) => t32 instanceof CSSStyleSheet ? ((t42) => {
1019
+ let e52 = "";
1020
+ for (const s42 of t42.cssRules) e52 += s42.cssText;
1021
+ return r(e52);
1022
+ })(t32) : t32;
1023
+ var { is: i2, defineProperty: e2, getOwnPropertyDescriptor: h, getOwnPropertyNames: r2, getOwnPropertySymbols: o2, getPrototypeOf: n2 } = Object;
1024
+ var a = globalThis;
1025
+ var c2 = a.trustedTypes;
1026
+ var l = c2 ? c2.emptyScript : "";
1027
+ var p = a.reactiveElementPolyfillSupport;
1028
+ var d = (t32, s42) => t32;
1029
+ var u = { toAttribute(t32, s42) {
1030
+ switch (s42) {
1031
+ case Boolean:
1032
+ t32 = t32 ? l : null;
1033
+ break;
1034
+ case Object:
1035
+ case Array:
1036
+ t32 = null == t32 ? t32 : JSON.stringify(t32);
1037
+ }
1038
+ return t32;
1039
+ }, fromAttribute(t32, s42) {
1040
+ let i52 = t32;
1041
+ switch (s42) {
1042
+ case Boolean:
1043
+ i52 = null !== t32;
1044
+ break;
1045
+ case Number:
1046
+ i52 = null === t32 ? null : Number(t32);
1047
+ break;
1048
+ case Object:
1049
+ case Array:
1050
+ try {
1051
+ i52 = JSON.parse(t32);
1052
+ } catch (t42) {
1053
+ i52 = null;
1054
+ }
1055
+ }
1056
+ return i52;
1057
+ } };
1058
+ var f = (t32, s42) => !i2(t32, s42);
1059
+ var b = { attribute: true, type: String, converter: u, reflect: false, useDefault: false, hasChanged: f };
1060
+ Symbol.metadata ??= Symbol("metadata"), a.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
1061
+ var y = class extends HTMLElement {
1062
+ static addInitializer(t32) {
1063
+ this._$Ei(), (this.l ??= []).push(t32);
1064
+ }
1065
+ static get observedAttributes() {
1066
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
1067
+ }
1068
+ static createProperty(t32, s42 = b) {
1069
+ 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) {
1070
+ const i52 = Symbol(), h32 = this.getPropertyDescriptor(t32, i52, s42);
1071
+ void 0 !== h32 && e2(this.prototype, t32, h32);
1072
+ }
1073
+ }
1074
+ static getPropertyDescriptor(t32, s42, i52) {
1075
+ const { get: e52, set: r52 } = h(this.prototype, t32) ?? { get() {
1076
+ return this[s42];
1077
+ }, set(t42) {
1078
+ this[s42] = t42;
1079
+ } };
1080
+ return { get: e52, set(s52) {
1081
+ const h32 = e52?.call(this);
1082
+ r52?.call(this, s52), this.requestUpdate(t32, h32, i52);
1083
+ }, configurable: true, enumerable: true };
1084
+ }
1085
+ static getPropertyOptions(t32) {
1086
+ return this.elementProperties.get(t32) ?? b;
1087
+ }
1088
+ static _$Ei() {
1089
+ if (this.hasOwnProperty(d("elementProperties"))) return;
1090
+ const t32 = n2(this);
1091
+ t32.finalize(), void 0 !== t32.l && (this.l = [...t32.l]), this.elementProperties = new Map(t32.elementProperties);
1092
+ }
1093
+ static finalize() {
1094
+ if (this.hasOwnProperty(d("finalized"))) return;
1095
+ if (this.finalized = true, this._$Ei(), this.hasOwnProperty(d("properties"))) {
1096
+ const t42 = this.properties, s42 = [...r2(t42), ...o2(t42)];
1097
+ for (const i52 of s42) this.createProperty(i52, t42[i52]);
1098
+ }
1099
+ const t32 = this[Symbol.metadata];
1100
+ if (null !== t32) {
1101
+ const s42 = litPropertyMetadata.get(t32);
1102
+ if (void 0 !== s42) for (const [t42, i52] of s42) this.elementProperties.set(t42, i52);
1103
+ }
1104
+ this._$Eh = /* @__PURE__ */ new Map();
1105
+ for (const [t42, s42] of this.elementProperties) {
1106
+ const i52 = this._$Eu(t42, s42);
1107
+ void 0 !== i52 && this._$Eh.set(i52, t42);
1108
+ }
1109
+ this.elementStyles = this.finalizeStyles(this.styles);
1110
+ }
1111
+ static finalizeStyles(s42) {
1112
+ const i52 = [];
1113
+ if (Array.isArray(s42)) {
1114
+ const e52 = new Set(s42.flat(1 / 0).reverse());
1115
+ for (const s52 of e52) i52.unshift(c(s52));
1116
+ } else void 0 !== s42 && i52.push(c(s42));
1117
+ return i52;
1118
+ }
1119
+ static _$Eu(t32, s42) {
1120
+ const i52 = s42.attribute;
1121
+ return false === i52 ? void 0 : "string" == typeof i52 ? i52 : "string" == typeof t32 ? t32.toLowerCase() : void 0;
1122
+ }
1123
+ constructor() {
1124
+ super(), this._$Ep = void 0, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
1125
+ }
1126
+ _$Ev() {
1127
+ this._$ES = new Promise((t32) => this.enableUpdating = t32), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((t32) => t32(this));
1128
+ }
1129
+ addController(t32) {
1130
+ (this._$EO ??= /* @__PURE__ */ new Set()).add(t32), void 0 !== this.renderRoot && this.isConnected && t32.hostConnected?.();
1131
+ }
1132
+ removeController(t32) {
1133
+ this._$EO?.delete(t32);
1134
+ }
1135
+ _$E_() {
1136
+ const t32 = /* @__PURE__ */ new Map(), s42 = this.constructor.elementProperties;
1137
+ for (const i52 of s42.keys()) this.hasOwnProperty(i52) && (t32.set(i52, this[i52]), delete this[i52]);
1138
+ t32.size > 0 && (this._$Ep = t32);
1139
+ }
1140
+ createRenderRoot() {
1141
+ const t32 = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
1142
+ return S(t32, this.constructor.elementStyles), t32;
1143
+ }
1144
+ connectedCallback() {
1145
+ this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(true), this._$EO?.forEach((t32) => t32.hostConnected?.());
1146
+ }
1147
+ enableUpdating(t32) {
1148
+ }
1149
+ disconnectedCallback() {
1150
+ this._$EO?.forEach((t32) => t32.hostDisconnected?.());
1151
+ }
1152
+ attributeChangedCallback(t32, s42, i52) {
1153
+ this._$AK(t32, i52);
1154
+ }
1155
+ _$ET(t32, s42) {
1156
+ const i52 = this.constructor.elementProperties.get(t32), e52 = this.constructor._$Eu(t32, i52);
1157
+ if (void 0 !== e52 && true === i52.reflect) {
1158
+ const h32 = (void 0 !== i52.converter?.toAttribute ? i52.converter : u).toAttribute(s42, i52.type);
1159
+ this._$Em = t32, null == h32 ? this.removeAttribute(e52) : this.setAttribute(e52, h32), this._$Em = null;
1160
+ }
1161
+ }
1162
+ _$AK(t32, s42) {
1163
+ const i52 = this.constructor, e52 = i52._$Eh.get(t32);
1164
+ if (void 0 !== e52 && this._$Em !== e52) {
1165
+ const t42 = i52.getPropertyOptions(e52), h32 = "function" == typeof t42.converter ? { fromAttribute: t42.converter } : void 0 !== t42.converter?.fromAttribute ? t42.converter : u;
1166
+ this._$Em = e52;
1167
+ const r52 = h32.fromAttribute(s42, t42.type);
1168
+ this[e52] = r52 ?? this._$Ej?.get(e52) ?? r52, this._$Em = null;
1169
+ }
1170
+ }
1171
+ requestUpdate(t32, s42, i52, e52 = false, h32) {
1172
+ if (void 0 !== t32) {
1173
+ const r52 = this.constructor;
1174
+ if (false === e52 && (h32 = this[t32]), i52 ??= r52.getPropertyOptions(t32), !((i52.hasChanged ?? f)(h32, s42) || i52.useDefault && i52.reflect && h32 === this._$Ej?.get(t32) && !this.hasAttribute(r52._$Eu(t32, i52)))) return;
1175
+ this.C(t32, s42, i52);
1176
+ }
1177
+ false === this.isUpdatePending && (this._$ES = this._$EP());
1178
+ }
1179
+ C(t32, s42, { useDefault: i52, reflect: e52, wrapped: h32 }, r52) {
1180
+ 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));
1181
+ }
1182
+ async _$EP() {
1183
+ this.isUpdatePending = true;
1184
+ try {
1185
+ await this._$ES;
1186
+ } catch (t42) {
1187
+ Promise.reject(t42);
1188
+ }
1189
+ const t32 = this.scheduleUpdate();
1190
+ return null != t32 && await t32, !this.isUpdatePending;
1191
+ }
1192
+ scheduleUpdate() {
1193
+ return this.performUpdate();
1194
+ }
1195
+ performUpdate() {
1196
+ if (!this.isUpdatePending) return;
1197
+ if (!this.hasUpdated) {
1198
+ if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
1199
+ for (const [t52, s52] of this._$Ep) this[t52] = s52;
1200
+ this._$Ep = void 0;
1201
+ }
1202
+ const t42 = this.constructor.elementProperties;
1203
+ if (t42.size > 0) for (const [s52, i52] of t42) {
1204
+ const { wrapped: t52 } = i52, e52 = this[s52];
1205
+ true !== t52 || this._$AL.has(s52) || void 0 === e52 || this.C(s52, void 0, i52, e52);
1206
+ }
1207
+ }
1208
+ let t32 = false;
1209
+ const s42 = this._$AL;
1210
+ try {
1211
+ t32 = this.shouldUpdate(s42), t32 ? (this.willUpdate(s42), this._$EO?.forEach((t42) => t42.hostUpdate?.()), this.update(s42)) : this._$EM();
1212
+ } catch (s52) {
1213
+ throw t32 = false, this._$EM(), s52;
1214
+ }
1215
+ t32 && this._$AE(s42);
1216
+ }
1217
+ willUpdate(t32) {
1218
+ }
1219
+ _$AE(t32) {
1220
+ this._$EO?.forEach((t42) => t42.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t32)), this.updated(t32);
1221
+ }
1222
+ _$EM() {
1223
+ this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = false;
1224
+ }
1225
+ get updateComplete() {
1226
+ return this.getUpdateComplete();
1227
+ }
1228
+ getUpdateComplete() {
1229
+ return this._$ES;
1230
+ }
1231
+ shouldUpdate(t32) {
1232
+ return true;
1233
+ }
1234
+ update(t32) {
1235
+ this._$Eq &&= this._$Eq.forEach((t42) => this._$ET(t42, this[t42])), this._$EM();
1236
+ }
1237
+ updated(t32) {
1238
+ }
1239
+ firstUpdated(t32) {
1240
+ }
1241
+ };
1242
+ 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");
1243
+ var t2 = globalThis;
1244
+ var i3 = (t32) => t32;
1245
+ var s2 = t2.trustedTypes;
1246
+ var e3 = s2 ? s2.createPolicy("lit-html", { createHTML: (t32) => t32 }) : void 0;
1247
+ var h2 = "$lit$";
1248
+ var o3 = `lit$${Math.random().toFixed(9).slice(2)}$`;
1249
+ var n3 = "?" + o3;
1250
+ var r3 = `<${n3}>`;
1251
+ var l2 = document;
1252
+ var c3 = () => l2.createComment("");
1253
+ var a2 = (t32) => null === t32 || "object" != typeof t32 && "function" != typeof t32;
1254
+ var u2 = Array.isArray;
1255
+ var d2 = (t32) => u2(t32) || "function" == typeof t32?.[Symbol.iterator];
1256
+ var f2 = "[ \n\f\r]";
1257
+ var v = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g;
1258
+ var _ = /-->/g;
1259
+ var m = />/g;
1260
+ var p2 = RegExp(`>|${f2}(?:([^\\s"'>=/]+)(${f2}*=${f2}*(?:[^
1261
+ \f\r"'\`<>=]|("|')|))|$)`, "g");
1262
+ var g = /'/g;
1263
+ var $ = /"/g;
1264
+ var y2 = /^(?:script|style|textarea|title)$/i;
1265
+ var x = (t32) => (i52, ...s42) => ({ _$litType$: t32, strings: i52, values: s42 });
1266
+ var b2 = x(1);
1267
+ var w = x(2);
1268
+ var T = x(3);
1269
+ var E = Symbol.for("lit-noChange");
1270
+ var A = Symbol.for("lit-nothing");
1271
+ var C = /* @__PURE__ */ new WeakMap();
1272
+ var P = l2.createTreeWalker(l2, 129);
1273
+ function V(t32, i52) {
1274
+ if (!u2(t32) || !t32.hasOwnProperty("raw")) throw Error("invalid template strings array");
1275
+ return void 0 !== e3 ? e3.createHTML(i52) : i52;
1276
+ }
1277
+ var N = (t32, i52) => {
1278
+ const s42 = t32.length - 1, e52 = [];
1279
+ let n52, l32 = 2 === i52 ? "<svg>" : 3 === i52 ? "<math>" : "", c42 = v;
1280
+ for (let i62 = 0; i62 < s42; i62++) {
1281
+ const s52 = t32[i62];
1282
+ let a32, u32, d32 = -1, f32 = 0;
1283
+ for (; f32 < s52.length && (c42.lastIndex = f32, u32 = c42.exec(s52), null !== u32); ) f32 = c42.lastIndex, c42 === v ? "!--" === u32[1] ? c42 = _ : void 0 !== u32[1] ? c42 = m : void 0 !== u32[2] ? (y2.test(u32[2]) && (n52 = RegExp("</" + u32[2], "g")), c42 = p2) : void 0 !== u32[3] && (c42 = p2) : c42 === p2 ? ">" === u32[0] ? (c42 = n52 ?? v, d32 = -1) : void 0 === u32[1] ? d32 = -2 : (d32 = c42.lastIndex - u32[2].length, a32 = u32[1], c42 = void 0 === u32[3] ? p2 : '"' === u32[3] ? $ : g) : c42 === $ || c42 === g ? c42 = p2 : c42 === _ || c42 === m ? c42 = v : (c42 = p2, n52 = void 0);
1284
+ const x22 = c42 === p2 && t32[i62 + 1].startsWith("/>") ? " " : "";
1285
+ l32 += c42 === v ? s52 + r3 : d32 >= 0 ? (e52.push(a32), s52.slice(0, d32) + h2 + s52.slice(d32) + o3 + x22) : s52 + o3 + (-2 === d32 ? i62 : x22);
1286
+ }
1287
+ return [V(t32, l32 + (t32[s42] || "<?>") + (2 === i52 ? "</svg>" : 3 === i52 ? "</math>" : "")), e52];
1288
+ };
1289
+ var S2 = class _S {
1290
+ constructor({ strings: t32, _$litType$: i52 }, e52) {
1291
+ let r52;
1292
+ this.parts = [];
1293
+ let l32 = 0, a32 = 0;
1294
+ const u32 = t32.length - 1, d32 = this.parts, [f32, v22] = N(t32, i52);
1295
+ if (this.el = _S.createElement(f32, e52), P.currentNode = this.el.content, 2 === i52 || 3 === i52) {
1296
+ const t42 = this.el.content.firstChild;
1297
+ t42.replaceWith(...t42.childNodes);
1298
+ }
1299
+ for (; null !== (r52 = P.nextNode()) && d32.length < u32; ) {
1300
+ if (1 === r52.nodeType) {
1301
+ if (r52.hasAttributes()) for (const t42 of r52.getAttributeNames()) if (t42.endsWith(h2)) {
1302
+ const i62 = v22[a32++], s42 = r52.getAttribute(t42).split(o3), e62 = /([.?@])?(.*)/.exec(i62);
1303
+ d32.push({ type: 1, index: l32, name: e62[2], strings: s42, ctor: "." === e62[1] ? I : "?" === e62[1] ? L : "@" === e62[1] ? z : H }), r52.removeAttribute(t42);
1304
+ } else t42.startsWith(o3) && (d32.push({ type: 6, index: l32 }), r52.removeAttribute(t42));
1305
+ if (y2.test(r52.tagName)) {
1306
+ const t42 = r52.textContent.split(o3), i62 = t42.length - 1;
1307
+ if (i62 > 0) {
1308
+ r52.textContent = s2 ? s2.emptyScript : "";
1309
+ for (let s42 = 0; s42 < i62; s42++) r52.append(t42[s42], c3()), P.nextNode(), d32.push({ type: 2, index: ++l32 });
1310
+ r52.append(t42[i62], c3());
1311
+ }
1312
+ }
1313
+ } else if (8 === r52.nodeType) if (r52.data === n3) d32.push({ type: 2, index: l32 });
1314
+ else {
1315
+ let t42 = -1;
1316
+ for (; -1 !== (t42 = r52.data.indexOf(o3, t42 + 1)); ) d32.push({ type: 7, index: l32 }), t42 += o3.length - 1;
1317
+ }
1318
+ l32++;
1319
+ }
1320
+ }
1321
+ static createElement(t32, i52) {
1322
+ const s42 = l2.createElement("template");
1323
+ return s42.innerHTML = t32, s42;
1324
+ }
1325
+ };
1326
+ function M(t32, i52, s42 = t32, e52) {
1327
+ if (i52 === E) return i52;
1328
+ let h32 = void 0 !== e52 ? s42._$Co?.[e52] : s42._$Cl;
1329
+ const o62 = a2(i52) ? void 0 : i52._$litDirective$;
1330
+ 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 = M(t32, h32._$AS(t32, i52.values), h32, e52)), i52;
1331
+ }
1332
+ var R = class {
1333
+ constructor(t32, i52) {
1334
+ this._$AV = [], this._$AN = void 0, this._$AD = t32, this._$AM = i52;
1335
+ }
1336
+ get parentNode() {
1337
+ return this._$AM.parentNode;
1338
+ }
1339
+ get _$AU() {
1340
+ return this._$AM._$AU;
1341
+ }
1342
+ u(t32) {
1343
+ const { el: { content: i52 }, parts: s42 } = this._$AD, e52 = (t32?.creationScope ?? l2).importNode(i52, true);
1344
+ P.currentNode = e52;
1345
+ let h32 = P.nextNode(), o62 = 0, n52 = 0, r52 = s42[0];
1346
+ for (; void 0 !== r52; ) {
1347
+ if (o62 === r52.index) {
1348
+ let i62;
1349
+ 2 === r52.type ? i62 = new k(h32, h32.nextSibling, this, t32) : 1 === r52.type ? i62 = new r52.ctor(h32, r52.name, r52.strings, this, t32) : 6 === r52.type && (i62 = new Z(h32, this, t32)), this._$AV.push(i62), r52 = s42[++n52];
1350
+ }
1351
+ o62 !== r52?.index && (h32 = P.nextNode(), o62++);
1352
+ }
1353
+ return P.currentNode = l2, e52;
1354
+ }
1355
+ p(t32) {
1356
+ let i52 = 0;
1357
+ 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++;
1358
+ }
1359
+ };
1360
+ var k = class _k {
1361
+ get _$AU() {
1362
+ return this._$AM?._$AU ?? this._$Cv;
1363
+ }
1364
+ constructor(t32, i52, s42, e52) {
1365
+ this.type = 2, this._$AH = A, this._$AN = void 0, this._$AA = t32, this._$AB = i52, this._$AM = s42, this.options = e52, this._$Cv = e52?.isConnected ?? true;
1366
+ }
1367
+ get parentNode() {
1368
+ let t32 = this._$AA.parentNode;
1369
+ const i52 = this._$AM;
1370
+ return void 0 !== i52 && 11 === t32?.nodeType && (t32 = i52.parentNode), t32;
1371
+ }
1372
+ get startNode() {
1373
+ return this._$AA;
1374
+ }
1375
+ get endNode() {
1376
+ return this._$AB;
1377
+ }
1378
+ _$AI(t32, i52 = this) {
1379
+ t32 = M(this, t32, i52), a2(t32) ? t32 === A || null == t32 || "" === t32 ? (this._$AH !== A && this._$AR(), this._$AH = A) : t32 !== this._$AH && t32 !== E && this._(t32) : void 0 !== t32._$litType$ ? this.$(t32) : void 0 !== t32.nodeType ? this.T(t32) : d2(t32) ? this.k(t32) : this._(t32);
1380
+ }
1381
+ O(t32) {
1382
+ return this._$AA.parentNode.insertBefore(t32, this._$AB);
1383
+ }
1384
+ T(t32) {
1385
+ this._$AH !== t32 && (this._$AR(), this._$AH = this.O(t32));
1386
+ }
1387
+ _(t32) {
1388
+ this._$AH !== A && a2(this._$AH) ? this._$AA.nextSibling.data = t32 : this.T(l2.createTextNode(t32)), this._$AH = t32;
1389
+ }
1390
+ $(t32) {
1391
+ const { values: i52, _$litType$: s42 } = t32, e52 = "number" == typeof s42 ? this._$AC(t32) : (void 0 === s42.el && (s42.el = S2.createElement(V(s42.h, s42.h[0]), this.options)), s42);
1392
+ if (this._$AH?._$AD === e52) this._$AH.p(i52);
1393
+ else {
1394
+ const t42 = new R(e52, this), s52 = t42.u(this.options);
1395
+ t42.p(i52), this.T(s52), this._$AH = t42;
1396
+ }
1397
+ }
1398
+ _$AC(t32) {
1399
+ let i52 = C.get(t32.strings);
1400
+ return void 0 === i52 && C.set(t32.strings, i52 = new S2(t32)), i52;
1401
+ }
1402
+ k(t32) {
1403
+ u2(this._$AH) || (this._$AH = [], this._$AR());
1404
+ const i52 = this._$AH;
1405
+ let s42, e52 = 0;
1406
+ for (const h32 of t32) e52 === i52.length ? i52.push(s42 = new _k(this.O(c3()), this.O(c3()), this, this.options)) : s42 = i52[e52], s42._$AI(h32), e52++;
1407
+ e52 < i52.length && (this._$AR(s42 && s42._$AB.nextSibling, e52), i52.length = e52);
1408
+ }
1409
+ _$AR(t32 = this._$AA.nextSibling, s42) {
1410
+ for (this._$AP?.(false, true, s42); t32 !== this._$AB; ) {
1411
+ const s52 = i3(t32).nextSibling;
1412
+ i3(t32).remove(), t32 = s52;
1413
+ }
1414
+ }
1415
+ setConnected(t32) {
1416
+ void 0 === this._$AM && (this._$Cv = t32, this._$AP?.(t32));
1417
+ }
1418
+ };
1419
+ var H = class {
1420
+ get tagName() {
1421
+ return this.element.tagName;
1422
+ }
1423
+ get _$AU() {
1424
+ return this._$AM._$AU;
1425
+ }
1426
+ constructor(t32, i52, s42, e52, h32) {
1427
+ this.type = 1, this._$AH = A, 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 = A;
1428
+ }
1429
+ _$AI(t32, i52 = this, s42, e52) {
1430
+ const h32 = this.strings;
1431
+ let o62 = false;
1432
+ if (void 0 === h32) t32 = M(this, t32, i52, 0), o62 = !a2(t32) || t32 !== this._$AH && t32 !== E, o62 && (this._$AH = t32);
1433
+ else {
1434
+ const e62 = t32;
1435
+ let n52, r52;
1436
+ for (t32 = h32[0], n52 = 0; n52 < h32.length - 1; n52++) r52 = M(this, e62[s42 + n52], i52, n52), r52 === E && (r52 = this._$AH[n52]), o62 ||= !a2(r52) || r52 !== this._$AH[n52], r52 === A ? t32 = A : t32 !== A && (t32 += (r52 ?? "") + h32[n52 + 1]), this._$AH[n52] = r52;
1437
+ }
1438
+ o62 && !e52 && this.j(t32);
1439
+ }
1440
+ j(t32) {
1441
+ t32 === A ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t32 ?? "");
1442
+ }
1443
+ };
1444
+ var I = class extends H {
1445
+ constructor() {
1446
+ super(...arguments), this.type = 3;
1447
+ }
1448
+ j(t32) {
1449
+ this.element[this.name] = t32 === A ? void 0 : t32;
1450
+ }
1451
+ };
1452
+ var L = class extends H {
1453
+ constructor() {
1454
+ super(...arguments), this.type = 4;
1455
+ }
1456
+ j(t32) {
1457
+ this.element.toggleAttribute(this.name, !!t32 && t32 !== A);
1458
+ }
1459
+ };
1460
+ var z = class extends H {
1461
+ constructor(t32, i52, s42, e52, h32) {
1462
+ super(t32, i52, s42, e52, h32), this.type = 5;
1463
+ }
1464
+ _$AI(t32, i52 = this) {
1465
+ if ((t32 = M(this, t32, i52, 0) ?? A) === E) return;
1466
+ const s42 = this._$AH, e52 = t32 === A && s42 !== A || t32.capture !== s42.capture || t32.once !== s42.once || t32.passive !== s42.passive, h32 = t32 !== A && (s42 === A || e52);
1467
+ e52 && this.element.removeEventListener(this.name, this, s42), h32 && this.element.addEventListener(this.name, this, t32), this._$AH = t32;
1468
+ }
1469
+ handleEvent(t32) {
1470
+ "function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t32) : this._$AH.handleEvent(t32);
1471
+ }
1472
+ };
1473
+ var Z = class {
1474
+ constructor(t32, i52, s42) {
1475
+ this.element = t32, this.type = 6, this._$AN = void 0, this._$AM = i52, this.options = s42;
1476
+ }
1477
+ get _$AU() {
1478
+ return this._$AM._$AU;
1479
+ }
1480
+ _$AI(t32) {
1481
+ M(this, t32);
1482
+ }
1483
+ };
1484
+ var B = t2.litHtmlPolyfillSupport;
1485
+ B?.(S2, k), (t2.litHtmlVersions ??= []).push("3.3.2");
1486
+ var D = (t32, i52, s42) => {
1487
+ const e52 = s42?.renderBefore ?? i52;
1488
+ let h32 = e52._$litPart$;
1489
+ if (void 0 === h32) {
1490
+ const t42 = s42?.renderBefore ?? null;
1491
+ e52._$litPart$ = h32 = new k(i52.insertBefore(c3(), t42), t42, void 0, s42 ?? {});
1492
+ }
1493
+ return h32._$AI(t32), h32;
1494
+ };
1495
+ var s3 = globalThis;
1496
+ var i4 = class extends y {
1497
+ constructor() {
1498
+ super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
1499
+ }
1500
+ createRenderRoot() {
1501
+ const t32 = super.createRenderRoot();
1502
+ return this.renderOptions.renderBefore ??= t32.firstChild, t32;
1503
+ }
1504
+ update(t32) {
1505
+ const r52 = this.render();
1506
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t32), this._$Do = D(r52, this.renderRoot, this.renderOptions);
1507
+ }
1508
+ connectedCallback() {
1509
+ super.connectedCallback(), this._$Do?.setConnected(true);
1510
+ }
1511
+ disconnectedCallback() {
1512
+ super.disconnectedCallback(), this._$Do?.setConnected(false);
1513
+ }
1514
+ render() {
1515
+ return E;
1516
+ }
1517
+ };
1518
+ i4._$litElement$ = true, i4["finalized"] = true, s3.litElementHydrateSupport?.({ LitElement: i4 });
1519
+ var o4 = s3.litElementPolyfillSupport;
1520
+ o4?.({ LitElement: i4 });
1521
+ (s3.litElementVersions ??= []).push("4.2.2");
1522
+ var o5 = { attribute: true, type: String, converter: u, reflect: false, hasChanged: f };
1523
+ var r4 = (t32 = o5, e52, r52) => {
1524
+ const { kind: n52, metadata: i52 } = r52;
1525
+ let s42 = globalThis.litPropertyMetadata.get(i52);
1526
+ 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) {
1527
+ const { name: o62 } = r52;
1528
+ return { set(r62) {
1529
+ const n62 = e52.get.call(this);
1530
+ e52.set.call(this, r62), this.requestUpdate(o62, n62, t32, true, r62);
1531
+ }, init(e62) {
1532
+ return void 0 !== e62 && this.C(o62, void 0, t32, e62), e62;
1533
+ } };
1534
+ }
1535
+ if ("setter" === n52) {
1536
+ const { name: o62 } = r52;
1537
+ return function(r62) {
1538
+ const n62 = this[o62];
1539
+ e52.call(this, r62), this.requestUpdate(o62, n62, t32, true, r62);
1540
+ };
1541
+ }
1542
+ throw Error("Unsupported decorator location: " + n52);
1543
+ };
1544
+ function n4(t32) {
1545
+ return (e52, o62) => "object" == typeof o62 ? r4(t32, e52, o62) : ((t42, e62, o72) => {
1546
+ const r52 = e62.hasOwnProperty(o72);
1547
+ return e62.constructor.createProperty(o72, t42), r52 ? Object.getOwnPropertyDescriptor(e62, o72) : void 0;
1548
+ })(t32, e52, o62);
1549
+ }
1550
+ var appliedClassMixins = /* @__PURE__ */ new WeakMap();
1551
+ function wasMixinPreviouslyApplied(mixin, superClass) {
1552
+ let klass = superClass;
1553
+ while (klass) {
1554
+ if (appliedClassMixins.get(klass) === mixin) {
1555
+ return true;
1556
+ }
1557
+ klass = Object.getPrototypeOf(klass);
1558
+ }
1559
+ return false;
1560
+ }
1561
+ function dedupeMixin(mixin) {
1562
+ return (superClass) => {
1563
+ if (wasMixinPreviouslyApplied(mixin, superClass)) {
1564
+ return superClass;
1565
+ }
1566
+ const mixedClass = mixin(superClass);
1567
+ appliedClassMixins.set(mixedClass, mixin);
1568
+ return mixedClass;
1569
+ };
1570
+ }
1571
+ var version = "3.0.0";
1572
+ var versions = window.scopedElementsVersions || (window.scopedElementsVersions = []);
1573
+ if (!versions.includes(version)) {
1574
+ versions.push(version);
1575
+ }
1576
+ var ScopedElementsMixinImplementation = (superclass) => (
1577
+ /** @type {ScopedElementsHost} */
1578
+ class ScopedElementsHost extends superclass {
1579
+ /**
1580
+ * Obtains the scoped elements definitions map if specified.
1581
+ *
1582
+ * @type {ScopedElementsMap=}
1583
+ */
1584
+ static scopedElements;
1585
+ static get scopedElementsVersion() {
1586
+ return version;
1587
+ }
1588
+ /** @type {CustomElementRegistry=} */
1589
+ static __registry;
1590
+ /**
1591
+ * Obtains the CustomElementRegistry associated to the ShadowRoot.
1592
+ *
1593
+ * @returns {CustomElementRegistry=}
1594
+ */
1595
+ get registry() {
1596
+ return (
1597
+ /** @type {typeof ScopedElementsHost} */
1598
+ this.constructor.__registry
1599
+ );
1600
+ }
1601
+ /**
1602
+ * Set the CustomElementRegistry associated to the ShadowRoot
1603
+ *
1604
+ * @param {CustomElementRegistry} registry
1605
+ */
1606
+ set registry(registry) {
1607
+ this.constructor.__registry = registry;
1608
+ }
1609
+ /**
1610
+ * @param {ShadowRootInit} options
1611
+ * @returns {ShadowRoot}
1612
+ */
1613
+ attachShadow(options) {
1614
+ const { scopedElements } = (
1615
+ /** @type {typeof ScopedElementsHost} */
1616
+ this.constructor
1617
+ );
1618
+ const shouldCreateRegistry = !this.registry || // @ts-ignore
1619
+ this.registry === this.constructor.__registry && !Object.prototype.hasOwnProperty.call(this.constructor, "__registry");
1620
+ if (shouldCreateRegistry) {
1621
+ this.registry = new CustomElementRegistry();
1622
+ for (const [tagName, klass] of Object.entries(scopedElements ?? {})) {
1623
+ this.registry.define(tagName, klass);
1624
+ }
1625
+ }
1626
+ return super.attachShadow({
1627
+ ...options,
1628
+ // The polyfill currently expects the registry to be passed as `customElements`
1629
+ customElements: this.registry,
1630
+ // But the proposal has moved forward, and renamed it to `registry`
1631
+ // For backwards compatibility, we pass it as both
1632
+ registry: this.registry
1633
+ });
1634
+ }
1635
+ }
1636
+ );
1637
+ var ScopedElementsMixin = dedupeMixin(ScopedElementsMixinImplementation);
1638
+ var ScopedElementsMixinImplementation2 = (superclass) => (
1639
+ /** @type {ScopedElementsHost} */
1640
+ class ScopedElementsHost extends ScopedElementsMixin(superclass) {
1641
+ createRenderRoot() {
1642
+ const { shadowRootOptions, elementStyles } = (
1643
+ /** @type {TypeofLitElement} */
1644
+ this.constructor
1645
+ );
1646
+ const shadowRoot = this.attachShadow(shadowRootOptions);
1647
+ this.renderOptions.creationScope = shadowRoot;
1648
+ S(shadowRoot, elementStyles);
1649
+ this.renderOptions.renderBefore ??= shadowRoot.firstChild;
1650
+ return shadowRoot;
1651
+ }
1652
+ }
1653
+ );
1654
+ var ScopedElementsMixin2 = dedupeMixin(ScopedElementsMixinImplementation2);
1655
+ var _lang_dec;
1656
+ var _contentEditable_dec;
1657
+ var _a;
1658
+ var _init;
1659
+ var _contentEditable;
1660
+ var _lang;
1661
+ var LitElementWw = class extends (_a = ScopedElementsMixin2(i4), _contentEditable_dec = [n4({ type: String, attribute: true, reflect: true })], _lang_dec = [n4({ type: String, attribute: true, reflect: true })], _a) {
1662
+ constructor() {
1663
+ super(...arguments);
1664
+ __runInitializers2(_init, 5, this);
1665
+ __publicField2(this, "localize");
1666
+ __privateAdd2(this, _contentEditable, __runInitializers2(_init, 8, this)), __runInitializers2(_init, 11, this);
1667
+ __privateAdd2(this, _lang, "");
1668
+ __publicField2(this, "_inTransaction", false);
1669
+ }
1670
+ /** 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. */
1671
+ get dynamicOptions() {
1672
+ return {};
1673
+ }
1674
+ /** 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. */
1675
+ get dynamicActions() {
1676
+ return {};
1677
+ }
1678
+ get lang() {
1679
+ return (__privateGet2(this, _lang) || this.parentElement?.closest("[lang]")?.lang) ?? "";
1680
+ }
1681
+ set lang(value) {
1682
+ __privateSet2(this, _lang, value);
1683
+ this.localize?.setLocale(value).finally(() => this.requestUpdate("lang"));
1684
+ }
1685
+ connectedCallback() {
1686
+ super.connectedCallback();
1687
+ this.localize?.setLocale(this.lang).finally(() => this.requestUpdate());
1688
+ this.getAttributeNames().forEach((k22) => this.setAttribute(k22, this.getAttribute(k22)));
1689
+ }
1690
+ };
1691
+ _init = __decoratorStart2(_a);
1692
+ _contentEditable = /* @__PURE__ */ new WeakMap();
1693
+ _lang = /* @__PURE__ */ new WeakMap();
1694
+ __decorateElement2(_init, 4, "contentEditable", _contentEditable_dec, LitElementWw, _contentEditable);
1695
+ __decorateElement2(_init, 3, "lang", _lang_dec, LitElementWw);
1696
+ __decoratorMetadata2(_init, LitElementWw);
1697
+ __publicField2(LitElementWw, "scopedElements", {});
1698
+ __publicField2(LitElementWw, "options", {});
1699
+ __publicField2(LitElementWw, "actions", {});
1700
+
1701
+ // node_modules/bootstrap-icons/icons/input-cursor.svg
1702
+ var input_cursor_default = 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-input-cursor" viewBox="0 0 16 16">%0A <path d="M10 5h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4v1h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-4zM6 5V4H2a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4v-1H2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1z"/>%0A <path fill-rule="evenodd" d="M8 1a.5.5 0 0 1 .5.5v13a.5.5 0 0 1-1 0v-13A.5.5 0 0 1 8 1"/>%0A</svg>';
1703
+
1704
+ // node_modules/@lit/reactive-element/css-tag.js
1705
+ var t3 = globalThis;
1706
+ var e4 = t3.ShadowRoot && (void 0 === t3.ShadyCSS || t3.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype;
1707
+ var s4 = Symbol();
1708
+ var o6 = /* @__PURE__ */ new WeakMap();
1709
+ var n5 = class {
1710
+ constructor(t7, e9, o12) {
1711
+ if (this._$cssResult$ = true, o12 !== s4) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
1712
+ this.cssText = t7, this.t = e9;
1713
+ }
1714
+ get styleSheet() {
1715
+ let t7 = this.o;
1716
+ const s7 = this.t;
1717
+ if (e4 && void 0 === t7) {
1718
+ const e9 = void 0 !== s7 && 1 === s7.length;
1719
+ e9 && (t7 = o6.get(s7)), void 0 === t7 && ((this.o = t7 = new CSSStyleSheet()).replaceSync(this.cssText), e9 && o6.set(s7, t7));
1720
+ }
1721
+ return t7;
1722
+ }
1723
+ toString() {
1724
+ return this.cssText;
1725
+ }
1726
+ };
1727
+ var r5 = (t7) => new n5("string" == typeof t7 ? t7 : t7 + "", void 0, s4);
1728
+ var i = (t7, ...e9) => {
1729
+ const o12 = 1 === t7.length ? t7[0] : e9.reduce((e10, s7, o13) => e10 + ((t8) => {
1730
+ if (true === t8._$cssResult$) return t8.cssText;
1731
+ if ("number" == typeof t8) return t8;
1732
+ 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.");
1733
+ })(s7) + t7[o13 + 1], t7[0]);
1734
+ return new n5(o12, t7, s4);
1735
+ };
1736
+ var S3 = (s7, o12) => {
1737
+ if (e4) s7.adoptedStyleSheets = o12.map((t7) => t7 instanceof CSSStyleSheet ? t7 : t7.styleSheet);
1738
+ else for (const e9 of o12) {
1739
+ const o13 = document.createElement("style"), n10 = t3.litNonce;
1740
+ void 0 !== n10 && o13.setAttribute("nonce", n10), o13.textContent = e9.cssText, s7.appendChild(o13);
1741
+ }
1742
+ };
1743
+ var c4 = e4 ? (t7) => t7 : (t7) => t7 instanceof CSSStyleSheet ? ((t8) => {
1744
+ let e9 = "";
1745
+ for (const s7 of t8.cssRules) e9 += s7.cssText;
1746
+ return r5(e9);
1747
+ })(t7) : t7;
1748
+
1749
+ // node_modules/@lit/reactive-element/reactive-element.js
1750
+ var { is: i5, defineProperty: e5, getOwnPropertyDescriptor: h3, getOwnPropertyNames: r6, getOwnPropertySymbols: o7, getPrototypeOf: n6 } = Object;
1751
+ var a3 = globalThis;
1752
+ var c5 = a3.trustedTypes;
1753
+ var l3 = c5 ? c5.emptyScript : "";
1754
+ var p3 = a3.reactiveElementPolyfillSupport;
1755
+ var d3 = (t7, s7) => t7;
1756
+ var u3 = { toAttribute(t7, s7) {
1757
+ switch (s7) {
1758
+ case Boolean:
1759
+ t7 = t7 ? l3 : null;
1760
+ break;
1761
+ case Object:
1762
+ case Array:
1763
+ t7 = null == t7 ? t7 : JSON.stringify(t7);
1764
+ }
1765
+ return t7;
1766
+ }, fromAttribute(t7, s7) {
1767
+ let i10 = t7;
1768
+ switch (s7) {
1769
+ case Boolean:
1770
+ i10 = null !== t7;
1771
+ break;
1772
+ case Number:
1773
+ i10 = null === t7 ? null : Number(t7);
1774
+ break;
1775
+ case Object:
1776
+ case Array:
1777
+ try {
1778
+ i10 = JSON.parse(t7);
1779
+ } catch (t8) {
1780
+ i10 = null;
1781
+ }
1782
+ }
1783
+ return i10;
1784
+ } };
1785
+ var f3 = (t7, s7) => !i5(t7, s7);
1786
+ var b3 = { attribute: true, type: String, converter: u3, reflect: false, useDefault: false, hasChanged: f3 };
1787
+ Symbol.metadata ??= Symbol("metadata"), a3.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
1788
+ var y3 = class extends HTMLElement {
1789
+ static addInitializer(t7) {
1790
+ this._$Ei(), (this.l ??= []).push(t7);
1791
+ }
1792
+ static get observedAttributes() {
1793
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
1794
+ }
1795
+ static createProperty(t7, s7 = b3) {
1796
+ if (s7.state && (s7.attribute = false), this._$Ei(), this.prototype.hasOwnProperty(t7) && ((s7 = Object.create(s7)).wrapped = true), this.elementProperties.set(t7, s7), !s7.noAccessor) {
1797
+ const i10 = Symbol(), h5 = this.getPropertyDescriptor(t7, i10, s7);
1798
+ void 0 !== h5 && e5(this.prototype, t7, h5);
1799
+ }
1800
+ }
1801
+ static getPropertyDescriptor(t7, s7, i10) {
1802
+ const { get: e9, set: r10 } = h3(this.prototype, t7) ?? { get() {
1803
+ return this[s7];
1804
+ }, set(t8) {
1805
+ this[s7] = t8;
1806
+ } };
1807
+ return { get: e9, set(s8) {
1808
+ const h5 = e9?.call(this);
1809
+ r10?.call(this, s8), this.requestUpdate(t7, h5, i10);
1810
+ }, configurable: true, enumerable: true };
1811
+ }
1812
+ static getPropertyOptions(t7) {
1813
+ return this.elementProperties.get(t7) ?? b3;
1814
+ }
1815
+ static _$Ei() {
1816
+ if (this.hasOwnProperty(d3("elementProperties"))) return;
1817
+ const t7 = n6(this);
1818
+ t7.finalize(), void 0 !== t7.l && (this.l = [...t7.l]), this.elementProperties = new Map(t7.elementProperties);
1819
+ }
1820
+ static finalize() {
1821
+ if (this.hasOwnProperty(d3("finalized"))) return;
1822
+ if (this.finalized = true, this._$Ei(), this.hasOwnProperty(d3("properties"))) {
1823
+ const t8 = this.properties, s7 = [...r6(t8), ...o7(t8)];
1824
+ for (const i10 of s7) this.createProperty(i10, t8[i10]);
1825
+ }
1826
+ const t7 = this[Symbol.metadata];
1827
+ if (null !== t7) {
1828
+ const s7 = litPropertyMetadata.get(t7);
1829
+ if (void 0 !== s7) for (const [t8, i10] of s7) this.elementProperties.set(t8, i10);
1830
+ }
1831
+ this._$Eh = /* @__PURE__ */ new Map();
1832
+ for (const [t8, s7] of this.elementProperties) {
1833
+ const i10 = this._$Eu(t8, s7);
1834
+ void 0 !== i10 && this._$Eh.set(i10, t8);
1835
+ }
1836
+ this.elementStyles = this.finalizeStyles(this.styles);
1837
+ }
1838
+ static finalizeStyles(s7) {
1839
+ const i10 = [];
1840
+ if (Array.isArray(s7)) {
1841
+ const e9 = new Set(s7.flat(1 / 0).reverse());
1842
+ for (const s8 of e9) i10.unshift(c4(s8));
1843
+ } else void 0 !== s7 && i10.push(c4(s7));
1844
+ return i10;
1845
+ }
1846
+ static _$Eu(t7, s7) {
1847
+ const i10 = s7.attribute;
1848
+ return false === i10 ? void 0 : "string" == typeof i10 ? i10 : "string" == typeof t7 ? t7.toLowerCase() : void 0;
1849
+ }
1850
+ constructor() {
1851
+ super(), this._$Ep = void 0, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
1852
+ }
1853
+ _$Ev() {
1854
+ this._$ES = new Promise((t7) => this.enableUpdating = t7), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((t7) => t7(this));
1855
+ }
1856
+ addController(t7) {
1857
+ (this._$EO ??= /* @__PURE__ */ new Set()).add(t7), void 0 !== this.renderRoot && this.isConnected && t7.hostConnected?.();
1858
+ }
1859
+ removeController(t7) {
1860
+ this._$EO?.delete(t7);
1861
+ }
1862
+ _$E_() {
1863
+ const t7 = /* @__PURE__ */ new Map(), s7 = this.constructor.elementProperties;
1864
+ for (const i10 of s7.keys()) this.hasOwnProperty(i10) && (t7.set(i10, this[i10]), delete this[i10]);
1865
+ t7.size > 0 && (this._$Ep = t7);
1866
+ }
1867
+ createRenderRoot() {
1868
+ const t7 = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
1869
+ return S3(t7, this.constructor.elementStyles), t7;
1870
+ }
1871
+ connectedCallback() {
1872
+ this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(true), this._$EO?.forEach((t7) => t7.hostConnected?.());
1873
+ }
1874
+ enableUpdating(t7) {
1875
+ }
1876
+ disconnectedCallback() {
1877
+ this._$EO?.forEach((t7) => t7.hostDisconnected?.());
1878
+ }
1879
+ attributeChangedCallback(t7, s7, i10) {
1880
+ this._$AK(t7, i10);
1881
+ }
1882
+ _$ET(t7, s7) {
1883
+ const i10 = this.constructor.elementProperties.get(t7), e9 = this.constructor._$Eu(t7, i10);
1884
+ if (void 0 !== e9 && true === i10.reflect) {
1885
+ const h5 = (void 0 !== i10.converter?.toAttribute ? i10.converter : u3).toAttribute(s7, i10.type);
1886
+ this._$Em = t7, null == h5 ? this.removeAttribute(e9) : this.setAttribute(e9, h5), this._$Em = null;
1887
+ }
1888
+ }
1889
+ _$AK(t7, s7) {
1890
+ const i10 = this.constructor, e9 = i10._$Eh.get(t7);
1891
+ if (void 0 !== e9 && this._$Em !== e9) {
1892
+ const t8 = i10.getPropertyOptions(e9), h5 = "function" == typeof t8.converter ? { fromAttribute: t8.converter } : void 0 !== t8.converter?.fromAttribute ? t8.converter : u3;
1893
+ this._$Em = e9;
1894
+ const r10 = h5.fromAttribute(s7, t8.type);
1895
+ this[e9] = r10 ?? this._$Ej?.get(e9) ?? r10, this._$Em = null;
1896
+ }
1897
+ }
1898
+ requestUpdate(t7, s7, i10, e9 = false, h5) {
1899
+ if (void 0 !== t7) {
1900
+ const r10 = this.constructor;
1901
+ if (false === e9 && (h5 = this[t7]), i10 ??= r10.getPropertyOptions(t7), !((i10.hasChanged ?? f3)(h5, s7) || i10.useDefault && i10.reflect && h5 === this._$Ej?.get(t7) && !this.hasAttribute(r10._$Eu(t7, i10)))) return;
1902
+ this.C(t7, s7, i10);
1903
+ }
1904
+ false === this.isUpdatePending && (this._$ES = this._$EP());
1905
+ }
1906
+ C(t7, s7, { useDefault: i10, reflect: e9, wrapped: h5 }, r10) {
1907
+ i10 && !(this._$Ej ??= /* @__PURE__ */ new Map()).has(t7) && (this._$Ej.set(t7, r10 ?? s7 ?? this[t7]), true !== h5 || void 0 !== r10) || (this._$AL.has(t7) || (this.hasUpdated || i10 || (s7 = void 0), this._$AL.set(t7, s7)), true === e9 && this._$Em !== t7 && (this._$Eq ??= /* @__PURE__ */ new Set()).add(t7));
1908
+ }
1909
+ async _$EP() {
1910
+ this.isUpdatePending = true;
1911
+ try {
1912
+ await this._$ES;
1913
+ } catch (t8) {
1914
+ Promise.reject(t8);
1915
+ }
1916
+ const t7 = this.scheduleUpdate();
1917
+ return null != t7 && await t7, !this.isUpdatePending;
1918
+ }
1919
+ scheduleUpdate() {
1920
+ return this.performUpdate();
1921
+ }
1922
+ performUpdate() {
1923
+ if (!this.isUpdatePending) return;
1924
+ if (!this.hasUpdated) {
1925
+ if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
1926
+ for (const [t9, s8] of this._$Ep) this[t9] = s8;
1927
+ this._$Ep = void 0;
1928
+ }
1929
+ const t8 = this.constructor.elementProperties;
1930
+ if (t8.size > 0) for (const [s8, i10] of t8) {
1931
+ const { wrapped: t9 } = i10, e9 = this[s8];
1932
+ true !== t9 || this._$AL.has(s8) || void 0 === e9 || this.C(s8, void 0, i10, e9);
1933
+ }
1934
+ }
1935
+ let t7 = false;
1936
+ const s7 = this._$AL;
1937
+ try {
1938
+ t7 = this.shouldUpdate(s7), t7 ? (this.willUpdate(s7), this._$EO?.forEach((t8) => t8.hostUpdate?.()), this.update(s7)) : this._$EM();
1939
+ } catch (s8) {
1940
+ throw t7 = false, this._$EM(), s8;
1941
+ }
1942
+ t7 && this._$AE(s7);
1943
+ }
1944
+ willUpdate(t7) {
1945
+ }
1946
+ _$AE(t7) {
1947
+ this._$EO?.forEach((t8) => t8.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t7)), this.updated(t7);
1948
+ }
1949
+ _$EM() {
1950
+ this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = false;
1951
+ }
1952
+ get updateComplete() {
1953
+ return this.getUpdateComplete();
1954
+ }
1955
+ getUpdateComplete() {
1956
+ return this._$ES;
1957
+ }
1958
+ shouldUpdate(t7) {
1959
+ return true;
1960
+ }
1961
+ update(t7) {
1962
+ this._$Eq &&= this._$Eq.forEach((t8) => this._$ET(t8, this[t8])), this._$EM();
1963
+ }
1964
+ updated(t7) {
1965
+ }
1966
+ firstUpdated(t7) {
1967
+ }
1968
+ };
1969
+ y3.elementStyles = [], y3.shadowRootOptions = { mode: "open" }, y3[d3("elementProperties")] = /* @__PURE__ */ new Map(), y3[d3("finalized")] = /* @__PURE__ */ new Map(), p3?.({ ReactiveElement: y3 }), (a3.reactiveElementVersions ??= []).push("2.1.2");
1970
+
1971
+ // node_modules/lit-html/lit-html.js
1972
+ var t4 = globalThis;
1973
+ var i6 = (t7) => t7;
1974
+ var s5 = t4.trustedTypes;
1975
+ var e6 = s5 ? s5.createPolicy("lit-html", { createHTML: (t7) => t7 }) : void 0;
1976
+ var h4 = "$lit$";
1977
+ var o8 = `lit$${Math.random().toFixed(9).slice(2)}$`;
1978
+ var n7 = "?" + o8;
1979
+ var r7 = `<${n7}>`;
1980
+ var l4 = document;
1981
+ var c6 = () => l4.createComment("");
1982
+ var a4 = (t7) => null === t7 || "object" != typeof t7 && "function" != typeof t7;
1983
+ var u4 = Array.isArray;
1984
+ var d4 = (t7) => u4(t7) || "function" == typeof t7?.[Symbol.iterator];
1985
+ var f4 = "[ \n\f\r]";
1986
+ var v2 = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g;
1987
+ var _2 = /-->/g;
1988
+ var m2 = />/g;
1989
+ var p4 = RegExp(`>|${f4}(?:([^\\s"'>=/]+)(${f4}*=${f4}*(?:[^
1990
+ \f\r"'\`<>=]|("|')|))|$)`, "g");
1991
+ var g2 = /'/g;
1992
+ var $2 = /"/g;
1993
+ var y4 = /^(?:script|style|textarea|title)$/i;
1994
+ var x2 = (t7) => (i10, ...s7) => ({ _$litType$: t7, strings: i10, values: s7 });
1995
+ var b4 = x2(1);
1996
+ var w2 = x2(2);
1997
+ var T2 = x2(3);
1998
+ var E2 = Symbol.for("lit-noChange");
1999
+ var A2 = Symbol.for("lit-nothing");
2000
+ var C2 = /* @__PURE__ */ new WeakMap();
2001
+ var P2 = l4.createTreeWalker(l4, 129);
2002
+ function V2(t7, i10) {
2003
+ if (!u4(t7) || !t7.hasOwnProperty("raw")) throw Error("invalid template strings array");
2004
+ return void 0 !== e6 ? e6.createHTML(i10) : i10;
2005
+ }
2006
+ var N2 = (t7, i10) => {
2007
+ const s7 = t7.length - 1, e9 = [];
2008
+ let n10, l5 = 2 === i10 ? "<svg>" : 3 === i10 ? "<math>" : "", c7 = v2;
2009
+ for (let i11 = 0; i11 < s7; i11++) {
2010
+ const s8 = t7[i11];
2011
+ let a5, u5, d5 = -1, f5 = 0;
2012
+ for (; f5 < s8.length && (c7.lastIndex = f5, u5 = c7.exec(s8), null !== u5); ) f5 = c7.lastIndex, c7 === v2 ? "!--" === u5[1] ? c7 = _2 : void 0 !== u5[1] ? c7 = m2 : void 0 !== u5[2] ? (y4.test(u5[2]) && (n10 = RegExp("</" + u5[2], "g")), c7 = p4) : void 0 !== u5[3] && (c7 = p4) : c7 === p4 ? ">" === u5[0] ? (c7 = n10 ?? v2, d5 = -1) : void 0 === u5[1] ? d5 = -2 : (d5 = c7.lastIndex - u5[2].length, a5 = u5[1], c7 = void 0 === u5[3] ? p4 : '"' === u5[3] ? $2 : g2) : c7 === $2 || c7 === g2 ? c7 = p4 : c7 === _2 || c7 === m2 ? c7 = v2 : (c7 = p4, n10 = void 0);
2013
+ const x3 = c7 === p4 && t7[i11 + 1].startsWith("/>") ? " " : "";
2014
+ l5 += c7 === v2 ? s8 + r7 : d5 >= 0 ? (e9.push(a5), s8.slice(0, d5) + h4 + s8.slice(d5) + o8 + x3) : s8 + o8 + (-2 === d5 ? i11 : x3);
2015
+ }
2016
+ return [V2(t7, l5 + (t7[s7] || "<?>") + (2 === i10 ? "</svg>" : 3 === i10 ? "</math>" : "")), e9];
2017
+ };
2018
+ var S4 = class _S2 {
2019
+ constructor({ strings: t7, _$litType$: i10 }, e9) {
2020
+ let r10;
2021
+ this.parts = [];
2022
+ let l5 = 0, a5 = 0;
2023
+ const u5 = t7.length - 1, d5 = this.parts, [f5, v3] = N2(t7, i10);
2024
+ if (this.el = _S2.createElement(f5, e9), P2.currentNode = this.el.content, 2 === i10 || 3 === i10) {
2025
+ const t8 = this.el.content.firstChild;
2026
+ t8.replaceWith(...t8.childNodes);
2027
+ }
2028
+ for (; null !== (r10 = P2.nextNode()) && d5.length < u5; ) {
2029
+ if (1 === r10.nodeType) {
2030
+ if (r10.hasAttributes()) for (const t8 of r10.getAttributeNames()) if (t8.endsWith(h4)) {
2031
+ const i11 = v3[a5++], s7 = r10.getAttribute(t8).split(o8), e10 = /([.?@])?(.*)/.exec(i11);
2032
+ d5.push({ type: 1, index: l5, name: e10[2], strings: s7, ctor: "." === e10[1] ? I2 : "?" === e10[1] ? L2 : "@" === e10[1] ? z2 : H2 }), r10.removeAttribute(t8);
2033
+ } else t8.startsWith(o8) && (d5.push({ type: 6, index: l5 }), r10.removeAttribute(t8));
2034
+ if (y4.test(r10.tagName)) {
2035
+ const t8 = r10.textContent.split(o8), i11 = t8.length - 1;
2036
+ if (i11 > 0) {
2037
+ r10.textContent = s5 ? s5.emptyScript : "";
2038
+ for (let s7 = 0; s7 < i11; s7++) r10.append(t8[s7], c6()), P2.nextNode(), d5.push({ type: 2, index: ++l5 });
2039
+ r10.append(t8[i11], c6());
2040
+ }
2041
+ }
2042
+ } else if (8 === r10.nodeType) if (r10.data === n7) d5.push({ type: 2, index: l5 });
2043
+ else {
2044
+ let t8 = -1;
2045
+ for (; -1 !== (t8 = r10.data.indexOf(o8, t8 + 1)); ) d5.push({ type: 7, index: l5 }), t8 += o8.length - 1;
2046
+ }
2047
+ l5++;
2048
+ }
2049
+ }
2050
+ static createElement(t7, i10) {
2051
+ const s7 = l4.createElement("template");
2052
+ return s7.innerHTML = t7, s7;
2053
+ }
2054
+ };
2055
+ function M2(t7, i10, s7 = t7, e9) {
2056
+ if (i10 === E2) return i10;
2057
+ let h5 = void 0 !== e9 ? s7._$Co?.[e9] : s7._$Cl;
2058
+ const o12 = a4(i10) ? void 0 : i10._$litDirective$;
2059
+ return h5?.constructor !== o12 && (h5?._$AO?.(false), void 0 === o12 ? h5 = void 0 : (h5 = new o12(t7), h5._$AT(t7, s7, e9)), void 0 !== e9 ? (s7._$Co ??= [])[e9] = h5 : s7._$Cl = h5), void 0 !== h5 && (i10 = M2(t7, h5._$AS(t7, i10.values), h5, e9)), i10;
2060
+ }
2061
+ var R2 = class {
2062
+ constructor(t7, i10) {
2063
+ this._$AV = [], this._$AN = void 0, this._$AD = t7, this._$AM = i10;
2064
+ }
2065
+ get parentNode() {
2066
+ return this._$AM.parentNode;
2067
+ }
2068
+ get _$AU() {
2069
+ return this._$AM._$AU;
2070
+ }
2071
+ u(t7) {
2072
+ const { el: { content: i10 }, parts: s7 } = this._$AD, e9 = (t7?.creationScope ?? l4).importNode(i10, true);
2073
+ P2.currentNode = e9;
2074
+ let h5 = P2.nextNode(), o12 = 0, n10 = 0, r10 = s7[0];
2075
+ for (; void 0 !== r10; ) {
2076
+ if (o12 === r10.index) {
2077
+ let i11;
2078
+ 2 === r10.type ? i11 = new k2(h5, h5.nextSibling, this, t7) : 1 === r10.type ? i11 = new r10.ctor(h5, r10.name, r10.strings, this, t7) : 6 === r10.type && (i11 = new Z2(h5, this, t7)), this._$AV.push(i11), r10 = s7[++n10];
2079
+ }
2080
+ o12 !== r10?.index && (h5 = P2.nextNode(), o12++);
2081
+ }
2082
+ return P2.currentNode = l4, e9;
2083
+ }
2084
+ p(t7) {
2085
+ let i10 = 0;
2086
+ for (const s7 of this._$AV) void 0 !== s7 && (void 0 !== s7.strings ? (s7._$AI(t7, s7, i10), i10 += s7.strings.length - 2) : s7._$AI(t7[i10])), i10++;
2087
+ }
2088
+ };
2089
+ var k2 = class _k2 {
2090
+ get _$AU() {
2091
+ return this._$AM?._$AU ?? this._$Cv;
2092
+ }
2093
+ constructor(t7, i10, s7, e9) {
2094
+ this.type = 2, this._$AH = A2, this._$AN = void 0, this._$AA = t7, this._$AB = i10, this._$AM = s7, this.options = e9, this._$Cv = e9?.isConnected ?? true;
2095
+ }
2096
+ get parentNode() {
2097
+ let t7 = this._$AA.parentNode;
2098
+ const i10 = this._$AM;
2099
+ return void 0 !== i10 && 11 === t7?.nodeType && (t7 = i10.parentNode), t7;
2100
+ }
2101
+ get startNode() {
2102
+ return this._$AA;
2103
+ }
2104
+ get endNode() {
2105
+ return this._$AB;
2106
+ }
2107
+ _$AI(t7, i10 = this) {
2108
+ t7 = M2(this, t7, i10), a4(t7) ? t7 === A2 || null == t7 || "" === t7 ? (this._$AH !== A2 && this._$AR(), this._$AH = A2) : t7 !== this._$AH && t7 !== E2 && this._(t7) : void 0 !== t7._$litType$ ? this.$(t7) : void 0 !== t7.nodeType ? this.T(t7) : d4(t7) ? this.k(t7) : this._(t7);
2109
+ }
2110
+ O(t7) {
2111
+ return this._$AA.parentNode.insertBefore(t7, this._$AB);
2112
+ }
2113
+ T(t7) {
2114
+ this._$AH !== t7 && (this._$AR(), this._$AH = this.O(t7));
2115
+ }
2116
+ _(t7) {
2117
+ this._$AH !== A2 && a4(this._$AH) ? this._$AA.nextSibling.data = t7 : this.T(l4.createTextNode(t7)), this._$AH = t7;
2118
+ }
2119
+ $(t7) {
2120
+ const { values: i10, _$litType$: s7 } = t7, e9 = "number" == typeof s7 ? this._$AC(t7) : (void 0 === s7.el && (s7.el = S4.createElement(V2(s7.h, s7.h[0]), this.options)), s7);
2121
+ if (this._$AH?._$AD === e9) this._$AH.p(i10);
2122
+ else {
2123
+ const t8 = new R2(e9, this), s8 = t8.u(this.options);
2124
+ t8.p(i10), this.T(s8), this._$AH = t8;
2125
+ }
2126
+ }
2127
+ _$AC(t7) {
2128
+ let i10 = C2.get(t7.strings);
2129
+ return void 0 === i10 && C2.set(t7.strings, i10 = new S4(t7)), i10;
2130
+ }
2131
+ k(t7) {
2132
+ u4(this._$AH) || (this._$AH = [], this._$AR());
2133
+ const i10 = this._$AH;
2134
+ let s7, e9 = 0;
2135
+ for (const h5 of t7) e9 === i10.length ? i10.push(s7 = new _k2(this.O(c6()), this.O(c6()), this, this.options)) : s7 = i10[e9], s7._$AI(h5), e9++;
2136
+ e9 < i10.length && (this._$AR(s7 && s7._$AB.nextSibling, e9), i10.length = e9);
2137
+ }
2138
+ _$AR(t7 = this._$AA.nextSibling, s7) {
2139
+ for (this._$AP?.(false, true, s7); t7 !== this._$AB; ) {
2140
+ const s8 = i6(t7).nextSibling;
2141
+ i6(t7).remove(), t7 = s8;
2142
+ }
2143
+ }
2144
+ setConnected(t7) {
2145
+ void 0 === this._$AM && (this._$Cv = t7, this._$AP?.(t7));
2146
+ }
2147
+ };
2148
+ var H2 = class {
2149
+ get tagName() {
2150
+ return this.element.tagName;
2151
+ }
2152
+ get _$AU() {
2153
+ return this._$AM._$AU;
2154
+ }
2155
+ constructor(t7, i10, s7, e9, h5) {
2156
+ this.type = 1, this._$AH = A2, this._$AN = void 0, this.element = t7, this.name = i10, this._$AM = e9, this.options = h5, s7.length > 2 || "" !== s7[0] || "" !== s7[1] ? (this._$AH = Array(s7.length - 1).fill(new String()), this.strings = s7) : this._$AH = A2;
2157
+ }
2158
+ _$AI(t7, i10 = this, s7, e9) {
2159
+ const h5 = this.strings;
2160
+ let o12 = false;
2161
+ if (void 0 === h5) t7 = M2(this, t7, i10, 0), o12 = !a4(t7) || t7 !== this._$AH && t7 !== E2, o12 && (this._$AH = t7);
2162
+ else {
2163
+ const e10 = t7;
2164
+ let n10, r10;
2165
+ for (t7 = h5[0], n10 = 0; n10 < h5.length - 1; n10++) r10 = M2(this, e10[s7 + n10], i10, n10), r10 === E2 && (r10 = this._$AH[n10]), o12 ||= !a4(r10) || r10 !== this._$AH[n10], r10 === A2 ? t7 = A2 : t7 !== A2 && (t7 += (r10 ?? "") + h5[n10 + 1]), this._$AH[n10] = r10;
2166
+ }
2167
+ o12 && !e9 && this.j(t7);
2168
+ }
2169
+ j(t7) {
2170
+ t7 === A2 ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t7 ?? "");
2171
+ }
2172
+ };
2173
+ var I2 = class extends H2 {
2174
+ constructor() {
2175
+ super(...arguments), this.type = 3;
2176
+ }
2177
+ j(t7) {
2178
+ this.element[this.name] = t7 === A2 ? void 0 : t7;
2179
+ }
2180
+ };
2181
+ var L2 = class extends H2 {
2182
+ constructor() {
2183
+ super(...arguments), this.type = 4;
2184
+ }
2185
+ j(t7) {
2186
+ this.element.toggleAttribute(this.name, !!t7 && t7 !== A2);
2187
+ }
2188
+ };
2189
+ var z2 = class extends H2 {
2190
+ constructor(t7, i10, s7, e9, h5) {
2191
+ super(t7, i10, s7, e9, h5), this.type = 5;
2192
+ }
2193
+ _$AI(t7, i10 = this) {
2194
+ if ((t7 = M2(this, t7, i10, 0) ?? A2) === E2) return;
2195
+ const s7 = this._$AH, e9 = t7 === A2 && s7 !== A2 || t7.capture !== s7.capture || t7.once !== s7.once || t7.passive !== s7.passive, h5 = t7 !== A2 && (s7 === A2 || e9);
2196
+ e9 && this.element.removeEventListener(this.name, this, s7), h5 && this.element.addEventListener(this.name, this, t7), this._$AH = t7;
2197
+ }
2198
+ handleEvent(t7) {
2199
+ "function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t7) : this._$AH.handleEvent(t7);
2200
+ }
2201
+ };
2202
+ var Z2 = class {
2203
+ constructor(t7, i10, s7) {
2204
+ this.element = t7, this.type = 6, this._$AN = void 0, this._$AM = i10, this.options = s7;
2205
+ }
2206
+ get _$AU() {
2207
+ return this._$AM._$AU;
2208
+ }
2209
+ _$AI(t7) {
2210
+ M2(this, t7);
2211
+ }
2212
+ };
2213
+ var B2 = t4.litHtmlPolyfillSupport;
2214
+ B2?.(S4, k2), (t4.litHtmlVersions ??= []).push("3.3.3");
2215
+ var D2 = (t7, i10, s7) => {
2216
+ const e9 = s7?.renderBefore ?? i10;
2217
+ let h5 = e9._$litPart$;
2218
+ if (void 0 === h5) {
2219
+ const t8 = s7?.renderBefore ?? null;
2220
+ e9._$litPart$ = h5 = new k2(i10.insertBefore(c6(), t8), t8, void 0, s7 ?? {});
2221
+ }
2222
+ return h5._$AI(t7), h5;
2223
+ };
2224
+
2225
+ // node_modules/lit-element/lit-element.js
2226
+ var s6 = globalThis;
2227
+ var i7 = class extends y3 {
2228
+ constructor() {
2229
+ super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
2230
+ }
2231
+ createRenderRoot() {
2232
+ const t7 = super.createRenderRoot();
2233
+ return this.renderOptions.renderBefore ??= t7.firstChild, t7;
2234
+ }
2235
+ update(t7) {
2236
+ const r10 = this.render();
2237
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t7), this._$Do = D2(r10, this.renderRoot, this.renderOptions);
2238
+ }
2239
+ connectedCallback() {
2240
+ super.connectedCallback(), this._$Do?.setConnected(true);
2241
+ }
2242
+ disconnectedCallback() {
2243
+ super.disconnectedCallback(), this._$Do?.setConnected(false);
2244
+ }
2245
+ render() {
2246
+ return E2;
2247
+ }
2248
+ };
2249
+ i7._$litElement$ = true, i7["finalized"] = true, s6.litElementHydrateSupport?.({ LitElement: i7 });
2250
+ var o9 = s6.litElementPolyfillSupport;
2251
+ o9?.({ LitElement: i7 });
2252
+ (s6.litElementVersions ??= []).push("4.2.2");
2253
+
2254
+ // node_modules/@lit/reactive-element/decorators/custom-element.js
2255
+ var t5 = (t7) => (e9, o12) => {
2256
+ void 0 !== o12 ? o12.addInitializer(() => {
2257
+ customElements.define(t7, e9);
2258
+ }) : customElements.define(t7, e9);
2259
+ };
2260
+
2261
+ // node_modules/@lit/reactive-element/decorators/property.js
2262
+ var o10 = { attribute: true, type: String, converter: u3, reflect: false, hasChanged: f3 };
2263
+ var r8 = (t7 = o10, e9, r10) => {
2264
+ const { kind: n10, metadata: i10 } = r10;
2265
+ let s7 = globalThis.litPropertyMetadata.get(i10);
2266
+ if (void 0 === s7 && globalThis.litPropertyMetadata.set(i10, s7 = /* @__PURE__ */ new Map()), "setter" === n10 && ((t7 = Object.create(t7)).wrapped = true), s7.set(r10.name, t7), "accessor" === n10) {
2267
+ const { name: o12 } = r10;
2268
+ return { set(r11) {
2269
+ const n11 = e9.get.call(this);
2270
+ e9.set.call(this, r11), this.requestUpdate(o12, n11, t7, true, r11);
2271
+ }, init(e10) {
2272
+ return void 0 !== e10 && this.C(o12, void 0, t7, e10), e10;
2273
+ } };
2274
+ }
2275
+ if ("setter" === n10) {
2276
+ const { name: o12 } = r10;
2277
+ return function(r11) {
2278
+ const n11 = this[o12];
2279
+ e9.call(this, r11), this.requestUpdate(o12, n11, t7, true, r11);
2280
+ };
2281
+ }
2282
+ throw Error("Unsupported decorator location: " + n10);
2283
+ };
2284
+ function n8(t7) {
2285
+ return (e9, o12) => "object" == typeof o12 ? r8(t7, e9, o12) : ((t8, e10, o13) => {
2286
+ const r10 = e10.hasOwnProperty(o13);
2287
+ return e10.constructor.createProperty(o13, t8), r10 ? Object.getOwnPropertyDescriptor(e10, o13) : void 0;
2288
+ })(t7, e9, o12);
2289
+ }
2290
+
2291
+ // node_modules/@lit/reactive-element/decorators/state.js
2292
+ function r9(r10) {
2293
+ return n8({ ...r10, state: true, attribute: false });
2294
+ }
2295
+
2296
+ // node_modules/lit-html/directive.js
2297
+ var t6 = { ATTRIBUTE: 1, CHILD: 2, PROPERTY: 3, BOOLEAN_ATTRIBUTE: 4, EVENT: 5, ELEMENT: 6 };
2298
+ var e8 = (t7) => (...e9) => ({ _$litDirective$: t7, values: e9 });
2299
+ var i8 = class {
2300
+ constructor(t7) {
2301
+ }
2302
+ get _$AU() {
2303
+ return this._$AM._$AU;
2304
+ }
2305
+ _$AT(t7, e9, i10) {
2306
+ this._$Ct = t7, this._$AM = e9, this._$Ci = i10;
2307
+ }
2308
+ _$AS(t7, e9) {
2309
+ return this.update(t7, e9);
2310
+ }
2311
+ update(t7, e9) {
2312
+ return this.render(...e9);
2313
+ }
2314
+ };
2315
+
2316
+ // node_modules/lit-html/directives/style-map.js
2317
+ var n9 = "important";
2318
+ var i9 = " !" + n9;
2319
+ var o11 = e8(class extends i8 {
2320
+ constructor(t7) {
2321
+ if (super(t7), t7.type !== t6.ATTRIBUTE || "style" !== t7.name || t7.strings?.length > 2) throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.");
2322
+ }
2323
+ render(t7) {
2324
+ return Object.keys(t7).reduce((e9, r10) => {
2325
+ const s7 = t7[r10];
2326
+ return null == s7 ? e9 : e9 + `${r10 = r10.includes("-") ? r10 : r10.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g, "-$&").toLowerCase()}:${s7};`;
2327
+ }, "");
2328
+ }
2329
+ update(e9, [r10]) {
2330
+ const { style: s7 } = e9.element;
2331
+ if (void 0 === this.ft) return this.ft = new Set(Object.keys(r10)), this.render(r10);
2332
+ for (const t7 of this.ft) null == r10[t7] && (this.ft.delete(t7), t7.includes("-") ? s7.removeProperty(t7) : s7[t7] = null);
2333
+ for (const t7 in r10) {
2334
+ const e10 = r10[t7];
2335
+ if (null != e10) {
2336
+ this.ft.add(t7);
2337
+ const r11 = "string" == typeof e10 && e10.endsWith(i9);
2338
+ t7.includes("-") || r11 ? s7.setProperty(t7, r11 ? e10.slice(0, -11) : e10, r11 ? n9 : "") : s7[t7] = e10;
2339
+ }
2340
+ }
2341
+ return E2;
2342
+ }
2343
+ });
2344
+
2345
+ // localization/generated/locale-codes.js
2346
+ var sourceLocale2 = `en`;
2347
+ var targetLocales = [
2348
+ `de`,
2349
+ `es`,
2350
+ `fr`,
2351
+ `it`,
2352
+ `nl`
2353
+ ];
2354
+
2355
+ // localization/generated/index.js
2356
+ init_lit_localize();
2357
+
2358
+ // import("./**/*.ts") in localization/generated/index.js
2359
+ var globImport_ts = __glob({
2360
+ "./de.ts": () => Promise.resolve().then(() => (init_de(), de_exports)),
2361
+ "./es.ts": () => Promise.resolve().then(() => (init_es(), es_exports)),
2362
+ "./fr.ts": () => Promise.resolve().then(() => (init_fr(), fr_exports)),
2363
+ "./index.d.ts": () => Promise.resolve().then(() => (init_index_d(), index_d_exports)),
2364
+ "./it.ts": () => Promise.resolve().then(() => (init_it(), it_exports)),
2365
+ "./nl.ts": () => Promise.resolve().then(() => (init_nl(), nl_exports))
2366
+ });
2367
+
2368
+ // localization/generated/index.js
2369
+ var generated_default = configureLocalization({ sourceLocale: sourceLocale2, targetLocales, loadLocale: (locale) => globImport_ts(`./${locale}.ts`) });
2370
+
2371
+ // package.json
2372
+ var name = "@webwriter/quiz";
2373
+
2374
+ // src/api/index.ts
2375
+ function getRegistry() {
2376
+ window.__wwQuizRegistry__ ??= { version: 1, quizTypes: [], listeners: [] };
2377
+ return window.__wwQuizRegistry__;
2378
+ }
2379
+ function getQuizTypes() {
2380
+ return [...getRegistry().quizTypes];
2381
+ }
2382
+ function registerQuizType(type) {
2383
+ const registry = getRegistry();
2384
+ let i10 = 0;
2385
+ if (type.packageId !== "@webwriter/quiz") {
2386
+ while (i10 < registry.quizTypes.length) {
2387
+ if (registry.quizTypes[i10].packageId.localeCompare(type.packageId) >= 0) break;
2388
+ i10++;
2389
+ }
2390
+ }
2391
+ const newPosition = type.widgetPosition ?? Infinity;
2392
+ while (i10 < registry.quizTypes.length && registry.quizTypes[i10].packageId === type.packageId) {
2393
+ const currentPosition = registry.quizTypes[i10].widgetPosition ?? Infinity;
2394
+ if (currentPosition > newPosition) break;
2395
+ if (currentPosition === newPosition && registry.quizTypes[i10].id.localeCompare(type.id) >= 0) break;
2396
+ i10++;
2397
+ }
2398
+ registry.quizTypes.splice(i10, 0, type);
2399
+ const quizTypes = getQuizTypes();
2400
+ registry.listeners.forEach((cb) => cb(quizTypes));
2401
+ }
2402
+
2403
+ // src/lib/webwriter-quirks.ts
2404
+ var isWebWriter = () => document.documentElement.id.startsWith("ww-");
2405
+
2406
+ // src/lib/utils.ts
2407
+ var commonStyles = i`
2408
+ :host(:not([contenteditable="true"]):not([contenteditable=""])) .author-only {
2409
+ display: none;
2410
+ }
2411
+
2412
+ :host(:is([contenteditable="true"], [contenteditable=""])) .user-only {
2413
+ display: none;
2414
+ }
2415
+ `;
2416
+ function randomizeArray(items) {
2417
+ const randomized = [...items];
2418
+ for (let i10 = randomized.length - 1; i10 > 0; i10--) {
2419
+ const j = Math.floor(Math.random() * (i10 + 1));
2420
+ [randomized[i10], randomized[j]] = [randomized[j], randomized[i10]];
2421
+ }
2422
+ return randomized;
2423
+ }
2424
+
2425
+ // src/widgets/gap/webwriter-gap.ts
2426
+ registerQuizType({
2427
+ packageId: name,
2428
+ widgetPosition: 30,
2429
+ id: "webwriter-gap",
2430
+ getName: () => msg("Gap"),
2431
+ icon: input_cursor_default,
2432
+ createInstance: () => document.createElement("webwriter-gap")
2433
+ });
2434
+ var _popupPosition_dec, _items_dec, _graded_dec, _ignoreCase_dec, _mode_dec, _a2, _WebwriterGap_decorators, _init2, _mode, _ignoreCase, _graded, _items, _popupPosition;
2435
+ _WebwriterGap_decorators = [t5("webwriter-gap")];
2436
+ var WebwriterGap = class extends (_a2 = LitElementWw, _mode_dec = [n8({ type: String, attribute: true, reflect: true })], _ignoreCase_dec = [n8({ type: Boolean, attribute: "ignore-case", reflect: true })], _graded_dec = [r9()], _items_dec = [r9()], _popupPosition_dec = [r9()], _a2) {
2437
+ constructor() {
2438
+ super(...arguments);
2439
+ /** @internal */
2440
+ __publicField(this, "localize", generated_default);
2441
+ __privateAdd(this, _mode, __runInitializers(_init2, 8, this, "input")), __runInitializers(_init2, 11, this);
2442
+ __privateAdd(this, _ignoreCase, __runInitializers(_init2, 12, this, false)), __runInitializers(_init2, 15, this);
2443
+ __privateAdd(this, _graded, __runInitializers(_init2, 16, this, false)), __runInitializers(_init2, 19, this);
2444
+ __privateAdd(this, _items, __runInitializers(_init2, 20, this, [])), __runInitializers(_init2, 23, this);
2445
+ __publicField(this, "choices", []);
2446
+ __publicField(this, "placements", /* @__PURE__ */ new Map());
2447
+ __publicField(this, "selected", null);
2448
+ __publicField(this, "observer", new MutationObserver(() => this.syncItems()));
2449
+ __publicField(this, "drag", null);
2450
+ __publicField(this, "suppressClick", false);
2451
+ __publicField(this, "syncItems", () => {
2452
+ const items = Array.from(this.querySelectorAll("webwriter-gap-item")).filter((item) => item.closest("webwriter-gap") === this);
2453
+ if (items.length === this.items.length && items.every((item, i10) => item === this.items[i10])) return;
2454
+ this.cancelDrag();
2455
+ for (const [target, choice] of this.placements) {
2456
+ if (!items.includes(target) || !items.includes(choice)) this.placements.delete(target);
2457
+ }
2458
+ if (this.selected && !items.includes(this.selected)) this.selected = null;
2459
+ this.items = items;
2460
+ this.choices = randomizeArray(items);
2461
+ });
2462
+ __publicField(this, "moveDrag", (event) => {
2463
+ const drag = this.drag;
2464
+ if (!drag || event.pointerId !== drag.pointerId) return;
2465
+ if (Math.hypot(event.clientX - drag.x, event.clientY - drag.y) > 4) drag.moved = true;
2466
+ if (!drag.moved) return;
2467
+ event.preventDefault();
2468
+ drag.ghost.style.display = "flex";
2469
+ drag.ghost.style.transform = `translate3d(${event.clientX - drag.offsetX}px, ${event.clientY - drag.offsetY}px, 0)`;
2470
+ const target = this.targetAt(event.clientX, event.clientY);
2471
+ for (const item of this.items) item.dropActive = item === target;
2472
+ });
2473
+ __publicField(this, "endDrag", (event) => {
2474
+ const drag = this.drag;
2475
+ if (!drag || event.pointerId !== drag.pointerId) return;
2476
+ if (drag.moved) {
2477
+ this.suppressClick = true;
2478
+ setTimeout(() => {
2479
+ this.suppressClick = false;
2480
+ }, 0);
2481
+ const target = this.targetAt(event.clientX, event.clientY);
2482
+ if (target) this.place(drag.choice, target);
2483
+ else if (this.overTray(event.clientX, event.clientY)) this.place(drag.choice, null);
2484
+ }
2485
+ this.cancelDrag();
2486
+ });
2487
+ __publicField(this, "cancelOnEscape", (event) => {
2488
+ if (event.key === "Escape") this.cancelDrag();
2489
+ });
2490
+ __publicField(this, "cancelDrag", () => {
2491
+ this.drag?.ghost.remove();
2492
+ this.drag = null;
2493
+ for (const item of this.items) item.dropActive = false;
2494
+ window.removeEventListener("pointermove", this.moveDrag);
2495
+ window.removeEventListener("pointerup", this.endDrag);
2496
+ window.removeEventListener("pointercancel", this.cancelDrag);
2497
+ window.removeEventListener("blur", this.cancelDrag);
2498
+ window.removeEventListener("keydown", this.cancelOnEscape);
2499
+ });
2500
+ __publicField(this, "preventProseMirrorLineBreaks", (event) => {
2501
+ const selection = document.getSelection();
2502
+ if (!selection || !selection.isCollapsed) return;
2503
+ const parent = selection.focusNode?.parentElement;
2504
+ if (!parent || parent.tagName !== "WEBWRITER-GAP-ITEM" || parent.closest("webwriter-gap") !== this) return;
2505
+ if (event.key === "ArrowLeft" && selection.focusOffset === 0 || event.key === "ArrowRight" && selection.focusOffset === selection.focusNode.textContent?.length) {
2506
+ event.stopPropagation();
2507
+ }
2508
+ });
2509
+ __privateAdd(this, _popupPosition, __runInitializers(_init2, 24, this, null)), __runInitializers(_init2, 27, this);
2510
+ __publicField(this, "insertGapOnKeyDown", (event) => {
2511
+ if ((event.ctrlKey || event.metaKey) && event.key.toUpperCase() === "G") {
2512
+ event.preventDefault();
2513
+ this.insertGapAtSelection();
2514
+ }
2515
+ });
2516
+ }
2517
+ /** @internal */
2518
+ get dynamicActions() {
2519
+ const options = {
2520
+ insertGapAtSelection: { label: { _: msg("Insert gap at selection") } }
2521
+ };
2522
+ return options;
2523
+ }
2524
+ /** @internal */
2525
+ get dynamicOptions() {
2526
+ const options = {
2527
+ mode: {
2528
+ type: "select",
2529
+ label: { _: msg("Mode") },
2530
+ options: [
2531
+ { value: "input", label: { _: msg("Freeform input") } },
2532
+ { value: "drag-and-drop", label: { _: msg("Drag and drop") } }
2533
+ ]
2534
+ }
2535
+ };
2536
+ if (this.mode === "input") {
2537
+ options["ignore-case"] = { type: "boolean", label: { _: msg("Ignore case") } };
2538
+ }
2539
+ return options;
2540
+ }
2541
+ /** Pushes the state owned by this element onto the items, as part of every update. */
2542
+ willUpdate() {
2543
+ for (const item of this.items) {
2544
+ const choice = this.placements.get(item);
2545
+ item.mode = this.mode;
2546
+ item.graded = this.graded;
2547
+ item.answer = choice?.textContent ?? "";
2548
+ item.answerSelected = choice !== void 0 && choice === this.selected;
2549
+ }
2550
+ }
2551
+ /** Moves `choice` into the gap `target`, or back into the tray of choices for `null`. */
2552
+ place(choice, target) {
2553
+ if (this.graded) return;
2554
+ const source = Array.from(this.placements).find(([, value]) => value === choice)?.[0] ?? null;
2555
+ this.selected = null;
2556
+ this.requestUpdate();
2557
+ if (source === target) return;
2558
+ const displaced = target ? this.placements.get(target) : void 0;
2559
+ if (source) this.placements.delete(source);
2560
+ if (source && displaced) this.placements.set(source, displaced);
2561
+ if (target) this.placements.set(target, choice);
2562
+ this.dispatchEvent(new Event("change", { bubbles: true }));
2563
+ }
2564
+ /** @internal */
2565
+ activateGap(item) {
2566
+ if (this.graded || this.suppressClick || this.isContentEditable || this.mode !== "drag-and-drop") return;
2567
+ if (this.selected) this.place(this.selected, item);
2568
+ else {
2569
+ this.selected = this.placements.get(item) ?? null;
2570
+ this.requestUpdate();
2571
+ }
2572
+ }
2573
+ /** @internal */
2574
+ startGapDrag(event, item) {
2575
+ const choice = this.placements.get(item);
2576
+ if (choice) this.startDrag(event, choice);
2577
+ }
2578
+ startDrag(event, choice) {
2579
+ if (this.graded || event.button !== 0 || !event.isPrimary || this.isContentEditable || this.mode !== "drag-and-drop" || this.drag) return;
2580
+ const rect = event.currentTarget.getBoundingClientRect();
2581
+ const ghost = this.ownerDocument.createElement("div");
2582
+ ghost.className = "choice ghost";
2583
+ ghost.textContent = choice.textContent;
2584
+ ghost.style.width = `${rect.width}px`;
2585
+ ghost.style.height = `${rect.height}px`;
2586
+ this.renderRoot.querySelector("#drag-layer")?.append(ghost);
2587
+ this.drag = {
2588
+ choice,
2589
+ pointerId: event.pointerId,
2590
+ x: event.clientX,
2591
+ y: event.clientY,
2592
+ offsetX: event.clientX - rect.left,
2593
+ offsetY: event.clientY - rect.top,
2594
+ ghost,
2595
+ moved: false
2596
+ };
2597
+ window.addEventListener("pointermove", this.moveDrag, { passive: false });
2598
+ window.addEventListener("pointerup", this.endDrag);
2599
+ window.addEventListener("pointercancel", this.cancelDrag);
2600
+ window.addEventListener("blur", this.cancelDrag);
2601
+ window.addEventListener("keydown", this.cancelOnEscape);
2602
+ }
2603
+ /** The gap under the given point, if it belongs to this element. The ghost does not take
2604
+ pointer events, so it never hides the gap underneath it. */
2605
+ targetAt(x3, y5) {
2606
+ const item = this.ownerDocument.elementFromPoint(x3, y5)?.closest("webwriter-gap-item");
2607
+ return item && this.items.includes(item) ? item : void 0;
2608
+ }
2609
+ overTray(x3, y5) {
2610
+ return !!this.renderRoot.elementFromPoint(x3, y5)?.closest(".choices");
2611
+ }
2612
+ getGapSelectionAndRange() {
2613
+ const selection = document.getSelection();
2614
+ if (!selection) return [];
2615
+ if (selection.rangeCount === 0 || selection.isCollapsed) return [];
2616
+ const range = selection.getRangeAt(0);
2617
+ const commonNode = range.commonAncestorContainer.nodeType === Node.TEXT_NODE ? range.commonAncestorContainer.parentElement : range.commonAncestorContainer;
2618
+ if (!commonNode) return [];
2619
+ if (commonNode.closest("webwriter-gap") !== this) return [];
2620
+ if (commonNode.closest("webwriter-gap-item")) return [];
2621
+ return [selection, range];
2622
+ }
2623
+ insertGapAtSelection() {
2624
+ const [selection, range] = this.getGapSelectionAndRange();
2625
+ if (!selection || !range) return;
2626
+ const gapItem = document.createElement("webwriter-gap-item");
2627
+ let text = range.toString();
2628
+ if (text.startsWith(" ")) text = "\xA0" + text.slice(1);
2629
+ gapItem.textContent = text;
2630
+ range.deleteContents();
2631
+ range.insertNode(gapItem);
2632
+ selection.removeAllRanges();
2633
+ const afterGapRange = document.createRange();
2634
+ afterGapRange.setStartAfter(gapItem);
2635
+ afterGapRange.collapse(true);
2636
+ selection.addRange(afterGapRange);
2637
+ this.popupPosition = null;
2638
+ }
2639
+ connectedCallback() {
2640
+ super.connectedCallback();
2641
+ this.observer.observe(this, { childList: true, subtree: true });
2642
+ this.syncItems();
2643
+ if (this.isContentEditable) {
2644
+ if (isWebWriter()) document.addEventListener("keydown", this.preventProseMirrorLineBreaks, true);
2645
+ document.addEventListener("keydown", this.insertGapOnKeyDown);
2646
+ }
2647
+ }
2648
+ disconnectedCallback() {
2649
+ super.disconnectedCallback();
2650
+ this.observer.disconnect();
2651
+ this.cancelDrag();
2652
+ if (this.isContentEditable) {
2653
+ if (isWebWriter()) document.removeEventListener("keydown", this.preventProseMirrorLineBreaks, true);
2654
+ document.removeEventListener("keydown", this.insertGapOnKeyDown);
2655
+ }
2656
+ }
2657
+ checkValidity() {
2658
+ this.syncItems();
2659
+ return this.items.every((item) => this.mode === "input" ? item.inputAnswer.trim() !== "" : this.placements.has(item));
2660
+ }
2661
+ reset() {
2662
+ this.cancelDrag();
2663
+ this.choices = randomizeArray(this.items);
2664
+ this.placements.clear();
2665
+ this.selected = null;
2666
+ this.graded = false;
2667
+ for (const item of this.items) {
2668
+ item.inputAnswer = "";
2669
+ item.graded = false;
2670
+ item.feedback = null;
2671
+ }
2672
+ this.requestUpdate();
2673
+ }
2674
+ checkAnswer(detailedFeedback) {
2675
+ this.syncItems();
2676
+ this.cancelDrag();
2677
+ this.selected = null;
2678
+ this.graded = true;
2679
+ let correctCount = 0;
2680
+ for (const item of this.items) {
2681
+ const choice = this.placements.get(item);
2682
+ const answer = (this.mode === "input" ? item.inputAnswer : choice?.textContent ?? "").trim();
2683
+ const solution = (item.textContent ?? "").trim();
2684
+ const normalize = (value) => this.mode === "input" && this.ignoreCase ? value.toLowerCase() : value;
2685
+ const correct = solution !== "" && normalize(answer) === normalize(solution);
2686
+ if (correct) correctCount++;
2687
+ item.graded = true;
2688
+ item.feedback = detailedFeedback ? { correct, answer, solution } : null;
2689
+ }
2690
+ return this.items.length ? correctCount / this.items.length : 1;
2691
+ }
2692
+ render() {
2693
+ const placed = new Set(this.placements.values());
2694
+ return b4`<div>
2695
+ <!-- Holds the drag ghost, which is placed imperatively and must survive re-renders. -->
2696
+ <div id="drag-layer"></div>
2697
+ <slot style=${o11({ "--ww-placeholder": `"${msg("Text")}"` })} @slotchange=${this.syncItems}></slot>
2698
+ ${this.mode === "drag-and-drop" && !this.isContentEditable ? b4`
2699
+ <div class="choices" role="group" aria-label=${msg("Available answers")}>
2700
+ ${this.choices.filter((item) => !placed.has(item)).map((item) => b4`
2701
+ <button class="choice" type="button" ?disabled=${this.graded} aria-pressed=${this.selected === item}
2702
+ @pointerdown=${(event) => this.startDrag(event, item)}
2703
+ @click=${() => {
2704
+ if (this.suppressClick) return;
2705
+ this.selected = this.selected === item ? null : item;
2706
+ this.requestUpdate();
2707
+ }}>${item.textContent}</button>
2708
+ `)}
2709
+ ${this.selected && placed.has(this.selected) ? b4`
2710
+ <button type="button" @click=${() => this.place(this.selected, null)}>${msg("Return to answers")}</button>
2711
+ ` : A2}
2712
+ </div>
2713
+ ` : A2}
2714
+ </div>`;
2715
+ }
2716
+ };
2717
+ _init2 = __decoratorStart(_a2);
2718
+ _mode = new WeakMap();
2719
+ _ignoreCase = new WeakMap();
2720
+ _graded = new WeakMap();
2721
+ _items = new WeakMap();
2722
+ _popupPosition = new WeakMap();
2723
+ __decorateElement(_init2, 4, "mode", _mode_dec, WebwriterGap, _mode);
2724
+ __decorateElement(_init2, 4, "ignoreCase", _ignoreCase_dec, WebwriterGap, _ignoreCase);
2725
+ __decorateElement(_init2, 4, "graded", _graded_dec, WebwriterGap, _graded);
2726
+ __decorateElement(_init2, 4, "items", _items_dec, WebwriterGap, _items);
2727
+ __decorateElement(_init2, 4, "popupPosition", _popupPosition_dec, WebwriterGap, _popupPosition);
2728
+ WebwriterGap = __decorateElement(_init2, 0, "WebwriterGap", _WebwriterGap_decorators, WebwriterGap);
2729
+ /** @internal */
2730
+ __publicField(WebwriterGap, "scopedElements", {});
2731
+ __publicField(WebwriterGap, "styles", i`
2732
+ :host {
2733
+ display: block !important;
2734
+ }
2735
+
2736
+ slot {
2737
+ display: block;
2738
+ cursor: text;
2739
+ width: 100%;
2740
+ }
2741
+
2742
+ .choices {
2743
+ display: flex;
2744
+ flex-wrap: wrap;
2745
+ gap: 0.5em;
2746
+ margin-top: 1em;
2747
+ min-height: 2em;
2748
+ align-items: flex-start;
2749
+ }
2750
+
2751
+ .choice {
2752
+ font: inherit;
2753
+ color: inherit;
2754
+ padding: 0 var(--sl-spacing-x-small);
2755
+ height: 2em;
2756
+ box-sizing: border-box;
2757
+ display: inline-flex;
2758
+ align-items: center;
2759
+ justify-content: center;
2760
+ white-space: nowrap;
2761
+ line-height: normal;
2762
+ border: 1px solid var(--sl-color-neutral-300);
2763
+ border-radius: var(--sl-border-radius-medium);
2764
+ background: var(--sl-color-neutral-0);
2765
+ position: relative;
2766
+ cursor: grab;
2767
+ touch-action: none;
2768
+ user-select: none;
2769
+ }
2770
+
2771
+ /* The chip that follows the pointer during a drag. Styled as a choice, so that the
2772
+ only thing left to set imperatively is its position and size. */
2773
+ .choice.ghost {
2774
+ position: fixed;
2775
+ left: 0;
2776
+ top: 0;
2777
+ margin: 0;
2778
+ z-index: 2147483647;
2779
+ pointer-events: none;
2780
+ display: none;
2781
+ cursor: grabbing;
2782
+ }
2783
+
2784
+ ::slotted(*) {
2785
+ line-height: 2.3;
2786
+ }
2787
+ `);
2788
+ __runInitializers(_init2, 1, WebwriterGap);
2789
+ export {
2790
+ WebwriterGap
2791
+ };
2792
+ /*! Bundled license information:
2793
+
2794
+ @lit/localize/internal/locale-status-event.js:
2795
+ @lit/localize/internal/str-tag.js:
2796
+ @lit/localize/internal/types.js:
2797
+ @lit/localize/internal/default-msg.js:
2798
+ @lit/localize/internal/localized-controller.js:
2799
+ @lit/localize/internal/localized-decorator.js:
2800
+ @lit/localize/internal/runtime-msg.js:
2801
+ @lit/localize/init/runtime.js:
2802
+ @lit/localize/init/transform.js:
2803
+ @lit/reactive-element/decorators/query-assigned-elements.js:
2804
+ (**
2805
+ * @license
2806
+ * Copyright 2021 Google LLC
2807
+ * SPDX-License-Identifier: BSD-3-Clause
2808
+ *)
2809
+
2810
+ @lit/localize/internal/deferred.js:
2811
+ @lit/localize/internal/id-generation.js:
2812
+ @lit/localize/lit-localize.js:
2813
+ (**
2814
+ * @license
2815
+ * Copyright 2020 Google LLC
2816
+ * SPDX-License-Identifier: BSD-3-Clause
2817
+ *)
2818
+
2819
+ @lit/localize/internal/fnv1a64.js:
2820
+ (**
2821
+ * @license
2822
+ * Copyright 2014 Travis Webb
2823
+ * SPDX-License-Identifier: MIT
2824
+ *)
2825
+
2826
+ @webwriter/lit/index.js:
2827
+ (*! Bundled license information:
2828
+
2829
+ @lit/reactive-element/css-tag.js:
2830
+ (**
2831
+ * @license
2832
+ * Copyright 2019 Google LLC
2833
+ * SPDX-License-Identifier: BSD-3-Clause
2834
+ *)
2835
+
2836
+ @lit/reactive-element/reactive-element.js:
2837
+ lit-html/lit-html.js:
2838
+ lit-element/lit-element.js:
2839
+ @lit/reactive-element/decorators/custom-element.js:
2840
+ @lit/reactive-element/decorators/property.js:
2841
+ @lit/reactive-element/decorators/state.js:
2842
+ @lit/reactive-element/decorators/event-options.js:
2843
+ @lit/reactive-element/decorators/base.js:
2844
+ @lit/reactive-element/decorators/query.js:
2845
+ @lit/reactive-element/decorators/query-all.js:
2846
+ @lit/reactive-element/decorators/query-async.js:
2847
+ @lit/reactive-element/decorators/query-assigned-nodes.js:
2848
+ (**
2849
+ * @license
2850
+ * Copyright 2017 Google LLC
2851
+ * SPDX-License-Identifier: BSD-3-Clause
2852
+ *)
2853
+
2854
+ lit-html/is-server.js:
2855
+ (**
2856
+ * @license
2857
+ * Copyright 2022 Google LLC
2858
+ * SPDX-License-Identifier: BSD-3-Clause
2859
+ *)
2860
+
2861
+ @lit/reactive-element/decorators/query-assigned-elements.js:
2862
+ (**
2863
+ * @license
2864
+ * Copyright 2021 Google LLC
2865
+ * SPDX-License-Identifier: BSD-3-Clause
2866
+ *)
2867
+ *)
2868
+
2869
+ @lit/reactive-element/css-tag.js:
2870
+ (**
2871
+ * @license
2872
+ * Copyright 2019 Google LLC
2873
+ * SPDX-License-Identifier: BSD-3-Clause
2874
+ *)
2875
+
2876
+ @lit/reactive-element/reactive-element.js:
2877
+ lit-html/lit-html.js:
2878
+ lit-element/lit-element.js:
2879
+ @lit/reactive-element/decorators/custom-element.js:
2880
+ @lit/reactive-element/decorators/property.js:
2881
+ @lit/reactive-element/decorators/state.js:
2882
+ @lit/reactive-element/decorators/event-options.js:
2883
+ @lit/reactive-element/decorators/base.js:
2884
+ @lit/reactive-element/decorators/query.js:
2885
+ @lit/reactive-element/decorators/query-all.js:
2886
+ @lit/reactive-element/decorators/query-async.js:
2887
+ @lit/reactive-element/decorators/query-assigned-nodes.js:
2888
+ lit-html/directive.js:
2889
+ (**
2890
+ * @license
2891
+ * Copyright 2017 Google LLC
2892
+ * SPDX-License-Identifier: BSD-3-Clause
2893
+ *)
2894
+
2895
+ lit-html/is-server.js:
2896
+ (**
2897
+ * @license
2898
+ * Copyright 2022 Google LLC
2899
+ * SPDX-License-Identifier: BSD-3-Clause
2900
+ *)
2901
+
2902
+ lit-html/directives/style-map.js:
2903
+ (**
2904
+ * @license
2905
+ * Copyright 2018 Google LLC
2906
+ * SPDX-License-Identifier: BSD-3-Clause
2907
+ *)
2908
+ */