eat-js-sdk 2.1.8 → 2.2.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.
- package/dist/interaction-builder.mjs +980 -239
- package/package.json +2 -2
|
@@ -5103,7 +5103,19 @@ const INTERACTION_TYPES = {
|
|
|
5103
5103
|
MCQ: "multipleChoiceInteraction",
|
|
5104
5104
|
TYPEIN: "typeInInteraction",
|
|
5105
5105
|
CATEGORISE: "categoriseInteraction",
|
|
5106
|
-
DROPDOWN: "dropdownInteraction"
|
|
5106
|
+
DROPDOWN: "dropdownInteraction",
|
|
5107
|
+
SELECTABLE_TEXT: "selectableTextInteraction"
|
|
5108
|
+
};
|
|
5109
|
+
const mapAPIToInteractionType = (apiType) => {
|
|
5110
|
+
const { MCQ, CATEGORISE: CATEGORISE2, TYPEIN, DROPDOWN, SELECTABLE_TEXT } = INTERACTION_TYPES;
|
|
5111
|
+
const typeMap = {
|
|
5112
|
+
[MCQ]: "mcq",
|
|
5113
|
+
[CATEGORISE2]: "categorise",
|
|
5114
|
+
[TYPEIN]: "typein",
|
|
5115
|
+
[DROPDOWN]: "dropdown",
|
|
5116
|
+
[SELECTABLE_TEXT]: "selectableText"
|
|
5117
|
+
};
|
|
5118
|
+
return typeMap[apiType] ?? null;
|
|
5107
5119
|
};
|
|
5108
5120
|
const ANSWER_RESULTS = {
|
|
5109
5121
|
CORRECT: "correct",
|
|
@@ -5127,15 +5139,6 @@ const DROPDOWN_INTERACTION = {
|
|
|
5127
5139
|
RESIZE_DEBOUNCE_DELAY: 150,
|
|
5128
5140
|
EMPTY_CHOICE: ""
|
|
5129
5141
|
};
|
|
5130
|
-
const INTERACTION_TYPE_MAP = {
|
|
5131
|
-
[INTERACTION_TYPES.MCQ]: "mcq",
|
|
5132
|
-
[INTERACTION_TYPES.CATEGORISE]: "categorise",
|
|
5133
|
-
[INTERACTION_TYPES.TYPEIN]: "typein",
|
|
5134
|
-
[INTERACTION_TYPES.DROPDOWN]: "dropdown"
|
|
5135
|
-
};
|
|
5136
|
-
function mapInteractionType(legacyType) {
|
|
5137
|
-
return INTERACTION_TYPE_MAP[legacyType] ?? legacyType;
|
|
5138
|
-
}
|
|
5139
5142
|
const ALIGNMENT = {
|
|
5140
5143
|
DEFAULT: "default",
|
|
5141
5144
|
INLINE: "inline"
|
|
@@ -5173,10 +5176,9 @@ const loadData = async (sessionId, itemId, mode) => {
|
|
|
5173
5176
|
throw new Error("No session ID or item ID provided");
|
|
5174
5177
|
};
|
|
5175
5178
|
const loadPreviewData = async (itemId, mode) => {
|
|
5176
|
-
|
|
5177
|
-
const
|
|
5178
|
-
|
|
5179
|
-
if (mode === MODES.INTERACTIVE) {
|
|
5179
|
+
let includeAnswer = `?include=[html_tags,correct_answer]`;
|
|
5180
|
+
const isInteractive = mode === MODES.INTERACTIVE;
|
|
5181
|
+
if (isInteractive) {
|
|
5180
5182
|
includeAnswer = "?include=[html_tags,correct_answer,unpublished]&is_contentful_preview=true";
|
|
5181
5183
|
}
|
|
5182
5184
|
const { data } = await useGet(`items/${itemId}${includeAnswer}`);
|
|
@@ -5184,78 +5186,58 @@ const loadPreviewData = async (itemId, mode) => {
|
|
|
5184
5186
|
return {
|
|
5185
5187
|
...data,
|
|
5186
5188
|
mode,
|
|
5187
|
-
isFinished,
|
|
5188
|
-
isLocked,
|
|
5189
|
+
isFinished: !isInteractive,
|
|
5190
|
+
isLocked: !isInteractive,
|
|
5189
5191
|
scoringMetadata
|
|
5190
5192
|
};
|
|
5191
5193
|
};
|
|
5192
5194
|
const generatePreviewScoringMetadata = (data) => {
|
|
5193
|
-
if (!data.interaction) return null;
|
|
5194
5195
|
const { interaction } = data;
|
|
5195
|
-
const { type
|
|
5196
|
-
if (type === "multipleChoiceInteraction"
|
|
5197
|
-
const
|
|
5196
|
+
const { type } = interaction;
|
|
5197
|
+
if (type === "multipleChoiceInteraction") {
|
|
5198
|
+
const mcqInteraction = interaction;
|
|
5199
|
+
const options = mcqInteraction.options;
|
|
5200
|
+
const mcqCorrectAnswerIds = [];
|
|
5198
5201
|
Object.values(options).forEach((option) => {
|
|
5199
5202
|
if (option.correct_choice === true) {
|
|
5200
|
-
|
|
5203
|
+
mcqCorrectAnswerIds.push(option.id);
|
|
5201
5204
|
}
|
|
5202
5205
|
});
|
|
5203
5206
|
return {
|
|
5204
|
-
|
|
5205
|
-
correctAnswerIds,
|
|
5206
|
-
answerIds: [],
|
|
5207
|
-
// No student answers in preview
|
|
5208
|
-
interactionType: type
|
|
5207
|
+
correctAnswerIds: mcqCorrectAnswerIds
|
|
5209
5208
|
};
|
|
5210
5209
|
}
|
|
5211
5210
|
if (type === "typeInInteraction") {
|
|
5212
|
-
const
|
|
5213
|
-
const
|
|
5214
|
-
|
|
5215
|
-
|
|
5216
|
-
|
|
5217
|
-
|
|
5218
|
-
|
|
5219
|
-
|
|
5220
|
-
|
|
5221
|
-
|
|
5222
|
-
|
|
5223
|
-
} else {
|
|
5224
|
-
if (Array.isArray(correctAnswer) && correctAnswer.length > 0) {
|
|
5225
|
-
const firstAnswerObj = correctAnswer[0];
|
|
5226
|
-
if (typeof firstAnswerObj === "object" && firstAnswerObj !== null && !Array.isArray(firstAnswerObj)) {
|
|
5227
|
-
if (Array.isArray(firstAnswerObj.sample_answer) && firstAnswerObj.sample_answer.length > 0) {
|
|
5228
|
-
answer = [firstAnswerObj.sample_answer[0]];
|
|
5229
|
-
} else if (Array.isArray(firstAnswerObj.patterns) && firstAnswerObj.patterns.length > 0) {
|
|
5230
|
-
answer = [firstAnswerObj.patterns[0]];
|
|
5231
|
-
} else {
|
|
5232
|
-
answer = [""];
|
|
5211
|
+
const typeInInteraction = interaction;
|
|
5212
|
+
const typeinCorrectAnswer = typeInInteraction.correct_answer || [];
|
|
5213
|
+
const typeinType = typeInInteraction.typein_type.toLowerCase();
|
|
5214
|
+
let typeinAnswer = [];
|
|
5215
|
+
const shortAndInlineAnswer = Array.isArray(typeinCorrectAnswer) && typeinCorrectAnswer.length > 0 && Array.isArray(typeinCorrectAnswer[0]);
|
|
5216
|
+
if (shortAndInlineAnswer) {
|
|
5217
|
+
const isInline = typeinType === "inline text";
|
|
5218
|
+
if (isInline) {
|
|
5219
|
+
for (const blankAnswers of typeinCorrectAnswer) {
|
|
5220
|
+
if (Array.isArray(blankAnswers) && blankAnswers.length > 0) {
|
|
5221
|
+
typeinAnswer.push(blankAnswers[0]);
|
|
5233
5222
|
}
|
|
5234
|
-
} else if (Array.isArray(firstAnswerObj)) {
|
|
5235
|
-
answer = [firstAnswerObj[0] || ""];
|
|
5236
|
-
} else {
|
|
5237
|
-
answer = [String(firstAnswerObj || "")];
|
|
5238
5223
|
}
|
|
5224
|
+
} else {
|
|
5225
|
+
typeinAnswer = [typeinCorrectAnswer[0][0]];
|
|
5239
5226
|
}
|
|
5227
|
+
} else {
|
|
5228
|
+
typeinAnswer = typeinCorrectAnswer[0].sample_answer;
|
|
5240
5229
|
}
|
|
5241
5230
|
return {
|
|
5242
|
-
|
|
5243
|
-
|
|
5244
|
-
correct_answer: correctAnswer,
|
|
5245
|
-
interactionType: type
|
|
5231
|
+
answer: typeinAnswer,
|
|
5232
|
+
correct_answer: typeinCorrectAnswer
|
|
5246
5233
|
};
|
|
5247
5234
|
}
|
|
5248
5235
|
if (type === "categoriseInteraction") {
|
|
5249
|
-
const
|
|
5250
|
-
|
|
5251
|
-
return {
|
|
5252
|
-
hasAnswer: false,
|
|
5253
|
-
interactionType: type
|
|
5254
|
-
};
|
|
5255
|
-
}
|
|
5236
|
+
const categoriseInteraction = interaction;
|
|
5237
|
+
const categoriseCorrectAnswer = categoriseInteraction.correct_answer;
|
|
5256
5238
|
const answerList = {};
|
|
5257
|
-
|
|
5258
|
-
const matchingCategory =
|
|
5239
|
+
categoriseCorrectAnswer?.forEach((entry) => {
|
|
5240
|
+
const matchingCategory = categoriseInteraction.category_groups.find(
|
|
5259
5241
|
(cat) => cat.name === entry.category_name || cat.id === entry.id
|
|
5260
5242
|
);
|
|
5261
5243
|
if (matchingCategory && entry.correct_answer_list && Array.isArray(entry.correct_answer_list)) {
|
|
@@ -5270,30 +5252,33 @@ const generatePreviewScoringMetadata = (data) => {
|
|
|
5270
5252
|
answerList[matchingCategory.id] = itemIds;
|
|
5271
5253
|
}
|
|
5272
5254
|
});
|
|
5273
|
-
return {
|
|
5274
|
-
hasAnswer: true,
|
|
5275
|
-
answerList,
|
|
5276
|
-
interactionType: type
|
|
5277
|
-
};
|
|
5255
|
+
return { answerList };
|
|
5278
5256
|
}
|
|
5279
|
-
if (type === "dropdownInteraction"
|
|
5257
|
+
if (type === "dropdownInteraction") {
|
|
5258
|
+
const dropdownInteraction = interaction;
|
|
5259
|
+
const options = dropdownInteraction.options;
|
|
5280
5260
|
const answer = [];
|
|
5281
5261
|
Object.values(options).forEach((option) => {
|
|
5282
|
-
const correctAnswers = option.correct_answers
|
|
5283
|
-
const firstCorrect = correctAnswers[0] || "";
|
|
5262
|
+
const correctAnswers = option.correct_answers;
|
|
5284
5263
|
answer.push({
|
|
5285
5264
|
id: option.id,
|
|
5286
|
-
choice:
|
|
5265
|
+
choice: correctAnswers[0]
|
|
5287
5266
|
});
|
|
5288
5267
|
});
|
|
5289
5268
|
return {
|
|
5290
|
-
hasAnswer: true,
|
|
5291
5269
|
answer,
|
|
5292
|
-
correctAnswer: options
|
|
5293
|
-
interactionType: type
|
|
5270
|
+
correctAnswer: options
|
|
5294
5271
|
};
|
|
5295
5272
|
}
|
|
5296
|
-
|
|
5273
|
+
if (type === "selectableTextInteraction") {
|
|
5274
|
+
const selectableTextInteraction = interaction;
|
|
5275
|
+
const correctAnswers = selectableTextInteraction.correct_answers || [];
|
|
5276
|
+
const correctAnswerIds = correctAnswers.map((answer) => answer.id);
|
|
5277
|
+
return {
|
|
5278
|
+
correctAnswerIds
|
|
5279
|
+
};
|
|
5280
|
+
}
|
|
5281
|
+
throw new Error(`Unsupported interaction type: ${type}, cannot generate preview metadata.`);
|
|
5297
5282
|
};
|
|
5298
5283
|
const loadSessionData = async (sessionId, mode) => {
|
|
5299
5284
|
const skipUserValidationStr = get(skipUserValidation) ? "&skip_user_validation=true" : "";
|
|
@@ -5315,13 +5300,10 @@ const loadSessionData = async (sessionId, mode) => {
|
|
|
5315
5300
|
}
|
|
5316
5301
|
return {
|
|
5317
5302
|
...item,
|
|
5318
|
-
sessionId,
|
|
5319
5303
|
totalCorrectAnswers,
|
|
5320
5304
|
metadata,
|
|
5321
5305
|
isFinished: Boolean(isFinished),
|
|
5322
|
-
// Convert 1/0 to true/false
|
|
5323
5306
|
isLocked: Boolean(isLocked),
|
|
5324
|
-
// Convert 1/0 to true/false
|
|
5325
5307
|
mode
|
|
5326
5308
|
};
|
|
5327
5309
|
};
|
|
@@ -5351,13 +5333,13 @@ const useSetupAPI = () => {
|
|
|
5351
5333
|
interactionWidth.set(interactionWidthValue);
|
|
5352
5334
|
}
|
|
5353
5335
|
};
|
|
5354
|
-
var root$
|
|
5336
|
+
var root$n = /* @__PURE__ */ from_html(`<div><div class="animate-skeleton w-full h-6 mb-2 rounded md:mb-4"></div> <div class="animate-skeleton w-full h-6 mb-12 rounded"></div> <div class="animate-skeleton w-full h-52 rounded"></div></div>`);
|
|
5355
5337
|
function CommonSkeleton($$anchor) {
|
|
5356
|
-
var div = root$
|
|
5338
|
+
var div = root$n();
|
|
5357
5339
|
append($$anchor, div);
|
|
5358
5340
|
}
|
|
5359
5341
|
create_custom_element(CommonSkeleton, {}, [], [], true);
|
|
5360
|
-
var root$
|
|
5342
|
+
var root$m = /* @__PURE__ */ from_html(`<p class="p-2 border-2 border-red-600 bg-red-200 rounded"> </p>`);
|
|
5361
5343
|
function InvalidBanner($$anchor, $$props) {
|
|
5362
5344
|
push($$props, true);
|
|
5363
5345
|
let bannerLabel = prop($$props, "bannerLabel", 7, "Invalid.");
|
|
@@ -5370,7 +5352,7 @@ function InvalidBanner($$anchor, $$props) {
|
|
|
5370
5352
|
flushSync();
|
|
5371
5353
|
}
|
|
5372
5354
|
};
|
|
5373
|
-
var p = root$
|
|
5355
|
+
var p = root$m();
|
|
5374
5356
|
var text = child(p, true);
|
|
5375
5357
|
reset(p);
|
|
5376
5358
|
template_effect(() => set_text(text, bannerLabel()));
|
|
@@ -5672,7 +5654,7 @@ const svgIconRegistry = {
|
|
|
5672
5654
|
}
|
|
5673
5655
|
};
|
|
5674
5656
|
var root_1$n = /* @__PURE__ */ from_svg(`<path></path>`);
|
|
5675
|
-
var root$
|
|
5657
|
+
var root$l = /* @__PURE__ */ from_svg(`<svg xmlns="http://www.w3.org/2000/svg"><!></svg>`);
|
|
5676
5658
|
function SvgLoader($$anchor, $$props) {
|
|
5677
5659
|
push($$props, true);
|
|
5678
5660
|
let width = prop($$props, "width", 7, void 0), height = prop($$props, "height", 7, void 0), svgName = prop($$props, "svgName", 7), className = prop($$props, "className", 7, void 0), dataTestId = prop($$props, "dataTestId", 7);
|
|
@@ -5726,7 +5708,7 @@ function SvgLoader($$anchor, $$props) {
|
|
|
5726
5708
|
flushSync();
|
|
5727
5709
|
}
|
|
5728
5710
|
};
|
|
5729
|
-
var svg = root$
|
|
5711
|
+
var svg = root$l();
|
|
5730
5712
|
var node = child(svg);
|
|
5731
5713
|
{
|
|
5732
5714
|
var consequent = ($$anchor2) => {
|
|
@@ -5768,7 +5750,7 @@ create_custom_element(
|
|
|
5768
5750
|
[],
|
|
5769
5751
|
true
|
|
5770
5752
|
);
|
|
5771
|
-
var root$
|
|
5753
|
+
var root$k = /* @__PURE__ */ from_html(`<span><!></span>`);
|
|
5772
5754
|
function ResultIcon($$anchor, $$props) {
|
|
5773
5755
|
push($$props, true);
|
|
5774
5756
|
let isCorrect = prop($$props, "isCorrect", 7), iconType = prop($$props, "iconType", 7, "result"), parentProps = prop($$props, "parentProps", 7);
|
|
@@ -5798,7 +5780,7 @@ function ResultIcon($$anchor, $$props) {
|
|
|
5798
5780
|
flushSync();
|
|
5799
5781
|
}
|
|
5800
5782
|
};
|
|
5801
|
-
var span = root$
|
|
5783
|
+
var span = root$k();
|
|
5802
5784
|
var node = child(span);
|
|
5803
5785
|
SvgLoader(node, {
|
|
5804
5786
|
get svgName() {
|
|
@@ -5817,7 +5799,7 @@ function ResultIcon($$anchor, $$props) {
|
|
|
5817
5799
|
return pop($$exports);
|
|
5818
5800
|
}
|
|
5819
5801
|
create_custom_element(ResultIcon, { isCorrect: {}, iconType: {}, parentProps: {} }, [], [], true);
|
|
5820
|
-
var root_3$
|
|
5802
|
+
var root_3$e = /* @__PURE__ */ from_html(`<span class="sr-only">Alert. </span>`);
|
|
5821
5803
|
var root_1$m = /* @__PURE__ */ from_html(`<div data-testid="feedback-alt"><!> <div><!> <span><!></span></div></div>`);
|
|
5822
5804
|
function FeedbackAlert($$anchor, $$props) {
|
|
5823
5805
|
push($$props, true);
|
|
@@ -5910,7 +5892,7 @@ function FeedbackAlert($$anchor, $$props) {
|
|
|
5910
5892
|
var node_2 = child(div_1);
|
|
5911
5893
|
{
|
|
5912
5894
|
var consequent_1 = ($$anchor3) => {
|
|
5913
|
-
var span = root_3$
|
|
5895
|
+
var span = root_3$e();
|
|
5914
5896
|
append($$anchor3, span);
|
|
5915
5897
|
};
|
|
5916
5898
|
if_block(node_2, ($$render) => {
|
|
@@ -6245,7 +6227,7 @@ const useFocusTrap = () => {
|
|
|
6245
6227
|
handleTabKey
|
|
6246
6228
|
};
|
|
6247
6229
|
};
|
|
6248
|
-
var root$
|
|
6230
|
+
var root$j = /* @__PURE__ */ from_html(`<dialog aria-modal="true" class="bg-transparent max-w-none max-h-none w-screen h-screen"><div role="button" aria-hidden="true"></div> <!></dialog>`);
|
|
6249
6231
|
function CommonModal($$anchor, $$props) {
|
|
6250
6232
|
push($$props, true);
|
|
6251
6233
|
let modalData = prop($$props, "modalData", 23, () => ({ modalAriaLabel: "", isModalOpen: false })), modalClass = prop($$props, "modalClass", 7, ""), onupdateModalSettings = prop($$props, "onupdateModalSettings", 7), onclose = prop($$props, "onclose", 7), children = prop($$props, "children", 7), dataTestId = prop($$props, "dataTestId", 7);
|
|
@@ -6329,7 +6311,7 @@ function CommonModal($$anchor, $$props) {
|
|
|
6329
6311
|
flushSync();
|
|
6330
6312
|
}
|
|
6331
6313
|
};
|
|
6332
|
-
var dialog = root$
|
|
6314
|
+
var dialog = root$j();
|
|
6333
6315
|
dialog.__keydown = handleFocusTrap;
|
|
6334
6316
|
var div = child(dialog);
|
|
6335
6317
|
div.__click = clickModalBackground;
|
|
@@ -6379,7 +6361,7 @@ function fade(node, { delay = 0, duration = 400, easing = linear } = {}) {
|
|
|
6379
6361
|
};
|
|
6380
6362
|
}
|
|
6381
6363
|
var root_1$l = /* @__PURE__ */ from_html(`<div><div role="tooltip" data-testid="img-viewer-tt"> <span aria-hidden="true"></span></div></div>`);
|
|
6382
|
-
var root$
|
|
6364
|
+
var root$i = /* @__PURE__ */ from_html(`<div class="relative inline-block"><!> <!></div>`);
|
|
6383
6365
|
function CommonTooltip($$anchor, $$props) {
|
|
6384
6366
|
push($$props, true);
|
|
6385
6367
|
let text = prop($$props, "text", 7), placement = prop($$props, "placement", 7, "bottom"), open = prop($$props, "open", 7, void 0), disabled = prop($$props, "disabled", 7, false), trigger = prop($$props, "trigger", 7, "hover"), tooltipClass = prop($$props, "tooltipClass", 7, ""), showDelay = prop($$props, "showDelay", 7, 80), hideDelay = prop($$props, "hideDelay", 7, 120), children = prop($$props, "children", 7);
|
|
@@ -6557,7 +6539,7 @@ function CommonTooltip($$anchor, $$props) {
|
|
|
6557
6539
|
flushSync();
|
|
6558
6540
|
}
|
|
6559
6541
|
};
|
|
6560
|
-
var div = root$
|
|
6542
|
+
var div = root$i();
|
|
6561
6543
|
div.__focusin = scheduleShow;
|
|
6562
6544
|
div.__focusout = scheduleHide;
|
|
6563
6545
|
div.__touchstart = handleTouchStart;
|
|
@@ -6624,7 +6606,7 @@ create_custom_element(
|
|
|
6624
6606
|
true
|
|
6625
6607
|
);
|
|
6626
6608
|
var root_1$k = /* @__PURE__ */ from_html(`<span><!></span>`);
|
|
6627
|
-
var root$
|
|
6609
|
+
var root$h = /* @__PURE__ */ from_html(`<button><!></button>`);
|
|
6628
6610
|
function CommonButton($$anchor, $$props) {
|
|
6629
6611
|
push($$props, true);
|
|
6630
6612
|
let ariaLabel = prop($$props, "ariaLabel", 7, ""), ariaHaspopup = prop($$props, "ariaHaspopup", 7), className = prop($$props, "className", 7, ""), disabled = prop($$props, "disabled", 7, false), pressed = prop($$props, "pressed", 7, false), transparent = prop($$props, "transparent", 7, false), variant = prop($$props, "variant", 7, "standard"), type = prop($$props, "type", 7, "button"), tabindex = prop($$props, "tabindex", 7, 0), onclick = prop($$props, "onclick", 7), children = prop($$props, "children", 7), dataTestId = prop($$props, "dataTestId", 7);
|
|
@@ -6723,7 +6705,7 @@ function CommonButton($$anchor, $$props) {
|
|
|
6723
6705
|
flushSync();
|
|
6724
6706
|
}
|
|
6725
6707
|
};
|
|
6726
|
-
var button = root$
|
|
6708
|
+
var button = root$h();
|
|
6727
6709
|
let classes;
|
|
6728
6710
|
button.__click = function(...$$args) {
|
|
6729
6711
|
onclick()?.apply(this, $$args);
|
|
@@ -6940,9 +6922,9 @@ function useImageModalSize() {
|
|
|
6940
6922
|
calculateStimulusImageLayout
|
|
6941
6923
|
};
|
|
6942
6924
|
}
|
|
6943
|
-
var root_3$
|
|
6925
|
+
var root_3$d = /* @__PURE__ */ from_html(`<span class="w-6 h-6 flex items-center justify-center"><!></span>`);
|
|
6944
6926
|
var root_4$7 = /* @__PURE__ */ from_html(`<span class="w-6 h-6 flex items-center justify-center"><!></span>`);
|
|
6945
|
-
var root_5$
|
|
6927
|
+
var root_5$8 = /* @__PURE__ */ from_html(`<div><span aria-hidden="true"><!></span></div>`);
|
|
6946
6928
|
var root_8$5 = /* @__PURE__ */ from_html(`<span class="w-4 h-4 flex items-center justify-center"><!></span>`);
|
|
6947
6929
|
var root_9$3 = /* @__PURE__ */ from_html(`<span class="w-4 h-4 flex items-center justify-center"><!></span>`);
|
|
6948
6930
|
var root_2$d = /* @__PURE__ */ from_html(`<div class="absolute inset-0 m-0"><div class="w-full h-full px-0 md:px-[82px] lg:px-[128px] pt-14 pb-[72px] relative lg:py-24 flex flex-col items-center justify-center"><div aria-live="polite" aria-atomic="true" class="sr-only"> </div> <div class="w-full h-full flex flex-col md:flex-row md:justify-center items-center justify-between"><div class="md:hidden"></div> <!> <!> <div><div class="flex-shrink-0 flex items-center justify-between py-1 px-2 md:px-4 border-border-minimal border rounded-t-md lg:rounded-t-lg md:gap-4 h-8.5 md:h-fit"><!> <!> <!></div> <div class="rounded-b-md"><img class="mx-auto block rounded-b-md lg:rounded-b-lg object-contain max-w-full max-h-[calc(100vh-168px-34px)] md:max-h-[calc(100vh-128px-54px)] lg:max-h-[calc(100vh-192px-54px)] pointer-events-none"/></div></div> <div class="md:hidden flex justify-center items-center gap-1 flex-shrink-0 h-6 mt-4"><!> <!></div></div></div></div>`);
|
|
@@ -7170,7 +7152,7 @@ function MCQImageModal($$anchor, $$props) {
|
|
|
7170
7152
|
dataTestId: "img-viewer-prev",
|
|
7171
7153
|
onclick: navigatePrevious,
|
|
7172
7154
|
children: ($$anchor4, $$slotProps2) => {
|
|
7173
|
-
var span = root_3$
|
|
7155
|
+
var span = root_3$d();
|
|
7174
7156
|
var node_2 = child(span);
|
|
7175
7157
|
SvgLoader(node_2, {
|
|
7176
7158
|
svgName: "smallChevronLeft",
|
|
@@ -7226,7 +7208,7 @@ function MCQImageModal($$anchor, $$props) {
|
|
|
7226
7208
|
return get$1(fullAnswerText);
|
|
7227
7209
|
},
|
|
7228
7210
|
children: ($$anchor4, $$slotProps2) => {
|
|
7229
|
-
var div_6 = root_5$
|
|
7211
|
+
var div_6 = root_5$8();
|
|
7230
7212
|
var span_2 = child(div_6);
|
|
7231
7213
|
var node_6 = child(span_2);
|
|
7232
7214
|
{
|
|
@@ -7514,7 +7496,7 @@ function PromptSection($$anchor, $$props) {
|
|
|
7514
7496
|
return pop($$exports);
|
|
7515
7497
|
}
|
|
7516
7498
|
create_custom_element(PromptSection, { prompt: {} }, [], [], true);
|
|
7517
|
-
var root$
|
|
7499
|
+
var root$g = /* @__PURE__ */ from_html(`<div class="interaction-section"><!></div>`);
|
|
7518
7500
|
function InteractionSection($$anchor, $$props) {
|
|
7519
7501
|
push($$props, true);
|
|
7520
7502
|
let children = prop($$props, "children", 7);
|
|
@@ -7527,7 +7509,7 @@ function InteractionSection($$anchor, $$props) {
|
|
|
7527
7509
|
flushSync();
|
|
7528
7510
|
}
|
|
7529
7511
|
};
|
|
7530
|
-
var div = root$
|
|
7512
|
+
var div = root$g();
|
|
7531
7513
|
var node = child(div);
|
|
7532
7514
|
snippet(node, () => children() ?? noop);
|
|
7533
7515
|
reset(div);
|
|
@@ -7535,9 +7517,9 @@ function InteractionSection($$anchor, $$props) {
|
|
|
7535
7517
|
return pop($$exports);
|
|
7536
7518
|
}
|
|
7537
7519
|
create_custom_element(InteractionSection, { children: {} }, [], [], true);
|
|
7538
|
-
var root_5$
|
|
7520
|
+
var root_5$7 = /* @__PURE__ */ from_html(`<div></div>`);
|
|
7539
7521
|
var root_4$6 = /* @__PURE__ */ from_html(`<div class="px-4 w-full max-w-[1008px] mx-auto flex-shrink-0 text-center font-semibold text-sm md:text-lg leading-[150%] text-white" aria-hidden="true" data-testid="img-viewer-cap-txt"> </div> <!>`, 1);
|
|
7540
|
-
var root_7$
|
|
7522
|
+
var root_7$5 = /* @__PURE__ */ from_html(`<div></div>`);
|
|
7541
7523
|
var root_2$c = /* @__PURE__ */ from_html(`<div class="absolute inset-0"><div class="w-full h-full flex items-center justify-center pt-14 pb-[72px] lg:py-24"><div aria-live="polite" aria-atomic="true" class="sr-only"> </div> <div class="flex flex-col items-center overflow-y-auto overflow-x-hidden w-full px-0 md:px-6 lg:px-16"><div class="relative bg-white rounded-md md:rounded-lg shadow-sm overflow-hidden flex-shrink-0"><img class="block object-contain w-full h-auto max-w-full mx-auto"/> <!></div> <!></div></div></div>`);
|
|
7542
7524
|
function PromptStimulusImageModal($$anchor, $$props) {
|
|
7543
7525
|
push($$props, true);
|
|
@@ -7709,7 +7691,7 @@ function PromptStimulusImageModal($$anchor, $$props) {
|
|
|
7709
7691
|
var node_3 = sibling(div_5, 2);
|
|
7710
7692
|
{
|
|
7711
7693
|
var consequent = ($$anchor5) => {
|
|
7712
|
-
var div_6 = root_5$
|
|
7694
|
+
var div_6 = root_5$7();
|
|
7713
7695
|
template_effect(() => set_style(div_6, `height:${get$1(bottomSpacerHeight) ?? ""}px`));
|
|
7714
7696
|
append($$anchor5, div_6);
|
|
7715
7697
|
};
|
|
@@ -7728,7 +7710,7 @@ function PromptStimulusImageModal($$anchor, $$props) {
|
|
|
7728
7710
|
var node_4 = first_child(fragment_4);
|
|
7729
7711
|
{
|
|
7730
7712
|
var consequent_2 = ($$anchor5) => {
|
|
7731
|
-
var div_7 = root_7$
|
|
7713
|
+
var div_7 = root_7$5();
|
|
7732
7714
|
template_effect(() => set_style(div_7, `height:${get$1(bottomSpacerHeight) ?? ""}px`));
|
|
7733
7715
|
append($$anchor5, div_7);
|
|
7734
7716
|
};
|
|
@@ -8076,35 +8058,64 @@ const singleColumnTemplate = {
|
|
|
8076
8058
|
matches: () => true,
|
|
8077
8059
|
// Fallback
|
|
8078
8060
|
build: (context) => {
|
|
8061
|
+
const isSelectableText = context.interactionType === INTERACTION_TYPES.SELECTABLE_TEXT;
|
|
8079
8062
|
const allSections = [
|
|
8080
|
-
{
|
|
8063
|
+
{
|
|
8064
|
+
name: "rubric",
|
|
8065
|
+
component: "rubric",
|
|
8066
|
+
classes: isSelectableText ? ["max-w-[864px]"] : void 0
|
|
8067
|
+
},
|
|
8081
8068
|
{
|
|
8082
8069
|
name: "stimulus-inline-text-first",
|
|
8083
8070
|
component: "stimulus-text",
|
|
8084
|
-
condition: context.stimulusData.hasText && context.stimulusData.stimulusTextAlignment === "inline" && context.stimulusData.stimulusLayoutOrder === "text first"
|
|
8071
|
+
condition: !isSelectableText && context.stimulusData.hasText && context.stimulusData.stimulusTextAlignment === "inline" && context.stimulusData.stimulusLayoutOrder === "text first"
|
|
8085
8072
|
},
|
|
8086
8073
|
{
|
|
8087
8074
|
name: "stimulus-inline-media",
|
|
8088
8075
|
component: "stimulus-media",
|
|
8089
|
-
condition: context.stimulusData.hasMedia && context.stimulusData.fileAlignment === "inline"
|
|
8076
|
+
condition: !isSelectableText && context.stimulusData.hasMedia && context.stimulusData.fileAlignment === "inline"
|
|
8090
8077
|
},
|
|
8091
8078
|
{
|
|
8092
8079
|
name: "stimulus-inline-text-second",
|
|
8093
8080
|
component: "stimulus-text",
|
|
8094
|
-
condition: context.stimulusData.hasText && context.stimulusData.stimulusTextAlignment === "inline" && context.stimulusData.stimulusLayoutOrder === "media first"
|
|
8081
|
+
condition: !isSelectableText && context.stimulusData.hasText && context.stimulusData.stimulusTextAlignment === "inline" && context.stimulusData.stimulusLayoutOrder === "media first"
|
|
8095
8082
|
},
|
|
8096
|
-
{
|
|
8097
|
-
|
|
8098
|
-
|
|
8099
|
-
|
|
8100
|
-
|
|
8083
|
+
{
|
|
8084
|
+
name: "prompt",
|
|
8085
|
+
component: "prompt",
|
|
8086
|
+
classes: isSelectableText ? ["max-w-[864px]"] : void 0
|
|
8087
|
+
},
|
|
8088
|
+
{
|
|
8089
|
+
name: "divider",
|
|
8090
|
+
component: "divider",
|
|
8091
|
+
condition: context.hasDivider,
|
|
8092
|
+
classes: isSelectableText ? ["max-w-[864px]"] : void 0
|
|
8093
|
+
},
|
|
8094
|
+
{
|
|
8095
|
+
name: "interaction",
|
|
8096
|
+
component: "slot",
|
|
8097
|
+
slot: "interaction"
|
|
8098
|
+
},
|
|
8099
|
+
{
|
|
8100
|
+
name: "divider-bottom",
|
|
8101
|
+
component: "divider-bottom",
|
|
8102
|
+
condition: context.hasDividerBottom,
|
|
8103
|
+
classes: isSelectableText ? ["max-w-[864px]"] : void 0
|
|
8104
|
+
},
|
|
8105
|
+
{
|
|
8106
|
+
name: "feedback",
|
|
8107
|
+
component: "slot",
|
|
8108
|
+
slot: "feedback",
|
|
8109
|
+
classes: isSelectableText ? ["max-w-[864px]"] : void 0
|
|
8110
|
+
}
|
|
8101
8111
|
];
|
|
8102
8112
|
const order = getSingleColumnOrder(context.interactionType);
|
|
8103
8113
|
const sections = reorderSections(allSections, order);
|
|
8114
|
+
const containerStyles = { "--interactionWidthValue": context.interactionWidthValue };
|
|
8104
8115
|
return {
|
|
8105
8116
|
sections,
|
|
8106
8117
|
containerClasses: ["container-class"],
|
|
8107
|
-
containerStyles
|
|
8118
|
+
containerStyles
|
|
8108
8119
|
};
|
|
8109
8120
|
}
|
|
8110
8121
|
};
|
|
@@ -8134,7 +8145,12 @@ const fullWidthStimulusTextTemplate = {
|
|
|
8134
8145
|
{ name: "prompt", component: "prompt", classes: ["lg:max-w-[50%]"] },
|
|
8135
8146
|
{ name: "divider", component: "divider", condition: context.hasDivider, classes: ["lg:max-w-[50%]"] },
|
|
8136
8147
|
{ name: "interaction", component: "slot", slot: "interaction", classes: ["lg:max-w-[50%]"] },
|
|
8137
|
-
{
|
|
8148
|
+
{
|
|
8149
|
+
name: "divider-bottom",
|
|
8150
|
+
component: "divider-bottom",
|
|
8151
|
+
condition: context.hasDividerBottom,
|
|
8152
|
+
classes: ["lg:max-w-[50%]"]
|
|
8153
|
+
},
|
|
8138
8154
|
{ name: "feedback", component: "slot", slot: "feedback", classes: ["lg:max-w-[50%]"] }
|
|
8139
8155
|
];
|
|
8140
8156
|
const order = getSingleColumnOrder(context.interactionType);
|
|
@@ -8158,7 +8174,7 @@ const shouldRenderSection = (section) => section.condition !== false;
|
|
|
8158
8174
|
const getClassString = (classes = []) => classes.join(" ");
|
|
8159
8175
|
const getStyleString = (styles = {}) => Object.entries(styles).map(([k, v]) => `${k}:${v}`).join(";");
|
|
8160
8176
|
var root_4$5 = /* @__PURE__ */ from_html(`<p class="text-lg leading-[22px] text-blue-1000 font-semibold mt-4" data-testid="img-cap-txt"> </p>`);
|
|
8161
|
-
var root_5$
|
|
8177
|
+
var root_5$6 = /* @__PURE__ */ from_html(`<div class="mt-6 w-full"><button class="flex items-center font-semibold leading-[1.5] outline-none group w-fit h-11 text-charcoal" aria-controls="long-description-content" aria-labelledby="image-description-label" type="button"><div class="w-6 h-6 flex items-center justify-center mr-2" data-testid="img-desc-txt"><!></div> <div id="image-description-label" class="image-description-accordion group-[.active]:border-b-2">Image Description</div></button> <div id="long-description-content" data-testid="img-desc-txt"><!></div></div>`);
|
|
8162
8178
|
var root_2$b = /* @__PURE__ */ from_html(`<div class="flex flex-col justify-center items-center text-center"><div class="flex flex-col items-center"><div class="relative inline-block"><img/> <!></div> <!></div></div> <!>`, 1);
|
|
8163
8179
|
var root_1$j = /* @__PURE__ */ from_html(`<div class="w-full"><!></div>`);
|
|
8164
8180
|
function CommonMedia($$anchor, $$props) {
|
|
@@ -8291,7 +8307,7 @@ function CommonMedia($$anchor, $$props) {
|
|
|
8291
8307
|
var node_4 = sibling(div_1, 2);
|
|
8292
8308
|
{
|
|
8293
8309
|
var consequent_1 = ($$anchor4) => {
|
|
8294
|
-
var div_4 = root_5$
|
|
8310
|
+
var div_4 = root_5$6();
|
|
8295
8311
|
var button = child(div_4);
|
|
8296
8312
|
button.__click = toggleLongDescription;
|
|
8297
8313
|
button.__keydown = handleKeyDown;
|
|
@@ -8380,11 +8396,11 @@ create_custom_element(
|
|
|
8380
8396
|
true
|
|
8381
8397
|
);
|
|
8382
8398
|
var root_4$4 = /* @__PURE__ */ from_html(`<div data-testid="stimulus-txt-ctr"><!></div>`);
|
|
8383
|
-
var root_5$
|
|
8384
|
-
var root_3$
|
|
8385
|
-
var root_7$
|
|
8399
|
+
var root_5$5 = /* @__PURE__ */ from_html(`<div data-testid="stimulus-img-ctr"><!></div>`);
|
|
8400
|
+
var root_3$c = /* @__PURE__ */ from_html(`<!> <!>`, 1);
|
|
8401
|
+
var root_7$4 = /* @__PURE__ */ from_html(`<div data-testid="stimulus-img-ctr"><!></div>`);
|
|
8386
8402
|
var root_8$4 = /* @__PURE__ */ from_html(`<div data-testid="stimulus-txt-ctr"><!></div>`);
|
|
8387
|
-
var root_6$
|
|
8403
|
+
var root_6$3 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
|
|
8388
8404
|
var root_1$i = /* @__PURE__ */ from_html(`<div class="stimulus-section flex flex-col w-full"><!> <div><!></div></div>`);
|
|
8389
8405
|
function StimulusSection($$anchor, $$props) {
|
|
8390
8406
|
push($$props, true);
|
|
@@ -8473,7 +8489,7 @@ function StimulusSection($$anchor, $$props) {
|
|
|
8473
8489
|
var node_2 = child(div_1);
|
|
8474
8490
|
{
|
|
8475
8491
|
var consequent_3 = ($$anchor3) => {
|
|
8476
|
-
var fragment_2 = root_3$
|
|
8492
|
+
var fragment_2 = root_3$c();
|
|
8477
8493
|
var node_3 = first_child(fragment_2);
|
|
8478
8494
|
{
|
|
8479
8495
|
var consequent_1 = ($$anchor4) => {
|
|
@@ -8498,7 +8514,7 @@ function StimulusSection($$anchor, $$props) {
|
|
|
8498
8514
|
var node_5 = sibling(node_3, 2);
|
|
8499
8515
|
{
|
|
8500
8516
|
var consequent_2 = ($$anchor4) => {
|
|
8501
|
-
var div_3 = root_5$
|
|
8517
|
+
var div_3 = root_5$5();
|
|
8502
8518
|
let classes_2;
|
|
8503
8519
|
var node_6 = child(div_3);
|
|
8504
8520
|
CommonMedia(node_6, {
|
|
@@ -8533,11 +8549,11 @@ function StimulusSection($$anchor, $$props) {
|
|
|
8533
8549
|
append($$anchor3, fragment_2);
|
|
8534
8550
|
};
|
|
8535
8551
|
var alternate = ($$anchor3) => {
|
|
8536
|
-
var fragment_3 = root_6$
|
|
8552
|
+
var fragment_3 = root_6$3();
|
|
8537
8553
|
var node_7 = first_child(fragment_3);
|
|
8538
8554
|
{
|
|
8539
8555
|
var consequent_4 = ($$anchor4) => {
|
|
8540
|
-
var div_4 = root_7$
|
|
8556
|
+
var div_4 = root_7$4();
|
|
8541
8557
|
let classes_3;
|
|
8542
8558
|
var node_8 = child(div_4);
|
|
8543
8559
|
CommonMedia(node_8, {
|
|
@@ -8622,11 +8638,11 @@ create_custom_element(
|
|
|
8622
8638
|
true
|
|
8623
8639
|
);
|
|
8624
8640
|
var root_8$3 = /* @__PURE__ */ from_html(`<div class="divider my-6"></div>`);
|
|
8625
|
-
var root_13 = /* @__PURE__ */ from_html(`<div class="divider my-6"></div>`);
|
|
8626
|
-
var root_15 = /* @__PURE__ */ from_html(`<div aria-live="polite"><!></div>`);
|
|
8641
|
+
var root_13$1 = /* @__PURE__ */ from_html(`<div class="divider my-6"></div>`);
|
|
8642
|
+
var root_15$1 = /* @__PURE__ */ from_html(`<div aria-live="polite"><!></div>`);
|
|
8627
8643
|
var root_1$h = /* @__PURE__ */ from_html(`<div><!></div>`);
|
|
8628
|
-
var root_16$
|
|
8629
|
-
var root$
|
|
8644
|
+
var root_16$2 = /* @__PURE__ */ from_html(`<div><!></div>`);
|
|
8645
|
+
var root$f = /* @__PURE__ */ from_html(`<div class="prompt-container"><div><div></div> <!></div></div> <!>`, 1);
|
|
8630
8646
|
function PromptContainer($$anchor, $$props) {
|
|
8631
8647
|
push($$props, true);
|
|
8632
8648
|
let rubric = prop($$props, "rubric", 7, ""), prompt = prop($$props, "prompt", 7, ""), interactionType = prop($$props, "interactionType", 7), hasDivider = prop($$props, "hasDivider", 7, true), hasDividerBottom = prop($$props, "hasDividerBottom", 7, false), stimulus = prop($$props, "stimulus", 7, null), optionHasMedia = prop($$props, "optionHasMedia", 7, false), interaction = prop($$props, "interaction", 7), feedback = prop($$props, "feedback", 7);
|
|
@@ -8748,7 +8764,7 @@ function PromptContainer($$anchor, $$props) {
|
|
|
8748
8764
|
flushSync();
|
|
8749
8765
|
}
|
|
8750
8766
|
};
|
|
8751
|
-
var fragment = root$
|
|
8767
|
+
var fragment = root$f();
|
|
8752
8768
|
var div = first_child(fragment);
|
|
8753
8769
|
var div_1 = child(div);
|
|
8754
8770
|
var div_2 = child(div_1);
|
|
@@ -8823,7 +8839,7 @@ function PromptContainer($$anchor, $$props) {
|
|
|
8823
8839
|
var node_6 = first_child(fragment_10);
|
|
8824
8840
|
{
|
|
8825
8841
|
var consequent_5 = ($$anchor8) => {
|
|
8826
|
-
var div_5 = root_13();
|
|
8842
|
+
var div_5 = root_13$1();
|
|
8827
8843
|
append($$anchor8, div_5);
|
|
8828
8844
|
};
|
|
8829
8845
|
var alternate = ($$anchor8) => {
|
|
@@ -8831,7 +8847,7 @@ function PromptContainer($$anchor, $$props) {
|
|
|
8831
8847
|
var node_7 = first_child(fragment_11);
|
|
8832
8848
|
{
|
|
8833
8849
|
var consequent_6 = ($$anchor9) => {
|
|
8834
|
-
var div_6 = root_15();
|
|
8850
|
+
var div_6 = root_15$1();
|
|
8835
8851
|
var node_8 = child(div_6);
|
|
8836
8852
|
snippet(node_8, () => feedback() ?? noop);
|
|
8837
8853
|
reset(div_6);
|
|
@@ -8924,7 +8940,7 @@ function PromptContainer($$anchor, $$props) {
|
|
|
8924
8940
|
var node_9 = sibling(div_2, 2);
|
|
8925
8941
|
{
|
|
8926
8942
|
var consequent_7 = ($$anchor2) => {
|
|
8927
|
-
var div_7 = root_16$
|
|
8943
|
+
var div_7 = root_16$2();
|
|
8928
8944
|
var node_10 = child(div_7);
|
|
8929
8945
|
StimulusSection(node_10, {
|
|
8930
8946
|
get stimulusData() {
|
|
@@ -9011,13 +9027,13 @@ create_custom_element(
|
|
|
9011
9027
|
);
|
|
9012
9028
|
var root_1$g = /* @__PURE__ */ from_html(`<p class="text-charcoal text-sm leading-[19.2px] mb-2"> </p>`);
|
|
9013
9029
|
var root_2$a = /* @__PURE__ */ from_html(`<span class="text-gray-860 text-sm mb-0.5"> </span>`);
|
|
9014
|
-
var root_3$
|
|
9030
|
+
var root_3$b = /* @__PURE__ */ from_html(`<span class="text-gray-860 text-sm mb-0.5">Missing answer:</span>`);
|
|
9015
9031
|
var root_4$3 = /* @__PURE__ */ from_html(`<span aria-hidden="true" class="text-green-900 mr-1"><!></span>`);
|
|
9016
|
-
var root_5$
|
|
9032
|
+
var root_5$4 = /* @__PURE__ */ from_html(`<span aria-hidden="true"><!></span>`);
|
|
9017
9033
|
var root_9$2 = /* @__PURE__ */ from_html(`<span class="w-3 h-2 flex items-center justify-center"><!></span>`);
|
|
9018
9034
|
var root_8$2 = /* @__PURE__ */ from_html(`<span><!></span>`);
|
|
9019
|
-
var root_10$
|
|
9020
|
-
var root$
|
|
9035
|
+
var root_10$3 = /* @__PURE__ */ from_html(`<div class="w-full overflow-hidden bg-white rounded-b-lg flex items-center justify-center relative"><img class="mcq-opt-img min-h-[154px] max-h-[184px] w-auto max-w-full object-contain pointer-events-none" data-testid="mcq-opt-img" loading="lazy"/></div>`);
|
|
9036
|
+
var root$e = /* @__PURE__ */ from_html(`<!> <div class="relative"><button><span><span class="flex items-center justify-between w-full"><span class="flex items-center"><span> </span> <span class="flex flex-col px-3 text-left"><!> <!> <!></span></span> <span class="flex items-center"><!> <!> <!></span></span></span> <!></button> <!></div>`, 1);
|
|
9021
9037
|
function MCQOption($$anchor, $$props) {
|
|
9022
9038
|
push($$props, true);
|
|
9023
9039
|
let option = prop($$props, "option", 7), index2 = prop($$props, "index", 7), config = prop($$props, "config", 7), state2 = prop($$props, "state", 7), optionHasMedia = prop($$props, "optionHasMedia", 7, false), onOptionClick = prop($$props, "onOptionClick", 7), onExpandImage = prop($$props, "onExpandImage", 7);
|
|
@@ -9105,7 +9121,7 @@ function MCQOption($$anchor, $$props) {
|
|
|
9105
9121
|
flushSync();
|
|
9106
9122
|
}
|
|
9107
9123
|
};
|
|
9108
|
-
var fragment = root$
|
|
9124
|
+
var fragment = root$e();
|
|
9109
9125
|
var node = first_child(fragment);
|
|
9110
9126
|
{
|
|
9111
9127
|
var consequent = ($$anchor2) => {
|
|
@@ -9145,7 +9161,7 @@ function MCQOption($$anchor, $$props) {
|
|
|
9145
9161
|
var node_2 = sibling(node_1, 2);
|
|
9146
9162
|
{
|
|
9147
9163
|
var consequent_2 = ($$anchor2) => {
|
|
9148
|
-
var span_6 = root_3$
|
|
9164
|
+
var span_6 = root_3$b();
|
|
9149
9165
|
append($$anchor2, span_6);
|
|
9150
9166
|
};
|
|
9151
9167
|
if_block(node_2, ($$render) => {
|
|
@@ -9182,7 +9198,7 @@ function MCQOption($$anchor, $$props) {
|
|
|
9182
9198
|
var node_6 = sibling(node_4, 2);
|
|
9183
9199
|
{
|
|
9184
9200
|
var consequent_5 = ($$anchor2) => {
|
|
9185
|
-
var span_9 = root_5$
|
|
9201
|
+
var span_9 = root_5$4();
|
|
9186
9202
|
var node_7 = child(span_9);
|
|
9187
9203
|
{
|
|
9188
9204
|
var consequent_4 = ($$anchor3) => {
|
|
@@ -9249,7 +9265,7 @@ function MCQOption($$anchor, $$props) {
|
|
|
9249
9265
|
var node_11 = sibling(span, 2);
|
|
9250
9266
|
{
|
|
9251
9267
|
var consequent_8 = ($$anchor2) => {
|
|
9252
|
-
var div_1 = root_10$
|
|
9268
|
+
var div_1 = root_10$3();
|
|
9253
9269
|
var img = child(div_1);
|
|
9254
9270
|
reset(div_1);
|
|
9255
9271
|
template_effect(() => {
|
|
@@ -9447,8 +9463,8 @@ create_custom_element(
|
|
|
9447
9463
|
[],
|
|
9448
9464
|
true
|
|
9449
9465
|
);
|
|
9450
|
-
var root_3$
|
|
9451
|
-
var root$
|
|
9466
|
+
var root_3$a = /* @__PURE__ */ from_html(`<div aria-live="polite" class="mb-6"><!></div>`);
|
|
9467
|
+
var root$d = /* @__PURE__ */ from_html(`<!> <!>`, 1);
|
|
9452
9468
|
function MCQComponent($$anchor, $$props) {
|
|
9453
9469
|
push($$props, true);
|
|
9454
9470
|
let api = prop($$props, "api", 7), config = prop($$props, "config", 7), isDataSaving = prop($$props, "isDataSaving", 7, false), onstateChange = prop($$props, "onstateChange", 7);
|
|
@@ -9562,7 +9578,7 @@ function MCQComponent($$anchor, $$props) {
|
|
|
9562
9578
|
flushSync();
|
|
9563
9579
|
}
|
|
9564
9580
|
};
|
|
9565
|
-
var fragment = root$
|
|
9581
|
+
var fragment = root$d();
|
|
9566
9582
|
var node = first_child(fragment);
|
|
9567
9583
|
{
|
|
9568
9584
|
const interaction = ($$anchor2) => {
|
|
@@ -9585,7 +9601,7 @@ function MCQComponent($$anchor, $$props) {
|
|
|
9585
9601
|
var node_1 = first_child(fragment_2);
|
|
9586
9602
|
{
|
|
9587
9603
|
var consequent = ($$anchor3) => {
|
|
9588
|
-
var div = root_3$
|
|
9604
|
+
var div = root_3$a();
|
|
9589
9605
|
var node_2 = child(div);
|
|
9590
9606
|
MCQFeedback(node_2, {
|
|
9591
9607
|
get feedbackState() {
|
|
@@ -9666,8 +9682,8 @@ function MCQComponent($$anchor, $$props) {
|
|
|
9666
9682
|
}
|
|
9667
9683
|
create_custom_element(MCQComponent, { api: {}, config: {}, isDataSaving: {}, onstateChange: {} }, [], [], true);
|
|
9668
9684
|
const useSharedState = (loadedData) => {
|
|
9669
|
-
const
|
|
9670
|
-
const lastEvent =
|
|
9685
|
+
const events = loadedData.metadata?.interactions?.events;
|
|
9686
|
+
const lastEvent = events && events.length > 0 ? events[events.length - 1] : void 0;
|
|
9671
9687
|
const getIsFinished = () => loadedData.isFinished === true;
|
|
9672
9688
|
const getIsLocked = () => loadedData.isLocked === true;
|
|
9673
9689
|
const getHasLastEvent = () => !!lastEvent;
|
|
@@ -9749,7 +9765,7 @@ const useSharedState = (loadedData) => {
|
|
|
9749
9765
|
};
|
|
9750
9766
|
};
|
|
9751
9767
|
const isCategoriseEvent = (event2) => {
|
|
9752
|
-
return event2 !== void 0 && "answer_list" in event2;
|
|
9768
|
+
return event2 !== void 0 && event2 !== null && typeof event2 === "object" && "answer_list" in event2;
|
|
9753
9769
|
};
|
|
9754
9770
|
const createMCQInteraction = (config, sessionData) => {
|
|
9755
9771
|
const getCorrectOptions = () => config.correctAnswerIds || Object.values(config.options).filter((opt) => opt.correct_choice).map((opt) => opt.id);
|
|
@@ -10046,7 +10062,7 @@ function shouldSaveTextAnswer(currentAnswer, latestAnswer, isDataSaving) {
|
|
|
10046
10062
|
}
|
|
10047
10063
|
var root_1$e = /* @__PURE__ */ from_html(`<label class="inline-txb-lbl absolute left-0 top-0 bottom-0" data-testid="inline-txb-lbl" aria-hidden="true"><span class="absolute inset-0 bg-black opacity-5 rounded-l-lg w-8.5 h-10.5 top-1"></span> <span class="absolute font-semibold text-base leading-[19px] text-charcoal px-3 inline-block pt-[15px]"> </span></label>`);
|
|
10048
10064
|
var root_2$8 = /* @__PURE__ */ from_html(`<span class="w-6 h-6 absolute right-4 top-3.5 flex items-center justify-center" aria-hidden="true"><!></span>`);
|
|
10049
|
-
var root$
|
|
10065
|
+
var root$c = /* @__PURE__ */ from_html(`<span><!> <input data-testid="input-inline-txb" placeholder="Type your answer here" autocomplete="off"/> <!></span>`);
|
|
10050
10066
|
function TypeInInlineField($$anchor, $$props) {
|
|
10051
10067
|
push($$props, true);
|
|
10052
10068
|
let index2 = prop($$props, "index", 7), value = prop($$props, "value", 15), readonly = prop($$props, "readonly", 7, false), showStatus = prop($$props, "showStatus", 7, false), isCorrect = prop($$props, "isCorrect", 7, null), isMultiple = prop($$props, "isMultiple", 7, false), marginClass = prop($$props, "marginClass", 7, ""), onBlur = prop($$props, "onBlur", 7);
|
|
@@ -10145,7 +10161,7 @@ function TypeInInlineField($$anchor, $$props) {
|
|
|
10145
10161
|
flushSync();
|
|
10146
10162
|
}
|
|
10147
10163
|
};
|
|
10148
|
-
var span = root$
|
|
10164
|
+
var span = root$c();
|
|
10149
10165
|
var node = child(span);
|
|
10150
10166
|
{
|
|
10151
10167
|
var consequent = ($$anchor2) => {
|
|
@@ -10223,15 +10239,16 @@ create_custom_element(
|
|
|
10223
10239
|
true
|
|
10224
10240
|
);
|
|
10225
10241
|
var root_1$d = /* @__PURE__ */ from_html(`<p class="p2 text-red-400 mb-3">Student's answer</p>`);
|
|
10226
|
-
var root_3$
|
|
10227
|
-
var root_2$7 = /* @__PURE__ */ from_html(`<div class="relative"><textarea id="answerText" data-testid="input-long-txa"
|
|
10228
|
-
var root_5$
|
|
10229
|
-
var root_4$1 = /* @__PURE__ */ from_html(`<div class="relative"><input data-testid="input-short-txb" autocomplete="off"
|
|
10230
|
-
var root$
|
|
10242
|
+
var root_3$9 = /* @__PURE__ */ from_html(`<span class="w-8 h-8 absolute right-2 top-2.5 flex items-center justify-center" aria-hidden="true"><!></span>`);
|
|
10243
|
+
var root_2$7 = /* @__PURE__ */ from_html(`<div class="relative"><textarea id="answerText" data-testid="input-long-txa" autocomplete="off" rows="3"></textarea> <!></div>`);
|
|
10244
|
+
var root_5$3 = /* @__PURE__ */ from_html(`<span class="w-8 h-8 absolute right-2 top-2.5 flex items-center justify-center" aria-hidden="true"><!></span>`);
|
|
10245
|
+
var root_4$1 = /* @__PURE__ */ from_html(`<div class="relative"><input data-testid="input-short-txb" autocomplete="off"/> <!></div>`);
|
|
10246
|
+
var root$b = /* @__PURE__ */ from_html(`<div class="relative"><!> <!></div>`);
|
|
10231
10247
|
function TypeInTextField($$anchor, $$props) {
|
|
10232
10248
|
push($$props, true);
|
|
10233
10249
|
let value = prop($$props, "value", 15), variant = prop($$props, "variant", 7), readonly = prop($$props, "readonly", 7, false), disabled = prop($$props, "disabled", 7, false), showStatus = prop($$props, "showStatus", 7, false), isCorrect = prop($$props, "isCorrect", 7, null), isSkipped = prop($$props, "isSkipped", 7, false), onBlur = prop($$props, "onBlur", 7);
|
|
10234
10250
|
let ariaLabel = /* @__PURE__ */ user_derived(() => showStatus() && isCorrect() !== null ? `Submitted response is ${isCorrect() ? "correct" : "incorrect"}` : !value() ? "Answer input: Please type your response" : "Your response is");
|
|
10251
|
+
let typeinPlaceholder = /* @__PURE__ */ user_derived(() => isSkipped() ? "No answer provided" : "Type your answer here");
|
|
10235
10252
|
const focusHandlers = useTextInputFocus();
|
|
10236
10253
|
const handleFocus = (e2) => {
|
|
10237
10254
|
focusHandlers.handleFocus(e2);
|
|
@@ -10309,7 +10326,7 @@ function TypeInTextField($$anchor, $$props) {
|
|
|
10309
10326
|
flushSync();
|
|
10310
10327
|
}
|
|
10311
10328
|
};
|
|
10312
|
-
var div = root$
|
|
10329
|
+
var div = root$b();
|
|
10313
10330
|
var node = child(div);
|
|
10314
10331
|
{
|
|
10315
10332
|
var consequent = ($$anchor2) => {
|
|
@@ -10317,7 +10334,7 @@ function TypeInTextField($$anchor, $$props) {
|
|
|
10317
10334
|
append($$anchor2, p);
|
|
10318
10335
|
};
|
|
10319
10336
|
if_block(node, ($$render) => {
|
|
10320
|
-
if (showStatus() &&
|
|
10337
|
+
if (showStatus() && isCorrect() === false || isSkipped()) $$render(consequent);
|
|
10321
10338
|
});
|
|
10322
10339
|
}
|
|
10323
10340
|
var node_1 = sibling(node, 2);
|
|
@@ -10332,11 +10349,11 @@ function TypeInTextField($$anchor, $$props) {
|
|
|
10332
10349
|
var node_2 = sibling(textarea, 2);
|
|
10333
10350
|
{
|
|
10334
10351
|
var consequent_1 = ($$anchor3) => {
|
|
10335
|
-
var span = root_3$
|
|
10352
|
+
var span = root_3$9();
|
|
10336
10353
|
var node_3 = child(span);
|
|
10337
10354
|
{
|
|
10338
|
-
let $0 = /* @__PURE__ */ user_derived(() => Boolean(isCorrect()));
|
|
10339
|
-
let $1 = /* @__PURE__ */ user_derived(() => Boolean(isCorrect()) ? "text-green-700" : "text-red-850");
|
|
10355
|
+
let $0 = /* @__PURE__ */ user_derived(() => isSkipped() ? false : Boolean(isCorrect()));
|
|
10356
|
+
let $1 = /* @__PURE__ */ user_derived(() => !isSkipped() && Boolean(isCorrect()) ? "text-green-700" : "text-red-850");
|
|
10340
10357
|
ResultIcon(node_3, {
|
|
10341
10358
|
get isCorrect() {
|
|
10342
10359
|
return get$1($0);
|
|
@@ -10350,7 +10367,7 @@ function TypeInTextField($$anchor, $$props) {
|
|
|
10350
10367
|
append($$anchor3, span);
|
|
10351
10368
|
};
|
|
10352
10369
|
if_block(node_2, ($$render) => {
|
|
10353
|
-
if (showStatus() && value() && value().trim() && isCorrect() !== null) $$render(consequent_1);
|
|
10370
|
+
if (showStatus() && value() && value().trim() && isCorrect() !== null || isSkipped()) $$render(consequent_1);
|
|
10354
10371
|
});
|
|
10355
10372
|
}
|
|
10356
10373
|
reset(div_1);
|
|
@@ -10359,13 +10376,14 @@ function TypeInTextField($$anchor, $$props) {
|
|
|
10359
10376
|
set_class(textarea, 1, `input-long-txa typein-textbox h-32 resize-none
|
|
10360
10377
|
${$0 ?? ""}
|
|
10361
10378
|
${showStatus() && !isSkipped() && isCorrect() === true ? "border-2 border-green-700 bg-green-400" : ""}
|
|
10362
|
-
${showStatus() &&
|
|
10379
|
+
${showStatus() && isCorrect() === false || isSkipped() ? "border-2 border-red-850" : ""}`);
|
|
10363
10380
|
set_attribute(textarea, "aria-label", get$1(ariaLabel));
|
|
10364
10381
|
textarea.readOnly = readonly();
|
|
10365
10382
|
textarea.disabled = disabled();
|
|
10383
|
+
set_attribute(textarea, "placeholder", get$1(typeinPlaceholder));
|
|
10366
10384
|
},
|
|
10367
10385
|
[
|
|
10368
|
-
() => showStatus() && value() && value().trim() && isCorrect() !== null ? "pr-10" : ""
|
|
10386
|
+
() => showStatus() && value() && value().trim() && isCorrect() !== null || isSkipped() ? "pr-10" : ""
|
|
10369
10387
|
]
|
|
10370
10388
|
);
|
|
10371
10389
|
event("focus", textarea, handleFocus);
|
|
@@ -10383,11 +10401,11 @@ function TypeInTextField($$anchor, $$props) {
|
|
|
10383
10401
|
var node_4 = sibling(input, 2);
|
|
10384
10402
|
{
|
|
10385
10403
|
var consequent_3 = ($$anchor3) => {
|
|
10386
|
-
var span_1 = root_5$
|
|
10404
|
+
var span_1 = root_5$3();
|
|
10387
10405
|
var node_5 = child(span_1);
|
|
10388
10406
|
{
|
|
10389
|
-
let $0 = /* @__PURE__ */ user_derived(() => Boolean(isCorrect()));
|
|
10390
|
-
let $1 = /* @__PURE__ */ user_derived(() => Boolean(isCorrect()) ? "text-green-700" : "text-red-850");
|
|
10407
|
+
let $0 = /* @__PURE__ */ user_derived(() => isSkipped() ? false : Boolean(isCorrect()));
|
|
10408
|
+
let $1 = /* @__PURE__ */ user_derived(() => !isSkipped() && Boolean(isCorrect()) ? "text-green-700" : "text-red-850");
|
|
10391
10409
|
ResultIcon(node_5, {
|
|
10392
10410
|
get isCorrect() {
|
|
10393
10411
|
return get$1($0);
|
|
@@ -10401,15 +10419,16 @@ function TypeInTextField($$anchor, $$props) {
|
|
|
10401
10419
|
append($$anchor3, span_1);
|
|
10402
10420
|
};
|
|
10403
10421
|
if_block(node_4, ($$render) => {
|
|
10404
|
-
if (showStatus() && value() && value().trim() && isCorrect() !== null) $$render(consequent_3);
|
|
10422
|
+
if (showStatus() && value() && value().trim() && isCorrect() !== null || isSkipped()) $$render(consequent_3);
|
|
10405
10423
|
});
|
|
10406
10424
|
}
|
|
10407
10425
|
reset(div_2);
|
|
10408
10426
|
template_effect(() => {
|
|
10409
|
-
set_class(input, 1, `input-short-txb typein-textbox typein-input ${showStatus() && !isSkipped() && isCorrect() === true ? "border-2 border-green-700 bg-green-400" : ""} ${showStatus() &&
|
|
10427
|
+
set_class(input, 1, `input-short-txb typein-textbox typein-input ${showStatus() && !isSkipped() && isCorrect() === true ? "border-2 border-green-700 bg-green-400" : ""} ${showStatus() && isCorrect() === false || isSkipped() ? "border-2 border-red-850" : ""}`);
|
|
10410
10428
|
set_attribute(input, "aria-label", get$1(ariaLabel));
|
|
10411
10429
|
input.readOnly = readonly();
|
|
10412
10430
|
input.disabled = disabled();
|
|
10431
|
+
set_attribute(input, "placeholder", get$1(typeinPlaceholder));
|
|
10413
10432
|
});
|
|
10414
10433
|
event("focus", input, handleFocus);
|
|
10415
10434
|
event("blur", input, handleBlur);
|
|
@@ -10509,9 +10528,9 @@ action.update = n.update;
|
|
|
10509
10528
|
action.destroy = n.destroy;
|
|
10510
10529
|
var root_1$c = /* @__PURE__ */ from_html(`<label data-testid="qn-number-txt" aria-hidden="true"><span></span> <span> </span></label>`);
|
|
10511
10530
|
var root_2$6 = /* @__PURE__ */ from_html(`<div role="textbox" aria-readonly="true"><!></div>`);
|
|
10512
|
-
var root_3$
|
|
10531
|
+
var root_3$8 = /* @__PURE__ */ from_html(`<textarea rows="1" readonly=""></textarea>`);
|
|
10513
10532
|
var root_4 = /* @__PURE__ */ from_html(`<span class="w-6 h-6 absolute right-4 top-[calc(50%+0.375rem)] -translate-y-1/2 flex items-center justify-center"><!></span>`);
|
|
10514
|
-
var root$
|
|
10533
|
+
var root$a = /* @__PURE__ */ from_html(`<div><!> <!> <!></div>`);
|
|
10515
10534
|
function AnswerDisplay($$anchor, $$props) {
|
|
10516
10535
|
push($$props, true);
|
|
10517
10536
|
let answer = prop($$props, "answer", 7), isCorrect = prop($$props, "isCorrect", 7), questionNumber = prop($$props, "questionNumber", 7), type = prop($$props, "type", 7), showQuestionNumber = prop($$props, "showQuestionNumber", 7), showResultIcon = prop($$props, "showResultIcon", 7), comparison = prop($$props, "comparison", 7), interactionType = prop($$props, "interactionType", 7);
|
|
@@ -10639,7 +10658,7 @@ function AnswerDisplay($$anchor, $$props) {
|
|
|
10639
10658
|
flushSync();
|
|
10640
10659
|
}
|
|
10641
10660
|
};
|
|
10642
|
-
var div = root$
|
|
10661
|
+
var div = root$a();
|
|
10643
10662
|
var node = child(div);
|
|
10644
10663
|
{
|
|
10645
10664
|
var consequent = ($$anchor2) => {
|
|
@@ -10691,7 +10710,7 @@ function AnswerDisplay($$anchor, $$props) {
|
|
|
10691
10710
|
append($$anchor2, div_1);
|
|
10692
10711
|
};
|
|
10693
10712
|
var alternate = ($$anchor2) => {
|
|
10694
|
-
var textarea = root_3$
|
|
10713
|
+
var textarea = root_3$8();
|
|
10695
10714
|
remove_textarea_child(textarea);
|
|
10696
10715
|
action$1(textarea, ($$node) => action?.($$node));
|
|
10697
10716
|
template_effect(() => {
|
|
@@ -10753,7 +10772,7 @@ create_custom_element(
|
|
|
10753
10772
|
[],
|
|
10754
10773
|
true
|
|
10755
10774
|
);
|
|
10756
|
-
var root$
|
|
10775
|
+
var root$9 = /* @__PURE__ */ from_html(`<div class="flex flex-col md:flex-row"><div class="flex flex-col md:w-1/2 md:pr-4"><p data-testid="ans-sum-stud-hdr">Student's answers:</p> <!></div> <div><p data-testid="ans-sum-corr-hdr">Correct answers:</p> <!></div></div>`);
|
|
10757
10776
|
function ComparisonRow($$anchor, $$props) {
|
|
10758
10777
|
push($$props, true);
|
|
10759
10778
|
let comparison = prop($$props, "comparison", 7), showHeaders = prop($$props, "showHeaders", 7, false), isMultipleAnswers = prop($$props, "isMultipleAnswers", 7, false), isFirstRow = prop($$props, "isFirstRow", 7, false), interactionType = prop($$props, "interactionType", 7);
|
|
@@ -10814,7 +10833,7 @@ function ComparisonRow($$anchor, $$props) {
|
|
|
10814
10833
|
flushSync();
|
|
10815
10834
|
}
|
|
10816
10835
|
};
|
|
10817
|
-
var div = root$
|
|
10836
|
+
var div = root$9();
|
|
10818
10837
|
var div_1 = child(div);
|
|
10819
10838
|
var p = child(div_1);
|
|
10820
10839
|
var node = sibling(p, 2);
|
|
@@ -10994,7 +11013,7 @@ create_custom_element(
|
|
|
10994
11013
|
);
|
|
10995
11014
|
var root_1$a = /* @__PURE__ */ from_html(`<div aria-hidden="true" class="flex items-center text-charcoal mt-2"><!> <span class="p3">There is more than one possible correct answer for this question.</span></div>`);
|
|
10996
11015
|
var root_2$5 = /* @__PURE__ */ from_html(`<div class="mt-4"><!></div>`);
|
|
10997
|
-
var root$
|
|
11016
|
+
var root$8 = /* @__PURE__ */ from_html(`<!> <!> <!>`, 1);
|
|
10998
11017
|
function TypeInFeedback($$anchor, $$props) {
|
|
10999
11018
|
push($$props, true);
|
|
11000
11019
|
let config = prop($$props, "config", 7), feedbackState = prop($$props, "feedbackState", 7), isInteractiveMode2 = prop($$props, "isInteractiveMode", 7), correctAnswersFlat = prop($$props, "correctAnswersFlat", 7), allCorrectAnswers = prop($$props, "allCorrectAnswers", 7), sessionAnswersFlat = prop($$props, "sessionAnswersFlat", 7), answerResults = prop($$props, "answerResults", 7);
|
|
@@ -11007,7 +11026,7 @@ function TypeInFeedback($$anchor, $$props) {
|
|
|
11007
11026
|
}
|
|
11008
11027
|
return false;
|
|
11009
11028
|
})());
|
|
11010
|
-
const showHasMultipleAnswers = /* @__PURE__ */ user_derived(() =>
|
|
11029
|
+
const showHasMultipleAnswers = /* @__PURE__ */ user_derived(() => get$1(hasMultipleAnswers) && config().variant !== "inline" && (feedbackState().isSkipped || feedbackState().showStatusLine));
|
|
11011
11030
|
const showFeedbackAlert = /* @__PURE__ */ user_derived(() => feedbackState().isFeedbackShown && !feedbackState().isSkipped && config().variant === "inline" && !!feedbackState().resultFeedback?.trim());
|
|
11012
11031
|
const showInlineComparisonTable = /* @__PURE__ */ user_derived(() => feedbackState().showComparisonTable && config().variant === "inline");
|
|
11013
11032
|
const feedbackIconType = /* @__PURE__ */ user_derived(() => isInteractiveMode2() && config().variant === "inline" ? "info" : "result");
|
|
@@ -11077,7 +11096,7 @@ function TypeInFeedback($$anchor, $$props) {
|
|
|
11077
11096
|
flushSync();
|
|
11078
11097
|
}
|
|
11079
11098
|
};
|
|
11080
|
-
var fragment = root$
|
|
11099
|
+
var fragment = root$8();
|
|
11081
11100
|
var node = first_child(fragment);
|
|
11082
11101
|
{
|
|
11083
11102
|
var consequent = ($$anchor2) => {
|
|
@@ -11174,10 +11193,10 @@ create_custom_element(
|
|
|
11174
11193
|
[],
|
|
11175
11194
|
true
|
|
11176
11195
|
);
|
|
11177
|
-
var root_3$
|
|
11196
|
+
var root_3$7 = /* @__PURE__ */ from_html(`<p></p>`);
|
|
11178
11197
|
var root_8$1 = /* @__PURE__ */ from_html(`<div class="absolute inset-0 bg-transparent z-50"></div>`);
|
|
11179
11198
|
var root_2$4 = /* @__PURE__ */ from_html(`<div class="inline-typein-container mt-6 relative"><!> <div class="divider my-6"></div> <!></div>`);
|
|
11180
|
-
var root_10$
|
|
11199
|
+
var root_10$2 = /* @__PURE__ */ from_html(`<div class="mb-4"><!></div>`);
|
|
11181
11200
|
var root_9$1 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
|
|
11182
11201
|
function TypeInComponent($$anchor, $$props) {
|
|
11183
11202
|
push($$props, true);
|
|
@@ -11381,7 +11400,7 @@ function TypeInComponent($$anchor, $$props) {
|
|
|
11381
11400
|
var div = root_2$4();
|
|
11382
11401
|
var node_1 = child(div);
|
|
11383
11402
|
each(node_1, 17, () => segments, index, ($$anchor4, segment) => {
|
|
11384
|
-
var p = root_3$
|
|
11403
|
+
var p = root_3$7();
|
|
11385
11404
|
each(p, 21, () => get$1(segment).parts, index, ($$anchor5, part, partIndex) => {
|
|
11386
11405
|
var fragment_2 = comment();
|
|
11387
11406
|
var node_2 = first_child(fragment_2);
|
|
@@ -11467,7 +11486,7 @@ function TypeInComponent($$anchor, $$props) {
|
|
|
11467
11486
|
var node_6 = first_child(fragment_6);
|
|
11468
11487
|
{
|
|
11469
11488
|
var consequent_4 = ($$anchor4) => {
|
|
11470
|
-
var div_2 = root_10$
|
|
11489
|
+
var div_2 = root_10$2();
|
|
11471
11490
|
var node_7 = child(div_2);
|
|
11472
11491
|
{
|
|
11473
11492
|
let $02 = /* @__PURE__ */ user_derived(() => get$1(feedbackState).isResultCorrect ? "correct" : "incorrect");
|
|
@@ -14078,10 +14097,10 @@ function isInt(value) {
|
|
|
14078
14097
|
})(parseFloat(value));
|
|
14079
14098
|
}
|
|
14080
14099
|
var root_1$9 = /* @__PURE__ */ from_html(`<span class="text-green-800 preview-icon"><!></span>`);
|
|
14081
|
-
var root_3$
|
|
14082
|
-
var root_5$
|
|
14083
|
-
var root_7$
|
|
14084
|
-
var root$
|
|
14100
|
+
var root_3$6 = /* @__PURE__ */ from_html(`<span class="text-red-800 preview-icon"><!></span>`);
|
|
14101
|
+
var root_5$2 = /* @__PURE__ */ from_html(`<span class="text-green-800"><!></span>`);
|
|
14102
|
+
var root_7$3 = /* @__PURE__ */ from_html(`<span class="preview-vertical hidden"><!></span>`);
|
|
14103
|
+
var root$7 = /* @__PURE__ */ from_html(`<button data-item-button=""><span><!></span> <div><span></span> <span class="absolute"><!> <!></span></div></button>`);
|
|
14085
14104
|
function CategoriseItem($$anchor, $$props) {
|
|
14086
14105
|
push($$props, true);
|
|
14087
14106
|
let itemId = prop($$props, "itemId", 7), itemText = prop($$props, "itemText", 7), containerId = prop($$props, "containerId", 7), mode = prop($$props, "mode", 7), selectedItemId = prop($$props, "selectedItemId", 7, void 0), isLocked = prop($$props, "isLocked", 7, false), isCollapsed = prop($$props, "isCollapsed", 7, false), resultType = prop($$props, "resultType", 7, ""), isCurrentMobileItem = prop($$props, "isCurrentMobileItem", 7, true), isClonedItem = prop($$props, "isClonedItem", 7, false), isConsideredItem = prop($$props, "isConsideredItem", 7, false), activeContainerForKeyboard = prop($$props, "activeContainerForKeyboard", 7, void 0), onclick = prop($$props, "onclick", 7), onfocus = prop($$props, "onfocus", 7), onblur = prop($$props, "onblur", 7), onkeydown = prop($$props, "onkeydown", 7);
|
|
@@ -14373,7 +14392,7 @@ function CategoriseItem($$anchor, $$props) {
|
|
|
14373
14392
|
flushSync();
|
|
14374
14393
|
}
|
|
14375
14394
|
};
|
|
14376
|
-
var button = root$
|
|
14395
|
+
var button = root$7();
|
|
14377
14396
|
button.__click = selectItem;
|
|
14378
14397
|
button.__touchstart = handleTouchStart;
|
|
14379
14398
|
button.__touchmove = handleTouchMove;
|
|
@@ -14409,7 +14428,7 @@ function CategoriseItem($$anchor, $$props) {
|
|
|
14409
14428
|
var node_3 = first_child(fragment);
|
|
14410
14429
|
{
|
|
14411
14430
|
var consequent_1 = ($$anchor3) => {
|
|
14412
|
-
var span_4 = root_3$
|
|
14431
|
+
var span_4 = root_3$6();
|
|
14413
14432
|
var node_4 = child(span_4);
|
|
14414
14433
|
SvgLoader(node_4, {
|
|
14415
14434
|
svgName: "errorSolid",
|
|
@@ -14424,7 +14443,7 @@ function CategoriseItem($$anchor, $$props) {
|
|
|
14424
14443
|
var node_5 = first_child(fragment_1);
|
|
14425
14444
|
{
|
|
14426
14445
|
var consequent_2 = ($$anchor4) => {
|
|
14427
|
-
var span_5 = root_5$
|
|
14446
|
+
var span_5 = root_5$2();
|
|
14428
14447
|
var node_6 = child(span_5);
|
|
14429
14448
|
SvgLoader(node_6, {
|
|
14430
14449
|
svgName: "success",
|
|
@@ -14471,7 +14490,7 @@ function CategoriseItem($$anchor, $$props) {
|
|
|
14471
14490
|
var node_7 = sibling(node_1, 2);
|
|
14472
14491
|
{
|
|
14473
14492
|
var consequent_3 = ($$anchor2) => {
|
|
14474
|
-
var span_6 = root_7$
|
|
14493
|
+
var span_6 = root_7$3();
|
|
14475
14494
|
var node_8 = child(span_6);
|
|
14476
14495
|
SvgLoader(node_8, {
|
|
14477
14496
|
svgName: "gripVertical",
|
|
@@ -14541,9 +14560,9 @@ create_custom_element(
|
|
|
14541
14560
|
true
|
|
14542
14561
|
);
|
|
14543
14562
|
var root_1$8 = /* @__PURE__ */ from_html(`<button tabindex="0"></button>`);
|
|
14544
|
-
var root_7$
|
|
14545
|
-
var root_6$
|
|
14546
|
-
var root$
|
|
14563
|
+
var root_7$2 = /* @__PURE__ */ from_html(`<div class="w-full text-base text-charcoal font-semibold mt-1 mb-2">Missing answers:</div>`);
|
|
14564
|
+
var root_6$2 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
|
|
14565
|
+
var root$6 = /* @__PURE__ */ from_html(`<!> <section><!></section>`, 1);
|
|
14547
14566
|
function CategoriseDndContainer($$anchor, $$props) {
|
|
14548
14567
|
push($$props, true);
|
|
14549
14568
|
let containerId = prop($$props, "containerId", 7), containerLabel = prop($$props, "containerLabel", 7, ""), containerClass = prop($$props, "containerClass", 7, ""), showButton = prop($$props, "showButton", 7, true), items = prop($$props, "items", 23, () => []), selectedItemId = prop($$props, "selectedItemId", 7, void 0), isLocked = prop($$props, "isLocked", 7, false), isMobile = prop($$props, "isMobile", 7, false), mode = prop($$props, "mode", 7), paddingTop = prop($$props, "paddingTop", 7, 0), dndType = prop($$props, "dndType", 7, "categorise"), activeContainerForKeyboard = prop($$props, "activeContainerForKeyboard", 7, void 0), isCollapsed = prop($$props, "isCollapsed", 7, false), onitemdrop = prop($$props, "onitemdrop", 7), onitemselect = prop($$props, "onitemselect", 7), oncontainerclick = prop($$props, "oncontainerclick", 7), onitemfocus = prop($$props, "onitemfocus", 7), onitemblur = prop($$props, "onitemblur", 7), onitemkeydown = prop($$props, "onitemkeydown", 7), ondraghover = prop($$props, "ondraghover", 7), ondragstart = prop($$props, "ondragstart", 7), children = prop($$props, "children", 7);
|
|
@@ -14834,7 +14853,7 @@ function CategoriseDndContainer($$anchor, $$props) {
|
|
|
14834
14853
|
flushSync();
|
|
14835
14854
|
}
|
|
14836
14855
|
};
|
|
14837
|
-
var fragment = root$
|
|
14856
|
+
var fragment = root$6();
|
|
14838
14857
|
var node = first_child(fragment);
|
|
14839
14858
|
{
|
|
14840
14859
|
var consequent = ($$anchor2) => {
|
|
@@ -14883,11 +14902,11 @@ function CategoriseDndContainer($$anchor, $$props) {
|
|
|
14883
14902
|
var node_5 = first_child(fragment_4);
|
|
14884
14903
|
each(node_5, 19, () => get$1(localItems), (item) => `${item.id}-${get$1(dragCounter)}`, ($$anchor4, item, index2) => {
|
|
14885
14904
|
const itemResultType = /* @__PURE__ */ user_derived(() => getItemResultType(get$1(item).isClonedItem && get$1(item).cloneId ? get$1(item).cloneId : get$1(item).id));
|
|
14886
|
-
var fragment_5 = root_6$
|
|
14905
|
+
var fragment_5 = root_6$2();
|
|
14887
14906
|
var node_6 = first_child(fragment_5);
|
|
14888
14907
|
{
|
|
14889
14908
|
var consequent_3 = ($$anchor5) => {
|
|
14890
|
-
var div = root_7$
|
|
14909
|
+
var div = root_7$2();
|
|
14891
14910
|
append($$anchor5, div);
|
|
14892
14911
|
};
|
|
14893
14912
|
if_block(node_6, ($$render) => {
|
|
@@ -15005,9 +15024,9 @@ create_custom_element(
|
|
|
15005
15024
|
true
|
|
15006
15025
|
);
|
|
15007
15026
|
var root_2$3 = /* @__PURE__ */ from_svg(`<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-testid="icon-chevron-coll"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg>`);
|
|
15008
|
-
var root_3$
|
|
15027
|
+
var root_3$5 = /* @__PURE__ */ from_svg(`<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-testid="icon-chevron-exp"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 15l7-7 7 7"></path></svg>`);
|
|
15009
15028
|
var root_1$7 = /* @__PURE__ */ from_html(`<button type="button" class="focus-ring flex items-center rounded-[32px] p-1.5 text-charcoal text-sm border border-gray-800 bg-gray-50 min-w-[85px] ml-3 whitespace-nowrap active:raw-focus-ring active:bg-black-55"><span class="mx-0.5"> </span> <span class="w-4 h-4 text-inherit flex items-center justify-center"><!></span></button>`);
|
|
15010
|
-
var root$
|
|
15029
|
+
var root$5 = /* @__PURE__ */ from_html(`<div role="group" data-testid="cat-ctr"><div><!> <!></div> <!></div>`);
|
|
15011
15030
|
function CategoriseCategory($$anchor, $$props) {
|
|
15012
15031
|
push($$props, true);
|
|
15013
15032
|
let categoryId = prop($$props, "categoryId", 7), categoryTitle = prop($$props, "categoryTitle", 7), categoryIndex = prop($$props, "categoryIndex", 7, 1), items = prop($$props, "items", 23, () => []), selectedItemId = prop($$props, "selectedItemId", 7, void 0), isLocked = prop($$props, "isLocked", 7, false), isCollapsed = prop($$props, "isCollapsed", 7, false), isDraggingOver = prop($$props, "isDraggingOver", 7, false), dropContainerId = prop($$props, "dropContainerId", 7, void 0), hasAddItemAnimation = prop($$props, "hasAddItemAnimation", 7, false), dragSourceContainerId = prop($$props, "dragSourceContainerId", 7, void 0), mode = prop($$props, "mode", 7), isMobile = prop($$props, "isMobile", 7, false), hasStimulus = prop($$props, "hasStimulus", 7, false), dndType = prop($$props, "dndType", 7, "categorise"), tabindex = prop($$props, "tabindex", 7, 0), activeContainerForKeyboard = prop($$props, "activeContainerForKeyboard", 7, void 0), onitemdrop = prop($$props, "onitemdrop", 7), onitemselect = prop($$props, "onitemselect", 7), oncontainerclick = prop($$props, "oncontainerclick", 7), ontogglecollapse = prop($$props, "ontogglecollapse", 7), onitemfocus = prop($$props, "onitemfocus", 7), onitemblur = prop($$props, "onitemblur", 7), onitemkeydown = prop($$props, "onitemkeydown", 7), onkeydown = prop($$props, "onkeydown", 7), ondraghover = prop($$props, "ondraghover", 7), ondragstart = prop($$props, "ondragstart", 7);
|
|
@@ -15249,7 +15268,7 @@ function CategoriseCategory($$anchor, $$props) {
|
|
|
15249
15268
|
flushSync();
|
|
15250
15269
|
}
|
|
15251
15270
|
};
|
|
15252
|
-
var div = root$
|
|
15271
|
+
var div = root$5();
|
|
15253
15272
|
div.__keydown = function(...$$args) {
|
|
15254
15273
|
(onkeydown() || void 0)?.apply(this, $$args);
|
|
15255
15274
|
};
|
|
@@ -15284,7 +15303,7 @@ function CategoriseCategory($$anchor, $$props) {
|
|
|
15284
15303
|
append($$anchor3, svg);
|
|
15285
15304
|
};
|
|
15286
15305
|
var alternate = ($$anchor3) => {
|
|
15287
|
-
var svg_1 = root_3$
|
|
15306
|
+
var svg_1 = root_3$5();
|
|
15288
15307
|
append($$anchor3, svg_1);
|
|
15289
15308
|
};
|
|
15290
15309
|
if_block(node_2, ($$render) => {
|
|
@@ -15432,8 +15451,8 @@ create_custom_element(
|
|
|
15432
15451
|
var root_1$6 = /* @__PURE__ */ from_html(`<div role="group" tabindex="-1" class="text-base leading-4 text-gray-800 p-5 border border-gray-400 rounded-lg border-dashed
|
|
15433
15452
|
absolute top-12 right-4 left-4 bottom-4 flex items-center justify-center !bg-white md:top-20">Word Bin is empty</div>`);
|
|
15434
15453
|
var root_2$2 = /* @__PURE__ */ from_html(`<button type="button" class="focus-ring p-2 text-blue-1000 rounded-md w-11 h-11 mt-9 td:hover:bg-black-50 active:bg-black-60 disabled:text-gray-40 disabled:hover:bg-white md:hidden" aria-label="Left"><span class="w-6 h-6 text-inherit flex items-center justify-center"><!></span></button>`);
|
|
15435
|
-
var root_3$
|
|
15436
|
-
var root$
|
|
15454
|
+
var root_3$4 = /* @__PURE__ */ from_html(`<button type="button" class="focus-ring p-2 text-blue-1000 rounded-md w-11 h-11 mt-9 td:hover:bg-black-50 active:bg-black-60 disabled:text-gray-40 disabled:hover:bg-white md:hidden" aria-label="Right"><span class="w-6 h-6 text-inherit flex items-center justify-center ml-[3px]"><!></span></button>`);
|
|
15455
|
+
var root$4 = /* @__PURE__ */ from_html(`<div role="group" data-testid="cat-bin-grp"><div><span class="text-base leading-5 !text-gray-900 font-semibold md:mb-2 md:item-heading" aria-hidden="true">Word Bin </span> <span class="text-base leading-5 !text-gray-900 md:item-heading" aria-hidden="true"> </span></div> <div class="flex items-center justify-between px-4 min-h-[133px] md:min-h-0 md:block md:px-0 md:justify-normal"><!> <!> <!> <!></div></div>`);
|
|
15437
15456
|
function CategoriseWordBin($$anchor, $$props) {
|
|
15438
15457
|
push($$props, true);
|
|
15439
15458
|
let containerId = prop($$props, "containerId", 7), items = prop($$props, "items", 23, () => []), selectedItemId = prop($$props, "selectedItemId", 7, void 0), isLocked = prop($$props, "isLocked", 7, false), isDraggingOver = prop($$props, "isDraggingOver", 7, false), dropContainerId = prop($$props, "dropContainerId", 7, void 0), hasAddItemAnimation = prop($$props, "hasAddItemAnimation", 7, false), dragSourceContainerId = prop($$props, "dragSourceContainerId", 7, void 0), mode = prop($$props, "mode", 7), isMobile = prop($$props, "isMobile", 7, false), currentMobileIndex = prop($$props, "currentMobileIndex", 7, 0), totalItems = prop($$props, "totalItems", 7, 0), tabindex = prop($$props, "tabindex", 7, 0), dndType = prop($$props, "dndType", 7, "categorise"), activeContainerForKeyboard = prop($$props, "activeContainerForKeyboard", 7, void 0), onitemdrop = prop($$props, "onitemdrop", 7), onitemselect = prop($$props, "onitemselect", 7), oncontainerclick = prop($$props, "oncontainerclick", 7), onnavigateitem = prop($$props, "onnavigateitem", 7), onitemfocus = prop($$props, "onitemfocus", 7), onitemblur = prop($$props, "onitemblur", 7), onitemkeydown = prop($$props, "onitemkeydown", 7), ondraghover = prop($$props, "ondraghover", 7), ondragstart = prop($$props, "ondragstart", 7), onkeydown = prop($$props, "onkeydown", 7), onfocus = prop($$props, "onfocus", 7, void 0);
|
|
@@ -15693,7 +15712,7 @@ function CategoriseWordBin($$anchor, $$props) {
|
|
|
15693
15712
|
flushSync();
|
|
15694
15713
|
}
|
|
15695
15714
|
};
|
|
15696
|
-
var div = root$
|
|
15715
|
+
var div = root$4();
|
|
15697
15716
|
div.__keydown = function(...$$args) {
|
|
15698
15717
|
(onkeydown() || void 0)?.apply(this, $$args);
|
|
15699
15718
|
};
|
|
@@ -15800,7 +15819,7 @@ function CategoriseWordBin($$anchor, $$props) {
|
|
|
15800
15819
|
var node_4 = sibling(node_3, 2);
|
|
15801
15820
|
{
|
|
15802
15821
|
var consequent_2 = ($$anchor2) => {
|
|
15803
|
-
var button_1 = root_3$
|
|
15822
|
+
var button_1 = root_3$4();
|
|
15804
15823
|
button_1.__click = () => handleNavigate("right");
|
|
15805
15824
|
button_1.__keydown = (e2) => {
|
|
15806
15825
|
if (e2.key === "Enter" || e2.key === " ") {
|
|
@@ -15875,7 +15894,7 @@ create_custom_element(
|
|
|
15875
15894
|
["wordBinElement"],
|
|
15876
15895
|
true
|
|
15877
15896
|
);
|
|
15878
|
-
var root$
|
|
15897
|
+
var root$3 = /* @__PURE__ */ from_html(`<div><!></div>`);
|
|
15879
15898
|
function CategoriseCategoryList($$anchor, $$props) {
|
|
15880
15899
|
push($$props, true);
|
|
15881
15900
|
let hasStimulus = prop($$props, "hasStimulus", 7, false), children = prop($$props, "children", 7);
|
|
@@ -15895,7 +15914,7 @@ function CategoriseCategoryList($$anchor, $$props) {
|
|
|
15895
15914
|
flushSync();
|
|
15896
15915
|
}
|
|
15897
15916
|
};
|
|
15898
|
-
var div = root$
|
|
15917
|
+
var div = root$3();
|
|
15899
15918
|
var node = child(div);
|
|
15900
15919
|
snippet(node, children);
|
|
15901
15920
|
reset(div);
|
|
@@ -17636,17 +17655,17 @@ function useDropdownPosition(config) {
|
|
|
17636
17655
|
}
|
|
17637
17656
|
var root_1$3 = /* @__PURE__ */ from_html(`<div class="absolute inset-0 bg-transparent z-10"></div>`);
|
|
17638
17657
|
var root_2 = /* @__PURE__ */ from_html(`<div class="bg-black bg-opacity-5 h-full flex flex-none justify-center items-center"><div class="inline-txb-lbl font-semibold text-base leading-[19px] text-charcoal px-3 flex items-center" data-testid="inline-txb-lbl" aria-hidden="true"> </div></div>`);
|
|
17639
|
-
var root_3$
|
|
17640
|
-
var root_6 = /* @__PURE__ */ from_html(`<span class="text-green-900 mr-2"><span aria-hidden="true"><!></span> <span class="sr-only">Correct</span></span>`);
|
|
17641
|
-
var root_7 = /* @__PURE__ */ from_html(`<span class="text-red-900 mr-2"><span aria-hidden="true"><!></span> <span class="sr-only">Incorrect</span></span>`);
|
|
17658
|
+
var root_3$3 = /* @__PURE__ */ from_html(`<span class="text-green-900 mr-2"><span aria-hidden="true"><!></span> <span class="sr-only">Correct</span></span>`);
|
|
17659
|
+
var root_6$1 = /* @__PURE__ */ from_html(`<span class="text-green-900 mr-2"><span aria-hidden="true"><!></span> <span class="sr-only">Correct</span></span>`);
|
|
17660
|
+
var root_7$1 = /* @__PURE__ */ from_html(`<span class="text-red-900 mr-2"><span aria-hidden="true"><!></span> <span class="sr-only">Incorrect</span></span>`);
|
|
17642
17661
|
var root_8 = /* @__PURE__ */ from_html(`<span class="flex items-center justify-center text-blue-1000"><span aria-hidden="true"><!></span></span>`);
|
|
17643
17662
|
var root_9 = /* @__PURE__ */ from_html(`<span class="flex items-center justify-center text-blue-1000"><span aria-hidden="true"><!></span></span>`);
|
|
17644
17663
|
var root_12 = /* @__PURE__ */ from_html(`<span class="flex items-center text-green-900" aria-hidden="true"><!></span>`);
|
|
17645
|
-
var root_14 = /* @__PURE__ */ from_html(`<span class="flex items-center text-red-900" aria-hidden="true"><!></span>`);
|
|
17646
|
-
var root_16 = /* @__PURE__ */ from_html(`<span class="flex items-center text-blue-850" aria-hidden="true"><!></span>`);
|
|
17647
|
-
var root_11 = /* @__PURE__ */ from_html(`<li role="option" tabindex="-1"><div class="p-0.5 flex justify-between w-full text-base whitespace-normal"><!> <!></div></li>`);
|
|
17648
|
-
var root_10 = /* @__PURE__ */ from_html(`<ul class="drp-list dropdown-menu block" data-testid="drp-list" role="listbox" tabindex="-1"></ul>`);
|
|
17649
|
-
var root$
|
|
17664
|
+
var root_14$1 = /* @__PURE__ */ from_html(`<span class="flex items-center text-red-900" aria-hidden="true"><!></span>`);
|
|
17665
|
+
var root_16$1 = /* @__PURE__ */ from_html(`<span class="flex items-center text-blue-850" aria-hidden="true"><!></span>`);
|
|
17666
|
+
var root_11$1 = /* @__PURE__ */ from_html(`<li role="option" tabindex="-1"><div class="p-0.5 flex justify-between w-full text-base whitespace-normal"><!> <!></div></li>`);
|
|
17667
|
+
var root_10$1 = /* @__PURE__ */ from_html(`<ul class="drp-list dropdown-menu block" data-testid="drp-list" role="listbox" tabindex="-1"></ul>`);
|
|
17668
|
+
var root$2 = /* @__PURE__ */ from_html(`<span class="dropdown inline-block relative align-middle"><span class="sr-only"> </span> <!> <div role="combobox" data-testid="drp-cmb" aria-haspopup="listbox" tabindex="0"><!> <div class="px-4 flex flex-1 min-w-0 align-middle truncate items-center justify-between w-full"><span><!></span> <div class="flex items-center"><!> <!></div></div></div> <!></span>`);
|
|
17650
17669
|
function DropdownContainer($$anchor, $$props) {
|
|
17651
17670
|
push($$props, true);
|
|
17652
17671
|
let dropdownId = prop($$props, "dropdownId", 7), dropdownNumber = prop($$props, "dropdownNumber", 7), options = prop($$props, "options", 7), selected = prop($$props, "selected", 7), correctAnswers = prop($$props, "correctAnswers", 23, () => []), isCorrect = prop($$props, "isCorrect", 7, false), isFinished = prop($$props, "isFinished", 7, false), isLocked = prop($$props, "isLocked", 7, false), isDataSaving = prop($$props, "isDataSaving", 7, false), mode = prop($$props, "mode", 7), showFeedback = prop($$props, "showFeedback", 7, false), showNumbering = prop($$props, "showNumbering", 7, true), onselect = prop($$props, "onselect", 7), viewportBuffer = prop($$props, "viewportBuffer", 7, 60);
|
|
@@ -18019,7 +18038,7 @@ function DropdownContainer($$anchor, $$props) {
|
|
|
18019
18038
|
flushSync();
|
|
18020
18039
|
}
|
|
18021
18040
|
};
|
|
18022
|
-
var span = root$
|
|
18041
|
+
var span = root$2();
|
|
18023
18042
|
var span_1 = child(span);
|
|
18024
18043
|
var text = child(span_1, true);
|
|
18025
18044
|
reset(span_1);
|
|
@@ -18064,7 +18083,7 @@ function DropdownContainer($$anchor, $$props) {
|
|
|
18064
18083
|
var node_3 = child(div_5);
|
|
18065
18084
|
{
|
|
18066
18085
|
var consequent_2 = ($$anchor2) => {
|
|
18067
|
-
var span_3 = root_3$
|
|
18086
|
+
var span_3 = root_3$3();
|
|
18068
18087
|
var span_4 = child(span_3);
|
|
18069
18088
|
var node_4 = child(span_4);
|
|
18070
18089
|
SvgLoader(node_4, { svgName: "successSolid", className: "correct-icon" });
|
|
@@ -18082,7 +18101,7 @@ function DropdownContainer($$anchor, $$props) {
|
|
|
18082
18101
|
var node_6 = first_child(fragment_1);
|
|
18083
18102
|
{
|
|
18084
18103
|
var consequent_3 = ($$anchor4) => {
|
|
18085
|
-
var span_5 = root_6();
|
|
18104
|
+
var span_5 = root_6$1();
|
|
18086
18105
|
var span_6 = child(span_5);
|
|
18087
18106
|
var node_7 = child(span_6);
|
|
18088
18107
|
SvgLoader(node_7, { svgName: "successSolid", className: "correct-icon" });
|
|
@@ -18092,7 +18111,7 @@ function DropdownContainer($$anchor, $$props) {
|
|
|
18092
18111
|
append($$anchor4, span_5);
|
|
18093
18112
|
};
|
|
18094
18113
|
var alternate = ($$anchor4) => {
|
|
18095
|
-
var span_7 = root_7();
|
|
18114
|
+
var span_7 = root_7$1();
|
|
18096
18115
|
var span_8 = child(span_7);
|
|
18097
18116
|
var node_8 = child(span_8);
|
|
18098
18117
|
SvgLoader(node_8, { svgName: "errorSolid", className: "incorrect-icon" });
|
|
@@ -18165,13 +18184,13 @@ function DropdownContainer($$anchor, $$props) {
|
|
|
18165
18184
|
var node_12 = sibling(div_1, 2);
|
|
18166
18185
|
{
|
|
18167
18186
|
var consequent_9 = ($$anchor2) => {
|
|
18168
|
-
var ul = root_10();
|
|
18187
|
+
var ul = root_10$1();
|
|
18169
18188
|
each(ul, 21, () => get$1(initializedOptions), index, ($$anchor3, option, index2) => {
|
|
18170
18189
|
const iconType = /* @__PURE__ */ user_derived(() => getOptionIcon(get$1(option)));
|
|
18171
18190
|
const showCurrentOption = /* @__PURE__ */ user_derived(() => isCurrentOption(index2));
|
|
18172
18191
|
const showHoverOption = /* @__PURE__ */ user_derived(() => shouldShowHover(index2));
|
|
18173
18192
|
const optionAriaLabel = /* @__PURE__ */ user_derived(() => getOptionAriaLabel(get$1(option), index2));
|
|
18174
|
-
var li = root_11();
|
|
18193
|
+
var li = root_11$1();
|
|
18175
18194
|
li.__mousedown = (e2) => e2.preventDefault();
|
|
18176
18195
|
li.__click = async (e2) => {
|
|
18177
18196
|
e2.preventDefault();
|
|
@@ -18208,7 +18227,7 @@ function DropdownContainer($$anchor, $$props) {
|
|
|
18208
18227
|
var node_16 = first_child(fragment_2);
|
|
18209
18228
|
{
|
|
18210
18229
|
var consequent_7 = ($$anchor5) => {
|
|
18211
|
-
var span_14 = root_14();
|
|
18230
|
+
var span_14 = root_14$1();
|
|
18212
18231
|
var node_17 = child(span_14);
|
|
18213
18232
|
SvgLoader(node_17, { svgName: "errorSolid", className: "incorrect-icon" });
|
|
18214
18233
|
reset(span_14);
|
|
@@ -18219,7 +18238,7 @@ function DropdownContainer($$anchor, $$props) {
|
|
|
18219
18238
|
var node_18 = first_child(fragment_3);
|
|
18220
18239
|
{
|
|
18221
18240
|
var consequent_8 = ($$anchor6) => {
|
|
18222
|
-
var span_15 = root_16();
|
|
18241
|
+
var span_15 = root_16$1();
|
|
18223
18242
|
var node_19 = child(span_15);
|
|
18224
18243
|
SvgLoader(node_19, { svgName: "successSolid", className: "correct-icon" });
|
|
18225
18244
|
reset(span_15);
|
|
@@ -18315,9 +18334,9 @@ create_custom_element(
|
|
|
18315
18334
|
[],
|
|
18316
18335
|
true
|
|
18317
18336
|
);
|
|
18318
|
-
var root_5 = /* @__PURE__ */ from_html(`<span class="dropdown-text text-xl font-semibold leading-12 text-blue-1000"><!></span>`);
|
|
18337
|
+
var root_5$1 = /* @__PURE__ */ from_html(`<span class="dropdown-text text-xl font-semibold leading-12 text-blue-1000"><!></span>`);
|
|
18319
18338
|
var root_1$2 = /* @__PURE__ */ from_html(`<p class="mb-4"></p>`);
|
|
18320
|
-
var root = /* @__PURE__ */ from_html(`<div class="my-6"></div>`);
|
|
18339
|
+
var root$1 = /* @__PURE__ */ from_html(`<div class="my-6"></div>`);
|
|
18321
18340
|
function DropdownInteractionContent($$anchor, $$props) {
|
|
18322
18341
|
push($$props, true);
|
|
18323
18342
|
let config = prop($$props, "config", 7), state2 = prop($$props, "state", 7), isDataSaving = prop($$props, "isDataSaving", 7, false), showFeedback = prop($$props, "showFeedback", 7, false), onselection = prop($$props, "onselection", 7);
|
|
@@ -18432,7 +18451,7 @@ function DropdownInteractionContent($$anchor, $$props) {
|
|
|
18432
18451
|
flushSync();
|
|
18433
18452
|
}
|
|
18434
18453
|
};
|
|
18435
|
-
var div = root();
|
|
18454
|
+
var div = root$1();
|
|
18436
18455
|
each(div, 21, () => get$1(promptLines), index, ($$anchor2, promptLine) => {
|
|
18437
18456
|
var p = root_1$2();
|
|
18438
18457
|
each(p, 21, () => dropdownParser.parseText(get$1(promptLine)), index, ($$anchor3, part) => {
|
|
@@ -18492,7 +18511,7 @@ function DropdownInteractionContent($$anchor, $$props) {
|
|
|
18492
18511
|
var node_1 = first_child(fragment_2);
|
|
18493
18512
|
{
|
|
18494
18513
|
var consequent_1 = ($$anchor5) => {
|
|
18495
|
-
var span = root_5();
|
|
18514
|
+
var span = root_5$1();
|
|
18496
18515
|
var node_2 = child(span);
|
|
18497
18516
|
html(node_2, () => get$1(part).text);
|
|
18498
18517
|
reset(span);
|
|
@@ -18619,7 +18638,7 @@ function DropdownFeedback($$anchor, $$props) {
|
|
|
18619
18638
|
return pop($$exports);
|
|
18620
18639
|
}
|
|
18621
18640
|
create_custom_element(DropdownFeedback, { feedbackState: {}, config: {}, interactionType: {} }, [], [], true);
|
|
18622
|
-
var root_3 = /* @__PURE__ */ from_html(`<div aria-live="polite" class="mb-6"><!></div>`);
|
|
18641
|
+
var root_3$2 = /* @__PURE__ */ from_html(`<div aria-live="polite" class="mb-6"><!></div>`);
|
|
18623
18642
|
function DropdownComponent($$anchor, $$props) {
|
|
18624
18643
|
push($$props, true);
|
|
18625
18644
|
let api = prop($$props, "api", 7), config = prop($$props, "config", 7), isDataSaving = prop($$props, "isDataSaving", 7, false), onstateChange = prop($$props, "onstateChange", 7);
|
|
@@ -18770,7 +18789,7 @@ function DropdownComponent($$anchor, $$props) {
|
|
|
18770
18789
|
var node = first_child(fragment_2);
|
|
18771
18790
|
{
|
|
18772
18791
|
var consequent = ($$anchor3) => {
|
|
18773
|
-
var div = root_3();
|
|
18792
|
+
var div = root_3$2();
|
|
18774
18793
|
var node_1 = child(div);
|
|
18775
18794
|
DropdownFeedback(node_1, {
|
|
18776
18795
|
get feedbackState() {
|
|
@@ -19078,10 +19097,731 @@ const createDropdownConfig = (loadedData) => {
|
|
|
19078
19097
|
};
|
|
19079
19098
|
};
|
|
19080
19099
|
registerInteraction("dropdown", createDropdownInteraction, DropdownComponent);
|
|
19100
|
+
const decodeNbsp = (text) => text.replace(/&nbsp;/g, " ").replace(/ /g, " ");
|
|
19101
|
+
const splitParagraphs = (rawText) => rawText.split(/<\/p>/i).map((p) => p.replace(/^<p>/i, "").trim()).filter(Boolean);
|
|
19102
|
+
const parseSentences = (rawText, correctAnswers = []) => {
|
|
19103
|
+
const paragraphs = splitParagraphs(rawText);
|
|
19104
|
+
const segments = [];
|
|
19105
|
+
let posIndex = 0;
|
|
19106
|
+
let correctIndex = 0;
|
|
19107
|
+
for (let pIdx = 0; pIdx < paragraphs.length; pIdx++) {
|
|
19108
|
+
const para = paragraphs[pIdx];
|
|
19109
|
+
const decoded = para.replace(/<eat-contentful>/g, "<eat-contentful>").replace(/<\/eat-contentful>/g, "</eat-contentful>").replace(/<eat-sentence>/g, "<eat-sentence>");
|
|
19110
|
+
const chunks = decoded.split("<eat-sentence>");
|
|
19111
|
+
for (const chunk of chunks) {
|
|
19112
|
+
const contentfulMatch = chunk.match(/<eat-contentful>(.*?)<\/eat-contentful>/);
|
|
19113
|
+
const text = decodeNbsp((contentfulMatch ? contentfulMatch[1] : chunk).trim());
|
|
19114
|
+
if (text) {
|
|
19115
|
+
const id = contentfulMatch ? correctAnswers[correctIndex]?.id ?? String(posIndex) : String(posIndex);
|
|
19116
|
+
if (contentfulMatch) correctIndex++;
|
|
19117
|
+
segments.push({ id, text });
|
|
19118
|
+
posIndex++;
|
|
19119
|
+
}
|
|
19120
|
+
}
|
|
19121
|
+
if (pIdx < paragraphs.length - 1) {
|
|
19122
|
+
segments.push({ id: `br-${pIdx}`, text: "", isLineBreak: true });
|
|
19123
|
+
}
|
|
19124
|
+
}
|
|
19125
|
+
return segments;
|
|
19126
|
+
};
|
|
19127
|
+
const parseWords = (rawText, correctAnswers = []) => {
|
|
19128
|
+
const paragraphs = splitParagraphs(rawText);
|
|
19129
|
+
const segments = [];
|
|
19130
|
+
let globalIndex = 1;
|
|
19131
|
+
let correctIndex = 0;
|
|
19132
|
+
const tokenRegex = /<eat-contentful>(.*?)<\/eat-contentful>|([^<>]+)/g;
|
|
19133
|
+
const trailingPunctRe = /([.,!?;:)\]"'»…\u2014\u2013]+)$/;
|
|
19134
|
+
const purePunctRe = /^[^\w\u00C0-\u024F]+$/;
|
|
19135
|
+
for (let pIdx = 0; pIdx < paragraphs.length; pIdx++) {
|
|
19136
|
+
const para = paragraphs[pIdx];
|
|
19137
|
+
const decoded = para.replace(/<eat-contentful>/g, "<eat-contentful>").replace(/<\/eat-contentful>/g, "</eat-contentful>");
|
|
19138
|
+
tokenRegex.lastIndex = 0;
|
|
19139
|
+
let match;
|
|
19140
|
+
while ((match = tokenRegex.exec(decoded)) !== null) {
|
|
19141
|
+
if (match[1] !== void 0) {
|
|
19142
|
+
const raw = decodeNbsp(match[1].trim());
|
|
19143
|
+
if (raw) {
|
|
19144
|
+
const punctMatch = raw.match(trailingPunctRe);
|
|
19145
|
+
const text = punctMatch ? raw.slice(0, -punctMatch[1].length) : raw;
|
|
19146
|
+
const trailingPunctuation = punctMatch ? punctMatch[1] : void 0;
|
|
19147
|
+
const id = correctAnswers[correctIndex]?.id ?? `w-${globalIndex}`;
|
|
19148
|
+
segments.push({ id, text, trailingPunctuation });
|
|
19149
|
+
correctIndex++;
|
|
19150
|
+
globalIndex++;
|
|
19151
|
+
}
|
|
19152
|
+
} else if (match[2] !== void 0) {
|
|
19153
|
+
const words = match[2].split(/\s+/).filter(Boolean);
|
|
19154
|
+
for (const word of words) {
|
|
19155
|
+
if (purePunctRe.test(word)) {
|
|
19156
|
+
const prev = segments[segments.length - 1];
|
|
19157
|
+
if (prev && !prev.isPunctuation && !prev.isLineBreak) {
|
|
19158
|
+
prev.trailingPunctuation = (prev.trailingPunctuation ?? "") + word;
|
|
19159
|
+
} else {
|
|
19160
|
+
segments.push({ id: `punct-${globalIndex}`, text: word, isPunctuation: true });
|
|
19161
|
+
}
|
|
19162
|
+
} else {
|
|
19163
|
+
const punctMatch = word.match(trailingPunctRe);
|
|
19164
|
+
const text = decodeNbsp(punctMatch ? word.slice(0, -punctMatch[1].length) : word);
|
|
19165
|
+
const trailingPunctuation = punctMatch ? punctMatch[1] : void 0;
|
|
19166
|
+
segments.push({ id: `w-${globalIndex}`, text, trailingPunctuation });
|
|
19167
|
+
globalIndex++;
|
|
19168
|
+
}
|
|
19169
|
+
}
|
|
19170
|
+
}
|
|
19171
|
+
}
|
|
19172
|
+
if (pIdx < paragraphs.length - 1) {
|
|
19173
|
+
segments.push({ id: `br-${pIdx}`, text: "", isLineBreak: true });
|
|
19174
|
+
}
|
|
19175
|
+
}
|
|
19176
|
+
return segments;
|
|
19177
|
+
};
|
|
19178
|
+
const parseSelectableText = (text, selectableType, correctAnswers = []) => {
|
|
19179
|
+
if (selectableType === "Sentence") {
|
|
19180
|
+
return parseSentences(text, correctAnswers);
|
|
19181
|
+
}
|
|
19182
|
+
return parseWords(text, correctAnswers);
|
|
19183
|
+
};
|
|
19184
|
+
function getSegmentState(segmentId, selectedIds, correctAnswerIds, isPreviewMode2, isValidating) {
|
|
19185
|
+
const isSegmentSelected = selectedIds.includes(segmentId);
|
|
19186
|
+
const isInCorrectAnswers = correctAnswerIds.includes(segmentId);
|
|
19187
|
+
const isCorrect = isPreviewMode2 && isInCorrectAnswers || isValidating && isSegmentSelected && isInCorrectAnswers;
|
|
19188
|
+
const isIncorrect = isValidating && isSegmentSelected && !isInCorrectAnswers;
|
|
19189
|
+
const isMissing = isValidating && !isSegmentSelected && isInCorrectAnswers;
|
|
19190
|
+
return { isSegmentSelected, isCorrect, isIncorrect, isMissing };
|
|
19191
|
+
}
|
|
19192
|
+
const useSelectableText = (config) => {
|
|
19193
|
+
const segments = parseSelectableText(
|
|
19194
|
+
config.text,
|
|
19195
|
+
config.selectable_type,
|
|
19196
|
+
config.correct_answers ?? []
|
|
19197
|
+
);
|
|
19198
|
+
const isAtMaxSelections = (currentSelections) => {
|
|
19199
|
+
return config.max_selections != null && currentSelections.length >= config.max_selections;
|
|
19200
|
+
};
|
|
19201
|
+
return {
|
|
19202
|
+
segments,
|
|
19203
|
+
isAtMaxSelections
|
|
19204
|
+
};
|
|
19205
|
+
};
|
|
19206
|
+
function useSelectableTextState(config, selections) {
|
|
19207
|
+
const isPreviewMode2 = config.mode === MODES.PREVIEW;
|
|
19208
|
+
const isInteractiveMode2 = config.mode === MODES.INTERACTIVE;
|
|
19209
|
+
const isSessionMode2 = config.mode === MODES.SESSION;
|
|
19210
|
+
const correctAnswerIds = config.correct_answers?.map((a) => a.id) ?? [];
|
|
19211
|
+
const maxSelections = config.max_selections ?? correctAnswerIds.length;
|
|
19212
|
+
const isValidating = isInteractiveMode2 && maxSelections > 0 && selections.length >= maxSelections;
|
|
19213
|
+
const isAllCorrect = isValidating && selections.length === correctAnswerIds.length && selections.every((id) => correctAnswerIds.includes(id));
|
|
19214
|
+
return {
|
|
19215
|
+
isPreviewMode: isPreviewMode2,
|
|
19216
|
+
isInteractiveMode: isInteractiveMode2,
|
|
19217
|
+
isSessionMode: isSessionMode2,
|
|
19218
|
+
correctAnswerIds,
|
|
19219
|
+
maxSelections,
|
|
19220
|
+
isValidating,
|
|
19221
|
+
isAllCorrect
|
|
19222
|
+
};
|
|
19223
|
+
}
|
|
19224
|
+
function useSelectableTextFeedback(isValidating, isAllCorrect, config) {
|
|
19225
|
+
const feedbackType = isAllCorrect ? "correct" : "incorrect";
|
|
19226
|
+
const feedbackMessage = isValidating ? isAllCorrect ? config.feedback?.correct ?? "" : config.feedback?.incorrect ?? "" : "";
|
|
19227
|
+
const isFeedbackShown = isValidating && feedbackMessage.length > 0;
|
|
19228
|
+
return { isFeedbackShown, feedbackType, feedbackMessage };
|
|
19229
|
+
}
|
|
19230
|
+
var root_3$1 = /* @__PURE__ */ from_html(`<br/>`);
|
|
19231
|
+
var root_5 = /* @__PURE__ */ from_html(`<span class="segment-punctuation" aria-hidden="true"> </span>`);
|
|
19232
|
+
var root_7 = /* @__PURE__ */ from_html(`<span class="segment-trailing-punct" aria-hidden="true"> </span>`);
|
|
19233
|
+
var root_6 = /* @__PURE__ */ from_html(`<span class="selectable-segment" aria-hidden="true"> <!></span>`);
|
|
19234
|
+
var root_10 = /* @__PURE__ */ from_html(`<br/>`);
|
|
19235
|
+
var root_13 = /* @__PURE__ */ from_html(`<span class="segment-punctuation" aria-hidden="true"> </span>`);
|
|
19236
|
+
var root_15 = /* @__PURE__ */ from_html(`<span class="selectable-segment-missing-badge" aria-hidden="true" data-testid="select-mis-ans-tt">Missing answer</span>`);
|
|
19237
|
+
var root_16 = /* @__PURE__ */ from_html(`<span aria-hidden="true" class="selectable-segment-deselect-icon" data-testid="select-close-icon"><!></span>`);
|
|
19238
|
+
var root_18 = /* @__PURE__ */ from_html(`<span aria-hidden="true" class="selectable-segment-status-icon"><!></span>`);
|
|
19239
|
+
var root_19 = /* @__PURE__ */ from_html(`<span class="segment-trailing-punct" aria-hidden="true"> </span>`);
|
|
19240
|
+
var root_20 = /* @__PURE__ */ from_html(`<span class="sr-only">Correct answer</span>`);
|
|
19241
|
+
var root_21 = /* @__PURE__ */ from_html(`<span class="sr-only">Incorrect answer</span>`);
|
|
19242
|
+
var root_22 = /* @__PURE__ */ from_html(`<span class="sr-only">Missing answer</span>`);
|
|
19243
|
+
var root_14 = /* @__PURE__ */ from_html(`<span role="button"><!> <span class="selectable-segment-text"> <!></span> <!> <!> <!> <!></span>`);
|
|
19244
|
+
var root_11 = /* @__PURE__ */ from_html(`<span></span>`);
|
|
19245
|
+
var root = /* @__PURE__ */ from_html(`<div class="selectable-text-passage" data-testid="select-passage-ctr"><!></div>`);
|
|
19246
|
+
function SelectableTextInteractionContent($$anchor, $$props) {
|
|
19247
|
+
push($$props, true);
|
|
19248
|
+
let config = prop($$props, "config", 7), interactionState = prop($$props, "state", 7), isDataSaving = prop($$props, "isDataSaving", 7, false), onselection = prop($$props, "onselection", 7);
|
|
19249
|
+
const { segments } = useSelectableText(config());
|
|
19250
|
+
const isWord = config().selectable_type !== "Sentence";
|
|
19251
|
+
const segmentType = isWord ? "word" : "sent";
|
|
19252
|
+
let selectedIds = /* @__PURE__ */ user_derived(() => interactionState().data.selections);
|
|
19253
|
+
let sharedState = /* @__PURE__ */ user_derived(() => useSelectableTextState(config(), get$1(selectedIds)));
|
|
19254
|
+
let segmentStates = /* @__PURE__ */ user_derived(() => segments.map((segment) => ({
|
|
19255
|
+
segment,
|
|
19256
|
+
seg: getSegmentState(segment.id, get$1(selectedIds), get$1(sharedState).correctAnswerIds, get$1(sharedState).isPreviewMode, get$1(sharedState).isValidating)
|
|
19257
|
+
})));
|
|
19258
|
+
const handleSegmentClick = (segmentId) => {
|
|
19259
|
+
if (isDataSaving() || get$1(sharedState).isPreviewMode) return;
|
|
19260
|
+
onselection()?.(new CustomEvent("selection", { detail: { segmentId } }));
|
|
19261
|
+
};
|
|
19262
|
+
const handleSegmentKeydown = (e2, segmentId) => {
|
|
19263
|
+
if (get$1(sharedState).isPreviewMode) return;
|
|
19264
|
+
if (e2.key === " ") {
|
|
19265
|
+
e2.preventDefault();
|
|
19266
|
+
handleSegmentClick(segmentId);
|
|
19267
|
+
} else if (e2.key === "Enter") {
|
|
19268
|
+
handleSegmentClick(segmentId);
|
|
19269
|
+
}
|
|
19270
|
+
};
|
|
19271
|
+
const getSegmentTestId = (seg) => {
|
|
19272
|
+
if (get$1(sharedState).isPreviewMode && seg.isCorrect) return `select-${segmentType}-corr-ans-btn`;
|
|
19273
|
+
if (seg.isCorrect || seg.isIncorrect) return `select-${segmentType}-stud-ans-btn`;
|
|
19274
|
+
if (seg.isMissing) return `select-${segmentType}-mis-ans-btn`;
|
|
19275
|
+
return `select-${segmentType}-btn`;
|
|
19276
|
+
};
|
|
19277
|
+
const getSegmentClasses = (seg) => {
|
|
19278
|
+
return [
|
|
19279
|
+
"selectable-segment",
|
|
19280
|
+
!get$1(sharedState).isPreviewMode && seg.isSegmentSelected && !get$1(sharedState).isValidating ? "selected" : "",
|
|
19281
|
+
get$1(sharedState).isPreviewMode ? "preview" : "",
|
|
19282
|
+
get$1(sharedState).isInteractiveMode ? "interactive" : "",
|
|
19283
|
+
seg.isCorrect ? "correct" : "",
|
|
19284
|
+
seg.isIncorrect ? "incorrect" : "",
|
|
19285
|
+
seg.isMissing ? "missing" : ""
|
|
19286
|
+
].filter(Boolean).join(" ");
|
|
19287
|
+
};
|
|
19288
|
+
let passageEl = /* @__PURE__ */ state(void 0);
|
|
19289
|
+
let lineRows = /* @__PURE__ */ state(proxy([]));
|
|
19290
|
+
let isMeasured = /* @__PURE__ */ state(!isWord);
|
|
19291
|
+
const sentenceDisplayRows = isWord ? [] : segments.reduce(
|
|
19292
|
+
(acc, segment, idx) => {
|
|
19293
|
+
if (segment.isLineBreak) {
|
|
19294
|
+
acc.push("break");
|
|
19295
|
+
} else {
|
|
19296
|
+
const last = acc[acc.length - 1];
|
|
19297
|
+
if (Array.isArray(last)) last.push(idx);
|
|
19298
|
+
else acc.push([idx]);
|
|
19299
|
+
}
|
|
19300
|
+
return acc;
|
|
19301
|
+
},
|
|
19302
|
+
[]
|
|
19303
|
+
);
|
|
19304
|
+
let displayRows = /* @__PURE__ */ user_derived(() => isWord ? get$1(lineRows) : sentenceDisplayRows);
|
|
19305
|
+
const measureLines = async () => {
|
|
19306
|
+
if (!get$1(passageEl)) return;
|
|
19307
|
+
await tick();
|
|
19308
|
+
const segEls = get$1(passageEl).querySelectorAll("[data-seg-idx]");
|
|
19309
|
+
if (segEls.length === 0) {
|
|
19310
|
+
set(lineRows, [], true);
|
|
19311
|
+
set(isMeasured, true);
|
|
19312
|
+
return;
|
|
19313
|
+
}
|
|
19314
|
+
const containerTop = get$1(passageEl).getBoundingClientRect().top;
|
|
19315
|
+
const topMap = /* @__PURE__ */ new Map();
|
|
19316
|
+
for (const el of segEls) {
|
|
19317
|
+
const idx = Number(el.dataset.segIdx);
|
|
19318
|
+
const top = Math.round(el.getBoundingClientRect().top - containerTop);
|
|
19319
|
+
if (!topMap.has(top)) topMap.set(top, []);
|
|
19320
|
+
topMap.get(top).push(idx);
|
|
19321
|
+
}
|
|
19322
|
+
set(lineRows, [...topMap.entries()].sort(([a], [b]) => a - b).map(([, indices]) => indices), true);
|
|
19323
|
+
set(isMeasured, true);
|
|
19324
|
+
};
|
|
19325
|
+
user_effect(() => {
|
|
19326
|
+
if (!isWord) return;
|
|
19327
|
+
const el = get$1(passageEl);
|
|
19328
|
+
if (!el) return;
|
|
19329
|
+
const parent = el.parentElement;
|
|
19330
|
+
if (!parent) return;
|
|
19331
|
+
let lastWidth = Math.round(parent.getBoundingClientRect().width);
|
|
19332
|
+
const ro = new ResizeObserver((entries) => {
|
|
19333
|
+
for (const entry of entries) {
|
|
19334
|
+
const newWidth = Math.round(entry.contentRect.width);
|
|
19335
|
+
if (newWidth !== lastWidth) {
|
|
19336
|
+
lastWidth = newWidth;
|
|
19337
|
+
set(isMeasured, false);
|
|
19338
|
+
}
|
|
19339
|
+
}
|
|
19340
|
+
});
|
|
19341
|
+
ro.observe(parent);
|
|
19342
|
+
return () => ro.disconnect();
|
|
19343
|
+
});
|
|
19344
|
+
user_effect(() => {
|
|
19345
|
+
if (!get$1(isMeasured) && get$1(passageEl)) {
|
|
19346
|
+
measureLines();
|
|
19347
|
+
}
|
|
19348
|
+
});
|
|
19349
|
+
var $$exports = {
|
|
19350
|
+
get config() {
|
|
19351
|
+
return config();
|
|
19352
|
+
},
|
|
19353
|
+
set config($$value) {
|
|
19354
|
+
config($$value);
|
|
19355
|
+
flushSync();
|
|
19356
|
+
},
|
|
19357
|
+
get state() {
|
|
19358
|
+
return interactionState();
|
|
19359
|
+
},
|
|
19360
|
+
set state($$value) {
|
|
19361
|
+
interactionState($$value);
|
|
19362
|
+
flushSync();
|
|
19363
|
+
},
|
|
19364
|
+
get isDataSaving() {
|
|
19365
|
+
return isDataSaving();
|
|
19366
|
+
},
|
|
19367
|
+
set isDataSaving($$value = false) {
|
|
19368
|
+
isDataSaving($$value);
|
|
19369
|
+
flushSync();
|
|
19370
|
+
},
|
|
19371
|
+
get onselection() {
|
|
19372
|
+
return onselection();
|
|
19373
|
+
},
|
|
19374
|
+
set onselection($$value) {
|
|
19375
|
+
onselection($$value);
|
|
19376
|
+
flushSync();
|
|
19377
|
+
}
|
|
19378
|
+
};
|
|
19379
|
+
var div = root();
|
|
19380
|
+
var node = child(div);
|
|
19381
|
+
{
|
|
19382
|
+
var consequent_3 = ($$anchor2) => {
|
|
19383
|
+
var fragment = comment();
|
|
19384
|
+
var node_1 = first_child(fragment);
|
|
19385
|
+
each(node_1, 19, () => segments, (segment) => segment.id, ($$anchor3, segment, i) => {
|
|
19386
|
+
var fragment_1 = comment();
|
|
19387
|
+
var node_2 = first_child(fragment_1);
|
|
19388
|
+
{
|
|
19389
|
+
var consequent = ($$anchor4) => {
|
|
19390
|
+
var br = root_3$1();
|
|
19391
|
+
append($$anchor4, br);
|
|
19392
|
+
};
|
|
19393
|
+
var alternate_1 = ($$anchor4) => {
|
|
19394
|
+
var fragment_2 = comment();
|
|
19395
|
+
var node_3 = first_child(fragment_2);
|
|
19396
|
+
{
|
|
19397
|
+
var consequent_1 = ($$anchor5) => {
|
|
19398
|
+
var span = root_5();
|
|
19399
|
+
var text = child(span, true);
|
|
19400
|
+
reset(span);
|
|
19401
|
+
template_effect(() => set_text(text, get$1(segment).text));
|
|
19402
|
+
append($$anchor5, span);
|
|
19403
|
+
};
|
|
19404
|
+
var alternate = ($$anchor5) => {
|
|
19405
|
+
var span_1 = root_6();
|
|
19406
|
+
var text_1 = child(span_1);
|
|
19407
|
+
var node_4 = sibling(text_1);
|
|
19408
|
+
{
|
|
19409
|
+
var consequent_2 = ($$anchor6) => {
|
|
19410
|
+
var span_2 = root_7();
|
|
19411
|
+
var text_2 = child(span_2, true);
|
|
19412
|
+
reset(span_2);
|
|
19413
|
+
template_effect(() => set_text(text_2, get$1(segment).trailingPunctuation));
|
|
19414
|
+
append($$anchor6, span_2);
|
|
19415
|
+
};
|
|
19416
|
+
if_block(node_4, ($$render) => {
|
|
19417
|
+
if (get$1(segment).trailingPunctuation) $$render(consequent_2);
|
|
19418
|
+
});
|
|
19419
|
+
}
|
|
19420
|
+
reset(span_1);
|
|
19421
|
+
template_effect(() => {
|
|
19422
|
+
set_attribute(span_1, "data-seg-idx", get$1(i));
|
|
19423
|
+
set_text(text_1, `${get$1(segment).text ?? ""} `);
|
|
19424
|
+
});
|
|
19425
|
+
append($$anchor5, span_1);
|
|
19426
|
+
};
|
|
19427
|
+
if_block(
|
|
19428
|
+
node_3,
|
|
19429
|
+
($$render) => {
|
|
19430
|
+
if (get$1(segment).isPunctuation) $$render(consequent_1);
|
|
19431
|
+
else $$render(alternate, false);
|
|
19432
|
+
},
|
|
19433
|
+
true
|
|
19434
|
+
);
|
|
19435
|
+
}
|
|
19436
|
+
append($$anchor4, fragment_2);
|
|
19437
|
+
};
|
|
19438
|
+
if_block(node_2, ($$render) => {
|
|
19439
|
+
if (get$1(segment).isLineBreak) $$render(consequent);
|
|
19440
|
+
else $$render(alternate_1, false);
|
|
19441
|
+
});
|
|
19442
|
+
}
|
|
19443
|
+
append($$anchor3, fragment_1);
|
|
19444
|
+
});
|
|
19445
|
+
append($$anchor2, fragment);
|
|
19446
|
+
};
|
|
19447
|
+
var alternate_5 = ($$anchor2) => {
|
|
19448
|
+
var fragment_3 = comment();
|
|
19449
|
+
var node_5 = first_child(fragment_3);
|
|
19450
|
+
each(node_5, 17, () => get$1(displayRows), index, ($$anchor3, row) => {
|
|
19451
|
+
var fragment_4 = comment();
|
|
19452
|
+
var node_6 = first_child(fragment_4);
|
|
19453
|
+
{
|
|
19454
|
+
var consequent_4 = ($$anchor4) => {
|
|
19455
|
+
var br_1 = root_10();
|
|
19456
|
+
append($$anchor4, br_1);
|
|
19457
|
+
};
|
|
19458
|
+
var alternate_4 = ($$anchor4) => {
|
|
19459
|
+
var span_3 = root_11();
|
|
19460
|
+
each(span_3, 21, () => get$1(row), (idx) => segments[idx].id, ($$anchor5, idx) => {
|
|
19461
|
+
const segment = /* @__PURE__ */ user_derived(() => segments[get$1(idx)]);
|
|
19462
|
+
const computed_const = /* @__PURE__ */ user_derived(() => {
|
|
19463
|
+
const { seg } = get$1(segmentStates)[get$1(idx)];
|
|
19464
|
+
return { seg };
|
|
19465
|
+
});
|
|
19466
|
+
var fragment_5 = comment();
|
|
19467
|
+
var node_7 = first_child(fragment_5);
|
|
19468
|
+
{
|
|
19469
|
+
var consequent_5 = ($$anchor6) => {
|
|
19470
|
+
var span_4 = root_13();
|
|
19471
|
+
var text_3 = child(span_4, true);
|
|
19472
|
+
reset(span_4);
|
|
19473
|
+
template_effect(() => set_text(text_3, get$1(segment).text));
|
|
19474
|
+
append($$anchor6, span_4);
|
|
19475
|
+
};
|
|
19476
|
+
var alternate_3 = ($$anchor6) => {
|
|
19477
|
+
var span_5 = root_14();
|
|
19478
|
+
span_5.__click = () => handleSegmentClick(get$1(segment).id);
|
|
19479
|
+
span_5.__keydown = (e2) => handleSegmentKeydown(e2, get$1(segment).id);
|
|
19480
|
+
var node_8 = child(span_5);
|
|
19481
|
+
{
|
|
19482
|
+
var consequent_6 = ($$anchor7) => {
|
|
19483
|
+
var span_6 = root_15();
|
|
19484
|
+
append($$anchor7, span_6);
|
|
19485
|
+
};
|
|
19486
|
+
if_block(node_8, ($$render) => {
|
|
19487
|
+
if (get$1(computed_const).seg.isMissing) $$render(consequent_6);
|
|
19488
|
+
});
|
|
19489
|
+
}
|
|
19490
|
+
var span_7 = sibling(node_8, 2);
|
|
19491
|
+
var text_4 = child(span_7);
|
|
19492
|
+
var node_9 = sibling(text_4);
|
|
19493
|
+
{
|
|
19494
|
+
var consequent_7 = ($$anchor7) => {
|
|
19495
|
+
var span_8 = root_16();
|
|
19496
|
+
var node_10 = child(span_8);
|
|
19497
|
+
SvgLoader(node_10, { svgName: "crossIcon", className: "deselect-icon" });
|
|
19498
|
+
reset(span_8);
|
|
19499
|
+
append($$anchor7, span_8);
|
|
19500
|
+
};
|
|
19501
|
+
var alternate_2 = ($$anchor7) => {
|
|
19502
|
+
var fragment_6 = comment();
|
|
19503
|
+
var node_11 = first_child(fragment_6);
|
|
19504
|
+
{
|
|
19505
|
+
var consequent_8 = ($$anchor8) => {
|
|
19506
|
+
var span_9 = root_18();
|
|
19507
|
+
var node_12 = child(span_9);
|
|
19508
|
+
{
|
|
19509
|
+
let $0 = /* @__PURE__ */ user_derived(() => get$1(computed_const).seg.isCorrect ? "successSolid" : "errorSolid");
|
|
19510
|
+
let $1 = /* @__PURE__ */ user_derived(() => get$1(computed_const).seg.isCorrect ? "correct-icon" : "incorrect-icon");
|
|
19511
|
+
SvgLoader(node_12, {
|
|
19512
|
+
get svgName() {
|
|
19513
|
+
return get$1($0);
|
|
19514
|
+
},
|
|
19515
|
+
get className() {
|
|
19516
|
+
return get$1($1);
|
|
19517
|
+
}
|
|
19518
|
+
});
|
|
19519
|
+
}
|
|
19520
|
+
reset(span_9);
|
|
19521
|
+
template_effect(() => set_attribute(span_9, "data-testid", get$1(computed_const).seg.isCorrect ? "icon-correct" : "icon-incorrect"));
|
|
19522
|
+
append($$anchor8, span_9);
|
|
19523
|
+
};
|
|
19524
|
+
if_block(
|
|
19525
|
+
node_11,
|
|
19526
|
+
($$render) => {
|
|
19527
|
+
if (get$1(computed_const).seg.isCorrect || get$1(computed_const).seg.isIncorrect) $$render(consequent_8);
|
|
19528
|
+
},
|
|
19529
|
+
true
|
|
19530
|
+
);
|
|
19531
|
+
}
|
|
19532
|
+
append($$anchor7, fragment_6);
|
|
19533
|
+
};
|
|
19534
|
+
if_block(node_9, ($$render) => {
|
|
19535
|
+
if (get$1(computed_const).seg.isSegmentSelected && !get$1(sharedState).isValidating && !get$1(sharedState).isPreviewMode) $$render(consequent_7);
|
|
19536
|
+
else $$render(alternate_2, false);
|
|
19537
|
+
});
|
|
19538
|
+
}
|
|
19539
|
+
reset(span_7);
|
|
19540
|
+
var node_13 = sibling(span_7, 2);
|
|
19541
|
+
{
|
|
19542
|
+
var consequent_9 = ($$anchor7) => {
|
|
19543
|
+
var span_10 = root_19();
|
|
19544
|
+
var text_5 = child(span_10, true);
|
|
19545
|
+
reset(span_10);
|
|
19546
|
+
template_effect(() => set_text(text_5, get$1(segment).trailingPunctuation));
|
|
19547
|
+
append($$anchor7, span_10);
|
|
19548
|
+
};
|
|
19549
|
+
if_block(node_13, ($$render) => {
|
|
19550
|
+
if (get$1(segment).trailingPunctuation) $$render(consequent_9);
|
|
19551
|
+
});
|
|
19552
|
+
}
|
|
19553
|
+
var node_14 = sibling(node_13, 2);
|
|
19554
|
+
{
|
|
19555
|
+
var consequent_10 = ($$anchor7) => {
|
|
19556
|
+
var span_11 = root_20();
|
|
19557
|
+
append($$anchor7, span_11);
|
|
19558
|
+
};
|
|
19559
|
+
if_block(node_14, ($$render) => {
|
|
19560
|
+
if (get$1(computed_const).seg.isCorrect) $$render(consequent_10);
|
|
19561
|
+
});
|
|
19562
|
+
}
|
|
19563
|
+
var node_15 = sibling(node_14, 2);
|
|
19564
|
+
{
|
|
19565
|
+
var consequent_11 = ($$anchor7) => {
|
|
19566
|
+
var span_12 = root_21();
|
|
19567
|
+
append($$anchor7, span_12);
|
|
19568
|
+
};
|
|
19569
|
+
if_block(node_15, ($$render) => {
|
|
19570
|
+
if (get$1(computed_const).seg.isIncorrect) $$render(consequent_11);
|
|
19571
|
+
});
|
|
19572
|
+
}
|
|
19573
|
+
var node_16 = sibling(node_15, 2);
|
|
19574
|
+
{
|
|
19575
|
+
var consequent_12 = ($$anchor7) => {
|
|
19576
|
+
var span_13 = root_22();
|
|
19577
|
+
append($$anchor7, span_13);
|
|
19578
|
+
};
|
|
19579
|
+
if_block(node_16, ($$render) => {
|
|
19580
|
+
if (get$1(computed_const).seg.isMissing) $$render(consequent_12);
|
|
19581
|
+
});
|
|
19582
|
+
}
|
|
19583
|
+
reset(span_5);
|
|
19584
|
+
template_effect(
|
|
19585
|
+
($0, $1) => {
|
|
19586
|
+
set_attribute(span_5, "tabindex", get$1(sharedState).isPreviewMode ? -1 : 0);
|
|
19587
|
+
set_class(span_5, 1, $0);
|
|
19588
|
+
set_attribute(span_5, "aria-pressed", !get$1(sharedState).isPreviewMode && get$1(computed_const).seg.isSegmentSelected);
|
|
19589
|
+
set_attribute(span_5, "aria-disabled", isDataSaving() || get$1(sharedState).isPreviewMode);
|
|
19590
|
+
set_attribute(span_5, "data-segment-id", get$1(segment).id);
|
|
19591
|
+
set_attribute(span_5, "data-testid", $1);
|
|
19592
|
+
set_text(text_4, `${get$1(segment).text ?? ""} `);
|
|
19593
|
+
},
|
|
19594
|
+
[
|
|
19595
|
+
() => clsx(getSegmentClasses(get$1(computed_const).seg)),
|
|
19596
|
+
() => getSegmentTestId(get$1(computed_const).seg)
|
|
19597
|
+
]
|
|
19598
|
+
);
|
|
19599
|
+
append($$anchor6, span_5);
|
|
19600
|
+
};
|
|
19601
|
+
if_block(node_7, ($$render) => {
|
|
19602
|
+
if (get$1(segment).isPunctuation) $$render(consequent_5);
|
|
19603
|
+
else $$render(alternate_3, false);
|
|
19604
|
+
});
|
|
19605
|
+
}
|
|
19606
|
+
append($$anchor5, fragment_5);
|
|
19607
|
+
});
|
|
19608
|
+
reset(span_3);
|
|
19609
|
+
template_effect(() => set_class(span_3, 1, clsx(isWord ? "selectable-line-word" : void 0)));
|
|
19610
|
+
append($$anchor4, span_3);
|
|
19611
|
+
};
|
|
19612
|
+
if_block(node_6, ($$render) => {
|
|
19613
|
+
if (get$1(row) === "break") $$render(consequent_4);
|
|
19614
|
+
else $$render(alternate_4, false);
|
|
19615
|
+
});
|
|
19616
|
+
}
|
|
19617
|
+
append($$anchor3, fragment_4);
|
|
19618
|
+
});
|
|
19619
|
+
append($$anchor2, fragment_3);
|
|
19620
|
+
};
|
|
19621
|
+
if_block(node, ($$render) => {
|
|
19622
|
+
if (!get$1(isMeasured)) $$render(consequent_3);
|
|
19623
|
+
else $$render(alternate_5, false);
|
|
19624
|
+
});
|
|
19625
|
+
}
|
|
19626
|
+
reset(div);
|
|
19627
|
+
bind_this(div, ($$value) => set(passageEl, $$value), () => get$1(passageEl));
|
|
19628
|
+
template_effect(() => set_style(div, !get$1(isMeasured) ? "visibility:hidden;max-width:864px" : !isWord || get$1(selectedIds).length === 0 && !get$1(sharedState).isValidating && !get$1(sharedState).isPreviewMode ? "max-width:864px" : void 0));
|
|
19629
|
+
append($$anchor, div);
|
|
19630
|
+
return pop($$exports);
|
|
19631
|
+
}
|
|
19632
|
+
delegate(["click", "keydown"]);
|
|
19633
|
+
create_custom_element(SelectableTextInteractionContent, { config: {}, state: {}, isDataSaving: {}, onselection: {} }, [], [], true);
|
|
19634
|
+
var root_3 = /* @__PURE__ */ from_html(`<div aria-live="polite" class="mb-6 max-w-[544px]"><!></div>`);
|
|
19635
|
+
function SelectableTextComponent($$anchor, $$props) {
|
|
19636
|
+
push($$props, true);
|
|
19637
|
+
let api = prop($$props, "api", 7), config = prop($$props, "config", 7), isDataSaving = prop($$props, "isDataSaving", 7, false), onstateChange = prop($$props, "onstateChange", 7);
|
|
19638
|
+
const initialState = api().hasExistingState?.() ? api().restoreState?.() : api().createInitialState?.();
|
|
19639
|
+
if (!initialState?.data) {
|
|
19640
|
+
throw new Error("Failed to initialize SelectableText state");
|
|
19641
|
+
}
|
|
19642
|
+
let interactionState = /* @__PURE__ */ state(proxy(initialState));
|
|
19643
|
+
let sharedState = /* @__PURE__ */ user_derived(() => useSelectableTextState(config(), get$1(interactionState).data.selections));
|
|
19644
|
+
let feedbackState = /* @__PURE__ */ user_derived(() => useSelectableTextFeedback(get$1(sharedState).isValidating, get$1(sharedState).isAllCorrect, config()));
|
|
19645
|
+
const handleSelection = (event2) => {
|
|
19646
|
+
const { segmentId } = event2.detail;
|
|
19647
|
+
if (api().isLocked?.(get$1(interactionState))) return;
|
|
19648
|
+
const currentSelections = get$1(interactionState).data.selections;
|
|
19649
|
+
const isSelected = currentSelections.includes(segmentId);
|
|
19650
|
+
let newSelections;
|
|
19651
|
+
if (isSelected) {
|
|
19652
|
+
newSelections = currentSelections.filter((id) => id !== segmentId);
|
|
19653
|
+
} else {
|
|
19654
|
+
if (get$1(sharedState).maxSelections > 0 && currentSelections.length >= get$1(sharedState).maxSelections) {
|
|
19655
|
+
newSelections = [...currentSelections.slice(0, -1), segmentId];
|
|
19656
|
+
} else {
|
|
19657
|
+
newSelections = [...currentSelections, segmentId];
|
|
19658
|
+
}
|
|
19659
|
+
}
|
|
19660
|
+
set(interactionState, interactionUtils.updateState(get$1(interactionState), { selections: newSelections }), true);
|
|
19661
|
+
api().onStateChange?.(get$1(interactionState));
|
|
19662
|
+
onstateChange()?.(new CustomEvent("stateChange", {
|
|
19663
|
+
detail: {
|
|
19664
|
+
state: get$1(interactionState),
|
|
19665
|
+
serialized: api().serialize?.(get$1(interactionState))
|
|
19666
|
+
}
|
|
19667
|
+
}));
|
|
19668
|
+
};
|
|
19669
|
+
var $$exports = {
|
|
19670
|
+
get api() {
|
|
19671
|
+
return api();
|
|
19672
|
+
},
|
|
19673
|
+
set api($$value) {
|
|
19674
|
+
api($$value);
|
|
19675
|
+
flushSync();
|
|
19676
|
+
},
|
|
19677
|
+
get config() {
|
|
19678
|
+
return config();
|
|
19679
|
+
},
|
|
19680
|
+
set config($$value) {
|
|
19681
|
+
config($$value);
|
|
19682
|
+
flushSync();
|
|
19683
|
+
},
|
|
19684
|
+
get isDataSaving() {
|
|
19685
|
+
return isDataSaving();
|
|
19686
|
+
},
|
|
19687
|
+
set isDataSaving($$value = false) {
|
|
19688
|
+
isDataSaving($$value);
|
|
19689
|
+
flushSync();
|
|
19690
|
+
},
|
|
19691
|
+
get onstateChange() {
|
|
19692
|
+
return onstateChange();
|
|
19693
|
+
},
|
|
19694
|
+
set onstateChange($$value) {
|
|
19695
|
+
onstateChange($$value);
|
|
19696
|
+
flushSync();
|
|
19697
|
+
}
|
|
19698
|
+
};
|
|
19699
|
+
{
|
|
19700
|
+
const interaction = ($$anchor2) => {
|
|
19701
|
+
SelectableTextInteractionContent($$anchor2, {
|
|
19702
|
+
get config() {
|
|
19703
|
+
return config();
|
|
19704
|
+
},
|
|
19705
|
+
get state() {
|
|
19706
|
+
return get$1(interactionState);
|
|
19707
|
+
},
|
|
19708
|
+
get isDataSaving() {
|
|
19709
|
+
return isDataSaving();
|
|
19710
|
+
},
|
|
19711
|
+
onselection: handleSelection
|
|
19712
|
+
});
|
|
19713
|
+
};
|
|
19714
|
+
const feedback = ($$anchor2) => {
|
|
19715
|
+
var fragment_2 = comment();
|
|
19716
|
+
var node = first_child(fragment_2);
|
|
19717
|
+
{
|
|
19718
|
+
var consequent_1 = ($$anchor3) => {
|
|
19719
|
+
var div = root_3();
|
|
19720
|
+
var node_1 = child(div);
|
|
19721
|
+
{
|
|
19722
|
+
var consequent = ($$anchor4) => {
|
|
19723
|
+
FeedbackAlert($$anchor4, {
|
|
19724
|
+
get type() {
|
|
19725
|
+
return get$1(feedbackState).feedbackType;
|
|
19726
|
+
},
|
|
19727
|
+
get message() {
|
|
19728
|
+
return get$1(feedbackState).feedbackMessage;
|
|
19729
|
+
},
|
|
19730
|
+
isAlert: false
|
|
19731
|
+
});
|
|
19732
|
+
};
|
|
19733
|
+
if_block(node_1, ($$render) => {
|
|
19734
|
+
if (get$1(feedbackState).isFeedbackShown) $$render(consequent);
|
|
19735
|
+
});
|
|
19736
|
+
}
|
|
19737
|
+
reset(div);
|
|
19738
|
+
append($$anchor3, div);
|
|
19739
|
+
};
|
|
19740
|
+
if_block(node, ($$render) => {
|
|
19741
|
+
if (get$1(sharedState).isInteractiveMode) $$render(consequent_1);
|
|
19742
|
+
});
|
|
19743
|
+
}
|
|
19744
|
+
append($$anchor2, fragment_2);
|
|
19745
|
+
};
|
|
19746
|
+
let $0 = /* @__PURE__ */ user_derived(() => config().rubric?.text || "");
|
|
19747
|
+
let $1 = /* @__PURE__ */ user_derived(() => config().prompt || "");
|
|
19748
|
+
PromptContainer($$anchor, {
|
|
19749
|
+
get rubric() {
|
|
19750
|
+
return get$1($0);
|
|
19751
|
+
},
|
|
19752
|
+
get prompt() {
|
|
19753
|
+
return get$1($1);
|
|
19754
|
+
},
|
|
19755
|
+
get interactionType() {
|
|
19756
|
+
return INTERACTION_TYPES.SELECTABLE_TEXT;
|
|
19757
|
+
},
|
|
19758
|
+
hasDivider: true,
|
|
19759
|
+
interaction,
|
|
19760
|
+
feedback,
|
|
19761
|
+
$$slots: { interaction: true, feedback: true }
|
|
19762
|
+
});
|
|
19763
|
+
}
|
|
19764
|
+
return pop($$exports);
|
|
19765
|
+
}
|
|
19766
|
+
create_custom_element(SelectableTextComponent, { api: {}, config: {}, isDataSaving: {}, onstateChange: {} }, [], [], true);
|
|
19767
|
+
const createSelectableTextConfig = (data) => {
|
|
19768
|
+
const { mode, isFinished, isLocked, getItemRubric, getItemStimulus, getItemInteraction } = useSharedState(data);
|
|
19769
|
+
const { prompt, text, selectable_type, is_single_mark, correct_answers, max_selections, feedback } = getItemInteraction();
|
|
19770
|
+
return {
|
|
19771
|
+
prompt,
|
|
19772
|
+
text,
|
|
19773
|
+
selectable_type,
|
|
19774
|
+
is_single_mark,
|
|
19775
|
+
correct_answers,
|
|
19776
|
+
max_selections: correct_answers?.length ?? max_selections,
|
|
19777
|
+
feedback,
|
|
19778
|
+
mode,
|
|
19779
|
+
rubric: getItemRubric(),
|
|
19780
|
+
stimulus: getItemStimulus(),
|
|
19781
|
+
isFinished,
|
|
19782
|
+
isLocked
|
|
19783
|
+
};
|
|
19784
|
+
};
|
|
19785
|
+
const createSelectableTextInteraction = () => {
|
|
19786
|
+
return {
|
|
19787
|
+
type: "selectableText",
|
|
19788
|
+
component: SelectableTextComponent,
|
|
19789
|
+
state: {
|
|
19790
|
+
data: { selections: [] },
|
|
19791
|
+
attempts: 0,
|
|
19792
|
+
completed: false,
|
|
19793
|
+
lastModified: Date.now()
|
|
19794
|
+
},
|
|
19795
|
+
createInitialState: () => ({
|
|
19796
|
+
data: { selections: [] },
|
|
19797
|
+
attempts: 0,
|
|
19798
|
+
completed: false,
|
|
19799
|
+
lastModified: Date.now()
|
|
19800
|
+
}),
|
|
19801
|
+
validate: () => ({
|
|
19802
|
+
isValid: true,
|
|
19803
|
+
score: 1,
|
|
19804
|
+
maxScore: 1
|
|
19805
|
+
}),
|
|
19806
|
+
serialize: (state2) => ({
|
|
19807
|
+
selections: state2.data.selections,
|
|
19808
|
+
timestamp: Date.now()
|
|
19809
|
+
}),
|
|
19810
|
+
deserialize: (answer) => ({
|
|
19811
|
+
data: { selections: answer.selections },
|
|
19812
|
+
attempts: 0,
|
|
19813
|
+
completed: false,
|
|
19814
|
+
lastModified: answer.timestamp
|
|
19815
|
+
}),
|
|
19816
|
+
isCompleted: () => false,
|
|
19817
|
+
isLocked: () => false
|
|
19818
|
+
};
|
|
19819
|
+
};
|
|
19820
|
+
registerInteraction("selectableText", createSelectableTextInteraction, SelectableTextComponent);
|
|
19081
19821
|
var root_1 = /* @__PURE__ */ from_html(`<link rel="preconnect" href="https://fonts.googleapis.com" class="svelte-1dpid58"/> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous" class="svelte-1dpid58"/> <link href="https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&display=swap" rel="stylesheet" class="svelte-1dpid58"/>`, 1);
|
|
19082
19822
|
const $$css = {
|
|
19083
19823
|
hash: "svelte-1dpid58",
|
|
19084
|
-
code: ' *, :after, :before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style:} ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style:} *, :after, :before{border:0 solid #e5e7eb;box-sizing:border-box} :after, :before{--tw-content:""} :host, html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:Mulish,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent} body{line-height:inherit;margin:0} hr{border-top-width:1px;color:inherit;height:0} abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted} h1, h2, h3, h4, h5, h6{font-size:inherit;font-weight:inherit} a{color:inherit;text-decoration:inherit} b, strong{font-weight:bolder} code, kbd, pre, samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal} small{font-size:80%} sub, sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} sub{bottom:-.25em} sup{top:-.5em} table{border-collapse:collapse;border-color:inherit;text-indent:0} button, input, optgroup, select, textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0} button, select{text-transform:none} button, input:where([type=button]), input:where([type=reset]), input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none} :-moz-focusring{outline:auto} :-moz-ui-invalid{box-shadow:none} progress{vertical-align:baseline} ::-webkit-inner-spin-button, ::-webkit-outer-spin-button{height:auto} [type=search]{-webkit-appearance:textfield;outline-offset:-2px} ::-webkit-search-decoration{-webkit-appearance:none} ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit} summary{display:list-item} blockquote, dd, dl, figure, h1, h2, h3, h4, h5, h6, hr, p, pre{margin:0} fieldset{margin:0} fieldset, legend{padding:0} menu, ol, ul{list-style:none;margin:0;padding:0} dialog{padding:0} textarea{resize:vertical} input::-moz-placeholder, textarea::-moz-placeholder{color:#9ca3af;opacity:1} input::placeholder, textarea::placeholder{color:#9ca3af;opacity:1} [role=button], button{cursor:pointer} :disabled{cursor:default} audio, canvas, embed, iframe, img, object, svg, video{display:block;vertical-align:middle} img, video{height:auto;max-width:100%} [hidden]:where(:not([hidden=until-found])){display:none} *{font-family:Mulish,sans-serif} input::-moz-selection, textarea::-moz-selection{background-color:hsla(0,0%,85%,.4)} input::selection, textarea::selection{background-color:hsla(0,0%,85%,.4)} .container{width:100%}@media (min-width:732px){ .container{max-width:732px}}@media (min-width:1196px){ .container{max-width:1196px}} .p2{font-size:1rem;font-weight:600;line-height:1.5rem;line-height:130%} .p3{font-size:.875rem;font-weight:400;line-height:1.25rem;line-height:1.5} .blanket-overlay{inset:0;position:absolute} .item-heading{font-size:1.25rem;letter-spacing:-.025em;line-height:1.5rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} .focus-ring:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:4px} .focus-ring:focus, .raw-focus-ring{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .raw-focus-ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px} .focus-ring-by-dropdown{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:rgb(59,64,240,var(--tw-border-opacity,1));border-width:2px;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);box-shadow:0 0 0 2px #fff,0 0 0 4px #212529,0 0 0 6px #fde047} .divider, .focus-ring-by-dropdown{--tw-border-opacity:1} .divider{border-bottom-width:1px;border-color:rgb(218,224,224,var(--tw-border-opacity,1))}@keyframes svelte-1dpid58-pulse{50%{opacity:.5}} .animate-skeleton{animation:svelte-1dpid58-pulse 2s cubic-bezier(.4,0,.6,1) infinite;--tw-bg-opacity:1;background-color:rgb(226,232,240,var(--tw-bg-opacity,1))} .btn-mcq-option:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .btn-mcq-option{font-size:1rem;line-height:1.5rem;line-height:19.2px;margin-bottom:1rem;min-height:52px;width:100%;--tw-text-opacity:1;border-radius:.5rem;border-width:1px;box-sizing:border-box;color:rgb(33,37,41,var(--tw-text-opacity,1));--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(248,248,248,var(--tw-bg-opacity,1))} .btn-mcq-option:active{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(238,240,255,var(--tw-bg-opacity,1))}} .btn-mcq-text{align-items:center;display:flex;padding:.375rem .75rem;width:100%}@supports (overflow-wrap:anywhere){ .btn-mcq-text{overflow-wrap:anywhere}}@supports not (overflow-wrap:anywhere){ .btn-mcq-text{word-break:break-word}} .btn-mcq-option>span>span>span>.choice{align-items:center;border-radius:1rem;border-width:1px;display:flex;font-size:1rem;font-weight:700;height:2rem;justify-content:center;letter-spacing:.05em;line-height:1rem;width:2rem;--tw-border-opacity:1;border-color:rgb(156,163,175,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1));padding:.5rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .btn-mcq-option.selected{border-width:2px;--tw-border-opacity:1;background-color:rgb(40,44,135,var(--tw-bg-opacity,1));border-color:rgb(40,44,135,var(--tw-border-opacity,1))} .btn-mcq-option.selected, .btn-mcq-option.selected:active{--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(255,255,255,var(--tw-text-opacity,1))} .btn-mcq-option.selected:active{background-color:rgb(84,101,251,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option.selected:hover{--tw-bg-opacity:1;background-color:rgb(84,101,251,var(--tw-bg-opacity,1))}} .btn-mcq-option.finished{cursor:default} .btn-mcq-option.finished:active, .btn-mcq-option.finished:hover{border-width:1px;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(248,248,248,var(--tw-bg-opacity,1))} .btn-mcq-option.selected>span>span>.choice{--tw-bg-opacity:1;background-color:rgb(238,240,255,var(--tw-bg-opacity,1))} .btn-mcq-option>span>span>span>.custom-checkbox{align-items:center;border-radius:.25rem;border-width:1px;display:flex;height:1.75rem;justify-content:center;pointer-events:none;width:1.75rem;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option:hover>span>span>span>.custom-checkbox{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))} .btn-mcq-option:active>span>span>span>.custom-checkbox.preview-only, .btn-mcq-option:hover>span>span>span>.custom-checkbox.preview-only{border-width:1px;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1))}} .btn-mcq-option:active>span>span>span>.custom-checkbox{border-width:2px;--tw-border-opacity:1;border-color:rgb(40,44,135,var(--tw-border-opacity,1))} .btn-mcq-option.selected>span>span>span>.custom-checkbox{border-width:0;pointer-events:none;--tw-bg-opacity:1;background-color:rgb(84,101,251,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option.selected:hover>span>span>span>.custom-checkbox{border-width:0;--tw-bg-opacity:1;background-color:rgb(76,91,226,var(--tw-bg-opacity,1))}} .btn-mcq-option.selected:active>span>span>span>.custom-checkbox{border-width:0;--tw-bg-opacity:1;background-color:rgb(40,44,135,var(--tw-bg-opacity,1))} .btn-mcq-option.finished:active>span>span>span>.custom-checkbox, .btn-mcq-option.finished:hover>span>span>span>.custom-checkbox{border-width:1px;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .btn-mcq-option.missing.\\!correct, .btn-mcq-option.missing.correct{border-width:1px;--tw-border-opacity:1;border-color:rgb(21,128,61,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(248,248,248,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option.\\!correct.interactive:active, .btn-mcq-option.\\!correct.interactive:hover, .btn-mcq-option.correct.interactive:active, .btn-mcq-option.correct.interactive:hover, .btn-mcq-option.incorrect.interactive:active, .btn-mcq-option.incorrect.interactive:hover, .btn-mcq-option.missing.interactive:active, .btn-mcq-option.missing.interactive:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(238,240,255,var(--tw-bg-opacity,1))}} .btn-mcq-option.selected.\\!correct, .btn-mcq-option.selected.correct{background-color:rgb(240,253,244,var(--tw-bg-opacity,1));border-color:rgb(21,128,61,var(--tw-border-opacity,1));border-width:1px} .btn-mcq-option.selected.\\!correct, .btn-mcq-option.selected.correct, .btn-mcq-option.selected.incorrect{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .btn-mcq-option.selected.incorrect{background-color:rgb(253,242,248,var(--tw-bg-opacity,1));border-color:rgb(190,24,93,var(--tw-border-opacity,1));border-width:1px} .btn-mcq-option.selected.\\!correct>span>span>span>.choice, .btn-mcq-option.selected.correct>span>span>span>.choice, .btn-mcq-option.selected.incorrect>span>span>span>.choice{border-width:1px;--tw-border-opacity:1;border-color:rgb(113,115,119,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .btn-pressed{border-width:2px;--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));--tw-shadow:inset 0 0 0 100vmax rgba(0,0,0,.05);--tw-shadow-colored:inset 0 0 0 100vmax var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .btn-base:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .btn-base{align-items:center;display:inline-flex;justify-content:center}@media (hover:hover) and (pointer:fine){ .btn-base:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1))}} .btn-base:active{border-width:2px;--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));--tw-shadow:inset 0 0 0 100vmax rgba(0,0,0,.05);--tw-shadow-colored:inset 0 0 0 100vmax var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .btn-touch-container{align-items:center;display:flex;height:2.75rem;justify-content:center;width:2.75rem} .btn-touch-container:focus{outline:2px solid transparent;outline-offset:2px} .btn-icon-sm{align-items:center;background-color:hsla(0,0%,100%,.8);border-radius:.25rem;display:flex;height:1.5rem;justify-content:center;width:1.5rem}@media (hover:hover) and (pointer:fine){ .btn-touch-container:hover>.btn-icon-sm{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1))}} .btn-touch-container:active>.btn-icon-sm{border-width:2px;--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));--tw-shadow:inset 0 0 0 100vmax rgba(0,0,0,.05);--tw-shadow-colored:inset 0 0 0 100vmax var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .btn-touch-container:focus-visible>.btn-icon-sm{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .typein-textbox:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:4px;transition-duration:50ms} .typein-textbox{border-radius:.5rem;border-width:1px;width:100%;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1));font-size:1rem;line-height:1.5rem;padding:.75rem 1rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .typein-textbox::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(55,65,81,var(--tw-placeholder-opacity,1))} .typein-textbox::placeholder{--tw-placeholder-opacity:1;color:rgb(55,65,81,var(--tw-placeholder-opacity,1))} .typein-textbox:focus{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}@media (hover:hover) and (pointer:fine){ .typein-textbox:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}} .typein-textbox:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)!important}@media (hover:hover) and (pointer:fine){ .typein-textbox:hover{transition-duration:50ms}} .typein-textbox:focus{outline-color:#212529;outline-width:2px}@media (hover:hover) and (pointer:fine){ .typein-textbox:hover{outline-color:#212529;outline-width:2px}} .typein-textbox:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1))} .inline-typein-container>p{font-size:1.25rem;font-weight:600;line-height:3rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} #dnd-action-dragged-el{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;cursor:grabbing!important;transition-duration:50ms;--tw-border-opacity:1!important;border-color:rgb(93,99,107,var(--tw-border-opacity,1))!important;--tw-bg-opacity:1!important;background-color:rgb(205,208,254,var(--tw-bg-opacity,1))!important} #dnd-action-dragged-el .btn-vertical-icon{cursor:grabbing!important;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} #dnd-action-dragged-el .preview-icon{display:none!important} #dnd-action-dragged-el .preview-vertical{display:block!important} .image-description, .text-stimulus{padding-bottom:1rem;padding-top:1rem} .text-stimulus p{font-size:1.25rem;line-height:1.75rem;padding-bottom:.5rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} .image-description p{font-size:.875rem;line-height:1.25rem;padding-bottom:.5rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .text-stimulus ol, .text-stimulus ul{font-size:1rem;line-height:1.5rem;list-style-position:inside;padding-bottom:.5rem;padding-left:.5rem} .text-stimulus ol ::marker, .text-stimulus ul ::marker{color:#282c87} .text-stimulus ol::marker, .text-stimulus ul::marker{color:#282c87} .image-description ol, .image-description ul{font-size:.875rem;line-height:1.25rem;list-style-position:inside;padding-bottom:.5rem;padding-left:.5rem} .image-description ol ::marker, .image-description ul ::marker{color:#212529} .image-description ol::marker, .image-description ul::marker{color:#212529} .image-description ul, .text-stimulus ul{list-style-type:disc} .image-description ol, .text-stimulus ol{list-style-type:decimal} .image-description ul li>p, .text-stimulus ul li>p{margin-left:-.5rem} .text-stimulus ol>li>p, .text-stimulus ul>li>p{display:inline;font-size:1rem;line-height:1.5rem;padding-bottom:0;padding-top:0} .image-description ol>li>p, .image-description ul>li>p{display:inline;font-size:.875rem;line-height:1.25rem;padding-bottom:0;padding-top:0} .image-description div.table-container:focus, .text-stimulus div.table-container:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:4px;transition-duration:50ms} .image-description div.table-container, .text-stimulus div.table-container{border-radius:.5rem;overflow:auto;padding-left:.125rem;padding-right:.125rem} .image-description table, .text-stimulus table{margin-bottom:1rem;margin-top:.5rem;width:100%;--tw-border-spacing-x:0.75rem;--tw-border-spacing-y:0.75rem;border-radius:.5rem;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);overflow-x:auto;--tw-shadow:0 0 0 1px #9ca3af;--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .image-description table tr, .text-stimulus table tr{border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(156,163,175,var(--tw-border-opacity,1))} .image-description table tr:last-child, .text-stimulus table tr:last-child{border-color:transparent} .image-description table td, .image-description table th, .text-stimulus table td, .text-stimulus table th{border-left-width:1px;min-width:140px;--tw-border-opacity:1;border-color:rgb(156,163,175,var(--tw-border-opacity,1))} .image-description table td:first-child, .image-description table th:first-child, .text-stimulus table td:first-child, .text-stimulus table th:first-child{border-style:none} .text-stimulus table td>p, .text-stimulus table th>p{font-size:1rem;line-height:1.5rem;padding:.75rem;text-align:left;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .image-description table td>p, .image-description table th>p{font-size:.875rem;line-height:1.25rem;padding:.75rem;text-align:left;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .text-stimulus table th>p{font-weight:400} .image-description table th p, .prompt p, .text-stimulus table th p{font-weight:600} .prompt p b, .prompt p b i, .prompt p b i u, .prompt p b u, .prompt p b u i, .prompt p i b, .prompt p i b u, .prompt p i u b, .prompt p u b, .prompt p u b i, .prompt p u i b, .text-stimulus table th p b, .text-stimulus table th p b i, .text-stimulus table th p b i u, .text-stimulus table th p b u, .text-stimulus table th p b u i, .text-stimulus table th p i b, .text-stimulus table th p i b u, .text-stimulus table th p i u b, .text-stimulus table th p u b, .text-stimulus table th p u b i, .text-stimulus table th p u i b{font-weight:900} .dropdown-text:not(:last-child), .dropdown:not(:last-child){margin-right:1rem} .dropdown-container{align-items:center;border-radius:.5rem;border-width:1px;display:flex;height:2.75rem;overflow:hidden;white-space:nowrap;width:15rem;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1))} .dropdown-container:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)} .dropdown-container:active, .dropdown-container:focus{border-width:2px;box-shadow:0 0 0 2px #fff,0 0 0 4px #212529,0 0 0 6px #fde047;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}@media (hover:hover) and (pointer:fine){ .dropdown-container:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));outline-color:#212529;outline-width:2px}} .dropdown-menu{border-radius:.5rem;border-width:1px;margin-top:.5rem;max-height:400px;overflow-y:auto;position:absolute;z-index:10;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))}@supports (overflow-wrap:anywhere){ .dropdown-menu{overflow-wrap:anywhere}}@supports not (overflow-wrap:anywhere){ .dropdown-menu{word-break:break-word}} .dropdown-menu{max-width:min(500px,100vw - 2rem);min-width:240px;width:-moz-max-content;width:max-content} .dropdown-item{cursor:pointer;font-size:1rem;line-height:1.5rem;outline:2px solid transparent;outline-offset:2px;padding:.5rem 1rem} .dropdown-itemtext{border-bottom-width:1px;border-color:transparent} .dropdown-itemtext.hover-option{--tw-border-opacity:1;border-color:rgb(0,0,0,var(--tw-border-opacity,1));--tw-text-opacity:1;color:rgb(46,47,212,var(--tw-text-opacity,1))} .dropdown-itemtext.current-option{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1));--tw-text-opacity:1;border-bottom-width:1px;color:rgb(0,0,0,var(--tw-text-opacity,1));outline:2px solid transparent;outline-offset:2px;--tw-border-opacity:1;border-color:rgb(0,0,0,var(--tw-border-opacity,1))} .dropdown-itemtext:active{border-bottom-width:2px} .image-description-accordion{border-bottom-width:1px;border-color:transparent;font-weight:600;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .group:focus .image-description-accordion{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1));--tw-text-opacity:1;border-bottom-width:1px;color:rgb(0,0,0,var(--tw-text-opacity,1));outline:2px solid transparent;outline-offset:2px} .group:focus .image-description-accordion, .group:hover .image-description-accordion{--tw-border-opacity:1;border-color:rgb(0,0,0,var(--tw-border-opacity,1))} .group:active .image-description-accordion{border-bottom-width:2px} .sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap} .pointer-events-none{pointer-events:none} .pointer-events-auto{pointer-events:auto} .visible{visibility:visible} .invisible{visibility:hidden} .collapse{visibility:collapse} .static{position:static} .fixed{position:fixed} .absolute{position:absolute} .relative{position:relative} .inset-0{inset:0} .inset-y-0{bottom:0;top:0} .-top-2\\.5{top:-.625rem} .bottom-0{bottom:0} .bottom-1\\.5{bottom:.375rem} .bottom-4{bottom:1rem} .bottom-5{bottom:1.25rem} .bottom-\\[7px\\]{bottom:7px} .bottom-full{bottom:100%} .left-0{left:0} .left-1\\/2{left:50%} .left-4{left:1rem} .left-6{left:1.5rem} .left-\\[-9999px\\]{left:-9999px} .left-full{left:100%} .right-0{right:0} .right-1{right:.25rem} .right-1\\.5{right:.375rem} .right-2{right:.5rem} .right-4{right:1rem} .right-6{right:1.5rem} .right-full{right:100%} .top-0{top:0} .top-1{top:.25rem} .top-1\\.5{top:.375rem} .top-1\\/2{top:50%} .top-12{top:3rem} .top-2\\.5{top:.625rem} .top-3\\.5{top:.875rem} .top-\\[13px\\]{top:13px} .top-\\[calc\\(50\\%\\+0\\.375rem\\)\\]{top:calc(50% + .375rem)} .top-full{top:100%} .z-0{z-index:0} .z-10{z-index:10} .z-50{z-index:50} .m-0{margin:0} .m-auto{margin:auto} .mx-0\\.5{margin-left:.125rem;margin-right:.125rem} .mx-auto{margin-left:auto;margin-right:auto} .my-1\\.5{margin-bottom:.375rem;margin-top:.375rem} .my-2{margin-bottom:.5rem;margin-top:.5rem} .my-6{margin-bottom:1.5rem;margin-top:1.5rem} .-mb-1{margin-bottom:-.25rem} .-ml-1{margin-left:-.25rem} .-mr-1{margin-right:-.25rem} .-mr-2\\.5{margin-right:-.625rem} .-mt-0\\.5{margin-top:-.125rem} .-mt-1{margin-top:-.25rem} .mb-0\\.5{margin-bottom:.125rem} .mb-10{margin-bottom:2.5rem} .mb-12{margin-bottom:3rem} .mb-2{margin-bottom:.5rem} .mb-3{margin-bottom:.75rem} .mb-4{margin-bottom:1rem} .mb-5{margin-bottom:1.25rem} .mb-6{margin-bottom:1.5rem} .mb-\\[9\\.5px\\]{margin-bottom:9.5px} .ml-1{margin-left:.25rem} .ml-2{margin-left:.5rem} .ml-2\\.5{margin-left:.625rem} .ml-3{margin-left:.75rem} .ml-8\\.5{margin-left:2.125rem} .ml-\\[3px\\]{margin-left:3px} .ml-\\[9\\.5px\\]{margin-left:9.5px} .mr-1{margin-right:.25rem} .mr-2{margin-right:.5rem} .mr-4{margin-right:1rem} .mr-\\[9\\.5px\\]{margin-right:9.5px} .mt-1{margin-top:.25rem} .mt-2{margin-top:.5rem} .mt-4{margin-top:1rem} .mt-6{margin-top:1.5rem} .mt-7\\.5{margin-top:1.875} .mt-9{margin-top:2.25rem} .mt-\\[9\\.5px\\]{margin-top:9.5px} .line-clamp-1{-webkit-line-clamp:1} .line-clamp-1, .line-clamp-3{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical} .line-clamp-3{-webkit-line-clamp:3} .block{display:block} .inline-block{display:inline-block} .inline{display:inline} .flex{display:flex} .table{display:table} .grid{display:grid} .contents{display:contents} .hidden{display:none} .h-10\\.5{height:2.625rem} .h-11{height:2.75rem} .h-2{height:.5rem} .h-32{height:8rem} .h-4{height:1rem} .h-52{height:13rem} .h-6{height:1.5rem} .h-8{height:2rem} .h-8\\.5{height:2.125rem} .h-\\[13\\.33px\\]{height:13.33px} .h-\\[8\\.77px\\]{height:8.77px} .h-auto{height:auto} .h-fit{height:-moz-fit-content;height:fit-content} .h-full{height:100%} .h-screen{height:100vh} .max-h-\\[184px\\]{max-height:184px} .max-h-\\[470px\\]{max-height:470px} .max-h-\\[660px\\]{max-height:660px} .max-h-\\[calc\\(100vh-168px\\)\\]{max-height:calc(100vh - 168px)} .max-h-\\[calc\\(100vh-168px-34px\\)\\]{max-height:calc(100vh - 202px)} .max-h-none{max-height:none} .min-h-\\[133px\\]{min-height:133px} .min-h-\\[140px\\]{min-height:140px} .min-h-\\[154px\\]{min-height:154px} .min-h-\\[210px\\]{min-height:210px} .min-h-\\[44px\\]{min-height:44px} .min-h-\\[54px\\]{min-height:54px} .min-h-\\[86px\\]{min-height:86px} .w-11{width:2.75rem} .w-2{width:.5rem} .w-2\\/4{width:50%} .w-3{width:.75rem} .w-4{width:1rem} .w-6{width:1.5rem} .w-60{width:15rem} .w-8{width:2rem} .w-8\\.5{width:2.125rem} .w-\\[13\\.33px\\]{width:13.33px} .w-\\[8\\.77px\\]{width:8.77px} .w-auto{width:auto} .w-fit{width:-moz-fit-content;width:fit-content} .w-full{width:100%} .w-screen{width:100vw} .min-w-0{min-width:0} .min-w-\\[288px\\]{min-width:288px} .min-w-\\[44px\\]{min-width:44px} .min-w-\\[85px\\]{min-width:85px} .max-w-\\[1008px\\]{max-width:1008px} .max-w-\\[300px\\]{max-width:300px} .max-w-\\[304px\\]{max-width:304px} .max-w-\\[400px\\]{max-width:400px} .max-w-full{max-width:100%} .max-w-none{max-width:none} .flex-1{flex:1 1 0%} .flex-none{flex:none} .flex-shrink-0{flex-shrink:0} .grow{flex-grow:1} .basis-0{flex-basis:0px} .-translate-x-1\\/2{--tw-translate-x:-50%} .-translate-x-1\\/2, .-translate-y-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))} .-translate-y-1\\/2{--tw-translate-y:-50%} .rotate-45{--tw-rotate:45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))} .\\!cursor-default{cursor:default!important} .\\!cursor-pointer{cursor:pointer!important} .cursor-default{cursor:default} .cursor-pointer{cursor:pointer} .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none} .resize-none{resize:none} .resize{resize:both} .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))} .flex-row{flex-direction:row} .flex-col{flex-direction:column} .flex-col-reverse{flex-direction:column-reverse} .flex-wrap{flex-wrap:wrap} .content-start{align-content:flex-start} .items-center{align-items:center} .justify-start{justify-content:flex-start} .justify-center{justify-content:center} .justify-between{justify-content:space-between} .gap-1{gap:.25rem} .gap-2{gap:.5rem} .space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))} .space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse:1} .overflow-hidden{overflow:hidden} .overflow-y-auto{overflow-y:auto} .overflow-x-hidden{overflow-x:hidden} .overflow-y-visible{overflow-y:visible} .truncate{overflow:hidden;white-space:nowrap} .text-ellipsis, .truncate{text-overflow:ellipsis} .whitespace-normal{white-space:normal} .whitespace-nowrap{white-space:nowrap} .break-words{overflow-wrap:break-word} .break-all{word-break:break-all} .rounded{border-radius:.25rem} .rounded-\\[32px\\]{border-radius:32px} .rounded-lg{border-radius:.5rem} .rounded-md{border-radius:.375rem} .rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem} .rounded-b-md{border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem} .rounded-l-lg{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem} .rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem} .rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem} .border{border-width:1px} .border-2{border-width:2px} .border-b{border-bottom-width:1px} .border-l-4{border-left-width:4px} .border-l-6{border-left-width:6px} .border-dashed{border-style:dashed} .\\!border-blue-1000{--tw-border-opacity:1!important;border-color:rgb(40,44,135,var(--tw-border-opacity,1))!important} .border-blue-1000{--tw-border-opacity:1;border-color:rgb(40,44,135,var(--tw-border-opacity,1))} .border-blue-950{--tw-border-opacity:1;border-color:rgb(29,78,216,var(--tw-border-opacity,1))} .border-border-minimal{--tw-border-opacity:1;border-color:rgb(229,231,235,var(--tw-border-opacity,1))} .border-charcoal{--tw-border-opacity:1;border-color:rgb(33,37,41,var(--tw-border-opacity,1))} .border-gray-400{--tw-border-opacity:1;border-color:rgb(196,201,204,var(--tw-border-opacity,1))} .border-gray-800{--tw-border-opacity:1;border-color:rgb(93,99,107,var(--tw-border-opacity,1))} .border-gray-850{--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1))} .border-green-700{--tw-border-opacity:1;border-color:rgb(22,163,74,var(--tw-border-opacity,1))} .border-green-800{--tw-border-opacity:1;border-color:rgb(0,102,5,var(--tw-border-opacity,1))} .border-green-900{--tw-border-opacity:1;border-color:rgb(21,128,61,var(--tw-border-opacity,1))} .border-red-600{--tw-border-opacity:1;border-color:rgb(220,38,38,var(--tw-border-opacity,1))} .border-red-800{--tw-border-opacity:1;border-color:rgb(217,12,85,var(--tw-border-opacity,1))} .border-red-850{--tw-border-opacity:1;border-color:rgb(219,39,119,var(--tw-border-opacity,1))} .border-red-900{--tw-border-opacity:1;border-color:rgb(190,24,93,var(--tw-border-opacity,1))} .border-soft-blue{--tw-border-opacity:1;border-color:rgb(84,101,251,var(--tw-border-opacity,1))} .border-white{--tw-border-opacity:1;border-color:rgb(255,255,255,var(--tw-border-opacity,1))} .\\!bg-violet-100{--tw-bg-opacity:1!important;background-color:rgb(235,235,255,var(--tw-bg-opacity,1))!important} .\\!bg-white{--tw-bg-opacity:1!important;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))!important} .bg-black{--tw-bg-opacity:1;background-color:rgb(0,0,0,var(--tw-bg-opacity,1))} .bg-blue-1000{--tw-bg-opacity:1;background-color:rgb(40,44,135,var(--tw-bg-opacity,1))} .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239,246,255,var(--tw-bg-opacity,1))} .bg-charcoal\\/30{background-color:rgba(33,37,41,.3)} .bg-charcoal\\/80{background-color:rgba(33,37,41,.8)} .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(247,250,250,var(--tw-bg-opacity,1))} .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(244,244,244,var(--tw-bg-opacity,1))} .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(57,62,69,var(--tw-bg-opacity,1))} .bg-green-300{--tw-bg-opacity:1;background-color:rgb(241,254,241,var(--tw-bg-opacity,1))} .bg-green-400{--tw-bg-opacity:1;background-color:rgb(240,253,244,var(--tw-bg-opacity,1))} .bg-red-200{--tw-bg-opacity:1;background-color:rgb(254,202,202,var(--tw-bg-opacity,1))} .bg-red-300{--tw-bg-opacity:1;background-color:rgb(253,243,247,var(--tw-bg-opacity,1))} .bg-red-50{--tw-bg-opacity:1;background-color:rgb(253,242,248,var(--tw-bg-opacity,1))} .bg-soft-blue{--tw-bg-opacity:1;background-color:rgb(84,101,251,var(--tw-bg-opacity,1))} .bg-transparent{background-color:transparent} .bg-violet-100{--tw-bg-opacity:1;background-color:rgb(235,235,255,var(--tw-bg-opacity,1))} .bg-violet-150{--tw-bg-opacity:1;background-color:rgb(205,208,254,var(--tw-bg-opacity,1))} .bg-white{--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .bg-white\\/80{background-color:hsla(0,0%,100%,.8)} .bg-yellow-1000{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1))} .bg-opacity-5{--tw-bg-opacity:0.05} .object-contain{-o-object-fit:contain;object-fit:contain} .p-0\\.5{padding:.125rem} .p-1{padding:.25rem} .p-1\\.5{padding:.375rem} .p-2{padding:.5rem} .p-3{padding:.75rem} .p-4{padding:1rem} .p-5{padding:1.25rem} .p-6{padding:1.5rem} .px-0{padding-left:0;padding-right:0} .px-2{padding-left:.5rem;padding-right:.5rem} .px-3{padding-left:.75rem;padding-right:.75rem} .px-4{padding-left:1rem;padding-right:1rem} .py-1{padding-bottom:.25rem;padding-top:.25rem} .py-1\\.5{padding-bottom:.375rem;padding-top:.375rem} .py-2{padding-bottom:.5rem;padding-top:.5rem} .py-\\[9px\\]{padding-bottom:9px;padding-top:9px} .\\!pr-11{padding-right:2.75rem!important} .pb-0{padding-bottom:0} .pb-10{padding-bottom:2.5rem} .pb-2{padding-bottom:.5rem} .pb-3{padding-bottom:.75rem} .pb-\\[72px\\]{padding-bottom:72px} .pl-13\\.2{padding-left:3.125rem} .pl-24{padding-left:6rem} .pl-3{padding-left:.75rem} .pl-4{padding-left:1rem} .pr-10{padding-right:2.5rem} .pr-3{padding-right:.75rem} .pr-4{padding-right:1rem} .pt-0{padding-top:0} .pt-0\\.5{padding-top:.125rem} .pt-14{padding-top:3.5rem} .pt-4{padding-top:1rem} .pt-6{padding-top:1.5rem} .pt-\\[15px\\]{padding-top:15px} .pt-\\[55px\\]{padding-top:55px} .text-left{text-align:left} .text-center{text-align:center} .align-middle{vertical-align:middle} .text-base{font-size:1rem;line-height:1.5rem} .text-lg{font-size:1.125rem;line-height:1.75rem} .text-sm{font-size:.875rem;line-height:1.25rem} .text-xl{font-size:1.25rem;line-height:1.75rem} .font-bold{font-weight:700} .font-normal{font-weight:400} .font-semibold{font-weight:600} .leading-12{line-height:3rem} .leading-4{line-height:1rem} .leading-5{line-height:1.25rem} .leading-6{line-height:1.5rem} .leading-\\[1\\.5\\]{line-height:1.5} .leading-\\[150\\%\\]{line-height:150%} .leading-\\[19\\.2px\\]{line-height:19.2px} .leading-\\[19px\\]{line-height:19px} .leading-\\[22px\\]{line-height:22px} .\\!text-gray-900{--tw-text-opacity:1!important;color:rgb(57,62,69,var(--tw-text-opacity,1))!important} .text-blue-1000{--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} .text-blue-500{--tw-text-opacity:1;color:rgb(37,99,235,var(--tw-text-opacity,1))} .text-blue-850{--tw-text-opacity:1;color:rgb(46,47,212,var(--tw-text-opacity,1))} .text-charcoal{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .text-gray-500{--tw-text-opacity:1;color:rgb(107,114,128,var(--tw-text-opacity,1))} .text-gray-800{--tw-text-opacity:1;color:rgb(93,99,107,var(--tw-text-opacity,1))} .text-gray-860{--tw-text-opacity:1;color:rgb(55,65,81,var(--tw-text-opacity,1))} .text-green-700{--tw-text-opacity:1;color:rgb(22,163,74,var(--tw-text-opacity,1))} .text-green-800{--tw-text-opacity:1;color:rgb(0,102,5,var(--tw-text-opacity,1))} .text-green-900{--tw-text-opacity:1;color:rgb(21,128,61,var(--tw-text-opacity,1))} .text-inherit{color:inherit} .text-primary-emphasis{--tw-text-opacity:1;color:rgb(8,38,99,var(--tw-text-opacity,1))} .text-red-400{--tw-text-opacity:1;color:rgb(157,23,77,var(--tw-text-opacity,1))} .text-red-800{--tw-text-opacity:1;color:rgb(217,12,85,var(--tw-text-opacity,1))} .text-red-850{--tw-text-opacity:1;color:rgb(219,39,119,var(--tw-text-opacity,1))} .text-red-900{--tw-text-opacity:1;color:rgb(190,24,93,var(--tw-text-opacity,1))} .text-white{--tw-text-opacity:1;color:rgb(255,255,255,var(--tw-text-opacity,1))} .underline{text-decoration-line:underline} .opacity-0{opacity:0} .opacity-5{opacity:.05} .opacity-50{opacity:.5} .shadow-\\[0_-12px_14px_-16px_\\#00000033\\]{--tw-shadow:0 -12px 14px -16px #00000033;--tw-shadow-colored:0 -12px 14px -16px var(--tw-shadow-color)} .shadow-\\[0_-12px_14px_-16px_\\#00000033\\], .shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .shadow-md{--tw-shadow:0px 2px 8px rgba(0,0,0,.2);--tw-shadow-colored:0px 2px 8px var(--tw-shadow-color)} .\\!outline-none{outline:2px solid transparent!important;outline-offset:2px!important} .outline-none{outline:2px solid transparent;outline-offset:2px} .blur{--tw-blur:blur(8px)} .blur, .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)} .backdrop-blur-md{--tw-backdrop-blur:blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)} .transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)} .duration-300{transition-duration:.3s} :host, html{-webkit-tap-highlight-color:inherit!important} .active\\:raw-focus-ring-by:active{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529} .active\\:raw-focus-ring-by:active, .active\\:raw-focus-ring:active{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .active\\:raw-focus-ring:active{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}@media (min-width:732px){ .md\\:item-heading{font-size:1.25rem;letter-spacing:-.025em;line-height:1.5rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))}}@media (hover:hover) and (pointer:fine){ .td\\:hover-focus-ring:hover{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;transition-duration:50ms}} .last\\:mr-0:last-child{margin-right:0} .focus-within\\:left-0:focus-within{left:0} .focus-within\\:right-0:focus-within{right:0} .focus-within\\:top-0:focus-within{top:0} .focus-within\\:z-30:focus-within{z-index:30} .hover\\:bg-black-50:hover{background-color:rgba(0,0,0,.051)} .hover\\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(222,222,255,var(--tw-bg-opacity,1))} .hover\\:bg-yellow-1000:hover{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1))} .hover\\:text-charcoal:hover{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .hover\\:underline:hover{text-decoration-line:underline} .hover\\:decoration-2:hover{text-decoration-thickness:2px} .hover\\:underline-offset-\\[25\\%\\]:hover{text-underline-offset:25%} .focus-visible\\:border:focus-visible{border-width:1px} .focus-visible\\:border-charcoal:focus-visible{--tw-border-opacity:1;border-color:rgb(33,37,41,var(--tw-border-opacity,1))} .focus-visible\\:border-gray-400:focus-visible{--tw-border-opacity:1;border-color:rgb(196,201,204,var(--tw-border-opacity,1))} .focus-visible\\:border-gray-800:focus-visible{--tw-border-opacity:1;border-color:rgb(93,99,107,var(--tw-border-opacity,1))} .focus-visible\\:bg-yellow-900:focus-visible{--tw-bg-opacity:1;background-color:rgb(253,224,71,var(--tw-bg-opacity,1))} .focus-visible\\:text-charcoal:focus-visible{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .focus-visible\\:underline:focus-visible{text-decoration-line:underline} .focus-visible\\:decoration-2:focus-visible{text-decoration-thickness:2px} .focus-visible\\:underline-offset-\\[25\\%\\]:focus-visible{text-underline-offset:25%} .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px} .focus-visible\\:ring-4:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)} .focus-visible\\:ring-soft-blue:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1))} .focus-visible\\:ring-offset-4:focus-visible{--tw-ring-offset-width:4px} .focus-visible\\:duration-50:focus-visible{transition-duration:50ms} .active\\:bg-black-55:active, .active\\:bg-black-60:active{background-color:rgba(0,0,0,.102)} .active\\:bg-yellow-1100:active{--tw-bg-opacity:1;background-color:rgb(238,206,26,var(--tw-bg-opacity,1))} .active\\:text-charcoal:active{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .disabled\\:text-gray-40:disabled{--tw-text-opacity:1;color:rgb(142,147,153,var(--tw-text-opacity,1))} .disabled\\:hover\\:bg-white:hover:disabled{--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .group:hover .group-hover\\:underline{text-decoration-line:underline} .group.active .group-\\[\\.active\\]\\:border-b-2{border-bottom-width:2px}@media (min-width:732px){ .md\\:inset-0{inset:0} .md\\:top-20{top:5rem} .md\\:mb-2{margin-bottom:.5rem} .md\\:mb-4{margin-bottom:1rem} .md\\:mb-8{margin-bottom:2rem} .md\\:ml-0{margin-left:0} .md\\:mt-0{margin-top:0} .md\\:mt-14{margin-top:3.5rem} .md\\:block{display:block} .md\\:inline-block{display:inline-block} .md\\:flex{display:flex} .md\\:grid{display:grid} .md\\:hidden{display:none} .md\\:h-11{height:2.75rem} .md\\:h-5{height:1.25rem} .md\\:h-\\[13\\.5px\\]{height:13.5px} .md\\:h-fit{height:-moz-fit-content;height:fit-content} .md\\:max-h-\\[calc\\(100vh-128px\\)\\]{max-height:calc(100vh - 128px)} .md\\:max-h-\\[calc\\(100vh-128px-54px\\)\\]{max-height:calc(100vh - 182px)} .md\\:min-h-0{min-height:0} .md\\:min-h-\\[140px\\]{min-height:140px} .md\\:min-h-\\[164px\\]{min-height:164px} .md\\:w-1\\/2{width:50%} .md\\:w-11{width:2.75rem} .md\\:w-5{width:1.25rem} .md\\:w-\\[13\\.5px\\]{width:13.5px} .md\\:w-fit{width:-moz-fit-content;width:fit-content} .md\\:max-w-\\[calc\\(100vw-164px\\)\\]{max-width:calc(100vw - 164px)} .md\\:flex-none{flex:none} .md\\:grow-0{flex-grow:0} .md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))} .md\\:flex-row{flex-direction:row} .md\\:flex-col{flex-direction:column} .md\\:items-start{align-items:flex-start} .md\\:items-center{align-items:center} .md\\:justify-normal{justify-content:normal} .md\\:justify-center{justify-content:center} .md\\:justify-between{justify-content:space-between} .md\\:gap-4{gap:1rem} .md\\:gap-6{gap:1.5rem} .md\\:gap-x-4{-moz-column-gap:1rem;column-gap:1rem} .md\\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))} .md\\:rounded-lg{border-radius:.5rem} .md\\:rounded-md{border-radius:.375rem} .md\\:rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0} .md\\:border{border-width:1px} .md\\:border-gray-400{--tw-border-opacity:1;border-color:rgb(196,201,204,var(--tw-border-opacity,1))} .md\\:\\!bg-white{--tw-bg-opacity:1!important;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))!important} .md\\:p-4{padding:1rem} .md\\:px-0{padding-left:0;padding-right:0} .md\\:px-4{padding-left:1rem;padding-right:1rem} .md\\:px-6{padding-left:1.5rem;padding-right:1.5rem} .md\\:px-\\[82px\\]{padding-left:82px;padding-right:82px} .md\\:pb-0{padding-bottom:0} .md\\:pl-13\\.2{padding-left:3.125rem} .md\\:pl-4{padding-left:1rem} .md\\:pr-4{padding-right:1rem} .md\\:pt-20\\.5{padding-top:5.125rem} .md\\:text-center{text-align:center} .md\\:text-lg{font-size:1.125rem;line-height:1.75rem} .md\\:shadow-\\[0_0_\\#0000\\]{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .md\\:\\[grid-template-columns\\:repeat\\(2\\,minmax\\(auto\\,304px\\)\\)\\]{grid-template-columns:repeat(2,minmax(auto,304px))}}@media (min-width:1196px){ .lg\\:left-16{left:4rem} .lg\\:right-16{right:4rem} .lg\\:flex{display:flex} .lg\\:hidden{display:none} .lg\\:max-h-\\[calc\\(100vh-192px\\)\\]{max-height:calc(100vh - 192px)} .lg\\:max-h-\\[calc\\(100vh-192px-54px\\)\\]{max-height:calc(100vh - 246px)} .lg\\:min-h-\\[224px\\]{min-height:224px} .lg\\:w-full{width:100%} .lg\\:max-w-\\[50\\%\\]{max-width:50%} .lg\\:max-w-\\[calc\\(100vw-248px\\)\\]{max-width:calc(100vw - 248px)} .lg\\:grow{flex-grow:1} .lg\\:basis-1\\/2{flex-basis:50%} .lg\\:justify-start{justify-content:flex-start} .lg\\:rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem} .lg\\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem} .lg\\:px-16{padding-left:4rem;padding-right:4rem} .lg\\:px-\\[128px\\]{padding-left:128px;padding-right:128px} .lg\\:py-24{padding-bottom:6rem;padding-top:6rem} .lg\\:pt-6{padding-top:1.5rem}}@media (hover:hover) and (pointer:fine){ .td\\:border-2{border-width:2px} .td\\:border-blue-900{--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))} .td\\:hover\\:cursor-grab:hover{cursor:grab} .td\\:hover\\:bg-black-50:hover{background-color:rgba(0,0,0,.051)} .td\\:hover\\:bg-violet-100:hover{--tw-bg-opacity:1;background-color:rgb(235,235,255,var(--tw-bg-opacity,1))} .td\\:hover\\:text-soft-blue:hover{--tw-text-opacity:1;color:rgb(84,101,251,var(--tw-text-opacity,1))} .group:hover .td\\:group-hover\\:bg-black{--tw-bg-opacity:1;background-color:rgb(0,0,0,var(--tw-bg-opacity,1))} .group:hover .td\\:group-hover\\:opacity-5{opacity:.05}}@media (pointer:coarse){ .coarse\\:active\\:bg-yellow-900:active{--tw-bg-opacity:1;background-color:rgb(253,224,71,var(--tw-bg-opacity,1))}}'
|
|
19824
|
+
code: ' *, :after, :before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style:} ::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style:} *, :after, :before{border:0 solid #e5e7eb;box-sizing:border-box} :after, :before{--tw-content:""} :host, html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:Mulish,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent} body{line-height:inherit;margin:0} hr{border-top-width:1px;color:inherit;height:0} abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted} h1, h2, h3, h4, h5, h6{font-size:inherit;font-weight:inherit} a{color:inherit;text-decoration:inherit} b, strong{font-weight:bolder} code, kbd, pre, samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal} small{font-size:80%} sub, sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} sub{bottom:-.25em} sup{top:-.5em} table{border-collapse:collapse;border-color:inherit;text-indent:0} button, input, optgroup, select, textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0} button, select{text-transform:none} button, input:where([type=button]), input:where([type=reset]), input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none} :-moz-focusring{outline:auto} :-moz-ui-invalid{box-shadow:none} progress{vertical-align:baseline} ::-webkit-inner-spin-button, ::-webkit-outer-spin-button{height:auto} [type=search]{-webkit-appearance:textfield;outline-offset:-2px} ::-webkit-search-decoration{-webkit-appearance:none} ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit} summary{display:list-item} blockquote, dd, dl, figure, h1, h2, h3, h4, h5, h6, hr, p, pre{margin:0} fieldset{margin:0} fieldset, legend{padding:0} menu, ol, ul{list-style:none;margin:0;padding:0} dialog{padding:0} textarea{resize:vertical} input::-moz-placeholder, textarea::-moz-placeholder{color:#9ca3af;opacity:1} input::placeholder, textarea::placeholder{color:#9ca3af;opacity:1} [role=button], button{cursor:pointer} :disabled{cursor:default} audio, canvas, embed, iframe, img, object, svg, video{display:block;vertical-align:middle} img, video{height:auto;max-width:100%} [hidden]:where(:not([hidden=until-found])){display:none} *{font-family:Mulish,sans-serif} input::-moz-selection, textarea::-moz-selection{background-color:hsla(0,0%,85%,.4)} input::selection, textarea::selection{background-color:hsla(0,0%,85%,.4)} .container{width:100%}@media (min-width:732px){ .container{max-width:732px}}@media (min-width:1196px){ .container{max-width:1196px}} .p2{font-size:1rem;font-weight:600;line-height:1.5rem;line-height:130%} .p3{font-size:.875rem;font-weight:400;line-height:1.25rem;line-height:1.5} .blanket-overlay{inset:0;position:absolute} .item-heading{font-size:1.25rem;letter-spacing:-.025em;line-height:1.5rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} .focus-ring:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:4px} .focus-ring:focus, .raw-focus-ring{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .raw-focus-ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px} .focus-ring-by-dropdown{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:rgb(59,64,240,var(--tw-border-opacity,1));border-width:2px;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);box-shadow:0 0 0 2px #fff,0 0 0 4px #212529,0 0 0 6px #fde047} .divider, .focus-ring-by-dropdown{--tw-border-opacity:1} .divider{border-bottom-width:1px;border-color:rgb(218,224,224,var(--tw-border-opacity,1))}@keyframes svelte-1dpid58-pulse{50%{opacity:.5}} .animate-skeleton{animation:svelte-1dpid58-pulse 2s cubic-bezier(.4,0,.6,1) infinite;--tw-bg-opacity:1;background-color:rgb(226,232,240,var(--tw-bg-opacity,1))} .btn-mcq-option:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .btn-mcq-option{font-size:1rem;line-height:1.5rem;line-height:19.2px;margin-bottom:1rem;min-height:52px;width:100%;--tw-text-opacity:1;border-radius:.5rem;border-width:1px;box-sizing:border-box;color:rgb(33,37,41,var(--tw-text-opacity,1));--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(248,248,248,var(--tw-bg-opacity,1))} .btn-mcq-option:active{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(238,240,255,var(--tw-bg-opacity,1))}} .btn-mcq-text{align-items:center;display:flex;padding:.375rem .75rem;width:100%}@supports (overflow-wrap:anywhere){ .btn-mcq-text{overflow-wrap:anywhere}}@supports not (overflow-wrap:anywhere){ .btn-mcq-text{word-break:break-word}} .btn-mcq-option>span>span>span>.choice{align-items:center;border-radius:1rem;border-width:1px;display:flex;font-size:1rem;font-weight:700;height:2rem;justify-content:center;letter-spacing:.05em;line-height:1rem;width:2rem;--tw-border-opacity:1;border-color:rgb(156,163,175,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1));padding:.5rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .btn-mcq-option.selected{border-width:2px;--tw-border-opacity:1;background-color:rgb(40,44,135,var(--tw-bg-opacity,1));border-color:rgb(40,44,135,var(--tw-border-opacity,1))} .btn-mcq-option.selected, .btn-mcq-option.selected:active{--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(255,255,255,var(--tw-text-opacity,1))} .btn-mcq-option.selected:active{background-color:rgb(84,101,251,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option.selected:hover{--tw-bg-opacity:1;background-color:rgb(84,101,251,var(--tw-bg-opacity,1))}} .btn-mcq-option.finished{cursor:default} .btn-mcq-option.finished:active, .btn-mcq-option.finished:hover{border-width:1px;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(248,248,248,var(--tw-bg-opacity,1))} .btn-mcq-option.selected>span>span>.choice{--tw-bg-opacity:1;background-color:rgb(238,240,255,var(--tw-bg-opacity,1))} .btn-mcq-option>span>span>span>.custom-checkbox{align-items:center;border-radius:.25rem;border-width:1px;display:flex;height:1.75rem;justify-content:center;pointer-events:none;width:1.75rem;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option:hover>span>span>span>.custom-checkbox{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))} .btn-mcq-option:active>span>span>span>.custom-checkbox.preview-only, .btn-mcq-option:hover>span>span>span>.custom-checkbox.preview-only{border-width:1px;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1))}} .btn-mcq-option:active>span>span>span>.custom-checkbox{border-width:2px;--tw-border-opacity:1;border-color:rgb(40,44,135,var(--tw-border-opacity,1))} .btn-mcq-option.selected>span>span>span>.custom-checkbox{border-width:0;pointer-events:none;--tw-bg-opacity:1;background-color:rgb(84,101,251,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option.selected:hover>span>span>span>.custom-checkbox{border-width:0;--tw-bg-opacity:1;background-color:rgb(76,91,226,var(--tw-bg-opacity,1))}} .btn-mcq-option.selected:active>span>span>span>.custom-checkbox{border-width:0;--tw-bg-opacity:1;background-color:rgb(40,44,135,var(--tw-bg-opacity,1))} .btn-mcq-option.finished:active>span>span>span>.custom-checkbox, .btn-mcq-option.finished:hover>span>span>span>.custom-checkbox{border-width:1px;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .btn-mcq-option.missing.\\!correct, .btn-mcq-option.missing.correct{border-width:1px;--tw-border-opacity:1;border-color:rgb(21,128,61,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(248,248,248,var(--tw-bg-opacity,1))}@media (hover:hover) and (pointer:fine){ .btn-mcq-option.\\!correct.interactive:active, .btn-mcq-option.\\!correct.interactive:hover, .btn-mcq-option.correct.interactive:active, .btn-mcq-option.correct.interactive:hover, .btn-mcq-option.incorrect.interactive:active, .btn-mcq-option.incorrect.interactive:hover, .btn-mcq-option.missing.interactive:active, .btn-mcq-option.missing.interactive:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(238,240,255,var(--tw-bg-opacity,1))}} .btn-mcq-option.selected.\\!correct, .btn-mcq-option.selected.correct{background-color:rgb(240,253,244,var(--tw-bg-opacity,1));border-color:rgb(21,128,61,var(--tw-border-opacity,1));border-width:1px} .btn-mcq-option.selected.\\!correct, .btn-mcq-option.selected.correct, .btn-mcq-option.selected.incorrect{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .btn-mcq-option.selected.incorrect{background-color:rgb(253,242,248,var(--tw-bg-opacity,1));border-color:rgb(190,24,93,var(--tw-border-opacity,1));border-width:1px} .btn-mcq-option.selected.\\!correct>span>span>span>.choice, .btn-mcq-option.selected.correct>span>span>span>.choice, .btn-mcq-option.selected.incorrect>span>span>span>.choice{border-width:1px;--tw-border-opacity:1;border-color:rgb(113,115,119,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .btn-pressed{border-width:2px;--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));--tw-shadow:inset 0 0 0 100vmax rgba(0,0,0,.05);--tw-shadow-colored:inset 0 0 0 100vmax var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .btn-base:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .btn-base{align-items:center;display:inline-flex;justify-content:center}@media (hover:hover) and (pointer:fine){ .btn-base:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1))}} .btn-base:active{border-width:2px;--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));--tw-shadow:inset 0 0 0 100vmax rgba(0,0,0,.05);--tw-shadow-colored:inset 0 0 0 100vmax var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .btn-touch-container{align-items:center;display:flex;height:2.75rem;justify-content:center;width:2.75rem} .btn-touch-container:focus{outline:2px solid transparent;outline-offset:2px} .btn-icon-sm{align-items:center;background-color:hsla(0,0%,100%,.8);border-radius:.25rem;display:flex;height:1.5rem;justify-content:center;width:1.5rem}@media (hover:hover) and (pointer:fine){ .btn-touch-container:hover>.btn-icon-sm{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1))}} .btn-touch-container:active>.btn-icon-sm{border-width:2px;--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));--tw-shadow:inset 0 0 0 100vmax rgba(0,0,0,.05);--tw-shadow-colored:inset 0 0 0 100vmax var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .btn-touch-container:focus-visible>.btn-icon-sm{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .typein-textbox:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:4px;transition-duration:50ms} .typein-textbox{border-radius:.5rem;border-width:1px;width:100%;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1));font-size:1rem;line-height:1.5rem;padding:.75rem 1rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .typein-textbox::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(55,65,81,var(--tw-placeholder-opacity,1))} .typein-textbox::placeholder{--tw-placeholder-opacity:1;color:rgb(55,65,81,var(--tw-placeholder-opacity,1))} .typein-textbox:focus{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}@media (hover:hover) and (pointer:fine){ .typein-textbox:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}} .typein-textbox:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)!important}@media (hover:hover) and (pointer:fine){ .typein-textbox:hover{transition-duration:50ms}} .typein-textbox:focus{outline-color:#212529;outline-width:2px}@media (hover:hover) and (pointer:fine){ .typein-textbox:hover{outline-color:#212529;outline-width:2px}} .typein-textbox:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1))} .inline-typein-container>p{font-size:1.25rem;font-weight:600;line-height:3rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} #dnd-action-dragged-el{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;cursor:grabbing!important;transition-duration:50ms;--tw-border-opacity:1!important;border-color:rgb(93,99,107,var(--tw-border-opacity,1))!important;--tw-bg-opacity:1!important;background-color:rgb(205,208,254,var(--tw-bg-opacity,1))!important} #dnd-action-dragged-el .btn-vertical-icon{cursor:grabbing!important;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} #dnd-action-dragged-el .preview-icon{display:none!important} #dnd-action-dragged-el .preview-vertical{display:block!important} .image-description, .text-stimulus{padding-bottom:1rem;padding-top:1rem} .text-stimulus p{font-size:1.25rem;line-height:1.75rem;padding-bottom:.5rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} .image-description p{font-size:.875rem;line-height:1.25rem;padding-bottom:.5rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .text-stimulus ol, .text-stimulus ul{font-size:1rem;line-height:1.5rem;list-style-position:inside;padding-bottom:.5rem;padding-left:.5rem} .text-stimulus ol ::marker, .text-stimulus ul ::marker{color:#282c87} .text-stimulus ol::marker, .text-stimulus ul::marker{color:#282c87} .image-description ol, .image-description ul{font-size:.875rem;line-height:1.25rem;list-style-position:inside;padding-bottom:.5rem;padding-left:.5rem} .image-description ol ::marker, .image-description ul ::marker{color:#212529} .image-description ol::marker, .image-description ul::marker{color:#212529} .image-description ul, .text-stimulus ul{list-style-type:disc} .image-description ol, .text-stimulus ol{list-style-type:decimal} .image-description ul li>p, .text-stimulus ul li>p{margin-left:-.5rem} .text-stimulus ol>li>p, .text-stimulus ul>li>p{display:inline;font-size:1rem;line-height:1.5rem;padding-bottom:0;padding-top:0} .image-description ol>li>p, .image-description ul>li>p{display:inline;font-size:.875rem;line-height:1.25rem;padding-bottom:0;padding-top:0} .image-description div.table-container:focus, .text-stimulus div.table-container:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:4px;transition-duration:50ms} .image-description div.table-container, .text-stimulus div.table-container{border-radius:.5rem;overflow:auto;padding-left:.125rem;padding-right:.125rem} .image-description table, .text-stimulus table{margin-bottom:1rem;margin-top:.5rem;width:100%;--tw-border-spacing-x:0.75rem;--tw-border-spacing-y:0.75rem;border-radius:.5rem;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);overflow-x:auto;--tw-shadow:0 0 0 1px #9ca3af;--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .image-description table tr, .text-stimulus table tr{border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(156,163,175,var(--tw-border-opacity,1))} .image-description table tr:last-child, .text-stimulus table tr:last-child{border-color:transparent} .image-description table td, .image-description table th, .text-stimulus table td, .text-stimulus table th{border-left-width:1px;min-width:140px;--tw-border-opacity:1;border-color:rgb(156,163,175,var(--tw-border-opacity,1))} .image-description table td:first-child, .image-description table th:first-child, .text-stimulus table td:first-child, .text-stimulus table th:first-child{border-style:none} .text-stimulus table td>p, .text-stimulus table th>p{font-size:1rem;line-height:1.5rem;padding:.75rem;text-align:left;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .image-description table td>p, .image-description table th>p{font-size:.875rem;line-height:1.25rem;padding:.75rem;text-align:left;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .text-stimulus table th>p{font-weight:400} .image-description table th p, .prompt p, .text-stimulus table th p{font-weight:600} .prompt p b, .prompt p b i, .prompt p b i u, .prompt p b u, .prompt p b u i, .prompt p i b, .prompt p i b u, .prompt p i u b, .prompt p u b, .prompt p u b i, .prompt p u i b, .text-stimulus table th p b, .text-stimulus table th p b i, .text-stimulus table th p b i u, .text-stimulus table th p b u, .text-stimulus table th p b u i, .text-stimulus table th p i b, .text-stimulus table th p i b u, .text-stimulus table th p i u b, .text-stimulus table th p u b, .text-stimulus table th p u b i, .text-stimulus table th p u i b{font-weight:900} .dropdown-text:not(:last-child), .dropdown:not(:last-child){margin-right:1rem} .dropdown-container{align-items:center;border-radius:.5rem;border-width:1px;display:flex;height:2.75rem;overflow:hidden;white-space:nowrap;width:15rem;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1))} .dropdown-container:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)} .dropdown-container:active, .dropdown-container:focus{border-width:2px;box-shadow:0 0 0 2px #fff,0 0 0 4px #212529,0 0 0 6px #fde047;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))}@media (hover:hover) and (pointer:fine){ .dropdown-container:hover{border-width:2px;--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1));outline-color:#212529;outline-width:2px}} .dropdown-menu{border-radius:.5rem;border-width:1px;margin-top:.5rem;max-height:400px;overflow-y:auto;position:absolute;z-index:10;--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))}@supports (overflow-wrap:anywhere){ .dropdown-menu{overflow-wrap:anywhere}}@supports not (overflow-wrap:anywhere){ .dropdown-menu{word-break:break-word}} .dropdown-menu{max-width:min(500px,100vw - 2rem);min-width:240px;width:-moz-max-content;width:max-content} .dropdown-item{cursor:pointer;font-size:1rem;line-height:1.5rem;outline:2px solid transparent;outline-offset:2px;padding:.5rem 1rem} .dropdown-itemtext{border-bottom-width:1px;border-color:transparent} .dropdown-itemtext.hover-option{--tw-border-opacity:1;border-color:rgb(0,0,0,var(--tw-border-opacity,1));--tw-text-opacity:1;color:rgb(46,47,212,var(--tw-text-opacity,1))} .dropdown-itemtext.current-option{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1));--tw-text-opacity:1;border-bottom-width:1px;color:rgb(0,0,0,var(--tw-text-opacity,1));outline:2px solid transparent;outline-offset:2px;--tw-border-opacity:1;border-color:rgb(0,0,0,var(--tw-border-opacity,1))} .dropdown-itemtext:active{border-bottom-width:2px} .image-description-accordion{border-bottom-width:1px;border-color:transparent;font-weight:600;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .group:focus .image-description-accordion{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1));--tw-text-opacity:1;border-bottom-width:1px;color:rgb(0,0,0,var(--tw-text-opacity,1));outline:2px solid transparent;outline-offset:2px} .group:focus .image-description-accordion, .group:hover .image-description-accordion{--tw-border-opacity:1;border-color:rgb(0,0,0,var(--tw-border-opacity,1))} .group:active .image-description-accordion{border-bottom-width:2px} .selectable-text-passage{line-height:44px;margin-bottom:-.375rem;margin-left:-.375rem;margin-top:-.75rem;overflow-x:auto;padding:.75rem 2rem .375rem .375rem;width:100%} .selectable-line-word{display:block;overflow:visible;white-space:nowrap} .selectable-segment{cursor:pointer;display:inline;font-size:1rem;font-weight:400;line-height:1.5rem;margin-right:.25rem;min-height:2.75rem;outline:2px solid transparent;outline-offset:2px;padding-bottom:.75rem;padding-top:.75rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;--tw-text-opacity:1;color:rgb(8,38,99,var(--tw-text-opacity,1))}@media (hover:hover) and (pointer:fine){ .selectable-segment:hover{--tw-text-opacity:1;color:rgb(51,69,223,var(--tw-text-opacity,1));text-decoration-color:#3345df;text-decoration-line:underline;text-decoration-thickness:2px;text-underline-offset:25%}} .selectable-segment:active{--tw-text-opacity:1;color:rgb(51,69,223,var(--tw-text-opacity,1));text-decoration-color:#3345df;text-decoration-line:underline;text-decoration-thickness:3px;text-underline-offset:25%} .segment-trailing-punct{cursor:pointer;text-decoration-line:none} .segment-punctuation, .segment-trailing-punct{-webkit-user-select:none;-moz-user-select:none;user-select:none} .segment-punctuation{cursor:default;display:inline;font-size:1rem;line-height:1.5rem;margin-right:.25rem;--tw-text-opacity:1;color:rgb(8,38,99,var(--tw-text-opacity,1))} .selectable-segment:focus-visible>.selectable-segment-text{--tw-bg-opacity:1;background-color:rgb(253,224,71,var(--tw-bg-opacity,1));text-decoration-color:#212529;text-decoration-line:underline;text-decoration-thickness:2px;text-underline-offset:25%} .selectable-segment:not(.selected):not(.correct):not(.incorrect):not(.missing):focus-visible{--tw-text-opacity:1;color:rgb(8,38,99,var(--tw-text-opacity,1));text-decoration-line:none} .selectable-segment.selected>.selectable-segment-text{border-radius:.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(107,114,128,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:5px .5rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1));text-decoration-line:none}@media (hover:hover) and (pointer:fine){ .selectable-segment.selected:active, .selectable-segment.selected:hover{text-decoration-line:none} .selectable-segment.selected:active>.selectable-segment-text, .selectable-segment.selected:hover>.selectable-segment-text{--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(239,241,255,var(--tw-bg-opacity,1));--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}} .selectable-segment.selected:active>.selectable-segment-text{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .selectable-segment.selected:focus-visible>.selectable-segment-text{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .selectable-segment.\\!preview, .selectable-segment.preview{cursor:default;pointer-events:none} .selectable-segment.correct, .selectable-segment.incorrect, .selectable-segment.missing{color:inherit} .selectable-segment.correct:active, .selectable-segment.incorrect:active, .selectable-segment.missing:active{text-decoration-line:none}@media (hover:hover) and (pointer:fine){ .selectable-segment.correct:hover, .selectable-segment.incorrect:hover, .selectable-segment.missing:hover{text-decoration-line:none}} .selectable-segment.\\!correct{color:inherit} .selectable-segment.\\!correct:active{text-decoration-line:none}@media (hover:hover) and (pointer:fine){ .selectable-segment.\\!correct:hover{text-decoration-line:none}} .selectable-segment.missing{position:relative} .selectable-segment.correct:focus-visible>.selectable-segment-text, .selectable-segment.incorrect:focus-visible>.selectable-segment-text, .selectable-segment.missing:focus-visible>.selectable-segment-text{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;background-color:inherit;outline:2px solid transparent;outline-offset:2px;text-decoration-line:none;transition-duration:50ms} .selectable-segment.\\!correct:focus-visible>.selectable-segment-text{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;background-color:inherit;outline:2px solid transparent;outline-offset:2px;text-decoration-line:none;transition-duration:50ms} .selectable-segment.\\!correct:active>.selectable-segment-text, .selectable-segment.correct:active>.selectable-segment-text, .selectable-segment.incorrect:active>.selectable-segment-text{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529;outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .selectable-segment.\\!correct>.selectable-segment-text, .selectable-segment.correct>.selectable-segment-text{background-color:rgb(240,253,244,var(--tw-bg-opacity,1));border-color:rgb(22,163,74,var(--tw-border-opacity,1));border-radius:.5rem;border-width:1px} .selectable-segment.\\!correct>.selectable-segment-text, .selectable-segment.correct>.selectable-segment-text, .selectable-segment.incorrect>.selectable-segment-text{--tw-border-opacity:1;--tw-bg-opacity:1;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.375rem .375rem .375rem .5rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1));text-decoration-line:none} .selectable-segment.incorrect>.selectable-segment-text{background-color:rgb(253,243,247,var(--tw-bg-opacity,1));border-color:rgb(190,24,93,var(--tw-border-opacity,1));border-radius:.5rem;border-width:1px} .selectable-segment.missing>.selectable-segment-text{border-radius:.5rem;border-style:dashed;border-width:2px;--tw-border-opacity:1;border-color:rgb(22,163,74,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(249,250,251,var(--tw-bg-opacity,1));-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.375rem .5rem;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1));text-decoration-line:none} .selectable-segment-missing-badge{align-items:center;display:inline-flex;font-size:.875rem;font-weight:600;left:.25rem;line-height:1.25rem;padding:.125rem .375rem;position:absolute;top:-.75rem;white-space:nowrap;z-index:10;--tw-text-opacity:1;border-radius:.25rem;border-width:1px;color:rgb(21,101,52,var(--tw-text-opacity,1));--tw-border-opacity:1;border-color:rgb(187,247,209,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(240,253,244,var(--tw-bg-opacity,1));line-height:130%} .selectable-segment.missing.interactive>.selectable-segment-missing-badge{opacity:0;transition-duration:.15s;transition-property:opacity,visibility;transition-timing-function:cubic-bezier(.4,0,.2,1);visibility:hidden} .selectable-segment.missing.interactive:focus-visible>.selectable-segment-missing-badge, .selectable-segment.missing.interactive:hover>.selectable-segment-missing-badge{opacity:1;visibility:visible}@media (hover:hover) and (pointer:fine){ .selectable-segment.missing:hover>.selectable-segment-text{--tw-border-opacity:1;border-color:rgb(51,69,223,var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(239,241,255,var(--tw-bg-opacity,1))}} .selectable-segment-status-icon{align-items:center;display:inline-flex;margin-left:.25rem;vertical-align:sub} .selectable-segment.selected .selectable-segment-deselect-icon{display:inline-flex;--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .selectable-segment.selected .selectable-segment-deselect-icon .deselect-icon{height:7.63px;width:7.63px} .selectable-segment.\\!correct .selectable-segment-status-icon, .selectable-segment.correct .selectable-segment-status-icon{--tw-text-opacity:1;color:rgb(22,163,74,var(--tw-text-opacity,1))} .selectable-segment.incorrect .selectable-segment-status-icon{--tw-text-opacity:1;color:rgb(219,39,119,var(--tw-text-opacity,1))} .sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap} .pointer-events-none{pointer-events:none} .pointer-events-auto{pointer-events:auto} .visible{visibility:visible} .invisible{visibility:hidden} .collapse{visibility:collapse} .static{position:static} .fixed{position:fixed} .absolute{position:absolute} .relative{position:relative} .inset-0{inset:0} .inset-y-0{bottom:0;top:0} .-top-2\\.5{top:-.625rem} .bottom-0{bottom:0} .bottom-1\\.5{bottom:.375rem} .bottom-4{bottom:1rem} .bottom-5{bottom:1.25rem} .bottom-\\[7px\\]{bottom:7px} .bottom-full{bottom:100%} .left-0{left:0} .left-1\\/2{left:50%} .left-4{left:1rem} .left-6{left:1.5rem} .left-\\[-9999px\\]{left:-9999px} .left-full{left:100%} .right-0{right:0} .right-1{right:.25rem} .right-1\\.5{right:.375rem} .right-2{right:.5rem} .right-4{right:1rem} .right-6{right:1.5rem} .right-full{right:100%} .top-0{top:0} .top-1{top:.25rem} .top-1\\.5{top:.375rem} .top-1\\/2{top:50%} .top-12{top:3rem} .top-2\\.5{top:.625rem} .top-3\\.5{top:.875rem} .top-\\[13px\\]{top:13px} .top-\\[calc\\(50\\%\\+0\\.375rem\\)\\]{top:calc(50% + .375rem)} .top-full{top:100%} .z-0{z-index:0} .z-10{z-index:10} .z-50{z-index:50} .m-0{margin:0} .m-auto{margin:auto} .mx-0\\.5{margin-left:.125rem;margin-right:.125rem} .mx-auto{margin-left:auto;margin-right:auto} .my-1\\.5{margin-bottom:.375rem;margin-top:.375rem} .my-2{margin-bottom:.5rem;margin-top:.5rem} .my-6{margin-bottom:1.5rem;margin-top:1.5rem} .-mb-1{margin-bottom:-.25rem} .-ml-1{margin-left:-.25rem} .-mr-1{margin-right:-.25rem} .-mr-2\\.5{margin-right:-.625rem} .-mt-0\\.5{margin-top:-.125rem} .-mt-1{margin-top:-.25rem} .mb-0\\.5{margin-bottom:.125rem} .mb-10{margin-bottom:2.5rem} .mb-12{margin-bottom:3rem} .mb-2{margin-bottom:.5rem} .mb-3{margin-bottom:.75rem} .mb-4{margin-bottom:1rem} .mb-5{margin-bottom:1.25rem} .mb-6{margin-bottom:1.5rem} .mb-\\[9\\.5px\\]{margin-bottom:9.5px} .ml-1{margin-left:.25rem} .ml-2{margin-left:.5rem} .ml-2\\.5{margin-left:.625rem} .ml-3{margin-left:.75rem} .ml-8\\.5{margin-left:2.125rem} .ml-\\[3px\\]{margin-left:3px} .ml-\\[9\\.5px\\]{margin-left:9.5px} .mr-1{margin-right:.25rem} .mr-2{margin-right:.5rem} .mr-4{margin-right:1rem} .mr-\\[9\\.5px\\]{margin-right:9.5px} .mt-1{margin-top:.25rem} .mt-2{margin-top:.5rem} .mt-4{margin-top:1rem} .mt-6{margin-top:1.5rem} .mt-7\\.5{margin-top:1.875} .mt-9{margin-top:2.25rem} .mt-\\[9\\.5px\\]{margin-top:9.5px} .line-clamp-1{-webkit-line-clamp:1} .line-clamp-1, .line-clamp-3{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical} .line-clamp-3{-webkit-line-clamp:3} .block{display:block} .inline-block{display:inline-block} .inline{display:inline} .flex{display:flex} .table{display:table} .grid{display:grid} .contents{display:contents} .hidden{display:none} .h-10\\.5{height:2.625rem} .h-11{height:2.75rem} .h-2{height:.5rem} .h-32{height:8rem} .h-4{height:1rem} .h-52{height:13rem} .h-6{height:1.5rem} .h-8{height:2rem} .h-8\\.5{height:2.125rem} .h-\\[13\\.33px\\]{height:13.33px} .h-\\[8\\.77px\\]{height:8.77px} .h-auto{height:auto} .h-fit{height:-moz-fit-content;height:fit-content} .h-full{height:100%} .h-screen{height:100vh} .max-h-\\[184px\\]{max-height:184px} .max-h-\\[470px\\]{max-height:470px} .max-h-\\[660px\\]{max-height:660px} .max-h-\\[calc\\(100vh-168px\\)\\]{max-height:calc(100vh - 168px)} .max-h-\\[calc\\(100vh-168px-34px\\)\\]{max-height:calc(100vh - 202px)} .max-h-none{max-height:none} .min-h-\\[133px\\]{min-height:133px} .min-h-\\[140px\\]{min-height:140px} .min-h-\\[154px\\]{min-height:154px} .min-h-\\[210px\\]{min-height:210px} .min-h-\\[44px\\]{min-height:44px} .min-h-\\[54px\\]{min-height:54px} .min-h-\\[86px\\]{min-height:86px} .w-11{width:2.75rem} .w-2{width:.5rem} .w-2\\/4{width:50%} .w-3{width:.75rem} .w-4{width:1rem} .w-6{width:1.5rem} .w-60{width:15rem} .w-8{width:2rem} .w-8\\.5{width:2.125rem} .w-\\[13\\.33px\\]{width:13.33px} .w-\\[8\\.77px\\]{width:8.77px} .w-auto{width:auto} .w-fit{width:-moz-fit-content;width:fit-content} .w-full{width:100%} .w-screen{width:100vw} .min-w-0{min-width:0} .min-w-\\[288px\\]{min-width:288px} .min-w-\\[44px\\]{min-width:44px} .min-w-\\[85px\\]{min-width:85px} .max-w-\\[1008px\\]{max-width:1008px} .max-w-\\[300px\\]{max-width:300px} .max-w-\\[304px\\]{max-width:304px} .max-w-\\[400px\\]{max-width:400px} .max-w-\\[544px\\]{max-width:544px} .max-w-\\[864px\\]{max-width:864px} .max-w-full{max-width:100%} .max-w-none{max-width:none} .flex-1{flex:1 1 0%} .flex-none{flex:none} .flex-shrink-0{flex-shrink:0} .grow{flex-grow:1} .basis-0{flex-basis:0px} .-translate-x-1\\/2{--tw-translate-x:-50%} .-translate-x-1\\/2, .-translate-y-1\\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))} .-translate-y-1\\/2{--tw-translate-y:-50%} .rotate-45{--tw-rotate:45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))} .\\!cursor-default{cursor:default!important} .\\!cursor-pointer{cursor:pointer!important} .cursor-default{cursor:default} .cursor-pointer{cursor:pointer} .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none} .resize-none{resize:none} .resize{resize:both} .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))} .flex-row{flex-direction:row} .flex-col{flex-direction:column} .flex-col-reverse{flex-direction:column-reverse} .flex-wrap{flex-wrap:wrap} .content-start{align-content:flex-start} .items-center{align-items:center} .justify-start{justify-content:flex-start} .justify-center{justify-content:center} .justify-between{justify-content:space-between} .gap-1{gap:.25rem} .gap-2{gap:.5rem} .space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))} .space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse:1} .overflow-hidden{overflow:hidden} .overflow-y-auto{overflow-y:auto} .overflow-x-hidden{overflow-x:hidden} .overflow-y-visible{overflow-y:visible} .truncate{overflow:hidden;white-space:nowrap} .text-ellipsis, .truncate{text-overflow:ellipsis} .whitespace-normal{white-space:normal} .whitespace-nowrap{white-space:nowrap} .break-words{overflow-wrap:break-word} .break-all{word-break:break-all} .rounded{border-radius:.25rem} .rounded-\\[32px\\]{border-radius:32px} .rounded-lg{border-radius:.5rem} .rounded-md{border-radius:.375rem} .rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem} .rounded-b-md{border-bottom-left-radius:.375rem;border-bottom-right-radius:.375rem} .rounded-l-lg{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem} .rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem} .rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem} .border{border-width:1px} .border-2{border-width:2px} .border-b{border-bottom-width:1px} .border-l-4{border-left-width:4px} .border-l-6{border-left-width:6px} .border-dashed{border-style:dashed} .\\!border-blue-1000{--tw-border-opacity:1!important;border-color:rgb(40,44,135,var(--tw-border-opacity,1))!important} .border-blue-1000{--tw-border-opacity:1;border-color:rgb(40,44,135,var(--tw-border-opacity,1))} .border-blue-950{--tw-border-opacity:1;border-color:rgb(29,78,216,var(--tw-border-opacity,1))} .border-border-minimal{--tw-border-opacity:1;border-color:rgb(229,231,235,var(--tw-border-opacity,1))} .border-charcoal{--tw-border-opacity:1;border-color:rgb(33,37,41,var(--tw-border-opacity,1))} .border-gray-400{--tw-border-opacity:1;border-color:rgb(196,201,204,var(--tw-border-opacity,1))} .border-gray-800{--tw-border-opacity:1;border-color:rgb(93,99,107,var(--tw-border-opacity,1))} .border-gray-850{--tw-border-opacity:1;border-color:rgb(75,85,99,var(--tw-border-opacity,1))} .border-green-700{--tw-border-opacity:1;border-color:rgb(22,163,74,var(--tw-border-opacity,1))} .border-green-800{--tw-border-opacity:1;border-color:rgb(0,102,5,var(--tw-border-opacity,1))} .border-green-900{--tw-border-opacity:1;border-color:rgb(21,128,61,var(--tw-border-opacity,1))} .border-red-600{--tw-border-opacity:1;border-color:rgb(220,38,38,var(--tw-border-opacity,1))} .border-red-800{--tw-border-opacity:1;border-color:rgb(217,12,85,var(--tw-border-opacity,1))} .border-red-850{--tw-border-opacity:1;border-color:rgb(219,39,119,var(--tw-border-opacity,1))} .border-red-900{--tw-border-opacity:1;border-color:rgb(190,24,93,var(--tw-border-opacity,1))} .border-soft-blue{--tw-border-opacity:1;border-color:rgb(84,101,251,var(--tw-border-opacity,1))} .border-white{--tw-border-opacity:1;border-color:rgb(255,255,255,var(--tw-border-opacity,1))} .\\!bg-violet-100{--tw-bg-opacity:1!important;background-color:rgb(235,235,255,var(--tw-bg-opacity,1))!important} .\\!bg-white{--tw-bg-opacity:1!important;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))!important} .bg-black{--tw-bg-opacity:1;background-color:rgb(0,0,0,var(--tw-bg-opacity,1))} .bg-blue-1000{--tw-bg-opacity:1;background-color:rgb(40,44,135,var(--tw-bg-opacity,1))} .bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239,246,255,var(--tw-bg-opacity,1))} .bg-charcoal\\/30{background-color:rgba(33,37,41,.3)} .bg-charcoal\\/80{background-color:rgba(33,37,41,.8)} .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(247,250,250,var(--tw-bg-opacity,1))} .bg-gray-50{--tw-bg-opacity:1;background-color:rgb(244,244,244,var(--tw-bg-opacity,1))} .bg-gray-900{--tw-bg-opacity:1;background-color:rgb(57,62,69,var(--tw-bg-opacity,1))} .bg-green-300{--tw-bg-opacity:1;background-color:rgb(241,254,241,var(--tw-bg-opacity,1))} .bg-green-400{--tw-bg-opacity:1;background-color:rgb(240,253,244,var(--tw-bg-opacity,1))} .bg-red-200{--tw-bg-opacity:1;background-color:rgb(254,202,202,var(--tw-bg-opacity,1))} .bg-red-300{--tw-bg-opacity:1;background-color:rgb(253,243,247,var(--tw-bg-opacity,1))} .bg-red-50{--tw-bg-opacity:1;background-color:rgb(253,242,248,var(--tw-bg-opacity,1))} .bg-soft-blue{--tw-bg-opacity:1;background-color:rgb(84,101,251,var(--tw-bg-opacity,1))} .bg-transparent{background-color:transparent} .bg-violet-100{--tw-bg-opacity:1;background-color:rgb(235,235,255,var(--tw-bg-opacity,1))} .bg-violet-150{--tw-bg-opacity:1;background-color:rgb(205,208,254,var(--tw-bg-opacity,1))} .bg-white{--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .bg-white\\/80{background-color:hsla(0,0%,100%,.8)} .bg-yellow-1000{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1))} .bg-opacity-5{--tw-bg-opacity:0.05} .object-contain{-o-object-fit:contain;object-fit:contain} .p-0\\.5{padding:.125rem} .p-1{padding:.25rem} .p-1\\.5{padding:.375rem} .p-2{padding:.5rem} .p-3{padding:.75rem} .p-4{padding:1rem} .p-5{padding:1.25rem} .p-6{padding:1.5rem} .px-0{padding-left:0;padding-right:0} .px-2{padding-left:.5rem;padding-right:.5rem} .px-3{padding-left:.75rem;padding-right:.75rem} .px-4{padding-left:1rem;padding-right:1rem} .py-1{padding-bottom:.25rem;padding-top:.25rem} .py-1\\.5{padding-bottom:.375rem;padding-top:.375rem} .py-2{padding-bottom:.5rem;padding-top:.5rem} .py-\\[9px\\]{padding-bottom:9px;padding-top:9px} .\\!pr-11{padding-right:2.75rem!important} .pb-0{padding-bottom:0} .pb-10{padding-bottom:2.5rem} .pb-2{padding-bottom:.5rem} .pb-3{padding-bottom:.75rem} .pb-\\[72px\\]{padding-bottom:72px} .pl-13\\.2{padding-left:3.125rem} .pl-24{padding-left:6rem} .pl-3{padding-left:.75rem} .pl-4{padding-left:1rem} .pr-10{padding-right:2.5rem} .pr-3{padding-right:.75rem} .pr-4{padding-right:1rem} .pt-0{padding-top:0} .pt-0\\.5{padding-top:.125rem} .pt-14{padding-top:3.5rem} .pt-4{padding-top:1rem} .pt-6{padding-top:1.5rem} .pt-\\[15px\\]{padding-top:15px} .pt-\\[55px\\]{padding-top:55px} .text-left{text-align:left} .text-center{text-align:center} .align-middle{vertical-align:middle} .text-base{font-size:1rem;line-height:1.5rem} .text-lg{font-size:1.125rem;line-height:1.75rem} .text-sm{font-size:.875rem;line-height:1.25rem} .text-xl{font-size:1.25rem;line-height:1.75rem} .font-bold{font-weight:700} .font-normal{font-weight:400} .font-semibold{font-weight:600} .leading-12{line-height:3rem} .leading-4{line-height:1rem} .leading-5{line-height:1.25rem} .leading-6{line-height:1.5rem} .leading-\\[1\\.5\\]{line-height:1.5} .leading-\\[150\\%\\]{line-height:150%} .leading-\\[19\\.2px\\]{line-height:19.2px} .leading-\\[19px\\]{line-height:19px} .leading-\\[22px\\]{line-height:22px} .\\!text-gray-900{--tw-text-opacity:1!important;color:rgb(57,62,69,var(--tw-text-opacity,1))!important} .text-blue-1000{--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))} .text-blue-500{--tw-text-opacity:1;color:rgb(37,99,235,var(--tw-text-opacity,1))} .text-blue-850{--tw-text-opacity:1;color:rgb(46,47,212,var(--tw-text-opacity,1))} .text-charcoal{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .text-gray-500{--tw-text-opacity:1;color:rgb(107,114,128,var(--tw-text-opacity,1))} .text-gray-800{--tw-text-opacity:1;color:rgb(93,99,107,var(--tw-text-opacity,1))} .text-gray-860{--tw-text-opacity:1;color:rgb(55,65,81,var(--tw-text-opacity,1))} .text-green-700{--tw-text-opacity:1;color:rgb(22,163,74,var(--tw-text-opacity,1))} .text-green-800{--tw-text-opacity:1;color:rgb(0,102,5,var(--tw-text-opacity,1))} .text-green-900{--tw-text-opacity:1;color:rgb(21,128,61,var(--tw-text-opacity,1))} .text-inherit{color:inherit} .text-primary-emphasis{--tw-text-opacity:1;color:rgb(8,38,99,var(--tw-text-opacity,1))} .text-red-400{--tw-text-opacity:1;color:rgb(157,23,77,var(--tw-text-opacity,1))} .text-red-800{--tw-text-opacity:1;color:rgb(217,12,85,var(--tw-text-opacity,1))} .text-red-850{--tw-text-opacity:1;color:rgb(219,39,119,var(--tw-text-opacity,1))} .text-red-900{--tw-text-opacity:1;color:rgb(190,24,93,var(--tw-text-opacity,1))} .text-white{--tw-text-opacity:1;color:rgb(255,255,255,var(--tw-text-opacity,1))} .underline{text-decoration-line:underline} .opacity-0{opacity:0} .opacity-5{opacity:.05} .opacity-50{opacity:.5} .shadow-\\[0_-12px_14px_-16px_\\#00000033\\]{--tw-shadow:0 -12px 14px -16px #00000033;--tw-shadow-colored:0 -12px 14px -16px var(--tw-shadow-color)} .shadow-\\[0_-12px_14px_-16px_\\#00000033\\], .shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .shadow-md{--tw-shadow:0px 2px 8px rgba(0,0,0,.2);--tw-shadow-colored:0px 2px 8px var(--tw-shadow-color)} .\\!outline-none{outline:2px solid transparent!important;outline-offset:2px!important} .outline-none{outline:2px solid transparent;outline-offset:2px} .blur{--tw-blur:blur(8px)} .blur, .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)} .backdrop-blur-md{--tw-backdrop-blur:blur(12px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)} .transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)} .duration-300{transition-duration:.3s} :host, html{-webkit-tap-highlight-color:inherit!important} .active\\:raw-focus-ring-by:active{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;--tw-ring-offset-color:#212529} .active\\:raw-focus-ring-by:active, .active\\:raw-focus-ring:active{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);outline:2px solid transparent;outline-offset:2px;transition-duration:50ms} .active\\:raw-focus-ring:active{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}@media (min-width:732px){ .md\\:item-heading{font-size:1.25rem;letter-spacing:-.025em;line-height:1.5rem;--tw-text-opacity:1;color:rgb(40,44,135,var(--tw-text-opacity,1))}}@media (hover:hover) and (pointer:fine){ .td\\:hover-focus-ring:hover{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px;transition-duration:50ms}} .last\\:mr-0:last-child{margin-right:0} .focus-within\\:left-0:focus-within{left:0} .focus-within\\:right-0:focus-within{right:0} .focus-within\\:top-0:focus-within{top:0} .focus-within\\:z-30:focus-within{z-index:30} .hover\\:bg-black-50:hover{background-color:rgba(0,0,0,.051)} .hover\\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(222,222,255,var(--tw-bg-opacity,1))} .hover\\:bg-yellow-1000:hover{--tw-bg-opacity:1;background-color:rgb(251,217,27,var(--tw-bg-opacity,1))} .hover\\:text-charcoal:hover{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .hover\\:underline:hover{text-decoration-line:underline} .hover\\:decoration-2:hover{text-decoration-thickness:2px} .hover\\:underline-offset-\\[25\\%\\]:hover{text-underline-offset:25%} .focus-visible\\:border:focus-visible{border-width:1px} .focus-visible\\:border-charcoal:focus-visible{--tw-border-opacity:1;border-color:rgb(33,37,41,var(--tw-border-opacity,1))} .focus-visible\\:border-gray-400:focus-visible{--tw-border-opacity:1;border-color:rgb(196,201,204,var(--tw-border-opacity,1))} .focus-visible\\:border-gray-800:focus-visible{--tw-border-opacity:1;border-color:rgb(93,99,107,var(--tw-border-opacity,1))} .focus-visible\\:bg-yellow-900:focus-visible{--tw-bg-opacity:1;background-color:rgb(253,224,71,var(--tw-bg-opacity,1))} .focus-visible\\:text-charcoal:focus-visible{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .focus-visible\\:underline:focus-visible{text-decoration-line:underline} .focus-visible\\:decoration-2:focus-visible{text-decoration-thickness:2px} .focus-visible\\:underline-offset-\\[25\\%\\]:focus-visible{text-underline-offset:25%} .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px} .focus-visible\\:ring-4:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)} .focus-visible\\:ring-soft-blue:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity,1))} .focus-visible\\:ring-offset-4:focus-visible{--tw-ring-offset-width:4px} .focus-visible\\:duration-50:focus-visible{transition-duration:50ms} .active\\:bg-black-55:active, .active\\:bg-black-60:active{background-color:rgba(0,0,0,.102)} .active\\:bg-yellow-1100:active{--tw-bg-opacity:1;background-color:rgb(238,206,26,var(--tw-bg-opacity,1))} .active\\:text-charcoal:active{--tw-text-opacity:1;color:rgb(33,37,41,var(--tw-text-opacity,1))} .disabled\\:text-gray-40:disabled{--tw-text-opacity:1;color:rgb(142,147,153,var(--tw-text-opacity,1))} .disabled\\:hover\\:bg-white:hover:disabled{--tw-bg-opacity:1;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))} .group:hover .group-hover\\:underline{text-decoration-line:underline} .group.active .group-\\[\\.active\\]\\:border-b-2{border-bottom-width:2px}@media (min-width:732px){ .md\\:inset-0{inset:0} .md\\:top-20{top:5rem} .md\\:mb-2{margin-bottom:.5rem} .md\\:mb-4{margin-bottom:1rem} .md\\:mb-8{margin-bottom:2rem} .md\\:ml-0{margin-left:0} .md\\:mt-0{margin-top:0} .md\\:mt-14{margin-top:3.5rem} .md\\:block{display:block} .md\\:inline-block{display:inline-block} .md\\:flex{display:flex} .md\\:grid{display:grid} .md\\:hidden{display:none} .md\\:h-11{height:2.75rem} .md\\:h-5{height:1.25rem} .md\\:h-\\[13\\.5px\\]{height:13.5px} .md\\:h-fit{height:-moz-fit-content;height:fit-content} .md\\:max-h-\\[calc\\(100vh-128px\\)\\]{max-height:calc(100vh - 128px)} .md\\:max-h-\\[calc\\(100vh-128px-54px\\)\\]{max-height:calc(100vh - 182px)} .md\\:min-h-0{min-height:0} .md\\:min-h-\\[140px\\]{min-height:140px} .md\\:min-h-\\[164px\\]{min-height:164px} .md\\:w-1\\/2{width:50%} .md\\:w-11{width:2.75rem} .md\\:w-5{width:1.25rem} .md\\:w-\\[13\\.5px\\]{width:13.5px} .md\\:w-fit{width:-moz-fit-content;width:fit-content} .md\\:max-w-\\[calc\\(100vw-164px\\)\\]{max-width:calc(100vw - 164px)} .md\\:flex-none{flex:none} .md\\:grow-0{flex-grow:0} .md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))} .md\\:flex-row{flex-direction:row} .md\\:flex-col{flex-direction:column} .md\\:items-start{align-items:flex-start} .md\\:items-center{align-items:center} .md\\:justify-normal{justify-content:normal} .md\\:justify-center{justify-content:center} .md\\:justify-between{justify-content:space-between} .md\\:gap-4{gap:1rem} .md\\:gap-6{gap:1.5rem} .md\\:gap-x-4{-moz-column-gap:1rem;column-gap:1rem} .md\\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))} .md\\:rounded-lg{border-radius:.5rem} .md\\:rounded-md{border-radius:.375rem} .md\\:rounded-b-none{border-bottom-left-radius:0;border-bottom-right-radius:0} .md\\:border{border-width:1px} .md\\:border-gray-400{--tw-border-opacity:1;border-color:rgb(196,201,204,var(--tw-border-opacity,1))} .md\\:\\!bg-white{--tw-bg-opacity:1!important;background-color:rgb(255,255,255,var(--tw-bg-opacity,1))!important} .md\\:p-4{padding:1rem} .md\\:px-0{padding-left:0;padding-right:0} .md\\:px-4{padding-left:1rem;padding-right:1rem} .md\\:px-6{padding-left:1.5rem;padding-right:1.5rem} .md\\:px-\\[82px\\]{padding-left:82px;padding-right:82px} .md\\:pb-0{padding-bottom:0} .md\\:pl-13\\.2{padding-left:3.125rem} .md\\:pl-4{padding-left:1rem} .md\\:pr-4{padding-right:1rem} .md\\:pt-20\\.5{padding-top:5.125rem} .md\\:text-center{text-align:center} .md\\:text-lg{font-size:1.125rem;line-height:1.75rem} .md\\:shadow-\\[0_0_\\#0000\\]{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)} .md\\:\\[grid-template-columns\\:repeat\\(2\\,minmax\\(auto\\,304px\\)\\)\\]{grid-template-columns:repeat(2,minmax(auto,304px))}}@media (min-width:1196px){ .lg\\:left-16{left:4rem} .lg\\:right-16{right:4rem} .lg\\:flex{display:flex} .lg\\:hidden{display:none} .lg\\:max-h-\\[calc\\(100vh-192px\\)\\]{max-height:calc(100vh - 192px)} .lg\\:max-h-\\[calc\\(100vh-192px-54px\\)\\]{max-height:calc(100vh - 246px)} .lg\\:min-h-\\[224px\\]{min-height:224px} .lg\\:w-full{width:100%} .lg\\:max-w-\\[50\\%\\]{max-width:50%} .lg\\:max-w-\\[calc\\(100vw-248px\\)\\]{max-width:calc(100vw - 248px)} .lg\\:grow{flex-grow:1} .lg\\:basis-1\\/2{flex-basis:50%} .lg\\:justify-start{justify-content:flex-start} .lg\\:rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem} .lg\\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem} .lg\\:px-16{padding-left:4rem;padding-right:4rem} .lg\\:px-\\[128px\\]{padding-left:128px;padding-right:128px} .lg\\:py-24{padding-bottom:6rem;padding-top:6rem} .lg\\:pt-6{padding-top:1.5rem}}@media (hover:hover) and (pointer:fine){ .td\\:border-2{border-width:2px} .td\\:border-blue-900{--tw-border-opacity:1;border-color:rgb(59,64,240,var(--tw-border-opacity,1))} .td\\:hover\\:cursor-grab:hover{cursor:grab} .td\\:hover\\:bg-black-50:hover{background-color:rgba(0,0,0,.051)} .td\\:hover\\:bg-violet-100:hover{--tw-bg-opacity:1;background-color:rgb(235,235,255,var(--tw-bg-opacity,1))} .td\\:hover\\:text-soft-blue:hover{--tw-text-opacity:1;color:rgb(84,101,251,var(--tw-text-opacity,1))} .group:hover .td\\:group-hover\\:bg-black{--tw-bg-opacity:1;background-color:rgb(0,0,0,var(--tw-bg-opacity,1))} .group:hover .td\\:group-hover\\:opacity-5{opacity:.05}}@media (pointer:coarse){ .coarse\\:active\\:bg-yellow-900:active{--tw-bg-opacity:1;background-color:rgb(253,224,71,var(--tw-bg-opacity,1))}}'
|
|
19085
19825
|
};
|
|
19086
19826
|
function InteractionBuilder($$anchor, $$props) {
|
|
19087
19827
|
push($$props, true);
|
|
@@ -19115,18 +19855,17 @@ function InteractionBuilder($$anchor, $$props) {
|
|
|
19115
19855
|
try {
|
|
19116
19856
|
set(data, await loadData(sessionId(), itemId(), get$1(mode)), true);
|
|
19117
19857
|
if (!isMounted) return;
|
|
19118
|
-
const
|
|
19119
|
-
const interactionType =
|
|
19858
|
+
const apiType = get$1(data).interaction.type;
|
|
19859
|
+
const interactionType = mapAPIToInteractionType(apiType);
|
|
19120
19860
|
if (!interactionType) {
|
|
19121
|
-
throw new Error(`Unable to determine interaction type.
|
|
19861
|
+
throw new Error(`Unable to determine interaction type. API type: ${apiType}`);
|
|
19122
19862
|
}
|
|
19123
|
-
|
|
19124
|
-
set(config, createConfigFromLoadedData(get$1(data), pluginType), true);
|
|
19863
|
+
set(config, createConfigFromLoadedData(get$1(data), interactionType), true);
|
|
19125
19864
|
if (!get$1(config)) {
|
|
19126
19865
|
throw new Error(`Failed to create config for type: ${interactionType}`);
|
|
19127
19866
|
}
|
|
19128
|
-
set(interactionAPI, createInteraction(
|
|
19129
|
-
set(InteractionComponent, getComponent(
|
|
19867
|
+
set(interactionAPI, createInteraction(interactionType, get$1(config), get$1(data)), true);
|
|
19868
|
+
set(InteractionComponent, getComponent(interactionType) ?? null, true);
|
|
19130
19869
|
if (!get$1(InteractionComponent)) {
|
|
19131
19870
|
throw new Error(`No component registered for type: ${interactionType}`);
|
|
19132
19871
|
}
|
|
@@ -19142,8 +19881,8 @@ function InteractionBuilder($$anchor, $$props) {
|
|
|
19142
19881
|
isMounted = false;
|
|
19143
19882
|
};
|
|
19144
19883
|
});
|
|
19145
|
-
const createConfigFromLoadedData = (data2,
|
|
19146
|
-
switch (
|
|
19884
|
+
const createConfigFromLoadedData = (data2, interactionType) => {
|
|
19885
|
+
switch (interactionType) {
|
|
19147
19886
|
case "mcq":
|
|
19148
19887
|
return createMCQConfig(data2);
|
|
19149
19888
|
case "typein":
|
|
@@ -19152,6 +19891,8 @@ function InteractionBuilder($$anchor, $$props) {
|
|
|
19152
19891
|
return createCategoriseConfig(data2);
|
|
19153
19892
|
case "dropdown":
|
|
19154
19893
|
return createDropdownConfig(data2);
|
|
19894
|
+
case "selectableText":
|
|
19895
|
+
return createSelectableTextConfig(data2);
|
|
19155
19896
|
default:
|
|
19156
19897
|
return null;
|
|
19157
19898
|
}
|