@doenet/doenetml 0.7.24-dev.484 → 0.7.24-dev.485

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.
Files changed (107) hide show
  1. package/{AnswerResponseButton-DOkiGXwR.js → AnswerResponseButton-C5D4U5Th.js} +2 -2
  2. package/{Description-dd5zo0Da.js → Description-Dy5jBoGd.js} +1 -1
  3. package/{GraphFrame-CJnYmlxB.js → GraphFrame-DYFhUbFq.js} +2 -2
  4. package/{JSXGraphRenderer-CqQeYbb_.js → JSXGraphRenderer-CYtq27Rg.js} +1 -1
  5. package/{NonInlineMediaWrapper-Bzzs4aLp.js → NonInlineMediaWrapper-BLBBzhkX.js} +1 -1
  6. package/Viewer/DocViewer.d.ts.map +1 -1
  7. package/{_error-DshBxNw7.js → _error-DgmZcnIy.js} +2 -2
  8. package/{alert-boEZiy8P.js → alert-Du0SHsO2.js} +3 -3
  9. package/{angle-Cg_cvHt2.js → angle-B8aLU_tq.js} +6 -6
  10. package/{answer-Cv8KidCI.js → answer-D9O4nx1N.js} +5 -5
  11. package/{asList-BRziaNyA.js → asList-8xrZNcX4.js} +2 -2
  12. package/{blockQuote-DHZVW_Gd.js → blockQuote-CGPBCSob.js} +3 -3
  13. package/{boolean-CD7ZkKG1.js → boolean-CVUCiYTF.js} +2 -2
  14. package/{booleanInput-B2d95be3.js → booleanInput-DylenXFQ.js} +6 -6
  15. package/{br-BySBp0Qm.js → br-B1yOnwfq.js} +2 -2
  16. package/{button-i7QU2Gp2.js → button-DIrhxNM-.js} +4 -4
  17. package/{c-C6eFHKOm.js → c-zgo_OQlW.js} +3 -3
  18. package/{cell-CuBy_sd-.js → cell-BoEckAA9.js} +3 -3
  19. package/{choiceInput-cCdnPZxl.js → choiceInput-B8Wy64nu.js} +4 -4
  20. package/{circle-Cl0ehDpP.js → circle-Mn_cEAUr.js} +6 -6
  21. package/{cobwebPolyline-CIbCw1DX.js → cobwebPolyline-B-DsQ6F7.js} +4 -4
  22. package/{codeEditor-CVdj4BCY.js → codeEditor-DONOrg4K.js} +2 -2
  23. package/{composites-BahnWZ44.js → composites-utuWJTx9.js} +1 -1
  24. package/{containerBlock-DrN10qVb.js → containerBlock-34ay8OVs.js} +4 -4
  25. package/{containerInline-BMaCC4K_.js → containerInline-DLl_Wil0.js} +4 -4
  26. package/{curve-D_UKYjPX.js → curve-DSAmQKBN.js} +4 -4
  27. package/{doenetml-aUmY9leg.js → doenetml-DciZAG_S.js} +123 -33
  28. package/doenetml-external-worker.js +2 -2
  29. package/doenetml-inline-worker.js +2 -2
  30. package/{ellipsis-CY3IE_8F.js → ellipsis-CQDCvqQY.js} +2 -2
  31. package/{em-B1X1bCB5.js → em-g6j-S6MK.js} +3 -3
  32. package/{embed-CKDnpG5N.js → embed-BvauYkDC.js} +2 -2
  33. package/{feedback-COUFZk1c.js → feedback-C2L7dpAf.js} +4 -4
  34. package/{figure-Blo3AaKP.js → figure-Dv4FG8C9.js} +3 -3
  35. package/{fillPatterns-BMeeuJF5.js → fillPatterns-CDmt71wM.js} +1 -1
  36. package/{footnote-LNP_5Px7.js → footnote-dcb4bCes.js} +3 -3
  37. package/{fractionInput-B0vgkmCH.js → fractionInput-rOeJ2CGX.js} +4 -4
  38. package/global-config.d.ts +11 -7
  39. package/global-config.d.ts.map +1 -1
  40. package/{graph-tfQQFRA6.js → graph-BaPxo8Y1.js} +6 -6
  41. package/{hint-BNFwH9y4.js → hint-rfaBUgXj.js} +4 -4
  42. package/{hr-DLtP75RR.js → hr-BIzKgl5O.js} +2 -2
  43. package/{image-BAVOKRjs.js → image-DSWYAvdw.js} +7 -7
  44. package/{index-DEGhhHR0.js → index-jt_-0b5V.js} +1 -1
  45. package/{index.es-EwFj50Xp.js → index.es-D1nvu1l-.js} +1 -1
  46. package/index.js +1 -1
  47. package/{label-CcWhR8P3.js → label-BTpICnEk.js} +6 -6
  48. package/{labelWithLatex-CG5R0Beu.js → labelWithLatex-BIFvNrpS.js} +1 -1
  49. package/{legend-CTr43fsJ.js → legend-DFF7JH-M.js} +4 -4
  50. package/{line-Uh10z24B.js → line-jJbGBnMj.js} +6 -6
  51. package/{lineFamilyDragHandlers-Cq8PcFCJ.js → lineFamilyDragHandlers-CNHbhwfs.js} +1 -1
  52. package/{lineSegment-hVn537jV.js → lineSegment-G-Rl5xyE.js} +5 -5
  53. package/{list-C-YcT9Dk.js → list-CECTs7LB.js} +4 -4
  54. package/{lq-Cj3uwOLp.js → lq-BLomm5Xe.js} +2 -2
  55. package/{lsq-7QeR5rpb.js → lsq-CKbD8KCb.js} +2 -2
  56. package/{markupRenderer-DaZQsDAf.js → markupRenderer-DCoW1x9J.js} +1 -1
  57. package/{math-DrMdOcrl.js → math-D5UPF1gw.js} +6 -6
  58. package/{mathInput-CtURtu72.js → mathInput-BYXwpqpv.js} +7 -7
  59. package/{matrixInput-DgV6Rt8a.js → matrixInput-HSdm1FUG.js} +4 -4
  60. package/{mdash-4WjRv6iT.js → mdash-C4CqMwkk.js} +2 -2
  61. package/{nbsp-yuITh3Y6.js → nbsp-CsHNdCv7.js} +2 -2
  62. package/{ndash-DkVZ1P1m.js → ndash-_Y3GA8Km.js} +2 -2
  63. package/{number-AVe_Yorf.js → number-8OOLhJnM.js} +6 -6
  64. package/{orbitalDiagram-BgRjqqBD.js → orbitalDiagram-DqngPagb.js} +2 -2
  65. package/{orbitalDiagramInput-CbCVpaO2.js → orbitalDiagramInput-C_JRrwmg.js} +2 -2
  66. package/{p-B9P3Wh1I.js → p-KVTTGNUY.js} +4 -4
  67. package/package.json +1 -1
  68. package/{paginatorControls-CgRMs12_.js → paginatorControls-BcnmiF8z.js} +2 -2
  69. package/{pegboard-DOmqpNmS.js → pegboard-C80OFUoo.js} +4 -4
  70. package/{point-Dek6LcYq.js → point-CQ1fXFkV.js} +6 -6
  71. package/{polygon-CtjOBqjz.js → polygon-CajPfXls.js} +6 -6
  72. package/{polyline-PBXmF4gv.js → polyline-dvPND6uf.js} +5 -5
  73. package/{pre-CwsrcLE-.js → pre-ByMS-MiF.js} +3 -3
  74. package/{prefigure-BYOevvcI.js → prefigure-1HeQVTyp.js} +1 -1
  75. package/{pretzel-3C2U-3Z2.js → pretzel-D8RXV1sR.js} +4 -4
  76. package/{q-B0j14wnX.js → q-ByXXK_CG.js} +3 -3
  77. package/{ray-DquLwch7.js → ray-CuVGqAIM.js} +5 -5
  78. package/{ref-gb-FQAGZ.js → ref-D9iyvcOu.js} +2 -2
  79. package/{regionBetweenCurveXAxis-BmWzX2yw.js → regionBetweenCurveXAxis-B9SiLisG.js} +5 -5
  80. package/{regionBetweenCurves-UTO3bi4h.js → regionBetweenCurves-20P1BrBh.js} +5 -5
  81. package/{row-CxL5y8rd.js → row-D2zm12Ky.js} +2 -2
  82. package/{rq-DObfWLeh.js → rq-DkSUG5aT.js} +2 -2
  83. package/{rsq-CPquodKd.js → rsq-CVF6fXCo.js} +2 -2
  84. package/{section-DHS5-Mky.js → section-DpKnjoKz.js} +5 -5
  85. package/{sha256-DT5xJ2Hv-8W5OTWey.js → sha256-DT5xJ2Hv-5XfPrC_i.js} +1 -1
  86. package/{sideBySide-BZMviE2e.js → sideBySide-DYSky61U.js} +2 -2
  87. package/{slider-DQ_e-7JO.js → slider-DvIXM3UQ.js} +3 -3
  88. package/{slopeField-DhpVaCAs.js → slopeField-BFGgY0Bd.js} +2 -2
  89. package/{solution-CeOknXdN.js → solution-B_ARlxIE.js} +4 -4
  90. package/{spreadsheet-Bb7QZCwp.js → spreadsheet-D72naLg7.js} +2 -2
  91. package/{sq-DFXnQtlX.js → sq-BymhjcPV.js} +3 -3
  92. package/{subsetOfRealsInput-OMZK5TMU.js → subsetOfRealsInput-CEVFMQ5S.js} +2 -2
  93. package/{summaryStatistics-DL5x6SV9.js → summaryStatistics-BzRFvJjc.js} +2 -2
  94. package/{table-Ch6FGFNm.js → table-DF-BBs2h.js} +2 -2
  95. package/{tabular-i1heii-8.js → tabular-mzUh-ynS.js} +2 -2
  96. package/{tag-BMGntAbf.js → tag-BFEbwmvq.js} +2 -2
  97. package/{text-Dc55QUnq.js → text-Buj_wCBZ.js} +6 -6
  98. package/{textInput-B3xysjq1.js → textInput-CKxCXeX_.js} +6 -6
  99. package/{tooltip-provider-DZ3hRPOU.js → tooltip-provider-C0qKQ8iQ.js} +1 -1
  100. package/{useAnchoredGraphDragHandler-BCAKAf-r.js → useAnchoredGraphDragHandler-D7Q6SVvi.js} +1 -1
  101. package/useDoenetRenderer-DqWxtkjw.js +114 -0
  102. package/{useFieldCurve-hjrRP_ku.js → useFieldCurve-DOAeD_nE.js} +2 -2
  103. package/{useSubmitActionWithDelay-ByB5sjDD.js → useSubmitActionWithDelay-i-9XmBgD.js} +2 -2
  104. package/{vector-OZe-6Ily.js → vector-9_y6eRvD.js} +6 -6
  105. package/{vectorField-D9u-3-c1.js → vectorField-Bqi-bQq-.js} +2 -2
  106. package/{video-B3Ot8JE_.js → video-Dp4_v6Tb.js} +4 -4
  107. package/useDoenetRenderer-D0-8JAxz.js +0 -114
@@ -31812,7 +31812,7 @@ async function cidFromArrayBuffer(data) {
31812
31812
  await crypto.subtle.digest("SHA-256", new Uint8Array());
31813
31813
  digest = (data2) => crypto.subtle.digest("SHA-256", data2);
31814
31814
  } catch (e2) {
31815
- const sha256 = (await import("./sha256-DT5xJ2Hv-8W5OTWey.js").then((n2) => n2.s)).default;
31815
+ const sha256 = (await import("./sha256-DT5xJ2Hv-5XfPrC_i.js").then((n2) => n2.s)).default;
31816
31816
  digest = (data2) => sha256(data2, {
31817
31817
  asBytes: true
31818
31818
  });
@@ -47862,6 +47862,8 @@ function DocViewer({
47862
47862
  const loadedInitialRendererState = useRef(false);
47863
47863
  const coreCreated = useRef(false);
47864
47864
  const coreCreationInProgress = useRef(false);
47865
+ const viewerUnmounted = useRef(false);
47866
+ const bootLadderCoreId = useRef(null);
47865
47867
  const coreId = useRef("");
47866
47868
  const diagnostics2 = useRef([]);
47867
47869
  const rawDiagnostics = useRef([]);
@@ -47969,7 +47971,9 @@ function DocViewer({
47969
47971
  reportGraphElementUp
47970
47972
  };
47971
47973
  useEffect(() => {
47974
+ viewerUnmounted.current = false;
47972
47975
  return () => {
47976
+ viewerUnmounted.current = true;
47973
47977
  teardownCurrentCoreWorker({ graceful: true }).catch((e2) => {
47974
47978
  console.warn("DocViewer: core worker teardown failed", e2);
47975
47979
  });
@@ -48162,7 +48166,7 @@ function DocViewer({
48162
48166
  }
48163
48167
  });
48164
48168
  }, [styleOverrides]);
48165
- async function initializeCoreWorkerForDoc(worker) {
48169
+ async function initializeCoreWorkerForDoc(worker, ownerCoreId = coreId.current) {
48166
48170
  const result2 = await initializeCoreWorker({
48167
48171
  coreWorker: worker,
48168
48172
  doenetML,
@@ -48171,15 +48175,21 @@ function DocViewer({
48171
48175
  docId,
48172
48176
  requestedVariantIndex,
48173
48177
  attemptNumber,
48174
- documentStructureCallback,
48178
+ documentStructureCallback: documentStructureCallback ? (structure) => {
48179
+ if (stillSpeaksForDocument(ownerCoreId)) {
48180
+ documentStructureCallback(structure);
48181
+ }
48182
+ } : void 0,
48175
48183
  fetchExternalDoenetML,
48176
48184
  documentLocale,
48177
48185
  localeResources: availableCatalogs
48178
48186
  });
48179
- setEffectiveDocumentLocale(result2.resolvedDocumentLocale);
48187
+ if (stillSpeaksForDocument(ownerCoreId)) {
48188
+ setEffectiveDocumentLocale(result2.resolvedDocumentLocale);
48189
+ }
48180
48190
  return result2;
48181
48191
  }
48182
- async function reinitializeCoreAndTerminateAnimations() {
48192
+ async function reinitializeCoreAndTerminateAnimations(ownerCoreId = coreId.current) {
48183
48193
  if (coreWorker.current !== null) {
48184
48194
  preventMoreAnimations.current = true;
48185
48195
  await teardownCurrentCoreWorker({ graceful: true });
@@ -48192,7 +48202,7 @@ function DocViewer({
48192
48202
  const remote = attachNewCoreWorker();
48193
48203
  coreCreated.current = false;
48194
48204
  coreCreationInProgress.current = false;
48195
- await initializeCoreWorkerForDoc(remote);
48205
+ await initializeCoreWorkerForDoc(remote, ownerCoreId);
48196
48206
  return remote;
48197
48207
  }
48198
48208
  function callAction({
@@ -48334,7 +48344,7 @@ function DocViewer({
48334
48344
  }
48335
48345
  }
48336
48346
  }
48337
- function initializeRenderers(args) {
48347
+ function initializeRenderers(args, ownerCoreId = coreId.current) {
48338
48348
  if (args.rendererState) {
48339
48349
  if (forceDisable || forceShowCorrectness || forceShowSolution || forceUnsuppressCheckWork) {
48340
48350
  forceRendererState({
@@ -48379,12 +48389,15 @@ function DocViewer({
48379
48389
  for (const rendererClassName of coreInfo.current.rendererTypesInDocument) {
48380
48390
  rendererClassNames.push(rendererClassName);
48381
48391
  rendererLoaders.push(
48382
- () => __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./renderers/GraphFrame.tsx": () => import("./GraphFrame-CJnYmlxB.js"), "./renderers/JSXGraphRenderer.tsx": () => import("./JSXGraphRenderer-CqQeYbb_.js").then((n2) => n2.m), "./renderers/_error.tsx": () => import("./_error-DshBxNw7.js"), "./renderers/alert.tsx": () => import("./alert-boEZiy8P.js"), "./renderers/angle.tsx": () => import("./angle-Cg_cvHt2.js"), "./renderers/answer.tsx": () => import("./answer-Cv8KidCI.js"), "./renderers/asList.tsx": () => import("./asList-BRziaNyA.js"), "./renderers/blockQuote.tsx": () => import("./blockQuote-DHZVW_Gd.js"), "./renderers/boolean.tsx": () => import("./boolean-CD7ZkKG1.js"), "./renderers/booleanInput.tsx": () => import("./booleanInput-B2d95be3.js"), "./renderers/br.tsx": () => import("./br-BySBp0Qm.js"), "./renderers/button.tsx": () => import("./button-i7QU2Gp2.js"), "./renderers/c.tsx": () => import("./c-C6eFHKOm.js"), "./renderers/cell.tsx": () => import("./cell-CuBy_sd-.js"), "./renderers/choiceInput.tsx": () => import("./choiceInput-cCdnPZxl.js"), "./renderers/circle.tsx": () => import("./circle-Cl0ehDpP.js"), "./renderers/cobwebPolyline.tsx": () => import("./cobwebPolyline-CIbCw1DX.js"), "./renderers/codeEditor.tsx": () => import("./codeEditor-CVdj4BCY.js"), "./renderers/containerBlock.tsx": () => import("./containerBlock-DrN10qVb.js"), "./renderers/containerInline.tsx": () => import("./containerInline-BMaCC4K_.js"), "./renderers/curve.tsx": () => import("./curve-D_UKYjPX.js"), "./renderers/ellipsis.tsx": () => import("./ellipsis-CY3IE_8F.js"), "./renderers/em.tsx": () => import("./em-B1X1bCB5.js"), "./renderers/embed.tsx": () => import("./embed-CKDnpG5N.js"), "./renderers/feedback.tsx": () => import("./feedback-COUFZk1c.js"), "./renderers/figure.tsx": () => import("./figure-Blo3AaKP.js"), "./renderers/footnote.tsx": () => import("./footnote-LNP_5Px7.js"), "./renderers/fractionInput.tsx": () => import("./fractionInput-B0vgkmCH.js"), "./renderers/graph.tsx": () => import("./graph-tfQQFRA6.js"), "./renderers/hint.tsx": () => import("./hint-BNFwH9y4.js"), "./renderers/hr.tsx": () => import("./hr-DLtP75RR.js"), "./renderers/image.tsx": () => import("./image-BAVOKRjs.js"), "./renderers/label.tsx": () => import("./label-CcWhR8P3.js"), "./renderers/legend.tsx": () => import("./legend-CTr43fsJ.js"), "./renderers/line.tsx": () => import("./line-Uh10z24B.js"), "./renderers/lineSegment.tsx": () => import("./lineSegment-hVn537jV.js"), "./renderers/list.tsx": () => import("./list-C-YcT9Dk.js"), "./renderers/lq.tsx": () => import("./lq-Cj3uwOLp.js"), "./renderers/lsq.tsx": () => import("./lsq-7QeR5rpb.js"), "./renderers/math.tsx": () => import("./math-DrMdOcrl.js"), "./renderers/mathInput.tsx": () => import("./mathInput-CtURtu72.js"), "./renderers/matrixInput.tsx": () => import("./matrixInput-DgV6Rt8a.js"), "./renderers/mdash.tsx": () => import("./mdash-4WjRv6iT.js"), "./renderers/nbsp.tsx": () => import("./nbsp-yuITh3Y6.js"), "./renderers/ndash.tsx": () => import("./ndash-DkVZ1P1m.js"), "./renderers/number.tsx": () => import("./number-AVe_Yorf.js"), "./renderers/orbitalDiagram.tsx": () => import("./orbitalDiagram-BgRjqqBD.js"), "./renderers/orbitalDiagramInput.tsx": () => import("./orbitalDiagramInput-CbCVpaO2.js"), "./renderers/p.tsx": () => import("./p-B9P3Wh1I.js"), "./renderers/paginatorControls.tsx": () => import("./paginatorControls-CgRMs12_.js"), "./renderers/pegboard.tsx": () => import("./pegboard-DOmqpNmS.js"), "./renderers/point.tsx": () => import("./point-Dek6LcYq.js"), "./renderers/polygon.tsx": () => import("./polygon-CtjOBqjz.js"), "./renderers/polyline.tsx": () => import("./polyline-PBXmF4gv.js"), "./renderers/pre.tsx": () => import("./pre-CwsrcLE-.js"), "./renderers/prefigure.tsx": () => import("./prefigure-BYOevvcI.js"), "./renderers/pretzel.tsx": () => import("./pretzel-3C2U-3Z2.js"), "./renderers/q.tsx": () => import("./q-B0j14wnX.js"), "./renderers/ray.tsx": () => import("./ray-DquLwch7.js"), "./renderers/ref.tsx": () => import("./ref-gb-FQAGZ.js"), "./renderers/regionBetweenCurveXAxis.tsx": () => import("./regionBetweenCurveXAxis-BmWzX2yw.js"), "./renderers/regionBetweenCurves.tsx": () => import("./regionBetweenCurves-UTO3bi4h.js"), "./renderers/row.tsx": () => import("./row-CxL5y8rd.js"), "./renderers/rq.tsx": () => import("./rq-DObfWLeh.js"), "./renderers/rsq.tsx": () => import("./rsq-CPquodKd.js"), "./renderers/section.tsx": () => import("./section-DHS5-Mky.js"), "./renderers/sideBySide.tsx": () => import("./sideBySide-BZMviE2e.js"), "./renderers/slider.tsx": () => import("./slider-DQ_e-7JO.js"), "./renderers/slopeField.tsx": () => import("./slopeField-DhpVaCAs.js"), "./renderers/solution.tsx": () => import("./solution-CeOknXdN.js"), "./renderers/spreadsheet.tsx": () => import("./spreadsheet-Bb7QZCwp.js"), "./renderers/sq.tsx": () => import("./sq-DFXnQtlX.js"), "./renderers/subsetOfRealsInput.tsx": () => import("./subsetOfRealsInput-OMZK5TMU.js"), "./renderers/summaryStatistics.tsx": () => import("./summaryStatistics-DL5x6SV9.js"), "./renderers/table.tsx": () => import("./table-Ch6FGFNm.js"), "./renderers/tabular.tsx": () => import("./tabular-i1heii-8.js"), "./renderers/tag.tsx": () => import("./tag-BMGntAbf.js"), "./renderers/text.tsx": () => import("./text-Dc55QUnq.js"), "./renderers/textInput.tsx": () => import("./textInput-B3xysjq1.js"), "./renderers/vector.tsx": () => import("./vector-OZe-6Ily.js"), "./renderers/vectorField.tsx": () => import("./vectorField-D9u-3-c1.js"), "./renderers/video.tsx": () => import("./video-B3Ot8JE_.js") }), `./renderers/${rendererClassName}.tsx`, 3)
48392
+ () => __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./renderers/GraphFrame.tsx": () => import("./GraphFrame-DYFhUbFq.js"), "./renderers/JSXGraphRenderer.tsx": () => import("./JSXGraphRenderer-CYtq27Rg.js").then((n2) => n2.m), "./renderers/_error.tsx": () => import("./_error-DgmZcnIy.js"), "./renderers/alert.tsx": () => import("./alert-Du0SHsO2.js"), "./renderers/angle.tsx": () => import("./angle-B8aLU_tq.js"), "./renderers/answer.tsx": () => import("./answer-D9O4nx1N.js"), "./renderers/asList.tsx": () => import("./asList-8xrZNcX4.js"), "./renderers/blockQuote.tsx": () => import("./blockQuote-CGPBCSob.js"), "./renderers/boolean.tsx": () => import("./boolean-CVUCiYTF.js"), "./renderers/booleanInput.tsx": () => import("./booleanInput-DylenXFQ.js"), "./renderers/br.tsx": () => import("./br-B1yOnwfq.js"), "./renderers/button.tsx": () => import("./button-DIrhxNM-.js"), "./renderers/c.tsx": () => import("./c-zgo_OQlW.js"), "./renderers/cell.tsx": () => import("./cell-BoEckAA9.js"), "./renderers/choiceInput.tsx": () => import("./choiceInput-B8Wy64nu.js"), "./renderers/circle.tsx": () => import("./circle-Mn_cEAUr.js"), "./renderers/cobwebPolyline.tsx": () => import("./cobwebPolyline-B-DsQ6F7.js"), "./renderers/codeEditor.tsx": () => import("./codeEditor-DONOrg4K.js"), "./renderers/containerBlock.tsx": () => import("./containerBlock-34ay8OVs.js"), "./renderers/containerInline.tsx": () => import("./containerInline-DLl_Wil0.js"), "./renderers/curve.tsx": () => import("./curve-DSAmQKBN.js"), "./renderers/ellipsis.tsx": () => import("./ellipsis-CQDCvqQY.js"), "./renderers/em.tsx": () => import("./em-g6j-S6MK.js"), "./renderers/embed.tsx": () => import("./embed-BvauYkDC.js"), "./renderers/feedback.tsx": () => import("./feedback-C2L7dpAf.js"), "./renderers/figure.tsx": () => import("./figure-Dv4FG8C9.js"), "./renderers/footnote.tsx": () => import("./footnote-dcb4bCes.js"), "./renderers/fractionInput.tsx": () => import("./fractionInput-rOeJ2CGX.js"), "./renderers/graph.tsx": () => import("./graph-BaPxo8Y1.js"), "./renderers/hint.tsx": () => import("./hint-rfaBUgXj.js"), "./renderers/hr.tsx": () => import("./hr-BIzKgl5O.js"), "./renderers/image.tsx": () => import("./image-DSWYAvdw.js"), "./renderers/label.tsx": () => import("./label-BTpICnEk.js"), "./renderers/legend.tsx": () => import("./legend-DFF7JH-M.js"), "./renderers/line.tsx": () => import("./line-jJbGBnMj.js"), "./renderers/lineSegment.tsx": () => import("./lineSegment-G-Rl5xyE.js"), "./renderers/list.tsx": () => import("./list-CECTs7LB.js"), "./renderers/lq.tsx": () => import("./lq-BLomm5Xe.js"), "./renderers/lsq.tsx": () => import("./lsq-CKbD8KCb.js"), "./renderers/math.tsx": () => import("./math-D5UPF1gw.js"), "./renderers/mathInput.tsx": () => import("./mathInput-BYXwpqpv.js"), "./renderers/matrixInput.tsx": () => import("./matrixInput-HSdm1FUG.js"), "./renderers/mdash.tsx": () => import("./mdash-C4CqMwkk.js"), "./renderers/nbsp.tsx": () => import("./nbsp-CsHNdCv7.js"), "./renderers/ndash.tsx": () => import("./ndash-_Y3GA8Km.js"), "./renderers/number.tsx": () => import("./number-8OOLhJnM.js"), "./renderers/orbitalDiagram.tsx": () => import("./orbitalDiagram-DqngPagb.js"), "./renderers/orbitalDiagramInput.tsx": () => import("./orbitalDiagramInput-C_JRrwmg.js"), "./renderers/p.tsx": () => import("./p-KVTTGNUY.js"), "./renderers/paginatorControls.tsx": () => import("./paginatorControls-BcnmiF8z.js"), "./renderers/pegboard.tsx": () => import("./pegboard-C80OFUoo.js"), "./renderers/point.tsx": () => import("./point-CQ1fXFkV.js"), "./renderers/polygon.tsx": () => import("./polygon-CajPfXls.js"), "./renderers/polyline.tsx": () => import("./polyline-dvPND6uf.js"), "./renderers/pre.tsx": () => import("./pre-ByMS-MiF.js"), "./renderers/prefigure.tsx": () => import("./prefigure-1HeQVTyp.js"), "./renderers/pretzel.tsx": () => import("./pretzel-D8RXV1sR.js"), "./renderers/q.tsx": () => import("./q-ByXXK_CG.js"), "./renderers/ray.tsx": () => import("./ray-CuVGqAIM.js"), "./renderers/ref.tsx": () => import("./ref-D9iyvcOu.js"), "./renderers/regionBetweenCurveXAxis.tsx": () => import("./regionBetweenCurveXAxis-B9SiLisG.js"), "./renderers/regionBetweenCurves.tsx": () => import("./regionBetweenCurves-20P1BrBh.js"), "./renderers/row.tsx": () => import("./row-D2zm12Ky.js"), "./renderers/rq.tsx": () => import("./rq-DkSUG5aT.js"), "./renderers/rsq.tsx": () => import("./rsq-CVF6fXCo.js"), "./renderers/section.tsx": () => import("./section-DpKnjoKz.js"), "./renderers/sideBySide.tsx": () => import("./sideBySide-DYSky61U.js"), "./renderers/slider.tsx": () => import("./slider-DvIXM3UQ.js"), "./renderers/slopeField.tsx": () => import("./slopeField-BFGgY0Bd.js"), "./renderers/solution.tsx": () => import("./solution-B_ARlxIE.js"), "./renderers/spreadsheet.tsx": () => import("./spreadsheet-D72naLg7.js"), "./renderers/sq.tsx": () => import("./sq-BymhjcPV.js"), "./renderers/subsetOfRealsInput.tsx": () => import("./subsetOfRealsInput-CEVFMQ5S.js"), "./renderers/summaryStatistics.tsx": () => import("./summaryStatistics-BzRFvJjc.js"), "./renderers/table.tsx": () => import("./table-DF-BBs2h.js"), "./renderers/tabular.tsx": () => import("./tabular-mzUh-ynS.js"), "./renderers/tag.tsx": () => import("./tag-BFEbwmvq.js"), "./renderers/text.tsx": () => import("./text-Buj_wCBZ.js"), "./renderers/textInput.tsx": () => import("./textInput-CKxCXeX_.js"), "./renderers/vector.tsx": () => import("./vector-9_y6eRvD.js"), "./renderers/vectorField.tsx": () => import("./vectorField-Bqi-bQq-.js"), "./renderers/video.tsx": () => import("./video-Dp4_v6Tb.js") }), `./renderers/${rendererClassName}.tsx`, 3)
48383
48393
  );
48384
48394
  }
48385
48395
  const documentComponentInstructions = coreInfo.current.documentToRender;
48386
48396
  renderersLoadComponent(rendererLoaders, rendererClassNames).then(
48387
48397
  ({ rendererClasses: newRendererClasses, failedRenderers }) => {
48398
+ if (!stillSpeaksForDocument(ownerCoreId)) {
48399
+ return;
48400
+ }
48388
48401
  if (failedRenderers.length > 0) {
48389
48402
  errorInitializingRenderers.current = true;
48390
48403
  }
@@ -48501,10 +48514,16 @@ function DocViewer({
48501
48514
  }
48502
48515
  }
48503
48516
  }
48504
- async function loadStateAndInitialize() {
48505
- const coreIdWhenCalled = coreId.current;
48517
+ async function loadStateAndInitialize(coreIdWhenCalled) {
48506
48518
  let loadedState = false;
48507
- cid.current = await cidFromText(doenetML);
48519
+ if (doenetGlobalConfig.__doenetTestCoreInitHook) {
48520
+ await doenetGlobalConfig.__doenetTestCoreInitHook("stateLoad", 0);
48521
+ }
48522
+ const documentCid = await cidFromText(doenetML);
48523
+ if (!stillSpeaksForDocument(coreIdWhenCalled)) {
48524
+ return;
48525
+ }
48526
+ cid.current = documentCid;
48508
48527
  if (flags.allowLocalState) {
48509
48528
  let localInfo;
48510
48529
  try {
@@ -48516,6 +48535,9 @@ function DocViewer({
48516
48535
  }
48517
48536
  } catch (e2) {
48518
48537
  }
48538
+ if (!stillSpeaksForDocument(coreIdWhenCalled)) {
48539
+ return;
48540
+ }
48519
48541
  if (localInfo) {
48520
48542
  const coreState = JSON.parse(
48521
48543
  localInfo.coreState,
@@ -48530,10 +48552,13 @@ function DocViewer({
48530
48552
  serializedComponentsReviver
48531
48553
  );
48532
48554
  loadedInitialRendererState.current = Boolean(rendererState);
48533
- initializeRenderers({
48534
- rendererState,
48535
- coreInfo: coreInfo2
48536
- });
48555
+ initializeRenderers(
48556
+ {
48557
+ rendererState,
48558
+ coreInfo: coreInfo2
48559
+ },
48560
+ coreIdWhenCalled
48561
+ );
48537
48562
  initialCoreData.current = {
48538
48563
  coreState,
48539
48564
  requestedVariant: JSON.parse(
@@ -48559,6 +48584,9 @@ function DocViewer({
48559
48584
  });
48560
48585
  }
48561
48586
  } catch (e2) {
48587
+ if (!stillSpeaksForDocument(coreIdWhenCalled)) {
48588
+ return;
48589
+ }
48562
48590
  setIsInErrorState?.(true);
48563
48591
  let message = "";
48564
48592
  if ("message" in e2) {
@@ -48569,7 +48597,7 @@ function DocViewer({
48569
48597
  }
48570
48598
  }
48571
48599
  }
48572
- if (coreIdWhenCalled === coreId.current) {
48600
+ if (stillSpeaksForDocument(coreIdWhenCalled)) {
48573
48601
  if (render) {
48574
48602
  startCoreSafely();
48575
48603
  } else {
@@ -48631,12 +48659,12 @@ function DocViewer({
48631
48659
  );
48632
48660
  setHasInitialError(true);
48633
48661
  }
48634
- async function handshakeCore(attempt) {
48662
+ async function handshakeCore(attempt, ownerCoreId) {
48635
48663
  let thisCoreWorker = coreWorker.current;
48636
48664
  if (attempt > 0 || coreCreated.current || !thisCoreWorker) {
48637
- thisCoreWorker = await reinitializeCoreAndTerminateAnimations();
48665
+ thisCoreWorker = await reinitializeCoreAndTerminateAnimations(ownerCoreId);
48638
48666
  } else {
48639
- await initializeCoreWorkerForDoc(thisCoreWorker);
48667
+ await initializeCoreWorkerForDoc(thisCoreWorker, ownerCoreId);
48640
48668
  }
48641
48669
  if (doenetGlobalConfig.__doenetTestCoreInitHook) {
48642
48670
  await doenetGlobalConfig.__doenetTestCoreInitHook(
@@ -48646,8 +48674,19 @@ function DocViewer({
48646
48674
  }
48647
48675
  return thisCoreWorker;
48648
48676
  }
48649
- async function startCore() {
48677
+ function stillSpeaksForDocument(launchedFor) {
48678
+ return !viewerUnmounted.current && coreId.current === launchedFor;
48679
+ }
48680
+ async function startCore(coreIdWhenCalled) {
48650
48681
  setHasInitialError(false);
48682
+ function bootAbandoned() {
48683
+ return !stillSpeaksForDocument(coreIdWhenCalled);
48684
+ }
48685
+ async function standDown() {
48686
+ if (viewerUnmounted.current) {
48687
+ await teardownCurrentCoreWorker({ graceful: true });
48688
+ }
48689
+ }
48651
48690
  const maxAttempts = Math.max(
48652
48691
  1,
48653
48692
  doenetGlobalConfig.coreBootMaxAttempts ?? DEFAULT_CORE_BOOT_MAX_ATTEMPTS
@@ -48656,15 +48695,27 @@ function DocViewer({
48656
48695
  let thisCoreWorker = null;
48657
48696
  let handshakeSucceeded = false;
48658
48697
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
48698
+ if (bootAbandoned()) {
48699
+ await standDown();
48700
+ return;
48701
+ }
48659
48702
  try {
48660
48703
  thisCoreWorker = await withTimeout(
48661
- () => handshakeCore(attempt),
48704
+ () => handshakeCore(attempt, coreIdWhenCalled),
48662
48705
  handshakeWatchdogMs,
48663
48706
  `core worker handshake (attempt ${attempt + 1}/${maxAttempts})`
48664
48707
  );
48665
48708
  handshakeSucceeded = true;
48666
48709
  break;
48667
48710
  } catch (err) {
48711
+ if (bootAbandoned()) {
48712
+ console.warn(
48713
+ "DocViewer: abandoning a superseded core worker handshake",
48714
+ err
48715
+ );
48716
+ await standDown();
48717
+ return;
48718
+ }
48668
48719
  console.warn(
48669
48720
  `DocViewer: core worker handshake attempt ${attempt + 1} of ${maxAttempts} failed` + (attempt + 1 < maxAttempts ? "; retrying with a fresh worker." : "; giving up."),
48670
48721
  err
@@ -48679,12 +48730,20 @@ function DocViewer({
48679
48730
  }
48680
48731
  }
48681
48732
  }
48733
+ if (bootAbandoned()) {
48734
+ await standDown();
48735
+ return;
48736
+ }
48682
48737
  if (!handshakeSucceeded || thisCoreWorker === null) {
48683
48738
  failCoreStart();
48684
48739
  return;
48685
48740
  }
48686
48741
  onActionCallbacks.current.clear();
48687
48742
  coreCreationInProgress.current = true;
48743
+ const speakingFor = (callback) => {
48744
+ return (...args) => stillSpeaksForDocument(coreIdWhenCalled) ? callback(...args) : void 0;
48745
+ };
48746
+ const requestSolutionViewIfCurrent = (componentIdx) => stillSpeaksForDocument(coreIdWhenCalled) ? requestSolutionView(componentIdx) : Promise.resolve({ allowView: false });
48688
48747
  let dastResult;
48689
48748
  try {
48690
48749
  if (doenetGlobalConfig.__doenetTestCoreInitHook) {
@@ -48707,23 +48766,34 @@ function DocViewer({
48707
48766
  ) : void 0,
48708
48767
  initializeCounters: initializeCounters.current
48709
48768
  },
48710
- proxy(updateRenderers),
48711
- proxy(reportScoreAndStateCallback),
48769
+ proxy(speakingFor(updateRenderers)),
48770
+ proxy(speakingFor(reportScoreAndStateCallback)),
48712
48771
  proxy(requestAnimationFrame2),
48713
48772
  proxy(cancelAnimationFrame2),
48714
- proxy(copyToClipboard),
48715
- proxy(sendEvent),
48716
- proxy(requestSolutionView)
48773
+ proxy(speakingFor(copyToClipboard)),
48774
+ proxy(speakingFor(sendEvent)),
48775
+ proxy(requestSolutionViewIfCurrent)
48717
48776
  );
48718
48777
  } catch (err) {
48778
+ if (bootAbandoned()) {
48779
+ await standDown();
48780
+ return;
48781
+ }
48719
48782
  console.warn("DocViewer: generateJavascriptDast failed", err);
48720
48783
  failCoreStart();
48721
48784
  return;
48722
48785
  }
48786
+ if (bootAbandoned()) {
48787
+ await standDown();
48788
+ return;
48789
+ }
48723
48790
  if (dastResult.success) {
48724
48791
  if (coreInfo.current && JSON.stringify(coreInfo.current) === JSON.stringify(dastResult.coreInfo) && !errorInitializingRenderers.current && !errorInsideRenderers.current) ;
48725
48792
  else {
48726
- initializeRenderers({ coreInfo: dastResult.coreInfo });
48793
+ initializeRenderers(
48794
+ { coreInfo: dastResult.coreInfo },
48795
+ coreIdWhenCalled
48796
+ );
48727
48797
  if (errorInsideRenderers.current) {
48728
48798
  setIgnoreRendererError(true);
48729
48799
  setIsInErrorState?.(false);
@@ -48755,11 +48825,28 @@ function DocViewer({
48755
48825
  initializedCallback?.({ activityId, docId });
48756
48826
  }
48757
48827
  function startCoreSafely() {
48758
- startCore().catch((e2) => {
48828
+ const launchedFor = coreId.current;
48829
+ if (bootLadderCoreId.current === launchedFor) {
48830
+ return;
48831
+ }
48832
+ bootLadderCoreId.current = launchedFor;
48833
+ runBootLadder(launchedFor).catch((e2) => {
48759
48834
  console.warn("DocViewer: startCore failed unexpectedly", e2);
48835
+ if (!stillSpeaksForDocument(launchedFor) || coreCreated.current) {
48836
+ return;
48837
+ }
48760
48838
  failCoreStart();
48761
48839
  });
48762
48840
  }
48841
+ async function runBootLadder(launchedFor) {
48842
+ try {
48843
+ await startCore(launchedFor);
48844
+ } finally {
48845
+ if (bootLadderCoreId.current === launchedFor) {
48846
+ bootLadderCoreId.current = null;
48847
+ }
48848
+ }
48849
+ }
48763
48850
  function requestAnimationFrame2({
48764
48851
  action,
48765
48852
  actionArgs,
@@ -48937,9 +49024,12 @@ function DocViewer({
48937
49024
  loadedInitialRendererState.current = false;
48938
49025
  positionByDomId.current.clear();
48939
49026
  setStage("wait");
48940
- loadStateAndInitialize().catch((e2) => {
49027
+ const loadingFor = coreId.current;
49028
+ loadStateAndInitialize(loadingFor).catch((e2) => {
48941
49029
  console.warn("DocViewer: loadStateAndInitialize failed", e2);
48942
- failCoreStart();
49030
+ if (stillSpeaksForDocument(loadingFor)) {
49031
+ failCoreStart();
49032
+ }
48943
49033
  });
48944
49034
  return null;
48945
49035
  }
@@ -188929,12 +189019,12 @@ function EditorFooter({
188929
189019
  className: "doenetml-version",
188930
189020
  title: t4(
188931
189021
  "editor-version-title",
188932
- { version: "0.7.24-dev.484" },
188933
- `DoenetML version ${"0.7.24-dev.484"}`
189022
+ { version: "0.7.24-dev.485" },
189023
+ `DoenetML version ${"0.7.24-dev.485"}`
188934
189024
  ),
188935
189025
  children: [
188936
189026
  "v",
188937
- "0.7.24-dev.484"
189027
+ "0.7.24-dev.485"
188938
189028
  ]
188939
189029
  }
188940
189030
  ),
@@ -1,5 +1,5 @@
1
- import { n as doenetGlobalConfig } from "./doenetml-aUmY9leg.js";
2
- import { C, D, a, c, b, d, f, g, e, h, i, m, j, r, s, k, l } from "./doenetml-aUmY9leg.js";
1
+ import { n as doenetGlobalConfig } from "./doenetml-DciZAG_S.js";
2
+ import { C, D, a, c, b, d, f, g, e, h, i, m, j, r, s, k, l } from "./doenetml-DciZAG_S.js";
3
3
  const workerPath = "./doenetml-worker/index.js";
4
4
  function resolveWorkerUrl() {
5
5
  try {