@citolab/qti-components 8.0.1 → 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 (60) hide show
  1. package/cdn/index.global.js +1 -1
  2. package/cdn/index.js +103 -103
  3. package/dist/base.d.ts +3 -3
  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-CAO4JRLY.js → chunk-BQFWCZFH.js} +2 -2
  10. package/dist/{chunk-LVBIQDPM.js → chunk-CK7AV2UJ.js} +147 -101
  11. package/dist/chunk-CK7AV2UJ.js.map +1 -0
  12. package/dist/{chunk-7HC5SMCU.js → chunk-G6GFQDVN.js} +1 -96
  13. package/dist/chunk-G6GFQDVN.js.map +1 -0
  14. package/dist/{chunk-RXGDQDOV.js → chunk-HBSWJC3B.js} +478 -392
  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-XU7HNT4F.js → chunk-J5SQLKNP.js} +145 -119
  19. package/dist/{chunk-XU7HNT4F.js.map → chunk-J5SQLKNP.js.map} +1 -1
  20. package/dist/{chunk-V5G7X53Y.js → chunk-NJQHUUTN.js} +2 -2
  21. package/dist/{chunk-QECOPVPO.js → chunk-RSVRS5AK.js} +59 -58
  22. package/dist/chunk-RSVRS5AK.js.map +1 -0
  23. package/dist/{chunk-F4BNJWYN.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-3AJOQCDU.js → chunk-ZII6M3SN.js} +2 -2
  28. package/dist/{computed.types.d-rKLSPvVG.d.ts → computed.types.d-DpKIYO6e.d.ts} +2 -0
  29. package/dist/corrections.d.ts +12 -29
  30. package/dist/corrections.js +8 -9
  31. package/dist/elements.d.ts +86 -86
  32. package/dist/elements.js +4 -5
  33. package/dist/index.d.ts +6 -37
  34. package/dist/index.js +13 -14
  35. package/dist/{interaction.d-D4MstYRz.d.ts → interaction.d-CJiMv8H7.d.ts} +13 -2
  36. package/dist/interactions.d.ts +11 -1299
  37. package/dist/interactions.js +4 -5
  38. package/dist/item.d.ts +3 -3
  39. package/dist/item.js +5 -5
  40. package/dist/processing.js +2 -2
  41. package/dist/qti-components-jsx.d.ts +759 -739
  42. package/dist/qti-test.d-_YAlhDbt.d.ts +702 -0
  43. package/dist/qti-text-entry-interaction.d-BGdfV9qG.d.ts +1567 -0
  44. package/dist/test.d.ts +11 -678
  45. package/dist/test.js +6 -7
  46. package/package.json +8 -7
  47. package/dist/chunk-64XSIBGO.js +0 -241
  48. package/dist/chunk-64XSIBGO.js.map +0 -1
  49. package/dist/chunk-7HC5SMCU.js.map +0 -1
  50. package/dist/chunk-F4BNJWYN.js.map +0 -1
  51. package/dist/chunk-H3J7LFRO.js +0 -2243
  52. package/dist/chunk-H3J7LFRO.js.map +0 -1
  53. package/dist/chunk-LVBIQDPM.js.map +0 -1
  54. package/dist/chunk-QECOPVPO.js.map +0 -1
  55. package/dist/chunk-RXGDQDOV.js.map +0 -1
  56. package/dist/chunk-X3E5HXG2.js +0 -20
  57. package/dist/chunk-X3E5HXG2.js.map +0 -1
  58. /package/dist/{chunk-CAO4JRLY.js.map → chunk-BQFWCZFH.js.map} +0 -0
  59. /package/dist/{chunk-V5G7X53Y.js.map → chunk-NJQHUUTN.js.map} +0 -0
  60. /package/dist/{chunk-3AJOQCDU.js.map → chunk-ZII6M3SN.js.map} +0 -0
@@ -29,8 +29,8 @@ import type { QtiTemplateDeclaration } from "./elements.js";
29
29
  import type { QtiItem } from "./item.js";
30
30
  import type { QtiAssessmentItemRef } from "./test.js";
31
31
  import type { QtiAssessmentSection } from "./test.js";
32
- import type { QtiAssessmentTest } from "./test.js";
33
32
  import type { QtiTestPart } from "./test.js";
33
+ import type { QtiAssessmentTest } from "./test.js";
34
34
  import type { TestNavigation } from "./test.js";
35
35
  import type { TestContainer } from "./test.js";
36
36
  import type {
@@ -68,8 +68,6 @@ import type {
68
68
  } from "./test.js";
69
69
  import type { QtiSimpleAssociableChoice } from "./interactions.js";
70
70
  import type { QtiAssociateInteraction } from "./interactions.js";
71
- import type { QtiSimpleChoice } from "./interactions.js";
72
- import type { QtiChoiceInteraction } from "./interactions.js";
73
71
  import type { QtiAssociableHotspot } from "./interactions.js";
74
72
  import type { QtiGap } from "./interactions.js";
75
73
  import type { QtiGapImg } from "./interactions.js";
@@ -78,6 +76,8 @@ import type { QtiHotspotChoice } from "./interactions.js";
78
76
  import type { QtiHottext } from "./interactions.js";
79
77
  import type { QtiInlineChoice } from "./interactions.js";
80
78
  import type { QtiPrompt } from "./interactions.js";
79
+ import type { QtiSimpleChoice } from "./interactions.js";
80
+ import type { QtiChoiceInteraction } from "./interactions.js";
81
81
  import type { QtiCustomInteraction } from "./interactions.js";
82
82
  import type { QtiEndAttemptInteraction } from "./interactions.js";
83
83
  import type { QtiExtendedTextInteraction } from "./interactions.js";
@@ -234,7 +234,7 @@ type BaseProps<T extends HTMLElement> = {
234
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. */
235
235
  part?: string;
236
236
  /** Use the ref attribute with a variable to assign a DOM element to the variable once the element is rendered. */
237
- ref?: T | ((e: T) => void);
237
+ ref?: T | ((e: T) => void) | { current: T | null } | null;
238
238
  /** Adds a reference for a custom element slot */
239
239
  slot?: string;
240
240
  /** Prop for setting inline styles */
@@ -855,6 +855,14 @@ export type QtiAssessmentSectionProps = {
855
855
  /** */
856
856
  keepTogether?: QtiAssessmentSection["keepTogether"];
857
857
  /** */
858
+ "navigation-mode"?: QtiAssessmentSection["navigationMode"];
859
+ /** */
860
+ navigationMode?: QtiAssessmentSection["navigationMode"];
861
+ /** */
862
+ "submission-mode"?: QtiAssessmentSection["submissionMode"];
863
+ /** */
864
+ submissionMode?: QtiAssessmentSection["submissionMode"];
865
+ /** */
858
866
  title?: QtiAssessmentSection["title"];
859
867
  /** */
860
868
  _testContext?: QtiAssessmentSection["_testContext"];
@@ -877,39 +885,19 @@ export type QtiAssessmentSectionSolidJsProps = {
877
885
  /** */
878
886
  "prop:keepTogether"?: QtiAssessmentSection["keepTogether"];
879
887
  /** */
880
- "prop:title"?: QtiAssessmentSection["title"];
881
- /** */
882
- "prop:_testContext"?: QtiAssessmentSection["_testContext"];
883
- /** */
884
- "on:qti-assessment-section-connected"?: (e: Event) => void;
885
-
886
- /** Set the innerHTML of the element */
887
- innerHTML?: string;
888
- /** Set the textContent of the element */
889
- textContent?: string | number;
890
- };
891
-
892
- export type QtiAssessmentTestProps = {
893
- /** */
894
- identifier?: QtiAssessmentTest["identifier"];
895
- /** */
896
- title?: QtiAssessmentTest["title"];
888
+ "attr:navigation-mode"?: QtiAssessmentSection["navigationMode"];
897
889
  /** */
898
- _testContext?: QtiAssessmentTest["_testContext"];
899
-
890
+ "prop:navigationMode"?: QtiAssessmentSection["navigationMode"];
900
891
  /** */
901
- "onqti-assessment-test-connected"?: (e: CustomEvent) => void;
902
- };
903
-
904
- export type QtiAssessmentTestSolidJsProps = {
892
+ "attr:submission-mode"?: QtiAssessmentSection["submissionMode"];
905
893
  /** */
906
- "prop:identifier"?: QtiAssessmentTest["identifier"];
894
+ "prop:submissionMode"?: QtiAssessmentSection["submissionMode"];
907
895
  /** */
908
- "prop:title"?: QtiAssessmentTest["title"];
896
+ "prop:title"?: QtiAssessmentSection["title"];
909
897
  /** */
910
- "prop:_testContext"?: QtiAssessmentTest["_testContext"];
898
+ "prop:_testContext"?: QtiAssessmentSection["_testContext"];
911
899
  /** */
912
- "on:qti-assessment-test-connected"?: (e: CustomEvent) => void;
900
+ "on:qti-assessment-section-connected"?: (e: Event) => void;
913
901
 
914
902
  /** Set the innerHTML of the element */
915
903
  innerHTML?: string;
@@ -961,6 +949,34 @@ export type QtiTestPartSolidJsProps = {
961
949
  textContent?: string | number;
962
950
  };
963
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
+
964
980
  export type TestNavigationProps = {
965
981
  /** */
966
982
  identifier?: TestNavigation["identifier"];
@@ -1614,359 +1630,166 @@ export type QtiAssociateInteractionSolidJsProps = {
1614
1630
  textContent?: string | number;
1615
1631
  };
1616
1632
 
1617
- export type QtiSimpleChoiceProps = {
1618
- /** Required. Value recorded in the response when this choice is selected, or its position when used for ordering. */
1619
- identifier?: QtiSimpleChoice["identifier"];
1620
- /** Pins this choice in place when the enclosing interaction is shuffled. */
1621
- fixed?: QtiSimpleChoice["fixed"];
1622
- /** Identifier of a template variable controlling this choice's visibility. */
1623
- "template-identifier"?: QtiSimpleChoice["templateIdentifier"];
1624
- /** Identifier of a template variable controlling this choice's visibility. */
1625
- templateIdentifier?: QtiSimpleChoice["templateIdentifier"];
1626
- /** How `template-identifier` controls visibility. */
1627
- "show-hide"?: QtiSimpleChoice["showHide"];
1628
- /** How `template-identifier` controls visibility. */
1629
- showHide?: QtiSimpleChoice["showHide"];
1633
+ export type QtiAssociableHotspotProps = {
1630
1634
  /** */
1631
- tabindex?: QtiSimpleChoice["tabIndex"];
1635
+ identifier?: QtiAssociableHotspot["identifier"];
1636
+ /** Carries `:state(filled)` while the hotspot holds a chip. */
1637
+ internals?: QtiAssociableHotspot["internals"];
1638
+
1632
1639
  /** */
1633
- tabIndex?: QtiSimpleChoice["tabIndex"];
1640
+ "onqti-register-hotspot"?: (e: CustomEvent) => void;
1641
+ };
1642
+
1643
+ export type QtiAssociableHotspotSolidJsProps = {
1634
1644
  /** */
1635
- "aria-disabled"?: QtiSimpleChoice["disabled"];
1645
+ "prop:identifier"?: QtiAssociableHotspot["identifier"];
1646
+ /** Carries `:state(filled)` while the hotspot holds a chip. */
1647
+ "prop:internals"?: QtiAssociableHotspot["internals"];
1636
1648
  /** */
1637
- disabled?: QtiSimpleChoice["disabled"];
1649
+ "on:qti-register-hotspot"?: (e: CustomEvent) => void;
1650
+
1651
+ /** Set the innerHTML of the element */
1652
+ innerHTML?: string;
1653
+ /** Set the textContent of the element */
1654
+ textContent?: string | number;
1655
+ };
1656
+
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. */
1663
+ undefined?: unknown;
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;
1638
1672
  /** */
1639
- "aria-readonly"?: QtiSimpleChoice["readonly"];
1673
+ tabindex?: QtiGap["tabindex"];
1674
+ /** Carries `:state(filled)` while the gap holds a chip. */
1675
+ internals?: QtiGap["internals"];
1676
+ };
1677
+
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;
1640
1693
  /** */
1641
- readonly?: QtiSimpleChoice["readonly"];
1694
+ "prop:tabindex"?: QtiGap["tabindex"];
1695
+ /** Carries `:state(filled)` while the gap holds a chip. */
1696
+ "prop:internals"?: QtiGap["internals"];
1697
+
1698
+ /** Set the innerHTML of the element */
1699
+ innerHTML?: string;
1700
+ /** Set the textContent of the element */
1701
+ textContent?: string | number;
1702
+ };
1703
+
1704
+ export type QtiGapImgProps = {
1642
1705
  /** */
1643
- marker?: QtiSimpleChoice["marker"];
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.
1709
+
1710
+ NOTE: this element never calls `super.connectedCallback()`, so Lit never enables updating
1711
+ and it has no shadow root — which makes `qti-gap-img.styles.ts` dead code. Fixing that means
1712
+ adding a `<slot>` to a `render()` first, otherwise the authored `<img>` child disappears. */
1713
+ internals?: QtiGapImg["internals"];
1714
+ };
1715
+
1716
+ export type QtiGapImgSolidJsProps = {
1644
1717
  /** */
1645
- internals?: QtiSimpleChoice["internals"];
1718
+ "prop:tabindex"?: QtiGapImg["tabindex"];
1719
+ /** `qti-gap-img` is a draggable chip, so it needs ElementInternals to carry the drag states
1720
+ (`dragging`, `placeholder`). It works without a shadow root.
1721
+
1722
+ NOTE: this element never calls `super.connectedCallback()`, so Lit never enables updating
1723
+ and it has no shadow root — which makes `qti-gap-img.styles.ts` dead code. Fixing that means
1724
+ adding a `<slot>` to a `render()` first, otherwise the authored `<img>` child disappears. */
1725
+ "prop:internals"?: QtiGapImg["internals"];
1726
+
1727
+ /** Set the innerHTML of the element */
1728
+ innerHTML?: string;
1729
+ /** Set the textContent of the element */
1730
+ textContent?: string | number;
1646
1731
  };
1647
1732
 
1648
- export type QtiSimpleChoiceSolidJsProps = {
1649
- /** Required. Value recorded in the response when this choice is selected, or its position when used for ordering. */
1650
- "prop:identifier"?: QtiSimpleChoice["identifier"];
1651
- /** Pins this choice in place when the enclosing interaction is shuffled. */
1652
- "prop:fixed"?: QtiSimpleChoice["fixed"];
1653
- /** Identifier of a template variable controlling this choice's visibility. */
1654
- "attr:template-identifier"?: QtiSimpleChoice["templateIdentifier"];
1655
- /** Identifier of a template variable controlling this choice's visibility. */
1656
- "prop:templateIdentifier"?: QtiSimpleChoice["templateIdentifier"];
1657
- /** How `template-identifier` controls visibility. */
1658
- "attr:show-hide"?: QtiSimpleChoice["showHide"];
1659
- /** How `template-identifier` controls visibility. */
1660
- "prop:showHide"?: QtiSimpleChoice["showHide"];
1733
+ export type QtiGapTextProps = {
1734
+ /** Required. Value recorded in the response pair when this token is placed into a gap. */
1735
+ identifier?: QtiGapText["identifier"];
1736
+ /** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1737
+ "match-max"?: unknown;
1738
+ /** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1739
+ undefined?: unknown;
1740
+ /** Minimum gaps this token must fill. */
1741
+ "match-min"?: unknown;
1742
+ /** Pins this token in place when the interaction is shuffled. */
1743
+ fixed?: unknown;
1744
+ /** Not implemented. Identifier of a template variable controlling this token's visibility. */
1745
+ "template-identifier"?: unknown;
1746
+ /** Not implemented. How `template-identifier` controls visibility. */
1747
+ "show-hide"?: unknown;
1661
1748
  /** */
1662
- "attr:tabindex"?: QtiSimpleChoice["tabIndex"];
1749
+ tabindex?: QtiGapText["tabindex"];
1663
1750
  /** */
1664
- "prop:tabIndex"?: QtiSimpleChoice["tabIndex"];
1751
+ "aria-disabled"?: QtiGapText["disabled"];
1665
1752
  /** */
1666
- "bool:aria-disabled"?: QtiSimpleChoice["disabled"];
1753
+ disabled?: QtiGapText["disabled"];
1667
1754
  /** */
1668
- "prop:disabled"?: QtiSimpleChoice["disabled"];
1755
+ "aria-readonly"?: QtiGapText["readonly"];
1669
1756
  /** */
1670
- "bool:aria-readonly"?: QtiSimpleChoice["readonly"];
1757
+ readonly?: QtiGapText["readonly"];
1671
1758
  /** */
1672
- "prop:readonly"?: QtiSimpleChoice["readonly"];
1759
+ tabIndex?: QtiGapText["tabIndex"];
1673
1760
  /** */
1674
- "prop:marker"?: QtiSimpleChoice["marker"];
1761
+ internals?: QtiGapText["internals"];
1762
+ };
1763
+
1764
+ export type QtiGapTextSolidJsProps = {
1765
+ /** Required. Value recorded in the response pair when this token is placed into a gap. */
1766
+ "prop:identifier"?: QtiGapText["identifier"];
1767
+ /** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1768
+ "attr:match-max"?: unknown;
1769
+ /** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1770
+ "prop:undefined"?: unknown;
1771
+ /** Minimum gaps this token must fill. */
1772
+ "attr:match-min"?: unknown;
1773
+ /** Pins this token in place when the interaction is shuffled. */
1774
+ "bool:fixed"?: unknown;
1775
+ /** Not implemented. Identifier of a template variable controlling this token's visibility. */
1776
+ "attr:template-identifier"?: unknown;
1777
+ /** Not implemented. How `template-identifier` controls visibility. */
1778
+ "attr:show-hide"?: unknown;
1675
1779
  /** */
1676
- "prop:internals"?: QtiSimpleChoice["internals"];
1677
-
1678
- /** Set the innerHTML of the element */
1679
- innerHTML?: string;
1680
- /** Set the textContent of the element */
1681
- textContent?: string | number;
1682
- };
1683
-
1684
- export type QtiChoiceInteractionProps = {
1685
- /** Required. Identifier of the bound response variable. */
1686
- "response-identifier"?: QtiChoiceInteraction["responseIdentifier"];
1687
- /** Required. Identifier of the bound response variable. */
1688
- responseIdentifier?: QtiChoiceInteraction["responseIdentifier"];
1689
- /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
1690
- "max-choices"?: QtiChoiceInteraction["maxChoices"];
1691
- /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
1692
- maxChoices?: QtiChoiceInteraction["maxChoices"];
1693
- /** Minimum selectable choices for a valid response. */
1694
- "min-choices"?: QtiChoiceInteraction["minChoices"];
1695
- /** Minimum selectable choices for a valid response. */
1696
- minChoices?: QtiChoiceInteraction["minChoices"];
1697
- /** @deprecated , use 'qti-orientation-horizontal' or 'qti-orientation-vertical' instead - Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary. */
1698
- orientation?: QtiChoiceInteraction["orientation"];
1699
- /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
1700
- shuffle?: unknown;
1701
- /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
1702
- undefined?: unknown;
1703
- /** QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`. */
1704
- class?: QtiChoiceInteraction["class"];
1705
- /** */
1706
- response?: QtiChoiceInteraction["response"];
1707
- /** */
1708
- disabled?: QtiChoiceInteraction["disabled"];
1709
- /** */
1710
- readonly?: QtiChoiceInteraction["readonly"];
1711
- /** */
1712
- name?: QtiChoiceInteraction["name"];
1713
- /** */
1714
- value?: QtiChoiceInteraction["value"];
1715
- /** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
1716
-
1717
- **Public so it can be assigned directly, which is the development-time route.** An interaction
1718
- has to work standalone, and in a story or a spec there is usually no provider above it — so
1719
- setting the field is all that is needed:
1720
-
1721
- orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
1722
-
1723
- With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
1724
- provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
1725
- field. There is no merging — set the value on the provider in that case.
1726
-
1727
- In a lit-html template, bind it as a property rather than assigning after the fact:
1728
-
1729
- html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
1730
-
1731
- The binding is committed on the detached template clone, before the fragment is inserted, so it
1732
- is in place by `connectedCallback` — which matters for anything that reads config on connect.
1733
-
1734
- It was `protected`, which fooled nobody: every caller reached it anyway through an
1735
- `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
1736
- casts, rather than pretending at an encapsulation the type system was the only thing enforcing. */
1737
- configContext?: QtiChoiceInteraction["configContext"];
1738
-
1739
- /** */
1740
- "onqti-register-interaction"?: (e: CustomEvent) => void;
1741
- /** */
1742
- "onqti-interaction-response"?: (e: CustomEvent) => void;
1743
- };
1744
-
1745
- export type QtiChoiceInteractionSolidJsProps = {
1746
- /** Required. Identifier of the bound response variable. */
1747
- "attr:response-identifier"?: QtiChoiceInteraction["responseIdentifier"];
1748
- /** Required. Identifier of the bound response variable. */
1749
- "prop:responseIdentifier"?: QtiChoiceInteraction["responseIdentifier"];
1750
- /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
1751
- "attr:max-choices"?: QtiChoiceInteraction["maxChoices"];
1752
- /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
1753
- "prop:maxChoices"?: QtiChoiceInteraction["maxChoices"];
1754
- /** Minimum selectable choices for a valid response. */
1755
- "attr:min-choices"?: QtiChoiceInteraction["minChoices"];
1756
- /** Minimum selectable choices for a valid response. */
1757
- "prop:minChoices"?: QtiChoiceInteraction["minChoices"];
1758
- /** @deprecated , use 'qti-orientation-horizontal' or 'qti-orientation-vertical' instead - Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary. */
1759
- "prop:orientation"?: QtiChoiceInteraction["orientation"];
1760
- /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
1761
- "bool:shuffle"?: unknown;
1762
- /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
1763
- "prop:undefined"?: unknown;
1764
- /** QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`. */
1765
- "prop:class"?: QtiChoiceInteraction["class"];
1766
- /** */
1767
- "prop:response"?: QtiChoiceInteraction["response"];
1768
- /** */
1769
- "prop:disabled"?: QtiChoiceInteraction["disabled"];
1770
- /** */
1771
- "prop:readonly"?: QtiChoiceInteraction["readonly"];
1772
- /** */
1773
- "prop:name"?: QtiChoiceInteraction["name"];
1774
- /** */
1775
- "prop:value"?: QtiChoiceInteraction["value"];
1776
- /** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
1777
-
1778
- **Public so it can be assigned directly, which is the development-time route.** An interaction
1779
- has to work standalone, and in a story or a spec there is usually no provider above it — so
1780
- setting the field is all that is needed:
1781
-
1782
- orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
1783
-
1784
- With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
1785
- provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
1786
- field. There is no merging — set the value on the provider in that case.
1787
-
1788
- In a lit-html template, bind it as a property rather than assigning after the fact:
1789
-
1790
- html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
1791
-
1792
- The binding is committed on the detached template clone, before the fragment is inserted, so it
1793
- is in place by `connectedCallback` — which matters for anything that reads config on connect.
1794
-
1795
- It was `protected`, which fooled nobody: every caller reached it anyway through an
1796
- `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
1797
- casts, rather than pretending at an encapsulation the type system was the only thing enforcing. */
1798
- "prop:configContext"?: QtiChoiceInteraction["configContext"];
1799
- /** */
1800
- "on:qti-register-interaction"?: (e: CustomEvent) => void;
1801
- /** */
1802
- "on:qti-interaction-response"?: (e: CustomEvent) => void;
1803
-
1804
- /** Set the innerHTML of the element */
1805
- innerHTML?: string;
1806
- /** Set the textContent of the element */
1807
- textContent?: string | number;
1808
- };
1809
-
1810
- export type QtiAssociableHotspotProps = {
1811
- /** */
1812
- identifier?: QtiAssociableHotspot["identifier"];
1813
- /** Carries `:state(filled)` while the hotspot holds a chip. */
1814
- internals?: QtiAssociableHotspot["internals"];
1815
-
1816
- /** */
1817
- "onqti-register-hotspot"?: (e: CustomEvent) => void;
1818
- };
1819
-
1820
- export type QtiAssociableHotspotSolidJsProps = {
1821
- /** */
1822
- "prop:identifier"?: QtiAssociableHotspot["identifier"];
1823
- /** Carries `:state(filled)` while the hotspot holds a chip. */
1824
- "prop:internals"?: QtiAssociableHotspot["internals"];
1825
- /** */
1826
- "on:qti-register-hotspot"?: (e: CustomEvent) => void;
1827
-
1828
- /** Set the innerHTML of the element */
1829
- innerHTML?: string;
1830
- /** Set the textContent of the element */
1831
- textContent?: string | number;
1832
- };
1833
-
1834
- export type QtiGapProps = {
1835
- /** Required. Value recorded as the gap side of the response pair. */
1836
- identifier?: QtiGap["identifier"];
1837
- /** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1838
- "match-max"?: unknown;
1839
- /** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1840
- undefined?: unknown;
1841
- /** Minimum tokens this gap must hold. */
1842
- "match-min"?: unknown;
1843
- /** Not implemented. Whether this gap must be filled for the response to be valid. */
1844
- required?: unknown;
1845
- /** Not implemented. Identifier of a template variable controlling this gap's visibility. */
1846
- "template-identifier"?: unknown;
1847
- /** Not implemented. How `template-identifier` controls visibility. */
1848
- "show-hide"?: unknown;
1849
- /** */
1850
- tabindex?: QtiGap["tabindex"];
1851
- /** Carries `:state(filled)` while the gap holds a chip. */
1852
- internals?: QtiGap["internals"];
1853
- };
1854
-
1855
- export type QtiGapSolidJsProps = {
1856
- /** Required. Value recorded as the gap side of the response pair. */
1857
- "prop:identifier"?: QtiGap["identifier"];
1858
- /** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1859
- "attr:match-max"?: unknown;
1860
- /** How many tokens this gap can hold; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1861
- "prop:undefined"?: unknown;
1862
- /** Minimum tokens this gap must hold. */
1863
- "attr:match-min"?: unknown;
1864
- /** Not implemented. Whether this gap must be filled for the response to be valid. */
1865
- "bool:required"?: unknown;
1866
- /** Not implemented. Identifier of a template variable controlling this gap's visibility. */
1867
- "attr:template-identifier"?: unknown;
1868
- /** Not implemented. How `template-identifier` controls visibility. */
1869
- "attr:show-hide"?: unknown;
1870
- /** */
1871
- "prop:tabindex"?: QtiGap["tabindex"];
1872
- /** Carries `:state(filled)` while the gap holds a chip. */
1873
- "prop:internals"?: QtiGap["internals"];
1874
-
1875
- /** Set the innerHTML of the element */
1876
- innerHTML?: string;
1877
- /** Set the textContent of the element */
1878
- textContent?: string | number;
1879
- };
1880
-
1881
- export type QtiGapImgProps = {
1882
- /** */
1883
- tabindex?: QtiGapImg["tabindex"];
1884
- /** `qti-gap-img` is a draggable chip, so it needs ElementInternals to carry the drag states
1885
- (`dragging`, `placeholder`). It works without a shadow root.
1886
-
1887
- NOTE: this element never calls `super.connectedCallback()`, so Lit never enables updating
1888
- and it has no shadow root — which makes `qti-gap-img.styles.ts` dead code. Fixing that means
1889
- adding a `<slot>` to a `render()` first, otherwise the authored `<img>` child disappears. */
1890
- internals?: QtiGapImg["internals"];
1891
- };
1892
-
1893
- export type QtiGapImgSolidJsProps = {
1894
- /** */
1895
- "prop: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.
1898
-
1899
- NOTE: this element never calls `super.connectedCallback()`, so Lit never enables updating
1900
- and it has no shadow root — which makes `qti-gap-img.styles.ts` dead code. Fixing that means
1901
- adding a `<slot>` to a `render()` first, otherwise the authored `<img>` child disappears. */
1902
- "prop:internals"?: QtiGapImg["internals"];
1903
-
1904
- /** Set the innerHTML of the element */
1905
- innerHTML?: string;
1906
- /** Set the textContent of the element */
1907
- textContent?: string | number;
1908
- };
1909
-
1910
- export type QtiGapTextProps = {
1911
- /** Required. Value recorded in the response pair when this token is placed into a gap. */
1912
- identifier?: QtiGapText["identifier"];
1913
- /** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1914
- "match-max"?: unknown;
1915
- /** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1916
- undefined?: unknown;
1917
- /** Minimum gaps this token must fill. */
1918
- "match-min"?: unknown;
1919
- /** Pins this token in place when the interaction is shuffled. */
1920
- fixed?: unknown;
1921
- /** Not implemented. Identifier of a template variable controlling this token's visibility. */
1922
- "template-identifier"?: unknown;
1923
- /** Not implemented. How `template-identifier` controls visibility. */
1924
- "show-hide"?: unknown;
1925
- /** */
1926
- tabindex?: QtiGapText["tabindex"];
1927
- /** */
1928
- "aria-disabled"?: QtiGapText["disabled"];
1929
- /** */
1930
- disabled?: QtiGapText["disabled"];
1931
- /** */
1932
- "aria-readonly"?: QtiGapText["readonly"];
1933
- /** */
1934
- readonly?: QtiGapText["readonly"];
1935
- /** */
1936
- tabIndex?: QtiGapText["tabIndex"];
1937
- /** */
1938
- internals?: QtiGapText["internals"];
1939
- };
1940
-
1941
- export type QtiGapTextSolidJsProps = {
1942
- /** Required. Value recorded in the response pair when this token is placed into a gap. */
1943
- "prop:identifier"?: QtiGapText["identifier"];
1944
- /** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1945
- "attr:match-max"?: unknown;
1946
- /** How many gaps this token may fill; `0` means unlimited. Read from the DOM by the drag-drop mixin. */
1947
- "prop:undefined"?: unknown;
1948
- /** Minimum gaps this token must fill. */
1949
- "attr:match-min"?: unknown;
1950
- /** Pins this token in place when the interaction is shuffled. */
1951
- "bool:fixed"?: unknown;
1952
- /** Not implemented. Identifier of a template variable controlling this token's visibility. */
1953
- "attr:template-identifier"?: unknown;
1954
- /** Not implemented. How `template-identifier` controls visibility. */
1955
- "attr:show-hide"?: unknown;
1956
- /** */
1957
- "prop:tabindex"?: QtiGapText["tabindex"];
1958
- /** */
1959
- "bool:aria-disabled"?: QtiGapText["disabled"];
1960
- /** */
1961
- "prop:disabled"?: QtiGapText["disabled"];
1962
- /** */
1963
- "bool:aria-readonly"?: QtiGapText["readonly"];
1964
- /** */
1965
- "prop:readonly"?: QtiGapText["readonly"];
1966
- /** */
1967
- "prop:tabIndex"?: QtiGapText["tabIndex"];
1968
- /** */
1969
- "prop:internals"?: QtiGapText["internals"];
1780
+ "prop:tabindex"?: QtiGapText["tabindex"];
1781
+ /** */
1782
+ "bool:aria-disabled"?: QtiGapText["disabled"];
1783
+ /** */
1784
+ "prop:disabled"?: QtiGapText["disabled"];
1785
+ /** */
1786
+ "bool:aria-readonly"?: QtiGapText["readonly"];
1787
+ /** */
1788
+ "prop:readonly"?: QtiGapText["readonly"];
1789
+ /** */
1790
+ "prop:tabIndex"?: QtiGapText["tabIndex"];
1791
+ /** */
1792
+ "prop:internals"?: QtiGapText["internals"];
1970
1793
 
1971
1794
  /** Set the innerHTML of the element */
1972
1795
  innerHTML?: string;
@@ -2132,25 +1955,218 @@ export type QtiInlineChoiceSolidJsProps = {
2132
1955
  /** */
2133
1956
  "prop:disabled"?: QtiInlineChoice["disabled"];
2134
1957
  /** */
2135
- "bool:aria-readonly"?: QtiInlineChoice["readonly"];
1958
+ "bool:aria-readonly"?: QtiInlineChoice["readonly"];
1959
+ /** */
1960
+ "prop:readonly"?: QtiInlineChoice["readonly"];
1961
+ /** */
1962
+ "prop:internals"?: QtiInlineChoice["internals"];
1963
+ /** */
1964
+ "on:qti-inline-choice-register"?: (e: CustomEvent) => void;
1965
+ /** */
1966
+ "on:qti-inline-choice-select"?: (e: CustomEvent) => void;
1967
+
1968
+ /** Set the innerHTML of the element */
1969
+ innerHTML?: string;
1970
+ /** Set the textContent of the element */
1971
+ textContent?: string | number;
1972
+ };
1973
+
1974
+ export type QtiPromptProps = {};
1975
+
1976
+ export type QtiPromptSolidJsProps = {
1977
+ /** Set the innerHTML of the element */
1978
+ innerHTML?: string;
1979
+ /** Set the textContent of the element */
1980
+ textContent?: string | number;
1981
+ };
1982
+
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"];
1996
+ /** */
1997
+ tabindex?: QtiSimpleChoice["tabIndex"];
1998
+ /** */
1999
+ tabIndex?: QtiSimpleChoice["tabIndex"];
2000
+ /** */
2001
+ "aria-disabled"?: QtiSimpleChoice["disabled"];
2002
+ /** */
2003
+ disabled?: QtiSimpleChoice["disabled"];
2004
+ /** */
2005
+ "aria-readonly"?: QtiSimpleChoice["readonly"];
2006
+ /** */
2007
+ readonly?: QtiSimpleChoice["readonly"];
2008
+ /** */
2009
+ marker?: QtiSimpleChoice["marker"];
2010
+ /** */
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"];
2027
+ /** */
2028
+ "attr:tabindex"?: QtiSimpleChoice["tabIndex"];
2029
+ /** */
2030
+ "prop:tabIndex"?: QtiSimpleChoice["tabIndex"];
2031
+ /** */
2032
+ "bool:aria-disabled"?: QtiSimpleChoice["disabled"];
2033
+ /** */
2034
+ "prop:disabled"?: QtiSimpleChoice["disabled"];
2035
+ /** */
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"];
2136
2134
  /** */
2137
- "prop:readonly"?: QtiInlineChoice["readonly"];
2135
+ "prop:disabled"?: QtiChoiceInteraction["disabled"];
2138
2136
  /** */
2139
- "prop:internals"?: QtiInlineChoice["internals"];
2137
+ "prop:readonly"?: QtiChoiceInteraction["readonly"];
2140
2138
  /** */
2141
- "on:qti-inline-choice-register"?: (e: CustomEvent) => void;
2139
+ "prop:name"?: QtiChoiceInteraction["name"];
2142
2140
  /** */
2143
- "on:qti-inline-choice-select"?: (e: CustomEvent) => void;
2141
+ "prop:value"?: QtiChoiceInteraction["value"];
2142
+ /** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
2144
2143
 
2145
- /** Set the innerHTML of the element */
2146
- innerHTML?: string;
2147
- /** Set the textContent of the element */
2148
- textContent?: string | number;
2149
- };
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:
2150
2147
 
2151
- export type QtiPromptProps = {};
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;
2152
2169
 
2153
- export type QtiPromptSolidJsProps = {
2154
2170
  /** Set the innerHTML of the element */
2155
2171
  innerHTML?: string;
2156
2172
  /** Set the textContent of the element */
@@ -6314,6 +6330,8 @@ export type CustomElements = {
6314
6330
  * - `fixed`: undefined
6315
6331
  * - `visible`: undefined
6316
6332
  * - `keep-together`/`keepTogether`: undefined
6333
+ * - `navigation-mode`/`navigationMode`: undefined
6334
+ * - `submission-mode`/`submissionMode`: undefined
6317
6335
  * - `title`: undefined (property only)
6318
6336
  * - `_testContext`: undefined (property only)
6319
6337
  *
@@ -6335,17 +6353,19 @@ export type CustomElements = {
6335
6353
  * Component attributes and properties that can be applied to the element or by using JavaScript.
6336
6354
  *
6337
6355
  * - `identifier`: undefined
6338
- * - `title`: undefined
6339
- * - `_testContext`: undefined (property only)
6356
+ * - `class`: undefined
6357
+ * - `navigation-mode`/`navigationMode`: undefined
6358
+ * - `submission-mode`/`submissionMode`: undefined
6359
+ * - `title`: undefined (property only)
6340
6360
  *
6341
6361
  * ## Events
6342
6362
  *
6343
6363
  * Events that will be emitted by the component.
6344
6364
  *
6345
- * - `qti-assessment-test-connected`: undefined
6365
+ * - `qti-test-part-connected`: undefined
6346
6366
  */
6347
- "qti-assessment-test": Partial<
6348
- QtiAssessmentTestProps & BaseProps<QtiAssessmentTest> & BaseEvents
6367
+ "qti-test-part": Partial<
6368
+ QtiTestPartProps & BaseProps<QtiTestPart> & BaseEvents
6349
6369
  >;
6350
6370
 
6351
6371
  /**
@@ -6356,19 +6376,17 @@ export type CustomElements = {
6356
6376
  * Component attributes and properties that can be applied to the element or by using JavaScript.
6357
6377
  *
6358
6378
  * - `identifier`: undefined
6359
- * - `class`: undefined
6360
- * - `navigation-mode`/`navigationMode`: undefined
6361
- * - `submission-mode`/`submissionMode`: undefined
6362
- * - `title`: undefined (property only)
6379
+ * - `title`: undefined
6380
+ * - `_testContext`: undefined (property only)
6363
6381
  *
6364
6382
  * ## Events
6365
6383
  *
6366
6384
  * Events that will be emitted by the component.
6367
6385
  *
6368
- * - `qti-test-part-connected`: undefined
6386
+ * - `qti-assessment-test-connected`: undefined
6369
6387
  */
6370
- "qti-test-part": Partial<
6371
- QtiTestPartProps & BaseProps<QtiTestPart> & BaseEvents
6388
+ "qti-assessment-test": Partial<
6389
+ QtiAssessmentTestProps & BaseProps<QtiAssessmentTest> & BaseEvents
6372
6390
  >;
6373
6391
 
6374
6392
  /**
@@ -7044,134 +7062,6 @@ export type CustomElements = {
7044
7062
  BaseEvents
7045
7063
  >;
7046
7064
 
7047
- /**
7048
- * A choice, used by `qti-choice-interaction` and `qti-order-interaction`.
7049
- *
7050
- * The `control` part is one box whose *role* is carried by state, not by its name: a radio
7051
- * circle under `:state(radio)`, a checkbox square under `:state(checkbox)`, and a drag grip
7052
- * when the choice is draggable. Style it as `qti-simple-choice::part(control)`.
7053
- *
7054
- * ## Attributes & Properties
7055
- *
7056
- * Component attributes and properties that can be applied to the element or by using JavaScript.
7057
- *
7058
- * - `identifier`: Required. Value recorded in the response when this choice is selected, or its position when used for ordering.
7059
- * - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
7060
- * - `template-identifier`/`templateIdentifier`: Identifier of a template variable controlling this choice's visibility.
7061
- * - `show-hide`/`showHide`: How `template-identifier` controls visibility.
7062
- * - `tabindex`/`tabIndex`: undefined
7063
- * - `aria-disabled`/`disabled`: undefined
7064
- * - `aria-readonly`/`readonly`: undefined
7065
- * - `marker`: undefined (property only)
7066
- * - `checked`: undefined (property only) (readonly)
7067
- * - `internals`: undefined (property only)
7068
- *
7069
- * ## Events
7070
- *
7071
- * Events that will be emitted by the component.
7072
- *
7073
- * - `undefined`: undefined
7074
- *
7075
- * ## Methods
7076
- *
7077
- * Methods that can be called to access component functionality.
7078
- *
7079
- * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
7080
- * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
7081
- *
7082
- * ## CSS Parts
7083
- *
7084
- * Custom selectors for styling elements within the component.
7085
- *
7086
- * - `control`: The box before the label (radio / checkbox / drag grip).
7087
- * - `control-mark`: The mark inside the box (inner dot / checkmark).
7088
- * - `label`: The default slot holding the choice content.
7089
- * - `marker`: The order-number badge, when `marker` is set.
7090
- */
7091
- "qti-simple-choice": Partial<
7092
- QtiSimpleChoiceProps & BaseProps<QtiSimpleChoice> & BaseEvents
7093
- >;
7094
-
7095
- /**
7096
- * A single-response or multiple-response choice interaction.
7097
- *
7098
- * ## Attributes & Properties
7099
- *
7100
- * Component attributes and properties that can be applied to the element or by using JavaScript.
7101
- *
7102
- * - `response-identifier`/`responseIdentifier`: Required. Identifier of the bound response variable.
7103
- * - `max-choices`/`maxChoices`: Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item.
7104
- * - `min-choices`/`minChoices`: Minimum selectable choices for a valid response.
7105
- * - `orientation`: Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary.
7106
- * - `shuffle`/`undefined`: Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element.
7107
- * - `class`: QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`.
7108
- * - `response`: undefined
7109
- * - `disabled`: undefined
7110
- * - `readonly`: undefined
7111
- * - `name`: undefined
7112
- * - `value`: undefined (property only)
7113
- * - `configContext`: Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
7114
- *
7115
- * **Public so it can be assigned directly, which is the development-time route.** An interaction
7116
- * has to work standalone, and in a story or a spec there is usually no provider above it — so
7117
- * setting the field is all that is needed:
7118
- *
7119
- * orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
7120
- *
7121
- * With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
7122
- * provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
7123
- * field. There is no merging — set the value on the provider in that case.
7124
- *
7125
- * In a lit-html template, bind it as a property rather than assigning after the fact:
7126
- *
7127
- * html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
7128
- *
7129
- * The binding is committed on the detached template clone, before the fragment is inserted, so it
7130
- * is in place by `connectedCallback` — which matters for anything that reads config on connect.
7131
- *
7132
- * It was `protected`, which fooled nobody: every caller reached it anyway through an
7133
- * `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
7134
- * casts, rather than pretending at an encapsulation the type system was the only thing enforcing. (property only)
7135
- * - `internals`: undefined (property only) (readonly)
7136
- * - `isInline`: undefined (property only) (readonly)
7137
- * - `responseVariable`: undefined (property only) (readonly)
7138
- *
7139
- * ## Events
7140
- *
7141
- * Events that will be emitted by the component.
7142
- *
7143
- * - `qti-register-interaction`: undefined
7144
- * - `qti-interaction-response`: undefined
7145
- *
7146
- * ## Slots
7147
- *
7148
- * Areas where markup can be added to the component.
7149
- *
7150
- * - `prompt`: The prompt shown above the choices.
7151
- * - `(default)`: Default slot for `qti-simple-choice` elements.
7152
- *
7153
- * ## Methods
7154
- *
7155
- * Methods that can be called to access component functionality.
7156
- *
7157
- * - `validate() => boolean`: undefined
7158
- * - `reportValidity() => boolean`: undefined
7159
- * - `reset() => void`: undefined
7160
- * - `formResetCallback() => void`: undefined
7161
- * - `saveResponse(value: string | string[], state?: string | null) => void`: undefined
7162
- *
7163
- * ## CSS Parts
7164
- *
7165
- * Custom selectors for styling elements within the component.
7166
- *
7167
- * - `prompt`: Wrapper around the prompt slot.
7168
- * - `slot`: Wrapper around the default slot containing the choices.
7169
- * - `message`: Live validation message region (role="alert").
7170
- */
7171
- "qti-choice-interaction": Partial<
7172
- QtiChoiceInteractionProps & BaseProps<QtiChoiceInteraction> & BaseEvents
7173
- >;
7174
-
7175
7065
  /**
7176
7066
  * A drop target positioned over an image. Like `qti-gap`, it renders the chips it holds from
7177
7067
  * `dragDropContext` rather than having them appended into it.
@@ -7315,23 +7205,100 @@ export type CustomElements = {
7315
7205
  * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
7316
7206
  * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
7317
7207
  */
7318
- "qti-hotspot-choice": Partial<
7319
- QtiHotspotChoiceProps & BaseProps<QtiHotspotChoice> & BaseEvents
7208
+ "qti-hotspot-choice": Partial<
7209
+ QtiHotspotChoiceProps & BaseProps<QtiHotspotChoice> & BaseEvents
7210
+ >;
7211
+
7212
+ /**
7213
+ * A selectable span of text inside `qti-hottext-interaction`.
7214
+ *
7215
+ * ## Attributes & Properties
7216
+ *
7217
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
7218
+ *
7219
+ * - `identifier`: Required. Value recorded in the response when this span is selected.
7220
+ * - `template-identifier`/`undefined`: Not implemented. Identifier of a template variable controlling this span's visibility.
7221
+ * - `show-hide`/`undefined`: Not implemented. How `template-identifier` controls visibility.
7222
+ * - `tabindex`/`tabIndex`: undefined
7223
+ * - `aria-disabled`/`disabled`: undefined
7224
+ * - `aria-readonly`/`readonly`: undefined
7225
+ * - `internals`: undefined (property only)
7226
+ *
7227
+ * ## Events
7228
+ *
7229
+ * Events that will be emitted by the component.
7230
+ *
7231
+ * - `undefined`: undefined
7232
+ *
7233
+ * ## Methods
7234
+ *
7235
+ * Methods that can be called to access component functionality.
7236
+ *
7237
+ * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
7238
+ * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
7239
+ */
7240
+ "qti-hottext": Partial<QtiHottextProps & BaseProps<QtiHottext> & BaseEvents>;
7241
+
7242
+ /**
7243
+ * An option in the dropdown of `qti-inline-choice-interaction`.
7244
+ *
7245
+ * ## Attributes & Properties
7246
+ *
7247
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
7248
+ *
7249
+ * - `identifier`: Required. Value recorded in the response when this option is selected.
7250
+ * - `fixed`/`undefined`: Pins this option in place when the interaction is shuffled.
7251
+ * - `template-identifier`/`undefined`: Not implemented. Identifier of a template variable controlling this option's visibility.
7252
+ * - `show-hide`/`undefined`: Not implemented. How `template-identifier` controls visibility.
7253
+ * - `tabindex`/`tabIndex`: undefined
7254
+ * - `aria-disabled`/`disabled`: undefined
7255
+ * - `aria-readonly`/`readonly`: undefined
7256
+ * - `internals`: undefined (property only)
7257
+ *
7258
+ * ## Events
7259
+ *
7260
+ * Events that will be emitted by the component.
7261
+ *
7262
+ * - `qti-inline-choice-register`: undefined
7263
+ * - `qti-inline-choice-select`: undefined
7264
+ * - `undefined`: undefined
7265
+ *
7266
+ * ## Methods
7267
+ *
7268
+ * Methods that can be called to access component functionality.
7269
+ *
7270
+ * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
7271
+ * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
7272
+ */
7273
+ "qti-inline-choice": Partial<
7274
+ QtiInlineChoiceProps & BaseProps<QtiInlineChoice> & BaseEvents
7320
7275
  >;
7321
7276
 
7322
7277
  /**
7323
- * A selectable span of text inside `qti-hottext-interaction`.
7278
+ *
7279
+ */
7280
+ "qti-prompt": Partial<QtiPromptProps & BaseProps<QtiPrompt> & BaseEvents>;
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)`.
7324
7288
  *
7325
7289
  * ## Attributes & Properties
7326
7290
  *
7327
7291
  * Component attributes and properties that can be applied to the element or by using JavaScript.
7328
7292
  *
7329
- * - `identifier`: Required. Value recorded in the response when this span is selected.
7330
- * - `template-identifier`/`undefined`: Not implemented. Identifier of a template variable controlling this span's visibility.
7331
- * - `show-hide`/`undefined`: Not implemented. How `template-identifier` controls visibility.
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.
7332
7297
  * - `tabindex`/`tabIndex`: undefined
7333
7298
  * - `aria-disabled`/`disabled`: undefined
7334
7299
  * - `aria-readonly`/`readonly`: undefined
7300
+ * - `marker`: undefined (property only)
7301
+ * - `checked`: undefined (property only) (readonly)
7335
7302
  * - `internals`: undefined (property only)
7336
7303
  *
7337
7304
  * ## Events
@@ -7346,48 +7313,99 @@ export type CustomElements = {
7346
7313
  *
7347
7314
  * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
7348
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.
7349
7325
  */
7350
- "qti-hottext": Partial<QtiHottextProps & BaseProps<QtiHottext> & BaseEvents>;
7326
+ "qti-simple-choice": Partial<
7327
+ QtiSimpleChoiceProps & BaseProps<QtiSimpleChoice> & BaseEvents
7328
+ >;
7351
7329
 
7352
7330
  /**
7353
- * An option in the dropdown of `qti-inline-choice-interaction`.
7331
+ * A single-response or multiple-response choice interaction.
7354
7332
  *
7355
7333
  * ## Attributes & Properties
7356
7334
  *
7357
7335
  * Component attributes and properties that can be applied to the element or by using JavaScript.
7358
7336
  *
7359
- * - `identifier`: Required. Value recorded in the response when this option is selected.
7360
- * - `fixed`/`undefined`: Pins this option in place when the interaction is shuffled.
7361
- * - `template-identifier`/`undefined`: Not implemented. Identifier of a template variable controlling this option's visibility.
7362
- * - `show-hide`/`undefined`: Not implemented. How `template-identifier` controls visibility.
7363
- * - `tabindex`/`tabIndex`: undefined
7364
- * - `aria-disabled`/`disabled`: undefined
7365
- * - `aria-readonly`/`readonly`: undefined
7366
- * - `internals`: undefined (property only)
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)
7367
7373
  *
7368
7374
  * ## Events
7369
7375
  *
7370
7376
  * Events that will be emitted by the component.
7371
7377
  *
7372
- * - `qti-inline-choice-register`: undefined
7373
- * - `qti-inline-choice-select`: undefined
7374
- * - `undefined`: undefined
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.
7375
7387
  *
7376
7388
  * ## Methods
7377
7389
  *
7378
7390
  * Methods that can be called to access component functionality.
7379
7391
  *
7380
- * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
7381
- * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
7382
- */
7383
- "qti-inline-choice": Partial<
7384
- QtiInlineChoiceProps & BaseProps<QtiInlineChoice> & BaseEvents
7385
- >;
7386
-
7387
- /**
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.
7388
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").
7389
7405
  */
7390
- "qti-prompt": Partial<QtiPromptProps & BaseProps<QtiPrompt> & BaseEvents>;
7406
+ "qti-choice-interaction": Partial<
7407
+ QtiChoiceInteractionProps & BaseProps<QtiChoiceInteraction> & BaseEvents
7408
+ >;
7391
7409
 
7392
7410
  /**
7393
7411
  * QTI Custom Interaction component for legacy CES-based interactions.
@@ -10885,6 +10903,8 @@ export type CustomElementsSolidJs = {
10885
10903
  * - `fixed`: undefined
10886
10904
  * - `visible`: undefined
10887
10905
  * - `keep-together`/`keepTogether`: undefined
10906
+ * - `navigation-mode`/`navigationMode`: undefined
10907
+ * - `submission-mode`/`submissionMode`: undefined
10888
10908
  * - `title`: undefined (property only)
10889
10909
  * - `_testContext`: undefined (property only)
10890
10910
  *
@@ -10909,19 +10929,21 @@ export type CustomElementsSolidJs = {
10909
10929
  * Component attributes and properties that can be applied to the element or by using JavaScript.
10910
10930
  *
10911
10931
  * - `identifier`: undefined
10912
- * - `title`: undefined
10913
- * - `_testContext`: undefined (property only)
10932
+ * - `class`: undefined
10933
+ * - `navigation-mode`/`navigationMode`: undefined
10934
+ * - `submission-mode`/`submissionMode`: undefined
10935
+ * - `title`: undefined (property only)
10914
10936
  *
10915
10937
  * ## Events
10916
10938
  *
10917
10939
  * Events that will be emitted by the component.
10918
10940
  *
10919
- * - `qti-assessment-test-connected`: undefined
10941
+ * - `qti-test-part-connected`: undefined
10920
10942
  */
10921
- "qti-assessment-test": Partial<
10922
- QtiAssessmentTestProps &
10923
- QtiAssessmentTestSolidJsProps &
10924
- BaseProps<QtiAssessmentTest> &
10943
+ "qti-test-part": Partial<
10944
+ QtiTestPartProps &
10945
+ QtiTestPartSolidJsProps &
10946
+ BaseProps<QtiTestPart> &
10925
10947
  BaseEvents
10926
10948
  >;
10927
10949
 
@@ -10933,21 +10955,19 @@ export type CustomElementsSolidJs = {
10933
10955
  * Component attributes and properties that can be applied to the element or by using JavaScript.
10934
10956
  *
10935
10957
  * - `identifier`: undefined
10936
- * - `class`: undefined
10937
- * - `navigation-mode`/`navigationMode`: undefined
10938
- * - `submission-mode`/`submissionMode`: undefined
10939
- * - `title`: undefined (property only)
10958
+ * - `title`: undefined
10959
+ * - `_testContext`: undefined (property only)
10940
10960
  *
10941
10961
  * ## Events
10942
10962
  *
10943
10963
  * Events that will be emitted by the component.
10944
10964
  *
10945
- * - `qti-test-part-connected`: undefined
10965
+ * - `qti-assessment-test-connected`: undefined
10946
10966
  */
10947
- "qti-test-part": Partial<
10948
- QtiTestPartProps &
10949
- QtiTestPartSolidJsProps &
10950
- BaseProps<QtiTestPart> &
10967
+ "qti-assessment-test": Partial<
10968
+ QtiAssessmentTestProps &
10969
+ QtiAssessmentTestSolidJsProps &
10970
+ BaseProps<QtiAssessmentTest> &
10951
10971
  BaseEvents
10952
10972
  >;
10953
10973
 
@@ -11606,123 +11626,24 @@ export type CustomElementsSolidJs = {
11606
11626
  >;
11607
11627
 
11608
11628
  /**
11609
- * A choice in one of the two match sets of `qti-match-interaction`, or in
11610
- * `qti-associate-interaction`.
11611
- *
11612
- * ## Attributes & Properties
11613
- *
11614
- * Component attributes and properties that can be applied to the element or by using JavaScript.
11615
- *
11616
- * - `identifier`: Required. Value recorded in the response pair when this choice participates in an association.
11617
- * - `match-max`/`matchMax`: the maximum number of selections a candidate must make, the other options will be disabled when max options is checked
11618
- * - `match-min`/`matchMin`: the minimal number of selections a candidate must make
11619
- * - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
11620
- * - `template-identifier`/`undefined`: Not implemented. Identifier of a template variable controlling this choice's visibility.
11621
- * - `show-hide`/`undefined`: Not implemented. How `template-identifier` controls visibility.
11622
- * - `tabindex`/`tabIndex`: undefined
11623
- * - `aria-disabled`/`disabled`: undefined
11624
- * - `aria-readonly`/`readonly`: undefined
11625
- * - `acceptsDeclarativeDrops`: Opt-in marker read by `DragDropSlottedMixin`; see qti-gap. (property only) (readonly)
11626
- * - `drags`: The chips this choice holds when it acts as a drop target (match-interaction's second set). (property only) (readonly)
11627
- * - `internals`: undefined (property only)
11628
- *
11629
- * ## Events
11630
- *
11631
- * Events that will be emitted by the component.
11632
- *
11633
- * - `undefined`: undefined
11634
- *
11635
- * ## Methods
11636
- *
11637
- * Methods that can be called to access component functionality.
11638
- *
11639
- * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
11640
- * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
11641
- */
11642
- "qti-simple-associable-choice": Partial<
11643
- QtiSimpleAssociableChoiceProps &
11644
- QtiSimpleAssociableChoiceSolidJsProps &
11645
- BaseProps<QtiSimpleAssociableChoice> &
11646
- BaseEvents
11647
- >;
11648
-
11649
- /**
11650
- * Drag-and-drop associate interaction: candidates pair associable choices.
11651
- *
11652
- * ## Attributes & Properties
11653
- *
11654
- * Component attributes and properties that can be applied to the element or by using JavaScript.
11655
- *
11656
- * - `allowReorder`: undefined (property only)
11657
- * - `sortablePlaceholderConfig`: undefined (property only)
11658
- * - `sortableAnimationConfig`: undefined (property only)
11659
- * - `isDraggingFromSlot`: undefined (property only) (readonly)
11660
- *
11661
- * ## Slots
11662
- *
11663
- * Areas where markup can be added to the component.
11664
- *
11665
- * - `prompt`: The prompt shown above the choices.
11666
- * - `qti-simple-associable-choice`: The associable choice sources.
11667
- *
11668
- * ## Methods
11669
- *
11670
- * Methods that can be called to access component functionality.
11671
- *
11672
- * - `totalAssociationsFromState() => number`: How many associations the candidate has made.
11673
- *
11674
- * The mixin counts placed chips, which is right for gap-match — one chip in one gap is one
11675
- * association — and wrong here. An association is a *pair*, so three associations are six chips,
11676
- * and `max-associations="3"` compared 6 against 3 and declared the item invalid the moment it was
11677
- * correctly filled in.
11678
- *
11679
- * A half-filled row is not an association yet, and `getResponse()` already knows that: it emits a
11680
- * pair only when both sides hold a chip. Counting its entries counts associations by definition,
11681
- * and keeps the number validation sees equal to the number the response reports.
11682
- * - `getValue(val: string[]) => void`: undefined
11683
- * - `initiateDrag(dragElement: HTMLElement, startX: number, startY: number, inputType: 'mouse' | 'touch', rest: [eventSource?: 'pointer' | 'mouse' | 'touch']) => void`: undefined
11684
- * - `onSortableDragMove(clientX: number, clientY: number) => void`: undefined
11685
- * - `allowDrop(draggable: HTMLElement, droppable: HTMLElement) => boolean`: undefined
11686
- * - `handleDrop(draggable: HTMLElement, droppable: HTMLElement) => void`: undefined
11687
- * - `handleInvalidDrop(dragSource: HTMLElement | null) => void`: undefined
11688
- *
11689
- * ## CSS Parts
11690
- *
11691
- * Custom selectors for styling elements within the component.
11692
- *
11693
- * - `drags`: Wrapper around the associable choice slot.
11694
- * - `drops`: The container holding all drop targets.
11695
- * - `drop-row`: Container for one left/right drop pair.
11696
- * - `drop`: Each individual drop target.
11697
- * - `message`: Live validation message region (role="alert").
11698
- */
11699
- "qti-associate-interaction": Partial<
11700
- QtiAssociateInteractionProps &
11701
- QtiAssociateInteractionSolidJsProps &
11702
- BaseProps<QtiAssociateInteraction> &
11703
- BaseEvents
11704
- >;
11705
-
11706
- /**
11707
- * A choice, used by `qti-choice-interaction` and `qti-order-interaction`.
11708
- *
11709
- * The `control` part is one box whose *role* is carried by state, not by its name: a radio
11710
- * circle under `:state(radio)`, a checkbox square under `:state(checkbox)`, and a drag grip
11711
- * when the choice is draggable. Style it as `qti-simple-choice::part(control)`.
11629
+ * A choice in one of the two match sets of `qti-match-interaction`, or in
11630
+ * `qti-associate-interaction`.
11712
11631
  *
11713
11632
  * ## Attributes & Properties
11714
11633
  *
11715
11634
  * Component attributes and properties that can be applied to the element or by using JavaScript.
11716
11635
  *
11717
- * - `identifier`: Required. Value recorded in the response when this choice is selected, or its position when used for ordering.
11636
+ * - `identifier`: Required. Value recorded in the response pair when this choice participates in an association.
11637
+ * - `match-max`/`matchMax`: the maximum number of selections a candidate must make, the other options will be disabled when max options is checked
11638
+ * - `match-min`/`matchMin`: the minimal number of selections a candidate must make
11718
11639
  * - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
11719
- * - `template-identifier`/`templateIdentifier`: Identifier of a template variable controlling this choice's visibility.
11720
- * - `show-hide`/`showHide`: How `template-identifier` controls visibility.
11640
+ * - `template-identifier`/`undefined`: Not implemented. Identifier of a template variable controlling this choice's visibility.
11641
+ * - `show-hide`/`undefined`: Not implemented. How `template-identifier` controls visibility.
11721
11642
  * - `tabindex`/`tabIndex`: undefined
11722
11643
  * - `aria-disabled`/`disabled`: undefined
11723
11644
  * - `aria-readonly`/`readonly`: undefined
11724
- * - `marker`: undefined (property only)
11725
- * - `checked`: undefined (property only) (readonly)
11645
+ * - `acceptsDeclarativeDrops`: Opt-in marker read by `DragDropSlottedMixin`; see qti-gap. (property only) (readonly)
11646
+ * - `drags`: The chips this choice holds when it acts as a drop target (match-interaction's second set). (property only) (readonly)
11726
11647
  * - `internals`: undefined (property only)
11727
11648
  *
11728
11649
  * ## Events
@@ -11737,103 +11658,68 @@ export type CustomElementsSolidJs = {
11737
11658
  *
11738
11659
  * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
11739
11660
  * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
11740
- *
11741
- * ## CSS Parts
11742
- *
11743
- * Custom selectors for styling elements within the component.
11744
- *
11745
- * - `control`: The box before the label (radio / checkbox / drag grip).
11746
- * - `control-mark`: The mark inside the box (inner dot / checkmark).
11747
- * - `label`: The default slot holding the choice content.
11748
- * - `marker`: The order-number badge, when `marker` is set.
11749
11661
  */
11750
- "qti-simple-choice": Partial<
11751
- QtiSimpleChoiceProps &
11752
- QtiSimpleChoiceSolidJsProps &
11753
- BaseProps<QtiSimpleChoice> &
11662
+ "qti-simple-associable-choice": Partial<
11663
+ QtiSimpleAssociableChoiceProps &
11664
+ QtiSimpleAssociableChoiceSolidJsProps &
11665
+ BaseProps<QtiSimpleAssociableChoice> &
11754
11666
  BaseEvents
11755
11667
  >;
11756
11668
 
11757
11669
  /**
11758
- * A single-response or multiple-response choice interaction.
11670
+ * Drag-and-drop associate interaction: candidates pair associable choices.
11759
11671
  *
11760
11672
  * ## Attributes & Properties
11761
11673
  *
11762
11674
  * Component attributes and properties that can be applied to the element or by using JavaScript.
11763
11675
  *
11764
- * - `response-identifier`/`responseIdentifier`: Required. Identifier of the bound response variable.
11765
- * - `max-choices`/`maxChoices`: Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item.
11766
- * - `min-choices`/`minChoices`: Minimum selectable choices for a valid response.
11767
- * - `orientation`: Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary.
11768
- * - `shuffle`/`undefined`: Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element.
11769
- * - `class`: QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`.
11770
- * - `response`: undefined
11771
- * - `disabled`: undefined
11772
- * - `readonly`: undefined
11773
- * - `name`: undefined
11774
- * - `value`: undefined (property only)
11775
- * - `configContext`: Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
11776
- *
11777
- * **Public so it can be assigned directly, which is the development-time route.** An interaction
11778
- * has to work standalone, and in a story or a spec there is usually no provider above it — so
11779
- * setting the field is all that is needed:
11780
- *
11781
- * orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
11782
- *
11783
- * With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
11784
- * provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
11785
- * field. There is no merging — set the value on the provider in that case.
11786
- *
11787
- * In a lit-html template, bind it as a property rather than assigning after the fact:
11788
- *
11789
- * html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
11790
- *
11791
- * The binding is committed on the detached template clone, before the fragment is inserted, so it
11792
- * is in place by `connectedCallback` — which matters for anything that reads config on connect.
11793
- *
11794
- * It was `protected`, which fooled nobody: every caller reached it anyway through an
11795
- * `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
11796
- * casts, rather than pretending at an encapsulation the type system was the only thing enforcing. (property only)
11797
- * - `internals`: undefined (property only) (readonly)
11798
- * - `isInline`: undefined (property only) (readonly)
11799
- * - `responseVariable`: undefined (property only) (readonly)
11800
- *
11801
- * ## Events
11802
- *
11803
- * Events that will be emitted by the component.
11804
- *
11805
- * - `qti-register-interaction`: undefined
11806
- * - `qti-interaction-response`: undefined
11676
+ * - `allowReorder`: undefined (property only)
11677
+ * - `sortablePlaceholderConfig`: undefined (property only)
11678
+ * - `sortableAnimationConfig`: undefined (property only)
11679
+ * - `isDraggingFromSlot`: undefined (property only) (readonly)
11807
11680
  *
11808
11681
  * ## Slots
11809
11682
  *
11810
11683
  * Areas where markup can be added to the component.
11811
11684
  *
11812
11685
  * - `prompt`: The prompt shown above the choices.
11813
- * - `(default)`: Default slot for `qti-simple-choice` elements.
11686
+ * - `qti-simple-associable-choice`: The associable choice sources.
11814
11687
  *
11815
11688
  * ## Methods
11816
11689
  *
11817
11690
  * Methods that can be called to access component functionality.
11818
11691
  *
11819
- * - `validate() => boolean`: undefined
11820
- * - `reportValidity() => boolean`: undefined
11821
- * - `reset() => void`: undefined
11822
- * - `formResetCallback() => void`: undefined
11823
- * - `saveResponse(value: string | string[], state?: string | null) => void`: undefined
11692
+ * - `totalAssociationsFromState() => number`: How many associations the candidate has made.
11693
+ *
11694
+ * The mixin counts placed chips, which is right for gap-match one chip in one gap is one
11695
+ * association and wrong here. An association is a *pair*, so three associations are six chips,
11696
+ * and `max-associations="3"` compared 6 against 3 and declared the item invalid the moment it was
11697
+ * correctly filled in.
11698
+ *
11699
+ * A half-filled row is not an association yet, and `getResponse()` already knows that: it emits a
11700
+ * pair only when both sides hold a chip. Counting its entries counts associations by definition,
11701
+ * and keeps the number validation sees equal to the number the response reports.
11702
+ * - `getValue(val: string[]) => void`: undefined
11703
+ * - `initiateDrag(dragElement: HTMLElement, startX: number, startY: number, inputType: 'mouse' | 'touch', rest: [eventSource?: 'pointer' | 'mouse' | 'touch']) => void`: undefined
11704
+ * - `onSortableDragMove(clientX: number, clientY: number) => void`: undefined
11705
+ * - `allowDrop(draggable: HTMLElement, droppable: HTMLElement) => boolean`: undefined
11706
+ * - `handleDrop(draggable: HTMLElement, droppable: HTMLElement) => void`: undefined
11707
+ * - `handleInvalidDrop(dragSource: HTMLElement | null) => void`: undefined
11824
11708
  *
11825
11709
  * ## CSS Parts
11826
11710
  *
11827
11711
  * Custom selectors for styling elements within the component.
11828
11712
  *
11829
- * - `prompt`: Wrapper around the prompt slot.
11830
- * - `slot`: Wrapper around the default slot containing the choices.
11713
+ * - `drags`: Wrapper around the associable choice slot.
11714
+ * - `drops`: The container holding all drop targets.
11715
+ * - `drop-row`: Container for one left/right drop pair.
11716
+ * - `drop`: Each individual drop target.
11831
11717
  * - `message`: Live validation message region (role="alert").
11832
11718
  */
11833
- "qti-choice-interaction": Partial<
11834
- QtiChoiceInteractionProps &
11835
- QtiChoiceInteractionSolidJsProps &
11836
- BaseProps<QtiChoiceInteraction> &
11719
+ "qti-associate-interaction": Partial<
11720
+ QtiAssociateInteractionProps &
11721
+ QtiAssociateInteractionSolidJsProps &
11722
+ BaseProps<QtiAssociateInteraction> &
11837
11723
  BaseEvents
11838
11724
  >;
11839
11725
 
@@ -12079,6 +11965,140 @@ export type CustomElementsSolidJs = {
12079
11965
  QtiPromptProps & QtiPromptSolidJsProps & BaseProps<QtiPrompt> & BaseEvents
12080
11966
  >;
12081
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
+
12082
12102
  /**
12083
12103
  * QTI Custom Interaction component for legacy CES-based interactions.
12084
12104
  *