@local-civics/mgmt-ui 0.1.73 → 0.1.74

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
@@ -11,6 +11,8 @@ var form = require('@mantine/form');
11
11
  var papa = require('papaparse');
12
12
  var modals = require('@mantine/modals');
13
13
  var reactCharts = require('react-charts');
14
+ var AvatarInit = require('avatar-initials');
15
+ var hooks = require('@mantine/hooks');
14
16
 
15
17
  function _interopNamespaceDefault(e) {
16
18
  var n = Object.create(null);
@@ -32,7 +34,7 @@ function _interopNamespaceDefault(e) {
32
34
  var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
33
35
  var papa__namespace = /*#__PURE__*/_interopNamespaceDefault(papa);
34
36
 
35
- const useStyles$m = core.createStyles((theme) => ({
37
+ const useStyles$p = core.createStyles((theme) => ({
36
38
  link: {
37
39
  width: 50,
38
40
  height: 50,
@@ -60,7 +62,7 @@ const data$1 = [
60
62
  { icon: icons.IconLambda, label: "Lessons", href: "/lessons" }
61
63
  ];
62
64
  const NavbarLink = ({ icon: Icon, label, active, onClick }) => {
63
- const { classes, cx } = useStyles$m();
65
+ const { classes, cx } = useStyles$p();
64
66
  return /* @__PURE__ */ React__namespace.createElement(core.Tooltip, { label, position: "right", transitionDuration: 0 }, /* @__PURE__ */ React__namespace.createElement(core.UnstyledButton, { onClick, className: cx(classes.link, { [classes.active]: active }) }, /* @__PURE__ */ React__namespace.createElement(Icon, { stroke: 1.5 })));
65
67
  };
66
68
  const Navbar = (props) => {
@@ -91,35 +93,35 @@ const Navbar = (props) => {
91
93
  ))));
92
94
  };
93
95
 
94
- var __defProp$6 = Object.defineProperty;
95
- var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
96
- var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
97
- var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
98
- var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
99
- var __spreadValues$6 = (a, b) => {
96
+ var __defProp$9 = Object.defineProperty;
97
+ var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
98
+ var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
99
+ var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
100
+ var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
101
+ var __spreadValues$9 = (a, b) => {
100
102
  for (var prop in b || (b = {}))
101
- if (__hasOwnProp$6.call(b, prop))
102
- __defNormalProp$6(a, prop, b[prop]);
103
- if (__getOwnPropSymbols$6)
104
- for (var prop of __getOwnPropSymbols$6(b)) {
105
- if (__propIsEnum$6.call(b, prop))
106
- __defNormalProp$6(a, prop, b[prop]);
103
+ if (__hasOwnProp$9.call(b, prop))
104
+ __defNormalProp$9(a, prop, b[prop]);
105
+ if (__getOwnPropSymbols$9)
106
+ for (var prop of __getOwnPropSymbols$9(b)) {
107
+ if (__propIsEnum$9.call(b, prop))
108
+ __defNormalProp$9(a, prop, b[prop]);
107
109
  }
108
110
  return a;
109
111
  };
110
- var __objRest$1 = (source, exclude) => {
112
+ var __objRest$2 = (source, exclude) => {
111
113
  var target = {};
112
114
  for (var prop in source)
113
- if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)
115
+ if (__hasOwnProp$9.call(source, prop) && exclude.indexOf(prop) < 0)
114
116
  target[prop] = source[prop];
115
- if (source != null && __getOwnPropSymbols$6)
116
- for (var prop of __getOwnPropSymbols$6(source)) {
117
- if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))
117
+ if (source != null && __getOwnPropSymbols$9)
118
+ for (var prop of __getOwnPropSymbols$9(source)) {
119
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$9.call(source, prop))
118
120
  target[prop] = source[prop];
119
121
  }
120
122
  return target;
121
123
  };
122
- const useStyles$l = core.createStyles((theme) => ({
124
+ const useStyles$o = core.createStyles((theme) => ({
123
125
  user: {
124
126
  display: "block",
125
127
  width: "100%",
@@ -129,9 +131,9 @@ const useStyles$l = core.createStyles((theme) => ({
129
131
  }
130
132
  }));
131
133
  function UserButton(_a) {
132
- var _b = _a, { image, name, email, icon } = _b, others = __objRest$1(_b, ["image", "name", "email", "icon"]);
133
- const { classes } = useStyles$l();
134
- return /* @__PURE__ */ React__namespace.createElement(core.Group, __spreadValues$6({ 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)));
134
+ var _b = _a, { image, name, email, icon } = _b, others = __objRest$2(_b, ["image", "name", "email", "icon"]);
135
+ const { classes } = useStyles$o();
136
+ return /* @__PURE__ */ React__namespace.createElement(core.Group, __spreadValues$9({ 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)));
135
137
  }
136
138
 
137
139
  const compact = (num) => {
@@ -141,7 +143,7 @@ const compact = (num) => {
141
143
  }).format(num || 0);
142
144
  };
143
145
 
144
- const useStyles$k = core.createStyles((theme, _params, getRef) => {
146
+ const useStyles$n = core.createStyles((theme, _params, getRef) => {
145
147
  const icon = getRef("icon");
146
148
  return {
147
149
  control: {
@@ -194,7 +196,7 @@ const useStyles$k = core.createStyles((theme, _params, getRef) => {
194
196
  };
195
197
  });
196
198
  function LinksGroup({ icon: Icon, href, label, initiallyOpened, links, active, notifications }) {
197
- const { classes, theme, cx } = useStyles$k();
199
+ const { classes, theme, cx } = useStyles$n();
198
200
  const hasLinks = Array.isArray(links) && links.length > 0;
199
201
  const hasActiveLinks = Array.isArray(links) && links.map((l) => !!active && active === `${label}/${l.label}`).reduce((a, b) => a || b, false);
200
202
  const [opened, setOpened] = React.useState(initiallyOpened || hasActiveLinks || false);
@@ -239,26 +241,26 @@ function LinksGroup({ icon: Icon, href, label, initiallyOpened, links, active, n
239
241
  ), hasLinks ? /* @__PURE__ */ React__namespace.createElement(core.Collapse, { in: opened }, items) : null);
240
242
  }
241
243
 
242
- var __defProp$5 = Object.defineProperty;
243
- var __defProps$3 = Object.defineProperties;
244
- var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
245
- var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
246
- var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
247
- var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
248
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
249
- var __spreadValues$5 = (a, b) => {
244
+ var __defProp$8 = Object.defineProperty;
245
+ var __defProps$5 = Object.defineProperties;
246
+ var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
247
+ var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
248
+ var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
249
+ var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
250
+ var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
251
+ var __spreadValues$8 = (a, b) => {
250
252
  for (var prop in b || (b = {}))
251
- if (__hasOwnProp$5.call(b, prop))
252
- __defNormalProp$5(a, prop, b[prop]);
253
- if (__getOwnPropSymbols$5)
254
- for (var prop of __getOwnPropSymbols$5(b)) {
255
- if (__propIsEnum$5.call(b, prop))
256
- __defNormalProp$5(a, prop, b[prop]);
253
+ if (__hasOwnProp$8.call(b, prop))
254
+ __defNormalProp$8(a, prop, b[prop]);
255
+ if (__getOwnPropSymbols$8)
256
+ for (var prop of __getOwnPropSymbols$8(b)) {
257
+ if (__propIsEnum$8.call(b, prop))
258
+ __defNormalProp$8(a, prop, b[prop]);
257
259
  }
258
260
  return a;
259
261
  };
260
- var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
261
- const useStyles$j = core.createStyles((theme, _params, getRef) => {
262
+ var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
263
+ const useStyles$m = core.createStyles((theme, _params, getRef) => {
262
264
  const icon = getRef("icon");
263
265
  return {
264
266
  navbar: {
@@ -289,7 +291,7 @@ const useStyles$j = core.createStyles((theme, _params, getRef) => {
289
291
  color: theme.colorScheme === "dark" ? theme.white : theme.black,
290
292
  borderBottom: `1px solid ${theme.colorScheme === "dark" ? theme.colors.dark[4] : theme.colors.gray[3]}`
291
293
  },
292
- link: __spreadProps$3(__spreadValues$5({}, theme.fn.focusStyles()), {
294
+ link: __spreadProps$5(__spreadValues$8({}, theme.fn.focusStyles()), {
293
295
  display: "flex",
294
296
  alignItems: "center",
295
297
  textDecoration: "none",
@@ -352,7 +354,7 @@ const data = [
352
354
  }
353
355
  ];
354
356
  function NestedNavbar(props) {
355
- const { classes, cx } = useStyles$j();
357
+ const { classes, cx } = useStyles$m();
356
358
  const [burgerOpen, setBurgerOpen] = React__namespace.useState(false);
357
359
  const toggle = () => setBurgerOpen(!burgerOpen);
358
360
  const links = data.map((item) => {
@@ -362,12 +364,12 @@ function NestedNavbar(props) {
362
364
  }
363
365
  return /* @__PURE__ */ React__namespace.createElement(
364
366
  LinksGroup,
365
- __spreadProps$3(__spreadValues$5(__spreadValues$5({
367
+ __spreadProps$5(__spreadValues$8(__spreadValues$8({
366
368
  key: item.label,
367
369
  active: props.active
368
370
  }, item), context), {
369
371
  links: (item.links || []).map((link) => {
370
- return __spreadValues$5(__spreadValues$5({}, link), props.links[`${item.label}/${link.label}`] || { notifications: 0, href: "" });
372
+ return __spreadValues$8(__spreadValues$8({}, link), props.links[`${item.label}/${link.label}`] || { notifications: 0, href: "" });
371
373
  })
372
374
  })
373
375
  );
@@ -389,7 +391,7 @@ function NestedNavbar(props) {
389
391
  } }, /* @__PURE__ */ React__namespace.createElement(icons.IconLogout, { className: classes.linkIcon, stroke: 1.5 }), /* @__PURE__ */ React__namespace.createElement("span", null, "Logout"))))));
390
392
  }
391
393
 
392
- const useStyles$i = core.createStyles((theme) => ({
394
+ const useStyles$l = core.createStyles((theme) => ({
393
395
  title: {
394
396
  fontSize: 34,
395
397
  fontWeight: 900,
@@ -430,7 +432,7 @@ const useStyles$i = core.createStyles((theme) => ({
430
432
  }
431
433
  }));
432
434
  const SwitchAccount = (props) => {
433
- const { classes, theme } = useStyles$i();
435
+ const { classes, theme } = useStyles$l();
434
436
  const options = props.accounts.map((a) => {
435
437
  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")));
436
438
  });
@@ -447,7 +449,7 @@ const SwitchAccount = (props) => {
447
449
  );
448
450
  };
449
451
 
450
- const useStyles$h = core.createStyles((theme) => ({
452
+ const useStyles$k = core.createStyles((theme) => ({
451
453
  root: {
452
454
  display: "flex",
453
455
  backgroundImage: `linear-gradient(-60deg, ${theme.colors[theme.primaryColor][4]} 0%, ${theme.colors[theme.primaryColor][7]} 100%)`,
@@ -494,7 +496,7 @@ const useStyles$h = core.createStyles((theme) => ({
494
496
  }
495
497
  }));
496
498
  const StatsGroup = ({ data }) => {
497
- const { classes } = useStyles$h();
499
+ const { classes } = useStyles$k();
498
500
  const stats = data.map((stat) => {
499
501
  const value = (() => {
500
502
  if (stat.unit === "%") {
@@ -513,7 +515,7 @@ const Tabs = (props) => {
513
515
  return /* @__PURE__ */ React__namespace.createElement(core.Tabs, { value: props.value, onTabChange: props.onChange }, /* @__PURE__ */ React__namespace.createElement(core.Tabs.List, null, tabs));
514
516
  };
515
517
 
516
- const useStyles$g = core.createStyles((theme) => ({
518
+ const useStyles$j = core.createStyles((theme) => ({
517
519
  button: {
518
520
  borderTopRightRadius: 0,
519
521
  borderBottomRightRadius: 0,
@@ -528,7 +530,7 @@ const useStyles$g = core.createStyles((theme) => ({
528
530
  }
529
531
  }));
530
532
  const SplitButton$3 = (props) => {
531
- const { classes, theme } = useStyles$g();
533
+ const { classes, theme } = useStyles$j();
532
534
  const menuIconColor = theme.colors[theme.primaryColor][theme.colorScheme === "dark" ? 5 : 6];
533
535
  return /* @__PURE__ */ React__namespace.createElement(core.Group, { noWrap: true, spacing: 0 }, /* @__PURE__ */ React__namespace.createElement(
534
536
  core.Button,
@@ -565,7 +567,7 @@ const SplitButton$3 = (props) => {
565
567
  ))));
566
568
  };
567
569
 
568
- const useStyles$f = core.createStyles((theme) => ({
570
+ const useStyles$i = core.createStyles((theme) => ({
569
571
  wrapper: {
570
572
  display: "flex",
571
573
  alignItems: "center",
@@ -616,7 +618,7 @@ const useStyles$f = core.createStyles((theme) => ({
616
618
  }
617
619
  }));
618
620
  const PlaceholderBanner = (props) => {
619
- const { classes } = useStyles$f();
621
+ const { classes } = useStyles$i();
620
622
  const title = props.title || "Nothing to display";
621
623
  const description = props.description || "We don't have anything to show you here just yet. Add data, check back later, or adjust your search.";
622
624
  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 }));
@@ -688,7 +690,7 @@ function Table$f(props) {
688
690
  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, "Lesson Completion"))), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
689
691
  }
690
692
 
691
- const useStyles$e = core.createStyles((theme) => ({
693
+ const useStyles$h = core.createStyles((theme) => ({
692
694
  title: {
693
695
  fontSize: 34,
694
696
  fontWeight: 900,
@@ -701,7 +703,7 @@ const useStyles$e = core.createStyles((theme) => ({
701
703
  }
702
704
  }));
703
705
  const Badge = (props) => {
704
- const { classes } = useStyles$e();
706
+ const { classes } = useStyles$h();
705
707
  const [tab, setTab] = React.useState("lessons");
706
708
  const numberOfStudents = props.students.length;
707
709
  const percentageOfBadgesEarned = numberOfStudents > 0 ? props.students.filter((u) => u.isComplete).length / numberOfStudents : 0;
@@ -798,7 +800,7 @@ function Table$e(props) {
798
800
  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)));
799
801
  }
800
802
 
801
- const useStyles$d = core.createStyles((theme) => ({
803
+ const useStyles$g = core.createStyles((theme) => ({
802
804
  title: {
803
805
  fontSize: 34,
804
806
  fontWeight: 900,
@@ -811,7 +813,7 @@ const useStyles$d = core.createStyles((theme) => ({
811
813
  }
812
814
  }));
813
815
  const Badges = (props) => {
814
- const { classes } = useStyles$d();
816
+ const { classes } = useStyles$g();
815
817
  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" }, "Project-sized skills acquisition and standards alignment."))), /* @__PURE__ */ React__namespace.createElement(
816
818
  core.Autocomplete,
817
819
  {
@@ -1066,26 +1068,26 @@ function Table$8(props) {
1066
1068
  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, "Badges Earned"), /* @__PURE__ */ React__namespace.createElement("th", null, "Lessons Completed"), /* @__PURE__ */ React__namespace.createElement("th", null, "Account Created?"), /* @__PURE__ */ React__namespace.createElement("th", null, "Last Active"), /* @__PURE__ */ React__namespace.createElement("th", null))), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
1067
1069
  }
1068
1070
 
1069
- var __defProp$4 = Object.defineProperty;
1070
- var __defProps$2 = Object.defineProperties;
1071
- var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
1072
- var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
1073
- var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
1074
- var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
1075
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1076
- var __spreadValues$4 = (a, b) => {
1071
+ var __defProp$7 = Object.defineProperty;
1072
+ var __defProps$4 = Object.defineProperties;
1073
+ var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
1074
+ var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
1075
+ var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
1076
+ var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
1077
+ var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1078
+ var __spreadValues$7 = (a, b) => {
1077
1079
  for (var prop in b || (b = {}))
1078
- if (__hasOwnProp$4.call(b, prop))
1079
- __defNormalProp$4(a, prop, b[prop]);
1080
- if (__getOwnPropSymbols$4)
1081
- for (var prop of __getOwnPropSymbols$4(b)) {
1082
- if (__propIsEnum$4.call(b, prop))
1083
- __defNormalProp$4(a, prop, b[prop]);
1080
+ if (__hasOwnProp$7.call(b, prop))
1081
+ __defNormalProp$7(a, prop, b[prop]);
1082
+ if (__getOwnPropSymbols$7)
1083
+ for (var prop of __getOwnPropSymbols$7(b)) {
1084
+ if (__propIsEnum$7.call(b, prop))
1085
+ __defNormalProp$7(a, prop, b[prop]);
1084
1086
  }
1085
1087
  return a;
1086
1088
  };
1087
- var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
1088
- const useStyles$c = core.createStyles((theme) => ({
1089
+ var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
1090
+ const useStyles$f = core.createStyles((theme) => ({
1089
1091
  title: {
1090
1092
  fontSize: 34,
1091
1093
  fontWeight: 900,
@@ -1118,7 +1120,7 @@ const useStyles$c = core.createStyles((theme) => ({
1118
1120
  }
1119
1121
  }));
1120
1122
  const Class = (props) => {
1121
- const { classes } = useStyles$c();
1123
+ const { classes } = useStyles$f();
1122
1124
  const form$1 = form.useForm({
1123
1125
  initialValues: {
1124
1126
  classId: "",
@@ -1150,27 +1152,27 @@ const Class = (props) => {
1150
1152
  padding: "xl",
1151
1153
  size: "xl"
1152
1154
  },
1153
- /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(DropzoneButton$1, __spreadProps$2(__spreadValues$4({}, 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(() => {
1155
+ /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(DropzoneButton$1, __spreadProps$4(__spreadValues$7({}, 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(() => {
1154
1156
  const values = form$1.values;
1155
1157
  form$1.reset();
1156
1158
  setOpened(false);
1157
1159
  props.onCreateMembers && props.onCreateMembers([values]);
1158
1160
  }) }, /* @__PURE__ */ React__namespace.createElement(core.Stack, null, /* @__PURE__ */ React__namespace.createElement(
1159
1161
  core.TextInput,
1160
- __spreadValues$4({
1162
+ __spreadValues$7({
1161
1163
  withAsterisk: true,
1162
1164
  label: "Email",
1163
1165
  placeholder: "Email"
1164
1166
  }, form$1.getInputProps("email"))
1165
1167
  ), /* @__PURE__ */ React__namespace.createElement(core.Group, { grow: true }, /* @__PURE__ */ React__namespace.createElement(
1166
1168
  core.TextInput,
1167
- __spreadValues$4({
1169
+ __spreadValues$7({
1168
1170
  label: "Given name",
1169
1171
  placeholder: "Given name"
1170
1172
  }, form$1.getInputProps("givenName"))
1171
1173
  ), /* @__PURE__ */ React__namespace.createElement(
1172
1174
  core.TextInput,
1173
- __spreadValues$4({
1175
+ __spreadValues$7({
1174
1176
  label: "Family name",
1175
1177
  placeholder: "Family name"
1176
1178
  }, form$1.getInputProps("familyName"))
@@ -1218,7 +1220,7 @@ const Class = (props) => {
1218
1220
  ))))));
1219
1221
  };
1220
1222
  const DropzoneButton$1 = (props) => {
1221
- const { classes, theme } = useStyles$c();
1223
+ const { classes, theme } = useStyles$f();
1222
1224
  const openRef = React__namespace.useRef(null);
1223
1225
  const [loading, setLoading] = React__namespace.useState(false);
1224
1226
  const onDrop = React__namespace.useCallback((acceptedFiles) => {
@@ -1288,23 +1290,23 @@ function Table$7(props) {
1288
1290
  return /* @__PURE__ */ React__namespace.createElement(core.ScrollArea.Autosize, { maxHeight: 600 }, /* @__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, "Class Name"), /* @__PURE__ */ React__namespace.createElement("th", null, "Description"), /* @__PURE__ */ React__namespace.createElement("th", null, "# of Students"), /* @__PURE__ */ React__namespace.createElement("th", null))), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
1289
1291
  }
1290
1292
 
1291
- var __defProp$3 = Object.defineProperty;
1292
- var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
1293
- var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
1294
- var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
1295
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1296
- var __spreadValues$3 = (a, b) => {
1293
+ var __defProp$6 = Object.defineProperty;
1294
+ var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
1295
+ var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
1296
+ var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
1297
+ var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1298
+ var __spreadValues$6 = (a, b) => {
1297
1299
  for (var prop in b || (b = {}))
1298
- if (__hasOwnProp$3.call(b, prop))
1299
- __defNormalProp$3(a, prop, b[prop]);
1300
- if (__getOwnPropSymbols$3)
1301
- for (var prop of __getOwnPropSymbols$3(b)) {
1302
- if (__propIsEnum$3.call(b, prop))
1303
- __defNormalProp$3(a, prop, b[prop]);
1300
+ if (__hasOwnProp$6.call(b, prop))
1301
+ __defNormalProp$6(a, prop, b[prop]);
1302
+ if (__getOwnPropSymbols$6)
1303
+ for (var prop of __getOwnPropSymbols$6(b)) {
1304
+ if (__propIsEnum$6.call(b, prop))
1305
+ __defNormalProp$6(a, prop, b[prop]);
1304
1306
  }
1305
1307
  return a;
1306
1308
  };
1307
- const useStyles$b = core.createStyles((theme) => ({
1309
+ const useStyles$e = core.createStyles((theme) => ({
1308
1310
  title: {
1309
1311
  fontSize: 34,
1310
1312
  fontWeight: 900,
@@ -1317,7 +1319,7 @@ const useStyles$b = core.createStyles((theme) => ({
1317
1319
  }
1318
1320
  }));
1319
1321
  const Classes = (props) => {
1320
- const { classes } = useStyles$b();
1322
+ const { classes } = useStyles$e();
1321
1323
  const form$1 = form.useForm({
1322
1324
  initialValues: {
1323
1325
  classId: "",
@@ -1347,14 +1349,14 @@ const Classes = (props) => {
1347
1349
  props.onCreateClass && props.onCreateClass(values);
1348
1350
  }) }, /* @__PURE__ */ React__namespace.createElement(core.Stack, null, /* @__PURE__ */ React__namespace.createElement(
1349
1351
  core.TextInput,
1350
- __spreadValues$3({
1352
+ __spreadValues$6({
1351
1353
  withAsterisk: true,
1352
1354
  label: "Name",
1353
1355
  placeholder: "Class name"
1354
1356
  }, form$1.getInputProps("name"))
1355
1357
  ), /* @__PURE__ */ React__namespace.createElement(
1356
1358
  core.TextInput,
1357
- __spreadValues$3({
1359
+ __spreadValues$6({
1358
1360
  label: "Description",
1359
1361
  placeholder: "A class for my first period English students"
1360
1362
  }, form$1.getInputProps("description"))
@@ -1388,7 +1390,7 @@ const Classes = (props) => {
1388
1390
  ))))));
1389
1391
  };
1390
1392
 
1391
- const useStyles$a = core.createStyles((theme) => ({
1393
+ const useStyles$d = core.createStyles((theme) => ({
1392
1394
  title: {
1393
1395
  fontSize: 34,
1394
1396
  fontWeight: 900,
@@ -1402,7 +1404,7 @@ const useStyles$a = core.createStyles((theme) => ({
1402
1404
  }
1403
1405
  }));
1404
1406
  const UserInfo = (props) => {
1405
- const { classes } = useStyles$a();
1407
+ const { classes } = useStyles$d();
1406
1408
  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));
1407
1409
  };
1408
1410
 
@@ -1540,7 +1542,7 @@ const Student = (props) => {
1540
1542
  ))))));
1541
1543
  };
1542
1544
 
1543
- const useStyles$9 = core.createStyles((theme, props) => {
1545
+ const useStyles$c = core.createStyles((theme, props) => {
1544
1546
  const from = props.from || "blue";
1545
1547
  const to = props.to || "green";
1546
1548
  return {
@@ -1568,7 +1570,7 @@ const useStyles$9 = core.createStyles((theme, props) => {
1568
1570
  };
1569
1571
  });
1570
1572
  function CardGradient(props) {
1571
- const { classes } = useStyles$9(props);
1573
+ const { classes } = useStyles$c(props);
1572
1574
  const from = props.from || "blue";
1573
1575
  const to = props.to || "green";
1574
1576
  const icon = props.icon || /* @__PURE__ */ React__namespace.createElement(icons.IconColorSwatch, { size: 28, stroke: 1.5 });
@@ -1584,35 +1586,35 @@ function CardGradient(props) {
1584
1586
  ), /* @__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));
1585
1587
  }
1586
1588
 
1587
- var __defProp$2 = Object.defineProperty;
1588
- var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
1589
- var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
1590
- var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
1591
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1592
- var __spreadValues$2 = (a, b) => {
1589
+ var __defProp$5 = Object.defineProperty;
1590
+ var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
1591
+ var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
1592
+ var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
1593
+ var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1594
+ var __spreadValues$5 = (a, b) => {
1593
1595
  for (var prop in b || (b = {}))
1594
- if (__hasOwnProp$2.call(b, prop))
1595
- __defNormalProp$2(a, prop, b[prop]);
1596
- if (__getOwnPropSymbols$2)
1597
- for (var prop of __getOwnPropSymbols$2(b)) {
1598
- if (__propIsEnum$2.call(b, prop))
1599
- __defNormalProp$2(a, prop, b[prop]);
1596
+ if (__hasOwnProp$5.call(b, prop))
1597
+ __defNormalProp$5(a, prop, b[prop]);
1598
+ if (__getOwnPropSymbols$5)
1599
+ for (var prop of __getOwnPropSymbols$5(b)) {
1600
+ if (__propIsEnum$5.call(b, prop))
1601
+ __defNormalProp$5(a, prop, b[prop]);
1600
1602
  }
1601
1603
  return a;
1602
1604
  };
1603
- var __objRest = (source, exclude) => {
1605
+ var __objRest$1 = (source, exclude) => {
1604
1606
  var target = {};
1605
1607
  for (var prop in source)
1606
- if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)
1608
+ if (__hasOwnProp$5.call(source, prop) && exclude.indexOf(prop) < 0)
1607
1609
  target[prop] = source[prop];
1608
- if (source != null && __getOwnPropSymbols$2)
1609
- for (var prop of __getOwnPropSymbols$2(source)) {
1610
- if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))
1610
+ if (source != null && __getOwnPropSymbols$5)
1611
+ for (var prop of __getOwnPropSymbols$5(source)) {
1612
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$5.call(source, prop))
1611
1613
  target[prop] = source[prop];
1612
1614
  }
1613
1615
  return target;
1614
1616
  };
1615
- const useStyles$8 = core.createStyles((theme) => ({
1617
+ const useStyles$b = core.createStyles((theme) => ({
1616
1618
  card: {
1617
1619
  height: 240,
1618
1620
  backgroundSize: "cover",
@@ -1650,7 +1652,7 @@ const TenantBanner = (_a) => {
1650
1652
  action,
1651
1653
  style,
1652
1654
  className
1653
- } = _b, others = __objRest(_b, [
1655
+ } = _b, others = __objRest$1(_b, [
1654
1656
  "title",
1655
1657
  "description",
1656
1658
  "image",
@@ -1658,12 +1660,12 @@ const TenantBanner = (_a) => {
1658
1660
  "style",
1659
1661
  "className"
1660
1662
  ]);
1661
- const { classes, cx, theme } = useStyles$8();
1663
+ const { classes, cx, theme } = useStyles$b();
1662
1664
  return /* @__PURE__ */ React__namespace.createElement(
1663
1665
  core.Card,
1664
- __spreadValues$2({
1666
+ __spreadValues$5({
1665
1667
  radius: "md",
1666
- style: __spreadValues$2({ backgroundImage: `url(${image})` }, style),
1668
+ style: __spreadValues$5({ backgroundImage: `url(${image})` }, style),
1667
1669
  className: cx(classes.card, className)
1668
1670
  }, others),
1669
1671
  /* @__PURE__ */ React__namespace.createElement(
@@ -1756,7 +1758,7 @@ function Table$3(props) {
1756
1758
  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, "Reflection"), /* @__PURE__ */ React__namespace.createElement("th", null, "Rating"))), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
1757
1759
  }
1758
1760
 
1759
- const useStyles$7 = core.createStyles((theme) => ({
1761
+ const useStyles$a = core.createStyles((theme) => ({
1760
1762
  button: {
1761
1763
  borderTopRightRadius: 0,
1762
1764
  borderBottomRightRadius: 0,
@@ -1771,7 +1773,7 @@ const useStyles$7 = core.createStyles((theme) => ({
1771
1773
  }
1772
1774
  }));
1773
1775
  const SplitButton$1 = (props) => {
1774
- const { classes, theme } = useStyles$7();
1776
+ const { classes, theme } = useStyles$a();
1775
1777
  const menuIconColor = theme.colors[theme.primaryColor][theme.colorScheme === "dark" ? 5 : 6];
1776
1778
  return /* @__PURE__ */ React__namespace.createElement(core.Group, { noWrap: true, spacing: 0 }, /* @__PURE__ */ React__namespace.createElement(
1777
1779
  core.Button,
@@ -1923,7 +1925,7 @@ function Stack(props) {
1923
1925
  }
1924
1926
  const truncateWithEllipses = (text, max) => text.substr(0, max - 1) + (text.length > max ? "&hellip;" : "");
1925
1927
 
1926
- const useStyles$6 = core.createStyles((theme) => ({
1928
+ const useStyles$9 = core.createStyles((theme) => ({
1927
1929
  title: {
1928
1930
  fontSize: 34,
1929
1931
  fontWeight: 900,
@@ -1936,7 +1938,7 @@ const useStyles$6 = core.createStyles((theme) => ({
1936
1938
  }
1937
1939
  }));
1938
1940
  const Lesson = (props) => {
1939
- const { classes } = useStyles$6();
1941
+ const { classes } = useStyles$9();
1940
1942
  const [tab, setTab] = React.useState("question");
1941
1943
  const numberOfStudents = props.students.length;
1942
1944
  const percentageOfLessonsCompleted = numberOfStudents > 0 ? props.students.filter((u) => u.isComplete).length / numberOfStudents : 0;
@@ -2040,7 +2042,7 @@ function Table$1(props) {
2040
2042
  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)));
2041
2043
  }
2042
2044
 
2043
- const useStyles$5 = core.createStyles((theme) => ({
2045
+ const useStyles$8 = core.createStyles((theme) => ({
2044
2046
  title: {
2045
2047
  fontSize: 34,
2046
2048
  fontWeight: 900,
@@ -2053,7 +2055,7 @@ const useStyles$5 = core.createStyles((theme) => ({
2053
2055
  }
2054
2056
  }));
2055
2057
  const Lessons = (props) => {
2056
- const { classes } = useStyles$5();
2058
+ const { classes } = useStyles$8();
2057
2059
  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" }, "Explore units of instruction and/or see corresponding class progress."))), /* @__PURE__ */ React__namespace.createElement(
2058
2060
  core.Autocomplete,
2059
2061
  {
@@ -2070,7 +2072,7 @@ const Lessons = (props) => {
2070
2072
  ))));
2071
2073
  };
2072
2074
 
2073
- const useStyles$4 = core.createStyles((theme) => ({
2075
+ const useStyles$7 = core.createStyles((theme) => ({
2074
2076
  title: {
2075
2077
  fontSize: 22,
2076
2078
  fontWeight: 900,
@@ -2089,7 +2091,7 @@ const useStyles$4 = core.createStyles((theme) => ({
2089
2091
  }
2090
2092
  }));
2091
2093
  function AccessCode(props) {
2092
- const { classes } = useStyles$4();
2094
+ const { classes } = useStyles$7();
2093
2095
  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(
2094
2096
  core.Anchor,
2095
2097
  {
@@ -2117,7 +2119,7 @@ const monthNames = [
2117
2119
  "November",
2118
2120
  "December"
2119
2121
  ];
2120
- const useStyles$3 = core.createStyles((theme) => ({
2122
+ const useStyles$6 = core.createStyles((theme) => ({
2121
2123
  title: {
2122
2124
  fontSize: 34,
2123
2125
  fontWeight: 900,
@@ -2147,7 +2149,7 @@ const useStyles$3 = core.createStyles((theme) => ({
2147
2149
  }
2148
2150
  }));
2149
2151
  const Organization = (props) => {
2150
- const { classes } = useStyles$3();
2152
+ const { classes } = useStyles$6();
2151
2153
  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(
2152
2154
  core.Badge,
2153
2155
  {
@@ -2173,7 +2175,7 @@ const Organization = (props) => {
2173
2175
  ] }))))));
2174
2176
  };
2175
2177
 
2176
- const useStyles$2 = core.createStyles((theme) => ({
2178
+ const useStyles$5 = core.createStyles((theme) => ({
2177
2179
  button: {
2178
2180
  borderTopRightRadius: 0,
2179
2181
  borderBottomRightRadius: 0,
@@ -2188,7 +2190,7 @@ const useStyles$2 = core.createStyles((theme) => ({
2188
2190
  }
2189
2191
  }));
2190
2192
  const SplitButton = (props) => {
2191
- const { classes, theme } = useStyles$2();
2193
+ const { classes, theme } = useStyles$5();
2192
2194
  const menuIconColor = theme.colors[theme.primaryColor][theme.colorScheme === "dark" ? 5 : 6];
2193
2195
  const hasMenu = !!props.withOrganizationLink;
2194
2196
  return /* @__PURE__ */ React__namespace.createElement(core.Group, { noWrap: true, spacing: 0 }, /* @__PURE__ */ React__namespace.createElement(
@@ -2250,26 +2252,26 @@ function Table(props) {
2250
2252
  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)));
2251
2253
  }
2252
2254
 
2253
- var __defProp$1 = Object.defineProperty;
2254
- var __defProps$1 = Object.defineProperties;
2255
- var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
2256
- var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
2257
- var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
2258
- var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
2259
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2260
- var __spreadValues$1 = (a, b) => {
2255
+ var __defProp$4 = Object.defineProperty;
2256
+ var __defProps$3 = Object.defineProperties;
2257
+ var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
2258
+ var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
2259
+ var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
2260
+ var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
2261
+ var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2262
+ var __spreadValues$4 = (a, b) => {
2261
2263
  for (var prop in b || (b = {}))
2262
- if (__hasOwnProp$1.call(b, prop))
2263
- __defNormalProp$1(a, prop, b[prop]);
2264
- if (__getOwnPropSymbols$1)
2265
- for (var prop of __getOwnPropSymbols$1(b)) {
2266
- if (__propIsEnum$1.call(b, prop))
2267
- __defNormalProp$1(a, prop, b[prop]);
2264
+ if (__hasOwnProp$4.call(b, prop))
2265
+ __defNormalProp$4(a, prop, b[prop]);
2266
+ if (__getOwnPropSymbols$4)
2267
+ for (var prop of __getOwnPropSymbols$4(b)) {
2268
+ if (__propIsEnum$4.call(b, prop))
2269
+ __defNormalProp$4(a, prop, b[prop]);
2268
2270
  }
2269
2271
  return a;
2270
2272
  };
2271
- var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
2272
- const useStyles$1 = core.createStyles((theme) => ({
2273
+ var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
2274
+ const useStyles$4 = core.createStyles((theme) => ({
2273
2275
  title: {
2274
2276
  fontSize: 34,
2275
2277
  fontWeight: 900,
@@ -2299,7 +2301,7 @@ const useStyles$1 = core.createStyles((theme) => ({
2299
2301
  }
2300
2302
  }));
2301
2303
  const People = (props) => {
2302
- const { classes } = useStyles$1();
2304
+ const { classes } = useStyles$4();
2303
2305
  const form$1 = form.useForm({
2304
2306
  initialValues: {
2305
2307
  userId: "",
@@ -2330,27 +2332,27 @@ const People = (props) => {
2330
2332
  padding: "xl",
2331
2333
  size: "xl"
2332
2334
  },
2333
- /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(DropzoneButton, __spreadProps$1(__spreadValues$1({}, 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(() => {
2335
+ /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(DropzoneButton, __spreadProps$3(__spreadValues$4({}, 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(() => {
2334
2336
  const values = form$1.values;
2335
2337
  form$1.reset();
2336
2338
  setOpened(false);
2337
2339
  props.onCreateUsers && props.onCreateUsers([values]);
2338
2340
  }) }, /* @__PURE__ */ React__namespace.createElement(core.Stack, null, /* @__PURE__ */ React__namespace.createElement(
2339
2341
  core.TextInput,
2340
- __spreadValues$1({
2342
+ __spreadValues$4({
2341
2343
  withAsterisk: true,
2342
2344
  label: "Email",
2343
2345
  placeholder: "Email"
2344
2346
  }, form$1.getInputProps("email"))
2345
2347
  ), /* @__PURE__ */ React__namespace.createElement(core.Group, { grow: true }, /* @__PURE__ */ React__namespace.createElement(
2346
2348
  core.TextInput,
2347
- __spreadValues$1({
2349
+ __spreadValues$4({
2348
2350
  label: "Given name",
2349
2351
  placeholder: "Given name"
2350
2352
  }, form$1.getInputProps("givenName"))
2351
2353
  ), /* @__PURE__ */ React__namespace.createElement(
2352
2354
  core.TextInput,
2353
- __spreadValues$1({
2355
+ __spreadValues$4({
2354
2356
  label: "Family name",
2355
2357
  placeholder: "Family name"
2356
2358
  }, form$1.getInputProps("familyName"))
@@ -2403,7 +2405,7 @@ const People = (props) => {
2403
2405
  ))))));
2404
2406
  };
2405
2407
  const DropzoneButton = (props) => {
2406
- const { classes, theme } = useStyles$1();
2408
+ const { classes, theme } = useStyles$4();
2407
2409
  const openRef = React__namespace.useRef(null);
2408
2410
  const [loading, setLoading] = React__namespace.useState(false);
2409
2411
  const onDrop = React__namespace.useCallback((acceptedFiles) => {
@@ -2449,6 +2451,373 @@ const DropzoneButton = (props) => {
2449
2451
  } }, "Select file"));
2450
2452
  };
2451
2453
 
2454
+ const useStyles$3 = core.createStyles((theme) => ({
2455
+ wrapper: {
2456
+ minHeight: 400,
2457
+ boxSizing: "border-box",
2458
+ backgroundImage: `linear-gradient(-60deg, ${theme.colors[theme.primaryColor][4]} 0%, ${theme.colors[theme.primaryColor][7]} 100%)`,
2459
+ borderRadius: theme.radius.md,
2460
+ padding: theme.spacing.xl * 2.5,
2461
+ [`@media (max-width: ${theme.breakpoints.sm}px)`]: {
2462
+ padding: theme.spacing.xl * 1.5
2463
+ }
2464
+ },
2465
+ title: {
2466
+ fontFamily: `Greycliff CF, ${theme.fontFamily}`,
2467
+ color: theme.white,
2468
+ lineHeight: 1
2469
+ },
2470
+ description: {
2471
+ color: theme.colors[theme.primaryColor][0],
2472
+ maxWidth: 300,
2473
+ [`@media (max-width: ${theme.breakpoints.sm}px)`]: {
2474
+ maxWidth: "100%"
2475
+ }
2476
+ },
2477
+ form: {
2478
+ backgroundColor: theme.white,
2479
+ padding: theme.spacing.xl,
2480
+ borderRadius: theme.radius.md,
2481
+ boxShadow: theme.shadows.lg
2482
+ },
2483
+ social: {
2484
+ color: theme.white,
2485
+ "&:hover": {
2486
+ color: theme.colors[theme.primaryColor][1]
2487
+ }
2488
+ },
2489
+ input: {
2490
+ backgroundColor: theme.white,
2491
+ borderColor: theme.colors.gray[4],
2492
+ color: theme.black,
2493
+ "&::placeholder": {
2494
+ color: theme.colors.gray[5]
2495
+ }
2496
+ },
2497
+ inputLabel: {
2498
+ color: theme.black
2499
+ },
2500
+ control: {
2501
+ backgroundColor: theme.colors[theme.primaryColor][6]
2502
+ }
2503
+ }));
2504
+ const StartAnonymousLesson = (props) => {
2505
+ const { classes } = useStyles$3();
2506
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: classes.wrapper }, /* @__PURE__ */ React__namespace.createElement(core.SimpleGrid, { cols: 2, spacing: 50, breakpoints: [{ maxWidth: "sm", cols: 1 }] }, /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement(core.Title, { className: classes.title }, props.title), /* @__PURE__ */ React__namespace.createElement(core.Text, { weight: "bold", className: classes.description, mt: "sm", mb: 30 }, "Instructor: ", props.educatorName), /* @__PURE__ */ React__namespace.createElement(core.Text, { className: classes.description, mt: "sm", mb: 30 }, props.description)), /* @__PURE__ */ React__namespace.createElement("div", { className: classes.form }, /* @__PURE__ */ React__namespace.createElement(
2507
+ core.TextInput,
2508
+ {
2509
+ label: "Name",
2510
+ placeholder: "John Doe",
2511
+ defaultValue: props.studentName,
2512
+ readOnly: !!props.studentName,
2513
+ required: true,
2514
+ classNames: { input: classes.input, label: classes.inputLabel }
2515
+ }
2516
+ ), /* @__PURE__ */ React__namespace.createElement(core.Group, { position: "right", mt: "md" }, /* @__PURE__ */ React__namespace.createElement(core.Button, { onClick: props.onStart, className: classes.control }, !props.studentName ? "Start lesson" : "Continue lesson")))));
2517
+ };
2518
+
2519
+ var __defProp$3 = Object.defineProperty;
2520
+ var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
2521
+ var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
2522
+ var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
2523
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2524
+ var __spreadValues$3 = (a, b) => {
2525
+ for (var prop in b || (b = {}))
2526
+ if (__hasOwnProp$3.call(b, prop))
2527
+ __defNormalProp$3(a, prop, b[prop]);
2528
+ if (__getOwnPropSymbols$3)
2529
+ for (var prop of __getOwnPropSymbols$3(b)) {
2530
+ if (__propIsEnum$3.call(b, prop))
2531
+ __defNormalProp$3(a, prop, b[prop]);
2532
+ }
2533
+ return a;
2534
+ };
2535
+ const BadgeGrid = (props) => {
2536
+ const badges = props.badges.map((b) => /* @__PURE__ */ React__namespace.createElement(TaskCard, __spreadValues$3({ key: b.title }, b)));
2537
+ return /* @__PURE__ */ React__namespace.createElement(core.SimpleGrid, { cols: 3, breakpoints: [{ maxWidth: "sm", cols: 1 }] }, badges);
2538
+ };
2539
+ function TaskCard(props) {
2540
+ const avatars = props.users.slice(0, 3).map((u, i) => {
2541
+ const fullName = u.name;
2542
+ let initials = fullName.split(/[ -]/).map((n) => n.charAt(0)).join("");
2543
+ const src = AvatarInit.initialAvatar({
2544
+ background: "#f4f6f7",
2545
+ color: "#888888",
2546
+ fontFamily: "'Lato', 'Lato-Regular', 'Helvetica Neue'",
2547
+ fontSize: 10,
2548
+ fontWeight: 250,
2549
+ size: 30,
2550
+ initials
2551
+ });
2552
+ return /* @__PURE__ */ React__namespace.createElement(core.Avatar, { key: i, src, radius: "xl" });
2553
+ });
2554
+ const remainingUsers = props.users.slice(3).length;
2555
+ const isComplete = props.lessonsCompleted >= props.lessonsTotal;
2556
+ return /* @__PURE__ */ React__namespace.createElement(core.Card, { withBorder: true, radius: "md" }, /* @__PURE__ */ React__namespace.createElement(core.Group, { position: "apart" }, /* @__PURE__ */ React__namespace.createElement(core.ThemeIcon, { size: "lg", variant: "gradient", gradient: { from: "indigo", to: "cyan" } }, /* @__PURE__ */ React__namespace.createElement(icons.IconBadge, { size: 20 })), isComplete && /* @__PURE__ */ React__namespace.createElement(core.Badge, { variant: "gradient", gradient: { from: "indigo", to: "cyan" } }, "Complete"), !isComplete && /* @__PURE__ */ React__namespace.createElement(core.Badge, { variant: "filled" }, "Incomplete")), /* @__PURE__ */ React__namespace.createElement(core.UnstyledButton, { to: props.href, mt: "md", sx: { ":hover": { textDecoration: "underline" } } }, /* @__PURE__ */ React__namespace.createElement(core.Text, { size: "lg", weight: 500 }, props.title)), /* @__PURE__ */ React__namespace.createElement(core.Text, { size: "sm", color: "dimmed", mt: 5 }, props.description), /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", size: "sm", mt: "md" }, "Lessons completed:", " ", /* @__PURE__ */ React__namespace.createElement(
2557
+ core.Text,
2558
+ {
2559
+ span: true,
2560
+ weight: 500,
2561
+ sx: (theme) => ({ color: theme.colorScheme === "dark" ? theme.white : theme.black })
2562
+ },
2563
+ props.lessonsCompleted,
2564
+ "/",
2565
+ props.lessonsTotal
2566
+ )), /* @__PURE__ */ React__namespace.createElement(core.Progress, { value: props.lessonsCompleted / props.lessonsTotal * 100, mt: 5 }), /* @__PURE__ */ React__namespace.createElement(core.Group, { position: "apart", mt: "md" }, /* @__PURE__ */ React__namespace.createElement(core.Avatar.Group, { spacing: "sm" }, avatars, !!remainingUsers && /* @__PURE__ */ React__namespace.createElement(core.Avatar, { radius: "xl" }, "+", remainingUsers)), /* @__PURE__ */ React__namespace.createElement(core.ActionIcon, { onClick: props.onCopy, variant: "default" }, /* @__PURE__ */ React__namespace.createElement(icons.IconCopy, { size: 18 }))));
2567
+ }
2568
+
2569
+ const TrialHome = (props) => {
2570
+ 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(core.Stack, { spacing: "sm" }, /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: 0 }, /* @__PURE__ */ React__namespace.createElement(
2571
+ UserInfo,
2572
+ {
2573
+ variant: "compact",
2574
+ name: props.name,
2575
+ impactStatement: ""
2576
+ }
2577
+ ), /* @__PURE__ */ React__namespace.createElement(
2578
+ TenantBanner,
2579
+ {
2580
+ title: "Trial Account",
2581
+ description: "Welcome to Local Civics! You are currently interacting with our trial experience.",
2582
+ image: "https://cdn.localcivics.io/hub/landing.jpg",
2583
+ action: {
2584
+ label: "UPGRADE NOW",
2585
+ link: props.upgradeHref
2586
+ }
2587
+ }
2588
+ )), /* @__PURE__ */ React__namespace.createElement(BadgeGrid, { badges: props.badges })));
2589
+ };
2590
+
2591
+ var __defProp$2 = Object.defineProperty;
2592
+ var __defProps$2 = Object.defineProperties;
2593
+ var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
2594
+ var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
2595
+ var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
2596
+ var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
2597
+ var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2598
+ var __spreadValues$2 = (a, b) => {
2599
+ for (var prop in b || (b = {}))
2600
+ if (__hasOwnProp$2.call(b, prop))
2601
+ __defNormalProp$2(a, prop, b[prop]);
2602
+ if (__getOwnPropSymbols$2)
2603
+ for (var prop of __getOwnPropSymbols$2(b)) {
2604
+ if (__propIsEnum$2.call(b, prop))
2605
+ __defNormalProp$2(a, prop, b[prop]);
2606
+ }
2607
+ return a;
2608
+ };
2609
+ var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
2610
+ var __objRest = (source, exclude) => {
2611
+ var target = {};
2612
+ for (var prop in source)
2613
+ if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)
2614
+ target[prop] = source[prop];
2615
+ if (source != null && __getOwnPropSymbols$2)
2616
+ for (var prop of __getOwnPropSymbols$2(source)) {
2617
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))
2618
+ target[prop] = source[prop];
2619
+ }
2620
+ return target;
2621
+ };
2622
+ const useStyles$2 = core.createStyles((theme, { checked }) => ({
2623
+ button: {
2624
+ display: "flex",
2625
+ alignItems: "center",
2626
+ width: "100%",
2627
+ transition: "background-color 150ms ease, border-color 150ms ease",
2628
+ border: `1px solid ${checked ? theme.fn.variant({ variant: "outline", color: theme.primaryColor }).border : theme.colorScheme === "dark" ? theme.colors.dark[8] : theme.colors.gray[3]}`,
2629
+ borderRadius: theme.radius.sm,
2630
+ padding: theme.spacing.lg,
2631
+ backgroundColor: checked ? theme.fn.variant({ variant: "light", color: theme.primaryColor }).background : theme.colorScheme === "dark" ? theme.colors.dark[8] : theme.white
2632
+ },
2633
+ body: {
2634
+ flex: 1,
2635
+ marginLeft: theme.spacing.md
2636
+ }
2637
+ }));
2638
+ function ImageCheckbox(_a) {
2639
+ var _b = _a, {
2640
+ checked,
2641
+ defaultChecked,
2642
+ onChange,
2643
+ title,
2644
+ description,
2645
+ className,
2646
+ icon: Icon
2647
+ } = _b, others = __objRest(_b, [
2648
+ "checked",
2649
+ "defaultChecked",
2650
+ "onChange",
2651
+ "title",
2652
+ "description",
2653
+ "className",
2654
+ "icon"
2655
+ ]);
2656
+ const [value, handleChange] = hooks.useUncontrolled({
2657
+ value: checked,
2658
+ defaultValue: defaultChecked,
2659
+ finalValue: false,
2660
+ onChange
2661
+ });
2662
+ const { classes, cx } = useStyles$2({ checked: value });
2663
+ return /* @__PURE__ */ React__namespace.createElement(
2664
+ core.UnstyledButton,
2665
+ __spreadProps$2(__spreadValues$2({}, others), {
2666
+ onClick: () => handleChange(!value),
2667
+ className: cx(classes.button, className)
2668
+ }),
2669
+ /* @__PURE__ */ React__namespace.createElement(core.ThemeIcon, { variant: "light", size: "lg", color: "blue" }, /* @__PURE__ */ React__namespace.createElement(Icon, { size: 40 })),
2670
+ /* @__PURE__ */ React__namespace.createElement("div", { className: classes.body }, /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dimmed", size: "xs", sx: { lineHeight: 1 }, mb: 5 }, description), /* @__PURE__ */ React__namespace.createElement(core.Text, { weight: 500, size: "sm", sx: { lineHeight: 1 } }, title)),
2671
+ /* @__PURE__ */ React__namespace.createElement(
2672
+ core.Checkbox,
2673
+ {
2674
+ checked: value,
2675
+ onChange: () => {
2676
+ },
2677
+ tabIndex: -1,
2678
+ styles: { input: { cursor: "pointer" } }
2679
+ }
2680
+ )
2681
+ );
2682
+ }
2683
+ function SelectGrid(props) {
2684
+ const items = props.items.map((item) => /* @__PURE__ */ React__namespace.createElement(
2685
+ ImageCheckbox,
2686
+ __spreadProps$2(__spreadValues$2({}, item), {
2687
+ key: item.title,
2688
+ onChange: (checked) => props.onChange(item.title, checked)
2689
+ })
2690
+ ));
2691
+ return /* @__PURE__ */ React__namespace.createElement(
2692
+ core.SimpleGrid,
2693
+ {
2694
+ cols: 3,
2695
+ breakpoints: [
2696
+ { maxWidth: "md", cols: 2 },
2697
+ { maxWidth: "sm", cols: 1 }
2698
+ ]
2699
+ },
2700
+ items
2701
+ );
2702
+ }
2703
+
2704
+ var __defProp$1 = Object.defineProperty;
2705
+ var __defProps$1 = Object.defineProperties;
2706
+ var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
2707
+ var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
2708
+ var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
2709
+ var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
2710
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2711
+ var __spreadValues$1 = (a, b) => {
2712
+ for (var prop in b || (b = {}))
2713
+ if (__hasOwnProp$1.call(b, prop))
2714
+ __defNormalProp$1(a, prop, b[prop]);
2715
+ if (__getOwnPropSymbols$1)
2716
+ for (var prop of __getOwnPropSymbols$1(b)) {
2717
+ if (__propIsEnum$1.call(b, prop))
2718
+ __defNormalProp$1(a, prop, b[prop]);
2719
+ }
2720
+ return a;
2721
+ };
2722
+ var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
2723
+ const useStyles$1 = core.createStyles((theme) => ({
2724
+ wrapper: {
2725
+ minHeight: 400,
2726
+ boxSizing: "border-box",
2727
+ backgroundImage: `linear-gradient(-60deg, ${theme.colors[theme.primaryColor][4]} 0%, ${theme.colors[theme.primaryColor][7]} 100%)`,
2728
+ borderRadius: theme.radius.md,
2729
+ padding: theme.spacing.xl * 2.5,
2730
+ [`@media (max-width: ${theme.breakpoints.sm}px)`]: {
2731
+ padding: theme.spacing.xl * 1.5
2732
+ }
2733
+ },
2734
+ title: {
2735
+ fontFamily: `Greycliff CF, ${theme.fontFamily}`,
2736
+ color: theme.white,
2737
+ lineHeight: 1
2738
+ },
2739
+ description: {
2740
+ color: theme.colors[theme.primaryColor][0],
2741
+ maxWidth: 500,
2742
+ [`@media (max-width: ${theme.breakpoints.sm}px)`]: {
2743
+ maxWidth: "100%"
2744
+ }
2745
+ },
2746
+ form: {
2747
+ backgroundColor: theme.white,
2748
+ padding: theme.spacing.xl,
2749
+ borderRadius: theme.radius.md,
2750
+ boxShadow: theme.shadows.lg
2751
+ },
2752
+ social: {
2753
+ color: theme.white,
2754
+ "&:hover": {
2755
+ color: theme.colors[theme.primaryColor][1]
2756
+ }
2757
+ },
2758
+ input: {
2759
+ backgroundColor: theme.white,
2760
+ borderColor: theme.colors.gray[4],
2761
+ color: theme.black,
2762
+ "&::placeholder": {
2763
+ color: theme.colors.gray[5]
2764
+ }
2765
+ },
2766
+ inputLabel: {
2767
+ color: theme.black
2768
+ },
2769
+ control: {
2770
+ backgroundColor: theme.colors[theme.primaryColor][6]
2771
+ }
2772
+ }));
2773
+ const OPTIONS = [
2774
+ { description: "high school", title: "High school", icon: icons.IconHistory },
2775
+ { description: "k - 8th", title: "K - 8th", icon: icons.IconLego },
2776
+ { description: "civics", title: "Civics", icon: icons.IconNews },
2777
+ { description: "project-based learning", title: "Project-based learning", icon: icons.IconTools },
2778
+ { description: "college", title: "College", icon: icons.IconPodium },
2779
+ { description: "career", title: "Career", icon: icons.IconAffiliate },
2780
+ { description: "student leadership", title: "Student leadership", icon: icons.IconGrowth }
2781
+ ];
2782
+ const TrialRegistration = (props) => {
2783
+ const { classes } = useStyles$1();
2784
+ const [firstName, setFirstName] = React__namespace.useState("");
2785
+ const [lastName, setLastName] = React__namespace.useState("");
2786
+ const [interests, setInterests] = React__namespace.useState({});
2787
+ return /* @__PURE__ */ React__namespace.createElement("div", { className: classes.wrapper }, /* @__PURE__ */ React__namespace.createElement(core.SimpleGrid, { maw: 960, ml: "auto", mr: "auto", cols: 1, spacing: 15, breakpoints: [{ maxWidth: "sm", cols: 1 }] }, /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement(core.Title, { className: classes.title }, "Trial Educator"), /* @__PURE__ */ React__namespace.createElement(core.Text, { className: classes.description, mt: "sm", mb: 30 }, "Try out a some of the features we can bring to your classroom. No commitment required.")), /* @__PURE__ */ React__namespace.createElement("div", { className: classes.form }, /* @__PURE__ */ React__namespace.createElement(core.Group, { mb: "md", spacing: "md", grow: true }, /* @__PURE__ */ React__namespace.createElement(
2788
+ core.TextInput,
2789
+ {
2790
+ label: "First Name",
2791
+ placeholder: "John",
2792
+ required: true,
2793
+ classNames: { input: classes.input, label: classes.inputLabel },
2794
+ onChange: (e) => setFirstName(e.target.value)
2795
+ }
2796
+ ), /* @__PURE__ */ React__namespace.createElement(
2797
+ core.TextInput,
2798
+ {
2799
+ label: "Last Name",
2800
+ placeholder: "Doe",
2801
+ required: true,
2802
+ classNames: { input: classes.input, label: classes.inputLabel },
2803
+ onChange: (e) => setLastName(e.target.value)
2804
+ }
2805
+ )), /* @__PURE__ */ React__namespace.createElement(core.Text, { size: 14, weight: 500, mb: "md", mt: "xl" }, "What are you interested in teaching?"), /* @__PURE__ */ React__namespace.createElement(
2806
+ SelectGrid,
2807
+ {
2808
+ items: OPTIONS,
2809
+ onChange: (e, checked) => setInterests(__spreadProps$1(__spreadValues$1({}, interests), { [e]: checked }))
2810
+ }
2811
+ ), /* @__PURE__ */ React__namespace.createElement(core.Group, { position: "right", mt: "md" }, /* @__PURE__ */ React__namespace.createElement(
2812
+ core.Button,
2813
+ {
2814
+ onClick: () => props.onBegin({ firstName, lastName, interests: Object.keys(interests) }),
2815
+ className: classes.control
2816
+ },
2817
+ "Begin trial"
2818
+ )))));
2819
+ };
2820
+
2452
2821
  const mycCache = core.createEmotionCache({
2453
2822
  key: "mantine",
2454
2823
  prepend: false
@@ -2683,6 +3052,9 @@ exports.Navbar = Navbar;
2683
3052
  exports.NestedNavbar = NestedNavbar;
2684
3053
  exports.Organization = Organization;
2685
3054
  exports.People = People;
3055
+ exports.StartAnonymousLesson = StartAnonymousLesson;
2686
3056
  exports.Student = Student;
2687
3057
  exports.SwitchAccount = SwitchAccount;
3058
+ exports.TrialHome = TrialHome;
3059
+ exports.TrialRegistration = TrialRegistration;
2688
3060
  //# sourceMappingURL=index.js.map