@instructure/platform-assignment-review 0.4.16 → 0.4.18

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 (2) hide show
  1. package/dist/index.js +818 -719
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,50 +1,50 @@
1
- import { jsx as r, jsxs as S } from "react/jsx-runtime";
2
- import { createContext as Fn, useContext as Un, useMemo as qe, useState as Ee, useRef as zn, useEffect as Tt, useCallback as jn } from "react";
1
+ import { jsx as a, jsxs as S } from "react/jsx-runtime";
2
+ import { createContext as Hn, useContext as $n, useMemo as Ve, useState as Ee, useRef as Bn, useEffect as yt, useCallback as Gn } from "react";
3
3
  import { Flex as b } from "@instructure/ui-flex";
4
- import { Heading as St } from "@instructure/ui-heading";
4
+ import { Heading as _t } from "@instructure/ui-heading";
5
5
  import { Spinner as Ye } from "@instructure/ui-spinner";
6
6
  import { Text as _ } from "@instructure/ui-text";
7
- import { View as K } from "@instructure/ui-view";
8
- import { useQuery as Ve, useQueryClient as un, useMutation as dn } from "@tanstack/react-query";
9
- import ae from "graphql-tag";
10
- import { z as o } from "zod";
11
- import { Pill as _t } from "@instructure/ui-pill";
12
- import { IconDownloadLine as Hn, IconCheckMarkSolid as $n, IconArrowStartLine as Bn, IconArrowEndLine as Gn, IconTrashLine as Wn, IconArrowOpenStartLine as fn, IconArrowOpenEndLine as pn, IconXLine as qn, IconLockLine as gn, IconDocumentLine as Kt, IconLinkLine as Yn, IconDiscussionLine as Vn, IconQuizLine as Xn, IconAssignmentLine as Kn } from "@instructure/ui-icons";
13
- import { ScreenReaderContent as Et } from "@instructure/ui-a11y-content";
14
- import { Link as Zn } from "@instructure/ui-link";
15
- import { TruncateText as hn } from "@instructure/ui-truncate-text";
16
- import { Button as $, IconButton as Qn } from "@instructure/ui-buttons";
17
- import { TextArea as bn } from "@instructure/ui-text-area";
18
- import { Badge as Tn } from "@instructure/ui-badge";
19
- import { Tooltip as Jn } from "@instructure/ui-tooltip";
20
- const yn = Fn(void 0);
21
- function Fo({
7
+ import { View as Z } from "@instructure/ui-view";
8
+ import { useQuery as Xe, useQueryClient as gn, useMutation as hn } from "@tanstack/react-query";
9
+ import se from "graphql-tag";
10
+ import { z as r } from "zod";
11
+ import { Pill as Et } from "@instructure/ui-pill";
12
+ import { IconDownloadLine as Wn, IconCheckMarkSolid as qn, IconArrowStartLine as Vn, IconArrowEndLine as Yn, IconTrashLine as Xn, IconArrowOpenStartLine as bn, IconArrowOpenEndLine as Tn, IconXLine as Kn, IconLockLine as yn, IconDocumentLine as Zt, IconLinkLine as Zn, IconDiscussionLine as Qn, IconQuizLine as Jn, IconAssignmentLine as ei } from "@instructure/ui-icons";
13
+ import { ScreenReaderContent as It } from "@instructure/ui-a11y-content";
14
+ import { Link as ti } from "@instructure/ui-link";
15
+ import { TruncateText as An } from "@instructure/ui-truncate-text";
16
+ import { Button as $, IconButton as ni } from "@instructure/ui-buttons";
17
+ import { TextArea as Sn } from "@instructure/ui-text-area";
18
+ import { Badge as _n } from "@instructure/ui-badge";
19
+ import { Tooltip as ii } from "@instructure/ui-tooltip";
20
+ const En = Hn(void 0);
21
+ function Wr({
22
22
  translations: t,
23
23
  children: n
24
24
  }) {
25
- return /* @__PURE__ */ r(yn.Provider, { value: t, children: n });
25
+ return /* @__PURE__ */ a(En.Provider, { value: t, children: n });
26
26
  }
27
- function q() {
28
- const t = Un(yn);
27
+ function V() {
28
+ const t = $n(En);
29
29
  if (!t)
30
30
  throw new Error("useTranslations must be used within TranslationsProvider");
31
31
  return t;
32
32
  }
33
33
  /*! @license DOMPurify 3.4.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.5/LICENSE */
34
- function Zt(t, n) {
34
+ function Qt(t, n) {
35
35
  (n == null || n > t.length) && (n = t.length);
36
- for (var i = 0, s = Array(n); i < n; i++) s[i] = t[i];
37
- return s;
36
+ for (var i = 0, o = Array(n); i < n; i++) o[i] = t[i];
37
+ return o;
38
38
  }
39
- function ei(t) {
39
+ function ri(t) {
40
40
  if (Array.isArray(t)) return t;
41
41
  }
42
- function ti(t, n) {
42
+ function oi(t, n) {
43
43
  var i = t == null ? null : typeof Symbol < "u" && t[Symbol.iterator] || t["@@iterator"];
44
44
  if (i != null) {
45
- var s, l, c, d, p = [], m = !0, f = !1;
45
+ var o, l, c, d, p = [], m = !0, f = !1;
46
46
  try {
47
- if (c = (i = i.call(t)).next, n !== 0) for (; !(m = (s = c.call(i)).done) && (p.push(s.value), p.length !== n); m = !0) ;
47
+ if (c = (i = i.call(t)).next, n !== 0) for (; !(m = (o = c.call(i)).done) && (p.push(o.value), p.length !== n); m = !0) ;
48
48
  } catch (h) {
49
49
  f = !0, l = h;
50
50
  } finally {
@@ -57,157 +57,157 @@ function ti(t, n) {
57
57
  return p;
58
58
  }
59
59
  }
60
- function ni() {
60
+ function ai() {
61
61
  throw new TypeError(`Invalid attempt to destructure non-iterable instance.
62
62
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
63
63
  }
64
- function ii(t, n) {
65
- return ei(t) || ti(t, n) || oi(t, n) || ni();
64
+ function si(t, n) {
65
+ return ri(t) || oi(t, n) || li(t, n) || ai();
66
66
  }
67
- function oi(t, n) {
67
+ function li(t, n) {
68
68
  if (t) {
69
- if (typeof t == "string") return Zt(t, n);
69
+ if (typeof t == "string") return Qt(t, n);
70
70
  var i = {}.toString.call(t).slice(8, -1);
71
- return i === "Object" && t.constructor && (i = t.constructor.name), i === "Map" || i === "Set" ? Array.from(t) : i === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? Zt(t, n) : void 0;
71
+ return i === "Object" && t.constructor && (i = t.constructor.name), i === "Map" || i === "Set" ? Array.from(t) : i === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? Qt(t, n) : void 0;
72
72
  }
73
73
  }
74
- const An = Object.entries, Qt = Object.setPrototypeOf, ri = Object.isFrozen, si = Object.getPrototypeOf, ai = Object.getOwnPropertyDescriptor;
75
- let B = Object.freeze, Y = Object.seal, _e = Object.create, Sn = typeof Reflect < "u" && Reflect, yt = Sn.apply, At = Sn.construct;
74
+ const In = Object.entries, Jt = Object.setPrototypeOf, ci = Object.isFrozen, mi = Object.getPrototypeOf, ui = Object.getOwnPropertyDescriptor;
75
+ let B = Object.freeze, Y = Object.seal, _e = Object.create, wn = typeof Reflect < "u" && Reflect, At = wn.apply, St = wn.construct;
76
76
  B || (B = function(n) {
77
77
  return n;
78
78
  });
79
79
  Y || (Y = function(n) {
80
80
  return n;
81
81
  });
82
- yt || (yt = function(n, i) {
83
- for (var s = arguments.length, l = new Array(s > 2 ? s - 2 : 0), c = 2; c < s; c++)
82
+ At || (At = function(n, i) {
83
+ for (var o = arguments.length, l = new Array(o > 2 ? o - 2 : 0), c = 2; c < o; c++)
84
84
  l[c - 2] = arguments[c];
85
85
  return n.apply(i, l);
86
86
  });
87
- At || (At = function(n) {
88
- for (var i = arguments.length, s = new Array(i > 1 ? i - 1 : 0), l = 1; l < i; l++)
89
- s[l - 1] = arguments[l];
90
- return new n(...s);
87
+ St || (St = function(n) {
88
+ for (var i = arguments.length, o = new Array(i > 1 ? i - 1 : 0), l = 1; l < i; l++)
89
+ o[l - 1] = arguments[l];
90
+ return new n(...o);
91
91
  });
92
- const Te = x(Array.prototype.forEach), li = x(Array.prototype.lastIndexOf), Jt = x(Array.prototype.pop), ye = x(Array.prototype.push), ci = x(Array.prototype.splice), H = Array.isArray, Ne = x(String.prototype.toLowerCase), dt = x(String.prototype.toString), en = x(String.prototype.match), Ae = x(String.prototype.replace), tn = x(String.prototype.indexOf), mi = x(String.prototype.trim), ui = x(Number.prototype.toString), di = x(Boolean.prototype.toString), nn = typeof BigInt > "u" ? null : x(BigInt.prototype.toString), on = typeof Symbol > "u" ? null : x(Symbol.prototype.toString), D = x(Object.prototype.hasOwnProperty), Oe = x(Object.prototype.toString), z = x(RegExp.prototype.test), Ge = fi(TypeError);
92
+ const Te = x(Array.prototype.forEach), di = x(Array.prototype.lastIndexOf), en = x(Array.prototype.pop), ye = x(Array.prototype.push), fi = x(Array.prototype.splice), H = Array.isArray, ve = x(String.prototype.toLowerCase), ft = x(String.prototype.toString), tn = x(String.prototype.match), Ae = x(String.prototype.replace), nn = x(String.prototype.indexOf), pi = x(String.prototype.trim), gi = x(Number.prototype.toString), hi = x(Boolean.prototype.toString), rn = typeof BigInt > "u" ? null : x(BigInt.prototype.toString), on = typeof Symbol > "u" ? null : x(Symbol.prototype.toString), D = x(Object.prototype.hasOwnProperty), Ne = x(Object.prototype.toString), U = x(RegExp.prototype.test), Ge = bi(TypeError);
93
93
  function x(t) {
94
94
  return function(n) {
95
95
  n instanceof RegExp && (n.lastIndex = 0);
96
- for (var i = arguments.length, s = new Array(i > 1 ? i - 1 : 0), l = 1; l < i; l++)
97
- s[l - 1] = arguments[l];
98
- return yt(t, n, s);
96
+ for (var i = arguments.length, o = new Array(i > 1 ? i - 1 : 0), l = 1; l < i; l++)
97
+ o[l - 1] = arguments[l];
98
+ return At(t, n, o);
99
99
  };
100
100
  }
101
- function fi(t) {
101
+ function bi(t) {
102
102
  return function() {
103
- for (var n = arguments.length, i = new Array(n), s = 0; s < n; s++)
104
- i[s] = arguments[s];
105
- return At(t, i);
103
+ for (var n = arguments.length, i = new Array(n), o = 0; o < n; o++)
104
+ i[o] = arguments[o];
105
+ return St(t, i);
106
106
  };
107
107
  }
108
108
  function T(t, n) {
109
- let i = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Ne;
110
- if (Qt && Qt(t, null), !H(n))
109
+ let i = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : ve;
110
+ if (Jt && Jt(t, null), !H(n))
111
111
  return t;
112
- let s = n.length;
113
- for (; s--; ) {
114
- let l = n[s];
112
+ let o = n.length;
113
+ for (; o--; ) {
114
+ let l = n[o];
115
115
  if (typeof l == "string") {
116
116
  const c = i(l);
117
- c !== l && (ri(n) || (n[s] = c), l = c);
117
+ c !== l && (ci(n) || (n[o] = c), l = c);
118
118
  }
119
119
  t[l] = !0;
120
120
  }
121
121
  return t;
122
122
  }
123
- function pi(t) {
123
+ function Ti(t) {
124
124
  for (let n = 0; n < t.length; n++)
125
125
  D(t, n) || (t[n] = null);
126
126
  return t;
127
127
  }
128
128
  function W(t) {
129
129
  const n = _e(null);
130
- for (const s of An(t)) {
131
- var i = ii(s, 2);
130
+ for (const o of In(t)) {
131
+ var i = si(o, 2);
132
132
  const l = i[0], c = i[1];
133
- D(t, l) && (H(c) ? n[l] = pi(c) : c && typeof c == "object" && c.constructor === Object ? n[l] = W(c) : n[l] = c);
133
+ D(t, l) && (H(c) ? n[l] = Ti(c) : c && typeof c == "object" && c.constructor === Object ? n[l] = W(c) : n[l] = c);
134
134
  }
135
135
  return n;
136
136
  }
137
- function gi(t) {
137
+ function yi(t) {
138
138
  switch (typeof t) {
139
139
  case "string":
140
140
  return t;
141
141
  case "number":
142
- return ui(t);
142
+ return gi(t);
143
143
  case "boolean":
144
- return di(t);
144
+ return hi(t);
145
145
  case "bigint":
146
- return nn ? nn(t) : "0";
146
+ return rn ? rn(t) : "0";
147
147
  case "symbol":
148
148
  return on ? on(t) : "Symbol()";
149
149
  case "undefined":
150
- return Oe(t);
150
+ return Ne(t);
151
151
  case "function":
152
152
  case "object": {
153
153
  if (t === null)
154
- return Oe(t);
154
+ return Ne(t);
155
155
  const n = t, i = de(n, "toString");
156
156
  if (typeof i == "function") {
157
- const s = i(n);
158
- return typeof s == "string" ? s : Oe(s);
157
+ const o = i(n);
158
+ return typeof o == "string" ? o : Ne(o);
159
159
  }
160
- return Oe(t);
160
+ return Ne(t);
161
161
  }
162
162
  default:
163
- return Oe(t);
163
+ return Ne(t);
164
164
  }
165
165
  }
166
166
  function de(t, n) {
167
167
  for (; t !== null; ) {
168
- const s = ai(t, n);
169
- if (s) {
170
- if (s.get)
171
- return x(s.get);
172
- if (typeof s.value == "function")
173
- return x(s.value);
168
+ const o = ui(t, n);
169
+ if (o) {
170
+ if (o.get)
171
+ return x(o.get);
172
+ if (typeof o.value == "function")
173
+ return x(o.value);
174
174
  }
175
- t = si(t);
175
+ t = mi(t);
176
176
  }
177
177
  function i() {
178
178
  return null;
179
179
  }
180
180
  return i;
181
181
  }
182
- function hi(t) {
182
+ function Ai(t) {
183
183
  try {
184
- return z(t, ""), !0;
184
+ return U(t, ""), !0;
185
185
  } catch {
186
186
  return !1;
187
187
  }
188
188
  }
189
- const rn = B(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "search", "section", "select", "shadow", "slot", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]), ft = B(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "enterkeyhint", "exportparts", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "inputmode", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "part", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), pt = B(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]), bi = B(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]), gt = B(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]), Ti = B(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), sn = B(["#text"]), an = B(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "command", "commandfor", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "exportparts", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inert", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "part", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "slot", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns"]), ht = B(["accent-height", "accumulate", "additive", "alignment-baseline", "amplitude", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "exponent", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "intercept", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "mask-type", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "slope", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "tablevalues", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]), ln = B(["accent", "accentunder", "align", "bevelled", "close", "columnalign", "columnlines", "columnspacing", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lquote", "lspace", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]), We = B(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), yi = Y(/{{[\w\W]*|^[\w\W]*}}/g), Ai = Y(/<%[\w\W]*|^[\w\W]*%>/g), Si = Y(/\${[\w\W]*/g), _i = Y(/^data-[\-\w.\u00B7-\uFFFF]+$/), Ei = Y(/^aria-[\-\w]+$/), cn = Y(
189
+ const an = B(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "search", "section", "select", "shadow", "slot", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]), pt = B(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "enterkeyhint", "exportparts", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "inputmode", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "part", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]), gt = B(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]), Si = B(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]), ht = B(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]), _i = B(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), sn = B(["#text"]), ln = B(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "command", "commandfor", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "exportparts", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inert", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "part", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "slot", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns"]), bt = B(["accent-height", "accumulate", "additive", "alignment-baseline", "amplitude", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "exponent", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "intercept", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "mask-type", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "slope", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "tablevalues", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]), cn = B(["accent", "accentunder", "align", "bevelled", "close", "columnalign", "columnlines", "columnspacing", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lquote", "lspace", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]), We = B(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), Ei = Y(/{{[\w\W]*|^[\w\W]*}}/g), Ii = Y(/<%[\w\W]*|^[\w\W]*%>/g), wi = Y(/\${[\w\W]*/g), Ci = Y(/^data-[\-\w.\u00B7-\uFFFF]+$/), Di = Y(/^aria-[\-\w]+$/), mn = Y(
190
190
  /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
191
191
  // eslint-disable-line no-useless-escape
192
- ), Ii = Y(/^(?:\w+script|data):/i), wi = Y(
192
+ ), Ri = Y(/^(?:\w+script|data):/i), Ni = Y(
193
193
  /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
194
194
  // eslint-disable-line no-control-regex
195
- ), Ci = Y(/^html$/i), Di = Y(/^[a-z][.\w]*(-[.\w]+)+$/i), Se = {
195
+ ), vi = Y(/^html$/i), Oi = Y(/^[a-z][.\w]*(-[.\w]+)+$/i), Se = {
196
196
  element: 1,
197
197
  text: 3,
198
198
  // Deprecated
199
199
  progressingInstruction: 7,
200
200
  comment: 8,
201
201
  document: 9
202
- }, Ri = function() {
202
+ }, Li = function() {
203
203
  return typeof window > "u" ? null : window;
204
- }, Oi = function(n, i) {
204
+ }, xi = function(n, i) {
205
205
  if (typeof n != "object" || typeof n.createPolicy != "function")
206
206
  return null;
207
- let s = null;
207
+ let o = null;
208
208
  const l = "data-tt-policy-suffix";
209
- i && i.hasAttribute(l) && (s = i.getAttribute(l));
210
- const c = "dompurify" + (s ? "#" + s : "");
209
+ i && i.hasAttribute(l) && (o = i.getAttribute(l));
210
+ const c = "dompurify" + (o ? "#" + o : "");
211
211
  try {
212
212
  return n.createPolicy(c, {
213
213
  createHTML(d) {
@@ -220,7 +220,7 @@ const rn = B(["a", "abbr", "acronym", "address", "area", "article", "aside", "au
220
220
  } catch {
221
221
  return console.warn("TrustedTypes policy " + c + " could not be created."), null;
222
222
  }
223
- }, mn = function() {
223
+ }, un = function() {
224
224
  return {
225
225
  afterSanitizeAttributes: [],
226
226
  afterSanitizeElements: [],
@@ -233,26 +233,26 @@ const rn = B(["a", "abbr", "acronym", "address", "area", "article", "aside", "au
233
233
  uponSanitizeShadowNode: []
234
234
  };
235
235
  };
236
- function _n() {
237
- let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Ri();
238
- const n = (g) => _n(g);
236
+ function Cn() {
237
+ let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : Li();
238
+ const n = (g) => Cn(g);
239
239
  if (n.version = "3.4.5", n.removed = [], !t || !t.document || t.document.nodeType !== Se.document || !t.Element)
240
240
  return n.isSupported = !1, n;
241
241
  let i = t.document;
242
- const s = i, l = s.currentScript, c = t.DocumentFragment, d = t.HTMLTemplateElement, p = t.Node, m = t.Element, f = t.NodeFilter, h = t.NamedNodeMap, C = h === void 0 ? t.NamedNodeMap || t.MozNamedAttrMap : h, I = t.HTMLFormElement, w = t.DOMParser, y = t.trustedTypes, V = m.prototype, fe = de(V, "cloneNode"), le = de(V, "remove"), M = de(V, "nextSibling"), ie = de(V, "childNodes"), O = de(V, "parentNode"), ce = p && p.prototype ? de(p.prototype, "nodeType") : null;
242
+ const o = i, l = o.currentScript, c = t.DocumentFragment, d = t.HTMLTemplateElement, p = t.Node, m = t.Element, f = t.NodeFilter, h = t.NamedNodeMap, C = h === void 0 ? t.NamedNodeMap || t.MozNamedAttrMap : h, I = t.HTMLFormElement, w = t.DOMParser, y = t.trustedTypes, X = m.prototype, fe = de(X, "cloneNode"), le = de(X, "remove"), M = de(X, "nextSibling"), ie = de(X, "childNodes"), N = de(X, "parentNode"), ce = p && p.prototype ? de(p.prototype, "nodeType") : null;
243
243
  if (typeof d == "function") {
244
244
  const g = i.createElement("template");
245
245
  g.content && g.content.ownerDocument && (i = g.content.ownerDocument);
246
246
  }
247
- let E, N = "";
248
- const ee = i, Ie = ee.implementation, xe = ee.createNodeIterator, Xe = ee.createDocumentFragment, Ke = ee.getElementsByTagName, Ze = s.importNode;
249
- let j = mn();
250
- n.isSupported = typeof An == "function" && typeof O == "function" && Ie && Ie.createHTMLDocument !== void 0;
251
- const ke = yi, Me = Ai, Pe = Si, Cn = _i, Dn = Ei, Rn = Ii, wt = wi, On = Di;
252
- let Ct = cn, P = null;
253
- const Dt = T({}, [...rn, ...ft, ...pt, ...gt, ...sn]);
254
- let U = null;
255
- const Rt = T({}, [...an, ...ht, ...ln, ...We]);
247
+ let E, v = "";
248
+ const ee = i, Ie = ee.implementation, xe = ee.createNodeIterator, Ke = ee.createDocumentFragment, Ze = ee.getElementsByTagName, Qe = o.importNode;
249
+ let j = un();
250
+ n.isSupported = typeof In == "function" && typeof N == "function" && Ie && Ie.createHTMLDocument !== void 0;
251
+ const ke = Ei, Me = Ii, Pe = wi, vn = Ci, On = Di, Ln = Ri, Ct = Ni, xn = Oi;
252
+ let Dt = mn, P = null;
253
+ const Rt = T({}, [...an, ...pt, ...gt, ...ht, ...sn]);
254
+ let z = null;
255
+ const Nt = T({}, [...ln, ...bt, ...cn, ...We]);
256
256
  let R = Object.seal(_e(null, {
257
257
  tagNameCheck: {
258
258
  writable: !0,
@@ -273,7 +273,7 @@ function _n() {
273
273
  value: !1
274
274
  }
275
275
  })), we = null, Fe = null;
276
- const oe = Object.seal(_e(null, {
276
+ const re = Object.seal(_e(null, {
277
277
  tagCheck: {
278
278
  writable: !0,
279
279
  configurable: !1,
@@ -287,104 +287,104 @@ function _n() {
287
287
  value: null
288
288
  }
289
289
  }));
290
- let Ot = !0, Qe = !0, Nt = !1, vt = !0, re = !1, Ce = !0, me = !1, Je = !1, et = !1, pe = !1, Ue = !1, ze = !1, Lt = !0, xt = !1;
291
- const kt = "user-content-";
292
- let tt = !0, De = !1, ge = {}, Z = null;
293
- const nt = T({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
294
- let Mt = null;
295
- const Pt = T({}, ["audio", "video", "img", "source", "image", "track"]);
296
- let it = null;
297
- const Ft = T({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), je = "http://www.w3.org/1998/Math/MathML", He = "http://www.w3.org/2000/svg", Q = "http://www.w3.org/1999/xhtml";
298
- let he = Q, ot = !1, rt = null;
299
- const Nn = T({}, [je, He, Q], dt);
300
- let st = T({}, ["mi", "mo", "mn", "ms", "mtext"]), at = T({}, ["annotation-xml"]);
301
- const vn = T({}, ["title", "style", "font", "a", "script"]);
290
+ let vt = !0, Je = !0, Ot = !1, Lt = !0, oe = !1, Ce = !0, me = !1, et = !1, tt = !1, pe = !1, ze = !1, Ue = !1, xt = !0, kt = !1;
291
+ const Mt = "user-content-";
292
+ let nt = !0, De = !1, ge = {}, Q = null;
293
+ const it = T({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
294
+ let Pt = null;
295
+ const Ft = T({}, ["audio", "video", "img", "source", "image", "track"]);
296
+ let rt = null;
297
+ const zt = T({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), je = "http://www.w3.org/1998/Math/MathML", He = "http://www.w3.org/2000/svg", J = "http://www.w3.org/1999/xhtml";
298
+ let he = J, ot = !1, at = null;
299
+ const kn = T({}, [je, He, J], ft);
300
+ let st = T({}, ["mi", "mo", "mn", "ms", "mtext"]), lt = T({}, ["annotation-xml"]);
301
+ const Mn = T({}, ["title", "style", "font", "a", "script"]);
302
302
  let Re = null;
303
- const Ln = ["application/xhtml+xml", "text/html"], xn = "text/html";
303
+ const Pn = ["application/xhtml+xml", "text/html"], Fn = "text/html";
304
304
  let k = null, be = null;
305
- const kn = i.createElement("form"), Ut = function(e) {
305
+ const zn = i.createElement("form"), Ut = function(e) {
306
306
  return e instanceof RegExp || e instanceof Function;
307
- }, lt = function() {
307
+ }, ct = function() {
308
308
  let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
309
309
  if (be && be === e)
310
310
  return;
311
311
  (!e || typeof e != "object") && (e = {}), e = W(e), Re = // eslint-disable-next-line unicorn/prefer-includes
312
- Ln.indexOf(e.PARSER_MEDIA_TYPE) === -1 ? xn : e.PARSER_MEDIA_TYPE, k = Re === "application/xhtml+xml" ? dt : Ne, P = D(e, "ALLOWED_TAGS") && H(e.ALLOWED_TAGS) ? T({}, e.ALLOWED_TAGS, k) : Dt, U = D(e, "ALLOWED_ATTR") && H(e.ALLOWED_ATTR) ? T({}, e.ALLOWED_ATTR, k) : Rt, rt = D(e, "ALLOWED_NAMESPACES") && H(e.ALLOWED_NAMESPACES) ? T({}, e.ALLOWED_NAMESPACES, dt) : Nn, it = D(e, "ADD_URI_SAFE_ATTR") && H(e.ADD_URI_SAFE_ATTR) ? T(W(Ft), e.ADD_URI_SAFE_ATTR, k) : Ft, Mt = D(e, "ADD_DATA_URI_TAGS") && H(e.ADD_DATA_URI_TAGS) ? T(W(Pt), e.ADD_DATA_URI_TAGS, k) : Pt, Z = D(e, "FORBID_CONTENTS") && H(e.FORBID_CONTENTS) ? T({}, e.FORBID_CONTENTS, k) : nt, we = D(e, "FORBID_TAGS") && H(e.FORBID_TAGS) ? T({}, e.FORBID_TAGS, k) : W({}), Fe = D(e, "FORBID_ATTR") && H(e.FORBID_ATTR) ? T({}, e.FORBID_ATTR, k) : W({}), ge = D(e, "USE_PROFILES") ? e.USE_PROFILES && typeof e.USE_PROFILES == "object" ? W(e.USE_PROFILES) : e.USE_PROFILES : !1, Ot = e.ALLOW_ARIA_ATTR !== !1, Qe = e.ALLOW_DATA_ATTR !== !1, Nt = e.ALLOW_UNKNOWN_PROTOCOLS || !1, vt = e.ALLOW_SELF_CLOSE_IN_ATTR !== !1, re = e.SAFE_FOR_TEMPLATES || !1, Ce = e.SAFE_FOR_XML !== !1, me = e.WHOLE_DOCUMENT || !1, pe = e.RETURN_DOM || !1, Ue = e.RETURN_DOM_FRAGMENT || !1, ze = e.RETURN_TRUSTED_TYPE || !1, et = e.FORCE_BODY || !1, Lt = e.SANITIZE_DOM !== !1, xt = e.SANITIZE_NAMED_PROPS || !1, tt = e.KEEP_CONTENT !== !1, De = e.IN_PLACE || !1, Ct = hi(e.ALLOWED_URI_REGEXP) ? e.ALLOWED_URI_REGEXP : cn, he = typeof e.NAMESPACE == "string" ? e.NAMESPACE : Q, st = D(e, "MATHML_TEXT_INTEGRATION_POINTS") && e.MATHML_TEXT_INTEGRATION_POINTS && typeof e.MATHML_TEXT_INTEGRATION_POINTS == "object" ? W(e.MATHML_TEXT_INTEGRATION_POINTS) : T({}, ["mi", "mo", "mn", "ms", "mtext"]), at = D(e, "HTML_INTEGRATION_POINTS") && e.HTML_INTEGRATION_POINTS && typeof e.HTML_INTEGRATION_POINTS == "object" ? W(e.HTML_INTEGRATION_POINTS) : T({}, ["annotation-xml"]);
313
- const a = D(e, "CUSTOM_ELEMENT_HANDLING") && e.CUSTOM_ELEMENT_HANDLING && typeof e.CUSTOM_ELEMENT_HANDLING == "object" ? W(e.CUSTOM_ELEMENT_HANDLING) : _e(null);
314
- if (R = _e(null), D(a, "tagNameCheck") && Ut(a.tagNameCheck) && (R.tagNameCheck = a.tagNameCheck), D(a, "attributeNameCheck") && Ut(a.attributeNameCheck) && (R.attributeNameCheck = a.attributeNameCheck), D(a, "allowCustomizedBuiltInElements") && typeof a.allowCustomizedBuiltInElements == "boolean" && (R.allowCustomizedBuiltInElements = a.allowCustomizedBuiltInElements), re && (Qe = !1), Ue && (pe = !0), ge && (P = T({}, sn), U = _e(null), ge.html === !0 && (T(P, rn), T(U, an)), ge.svg === !0 && (T(P, ft), T(U, ht), T(U, We)), ge.svgFilters === !0 && (T(P, pt), T(U, ht), T(U, We)), ge.mathMl === !0 && (T(P, gt), T(U, ln), T(U, We))), oe.tagCheck = null, oe.attributeCheck = null, D(e, "ADD_TAGS") && (typeof e.ADD_TAGS == "function" ? oe.tagCheck = e.ADD_TAGS : H(e.ADD_TAGS) && (P === Dt && (P = W(P)), T(P, e.ADD_TAGS, k))), D(e, "ADD_ATTR") && (typeof e.ADD_ATTR == "function" ? oe.attributeCheck = e.ADD_ATTR : H(e.ADD_ATTR) && (U === Rt && (U = W(U)), T(U, e.ADD_ATTR, k))), D(e, "ADD_URI_SAFE_ATTR") && H(e.ADD_URI_SAFE_ATTR) && T(it, e.ADD_URI_SAFE_ATTR, k), D(e, "FORBID_CONTENTS") && H(e.FORBID_CONTENTS) && (Z === nt && (Z = W(Z)), T(Z, e.FORBID_CONTENTS, k)), D(e, "ADD_FORBID_CONTENTS") && H(e.ADD_FORBID_CONTENTS) && (Z === nt && (Z = W(Z)), T(Z, e.ADD_FORBID_CONTENTS, k)), tt && (P["#text"] = !0), me && T(P, ["html", "head", "body"]), P.table && (T(P, ["tbody"]), delete we.tbody), e.TRUSTED_TYPES_POLICY) {
312
+ Pn.indexOf(e.PARSER_MEDIA_TYPE) === -1 ? Fn : e.PARSER_MEDIA_TYPE, k = Re === "application/xhtml+xml" ? ft : ve, P = D(e, "ALLOWED_TAGS") && H(e.ALLOWED_TAGS) ? T({}, e.ALLOWED_TAGS, k) : Rt, z = D(e, "ALLOWED_ATTR") && H(e.ALLOWED_ATTR) ? T({}, e.ALLOWED_ATTR, k) : Nt, at = D(e, "ALLOWED_NAMESPACES") && H(e.ALLOWED_NAMESPACES) ? T({}, e.ALLOWED_NAMESPACES, ft) : kn, rt = D(e, "ADD_URI_SAFE_ATTR") && H(e.ADD_URI_SAFE_ATTR) ? T(W(zt), e.ADD_URI_SAFE_ATTR, k) : zt, Pt = D(e, "ADD_DATA_URI_TAGS") && H(e.ADD_DATA_URI_TAGS) ? T(W(Ft), e.ADD_DATA_URI_TAGS, k) : Ft, Q = D(e, "FORBID_CONTENTS") && H(e.FORBID_CONTENTS) ? T({}, e.FORBID_CONTENTS, k) : it, we = D(e, "FORBID_TAGS") && H(e.FORBID_TAGS) ? T({}, e.FORBID_TAGS, k) : W({}), Fe = D(e, "FORBID_ATTR") && H(e.FORBID_ATTR) ? T({}, e.FORBID_ATTR, k) : W({}), ge = D(e, "USE_PROFILES") ? e.USE_PROFILES && typeof e.USE_PROFILES == "object" ? W(e.USE_PROFILES) : e.USE_PROFILES : !1, vt = e.ALLOW_ARIA_ATTR !== !1, Je = e.ALLOW_DATA_ATTR !== !1, Ot = e.ALLOW_UNKNOWN_PROTOCOLS || !1, Lt = e.ALLOW_SELF_CLOSE_IN_ATTR !== !1, oe = e.SAFE_FOR_TEMPLATES || !1, Ce = e.SAFE_FOR_XML !== !1, me = e.WHOLE_DOCUMENT || !1, pe = e.RETURN_DOM || !1, ze = e.RETURN_DOM_FRAGMENT || !1, Ue = e.RETURN_TRUSTED_TYPE || !1, tt = e.FORCE_BODY || !1, xt = e.SANITIZE_DOM !== !1, kt = e.SANITIZE_NAMED_PROPS || !1, nt = e.KEEP_CONTENT !== !1, De = e.IN_PLACE || !1, Dt = Ai(e.ALLOWED_URI_REGEXP) ? e.ALLOWED_URI_REGEXP : mn, he = typeof e.NAMESPACE == "string" ? e.NAMESPACE : J, st = D(e, "MATHML_TEXT_INTEGRATION_POINTS") && e.MATHML_TEXT_INTEGRATION_POINTS && typeof e.MATHML_TEXT_INTEGRATION_POINTS == "object" ? W(e.MATHML_TEXT_INTEGRATION_POINTS) : T({}, ["mi", "mo", "mn", "ms", "mtext"]), lt = D(e, "HTML_INTEGRATION_POINTS") && e.HTML_INTEGRATION_POINTS && typeof e.HTML_INTEGRATION_POINTS == "object" ? W(e.HTML_INTEGRATION_POINTS) : T({}, ["annotation-xml"]);
313
+ const s = D(e, "CUSTOM_ELEMENT_HANDLING") && e.CUSTOM_ELEMENT_HANDLING && typeof e.CUSTOM_ELEMENT_HANDLING == "object" ? W(e.CUSTOM_ELEMENT_HANDLING) : _e(null);
314
+ if (R = _e(null), D(s, "tagNameCheck") && Ut(s.tagNameCheck) && (R.tagNameCheck = s.tagNameCheck), D(s, "attributeNameCheck") && Ut(s.attributeNameCheck) && (R.attributeNameCheck = s.attributeNameCheck), D(s, "allowCustomizedBuiltInElements") && typeof s.allowCustomizedBuiltInElements == "boolean" && (R.allowCustomizedBuiltInElements = s.allowCustomizedBuiltInElements), oe && (Je = !1), ze && (pe = !0), ge && (P = T({}, sn), z = _e(null), ge.html === !0 && (T(P, an), T(z, ln)), ge.svg === !0 && (T(P, pt), T(z, bt), T(z, We)), ge.svgFilters === !0 && (T(P, gt), T(z, bt), T(z, We)), ge.mathMl === !0 && (T(P, ht), T(z, cn), T(z, We))), re.tagCheck = null, re.attributeCheck = null, D(e, "ADD_TAGS") && (typeof e.ADD_TAGS == "function" ? re.tagCheck = e.ADD_TAGS : H(e.ADD_TAGS) && (P === Rt && (P = W(P)), T(P, e.ADD_TAGS, k))), D(e, "ADD_ATTR") && (typeof e.ADD_ATTR == "function" ? re.attributeCheck = e.ADD_ATTR : H(e.ADD_ATTR) && (z === Nt && (z = W(z)), T(z, e.ADD_ATTR, k))), D(e, "ADD_URI_SAFE_ATTR") && H(e.ADD_URI_SAFE_ATTR) && T(rt, e.ADD_URI_SAFE_ATTR, k), D(e, "FORBID_CONTENTS") && H(e.FORBID_CONTENTS) && (Q === it && (Q = W(Q)), T(Q, e.FORBID_CONTENTS, k)), D(e, "ADD_FORBID_CONTENTS") && H(e.ADD_FORBID_CONTENTS) && (Q === it && (Q = W(Q)), T(Q, e.ADD_FORBID_CONTENTS, k)), nt && (P["#text"] = !0), me && T(P, ["html", "head", "body"]), P.table && (T(P, ["tbody"]), delete we.tbody), e.TRUSTED_TYPES_POLICY) {
315
315
  if (typeof e.TRUSTED_TYPES_POLICY.createHTML != "function")
316
316
  throw Ge('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
317
317
  if (typeof e.TRUSTED_TYPES_POLICY.createScriptURL != "function")
318
318
  throw Ge('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
319
- E = e.TRUSTED_TYPES_POLICY, N = E.createHTML("");
319
+ E = e.TRUSTED_TYPES_POLICY, v = E.createHTML("");
320
320
  } else
321
- E === void 0 && (E = Oi(y, l)), E !== null && typeof N == "string" && (N = E.createHTML(""));
321
+ E === void 0 && (E = xi(y, l)), E !== null && typeof v == "string" && (v = E.createHTML(""));
322
322
  B && B(e), be = e;
323
- }, zt = T({}, [...ft, ...pt, ...bi]), jt = T({}, [...gt, ...Ti]), Mn = function(e) {
324
- let a = O(e);
325
- (!a || !a.tagName) && (a = {
323
+ }, jt = T({}, [...pt, ...gt, ...Si]), Ht = T({}, [...ht, ..._i]), Un = function(e) {
324
+ let s = N(e);
325
+ (!s || !s.tagName) && (s = {
326
326
  namespaceURI: he,
327
327
  tagName: "template"
328
328
  });
329
- const u = Ne(e.tagName), A = Ne(a.tagName);
330
- return rt[e.namespaceURI] ? e.namespaceURI === He ? a.namespaceURI === Q ? u === "svg" : a.namespaceURI === je ? u === "svg" && (A === "annotation-xml" || st[A]) : !!zt[u] : e.namespaceURI === je ? a.namespaceURI === Q ? u === "math" : a.namespaceURI === He ? u === "math" && at[A] : !!jt[u] : e.namespaceURI === Q ? a.namespaceURI === He && !at[A] || a.namespaceURI === je && !st[A] ? !1 : !jt[u] && (vn[u] || !zt[u]) : !!(Re === "application/xhtml+xml" && rt[e.namespaceURI]) : !1;
331
- }, X = function(e) {
329
+ const u = ve(e.tagName), A = ve(s.tagName);
330
+ return at[e.namespaceURI] ? e.namespaceURI === He ? s.namespaceURI === J ? u === "svg" : s.namespaceURI === je ? u === "svg" && (A === "annotation-xml" || st[A]) : !!jt[u] : e.namespaceURI === je ? s.namespaceURI === J ? u === "math" : s.namespaceURI === He ? u === "math" && lt[A] : !!Ht[u] : e.namespaceURI === J ? s.namespaceURI === He && !lt[A] || s.namespaceURI === je && !st[A] ? !1 : !Ht[u] && (Mn[u] || !jt[u]) : !!(Re === "application/xhtml+xml" && at[e.namespaceURI]) : !1;
331
+ }, K = function(e) {
332
332
  ye(n.removed, {
333
333
  element: e
334
334
  });
335
335
  try {
336
- O(e).removeChild(e);
336
+ N(e).removeChild(e);
337
337
  } catch {
338
338
  le(e);
339
339
  }
340
- }, ue = function(e, a) {
340
+ }, ue = function(e, s) {
341
341
  try {
342
342
  ye(n.removed, {
343
- attribute: a.getAttributeNode(e),
344
- from: a
343
+ attribute: s.getAttributeNode(e),
344
+ from: s
345
345
  });
346
346
  } catch {
347
347
  ye(n.removed, {
348
348
  attribute: null,
349
- from: a
349
+ from: s
350
350
  });
351
351
  }
352
- if (a.removeAttribute(e), e === "is")
353
- if (pe || Ue)
352
+ if (s.removeAttribute(e), e === "is")
353
+ if (pe || ze)
354
354
  try {
355
- X(a);
355
+ K(s);
356
356
  } catch {
357
357
  }
358
358
  else
359
359
  try {
360
- a.setAttribute(e, "");
360
+ s.setAttribute(e, "");
361
361
  } catch {
362
362
  }
363
- }, Ht = function(e) {
364
- let a = null, u = null;
365
- if (et)
363
+ }, $t = function(e) {
364
+ let s = null, u = null;
365
+ if (tt)
366
366
  e = "<remove></remove>" + e;
367
367
  else {
368
- const L = en(e, /^[\r\n\t ]+/);
368
+ const L = tn(e, /^[\r\n\t ]+/);
369
369
  u = L && L[0];
370
370
  }
371
- Re === "application/xhtml+xml" && he === Q && (e = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + e + "</body></html>");
371
+ Re === "application/xhtml+xml" && he === J && (e = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + e + "</body></html>");
372
372
  const A = E ? E.createHTML(e) : e;
373
- if (he === Q)
373
+ if (he === J)
374
374
  try {
375
- a = new w().parseFromString(A, Re);
375
+ s = new w().parseFromString(A, Re);
376
376
  } catch {
377
377
  }
378
- if (!a || !a.documentElement) {
379
- a = Ie.createDocument(he, "template", null);
378
+ if (!s || !s.documentElement) {
379
+ s = Ie.createDocument(he, "template", null);
380
380
  try {
381
- a.documentElement.innerHTML = ot ? N : A;
381
+ s.documentElement.innerHTML = ot ? v : A;
382
382
  } catch {
383
383
  }
384
384
  }
385
- const v = a.body || a.documentElement;
386
- return e && u && v.insertBefore(i.createTextNode(u), v.childNodes[0] || null), he === Q ? Ke.call(a, me ? "html" : "body")[0] : me ? a.documentElement : v;
387
- }, $t = function(e) {
385
+ const O = s.body || s.documentElement;
386
+ return e && u && O.insertBefore(i.createTextNode(u), O.childNodes[0] || null), he === J ? Ze.call(s, me ? "html" : "body")[0] : me ? s.documentElement : O;
387
+ }, Bt = function(e) {
388
388
  return xe.call(
389
389
  e.ownerDocument || e,
390
390
  e,
@@ -392,23 +392,23 @@ function _n() {
392
392
  f.SHOW_ELEMENT | f.SHOW_COMMENT | f.SHOW_TEXT | f.SHOW_PROCESSING_INSTRUCTION | f.SHOW_CDATA_SECTION,
393
393
  null
394
394
  );
395
- }, Bt = function(e) {
395
+ }, Gt = function(e) {
396
396
  e.normalize();
397
- const a = xe.call(
397
+ const s = xe.call(
398
398
  e.ownerDocument || e,
399
399
  e,
400
400
  // eslint-disable-next-line no-bitwise
401
401
  f.SHOW_TEXT | f.SHOW_COMMENT | f.SHOW_CDATA_SECTION | f.SHOW_PROCESSING_INSTRUCTION,
402
402
  null
403
403
  );
404
- let u = a.nextNode();
404
+ let u = s.nextNode();
405
405
  for (; u; ) {
406
406
  let A = u.data;
407
- Te([ke, Me, Pe], (v) => {
408
- A = Ae(A, v, " ");
409
- }), u.data = A, u = a.nextNode();
407
+ Te([ke, Me, Pe], (O) => {
408
+ A = Ae(A, O, " ");
409
+ }), u.data = A, u = s.nextNode();
410
410
  }
411
- }, ct = function(e) {
411
+ }, mt = function(e) {
412
412
  return e instanceof I && (typeof e.nodeName != "string" || typeof e.textContent != "string" || typeof e.removeChild != "function" || !(e.attributes instanceof C) || typeof e.removeAttribute != "function" || typeof e.setAttribute != "function" || typeof e.namespaceURI != "string" || typeof e.insertBefore != "function" || typeof e.hasChildNodes != "function");
413
413
  }, $e = function(e) {
414
414
  if (!ce || typeof e != "object" || e === null)
@@ -419,60 +419,60 @@ function _n() {
419
419
  return !1;
420
420
  }
421
421
  };
422
- function te(g, e, a) {
422
+ function te(g, e, s) {
423
423
  Te(g, (u) => {
424
- u.call(n, e, a, be);
424
+ u.call(n, e, s, be);
425
425
  });
426
426
  }
427
- const Gt = function(e) {
428
- let a = null;
429
- if (te(j.beforeSanitizeElements, e, null), ct(e))
430
- return X(e), !0;
427
+ const Wt = function(e) {
428
+ let s = null;
429
+ if (te(j.beforeSanitizeElements, e, null), mt(e))
430
+ return K(e), !0;
431
431
  const u = k(e.nodeName);
432
432
  if (te(j.uponSanitizeElement, e, {
433
433
  tagName: u,
434
434
  allowedTags: P
435
- }), Ce && e.hasChildNodes() && !$e(e.firstElementChild) && z(/<[/\w!]/g, e.innerHTML) && z(/<[/\w!]/g, e.textContent) || Ce && e.namespaceURI === Q && u === "style" && $e(e.firstElementChild) || e.nodeType === Se.progressingInstruction || Ce && e.nodeType === Se.comment && z(/<[/\w]/g, e.data))
436
- return X(e), !0;
437
- if (we[u] || !(oe.tagCheck instanceof Function && oe.tagCheck(u)) && !P[u]) {
438
- if (!we[u] && qt(u) && (R.tagNameCheck instanceof RegExp && z(R.tagNameCheck, u) || R.tagNameCheck instanceof Function && R.tagNameCheck(u)))
435
+ }), Ce && e.hasChildNodes() && !$e(e.firstElementChild) && U(/<[/\w!]/g, e.innerHTML) && U(/<[/\w!]/g, e.textContent) || Ce && e.namespaceURI === J && u === "style" && $e(e.firstElementChild) || e.nodeType === Se.progressingInstruction || Ce && e.nodeType === Se.comment && U(/<[/\w]/g, e.data))
436
+ return K(e), !0;
437
+ if (we[u] || !(re.tagCheck instanceof Function && re.tagCheck(u)) && !P[u]) {
438
+ if (!we[u] && Vt(u) && (R.tagNameCheck instanceof RegExp && U(R.tagNameCheck, u) || R.tagNameCheck instanceof Function && R.tagNameCheck(u)))
439
439
  return !1;
440
- if (tt && !Z[u]) {
441
- const A = O(e) || e.parentNode, v = ie(e) || e.childNodes;
442
- if (v && A) {
443
- const L = v.length;
440
+ if (nt && !Q[u]) {
441
+ const A = N(e) || e.parentNode, O = ie(e) || e.childNodes;
442
+ if (O && A) {
443
+ const L = O.length;
444
444
  for (let G = L - 1; G >= 0; --G) {
445
- const se = fe(v[G], !0);
446
- A.insertBefore(se, M(e));
445
+ const ae = fe(O[G], !0);
446
+ A.insertBefore(ae, M(e));
447
447
  }
448
448
  }
449
449
  }
450
- return X(e), !0;
450
+ return K(e), !0;
451
451
  }
452
- return e instanceof m && !Mn(e) || (u === "noscript" || u === "noembed" || u === "noframes") && z(/<\/no(script|embed|frames)/i, e.innerHTML) ? (X(e), !0) : (re && e.nodeType === Se.text && (a = e.textContent, Te([ke, Me, Pe], (A) => {
453
- a = Ae(a, A, " ");
454
- }), e.textContent !== a && (ye(n.removed, {
452
+ return e instanceof m && !Un(e) || (u === "noscript" || u === "noembed" || u === "noframes") && U(/<\/no(script|embed|frames)/i, e.innerHTML) ? (K(e), !0) : (oe && e.nodeType === Se.text && (s = e.textContent, Te([ke, Me, Pe], (A) => {
453
+ s = Ae(s, A, " ");
454
+ }), e.textContent !== s && (ye(n.removed, {
455
455
  element: e.cloneNode()
456
- }), e.textContent = a)), te(j.afterSanitizeElements, e, null), !1);
457
- }, Wt = function(e, a, u) {
458
- if (Fe[a] || Lt && (a === "id" || a === "name") && (u in i || u in kn))
456
+ }), e.textContent = s)), te(j.afterSanitizeElements, e, null), !1);
457
+ }, qt = function(e, s, u) {
458
+ if (Fe[s] || xt && (s === "id" || s === "name") && (u in i || u in zn))
459
459
  return !1;
460
- const A = U[a] || oe.attributeCheck instanceof Function && oe.attributeCheck(a, e);
461
- if (!(Qe && !Fe[a] && z(Cn, a))) {
462
- if (!(Ot && z(Dn, a))) {
463
- if (!A || Fe[a]) {
460
+ const A = z[s] || re.attributeCheck instanceof Function && re.attributeCheck(s, e);
461
+ if (!(Je && !Fe[s] && U(vn, s))) {
462
+ if (!(vt && U(On, s))) {
463
+ if (!A || Fe[s]) {
464
464
  if (
465
465
  // First condition does a very basic check if a) it's basically a valid custom element tagname AND
466
466
  // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
467
467
  // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
468
- !(qt(e) && (R.tagNameCheck instanceof RegExp && z(R.tagNameCheck, e) || R.tagNameCheck instanceof Function && R.tagNameCheck(e)) && (R.attributeNameCheck instanceof RegExp && z(R.attributeNameCheck, a) || R.attributeNameCheck instanceof Function && R.attributeNameCheck(a, e)) || // Alternative, second condition checks if it's an `is`-attribute, AND
468
+ !(Vt(e) && (R.tagNameCheck instanceof RegExp && U(R.tagNameCheck, e) || R.tagNameCheck instanceof Function && R.tagNameCheck(e)) && (R.attributeNameCheck instanceof RegExp && U(R.attributeNameCheck, s) || R.attributeNameCheck instanceof Function && R.attributeNameCheck(s, e)) || // Alternative, second condition checks if it's an `is`-attribute, AND
469
469
  // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
470
- a === "is" && R.allowCustomizedBuiltInElements && (R.tagNameCheck instanceof RegExp && z(R.tagNameCheck, u) || R.tagNameCheck instanceof Function && R.tagNameCheck(u)))
470
+ s === "is" && R.allowCustomizedBuiltInElements && (R.tagNameCheck instanceof RegExp && U(R.tagNameCheck, u) || R.tagNameCheck instanceof Function && R.tagNameCheck(u)))
471
471
  ) return !1;
472
- } else if (!it[a]) {
473
- if (!z(Ct, Ae(u, wt, ""))) {
474
- if (!((a === "src" || a === "xlink:href" || a === "href") && e !== "script" && tn(u, "data:") === 0 && Mt[e])) {
475
- if (!(Nt && !z(Rn, Ae(u, wt, "")))) {
472
+ } else if (!rt[s]) {
473
+ if (!U(Dt, Ae(u, Ct, ""))) {
474
+ if (!((s === "src" || s === "xlink:href" || s === "href") && e !== "script" && nn(u, "data:") === 0 && Pt[e])) {
475
+ if (!(Ot && !U(Ln, Ae(u, Ct, "")))) {
476
476
  if (u)
477
477
  return !1;
478
478
  }
@@ -482,29 +482,29 @@ function _n() {
482
482
  }
483
483
  }
484
484
  return !0;
485
- }, Pn = T({}, ["annotation-xml", "color-profile", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "missing-glyph"]), qt = function(e) {
486
- return !Pn[Ne(e)] && z(On, e);
485
+ }, jn = T({}, ["annotation-xml", "color-profile", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "missing-glyph"]), Vt = function(e) {
486
+ return !jn[ve(e)] && U(xn, e);
487
487
  }, Yt = function(e) {
488
488
  te(j.beforeSanitizeAttributes, e, null);
489
- const a = e.attributes;
490
- if (!a || ct(e))
489
+ const s = e.attributes;
490
+ if (!s || mt(e))
491
491
  return;
492
492
  const u = {
493
493
  attrName: "",
494
494
  attrValue: "",
495
495
  keepAttr: !0,
496
- allowedAttributes: U,
496
+ allowedAttributes: z,
497
497
  forceKeepAttr: void 0
498
498
  };
499
- let A = a.length;
499
+ let A = s.length;
500
500
  for (; A--; ) {
501
- const v = a[A], L = v.name, G = v.namespaceURI, se = v.value, ne = k(L), ut = se;
502
- let F = L === "value" ? ut : mi(ut);
503
- if (u.attrName = ne, u.attrValue = F, u.keepAttr = !0, u.forceKeepAttr = void 0, te(j.uponSanitizeAttribute, e, u), F = u.attrValue, xt && (ne === "id" || ne === "name") && tn(F, kt) !== 0 && (ue(L, e), F = kt + F), Ce && z(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, F)) {
501
+ const O = s[A], L = O.name, G = O.namespaceURI, ae = O.value, ne = k(L), dt = ae;
502
+ let F = L === "value" ? dt : pi(dt);
503
+ if (u.attrName = ne, u.attrValue = F, u.keepAttr = !0, u.forceKeepAttr = void 0, te(j.uponSanitizeAttribute, e, u), F = u.attrValue, kt && (ne === "id" || ne === "name") && nn(F, Mt) !== 0 && (ue(L, e), F = Mt + F), Ce && U(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, F)) {
504
504
  ue(L, e);
505
505
  continue;
506
506
  }
507
- if (ne === "attributename" && en(F, "href")) {
507
+ if (ne === "attributename" && tn(F, "href")) {
508
508
  ue(L, e);
509
509
  continue;
510
510
  }
@@ -514,20 +514,20 @@ function _n() {
514
514
  ue(L, e);
515
515
  continue;
516
516
  }
517
- if (!vt && z(/\/>/i, F)) {
517
+ if (!Lt && U(/\/>/i, F)) {
518
518
  ue(L, e);
519
519
  continue;
520
520
  }
521
- re && Te([ke, Me, Pe], (Xt) => {
522
- F = Ae(F, Xt, " ");
521
+ oe && Te([ke, Me, Pe], (Kt) => {
522
+ F = Ae(F, Kt, " ");
523
523
  });
524
- const Vt = k(e.nodeName);
525
- if (!Wt(Vt, ne, F)) {
524
+ const Xt = k(e.nodeName);
525
+ if (!qt(Xt, ne, F)) {
526
526
  ue(L, e);
527
527
  continue;
528
528
  }
529
529
  if (E && typeof y == "object" && typeof y.getAttributeType == "function" && !G)
530
- switch (y.getAttributeType(Vt, ne)) {
530
+ switch (y.getAttributeType(Xt, ne)) {
531
531
  case "TrustedHTML": {
532
532
  F = E.createHTML(F);
533
533
  break;
@@ -537,102 +537,160 @@ function _n() {
537
537
  break;
538
538
  }
539
539
  }
540
- if (F !== ut)
540
+ if (F !== dt)
541
541
  try {
542
- G ? e.setAttributeNS(G, L, F) : e.setAttribute(L, F), ct(e) ? X(e) : Jt(n.removed);
542
+ G ? e.setAttributeNS(G, L, F) : e.setAttribute(L, F), mt(e) ? K(e) : en(n.removed);
543
543
  } catch {
544
544
  ue(L, e);
545
545
  }
546
546
  }
547
547
  te(j.afterSanitizeAttributes, e, null);
548
- }, mt = function(e) {
549
- let a = null;
550
- const u = $t(e);
551
- for (te(j.beforeSanitizeShadowDOM, e, null); a = u.nextNode(); )
552
- te(j.uponSanitizeShadowNode, a, null), Gt(a), Yt(a), a.content instanceof c && mt(a.content);
548
+ }, ut = function(e) {
549
+ let s = null;
550
+ const u = Bt(e);
551
+ for (te(j.beforeSanitizeShadowDOM, e, null); s = u.nextNode(); )
552
+ te(j.uponSanitizeShadowNode, s, null), Wt(s), Yt(s), s.content instanceof c && ut(s.content);
553
553
  te(j.afterSanitizeShadowDOM, e, null);
554
554
  }, Be = function(e) {
555
555
  if (e.nodeType === Se.element && e.shadowRoot instanceof c) {
556
556
  const A = e.shadowRoot;
557
- Be(A), mt(A);
557
+ Be(A), ut(A);
558
558
  }
559
- const a = e.childNodes;
560
- if (!a)
559
+ const s = e.childNodes;
560
+ if (!s)
561
561
  return;
562
562
  const u = [];
563
- Te(a, (A) => {
563
+ Te(s, (A) => {
564
564
  ye(u, A);
565
565
  });
566
566
  for (const A of u)
567
567
  Be(A);
568
568
  };
569
569
  return n.sanitize = function(g) {
570
- let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, a = null, u = null, A = null, v = null;
571
- if (ot = !g, ot && (g = "<!-->"), typeof g != "string" && !$e(g) && (g = gi(g), typeof g != "string"))
570
+ let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, s = null, u = null, A = null, O = null;
571
+ if (ot = !g, ot && (g = "<!-->"), typeof g != "string" && !$e(g) && (g = yi(g), typeof g != "string"))
572
572
  throw Ge("dirty is not a string, aborting");
573
573
  if (!n.isSupported)
574
574
  return g;
575
- if (Je || lt(e), n.removed = [], typeof g == "string" && (De = !1), De) {
576
- const se = g.nodeName;
577
- if (typeof se == "string") {
578
- const ne = k(se);
575
+ if (et || ct(e), n.removed = [], typeof g == "string" && (De = !1), De) {
576
+ const ae = g.nodeName;
577
+ if (typeof ae == "string") {
578
+ const ne = k(ae);
579
579
  if (!P[ne] || we[ne])
580
580
  throw Ge("root node is forbidden and cannot be sanitized in-place");
581
581
  }
582
582
  Be(g);
583
583
  } else if ($e(g))
584
- a = Ht("<!---->"), u = a.ownerDocument.importNode(g, !0), u.nodeType === Se.element && u.nodeName === "BODY" || u.nodeName === "HTML" ? a = u : a.appendChild(u), Be(u);
584
+ s = $t("<!---->"), u = s.ownerDocument.importNode(g, !0), u.nodeType === Se.element && u.nodeName === "BODY" || u.nodeName === "HTML" ? s = u : s.appendChild(u), Be(u);
585
585
  else {
586
- if (!pe && !re && !me && // eslint-disable-next-line unicorn/prefer-includes
586
+ if (!pe && !oe && !me && // eslint-disable-next-line unicorn/prefer-includes
587
587
  g.indexOf("<") === -1)
588
- return E && ze ? E.createHTML(g) : g;
589
- if (a = Ht(g), !a)
590
- return pe ? null : ze ? N : "";
588
+ return E && Ue ? E.createHTML(g) : g;
589
+ if (s = $t(g), !s)
590
+ return pe ? null : Ue ? v : "";
591
591
  }
592
- a && et && X(a.firstChild);
593
- const L = $t(De ? g : a);
592
+ s && tt && K(s.firstChild);
593
+ const L = Bt(De ? g : s);
594
594
  for (; A = L.nextNode(); )
595
- Gt(A), Yt(A), A.content instanceof c && mt(A.content);
595
+ Wt(A), Yt(A), A.content instanceof c && ut(A.content);
596
596
  if (De)
597
- return re && Bt(g), g;
597
+ return oe && Gt(g), g;
598
598
  if (pe) {
599
- if (re && Bt(a), Ue)
600
- for (v = Xe.call(a.ownerDocument); a.firstChild; )
601
- v.appendChild(a.firstChild);
599
+ if (oe && Gt(s), ze)
600
+ for (O = Ke.call(s.ownerDocument); s.firstChild; )
601
+ O.appendChild(s.firstChild);
602
602
  else
603
- v = a;
604
- return (U.shadowroot || U.shadowrootmode) && (v = Ze.call(s, v, !0)), v;
603
+ O = s;
604
+ return (z.shadowroot || z.shadowrootmode) && (O = Qe.call(o, O, !0)), O;
605
605
  }
606
- let G = me ? a.outerHTML : a.innerHTML;
607
- return me && P["!doctype"] && a.ownerDocument && a.ownerDocument.doctype && a.ownerDocument.doctype.name && z(Ci, a.ownerDocument.doctype.name) && (G = "<!DOCTYPE " + a.ownerDocument.doctype.name + `>
608
- ` + G), re && Te([ke, Me, Pe], (se) => {
609
- G = Ae(G, se, " ");
610
- }), E && ze ? E.createHTML(G) : G;
606
+ let G = me ? s.outerHTML : s.innerHTML;
607
+ return me && P["!doctype"] && s.ownerDocument && s.ownerDocument.doctype && s.ownerDocument.doctype.name && U(vi, s.ownerDocument.doctype.name) && (G = "<!DOCTYPE " + s.ownerDocument.doctype.name + `>
608
+ ` + G), oe && Te([ke, Me, Pe], (ae) => {
609
+ G = Ae(G, ae, " ");
610
+ }), E && Ue ? E.createHTML(G) : G;
611
611
  }, n.setConfig = function() {
612
612
  let g = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
613
- lt(g), Je = !0;
613
+ ct(g), et = !0;
614
614
  }, n.clearConfig = function() {
615
- be = null, Je = !1;
616
- }, n.isValidAttribute = function(g, e, a) {
617
- be || lt({});
615
+ be = null, et = !1;
616
+ }, n.isValidAttribute = function(g, e, s) {
617
+ be || ct({});
618
618
  const u = k(g), A = k(e);
619
- return Wt(u, A, a);
619
+ return qt(u, A, s);
620
620
  }, n.addHook = function(g, e) {
621
621
  typeof e == "function" && ye(j[g], e);
622
622
  }, n.removeHook = function(g, e) {
623
623
  if (e !== void 0) {
624
- const a = li(j[g], e);
625
- return a === -1 ? void 0 : ci(j[g], a, 1)[0];
624
+ const s = di(j[g], e);
625
+ return s === -1 ? void 0 : fi(j[g], s, 1)[0];
626
626
  }
627
- return Jt(j[g]);
627
+ return en(j[g]);
628
628
  }, n.removeHooks = function(g) {
629
629
  j[g] = [];
630
630
  }, n.removeAllHooks = function() {
631
- j = mn();
631
+ j = un();
632
632
  }, n;
633
633
  }
634
- var bt = _n();
635
- const Ni = /* @__PURE__ */ new Set([
634
+ var Tt = Cn();
635
+ const dn = /* @__PURE__ */ new Set(["http:", "https:", "mailto:", "tel:"]), qe = "http://platform-sanitize.invalid/", fn = /^\s*\/\//, pn = (
636
+ // oxlint-disable-next-line no-control-regex -- intentional security guard
637
+ /^[\u0000-\u0020\u007F-\u00A0\u2000-\u200F\u2028\u2029\u202F\u205F\u2060\u3000\uFEFF]*(?:javascript|data|vbscript|file):/i
638
+ ), ki = {
639
+ colon: ":",
640
+ // javascript&colon;alert(1) → javascript:alert(1)
641
+ sol: "/",
642
+ // &sol;&sol;evil.com → //evil.com (protocol-relative)
643
+ bsol: "\\",
644
+ // &bsol;&bsol;evil.com → \\evil.com
645
+ Tab: " ",
646
+ // java&Tab;script: — WHATWG strips mid-scheme tabs
647
+ NewLine: `
648
+ `
649
+ // java&NewLine;script:
650
+ };
651
+ function Mi(t) {
652
+ return t.replace(/&#(\d+);/g, (n, i) => {
653
+ const o = Number(i);
654
+ if (!Number.isFinite(o) || o < 0 || o > 1114111) return "";
655
+ try {
656
+ return String.fromCodePoint(o);
657
+ } catch {
658
+ return "";
659
+ }
660
+ }).replace(/&#x([\da-f]+);/gi, (n, i) => {
661
+ const o = parseInt(i, 16);
662
+ if (!Number.isFinite(o) || o < 0 || o > 1114111) return "";
663
+ try {
664
+ return String.fromCodePoint(o);
665
+ } catch {
666
+ return "";
667
+ }
668
+ }).replace(/&([A-Za-z][A-Za-z0-9]*);/g, (n, i) => ki[i] ?? n);
669
+ }
670
+ function Pi(t) {
671
+ if (!t || !t.trim()) return "about:blank";
672
+ const n = t.replace(/\\/g, "/");
673
+ if (fn.test(n) || pn.test(n)) return "about:blank";
674
+ if (/&[#A-Za-z]/.test(n)) {
675
+ const i = Mi(n);
676
+ if (fn.test(i) || pn.test(i))
677
+ return "about:blank";
678
+ try {
679
+ const o = new URL(i, qe);
680
+ if (!o.href.startsWith(qe) && !dn.has(o.protocol))
681
+ return "about:blank";
682
+ } catch {
683
+ return "about:blank";
684
+ }
685
+ }
686
+ try {
687
+ const i = new URL(n, qe);
688
+ return !dn.has(i.protocol) || (i.protocol === "http:" || i.protocol === "https:") && (i.username || i.password) ? "about:blank" : i.href.startsWith(qe) ? t : n.replace(/[\x00-\x1F\u2028\u2029]/g, "").replace(/%250[9ad]/gi, "").replace(/%0[9ad]/gi, "");
689
+ } catch {
690
+ return "about:blank";
691
+ }
692
+ }
693
+ const Fi = /* @__PURE__ */ new Set([
636
694
  // layout
637
695
  "display",
638
696
  "float",
@@ -874,7 +932,7 @@ const Ni = /* @__PURE__ */ new Set([
874
932
  "caret-color",
875
933
  "accent-color",
876
934
  "appearance"
877
- ]), vi = /* @__PURE__ */ new Set([
935
+ ]), zi = /* @__PURE__ */ new Set([
878
936
  "src",
879
937
  "href",
880
938
  "action",
@@ -885,7 +943,7 @@ const Ni = /* @__PURE__ */ new Set([
885
943
  "cite",
886
944
  "longdesc",
887
945
  "xlink:href"
888
- ]), Li = ["content"], xi = /url\s*\(\s*['"]?(?:[a-z][a-z0-9+\-.]*:|\/\/)/i, ki = /* @__PURE__ */ new Set([
946
+ ]), Ui = ["content"], ji = /url\s*\(\s*['"]?(?:[a-z][a-z0-9+\-.]*:|\/\/)/i, Hi = /* @__PURE__ */ new Set([
889
947
  "allow-downloads",
890
948
  "allow-forms",
891
949
  "allow-modals",
@@ -898,7 +956,14 @@ const Ni = /* @__PURE__ */ new Set([
898
956
  "allow-scripts",
899
957
  "allow-storage-access-by-user-activation",
900
958
  "allow-top-navigation-by-user-activation"
901
- ]), Mi = {
959
+ ]), $i = {
960
+ "data-url": "data-custom-url",
961
+ "data-method": "data-custom-method",
962
+ "data-remote": "data-custom-remote",
963
+ "data-remove": "data-custom-remove",
964
+ "data-confirm": "data-custom-confirm",
965
+ "data-disable-with": "data-custom-disable-with"
966
+ }, Bi = /* @__PURE__ */ new Set(["data-item-href"]), Gi = {
902
967
  // semantics and annotation are re-allowed because DOMPurify blocks all of
903
968
  // mathMlDisallowed by default. semantics is a safe structural wrapper;
904
969
  // annotation carries LaTeX source text (e.g. \frac{1}{2}); Canvas emits
@@ -913,7 +978,26 @@ const Ni = /* @__PURE__ */ new Set([
913
978
  // application/x-tex, …) are not integration points and are preserved, so this
914
979
  // layer no longer strips the benign annotation-xml the backend and TinyMCE
915
980
  // already allow.
916
- ADD_TAGS: ["iframe", "semantics", "annotation", "annotation-xml"],
981
+ // object/embed/param re-enable PDF/SVG/media embedding in course content
982
+ // (e.g. <object data="file.pdf" type="application/pdf">). Their Flash/ActiveX
983
+ // attributes (classid, codebase, pluginspage, wmode, allowscriptaccess) are
984
+ // intentionally NOT added — dead tech, and ADD_ATTR is global in DOMPurify so
985
+ // re-allowing them would also reopen that surface on iframe. DOMPurify's URI
986
+ // filter blocks javascript:/data: on data/src, matching Canvas's
987
+ // http/https/relative protocol rule for these tags.
988
+ //
989
+ // SECURITY ASSUMPTION (same one iframe already relies on): object/embed load
990
+ // their resource as a *document*, not an image — a same-origin SVG/HTML file
991
+ // (e.g. <object data="/files/123/download" type="image/svg+xml">) executes any
992
+ // <script> it contains in the embedding page's origin. The javascript:/data:
993
+ // filter does not help here because the URL is a benign same-origin path; the
994
+ // payload lives in the fetched file. This is NOT new attack surface: <iframe>
995
+ // is already allowed and has the identical capability (its srcdoc is stripped —
996
+ // see test). The defense for all three is that Canvas serves user-uploaded
997
+ // files from a separate sandboxed origin. object/embed also have no usable
998
+ // sandbox attribute, so the sandbox-token hook cannot constrain them — again,
999
+ // parity with an unsandboxed iframe, which is already permitted.
1000
+ ADD_TAGS: ["iframe", "semantics", "annotation", "annotation-xml", "object", "embed", "param"],
917
1001
  ADD_ATTR: [
918
1002
  "allowfullscreen",
919
1003
  "allow",
@@ -921,6 +1005,12 @@ const Ni = /* @__PURE__ */ new Set([
921
1005
  "sandbox",
922
1006
  "data-media-id",
923
1007
  "data-media-type",
1008
+ // <object>'s resource URL attribute — not in DOMPurify's defaults. src/type/
1009
+ // name/value/width/height (used by object/embed/param) already are. Added
1010
+ // globally (DOMPurify has no per-tag attr scoping), which is harmless: `data`
1011
+ // is in URL_ATTRS so it is protocol-filtered, and it is not a DOM-clobbering
1012
+ // or URI-safe attribute name.
1013
+ "data",
924
1014
  // RCE produces target="_blank" for external links. Modern browsers treat
925
1015
  // target="_blank" as implicit rel="noopener", and the backend allowlist
926
1016
  // already includes target.
@@ -938,10 +1028,6 @@ const Ni = /* @__PURE__ */ new Set([
938
1028
  "intent",
939
1029
  "arg"
940
1030
  ],
941
- // Rails UJS turns data-method/data-remote/etc. on clickable elements into
942
- // state-changing requests carrying the victim's CSRF token. Strip them so
943
- // user-authored HTML cannot become a CSRF gadget when UJS is on the page.
944
- FORBID_ATTR: ["data-method", "data-remote", "data-url", "data-confirm", "data-disable-with"],
945
1031
  // In browsers that support the Trusted Types API (Chromium, Firefox),
946
1032
  // DOMPurify returns a TrustedHTML object rather than a plain string. The
947
1033
  // exported sanitizeHtml signature declares string — a deliberate lie that
@@ -957,17 +1043,17 @@ const Ni = /* @__PURE__ */ new Set([
957
1043
  // confusion attacks where fragments like <svg> could influence parse context.
958
1044
  FORCE_BODY: !0
959
1045
  };
960
- let J = null;
961
- function Pi() {
962
- if (J) return J;
963
- J = typeof bt == "function" ? bt(window) : bt, J.addHook("afterSanitizeAttributes", (n) => {
1046
+ let q = null;
1047
+ function Wi() {
1048
+ if (q) return q;
1049
+ q = typeof Tt == "function" ? Tt(window) : Tt, q.addHook("afterSanitizeAttributes", (n) => {
964
1050
  if (!(n instanceof Element) || !n.hasAttribute("style")) return;
965
- const i = n.style, s = [];
1051
+ const i = n.style, o = [];
966
1052
  for (let m = 0; m < i.length; m++) {
967
1053
  const f = i.item(m);
968
- Ni.has(f) || s.push(f);
1054
+ Fi.has(f) || o.push(f);
969
1055
  }
970
- for (const m of s) i.removeProperty(m);
1056
+ for (const m of o) i.removeProperty(m);
971
1057
  const l = /* @__PURE__ */ new Set([
972
1058
  "static",
973
1059
  "relative",
@@ -981,55 +1067,68 @@ function Pi() {
981
1067
  c && !l.has(c) && i.removeProperty("position");
982
1068
  const d = /* @__PURE__ */ new Set(["initial", "inherit", "unset", "revert", "revert-layer"]), p = i.getPropertyValue("opacity").trim().toLowerCase();
983
1069
  p && !d.has(p) && (p.endsWith("%") ? parseFloat(p) / 100 : parseFloat(p)) < 0.05 && i.removeProperty("opacity");
984
- for (const m of Li) {
1070
+ for (const m of Ui) {
985
1071
  const f = i.getPropertyValue(m);
986
- f && xi.test(f) && i.removeProperty(m);
1072
+ f && ji.test(f) && i.removeProperty(m);
987
1073
  }
988
1074
  i.length === 0 && n.removeAttribute("style");
989
- }), J.addHook("uponSanitizeAttribute", (n, i) => {
990
- if (!vi.has(i.attrName)) return;
991
- const s = i.attrValue;
992
- /^\s*\/\//.test(s) ? (i.attrValue = s.trimStart().replace(/^\/\//, "https://"), i.keepAttr = !0) : /^\s*\\/.test(s) && (i.keepAttr = !1);
993
- }), J.addHook("afterSanitizeAttributes", (n) => {
1075
+ }), q.addHook("uponSanitizeAttribute", (n, i) => {
1076
+ if (!zi.has(i.attrName)) return;
1077
+ const o = i.attrValue;
1078
+ /^\s*\/\//.test(o) ? (i.attrValue = o.trimStart().replace(/^\/\//, "https://"), i.keepAttr = !0) : /^\s*\\/.test(o) && (i.keepAttr = !1);
1079
+ }), q.addHook("uponSanitizeAttribute", (n, i) => {
1080
+ if (!Bi.has(i.attrName)) return;
1081
+ const o = i.attrValue;
1082
+ if (!o.trim()) return;
1083
+ const l = /^\s*\/\//.test(o) ? o.trimStart().replace(/^\/\//, "https://") : o;
1084
+ i.attrValue = Pi(l);
1085
+ }), q.addHook("uponSanitizeAttribute", (n, i) => {
1086
+ const o = $i[i.attrName];
1087
+ !o || !(n instanceof Element) || (n.hasAttribute(o) || n.setAttribute(o, i.attrValue), i.keepAttr = !1);
1088
+ }), q.addHook("afterSanitizeAttributes", (n) => {
994
1089
  if (!(n instanceof Element) || !n.hasAttribute("srcset")) return;
995
- const i = (n.getAttribute("srcset") ?? "").split(","), s = (d) => d.trim().split(/\s+/)[0];
996
- if (i.some((d) => /^\s*\\/.test(s(d)))) {
1090
+ const i = (n.getAttribute("srcset") ?? "").split(","), o = (d) => d.trim().split(/\s+/)[0];
1091
+ if (i.some((d) => /^\s*\\/.test(o(d)))) {
997
1092
  n.removeAttribute("srcset");
998
1093
  return;
999
1094
  }
1000
1095
  let l = !1;
1001
1096
  const c = i.map((d) => {
1002
- const p = s(d);
1097
+ const p = o(d);
1003
1098
  if (!p.startsWith("//")) return d;
1004
1099
  l = !0;
1005
1100
  const m = d.indexOf(p);
1006
1101
  return d.slice(0, m) + "https://" + p.slice(2) + d.slice(m + p.length);
1007
1102
  });
1008
1103
  l && n.setAttribute("srcset", c.join(","));
1009
- }), J.addHook("afterSanitizeAttributes", (n) => {
1104
+ }), q.addHook("afterSanitizeAttributes", (n) => {
1010
1105
  var i;
1011
1106
  if (!(n instanceof Element) || n.tagName !== "A" && n.tagName !== "AREA" || ((i = n.getAttribute("target")) == null ? void 0 : i.toLowerCase()) !== "_blank") return;
1012
- const s = n.getAttribute("rel") ?? "", l = new Set(s.split(/\s+/).filter(Boolean));
1107
+ const o = n.getAttribute("rel") ?? "", l = new Set(o.split(/\s+/).filter(Boolean));
1013
1108
  l.add("noopener"), n.setAttribute("rel", [...l].join(" "));
1014
- }), J.addHook("afterSanitizeAttributes", (n) => {
1109
+ }), q.addHook("afterSanitizeAttributes", (n) => {
1015
1110
  if (!(n instanceof Element) || n.tagName !== "IFRAME" || !n.hasAttribute("sandbox")) return;
1016
- const i = (n.getAttribute("sandbox") ?? "").toLowerCase().split(/\s+/).filter(Boolean), s = i.filter((l) => ki.has(l));
1017
- s.length !== i.length && n.setAttribute("sandbox", s.join(" "));
1111
+ const i = (n.getAttribute("sandbox") ?? "").toLowerCase().split(/\s+/).filter(Boolean), o = i.filter((l) => Hi.has(l));
1112
+ o.length !== i.length && n.setAttribute("sandbox", o.join(" "));
1113
+ }), q.addHook("afterSanitizeAttributes", (n) => {
1114
+ if (!(n instanceof Element) || n.tagName !== "PARAM") return;
1115
+ const i = n.getAttribute("value");
1116
+ i && /^\s*(?:javascript|vbscript):/i.test(i) && n.removeAttribute("value");
1018
1117
  });
1019
1118
  const t = /* @__PURE__ */ new Set(["text/html", "application/xhtml+xml"]);
1020
- return J.addHook("afterSanitizeElements", (n) => {
1119
+ return q.addHook("afterSanitizeElements", (n) => {
1021
1120
  if (!(n instanceof Element) || n.tagName.toLowerCase() !== "annotation-xml") return;
1022
1121
  const i = (n.getAttribute("encoding") ?? "").toLowerCase().trim();
1023
1122
  t.has(i) && n.remove();
1024
- }), J;
1123
+ }), q;
1025
1124
  }
1026
- function It(t, n) {
1125
+ function wt(t, n) {
1027
1126
  if (typeof window > "u")
1028
1127
  throw new Error("sanitizeHtml requires a DOM environment (window is not defined)");
1029
- const i = Mi;
1030
- return Pi().sanitize(t ?? "", i);
1128
+ const i = Gi;
1129
+ return Wi().sanitize(t ?? "", i);
1031
1130
  }
1032
- const Fi = ae`
1131
+ const qi = se`
1033
1132
  query GetAssignment($courseId: ID!, $assignmentId: ID!, $userId: ID!) {
1034
1133
  legacyNode(_id: $assignmentId, type: Assignment) {
1035
1134
  ... on Assignment {
@@ -1088,7 +1187,7 @@ const Fi = ae`
1088
1187
  contentType
1089
1188
  submissionPreviewUrl
1090
1189
  }
1091
- `, Ui = ae`
1190
+ `, Vi = se`
1092
1191
  query GetSubmissionComments(
1093
1192
  $submissionId: ID!
1094
1193
  $courseId: String
@@ -1137,7 +1236,7 @@ const Fi = ae`
1137
1236
  }
1138
1237
  }
1139
1238
  }
1140
- `, zi = ae`
1239
+ `, Yi = se`
1141
1240
  query getSubmissions($submissionId: ID!) {
1142
1241
  node(id: $submissionId) {
1143
1242
  ... on Submission {
@@ -1171,197 +1270,197 @@ const Fi = ae`
1171
1270
  contentType
1172
1271
  submissionPreviewUrl
1173
1272
  }
1174
- `, ve = o.object({
1175
- _id: o.string(),
1176
- displayName: o.string(),
1177
- id: o.string(),
1178
- mimeClass: o.string(),
1179
- url: o.string(),
1180
- contentType: o.string(),
1181
- submissionPreviewUrl: o.string().nullable()
1182
- }), ji = o.object({
1183
- _id: o.string(),
1184
- activeSubmissionType: o.string(),
1185
- body: o.string().nullable(),
1186
- attachments: o.array(ve).nullable()
1187
- }), Hi = o.object({
1188
- id: o.string(),
1189
- submittedAt: o.string(),
1190
- body: o.string().nullable(),
1191
- grade: o.string().nullable(),
1192
- score: o.number().nullable(),
1193
- submissionType: o.string(),
1194
- attempt: o.number(),
1195
- unreadCommentCount: o.number(),
1196
- attachment: ve.nullable(),
1197
- attachments: o.array(ve).nullable(),
1198
- submissionDraft: ji.nullable()
1199
- }), $i = o.object({
1200
- _id: o.string(),
1201
- name: o.string(),
1202
- description: o.string().nullable(),
1203
- allowedExtensions: o.array(o.string()).nullable(),
1204
- allowedAttempts: o.number().nullable(),
1205
- dueAt: o.string().nullable(),
1206
- pointsPossible: o.number().nullable(),
1207
- submissionTypes: o.array(o.string()),
1208
- gradingType: o.string(),
1209
- published: o.boolean().nullable().optional(),
1210
- submissionsConnection: o.object({
1211
- nodes: o.array(Hi)
1273
+ `, Oe = r.object({
1274
+ _id: r.string(),
1275
+ displayName: r.string(),
1276
+ id: r.string(),
1277
+ mimeClass: r.string(),
1278
+ url: r.string(),
1279
+ contentType: r.string(),
1280
+ submissionPreviewUrl: r.string().nullable()
1281
+ }), Xi = r.object({
1282
+ _id: r.string(),
1283
+ activeSubmissionType: r.string(),
1284
+ body: r.string().nullable(),
1285
+ attachments: r.array(Oe).nullable()
1286
+ }), Ki = r.object({
1287
+ id: r.string(),
1288
+ submittedAt: r.string(),
1289
+ body: r.string().nullable(),
1290
+ grade: r.string().nullable(),
1291
+ score: r.number().nullable(),
1292
+ submissionType: r.string(),
1293
+ attempt: r.number(),
1294
+ unreadCommentCount: r.number(),
1295
+ attachment: Oe.nullable(),
1296
+ attachments: r.array(Oe).nullable(),
1297
+ submissionDraft: Xi.nullable()
1298
+ }), Zi = r.object({
1299
+ _id: r.string(),
1300
+ name: r.string(),
1301
+ description: r.string().nullable(),
1302
+ allowedExtensions: r.array(r.string()).nullable(),
1303
+ allowedAttempts: r.number().nullable(),
1304
+ dueAt: r.string().nullable(),
1305
+ pointsPossible: r.number().nullable(),
1306
+ submissionTypes: r.array(r.string()),
1307
+ gradingType: r.string(),
1308
+ published: r.boolean().nullable().optional(),
1309
+ submissionsConnection: r.object({
1310
+ nodes: r.array(Ki)
1212
1311
  })
1213
- }), Bi = o.object({
1214
- legacyNode: $i,
1215
- course: o.object({
1216
- name: o.string()
1312
+ }), Qi = r.object({
1313
+ legacyNode: Zi,
1314
+ course: r.object({
1315
+ name: r.string()
1217
1316
  })
1218
- }), En = o.object({
1219
- startCursor: o.string(),
1220
- endCursor: o.string(),
1221
- hasPreviousPage: o.boolean(),
1222
- hasNextPage: o.boolean()
1223
- }), In = o.object({
1224
- _id: o.string(),
1225
- attempt: o.number(),
1226
- author: o.object({
1227
- avatarUrl: o.string().nullable(),
1228
- shortName: o.string(),
1229
- courseRoles: o.string().nullable()
1317
+ }), Dn = r.object({
1318
+ startCursor: r.string(),
1319
+ endCursor: r.string(),
1320
+ hasPreviousPage: r.boolean(),
1321
+ hasNextPage: r.boolean()
1322
+ }), Rn = r.object({
1323
+ _id: r.string(),
1324
+ attempt: r.number(),
1325
+ author: r.object({
1326
+ avatarUrl: r.string().nullable(),
1327
+ shortName: r.string(),
1328
+ courseRoles: r.string().nullable()
1230
1329
  }),
1231
- htmlComment: o.string(),
1232
- read: o.boolean(),
1233
- updatedAt: o.string(),
1234
- createdAt: o.string(),
1235
- attachments: o.array(
1236
- o.object({
1237
- url: o.string(),
1238
- mimeClass: o.string(),
1239
- displayName: o.string(),
1240
- contentType: o.string(),
1241
- id: o.string()
1330
+ htmlComment: r.string(),
1331
+ read: r.boolean(),
1332
+ updatedAt: r.string(),
1333
+ createdAt: r.string(),
1334
+ attachments: r.array(
1335
+ r.object({
1336
+ url: r.string(),
1337
+ mimeClass: r.string(),
1338
+ displayName: r.string(),
1339
+ contentType: r.string(),
1340
+ id: r.string()
1242
1341
  })
1243
1342
  ).nullable()
1244
- }), Gi = o.object({
1245
- submissionComments: o.object({
1246
- commentsConnection: o.object({
1247
- pageInfo: En,
1248
- nodes: o.array(In)
1343
+ }), Ji = r.object({
1344
+ submissionComments: r.object({
1345
+ commentsConnection: r.object({
1346
+ pageInfo: Dn,
1347
+ nodes: r.array(Rn)
1249
1348
  })
1250
1349
  })
1251
- }), Uo = o.object({
1252
- comments: o.array(In),
1253
- pageInfo: En
1254
- }), Wi = o.object({
1255
- submittedAt: o.string(),
1256
- body: o.string().nullable(),
1257
- grade: o.string().nullable(),
1258
- score: o.number().nullable(),
1259
- submissionType: o.string(),
1260
- state: o.string(),
1261
- attempt: o.number(),
1262
- attachment: ve.nullable(),
1263
- attachments: o.array(ve).nullable()
1264
- }), qi = o.object({
1265
- node: o.object({
1266
- submissionHistoriesConnection: o.object({
1267
- nodes: o.array(Wi)
1350
+ }), qr = r.object({
1351
+ comments: r.array(Rn),
1352
+ pageInfo: Dn
1353
+ }), er = r.object({
1354
+ submittedAt: r.string(),
1355
+ body: r.string().nullable(),
1356
+ grade: r.string().nullable(),
1357
+ score: r.number().nullable(),
1358
+ submissionType: r.string(),
1359
+ state: r.string(),
1360
+ attempt: r.number(),
1361
+ attachment: Oe.nullable(),
1362
+ attachments: r.array(Oe).nullable()
1363
+ }), tr = r.object({
1364
+ node: r.object({
1365
+ submissionHistoriesConnection: r.object({
1366
+ nodes: r.array(er)
1268
1367
  })
1269
1368
  })
1270
- }), Le = o.object({
1271
- attribute: o.string(),
1272
- message: o.string()
1273
- }), Yi = o.object({
1274
- createSubmissionComment: o.object({
1275
- submissionComment: o.object({
1276
- _id: o.string(),
1277
- attachments: o.array(
1278
- o.object({
1279
- _id: o.string(),
1280
- displayName: o.string(),
1281
- id: o.string(),
1282
- mimeClass: o.string(),
1283
- url: o.string()
1369
+ }), Le = r.object({
1370
+ attribute: r.string(),
1371
+ message: r.string()
1372
+ }), nr = r.object({
1373
+ createSubmissionComment: r.object({
1374
+ submissionComment: r.object({
1375
+ _id: r.string(),
1376
+ attachments: r.array(
1377
+ r.object({
1378
+ _id: r.string(),
1379
+ displayName: r.string(),
1380
+ id: r.string(),
1381
+ mimeClass: r.string(),
1382
+ url: r.string()
1284
1383
  })
1285
1384
  ).nullable(),
1286
- author: o.object({
1287
- avatarUrl: o.string().nullable(),
1288
- shortName: o.string()
1385
+ author: r.object({
1386
+ avatarUrl: r.string().nullable(),
1387
+ shortName: r.string()
1289
1388
  }),
1290
- htmlComment: o.string(),
1291
- mediaObject: o.object({
1292
- id: o.string(),
1293
- _id: o.string(),
1294
- mediaSources: o.array(
1295
- o.object({
1296
- height: o.string(),
1297
- src: o.string(),
1298
- type: o.string(),
1299
- width: o.string()
1389
+ htmlComment: r.string(),
1390
+ mediaObject: r.object({
1391
+ id: r.string(),
1392
+ _id: r.string(),
1393
+ mediaSources: r.array(
1394
+ r.object({
1395
+ height: r.string(),
1396
+ src: r.string(),
1397
+ type: r.string(),
1398
+ width: r.string()
1300
1399
  })
1301
1400
  ),
1302
- mediaTracks: o.array(
1303
- o.object({
1304
- _id: o.string(),
1305
- locale: o.string(),
1306
- content: o.string(),
1307
- kind: o.string()
1401
+ mediaTracks: r.array(
1402
+ r.object({
1403
+ _id: r.string(),
1404
+ locale: r.string(),
1405
+ content: r.string(),
1406
+ kind: r.string()
1308
1407
  })
1309
1408
  ),
1310
- mediaType: o.string(),
1311
- title: o.string()
1409
+ mediaType: r.string(),
1410
+ title: r.string()
1312
1411
  }).nullable(),
1313
- read: o.boolean(),
1314
- updatedAt: o.string()
1412
+ read: r.boolean(),
1413
+ updatedAt: r.string()
1315
1414
  }).nullable(),
1316
- errors: o.array(Le).nullable()
1415
+ errors: r.array(Le).nullable()
1317
1416
  })
1318
- }), Vi = o.object({
1319
- markSubmissionCommentsRead: o.object({
1320
- errors: o.array(Le).nullable()
1417
+ }), ir = r.object({
1418
+ markSubmissionCommentsRead: r.object({
1419
+ errors: r.array(Le).nullable()
1321
1420
  })
1322
- }), zo = o.object({
1323
- createSubmission: o.object({
1324
- submission: o.object({
1325
- _id: o.string(),
1326
- createdAt: o.string(),
1327
- attempt: o.number(),
1328
- submittedAt: o.string().nullable(),
1329
- score: o.number().nullable()
1421
+ }), Vr = r.object({
1422
+ createSubmission: r.object({
1423
+ submission: r.object({
1424
+ _id: r.string(),
1425
+ createdAt: r.string(),
1426
+ attempt: r.number(),
1427
+ submittedAt: r.string().nullable(),
1428
+ score: r.number().nullable()
1330
1429
  }).nullable(),
1331
- errors: o.array(Le).nullable()
1430
+ errors: r.array(Le).nullable()
1332
1431
  })
1333
- }), jo = o.object(
1432
+ }), Yr = r.object(
1334
1433
  {
1335
- createSubmissionDraft: o.object({
1336
- submissionDraft: o.object({
1337
- _id: o.string()
1434
+ createSubmissionDraft: r.object({
1435
+ submissionDraft: r.object({
1436
+ _id: r.string()
1338
1437
  }).nullable(),
1339
- errors: o.array(Le).nullable()
1438
+ errors: r.array(Le).nullable()
1340
1439
  })
1341
1440
  }
1342
- ), Ho = o.object(
1441
+ ), Xr = r.object(
1343
1442
  {
1344
- deleteSubmissionDraft: o.object({
1345
- submissionDraftIds: o.array(o.string()).nullable(),
1346
- errors: o.array(Le).nullable()
1443
+ deleteSubmissionDraft: r.object({
1444
+ submissionDraftIds: r.array(r.string()).nullable(),
1445
+ errors: r.array(Le).nullable()
1347
1446
  })
1348
1447
  }
1349
1448
  );
1350
- function Xi({
1449
+ function rr({
1351
1450
  courseId: t,
1352
1451
  assignmentId: n,
1353
1452
  userId: i,
1354
- executeQuery: s,
1453
+ executeQuery: o,
1355
1454
  enabled: l = !0
1356
1455
  }) {
1357
- return Ve({
1456
+ return Xe({
1358
1457
  queryKey: ["assignment-review", "assignment", t, n, i],
1359
1458
  queryFn: async () => {
1360
- const c = await s(Fi, {
1459
+ const c = await o(qi, {
1361
1460
  courseId: t,
1362
1461
  assignmentId: n,
1363
1462
  userId: i
1364
- }), d = Bi.parse(c);
1463
+ }), d = Qi.parse(c);
1365
1464
  return {
1366
1465
  ...d.legacyNode,
1367
1466
  courseName: d.course.name
@@ -1370,37 +1469,37 @@ function Xi({
1370
1469
  enabled: l
1371
1470
  });
1372
1471
  }
1373
- function Ki({
1472
+ function or({
1374
1473
  submissionId: t,
1375
1474
  executeQuery: n,
1376
1475
  enabled: i = !0
1377
1476
  }) {
1378
- return Ve({
1477
+ return Xe({
1379
1478
  queryKey: ["assignment-review", "submissions", t],
1380
1479
  queryFn: async () => {
1381
- const s = await n(zi, { submissionId: t });
1382
- return qi.parse(s).node.submissionHistoriesConnection.nodes.slice().sort(
1480
+ const o = await n(Yi, { submissionId: t });
1481
+ return tr.parse(o).node.submissionHistoriesConnection.nodes.slice().sort(
1383
1482
  (c, d) => new Date(d.submittedAt).getTime() - new Date(c.submittedAt).getTime()
1384
1483
  );
1385
1484
  },
1386
1485
  enabled: i
1387
1486
  });
1388
1487
  }
1389
- function Zi(t) {
1488
+ function ar(t) {
1390
1489
  if (!t) return "";
1391
1490
  const n = new Date(t);
1392
1491
  return Number.isNaN(n.getTime()) ? "" : n.toLocaleDateString();
1393
1492
  }
1394
- function Qi({
1493
+ function sr({
1395
1494
  submission: t,
1396
1495
  isSelected: n,
1397
1496
  isDraft: i = !1,
1398
- pointsPossible: s,
1497
+ pointsPossible: o,
1399
1498
  onClick: l
1400
1499
  }) {
1401
- const c = q(), d = i ? c.submissionCurrentAttempt() : c.commentsAttempt({ number: t.attempt }), p = t.score != null && s != null ? `${t.score}/${s}` : null;
1402
- return /* @__PURE__ */ r(
1403
- K,
1500
+ const c = V(), d = i ? c.submissionCurrentAttempt() : c.commentsAttempt({ number: t.attempt }), p = t.score != null && o != null ? `${t.score}/${o}` : null;
1501
+ return /* @__PURE__ */ a(
1502
+ Z,
1404
1503
  {
1405
1504
  as: "div",
1406
1505
  padding: "small medium",
@@ -1418,49 +1517,49 @@ function Qi({
1418
1517
  children: /* @__PURE__ */ S(b, { justifyItems: "space-between", alignItems: "center", children: [
1419
1518
  /* @__PURE__ */ S(b, { direction: "column", gap: "xx-small", children: [
1420
1519
  /* @__PURE__ */ S(b, { gap: "small", alignItems: "center", children: [
1421
- /* @__PURE__ */ r(_, { weight: "bold", children: d }),
1422
- i && /* @__PURE__ */ r(_t, { color: "info", children: c.submissionDraft() })
1520
+ /* @__PURE__ */ a(_, { weight: "bold", children: d }),
1521
+ i && /* @__PURE__ */ a(Et, { color: "info", children: c.submissionDraft() })
1423
1522
  ] }),
1424
- !i && t.submittedAt && /* @__PURE__ */ r(_, { size: "small", color: "secondary", children: Zi(t.submittedAt) })
1523
+ !i && t.submittedAt && /* @__PURE__ */ a(_, { size: "small", color: "secondary", children: ar(t.submittedAt) })
1425
1524
  ] }),
1426
- p && /* @__PURE__ */ r(_, { weight: "bold", children: p })
1525
+ p && /* @__PURE__ */ a(_, { weight: "bold", children: p })
1427
1526
  ] })
1428
1527
  }
1429
1528
  );
1430
1529
  }
1431
- function Ji({
1530
+ function lr({
1432
1531
  submissionId: t,
1433
1532
  selectedAttempt: n,
1434
1533
  onAttemptSelect: i,
1435
- pointsPossible: s,
1534
+ pointsPossible: o,
1436
1535
  executeQuery: l
1437
1536
  }) {
1438
- const c = q(), { data: d, isLoading: p, isError: m } = Ki({
1537
+ const c = V(), { data: d, isLoading: p, isError: m } = or({
1439
1538
  submissionId: t,
1440
1539
  executeQuery: l
1441
1540
  });
1442
1541
  if (p)
1443
- return /* @__PURE__ */ r(b, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ r(Ye, { renderTitle: c.navigationAttempts(), size: "small" }) });
1542
+ return /* @__PURE__ */ a(b, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ a(Ye, { renderTitle: c.navigationAttempts(), size: "small" }) });
1444
1543
  if (m)
1445
- return /* @__PURE__ */ r(b, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ r(_, { color: "danger", children: c.submissionLoadAttemptsError() }) });
1544
+ return /* @__PURE__ */ a(b, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ a(_, { color: "danger", children: c.submissionLoadAttemptsError() }) });
1446
1545
  const f = (d == null ? void 0 : d.filter((h) => h.attempt > 0)) ?? [];
1447
- return f.length === 0 ? /* @__PURE__ */ r(b, { padding: "medium", children: /* @__PURE__ */ r(_, { color: "secondary", children: c.submissionNoAttempts() }) }) : /* @__PURE__ */ r(b, { direction: "column", gap: "x-small", padding: "none none medium none", children: f.map((h) => /* @__PURE__ */ r(
1448
- Qi,
1546
+ return f.length === 0 ? /* @__PURE__ */ a(b, { padding: "medium", children: /* @__PURE__ */ a(_, { color: "secondary", children: c.submissionNoAttempts() }) }) : /* @__PURE__ */ a(b, { direction: "column", gap: "x-small", padding: "none none medium none", children: f.map((h) => /* @__PURE__ */ a(
1547
+ sr,
1449
1548
  {
1450
1549
  submission: h,
1451
1550
  isSelected: n === h.attempt,
1452
- pointsPossible: s,
1551
+ pointsPossible: o,
1453
1552
  onClick: () => i(h)
1454
1553
  },
1455
1554
  h.attempt
1456
1555
  )) });
1457
1556
  }
1458
- function wn({
1557
+ function Nn({
1459
1558
  attachments: t,
1460
1559
  size: n = "medium"
1461
1560
  }) {
1462
- return t.length === 0 ? null : /* @__PURE__ */ r(b, { direction: "column", gap: "x-small", children: t.map((i) => /* @__PURE__ */ r(
1463
- K,
1561
+ return t.length === 0 ? null : /* @__PURE__ */ a(b, { direction: "column", gap: "x-small", children: t.map((i) => /* @__PURE__ */ a(
1562
+ Z,
1464
1563
  {
1465
1564
  as: "div",
1466
1565
  padding: n === "small" ? "x-small" : "small medium",
@@ -1468,85 +1567,85 @@ function wn({
1468
1567
  borderWidth: "small",
1469
1568
  borderRadius: "medium",
1470
1569
  children: /* @__PURE__ */ S(b, { as: "div", gap: "small", width: "100%", justifyItems: "space-between", alignItems: "center", children: [
1471
- /* @__PURE__ */ r(b.Item, { shouldShrink: !0, children: /* @__PURE__ */ r(hn, { children: i.displayName }) }),
1472
- /* @__PURE__ */ r(Zn, { href: i.url, isWithinText: !1, renderIcon: /* @__PURE__ */ r(Hn, {}), children: /* @__PURE__ */ r(Et, { children: `Download ${i.displayName}` }) })
1570
+ /* @__PURE__ */ a(b.Item, { shouldShrink: !0, children: /* @__PURE__ */ a(An, { children: i.displayName }) }),
1571
+ /* @__PURE__ */ a(ti, { href: i.url, isWithinText: !1, renderIcon: /* @__PURE__ */ a(Wn, {}), children: /* @__PURE__ */ a(It, { children: `Download ${i.displayName}` }) })
1473
1572
  ] })
1474
1573
  },
1475
1574
  i.id
1476
1575
  )) });
1477
1576
  }
1478
- function eo(t) {
1479
- return /* @__PURE__ */ r("span", { dangerouslySetInnerHTML: { __html: It(t) } });
1577
+ function cr(t) {
1578
+ return /* @__PURE__ */ a("span", { dangerouslySetInnerHTML: { __html: wt(t) } });
1480
1579
  }
1481
- function to({
1580
+ function mr({
1482
1581
  submission: t,
1483
1582
  isLastAttempt: n = !0,
1484
1583
  showAttemptLabel: i = !0,
1485
- renderHTML: s
1584
+ renderHTML: o
1486
1585
  }) {
1487
- const l = q(), c = s ?? eo, d = (t == null ? void 0 : t.submissionType) === "online_text_entry", p = (t == null ? void 0 : t.submissionType) === "online_upload", m = d ? l.submissionTextHeading() : l.submissionUploadHeading(), f = qe(() => {
1586
+ const l = V(), c = o ?? cr, d = (t == null ? void 0 : t.submissionType) === "online_text_entry", p = (t == null ? void 0 : t.submissionType) === "online_upload", m = d ? l.submissionTextHeading() : l.submissionUploadHeading(), f = Ve(() => {
1488
1587
  if (!t) return [];
1489
1588
  const C = [];
1490
1589
  if (t.attachment && C.push(t.attachment), t.attachments)
1491
1590
  for (const I of t.attachments)
1492
1591
  C.some((w) => w.id === I.id) || C.push(I);
1493
1592
  return C;
1494
- }, [t]), h = qe(() => c((t == null ? void 0 : t.body) ?? ""), [t == null ? void 0 : t.body, c]);
1495
- return t ? /* @__PURE__ */ r(K, { as: "div", children: /* @__PURE__ */ S(b, { direction: "column", gap: "small", children: [
1496
- i && !n && t.attempt != null && /* @__PURE__ */ r(_, { size: "small", weight: "bold", color: "secondary", children: l.submissionViewingAttempt({ number: t.attempt }) }),
1593
+ }, [t]), h = Ve(() => c((t == null ? void 0 : t.body) ?? ""), [t == null ? void 0 : t.body, c]);
1594
+ return t ? /* @__PURE__ */ a(Z, { as: "div", children: /* @__PURE__ */ S(b, { direction: "column", gap: "small", children: [
1595
+ i && !n && t.attempt != null && /* @__PURE__ */ a(_, { size: "small", weight: "bold", color: "secondary", children: l.submissionViewingAttempt({ number: t.attempt }) }),
1497
1596
  /* @__PURE__ */ S(b, { gap: "x-small", alignItems: "center", children: [
1498
- /* @__PURE__ */ r($n, { color: "success" }),
1499
- /* @__PURE__ */ r(St, { level: "h3", children: m })
1597
+ /* @__PURE__ */ a(qn, { color: "success" }),
1598
+ /* @__PURE__ */ a(_t, { level: "h3", children: m })
1500
1599
  ] }),
1501
1600
  d && t.body && /* @__PURE__ */ S(b, { alignItems: "stretch", gap: "small", children: [
1502
- /* @__PURE__ */ r(K, { as: "div", width: "4px", background: "primary", borderRadius: "small" }),
1503
- /* @__PURE__ */ r(K, { as: "div", children: /* @__PURE__ */ r(_, { children: h }) })
1601
+ /* @__PURE__ */ a(Z, { as: "div", width: "4px", background: "primary", borderRadius: "small" }),
1602
+ /* @__PURE__ */ a(Z, { as: "div", children: /* @__PURE__ */ a(_, { children: h }) })
1504
1603
  ] }),
1505
- p && f.length > 0 && /* @__PURE__ */ r(wn, { attachments: f })
1604
+ p && f.length > 0 && /* @__PURE__ */ a(Nn, { attachments: f })
1506
1605
  ] }) }) : null;
1507
1606
  }
1508
- function no(t) {
1607
+ function ur(t) {
1509
1608
  const n = new Date(t);
1510
1609
  return Number.isNaN(n.getTime()) ? "" : n.toLocaleDateString(void 0, { month: "short", day: "numeric", year: "numeric" });
1511
1610
  }
1512
- function io() {
1513
- return /* @__PURE__ */ r(_, { color: "secondary", size: "small", children: "|" });
1611
+ function dr() {
1612
+ return /* @__PURE__ */ a(_, { color: "secondary", size: "small", children: "|" });
1514
1613
  }
1515
- function oo({
1614
+ function fr({
1516
1615
  score: t,
1517
1616
  pointsPossible: n,
1518
1617
  gradingType: i,
1519
- dueAt: s,
1618
+ dueAt: o,
1520
1619
  allowedAttempts: l,
1521
1620
  currentAttempt: c,
1522
1621
  isOverdue: d,
1523
1622
  estimatedDuration: p,
1524
1623
  labels: m
1525
1624
  }) {
1526
- const f = q(), h = [];
1625
+ const f = V(), h = [];
1527
1626
  return p && h.push(
1528
- /* @__PURE__ */ r(_, { size: "small", children: (m == null ? void 0 : m.duration) ?? f.headerDuration({ minutes: p }) }, "duration")
1627
+ /* @__PURE__ */ a(_, { size: "small", children: (m == null ? void 0 : m.duration) ?? f.headerDuration({ minutes: p }) }, "duration")
1529
1628
  ), t != null && n != null ? h.push(
1530
- /* @__PURE__ */ r(_, { size: "small", children: (m == null ? void 0 : m.score) ?? f.headerScore({ score: t, total: n }) }, "score")
1629
+ /* @__PURE__ */ a(_, { size: "small", children: (m == null ? void 0 : m.score) ?? f.headerScore({ score: t, total: n }) }, "score")
1531
1630
  ) : n != null && i !== "not_graded" && h.push(
1532
- /* @__PURE__ */ r(_, { size: "small", children: (m == null ? void 0 : m.pointsPossible) ?? f.headerPointsPossible({ points: n }) }, "points")
1631
+ /* @__PURE__ */ a(_, { size: "small", children: (m == null ? void 0 : m.pointsPossible) ?? f.headerPointsPossible({ points: n }) }, "points")
1533
1632
  ), l != null && (l === -1 ? h.push(
1534
- /* @__PURE__ */ r(_, { size: "small", children: (m == null ? void 0 : m.attempts) ?? f.headerAttemptsUnlimited() }, "attempts")
1633
+ /* @__PURE__ */ a(_, { size: "small", children: (m == null ? void 0 : m.attempts) ?? f.headerAttemptsUnlimited() }, "attempts")
1535
1634
  ) : c != null ? h.push(
1536
- /* @__PURE__ */ r(_, { size: "small", children: (m == null ? void 0 : m.attempts) ?? f.headerAttemptOf({ current: c, total: l }) }, "attempts")
1635
+ /* @__PURE__ */ a(_, { size: "small", children: (m == null ? void 0 : m.attempts) ?? f.headerAttemptOf({ current: c, total: l }) }, "attempts")
1537
1636
  ) : h.push(
1538
- /* @__PURE__ */ r(_, { size: "small", children: (m == null ? void 0 : m.attempts) ?? f.headerAttemptsAllowed({ count: l }) }, "attempts")
1539
- )), s && h.push(
1540
- /* @__PURE__ */ r(_, { size: "small", children: (m == null ? void 0 : m.dueDate) ?? f.headerDueDate({ date: no(s) }) }, "due")
1637
+ /* @__PURE__ */ a(_, { size: "small", children: (m == null ? void 0 : m.attempts) ?? f.headerAttemptsAllowed({ count: l }) }, "attempts")
1638
+ )), o && h.push(
1639
+ /* @__PURE__ */ a(_, { size: "small", children: (m == null ? void 0 : m.dueDate) ?? f.headerDueDate({ date: ur(o) }) }, "due")
1541
1640
  ), /* @__PURE__ */ S(b, { as: "div", direction: "row", alignItems: "center", gap: "small", children: [
1542
1641
  h.map((C, I) => /* @__PURE__ */ S(b, { gap: "small", alignItems: "center", children: [
1543
- I > 0 && /* @__PURE__ */ r(io, {}),
1642
+ I > 0 && /* @__PURE__ */ a(dr, {}),
1544
1643
  C
1545
1644
  ] }, `item-${String(I)}`)),
1546
- d && /* @__PURE__ */ r(_t, { color: "danger", children: (m == null ? void 0 : m.overdue) ?? f.headerOverdue() })
1645
+ d && /* @__PURE__ */ a(Et, { color: "danger", children: (m == null ? void 0 : m.overdue) ?? f.headerOverdue() })
1547
1646
  ] });
1548
1647
  }
1549
- const ro = ae`
1648
+ const pr = se`
1550
1649
  mutation CreateSubmissionComment(
1551
1650
  $id: ID!
1552
1651
  $submissionAttempt: Int!
@@ -1636,7 +1735,7 @@ const ro = ae`
1636
1735
  mimeClass
1637
1736
  url
1638
1737
  }
1639
- `, so = ae`
1738
+ `, gr = se`
1640
1739
  mutation MarkSubmissionCommentsRead(
1641
1740
  $submissionId: ID!
1642
1741
  $submissionCommentIds: [ID!]!
@@ -1653,7 +1752,7 @@ const ro = ae`
1653
1752
  }
1654
1753
  }
1655
1754
  }
1656
- `, $o = ae`
1755
+ `, Kr = se`
1657
1756
  mutation CreateSubmission(
1658
1757
  $assignmentLid: ID!
1659
1758
  $submissionType: OnlineSubmissionType!
@@ -1681,7 +1780,7 @@ const ro = ae`
1681
1780
  }
1682
1781
  }
1683
1782
  }
1684
- `, Bo = ae`
1783
+ `, Zr = se`
1685
1784
  mutation CreateSubmissionDraft(
1686
1785
  $submissionId: ID!
1687
1786
  $submissionType: DraftableSubmissionType!
@@ -1707,7 +1806,7 @@ const ro = ae`
1707
1806
  }
1708
1807
  }
1709
1808
  }
1710
- `, Go = ae`
1809
+ `, Qr = se`
1711
1810
  mutation DeleteSubmissionDraft($submissionId: ID!) {
1712
1811
  deleteSubmissionDraft(input: { submissionId: $submissionId }) {
1713
1812
  submissionDraftIds
@@ -1718,36 +1817,36 @@ const ro = ae`
1718
1817
  }
1719
1818
  }
1720
1819
  `;
1721
- function ao({
1820
+ function hr({
1722
1821
  executeQuery: t
1723
1822
  }) {
1724
- const n = un();
1725
- return dn({
1726
- mutationFn: async ({ submissionId: i, attempt: s, comment: l, fileIds: c }) => {
1727
- const d = await t(ro, {
1823
+ const n = gn();
1824
+ return hn({
1825
+ mutationFn: async ({ submissionId: i, attempt: o, comment: l, fileIds: c }) => {
1826
+ const d = await t(pr, {
1728
1827
  id: i,
1729
- submissionAttempt: s,
1828
+ submissionAttempt: o,
1730
1829
  comment: l,
1731
1830
  fileIds: c
1732
1831
  });
1733
- return Yi.parse(d), d;
1832
+ return nr.parse(d), d;
1734
1833
  },
1735
- onSuccess: (i, s) => {
1834
+ onSuccess: (i, o) => {
1736
1835
  n.invalidateQueries({
1737
- queryKey: ["assignment-review", "submission-comments", s.submissionId]
1836
+ queryKey: ["assignment-review", "submission-comments", o.submissionId]
1738
1837
  });
1739
1838
  }
1740
1839
  });
1741
1840
  }
1742
- function lo({
1841
+ function br({
1743
1842
  submissionId: t,
1744
1843
  courseId: n,
1745
1844
  pageParams: i,
1746
- direction: s,
1845
+ direction: o,
1747
1846
  executeQuery: l,
1748
1847
  enabled: c
1749
1848
  }) {
1750
- return Ve({
1849
+ return Xe({
1751
1850
  queryKey: [
1752
1851
  "assignment-review",
1753
1852
  "submission-comments",
@@ -1755,17 +1854,17 @@ function lo({
1755
1854
  n,
1756
1855
  i == null ? void 0 : i.startCursor,
1757
1856
  i == null ? void 0 : i.endCursor,
1758
- s
1857
+ o
1759
1858
  ],
1760
1859
  queryFn: async () => {
1761
- const d = await l(Ui, {
1860
+ const d = await l(Vi, {
1762
1861
  submissionId: t,
1763
1862
  courseId: n,
1764
- beforeCursor: s === "prev" ? (i == null ? void 0 : i.startCursor) ?? null : null,
1765
- afterCursor: s === "next" ? (i == null ? void 0 : i.endCursor) ?? null : null,
1766
- first: s === "next" ? 5 : null,
1767
- last: s === "prev" || !s ? 5 : null
1768
- }), p = Gi.parse(d);
1863
+ beforeCursor: o === "prev" ? (i == null ? void 0 : i.startCursor) ?? null : null,
1864
+ afterCursor: o === "next" ? (i == null ? void 0 : i.endCursor) ?? null : null,
1865
+ first: o === "next" ? 5 : null,
1866
+ last: o === "prev" || !o ? 5 : null
1867
+ }), p = Ji.parse(d);
1769
1868
  return {
1770
1869
  comments: [...p.submissionComments.commentsConnection.nodes].sort(
1771
1870
  (f, h) => new Date(f.createdAt).getTime() - new Date(h.createdAt).getTime()
@@ -1776,42 +1875,42 @@ function lo({
1776
1875
  enabled: c ?? !!t
1777
1876
  });
1778
1877
  }
1779
- function co({
1878
+ function Tr({
1780
1879
  executeQuery: t
1781
1880
  }) {
1782
- const n = un();
1783
- return dn({
1784
- mutationFn: async ({ submissionId: i, submissionCommentIds: s }) => {
1881
+ const n = gn();
1882
+ return hn({
1883
+ mutationFn: async ({ submissionId: i, submissionCommentIds: o }) => {
1785
1884
  const l = await t(
1786
- so,
1787
- { submissionId: i, submissionCommentIds: s }
1885
+ gr,
1886
+ { submissionId: i, submissionCommentIds: o }
1788
1887
  );
1789
- return Vi.parse(l), l;
1888
+ return ir.parse(l), l;
1790
1889
  },
1791
- onSuccess: (i, s) => {
1890
+ onSuccess: (i, o) => {
1792
1891
  n.invalidateQueries({
1793
1892
  queryKey: ["assignment-review", "assignment"],
1794
- predicate: (l) => l.queryKey.includes(s.assignmentId)
1893
+ predicate: (l) => l.queryKey.includes(o.assignmentId)
1795
1894
  });
1796
1895
  }
1797
1896
  });
1798
1897
  }
1799
- function mo(t) {
1800
- return /* @__PURE__ */ r("span", { dangerouslySetInnerHTML: { __html: It(t) } });
1898
+ function yr(t) {
1899
+ return /* @__PURE__ */ a("span", { dangerouslySetInnerHTML: { __html: wt(t) } });
1801
1900
  }
1802
- function uo(t) {
1901
+ function Ar(t) {
1803
1902
  const n = new Date(t);
1804
1903
  return Number.isNaN(n.getTime()) ? "" : n.toLocaleString();
1805
1904
  }
1806
- function fo({
1905
+ function Sr({
1807
1906
  comment: t,
1808
1907
  isFullWidth: n,
1809
1908
  renderHTML: i
1810
1909
  }) {
1811
1910
  var m;
1812
- const s = q(), l = i ?? mo, c = ((m = t.author.courseRoles) == null ? void 0 : m.includes("StudentEnrollment")) ?? !1, d = qe(() => l(t.htmlComment), [t.htmlComment, l]);
1813
- return /* @__PURE__ */ r(
1814
- K,
1911
+ const o = V(), l = i ?? yr, c = ((m = t.author.courseRoles) == null ? void 0 : m.includes("StudentEnrollment")) ?? !1, d = Ve(() => l(t.htmlComment), [t.htmlComment, l]);
1912
+ return /* @__PURE__ */ a(
1913
+ Z,
1815
1914
  {
1816
1915
  as: "div",
1817
1916
  padding: "small medium",
@@ -1822,15 +1921,15 @@ function fo({
1822
1921
  children: /* @__PURE__ */ S(b, { as: "div", direction: "column", gap: "small", children: [
1823
1922
  /* @__PURE__ */ S(b, { as: "div", direction: "column", gap: "xx-small", children: [
1824
1923
  /* @__PURE__ */ S(b, { as: "div", justifyItems: "space-between", alignItems: "center", children: [
1825
- /* @__PURE__ */ r(b.Item, { shouldShrink: !0, children: /* @__PURE__ */ r(_, { weight: "bold", size: "medium", children: /* @__PURE__ */ r(hn, { children: t.author.shortName }) }) }),
1826
- !t.read && /* @__PURE__ */ r(Tn, { type: "notification", standalone: !0, children: /* @__PURE__ */ r(Et, { children: s.commentsUnreadSingle() }) })
1924
+ /* @__PURE__ */ a(b.Item, { shouldShrink: !0, children: /* @__PURE__ */ a(_, { weight: "bold", size: "medium", children: /* @__PURE__ */ a(An, { children: t.author.shortName }) }) }),
1925
+ !t.read && /* @__PURE__ */ a(_n, { type: "notification", standalone: !0, children: /* @__PURE__ */ a(It, { children: o.commentsUnreadSingle() }) })
1827
1926
  ] }),
1828
- /* @__PURE__ */ r(_, { size: "small", color: "secondary", children: uo(t.createdAt) }),
1829
- t.attempt > 0 && /* @__PURE__ */ r(_, { size: "small", color: "secondary", children: s.commentsAttempt({ number: t.attempt }) })
1927
+ /* @__PURE__ */ a(_, { size: "small", color: "secondary", children: Ar(t.createdAt) }),
1928
+ t.attempt > 0 && /* @__PURE__ */ a(_, { size: "small", color: "secondary", children: o.commentsAttempt({ number: t.attempt }) })
1830
1929
  ] }),
1831
- /* @__PURE__ */ r(_, { size: "medium", children: d }),
1832
- t.attachments && t.attachments.length > 0 && /* @__PURE__ */ r(
1833
- wn,
1930
+ /* @__PURE__ */ a(_, { size: "medium", children: d }),
1931
+ t.attachments && t.attachments.length > 0 && /* @__PURE__ */ a(
1932
+ Nn,
1834
1933
  {
1835
1934
  attachments: t.attachments.map((f) => ({
1836
1935
  ...f,
@@ -1844,43 +1943,43 @@ function fo({
1844
1943
  }
1845
1944
  );
1846
1945
  }
1847
- function po({
1946
+ function _r({
1848
1947
  submissionId: t,
1849
1948
  courseId: n,
1850
1949
  assignmentId: i,
1851
- attempt: s,
1950
+ attempt: o,
1852
1951
  canPostComment: l,
1853
1952
  onCommentPosted: c,
1854
1953
  renderHTML: d,
1855
1954
  executeQuery: p
1856
1955
  }) {
1857
- const m = q(), [f, h] = Ee(""), [C, I] = Ee({}), w = zn(/* @__PURE__ */ new Set()), { data: y, isLoading: V, isError: fe } = lo({
1956
+ const m = V(), [f, h] = Ee(""), [C, I] = Ee({}), w = Bn(/* @__PURE__ */ new Set()), { data: y, isLoading: X, isError: fe } = br({
1858
1957
  submissionId: t,
1859
1958
  courseId: n,
1860
1959
  pageParams: C.pageParams,
1861
1960
  direction: C.direction,
1862
1961
  executeQuery: p
1863
- }), le = ao({ executeQuery: p }), M = co({ executeQuery: p });
1864
- Tt(() => {
1962
+ }), le = hr({ executeQuery: p }), M = Tr({ executeQuery: p });
1963
+ yt(() => {
1865
1964
  if (!(y != null && y.comments) || y.comments.length === 0) return;
1866
- const E = y.comments.filter((N) => !N.read && !w.current.has(N._id)).filter((N) => {
1965
+ const E = y.comments.filter((v) => !v.read && !w.current.has(v._id)).filter((v) => {
1867
1966
  var ee;
1868
- return !((ee = N.author.courseRoles) != null && ee.includes("StudentEnrollment"));
1869
- }).map((N) => N._id);
1967
+ return !((ee = v.author.courseRoles) != null && ee.includes("StudentEnrollment"));
1968
+ }).map((v) => v._id);
1870
1969
  if (E.length > 0) {
1871
- for (const N of E)
1872
- w.current.add(N);
1970
+ for (const v of E)
1971
+ w.current.add(v);
1873
1972
  M.mutate({ submissionId: t, assignmentId: i, submissionCommentIds: E });
1874
1973
  }
1875
1974
  }, [y == null ? void 0 : y.comments, t, i, M]);
1876
1975
  const ie = y == null ? void 0 : y.comments.some(
1877
1976
  (E) => {
1878
- var N;
1879
- return !((N = E.author.courseRoles) != null && N.includes("StudentEnrollment"));
1977
+ var v;
1978
+ return !((v = E.author.courseRoles) != null && v.includes("StudentEnrollment"));
1880
1979
  }
1881
- ), O = () => {
1980
+ ), N = () => {
1882
1981
  f.trim() && le.mutate(
1883
- { submissionId: t, attempt: s, comment: f },
1982
+ { submissionId: t, attempt: o, comment: f },
1884
1983
  {
1885
1984
  onSuccess: () => {
1886
1985
  h(""), c == null || c();
@@ -1888,10 +1987,10 @@ function po({
1888
1987
  }
1889
1988
  );
1890
1989
  }, ce = (y == null ? void 0 : y.pageInfo.hasNextPage) || (y == null ? void 0 : y.pageInfo.hasPreviousPage);
1891
- return V || !y && !fe ? /* @__PURE__ */ r(b, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ r(Ye, { renderTitle: m.commentsPanelTitle(), size: "small" }) }) : fe ? /* @__PURE__ */ r(b, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ r(_, { color: "danger", children: m.commentsLoadError() }) }) : /* @__PURE__ */ S(b, { as: "div", direction: "column", justifyItems: "space-between", height: "100%", children: [
1990
+ return X || !y && !fe ? /* @__PURE__ */ a(b, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ a(Ye, { renderTitle: m.commentsPanelTitle(), size: "small" }) }) : fe ? /* @__PURE__ */ a(b, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ a(_, { color: "danger", children: m.commentsLoadError() }) }) : /* @__PURE__ */ S(b, { as: "div", direction: "column", justifyItems: "space-between", height: "100%", children: [
1892
1991
  /* @__PURE__ */ S(b, { as: "div", direction: "column", children: [
1893
- y.comments.length === 0 ? /* @__PURE__ */ r(b, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ r(_, { color: "secondary", children: m.commentsEmpty() }) }) : /* @__PURE__ */ r(b, { direction: "column", gap: "x-small", children: y.comments.map((E) => /* @__PURE__ */ r(
1894
- fo,
1992
+ y.comments.length === 0 ? /* @__PURE__ */ a(b, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ a(_, { color: "secondary", children: m.commentsEmpty() }) }) : /* @__PURE__ */ a(b, { direction: "column", gap: "x-small", children: y.comments.map((E) => /* @__PURE__ */ a(
1993
+ Sr,
1895
1994
  {
1896
1995
  comment: E,
1897
1996
  isFullWidth: !ie,
@@ -1900,20 +1999,20 @@ function po({
1900
1999
  E._id
1901
2000
  )) }),
1902
2001
  ce && /* @__PURE__ */ S(b, { justifyItems: "space-between", padding: "small none", children: [
1903
- /* @__PURE__ */ r(
2002
+ /* @__PURE__ */ a(
1904
2003
  $,
1905
2004
  {
1906
- renderIcon: () => /* @__PURE__ */ r(Bn, {}),
2005
+ renderIcon: () => /* @__PURE__ */ a(Vn, {}),
1907
2006
  size: "small",
1908
2007
  interaction: y.pageInfo.hasPreviousPage ? "enabled" : "disabled",
1909
2008
  onClick: () => I({ pageParams: y.pageInfo, direction: "prev" }),
1910
2009
  children: m.commentsPreviousComments()
1911
2010
  }
1912
2011
  ),
1913
- /* @__PURE__ */ r(
2012
+ /* @__PURE__ */ a(
1914
2013
  $,
1915
2014
  {
1916
- renderIcon: () => /* @__PURE__ */ r(Gn, {}),
2015
+ renderIcon: () => /* @__PURE__ */ a(Yn, {}),
1917
2016
  size: "small",
1918
2017
  interaction: y.pageInfo.hasNextPage ? "enabled" : "disabled",
1919
2018
  onClick: () => I({ pageParams: y.pageInfo, direction: "next" }),
@@ -1923,20 +2022,20 @@ function po({
1923
2022
  ] })
1924
2023
  ] }),
1925
2024
  l && /* @__PURE__ */ S(b, { as: "div", direction: "column", gap: "small", padding: "small none medium", children: [
1926
- /* @__PURE__ */ r(
1927
- bn,
2025
+ /* @__PURE__ */ a(
2026
+ Sn,
1928
2027
  {
1929
2028
  resize: "vertical",
1930
- label: /* @__PURE__ */ r(_, { weight: "bold", size: "medium", children: m.commentsPlaceholder() }),
2029
+ label: /* @__PURE__ */ a(_, { weight: "bold", size: "medium", children: m.commentsPlaceholder() }),
1931
2030
  value: f,
1932
2031
  onChange: (E) => h(E.target.value)
1933
2032
  }
1934
2033
  ),
1935
- /* @__PURE__ */ r(
2034
+ /* @__PURE__ */ a(
1936
2035
  $,
1937
2036
  {
1938
2037
  color: "primary",
1939
- onClick: O,
2038
+ onClick: N,
1940
2039
  interaction: f.trim().length > 0 && !le.isPending ? "enabled" : "disabled",
1941
2040
  children: m.commentsPost()
1942
2041
  }
@@ -1944,113 +2043,113 @@ function po({
1944
2043
  ] })
1945
2044
  ] });
1946
2045
  }
1947
- function go(t) {
1948
- return /* @__PURE__ */ r("span", { dangerouslySetInnerHTML: { __html: It(t) } });
2046
+ function Er(t) {
2047
+ return /* @__PURE__ */ a("span", { dangerouslySetInnerHTML: { __html: wt(t) } });
1949
2048
  }
1950
- function Wo({
2049
+ function Jr({
1951
2050
  courseId: t,
1952
2051
  assignmentId: n,
1953
2052
  userId: i,
1954
- feedbackMode: s = !1,
2053
+ feedbackMode: o = !1,
1955
2054
  onError: l,
1956
2055
  renderHTML: c,
1957
2056
  renderPanels: d,
1958
2057
  executeQuery: p
1959
2058
  }) {
1960
- const m = q(), f = c ?? go, {
2059
+ const m = V(), f = c ?? Er, {
1961
2060
  data: h,
1962
2061
  isLoading: C,
1963
2062
  isError: I,
1964
2063
  error: w
1965
- } = Xi({ courseId: t, assignmentId: n, userId: i, executeQuery: p }), [y, V] = Ee(null), [fe, le] = Ee(
1966
- s ? "comments" : null
1967
- ), M = qe(
2064
+ } = rr({ courseId: t, assignmentId: n, userId: i, executeQuery: p }), [y, X] = Ee(null), [fe, le] = Ee(
2065
+ o ? "comments" : null
2066
+ ), M = Ve(
1968
2067
  () => (h == null ? void 0 : h.submissionsConnection.nodes[0]) ?? null,
1969
2068
  [h]
1970
- ), ie = M != null && M.attempt > 0, O = y ?? M, ce = y == null || y.attempt === (M == null ? void 0 : M.attempt), E = ie && ce, N = ((h == null ? void 0 : h.allowedAttempts) ?? 0) !== 1, ee = jn((Ze) => {
1971
- V(Ze);
2069
+ ), ie = M != null && M.attempt > 0, N = y ?? M, ce = y == null || y.attempt === (M == null ? void 0 : M.attempt), E = ie && ce, v = ((h == null ? void 0 : h.allowedAttempts) ?? 0) !== 1, ee = Gn((Qe) => {
2070
+ X(Qe);
1972
2071
  }, []);
1973
- if (Tt(() => {
2072
+ if (yt(() => {
1974
2073
  I && w && l && l(w);
1975
- }, [I, w, l]), Tt(() => {
1976
- s && ie && le("comments");
1977
- }, [s, ie]), C)
1978
- return /* @__PURE__ */ r(b, { justifyItems: "center", padding: "large", children: /* @__PURE__ */ r(Ye, { renderTitle: m.progressLoading() }) });
2074
+ }, [I, w, l]), yt(() => {
2075
+ o && ie && le("comments");
2076
+ }, [o, ie]), C)
2077
+ return /* @__PURE__ */ a(b, { justifyItems: "center", padding: "large", children: /* @__PURE__ */ a(Ye, { renderTitle: m.progressLoading() }) });
1979
2078
  if (I || !h)
1980
- return /* @__PURE__ */ r(b, { justifyItems: "center", padding: "large", children: /* @__PURE__ */ r(_, { color: "danger", children: m.assignmentLoadError() }) });
1981
- const Ie = !!h.dueAt && new Date(h.dueAt) < /* @__PURE__ */ new Date() && !ie, xe = M ? /* @__PURE__ */ r(
1982
- po,
2079
+ return /* @__PURE__ */ a(b, { justifyItems: "center", padding: "large", children: /* @__PURE__ */ a(_, { color: "danger", children: m.assignmentLoadError() }) });
2080
+ const Ie = !!h.dueAt && new Date(h.dueAt) < /* @__PURE__ */ new Date() && !ie, xe = M ? /* @__PURE__ */ a(
2081
+ _r,
1983
2082
  {
1984
2083
  submissionId: M.id,
1985
2084
  courseId: t,
1986
2085
  assignmentId: n,
1987
- attempt: (O == null ? void 0 : O.attempt) ?? 0,
2086
+ attempt: (N == null ? void 0 : N.attempt) ?? 0,
1988
2087
  canPostComment: E,
1989
2088
  renderHTML: f,
1990
2089
  executeQuery: p
1991
2090
  }
1992
- ) : null, Xe = N && M ? /* @__PURE__ */ r(
1993
- Ji,
2091
+ ) : null, Ke = v && M ? /* @__PURE__ */ a(
2092
+ lr,
1994
2093
  {
1995
2094
  submissionId: M.id,
1996
- selectedAttempt: O == null ? void 0 : O.attempt,
2095
+ selectedAttempt: N == null ? void 0 : N.attempt,
1997
2096
  onAttemptSelect: ee,
1998
2097
  pointsPossible: h.pointsPossible,
1999
2098
  executeQuery: p
2000
2099
  }
2001
- ) : null, Ke = {
2100
+ ) : null, Ze = {
2002
2101
  commentsPanel: xe,
2003
- attemptsPanel: Xe,
2102
+ attemptsPanel: Ke,
2004
2103
  activePanel: fe,
2005
2104
  setActivePanel: le,
2006
2105
  unreadCommentCount: (M == null ? void 0 : M.unreadCommentCount) ?? 0,
2007
- hasMultipleAttempts: N
2106
+ hasMultipleAttempts: v
2008
2107
  };
2009
2108
  return /* @__PURE__ */ S(b, { direction: "column", gap: "medium", children: [
2010
- /* @__PURE__ */ r(
2011
- oo,
2109
+ /* @__PURE__ */ a(
2110
+ fr,
2012
2111
  {
2013
- score: O == null ? void 0 : O.score,
2112
+ score: N == null ? void 0 : N.score,
2014
2113
  pointsPossible: h.pointsPossible,
2015
2114
  gradingType: h.gradingType,
2016
2115
  dueAt: h.dueAt,
2017
2116
  allowedAttempts: h.allowedAttempts,
2018
- currentAttempt: O == null ? void 0 : O.attempt,
2117
+ currentAttempt: N == null ? void 0 : N.attempt,
2019
2118
  isOverdue: Ie
2020
2119
  }
2021
2120
  ),
2022
- h.description && /* @__PURE__ */ S(K, { as: "div", children: [
2023
- /* @__PURE__ */ r(St, { level: "h3", children: m.assignmentInstructions() }),
2024
- /* @__PURE__ */ r(K, { as: "div", margin: "small none large none", children: f(h.description) })
2121
+ h.description && /* @__PURE__ */ S(Z, { as: "div", children: [
2122
+ /* @__PURE__ */ a(_t, { level: "h3", children: m.assignmentInstructions() }),
2123
+ /* @__PURE__ */ a(Z, { as: "div", margin: "small none large none", children: f(h.description) })
2025
2124
  ] }),
2026
- /* @__PURE__ */ r(
2027
- to,
2125
+ /* @__PURE__ */ a(
2126
+ mr,
2028
2127
  {
2029
- submission: O,
2128
+ submission: N,
2030
2129
  isLastAttempt: ce,
2031
2130
  renderHTML: f
2032
2131
  }
2033
2132
  ),
2034
- d ? d(Ke) : null
2133
+ d ? d(Ze) : null
2035
2134
  ] });
2036
2135
  }
2037
- function qo({
2136
+ function eo({
2038
2137
  existingFiles: t,
2039
2138
  onSubmit: n,
2040
2139
  onSaveDraft: i,
2041
- onDiscardDraft: s,
2140
+ onDiscardDraft: o,
2042
2141
  onSelectFiles: l,
2043
2142
  isSubmitting: c = !1
2044
2143
  }) {
2045
- const d = q(), [p, m] = Ee(t ?? []), f = async () => {
2144
+ const d = V(), [p, m] = Ee(t ?? []), f = async () => {
2046
2145
  const w = await l();
2047
2146
  m((y) => [...y, ...w]);
2048
2147
  }, h = (w) => {
2049
- m((y) => y.filter((V) => V.id !== w));
2148
+ m((y) => y.filter((X) => X.id !== w));
2050
2149
  }, C = p.map((w) => w.id), I = p.length > 0 && !c;
2051
2150
  return /* @__PURE__ */ S(b, { direction: "column", gap: "medium", children: [
2052
- p.length > 0 && /* @__PURE__ */ r(b, { direction: "column", gap: "x-small", children: p.map((w) => /* @__PURE__ */ r(
2053
- K,
2151
+ p.length > 0 && /* @__PURE__ */ a(b, { direction: "column", gap: "x-small", children: p.map((w) => /* @__PURE__ */ a(
2152
+ Z,
2054
2153
  {
2055
2154
  as: "div",
2056
2155
  padding: "small",
@@ -2058,12 +2157,12 @@ function qo({
2058
2157
  borderColor: "primary",
2059
2158
  borderRadius: "medium",
2060
2159
  children: /* @__PURE__ */ S(b, { justifyItems: "space-between", alignItems: "center", children: [
2061
- /* @__PURE__ */ r(_, { children: w.name }),
2062
- /* @__PURE__ */ r(
2160
+ /* @__PURE__ */ a(_, { children: w.name }),
2161
+ /* @__PURE__ */ a(
2063
2162
  $,
2064
2163
  {
2065
2164
  size: "small",
2066
- renderIcon: () => /* @__PURE__ */ r(Wn, {}),
2165
+ renderIcon: () => /* @__PURE__ */ a(Xn, {}),
2067
2166
  onClick: () => h(w.id),
2068
2167
  children: /* @__PURE__ */ S("span", { className: "screenreader-only", children: [
2069
2168
  "Remove ",
@@ -2075,9 +2174,9 @@ function qo({
2075
2174
  },
2076
2175
  w.id
2077
2176
  )) }),
2078
- /* @__PURE__ */ r($, { onClick: f, children: d.submissionFormAddFiles() }),
2177
+ /* @__PURE__ */ a($, { onClick: f, children: d.submissionFormAddFiles() }),
2079
2178
  /* @__PURE__ */ S(b, { gap: "small", children: [
2080
- /* @__PURE__ */ r(
2179
+ /* @__PURE__ */ a(
2081
2180
  $,
2082
2181
  {
2083
2182
  color: "primary",
@@ -2086,7 +2185,7 @@ function qo({
2086
2185
  children: d.submissionFormSubmit()
2087
2186
  }
2088
2187
  ),
2089
- i && /* @__PURE__ */ r(
2188
+ i && /* @__PURE__ */ a(
2090
2189
  $,
2091
2190
  {
2092
2191
  onClick: () => i(C),
@@ -2094,101 +2193,101 @@ function qo({
2094
2193
  children: d.submissionFormSaveDraft()
2095
2194
  }
2096
2195
  ),
2097
- s && t && t.length > 0 && /* @__PURE__ */ r($, { color: "primary-inverse", onClick: s, children: d.submissionFormDiscardDraft() })
2196
+ o && t && t.length > 0 && /* @__PURE__ */ a($, { color: "primary-inverse", onClick: o, children: d.submissionFormDiscardDraft() })
2098
2197
  ] })
2099
2198
  ] });
2100
2199
  }
2101
- function Yo({
2200
+ function to({
2102
2201
  prevItem: t,
2103
2202
  nextItem: n,
2104
2203
  onNavigatePrev: i,
2105
- onNavigateNext: s,
2204
+ onNavigateNext: o,
2106
2205
  labels: l
2107
2206
  }) {
2108
- const c = q();
2207
+ const c = V();
2109
2208
  if (!t && !n)
2110
2209
  return null;
2111
2210
  const d = (l == null ? void 0 : l.previous) ?? c.navigationPrevious(), p = (l == null ? void 0 : l.next) ?? c.navigationNext();
2112
2211
  return /* @__PURE__ */ S(b, { justifyItems: "space-between", padding: "small none", children: [
2113
- t ? /* @__PURE__ */ r(
2212
+ t ? /* @__PURE__ */ a(
2114
2213
  $,
2115
2214
  {
2116
- renderIcon: () => /* @__PURE__ */ r(fn, {}),
2215
+ renderIcon: () => /* @__PURE__ */ a(bn, {}),
2117
2216
  onClick: i,
2118
2217
  "aria-label": `${d}: ${t.title}`,
2119
2218
  children: d
2120
2219
  }
2121
- ) : /* @__PURE__ */ r("div", {}),
2122
- n ? /* @__PURE__ */ r(
2220
+ ) : /* @__PURE__ */ a("div", {}),
2221
+ n ? /* @__PURE__ */ a(
2123
2222
  $,
2124
2223
  {
2125
- renderIcon: () => /* @__PURE__ */ r(pn, {}),
2126
- onClick: s,
2224
+ renderIcon: () => /* @__PURE__ */ a(Tn, {}),
2225
+ onClick: o,
2127
2226
  "aria-label": `${p}: ${n.title}`,
2128
2227
  children: p
2129
2228
  }
2130
- ) : /* @__PURE__ */ r("div", {})
2229
+ ) : /* @__PURE__ */ a("div", {})
2131
2230
  ] });
2132
2231
  }
2133
- function ho(t) {
2232
+ function Ir(t) {
2134
2233
  switch (t) {
2135
2234
  case "Assignment":
2136
- return /* @__PURE__ */ r(Kn, {});
2235
+ return /* @__PURE__ */ a(ei, {});
2137
2236
  case "Quiz":
2138
- return /* @__PURE__ */ r(Xn, {});
2237
+ return /* @__PURE__ */ a(Jn, {});
2139
2238
  case "Discussion":
2140
- return /* @__PURE__ */ r(Vn, {});
2239
+ return /* @__PURE__ */ a(Qn, {});
2141
2240
  case "Page":
2142
- return /* @__PURE__ */ r(Kt, {});
2241
+ return /* @__PURE__ */ a(Zt, {});
2143
2242
  case "ExternalUrl":
2144
2243
  case "ExternalTool":
2145
- return /* @__PURE__ */ r(Yn, {});
2244
+ return /* @__PURE__ */ a(Zn, {});
2146
2245
  default:
2147
- return /* @__PURE__ */ r(Kt, {});
2246
+ return /* @__PURE__ */ a(Zt, {});
2148
2247
  }
2149
2248
  }
2150
- function bo({
2249
+ function wr({
2151
2250
  item: t,
2152
2251
  isSelected: n,
2153
2252
  isLoadingItem: i,
2154
- onClick: s
2253
+ onClick: o
2155
2254
  }) {
2156
2255
  var m, f, h, C, I;
2157
- const l = q(), c = ((m = t.content_details) == null ? void 0 : m.locked_for_user) ?? !1, d = (f = t.content_details) == null ? void 0 : f.lock_explanation, p = /* @__PURE__ */ r(
2158
- K,
2256
+ const l = V(), c = ((m = t.content_details) == null ? void 0 : m.locked_for_user) ?? !1, d = (f = t.content_details) == null ? void 0 : f.lock_explanation, p = /* @__PURE__ */ a(
2257
+ Z,
2159
2258
  {
2160
2259
  as: "div",
2161
2260
  padding: "small",
2162
2261
  background: n ? "secondary" : "primary",
2163
2262
  borderRadius: "small",
2164
2263
  cursor: c ? "not-allowed" : "pointer",
2165
- onClick: c ? void 0 : s,
2264
+ onClick: c ? void 0 : o,
2166
2265
  role: c ? void 0 : "button",
2167
2266
  tabIndex: c ? void 0 : 0,
2168
2267
  onKeyDown: c ? void 0 : (w) => {
2169
- (w.key === "Enter" || w.key === " ") && (w.preventDefault(), s());
2268
+ (w.key === "Enter" || w.key === " ") && (w.preventDefault(), o());
2170
2269
  },
2171
2270
  children: /* @__PURE__ */ S(b, { gap: "small", alignItems: "center", children: [
2172
- /* @__PURE__ */ r(b.Item, { children: c ? /* @__PURE__ */ r(gn, {}) : ho(t.type) }),
2173
- /* @__PURE__ */ r(b.Item, { shouldGrow: !0, shouldShrink: !0, children: /* @__PURE__ */ S(b, { direction: "column", gap: "xx-small", children: [
2174
- /* @__PURE__ */ r(_, { weight: n ? "bold" : "normal", size: "small", children: t.title }),
2175
- ((h = t.content_details) == null ? void 0 : h.due_at) && /* @__PURE__ */ r(_, { size: "x-small", color: "secondary", children: l.progressDueDate({
2271
+ /* @__PURE__ */ a(b.Item, { children: c ? /* @__PURE__ */ a(yn, {}) : Ir(t.type) }),
2272
+ /* @__PURE__ */ a(b.Item, { shouldGrow: !0, shouldShrink: !0, children: /* @__PURE__ */ S(b, { direction: "column", gap: "xx-small", children: [
2273
+ /* @__PURE__ */ a(_, { weight: n ? "bold" : "normal", size: "small", children: t.title }),
2274
+ ((h = t.content_details) == null ? void 0 : h.due_at) && /* @__PURE__ */ a(_, { size: "x-small", color: "secondary", children: l.progressDueDate({
2176
2275
  date: new Date(t.content_details.due_at).toLocaleDateString()
2177
2276
  }) }),
2178
- ((C = t.content_details) == null ? void 0 : C.points_possible) != null && /* @__PURE__ */ r(_, { size: "x-small", color: "secondary", children: l.progressPoints({ points: t.content_details.points_possible }) })
2277
+ ((C = t.content_details) == null ? void 0 : C.points_possible) != null && /* @__PURE__ */ a(_, { size: "x-small", color: "secondary", children: l.progressPoints({ points: t.content_details.points_possible }) })
2179
2278
  ] }) }),
2180
- i && /* @__PURE__ */ r(Ye, { size: "x-small", renderTitle: l.progressLoading() }),
2181
- ((I = t.completion_requirement) == null ? void 0 : I.completed) && /* @__PURE__ */ r(_, { color: "success", size: "small", children: "✓" })
2279
+ i && /* @__PURE__ */ a(Ye, { size: "x-small", renderTitle: l.progressLoading() }),
2280
+ ((I = t.completion_requirement) == null ? void 0 : I.completed) && /* @__PURE__ */ a(_, { color: "success", size: "small", children: "✓" })
2182
2281
  ] })
2183
2282
  }
2184
2283
  );
2185
- return c && d ? /* @__PURE__ */ r(Jn, { renderTip: d, placement: "end", children: p }) : p;
2284
+ return c && d ? /* @__PURE__ */ a(ii, { renderTip: d, placement: "end", children: p }) : p;
2186
2285
  }
2187
- function Vo({
2286
+ function no({
2188
2287
  module: t,
2189
2288
  currentItemId: n,
2190
2289
  onItemClick: i,
2191
- onClose: s,
2290
+ onClose: o,
2192
2291
  onNavigateModule: l,
2193
2292
  hasPrevModule: c = !1,
2194
2293
  hasNextModule: d = !1,
@@ -2196,21 +2295,21 @@ function Vo({
2196
2295
  title: m
2197
2296
  }) {
2198
2297
  var C;
2199
- const f = q(), h = m ?? f.navigationMyProgress();
2298
+ const f = V(), h = m ?? f.navigationMyProgress();
2200
2299
  return /* @__PURE__ */ S(b, { direction: "column", height: "100%", children: [
2201
2300
  /* @__PURE__ */ S(b, { justifyItems: "space-between", alignItems: "center", padding: "small", children: [
2202
- /* @__PURE__ */ r(St, { level: "h3", children: h }),
2203
- /* @__PURE__ */ r(Qn, { screenReaderLabel: f.navigationClosePanel(), onClick: s, size: "small", children: /* @__PURE__ */ r(qn, {}) })
2301
+ /* @__PURE__ */ a(_t, { level: "h3", children: h }),
2302
+ /* @__PURE__ */ a(ni, { screenReaderLabel: f.navigationClosePanel(), onClick: o, size: "small", children: /* @__PURE__ */ a(Kn, {}) })
2204
2303
  ] }),
2205
- /* @__PURE__ */ S(K, { as: "div", padding: "none small", overflowY: "auto", children: [
2206
- t.state === "locked" && /* @__PURE__ */ r(b, { padding: "none none small", children: /* @__PURE__ */ S(_t, { color: "warning", children: [
2207
- /* @__PURE__ */ r(gn, {}),
2304
+ /* @__PURE__ */ S(Z, { as: "div", padding: "none small", overflowY: "auto", children: [
2305
+ t.state === "locked" && /* @__PURE__ */ a(b, { padding: "none none small", children: /* @__PURE__ */ S(Et, { color: "warning", children: [
2306
+ /* @__PURE__ */ a(yn, {}),
2208
2307
  " ",
2209
2308
  f.progressLocked()
2210
2309
  ] }) }),
2211
- /* @__PURE__ */ r(_, { weight: "bold", size: "medium", children: t.name }),
2212
- /* @__PURE__ */ r(b, { direction: "column", gap: "xx-small", padding: "small none", children: (C = t.items) == null ? void 0 : C.map((I) => /* @__PURE__ */ r(
2213
- bo,
2310
+ /* @__PURE__ */ a(_, { weight: "bold", size: "medium", children: t.name }),
2311
+ /* @__PURE__ */ a(b, { direction: "column", gap: "xx-small", padding: "small none", children: (C = t.items) == null ? void 0 : C.map((I) => /* @__PURE__ */ a(
2312
+ wr,
2214
2313
  {
2215
2314
  item: I,
2216
2315
  isSelected: I.id === n,
@@ -2221,10 +2320,10 @@ function Vo({
2221
2320
  )) })
2222
2321
  ] }),
2223
2322
  l && /* @__PURE__ */ S(b, { justifyItems: "space-between", padding: "small", children: [
2224
- /* @__PURE__ */ r(
2323
+ /* @__PURE__ */ a(
2225
2324
  $,
2226
2325
  {
2227
- renderIcon: () => /* @__PURE__ */ r(fn, {}),
2326
+ renderIcon: () => /* @__PURE__ */ a(bn, {}),
2228
2327
  size: "small",
2229
2328
  interaction: c ? "enabled" : "disabled",
2230
2329
  onClick: () => l("prev"),
@@ -2232,10 +2331,10 @@ function Vo({
2232
2331
  children: f.navigationPrevious()
2233
2332
  }
2234
2333
  ),
2235
- /* @__PURE__ */ r(
2334
+ /* @__PURE__ */ a(
2236
2335
  $,
2237
2336
  {
2238
- renderIcon: () => /* @__PURE__ */ r(pn, {}),
2337
+ renderIcon: () => /* @__PURE__ */ a(Tn, {}),
2239
2338
  size: "small",
2240
2339
  interaction: d ? "enabled" : "disabled",
2241
2340
  onClick: () => l("next"),
@@ -2246,17 +2345,17 @@ function Vo({
2246
2345
  ] })
2247
2346
  ] });
2248
2347
  }
2249
- function Xo({
2348
+ function io({
2250
2349
  existingDraft: t,
2251
2350
  onSubmit: n,
2252
2351
  onSaveDraft: i,
2253
- onDiscardDraft: s,
2352
+ onDiscardDraft: o,
2254
2353
  isSubmitting: l = !1
2255
2354
  }) {
2256
- const c = q(), [d, p] = Ee(t ?? ""), m = d.trim().length > 0 && !l;
2355
+ const c = V(), [d, p] = Ee(t ?? ""), m = d.trim().length > 0 && !l;
2257
2356
  return /* @__PURE__ */ S(b, { direction: "column", gap: "medium", children: [
2258
- /* @__PURE__ */ r(
2259
- bn,
2357
+ /* @__PURE__ */ a(
2358
+ Sn,
2260
2359
  {
2261
2360
  label: c.submissionTextHeading(),
2262
2361
  value: d,
@@ -2266,7 +2365,7 @@ function Xo({
2266
2365
  }
2267
2366
  ),
2268
2367
  /* @__PURE__ */ S(b, { gap: "small", children: [
2269
- /* @__PURE__ */ r(
2368
+ /* @__PURE__ */ a(
2270
2369
  $,
2271
2370
  {
2272
2371
  color: "primary",
@@ -2275,7 +2374,7 @@ function Xo({
2275
2374
  children: c.submissionFormSubmit()
2276
2375
  }
2277
2376
  ),
2278
- i && /* @__PURE__ */ r(
2377
+ i && /* @__PURE__ */ a(
2279
2378
  $,
2280
2379
  {
2281
2380
  onClick: () => i(d),
@@ -2283,68 +2382,68 @@ function Xo({
2283
2382
  children: c.submissionFormSaveDraft()
2284
2383
  }
2285
2384
  ),
2286
- s && t && /* @__PURE__ */ r($, { color: "primary-inverse", onClick: s, children: c.submissionFormDiscardDraft() })
2385
+ o && t && /* @__PURE__ */ a($, { color: "primary-inverse", onClick: o, children: c.submissionFormDiscardDraft() })
2287
2386
  ] })
2288
2387
  ] });
2289
2388
  }
2290
- function Ko({
2389
+ function ro({
2291
2390
  unreadCount: t
2292
2391
  }) {
2293
- const n = q();
2392
+ const n = V();
2294
2393
  if (t === 0)
2295
2394
  return null;
2296
2395
  const i = t === 1 ? n.commentsUnreadSingle() : n.commentsUnread({ count: t });
2297
- return /* @__PURE__ */ r(Tn, { count: t, standalone: !0, children: /* @__PURE__ */ r(Et, { children: i }) });
2396
+ return /* @__PURE__ */ a(_n, { count: t, standalone: !0, children: /* @__PURE__ */ a(It, { children: i }) });
2298
2397
  }
2299
- function Zo({
2398
+ function oo({
2300
2399
  courseId: t,
2301
2400
  moduleItemId: n,
2302
2401
  fetchSequence: i,
2303
- enabled: s = !0
2402
+ enabled: o = !0
2304
2403
  }) {
2305
- return Ve({
2404
+ return Xe({
2306
2405
  queryKey: ["assignment-review", "module-item-sequence", t, n],
2307
2406
  queryFn: () => i(t, n),
2308
- enabled: s && !!n
2407
+ enabled: o && !!n
2309
2408
  });
2310
2409
  }
2311
2410
  export {
2312
- Bi as AssignmentResponseSchema,
2313
- Wo as AssignmentReview,
2314
- Qi as AttemptCard,
2315
- to as AttemptView,
2316
- Ji as AttemptsHistory,
2317
- $o as CREATE_SUBMISSION,
2318
- ro as CREATE_SUBMISSION_COMMENT,
2319
- Bo as CREATE_SUBMISSION_DRAFT,
2320
- fo as CommentCard,
2321
- Yi as CreateSubmissionCommentResponseSchema,
2322
- jo as CreateSubmissionDraftResponseSchema,
2323
- zo as CreateSubmissionResponseSchema,
2324
- Go as DELETE_SUBMISSION_DRAFT,
2325
- Ho as DeleteSubmissionDraftResponseSchema,
2326
- wn as DownloadButtons,
2327
- qo as FileUploadSubmissionForm,
2328
- Fi as GET_ASSIGNMENT,
2329
- zi as GET_SUBMISSIONS,
2330
- Ui as GET_SUBMISSION_COMMENTS,
2331
- oo as LearningContentHeader,
2332
- so as MARK_SUBMISSION_COMMENTS_READ,
2333
- Vi as MarkSubmissionCommentsReadResponseSchema,
2334
- Yo as ModuleNavigation,
2335
- Vo as MyProgressPanel,
2336
- po as SubmissionComments,
2337
- Uo as SubmissionCommentsDataSchema,
2338
- Gi as SubmissionCommentsQueryResponseSchema,
2339
- qi as SubmissionsQueryResponseSchema,
2340
- Xo as TextEntrySubmissionForm,
2341
- Fo as TranslationsProvider,
2342
- Ko as UnreadCommentsBadge,
2343
- ao as useCreateSubmissionComment,
2344
- Xi as useGetAssignment,
2345
- lo as useGetSubmissionComments,
2346
- Ki as useGetSubmissions,
2347
- co as useMarkSubmissionCommentsRead,
2348
- Zo as useModuleItemSequence,
2349
- q as useTranslations
2411
+ Qi as AssignmentResponseSchema,
2412
+ Jr as AssignmentReview,
2413
+ sr as AttemptCard,
2414
+ mr as AttemptView,
2415
+ lr as AttemptsHistory,
2416
+ Kr as CREATE_SUBMISSION,
2417
+ pr as CREATE_SUBMISSION_COMMENT,
2418
+ Zr as CREATE_SUBMISSION_DRAFT,
2419
+ Sr as CommentCard,
2420
+ nr as CreateSubmissionCommentResponseSchema,
2421
+ Yr as CreateSubmissionDraftResponseSchema,
2422
+ Vr as CreateSubmissionResponseSchema,
2423
+ Qr as DELETE_SUBMISSION_DRAFT,
2424
+ Xr as DeleteSubmissionDraftResponseSchema,
2425
+ Nn as DownloadButtons,
2426
+ eo as FileUploadSubmissionForm,
2427
+ qi as GET_ASSIGNMENT,
2428
+ Yi as GET_SUBMISSIONS,
2429
+ Vi as GET_SUBMISSION_COMMENTS,
2430
+ fr as LearningContentHeader,
2431
+ gr as MARK_SUBMISSION_COMMENTS_READ,
2432
+ ir as MarkSubmissionCommentsReadResponseSchema,
2433
+ to as ModuleNavigation,
2434
+ no as MyProgressPanel,
2435
+ _r as SubmissionComments,
2436
+ qr as SubmissionCommentsDataSchema,
2437
+ Ji as SubmissionCommentsQueryResponseSchema,
2438
+ tr as SubmissionsQueryResponseSchema,
2439
+ io as TextEntrySubmissionForm,
2440
+ Wr as TranslationsProvider,
2441
+ ro as UnreadCommentsBadge,
2442
+ hr as useCreateSubmissionComment,
2443
+ rr as useGetAssignment,
2444
+ br as useGetSubmissionComments,
2445
+ or as useGetSubmissions,
2446
+ Tr as useMarkSubmissionCommentsRead,
2447
+ oo as useModuleItemSequence,
2448
+ V as useTranslations
2350
2449
  };