@vue-skuilder/standalone-ui 0.2.13 → 0.2.15

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.
@@ -24645,6 +24645,7 @@ var init_v4 = __esmMin((() => {
24645
24645
  NavigatorRoles: () => NavigatorRoles,
24646
24646
  Navigators: () => Navigators,
24647
24647
  QuotaRoundRobinMixer: () => QuotaRoundRobinMixer,
24648
+ REVIEW_TIME_FORMAT: () => REVIEW_TIME_FORMAT,
24648
24649
  SessionController: () => SessionController,
24649
24650
  StaticToCouchDBMigrator: () => StaticToCouchDBMigrator,
24650
24651
  TagFilteredContentSource: () => TagFilteredContentSource,
@@ -24665,6 +24666,7 @@ var init_v4 = __esmMin((() => {
24665
24666
  docIsDeleted: () => docIsDeleted,
24666
24667
  endSessionTracking: () => endSessionTracking,
24667
24668
  ensureAppDataDirectory: () => ensureAppDataDirectory,
24669
+ getActiveController: () => getActiveController,
24668
24670
  getActivePipeline: () => getActivePipeline,
24669
24671
  getAppDataDirectory: () => getAppDataDirectory,
24670
24672
  getCardHistoryID: () => getCardHistoryID,
@@ -24690,6 +24692,7 @@ var init_v4 = __esmMin((() => {
24690
24692
  isQuestionTypeRegistered: () => isQuestionTypeRegistered,
24691
24693
  isReview: () => isReview,
24692
24694
  log: () => log,
24695
+ makeScheduledCardId: () => makeScheduledCardId,
24693
24696
  mixerDebugAPI: () => mixerDebugAPI,
24694
24697
  mountMixerDebugger: () => mountMixerDebugger,
24695
24698
  mountPipelineDebugger: () => mountPipelineDebugger,
@@ -24701,6 +24704,7 @@ var init_v4 = __esmMin((() => {
24701
24704
  processCustomQuestionsData: () => processCustomQuestionsData,
24702
24705
  recordCardPresentation: () => recordCardPresentation,
24703
24706
  recordUserOutcome: () => recordUserOutcome,
24707
+ registerActiveController: () => registerActiveController,
24704
24708
  registerBlanksCard: () => registerBlanksCard,
24705
24709
  registerCustomQuestionTypes: () => registerCustomQuestionTypes,
24706
24710
  registerDataShape: () => registerDataShape,
@@ -24715,6 +24719,7 @@ var init_v4 = __esmMin((() => {
24715
24719
  sessionDebugAPI: () => sessionDebugAPI,
24716
24720
  snapshotQueues: () => snapshotQueues,
24717
24721
  startSessionTracking: () => startSessionTracking,
24722
+ toggleSessionOverlay: () => toggleSessionOverlay,
24718
24723
  updateLearningState: () => updateLearningState,
24719
24724
  updateStrategyWeight: () => updateStrategyWeight,
24720
24725
  userDBDebugAPI: () => userDBDebugAPI,
@@ -24761,6 +24766,9 @@ function getDbPath(t) {
24761
24766
  async function initializeDataDirectory() {
24762
24767
  await ensureAppDataDirectory(), logger.info(`PouchDB data directory initialized: ${getAppDataDirectory()}`);
24763
24768
  }
24769
+ function makeScheduledCardId(t) {
24770
+ return DocTypePrefixes.SCHEDULED_CARD + hooks.utc(t).format(REVIEW_TIME_FORMAT);
24771
+ }
24764
24772
  function hexEncode(t) {
24765
24773
  let c, u = "";
24766
24774
  for (let d = 0; d < t.length; d++) c = t.charCodeAt(d).toString(16), u += ("000" + c).slice(3);
@@ -24798,7 +24806,7 @@ function getLocalUserDB(t) {
24798
24806
  function scheduleCardReviewLocal(t, c) {
24799
24807
  let u = hooks.utc();
24800
24808
  logger.info(`Scheduling for review in: ${c.time.diff(u, "h") / 24} days`), t.put({
24801
- _id: DocTypePrefixes.SCHEDULED_CARD + c.time.format(REVIEW_TIME_FORMAT),
24809
+ _id: makeScheduledCardId(c.time),
24802
24810
  cardId: c.card_id,
24803
24811
  reviewTime: c.time.toISOString(),
24804
24812
  courseId: c.course_id,
@@ -29792,9 +29800,9 @@ Currently logged-in as ${this._username}.`);
29792
29800
  }
29793
29801
  }).map((t) => t.doc);
29794
29802
  }
29795
- async getReviewsForcast(t) {
29796
- let c = hooks.utc().add(t, "days");
29797
- return this.getReviewstoDate(c);
29803
+ async getReviewsForcast(t, c) {
29804
+ let u = hooks.utc().add(t, "days");
29805
+ return this.getReviewstoDate(u, c);
29798
29806
  }
29799
29807
  async getPendingReviews(t) {
29800
29808
  let c = hooks.utc();
@@ -31083,47 +31091,60 @@ ${c.id}:`), logger.info(JSON.stringify(c.doc, null, 2));
31083
31091
  }
31084
31092
  async updateUserAndCardElo(t, c, u, d, m, g) {
31085
31093
  g && logger.warn("k value interpretation not currently implemented");
31086
- let b = this.dataLayer.getCourseDB(m.card.course_id), S = toCourseElo(d.courses.find((t) => t.courseID === c).elo), C = (await b.getCardEloData([m.card.card_id]))[0];
31087
- if (C && S) {
31088
- let m = adjustCourseScores(S, C, t);
31089
- d.courses.find((t) => t.courseID === c).elo = m.userElo;
31090
- let g = await Promise.allSettled([this.user.updateUserElo(c, m.userElo), b.updateCardElo(u, m.cardElo)]), w = g[0].status === "fulfilled", T = g[1].status === "fulfilled";
31091
- if (w && T) {
31092
- let t = g[0].value, c = g[1].value;
31094
+ let b = this.dataLayer.getCourseDB(m.card.course_id), S = d.courses.find((t) => t.courseID === c);
31095
+ if (!S) {
31096
+ logger.error(`[EloService] No registration for course ${c} on user's registration doc \u2014 skipping ELO update for card ${u}. (Is the user registered for this course?)`);
31097
+ return;
31098
+ }
31099
+ let C = toCourseElo(S.elo), w = (await b.getCardEloData([m.card.card_id]))[0];
31100
+ if (w && C) {
31101
+ let d = adjustCourseScores(C, w, t);
31102
+ S.elo = d.userElo;
31103
+ let m = await Promise.allSettled([this.user.updateUserElo(c, d.userElo), b.updateCardElo(u, d.cardElo)]), g = m[0].status === "fulfilled", T = m[1].status === "fulfilled";
31104
+ if (g && T) {
31105
+ let t = m[0].value, c = m[1].value;
31093
31106
  t.ok && c && c.ok && logger.info(`[EloService] Updated ELOS:
31094
- User: ${JSON.stringify(m.userElo)})
31095
- Card: ${JSON.stringify(m.cardElo)})
31107
+ User: ${JSON.stringify(d.userElo)})
31108
+ Card: ${JSON.stringify(d.cardElo)})
31096
31109
  `);
31097
31110
  } else logger.warn(`[EloService] Partial ELO update:
31098
- User ELO update: ${w ? "SUCCESS" : "FAILED"}
31099
- Card ELO update: ${T ? "SUCCESS" : "FAILED"}`), !w && g[0].status === "rejected" && logger.error("[EloService] User ELO update error:", g[0].reason), !T && g[1].status === "rejected" && logger.error("[EloService] Card ELO update error:", g[1].reason);
31111
+ User ELO update: ${g ? "SUCCESS" : "FAILED"}
31112
+ Card ELO update: ${T ? "SUCCESS" : "FAILED"}`), !g && m[0].status === "rejected" && logger.error("[EloService] User ELO update error:", m[0].reason), !T && m[1].status === "rejected" && logger.error("[EloService] Card ELO update error:", m[1].reason);
31100
31113
  }
31101
31114
  }
31102
31115
  async updateUserAndCardEloPerTag(t, c, u, d, m) {
31103
- let g = this.dataLayer.getCourseDB(m.card.course_id), b = toCourseElo(d.courses.find((t) => t.courseID === c).elo), [S, C] = await Promise.all([g.getCardEloData([m.card.card_id]), g.getAppliedTagsBatch([u])]), w = S[0], T = C.get(u) ?? [], E = { ...t }, D = t._global;
31104
- for (let t of T) t in E || (E[t] = D);
31105
- if (w && b) {
31106
- let t = adjustCourseScoresPerTag(b, w, E);
31107
- d.courses.find((t) => t.courseID === c).elo = t.userElo;
31108
- let m = await Promise.allSettled([this.user.updateUserElo(c, t.userElo), g.updateCardElo(u, t.cardElo)]), S = m[0].status === "fulfilled", C = m[1].status === "fulfilled";
31109
- if (S && C) {
31110
- let c = m[0].value, u = m[1].value;
31116
+ let g = this.dataLayer.getCourseDB(m.card.course_id), b = d.courses.find((t) => t.courseID === c);
31117
+ if (!b) {
31118
+ logger.error(`[EloService] No registration for course ${c} on user's registration doc \u2014 skipping per-tag ELO update for card ${u}. (Is the user registered for this course?)`);
31119
+ return;
31120
+ }
31121
+ let S = toCourseElo(b.elo), [C, w] = await Promise.all([g.getCardEloData([m.card.card_id]), g.getAppliedTagsBatch([u])]), T = C[0], E = w.get(u) ?? [], D = { ...t }, O = t._global;
31122
+ for (let t of E) t in D || (D[t] = O);
31123
+ if (T && S) {
31124
+ let t = adjustCourseScoresPerTag(S, T, D);
31125
+ b.elo = t.userElo;
31126
+ let d = await Promise.allSettled([this.user.updateUserElo(c, t.userElo), g.updateCardElo(u, t.cardElo)]), m = d[0].status === "fulfilled", C = d[1].status === "fulfilled";
31127
+ if (m && C) {
31128
+ let c = d[0].value, u = d[1].value;
31111
31129
  if (c.ok && u && u.ok) {
31112
- let c = Object.keys(E).length - 1;
31130
+ let c = Object.keys(D).length - 1;
31113
31131
  logger.info(`[EloService] Updated ELOS (per-tag, ${c} tags):
31114
31132
  User: ${JSON.stringify(t.userElo)})
31115
31133
  Card: ${JSON.stringify(t.cardElo)})
31116
31134
  `);
31117
31135
  }
31118
31136
  } else logger.warn(`[EloService] Partial ELO update (per-tag):
31119
- User ELO update: ${S ? "SUCCESS" : "FAILED"}
31120
- Card ELO update: ${C ? "SUCCESS" : "FAILED"}`), !S && m[0].status === "rejected" && logger.error("[EloService] User ELO update error:", m[0].reason), !C && m[1].status === "rejected" && logger.error("[EloService] Card ELO update error:", m[1].reason);
31137
+ User ELO update: ${m ? "SUCCESS" : "FAILED"}
31138
+ Card ELO update: ${C ? "SUCCESS" : "FAILED"}`), !m && d[0].status === "rejected" && logger.error("[EloService] User ELO update error:", d[0].reason), !C && d[1].status === "rejected" && logger.error("[EloService] Card ELO update error:", d[1].reason);
31121
31139
  }
31122
31140
  }
31123
31141
  }, init_core(), init_logger(), ResponseProcessor = class {
31124
31142
  constructor(t, c) {
31125
31143
  _defineProperty$2(this, "srsService", void 0), _defineProperty$2(this, "eloService", void 0), this.srsService = t, this.eloService = c;
31126
31144
  }
31145
+ logEloFailure(t, c) {
31146
+ return (u) => logger.error(`[ResponseProcessor] ELO update failed (${t}) for ${c}:`, u);
31147
+ }
31127
31148
  parsePerformance(t) {
31128
31149
  return typeof t == "number" ? {
31129
31150
  globalScore: t,
@@ -31163,13 +31184,13 @@ ${c.id}:`), logger.info(JSON.stringify(c.doc, null, 2));
31163
31184
  let { globalScore: S, taggedPerformance: C } = this.parsePerformance(t.performance);
31164
31185
  if (C) {
31165
31186
  let u = Object.keys(C).filter((t) => t !== "_global"), S = u.filter((t) => C[t] === null), w = u.filter((t) => C[t] !== null);
31166
- logger.info(`[FirstContactElo] correct first-attempt per-tag ELO update for ${b} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps}): scored=[${w.join(", ")}] count-only=[${S.join(", ")}]`), this.eloService.updateUserAndCardEloPerTag(C, g, b, d, m);
31187
+ logger.info(`[FirstContactElo] correct first-attempt per-tag ELO update for ${b} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps}): scored=[${w.join(", ")}] count-only=[${S.join(", ")}]`), this.eloService.updateUserAndCardEloPerTag(C, g, b, d, m).catch(this.logEloFailure("correct per-tag", b));
31167
31188
  } else {
31168
31189
  let u = .5 + S / 2;
31169
- if (c.records.length === 1) this.eloService.updateUserAndCardElo(u, g, b, d, m);
31190
+ if (c.records.length === 1) this.eloService.updateUserAndCardElo(u, g, b, d, m).catch(this.logEloFailure("correct", b));
31170
31191
  else {
31171
31192
  let t = Math.ceil(32 / c.records.length);
31172
- this.eloService.updateUserAndCardElo(u, g, b, d, m, t);
31193
+ this.eloService.updateUserAndCardElo(u, g, b, d, m, t).catch(this.logEloFailure("correct repeat-view", b));
31173
31194
  }
31174
31195
  logger.info(`[FirstContactElo] correct first-attempt ELO update (score=${u.toFixed(3)}) for ${b} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps})`);
31175
31196
  }
@@ -31194,7 +31215,7 @@ ${c.id}:`), logger.info(JSON.stringify(c.doc, null, 2));
31194
31215
  }
31195
31216
  processIncorrectResponse(t, c, u, d, m, g, b, S, C) {
31196
31217
  let { taggedPerformance: w } = this.parsePerformance(t.performance), T = !1;
31197
- return t.priorAttemps === 0 ? (w ? (this.eloService.updateUserAndCardEloPerTag(w, m, g, u, d), logger.info(`[FirstContactElo] incorrect first-attempt per-tag ELO update for ${g} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps}, tags=${Object.keys(w).length - 1})`)) : (this.eloService.updateUserAndCardElo(0, m, g, u, d), logger.info(`[FirstContactElo] incorrect first-attempt ELO update (score=0) for ${g} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps})`)), T = !0) : logger.info(`[FirstContactElo] incorrect retry \u2014 no ELO update for ${g} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps})`), d.records.length >= b ? C >= S ? (T ? logger.info(`[FirstContactElo] dismiss-failed \u2014 ELO already updated this response, skipping double penalty for ${g}`) : (w ? this.eloService.updateUserAndCardEloPerTag(w, m, g, u, d) : this.eloService.updateUserAndCardElo(0, m, g, u, d), logger.info(`[FirstContactElo] dismiss-failed final ELO penalty for ${g} (historyLen=${c.records.length}, sessionViews=${C})`)), {
31218
+ return t.priorAttemps === 0 ? (w ? (this.eloService.updateUserAndCardEloPerTag(w, m, g, u, d).catch(this.logEloFailure("incorrect per-tag", g)), logger.info(`[FirstContactElo] incorrect first-attempt per-tag ELO update for ${g} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps}, tags=${Object.keys(w).length - 1})`)) : (this.eloService.updateUserAndCardElo(0, m, g, u, d).catch(this.logEloFailure("incorrect", g)), logger.info(`[FirstContactElo] incorrect first-attempt ELO update (score=0) for ${g} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps})`)), T = !0) : logger.info(`[FirstContactElo] incorrect retry \u2014 no ELO update for ${g} (historyLen=${c.records.length}, priorAttemps=${t.priorAttemps})`), d.records.length >= b ? C >= S ? (T ? logger.info(`[FirstContactElo] dismiss-failed \u2014 ELO already updated this response, skipping double penalty for ${g}`) : (w ? this.eloService.updateUserAndCardEloPerTag(w, m, g, u, d).catch(this.logEloFailure("dismiss-failed per-tag", g)) : this.eloService.updateUserAndCardElo(0, m, g, u, d).catch(this.logEloFailure("dismiss-failed", g)), logger.info(`[FirstContactElo] dismiss-failed final ELO penalty for ${g} (historyLen=${c.records.length}, sessionViews=${C})`)), {
31198
31219
  nextCardAction: "dismiss-failed",
31199
31220
  shouldLoadNextCard: !0,
31200
31221
  isCorrect: !1,
@@ -32505,7 +32526,7 @@ ${c.id}:`), logger.info(JSON.stringify(c.doc, null, 2));
32505
32526
  let d = (/* @__PURE__ */ new Date()).toISOString(), m = new Date(this.startTime).toISOString();
32506
32527
  await recordUserOutcome(c, m, d, t, u);
32507
32528
  }
32508
- }, _defineProperty$2(_SessionController2, "MIN_WELL_INDICATED", 5), _defineProperty$2(_SessionController2, "WELL_INDICATED_SCORE", .1), _defineProperty$2(_SessionController2, "DEPLETION_PREFETCH_THRESHOLD", 3), _defineProperty$2(_SessionController2, "FAILED_INTERLEAVE_EVERY", 4), _defineProperty$2(_SessionController2, "FAILED_ENDGAME_SLACK_SECONDS", 20), _SessionController2), init_TagFilteredContentSource(), init_factory();
32529
+ }, _defineProperty$2(_SessionController2, "MIN_WELL_INDICATED", 5), _defineProperty$2(_SessionController2, "WELL_INDICATED_SCORE", .1), _defineProperty$2(_SessionController2, "DEPLETION_PREFETCH_THRESHOLD", 3), _defineProperty$2(_SessionController2, "FAILED_INTERLEAVE_EVERY", 4), _defineProperty$2(_SessionController2, "FAILED_ENDGAME_SLACK_SECONDS", 20), _SessionController2), init_TagFilteredContentSource(), init_factory(), init_userDBHelpers();
32509
32530
  }));
32510
32531
  //#endregion
32511
32532
  //#region ../../node_modules/vue-router/dist/vue-router.mjs
@@ -40705,7 +40726,7 @@ function _sfc_render$18(t, c, u, d, m, g) {
40705
40726
  color: t.timerColor,
40706
40727
  "model-value": t.percentageRemaining
40707
40728
  }, {
40708
- default: withCtx(() => [t.timeRemaining > 0 && t.hovered ? (openBlock(), createBlock(S, {
40729
+ default: withCtx(() => [t.allowAddTime && t.timeRemaining > 0 && t.hovered ? (openBlock(), createBlock(S, {
40709
40730
  key: 0,
40710
40731
  icon: "",
40711
40732
  color: "transparent",
@@ -40868,7 +40889,10 @@ function _sfc_render$15(t, c, u, d, m, g) {
40868
40889
  c[1] || (c[1] = createBaseVNode("p", null, "Study session finished! Great job!", -1)),
40869
40890
  t.sessionController ? (openBlock(), createElementBlock("p", Jt, toDisplayString(t.sessionController.report), 1)) : createCommentVNode("", !0),
40870
40891
  createVNode(T, { "activity-records-getter": () => t.user.getActivityRecords() }, null, 8, ["activity-records-getter"])
40871
- ])], !0)])) : (openBlock(), createElementBlock("div", Yt, [createVNode(Transition, { name: t.transitionName }, {
40892
+ ])], !0)])) : (openBlock(), createElementBlock("div", Yt, [createVNode(Transition, {
40893
+ name: t.transitionName,
40894
+ mode: t.resolvedTransitionMode
40895
+ }, {
40872
40896
  default: withCtx(() => [t.view ? (openBlock(), createBlock(E, {
40873
40897
  ref: "cardViewer",
40874
40898
  key: t.cardID,
@@ -40898,7 +40922,7 @@ function _sfc_render$15(t, c, u, d, m, g) {
40898
40922
  "onReadyToAdvance"
40899
40923
  ])) : createCommentVNode("", !0)]),
40900
40924
  _: 1
40901
- }, 8, ["name"])], 512)),
40925
+ }, 8, ["name", "mode"])], 512)),
40902
40926
  t.frameless ? createCommentVNode("", !0) : (openBlock(), createElementBlock(Fragment, { key: 5 }, [c[2] || (c[2] = createBaseVNode("br", null, null, -1)), t.sessionController ? (openBlock(), createElementBlock("div", Xt, [(openBlock(!0), createElementBlock(Fragment, null, renderList(t.sessionController.failedCount, (t) => (openBlock(), createElementBlock("span", {
40903
40927
  key: t,
40904
40928
  class: "text-h5"
@@ -42724,6 +42748,10 @@ var Ee$1, De$1, Oe$1, ke$1, Ae$1, je$1, Me$1, Ne$1, Pe$1, Fe$1, Ie$1, Le$1, Z$2,
42724
42748
  type: Number,
42725
42749
  required: !0,
42726
42750
  default: 5
42751
+ },
42752
+ allowAddTime: {
42753
+ type: Boolean,
42754
+ default: !0
42727
42755
  }
42728
42756
  },
42729
42757
  emits: ["add-time"],
@@ -42744,7 +42772,7 @@ var Ee$1, De$1, Oe$1, ke$1, Ae$1, je$1, Me$1, Ne$1, Pe$1, Fe$1, Ie$1, Le$1, Z$2,
42744
42772
  addSessionTime
42745
42773
  };
42746
42774
  }
42747
- }), __name(_sfc_render$18, "_sfc_render"), st$1 = /* @__PURE__ */ F$3(ot$1, [["render", _sfc_render$18], ["__scopeId", "data-v-5960940a"]]), ct$1 = /* @__PURE__ */ defineComponent({
42775
+ }), __name(_sfc_render$18, "_sfc_render"), st$1 = /* @__PURE__ */ F$3(ot$1, [["render", _sfc_render$18], ["__scopeId", "data-v-5e104ccc"]]), ct$1 = /* @__PURE__ */ defineComponent({
42748
42776
  name: "CardViewer",
42749
42777
  ref: {},
42750
42778
  props: {
@@ -43332,9 +43360,14 @@ var Ee$1, De$1, Oe$1, ke$1, Ae$1, je$1, Me$1, Ne$1, Pe$1, Fe$1, Ie$1, Le$1, Z$2,
43332
43360
  debugMode: window.debugMode === !0
43333
43361
  };
43334
43362
  },
43335
- computed: { currentCard() {
43336
- return this.sessionRecord[this.sessionRecord.length - 1];
43337
- } },
43363
+ computed: {
43364
+ currentCard() {
43365
+ return this.sessionRecord[this.sessionRecord.length - 1];
43366
+ },
43367
+ resolvedTransitionMode() {
43368
+ return this.transitionMode === "default" ? void 0 : this.transitionMode;
43369
+ }
43370
+ },
43338
43371
  async created() {
43339
43372
  this.userCourseRegDoc = await this.user.getCourseRegistrationsDoc(), console.log("[StudySession] Created lifecycle hook - starting initSession"), await this.initSession(), console.log("[StudySession] InitSession completed in created hook");
43340
43373
  },
@@ -43497,11 +43530,14 @@ var Ee$1, De$1, Oe$1, ke$1, Ae$1, je$1, Me$1, Ne$1, Pe$1, Fe$1, Ie$1, Le$1, Z$2,
43497
43530
  }), Wt = {
43498
43531
  key: 0,
43499
43532
  class: "StudySession"
43500
- }, Gt = { key: 2 }, Kt = { key: 3 }, qt = { class: "text-h4" }, Jt = { key: 0 }, Yt = {
43533
+ }, Gt = { key: 2 }, Kt = {
43534
+ key: 3,
43535
+ class: "session-finished-area"
43536
+ }, qt = { class: "text-h4" }, Jt = { key: 0 }, Yt = {
43501
43537
  key: 4,
43502
43538
  ref: "shadowWrapper",
43503
43539
  class: "card-transition-container"
43504
- }, Xt = { key: 0 }, __name(_sfc_render$15, "_sfc_render"), Zt = /* @__PURE__ */ F$3(Ut, [["render", _sfc_render$15], ["__scopeId", "data-v-0279250f"]]), Qt = /* @__PURE__ */ defineComponent({
43540
+ }, Xt = { key: 0 }, __name(_sfc_render$15, "_sfc_render"), Zt = /* @__PURE__ */ F$3(Ut, [["render", _sfc_render$15], ["__scopeId", "data-v-d6d88dad"]]), Qt = /* @__PURE__ */ defineComponent({
43505
43541
  name: "MultipleChoiceOption",
43506
43542
  components: { MarkdownRenderer: /* @__PURE__ */ defineAsyncComponent(() => Promise.resolve().then(() => (init_MarkdownRenderer_kStoDRNE(), MarkdownRenderer_kStoDRNE_exports)).then((t) => t.n)) },
43507
43543
  props: {