@citolab/qti-components 8.0.2 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/cdn/index.global.js +1 -1
  2. package/cdn/index.js +647 -815
  3. package/dist/base.d.ts +58 -1
  4. package/dist/base.js +7 -1
  5. package/dist/{chunk-NJQHUUTN.js → chunk-3IACYIU2.js} +2 -2
  6. package/dist/{chunk-TWPXES3S.js → chunk-4XR2JHCP.js} +6 -6
  7. package/dist/chunk-4XR2JHCP.js.map +1 -0
  8. package/dist/{chunk-7V4HJFHW.js → chunk-6ITD55QE.js} +2 -2
  9. package/dist/{chunk-ZII6M3SN.js → chunk-6V3A7NQP.js} +2 -2
  10. package/dist/{chunk-7AVWRQIS.js → chunk-6XJUP55A.js} +62 -76
  11. package/dist/{chunk-7AVWRQIS.js.map → chunk-6XJUP55A.js.map} +1 -1
  12. package/dist/{chunk-J5SQLKNP.js → chunk-CF3DXJWM.js} +6 -6
  13. package/dist/{chunk-HQESINXH.js → chunk-EKXZI26R.js} +84 -1
  14. package/dist/chunk-EKXZI26R.js.map +1 -0
  15. package/dist/{chunk-IJD53WY6.js → chunk-HDEG6BAZ.js} +15 -15
  16. package/dist/{chunk-IJD53WY6.js.map → chunk-HDEG6BAZ.js.map} +1 -1
  17. package/dist/{chunk-CK7AV2UJ.js → chunk-IXPDMYKH.js} +3 -3
  18. package/dist/chunk-IYC7LZV6.js +7 -0
  19. package/dist/chunk-IYC7LZV6.js.map +1 -0
  20. package/dist/{chunk-VAE6HBKR.js → chunk-MK2I3MQB.js} +86 -59
  21. package/dist/chunk-MK2I3MQB.js.map +1 -0
  22. package/dist/{chunk-BQFWCZFH.js → chunk-NZLW6EX7.js} +2 -2
  23. package/dist/{chunk-HBSWJC3B.js → chunk-Q52IJELT.js} +5 -5
  24. package/dist/{chunk-RSVRS5AK.js → chunk-TXIB3SKC.js} +4 -4
  25. package/dist/corrections.js +8 -8
  26. package/dist/elements.d.ts +0 -1
  27. package/dist/elements.js +4 -4
  28. package/dist/index.d.ts +2 -2
  29. package/dist/index.js +28 -14
  30. package/dist/interactions.js +3 -3
  31. package/dist/item.css +370 -532
  32. package/dist/item.js +5 -5
  33. package/dist/loader.js +2 -2
  34. package/dist/processing.d.ts +61 -11
  35. package/dist/processing.js +10 -2
  36. package/dist/qti-components-jsx.d.ts +756 -552
  37. package/dist/test.js +6 -6
  38. package/dist/transformers.d.ts +1 -1
  39. package/dist/transformers.js +1 -1
  40. package/package.json +8 -8
  41. package/dist/chunk-G6GFQDVN.js +0 -7
  42. package/dist/chunk-G6GFQDVN.js.map +0 -1
  43. package/dist/chunk-HQESINXH.js.map +0 -1
  44. package/dist/chunk-TWPXES3S.js.map +0 -1
  45. package/dist/chunk-VAE6HBKR.js.map +0 -1
  46. /package/dist/{chunk-NJQHUUTN.js.map → chunk-3IACYIU2.js.map} +0 -0
  47. /package/dist/{chunk-7V4HJFHW.js.map → chunk-6ITD55QE.js.map} +0 -0
  48. /package/dist/{chunk-ZII6M3SN.js.map → chunk-6V3A7NQP.js.map} +0 -0
  49. /package/dist/{chunk-J5SQLKNP.js.map → chunk-CF3DXJWM.js.map} +0 -0
  50. /package/dist/{chunk-CK7AV2UJ.js.map → chunk-IXPDMYKH.js.map} +0 -0
  51. /package/dist/{chunk-BQFWCZFH.js.map → chunk-NZLW6EX7.js.map} +0 -0
  52. /package/dist/{chunk-HBSWJC3B.js.map → chunk-Q52IJELT.js.map} +0 -0
  53. /package/dist/{chunk-RSVRS5AK.js.map → chunk-TXIB3SKC.js.map} +0 -0
@@ -1,3 +1,9 @@
1
+ import type {
2
+ CustomStateSetShim,
3
+ classifyCustomStateSupport,
4
+ anonymous_0,
5
+ installCustomStateSetFallback,
6
+ } from "./base.js";
1
7
  import type { Interaction } from "./base.js";
2
8
  import type { QtiVariableDeclaration } from "./base.js";
3
9
  import type { QtiExpression } from "./base.js";
@@ -68,6 +74,8 @@ import type {
68
74
  } from "./test.js";
69
75
  import type { QtiSimpleAssociableChoice } from "./interactions.js";
70
76
  import type { QtiAssociateInteraction } from "./interactions.js";
77
+ import type { QtiSimpleChoice } from "./interactions.js";
78
+ import type { QtiChoiceInteraction } from "./interactions.js";
71
79
  import type { QtiAssociableHotspot } from "./interactions.js";
72
80
  import type { QtiGap } from "./interactions.js";
73
81
  import type { QtiGapImg } from "./interactions.js";
@@ -76,8 +84,6 @@ import type { QtiHotspotChoice } from "./interactions.js";
76
84
  import type { QtiHottext } from "./interactions.js";
77
85
  import type { QtiInlineChoice } from "./interactions.js";
78
86
  import type { QtiPrompt } from "./interactions.js";
79
- import type { QtiSimpleChoice } from "./interactions.js";
80
- import type { QtiChoiceInteraction } from "./interactions.js";
81
87
  import type { QtiCustomInteraction } from "./interactions.js";
82
88
  import type { QtiEndAttemptInteraction } from "./interactions.js";
83
89
  import type { QtiExtendedTextInteraction } from "./interactions.js";
@@ -162,7 +168,17 @@ import type { QtiRandomInteger } from "./processing.js";
162
168
  import type { QtiRandom } from "./processing.js";
163
169
  import type { QtiDelete } from "./processing.js";
164
170
  import type { QtiIndex } from "./processing.js";
171
+ import type {
172
+ QtiConditionBranchBase,
173
+ QtiConditionElseBase,
174
+ QtiConditionIfBase,
175
+ QtiConditionBase,
176
+ } from "./processing.js";
165
177
  import type { QtiLookupOutcomeValue } from "./processing.js";
178
+ import type { QtiOutcomeCondition } from "./processing.js";
179
+ import type { QtiOutcomeElse } from "./processing.js";
180
+ import type { QtiOutcomeIf } from "./processing.js";
181
+ import type { QtiOutcomeElseIf } from "./processing.js";
166
182
  import type { QtiResponseCondition } from "./processing.js";
167
183
  import type { QtiResponseElse } from "./processing.js";
168
184
  import type { QtiResponseIf } from "./processing.js";
@@ -255,6 +271,15 @@ type BaseProps<T extends HTMLElement> = {
255
271
 
256
272
  type BaseEvents = {};
257
273
 
274
+ export type anonymous_0Props = {};
275
+
276
+ export type anonymous_0SolidJsProps = {
277
+ /** Set the innerHTML of the element */
278
+ innerHTML?: string;
279
+ /** Set the textContent of the element */
280
+ textContent?: string | number;
281
+ };
282
+
258
283
  export type ItemContainerProps = {
259
284
  /** URL of the item to load */
260
285
  "item-url"?: ItemContainer["itemURL"];
@@ -1630,6 +1655,199 @@ export type QtiAssociateInteractionSolidJsProps = {
1630
1655
  textContent?: string | number;
1631
1656
  };
1632
1657
 
1658
+ export type QtiSimpleChoiceProps = {
1659
+ /** Required. Value recorded in the response when this choice is selected, or its position when used for ordering. */
1660
+ identifier?: QtiSimpleChoice["identifier"];
1661
+ /** Pins this choice in place when the enclosing interaction is shuffled. */
1662
+ fixed?: QtiSimpleChoice["fixed"];
1663
+ /** Identifier of a template variable controlling this choice's visibility. */
1664
+ "template-identifier"?: QtiSimpleChoice["templateIdentifier"];
1665
+ /** Identifier of a template variable controlling this choice's visibility. */
1666
+ templateIdentifier?: QtiSimpleChoice["templateIdentifier"];
1667
+ /** How `template-identifier` controls visibility. */
1668
+ "show-hide"?: QtiSimpleChoice["showHide"];
1669
+ /** How `template-identifier` controls visibility. */
1670
+ showHide?: QtiSimpleChoice["showHide"];
1671
+ /** */
1672
+ tabindex?: QtiSimpleChoice["tabIndex"];
1673
+ /** */
1674
+ tabIndex?: QtiSimpleChoice["tabIndex"];
1675
+ /** */
1676
+ "aria-disabled"?: QtiSimpleChoice["disabled"];
1677
+ /** */
1678
+ disabled?: QtiSimpleChoice["disabled"];
1679
+ /** */
1680
+ "aria-readonly"?: QtiSimpleChoice["readonly"];
1681
+ /** */
1682
+ readonly?: QtiSimpleChoice["readonly"];
1683
+ /** */
1684
+ marker?: QtiSimpleChoice["marker"];
1685
+ /** */
1686
+ internals?: QtiSimpleChoice["internals"];
1687
+ };
1688
+
1689
+ export type QtiSimpleChoiceSolidJsProps = {
1690
+ /** Required. Value recorded in the response when this choice is selected, or its position when used for ordering. */
1691
+ "prop:identifier"?: QtiSimpleChoice["identifier"];
1692
+ /** Pins this choice in place when the enclosing interaction is shuffled. */
1693
+ "prop:fixed"?: QtiSimpleChoice["fixed"];
1694
+ /** Identifier of a template variable controlling this choice's visibility. */
1695
+ "attr:template-identifier"?: QtiSimpleChoice["templateIdentifier"];
1696
+ /** Identifier of a template variable controlling this choice's visibility. */
1697
+ "prop:templateIdentifier"?: QtiSimpleChoice["templateIdentifier"];
1698
+ /** How `template-identifier` controls visibility. */
1699
+ "attr:show-hide"?: QtiSimpleChoice["showHide"];
1700
+ /** How `template-identifier` controls visibility. */
1701
+ "prop:showHide"?: QtiSimpleChoice["showHide"];
1702
+ /** */
1703
+ "attr:tabindex"?: QtiSimpleChoice["tabIndex"];
1704
+ /** */
1705
+ "prop:tabIndex"?: QtiSimpleChoice["tabIndex"];
1706
+ /** */
1707
+ "bool:aria-disabled"?: QtiSimpleChoice["disabled"];
1708
+ /** */
1709
+ "prop:disabled"?: QtiSimpleChoice["disabled"];
1710
+ /** */
1711
+ "bool:aria-readonly"?: QtiSimpleChoice["readonly"];
1712
+ /** */
1713
+ "prop:readonly"?: QtiSimpleChoice["readonly"];
1714
+ /** */
1715
+ "prop:marker"?: QtiSimpleChoice["marker"];
1716
+ /** */
1717
+ "prop:internals"?: QtiSimpleChoice["internals"];
1718
+
1719
+ /** Set the innerHTML of the element */
1720
+ innerHTML?: string;
1721
+ /** Set the textContent of the element */
1722
+ textContent?: string | number;
1723
+ };
1724
+
1725
+ export type QtiChoiceInteractionProps = {
1726
+ /** Required. Identifier of the bound response variable. */
1727
+ "response-identifier"?: QtiChoiceInteraction["responseIdentifier"];
1728
+ /** Required. Identifier of the bound response variable. */
1729
+ responseIdentifier?: QtiChoiceInteraction["responseIdentifier"];
1730
+ /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
1731
+ "max-choices"?: QtiChoiceInteraction["maxChoices"];
1732
+ /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
1733
+ maxChoices?: QtiChoiceInteraction["maxChoices"];
1734
+ /** Minimum selectable choices for a valid response. */
1735
+ "min-choices"?: QtiChoiceInteraction["minChoices"];
1736
+ /** Minimum selectable choices for a valid response. */
1737
+ minChoices?: QtiChoiceInteraction["minChoices"];
1738
+ /** @deprecated , use 'qti-orientation-horizontal' or 'qti-orientation-vertical' instead - Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary. */
1739
+ orientation?: QtiChoiceInteraction["orientation"];
1740
+ /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
1741
+ shuffle?: unknown;
1742
+ /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
1743
+ undefined?: unknown;
1744
+ /** QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`. */
1745
+ class?: QtiChoiceInteraction["class"];
1746
+ /** */
1747
+ response?: QtiChoiceInteraction["response"];
1748
+ /** */
1749
+ disabled?: QtiChoiceInteraction["disabled"];
1750
+ /** */
1751
+ readonly?: QtiChoiceInteraction["readonly"];
1752
+ /** */
1753
+ name?: QtiChoiceInteraction["name"];
1754
+ /** */
1755
+ value?: QtiChoiceInteraction["value"];
1756
+ /** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
1757
+
1758
+ **Public so it can be assigned directly, which is the development-time route.** An interaction
1759
+ has to work standalone, and in a story or a spec there is usually no provider above it — so
1760
+ setting the field is all that is needed:
1761
+
1762
+ orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
1763
+
1764
+ With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
1765
+ provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
1766
+ field. There is no merging — set the value on the provider in that case.
1767
+
1768
+ In a lit-html template, bind it as a property rather than assigning after the fact:
1769
+
1770
+ html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
1771
+
1772
+ The binding is committed on the detached template clone, before the fragment is inserted, so it
1773
+ is in place by `connectedCallback` — which matters for anything that reads config on connect.
1774
+
1775
+ It was `protected`, which fooled nobody: every caller reached it anyway through an
1776
+ `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
1777
+ casts, rather than pretending at an encapsulation the type system was the only thing enforcing. */
1778
+ configContext?: QtiChoiceInteraction["configContext"];
1779
+
1780
+ /** */
1781
+ "onqti-register-interaction"?: (e: CustomEvent) => void;
1782
+ /** */
1783
+ "onqti-interaction-response"?: (e: CustomEvent) => void;
1784
+ };
1785
+
1786
+ export type QtiChoiceInteractionSolidJsProps = {
1787
+ /** Required. Identifier of the bound response variable. */
1788
+ "attr:response-identifier"?: QtiChoiceInteraction["responseIdentifier"];
1789
+ /** Required. Identifier of the bound response variable. */
1790
+ "prop:responseIdentifier"?: QtiChoiceInteraction["responseIdentifier"];
1791
+ /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
1792
+ "attr:max-choices"?: QtiChoiceInteraction["maxChoices"];
1793
+ /** Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item. */
1794
+ "prop:maxChoices"?: QtiChoiceInteraction["maxChoices"];
1795
+ /** Minimum selectable choices for a valid response. */
1796
+ "attr:min-choices"?: QtiChoiceInteraction["minChoices"];
1797
+ /** Minimum selectable choices for a valid response. */
1798
+ "prop:minChoices"?: QtiChoiceInteraction["minChoices"];
1799
+ /** @deprecated , use 'qti-orientation-horizontal' or 'qti-orientation-vertical' instead - Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary. */
1800
+ "prop:orientation"?: QtiChoiceInteraction["orientation"];
1801
+ /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
1802
+ "bool:shuffle"?: unknown;
1803
+ /** Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element. */
1804
+ "prop:undefined"?: unknown;
1805
+ /** QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`. */
1806
+ "prop:class"?: QtiChoiceInteraction["class"];
1807
+ /** */
1808
+ "prop:response"?: QtiChoiceInteraction["response"];
1809
+ /** */
1810
+ "prop:disabled"?: QtiChoiceInteraction["disabled"];
1811
+ /** */
1812
+ "prop:readonly"?: QtiChoiceInteraction["readonly"];
1813
+ /** */
1814
+ "prop:name"?: QtiChoiceInteraction["name"];
1815
+ /** */
1816
+ "prop:value"?: QtiChoiceInteraction["value"];
1817
+ /** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
1818
+
1819
+ **Public so it can be assigned directly, which is the development-time route.** An interaction
1820
+ has to work standalone, and in a story or a spec there is usually no provider above it — so
1821
+ setting the field is all that is needed:
1822
+
1823
+ orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
1824
+
1825
+ With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
1826
+ provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
1827
+ field. There is no merging — set the value on the provider in that case.
1828
+
1829
+ In a lit-html template, bind it as a property rather than assigning after the fact:
1830
+
1831
+ html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
1832
+
1833
+ The binding is committed on the detached template clone, before the fragment is inserted, so it
1834
+ is in place by `connectedCallback` — which matters for anything that reads config on connect.
1835
+
1836
+ It was `protected`, which fooled nobody: every caller reached it anyway through an
1837
+ `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
1838
+ casts, rather than pretending at an encapsulation the type system was the only thing enforcing. */
1839
+ "prop:configContext"?: QtiChoiceInteraction["configContext"];
1840
+ /** */
1841
+ "on:qti-register-interaction"?: (e: CustomEvent) => void;
1842
+ /** */
1843
+ "on:qti-interaction-response"?: (e: CustomEvent) => void;
1844
+
1845
+ /** Set the innerHTML of the element */
1846
+ innerHTML?: string;
1847
+ /** Set the textContent of the element */
1848
+ textContent?: string | number;
1849
+ };
1850
+
1633
1851
  export type QtiAssociableHotspotProps = {
1634
1852
  /** */
1635
1853
  identifier?: QtiAssociableHotspot["identifier"];
@@ -1980,220 +2198,27 @@ export type QtiPromptSolidJsProps = {
1980
2198
  textContent?: string | number;
1981
2199
  };
1982
2200
 
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"];
2201
+ export type QtiCustomInteractionProps = {
1996
2202
  /** */
1997
- tabindex?: QtiSimpleChoice["tabIndex"];
2203
+ data?: QtiCustomInteraction["data"];
1998
2204
  /** */
1999
- tabIndex?: QtiSimpleChoice["tabIndex"];
2205
+ "data-base-item"?: QtiCustomInteraction["baseItemUrl"];
2000
2206
  /** */
2001
- "aria-disabled"?: QtiSimpleChoice["disabled"];
2207
+ baseItemUrl?: QtiCustomInteraction["baseItemUrl"];
2002
2208
  /** */
2003
- disabled?: QtiSimpleChoice["disabled"];
2209
+ "data-base-ref"?: QtiCustomInteraction["baseRefUrl"];
2004
2210
  /** */
2005
- "aria-readonly"?: QtiSimpleChoice["readonly"];
2211
+ baseRefUrl?: QtiCustomInteraction["baseRefUrl"];
2006
2212
  /** */
2007
- readonly?: QtiSimpleChoice["readonly"];
2213
+ id?: QtiCustomInteraction["id"];
2008
2214
  /** */
2009
- marker?: QtiSimpleChoice["marker"];
2215
+ "response-identifier"?: QtiCustomInteraction["responseIdentifier"];
2010
2216
  /** */
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"];
2217
+ responseIdentifier?: QtiCustomInteraction["responseIdentifier"];
2027
2218
  /** */
2028
- "attr:tabindex"?: QtiSimpleChoice["tabIndex"];
2219
+ disabled?: QtiCustomInteraction["disabled"];
2029
2220
  /** */
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"];
2134
- /** */
2135
- "prop:disabled"?: QtiChoiceInteraction["disabled"];
2136
- /** */
2137
- "prop:readonly"?: QtiChoiceInteraction["readonly"];
2138
- /** */
2139
- "prop:name"?: QtiChoiceInteraction["name"];
2140
- /** */
2141
- "prop:value"?: QtiChoiceInteraction["value"];
2142
- /** Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
2143
-
2144
- **Public so it can be assigned directly, which is the development-time route.** An interaction
2145
- has to work standalone, and in a story or a spec there is usually no provider above it — so
2146
- setting the field is all that is needed:
2147
-
2148
- orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
2149
-
2150
- With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
2151
- provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
2152
- field. There is no merging — set the value on the provider in that case.
2153
-
2154
- In a lit-html template, bind it as a property rather than assigning after the fact:
2155
-
2156
- html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
2157
-
2158
- The binding is committed on the detached template clone, before the fragment is inserted, so it
2159
- is in place by `connectedCallback` — which matters for anything that reads config on connect.
2160
-
2161
- It was `protected`, which fooled nobody: every caller reached it anyway through an
2162
- `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
2163
- casts, rather than pretending at an encapsulation the type system was the only thing enforcing. */
2164
- "prop:configContext"?: QtiChoiceInteraction["configContext"];
2165
- /** */
2166
- "on:qti-register-interaction"?: (e: CustomEvent) => void;
2167
- /** */
2168
- "on:qti-interaction-response"?: (e: CustomEvent) => void;
2169
-
2170
- /** Set the innerHTML of the element */
2171
- innerHTML?: string;
2172
- /** Set the textContent of the element */
2173
- textContent?: string | number;
2174
- };
2175
-
2176
- export type QtiCustomInteractionProps = {
2177
- /** */
2178
- data?: QtiCustomInteraction["data"];
2179
- /** */
2180
- "data-base-item"?: QtiCustomInteraction["baseItemUrl"];
2181
- /** */
2182
- baseItemUrl?: QtiCustomInteraction["baseItemUrl"];
2183
- /** */
2184
- "data-base-ref"?: QtiCustomInteraction["baseRefUrl"];
2185
- /** */
2186
- baseRefUrl?: QtiCustomInteraction["baseRefUrl"];
2187
- /** */
2188
- id?: QtiCustomInteraction["id"];
2189
- /** */
2190
- "response-identifier"?: QtiCustomInteraction["responseIdentifier"];
2191
- /** */
2192
- responseIdentifier?: QtiCustomInteraction["responseIdentifier"];
2193
- /** */
2194
- disabled?: QtiCustomInteraction["disabled"];
2195
- /** */
2196
- readonly?: QtiCustomInteraction["readonly"];
2221
+ readonly?: QtiCustomInteraction["readonly"];
2197
2222
  /** */
2198
2223
  name?: QtiCustomInteraction["name"];
2199
2224
  /** */
@@ -5498,6 +5523,42 @@ export type QtiLookupOutcomeValueSolidJsProps = {
5498
5523
  textContent?: string | number;
5499
5524
  };
5500
5525
 
5526
+ export type QtiOutcomeConditionProps = {};
5527
+
5528
+ export type QtiOutcomeConditionSolidJsProps = {
5529
+ /** Set the innerHTML of the element */
5530
+ innerHTML?: string;
5531
+ /** Set the textContent of the element */
5532
+ textContent?: string | number;
5533
+ };
5534
+
5535
+ export type QtiOutcomeElseProps = {};
5536
+
5537
+ export type QtiOutcomeElseSolidJsProps = {
5538
+ /** Set the innerHTML of the element */
5539
+ innerHTML?: string;
5540
+ /** Set the textContent of the element */
5541
+ textContent?: string | number;
5542
+ };
5543
+
5544
+ export type QtiOutcomeIfProps = {};
5545
+
5546
+ export type QtiOutcomeIfSolidJsProps = {
5547
+ /** Set the innerHTML of the element */
5548
+ innerHTML?: string;
5549
+ /** Set the textContent of the element */
5550
+ textContent?: string | number;
5551
+ };
5552
+
5553
+ export type QtiOutcomeElseIfProps = {};
5554
+
5555
+ export type QtiOutcomeElseIfSolidJsProps = {
5556
+ /** Set the innerHTML of the element */
5557
+ innerHTML?: string;
5558
+ /** Set the textContent of the element */
5559
+ textContent?: string | number;
5560
+ };
5561
+
5501
5562
  export type QtiResponseConditionProps = {};
5502
5563
 
5503
5564
  export type QtiResponseConditionSolidJsProps = {
@@ -5852,6 +5913,11 @@ export type TestShowCorrectResponseSolidJsProps = {
5852
5913
  };
5853
5914
 
5854
5915
  export type CustomElements = {
5916
+ /**
5917
+ *
5918
+ */
5919
+ PROBE_TAG: Partial<anonymous_0Props & BaseProps<anonymous_0> & BaseEvents>;
5920
+
5855
5921
  /**
5856
5922
  * `<item-container>` is a custom element designed for hosting the qti-assessment-item.
5857
5923
  * The `qti-assessment-item` will be placed inside the shadow DOM of this element.
@@ -7062,6 +7128,134 @@ export type CustomElements = {
7062
7128
  BaseEvents
7063
7129
  >;
7064
7130
 
7131
+ /**
7132
+ * A choice, used by `qti-choice-interaction` and `qti-order-interaction`.
7133
+ *
7134
+ * The `control` part is one box whose *role* is carried by state, not by its name: a radio
7135
+ * circle under `:state(radio)`, a checkbox square under `:state(checkbox)`, and a drag grip
7136
+ * when the choice is draggable. Style it as `qti-simple-choice::part(control)`.
7137
+ *
7138
+ * ## Attributes & Properties
7139
+ *
7140
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
7141
+ *
7142
+ * - `identifier`: Required. Value recorded in the response when this choice is selected, or its position when used for ordering.
7143
+ * - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
7144
+ * - `template-identifier`/`templateIdentifier`: Identifier of a template variable controlling this choice's visibility.
7145
+ * - `show-hide`/`showHide`: How `template-identifier` controls visibility.
7146
+ * - `tabindex`/`tabIndex`: undefined
7147
+ * - `aria-disabled`/`disabled`: undefined
7148
+ * - `aria-readonly`/`readonly`: undefined
7149
+ * - `marker`: undefined (property only)
7150
+ * - `checked`: undefined (property only) (readonly)
7151
+ * - `internals`: undefined (property only)
7152
+ *
7153
+ * ## Events
7154
+ *
7155
+ * Events that will be emitted by the component.
7156
+ *
7157
+ * - `undefined`: undefined
7158
+ *
7159
+ * ## Methods
7160
+ *
7161
+ * Methods that can be called to access component functionality.
7162
+ *
7163
+ * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
7164
+ * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
7165
+ *
7166
+ * ## CSS Parts
7167
+ *
7168
+ * Custom selectors for styling elements within the component.
7169
+ *
7170
+ * - `control`: The box before the label (radio / checkbox / drag grip).
7171
+ * - `control-mark`: The mark inside the box (inner dot / checkmark).
7172
+ * - `label`: The default slot holding the choice content.
7173
+ * - `marker`: The order-number badge, when `marker` is set.
7174
+ */
7175
+ "qti-simple-choice": Partial<
7176
+ QtiSimpleChoiceProps & BaseProps<QtiSimpleChoice> & BaseEvents
7177
+ >;
7178
+
7179
+ /**
7180
+ * A single-response or multiple-response choice interaction.
7181
+ *
7182
+ * ## Attributes & Properties
7183
+ *
7184
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
7185
+ *
7186
+ * - `response-identifier`/`responseIdentifier`: Required. Identifier of the bound response variable.
7187
+ * - `max-choices`/`maxChoices`: Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item.
7188
+ * - `min-choices`/`minChoices`: Minimum selectable choices for a valid response.
7189
+ * - `orientation`: Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary.
7190
+ * - `shuffle`/`undefined`: Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element.
7191
+ * - `class`: QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`.
7192
+ * - `response`: undefined
7193
+ * - `disabled`: undefined
7194
+ * - `readonly`: undefined
7195
+ * - `name`: undefined
7196
+ * - `value`: undefined (property only)
7197
+ * - `configContext`: Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
7198
+ *
7199
+ * **Public so it can be assigned directly, which is the development-time route.** An interaction
7200
+ * has to work standalone, and in a story or a spec there is usually no provider above it — so
7201
+ * setting the field is all that is needed:
7202
+ *
7203
+ * orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
7204
+ *
7205
+ * With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
7206
+ * provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
7207
+ * field. There is no merging — set the value on the provider in that case.
7208
+ *
7209
+ * In a lit-html template, bind it as a property rather than assigning after the fact:
7210
+ *
7211
+ * html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
7212
+ *
7213
+ * The binding is committed on the detached template clone, before the fragment is inserted, so it
7214
+ * is in place by `connectedCallback` — which matters for anything that reads config on connect.
7215
+ *
7216
+ * It was `protected`, which fooled nobody: every caller reached it anyway through an
7217
+ * `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
7218
+ * casts, rather than pretending at an encapsulation the type system was the only thing enforcing. (property only)
7219
+ * - `internals`: undefined (property only) (readonly)
7220
+ * - `isInline`: undefined (property only) (readonly)
7221
+ * - `responseVariable`: undefined (property only) (readonly)
7222
+ *
7223
+ * ## Events
7224
+ *
7225
+ * Events that will be emitted by the component.
7226
+ *
7227
+ * - `qti-register-interaction`: undefined
7228
+ * - `qti-interaction-response`: undefined
7229
+ *
7230
+ * ## Slots
7231
+ *
7232
+ * Areas where markup can be added to the component.
7233
+ *
7234
+ * - `prompt`: The prompt shown above the choices.
7235
+ * - `(default)`: Default slot for `qti-simple-choice` elements.
7236
+ *
7237
+ * ## Methods
7238
+ *
7239
+ * Methods that can be called to access component functionality.
7240
+ *
7241
+ * - `validate() => boolean`: undefined
7242
+ * - `reportValidity() => boolean`: undefined
7243
+ * - `reset() => void`: undefined
7244
+ * - `formResetCallback() => void`: undefined
7245
+ * - `saveResponse(value: string | string[], state?: string | null) => void`: undefined
7246
+ *
7247
+ * ## CSS Parts
7248
+ *
7249
+ * Custom selectors for styling elements within the component.
7250
+ *
7251
+ * - `prompt`: Wrapper around the prompt slot.
7252
+ * - `slot`: Wrapper around the default slot containing the choices.
7253
+ * - `message`: Live validation message region (role="alert").
7254
+ */
7255
+ "qti-choice-interaction": Partial<
7256
+ QtiChoiceInteractionProps & BaseProps<QtiChoiceInteraction> & BaseEvents
7257
+ >;
7258
+
7065
7259
  /**
7066
7260
  * A drop target positioned over an image. Like `qti-gap`, it renders the chips it holds from
7067
7261
  * `dragDropContext` rather than having them appended into it.
@@ -7238,175 +7432,47 @@ export type CustomElements = {
7238
7432
  * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
7239
7433
  */
7240
7434
  "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
7275
- >;
7276
-
7277
- /**
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)`.
7288
- *
7289
- * ## Attributes & Properties
7290
- *
7291
- * Component attributes and properties that can be applied to the element or by using JavaScript.
7292
- *
7293
- * - `identifier`: Required. Value recorded in the response when this choice is selected, or its position when used for ordering.
7294
- * - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
7295
- * - `template-identifier`/`templateIdentifier`: Identifier of a template variable controlling this choice's visibility.
7296
- * - `show-hide`/`showHide`: How `template-identifier` controls visibility.
7297
- * - `tabindex`/`tabIndex`: undefined
7298
- * - `aria-disabled`/`disabled`: undefined
7299
- * - `aria-readonly`/`readonly`: undefined
7300
- * - `marker`: undefined (property only)
7301
- * - `checked`: undefined (property only) (readonly)
7302
- * - `internals`: undefined (property only)
7303
- *
7304
- * ## Events
7305
- *
7306
- * Events that will be emitted by the component.
7307
- *
7308
- * - `undefined`: undefined
7309
- *
7310
- * ## Methods
7311
- *
7312
- * Methods that can be called to access component functionality.
7313
- *
7314
- * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
7315
- * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
7316
- *
7317
- * ## CSS Parts
7318
- *
7319
- * Custom selectors for styling elements within the component.
7320
- *
7321
- * - `control`: The box before the label (radio / checkbox / drag grip).
7322
- * - `control-mark`: The mark inside the box (inner dot / checkmark).
7323
- * - `label`: The default slot holding the choice content.
7324
- * - `marker`: The order-number badge, when `marker` is set.
7325
- */
7326
- "qti-simple-choice": Partial<
7327
- QtiSimpleChoiceProps & BaseProps<QtiSimpleChoice> & BaseEvents
7328
- >;
7329
-
7330
- /**
7331
- * A single-response or multiple-response choice interaction.
7332
- *
7333
- * ## Attributes & Properties
7334
- *
7335
- * Component attributes and properties that can be applied to the element or by using JavaScript.
7336
- *
7337
- * - `response-identifier`/`responseIdentifier`: Required. Identifier of the bound response variable.
7338
- * - `max-choices`/`maxChoices`: Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item.
7339
- * - `min-choices`/`minChoices`: Minimum selectable choices for a valid response.
7340
- * - `orientation`: Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary.
7341
- * - `shuffle`/`undefined`: Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element.
7342
- * - `class`: QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`.
7343
- * - `response`: undefined
7344
- * - `disabled`: undefined
7345
- * - `readonly`: undefined
7346
- * - `name`: undefined
7347
- * - `value`: undefined (property only)
7348
- * - `configContext`: Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
7349
- *
7350
- * **Public so it can be assigned directly, which is the development-time route.** An interaction
7351
- * has to work standalone, and in a story or a spec there is usually no provider above it — so
7352
- * setting the field is all that is needed:
7353
- *
7354
- * orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
7355
- *
7356
- * With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
7357
- * provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
7358
- * field. There is no merging — set the value on the provider in that case.
7359
- *
7360
- * In a lit-html template, bind it as a property rather than assigning after the fact:
7361
- *
7362
- * html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
7363
- *
7364
- * The binding is committed on the detached template clone, before the fragment is inserted, so it
7365
- * is in place by `connectedCallback` — which matters for anything that reads config on connect.
7366
- *
7367
- * It was `protected`, which fooled nobody: every caller reached it anyway through an
7368
- * `as any` / `as { configContext?: … }` cast. Public says what was already true and removes the
7369
- * casts, rather than pretending at an encapsulation the type system was the only thing enforcing. (property only)
7370
- * - `internals`: undefined (property only) (readonly)
7371
- * - `isInline`: undefined (property only) (readonly)
7372
- * - `responseVariable`: undefined (property only) (readonly)
7435
+
7436
+ /**
7437
+ * An option in the dropdown of `qti-inline-choice-interaction`.
7373
7438
  *
7374
- * ## Events
7439
+ * ## Attributes & Properties
7375
7440
  *
7376
- * Events that will be emitted by the component.
7441
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
7377
7442
  *
7378
- * - `qti-register-interaction`: undefined
7379
- * - `qti-interaction-response`: undefined
7443
+ * - `identifier`: Required. Value recorded in the response when this option is selected.
7444
+ * - `fixed`/`undefined`: Pins this option in place when the interaction is shuffled.
7445
+ * - `template-identifier`/`undefined`: Not implemented. Identifier of a template variable controlling this option's visibility.
7446
+ * - `show-hide`/`undefined`: Not implemented. How `template-identifier` controls visibility.
7447
+ * - `tabindex`/`tabIndex`: undefined
7448
+ * - `aria-disabled`/`disabled`: undefined
7449
+ * - `aria-readonly`/`readonly`: undefined
7450
+ * - `internals`: undefined (property only)
7380
7451
  *
7381
- * ## Slots
7452
+ * ## Events
7382
7453
  *
7383
- * Areas where markup can be added to the component.
7454
+ * Events that will be emitted by the component.
7384
7455
  *
7385
- * - `prompt`: The prompt shown above the choices.
7386
- * - `(default)`: Default slot for `qti-simple-choice` elements.
7456
+ * - `qti-inline-choice-register`: undefined
7457
+ * - `qti-inline-choice-select`: undefined
7458
+ * - `undefined`: undefined
7387
7459
  *
7388
7460
  * ## Methods
7389
7461
  *
7390
7462
  * Methods that can be called to access component functionality.
7391
7463
  *
7392
- * - `validate() => boolean`: undefined
7393
- * - `reportValidity() => boolean`: undefined
7394
- * - `reset() => void`: undefined
7395
- * - `formResetCallback() => void`: undefined
7396
- * - `saveResponse(value: string | string[], state?: string | null) => void`: undefined
7397
- *
7398
- * ## CSS Parts
7399
- *
7400
- * Custom selectors for styling elements within the component.
7401
- *
7402
- * - `prompt`: Wrapper around the prompt slot.
7403
- * - `slot`: Wrapper around the default slot containing the choices.
7404
- * - `message`: Live validation message region (role="alert").
7464
+ * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
7465
+ * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
7405
7466
  */
7406
- "qti-choice-interaction": Partial<
7407
- QtiChoiceInteractionProps & BaseProps<QtiChoiceInteraction> & BaseEvents
7467
+ "qti-inline-choice": Partial<
7468
+ QtiInlineChoiceProps & BaseProps<QtiInlineChoice> & BaseEvents
7408
7469
  >;
7409
7470
 
7471
+ /**
7472
+ *
7473
+ */
7474
+ "qti-prompt": Partial<QtiPromptProps & BaseProps<QtiPrompt> & BaseEvents>;
7475
+
7410
7476
  /**
7411
7477
  * QTI Custom Interaction component for legacy CES-based interactions.
7412
7478
  *
@@ -10061,6 +10127,64 @@ export type CustomElements = {
10061
10127
  QtiLookupOutcomeValueProps & BaseProps<QtiLookupOutcomeValue> & BaseEvents
10062
10128
  >;
10063
10129
 
10130
+ /**
10131
+ *
10132
+ *
10133
+ * ## Methods
10134
+ *
10135
+ * Methods that can be called to access component functionality.
10136
+ *
10137
+ * - `process() => void`: undefined
10138
+ */
10139
+ "qti-outcome-condition": Partial<
10140
+ QtiOutcomeConditionProps & BaseProps<QtiOutcomeCondition> & BaseEvents
10141
+ >;
10142
+
10143
+ /**
10144
+ *
10145
+ *
10146
+ * ## Methods
10147
+ *
10148
+ * Methods that can be called to access component functionality.
10149
+ *
10150
+ * - `shouldProcess() => boolean`: Whether this branch's sub-rules should be processed.
10151
+ * - `getSubRules() => QtiRule[]`: The sub-rules to process when this branch applies.
10152
+ * - `process() => void`: undefined
10153
+ */
10154
+ "qti-outcome-else": Partial<
10155
+ QtiOutcomeElseProps & BaseProps<QtiOutcomeElse> & BaseEvents
10156
+ >;
10157
+
10158
+ /**
10159
+ *
10160
+ *
10161
+ * ## Methods
10162
+ *
10163
+ * Methods that can be called to access component functionality.
10164
+ *
10165
+ * - `shouldProcess() => boolean`: Whether this branch's sub-rules should be processed.
10166
+ * - `getSubRules() => QtiRule[]`: The sub-rules to process when this branch applies.
10167
+ * - `process() => void`: undefined
10168
+ */
10169
+ "qti-outcome-if": Partial<
10170
+ QtiOutcomeIfProps & BaseProps<QtiOutcomeIf> & BaseEvents
10171
+ >;
10172
+
10173
+ /**
10174
+ *
10175
+ *
10176
+ * ## Methods
10177
+ *
10178
+ * Methods that can be called to access component functionality.
10179
+ *
10180
+ * - `shouldProcess() => boolean`: Whether this branch's sub-rules should be processed.
10181
+ * - `getSubRules() => QtiRule[]`: The sub-rules to process when this branch applies.
10182
+ * - `process() => void`: undefined
10183
+ */
10184
+ "qti-outcome-else-if": Partial<
10185
+ QtiOutcomeElseIfProps & BaseProps<QtiOutcomeElseIf> & BaseEvents
10186
+ >;
10187
+
10064
10188
  /**
10065
10189
  *
10066
10190
  *
@@ -10081,8 +10205,8 @@ export type CustomElements = {
10081
10205
  *
10082
10206
  * Methods that can be called to access component functionality.
10083
10207
  *
10084
- * - `calculate() => void`: undefined
10085
- * - `getSubRules() => QtiRule[]`: undefined
10208
+ * - `shouldProcess() => boolean`: Whether this branch's sub-rules should be processed.
10209
+ * - `getSubRules() => QtiRule[]`: The sub-rules to process when this branch applies.
10086
10210
  * - `process() => void`: undefined
10087
10211
  */
10088
10212
  "qti-response-else": Partial<
@@ -10096,8 +10220,8 @@ export type CustomElements = {
10096
10220
  *
10097
10221
  * Methods that can be called to access component functionality.
10098
10222
  *
10099
- * - `calculate() => void`: undefined
10100
- * - `getSubRules() => QtiRule[]`: undefined
10223
+ * - `shouldProcess() => boolean`: Whether this branch's sub-rules should be processed.
10224
+ * - `getSubRules() => QtiRule[]`: The sub-rules to process when this branch applies.
10101
10225
  * - `process() => void`: undefined
10102
10226
  */
10103
10227
  "qti-response-if": Partial<
@@ -10111,8 +10235,8 @@ export type CustomElements = {
10111
10235
  *
10112
10236
  * Methods that can be called to access component functionality.
10113
10237
  *
10114
- * - `calculate() => void`: undefined
10115
- * - `getSubRules() => QtiRule[]`: undefined
10238
+ * - `shouldProcess() => boolean`: Whether this branch's sub-rules should be processed.
10239
+ * - `getSubRules() => QtiRule[]`: The sub-rules to process when this branch applies.
10116
10240
  * - `process() => void`: undefined
10117
10241
  */
10118
10242
  "qti-response-else-if": Partial<
@@ -10364,6 +10488,16 @@ export type CustomElements = {
10364
10488
  };
10365
10489
 
10366
10490
  export type CustomElementsSolidJs = {
10491
+ /**
10492
+ *
10493
+ */
10494
+ PROBE_TAG: Partial<
10495
+ anonymous_0Props &
10496
+ anonymous_0SolidJsProps &
10497
+ BaseProps<anonymous_0> &
10498
+ BaseEvents
10499
+ >;
10500
+
10367
10501
  /**
10368
10502
  * `<item-container>` is a custom element designed for hosting the qti-assessment-item.
10369
10503
  * The `qti-assessment-item` will be placed inside the shadow DOM of this element.
@@ -11652,74 +11786,208 @@ export type CustomElementsSolidJs = {
11652
11786
  *
11653
11787
  * - `undefined`: undefined
11654
11788
  *
11655
- * ## Methods
11789
+ * ## Methods
11790
+ *
11791
+ * Methods that can be called to access component functionality.
11792
+ *
11793
+ * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
11794
+ * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
11795
+ */
11796
+ "qti-simple-associable-choice": Partial<
11797
+ QtiSimpleAssociableChoiceProps &
11798
+ QtiSimpleAssociableChoiceSolidJsProps &
11799
+ BaseProps<QtiSimpleAssociableChoice> &
11800
+ BaseEvents
11801
+ >;
11802
+
11803
+ /**
11804
+ * Drag-and-drop associate interaction: candidates pair associable choices.
11805
+ *
11806
+ * ## Attributes & Properties
11807
+ *
11808
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
11809
+ *
11810
+ * - `allowReorder`: undefined (property only)
11811
+ * - `sortablePlaceholderConfig`: undefined (property only)
11812
+ * - `sortableAnimationConfig`: undefined (property only)
11813
+ * - `isDraggingFromSlot`: undefined (property only) (readonly)
11814
+ *
11815
+ * ## Slots
11816
+ *
11817
+ * Areas where markup can be added to the component.
11818
+ *
11819
+ * - `prompt`: The prompt shown above the choices.
11820
+ * - `qti-simple-associable-choice`: The associable choice sources.
11821
+ *
11822
+ * ## Methods
11823
+ *
11824
+ * Methods that can be called to access component functionality.
11825
+ *
11826
+ * - `totalAssociationsFromState() => number`: How many associations the candidate has made.
11827
+ *
11828
+ * The mixin counts placed chips, which is right for gap-match — one chip in one gap is one
11829
+ * association — and wrong here. An association is a *pair*, so three associations are six chips,
11830
+ * and `max-associations="3"` compared 6 against 3 and declared the item invalid the moment it was
11831
+ * correctly filled in.
11832
+ *
11833
+ * A half-filled row is not an association yet, and `getResponse()` already knows that: it emits a
11834
+ * pair only when both sides hold a chip. Counting its entries counts associations by definition,
11835
+ * and keeps the number validation sees equal to the number the response reports.
11836
+ * - `getValue(val: string[]) => void`: undefined
11837
+ * - `initiateDrag(dragElement: HTMLElement, startX: number, startY: number, inputType: 'mouse' | 'touch', rest: [eventSource?: 'pointer' | 'mouse' | 'touch']) => void`: undefined
11838
+ * - `onSortableDragMove(clientX: number, clientY: number) => void`: undefined
11839
+ * - `allowDrop(draggable: HTMLElement, droppable: HTMLElement) => boolean`: undefined
11840
+ * - `handleDrop(draggable: HTMLElement, droppable: HTMLElement) => void`: undefined
11841
+ * - `handleInvalidDrop(dragSource: HTMLElement | null) => void`: undefined
11842
+ *
11843
+ * ## CSS Parts
11844
+ *
11845
+ * Custom selectors for styling elements within the component.
11846
+ *
11847
+ * - `drags`: Wrapper around the associable choice slot.
11848
+ * - `drops`: The container holding all drop targets.
11849
+ * - `drop-row`: Container for one left/right drop pair.
11850
+ * - `drop`: Each individual drop target.
11851
+ * - `message`: Live validation message region (role="alert").
11852
+ */
11853
+ "qti-associate-interaction": Partial<
11854
+ QtiAssociateInteractionProps &
11855
+ QtiAssociateInteractionSolidJsProps &
11856
+ BaseProps<QtiAssociateInteraction> &
11857
+ BaseEvents
11858
+ >;
11859
+
11860
+ /**
11861
+ * A choice, used by `qti-choice-interaction` and `qti-order-interaction`.
11862
+ *
11863
+ * The `control` part is one box whose *role* is carried by state, not by its name: a radio
11864
+ * circle under `:state(radio)`, a checkbox square under `:state(checkbox)`, and a drag grip
11865
+ * when the choice is draggable. Style it as `qti-simple-choice::part(control)`.
11866
+ *
11867
+ * ## Attributes & Properties
11868
+ *
11869
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
11870
+ *
11871
+ * - `identifier`: Required. Value recorded in the response when this choice is selected, or its position when used for ordering.
11872
+ * - `fixed`: Pins this choice in place when the enclosing interaction is shuffled.
11873
+ * - `template-identifier`/`templateIdentifier`: Identifier of a template variable controlling this choice's visibility.
11874
+ * - `show-hide`/`showHide`: How `template-identifier` controls visibility.
11875
+ * - `tabindex`/`tabIndex`: undefined
11876
+ * - `aria-disabled`/`disabled`: undefined
11877
+ * - `aria-readonly`/`readonly`: undefined
11878
+ * - `marker`: undefined (property only)
11879
+ * - `checked`: undefined (property only) (readonly)
11880
+ * - `internals`: undefined (property only)
11881
+ *
11882
+ * ## Events
11883
+ *
11884
+ * Events that will be emitted by the component.
11885
+ *
11886
+ * - `undefined`: undefined
11887
+ *
11888
+ * ## Methods
11889
+ *
11890
+ * Methods that can be called to access component functionality.
11891
+ *
11892
+ * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
11893
+ * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
11894
+ *
11895
+ * ## CSS Parts
11896
+ *
11897
+ * Custom selectors for styling elements within the component.
11898
+ *
11899
+ * - `control`: The box before the label (radio / checkbox / drag grip).
11900
+ * - `control-mark`: The mark inside the box (inner dot / checkmark).
11901
+ * - `label`: The default slot holding the choice content.
11902
+ * - `marker`: The order-number badge, when `marker` is set.
11903
+ */
11904
+ "qti-simple-choice": Partial<
11905
+ QtiSimpleChoiceProps &
11906
+ QtiSimpleChoiceSolidJsProps &
11907
+ BaseProps<QtiSimpleChoice> &
11908
+ BaseEvents
11909
+ >;
11910
+
11911
+ /**
11912
+ * A single-response or multiple-response choice interaction.
11913
+ *
11914
+ * ## Attributes & Properties
11915
+ *
11916
+ * Component attributes and properties that can be applied to the element or by using JavaScript.
11917
+ *
11918
+ * - `response-identifier`/`responseIdentifier`: Required. Identifier of the bound response variable.
11919
+ * - `max-choices`/`maxChoices`: Maximum selectable choices. `1` is a single-response item; `0` means unlimited and makes it a multiple-response item.
11920
+ * - `min-choices`/`minChoices`: Minimum selectable choices for a valid response.
11921
+ * - `orientation`: Deprecated by QTI in favour of the `qti-orientation-*` class vocabulary.
11922
+ * - `shuffle`/`undefined`: Requests choice shuffling. Applied by the transform pipeline (`qti-transformers`), not by this element.
11923
+ * - `class`: QTI shared presentation vocabulary. Space-separated; takes precedence over `orientation`.
11924
+ * - `response`: undefined
11925
+ * - `disabled`: undefined
11926
+ * - `readonly`: undefined
11927
+ * - `name`: undefined
11928
+ * - `value`: undefined (property only)
11929
+ * - `configContext`: Delivery configuration, from the nearest provider — `qti-test` or `qti-item`.
11930
+ *
11931
+ * **Public so it can be assigned directly, which is the development-time route.** An interaction
11932
+ * has to work standalone, and in a story or a spec there is usually no provider above it — so
11933
+ * setting the field is all that is needed:
11934
+ *
11935
+ * orderInteraction.configContext = { allowReorder: false, validationDisplayMode: 'none' };
11936
+ *
11937
+ * With no provider, nothing ever overwrites it. That is the whole contract, and its limit: where a
11938
+ * provider DOES exist it re-emits on its next update and wins, because `@consume` writes this same
11939
+ * field. There is no merging — set the value on the provider in that case.
11940
+ *
11941
+ * In a lit-html template, bind it as a property rather than assigning after the fact:
11942
+ *
11943
+ * html`<qti-order-interaction .configContext=${{ allowReorder: false }}>…`
11656
11944
  *
11657
- * Methods that can be called to access component functionality.
11945
+ * The binding is committed on the detached template clone, before the fragment is inserted, so it
11946
+ * is in place by `connectedCallback` — which matters for anything that reads config on connect.
11658
11947
  *
11659
- * - `handleDisabledChange(_oldValue: boolean, disabled: boolean) => void`: undefined
11660
- * - `handleReadonlyChange(_oldValue: boolean, readonly: boolean) => void`: undefined
11661
- */
11662
- "qti-simple-associable-choice": Partial<
11663
- QtiSimpleAssociableChoiceProps &
11664
- QtiSimpleAssociableChoiceSolidJsProps &
11665
- BaseProps<QtiSimpleAssociableChoice> &
11666
- BaseEvents
11667
- >;
11668
-
11669
- /**
11670
- * Drag-and-drop associate interaction: candidates pair associable choices.
11948
+ * It was `protected`, which fooled nobody: every caller reached it anyway through an
11949
+ * `as any` / `as { configContext?: }` cast. Public says what was already true and removes the
11950
+ * casts, rather than pretending at an encapsulation the type system was the only thing enforcing. (property only)
11951
+ * - `internals`: undefined (property only) (readonly)
11952
+ * - `isInline`: undefined (property only) (readonly)
11953
+ * - `responseVariable`: undefined (property only) (readonly)
11671
11954
  *
11672
- * ## Attributes & Properties
11955
+ * ## Events
11673
11956
  *
11674
- * Component attributes and properties that can be applied to the element or by using JavaScript.
11957
+ * Events that will be emitted by the component.
11675
11958
  *
11676
- * - `allowReorder`: undefined (property only)
11677
- * - `sortablePlaceholderConfig`: undefined (property only)
11678
- * - `sortableAnimationConfig`: undefined (property only)
11679
- * - `isDraggingFromSlot`: undefined (property only) (readonly)
11959
+ * - `qti-register-interaction`: undefined
11960
+ * - `qti-interaction-response`: undefined
11680
11961
  *
11681
11962
  * ## Slots
11682
11963
  *
11683
11964
  * Areas where markup can be added to the component.
11684
11965
  *
11685
11966
  * - `prompt`: The prompt shown above the choices.
11686
- * - `qti-simple-associable-choice`: The associable choice sources.
11967
+ * - `(default)`: Default slot for `qti-simple-choice` elements.
11687
11968
  *
11688
11969
  * ## Methods
11689
11970
  *
11690
11971
  * Methods that can be called to access component functionality.
11691
11972
  *
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
11973
+ * - `validate() => boolean`: undefined
11974
+ * - `reportValidity() => boolean`: undefined
11975
+ * - `reset() => void`: undefined
11976
+ * - `formResetCallback() => void`: undefined
11977
+ * - `saveResponse(value: string | string[], state?: string | null) => void`: undefined
11708
11978
  *
11709
11979
  * ## CSS Parts
11710
11980
  *
11711
11981
  * Custom selectors for styling elements within the component.
11712
11982
  *
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.
11983
+ * - `prompt`: Wrapper around the prompt slot.
11984
+ * - `slot`: Wrapper around the default slot containing the choices.
11717
11985
  * - `message`: Live validation message region (role="alert").
11718
11986
  */
11719
- "qti-associate-interaction": Partial<
11720
- QtiAssociateInteractionProps &
11721
- QtiAssociateInteractionSolidJsProps &
11722
- BaseProps<QtiAssociateInteraction> &
11987
+ "qti-choice-interaction": Partial<
11988
+ QtiChoiceInteractionProps &
11989
+ QtiChoiceInteractionSolidJsProps &
11990
+ BaseProps<QtiChoiceInteraction> &
11723
11991
  BaseEvents
11724
11992
  >;
11725
11993
 
@@ -11965,140 +12233,6 @@ export type CustomElementsSolidJs = {
11965
12233
  QtiPromptProps & QtiPromptSolidJsProps & BaseProps<QtiPrompt> & BaseEvents
11966
12234
  >;
11967
12235
 
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
-
12102
12236
  /**
12103
12237
  * QTI Custom Interaction component for legacy CES-based interactions.
12104
12238
  *
@@ -14951,6 +15085,76 @@ export type CustomElementsSolidJs = {
14951
15085
  BaseEvents
14952
15086
  >;
14953
15087
 
15088
+ /**
15089
+ *
15090
+ *
15091
+ * ## Methods
15092
+ *
15093
+ * Methods that can be called to access component functionality.
15094
+ *
15095
+ * - `process() => void`: undefined
15096
+ */
15097
+ "qti-outcome-condition": Partial<
15098
+ QtiOutcomeConditionProps &
15099
+ QtiOutcomeConditionSolidJsProps &
15100
+ BaseProps<QtiOutcomeCondition> &
15101
+ BaseEvents
15102
+ >;
15103
+
15104
+ /**
15105
+ *
15106
+ *
15107
+ * ## Methods
15108
+ *
15109
+ * Methods that can be called to access component functionality.
15110
+ *
15111
+ * - `shouldProcess() => boolean`: Whether this branch's sub-rules should be processed.
15112
+ * - `getSubRules() => QtiRule[]`: The sub-rules to process when this branch applies.
15113
+ * - `process() => void`: undefined
15114
+ */
15115
+ "qti-outcome-else": Partial<
15116
+ QtiOutcomeElseProps &
15117
+ QtiOutcomeElseSolidJsProps &
15118
+ BaseProps<QtiOutcomeElse> &
15119
+ BaseEvents
15120
+ >;
15121
+
15122
+ /**
15123
+ *
15124
+ *
15125
+ * ## Methods
15126
+ *
15127
+ * Methods that can be called to access component functionality.
15128
+ *
15129
+ * - `shouldProcess() => boolean`: Whether this branch's sub-rules should be processed.
15130
+ * - `getSubRules() => QtiRule[]`: The sub-rules to process when this branch applies.
15131
+ * - `process() => void`: undefined
15132
+ */
15133
+ "qti-outcome-if": Partial<
15134
+ QtiOutcomeIfProps &
15135
+ QtiOutcomeIfSolidJsProps &
15136
+ BaseProps<QtiOutcomeIf> &
15137
+ BaseEvents
15138
+ >;
15139
+
15140
+ /**
15141
+ *
15142
+ *
15143
+ * ## Methods
15144
+ *
15145
+ * Methods that can be called to access component functionality.
15146
+ *
15147
+ * - `shouldProcess() => boolean`: Whether this branch's sub-rules should be processed.
15148
+ * - `getSubRules() => QtiRule[]`: The sub-rules to process when this branch applies.
15149
+ * - `process() => void`: undefined
15150
+ */
15151
+ "qti-outcome-else-if": Partial<
15152
+ QtiOutcomeElseIfProps &
15153
+ QtiOutcomeElseIfSolidJsProps &
15154
+ BaseProps<QtiOutcomeElseIf> &
15155
+ BaseEvents
15156
+ >;
15157
+
14954
15158
  /**
14955
15159
  *
14956
15160
  *
@@ -14974,8 +15178,8 @@ export type CustomElementsSolidJs = {
14974
15178
  *
14975
15179
  * Methods that can be called to access component functionality.
14976
15180
  *
14977
- * - `calculate() => void`: undefined
14978
- * - `getSubRules() => QtiRule[]`: undefined
15181
+ * - `shouldProcess() => boolean`: Whether this branch's sub-rules should be processed.
15182
+ * - `getSubRules() => QtiRule[]`: The sub-rules to process when this branch applies.
14979
15183
  * - `process() => void`: undefined
14980
15184
  */
14981
15185
  "qti-response-else": Partial<
@@ -14992,8 +15196,8 @@ export type CustomElementsSolidJs = {
14992
15196
  *
14993
15197
  * Methods that can be called to access component functionality.
14994
15198
  *
14995
- * - `calculate() => void`: undefined
14996
- * - `getSubRules() => QtiRule[]`: undefined
15199
+ * - `shouldProcess() => boolean`: Whether this branch's sub-rules should be processed.
15200
+ * - `getSubRules() => QtiRule[]`: The sub-rules to process when this branch applies.
14997
15201
  * - `process() => void`: undefined
14998
15202
  */
14999
15203
  "qti-response-if": Partial<
@@ -15010,8 +15214,8 @@ export type CustomElementsSolidJs = {
15010
15214
  *
15011
15215
  * Methods that can be called to access component functionality.
15012
15216
  *
15013
- * - `calculate() => void`: undefined
15014
- * - `getSubRules() => QtiRule[]`: undefined
15217
+ * - `shouldProcess() => boolean`: Whether this branch's sub-rules should be processed.
15218
+ * - `getSubRules() => QtiRule[]`: The sub-rules to process when this branch applies.
15015
15219
  * - `process() => void`: undefined
15016
15220
  */
15017
15221
  "qti-response-else-if": Partial<