@citolab/qti-components 8.0.1 → 8.1.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 (72) hide show
  1. package/cdn/index.global.js +1 -1
  2. package/cdn/index.js +648 -816
  3. package/dist/base.d.ts +61 -4
  4. package/dist/base.js +7 -1
  5. package/dist/{chunk-V5G7X53Y.js → chunk-3IACYIU2.js} +2 -2
  6. package/dist/chunk-4DB4SC5K.js +100 -0
  7. package/dist/chunk-4DB4SC5K.js.map +1 -0
  8. package/dist/{chunk-F4BNJWYN.js → chunk-4XR2JHCP.js} +646 -677
  9. package/dist/chunk-4XR2JHCP.js.map +1 -0
  10. package/dist/{chunk-7V4HJFHW.js → chunk-6ITD55QE.js} +2 -2
  11. package/dist/{chunk-3AJOQCDU.js → chunk-6V3A7NQP.js} +2 -2
  12. package/dist/{chunk-WVVMNF74.js → chunk-6XJUP55A.js} +248 -234
  13. package/dist/chunk-6XJUP55A.js.map +1 -0
  14. package/dist/{chunk-XU7HNT4F.js → chunk-CF3DXJWM.js} +145 -119
  15. package/dist/{chunk-XU7HNT4F.js.map → chunk-CF3DXJWM.js.map} +1 -1
  16. package/dist/chunk-EKXZI26R.js +917 -0
  17. package/dist/chunk-EKXZI26R.js.map +1 -0
  18. package/dist/{chunk-IJD53WY6.js → chunk-HDEG6BAZ.js} +15 -15
  19. package/dist/{chunk-IJD53WY6.js.map → chunk-HDEG6BAZ.js.map} +1 -1
  20. package/dist/{chunk-LVBIQDPM.js → chunk-IXPDMYKH.js} +147 -101
  21. package/dist/chunk-IXPDMYKH.js.map +1 -0
  22. package/dist/chunk-IYC7LZV6.js +7 -0
  23. package/dist/chunk-IYC7LZV6.js.map +1 -0
  24. package/dist/{chunk-NA2N2WSG.js → chunk-MK2I3MQB.js} +244 -193
  25. package/dist/chunk-MK2I3MQB.js.map +1 -0
  26. package/dist/{chunk-CAO4JRLY.js → chunk-NZLW6EX7.js} +2 -2
  27. package/dist/{chunk-RXGDQDOV.js → chunk-Q52IJELT.js} +479 -393
  28. package/dist/chunk-Q52IJELT.js.map +1 -0
  29. package/dist/{chunk-QECOPVPO.js → chunk-TXIB3SKC.js} +60 -59
  30. package/dist/chunk-TXIB3SKC.js.map +1 -0
  31. package/dist/{computed.types.d-rKLSPvVG.d.ts → computed.types.d-DpKIYO6e.d.ts} +2 -0
  32. package/dist/corrections.d.ts +12 -29
  33. package/dist/corrections.js +9 -10
  34. package/dist/elements.d.ts +86 -87
  35. package/dist/elements.js +5 -6
  36. package/dist/index.d.ts +8 -39
  37. package/dist/index.js +29 -16
  38. package/dist/{interaction.d-D4MstYRz.d.ts → interaction.d-CJiMv8H7.d.ts} +13 -2
  39. package/dist/interactions.d.ts +11 -1299
  40. package/dist/interactions.js +4 -5
  41. package/dist/item.css +370 -532
  42. package/dist/item.d.ts +3 -3
  43. package/dist/item.js +6 -6
  44. package/dist/loader.js +2 -2
  45. package/dist/processing.d.ts +61 -11
  46. package/dist/processing.js +10 -2
  47. package/dist/qti-components-jsx.d.ts +293 -69
  48. package/dist/qti-test.d-_YAlhDbt.d.ts +702 -0
  49. package/dist/qti-text-entry-interaction.d-BGdfV9qG.d.ts +1567 -0
  50. package/dist/test.d.ts +11 -678
  51. package/dist/test.js +7 -8
  52. package/dist/transformers.d.ts +1 -1
  53. package/dist/transformers.js +1 -1
  54. package/package.json +11 -10
  55. package/dist/chunk-64XSIBGO.js +0 -241
  56. package/dist/chunk-64XSIBGO.js.map +0 -1
  57. package/dist/chunk-7HC5SMCU.js +0 -102
  58. package/dist/chunk-7HC5SMCU.js.map +0 -1
  59. package/dist/chunk-F4BNJWYN.js.map +0 -1
  60. package/dist/chunk-H3J7LFRO.js +0 -2243
  61. package/dist/chunk-H3J7LFRO.js.map +0 -1
  62. package/dist/chunk-LVBIQDPM.js.map +0 -1
  63. package/dist/chunk-NA2N2WSG.js.map +0 -1
  64. package/dist/chunk-QECOPVPO.js.map +0 -1
  65. package/dist/chunk-RXGDQDOV.js.map +0 -1
  66. package/dist/chunk-WVVMNF74.js.map +0 -1
  67. package/dist/chunk-X3E5HXG2.js +0 -20
  68. package/dist/chunk-X3E5HXG2.js.map +0 -1
  69. /package/dist/{chunk-V5G7X53Y.js.map → chunk-3IACYIU2.js.map} +0 -0
  70. /package/dist/{chunk-7V4HJFHW.js.map → chunk-6ITD55QE.js.map} +0 -0
  71. /package/dist/{chunk-3AJOQCDU.js.map → chunk-6V3A7NQP.js.map} +0 -0
  72. /package/dist/{chunk-CAO4JRLY.js.map → chunk-NZLW6EX7.js.map} +0 -0
@@ -2,10 +2,10 @@ import {
2
2
  QtiTest,
3
3
  TestCheckItem,
4
4
  TestNavigation
5
- } from "./chunk-RXGDQDOV.js";
5
+ } from "./chunk-Q52IJELT.js";
6
6
  import {
7
7
  QtiAssessmentItem
8
- } from "./chunk-WVVMNF74.js";
8
+ } from "./chunk-6XJUP55A.js";
9
9
  import {
10
10
  QtiAssociateInteraction,
11
11
  QtiChoiceInteraction,
@@ -27,38 +27,29 @@ import {
27
27
  QtiSimpleAssociableChoice,
28
28
  QtiSimpleChoice,
29
29
  QtiSliderInteraction,
30
- QtiTextEntryInteraction,
31
- c as c2,
32
- o
33
- } from "./chunk-F4BNJWYN.js";
30
+ QtiTextEntryInteraction
31
+ } from "./chunk-4XR2JHCP.js";
34
32
  import {
35
33
  QtiItem
36
- } from "./chunk-QECOPVPO.js";
34
+ } from "./chunk-TXIB3SKC.js";
37
35
  import {
38
36
  watch
39
- } from "./chunk-64XSIBGO.js";
37
+ } from "./chunk-4DB4SC5K.js";
40
38
  import {
41
- A,
42
39
  ScoringHelper,
43
- T,
44
- b,
45
- c,
46
40
  computedContext,
47
41
  computedItemContext,
48
42
  configContext,
49
- i,
50
- i2,
51
- n2 as n,
52
- r,
53
43
  responseAttributeConverter
54
- } from "./chunk-H3J7LFRO.js";
44
+ } from "./chunk-EKXZI26R.js";
55
45
 
56
46
  // ../qti-corrections/dist/mixins/correct-response.mixin.js
47
+ import { property, state } from "lit/decorators.js";
57
48
  var __decorate = function(decorators, target, key, desc) {
58
- var c3 = arguments.length, r2 = c3 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
59
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
60
- else for (var i3 = decorators.length - 1; i3 >= 0; i3--) if (d = decorators[i3]) r2 = (c3 < 3 ? d(r2) : c3 > 3 ? d(target, key, r2) : d(target, key)) || r2;
61
- return c3 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
49
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
51
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
52
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
62
53
  };
63
54
  var Correctness;
64
55
  (function(Correctness2) {
@@ -141,11 +132,11 @@ var CorrectResponseMixin = (superClass) => {
141
132
  }
142
133
  const correctArr = Array.isArray(correctResponse) ? correctResponse : [correctResponse];
143
134
  const responseArr = Array.isArray(currentResponse) ? currentResponse : [currentResponse];
144
- const filteredResponseArr = responseArr.filter((r2) => r2 !== "");
135
+ const filteredResponseArr = responseArr.filter((r) => r !== "");
145
136
  if (filteredResponseArr.length === 0)
146
137
  return null;
147
- const correctCount = filteredResponseArr.filter((r2) => correctArr.includes(r2)).length;
148
- const incorrectCount = filteredResponseArr.filter((r2) => !correctArr.includes(r2)).length;
138
+ const correctCount = filteredResponseArr.filter((r) => correctArr.includes(r)).length;
139
+ const incorrectCount = filteredResponseArr.filter((r) => !correctArr.includes(r)).length;
149
140
  if (correctCount === correctArr.length && incorrectCount === 0 && filteredResponseArr.length === correctArr.length) {
150
141
  return Correctness.Correct;
151
142
  }
@@ -244,41 +235,42 @@ var CorrectResponseMixin = (superClass) => {
244
235
  }
245
236
  }
246
237
  __decorate([
247
- n({
238
+ property({
248
239
  attribute: "correct-response",
249
240
  reflect: true,
250
241
  converter: responseAttributeConverter({ emptyAs: null })
251
242
  })
252
243
  ], CorrectResponseMixinClass.prototype, "correctResponseAttr", null);
253
244
  __decorate([
254
- n({ type: Boolean, attribute: "show-correct-response", reflect: true })
245
+ property({ type: Boolean, attribute: "show-correct-response", reflect: true })
255
246
  ], CorrectResponseMixinClass.prototype, "showCorrectResponse", void 0);
256
247
  __decorate([
257
248
  watch("showCorrectResponse", { waitUntilFirstUpdate: true })
258
249
  ], CorrectResponseMixinClass.prototype, "_handleShowCorrectResponseChange", void 0);
259
250
  __decorate([
260
- n({ type: Boolean, attribute: "show-full-correct-response", reflect: true })
251
+ property({ type: Boolean, attribute: "show-full-correct-response", reflect: true })
261
252
  ], CorrectResponseMixinClass.prototype, "showFullCorrectResponse", void 0);
262
253
  __decorate([
263
254
  watch("showFullCorrectResponse", { waitUntilFirstUpdate: true })
264
255
  ], CorrectResponseMixinClass.prototype, "_handleShowFullCorrectResponseChange", void 0);
265
256
  __decorate([
266
- n({ type: Boolean, attribute: "show-candidate-correction", reflect: true })
257
+ property({ type: Boolean, attribute: "show-candidate-correction", reflect: true })
267
258
  ], CorrectResponseMixinClass.prototype, "showCandidateCorrection", void 0);
268
259
  __decorate([
269
260
  watch("showCandidateCorrection", { waitUntilFirstUpdate: true })
270
261
  ], CorrectResponseMixinClass.prototype, "_handleShowCandidateCorrectionChange", void 0);
271
262
  __decorate([
272
- r()
263
+ state()
273
264
  ], CorrectResponseMixinClass.prototype, "_isFullCorrectResponse", void 0);
274
265
  __decorate([
275
- r()
266
+ state()
276
267
  ], CorrectResponseMixinClass.prototype, "_correctResponse", void 0);
277
268
  return CorrectResponseMixinClass;
278
269
  };
279
270
 
280
271
  // ../qti-corrections/dist/styles/correction.styles.js
281
- var correctionPart = i`
272
+ import { css } from "lit";
273
+ var correctionPart = css`
282
274
  /* Nothing at all until the item judges this element. */
283
275
  [part~='correction'] {
284
276
  display: none;
@@ -314,11 +306,12 @@ var correctionPart = i`
314
306
  `;
315
307
 
316
308
  // ../qti-corrections/dist/mixins/candidate-correction.mixin.js
309
+ import { state as state2 } from "lit/decorators.js";
317
310
  var __decorate2 = function(decorators, target, key, desc) {
318
- var c3 = arguments.length, r2 = c3 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
319
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
320
- else for (var i3 = decorators.length - 1; i3 >= 0; i3--) if (d = decorators[i3]) r2 = (c3 < 3 ? d(r2) : c3 > 3 ? d(target, key, r2) : d(target, key)) || r2;
321
- return c3 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
311
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
312
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
313
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
314
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
322
315
  };
323
316
  var CandidateCorrectionMixin = (superClass) => {
324
317
  class CandidateCorrectionMixinClass extends CorrectResponseMixin(superClass) {
@@ -370,7 +363,7 @@ var CandidateCorrectionMixin = (superClass) => {
370
363
  }
371
364
  }
372
365
  __decorate2([
373
- r()
366
+ state2()
374
367
  ], CandidateCorrectionMixinClass.prototype, "_candidateCorrection", void 0);
375
368
  return CandidateCorrectionMixinClass;
376
369
  };
@@ -411,6 +404,9 @@ var ChoiceCorrectionMixin = (superClass) => {
411
404
  return ChoiceCorrectionMixinClass;
412
405
  };
413
406
 
407
+ // ../qti-corrections/dist/elements/qti-gap-text-correction.js
408
+ import { html } from "lit";
409
+
414
410
  // ../qti-corrections/dist/mixins/active-element-correction.mixin.js
415
411
  var ActiveElementCorrectionMixin = (superClass) => {
416
412
  class ActiveElementCorrectionMixinClass extends superClass {
@@ -444,18 +440,19 @@ var QtiGapTextCorrection = class extends ActiveElementCorrectionMixin(QtiGapText
444
440
  this.styles = [QtiGapText.styles, correctionPart];
445
441
  }
446
442
  render() {
447
- return T`<div part="control"></div>
443
+ return html`<div part="control"></div>
448
444
  <slot part="label"></slot>
449
445
  <span part=${this.correctionPart} aria-hidden="true"></span>`;
450
446
  }
451
447
  };
452
448
 
453
449
  // ../qti-corrections/dist/elements/qti-hotspot-choice-correction.js
450
+ import { property as property2 } from "lit/decorators.js";
454
451
  var __decorate3 = function(decorators, target, key, desc) {
455
- var c3 = arguments.length, r2 = c3 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
456
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
457
- else for (var i3 = decorators.length - 1; i3 >= 0; i3--) if (d = decorators[i3]) r2 = (c3 < 3 ? d(r2) : c3 > 3 ? d(target, key, r2) : d(target, key)) || r2;
458
- return c3 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
452
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
453
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
454
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
455
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
459
456
  };
460
457
  var QtiHotspotChoiceCorrection = class extends ActiveElementCorrectionMixin(QtiHotspotChoice) {
461
458
  constructor() {
@@ -464,46 +461,50 @@ var QtiHotspotChoiceCorrection = class extends ActiveElementCorrectionMixin(QtiH
464
461
  }
465
462
  };
466
463
  __decorate3([
467
- n({ attribute: "aria-ordercorrectvalue", type: Number, reflect: true })
464
+ property2({ attribute: "aria-ordercorrectvalue", type: Number, reflect: true })
468
465
  ], QtiHotspotChoiceCorrection.prototype, "orderCorrect", void 0);
469
466
 
470
467
  // ../qti-corrections/dist/elements/qti-hottext-correction.js
468
+ import { html as html2 } from "lit";
471
469
  var QtiHottextCorrection = class extends ActiveElementCorrectionMixin(QtiHottext) {
472
470
  static {
473
471
  this.styles = [QtiHottext.styles, correctionPart];
474
472
  }
475
473
  render() {
476
- return T`<div part="control"><div part="control-mark"></div></div>
474
+ return html2`<div part="control"><div part="control-mark"></div></div>
477
475
  <slot part="label"></slot>
478
476
  <span part=${this.correctionPart} aria-hidden="true"></span>`;
479
477
  }
480
478
  };
481
479
 
482
480
  // ../qti-corrections/dist/elements/qti-simple-associable-choice-correction.js
481
+ import { html as html3 } from "lit";
482
+ import { repeat } from "lit/directives/repeat.js";
483
483
  var QtiSimpleAssociableChoiceCorrection = class extends ActiveElementCorrectionMixin(QtiSimpleAssociableChoice) {
484
484
  static {
485
485
  this.styles = [QtiSimpleAssociableChoice.styles, correctionPart];
486
486
  }
487
487
  render() {
488
- return T`
488
+ return html3`
489
489
  <div part="control"></div>
490
490
  <slot part="label"></slot>
491
491
  <span part=${this.correctionPart} aria-hidden="true"></span>
492
492
  <div part="drop">
493
- ${c2(this.drags, (node) => node.getAttribute("identifier"), (node) => node)}
493
+ ${repeat(this.drags, (node) => node.getAttribute("identifier"), (node) => node)}
494
494
  </div>
495
495
  `;
496
496
  }
497
497
  };
498
498
 
499
499
  // ../qti-corrections/dist/elements/qti-simple-choice-correction.js
500
+ import { html as html4, nothing } from "lit";
500
501
  var QtiSimpleChoiceCorrection = class extends ActiveElementCorrectionMixin(QtiSimpleChoice) {
501
502
  static {
502
503
  this.styles = [QtiSimpleChoice.styles, correctionPart];
503
504
  }
504
505
  render() {
505
- return T`<div part="control" tabindex="0"><div part="control-mark"></div></div>
506
- ${this.marker ? T`<div id="label" part="marker">${this.marker}</div>` : A}
506
+ return html4`<div part="control" tabindex="0"><div part="control-mark"></div></div>
507
+ ${this.marker ? html4`<div id="label" part="marker">${this.marker}</div>` : nothing}
507
508
  <slot part="label"></slot>
508
509
  <span part=${this.correctionPart} aria-hidden="true"></span>`;
509
510
  }
@@ -607,13 +608,16 @@ var TestCheckItemCorrection = class extends TestCheckItem {
607
608
  };
608
609
 
609
610
  // ../qti-corrections/dist/components/item-correct-response-mode/item-correct-response-mode.js
611
+ import { html as html5, LitElement } from "lit";
612
+ import { property as property3, state as state3 } from "lit/decorators.js";
613
+ import { consume } from "@lit/context";
610
614
  var __decorate4 = function(decorators, target, key, desc) {
611
- var c3 = arguments.length, r2 = c3 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
612
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
613
- else for (var i3 = decorators.length - 1; i3 >= 0; i3--) if (d = decorators[i3]) r2 = (c3 < 3 ? d(r2) : c3 > 3 ? d(target, key, r2) : d(target, key)) || r2;
614
- return c3 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
615
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
616
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
617
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
618
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
615
619
  };
616
- var ItemCorrectResponseMode = class extends i2 {
620
+ var ItemCorrectResponseMode = class extends LitElement {
617
621
  constructor() {
618
622
  super(...arguments);
619
623
  this.label = "Correct response mode";
@@ -629,7 +633,7 @@ var ItemCorrectResponseMode = class extends i2 {
629
633
  }));
630
634
  }
631
635
  render() {
632
- return T`
636
+ return html5`
633
637
  <label part="label" for="modeSelect">${this.label}</label>
634
638
  <select
635
639
  part="select"
@@ -639,7 +643,7 @@ var ItemCorrectResponseMode = class extends i2 {
639
643
  this.#switchMode(el.value);
640
644
  }}
641
645
  >
642
- ${Object.keys(this._options).map((value) => T`<option value="${value}" ?selected=${value === this.itemContext?.correctResponseMode}>
646
+ ${Object.keys(this._options).map((value) => html5`<option value="${value}" ?selected=${value === this.itemContext?.correctResponseMode}>
643
647
  ${this._options[value]}
644
648
  </option>`)}
645
649
  </select>
@@ -647,17 +651,23 @@ var ItemCorrectResponseMode = class extends i2 {
647
651
  }
648
652
  };
649
653
  __decorate4([
650
- c({ context: configContext, subscribe: true })
654
+ consume({ context: configContext, subscribe: true })
651
655
  ], ItemCorrectResponseMode.prototype, "itemContext", void 0);
652
656
  __decorate4([
653
- n({ type: String })
657
+ property3({ type: String })
654
658
  ], ItemCorrectResponseMode.prototype, "label", void 0);
655
659
  __decorate4([
656
- r()
660
+ state3()
657
661
  ], ItemCorrectResponseMode.prototype, "_options", void 0);
658
662
 
663
+ // ../qti-corrections/dist/components/item-show-candidate-correction/item-show-candidate-correction.js
664
+ import { css as css3, html as html6, LitElement as LitElement2 } from "lit";
665
+ import { property as property4 } from "lit/decorators.js";
666
+ import { consume as consume2 } from "@lit/context";
667
+
659
668
  // ../qti-corrections/dist/components/styles.js
660
- var form = i`
669
+ import { css as css2 } from "lit";
670
+ var form = css2`
661
671
  display: inline-flex;
662
672
  align-items: center;
663
673
  cursor: pointer;
@@ -665,29 +675,29 @@ var form = i`
665
675
  border-radius: 0.25rem;
666
676
  user-select: none;
667
677
  `;
668
- var btn = i`
678
+ var btn = css2`
669
679
  background-color: lightgray;
670
680
  ${form};
671
681
  `;
672
- var dis = i`
682
+ var dis = css2`
673
683
  cursor: not-allowed;
674
684
  opacity: 0.8;
675
685
  `;
676
- var ind = i`
686
+ var ind = css2`
677
687
  ${form};
678
688
  border: 1px solid gray;
679
689
  `;
680
690
 
681
691
  // ../qti-corrections/dist/components/item-show-candidate-correction/item-show-candidate-correction.js
682
692
  var __decorate5 = function(decorators, target, key, desc) {
683
- var c3 = arguments.length, r2 = c3 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
684
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
685
- else for (var i3 = decorators.length - 1; i3 >= 0; i3--) if (d = decorators[i3]) r2 = (c3 < 3 ? d(r2) : c3 > 3 ? d(target, key, r2) : d(target, key)) || r2;
686
- return c3 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
693
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
694
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
695
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
696
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
687
697
  };
688
- var ItemShowCandidateCorrection = class extends i2 {
698
+ var ItemShowCandidateCorrection = class extends LitElement2 {
689
699
  static {
690
- this.styles = i`
700
+ this.styles = css3`
691
701
  :host {
692
702
  ${btn};
693
703
  }
@@ -733,36 +743,39 @@ var ItemShowCandidateCorrection = class extends i2 {
733
743
  return this.disabled ? this.noCorrectResponseText : this.shown ? this.hideCandidateCorrectionText : this.showCandidateCorrectionText;
734
744
  }
735
745
  render() {
736
- return T` <div @click="${this.#toggleState}">${this.#getDisplayedText()}</div> `;
746
+ return html6` <div @click="${this.#toggleState}">${this.#getDisplayedText()}</div> `;
737
747
  }
738
748
  };
739
749
  __decorate5([
740
- c({ context: computedItemContext, subscribe: true })
750
+ consume2({ context: computedItemContext, subscribe: true })
741
751
  ], ItemShowCandidateCorrection.prototype, "computedContext", void 0);
742
752
  __decorate5([
743
- n({ type: Boolean, reflect: true })
753
+ property4({ type: Boolean, reflect: true })
744
754
  ], ItemShowCandidateCorrection.prototype, "shown", void 0);
745
755
  __decorate5([
746
- n({ type: Boolean, reflect: true })
756
+ property4({ type: Boolean, reflect: true })
747
757
  ], ItemShowCandidateCorrection.prototype, "disabled", void 0);
748
758
  __decorate5([
749
- n({ type: String })
759
+ property4({ type: String })
750
760
  ], ItemShowCandidateCorrection.prototype, "showCandidateCorrectionText", void 0);
751
761
  __decorate5([
752
- n({ type: String })
762
+ property4({ type: String })
753
763
  ], ItemShowCandidateCorrection.prototype, "hideCandidateCorrectionText", void 0);
754
764
  __decorate5([
755
- n({ type: String })
765
+ property4({ type: String })
756
766
  ], ItemShowCandidateCorrection.prototype, "noCorrectResponseText", void 0);
757
767
 
758
768
  // ../qti-corrections/dist/components/item-show-correct-response/item-show-correct-response.js
769
+ import { css as css4, html as html7, LitElement as LitElement3 } from "lit";
770
+ import { property as property5 } from "lit/decorators.js";
771
+ import { consume as consume3 } from "@lit/context";
759
772
  var __decorate6 = function(decorators, target, key, desc) {
760
- var c3 = arguments.length, r2 = c3 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
761
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
762
- else for (var i3 = decorators.length - 1; i3 >= 0; i3--) if (d = decorators[i3]) r2 = (c3 < 3 ? d(r2) : c3 > 3 ? d(target, key, r2) : d(target, key)) || r2;
763
- return c3 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
773
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
774
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
775
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
776
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
764
777
  };
765
- var ItemShowCorrectResponse = class extends i2 {
778
+ var ItemShowCorrectResponse = class extends LitElement3 {
766
779
  constructor() {
767
780
  super(...arguments);
768
781
  this.shown = false;
@@ -774,7 +787,7 @@ var ItemShowCorrectResponse = class extends i2 {
774
787
  this.#previousActiveItem = "";
775
788
  }
776
789
  static {
777
- this.styles = i`
790
+ this.styles = css4`
778
791
  :host {
779
792
  ${btn};
780
793
  }
@@ -810,36 +823,39 @@ var ItemShowCorrectResponse = class extends i2 {
810
823
  return this.disabled ? this.noCorrectResponseText : this.shown ? this.hideCorrectText : this.showCorrectText;
811
824
  }
812
825
  render() {
813
- return T` <div @click="${this.#toggleState}">${this.#getDisplayedText()}</div> `;
826
+ return html7` <div @click="${this.#toggleState}">${this.#getDisplayedText()}</div> `;
814
827
  }
815
828
  };
816
829
  __decorate6([
817
- c({ context: computedItemContext, subscribe: true })
830
+ consume3({ context: computedItemContext, subscribe: true })
818
831
  ], ItemShowCorrectResponse.prototype, "computedContext", void 0);
819
832
  __decorate6([
820
- n({ type: Boolean, reflect: true })
833
+ property5({ type: Boolean, reflect: true })
821
834
  ], ItemShowCorrectResponse.prototype, "shown", void 0);
822
835
  __decorate6([
823
- n({ type: Boolean, reflect: true })
836
+ property5({ type: Boolean, reflect: true })
824
837
  ], ItemShowCorrectResponse.prototype, "disabled", void 0);
825
838
  __decorate6([
826
- n({ type: String })
839
+ property5({ type: String })
827
840
  ], ItemShowCorrectResponse.prototype, "showCorrectText", void 0);
828
841
  __decorate6([
829
- n({ type: String })
842
+ property5({ type: String })
830
843
  ], ItemShowCorrectResponse.prototype, "hideCorrectText", void 0);
831
844
  __decorate6([
832
- n({ type: String })
845
+ property5({ type: String })
833
846
  ], ItemShowCorrectResponse.prototype, "noCorrectResponseText", void 0);
834
847
 
835
848
  // ../qti-corrections/dist/components/test-show-correct-response/test-show-correct-response.js
849
+ import { css as css5, html as html8, LitElement as LitElement4 } from "lit";
850
+ import { property as property6 } from "lit/decorators.js";
851
+ import { consume as consume4 } from "@lit/context";
836
852
  var __decorate7 = function(decorators, target, key, desc) {
837
- var c3 = arguments.length, r2 = c3 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
838
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
839
- else for (var i3 = decorators.length - 1; i3 >= 0; i3--) if (d = decorators[i3]) r2 = (c3 < 3 ? d(r2) : c3 > 3 ? d(target, key, r2) : d(target, key)) || r2;
840
- return c3 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
853
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
854
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
855
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
856
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
841
857
  };
842
- var TestShowCorrectResponse = class extends i2 {
858
+ var TestShowCorrectResponse = class extends LitElement4 {
843
859
  constructor() {
844
860
  super(...arguments);
845
861
  this.shown = false;
@@ -849,7 +865,7 @@ var TestShowCorrectResponse = class extends i2 {
849
865
  this.noCorrectResponseText = "No correct response specified";
850
866
  }
851
867
  static {
852
- this.styles = i`
868
+ this.styles = css5`
853
869
  :host {
854
870
  ${btn};
855
871
  }
@@ -889,26 +905,26 @@ var TestShowCorrectResponse = class extends i2 {
889
905
  return this.disabled ? this.noCorrectResponseText : this.shown ? this.hideCorrectText : this.showCorrectText;
890
906
  }
891
907
  render() {
892
- return T` <div @click="${this.#toggleState}">${this.#getDisplayedText()}</div> `;
908
+ return html8` <div @click="${this.#toggleState}">${this.#getDisplayedText()}</div> `;
893
909
  }
894
910
  };
895
911
  __decorate7([
896
- c({ context: computedContext, subscribe: true })
912
+ consume4({ context: computedContext, subscribe: true })
897
913
  ], TestShowCorrectResponse.prototype, "computedContext", void 0);
898
914
  __decorate7([
899
- n({ type: Boolean, reflect: true })
915
+ property6({ type: Boolean, reflect: true })
900
916
  ], TestShowCorrectResponse.prototype, "shown", void 0);
901
917
  __decorate7([
902
- n({ type: Boolean, reflect: true })
918
+ property6({ type: Boolean, reflect: true })
903
919
  ], TestShowCorrectResponse.prototype, "disabled", void 0);
904
920
  __decorate7([
905
- n({ type: String })
921
+ property6({ type: String })
906
922
  ], TestShowCorrectResponse.prototype, "showCorrectText", void 0);
907
923
  __decorate7([
908
- n({ type: String })
924
+ property6({ type: String })
909
925
  ], TestShowCorrectResponse.prototype, "hideCorrectText", void 0);
910
926
  __decorate7([
911
- n({ type: String })
927
+ property6({ type: String })
912
928
  ], TestShowCorrectResponse.prototype, "noCorrectResponseText", void 0);
913
929
 
914
930
  // ../qti-corrections/dist/mixins/drag-drop-correction.mixin.js
@@ -941,18 +957,20 @@ var QtiChoiceInteractionCorrection = class extends ChoiceCorrectionMixin(QtiChoi
941
957
  };
942
958
 
943
959
  // ../qti-corrections/dist/interactions/qti-extended-text-interaction-correction.js
960
+ import { css as css6, html as html9 } from "lit";
961
+ import { property as property7 } from "lit/decorators.js";
944
962
  var __decorate8 = function(decorators, target, key, desc) {
945
- var c3 = arguments.length, r2 = c3 < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
946
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
947
- else for (var i3 = decorators.length - 1; i3 >= 0; i3--) if (d = decorators[i3]) r2 = (c3 < 3 ? d(r2) : c3 > 3 ? d(target, key, r2) : d(target, key)) || r2;
948
- return c3 > 3 && r2 && Object.defineProperty(target, key, r2), r2;
963
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
964
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
965
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
966
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
949
967
  };
950
968
  var QtiExtendedTextInteractionCorrection = class extends ActiveElementCorrectionMixin(QtiExtendedTextInteraction) {
951
969
  static {
952
970
  this.styles = [
953
971
  QtiExtendedTextInteraction.styles,
954
972
  correctionPart,
955
- i`
973
+ css6`
956
974
  /*
957
975
  * Placement only — the glyph itself is the theme's, keyed on ::part(correction-*). That split
958
976
  * is the contract in correction.styles.ts, which deliberately leaves the shared badge in flow
@@ -1018,13 +1036,13 @@ var QtiExtendedTextInteractionCorrection = class extends ActiveElementCorrection
1018
1036
  }
1019
1037
  /** The badge goes between the field and the validation message; everything else is the base's. */
1020
1038
  render() {
1021
- return T`${this.renderPrompt()}${this.renderTextarea()}
1039
+ return html9`${this.renderPrompt()}${this.renderTextarea()}
1022
1040
  <span part=${this.correctionPart} aria-hidden="true"></span>
1023
1041
  ${this.renderValidationMessage()}`;
1024
1042
  }
1025
1043
  };
1026
1044
  __decorate8([
1027
- n({ attribute: "candidate-correction", reflect: true, noAccessor: true })
1045
+ property7({ attribute: "candidate-correction", reflect: true, noAccessor: true })
1028
1046
  ], QtiExtendedTextInteractionCorrection.prototype, "candidateCorrection", void 0);
1029
1047
 
1030
1048
  // ../qti-corrections/dist/interactions/shared.js
@@ -1059,6 +1077,8 @@ var QtiGapMatchInteractionCorrection = class extends DragDropCorrectionMixin(Qti
1059
1077
  };
1060
1078
 
1061
1079
  // ../qti-corrections/dist/interactions/qti-graphic-associate-interaction-correction.js
1080
+ import { svg } from "lit";
1081
+ import { repeat as repeat2 } from "lit/directives/repeat.js";
1062
1082
  var QtiGraphicAssociateInteractionCorrection = class extends CandidateCorrectionMixin(QtiGraphicAssociateInteraction) {
1063
1083
  #correctLines = [];
1064
1084
  toggleInternalCorrectResponse(show) {
@@ -1069,7 +1089,7 @@ var QtiGraphicAssociateInteractionCorrection = class extends CandidateCorrection
1069
1089
  this.requestUpdate("correctLines", previous);
1070
1090
  }
1071
1091
  renderSupplementalLines() {
1072
- return c2(this.#correctLines, (line) => line, (line) => b`
1092
+ return repeat2(this.#correctLines, (line) => line, (line) => svg`
1073
1093
  <line
1074
1094
  part="correct-line"
1075
1095
  x1=${parseInt(this.querySelector(`[identifier=${line.split(" ")[0]}]`).style.left)}
@@ -1133,12 +1153,13 @@ var QtiHottextInteractionCorrection = class extends ChoiceCorrectionMixin(QtiHot
1133
1153
  };
1134
1154
 
1135
1155
  // ../qti-corrections/dist/interactions/qti-inline-choice-interaction-correction.js
1156
+ import { css as css7, html as html10 } from "lit";
1136
1157
  var QtiInlineChoiceInteractionCorrection = class extends CandidateCorrectionMixin(QtiInlineChoiceInteraction) {
1137
1158
  static get styles() {
1138
1159
  return [
1139
1160
  QtiInlineChoiceInteraction.styles,
1140
1161
  correctionPart,
1141
- i`
1162
+ css7`
1142
1163
  /*
1143
1164
  * Only the TRAILING inset — the leading gap is the shared --qti-glyph-gap, like every other
1144
1165
  * badge. This used to set both margins to --qti-gap (1rem), twice everyone else's 0.5em, on
@@ -1192,7 +1213,7 @@ var QtiInlineChoiceInteractionCorrection = class extends CandidateCorrectionMixi
1192
1213
  }
1193
1214
  /** The badge trails the validation message; everything else is the base's. */
1194
1215
  render() {
1195
- return T`
1216
+ return html10`
1196
1217
  ${this.renderTrigger()} ${this.renderMenu()} ${this.renderValidationMessage()}
1197
1218
  <span part=${this.correctionPart} aria-hidden="true"></span>
1198
1219
  `;
@@ -1278,7 +1299,7 @@ var QtiOrderInteractionCorrection = class extends DragDropCorrectionMixin(QtiOrd
1278
1299
  const [identifier, dropId] = entry.split(" ");
1279
1300
  const parsed = dropId?.startsWith("droplist") ? parseInt(dropId.slice("droplist".length), 10) : index;
1280
1301
  return { identifier, dropIndex: Number.isNaN(parsed) ? index : parsed };
1281
- }).filter((entry) => entry.identifier).sort((a, b2) => a.dropIndex - b2.dropIndex).map((entry) => entry.identifier);
1302
+ }).filter((entry) => entry.identifier).sort((a, b) => a.dropIndex - b.dropIndex).map((entry) => entry.identifier);
1282
1303
  if (correctOrder.length === 0)
1283
1304
  return;
1284
1305
  const placedEntries = placedChoices.map((choice) => ({ choice, identifier: choice.getAttribute("identifier") })).filter((entry) => Boolean(entry.identifier));
@@ -1353,13 +1374,16 @@ var QtiPortableCustomInteractionCorrection = class extends CandidateCorrectionMi
1353
1374
  };
1354
1375
 
1355
1376
  // ../qti-corrections/dist/interactions/qti-select-point-interaction-correction.js
1377
+ import { css as css8, html as html11 } from "lit";
1378
+ import { repeat as repeat3 } from "lit/directives/repeat.js";
1379
+ import { styleMap } from "lit/directives/style-map.js";
1356
1380
  var QtiSelectPointInteractionCorrection = class extends CandidateCorrectionMixin(QtiSelectPointInteraction) {
1357
1381
  #correctAreas = [];
1358
1382
  #responseCorrection = [];
1359
1383
  static {
1360
1384
  this.styles = [
1361
1385
  QtiSelectPointInteraction.styles,
1362
- i`
1386
+ css8`
1363
1387
  [part~='correct'] {
1364
1388
  --qti-select-point-marker-color: var(--qti-correct);
1365
1389
  }
@@ -1425,8 +1449,8 @@ var QtiSelectPointInteractionCorrection = class extends CandidateCorrectionMixin
1425
1449
  return verdict === void 0 ? "point" : `point ${verdict ? "correct" : "incorrect"}`;
1426
1450
  }
1427
1451
  renderSupplementalLayer() {
1428
- return c2(this.#correctAreas, (area) => `${area.shape}:${area.coords}`, (area, index) => T`<div
1429
- style=${o({
1452
+ return repeat3(this.#correctAreas, (area) => `${area.shape}:${area.coords}`, (area, index) => html11`<div
1453
+ style=${styleMap({
1430
1454
  position: "absolute",
1431
1455
  pointerEvents: "none",
1432
1456
  backgroundColor: "var(--qti-correct)",
@@ -1447,12 +1471,13 @@ var QtiSelectPointInteractionCorrection = class extends CandidateCorrectionMixin
1447
1471
  };
1448
1472
 
1449
1473
  // ../qti-corrections/dist/interactions/qti-slider-interaction-correction.js
1474
+ import { css as css9, html as html12, nothing as nothing2 } from "lit";
1450
1475
  var QtiSliderInteractionCorrection = class extends CandidateCorrectionMixin(QtiSliderInteraction) {
1451
1476
  #correctResponseNumber = null;
1452
1477
  static {
1453
1478
  this.styles = [
1454
1479
  QtiSliderInteraction.styles,
1455
- i`
1480
+ css9`
1456
1481
  [part='knob-correct'] {
1457
1482
  background-color: var(--qti-correct-light);
1458
1483
  border: 2px solid var(--qti-correct);
@@ -1484,19 +1509,20 @@ var QtiSliderInteractionCorrection = class extends CandidateCorrectionMixin(QtiS
1484
1509
  this.requestUpdate("correctResponseNumber", previous);
1485
1510
  }
1486
1511
  renderRailSupplement() {
1487
- return this.#correctResponseNumber === null ? A : T`<div id="knob-correct" part="knob-correct">
1512
+ return this.#correctResponseNumber === null ? nothing2 : html12`<div id="knob-correct" part="knob-correct">
1488
1513
  <div id="value" part="value">${this.#correctResponseNumber}</div>
1489
1514
  </div>`;
1490
1515
  }
1491
1516
  };
1492
1517
 
1493
1518
  // ../qti-corrections/dist/interactions/qti-text-entry-interaction-correction.js
1519
+ import { css as css10, html as html13 } from "lit";
1494
1520
  var QtiTextEntryInteractionCorrection = class extends CandidateCorrectionMixin(QtiTextEntryInteraction) {
1495
1521
  static {
1496
1522
  this.styles = [
1497
1523
  QtiTextEntryInteraction.styles,
1498
1524
  correctionPart,
1499
- i`
1525
+ css10`
1500
1526
  /*
1501
1527
  * The trailing inset only — size and leading gap come from the shared sheet.
1502
1528
  *
@@ -1560,7 +1586,7 @@ var QtiTextEntryInteractionCorrection = class extends CandidateCorrectionMixin(Q
1560
1586
  }
1561
1587
  /** The badge goes between the field and the validation message; everything else is the base's. */
1562
1588
  render() {
1563
- return T`
1589
+ return html13`
1564
1590
  ${this.renderAnswer()} ${this.renderInput()}
1565
1591
  <span part=${this.correctionPart} aria-hidden="true"></span>
1566
1592
  ${this.renderValidationMessage()}
@@ -1605,4 +1631,4 @@ export {
1605
1631
  QtiSliderInteractionCorrection,
1606
1632
  QtiTextEntryInteractionCorrection
1607
1633
  };
1608
- //# sourceMappingURL=chunk-XU7HNT4F.js.map
1634
+ //# sourceMappingURL=chunk-CF3DXJWM.js.map