@local-civics/mgmt-ui 0.1.190 → 0.1.192
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.d.ts +118 -52
- package/dist/index.js +560 -346
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +618 -405
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
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$
|
|
38
|
-
var __getOwnPropSymbols$
|
|
39
|
-
var __hasOwnProp$
|
|
40
|
-
var __propIsEnum$
|
|
41
|
-
var __defNormalProp$
|
|
42
|
-
var __spreadValues$
|
|
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$
|
|
45
|
-
__defNormalProp$
|
|
46
|
-
if (__getOwnPropSymbols$
|
|
47
|
-
for (var prop of __getOwnPropSymbols$
|
|
48
|
-
if (__propIsEnum$
|
|
49
|
-
__defNormalProp$
|
|
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$
|
|
56
|
+
if (__hasOwnProp$d.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
57
57
|
target[prop] = source[prop];
|
|
58
|
-
if (source != null && __getOwnPropSymbols$
|
|
59
|
-
for (var prop of __getOwnPropSymbols$
|
|
60
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum$
|
|
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$
|
|
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$
|
|
77
|
-
return /* @__PURE__ */ React__namespace.createElement(core.Group, __spreadValues$
|
|
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$
|
|
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$
|
|
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$
|
|
186
|
-
var __defProps$
|
|
187
|
-
var __getOwnPropDescs$
|
|
188
|
-
var __getOwnPropSymbols$
|
|
189
|
-
var __hasOwnProp$
|
|
190
|
-
var __propIsEnum$
|
|
191
|
-
var __defNormalProp$
|
|
192
|
-
var __spreadValues$
|
|
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$
|
|
195
|
-
__defNormalProp$
|
|
196
|
-
if (__getOwnPropSymbols$
|
|
197
|
-
for (var prop of __getOwnPropSymbols$
|
|
198
|
-
if (__propIsEnum$
|
|
199
|
-
__defNormalProp$
|
|
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$
|
|
204
|
-
const useStyles$
|
|
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$
|
|
235
|
+
link: __spreadProps$9(__spreadValues$c({}, theme.fn.focusStyles()), {
|
|
236
236
|
display: "flex",
|
|
237
237
|
alignItems: "center",
|
|
238
238
|
textDecoration: "none",
|
|
@@ -286,6 +286,7 @@ const data = [
|
|
|
286
286
|
{ label: "Pathways", icon: icons.IconRoute },
|
|
287
287
|
{ label: "Badges", icon: icons.IconAlbum },
|
|
288
288
|
{ label: "Lessons", icon: icons.IconLambda },
|
|
289
|
+
{ label: "File Locker", icon: icons.IconClipboard },
|
|
289
290
|
{
|
|
290
291
|
label: "Organization",
|
|
291
292
|
icon: icons.IconBuilding,
|
|
@@ -301,7 +302,7 @@ const TRIAL_PAGES = [
|
|
|
301
302
|
"Badges"
|
|
302
303
|
];
|
|
303
304
|
function Navbar(props) {
|
|
304
|
-
const { classes, cx } = useStyles$
|
|
305
|
+
const { classes, cx } = useStyles$w();
|
|
305
306
|
const [burgerOpen, setBurgerOpen] = React__namespace.useState(false);
|
|
306
307
|
const toggle = () => setBurgerOpen(!burgerOpen);
|
|
307
308
|
const links = data.map((item) => {
|
|
@@ -314,12 +315,12 @@ function Navbar(props) {
|
|
|
314
315
|
}
|
|
315
316
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
316
317
|
LinksGroup,
|
|
317
|
-
__spreadProps$
|
|
318
|
+
__spreadProps$9(__spreadValues$c(__spreadValues$c({
|
|
318
319
|
key: item.label,
|
|
319
320
|
active: props.active
|
|
320
321
|
}, item), context), {
|
|
321
322
|
links: (item.links || []).map((link) => {
|
|
322
|
-
return __spreadValues$
|
|
323
|
+
return __spreadValues$c(__spreadValues$c({}, link), props.links[`${item.label}/${link.label}`] || { notifications: 0, href: "" });
|
|
323
324
|
})
|
|
324
325
|
})
|
|
325
326
|
);
|
|
@@ -344,7 +345,7 @@ function Navbar(props) {
|
|
|
344
345
|
} }, /* @__PURE__ */ React__namespace.createElement(icons.IconLogout, { className: classes.linkIcon, stroke: 1.5 }), /* @__PURE__ */ React__namespace.createElement("span", null, "Logout"))))));
|
|
345
346
|
}
|
|
346
347
|
|
|
347
|
-
const useStyles$
|
|
348
|
+
const useStyles$v = core.createStyles((theme) => ({
|
|
348
349
|
inner: {
|
|
349
350
|
paddingTop: theme.spacing.xl,
|
|
350
351
|
paddingBottom: theme.spacing.xl * 4
|
|
@@ -380,7 +381,7 @@ const useStyles$t = core.createStyles((theme) => ({
|
|
|
380
381
|
}
|
|
381
382
|
}));
|
|
382
383
|
const GettingStarted = (props) => {
|
|
383
|
-
const { classes } = useStyles$
|
|
384
|
+
const { classes } = useStyles$v();
|
|
384
385
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
385
386
|
core.Modal,
|
|
386
387
|
{
|
|
@@ -394,7 +395,7 @@ const GettingStarted = (props) => {
|
|
|
394
395
|
);
|
|
395
396
|
};
|
|
396
397
|
|
|
397
|
-
const useStyles$
|
|
398
|
+
const useStyles$u = core.createStyles((theme) => ({
|
|
398
399
|
title: {
|
|
399
400
|
fontSize: 34,
|
|
400
401
|
fontWeight: 900,
|
|
@@ -435,7 +436,7 @@ const useStyles$s = core.createStyles((theme) => ({
|
|
|
435
436
|
}
|
|
436
437
|
}));
|
|
437
438
|
const SwitchAccount = (props) => {
|
|
438
|
-
const { classes, theme } = useStyles$
|
|
439
|
+
const { classes, theme } = useStyles$u();
|
|
439
440
|
const options = props.accounts.map((a) => {
|
|
440
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")));
|
|
441
442
|
});
|
|
@@ -452,7 +453,7 @@ const SwitchAccount = (props) => {
|
|
|
452
453
|
);
|
|
453
454
|
};
|
|
454
455
|
|
|
455
|
-
const useStyles$
|
|
456
|
+
const useStyles$t = core.createStyles((theme) => ({
|
|
456
457
|
root: {
|
|
457
458
|
display: "flex",
|
|
458
459
|
backgroundImage: `linear-gradient(-60deg, ${theme.colors[theme.primaryColor][4]} 0%, ${theme.colors[theme.primaryColor][7]} 100%)`,
|
|
@@ -496,7 +497,7 @@ const useStyles$r = core.createStyles((theme) => ({
|
|
|
496
497
|
}
|
|
497
498
|
}));
|
|
498
499
|
const StatsGroup = ({ data, footer }) => {
|
|
499
|
-
const { classes } = useStyles$
|
|
500
|
+
const { classes } = useStyles$t();
|
|
500
501
|
const stats = data.map((stat) => {
|
|
501
502
|
const value = (() => {
|
|
502
503
|
if (stat.unit === "%") {
|
|
@@ -516,7 +517,7 @@ const Tabs = (props) => {
|
|
|
516
517
|
return /* @__PURE__ */ React__namespace.createElement(core.Tabs, { value: props.value, onTabChange: props.onChange }, /* @__PURE__ */ React__namespace.createElement(core.Tabs.List, null, tabs));
|
|
517
518
|
};
|
|
518
519
|
|
|
519
|
-
const useStyles$
|
|
520
|
+
const useStyles$s = core.createStyles((theme) => ({
|
|
520
521
|
button: {
|
|
521
522
|
borderTopRightRadius: 0,
|
|
522
523
|
borderBottomRightRadius: 0,
|
|
@@ -530,8 +531,8 @@ const useStyles$q = core.createStyles((theme) => ({
|
|
|
530
531
|
borderLeft: `1px solid ${theme.colorScheme === "dark" ? theme.colors.dark[7] : theme.white}`
|
|
531
532
|
}
|
|
532
533
|
}));
|
|
533
|
-
const SplitButton$
|
|
534
|
-
const { classes, theme } = useStyles$
|
|
534
|
+
const SplitButton$5 = (props) => {
|
|
535
|
+
const { classes, theme } = useStyles$s();
|
|
535
536
|
theme.colors[theme.primaryColor][theme.colorScheme === "dark" ? 5 : 6];
|
|
536
537
|
return /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "sm" }, /* @__PURE__ */ React__namespace.createElement(
|
|
537
538
|
core.Button,
|
|
@@ -559,7 +560,7 @@ const SplitButton$4 = (props) => {
|
|
|
559
560
|
));
|
|
560
561
|
};
|
|
561
562
|
|
|
562
|
-
const useStyles$
|
|
563
|
+
const useStyles$r = core.createStyles((theme) => ({
|
|
563
564
|
wrapper: {
|
|
564
565
|
display: "flex",
|
|
565
566
|
alignItems: "center",
|
|
@@ -610,13 +611,13 @@ const useStyles$p = core.createStyles((theme) => ({
|
|
|
610
611
|
}
|
|
611
612
|
}));
|
|
612
613
|
const PlaceholderBanner = (props) => {
|
|
613
|
-
const { classes } = useStyles$
|
|
614
|
+
const { classes } = useStyles$r();
|
|
614
615
|
const title = props.title || "Nothing to display";
|
|
615
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.";
|
|
616
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 }));
|
|
617
618
|
};
|
|
618
619
|
|
|
619
|
-
function Stack$
|
|
620
|
+
function Stack$4(props) {
|
|
620
621
|
if (props.items.length === 0) {
|
|
621
622
|
return null;
|
|
622
623
|
}
|
|
@@ -664,28 +665,28 @@ function useSortableData(items, config = { key: "", direction: null }) {
|
|
|
664
665
|
return { items: sortedItems, requestSort, sortConfig };
|
|
665
666
|
}
|
|
666
667
|
|
|
667
|
-
var __defProp$
|
|
668
|
-
var __defProps$
|
|
669
|
-
var __getOwnPropDescs$
|
|
670
|
-
var __getOwnPropSymbols$
|
|
671
|
-
var __hasOwnProp$
|
|
672
|
-
var __propIsEnum$
|
|
673
|
-
var __defNormalProp$
|
|
674
|
-
var __spreadValues$
|
|
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) => {
|
|
675
676
|
for (var prop in b || (b = {}))
|
|
676
|
-
if (__hasOwnProp$
|
|
677
|
-
__defNormalProp$
|
|
678
|
-
if (__getOwnPropSymbols$
|
|
679
|
-
for (var prop of __getOwnPropSymbols$
|
|
680
|
-
if (__propIsEnum$
|
|
681
|
-
__defNormalProp$
|
|
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]);
|
|
682
683
|
}
|
|
683
684
|
return a;
|
|
684
685
|
};
|
|
685
|
-
var __spreadProps$
|
|
686
|
-
function Table$
|
|
686
|
+
var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
|
|
687
|
+
function Table$k(props) {
|
|
687
688
|
const preparedItems = React__namespace.useMemo(() => {
|
|
688
|
-
return props.items.map((item) => __spreadProps$
|
|
689
|
+
return props.items.map((item) => __spreadProps$8(__spreadValues$b({}, item), {
|
|
689
690
|
status: item.isComplete ? 1 : 0
|
|
690
691
|
}));
|
|
691
692
|
}, [props.items]);
|
|
@@ -731,13 +732,13 @@ function Table$j(props) {
|
|
|
731
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"))
|
|
732
733
|
}],
|
|
733
734
|
rowExpansion: {
|
|
734
|
-
content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack$
|
|
735
|
+
content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack$4, { items: record.lessons })
|
|
735
736
|
}
|
|
736
737
|
}
|
|
737
738
|
));
|
|
738
739
|
}
|
|
739
740
|
|
|
740
|
-
function Table$
|
|
741
|
+
function Table$j(props) {
|
|
741
742
|
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
742
743
|
if (props.items.length === 0) {
|
|
743
744
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
@@ -782,7 +783,7 @@ function Table$i(props) {
|
|
|
782
783
|
));
|
|
783
784
|
}
|
|
784
785
|
|
|
785
|
-
const useStyles$
|
|
786
|
+
const useStyles$q = core.createStyles((theme) => ({
|
|
786
787
|
title: {
|
|
787
788
|
fontSize: 34,
|
|
788
789
|
fontWeight: 900,
|
|
@@ -795,7 +796,7 @@ const useStyles$o = core.createStyles((theme) => ({
|
|
|
795
796
|
}
|
|
796
797
|
}));
|
|
797
798
|
const Badge = (props) => {
|
|
798
|
-
const { classes } = useStyles$
|
|
799
|
+
const { classes } = useStyles$q();
|
|
799
800
|
const [tab, setTab] = React.useState("lessons");
|
|
800
801
|
const numberOfStudents = props.students.length;
|
|
801
802
|
const numberOfBadges = numberOfStudents > 0 ? props.students.filter((u) => u.isComplete).length : 0;
|
|
@@ -809,7 +810,7 @@ const Badge = (props) => {
|
|
|
809
810
|
},
|
|
810
811
|
"Back"
|
|
811
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(
|
|
812
|
-
SplitButton$
|
|
813
|
+
SplitButton$5,
|
|
813
814
|
{
|
|
814
815
|
href: props.href,
|
|
815
816
|
onCopyLinkClick: props.onCopyLinkClick,
|
|
@@ -847,13 +848,13 @@ const Badge = (props) => {
|
|
|
847
848
|
onChange: setTab
|
|
848
849
|
}
|
|
849
850
|
), (!!props.trial || tab === "lessons") && /* @__PURE__ */ React__namespace.createElement(
|
|
850
|
-
Table$
|
|
851
|
+
Table$j,
|
|
851
852
|
{
|
|
852
853
|
loading: props.loading,
|
|
853
854
|
items: props.lessons
|
|
854
855
|
}
|
|
855
856
|
), !props.trial && tab === "students" && /* @__PURE__ */ React__namespace.createElement(
|
|
856
|
-
Table$
|
|
857
|
+
Table$k,
|
|
857
858
|
{
|
|
858
859
|
loading: props.loading,
|
|
859
860
|
items: props.students
|
|
@@ -861,7 +862,7 @@ const Badge = (props) => {
|
|
|
861
862
|
)))))));
|
|
862
863
|
};
|
|
863
864
|
|
|
864
|
-
function Table$
|
|
865
|
+
function Table$i(props) {
|
|
865
866
|
if (props.items.length === 0) {
|
|
866
867
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
867
868
|
PlaceholderBanner,
|
|
@@ -893,7 +894,7 @@ function Table$h(props) {
|
|
|
893
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)));
|
|
894
895
|
}
|
|
895
896
|
|
|
896
|
-
const useStyles$
|
|
897
|
+
const useStyles$p = core.createStyles((theme) => ({
|
|
897
898
|
title: {
|
|
898
899
|
fontSize: 34,
|
|
899
900
|
fontWeight: 900,
|
|
@@ -906,7 +907,7 @@ const useStyles$n = core.createStyles((theme) => ({
|
|
|
906
907
|
}
|
|
907
908
|
}));
|
|
908
909
|
const Badges = (props) => {
|
|
909
|
-
const { classes } = useStyles$
|
|
910
|
+
const { classes } = useStyles$p();
|
|
910
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(
|
|
911
912
|
core.Autocomplete,
|
|
912
913
|
{
|
|
@@ -915,7 +916,7 @@ const Badges = (props) => {
|
|
|
915
916
|
onChange: props.onAutocompleteChange
|
|
916
917
|
}
|
|
917
918
|
), /* @__PURE__ */ React__namespace.createElement("div", { style: { position: "relative" } }, /* @__PURE__ */ React__namespace.createElement(core.LoadingOverlay, { visible: props.loading, overlayBlur: 2 }), /* @__PURE__ */ React__namespace.createElement(
|
|
918
|
-
Table$
|
|
919
|
+
Table$i,
|
|
919
920
|
{
|
|
920
921
|
loading: props.loading,
|
|
921
922
|
items: props.badges
|
|
@@ -923,7 +924,7 @@ const Badges = (props) => {
|
|
|
923
924
|
))));
|
|
924
925
|
};
|
|
925
926
|
|
|
926
|
-
function Table$
|
|
927
|
+
function Table$h(props) {
|
|
927
928
|
if (props.items.length === 0) {
|
|
928
929
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
929
930
|
PlaceholderBanner,
|
|
@@ -963,7 +964,7 @@ function relativeTimeFromElapsed(elapsed) {
|
|
|
963
964
|
return "";
|
|
964
965
|
}
|
|
965
966
|
|
|
966
|
-
function Table$
|
|
967
|
+
function Table$g(props) {
|
|
967
968
|
if (props.items.length === 0) {
|
|
968
969
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
969
970
|
PlaceholderBanner,
|
|
@@ -979,7 +980,7 @@ function Table$f(props) {
|
|
|
979
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)));
|
|
980
981
|
}
|
|
981
982
|
|
|
982
|
-
function Table$
|
|
983
|
+
function Table$f(props) {
|
|
983
984
|
if (props.items.length === 0) {
|
|
984
985
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
985
986
|
PlaceholderBanner,
|
|
@@ -995,7 +996,7 @@ function Table$e(props) {
|
|
|
995
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)));
|
|
996
997
|
}
|
|
997
998
|
|
|
998
|
-
function Table$
|
|
999
|
+
function Table$e(props) {
|
|
999
1000
|
if (props.items.length === 0) {
|
|
1000
1001
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
1001
1002
|
PlaceholderBanner,
|
|
@@ -1011,7 +1012,7 @@ function Table$d(props) {
|
|
|
1011
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)));
|
|
1012
1013
|
}
|
|
1013
1014
|
|
|
1014
|
-
function Table$
|
|
1015
|
+
function Table$d(props) {
|
|
1015
1016
|
if (props.items.length === 0) {
|
|
1016
1017
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
1017
1018
|
PlaceholderBanner,
|
|
@@ -1076,33 +1077,33 @@ const Dashboard = (props) => {
|
|
|
1076
1077
|
onChange: setTab
|
|
1077
1078
|
}
|
|
1078
1079
|
), tab === "impact" && /* @__PURE__ */ React__namespace.createElement(
|
|
1079
|
-
Table$
|
|
1080
|
+
Table$f,
|
|
1080
1081
|
{
|
|
1081
1082
|
loading: props.loading,
|
|
1082
1083
|
items: props.impacts
|
|
1083
1084
|
}
|
|
1084
1085
|
), tab === "reflections" && /* @__PURE__ */ React__namespace.createElement(
|
|
1085
|
-
Table$
|
|
1086
|
+
Table$g,
|
|
1086
1087
|
{
|
|
1087
1088
|
loading: props.loading,
|
|
1088
1089
|
items: props.reflections
|
|
1089
1090
|
}
|
|
1090
1091
|
), tab === "badges" && /* @__PURE__ */ React__namespace.createElement(
|
|
1091
|
-
Table$
|
|
1092
|
+
Table$e,
|
|
1092
1093
|
{
|
|
1093
1094
|
loading: props.loading,
|
|
1094
1095
|
items: props.badges,
|
|
1095
1096
|
onClick: props.onBadgeClick
|
|
1096
1097
|
}
|
|
1097
1098
|
), tab === "lessons" && /* @__PURE__ */ React__namespace.createElement(
|
|
1098
|
-
Table$
|
|
1099
|
+
Table$d,
|
|
1099
1100
|
{
|
|
1100
1101
|
loading: props.loading,
|
|
1101
1102
|
items: props.lessons,
|
|
1102
1103
|
onClick: props.onLessonClick
|
|
1103
1104
|
}
|
|
1104
1105
|
), tab === "students" && /* @__PURE__ */ React__namespace.createElement(
|
|
1105
|
-
Table$
|
|
1106
|
+
Table$h,
|
|
1106
1107
|
{
|
|
1107
1108
|
loading: props.loading,
|
|
1108
1109
|
items: props.students,
|
|
@@ -1111,7 +1112,7 @@ const Dashboard = (props) => {
|
|
|
1111
1112
|
)))))));
|
|
1112
1113
|
};
|
|
1113
1114
|
|
|
1114
|
-
const SplitButton$
|
|
1115
|
+
const SplitButton$4 = (props) => {
|
|
1115
1116
|
return /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "sm" }, /* @__PURE__ */ React__namespace.createElement(
|
|
1116
1117
|
core.Button,
|
|
1117
1118
|
{
|
|
@@ -1136,7 +1137,7 @@ const SplitButton$3 = (props) => {
|
|
|
1136
1137
|
));
|
|
1137
1138
|
};
|
|
1138
1139
|
|
|
1139
|
-
const useStyles$
|
|
1140
|
+
const useStyles$o = core.createStyles((theme) => ({
|
|
1140
1141
|
th: { padding: "0 !important" },
|
|
1141
1142
|
control: {
|
|
1142
1143
|
width: "100%",
|
|
@@ -1147,11 +1148,11 @@ const useStyles$m = core.createStyles((theme) => ({
|
|
|
1147
1148
|
}
|
|
1148
1149
|
}));
|
|
1149
1150
|
function Th$2({ children, reversed, sorted, onSort }) {
|
|
1150
|
-
const { classes } = useStyles$
|
|
1151
|
+
const { classes } = useStyles$o();
|
|
1151
1152
|
const Icon = sorted ? reversed ? icons.IconChevronUp : icons.IconChevronDown : icons.IconSelector;
|
|
1152
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 })))));
|
|
1153
1154
|
}
|
|
1154
|
-
function Table$
|
|
1155
|
+
function Table$c(props) {
|
|
1155
1156
|
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
1156
1157
|
if (props.items.length === 0) {
|
|
1157
1158
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
@@ -1232,26 +1233,26 @@ function Table$b(props) {
|
|
|
1232
1233
|
), /* @__PURE__ */ React__namespace.createElement("th", null), " ")), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
|
|
1233
1234
|
}
|
|
1234
1235
|
|
|
1235
|
-
var __defProp$
|
|
1236
|
-
var __defProps$
|
|
1237
|
-
var __getOwnPropDescs$
|
|
1238
|
-
var __getOwnPropSymbols$
|
|
1239
|
-
var __hasOwnProp$
|
|
1240
|
-
var __propIsEnum$
|
|
1241
|
-
var __defNormalProp$
|
|
1242
|
-
var __spreadValues$
|
|
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) => {
|
|
1243
1244
|
for (var prop in b || (b = {}))
|
|
1244
|
-
if (__hasOwnProp$
|
|
1245
|
-
__defNormalProp$
|
|
1246
|
-
if (__getOwnPropSymbols$
|
|
1247
|
-
for (var prop of __getOwnPropSymbols$
|
|
1248
|
-
if (__propIsEnum$
|
|
1249
|
-
__defNormalProp$
|
|
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]);
|
|
1250
1251
|
}
|
|
1251
1252
|
return a;
|
|
1252
1253
|
};
|
|
1253
|
-
var __spreadProps$
|
|
1254
|
-
const useStyles$
|
|
1254
|
+
var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
|
|
1255
|
+
const useStyles$n = core.createStyles((theme) => ({
|
|
1255
1256
|
title: {
|
|
1256
1257
|
fontSize: 34,
|
|
1257
1258
|
fontWeight: 900,
|
|
@@ -1284,7 +1285,7 @@ const useStyles$l = core.createStyles((theme) => ({
|
|
|
1284
1285
|
}
|
|
1285
1286
|
}));
|
|
1286
1287
|
const Class = (props) => {
|
|
1287
|
-
const { classes } = useStyles$
|
|
1288
|
+
const { classes } = useStyles$n();
|
|
1288
1289
|
const form$1 = form.useForm({
|
|
1289
1290
|
initialValues: {
|
|
1290
1291
|
classId: "",
|
|
@@ -1316,27 +1317,27 @@ const Class = (props) => {
|
|
|
1316
1317
|
padding: "xl",
|
|
1317
1318
|
size: "xl"
|
|
1318
1319
|
},
|
|
1319
|
-
/* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(DropzoneButton$1, __spreadProps$
|
|
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(() => {
|
|
1320
1321
|
const values = form$1.values;
|
|
1321
1322
|
form$1.reset();
|
|
1322
1323
|
setOpened(false);
|
|
1323
1324
|
props.onCreateMembers && props.onCreateMembers([values]);
|
|
1324
1325
|
}) }, /* @__PURE__ */ React__namespace.createElement(core.Stack, null, /* @__PURE__ */ React__namespace.createElement(
|
|
1325
1326
|
core.TextInput,
|
|
1326
|
-
__spreadValues$
|
|
1327
|
+
__spreadValues$a({
|
|
1327
1328
|
withAsterisk: true,
|
|
1328
1329
|
label: "Email",
|
|
1329
1330
|
placeholder: "Email"
|
|
1330
1331
|
}, form$1.getInputProps("email"))
|
|
1331
1332
|
), /* @__PURE__ */ React__namespace.createElement(core.Group, { grow: true }, /* @__PURE__ */ React__namespace.createElement(
|
|
1332
1333
|
core.TextInput,
|
|
1333
|
-
__spreadValues$
|
|
1334
|
+
__spreadValues$a({
|
|
1334
1335
|
label: "Given name",
|
|
1335
1336
|
placeholder: "Given name"
|
|
1336
1337
|
}, form$1.getInputProps("givenName"))
|
|
1337
1338
|
), /* @__PURE__ */ React__namespace.createElement(
|
|
1338
1339
|
core.TextInput,
|
|
1339
|
-
__spreadValues$
|
|
1340
|
+
__spreadValues$a({
|
|
1340
1341
|
label: "Family name",
|
|
1341
1342
|
placeholder: "Family name"
|
|
1342
1343
|
}, form$1.getInputProps("familyName"))
|
|
@@ -1350,7 +1351,7 @@ const Class = (props) => {
|
|
|
1350
1351
|
},
|
|
1351
1352
|
"Back"
|
|
1352
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(
|
|
1353
|
-
SplitButton$
|
|
1354
|
+
SplitButton$4,
|
|
1354
1355
|
{
|
|
1355
1356
|
onAddMembersClick: () => setOpened(true),
|
|
1356
1357
|
onCopyClassLinkClick: props.onCopyLinkClick,
|
|
@@ -1375,7 +1376,7 @@ const Class = (props) => {
|
|
|
1375
1376
|
value: props.numberOfLessonsCompleted
|
|
1376
1377
|
}
|
|
1377
1378
|
] }), /* @__PURE__ */ React__namespace.createElement(
|
|
1378
|
-
Table$
|
|
1379
|
+
Table$c,
|
|
1379
1380
|
{
|
|
1380
1381
|
loading: props.loading,
|
|
1381
1382
|
items: props.members,
|
|
@@ -1385,7 +1386,7 @@ const Class = (props) => {
|
|
|
1385
1386
|
))))));
|
|
1386
1387
|
};
|
|
1387
1388
|
const DropzoneButton$1 = (props) => {
|
|
1388
|
-
const { classes, theme } = useStyles$
|
|
1389
|
+
const { classes, theme } = useStyles$n();
|
|
1389
1390
|
const openRef = React__namespace.useRef(null);
|
|
1390
1391
|
const [loading, setLoading] = React__namespace.useState(false);
|
|
1391
1392
|
const onDrop = React__namespace.useCallback((acceptedFiles) => {
|
|
@@ -1431,7 +1432,7 @@ const DropzoneButton$1 = (props) => {
|
|
|
1431
1432
|
} }, "Select file"));
|
|
1432
1433
|
};
|
|
1433
1434
|
|
|
1434
|
-
const useStyles$
|
|
1435
|
+
const useStyles$m = core.createStyles((theme) => ({
|
|
1435
1436
|
th: { padding: "0 !important" },
|
|
1436
1437
|
control: {
|
|
1437
1438
|
width: "100%",
|
|
@@ -1442,11 +1443,11 @@ const useStyles$k = core.createStyles((theme) => ({
|
|
|
1442
1443
|
}
|
|
1443
1444
|
}));
|
|
1444
1445
|
function Th$1({ children, reversed, sorted, onSort }) {
|
|
1445
|
-
const { classes } = useStyles$
|
|
1446
|
+
const { classes } = useStyles$m();
|
|
1446
1447
|
const Icon = sorted ? reversed ? icons.IconChevronUp : icons.IconChevronDown : icons.IconSelector;
|
|
1447
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 })))));
|
|
1448
1449
|
}
|
|
1449
|
-
function Table$
|
|
1450
|
+
function Table$b(props) {
|
|
1450
1451
|
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
1451
1452
|
if (props.items.length === 0) {
|
|
1452
1453
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
@@ -1487,23 +1488,23 @@ function Table$a(props) {
|
|
|
1487
1488
|
), /* @__PURE__ */ React__namespace.createElement("th", null))), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
|
|
1488
1489
|
}
|
|
1489
1490
|
|
|
1490
|
-
var __defProp$
|
|
1491
|
-
var __getOwnPropSymbols$
|
|
1492
|
-
var __hasOwnProp$
|
|
1493
|
-
var __propIsEnum$
|
|
1494
|
-
var __defNormalProp$
|
|
1495
|
-
var __spreadValues$
|
|
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) => {
|
|
1496
1497
|
for (var prop in b || (b = {}))
|
|
1497
|
-
if (__hasOwnProp$
|
|
1498
|
-
__defNormalProp$
|
|
1499
|
-
if (__getOwnPropSymbols$
|
|
1500
|
-
for (var prop of __getOwnPropSymbols$
|
|
1501
|
-
if (__propIsEnum$
|
|
1502
|
-
__defNormalProp$
|
|
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]);
|
|
1503
1504
|
}
|
|
1504
1505
|
return a;
|
|
1505
1506
|
};
|
|
1506
|
-
const useStyles$
|
|
1507
|
+
const useStyles$l = core.createStyles((theme) => ({
|
|
1507
1508
|
title: {
|
|
1508
1509
|
fontSize: 34,
|
|
1509
1510
|
fontWeight: 900,
|
|
@@ -1516,7 +1517,7 @@ const useStyles$j = core.createStyles((theme) => ({
|
|
|
1516
1517
|
}
|
|
1517
1518
|
}));
|
|
1518
1519
|
const Classes = (props) => {
|
|
1519
|
-
const { classes } = useStyles$
|
|
1520
|
+
const { classes } = useStyles$l();
|
|
1520
1521
|
const form$1 = form.useForm({
|
|
1521
1522
|
initialValues: {
|
|
1522
1523
|
classId: "",
|
|
@@ -1546,14 +1547,14 @@ const Classes = (props) => {
|
|
|
1546
1547
|
props.onCreateClass && props.onCreateClass(values);
|
|
1547
1548
|
}) }, /* @__PURE__ */ React__namespace.createElement(core.Stack, null, /* @__PURE__ */ React__namespace.createElement(
|
|
1548
1549
|
core.TextInput,
|
|
1549
|
-
__spreadValues$
|
|
1550
|
+
__spreadValues$9({
|
|
1550
1551
|
withAsterisk: true,
|
|
1551
1552
|
label: "Name",
|
|
1552
1553
|
placeholder: "Class name"
|
|
1553
1554
|
}, form$1.getInputProps("name"))
|
|
1554
1555
|
), /* @__PURE__ */ React__namespace.createElement(
|
|
1555
1556
|
core.TextInput,
|
|
1556
|
-
__spreadValues$
|
|
1557
|
+
__spreadValues$9({
|
|
1557
1558
|
label: "Description",
|
|
1558
1559
|
placeholder: "A class for my first period English students"
|
|
1559
1560
|
}, form$1.getInputProps("description"))
|
|
@@ -1578,7 +1579,7 @@ const Classes = (props) => {
|
|
|
1578
1579
|
onChange: props.onAutocompleteChange
|
|
1579
1580
|
}
|
|
1580
1581
|
), /* @__PURE__ */ React__namespace.createElement(
|
|
1581
|
-
Table$
|
|
1582
|
+
Table$b,
|
|
1582
1583
|
{
|
|
1583
1584
|
loading: props.loading,
|
|
1584
1585
|
items: props.classes,
|
|
@@ -1587,7 +1588,7 @@ const Classes = (props) => {
|
|
|
1587
1588
|
))))));
|
|
1588
1589
|
};
|
|
1589
1590
|
|
|
1590
|
-
const useStyles$
|
|
1591
|
+
const useStyles$k = core.createStyles((theme) => ({
|
|
1591
1592
|
title: {
|
|
1592
1593
|
fontSize: 34,
|
|
1593
1594
|
fontWeight: 900,
|
|
@@ -1601,11 +1602,11 @@ const useStyles$i = core.createStyles((theme) => ({
|
|
|
1601
1602
|
}
|
|
1602
1603
|
}));
|
|
1603
1604
|
const UserInfo = (props) => {
|
|
1604
|
-
const { classes } = useStyles$
|
|
1605
|
+
const { classes } = useStyles$k();
|
|
1605
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));
|
|
1606
1607
|
};
|
|
1607
1608
|
|
|
1608
|
-
function Table$
|
|
1609
|
+
function Table$a(props) {
|
|
1609
1610
|
if (props.items.length === 0) {
|
|
1610
1611
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
1611
1612
|
PlaceholderBanner,
|
|
@@ -1641,7 +1642,7 @@ function Table$9(props) {
|
|
|
1641
1642
|
));
|
|
1642
1643
|
}
|
|
1643
1644
|
|
|
1644
|
-
function Table$
|
|
1645
|
+
function Table$9(props) {
|
|
1645
1646
|
if (props.items.length === 0) {
|
|
1646
1647
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
1647
1648
|
PlaceholderBanner,
|
|
@@ -1657,7 +1658,7 @@ function Table$8(props) {
|
|
|
1657
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)));
|
|
1658
1659
|
}
|
|
1659
1660
|
|
|
1660
|
-
function Table$
|
|
1661
|
+
function Table$8(props) {
|
|
1661
1662
|
if (props.items.length === 0) {
|
|
1662
1663
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
1663
1664
|
PlaceholderBanner,
|
|
@@ -1719,19 +1720,19 @@ const Student = (props) => {
|
|
|
1719
1720
|
onChange: setTab
|
|
1720
1721
|
}
|
|
1721
1722
|
), tab === "badges" && /* @__PURE__ */ React__namespace.createElement(
|
|
1722
|
-
Table$
|
|
1723
|
+
Table$a,
|
|
1723
1724
|
{
|
|
1724
1725
|
loading: props.loading,
|
|
1725
1726
|
items: props.badges
|
|
1726
1727
|
}
|
|
1727
1728
|
), tab === "answers" && /* @__PURE__ */ React__namespace.createElement(
|
|
1728
|
-
Table$
|
|
1729
|
+
Table$9,
|
|
1729
1730
|
{
|
|
1730
1731
|
loading: props.loading,
|
|
1731
1732
|
items: props.answers
|
|
1732
1733
|
}
|
|
1733
1734
|
), tab === "reflections" && /* @__PURE__ */ React__namespace.createElement(
|
|
1734
|
-
Table$
|
|
1735
|
+
Table$8,
|
|
1735
1736
|
{
|
|
1736
1737
|
loading: props.loading,
|
|
1737
1738
|
items: props.reflections
|
|
@@ -1739,7 +1740,7 @@ const Student = (props) => {
|
|
|
1739
1740
|
))))));
|
|
1740
1741
|
};
|
|
1741
1742
|
|
|
1742
|
-
const useStyles$
|
|
1743
|
+
const useStyles$j = core.createStyles((theme, props) => {
|
|
1743
1744
|
const from = props.from || "blue";
|
|
1744
1745
|
const to = props.to || "green";
|
|
1745
1746
|
return {
|
|
@@ -1767,7 +1768,7 @@ const useStyles$h = core.createStyles((theme, props) => {
|
|
|
1767
1768
|
};
|
|
1768
1769
|
});
|
|
1769
1770
|
function CardGradient(props) {
|
|
1770
|
-
const { classes } = useStyles$
|
|
1771
|
+
const { classes } = useStyles$j(props);
|
|
1771
1772
|
const from = props.from || "blue";
|
|
1772
1773
|
const to = props.to || "green";
|
|
1773
1774
|
const icon = props.icon || /* @__PURE__ */ React__namespace.createElement(icons.IconColorSwatch, { size: 28, stroke: 1.5 });
|
|
@@ -1783,35 +1784,35 @@ function CardGradient(props) {
|
|
|
1783
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));
|
|
1784
1785
|
}
|
|
1785
1786
|
|
|
1786
|
-
var __defProp$
|
|
1787
|
-
var __getOwnPropSymbols$
|
|
1788
|
-
var __hasOwnProp$
|
|
1789
|
-
var __propIsEnum$
|
|
1790
|
-
var __defNormalProp$
|
|
1791
|
-
var __spreadValues$
|
|
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) => {
|
|
1792
1793
|
for (var prop in b || (b = {}))
|
|
1793
|
-
if (__hasOwnProp$
|
|
1794
|
-
__defNormalProp$
|
|
1795
|
-
if (__getOwnPropSymbols$
|
|
1796
|
-
for (var prop of __getOwnPropSymbols$
|
|
1797
|
-
if (__propIsEnum$
|
|
1798
|
-
__defNormalProp$
|
|
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]);
|
|
1799
1800
|
}
|
|
1800
1801
|
return a;
|
|
1801
1802
|
};
|
|
1802
1803
|
var __objRest$1 = (source, exclude) => {
|
|
1803
1804
|
var target = {};
|
|
1804
1805
|
for (var prop in source)
|
|
1805
|
-
if (__hasOwnProp$
|
|
1806
|
+
if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
1806
1807
|
target[prop] = source[prop];
|
|
1807
|
-
if (source != null && __getOwnPropSymbols$
|
|
1808
|
-
for (var prop of __getOwnPropSymbols$
|
|
1809
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum$
|
|
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))
|
|
1810
1811
|
target[prop] = source[prop];
|
|
1811
1812
|
}
|
|
1812
1813
|
return target;
|
|
1813
1814
|
};
|
|
1814
|
-
const useStyles$
|
|
1815
|
+
const useStyles$i = core.createStyles((theme) => ({
|
|
1815
1816
|
card: {
|
|
1816
1817
|
height: 240,
|
|
1817
1818
|
backgroundSize: "cover",
|
|
@@ -1856,7 +1857,7 @@ const TenantBanner = (_a) => {
|
|
|
1856
1857
|
"className",
|
|
1857
1858
|
"code"
|
|
1858
1859
|
]);
|
|
1859
|
-
const { classes, cx, theme } = useStyles$
|
|
1860
|
+
const { classes, cx, theme } = useStyles$i();
|
|
1860
1861
|
const handleCopy = async () => {
|
|
1861
1862
|
if (!code)
|
|
1862
1863
|
return;
|
|
@@ -1873,9 +1874,9 @@ const TenantBanner = (_a) => {
|
|
|
1873
1874
|
};
|
|
1874
1875
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
1875
1876
|
core.Card,
|
|
1876
|
-
__spreadValues$
|
|
1877
|
+
__spreadValues$8({
|
|
1877
1878
|
radius: "md",
|
|
1878
|
-
style: __spreadValues$
|
|
1879
|
+
style: __spreadValues$8({ backgroundImage: `url(${image})` }, style),
|
|
1879
1880
|
className: cx(classes.card, className)
|
|
1880
1881
|
}, others),
|
|
1881
1882
|
/* @__PURE__ */ React__namespace.createElement(
|
|
@@ -1954,10 +1955,17 @@ const Home = (props) => {
|
|
|
1954
1955
|
description: "Bite-sized activities and learning experiences accelerating students achievement",
|
|
1955
1956
|
onClick: props.onLessonsClick
|
|
1956
1957
|
}
|
|
1958
|
+
)), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, null, /* @__PURE__ */ React__namespace.createElement(
|
|
1959
|
+
CardGradient,
|
|
1960
|
+
{
|
|
1961
|
+
title: "File Locker",
|
|
1962
|
+
description: "A secure space to view student-submitted work and provide feedback",
|
|
1963
|
+
onClick: props.onFileLockerClick
|
|
1964
|
+
}
|
|
1957
1965
|
)))));
|
|
1958
1966
|
};
|
|
1959
1967
|
|
|
1960
|
-
function Table$
|
|
1968
|
+
function Table$7(props) {
|
|
1961
1969
|
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
1962
1970
|
if (props.items.length === 0) {
|
|
1963
1971
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
@@ -1989,7 +1997,7 @@ function Table$6(props) {
|
|
|
1989
1997
|
));
|
|
1990
1998
|
}
|
|
1991
1999
|
|
|
1992
|
-
const useStyles$
|
|
2000
|
+
const useStyles$h = core.createStyles((theme) => ({
|
|
1993
2001
|
button: {
|
|
1994
2002
|
borderTopRightRadius: 0,
|
|
1995
2003
|
borderBottomRightRadius: 0,
|
|
@@ -2003,8 +2011,8 @@ const useStyles$f = core.createStyles((theme) => ({
|
|
|
2003
2011
|
borderLeft: `1px solid ${theme.colorScheme === "dark" ? theme.colors.dark[7] : theme.white}`
|
|
2004
2012
|
}
|
|
2005
2013
|
}));
|
|
2006
|
-
const SplitButton$
|
|
2007
|
-
const { classes, theme } = useStyles$
|
|
2014
|
+
const SplitButton$3 = (props) => {
|
|
2015
|
+
const { classes, theme } = useStyles$h();
|
|
2008
2016
|
theme.colors[theme.primaryColor][theme.colorScheme === "dark" ? 5 : 6];
|
|
2009
2017
|
return /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "sm" }, /* @__PURE__ */ React__namespace.createElement(
|
|
2010
2018
|
core.Button,
|
|
@@ -2033,7 +2041,7 @@ const SplitButton$2 = (props) => {
|
|
|
2033
2041
|
));
|
|
2034
2042
|
};
|
|
2035
2043
|
|
|
2036
|
-
function Stack$
|
|
2044
|
+
function Stack$3(props) {
|
|
2037
2045
|
if (props.items.length === 0) {
|
|
2038
2046
|
return null;
|
|
2039
2047
|
}
|
|
@@ -2041,28 +2049,28 @@ function Stack$2(props) {
|
|
|
2041
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)));
|
|
2042
2050
|
}
|
|
2043
2051
|
|
|
2044
|
-
var __defProp$
|
|
2045
|
-
var __defProps$
|
|
2046
|
-
var __getOwnPropDescs$
|
|
2047
|
-
var __getOwnPropSymbols$
|
|
2048
|
-
var __hasOwnProp$
|
|
2049
|
-
var __propIsEnum$
|
|
2050
|
-
var __defNormalProp$
|
|
2051
|
-
var __spreadValues$
|
|
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) => {
|
|
2052
2060
|
for (var prop in b || (b = {}))
|
|
2053
|
-
if (__hasOwnProp$
|
|
2054
|
-
__defNormalProp$
|
|
2055
|
-
if (__getOwnPropSymbols$
|
|
2056
|
-
for (var prop of __getOwnPropSymbols$
|
|
2057
|
-
if (__propIsEnum$
|
|
2058
|
-
__defNormalProp$
|
|
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]);
|
|
2059
2067
|
}
|
|
2060
2068
|
return a;
|
|
2061
2069
|
};
|
|
2062
|
-
var __spreadProps$
|
|
2063
|
-
function Table$
|
|
2070
|
+
var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
|
|
2071
|
+
function Table$6(props) {
|
|
2064
2072
|
const preparedItems = React__namespace.useMemo(() => {
|
|
2065
|
-
return props.items.map((item) => __spreadProps$
|
|
2073
|
+
return props.items.map((item) => __spreadProps$6(__spreadValues$7({}, item), {
|
|
2066
2074
|
status: item.isComplete ? 2 : item.isStarted ? 1 : 0
|
|
2067
2075
|
}));
|
|
2068
2076
|
}, [props.items]);
|
|
@@ -2108,13 +2116,13 @@ function Table$5(props) {
|
|
|
2108
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"))
|
|
2109
2117
|
}],
|
|
2110
2118
|
rowExpansion: {
|
|
2111
|
-
content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack$
|
|
2119
|
+
content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack$3, { href: record.href, items: record.answers })
|
|
2112
2120
|
}
|
|
2113
2121
|
}
|
|
2114
2122
|
));
|
|
2115
2123
|
}
|
|
2116
2124
|
|
|
2117
|
-
function Stack$
|
|
2125
|
+
function Stack$2(props) {
|
|
2118
2126
|
const primaryAxis = React__namespace.useMemo(
|
|
2119
2127
|
() => ({
|
|
2120
2128
|
position: "left",
|
|
@@ -2182,7 +2190,7 @@ function Stack$1(props) {
|
|
|
2182
2190
|
}
|
|
2183
2191
|
const truncateWithEllipses = (text, max) => text.substr(0, max - 1) + (text.length > max ? "…" : "");
|
|
2184
2192
|
|
|
2185
|
-
const useStyles$
|
|
2193
|
+
const useStyles$g = core.createStyles((theme) => ({
|
|
2186
2194
|
title: {
|
|
2187
2195
|
fontSize: 34,
|
|
2188
2196
|
fontWeight: 900,
|
|
@@ -2195,7 +2203,7 @@ const useStyles$e = core.createStyles((theme) => ({
|
|
|
2195
2203
|
}
|
|
2196
2204
|
}));
|
|
2197
2205
|
const Lesson = (props) => {
|
|
2198
|
-
const { classes } = useStyles$
|
|
2206
|
+
const { classes } = useStyles$g();
|
|
2199
2207
|
const [tab, setTab] = React.useState("question");
|
|
2200
2208
|
const numberOfStudents = props.students.length;
|
|
2201
2209
|
const numberOfLessons = numberOfStudents > 0 ? props.students.filter((u) => u.isComplete).length : 0;
|
|
@@ -2246,7 +2254,7 @@ const Lesson = (props) => {
|
|
|
2246
2254
|
},
|
|
2247
2255
|
"Back"
|
|
2248
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(
|
|
2249
|
-
SplitButton$
|
|
2257
|
+
SplitButton$3,
|
|
2250
2258
|
{
|
|
2251
2259
|
href: props.href,
|
|
2252
2260
|
noExport: props.trial,
|
|
@@ -2287,19 +2295,19 @@ const Lesson = (props) => {
|
|
|
2287
2295
|
onChange: setTab
|
|
2288
2296
|
}
|
|
2289
2297
|
), tab === "question" && /* @__PURE__ */ React__namespace.createElement(
|
|
2290
|
-
Stack$
|
|
2298
|
+
Stack$2,
|
|
2291
2299
|
{
|
|
2292
2300
|
loading: props.loading,
|
|
2293
2301
|
items: props.questions
|
|
2294
2302
|
}
|
|
2295
2303
|
), tab === "reflections" && /* @__PURE__ */ React__namespace.createElement(
|
|
2296
|
-
Table$
|
|
2304
|
+
Table$7,
|
|
2297
2305
|
{
|
|
2298
2306
|
loading: props.loading,
|
|
2299
2307
|
items: props.reflections
|
|
2300
2308
|
}
|
|
2301
2309
|
), tab === "students" && /* @__PURE__ */ React__namespace.createElement(
|
|
2302
|
-
Table$
|
|
2310
|
+
Table$6,
|
|
2303
2311
|
{
|
|
2304
2312
|
loading: props.loading,
|
|
2305
2313
|
items: props.students
|
|
@@ -2307,7 +2315,7 @@ const Lesson = (props) => {
|
|
|
2307
2315
|
)))))));
|
|
2308
2316
|
};
|
|
2309
2317
|
|
|
2310
|
-
function Table$
|
|
2318
|
+
function Table$5(props) {
|
|
2311
2319
|
if (props.items.length === 0) {
|
|
2312
2320
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
2313
2321
|
PlaceholderBanner,
|
|
@@ -2339,7 +2347,7 @@ function Table$4(props) {
|
|
|
2339
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)));
|
|
2340
2348
|
}
|
|
2341
2349
|
|
|
2342
|
-
const useStyles$
|
|
2350
|
+
const useStyles$f = core.createStyles((theme) => ({
|
|
2343
2351
|
title: {
|
|
2344
2352
|
fontSize: 34,
|
|
2345
2353
|
fontWeight: 900,
|
|
@@ -2352,7 +2360,7 @@ const useStyles$d = core.createStyles((theme) => ({
|
|
|
2352
2360
|
}
|
|
2353
2361
|
}));
|
|
2354
2362
|
const Lessons = (props) => {
|
|
2355
|
-
const { classes } = useStyles$
|
|
2363
|
+
const { classes } = useStyles$f();
|
|
2356
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(
|
|
2357
2365
|
core.Autocomplete,
|
|
2358
2366
|
{
|
|
@@ -2361,7 +2369,7 @@ const Lessons = (props) => {
|
|
|
2361
2369
|
onChange: props.onAutocompleteChange
|
|
2362
2370
|
}
|
|
2363
2371
|
), /* @__PURE__ */ React__namespace.createElement("div", { style: { position: "relative" } }, /* @__PURE__ */ React__namespace.createElement(core.LoadingOverlay, { visible: props.loading, overlayBlur: 2 }), /* @__PURE__ */ React__namespace.createElement(
|
|
2364
|
-
Table$
|
|
2372
|
+
Table$5,
|
|
2365
2373
|
{
|
|
2366
2374
|
loading: props.loading,
|
|
2367
2375
|
items: props.lessons
|
|
@@ -2369,7 +2377,7 @@ const Lessons = (props) => {
|
|
|
2369
2377
|
))));
|
|
2370
2378
|
};
|
|
2371
2379
|
|
|
2372
|
-
const useStyles$
|
|
2380
|
+
const useStyles$e = core.createStyles((theme) => ({
|
|
2373
2381
|
title: {
|
|
2374
2382
|
fontSize: 22,
|
|
2375
2383
|
fontWeight: 900,
|
|
@@ -2388,7 +2396,7 @@ const useStyles$c = core.createStyles((theme) => ({
|
|
|
2388
2396
|
}
|
|
2389
2397
|
}));
|
|
2390
2398
|
function AccessCode(props) {
|
|
2391
|
-
const { classes } = useStyles$
|
|
2399
|
+
const { classes } = useStyles$e();
|
|
2392
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(
|
|
2393
2401
|
core.Anchor,
|
|
2394
2402
|
{
|
|
@@ -2416,7 +2424,7 @@ const monthNames = [
|
|
|
2416
2424
|
"November",
|
|
2417
2425
|
"December"
|
|
2418
2426
|
];
|
|
2419
|
-
const useStyles$
|
|
2427
|
+
const useStyles$d = core.createStyles((theme) => ({
|
|
2420
2428
|
title: {
|
|
2421
2429
|
fontSize: 34,
|
|
2422
2430
|
fontWeight: 900,
|
|
@@ -2446,7 +2454,7 @@ const useStyles$b = core.createStyles((theme) => ({
|
|
|
2446
2454
|
}
|
|
2447
2455
|
}));
|
|
2448
2456
|
const Organization = (props) => {
|
|
2449
|
-
const { classes } = useStyles$
|
|
2457
|
+
const { classes } = useStyles$d();
|
|
2450
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(
|
|
2451
2459
|
core.Badge,
|
|
2452
2460
|
{
|
|
@@ -2472,7 +2480,7 @@ const Organization = (props) => {
|
|
|
2472
2480
|
] }))))));
|
|
2473
2481
|
};
|
|
2474
2482
|
|
|
2475
|
-
const useStyles$
|
|
2483
|
+
const useStyles$c = core.createStyles((theme) => ({
|
|
2476
2484
|
button: {
|
|
2477
2485
|
borderTopRightRadius: 0,
|
|
2478
2486
|
borderBottomRightRadius: 0,
|
|
@@ -2486,8 +2494,8 @@ const useStyles$a = core.createStyles((theme) => ({
|
|
|
2486
2494
|
borderLeft: `1px solid ${theme.colorScheme === "dark" ? theme.colors.dark[7] : theme.white}`
|
|
2487
2495
|
}
|
|
2488
2496
|
}));
|
|
2489
|
-
const SplitButton$
|
|
2490
|
-
const { classes, theme } = useStyles$
|
|
2497
|
+
const SplitButton$2 = (props) => {
|
|
2498
|
+
const { classes, theme } = useStyles$c();
|
|
2491
2499
|
const menuIconColor = theme.colors[theme.primaryColor][theme.colorScheme === "dark" ? 5 : 6];
|
|
2492
2500
|
const hasMenu = !!props.withOrganizationLink;
|
|
2493
2501
|
return /* @__PURE__ */ React__namespace.createElement(core.Group, { noWrap: true, spacing: 0 }, /* @__PURE__ */ React__namespace.createElement(
|
|
@@ -2517,7 +2525,7 @@ const SplitButton$1 = (props) => {
|
|
|
2517
2525
|
))));
|
|
2518
2526
|
};
|
|
2519
2527
|
|
|
2520
|
-
function Table$
|
|
2528
|
+
function Table$4(props) {
|
|
2521
2529
|
if (props.items.length === 0) {
|
|
2522
2530
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
2523
2531
|
PlaceholderBanner,
|
|
@@ -2549,26 +2557,26 @@ function Table$3(props) {
|
|
|
2549
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)));
|
|
2550
2558
|
}
|
|
2551
2559
|
|
|
2552
|
-
var __defProp$
|
|
2553
|
-
var __defProps$
|
|
2554
|
-
var __getOwnPropDescs$
|
|
2555
|
-
var __getOwnPropSymbols$
|
|
2556
|
-
var __hasOwnProp$
|
|
2557
|
-
var __propIsEnum$
|
|
2558
|
-
var __defNormalProp$
|
|
2559
|
-
var __spreadValues$
|
|
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) => {
|
|
2560
2568
|
for (var prop in b || (b = {}))
|
|
2561
|
-
if (__hasOwnProp$
|
|
2562
|
-
__defNormalProp$
|
|
2563
|
-
if (__getOwnPropSymbols$
|
|
2564
|
-
for (var prop of __getOwnPropSymbols$
|
|
2565
|
-
if (__propIsEnum$
|
|
2566
|
-
__defNormalProp$
|
|
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]);
|
|
2567
2575
|
}
|
|
2568
2576
|
return a;
|
|
2569
2577
|
};
|
|
2570
|
-
var __spreadProps$
|
|
2571
|
-
const useStyles$
|
|
2578
|
+
var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
|
|
2579
|
+
const useStyles$b = core.createStyles((theme) => ({
|
|
2572
2580
|
title: {
|
|
2573
2581
|
fontSize: 34,
|
|
2574
2582
|
fontWeight: 900,
|
|
@@ -2598,7 +2606,7 @@ const useStyles$9 = core.createStyles((theme) => ({
|
|
|
2598
2606
|
}
|
|
2599
2607
|
}));
|
|
2600
2608
|
const People = (props) => {
|
|
2601
|
-
const { classes } = useStyles$
|
|
2609
|
+
const { classes } = useStyles$b();
|
|
2602
2610
|
const form$1 = form.useForm({
|
|
2603
2611
|
initialValues: {
|
|
2604
2612
|
userId: "",
|
|
@@ -2629,27 +2637,27 @@ const People = (props) => {
|
|
|
2629
2637
|
padding: "xl",
|
|
2630
2638
|
size: "xl"
|
|
2631
2639
|
},
|
|
2632
|
-
/* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "md" }, /* @__PURE__ */ React__namespace.createElement(DropzoneButton, __spreadProps$
|
|
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(() => {
|
|
2633
2641
|
const values = form$1.values;
|
|
2634
2642
|
form$1.reset();
|
|
2635
2643
|
setOpened(false);
|
|
2636
2644
|
props.onCreateUsers && props.onCreateUsers([values]);
|
|
2637
2645
|
}) }, /* @__PURE__ */ React__namespace.createElement(core.Stack, null, /* @__PURE__ */ React__namespace.createElement(
|
|
2638
2646
|
core.TextInput,
|
|
2639
|
-
__spreadValues$
|
|
2647
|
+
__spreadValues$6({
|
|
2640
2648
|
withAsterisk: true,
|
|
2641
2649
|
label: "Email",
|
|
2642
2650
|
placeholder: "Email"
|
|
2643
2651
|
}, form$1.getInputProps("email"))
|
|
2644
2652
|
), /* @__PURE__ */ React__namespace.createElement(core.Group, { grow: true }, /* @__PURE__ */ React__namespace.createElement(
|
|
2645
2653
|
core.TextInput,
|
|
2646
|
-
__spreadValues$
|
|
2654
|
+
__spreadValues$6({
|
|
2647
2655
|
label: "Given name",
|
|
2648
2656
|
placeholder: "Given name"
|
|
2649
2657
|
}, form$1.getInputProps("givenName"))
|
|
2650
2658
|
), /* @__PURE__ */ React__namespace.createElement(
|
|
2651
2659
|
core.TextInput,
|
|
2652
|
-
__spreadValues$
|
|
2660
|
+
__spreadValues$6({
|
|
2653
2661
|
label: "Family name",
|
|
2654
2662
|
placeholder: "Family name"
|
|
2655
2663
|
}, form$1.getInputProps("familyName"))
|
|
@@ -2663,7 +2671,7 @@ const People = (props) => {
|
|
|
2663
2671
|
},
|
|
2664
2672
|
"Back"
|
|
2665
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(
|
|
2666
|
-
SplitButton$
|
|
2674
|
+
SplitButton$2,
|
|
2667
2675
|
{
|
|
2668
2676
|
withOrganizationLink: props.withOrganizationLink,
|
|
2669
2677
|
onAddUsersClick: () => setOpened(true),
|
|
@@ -2692,7 +2700,7 @@ const People = (props) => {
|
|
|
2692
2700
|
onChange: props.onAutocompleteChange
|
|
2693
2701
|
}
|
|
2694
2702
|
), /* @__PURE__ */ React__namespace.createElement(
|
|
2695
|
-
Table$
|
|
2703
|
+
Table$4,
|
|
2696
2704
|
{
|
|
2697
2705
|
loading: props.loading,
|
|
2698
2706
|
items: props.users,
|
|
@@ -2702,7 +2710,7 @@ const People = (props) => {
|
|
|
2702
2710
|
))))));
|
|
2703
2711
|
};
|
|
2704
2712
|
const DropzoneButton = (props) => {
|
|
2705
|
-
const { classes, theme } = useStyles$
|
|
2713
|
+
const { classes, theme } = useStyles$b();
|
|
2706
2714
|
const openRef = React__namespace.useRef(null);
|
|
2707
2715
|
const [loading, setLoading] = React__namespace.useState(false);
|
|
2708
2716
|
const onDrop = React__namespace.useCallback((acceptedFiles) => {
|
|
@@ -2748,7 +2756,7 @@ const DropzoneButton = (props) => {
|
|
|
2748
2756
|
} }, "Select file"));
|
|
2749
2757
|
};
|
|
2750
2758
|
|
|
2751
|
-
const useStyles$
|
|
2759
|
+
const useStyles$a = core.createStyles((theme) => ({
|
|
2752
2760
|
form: {
|
|
2753
2761
|
backgroundColor: theme.white,
|
|
2754
2762
|
padding: theme.spacing.xl,
|
|
@@ -2811,7 +2819,7 @@ const useStyles$8 = core.createStyles((theme) => ({
|
|
|
2811
2819
|
}
|
|
2812
2820
|
}));
|
|
2813
2821
|
const StartAnonymousLesson = (props) => {
|
|
2814
|
-
const { classes } = useStyles$
|
|
2822
|
+
const { classes } = useStyles$a();
|
|
2815
2823
|
const [name, setName] = React__namespace.useState("");
|
|
2816
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(
|
|
2817
2825
|
core.TextInput,
|
|
@@ -2835,24 +2843,24 @@ const StartAnonymousLesson = (props) => {
|
|
|
2835
2843
|
))))));
|
|
2836
2844
|
};
|
|
2837
2845
|
|
|
2838
|
-
var __defProp$
|
|
2839
|
-
var __getOwnPropSymbols$
|
|
2840
|
-
var __hasOwnProp$
|
|
2841
|
-
var __propIsEnum$
|
|
2842
|
-
var __defNormalProp$
|
|
2843
|
-
var __spreadValues$
|
|
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) => {
|
|
2844
2852
|
for (var prop in b || (b = {}))
|
|
2845
|
-
if (__hasOwnProp$
|
|
2846
|
-
__defNormalProp$
|
|
2847
|
-
if (__getOwnPropSymbols$
|
|
2848
|
-
for (var prop of __getOwnPropSymbols$
|
|
2849
|
-
if (__propIsEnum$
|
|
2850
|
-
__defNormalProp$
|
|
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]);
|
|
2851
2859
|
}
|
|
2852
2860
|
return a;
|
|
2853
2861
|
};
|
|
2854
2862
|
const BadgeGrid = (props) => {
|
|
2855
|
-
const badges = props.badges.map((b) => /* @__PURE__ */ React__namespace.createElement(TaskCard, __spreadValues$
|
|
2863
|
+
const badges = props.badges.map((b) => /* @__PURE__ */ React__namespace.createElement(TaskCard, __spreadValues$5({ key: b.title }, b)));
|
|
2856
2864
|
return /* @__PURE__ */ React__namespace.createElement(core.SimpleGrid, { cols: 4, breakpoints: [{ maxWidth: "sm", cols: 1 }, { maxWidth: "md", cols: 3 }] }, badges);
|
|
2857
2865
|
};
|
|
2858
2866
|
function TaskCard(props) {
|
|
@@ -2868,7 +2876,7 @@ function TaskCard(props) {
|
|
|
2868
2876
|
));
|
|
2869
2877
|
}
|
|
2870
2878
|
|
|
2871
|
-
const useStyles$
|
|
2879
|
+
const useStyles$9 = core.createStyles((theme) => ({
|
|
2872
2880
|
action: {
|
|
2873
2881
|
backgroundColor: "inherit",
|
|
2874
2882
|
":hover": {
|
|
@@ -2887,7 +2895,7 @@ const useStyles$7 = core.createStyles((theme) => ({
|
|
|
2887
2895
|
}
|
|
2888
2896
|
}));
|
|
2889
2897
|
const TrialHome = (props) => {
|
|
2890
|
-
const { classes } = useStyles$
|
|
2898
|
+
const { classes } = useStyles$9();
|
|
2891
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(
|
|
2892
2900
|
core.Button,
|
|
2893
2901
|
{
|
|
@@ -2916,38 +2924,38 @@ const TrialHome = (props) => {
|
|
|
2916
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 })));
|
|
2917
2925
|
};
|
|
2918
2926
|
|
|
2919
|
-
var __defProp$
|
|
2920
|
-
var __defProps$
|
|
2921
|
-
var __getOwnPropDescs$
|
|
2922
|
-
var __getOwnPropSymbols$
|
|
2923
|
-
var __hasOwnProp$
|
|
2924
|
-
var __propIsEnum$
|
|
2925
|
-
var __defNormalProp$
|
|
2926
|
-
var __spreadValues$
|
|
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) => {
|
|
2927
2935
|
for (var prop in b || (b = {}))
|
|
2928
|
-
if (__hasOwnProp$
|
|
2929
|
-
__defNormalProp$
|
|
2930
|
-
if (__getOwnPropSymbols$
|
|
2931
|
-
for (var prop of __getOwnPropSymbols$
|
|
2932
|
-
if (__propIsEnum$
|
|
2933
|
-
__defNormalProp$
|
|
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]);
|
|
2934
2942
|
}
|
|
2935
2943
|
return a;
|
|
2936
2944
|
};
|
|
2937
|
-
var __spreadProps$
|
|
2945
|
+
var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
|
|
2938
2946
|
var __objRest = (source, exclude) => {
|
|
2939
2947
|
var target = {};
|
|
2940
2948
|
for (var prop in source)
|
|
2941
|
-
if (__hasOwnProp$
|
|
2949
|
+
if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
2942
2950
|
target[prop] = source[prop];
|
|
2943
|
-
if (source != null && __getOwnPropSymbols$
|
|
2944
|
-
for (var prop of __getOwnPropSymbols$
|
|
2945
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum$
|
|
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))
|
|
2946
2954
|
target[prop] = source[prop];
|
|
2947
2955
|
}
|
|
2948
2956
|
return target;
|
|
2949
2957
|
};
|
|
2950
|
-
const useStyles$
|
|
2958
|
+
const useStyles$8 = core.createStyles((theme, { checked }) => ({
|
|
2951
2959
|
button: {
|
|
2952
2960
|
display: "flex",
|
|
2953
2961
|
alignItems: "center",
|
|
@@ -2989,10 +2997,10 @@ function ImageCheckbox(_a) {
|
|
|
2989
2997
|
finalValue: false,
|
|
2990
2998
|
onChange
|
|
2991
2999
|
});
|
|
2992
|
-
const { classes, cx } = useStyles$
|
|
3000
|
+
const { classes, cx } = useStyles$8({ checked: value });
|
|
2993
3001
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
2994
3002
|
core.UnstyledButton,
|
|
2995
|
-
__spreadProps$
|
|
3003
|
+
__spreadProps$4(__spreadValues$4({}, others), {
|
|
2996
3004
|
onClick: () => handleChange(!value),
|
|
2997
3005
|
className: cx(classes.button, className)
|
|
2998
3006
|
}),
|
|
@@ -3013,7 +3021,7 @@ function ImageCheckbox(_a) {
|
|
|
3013
3021
|
function SelectGrid(props) {
|
|
3014
3022
|
const items = props.items.map((item) => /* @__PURE__ */ React__namespace.createElement(
|
|
3015
3023
|
ImageCheckbox,
|
|
3016
|
-
__spreadProps$
|
|
3024
|
+
__spreadProps$4(__spreadValues$4({}, item), {
|
|
3017
3025
|
key: item.title,
|
|
3018
3026
|
onChange: (checked) => props.onChange(item.title, checked)
|
|
3019
3027
|
})
|
|
@@ -3031,26 +3039,26 @@ function SelectGrid(props) {
|
|
|
3031
3039
|
);
|
|
3032
3040
|
}
|
|
3033
3041
|
|
|
3034
|
-
var __defProp$
|
|
3035
|
-
var __defProps$
|
|
3036
|
-
var __getOwnPropDescs$
|
|
3037
|
-
var __getOwnPropSymbols$
|
|
3038
|
-
var __hasOwnProp$
|
|
3039
|
-
var __propIsEnum$
|
|
3040
|
-
var __defNormalProp$
|
|
3041
|
-
var __spreadValues$
|
|
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) => {
|
|
3042
3050
|
for (var prop in b || (b = {}))
|
|
3043
|
-
if (__hasOwnProp$
|
|
3044
|
-
__defNormalProp$
|
|
3045
|
-
if (__getOwnPropSymbols$
|
|
3046
|
-
for (var prop of __getOwnPropSymbols$
|
|
3047
|
-
if (__propIsEnum$
|
|
3048
|
-
__defNormalProp$
|
|
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]);
|
|
3049
3057
|
}
|
|
3050
3058
|
return a;
|
|
3051
3059
|
};
|
|
3052
|
-
var __spreadProps$
|
|
3053
|
-
const useStyles$
|
|
3060
|
+
var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
|
|
3061
|
+
const useStyles$7 = core.createStyles((theme) => ({
|
|
3054
3062
|
wrapper: {
|
|
3055
3063
|
minHeight: "100%",
|
|
3056
3064
|
boxSizing: "border-box",
|
|
@@ -3113,7 +3121,7 @@ const OPTIONS = [
|
|
|
3113
3121
|
{ description: "project-based learning", title: "Project-Based Learning", icon: icons.IconTools }
|
|
3114
3122
|
];
|
|
3115
3123
|
const TrialRegistration = (props) => {
|
|
3116
|
-
const { classes } = useStyles$
|
|
3124
|
+
const { classes } = useStyles$7();
|
|
3117
3125
|
const [firstName, setFirstName] = React__namespace.useState("");
|
|
3118
3126
|
const [lastName, setLastName] = React__namespace.useState("");
|
|
3119
3127
|
const [organization, setOrganization] = React__namespace.useState({ organizationId: "", displayName: "" });
|
|
@@ -3159,7 +3167,7 @@ const TrialRegistration = (props) => {
|
|
|
3159
3167
|
label: "School/Organization Name",
|
|
3160
3168
|
placeholder: "What's the name of your school?",
|
|
3161
3169
|
data: props.organizations.map((o) => {
|
|
3162
|
-
return __spreadProps$
|
|
3170
|
+
return __spreadProps$3(__spreadValues$3({}, o), { value: o.displayName });
|
|
3163
3171
|
}),
|
|
3164
3172
|
onItemSubmit: (item) => setOrganization({ organizationId: item.organizationId, displayName: item.displayName }),
|
|
3165
3173
|
onChange: (next) => {
|
|
@@ -3171,7 +3179,7 @@ const TrialRegistration = (props) => {
|
|
|
3171
3179
|
SelectGrid,
|
|
3172
3180
|
{
|
|
3173
3181
|
items: OPTIONS,
|
|
3174
|
-
onChange: (e, checked) => setInterests(__spreadProps$
|
|
3182
|
+
onChange: (e, checked) => setInterests(__spreadProps$3(__spreadValues$3({}, interests), { [e]: checked }))
|
|
3175
3183
|
}
|
|
3176
3184
|
), /* @__PURE__ */ React__namespace.createElement(core.Group, { position: "right", mt: "md" }, /* @__PURE__ */ React__namespace.createElement(
|
|
3177
3185
|
core.Button,
|
|
@@ -3209,26 +3217,26 @@ const AdminProvider = (props) => {
|
|
|
3209
3217
|
);
|
|
3210
3218
|
};
|
|
3211
3219
|
|
|
3212
|
-
var __defProp$
|
|
3213
|
-
var __defProps$
|
|
3214
|
-
var __getOwnPropDescs$
|
|
3215
|
-
var __getOwnPropSymbols$
|
|
3216
|
-
var __hasOwnProp$
|
|
3217
|
-
var __propIsEnum$
|
|
3218
|
-
var __defNormalProp$
|
|
3219
|
-
var __spreadValues$
|
|
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) => {
|
|
3220
3228
|
for (var prop in b || (b = {}))
|
|
3221
|
-
if (__hasOwnProp$
|
|
3222
|
-
__defNormalProp$
|
|
3223
|
-
if (__getOwnPropSymbols$
|
|
3224
|
-
for (var prop of __getOwnPropSymbols$
|
|
3225
|
-
if (__propIsEnum$
|
|
3226
|
-
__defNormalProp$
|
|
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]);
|
|
3227
3235
|
}
|
|
3228
3236
|
return a;
|
|
3229
3237
|
};
|
|
3230
|
-
var __spreadProps$
|
|
3231
|
-
const useStyles$
|
|
3238
|
+
var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
|
|
3239
|
+
const useStyles$6 = core.createStyles((theme, props) => ({
|
|
3232
3240
|
footer: {
|
|
3233
3241
|
paddingTop: theme.spacing.md,
|
|
3234
3242
|
paddingBottom: theme.spacing.md,
|
|
@@ -3315,7 +3323,7 @@ const useStyles$4 = core.createStyles((theme, props) => ({
|
|
|
3315
3323
|
}
|
|
3316
3324
|
}));
|
|
3317
3325
|
const App = (props) => {
|
|
3318
|
-
const { classes } = useStyles$
|
|
3326
|
+
const { classes } = useStyles$6(props);
|
|
3319
3327
|
const account = useAccount(props.account, props.accounts, props.onAccountChange);
|
|
3320
3328
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
3321
3329
|
core.AppShell,
|
|
@@ -3323,7 +3331,7 @@ const App = (props) => {
|
|
|
3323
3331
|
padding: "xs",
|
|
3324
3332
|
navbar: props.navbar && /* @__PURE__ */ React__namespace.createElement(
|
|
3325
3333
|
Navbar,
|
|
3326
|
-
__spreadProps$
|
|
3334
|
+
__spreadProps$2(__spreadValues$2({}, props.navbar.props), {
|
|
3327
3335
|
onSwitchAccounts: account.accounts && account.accounts.length > 1 ? () => account.setChangeModalOpen(true) : void 0
|
|
3328
3336
|
})
|
|
3329
3337
|
),
|
|
@@ -3410,7 +3418,7 @@ const useAccount = (account, accounts, onAccountChange) => {
|
|
|
3410
3418
|
};
|
|
3411
3419
|
};
|
|
3412
3420
|
|
|
3413
|
-
function Table$
|
|
3421
|
+
function Table$3(props) {
|
|
3414
3422
|
if (props.items.length === 0) {
|
|
3415
3423
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
3416
3424
|
PlaceholderBanner,
|
|
@@ -3442,7 +3450,7 @@ function Table$2(props) {
|
|
|
3442
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)));
|
|
3443
3451
|
}
|
|
3444
3452
|
|
|
3445
|
-
const useStyles$
|
|
3453
|
+
const useStyles$5 = core.createStyles((theme) => ({
|
|
3446
3454
|
title: {
|
|
3447
3455
|
fontSize: 34,
|
|
3448
3456
|
fontWeight: 900,
|
|
@@ -3455,9 +3463,9 @@ const useStyles$3 = core.createStyles((theme) => ({
|
|
|
3455
3463
|
}
|
|
3456
3464
|
}));
|
|
3457
3465
|
const Pathways = (props) => {
|
|
3458
|
-
const { classes } = useStyles$
|
|
3466
|
+
const { classes } = useStyles$5();
|
|
3459
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(
|
|
3460
|
-
Table$
|
|
3468
|
+
Table$3,
|
|
3461
3469
|
{
|
|
3462
3470
|
loading: props.loading,
|
|
3463
3471
|
items: props.pathways
|
|
@@ -3465,7 +3473,7 @@ const Pathways = (props) => {
|
|
|
3465
3473
|
))));
|
|
3466
3474
|
};
|
|
3467
3475
|
|
|
3468
|
-
const useStyles$
|
|
3476
|
+
const useStyles$4 = core.createStyles((theme) => ({
|
|
3469
3477
|
button: {
|
|
3470
3478
|
borderTopRightRadius: 0,
|
|
3471
3479
|
borderBottomRightRadius: 0,
|
|
@@ -3479,8 +3487,8 @@ const useStyles$2 = core.createStyles((theme) => ({
|
|
|
3479
3487
|
borderLeft: `1px solid ${theme.colorScheme === "dark" ? theme.colors.dark[7] : theme.white}`
|
|
3480
3488
|
}
|
|
3481
3489
|
}));
|
|
3482
|
-
const SplitButton = (props) => {
|
|
3483
|
-
const { classes, theme } = useStyles$
|
|
3490
|
+
const SplitButton$1 = (props) => {
|
|
3491
|
+
const { classes, theme } = useStyles$4();
|
|
3484
3492
|
theme.colors[theme.primaryColor][theme.colorScheme === "dark" ? 5 : 6];
|
|
3485
3493
|
return /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: "sm" }, /* @__PURE__ */ React__namespace.createElement(
|
|
3486
3494
|
core.Button,
|
|
@@ -3508,7 +3516,7 @@ const SplitButton = (props) => {
|
|
|
3508
3516
|
));
|
|
3509
3517
|
};
|
|
3510
3518
|
|
|
3511
|
-
function Stack(props) {
|
|
3519
|
+
function Stack$1(props) {
|
|
3512
3520
|
if (props.items.length === 0) {
|
|
3513
3521
|
return null;
|
|
3514
3522
|
}
|
|
@@ -3516,29 +3524,29 @@ function Stack(props) {
|
|
|
3516
3524
|
return /* @__PURE__ */ React__namespace.createElement(core.Grid, { grow: true, gutter: "lg", sx: { padding: 20, minWidth: 700 } }, rows);
|
|
3517
3525
|
}
|
|
3518
3526
|
|
|
3519
|
-
var __defProp = Object.defineProperty;
|
|
3520
|
-
var __defProps = Object.defineProperties;
|
|
3521
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
3522
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3523
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
3524
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
3525
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3526
|
-
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) => {
|
|
3527
3535
|
for (var prop in b || (b = {}))
|
|
3528
|
-
if (__hasOwnProp.call(b, prop))
|
|
3529
|
-
__defNormalProp(a, prop, b[prop]);
|
|
3530
|
-
if (__getOwnPropSymbols)
|
|
3531
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
3532
|
-
if (__propIsEnum.call(b, prop))
|
|
3533
|
-
__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]);
|
|
3534
3542
|
}
|
|
3535
3543
|
return a;
|
|
3536
3544
|
};
|
|
3537
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
3538
|
-
function Table$
|
|
3545
|
+
var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
|
|
3546
|
+
function Table$2(props) {
|
|
3539
3547
|
const preparedItems = React__namespace.useMemo(() => {
|
|
3540
3548
|
return props.items.map((item) => {
|
|
3541
|
-
const flatItem = __spreadProps(__spreadValues({}, item), {
|
|
3549
|
+
const flatItem = __spreadProps$1(__spreadValues$1({}, item), {
|
|
3542
3550
|
status: item.isComplete ? 1 : 0
|
|
3543
3551
|
});
|
|
3544
3552
|
if (item.categoryPoints) {
|
|
@@ -3606,13 +3614,13 @@ function Table$1(props) {
|
|
|
3606
3614
|
}))
|
|
3607
3615
|
],
|
|
3608
3616
|
rowExpansion: {
|
|
3609
|
-
content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack, { items: record.badges })
|
|
3617
|
+
content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack$1, { items: record.badges })
|
|
3610
3618
|
}
|
|
3611
3619
|
}
|
|
3612
3620
|
));
|
|
3613
3621
|
}
|
|
3614
3622
|
|
|
3615
|
-
const useStyles$
|
|
3623
|
+
const useStyles$3 = core.createStyles((theme) => ({
|
|
3616
3624
|
th: { padding: "0 !important" },
|
|
3617
3625
|
control: {
|
|
3618
3626
|
width: "100%",
|
|
@@ -3623,11 +3631,11 @@ const useStyles$1 = core.createStyles((theme) => ({
|
|
|
3623
3631
|
}
|
|
3624
3632
|
}));
|
|
3625
3633
|
function Th({ children, reversed, sorted, onSort }) {
|
|
3626
|
-
const { classes } = useStyles$
|
|
3634
|
+
const { classes } = useStyles$3();
|
|
3627
3635
|
const Icon = sorted ? reversed ? icons.IconChevronUp : icons.IconChevronDown : icons.IconSelector;
|
|
3628
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 })))));
|
|
3629
3637
|
}
|
|
3630
|
-
function Table(props) {
|
|
3638
|
+
function Table$1(props) {
|
|
3631
3639
|
const { items: sortedItems, requestSort, sortConfig } = useSortableData(props.items);
|
|
3632
3640
|
if (props.items.length === 0) {
|
|
3633
3641
|
return /* @__PURE__ */ React__namespace.createElement(
|
|
@@ -3663,7 +3671,7 @@ function Table(props) {
|
|
|
3663
3671
|
))), /* @__PURE__ */ React__namespace.createElement("tbody", null, rows)));
|
|
3664
3672
|
}
|
|
3665
3673
|
|
|
3666
|
-
const useStyles = core.createStyles((theme) => ({
|
|
3674
|
+
const useStyles$2 = core.createStyles((theme) => ({
|
|
3667
3675
|
title: {
|
|
3668
3676
|
fontSize: 34,
|
|
3669
3677
|
fontWeight: 900,
|
|
@@ -3676,7 +3684,7 @@ const useStyles = core.createStyles((theme) => ({
|
|
|
3676
3684
|
}
|
|
3677
3685
|
}));
|
|
3678
3686
|
const Pathway = (props) => {
|
|
3679
|
-
const { classes } = useStyles();
|
|
3687
|
+
const { classes } = useStyles$2();
|
|
3680
3688
|
const [tab, setTab] = React.useState("badges");
|
|
3681
3689
|
const numberOfStudents = props.students.length;
|
|
3682
3690
|
numberOfStudents > 0 ? props.students.filter((u) => u.isComplete).length / numberOfStudents : 0;
|
|
@@ -3690,7 +3698,7 @@ const Pathway = (props) => {
|
|
|
3690
3698
|
},
|
|
3691
3699
|
"Back"
|
|
3692
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(
|
|
3693
|
-
SplitButton,
|
|
3701
|
+
SplitButton$1,
|
|
3694
3702
|
{
|
|
3695
3703
|
href: props.href,
|
|
3696
3704
|
onCopyLinkClick: props.onCopyLinkClick,
|
|
@@ -3728,13 +3736,13 @@ const Pathway = (props) => {
|
|
|
3728
3736
|
onChange: setTab
|
|
3729
3737
|
}
|
|
3730
3738
|
), (!!props.trial || tab === "badges") && /* @__PURE__ */ React__namespace.createElement(
|
|
3731
|
-
Table,
|
|
3739
|
+
Table$1,
|
|
3732
3740
|
{
|
|
3733
3741
|
loading: props.loading,
|
|
3734
3742
|
items: props.badges
|
|
3735
3743
|
}
|
|
3736
3744
|
), !props.trial && tab === "students" && /* @__PURE__ */ React__namespace.createElement(
|
|
3737
|
-
Table$
|
|
3745
|
+
Table$2,
|
|
3738
3746
|
{
|
|
3739
3747
|
loading: props.loading,
|
|
3740
3748
|
items: props.students,
|
|
@@ -3743,6 +3751,211 @@ const Pathway = (props) => {
|
|
|
3743
3751
|
)))))));
|
|
3744
3752
|
};
|
|
3745
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: 6 }, /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dark.4", weight: "bold", size: "md" }, "By link")), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 6 }, /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dark.4", weight: "bold", size: "md" }, "By badge")), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 6 }, /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dark.4", weight: "bold", size: "md" }, "By Lesson")), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 6 }, /* @__PURE__ */ React__namespace.createElement(core.Text, { color: "dark.4", weight: "bold", size: "md" }, "By Question")), props.items.map((row, i) => /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, { key: i }, /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 6 }, /* @__PURE__ */ React__namespace.createElement("a", { href: row.link, target: "_blank", rel: "noopener noreferrer" }, "View File")), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 6 }, /* @__PURE__ */ React__namespace.createElement(core.Text, null, row.badgeName)), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 6 }, /* @__PURE__ */ React__namespace.createElement(core.Text, null, row.lessonName)), /* @__PURE__ */ React__namespace.createElement(core.Grid.Col, { span: 6 }, /* @__PURE__ */ React__namespace.createElement(core.Text, null, row.question)))));
|
|
3801
|
+
}
|
|
3802
|
+
|
|
3803
|
+
var __defProp = Object.defineProperty;
|
|
3804
|
+
var __defProps = Object.defineProperties;
|
|
3805
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
3806
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3807
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
3808
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
3809
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3810
|
+
var __spreadValues = (a, b) => {
|
|
3811
|
+
for (var prop in b || (b = {}))
|
|
3812
|
+
if (__hasOwnProp.call(b, prop))
|
|
3813
|
+
__defNormalProp(a, prop, b[prop]);
|
|
3814
|
+
if (__getOwnPropSymbols)
|
|
3815
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
3816
|
+
if (__propIsEnum.call(b, prop))
|
|
3817
|
+
__defNormalProp(a, prop, b[prop]);
|
|
3818
|
+
}
|
|
3819
|
+
return a;
|
|
3820
|
+
};
|
|
3821
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
3822
|
+
function Table(props) {
|
|
3823
|
+
const preparedItems = React__namespace.useMemo(() => {
|
|
3824
|
+
return props.items.map((item) => {
|
|
3825
|
+
var _a;
|
|
3826
|
+
return __spreadProps(__spreadValues({}, item), {
|
|
3827
|
+
submissionCount: ((_a = item.submissions) == null ? void 0 : _a.length) || 0
|
|
3828
|
+
});
|
|
3829
|
+
});
|
|
3830
|
+
}, [props.items]);
|
|
3831
|
+
const { items: sortedItems, requestSort, sortConfig } = useSortableData(preparedItems);
|
|
3832
|
+
if (props.items.length === 0) {
|
|
3833
|
+
return /* @__PURE__ */ React__namespace.createElement(
|
|
3834
|
+
PlaceholderBanner,
|
|
3835
|
+
{
|
|
3836
|
+
title: "No files to display",
|
|
3837
|
+
description: "There are no submitted files to display yet.",
|
|
3838
|
+
loading: props.loading,
|
|
3839
|
+
icon: "badges"
|
|
3840
|
+
}
|
|
3841
|
+
);
|
|
3842
|
+
}
|
|
3843
|
+
const sortStatus = {
|
|
3844
|
+
columnAccessor: sortConfig.key,
|
|
3845
|
+
direction: sortConfig.direction === "desc" ? "desc" : "asc"
|
|
3846
|
+
};
|
|
3847
|
+
return /* @__PURE__ */ React__namespace.createElement(core.ScrollArea.Autosize, { maxHeight: 600 }, /* @__PURE__ */ React__namespace.createElement(
|
|
3848
|
+
mantineDatatable.DataTable,
|
|
3849
|
+
{
|
|
3850
|
+
verticalSpacing: "sm",
|
|
3851
|
+
sx: { minWidth: 700 },
|
|
3852
|
+
withBorder: false,
|
|
3853
|
+
borderRadius: "sm",
|
|
3854
|
+
withColumnBorders: true,
|
|
3855
|
+
striped: true,
|
|
3856
|
+
highlightOnHover: true,
|
|
3857
|
+
records: sortedItems,
|
|
3858
|
+
sortStatus,
|
|
3859
|
+
onSortStatusChange: (status) => requestSort(status.columnAccessor),
|
|
3860
|
+
idAccessor: "userId",
|
|
3861
|
+
columns: [{
|
|
3862
|
+
accessor: "name",
|
|
3863
|
+
title: "Student Name",
|
|
3864
|
+
sortable: true,
|
|
3865
|
+
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)))
|
|
3866
|
+
}, {
|
|
3867
|
+
accessor: "submissionCount",
|
|
3868
|
+
title: "Files",
|
|
3869
|
+
sortable: true,
|
|
3870
|
+
render: (row) => row.submissions.length
|
|
3871
|
+
}],
|
|
3872
|
+
rowExpansion: {
|
|
3873
|
+
content: ({ record }) => /* @__PURE__ */ React__namespace.createElement(Stack, { items: record.submissions })
|
|
3874
|
+
}
|
|
3875
|
+
}
|
|
3876
|
+
));
|
|
3877
|
+
}
|
|
3878
|
+
|
|
3879
|
+
const useStyles = core.createStyles((theme) => ({
|
|
3880
|
+
title: {
|
|
3881
|
+
fontSize: 34,
|
|
3882
|
+
fontWeight: 900,
|
|
3883
|
+
[theme.fn.smallerThan("sm")]: {
|
|
3884
|
+
fontSize: 24
|
|
3885
|
+
}
|
|
3886
|
+
},
|
|
3887
|
+
description: {
|
|
3888
|
+
maxWidth: 600
|
|
3889
|
+
}
|
|
3890
|
+
}));
|
|
3891
|
+
const FileLocker = (props) => {
|
|
3892
|
+
const { classes } = useStyles();
|
|
3893
|
+
const [tab, setTab] = React.useState("students");
|
|
3894
|
+
props.students.length;
|
|
3895
|
+
const numberOfFiles = props.students.reduce(
|
|
3896
|
+
(acc, s) => {
|
|
3897
|
+
var _a;
|
|
3898
|
+
return acc + (((_a = s.submissions) == null ? void 0 : _a.length) || 0);
|
|
3899
|
+
},
|
|
3900
|
+
0
|
|
3901
|
+
);
|
|
3902
|
+
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(
|
|
3903
|
+
core.Badge,
|
|
3904
|
+
{
|
|
3905
|
+
variant: "filled",
|
|
3906
|
+
leftSection: /* @__PURE__ */ React__namespace.createElement(core.ActionIcon, { color: "blue", size: "xs", radius: "xl", variant: "filled" }, /* @__PURE__ */ React__namespace.createElement(icons.IconArrowLeft, { size: 14 })),
|
|
3907
|
+
size: "lg"
|
|
3908
|
+
},
|
|
3909
|
+
"Back"
|
|
3910
|
+
)), /* @__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(
|
|
3911
|
+
SplitButton,
|
|
3912
|
+
{
|
|
3913
|
+
href: props.href,
|
|
3914
|
+
onCopyLinkClick: props.onCopyLinkClick,
|
|
3915
|
+
onExportDataClick: props.onExportDataClick
|
|
3916
|
+
}
|
|
3917
|
+
))))), /* @__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: [
|
|
3918
|
+
{
|
|
3919
|
+
title: props.trial ? "LESSONS SUBMITTED" : "FILES",
|
|
3920
|
+
value: props.trial ? props.lessonsCompleted || 0 : numberOfFiles,
|
|
3921
|
+
unit: props.trial ? "" : ""
|
|
3922
|
+
}
|
|
3923
|
+
] }), !props.trial && /* @__PURE__ */ React__namespace.createElement(
|
|
3924
|
+
core.Select,
|
|
3925
|
+
{
|
|
3926
|
+
clearable: true,
|
|
3927
|
+
clearButtonLabel: "Clear class selection",
|
|
3928
|
+
size: "sm",
|
|
3929
|
+
placeholder: "Select a class",
|
|
3930
|
+
nothingFound: "No options",
|
|
3931
|
+
value: props.classId,
|
|
3932
|
+
onChange: props.onClassChange,
|
|
3933
|
+
icon: /* @__PURE__ */ React__namespace.createElement(icons.IconCategory2, null),
|
|
3934
|
+
data: props.classes.map((g) => {
|
|
3935
|
+
return { value: g.classId, label: g.name };
|
|
3936
|
+
})
|
|
3937
|
+
}
|
|
3938
|
+
), /* @__PURE__ */ React__namespace.createElement(core.Stack, { spacing: 0 }, !props.trial && /* @__PURE__ */ React__namespace.createElement(
|
|
3939
|
+
Tabs,
|
|
3940
|
+
{
|
|
3941
|
+
value: tab,
|
|
3942
|
+
data: [
|
|
3943
|
+
{ label: "By student", value: "students" },
|
|
3944
|
+
{ label: "By pathway", value: "pathways" },
|
|
3945
|
+
{ label: "By badge", value: "badges" },
|
|
3946
|
+
{ label: "By lesson", value: "lessons" }
|
|
3947
|
+
],
|
|
3948
|
+
onChange: setTab
|
|
3949
|
+
}
|
|
3950
|
+
), !props.trial && tab === "students" && /* @__PURE__ */ React__namespace.createElement(
|
|
3951
|
+
Table,
|
|
3952
|
+
{
|
|
3953
|
+
loading: props.loading,
|
|
3954
|
+
items: props.students
|
|
3955
|
+
}
|
|
3956
|
+
)))))));
|
|
3957
|
+
};
|
|
3958
|
+
|
|
3746
3959
|
Object.defineProperty(exports, 'showNotification', {
|
|
3747
3960
|
enumerable: true,
|
|
3748
3961
|
get: function () { return notifications.showNotification; }
|
|
@@ -3758,6 +3971,7 @@ exports.Badges = Badges;
|
|
|
3758
3971
|
exports.Class = Class;
|
|
3759
3972
|
exports.Classes = Classes;
|
|
3760
3973
|
exports.Dashboard = Dashboard;
|
|
3974
|
+
exports.FileLocker = FileLocker;
|
|
3761
3975
|
exports.GettingStarted = GettingStarted;
|
|
3762
3976
|
exports.Home = Home;
|
|
3763
3977
|
exports.Lesson = Lesson;
|