@citolab/qti-components 7.0.5 → 7.0.6-next.0

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