@pocketprep/ui-kit 3.4.56 → 3.4.58

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.
@@ -45,7 +45,7 @@ import { dark } from '../../directives'
45
45
 
46
46
  type TButtonType = 'primary' | 'primary-yellow' | 'primary-red' | 'secondary'
47
47
  | 'secondary-yellow-dark' | 'tertiary' | 'tertiary-red' | 'tertiary-small' | 'tertiary-red-small' | 'icon'
48
- | 'icon-yellow'
48
+ | 'icon-yellow' | 'outline'
49
49
 
50
50
  @Component({
51
51
  components: {
@@ -115,6 +115,7 @@ export default class Button extends Vue {
115
115
  &--primary,
116
116
  &--primary-yellow,
117
117
  &--primary-red,
118
+ &--outline,
118
119
  &--secondary,
119
120
  &--secondary-yellow-dark {
120
121
  font-size: 15px;
@@ -142,7 +143,7 @@ export default class Button extends Vue {
142
143
  }
143
144
 
144
145
  &--dark:enabled:focus::before {
145
- border-color: $butterscotch;
146
+ border-color: $banana-bread;
146
147
  }
147
148
  }
148
149
 
@@ -233,6 +234,48 @@ export default class Button extends Vue {
233
234
  }
234
235
  }
235
236
 
237
+ &--outline {
238
+ background-color: $white;
239
+ color: $brand-blue;
240
+ font-size: 15px;
241
+ font-weight: 600;
242
+ border: 1px solid $brand-blue;
243
+
244
+ &:enabled {
245
+ &:hover,
246
+ &:active {
247
+ background-color: $pearl;
248
+ }
249
+
250
+ &:focus::before {
251
+ content: '';
252
+ position: absolute;
253
+ top: -3px;
254
+ bottom: -3px;
255
+ left: -3px;
256
+ right: -3px;
257
+ border-radius: 6px;
258
+ }
259
+ }
260
+
261
+ &:disabled {
262
+ opacity: 0.4;
263
+ }
264
+
265
+ &--dark {
266
+ background-color: $charcoal;
267
+ color: $banana-bread;
268
+ border-color: $banana-bread;
269
+
270
+ &:enabled {
271
+ &:hover,
272
+ &:active {
273
+ background-color: $mariner;
274
+ }
275
+ }
276
+ }
277
+ }
278
+
236
279
  &--secondary {
237
280
  background-color: transparent;
238
281
  color: $brand-blue;
@@ -43,6 +43,7 @@
43
43
  >
44
44
  <slot name="radioItem" :item="item">
45
45
  <RadioButton
46
+ class="uikit-radio__item-btn"
46
47
  :selected="!!(modelValue && item.value === modelValue.value)"
47
48
  :disabled="!!(disabled || item.disabled)"
48
49
  :isDarkMode="isDarkMode"
@@ -248,66 +249,8 @@ export default class Radio extends Vue {
248
249
  }
249
250
 
250
251
  &__item-btn {
251
- width: 18px;
252
- height: 18px;
252
+ min-width: 18px;
253
253
  margin-right: 12px;
254
- border: 1px solid $steel;
255
- background: $white;
256
- border-radius: 18px;
257
- position: relative;
258
- box-sizing: border-box;
259
-
260
- &::before {
261
- content: '';
262
- position: absolute;
263
- left: 50%;
264
- top: 50%;
265
- transform: translate(-50%, -50%);
266
- width: 12px;
267
- height: 12px;
268
- border-radius: 12px;
269
- background: $brand-blue;
270
- display: none;
271
- }
272
-
273
- &--dark {
274
- background-color: transparent;
275
- border-color: $pewter;
276
-
277
- &::before {
278
- background: $banana-bread;
279
- }
280
- }
281
-
282
- &--disabled {
283
- background-color: $fog;
284
- opacity: 0.6;
285
- border-color: rgba($steel, 0.6);
286
-
287
- &--dark {
288
- background-color: $moonlit-ocean;
289
- border-color: $slate;
290
- opacity: 1;
291
- }
292
- }
293
-
294
- &--selected {
295
- border-color: $brand-blue;
296
- background: transparent;
297
-
298
- &--dark {
299
- border-color: $banana-bread;
300
- }
301
-
302
- &--disabled {
303
- opacity: 0.4;
304
-
305
- }
306
-
307
- &::before {
308
- display: block;
309
- }
310
- }
311
254
  }
312
255
  }
313
256
  </style>
@@ -171,7 +171,10 @@
171
171
  @click="handleClick"
172
172
  >
173
173
  <template #explanationTopExperiment>
174
- <slot name="explanationTopExperiment"></slot>
174
+ <slot name="explanationTopExperiment" />
175
+ </template>
176
+ <template #explanationBottomExperiment>
177
+ <slot name="explanationBottomExperiment" />
175
178
  </template>
176
179
  </DropdownExplanation>
177
180
  </div>
@@ -65,6 +65,7 @@
65
65
  <span class="uikit-question-dropdown-explanation__dropdown-reference-label">Reference: </span>
66
66
  <div v-html="reference" />
67
67
  </div>
68
+ <slot name="explanationBottomExperiment" />
68
69
  </div>
69
70
  </template>
70
71
 
@@ -13,7 +13,7 @@
13
13
  >
14
14
  Explanation Details
15
15
  </div>
16
- <slot name="explanationTopExperiment"></slot>
16
+ <slot name="explanationTopExperiment" />
17
17
  <div
18
18
  v-dark="isDarkMode"
19
19
  v-breakpoint:questionEl="breakpoints"
@@ -70,6 +70,7 @@
70
70
  <span class="uikit-question-explanation__reference-label">Reference: </span>
71
71
  <div v-html="reference" />
72
72
  </div>
73
+ <slot name="explanationBottomExperiment" />
73
74
  <div
74
75
  v-if="!reviewMode"
75
76
  v-dark="isDarkMode"
@@ -49,7 +49,7 @@
49
49
  class="uikit-question-matrix-choices-container__choices"
50
50
  :class="{
51
51
  'uikit-question-matrix-choices-container__choices--two-columns':
52
- numberOfMatrixColumnLabels === 2
52
+ numberOfMatrixColumnLabels === 2
53
53
  }"
54
54
  v-dark="isDarkMode"
55
55
  v-breakpoint:questionEl="breakpoints"
@@ -60,7 +60,7 @@
60
60
  class="uikit-question-matrix-choices-container__choice-text"
61
61
  :class="{
62
62
  'uikit-question-matrix-choices-container__choice-text--two-columns':
63
- numberOfMatrixColumnLabels === 2
63
+ numberOfMatrixColumnLabels === 2
64
64
  }"
65
65
  v-dark="isDarkMode"
66
66
  v-breakpoint:questionEl="breakpoints"
@@ -90,20 +90,33 @@
90
90
  :is-dark-mode="isDarkMode"
91
91
  :disabled="showMatrixAnswers || reviewMode"
92
92
  :checkbox-check-styles="checkboxCheckStyling(rowIndex, columnIndex)"
93
- />
94
- <Checkbox
95
- v-else
96
- v-model="matrixCheckboxGrid[rowIndex][columnIndex]"
97
- :is-dark-mode="isDarkMode"
98
- :disabled="showMatrixAnswers || reviewMode"
99
93
  :checkbox-styles="checkboxContainerStyling(rowIndex, columnIndex)"
100
94
  />
95
+ <div
96
+ v-else
97
+ class="uikit-question-matrix-choices-container__clickable-checkbox"
98
+ :class="{
99
+ 'uikit-question-matrix-choices-container__clickable-checkbox--review':
100
+ showMatrixAnswers || reviewMode
101
+ }"
102
+ @click="!(showMatrixAnswers || reviewMode) && checkboxClicked(rowIndex, columnIndex)"
103
+ @keypress.enter="!(showMatrixAnswers || reviewMode) &&
104
+ checkboxClicked(rowIndex, columnIndex)"
105
+ >
106
+ <Checkbox
107
+ :model-value="matrixCheckboxGrid[rowIndex][columnIndex]"
108
+ :is-dark-mode="isDarkMode"
109
+ :disabled="showMatrixAnswers || reviewMode"
110
+ :checkbox-styles="checkboxContainerStyling(rowIndex, columnIndex)"
111
+ />
112
+ </div>
101
113
  <Icon
102
114
  v-if="
103
115
  (showMatrixAnswers || reviewMode) &&
104
116
  (incorrectlySelectedChoice(rowIndex, columnIndex) ||
105
117
  correctAnswerButNotSelected(rowIndex, columnIndex))"
106
118
  class="uikit-question-matrix-choices-container__incorrect-answer-icon"
119
+ v-dark="isDarkMode"
107
120
  type="incorrect"
108
121
  />
109
122
  </div>
@@ -130,11 +143,13 @@
130
143
  <template v-if="optionIcon.isVisible">
131
144
  <Icon
132
145
  v-if="optionIcon.isCorrect"
146
+ v-dark="isDarkMode"
133
147
  type="correct"
134
148
  class="uikit-question-matrix-choices-container__correct-answer-icon"
135
149
  />
136
150
  <Icon
137
151
  v-else
152
+ v-dark="isDarkMode"
138
153
  type="incorrect"
139
154
  class="uikit-question-matrix-choices-container__incorrect-answer-icon"
140
155
  />
@@ -333,6 +348,13 @@ export default class MatrixChoicesContainer extends Vue {
333
348
  border: `1px solid ${this.brandColors.steel} !important`,
334
349
  }
335
350
  }
351
+
352
+ if (isReviewMode && this.correctAnswerButNotSelected(rowIndex, columnIndex)) {
353
+ return {
354
+ background: 'transparent !important',
355
+ border: `1px solid ${this.brandColors.slate} !important`,
356
+ }
357
+ }
336
358
  }
337
359
 
338
360
  checkboxCheckStyling (rowIndex: number, columnIndex: number) {
@@ -345,6 +367,12 @@ export default class MatrixChoicesContainer extends Vue {
345
367
  }
346
368
  }
347
369
 
370
+ checkboxClicked (rowIndex: number, columnIndex: number) {
371
+ if (this.matrixCheckboxGrid && this.matrixCheckboxGrid[rowIndex]) {
372
+ this.matrixCheckboxGrid[rowIndex][columnIndex] = !this.matrixCheckboxGrid[rowIndex][columnIndex]
373
+ }
374
+ }
375
+
348
376
  @Emit('emitSelectedMatrixChoice')
349
377
  emitSelectedMatrixChoice (matrixChoiceKeys: TMatrixChoiceKey[]) {
350
378
  return matrixChoiceKeys
@@ -426,7 +454,7 @@ export default class MatrixChoicesContainer extends Vue {
426
454
  &__columns {
427
455
  display: flex;
428
456
  padding: 0px 1px 0px 14px;
429
- align-items: center;
457
+ align-items: flex-end;
430
458
  width: 100%;
431
459
  height: 32px;
432
460
  margin-bottom: 16px;
@@ -464,7 +492,7 @@ export default class MatrixChoicesContainer extends Vue {
464
492
  hyphens: auto;
465
493
 
466
494
  &:not(:last-child) {
467
- margin-right: 8px;
495
+ margin-right: 11px;
468
496
  }
469
497
 
470
498
  &--tablet-landscape {
@@ -473,6 +501,12 @@ export default class MatrixChoicesContainer extends Vue {
473
501
  }
474
502
  }
475
503
 
504
+ &--tablet-portrait {
505
+ &:not(:last-child) {
506
+ margin-right: 14px;
507
+ }
508
+ }
509
+
476
510
  &--two-columns {
477
511
  &:not(:last-child) {
478
512
  margin-right: 24px;
@@ -533,7 +567,7 @@ export default class MatrixChoicesContainer extends Vue {
533
567
  padding: 12px 10px 12px 14px;
534
568
  position: relative;
535
569
  transition: 0.1s padding ease;
536
- align-items: center;
570
+ align-items: flex-start;
537
571
  gap: 16px;
538
572
  margin-bottom: 9px;
539
573
 
@@ -586,7 +620,6 @@ export default class MatrixChoicesContainer extends Vue {
586
620
  &__checkbox {
587
621
  width: 56px;
588
622
  display: flex;
589
- align-items: center;
590
623
 
591
624
  &--two-columns {
592
625
  width: 80px;
@@ -597,18 +630,46 @@ export default class MatrixChoicesContainer extends Vue {
597
630
  }
598
631
  }
599
632
 
633
+ &__clickable-checkbox {
634
+ width: 36px;
635
+ height: 36px;
636
+ cursor: pointer;
637
+ display: flex;
638
+ align-items: center;
639
+ justify-content: center;
640
+ margin-top: -8px;
641
+ margin-left: -8px;
642
+
643
+ &--review {
644
+ cursor: default;
645
+ display: block;
646
+ margin-top: 0;
647
+ margin-left: 0;
648
+ width: 20px;
649
+ }
650
+ }
651
+
600
652
  &__correct-answer-icon {
601
653
  margin-left: 6px;
602
654
  width: 21px;
603
655
  height: 22px;
604
656
  color: $cadaverous;
657
+
658
+ &--dark {
659
+ color: $jungle-green;
660
+ }
605
661
  }
606
662
 
607
663
  &__incorrect-answer-icon {
608
664
  margin-left: 6px;
665
+ margin-top: -2px;
609
666
  width: 21px;
610
667
  height: 22px;
611
668
  color: $pepper;
669
+
670
+ &--dark {
671
+ color: $rosa;
672
+ }
612
673
  }
613
674
  }
614
675
  </style>
@@ -34,11 +34,13 @@
34
34
  >
35
35
  <Icon
36
36
  v-if="(showMatrixAnswers || reviewMode) && correctRow(rowIndex)"
37
+ v-dark="isDarkMode"
37
38
  class="uikit-question-mobile-matrix-choices-container__row-label-correct-icon"
38
39
  type="check"
39
40
  />
40
41
  <Icon
41
42
  v-if="(showMatrixAnswers || reviewMode) && !correctRow(rowIndex)"
43
+ v-dark="isDarkMode"
42
44
  class="uikit-question-mobile-matrix-choices-container__row-label-incorrect-icon"
43
45
  type="incorrect"
44
46
  />
@@ -80,7 +82,6 @@
80
82
  stripText(selectedColumnHeaders[rowIndex][colHeaderIndex]) :
81
83
  `${stripText(selectedColumnHeaders[rowIndex][colHeaderIndex])},`
82
84
  }}
83
-
84
85
  </div>
85
86
  </template>
86
87
  </div>
@@ -98,6 +99,8 @@
98
99
  v-dark="isDarkMode"
99
100
  v-for="(column, columnIndex) in matrixColumnLabels"
100
101
  :key="columnIndex"
102
+ @click="checkboxRowClicked(rowIndex, columnIndex)"
103
+ @keypress.enter="checkboxRowClicked(rowIndex, columnIndex)"
101
104
  >
102
105
  <Checkbox
103
106
  v-if="(showMatrixAnswers || reviewMode) &&
@@ -106,10 +109,11 @@
106
109
  :is-dark-mode="isDarkMode"
107
110
  :disabled="showMatrixAnswers || reviewMode"
108
111
  :checkbox-check-styles="checkboxCheckStyling(rowIndex, columnIndex)"
112
+ :checkbox-styles="checkboxContainerStyling(rowIndex, columnIndex)"
109
113
  />
110
114
  <Checkbox
111
115
  v-else
112
- v-model="matrixCheckboxGrid[rowIndex][columnIndex]"
116
+ :model-value="matrixCheckboxGrid[rowIndex][columnIndex]"
113
117
  :is-dark-mode="isDarkMode"
114
118
  :disabled="showMatrixAnswers || reviewMode"
115
119
  :checkbox-styles="checkboxContainerStyling(rowIndex, columnIndex)"
@@ -251,9 +255,9 @@ export default class MobileMatrixChoicesContainer extends Vue {
251
255
  }
252
256
  }
253
257
 
254
- selectedChoiceKey (rowIndex: number, colIndex: number) {
258
+ selectedChoiceKey (rowIndex: number, columnIndex: number) {
255
259
  const row = rowIndex += 1
256
- const column = colIndex += 1
260
+ const column = columnIndex += 1
257
261
  if (this.selectedMatrixChoices.length && this.matrixAnswerKeys.length) {
258
262
  const matrixSelectedChoiceKey = this.selectedMatrixChoices.find((choice) => {
259
263
  const substring = choice.substring(1)
@@ -289,9 +293,9 @@ export default class MobileMatrixChoicesContainer extends Vue {
289
293
  }
290
294
  }
291
295
 
292
- correctlySelectedChoice (rowIndex: number, colIndex: number) {
296
+ correctlySelectedChoice (rowIndex: number, columnIndex: number) {
293
297
  if (this.selectedMatrixChoices && this.matrixAnswerKeys) {
294
- const selectedChoice = this.selectedChoiceKey(rowIndex, colIndex)
298
+ const selectedChoice = this.selectedChoiceKey(rowIndex, columnIndex)
295
299
  if (selectedChoice && selectedChoice.startsWith('a') && this.matrixAnswerKeys.includes(selectedChoice)) {
296
300
  return true
297
301
  }
@@ -299,9 +303,9 @@ export default class MobileMatrixChoicesContainer extends Vue {
299
303
  return false
300
304
  }
301
305
 
302
- incorrectlySelectedChoice (rowIndex: number, colIndex: number) {
306
+ incorrectlySelectedChoice (rowIndex: number, columnIndex: number) {
303
307
  if (this.selectedMatrixChoices && this.matrixAnswerKeys) {
304
- const selectedChoice = this.selectedChoiceKey(rowIndex, colIndex)
308
+ const selectedChoice = this.selectedChoiceKey(rowIndex, columnIndex)
305
309
  if (selectedChoice && selectedChoice.startsWith('d')) {
306
310
  return true
307
311
  }
@@ -309,9 +313,9 @@ export default class MobileMatrixChoicesContainer extends Vue {
309
313
  return false
310
314
  }
311
315
 
312
- correctAnswerButNotSelected (rowIndex: number, colIndex: number) {
313
- const selectedChoice = this.selectedChoiceKey(rowIndex, colIndex)
314
- const answerKey = this.matrixAnswerKeys.find(choice => choice === `a${rowIndex + 1}_${colIndex + 1}`)
316
+ correctAnswerButNotSelected (rowIndex: number, columnIndex: number) {
317
+ const selectedChoice = this.selectedChoiceKey(rowIndex, columnIndex)
318
+ const answerKey = this.matrixAnswerKeys.find(choice => choice === `a${rowIndex + 1}_${columnIndex + 1}`)
315
319
  return answerKey && !selectedChoice
316
320
  }
317
321
 
@@ -334,6 +338,13 @@ export default class MobileMatrixChoicesContainer extends Vue {
334
338
  border: `1px solid ${this.brandColors.steel} !important`,
335
339
  }
336
340
  }
341
+
342
+ if (isReviewMode && this.correctAnswerButNotSelected(rowIndex, columnIndex)) {
343
+ return {
344
+ background: 'transparent !important',
345
+ border: `1px solid ${this.brandColors.slate} !important`,
346
+ }
347
+ }
337
348
  }
338
349
 
339
350
  checkboxCheckStyling (rowIndex: number, columnIndex: number) {
@@ -386,11 +397,11 @@ export default class MobileMatrixChoicesContainer extends Vue {
386
397
  const checkboxGrid = this.defaultCheckboxGrid
387
398
  this.selectedMatrixChoices.forEach(choice => {
388
399
  const rowIndex = Number(choice.substring(1, choice.indexOf('_'))) - 1
389
- const colIndex = Number(choice.split('_').pop()) - 1
400
+ const columnIndex = Number(choice.split('_').pop()) - 1
390
401
  if (checkboxGrid && checkboxGrid[rowIndex]) {
391
- checkboxGrid[rowIndex][colIndex] = true
392
- if (this.selectedColumnHeaders[rowIndex] && this.question.matrixLabels?.columns[colIndex]) {
393
- const columnHeader = this.question.matrixLabels?.columns[colIndex]
402
+ checkboxGrid[rowIndex][columnIndex] = true
403
+ if (this.selectedColumnHeaders[rowIndex] && this.question.matrixLabels?.columns[columnIndex]) {
404
+ const columnHeader = this.question.matrixLabels?.columns[columnIndex]
394
405
  this.selectedColumnHeaders[rowIndex].push(columnHeader)
395
406
  }
396
407
  }
@@ -402,9 +413,9 @@ export default class MobileMatrixChoicesContainer extends Vue {
402
413
  const radioBtnGrid = this.matrixRadioGrid
403
414
  this.selectedMatrixChoices.forEach(choice => {
404
415
  const rowIndex = Number(choice.substring(1, choice.indexOf('_'))) - 1
405
- const colIndex = Number(choice.split('_').pop()) - 1
406
- if (this.selectedColumnHeaders[rowIndex] && this.question.matrixLabels?.columns[colIndex]) {
407
- const columnHeader = this.question.matrixLabels?.columns[colIndex]
416
+ const columnIndex = Number(choice.split('_').pop()) - 1
417
+ if (this.selectedColumnHeaders[rowIndex] && this.question.matrixLabels?.columns[columnIndex]) {
418
+ const columnHeader = this.question.matrixLabels?.columns[columnIndex]
408
419
  this.selectedColumnHeaders[rowIndex].push(columnHeader)
409
420
  }
410
421
  if (radioBtnGrid && radioBtnGrid[rowIndex]) {
@@ -414,6 +425,12 @@ export default class MobileMatrixChoicesContainer extends Vue {
414
425
  return radioBtnGrid
415
426
  }
416
427
 
428
+ checkboxRowClicked (rowIndex: number, columnIndex: number) {
429
+ if (this.matrixCheckboxGrid && this.matrixCheckboxGrid[rowIndex]) {
430
+ this.matrixCheckboxGrid[rowIndex][columnIndex] = !this.matrixCheckboxGrid[rowIndex][columnIndex]
431
+ }
432
+ }
433
+
417
434
  @Emit('emitSelectedMatrixChoice')
418
435
  emitSelectedMatrixChoice (matrixChoiceKeys: TMatrixChoiceKey[]) {
419
436
  return matrixChoiceKeys
@@ -529,7 +546,7 @@ export default class MobileMatrixChoicesContainer extends Vue {
529
546
  }
530
547
 
531
548
  &__choices-container {
532
- cursor: default;
549
+ cursor: pointer;
533
550
  position: relative;
534
551
  outline: none;
535
552
  transition: 0.1s width ease;
@@ -604,6 +621,8 @@ export default class MobileMatrixChoicesContainer extends Vue {
604
621
 
605
622
  &__row-label-correct-icon,
606
623
  &__row-label-incorrect-icon {
624
+ width: 21px;
625
+ height: 22px;
607
626
  position: absolute;
608
627
  right: 0;
609
628
  margin-right: 12px;
@@ -4,6 +4,9 @@
4
4
  v-breakpoint:questionEl="breakpoints"
5
5
  ref="uikit-question-summary"
6
6
  class="uikit-question-summary"
7
+ :class="{
8
+ 'uikit-question-summary--matrix-question-review-mode': isMatrixQuestion && reviewMode,
9
+ }"
7
10
  >
8
11
  <div class="uikit-question-summary__summary-title">
9
12
  {{ isQuestionCorrect ? 'Correct': isUnanswered ? 'Unanswered' : 'Incorrect' }}
@@ -37,6 +40,10 @@
37
40
  v-breakpoint:questionEl="breakpoints"
38
41
  ref="uikit-question-summary__summary-dropdown-explanation"
39
42
  class="uikit-question-summary__summary-dropdown-explanation"
43
+ :class="{
44
+ 'uikit-question-summary__summary-dropdown-explanation--matrix-question-review-mode':
45
+ isMatrixQuestion && reviewMode,
46
+ }"
40
47
  >
41
48
  <slot name="explanationTopExperiment"></slot>
42
49
  <div
@@ -96,6 +103,7 @@
96
103
  <span class="uikit-question-summary__summary-dropdown-reference-label">Reference: </span>
97
104
  <div v-html="reference" />
98
105
  </div>
106
+ <slot name="explanationBottomExperiment" />
99
107
  </div>
100
108
  <Icon
101
109
  v-if="isQuestionCorrect"
@@ -200,6 +208,10 @@ export default class Summary extends Vue {
200
208
  box-shadow: 0 1px 4px 0 rgba($jet, 0.3);
201
209
  }
202
210
 
211
+ &--matrix-question-review-mode#{&}--tablet-landscape {
212
+ display: inline-block;
213
+ }
214
+
203
215
  &--tablet-portrait {
204
216
  display: inline-block;
205
217
  }
@@ -289,6 +301,10 @@ export default class Summary extends Vue {
289
301
  &__summary-dropdown-explanation {
290
302
  display: none;
291
303
 
304
+ &--matrix-question-review-mode#{&}--tablet-landscape {
305
+ display: inline-block;
306
+ }
307
+
292
308
  &--tablet-portrait {
293
309
  display: block;
294
310
  }
@@ -31,6 +31,7 @@
31
31
  'uikit-question__main--show-side': (showExplanation && !showPaywall) || showPassageAndImage,
32
32
  'uikit-question__main--unanswered': showAnswers && !isMCR && isUnanswered && !isCorrect,
33
33
  'uikit-question__main--mcr': isMCR,
34
+ 'uikit-question__main--matrix-question-review-mode': isMatrixQuestion && reviewMode,
34
35
  }"
35
36
  >
36
37
  <slot name="context">
@@ -230,6 +231,9 @@
230
231
  :choiceKey="choiceKey"
231
232
  />
232
233
  </template>
234
+ <template #explanationBottomExperiment>
235
+ <slot name="explanationBottomExperiment" />
236
+ </template>
233
237
  </ChoicesContainer>
234
238
  <MatrixChoicesContainer
235
239
  v-if="question.type === 'Matrix Checkbox' || question.type === 'Matrix Radio Button'"
@@ -339,6 +343,9 @@
339
343
  <template #explanationTopExperiment>
340
344
  <slot name="explanationTopExperiment"></slot>
341
345
  </template>
346
+ <template #explanationBottomExperiment>
347
+ <slot name="explanationBottomExperiment" />
348
+ </template>
342
349
  </Summary>
343
350
  <slot name="metricsTiles">
344
351
  <StatsSummary
@@ -388,8 +395,8 @@
388
395
  Check Answer
389
396
  </PocketButton>
390
397
  <PocketButton
391
- v-if="!showMatrixAnswers && !hideAnswer && isMatrixQuestion && allMatrixRowsAreAnswered"
392
- :disabled="!selectedMatrixChoices.length"
398
+ v-else-if="isMatrixQuestion && !showMatrixAnswers && !hideAnswer"
399
+ :disabled="!allMatrixRowsAreAnswered"
393
400
  :is-dark-mode="isDarkMode"
394
401
  @click="clickCheckMatrixAnswer"
395
402
  >
@@ -426,6 +433,7 @@
426
433
  class="uikit-question__right-side"
427
434
  :class="{
428
435
  'uikit-question__right-side--explanation': showExplanation && !showPaywall,
436
+ 'uikit-question__right-side--matrix-question-review-mode': isMatrixQuestion && reviewMode,
429
437
  }"
430
438
  >
431
439
  <PassageAndImage
@@ -469,6 +477,9 @@
469
477
  <template #explanationTopExperiment>
470
478
  <slot name="explanationTopExperiment"></slot>
471
479
  </template>
480
+ <template #explanationBottomExperiment>
481
+ <slot name="explanationBottomExperiment" />
482
+ </template>
472
483
  </Explanation>
473
484
  </div>
474
485
  </div>
@@ -1552,6 +1563,11 @@ export default class Question extends Vue {
1552
1563
  overflow-y: visible;
1553
1564
  padding: 0 17px;
1554
1565
  }
1566
+
1567
+ &--matrix-question-review-mode#{&}--tablet-landscape:not(&--tablet-portrait) {
1568
+ width: 100%;
1569
+ padding-right: 0;
1570
+ }
1555
1571
  }
1556
1572
 
1557
1573
  &__right-side {
@@ -1567,6 +1583,10 @@ export default class Question extends Vue {
1567
1583
  display: none;
1568
1584
  }
1569
1585
 
1586
+ &--matrix-question-review-mode#{&}--tablet-landscape {
1587
+ display: none;
1588
+ }
1589
+
1570
1590
  &--explanation {
1571
1591
  padding-top: 58px;
1572
1592
  padding-right: 11px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pocketprep/ui-kit",
3
- "version": "3.4.56",
3
+ "version": "3.4.58",
4
4
  "description": "Pocket Prep UI Kit",
5
5
  "author": "pocketprep",
6
6
  "scripts": {