@citolab/qti-components 7.1.0 → 7.1.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 (281) hide show
  1. package/cdn/chunks/chunk-27WPPEWB.js +1 -0
  2. package/cdn/chunks/chunk-2HL3OFY7.js +1 -0
  3. package/cdn/chunks/chunk-33UT2QKP.js +5 -0
  4. package/cdn/chunks/chunk-3M3VWZCU.js +8 -0
  5. package/cdn/chunks/chunk-3QAOJL7Y.js +1007 -0
  6. package/cdn/chunks/chunk-3R4ZTZYA.js +5 -0
  7. package/cdn/chunks/chunk-6DWYLZ5E.js +5 -0
  8. package/cdn/chunks/chunk-6RVWXAM7.js +8 -0
  9. package/cdn/chunks/chunk-7HXSSTSU.js +1 -0
  10. package/cdn/chunks/chunk-7JXSJZV5.js +8 -0
  11. package/cdn/chunks/chunk-7QMIMK5V.js +5 -0
  12. package/cdn/chunks/chunk-7RLNGBXK.js +1 -0
  13. package/cdn/chunks/chunk-AHZ3W4YP.js +8 -0
  14. package/cdn/chunks/chunk-BGHD6LZP.js +1007 -0
  15. package/cdn/chunks/chunk-C73FEG6J.js +1 -0
  16. package/cdn/chunks/chunk-CFS5WXCD.js +1 -0
  17. package/cdn/chunks/chunk-CZDMOYYF.js +1 -0
  18. package/cdn/chunks/chunk-EBVKDAVL.js +5 -0
  19. package/cdn/chunks/chunk-EEFB2V7Q.js +27 -0
  20. package/cdn/chunks/chunk-ELZQC26E.js +5 -0
  21. package/cdn/chunks/chunk-EPOG3VSF.js +5 -0
  22. package/cdn/chunks/chunk-FDKTSUOQ.js +48 -0
  23. package/cdn/chunks/chunk-FJOHSSA3.js +1 -0
  24. package/cdn/chunks/chunk-G5YNM432.js +5 -0
  25. package/cdn/chunks/chunk-GIJVMMKY.js +1007 -0
  26. package/cdn/chunks/chunk-GNIERKRX.js +1007 -0
  27. package/cdn/chunks/chunk-GTHARXCW.js +10 -0
  28. package/cdn/chunks/chunk-IRLG6H7G.js +1 -0
  29. package/cdn/chunks/chunk-J3F2YSRA.js +1007 -0
  30. package/cdn/chunks/chunk-J4ISS5TZ.js +5 -0
  31. package/cdn/chunks/chunk-KBJYE746.js +5 -0
  32. package/cdn/chunks/chunk-KIH2VB5Z.js +1 -0
  33. package/cdn/chunks/chunk-KJJG5SSY.js +1 -0
  34. package/cdn/chunks/chunk-KLRM2GAU.js +8 -0
  35. package/cdn/chunks/chunk-KQT5S3DK.js +5 -0
  36. package/cdn/chunks/chunk-LDKKOMIK.js +3570 -0
  37. package/cdn/chunks/chunk-LDXZOGPY.js +10 -0
  38. package/cdn/chunks/chunk-LUVDXKE2.js +5 -0
  39. package/cdn/chunks/chunk-LZQKENA3.js +1 -0
  40. package/cdn/chunks/chunk-MGLK2Q6K.js +5 -0
  41. package/cdn/chunks/chunk-MK2CR5DP.js +1 -0
  42. package/cdn/chunks/chunk-N5JQAYOR.js +1 -0
  43. package/cdn/chunks/chunk-NJUBWVY3.js +10 -0
  44. package/cdn/chunks/chunk-NQKAQ6AU.js +1007 -0
  45. package/cdn/chunks/chunk-NW5VVFA5.js +5 -0
  46. package/cdn/chunks/chunk-OYUWBJSX.js +1 -0
  47. package/cdn/chunks/chunk-PBZODDGJ.js +1 -0
  48. package/cdn/chunks/chunk-PJFJOZNR.js +48 -0
  49. package/cdn/chunks/chunk-PMIMCEQ2.js +1 -0
  50. package/cdn/chunks/chunk-PYOOOJUP.js +3547 -0
  51. package/cdn/chunks/chunk-Q6HFDDZ4.js +1 -0
  52. package/cdn/chunks/chunk-QQR6POPY.js +1 -0
  53. package/cdn/chunks/chunk-QS2LH2IW.js +1007 -0
  54. package/cdn/chunks/chunk-QUFRWTHS.js +1 -0
  55. package/cdn/chunks/chunk-RJB5E47I.js +1 -0
  56. package/cdn/chunks/chunk-SFY52QPM.js +1 -0
  57. package/cdn/chunks/chunk-SUXBSENJ.js +48 -0
  58. package/cdn/chunks/chunk-SYO32O6X.js +1 -0
  59. package/cdn/chunks/chunk-TUWPPE7H.js +1 -0
  60. package/cdn/chunks/chunk-UHILPQTT.js +10 -0
  61. package/cdn/chunks/chunk-UOY4MCKX.js +6 -0
  62. package/cdn/chunks/chunk-VLCD4DFD.js +8 -0
  63. package/cdn/chunks/chunk-VRTU4ZV6.js +48 -0
  64. package/cdn/chunks/chunk-VXDODYB5.js +1007 -0
  65. package/cdn/chunks/chunk-W7GYEQJQ.js +1 -0
  66. package/cdn/chunks/chunk-WNI2D7SG.js +1 -0
  67. package/cdn/chunks/chunk-WNJ3YFMW.js +1 -0
  68. package/cdn/chunks/chunk-WRFAZSRX.js +1007 -0
  69. package/cdn/chunks/chunk-WTUTTA5R.js +1 -0
  70. package/cdn/chunks/chunk-WVVKSWZV.js +5 -0
  71. package/cdn/chunks/chunk-WXFIEBQR.js +0 -0
  72. package/cdn/chunks/chunk-X75XIXUI.js +10 -0
  73. package/cdn/chunks/chunk-XPI6OOWN.js +27 -0
  74. package/cdn/chunks/chunk-YBPCVJIX.js +10 -0
  75. package/cdn/chunks/chunk-YTSCJPU2.js +1007 -0
  76. package/cdn/chunks/chunk-YZQZGOYM.js +1 -0
  77. package/cdn/chunks/chunk-ZHVOZ7WZ.js +1007 -0
  78. package/cdn/exports/session.context.js +1 -1
  79. package/cdn/exports/test.context.js +1 -1
  80. package/cdn/index.global.js +1 -1
  81. package/cdn/index.js +1 -1
  82. package/cdn/qti-components/index.js +1 -1
  83. package/cdn/qti-test/components/index.js +1 -1
  84. package/cdn/qti-test/components/test-navigation.js +1 -1
  85. package/cdn/qti-test/components/test-print-context.js +1 -0
  86. package/cdn/qti-test/components/test-print-item-variables copy.js +1 -0
  87. package/cdn/qti-test/components/test-print-item-variables.js +1 -1
  88. package/cdn/qti-test/components/test-print-item-variables.stories copy.js +233 -0
  89. package/cdn/qti-test/components/test-print-test-context.js +1 -0
  90. package/cdn/qti-test/components/test-view.js +1 -1
  91. package/cdn/qti-test/core/index.js +1 -1
  92. package/dist/chunks/chunk-2BVFKYAB.js +659 -0
  93. package/dist/chunks/chunk-2BVFKYAB.js.map +1 -0
  94. package/dist/chunks/chunk-2RXVRB7Z.js +659 -0
  95. package/dist/chunks/chunk-2RXVRB7Z.js.map +1 -0
  96. package/dist/chunks/chunk-2ZTRBYHP.js +660 -0
  97. package/dist/chunks/chunk-2ZTRBYHP.js.map +1 -0
  98. package/dist/chunks/chunk-36LEJZEY.js +87 -0
  99. package/dist/chunks/chunk-36LEJZEY.js.map +1 -0
  100. package/dist/chunks/chunk-373M5NVS.js +62 -0
  101. package/dist/chunks/chunk-373M5NVS.js.map +1 -0
  102. package/dist/chunks/chunk-3DEV5ARX.js +89 -0
  103. package/dist/chunks/chunk-3DEV5ARX.js.map +1 -0
  104. package/dist/chunks/chunk-3GCBMXXY.js +62 -0
  105. package/dist/chunks/chunk-3GCBMXXY.js.map +1 -0
  106. package/dist/chunks/chunk-3NH5KOQ4.js +89 -0
  107. package/dist/chunks/chunk-3NH5KOQ4.js.map +1 -0
  108. package/dist/chunks/chunk-4BDSKOGB.js +6873 -0
  109. package/dist/chunks/chunk-4BDSKOGB.js.map +1 -0
  110. package/dist/chunks/chunk-4BIRH5VP.js +99 -0
  111. package/dist/chunks/chunk-4BIRH5VP.js.map +1 -0
  112. package/dist/chunks/chunk-4O3EJ3SA.js +3884 -0
  113. package/dist/chunks/chunk-4O3EJ3SA.js.map +1 -0
  114. package/dist/chunks/chunk-4Z3IMDB5.js +84 -0
  115. package/dist/chunks/chunk-4Z3IMDB5.js.map +1 -0
  116. package/dist/chunks/chunk-6ITJ2I3A.js +82 -0
  117. package/dist/chunks/chunk-6ITJ2I3A.js.map +1 -0
  118. package/dist/chunks/chunk-75ZDJN64.js +32 -0
  119. package/dist/chunks/chunk-75ZDJN64.js.map +1 -0
  120. package/dist/chunks/chunk-76SJLOAE.js +84 -0
  121. package/dist/chunks/chunk-76SJLOAE.js.map +1 -0
  122. package/dist/chunks/chunk-7JS7FRDO.js +89 -0
  123. package/dist/chunks/chunk-7JS7FRDO.js.map +1 -0
  124. package/dist/chunks/chunk-7WL6TAJE.js +6872 -0
  125. package/dist/chunks/chunk-7WL6TAJE.js.map +1 -0
  126. package/dist/chunks/chunk-AD5H6KYS.js +78 -0
  127. package/dist/chunks/chunk-AD5H6KYS.js.map +1 -0
  128. package/dist/chunks/chunk-AQLCQATM.js +62 -0
  129. package/dist/chunks/chunk-AQLCQATM.js.map +1 -0
  130. package/dist/chunks/chunk-AWQHFFVL.js +659 -0
  131. package/dist/chunks/chunk-AWQHFFVL.js.map +1 -0
  132. package/dist/chunks/chunk-BLUHTHXX.js +6877 -0
  133. package/dist/chunks/chunk-BLUHTHXX.js.map +1 -0
  134. package/dist/chunks/chunk-BO6QD3VK.js +27 -0
  135. package/dist/chunks/chunk-BO6QD3VK.js.map +1 -0
  136. package/dist/chunks/chunk-BQ22JHXC.js +6877 -0
  137. package/dist/chunks/chunk-BQ22JHXC.js.map +1 -0
  138. package/dist/chunks/chunk-BWM6SEM3.js +659 -0
  139. package/dist/chunks/chunk-BWM6SEM3.js.map +1 -0
  140. package/dist/chunks/chunk-C2FVCRYJ.js +660 -0
  141. package/dist/chunks/chunk-C2FVCRYJ.js.map +1 -0
  142. package/dist/chunks/chunk-CIVMCP3W.js +78 -0
  143. package/dist/chunks/chunk-CIVMCP3W.js.map +1 -0
  144. package/dist/chunks/chunk-CJADUWEC.js +10 -0
  145. package/dist/chunks/chunk-CJADUWEC.js.map +1 -0
  146. package/dist/chunks/chunk-DCKLAFBL.js +79 -0
  147. package/dist/chunks/chunk-DCKLAFBL.js.map +1 -0
  148. package/dist/chunks/chunk-EHRC7LG6.js +3638 -0
  149. package/dist/chunks/chunk-EHRC7LG6.js.map +1 -0
  150. package/dist/chunks/chunk-ELXD2ZSR.js +218 -0
  151. package/dist/chunks/chunk-ELXD2ZSR.js.map +1 -0
  152. package/dist/chunks/chunk-EQUEIZJL.js +27 -0
  153. package/dist/chunks/chunk-EQUEIZJL.js.map +1 -0
  154. package/dist/chunks/chunk-EREPAU3B.js +80 -0
  155. package/dist/chunks/chunk-EREPAU3B.js.map +1 -0
  156. package/dist/chunks/chunk-EXOIDEQ6.js +660 -0
  157. package/dist/chunks/chunk-EXOIDEQ6.js.map +1 -0
  158. package/dist/chunks/chunk-FFF7WZJF.js +33 -0
  159. package/dist/chunks/chunk-FFF7WZJF.js.map +1 -0
  160. package/dist/chunks/chunk-FJJMZEPV.js +95 -0
  161. package/dist/chunks/chunk-FJJMZEPV.js.map +1 -0
  162. package/dist/chunks/chunk-G5DLHZE2.js +659 -0
  163. package/dist/chunks/chunk-G5DLHZE2.js.map +1 -0
  164. package/dist/chunks/chunk-HD63HGFY.js +52 -0
  165. package/dist/chunks/chunk-HD63HGFY.js.map +1 -0
  166. package/dist/chunks/chunk-HUKKTEBP.js +99 -0
  167. package/dist/chunks/chunk-HUKKTEBP.js.map +1 -0
  168. package/dist/chunks/chunk-HXGGGOV2.js +86 -0
  169. package/dist/chunks/chunk-HXGGGOV2.js.map +1 -0
  170. package/dist/chunks/chunk-HZYAIUVZ.js +6872 -0
  171. package/dist/chunks/chunk-HZYAIUVZ.js.map +1 -0
  172. package/dist/chunks/chunk-IT744RXI.js +75 -0
  173. package/dist/chunks/chunk-IT744RXI.js.map +1 -0
  174. package/dist/chunks/chunk-IXVOEGNZ.js +87 -0
  175. package/dist/chunks/chunk-IXVOEGNZ.js.map +1 -0
  176. package/dist/chunks/chunk-JEM74SR3.js +85 -0
  177. package/dist/chunks/chunk-JEM74SR3.js.map +1 -0
  178. package/dist/chunks/chunk-JP22YLJ6.js +219 -0
  179. package/dist/chunks/chunk-JP22YLJ6.js.map +1 -0
  180. package/dist/chunks/chunk-JVGOS45U.js +660 -0
  181. package/dist/chunks/chunk-JVGOS45U.js.map +1 -0
  182. package/dist/chunks/chunk-JWVGRAWQ.js +6872 -0
  183. package/dist/chunks/chunk-JWVGRAWQ.js.map +1 -0
  184. package/dist/chunks/chunk-JWX6ZOZ6.js +86 -0
  185. package/dist/chunks/chunk-JWX6ZOZ6.js.map +1 -0
  186. package/dist/chunks/chunk-JZMZLOTW.js +32 -0
  187. package/dist/chunks/chunk-JZMZLOTW.js.map +1 -0
  188. package/dist/chunks/chunk-KS3SCUUO.js +92 -0
  189. package/dist/chunks/chunk-KS3SCUUO.js.map +1 -0
  190. package/dist/chunks/chunk-LOPCNZ26.js +95 -0
  191. package/dist/chunks/chunk-LOPCNZ26.js.map +1 -0
  192. package/dist/chunks/chunk-LSNOL7NJ.js +6872 -0
  193. package/dist/chunks/chunk-LSNOL7NJ.js.map +1 -0
  194. package/dist/chunks/chunk-M4E2ACHZ.js +75 -0
  195. package/dist/chunks/chunk-M4E2ACHZ.js.map +1 -0
  196. package/dist/chunks/chunk-MQS7RZFR.js +85 -0
  197. package/dist/chunks/chunk-MQS7RZFR.js.map +1 -0
  198. package/dist/chunks/chunk-N3JFTFIL.js +79 -0
  199. package/dist/chunks/chunk-N3JFTFIL.js.map +1 -0
  200. package/dist/chunks/chunk-OSMLF3OH.js +6868 -0
  201. package/dist/chunks/chunk-OSMLF3OH.js.map +1 -0
  202. package/dist/chunks/chunk-OWWUE3LK.js +660 -0
  203. package/dist/chunks/chunk-OWWUE3LK.js.map +1 -0
  204. package/dist/chunks/chunk-P36CLOLO.js +27 -0
  205. package/dist/chunks/chunk-P36CLOLO.js.map +1 -0
  206. package/dist/chunks/chunk-PL32YWZA.js +30 -0
  207. package/dist/chunks/chunk-PL32YWZA.js.map +1 -0
  208. package/dist/chunks/chunk-Q5JLRHTY.js +659 -0
  209. package/dist/chunks/chunk-Q5JLRHTY.js.map +1 -0
  210. package/dist/chunks/chunk-RB227QQP.js +659 -0
  211. package/dist/chunks/chunk-RB227QQP.js.map +1 -0
  212. package/dist/chunks/chunk-TC5ZLAPV.js +218 -0
  213. package/dist/chunks/chunk-TC5ZLAPV.js.map +1 -0
  214. package/dist/chunks/chunk-TRSEENUK.js +45 -0
  215. package/dist/chunks/chunk-TRSEENUK.js.map +1 -0
  216. package/dist/chunks/chunk-U7VUCT7D.js +659 -0
  217. package/dist/chunks/chunk-U7VUCT7D.js.map +1 -0
  218. package/dist/chunks/chunk-UEX52I7G.js +1 -0
  219. package/dist/chunks/chunk-UEX52I7G.js.map +1 -0
  220. package/dist/chunks/chunk-UFRDMBKM.js +43 -0
  221. package/dist/chunks/chunk-UFRDMBKM.js.map +1 -0
  222. package/dist/chunks/chunk-USJXIVR4.js +6872 -0
  223. package/dist/chunks/chunk-USJXIVR4.js.map +1 -0
  224. package/dist/chunks/chunk-UZ4QB5IO.js +10 -0
  225. package/dist/chunks/chunk-UZ4QB5IO.js.map +1 -0
  226. package/dist/chunks/chunk-V2EYNAG4.js +659 -0
  227. package/dist/chunks/chunk-V2EYNAG4.js.map +1 -0
  228. package/dist/chunks/chunk-WJBYWKIF.js +32 -0
  229. package/dist/chunks/chunk-WJBYWKIF.js.map +1 -0
  230. package/dist/chunks/chunk-WOVQFPIV.js +6872 -0
  231. package/dist/chunks/chunk-WOVQFPIV.js.map +1 -0
  232. package/dist/chunks/chunk-WPUMEBSF.js +33 -0
  233. package/dist/chunks/chunk-WPUMEBSF.js.map +1 -0
  234. package/dist/chunks/chunk-WVVYYP6F.js +218 -0
  235. package/dist/chunks/chunk-WVVYYP6F.js.map +1 -0
  236. package/dist/chunks/chunk-XSHHCMRC.js +217 -0
  237. package/dist/chunks/chunk-XSHHCMRC.js.map +1 -0
  238. package/dist/chunks/chunk-XZTGFLMB.js +6872 -0
  239. package/dist/chunks/chunk-XZTGFLMB.js.map +1 -0
  240. package/dist/chunks/chunk-ZBMTSE6Q.js +660 -0
  241. package/dist/chunks/chunk-ZBMTSE6Q.js.map +1 -0
  242. package/dist/chunks/chunk-ZMTMIG3C.js +77 -0
  243. package/dist/chunks/chunk-ZMTMIG3C.js.map +1 -0
  244. package/dist/chunks/chunk-ZSR4X4I6.js +638 -0
  245. package/dist/chunks/chunk-ZSR4X4I6.js.map +1 -0
  246. package/dist/exports/interaction.js +1 -1
  247. package/dist/exports/session.context.d.ts +1 -1
  248. package/dist/exports/session.context.js +3 -1
  249. package/dist/exports/test.context.d.ts +2 -1
  250. package/dist/exports/test.context.js +3 -1
  251. package/dist/index.d.ts +3 -2
  252. package/dist/index.js +20 -12
  253. package/dist/qti-components/index.js +2 -2
  254. package/dist/qti-components-jsx.d.ts +35 -2
  255. package/dist/qti-response-declaration-5PnLgbOQ.d.ts +1143 -0
  256. package/dist/qti-response-declaration-PJkGU8F8.d.ts +1151 -0
  257. package/dist/qti-test/components/index.d.ts +2 -1
  258. package/dist/qti-test/components/index.js +13 -9
  259. package/dist/qti-test/components/test-navigation.d.ts +1 -1
  260. package/dist/qti-test/components/test-navigation.js +3 -3
  261. package/dist/qti-test/components/test-print-context.d.ts +20 -0
  262. package/dist/qti-test/components/test-print-context.js +9 -0
  263. package/dist/qti-test/components/test-print-context.js.map +1 -0
  264. package/dist/qti-test/components/test-print-item-variables copy.js +86 -0
  265. package/dist/qti-test/components/test-print-item-variables copy.js.map +1 -0
  266. package/dist/qti-test/components/test-print-item-variables.d.ts +2 -2
  267. package/dist/qti-test/components/test-print-item-variables.js +1 -1
  268. package/dist/qti-test/components/test-print-item-variables.stories copy.js +9731 -0
  269. package/dist/qti-test/components/test-print-item-variables.stories copy.js.map +1 -0
  270. package/dist/qti-test/components/test-print-test-context.js +86 -0
  271. package/dist/qti-test/components/test-print-test-context.js.map +1 -0
  272. package/dist/qti-test/components/test-view.js +2 -2
  273. package/dist/qti-test/core/index.d.ts +3 -3
  274. package/dist/qti-test/core/index.js +15 -3
  275. package/dist/qti-test-feedback-BuFBq7JH.d.ts +97 -0
  276. package/dist/qti-test-feedback-CZsPCqSt.d.ts +97 -0
  277. package/dist/qti-test-feedback-CaNdRC7L.d.ts +96 -0
  278. package/dist/qti-test-part-BIeEZIWw.d.ts +85 -0
  279. package/dist/qti-test-part-C_jSX7Zz.d.ts +85 -0
  280. package/dist/vscode.html-custom-data.json +17 -6
  281. package/package.json +1 -1
@@ -0,0 +1,3884 @@
1
+ import {
2
+ watch
3
+ } from "./chunk-ELDMXTUQ.js";
4
+ import {
5
+ qtiTransformItem
6
+ } from "./chunk-XDMSEAYC.js";
7
+ import {
8
+ computedItemContext
9
+ } from "./chunk-TR375NFI.js";
10
+ import {
11
+ __decorateClass
12
+ } from "./chunk-63WMM765.js";
13
+
14
+ // src/lib/qti-item/core/components/item-container.ts
15
+ import { LitElement, html } from "lit";
16
+ import { customElement, property, state } from "lit/decorators.js";
17
+ import { until } from "lit/directives/until.js";
18
+
19
+ // inline:../../../../item.css?inline
20
+ var item_default = `@layer qti-base, qti-components, qti-utilities, qti-variants, qti-extended;
21
+
22
+ :root,
23
+ :host {
24
+ /* Active colors */
25
+ --qti-bg-active: #ffecec;
26
+ --qti-border-active: #f86d70;
27
+
28
+ /* Correct colors */
29
+ --qti-correct-light: #c8e6c9;
30
+ --qti-correct: #66bb6a;
31
+
32
+ /* Gap size */
33
+ --qti-gap-size: 1rem;
34
+
35
+ /* Background colors */
36
+ --qti-bg: white;
37
+ --qti-hover-bg: #f9fafb;
38
+
39
+ /* Light theme colors */
40
+ --qti-light-bg-active: #f0f0f0; /* Light gray */
41
+ --qti-light-border-active: #d0d0d0; /* Medium gray */
42
+
43
+ /* Dark theme colors */
44
+ --qti-dark-bg-active: #1f2937; /* Dark gray */
45
+ --qti-dark-border-active: #64748b; /* Medium gray */
46
+
47
+ /* Disabled colors */
48
+ --qti-disabled-bg: #f3f4f6;
49
+ --qti-disabled-color: #45484f;
50
+
51
+ /* Border properties */
52
+ --qti-border-thickness: 2px;
53
+ --qti-border-style: solid;
54
+ --qti-border-color: #c6cad0;
55
+ --qti-border-radius: 0.3rem;
56
+ --qti-drop-border-radius: calc(var(--qti-border-radius) + var(--qti-border-thickness));
57
+
58
+ /* Focus & active states */
59
+ --qti-focus-border-width: 5px;
60
+ --qti-focus-color: #bddcff7e;
61
+
62
+ /* Class-specific variables */
63
+
64
+ /* Form elements */
65
+ --qti-form-size: 1rem;
66
+
67
+ /* Order buttons */
68
+ --qti-order-size: 2rem;
69
+
70
+ /* Generic padding for all elements */
71
+ --qti-padding-vertical: 0.5rem; /* py-2 */
72
+ --qti-padding-horizontal: 0.5rem; /* px-2 */
73
+ }
74
+
75
+ /* SVG masks and backgrounds */
76
+
77
+ .chevron {
78
+ background: url("data:image/svg+xml,%3Csvg fill='currentColor' width='22' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' aria-hidden='true'%3E%3Cpath clip-rule='evenodd' fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'%3E%3C/path%3E%3C/svg%3E")
79
+ no-repeat center right 6px;
80
+ }
81
+
82
+ .handle {
83
+ background-image: radial-gradient(
84
+ circle at center,
85
+ rgb(0 0 0 / 10%) 0,
86
+ rgb(0 0 0 / 20%) 2px,
87
+ rgb(255 255 255 / 0%) 2px,
88
+ rgb(255 255 255 / 0%) 100%
89
+ );
90
+ background-repeat: repeat-y;
91
+ background-position: left center;
92
+ background-size: 14px 8px;
93
+ }
94
+
95
+ .check-mask {
96
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
97
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
98
+ }
99
+
100
+ /*
101
+ Following are classes that can be applied to elements and element states, so they are not used directly
102
+ The @apply directive is used to apply these classes to elements
103
+ */
104
+
105
+ /* Apply .bordered to an element */
106
+
107
+ .bordered {
108
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
109
+ outline: none;
110
+ }
111
+
112
+ /* Apply .form rules for checkbox and radiobutton */
113
+
114
+ .form {
115
+
116
+ display: grid;
117
+ place-content: center;
118
+ width: var(--qti-form-size);
119
+ height: var(--qti-form-size);
120
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
121
+ outline: none;
122
+ }
123
+
124
+ /* Apply .button rules for button-like elements, such as drags and buttons */
125
+
126
+ .button {
127
+
128
+ border-radius: var(--qti-border-radius);
129
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
130
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
131
+ outline: none;
132
+ }
133
+
134
+ /* Apply .select for the select dropdown element */
135
+
136
+ .select {
137
+
138
+ border-radius: var(--qti-border-radius);
139
+ position: relative;
140
+ -webkit-appearance: none;
141
+ -moz-appearance: none;
142
+ appearance: none;
143
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
144
+ padding-right: calc(var(--qti-padding-horizontal) + 1.5rem); /* 1.5rem for the chevron */ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color); outline: none; background: url("data:image/svg+xml,%3Csvg fill='currentColor' width='22' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' aria-hidden='true'%3E%3Cpath clip-rule='evenodd' fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'%3E%3C/path%3E%3C/svg%3E")
145
+ no-repeat center right 6px;
146
+ }
147
+
148
+ /* Apply .text for the input text and textarea */
149
+
150
+ .text {
151
+
152
+ border-radius: 0;
153
+ cursor: text;
154
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
155
+ background: unset;
156
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
157
+ outline: none;
158
+ }
159
+
160
+ /* Apply .spot for hotspot shapes */
161
+
162
+ .spot {
163
+
164
+ width: 100%;
165
+ height: 100%;
166
+ background-color: transparent;
167
+ padding: 0;
168
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
169
+ outline: none;
170
+ }
171
+
172
+ /* Apply .point for circular small hotspots */
173
+
174
+ .point {
175
+
176
+ border-radius: 100%;
177
+ border: 1px solid white;
178
+ background-color: black;
179
+ opacity: 0.5;
180
+ padding: 0;
181
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
182
+ outline: none;
183
+ }
184
+
185
+ /* Apply .drag for draggable elements */
186
+
187
+ .drag {
188
+
189
+ transition:
190
+ transform 200ms ease-out,
191
+ box-shadow 200ms ease-out,
192
+ rotate 200ms ease-out;
193
+ cursor: grab;
194
+ background-color: var(--qti-bg);
195
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
196
+ border-radius: var(--qti-border-radius);
197
+ padding-left: calc(var(--qti-padding-horizontal) + 0.5rem) !important; /* 1.5rem for the drag */ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color); outline: none; background-image: radial-gradient(
198
+ circle at center,
199
+ rgb(0 0 0 / 10%) 0,
200
+ rgb(0 0 0 / 20%) 2px,
201
+ rgb(255 255 255 / 0%) 2px,
202
+ rgb(255 255 255 / 0%) 100%
203
+ ); background-repeat: repeat-y; background-position: left center; background-size: 14px 8px;
204
+ }
205
+
206
+ /* Apply .dragging for the dragging state of a draggable element */
207
+
208
+ .dragging {
209
+ pointer-events: none;
210
+ rotate: -2deg;
211
+ box-shadow:
212
+ 0 8px 12px rgb(0 0 0 / 20%),
213
+ 0 4px 8px rgb(0 0 0 / 10%);
214
+ }
215
+
216
+ /* Apply .drop for an element where you can drop the draggable */
217
+
218
+ .drop {
219
+
220
+ background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="7" stroke="%23CCCCCC" stroke-width="1" fill="transparent" /></svg>')
221
+ center no-repeat;
222
+ border-radius: var(--qti-border-radius);
223
+ position: relative;
224
+ background-color: var(--qti-bg);
225
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
226
+ outline: none;
227
+ }
228
+
229
+ /* Apply .dropping for an indicator where you can drop the draggable */
230
+
231
+ .dropping {
232
+ background-color: var(--qti-bg-active);
233
+ }
234
+
235
+ /* Apply .order for a small circular button */
236
+
237
+ .order {
238
+
239
+ display: grid;
240
+ place-content: center;
241
+
242
+ /* background-color: var(--qti-bg-active); */
243
+ border-radius: 100%;
244
+ width: var(--qti-order-size);
245
+ height: var(--qti-order-size);
246
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
247
+ outline: none;
248
+ }
249
+
250
+ /* Apply .check-size for radio and checkbox size */
251
+
252
+ .check-size {
253
+ width: calc(var(--qti-form-size) - 6px);
254
+ height: calc(var(--qti-form-size) - 6px);
255
+ }
256
+
257
+ /* Apply .check for checkbox */
258
+
259
+ .check {
260
+ gap: 0.5rem;
261
+ border-radius: var(--qti-border-radius);
262
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
263
+ outline: none;
264
+ cursor: pointer;
265
+ }
266
+
267
+ /* Apply .check-radio for outer circle of the radio buttons */
268
+
269
+ .check-radio {
270
+
271
+ border-radius: 100%;
272
+
273
+ display: grid;
274
+
275
+ place-content: center;
276
+
277
+ width: var(--qti-form-size);
278
+
279
+ height: var(--qti-form-size);
280
+
281
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
282
+
283
+ outline: none;
284
+ }
285
+
286
+ /* Apply .check-radio-checked for the inner checked radio */
287
+
288
+ .check-radio-checked {
289
+ background-color: var(--qti-border-active);
290
+ border-radius: 100%;
291
+ }
292
+
293
+ /* Apply .check-checkbox for outer square of the checkbox */
294
+
295
+ .check-checkbox {
296
+
297
+ display: flex;
298
+ place-items: center;
299
+ border-radius: var(--qti-border-radius);
300
+ display: grid;
301
+ place-content: center;
302
+ width: var(--qti-form-size);
303
+ height: var(--qti-form-size);
304
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
305
+ outline: none;
306
+ }
307
+
308
+ /* Apply .check-checkbox-checked for the inner checkmark */
309
+
310
+ .check-checkbox-checked {
311
+ background-color: var(--qti-border-active);
312
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
313
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
314
+ }
315
+
316
+ /* Apply .hov for hover state */
317
+
318
+ .hov {
319
+ background-color: var(--qti-hover-bg);
320
+ }
321
+
322
+ /* Apply .foc for focus state */
323
+
324
+ .foc {
325
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
326
+ }
327
+
328
+ /* Apply .act for active state */
329
+
330
+ .act {
331
+ border-color: var(--qti-border-active);
332
+ background-color: var(--qti-bg-active);
333
+ }
334
+
335
+ .act-bg {
336
+ background-color: var(--qti-bg-active);
337
+ }
338
+
339
+ .act-bor {
340
+ border-color: var(--qti-border-active);
341
+ }
342
+
343
+ /* Apply .rdo for readonly state */
344
+
345
+ .rdo {
346
+ cursor: pointer;
347
+ background-color: var(--qti-bg);
348
+ outline: 0;
349
+ border: none;
350
+ }
351
+
352
+ /* Apply .dis for disabled state */
353
+
354
+ .dis {
355
+ cursor: not-allowed;
356
+ background-color: var(--qti-disabled-bg);
357
+ color: var(--qti-disabled-color);
358
+ border-color: var(--qti-border-color);
359
+ outline: 4px solid var(--qti-disabled-bg);
360
+ }
361
+
362
+ /* base */
363
+
364
+ /* ============================
365
+ QTI 3 shared css
366
+ 1. Display
367
+ 2. Special Flex styles
368
+ 3. Margin
369
+ 4. Padding
370
+ 5. Horizontal Alignment styles
371
+ 6. Vertical Alignment styles
372
+ 7. Height
373
+ 8. Width
374
+ 9. Text-Indent
375
+ 10. List Style
376
+ 11. Layout
377
+ 12. Other QTI 3 presentation utilities
378
+ ============================ */
379
+
380
+ /* ==========
381
+ Display css
382
+ =========== */
383
+
384
+ .qti-display-inline {
385
+ display: inline;
386
+ }
387
+
388
+ .qti-display-inline-block {
389
+ display: inline-block;
390
+ }
391
+
392
+ .qti-display-block {
393
+ display: block;
394
+ }
395
+
396
+ .qti-display-flex {
397
+ display: flex;
398
+ }
399
+
400
+ .qti-display-inline-flex {
401
+ display: inline-flex;
402
+ }
403
+
404
+ .qti-display-grid {
405
+ display: grid;
406
+ }
407
+
408
+ .qti-display-inline-grid {
409
+ display: inline-grid;
410
+ }
411
+
412
+ .qti-display-table {
413
+ display: table;
414
+ }
415
+
416
+ .qti-display-table-cell {
417
+ display: table-cell;
418
+ }
419
+
420
+ .qti-display-table-row {
421
+ display: table-row;
422
+ }
423
+
424
+ .qti-display-list-item {
425
+ display: list-item;
426
+ }
427
+
428
+ .qti-display-inherit {
429
+ display: inherit;
430
+ }
431
+
432
+ /*
433
+ * hidden to screen readers and sighted
434
+ */
435
+
436
+ .qti-hidden {
437
+ display: none;
438
+ }
439
+
440
+ /*
441
+ * visible to screen readers, hidden to sighted
442
+ */
443
+
444
+ .qti-visually-hidden {
445
+ position: fixed !important;
446
+ overflow: hidden;
447
+ clip: rect(1px 1px 1px 1px);
448
+ height: 1px;
449
+ width: 1px;
450
+ border: 0;
451
+ margin: -1px;
452
+ }
453
+
454
+ /* =============================
455
+ Special flex styles
456
+ ============================= */
457
+
458
+ .qti-flex-direction-column {
459
+ flex-direction: column;
460
+ }
461
+
462
+ .qti-flex-direction-row {
463
+ flex-direction: row;
464
+ }
465
+
466
+ .qti-flex-grow-1 {
467
+ flex-grow: 1;
468
+ }
469
+
470
+ .qti-flex-grow-0 {
471
+ flex-grow: 0;
472
+ }
473
+
474
+ /* =========
475
+ Margin css
476
+ ========== */
477
+
478
+ /**
479
+ * For margin Top and Bottom and Left and Right
480
+ */
481
+
482
+ .qti-margin-0 {
483
+ margin: 0 !important;
484
+ }
485
+
486
+ .qti-margin-1 {
487
+ margin: 0.25rem !important;
488
+ }
489
+
490
+ .qti-margin-2 {
491
+ margin: 0.5rem !important;
492
+ }
493
+
494
+ .qti-margin-3 {
495
+ margin: 1rem !important;
496
+ }
497
+
498
+ .qti-margin-4 {
499
+ margin: 1.5rem !important;
500
+ }
501
+
502
+ .qti-margin-5 {
503
+ margin: 3rem !important;
504
+ }
505
+
506
+ .qti-margin-auto {
507
+ margin: auto !important;
508
+ }
509
+
510
+ /*
511
+ For margin Left and Right
512
+ */
513
+
514
+ .qti-margin-x-0 {
515
+ margin-right: 0 !important;
516
+ margin-left: 0 !important;
517
+ }
518
+
519
+ .qti-margin-x-1 {
520
+ margin-right: 0.25rem !important;
521
+ margin-left: 0.25rem !important;
522
+ }
523
+
524
+ .qti-margin-x-2 {
525
+ margin-right: 0.5rem !important;
526
+ margin-left: 0.5rem !important;
527
+ }
528
+
529
+ .qti-margin-x-3 {
530
+ margin-right: 1rem !important;
531
+ margin-left: 1rem !important;
532
+ }
533
+
534
+ .qti-margin-x-4 {
535
+ margin-right: 1.5rem !important;
536
+ margin-left: 1.5rem !important;
537
+ }
538
+
539
+ .qti-margin-x-5 {
540
+ margin-right: 3rem !important;
541
+ margin-left: 3rem !important;
542
+ }
543
+
544
+ .qti-margin-x-auto {
545
+ margin-right: auto !important;
546
+ margin-left: auto !important;
547
+ }
548
+
549
+ /*
550
+ For margin Top and Bottom
551
+ */
552
+
553
+ .qti-margin-y-0 {
554
+ margin-top: 0 !important;
555
+ margin-bottom: 0 !important;
556
+ }
557
+
558
+ .qti-margin-y-1 {
559
+ margin-top: 0.25rem !important;
560
+ margin-bottom: 0.25rem !important;
561
+ }
562
+
563
+ .qti-margin-y-2 {
564
+ margin-top: 0.5rem !important;
565
+ margin-bottom: 0.5rem !important;
566
+ }
567
+
568
+ .qti-margin-y-3 {
569
+ margin-top: 1rem !important;
570
+ margin-bottom: 1rem !important;
571
+ }
572
+
573
+ .qti-margin-y-4 {
574
+ margin-top: 1.5rem !important;
575
+ margin-bottom: 1.5rem !important;
576
+ }
577
+
578
+ .qti-margin-y-5 {
579
+ margin-top: 3rem !important;
580
+ margin-bottom: 3rem !important;
581
+ }
582
+
583
+ .qti-margin-y-auto {
584
+ margin-top: auto !important;
585
+ margin-bottom: auto !important;
586
+ }
587
+
588
+ /*
589
+ For margin Top
590
+ */
591
+
592
+ .qti-margin-t-0 {
593
+ margin-top: 0 !important;
594
+ }
595
+
596
+ .qti-margin-t-1 {
597
+ margin-top: 0.25rem !important;
598
+ }
599
+
600
+ .qti-margin-t-2 {
601
+ margin-top: 0.5rem !important;
602
+ }
603
+
604
+ .qti-margin-t-3 {
605
+ margin-top: 1rem !important;
606
+ }
607
+
608
+ .qti-margin-t-4 {
609
+ margin-top: 1.5rem !important;
610
+ }
611
+
612
+ .qti-margin-t-5 {
613
+ margin-top: 3rem !important;
614
+ }
615
+
616
+ .qti-margin-t-auto {
617
+ margin-top: auto !important;
618
+ }
619
+
620
+ /*
621
+ For margin Bottom
622
+ */
623
+
624
+ .qti-margin-b-0 {
625
+ margin-bottom: 0 !important;
626
+ }
627
+
628
+ .qti-margin-b-1 {
629
+ margin-bottom: 0.25rem !important;
630
+ }
631
+
632
+ .qti-margin-b-2 {
633
+ margin-bottom: 0.5rem !important;
634
+ }
635
+
636
+ .qti-margin-b-3 {
637
+ margin-bottom: 1rem !important;
638
+ }
639
+
640
+ .qti-margin-b-4 {
641
+ margin-bottom: 1.5rem !important;
642
+ }
643
+
644
+ .qti-margin-b-5 {
645
+ margin-bottom: 3rem !important;
646
+ }
647
+
648
+ .qti-margin-b-auto {
649
+ margin-bottom: auto !important;
650
+ }
651
+
652
+ /*
653
+ For margin Start LTR
654
+ */
655
+
656
+ .qti-margin-s-0 {
657
+ margin-left: 0 !important;
658
+ }
659
+
660
+ .qti-margin-s-1 {
661
+ margin-left: 0.25rem !important;
662
+ }
663
+
664
+ .qti-margin-s-2 {
665
+ margin-left: 0.5rem !important;
666
+ }
667
+
668
+ .qti-margin-s-3 {
669
+ margin-left: 1rem !important;
670
+ }
671
+
672
+ .qti-margin-s-4 {
673
+ margin-left: 1.5rem !important;
674
+ }
675
+
676
+ .qti-margin-s-5 {
677
+ margin-left: 3rem !important;
678
+ }
679
+
680
+ .qti-margin-s-auto {
681
+ margin-left: auto !important;
682
+ }
683
+
684
+ /*
685
+ For margin End LTR
686
+ */
687
+
688
+ .qti-margin-e-0 {
689
+ margin-right: 0 !important;
690
+ }
691
+
692
+ .qti-margin-e-1 {
693
+ margin-right: 0.25rem !important;
694
+ }
695
+
696
+ .qti-margin-e-2 {
697
+ margin-right: 0.5rem !important;
698
+ }
699
+
700
+ .qti-margin-e-3 {
701
+ margin-right: 1rem !important;
702
+ }
703
+
704
+ .qti-margin-e-4 {
705
+ margin-right: 1.5rem !important;
706
+ }
707
+
708
+ .qti-margin-e-5 {
709
+ margin-right: 3rem !important;
710
+ }
711
+
712
+ .qti-margin-e-auto {
713
+ margin-right: auto !important;
714
+ }
715
+
716
+ /* =========
717
+ Padding css
718
+ ========== */
719
+
720
+ /*
721
+ For padding Top and Bottom and Left and Right
722
+ */
723
+
724
+ .qti-padding-0 {
725
+ padding: 0 !important;
726
+ }
727
+
728
+ .qti-padding-1 {
729
+ padding: 0.25rem !important;
730
+ }
731
+
732
+ .qti-padding-2 {
733
+ padding: 0.5rem !important;
734
+ }
735
+
736
+ .qti-padding-3 {
737
+ padding: 1rem !important;
738
+ }
739
+
740
+ .qti-padding-4 {
741
+ padding: 1.5rem !important;
742
+ }
743
+
744
+ .qti-padding-5 {
745
+ padding: 3rem !important;
746
+ }
747
+
748
+ /*
749
+ For padding Left and Right
750
+ */
751
+
752
+ .qti-padding-x-0 {
753
+ padding-right: 0 !important;
754
+ padding-left: 0 !important;
755
+ }
756
+
757
+ .qti-padding-x-1 {
758
+ padding-right: 0.25rem !important;
759
+ padding-left: 0.25rem !important;
760
+ }
761
+
762
+ .qti-padding-x-2 {
763
+ padding-right: 0.5rem !important;
764
+ padding-left: 0.5rem !important;
765
+ }
766
+
767
+ .qti-padding-x-3 {
768
+ padding-right: 1rem !important;
769
+ padding-left: 1rem !important;
770
+ }
771
+
772
+ .qti-padding-x-4 {
773
+ padding-right: 1.5rem !important;
774
+ padding-left: 1.5rem !important;
775
+ }
776
+
777
+ .qti-padding-x-5 {
778
+ padding-right: 3rem !important;
779
+ padding-left: 3rem !important;
780
+ }
781
+
782
+ /*
783
+ For padding Top and Bottom
784
+ */
785
+
786
+ .qti-padding-y-0 {
787
+ padding-top: 0 !important;
788
+ padding-bottom: 0 !important;
789
+ }
790
+
791
+ .qti-padding-y-1 {
792
+ padding-top: 0.25rem !important;
793
+ padding-bottom: 0.25rem !important;
794
+ }
795
+
796
+ .qti-padding-y-2 {
797
+ padding-top: 0.5rem !important;
798
+ padding-bottom: 0.5rem !important;
799
+ }
800
+
801
+ .qti-padding-y-3 {
802
+ padding-top: 1rem !important;
803
+ padding-bottom: 1rem !important;
804
+ }
805
+
806
+ .qti-padding-y-4 {
807
+ padding-top: 1.5rem !important;
808
+ padding-bottom: 1.5rem !important;
809
+ }
810
+
811
+ .qti-padding-y-5 {
812
+ padding-top: 3rem !important;
813
+ padding-bottom: 3rem !important;
814
+ }
815
+
816
+ /*
817
+ For padding Top
818
+ */
819
+
820
+ .qti-padding-t-0 {
821
+ padding-top: 0 !important;
822
+ }
823
+
824
+ .qti-padding-t-1 {
825
+ padding-top: 0.25rem !important;
826
+ }
827
+
828
+ .qti-padding-t-2 {
829
+ padding-top: 0.5rem !important;
830
+ }
831
+
832
+ .qti-padding-t-3 {
833
+ padding-top: 1rem !important;
834
+ }
835
+
836
+ .qti-padding-t-4 {
837
+ padding-top: 1.5rem !important;
838
+ }
839
+
840
+ .qti-padding-t-5 {
841
+ padding-top: 3rem !important;
842
+ }
843
+
844
+ /*
845
+ For padding Bottom
846
+ */
847
+
848
+ .qti-padding-b-0 {
849
+ padding-bottom: 0 !important;
850
+ }
851
+
852
+ .qti-padding-b-1 {
853
+ padding-bottom: 0.25rem !important;
854
+ }
855
+
856
+ .qti-padding-b-2 {
857
+ padding-bottom: 0.5rem !important;
858
+ }
859
+
860
+ .qti-padding-b-3 {
861
+ padding-bottom: 1rem !important;
862
+ }
863
+
864
+ .qti-padding-b-4 {
865
+ padding-bottom: 1.5rem !important;
866
+ }
867
+
868
+ .qti-padding-b-5 {
869
+ padding-bottom: 3rem !important;
870
+ }
871
+
872
+ /*
873
+ For padding Start LTR
874
+ */
875
+
876
+ .qti-padding-s-0 {
877
+ padding-left: 0 !important;
878
+ }
879
+
880
+ .qti-padding-s-1 {
881
+ padding-left: 0.25rem !important;
882
+ }
883
+
884
+ .qti-padding-s-2 {
885
+ padding-left: 0.5rem !important;
886
+ }
887
+
888
+ .qti-padding-s-3 {
889
+ padding-left: 1rem !important;
890
+ }
891
+
892
+ .qti-padding-s-4 {
893
+ padding-left: 1.5rem !important;
894
+ }
895
+
896
+ .qti-padding-s-5 {
897
+ padding-left: 3rem !important;
898
+ }
899
+
900
+ /*
901
+ For padding End LTR
902
+ */
903
+
904
+ .qti-padding-e-0 {
905
+ padding-right: 0 !important;
906
+ }
907
+
908
+ .qti-padding-e-1 {
909
+ padding-right: 0.25rem !important;
910
+ }
911
+
912
+ .qti-padding-e-2 {
913
+ padding-right: 0.5rem !important;
914
+ }
915
+
916
+ .qti-padding-e-3 {
917
+ padding-right: 1rem !important;
918
+ }
919
+
920
+ .qti-padding-e-4 {
921
+ padding-right: 1.5rem !important;
922
+ }
923
+
924
+ .qti-padding-e-5 {
925
+ padding-right: 3rem !important;
926
+ }
927
+
928
+ /* ====================
929
+ Horizontal alignment
930
+ ==================== */
931
+
932
+ .qti-align-left {
933
+ text-align: left;
934
+ }
935
+
936
+ .qti-align-center {
937
+ text-align: center;
938
+ }
939
+
940
+ .qti-align-right {
941
+ text-align: right;
942
+ }
943
+
944
+ /* ==================
945
+ Vertical alignment
946
+ ================== */
947
+
948
+ .qti-valign-top {
949
+ vertical-align: top;
950
+ }
951
+
952
+ .qti-valign-middle {
953
+ vertical-align: middle;
954
+ }
955
+
956
+ .qti-valign-baseline {
957
+ vertical-align: baseline;
958
+ }
959
+
960
+ .qti-valign-bottom {
961
+ vertical-align: bottom;
962
+ }
963
+
964
+ /* =============
965
+ Height styles
966
+ ============= */
967
+
968
+ .qti-height-0 {
969
+ height: 0;
970
+ }
971
+
972
+ .qti-height-px {
973
+ height: 1px;
974
+ }
975
+
976
+ .qti-height-0p5 {
977
+ height: 0.125rem;
978
+ }
979
+
980
+ .qti-height-1 {
981
+ height: 0.25rem;
982
+ }
983
+
984
+ .qti-height-1p5 {
985
+ height: 0.375rem;
986
+ }
987
+
988
+ .qti-height-2 {
989
+ height: 0.5rem;
990
+ }
991
+
992
+ .qti-height-2p5 {
993
+ height: 0.625rem;
994
+ }
995
+
996
+ .qti-height-3 {
997
+ height: 0.75rem;
998
+ }
999
+
1000
+ .qti-height-3p5 {
1001
+ height: 0.875rem;
1002
+ }
1003
+
1004
+ .qti-height-4 {
1005
+ height: 1rem;
1006
+ }
1007
+
1008
+ .qti-height-5 {
1009
+ height: 1.25rem;
1010
+ }
1011
+
1012
+ .qti-height-6 {
1013
+ height: 1.5rem;
1014
+ }
1015
+
1016
+ .qti-height-7 {
1017
+ height: 1.75rem;
1018
+ }
1019
+
1020
+ .qti-height-8 {
1021
+ height: 2rem;
1022
+ }
1023
+
1024
+ .qti-height-9 {
1025
+ height: 2.25rem;
1026
+ }
1027
+
1028
+ .qti-height-10 {
1029
+ height: 2.5rem;
1030
+ }
1031
+
1032
+ .qti-height-11 {
1033
+ height: 2.75rem;
1034
+ }
1035
+
1036
+ .qti-height-12 {
1037
+ height: 3rem;
1038
+ }
1039
+
1040
+ .qti-height-14 {
1041
+ height: 3.5rem;
1042
+ }
1043
+
1044
+ .qti-height-16 {
1045
+ height: 4rem;
1046
+ }
1047
+
1048
+ .qti-height-20 {
1049
+ height: 5rem;
1050
+ }
1051
+
1052
+ .qti-height-24 {
1053
+ height: 6rem;
1054
+ }
1055
+
1056
+ .qti-height-28 {
1057
+ height: 7rem;
1058
+ }
1059
+
1060
+ .qti-height-32 {
1061
+ height: 8rem;
1062
+ }
1063
+
1064
+ .qti-height-36 {
1065
+ height: 9rem;
1066
+ }
1067
+
1068
+ .qti-height-40 {
1069
+ height: 10rem;
1070
+ }
1071
+
1072
+ .qti-height-44 {
1073
+ height: 11rem;
1074
+ }
1075
+
1076
+ .qti-height-48 {
1077
+ height: 12rem;
1078
+ }
1079
+
1080
+ .qti-height-52 {
1081
+ height: 13rem;
1082
+ }
1083
+
1084
+ .qti-height-56 {
1085
+ height: 14rem;
1086
+ }
1087
+
1088
+ .qti-height-60 {
1089
+ height: 15rem;
1090
+ }
1091
+
1092
+ .qti-height-64 {
1093
+ height: 16rem;
1094
+ }
1095
+
1096
+ .qti-height-72 {
1097
+ height: 18rem;
1098
+ }
1099
+
1100
+ .qti-height-80 {
1101
+ height: 20rem;
1102
+ }
1103
+
1104
+ .qti-height-96 {
1105
+ height: 24rem;
1106
+ }
1107
+
1108
+ .qti-height-1-2 {
1109
+ height: 50%;
1110
+ }
1111
+
1112
+ .qti-height-1-3 {
1113
+ height: 33.3333%;
1114
+ }
1115
+
1116
+ .qti-height-2-3 {
1117
+ height: 66.6667%;
1118
+ }
1119
+
1120
+ .qti-height-1-4 {
1121
+ height: 25%;
1122
+ }
1123
+
1124
+ .qti-height-2-4 {
1125
+ height: 50%;
1126
+ }
1127
+
1128
+ .qti-height-3-4 {
1129
+ height: 75%;
1130
+ }
1131
+
1132
+ .qti-height-1-5 {
1133
+ height: 20%;
1134
+ }
1135
+
1136
+ .qti-height-2-5 {
1137
+ height: 40%;
1138
+ }
1139
+
1140
+ .qti-height-3-5 {
1141
+ height: 60%;
1142
+ }
1143
+
1144
+ .qti-height-4-5 {
1145
+ height: 80%;
1146
+ }
1147
+
1148
+ .qti-height-1-6 {
1149
+ height: 16.6667%;
1150
+ }
1151
+
1152
+ .qti-height-2-6 {
1153
+ height: 33.3333%;
1154
+ }
1155
+
1156
+ .qti-height-3-6 {
1157
+ height: 50%;
1158
+ }
1159
+
1160
+ .qti-height-4-6 {
1161
+ height: 66.6667%;
1162
+ }
1163
+
1164
+ .qti-height-5-6 {
1165
+ height: 83.3333%;
1166
+ }
1167
+
1168
+ .qti-height-auto {
1169
+ height: auto;
1170
+ }
1171
+
1172
+ .qti-height-full {
1173
+ height: 100%;
1174
+ }
1175
+
1176
+ /* ============
1177
+ Width styles
1178
+ ============ */
1179
+
1180
+ .qti-width-0 {
1181
+ width: 0;
1182
+ }
1183
+
1184
+ .qti-width-px {
1185
+ width: 1px;
1186
+ }
1187
+
1188
+ .qti-width-0p5 {
1189
+ width: 0.125rem;
1190
+ }
1191
+
1192
+ .qti-width-1 {
1193
+ width: 0.25rem;
1194
+ }
1195
+
1196
+ .qti-width-1p5 {
1197
+ width: 0.375rem;
1198
+ }
1199
+
1200
+ .qti-width-2 {
1201
+ width: 0.5rem;
1202
+ }
1203
+
1204
+ .qti-width-2p5 {
1205
+ width: 0.625rem;
1206
+ }
1207
+
1208
+ .qti-width-3 {
1209
+ width: 0.75rem;
1210
+ }
1211
+
1212
+ .qti-width-3p5 {
1213
+ width: 0.875rem;
1214
+ }
1215
+
1216
+ .qti-width-4 {
1217
+ width: 1rem;
1218
+ }
1219
+
1220
+ .qti-width-5 {
1221
+ width: 1.25rem;
1222
+ }
1223
+
1224
+ .qti-width-6 {
1225
+ width: 1.5rem;
1226
+ }
1227
+
1228
+ .qti-width-7 {
1229
+ width: 1.75rem;
1230
+ }
1231
+
1232
+ .qti-width-8 {
1233
+ width: 2rem;
1234
+ }
1235
+
1236
+ .qti-width-9 {
1237
+ width: 2.25rem;
1238
+ }
1239
+
1240
+ .qti-width-10 {
1241
+ width: 2.5rem;
1242
+ }
1243
+
1244
+ .qti-width-11 {
1245
+ width: 2.75rem;
1246
+ }
1247
+
1248
+ .qti-width-12 {
1249
+ width: 3rem;
1250
+ }
1251
+
1252
+ .qti-width-14 {
1253
+ width: 3.5rem;
1254
+ }
1255
+
1256
+ .qti-width-16 {
1257
+ width: 4rem;
1258
+ }
1259
+
1260
+ .qti-width-20 {
1261
+ width: 5rem;
1262
+ }
1263
+
1264
+ .qti-width-24 {
1265
+ width: 6rem;
1266
+ }
1267
+
1268
+ .qti-width-28 {
1269
+ width: 7rem;
1270
+ }
1271
+
1272
+ .qti-width-32 {
1273
+ width: 8rem;
1274
+ }
1275
+
1276
+ .qti-width-36 {
1277
+ width: 9rem;
1278
+ }
1279
+
1280
+ .qti-width-40 {
1281
+ width: 10rem;
1282
+ }
1283
+
1284
+ .qti-width-44 {
1285
+ width: 11rem;
1286
+ }
1287
+
1288
+ .qti-width-48 {
1289
+ width: 12rem;
1290
+ }
1291
+
1292
+ .qti-width-52 {
1293
+ width: 13rem;
1294
+ }
1295
+
1296
+ .qti-width-56 {
1297
+ width: 14rem;
1298
+ }
1299
+
1300
+ .qti-width-60 {
1301
+ width: 15rem;
1302
+ }
1303
+
1304
+ .qti-width-64 {
1305
+ width: 16rem;
1306
+ }
1307
+
1308
+ .qti-width-72 {
1309
+ width: 18rem;
1310
+ }
1311
+
1312
+ .qti-width-80 {
1313
+ width: 20rem;
1314
+ }
1315
+
1316
+ .qti-width-96 {
1317
+ width: 24rem;
1318
+ }
1319
+
1320
+ .qti-width-auto {
1321
+ width: auto;
1322
+ }
1323
+
1324
+ .qti-width-1-2 {
1325
+ width: 50%;
1326
+ }
1327
+
1328
+ .qti-width-1-3 {
1329
+ width: 33.3333%;
1330
+ }
1331
+
1332
+ .qti-width-2-3 {
1333
+ width: 66.6667%;
1334
+ }
1335
+
1336
+ .qti-width-1-4 {
1337
+ width: 25%;
1338
+ }
1339
+
1340
+ .qti-width-2-4 {
1341
+ width: 50%;
1342
+ }
1343
+
1344
+ .qti-width-3-4 {
1345
+ width: 75%;
1346
+ }
1347
+
1348
+ .qti-width-1-5 {
1349
+ width: 20%;
1350
+ }
1351
+
1352
+ .qti-width-2-5 {
1353
+ width: 40%;
1354
+ }
1355
+
1356
+ .qti-width-3-5 {
1357
+ width: 60%;
1358
+ }
1359
+
1360
+ .qti-width-4-5 {
1361
+ width: 80%;
1362
+ }
1363
+
1364
+ .qti-width-1-6 {
1365
+ width: 16.6667%;
1366
+ }
1367
+
1368
+ .qti-width-2-6 {
1369
+ width: 33.3333%;
1370
+ }
1371
+
1372
+ .qti-width-3-6 {
1373
+ width: 50%;
1374
+ }
1375
+
1376
+ .qti-width-4-6 {
1377
+ width: 66.6667%;
1378
+ }
1379
+
1380
+ .qti-width-5-6 {
1381
+ width: 83.3333%;
1382
+ }
1383
+
1384
+ .qti-width-1-12 {
1385
+ width: 8.3333%;
1386
+ }
1387
+
1388
+ .qti-width-2-12 {
1389
+ width: 16.6667%;
1390
+ }
1391
+
1392
+ .qti-width-3-12 {
1393
+ width: 25%;
1394
+ }
1395
+
1396
+ .qti-width-4-12 {
1397
+ width: 33.3333%;
1398
+ }
1399
+
1400
+ .qti-width-5-12 {
1401
+ width: 41.6667%;
1402
+ }
1403
+
1404
+ .qti-width-6-12 {
1405
+ width: 50%;
1406
+ }
1407
+
1408
+ .qti-width-7-12 {
1409
+ width: 58.3333%;
1410
+ }
1411
+
1412
+ .qti-width-8-12 {
1413
+ width: 66.6667%;
1414
+ }
1415
+
1416
+ .qti-width-9-12 {
1417
+ width: 75%;
1418
+ }
1419
+
1420
+ .qti-width-10-12 {
1421
+ width: 83.3333%;
1422
+ }
1423
+
1424
+ .qti-width-11-12 {
1425
+ width: 91.6667%;
1426
+ }
1427
+
1428
+ .qti-width-full,
1429
+ .qti-fullwidth {
1430
+ width: 100%;
1431
+ }
1432
+
1433
+ /* ==================
1434
+ Text Indent styles
1435
+ ================== */
1436
+
1437
+ .qti-text-indent-0 {
1438
+ text-indent: 0;
1439
+ }
1440
+
1441
+ .qti-text-indent-px {
1442
+ text-indent: 1px;
1443
+ }
1444
+
1445
+ .qti-text-indent-0p5 {
1446
+ text-indent: 0.125rem;
1447
+ }
1448
+
1449
+ .qti-text-indent-1 {
1450
+ text-indent: 0.25rem;
1451
+ }
1452
+
1453
+ .qti-text-indent-1p5 {
1454
+ text-indent: 0.375rem;
1455
+ }
1456
+
1457
+ .qti-text-indent-2 {
1458
+ text-indent: 0.5rem;
1459
+ }
1460
+
1461
+ .qti-text-indent-2p5 {
1462
+ text-indent: 0.625rem;
1463
+ }
1464
+
1465
+ .qti-text-indent-3 {
1466
+ text-indent: 0.75rem;
1467
+ }
1468
+
1469
+ .qti-text-indent-3p5 {
1470
+ text-indent: 0.875rem;
1471
+ }
1472
+
1473
+ .qti-text-indent-4 {
1474
+ text-indent: 1rem;
1475
+ }
1476
+
1477
+ .qti-text-indent-5 {
1478
+ text-indent: 1.25rem;
1479
+ }
1480
+
1481
+ .qti-text-indent-6 {
1482
+ text-indent: 1.5rem;
1483
+ }
1484
+
1485
+ .qti-text-indent-7 {
1486
+ text-indent: 1.75rem;
1487
+ }
1488
+
1489
+ .qti-text-indent-8 {
1490
+ text-indent: 2rem;
1491
+ }
1492
+
1493
+ .qti-text-indent-12 {
1494
+ text-indent: 3rem;
1495
+ }
1496
+
1497
+ .qti-text-indent-16 {
1498
+ text-indent: 4rem;
1499
+ }
1500
+
1501
+ .qti-text-indent-20 {
1502
+ text-indent: 5rem;
1503
+ }
1504
+
1505
+ .qti-text-indent-24 {
1506
+ text-indent: 6rem;
1507
+ }
1508
+
1509
+ .qti-text-indent-28 {
1510
+ text-indent: 7rem;
1511
+ }
1512
+
1513
+ .qti-text-indent-32 {
1514
+ text-indent: 8rem;
1515
+ }
1516
+
1517
+ /* =================
1518
+ List Style styles
1519
+ ================= */
1520
+
1521
+ .qti-list-style-type-none {
1522
+ list-style-type: none;
1523
+ }
1524
+
1525
+ .qti-list-style-type-disc {
1526
+ list-style-type: disc;
1527
+ }
1528
+
1529
+ .qti-list-style-type-circle {
1530
+ list-style-type: circle;
1531
+ }
1532
+
1533
+ .qti-list-style-type-square {
1534
+ list-style-type: square;
1535
+ }
1536
+
1537
+ .qti-list-style-type-decimal {
1538
+ list-style-type: decimal;
1539
+ }
1540
+
1541
+ .qti-list-style-type-decimal-leading-zero {
1542
+ list-style-type: decimal-leading-zero;
1543
+ }
1544
+
1545
+ .qti-list-style-type-lower-alpha {
1546
+ list-style-type: lower-alpha;
1547
+ }
1548
+
1549
+ .qti-list-style-type-upper-alpha {
1550
+ list-style-type: upper-alpha;
1551
+ }
1552
+
1553
+ .qti-list-style-type-lower-roman {
1554
+ list-style-type: lower-roman;
1555
+ }
1556
+
1557
+ .qti-list-style-type-upper-roman {
1558
+ list-style-type: upper-roman;
1559
+ }
1560
+
1561
+ .qti-list-style-type-lower-latin {
1562
+ list-style-type: lower-latin;
1563
+ }
1564
+
1565
+ .qti-list-style-type-upper-latin {
1566
+ list-style-type: upper-latin;
1567
+ }
1568
+
1569
+ .qti-list-style-type-lower-greek {
1570
+ list-style-type: lower-greek;
1571
+ }
1572
+
1573
+ .qti-list-style-type-arabic-indic {
1574
+ list-style-type: arabic-indic;
1575
+ }
1576
+
1577
+ .qti-list-style-type-armenian {
1578
+ list-style-type: armenian;
1579
+ }
1580
+
1581
+ .qti-list-style-type-lower-armenian {
1582
+ list-style-type: lower-armenian;
1583
+ }
1584
+
1585
+ .qti-list-style-type-upper-armenian {
1586
+ list-style-type: upper-armenian;
1587
+ }
1588
+
1589
+ .qti-list-style-type-bengali {
1590
+ list-style-type: bengali;
1591
+ }
1592
+
1593
+ .qti-list-style-type-cambodian {
1594
+ list-style-type: cambodian;
1595
+ }
1596
+
1597
+ .qti-list-style-type-simp-chinese-formal {
1598
+ list-style-type: simp-chinese-formal;
1599
+ }
1600
+
1601
+ .qti-list-style-type-simp-chinese-informal {
1602
+ list-style-type: simp-chinese-informal;
1603
+ }
1604
+
1605
+ .qti-list-style-type-trad-chinese-formal {
1606
+ list-style-type: trad-chinese-formal;
1607
+ }
1608
+
1609
+ .qti-list-style-type-trad-chinese-informal {
1610
+ list-style-type: trad-chinese-informal;
1611
+ }
1612
+
1613
+ .qti-list-style-type-cjk-ideographic {
1614
+ list-style-type: cjk-ideographic;
1615
+ }
1616
+
1617
+ .qti-list-style-type-cjk-heavenly-stem {
1618
+ list-style-type: cjk-heavenly-stem;
1619
+ }
1620
+
1621
+ .qti-list-style-type-cjk-earthly-branch {
1622
+ list-style-type: cjk-earthly-branch;
1623
+ }
1624
+
1625
+ .qti-list-style-type-devanagari {
1626
+ list-style-type: devanagari;
1627
+ }
1628
+
1629
+ .qti-list-style-type-ethiopic-halehame-ti-er {
1630
+ list-style-type: ethiopic-halehame-ti-er;
1631
+ }
1632
+
1633
+ .qti-list-style-type-ethiopic-halehame-ti-et {
1634
+ list-style-type: ethiopic-halehame-ti-et;
1635
+ }
1636
+
1637
+ .qti-list-style-type-ethiopic-halehame-am {
1638
+ list-style-type: ethiopic-halehame-am;
1639
+ }
1640
+
1641
+ .qti-list-style-type-ethiopic-halehame {
1642
+ list-style-type: ethiopic-halehame;
1643
+ }
1644
+
1645
+ .qti-list-style-type-georgian {
1646
+ list-style-type: georgian;
1647
+ }
1648
+
1649
+ .qti-list-style-type-gujarati {
1650
+ list-style-type: gujarati;
1651
+ }
1652
+
1653
+ .qti-list-style-type-gurmukhi {
1654
+ list-style-type: gurmukhi;
1655
+ }
1656
+
1657
+ .qti-list-style-type-hangul {
1658
+ list-style-type: hangul;
1659
+ }
1660
+
1661
+ .qti-list-style-type-hangul-consonant {
1662
+ list-style-type: hangul-consonant;
1663
+ }
1664
+
1665
+ .qti-list-style-type-hebrew {
1666
+ list-style-type: hebrew;
1667
+ }
1668
+
1669
+ .qti-list-style-type-hiragana {
1670
+ list-style-type: hiragana;
1671
+ }
1672
+
1673
+ .qti-list-style-type-hiragana-iroha {
1674
+ list-style-type: hiragana-iroha;
1675
+ }
1676
+
1677
+ .qti-list-style-type-khmer {
1678
+ list-style-type: khmer;
1679
+ }
1680
+
1681
+ .qti-list-style-type-korean-hangul-formal {
1682
+ list-style-type: korean-hangul-formal;
1683
+ }
1684
+
1685
+ .qti-list-style-type-korean-hanja-formal {
1686
+ list-style-type: korean-hanja-formal;
1687
+ }
1688
+
1689
+ .qti-list-style-type-korean-hanja-informal {
1690
+ list-style-type: korean-hanja-informal;
1691
+ }
1692
+
1693
+ .qti-list-style-type-lao {
1694
+ list-style-type: lao;
1695
+ }
1696
+
1697
+ .qti-list-style-type-malayalam {
1698
+ list-style-type: malayalam;
1699
+ }
1700
+
1701
+ .qti-list-style-type-mongolian {
1702
+ list-style-type: mongolian;
1703
+ }
1704
+
1705
+ .qti-list-style-type-myanmar {
1706
+ list-style-type: myanmar;
1707
+ }
1708
+
1709
+ .qti-list-style-type-oriya {
1710
+ list-style-type: oriya;
1711
+ }
1712
+
1713
+ .qti-list-style-type-persian {
1714
+ list-style-type: persian;
1715
+ }
1716
+
1717
+ .qti-list-style-type-thai {
1718
+ list-style-type: thai;
1719
+ }
1720
+
1721
+ .qti-list-style-type-tibetan {
1722
+ list-style-type: tibetan;
1723
+ }
1724
+
1725
+ .qti-list-style-type-telugu {
1726
+ list-style-type: telugu;
1727
+ }
1728
+
1729
+ .qti-list-style-type-urdu {
1730
+ list-style-type: urdu;
1731
+ }
1732
+
1733
+ /* =========================
1734
+ Other QTI 3 Presentation Utilities
1735
+ ========================= */
1736
+
1737
+ .qti-bordered {
1738
+ border: 1px solid var(--table-border-color);
1739
+ }
1740
+
1741
+ .qti-underline {
1742
+ text-decoration: underline;
1743
+ text-decoration-color: var(--foreground);
1744
+ }
1745
+
1746
+ .qti-italic {
1747
+ font-style: italic;
1748
+ }
1749
+
1750
+ .qti-well {
1751
+ min-height: 20px;
1752
+ padding: 19px;
1753
+ margin-bottom: 20px;
1754
+ background-color: var(--well-bg);
1755
+ border: var(--well-border);
1756
+ border-radius: 4px;
1757
+ box-shadow: var(--well-box-shadow);
1758
+ }
1759
+
1760
+ /* Set writing-mode to vertical-rl
1761
+ Typical for CJK vertical text */
1762
+
1763
+ .qti-writing-mode-vertical-rl {
1764
+ writing-mode: vertical-rl;
1765
+ }
1766
+
1767
+ /* Set writing-mode to vertical-lr
1768
+ Typical for Mongolian vertical text */
1769
+
1770
+ .qti-writing-mode-vertical-lr {
1771
+ writing-mode: vertical-lr;
1772
+ }
1773
+
1774
+ /* Set writing-mode to horizontal-tb
1775
+ Browser default */
1776
+
1777
+ .qti-writing-mode-horizontal-tb {
1778
+ writing-mode: horizontal-tb;
1779
+ }
1780
+
1781
+ /* Float an element left */
1782
+
1783
+ .qti-float-left {
1784
+ float: left;
1785
+ }
1786
+
1787
+ /* Float an element right */
1788
+
1789
+ .qti-float-right {
1790
+ float: right;
1791
+ }
1792
+
1793
+ /* Remove a float */
1794
+
1795
+ .qti-float-none {
1796
+ float: none;
1797
+ }
1798
+
1799
+ /* Clearfix Hack to apply to a container of
1800
+ floated content that overflows the container. */
1801
+
1802
+ .qti-float-clearfix::after {
1803
+ content: '';
1804
+ clear: both;
1805
+ display: table;
1806
+ }
1807
+
1808
+ .qti-float-clear-left
1809
+ .qti-float-clear-right
1810
+ .qti-float-clear-both
1811
+
1812
+ /* Set text-orientation to upright */
1813
+ .qti-text-orientation-upright {
1814
+ text-orientation: upright;
1815
+ }
1816
+
1817
+ /* stylelint-disable number-max-precision */
1818
+
1819
+ @layer qti-base {
1820
+ .qti-layout-row {
1821
+ display: flex;
1822
+ flex-wrap: wrap;
1823
+ width: 100%;
1824
+ gap: 2.1276595745%;
1825
+ }
1826
+
1827
+ .qti-layout-row [class*='qti-layout-col']:not(:empty) {
1828
+ box-sizing: border-box;
1829
+ }
1830
+
1831
+ .qti-layout-row [class*='qti-layout-col']:empty {
1832
+ width: 0;
1833
+ overflow: hidden; /* to fully collapse if there\u2019s padding or borders */
1834
+ }
1835
+
1836
+ .qti-layout-col1 {
1837
+ width: 6.3829787234%;
1838
+ }
1839
+
1840
+ .qti-layout-col2 {
1841
+ width: 14.8936170213%;
1842
+ }
1843
+
1844
+ .qti-layout-col3 {
1845
+ width: 23.4042553191%;
1846
+ }
1847
+
1848
+ .qti-layout-col4 {
1849
+ width: 31.914893617%;
1850
+ }
1851
+
1852
+ .qti-layout-col5 {
1853
+ width: 40.4255319149%;
1854
+ }
1855
+
1856
+ .qti-layout-col6 {
1857
+ width: 48.9361702128%;
1858
+ }
1859
+
1860
+ .qti-layout-col7 {
1861
+ width: 57.4468085106%;
1862
+ }
1863
+
1864
+ .qti-layout-col8 {
1865
+ width: 65.9574468085%;
1866
+ }
1867
+
1868
+ .qti-layout-col9 {
1869
+ width: 74.4680851064%;
1870
+ }
1871
+
1872
+ .qti-layout-col10 {
1873
+ width: 82.9787234043%;
1874
+ }
1875
+
1876
+ .qti-layout-col11 {
1877
+ width: 91.4893617021%;
1878
+ }
1879
+
1880
+ .qti-layout-col12 {
1881
+ width: 100%;
1882
+ }
1883
+
1884
+ .qti-layout-offset1 {
1885
+ margin-left: 8.5106382979%;
1886
+ }
1887
+
1888
+ .qti-layout-offset2 {
1889
+ margin-left: 17.0212765957%;
1890
+ }
1891
+
1892
+ .qti-layout-offset3 {
1893
+ margin-left: 25.5319148936%;
1894
+ }
1895
+
1896
+ .qti-layout-offset4 {
1897
+ margin-left: 34.0425531915%;
1898
+ }
1899
+
1900
+ .qti-layout-offset5 {
1901
+ margin-left: 42.5531914894%;
1902
+ }
1903
+
1904
+ .qti-layout-offset6 {
1905
+ margin-left: 51.0638297872%;
1906
+ }
1907
+
1908
+ .qti-layout-offset7 {
1909
+ margin-left: 59.5744680851%;
1910
+ }
1911
+
1912
+ .qti-layout-offset8 {
1913
+ margin-left: 68.085106383%;
1914
+ }
1915
+
1916
+ .qti-layout-offset9 {
1917
+ margin-left: 76.5957446809%;
1918
+ }
1919
+
1920
+ .qti-layout-offset10 {
1921
+ margin-left: 85.1063829787%;
1922
+ }
1923
+
1924
+ .qti-layout-offset11 {
1925
+ margin-left: 93.6170212766%;
1926
+ }
1927
+
1928
+ .qti-layout-offset12 {
1929
+ margin-left: 102.1276595745%;
1930
+ }
1931
+
1932
+ @media (width <= 767px) {
1933
+ [class*='qti-layout-col'] {
1934
+ width: 100%;
1935
+ }
1936
+ }
1937
+ }
1938
+
1939
+ [view],
1940
+ qti-outcome-declaration,
1941
+ qti-response-declaration {
1942
+ display: none;
1943
+ }
1944
+
1945
+ [view].show {
1946
+ display: block;
1947
+ }
1948
+
1949
+ :host {
1950
+ box-sizing: border-box;
1951
+ }
1952
+
1953
+ *,
1954
+ *::before,
1955
+ *::after {
1956
+ box-sizing: inherit;
1957
+ }
1958
+
1959
+ /* components */
1960
+
1961
+ @layer qti-components {
1962
+ qti-choice-interaction {
1963
+ &.qti-input-control-hidden {
1964
+ & qti-simple-choice {
1965
+
1966
+ &:hover {
1967
+ background-color: var(--qti-hover-bg);
1968
+ }
1969
+
1970
+ &:focus {
1971
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
1972
+ }
1973
+
1974
+ &::part(ch) {
1975
+ display: none;
1976
+ }
1977
+
1978
+ &:state(--checked),
1979
+ &[aria-checked='true'] {
1980
+ border-color: var(--qti-border-active);
1981
+ background-color: var(--qti-bg-active);
1982
+ }
1983
+
1984
+ &:state(readonly),
1985
+ &[aria-readonly='true'] {
1986
+ cursor: pointer;
1987
+ background-color: var(--qti-bg);
1988
+ outline: 0;
1989
+ border: none;
1990
+ }
1991
+
1992
+ &:state(disabled),
1993
+ &[aria-disabled='true'] {
1994
+ cursor: not-allowed;
1995
+ background-color: var(--qti-disabled-bg);
1996
+ color: var(--qti-disabled-color);
1997
+ border-color: var(--qti-border-color);
1998
+ outline: 4px solid var(--qti-disabled-bg);
1999
+ }
2000
+
2001
+ border-radius: var(--qti-border-radius);
2002
+
2003
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
2004
+
2005
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2006
+
2007
+ outline: none
2008
+ }
2009
+ }
2010
+
2011
+ &:not(.qti-input-control-hidden) {
2012
+ & qti-simple-choice {
2013
+
2014
+ &:not([aria-disabled='true'], [aria-readonly='true'], :state(--checked)):hover {
2015
+ background-color: var(--qti-hover-bg);
2016
+ }
2017
+
2018
+ &:focus {
2019
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
2020
+ }
2021
+
2022
+ &:state(--checked),
2023
+ &[aria-checked='true'] {
2024
+ border-color: var(--qti-border-active);
2025
+ background-color: var(--qti-bg-active);
2026
+ }
2027
+
2028
+ &:state(readonly),
2029
+ &[aria-readonly='true'] {
2030
+ cursor: pointer;
2031
+ background-color: var(--qti-bg);
2032
+ outline: 0;
2033
+ border: none;
2034
+ }
2035
+
2036
+ &:state(disabled),
2037
+ &[aria-disabled='true'] {
2038
+ cursor: not-allowed;
2039
+ background-color: var(--qti-disabled-bg);
2040
+ color: var(--qti-disabled-color);
2041
+ border-color: var(--qti-border-color);
2042
+ outline: 4px solid var(--qti-disabled-bg);
2043
+ }
2044
+
2045
+ &::part(cha) {
2046
+ width: calc(var(--qti-form-size) - 6px);
2047
+ height: calc(var(--qti-form-size) - 6px);
2048
+ }
2049
+
2050
+ &:state(radio)::part(ch) {
2051
+ border-radius: 100%;
2052
+ display: grid;
2053
+ place-content: center;
2054
+ width: var(--qti-form-size);
2055
+ height: var(--qti-form-size);
2056
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2057
+ outline: none;
2058
+ }
2059
+
2060
+ &:state(radio):state(--checked)::part(cha) {
2061
+ background-color: var(--qti-border-active);
2062
+ border-radius: 100%;
2063
+ }
2064
+
2065
+ &:state(checkbox)::part(ch) {
2066
+ display: flex;
2067
+ place-items: center;
2068
+ border-radius: var(--qti-border-radius);
2069
+ display: grid;
2070
+ place-content: center;
2071
+ width: var(--qti-form-size);
2072
+ height: var(--qti-form-size);
2073
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2074
+ outline: none;
2075
+ }
2076
+
2077
+ &:state(checkbox):state(--checked)::part(cha) {
2078
+ background-color: var(--qti-border-active);
2079
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
2080
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
2081
+ }
2082
+
2083
+ gap: 0.5rem;
2084
+
2085
+ border-radius: var(--qti-border-radius);
2086
+
2087
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
2088
+
2089
+ outline: none;
2090
+
2091
+ cursor: pointer
2092
+ }
2093
+ }
2094
+
2095
+ & qti-simple-choice {
2096
+ width: -moz-fit-content;
2097
+ width: fit-content;
2098
+ cursor: pointer;
2099
+
2100
+ &:state(correct-response),
2101
+ &[data-correct-response='true'] {
2102
+ &::after {
2103
+ content: '\\02714';
2104
+ color: var(--qti-correct);
2105
+ }
2106
+ }
2107
+ }
2108
+
2109
+ & qti-simple-choice > p {
2110
+ margin: 0 !important;
2111
+ padding: 0 !important;
2112
+ }
2113
+ }
2114
+
2115
+ .hover-border {
2116
+ border: 2px solid #000; /* Adjust the border style and color as needed */
2117
+ }
2118
+
2119
+ qti-graphic-gap-match-interaction {
2120
+ position: relative;
2121
+
2122
+ &.qti-selections-light {
2123
+ &:state(--dragzone-active)::part(drags) {
2124
+ background-color: var(--qti-light-bg-active);
2125
+ border-color: var(--qti-light-border-active);
2126
+ }
2127
+
2128
+ &:state(--dragzone-enabled)::part(drags) {
2129
+ background-color: var(--qti-light-bg-active);
2130
+ }
2131
+ }
2132
+
2133
+ &.qti-selections-dark {
2134
+ &:state(--dragzone-active)::part(drags) {
2135
+ background-color: var(--qti-dark-bg-active);
2136
+ border-color: var(--qti-dark-border-active);
2137
+ }
2138
+
2139
+ &:state(--dragzone-enabled)::part(drags) {
2140
+ background-color: var(--qti-dark-bg-active);
2141
+ }
2142
+ }
2143
+
2144
+ /* General styles for active and enabled states */
2145
+ &:state(--dragzone-active)::part(drags) {
2146
+ border-color: var(--qti-border-active);
2147
+ background-color: var(--qti-bg-active);
2148
+ }
2149
+
2150
+ &:state(--dragzone-enabled)::part(drags) {
2151
+ background-color: var(--qti-bg-active);
2152
+ }
2153
+
2154
+ & qti-gap-img,
2155
+ qti-gap-text {
2156
+ display: flex;
2157
+ justify-content: center;
2158
+ align-items: center;
2159
+ cursor: grab;
2160
+ }
2161
+
2162
+ & qti-associable-hotspot {
2163
+ display: flex;
2164
+ justify-content: center;
2165
+ align-items: center;
2166
+ border: 2px solid transparent;
2167
+
2168
+ &[enabled] {
2169
+
2170
+ /* Light theme override */
2171
+ .qti-selections-light {
2172
+ background-color: var(--qti-light-bg-active);
2173
+ }
2174
+
2175
+ /* Dark theme override */
2176
+ .qti-selections-dark {
2177
+ background-color: var(--qti-dark-bg-active);
2178
+ }
2179
+ background-color: var(--qti-bg-active)
2180
+ }
2181
+
2182
+ &[active] {
2183
+
2184
+ /* Light theme override */
2185
+ .qti-selections-light {
2186
+ background-color: var(--qti-light-bg-active);
2187
+ border-color: var(--qti-light-border-active);
2188
+ }
2189
+
2190
+ /* Dark theme override */
2191
+ .qti-selections-dark {
2192
+ background-color: var(--qti-dark-bg-active);
2193
+ border-color: var(--qti-dark-border-active);
2194
+ }
2195
+ border-color: var(--qti-border-active);
2196
+ background-color: var(--qti-bg-active)
2197
+ }
2198
+
2199
+ &[disabled] {
2200
+
2201
+ &:not(:empty) {
2202
+ cursor: default !important;
2203
+ }
2204
+
2205
+ cursor: not-allowed;
2206
+
2207
+ background-color: var(--qti-disabled-bg);
2208
+
2209
+ color: var(--qti-disabled-color);
2210
+
2211
+ border-color: var(--qti-border-color);
2212
+
2213
+ outline: 4px solid var(--qti-disabled-bg)
2214
+ }
2215
+
2216
+ &:empty::after {
2217
+ padding: var(--qti-padding-md) var(--qti-padding-lg); /* Padding shorthand */
2218
+ content: '\\0000a0'; /* when empty, put a space in it */
2219
+ }
2220
+
2221
+ &:not(:empty) {
2222
+ padding: 0;
2223
+ width: auto;
2224
+ }
2225
+
2226
+ &:not(:empty) > * {
2227
+ flex: 1;
2228
+ transform: rotate(0); /* rotate-0 */
2229
+ box-shadow: 0 0 0 1px #e5e7eb; /* ring-gray-200 */
2230
+ }
2231
+ }
2232
+
2233
+ & img {
2234
+ margin: 0;
2235
+ padding: 0;
2236
+ }
2237
+ }
2238
+
2239
+ qti-text-entry-interaction {
2240
+ &::part(input) {
2241
+ border-radius: 0;
2242
+ cursor: text;
2243
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
2244
+ background: unset;
2245
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2246
+ outline: none;
2247
+ }
2248
+
2249
+ &:hover {
2250
+ background-color: var(--qti-hover-bg);
2251
+ }
2252
+
2253
+ &:focus-within {
2254
+ &::part(input) {
2255
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
2256
+ border-color: var(--qti-border-active);
2257
+ }
2258
+ }
2259
+ }
2260
+
2261
+ qti-extended-text-interaction {
2262
+ &::part(textarea) {
2263
+ border-radius: 0;
2264
+ cursor: text;
2265
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
2266
+ background: unset;
2267
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2268
+ outline: none;
2269
+ }
2270
+
2271
+ &:hover {
2272
+ background-color: var(--qti-hover-bg);
2273
+ }
2274
+
2275
+ &:focus-within {
2276
+ &::part(textarea) {
2277
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
2278
+ border-color: var(--qti-border-active);
2279
+ }
2280
+ }
2281
+ }
2282
+
2283
+ qti-gap-match-interaction {
2284
+ &.qti-selections-light {
2285
+ &:state(--dragzone-active)::part(drags) {
2286
+ background-color: var(--qti-light-bg-active);
2287
+ border-color: var(--qti-light-border-active);
2288
+ }
2289
+
2290
+ &:state(--dragzone-enabled)::part(drags) {
2291
+ background-color: var(--qti-light-bg-active);
2292
+ }
2293
+ }
2294
+
2295
+ &.qti-selections-dark {
2296
+ &:state(--dragzone-active)::part(drags) {
2297
+ background-color: var(--qti-dark-bg-active);
2298
+ border-color: var(--qti-dark-border-active);
2299
+ }
2300
+
2301
+ &:state(--dragzone-enabled)::part(drags) {
2302
+ background-color: var(--qti-dark-bg-active);
2303
+ }
2304
+ }
2305
+
2306
+ /* General styles for active and enabled states */
2307
+ &:state(--dragzone-active)::part(drags) {
2308
+ border-color: var(--qti-border-active);
2309
+ background-color: var(--qti-bg-active);
2310
+ }
2311
+
2312
+ &:state(--dragzone-enabled)::part(drags) {
2313
+ background-color: var(--qti-bg-active);
2314
+ }
2315
+
2316
+ & qti-gap-text {
2317
+
2318
+ &[dragging] {
2319
+ pointer-events: none;
2320
+ rotate: -2deg;
2321
+ box-shadow: 0 8px 12px rgb(0 0 0 / 20%),
2322
+ 0 4px 8px rgb(0 0 0 / 10%);
2323
+ }
2324
+
2325
+ &:hover {
2326
+ background-color: var(--qti-hover-bg);
2327
+ }
2328
+
2329
+ &:focus {
2330
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
2331
+ }
2332
+
2333
+ transition: transform 200ms ease-out,
2334
+ box-shadow 200ms ease-out,
2335
+ rotate 200ms ease-out;
2336
+
2337
+ cursor: grab;
2338
+
2339
+ background-color: var(--qti-bg);
2340
+
2341
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
2342
+
2343
+ border-radius: var(--qti-border-radius);
2344
+
2345
+ padding-left: calc(var(--qti-padding-horizontal) + 0.5rem);
2346
+
2347
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2348
+
2349
+ outline: none;
2350
+
2351
+ background-image: radial-gradient(
2352
+ circle at center,
2353
+ rgb(0 0 0 / 10%) 0,
2354
+ rgb(0 0 0 / 20%) 2px,
2355
+ rgb(255 255 255 / 0%) 2px,
2356
+ rgb(255 255 255 / 0%) 100%
2357
+ );
2358
+
2359
+ background-repeat: repeat-y;
2360
+
2361
+ background-position: left center;
2362
+
2363
+ background-size: 14px 8px
2364
+ }
2365
+
2366
+ & qti-gap {
2367
+
2368
+ &[disabled] {
2369
+
2370
+ &:not(:empty) {
2371
+ cursor: default !important;
2372
+ }
2373
+
2374
+ cursor: not-allowed;
2375
+
2376
+ background-color: var(--qti-disabled-bg);
2377
+
2378
+ color: var(--qti-disabled-color);
2379
+
2380
+ border-color: var(--qti-border-color);
2381
+
2382
+ outline: 4px solid var(--qti-disabled-bg)
2383
+ }
2384
+
2385
+ &[enabled] {
2386
+
2387
+ /* Light theme override */
2388
+ .qti-selections-light {
2389
+ border-color: var(--qti-light-border-active);
2390
+ }
2391
+
2392
+ /* Dark theme override */
2393
+ .qti-selections-dark {
2394
+ border-color: var(--qti-dark-border-active);
2395
+ }
2396
+ background-color: var(--qti-bg-active)
2397
+ }
2398
+
2399
+ &[active] {
2400
+
2401
+ /* Light theme override */
2402
+ .qti-selections-light {
2403
+ background-color: var(--qti-light-bg-active);
2404
+ border-color: var(--qti-light-border-active);
2405
+ }
2406
+
2407
+ /* Dark theme override */
2408
+ .qti-selections-dark {
2409
+ background-color: var(--qti-dark-bg-active);
2410
+ border-color: var(--qti-dark-border-active);
2411
+ }
2412
+ border-color: var(--qti-border-active);
2413
+ background-color: var(--qti-bg-active)
2414
+ }
2415
+
2416
+ display: inline-flex;
2417
+ align-items: center;
2418
+
2419
+ &:empty::after {
2420
+ padding: var(--qti-padding-md) var(--qti-padding-lg); /* Padding shorthand */
2421
+ content: '\\0000a0'; /* when empty, put a space in it */
2422
+ }
2423
+
2424
+ &:not(:empty) {
2425
+ display: inline-flex;
2426
+ padding: 0;
2427
+ width: auto;
2428
+ }
2429
+
2430
+ &:not(:empty) > * {
2431
+ flex: 1;
2432
+ transform: rotate(0); /* rotate-0 */
2433
+ box-shadow: 0 0 0 1px #e5e7eb; /* ring-gray-200 */
2434
+ }
2435
+
2436
+ background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="7" stroke="%23CCCCCC" stroke-width="1" fill="transparent" /></svg>')
2437
+ center no-repeat;
2438
+
2439
+ border-radius: var(--qti-border-radius);
2440
+
2441
+ position: relative;
2442
+
2443
+ background-color: var(--qti-bg);
2444
+
2445
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2446
+
2447
+ outline: none
2448
+ }
2449
+ }
2450
+
2451
+ qti-hotspot-interaction {
2452
+ & qti-hotspot-choice {
2453
+ &[shape='circle'] {
2454
+
2455
+ &:hover {
2456
+ background-color: var(--qti-hover-bg);
2457
+ }
2458
+
2459
+ &:focus {
2460
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
2461
+ }
2462
+
2463
+ &:state(--checked),
2464
+ &[aria-checked='true'] {
2465
+ border-color: var(--qti-border-active);
2466
+ }
2467
+
2468
+ &:state(--readonly),
2469
+ &[aria-readonly='true'] {
2470
+ cursor: pointer;
2471
+ background-color: var(--qti-bg);
2472
+ outline: 0;
2473
+ border: none;
2474
+ }
2475
+
2476
+ &:state(--disabled),
2477
+ &[aria-disabled='true'] {
2478
+ cursor: not-allowed;
2479
+ background-color: var(--qti-disabled-bg);
2480
+ color: var(--qti-disabled-color);
2481
+ border-color: var(--qti-border-color);
2482
+ outline: 4px solid var(--qti-disabled-bg);
2483
+ }
2484
+
2485
+ width: 100%;
2486
+
2487
+ height: 100%;
2488
+
2489
+ background-color: transparent;
2490
+
2491
+ padding: 0;
2492
+
2493
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2494
+
2495
+ outline: none
2496
+ }
2497
+
2498
+ &[shape='rect'] {
2499
+
2500
+ /* &:hover {
2501
+ @apply hov;
2502
+ } */
2503
+
2504
+ &:focus {
2505
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
2506
+ }
2507
+
2508
+ &:state(--checked),
2509
+ &[aria-checked='true'] {
2510
+ border-color: var(--qti-border-active);
2511
+ }
2512
+
2513
+ &[aria-readonly='true'] {
2514
+ cursor: pointer;
2515
+ background-color: var(--qti-bg);
2516
+ outline: 0;
2517
+ border: none;
2518
+ }
2519
+
2520
+ &[aria-disabled='true'] {
2521
+ cursor: not-allowed;
2522
+ background-color: var(--qti-disabled-bg);
2523
+ color: var(--qti-disabled-color);
2524
+ border-color: var(--qti-border-color);
2525
+ outline: 4px solid var(--qti-disabled-bg);
2526
+ }
2527
+
2528
+ width: 100%;
2529
+
2530
+ height: 100%;
2531
+
2532
+ background-color: transparent;
2533
+
2534
+ padding: 0;
2535
+
2536
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2537
+
2538
+ outline: none
2539
+ }
2540
+
2541
+ &[shape='poly'] {
2542
+ &:hover::after {
2543
+ content: '';
2544
+ width: 100%;
2545
+ height: 100%;
2546
+ background: repeating-linear-gradient(
2547
+ 45deg,
2548
+ var(--qti-border-active),
2549
+ var(--qti-border-active) 5px,
2550
+ transparent 5px,
2551
+ transparent 10px
2552
+ );
2553
+ display: block;
2554
+ }
2555
+
2556
+ &:state(--checked)::after,
2557
+ &[aria-checked='true']::after {
2558
+ content: '';
2559
+ width: 100%;
2560
+ height: 100%;
2561
+ background: repeating-linear-gradient(
2562
+ 45deg,
2563
+ transparent,
2564
+ transparent 5px,
2565
+ var(--qti-border-active) 5px,
2566
+ var(--qti-border-active) 10px
2567
+ );
2568
+ display: block;
2569
+ }
2570
+
2571
+ &[aria-readonly='true'] {
2572
+ cursor: pointer;
2573
+ background-color: var(--qti-bg);
2574
+ outline: 0;
2575
+ border: none;
2576
+ }
2577
+
2578
+ &[aria-disabled='true'] {
2579
+ cursor: not-allowed;
2580
+ background-color: var(--qti-disabled-bg);
2581
+ color: var(--qti-disabled-color);
2582
+ border-color: var(--qti-border-color);
2583
+ outline: 4px solid var(--qti-disabled-bg);
2584
+ }
2585
+ }
2586
+ }
2587
+ }
2588
+
2589
+ qti-hottext-interaction {
2590
+ /* &:not(.qti-input-control-hidden),
2591
+ &:not(.qti-unselected-hidden) { */
2592
+ qti-hottext {
2593
+ display: inline-flex;
2594
+ align-items: center;
2595
+
2596
+ &:hover {
2597
+ background-color: var(--qti-hover-bg);
2598
+ }
2599
+
2600
+ &:focus {
2601
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
2602
+ }
2603
+
2604
+ &::part(cha) {
2605
+ width: calc(var(--qti-form-size) - 6px);
2606
+ height: calc(var(--qti-form-size) - 6px);
2607
+ }
2608
+
2609
+ &:state(radio)::part(ch) {
2610
+ border-radius: 100%;
2611
+ display: grid;
2612
+ place-content: center;
2613
+ width: var(--qti-form-size);
2614
+ height: var(--qti-form-size);
2615
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2616
+ outline: none;
2617
+ }
2618
+
2619
+ &:state(radio):state(--checked)::part(cha) {
2620
+ background-color: var(--qti-border-active);
2621
+ border-radius: 100%;
2622
+ }
2623
+
2624
+ &:state(checkbox)::part(ch) {
2625
+ display: flex;
2626
+ place-items: center;
2627
+ border-radius: var(--qti-border-radius);
2628
+ display: grid;
2629
+ place-content: center;
2630
+ width: var(--qti-form-size);
2631
+ height: var(--qti-form-size);
2632
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2633
+ outline: none;
2634
+ }
2635
+
2636
+ &:state(checkbox):state(--checked)::part(cha) {
2637
+ background-color: var(--qti-border-active);
2638
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
2639
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
2640
+ }
2641
+
2642
+ &:state(correct-response),
2643
+ &[data-correct-response='true'] {
2644
+ &::after {
2645
+ content: '\\02714';
2646
+ color: #16a34a; /* text-green-600 */
2647
+ }
2648
+ }
2649
+
2650
+ gap: 0.5rem;
2651
+
2652
+ border-radius: var(--qti-border-radius);
2653
+
2654
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
2655
+
2656
+ outline: none;
2657
+
2658
+ cursor: pointer
2659
+ }
2660
+
2661
+ &.qti-input-control-hidden {
2662
+ qti-hottext {
2663
+ /* --qti-padding-md: 0.1rem;
2664
+ --qti-padding-lg: 0.2rem;
2665
+ --qti-border-radius-md: 0.3rem;
2666
+ --qti-border-thickness: 1px;
2667
+ --qti-font-weight-semibold: 400; */
2668
+
2669
+ &:hover {
2670
+ background-color: var(--qti-hover-bg);
2671
+ }
2672
+
2673
+ &:focus {
2674
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
2675
+ }
2676
+
2677
+ /* @layer qti-variants { */
2678
+ &::part(ch) {
2679
+ display: none;
2680
+ }
2681
+
2682
+ &:state(--checked) {
2683
+ border-color: var(--qti-border-active);
2684
+ background-color: var(--qti-bg-active);
2685
+ }
2686
+
2687
+ &[aria-readonly='true'] {
2688
+ cursor: pointer;
2689
+ background-color: var(--qti-bg);
2690
+ outline: 0;
2691
+ border: none;
2692
+ }
2693
+
2694
+ &[aria-disabled='true'] {
2695
+ cursor: not-allowed;
2696
+ background-color: var(--qti-disabled-bg);
2697
+ color: var(--qti-disabled-color);
2698
+ border-color: var(--qti-border-color);
2699
+ outline: 4px solid var(--qti-disabled-bg);
2700
+ }
2701
+
2702
+ border-radius: var(--qti-border-radius);
2703
+
2704
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
2705
+
2706
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2707
+
2708
+ outline: none
2709
+ }
2710
+
2711
+ /* } */
2712
+ }
2713
+
2714
+ &.qti-unselected-hidden {
2715
+ qti-hottext {
2716
+ &:hover {
2717
+ background-color: var(--qti-hover-bg);
2718
+ }
2719
+
2720
+ &:focus {
2721
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
2722
+ }
2723
+
2724
+ cursor: pointer;
2725
+
2726
+ &::part(ch) {
2727
+ display: none;
2728
+ }
2729
+
2730
+ &:state(--checked) {
2731
+ background-color: var(--qti-bg-active);
2732
+ }
2733
+
2734
+ &[aria-readonly='true'] {
2735
+ cursor: pointer;
2736
+ background-color: var(--qti-bg);
2737
+ outline: 0;
2738
+ border: none;
2739
+ }
2740
+
2741
+ &[aria-disabled='true'] {
2742
+ cursor: not-allowed;
2743
+ background-color: var(--qti-disabled-bg);
2744
+ color: var(--qti-disabled-color);
2745
+ border-color: var(--qti-border-color);
2746
+ outline: 4px solid var(--qti-disabled-bg);
2747
+ }
2748
+ }
2749
+ }
2750
+ }
2751
+
2752
+ qti-inline-choice-interaction {
2753
+ &::part(select) {
2754
+
2755
+ &:hover {
2756
+ background-color: var(--qti-hover-bg);
2757
+ }
2758
+
2759
+ &:focus {
2760
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
2761
+ }
2762
+
2763
+ border-radius: var(--qti-border-radius);
2764
+
2765
+ position: relative;
2766
+
2767
+ -webkit-appearance: none;
2768
+
2769
+ -moz-appearance: none;
2770
+
2771
+ appearance: none;
2772
+
2773
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
2774
+
2775
+ padding-right: calc(var(--qti-padding-horizontal) + 1.5rem);
2776
+
2777
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2778
+
2779
+ outline: none;
2780
+
2781
+ background: url("data:image/svg+xml,%3Csvg fill='currentColor' width='22' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' aria-hidden='true'%3E%3Cpath clip-rule='evenodd' fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'%3E%3C/path%3E%3C/svg%3E")
2782
+ no-repeat center right 6px
2783
+ }
2784
+ }
2785
+
2786
+ qti-match-interaction:not(.qti-match-tabular) {
2787
+ &:state(--dragzone-enabled) qti-simple-match-set:first-of-type {
2788
+ background-color: var(--qti-bg-active);
2789
+ }
2790
+
2791
+ &:state(--dragzone-active) qti-simple-match-set:first-of-type {
2792
+ border-color: var(--qti-border-active);
2793
+ background-color: var(--qti-bg-active);
2794
+ }
2795
+
2796
+ /* The draggables */
2797
+ & qti-simple-match-set:first-of-type {
2798
+ display: flex;
2799
+ flex-wrap: wrap;
2800
+ align-items: flex-start; /* Prevents children from stretching */
2801
+ gap: var(--qti-gap-size);
2802
+ border: 2px solid transparent;
2803
+
2804
+ & qti-simple-associable-choice {
2805
+
2806
+ &[dragging] {
2807
+ pointer-events: none;
2808
+ rotate: -2deg;
2809
+ box-shadow: 0 8px 12px rgb(0 0 0 / 20%),
2810
+ 0 4px 8px rgb(0 0 0 / 10%);
2811
+ }
2812
+
2813
+ &:hover {
2814
+ background-color: var(--qti-hover-bg);
2815
+ }
2816
+
2817
+ &:focus {
2818
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
2819
+ }
2820
+
2821
+ transition: transform 200ms ease-out,
2822
+ box-shadow 200ms ease-out,
2823
+ rotate 200ms ease-out;
2824
+
2825
+ cursor: grab;
2826
+
2827
+ background-color: var(--qti-bg);
2828
+
2829
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
2830
+
2831
+ border-radius: var(--qti-border-radius);
2832
+
2833
+ padding-left: calc(var(--qti-padding-horizontal) + 0.5rem);
2834
+
2835
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2836
+
2837
+ outline: none;
2838
+
2839
+ background-image: radial-gradient(
2840
+ circle at center,
2841
+ rgb(0 0 0 / 10%) 0,
2842
+ rgb(0 0 0 / 20%) 2px,
2843
+ rgb(255 255 255 / 0%) 2px,
2844
+ rgb(255 255 255 / 0%) 100%
2845
+ );
2846
+
2847
+ background-repeat: repeat-y;
2848
+
2849
+ background-position: left center;
2850
+
2851
+ background-size: 14px 8px
2852
+ }
2853
+ }
2854
+
2855
+ /* The droppables */
2856
+ & qti-simple-match-set:last-of-type {
2857
+ display: grid;
2858
+ grid-auto-columns: 1fr; /* auto-cols-fr */
2859
+ grid-auto-flow: column; /* grid-flow-col */
2860
+ gap: var(--qti-gap-size); /* gap-2 */
2861
+ width: 100%; /* w-full */
2862
+
2863
+ & qti-simple-associable-choice {
2864
+ display: flex;
2865
+ flex-direction: column;
2866
+ }
2867
+
2868
+ & > qti-simple-associable-choice {
2869
+ /* a droppable qti-simple-associable-choice */
2870
+ box-sizing: border-box;
2871
+ display: grid;
2872
+ grid-row: 2 / 4;
2873
+ grid-template-rows: subgrid;
2874
+
2875
+ & img {
2876
+ max-width: 100%;
2877
+ height: auto;
2878
+ }
2879
+
2880
+ &[enabled] {
2881
+ &::part(dropslot) {
2882
+ background-color: var(--qti-bg-active);
2883
+ }
2884
+ }
2885
+
2886
+ &[disabled] {
2887
+ &::part(dropslot) {
2888
+ cursor: not-allowed;
2889
+ background-color: var(--qti-disabled-bg);
2890
+ color: var(--qti-disabled-color);
2891
+ border-color: var(--qti-border-color);
2892
+ outline: 4px solid var(--qti-disabled-bg);
2893
+ }
2894
+ }
2895
+
2896
+ &[active] {
2897
+ &::part(dropslot) {
2898
+ border-color: var(--qti-border-active);
2899
+ background-color: var(--qti-bg-active);
2900
+ }
2901
+ }
2902
+
2903
+ &::part(dropslot) {
2904
+
2905
+ &[dragging] {
2906
+ pointer-events: none;
2907
+ rotate: -2deg;
2908
+ box-shadow: 0 8px 12px rgb(0 0 0 / 20%),
2909
+ 0 4px 8px rgb(0 0 0 / 10%);
2910
+ }
2911
+
2912
+ &:focus {
2913
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
2914
+ }
2915
+
2916
+ min-height: 6rem;
2917
+ gap: var(--qti-gap-size);
2918
+ box-sizing: border-box;
2919
+ display: flex;
2920
+ justify-content: center;
2921
+ align-items: center;
2922
+ background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="7" stroke="%23CCCCCC" stroke-width="1" fill="transparent" /></svg>')
2923
+ center no-repeat;
2924
+ border-radius: var(--qti-border-radius);
2925
+ position: relative;
2926
+ background-color: var(--qti-bg);
2927
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2928
+ outline: none;
2929
+ }
2930
+
2931
+ & > *:not(qti-simple-associable-choice) {
2932
+ pointer-events: none;
2933
+ }
2934
+
2935
+ & > qti-simple-associable-choice {
2936
+
2937
+ &::part(dropslot) {
2938
+ display: none;
2939
+ }
2940
+
2941
+ &:hover {
2942
+ background-color: var(--qti-hover-bg);
2943
+ }
2944
+
2945
+ &:focus {
2946
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
2947
+ }
2948
+
2949
+ flex-basis: fit-content;
2950
+
2951
+ transition: transform 200ms ease-out,
2952
+ box-shadow 200ms ease-out,
2953
+ rotate 200ms ease-out;
2954
+
2955
+ cursor: grab;
2956
+
2957
+ background-color: var(--qti-bg);
2958
+
2959
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
2960
+
2961
+ border-radius: var(--qti-border-radius);
2962
+
2963
+ padding-left: calc(var(--qti-padding-horizontal) + 0.5rem);
2964
+
2965
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
2966
+
2967
+ outline: none;
2968
+
2969
+ background-image: radial-gradient(
2970
+ circle at center,
2971
+ rgb(0 0 0 / 10%) 0,
2972
+ rgb(0 0 0 / 20%) 2px,
2973
+ rgb(255 255 255 / 0%) 2px,
2974
+ rgb(255 255 255 / 0%) 100%
2975
+ );
2976
+
2977
+ background-repeat: repeat-y;
2978
+
2979
+ background-position: left center;
2980
+
2981
+ background-size: 14px 8px;
2982
+ }
2983
+ }
2984
+ }
2985
+ }
2986
+
2987
+ qti-order-interaction:state(--dragzone-active)::part(drags) {
2988
+ border-color: var(--qti-border-active);
2989
+ background-color: var(--qti-bg-active);
2990
+ }
2991
+
2992
+ qti-order-interaction:state(--dragzone-enabled)::part(drags) {
2993
+ background-color: var(--qti-bg-active);
2994
+ }
2995
+
2996
+ qti-order-interaction {
2997
+ &::part(qti-simple-choice),
2998
+ & qti-simple-choice {
2999
+
3000
+ &[dragging] {
3001
+ pointer-events: none;
3002
+ rotate: -2deg;
3003
+ box-shadow: 0 8px 12px rgb(0 0 0 / 20%),
3004
+ 0 4px 8px rgb(0 0 0 / 10%);
3005
+ }
3006
+
3007
+ &:hover {
3008
+ background-color: var(--qti-hover-bg);
3009
+ }
3010
+
3011
+ &:focus {
3012
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
3013
+ }
3014
+
3015
+ transition: transform 200ms ease-out,
3016
+ box-shadow 200ms ease-out,
3017
+ rotate 200ms ease-out;
3018
+
3019
+ cursor: grab;
3020
+
3021
+ background-color: var(--qti-bg);
3022
+
3023
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
3024
+
3025
+ border-radius: var(--qti-border-radius);
3026
+
3027
+ padding-left: calc(var(--qti-padding-horizontal) + 0.5rem);
3028
+
3029
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
3030
+
3031
+ outline: none;
3032
+
3033
+ background-image: radial-gradient(
3034
+ circle at center,
3035
+ rgb(0 0 0 / 10%) 0,
3036
+ rgb(0 0 0 / 20%) 2px,
3037
+ rgb(255 255 255 / 0%) 2px,
3038
+ rgb(255 255 255 / 0%) 100%
3039
+ );
3040
+
3041
+ background-repeat: repeat-y;
3042
+
3043
+ background-position: left center;
3044
+
3045
+ background-size: 14px 8px
3046
+ }
3047
+
3048
+ &::part(qti-simple-choice) {
3049
+ display: flex;
3050
+ overflow: hidden;
3051
+ align-items: center;
3052
+ width: 100%;
3053
+ text-overflow: ellipsis;
3054
+ }
3055
+
3056
+ &::part(drops) {
3057
+ gap: 0.5rem; /* gap-2 */
3058
+ }
3059
+
3060
+ &::part(drags) {
3061
+ gap: 0.5rem; /* gap-2 */
3062
+ }
3063
+
3064
+ &::part(drop-list) {
3065
+
3066
+ &[enabled] {
3067
+
3068
+ /* Light theme override */
3069
+ .qti-selections-light {
3070
+ border-color: var(--qti-light-border-active);
3071
+ }
3072
+
3073
+ /* Dark theme override */
3074
+ .qti-selections-dark {
3075
+ border-color: var(--qti-dark-border-active);
3076
+ }
3077
+ background-color: var(--qti-bg-active)
3078
+ }
3079
+
3080
+ &:hover {
3081
+ background-color: var(--qti-hover-bg);
3082
+ }
3083
+
3084
+ &:focus {
3085
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
3086
+ }
3087
+
3088
+ display: flex;
3089
+ min-height: 4rem;
3090
+ background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="7" stroke="%23CCCCCC" stroke-width="1" fill="transparent" /></svg>')
3091
+ center no-repeat;
3092
+ border-radius: var(--qti-border-radius);
3093
+ position: relative;
3094
+ background-color: var(--qti-bg);
3095
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
3096
+ outline: none;
3097
+ }
3098
+
3099
+ &::part(active) {
3100
+ border-color: var(--qti-border-active);
3101
+ background-color: var(--qti-bg-active);
3102
+ }
3103
+
3104
+ & drop-list {
3105
+ &[shape='circle'] {
3106
+
3107
+ &:hover {
3108
+ background-color: var(--qti-hover-bg);
3109
+ }
3110
+
3111
+ &:focus {
3112
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
3113
+ }
3114
+
3115
+ &[aria-checked='true'] {
3116
+ border-color: var(--qti-border-active);
3117
+ background-color: var(--qti-bg-active);
3118
+ }
3119
+
3120
+ &[aria-readonly='true'] {
3121
+ cursor: pointer;
3122
+ background-color: var(--qti-bg);
3123
+ outline: 0;
3124
+ border: none;
3125
+ }
3126
+
3127
+ &[aria-disabled='true'] {
3128
+ cursor: not-allowed;
3129
+ background-color: var(--qti-disabled-bg);
3130
+ color: var(--qti-disabled-color);
3131
+ border-color: var(--qti-border-color);
3132
+ outline: 4px solid var(--qti-disabled-bg);
3133
+ }
3134
+
3135
+ width: 100%;
3136
+
3137
+ height: 100%;
3138
+
3139
+ background-color: transparent;
3140
+
3141
+ padding: 0;
3142
+
3143
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
3144
+
3145
+ outline: none
3146
+ }
3147
+
3148
+ &[shape='square'] {
3149
+
3150
+ &:hover {
3151
+ background-color: var(--qti-hover-bg);
3152
+ }
3153
+
3154
+ &:focus {
3155
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
3156
+ }
3157
+
3158
+ &[aria-checked='true'] {
3159
+ border-color: var(--qti-border-active);
3160
+ background-color: var(--qti-bg-active);
3161
+ }
3162
+
3163
+ &[aria-readonly='true'] {
3164
+ cursor: pointer;
3165
+ background-color: var(--qti-bg);
3166
+ outline: 0;
3167
+ border: none;
3168
+ }
3169
+
3170
+ &[aria-disabled='true'] {
3171
+ cursor: not-allowed;
3172
+ background-color: var(--qti-disabled-bg);
3173
+ color: var(--qti-disabled-color);
3174
+ border-color: var(--qti-border-color);
3175
+ outline: 4px solid var(--qti-disabled-bg);
3176
+ }
3177
+
3178
+ width: 100%;
3179
+
3180
+ height: 100%;
3181
+
3182
+ background-color: transparent;
3183
+
3184
+ padding: 0;
3185
+
3186
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
3187
+
3188
+ outline: none
3189
+ }
3190
+ }
3191
+ }
3192
+
3193
+ qti-associate-interaction {
3194
+ /* General styles for active and enabled states */
3195
+ &:state(--dragzone-active) slot[name='qti-simple-associable-choice'] {
3196
+ border-color: var(--qti-border-active);
3197
+ background-color: var(--qti-bg-active);
3198
+ }
3199
+
3200
+ &:state(--dragzone-enabled) slot[name='qti-simple-associable-choice'] {
3201
+ background-color: var(--qti-bg-active);
3202
+ }
3203
+
3204
+ & qti-simple-associable-choice, /* drags when in lightdom */
3205
+ &::part(qti-simple-associable-choice) /* drags when in shadowdom */ {
3206
+
3207
+ &:hover {
3208
+ background-color: var(--qti-hover-bg);
3209
+ }
3210
+
3211
+ &:focus {
3212
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
3213
+ }
3214
+
3215
+ &[dragging] {
3216
+ pointer-events: none;
3217
+ rotate: -2deg;
3218
+ box-shadow: 0 8px 12px rgb(0 0 0 / 20%),
3219
+ 0 4px 8px rgb(0 0 0 / 10%);
3220
+ }
3221
+
3222
+ transition: transform 200ms ease-out,
3223
+ box-shadow 200ms ease-out,
3224
+ rotate 200ms ease-out;
3225
+
3226
+ cursor: grab;
3227
+
3228
+ background-color: var(--qti-bg);
3229
+
3230
+ padding: var(--qti-padding-vertical) var(--qti-padding-horizontal);
3231
+
3232
+ border-radius: var(--qti-border-radius);
3233
+
3234
+ padding-left: calc(var(--qti-padding-horizontal) + 0.5rem);
3235
+
3236
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
3237
+
3238
+ outline: none;
3239
+
3240
+ background-image: radial-gradient(
3241
+ circle at center,
3242
+ rgb(0 0 0 / 10%) 0,
3243
+ rgb(0 0 0 / 20%) 2px,
3244
+ rgb(255 255 255 / 0%) 2px,
3245
+ rgb(255 255 255 / 0%) 100%
3246
+ );
3247
+
3248
+ background-repeat: repeat-y;
3249
+
3250
+ background-position: left center;
3251
+
3252
+ background-size: 14px 8px
3253
+ }
3254
+
3255
+ /* display: flex;
3256
+ overflow: hidden;
3257
+ align-items: center; */
3258
+
3259
+ /* &::part(drop-container) {
3260
+ display: flex;
3261
+ flex-direction: column;
3262
+ gap: var(--qti-gap-size);
3263
+ } */
3264
+
3265
+ &::part(drop-list) {
3266
+
3267
+ display: grid;
3268
+ height: 3rem;
3269
+ min-width: 10rem;
3270
+ background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="7" stroke="%23CCCCCC" stroke-width="1" fill="transparent" /></svg>')
3271
+ center no-repeat;
3272
+ border-radius: var(--qti-border-radius);
3273
+ position: relative;
3274
+ background-color: var(--qti-bg);
3275
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
3276
+ outline: none;
3277
+ }
3278
+
3279
+ &::part(drop-list):focus {
3280
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
3281
+ }
3282
+
3283
+ &::part(drop-list)[dragging] {
3284
+ border-color: var(--qti-border-active);
3285
+ background-color: var(--qti-bg-active);
3286
+ }
3287
+
3288
+ /* &::part(drop-list) {
3289
+ @apply act;
3290
+ } */
3291
+ }
3292
+
3293
+ qti-graphic-order-interaction {
3294
+ & qti-hotspot-choice {
3295
+ width: 100%;
3296
+ height: 100%;
3297
+ background-color: rgb(255 255 255 / 30%);
3298
+ padding: 0;
3299
+
3300
+ &:hover {
3301
+ background-color: rgb(255 255 255 / 70%);
3302
+ }
3303
+
3304
+ &:focus {
3305
+ background-color: rgb(255 255 255 / 70%);
3306
+ }
3307
+
3308
+ &:state(--checked),
3309
+ &[aria-checked='true'] {
3310
+ background-color: rgb(255 255 255 / 70%);
3311
+ }
3312
+
3313
+ &[aria-readonly='true'] {
3314
+ cursor: pointer;
3315
+ background-color: var(--qti-bg);
3316
+ outline: 0;
3317
+ border: none;
3318
+ }
3319
+
3320
+ &[aria-disabled='true'] {
3321
+ cursor: not-allowed;
3322
+ background-color: var(--qti-disabled-bg);
3323
+ color: var(--qti-disabled-color);
3324
+ border-color: var(--qti-border-color);
3325
+ outline: 4px solid var(--qti-disabled-bg);
3326
+ }
3327
+
3328
+ &[aria-ordervalue] {
3329
+ display: grid;
3330
+ place-content: center;
3331
+ }
3332
+
3333
+ &[aria-ordervalue]::after {
3334
+ content: attr(aria-ordervalue) !important;
3335
+ }
3336
+
3337
+ &[aria-ordercorrectvalue] {
3338
+ display: grid;
3339
+ place-content: center;
3340
+ }
3341
+
3342
+ /* When both attributes are present */
3343
+ &[aria-ordercorrectvalue][aria-ordervalue]::after {
3344
+ content: 'C=' attr(aria-ordercorrectvalue) ' R=' attr(aria-ordervalue) !important;
3345
+ color: var(--qti-correct);
3346
+ }
3347
+
3348
+ /* When only aria-ordercorrectvalue is present */
3349
+ &[aria-ordercorrectvalue]:not([aria-ordervalue])::after {
3350
+ content: 'C=' attr(aria-ordercorrectvalue) !important;
3351
+ color: var(--qti-correct);
3352
+ }
3353
+ }
3354
+
3355
+ &.qti-selections-light {
3356
+ &:state(--dragzone-active)::part(drags) {
3357
+ background-color: var(--qti-light-bg-active);
3358
+ border-color: var(--qti-light-border-active);
3359
+ }
3360
+
3361
+ &:state(--dragzone-enabled)::part(drags) {
3362
+ background-color: var(--qti-light-bg-active);
3363
+ }
3364
+ }
3365
+
3366
+ &.qti-selections-dark {
3367
+ &:state(--dragzone-active)::part(drags) {
3368
+ background-color: var(--qti-dark-bg-active);
3369
+ border-color: var(--qti-dark-border-active);
3370
+ }
3371
+
3372
+ &:state(--dragzone-enabled)::part(drags) {
3373
+ background-color: var(--qti-dark-bg-active);
3374
+ }
3375
+ }
3376
+
3377
+ /* General styles for active and enabled states */
3378
+ &:state(--dragzone-active)::part(drags) {
3379
+ border-color: var(--qti-border-active);
3380
+ background-color: var(--qti-bg-active);
3381
+ }
3382
+
3383
+ &:state(--dragzone-enabled)::part(drags) {
3384
+ background-color: var(--qti-bg-active);
3385
+ }
3386
+ }
3387
+
3388
+ qti-graphic-associate-interaction {
3389
+ position: relative;
3390
+ display: block;
3391
+
3392
+ & qti-associable-hotspot {
3393
+ &[shape='circle'] {
3394
+
3395
+ &:hover {
3396
+ background-color: var(--qti-hover-bg);
3397
+ }
3398
+
3399
+ &:focus {
3400
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
3401
+ }
3402
+
3403
+ &[aria-checked='true'] {
3404
+ border-color: var(--qti-border-active);
3405
+ background-color: var(--qti-bg-active);
3406
+ }
3407
+
3408
+ &[aria-readonly='true'] {
3409
+ cursor: pointer;
3410
+ background-color: var(--qti-bg);
3411
+ outline: 0;
3412
+ border: none;
3413
+ }
3414
+
3415
+ &[aria-disabled='true'] {
3416
+ cursor: not-allowed;
3417
+ background-color: var(--qti-disabled-bg);
3418
+ color: var(--qti-disabled-color);
3419
+ border-color: var(--qti-border-color);
3420
+ outline: 4px solid var(--qti-disabled-bg);
3421
+ }
3422
+
3423
+ width: 100%;
3424
+
3425
+ height: 100%;
3426
+
3427
+ background-color: transparent;
3428
+
3429
+ padding: 0;
3430
+
3431
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
3432
+
3433
+ outline: none
3434
+ }
3435
+
3436
+ &[shape='square'] {
3437
+
3438
+ &:hover {
3439
+ background-color: var(--qti-hover-bg);
3440
+ }
3441
+
3442
+ &:focus {
3443
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
3444
+ }
3445
+
3446
+ &[aria-checked='true'] {
3447
+ border-color: var(--qti-border-active);
3448
+ background-color: var(--qti-bg-active);
3449
+ }
3450
+
3451
+ &[aria-readonly='true'] {
3452
+ cursor: pointer;
3453
+ background-color: var(--qti-bg);
3454
+ outline: 0;
3455
+ border: none;
3456
+ }
3457
+
3458
+ &[aria-disabled='true'] {
3459
+ cursor: not-allowed;
3460
+ background-color: var(--qti-disabled-bg);
3461
+ color: var(--qti-disabled-color);
3462
+ border-color: var(--qti-border-color);
3463
+ outline: 4px solid var(--qti-disabled-bg);
3464
+ }
3465
+
3466
+ width: 100%;
3467
+
3468
+ height: 100%;
3469
+
3470
+ background-color: transparent;
3471
+
3472
+ padding: 0;
3473
+
3474
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
3475
+
3476
+ outline: none
3477
+ }
3478
+ }
3479
+
3480
+ &.qti-selections-light {
3481
+ &:state(--dragzone-active)::part(drags) {
3482
+ background-color: var(--qti-light-bg-active);
3483
+ border-color: var(--qti-light-border-active);
3484
+ }
3485
+
3486
+ &:state(--dragzone-enabled)::part(drags) {
3487
+ background-color: var(--qti-light-bg-active);
3488
+ }
3489
+ }
3490
+
3491
+ &.qti-selections-dark {
3492
+ &:state(--dragzone-active)::part(drags) {
3493
+ background-color: var(--qti-dark-bg-active);
3494
+ border-color: var(--qti-dark-border-active);
3495
+ }
3496
+
3497
+ &:state(--dragzone-enabled)::part(drags) {
3498
+ background-color: var(--qti-dark-bg-active);
3499
+ }
3500
+ }
3501
+
3502
+ /* General styles for active and enabled states */
3503
+ &:state(--dragzone-active)::part(drags) {
3504
+ border-color: var(--qti-border-active);
3505
+ background-color: var(--qti-bg-active);
3506
+ }
3507
+
3508
+ &:state(--dragzone-enabled)::part(drags) {
3509
+ background-color: var(--qti-bg-active);
3510
+ }
3511
+ }
3512
+
3513
+ qti-slider-interaction {
3514
+ --qti-tick-color: rgb(229 231 235 / 100%);
3515
+ --qti-tick-width: 1px;
3516
+ }
3517
+
3518
+ qti-select-point-interaction {
3519
+ &::part(point) {
3520
+ &:hover {
3521
+ background-color: var(--qti-hover-bg);
3522
+ }
3523
+
3524
+ &:focus {
3525
+ box-shadow: 0 0 0 var(--qti-focus-border-width) var(--qti-focus-color);
3526
+ }
3527
+
3528
+ border-radius: 100%;
3529
+
3530
+ border: 1px solid white;
3531
+
3532
+ background-color: black;
3533
+
3534
+ opacity: 0.5;
3535
+
3536
+ padding: 0;
3537
+
3538
+ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
3539
+
3540
+ outline: none;
3541
+ }
3542
+ }
3543
+
3544
+ qti-position-object-stage {
3545
+ & qti-position-object-interaction {
3546
+ /* no styles necessary, only layout styles, defined in the component */
3547
+ }
3548
+ }
3549
+
3550
+ qti-prompt {
3551
+ margin: 0.5rem 0; /* my-2 */
3552
+ display: block;
3553
+ width: 100%;
3554
+ }
3555
+ }
3556
+
3557
+ qti-test-part:not(:has(qti-assessment-item)),
3558
+ qti-assessment-section:not(:has(qti-assessment-item)),
3559
+ qti-assessment-item-ref:not(:has(qti-assessment-item)) {
3560
+ display: none;
3561
+ }
3562
+ `;
3563
+
3564
+ // src/lib/qti-item/core/components/item-container.ts
3565
+ var ItemContainer = class extends LitElement {
3566
+ constructor() {
3567
+ super(...arguments);
3568
+ this.itemURL = null;
3569
+ this.itemDoc = null;
3570
+ this.itemXML = null;
3571
+ /** Template content if provided */
3572
+ this.templateContent = null;
3573
+ }
3574
+ async handleItemURLChange() {
3575
+ if (!this.itemURL) return;
3576
+ try {
3577
+ const api = await qtiTransformItem().load(this.itemURL);
3578
+ this.itemDoc = api.htmlDoc();
3579
+ } catch (error) {
3580
+ console.error("Error loading or parsing XML:", error);
3581
+ }
3582
+ }
3583
+ handleItemXMLChange() {
3584
+ if (!this.itemXML) return;
3585
+ try {
3586
+ this.itemDoc = qtiTransformItem().parse(this.itemXML).htmlDoc();
3587
+ } catch (error) {
3588
+ console.error("Error parsing XML:", error);
3589
+ }
3590
+ }
3591
+ async connectedCallback() {
3592
+ super.connectedCallback();
3593
+ this.initializeTemplateContent();
3594
+ this.applyStyles();
3595
+ if (this.itemURL) {
3596
+ this.handleItemURLChange();
3597
+ }
3598
+ if (this.itemXML) {
3599
+ this.handleItemXMLChange();
3600
+ }
3601
+ }
3602
+ initializeTemplateContent() {
3603
+ const template = this.querySelector("template");
3604
+ this.templateContent = template ? template.content : html``;
3605
+ }
3606
+ applyStyles() {
3607
+ const sheet = new CSSStyleSheet();
3608
+ sheet.replaceSync(item_default);
3609
+ this.shadowRoot.adoptedStyleSheets = [sheet];
3610
+ }
3611
+ render() {
3612
+ return html`
3613
+ ${this.templateContent}
3614
+ <slot></slot>
3615
+ ${until(this.itemDoc, html`<span>Loading...</span>`)}
3616
+ `;
3617
+ }
3618
+ };
3619
+ __decorateClass([
3620
+ property({ type: String, attribute: "item-url" })
3621
+ ], ItemContainer.prototype, "itemURL", 2);
3622
+ __decorateClass([
3623
+ state()
3624
+ ], ItemContainer.prototype, "itemDoc", 2);
3625
+ __decorateClass([
3626
+ state()
3627
+ ], ItemContainer.prototype, "itemXML", 2);
3628
+ __decorateClass([
3629
+ watch("itemURL", { waitUntilFirstUpdate: true })
3630
+ ], ItemContainer.prototype, "handleItemURLChange", 1);
3631
+ __decorateClass([
3632
+ watch("itemXML", { waitUntilFirstUpdate: true })
3633
+ ], ItemContainer.prototype, "handleItemXMLChange", 1);
3634
+ ItemContainer = __decorateClass([
3635
+ customElement("item-container")
3636
+ ], ItemContainer);
3637
+
3638
+ // src/lib/qti-item/core/components/print-item-variables.ts
3639
+ import { consume } from "@lit/context";
3640
+ import { html as html2, LitElement as LitElement2 } from "lit";
3641
+ import { customElement as customElement2, property as property2 } from "lit/decorators.js";
3642
+ var PrintItemVariables = class extends LitElement2 {
3643
+ constructor() {
3644
+ super(...arguments);
3645
+ this.mode = "summed";
3646
+ this._previousActiveItem = null;
3647
+ }
3648
+ // Store previous active item reference
3649
+ render() {
3650
+ console.log("computedContext", this.computedContext);
3651
+ if (this.computedContext) {
3652
+ const responseVariables = this.computedContext.variables?.filter((v) => {
3653
+ if (v.type !== "response") {
3654
+ return false;
3655
+ }
3656
+ if (v.identifier.toLowerCase().startsWith("response")) {
3657
+ return true;
3658
+ }
3659
+ if (v.correctResponse) {
3660
+ return true;
3661
+ }
3662
+ });
3663
+ const sortedResponseVariables = responseVariables?.sort((a, b) => a.identifier.localeCompare(b.identifier));
3664
+ const response = sortedResponseVariables.length === 0 ? "" : sortedResponseVariables?.map((v) => {
3665
+ if (Array.isArray(v.value)) {
3666
+ return v.value.join("&");
3667
+ }
3668
+ return v.value;
3669
+ }).join("#");
3670
+ const correctResponseArray = sortedResponseVariables.map((r) => {
3671
+ if (r.mapping && r.mapping.mapEntries.length > 0) {
3672
+ return r.mapping.mapEntries.map((m) => {
3673
+ return `${m.mapKey}=${m.mappedValue}pt `;
3674
+ }).join("&");
3675
+ }
3676
+ if (r.areaMapping && r.areaMapping.areaMapEntries.length > 0) {
3677
+ return r.areaMapping.areaMapEntries.map((m) => {
3678
+ return `${m.coords} ${m.shape}=${m.mappedValue}`;
3679
+ });
3680
+ }
3681
+ if (r.correctResponse) {
3682
+ return Array.isArray(r.correctResponse) ? r.correctResponse.join("&") : r.correctResponse;
3683
+ }
3684
+ return [];
3685
+ });
3686
+ const correctResponse = correctResponseArray.join("&");
3687
+ const printableItemContext = {
3688
+ ...this.computedContext,
3689
+ response,
3690
+ correctResponse: this._previousActiveItem?.identifier === this.computedContext.identifier && this._previousActiveItem?.correctResponse ? this._previousActiveItem.correctResponse : correctResponse
3691
+ };
3692
+ if (this.mode === "summed") {
3693
+ delete printableItemContext.variables;
3694
+ }
3695
+ this._previousActiveItem = printableItemContext;
3696
+ return html2` <small><pre>${JSON.stringify(printableItemContext, null, 2)}</pre></small> `;
3697
+ }
3698
+ return html2``;
3699
+ }
3700
+ };
3701
+ __decorateClass([
3702
+ consume({ context: computedItemContext, subscribe: true })
3703
+ ], PrintItemVariables.prototype, "computedContext", 2);
3704
+ __decorateClass([
3705
+ property2({ type: String, reflect: true })
3706
+ ], PrintItemVariables.prototype, "mode", 2);
3707
+ PrintItemVariables = __decorateClass([
3708
+ customElement2("print-item-variables")
3709
+ ], PrintItemVariables);
3710
+
3711
+ // src/lib/qti-item/core/components/item-show-correct-response.ts
3712
+ import { css as css2, html as html3, LitElement as LitElement3 } from "lit";
3713
+ import { customElement as customElement3, property as property3 } from "lit/decorators.js";
3714
+ import { consume as consume2 } from "@lit/context";
3715
+
3716
+ // src/lib/qti-item/core/components/styles.ts
3717
+ import { css } from "lit";
3718
+ var form = css`
3719
+ display: inline-flex;
3720
+ align-items: center;
3721
+ cursor: pointer;
3722
+ padding: 0.5rem 1rem;
3723
+ border-radius: 0.25rem;
3724
+ user-select: none;
3725
+ `;
3726
+ var btn = css`
3727
+ background-color: lightgray;
3728
+ ${form};
3729
+ `;
3730
+ var dis = css`
3731
+ cursor: not-allowed;
3732
+ opacity: 0.5;
3733
+ `;
3734
+ var ind = css`
3735
+ ${form};
3736
+ border: 1px solid gray;
3737
+ `;
3738
+
3739
+ // src/lib/qti-item/core/components/item-show-correct-response.ts
3740
+ var ItemShowCorrectResponse = class extends LitElement3 {
3741
+ constructor() {
3742
+ super(...arguments);
3743
+ this.shown = false;
3744
+ this.disabled = false;
3745
+ this.showCorrectText = "Show correct response";
3746
+ this.hideCorrectText = "Hide correct response";
3747
+ this.noCorrectResponseText = "No correct response specified";
3748
+ this._hasCorrectResponse = false;
3749
+ // correct response is removed on certain point
3750
+ this._previousActiveItem = "";
3751
+ }
3752
+ // Store previous active item reference
3753
+ updated() {
3754
+ if (!this._hasCorrectResponse || this._previousActiveItem !== this.computedContext?.identifier) {
3755
+ this._previousActiveItem = this.computedContext?.identifier;
3756
+ const containsCorrectResponse = !!this.computedContext?.variables.some((v) => v["correctResponse"]);
3757
+ const containsMapping = !!this.computedContext?.variables.some((v) => {
3758
+ return v["mapping"]?.mapEntries?.length > 0 || v["areaMapping"]?.areaMapEntries?.length > 0;
3759
+ });
3760
+ this._hasCorrectResponse = containsCorrectResponse || containsMapping;
3761
+ }
3762
+ this.disabled = !this._hasCorrectResponse;
3763
+ }
3764
+ _toggleState() {
3765
+ if (this.disabled) return;
3766
+ this.shown = !this.shown;
3767
+ this.dispatchEvent(
3768
+ new CustomEvent("item-show-correct-response", {
3769
+ detail: this.shown,
3770
+ bubbles: true
3771
+ })
3772
+ );
3773
+ }
3774
+ _getDisplayedText() {
3775
+ return this.disabled ? this.noCorrectResponseText : this.shown ? this.hideCorrectText : this.showCorrectText;
3776
+ }
3777
+ render() {
3778
+ return html3` <div @click="${this._toggleState}">${this._getDisplayedText()}</div> `;
3779
+ }
3780
+ };
3781
+ ItemShowCorrectResponse.styles = css2`
3782
+ :host {
3783
+ ${btn};
3784
+ }
3785
+ :host([disabled]) {
3786
+ ${dis};
3787
+ }
3788
+ `;
3789
+ __decorateClass([
3790
+ consume2({ context: computedItemContext, subscribe: true })
3791
+ ], ItemShowCorrectResponse.prototype, "computedContext", 2);
3792
+ __decorateClass([
3793
+ property3({ type: Boolean, reflect: true })
3794
+ ], ItemShowCorrectResponse.prototype, "shown", 2);
3795
+ __decorateClass([
3796
+ property3({ type: Boolean, reflect: true })
3797
+ ], ItemShowCorrectResponse.prototype, "disabled", 2);
3798
+ __decorateClass([
3799
+ property3({ type: String })
3800
+ ], ItemShowCorrectResponse.prototype, "showCorrectText", 2);
3801
+ __decorateClass([
3802
+ property3({ type: String })
3803
+ ], ItemShowCorrectResponse.prototype, "hideCorrectText", 2);
3804
+ __decorateClass([
3805
+ property3({ type: String })
3806
+ ], ItemShowCorrectResponse.prototype, "noCorrectResponseText", 2);
3807
+ ItemShowCorrectResponse = __decorateClass([
3808
+ customElement3("item-show-correct-response")
3809
+ ], ItemShowCorrectResponse);
3810
+
3811
+ // src/lib/qti-item/core/qti-item.ts
3812
+ import { provide } from "@lit/context";
3813
+ import { html as html4, LitElement as LitElement4 } from "lit";
3814
+ import { customElement as customElement4, state as state2 } from "lit/decorators.js";
3815
+ var QtiItem = class extends LitElement4 {
3816
+ constructor() {
3817
+ super();
3818
+ // Store event handlers as instance properties
3819
+ this._onItemContextChanged = this._handleItemContextChanged.bind(this);
3820
+ this._onAssessmentItemConnected = this._handleAssessmentItemConnected.bind(this);
3821
+ this._onHandleTestShowCorrectResponse = this._handleTestShowCorrectResponse.bind(this);
3822
+ this.addEventListener("qti-item-context-updated", this._onItemContextChanged);
3823
+ this.addEventListener("qti-assessment-item-connected", this._onAssessmentItemConnected);
3824
+ this.addEventListener("item-show-correct-response", this._onHandleTestShowCorrectResponse.bind(this));
3825
+ }
3826
+ _handleItemContextChanged(e) {
3827
+ this._updateItemVariablesInTestContext(e.detail.itemContext.identifier, e.detail?.itemContext?.variables || []);
3828
+ }
3829
+ _handleAssessmentItemConnected(e) {
3830
+ const fullVariables = e.detail._context.variables;
3831
+ this._qtiAssessmentItem = e.detail;
3832
+ this.computedContext = this.computedContext?.identifier === this._qtiAssessmentItem.identifier ? { ...this.computedContext, title: this._qtiAssessmentItem.title } : {
3833
+ identifier: this._qtiAssessmentItem.identifier,
3834
+ title: this._qtiAssessmentItem.title,
3835
+ adaptive: this._qtiAssessmentItem.getAttribute("adaptive")?.toLowerCase() === "true" || false,
3836
+ variables: fullVariables
3837
+ };
3838
+ this._updateItemVariablesInTestContext(this._qtiAssessmentItem.identifier, fullVariables || []);
3839
+ }
3840
+ _handleTestShowCorrectResponse(e) {
3841
+ if (this._qtiAssessmentItem) {
3842
+ this._qtiAssessmentItem.showCorrectResponse(e.detail);
3843
+ }
3844
+ }
3845
+ _updateItemVariablesInTestContext(identifier, variables) {
3846
+ const rawscore = variables?.find((vr) => vr.identifier == "SCORE")?.value;
3847
+ const score = parseInt(rawscore?.toString());
3848
+ const completionStatus = variables?.find((v) => v.identifier === "completionStatus")?.value;
3849
+ const correct = score !== void 0 && !isNaN(score) && score > 0;
3850
+ const incorrect = score !== void 0 && !isNaN(score) && score <= 0;
3851
+ const completed = completionStatus === "completed";
3852
+ this.computedContext = {
3853
+ ...this.computedContext,
3854
+ identifier,
3855
+ correct,
3856
+ incorrect,
3857
+ completed,
3858
+ variables
3859
+ };
3860
+ }
3861
+ render() {
3862
+ return html4`<slot></slot>`;
3863
+ }
3864
+ disconnectedCallback() {
3865
+ super.disconnectedCallback();
3866
+ this.removeEventListener("qti-item-context-changed", this._onItemContextChanged);
3867
+ this.removeEventListener("qti-assessment-item-connected", this._onAssessmentItemConnected);
3868
+ }
3869
+ };
3870
+ __decorateClass([
3871
+ state2(),
3872
+ provide({ context: computedItemContext })
3873
+ ], QtiItem.prototype, "computedContext", 2);
3874
+ QtiItem = __decorateClass([
3875
+ customElement4("qti-item")
3876
+ ], QtiItem);
3877
+
3878
+ export {
3879
+ ItemContainer,
3880
+ PrintItemVariables,
3881
+ ItemShowCorrectResponse,
3882
+ QtiItem
3883
+ };
3884
+ //# sourceMappingURL=chunk-4O3EJ3SA.js.map