@doenet/doenetml-iframe 0.7.20-dev.310 → 0.7.20-dev.312

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 (3) hide show
  1. package/index.js +346 -233
  2. package/index.js.map +1 -1
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as React__default from "react";
2
2
  import React__default__default, { createContext, useMemo, useCallback, useLayoutEffect, useEffect, useRef, useState, useContext, isValidElement } from "react";
3
- import { MathJaxContext, MathJax } from "better-react-mathjax";
3
+ import { MathJaxBaseContext, MathJax } from "better-react-mathjax";
4
4
  import { createRoot } from "react-dom/client";
5
5
  import { createPortal } from "react-dom";
6
6
  const proxyMarker = /* @__PURE__ */ Symbol("Comlink.proxy");
@@ -24971,20 +24971,20 @@ function getBeginEndFromDoenetMLRange(position2) {
24971
24971
  }
24972
24972
  function findAllNewlines(inText) {
24973
24973
  let allNewlines = [];
24974
- for (let i2 = 0; i2 < inText.length; i2++) {
24975
- if (inText[i2] == "\n") {
24976
- allNewlines.push(i2 + 1);
24974
+ for (let i3 = 0; i3 < inText.length; i3++) {
24975
+ if (inText[i3] == "\n") {
24976
+ allNewlines.push(i3 + 1);
24977
24977
  }
24978
24978
  }
24979
24979
  return allNewlines;
24980
24980
  }
24981
24981
  function findLineCharInfo(pos, allNewlines) {
24982
- for (let i2 = 0; i2 < allNewlines.length; i2++) {
24983
- if (pos <= allNewlines[i2]) {
24984
- if (i2 === 0) {
24982
+ for (let i3 = 0; i3 < allNewlines.length; i3++) {
24983
+ if (pos <= allNewlines[i3]) {
24984
+ if (i3 === 0) {
24985
24985
  return { line: 1, character: pos };
24986
24986
  } else {
24987
- return { line: i2 + 1, character: pos - allNewlines[i2 - 1] };
24987
+ return { line: i3 + 1, character: pos - allNewlines[i3 - 1] };
24988
24988
  }
24989
24989
  }
24990
24990
  }
@@ -25051,9 +25051,9 @@ function requireBase32$1() {
25051
25051
  throw err;
25052
25052
  };
25053
25053
  var toUtf8String = function(bytes) {
25054
- var str = "", length = bytes.length, i2 = 0, followingChars = 0, b2, c2;
25055
- while (i2 < length) {
25056
- b2 = bytes[i2++];
25054
+ var str = "", length = bytes.length, i3 = 0, followingChars = 0, b2, c2;
25055
+ while (i3 < length) {
25056
+ b2 = bytes[i3++];
25057
25057
  if (b2 <= 127) {
25058
25058
  str += String.fromCharCode(b2);
25059
25059
  continue;
@@ -25067,21 +25067,21 @@ function requireBase32$1() {
25067
25067
  c2 = b2 & 7;
25068
25068
  followingChars = 3;
25069
25069
  } else {
25070
- throwInvalidUtf8(i2, str);
25070
+ throwInvalidUtf8(i3, str);
25071
25071
  }
25072
25072
  for (var j2 = 0; j2 < followingChars; ++j2) {
25073
- b2 = bytes[i2++];
25073
+ b2 = bytes[i3++];
25074
25074
  if (b2 < 128 || b2 > 191) {
25075
- throwInvalidUtf8(i2, str);
25075
+ throwInvalidUtf8(i3, str);
25076
25076
  }
25077
25077
  c2 <<= 6;
25078
25078
  c2 += b2 & 63;
25079
25079
  }
25080
25080
  if (c2 >= 55296 && c2 <= 57343) {
25081
- throwInvalidUtf8(i2, str);
25081
+ throwInvalidUtf8(i3, str);
25082
25082
  }
25083
25083
  if (c2 > 1114111) {
25084
- throwInvalidUtf8(i2, str);
25084
+ throwInvalidUtf8(i3, str);
25085
25085
  }
25086
25086
  if (c2 <= 65535) {
25087
25087
  str += String.fromCharCode(c2);
@@ -25101,15 +25101,15 @@ function requireBase32$1() {
25101
25101
  }
25102
25102
  base32Str = base32Str.replace(/=/g, "");
25103
25103
  var v1, v2, v3, v4, v5, v6, v7, v8, bytes = [], index2 = 0, length = base32Str.length;
25104
- for (var i2 = 0, count = length >> 3 << 3; i2 < count; ) {
25105
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25106
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25107
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25108
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25109
- v5 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25110
- v6 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25111
- v7 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25112
- v8 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25104
+ for (var i3 = 0, count = length >> 3 << 3; i3 < count; ) {
25105
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25106
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25107
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25108
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25109
+ v5 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25110
+ v6 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25111
+ v7 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25112
+ v8 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25113
25113
  bytes[index2++] = (v1 << 3 | v2 >>> 2) & 255;
25114
25114
  bytes[index2++] = (v2 << 6 | v3 << 1 | v4 >>> 4) & 255;
25115
25115
  bytes[index2++] = (v4 << 4 | v5 >>> 1) & 255;
@@ -25118,33 +25118,33 @@ function requireBase32$1() {
25118
25118
  }
25119
25119
  var remain = length - count;
25120
25120
  if (remain === 2) {
25121
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25122
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25121
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25122
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25123
25123
  bytes[index2++] = (v1 << 3 | v2 >>> 2) & 255;
25124
25124
  } else if (remain === 4) {
25125
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25126
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25127
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25128
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25125
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25126
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25127
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25128
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25129
25129
  bytes[index2++] = (v1 << 3 | v2 >>> 2) & 255;
25130
25130
  bytes[index2++] = (v2 << 6 | v3 << 1 | v4 >>> 4) & 255;
25131
25131
  } else if (remain === 5) {
25132
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25133
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25134
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25135
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25136
- v5 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25132
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25133
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25134
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25135
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25136
+ v5 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25137
25137
  bytes[index2++] = (v1 << 3 | v2 >>> 2) & 255;
25138
25138
  bytes[index2++] = (v2 << 6 | v3 << 1 | v4 >>> 4) & 255;
25139
25139
  bytes[index2++] = (v4 << 4 | v5 >>> 1) & 255;
25140
25140
  } else if (remain === 7) {
25141
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25142
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25143
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25144
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25145
- v5 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25146
- v6 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25147
- v7 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25141
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25142
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25143
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25144
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25145
+ v5 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25146
+ v6 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25147
+ v7 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25148
25148
  bytes[index2++] = (v1 << 3 | v2 >>> 2) & 255;
25149
25149
  bytes[index2++] = (v2 << 6 | v3 << 1 | v4 >>> 4) & 255;
25150
25150
  bytes[index2++] = (v4 << 4 | v5 >>> 1) & 255;
@@ -25154,38 +25154,38 @@ function requireBase32$1() {
25154
25154
  };
25155
25155
  var encodeAscii = function(str) {
25156
25156
  var v1, v2, v3, v4, v5, base32Str = "", length = str.length;
25157
- for (var i2 = 0, count = parseInt(length / 5) * 5; i2 < count; ) {
25158
- v1 = str.charCodeAt(i2++);
25159
- v2 = str.charCodeAt(i2++);
25160
- v3 = str.charCodeAt(i2++);
25161
- v4 = str.charCodeAt(i2++);
25162
- v5 = str.charCodeAt(i2++);
25157
+ for (var i3 = 0, count = parseInt(length / 5) * 5; i3 < count; ) {
25158
+ v1 = str.charCodeAt(i3++);
25159
+ v2 = str.charCodeAt(i3++);
25160
+ v3 = str.charCodeAt(i3++);
25161
+ v4 = str.charCodeAt(i3++);
25162
+ v5 = str.charCodeAt(i3++);
25163
25163
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[(v3 << 1 | v4 >>> 7) & 31] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[(v4 << 3 | v5 >>> 5) & 31] + BASE32_ENCODE_CHAR[v5 & 31];
25164
25164
  }
25165
25165
  var remain = length - count;
25166
25166
  if (remain === 1) {
25167
- v1 = str.charCodeAt(i2);
25167
+ v1 = str.charCodeAt(i3);
25168
25168
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[v1 << 2 & 31] + "======";
25169
25169
  } else if (remain === 2) {
25170
- v1 = str.charCodeAt(i2++);
25171
- v2 = str.charCodeAt(i2);
25170
+ v1 = str.charCodeAt(i3++);
25171
+ v2 = str.charCodeAt(i3);
25172
25172
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[v2 << 4 & 31] + "====";
25173
25173
  } else if (remain === 3) {
25174
- v1 = str.charCodeAt(i2++);
25175
- v2 = str.charCodeAt(i2++);
25176
- v3 = str.charCodeAt(i2);
25174
+ v1 = str.charCodeAt(i3++);
25175
+ v2 = str.charCodeAt(i3++);
25176
+ v3 = str.charCodeAt(i3);
25177
25177
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[v3 << 1 & 31] + "===";
25178
25178
  } else if (remain === 4) {
25179
- v1 = str.charCodeAt(i2++);
25180
- v2 = str.charCodeAt(i2++);
25181
- v3 = str.charCodeAt(i2++);
25182
- v4 = str.charCodeAt(i2);
25179
+ v1 = str.charCodeAt(i3++);
25180
+ v2 = str.charCodeAt(i3++);
25181
+ v3 = str.charCodeAt(i3++);
25182
+ v4 = str.charCodeAt(i3);
25183
25183
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[(v3 << 1 | v4 >>> 7) & 31] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[v4 << 3 & 31] + "=";
25184
25184
  }
25185
25185
  return base32Str;
25186
25186
  };
25187
25187
  var encodeUtf8 = function(str) {
25188
- var v1, v2, v3, v4, v5, code, end = false, base32Str = "", index2 = 0, i2, start = 0, length = str.length;
25188
+ var v1, v2, v3, v4, v5, code, end = false, base32Str = "", index2 = 0, i3, start = 0, length = str.length;
25189
25189
  if (str === "") {
25190
25190
  return base32Str;
25191
25191
  }
@@ -25193,45 +25193,45 @@ function requireBase32$1() {
25193
25193
  blocks[0] = blocks[5];
25194
25194
  blocks[1] = blocks[6];
25195
25195
  blocks[2] = blocks[7];
25196
- for (i2 = start; index2 < length && i2 < 5; ++index2) {
25196
+ for (i3 = start; index2 < length && i3 < 5; ++index2) {
25197
25197
  code = str.charCodeAt(index2);
25198
25198
  if (code < 128) {
25199
- blocks[i2++] = code;
25199
+ blocks[i3++] = code;
25200
25200
  } else if (code < 2048) {
25201
- blocks[i2++] = 192 | code >> 6;
25202
- blocks[i2++] = 128 | code & 63;
25201
+ blocks[i3++] = 192 | code >> 6;
25202
+ blocks[i3++] = 128 | code & 63;
25203
25203
  } else if (code < 55296 || code >= 57344) {
25204
- blocks[i2++] = 224 | code >> 12;
25205
- blocks[i2++] = 128 | code >> 6 & 63;
25206
- blocks[i2++] = 128 | code & 63;
25204
+ blocks[i3++] = 224 | code >> 12;
25205
+ blocks[i3++] = 128 | code >> 6 & 63;
25206
+ blocks[i3++] = 128 | code & 63;
25207
25207
  } else {
25208
25208
  code = 65536 + ((code & 1023) << 10 | str.charCodeAt(++index2) & 1023);
25209
- blocks[i2++] = 240 | code >> 18;
25210
- blocks[i2++] = 128 | code >> 12 & 63;
25211
- blocks[i2++] = 128 | code >> 6 & 63;
25212
- blocks[i2++] = 128 | code & 63;
25209
+ blocks[i3++] = 240 | code >> 18;
25210
+ blocks[i3++] = 128 | code >> 12 & 63;
25211
+ blocks[i3++] = 128 | code >> 6 & 63;
25212
+ blocks[i3++] = 128 | code & 63;
25213
25213
  }
25214
25214
  }
25215
- start = i2 - 5;
25215
+ start = i3 - 5;
25216
25216
  if (index2 === length) {
25217
25217
  ++index2;
25218
25218
  }
25219
- if (index2 > length && i2 < 6) {
25219
+ if (index2 > length && i3 < 6) {
25220
25220
  end = true;
25221
25221
  }
25222
25222
  v1 = blocks[0];
25223
- if (i2 > 4) {
25223
+ if (i3 > 4) {
25224
25224
  v2 = blocks[1];
25225
25225
  v3 = blocks[2];
25226
25226
  v4 = blocks[3];
25227
25227
  v5 = blocks[4];
25228
25228
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[(v3 << 1 | v4 >>> 7) & 31] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[(v4 << 3 | v5 >>> 5) & 31] + BASE32_ENCODE_CHAR[v5 & 31];
25229
- } else if (i2 === 1) {
25229
+ } else if (i3 === 1) {
25230
25230
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[v1 << 2 & 31] + "======";
25231
- } else if (i2 === 2) {
25231
+ } else if (i3 === 2) {
25232
25232
  v2 = blocks[1];
25233
25233
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[v2 << 4 & 31] + "====";
25234
- } else if (i2 === 3) {
25234
+ } else if (i3 === 3) {
25235
25235
  v2 = blocks[1];
25236
25236
  v3 = blocks[2];
25237
25237
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[v3 << 1 & 31] + "===";
@@ -25246,32 +25246,32 @@ function requireBase32$1() {
25246
25246
  };
25247
25247
  var encodeBytes = function(bytes) {
25248
25248
  var v1, v2, v3, v4, v5, base32Str = "", length = bytes.length;
25249
- for (var i2 = 0, count = parseInt(length / 5) * 5; i2 < count; ) {
25250
- v1 = bytes[i2++];
25251
- v2 = bytes[i2++];
25252
- v3 = bytes[i2++];
25253
- v4 = bytes[i2++];
25254
- v5 = bytes[i2++];
25249
+ for (var i3 = 0, count = parseInt(length / 5) * 5; i3 < count; ) {
25250
+ v1 = bytes[i3++];
25251
+ v2 = bytes[i3++];
25252
+ v3 = bytes[i3++];
25253
+ v4 = bytes[i3++];
25254
+ v5 = bytes[i3++];
25255
25255
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[(v3 << 1 | v4 >>> 7) & 31] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[(v4 << 3 | v5 >>> 5) & 31] + BASE32_ENCODE_CHAR[v5 & 31];
25256
25256
  }
25257
25257
  var remain = length - count;
25258
25258
  if (remain === 1) {
25259
- v1 = bytes[i2];
25259
+ v1 = bytes[i3];
25260
25260
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[v1 << 2 & 31] + "======";
25261
25261
  } else if (remain === 2) {
25262
- v1 = bytes[i2++];
25263
- v2 = bytes[i2];
25262
+ v1 = bytes[i3++];
25263
+ v2 = bytes[i3];
25264
25264
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[v2 << 4 & 31] + "====";
25265
25265
  } else if (remain === 3) {
25266
- v1 = bytes[i2++];
25267
- v2 = bytes[i2++];
25268
- v3 = bytes[i2];
25266
+ v1 = bytes[i3++];
25267
+ v2 = bytes[i3++];
25268
+ v3 = bytes[i3];
25269
25269
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[v3 << 1 & 31] + "===";
25270
25270
  } else if (remain === 4) {
25271
- v1 = bytes[i2++];
25272
- v2 = bytes[i2++];
25273
- v3 = bytes[i2++];
25274
- v4 = bytes[i2];
25271
+ v1 = bytes[i3++];
25272
+ v2 = bytes[i3++];
25273
+ v3 = bytes[i3++];
25274
+ v4 = bytes[i3];
25275
25275
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[(v3 << 1 | v4 >>> 7) & 31] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[v4 << 3 & 31] + "=";
25276
25276
  }
25277
25277
  return base32Str;
@@ -25302,43 +25302,43 @@ function requireBase32$1() {
25302
25302
  if (length === -1) {
25303
25303
  length = base32Str.length;
25304
25304
  }
25305
- for (var i2 = 0, count = length >> 3 << 3; i2 < count; ) {
25306
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25307
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25308
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25309
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25310
- v5 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25311
- v6 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25312
- v7 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25313
- v8 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25305
+ for (var i3 = 0, count = length >> 3 << 3; i3 < count; ) {
25306
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25307
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25308
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25309
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25310
+ v5 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25311
+ v6 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25312
+ v7 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25313
+ v8 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25314
25314
  str += String.fromCharCode((v1 << 3 | v2 >>> 2) & 255) + String.fromCharCode((v2 << 6 | v3 << 1 | v4 >>> 4) & 255) + String.fromCharCode((v4 << 4 | v5 >>> 1) & 255) + String.fromCharCode((v5 << 7 | v6 << 2 | v7 >>> 3) & 255) + String.fromCharCode((v7 << 5 | v8) & 255);
25315
25315
  }
25316
25316
  var remain = length - count;
25317
25317
  if (remain === 2) {
25318
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25319
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25318
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25319
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25320
25320
  str += String.fromCharCode((v1 << 3 | v2 >>> 2) & 255);
25321
25321
  } else if (remain === 4) {
25322
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25323
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25324
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25325
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25322
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25323
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25324
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25325
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25326
25326
  str += String.fromCharCode((v1 << 3 | v2 >>> 2) & 255) + String.fromCharCode((v2 << 6 | v3 << 1 | v4 >>> 4) & 255);
25327
25327
  } else if (remain === 5) {
25328
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25329
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25330
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25331
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25332
- v5 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25328
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25329
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25330
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25331
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25332
+ v5 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25333
25333
  str += String.fromCharCode((v1 << 3 | v2 >>> 2) & 255) + String.fromCharCode((v2 << 6 | v3 << 1 | v4 >>> 4) & 255) + String.fromCharCode((v4 << 4 | v5 >>> 1) & 255);
25334
25334
  } else if (remain === 7) {
25335
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25336
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25337
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25338
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25339
- v5 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25340
- v6 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25341
- v7 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
25335
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25336
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25337
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25338
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25339
+ v5 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25340
+ v6 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25341
+ v7 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
25342
25342
  str += String.fromCharCode((v1 << 3 | v2 >>> 2) & 255) + String.fromCharCode((v2 << 6 | v3 << 1 | v4 >>> 4) & 255) + String.fromCharCode((v4 << 4 | v5 >>> 1) & 255) + String.fromCharCode((v5 << 7 | v6 << 2 | v7 >>> 3) & 255);
25343
25343
  }
25344
25344
  return str;
@@ -37675,6 +37675,119 @@ function KeyboardTray({
37675
37675
  document.body
37676
37676
  );
37677
37677
  }
37678
+ const DEFAULT_MATHJAX_SRC = "https://cdn.jsdelivr.net/npm/mathjax@4.1.3/tex-mml-chtml.js";
37679
+ const GLOBAL_PROMISE_KEY = "__doenetMathJaxPromise";
37680
+ const DOENET_MATHJAX_SCRIPT_ATTR = "data-doenet-mathjax";
37681
+ const MATHJAX_SRC_PATTERN = /mathjax|tex-(chtml|mml|svg)|mml-chtml/i;
37682
+ const DEFAULT_TIMEOUT_MS = 3e4;
37683
+ function isMathJaxEngine(candidate) {
37684
+ if (!candidate || typeof candidate !== "object") {
37685
+ return false;
37686
+ }
37687
+ const startup = candidate.startup;
37688
+ return !!startup && typeof startup === "object" && typeof startup.promise?.then === "function";
37689
+ }
37690
+ function findMathJaxScript() {
37691
+ const scripts = document.querySelectorAll("script[src]");
37692
+ for (const script of scripts) {
37693
+ if (script.hasAttribute(DOENET_MATHJAX_SCRIPT_ATTR)) {
37694
+ continue;
37695
+ }
37696
+ if (MATHJAX_SRC_PATTERN.test(script.src)) {
37697
+ return script;
37698
+ }
37699
+ }
37700
+ return null;
37701
+ }
37702
+ function waitForExistingMathJax(timeoutMs) {
37703
+ return new Promise((resolve, reject2) => {
37704
+ const deadline = Date.now() + timeoutMs;
37705
+ function poll() {
37706
+ const mathJax = window.MathJax;
37707
+ if (isMathJaxEngine(mathJax)) {
37708
+ resolve(mathJax);
37709
+ return;
37710
+ }
37711
+ if (Date.now() > deadline) {
37712
+ const message = "DoenetViewer: timed out waiting for a host-provided MathJax. Ensure the page loads MathJax, or unset `useExistingMathJax`.";
37713
+ console.warn(message);
37714
+ reject2(new Error(message));
37715
+ return;
37716
+ }
37717
+ window.setTimeout(poll, 50);
37718
+ }
37719
+ poll();
37720
+ });
37721
+ }
37722
+ function injectMathJax(src, config2) {
37723
+ return new Promise((resolve, reject2) => {
37724
+ if (config2 && window.MathJax == null) {
37725
+ window.MathJax = config2;
37726
+ }
37727
+ const script = document.createElement("script");
37728
+ script.type = "text/javascript";
37729
+ script.src = src;
37730
+ script.async = true;
37731
+ script.setAttribute(DOENET_MATHJAX_SCRIPT_ATTR, "true");
37732
+ script.addEventListener("load", () => {
37733
+ resolve(window.MathJax);
37734
+ });
37735
+ script.addEventListener("error", () => {
37736
+ reject2(
37737
+ new Error(`DoenetViewer: failed to load MathJax from ${src}`)
37738
+ );
37739
+ });
37740
+ document.head.appendChild(script);
37741
+ });
37742
+ }
37743
+ function createMathJaxPromise(options) {
37744
+ const {
37745
+ config: config2,
37746
+ src = DEFAULT_MATHJAX_SRC,
37747
+ useExistingMathJax = false,
37748
+ timeoutMs = DEFAULT_TIMEOUT_MS
37749
+ } = options;
37750
+ if (isMathJaxEngine(window.MathJax)) {
37751
+ return Promise.resolve(window.MathJax);
37752
+ }
37753
+ if (useExistingMathJax || findMathJaxScript()) {
37754
+ return waitForExistingMathJax(timeoutMs);
37755
+ }
37756
+ return injectMathJax(src, config2);
37757
+ }
37758
+ function loadMathJax(options = {}) {
37759
+ if (typeof window === "undefined") {
37760
+ return Promise.reject(
37761
+ new Error("MathJax can only be loaded in a browser environment")
37762
+ );
37763
+ }
37764
+ const cached = window[GLOBAL_PROMISE_KEY];
37765
+ if (cached) {
37766
+ return cached;
37767
+ }
37768
+ const promise = createMathJaxPromise(options);
37769
+ window[GLOBAL_PROMISE_KEY] = promise;
37770
+ return promise;
37771
+ }
37772
+ function MathJaxContext({
37773
+ config: config2,
37774
+ src,
37775
+ useExistingMathJax,
37776
+ timeoutMs,
37777
+ version: version2 = 4,
37778
+ children
37779
+ }) {
37780
+ const value = useMemo(() => {
37781
+ const promise = loadMathJax({
37782
+ config: config2,
37783
+ src,
37784
+ useExistingMathJax,
37785
+ timeoutMs
37786
+ });
37787
+ return { version: version2, promise };
37788
+ }, [config2, src, useExistingMathJax, timeoutMs, version2]);
37789
+ return /* @__PURE__ */ React__default__default.createElement(MathJaxBaseContext.Provider, { value }, children);
37790
+ }
37678
37791
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
37679
37792
  function getDefaultExportFromCjs(x2) {
37680
37793
  return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
@@ -62229,9 +62342,9 @@ function requireBase32() {
62229
62342
  throw err;
62230
62343
  };
62231
62344
  var toUtf8String = function(bytes) {
62232
- var str = "", length = bytes.length, i2 = 0, followingChars = 0, b2, c2;
62233
- while (i2 < length) {
62234
- b2 = bytes[i2++];
62345
+ var str = "", length = bytes.length, i3 = 0, followingChars = 0, b2, c2;
62346
+ while (i3 < length) {
62347
+ b2 = bytes[i3++];
62235
62348
  if (b2 <= 127) {
62236
62349
  str += String.fromCharCode(b2);
62237
62350
  continue;
@@ -62245,21 +62358,21 @@ function requireBase32() {
62245
62358
  c2 = b2 & 7;
62246
62359
  followingChars = 3;
62247
62360
  } else {
62248
- throwInvalidUtf8(i2, str);
62361
+ throwInvalidUtf8(i3, str);
62249
62362
  }
62250
62363
  for (var j2 = 0; j2 < followingChars; ++j2) {
62251
- b2 = bytes[i2++];
62364
+ b2 = bytes[i3++];
62252
62365
  if (b2 < 128 || b2 > 191) {
62253
- throwInvalidUtf8(i2, str);
62366
+ throwInvalidUtf8(i3, str);
62254
62367
  }
62255
62368
  c2 <<= 6;
62256
62369
  c2 += b2 & 63;
62257
62370
  }
62258
62371
  if (c2 >= 55296 && c2 <= 57343) {
62259
- throwInvalidUtf8(i2, str);
62372
+ throwInvalidUtf8(i3, str);
62260
62373
  }
62261
62374
  if (c2 > 1114111) {
62262
- throwInvalidUtf8(i2, str);
62375
+ throwInvalidUtf8(i3, str);
62263
62376
  }
62264
62377
  if (c2 <= 65535) {
62265
62378
  str += String.fromCharCode(c2);
@@ -62279,15 +62392,15 @@ function requireBase32() {
62279
62392
  }
62280
62393
  base32Str = base32Str.replace(/=/g, "");
62281
62394
  var v1, v2, v3, v4, v5, v6, v7, v8, bytes = [], index2 = 0, length = base32Str.length;
62282
- for (var i2 = 0, count = length >> 3 << 3; i2 < count; ) {
62283
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62284
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62285
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62286
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62287
- v5 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62288
- v6 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62289
- v7 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62290
- v8 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62395
+ for (var i3 = 0, count = length >> 3 << 3; i3 < count; ) {
62396
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62397
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62398
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62399
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62400
+ v5 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62401
+ v6 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62402
+ v7 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62403
+ v8 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62291
62404
  bytes[index2++] = (v1 << 3 | v2 >>> 2) & 255;
62292
62405
  bytes[index2++] = (v2 << 6 | v3 << 1 | v4 >>> 4) & 255;
62293
62406
  bytes[index2++] = (v4 << 4 | v5 >>> 1) & 255;
@@ -62296,33 +62409,33 @@ function requireBase32() {
62296
62409
  }
62297
62410
  var remain = length - count;
62298
62411
  if (remain === 2) {
62299
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62300
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62412
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62413
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62301
62414
  bytes[index2++] = (v1 << 3 | v2 >>> 2) & 255;
62302
62415
  } else if (remain === 4) {
62303
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62304
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62305
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62306
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62416
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62417
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62418
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62419
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62307
62420
  bytes[index2++] = (v1 << 3 | v2 >>> 2) & 255;
62308
62421
  bytes[index2++] = (v2 << 6 | v3 << 1 | v4 >>> 4) & 255;
62309
62422
  } else if (remain === 5) {
62310
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62311
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62312
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62313
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62314
- v5 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62423
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62424
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62425
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62426
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62427
+ v5 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62315
62428
  bytes[index2++] = (v1 << 3 | v2 >>> 2) & 255;
62316
62429
  bytes[index2++] = (v2 << 6 | v3 << 1 | v4 >>> 4) & 255;
62317
62430
  bytes[index2++] = (v4 << 4 | v5 >>> 1) & 255;
62318
62431
  } else if (remain === 7) {
62319
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62320
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62321
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62322
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62323
- v5 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62324
- v6 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62325
- v7 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62432
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62433
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62434
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62435
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62436
+ v5 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62437
+ v6 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62438
+ v7 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62326
62439
  bytes[index2++] = (v1 << 3 | v2 >>> 2) & 255;
62327
62440
  bytes[index2++] = (v2 << 6 | v3 << 1 | v4 >>> 4) & 255;
62328
62441
  bytes[index2++] = (v4 << 4 | v5 >>> 1) & 255;
@@ -62332,38 +62445,38 @@ function requireBase32() {
62332
62445
  };
62333
62446
  var encodeAscii = function(str) {
62334
62447
  var v1, v2, v3, v4, v5, base32Str = "", length = str.length;
62335
- for (var i2 = 0, count = parseInt(length / 5) * 5; i2 < count; ) {
62336
- v1 = str.charCodeAt(i2++);
62337
- v2 = str.charCodeAt(i2++);
62338
- v3 = str.charCodeAt(i2++);
62339
- v4 = str.charCodeAt(i2++);
62340
- v5 = str.charCodeAt(i2++);
62448
+ for (var i3 = 0, count = parseInt(length / 5) * 5; i3 < count; ) {
62449
+ v1 = str.charCodeAt(i3++);
62450
+ v2 = str.charCodeAt(i3++);
62451
+ v3 = str.charCodeAt(i3++);
62452
+ v4 = str.charCodeAt(i3++);
62453
+ v5 = str.charCodeAt(i3++);
62341
62454
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[(v3 << 1 | v4 >>> 7) & 31] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[(v4 << 3 | v5 >>> 5) & 31] + BASE32_ENCODE_CHAR[v5 & 31];
62342
62455
  }
62343
62456
  var remain = length - count;
62344
62457
  if (remain === 1) {
62345
- v1 = str.charCodeAt(i2);
62458
+ v1 = str.charCodeAt(i3);
62346
62459
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[v1 << 2 & 31] + "======";
62347
62460
  } else if (remain === 2) {
62348
- v1 = str.charCodeAt(i2++);
62349
- v2 = str.charCodeAt(i2);
62461
+ v1 = str.charCodeAt(i3++);
62462
+ v2 = str.charCodeAt(i3);
62350
62463
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[v2 << 4 & 31] + "====";
62351
62464
  } else if (remain === 3) {
62352
- v1 = str.charCodeAt(i2++);
62353
- v2 = str.charCodeAt(i2++);
62354
- v3 = str.charCodeAt(i2);
62465
+ v1 = str.charCodeAt(i3++);
62466
+ v2 = str.charCodeAt(i3++);
62467
+ v3 = str.charCodeAt(i3);
62355
62468
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[v3 << 1 & 31] + "===";
62356
62469
  } else if (remain === 4) {
62357
- v1 = str.charCodeAt(i2++);
62358
- v2 = str.charCodeAt(i2++);
62359
- v3 = str.charCodeAt(i2++);
62360
- v4 = str.charCodeAt(i2);
62470
+ v1 = str.charCodeAt(i3++);
62471
+ v2 = str.charCodeAt(i3++);
62472
+ v3 = str.charCodeAt(i3++);
62473
+ v4 = str.charCodeAt(i3);
62361
62474
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[(v3 << 1 | v4 >>> 7) & 31] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[v4 << 3 & 31] + "=";
62362
62475
  }
62363
62476
  return base32Str;
62364
62477
  };
62365
62478
  var encodeUtf8 = function(str) {
62366
- var v1, v2, v3, v4, v5, code, end = false, base32Str = "", index2 = 0, i2, start = 0, length = str.length;
62479
+ var v1, v2, v3, v4, v5, code, end = false, base32Str = "", index2 = 0, i3, start = 0, length = str.length;
62367
62480
  if (str === "") {
62368
62481
  return base32Str;
62369
62482
  }
@@ -62371,45 +62484,45 @@ function requireBase32() {
62371
62484
  blocks[0] = blocks[5];
62372
62485
  blocks[1] = blocks[6];
62373
62486
  blocks[2] = blocks[7];
62374
- for (i2 = start; index2 < length && i2 < 5; ++index2) {
62487
+ for (i3 = start; index2 < length && i3 < 5; ++index2) {
62375
62488
  code = str.charCodeAt(index2);
62376
62489
  if (code < 128) {
62377
- blocks[i2++] = code;
62490
+ blocks[i3++] = code;
62378
62491
  } else if (code < 2048) {
62379
- blocks[i2++] = 192 | code >> 6;
62380
- blocks[i2++] = 128 | code & 63;
62492
+ blocks[i3++] = 192 | code >> 6;
62493
+ blocks[i3++] = 128 | code & 63;
62381
62494
  } else if (code < 55296 || code >= 57344) {
62382
- blocks[i2++] = 224 | code >> 12;
62383
- blocks[i2++] = 128 | code >> 6 & 63;
62384
- blocks[i2++] = 128 | code & 63;
62495
+ blocks[i3++] = 224 | code >> 12;
62496
+ blocks[i3++] = 128 | code >> 6 & 63;
62497
+ blocks[i3++] = 128 | code & 63;
62385
62498
  } else {
62386
62499
  code = 65536 + ((code & 1023) << 10 | str.charCodeAt(++index2) & 1023);
62387
- blocks[i2++] = 240 | code >> 18;
62388
- blocks[i2++] = 128 | code >> 12 & 63;
62389
- blocks[i2++] = 128 | code >> 6 & 63;
62390
- blocks[i2++] = 128 | code & 63;
62500
+ blocks[i3++] = 240 | code >> 18;
62501
+ blocks[i3++] = 128 | code >> 12 & 63;
62502
+ blocks[i3++] = 128 | code >> 6 & 63;
62503
+ blocks[i3++] = 128 | code & 63;
62391
62504
  }
62392
62505
  }
62393
- start = i2 - 5;
62506
+ start = i3 - 5;
62394
62507
  if (index2 === length) {
62395
62508
  ++index2;
62396
62509
  }
62397
- if (index2 > length && i2 < 6) {
62510
+ if (index2 > length && i3 < 6) {
62398
62511
  end = true;
62399
62512
  }
62400
62513
  v1 = blocks[0];
62401
- if (i2 > 4) {
62514
+ if (i3 > 4) {
62402
62515
  v2 = blocks[1];
62403
62516
  v3 = blocks[2];
62404
62517
  v4 = blocks[3];
62405
62518
  v5 = blocks[4];
62406
62519
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[(v3 << 1 | v4 >>> 7) & 31] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[(v4 << 3 | v5 >>> 5) & 31] + BASE32_ENCODE_CHAR[v5 & 31];
62407
- } else if (i2 === 1) {
62520
+ } else if (i3 === 1) {
62408
62521
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[v1 << 2 & 31] + "======";
62409
- } else if (i2 === 2) {
62522
+ } else if (i3 === 2) {
62410
62523
  v2 = blocks[1];
62411
62524
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[v2 << 4 & 31] + "====";
62412
- } else if (i2 === 3) {
62525
+ } else if (i3 === 3) {
62413
62526
  v2 = blocks[1];
62414
62527
  v3 = blocks[2];
62415
62528
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[v3 << 1 & 31] + "===";
@@ -62424,32 +62537,32 @@ function requireBase32() {
62424
62537
  };
62425
62538
  var encodeBytes = function(bytes) {
62426
62539
  var v1, v2, v3, v4, v5, base32Str = "", length = bytes.length;
62427
- for (var i2 = 0, count = parseInt(length / 5) * 5; i2 < count; ) {
62428
- v1 = bytes[i2++];
62429
- v2 = bytes[i2++];
62430
- v3 = bytes[i2++];
62431
- v4 = bytes[i2++];
62432
- v5 = bytes[i2++];
62540
+ for (var i3 = 0, count = parseInt(length / 5) * 5; i3 < count; ) {
62541
+ v1 = bytes[i3++];
62542
+ v2 = bytes[i3++];
62543
+ v3 = bytes[i3++];
62544
+ v4 = bytes[i3++];
62545
+ v5 = bytes[i3++];
62433
62546
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[(v3 << 1 | v4 >>> 7) & 31] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[(v4 << 3 | v5 >>> 5) & 31] + BASE32_ENCODE_CHAR[v5 & 31];
62434
62547
  }
62435
62548
  var remain = length - count;
62436
62549
  if (remain === 1) {
62437
- v1 = bytes[i2];
62550
+ v1 = bytes[i3];
62438
62551
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[v1 << 2 & 31] + "======";
62439
62552
  } else if (remain === 2) {
62440
- v1 = bytes[i2++];
62441
- v2 = bytes[i2];
62553
+ v1 = bytes[i3++];
62554
+ v2 = bytes[i3];
62442
62555
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[v2 << 4 & 31] + "====";
62443
62556
  } else if (remain === 3) {
62444
- v1 = bytes[i2++];
62445
- v2 = bytes[i2++];
62446
- v3 = bytes[i2];
62557
+ v1 = bytes[i3++];
62558
+ v2 = bytes[i3++];
62559
+ v3 = bytes[i3];
62447
62560
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[v3 << 1 & 31] + "===";
62448
62561
  } else if (remain === 4) {
62449
- v1 = bytes[i2++];
62450
- v2 = bytes[i2++];
62451
- v3 = bytes[i2++];
62452
- v4 = bytes[i2];
62562
+ v1 = bytes[i3++];
62563
+ v2 = bytes[i3++];
62564
+ v3 = bytes[i3++];
62565
+ v4 = bytes[i3];
62453
62566
  base32Str += BASE32_ENCODE_CHAR[v1 >>> 3] + BASE32_ENCODE_CHAR[(v1 << 2 | v2 >>> 6) & 31] + BASE32_ENCODE_CHAR[v2 >>> 1 & 31] + BASE32_ENCODE_CHAR[(v2 << 4 | v3 >>> 4) & 31] + BASE32_ENCODE_CHAR[(v3 << 1 | v4 >>> 7) & 31] + BASE32_ENCODE_CHAR[v4 >>> 2 & 31] + BASE32_ENCODE_CHAR[v4 << 3 & 31] + "=";
62454
62567
  }
62455
62568
  return base32Str;
@@ -62480,43 +62593,43 @@ function requireBase32() {
62480
62593
  if (length === -1) {
62481
62594
  length = base32Str.length;
62482
62595
  }
62483
- for (var i2 = 0, count = length >> 3 << 3; i2 < count; ) {
62484
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62485
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62486
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62487
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62488
- v5 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62489
- v6 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62490
- v7 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62491
- v8 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62596
+ for (var i3 = 0, count = length >> 3 << 3; i3 < count; ) {
62597
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62598
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62599
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62600
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62601
+ v5 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62602
+ v6 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62603
+ v7 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62604
+ v8 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62492
62605
  str += String.fromCharCode((v1 << 3 | v2 >>> 2) & 255) + String.fromCharCode((v2 << 6 | v3 << 1 | v4 >>> 4) & 255) + String.fromCharCode((v4 << 4 | v5 >>> 1) & 255) + String.fromCharCode((v5 << 7 | v6 << 2 | v7 >>> 3) & 255) + String.fromCharCode((v7 << 5 | v8) & 255);
62493
62606
  }
62494
62607
  var remain = length - count;
62495
62608
  if (remain === 2) {
62496
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62497
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62609
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62610
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62498
62611
  str += String.fromCharCode((v1 << 3 | v2 >>> 2) & 255);
62499
62612
  } else if (remain === 4) {
62500
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62501
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62502
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62503
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62613
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62614
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62615
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62616
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62504
62617
  str += String.fromCharCode((v1 << 3 | v2 >>> 2) & 255) + String.fromCharCode((v2 << 6 | v3 << 1 | v4 >>> 4) & 255);
62505
62618
  } else if (remain === 5) {
62506
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62507
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62508
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62509
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62510
- v5 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62619
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62620
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62621
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62622
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62623
+ v5 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62511
62624
  str += String.fromCharCode((v1 << 3 | v2 >>> 2) & 255) + String.fromCharCode((v2 << 6 | v3 << 1 | v4 >>> 4) & 255) + String.fromCharCode((v4 << 4 | v5 >>> 1) & 255);
62512
62625
  } else if (remain === 7) {
62513
- v1 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62514
- v2 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62515
- v3 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62516
- v4 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62517
- v5 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62518
- v6 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62519
- v7 = BASE32_DECODE_CHAR[base32Str.charAt(i2++)];
62626
+ v1 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62627
+ v2 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62628
+ v3 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62629
+ v4 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62630
+ v5 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62631
+ v6 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62632
+ v7 = BASE32_DECODE_CHAR[base32Str.charAt(i3++)];
62520
62633
  str += String.fromCharCode((v1 << 3 | v2 >>> 2) & 255) + String.fromCharCode((v2 << 6 | v3 << 1 | v4 >>> 4) & 255) + String.fromCharCode((v4 << 4 | v5 >>> 1) & 255) + String.fromCharCode((v5 << 7 | v6 << 2 | v7 >>> 3) & 255);
62521
62634
  }
62522
62635
  return str;
@@ -62940,7 +63053,7 @@ function ExternalVirtualKeyboard({
62940
63053
  }
62941
63054
  );
62942
63055
  }
62943
- const version = "0.7.20-dev.310";
63056
+ const version = "0.7.20-dev.312";
62944
63057
  const latestDoenetmlVersion = version;
62945
63058
  function subscribeToPinnedTheme() {
62946
63059
  return () => {