@citolab/qti-components 7.0.3 → 7.0.5

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 (283) hide show
  1. package/cdn/chunks/chunk-4UJBK6JO.js +1 -0
  2. package/cdn/chunks/chunk-5FCXUJAG.js +23 -0
  3. package/cdn/chunks/chunk-5O3Z7TDV.js +1 -0
  4. package/cdn/chunks/chunk-65LFT33L.js +8 -0
  5. package/cdn/chunks/chunk-6D25UFJR.js +8 -0
  6. package/cdn/chunks/chunk-6DMSHH5X.js +0 -0
  7. package/cdn/chunks/chunk-6UGPNL7M.js +1 -0
  8. package/cdn/chunks/chunk-CFXQCNG6.js +3523 -0
  9. package/cdn/chunks/chunk-CSUKVUZF.js +3 -0
  10. package/cdn/chunks/chunk-CSY3WI5A.js +1 -0
  11. package/cdn/chunks/chunk-DAZR7RUI.js +0 -0
  12. package/cdn/chunks/chunk-EHK76KRT.js +1 -0
  13. package/cdn/chunks/chunk-EOPEMJS3.js +0 -0
  14. package/cdn/chunks/chunk-G5O7EN45.js +5 -0
  15. package/cdn/chunks/chunk-GEFUIFM7.js +0 -0
  16. package/cdn/chunks/chunk-JLNHEMQG.js +1 -0
  17. package/cdn/chunks/chunk-LPWIM7QJ.js +902 -0
  18. package/cdn/chunks/chunk-M3YRM3AV.js +1 -0
  19. package/cdn/chunks/chunk-M6BOWL2U.js +1 -0
  20. package/cdn/chunks/chunk-P5IE36FO.js +8 -0
  21. package/cdn/chunks/chunk-PXH5KN5O.js +1 -0
  22. package/cdn/chunks/chunk-RBEI6NIF.js +1 -0
  23. package/cdn/chunks/chunk-SMKIYFFI.js +1 -0
  24. package/cdn/chunks/chunk-SRLMW23F.js +0 -0
  25. package/cdn/chunks/chunk-T3YDLD2H.js +11 -0
  26. package/cdn/chunks/chunk-T4HD2C4F.js +1 -0
  27. package/cdn/chunks/chunk-T6IXJ4W4.js +1 -0
  28. package/cdn/chunks/chunk-TFAUBGP2.js +0 -0
  29. package/cdn/chunks/chunk-UIEC4LXR.js +17 -0
  30. package/cdn/chunks/chunk-V44O3GTW.js +0 -0
  31. package/cdn/chunks/chunk-V6B54FQW.js +5 -0
  32. package/cdn/chunks/chunk-V6KX6BQN.js +1 -0
  33. package/cdn/chunks/chunk-VYANBI35.js +1 -0
  34. package/cdn/chunks/chunk-XUJ7TXHW.js +1 -0
  35. package/cdn/chunks/chunk-ZIZLFFSG.js +0 -0
  36. package/cdn/index.css +1 -0
  37. package/cdn/index.global.js +45 -45
  38. package/cdn/index.js +354 -4148
  39. package/cdn/qti-components/index.global.js +226 -0
  40. package/cdn/qti-components/index.js +924 -0
  41. package/cdn/qti-item/components/index.css +1 -0
  42. package/cdn/qti-item/components/index.global.js +149 -0
  43. package/cdn/qti-item/components/index.js +3549 -0
  44. package/cdn/qti-item/components/item-container.css +1 -0
  45. package/cdn/qti-item/components/item-container.global.js +149 -0
  46. package/cdn/qti-item/components/item-container.js +3549 -0
  47. package/cdn/qti-item/index.css +1 -0
  48. package/cdn/qti-item/index.global.js +149 -0
  49. package/cdn/qti-item/index.js +3549 -0
  50. package/cdn/qti-item/qti-item.global.js +114 -0
  51. package/cdn/qti-item/qti-item.js +1 -0
  52. package/cdn/qti-loader/index.global.js +1 -0
  53. package/cdn/qti-loader/index.js +23 -0
  54. package/cdn/qti-test/components/index.css +1 -0
  55. package/cdn/qti-test/components/index.global.js +242 -0
  56. package/cdn/qti-test/components/index.js +3598 -0
  57. package/cdn/qti-test/components/styles.global.js +44 -0
  58. package/cdn/qti-test/components/styles.js +17 -0
  59. package/cdn/qti-test/components/test-component.abstract.global.js +170 -0
  60. package/cdn/qti-test/components/test-component.abstract.js +1 -0
  61. package/cdn/qti-test/components/test-container.css +1 -0
  62. package/cdn/qti-test/components/test-container.global.js +149 -0
  63. package/cdn/qti-test/components/test-container.js +3549 -0
  64. package/cdn/qti-test/components/test-item-link.global.js +170 -0
  65. package/cdn/qti-test/components/test-item-link.js +24 -0
  66. package/cdn/qti-test/components/test-next.global.js +170 -0
  67. package/cdn/qti-test/components/test-next.js +24 -0
  68. package/cdn/qti-test/components/test-next.spec.css +1 -0
  69. package/cdn/qti-test/components/test-next.spec.global.js +297 -0
  70. package/cdn/qti-test/components/test-next.spec.js +5215 -0
  71. package/cdn/qti-test/components/test-paging-buttons-stamp.global.js +207 -0
  72. package/cdn/qti-test/components/test-paging-buttons-stamp.js +3 -0
  73. package/cdn/qti-test/components/test-prev.global.js +170 -0
  74. package/cdn/qti-test/components/test-prev.js +24 -0
  75. package/cdn/qti-test/components/test-view.global.js +170 -0
  76. package/cdn/qti-test/components/test-view.js +11 -0
  77. package/cdn/qti-test/context/index.global.js +58 -0
  78. package/cdn/qti-test/context/index.js +1 -0
  79. package/cdn/qti-test/context/test.context.global.js +58 -0
  80. package/cdn/qti-test/context/test.context.js +1 -0
  81. package/cdn/qti-test/index.css +1 -0
  82. package/cdn/qti-test/index.global.js +242 -0
  83. package/cdn/qti-test/index.js +3598 -0
  84. package/cdn/qti-test/mixins/index.global.js +1 -0
  85. package/cdn/qti-test/mixins/index.js +23 -0
  86. package/cdn/qti-test/mixins/test-loader.mixin.global.js +1 -0
  87. package/cdn/qti-test/mixins/test-loader.mixin.js +23 -0
  88. package/cdn/qti-test/mixins/test-navigation.mixin.global.js +1 -0
  89. package/cdn/qti-test/mixins/test-navigation.mixin.js +1 -0
  90. package/cdn/qti-test/mixins/test-view.mixin.global.js +1 -0
  91. package/cdn/qti-test/mixins/test-view.mixin.js +1 -0
  92. package/cdn/qti-test/qti-assessment-test/index.global.js +170 -0
  93. package/cdn/qti-test/qti-assessment-test/index.js +1 -0
  94. package/cdn/qti-test/qti-assessment-test/qti-assessment-item-ref.global.js +170 -0
  95. package/cdn/qti-test/qti-assessment-test/qti-assessment-item-ref.js +1 -0
  96. package/cdn/qti-test/qti-assessment-test/qti-assessment-section.global.js +170 -0
  97. package/cdn/qti-test/qti-assessment-test/qti-assessment-section.js +1 -0
  98. package/cdn/qti-test/qti-assessment-test/qti-assessment-test.global.js +170 -0
  99. package/cdn/qti-test/qti-assessment-test/qti-assessment-test.js +1 -0
  100. package/cdn/qti-test/qti-assessment-test/qti-test-part.global.js +114 -0
  101. package/cdn/qti-test/qti-assessment-test/qti-test-part.js +1 -0
  102. package/cdn/qti-test/qti-test.global.js +170 -0
  103. package/cdn/qti-test/qti-test.js +23 -0
  104. package/cdn/qti-test/test-base.global.js +170 -0
  105. package/cdn/qti-test/test-base.js +1 -0
  106. package/cdn/qti-transformers/index.global.js +1 -0
  107. package/cdn/qti-transformers/index.js +23 -0
  108. package/dist/chunks/chunk-3G2DDBJW.js +44 -0
  109. package/dist/chunks/chunk-3G2DDBJW.js.map +1 -0
  110. package/dist/chunks/chunk-3NLCJYSX.js +1 -0
  111. package/dist/chunks/chunk-3NLCJYSX.js.map +1 -0
  112. package/dist/chunks/chunk-3OXGDCSU.js +6253 -0
  113. package/dist/chunks/chunk-3OXGDCSU.js.map +1 -0
  114. package/dist/chunks/chunk-3ROZMGAN.js +43 -0
  115. package/dist/chunks/chunk-3ROZMGAN.js.map +1 -0
  116. package/dist/chunks/chunk-4O5F7WV7.js +30 -0
  117. package/dist/chunks/chunk-4O5F7WV7.js.map +1 -0
  118. package/dist/chunks/chunk-6YE2KJ4C.js +55 -0
  119. package/dist/chunks/chunk-6YE2KJ4C.js.map +1 -0
  120. package/dist/chunks/chunk-AAQCM2FP.js +56 -0
  121. package/dist/chunks/chunk-AAQCM2FP.js.map +1 -0
  122. package/dist/chunks/chunk-D3RGDWKP.js +37 -0
  123. package/dist/chunks/chunk-D3RGDWKP.js.map +1 -0
  124. package/dist/chunks/chunk-DJLE6EV2.js +36 -0
  125. package/dist/chunks/chunk-DJLE6EV2.js.map +1 -0
  126. package/dist/chunks/chunk-ELDMXTUQ.js +31 -0
  127. package/dist/chunks/chunk-ELDMXTUQ.js.map +1 -0
  128. package/dist/chunks/chunk-EW5CTHAD.js +1 -0
  129. package/dist/chunks/chunk-EW5CTHAD.js.map +1 -0
  130. package/dist/chunks/chunk-HWA4A3SR.js +50 -0
  131. package/dist/chunks/chunk-HWA4A3SR.js.map +1 -0
  132. package/dist/chunks/chunk-IKZWK2C5.js +1 -0
  133. package/dist/chunks/chunk-IKZWK2C5.js.map +1 -0
  134. package/dist/chunks/chunk-IP7JSYO6.js +1 -0
  135. package/dist/chunks/chunk-IP7JSYO6.js.map +1 -0
  136. package/dist/chunks/chunk-JE6BMXZU.js +94 -0
  137. package/dist/chunks/chunk-JE6BMXZU.js.map +1 -0
  138. package/dist/chunks/chunk-JSPJGWGT.js +20 -0
  139. package/dist/chunks/chunk-JSPJGWGT.js.map +1 -0
  140. package/dist/chunks/chunk-LKINC6JO.js +118 -0
  141. package/dist/chunks/chunk-LKINC6JO.js.map +1 -0
  142. package/dist/chunks/chunk-LROTNPC2.js +94 -0
  143. package/dist/chunks/chunk-LROTNPC2.js.map +1 -0
  144. package/dist/chunks/chunk-MTMT2RMF.js +63 -0
  145. package/dist/chunks/chunk-MTMT2RMF.js.map +1 -0
  146. package/dist/chunks/chunk-NDJZGJUR.js +65 -0
  147. package/dist/chunks/chunk-NDJZGJUR.js.map +1 -0
  148. package/dist/chunks/chunk-OE2LFIH2.js +1 -0
  149. package/dist/chunks/chunk-OE2LFIH2.js.map +1 -0
  150. package/dist/chunks/chunk-OJ2XGDWK.js +1 -0
  151. package/dist/chunks/chunk-OJ2XGDWK.js.map +1 -0
  152. package/dist/chunks/chunk-PUBGXXTM.js +50 -0
  153. package/dist/chunks/chunk-PUBGXXTM.js.map +1 -0
  154. package/dist/chunks/chunk-QRCUNRP5.js +75 -0
  155. package/dist/chunks/chunk-QRCUNRP5.js.map +1 -0
  156. package/dist/chunks/chunk-S6JJYCO7.js +51 -0
  157. package/dist/chunks/chunk-S6JJYCO7.js.map +1 -0
  158. package/dist/chunks/chunk-U3AALKEP.js +1 -0
  159. package/dist/chunks/chunk-U3AALKEP.js.map +1 -0
  160. package/dist/chunks/chunk-UCQFSRYF.js +34 -0
  161. package/dist/chunks/chunk-UCQFSRYF.js.map +1 -0
  162. package/dist/chunks/chunk-URGVQ64M.js +1 -0
  163. package/dist/chunks/chunk-URGVQ64M.js.map +1 -0
  164. package/dist/chunks/chunk-V4FXK4TP.js +128 -0
  165. package/dist/chunks/chunk-V4FXK4TP.js.map +1 -0
  166. package/dist/chunks/chunk-W4B23OIP.js +72 -0
  167. package/dist/chunks/chunk-W4B23OIP.js.map +1 -0
  168. package/dist/chunks/chunk-XDFXD3BI.js +10 -0
  169. package/dist/chunks/chunk-XDFXD3BI.js.map +1 -0
  170. package/dist/chunks/chunk-XDMSEAYC.js +294 -0
  171. package/dist/chunks/chunk-XDMSEAYC.js.map +1 -0
  172. package/dist/chunks/chunk-XPDS72XY.js +29 -0
  173. package/dist/chunks/chunk-XPDS72XY.js.map +1 -0
  174. package/dist/chunks/chunk-Y6UWSECL.js +3529 -0
  175. package/dist/chunks/chunk-Y6UWSECL.js.map +1 -0
  176. package/dist/chunks/chunk-ZEFOMZNY.js +78 -0
  177. package/dist/chunks/chunk-ZEFOMZNY.js.map +1 -0
  178. package/dist/index-Cvrd4KQA.d.ts +109 -0
  179. package/dist/index.d.ts +18 -469
  180. package/dist/index.js +2717 -8728
  181. package/dist/index.js.map +1 -1
  182. package/dist/item.css +10 -78
  183. package/dist/qti-components/index.d.ts +150 -0
  184. package/dist/qti-components/index.js +6525 -0
  185. package/dist/qti-components/index.js.map +1 -0
  186. package/dist/qti-components-jsx.d.ts +159 -184
  187. package/dist/qti-item/components/index.d.ts +3 -0
  188. package/dist/qti-item/components/index.js +3856 -0
  189. package/dist/qti-item/components/index.js.map +1 -0
  190. package/dist/qti-item/components/item-container.d.ts +40 -0
  191. package/dist/qti-item/components/item-container.js +3856 -0
  192. package/dist/qti-item/components/item-container.js.map +1 -0
  193. package/dist/qti-item/index.d.ts +4 -0
  194. package/dist/qti-item/index.js +3869 -0
  195. package/dist/qti-item/index.js.map +1 -0
  196. package/dist/qti-item/qti-item.d.ts +25 -0
  197. package/dist/qti-item/qti-item.js +26 -0
  198. package/dist/qti-item/qti-item.js.map +1 -0
  199. package/dist/{loader → qti-loader}/index.d.ts +1 -1
  200. package/dist/{loader → qti-loader}/index.js +5 -0
  201. package/dist/{loader → qti-loader}/index.js.map +1 -1
  202. package/dist/{qti-simple-choice-UTrFa_RQ.d.ts → qti-simple-choice-DxWcdKHi.d.ts} +71 -90
  203. package/dist/qti-test/components/index.d.ts +13 -0
  204. package/dist/qti-test/components/index.js +4144 -0
  205. package/dist/qti-test/components/index.js.map +1 -0
  206. package/dist/qti-test/components/styles.d.ts +8 -0
  207. package/dist/qti-test/components/styles.js +29 -0
  208. package/dist/qti-test/components/styles.js.map +1 -0
  209. package/dist/qti-test/components/test-component.abstract.d.ts +23 -0
  210. package/dist/qti-test/components/test-component.abstract.js +149 -0
  211. package/dist/qti-test/components/test-component.abstract.js.map +1 -0
  212. package/dist/qti-test/components/test-container.d.ts +37 -0
  213. package/dist/qti-test/components/test-container.js +3782 -0
  214. package/dist/qti-test/components/test-container.js.map +1 -0
  215. package/dist/qti-test/components/test-item-link.d.ts +21 -0
  216. package/dist/qti-test/components/test-item-link.js +202 -0
  217. package/dist/qti-test/components/test-item-link.js.map +1 -0
  218. package/dist/qti-test/components/test-next.d.ts +32 -0
  219. package/dist/qti-test/components/test-next.js +209 -0
  220. package/dist/qti-test/components/test-next.js.map +1 -0
  221. package/dist/qti-test/components/test-next.spec.d.ts +16 -0
  222. package/dist/qti-test/components/test-next.spec.js +56915 -0
  223. package/dist/qti-test/components/test-next.spec.js.map +1 -0
  224. package/dist/qti-test/components/test-paging-buttons-stamp.d.ts +22 -0
  225. package/dist/qti-test/components/test-paging-buttons-stamp.js +218 -0
  226. package/dist/qti-test/components/test-paging-buttons-stamp.js.map +1 -0
  227. package/dist/qti-test/components/test-prev.d.ts +32 -0
  228. package/dist/qti-test/components/test-prev.js +209 -0
  229. package/dist/qti-test/components/test-prev.js.map +1 -0
  230. package/dist/qti-test/components/test-view.d.ts +27 -0
  231. package/dist/qti-test/components/test-view.js +209 -0
  232. package/dist/qti-test/components/test-view.js.map +1 -0
  233. package/dist/qti-test/context/index.d.ts +6 -0
  234. package/dist/qti-test/context/index.js +9 -0
  235. package/dist/qti-test/context/index.js.map +1 -0
  236. package/dist/qti-test/context/test.context.d.ts +6 -0
  237. package/dist/qti-test/context/test.context.js +9 -0
  238. package/dist/qti-test/context/test.context.js.map +1 -0
  239. package/dist/qti-test/index.d.ts +14 -0
  240. package/dist/qti-test/index.js +4746 -0
  241. package/dist/qti-test/index.js.map +1 -0
  242. package/dist/qti-test/mixins/index.d.ts +8 -0
  243. package/dist/qti-test/mixins/index.js +350 -0
  244. package/dist/qti-test/mixins/index.js.map +1 -0
  245. package/dist/qti-test/mixins/test-loader.mixin.d.ts +8 -0
  246. package/dist/qti-test/mixins/test-loader.mixin.js +240 -0
  247. package/dist/qti-test/mixins/test-loader.mixin.js.map +1 -0
  248. package/dist/qti-test/mixins/test-navigation.mixin.d.ts +22 -0
  249. package/dist/qti-test/mixins/test-navigation.mixin.js +64 -0
  250. package/dist/qti-test/mixins/test-navigation.mixin.js.map +1 -0
  251. package/dist/qti-test/mixins/test-view.mixin.d.ts +6 -0
  252. package/dist/qti-test/mixins/test-view.mixin.js +50 -0
  253. package/dist/qti-test/mixins/test-view.mixin.js.map +1 -0
  254. package/dist/qti-test/qti-assessment-test/index.d.ts +6 -0
  255. package/dist/qti-test/qti-assessment-test/index.js +221 -0
  256. package/dist/qti-test/qti-assessment-test/index.js.map +1 -0
  257. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.d.ts +6 -0
  258. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.js +85 -0
  259. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.js.map +1 -0
  260. package/dist/qti-test/qti-assessment-test/qti-assessment-section.d.ts +6 -0
  261. package/dist/qti-test/qti-assessment-test/qti-assessment-section.js +73 -0
  262. package/dist/qti-test/qti-assessment-test/qti-assessment-section.js.map +1 -0
  263. package/dist/qti-test/qti-assessment-test/qti-assessment-test.d.ts +6 -0
  264. package/dist/qti-test/qti-assessment-test/qti-assessment-test.js +54 -0
  265. package/dist/qti-test/qti-assessment-test/qti-assessment-test.js.map +1 -0
  266. package/dist/qti-test/qti-assessment-test/qti-test-part.d.ts +19 -0
  267. package/dist/qti-test/qti-assessment-test/qti-test-part.js +62 -0
  268. package/dist/qti-test/qti-assessment-test/qti-test-part.js.map +1 -0
  269. package/dist/qti-test/qti-test.d.ts +68 -0
  270. package/dist/qti-test/qti-test.js +500 -0
  271. package/dist/qti-test/qti-test.js.map +1 -0
  272. package/dist/qti-test/test-base.d.ts +6 -0
  273. package/dist/qti-test/test-base.js +137 -0
  274. package/dist/qti-test/test-base.js.map +1 -0
  275. package/dist/{transformers → qti-transformers}/index.d.ts +1 -0
  276. package/dist/{transformers → qti-transformers}/index.js +5 -0
  277. package/dist/{transformers → qti-transformers}/index.js.map +1 -1
  278. package/dist/test-base-BJwG9Ie8.d.ts +109 -0
  279. package/dist/vscode.css-custom-data.json +1 -37
  280. package/dist/vscode.html-custom-data.json +70 -45
  281. package/package.json +29 -51
  282. package/dist/custom-element-eslint-rules.js +0 -337
  283. package/dist/custom-elements.json +0 -27271
@@ -0,0 +1,3782 @@
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);
3779
+ export {
3780
+ TestContainer
3781
+ };
3782
+ //# sourceMappingURL=test-container.js.map