@local-civics/mgmt-ui 0.1.191 → 0.1.193

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
@@ -34,35 +34,35 @@ function _interopNamespaceDefault(e) {
34
34
  var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
35
35
  var papa__namespace = /*#__PURE__*/_interopNamespaceDefault(papa);
36
36
 
37
- var __defProp$c = Object.defineProperty;
38
- var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
39
- var __hasOwnProp$c = Object.prototype.hasOwnProperty;
40
- var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
41
- var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
42
- var __spreadValues$c = (a, b) => {
37
+ var __defProp$d = Object.defineProperty;
38
+ var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
39
+ var __hasOwnProp$d = Object.prototype.hasOwnProperty;
40
+ var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
41
+ var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
42
+ var __spreadValues$d = (a, b) => {
43
43
  for (var prop in b || (b = {}))
44
- if (__hasOwnProp$c.call(b, prop))
45
- __defNormalProp$c(a, prop, b[prop]);
46
- if (__getOwnPropSymbols$c)
47
- for (var prop of __getOwnPropSymbols$c(b)) {
48
- if (__propIsEnum$c.call(b, prop))
49
- __defNormalProp$c(a, prop, b[prop]);
44
+ if (__hasOwnProp$d.call(b, prop))
45
+ __defNormalProp$d(a, prop, b[prop]);
46
+ if (__getOwnPropSymbols$d)
47
+ for (var prop of __getOwnPropSymbols$d(b)) {
48
+ if (__propIsEnum$d.call(b, prop))
49
+ __defNormalProp$d(a, prop, b[prop]);
50
50
  }
51
51
  return a;
52
52
  };
53
53
  var __objRest$2 = (source, exclude) => {
54
54
  var target = {};
55
55
  for (var prop in source)
56
- if (__hasOwnProp$c.call(source, prop) && exclude.indexOf(prop) < 0)
56
+ if (__hasOwnProp$d.call(source, prop) && exclude.indexOf(prop) < 0)
57
57
  target[prop] = source[prop];
58
- if (source != null && __getOwnPropSymbols$c)
59
- for (var prop of __getOwnPropSymbols$c(source)) {
60
- if (exclude.indexOf(prop) < 0 && __propIsEnum$c.call(source, prop))
58
+ if (source != null && __getOwnPropSymbols$d)
59
+ for (var prop of __getOwnPropSymbols$d(source)) {
60
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$d.call(source, prop))
61
61
  target[prop] = source[prop];
62
62
  }
63
63
  return target;
64
64
  };
65
- const useStyles$w = core.createStyles((theme) => ({
65
+ const useStyles$y = core.createStyles((theme) => ({
66
66
  user: {
67
67
  display: "block",
68
68
  width: "100%",
@@ -73,8 +73,8 @@ const useStyles$w = core.createStyles((theme) => ({
73
73
  }));
74
74
  function UserButton(_a) {
75
75
  var _b = _a, { image, name, email, icon } = _b, others = __objRest$2(_b, ["image", "name", "email", "icon"]);
76
- const { classes } = useStyles$w();
77
- return /* @__PURE__ */ React__namespace.createElement(core.Group, __spreadValues$c({ className: classes.user }, others), /* @__PURE__ */ React__namespace.createElement(core.Avatar, { src: image, radius: "xl" }), /* @__PURE__ */ React__namespace.createElement("div", { style: { flex: 1 } }, /* @__PURE__ */ React__namespace.createElement(core.Text, { size: "sm", weight: 500 }, name), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", size: "xs" }, email)));
76
+ const { classes } = useStyles$y();
77
+ return /* @__PURE__ */ React__namespace.createElement(core.Group, __spreadValues$d({ className: classes.user }, others), /* @__PURE__ */ React__namespace.createElement(core.Avatar, { src: image, radius: "xl" }), /* @__PURE__ */ React__namespace.createElement("div", { style: { flex: 1 } }, /* @__PURE__ */ React__namespace.createElement(core.Text, { size: "sm", weight: 500 }, name), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", size: "xs" }, email)));
78
78
  }
79
79
 
80
80
  const compact = (num) => {
@@ -84,7 +84,7 @@ const compact = (num) => {
84
84
  }).format(num || 0);
85
85
  };
86
86
 
87
- const useStyles$v = core.createStyles((theme, _params, getRef) => {
87
+ const useStyles$x = core.createStyles((theme, _params, getRef) => {
88
88
  const icon = getRef("icon");
89
89
  return {
90
90
  control: {
@@ -137,7 +137,7 @@ const useStyles$v = core.createStyles((theme, _params, getRef) => {
137
137
  };
138
138
  });
139
139
  function LinksGroup({ icon: Icon, href, label, initiallyOpened, links, active, notifications }) {
140
- const { classes, theme, cx } = useStyles$v();
140
+ const { classes, theme, cx } = useStyles$x();
141
141
  const hasLinks = Array.isArray(links) && links.length > 0;
142
142
  const hasActiveLinks = Array.isArray(links) && links.map((l) => !!active && active === `${label}/${l.label}`).reduce((a, b) => a || b, false);
143
143
  const [opened, setOpened] = React.useState(initiallyOpened || hasActiveLinks || false);
@@ -182,26 +182,26 @@ function LinksGroup({ icon: Icon, href, label, initiallyOpened, links, active, n
182
182
  ), hasLinks ? /* @__PURE__ */ React__namespace.createElement(core.Collapse, { in: opened }, items) : null);
183
183
  }
184
184
 
185
- var __defProp$b = Object.defineProperty;
186
- var __defProps$8 = Object.defineProperties;
187
- var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
188
- var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
189
- var __hasOwnProp$b = Object.prototype.hasOwnProperty;
190
- var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
191
- var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
192
- var __spreadValues$b = (a, b) => {
185
+ var __defProp$c = Object.defineProperty;
186
+ var __defProps$9 = Object.defineProperties;
187
+ var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
188
+ var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
189
+ var __hasOwnProp$c = Object.prototype.hasOwnProperty;
190
+ var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
191
+ var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
192
+ var __spreadValues$c = (a, b) => {
193
193
  for (var prop in b || (b = {}))
194
- if (__hasOwnProp$b.call(b, prop))
195
- __defNormalProp$b(a, prop, b[prop]);
196
- if (__getOwnPropSymbols$b)
197
- for (var prop of __getOwnPropSymbols$b(b)) {
198
- if (__propIsEnum$b.call(b, prop))
199
- __defNormalProp$b(a, prop, b[prop]);
194
+ if (__hasOwnProp$c.call(b, prop))
195
+ __defNormalProp$c(a, prop, b[prop]);
196
+ if (__getOwnPropSymbols$c)
197
+ for (var prop of __getOwnPropSymbols$c(b)) {
198
+ if (__propIsEnum$c.call(b, prop))
199
+ __defNormalProp$c(a, prop, b[prop]);
200
200
  }
201
201
  return a;
202
202
  };
203
- var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
204
- const useStyles$u = core.createStyles((theme, _params, getRef) => {
203
+ var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
204
+ const useStyles$w = core.createStyles((theme, _params, getRef) => {
205
205
  const icon = getRef("icon");
206
206
  return {
207
207
  navbar: {
@@ -232,7 +232,7 @@ const useStyles$u = core.createStyles((theme, _params, getRef) => {
232
232
  color: theme.colorScheme === "dark" ? theme.white : theme.black,
233
233
  borderBottom: `1px solid ${theme.colorScheme === "dark" ? theme.colors.dark[4] : theme.colors.gray[3]}`
234
234
  },
235
- link: __spreadProps$8(__spreadValues$b({}, theme.fn.focusStyles()), {
235
+ link: __spreadProps$9(__spreadValues$c({}, theme.fn.focusStyles()), {
236
236
  display: "flex",
237
237
  alignItems: "center",
238
238
  textDecoration: "none",
@@ -302,7 +302,7 @@ const TRIAL_PAGES = [
302
302
  "Badges"
303
303
  ];
304
304
  function Navbar(props) {
305
- const { classes, cx } = useStyles$u();
305
+ const { classes, cx } = useStyles$w();
306
306
  const [burgerOpen, setBurgerOpen] = React__namespace.useState(false);
307
307
  const toggle = () => setBurgerOpen(!burgerOpen);
308
308
  const links = data.map((item) => {
@@ -315,12 +315,12 @@ function Navbar(props) {
315
315
  }
316
316
  return /* @__PURE__ */ React__namespace.createElement(
317
317
  LinksGroup,
318
- __spreadProps$8(__spreadValues$b(__spreadValues$b({
318
+ __spreadProps$9(__spreadValues$c(__spreadValues$c({
319
319
  key: item.label,
320
320
  active: props.active
321
321
  }, item), context), {
322
322
  links: (item.links || []).map((link) => {
323
- return __spreadValues$b(__spreadValues$b({}, link), props.links[`${item.label}/${link.label}`] || { notifications: 0, href: "" });
323
+ return __spreadValues$c(__spreadValues$c({}, link), props.links[`${item.label}/${link.label}`] || { notifications: 0, href: "" });
324
324
  })
325
325
  })
326
326
  );
@@ -345,7 +345,7 @@ function Navbar(props) {
345
345
  } }, /* @__PURE__ */ React__namespace.createElement(icons.IconLogout, { className: classes.linkIcon, stroke: 1.5 }), /* @__PURE__ */ React__namespace.createElement("span", null, "Logout"))))));
346
346
  }
347
347
 
348
- const useStyles$t = core.createStyles((theme) => ({
348
+ const useStyles$v = core.createStyles((theme) => ({
349
349
  inner: {
350
350
  paddingTop: theme.spacing.xl,
351
351
  paddingBottom: theme.spacing.xl * 4
@@ -381,7 +381,7 @@ const useStyles$t = core.createStyles((theme) => ({
381
381
  }
382
382
  }));
383
383
  const GettingStarted = (props) => {
384
- const { classes } = useStyles$t();
384
+ const { classes } = useStyles$v();
385
385
  return /* @__PURE__ */ React__namespace.createElement(
386
386
  core.Modal,
387
387
  {
@@ -395,7 +395,7 @@ const GettingStarted = (props) => {
395
395
  );
396
396
  };
397
397
 
398
- const useStyles$s = core.createStyles((theme) => ({
398
+ const useStyles$u = core.createStyles((theme) => ({
399
399
  title: {
400
400
  fontSize: 34,
401
401
  fontWeight: 900,
@@ -436,7 +436,7 @@ const useStyles$s = core.createStyles((theme) => ({
436
436
  }
437
437
  }));
438
438
  const SwitchAccount = (props) => {
439
- const { classes, theme } = useStyles$s();
439
+ const { classes, theme } = useStyles$u();
440
440
  const options = props.accounts.map((a) => {
441
441
  return /* @__PURE__ */ React__namespace.createElement(core.UnstyledButton, { onClick: () => props.onClick && props.onClick(a.accountId), key: a.accountId, p: theme.spacing.md }, /* @__PURE__ */ React__namespace.createElement(core.Card, { withBorder: true, shadow: "md", radius: "md", className: classes.card, p: "xl" }, a.isAdmin && /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(icons.IconBatteryEco, { size: 50, stroke: 2, color: theme.fn.primaryColor() })), a.isGroupAdmin && !a.isAdmin && /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(icons.IconBooks, { size: 50, stroke: 2, color: theme.fn.primaryColor() })), !a.isAdmin && !a.isGroupAdmin && /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(icons.IconBackpack, { size: 50, stroke: 2, color: theme.fn.primaryColor() })), /* @__PURE__ */ React__namespace.createElement(core.Text, { size: "lg", weight: 500, className: classes.cardTitle, mt: "md" }, a.name), /* @__PURE__ */ React__namespace.createElement(core.Text, { size: "sm", color: "dimmed", mt: "sm" }, a.isAdmin ? "Admin" : a.isGroupAdmin ? "Educator" : "Student")));
442
442
  });
@@ -453,7 +453,7 @@ const SwitchAccount = (props) => {
453
453
  );
454
454
  };
455
455
 
456
- const useStyles$r = core.createStyles((theme) => ({
456
+ const useStyles$t = core.createStyles((theme) => ({
457
457
  root: {
458
458
  display: "flex",
459
459
  backgroundImage: `linear-gradient(-60deg, ${theme.colors[theme.primaryColor][4]} 0%, ${theme.colors[theme.primaryColor][7]} 100%)`,
@@ -497,7 +497,7 @@ const useStyles$r = core.createStyles((theme) => ({
497
497
  }
498
498
  }));
499
499
  const StatsGroup = ({ data, footer }) => {
500
- const { classes } = useStyles$r();
500
+ const { classes } = useStyles$t();
501
501
  const stats = data.map((stat) => {
502
502
  const value = (() => {
503
503
  if (stat.unit === "%") {
@@ -517,7 +517,7 @@ const Tabs = (props) => {
517
517
  return /* @__PURE__ */ React__namespace.createElement(core.Tabs, { value: props.value, onTabChange: props.onChange }, /* @__PURE__ */ React__namespace.createElement(core.Tabs.List, null, tabs));
518
518
  };
519
519
 
520
- const useStyles$q = core.createStyles((theme) => ({
520
+ const useStyles$s = core.createStyles((theme) => ({
521
521
  button: {
522
522
  borderTopRightRadius: 0,
523
523
  borderBottomRightRadius: 0,
@@ -531,8 +531,8 @@ const useStyles$q = core.createStyles((theme) => ({
531
531
  borderLeft: `1px solid ${theme.colorScheme === "dark" ? theme.colors.dark[7] : theme.white}`
532
532
  }
533
533
  }));
534
- const SplitButton$4 = (props) => {
535
- const { classes, theme } = useStyles$q();
534
+ const SplitButton$5 = (props) => {
535
+ const { classes, theme } = useStyles$s();
536
536
  theme.colors[theme.primaryColor][theme.colorScheme === "dark" ? 5 : 6];
537
537
  return /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "sm" }, /* @__PURE__ */ React__namespace.createElement(
538
538
  core.Button,
@@ -560,7 +560,7 @@ const SplitButton$4 = (props) => {
560
560
  ));
561
561
  };
562
562
 
563
- const useStyles$p = core.createStyles((theme) => ({
563
+ const useStyles$r = core.createStyles((theme) => ({
564
564
  wrapper: {
565
565
  display: "flex",
566
566
  alignItems: "center",
@@ -611,13 +611,13 @@ const useStyles$p = core.createStyles((theme) => ({
611
611
  }
612
612
  }));
613
613
  const PlaceholderBanner = (props) => {
614
- const { classes } = useStyles$p();
614
+ const { classes } = useStyles$r();
615
615
  const title = props.title || "Nothing to display";
616
616
  const description = props.description || "We don't have anything to show you here just yet. Add data, check back later, or adjust your search.";
617
617
  return /* @__PURE__ */ React__namespace.createElement("div", { className: classes.wrapper }, /* @__PURE__ */ React__namespace.createElement("div", { className: classes.body }, /* @__PURE__ */ React__namespace.createElement(core.Title, { className: classes.title }, props.loading ? "Loading..." : title), /* @__PURE__ */ React__namespace.createElement(core.Text, { size: "sm", color: "dimmed" }, props.loading ? "Hold on, we're loading your data." : description)), /* @__PURE__ */ React__namespace.createElement(core.Image, { src: `https://cdn.localcivics.io/illustrations/${props.icon}.svg`, className: classes.image }));
618
618
  };
619
619
 
620
- function Stack$3(props) {
620
+ function Stack$4(props) {
621
621
  if (props.items.length === 0) {
622
622
  return null;
623
623
  }
@@ -665,28 +665,28 @@ function useSortableData(items, config = { key: "", direction: null }) {
665
665
  return { items: sortedItems, requestSort, sortConfig };
666
666
  }
667
667
 
668
- var __defProp$a = Object.defineProperty;
669
- var __defProps$7 = Object.defineProperties;
670
- var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
671
- var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
672
- var __hasOwnProp$a = Object.prototype.hasOwnProperty;
673
- var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
674
- var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
675
- var __spreadValues$a = (a, b) => {
668
+ var __defProp$b = Object.defineProperty;
669
+ var __defProps$8 = Object.defineProperties;
670
+ var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
671
+ var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
672
+ var __hasOwnProp$b = Object.prototype.hasOwnProperty;
673
+ var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
674
+ var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
675
+ var __spreadValues$b = (a, b) => {
676
676
  for (var prop in b || (b = {}))
677
- if (__hasOwnProp$a.call(b, prop))
678
- __defNormalProp$a(a, prop, b[prop]);
679
- if (__getOwnPropSymbols$a)
680
- for (var prop of __getOwnPropSymbols$a(b)) {
681
- if (__propIsEnum$a.call(b, prop))
682
- __defNormalProp$a(a, prop, b[prop]);
677
+ if (__hasOwnProp$b.call(b, prop))
678
+ __defNormalProp$b(a, prop, b[prop]);
679
+ if (__getOwnPropSymbols$b)
680
+ for (var prop of __getOwnPropSymbols$b(b)) {
681
+ if (__propIsEnum$b.call(b, prop))
682
+ __defNormalProp$b(a, prop, b[prop]);
683
683
  }
684
684
  return a;
685
685
  };
686
- var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
687
- function Table$j(props) {
686
+ var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
687
+ function Table$k(props) {
688
688
  const preparedItems = React__namespace.useMemo(() => {
689
- return props.items.map((item) => __spreadProps$7(__spreadValues$a({}, item), {
689
+ return props.items.map((item) => __spreadProps$8(__spreadValues$b({}, item), {
690
690
  status: item.isComplete ? 1 : 0
691
691
  }));
692
692
  }, [props.items]);
@@ -732,13 +732,13 @@ function Table$j(props) {
732
732
  render: (row) => /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, !!row.isComplete && /* @__PURE__ */ React__namespace.createElement(core.Badge, { variant: "filled" }, "Complete"), !row.isComplete && /* @__PURE__ */ React__namespace.createElement(core.Badge, { color: "red", variant: "filled" }, "Incomplete"))
733
733
  }],
734
734
  rowExpansion: {
735
- content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack$3, { items: record.lessons })
735
+ content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack$4, { items: record.lessons })
736
736
  }
737
737
  }
738
738
  ));
739
739
  }
740
740
 
741
- function Table$i(props) {
741
+ function Table$j(props) {
742
742
  const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
743
743
  if (props.items.length === 0) {
744
744
  return /* @__PURE__ */ React__namespace.createElement(
@@ -783,7 +783,7 @@ function Table$i(props) {
783
783
  ));
784
784
  }
785
785
 
786
- const useStyles$o = core.createStyles((theme) => ({
786
+ const useStyles$q = core.createStyles((theme) => ({
787
787
  title: {
788
788
  fontSize: 34,
789
789
  fontWeight: 900,
@@ -796,7 +796,7 @@ const useStyles$o = core.createStyles((theme) => ({
796
796
  }
797
797
  }));
798
798
  const Badge = (props) => {
799
- const { classes } = useStyles$o();
799
+ const { classes } = useStyles$q();
800
800
  const [tab, setTab] = React.useState("lessons");
801
801
  const numberOfStudents = props.students.length;
802
802
  const numberOfBadges = numberOfStudents > 0 ? props.students.filter((u) => u.isComplete).length : 0;
@@ -810,7 +810,7 @@ const Badge = (props) => {
810
810
  },
811
811
  "Back"
812
812
  )), /* @__PURE__ */ React__namespace.createElement(core.Group, null, /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: 0 }, /* @__PURE__ */ React__namespace.createElement(core.Title, { order: 2, className: classes.title, mt: "md" }, props.displayName || "Badge"), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", className: classes.description, mt: "sm" }, props.description || "No description")), !props.trial && /* @__PURE__ */ React__namespace.createElement(core.Stack, { ml: "auto" }, /* @__PURE__ */ React__namespace.createElement(
813
- SplitButton$4,
813
+ SplitButton$5,
814
814
  {
815
815
  href: props.href,
816
816
  onCopyLinkClick: props.onCopyLinkClick,
@@ -848,13 +848,13 @@ const Badge = (props) => {
848
848
  onChange: setTab
849
849
  }
850
850
  ), (!!props.trial || tab === "lessons") && /* @__PURE__ */ React__namespace.createElement(
851
- Table$i,
851
+ Table$j,
852
852
  {
853
853
  loading: props.loading,
854
854
  items: props.lessons
855
855
  }
856
856
  ), !props.trial && tab === "students" && /* @__PURE__ */ React__namespace.createElement(
857
- Table$j,
857
+ Table$k,
858
858
  {
859
859
  loading: props.loading,
860
860
  items: props.students
@@ -862,7 +862,7 @@ const Badge = (props) => {
862
862
  )))))));
863
863
  };
864
864
 
865
- function Table$h(props) {
865
+ function Table$i(props) {
866
866
  if (props.items.length === 0) {
867
867
  return /* @__PURE__ */ React__namespace.createElement(
868
868
  PlaceholderBanner,
@@ -894,7 +894,7 @@ function Table$h(props) {
894
894
  return /* @__PURE__ */ React__namespace.createElement(core.ScrollArea.Autosize, { maxHeight: 600 }, /* @__PURE__ */ React__namespace.createElement(core.Table, { horizontalSpacing: 0, verticalSpacing: 0, sx: { minWidth: 700 } }, /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
895
895
  }
896
896
 
897
- const useStyles$n = core.createStyles((theme) => ({
897
+ const useStyles$p = core.createStyles((theme) => ({
898
898
  title: {
899
899
  fontSize: 34,
900
900
  fontWeight: 900,
@@ -907,7 +907,7 @@ const useStyles$n = core.createStyles((theme) => ({
907
907
  }
908
908
  }));
909
909
  const Badges = (props) => {
910
- const { classes } = useStyles$n();
910
+ const { classes } = useStyles$p();
911
911
  return /* @__PURE__ */ React__namespace.createElement(core.Container, { size: "lg", py: "xl" }, /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(core.Grid, null, /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { sm: "auto" }, /* @__PURE__ */ React__namespace.createElement(core.Badge, { variant: "filled", size: "lg" }, "Badges"), /* @__PURE__ */ React__namespace.createElement(core.Title, { order: 2, className: classes.title, mt: "md" }, "Badges and micro-credentials"), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", className: classes.description, mt: "sm" }, "Key milestones that reflect skill development, micro-credentials, or academic progress"))), /* @__PURE__ */ React__namespace.createElement(
912
912
  core.Autocomplete,
913
913
  {
@@ -916,7 +916,7 @@ const Badges = (props) => {
916
916
  onChange: props.onAutocompleteChange
917
917
  }
918
918
  ), /* @__PURE__ */ React__namespace.createElement("div", { style: { position: "relative" } }, /* @__PURE__ */ React__namespace.createElement(core.LoadingOverlay, { visible: props.loading, overlayBlur: 2 }), /* @__PURE__ */ React__namespace.createElement(
919
- Table$h,
919
+ Table$i,
920
920
  {
921
921
  loading: props.loading,
922
922
  items: props.badges
@@ -924,7 +924,7 @@ const Badges = (props) => {
924
924
  ))));
925
925
  };
926
926
 
927
- function Table$g(props) {
927
+ function Table$h(props) {
928
928
  if (props.items.length === 0) {
929
929
  return /* @__PURE__ */ React__namespace.createElement(
930
930
  PlaceholderBanner,
@@ -964,7 +964,7 @@ function relativeTimeFromElapsed(elapsed) {
964
964
  return "";
965
965
  }
966
966
 
967
- function Table$f(props) {
967
+ function Table$g(props) {
968
968
  if (props.items.length === 0) {
969
969
  return /* @__PURE__ */ React__namespace.createElement(
970
970
  PlaceholderBanner,
@@ -980,7 +980,7 @@ function Table$f(props) {
980
980
  return /* @__PURE__ */ React__namespace.createElement(core.ScrollArea.Autosize, { maxHeight: 600 }, /* @__PURE__ */ React__namespace.createElement(core.Table, { verticalSpacing: "sm", sx: { minWidth: 700 }, highlightOnHover: true, striped: true }, /* @__PURE__ */ React__namespace.createElement("thead", null, /* @__PURE__ */ React__namespace.createElement("tr", null, /* @__PURE__ */ React__namespace.createElement("th", null, "Student Name"), /* @__PURE__ */ React__namespace.createElement("th", null, "Lesson Name"), /* @__PURE__ */ React__namespace.createElement("th", null, "Reflection"), /* @__PURE__ */ React__namespace.createElement("th", null, "Updated At"))), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
981
981
  }
982
982
 
983
- function Table$e(props) {
983
+ function Table$f(props) {
984
984
  if (props.items.length === 0) {
985
985
  return /* @__PURE__ */ React__namespace.createElement(
986
986
  PlaceholderBanner,
@@ -996,7 +996,7 @@ function Table$e(props) {
996
996
  return /* @__PURE__ */ React__namespace.createElement(core.ScrollArea.Autosize, { maxHeight: 600 }, /* @__PURE__ */ React__namespace.createElement(core.Table, { verticalSpacing: "sm", sx: { minWidth: 700 }, highlightOnHover: true, striped: true }, /* @__PURE__ */ React__namespace.createElement("thead", null, /* @__PURE__ */ React__namespace.createElement("tr", null, /* @__PURE__ */ React__namespace.createElement("th", null, "Student Name"), /* @__PURE__ */ React__namespace.createElement("th", null, "Impact Statement"))), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
997
997
  }
998
998
 
999
- function Table$d(props) {
999
+ function Table$e(props) {
1000
1000
  if (props.items.length === 0) {
1001
1001
  return /* @__PURE__ */ React__namespace.createElement(
1002
1002
  PlaceholderBanner,
@@ -1012,7 +1012,7 @@ function Table$d(props) {
1012
1012
  return /* @__PURE__ */ React__namespace.createElement(core.ScrollArea.Autosize, { maxHeight: 600 }, /* @__PURE__ */ React__namespace.createElement(core.Table, { verticalSpacing: "sm", sx: { minWidth: 700 }, highlightOnHover: true, striped: true }, /* @__PURE__ */ React__namespace.createElement("thead", null, /* @__PURE__ */ React__namespace.createElement("tr", null, /* @__PURE__ */ React__namespace.createElement("th", null, "Badge Name"), /* @__PURE__ */ React__namespace.createElement("th", null, "Description"), /* @__PURE__ */ React__namespace.createElement("th", null, "Completion"))), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
1013
1013
  }
1014
1014
 
1015
- function Table$c(props) {
1015
+ function Table$d(props) {
1016
1016
  if (props.items.length === 0) {
1017
1017
  return /* @__PURE__ */ React__namespace.createElement(
1018
1018
  PlaceholderBanner,
@@ -1077,33 +1077,33 @@ const Dashboard = (props) => {
1077
1077
  onChange: setTab
1078
1078
  }
1079
1079
  ), tab === "impact" && /* @__PURE__ */ React__namespace.createElement(
1080
- Table$e,
1080
+ Table$f,
1081
1081
  {
1082
1082
  loading: props.loading,
1083
1083
  items: props.impacts
1084
1084
  }
1085
1085
  ), tab === "reflections" && /* @__PURE__ */ React__namespace.createElement(
1086
- Table$f,
1086
+ Table$g,
1087
1087
  {
1088
1088
  loading: props.loading,
1089
1089
  items: props.reflections
1090
1090
  }
1091
1091
  ), tab === "badges" && /* @__PURE__ */ React__namespace.createElement(
1092
- Table$d,
1092
+ Table$e,
1093
1093
  {
1094
1094
  loading: props.loading,
1095
1095
  items: props.badges,
1096
1096
  onClick: props.onBadgeClick
1097
1097
  }
1098
1098
  ), tab === "lessons" && /* @__PURE__ */ React__namespace.createElement(
1099
- Table$c,
1099
+ Table$d,
1100
1100
  {
1101
1101
  loading: props.loading,
1102
1102
  items: props.lessons,
1103
1103
  onClick: props.onLessonClick
1104
1104
  }
1105
1105
  ), tab === "students" && /* @__PURE__ */ React__namespace.createElement(
1106
- Table$g,
1106
+ Table$h,
1107
1107
  {
1108
1108
  loading: props.loading,
1109
1109
  items: props.students,
@@ -1112,7 +1112,7 @@ const Dashboard = (props) => {
1112
1112
  )))))));
1113
1113
  };
1114
1114
 
1115
- const SplitButton$3 = (props) => {
1115
+ const SplitButton$4 = (props) => {
1116
1116
  return /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "sm" }, /* @__PURE__ */ React__namespace.createElement(
1117
1117
  core.Button,
1118
1118
  {
@@ -1137,7 +1137,7 @@ const SplitButton$3 = (props) => {
1137
1137
  ));
1138
1138
  };
1139
1139
 
1140
- const useStyles$m = core.createStyles((theme) => ({
1140
+ const useStyles$o = core.createStyles((theme) => ({
1141
1141
  th: { padding: "0 !important" },
1142
1142
  control: {
1143
1143
  width: "100%",
@@ -1148,11 +1148,11 @@ const useStyles$m = core.createStyles((theme) => ({
1148
1148
  }
1149
1149
  }));
1150
1150
  function Th$2({ children, reversed, sorted, onSort }) {
1151
- const { classes } = useStyles$m();
1151
+ const { classes } = useStyles$o();
1152
1152
  const Icon = sorted ? reversed ? icons.IconChevronUp : icons.IconChevronDown : icons.IconSelector;
1153
1153
  return /* @__PURE__ */ React__namespace.createElement("th", { className: classes.th }, /* @__PURE__ */ React__namespace.createElement(core.UnstyledButton, { onClick: onSort, className: classes.control }, /* @__PURE__ */ React__namespace.createElement(core.Group, { position: "apart", noWrap: true, spacing: "xs" }, /* @__PURE__ */ React__namespace.createElement(core.Text, { weight: 500, size: "sm", sx: { whiteSpace: "nowrap" } }, children), /* @__PURE__ */ React__namespace.createElement(core.Center, null, /* @__PURE__ */ React__namespace.createElement(Icon, { size: 14, stroke: 1.5 })))));
1154
1154
  }
1155
- function Table$b(props) {
1155
+ function Table$c(props) {
1156
1156
  const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
1157
1157
  if (props.items.length === 0) {
1158
1158
  return /* @__PURE__ */ React__namespace.createElement(
@@ -1233,26 +1233,26 @@ function Table$b(props) {
1233
1233
  ), /* @__PURE__ */ React__namespace.createElement("th", null), " ")), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
1234
1234
  }
1235
1235
 
1236
- var __defProp$9 = Object.defineProperty;
1237
- var __defProps$6 = Object.defineProperties;
1238
- var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
1239
- var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
1240
- var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
1241
- var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
1242
- var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1243
- var __spreadValues$9 = (a, b) => {
1236
+ var __defProp$a = Object.defineProperty;
1237
+ var __defProps$7 = Object.defineProperties;
1238
+ var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
1239
+ var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
1240
+ var __hasOwnProp$a = Object.prototype.hasOwnProperty;
1241
+ var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
1242
+ var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1243
+ var __spreadValues$a = (a, b) => {
1244
1244
  for (var prop in b || (b = {}))
1245
- if (__hasOwnProp$9.call(b, prop))
1246
- __defNormalProp$9(a, prop, b[prop]);
1247
- if (__getOwnPropSymbols$9)
1248
- for (var prop of __getOwnPropSymbols$9(b)) {
1249
- if (__propIsEnum$9.call(b, prop))
1250
- __defNormalProp$9(a, prop, b[prop]);
1245
+ if (__hasOwnProp$a.call(b, prop))
1246
+ __defNormalProp$a(a, prop, b[prop]);
1247
+ if (__getOwnPropSymbols$a)
1248
+ for (var prop of __getOwnPropSymbols$a(b)) {
1249
+ if (__propIsEnum$a.call(b, prop))
1250
+ __defNormalProp$a(a, prop, b[prop]);
1251
1251
  }
1252
1252
  return a;
1253
1253
  };
1254
- var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
1255
- const useStyles$l = core.createStyles((theme) => ({
1254
+ var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
1255
+ const useStyles$n = core.createStyles((theme) => ({
1256
1256
  title: {
1257
1257
  fontSize: 34,
1258
1258
  fontWeight: 900,
@@ -1285,7 +1285,7 @@ const useStyles$l = core.createStyles((theme) => ({
1285
1285
  }
1286
1286
  }));
1287
1287
  const Class = (props) => {
1288
- const { classes } = useStyles$l();
1288
+ const { classes } = useStyles$n();
1289
1289
  const form$1 = form.useForm({
1290
1290
  initialValues: {
1291
1291
  classId: "",
@@ -1317,27 +1317,27 @@ const Class = (props) => {
1317
1317
  padding: "xl",
1318
1318
  size: "xl"
1319
1319
  },
1320
- /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(DropzoneButton$1, __spreadProps$6(__spreadValues$9({}, props), { close: () => setOpened(false) })), /* @__PURE__ */ React__namespace.createElement(core.Divider, { label: "or", labelPosition: "center", my: "md", variant: "dashed" }), /* @__PURE__ */ React__namespace.createElement("form", { onSubmit: form$1.onSubmit(() => {
1320
+ /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(DropzoneButton$1, __spreadProps$7(__spreadValues$a({}, props), { close: () => setOpened(false) })), /* @__PURE__ */ React__namespace.createElement(core.Divider, { label: "or", labelPosition: "center", my: "md", variant: "dashed" }), /* @__PURE__ */ React__namespace.createElement("form", { onSubmit: form$1.onSubmit(() => {
1321
1321
  const values = form$1.values;
1322
1322
  form$1.reset();
1323
1323
  setOpened(false);
1324
1324
  props.onCreateMembers && props.onCreateMembers([values]);
1325
1325
  }) }, /* @__PURE__ */ React__namespace.createElement(core.Stack, null, /* @__PURE__ */ React__namespace.createElement(
1326
1326
  core.TextInput,
1327
- __spreadValues$9({
1327
+ __spreadValues$a({
1328
1328
  withAsterisk: true,
1329
1329
  label: "Email",
1330
1330
  placeholder: "Email"
1331
1331
  }, form$1.getInputProps("email"))
1332
1332
  ), /* @__PURE__ */ React__namespace.createElement(core.Group, { grow: true }, /* @__PURE__ */ React__namespace.createElement(
1333
1333
  core.TextInput,
1334
- __spreadValues$9({
1334
+ __spreadValues$a({
1335
1335
  label: "Given name",
1336
1336
  placeholder: "Given name"
1337
1337
  }, form$1.getInputProps("givenName"))
1338
1338
  ), /* @__PURE__ */ React__namespace.createElement(
1339
1339
  core.TextInput,
1340
- __spreadValues$9({
1340
+ __spreadValues$a({
1341
1341
  label: "Family name",
1342
1342
  placeholder: "Family name"
1343
1343
  }, form$1.getInputProps("familyName"))
@@ -1351,7 +1351,7 @@ const Class = (props) => {
1351
1351
  },
1352
1352
  "Back"
1353
1353
  )), /* @__PURE__ */ React__namespace.createElement(core.Title, { order: 2, className: classes.title, mt: "md" }, props.displayName || "Class"), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", className: classes.description, mt: "sm" }, props.description || "No description")), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { sm: "content" }, !props.loading && /* @__PURE__ */ React__namespace.createElement(
1354
- SplitButton$3,
1354
+ SplitButton$4,
1355
1355
  {
1356
1356
  onAddMembersClick: () => setOpened(true),
1357
1357
  onCopyClassLinkClick: props.onCopyLinkClick,
@@ -1376,7 +1376,7 @@ const Class = (props) => {
1376
1376
  value: props.numberOfLessonsCompleted
1377
1377
  }
1378
1378
  ] }), /* @__PURE__ */ React__namespace.createElement(
1379
- Table$b,
1379
+ Table$c,
1380
1380
  {
1381
1381
  loading: props.loading,
1382
1382
  items: props.members,
@@ -1386,7 +1386,7 @@ const Class = (props) => {
1386
1386
  ))))));
1387
1387
  };
1388
1388
  const DropzoneButton$1 = (props) => {
1389
- const { classes, theme } = useStyles$l();
1389
+ const { classes, theme } = useStyles$n();
1390
1390
  const openRef = React__namespace.useRef(null);
1391
1391
  const [loading, setLoading] = React__namespace.useState(false);
1392
1392
  const onDrop = React__namespace.useCallback((acceptedFiles) => {
@@ -1432,7 +1432,7 @@ const DropzoneButton$1 = (props) => {
1432
1432
  } }, "Select file"));
1433
1433
  };
1434
1434
 
1435
- const useStyles$k = core.createStyles((theme) => ({
1435
+ const useStyles$m = core.createStyles((theme) => ({
1436
1436
  th: { padding: "0 !important" },
1437
1437
  control: {
1438
1438
  width: "100%",
@@ -1443,11 +1443,11 @@ const useStyles$k = core.createStyles((theme) => ({
1443
1443
  }
1444
1444
  }));
1445
1445
  function Th$1({ children, reversed, sorted, onSort }) {
1446
- const { classes } = useStyles$k();
1446
+ const { classes } = useStyles$m();
1447
1447
  const Icon = sorted ? reversed ? icons.IconChevronUp : icons.IconChevronDown : icons.IconSelector;
1448
1448
  return /* @__PURE__ */ React__namespace.createElement("th", { className: classes.th }, /* @__PURE__ */ React__namespace.createElement(core.UnstyledButton, { onClick: onSort, className: classes.control }, /* @__PURE__ */ React__namespace.createElement(core.Group, { position: "apart", noWrap: true, spacing: "xs" }, /* @__PURE__ */ React__namespace.createElement(core.Text, { weight: 500, size: "sm", sx: { whiteSpace: "nowrap" } }, children), /* @__PURE__ */ React__namespace.createElement(core.Center, null, /* @__PURE__ */ React__namespace.createElement(Icon, { size: 14, stroke: 1.5 })))));
1449
1449
  }
1450
- function Table$a(props) {
1450
+ function Table$b(props) {
1451
1451
  const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
1452
1452
  if (props.items.length === 0) {
1453
1453
  return /* @__PURE__ */ React__namespace.createElement(
@@ -1488,23 +1488,23 @@ function Table$a(props) {
1488
1488
  ), /* @__PURE__ */ React__namespace.createElement("th", null))), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
1489
1489
  }
1490
1490
 
1491
- var __defProp$8 = Object.defineProperty;
1492
- var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
1493
- var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
1494
- var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
1495
- var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1496
- var __spreadValues$8 = (a, b) => {
1491
+ var __defProp$9 = Object.defineProperty;
1492
+ var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
1493
+ var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
1494
+ var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
1495
+ var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1496
+ var __spreadValues$9 = (a, b) => {
1497
1497
  for (var prop in b || (b = {}))
1498
- if (__hasOwnProp$8.call(b, prop))
1499
- __defNormalProp$8(a, prop, b[prop]);
1500
- if (__getOwnPropSymbols$8)
1501
- for (var prop of __getOwnPropSymbols$8(b)) {
1502
- if (__propIsEnum$8.call(b, prop))
1503
- __defNormalProp$8(a, prop, b[prop]);
1498
+ if (__hasOwnProp$9.call(b, prop))
1499
+ __defNormalProp$9(a, prop, b[prop]);
1500
+ if (__getOwnPropSymbols$9)
1501
+ for (var prop of __getOwnPropSymbols$9(b)) {
1502
+ if (__propIsEnum$9.call(b, prop))
1503
+ __defNormalProp$9(a, prop, b[prop]);
1504
1504
  }
1505
1505
  return a;
1506
1506
  };
1507
- const useStyles$j = core.createStyles((theme) => ({
1507
+ const useStyles$l = core.createStyles((theme) => ({
1508
1508
  title: {
1509
1509
  fontSize: 34,
1510
1510
  fontWeight: 900,
@@ -1517,7 +1517,7 @@ const useStyles$j = core.createStyles((theme) => ({
1517
1517
  }
1518
1518
  }));
1519
1519
  const Classes = (props) => {
1520
- const { classes } = useStyles$j();
1520
+ const { classes } = useStyles$l();
1521
1521
  const form$1 = form.useForm({
1522
1522
  initialValues: {
1523
1523
  classId: "",
@@ -1547,14 +1547,14 @@ const Classes = (props) => {
1547
1547
  props.onCreateClass && props.onCreateClass(values);
1548
1548
  }) }, /* @__PURE__ */ React__namespace.createElement(core.Stack, null, /* @__PURE__ */ React__namespace.createElement(
1549
1549
  core.TextInput,
1550
- __spreadValues$8({
1550
+ __spreadValues$9({
1551
1551
  withAsterisk: true,
1552
1552
  label: "Name",
1553
1553
  placeholder: "Class name"
1554
1554
  }, form$1.getInputProps("name"))
1555
1555
  ), /* @__PURE__ */ React__namespace.createElement(
1556
1556
  core.TextInput,
1557
- __spreadValues$8({
1557
+ __spreadValues$9({
1558
1558
  label: "Description",
1559
1559
  placeholder: "A class for my first period English students"
1560
1560
  }, form$1.getInputProps("description"))
@@ -1579,7 +1579,7 @@ const Classes = (props) => {
1579
1579
  onChange: props.onAutocompleteChange
1580
1580
  }
1581
1581
  ), /* @__PURE__ */ React__namespace.createElement(
1582
- Table$a,
1582
+ Table$b,
1583
1583
  {
1584
1584
  loading: props.loading,
1585
1585
  items: props.classes,
@@ -1588,7 +1588,7 @@ const Classes = (props) => {
1588
1588
  ))))));
1589
1589
  };
1590
1590
 
1591
- const useStyles$i = core.createStyles((theme) => ({
1591
+ const useStyles$k = core.createStyles((theme) => ({
1592
1592
  title: {
1593
1593
  fontSize: 34,
1594
1594
  fontWeight: 900,
@@ -1602,11 +1602,11 @@ const useStyles$i = core.createStyles((theme) => ({
1602
1602
  }
1603
1603
  }));
1604
1604
  const UserInfo = (props) => {
1605
- const { classes } = useStyles$i();
1605
+ const { classes } = useStyles$k();
1606
1606
  return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(core.Title, { className: classes.title }, props.name), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", className: classes.description, mt: "xs" }, props.impactStatement));
1607
1607
  };
1608
1608
 
1609
- function Table$9(props) {
1609
+ function Table$a(props) {
1610
1610
  if (props.items.length === 0) {
1611
1611
  return /* @__PURE__ */ React__namespace.createElement(
1612
1612
  PlaceholderBanner,
@@ -1642,7 +1642,7 @@ function Table$9(props) {
1642
1642
  ));
1643
1643
  }
1644
1644
 
1645
- function Table$8(props) {
1645
+ function Table$9(props) {
1646
1646
  if (props.items.length === 0) {
1647
1647
  return /* @__PURE__ */ React__namespace.createElement(
1648
1648
  PlaceholderBanner,
@@ -1658,7 +1658,7 @@ function Table$8(props) {
1658
1658
  return /* @__PURE__ */ React__namespace.createElement(core.ScrollArea.Autosize, { maxHeight: 600 }, /* @__PURE__ */ React__namespace.createElement(core.Table, { verticalSpacing: "sm", sx: { minWidth: 700 }, highlightOnHover: true, striped: true }, /* @__PURE__ */ React__namespace.createElement("thead", null, /* @__PURE__ */ React__namespace.createElement("tr", null, /* @__PURE__ */ React__namespace.createElement("th", null, "Lesson Name"), /* @__PURE__ */ React__namespace.createElement("th", null, "Question"), /* @__PURE__ */ React__namespace.createElement("th", null, "Answer"))), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
1659
1659
  }
1660
1660
 
1661
- function Table$7(props) {
1661
+ function Table$8(props) {
1662
1662
  if (props.items.length === 0) {
1663
1663
  return /* @__PURE__ */ React__namespace.createElement(
1664
1664
  PlaceholderBanner,
@@ -1720,19 +1720,19 @@ const Student = (props) => {
1720
1720
  onChange: setTab
1721
1721
  }
1722
1722
  ), tab === "badges" && /* @__PURE__ */ React__namespace.createElement(
1723
- Table$9,
1723
+ Table$a,
1724
1724
  {
1725
1725
  loading: props.loading,
1726
1726
  items: props.badges
1727
1727
  }
1728
1728
  ), tab === "answers" && /* @__PURE__ */ React__namespace.createElement(
1729
- Table$8,
1729
+ Table$9,
1730
1730
  {
1731
1731
  loading: props.loading,
1732
1732
  items: props.answers
1733
1733
  }
1734
1734
  ), tab === "reflections" && /* @__PURE__ */ React__namespace.createElement(
1735
- Table$7,
1735
+ Table$8,
1736
1736
  {
1737
1737
  loading: props.loading,
1738
1738
  items: props.reflections
@@ -1740,7 +1740,7 @@ const Student = (props) => {
1740
1740
  ))))));
1741
1741
  };
1742
1742
 
1743
- const useStyles$h = core.createStyles((theme, props) => {
1743
+ const useStyles$j = core.createStyles((theme, props) => {
1744
1744
  const from = props.from || "blue";
1745
1745
  const to = props.to || "green";
1746
1746
  return {
@@ -1768,7 +1768,7 @@ const useStyles$h = core.createStyles((theme, props) => {
1768
1768
  };
1769
1769
  });
1770
1770
  function CardGradient(props) {
1771
- const { classes } = useStyles$h(props);
1771
+ const { classes } = useStyles$j(props);
1772
1772
  const from = props.from || "blue";
1773
1773
  const to = props.to || "green";
1774
1774
  const icon = props.icon || /* @__PURE__ */ React__namespace.createElement(icons.IconColorSwatch, { size: 28, stroke: 1.5 });
@@ -1784,35 +1784,35 @@ function CardGradient(props) {
1784
1784
  ), /* @__PURE__ */ React__namespace.createElement(core.Text, { size: "xl", weight: 500, mt: "md" }, props.title), /* @__PURE__ */ React__namespace.createElement(core.Text, { size: "sm", mt: "sm", color: "dimmed" }, props.description));
1785
1785
  }
1786
1786
 
1787
- var __defProp$7 = Object.defineProperty;
1788
- var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
1789
- var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
1790
- var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
1791
- var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1792
- var __spreadValues$7 = (a, b) => {
1787
+ var __defProp$8 = Object.defineProperty;
1788
+ var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
1789
+ var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
1790
+ var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
1791
+ var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1792
+ var __spreadValues$8 = (a, b) => {
1793
1793
  for (var prop in b || (b = {}))
1794
- if (__hasOwnProp$7.call(b, prop))
1795
- __defNormalProp$7(a, prop, b[prop]);
1796
- if (__getOwnPropSymbols$7)
1797
- for (var prop of __getOwnPropSymbols$7(b)) {
1798
- if (__propIsEnum$7.call(b, prop))
1799
- __defNormalProp$7(a, prop, b[prop]);
1794
+ if (__hasOwnProp$8.call(b, prop))
1795
+ __defNormalProp$8(a, prop, b[prop]);
1796
+ if (__getOwnPropSymbols$8)
1797
+ for (var prop of __getOwnPropSymbols$8(b)) {
1798
+ if (__propIsEnum$8.call(b, prop))
1799
+ __defNormalProp$8(a, prop, b[prop]);
1800
1800
  }
1801
1801
  return a;
1802
1802
  };
1803
1803
  var __objRest$1 = (source, exclude) => {
1804
1804
  var target = {};
1805
1805
  for (var prop in source)
1806
- if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)
1806
+ if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)
1807
1807
  target[prop] = source[prop];
1808
- if (source != null && __getOwnPropSymbols$7)
1809
- for (var prop of __getOwnPropSymbols$7(source)) {
1810
- if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))
1808
+ if (source != null && __getOwnPropSymbols$8)
1809
+ for (var prop of __getOwnPropSymbols$8(source)) {
1810
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))
1811
1811
  target[prop] = source[prop];
1812
1812
  }
1813
1813
  return target;
1814
1814
  };
1815
- const useStyles$g = core.createStyles((theme) => ({
1815
+ const useStyles$i = core.createStyles((theme) => ({
1816
1816
  card: {
1817
1817
  height: 240,
1818
1818
  backgroundSize: "cover",
@@ -1857,7 +1857,7 @@ const TenantBanner = (_a) => {
1857
1857
  "className",
1858
1858
  "code"
1859
1859
  ]);
1860
- const { classes, cx, theme } = useStyles$g();
1860
+ const { classes, cx, theme } = useStyles$i();
1861
1861
  const handleCopy = async () => {
1862
1862
  if (!code)
1863
1863
  return;
@@ -1874,9 +1874,9 @@ const TenantBanner = (_a) => {
1874
1874
  };
1875
1875
  return /* @__PURE__ */ React__namespace.createElement(
1876
1876
  core.Card,
1877
- __spreadValues$7({
1877
+ __spreadValues$8({
1878
1878
  radius: "md",
1879
- style: __spreadValues$7({ backgroundImage: `url(${image})` }, style),
1879
+ style: __spreadValues$8({ backgroundImage: `url(${image})` }, style),
1880
1880
  className: cx(classes.card, className)
1881
1881
  }, others),
1882
1882
  /* @__PURE__ */ React__namespace.createElement(
@@ -1965,7 +1965,7 @@ const Home = (props) => {
1965
1965
  )))));
1966
1966
  };
1967
1967
 
1968
- function Table$6(props) {
1968
+ function Table$7(props) {
1969
1969
  const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
1970
1970
  if (props.items.length === 0) {
1971
1971
  return /* @__PURE__ */ React__namespace.createElement(
@@ -1997,7 +1997,7 @@ function Table$6(props) {
1997
1997
  ));
1998
1998
  }
1999
1999
 
2000
- const useStyles$f = core.createStyles((theme) => ({
2000
+ const useStyles$h = core.createStyles((theme) => ({
2001
2001
  button: {
2002
2002
  borderTopRightRadius: 0,
2003
2003
  borderBottomRightRadius: 0,
@@ -2011,8 +2011,8 @@ const useStyles$f = core.createStyles((theme) => ({
2011
2011
  borderLeft: `1px solid ${theme.colorScheme === "dark" ? theme.colors.dark[7] : theme.white}`
2012
2012
  }
2013
2013
  }));
2014
- const SplitButton$2 = (props) => {
2015
- const { classes, theme } = useStyles$f();
2014
+ const SplitButton$3 = (props) => {
2015
+ const { classes, theme } = useStyles$h();
2016
2016
  theme.colors[theme.primaryColor][theme.colorScheme === "dark" ? 5 : 6];
2017
2017
  return /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "sm" }, /* @__PURE__ */ React__namespace.createElement(
2018
2018
  core.Button,
@@ -2041,7 +2041,7 @@ const SplitButton$2 = (props) => {
2041
2041
  ));
2042
2042
  };
2043
2043
 
2044
- function Stack$2(props) {
2044
+ function Stack$3(props) {
2045
2045
  if (props.items.length === 0) {
2046
2046
  return null;
2047
2047
  }
@@ -2049,28 +2049,28 @@ function Stack$2(props) {
2049
2049
  return /* @__PURE__ */ React__namespace.createElement(core.ScrollArea.Autosize, { maxHeight: 600 }, /* @__PURE__ */ React__namespace.createElement(core.UnstyledButton, { component: reactRouterDom.Link, to: props.href }, /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: 24, sx: { padding: 20, minWidth: 700 } }, rows)));
2050
2050
  }
2051
2051
 
2052
- var __defProp$6 = Object.defineProperty;
2053
- var __defProps$5 = Object.defineProperties;
2054
- var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
2055
- var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
2056
- var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
2057
- var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
2058
- var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2059
- var __spreadValues$6 = (a, b) => {
2052
+ var __defProp$7 = Object.defineProperty;
2053
+ var __defProps$6 = Object.defineProperties;
2054
+ var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
2055
+ var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
2056
+ var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
2057
+ var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
2058
+ var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2059
+ var __spreadValues$7 = (a, b) => {
2060
2060
  for (var prop in b || (b = {}))
2061
- if (__hasOwnProp$6.call(b, prop))
2062
- __defNormalProp$6(a, prop, b[prop]);
2063
- if (__getOwnPropSymbols$6)
2064
- for (var prop of __getOwnPropSymbols$6(b)) {
2065
- if (__propIsEnum$6.call(b, prop))
2066
- __defNormalProp$6(a, prop, b[prop]);
2061
+ if (__hasOwnProp$7.call(b, prop))
2062
+ __defNormalProp$7(a, prop, b[prop]);
2063
+ if (__getOwnPropSymbols$7)
2064
+ for (var prop of __getOwnPropSymbols$7(b)) {
2065
+ if (__propIsEnum$7.call(b, prop))
2066
+ __defNormalProp$7(a, prop, b[prop]);
2067
2067
  }
2068
2068
  return a;
2069
2069
  };
2070
- var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
2071
- function Table$5(props) {
2070
+ var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
2071
+ function Table$6(props) {
2072
2072
  const preparedItems = React__namespace.useMemo(() => {
2073
- return props.items.map((item) => __spreadProps$5(__spreadValues$6({}, item), {
2073
+ return props.items.map((item) => __spreadProps$6(__spreadValues$7({}, item), {
2074
2074
  status: item.isComplete ? 2 : item.isStarted ? 1 : 0
2075
2075
  }));
2076
2076
  }, [props.items]);
@@ -2116,13 +2116,13 @@ function Table$5(props) {
2116
2116
  render: (row) => /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, !!row.isComplete && /* @__PURE__ */ React__namespace.createElement(core.Badge, { variant: "filled" }, "Complete"), !row.isComplete && !row.isStarted && /* @__PURE__ */ React__namespace.createElement(core.Badge, { color: "red", variant: "filled" }, "Not started"), !row.isComplete && !!row.isStarted && /* @__PURE__ */ React__namespace.createElement(core.Badge, { color: "violet", variant: "filled" }, "In progress"))
2117
2117
  }],
2118
2118
  rowExpansion: {
2119
- content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack$2, { href: record.href, items: record.answers })
2119
+ content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack$3, { href: record.href, items: record.answers })
2120
2120
  }
2121
2121
  }
2122
2122
  ));
2123
2123
  }
2124
2124
 
2125
- function Stack$1(props) {
2125
+ function Stack$2(props) {
2126
2126
  const primaryAxis = React__namespace.useMemo(
2127
2127
  () => ({
2128
2128
  position: "left",
@@ -2190,7 +2190,7 @@ function Stack$1(props) {
2190
2190
  }
2191
2191
  const truncateWithEllipses = (text, max) => text.substr(0, max - 1) + (text.length > max ? "&hellip;" : "");
2192
2192
 
2193
- const useStyles$e = core.createStyles((theme) => ({
2193
+ const useStyles$g = core.createStyles((theme) => ({
2194
2194
  title: {
2195
2195
  fontSize: 34,
2196
2196
  fontWeight: 900,
@@ -2203,7 +2203,7 @@ const useStyles$e = core.createStyles((theme) => ({
2203
2203
  }
2204
2204
  }));
2205
2205
  const Lesson = (props) => {
2206
- const { classes } = useStyles$e();
2206
+ const { classes } = useStyles$g();
2207
2207
  const [tab, setTab] = React.useState("question");
2208
2208
  const numberOfStudents = props.students.length;
2209
2209
  const numberOfLessons = numberOfStudents > 0 ? props.students.filter((u) => u.isComplete).length : 0;
@@ -2254,7 +2254,7 @@ const Lesson = (props) => {
2254
2254
  },
2255
2255
  "Back"
2256
2256
  )), /* @__PURE__ */ React__namespace.createElement(core.Group, null, /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: 0 }, /* @__PURE__ */ React__namespace.createElement(core.Title, { order: 2, className: classes.title, mt: "md" }, props.displayName || "Lesson"), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", className: classes.description, mt: "sm" }, props.description || "No description")), /* @__PURE__ */ React__namespace.createElement(core.Stack, { ml: "auto" }, /* @__PURE__ */ React__namespace.createElement(
2257
- SplitButton$2,
2257
+ SplitButton$3,
2258
2258
  {
2259
2259
  href: props.href,
2260
2260
  noExport: props.trial,
@@ -2295,19 +2295,19 @@ const Lesson = (props) => {
2295
2295
  onChange: setTab
2296
2296
  }
2297
2297
  ), tab === "question" && /* @__PURE__ */ React__namespace.createElement(
2298
- Stack$1,
2298
+ Stack$2,
2299
2299
  {
2300
2300
  loading: props.loading,
2301
2301
  items: props.questions
2302
2302
  }
2303
2303
  ), tab === "reflections" && /* @__PURE__ */ React__namespace.createElement(
2304
- Table$6,
2304
+ Table$7,
2305
2305
  {
2306
2306
  loading: props.loading,
2307
2307
  items: props.reflections
2308
2308
  }
2309
2309
  ), tab === "students" && /* @__PURE__ */ React__namespace.createElement(
2310
- Table$5,
2310
+ Table$6,
2311
2311
  {
2312
2312
  loading: props.loading,
2313
2313
  items: props.students
@@ -2315,7 +2315,7 @@ const Lesson = (props) => {
2315
2315
  )))))));
2316
2316
  };
2317
2317
 
2318
- function Table$4(props) {
2318
+ function Table$5(props) {
2319
2319
  if (props.items.length === 0) {
2320
2320
  return /* @__PURE__ */ React__namespace.createElement(
2321
2321
  PlaceholderBanner,
@@ -2347,7 +2347,7 @@ function Table$4(props) {
2347
2347
  return /* @__PURE__ */ React__namespace.createElement(core.ScrollArea.Autosize, { maxHeight: 600 }, /* @__PURE__ */ React__namespace.createElement(core.Table, { horizontalSpacing: 0, verticalSpacing: 0, sx: { minWidth: 700 } }, /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
2348
2348
  }
2349
2349
 
2350
- const useStyles$d = core.createStyles((theme) => ({
2350
+ const useStyles$f = core.createStyles((theme) => ({
2351
2351
  title: {
2352
2352
  fontSize: 34,
2353
2353
  fontWeight: 900,
@@ -2360,7 +2360,7 @@ const useStyles$d = core.createStyles((theme) => ({
2360
2360
  }
2361
2361
  }));
2362
2362
  const Lessons = (props) => {
2363
- const { classes } = useStyles$d();
2363
+ const { classes } = useStyles$f();
2364
2364
  return /* @__PURE__ */ React__namespace.createElement(core.Container, { size: "lg", py: "xl" }, /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(core.Grid, null, /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { sm: "auto" }, /* @__PURE__ */ React__namespace.createElement(core.Badge, { variant: "filled", size: "lg" }, "Lessons"), /* @__PURE__ */ React__namespace.createElement(core.Title, { order: 2, className: classes.title, mt: "md" }, "Lessons"), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", className: classes.description, mt: "sm" }, "Bite-sized activities and learning experiences accelerating students achievement"))), /* @__PURE__ */ React__namespace.createElement(
2365
2365
  core.Autocomplete,
2366
2366
  {
@@ -2369,7 +2369,7 @@ const Lessons = (props) => {
2369
2369
  onChange: props.onAutocompleteChange
2370
2370
  }
2371
2371
  ), /* @__PURE__ */ React__namespace.createElement("div", { style: { position: "relative" } }, /* @__PURE__ */ React__namespace.createElement(core.LoadingOverlay, { visible: props.loading, overlayBlur: 2 }), /* @__PURE__ */ React__namespace.createElement(
2372
- Table$4,
2372
+ Table$5,
2373
2373
  {
2374
2374
  loading: props.loading,
2375
2375
  items: props.lessons
@@ -2377,7 +2377,7 @@ const Lessons = (props) => {
2377
2377
  ))));
2378
2378
  };
2379
2379
 
2380
- const useStyles$c = core.createStyles((theme) => ({
2380
+ const useStyles$e = core.createStyles((theme) => ({
2381
2381
  title: {
2382
2382
  fontSize: 22,
2383
2383
  fontWeight: 900,
@@ -2396,7 +2396,7 @@ const useStyles$c = core.createStyles((theme) => ({
2396
2396
  }
2397
2397
  }));
2398
2398
  function AccessCode(props) {
2399
- const { classes } = useStyles$c();
2399
+ const { classes } = useStyles$e();
2400
2400
  return /* @__PURE__ */ React__namespace.createElement(core.Container, { mx: "0", px: "0", size: 460, my: 30 }, /* @__PURE__ */ React__namespace.createElement(core.Title, { className: classes.title }, "Access code"), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", size: "sm" }, "Grant access to join your organization"), /* @__PURE__ */ React__namespace.createElement(core.Paper, { withBorder: true, shadow: "md", p: 30, radius: "md", mt: "xl" }, /* @__PURE__ */ React__namespace.createElement(core.TextInput, { value: props.value, readOnly: true }), /* @__PURE__ */ React__namespace.createElement(core.Group, { position: "apart", mt: "lg", className: classes.controls }, /* @__PURE__ */ React__namespace.createElement(
2401
2401
  core.Anchor,
2402
2402
  {
@@ -2424,7 +2424,7 @@ const monthNames = [
2424
2424
  "November",
2425
2425
  "December"
2426
2426
  ];
2427
- const useStyles$b = core.createStyles((theme) => ({
2427
+ const useStyles$d = core.createStyles((theme) => ({
2428
2428
  title: {
2429
2429
  fontSize: 34,
2430
2430
  fontWeight: 900,
@@ -2454,7 +2454,7 @@ const useStyles$b = core.createStyles((theme) => ({
2454
2454
  }
2455
2455
  }));
2456
2456
  const Organization = (props) => {
2457
- const { classes } = useStyles$b();
2457
+ const { classes } = useStyles$d();
2458
2458
  return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(core.Container, { size: "lg", py: "xl" }, /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(core.Grid, null, /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { sm: "auto" }, /* @__PURE__ */ React__namespace.createElement(core.UnstyledButton, { onClick: props.onBackClick }, /* @__PURE__ */ React__namespace.createElement(
2459
2459
  core.Badge,
2460
2460
  {
@@ -2480,7 +2480,7 @@ const Organization = (props) => {
2480
2480
  ] }))))));
2481
2481
  };
2482
2482
 
2483
- const useStyles$a = core.createStyles((theme) => ({
2483
+ const useStyles$c = core.createStyles((theme) => ({
2484
2484
  button: {
2485
2485
  borderTopRightRadius: 0,
2486
2486
  borderBottomRightRadius: 0,
@@ -2494,8 +2494,8 @@ const useStyles$a = core.createStyles((theme) => ({
2494
2494
  borderLeft: `1px solid ${theme.colorScheme === "dark" ? theme.colors.dark[7] : theme.white}`
2495
2495
  }
2496
2496
  }));
2497
- const SplitButton$1 = (props) => {
2498
- const { classes, theme } = useStyles$a();
2497
+ const SplitButton$2 = (props) => {
2498
+ const { classes, theme } = useStyles$c();
2499
2499
  const menuIconColor = theme.colors[theme.primaryColor][theme.colorScheme === "dark" ? 5 : 6];
2500
2500
  const hasMenu = !!props.withOrganizationLink;
2501
2501
  return /* @__PURE__ */ React__namespace.createElement(core.Group, { noWrap: true, spacing: 0 }, /* @__PURE__ */ React__namespace.createElement(
@@ -2525,7 +2525,7 @@ const SplitButton$1 = (props) => {
2525
2525
  ))));
2526
2526
  };
2527
2527
 
2528
- function Table$3(props) {
2528
+ function Table$4(props) {
2529
2529
  if (props.items.length === 0) {
2530
2530
  return /* @__PURE__ */ React__namespace.createElement(
2531
2531
  PlaceholderBanner,
@@ -2557,26 +2557,26 @@ function Table$3(props) {
2557
2557
  return /* @__PURE__ */ React__namespace.createElement(core.ScrollArea, null, /* @__PURE__ */ React__namespace.createElement(core.Table, { verticalSpacing: 20, sx: { minWidth: 700 }, highlightOnHover: true, striped: true }, /* @__PURE__ */ React__namespace.createElement("thead", null, /* @__PURE__ */ React__namespace.createElement("tr", null, /* @__PURE__ */ React__namespace.createElement("th", null, "Name"), /* @__PURE__ */ React__namespace.createElement("th", null, "Role"), /* @__PURE__ */ React__namespace.createElement("th", null, "Account Created?"), /* @__PURE__ */ React__namespace.createElement("th", null, "# of Classes"), /* @__PURE__ */ React__namespace.createElement("th", null, "Last Active"), /* @__PURE__ */ React__namespace.createElement("th", null))), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
2558
2558
  }
2559
2559
 
2560
- var __defProp$5 = Object.defineProperty;
2561
- var __defProps$4 = Object.defineProperties;
2562
- var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
2563
- var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
2564
- var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
2565
- var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
2566
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2567
- var __spreadValues$5 = (a, b) => {
2560
+ var __defProp$6 = Object.defineProperty;
2561
+ var __defProps$5 = Object.defineProperties;
2562
+ var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
2563
+ var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
2564
+ var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
2565
+ var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
2566
+ var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2567
+ var __spreadValues$6 = (a, b) => {
2568
2568
  for (var prop in b || (b = {}))
2569
- if (__hasOwnProp$5.call(b, prop))
2570
- __defNormalProp$5(a, prop, b[prop]);
2571
- if (__getOwnPropSymbols$5)
2572
- for (var prop of __getOwnPropSymbols$5(b)) {
2573
- if (__propIsEnum$5.call(b, prop))
2574
- __defNormalProp$5(a, prop, b[prop]);
2569
+ if (__hasOwnProp$6.call(b, prop))
2570
+ __defNormalProp$6(a, prop, b[prop]);
2571
+ if (__getOwnPropSymbols$6)
2572
+ for (var prop of __getOwnPropSymbols$6(b)) {
2573
+ if (__propIsEnum$6.call(b, prop))
2574
+ __defNormalProp$6(a, prop, b[prop]);
2575
2575
  }
2576
2576
  return a;
2577
2577
  };
2578
- var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
2579
- const useStyles$9 = core.createStyles((theme) => ({
2578
+ var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
2579
+ const useStyles$b = core.createStyles((theme) => ({
2580
2580
  title: {
2581
2581
  fontSize: 34,
2582
2582
  fontWeight: 900,
@@ -2606,7 +2606,7 @@ const useStyles$9 = core.createStyles((theme) => ({
2606
2606
  }
2607
2607
  }));
2608
2608
  const People = (props) => {
2609
- const { classes } = useStyles$9();
2609
+ const { classes } = useStyles$b();
2610
2610
  const form$1 = form.useForm({
2611
2611
  initialValues: {
2612
2612
  userId: "",
@@ -2637,27 +2637,27 @@ const People = (props) => {
2637
2637
  padding: "xl",
2638
2638
  size: "xl"
2639
2639
  },
2640
- /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(DropzoneButton, __spreadProps$4(__spreadValues$5({}, props), { close: () => setOpened(false) })), /* @__PURE__ */ React__namespace.createElement(core.Divider, { label: "or", labelPosition: "center", my: "md", variant: "dashed" }), /* @__PURE__ */ React__namespace.createElement("form", { onSubmit: form$1.onSubmit(() => {
2640
+ /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(DropzoneButton, __spreadProps$5(__spreadValues$6({}, props), { close: () => setOpened(false) })), /* @__PURE__ */ React__namespace.createElement(core.Divider, { label: "or", labelPosition: "center", my: "md", variant: "dashed" }), /* @__PURE__ */ React__namespace.createElement("form", { onSubmit: form$1.onSubmit(() => {
2641
2641
  const values = form$1.values;
2642
2642
  form$1.reset();
2643
2643
  setOpened(false);
2644
2644
  props.onCreateUsers && props.onCreateUsers([values]);
2645
2645
  }) }, /* @__PURE__ */ React__namespace.createElement(core.Stack, null, /* @__PURE__ */ React__namespace.createElement(
2646
2646
  core.TextInput,
2647
- __spreadValues$5({
2647
+ __spreadValues$6({
2648
2648
  withAsterisk: true,
2649
2649
  label: "Email",
2650
2650
  placeholder: "Email"
2651
2651
  }, form$1.getInputProps("email"))
2652
2652
  ), /* @__PURE__ */ React__namespace.createElement(core.Group, { grow: true }, /* @__PURE__ */ React__namespace.createElement(
2653
2653
  core.TextInput,
2654
- __spreadValues$5({
2654
+ __spreadValues$6({
2655
2655
  label: "Given name",
2656
2656
  placeholder: "Given name"
2657
2657
  }, form$1.getInputProps("givenName"))
2658
2658
  ), /* @__PURE__ */ React__namespace.createElement(
2659
2659
  core.TextInput,
2660
- __spreadValues$5({
2660
+ __spreadValues$6({
2661
2661
  label: "Family name",
2662
2662
  placeholder: "Family name"
2663
2663
  }, form$1.getInputProps("familyName"))
@@ -2671,7 +2671,7 @@ const People = (props) => {
2671
2671
  },
2672
2672
  "Back"
2673
2673
  )), /* @__PURE__ */ React__namespace.createElement(core.Title, { order: 2, className: classes.title, mt: "md" }, "People"), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", className: classes.description, mt: "sm" }, "Manage members of your organization")), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { sm: "content" }, !props.loading && /* @__PURE__ */ React__namespace.createElement(
2674
- SplitButton$1,
2674
+ SplitButton$2,
2675
2675
  {
2676
2676
  withOrganizationLink: props.withOrganizationLink,
2677
2677
  onAddUsersClick: () => setOpened(true),
@@ -2700,7 +2700,7 @@ const People = (props) => {
2700
2700
  onChange: props.onAutocompleteChange
2701
2701
  }
2702
2702
  ), /* @__PURE__ */ React__namespace.createElement(
2703
- Table$3,
2703
+ Table$4,
2704
2704
  {
2705
2705
  loading: props.loading,
2706
2706
  items: props.users,
@@ -2710,7 +2710,7 @@ const People = (props) => {
2710
2710
  ))))));
2711
2711
  };
2712
2712
  const DropzoneButton = (props) => {
2713
- const { classes, theme } = useStyles$9();
2713
+ const { classes, theme } = useStyles$b();
2714
2714
  const openRef = React__namespace.useRef(null);
2715
2715
  const [loading, setLoading] = React__namespace.useState(false);
2716
2716
  const onDrop = React__namespace.useCallback((acceptedFiles) => {
@@ -2756,7 +2756,7 @@ const DropzoneButton = (props) => {
2756
2756
  } }, "Select file"));
2757
2757
  };
2758
2758
 
2759
- const useStyles$8 = core.createStyles((theme) => ({
2759
+ const useStyles$a = core.createStyles((theme) => ({
2760
2760
  form: {
2761
2761
  backgroundColor: theme.white,
2762
2762
  padding: theme.spacing.xl,
@@ -2819,7 +2819,7 @@ const useStyles$8 = core.createStyles((theme) => ({
2819
2819
  }
2820
2820
  }));
2821
2821
  const StartAnonymousLesson = (props) => {
2822
- const { classes } = useStyles$8();
2822
+ const { classes } = useStyles$a();
2823
2823
  const [name, setName] = React__namespace.useState("");
2824
2824
  return /* @__PURE__ */ React__namespace.createElement("div", { className: classes.wrapper }, /* @__PURE__ */ React__namespace.createElement(core.Container, null, /* @__PURE__ */ React__namespace.createElement(core.SimpleGrid, { maw: 960, cols: 2, spacing: 15, breakpoints: [{ maxWidth: "sm", cols: 1 }] }, /* @__PURE__ */ React__namespace.createElement("div", { className: classes.content }, /* @__PURE__ */ React__namespace.createElement(core.Badge, { color: "violet" }, "Community"), /* @__PURE__ */ React__namespace.createElement(core.Title, { className: classes.title }, props.title), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", mt: "md" }, props.description), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", mt: "md" }, "You are now part of ", `${props.educatorName}'s`, " Class")), /* @__PURE__ */ React__namespace.createElement("div", { className: classes.form }, /* @__PURE__ */ React__namespace.createElement(
2825
2825
  core.TextInput,
@@ -2843,24 +2843,24 @@ const StartAnonymousLesson = (props) => {
2843
2843
  ))))));
2844
2844
  };
2845
2845
 
2846
- var __defProp$4 = Object.defineProperty;
2847
- var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
2848
- var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
2849
- var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
2850
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2851
- var __spreadValues$4 = (a, b) => {
2846
+ var __defProp$5 = Object.defineProperty;
2847
+ var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
2848
+ var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
2849
+ var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
2850
+ var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2851
+ var __spreadValues$5 = (a, b) => {
2852
2852
  for (var prop in b || (b = {}))
2853
- if (__hasOwnProp$4.call(b, prop))
2854
- __defNormalProp$4(a, prop, b[prop]);
2855
- if (__getOwnPropSymbols$4)
2856
- for (var prop of __getOwnPropSymbols$4(b)) {
2857
- if (__propIsEnum$4.call(b, prop))
2858
- __defNormalProp$4(a, prop, b[prop]);
2853
+ if (__hasOwnProp$5.call(b, prop))
2854
+ __defNormalProp$5(a, prop, b[prop]);
2855
+ if (__getOwnPropSymbols$5)
2856
+ for (var prop of __getOwnPropSymbols$5(b)) {
2857
+ if (__propIsEnum$5.call(b, prop))
2858
+ __defNormalProp$5(a, prop, b[prop]);
2859
2859
  }
2860
2860
  return a;
2861
2861
  };
2862
2862
  const BadgeGrid = (props) => {
2863
- const badges = props.badges.map((b) => /* @__PURE__ */ React__namespace.createElement(TaskCard, __spreadValues$4({ key: b.title }, b)));
2863
+ const badges = props.badges.map((b) => /* @__PURE__ */ React__namespace.createElement(TaskCard, __spreadValues$5({ key: b.title }, b)));
2864
2864
  return /* @__PURE__ */ React__namespace.createElement(core.SimpleGrid, { cols: 4, breakpoints: [{ maxWidth: "sm", cols: 1 }, { maxWidth: "md", cols: 3 }] }, badges);
2865
2865
  };
2866
2866
  function TaskCard(props) {
@@ -2876,7 +2876,7 @@ function TaskCard(props) {
2876
2876
  ));
2877
2877
  }
2878
2878
 
2879
- const useStyles$7 = core.createStyles((theme) => ({
2879
+ const useStyles$9 = core.createStyles((theme) => ({
2880
2880
  action: {
2881
2881
  backgroundColor: "inherit",
2882
2882
  ":hover": {
@@ -2895,7 +2895,7 @@ const useStyles$7 = core.createStyles((theme) => ({
2895
2895
  }
2896
2896
  }));
2897
2897
  const TrialHome = (props) => {
2898
- const { classes } = useStyles$7();
2898
+ const { classes } = useStyles$9();
2899
2899
  return /* @__PURE__ */ React__namespace.createElement(core.Container, { size: "lg" }, /* @__PURE__ */ React__namespace.createElement(core.Badge, null, props.daysRemaining, " day", props.daysRemaining !== 1 ? "s" : "", " left"), /* @__PURE__ */ React__namespace.createElement(
2900
2900
  core.Button,
2901
2901
  {
@@ -2924,38 +2924,38 @@ const TrialHome = (props) => {
2924
2924
  )), /* @__PURE__ */ React__namespace.createElement(core.Title, { maw: 500, mb: 20, mt: 20, className: classes.title }, "Based on the tags you selected, check out these lessons to get started with your students!"), /* @__PURE__ */ React__namespace.createElement(BadgeGrid, { onAssign: props.onAssign, badges: props.badges })));
2925
2925
  };
2926
2926
 
2927
- var __defProp$3 = Object.defineProperty;
2928
- var __defProps$3 = Object.defineProperties;
2929
- var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
2930
- var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
2931
- var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
2932
- var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
2933
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2934
- var __spreadValues$3 = (a, b) => {
2927
+ var __defProp$4 = Object.defineProperty;
2928
+ var __defProps$4 = Object.defineProperties;
2929
+ var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
2930
+ var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
2931
+ var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
2932
+ var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
2933
+ var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2934
+ var __spreadValues$4 = (a, b) => {
2935
2935
  for (var prop in b || (b = {}))
2936
- if (__hasOwnProp$3.call(b, prop))
2937
- __defNormalProp$3(a, prop, b[prop]);
2938
- if (__getOwnPropSymbols$3)
2939
- for (var prop of __getOwnPropSymbols$3(b)) {
2940
- if (__propIsEnum$3.call(b, prop))
2941
- __defNormalProp$3(a, prop, b[prop]);
2936
+ if (__hasOwnProp$4.call(b, prop))
2937
+ __defNormalProp$4(a, prop, b[prop]);
2938
+ if (__getOwnPropSymbols$4)
2939
+ for (var prop of __getOwnPropSymbols$4(b)) {
2940
+ if (__propIsEnum$4.call(b, prop))
2941
+ __defNormalProp$4(a, prop, b[prop]);
2942
2942
  }
2943
2943
  return a;
2944
2944
  };
2945
- var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
2945
+ var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
2946
2946
  var __objRest = (source, exclude) => {
2947
2947
  var target = {};
2948
2948
  for (var prop in source)
2949
- if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)
2949
+ if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)
2950
2950
  target[prop] = source[prop];
2951
- if (source != null && __getOwnPropSymbols$3)
2952
- for (var prop of __getOwnPropSymbols$3(source)) {
2953
- if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))
2951
+ if (source != null && __getOwnPropSymbols$4)
2952
+ for (var prop of __getOwnPropSymbols$4(source)) {
2953
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))
2954
2954
  target[prop] = source[prop];
2955
2955
  }
2956
2956
  return target;
2957
2957
  };
2958
- const useStyles$6 = core.createStyles((theme, { checked }) => ({
2958
+ const useStyles$8 = core.createStyles((theme, { checked }) => ({
2959
2959
  button: {
2960
2960
  display: "flex",
2961
2961
  alignItems: "center",
@@ -2997,10 +2997,10 @@ function ImageCheckbox(_a) {
2997
2997
  finalValue: false,
2998
2998
  onChange
2999
2999
  });
3000
- const { classes, cx } = useStyles$6({ checked: value });
3000
+ const { classes, cx } = useStyles$8({ checked: value });
3001
3001
  return /* @__PURE__ */ React__namespace.createElement(
3002
3002
  core.UnstyledButton,
3003
- __spreadProps$3(__spreadValues$3({}, others), {
3003
+ __spreadProps$4(__spreadValues$4({}, others), {
3004
3004
  onClick: () => handleChange(!value),
3005
3005
  className: cx(classes.button, className)
3006
3006
  }),
@@ -3021,7 +3021,7 @@ function ImageCheckbox(_a) {
3021
3021
  function SelectGrid(props) {
3022
3022
  const items = props.items.map((item) => /* @__PURE__ */ React__namespace.createElement(
3023
3023
  ImageCheckbox,
3024
- __spreadProps$3(__spreadValues$3({}, item), {
3024
+ __spreadProps$4(__spreadValues$4({}, item), {
3025
3025
  key: item.title,
3026
3026
  onChange: (checked) => props.onChange(item.title, checked)
3027
3027
  })
@@ -3039,26 +3039,26 @@ function SelectGrid(props) {
3039
3039
  );
3040
3040
  }
3041
3041
 
3042
- var __defProp$2 = Object.defineProperty;
3043
- var __defProps$2 = Object.defineProperties;
3044
- var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
3045
- var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
3046
- var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
3047
- var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
3048
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3049
- var __spreadValues$2 = (a, b) => {
3042
+ var __defProp$3 = Object.defineProperty;
3043
+ var __defProps$3 = Object.defineProperties;
3044
+ var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
3045
+ var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
3046
+ var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
3047
+ var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
3048
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3049
+ var __spreadValues$3 = (a, b) => {
3050
3050
  for (var prop in b || (b = {}))
3051
- if (__hasOwnProp$2.call(b, prop))
3052
- __defNormalProp$2(a, prop, b[prop]);
3053
- if (__getOwnPropSymbols$2)
3054
- for (var prop of __getOwnPropSymbols$2(b)) {
3055
- if (__propIsEnum$2.call(b, prop))
3056
- __defNormalProp$2(a, prop, b[prop]);
3051
+ if (__hasOwnProp$3.call(b, prop))
3052
+ __defNormalProp$3(a, prop, b[prop]);
3053
+ if (__getOwnPropSymbols$3)
3054
+ for (var prop of __getOwnPropSymbols$3(b)) {
3055
+ if (__propIsEnum$3.call(b, prop))
3056
+ __defNormalProp$3(a, prop, b[prop]);
3057
3057
  }
3058
3058
  return a;
3059
3059
  };
3060
- var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
3061
- const useStyles$5 = core.createStyles((theme) => ({
3060
+ var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
3061
+ const useStyles$7 = core.createStyles((theme) => ({
3062
3062
  wrapper: {
3063
3063
  minHeight: "100%",
3064
3064
  boxSizing: "border-box",
@@ -3121,7 +3121,7 @@ const OPTIONS = [
3121
3121
  { description: "project-based learning", title: "Project-Based Learning", icon: icons.IconTools }
3122
3122
  ];
3123
3123
  const TrialRegistration = (props) => {
3124
- const { classes } = useStyles$5();
3124
+ const { classes } = useStyles$7();
3125
3125
  const [firstName, setFirstName] = React__namespace.useState("");
3126
3126
  const [lastName, setLastName] = React__namespace.useState("");
3127
3127
  const [organization, setOrganization] = React__namespace.useState({ organizationId: "", displayName: "" });
@@ -3167,7 +3167,7 @@ const TrialRegistration = (props) => {
3167
3167
  label: "School/Organization Name",
3168
3168
  placeholder: "What's the name of your school?",
3169
3169
  data: props.organizations.map((o) => {
3170
- return __spreadProps$2(__spreadValues$2({}, o), { value: o.displayName });
3170
+ return __spreadProps$3(__spreadValues$3({}, o), { value: o.displayName });
3171
3171
  }),
3172
3172
  onItemSubmit: (item) => setOrganization({ organizationId: item.organizationId, displayName: item.displayName }),
3173
3173
  onChange: (next) => {
@@ -3179,7 +3179,7 @@ const TrialRegistration = (props) => {
3179
3179
  SelectGrid,
3180
3180
  {
3181
3181
  items: OPTIONS,
3182
- onChange: (e, checked) => setInterests(__spreadProps$2(__spreadValues$2({}, interests), { [e]: checked }))
3182
+ onChange: (e, checked) => setInterests(__spreadProps$3(__spreadValues$3({}, interests), { [e]: checked }))
3183
3183
  }
3184
3184
  ), /* @__PURE__ */ React__namespace.createElement(core.Group, { position: "right", mt: "md" }, /* @__PURE__ */ React__namespace.createElement(
3185
3185
  core.Button,
@@ -3217,26 +3217,26 @@ const AdminProvider = (props) => {
3217
3217
  );
3218
3218
  };
3219
3219
 
3220
- var __defProp$1 = Object.defineProperty;
3221
- var __defProps$1 = Object.defineProperties;
3222
- var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
3223
- var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
3224
- var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
3225
- var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
3226
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3227
- var __spreadValues$1 = (a, b) => {
3220
+ var __defProp$2 = Object.defineProperty;
3221
+ var __defProps$2 = Object.defineProperties;
3222
+ var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
3223
+ var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
3224
+ var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
3225
+ var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
3226
+ var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3227
+ var __spreadValues$2 = (a, b) => {
3228
3228
  for (var prop in b || (b = {}))
3229
- if (__hasOwnProp$1.call(b, prop))
3230
- __defNormalProp$1(a, prop, b[prop]);
3231
- if (__getOwnPropSymbols$1)
3232
- for (var prop of __getOwnPropSymbols$1(b)) {
3233
- if (__propIsEnum$1.call(b, prop))
3234
- __defNormalProp$1(a, prop, b[prop]);
3229
+ if (__hasOwnProp$2.call(b, prop))
3230
+ __defNormalProp$2(a, prop, b[prop]);
3231
+ if (__getOwnPropSymbols$2)
3232
+ for (var prop of __getOwnPropSymbols$2(b)) {
3233
+ if (__propIsEnum$2.call(b, prop))
3234
+ __defNormalProp$2(a, prop, b[prop]);
3235
3235
  }
3236
3236
  return a;
3237
3237
  };
3238
- var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
3239
- const useStyles$4 = core.createStyles((theme, props) => ({
3238
+ var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
3239
+ const useStyles$6 = core.createStyles((theme, props) => ({
3240
3240
  footer: {
3241
3241
  paddingTop: theme.spacing.md,
3242
3242
  paddingBottom: theme.spacing.md,
@@ -3323,7 +3323,7 @@ const useStyles$4 = core.createStyles((theme, props) => ({
3323
3323
  }
3324
3324
  }));
3325
3325
  const App = (props) => {
3326
- const { classes } = useStyles$4(props);
3326
+ const { classes } = useStyles$6(props);
3327
3327
  const account = useAccount(props.account, props.accounts, props.onAccountChange);
3328
3328
  return /* @__PURE__ */ React__namespace.createElement(
3329
3329
  core.AppShell,
@@ -3331,7 +3331,7 @@ const App = (props) => {
3331
3331
  padding: "xs",
3332
3332
  navbar: props.navbar && /* @__PURE__ */ React__namespace.createElement(
3333
3333
  Navbar,
3334
- __spreadProps$1(__spreadValues$1({}, props.navbar.props), {
3334
+ __spreadProps$2(__spreadValues$2({}, props.navbar.props), {
3335
3335
  onSwitchAccounts: account.accounts && account.accounts.length > 1 ? () => account.setChangeModalOpen(true) : void 0
3336
3336
  })
3337
3337
  ),
@@ -3418,7 +3418,7 @@ const useAccount = (account, accounts, onAccountChange) => {
3418
3418
  };
3419
3419
  };
3420
3420
 
3421
- function Table$2(props) {
3421
+ function Table$3(props) {
3422
3422
  if (props.items.length === 0) {
3423
3423
  return /* @__PURE__ */ React__namespace.createElement(
3424
3424
  PlaceholderBanner,
@@ -3450,7 +3450,7 @@ function Table$2(props) {
3450
3450
  return /* @__PURE__ */ React__namespace.createElement(core.ScrollArea.Autosize, { maxHeight: 600 }, /* @__PURE__ */ React__namespace.createElement(core.Table, { horizontalSpacing: 0, verticalSpacing: 0, sx: { minWidth: 700 } }, /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
3451
3451
  }
3452
3452
 
3453
- const useStyles$3 = core.createStyles((theme) => ({
3453
+ const useStyles$5 = core.createStyles((theme) => ({
3454
3454
  title: {
3455
3455
  fontSize: 34,
3456
3456
  fontWeight: 900,
@@ -3463,9 +3463,9 @@ const useStyles$3 = core.createStyles((theme) => ({
3463
3463
  }
3464
3464
  }));
3465
3465
  const Pathways = (props) => {
3466
- const { classes } = useStyles$3();
3466
+ const { classes } = useStyles$5();
3467
3467
  return /* @__PURE__ */ React__namespace.createElement(core.Container, { size: "lg", py: "xl" }, /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(core.Grid, null, /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { sm: "auto" }, /* @__PURE__ */ React__namespace.createElement(core.Badge, { variant: "filled", size: "lg" }, "Pathways"), /* @__PURE__ */ React__namespace.createElement(core.Title, { order: 2, className: classes.title, mt: "md" }, "Pathways"), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", className: classes.description, mt: "sm" }, "Explore all your unique pathway requirements in one clear space"))), /* @__PURE__ */ React__namespace.createElement("div", { style: { position: "relative" } }, /* @__PURE__ */ React__namespace.createElement(core.LoadingOverlay, { visible: props.loading, overlayBlur: 2 }), /* @__PURE__ */ React__namespace.createElement(
3468
- Table$2,
3468
+ Table$3,
3469
3469
  {
3470
3470
  loading: props.loading,
3471
3471
  items: props.pathways
@@ -3473,7 +3473,7 @@ const Pathways = (props) => {
3473
3473
  ))));
3474
3474
  };
3475
3475
 
3476
- const useStyles$2 = core.createStyles((theme) => ({
3476
+ const useStyles$4 = core.createStyles((theme) => ({
3477
3477
  button: {
3478
3478
  borderTopRightRadius: 0,
3479
3479
  borderBottomRightRadius: 0,
@@ -3487,8 +3487,8 @@ const useStyles$2 = core.createStyles((theme) => ({
3487
3487
  borderLeft: `1px solid ${theme.colorScheme === "dark" ? theme.colors.dark[7] : theme.white}`
3488
3488
  }
3489
3489
  }));
3490
- const SplitButton = (props) => {
3491
- const { classes, theme } = useStyles$2();
3490
+ const SplitButton$1 = (props) => {
3491
+ const { classes, theme } = useStyles$4();
3492
3492
  theme.colors[theme.primaryColor][theme.colorScheme === "dark" ? 5 : 6];
3493
3493
  return /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "sm" }, /* @__PURE__ */ React__namespace.createElement(
3494
3494
  core.Button,
@@ -3516,7 +3516,7 @@ const SplitButton = (props) => {
3516
3516
  ));
3517
3517
  };
3518
3518
 
3519
- function Stack(props) {
3519
+ function Stack$1(props) {
3520
3520
  if (props.items.length === 0) {
3521
3521
  return null;
3522
3522
  }
@@ -3524,29 +3524,29 @@ function Stack(props) {
3524
3524
  return /* @__PURE__ */ React__namespace.createElement(core.Grid, { grow: true, gutter: "lg", sx: { padding: 20, minWidth: 700 } }, rows);
3525
3525
  }
3526
3526
 
3527
- var __defProp = Object.defineProperty;
3528
- var __defProps = Object.defineProperties;
3529
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
3530
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3531
- var __hasOwnProp = Object.prototype.hasOwnProperty;
3532
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
3533
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3534
- var __spreadValues = (a, b) => {
3527
+ var __defProp$1 = Object.defineProperty;
3528
+ var __defProps$1 = Object.defineProperties;
3529
+ var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
3530
+ var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
3531
+ var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
3532
+ var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
3533
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3534
+ var __spreadValues$1 = (a, b) => {
3535
3535
  for (var prop in b || (b = {}))
3536
- if (__hasOwnProp.call(b, prop))
3537
- __defNormalProp(a, prop, b[prop]);
3538
- if (__getOwnPropSymbols)
3539
- for (var prop of __getOwnPropSymbols(b)) {
3540
- if (__propIsEnum.call(b, prop))
3541
- __defNormalProp(a, prop, b[prop]);
3536
+ if (__hasOwnProp$1.call(b, prop))
3537
+ __defNormalProp$1(a, prop, b[prop]);
3538
+ if (__getOwnPropSymbols$1)
3539
+ for (var prop of __getOwnPropSymbols$1(b)) {
3540
+ if (__propIsEnum$1.call(b, prop))
3541
+ __defNormalProp$1(a, prop, b[prop]);
3542
3542
  }
3543
3543
  return a;
3544
3544
  };
3545
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3546
- function Table$1(props) {
3545
+ var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
3546
+ function Table$2(props) {
3547
3547
  const preparedItems = React__namespace.useMemo(() => {
3548
3548
  return props.items.map((item) => {
3549
- const flatItem = __spreadProps(__spreadValues({}, item), {
3549
+ const flatItem = __spreadProps$1(__spreadValues$1({}, item), {
3550
3550
  status: item.isComplete ? 1 : 0
3551
3551
  });
3552
3552
  if (item.categoryPoints) {
@@ -3614,13 +3614,13 @@ function Table$1(props) {
3614
3614
  }))
3615
3615
  ],
3616
3616
  rowExpansion: {
3617
- content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack, { items: record.badges })
3617
+ content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack$1, { items: record.badges })
3618
3618
  }
3619
3619
  }
3620
3620
  ));
3621
3621
  }
3622
3622
 
3623
- const useStyles$1 = core.createStyles((theme) => ({
3623
+ const useStyles$3 = core.createStyles((theme) => ({
3624
3624
  th: { padding: "0 !important" },
3625
3625
  control: {
3626
3626
  width: "100%",
@@ -3631,11 +3631,11 @@ const useStyles$1 = core.createStyles((theme) => ({
3631
3631
  }
3632
3632
  }));
3633
3633
  function Th({ children, reversed, sorted, onSort }) {
3634
- const { classes } = useStyles$1();
3634
+ const { classes } = useStyles$3();
3635
3635
  const Icon = sorted ? reversed ? icons.IconChevronUp : icons.IconChevronDown : icons.IconSelector;
3636
3636
  return /* @__PURE__ */ React__namespace.createElement("th", { className: classes.th }, /* @__PURE__ */ React__namespace.createElement(core.UnstyledButton, { onClick: onSort, className: classes.control }, /* @__PURE__ */ React__namespace.createElement(core.Group, { position: "apart", noWrap: true, spacing: "xs" }, /* @__PURE__ */ React__namespace.createElement(core.Text, { weight: 500, size: "sm", sx: { whiteSpace: "nowrap" } }, children), /* @__PURE__ */ React__namespace.createElement(core.Center, null, /* @__PURE__ */ React__namespace.createElement(Icon, { size: 14, stroke: 1.5 })))));
3637
3637
  }
3638
- function Table(props) {
3638
+ function Table$1(props) {
3639
3639
  const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
3640
3640
  if (props.items.length === 0) {
3641
3641
  return /* @__PURE__ */ React__namespace.createElement(
@@ -3671,7 +3671,7 @@ function Table(props) {
3671
3671
  ))), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
3672
3672
  }
3673
3673
 
3674
- const useStyles = core.createStyles((theme) => ({
3674
+ const useStyles$2 = core.createStyles((theme) => ({
3675
3675
  title: {
3676
3676
  fontSize: 34,
3677
3677
  fontWeight: 900,
@@ -3684,7 +3684,7 @@ const useStyles = core.createStyles((theme) => ({
3684
3684
  }
3685
3685
  }));
3686
3686
  const Pathway = (props) => {
3687
- const { classes } = useStyles();
3687
+ const { classes } = useStyles$2();
3688
3688
  const [tab, setTab] = React.useState("badges");
3689
3689
  const numberOfStudents = props.students.length;
3690
3690
  numberOfStudents > 0 ? props.students.filter((u) => u.isComplete).length / numberOfStudents : 0;
@@ -3698,7 +3698,7 @@ const Pathway = (props) => {
3698
3698
  },
3699
3699
  "Back"
3700
3700
  )), /* @__PURE__ */ React__namespace.createElement(core.Group, null, /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: 0 }, /* @__PURE__ */ React__namespace.createElement(core.Title, { order: 2, className: classes.title, mt: "md" }, props.title || "Pathway"), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", className: classes.description, mt: "sm" }, props.description || "No description")), !props.trial && /* @__PURE__ */ React__namespace.createElement(core.Stack, { ml: "auto" }, /* @__PURE__ */ React__namespace.createElement(
3701
- SplitButton,
3701
+ SplitButton$1,
3702
3702
  {
3703
3703
  href: props.href,
3704
3704
  onCopyLinkClick: props.onCopyLinkClick,
@@ -3736,13 +3736,13 @@ const Pathway = (props) => {
3736
3736
  onChange: setTab
3737
3737
  }
3738
3738
  ), (!!props.trial || tab === "badges") && /* @__PURE__ */ React__namespace.createElement(
3739
- Table,
3739
+ Table$1,
3740
3740
  {
3741
3741
  loading: props.loading,
3742
3742
  items: props.badges
3743
3743
  }
3744
3744
  ), !props.trial && tab === "students" && /* @__PURE__ */ React__namespace.createElement(
3745
- Table$1,
3745
+ Table$2,
3746
3746
  {
3747
3747
  loading: props.loading,
3748
3748
  items: props.students,
@@ -3751,6 +3751,222 @@ const Pathway = (props) => {
3751
3751
  )))))));
3752
3752
  };
3753
3753
 
3754
+ const useStyles$1 = core.createStyles((theme) => ({
3755
+ button: {
3756
+ borderTopRightRadius: 0,
3757
+ borderBottomRightRadius: 0,
3758
+ marginLeft: 0,
3759
+ marginRight: 0
3760
+ },
3761
+ menuControl: {
3762
+ borderTopLeftRadius: 0,
3763
+ borderBottomLeftRadius: 0,
3764
+ border: 0,
3765
+ borderLeft: `1px solid ${theme.colorScheme === "dark" ? theme.colors.dark[7] : theme.white}`
3766
+ }
3767
+ }));
3768
+ const SplitButton = (props) => {
3769
+ const { classes, theme } = useStyles$1();
3770
+ theme.colors[theme.primaryColor][theme.colorScheme === "dark" ? 5 : 6];
3771
+ return /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "sm" }, /* @__PURE__ */ React__namespace.createElement(
3772
+ core.Button,
3773
+ {
3774
+ component: reactRouterDom.Link,
3775
+ to: props.href,
3776
+ className: classes.button,
3777
+ variant: "gradient"
3778
+ },
3779
+ "Preview"
3780
+ ), /* @__PURE__ */ React__namespace.createElement(
3781
+ core.Button,
3782
+ {
3783
+ leftIcon: /* @__PURE__ */ React__namespace.createElement(icons.IconClipboardCopy, { size: 14 }),
3784
+ onClick: props.onCopyLinkClick
3785
+ },
3786
+ "Copy link"
3787
+ ), /* @__PURE__ */ React__namespace.createElement(
3788
+ core.Button,
3789
+ {
3790
+ leftIcon: /* @__PURE__ */ React__namespace.createElement(icons.IconTableExport, { size: 14 }),
3791
+ onClick: props.onExportDataClick
3792
+ },
3793
+ "Export data (.csv)"
3794
+ ));
3795
+ };
3796
+
3797
+ function Stack(props) {
3798
+ if (!props.items.length)
3799
+ return null;
3800
+ return /* @__PURE__ */ React__namespace.createElement(core.Grid, { gutter: "md", sx: { padding: 20, minWidth: 700 } }, /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 3 }, /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dark.4", weight: "bold", size: "md" }, "Link")), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 3 }, /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dark.4", weight: "bold", size: "md" }, "Badge")), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 3 }, /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dark.4", weight: "bold", size: "md" }, "Lesson")), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 3 }, /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dark.4", weight: "bold", size: "md" }, "Question")), props.items.map((row, i) => /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, { key: i }, /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 3 }, /* @__PURE__ */ React__namespace.createElement(
3801
+ core.Button,
3802
+ {
3803
+ component: "a",
3804
+ href: row.link,
3805
+ target: "_blank",
3806
+ rel: "noopener noreferrer",
3807
+ size: "xs",
3808
+ variant: "light"
3809
+ },
3810
+ "View File"
3811
+ )), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 3 }, /* @__PURE__ */ React__namespace.createElement(core.Text, null, row.badgeName)), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 3 }, /* @__PURE__ */ React__namespace.createElement(core.Text, null, row.lessonName)), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 3 }, /* @__PURE__ */ React__namespace.createElement(core.Text, null, row.question)))));
3812
+ }
3813
+
3814
+ var __defProp = Object.defineProperty;
3815
+ var __defProps = Object.defineProperties;
3816
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
3817
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3818
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
3819
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
3820
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3821
+ var __spreadValues = (a, b) => {
3822
+ for (var prop in b || (b = {}))
3823
+ if (__hasOwnProp.call(b, prop))
3824
+ __defNormalProp(a, prop, b[prop]);
3825
+ if (__getOwnPropSymbols)
3826
+ for (var prop of __getOwnPropSymbols(b)) {
3827
+ if (__propIsEnum.call(b, prop))
3828
+ __defNormalProp(a, prop, b[prop]);
3829
+ }
3830
+ return a;
3831
+ };
3832
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3833
+ function Table(props) {
3834
+ const preparedItems = React__namespace.useMemo(() => {
3835
+ return props.items.map((item) => {
3836
+ var _a;
3837
+ return __spreadProps(__spreadValues({}, item), {
3838
+ submissionCount: ((_a = item.submissions) == null ? void 0 : _a.length) || 0
3839
+ });
3840
+ });
3841
+ }, [props.items]);
3842
+ const { items: sortedItems, requestSort, sortConfig } = useSortableData(preparedItems);
3843
+ if (props.items.length === 0) {
3844
+ return /* @__PURE__ */ React__namespace.createElement(
3845
+ PlaceholderBanner,
3846
+ {
3847
+ title: "No files to display",
3848
+ description: "There are no submitted files to display yet.",
3849
+ loading: props.loading,
3850
+ icon: "badges"
3851
+ }
3852
+ );
3853
+ }
3854
+ const sortStatus = {
3855
+ columnAccessor: sortConfig.key,
3856
+ direction: sortConfig.direction === "desc" ? "desc" : "asc"
3857
+ };
3858
+ return /* @__PURE__ */ React__namespace.createElement(core.ScrollArea.Autosize, { maxHeight: 600 }, /* @__PURE__ */ React__namespace.createElement(
3859
+ mantineDatatable.DataTable,
3860
+ {
3861
+ verticalSpacing: "sm",
3862
+ sx: { minWidth: 700 },
3863
+ withBorder: false,
3864
+ borderRadius: "sm",
3865
+ withColumnBorders: true,
3866
+ striped: true,
3867
+ highlightOnHover: true,
3868
+ records: sortedItems,
3869
+ sortStatus,
3870
+ onSortStatusChange: (status) => requestSort(status.columnAccessor),
3871
+ idAccessor: "userId",
3872
+ columns: [{
3873
+ accessor: "name",
3874
+ title: "Student Name",
3875
+ sortable: true,
3876
+ render: (row) => /* @__PURE__ */ React__namespace.createElement(core.Group, { spacing: "sm" }, /* @__PURE__ */ React__namespace.createElement(core.Avatar, { size: 40, src: row.avatar, radius: 40 }), /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement(core.Text, { size: "sm", weight: 500 }, row.name), /* @__PURE__ */ React__namespace.createElement(core.Text, { size: "xs", color: "dimmed" }, row.email)))
3877
+ }, {
3878
+ accessor: "submissionCount",
3879
+ title: "Files",
3880
+ sortable: true,
3881
+ render: (row) => row.submissions.length
3882
+ }],
3883
+ rowExpansion: {
3884
+ content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack, { items: record.submissions })
3885
+ }
3886
+ }
3887
+ ));
3888
+ }
3889
+
3890
+ const useStyles = core.createStyles((theme) => ({
3891
+ title: {
3892
+ fontSize: 34,
3893
+ fontWeight: 900,
3894
+ [theme.fn.smallerThan("sm")]: {
3895
+ fontSize: 24
3896
+ }
3897
+ },
3898
+ description: {
3899
+ maxWidth: 600
3900
+ }
3901
+ }));
3902
+ const FileLocker = (props) => {
3903
+ const { classes } = useStyles();
3904
+ const [tab, setTab] = React.useState("students");
3905
+ props.students.length;
3906
+ const numberOfFiles = props.students.reduce(
3907
+ (acc, s) => {
3908
+ var _a;
3909
+ return acc + (((_a = s.submissions) == null ? void 0 : _a.length) || 0);
3910
+ },
3911
+ 0
3912
+ );
3913
+ return /* @__PURE__ */ React__namespace.createElement(core.Container, { size: "lg", py: "xl" }, /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(core.Grid, null, /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { sm: "auto" }, /* @__PURE__ */ React__namespace.createElement(core.UnstyledButton, { onClick: props.onBackClick }, /* @__PURE__ */ React__namespace.createElement(
3914
+ core.Badge,
3915
+ {
3916
+ variant: "filled",
3917
+ leftSection: /* @__PURE__ */ React__namespace.createElement(core.ActionIcon, { color: "blue", size: "xs", radius: "xl", variant: "filled" }, /* @__PURE__ */ React__namespace.createElement(icons.IconArrowLeft, { size: 14 })),
3918
+ size: "lg"
3919
+ },
3920
+ "Back"
3921
+ )), /* @__PURE__ */ React__namespace.createElement(core.Group, null, /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: 0 }, /* @__PURE__ */ React__namespace.createElement(core.Title, { order: 2, className: classes.title, mt: "md" }, props.displayName || "File"), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", className: classes.description, mt: "sm" }, props.description || "No description")), !props.trial && /* @__PURE__ */ React__namespace.createElement(core.Stack, { ml: "auto" }, /* @__PURE__ */ React__namespace.createElement(
3922
+ SplitButton,
3923
+ {
3924
+ href: props.href,
3925
+ onCopyLinkClick: props.onCopyLinkClick,
3926
+ onExportDataClick: props.onExportDataClick
3927
+ }
3928
+ ))))), /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("div", { style: { position: "relative" } }, /* @__PURE__ */ React__namespace.createElement(core.LoadingOverlay, { visible: props.loading, overlayBlur: 2 }), /* @__PURE__ */ React__namespace.createElement(core.Stack, null, /* @__PURE__ */ React__namespace.createElement(StatsGroup, { data: [
3929
+ {
3930
+ title: props.trial ? "LESSONS SUBMITTED" : "FILES",
3931
+ value: props.trial ? props.lessonsCompleted || 0 : numberOfFiles,
3932
+ unit: props.trial ? "" : ""
3933
+ }
3934
+ ] }), !props.trial && /* @__PURE__ */ React__namespace.createElement(
3935
+ core.Select,
3936
+ {
3937
+ clearable: true,
3938
+ clearButtonLabel: "Clear class selection",
3939
+ size: "sm",
3940
+ placeholder: "Select a class",
3941
+ nothingFound: "No options",
3942
+ value: props.classId,
3943
+ onChange: props.onClassChange,
3944
+ icon: /* @__PURE__ */ React__namespace.createElement(icons.IconCategory2, null),
3945
+ data: props.classes.map((g) => {
3946
+ return { value: g.classId, label: g.name };
3947
+ })
3948
+ }
3949
+ ), /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: 0 }, !props.trial && /* @__PURE__ */ React__namespace.createElement(
3950
+ Tabs,
3951
+ {
3952
+ value: tab,
3953
+ data: [
3954
+ { label: "By student", value: "students" },
3955
+ { label: "By pathway", value: "pathways" },
3956
+ { label: "By badge", value: "badges" },
3957
+ { label: "By lesson", value: "lessons" }
3958
+ ],
3959
+ onChange: setTab
3960
+ }
3961
+ ), !props.trial && tab === "students" && /* @__PURE__ */ React__namespace.createElement(
3962
+ Table,
3963
+ {
3964
+ loading: props.loading,
3965
+ items: props.students
3966
+ }
3967
+ )))))));
3968
+ };
3969
+
3754
3970
  Object.defineProperty(exports, 'showNotification', {
3755
3971
  enumerable: true,
3756
3972
  get: function () { return notifications.showNotification; }
@@ -3766,6 +3982,7 @@ exports.Badges = Badges;
3766
3982
  exports.Class = Class;
3767
3983
  exports.Classes = Classes;
3768
3984
  exports.Dashboard = Dashboard;
3985
+ exports.FileLocker = FileLocker;
3769
3986
  exports.GettingStarted = GettingStarted;
3770
3987
  exports.Home = Home;
3771
3988
  exports.Lesson = Lesson;