eat-js-sdk 0.0.19 → 0.0.21

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.
@@ -1248,42 +1248,112 @@
1248
1248
  function create_if_block2(ctx) {
1249
1249
  let div0;
1250
1250
  let t0;
1251
- let div0_class_value;
1251
+ let span;
1252
1252
  let t1;
1253
+ let div0_class_value;
1254
+ let t2;
1253
1255
  let div1;
1256
+ let if_block = (
1257
+ /*resultFeedbackTitle*/
1258
+ ctx[1] && create_if_block_12(ctx)
1259
+ );
1254
1260
  return {
1255
1261
  c() {
1256
1262
  div0 = element("div");
1257
- t0 = text(
1258
- /*feedback*/
1259
- ctx[2]
1263
+ if (if_block)
1264
+ if_block.c();
1265
+ t0 = space();
1266
+ span = element("span");
1267
+ t1 = text(
1268
+ /*resultFeedback*/
1269
+ ctx[0]
1260
1270
  );
1261
- t1 = space();
1271
+ t2 = space();
1262
1272
  div1 = element("div");
1263
1273
  attr(div0, "aria-description", "Answer feedback:");
1264
1274
  attr(div0, "class", div0_class_value = "my-6 p-4 border-l-[6px] text-charcoal text-base " + /*isResultCorrect*/
1265
- (ctx[1] ? "border-green-800 bg-green-300" : "border-red-800 bg-red-300"));
1275
+ (ctx[2] ? "border-green-800 bg-green-300" : "border-red-800 bg-red-300"));
1266
1276
  attr(div1, "class", "divider my-6");
1267
1277
  },
1268
1278
  m(target, anchor) {
1269
1279
  insert(target, div0, anchor);
1280
+ if (if_block)
1281
+ if_block.m(div0, null);
1270
1282
  append(div0, t0);
1271
- insert(target, t1, anchor);
1283
+ append(div0, span);
1284
+ append(span, t1);
1285
+ insert(target, t2, anchor);
1272
1286
  insert(target, div1, anchor);
1273
1287
  },
1274
1288
  p(ctx2, dirty) {
1289
+ if (
1290
+ /*resultFeedbackTitle*/
1291
+ ctx2[1]
1292
+ ) {
1293
+ if (if_block) {
1294
+ if_block.p(ctx2, dirty);
1295
+ } else {
1296
+ if_block = create_if_block_12(ctx2);
1297
+ if_block.c();
1298
+ if_block.m(div0, t0);
1299
+ }
1300
+ } else if (if_block) {
1301
+ if_block.d(1);
1302
+ if_block = null;
1303
+ }
1304
+ if (dirty & /*resultFeedback*/
1305
+ 1)
1306
+ set_data(
1307
+ t1,
1308
+ /*resultFeedback*/
1309
+ ctx2[0]
1310
+ );
1275
1311
  if (dirty & /*isResultCorrect*/
1276
- 2 && div0_class_value !== (div0_class_value = "my-6 p-4 border-l-[6px] text-charcoal text-base " + /*isResultCorrect*/
1277
- (ctx2[1] ? "border-green-800 bg-green-300" : "border-red-800 bg-red-300"))) {
1312
+ 4 && div0_class_value !== (div0_class_value = "my-6 p-4 border-l-[6px] text-charcoal text-base " + /*isResultCorrect*/
1313
+ (ctx2[2] ? "border-green-800 bg-green-300" : "border-red-800 bg-red-300"))) {
1278
1314
  attr(div0, "class", div0_class_value);
1279
1315
  }
1280
1316
  },
1281
1317
  d(detaching) {
1282
1318
  if (detaching) {
1283
1319
  detach(div0);
1284
- detach(t1);
1320
+ detach(t2);
1285
1321
  detach(div1);
1286
1322
  }
1323
+ if (if_block)
1324
+ if_block.d();
1325
+ }
1326
+ };
1327
+ }
1328
+ function create_if_block_12(ctx) {
1329
+ let span;
1330
+ let t2;
1331
+ return {
1332
+ c() {
1333
+ span = element("span");
1334
+ t2 = text(
1335
+ /*resultFeedbackTitle*/
1336
+ ctx[1]
1337
+ );
1338
+ attr(span, "class", "block mb-1 font-semibold");
1339
+ },
1340
+ m(target, anchor) {
1341
+ insert(target, span, anchor);
1342
+ append(span, t2);
1343
+ },
1344
+ p(ctx2, dirty) {
1345
+ if (dirty & /*resultFeedbackTitle*/
1346
+ 2)
1347
+ set_data(
1348
+ t2,
1349
+ /*resultFeedbackTitle*/
1350
+ ctx2[1]
1351
+ );
1352
+ },
1353
+ d(detaching) {
1354
+ if (detaching) {
1355
+ detach(span);
1356
+ }
1287
1357
  }
1288
1358
  };
1289
1359
  }
@@ -1336,24 +1406,23 @@
1336
1406
  let { resultFeedback = null } = $$props;
1337
1407
  let { resultFeedbackTitle = null } = $$props;
1338
1408
  let { isResultCorrect = true } = $$props;
1339
- const feedback = `${resultFeedbackTitle} ${resultFeedback}`;
1340
1409
  $$self.$$set = ($$props2) => {
1341
1410
  if ("resultFeedback" in $$props2)
1342
1411
  $$invalidate(0, resultFeedback = $$props2.resultFeedback);
1343
1412
  if ("resultFeedbackTitle" in $$props2)
1344
- $$invalidate(3, resultFeedbackTitle = $$props2.resultFeedbackTitle);
1413
+ $$invalidate(1, resultFeedbackTitle = $$props2.resultFeedbackTitle);
1345
1414
  if ("isResultCorrect" in $$props2)
1346
- $$invalidate(1, isResultCorrect = $$props2.isResultCorrect);
1415
+ $$invalidate(2, isResultCorrect = $$props2.isResultCorrect);
1347
1416
  };
1348
- return [resultFeedback, isResultCorrect, feedback, resultFeedbackTitle];
1417
+ return [resultFeedback, resultFeedbackTitle, isResultCorrect];
1349
1418
  }
1350
1419
  var PromptResultFeedback = class extends SvelteComponent {
1351
1420
  constructor(options) {
1352
1421
  super();
1353
1422
  init(this, options, instance2, create_fragment2, safe_not_equal, {
1354
1423
  resultFeedback: 0,
1355
- resultFeedbackTitle: 3,
1356
- isResultCorrect: 1
1424
+ resultFeedbackTitle: 1,
1425
+ isResultCorrect: 2
1357
1426
  });
1358
1427
  }
1359
1428
  get resultFeedback() {
@@ -1364,14 +1433,14 @@
1364
1433
  flush();
1365
1434
  }
1366
1435
  get resultFeedbackTitle() {
1367
- return this.$$.ctx[3];
1436
+ return this.$$.ctx[1];
1368
1437
  }
1369
1438
  set resultFeedbackTitle(resultFeedbackTitle) {
1370
1439
  this.$$set({ resultFeedbackTitle });
1371
1440
  flush();
1372
1441
  }
1373
1442
  get isResultCorrect() {
1374
- return this.$$.ctx[1];
1443
+ return this.$$.ctx[2];
1375
1444
  }
1376
1445
  set isResultCorrect(isResultCorrect) {
1377
1446
  this.$$set({ isResultCorrect });
@@ -1509,7 +1578,7 @@
1509
1578
  child_ctx[19] = i;
1510
1579
  return child_ctx;
1511
1580
  }
1512
- function create_if_block_12(ctx) {
1581
+ function create_if_block_13(ctx) {
1513
1582
  let div1;
1514
1583
  let div0;
1515
1584
  let div0_class_value;
@@ -1953,7 +2022,7 @@
1953
2022
  let current;
1954
2023
  let if_block = (
1955
2024
  /*options*/
1956
- ctx[8] && create_if_block_12(ctx)
2025
+ ctx[8] && create_if_block_13(ctx)
1957
2026
  );
1958
2027
  return {
1959
2028
  c() {
@@ -2362,38 +2431,38 @@
2362
2431
  textarea,
2363
2432
  "input",
2364
2433
  /*textarea_input_handler*/
2365
- ctx[15]
2434
+ ctx[18]
2366
2435
  ),
2367
2436
  listen(
2368
2437
  textarea,
2369
2438
  "mousedown",
2370
2439
  /*mousedown_handler*/
2371
- ctx[16]
2440
+ ctx[19]
2372
2441
  ),
2373
2442
  listen(
2374
2443
  textarea,
2375
2444
  "touchstart",
2376
2445
  /*touchstart_handler*/
2377
- ctx[17],
2446
+ ctx[20],
2378
2447
  { passive: true }
2379
2448
  ),
2380
2449
  listen(
2381
2450
  textarea,
2382
2451
  "focus",
2383
2452
  /*focus_handler*/
2384
- ctx[18]
2453
+ ctx[21]
2385
2454
  ),
2386
2455
  listen(
2387
2456
  textarea,
2388
2457
  "focusout",
2389
2458
  /*focusout_handler_1*/
2390
- ctx[19]
2459
+ ctx[22]
2391
2460
  ),
2392
2461
  listen(
2393
2462
  textarea,
2394
2463
  "keydown",
2395
2464
  /*keydown_handler_1*/
2396
- ctx[20]
2465
+ ctx[23]
2397
2466
  ),
2398
2467
  action_destroyer(autosize_action = svelte_autosize_default.call(null, textarea))
2399
2468
  ];
@@ -2473,19 +2542,19 @@
2473
2542
  input,
2474
2543
  "input",
2475
2544
  /*input_input_handler*/
2476
- ctx[12]
2545
+ ctx[15]
2477
2546
  ),
2478
2547
  listen(
2479
2548
  input,
2480
2549
  "focusout",
2481
2550
  /*focusout_handler*/
2482
- ctx[13]
2551
+ ctx[16]
2483
2552
  ),
2484
2553
  listen(
2485
2554
  input,
2486
2555
  "keydown",
2487
2556
  /*keydown_handler*/
2488
- ctx[14]
2557
+ ctx[17]
2489
2558
  )
2490
2559
  ];
2491
2560
  mounted = true;
@@ -2534,7 +2603,7 @@
2534
2603
  function select_block_type(ctx2, dirty) {
2535
2604
  if (
2536
2605
  /*typeinType*/
2537
- ctx2[6] === TYPEIN_TYPE_SHORT
2606
+ ctx2[8] === TYPEIN_TYPE_SHORT
2538
2607
  )
2539
2608
  return create_if_block_22;
2540
2609
  return create_else_block_1;
@@ -2578,7 +2647,7 @@
2578
2647
  let t2;
2579
2648
  let promptresult;
2580
2649
  let current;
2581
- const if_block_creators = [create_if_block_13, create_else_block2];
2650
+ const if_block_creators = [create_if_block_14, create_else_block2];
2582
2651
  const if_blocks = [];
2583
2652
  function select_block_type_1(ctx2, dirty) {
2584
2653
  if (
@@ -2597,10 +2666,13 @@
2597
2666
  ctx[2]
2598
2667
  ),
2599
2668
  resultFeedbackTitle: (
2600
- /*isResultCorrect*/
2601
- ctx[2] ? "Well done!" : "Not quite, but you\u2019re close!"
2669
+ /*resultFeedbackTitle*/
2670
+ ctx[4]
2602
2671
  ),
2603
- resultFeedback: null
2672
+ resultFeedback: (
2673
+ /*resultFeedback*/
2674
+ ctx[5]
2675
+ )
2604
2676
  }
2605
2677
  });
2606
2678
  return {
@@ -2617,7 +2689,7 @@
2617
2689
  (ctx[2] ? "text-green-800" : "text-red-800") + " mr-2 p-0.5");
2618
2690
  attr(span1, "class", "p2");
2619
2691
  attr(div, "class", div_class_value = "flex items-center text-charcoal " + /*typeinType*/
2620
- (ctx[6] === TYPEIN_TYPE_SHORT ? "mt-2" : "mt-0.5"));
2692
+ (ctx[8] === TYPEIN_TYPE_SHORT ? "mt-2" : "mt-0.5"));
2621
2693
  },
2622
2694
  m(target, anchor) {
2623
2695
  insert(target, div, anchor);
@@ -2662,10 +2734,14 @@
2662
2734
  4)
2663
2735
  promptresult_changes.isResultCorrect = /*isResultCorrect*/
2664
2736
  ctx2[2];
2665
- if (dirty & /*isResultCorrect*/
2666
- 4)
2667
- promptresult_changes.resultFeedbackTitle = /*isResultCorrect*/
2668
- ctx2[2] ? "Well done!" : "Not quite, but you\u2019re close!";
2737
+ if (dirty & /*resultFeedbackTitle*/
2738
+ 16)
2739
+ promptresult_changes.resultFeedbackTitle = /*resultFeedbackTitle*/
2740
+ ctx2[4];
2741
+ if (dirty & /*resultFeedback*/
2742
+ 32)
2743
+ promptresult_changes.resultFeedback = /*resultFeedback*/
2744
+ ctx2[5];
2669
2745
  promptresult.$set(promptresult_changes);
2670
2746
  },
2671
2747
  i(local) {
@@ -2717,7 +2793,7 @@
2717
2793
  }
2718
2794
  };
2719
2795
  }
2720
- function create_if_block_13(ctx) {
2796
+ function create_if_block_14(ctx) {
2721
2797
  let successsolid;
2722
2798
  let current;
2723
2799
  successsolid = new SuccessSolid_default({});
@@ -2753,11 +2829,11 @@
2753
2829
  props: {
2754
2830
  rubric: (
2755
2831
  /*rubric*/
2756
- ctx[4].text
2832
+ ctx[6].text
2757
2833
  ),
2758
2834
  prompt: (
2759
2835
  /*prompt*/
2760
- ctx[5]
2836
+ ctx[7]
2761
2837
  ),
2762
2838
  $$slots: { default: [create_default_slot2] },
2763
2839
  $$scope: { ctx }
@@ -2786,7 +2862,7 @@
2786
2862
  p(ctx2, [dirty]) {
2787
2863
  const promptbody_changes = {};
2788
2864
  if (dirty & /*$$scope, isFinished, isResultCorrect, isDataSaving, typeinAnswer*/
2789
- 67108879) {
2865
+ 1073741839) {
2790
2866
  promptbody_changes.$$scope = { dirty, ctx: ctx2 };
2791
2867
  }
2792
2868
  promptbody.$set(promptbody_changes);
@@ -2844,22 +2920,35 @@
2844
2920
  let { isDataSaving } = $$props;
2845
2921
  let { isFinished = false } = $$props;
2846
2922
  let { isResultCorrect = false } = $$props;
2923
+ let { isPreviewMode = false } = $$props;
2847
2924
  const dispatch = createEventDispatcher();
2848
2925
  let typeinAnswer;
2849
2926
  let latestAnswer = "";
2927
+ let resultFeedbackTitle = "";
2928
+ let resultFeedback = "";
2850
2929
  let focusOrigin = "tab";
2851
- const { rubric, interaction, metadata } = sessionData;
2930
+ const { rubric, interaction, metadata, scoringMetadata } = sessionData;
2852
2931
  const { prompt, typein_type: typeinType } = interaction;
2853
2932
  if (metadata) {
2854
2933
  const events = metadata.interactions.events.pop();
2855
- latestAnswer = typeinAnswer = events.answer;
2934
+ latestAnswer = typeinAnswer = events.answer[0];
2935
+ }
2936
+ if (isFinished) {
2937
+ const { answer, hasAnswer } = scoringMetadata;
2938
+ typeinAnswer = answer && hasAnswer ? answer : typeinAnswer;
2939
+ if (!isPreviewMode) {
2940
+ const { correct: correctFeeback, incorrect: incorrectFeedback } = interaction.feedback;
2941
+ const { header, text: text2 } = isResultCorrect ? correctFeeback : incorrectFeedback;
2942
+ resultFeedbackTitle = header;
2943
+ resultFeedback = text2;
2944
+ }
2856
2945
  }
2857
2946
  const saveAnswer = () => {
2858
2947
  focusOrigin = "tab";
2859
2948
  if (isDataSaving || typeinAnswer === latestAnswer || !typeinAnswer && !latestAnswer)
2860
2949
  return;
2861
2950
  latestAnswer = typeinAnswer;
2862
- dispatch("saveAnswer", { answer: typeinAnswer || "" });
2951
+ dispatch("saveAnswer", { answer: [typeinAnswer || ""] });
2863
2952
  };
2864
2953
  const saveOnEnter = (event) => {
2865
2954
  if (event.key === "Enter") {
@@ -2894,19 +2983,23 @@
2894
2983
  const keydown_handler_1 = (event) => saveOnEnter(event);
2895
2984
  $$self.$$set = ($$props2) => {
2896
2985
  if ("sessionData" in $$props2)
2897
- $$invalidate(11, sessionData = $$props2.sessionData);
2986
+ $$invalidate(13, sessionData = $$props2.sessionData);
2898
2987
  if ("isDataSaving" in $$props2)
2899
2988
  $$invalidate(0, isDataSaving = $$props2.isDataSaving);
2900
2989
  if ("isFinished" in $$props2)
2901
2990
  $$invalidate(1, isFinished = $$props2.isFinished);
2902
2991
  if ("isResultCorrect" in $$props2)
2903
2992
  $$invalidate(2, isResultCorrect = $$props2.isResultCorrect);
2993
+ if ("isPreviewMode" in $$props2)
2994
+ $$invalidate(14, isPreviewMode = $$props2.isPreviewMode);
2904
2995
  };
2905
2996
  return [
2906
2997
  isDataSaving,
2907
2998
  isFinished,
2908
2999
  isResultCorrect,
2909
3000
  typeinAnswer,
3001
+ resultFeedbackTitle,
3002
+ resultFeedback,
2910
3003
  rubric,
2911
3004
  prompt,
2912
3005
  typeinType,
@@ -2915,6 +3008,7 @@
2915
3008
  handleFocus,
2916
3009
  handleClick,
2917
3010
  sessionData,
3011
+ isPreviewMode,
2918
3012
  input_input_handler,
2919
3013
  focusout_handler,
2920
3014
  keydown_handler,
@@ -2930,14 +3024,15 @@
2930
3024
  constructor(options) {
2931
3025
  super();
2932
3026
  init(this, options, instance4, create_fragment6, safe_not_equal, {
2933
- sessionData: 11,
3027
+ sessionData: 13,
2934
3028
  isDataSaving: 0,
2935
3029
  isFinished: 1,
2936
- isResultCorrect: 2
3030
+ isResultCorrect: 2,
3031
+ isPreviewMode: 14
2937
3032
  });
2938
3033
  }
2939
3034
  get sessionData() {
2940
- return this.$$.ctx[11];
3035
+ return this.$$.ctx[13];
2941
3036
  }
2942
3037
  set sessionData(sessionData) {
2943
3038
  this.$$set({ sessionData });
@@ -2964,8 +3059,15 @@
2964
3059
  this.$$set({ isResultCorrect });
2965
3060
  flush();
2966
3061
  }
3062
+ get isPreviewMode() {
3063
+ return this.$$.ctx[14];
3064
+ }
3065
+ set isPreviewMode(isPreviewMode) {
3066
+ this.$$set({ isPreviewMode });
3067
+ flush();
3068
+ }
2967
3069
  };
2968
- customElements.define("prompt-typein", create_custom_element(PromptTypeIn, { "sessionData": {}, "isDataSaving": {}, "isFinished": { "type": "Boolean" }, "isResultCorrect": { "type": "Boolean" } }, [], [], true));
3070
+ customElements.define("prompt-typein", create_custom_element(PromptTypeIn, { "sessionData": {}, "isDataSaving": {}, "isFinished": { "type": "Boolean" }, "isResultCorrect": { "type": "Boolean" }, "isPreviewMode": { "type": "Boolean" } }, [], [], true));
2969
3071
  var PromptTypeIn_default = PromptTypeIn;
2970
3072
 
2971
3073
  // src/lib/components/prompt/skeleton/PromptSkeleton.svelte
@@ -3059,7 +3161,7 @@
3059
3161
 
3060
3162
  // src/lib/components/prompt/PromptBuilder.svelte
3061
3163
  function add_css(target) {
3062
- append_styles(target, "svelte-182yxcp", '*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:Mulish, sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}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-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-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]{display:none}*{font-family:Mulish, sans-serif}input::-moz-selection,textarea::-moz-selection{background-color:hsla(0, 0%, 85%, 0.4)}input::selection,textarea::selection{background-color:hsla(0, 0%, 85%, 0.4)}*,: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: }::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: }.p2{font-size:0.875rem;font-weight:600;line-height:1.25rem;line-height:1.5}.item-heading{--tw-text-opacity:1;color:rgb(8 38 99/var(--tw-text-opacity));font-size:1.25rem;letter-spacing:-0.025em;line-height:1.5rem}.divider{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(107 121 121/var(--tw-border-opacity))}@keyframes svelte-182yxcp-pulse{{opacity:0.5}}.animate-skeleton{--tw-bg-opacity:1;animation:svelte-182yxcp-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.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(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));--tw-ring-offset-width:4px;box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0, 0, 0, 0));outline:2px solid transparent;outline-offset:2px;transition-duration:50ms}.btn-mcq-option{--tw-text-opacity:1;--tw-border-opacity:1;--tw-bg-opacity:1;align-items:center;background-color:rgb(247 250 250/var(--tw-bg-opacity));border-color:rgb(113 115 119/var(--tw-border-opacity));border-radius:0.5rem;border-width:1px;color:rgb(33 37 41/var(--tw-text-opacity));display:flex;font-size:1rem;justify-content:space-between;line-height:1.5rem;margin-bottom:1rem;min-height:48px;padding:0.5rem 0.75rem 0.5rem 0.5rem;width:100%}.btn-mcq-option:active{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(222 222 255/var(--tw-bg-opacity));border-color:rgb(8 38 99/var(--tw-border-opacity));border-width:2px}@media(hover: hover) and (pointer: fine){.btn-mcq-option:hover{--tw-bg-opacity:1;background-color:rgb(222 222 255/var(--tw-bg-opacity))}}.btn-mcq-option>span>.choice{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(113 115 119/var(--tw-border-opacity));border-radius:1rem;border-width:1px;color:rgb(93 99 107/var(--tw-text-opacity));display:flex;font-size:1rem;font-weight:700;height:2rem;justify-content:center;letter-spacing:0.05em;line-height:1rem;margin-right:1rem;padding:0.5rem;width:2rem}.btn-mcq-option.selected{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(222 222 255/var(--tw-bg-opacity))}.btn-mcq-option.selected,.btn-mcq-option.selected>span>.choice{border-color:rgb(8 38 99/var(--tw-border-opacity));border-width:2px}.btn-mcq-option.selected>span>.choice{--tw-border-opacity:1}.btn-mcq-option.selected.correct{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(241 254 241/var(--tw-bg-opacity));border-color:rgb(0 102 5/var(--tw-border-opacity));border-width:1px}.btn-mcq-option.selected.incorrect{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(253 243 247/var(--tw-bg-opacity));border-color:rgb(217 12 85/var(--tw-border-opacity));border-width:1px}.btn-mcq-option.selected.correct>span>.choice,.btn-mcq-option.selected.incorrect>span>.choice{--tw-border-opacity:1;border-color:rgb(113 115 119/var(--tw-border-opacity));border-width:1px}.typein-textbox: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);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity));--tw-ring-offset-width:4px;box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0, 0, 0, 0));outline:2px solid transparent;outline-offset:2px;transition-duration:50ms}.typein-textbox{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(93 99 107/var(--tw-border-opacity));border-radius:0.5rem;border-width:1px;color:rgb(33 37 41/var(--tw-text-opacity));font-size:1rem;line-height:1.5rem;padding:0.75rem 1rem;width:100%}.typein-textbox::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(93 99 107/var(--tw-placeholder-opacity))}.typein-textbox::placeholder{--tw-placeholder-opacity:1;color:rgb(93 99 107/var(--tw-placeholder-opacity))}.typein-textbox:focus{--tw-border-opacity:1;border-color:rgb(84 101 251/var(--tw-border-opacity));border-width:2px}@media(hover: hover) and (pointer: fine){.typein-textbox:hover{--tw-border-opacity:1;border-color:rgb(84 101 251/var(--tw-border-opacity));border-width:2px;outline:2px solid transparent;outline-offset:2px}}.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 rgba(0, 0, 0, 0)) !important}@media(hover: hover) and (pointer: fine){.typein-textbox:hover{--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));--tw-ring-offset-width:4px;box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0, 0, 0, 0));transition-duration:50ms}}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.z-50{z-index:50}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:0.5rem}.mr-2{margin-right:0.5rem}.mt-0{margin-top:0}.mt-0\\.5{margin-top:0.125rem}.mt-2{margin-top:0.5rem}.flex{display:flex}.h-52{height:13rem}.h-6{height:1.5rem}.w-full{width:100%}.grow{flex-grow:1}.items-center{align-items:center}.overflow-hidden{overflow:hidden}.rounded{border-radius:0.25rem}.border-2{border-width:2px}.border-l-\\[6px\\]{border-left-width:6px}.border-green-800{--tw-border-opacity:1;border-color:rgb(0 102 5/var(--tw-border-opacity))}.border-red-600{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity))}.border-red-800{--tw-border-opacity:1;border-color:rgb(217 12 85/var(--tw-border-opacity))}.bg-green-300{--tw-bg-opacity:1;background-color:rgb(241 254 241/var(--tw-bg-opacity))}.bg-red-200{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.bg-red-300{--tw-bg-opacity:1;background-color:rgb(253 243 247/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.p-0{padding:0}.p-0\\.5{padding:0.125rem}.p-2{padding:0.5rem}.p-4{padding:1rem}.text-left{text-align:left}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.font-semibold{font-weight:600}.text-blue-1000{--tw-text-opacity:1;color:rgb(8 38 99/var(--tw-text-opacity))}.text-charcoal{--tw-text-opacity:1;color:rgb(33 37 41/var(--tw-text-opacity))}.text-green-800{--tw-text-opacity:1;color:rgb(0 102 5/var(--tw-text-opacity))}.text-red-800{--tw-text-opacity:1;color:rgb(217 12 85/var(--tw-text-opacity))}.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)}.group:active .group-active\\:border-2{border-width:2px}.group:active .group-active\\:border-blue-1000{--tw-border-opacity:1;border-color:rgb(8 38 99/var(--tw-border-opacity))}.group:active .group-active\\:p-\\[7px\\]{padding:7px}@media(min-width: 732px){.md\\:mb-4{margin-bottom:1rem}}');
3164
+ append_styles(target, "svelte-q5obwh", '*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:Mulish, sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}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-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-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]{display:none}*{font-family:Mulish, sans-serif}input::-moz-selection,textarea::-moz-selection{background-color:hsla(0, 0%, 85%, 0.4)}input::selection,textarea::selection{background-color:hsla(0, 0%, 85%, 0.4)}*,: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: }::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: }.p2{font-size:0.875rem;font-weight:600;line-height:1.25rem;line-height:1.5}.item-heading{--tw-text-opacity:1;color:rgb(8 38 99/var(--tw-text-opacity));font-size:1.25rem;letter-spacing:-0.025em;line-height:1.5rem}.divider{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(107 121 121/var(--tw-border-opacity))}@keyframes svelte-q5obwh-pulse{{opacity:0.5}}.animate-skeleton{--tw-bg-opacity:1;animation:svelte-q5obwh-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.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(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));--tw-ring-offset-width:4px;box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0, 0, 0, 0));outline:2px solid transparent;outline-offset:2px;transition-duration:50ms}.btn-mcq-option{--tw-text-opacity:1;--tw-border-opacity:1;--tw-bg-opacity:1;align-items:center;background-color:rgb(247 250 250/var(--tw-bg-opacity));border-color:rgb(113 115 119/var(--tw-border-opacity));border-radius:0.5rem;border-width:1px;color:rgb(33 37 41/var(--tw-text-opacity));display:flex;font-size:1rem;justify-content:space-between;line-height:1.5rem;margin-bottom:1rem;min-height:48px;padding:0.5rem 0.75rem 0.5rem 0.5rem;width:100%}.btn-mcq-option:active{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(222 222 255/var(--tw-bg-opacity));border-color:rgb(8 38 99/var(--tw-border-opacity));border-width:2px}@media(hover: hover) and (pointer: fine){.btn-mcq-option:hover{--tw-bg-opacity:1;background-color:rgb(222 222 255/var(--tw-bg-opacity))}}.btn-mcq-option>span>.choice{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;align-items:center;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(113 115 119/var(--tw-border-opacity));border-radius:1rem;border-width:1px;color:rgb(93 99 107/var(--tw-text-opacity));display:flex;font-size:1rem;font-weight:700;height:2rem;justify-content:center;letter-spacing:0.05em;line-height:1rem;margin-right:1rem;padding:0.5rem;width:2rem}.btn-mcq-option.selected{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(222 222 255/var(--tw-bg-opacity))}.btn-mcq-option.selected,.btn-mcq-option.selected>span>.choice{border-color:rgb(8 38 99/var(--tw-border-opacity));border-width:2px}.btn-mcq-option.selected>span>.choice{--tw-border-opacity:1}.btn-mcq-option.selected.correct{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(241 254 241/var(--tw-bg-opacity));border-color:rgb(0 102 5/var(--tw-border-opacity));border-width:1px}.btn-mcq-option.selected.incorrect{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgb(253 243 247/var(--tw-bg-opacity));border-color:rgb(217 12 85/var(--tw-border-opacity));border-width:1px}.btn-mcq-option.selected.correct>span>.choice,.btn-mcq-option.selected.incorrect>span>.choice{--tw-border-opacity:1;border-color:rgb(113 115 119/var(--tw-border-opacity));border-width:1px}.typein-textbox: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);--tw-ring-opacity:1;--tw-ring-color:rgb(84 101 251/var(--tw-ring-opacity));--tw-ring-offset-width:4px;box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0, 0, 0, 0));outline:2px solid transparent;outline-offset:2px;transition-duration:50ms}.typein-textbox{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(93 99 107/var(--tw-border-opacity));border-radius:0.5rem;border-width:1px;color:rgb(33 37 41/var(--tw-text-opacity));font-size:1rem;line-height:1.5rem;padding:0.75rem 1rem;width:100%}.typein-textbox::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(93 99 107/var(--tw-placeholder-opacity))}.typein-textbox::placeholder{--tw-placeholder-opacity:1;color:rgb(93 99 107/var(--tw-placeholder-opacity))}.typein-textbox:focus{--tw-border-opacity:1;border-color:rgb(84 101 251/var(--tw-border-opacity));border-width:2px}@media(hover: hover) and (pointer: fine){.typein-textbox:hover{--tw-border-opacity:1;border-color:rgb(84 101 251/var(--tw-border-opacity));border-width:2px;outline:2px solid transparent;outline-offset:2px}}.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 rgba(0, 0, 0, 0)) !important}@media(hover: hover) and (pointer: fine){.typein-textbox:hover{--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));--tw-ring-offset-width:4px;box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 rgba(0, 0, 0, 0));transition-duration:50ms}}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.z-50{z-index:50}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.mb-1{margin-bottom:0.25rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:0.5rem}.mr-2{margin-right:0.5rem}.mt-0{margin-top:0}.mt-0\\.5{margin-top:0.125rem}.mt-2{margin-top:0.5rem}.block{display:block}.flex{display:flex}.h-52{height:13rem}.h-6{height:1.5rem}.w-full{width:100%}.grow{flex-grow:1}.items-center{align-items:center}.overflow-hidden{overflow:hidden}.rounded{border-radius:0.25rem}.border-2{border-width:2px}.border-l-\\[6px\\]{border-left-width:6px}.border-green-800{--tw-border-opacity:1;border-color:rgb(0 102 5/var(--tw-border-opacity))}.border-red-600{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity))}.border-red-800{--tw-border-opacity:1;border-color:rgb(217 12 85/var(--tw-border-opacity))}.bg-green-300{--tw-bg-opacity:1;background-color:rgb(241 254 241/var(--tw-bg-opacity))}.bg-red-200{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.bg-red-300{--tw-bg-opacity:1;background-color:rgb(253 243 247/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.p-0{padding:0}.p-0\\.5{padding:0.125rem}.p-2{padding:0.5rem}.p-4{padding:1rem}.text-left{text-align:left}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.font-semibold{font-weight:600}.text-blue-1000{--tw-text-opacity:1;color:rgb(8 38 99/var(--tw-text-opacity))}.text-charcoal{--tw-text-opacity:1;color:rgb(33 37 41/var(--tw-text-opacity))}.text-green-800{--tw-text-opacity:1;color:rgb(0 102 5/var(--tw-text-opacity))}.text-red-800{--tw-text-opacity:1;color:rgb(217 12 85/var(--tw-text-opacity))}.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)}.group:active .group-active\\:border-2{border-width:2px}.group:active .group-active\\:border-blue-1000{--tw-border-opacity:1;border-color:rgb(8 38 99/var(--tw-border-opacity))}.group:active .group-active\\:p-\\[7px\\]{padding:7px}@media(min-width: 732px){.md\\:mb-4{margin-bottom:1rem}}');
3063
3165
  }
3064
3166
  function create_else_block_12(ctx) {
3065
3167
  let invalidbanner;
@@ -3089,7 +3191,7 @@
3089
3191
  }
3090
3192
  };
3091
3193
  }
3092
- function create_if_block_14(ctx) {
3194
+ function create_if_block_15(ctx) {
3093
3195
  let current_block_type_index;
3094
3196
  let if_block;
3095
3197
  let if_block_anchor;
@@ -3237,13 +3339,17 @@
3237
3339
  isResultCorrect: (
3238
3340
  /*isResultCorrect*/
3239
3341
  ctx[5]
3342
+ ),
3343
+ isPreviewMode: (
3344
+ /*isPreviewMode*/
3345
+ ctx[6]
3240
3346
  )
3241
3347
  }
3242
3348
  });
3243
3349
  prompttypein.$on(
3244
3350
  "saveAnswer",
3245
3351
  /*saveEvent*/
3246
- ctx[6]
3352
+ ctx[7]
3247
3353
  );
3248
3354
  return {
3249
3355
  c() {
@@ -3314,7 +3420,7 @@
3314
3420
  promptmcq.$on(
3315
3421
  "saveOption",
3316
3422
  /*saveEvent*/
3317
- ctx[6]
3423
+ ctx[7]
3318
3424
  );
3319
3425
  return {
3320
3426
  c() {
@@ -3364,7 +3470,7 @@
3364
3470
  let if_block;
3365
3471
  let if_block_anchor;
3366
3472
  let current;
3367
- const if_block_creators = [create_if_block5, create_if_block_14, create_else_block_12];
3473
+ const if_block_creators = [create_if_block5, create_if_block_15, create_else_block_12];
3368
3474
  const if_blocks = [];
3369
3475
  function select_block_type(ctx2, dirty) {
3370
3476
  if (
@@ -3489,12 +3595,17 @@
3489
3595
  try {
3490
3596
  const { data } = await useGet(`sessions/${sessionId}/score`);
3491
3597
  if (data) {
3492
- const { metadata, has_answer: hasAnswer, scoring } = data[0];
3493
- const scoringMetadata = {
3494
- hasAnswer: !!hasAnswer,
3495
- answerId: metadata.answer[0],
3496
- correctAnswerId: metadata.correctAnswerId[0]
3497
- };
3598
+ const { metadata, scoring } = data[0];
3599
+ const { answer, has_answer: hasAnswer } = metadata;
3600
+ let scoringMetadata = { hasAnswer };
3601
+ switch (interactionType) {
3602
+ case INTERACTION_TYPE_MCQ:
3603
+ scoringMetadata = { ...scoringMetadata, answerId: answer[0] };
3604
+ break;
3605
+ case INTERACTION_TYPE_TYPEIN:
3606
+ default:
3607
+ scoringMetadata = { ...scoringMetadata, answer: answer[0] };
3608
+ }
3498
3609
  $$invalidate(0, sessionData = { ...sessionData, scoringMetadata });
3499
3610
  $$invalidate(5, isResultCorrect = scoring.score_earned);
3500
3611
  }
@@ -3507,29 +3618,21 @@
3507
3618
  await getItemData(itemId2, null);
3508
3619
  };
3509
3620
  const setPreviewData = (data) => {
3621
+ let scoringMetadata;
3510
3622
  switch (interactionType) {
3511
3623
  case INTERACTION_TYPE_MCQ:
3512
3624
  const { options } = data.interaction;
3513
3625
  const answerId = Object.values(options).filter((option) => option.correct_choice === true).map((option) => option.id);
3514
- const scoringMetadata = {
3515
- hasAnswer: true,
3516
- answerId: answerId[0],
3517
- correctAnswerId: answerId[0]
3518
- };
3626
+ scoringMetadata = { hasAnswer: true, answerId: answerId[0] };
3519
3627
  $$invalidate(0, sessionData = { ...sessionData, scoringMetadata });
3520
3628
  case INTERACTION_TYPE_TYPEIN:
3521
3629
  default:
3522
3630
  const { correct_answer: correctAnswer, typein_type: typeinType } = data.interaction;
3523
- const metadata = {
3524
- interactions: {
3525
- events: [
3526
- {
3527
- answer: typeinType === TYPEIN_TYPE_SHORT ? correctAnswer[0] : correctAnswer[0].answer[0]
3528
- }
3529
- ]
3530
- }
3631
+ scoringMetadata = {
3632
+ hasAnswer: true,
3633
+ answer: typeinType === TYPEIN_TYPE_SHORT ? correctAnswer[0][0] : correctAnswer[0].answer[0]
3531
3634
  };
3532
- $$invalidate(0, sessionData = { ...sessionData, metadata });
3635
+ $$invalidate(0, sessionData = { ...sessionData, scoringMetadata });
3533
3636
  }
3534
3637
  };
3535
3638
  const saveEvent = async ({ detail }) => {
@@ -3564,6 +3667,7 @@
3564
3667
  interactionType,
3565
3668
  isFinished,
3566
3669
  isResultCorrect,
3670
+ isPreviewMode,
3567
3671
  saveEvent
3568
3672
  ];
3569
3673
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eat-js-sdk",
3
- "version": "0.0.19",
3
+ "version": "0.0.21",
4
4
  "description": "Authoring tool frontend SDK",
5
5
  "contributors": [
6
6
  {