@citolab/qti-components 7.0.11 → 7.0.12

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