@superbuilders/incept-renderer 0.1.8 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@
2
2
  :root {
3
3
  --qti-container-bg: var(--background, #ffffff);
4
4
  --qti-container-border: var(--border, #e5e5e5);
5
- --qti-container-radius: var(--radius, 0.5rem);
5
+ --qti-container-radius: var(--radius-xs, 0.25rem);
6
6
  --qti-container-shadow: none;
7
7
  --qti-container-border-width: 2px;
8
8
  --qti-font-family: inherit;
@@ -10,9 +10,9 @@
10
10
  --qti-tracking: normal;
11
11
  --qti-feedback-bg: var(--background, #ffffff);
12
12
  --qti-feedback-border: var(--border, #e5e5e5);
13
- --qti-feedback-correct-text: #22c55e;
13
+ --qti-feedback-correct-text: var(--foreground, #171717);
14
14
  --qti-feedback-correct-icon-bg: #22c55e;
15
- --qti-feedback-incorrect-text: #ef4444;
15
+ --qti-feedback-incorrect-text: var(--foreground, #171717);
16
16
  --qti-feedback-incorrect-icon-bg: #ef4444;
17
17
  --qti-choice-bg: var(--background, #ffffff);
18
18
  --qti-choice-border: var(--accent, #f4f4f5);
@@ -27,13 +27,65 @@
27
27
  --qti-button-text: var(--primary-foreground, #ffffff);
28
28
  --qti-button-border: var(--primary, #18181b);
29
29
  --qti-button-shadow: none;
30
- --qti-button-radius: var(--radius, 0.5rem);
30
+ --qti-button-radius: var(--radius-xs, 0.25rem);
31
31
  --qti-button-font-weight: 700;
32
+ --qti-input-bg: var(--background, #ffffff);
33
+ --qti-input-border: var(--border, #e5e5e5);
34
+ --qti-input-border-width: 2px;
35
+ --qti-input-radius: var(--radius-xs, 0.25rem);
36
+ --qti-input-shadow: none;
37
+ --qti-input-focus-border: var(--ring, #2563eb);
38
+ --qti-input-focus-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
39
+ --qti-input-correct-border: #22c55e;
40
+ --qti-input-incorrect-border: #ef4444;
41
+ --qti-indicator-size: 1.5rem;
42
+ --qti-indicator-bg: var(--background, #ffffff);
43
+ --qti-indicator-border: var(--border, #d4d4d8);
44
+ --qti-indicator-border-width: 2px;
45
+ --qti-indicator-radius: var(--radius-xs, 0.25rem);
46
+ --qti-indicator-checked-bg: var(--primary, #18181b);
47
+ --qti-indicator-checked-border: var(--primary, #18181b);
48
+ --qti-indicator-checked-text: var(--primary-foreground, #ffffff);
49
+ --qti-progress-bg: var(--muted, #f4f4f5);
50
+ --qti-progress-fill: var(--primary, #18181b);
51
+ --qti-progress-height: 0.5rem;
52
+ --qti-progress-radius: var(--radius-xs, 0.25rem);
53
+ --qti-progress-border: transparent;
54
+ --qti-progress-border-width: 0px;
55
+ --qti-content-font-size: 1.125rem;
56
+ --qti-content-line-height: 1.625;
57
+ --qti-content-font-weight: 500;
58
+ --qti-grid-gap: 1rem;
59
+ --qti-image-card-min-height: 180px;
60
+ --qti-image-card-padding: 0;
61
+ --qti-image-max-height: 160px;
62
+ --qti-order-container-bg: var(--muted, #f4f4f5);
63
+ --qti-order-container-border: transparent;
64
+ --qti-order-container-border-width: 2px;
65
+ --qti-order-container-radius: var(--radius-xs, 0.25rem);
66
+ --qti-order-container-padding: 1rem;
67
+ --qti-order-container-gap: 0.5rem;
68
+ --qti-order-container-correct-bg: oklch(0.9 0.15 140 / 0.2);
69
+ --qti-order-container-correct-border: #22c55e;
70
+ --qti-order-container-incorrect-bg: oklch(0.9 0.1 25 / 0.2);
71
+ --qti-order-container-incorrect-border: #ef4444;
72
+ --qti-order-item-bg: var(--background, #ffffff);
73
+ --qti-order-item-border: var(--border, #e5e5e5);
74
+ --qti-order-item-border-width: 1px;
75
+ --qti-order-item-radius: var(--radius-xs, 0.25rem);
76
+ --qti-order-item-padding: 1rem;
77
+ --qti-order-item-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
78
+ --qti-order-item-hover-border: oklch(0.6 0.2 250);
79
+ --qti-order-item-hover-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
80
+ --qti-order-item-dragging-border: oklch(0.6 0.2 250);
81
+ --qti-order-item-dragging-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
82
+ --qti-order-item-handle-color: var(--muted-foreground, #71717a);
32
83
  }
33
84
  .dark {
34
85
  --qti-choice-selected-bg: oklch(0.3 0.05 228 / 0.4);
35
86
  --qti-choice-correct-bg: oklch(0.25 0.05 140 / 0.4);
36
87
  --qti-choice-incorrect-bg: oklch(0.25 0.05 25 / 0.4);
88
+ --qti-input-focus-shadow: 0 0 0 2px rgba(96, 165, 250, 0.3);
37
89
  }
38
90
  [data-qti-theme=neobrutalist] {
39
91
  --qti-container-bg: #ffffff;
@@ -71,6 +123,43 @@
71
123
  --qti-button-shadow: 4px 4px 0px 0px rgba(0, 0, 0, 1);
72
124
  --qti-button-radius: 0px;
73
125
  --qti-button-font-weight: 900;
126
+ --qti-input-bg: #ffffff;
127
+ --qti-input-border: #000000;
128
+ --qti-input-border-width: 3px;
129
+ --qti-input-radius: 0px;
130
+ --qti-input-shadow: 3px 3px 0px 0px rgba(0, 0, 0, 1);
131
+ --qti-input-focus-border: #000000;
132
+ --qti-input-focus-shadow: 2px 2px 0px 0px rgba(0, 0, 0, 1);
133
+ --qti-input-correct-border: #00ff00;
134
+ --qti-input-incorrect-border: #ff0000;
135
+ --qti-indicator-border: #000000;
136
+ --qti-indicator-border-width: 3px;
137
+ --qti-indicator-radius: 0px;
138
+ --qti-indicator-checked-bg: #000000;
139
+ --qti-indicator-checked-border: #000000;
140
+ --qti-progress-bg: #ffffff;
141
+ --qti-progress-fill: #ff90e8;
142
+ --qti-progress-radius: 0px;
143
+ --qti-progress-border: #000000;
144
+ --qti-progress-border-width: 2px;
145
+ --qti-order-container-bg: #f0f0f0;
146
+ --qti-order-container-border: #000000;
147
+ --qti-order-container-border-width: 4px;
148
+ --qti-order-container-radius: 0px;
149
+ --qti-order-container-correct-bg: #bfff00;
150
+ --qti-order-container-correct-border: #000000;
151
+ --qti-order-container-incorrect-bg: #ff6b6b;
152
+ --qti-order-container-incorrect-border: #000000;
153
+ --qti-order-item-bg: #ffffff;
154
+ --qti-order-item-border: #000000;
155
+ --qti-order-item-border-width: 3px;
156
+ --qti-order-item-radius: 0px;
157
+ --qti-order-item-shadow: 4px 4px 0px 0px rgba(0, 0, 0, 1);
158
+ --qti-order-item-hover-border: #000000;
159
+ --qti-order-item-hover-shadow: 2px 2px 0px 0px rgba(0, 0, 0, 1);
160
+ --qti-order-item-dragging-border: #000000;
161
+ --qti-order-item-dragging-shadow: 6px 6px 0px 0px rgba(0, 0, 0, 1);
162
+ --qti-order-item-handle-color: #000000;
74
163
  }
75
164
  .dark[data-qti-theme=neobrutalist],
76
165
  [data-qti-theme=neobrutalist] .dark {
@@ -94,6 +183,30 @@
94
183
  --qti-button-text: #000000;
95
184
  --qti-button-border: #ffffff;
96
185
  --qti-button-shadow: 4px 4px 0px 0px rgba(255, 255, 255, 0.8);
186
+ --qti-input-bg: #1a1a2e;
187
+ --qti-input-border: #ffffff;
188
+ --qti-input-shadow: 3px 3px 0px 0px rgba(255, 255, 255, 0.8);
189
+ --qti-input-focus-shadow: 2px 2px 0px 0px rgba(255, 255, 255, 0.8);
190
+ --qti-input-correct-border: #bfff00;
191
+ --qti-input-incorrect-border: #ff6b6b;
192
+ --qti-indicator-bg: #1a1a2e;
193
+ --qti-indicator-border: #ffffff;
194
+ --qti-indicator-checked-bg: #ffffff;
195
+ --qti-indicator-checked-text: #000000;
196
+ --qti-progress-bg: #1a1a2e;
197
+ --qti-progress-border: #ffffff;
198
+ --qti-order-container-bg: #2a2a4e;
199
+ --qti-order-container-border: #ffffff;
200
+ --qti-order-container-correct-bg: #2d5a27;
201
+ --qti-order-container-correct-border: #bfff00;
202
+ --qti-order-container-incorrect-bg: #5a2727;
203
+ --qti-order-container-incorrect-border: #ff6b6b;
204
+ --qti-order-item-bg: #1a1a2e;
205
+ --qti-order-item-border: #ffffff;
206
+ --qti-order-item-shadow: 4px 4px 0px 0px rgba(255, 255, 255, 0.8);
207
+ --qti-order-item-hover-shadow: 2px 2px 0px 0px rgba(255, 255, 255, 0.8);
208
+ --qti-order-item-dragging-shadow: 6px 6px 0px 0px rgba(255, 255, 255, 0.8);
209
+ --qti-order-item-handle-color: #ffffff;
97
210
  }
98
211
  .qti-container {
99
212
  font-family: var(--qti-font-family);
@@ -246,45 +359,118 @@
246
359
  border-radius: 0 !important;
247
360
  border-width: 3px !important;
248
361
  border-color: #000000 !important;
362
+ box-shadow: 2px 2px 0px 0px rgba(0, 0, 0, 1) !important;
363
+ font-family: var(--qti-font-family) !important;
364
+ font-weight: 800 !important;
365
+ min-width: 2rem !important;
366
+ min-height: 2rem !important;
367
+ width: 2rem !important;
368
+ height: 2rem !important;
369
+ background: #ffffff !important;
370
+ color: #000000 !important;
371
+ --choice-foreground: #000000 !important;
372
+ --choice-complement: #000000 !important;
249
373
  }
250
374
  [data-qti-theme=neobrutalist] [data-slot=choice-indicator][data-state=checked] {
251
375
  background: #000000 !important;
252
376
  color: #ffffff !important;
377
+ border-color: #000000 !important;
378
+ box-shadow: 1px 1px 0px 0px rgba(0, 0, 0, 1) !important;
379
+ transform: translate(1px, 1px);
380
+ --choice-foreground: #ffffff !important;
381
+ --choice-complement: #000000 !important;
253
382
  }
254
383
  [data-qti-theme=neobrutalist] [data-slot=choice-indicator][data-palette=owl][data-state=checked] {
255
- background: var(--qti-feedback-correct-icon-bg) !important;
384
+ background: #bfff00 !important;
385
+ border-color: #000000 !important;
386
+ color: #000000 !important;
387
+ --choice-foreground: #000000 !important;
388
+ --choice-complement: #bfff00 !important;
256
389
  }
257
390
  [data-qti-theme=neobrutalist] [data-slot=choice-indicator][data-palette=cardinal][data-state=checked] {
258
- background: var(--qti-feedback-incorrect-icon-bg) !important;
391
+ background: #ff6b6b !important;
392
+ border-color: #000000 !important;
393
+ color: #000000 !important;
394
+ --choice-foreground: #000000 !important;
395
+ --choice-complement: #ff6b6b !important;
396
+ }
397
+ [data-qti-theme=neobrutalist] [data-slot=choice-indicator][data-filled=true][data-state=checked] {
398
+ background: #000000 !important;
399
+ box-shadow: inset 0 0 0 3px #ffffff, 1px 1px 0px 0px rgba(0, 0, 0, 1) !important;
400
+ }
401
+ [data-qti-theme=neobrutalist] [data-slot=choice-indicator][data-filled=true][data-palette=owl][data-state=checked] {
402
+ background: #bfff00 !important;
403
+ box-shadow: inset 0 0 0 3px #ffffff, 1px 1px 0px 0px rgba(0, 0, 0, 1) !important;
404
+ }
405
+ [data-qti-theme=neobrutalist] [data-slot=choice-indicator][data-filled=true][data-palette=cardinal][data-state=checked] {
406
+ background: #ff6b6b !important;
407
+ box-shadow: inset 0 0 0 3px #ffffff, 1px 1px 0px 0px rgba(0, 0, 0, 1) !important;
259
408
  }
260
409
  [data-qti-theme=neobrutalist] output[aria-live=polite] {
261
- border-left-width: 4px !important;
262
- border-color: #000000 !important;
410
+ border-left-width: var(--qti-container-border-width) !important;
411
+ border-color: var(--qti-container-border) !important;
263
412
  }
264
413
  [data-qti-theme=neobrutalist] input[type=text],
265
414
  [data-qti-theme=neobrutalist] textarea,
266
415
  [data-qti-theme=neobrutalist] select {
416
+ border-radius: var(--qti-input-radius) !important;
417
+ border-width: var(--qti-input-border-width) !important;
418
+ border-color: var(--qti-input-border) !important;
419
+ font-family: var(--qti-font-family) !important;
420
+ box-shadow: var(--qti-input-shadow) !important;
421
+ }
422
+ [data-qti-theme=neobrutalist] input[type=text]:focus,
423
+ [data-qti-theme=neobrutalist] textarea:focus,
424
+ [data-qti-theme=neobrutalist] select:focus {
425
+ outline: none !important;
426
+ box-shadow: var(--qti-input-focus-shadow) !important;
427
+ transform: translate(1px, 1px);
428
+ }
429
+ [data-qti-theme=neobrutalist] [data-slot=select-trigger] {
267
430
  border-radius: 0 !important;
268
431
  border-width: 3px !important;
269
432
  border-color: #000000 !important;
270
433
  font-family: var(--qti-font-family) !important;
271
434
  box-shadow: 3px 3px 0px 0px rgba(0, 0, 0, 1) !important;
435
+ font-weight: 700 !important;
272
436
  }
273
- [data-qti-theme=neobrutalist] input[type=text]:focus,
274
- [data-qti-theme=neobrutalist] textarea:focus,
275
- [data-qti-theme=neobrutalist] select:focus {
437
+ [data-qti-theme=neobrutalist] [data-slot=select-trigger]:hover {
438
+ transform: translate(1px, 1px) !important;
439
+ box-shadow: 2px 2px 0px 0px rgba(0, 0, 0, 1) !important;
440
+ }
441
+ [data-qti-theme=neobrutalist] [data-slot=select-trigger]:focus {
276
442
  outline: none !important;
277
443
  box-shadow: 2px 2px 0px 0px rgba(0, 0, 0, 1) !important;
278
- transform: translate(1px, 1px);
444
+ transform: translate(1px, 1px) !important;
279
445
  }
280
- [data-qti-theme=neobrutalist] [data-slot=progress] {
446
+ [data-qti-theme=neobrutalist] [data-slot=select-content] {
281
447
  border-radius: 0 !important;
282
- border: 2px solid #000000 !important;
283
- background: #ffffff !important;
448
+ border-width: 3px !important;
449
+ border-color: #000000 !important;
450
+ box-shadow: 4px 4px 0px 0px rgba(0, 0, 0, 1) !important;
451
+ }
452
+ .dark[data-qti-theme=neobrutalist] [data-slot=select-trigger],
453
+ [data-qti-theme=neobrutalist] .dark [data-slot=select-trigger] {
454
+ border-color: #ffffff !important;
455
+ box-shadow: 3px 3px 0px 0px rgba(255, 255, 255, 0.8) !important;
456
+ }
457
+ .dark[data-qti-theme=neobrutalist] [data-slot=select-trigger]:hover,
458
+ [data-qti-theme=neobrutalist] .dark [data-slot=select-trigger]:hover {
459
+ box-shadow: 2px 2px 0px 0px rgba(255, 255, 255, 0.8) !important;
460
+ }
461
+ .dark[data-qti-theme=neobrutalist] [data-slot=select-content],
462
+ [data-qti-theme=neobrutalist] .dark [data-slot=select-content] {
463
+ border-color: #ffffff !important;
464
+ box-shadow: 4px 4px 0px 0px rgba(255, 255, 255, 0.8) !important;
465
+ }
466
+ [data-qti-theme=neobrutalist] [data-slot=progress] {
467
+ border-radius: var(--qti-progress-radius) !important;
468
+ border: var(--qti-progress-border-width) solid var(--qti-progress-border) !important;
469
+ background: var(--qti-progress-bg) !important;
284
470
  }
285
471
  [data-qti-theme=neobrutalist] [data-slot=progress] > div {
286
- border-radius: 0 !important;
287
- background: var(--qti-button-bg) !important;
472
+ border-radius: var(--qti-progress-radius) !important;
473
+ background: var(--qti-progress-fill) !important;
288
474
  }
289
475
  .dark[data-qti-theme=neobrutalist] [data-slot=field-label]:has(> [data-slot=field]),
290
476
  [data-qti-theme=neobrutalist] .dark [data-slot=field-label]:has(> [data-slot=field]) {
@@ -299,6 +485,18 @@
299
485
  .dark[data-qti-theme=neobrutalist] [data-slot=choice-indicator],
300
486
  [data-qti-theme=neobrutalist] .dark [data-slot=choice-indicator] {
301
487
  border-color: #ffffff !important;
488
+ box-shadow: 2px 2px 0px 0px rgba(255, 255, 255, 0.8) !important;
489
+ color: #ffffff !important;
490
+ }
491
+ .dark[data-qti-theme=neobrutalist] [data-slot=choice-indicator][data-state=checked],
492
+ [data-qti-theme=neobrutalist] .dark [data-slot=choice-indicator][data-state=checked] {
493
+ background: #ffffff !important;
494
+ color: #000000 !important;
495
+ box-shadow: 1px 1px 0px 0px rgba(255, 255, 255, 0.8) !important;
496
+ }
497
+ .dark[data-qti-theme=neobrutalist] [data-slot=choice-indicator][data-filled=true][data-state=checked],
498
+ [data-qti-theme=neobrutalist] .dark [data-slot=choice-indicator][data-filled=true][data-state=checked] {
499
+ box-shadow: inset 0 0 0 3px #1a1a2e, 1px 1px 0px 0px rgba(255, 255, 255, 0.8) !important;
302
500
  }
303
501
  .dark[data-qti-theme=neobrutalist] input[type=text],
304
502
  .dark[data-qti-theme=neobrutalist] textarea,
@@ -306,8 +504,8 @@
306
504
  [data-qti-theme=neobrutalist] .dark input[type=text],
307
505
  [data-qti-theme=neobrutalist] .dark textarea,
308
506
  [data-qti-theme=neobrutalist] .dark select {
309
- border-color: #ffffff !important;
310
- box-shadow: 3px 3px 0px 0px rgba(255, 255, 255, 0.8) !important;
507
+ border-color: var(--qti-input-border) !important;
508
+ box-shadow: var(--qti-input-shadow) !important;
311
509
  }
312
510
  .dark[data-qti-theme=neobrutalist] [data-slot=field-label],
313
511
  .dark[data-qti-theme=neobrutalist] [data-slot=field-label] *,
@@ -319,12 +517,97 @@
319
517
  [data-qti-theme=neobrutalist] .dark [data-slot=field-content] * {
320
518
  color: #ffffff !important;
321
519
  }
322
- .dark[data-qti-theme=neobrutalist] [data-slot=choice-indicator][data-state=checked],
323
- [data-qti-theme=neobrutalist] .dark [data-slot=choice-indicator][data-state=checked] {
324
- color: #000000 !important;
520
+ .qti-input {
521
+ background: var(--qti-input-bg);
522
+ border: var(--qti-input-border-width) solid var(--qti-input-border);
523
+ border-radius: var(--qti-input-radius);
524
+ box-shadow: var(--qti-input-shadow);
525
+ font-family: var(--qti-font-family);
526
+ transition: all 0.15s ease;
527
+ }
528
+ .qti-input:focus {
529
+ outline: none;
530
+ border-color: var(--qti-input-focus-border);
531
+ box-shadow: var(--qti-input-focus-shadow);
532
+ }
533
+ .qti-input[data-correct=true] {
534
+ border-color: var(--qti-input-correct-border);
535
+ }
536
+ .qti-input[data-correct=false] {
537
+ border-color: var(--qti-input-incorrect-border);
538
+ }
539
+ .qti-indicator {
540
+ width: var(--qti-indicator-size);
541
+ height: var(--qti-indicator-size);
542
+ background: var(--qti-indicator-bg);
543
+ border: var(--qti-indicator-border-width) solid var(--qti-indicator-border);
544
+ border-radius: var(--qti-indicator-radius);
545
+ }
546
+ .qti-indicator[data-state=checked] {
547
+ background: var(--qti-indicator-checked-bg);
548
+ border-color: var(--qti-indicator-checked-border);
549
+ color: var(--qti-indicator-checked-text);
550
+ }
551
+ .qti-progress,
552
+ [data-slot=progress] {
553
+ height: var(--qti-progress-height);
554
+ background: var(--qti-progress-bg);
555
+ border-radius: var(--qti-progress-radius);
556
+ border: var(--qti-progress-border-width) solid var(--qti-progress-border);
557
+ overflow: hidden;
558
+ }
559
+ .qti-progress > div,
560
+ [data-slot=progress] > div {
561
+ height: 100%;
562
+ background: var(--qti-progress-fill);
563
+ border-radius: var(--qti-progress-radius);
564
+ }
565
+ .qti-order-container {
566
+ background: var(--qti-order-container-bg);
567
+ border: var(--qti-order-container-border-width) solid var(--qti-order-container-border);
568
+ border-radius: var(--qti-order-container-radius);
569
+ padding: var(--qti-order-container-padding);
570
+ gap: var(--qti-order-container-gap);
571
+ transition: all 0.2s ease;
572
+ }
573
+ .qti-order-container[data-correct=true] {
574
+ background: var(--qti-order-container-correct-bg);
575
+ border-color: var(--qti-order-container-correct-border);
576
+ }
577
+ .qti-order-container[data-correct=false] {
578
+ background: var(--qti-order-container-incorrect-bg);
579
+ border-color: var(--qti-order-container-incorrect-border);
580
+ }
581
+ .qti-order-item {
582
+ background: var(--qti-order-item-bg);
583
+ border: var(--qti-order-item-border-width) solid var(--qti-order-item-border);
584
+ border-radius: var(--qti-order-item-radius);
585
+ padding: var(--qti-order-item-padding);
586
+ box-shadow: var(--qti-order-item-shadow);
587
+ transition: all 0.15s ease;
588
+ touch-action: none;
589
+ user-select: none;
590
+ }
591
+ .qti-order-item:hover:not([data-disabled=true]) {
592
+ border-color: var(--qti-order-item-hover-border);
593
+ box-shadow: var(--qti-order-item-hover-shadow);
594
+ }
595
+ .qti-order-item[data-dragging=true] {
596
+ border-color: var(--qti-order-item-dragging-border);
597
+ box-shadow: var(--qti-order-item-dragging-shadow);
598
+ }
599
+ .qti-order-item[data-disabled=true] {
600
+ cursor: default;
601
+ opacity: 0.9;
602
+ }
603
+ .qti-order-item-handle {
604
+ color: var(--qti-order-item-handle-color);
325
605
  }
326
606
  .qti-html-content {
327
607
  color: inherit !important;
608
+ font-size: var(--qti-content-font-size);
609
+ font-weight: var(--qti-content-font-weight);
610
+ line-height: var(--qti-content-line-height);
328
611
  }
329
612
  .qti-html-content *,
330
613
  .qti-html-content p,
@@ -344,14 +627,40 @@
344
627
  .qti-html-content p {
345
628
  margin-bottom: 0.5rem;
346
629
  }
630
+ .qti-html-content img {
631
+ max-width: 100%;
632
+ height: auto;
633
+ width: auto;
634
+ object-fit: contain;
635
+ display: block;
636
+ margin-left: auto;
637
+ margin-right: auto;
638
+ }
639
+ .qti-html-content figure,
640
+ .qti-html-content .image-container,
641
+ .qti-html-content [class*=image] {
642
+ display: flex;
643
+ justify-content: center;
644
+ align-items: center;
645
+ margin: 1rem 0;
646
+ }
647
+ .qti-html-content table {
648
+ margin: 1rem auto;
649
+ border-collapse: collapse;
650
+ }
651
+ .qti-html-content th,
652
+ .qti-html-content td {
653
+ padding: 0.5rem 1rem;
654
+ border: 1px solid currentColor;
655
+ }
347
656
  .qti-image-grid {
348
657
  display: grid;
349
- gap: 1rem;
658
+ gap: var(--qti-grid-gap);
350
659
  }
351
660
  .qti-image-grid-2 {
352
661
  display: grid;
353
662
  grid-template-columns: repeat(2, 1fr);
354
- gap: 1.5rem;
663
+ gap: calc(var(--qti-grid-gap) * 1.5);
355
664
  max-width: 48rem;
356
665
  margin-left: auto;
357
666
  margin-right: auto;
@@ -359,21 +668,27 @@
359
668
  .qti-image-grid-3 {
360
669
  display: grid;
361
670
  grid-template-columns: repeat(3, 1fr);
362
- gap: 1rem;
671
+ gap: var(--qti-grid-gap);
363
672
  }
364
673
  .qti-image-grid-4 {
365
674
  display: grid;
366
675
  grid-template-columns: repeat(2, 1fr);
367
- gap: 1rem;
676
+ gap: var(--qti-grid-gap);
368
677
  }
369
678
  .qti-image-grid-many {
370
- display: grid;
371
- grid-template-columns: repeat(2, 1fr);
372
- gap: 1rem;
679
+ display: flex;
680
+ flex-wrap: wrap;
681
+ justify-content: center;
682
+ gap: var(--qti-grid-gap);
683
+ }
684
+ .qti-image-grid-many > * {
685
+ flex: 0 0 calc(50% - var(--qti-grid-gap) / 2);
686
+ max-width: calc(50% - var(--qti-grid-gap) / 2);
373
687
  }
374
688
  @media (min-width: 768px) {
375
- .qti-image-grid-many {
376
- grid-template-columns: repeat(3, 1fr);
689
+ .qti-image-grid-many > * {
690
+ flex: 0 0 calc(33.333% - var(--qti-grid-gap) * 2 / 3);
691
+ max-width: calc(33.333% - var(--qti-grid-gap) * 2 / 3);
377
692
  }
378
693
  }
379
694
  .qti-image-card {
@@ -382,10 +697,14 @@
382
697
  justify-content: center;
383
698
  align-items: center;
384
699
  text-align: center;
385
- min-height: 180px;
700
+ min-height: var(--qti-image-card-min-height);
701
+ padding: var(--qti-image-card-padding);
702
+ }
703
+ .qti-image-card > * {
704
+ width: auto !important;
386
705
  }
387
706
  .qti-image-card img {
388
- max-height: 160px;
707
+ max-height: var(--qti-image-max-height);
389
708
  width: auto;
390
709
  height: auto;
391
710
  max-width: 100%;
@@ -395,19 +714,236 @@
395
714
  }
396
715
  @media (min-width: 768px) {
397
716
  .qti-image-card img {
398
- max-height: 192px;
717
+ max-height: calc(var(--qti-image-max-height) * 1.2);
399
718
  }
400
719
  }
401
720
  .qti-image-card-large {
402
- min-height: 220px;
721
+ min-height: calc(var(--qti-image-card-min-height) * 1.22);
403
722
  padding: 2rem;
404
723
  }
405
724
  .qti-image-card-large img {
406
- max-height: 208px;
725
+ max-height: calc(var(--qti-image-max-height) * 1.3);
407
726
  }
408
727
  @media (min-width: 768px) {
409
728
  .qti-image-card-large img {
410
- max-height: 240px;
729
+ max-height: calc(var(--qti-image-max-height) * 1.5);
411
730
  }
412
731
  }
732
+ .qti-stimulus-body {
733
+ font-family: var(--qti-font-family, inherit);
734
+ font-size: 1.125rem;
735
+ line-height: 1.75;
736
+ color: var(--foreground, #171717);
737
+ }
738
+ .qti-stimulus-body h1 {
739
+ display: block;
740
+ font-size: 2rem;
741
+ font-weight: 800;
742
+ margin-top: 0;
743
+ margin-bottom: 1.25rem;
744
+ line-height: 1.2;
745
+ color: var(--foreground, #171717);
746
+ }
747
+ .qti-stimulus-body h2 {
748
+ display: block;
749
+ font-size: 1.625rem;
750
+ font-weight: 700;
751
+ margin-top: 2rem;
752
+ margin-bottom: 1rem;
753
+ line-height: 1.25;
754
+ color: var(--foreground, #171717);
755
+ }
756
+ .qti-stimulus-body h3 {
757
+ display: block;
758
+ font-size: 1.375rem;
759
+ font-weight: 600;
760
+ margin-top: 1.75rem;
761
+ margin-bottom: 0.75rem;
762
+ line-height: 1.3;
763
+ color: var(--foreground, #171717);
764
+ }
765
+ .qti-stimulus-body h4,
766
+ .qti-stimulus-body h5,
767
+ .qti-stimulus-body h6 {
768
+ display: block;
769
+ font-size: 1.125rem;
770
+ font-weight: 600;
771
+ margin-top: 1.5rem;
772
+ margin-bottom: 0.5rem;
773
+ line-height: 1.4;
774
+ color: var(--foreground, #171717);
775
+ }
776
+ .qti-stimulus-body > h1:first-child,
777
+ .qti-stimulus-body > h2:first-child,
778
+ .qti-stimulus-body > h3:first-child {
779
+ margin-top: 0;
780
+ }
781
+ .qti-stimulus-body p {
782
+ display: block;
783
+ margin-top: 0;
784
+ margin-bottom: 1.25rem;
785
+ }
786
+ .qti-stimulus-body ul,
787
+ .qti-stimulus-body ol {
788
+ display: block;
789
+ margin-top: 0.75rem;
790
+ margin-bottom: 1.5rem;
791
+ padding-left: 2rem;
792
+ }
793
+ .qti-stimulus-body ul {
794
+ list-style-type: disc;
795
+ }
796
+ .qti-stimulus-body ol {
797
+ list-style-type: decimal;
798
+ }
799
+ .qti-stimulus-body li {
800
+ display: list-item;
801
+ margin-bottom: 0.625rem;
802
+ line-height: 1.7;
803
+ padding-left: 0.25rem;
804
+ }
805
+ .qti-stimulus-body li:last-child {
806
+ margin-bottom: 0;
807
+ }
808
+ .qti-stimulus-body ul ul,
809
+ .qti-stimulus-body ol ul {
810
+ list-style-type: circle;
811
+ margin-top: 0.5rem;
812
+ margin-bottom: 0.5rem;
813
+ }
814
+ .qti-stimulus-body ul ul ul,
815
+ .qti-stimulus-body ol ul ul {
816
+ list-style-type: square;
817
+ }
818
+ .qti-stimulus-body strong,
819
+ .qti-stimulus-body b {
820
+ font-weight: 700;
821
+ }
822
+ .qti-stimulus-body em,
823
+ .qti-stimulus-body i {
824
+ font-style: italic;
825
+ }
826
+ .qti-stimulus-body a {
827
+ color: var(--color-macaw, oklch(0.7181 0.1513 237.07));
828
+ text-decoration: underline;
829
+ text-underline-offset: 3px;
830
+ text-decoration-thickness: 2px;
831
+ font-weight: 500;
832
+ transition: color 0.15s ease;
833
+ }
834
+ .qti-stimulus-body a:hover {
835
+ color: var(--color-whale, oklch(0.55 0.15 237.07));
836
+ text-decoration-thickness: 2px;
837
+ }
838
+ .qti-stimulus-body figure {
839
+ display: block;
840
+ margin: 2rem auto;
841
+ padding: 0;
842
+ max-width: 100%;
843
+ text-align: center;
844
+ }
845
+ .qti-stimulus-body figure img {
846
+ display: block;
847
+ max-width: 100%;
848
+ height: auto;
849
+ margin: 0 auto;
850
+ }
851
+ .qti-stimulus-body figcaption {
852
+ display: block;
853
+ margin-top: 1rem;
854
+ padding: 0 1rem;
855
+ font-size: 0.9375rem;
856
+ color: var(--muted-foreground, #737373);
857
+ text-align: center;
858
+ line-height: 1.6;
859
+ }
860
+ .qti-stimulus-body figcaption em {
861
+ font-style: normal;
862
+ }
863
+ .qti-stimulus-body figcaption a {
864
+ color: var(--color-macaw, oklch(0.7181 0.1513 237.07));
865
+ text-decoration: underline;
866
+ text-underline-offset: 2px;
867
+ text-decoration-thickness: 1px;
868
+ font-weight: 500;
869
+ }
870
+ .qti-stimulus-body figcaption a:hover {
871
+ color: var(--color-whale, oklch(0.55 0.15 237.07));
872
+ }
873
+ .qti-stimulus-body blockquote {
874
+ display: block;
875
+ margin: 1.5rem 0;
876
+ padding: 1rem 1.5rem;
877
+ border-left: 4px solid var(--color-macaw, oklch(0.7181 0.1513 237.07));
878
+ background: var(--muted, #f4f4f5);
879
+ border-radius: 0 0.75rem 0.75rem 0;
880
+ }
881
+ .qti-stimulus-body blockquote p:last-child {
882
+ margin-bottom: 0;
883
+ }
884
+ .qti-stimulus-body td img {
885
+ max-width: 150px;
886
+ max-height: 100px;
887
+ margin: 0;
888
+ }
889
+ .qti-stimulus-body code {
890
+ font-family:
891
+ ui-monospace,
892
+ SFMono-Regular,
893
+ "SF Mono",
894
+ Menlo,
895
+ Monaco,
896
+ Consolas,
897
+ monospace;
898
+ font-size: 0.875em;
899
+ padding: 0.125rem 0.375rem;
900
+ background: var(--muted, #f4f4f5);
901
+ border-radius: 0.25rem;
902
+ }
903
+ .qti-stimulus-body pre {
904
+ display: block;
905
+ margin: 1.5rem 0;
906
+ padding: 1rem;
907
+ background: var(--muted, #f4f4f5);
908
+ border-radius: 0.5rem;
909
+ overflow-x: auto;
910
+ }
911
+ .qti-stimulus-body pre code {
912
+ padding: 0;
913
+ background: none;
914
+ }
915
+ .qti-stimulus-body details {
916
+ display: block;
917
+ margin: 1.5rem 0;
918
+ padding: 0;
919
+ border: 1px solid var(--border, #e5e5e5);
920
+ border-radius: 0.75rem;
921
+ overflow: hidden;
922
+ }
923
+ .qti-stimulus-body details[open] {
924
+ background: var(--muted, #f4f4f5);
925
+ }
926
+ .qti-stimulus-body summary {
927
+ display: list-item;
928
+ padding: 1rem 1.25rem;
929
+ font-weight: 600;
930
+ cursor: pointer;
931
+ background: var(--muted, #f4f4f5);
932
+ transition: background 0.15s ease;
933
+ }
934
+ .qti-stimulus-body summary:hover {
935
+ background: var(--accent, #e5e5e5);
936
+ }
937
+ .qti-stimulus-body details[open] summary {
938
+ border-bottom: 1px solid var(--border, #e5e5e5);
939
+ }
940
+ .qti-stimulus-body details > *:not(summary) {
941
+ padding: 0 1.25rem;
942
+ }
943
+ .qti-stimulus-body details > p:first-of-type {
944
+ margin-top: 1rem;
945
+ }
946
+ .qti-stimulus-body details > *:last-child {
947
+ margin-bottom: 1rem;
948
+ }
413
949
  /*# sourceMappingURL=themes.css.map */