@citolab/qti-components 8.0.0 → 8.0.2

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 (77) hide show
  1. package/cdn/index.global.js +1 -1
  2. package/cdn/index.js +690 -316
  3. package/dist/base.d.ts +135 -9
  4. package/dist/base.js +1 -1
  5. package/dist/chunk-4DB4SC5K.js +100 -0
  6. package/dist/chunk-4DB4SC5K.js.map +1 -0
  7. package/dist/{chunk-WVVMNF74.js → chunk-7AVWRQIS.js} +188 -160
  8. package/dist/{chunk-WVVMNF74.js.map → chunk-7AVWRQIS.js.map} +1 -1
  9. package/dist/{chunk-MGF5F3S2.js → chunk-BQFWCZFH.js} +2 -2
  10. package/dist/{chunk-5QYII4OZ.js → chunk-CK7AV2UJ.js} +147 -101
  11. package/dist/chunk-CK7AV2UJ.js.map +1 -0
  12. package/dist/chunk-G6GFQDVN.js +7 -0
  13. package/dist/chunk-G6GFQDVN.js.map +1 -0
  14. package/dist/{chunk-LZJHHZQ2.js → chunk-HBSWJC3B.js} +643 -553
  15. package/dist/chunk-HBSWJC3B.js.map +1 -0
  16. package/dist/chunk-HQESINXH.js +834 -0
  17. package/dist/chunk-HQESINXH.js.map +1 -0
  18. package/dist/{chunk-KYEZRYO6.js → chunk-J5SQLKNP.js} +145 -119
  19. package/dist/{chunk-KYEZRYO6.js.map → chunk-J5SQLKNP.js.map} +1 -1
  20. package/dist/{chunk-V5G7X53Y.js → chunk-NJQHUUTN.js} +2 -2
  21. package/dist/{chunk-W4QZPCNC.js → chunk-RSVRS5AK.js} +59 -58
  22. package/dist/chunk-RSVRS5AK.js.map +1 -0
  23. package/dist/{chunk-5SJS36BI.js → chunk-TWPXES3S.js} +642 -673
  24. package/dist/chunk-TWPXES3S.js.map +1 -0
  25. package/dist/{chunk-NA2N2WSG.js → chunk-VAE6HBKR.js} +176 -152
  26. package/dist/{chunk-NA2N2WSG.js.map → chunk-VAE6HBKR.js.map} +1 -1
  27. package/dist/{chunk-MJVPNN7W.js → chunk-ZII6M3SN.js} +2 -2
  28. package/dist/computed-item.types.d-BKZdSLLJ.d.ts +19 -0
  29. package/dist/computed.types.d-DpKIYO6e.d.ts +44 -0
  30. package/dist/config.context.d-BvU9r-Mg.d.ts +91 -0
  31. package/dist/corrections.d.ts +415 -1
  32. package/dist/corrections.js +8 -9
  33. package/dist/elements.d.ts +393 -1
  34. package/dist/elements.js +4 -5
  35. package/dist/index.d.ts +27 -9
  36. package/dist/index.js +21 -14
  37. package/dist/interaction.d-CJiMv8H7.d.ts +126 -0
  38. package/dist/interaction.interface.d-CvjHM2bi.d.ts +46 -0
  39. package/dist/interactions.d.ts +281 -1
  40. package/dist/interactions.js +4 -5
  41. package/dist/item.css +588 -214
  42. package/dist/item.d.ts +92 -1
  43. package/dist/item.js +5 -5
  44. package/dist/item.types.d-QU7LljEK.d.ts +82 -0
  45. package/dist/loader.d.ts +22 -1
  46. package/dist/processing.d.ts +730 -1
  47. package/dist/processing.js +2 -2
  48. package/dist/qti-components-jsx.d.ts +854 -844
  49. package/dist/qti-components-jsx.js +1 -0
  50. package/dist/qti-condition-expression.d-aMvBvpc6.d.ts +8 -0
  51. package/dist/qti-expression.d-BietT_8b.d.ts +31 -0
  52. package/dist/qti-feedback.d-DZbad0RN.d.ts +21 -0
  53. package/dist/qti-rule-base.d-ajOnfGXY.d.ts +16 -0
  54. package/dist/qti-test.d-_YAlhDbt.d.ts +702 -0
  55. package/dist/qti-text-entry-interaction.d-BGdfV9qG.d.ts +1567 -0
  56. package/dist/qti-transform-test.d-BL7GGFJj.d.ts +70 -0
  57. package/dist/qti.context.d-CejJMlfZ.d.ts +50 -0
  58. package/dist/response.d-_8y4kjGP.d.ts +106 -0
  59. package/dist/test.d.ts +32 -1
  60. package/dist/test.js +14 -7
  61. package/dist/transformers.d.ts +18 -1
  62. package/package.json +15 -11
  63. package/dist/chunk-5QYII4OZ.js.map +0 -1
  64. package/dist/chunk-5SJS36BI.js.map +0 -1
  65. package/dist/chunk-64XSIBGO.js +0 -241
  66. package/dist/chunk-64XSIBGO.js.map +0 -1
  67. package/dist/chunk-H3J7LFRO.js +0 -2243
  68. package/dist/chunk-H3J7LFRO.js.map +0 -1
  69. package/dist/chunk-LZJHHZQ2.js.map +0 -1
  70. package/dist/chunk-W4QZPCNC.js.map +0 -1
  71. package/dist/chunk-WCQ26LV7.js +0 -102
  72. package/dist/chunk-WCQ26LV7.js.map +0 -1
  73. package/dist/chunk-X3E5HXG2.js +0 -20
  74. package/dist/chunk-X3E5HXG2.js.map +0 -1
  75. /package/dist/{chunk-MGF5F3S2.js.map → chunk-BQFWCZFH.js.map} +0 -0
  76. /package/dist/{chunk-V5G7X53Y.js.map → chunk-NJQHUUTN.js.map} +0 -0
  77. /package/dist/{chunk-MJVPNN7W.js.map → chunk-ZII6M3SN.js.map} +0 -0
@@ -1,59 +1,60 @@
1
- import type { Interaction } from "packages/qti-base/src/abstract/interaction.ts";
2
- import type { QtiVariableDeclaration } from "packages/qti-base/src/abstract/qti-variable-declaration.ts";
3
- import type { QtiExpression } from "packages/qti-base/src/abstract/qti-expression.ts";
4
- import type { QtiFeedback } from "packages/qti-base/src/abstract/qti-feedback.ts";
5
- import type { QtiRuleElement } from "packages/qti-base/src/lib/qti-rule-base.ts";
6
- import type { ItemContainer } from "packages/qti-item/src/components/item-container/item-container.ts";
7
- import type { ItemPrintVariables } from "packages/qti-item/src/components/item-print-variables/item-print-variables.ts";
8
- import type { QtiTemplateConstraint } from "packages/qti-elements/src/components/qti-template-constraint/qti-template-constraint.ts";
9
- import type { QtiTemplateProcessing } from "packages/qti-elements/src/components/qti-template-processing/qti-template-processing.ts";
10
- import type { QtiResponseProcessing } from "packages/qti-elements/src/components/qti-response-processing/qti-response-processing.ts";
11
- import type { QtiAssessmentItem } from "packages/qti-elements/src/components/qti-assessment-item/qti-assessment-item.ts";
1
+ import type { Interaction } from "./base.js";
2
+ import type { QtiVariableDeclaration } from "./base.js";
3
+ import type { QtiExpression } from "./base.js";
4
+ import type { QtiFeedback } from "./base.js";
5
+ import type { QtiRuleElement } from "./base.js";
6
+ import type { ItemContainer } from "./item.js";
7
+ import type { ItemPrintVariables } from "./item.js";
8
+ import type { QtiTemplateConstraint } from "./elements.js";
9
+ import type { QtiTemplateProcessing } from "./elements.js";
10
+ import type { QtiResponseProcessing } from "./elements.js";
11
+ import type { QtiAssessmentItem } from "./elements.js";
12
12
  import type {
13
13
  QtiAssessmentStimulusRef,
14
14
  QtiAssessmentStimulusRefConnectedEvent,
15
- } from "packages/qti-elements/src/components/qti-assessment-stimulus-ref/qti-assessment-stimulus-ref.ts";
16
- import type { QtiCompanionMaterialsInfo } from "packages/qti-elements/src/components/qti-companion-materials-info/qti-companion-materials-info.ts";
17
- import type { QtiContentBody } from "packages/qti-elements/src/components/qti-content-body/qti-content-body.ts";
18
- import type { QtiContextDeclaration } from "packages/qti-elements/src/components/qti-context-declaration/qti-context-declaration.ts";
19
- import type { QtiCustomOperator } from "packages/qti-elements/src/components/qti-custom-operator/qti-custom-operator.ts";
20
- import type { QtiFeedbackBlock } from "packages/qti-elements/src/components/qti-feedback-block/qti-feedback-block.ts";
21
- import type { QtiFeedbackInline } from "packages/qti-elements/src/components/qti-feedback-inline/qti-feedback-inline.ts";
22
- import type { QtiItemBody } from "packages/qti-elements/src/components/qti-item-body/qti-item-body.ts";
23
- import type { QtiModalFeedback } from "packages/qti-elements/src/components/qti-modal-feedback/qti-modal-feedback.ts";
24
- import type { QtiOutcomeDeclaration } from "packages/qti-elements/src/components/qti-outcome-declaration/qti-outcome-declaration.ts";
25
- import type { QtiResponseDeclaration } from "packages/qti-elements/src/components/qti-response-declaration/qti-response-declaration.ts";
26
- import type { QtiRubricBlock } from "packages/qti-elements/src/components/qti-rubric-block/qti-rubric-block.ts";
27
- import type { QtiStylesheet } from "packages/qti-elements/src/components/qti-stylesheet/qti-stylesheet.ts";
28
- import type { QtiTemplateDeclaration } from "packages/qti-elements/src/components/qti-template-declaration/qti-template-declaration.ts";
29
- import type { QtiItem } from "packages/qti-item/src/components/qti-item/qti-item.ts";
30
- import type { QtiAssessmentItemRef } from "packages/qti-test/src/components/qti-assessment-item-ref/qti-assessment-item-ref.ts";
31
- import type { QtiAssessmentSection } from "packages/qti-test/src/components/qti-assessment-section/qti-assessment-section.ts";
32
- import type { QtiAssessmentTest } from "packages/qti-test/src/components/qti-assessment-test/qti-assessment-test.ts";
33
- import type { QtiTestPart } from "packages/qti-test/src/components/qti-test-part/qti-test-part.ts";
34
- import type { TestNavigation } from "packages/qti-test/src/components/test-navigation/test-navigation.ts";
35
- import type { TestContainer } from "packages/qti-test/src/components/test-container/test-container.ts";
15
+ } from "./elements.js";
16
+ import type { QtiCompanionMaterialsInfo } from "./elements.js";
17
+ import type { QtiContentBody } from "./elements.js";
18
+ import type { QtiContextDeclaration } from "./elements.js";
19
+ import type { QtiCustomOperator } from "./elements.js";
20
+ import type { QtiFeedbackBlock } from "./elements.js";
21
+ import type { QtiFeedbackInline } from "./elements.js";
22
+ import type { QtiItemBody } from "./elements.js";
23
+ import type { QtiModalFeedback } from "./elements.js";
24
+ import type { QtiOutcomeDeclaration } from "./elements.js";
25
+ import type { QtiResponseDeclaration } from "./elements.js";
26
+ import type { QtiRubricBlock } from "./elements.js";
27
+ import type { QtiStylesheet } from "./elements.js";
28
+ import type { QtiTemplateDeclaration } from "./elements.js";
29
+ import type { QtiItem } from "./item.js";
30
+ import type { QtiAssessmentItemRef } from "./test.js";
31
+ import type { QtiAssessmentSection } from "./test.js";
32
+ import type { QtiTestPart } from "./test.js";
33
+ import type { QtiAssessmentTest } from "./test.js";
34
+ import type { TestNavigation } from "./test.js";
35
+ import type { TestContainer } from "./test.js";
36
36
  import type {
37
37
  QtiOutcomeProcessing,
38
38
  QtiOutcomeProcessingProcessor,
39
- } from "packages/qti-test/src/components/qti-outcome-processing/qti-outcome-processing.ts";
40
- import type { QtiTest } from "packages/qti-test/src/components/qti-test/qti-test.ts";
41
- import type { QtiTestFeedback } from "packages/qti-test/src/components/qti-test-feedback/qti-test-feedback.ts";
42
- import type { TestNext } from "packages/qti-test/src/components/test-next/test-next.ts";
43
- import type { TestPrev } from "packages/qti-test/src/components/test-prev/test-prev.ts";
44
- import type { TestView } from "packages/qti-test/src/components/test-view-toggle/test-view.ts";
45
- import type { TestItemLink } from "packages/qti-test/src/components/test-item-link/test-item-link.ts";
46
- import type { TestEndAttempt } from "packages/qti-test/src/components/test-end-attempt/test-end-attempt.ts";
47
- import type { TestPagingButtonsStamp } from "packages/qti-test/src/components/test-paging-buttons-stamp/test-paging-buttons-stamp.ts";
48
- import type { TestPrintVariables } from "packages/qti-test/src/components/test-print-item-variables/test-print-item-variables.ts";
49
- import type { TestSectionButtonsStamp } from "packages/qti-test/src/components/test-section-buttons-stamp/test-section-buttons-stamp.ts";
50
- import type { TestSectionLink } from "packages/qti-test/src/components/test-section-link/test-section-link.ts";
51
- import type { TestPrintContext } from "packages/qti-test/src/components/test-print-context/test-print-context.ts";
52
- import type { TestStamp } from "packages/qti-test/src/components/test-stamp/test-stamp.ts";
53
- import type { TestScoringButtons } from "packages/qti-test/src/components/test-scoring-buttons/test-scoring-buttons.ts";
54
- import type { TestViewToggle } from "packages/qti-test/src/components/test-view-toggle/test-view-toggle.ts";
55
- import type { TestScoringFeedback } from "packages/qti-test/src/components/test-scoring-feedback/test-scoring-feedback.ts";
56
- import type { TestCheckItem } from "packages/qti-test/src/components/test-check-item/test-check-item.ts";
39
+ } from "./test.js";
40
+ import type { QtiTest } from "./test.js";
41
+ import type { QtiTestFeedback } from "./test.js";
42
+ import type { QtiTestVariables, QtiTestVariablesExpression } from "./test.js";
43
+ import type { TestNext } from "./test.js";
44
+ import type { TestPrev } from "./test.js";
45
+ import type { TestView } from "./test.js";
46
+ import type { TestItemLink } from "./test.js";
47
+ import type { TestEndAttempt } from "./test.js";
48
+ import type { TestPagingButtonsStamp } from "./test.js";
49
+ import type { TestPrintVariables } from "./test.js";
50
+ import type { TestSectionButtonsStamp } from "./test.js";
51
+ import type { TestSectionLink } from "./test.js";
52
+ import type { TestPrintContext } from "./test.js";
53
+ import type { TestStamp } from "./test.js";
54
+ import type { TestScoringButtons } from "./test.js";
55
+ import type { TestViewToggle } from "./test.js";
56
+ import type { TestScoringFeedback } from "./test.js";
57
+ import type { TestCheckItem } from "./test.js";
57
58
  import type {
58
59
  TestTtsStop,
59
60
  TestTtsResume,
@@ -64,136 +65,123 @@ import type {
64
65
  TestItemToSpeech,
65
66
  SpeechState,
66
67
  ttsContext,
67
- } from "packages/qti-test/src/components/test-item-to-speech/test-item-to-speech.ts";
68
- import type {
69
- QtiTestVariables,
70
- QtiTestVariablesExpression,
71
- } from "packages/qti-test/src/components/qti-test-variables/qti-test-variables.ts";
72
- import type { QtiSimpleAssociableChoice } from "packages/interactions/core/src/elements/qti-simple-associable-choice/qti-simple-associable-choice.ts";
73
- import type { QtiAssociateInteraction } from "packages/interactions/associate-interaction/src/qti-associate-interaction.ts";
74
- import type { QtiSimpleChoice } from "packages/interactions/core/src/elements/qti-simple-choice/qti-simple-choice.ts";
75
- import type { QtiChoiceInteraction } from "packages/interactions/choice-interaction/src/qti-choice-interaction.ts";
76
- import type { QtiAssociableHotspot } from "packages/interactions/core/src/elements/qti-associable-hotspot/qti-associable-hotspot.ts";
77
- import type { QtiGap } from "packages/interactions/core/src/elements/qti-gap/qti-gap.ts";
78
- import type { QtiGapImg } from "packages/interactions/core/src/elements/qti-gap-img/qti-gap-img.ts";
79
- import type { QtiGapText } from "packages/interactions/core/src/elements/qti-gap-text/qti-gap-text.ts";
80
- import type { QtiHotspotChoice } from "packages/interactions/core/src/elements/qti-hotspot-choice/qti-hotspot-choice.ts";
81
- import type { QtiHottext } from "packages/interactions/core/src/elements/qti-hottext/qti-hottext.ts";
82
- import type { QtiInlineChoice } from "packages/interactions/core/src/elements/qti-inline-choice/qti-inline-choice.ts";
83
- import type { QtiPrompt } from "packages/interactions/core/src/elements/qti-prompt/qti-prompt.ts";
84
- import type { QtiCustomInteraction } from "packages/interactions/custom-interaction/src/qti-custom-interaction.ts";
85
- import type { QtiEndAttemptInteraction } from "packages/interactions/end-attempt-interaction/src/qti-end-attempt-interaction.ts";
86
- import type { QtiExtendedTextInteraction } from "packages/interactions/extended-text-interaction/src/qti-extended-text-interaction.ts";
87
- import type { QtiGapMatchInteraction } from "packages/interactions/gap-match-interaction/src/qti-gap-match-interaction.ts";
88
- import type { QtiGraphicAssociateInteraction } from "packages/interactions/graphic-associate-interaction/src/qti-graphic-associate-interaction.ts";
89
- import type { QtiGraphicGapMatchInteraction } from "packages/interactions/graphic-gap-match-interaction/src/qti-graphic-gap-match-interaction.ts";
90
- import type { QtiGraphicOrderInteraction } from "packages/interactions/graphic-order-interaction/src/qti-graphic-order-interaction.ts";
91
- import type { QtiHotspotInteraction } from "packages/interactions/hotspot-interaction/src/qti-hotspot-interaction.ts";
92
- import type { QtiHottextInteraction } from "packages/interactions/hottext-interaction/src/qti-hottext-interaction.ts";
93
- import type { QtiInlineChoiceInteraction } from "packages/interactions/inline-choice-interaction/src/qti-inline-choice-interaction.ts";
94
- import type { QtiMatchInteraction } from "packages/interactions/match-interaction/src/qti-match-interaction.ts";
95
- import type { QtiMediaInteraction } from "packages/interactions/media-interaction/src/qti-media-interaction.ts";
96
- import type { QtiOrderInteraction } from "packages/interactions/order-interaction/src/qti-order-interaction.ts";
97
- import type { QtiPortableCustomInteraction } from "packages/interactions/portable-custom-interaction/src/qti-portable-custom-interaction.ts";
98
- import type { QtiPortableCustomInteractionTest } from "packages/interactions/portable-custom-interaction/src/qti-portable-custom-test-interaction.ts";
99
- import type { QtiPositionObjectInteraction } from "packages/interactions/position-object-interaction/src/qti-position-object-interaction.ts";
100
- import type { QtiPositionObjectStage } from "packages/interactions/position-object-interaction/src/qti-position-object-stage.ts";
101
- import type { QtiSelectPointInteraction } from "packages/interactions/select-point-interaction/src/qti-select-point-interaction.ts";
102
- import type { QtiSliderInteraction } from "packages/interactions/slider-interaction/src/qti-slider-interaction.ts";
103
- import type { QtiTextEntryInteraction } from "packages/interactions/text-entry-interaction/src/qti-text-entry-interaction.ts";
104
- import type { QtiUploadInteraction } from "packages/interactions/upload-interaction/src/qti-upload-interaction.ts";
105
- import type {
106
- QtiAnd,
107
- qtiAndMixin,
108
- } from "packages/qti-processing/src/components/qti-and/qti-and.ts";
109
- import type { QtiAnyN } from "packages/qti-processing/src/components/qti-any-n/qti-any-n.ts";
110
- import type { QtiBaseValue } from "packages/qti-processing/src/components/qti-basevalue/qti-basevalue.ts";
111
- import type { QtiContainerSize } from "packages/qti-processing/src/components/qti-container-size/qti-container-size.ts";
112
- import type { QtiContains } from "packages/qti-processing/src/components/qti-contains/qti-contains.ts";
113
- import type { QtiCorrect } from "packages/qti-processing/src/components/qti-correct/qti-correct.ts";
114
- import type { QtiDefault } from "packages/qti-processing/src/components/qti-default/qti-default.ts";
115
- import type { QtiEqualRounded } from "packages/qti-processing/src/components/qti-equal-rounded/qti-equal-rounded.ts";
116
- import type { QtiRound } from "packages/qti-processing/src/components/qti-round/qti-round.ts";
117
- import type { QtiRoundTo } from "packages/qti-processing/src/components/qti-round-to/qti-round-to.ts";
118
- import type { QtiEqual } from "packages/qti-processing/src/components/qti-equal/qti-equal.ts";
119
- import type { QtiDivide } from "packages/qti-processing/src/components/qti-divide/qti-divide.ts";
120
- import type { QtiDurationGte } from "packages/qti-processing/src/components/qti-duration-gte/qti-duration-gte.ts";
121
- import type { QtiDurationLt } from "packages/qti-processing/src/components/qti-duration-lt/qti-duration-lt.ts";
122
- import type { QtiGcd } from "packages/qti-processing/src/components/qti-gcd/qti.gcd.ts";
123
- import type { QtiGt } from "packages/qti-processing/src/components/qti-gt/qti-gt.ts";
124
- import type { QtiGte } from "packages/qti-processing/src/components/qti-gte/qti-gte.ts";
125
- import type { QtiInside } from "packages/qti-processing/src/components/qti-inside/qti-inside.ts";
126
- import type { QtiIntegerDivide } from "packages/qti-processing/src/components/qti-integer-divide/qti-integer-divide.ts";
127
- import type { QtiIntegerModulus } from "packages/qti-processing/src/components/qti-integer-modulus/qti-integer-modulus.ts";
128
- import type { QtiIntegerToFloat } from "packages/qti-processing/src/components/qti-integer-to-float/qti-integer-to-float.ts";
129
- import type { QtiLcm } from "packages/qti-processing/src/components/qti-lcm/qti-lcm.ts";
130
- import type { QtiNull } from "packages/qti-processing/src/components/qti-null/qti-null.ts";
131
- import type { QtiIsNull } from "packages/qti-processing/src/components/qti-is-null/qti-is-null.ts";
132
- import type { QtiFieldValue } from "packages/qti-processing/src/components/qti-field-value/qti-field-value.ts";
133
- import type { QtiLt } from "packages/qti-processing/src/components/qti-lt/qti-lt.ts";
134
- import type { QtiLte } from "packages/qti-processing/src/components/qti-lte/qti-lte.ts";
135
- import type { QtiMapResponse } from "packages/qti-processing/src/components/qti-map-response/qti-map-response.ts";
136
- import type { QtiMapResponsePoint } from "packages/qti-processing/src/components/qti-map-response-point/qti-map-response-point.ts";
137
- import type { QtiMathOperator } from "packages/qti-processing/src/components/qti-math-operator/qti-math-operator.ts";
138
- import type { QtiMatch } from "packages/qti-processing/src/components/qti-match/qti-match.ts";
139
- import type { QtiMax } from "packages/qti-processing/src/components/qti-max/qti-max.ts";
140
- import type { QtiMember } from "packages/qti-processing/src/components/qti-member/qti-member.ts";
141
- import type { QtiMin } from "packages/qti-processing/src/components/qti-min/qti-min.ts";
142
- import type { QtiMultiple } from "packages/qti-processing/src/components/qti-multiple/qti-multiple.ts";
143
- import type { QtiNot } from "packages/qti-processing/src/components/qti-not/qti-not.ts";
144
- import type { QtiOr } from "packages/qti-processing/src/components/qti-or/qti-or.ts";
145
- import type { QtiOrdered } from "packages/qti-processing/src/components/qti-ordered/qti-ordered.ts";
146
- import type { QtiPower } from "packages/qti-processing/src/components/qti-power/qti-power.ts";
147
- import type { QtiPatternMatch } from "packages/qti-processing/src/components/qti-pattern-match/qti-pattern-match.ts";
148
- import type { QtiPrintedVariable } from "packages/qti-processing/src/components/qti-printed-variable/qti-printed-variable.ts";
149
- import type { QtiProduct } from "packages/qti-processing/src/components/qti-product/qti-product.ts";
150
- import type { QtiRepeat } from "packages/qti-processing/src/components/qti-repeat/qti-repeat.ts";
151
- import type { QtiRule } from "packages/qti-processing/src/components/qti-rule/qti-rule.ts";
68
+ } from "./test.js";
69
+ import type { QtiSimpleAssociableChoice } from "./interactions.js";
70
+ import type { QtiAssociateInteraction } from "./interactions.js";
71
+ import type { QtiAssociableHotspot } from "./interactions.js";
72
+ import type { QtiGap } from "./interactions.js";
73
+ import type { QtiGapImg } from "./interactions.js";
74
+ import type { QtiGapText } from "./interactions.js";
75
+ import type { QtiHotspotChoice } from "./interactions.js";
76
+ import type { QtiHottext } from "./interactions.js";
77
+ import type { QtiInlineChoice } from "./interactions.js";
78
+ import type { QtiPrompt } from "./interactions.js";
79
+ import type { QtiSimpleChoice } from "./interactions.js";
80
+ import type { QtiChoiceInteraction } from "./interactions.js";
81
+ import type { QtiCustomInteraction } from "./interactions.js";
82
+ import type { QtiEndAttemptInteraction } from "./interactions.js";
83
+ import type { QtiExtendedTextInteraction } from "./interactions.js";
84
+ import type { QtiGapMatchInteraction } from "./interactions.js";
85
+ import type { QtiGraphicAssociateInteraction } from "./interactions.js";
86
+ import type { QtiGraphicGapMatchInteraction } from "./interactions.js";
87
+ import type { QtiGraphicOrderInteraction } from "./interactions.js";
88
+ import type { QtiHotspotInteraction } from "./interactions.js";
89
+ import type { QtiHottextInteraction } from "./interactions.js";
90
+ import type { QtiInlineChoiceInteraction } from "./interactions.js";
91
+ import type { QtiMatchInteraction } from "./interactions.js";
92
+ import type { QtiMediaInteraction } from "./interactions.js";
93
+ import type { QtiOrderInteraction } from "./interactions.js";
94
+ import type { QtiPortableCustomInteraction } from "./interactions.js";
95
+ import type { QtiPortableCustomInteractionTest } from "./interactions.js";
96
+ import type { QtiPositionObjectInteraction } from "./interactions.js";
97
+ import type { QtiPositionObjectStage } from "./interactions.js";
98
+ import type { QtiSelectPointInteraction } from "./interactions.js";
99
+ import type { QtiSliderInteraction } from "./interactions.js";
100
+ import type { QtiTextEntryInteraction } from "./interactions.js";
101
+ import type { QtiUploadInteraction } from "./interactions.js";
102
+ import type { QtiAnd, qtiAndMixin } from "./processing.js";
103
+ import type { QtiAnyN } from "./processing.js";
104
+ import type { QtiBaseValue } from "./processing.js";
105
+ import type { QtiContainerSize } from "./processing.js";
106
+ import type { QtiContains } from "./processing.js";
107
+ import type { QtiCorrect } from "./processing.js";
108
+ import type { QtiDefault } from "./processing.js";
109
+ import type { QtiEqualRounded } from "./processing.js";
110
+ import type { QtiRound } from "./processing.js";
111
+ import type { QtiRoundTo } from "./processing.js";
112
+ import type { QtiEqual } from "./processing.js";
113
+ import type { QtiDivide } from "./processing.js";
114
+ import type { QtiDurationGte } from "./processing.js";
115
+ import type { QtiDurationLt } from "./processing.js";
116
+ import type { QtiGcd } from "./processing.js";
117
+ import type { QtiGt } from "./processing.js";
118
+ import type { QtiGte } from "./processing.js";
119
+ import type { QtiInside } from "./processing.js";
120
+ import type { QtiIntegerDivide } from "./processing.js";
121
+ import type { QtiIntegerModulus } from "./processing.js";
122
+ import type { QtiIntegerToFloat } from "./processing.js";
123
+ import type { QtiLcm } from "./processing.js";
124
+ import type { QtiNull } from "./processing.js";
125
+ import type { QtiIsNull } from "./processing.js";
126
+ import type { QtiFieldValue } from "./processing.js";
127
+ import type { QtiLt } from "./processing.js";
128
+ import type { QtiLte } from "./processing.js";
129
+ import type { QtiMapResponse } from "./processing.js";
130
+ import type { QtiMapResponsePoint } from "./processing.js";
131
+ import type { QtiMathOperator } from "./processing.js";
132
+ import type { QtiMatch } from "./processing.js";
133
+ import type { QtiMax } from "./processing.js";
134
+ import type { QtiMember } from "./processing.js";
135
+ import type { QtiMin } from "./processing.js";
136
+ import type { QtiMultiple } from "./processing.js";
137
+ import type { QtiNot } from "./processing.js";
138
+ import type { QtiOr } from "./processing.js";
139
+ import type { QtiOrdered } from "./processing.js";
140
+ import type { QtiPower } from "./processing.js";
141
+ import type { QtiPatternMatch } from "./processing.js";
142
+ import type { QtiPrintedVariable } from "./processing.js";
143
+ import type { QtiProduct } from "./processing.js";
144
+ import type { QtiRepeat } from "./processing.js";
145
+ import type { QtiRule } from "./processing.js";
152
146
  import type {
153
147
  QtiSetCorrectResponse,
154
148
  QtiSetCorrectResponseRule,
155
- } from "packages/qti-processing/src/components/qti-set-correct-response/qti-set-correct-response.ts";
149
+ } from "./processing.js";
156
150
  import type {
157
151
  QtiSetTemplateValue,
158
152
  QtiSetTemplateValueRule,
159
- } from "packages/qti-processing/src/components/qti-set-template-value/qti-set-template-value.ts";
160
- import type { QtiStatsOperator } from "packages/qti-processing/src/components/qti-stats-operator/qti-stats-operator.ts";
161
- import type {
162
- QtiSubtract,
163
- qtiSubtractMixin,
164
- } from "packages/qti-processing/src/components/qti-subtract/qti-subtract.ts";
165
- import type { QtiSubstring } from "packages/qti-processing/src/components/qti-substring/qti-substring.ts";
166
- import type { QtiStringMatch } from "packages/qti-processing/src/components/qti-string-match/qti-string-match.ts";
167
- import type {
168
- QtiSum,
169
- QtiSumExpression,
170
- } from "packages/qti-processing/src/components/qti-sum/qti-sum.ts";
171
- import type { QtiTruncate } from "packages/qti-processing/src/components/qti-truncate/qti-truncate.ts";
172
- import type { QtiVariable } from "packages/qti-processing/src/components/qti-variable/qti-variable.ts";
173
- import type { QtiRandomInteger } from "packages/qti-processing/src/components/qti-random-integer/qti-random-integer.ts";
174
- import type { QtiRandom } from "packages/qti-processing/src/components/qti-random/qti-random.ts";
175
- import type { QtiDelete } from "packages/qti-processing/src/components/qti-delete/qti-delete.ts";
176
- import type { QtiIndex } from "packages/qti-processing/src/components/qti-index/qti-index.ts";
177
- import type { QtiLookupOutcomeValue } from "packages/qti-processing/src/components/qti-lookup-outcome-value/qti-lookup-outcome-value.ts";
178
- import type { QtiResponseCondition } from "packages/qti-processing/src/components/qti-response-condition/qti-response-condition.ts";
179
- import type { QtiResponseElse } from "packages/qti-processing/src/components/qti-response-else/qti-response-else.ts";
180
- import type { QtiResponseIf } from "packages/qti-processing/src/components/qti-response-if/qti-response-if.ts";
181
- import type { QtiResponseElseIf } from "packages/qti-processing/src/components/qti-response-else-if/qti-response-else-if.ts";
153
+ } from "./processing.js";
154
+ import type { QtiStatsOperator } from "./processing.js";
155
+ import type { QtiSubtract, qtiSubtractMixin } from "./processing.js";
156
+ import type { QtiSubstring } from "./processing.js";
157
+ import type { QtiStringMatch } from "./processing.js";
158
+ import type { QtiSum, QtiSumExpression } from "./processing.js";
159
+ import type { QtiTruncate } from "./processing.js";
160
+ import type { QtiVariable } from "./processing.js";
161
+ import type { QtiRandomInteger } from "./processing.js";
162
+ import type { QtiRandom } from "./processing.js";
163
+ import type { QtiDelete } from "./processing.js";
164
+ import type { QtiIndex } from "./processing.js";
165
+ import type { QtiLookupOutcomeValue } from "./processing.js";
166
+ import type { QtiResponseCondition } from "./processing.js";
167
+ import type { QtiResponseElse } from "./processing.js";
168
+ import type { QtiResponseIf } from "./processing.js";
169
+ import type { QtiResponseElseIf } from "./processing.js";
182
170
  import type {
183
171
  QtiSetOutcomeValue,
184
172
  QtiSetOutcomeValueRule,
185
- } from "packages/qti-processing/src/components/qti-set-outcome-value/qti-set-outcome-value.ts";
186
- import type { QtiAssessmentItemCorrection } from "packages/qti-corrections/src/components/qti-assessment-item-correction.ts";
187
- import type { QtiItemCorrection } from "packages/qti-corrections/src/components/qti-item-correction.ts";
173
+ } from "./processing.js";
174
+ import type { QtiAssessmentItemCorrection } from "./corrections.js";
175
+ import type { QtiItemCorrection } from "./corrections.js";
188
176
  import type {
189
177
  QtiTestCorrection,
190
178
  TestNavigationCorrection,
191
179
  TestCheckItemCorrection,
192
- } from "packages/qti-corrections/src/components/test-correction-elements.ts";
193
- import type { ItemCorrectResponseMode } from "packages/qti-corrections/src/components/item-correct-response-mode/item-correct-response-mode.ts";
194
- import type { ItemShowCandidateCorrection } from "packages/qti-corrections/src/components/item-show-candidate-correction/item-show-candidate-correction.ts";
195
- import type { ItemShowCorrectResponse } from "packages/qti-corrections/src/components/item-show-correct-response/item-show-correct-response.ts";
196
- import type { TestShowCorrectResponse } from "packages/qti-corrections/src/components/test-show-correct-response/test-show-correct-response.ts";
180
+ } from "./corrections.js";
181
+ import type { ItemCorrectResponseMode } from "./corrections.js";
182
+ import type { ItemShowCandidateCorrection } from "./corrections.js";
183
+ import type { ItemShowCorrectResponse } from "./corrections.js";
184
+ import type { TestShowCorrectResponse } from "./corrections.js";
197
185
 
198
186
  /**
199
187
  * This type can be used to create scoped tags for your components.
@@ -246,7 +234,7 @@ type BaseProps<T extends HTMLElement> = {
246
234
  /** Contains a space-separated list of the part names of the element. Part names allows CSS to select and style specific elements in a shadow tree via the ::part pseudo-element. */
247
235
  part?: string;
248
236
  /** Use the ref attribute with a variable to assign a DOM element to the variable once the element is rendered. */
249
- ref?: T | ((e: T) => void);
237
+ ref?: T | ((e: T) => void) | { current: T | null } | null;
250
238
  /** Adds a reference for a custom element slot */
251
239
  slot?: string;
252
240
  /** Prop for setting inline styles */
@@ -867,6 +855,14 @@ export type QtiAssessmentSectionProps = {
867
855
  /** */
868
856
  keepTogether?: QtiAssessmentSection["keepTogether"];
869
857
  /** */
858
+ "navigation-mode"?: QtiAssessmentSection["navigationMode"];
859
+ /** */
860
+ navigationMode?: QtiAssessmentSection["navigationMode"];
861
+ /** */
862
+ "submission-mode"?: QtiAssessmentSection["submissionMode"];
863
+ /** */
864
+ submissionMode?: QtiAssessmentSection["submissionMode"];
865
+ /** */
870
866
  title?: QtiAssessmentSection["title"];
871
867
  /** */
872
868
  _testContext?: QtiAssessmentSection["_testContext"];
@@ -889,39 +885,19 @@ export type QtiAssessmentSectionSolidJsProps = {
889
885
  /** */
890
886
  "prop:keepTogether"?: QtiAssessmentSection["keepTogether"];
891
887
  /** */
892
- "prop:title"?: QtiAssessmentSection["title"];
893
- /** */
894
- "prop:_testContext"?: QtiAssessmentSection["_testContext"];
895
- /** */
896
- "on:qti-assessment-section-connected"?: (e: Event) => void;
897
-
898
- /** Set the innerHTML of the element */
899
- innerHTML?: string;
900
- /** Set the textContent of the element */
901
- textContent?: string | number;
902
- };
903
-
904
- export type QtiAssessmentTestProps = {
905
- /** */
906
- identifier?: QtiAssessmentTest["identifier"];
907
- /** */
908
- title?: QtiAssessmentTest["title"];
888
+ "attr:navigation-mode"?: QtiAssessmentSection["navigationMode"];
909
889
  /** */
910
- _testContext?: QtiAssessmentTest["_testContext"];
911
-
890
+ "prop:navigationMode"?: QtiAssessmentSection["navigationMode"];
912
891
  /** */
913
- "onqti-assessment-test-connected"?: (e: CustomEvent) => void;
914
- };
915
-
916
- export type QtiAssessmentTestSolidJsProps = {
892
+ "attr:submission-mode"?: QtiAssessmentSection["submissionMode"];
917
893
  /** */
918
- "prop:identifier"?: QtiAssessmentTest["identifier"];
894
+ "prop:submissionMode"?: QtiAssessmentSection["submissionMode"];
919
895
  /** */
920
- "prop:title"?: QtiAssessmentTest["title"];
896
+ "prop:title"?: QtiAssessmentSection["title"];
921
897
  /** */
922
- "prop:_testContext"?: QtiAssessmentTest["_testContext"];
898
+ "prop:_testContext"?: QtiAssessmentSection["_testContext"];
923
899
  /** */
924
- "on:qti-assessment-test-connected"?: (e: CustomEvent) => void;
900
+ "on:qti-assessment-section-connected"?: (e: Event) => void;
925
901
 
926
902
  /** Set the innerHTML of the element */
927
903
  innerHTML?: string;
@@ -973,6 +949,34 @@ export type QtiTestPartSolidJsProps = {
973
949
  textContent?: string | number;
974
950
  };
975
951
 
952
+ export type QtiAssessmentTestProps = {
953
+ /** */
954
+ identifier?: QtiAssessmentTest["identifier"];
955
+ /** */
956
+ title?: QtiAssessmentTest["title"];
957
+ /** */
958
+ _testContext?: QtiAssessmentTest["_testContext"];
959
+
960
+ /** */
961
+ "onqti-assessment-test-connected"?: (e: CustomEvent) => void;
962
+ };
963
+
964
+ export type QtiAssessmentTestSolidJsProps = {
965
+ /** */
966
+ "prop:identifier"?: QtiAssessmentTest["identifier"];
967
+ /** */
968
+ "prop:title"?: QtiAssessmentTest["title"];
969
+ /** */
970
+ "prop:_testContext"?: QtiAssessmentTest["_testContext"];
971
+ /** */
972
+ "on:qti-assessment-test-connected"?: (e: CustomEvent) => void;
973
+
974
+ /** Set the innerHTML of the element */
975
+ innerHTML?: string;
976
+ /** Set the textContent of the element */
977
+ textContent?: string | number;
978
+ };
979
+
976
980
  export type TestNavigationProps = {
977
981
  /** */
978
982
  identifier?: TestNavigation["identifier"];
@@ -1113,6 +1117,25 @@ export type QtiTestFeedbackSolidJsProps = {
1113
1117
  textContent?: string | number;
1114
1118
  };
1115
1119
 
1120
+ export type QtiTestVariablesProps = {
1121
+ /** */
1122
+ _testContext?: QtiTestVariables["_testContext"];
1123
+ /** */
1124
+ getVariables?: QtiTestVariables["getVariables"];
1125
+ };
1126
+
1127
+ export type QtiTestVariablesSolidJsProps = {
1128
+ /** */
1129
+ "prop:_testContext"?: QtiTestVariables["_testContext"];
1130
+ /** */
1131
+ "prop:getVariables"?: QtiTestVariables["getVariables"];
1132
+
1133
+ /** Set the innerHTML of the element */
1134
+ innerHTML?: string;
1135
+ /** Set the textContent of the element */
1136
+ textContent?: string | number;
1137
+ };
1138
+
1116
1139
  export type TestNextProps = {
1117
1140
  /** */
1118
1141
  disabled?: TestNext["_internalDisabled"];
@@ -1509,25 +1532,6 @@ export type TestTtsNextSolidJsProps = {
1509
1532
  textContent?: string | number;
1510
1533
  };
1511
1534
 
1512
- export type QtiTestVariablesProps = {
1513
- /** */
1514
- _testContext?: QtiTestVariables["_testContext"];
1515
- /** */
1516
- getVariables?: QtiTestVariables["getVariables"];
1517
- };
1518
-
1519
- export type QtiTestVariablesSolidJsProps = {
1520
- /** */
1521
- "prop:_testContext"?: QtiTestVariables["_testContext"];
1522
- /** */
1523
- "prop:getVariables"?: QtiTestVariables["getVariables"];
1524
-
1525
- /** Set the innerHTML of the element */
1526
- innerHTML?: string;
1527
- /** Set the textContent of the element */
1528
- textContent?: string | number;
1529
- };
1530
-
1531
1535
  export type QtiSimpleAssociableChoiceProps = {
1532
1536
  /** Required. Value recorded in the response pair when this choice participates in an association. */
1533
1537
  identifier?: QtiSimpleAssociableChoice["identifier"];
@@ -1626,66 +1630,23 @@ export type QtiAssociateInteractionSolidJsProps = {
1626
1630
  textContent?: string | number;
1627
1631
  };
1628
1632
 
1629
- export type QtiSimpleChoiceProps = {
1630
- /** Required. Value recorded in the response when this choice is selected, or its position when used for ordering. */
1631
- identifier?: QtiSimpleChoice["identifier"];
1632
- /** Pins this choice in place when the enclosing interaction is shuffled. */
1633
- fixed?: QtiSimpleChoice["fixed"];
1634
- /** Identifier of a template variable controlling this choice's visibility. */
1635
- "template-identifier"?: QtiSimpleChoice["templateIdentifier"];
1636
- /** Identifier of a template variable controlling this choice's visibility. */
1637
- templateIdentifier?: QtiSimpleChoice["templateIdentifier"];
1638
- /** How `template-identifier` controls visibility. */
1639
- "show-hide"?: QtiSimpleChoice["showHide"];
1640
- /** How `template-identifier` controls visibility. */
1641
- showHide?: QtiSimpleChoice["showHide"];
1642
- /** */
1643
- tabindex?: QtiSimpleChoice["tabIndex"];
1644
- /** */
1645
- tabIndex?: QtiSimpleChoice["tabIndex"];
1646
- /** */
1647
- "aria-disabled"?: QtiSimpleChoice["disabled"];
1648
- /** */
1649
- disabled?: QtiSimpleChoice["disabled"];
1650
- /** */
1651
- "aria-readonly"?: QtiSimpleChoice["readonly"];
1652
- /** */
1653
- readonly?: QtiSimpleChoice["readonly"];
1633
+ export type QtiAssociableHotspotProps = {
1654
1634
  /** */
1655
- marker?: QtiSimpleChoice["marker"];
1635
+ identifier?: QtiAssociableHotspot["identifier"];
1636
+ /** Carries `:state(filled)` while the hotspot holds a chip. */
1637
+ internals?: QtiAssociableHotspot["internals"];
1638
+
1656
1639
  /** */
1657
- internals?: QtiSimpleChoice["internals"];
1640
+ "onqti-register-hotspot"?: (e: CustomEvent) => void;
1658
1641
  };
1659
1642
 
1660
- export type QtiSimpleChoiceSolidJsProps = {
1661
- /** Required. Value recorded in the response when this choice is selected, or its position when used for ordering. */
1662
- "prop:identifier"?: QtiSimpleChoice["identifier"];
1663
- /** Pins this choice in place when the enclosing interaction is shuffled. */
1664
- "prop:fixed"?: QtiSimpleChoice["fixed"];
1665
- /** Identifier of a template variable controlling this choice's visibility. */
1666
- "attr:template-identifier"?: QtiSimpleChoice["templateIdentifier"];
1667
- /** Identifier of a template variable controlling this choice's visibility. */
1668
- "prop:templateIdentifier"?: QtiSimpleChoice["templateIdentifier"];
1669
- /** How `template-identifier` controls visibility. */
1670
- "attr:show-hide"?: QtiSimpleChoice["showHide"];
1671
- /** How `template-identifier` controls visibility. */
1672
- "prop:showHide"?: QtiSimpleChoice["showHide"];
1673
- /** */
1674
- "attr:tabindex"?: QtiSimpleChoice["tabIndex"];
1675
- /** */
1676
- "prop:tabIndex"?: QtiSimpleChoice["tabIndex"];
1677
- /** */
1678
- "bool:aria-disabled"?: QtiSimpleChoice["disabled"];
1679
- /** */
1680
- "prop:disabled"?: QtiSimpleChoice["disabled"];
1681
- /** */
1682
- "bool:aria-readonly"?: QtiSimpleChoice["readonly"];
1683
- /** */
1684
- "prop:readonly"?: QtiSimpleChoice["readonly"];
1643
+ export type QtiAssociableHotspotSolidJsProps = {
1685
1644
  /** */
1686
- "prop:marker"?: QtiSimpleChoice["marker"];
1645
+ "prop:identifier"?: QtiAssociableHotspot["identifier"];
1646
+ /** Carries `:state(filled)` while the hotspot holds a chip. */
1647
+ "prop:internals"?: QtiAssociableHotspot["internals"];
1687
1648
  /** */
1688
- "prop:internals"?: QtiSimpleChoice["internals"];
1649
+ "on:qti-register-hotspot"?: (e: CustomEvent) => void;
1689
1650
 
1690
1651
  /** Set the innerHTML of the element */
1691
1652
  innerHTML?: string;
@@ -1693,208 +1654,58 @@ export type QtiSimpleChoiceSolidJsProps = {
1693
1654
  textContent?: string | number;
1694
1655
  };
1695
1656
 
1696
- export type QtiChoiceInteractionProps = {
1697
- /** Required. Identifier of the bound response variable. */
1698
- "response-identifier"?: QtiChoiceInteraction["responseIdentifier"];
1699
- /** Required. Identifier of the bound response variable. */
1700
- responseIdentifier?: QtiChoiceInteraction["responseIdentifier"];
1701
- /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
1702
- "max-choices"?: QtiChoiceInteraction["maxChoices"];
1703
- /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
1704
- maxChoices?: QtiChoiceInteraction["maxChoices"];
1705
- /** Minimum selectable choices for a valid response. */
1706
- "min-choices"?: QtiChoiceInteraction["minChoices"];
1707
- /** Minimum selectable choices for a valid response. */
1708
- minChoices?: QtiChoiceInteraction["minChoices"];
1709
- /** @deprecated , use 'qti-orientation-horizontal' or 'qti-orientation-vertical' instead - Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary. */
1710
- orientation?: QtiChoiceInteraction["orientation"];
1711
- /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
1712
- shuffle?: unknown;
1713
- /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
1657
+ export type QtiGapProps = {
1658
+ /** Required. Value recorded as the gap side of the response pair. */
1659
+ identifier?: QtiGap["identifier"];
1660
+ /** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1661
+ "match-max"?: unknown;
1662
+ /** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1714
1663
  undefined?: unknown;
1715
- /** QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`. */
1716
- class?: QtiChoiceInteraction["class"];
1717
- /** */
1718
- response?: QtiChoiceInteraction["response"];
1719
- /** */
1720
- disabled?: QtiChoiceInteraction["disabled"];
1721
- /** */
1722
- readonly?: QtiChoiceInteraction["readonly"];
1723
- /** */
1724
- name?: QtiChoiceInteraction["name"];
1664
+ /** Minimum tokens this gap must hold. */
1665
+ "match-min"?: unknown;
1666
+ /** Not implemented. Whether this gap must be filled for the response to be valid. */
1667
+ required?: unknown;
1668
+ /** Not implemented. Identifier of a template variable controlling this gap's visibility. */
1669
+ "template-identifier"?: unknown;
1670
+ /** Not implemented. How `template-identifier` controls visibility. */
1671
+ "show-hide"?: unknown;
1725
1672
  /** */
1726
- value?: QtiChoiceInteraction["value"];
1727
- /** Delivery configuration, from the nearest provider `qti-test` or `qti-item`.
1728
-
1729
- **Public so it can be assigned directly, which is the development-time route.** An interaction
1730
- has to work standalone, and in a story or a spec there is usually no provider above it — so
1731
- setting the field is all that is needed:
1673
+ tabindex?: QtiGap["tabindex"];
1674
+ /** Carries `:state(filled)` while the gap holds a chip. */
1675
+ internals?: QtiGap["internals"];
1676
+ };
1732
1677
 
1733
- orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
1678
+ export type QtiGapSolidJsProps = {
1679
+ /** Required. Value recorded as the gap side of the response pair. */
1680
+ "prop:identifier"?: QtiGap["identifier"];
1681
+ /** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1682
+ "attr:match-max"?: unknown;
1683
+ /** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1684
+ "prop:undefined"?: unknown;
1685
+ /** Minimum tokens this gap must hold. */
1686
+ "attr:match-min"?: unknown;
1687
+ /** Not implemented. Whether this gap must be filled for the response to be valid. */
1688
+ "bool:required"?: unknown;
1689
+ /** Not implemented. Identifier of a template variable controlling this gap's visibility. */
1690
+ "attr:template-identifier"?: unknown;
1691
+ /** Not implemented. How `template-identifier` controls visibility. */
1692
+ "attr:show-hide"?: unknown;
1693
+ /** */
1694
+ "prop:tabindex"?: QtiGap["tabindex"];
1695
+ /** Carries `:state(filled)` while the gap holds a chip. */
1696
+ "prop:internals"?: QtiGap["internals"];
1734
1697
 
1735
- With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
1736
- provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
1737
- field. There is no merging — set the value on the provider in that case.
1698
+ /** Set the innerHTML of the element */
1699
+ innerHTML?: string;
1700
+ /** Set the textContent of the element */
1701
+ textContent?: string | number;
1702
+ };
1738
1703
 
1739
- In a lit-html template, bind it as a property rather than assigning after the fact:
1740
-
1741
- html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
1742
-
1743
- The binding is committed on the detached template clone, before the fragment is inserted, so it
1744
- is in place by `connectedCallback` — which matters for anything that reads config on connect.
1745
-
1746
- It was `protected`, which fooled nobody: every caller reached it anyway through an
1747
- `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
1748
- casts, rather than pretending at an encapsulation the type system was the only thing enforcing. */
1749
- configContext?: QtiChoiceInteraction["configContext"];
1750
-
1751
- /** */
1752
- "onqti-register-interaction"?: (e: CustomEvent) => void;
1753
- /** */
1754
- "onqti-interaction-response"?: (e: CustomEvent) => void;
1755
- };
1756
-
1757
- export type QtiChoiceInteractionSolidJsProps = {
1758
- /** Required. Identifier of the bound response variable. */
1759
- "attr:response-identifier"?: QtiChoiceInteraction["responseIdentifier"];
1760
- /** Required. Identifier of the bound response variable. */
1761
- "prop:responseIdentifier"?: QtiChoiceInteraction["responseIdentifier"];
1762
- /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
1763
- "attr:max-choices"?: QtiChoiceInteraction["maxChoices"];
1764
- /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
1765
- "prop:maxChoices"?: QtiChoiceInteraction["maxChoices"];
1766
- /** Minimum selectable choices for a valid response. */
1767
- "attr:min-choices"?: QtiChoiceInteraction["minChoices"];
1768
- /** Minimum selectable choices for a valid response. */
1769
- "prop:minChoices"?: QtiChoiceInteraction["minChoices"];
1770
- /** @deprecated , use 'qti-orientation-horizontal' or 'qti-orientation-vertical' instead - Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary. */
1771
- "prop:orientation"?: QtiChoiceInteraction["orientation"];
1772
- /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
1773
- "bool:shuffle"?: unknown;
1774
- /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
1775
- "prop:undefined"?: unknown;
1776
- /** QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`. */
1777
- "prop:class"?: QtiChoiceInteraction["class"];
1778
- /** */
1779
- "prop:response"?: QtiChoiceInteraction["response"];
1780
- /** */
1781
- "prop:disabled"?: QtiChoiceInteraction["disabled"];
1782
- /** */
1783
- "prop:readonly"?: QtiChoiceInteraction["readonly"];
1784
- /** */
1785
- "prop:name"?: QtiChoiceInteraction["name"];
1786
- /** */
1787
- "prop:value"?: QtiChoiceInteraction["value"];
1788
- /** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
1789
-
1790
- **Public so it can be assigned directly, which is the development-time route.** An interaction
1791
- has to work standalone, and in a story or a spec there is usually no provider above it — so
1792
- setting the field is all that is needed:
1793
-
1794
- orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
1795
-
1796
- With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
1797
- provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
1798
- field. There is no merging — set the value on the provider in that case.
1799
-
1800
- In a lit-html template, bind it as a property rather than assigning after the fact:
1801
-
1802
- html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
1803
-
1804
- The binding is committed on the detached template clone, before the fragment is inserted, so it
1805
- is in place by `connectedCallback` — which matters for anything that reads config on connect.
1806
-
1807
- It was `protected`, which fooled nobody: every caller reached it anyway through an
1808
- `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
1809
- casts, rather than pretending at an encapsulation the type system was the only thing enforcing. */
1810
- "prop:configContext"?: QtiChoiceInteraction["configContext"];
1811
- /** */
1812
- "on:qti-register-interaction"?: (e: CustomEvent) => void;
1813
- /** */
1814
- "on:qti-interaction-response"?: (e: CustomEvent) => void;
1815
-
1816
- /** Set the innerHTML of the element */
1817
- innerHTML?: string;
1818
- /** Set the textContent of the element */
1819
- textContent?: string | number;
1820
- };
1821
-
1822
- export type QtiAssociableHotspotProps = {
1823
- /** */
1824
- identifier?: QtiAssociableHotspot["identifier"];
1825
- /** Carries `:state(filled)` while the hotspot holds a chip. */
1826
- internals?: QtiAssociableHotspot["internals"];
1827
-
1828
- /** */
1829
- "onqti-register-hotspot"?: (e: CustomEvent) => void;
1830
- };
1831
-
1832
- export type QtiAssociableHotspotSolidJsProps = {
1833
- /** */
1834
- "prop:identifier"?: QtiAssociableHotspot["identifier"];
1835
- /** Carries `:state(filled)` while the hotspot holds a chip. */
1836
- "prop:internals"?: QtiAssociableHotspot["internals"];
1837
- /** */
1838
- "on:qti-register-hotspot"?: (e: CustomEvent) => void;
1839
-
1840
- /** Set the innerHTML of the element */
1841
- innerHTML?: string;
1842
- /** Set the textContent of the element */
1843
- textContent?: string | number;
1844
- };
1845
-
1846
- export type QtiGapProps = {
1847
- /** Required. Value recorded as the gap side of the response pair. */
1848
- identifier?: QtiGap["identifier"];
1849
- /** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1850
- "match-max"?: unknown;
1851
- /** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1852
- undefined?: unknown;
1853
- /** Minimum tokens this gap must hold. */
1854
- "match-min"?: unknown;
1855
- /** Not implemented. Whether this gap must be filled for the response to be valid. */
1856
- required?: unknown;
1857
- /** Not implemented. Identifier of a template variable controlling this gap's visibility. */
1858
- "template-identifier"?: unknown;
1859
- /** Not implemented. How `template-identifier` controls visibility. */
1860
- "show-hide"?: unknown;
1861
- /** */
1862
- tabindex?: QtiGap["tabindex"];
1863
- /** Carries `:state(filled)` while the gap holds a chip. */
1864
- internals?: QtiGap["internals"];
1865
- };
1866
-
1867
- export type QtiGapSolidJsProps = {
1868
- /** Required. Value recorded as the gap side of the response pair. */
1869
- "prop:identifier"?: QtiGap["identifier"];
1870
- /** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1871
- "attr:match-max"?: unknown;
1872
- /** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1873
- "prop:undefined"?: unknown;
1874
- /** Minimum tokens this gap must hold. */
1875
- "attr:match-min"?: unknown;
1876
- /** Not implemented. Whether this gap must be filled for the response to be valid. */
1877
- "bool:required"?: unknown;
1878
- /** Not implemented. Identifier of a template variable controlling this gap's visibility. */
1879
- "attr:template-identifier"?: unknown;
1880
- /** Not implemented. How `template-identifier` controls visibility. */
1881
- "attr:show-hide"?: unknown;
1882
- /** */
1883
- "prop:tabindex"?: QtiGap["tabindex"];
1884
- /** Carries `:state(filled)` while the gap holds a chip. */
1885
- "prop:internals"?: QtiGap["internals"];
1886
-
1887
- /** Set the innerHTML of the element */
1888
- innerHTML?: string;
1889
- /** Set the textContent of the element */
1890
- textContent?: string | number;
1891
- };
1892
-
1893
- export type QtiGapImgProps = {
1894
- /** */
1895
- tabindex?: QtiGapImg["tabindex"];
1896
- /** `qti-gap-img` is a draggable chip, so it needs ElementInternals to carry the drag states
1897
- (`dragging`, `placeholder`). It works without a shadow root.
1704
+ export type QtiGapImgProps = {
1705
+ /** */
1706
+ tabindex?: QtiGapImg["tabindex"];
1707
+ /** `qti-gap-img` is a draggable chip, so it needs ElementInternals to carry the drag states
1708
+ (`dragging`, `placeholder`). It works without a shadow root.
1898
1709
 
1899
1710
  NOTE: this element never calls `super.connectedCallback()`, so Lit never enables updating
1900
1711
  and it has no shadow root — which makes `qti-gap-img.styles.ts` dead code. Fixing that means
@@ -2169,33 +1980,226 @@ export type QtiPromptSolidJsProps = {
2169
1980
  textContent?: string | number;
2170
1981
  };
2171
1982
 
2172
- export type QtiCustomInteractionProps = {
1983
+ export type QtiSimpleChoiceProps = {
1984
+ /** Required. Value recorded in the response when this choice is selected, or its position when used for ordering. */
1985
+ identifier?: QtiSimpleChoice["identifier"];
1986
+ /** Pins this choice in place when the enclosing interaction is shuffled. */
1987
+ fixed?: QtiSimpleChoice["fixed"];
1988
+ /** Identifier of a template variable controlling this choice's visibility. */
1989
+ "template-identifier"?: QtiSimpleChoice["templateIdentifier"];
1990
+ /** Identifier of a template variable controlling this choice's visibility. */
1991
+ templateIdentifier?: QtiSimpleChoice["templateIdentifier"];
1992
+ /** How `template-identifier` controls visibility. */
1993
+ "show-hide"?: QtiSimpleChoice["showHide"];
1994
+ /** How `template-identifier` controls visibility. */
1995
+ showHide?: QtiSimpleChoice["showHide"];
2173
1996
  /** */
2174
- data?: QtiCustomInteraction["data"];
1997
+ tabindex?: QtiSimpleChoice["tabIndex"];
2175
1998
  /** */
2176
- "data-base-item"?: QtiCustomInteraction["baseItemUrl"];
1999
+ tabIndex?: QtiSimpleChoice["tabIndex"];
2177
2000
  /** */
2178
- baseItemUrl?: QtiCustomInteraction["baseItemUrl"];
2001
+ "aria-disabled"?: QtiSimpleChoice["disabled"];
2179
2002
  /** */
2180
- "data-base-ref"?: QtiCustomInteraction["baseRefUrl"];
2003
+ disabled?: QtiSimpleChoice["disabled"];
2181
2004
  /** */
2182
- baseRefUrl?: QtiCustomInteraction["baseRefUrl"];
2005
+ "aria-readonly"?: QtiSimpleChoice["readonly"];
2183
2006
  /** */
2184
- id?: QtiCustomInteraction["id"];
2007
+ readonly?: QtiSimpleChoice["readonly"];
2185
2008
  /** */
2186
- "response-identifier"?: QtiCustomInteraction["responseIdentifier"];
2009
+ marker?: QtiSimpleChoice["marker"];
2187
2010
  /** */
2188
- responseIdentifier?: QtiCustomInteraction["responseIdentifier"];
2011
+ internals?: QtiSimpleChoice["internals"];
2012
+ };
2013
+
2014
+ export type QtiSimpleChoiceSolidJsProps = {
2015
+ /** Required. Value recorded in the response when this choice is selected, or its position when used for ordering. */
2016
+ "prop:identifier"?: QtiSimpleChoice["identifier"];
2017
+ /** Pins this choice in place when the enclosing interaction is shuffled. */
2018
+ "prop:fixed"?: QtiSimpleChoice["fixed"];
2019
+ /** Identifier of a template variable controlling this choice's visibility. */
2020
+ "attr:template-identifier"?: QtiSimpleChoice["templateIdentifier"];
2021
+ /** Identifier of a template variable controlling this choice's visibility. */
2022
+ "prop:templateIdentifier"?: QtiSimpleChoice["templateIdentifier"];
2023
+ /** How `template-identifier` controls visibility. */
2024
+ "attr:show-hide"?: QtiSimpleChoice["showHide"];
2025
+ /** How `template-identifier` controls visibility. */
2026
+ "prop:showHide"?: QtiSimpleChoice["showHide"];
2189
2027
  /** */
2190
- disabled?: QtiCustomInteraction["disabled"];
2028
+ "attr:tabindex"?: QtiSimpleChoice["tabIndex"];
2191
2029
  /** */
2192
- readonly?: QtiCustomInteraction["readonly"];
2030
+ "prop:tabIndex"?: QtiSimpleChoice["tabIndex"];
2193
2031
  /** */
2194
- name?: QtiCustomInteraction["name"];
2032
+ "bool:aria-disabled"?: QtiSimpleChoice["disabled"];
2195
2033
  /** */
2196
- manifest?: QtiCustomInteraction["manifest"];
2034
+ "prop:disabled"?: QtiSimpleChoice["disabled"];
2197
2035
  /** */
2198
- response?: QtiCustomInteraction["response"];
2036
+ "bool:aria-readonly"?: QtiSimpleChoice["readonly"];
2037
+ /** */
2038
+ "prop:readonly"?: QtiSimpleChoice["readonly"];
2039
+ /** */
2040
+ "prop:marker"?: QtiSimpleChoice["marker"];
2041
+ /** */
2042
+ "prop:internals"?: QtiSimpleChoice["internals"];
2043
+
2044
+ /** Set the innerHTML of the element */
2045
+ innerHTML?: string;
2046
+ /** Set the textContent of the element */
2047
+ textContent?: string | number;
2048
+ };
2049
+
2050
+ export type QtiChoiceInteractionProps = {
2051
+ /** Required. Identifier of the bound response variable. */
2052
+ "response-identifier"?: QtiChoiceInteraction["responseIdentifier"];
2053
+ /** Required. Identifier of the bound response variable. */
2054
+ responseIdentifier?: QtiChoiceInteraction["responseIdentifier"];
2055
+ /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
2056
+ "max-choices"?: QtiChoiceInteraction["maxChoices"];
2057
+ /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
2058
+ maxChoices?: QtiChoiceInteraction["maxChoices"];
2059
+ /** Minimum selectable choices for a valid response. */
2060
+ "min-choices"?: QtiChoiceInteraction["minChoices"];
2061
+ /** Minimum selectable choices for a valid response. */
2062
+ minChoices?: QtiChoiceInteraction["minChoices"];
2063
+ /** @deprecated , use 'qti-orientation-horizontal' or 'qti-orientation-vertical' instead - Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary. */
2064
+ orientation?: QtiChoiceInteraction["orientation"];
2065
+ /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
2066
+ shuffle?: unknown;
2067
+ /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
2068
+ undefined?: unknown;
2069
+ /** QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`. */
2070
+ class?: QtiChoiceInteraction["class"];
2071
+ /** */
2072
+ response?: QtiChoiceInteraction["response"];
2073
+ /** */
2074
+ disabled?: QtiChoiceInteraction["disabled"];
2075
+ /** */
2076
+ readonly?: QtiChoiceInteraction["readonly"];
2077
+ /** */
2078
+ name?: QtiChoiceInteraction["name"];
2079
+ /** */
2080
+ value?: QtiChoiceInteraction["value"];
2081
+ /** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
2082
+
2083
+ **Public so it can be assigned directly, which is the development-time route.** An interaction
2084
+ has to work standalone, and in a story or a spec there is usually no provider above it — so
2085
+ setting the field is all that is needed:
2086
+
2087
+ orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
2088
+
2089
+ With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
2090
+ provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
2091
+ field. There is no merging — set the value on the provider in that case.
2092
+
2093
+ In a lit-html template, bind it as a property rather than assigning after the fact:
2094
+
2095
+ html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
2096
+
2097
+ The binding is committed on the detached template clone, before the fragment is inserted, so it
2098
+ is in place by `connectedCallback` — which matters for anything that reads config on connect.
2099
+
2100
+ It was `protected`, which fooled nobody: every caller reached it anyway through an
2101
+ `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
2102
+ casts, rather than pretending at an encapsulation the type system was the only thing enforcing. */
2103
+ configContext?: QtiChoiceInteraction["configContext"];
2104
+
2105
+ /** */
2106
+ "onqti-register-interaction"?: (e: CustomEvent) => void;
2107
+ /** */
2108
+ "onqti-interaction-response"?: (e: CustomEvent) => void;
2109
+ };
2110
+
2111
+ export type QtiChoiceInteractionSolidJsProps = {
2112
+ /** Required. Identifier of the bound response variable. */
2113
+ "attr:response-identifier"?: QtiChoiceInteraction["responseIdentifier"];
2114
+ /** Required. Identifier of the bound response variable. */
2115
+ "prop:responseIdentifier"?: QtiChoiceInteraction["responseIdentifier"];
2116
+ /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
2117
+ "attr:max-choices"?: QtiChoiceInteraction["maxChoices"];
2118
+ /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
2119
+ "prop:maxChoices"?: QtiChoiceInteraction["maxChoices"];
2120
+ /** Minimum selectable choices for a valid response. */
2121
+ "attr:min-choices"?: QtiChoiceInteraction["minChoices"];
2122
+ /** Minimum selectable choices for a valid response. */
2123
+ "prop:minChoices"?: QtiChoiceInteraction["minChoices"];
2124
+ /** @deprecated , use 'qti-orientation-horizontal' or 'qti-orientation-vertical' instead - Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary. */
2125
+ "prop:orientation"?: QtiChoiceInteraction["orientation"];
2126
+ /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
2127
+ "bool:shuffle"?: unknown;
2128
+ /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
2129
+ "prop:undefined"?: unknown;
2130
+ /** QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`. */
2131
+ "prop:class"?: QtiChoiceInteraction["class"];
2132
+ /** */
2133
+ "prop:response"?: QtiChoiceInteraction["response"];
2134
+ /** */
2135
+ "prop:disabled"?: QtiChoiceInteraction["disabled"];
2136
+ /** */
2137
+ "prop:readonly"?: QtiChoiceInteraction["readonly"];
2138
+ /** */
2139
+ "prop:name"?: QtiChoiceInteraction["name"];
2140
+ /** */
2141
+ "prop:value"?: QtiChoiceInteraction["value"];
2142
+ /** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
2143
+
2144
+ **Public so it can be assigned directly, which is the development-time route.** An interaction
2145
+ has to work standalone, and in a story or a spec there is usually no provider above it — so
2146
+ setting the field is all that is needed:
2147
+
2148
+ orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
2149
+
2150
+ With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
2151
+ provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
2152
+ field. There is no merging — set the value on the provider in that case.
2153
+
2154
+ In a lit-html template, bind it as a property rather than assigning after the fact:
2155
+
2156
+ html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
2157
+
2158
+ The binding is committed on the detached template clone, before the fragment is inserted, so it
2159
+ is in place by `connectedCallback` — which matters for anything that reads config on connect.
2160
+
2161
+ It was `protected`, which fooled nobody: every caller reached it anyway through an
2162
+ `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
2163
+ casts, rather than pretending at an encapsulation the type system was the only thing enforcing. */
2164
+ "prop:configContext"?: QtiChoiceInteraction["configContext"];
2165
+ /** */
2166
+ "on:qti-register-interaction"?: (e: CustomEvent) => void;
2167
+ /** */
2168
+ "on:qti-interaction-response"?: (e: CustomEvent) => void;
2169
+
2170
+ /** Set the innerHTML of the element */
2171
+ innerHTML?: string;
2172
+ /** Set the textContent of the element */
2173
+ textContent?: string | number;
2174
+ };
2175
+
2176
+ export type QtiCustomInteractionProps = {
2177
+ /** */
2178
+ data?: QtiCustomInteraction["data"];
2179
+ /** */
2180
+ "data-base-item"?: QtiCustomInteraction["baseItemUrl"];
2181
+ /** */
2182
+ baseItemUrl?: QtiCustomInteraction["baseItemUrl"];
2183
+ /** */
2184
+ "data-base-ref"?: QtiCustomInteraction["baseRefUrl"];
2185
+ /** */
2186
+ baseRefUrl?: QtiCustomInteraction["baseRefUrl"];
2187
+ /** */
2188
+ id?: QtiCustomInteraction["id"];
2189
+ /** */
2190
+ "response-identifier"?: QtiCustomInteraction["responseIdentifier"];
2191
+ /** */
2192
+ responseIdentifier?: QtiCustomInteraction["responseIdentifier"];
2193
+ /** */
2194
+ disabled?: QtiCustomInteraction["disabled"];
2195
+ /** */
2196
+ readonly?: QtiCustomInteraction["readonly"];
2197
+ /** */
2198
+ name?: QtiCustomInteraction["name"];
2199
+ /** */
2200
+ manifest?: QtiCustomInteraction["manifest"];
2201
+ /** */
2202
+ response?: QtiCustomInteraction["response"];
2199
2203
  /** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
2200
2204
 
2201
2205
  **Public so it can be assigned directly, which is the development-time route.** An interaction
@@ -6326,6 +6330,8 @@ export type CustomElements = {
6326
6330
  * - `fixed`: undefined
6327
6331
  * - `visible`: undefined
6328
6332
  * - `keep-together`/`keepTogether`: undefined
6333
+ * - `navigation-mode`/`navigationMode`: undefined
6334
+ * - `submission-mode`/`submissionMode`: undefined
6329
6335
  * - `title`: undefined (property only)
6330
6336
  * - `_testContext`: undefined (property only)
6331
6337
  *
@@ -6347,17 +6353,19 @@ export type CustomElements = {
6347
6353
  * Component attributes and properties that can be applied to the element or by using JavaScript.
6348
6354
  *
6349
6355
  * - `identifier`: undefined
6350
- * - `title`: undefined
6351
- * - `_testContext`: undefined (property only)
6356
+ * - `class`: undefined
6357
+ * - `navigation-mode`/`navigationMode`: undefined
6358
+ * - `submission-mode`/`submissionMode`: undefined
6359
+ * - `title`: undefined (property only)
6352
6360
  *
6353
6361
  * ## Events
6354
6362
  *
6355
6363
  * Events that will be emitted by the component.
6356
6364
  *
6357
- * - `qti-assessment-test-connected`: undefined
6365
+ * - `qti-test-part-connected`: undefined
6358
6366
  */
6359
- "qti-assessment-test": Partial<
6360
- QtiAssessmentTestProps & BaseProps<QtiAssessmentTest> & BaseEvents
6367
+ "qti-test-part": Partial<
6368
+ QtiTestPartProps & BaseProps<QtiTestPart> & BaseEvents
6361
6369
  >;
6362
6370
 
6363
6371
  /**
@@ -6368,19 +6376,17 @@ export type CustomElements = {
6368
6376
  * Component attributes and properties that can be applied to the element or by using JavaScript.
6369
6377
  *
6370
6378
  * - `identifier`: undefined
6371
- * - `class`: undefined
6372
- * - `navigation-mode`/`navigationMode`: undefined
6373
- * - `submission-mode`/`submissionMode`: undefined
6374
- * - `title`: undefined (property only)
6379
+ * - `title`: undefined
6380
+ * - `_testContext`: undefined (property only)
6375
6381
  *
6376
6382
  * ## Events
6377
6383
  *
6378
6384
  * Events that will be emitted by the component.
6379
6385
  *
6380
- * - `qti-test-part-connected`: undefined
6386
+ * - `qti-assessment-test-connected`: undefined
6381
6387
  */
6382
- "qti-test-part": Partial<
6383
- QtiTestPartProps & BaseProps<QtiTestPart> & BaseEvents
6388
+ "qti-assessment-test": Partial<
6389
+ QtiAssessmentTestProps & BaseProps<QtiAssessmentTest> & BaseEvents
6384
6390
  >;
6385
6391
 
6386
6392
  /**
@@ -6536,6 +6542,26 @@ export type CustomElements = {
6536
6542
  QtiTestFeedbackProps & BaseProps<QtiTestFeedback> & BaseEvents
6537
6543
  >;
6538
6544
 
6545
+ /**
6546
+ *
6547
+ *
6548
+ * ## Attributes & Properties
6549
+ *
6550
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
6551
+ *
6552
+ * - `_testContext`: undefined (property only)
6553
+ * - `getVariables`: undefined (property only)
6554
+ *
6555
+ * ## Methods
6556
+ *
6557
+ * Methods that can be called to access component functionality.
6558
+ *
6559
+ * - `calculate() => Readonly<T>`: undefined
6560
+ */
6561
+ "qti-test-variables": Partial<
6562
+ QtiTestVariablesProps & BaseProps<QtiTestVariables> & BaseEvents
6563
+ >;
6564
+
6539
6565
  /**
6540
6566
  * Represents a custom element for navigating to the next test item.
6541
6567
  *
@@ -6940,26 +6966,6 @@ export type CustomElements = {
6940
6966
  TestTtsNextProps & BaseProps<TestTtsNext> & BaseEvents
6941
6967
  >;
6942
6968
 
6943
- /**
6944
- *
6945
- *
6946
- * ## Attributes & Properties
6947
- *
6948
- * Component attributes and properties that can be applied to the element or by using JavaScript.
6949
- *
6950
- * - `_testContext`: undefined (property only)
6951
- * - `getVariables`: undefined (property only)
6952
- *
6953
- * ## Methods
6954
- *
6955
- * Methods that can be called to access component functionality.
6956
- *
6957
- * - `calculate() => Readonly<T>`: undefined
6958
- */
6959
- "qti-test-variables": Partial<
6960
- QtiTestVariablesProps & BaseProps<QtiTestVariables> & BaseEvents
6961
- >;
6962
-
6963
6969
  /**
6964
6970
  * A choice in one of the two match sets of `qti-match-interaction`, or in
6965
6971
  * `qti-associate-interaction`.
@@ -7057,177 +7063,49 @@ export type CustomElements = {
7057
7063
  >;
7058
7064
 
7059
7065
  /**
7060
- * A choice, used by `qti-choice-interaction` and `qti-order-interaction`.
7061
- *
7062
- * The `control` part is one box whose *role* is carried by state, not by its name: a radio
7063
- * circle under `:state(radio)`, a checkbox square under `:state(checkbox)`, and a drag grip
7064
- * when the choice is draggable. Style it as `qti-simple-choice::part(control)`.
7066
+ * A drop target positioned over an image. Like `qti-gap`, it renders the chips it holds from
7067
+ * `dragDropContext` rather than having them appended into it.
7065
7068
  *
7066
7069
  * ## Attributes & Properties
7067
7070
  *
7068
7071
  * Component attributes and properties that can be applied to the element or by using JavaScript.
7069
7072
  *
7070
- * - `identifier`: Required. Value recorded in the response when this choice is selected, or its position when used for ordering.
7071
- * - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
7072
- * - `template-identifier`/`templateIdentifier`: Identifier of a template variable controlling this choice's visibility.
7073
- * - `show-hide`/`showHide`: How `template-identifier` controls visibility.
7074
- * - `tabindex`/`tabIndex`: undefined
7075
- * - `aria-disabled`/`disabled`: undefined
7076
- * - `aria-readonly`/`readonly`: undefined
7077
- * - `marker`: undefined (property only)
7078
- * - `checked`: undefined (property only) (readonly)
7079
- * - `internals`: undefined (property only)
7073
+ * - `identifier`: undefined
7074
+ * - `internals`: Carries `:state(filled)` while the hotspot holds a chip. (property only)
7075
+ * - `acceptsDeclarativeDrops`: Opt-in marker read by `DragDropSlottedMixin`; see qti-gap. (property only) (readonly)
7076
+ * - `drags`: The chips this hotspot holds. Stable node references, cloned once at drop time. (property only) (readonly)
7080
7077
  *
7081
7078
  * ## Events
7082
7079
  *
7083
7080
  * Events that will be emitted by the component.
7084
7081
  *
7085
- * - `undefined`: undefined
7086
- *
7087
- * ## Methods
7088
- *
7089
- * Methods that can be called to access component functionality.
7090
- *
7091
- * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
7092
- * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
7082
+ * - `qti-register-hotspot`: undefined
7093
7083
  *
7094
7084
  * ## CSS Parts
7095
7085
  *
7096
7086
  * Custom selectors for styling elements within the component.
7097
7087
  *
7098
- * - `control`: The box before the label (radio / checkbox / drag grip).
7099
- * - `control-mark`: The mark inside the box (inner dot / checkmark).
7100
- * - `label`: The default slot holding the choice content.
7101
- * - `marker`: The order-number badge, when `marker` is set.
7088
+ * - `drop`: The region a chip lands in.
7102
7089
  */
7103
- "qti-simple-choice": Partial<
7104
- QtiSimpleChoiceProps & BaseProps<QtiSimpleChoice> & BaseEvents
7090
+ "qti-associable-hotspot": Partial<
7091
+ QtiAssociableHotspotProps & BaseProps<QtiAssociableHotspot> & BaseEvents
7105
7092
  >;
7106
7093
 
7107
7094
  /**
7108
- * A single-response or multiple-response choice interaction.
7095
+ * A gap in the prose, and the first drop target to render its own chips.
7109
7096
  *
7110
- * ## Attributes & Properties
7097
+ * The interaction owns placement and publishes it on `dragDropContext`; this element subscribes and
7098
+ * renders what it holds. Nothing appends into it. That inverts the old flow, where `handleDrop` did
7099
+ * `cloneNode` + `appendChild` and the response was recovered afterwards by reading the DOM back
7100
+ * out — which is why placement and the response could ever disagree at all.
7111
7101
  *
7112
- * Component attributes and properties that can be applied to the element or by using JavaScript.
7102
+ * The chips land in this shadow root rather than in the light DOM, so a theme reaches them as
7103
+ * `::part(drag)` — a bare `::part()` matches in any shadow root — instead of by tag. The gap's own
7104
+ * `:state(filled)` says whether it holds anything.
7113
7105
  *
7114
- * - `response-identifier`/`responseIdentifier`: Required. Identifier of the bound response variable.
7115
- * - `max-choices`/`maxChoices`: Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item.
7116
- * - `min-choices`/`minChoices`: Minimum selectable choices for a valid response.
7117
- * - `orientation`: Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary.
7118
- * - `shuffle`/`undefined`: Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element.
7119
- * - `class`: QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`.
7120
- * - `response`: undefined
7121
- * - `disabled`: undefined
7122
- * - `readonly`: undefined
7123
- * - `name`: undefined
7124
- * - `value`: undefined (property only)
7125
- * - `configContext`: Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
7106
+ * ## Attributes & Properties
7126
7107
  *
7127
- * **Public so it can be assigned directly, which is the development-time route.** An interaction
7128
- * has to work standalone, and in a story or a spec there is usually no provider above it — so
7129
- * setting the field is all that is needed:
7130
- *
7131
- * orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
7132
- *
7133
- * With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
7134
- * provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
7135
- * field. There is no merging — set the value on the provider in that case.
7136
- *
7137
- * In a lit-html template, bind it as a property rather than assigning after the fact:
7138
- *
7139
- * html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
7140
- *
7141
- * The binding is committed on the detached template clone, before the fragment is inserted, so it
7142
- * is in place by `connectedCallback` — which matters for anything that reads config on connect.
7143
- *
7144
- * It was `protected`, which fooled nobody: every caller reached it anyway through an
7145
- * `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
7146
- * casts, rather than pretending at an encapsulation the type system was the only thing enforcing. (property only)
7147
- * - `internals`: undefined (property only) (readonly)
7148
- * - `isInline`: undefined (property only) (readonly)
7149
- * - `responseVariable`: undefined (property only) (readonly)
7150
- *
7151
- * ## Events
7152
- *
7153
- * Events that will be emitted by the component.
7154
- *
7155
- * - `qti-register-interaction`: undefined
7156
- * - `qti-interaction-response`: undefined
7157
- *
7158
- * ## Slots
7159
- *
7160
- * Areas where markup can be added to the component.
7161
- *
7162
- * - `prompt`: The prompt shown above the choices.
7163
- * - `(default)`: Default slot for `qti-simple-choice` elements.
7164
- *
7165
- * ## Methods
7166
- *
7167
- * Methods that can be called to access component functionality.
7168
- *
7169
- * - `validate() => boolean`: undefined
7170
- * - `reportValidity() => boolean`: undefined
7171
- * - `reset() => void`: undefined
7172
- * - `formResetCallback() => void`: undefined
7173
- * - `saveResponse(value: string | string[], state?: string | null) => void`: undefined
7174
- *
7175
- * ## CSS Parts
7176
- *
7177
- * Custom selectors for styling elements within the component.
7178
- *
7179
- * - `prompt`: Wrapper around the prompt slot.
7180
- * - `slot`: Wrapper around the default slot containing the choices.
7181
- * - `message`: Live validation message region (role="alert").
7182
- */
7183
- "qti-choice-interaction": Partial<
7184
- QtiChoiceInteractionProps & BaseProps<QtiChoiceInteraction> & BaseEvents
7185
- >;
7186
-
7187
- /**
7188
- * A drop target positioned over an image. Like `qti-gap`, it renders the chips it holds from
7189
- * `dragDropContext` rather than having them appended into it.
7190
- *
7191
- * ## Attributes & Properties
7192
- *
7193
- * Component attributes and properties that can be applied to the element or by using JavaScript.
7194
- *
7195
- * - `identifier`: undefined
7196
- * - `internals`: Carries `:state(filled)` while the hotspot holds a chip. (property only)
7197
- * - `acceptsDeclarativeDrops`: Opt-in marker read by `DragDropSlottedMixin`; see qti-gap. (property only) (readonly)
7198
- * - `drags`: The chips this hotspot holds. Stable node references, cloned once at drop time. (property only) (readonly)
7199
- *
7200
- * ## Events
7201
- *
7202
- * Events that will be emitted by the component.
7203
- *
7204
- * - `qti-register-hotspot`: undefined
7205
- *
7206
- * ## CSS Parts
7207
- *
7208
- * Custom selectors for styling elements within the component.
7209
- *
7210
- * - `drop`: The region a chip lands in.
7211
- */
7212
- "qti-associable-hotspot": Partial<
7213
- QtiAssociableHotspotProps & BaseProps<QtiAssociableHotspot> & BaseEvents
7214
- >;
7215
-
7216
- /**
7217
- * A gap in the prose, and the first drop target to render its own chips.
7218
- *
7219
- * The interaction owns placement and publishes it on `dragDropContext`; this element subscribes and
7220
- * renders what it holds. Nothing appends into it. That inverts the old flow, where `handleDrop` did
7221
- * `cloneNode` + `appendChild` and the response was recovered afterwards by reading the DOM back
7222
- * out — which is why placement and the response could ever disagree at all.
7223
- *
7224
- * The chips land in this shadow root rather than in the light DOM, so a theme reaches them as
7225
- * `::part(drag)` — a bare `::part()` matches in any shadow root — instead of by tag. The gap's own
7226
- * `:state(filled)` says whether it holds anything.
7227
- *
7228
- * ## Attributes & Properties
7229
- *
7230
- * Component attributes and properties that can be applied to the element or by using JavaScript.
7108
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
7231
7109
  *
7232
7110
  * - `identifier`: Required. Value recorded as the gap side of the response pair.
7233
7111
  * - `match-max`/`undefined`: How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin.
@@ -7401,6 +7279,134 @@ export type CustomElements = {
7401
7279
  */
7402
7280
  "qti-prompt": Partial<QtiPromptProps & BaseProps<QtiPrompt> & BaseEvents>;
7403
7281
 
7282
+ /**
7283
+ * A choice, used by `qti-choice-interaction` and `qti-order-interaction`.
7284
+ *
7285
+ * The `control` part is one box whose *role* is carried by state, not by its name: a radio
7286
+ * circle under `:state(radio)`, a checkbox square under `:state(checkbox)`, and a drag grip
7287
+ * when the choice is draggable. Style it as `qti-simple-choice::part(control)`.
7288
+ *
7289
+ * ## Attributes & Properties
7290
+ *
7291
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
7292
+ *
7293
+ * - `identifier`: Required. Value recorded in the response when this choice is selected, or its position when used for ordering.
7294
+ * - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
7295
+ * - `template-identifier`/`templateIdentifier`: Identifier of a template variable controlling this choice's visibility.
7296
+ * - `show-hide`/`showHide`: How `template-identifier` controls visibility.
7297
+ * - `tabindex`/`tabIndex`: undefined
7298
+ * - `aria-disabled`/`disabled`: undefined
7299
+ * - `aria-readonly`/`readonly`: undefined
7300
+ * - `marker`: undefined (property only)
7301
+ * - `checked`: undefined (property only) (readonly)
7302
+ * - `internals`: undefined (property only)
7303
+ *
7304
+ * ## Events
7305
+ *
7306
+ * Events that will be emitted by the component.
7307
+ *
7308
+ * - `undefined`: undefined
7309
+ *
7310
+ * ## Methods
7311
+ *
7312
+ * Methods that can be called to access component functionality.
7313
+ *
7314
+ * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
7315
+ * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
7316
+ *
7317
+ * ## CSS Parts
7318
+ *
7319
+ * Custom selectors for styling elements within the component.
7320
+ *
7321
+ * - `control`: The box before the label (radio / checkbox / drag grip).
7322
+ * - `control-mark`: The mark inside the box (inner dot / checkmark).
7323
+ * - `label`: The default slot holding the choice content.
7324
+ * - `marker`: The order-number badge, when `marker` is set.
7325
+ */
7326
+ "qti-simple-choice": Partial<
7327
+ QtiSimpleChoiceProps & BaseProps<QtiSimpleChoice> & BaseEvents
7328
+ >;
7329
+
7330
+ /**
7331
+ * A single-response or multiple-response choice interaction.
7332
+ *
7333
+ * ## Attributes & Properties
7334
+ *
7335
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
7336
+ *
7337
+ * - `response-identifier`/`responseIdentifier`: Required. Identifier of the bound response variable.
7338
+ * - `max-choices`/`maxChoices`: Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item.
7339
+ * - `min-choices`/`minChoices`: Minimum selectable choices for a valid response.
7340
+ * - `orientation`: Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary.
7341
+ * - `shuffle`/`undefined`: Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element.
7342
+ * - `class`: QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`.
7343
+ * - `response`: undefined
7344
+ * - `disabled`: undefined
7345
+ * - `readonly`: undefined
7346
+ * - `name`: undefined
7347
+ * - `value`: undefined (property only)
7348
+ * - `configContext`: Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
7349
+ *
7350
+ * **Public so it can be assigned directly, which is the development-time route.** An interaction
7351
+ * has to work standalone, and in a story or a spec there is usually no provider above it — so
7352
+ * setting the field is all that is needed:
7353
+ *
7354
+ * orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
7355
+ *
7356
+ * With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
7357
+ * provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
7358
+ * field. There is no merging — set the value on the provider in that case.
7359
+ *
7360
+ * In a lit-html template, bind it as a property rather than assigning after the fact:
7361
+ *
7362
+ * html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
7363
+ *
7364
+ * The binding is committed on the detached template clone, before the fragment is inserted, so it
7365
+ * is in place by `connectedCallback` — which matters for anything that reads config on connect.
7366
+ *
7367
+ * It was `protected`, which fooled nobody: every caller reached it anyway through an
7368
+ * `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
7369
+ * casts, rather than pretending at an encapsulation the type system was the only thing enforcing. (property only)
7370
+ * - `internals`: undefined (property only) (readonly)
7371
+ * - `isInline`: undefined (property only) (readonly)
7372
+ * - `responseVariable`: undefined (property only) (readonly)
7373
+ *
7374
+ * ## Events
7375
+ *
7376
+ * Events that will be emitted by the component.
7377
+ *
7378
+ * - `qti-register-interaction`: undefined
7379
+ * - `qti-interaction-response`: undefined
7380
+ *
7381
+ * ## Slots
7382
+ *
7383
+ * Areas where markup can be added to the component.
7384
+ *
7385
+ * - `prompt`: The prompt shown above the choices.
7386
+ * - `(default)`: Default slot for `qti-simple-choice` elements.
7387
+ *
7388
+ * ## Methods
7389
+ *
7390
+ * Methods that can be called to access component functionality.
7391
+ *
7392
+ * - `validate() => boolean`: undefined
7393
+ * - `reportValidity() => boolean`: undefined
7394
+ * - `reset() => void`: undefined
7395
+ * - `formResetCallback() => void`: undefined
7396
+ * - `saveResponse(value: string | string[], state?: string | null) => void`: undefined
7397
+ *
7398
+ * ## CSS Parts
7399
+ *
7400
+ * Custom selectors for styling elements within the component.
7401
+ *
7402
+ * - `prompt`: Wrapper around the prompt slot.
7403
+ * - `slot`: Wrapper around the default slot containing the choices.
7404
+ * - `message`: Live validation message region (role="alert").
7405
+ */
7406
+ "qti-choice-interaction": Partial<
7407
+ QtiChoiceInteractionProps & BaseProps<QtiChoiceInteraction> & BaseEvents
7408
+ >;
7409
+
7404
7410
  /**
7405
7411
  * QTI Custom Interaction component for legacy CES-based interactions.
7406
7412
  *
@@ -8922,8 +8928,9 @@ export type CustomElements = {
8922
8928
  *
8923
8929
  * Custom selectors for styling elements within the component.
8924
8930
  *
8931
+ * - `answer`: The answer-key line, revealed above the field when the correct response is shown.
8925
8932
  * - `input`: The text input element.
8926
- * - `correct`: Overlay shown when displaying the correct response.
8933
+ * - `message`: The validation message, hidden until `reportValidity` shows it.
8927
8934
  */
8928
8935
  "qti-text-entry-interaction": Partial<
8929
8936
  QtiTextEntryInteractionProps &
@@ -10896,6 +10903,8 @@ export type CustomElementsSolidJs = {
10896
10903
  * - `fixed`: undefined
10897
10904
  * - `visible`: undefined
10898
10905
  * - `keep-together`/`keepTogether`: undefined
10906
+ * - `navigation-mode`/`navigationMode`: undefined
10907
+ * - `submission-mode`/`submissionMode`: undefined
10899
10908
  * - `title`: undefined (property only)
10900
10909
  * - `_testContext`: undefined (property only)
10901
10910
  *
@@ -10912,30 +10921,6 @@ export type CustomElementsSolidJs = {
10912
10921
  BaseEvents
10913
10922
  >;
10914
10923
 
10915
- /**
10916
- *
10917
- *
10918
- * ## Attributes & Properties
10919
- *
10920
- * Component attributes and properties that can be applied to the element or by using JavaScript.
10921
- *
10922
- * - `identifier`: undefined
10923
- * - `title`: undefined
10924
- * - `_testContext`: undefined (property only)
10925
- *
10926
- * ## Events
10927
- *
10928
- * Events that will be emitted by the component.
10929
- *
10930
- * - `qti-assessment-test-connected`: undefined
10931
- */
10932
- "qti-assessment-test": Partial<
10933
- QtiAssessmentTestProps &
10934
- QtiAssessmentTestSolidJsProps &
10935
- BaseProps<QtiAssessmentTest> &
10936
- BaseEvents
10937
- >;
10938
-
10939
10924
  /**
10940
10925
  *
10941
10926
  *
@@ -10970,8 +10955,32 @@ export type CustomElementsSolidJs = {
10970
10955
  * Component attributes and properties that can be applied to the element or by using JavaScript.
10971
10956
  *
10972
10957
  * - `identifier`: undefined
10973
- * - `auto-score-items`/`autoScoreItems`: undefined
10974
- * - `initContext`: undefined (property only)
10958
+ * - `title`: undefined
10959
+ * - `_testContext`: undefined (property only)
10960
+ *
10961
+ * ## Events
10962
+ *
10963
+ * Events that will be emitted by the component.
10964
+ *
10965
+ * - `qti-assessment-test-connected`: undefined
10966
+ */
10967
+ "qti-assessment-test": Partial<
10968
+ QtiAssessmentTestProps &
10969
+ QtiAssessmentTestSolidJsProps &
10970
+ BaseProps<QtiAssessmentTest> &
10971
+ BaseEvents
10972
+ >;
10973
+
10974
+ /**
10975
+ *
10976
+ *
10977
+ * ## Attributes & Properties
10978
+ *
10979
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
10980
+ *
10981
+ * - `identifier`: undefined
10982
+ * - `auto-score-items`/`autoScoreItems`: undefined
10983
+ * - `initContext`: undefined (property only)
10975
10984
  * - `qtiContext`: undefined (property only)
10976
10985
  * - `configContext`: undefined (property only)
10977
10986
  *
@@ -11129,6 +11138,29 @@ export type CustomElementsSolidJs = {
11129
11138
  BaseEvents
11130
11139
  >;
11131
11140
 
11141
+ /**
11142
+ *
11143
+ *
11144
+ * ## Attributes & Properties
11145
+ *
11146
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
11147
+ *
11148
+ * - `_testContext`: undefined (property only)
11149
+ * - `getVariables`: undefined (property only)
11150
+ *
11151
+ * ## Methods
11152
+ *
11153
+ * Methods that can be called to access component functionality.
11154
+ *
11155
+ * - `calculate() => Readonly<T>`: undefined
11156
+ */
11157
+ "qti-test-variables": Partial<
11158
+ QtiTestVariablesProps &
11159
+ QtiTestVariablesSolidJsProps &
11160
+ BaseProps<QtiTestVariables> &
11161
+ BaseEvents
11162
+ >;
11163
+
11132
11164
  /**
11133
11165
  * Represents a custom element for navigating to the next test item.
11134
11166
  *
@@ -11593,29 +11625,6 @@ export type CustomElementsSolidJs = {
11593
11625
  BaseEvents
11594
11626
  >;
11595
11627
 
11596
- /**
11597
- *
11598
- *
11599
- * ## Attributes & Properties
11600
- *
11601
- * Component attributes and properties that can be applied to the element or by using JavaScript.
11602
- *
11603
- * - `_testContext`: undefined (property only)
11604
- * - `getVariables`: undefined (property only)
11605
- *
11606
- * ## Methods
11607
- *
11608
- * Methods that can be called to access component functionality.
11609
- *
11610
- * - `calculate() => Readonly<T>`: undefined
11611
- */
11612
- "qti-test-variables": Partial<
11613
- QtiTestVariablesProps &
11614
- QtiTestVariablesSolidJsProps &
11615
- BaseProps<QtiTestVariables> &
11616
- BaseEvents
11617
- >;
11618
-
11619
11628
  /**
11620
11629
  * A choice in one of the two match sets of `qti-match-interaction`, or in
11621
11630
  * `qti-associate-interaction`.
@@ -11714,140 +11723,6 @@ export type CustomElementsSolidJs = {
11714
11723
  BaseEvents
11715
11724
  >;
11716
11725
 
11717
- /**
11718
- * A choice, used by `qti-choice-interaction` and `qti-order-interaction`.
11719
- *
11720
- * The `control` part is one box whose *role* is carried by state, not by its name: a radio
11721
- * circle under `:state(radio)`, a checkbox square under `:state(checkbox)`, and a drag grip
11722
- * when the choice is draggable. Style it as `qti-simple-choice::part(control)`.
11723
- *
11724
- * ## Attributes & Properties
11725
- *
11726
- * Component attributes and properties that can be applied to the element or by using JavaScript.
11727
- *
11728
- * - `identifier`: Required. Value recorded in the response when this choice is selected, or its position when used for ordering.
11729
- * - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
11730
- * - `template-identifier`/`templateIdentifier`: Identifier of a template variable controlling this choice's visibility.
11731
- * - `show-hide`/`showHide`: How `template-identifier` controls visibility.
11732
- * - `tabindex`/`tabIndex`: undefined
11733
- * - `aria-disabled`/`disabled`: undefined
11734
- * - `aria-readonly`/`readonly`: undefined
11735
- * - `marker`: undefined (property only)
11736
- * - `checked`: undefined (property only) (readonly)
11737
- * - `internals`: undefined (property only)
11738
- *
11739
- * ## Events
11740
- *
11741
- * Events that will be emitted by the component.
11742
- *
11743
- * - `undefined`: undefined
11744
- *
11745
- * ## Methods
11746
- *
11747
- * Methods that can be called to access component functionality.
11748
- *
11749
- * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
11750
- * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
11751
- *
11752
- * ## CSS Parts
11753
- *
11754
- * Custom selectors for styling elements within the component.
11755
- *
11756
- * - `control`: The box before the label (radio / checkbox / drag grip).
11757
- * - `control-mark`: The mark inside the box (inner dot / checkmark).
11758
- * - `label`: The default slot holding the choice content.
11759
- * - `marker`: The order-number badge, when `marker` is set.
11760
- */
11761
- "qti-simple-choice": Partial<
11762
- QtiSimpleChoiceProps &
11763
- QtiSimpleChoiceSolidJsProps &
11764
- BaseProps<QtiSimpleChoice> &
11765
- BaseEvents
11766
- >;
11767
-
11768
- /**
11769
- * A single-response or multiple-response choice interaction.
11770
- *
11771
- * ## Attributes & Properties
11772
- *
11773
- * Component attributes and properties that can be applied to the element or by using JavaScript.
11774
- *
11775
- * - `response-identifier`/`responseIdentifier`: Required. Identifier of the bound response variable.
11776
- * - `max-choices`/`maxChoices`: Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item.
11777
- * - `min-choices`/`minChoices`: Minimum selectable choices for a valid response.
11778
- * - `orientation`: Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary.
11779
- * - `shuffle`/`undefined`: Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element.
11780
- * - `class`: QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`.
11781
- * - `response`: undefined
11782
- * - `disabled`: undefined
11783
- * - `readonly`: undefined
11784
- * - `name`: undefined
11785
- * - `value`: undefined (property only)
11786
- * - `configContext`: Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
11787
- *
11788
- * **Public so it can be assigned directly, which is the development-time route.** An interaction
11789
- * has to work standalone, and in a story or a spec there is usually no provider above it — so
11790
- * setting the field is all that is needed:
11791
- *
11792
- * orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
11793
- *
11794
- * With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
11795
- * provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
11796
- * field. There is no merging — set the value on the provider in that case.
11797
- *
11798
- * In a lit-html template, bind it as a property rather than assigning after the fact:
11799
- *
11800
- * html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
11801
- *
11802
- * The binding is committed on the detached template clone, before the fragment is inserted, so it
11803
- * is in place by `connectedCallback` — which matters for anything that reads config on connect.
11804
- *
11805
- * It was `protected`, which fooled nobody: every caller reached it anyway through an
11806
- * `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
11807
- * casts, rather than pretending at an encapsulation the type system was the only thing enforcing. (property only)
11808
- * - `internals`: undefined (property only) (readonly)
11809
- * - `isInline`: undefined (property only) (readonly)
11810
- * - `responseVariable`: undefined (property only) (readonly)
11811
- *
11812
- * ## Events
11813
- *
11814
- * Events that will be emitted by the component.
11815
- *
11816
- * - `qti-register-interaction`: undefined
11817
- * - `qti-interaction-response`: undefined
11818
- *
11819
- * ## Slots
11820
- *
11821
- * Areas where markup can be added to the component.
11822
- *
11823
- * - `prompt`: The prompt shown above the choices.
11824
- * - `(default)`: Default slot for `qti-simple-choice` elements.
11825
- *
11826
- * ## Methods
11827
- *
11828
- * Methods that can be called to access component functionality.
11829
- *
11830
- * - `validate() => boolean`: undefined
11831
- * - `reportValidity() => boolean`: undefined
11832
- * - `reset() => void`: undefined
11833
- * - `formResetCallback() => void`: undefined
11834
- * - `saveResponse(value: string | string[], state?: string | null) => void`: undefined
11835
- *
11836
- * ## CSS Parts
11837
- *
11838
- * Custom selectors for styling elements within the component.
11839
- *
11840
- * - `prompt`: Wrapper around the prompt slot.
11841
- * - `slot`: Wrapper around the default slot containing the choices.
11842
- * - `message`: Live validation message region (role="alert").
11843
- */
11844
- "qti-choice-interaction": Partial<
11845
- QtiChoiceInteractionProps &
11846
- QtiChoiceInteractionSolidJsProps &
11847
- BaseProps<QtiChoiceInteraction> &
11848
- BaseEvents
11849
- >;
11850
-
11851
11726
  /**
11852
11727
  * A drop target positioned over an image. Like `qti-gap`, it renders the chips it holds from
11853
11728
  * `dragDropContext` rather than having them appended into it.
@@ -12090,6 +11965,140 @@ export type CustomElementsSolidJs = {
12090
11965
  QtiPromptProps & QtiPromptSolidJsProps & BaseProps<QtiPrompt> & BaseEvents
12091
11966
  >;
12092
11967
 
11968
+ /**
11969
+ * A choice, used by `qti-choice-interaction` and `qti-order-interaction`.
11970
+ *
11971
+ * The `control` part is one box whose *role* is carried by state, not by its name: a radio
11972
+ * circle under `:state(radio)`, a checkbox square under `:state(checkbox)`, and a drag grip
11973
+ * when the choice is draggable. Style it as `qti-simple-choice::part(control)`.
11974
+ *
11975
+ * ## Attributes & Properties
11976
+ *
11977
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
11978
+ *
11979
+ * - `identifier`: Required. Value recorded in the response when this choice is selected, or its position when used for ordering.
11980
+ * - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
11981
+ * - `template-identifier`/`templateIdentifier`: Identifier of a template variable controlling this choice's visibility.
11982
+ * - `show-hide`/`showHide`: How `template-identifier` controls visibility.
11983
+ * - `tabindex`/`tabIndex`: undefined
11984
+ * - `aria-disabled`/`disabled`: undefined
11985
+ * - `aria-readonly`/`readonly`: undefined
11986
+ * - `marker`: undefined (property only)
11987
+ * - `checked`: undefined (property only) (readonly)
11988
+ * - `internals`: undefined (property only)
11989
+ *
11990
+ * ## Events
11991
+ *
11992
+ * Events that will be emitted by the component.
11993
+ *
11994
+ * - `undefined`: undefined
11995
+ *
11996
+ * ## Methods
11997
+ *
11998
+ * Methods that can be called to access component functionality.
11999
+ *
12000
+ * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
12001
+ * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
12002
+ *
12003
+ * ## CSS Parts
12004
+ *
12005
+ * Custom selectors for styling elements within the component.
12006
+ *
12007
+ * - `control`: The box before the label (radio / checkbox / drag grip).
12008
+ * - `control-mark`: The mark inside the box (inner dot / checkmark).
12009
+ * - `label`: The default slot holding the choice content.
12010
+ * - `marker`: The order-number badge, when `marker` is set.
12011
+ */
12012
+ "qti-simple-choice": Partial<
12013
+ QtiSimpleChoiceProps &
12014
+ QtiSimpleChoiceSolidJsProps &
12015
+ BaseProps<QtiSimpleChoice> &
12016
+ BaseEvents
12017
+ >;
12018
+
12019
+ /**
12020
+ * A single-response or multiple-response choice interaction.
12021
+ *
12022
+ * ## Attributes & Properties
12023
+ *
12024
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
12025
+ *
12026
+ * - `response-identifier`/`responseIdentifier`: Required. Identifier of the bound response variable.
12027
+ * - `max-choices`/`maxChoices`: Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item.
12028
+ * - `min-choices`/`minChoices`: Minimum selectable choices for a valid response.
12029
+ * - `orientation`: Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary.
12030
+ * - `shuffle`/`undefined`: Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element.
12031
+ * - `class`: QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`.
12032
+ * - `response`: undefined
12033
+ * - `disabled`: undefined
12034
+ * - `readonly`: undefined
12035
+ * - `name`: undefined
12036
+ * - `value`: undefined (property only)
12037
+ * - `configContext`: Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
12038
+ *
12039
+ * **Public so it can be assigned directly, which is the development-time route.** An interaction
12040
+ * has to work standalone, and in a story or a spec there is usually no provider above it — so
12041
+ * setting the field is all that is needed:
12042
+ *
12043
+ * orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
12044
+ *
12045
+ * With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
12046
+ * provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
12047
+ * field. There is no merging — set the value on the provider in that case.
12048
+ *
12049
+ * In a lit-html template, bind it as a property rather than assigning after the fact:
12050
+ *
12051
+ * html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
12052
+ *
12053
+ * The binding is committed on the detached template clone, before the fragment is inserted, so it
12054
+ * is in place by `connectedCallback` — which matters for anything that reads config on connect.
12055
+ *
12056
+ * It was `protected`, which fooled nobody: every caller reached it anyway through an
12057
+ * `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
12058
+ * casts, rather than pretending at an encapsulation the type system was the only thing enforcing. (property only)
12059
+ * - `internals`: undefined (property only) (readonly)
12060
+ * - `isInline`: undefined (property only) (readonly)
12061
+ * - `responseVariable`: undefined (property only) (readonly)
12062
+ *
12063
+ * ## Events
12064
+ *
12065
+ * Events that will be emitted by the component.
12066
+ *
12067
+ * - `qti-register-interaction`: undefined
12068
+ * - `qti-interaction-response`: undefined
12069
+ *
12070
+ * ## Slots
12071
+ *
12072
+ * Areas where markup can be added to the component.
12073
+ *
12074
+ * - `prompt`: The prompt shown above the choices.
12075
+ * - `(default)`: Default slot for `qti-simple-choice` elements.
12076
+ *
12077
+ * ## Methods
12078
+ *
12079
+ * Methods that can be called to access component functionality.
12080
+ *
12081
+ * - `validate() => boolean`: undefined
12082
+ * - `reportValidity() => boolean`: undefined
12083
+ * - `reset() => void`: undefined
12084
+ * - `formResetCallback() => void`: undefined
12085
+ * - `saveResponse(value: string | string[], state?: string | null) => void`: undefined
12086
+ *
12087
+ * ## CSS Parts
12088
+ *
12089
+ * Custom selectors for styling elements within the component.
12090
+ *
12091
+ * - `prompt`: Wrapper around the prompt slot.
12092
+ * - `slot`: Wrapper around the default slot containing the choices.
12093
+ * - `message`: Live validation message region (role="alert").
12094
+ */
12095
+ "qti-choice-interaction": Partial<
12096
+ QtiChoiceInteractionProps &
12097
+ QtiChoiceInteractionSolidJsProps &
12098
+ BaseProps<QtiChoiceInteraction> &
12099
+ BaseEvents
12100
+ >;
12101
+
12093
12102
  /**
12094
12103
  * QTI Custom Interaction component for legacy CES-based interactions.
12095
12104
  *
@@ -13648,8 +13657,9 @@ export type CustomElementsSolidJs = {
13648
13657
  *
13649
13658
  * Custom selectors for styling elements within the component.
13650
13659
  *
13660
+ * - `answer`: The answer-key line, revealed above the field when the correct response is shown.
13651
13661
  * - `input`: The text input element.
13652
- * - `correct`: Overlay shown when displaying the correct response.
13662
+ * - `message`: The validation message, hidden until `reportValidity` shows it.
13653
13663
  */
13654
13664
  "qti-text-entry-interaction": Partial<
13655
13665
  QtiTextEntryInteractionProps &