@citolab/qti-components 6.9.1-beta.9 → 7.0.1

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