@instructure/platform-assignment-review 0.2.0 → 0.4.1

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.
package/dist/index.js CHANGED
@@ -1,35 +1,47 @@
1
- import { jsx as i, jsxs as A } from "react/jsx-runtime";
1
+ import { jsx as i, jsxs as _ } from "react/jsx-runtime";
2
+ import { createContext as In, useContext as Cn, useMemo as je, useState as ge, useRef as Dn, useEffect as ct, useCallback as Rn } from "react";
2
3
  import { Flex as h } from "@instructure/ui-flex";
3
4
  import { Heading as dt } from "@instructure/ui-heading";
4
5
  import { Spinner as He } from "@instructure/ui-spinner";
5
6
  import { Text as y } from "@instructure/ui-text";
6
7
  import { View as Y } from "@instructure/ui-view";
7
- import { useMemo as je, useState as ge, useRef as En, useEffect as ct, useCallback as In } from "react";
8
- import { useTranslation as B } from "react-i18next";
9
- import { useQuery as $e, useQueryClient as Vt, useMutation as Kt } from "@tanstack/react-query";
8
+ import { useQuery as $e, useQueryClient as Xt, useMutation as Kt } from "@tanstack/react-query";
10
9
  import ne from "graphql-tag";
11
10
  import { z as n } from "zod";
12
- import { Pill as pt } from "@instructure/ui-pill";
13
- import { IconDownloadLine as Cn, IconCheckMarkSolid as Dn, IconArrowStartLine as Rn, IconArrowEndLine as wn, IconTrashLine as vn, IconArrowOpenStartLine as Zt, IconArrowOpenEndLine as Qt, IconXLine as Ln, IconLockLine as Jt, IconDocumentLine as jt, IconLinkLine as On, IconDiscussionLine as Nn, IconQuizLine as Mn, IconAssignmentLine as xn } from "@instructure/ui-icons";
14
- import { ScreenReaderContent as ft } from "@instructure/ui-a11y-content";
15
- import { Link as kn } from "@instructure/ui-link";
11
+ import { Pill as ft } from "@instructure/ui-pill";
12
+ import { IconDownloadLine as Ln, IconCheckMarkSolid as wn, IconArrowStartLine as vn, IconArrowEndLine as Nn, IconTrashLine as On, IconArrowOpenStartLine as Zt, IconArrowOpenEndLine as Qt, IconXLine as Mn, IconLockLine as Jt, IconDocumentLine as jt, IconLinkLine as xn, IconDiscussionLine as kn, IconQuizLine as Pn, IconAssignmentLine as Un } from "@instructure/ui-icons";
13
+ import { ScreenReaderContent as pt } from "@instructure/ui-a11y-content";
14
+ import { Link as Fn } from "@instructure/ui-link";
16
15
  import { TruncateText as en } from "@instructure/ui-truncate-text";
17
- import { Button as z, IconButton as Pn } from "@instructure/ui-buttons";
16
+ import { Button as z, IconButton as zn } from "@instructure/ui-buttons";
18
17
  import { TextArea as tn } from "@instructure/ui-text-area";
19
18
  import { Badge as nn } from "@instructure/ui-badge";
20
- import { Tooltip as Fn } from "@instructure/ui-tooltip";
19
+ import { Tooltip as jn } from "@instructure/ui-tooltip";
20
+ const rn = In(void 0);
21
+ function ar({
22
+ translations: t,
23
+ children: r
24
+ }) {
25
+ return /* @__PURE__ */ i(rn.Provider, { value: t, children: r });
26
+ }
27
+ function B() {
28
+ const t = Cn(rn);
29
+ if (!t)
30
+ throw new Error("useTranslations must be used within TranslationsProvider");
31
+ return t;
32
+ }
21
33
  /*! @license DOMPurify 3.3.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.3/LICENSE */
22
34
  const {
23
- entries: rn,
35
+ entries: on,
24
36
  setPrototypeOf: Ht,
25
- isFrozen: Un,
26
- getPrototypeOf: zn,
27
- getOwnPropertyDescriptor: jn
37
+ isFrozen: Hn,
38
+ getPrototypeOf: $n,
39
+ getOwnPropertyDescriptor: Gn
28
40
  } = Object;
29
41
  let {
30
42
  freeze: j,
31
43
  seal: W,
32
- create: Ue
44
+ create: Fe
33
45
  } = Object, {
34
46
  apply: mt,
35
47
  construct: ut
@@ -50,7 +62,7 @@ ut || (ut = function(r) {
50
62
  s[l - 1] = arguments[l];
51
63
  return new r(...s);
52
64
  });
53
- const Pe = H(Array.prototype.forEach), Hn = H(Array.prototype.lastIndexOf), $t = H(Array.prototype.pop), Se = H(Array.prototype.push), $n = H(Array.prototype.splice), ze = H(String.prototype.toLowerCase), it = H(String.prototype.toString), rt = H(String.prototype.match), ye = H(String.prototype.replace), Gn = H(String.prototype.indexOf), Bn = H(String.prototype.trim), G = H(Object.prototype.hasOwnProperty), U = H(RegExp.prototype.test), Ee = Wn(TypeError);
65
+ const Pe = H(Array.prototype.forEach), Bn = H(Array.prototype.lastIndexOf), $t = H(Array.prototype.pop), Se = H(Array.prototype.push), Wn = H(Array.prototype.splice), ze = H(String.prototype.toLowerCase), it = H(String.prototype.toString), rt = H(String.prototype.match), ye = H(String.prototype.replace), qn = H(String.prototype.indexOf), Yn = H(String.prototype.trim), G = H(Object.prototype.hasOwnProperty), F = H(RegExp.prototype.test), Ee = Vn(TypeError);
54
66
  function H(t) {
55
67
  return function(r) {
56
68
  r instanceof RegExp && (r.lastIndex = 0);
@@ -59,14 +71,14 @@ function H(t) {
59
71
  return mt(t, r, s);
60
72
  };
61
73
  }
62
- function Wn(t) {
74
+ function Vn(t) {
63
75
  return function() {
64
76
  for (var r = arguments.length, o = new Array(r), s = 0; s < r; s++)
65
77
  o[s] = arguments[s];
66
78
  return ut(t, o);
67
79
  };
68
80
  }
69
- function _(t, r) {
81
+ function A(t, r) {
70
82
  let o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : ze;
71
83
  Ht && Ht(t, null);
72
84
  let s = r.length;
@@ -74,58 +86,58 @@ function _(t, r) {
74
86
  let l = r[s];
75
87
  if (typeof l == "string") {
76
88
  const c = o(l);
77
- c !== l && (Un(r) || (r[s] = c), l = c);
89
+ c !== l && (Hn(r) || (r[s] = c), l = c);
78
90
  }
79
91
  t[l] = !0;
80
92
  }
81
93
  return t;
82
94
  }
83
- function qn(t) {
95
+ function Xn(t) {
84
96
  for (let r = 0; r < t.length; r++)
85
97
  G(t, r) || (t[r] = null);
86
98
  return t;
87
99
  }
88
100
  function Z(t) {
89
- const r = Ue(null);
90
- for (const [o, s] of rn(t))
91
- G(t, o) && (Array.isArray(s) ? r[o] = qn(s) : s && typeof s == "object" && s.constructor === Object ? r[o] = Z(s) : r[o] = s);
101
+ const r = Fe(null);
102
+ for (const [o, s] of on(t))
103
+ G(t, o) && (Array.isArray(s) ? r[o] = Xn(s) : s && typeof s == "object" && s.constructor === Object ? r[o] = Z(s) : r[o] = s);
92
104
  return r;
93
105
  }
94
106
  function Ie(t, r) {
95
107
  for (; t !== null; ) {
96
- const s = jn(t, r);
108
+ const s = Gn(t, r);
97
109
  if (s) {
98
110
  if (s.get)
99
111
  return H(s.get);
100
112
  if (typeof s.value == "function")
101
113
  return H(s.value);
102
114
  }
103
- t = zn(t);
115
+ t = $n(t);
104
116
  }
105
117
  function o() {
106
118
  return null;
107
119
  }
108
120
  return o;
109
121
  }
110
- const Gt = j(["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"]), ot = j(["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"]), st = j(["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"]), Yn = j(["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"]), at = j(["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"]), Xn = j(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), Bt = j(["#text"]), Wt = j(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "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", "slot"]), lt = j(["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"]), qt = j(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "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"]), Fe = j(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), Vn = W(/\{\{[\w\W]*|[\w\W]*\}\}/gm), Kn = W(/<%[\w\W]*|[\w\W]*%>/gm), Zn = W(/\$\{[\w\W]*/gm), Qn = W(/^data-[\-\w.\u00B7-\uFFFF]+$/), Jn = W(/^aria-[\-\w]+$/), on = W(
122
+ const Gt = j(["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"]), ot = j(["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"]), st = j(["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"]), Kn = j(["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"]), at = j(["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"]), Zn = j(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]), Bt = j(["#text"]), Wt = j(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "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", "slot"]), lt = j(["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"]), qt = j(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "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"]), Ue = j(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), Qn = W(/\{\{[\w\W]*|[\w\W]*\}\}/gm), Jn = W(/<%[\w\W]*|[\w\W]*%>/gm), ei = W(/\$\{[\w\W]*/gm), ti = W(/^data-[\-\w.\u00B7-\uFFFF]+$/), ni = W(/^aria-[\-\w]+$/), sn = W(
111
123
  /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
112
124
  // eslint-disable-line no-useless-escape
113
- ), ei = W(/^(?:\w+script|data):/i), ti = W(
125
+ ), ii = W(/^(?:\w+script|data):/i), ri = W(
114
126
  /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
115
127
  // eslint-disable-line no-control-regex
116
- ), sn = W(/^html$/i), ni = W(/^[a-z][.\w]*(-[.\w]+)+$/i);
128
+ ), an = W(/^html$/i), oi = W(/^[a-z][.\w]*(-[.\w]+)+$/i);
117
129
  var Yt = /* @__PURE__ */ Object.freeze({
118
130
  __proto__: null,
119
- ARIA_ATTR: Jn,
120
- ATTR_WHITESPACE: ti,
121
- CUSTOM_ELEMENT: ni,
122
- DATA_ATTR: Qn,
123
- DOCTYPE_NAME: sn,
124
- ERB_EXPR: Kn,
125
- IS_ALLOWED_URI: on,
126
- IS_SCRIPT_OR_DATA: ei,
127
- MUSTACHE_EXPR: Vn,
128
- TMPLIT_EXPR: Zn
131
+ ARIA_ATTR: ni,
132
+ ATTR_WHITESPACE: ri,
133
+ CUSTOM_ELEMENT: oi,
134
+ DATA_ATTR: ti,
135
+ DOCTYPE_NAME: an,
136
+ ERB_EXPR: Jn,
137
+ IS_ALLOWED_URI: sn,
138
+ IS_SCRIPT_OR_DATA: ii,
139
+ MUSTACHE_EXPR: Qn,
140
+ TMPLIT_EXPR: ei
129
141
  });
130
142
  const Ce = {
131
143
  element: 1,
@@ -134,9 +146,9 @@ const Ce = {
134
146
  progressingInstruction: 7,
135
147
  comment: 8,
136
148
  document: 9
137
- }, ii = function() {
149
+ }, si = function() {
138
150
  return typeof window > "u" ? null : window;
139
- }, ri = function(r, o) {
151
+ }, ai = function(r, o) {
140
152
  if (typeof r != "object" || typeof r.createPolicy != "function")
141
153
  return null;
142
154
  let s = null;
@@ -145,17 +157,17 @@ const Ce = {
145
157
  const c = "dompurify" + (s ? "#" + s : "");
146
158
  try {
147
159
  return r.createPolicy(c, {
148
- createHTML(p) {
149
- return p;
160
+ createHTML(f) {
161
+ return f;
150
162
  },
151
- createScriptURL(p) {
152
- return p;
163
+ createScriptURL(f) {
164
+ return f;
153
165
  }
154
166
  });
155
167
  } catch {
156
168
  return console.warn("TrustedTypes policy " + c + " could not be created."), null;
157
169
  }
158
- }, Xt = function() {
170
+ }, Vt = function() {
159
171
  return {
160
172
  afterSanitizeAttributes: [],
161
173
  afterSanitizeElements: [],
@@ -168,9 +180,9 @@ const Ce = {
168
180
  uponSanitizeShadowNode: []
169
181
  };
170
182
  };
171
- function an() {
172
- let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ii();
173
- const r = (d) => an(d);
183
+ function ln() {
184
+ let t = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : si();
185
+ const r = (d) => ln(d);
174
186
  if (r.version = "3.3.3", r.removed = [], !t || !t.document || t.document.nodeType !== Ce.document || !t.Element)
175
187
  return r.isSupported = !1, r;
176
188
  let {
@@ -178,20 +190,20 @@ function an() {
178
190
  } = t;
179
191
  const s = o, l = s.currentScript, {
180
192
  DocumentFragment: c,
181
- HTMLTemplateElement: p,
193
+ HTMLTemplateElement: f,
182
194
  Node: b,
183
195
  Element: m,
184
- NodeFilter: f,
196
+ NodeFilter: p,
185
197
  NamedNodeMap: g = t.NamedNodeMap || t.MozNamedAttrMap,
186
198
  HTMLFormElement: D,
187
199
  DOMParser: I,
188
200
  trustedTypes: E
189
- } = t, T = m.prototype, ie = Ie(T, "cloneNode"), ae = Ie(T, "remove"), re = Ie(T, "nextSibling"), L = Ie(T, "childNodes"), q = Ie(T, "parentNode");
190
- if (typeof p == "function") {
201
+ } = t, T = m.prototype, ie = Ie(T, "cloneNode"), ae = Ie(T, "remove"), re = Ie(T, "nextSibling"), v = Ie(T, "childNodes"), q = Ie(T, "parentNode");
202
+ if (typeof f == "function") {
191
203
  const d = o.createElement("template");
192
204
  d.content && d.content.ownerDocument && (o = d.content.ownerDocument);
193
205
  }
194
- let S, X = "";
206
+ let S, V = "";
195
207
  const {
196
208
  implementation: k,
197
209
  createNodeIterator: P,
@@ -200,25 +212,25 @@ function an() {
200
212
  } = o, {
201
213
  importNode: Be
202
214
  } = s;
203
- let N = Xt();
204
- r.isSupported = typeof rn == "function" && typeof q == "function" && k && k.createHTMLDocument !== void 0;
215
+ let O = Vt();
216
+ r.isSupported = typeof on == "function" && typeof q == "function" && k && k.createHTMLDocument !== void 0;
205
217
  const {
206
218
  MUSTACHE_EXPR: he,
207
219
  ERB_EXPR: be,
208
220
  TMPLIT_EXPR: We,
209
- DATA_ATTR: un,
210
- ARIA_ATTR: dn,
221
+ DATA_ATTR: dn,
222
+ ARIA_ATTR: fn,
211
223
  IS_SCRIPT_OR_DATA: pn,
212
224
  ATTR_WHITESPACE: ht,
213
- CUSTOM_ELEMENT: fn
225
+ CUSTOM_ELEMENT: gn
214
226
  } = Yt;
215
227
  let {
216
228
  IS_ALLOWED_URI: bt
217
- } = Yt, O = null;
218
- const Tt = _({}, [...Gt, ...ot, ...st, ...at, ...Bt]);
229
+ } = Yt, N = null;
230
+ const Tt = A({}, [...Gt, ...ot, ...st, ...at, ...Bt]);
219
231
  let M = null;
220
- const _t = _({}, [...Wt, ...lt, ...qt, ...Fe]);
221
- let R = Object.seal(Ue(null, {
232
+ const At = A({}, [...Wt, ...lt, ...qt, ...Ue]);
233
+ let R = Object.seal(Fe(null, {
222
234
  tagNameCheck: {
223
235
  writable: !0,
224
236
  configurable: !1,
@@ -237,8 +249,8 @@ function an() {
237
249
  enumerable: !0,
238
250
  value: !1
239
251
  }
240
- })), Te = null, we = null;
241
- const te = Object.seal(Ue(null, {
252
+ })), Te = null, Le = null;
253
+ const te = Object.seal(Fe(null, {
242
254
  tagCheck: {
243
255
  writable: !0,
244
256
  configurable: !1,
@@ -252,45 +264,45 @@ function an() {
252
264
  value: null
253
265
  }
254
266
  }));
255
- let At = !0, qe = !0, St = !1, yt = !0, ce = !1, ve = !0, oe = !1, Ye = !1, Xe = !1, me = !1, Le = !1, Oe = !1, Et = !0, It = !1;
256
- const gn = "user-content-";
257
- let Ve = !0, _e = !1, ue = {}, V = null;
258
- const Ke = _({}, ["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"]);
267
+ let _t = !0, qe = !0, St = !1, yt = !0, ce = !1, we = !0, oe = !1, Ye = !1, Ve = !1, me = !1, ve = !1, Ne = !1, Et = !0, It = !1;
268
+ const hn = "user-content-";
269
+ let Xe = !0, Ae = !1, ue = {}, X = null;
270
+ const Ke = A({}, ["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"]);
259
271
  let Ct = null;
260
- const Dt = _({}, ["audio", "video", "img", "source", "image", "track"]);
272
+ const Dt = A({}, ["audio", "video", "img", "source", "image", "track"]);
261
273
  let Ze = null;
262
- const Rt = _({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), Ne = "http://www.w3.org/1998/Math/MathML", Me = "http://www.w3.org/2000/svg", Q = "http://www.w3.org/1999/xhtml";
274
+ const Rt = A({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]), Oe = "http://www.w3.org/1998/Math/MathML", Me = "http://www.w3.org/2000/svg", Q = "http://www.w3.org/1999/xhtml";
263
275
  let de = Q, Qe = !1, Je = null;
264
- const hn = _({}, [Ne, Me, Q], it);
265
- let xe = _({}, ["mi", "mo", "mn", "ms", "mtext"]), ke = _({}, ["annotation-xml"]);
266
- const bn = _({}, ["title", "style", "font", "a", "script"]);
267
- let Ae = null;
268
- const Tn = ["application/xhtml+xml", "text/html"], _n = "text/html";
269
- let v = null, pe = null;
270
- const An = o.createElement("form"), wt = function(e) {
276
+ const bn = A({}, [Oe, Me, Q], it);
277
+ let xe = A({}, ["mi", "mo", "mn", "ms", "mtext"]), ke = A({}, ["annotation-xml"]);
278
+ const Tn = A({}, ["title", "style", "font", "a", "script"]);
279
+ let _e = null;
280
+ const An = ["application/xhtml+xml", "text/html"], _n = "text/html";
281
+ let w = null, fe = null;
282
+ const Sn = o.createElement("form"), Lt = function(e) {
271
283
  return e instanceof RegExp || e instanceof Function;
272
284
  }, et = function() {
273
285
  let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
274
- if (!(pe && pe === e)) {
275
- if ((!e || typeof e != "object") && (e = {}), e = Z(e), Ae = // eslint-disable-next-line unicorn/prefer-includes
276
- Tn.indexOf(e.PARSER_MEDIA_TYPE) === -1 ? _n : e.PARSER_MEDIA_TYPE, v = Ae === "application/xhtml+xml" ? it : ze, O = G(e, "ALLOWED_TAGS") ? _({}, e.ALLOWED_TAGS, v) : Tt, M = G(e, "ALLOWED_ATTR") ? _({}, e.ALLOWED_ATTR, v) : _t, Je = G(e, "ALLOWED_NAMESPACES") ? _({}, e.ALLOWED_NAMESPACES, it) : hn, Ze = G(e, "ADD_URI_SAFE_ATTR") ? _(Z(Rt), e.ADD_URI_SAFE_ATTR, v) : Rt, Ct = G(e, "ADD_DATA_URI_TAGS") ? _(Z(Dt), e.ADD_DATA_URI_TAGS, v) : Dt, V = G(e, "FORBID_CONTENTS") ? _({}, e.FORBID_CONTENTS, v) : Ke, Te = G(e, "FORBID_TAGS") ? _({}, e.FORBID_TAGS, v) : Z({}), we = G(e, "FORBID_ATTR") ? _({}, e.FORBID_ATTR, v) : Z({}), ue = G(e, "USE_PROFILES") ? e.USE_PROFILES : !1, At = e.ALLOW_ARIA_ATTR !== !1, qe = e.ALLOW_DATA_ATTR !== !1, St = e.ALLOW_UNKNOWN_PROTOCOLS || !1, yt = e.ALLOW_SELF_CLOSE_IN_ATTR !== !1, ce = e.SAFE_FOR_TEMPLATES || !1, ve = e.SAFE_FOR_XML !== !1, oe = e.WHOLE_DOCUMENT || !1, me = e.RETURN_DOM || !1, Le = e.RETURN_DOM_FRAGMENT || !1, Oe = e.RETURN_TRUSTED_TYPE || !1, Xe = e.FORCE_BODY || !1, Et = e.SANITIZE_DOM !== !1, It = e.SANITIZE_NAMED_PROPS || !1, Ve = e.KEEP_CONTENT !== !1, _e = e.IN_PLACE || !1, bt = e.ALLOWED_URI_REGEXP || on, de = e.NAMESPACE || Q, xe = e.MATHML_TEXT_INTEGRATION_POINTS || xe, ke = e.HTML_INTEGRATION_POINTS || ke, R = e.CUSTOM_ELEMENT_HANDLING || {}, e.CUSTOM_ELEMENT_HANDLING && wt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (R.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck), e.CUSTOM_ELEMENT_HANDLING && wt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (R.attributeNameCheck = e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), e.CUSTOM_ELEMENT_HANDLING && typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (R.allowCustomizedBuiltInElements = e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), ce && (qe = !1), Le && (me = !0), ue && (O = _({}, Bt), M = Ue(null), ue.html === !0 && (_(O, Gt), _(M, Wt)), ue.svg === !0 && (_(O, ot), _(M, lt), _(M, Fe)), ue.svgFilters === !0 && (_(O, st), _(M, lt), _(M, Fe)), ue.mathMl === !0 && (_(O, at), _(M, qt), _(M, Fe))), G(e, "ADD_TAGS") || (te.tagCheck = null), G(e, "ADD_ATTR") || (te.attributeCheck = null), e.ADD_TAGS && (typeof e.ADD_TAGS == "function" ? te.tagCheck = e.ADD_TAGS : (O === Tt && (O = Z(O)), _(O, e.ADD_TAGS, v))), e.ADD_ATTR && (typeof e.ADD_ATTR == "function" ? te.attributeCheck = e.ADD_ATTR : (M === _t && (M = Z(M)), _(M, e.ADD_ATTR, v))), e.ADD_URI_SAFE_ATTR && _(Ze, e.ADD_URI_SAFE_ATTR, v), e.FORBID_CONTENTS && (V === Ke && (V = Z(V)), _(V, e.FORBID_CONTENTS, v)), e.ADD_FORBID_CONTENTS && (V === Ke && (V = Z(V)), _(V, e.ADD_FORBID_CONTENTS, v)), Ve && (O["#text"] = !0), oe && _(O, ["html", "head", "body"]), O.table && (_(O, ["tbody"]), delete Te.tbody), e.TRUSTED_TYPES_POLICY) {
286
+ if (!(fe && fe === e)) {
287
+ if ((!e || typeof e != "object") && (e = {}), e = Z(e), _e = // eslint-disable-next-line unicorn/prefer-includes
288
+ An.indexOf(e.PARSER_MEDIA_TYPE) === -1 ? _n : e.PARSER_MEDIA_TYPE, w = _e === "application/xhtml+xml" ? it : ze, N = G(e, "ALLOWED_TAGS") ? A({}, e.ALLOWED_TAGS, w) : Tt, M = G(e, "ALLOWED_ATTR") ? A({}, e.ALLOWED_ATTR, w) : At, Je = G(e, "ALLOWED_NAMESPACES") ? A({}, e.ALLOWED_NAMESPACES, it) : bn, Ze = G(e, "ADD_URI_SAFE_ATTR") ? A(Z(Rt), e.ADD_URI_SAFE_ATTR, w) : Rt, Ct = G(e, "ADD_DATA_URI_TAGS") ? A(Z(Dt), e.ADD_DATA_URI_TAGS, w) : Dt, X = G(e, "FORBID_CONTENTS") ? A({}, e.FORBID_CONTENTS, w) : Ke, Te = G(e, "FORBID_TAGS") ? A({}, e.FORBID_TAGS, w) : Z({}), Le = G(e, "FORBID_ATTR") ? A({}, e.FORBID_ATTR, w) : Z({}), ue = G(e, "USE_PROFILES") ? e.USE_PROFILES : !1, _t = e.ALLOW_ARIA_ATTR !== !1, qe = e.ALLOW_DATA_ATTR !== !1, St = e.ALLOW_UNKNOWN_PROTOCOLS || !1, yt = e.ALLOW_SELF_CLOSE_IN_ATTR !== !1, ce = e.SAFE_FOR_TEMPLATES || !1, we = e.SAFE_FOR_XML !== !1, oe = e.WHOLE_DOCUMENT || !1, me = e.RETURN_DOM || !1, ve = e.RETURN_DOM_FRAGMENT || !1, Ne = e.RETURN_TRUSTED_TYPE || !1, Ve = e.FORCE_BODY || !1, Et = e.SANITIZE_DOM !== !1, It = e.SANITIZE_NAMED_PROPS || !1, Xe = e.KEEP_CONTENT !== !1, Ae = e.IN_PLACE || !1, bt = e.ALLOWED_URI_REGEXP || sn, de = e.NAMESPACE || Q, xe = e.MATHML_TEXT_INTEGRATION_POINTS || xe, ke = e.HTML_INTEGRATION_POINTS || ke, R = e.CUSTOM_ELEMENT_HANDLING || {}, e.CUSTOM_ELEMENT_HANDLING && Lt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (R.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck), e.CUSTOM_ELEMENT_HANDLING && Lt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (R.attributeNameCheck = e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), e.CUSTOM_ELEMENT_HANDLING && typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements == "boolean" && (R.allowCustomizedBuiltInElements = e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), ce && (qe = !1), ve && (me = !0), ue && (N = A({}, Bt), M = Fe(null), ue.html === !0 && (A(N, Gt), A(M, Wt)), ue.svg === !0 && (A(N, ot), A(M, lt), A(M, Ue)), ue.svgFilters === !0 && (A(N, st), A(M, lt), A(M, Ue)), ue.mathMl === !0 && (A(N, at), A(M, qt), A(M, Ue))), G(e, "ADD_TAGS") || (te.tagCheck = null), G(e, "ADD_ATTR") || (te.attributeCheck = null), e.ADD_TAGS && (typeof e.ADD_TAGS == "function" ? te.tagCheck = e.ADD_TAGS : (N === Tt && (N = Z(N)), A(N, e.ADD_TAGS, w))), e.ADD_ATTR && (typeof e.ADD_ATTR == "function" ? te.attributeCheck = e.ADD_ATTR : (M === At && (M = Z(M)), A(M, e.ADD_ATTR, w))), e.ADD_URI_SAFE_ATTR && A(Ze, e.ADD_URI_SAFE_ATTR, w), e.FORBID_CONTENTS && (X === Ke && (X = Z(X)), A(X, e.FORBID_CONTENTS, w)), e.ADD_FORBID_CONTENTS && (X === Ke && (X = Z(X)), A(X, e.ADD_FORBID_CONTENTS, w)), Xe && (N["#text"] = !0), oe && A(N, ["html", "head", "body"]), N.table && (A(N, ["tbody"]), delete Te.tbody), e.TRUSTED_TYPES_POLICY) {
277
289
  if (typeof e.TRUSTED_TYPES_POLICY.createHTML != "function")
278
290
  throw Ee('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
279
291
  if (typeof e.TRUSTED_TYPES_POLICY.createScriptURL != "function")
280
292
  throw Ee('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
281
- S = e.TRUSTED_TYPES_POLICY, X = S.createHTML("");
293
+ S = e.TRUSTED_TYPES_POLICY, V = S.createHTML("");
282
294
  } else
283
- S === void 0 && (S = ri(E, l)), S !== null && typeof X == "string" && (X = S.createHTML(""));
284
- j && j(e), pe = e;
295
+ S === void 0 && (S = ai(E, l)), S !== null && typeof V == "string" && (V = S.createHTML(""));
296
+ j && j(e), fe = e;
285
297
  }
286
- }, vt = _({}, [...ot, ...st, ...Yn]), Lt = _({}, [...at, ...Xn]), Sn = function(e) {
298
+ }, wt = A({}, [...ot, ...st, ...Kn]), vt = A({}, [...at, ...Zn]), yn = function(e) {
287
299
  let a = q(e);
288
300
  (!a || !a.tagName) && (a = {
289
301
  namespaceURI: de,
290
302
  tagName: "template"
291
303
  });
292
304
  const u = ze(e.tagName), C = ze(a.tagName);
293
- return Je[e.namespaceURI] ? e.namespaceURI === Me ? a.namespaceURI === Q ? u === "svg" : a.namespaceURI === Ne ? u === "svg" && (C === "annotation-xml" || xe[C]) : !!vt[u] : e.namespaceURI === Ne ? a.namespaceURI === Q ? u === "math" : a.namespaceURI === Me ? u === "math" && ke[C] : !!Lt[u] : e.namespaceURI === Q ? a.namespaceURI === Me && !ke[C] || a.namespaceURI === Ne && !xe[C] ? !1 : !Lt[u] && (bn[u] || !vt[u]) : !!(Ae === "application/xhtml+xml" && Je[e.namespaceURI]) : !1;
305
+ return Je[e.namespaceURI] ? e.namespaceURI === Me ? a.namespaceURI === Q ? u === "svg" : a.namespaceURI === Oe ? u === "svg" && (C === "annotation-xml" || xe[C]) : !!wt[u] : e.namespaceURI === Oe ? a.namespaceURI === Q ? u === "math" : a.namespaceURI === Me ? u === "math" && ke[C] : !!vt[u] : e.namespaceURI === Q ? a.namespaceURI === Me && !ke[C] || a.namespaceURI === Oe && !xe[C] ? !1 : !vt[u] && (Tn[u] || !wt[u]) : !!(_e === "application/xhtml+xml" && Je[e.namespaceURI]) : !1;
294
306
  }, K = function(e) {
295
307
  Se(r.removed, {
296
308
  element: e
@@ -313,7 +325,7 @@ function an() {
313
325
  });
314
326
  }
315
327
  if (a.removeAttribute(e), e === "is")
316
- if (me || Le)
328
+ if (me || ve)
317
329
  try {
318
330
  K(a);
319
331
  } catch {
@@ -323,36 +335,36 @@ function an() {
323
335
  a.setAttribute(e, "");
324
336
  } catch {
325
337
  }
326
- }, Ot = function(e) {
338
+ }, Nt = function(e) {
327
339
  let a = null, u = null;
328
- if (Xe)
340
+ if (Ve)
329
341
  e = "<remove></remove>" + e;
330
342
  else {
331
- const w = rt(e, /^[\r\n\t ]+/);
332
- u = w && w[0];
343
+ const L = rt(e, /^[\r\n\t ]+/);
344
+ u = L && L[0];
333
345
  }
334
- Ae === "application/xhtml+xml" && de === Q && (e = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + e + "</body></html>");
346
+ _e === "application/xhtml+xml" && de === Q && (e = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + e + "</body></html>");
335
347
  const C = S ? S.createHTML(e) : e;
336
348
  if (de === Q)
337
349
  try {
338
- a = new I().parseFromString(C, Ae);
350
+ a = new I().parseFromString(C, _e);
339
351
  } catch {
340
352
  }
341
353
  if (!a || !a.documentElement) {
342
354
  a = k.createDocument(de, "template", null);
343
355
  try {
344
- a.documentElement.innerHTML = Qe ? X : C;
356
+ a.documentElement.innerHTML = Qe ? V : C;
345
357
  } catch {
346
358
  }
347
359
  }
348
- const F = a.body || a.documentElement;
349
- return e && u && F.insertBefore(o.createTextNode(u), F.childNodes[0] || null), de === Q ? Ge.call(a, oe ? "html" : "body")[0] : oe ? a.documentElement : F;
350
- }, Nt = function(e) {
360
+ const U = a.body || a.documentElement;
361
+ return e && u && U.insertBefore(o.createTextNode(u), U.childNodes[0] || null), de === Q ? Ge.call(a, oe ? "html" : "body")[0] : oe ? a.documentElement : U;
362
+ }, Ot = function(e) {
351
363
  return P.call(
352
364
  e.ownerDocument || e,
353
365
  e,
354
366
  // eslint-disable-next-line no-bitwise
355
- f.SHOW_ELEMENT | f.SHOW_COMMENT | f.SHOW_TEXT | f.SHOW_PROCESSING_INSTRUCTION | f.SHOW_CDATA_SECTION,
367
+ p.SHOW_ELEMENT | p.SHOW_COMMENT | p.SHOW_TEXT | p.SHOW_PROCESSING_INSTRUCTION | p.SHOW_CDATA_SECTION,
356
368
  null
357
369
  );
358
370
  }, tt = function(e) {
@@ -362,58 +374,58 @@ function an() {
362
374
  };
363
375
  function J(d, e, a) {
364
376
  Pe(d, (u) => {
365
- u.call(r, e, a, pe);
377
+ u.call(r, e, a, fe);
366
378
  });
367
379
  }
368
380
  const xt = function(e) {
369
381
  let a = null;
370
- if (J(N.beforeSanitizeElements, e, null), tt(e))
382
+ if (J(O.beforeSanitizeElements, e, null), tt(e))
371
383
  return K(e), !0;
372
- const u = v(e.nodeName);
373
- if (J(N.uponSanitizeElement, e, {
384
+ const u = w(e.nodeName);
385
+ if (J(O.uponSanitizeElement, e, {
374
386
  tagName: u,
375
- allowedTags: O
376
- }), ve && e.hasChildNodes() && !Mt(e.firstElementChild) && U(/<[/\w!]/g, e.innerHTML) && U(/<[/\w!]/g, e.textContent) || e.nodeType === Ce.progressingInstruction || ve && e.nodeType === Ce.comment && U(/<[/\w]/g, e.data))
387
+ allowedTags: N
388
+ }), we && e.hasChildNodes() && !Mt(e.firstElementChild) && F(/<[/\w!]/g, e.innerHTML) && F(/<[/\w!]/g, e.textContent) || e.nodeType === Ce.progressingInstruction || we && e.nodeType === Ce.comment && F(/<[/\w]/g, e.data))
377
389
  return K(e), !0;
378
- if (!(te.tagCheck instanceof Function && te.tagCheck(u)) && (!O[u] || Te[u])) {
379
- if (!Te[u] && Pt(u) && (R.tagNameCheck instanceof RegExp && U(R.tagNameCheck, u) || R.tagNameCheck instanceof Function && R.tagNameCheck(u)))
390
+ if (!(te.tagCheck instanceof Function && te.tagCheck(u)) && (!N[u] || Te[u])) {
391
+ if (!Te[u] && Pt(u) && (R.tagNameCheck instanceof RegExp && F(R.tagNameCheck, u) || R.tagNameCheck instanceof Function && R.tagNameCheck(u)))
380
392
  return !1;
381
- if (Ve && !V[u]) {
382
- const C = q(e) || e.parentNode, F = L(e) || e.childNodes;
383
- if (F && C) {
384
- const w = F.length;
385
- for (let $ = w - 1; $ >= 0; --$) {
386
- const ee = ie(F[$], !0);
393
+ if (Xe && !X[u]) {
394
+ const C = q(e) || e.parentNode, U = v(e) || e.childNodes;
395
+ if (U && C) {
396
+ const L = U.length;
397
+ for (let $ = L - 1; $ >= 0; --$) {
398
+ const ee = ie(U[$], !0);
387
399
  ee.__removalCount = (e.__removalCount || 0) + 1, C.insertBefore(ee, re(e));
388
400
  }
389
401
  }
390
402
  }
391
403
  return K(e), !0;
392
404
  }
393
- return e instanceof m && !Sn(e) || (u === "noscript" || u === "noembed" || u === "noframes") && U(/<\/no(script|embed|frames)/i, e.innerHTML) ? (K(e), !0) : (ce && e.nodeType === Ce.text && (a = e.textContent, Pe([he, be, We], (C) => {
405
+ return e instanceof m && !yn(e) || (u === "noscript" || u === "noembed" || u === "noframes") && F(/<\/no(script|embed|frames)/i, e.innerHTML) ? (K(e), !0) : (ce && e.nodeType === Ce.text && (a = e.textContent, Pe([he, be, We], (C) => {
394
406
  a = ye(a, C, " ");
395
407
  }), e.textContent !== a && (Se(r.removed, {
396
408
  element: e.cloneNode()
397
- }), e.textContent = a)), J(N.afterSanitizeElements, e, null), !1);
409
+ }), e.textContent = a)), J(O.afterSanitizeElements, e, null), !1);
398
410
  }, kt = function(e, a, u) {
399
- if (we[a] || Et && (a === "id" || a === "name") && (u in o || u in An))
411
+ if (Le[a] || Et && (a === "id" || a === "name") && (u in o || u in Sn))
400
412
  return !1;
401
- if (!(qe && !we[a] && U(un, a))) {
402
- if (!(At && U(dn, a))) {
413
+ if (!(qe && !Le[a] && F(dn, a))) {
414
+ if (!(_t && F(fn, a))) {
403
415
  if (!(te.attributeCheck instanceof Function && te.attributeCheck(a, e))) {
404
- if (!M[a] || we[a]) {
416
+ if (!M[a] || Le[a]) {
405
417
  if (
406
418
  // First condition does a very basic check if a) it's basically a valid custom element tagname AND
407
419
  // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
408
420
  // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
409
- !(Pt(e) && (R.tagNameCheck instanceof RegExp && U(R.tagNameCheck, e) || R.tagNameCheck instanceof Function && R.tagNameCheck(e)) && (R.attributeNameCheck instanceof RegExp && U(R.attributeNameCheck, a) || R.attributeNameCheck instanceof Function && R.attributeNameCheck(a, e)) || // Alternative, second condition checks if it's an `is`-attribute, AND
421
+ !(Pt(e) && (R.tagNameCheck instanceof RegExp && F(R.tagNameCheck, e) || R.tagNameCheck instanceof Function && R.tagNameCheck(e)) && (R.attributeNameCheck instanceof RegExp && F(R.attributeNameCheck, a) || R.attributeNameCheck instanceof Function && R.attributeNameCheck(a, e)) || // Alternative, second condition checks if it's an `is`-attribute, AND
410
422
  // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
411
- a === "is" && R.allowCustomizedBuiltInElements && (R.tagNameCheck instanceof RegExp && U(R.tagNameCheck, u) || R.tagNameCheck instanceof Function && R.tagNameCheck(u)))
423
+ a === "is" && R.allowCustomizedBuiltInElements && (R.tagNameCheck instanceof RegExp && F(R.tagNameCheck, u) || R.tagNameCheck instanceof Function && R.tagNameCheck(u)))
412
424
  ) return !1;
413
425
  } else if (!Ze[a]) {
414
- if (!U(bt, ye(u, ht, ""))) {
415
- if (!((a === "src" || a === "xlink:href" || a === "href") && e !== "script" && Gn(u, "data:") === 0 && Ct[e])) {
416
- if (!(St && !U(pn, ye(u, ht, "")))) {
426
+ if (!F(bt, ye(u, ht, ""))) {
427
+ if (!((a === "src" || a === "xlink:href" || a === "href") && e !== "script" && qn(u, "data:") === 0 && Ct[e])) {
428
+ if (!(St && !F(pn, ye(u, ht, "")))) {
417
429
  if (u)
418
430
  return !1;
419
431
  }
@@ -425,9 +437,9 @@ function an() {
425
437
  }
426
438
  return !0;
427
439
  }, Pt = function(e) {
428
- return e !== "annotation-xml" && rt(e, fn);
429
- }, Ft = function(e) {
430
- J(N.beforeSanitizeAttributes, e, null);
440
+ return e !== "annotation-xml" && rt(e, gn);
441
+ }, Ut = function(e) {
442
+ J(O.beforeSanitizeAttributes, e, null);
431
443
  const {
432
444
  attributes: a
433
445
  } = e;
@@ -442,40 +454,40 @@ function an() {
442
454
  };
443
455
  let C = a.length;
444
456
  for (; C--; ) {
445
- const F = a[C], {
446
- name: w,
457
+ const U = a[C], {
458
+ name: L,
447
459
  namespaceURI: $,
448
460
  value: ee
449
- } = F, fe = v(w), nt = ee;
450
- let x = w === "value" ? nt : Bn(nt);
451
- if (u.attrName = fe, u.attrValue = x, u.keepAttr = !0, u.forceKeepAttr = void 0, J(N.uponSanitizeAttribute, e, u), x = u.attrValue, It && (fe === "id" || fe === "name") && (se(w, e), x = gn + x), ve && U(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, x)) {
452
- se(w, e);
461
+ } = U, pe = w(L), nt = ee;
462
+ let x = L === "value" ? nt : Yn(nt);
463
+ if (u.attrName = pe, u.attrValue = x, u.keepAttr = !0, u.forceKeepAttr = void 0, J(O.uponSanitizeAttribute, e, u), x = u.attrValue, It && (pe === "id" || pe === "name") && (se(L, e), x = hn + x), we && F(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, x)) {
464
+ se(L, e);
453
465
  continue;
454
466
  }
455
- if (fe === "attributename" && rt(x, "href")) {
456
- se(w, e);
467
+ if (pe === "attributename" && rt(x, "href")) {
468
+ se(L, e);
457
469
  continue;
458
470
  }
459
471
  if (u.forceKeepAttr)
460
472
  continue;
461
473
  if (!u.keepAttr) {
462
- se(w, e);
474
+ se(L, e);
463
475
  continue;
464
476
  }
465
- if (!yt && U(/\/>/i, x)) {
466
- se(w, e);
477
+ if (!yt && F(/\/>/i, x)) {
478
+ se(L, e);
467
479
  continue;
468
480
  }
469
481
  ce && Pe([he, be, We], (zt) => {
470
482
  x = ye(x, zt, " ");
471
483
  });
472
- const Ut = v(e.nodeName);
473
- if (!kt(Ut, fe, x)) {
474
- se(w, e);
484
+ const Ft = w(e.nodeName);
485
+ if (!kt(Ft, pe, x)) {
486
+ se(L, e);
475
487
  continue;
476
488
  }
477
489
  if (S && typeof E == "object" && typeof E.getAttributeType == "function" && !$)
478
- switch (E.getAttributeType(Ut, fe)) {
490
+ switch (E.getAttributeType(Ft, pe)) {
479
491
  case "TrustedHTML": {
480
492
  x = S.createHTML(x);
481
493
  break;
@@ -487,21 +499,21 @@ function an() {
487
499
  }
488
500
  if (x !== nt)
489
501
  try {
490
- $ ? e.setAttributeNS($, w, x) : e.setAttribute(w, x), tt(e) ? K(e) : $t(r.removed);
502
+ $ ? e.setAttributeNS($, L, x) : e.setAttribute(L, x), tt(e) ? K(e) : $t(r.removed);
491
503
  } catch {
492
- se(w, e);
504
+ se(L, e);
493
505
  }
494
506
  }
495
- J(N.afterSanitizeAttributes, e, null);
496
- }, yn = function d(e) {
507
+ J(O.afterSanitizeAttributes, e, null);
508
+ }, En = function d(e) {
497
509
  let a = null;
498
- const u = Nt(e);
499
- for (J(N.beforeSanitizeShadowDOM, e, null); a = u.nextNode(); )
500
- J(N.uponSanitizeShadowNode, a, null), xt(a), Ft(a), a.content instanceof c && d(a.content);
501
- J(N.afterSanitizeShadowDOM, e, null);
510
+ const u = Ot(e);
511
+ for (J(O.beforeSanitizeShadowDOM, e, null); a = u.nextNode(); )
512
+ J(O.uponSanitizeShadowNode, a, null), xt(a), Ut(a), a.content instanceof c && d(a.content);
513
+ J(O.afterSanitizeShadowDOM, e, null);
502
514
  };
503
515
  return r.sanitize = function(d) {
504
- let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, a = null, u = null, C = null, F = null;
516
+ let e = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, a = null, u = null, C = null, U = null;
505
517
  if (Qe = !d, Qe && (d = "<!-->"), typeof d != "string" && !Mt(d))
506
518
  if (typeof d.toString == "function") {
507
519
  if (d = d.toString(), typeof d != "string")
@@ -510,65 +522,65 @@ function an() {
510
522
  throw Ee("toString is not a function");
511
523
  if (!r.isSupported)
512
524
  return d;
513
- if (Ye || et(e), r.removed = [], typeof d == "string" && (_e = !1), _e) {
525
+ if (Ye || et(e), r.removed = [], typeof d == "string" && (Ae = !1), Ae) {
514
526
  if (d.nodeName) {
515
- const ee = v(d.nodeName);
516
- if (!O[ee] || Te[ee])
527
+ const ee = w(d.nodeName);
528
+ if (!N[ee] || Te[ee])
517
529
  throw Ee("root node is forbidden and cannot be sanitized in-place");
518
530
  }
519
531
  } else if (d instanceof b)
520
- a = Ot("<!---->"), u = a.ownerDocument.importNode(d, !0), u.nodeType === Ce.element && u.nodeName === "BODY" || u.nodeName === "HTML" ? a = u : a.appendChild(u);
532
+ a = Nt("<!---->"), u = a.ownerDocument.importNode(d, !0), u.nodeType === Ce.element && u.nodeName === "BODY" || u.nodeName === "HTML" ? a = u : a.appendChild(u);
521
533
  else {
522
534
  if (!me && !ce && !oe && // eslint-disable-next-line unicorn/prefer-includes
523
535
  d.indexOf("<") === -1)
524
- return S && Oe ? S.createHTML(d) : d;
525
- if (a = Ot(d), !a)
526
- return me ? null : Oe ? X : "";
536
+ return S && Ne ? S.createHTML(d) : d;
537
+ if (a = Nt(d), !a)
538
+ return me ? null : Ne ? V : "";
527
539
  }
528
- a && Xe && K(a.firstChild);
529
- const w = Nt(_e ? d : a);
530
- for (; C = w.nextNode(); )
531
- xt(C), Ft(C), C.content instanceof c && yn(C.content);
532
- if (_e)
540
+ a && Ve && K(a.firstChild);
541
+ const L = Ot(Ae ? d : a);
542
+ for (; C = L.nextNode(); )
543
+ xt(C), Ut(C), C.content instanceof c && En(C.content);
544
+ if (Ae)
533
545
  return d;
534
546
  if (me) {
535
- if (Le)
536
- for (F = le.call(a.ownerDocument); a.firstChild; )
537
- F.appendChild(a.firstChild);
547
+ if (ve)
548
+ for (U = le.call(a.ownerDocument); a.firstChild; )
549
+ U.appendChild(a.firstChild);
538
550
  else
539
- F = a;
540
- return (M.shadowroot || M.shadowrootmode) && (F = Be.call(s, F, !0)), F;
551
+ U = a;
552
+ return (M.shadowroot || M.shadowrootmode) && (U = Be.call(s, U, !0)), U;
541
553
  }
542
554
  let $ = oe ? a.outerHTML : a.innerHTML;
543
- return oe && O["!doctype"] && a.ownerDocument && a.ownerDocument.doctype && a.ownerDocument.doctype.name && U(sn, a.ownerDocument.doctype.name) && ($ = "<!DOCTYPE " + a.ownerDocument.doctype.name + `>
555
+ return oe && N["!doctype"] && a.ownerDocument && a.ownerDocument.doctype && a.ownerDocument.doctype.name && F(an, a.ownerDocument.doctype.name) && ($ = "<!DOCTYPE " + a.ownerDocument.doctype.name + `>
544
556
  ` + $), ce && Pe([he, be, We], (ee) => {
545
557
  $ = ye($, ee, " ");
546
- }), S && Oe ? S.createHTML($) : $;
558
+ }), S && Ne ? S.createHTML($) : $;
547
559
  }, r.setConfig = function() {
548
560
  let d = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
549
561
  et(d), Ye = !0;
550
562
  }, r.clearConfig = function() {
551
- pe = null, Ye = !1;
563
+ fe = null, Ye = !1;
552
564
  }, r.isValidAttribute = function(d, e, a) {
553
- pe || et({});
554
- const u = v(d), C = v(e);
565
+ fe || et({});
566
+ const u = w(d), C = w(e);
555
567
  return kt(u, C, a);
556
568
  }, r.addHook = function(d, e) {
557
- typeof e == "function" && Se(N[d], e);
569
+ typeof e == "function" && Se(O[d], e);
558
570
  }, r.removeHook = function(d, e) {
559
571
  if (e !== void 0) {
560
- const a = Hn(N[d], e);
561
- return a === -1 ? void 0 : $n(N[d], a, 1)[0];
572
+ const a = Bn(O[d], e);
573
+ return a === -1 ? void 0 : Wn(O[d], a, 1)[0];
562
574
  }
563
- return $t(N[d]);
575
+ return $t(O[d]);
564
576
  }, r.removeHooks = function(d) {
565
- N[d] = [];
577
+ O[d] = [];
566
578
  }, r.removeAllHooks = function() {
567
- N = Xt();
579
+ O = Vt();
568
580
  }, r;
569
581
  }
570
- var gt = an();
571
- const oi = ne`
582
+ var gt = ln();
583
+ const li = ne`
572
584
  query GetAssignment($courseId: ID!, $assignmentId: ID!, $userId: ID!) {
573
585
  legacyNode(_id: $assignmentId, type: Assignment) {
574
586
  ... on Assignment {
@@ -627,7 +639,7 @@ const oi = ne`
627
639
  contentType
628
640
  submissionPreviewUrl
629
641
  }
630
- `, si = ne`
642
+ `, ci = ne`
631
643
  query GetSubmissionComments(
632
644
  $submissionId: ID!
633
645
  $courseId: String
@@ -676,7 +688,7 @@ const oi = ne`
676
688
  }
677
689
  }
678
690
  }
679
- `, ai = ne`
691
+ `, mi = ne`
680
692
  query getSubmissions($submissionId: ID!) {
681
693
  node(id: $submissionId) {
682
694
  ... on Submission {
@@ -718,12 +730,12 @@ const oi = ne`
718
730
  url: n.string(),
719
731
  contentType: n.string(),
720
732
  submissionPreviewUrl: n.string().nullable()
721
- }), li = n.object({
733
+ }), ui = n.object({
722
734
  _id: n.string(),
723
735
  activeSubmissionType: n.string(),
724
736
  body: n.string().nullable(),
725
737
  attachments: n.array(De).nullable()
726
- }), ci = n.object({
738
+ }), di = n.object({
727
739
  id: n.string(),
728
740
  submittedAt: n.string(),
729
741
  body: n.string().nullable(),
@@ -734,8 +746,8 @@ const oi = ne`
734
746
  unreadCommentCount: n.number(),
735
747
  attachment: De.nullable(),
736
748
  attachments: n.array(De).nullable(),
737
- submissionDraft: li.nullable()
738
- }), mi = n.object({
749
+ submissionDraft: ui.nullable()
750
+ }), fi = n.object({
739
751
  _id: n.string(),
740
752
  name: n.string(),
741
753
  description: n.string().nullable(),
@@ -747,19 +759,19 @@ const oi = ne`
747
759
  gradingType: n.string(),
748
760
  published: n.boolean().nullable().optional(),
749
761
  submissionsConnection: n.object({
750
- nodes: n.array(ci)
762
+ nodes: n.array(di)
751
763
  })
752
- }), ui = n.object({
753
- legacyNode: mi,
764
+ }), pi = n.object({
765
+ legacyNode: fi,
754
766
  course: n.object({
755
767
  name: n.string()
756
768
  })
757
- }), ln = n.object({
769
+ }), cn = n.object({
758
770
  startCursor: n.string(),
759
771
  endCursor: n.string(),
760
772
  hasPreviousPage: n.boolean(),
761
773
  hasNextPage: n.boolean()
762
- }), cn = n.object({
774
+ }), mn = n.object({
763
775
  _id: n.string(),
764
776
  attempt: n.number(),
765
777
  author: n.object({
@@ -780,17 +792,17 @@ const oi = ne`
780
792
  id: n.string()
781
793
  })
782
794
  ).nullable()
783
- }), di = n.object({
795
+ }), gi = n.object({
784
796
  submissionComments: n.object({
785
797
  commentsConnection: n.object({
786
- pageInfo: ln,
787
- nodes: n.array(cn)
798
+ pageInfo: cn,
799
+ nodes: n.array(mn)
788
800
  })
789
801
  })
790
- }), or = n.object({
791
- comments: n.array(cn),
792
- pageInfo: ln
793
- }), pi = n.object({
802
+ }), lr = n.object({
803
+ comments: n.array(mn),
804
+ pageInfo: cn
805
+ }), hi = n.object({
794
806
  submittedAt: n.string(),
795
807
  body: n.string().nullable(),
796
808
  grade: n.string().nullable(),
@@ -800,16 +812,16 @@ const oi = ne`
800
812
  attempt: n.number(),
801
813
  attachment: De.nullable(),
802
814
  attachments: n.array(De).nullable()
803
- }), fi = n.object({
815
+ }), bi = n.object({
804
816
  node: n.object({
805
817
  submissionHistoriesConnection: n.object({
806
- nodes: n.array(pi)
818
+ nodes: n.array(hi)
807
819
  })
808
820
  })
809
821
  }), Re = n.object({
810
822
  attribute: n.string(),
811
823
  message: n.string()
812
- }), gi = n.object({
824
+ }), Ti = n.object({
813
825
  createSubmissionComment: n.object({
814
826
  submissionComment: n.object({
815
827
  _id: n.string(),
@@ -854,11 +866,11 @@ const oi = ne`
854
866
  }).nullable(),
855
867
  errors: n.array(Re).nullable()
856
868
  })
857
- }), hi = n.object({
869
+ }), Ai = n.object({
858
870
  markSubmissionCommentsRead: n.object({
859
871
  errors: n.array(Re).nullable()
860
872
  })
861
- }), sr = n.object({
873
+ }), cr = n.object({
862
874
  createSubmission: n.object({
863
875
  submission: n.object({
864
876
  _id: n.string(),
@@ -869,7 +881,7 @@ const oi = ne`
869
881
  }).nullable(),
870
882
  errors: n.array(Re).nullable()
871
883
  })
872
- }), ar = n.object(
884
+ }), mr = n.object(
873
885
  {
874
886
  createSubmissionDraft: n.object({
875
887
  submissionDraft: n.object({
@@ -878,7 +890,7 @@ const oi = ne`
878
890
  errors: n.array(Re).nullable()
879
891
  })
880
892
  }
881
- ), lr = n.object(
893
+ ), ur = n.object(
882
894
  {
883
895
  deleteSubmissionDraft: n.object({
884
896
  submissionDraftIds: n.array(n.string()).nullable(),
@@ -886,7 +898,7 @@ const oi = ne`
886
898
  })
887
899
  }
888
900
  );
889
- function bi({
901
+ function _i({
890
902
  courseId: t,
891
903
  assignmentId: r,
892
904
  userId: o,
@@ -896,20 +908,20 @@ function bi({
896
908
  return $e({
897
909
  queryKey: ["assignment-review", "assignment", t, r, o],
898
910
  queryFn: async () => {
899
- const c = await s(oi, {
911
+ const c = await s(li, {
900
912
  courseId: t,
901
913
  assignmentId: r,
902
914
  userId: o
903
- }), p = ui.parse(c);
915
+ }), f = pi.parse(c);
904
916
  return {
905
- ...p.legacyNode,
906
- courseName: p.course.name
917
+ ...f.legacyNode,
918
+ courseName: f.course.name
907
919
  };
908
920
  },
909
921
  enabled: l
910
922
  });
911
923
  }
912
- function Ti({
924
+ function Si({
913
925
  submissionId: t,
914
926
  executeQuery: r,
915
927
  enabled: o = !0
@@ -917,27 +929,27 @@ function Ti({
917
929
  return $e({
918
930
  queryKey: ["assignment-review", "submissions", t],
919
931
  queryFn: async () => {
920
- const s = await r(ai, { submissionId: t });
921
- return fi.parse(s).node.submissionHistoriesConnection.nodes.slice().sort(
922
- (c, p) => new Date(p.submittedAt).getTime() - new Date(c.submittedAt).getTime()
932
+ const s = await r(mi, { submissionId: t });
933
+ return bi.parse(s).node.submissionHistoriesConnection.nodes.slice().sort(
934
+ (c, f) => new Date(f.submittedAt).getTime() - new Date(c.submittedAt).getTime()
923
935
  );
924
936
  },
925
937
  enabled: o
926
938
  });
927
939
  }
928
- function _i(t) {
940
+ function yi(t) {
929
941
  if (!t) return "";
930
942
  const r = new Date(t);
931
943
  return Number.isNaN(r.getTime()) ? "" : r.toLocaleDateString();
932
944
  }
933
- function Ai({
945
+ function Ei({
934
946
  submission: t,
935
947
  isSelected: r,
936
948
  isDraft: o = !1,
937
949
  pointsPossible: s,
938
950
  onClick: l
939
951
  }) {
940
- const { t: c } = B("assignment-review"), p = o ? c("submission.currentAttempt", "Current attempt") : `${c("comments.attempt", { number: t.attempt })}`, b = t.score != null && s != null ? `${t.score}/${s}` : null;
952
+ const c = B(), f = o ? c.submissionCurrentAttempt() : c.commentsAttempt({ number: t.attempt }), b = t.score != null && s != null ? `${t.score}/${s}` : null;
941
953
  return /* @__PURE__ */ i(
942
954
  Y,
943
955
  {
@@ -954,40 +966,37 @@ function Ai({
954
966
  onKeyDown: (m) => {
955
967
  (m.key === "Enter" || m.key === " ") && (m.preventDefault(), l());
956
968
  },
957
- children: /* @__PURE__ */ A(h, { justifyItems: "space-between", alignItems: "center", children: [
958
- /* @__PURE__ */ A(h, { direction: "column", gap: "xx-small", children: [
959
- /* @__PURE__ */ A(h, { gap: "small", alignItems: "center", children: [
960
- /* @__PURE__ */ i(y, { weight: "bold", children: p }),
961
- o && /* @__PURE__ */ i(pt, { color: "info", children: c("submission.draft", "Draft") })
969
+ children: /* @__PURE__ */ _(h, { justifyItems: "space-between", alignItems: "center", children: [
970
+ /* @__PURE__ */ _(h, { direction: "column", gap: "xx-small", children: [
971
+ /* @__PURE__ */ _(h, { gap: "small", alignItems: "center", children: [
972
+ /* @__PURE__ */ i(y, { weight: "bold", children: f }),
973
+ o && /* @__PURE__ */ i(ft, { color: "info", children: c.submissionDraft() })
962
974
  ] }),
963
- !o && t.submittedAt && /* @__PURE__ */ i(y, { size: "small", color: "secondary", children: _i(t.submittedAt) })
975
+ !o && t.submittedAt && /* @__PURE__ */ i(y, { size: "small", color: "secondary", children: yi(t.submittedAt) })
964
976
  ] }),
965
977
  b && /* @__PURE__ */ i(y, { weight: "bold", children: b })
966
978
  ] })
967
979
  }
968
980
  );
969
981
  }
970
- function Si({
982
+ function Ii({
971
983
  submissionId: t,
972
984
  selectedAttempt: r,
973
985
  onAttemptSelect: o,
974
986
  pointsPossible: s,
975
987
  executeQuery: l
976
988
  }) {
977
- const { t: c } = B("assignment-review"), { data: p, isLoading: b, isError: m } = Ti({
989
+ const c = B(), { data: f, isLoading: b, isError: m } = Si({
978
990
  submissionId: t,
979
991
  executeQuery: l
980
992
  });
981
993
  if (b)
982
- return /* @__PURE__ */ i(h, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ i(He, { renderTitle: c("navigation.attempts"), size: "small" }) });
994
+ return /* @__PURE__ */ i(h, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ i(He, { renderTitle: c.navigationAttempts(), size: "small" }) });
983
995
  if (m)
984
- return /* @__PURE__ */ i(h, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ i(y, { color: "danger", children: c("submission.loadAttemptsError", "Failed to load attempts") }) });
985
- const f = (p == null ? void 0 : p.filter((g) => g.attempt > 0)) ?? [];
986
- return f.length === 0 ? /* @__PURE__ */ i(h, { padding: "medium", children: /* @__PURE__ */ i(y, { color: "secondary", children: c(
987
- "submission.noAttempts",
988
- "This assignment allows multiple attempts. Once you've made a submission, you can view it here."
989
- ) }) }) : /* @__PURE__ */ i(h, { direction: "column", gap: "x-small", padding: "none none medium none", children: f.map((g) => /* @__PURE__ */ i(
990
- Ai,
996
+ return /* @__PURE__ */ i(h, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ i(y, { color: "danger", children: c.submissionLoadAttemptsError() }) });
997
+ const p = (f == null ? void 0 : f.filter((g) => g.attempt > 0)) ?? [];
998
+ return p.length === 0 ? /* @__PURE__ */ i(h, { padding: "medium", children: /* @__PURE__ */ i(y, { color: "secondary", children: c.submissionNoAttempts() }) }) : /* @__PURE__ */ i(h, { direction: "column", gap: "x-small", padding: "none none medium none", children: p.map((g) => /* @__PURE__ */ i(
999
+ Ei,
991
1000
  {
992
1001
  submission: g,
993
1002
  isSelected: r === g.attempt,
@@ -997,7 +1006,7 @@ function Si({
997
1006
  g.attempt
998
1007
  )) });
999
1008
  }
1000
- function mn({
1009
+ function un({
1001
1010
  attachments: t,
1002
1011
  size: r = "medium"
1003
1012
  }) {
@@ -1009,24 +1018,24 @@ function mn({
1009
1018
  borderColor: "primary",
1010
1019
  borderWidth: "small",
1011
1020
  borderRadius: "medium",
1012
- children: /* @__PURE__ */ A(h, { as: "div", gap: "small", width: "100%", justifyItems: "space-between", alignItems: "center", children: [
1021
+ children: /* @__PURE__ */ _(h, { as: "div", gap: "small", width: "100%", justifyItems: "space-between", alignItems: "center", children: [
1013
1022
  /* @__PURE__ */ i(h.Item, { shouldShrink: !0, children: /* @__PURE__ */ i(en, { children: o.displayName }) }),
1014
- /* @__PURE__ */ i(kn, { href: o.url, isWithinText: !1, renderIcon: /* @__PURE__ */ i(Cn, {}), children: /* @__PURE__ */ i(ft, { children: `Download ${o.displayName}` }) })
1023
+ /* @__PURE__ */ i(Fn, { href: o.url, isWithinText: !1, renderIcon: /* @__PURE__ */ i(Ln, {}), children: /* @__PURE__ */ i(pt, { children: `Download ${o.displayName}` }) })
1015
1024
  ] })
1016
1025
  },
1017
1026
  o.id
1018
1027
  )) });
1019
1028
  }
1020
- function yi(t) {
1029
+ function Ci(t) {
1021
1030
  return /* @__PURE__ */ i("span", { dangerouslySetInnerHTML: { __html: gt.sanitize(t) } });
1022
1031
  }
1023
- function Ei({
1032
+ function Di({
1024
1033
  submission: t,
1025
1034
  isLastAttempt: r = !0,
1026
1035
  showAttemptLabel: o = !0,
1027
1036
  renderHTML: s
1028
1037
  }) {
1029
- const { t: l } = B("assignment-review"), c = s ?? yi, p = (t == null ? void 0 : t.submissionType) === "online_text_entry", b = (t == null ? void 0 : t.submissionType) === "online_upload", m = l(p ? "submission.textHeading" : "submission.uploadHeading"), f = je(() => {
1038
+ const l = B(), c = s ?? Ci, f = (t == null ? void 0 : t.submissionType) === "online_text_entry", b = (t == null ? void 0 : t.submissionType) === "online_upload", m = f ? l.submissionTextHeading() : l.submissionUploadHeading(), p = je(() => {
1030
1039
  if (!t) return [];
1031
1040
  const D = [];
1032
1041
  if (t.attachment && D.push(t.attachment), t.attachments)
@@ -1034,61 +1043,61 @@ function Ei({
1034
1043
  D.some((E) => E.id === I.id) || D.push(I);
1035
1044
  return D;
1036
1045
  }, [t]), g = je(() => c((t == null ? void 0 : t.body) ?? ""), [t == null ? void 0 : t.body, c]);
1037
- return t ? /* @__PURE__ */ i(Y, { as: "div", children: /* @__PURE__ */ A(h, { direction: "column", gap: "small", children: [
1038
- o && !r && t.attempt != null && /* @__PURE__ */ i(y, { size: "small", weight: "bold", color: "secondary", children: l("submission.viewingAttempt", { number: t.attempt }) }),
1039
- /* @__PURE__ */ A(h, { gap: "x-small", alignItems: "center", children: [
1040
- /* @__PURE__ */ i(Dn, { color: "success" }),
1046
+ return t ? /* @__PURE__ */ i(Y, { as: "div", children: /* @__PURE__ */ _(h, { direction: "column", gap: "small", children: [
1047
+ o && !r && t.attempt != null && /* @__PURE__ */ i(y, { size: "small", weight: "bold", color: "secondary", children: l.submissionViewingAttempt({ number: t.attempt }) }),
1048
+ /* @__PURE__ */ _(h, { gap: "x-small", alignItems: "center", children: [
1049
+ /* @__PURE__ */ i(wn, { color: "success" }),
1041
1050
  /* @__PURE__ */ i(dt, { level: "h3", children: m })
1042
1051
  ] }),
1043
- p && t.body && /* @__PURE__ */ A(h, { alignItems: "stretch", gap: "small", children: [
1052
+ f && t.body && /* @__PURE__ */ _(h, { alignItems: "stretch", gap: "small", children: [
1044
1053
  /* @__PURE__ */ i(Y, { as: "div", width: "4px", background: "primary", borderRadius: "small" }),
1045
1054
  /* @__PURE__ */ i(Y, { as: "div", children: /* @__PURE__ */ i(y, { children: g }) })
1046
1055
  ] }),
1047
- b && f.length > 0 && /* @__PURE__ */ i(mn, { attachments: f })
1056
+ b && p.length > 0 && /* @__PURE__ */ i(un, { attachments: p })
1048
1057
  ] }) }) : null;
1049
1058
  }
1050
- function Ii(t) {
1059
+ function Ri(t) {
1051
1060
  const r = new Date(t);
1052
1061
  return Number.isNaN(r.getTime()) ? "" : r.toLocaleDateString(void 0, { month: "short", day: "numeric", year: "numeric" });
1053
1062
  }
1054
- function Ci() {
1063
+ function Li() {
1055
1064
  return /* @__PURE__ */ i(y, { color: "secondary", size: "small", children: "|" });
1056
1065
  }
1057
- function Di({
1066
+ function wi({
1058
1067
  score: t,
1059
1068
  pointsPossible: r,
1060
1069
  gradingType: o,
1061
1070
  dueAt: s,
1062
1071
  allowedAttempts: l,
1063
1072
  currentAttempt: c,
1064
- isOverdue: p,
1073
+ isOverdue: f,
1065
1074
  estimatedDuration: b,
1066
1075
  labels: m
1067
1076
  }) {
1068
- const { t: f } = B("assignment-review"), g = [];
1077
+ const p = B(), g = [];
1069
1078
  return b && g.push(
1070
- /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.duration) ?? f("header.duration", { minutes: b }) }, "duration")
1079
+ /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.duration) ?? p.headerDuration({ minutes: b }) }, "duration")
1071
1080
  ), t != null && r != null ? g.push(
1072
- /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.score) ?? f("header.score", { score: t, total: r }) }, "score")
1081
+ /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.score) ?? p.headerScore({ score: t, total: r }) }, "score")
1073
1082
  ) : r != null && o !== "not_graded" && g.push(
1074
- /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.pointsPossible) ?? f("header.pointsPossible", { points: r }) }, "points")
1083
+ /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.pointsPossible) ?? p.headerPointsPossible({ points: r }) }, "points")
1075
1084
  ), l != null && (l === -1 ? g.push(
1076
- /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.attempts) ?? f("header.attemptsUnlimited") }, "attempts")
1085
+ /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.attempts) ?? p.headerAttemptsUnlimited() }, "attempts")
1077
1086
  ) : c != null ? g.push(
1078
- /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.attempts) ?? f("header.attemptOf", { current: c, total: l }) }, "attempts")
1087
+ /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.attempts) ?? p.headerAttemptOf({ current: c, total: l }) }, "attempts")
1079
1088
  ) : g.push(
1080
- /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.attempts) ?? f("header.attemptsAllowed", { count: l }) }, "attempts")
1089
+ /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.attempts) ?? p.headerAttemptsAllowed({ count: l }) }, "attempts")
1081
1090
  )), s && g.push(
1082
- /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.dueDate) ?? f("header.dueDate", { date: Ii(s) }) }, "due")
1083
- ), /* @__PURE__ */ A(h, { as: "div", direction: "row", alignItems: "center", gap: "small", children: [
1084
- g.map((D, I) => /* @__PURE__ */ A(h, { gap: "small", alignItems: "center", children: [
1085
- I > 0 && /* @__PURE__ */ i(Ci, {}),
1091
+ /* @__PURE__ */ i(y, { size: "small", children: (m == null ? void 0 : m.dueDate) ?? p.headerDueDate({ date: Ri(s) }) }, "due")
1092
+ ), /* @__PURE__ */ _(h, { as: "div", direction: "row", alignItems: "center", gap: "small", children: [
1093
+ g.map((D, I) => /* @__PURE__ */ _(h, { gap: "small", alignItems: "center", children: [
1094
+ I > 0 && /* @__PURE__ */ i(Li, {}),
1086
1095
  D
1087
1096
  ] }, `item-${String(I)}`)),
1088
- p && /* @__PURE__ */ i(pt, { color: "danger", children: (m == null ? void 0 : m.overdue) ?? f("header.overdue") })
1097
+ f && /* @__PURE__ */ i(ft, { color: "danger", children: (m == null ? void 0 : m.overdue) ?? p.headerOverdue() })
1089
1098
  ] });
1090
1099
  }
1091
- const Ri = ne`
1100
+ const vi = ne`
1092
1101
  mutation CreateSubmissionComment(
1093
1102
  $id: ID!
1094
1103
  $submissionAttempt: Int!
@@ -1178,7 +1187,7 @@ const Ri = ne`
1178
1187
  mimeClass
1179
1188
  url
1180
1189
  }
1181
- `, wi = ne`
1190
+ `, Ni = ne`
1182
1191
  mutation MarkSubmissionCommentsRead(
1183
1192
  $submissionId: ID!
1184
1193
  $submissionCommentIds: [ID!]!
@@ -1195,7 +1204,7 @@ const Ri = ne`
1195
1204
  }
1196
1205
  }
1197
1206
  }
1198
- `, cr = ne`
1207
+ `, dr = ne`
1199
1208
  mutation CreateSubmission(
1200
1209
  $assignmentLid: ID!
1201
1210
  $submissionType: OnlineSubmissionType!
@@ -1223,7 +1232,7 @@ const Ri = ne`
1223
1232
  }
1224
1233
  }
1225
1234
  }
1226
- `, mr = ne`
1235
+ `, fr = ne`
1227
1236
  mutation CreateSubmissionDraft(
1228
1237
  $submissionId: ID!
1229
1238
  $submissionType: DraftableSubmissionType!
@@ -1249,7 +1258,7 @@ const Ri = ne`
1249
1258
  }
1250
1259
  }
1251
1260
  }
1252
- `, ur = ne`
1261
+ `, pr = ne`
1253
1262
  mutation DeleteSubmissionDraft($submissionId: ID!) {
1254
1263
  deleteSubmissionDraft(input: { submissionId: $submissionId }) {
1255
1264
  submissionDraftIds
@@ -1260,19 +1269,19 @@ const Ri = ne`
1260
1269
  }
1261
1270
  }
1262
1271
  `;
1263
- function vi({
1272
+ function Oi({
1264
1273
  executeQuery: t
1265
1274
  }) {
1266
- const r = Vt();
1275
+ const r = Xt();
1267
1276
  return Kt({
1268
1277
  mutationFn: async ({ submissionId: o, attempt: s, comment: l, fileIds: c }) => {
1269
- const p = await t(Ri, {
1278
+ const f = await t(vi, {
1270
1279
  id: o,
1271
1280
  submissionAttempt: s,
1272
1281
  comment: l,
1273
1282
  fileIds: c
1274
1283
  });
1275
- return gi.parse(p), p;
1284
+ return Ti.parse(f), f;
1276
1285
  },
1277
1286
  onSuccess: (o, s) => {
1278
1287
  r.invalidateQueries({
@@ -1281,7 +1290,7 @@ function vi({
1281
1290
  }
1282
1291
  });
1283
1292
  }
1284
- function Li({
1293
+ function Mi({
1285
1294
  submissionId: t,
1286
1295
  courseId: r,
1287
1296
  pageParams: o,
@@ -1300,17 +1309,17 @@ function Li({
1300
1309
  s
1301
1310
  ],
1302
1311
  queryFn: async () => {
1303
- const p = await l(si, {
1312
+ const f = await l(ci, {
1304
1313
  submissionId: t,
1305
1314
  courseId: r,
1306
1315
  beforeCursor: s === "prev" ? (o == null ? void 0 : o.startCursor) ?? null : null,
1307
1316
  afterCursor: s === "next" ? (o == null ? void 0 : o.endCursor) ?? null : null,
1308
1317
  first: s === "next" ? 5 : null,
1309
1318
  last: s === "prev" || !s ? 5 : null
1310
- }), b = di.parse(p);
1319
+ }), b = gi.parse(f);
1311
1320
  return {
1312
1321
  comments: [...b.submissionComments.commentsConnection.nodes].sort(
1313
- (f, g) => new Date(f.createdAt).getTime() - new Date(g.createdAt).getTime()
1322
+ (p, g) => new Date(p.createdAt).getTime() - new Date(g.createdAt).getTime()
1314
1323
  ),
1315
1324
  pageInfo: b.submissionComments.commentsConnection.pageInfo
1316
1325
  };
@@ -1318,17 +1327,17 @@ function Li({
1318
1327
  enabled: c ?? !!t
1319
1328
  });
1320
1329
  }
1321
- function Oi({
1330
+ function xi({
1322
1331
  executeQuery: t
1323
1332
  }) {
1324
- const r = Vt();
1333
+ const r = Xt();
1325
1334
  return Kt({
1326
1335
  mutationFn: async ({ submissionId: o, submissionCommentIds: s }) => {
1327
1336
  const l = await t(
1328
- wi,
1337
+ Ni,
1329
1338
  { submissionId: o, submissionCommentIds: s }
1330
1339
  );
1331
- return hi.parse(l), l;
1340
+ return Ai.parse(l), l;
1332
1341
  },
1333
1342
  onSuccess: (o, s) => {
1334
1343
  r.invalidateQueries({
@@ -1338,20 +1347,20 @@ function Oi({
1338
1347
  }
1339
1348
  });
1340
1349
  }
1341
- function Ni(t) {
1350
+ function ki(t) {
1342
1351
  return /* @__PURE__ */ i("span", { dangerouslySetInnerHTML: { __html: gt.sanitize(t) } });
1343
1352
  }
1344
- function Mi(t) {
1353
+ function Pi(t) {
1345
1354
  const r = new Date(t);
1346
1355
  return Number.isNaN(r.getTime()) ? "" : r.toLocaleString();
1347
1356
  }
1348
- function xi({
1357
+ function Ui({
1349
1358
  comment: t,
1350
1359
  isFullWidth: r,
1351
1360
  renderHTML: o
1352
1361
  }) {
1353
1362
  var m;
1354
- const { t: s } = B("assignment-review"), l = o ?? Ni, c = ((m = t.author.courseRoles) == null ? void 0 : m.includes("StudentEnrollment")) ?? !1, p = je(() => l(t.htmlComment), [t.htmlComment, l]);
1363
+ const s = B(), l = o ?? ki, c = ((m = t.author.courseRoles) == null ? void 0 : m.includes("StudentEnrollment")) ?? !1, f = je(() => l(t.htmlComment), [t.htmlComment, l]);
1355
1364
  return /* @__PURE__ */ i(
1356
1365
  Y,
1357
1366
  {
@@ -1361,22 +1370,22 @@ function xi({
1361
1370
  borderColor: "primary",
1362
1371
  borderRadius: "medium",
1363
1372
  margin: r ? "none" : c ? "none none none medium" : "none medium none none",
1364
- children: /* @__PURE__ */ A(h, { as: "div", direction: "column", gap: "small", children: [
1365
- /* @__PURE__ */ A(h, { as: "div", direction: "column", gap: "xx-small", children: [
1366
- /* @__PURE__ */ A(h, { as: "div", justifyItems: "space-between", alignItems: "center", children: [
1373
+ children: /* @__PURE__ */ _(h, { as: "div", direction: "column", gap: "small", children: [
1374
+ /* @__PURE__ */ _(h, { as: "div", direction: "column", gap: "xx-small", children: [
1375
+ /* @__PURE__ */ _(h, { as: "div", justifyItems: "space-between", alignItems: "center", children: [
1367
1376
  /* @__PURE__ */ i(h.Item, { shouldShrink: !0, children: /* @__PURE__ */ i(y, { weight: "bold", size: "medium", children: /* @__PURE__ */ i(en, { children: t.author.shortName }) }) }),
1368
- !t.read && /* @__PURE__ */ i(nn, { type: "notification", standalone: !0, children: /* @__PURE__ */ i(ft, { children: s("comments.unreadSingle") }) })
1377
+ !t.read && /* @__PURE__ */ i(nn, { type: "notification", standalone: !0, children: /* @__PURE__ */ i(pt, { children: s.commentsUnreadSingle() }) })
1369
1378
  ] }),
1370
- /* @__PURE__ */ i(y, { size: "small", color: "secondary", children: Mi(t.createdAt) }),
1371
- t.attempt > 0 && /* @__PURE__ */ i(y, { size: "small", color: "secondary", children: s("comments.attempt", { number: t.attempt }) })
1379
+ /* @__PURE__ */ i(y, { size: "small", color: "secondary", children: Pi(t.createdAt) }),
1380
+ t.attempt > 0 && /* @__PURE__ */ i(y, { size: "small", color: "secondary", children: s.commentsAttempt({ number: t.attempt }) })
1372
1381
  ] }),
1373
- /* @__PURE__ */ i(y, { size: "medium", children: p }),
1382
+ /* @__PURE__ */ i(y, { size: "medium", children: f }),
1374
1383
  t.attachments && t.attachments.length > 0 && /* @__PURE__ */ i(
1375
- mn,
1384
+ un,
1376
1385
  {
1377
- attachments: t.attachments.map((f) => ({
1378
- ...f,
1379
- _id: f._id ?? f.id,
1386
+ attachments: t.attachments.map((p) => ({
1387
+ ...p,
1388
+ _id: p._id ?? p.id,
1380
1389
  submissionPreviewUrl: null
1381
1390
  })),
1382
1391
  size: "small"
@@ -1386,23 +1395,23 @@ function xi({
1386
1395
  }
1387
1396
  );
1388
1397
  }
1389
- function ki({
1398
+ function Fi({
1390
1399
  submissionId: t,
1391
1400
  courseId: r,
1392
1401
  assignmentId: o,
1393
1402
  attempt: s,
1394
1403
  canPostComment: l,
1395
1404
  onCommentPosted: c,
1396
- renderHTML: p,
1405
+ renderHTML: f,
1397
1406
  executeQuery: b
1398
1407
  }) {
1399
- const { t: m } = B("assignment-review"), [f, g] = ge(""), [D, I] = ge({}), E = En(/* @__PURE__ */ new Set()), { data: T, isLoading: ie, isError: ae } = Li({
1408
+ const m = B(), [p, g] = ge(""), [D, I] = ge({}), E = Dn(/* @__PURE__ */ new Set()), { data: T, isLoading: ie, isError: ae } = Mi({
1400
1409
  submissionId: t,
1401
1410
  courseId: r,
1402
1411
  pageParams: D.pageParams,
1403
1412
  direction: D.direction,
1404
1413
  executeQuery: b
1405
- }), re = vi({ executeQuery: b }), L = Oi({ executeQuery: b });
1414
+ }), re = Oi({ executeQuery: b }), v = xi({ executeQuery: b });
1406
1415
  ct(() => {
1407
1416
  if (!(T != null && T.comments) || T.comments.length === 0) return;
1408
1417
  const k = T.comments.filter((P) => !P.read && !E.current.has(P._id)).filter((P) => {
@@ -1412,65 +1421,65 @@ function ki({
1412
1421
  if (k.length > 0) {
1413
1422
  for (const P of k)
1414
1423
  E.current.add(P);
1415
- L.mutate({ submissionId: t, assignmentId: o, submissionCommentIds: k });
1424
+ v.mutate({ submissionId: t, assignmentId: o, submissionCommentIds: k });
1416
1425
  }
1417
- }, [T == null ? void 0 : T.comments, t, o, L]);
1426
+ }, [T == null ? void 0 : T.comments, t, o, v]);
1418
1427
  const q = T == null ? void 0 : T.comments.some(
1419
1428
  (k) => {
1420
1429
  var P;
1421
1430
  return !((P = k.author.courseRoles) != null && P.includes("StudentEnrollment"));
1422
1431
  }
1423
1432
  ), S = () => {
1424
- f.trim() && re.mutate(
1425
- { submissionId: t, attempt: s, comment: f },
1433
+ p.trim() && re.mutate(
1434
+ { submissionId: t, attempt: s, comment: p },
1426
1435
  {
1427
1436
  onSuccess: () => {
1428
1437
  g(""), c == null || c();
1429
1438
  }
1430
1439
  }
1431
1440
  );
1432
- }, X = (T == null ? void 0 : T.pageInfo.hasNextPage) || (T == null ? void 0 : T.pageInfo.hasPreviousPage);
1433
- return ie || !T && !ae ? /* @__PURE__ */ i(h, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ i(He, { renderTitle: m("comments.panelTitle"), size: "small" }) }) : ae ? /* @__PURE__ */ i(h, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ i(y, { color: "danger", children: m("comments.loadError", "Failed to load comments") }) }) : /* @__PURE__ */ A(h, { as: "div", direction: "column", justifyItems: "space-between", height: "100%", children: [
1434
- /* @__PURE__ */ A(h, { as: "div", direction: "column", children: [
1435
- T.comments.length === 0 ? /* @__PURE__ */ i(h, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ i(y, { color: "secondary", children: m("comments.empty") }) }) : /* @__PURE__ */ i(h, { direction: "column", gap: "x-small", children: T.comments.map((k) => /* @__PURE__ */ i(
1436
- xi,
1441
+ }, V = (T == null ? void 0 : T.pageInfo.hasNextPage) || (T == null ? void 0 : T.pageInfo.hasPreviousPage);
1442
+ return ie || !T && !ae ? /* @__PURE__ */ i(h, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ i(He, { renderTitle: m.commentsPanelTitle(), size: "small" }) }) : ae ? /* @__PURE__ */ i(h, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ i(y, { color: "danger", children: m.commentsLoadError() }) }) : /* @__PURE__ */ _(h, { as: "div", direction: "column", justifyItems: "space-between", height: "100%", children: [
1443
+ /* @__PURE__ */ _(h, { as: "div", direction: "column", children: [
1444
+ T.comments.length === 0 ? /* @__PURE__ */ i(h, { justifyItems: "center", padding: "medium", children: /* @__PURE__ */ i(y, { color: "secondary", children: m.commentsEmpty() }) }) : /* @__PURE__ */ i(h, { direction: "column", gap: "x-small", children: T.comments.map((k) => /* @__PURE__ */ i(
1445
+ Ui,
1437
1446
  {
1438
1447
  comment: k,
1439
1448
  isFullWidth: !q,
1440
- renderHTML: p
1449
+ renderHTML: f
1441
1450
  },
1442
1451
  k._id
1443
1452
  )) }),
1444
- X && /* @__PURE__ */ A(h, { justifyItems: "space-between", padding: "small none", children: [
1453
+ V && /* @__PURE__ */ _(h, { justifyItems: "space-between", padding: "small none", children: [
1445
1454
  /* @__PURE__ */ i(
1446
1455
  z,
1447
1456
  {
1448
- renderIcon: () => /* @__PURE__ */ i(Rn, {}),
1457
+ renderIcon: () => /* @__PURE__ */ i(vn, {}),
1449
1458
  size: "small",
1450
1459
  interaction: T.pageInfo.hasPreviousPage ? "enabled" : "disabled",
1451
1460
  onClick: () => I({ pageParams: T.pageInfo, direction: "prev" }),
1452
- children: m("comments.previousComments")
1461
+ children: m.commentsPreviousComments()
1453
1462
  }
1454
1463
  ),
1455
1464
  /* @__PURE__ */ i(
1456
1465
  z,
1457
1466
  {
1458
- renderIcon: () => /* @__PURE__ */ i(wn, {}),
1467
+ renderIcon: () => /* @__PURE__ */ i(Nn, {}),
1459
1468
  size: "small",
1460
1469
  interaction: T.pageInfo.hasNextPage ? "enabled" : "disabled",
1461
1470
  onClick: () => I({ pageParams: T.pageInfo, direction: "next" }),
1462
- children: m("comments.nextComments")
1471
+ children: m.commentsNextComments()
1463
1472
  }
1464
1473
  )
1465
1474
  ] })
1466
1475
  ] }),
1467
- l && /* @__PURE__ */ A(h, { as: "div", direction: "column", gap: "small", padding: "small none medium", children: [
1476
+ l && /* @__PURE__ */ _(h, { as: "div", direction: "column", gap: "small", padding: "small none medium", children: [
1468
1477
  /* @__PURE__ */ i(
1469
1478
  tn,
1470
1479
  {
1471
1480
  resize: "vertical",
1472
- label: /* @__PURE__ */ i(y, { weight: "bold", size: "medium", children: m("comments.placeholder") }),
1473
- value: f,
1481
+ label: /* @__PURE__ */ i(y, { weight: "bold", size: "medium", children: m.commentsPlaceholder() }),
1482
+ value: p,
1474
1483
  onChange: (k) => g(k.target.value)
1475
1484
  }
1476
1485
  ),
@@ -1479,37 +1488,37 @@ function ki({
1479
1488
  {
1480
1489
  color: "primary",
1481
1490
  onClick: S,
1482
- interaction: f.trim().length > 0 && !re.isPending ? "enabled" : "disabled",
1483
- children: m("comments.post")
1491
+ interaction: p.trim().length > 0 && !re.isPending ? "enabled" : "disabled",
1492
+ children: m.commentsPost()
1484
1493
  }
1485
1494
  )
1486
1495
  ] })
1487
1496
  ] });
1488
1497
  }
1489
- function Pi(t) {
1498
+ function zi(t) {
1490
1499
  return /* @__PURE__ */ i("span", { dangerouslySetInnerHTML: { __html: gt.sanitize(t) } });
1491
1500
  }
1492
- function dr({
1501
+ function gr({
1493
1502
  courseId: t,
1494
1503
  assignmentId: r,
1495
1504
  userId: o,
1496
1505
  feedbackMode: s = !1,
1497
1506
  onError: l,
1498
1507
  renderHTML: c,
1499
- renderPanels: p,
1508
+ renderPanels: f,
1500
1509
  executeQuery: b
1501
1510
  }) {
1502
- const { t: m } = B("assignment-review"), f = c ?? Pi, {
1511
+ const m = B(), p = c ?? zi, {
1503
1512
  data: g,
1504
1513
  isLoading: D,
1505
1514
  isError: I,
1506
1515
  error: E
1507
- } = bi({ courseId: t, assignmentId: r, userId: o, executeQuery: b }), [T, ie] = ge(null), [ae, re] = ge(
1516
+ } = _i({ courseId: t, assignmentId: r, userId: o, executeQuery: b }), [T, ie] = ge(null), [ae, re] = ge(
1508
1517
  s ? "comments" : null
1509
- ), L = je(
1518
+ ), v = je(
1510
1519
  () => (g == null ? void 0 : g.submissionsConnection.nodes[0]) ?? null,
1511
1520
  [g]
1512
- ), q = L != null && L.attempt > 0, S = T ?? L, X = T == null || T.attempt === (L == null ? void 0 : L.attempt), k = q && X, P = ((g == null ? void 0 : g.allowedAttempts) ?? 0) !== 1, le = In((be) => {
1521
+ ), q = v != null && v.attempt > 0, S = T ?? v, V = T == null || T.attempt === (v == null ? void 0 : v.attempt), k = q && V, P = ((g == null ? void 0 : g.allowedAttempts) ?? 0) !== 1, le = Rn((be) => {
1513
1522
  ie(be);
1514
1523
  }, []);
1515
1524
  if (ct(() => {
@@ -1517,24 +1526,24 @@ function dr({
1517
1526
  }, [I, E, l]), ct(() => {
1518
1527
  s && q && re("comments");
1519
1528
  }, [s, q]), D)
1520
- return /* @__PURE__ */ i(h, { justifyItems: "center", padding: "large", children: /* @__PURE__ */ i(He, { renderTitle: m("progress.loading", "Loading") }) });
1529
+ return /* @__PURE__ */ i(h, { justifyItems: "center", padding: "large", children: /* @__PURE__ */ i(He, { renderTitle: m.progressLoading() }) });
1521
1530
  if (I || !g)
1522
- return /* @__PURE__ */ i(h, { justifyItems: "center", padding: "large", children: /* @__PURE__ */ i(y, { color: "danger", children: m("assignment.loadError", "Failed to load assignment") }) });
1523
- const Ge = !!g.dueAt && new Date(g.dueAt) < /* @__PURE__ */ new Date() && !q, Be = L ? /* @__PURE__ */ i(
1524
- ki,
1531
+ return /* @__PURE__ */ i(h, { justifyItems: "center", padding: "large", children: /* @__PURE__ */ i(y, { color: "danger", children: m.assignmentLoadError() }) });
1532
+ const Ge = !!g.dueAt && new Date(g.dueAt) < /* @__PURE__ */ new Date() && !q, Be = v ? /* @__PURE__ */ i(
1533
+ Fi,
1525
1534
  {
1526
- submissionId: L.id,
1535
+ submissionId: v.id,
1527
1536
  courseId: t,
1528
1537
  assignmentId: r,
1529
1538
  attempt: (S == null ? void 0 : S.attempt) ?? 0,
1530
1539
  canPostComment: k,
1531
- renderHTML: f,
1540
+ renderHTML: p,
1532
1541
  executeQuery: b
1533
1542
  }
1534
- ) : null, N = P && L ? /* @__PURE__ */ i(
1535
- Si,
1543
+ ) : null, O = P && v ? /* @__PURE__ */ i(
1544
+ Ii,
1536
1545
  {
1537
- submissionId: L.id,
1546
+ submissionId: v.id,
1538
1547
  selectedAttempt: S == null ? void 0 : S.attempt,
1539
1548
  onAttemptSelect: le,
1540
1549
  pointsPossible: g.pointsPossible,
@@ -1542,15 +1551,15 @@ function dr({
1542
1551
  }
1543
1552
  ) : null, he = {
1544
1553
  commentsPanel: Be,
1545
- attemptsPanel: N,
1554
+ attemptsPanel: O,
1546
1555
  activePanel: ae,
1547
1556
  setActivePanel: re,
1548
- unreadCommentCount: (L == null ? void 0 : L.unreadCommentCount) ?? 0,
1557
+ unreadCommentCount: (v == null ? void 0 : v.unreadCommentCount) ?? 0,
1549
1558
  hasMultipleAttempts: P
1550
1559
  };
1551
- return /* @__PURE__ */ A(h, { direction: "column", gap: "medium", children: [
1560
+ return /* @__PURE__ */ _(h, { direction: "column", gap: "medium", children: [
1552
1561
  /* @__PURE__ */ i(
1553
- Di,
1562
+ wi,
1554
1563
  {
1555
1564
  score: S == null ? void 0 : S.score,
1556
1565
  pointsPossible: g.pointsPossible,
@@ -1561,22 +1570,22 @@ function dr({
1561
1570
  isOverdue: Ge
1562
1571
  }
1563
1572
  ),
1564
- g.description && /* @__PURE__ */ A(Y, { as: "div", children: [
1565
- /* @__PURE__ */ i(dt, { level: "h3", children: m("assignment.instructions", "Instructions") }),
1566
- /* @__PURE__ */ i(Y, { as: "div", margin: "small none large none", children: f(g.description) })
1573
+ g.description && /* @__PURE__ */ _(Y, { as: "div", children: [
1574
+ /* @__PURE__ */ i(dt, { level: "h3", children: m.assignmentInstructions() }),
1575
+ /* @__PURE__ */ i(Y, { as: "div", margin: "small none large none", children: p(g.description) })
1567
1576
  ] }),
1568
1577
  /* @__PURE__ */ i(
1569
- Ei,
1578
+ Di,
1570
1579
  {
1571
1580
  submission: S,
1572
- isLastAttempt: X,
1573
- renderHTML: f
1581
+ isLastAttempt: V,
1582
+ renderHTML: p
1574
1583
  }
1575
1584
  ),
1576
- p ? p(he) : null
1585
+ f ? f(he) : null
1577
1586
  ] });
1578
1587
  }
1579
- function pr({
1588
+ function hr({
1580
1589
  existingFiles: t,
1581
1590
  onSubmit: r,
1582
1591
  onSaveDraft: o,
@@ -1584,13 +1593,13 @@ function pr({
1584
1593
  onSelectFiles: l,
1585
1594
  isSubmitting: c = !1
1586
1595
  }) {
1587
- const { t: p } = B("assignment-review"), [b, m] = ge(t ?? []), f = async () => {
1596
+ const f = B(), [b, m] = ge(t ?? []), p = async () => {
1588
1597
  const E = await l();
1589
1598
  m((T) => [...T, ...E]);
1590
1599
  }, g = (E) => {
1591
1600
  m((T) => T.filter((ie) => ie.id !== E));
1592
1601
  }, D = b.map((E) => E.id), I = b.length > 0 && !c;
1593
- return /* @__PURE__ */ A(h, { direction: "column", gap: "medium", children: [
1602
+ return /* @__PURE__ */ _(h, { direction: "column", gap: "medium", children: [
1594
1603
  b.length > 0 && /* @__PURE__ */ i(h, { direction: "column", gap: "x-small", children: b.map((E) => /* @__PURE__ */ i(
1595
1604
  Y,
1596
1605
  {
@@ -1599,15 +1608,15 @@ function pr({
1599
1608
  borderWidth: "small",
1600
1609
  borderColor: "primary",
1601
1610
  borderRadius: "medium",
1602
- children: /* @__PURE__ */ A(h, { justifyItems: "space-between", alignItems: "center", children: [
1611
+ children: /* @__PURE__ */ _(h, { justifyItems: "space-between", alignItems: "center", children: [
1603
1612
  /* @__PURE__ */ i(y, { children: E.name }),
1604
1613
  /* @__PURE__ */ i(
1605
1614
  z,
1606
1615
  {
1607
1616
  size: "small",
1608
- renderIcon: () => /* @__PURE__ */ i(vn, {}),
1617
+ renderIcon: () => /* @__PURE__ */ i(On, {}),
1609
1618
  onClick: () => g(E.id),
1610
- children: /* @__PURE__ */ A("span", { className: "screenreader-only", children: [
1619
+ children: /* @__PURE__ */ _("span", { className: "screenreader-only", children: [
1611
1620
  "Remove ",
1612
1621
  E.name
1613
1622
  ] })
@@ -1617,15 +1626,15 @@ function pr({
1617
1626
  },
1618
1627
  E.id
1619
1628
  )) }),
1620
- /* @__PURE__ */ i(z, { onClick: f, children: p("submissionForm.addFiles", "Add Files") }),
1621
- /* @__PURE__ */ A(h, { gap: "small", children: [
1629
+ /* @__PURE__ */ i(z, { onClick: p, children: f.submissionFormAddFiles() }),
1630
+ /* @__PURE__ */ _(h, { gap: "small", children: [
1622
1631
  /* @__PURE__ */ i(
1623
1632
  z,
1624
1633
  {
1625
1634
  color: "primary",
1626
1635
  onClick: () => r(D),
1627
1636
  interaction: I ? "enabled" : "disabled",
1628
- children: p("submissionForm.submit")
1637
+ children: f.submissionFormSubmit()
1629
1638
  }
1630
1639
  ),
1631
1640
  o && /* @__PURE__ */ i(
@@ -1633,32 +1642,32 @@ function pr({
1633
1642
  {
1634
1643
  onClick: () => o(D),
1635
1644
  interaction: b.length > 0 ? "enabled" : "disabled",
1636
- children: p("submissionForm.saveDraft")
1645
+ children: f.submissionFormSaveDraft()
1637
1646
  }
1638
1647
  ),
1639
- s && t && t.length > 0 && /* @__PURE__ */ i(z, { color: "primary-inverse", onClick: s, children: p("submissionForm.discardDraft") })
1648
+ s && t && t.length > 0 && /* @__PURE__ */ i(z, { color: "primary-inverse", onClick: s, children: f.submissionFormDiscardDraft() })
1640
1649
  ] })
1641
1650
  ] });
1642
1651
  }
1643
- function fr({
1652
+ function br({
1644
1653
  prevItem: t,
1645
1654
  nextItem: r,
1646
1655
  onNavigatePrev: o,
1647
1656
  onNavigateNext: s,
1648
1657
  labels: l
1649
1658
  }) {
1650
- const { t: c } = B("assignment-review");
1659
+ const c = B();
1651
1660
  if (!t && !r)
1652
1661
  return null;
1653
- const p = (l == null ? void 0 : l.previous) ?? c("navigation.previous"), b = (l == null ? void 0 : l.next) ?? c("navigation.next");
1654
- return /* @__PURE__ */ A(h, { justifyItems: "space-between", padding: "small none", children: [
1662
+ const f = (l == null ? void 0 : l.previous) ?? c.navigationPrevious(), b = (l == null ? void 0 : l.next) ?? c.navigationNext();
1663
+ return /* @__PURE__ */ _(h, { justifyItems: "space-between", padding: "small none", children: [
1655
1664
  t ? /* @__PURE__ */ i(
1656
1665
  z,
1657
1666
  {
1658
1667
  renderIcon: () => /* @__PURE__ */ i(Zt, {}),
1659
1668
  onClick: o,
1660
- "aria-label": `${p}: ${t.title}`,
1661
- children: p
1669
+ "aria-label": `${f}: ${t.title}`,
1670
+ children: f
1662
1671
  }
1663
1672
  ) : /* @__PURE__ */ i("div", {}),
1664
1673
  r ? /* @__PURE__ */ i(
@@ -1672,31 +1681,31 @@ function fr({
1672
1681
  ) : /* @__PURE__ */ i("div", {})
1673
1682
  ] });
1674
1683
  }
1675
- function Fi(t) {
1684
+ function ji(t) {
1676
1685
  switch (t) {
1677
1686
  case "Assignment":
1678
- return /* @__PURE__ */ i(xn, {});
1687
+ return /* @__PURE__ */ i(Un, {});
1679
1688
  case "Quiz":
1680
- return /* @__PURE__ */ i(Mn, {});
1689
+ return /* @__PURE__ */ i(Pn, {});
1681
1690
  case "Discussion":
1682
- return /* @__PURE__ */ i(Nn, {});
1691
+ return /* @__PURE__ */ i(kn, {});
1683
1692
  case "Page":
1684
1693
  return /* @__PURE__ */ i(jt, {});
1685
1694
  case "ExternalUrl":
1686
1695
  case "ExternalTool":
1687
- return /* @__PURE__ */ i(On, {});
1696
+ return /* @__PURE__ */ i(xn, {});
1688
1697
  default:
1689
1698
  return /* @__PURE__ */ i(jt, {});
1690
1699
  }
1691
1700
  }
1692
- function Ui({
1701
+ function Hi({
1693
1702
  item: t,
1694
1703
  isSelected: r,
1695
1704
  isLoadingItem: o,
1696
1705
  onClick: s
1697
1706
  }) {
1698
- var m, f, g, D, I;
1699
- const { t: l } = B("assignment-review"), c = ((m = t.content_details) == null ? void 0 : m.locked_for_user) ?? !1, p = (f = t.content_details) == null ? void 0 : f.lock_explanation, b = /* @__PURE__ */ i(
1707
+ var m, p, g, D, I;
1708
+ const l = B(), c = ((m = t.content_details) == null ? void 0 : m.locked_for_user) ?? !1, f = (p = t.content_details) == null ? void 0 : p.lock_explanation, b = /* @__PURE__ */ i(
1700
1709
  Y,
1701
1710
  {
1702
1711
  as: "div",
@@ -1710,59 +1719,49 @@ function Ui({
1710
1719
  onKeyDown: c ? void 0 : (E) => {
1711
1720
  (E.key === "Enter" || E.key === " ") && (E.preventDefault(), s());
1712
1721
  },
1713
- children: /* @__PURE__ */ A(h, { gap: "small", alignItems: "center", children: [
1714
- /* @__PURE__ */ i(h.Item, { children: c ? /* @__PURE__ */ i(Jt, {}) : Fi(t.type) }),
1715
- /* @__PURE__ */ i(h.Item, { shouldGrow: !0, shouldShrink: !0, children: /* @__PURE__ */ A(h, { direction: "column", gap: "xx-small", children: [
1722
+ children: /* @__PURE__ */ _(h, { gap: "small", alignItems: "center", children: [
1723
+ /* @__PURE__ */ i(h.Item, { children: c ? /* @__PURE__ */ i(Jt, {}) : ji(t.type) }),
1724
+ /* @__PURE__ */ i(h.Item, { shouldGrow: !0, shouldShrink: !0, children: /* @__PURE__ */ _(h, { direction: "column", gap: "xx-small", children: [
1716
1725
  /* @__PURE__ */ i(y, { weight: r ? "bold" : "normal", size: "small", children: t.title }),
1717
- ((g = t.content_details) == null ? void 0 : g.due_at) && /* @__PURE__ */ i(y, { size: "x-small", color: "secondary", children: l("progress.dueDate", "Due {{date}}", {
1726
+ ((g = t.content_details) == null ? void 0 : g.due_at) && /* @__PURE__ */ i(y, { size: "x-small", color: "secondary", children: l.progressDueDate({
1718
1727
  date: new Date(t.content_details.due_at).toLocaleDateString()
1719
1728
  }) }),
1720
- ((D = t.content_details) == null ? void 0 : D.points_possible) != null && /* @__PURE__ */ i(y, { size: "x-small", color: "secondary", children: l("progress.points", "{{points}} pts", {
1721
- points: t.content_details.points_possible
1722
- }) })
1729
+ ((D = t.content_details) == null ? void 0 : D.points_possible) != null && /* @__PURE__ */ i(y, { size: "x-small", color: "secondary", children: l.progressPoints({ points: t.content_details.points_possible }) })
1723
1730
  ] }) }),
1724
- o && /* @__PURE__ */ i(He, { size: "x-small", renderTitle: l("progress.loading", "Loading") }),
1731
+ o && /* @__PURE__ */ i(He, { size: "x-small", renderTitle: l.progressLoading() }),
1725
1732
  ((I = t.completion_requirement) == null ? void 0 : I.completed) && /* @__PURE__ */ i(y, { color: "success", size: "small", children: "✓" })
1726
1733
  ] })
1727
1734
  }
1728
1735
  );
1729
- return c && p ? /* @__PURE__ */ i(Fn, { renderTip: p, placement: "end", children: b }) : b;
1736
+ return c && f ? /* @__PURE__ */ i(jn, { renderTip: f, placement: "end", children: b }) : b;
1730
1737
  }
1731
- function gr({
1738
+ function Tr({
1732
1739
  module: t,
1733
1740
  currentItemId: r,
1734
1741
  onItemClick: o,
1735
1742
  onClose: s,
1736
1743
  onNavigateModule: l,
1737
1744
  hasPrevModule: c = !1,
1738
- hasNextModule: p = !1,
1745
+ hasNextModule: f = !1,
1739
1746
  isLoading: b = !1,
1740
1747
  title: m
1741
1748
  }) {
1742
1749
  var D;
1743
- const { t: f } = B("assignment-review"), g = m ?? f("navigation.myProgress");
1744
- return /* @__PURE__ */ A(h, { direction: "column", height: "100%", children: [
1745
- /* @__PURE__ */ A(h, { justifyItems: "space-between", alignItems: "center", padding: "small", children: [
1750
+ const p = B(), g = m ?? p.navigationMyProgress();
1751
+ return /* @__PURE__ */ _(h, { direction: "column", height: "100%", children: [
1752
+ /* @__PURE__ */ _(h, { justifyItems: "space-between", alignItems: "center", padding: "small", children: [
1746
1753
  /* @__PURE__ */ i(dt, { level: "h3", children: g }),
1747
- /* @__PURE__ */ i(
1748
- Pn,
1749
- {
1750
- screenReaderLabel: f("navigation.closePanel", "Close"),
1751
- onClick: s,
1752
- size: "small",
1753
- children: /* @__PURE__ */ i(Ln, {})
1754
- }
1755
- )
1754
+ /* @__PURE__ */ i(zn, { screenReaderLabel: p.navigationClosePanel(), onClick: s, size: "small", children: /* @__PURE__ */ i(Mn, {}) })
1756
1755
  ] }),
1757
- /* @__PURE__ */ A(Y, { as: "div", padding: "none small", overflowY: "auto", children: [
1758
- t.state === "locked" && /* @__PURE__ */ i(h, { padding: "none none small", children: /* @__PURE__ */ A(pt, { color: "warning", children: [
1756
+ /* @__PURE__ */ _(Y, { as: "div", padding: "none small", overflowY: "auto", children: [
1757
+ t.state === "locked" && /* @__PURE__ */ i(h, { padding: "none none small", children: /* @__PURE__ */ _(ft, { color: "warning", children: [
1759
1758
  /* @__PURE__ */ i(Jt, {}),
1760
1759
  " ",
1761
- f("progress.locked", "Locked")
1760
+ p.progressLocked()
1762
1761
  ] }) }),
1763
1762
  /* @__PURE__ */ i(y, { weight: "bold", size: "medium", children: t.name }),
1764
1763
  /* @__PURE__ */ i(h, { direction: "column", gap: "xx-small", padding: "small none", children: (D = t.items) == null ? void 0 : D.map((I) => /* @__PURE__ */ i(
1765
- Ui,
1764
+ Hi,
1766
1765
  {
1767
1766
  item: I,
1768
1767
  isSelected: I.id === r,
@@ -1772,7 +1771,7 @@ function gr({
1772
1771
  I.id
1773
1772
  )) })
1774
1773
  ] }),
1775
- l && /* @__PURE__ */ A(h, { justifyItems: "space-between", padding: "small", children: [
1774
+ l && /* @__PURE__ */ _(h, { justifyItems: "space-between", padding: "small", children: [
1776
1775
  /* @__PURE__ */ i(
1777
1776
  z,
1778
1777
  {
@@ -1780,8 +1779,8 @@ function gr({
1780
1779
  size: "small",
1781
1780
  interaction: c ? "enabled" : "disabled",
1782
1781
  onClick: () => l("prev"),
1783
- "aria-label": f("navigation.previousModule", "Previous module"),
1784
- children: f("navigation.previous")
1782
+ "aria-label": p.navigationPreviousModule(),
1783
+ children: p.navigationPrevious()
1785
1784
  }
1786
1785
  ),
1787
1786
  /* @__PURE__ */ i(
@@ -1789,66 +1788,66 @@ function gr({
1789
1788
  {
1790
1789
  renderIcon: () => /* @__PURE__ */ i(Qt, {}),
1791
1790
  size: "small",
1792
- interaction: p ? "enabled" : "disabled",
1791
+ interaction: f ? "enabled" : "disabled",
1793
1792
  onClick: () => l("next"),
1794
- "aria-label": f("navigation.nextModule", "Next module"),
1795
- children: f("navigation.next")
1793
+ "aria-label": p.navigationNextModule(),
1794
+ children: p.navigationNext()
1796
1795
  }
1797
1796
  )
1798
1797
  ] })
1799
1798
  ] });
1800
1799
  }
1801
- function hr({
1800
+ function Ar({
1802
1801
  existingDraft: t,
1803
1802
  onSubmit: r,
1804
1803
  onSaveDraft: o,
1805
1804
  onDiscardDraft: s,
1806
1805
  isSubmitting: l = !1
1807
1806
  }) {
1808
- const { t: c } = B("assignment-review"), [p, b] = ge(t ?? ""), m = p.trim().length > 0 && !l;
1809
- return /* @__PURE__ */ A(h, { direction: "column", gap: "medium", children: [
1807
+ const c = B(), [f, b] = ge(t ?? ""), m = f.trim().length > 0 && !l;
1808
+ return /* @__PURE__ */ _(h, { direction: "column", gap: "medium", children: [
1810
1809
  /* @__PURE__ */ i(
1811
1810
  tn,
1812
1811
  {
1813
- label: c("submission.textHeading"),
1814
- value: p,
1815
- onChange: (f) => b(f.target.value),
1812
+ label: c.submissionTextHeading(),
1813
+ value: f,
1814
+ onChange: (p) => b(p.target.value),
1816
1815
  resize: "vertical",
1817
1816
  height: "200px"
1818
1817
  }
1819
1818
  ),
1820
- /* @__PURE__ */ A(h, { gap: "small", children: [
1819
+ /* @__PURE__ */ _(h, { gap: "small", children: [
1821
1820
  /* @__PURE__ */ i(
1822
1821
  z,
1823
1822
  {
1824
1823
  color: "primary",
1825
- onClick: () => r(p),
1824
+ onClick: () => r(f),
1826
1825
  interaction: m ? "enabled" : "disabled",
1827
- children: c("submissionForm.submit")
1826
+ children: c.submissionFormSubmit()
1828
1827
  }
1829
1828
  ),
1830
1829
  o && /* @__PURE__ */ i(
1831
1830
  z,
1832
1831
  {
1833
- onClick: () => o(p),
1834
- interaction: p.trim().length > 0 ? "enabled" : "disabled",
1835
- children: c("submissionForm.saveDraft")
1832
+ onClick: () => o(f),
1833
+ interaction: f.trim().length > 0 ? "enabled" : "disabled",
1834
+ children: c.submissionFormSaveDraft()
1836
1835
  }
1837
1836
  ),
1838
- s && t && /* @__PURE__ */ i(z, { color: "primary-inverse", onClick: s, children: c("submissionForm.discardDraft") })
1837
+ s && t && /* @__PURE__ */ i(z, { color: "primary-inverse", onClick: s, children: c.submissionFormDiscardDraft() })
1839
1838
  ] })
1840
1839
  ] });
1841
1840
  }
1842
- function br({
1841
+ function _r({
1843
1842
  unreadCount: t
1844
1843
  }) {
1845
- const { t: r } = B("assignment-review");
1844
+ const r = B();
1846
1845
  if (t === 0)
1847
1846
  return null;
1848
- const o = t === 1 ? r("comments.unreadSingle") : r("comments.unread", { count: t });
1849
- return /* @__PURE__ */ i(nn, { count: t, standalone: !0, children: /* @__PURE__ */ i(ft, { children: o }) });
1847
+ const o = t === 1 ? r.commentsUnreadSingle() : r.commentsUnread({ count: t });
1848
+ return /* @__PURE__ */ i(nn, { count: t, standalone: !0, children: /* @__PURE__ */ i(pt, { children: o }) });
1850
1849
  }
1851
- function Tr({
1850
+ function Sr({
1852
1851
  courseId: t,
1853
1852
  moduleItemId: r,
1854
1853
  fetchSequence: o,
@@ -1861,40 +1860,42 @@ function Tr({
1861
1860
  });
1862
1861
  }
1863
1862
  export {
1864
- ui as AssignmentResponseSchema,
1865
- dr as AssignmentReview,
1866
- Ai as AttemptCard,
1867
- Ei as AttemptView,
1868
- Si as AttemptsHistory,
1869
- cr as CREATE_SUBMISSION,
1870
- Ri as CREATE_SUBMISSION_COMMENT,
1871
- mr as CREATE_SUBMISSION_DRAFT,
1872
- xi as CommentCard,
1873
- gi as CreateSubmissionCommentResponseSchema,
1874
- ar as CreateSubmissionDraftResponseSchema,
1875
- sr as CreateSubmissionResponseSchema,
1876
- ur as DELETE_SUBMISSION_DRAFT,
1877
- lr as DeleteSubmissionDraftResponseSchema,
1878
- mn as DownloadButtons,
1879
- pr as FileUploadSubmissionForm,
1880
- oi as GET_ASSIGNMENT,
1881
- ai as GET_SUBMISSIONS,
1882
- si as GET_SUBMISSION_COMMENTS,
1883
- Di as LearningContentHeader,
1884
- wi as MARK_SUBMISSION_COMMENTS_READ,
1885
- hi as MarkSubmissionCommentsReadResponseSchema,
1886
- fr as ModuleNavigation,
1887
- gr as MyProgressPanel,
1888
- ki as SubmissionComments,
1889
- or as SubmissionCommentsDataSchema,
1890
- di as SubmissionCommentsQueryResponseSchema,
1891
- fi as SubmissionsQueryResponseSchema,
1892
- hr as TextEntrySubmissionForm,
1893
- br as UnreadCommentsBadge,
1894
- vi as useCreateSubmissionComment,
1895
- bi as useGetAssignment,
1896
- Li as useGetSubmissionComments,
1897
- Ti as useGetSubmissions,
1898
- Oi as useMarkSubmissionCommentsRead,
1899
- Tr as useModuleItemSequence
1863
+ pi as AssignmentResponseSchema,
1864
+ gr as AssignmentReview,
1865
+ Ei as AttemptCard,
1866
+ Di as AttemptView,
1867
+ Ii as AttemptsHistory,
1868
+ dr as CREATE_SUBMISSION,
1869
+ vi as CREATE_SUBMISSION_COMMENT,
1870
+ fr as CREATE_SUBMISSION_DRAFT,
1871
+ Ui as CommentCard,
1872
+ Ti as CreateSubmissionCommentResponseSchema,
1873
+ mr as CreateSubmissionDraftResponseSchema,
1874
+ cr as CreateSubmissionResponseSchema,
1875
+ pr as DELETE_SUBMISSION_DRAFT,
1876
+ ur as DeleteSubmissionDraftResponseSchema,
1877
+ un as DownloadButtons,
1878
+ hr as FileUploadSubmissionForm,
1879
+ li as GET_ASSIGNMENT,
1880
+ mi as GET_SUBMISSIONS,
1881
+ ci as GET_SUBMISSION_COMMENTS,
1882
+ wi as LearningContentHeader,
1883
+ Ni as MARK_SUBMISSION_COMMENTS_READ,
1884
+ Ai as MarkSubmissionCommentsReadResponseSchema,
1885
+ br as ModuleNavigation,
1886
+ Tr as MyProgressPanel,
1887
+ Fi as SubmissionComments,
1888
+ lr as SubmissionCommentsDataSchema,
1889
+ gi as SubmissionCommentsQueryResponseSchema,
1890
+ bi as SubmissionsQueryResponseSchema,
1891
+ Ar as TextEntrySubmissionForm,
1892
+ ar as TranslationsProvider,
1893
+ _r as UnreadCommentsBadge,
1894
+ Oi as useCreateSubmissionComment,
1895
+ _i as useGetAssignment,
1896
+ Mi as useGetSubmissionComments,
1897
+ Si as useGetSubmissions,
1898
+ xi as useMarkSubmissionCommentsRead,
1899
+ Sr as useModuleItemSequence,
1900
+ B as useTranslations
1900
1901
  };