@local-civics/mgmt-ui 0.1.76 → 0.1.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/users/UserButton/UserButton.tsx","../src/utils/numbers.ts","../src/components/navigation/NavbarLinksGroups/NavbarLinksGroups.tsx","../src/components/navigation/Navbar/Navbar.tsx","../src/components/users/SwitchAccount/SwitchAccount.tsx","../src/components/data/StatsGroup/StatsGroup.tsx","../src/components/navigation/Tabs/Tabs.tsx","../src/pages/Badge/SplitButton.tsx","../src/components/banners/PlaceholderBanner/PlaceholderBanner.tsx","../src/pages/Badge/LessonStack.tsx","../src/pages/Badge/Table.tsx","../src/pages/Badge/LessonTable.tsx","../src/pages/Badge/Badge.tsx","../src/pages/Badges/Table.tsx","../src/pages/Badges/Badges.tsx","../src/pages/Dashboard/StudentTable.tsx","../src/utils/time.ts","../src/pages/Dashboard/ReflectionTable.tsx","../src/pages/Dashboard/ImpactTable.tsx","../src/pages/Dashboard/BadgeTable.tsx","../src/pages/Dashboard/LessonTable.tsx","../src/pages/Dashboard/Dashboard.tsx","../src/pages/Class/SplitButton.tsx","../src/pages/Class/Table.tsx","../src/pages/Class/Class.tsx","../src/pages/Classes/Table.tsx","../src/pages/Classes/Classes.tsx","../src/components/users/UserInfo/UserInfo.tsx","../src/pages/Student/BadgeTable.tsx","../src/pages/Student/AnswerTable.tsx","../src/pages/Student/ReflectionTable.tsx","../src/pages/Student/Student.tsx","../src/components/cards/CardGradient.tsx","../src/components/banners/TenantBanner/TenantBanner.tsx","../src/pages/Home/Home.tsx","../src/pages/Lesson/ReflectionTable.tsx","../src/pages/Lesson/SplitButton.tsx","../src/pages/Lesson/AnswerStack.tsx","../src/pages/Lesson/Table.tsx","../src/pages/Lesson/QuestionStack.tsx","../src/pages/Lesson/Lesson.tsx","../src/pages/Lessons/Table.tsx","../src/pages/Lessons/Lessons.tsx","../src/pages/Organization/AccessCode.tsx","../src/pages/Organization/Organization.tsx","../src/pages/People/SplitButton.tsx","../src/pages/People/Table.tsx","../src/pages/People/People.tsx","../src/pages/StartAnonymousLesson/StartAnonymousLesson.tsx","../src/components/grid/BadgeGrid/BadgeGrid.tsx","../src/pages/TrialHome/TrialHome.tsx","../src/components/grid/SelectGrid/SelectGrid.tsx","../src/pages/TrialRegistration/TrialRegistration.tsx","../src/providers/AdminProvider/AdminProvider.tsx","../src/shells/App/App.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n UnstyledButton,\n UnstyledButtonProps,\n Group,\n Avatar,\n Text,\n createStyles,\n} from '@mantine/core';\n\nconst useStyles = createStyles((theme) => ({\n user: {\n display: 'block',\n width: '100%',\n padding: theme.spacing.md,\n cursor: \"default\",\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.black,\n },\n}));\n\ninterface UserButtonProps extends UnstyledButtonProps {\n image: string;\n name: string;\n email: string;\n icon?: React.ReactNode;\n}\n\nexport function UserButton({ image, name, email, icon, ...others }: UserButtonProps) {\n const { classes } = useStyles();\n\n return <Group className={classes.user} {...others}>\n <Avatar src={image} radius=\"xl\" />\n\n <div style={{ flex: 1 }}>\n <Text size=\"sm\" weight={500}>\n {name}\n </Text>\n\n <Text color=\"dimmed\" size=\"xs\">\n {email}\n </Text>\n </div>\n\n {/*{icon || <IconChevronRight size={14} stroke={1.5} />}*/}\n </Group>;\n}","/**\n * Compact number\n * @param num\n */\nexport const compact = (num?: number) => {\n return Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n maximumFractionDigits: 1,\n }).format(num || 0);\n};","import * as React from 'react';\nimport { useState } from 'react';\nimport { Group, Badge, Box, Collapse, ThemeIcon, Text, createStyles } from '@mantine/core';\nimport { TablerIcon, IconChevronLeft, IconChevronRight } from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\nimport {compact} from \"../../../utils/numbers\";\n\nconst useStyles = createStyles((theme, _params, getRef) => {\n const icon = getRef('icon');\n return {\n control: {\n fontWeight: 500,\n width: '100%',\n padding: `${theme.spacing.xs}px ${theme.spacing.md}px`,\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.black,\n fontSize: theme.fontSizes.sm,\n\n '&:hover': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.colors.gray[0],\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n },\n },\n\n controlButton: {\n cursor: 'pointer',\n },\n\n badge: {\n pointerEvents: 'none',\n },\n\n link: {\n fontWeight: 500,\n display: 'block',\n textDecoration: 'none',\n padding: `${theme.spacing.xs}px ${theme.spacing.md}px`,\n paddingLeft: 31,\n marginLeft: 30,\n fontSize: theme.fontSizes.sm,\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n borderLeft: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[3]\n }`,\n\n '&:hover': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.colors.gray[0],\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n },\n },\n\n linkActive: {\n '&, &:hover': {\n backgroundColor: theme.fn.variant({variant: 'light', color: theme.primaryColor})\n .background,\n color: theme.fn.variant({variant: 'light', color: theme.primaryColor}).color,\n [`& .${icon}`]: {\n color: theme.fn.variant({variant: 'light', color: theme.primaryColor}).color,\n },\n },\n },\n\n chevron: {\n transition: 'transform 200ms ease',\n },\n\n linkIcon: {\n ref: icon,\n },\n }\n});\n\ninterface LinksGroupProps {\n icon: TablerIcon;\n label: string;\n initiallyOpened?: boolean;\n active?: string\n notifications: number\n href: string\n links?: { notifications: number, label: string, href: string;}[];\n}\n\nexport function LinksGroup({ icon: Icon, href, label, initiallyOpened, links, active, notifications}: LinksGroupProps) {\n const { classes, theme, cx } = useStyles();\n const hasLinks = Array.isArray(links) && links.length > 0;\n const hasActiveLinks = Array.isArray(links) && links.map(l => !!active && active === `${label}/${l.label}`).reduce((a, b) => a || b, false)\n const [opened, setOpened] = useState(initiallyOpened || hasActiveLinks || false);\n\n React.useEffect(() => {\n setOpened(hasActiveLinks)\n }, [hasActiveLinks])\n\n const ChevronIcon = theme.dir === 'ltr' ? IconChevronRight : IconChevronLeft;\n const items = (hasLinks ? links : []).map((link) => {\n return <Box\n className={cx(classes.link, { [classes.linkActive]: !!active && active === `${label}/${link.label}`})}\n key={link.label}>\n <Group position=\"apart\" spacing={0}>\n <Text<typeof Link> component={Link} to={link.href}>\n {link.label}\n </Text>\n {!!link.notifications && (\n <Badge size=\"sm\" variant=\"filled\" className={classes.badge}>\n {compact(link.notifications)}\n </Badge>\n )}\n </Group>\n </Box>\n });\n\n return (\n <>\n <Group\n className={cx(classes.control, {\n [classes.linkActive]: !!active && !hasLinks && label === active,\n [classes.controlButton]: hasLinks\n })}\n onClick={() => setOpened((o) => !o)}\n position=\"apart\"\n spacing={0}>\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <ThemeIcon variant=\"light\" size={30}>\n <Icon className={classes.linkIcon} size={18} />\n </ThemeIcon>\n <Box ml=\"md\">\n <Text<typeof Link> component={Link} to={href}>\n {label}\n </Text>\n </Box>\n </Box>\n\n {!!notifications && (\n <Badge size=\"sm\" variant=\"filled\" className={classes.badge}>\n {compact(notifications)}\n </Badge>\n )}\n\n {hasLinks && (\n <ChevronIcon\n className={classes.chevron}\n size={14}\n stroke={1.5}\n style={{\n transform: opened ? `rotate(${theme.dir === 'rtl' ? -90 : 90}deg)` : 'none',\n }}\n />\n )}\n </Group>\n {hasLinks ? <Collapse in={opened}>{items}</Collapse> : null}\n </>\n );\n}","import * as React from 'react';\nimport {\n Navbar as NavbarCore,\n Avatar,\n Image,\n Center,\n createStyles,\n Group, Code, ScrollArea, Burger,\n Badge,\n} from '@mantine/core';\nimport {\n IconHome2,\n IconGauge,\n IconLogout,\n IconSwitchHorizontal, IconLambda, IconCategory2, IconAlbum, IconBuilding,\n} from '@tabler/icons';\nimport {UserButton} from \"../../users/UserButton/UserButton\";\nimport {LinksGroup} from \"../NavbarLinksGroups/NavbarLinksGroups\";\n\nconst useStyles = createStyles((theme, _params, getRef) => {\n const icon = getRef('icon');\n return {\n navbar: {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.white,\n },\n\n navHeader: {\n // Media query with value from theme\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n height: 71,\n position: 'absolute',\n top: 0,\n },\n },\n\n navBody: {\n // Media query with value from theme\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n display: 'none',\n },\n },\n\n burger: {\n [theme.fn.largerThan('sm')]: {\n display: 'none',\n },\n },\n\n header: {\n padding: theme.spacing.md,\n paddingTop: 0,\n marginLeft: -theme.spacing.md,\n marginRight: -theme.spacing.md,\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n borderBottom: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[3]\n }`,\n },\n\n link: {\n ...theme.fn.focusStyles(),\n display: 'flex',\n alignItems: 'center',\n textDecoration: 'none',\n fontSize: theme.fontSizes.sm,\n color: theme.colorScheme === 'dark' ? theme.colors.dark[1] : theme.colors.gray[7],\n padding: `${theme.spacing.xs}px ${theme.spacing.sm}px`,\n borderRadius: theme.radius.sm,\n fontWeight: 500,\n\n '&:hover': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[0],\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n\n [`& .${icon}`]: {\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n },\n },\n },\n\n linkIcon: {\n ref: icon,\n color: theme.colorScheme === 'dark' ? theme.colors.dark[2] : theme.colors.gray[6],\n marginRight: theme.spacing.sm,\n },\n\n links: {\n marginLeft: -theme.spacing.md,\n marginRight: -theme.spacing.md,\n },\n\n user: {\n margin: theme.spacing.md,\n marginLeft: 0,\n marginRight: 0,\n },\n\n linksInner: {\n paddingBottom: theme.spacing.xl,\n },\n\n footer: {\n paddingTop: theme.spacing.md,\n paddingBottom: theme.spacing.md,\n borderTop: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[2]\n }`,\n },\n\n active: {\n '&, &:hover': {\n backgroundColor: theme.fn.variant({ variant: 'light', color: theme.primaryColor }).background,\n color: theme.fn.variant({ variant: 'light', color: theme.primaryColor }).color,\n },\n },\n }\n});\n\n/**\n * NavbarProps\n */\nexport interface NavbarProps {\n active: string\n version: string\n image: string\n name: string\n email: string\n links: Record<string, {notifications: number, href: string, hidden?: boolean}>\n trial?: boolean\n onLogout: () => void;\n onSwitchAccounts?: () => void;\n}\n\nconst data = [\n {label: 'Home', icon: IconHome2},\n {label: 'Dashboard', icon: IconGauge},\n {label: 'Classes', icon: IconCategory2},\n {label: 'Badges', icon: IconAlbum},\n {label: 'Lessons', icon: IconLambda},\n {label: 'Organization',\n icon: IconBuilding,\n links: [\n {label: 'Overview'},\n {label: 'People'},\n ],\n }\n]\n\nexport function Navbar(props: NavbarProps) {\n const { classes, cx } = useStyles();\n const [burgerOpen, setBurgerOpen] = React.useState(false)\n const toggle = () => setBurgerOpen(!burgerOpen)\n const links = data.map((item) => {\n const context = props.links[item.label] || {notifications: 0, href: \"\"}\n if(context.hidden || props.trial && item.label !== 'Home'){\n return null\n }\n\n return <LinksGroup\n key={item.label}\n active={props.active}\n {...item}\n {...context}\n links={(item.links || []).map((link) => {\n return {...link, ...props.links[`${item.label}/${link.label}`] || {notifications: 0, href: \"\"}}\n })}\n />\n });\n\n return (\n <>\n <NavbarCore width={{ sm: 300 }} p=\"md\" className={cx(classes.navbar, {[classes.navHeader]: !burgerOpen})}>\n <NavbarCore.Section className={classes.header}>\n <Group position=\"apart\">\n <Center>\n <Avatar color=\"blue\" radius=\"sm\">\n <div style={{ width: 15, marginLeft: 'auto', marginRight: 'auto' }}>\n <Image fit=\"contain\" src=\"https://cdn.localcivics.io/brand/l.png\"/>\n </div>\n </Avatar>\n </Center>\n <Group position=\"apart\">\n <Code sx={{ fontWeight: 700 }}>{props.version}</Code>\n { !!props.trial && <Badge color=\"violet\" radius=\"xs\">Trial</Badge>}\n <Burger opened={burgerOpen} onClick={toggle} className={classes.burger} size=\"sm\" />\n </Group>\n </Group>\n </NavbarCore.Section>\n\n <div className={cx({[classes.navBody]: !burgerOpen})}>\n <UserButton\n className={classes.user}\n image={props.image}\n name={props.name}\n email={props.email}\n />\n\n <NavbarCore.Section grow className={classes.links} component={ScrollArea}>\n <div className={classes.linksInner}>{links}</div>\n </NavbarCore.Section>\n\n <NavbarCore.Section className={classes.footer}>\n { !!props.onSwitchAccounts && <a href=\"#\" className={classes.link} onClick={(event) => {\n event.preventDefault()\n props.onSwitchAccounts && props.onSwitchAccounts()\n }}>\n <IconSwitchHorizontal className={classes.linkIcon} stroke={1.5} />\n <span>Change account</span>\n </a>}\n\n <a href=\"#\" className={classes.link} onClick={(event) => {\n event.preventDefault()\n props.onLogout()\n }}>\n <IconLogout className={classes.linkIcon} stroke={1.5} />\n <span>Logout</span>\n </a>\n </NavbarCore.Section>\n </div>\n </NavbarCore>\n </>\n );\n}","import {IconBackpack, IconBatteryEco, IconBooks} from \"@tabler/icons\";\nimport * as React from 'react';\nimport {Modal, SimpleGrid, UnstyledButton, Card, ScrollArea, Text, createStyles, Center, Loader} from '@mantine/core';\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n\n description: {\n maxWidth: 600,\n margin: 'auto',\n\n '&::after': {\n content: '\"\"',\n display: 'block',\n backgroundColor: theme.fn.primaryColor(),\n width: 45,\n height: 2,\n marginTop: theme.spacing.sm,\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n },\n\n card: {\n transition: 'box-shadow 150ms ease, transform 100ms ease',\n\n '&:hover': {\n boxShadow: `${theme.shadows.md} !important`,\n transform: 'scale(1.02)',\n },\n },\n\n cardTitle: {\n '&::after': {\n content: '\"\"',\n display: 'block',\n backgroundColor: theme.fn.primaryColor(),\n width: 45,\n height: 2,\n marginTop: theme.spacing.sm,\n },\n },\n}));\n\n/**\n * AccountItem\n */\nexport type AccountItem = {\n accountId: string\n name: string\n isAdmin?: boolean\n isGroupAdmin?: boolean\n}\n\n/**\n * SwitchAccountProps\n */\nexport type SwitchAccountProps = {\n opened: boolean\n account: string\n loading: boolean\n accounts: AccountItem[]\n onClick: (account: string) => void;\n onClose: () => void;\n}\n\n/**\n * SwitchAccount\n * @param props\n * @constructor\n */\nexport const SwitchAccount = (props: SwitchAccountProps) => {\n const { classes, theme } = useStyles();\n\n const options = props.accounts.map(a => {\n return <UnstyledButton onClick={() => props.onClick && props.onClick(a.accountId)} key={a.accountId} p={theme.spacing.md}>\n <Card withBorder shadow=\"md\" radius=\"md\" className={classes.card} p=\"xl\">\n { a.isAdmin && <><IconBatteryEco size={50} stroke={2} color={theme.fn.primaryColor()}/></> }\n { a.isGroupAdmin && !a.isAdmin && <><IconBooks size={50} stroke={2} color={theme.fn.primaryColor()}/></>}\n { !a.isAdmin && !a.isGroupAdmin && <><IconBackpack size={50} stroke={2} color={theme.fn.primaryColor()}/></>}\n\n <Text size=\"lg\" weight={500} className={classes.cardTitle} mt=\"md\">\n {a.name}\n </Text>\n <Text size=\"sm\" color=\"dimmed\" mt=\"sm\">\n {a.isAdmin ? \"Admin\" : a.isGroupAdmin ? \"Educator\" : \"Student\"}\n </Text>\n </Card>\n </UnstyledButton>\n })\n\n return <Modal centered\n fullScreen\n opened={props.opened}\n onClose={() => props.onClose && props.onClose()}\n size=\"sm\"\n >\n <div style={{ position: 'relative' }}>\n { props.loading && <Center style={{ height: 400 }}><Loader/></Center> }\n { !props.loading && <ScrollArea.Autosize maxHeight={600}>\n <SimpleGrid p={20} cols={3} spacing=\"xl\" breakpoints={[{ maxWidth: 'md', cols: 1 }]}>\n {options}\n </SimpleGrid>\n </ScrollArea.Autosize>\n }\n </div>\n </Modal>\n}","import * as React from 'react';\nimport { createStyles, Text } from '@mantine/core';\n\nconst useStyles = createStyles((theme) => ({\n root: {\n display: 'flex',\n backgroundImage: `linear-gradient(-60deg, ${theme.colors[theme.primaryColor][4]} 0%, ${\n theme.colors[theme.primaryColor][7]\n } 100%)`,\n padding: theme.spacing.xl * 1.5,\n borderRadius: theme.radius.md,\n\n [theme.fn.smallerThan('sm')]: {\n flexDirection: 'column',\n },\n },\n\n title: {\n color: theme.white,\n textTransform: 'uppercase',\n fontWeight: 700,\n fontSize: theme.fontSizes.sm,\n },\n\n count: {\n color: theme.white,\n fontSize: 32,\n lineHeight: 1,\n fontWeight: 700,\n marginBottom: theme.spacing.md,\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\n },\n\n description: {\n color: theme.colors[theme.primaryColor][0],\n fontSize: theme.fontSizes.sm,\n marginTop: 5,\n },\n\n stat: {\n flex: 1,\n '& + &': {\n paddingLeft: theme.spacing.xl,\n marginLeft: theme.spacing.xl,\n borderLeft: `1px solid ${theme.colors[theme.primaryColor][3]}`,\n\n [theme.fn.smallerThan('sm')]: {\n paddingLeft: 0,\n marginLeft: 0,\n borderLeft: 0,\n paddingTop: theme.spacing.xl,\n marginTop: theme.spacing.xl,\n borderTop: `1px solid ${theme.colors[theme.primaryColor][3]}`,\n },\n },\n },\n}));\n\ninterface StatsGroupProps {\n data: { title: string; value: number, unit?: string}[];\n}\n\n/**\n * StatsGroup\n * @param data\n * @constructor\n */\nexport const StatsGroup = ({ data }: StatsGroupProps) => {\n const { classes } = useStyles();\n const stats = data.map((stat) => {\n const value = (() => {\n if(stat.unit === '%'){\n // https://stackoverflow.com/questions/11832914/how-to-round-to-at-most-2-decimal-places-if-necessary\n return Math.round((stat.value + Number.EPSILON) * 100)\n }\n\n return stat.value\n })()\n\n return <div key={stat.title} className={classes.stat}>\n <Text className={classes.count}>{value.toLocaleString()}{stat.unit}</Text>\n <Text className={classes.title}>{stat.title}</Text>\n </div>\n });\n return <div className={classes.root}>{stats}</div>;\n}","import * as React from 'react';\nimport {Tabs as TabsCore, TabsValue} from '@mantine/core';\n\n/**\n * TabProps\n */\nexport interface TabsProps{\n data?: {label?: string, value: string}[]\n value?: TabsValue\n\n onChange: (next: string) => void\n}\n\n/**\n * Tabs\n * @param props\n * @constructor\n */\nexport const Tabs = (props: TabsProps) => {\n const tabs = props.data?.map(item => <TabsCore.Tab key={item.value} value={item.value}>{item.label||item.value}</TabsCore.Tab>)\n\n return (\n <TabsCore value={props.value} onTabChange={props.onChange}>\n <TabsCore.List>\n {tabs}\n </TabsCore.List>\n </TabsCore>\n );\n}","import * as React from 'react'\nimport { createStyles, Button, Menu, Group, ActionIcon } from '@mantine/core';\nimport {\n IconChevronDown,\n IconPlaylistAdd,\n IconClipboardCopy, IconTableExport\n} from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\n\nconst useStyles = createStyles((theme) => ({\n button: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n marginLeft: 0,\n marginRight: 0,\n },\n\n menuControl: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: 0,\n borderLeft: `1px solid ${theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white}`,\n },\n}));\n\nexport type SplitButtonProps = {\n href: string\n onCopyLinkClick: () => void;\n onExportDataClick: () => void;\n}\n\nexport const SplitButton = (props: SplitButtonProps) => {\n const { classes, theme } = useStyles();\n const menuIconColor = theme.colors[theme.primaryColor][theme.colorScheme === 'dark' ? 5 : 6];\n\n return (\n <Group noWrap spacing={0}>\n <Button<typeof Link> component={Link} to={props.href}\n className={classes.button}\n variant=\"gradient\"\n >\n Preview\n </Button>\n <Menu transition=\"pop\" position=\"bottom-end\">\n <Menu.Target>\n <ActionIcon\n variant=\"gradient\"\n color={theme.primaryColor}\n size={36}\n className={classes.menuControl}\n >\n <IconChevronDown size={16} stroke={1.5} />\n </ActionIcon>\n </Menu.Target>\n <Menu.Dropdown>\n <Menu.Item\n icon={<IconClipboardCopy size={16} stroke={1.5} color={menuIconColor} />}\n onClick={props.onCopyLinkClick}\n >\n Copy link\n </Menu.Item>\n <Menu.Item\n icon={<IconTableExport size={16} stroke={1.5} color={menuIconColor} />}\n onClick={props.onExportDataClick}\n >\n Export data (.csv)\n </Menu.Item>\n </Menu.Dropdown>\n </Menu>\n </Group>\n );\n}","import * as React from 'react'\nimport { createStyles, Text, Title, Image } from '@mantine/core';\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing.xl * 2,\n borderRadius: theme.radius.md,\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[8] : theme.white,\n border: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[8] : theme.colors.gray[3]\n }`,\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n flexDirection: 'column-reverse',\n padding: theme.spacing.xl,\n },\n },\n\n image: {\n maxWidth: '40%',\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n maxWidth: '100%',\n },\n },\n\n body: {\n paddingRight: theme.spacing.xl * 4,\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n paddingRight: 0,\n marginTop: theme.spacing.xl,\n },\n },\n\n title: {\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\n lineHeight: 1,\n marginBottom: theme.spacing.md,\n },\n\n controls: {\n display: 'flex',\n marginTop: theme.spacing.xl,\n },\n\n inputWrapper: {\n width: '100%',\n flex: '1',\n },\n\n input: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n borderRight: 0,\n },\n\n control: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n}));\n\n/**\n * PlaceholderBannerIcon\n */\nexport type PlaceholderBannerIcon = \"badges\" | \"lessons\" | \"dashboard\" | \"groups\" | \"kindergarten\" | \"thinking\"\n\n/**\n * PlaceholderBannerProps\n */\nexport type PlaceholderBannerProps = {\n loading: boolean\n icon: PlaceholderBannerIcon\n title?: string,\n description?: string,\n}\n\nexport const PlaceholderBanner = (props: PlaceholderBannerProps) => {\n const { classes } = useStyles();\n const title = props.title || \"Nothing to display\"\n const description = props.description || \"We don't have anything to show you here just yet. Add data, check back later, or adjust your search.\"\n return (\n <div className={classes.wrapper}>\n <div className={classes.body}>\n <Title className={classes.title}>{props.loading ? \"Loading...\" : title}</Title>\n <Text size=\"sm\" color=\"dimmed\">{props.loading ? \"Hold on, we're loading your data.\" : description}</Text>\n </div>\n\n <Image src={`https://cdn.localcivics.io/illustrations/${props.icon}.svg`} className={classes.image} />\n </div>\n );\n}","import * as React from 'react';\nimport {Grid, Badge, Text} from '@mantine/core';\nimport {Link} from \"react-router-dom\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonName: string\n completion: number\n isStarted?: boolean\n href: string\n}\n\n/**\n * StackData\n */\nexport type StackData = {\n items: Item[]\n}\n\n/**\n * StackProps\n */\nexport type StackProps = StackData\n\n/**\n * Stack\n * @constructor\n * @param props\n */\nexport function Stack(props: StackProps) {\n if(props.items.length === 0){\n return null\n }\n\n const rows = props.items.map((row) => (\n <>\n <Grid.Col span={6}>\n <Text<typeof Link> component={Link} to={row.href} color=\"dark.4\" weight=\"bold\" size=\"md\">\n {row.lessonName}\n </Text>\n </Grid.Col>\n <Grid.Col span={6}>\n {row.completion >= 1 && <Badge variant=\"filled\">Complete</Badge>}\n {row.completion === 0 && !row.isStarted && <Badge color=\"red\" variant=\"filled\">Not started</Badge>}\n {row.completion > 0 && row.completion < 1 && <Badge color=\"violet\" variant=\"filled\">{Math.round((row.completion + Number.EPSILON) * 100)}% Complete</Badge>}\n </Grid.Col>\n </>\n ));\n\n return <Grid grow gutter=\"lg\" sx={{ padding: 20, minWidth: 700 }}>\n {rows}\n </Grid>\n}","import {DataTable} from \"mantine-datatable\";\nimport * as React from 'react';\nimport {Avatar, Group, Text, ScrollArea, Badge} from '@mantine/core';\nimport {Link} from \"react-router-dom\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\nimport {Stack as LessonStack, Item as LessonItem} from \"./LessonStack\";\n\n/**\n * Item\n */\nexport interface Item {\n userId: string\n avatar: string\n name: string\n email: string\n isComplete?: boolean\n lessons: LessonItem[]\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No badges to display\"\n description=\"There has not been any badge progress just yet.\"\n loading={props.loading}\n icon=\"badges\"\n />\n }\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <DataTable\n verticalSpacing=\"sm\"\n sx={{ minWidth: 700 }}\n withBorder={false}\n borderRadius=\"sm\"\n withColumnBorders\n striped\n highlightOnHover\n records={props.items}\n idAccessor=\"userId\"\n columns={[{\n accessor: 'name',\n title: 'Student Name',\n render: (row: Item) => (\n <Group spacing=\"sm\">\n <Avatar size={40} src={row.avatar} radius={40}/>\n <div>\n <Text size=\"sm\" weight={500}>\n {row.name}\n </Text>\n <Text size=\"xs\" color=\"dimmed\">\n {row.email}\n </Text>\n </div>\n </Group>\n ),\n },{\n accessor: 'status',\n render: (row: Item) => (\n <>\n {!!row.isComplete && <Badge variant=\"filled\">Complete</Badge>}\n {!row.isComplete && <Badge color=\"red\" variant=\"filled\">Incomplete</Badge>}\n </>\n )\n }]}\n rowExpansion={{\n content: ({ record }: {record: Item}) => (\n <LessonStack items={record.lessons}/>\n ),\n }}\n />\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea, Text} from '@mantine/core';\nimport {Link} from \"react-router-dom\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonId: string\n lessonName: string\n percentageCompletion: number\n href: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No lessons to display\"\n description=\"There are not lessons in badge.\"\n loading={props.loading}\n icon=\"badges\"\n />\n }\n\n const rows = props.items.map((row) => {\n const percentageCompletion = Math.round((row.percentageCompletion + Number.EPSILON) * 100)\n return <tr key={row.lessonName}>\n <td>\n <Text<typeof Link> component={Link} to={row.href}>\n {row.lessonName}\n </Text>\n </td>\n <td>{percentageCompletion}%</td>\n </tr>\n });\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Lesson Name</th>\n <th>Lesson Completion</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import {IconArrowLeft, IconCategory2} from \"@tabler/icons\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport {\n createStyles,\n Badge as BadgeCore,\n Title,\n Text,\n Container, Stack, Grid,\n Select, ActionIcon, Group,\n LoadingOverlay,\n UnstyledButton,\n} from '@mantine/core';\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {Tabs} from \"../../components/navigation/Tabs/Tabs\";\nimport {SplitButton} from \"./SplitButton\";\nimport {Table, Item} from \"./Table\";\nimport {Table as LessonTable, Item as LessonItem} from \"./LessonTable\"\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n\n description: {\n maxWidth: 600,\n },\n}));\n\n/**\n * BadgeUserItem\n */\nexport type BadgeUserItem = Item\n\n/**\n * BadgeClass\n */\nexport type BadgeClass = {\n classId: string\n name: string\n active: boolean\n}\n\n/**\n * BadgeProps\n */\nexport type BadgeProps = {\n loading: boolean\n displayName: string,\n description: string\n classes: BadgeClass[]\n lessons: LessonItem[]\n classId: string\n students: BadgeUserItem[]\n href: string\n trial?: boolean\n\n onBackClick: () => void;\n onClassChange: (classId: string) => void;\n onCopyLinkClick: () => void;\n onExportDataClick: () => void;\n}\n\n/**\n * Badge\n * @param props\n * @constructor\n */\nexport const Badge = (props: BadgeProps) => {\n const { classes } = useStyles();\n const [tab, setTab] = useState(\"lessons\")\n\n const numberOfStudents = props.students.length\n const percentageOfBadgesEarned = numberOfStudents > 0 ? props.students.filter(u => u.isComplete).length / numberOfStudents : 0\n\n return (\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <UnstyledButton onClick={props.onBackClick}>\n <BadgeCore\n variant=\"filled\"\n leftSection={<ActionIcon color=\"blue\" size=\"xs\" radius=\"xl\" variant=\"filled\">\n <IconArrowLeft size={14} />\n </ActionIcon>}\n size=\"lg\">\n Go Back\n </BadgeCore>\n </UnstyledButton>\n <Group>\n <Stack spacing={0}>\n <Title order={2} className={classes.title} mt=\"md\">\n {props.displayName || \"Badge\"}\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n {props.description || \"No description\"}\n </Text>\n </Stack>\n\n <Stack ml=\"auto\">\n <SplitButton\n href={props.href}\n onCopyLinkClick={props.onCopyLinkClick}\n onExportDataClick={props.onExportDataClick}\n />\n </Stack>\n </Group>\n </Grid.Col>\n </Grid>\n <div>\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Stack>\n <StatsGroup data={[\n {\n title: \"BADGE COMPLETION\",\n value: percentageOfBadgesEarned,\n unit: '%',\n },\n ]}/>\n\n { !props.trial && <Select\n clearable\n clearButtonLabel=\"Clear class selection\"\n size=\"sm\"\n placeholder=\"Select a class\"\n nothingFound=\"No options\"\n value={props.classId}\n onChange={props.onClassChange}\n icon={<IconCategory2/>}\n data={props.classes.map(g => {return {value: g.classId, label: g.name}})}\n />}\n\n <Stack spacing={0}>\n { !props.trial && <Tabs\n value={tab}\n data={[\n {label: \"By lesson\", value: \"lessons\"},\n {label: \"By student\", value: \"students\"},\n ]}\n onChange={setTab}\n />}\n\n { (!!props.trial || tab === \"lessons\") && <LessonTable\n loading={props.loading}\n items={props.lessons}\n /> }\n\n { (!props.trial && tab === \"students\") && <Table\n loading={props.loading}\n items={props.students}\n />}\n </Stack>\n </Stack>\n </div>\n </div>\n </Stack>\n </Container>\n )\n}","import * as React from 'react';\nimport { Table as MantineTable, Group, Text, ScrollArea, UnstyledButton } from '@mantine/core';\nimport {Link} from \"react-router-dom\";\nimport {PlaceholderBanner} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n badgeId: string,\n name: string;\n description: string\n href: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[];\n}\n\n/**\n * TableProps\n */\nexport type TableProps = TableData\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No badges to display\"\n description=\"We don't have any badges to show you just yet.\"\n loading={props.loading}\n icon=\"badges\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.badgeId}>\n <td>\n <UnstyledButton<typeof Link> component={Link} to={row.href}\n sx={(theme) => ({\n display: 'block',\n width: '100%',\n padding: theme.spacing.md,\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.black,\n\n '&:hover': {\n backgroundColor:\n theme.colorScheme === 'dark' ? theme.colors.dark[8] : theme.colors.gray[1],\n },\n })}>\n <Group>\n <div>\n <Text size=\"sm\" weight={500}>\n {row.name}\n </Text>\n <Text size=\"xs\" color=\"dimmed\">\n {row.description}\n </Text>\n </div>\n </Group>\n </UnstyledButton>\n </td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable horizontalSpacing={0} verticalSpacing={0} sx={{ minWidth: 700 }}>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {\n createStyles,\n Badge as BadgeCore,\n Title,\n Text,\n Container, Stack, Grid, Autocomplete, LoadingOverlay,\n} from '@mantine/core';\nimport {Table, Item} from \"./Table\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n\n description: {\n maxWidth: 600,\n },\n}));\n\n/**\n * BadgeItem\n */\nexport type BadgeItem = Item\n\n/**\n * BadgesProps\n */\nexport type BadgesProps = {\n loading: boolean\n badges: BadgeItem[]\n\n onAutocompleteChange: (value: string) => void\n}\n\n/**\n * Badges\n * @param props\n * @constructor\n */\nexport const Badges = (props: BadgesProps) => {\n const { classes } = useStyles();\n return (\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <BadgeCore variant=\"filled\" size=\"lg\">\n Badges\n </BadgeCore>\n <Title order={2} className={classes.title} mt=\"md\">\n Badges and micro-credentials\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n Project-sized skills acquisition and standards alignment.\n </Text>\n </Grid.Col>\n </Grid>\n\n <Autocomplete\n placeholder=\"Search for a badge that fits your needs\"\n data={props.badges.map(item => item.name)}\n onChange={props.onAutocompleteChange}\n />\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Table\n loading={props.loading}\n items={props.badges}\n />\n </div>\n </Stack>\n </Container>\n )\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea, UnstyledButton} from '@mantine/core';\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n studentId: string\n studentName: string\n className: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n/**\n * TableMethods\n */\nexport type TableMethods = {\n onViewProfile: (item: Item) => void;\n}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData & TableMethods\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No students to display\"\n description=\"You don't have any students yet, add them and revisit.\"\n loading={props.loading}\n icon=\"groups\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.studentName}>\n <td><UnstyledButton onClick={() => props.onViewProfile(row)}>{row.studentName}</UnstyledButton></td>\n <td>{row.className}</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Student Name</th>\n <th>Class Name</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","// https://stackoverflow.com/questions/6108819/javascript-timestamp-to-relative-time\nconst units: {unit: Intl.RelativeTimeFormatUnit; ms: number}[] = [\n {unit: \"year\", ms: 31536000000},\n {unit: \"month\", ms: 2628000000},\n {unit: \"day\", ms: 86400000},\n {unit: \"hour\", ms: 3600000},\n {unit: \"minute\", ms: 60000},\n {unit: \"second\", ms: 1000},\n];\nconst rtf = new Intl.RelativeTimeFormat(\"en\", {numeric: \"auto\"});\n\n/**\n * Get language-sensitive relative time message from Dates.\n * @param relative - the relative dateTime, generally is in the past or future\n * @param pivot - the dateTime of reference, generally is the current time\n */\nexport function relativeTimeFromDates(relative: Date | null, pivot: Date = new Date()): string {\n if (!relative) return \"\";\n const elapsed = relative.getTime() - pivot.getTime();\n return relativeTimeFromElapsed(elapsed);\n}\n\n/**\n * Get language-sensitive relative time message from elapsed time.\n * @param elapsed - the elapsed time in milliseconds\n */\nexport function relativeTimeFromElapsed(elapsed: number): string {\n for (const {unit, ms} of units) {\n if (Math.abs(elapsed) >= ms || unit === \"second\") {\n return rtf.format(Math.round(elapsed / ms), unit);\n }\n }\n return \"\";\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea} from '@mantine/core';\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\nimport {relativeTimeFromDates} from \"../../utils/time\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonName: string\n studentName: string\n reflection: string\n updatedAt: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n/**\n * TableMethods\n */\nexport type TableMethods = {}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData & TableMethods\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No reflections to display\"\n description=\"There has not been any lesson progress just yet.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.studentName+row.lessonName}>\n <td>{row.studentName}</td>\n <td>{row.lessonName}</td>\n <td>{row.reflection}</td>\n <td>{relativeTimeFromDates(new Date(row.updatedAt))}</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Student Name</th>\n <th>Lesson Name</th>\n <th>Reflection</th>\n <th>Updated At</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea} from '@mantine/core';\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n studentName: string\n impactStatement: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n/**\n * TableMethods\n */\nexport type TableMethods = {}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData & TableMethods\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No impact statements to display\"\n description=\"There are no students with impact statements yet.\"\n loading={props.loading}\n icon=\"kindergarten\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.studentName}>\n <td>{row.studentName}</td>\n <td>{row.impactStatement}</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Student Name</th>\n <th>Impact Statement</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport { Table as MantineTable, Group, Text, ScrollArea, UnstyledButton } from '@mantine/core';\nimport {PlaceholderBanner} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n badgeId: string,\n name: string;\n description: string\n percentageCompletion: number\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[];\n}\n\n/**\n * TableMethods\n */\nexport type TableMethods = {\n onClick: (badge: Item) => void\n}\n\n/**\n * TableProps\n */\nexport type TableProps = TableData & TableMethods\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No badges to display\"\n description=\"We don't have any badges to show you just yet.\"\n loading={props.loading}\n icon=\"badges\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.badgeId}>\n <td>\n <UnstyledButton onClick={() => props.onClick && props.onClick(row)}>\n {row.name}\n </UnstyledButton>\n </td>\n <td>{row.description}</td>\n <td>{Math.round((row.percentageCompletion + Number.EPSILON) * 100)}%</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Badge Name</th>\n <th>Description</th>\n <th>Completion</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport { Table as MantineTable, Group, Text, ScrollArea, UnstyledButton } from '@mantine/core';\nimport {PlaceholderBanner} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonId: string,\n name: string;\n description: string\n percentageCompletion: number\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[];\n}\n\n/**\n * TableMethods\n */\nexport type TableMethods = {\n onClick: (badge: Item) => void\n}\n\n/**\n * TableProps\n */\nexport type TableProps = TableData & TableMethods\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No lessons to display\"\n description=\"We don't have any lessons to show you just yet.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.lessonId}>\n <td>\n <UnstyledButton onClick={() => props.onClick && props.onClick(row)}>\n {row.name}\n </UnstyledButton>\n </td>\n <td>{row.description}</td>\n <td>{Math.round((row.percentageCompletion + Number.EPSILON) * 100)}%</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Lesson Name</th>\n <th>Description</th>\n <th>Completion</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import {IconCategory2} from \"@tabler/icons\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport {Container, LoadingOverlay, Select, Stack, Text, Title} from '@mantine/core';\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {Tabs} from \"../../components/navigation/Tabs/Tabs\";\nimport {Item as StudentItem, Table as StudentTable} from \"./StudentTable\";\nimport {Table as ReflectionTable, Item as ReflectionItem} from \"./ReflectionTable\";\nimport {Item as ImpactItem, Table as ImpactTable} from \"./ImpactTable\";\nimport {Item as BadgeItem, Table as BadgeTable} from \"./BadgeTable\";\nimport {Item as LessonItem, Table as LessonTable} from \"./LessonTable\";\n\n/**\n * DashboardClass\n */\nexport type DashboardClass = {\n classId: string\n name: string\n}\n\n/**\n * DashboardProps\n */\nexport type DashboardProps = {\n loading: boolean\n students: StudentItem[]\n impacts: ImpactItem[]\n reflections: ReflectionItem[],\n classes: DashboardClass[],\n badges: BadgeItem[],\n lessons: LessonItem[],\n classId: string\n percentageOfAccountsCreated: number\n numberOfBadgesEarned: number\n numberOfLessonsCompleted: number\n\n onClassChange: (classId: string) => void;\n onViewStudentProfile: (student: StudentItem) => void\n onBadgeClick: (badge: BadgeItem) => void;\n onLessonClick: (lesson: LessonItem) => void;\n}\n\n/**\n * Dashboard\n * @param props\n * @constructor\n */\nexport const Dashboard = (props: DashboardProps) => {\n const [tab, setTab] = useState(\"students\")\n\n return <Container size=\"lg\" py=\"xl\">\n <Stack>\n <Stack spacing={0}>\n <Title size=\"h3\">Dashboard</Title>\n <Text color=\"dimmed\" size=\"sm\" mt=\"md\">\n Fast-track learning for your students.\n </Text>\n </Stack>\n <Stack>\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Stack spacing=\"sm\">\n <StatsGroup data={[\n {\n title: \"# OF STUDENTS\",\n value: props.students.length,\n },\n {\n title: \"ACCOUNT CREATION\",\n value: props.percentageOfAccountsCreated,\n unit: \"%\",\n },\n {\n title: \"BADGES EARNED\",\n value: props.numberOfBadgesEarned,\n },\n {\n title: \"LESSONS COMPLETED\",\n value: props.numberOfLessonsCompleted,\n },\n ]}/>\n\n <Select\n clearable\n clearButtonLabel=\"Clear class selection\"\n size=\"sm\"\n placeholder=\"Select a class\"\n nothingFound=\"No options\"\n value={props.classId}\n onChange={props.onClassChange}\n icon={<IconCategory2/>}\n data={props.classes.map(g => {return {value: g.classId, label: g.name}})}\n />\n\n <Stack spacing={0}>\n <Tabs\n value={tab}\n data={[\n {label: \"My students\", value: \"students\"},\n {label: \"Impact statements\", value: \"impact\"},\n {label: \"Reflections\", value: \"reflections\"},\n {label: \"Badges\", value: \"badges\"},\n {label: \"Lessons\", value: \"lessons\"},\n ]}\n onChange={setTab}\n />\n\n { tab === \"impact\" && <ImpactTable\n loading={props.loading}\n items={props.impacts}\n />}\n\n { tab === \"reflections\" && <ReflectionTable\n loading={props.loading}\n items={props.reflections}\n /> }\n\n { tab === \"badges\" && <BadgeTable\n loading={props.loading}\n items={props.badges}\n onClick={props.onBadgeClick}\n /> }\n\n { tab === \"lessons\" && <LessonTable\n loading={props.loading}\n items={props.lessons}\n onClick={props.onLessonClick}\n /> }\n\n { tab === \"students\" && <StudentTable\n loading={props.loading}\n items={props.students}\n onViewProfile={props.onViewStudentProfile}\n />}\n </Stack>\n </Stack>\n </div>\n </Stack>\n </Stack>\n </Container>\n}","import * as React from 'react'\nimport {Button, Stack} from '@mantine/core';\nimport {\n IconPlaylistAdd,\n IconClipboardCopy\n} from '@tabler/icons';\n\nexport type SplitButtonProps = {\n onAddMembersClick: () => void;\n onCopyClassLinkClick: () => void;\n}\n\nexport const SplitButton = (props: SplitButtonProps) => {\n return (\n <Stack spacing=\"sm\">\n <Button\n leftIcon={<IconPlaylistAdd size={14} />}\n onClick={props.onAddMembersClick}\n >\n Add students\n </Button>\n\n <Button\n leftIcon={<IconClipboardCopy size={14} />}\n onClick={props.onCopyClassLinkClick}\n >\n Copy class link\n </Button>\n </Stack>\n );\n}","import {openConfirmModal} from \"@mantine/modals\";\nimport * as React from 'react';\nimport {\n Avatar,\n Table as MantineTable,\n Group,\n Text,\n ActionIcon,\n UnstyledButton,\n ScrollArea,\n Select,\n Box\n} from '@mantine/core';\nimport {IconCheck, IconTrash} from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\nimport {relativeTimeFromDates} from \"../../utils/time\";\n\n/**\n * Item\n */\nexport type Item = {\n classId: string,\n userId: string,\n avatar: string,\n email: string,\n givenName: string,\n familyName: string,\n lastActivity: Date | null\n readonly: boolean\n hasAccount: boolean\n badgesEarned: number\n lessonsCompleted: number\n isAdmin: boolean\n href: string\n}\n\n/**\n * TableProps\n */\nexport interface TableProps {\n loading: boolean\n items: Item[];\n\n onDelete?: (member: Item) => void\n onRoleChange?: (user: Item, role: string | null) => void;\n}\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No members to display\"\n description=\"You have not rostered any students yet.\"\n loading={props.loading}\n icon=\"groups\"\n />\n }\n\n const openDeleteModal = (student: Item) => openConfirmModal({\n title: `Delete \"${student.givenName && student.familyName ? `${student.givenName} ${student.familyName}` : student.email}\"?`,\n centered: true,\n children: (\n <Text size=\"sm\">\n Are you sure you want to delete this person? This action is destructive and you will have\n to contact support to restore your data.\n </Text>\n ),\n labels: { confirm: 'Delete', cancel: \"No don't delete them\" },\n confirmProps: { color: 'red' },\n onConfirm: () => props.onDelete && props.onDelete(student),\n });\n\n const rows = props.items.map((row) => (\n <tr key={row.email}>\n <td>\n <UnstyledButton<typeof Link> component={Link} to={row.href}>\n <Group spacing=\"sm\">\n <Avatar size={40} src={row.avatar} radius={40} />\n <div>\n <Text size=\"sm\" weight={500}>\n {row.givenName && row.familyName ? `${row.givenName} ${row.familyName}` : row.email}\n </Text>\n <Text size=\"xs\" color=\"dimmed\">\n {row.email}\n </Text>\n </div>\n </Group>\n </UnstyledButton>\n </td>\n <td>\n <Box maw={150}>\n <Select\n size=\"sm\"\n value={row.isAdmin ? \"educator\" : \"student\"}\n onChange={(value) => props.onRoleChange && props.onRoleChange(row, value)}\n data={[{value: \"student\", label: \"Student\"}, {value: \"educator\", label: \"Educator\"}]}\n />\n </Box>\n </td>\n <td>{row.badgesEarned}</td>\n <td>{row.lessonsCompleted}</td>\n <td>{row.hasAccount && <IconCheck color=\"green\" />}</td>\n <td>{row.lastActivity ? relativeTimeFromDates(row.lastActivity) : \"\"}</td>\n <td>\n <Group noWrap spacing={0} position=\"right\">\n { !row.readonly && !!props.onDelete && <ActionIcon color=\"red\">\n <IconTrash onClick={() => openDeleteModal(row)} size={16} stroke={1.5} />\n </ActionIcon> }\n </Group>\n </td>\n </tr>\n ));\n\n return (\n <ScrollArea>\n <MantineTable verticalSpacing={20} sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Name</th>\n <th>Role</th>\n <th>Badges Earned</th>\n <th>Lessons Completed</th>\n <th>Account Created?</th>\n <th>Last Active</th>\n <th></th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea>\n );\n}","import {IconArrowLeft, IconCloudUpload, IconX, IconDownload} from \"@tabler/icons\";\nimport {ParseResult} from \"papaparse\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport {\n createStyles,\n Title,\n Text,\n Container, Stack, Grid,\n Drawer,\n Button, TextInput, Badge,\n ActionIcon,\n Group, Divider, LoadingOverlay,\n UnstyledButton,\n} from '@mantine/core';\nimport { Dropzone, MIME_TYPES } from '@mantine/dropzone';\nimport { useForm } from '@mantine/form';\nimport * as papa from 'papaparse'\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {SplitButton} from \"./SplitButton\";\nimport {Table, Item} from \"./Table\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n description: {\n maxWidth: 600,\n },\n autocomplete: {\n maxWidth: 400,\n },\n wrapper: {\n position: 'relative',\n marginBottom: 30,\n },\n\n dropzone: {\n borderWidth: 1,\n paddingBottom: 50,\n },\n\n icon: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[3] : theme.colors.gray[4],\n },\n\n control: {\n position: 'absolute',\n width: 250,\n left: 'calc(50% - 125px)',\n bottom: -20,\n },\n}));\n\n/**\n * MemberItem\n */\nexport type MemberItem = Item\n\n/**\n * ClassProps\n */\nexport type ClassProps = {\n loading: boolean\n displayName: string\n description: string\n members: MemberItem[]\n percentageOfAccountsCreated: number\n numberOfBadgesEarned: number\n numberOfLessonsCompleted: number\n\n onBackClick: () => void;\n onCreateMembers: (members: MemberItem[]) => void;\n onDeleteMember: (student: MemberItem) => void;\n onChangeUserRole: (user: MemberItem, role: string | null) => void;\n onCopyLinkClick: () => void;\n}\n\n/**\n * Class\n * @param props\n * @constructor\n */\nexport const Class = (props: ClassProps) => {\n const { classes } = useStyles();\n const form = useForm({\n initialValues: {\n classId: '',\n userId: '',\n email: '',\n givenName: '',\n familyName: '',\n avatar: '',\n role: '',\n readonly: false,\n lastActivity: null,\n hasAccount: false,\n lessonsCompleted: 0,\n badgesEarned: 0,\n href: \"\",\n isAdmin: false,\n },\n\n validate: {\n email: (value) => /^\\S+@\\S+$/.test(value) && props.members.filter(u => u.email === value).length === 0 ? null : 'Invalid email',\n },\n });\n const [opened, setOpened] = useState(false);\n return (\n <>\n <Drawer\n opened={opened}\n onClose={() => setOpened(false)}\n title={<Title size=\"h5\">Add students</Title>}\n padding=\"xl\"\n size=\"xl\"\n >\n <Stack spacing=\"md\">\n <DropzoneButton {...props} close={() => setOpened(false)} />\n\n <Divider label=\"or\" labelPosition=\"center\" my=\"md\" variant=\"dashed\"/>\n\n <form onSubmit={form.onSubmit(() => {\n const values = form.values\n form.reset()\n setOpened(false)\n props.onCreateMembers && props.onCreateMembers([values])\n })}>\n <Stack>\n <TextInput\n withAsterisk\n label=\"Email\"\n placeholder=\"Email\"\n {...form.getInputProps('email')}\n />\n <Group grow>\n <TextInput\n label=\"Given name\"\n placeholder=\"Given name\"\n {...form.getInputProps('givenName')}\n />\n <TextInput\n label=\"Family name\"\n placeholder=\"Family name\"\n {...form.getInputProps('familyName')}\n />\n </Group>\n <Button type=\"submit\" fullWidth mt=\"md\">\n Submit\n </Button>\n </Stack>\n </form>\n </Stack>\n </Drawer>\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <UnstyledButton onClick={props.onBackClick}>\n <Badge\n variant=\"filled\"\n leftSection={<ActionIcon color=\"blue\" size=\"xs\" radius=\"xl\" variant=\"filled\">\n <IconArrowLeft size={14} />\n </ActionIcon>}\n size=\"lg\">\n Go Back\n </Badge>\n </UnstyledButton>\n <Title order={2} className={classes.title} mt=\"md\">\n {props.displayName || \"Class\"}\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n {props.description || \"No description\"}\n </Text>\n </Grid.Col>\n <Grid.Col sm=\"content\">\n { !props.loading && <SplitButton\n onAddMembersClick={() => setOpened(true)}\n onCopyClassLinkClick={props.onCopyLinkClick}\n />}\n </Grid.Col>\n </Grid>\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n\n <Stack spacing=\"sm\">\n <StatsGroup data={[\n {\n title: \"# OF STUDENTS\",\n value: props.members.filter(a => !a.isAdmin).length,\n },\n {\n title: \"ACCOUNT CREATION\",\n value: props.percentageOfAccountsCreated,\n unit: \"%\",\n },\n {\n title: \"BADGES EARNED\",\n value: props.numberOfBadgesEarned,\n },\n {\n title: \"LESSONS COMPLETED\",\n value: props.numberOfLessonsCompleted,\n },\n ]}/>\n\n <Table\n loading={props.loading}\n items={props.members}\n onDelete={props.onDeleteMember}\n onRoleChange={props.onChangeUserRole}\n />\n </Stack>\n </div>\n </Stack>\n </Container>\n </>\n )\n}\n\nconst DropzoneButton = (props: ClassProps & {close: () => void}) => {\n const { classes, theme } = useStyles();\n const openRef = React.useRef<() => void>(null);\n const [loading, setLoading] = React.useState(false)\n const onDrop = React.useCallback((acceptedFiles: File[]) => {\n setLoading(true)\n acceptedFiles.forEach((file) => {\n papa.parse(file, {\n download: true,\n header: true,\n dynamicTyping: true,\n skipEmptyLines: true,\n worker: true,\n complete: function(results: ParseResult<MemberItem>) {\n const data = results.data\n .filter(v => /^\\S+@\\S+$/.test(v.email) && props.members.filter(u => u.email === v.email).length === 0)\n data.length > 0 && props.onCreateMembers && props.onCreateMembers(data)\n setLoading(false)\n props.close()\n }\n })\n })\n\n }, [])\n\n return (\n <div className={classes.wrapper}>\n <Dropzone\n loading={loading}\n openRef={openRef}\n onDrop={onDrop}\n className={classes.dropzone}\n radius=\"md\"\n accept={[MIME_TYPES.csv]}\n maxSize={5 * 1024 ** 2}\n >\n <div style={{ pointerEvents: 'none' }}>\n <Group position=\"center\">\n <Dropzone.Accept>\n <IconDownload size={50} color={theme.colors[theme.primaryColor][6]} stroke={1.5} />\n </Dropzone.Accept>\n <Dropzone.Reject>\n <IconX size={50} color={theme.colors.red[6]} stroke={1.5} />\n </Dropzone.Reject>\n <Dropzone.Idle>\n <IconCloudUpload\n size={50}\n color={theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.black}\n stroke={1.5}\n />\n </Dropzone.Idle>\n </Group>\n\n <Text align=\"center\" weight={700} size=\"lg\" mt=\"xl\">\n <Dropzone.Accept>Drop files here</Dropzone.Accept>\n <Dropzone.Reject>Csv file less than 5mb</Dropzone.Reject>\n <Dropzone.Idle>Upload multiple</Dropzone.Idle>\n </Text>\n <Text align=\"center\" size=\"sm\" mt=\"xs\" color=\"dimmed\">\n Drag&apos;n&apos;drop files here to upload. We can accept only <i>.csv</i> files that\n are less than 5mb in size.\n </Text>\n </div>\n </Dropzone>\n\n <Button className={classes.control} size=\"md\" radius=\"xl\" onClick={() => openRef.current?.()}>\n Select file\n </Button>\n </div>\n );\n}","import {openConfirmModal} from \"@mantine/modals\";\nimport * as React from 'react';\nimport {Table as MantineTable, Group, Text, ActionIcon, ScrollArea, UnstyledButton} from '@mantine/core';\nimport {\n IconTrash\n} from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\nimport {PlaceholderBanner} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport type Item = { href: string, classId: string, name: string; description: string, numberOfStudents: number }\n\n/**\n * TableProps\n */\nexport interface TableProps {\n loading: boolean\n items: Item[];\n\n onDeleteClass: (item: Item) => void\n}\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No classes to display\"\n description=\"You don't have any classes yet. Try creating one first...\"\n loading={props.loading}\n icon=\"groups\"\n />\n }\n\n const openDeleteModal = (group: Item) => openConfirmModal({\n title: `Delete \"${group.name}\"?`,\n centered: true,\n children: (\n <Text size=\"sm\">\n Are you sure you want to delete this class? This action is destructive and you will have\n to contact support to restore your data.\n </Text>\n ),\n labels: { confirm: 'Delete class', cancel: \"No don't delete it\" },\n confirmProps: { color: 'red' },\n onConfirm: () => props.onDeleteClass(group),\n });\n\n const rows = props.items.map((row) => (\n <tr key={row.classId}>\n <td>\n <UnstyledButton<typeof Link> component={Link} to={row.href}>\n <Text size={14}>{row.name}</Text>\n </UnstyledButton>\n </td>\n <td><Text size={14}>{row.description}</Text></td>\n <td><Text size={14}>{row.numberOfStudents||0}</Text></td>\n <td>\n <Group noWrap spacing={0} position=\"right\">\n <ActionIcon color=\"red\">\n <IconTrash onClick={() => openDeleteModal(row)} size={16} stroke={1.5} />\n </ActionIcon>\n </Group>\n </td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing={20} sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Class Name</th>\n <th>Description</th>\n <th># of Students</th>\n <th></th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import {IconInfoCircle, IconPlaylistAdd} from \"@tabler/icons\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport {\n createStyles,\n Badge,\n Title,\n Text,\n Container, Stack, Grid,\n Drawer,\n Button, TextInput, ActionIcon,\n Tooltip, Group, LoadingOverlay, Autocomplete,\n} from '@mantine/core';\nimport { useForm } from '@mantine/form';\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {Table, Item} from \"./Table\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n\n description: {\n maxWidth: 600,\n },\n}));\n\n/**\n * ClassItem\n */\nexport type ClassItem = Item\n\n/**\n * ClassesProps\n */\nexport type ClassesProps = {\n loading: boolean\n classes: ClassItem[]\n\n onCreateClass: (group: ClassItem) => void\n onDeleteClass: (group: ClassItem) => void\n onAutocompleteChange: (next: string) => void\n}\n\n/**\n * Classes\n * @param props\n * @constructor\n */\nexport const Classes = (props: ClassesProps) => {\n const { classes } = useStyles();\n const form = useForm({\n initialValues: {\n classId: '',\n name: '',\n description: '',\n href: '',\n numberOfStudents: 0,\n },\n\n validate: {\n name: (val) => (val.length <= 6 ? 'Name should include at least 6 characters' : null),\n },\n });\n const [opened, setOpened] = useState(false);\n return (\n <>\n <Drawer\n opened={opened}\n onClose={() => setOpened(false)}\n title={<Group spacing={0}>\n <Title size=\"h5\">Create a class</Title>\n <Tooltip label=\"Classes settings cannot be modified once created\">\n <ActionIcon>\n <IconInfoCircle color=\"#3b82f6\" size={14} />\n </ActionIcon>\n </Tooltip>\n </Group>}\n padding=\"xl\"\n size=\"xl\"\n >\n <form onSubmit={form.onSubmit(() => {\n const values = form.values\n form.reset()\n setOpened(false)\n props.onCreateClass && props.onCreateClass(values)\n })}>\n <Stack>\n <TextInput\n withAsterisk\n label=\"Name\"\n placeholder=\"Class name\"\n {...form.getInputProps('name')}\n />\n <TextInput\n label=\"Description\"\n placeholder=\"A class for my first period English students\"\n {...form.getInputProps('description')}\n />\n </Stack>\n <Button type=\"submit\" fullWidth mt=\"md\">\n Submit\n </Button>\n </form>\n </Drawer>\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <Badge variant=\"filled\" size=\"lg\">\n Classes\n </Badge>\n <Title order={2} className={classes.title} mt=\"md\">\n Organize people into classes\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n A class can be for a specific period of time, grade, team, or other cohorts.\n </Text>\n </Grid.Col>\n <Grid.Col sm=\"content\">\n { !props.loading && <Button\n onClick={() => setOpened(true)}\n leftIcon={<IconPlaylistAdd size={14} />}>\n Create class\n </Button> }\n </Grid.Col>\n </Grid>\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Stack spacing=\"sm\">\n <StatsGroup data={[\n {\n title: \"# OF CLASSES\",\n value: props.classes.length,\n },\n ]}/>\n\n <Autocomplete\n placeholder=\"Search for classes\"\n data={props.classes.map(item => item.name)}\n onChange={props.onAutocompleteChange}\n />\n\n <Table\n loading={props.loading}\n items={props.classes}\n onDeleteClass={props.onDeleteClass}\n />\n </Stack>\n </div>\n </Stack>\n </Container>\n </>\n )\n}","import * as React from 'react';\nimport {Avatar, Text, Paper, Blockquote, Title, createStyles, Stack} from '@mantine/core';\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n marginTop: 16,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n description: {\n maxWidth: 600,\n },\n}));\n\nexport type UserInfoProps = {\n variant?: \"compact\"\n name: string\n impactStatement: string\n}\n\n/**\n * UserInfo\n * @constructor\n * @param props\n */\nexport const UserInfo = (props: UserInfoProps) => {\n const { classes } = useStyles();\n return <>\n <Title className={classes.title}>\n {props.name}\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"xs\">\n {props.impactStatement}\n </Text>\n </>\n}","import {DataTable} from \"mantine-datatable\";\nimport * as React from 'react';\nimport {ScrollArea, Badge, Text} from '@mantine/core';\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n badgeId: string\n badgeName: string\n isComplete?: boolean\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No badges to display\"\n description=\"There has not been any badge progress just yet.\"\n loading={props.loading}\n icon=\"badges\"\n />\n }\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <DataTable\n verticalSpacing=\"sm\"\n sx={{ minWidth: 700 }}\n withBorder={false}\n borderRadius=\"sm\"\n withColumnBorders\n striped\n highlightOnHover\n records={props.items}\n idAccessor=\"badgeId\"\n columns={[{\n accessor: 'name',\n title: 'Badge Name',\n render: (row: Item) => (\n <>\n <Text>{row.badgeName}</Text>\n </>\n ),\n },{\n accessor: 'status',\n render: (row: Item) => (\n <>\n {!!row.isComplete && <Badge variant=\"filled\">Complete</Badge>}\n {!row.isComplete && <Badge color=\"red\" variant=\"filled\">Incomplete</Badge>}\n </>\n )\n }]}\n />\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea, Text} from '@mantine/core';\nimport {Link} from \"react-router-dom\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonId: string\n lessonName: string\n questionName: string\n answer: string[]\n href: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No answers to display\"\n description=\"There has not been any lesson progress just yet.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.questionName}>\n <td><Text<typeof Link> component={Link} to={row.href}>{row.lessonName}</Text></td>\n <td>{row.questionName}</td>\n <td>{row.answer.join(\",\")}</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Lesson Name</th>\n <th>Question</th>\n <th>Answer</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea, Text} from '@mantine/core';\nimport {Link} from \"react-router-dom\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonId: string\n lessonName: string\n reflection: string\n rating: number\n href: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No reflections to display\"\n description=\"There has not been any lesson progress just yet.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.lessonName}>\n <td><Text<typeof Link> component={Link} to={row.href}>{row.lessonName}</Text></td>\n <td>{row.reflection}</td>\n <td>{row.rating.toLocaleString()}</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Lesson Name</th>\n <th>Reflection</th>\n <th>Rating</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import {ActionIcon, Badge, Container, Grid, LoadingOverlay, Stack, UnstyledButton} from \"@mantine/core\";\nimport {IconArrowLeft} from \"@tabler/icons\";\nimport {useState} from \"react\";\nimport * as React from \"react\";\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {Tabs} from \"../../components/navigation/Tabs/Tabs\";\nimport {UserInfo} from \"../../components/users/UserInfo/UserInfo\";\nimport {Table as BadgeTable, Item as BadgeItem} from \"./BadgeTable\"\nimport {Table as AnswerTable, Item as AnswerItem} from \"./AnswerTable\"\nimport {Table as ReflectionTable, Item as ReflectionItem} from \"./ReflectionTable\"\n\n/**\n * StudentProps\n */\nexport type StudentProps = {\n loading: boolean\n name: string\n impactStatement: string\n numberOfProblemsSolved: number\n percentageOfLessonsCompleted: number\n badges: BadgeItem[],\n answers: AnswerItem[],\n reflections: ReflectionItem[],\n\n onBackClick: () => void\n}\n\nexport const Student = (props: StudentProps) => {\n const [tab, setTab] = useState(\"badges\")\n const numberOfBadges = props.badges.length\n const percentageOfBadgesEarned = numberOfBadges > 0 ? props.badges.filter(b => b.isComplete).length / numberOfBadges : 0\n\n return <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid gutter=\"md\">\n <Grid.Col sm=\"auto\">\n <UnstyledButton onClick={props.onBackClick}>\n <Badge\n variant=\"filled\"\n leftSection={<ActionIcon color=\"blue\" size=\"xs\" radius=\"xl\" variant=\"filled\">\n <IconArrowLeft size={14} />\n </ActionIcon>}\n size=\"lg\">\n Go Back\n </Badge>\n </UnstyledButton>\n\n <UserInfo\n variant=\"compact\"\n name={props.name}\n impactStatement={props.impactStatement}\n />\n </Grid.Col>\n </Grid>\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Stack spacing=\"lg\">\n <StatsGroup data={[\n {\n title: \"PROBLEMS SOLVED\",\n value: props.numberOfProblemsSolved,\n },\n {\n title: \"LESSON COMPLETION\",\n value: props.percentageOfLessonsCompleted,\n unit: \"%\"\n },\n {\n title: \"BADGE COMPLETION\",\n value: percentageOfBadgesEarned,\n unit: \"%\"\n },\n ]}/>\n\n <Stack spacing={0}>\n <Tabs\n value={tab}\n data={[\n {label: \"My badges\", value: \"badges\"},\n {label: \"My answers\", value: \"answers\"},\n {label: \"My reflections\", value: \"reflections\"},\n ]}\n onChange={setTab}\n />\n\n { tab === \"badges\" && <BadgeTable\n loading={props.loading}\n items={props.badges}\n /> }\n\n { tab === \"answers\" && <AnswerTable\n loading={props.loading}\n items={props.answers}\n /> }\n\n { tab === \"reflections\" && <ReflectionTable\n loading={props.loading}\n items={props.reflections}\n /> }\n </Stack>\n </Stack>\n </div>\n </Stack>\n </Container>\n}","import * as React from 'react';\nimport { createStyles, Paper, Text, ThemeIcon } from '@mantine/core';\nimport { IconColorSwatch } from '@tabler/icons';\n\nconst useStyles = createStyles((theme, props: CardGradientProps) => {\n const from = props.from || 'blue'\n const to = props.to || 'green'\n return {\n card: {\n position: 'relative',\n cursor: 'pointer',\n overflow: 'hidden',\n transition: 'transform 150ms ease, box-shadow 100ms ease',\n padding: theme.spacing.xl,\n paddingLeft: theme.spacing.xl * 2,\n\n '&:hover': {\n boxShadow: theme.shadows.md,\n transform: 'scale(1.02)',\n },\n\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n width: 6,\n backgroundImage: theme.fn.linearGradient(0, theme.colors[from][6], theme.colors[to][6]),\n },\n },\n }\n});\n\nexport type CardGradientProps = {\n title: string;\n description: string;\n onClick: () => void;\n icon?: React.ReactNode\n from?: string\n to?: string\n}\n\nexport function CardGradient(props: CardGradientProps) {\n const { classes } = useStyles(props);\n const from = props.from || 'blue'\n const to = props.to || 'green'\n const icon = props.icon || <IconColorSwatch size={28} stroke={1.5} />\n return (\n <Paper withBorder radius=\"md\" className={classes.card} onClick={props.onClick}>\n <ThemeIcon\n size=\"xl\"\n radius=\"md\"\n variant=\"gradient\"\n gradient={{ deg: 0, from, to }}\n >\n {icon}\n </ThemeIcon>\n <Text size=\"xl\" weight={500} mt=\"md\">\n {props.title}\n </Text>\n <Text size=\"sm\" mt=\"sm\" color=\"dimmed\">\n {props.description}\n </Text>\n </Paper>\n );\n}","import {Button, Card, CardProps, createStyles, Overlay, Text} from \"@mantine/core\";\nimport * as React from \"react\";\n\nconst useStyles = createStyles((theme) => ({\n card: {\n height: 240,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n whiteSpace: 'pre-line'\n },\n\n content: {\n position: 'absolute',\n padding: theme.spacing.xl,\n zIndex: 1,\n top: 0,\n bottom: 0,\n right: 0,\n left: 0,\n },\n\n action: {\n position: 'absolute',\n bottom: theme.spacing.xl,\n right: theme.spacing.xl,\n },\n\n title: {\n color: theme.white,\n marginBottom: theme.spacing.xs / 2,\n },\n\n description: {\n color: theme.white,\n maxWidth: 220,\n },\n}));\n\ninterface TenantBannerProps {\n title: string;\n description: string;\n image: string;\n action: {\n label: string;\n link: string;\n };\n}\n\n/**\n * TenantBanner\n * @param title\n * @param description\n * @param image\n * @param action\n * @param style\n * @param className\n * @param others\n * @constructor\n */\nexport const TenantBanner = ({\n title,\n description,\n image,\n action,\n style,\n className,\n ...others\n }: TenantBannerProps & Omit<CardProps, keyof TenantBannerProps | 'children'>) => {\n const { classes, cx, theme } = useStyles();\n\n return (\n <Card\n radius=\"md\"\n style={{ backgroundImage: `url(${image})`, ...style }}\n className={cx(classes.card, className)}\n {...others}\n >\n <Overlay\n gradient={`linear-gradient(105deg, ${theme.black} 20%, #312f2f 50%, ${theme.colors.gray[4]} 100%)`}\n opacity={0.55}\n zIndex={0}\n />\n\n <div className={classes.content}>\n <Text size=\"lg\" weight={700} className={classes.title}>\n {title}\n </Text>\n\n <Text size=\"sm\" className={classes.description}>\n {description}\n </Text>\n\n <Button\n className={classes.action}\n variant=\"white\"\n color=\"dark\"\n component=\"a\"\n size=\"xs\"\n href={action.link}\n target=\"_blank\"\n >\n {action.label}\n </Button>\n </div>\n </Card>\n );\n}","import * as React from 'react';\nimport {Container, Grid, Stack} from '@mantine/core';\nimport {CardGradient} from \"../../components/cards/CardGradient\";\nimport {UserInfo} from \"../../components/users/UserInfo/UserInfo\";\nimport {TenantBanner} from \"../../components/banners/TenantBanner/TenantBanner\";\n\n/**\n * HomeProps\n */\nexport type HomeProps = {\n loading: boolean\n avatarURL: string\n name: string\n impactStatement: string\n organization: {name: string, description: string, image: string, website: string}\n\n onDashboardClick: () => void;\n onClassesClick: () => void;\n onLessonsClick: () => void;\n onBadgesClick: () => void;\n}\n\n/**\n * Home\n * @param props\n * @constructor\n */\nexport const Home = (props: HomeProps) => {\n return <Container size=\"lg\">\n <Stack spacing=\"lg\">\n <Grid gutter=\"md\">\n <Grid.Col md={6}>\n <UserInfo\n variant=\"compact\"\n name={props.name}\n impactStatement={props.impactStatement}\n />\n </Grid.Col>\n <Grid.Col md={6}>\n <TenantBanner\n title={props.organization.name}\n description={props.organization.description}\n image={props.organization.image}\n action={\n {\n label: \"Visit website\",\n link: props.organization.website,\n }\n }\n />\n </Grid.Col>\n </Grid>\n\n <Grid gutter=\"md\">\n <Grid.Col>\n <CardGradient\n title=\"Dashboard\"\n description=\"Track class performance across core areas of focus.\"\n onClick={props.onDashboardClick}\n />\n </Grid.Col>\n <Grid.Col>\n <CardGradient\n title=\"Classes\"\n description=\"Organize people into classes.\"\n onClick={props.onClassesClick}\n />\n </Grid.Col>\n <Grid.Col>\n <CardGradient\n title=\"Lessons\"\n description=\"Explore units of instruction and/or see corresponding class progress.\"\n onClick={props.onLessonsClick}\n />\n </Grid.Col>\n <Grid.Col>\n <CardGradient\n title=\"Badges\"\n description=\"Project-sized skills acquisition and standards alignment.\"\n onClick={props.onBadgesClick}\n />\n </Grid.Col>\n </Grid>\n </Stack>\n </Container>\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea} from '@mantine/core';\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n studentName: string\n reflection: string\n rating: number\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n/**\n * TableMethods\n */\nexport type TableMethods = {}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData & TableMethods\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No reflections to display\"\n description=\"There has not been any lesson progress just yet.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.studentName}>\n <td>{row.studentName}</td>\n <td>{row.reflection}</td>\n <td>{row.rating.toLocaleString()}</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Student Name</th>\n <th>Reflection</th>\n <th>Rating</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react'\nimport { createStyles, Button, Menu, Group, ActionIcon } from '@mantine/core';\nimport {\n IconChevronDown,\n IconPlaylistAdd,\n IconClipboardCopy, IconTableExport\n} from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\n\nconst useStyles = createStyles((theme) => ({\n button: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n marginLeft: 0,\n marginRight: 0,\n },\n\n menuControl: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: 0,\n borderLeft: `1px solid ${theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white}`,\n },\n}));\n\nexport type SplitButtonProps = {\n href: string\n onCopyLinkClick: () => void;\n onExportDataClick: () => void;\n}\n\nexport const SplitButton = (props: SplitButtonProps) => {\n const { classes, theme } = useStyles();\n const menuIconColor = theme.colors[theme.primaryColor][theme.colorScheme === 'dark' ? 5 : 6];\n\n return (\n <Group noWrap spacing={0}>\n <Button<typeof Link> component={Link} to={props.href}\n className={classes.button}\n variant=\"gradient\"\n >\n Preview\n </Button>\n <Menu transition=\"pop\" position=\"bottom-end\">\n <Menu.Target>\n <ActionIcon\n variant=\"gradient\"\n color={theme.primaryColor}\n size={36}\n className={classes.menuControl}\n >\n <IconChevronDown size={16} stroke={1.5} />\n </ActionIcon>\n </Menu.Target>\n <Menu.Dropdown>\n <Menu.Item\n icon={<IconClipboardCopy size={16} stroke={1.5} color={menuIconColor} />}\n onClick={props.onCopyLinkClick}\n >\n Copy link\n </Menu.Item>\n <Menu.Item\n icon={<IconTableExport size={16} stroke={1.5} color={menuIconColor} />}\n onClick={props.onExportDataClick}\n >\n Export data (.csv)\n </Menu.Item>\n </Menu.Dropdown>\n </Menu>\n </Group>\n );\n}","import * as React from 'react';\nimport {Stack as MantineStack, UnstyledButton, ScrollArea, Title, Text} from '@mantine/core';\nimport { Link } from 'react-router-dom';\n\n/**\n * Item\n */\nexport interface Item {\n questionName: string\n answer: string[]\n}\n\n/**\n * StackData\n */\nexport type StackData = {\n href: string\n items: Item[]\n}\n\n/**\n * StackMethods\n */\nexport type StackMethods = {}\n\n/**\n * StackProps\n */\nexport type StackProps = StackData & StackMethods\n\n/**\n * Stack\n * @constructor\n * @param props\n */\nexport function Stack(props: StackProps) {\n if(props.items.length === 0){\n return null\n }\n\n const rows = props.items.map((row) => (\n <MantineStack spacing={0} key={row.questionName}>\n <Title color=\"dark.4\" size=\"lg\">{row.questionName}</Title>\n <Text>{row.answer.join(\",\") || \"No answer.\"}</Text>\n </MantineStack>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <UnstyledButton<typeof Link> component={Link} to={props.href}>\n <MantineStack spacing={24} sx={{ padding: 20, minWidth: 700 }}>\n {rows}\n </MantineStack>\n </UnstyledButton>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {\n Avatar,\n Badge,\n Group,\n Text,\n ScrollArea,\n UnstyledButton,\n} from '@mantine/core';\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\nimport {Stack as AnswerStack, Item as AnswerItem} from \"./AnswerStack\"\nimport {DataTable} from \"mantine-datatable\"\n\n/**\n * Item\n */\nexport interface Item {\n userId: string\n avatar: string\n name: string\n email: string\n answers: AnswerItem[]\n isStarted?: boolean\n isComplete?: boolean\n href: string\n}\n\n/**\n * TableProps\n */\nexport interface TableProps {\n loading: boolean\n items: Item[];\n}\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No students to display\"\n description=\"You don't have any student data yet for this lesson\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <DataTable\n verticalSpacing=\"sm\"\n sx={{ minWidth: 700 }}\n withBorder={false}\n borderRadius=\"sm\"\n withColumnBorders\n striped\n highlightOnHover\n idAccessor=\"userId\"\n records={props.items}\n columns={[{\n accessor: 'name',\n title: 'Student Name',\n render: (row: Item) => (\n <UnstyledButton>\n <Group spacing=\"sm\">\n <Avatar size={40} src={row.avatar} radius={40}/>\n <div>\n <Text size=\"sm\" weight={500}>\n {row.name}\n </Text>\n <Text size=\"xs\" color=\"dimmed\">\n {row.email}\n </Text>\n </div>\n </Group>\n </UnstyledButton>\n ),\n },{\n accessor: 'status',\n render: (row: Item) => (\n <>\n {!!row.isComplete && <Badge variant=\"filled\">Complete</Badge>}\n {!row.isComplete && !row.isStarted && <Badge color=\"red\" variant=\"filled\">Not started</Badge>}\n {!row.isComplete && !!row.isStarted && <Badge color=\"violet\" variant=\"filled\">In progress</Badge>}\n </>\n )\n }]}\n rowExpansion={{\n content: ({ record }: {record: Item}) => (\n <AnswerStack href={record.href} items={record.answers}/>\n ),\n }}\n />\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {Stack as MantineStack, ScrollArea, Title, Text, Card} from '@mantine/core';\nimport {Chart, AxisOptions} from \"react-charts\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n question: string\n answers: string[][]\n choices?: string[]\n chart?: boolean\n}\n\n/**\n * StackData\n */\nexport type StackData = {\n loading: boolean\n items: Item[]\n}\n\n\n/**\n * StackProps\n */\nexport type StackProps = StackData\n\n/**\n * Stack\n * @constructor\n * @param props\n */\nexport function Stack(props: StackProps) {\n const primaryAxis = React.useMemo<\n AxisOptions<{primary: string, secondary: string}>\n >(\n () => ({\n position: \"left\",\n getValue: (datum) => datum.primary,\n }),\n []\n );\n\n const secondaryAxes = React.useMemo<\n AxisOptions<{primary: string, secondary: string}>[]\n >(\n () => [\n {\n position: \"bottom\",\n getValue: (datum) => datum.secondary,\n },\n ],\n []\n );\n\n\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No questions to display\"\n description=\"There are no questions in this lesson.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => {\n if(row.chart){\n const labelMap: any = {}\n const choices = row.choices || []\n choices.forEach(c => {\n labelMap[c] = 0\n })\n\n row.answers.forEach(a => a.forEach(r => {\n if(r in labelMap){\n labelMap[r] = labelMap[r] ? labelMap[r] + 1 : 1\n }\n }))\n\n return <Card key={row.question} withBorder p=\"xl\" radius=\"md\">\n <MantineStack spacing={4}>\n <Title size=\"lg\">{row.question}</Title>\n <Text size=\"sm\">{row.answers.length} answers</Text>\n\n <div style={{ background: \"white\", height: \"300px\", width: \"100%\", position: 'relative' }}>\n <Chart\n options={{\n data: [{\n label: '',\n data: choices.map(k => {\n return {\n primary: truncateWithEllipses(k, 50),\n secondary: labelMap[k]\n }\n }),\n }],\n primaryAxis,\n secondaryAxes,\n }}\n />\n </div>\n </MantineStack>\n </Card>\n }\n\n return <Card key={row.question} withBorder p=\"xl\" radius=\"md\">\n <MantineStack spacing={4}>\n <Title size=\"lg\">{row.question}</Title>\n <Text size=\"sm\">{row.answers.length} answers</Text>\n\n <ScrollArea.Autosize maxHeight={600}>\n <MantineStack spacing={4}>\n {\n row.answers.map(a => {\n const answerText = a.join(\"\\n\")\n return <Card key={answerText} p={5} radius={0} bg=\"gray.0\">\n <Text>{answerText}</Text>\n </Card>\n })\n }\n </MantineStack>\n </ScrollArea.Autosize>\n </MantineStack>\n </Card>\n });\n\n\n return <MantineStack py={4} spacing={10} sx={{ minWidth: 700 }}>\n {rows}\n </MantineStack>\n}\n\nconst truncateWithEllipses = (text: string, max: number) => text.substr(0,max-1)+(text.length>max?'&hellip;':'')","import {IconArrowLeft, IconCategory2} from \"@tabler/icons\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport {\n createStyles,\n Badge,\n Title,\n Text,\n Container, Stack, Grid,\n Select, ActionIcon, Group,\n LoadingOverlay,\n UnstyledButton,\n} from '@mantine/core';\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {Tabs} from \"../../components/navigation/Tabs/Tabs\";\nimport {Item as ReflectionItem, Table as ReflectionTable} from \"./ReflectionTable\";\nimport {SplitButton} from \"./SplitButton\";\nimport {Table, Item} from \"./Table\";\nimport {Stack as QuestionStack, Item as QuestionItem} from \"./QuestionStack\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n\n description: {\n maxWidth: 600,\n },\n}));\n\n/**\n * LessonUserItem\n */\nexport type LessonUserItem = Item\n\n/**\n * LessonClass\n */\nexport type LessonClass = {\n classId: string\n name: string\n active: boolean\n}\n\n/**\n * LessonProps\n */\nexport type LessonProps = {\n loading: boolean\n displayName: string\n description: string\n href: string\n classId: string\n classes: LessonClass[]\n students: LessonUserItem[]\n reflections: ReflectionItem[],\n questions: QuestionItem[],\n trial?: boolean\n\n onBackClick: () => void;\n onClassChange: (classId: string) => void;\n onCopyLinkClick: () => void;\n onExportDataClick: () => void;\n}\n\n/**\n * Lesson\n * @param props\n * @constructor\n */\nexport const Lesson = (props: LessonProps) => {\n const { classes } = useStyles();\n const [tab, setTab] = useState(\"question\")\n\n const numberOfStudents = props.students.length\n const percentageOfLessonsCompleted = numberOfStudents > 0 ? props.students.filter(u => u.isComplete).length / numberOfStudents : 0\n\n return (\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <UnstyledButton onClick={props.onBackClick}>\n <Badge\n variant=\"filled\"\n leftSection={<ActionIcon color=\"blue\" size=\"xs\" radius=\"xl\" variant=\"filled\">\n <IconArrowLeft size={14} />\n </ActionIcon>}\n size=\"lg\">\n Go Back\n </Badge>\n </UnstyledButton>\n <Group>\n <Stack spacing={0}>\n <Title order={2} className={classes.title} mt=\"md\">\n {props.displayName || \"Lesson\"}\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n {props.description || \"No description\"}\n </Text>\n </Stack>\n\n <Stack ml=\"auto\">\n <SplitButton\n href={props.href}\n onCopyLinkClick={props.onCopyLinkClick}\n onExportDataClick={props.onExportDataClick}\n />\n </Stack>\n </Group>\n </Grid.Col>\n </Grid>\n <div>\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Stack>\n <StatsGroup data={[\n {\n title: \"LESSON COMPLETION\",\n value: percentageOfLessonsCompleted,\n unit: '%',\n },\n ]}/>\n\n {!props.trial && <Select\n clearable\n clearButtonLabel=\"Clear class selection\"\n size=\"sm\"\n placeholder=\"Select a class\"\n nothingFound=\"No options\"\n value={props.classId}\n onChange={props.onClassChange}\n icon={<IconCategory2/>}\n data={props.classes.map(g => {return {value: g.classId, label: g.name}})}\n />}\n\n <Stack spacing={0}>\n {!props.trial && <Tabs\n value={tab}\n data={[\n {label: \"By question\", value: \"question\"},\n {label: \"By student\", value: \"students\"},\n {label: \"By reflection\", value: \"reflections\"},\n ]}\n onChange={setTab}\n />}\n\n { (!!props.trial || tab === \"question\") && <QuestionStack\n loading={props.loading}\n items={props.questions}\n />}\n\n { (!props.trial && tab === \"reflections\") && <ReflectionTable\n loading={props.loading}\n items={props.reflections}\n /> }\n\n { (!props.trial && tab === \"students\") && <Table\n loading={props.loading}\n items={props.students}\n />}\n </Stack>\n </Stack>\n </div>\n </div>\n </Stack>\n </Container>\n )\n}","import * as React from 'react';\nimport { Table as MantineTable, Group, Text, ScrollArea, UnstyledButton } from '@mantine/core';\nimport {Link} from \"react-router-dom\";\nimport {PlaceholderBanner} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonId: string,\n name: string;\n description: string\n href: string\n}\n\n/**\n * TableProps\n */\nexport interface TableProps {\n loading: boolean\n items: Item[];\n}\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No lessons to display\"\n description=\"We don't have any lessons to show you just yet.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.lessonId}>\n <td>\n <UnstyledButton<typeof Link> component={Link} to={row.href}\n sx={(theme) => ({\n display: 'block',\n width: '100%',\n padding: theme.spacing.md,\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.black,\n\n '&:hover': {\n backgroundColor:\n theme.colorScheme === 'dark' ? theme.colors.dark[8] : theme.colors.gray[1],\n },\n })}>\n <Group>\n <div>\n <Text size=\"sm\" weight={500}>\n {row.name}\n </Text>\n <Text size=\"xs\" color=\"dimmed\">\n {row.description}\n </Text>\n </div>\n </Group>\n </UnstyledButton>\n </td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable horizontalSpacing={0} verticalSpacing={0} sx={{ minWidth: 700 }}>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {\n createStyles,\n Badge,\n Title,\n Text,\n Container, Stack, Grid, Autocomplete, LoadingOverlay,\n} from '@mantine/core';\nimport {Table, Item} from \"./Table\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n\n description: {\n maxWidth: 600,\n },\n}));\n\n/**\n * LessonItem\n */\nexport type LessonItem = Item\n\n/**\n * LessonsProps\n */\nexport type LessonsProps = {\n loading: boolean\n lessons: LessonItem[]\n\n onAutocompleteChange: (next: string) => void\n}\n\n/**\n * Lessons\n * @param props\n * @constructor\n */\nexport const Lessons = (props: LessonsProps) => {\n const { classes } = useStyles();\n return (\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <Badge variant=\"filled\" size=\"lg\">\n Lessons\n </Badge>\n <Title order={2} className={classes.title} mt=\"md\">\n Lessons\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n Explore units of instruction and/or see corresponding class progress.\n </Text>\n </Grid.Col>\n </Grid>\n\n <Autocomplete\n placeholder=\"Search for a lesson that fits your needs\"\n data={props.lessons.map(item => item.name)}\n onChange={props.onAutocompleteChange}\n />\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Table\n loading={props.loading}\n items={props.lessons}\n />\n </div>\n </Stack>\n </Container>\n )\n}","import * as React from 'react';\nimport {\n createStyles,\n Paper,\n Title,\n Text,\n TextInput,\n Button,\n Container,\n Group,\n Anchor,\n Center,\n Box,\n} from '@mantine/core';\nimport {IconPointer} from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 22,\n fontWeight: 900,\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\n },\n\n controls: {\n [theme.fn.smallerThan('xs')]: {\n flexDirection: 'column-reverse',\n },\n },\n\n control: {\n [theme.fn.smallerThan('xs')]: {\n width: '100%',\n textAlign: 'center',\n },\n },\n}));\n\nexport type AccessCodeProps = {\n value: string\n peopleLink: string\n onCopyCode: () => void;\n}\n\nexport function AccessCode(props: AccessCodeProps) {\n const { classes } = useStyles();\n\n return (\n <Container mx=\"0\" px=\"0\" size={460} my={30}>\n <Title className={classes.title}>\n Access code\n </Title>\n <Text color=\"dimmed\" size=\"sm\">\n Grant access to join your organization\n </Text>\n\n <Paper withBorder shadow=\"md\" p={30} radius=\"md\" mt=\"xl\">\n <TextInput value={props.value} readOnly/>\n <Group position=\"apart\" mt=\"lg\" className={classes.controls}>\n <Anchor<typeof Link> component={Link} to={props.peopleLink}\n color=\"dimmed\" size=\"sm\" className={classes.control}>\n <Center inline>\n <IconPointer size={12} stroke={1.5} />\n <Box ml={5}>See people in my organization</Box>\n </Center>\n </Anchor>\n <Button onClick={props.onCopyCode} className={classes.control}>Copy code</Button>\n </Group>\n </Paper>\n </Container>\n );\n}","import {IconArrowLeft} from \"@tabler/icons\";\nimport * as React from 'react';\nimport {\n createStyles,\n Title,\n Text,\n Container, Stack, Grid,\n Badge,\n ActionIcon,\n LoadingOverlay,\n UnstyledButton,\n} from '@mantine/core';\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {AccessCode} from \"./AccessCode\";\n\nconst monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\n];\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n description: {\n maxWidth: 600,\n },\n wrapper: {\n position: 'relative',\n marginBottom: 30,\n },\n\n dropzone: {\n borderWidth: 1,\n paddingBottom: 50,\n },\n\n icon: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[3] : theme.colors.gray[4],\n },\n\n control: {\n position: 'absolute',\n width: 250,\n left: 'calc(50% - 125px)',\n bottom: -20,\n },\n}));\n\n/**\n * OrganizationProps\n */\nexport type OrganizationProps = {\n loading: boolean\n displayName: string\n description: string\n numberOfStudents: number\n numberOfEducators: number\n percentageOfAccountsActive: number\n accessCode: string\n peopleLink: string\n\n onBackClick: () => void;\n onCopyAccessCode: () => void;\n}\n\n/**\n * Organization\n * @param props\n * @constructor\n */\nexport const Organization = (props: OrganizationProps) => {\n const { classes } = useStyles();\n return (\n <>\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <UnstyledButton onClick={props.onBackClick}>\n <Badge\n variant=\"filled\"\n leftSection={<ActionIcon color=\"blue\" size=\"xs\" radius=\"xl\" variant=\"filled\">\n <IconArrowLeft size={14} />\n </ActionIcon>}\n size=\"lg\">\n Go Back\n </Badge>\n </UnstyledButton>\n <Title order={2} className={classes.title} mt=\"md\">\n {props.displayName || \"Overview\"}\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n {props.description || \"No description\"}\n </Text>\n </Grid.Col>\n </Grid>\n\n <AccessCode value={props.accessCode} onCopyCode={props.onCopyAccessCode} peopleLink={props.peopleLink} />\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n\n <Stack spacing=\"sm\">\n <StatsGroup data={[\n {\n title: \"# OF STUDENTS\",\n value: props.numberOfStudents || 0,\n },\n {\n title: \"# OF EDUCATORS\",\n value: props.numberOfEducators || 0,\n },\n {\n title: `ACTIVE USERS (${monthNames[(new Date()).getMonth()]})`,\n value: props.percentageOfAccountsActive,\n unit: \"%\",\n },\n ]}/>\n </Stack>\n </div>\n </Stack>\n </Container>\n </>\n )\n}","import * as React from 'react'\nimport { createStyles, Button, Menu, Group, ActionIcon } from '@mantine/core';\nimport {\n IconChevronDown,\n IconPlaylistAdd,\n IconClipboardCopy\n} from '@tabler/icons';\n\nconst useStyles = createStyles((theme) => ({\n button: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n marginLeft: 0,\n marginRight: 0,\n },\n\n menuControl: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: 0,\n borderLeft: `1px solid ${theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white}`,\n },\n}));\n\nexport type SplitButtonProps = {\n withOrganizationLink?: boolean\n onAddUsersClick: () => void;\n onCopyOrganizationLinkClick: () => void;\n}\n\nexport const SplitButton = (props: SplitButtonProps) => {\n const { classes, theme } = useStyles();\n const menuIconColor = theme.colors[theme.primaryColor][theme.colorScheme === 'dark' ? 5 : 6];\n\n const hasMenu = !!props.withOrganizationLink\n\n return (\n <Group noWrap spacing={0}>\n <Button\n className={hasMenu ? classes.button: \"\"}\n leftIcon={<IconPlaylistAdd size={14} />}\n onClick={props.onAddUsersClick}\n >\n Add members\n </Button>\n { hasMenu && <Menu transition=\"pop\" position=\"bottom-end\">\n <Menu.Target>\n <ActionIcon\n variant=\"filled\"\n color={theme.primaryColor}\n size={36}\n className={classes.menuControl}\n >\n <IconChevronDown size={16} stroke={1.5} />\n </ActionIcon>\n </Menu.Target>\n <Menu.Dropdown>\n { !!props.withOrganizationLink && <Menu.Item\n icon={<IconClipboardCopy size={16} stroke={1.5} color={menuIconColor} />}\n onClick={props.onCopyOrganizationLinkClick}\n >\n Copy organization link\n </Menu.Item> }\n </Menu.Dropdown>\n </Menu> }\n </Group>\n );\n}","import {openConfirmModal} from \"@mantine/modals\";\nimport * as React from 'react';\nimport {\n Avatar,\n Table as MantineTable,\n Group,\n Text,\n ActionIcon,\n UnstyledButton,\n ScrollArea,\n Select,\n Box\n} from '@mantine/core';\nimport {IconCheck, IconTrash} from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\nimport {relativeTimeFromDates} from \"../../utils/time\";\n\n/**\n * Item\n */\nexport type Item = {\n userId: string,\n avatar: string,\n email: string,\n givenName: string,\n familyName: string,\n lastActivity: Date | null\n readonly: boolean\n hasAccount: boolean\n isAdmin: boolean\n isGroupAdmin: boolean\n numberOfClasses: number\n href: string\n}\n\n/**\n * TableProps\n */\nexport interface TableProps {\n loading: boolean\n items: Item[];\n\n onDelete?: (user: Item) => void\n onRoleChange?: (user: Item, role: string | null) => void;\n}\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No people to display\"\n description=\"You have not rostered any people yet.\"\n loading={props.loading}\n icon=\"groups\"\n />\n }\n\n const openDeleteModal = (student: Item) => openConfirmModal({\n title: `Delete \"${student.givenName && student.familyName ? `${student.givenName} ${student.familyName}` : student.email}\"?`,\n centered: true,\n children: (\n <Text size=\"sm\">\n Are you sure you want to delete this person? This action is destructive and you will have\n to contact support to restore your data.\n </Text>\n ),\n labels: { confirm: 'Delete', cancel: \"No don't delete them\" },\n confirmProps: { color: 'red' },\n onConfirm: () => props.onDelete && props.onDelete(student),\n });\n\n const rows = props.items.map((row) => (\n <tr key={row.email}>\n <td>\n <UnstyledButton<typeof Link> component={Link} to={row.href}>\n <Group spacing=\"sm\">\n <Avatar size={40} src={row.avatar} radius={40} />\n <div>\n <Text size=\"sm\" weight={500}>\n {row.givenName && row.familyName ? `${row.givenName} ${row.familyName}` : row.email}\n </Text>\n <Text size=\"xs\" color=\"dimmed\">\n {row.email}\n </Text>\n </div>\n </Group>\n </UnstyledButton>\n </td>\n <td>\n <Box maw={150}>\n <Select\n size=\"sm\"\n value={row.isAdmin ? \"admin\" : row.isGroupAdmin ? \"educator\" : \"student\"}\n onChange={(value) => props.onRoleChange && props.onRoleChange(row, value)}\n data={[{value: \"student\", label: \"Student\"}, {value: \"educator\", label: \"Educator\"}, {value: \"admin\", label: \"Admin\"}]}\n />\n </Box>\n </td>\n <td>{row.hasAccount && <IconCheck color=\"green\" />}</td>\n <td>{row.numberOfClasses}</td>\n <td>{row.lastActivity ? relativeTimeFromDates(row.lastActivity) : \"\"}</td>\n <td>\n <Group noWrap spacing={0} position=\"right\">\n { !row.readonly && !!props.onDelete && <ActionIcon color=\"red\">\n <IconTrash onClick={() => openDeleteModal(row)} size={16} stroke={1.5} />\n </ActionIcon> }\n </Group>\n </td>\n </tr>\n ));\n\n return (\n <ScrollArea>\n <MantineTable verticalSpacing={20} sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Name</th>\n <th>Role</th>\n <th>Account Created?</th>\n <th># of Classes</th>\n <th>Last Active</th>\n <th></th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea>\n );\n}","import {IconArrowLeft, IconCloudUpload, IconX, IconDownload} from \"@tabler/icons\";\nimport {ParseResult} from \"papaparse\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport {\n createStyles,\n Title,\n Text,\n Container, Stack, Grid,\n Drawer,\n Button, TextInput, Badge,\n ActionIcon,\n Group, Divider, LoadingOverlay, Autocomplete,\n UnstyledButton,\n} from '@mantine/core';\nimport { Dropzone, MIME_TYPES } from '@mantine/dropzone';\nimport { useForm } from '@mantine/form';\nimport * as papa from 'papaparse'\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {SplitButton} from \"./SplitButton\";\nimport {Table, Item} from \"./Table\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n description: {\n maxWidth: 600,\n },\n wrapper: {\n position: 'relative',\n marginBottom: 30,\n },\n\n dropzone: {\n borderWidth: 1,\n paddingBottom: 50,\n },\n\n icon: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[3] : theme.colors.gray[4],\n },\n\n control: {\n position: 'absolute',\n width: 250,\n left: 'calc(50% - 125px)',\n bottom: -20,\n },\n}));\n\n/**\n * UserItem\n */\nexport type UserItem = Item\n\n/**\n * PeopleProps\n */\nexport type PeopleProps = {\n loading: boolean\n users: UserItem[]\n percentageOfAccountsCreated: number\n percentageRostered: number\n withOrganizationLink?: boolean\n\n onBackClick: () => void;\n onCreateUsers: (users: UserItem[]) => void;\n onDeleteUser: (user: UserItem) => void;\n onChangeUserRole: (user: UserItem, role: string | null) => void;\n onCopyLinkClick: () => void;\n onAutocompleteChange: (next: string) => void\n}\n\n/**\n * Class\n * @param props\n * @constructor\n */\nexport const People = (props: PeopleProps) => {\n const { classes } = useStyles();\n const form = useForm({\n initialValues: {\n userId: '',\n email: '',\n givenName: '',\n familyName: '',\n avatar: '',\n role: '',\n readonly: false,\n lastActivity: null,\n hasAccount: false,\n numberOfClasses: 0,\n href: \"\",\n isAdmin: false,\n isGroupAdmin: false,\n },\n\n validate: {\n email: (value) => /^\\S+@\\S+$/.test(value) && props.users.filter(u => u.email === value).length === 0 ? null : 'Invalid email',\n },\n });\n const [opened, setOpened] = useState(false);\n return (\n <>\n <Drawer\n opened={opened}\n onClose={() => setOpened(false)}\n title={<Title size=\"h5\">Add members</Title>}\n padding=\"xl\"\n size=\"xl\"\n >\n <Stack spacing=\"md\">\n <DropzoneButton {...props} close={() => setOpened(false)} />\n\n <Divider label=\"or\" labelPosition=\"center\" my=\"md\" variant=\"dashed\"/>\n\n <form onSubmit={form.onSubmit(() => {\n const values = form.values\n form.reset()\n setOpened(false)\n props.onCreateUsers && props.onCreateUsers([values])\n })}>\n <Stack>\n <TextInput\n withAsterisk\n label=\"Email\"\n placeholder=\"Email\"\n {...form.getInputProps('email')}\n />\n <Group grow>\n <TextInput\n label=\"Given name\"\n placeholder=\"Given name\"\n {...form.getInputProps('givenName')}\n />\n <TextInput\n label=\"Family name\"\n placeholder=\"Family name\"\n {...form.getInputProps('familyName')}\n />\n </Group>\n <Button type=\"submit\" fullWidth mt=\"md\">\n Submit\n </Button>\n </Stack>\n </form>\n </Stack>\n </Drawer>\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <UnstyledButton onClick={props.onBackClick}>\n <Badge\n variant=\"filled\"\n leftSection={<ActionIcon color=\"blue\" size=\"xs\" radius=\"xl\" variant=\"filled\">\n <IconArrowLeft size={14} />\n </ActionIcon>}\n size=\"lg\">\n Go Back\n </Badge>\n </UnstyledButton>\n <Title order={2} className={classes.title} mt=\"md\">People</Title>\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">Manage members of your organization</Text>\n </Grid.Col>\n <Grid.Col sm=\"content\">\n { !props.loading && <SplitButton\n withOrganizationLink={props.withOrganizationLink}\n onAddUsersClick={() => setOpened(true)}\n onCopyOrganizationLinkClick={props.onCopyLinkClick}\n />}\n </Grid.Col>\n </Grid>\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n\n <Stack spacing=\"sm\">\n <StatsGroup data={[\n {\n title: \"# OF PEOPLE\",\n value: props.users.length,\n },\n {\n title: \"ACCOUNT CREATION\",\n value: props.percentageOfAccountsCreated,\n unit: \"%\",\n },\n {\n title: \"PERCENTAGE ROSTERED\",\n unit: \"%\",\n value: props.percentageRostered,\n },\n ]}/>\n\n <Autocomplete\n placeholder=\"Search for a people in your organization\"\n data={props.users.map(item => item.email)}\n onChange={props.onAutocompleteChange}\n />\n\n <Table\n loading={props.loading}\n items={props.users}\n onDelete={props.onDeleteUser}\n onRoleChange={props.onChangeUserRole}\n />\n </Stack>\n </div>\n </Stack>\n </Container>\n </>\n )\n}\n\nconst DropzoneButton = (props: PeopleProps & {close: () => void}) => {\n const { classes, theme } = useStyles();\n const openRef = React.useRef<() => void>(null);\n const [loading, setLoading] = React.useState(false)\n const onDrop = React.useCallback((acceptedFiles: File[]) => {\n setLoading(true)\n acceptedFiles.forEach((file) => {\n papa.parse(file, {\n download: true,\n header: true,\n dynamicTyping: true,\n skipEmptyLines: true,\n worker: true,\n complete: function(results: ParseResult<UserItem>) {\n const data = results.data\n .filter(v => /^\\S+@\\S+$/.test(v.email) && props.users.filter(u => u.email === v.email).length === 0)\n data.length > 0 && props.onCreateUsers && props.onCreateUsers(data)\n setLoading(false)\n props.close()\n }\n })\n })\n\n }, [])\n\n return (\n <div className={classes.wrapper}>\n <Dropzone\n loading={loading}\n openRef={openRef}\n onDrop={onDrop}\n className={classes.dropzone}\n radius=\"md\"\n accept={[MIME_TYPES.csv]}\n maxSize={5 * 1024 ** 2}\n >\n <div style={{ pointerEvents: 'none' }}>\n <Group position=\"center\">\n <Dropzone.Accept>\n <IconDownload size={50} color={theme.colors[theme.primaryColor][6]} stroke={1.5} />\n </Dropzone.Accept>\n <Dropzone.Reject>\n <IconX size={50} color={theme.colors.red[6]} stroke={1.5} />\n </Dropzone.Reject>\n <Dropzone.Idle>\n <IconCloudUpload\n size={50}\n color={theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.black}\n stroke={1.5}\n />\n </Dropzone.Idle>\n </Group>\n\n <Text align=\"center\" weight={700} size=\"lg\" mt=\"xl\">\n <Dropzone.Accept>Drop files here</Dropzone.Accept>\n <Dropzone.Reject>Csv file less than 5mb</Dropzone.Reject>\n <Dropzone.Idle>Upload multiple</Dropzone.Idle>\n </Text>\n <Text align=\"center\" size=\"sm\" mt=\"xs\" color=\"dimmed\">\n Drag&apos;n&apos;drop files here to upload. We can accept only <i>.csv</i> files that\n are less than 5mb in size.\n </Text>\n </div>\n </Dropzone>\n\n <Button className={classes.control} size=\"md\" radius=\"xl\" onClick={() => openRef.current?.()}>\n Select file\n </Button>\n </div>\n );\n}","import * as React from \"react\";\nimport {\n createStyles,\n Text,\n Title,\n SimpleGrid,\n TextInput,\n Button,\n Group,\n} from '@mantine/core';\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n minHeight: 400,\n boxSizing: 'border-box',\n backgroundImage: `linear-gradient(-60deg, ${theme.colors[theme.primaryColor][4]} 0%, ${\n theme.colors[theme.primaryColor][7]\n } 100%)`,\n borderRadius: theme.radius.md,\n padding: theme.spacing.xl * 2.5,\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n padding: theme.spacing.xl * 1.5,\n },\n },\n\n title: {\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\n color: theme.white,\n lineHeight: 1,\n },\n\n description: {\n color: theme.colors[theme.primaryColor][0],\n maxWidth: 300,\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n maxWidth: '100%',\n },\n },\n\n form: {\n backgroundColor: theme.white,\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n boxShadow: theme.shadows.lg,\n },\n\n social: {\n color: theme.white,\n\n '&:hover': {\n color: theme.colors[theme.primaryColor][1],\n },\n },\n\n input: {\n backgroundColor: theme.white,\n borderColor: theme.colors.gray[4],\n color: theme.black,\n\n '&::placeholder': {\n color: theme.colors.gray[5],\n },\n },\n\n inputLabel: {\n color: theme.black,\n },\n\n control: {\n backgroundColor: theme.colors[theme.primaryColor][6],\n },\n}));\n\n/**\n * StartAnonymousLessonProps\n */\nexport type StartAnonymousLessonProps = {\n title: string\n description: string\n educatorName: string\n studentName?: string\n onStart: () => void;\n}\n\n/**\n * StartAnonymousLesson\n * @param props\n * @constructor\n */\nexport const StartAnonymousLesson = (props: StartAnonymousLessonProps) => {\n const { classes } = useStyles();\n\n return (\n <div className={classes.wrapper}>\n <SimpleGrid cols={2} spacing={50} breakpoints={[{ maxWidth: 'sm', cols: 1 }]}>\n <div>\n <Title className={classes.title}>{props.title}</Title>\n <Text weight=\"bold\" className={classes.description} mt=\"sm\" mb={30}>\n Instructor: {props.educatorName}\n </Text>\n <Text className={classes.description} mt=\"sm\" mb={30}>\n {props.description}\n </Text>\n </div>\n <div className={classes.form}>\n <TextInput\n label=\"Name\"\n placeholder=\"John Doe\"\n defaultValue={props.studentName}\n readOnly={!!props.studentName}\n required\n classNames={{ input: classes.input, label: classes.inputLabel }}\n />\n\n <Group position=\"right\" mt=\"md\">\n <Button onClick={props.onStart} className={classes.control}>{!props.studentName ? \"Start lesson\" : \"Continue lesson\"}</Button>\n </Group>\n </div>\n </SimpleGrid>\n </div>\n );\n}","import * as React from \"react\";\nimport {Card, Avatar, Text, Progress, Badge, Group, ActionIcon, SimpleGrid, ThemeIcon, UnstyledButton} from '@mantine/core';\nimport {IconBadge, IconCopy} from '@tabler/icons';\nimport AvatarInit from 'avatar-initials';\nimport {Link} from \"react-router-dom\";\n\n/**\n * BadgeGridProps\n */\nexport type BadgeGridProps = {\n badges: TaskCardProps[]\n}\n\n/**\n * BadgeGrid\n * @param props\n * @constructor\n */\nexport const BadgeGrid = (props: BadgeGridProps) => {\n const badges = props.badges.map(b => <TaskCard key={b.title} {...b}/>)\n return <SimpleGrid cols={3} breakpoints={[{ maxWidth: 'sm', cols: 1 }]}>\n {badges}\n </SimpleGrid>\n}\n\nexport type TaskCardProps = {\n title: string\n description: string\n lessonsCompleted: number\n lessonsTotal: number\n href: string\n users: {name: string}[]\n onCopy: () => void\n}\n\nexport function TaskCard(props: TaskCardProps) {\n const avatars = props.users.slice(0, 3).map((u, i) => {\n const fullName = u.name\n let initials = fullName.split(/[ -]/).map((n) => n.charAt(0)).join('');\n const src = AvatarInit.initialAvatar({\n background: '#f4f6f7',\n color: '#888888',\n fontFamily: \"'Lato', 'Lato-Regular', 'Helvetica Neue'\",\n fontSize: 10,\n fontWeight: 250,\n size: 30,\n initials: initials,\n })\n\n return <Avatar key={i} src={src} radius=\"xl\" />\n })\n\n const remainingUsers = props.users.slice(3).length\n const isComplete = props.lessonsCompleted >= props.lessonsTotal\n\n return (\n <Card withBorder radius=\"md\">\n <Group position=\"apart\">\n <ThemeIcon size=\"lg\" variant=\"gradient\" gradient={{ from: 'indigo', to: 'cyan' }}>\n <IconBadge size={20} />\n </ThemeIcon>\n {isComplete && <Badge variant=\"gradient\" gradient={{ from: 'indigo', to: 'cyan' }}>Complete</Badge>}\n {!isComplete && <Badge variant=\"filled\">Incomplete</Badge>}\n </Group>\n\n <UnstyledButton<typeof Link> to={props.href} mt=\"md\" sx={{\":hover\": {textDecoration: \"underline\"}}}>\n <Text size=\"lg\" weight={500}>\n {props.title}\n </Text>\n </UnstyledButton>\n <Text size=\"sm\" color=\"dimmed\" mt={5}>\n {props.description}\n </Text>\n\n <Text color=\"dimmed\" size=\"sm\" mt=\"md\">\n Lessons completed:{' '}\n <Text\n span\n weight={500}\n sx={(theme) => ({ color: theme.colorScheme === 'dark' ? theme.white : theme.black })}\n >\n {props.lessonsCompleted}/{props.lessonsTotal}\n </Text>\n </Text>\n\n <Progress value={(props.lessonsCompleted / props.lessonsTotal) * 100} mt={5} />\n\n <Group position=\"apart\" mt=\"md\">\n <Avatar.Group spacing=\"sm\">\n {avatars}\n {!!remainingUsers && <Avatar radius=\"xl\">+{remainingUsers}</Avatar> }\n </Avatar.Group>\n <ActionIcon onClick={props.onCopy} variant=\"default\">\n <IconCopy size={18} />\n </ActionIcon>\n </Group>\n </Card>\n );\n}","import * as React from 'react';\nimport {Badge, Container, Stack} from '@mantine/core';\nimport {BadgeGrid, BadgeGridProps} from \"../../components/grid/BadgeGrid/BadgeGrid\";\nimport {UserInfo} from \"../../components/users/UserInfo/UserInfo\";\nimport {TenantBanner} from \"../../components/banners/TenantBanner/TenantBanner\";\n\n/**\n * TrialHomeProps\n */\nexport type TrialHomeProps = BadgeGridProps & {\n loading: boolean\n name: string\n daysRemaining: number\n upgradeHref: string\n}\n\n/**\n * TrialHome\n * @param props\n * @constructor\n */\nexport const TrialHome = (props: TrialHomeProps) => {\n return <Container size=\"lg\">\n <Badge>{props.daysRemaining} day{props.daysRemaining !== 1 ? \"s\" : \"\"} left</Badge>\n <Stack spacing=\"sm\">\n <Stack spacing={0}>\n <UserInfo\n variant=\"compact\"\n name={props.name}\n impactStatement=\"\"\n />\n <TenantBanner\n title=\"Trial Account\"\n description=\"Welcome to Local Civics! You are currently interacting with our trial experience.\"\n image=\"https://cdn.localcivics.io/hub/landing.jpg\"\n action={\n {\n label: \"UPGRADE NOW\",\n link: props.upgradeHref,\n }\n }\n />\n </Stack>\n <BadgeGrid badges={props.badges}/>\n </Stack>\n </Container>\n}","import {TablerIcon} from \"@tabler/icons\";\nimport * as React from \"react\";\nimport {UnstyledButton, Checkbox, Text, SimpleGrid, createStyles, ThemeIcon} from '@mantine/core';\nimport { useUncontrolled } from '@mantine/hooks';\n\nconst useStyles = createStyles((theme, { checked }: { checked: boolean }) => ({\n button: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n transition: 'background-color 150ms ease, border-color 150ms ease',\n border: `1px solid ${\n checked\n ? theme.fn.variant({ variant: 'outline', color: theme.primaryColor }).border\n : theme.colorScheme === 'dark'\n ? theme.colors.dark[8]\n : theme.colors.gray[3]\n }`,\n borderRadius: theme.radius.sm,\n padding: theme.spacing.lg,\n backgroundColor: checked\n ? theme.fn.variant({ variant: 'light', color: theme.primaryColor }).background\n : theme.colorScheme === 'dark'\n ? theme.colors.dark[8]\n : theme.white,\n },\n\n body: {\n flex: 1,\n marginLeft: theme.spacing.md,\n },\n}));\n\ninterface ImageCheckboxProps {\n checked?: boolean;\n defaultChecked?: boolean;\n onChange?(checked: boolean): void;\n title: string;\n description: string;\n icon: TablerIcon;\n}\n\nexport function ImageCheckbox({\n checked,\n defaultChecked,\n onChange,\n title,\n description,\n className,\n icon: Icon,\n ...others\n }: ImageCheckboxProps & Omit<React.ComponentPropsWithoutRef<'button'>, keyof ImageCheckboxProps>) {\n const [value, handleChange] = useUncontrolled({\n value: checked,\n defaultValue: defaultChecked,\n finalValue: false,\n onChange,\n });\n\n const { classes, cx } = useStyles({ checked: value });\n\n return (\n <UnstyledButton\n {...others}\n onClick={() => handleChange(!value)}\n className={cx(classes.button, className)}\n >\n <ThemeIcon variant=\"light\" size=\"lg\" color=\"blue\">\n <Icon size={40}/>\n </ThemeIcon>\n\n <div className={classes.body}>\n <Text color=\"dimmed\" size=\"xs\" sx={{ lineHeight: 1 }} mb={5}>\n {description}\n </Text>\n <Text weight={500} size=\"sm\" sx={{ lineHeight: 1 }}>\n {title}\n </Text>\n </div>\n\n <Checkbox\n checked={value}\n onChange={() => {}}\n tabIndex={-1}\n styles={{ input: { cursor: 'pointer' } }}\n />\n </UnstyledButton>\n );\n}\n\nexport type SelectGridProps = {\n items: {description: string, title: string, icon: TablerIcon}[]\n onChange: (title: string, checked: boolean) => void;\n}\n\nexport function SelectGrid(props: SelectGridProps) {\n const items = props.items.map((item) => <ImageCheckbox\n {...item}\n key={item.title}\n onChange={(checked) => props.onChange(item.title, checked)}\n />);\n return (\n <SimpleGrid\n cols={3}\n breakpoints={[\n { maxWidth: 'md', cols: 2 },\n { maxWidth: 'sm', cols: 1 },\n ]}\n >\n {items}\n </SimpleGrid>\n );\n}","import * as React from \"react\";\nimport {\n createStyles,\n Text,\n Title,\n SimpleGrid,\n TextInput,\n Button,\n Group,\n Image,\n} from '@mantine/core';\nimport {\n IconPodium,\n IconHistory,\n IconLego, IconAffiliate, IconGrowth, IconTools, IconNews\n} from '@tabler/icons';\nimport {SelectGrid} from \"../../components/grid/SelectGrid/SelectGrid\";\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n minHeight: 400,\n boxSizing: 'border-box',\n backgroundImage: `linear-gradient(-60deg, ${theme.colors[theme.primaryColor][4]} 0%, ${\n theme.colors[theme.primaryColor][7]\n } 100%)`,\n borderRadius: theme.radius.md,\n padding: theme.spacing.xl * 2.5,\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n padding: theme.spacing.xl * 1.5,\n },\n },\n\n title: {\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\n color: theme.white,\n lineHeight: 1,\n },\n\n description: {\n color: theme.colors[theme.primaryColor][0],\n maxWidth: 500,\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n maxWidth: '100%',\n },\n },\n\n form: {\n backgroundColor: theme.white,\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n boxShadow: theme.shadows.lg,\n },\n\n social: {\n color: theme.white,\n\n '&:hover': {\n color: theme.colors[theme.primaryColor][1],\n },\n },\n\n input: {\n backgroundColor: theme.white,\n borderColor: theme.colors.gray[4],\n color: theme.black,\n\n '&::placeholder': {\n color: theme.colors.gray[5],\n },\n },\n\n inputLabel: {\n color: theme.black,\n },\n\n control: {\n backgroundColor: theme.colors[theme.primaryColor][6],\n },\n}));\n\nconst OPTIONS = [{ description: 'high school', title: 'High school', icon: IconHistory},\n { description: 'k - 8th', title: 'K - 8th', icon: IconLego },\n { description: 'civics', title: 'Civics', icon: IconNews },\n { description: 'project-based learning', title: 'Project-based learning', icon: IconTools },\n { description: 'college', title: 'College', icon: IconPodium },\n { description: 'career', title: 'Career', icon: IconAffiliate },\n { description: 'student leadership', title: 'Student leadership', icon: IconGrowth },]\n\n/**\n * TrialRegistrationProps\n */\nexport type TrialRegistrationProps = {\n onBegin: (data: {firstName: string, lastName: string, interests: string[]}) => void\n}\n\n/**\n * TrialRegistration\n * @param props\n * @constructor\n */\nexport const TrialRegistration = (props: TrialRegistrationProps) => {\n const { classes } = useStyles();\n const [firstName, setFirstName] = React.useState(\"\")\n const [lastName, setLastName] = React.useState(\"\")\n const [interests, setInterests] = React.useState({})\n\n return (\n <div className={classes.wrapper}>\n <SimpleGrid maw={960} ml=\"auto\" mr=\"auto\" cols={1} spacing={15} breakpoints={[{ maxWidth: 'sm', cols: 1 }]}>\n <Group spacing=\"sm\">\n <Image\n height={100}\n width=\"auto\"\n fit=\"contain\"\n src=\"https://cdn.localcivics.io/brand/l.png\"\n />\n <div>\n <Title className={classes.title}>Trial Educator</Title>\n <Text className={classes.description} mt=\"sm\">\n Try out a few of the features we can bring to your classroom. No commitment required.\n </Text>\n </div>\n </Group>\n <div className={classes.form}>\n <Group mb=\"md\" spacing=\"md\" grow>\n <TextInput\n label=\"First Name\"\n placeholder=\"John\"\n required\n classNames={{ input: classes.input, label: classes.inputLabel }}\n onChange={(e) => setFirstName(e.target.value)}\n />\n <TextInput\n label=\"Last Name\"\n placeholder=\"Doe\"\n required\n classNames={{ input: classes.input, label: classes.inputLabel }}\n onChange={(e) => setLastName(e.target.value)}\n />\n </Group>\n\n <Text size={14} weight={500} mb=\"md\" mt=\"xl\">\n What are you interested in teaching?\n </Text>\n <SelectGrid\n items={OPTIONS}\n onChange={(e, checked) => setInterests({...interests, [e]: checked})}\n />\n\n <Group position=\"right\" mt=\"md\">\n <Button\n onClick={() => props.onBegin({firstName, lastName, interests: Object.keys(interests)})}\n className={classes.control}>Begin trial</Button>\n </Group>\n </div>\n </SimpleGrid>\n </div>\n );\n}","import * as React from 'react';\nimport {createEmotionCache, MantineProvider} from '@mantine/core';\nimport { ModalsProvider } from '@mantine/modals';\nimport {NotificationsProvider} from \"@mantine/notifications\";\n\nconst mycCache = createEmotionCache({\n key: 'mantine',\n prepend: false\n});\n\n/**\n * AdminProviderProps\n */\nexport interface AdminProviderProps {\n notificationLimit?: number\n children: React.ReactNode\n}\n\n/**\n * AdminProvider\n * @constructor\n * @param props\n */\nexport const AdminProvider = (props: AdminProviderProps) => {\n return <MantineProvider\n theme={{\n loader: \"bars\"\n }}\n withNormalizeCSS withGlobalStyles emotionCache={mycCache}>\n <NotificationsProvider limit={props.notificationLimit || 5}>\n <ModalsProvider>\n { props.children }\n </ModalsProvider>\n </NotificationsProvider>\n </MantineProvider>\n}","import {Loader, Center, ActionIcon, AppShell, Container, createStyles, Group, Image, Text, Title} from \"@mantine/core\";\nimport {IconBrandFacebook, IconBrandInstagram, IconBrandLinkedin} from \"@tabler/icons\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport type {AccountItem} from \"../../components/users/SwitchAccount/SwitchAccount\";\nimport {SwitchAccount} from \"../../components/users/SwitchAccount/SwitchAccount\"\nimport {Navbar, NavbarProps} from \"../../components/navigation/Navbar/Navbar\";\n\nconst useStyles = createStyles((theme, props: AppProps) => ({\n footer: {\n paddingTop: theme.spacing.md,\n paddingBottom: theme.spacing.md,\n paddingLeft: props.navbar ? theme.spacing.md : 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[0],\n borderTop: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.colors.gray[2]\n }`,\n\n [theme.fn.largerThan('sm')]: {\n paddingTop: theme.spacing.xl * 2,\n paddingBottom: theme.spacing.xl * 2,\n paddingLeft: props.navbar ? theme.spacing.xl * 13 : 0,\n }\n },\n\n logo: {\n maxWidth: 200,\n\n [theme.fn.smallerThan('sm')]: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n },\n\n description: {\n marginTop: 5,\n\n [theme.fn.smallerThan('sm')]: {\n marginTop: theme.spacing.xs,\n textAlign: 'center',\n },\n },\n\n inner: {\n display: 'flex',\n justifyContent: 'space-between',\n\n [theme.fn.smallerThan('sm')]: {\n flexDirection: 'column',\n alignItems: 'center',\n },\n },\n\n groups: {\n display: 'flex',\n flexWrap: 'wrap',\n\n [theme.fn.smallerThan('sm')]: {\n display: 'none',\n },\n },\n\n wrapper: {\n width: 160,\n },\n\n link: {\n display: 'block',\n color: theme.colorScheme === 'dark' ? theme.colors.dark[1] : theme.colors.gray[6],\n fontSize: theme.fontSizes.sm,\n paddingTop: 3,\n paddingBottom: 3,\n\n '&:hover': {\n textDecoration: 'underline',\n },\n },\n\n title: {\n fontSize: theme.fontSizes.md,\n fontWeight: 700,\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\n marginBottom: theme.spacing.xs / 2,\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n },\n\n afterFooter: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: theme.spacing.xl,\n paddingTop: theme.spacing.xl,\n paddingBottom: theme.spacing.xl,\n borderTop: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[2]\n }`,\n\n [theme.fn.smallerThan('sm')]: {\n flexDirection: 'column',\n },\n },\n\n social: {\n [theme.fn.smallerThan('sm')]: {\n marginTop: theme.spacing.xs,\n },\n },\n}));\n\n/**\n * AppProps\n */\nexport type AppProps = {\n loading?: boolean\n account?: string\n accounts?: AccountItem[]\n\n navbar?: React.ReactElement<NavbarProps>\n page: React.ReactNode\n onAccountChange?: (account: string) => Promise<void>;\n}\n\n/**\n * App\n * @param props\n * @constructor\n */\nexport const App = (props: AppProps) => {\n const { classes } = useStyles(props);\n const account = useAccount(props.account, props.accounts, props.onAccountChange)\n return <AppShell\n padding=\"xs\"\n navbar={props.navbar && <Navbar\n {...props.navbar.props}\n onSwitchAccounts={account.accounts && account.accounts.length > 1 ? () => account.setChangeModalOpen(true) : undefined}\n />}\n footer={<>{!account.opened && <footer className={classes.footer}>\n <Container className={classes.inner}>\n <div className={classes.logo}>\n <Group spacing=\"xs\">\n <div style={{ width: 15 }}>\n <Image fit=\"contain\" src=\"https://cdn.localcivics.io/brand/l.png\"/>\n </div>\n <Title color=\"dimmed\" size=\"h5\">Local Civics</Title>\n </Group>\n <Text size=\"xs\" color=\"dimmed\" className={classes.description}>\n We connect students to powerful civic learning experiences.\n </Text>\n </div>\n <div className={classes.groups}>\n <div className={classes.wrapper}>\n <Text\n className={classes.link}\n component=\"a\"\n href=\"https://www.localcivics.io\"\n target=\"_blank\"\n >\n About\n </Text>\n <Text\n className={classes.link}\n component=\"a\"\n href=\"https://www.localcivics.io/terms-of-service\"\n target=\"_blank\"\n >\n Terms\n </Text>\n <Text\n className={classes.link}\n component=\"a\"\n href=\"https://www.localcivics.io/privacy-policy\"\n target=\"_blank\"\n >\n Privacy\n </Text>\n <Text\n className={classes.link}\n component=\"a\"\n href=\"https://localcivics.notion.site/Help-Center-b52300f587b64fc0a61f512686e7626d\"\n target=\"_blank\"\n >\n Help Center\n </Text>\n </div>\n </div>\n </Container>\n <Container className={classes.afterFooter}>\n <Text color=\"dimmed\" size=\"sm\">\n © {new Date().getFullYear()} Local Civics. All rights reserved.\n </Text>\n\n <Group spacing={0} className={classes.social} position=\"right\" noWrap>\n <ActionIcon component=\"a\" target=\"_blank\" href=\"https://www.instagram.com/localcivics/\" size=\"lg\">\n <IconBrandInstagram size={18} stroke={1.5} />\n </ActionIcon>\n <ActionIcon component=\"a\" target=\"_blank\" href=\"https://www.linkedin.com/company/localcivics\" size=\"lg\">\n <IconBrandLinkedin size={18} stroke={1.5} />\n </ActionIcon>\n <ActionIcon component=\"a\" target=\"_blank\" href=\"https://www.facebook.com/localcivics/\" size=\"lg\">\n <IconBrandFacebook size={18} stroke={1.5} />\n </ActionIcon>\n </Group>\n </Container>\n </footer>}</>}\n styles={(theme) => ({\n main: { backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[8] : theme.colors.gray[0] },\n })}\n >\n <div style={{ position: 'relative' }}>\n { (props.loading || account.opened) && <Center style={{ height: 400 }}><Loader/></Center> }\n { (!props.loading && !account.opened) && props.page }\n </div>\n { !!account.accounts && !!account.account && <SwitchAccount\n opened={account.opened}\n loading={account.loading}\n account={account.account}\n accounts={account.accounts}\n onClick={account.onAccountChange}\n onClose={() => account.setChangeModalOpen(false)}\n />}\n </AppShell>\n}\n\nconst useAccount = (account?: string, accounts?: AccountItem[], onAccountChange?: (account: string) => Promise<void>) => {\n const accountsKey = JSON.stringify(accounts)\n const [changeModalOpen, setChangeModalOpen] = useState(false);\n const [active, setActive] = useState(account);\n const [loading, setLoading] = useState(false)\n\n React.useEffect(() => {\n setActive(account)\n }, [account, accountsKey])\n\n return {\n opened: changeModalOpen,\n account: active,\n accounts: accounts,\n loading,\n setChangeModalOpen,\n onAccountChange: (account: string) => {\n setLoading(true)\n if(!onAccountChange){\n return\n }\n\n onAccountChange(account).then(() => {\n setActive(account)\n setLoading(false)\n setChangeModalOpen(false)\n })\n }\n }\n}"],"names":["useStyles","createStyles","__objRest","Group","__spreadValues","React","Avatar","Text","useState","IconChevronRight","IconChevronLeft","Box","Link","Badge","ThemeIcon","Collapse","__spreadProps","IconHome2","IconGauge","IconCategory2","IconAlbum","IconLambda","IconBuilding","NavbarCore","Center","Image","Code","Burger","ScrollArea","IconSwitchHorizontal","IconLogout","UnstyledButton","Card","IconBatteryEco","IconBooks","IconBackpack","Modal","Loader","SimpleGrid","TabsCore","SplitButton","Button","Menu","ActionIcon","IconChevronDown","IconClipboardCopy","IconTableExport","Title","Stack","Grid","Table","DataTable","LessonStack","MantineTable","Container","BadgeCore","IconArrowLeft","LoadingOverlay","Select","LessonTable","Autocomplete","ImpactTable","ReflectionTable","BadgeTable","StudentTable","IconPlaylistAdd","openConfirmModal","IconCheck","IconTrash","form","useForm","Drawer","DropzoneButton","Divider","TextInput","papa","Dropzone","MIME_TYPES","IconDownload","IconX","IconCloudUpload","Tooltip","IconInfoCircle","AnswerTable","IconColorSwatch","Paper","Overlay","MantineStack","AnswerStack","Chart","QuestionStack","Anchor","IconPointer","IconBadge","Progress","IconCopy","useUncontrolled","Checkbox","IconHistory","IconLego","IconNews","IconTools","IconPodium","IconAffiliate","IconGrowth","createEmotionCache","MantineProvider","NotificationsProvider","ModalsProvider","AppShell","IconBrandInstagram","IconBrandLinkedin","IconBrandFacebook","account"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/components/users/UserButton/UserButton.tsx","../src/utils/numbers.ts","../src/components/navigation/NavbarLinksGroups/NavbarLinksGroups.tsx","../src/components/navigation/Navbar/Navbar.tsx","../src/components/users/SwitchAccount/SwitchAccount.tsx","../src/components/data/StatsGroup/StatsGroup.tsx","../src/components/navigation/Tabs/Tabs.tsx","../src/pages/Badge/SplitButton.tsx","../src/components/banners/PlaceholderBanner/PlaceholderBanner.tsx","../src/pages/Badge/LessonStack.tsx","../src/pages/Badge/Table.tsx","../src/pages/Badge/LessonTable.tsx","../src/pages/Badge/Badge.tsx","../src/pages/Badges/Table.tsx","../src/pages/Badges/Badges.tsx","../src/pages/Dashboard/StudentTable.tsx","../src/utils/time.ts","../src/pages/Dashboard/ReflectionTable.tsx","../src/pages/Dashboard/ImpactTable.tsx","../src/pages/Dashboard/BadgeTable.tsx","../src/pages/Dashboard/LessonTable.tsx","../src/pages/Dashboard/Dashboard.tsx","../src/pages/Class/SplitButton.tsx","../src/pages/Class/Table.tsx","../src/pages/Class/Class.tsx","../src/pages/Classes/Table.tsx","../src/pages/Classes/Classes.tsx","../src/components/users/UserInfo/UserInfo.tsx","../src/pages/Student/BadgeTable.tsx","../src/pages/Student/AnswerTable.tsx","../src/pages/Student/ReflectionTable.tsx","../src/pages/Student/Student.tsx","../src/components/cards/CardGradient.tsx","../src/components/banners/TenantBanner/TenantBanner.tsx","../src/pages/Home/Home.tsx","../src/pages/Lesson/ReflectionTable.tsx","../src/pages/Lesson/SplitButton.tsx","../src/pages/Lesson/AnswerStack.tsx","../src/pages/Lesson/Table.tsx","../src/pages/Lesson/QuestionStack.tsx","../src/pages/Lesson/Lesson.tsx","../src/pages/Lessons/Table.tsx","../src/pages/Lessons/Lessons.tsx","../src/pages/Organization/AccessCode.tsx","../src/pages/Organization/Organization.tsx","../src/pages/People/SplitButton.tsx","../src/pages/People/Table.tsx","../src/pages/People/People.tsx","../src/pages/StartAnonymousLesson/StartAnonymousLesson.tsx","../src/components/grid/BadgeGrid/BadgeGrid.tsx","../src/pages/TrialHome/TrialHome.tsx","../src/components/grid/SelectGrid/SelectGrid.tsx","../src/pages/TrialRegistration/TrialRegistration.tsx","../src/providers/AdminProvider/AdminProvider.tsx","../src/shells/App/App.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n UnstyledButton,\n UnstyledButtonProps,\n Group,\n Avatar,\n Text,\n createStyles,\n} from '@mantine/core';\n\nconst useStyles = createStyles((theme) => ({\n user: {\n display: 'block',\n width: '100%',\n padding: theme.spacing.md,\n cursor: \"default\",\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.black,\n },\n}));\n\ninterface UserButtonProps extends UnstyledButtonProps {\n image: string;\n name: string;\n email: string;\n icon?: React.ReactNode;\n}\n\nexport function UserButton({ image, name, email, icon, ...others }: UserButtonProps) {\n const { classes } = useStyles();\n\n return <Group className={classes.user} {...others}>\n <Avatar src={image} radius=\"xl\" />\n\n <div style={{ flex: 1 }}>\n <Text size=\"sm\" weight={500}>\n {name}\n </Text>\n\n <Text color=\"dimmed\" size=\"xs\">\n {email}\n </Text>\n </div>\n\n {/*{icon || <IconChevronRight size={14} stroke={1.5} />}*/}\n </Group>;\n}","/**\n * Compact number\n * @param num\n */\nexport const compact = (num?: number) => {\n return Intl.NumberFormat(\"en-US\", {\n notation: \"compact\",\n maximumFractionDigits: 1,\n }).format(num || 0);\n};","import * as React from 'react';\nimport { useState } from 'react';\nimport { Group, Badge, Box, Collapse, ThemeIcon, Text, createStyles } from '@mantine/core';\nimport { TablerIcon, IconChevronLeft, IconChevronRight } from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\nimport {compact} from \"../../../utils/numbers\";\n\nconst useStyles = createStyles((theme, _params, getRef) => {\n const icon = getRef('icon');\n return {\n control: {\n fontWeight: 500,\n width: '100%',\n padding: `${theme.spacing.xs}px ${theme.spacing.md}px`,\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.black,\n fontSize: theme.fontSizes.sm,\n\n '&:hover': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.colors.gray[0],\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n },\n },\n\n controlButton: {\n cursor: 'pointer',\n },\n\n badge: {\n pointerEvents: 'none',\n },\n\n link: {\n fontWeight: 500,\n display: 'block',\n textDecoration: 'none',\n padding: `${theme.spacing.xs}px ${theme.spacing.md}px`,\n paddingLeft: 31,\n marginLeft: 30,\n fontSize: theme.fontSizes.sm,\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.colors.gray[7],\n borderLeft: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[3]\n }`,\n\n '&:hover': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.colors.gray[0],\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n },\n },\n\n linkActive: {\n '&, &:hover': {\n backgroundColor: theme.fn.variant({variant: 'light', color: theme.primaryColor})\n .background,\n color: theme.fn.variant({variant: 'light', color: theme.primaryColor}).color,\n [`& .${icon}`]: {\n color: theme.fn.variant({variant: 'light', color: theme.primaryColor}).color,\n },\n },\n },\n\n chevron: {\n transition: 'transform 200ms ease',\n },\n\n linkIcon: {\n ref: icon,\n },\n }\n});\n\ninterface LinksGroupProps {\n icon: TablerIcon;\n label: string;\n initiallyOpened?: boolean;\n active?: string\n notifications: number\n href: string\n links?: { notifications: number, label: string, href: string;}[];\n}\n\nexport function LinksGroup({ icon: Icon, href, label, initiallyOpened, links, active, notifications}: LinksGroupProps) {\n const { classes, theme, cx } = useStyles();\n const hasLinks = Array.isArray(links) && links.length > 0;\n const hasActiveLinks = Array.isArray(links) && links.map(l => !!active && active === `${label}/${l.label}`).reduce((a, b) => a || b, false)\n const [opened, setOpened] = useState(initiallyOpened || hasActiveLinks || false);\n\n React.useEffect(() => {\n setOpened(hasActiveLinks)\n }, [hasActiveLinks])\n\n const ChevronIcon = theme.dir === 'ltr' ? IconChevronRight : IconChevronLeft;\n const items = (hasLinks ? links : []).map((link) => {\n return <Box\n className={cx(classes.link, { [classes.linkActive]: !!active && active === `${label}/${link.label}`})}\n key={link.label}>\n <Group position=\"apart\" spacing={0}>\n <Text<typeof Link> component={Link} to={link.href}>\n {link.label}\n </Text>\n {!!link.notifications && (\n <Badge size=\"sm\" variant=\"filled\" className={classes.badge}>\n {compact(link.notifications)}\n </Badge>\n )}\n </Group>\n </Box>\n });\n\n return (\n <>\n <Group\n className={cx(classes.control, {\n [classes.linkActive]: !!active && !hasLinks && label === active,\n [classes.controlButton]: hasLinks\n })}\n onClick={() => setOpened((o) => !o)}\n position=\"apart\"\n spacing={0}>\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <ThemeIcon variant=\"light\" size={30}>\n <Icon className={classes.linkIcon} size={18} />\n </ThemeIcon>\n <Box ml=\"md\">\n <Text<typeof Link> component={Link} to={href}>\n {label}\n </Text>\n </Box>\n </Box>\n\n {!!notifications && (\n <Badge size=\"sm\" variant=\"filled\" className={classes.badge}>\n {compact(notifications)}\n </Badge>\n )}\n\n {hasLinks && (\n <ChevronIcon\n className={classes.chevron}\n size={14}\n stroke={1.5}\n style={{\n transform: opened ? `rotate(${theme.dir === 'rtl' ? -90 : 90}deg)` : 'none',\n }}\n />\n )}\n </Group>\n {hasLinks ? <Collapse in={opened}>{items}</Collapse> : null}\n </>\n );\n}","import * as React from 'react';\nimport {\n Navbar as NavbarCore,\n Avatar,\n Image,\n Center,\n createStyles,\n Group, Code, ScrollArea, Burger,\n Badge,\n} from '@mantine/core';\nimport {\n IconHome2,\n IconGauge,\n IconLogout,\n IconSwitchHorizontal, IconLambda, IconCategory2, IconAlbum, IconBuilding,\n} from '@tabler/icons';\nimport {UserButton} from \"../../users/UserButton/UserButton\";\nimport {LinksGroup} from \"../NavbarLinksGroups/NavbarLinksGroups\";\n\nconst useStyles = createStyles((theme, _params, getRef) => {\n const icon = getRef('icon');\n return {\n navbar: {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.white,\n },\n\n navHeader: {\n // Media query with value from theme\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n height: 71,\n position: 'absolute',\n top: 0,\n },\n },\n\n navBody: {\n // Media query with value from theme\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n display: 'none',\n },\n },\n\n burger: {\n [theme.fn.largerThan('sm')]: {\n display: 'none',\n },\n },\n\n header: {\n padding: theme.spacing.md,\n paddingTop: 0,\n marginLeft: -theme.spacing.md,\n marginRight: -theme.spacing.md,\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n borderBottom: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[3]\n }`,\n },\n\n link: {\n ...theme.fn.focusStyles(),\n display: 'flex',\n alignItems: 'center',\n textDecoration: 'none',\n fontSize: theme.fontSizes.sm,\n color: theme.colorScheme === 'dark' ? theme.colors.dark[1] : theme.colors.gray[7],\n padding: `${theme.spacing.xs}px ${theme.spacing.sm}px`,\n borderRadius: theme.radius.sm,\n fontWeight: 500,\n\n '&:hover': {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[0],\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n\n [`& .${icon}`]: {\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n },\n },\n },\n\n linkIcon: {\n ref: icon,\n color: theme.colorScheme === 'dark' ? theme.colors.dark[2] : theme.colors.gray[6],\n marginRight: theme.spacing.sm,\n },\n\n links: {\n marginLeft: -theme.spacing.md,\n marginRight: -theme.spacing.md,\n },\n\n user: {\n margin: theme.spacing.md,\n marginLeft: 0,\n marginRight: 0,\n },\n\n linksInner: {\n paddingBottom: theme.spacing.xl,\n },\n\n footer: {\n paddingTop: theme.spacing.md,\n paddingBottom: theme.spacing.md,\n borderTop: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[2]\n }`,\n },\n\n active: {\n '&, &:hover': {\n backgroundColor: theme.fn.variant({ variant: 'light', color: theme.primaryColor }).background,\n color: theme.fn.variant({ variant: 'light', color: theme.primaryColor }).color,\n },\n },\n }\n});\n\n/**\n * NavbarProps\n */\nexport interface NavbarProps {\n active: string\n version: string\n image: string\n name: string\n email: string\n links: Record<string, {notifications: number, href: string, hidden?: boolean}>\n trial?: boolean\n onLogout: () => void;\n onSwitchAccounts?: () => void;\n}\n\nconst data = [\n {label: 'Home', icon: IconHome2},\n {label: 'Dashboard', icon: IconGauge},\n {label: 'Classes', icon: IconCategory2},\n {label: 'Badges', icon: IconAlbum},\n {label: 'Lessons', icon: IconLambda},\n {label: 'Organization',\n icon: IconBuilding,\n links: [\n {label: 'Overview'},\n {label: 'People'},\n ],\n }\n]\n\nexport function Navbar(props: NavbarProps) {\n const { classes, cx } = useStyles();\n const [burgerOpen, setBurgerOpen] = React.useState(false)\n const toggle = () => setBurgerOpen(!burgerOpen)\n const links = data.map((item) => {\n const context = props.links[item.label] || {notifications: 0, href: \"\"}\n if(context.hidden || props.trial && item.label !== 'Home'){\n return null\n }\n\n return <LinksGroup\n key={item.label}\n active={props.active}\n {...item}\n {...context}\n links={(item.links || []).map((link) => {\n return {...link, ...props.links[`${item.label}/${link.label}`] || {notifications: 0, href: \"\"}}\n })}\n />\n });\n\n return (\n <>\n <NavbarCore width={{ sm: 300 }} p=\"md\" className={cx(classes.navbar, {[classes.navHeader]: !burgerOpen})}>\n <NavbarCore.Section className={classes.header}>\n <Group position=\"apart\">\n <Center>\n <Avatar color=\"blue\" radius=\"sm\">\n <div style={{ width: 15, marginLeft: 'auto', marginRight: 'auto' }}>\n <Image fit=\"contain\" src=\"https://cdn.localcivics.io/brand/l.png\"/>\n </div>\n </Avatar>\n </Center>\n <Group position=\"apart\">\n <Code sx={{ fontWeight: 700 }}>{props.version}</Code>\n { !!props.trial && <Badge color=\"violet\" radius=\"xs\">Trial</Badge>}\n <Burger opened={burgerOpen} onClick={toggle} className={classes.burger} size=\"sm\" />\n </Group>\n </Group>\n </NavbarCore.Section>\n\n <div className={cx({[classes.navBody]: !burgerOpen})}>\n <UserButton\n className={classes.user}\n image={props.image}\n name={props.name}\n email={props.email}\n />\n\n <NavbarCore.Section grow className={classes.links} component={ScrollArea}>\n <div className={classes.linksInner}>{links}</div>\n </NavbarCore.Section>\n\n <NavbarCore.Section className={classes.footer}>\n { !!props.onSwitchAccounts && <a href=\"#\" className={classes.link} onClick={(event) => {\n event.preventDefault()\n props.onSwitchAccounts && props.onSwitchAccounts()\n }}>\n <IconSwitchHorizontal className={classes.linkIcon} stroke={1.5} />\n <span>Change account</span>\n </a>}\n\n <a href=\"#\" className={classes.link} onClick={(event) => {\n event.preventDefault()\n props.onLogout()\n }}>\n <IconLogout className={classes.linkIcon} stroke={1.5} />\n <span>Logout</span>\n </a>\n </NavbarCore.Section>\n </div>\n </NavbarCore>\n </>\n );\n}","import {IconBackpack, IconBatteryEco, IconBooks} from \"@tabler/icons\";\nimport * as React from 'react';\nimport {Modal, SimpleGrid, UnstyledButton, Card, ScrollArea, Text, createStyles, Center, Loader} from '@mantine/core';\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n\n description: {\n maxWidth: 600,\n margin: 'auto',\n\n '&::after': {\n content: '\"\"',\n display: 'block',\n backgroundColor: theme.fn.primaryColor(),\n width: 45,\n height: 2,\n marginTop: theme.spacing.sm,\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n },\n\n card: {\n transition: 'box-shadow 150ms ease, transform 100ms ease',\n\n '&:hover': {\n boxShadow: `${theme.shadows.md} !important`,\n transform: 'scale(1.02)',\n },\n },\n\n cardTitle: {\n '&::after': {\n content: '\"\"',\n display: 'block',\n backgroundColor: theme.fn.primaryColor(),\n width: 45,\n height: 2,\n marginTop: theme.spacing.sm,\n },\n },\n}));\n\n/**\n * AccountItem\n */\nexport type AccountItem = {\n accountId: string\n name: string\n isAdmin?: boolean\n isGroupAdmin?: boolean\n}\n\n/**\n * SwitchAccountProps\n */\nexport type SwitchAccountProps = {\n opened: boolean\n account: string\n loading: boolean\n accounts: AccountItem[]\n onClick: (account: string) => void;\n onClose: () => void;\n}\n\n/**\n * SwitchAccount\n * @param props\n * @constructor\n */\nexport const SwitchAccount = (props: SwitchAccountProps) => {\n const { classes, theme } = useStyles();\n\n const options = props.accounts.map(a => {\n return <UnstyledButton onClick={() => props.onClick && props.onClick(a.accountId)} key={a.accountId} p={theme.spacing.md}>\n <Card withBorder shadow=\"md\" radius=\"md\" className={classes.card} p=\"xl\">\n { a.isAdmin && <><IconBatteryEco size={50} stroke={2} color={theme.fn.primaryColor()}/></> }\n { a.isGroupAdmin && !a.isAdmin && <><IconBooks size={50} stroke={2} color={theme.fn.primaryColor()}/></>}\n { !a.isAdmin && !a.isGroupAdmin && <><IconBackpack size={50} stroke={2} color={theme.fn.primaryColor()}/></>}\n\n <Text size=\"lg\" weight={500} className={classes.cardTitle} mt=\"md\">\n {a.name}\n </Text>\n <Text size=\"sm\" color=\"dimmed\" mt=\"sm\">\n {a.isAdmin ? \"Admin\" : a.isGroupAdmin ? \"Educator\" : \"Student\"}\n </Text>\n </Card>\n </UnstyledButton>\n })\n\n return <Modal centered\n fullScreen\n opened={props.opened}\n onClose={() => props.onClose && props.onClose()}\n size=\"sm\"\n >\n <div style={{ position: 'relative' }}>\n { props.loading && <Center style={{ height: 400 }}><Loader/></Center> }\n { !props.loading && <ScrollArea.Autosize maxHeight={600}>\n <SimpleGrid p={20} cols={3} spacing=\"xl\" breakpoints={[{ maxWidth: 'md', cols: 1 }]}>\n {options}\n </SimpleGrid>\n </ScrollArea.Autosize>\n }\n </div>\n </Modal>\n}","import * as React from 'react';\nimport { createStyles, Text } from '@mantine/core';\n\nconst useStyles = createStyles((theme) => ({\n root: {\n display: 'flex',\n backgroundImage: `linear-gradient(-60deg, ${theme.colors[theme.primaryColor][4]} 0%, ${\n theme.colors[theme.primaryColor][7]\n } 100%)`,\n padding: theme.spacing.xl * 1.5,\n borderRadius: theme.radius.md,\n\n [theme.fn.smallerThan('sm')]: {\n flexDirection: 'column',\n },\n },\n\n title: {\n color: theme.white,\n textTransform: 'uppercase',\n fontWeight: 700,\n fontSize: theme.fontSizes.sm,\n },\n\n count: {\n color: theme.white,\n fontSize: 32,\n lineHeight: 1,\n fontWeight: 700,\n marginBottom: theme.spacing.md,\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\n },\n\n description: {\n color: theme.colors[theme.primaryColor][0],\n fontSize: theme.fontSizes.sm,\n marginTop: 5,\n },\n\n stat: {\n flex: 1,\n '& + &': {\n paddingLeft: theme.spacing.xl,\n marginLeft: theme.spacing.xl,\n borderLeft: `1px solid ${theme.colors[theme.primaryColor][3]}`,\n\n [theme.fn.smallerThan('sm')]: {\n paddingLeft: 0,\n marginLeft: 0,\n borderLeft: 0,\n paddingTop: theme.spacing.xl,\n marginTop: theme.spacing.xl,\n borderTop: `1px solid ${theme.colors[theme.primaryColor][3]}`,\n },\n },\n },\n}));\n\ninterface StatsGroupProps {\n data: { title: string; value: number, unit?: string}[];\n}\n\n/**\n * StatsGroup\n * @param data\n * @constructor\n */\nexport const StatsGroup = ({ data }: StatsGroupProps) => {\n const { classes } = useStyles();\n const stats = data.map((stat) => {\n const value = (() => {\n if(stat.unit === '%'){\n // https://stackoverflow.com/questions/11832914/how-to-round-to-at-most-2-decimal-places-if-necessary\n return Math.round((stat.value + Number.EPSILON) * 100)\n }\n\n return stat.value\n })()\n\n return <div key={stat.title} className={classes.stat}>\n <Text className={classes.count}>{value.toLocaleString()}{stat.unit}</Text>\n <Text className={classes.title}>{stat.title}</Text>\n </div>\n });\n return <div className={classes.root}>{stats}</div>;\n}","import * as React from 'react';\nimport {Tabs as TabsCore, TabsValue} from '@mantine/core';\n\n/**\n * TabProps\n */\nexport interface TabsProps{\n data?: {label?: string, value: string}[]\n value?: TabsValue\n\n onChange: (next: string) => void\n}\n\n/**\n * Tabs\n * @param props\n * @constructor\n */\nexport const Tabs = (props: TabsProps) => {\n const tabs = props.data?.map(item => <TabsCore.Tab key={item.value} value={item.value}>{item.label||item.value}</TabsCore.Tab>)\n\n return (\n <TabsCore value={props.value} onTabChange={props.onChange}>\n <TabsCore.List>\n {tabs}\n </TabsCore.List>\n </TabsCore>\n );\n}","import * as React from 'react'\nimport { createStyles, Button, Menu, Group, ActionIcon } from '@mantine/core';\nimport {\n IconChevronDown,\n IconPlaylistAdd,\n IconClipboardCopy, IconTableExport\n} from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\n\nconst useStyles = createStyles((theme) => ({\n button: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n marginLeft: 0,\n marginRight: 0,\n },\n\n menuControl: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: 0,\n borderLeft: `1px solid ${theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white}`,\n },\n}));\n\nexport type SplitButtonProps = {\n href: string\n onCopyLinkClick: () => void;\n onExportDataClick: () => void;\n}\n\nexport const SplitButton = (props: SplitButtonProps) => {\n const { classes, theme } = useStyles();\n const menuIconColor = theme.colors[theme.primaryColor][theme.colorScheme === 'dark' ? 5 : 6];\n\n return (\n <Group noWrap spacing={0}>\n <Button<typeof Link> component={Link} to={props.href}\n className={classes.button}\n variant=\"gradient\"\n >\n Preview\n </Button>\n <Menu transition=\"pop\" position=\"bottom-end\">\n <Menu.Target>\n <ActionIcon\n variant=\"gradient\"\n color={theme.primaryColor}\n size={36}\n className={classes.menuControl}\n >\n <IconChevronDown size={16} stroke={1.5} />\n </ActionIcon>\n </Menu.Target>\n <Menu.Dropdown>\n <Menu.Item\n icon={<IconClipboardCopy size={16} stroke={1.5} color={menuIconColor} />}\n onClick={props.onCopyLinkClick}\n >\n Copy link\n </Menu.Item>\n <Menu.Item\n icon={<IconTableExport size={16} stroke={1.5} color={menuIconColor} />}\n onClick={props.onExportDataClick}\n >\n Export data (.csv)\n </Menu.Item>\n </Menu.Dropdown>\n </Menu>\n </Group>\n );\n}","import * as React from 'react'\nimport { createStyles, Text, Title, Image } from '@mantine/core';\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n display: 'flex',\n alignItems: 'center',\n padding: theme.spacing.xl * 2,\n borderRadius: theme.radius.md,\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[8] : theme.white,\n border: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[8] : theme.colors.gray[3]\n }`,\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n flexDirection: 'column-reverse',\n padding: theme.spacing.xl,\n },\n },\n\n image: {\n maxWidth: '40%',\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n maxWidth: '100%',\n },\n },\n\n body: {\n paddingRight: theme.spacing.xl * 4,\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n paddingRight: 0,\n marginTop: theme.spacing.xl,\n },\n },\n\n title: {\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\n lineHeight: 1,\n marginBottom: theme.spacing.md,\n },\n\n controls: {\n display: 'flex',\n marginTop: theme.spacing.xl,\n },\n\n inputWrapper: {\n width: '100%',\n flex: '1',\n },\n\n input: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n borderRight: 0,\n },\n\n control: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n },\n}));\n\n/**\n * PlaceholderBannerIcon\n */\nexport type PlaceholderBannerIcon = \"badges\" | \"lessons\" | \"dashboard\" | \"groups\" | \"kindergarten\" | \"thinking\"\n\n/**\n * PlaceholderBannerProps\n */\nexport type PlaceholderBannerProps = {\n loading: boolean\n icon: PlaceholderBannerIcon\n title?: string,\n description?: string,\n}\n\nexport const PlaceholderBanner = (props: PlaceholderBannerProps) => {\n const { classes } = useStyles();\n const title = props.title || \"Nothing to display\"\n const description = props.description || \"We don't have anything to show you here just yet. Add data, check back later, or adjust your search.\"\n return (\n <div className={classes.wrapper}>\n <div className={classes.body}>\n <Title className={classes.title}>{props.loading ? \"Loading...\" : title}</Title>\n <Text size=\"sm\" color=\"dimmed\">{props.loading ? \"Hold on, we're loading your data.\" : description}</Text>\n </div>\n\n <Image src={`https://cdn.localcivics.io/illustrations/${props.icon}.svg`} className={classes.image} />\n </div>\n );\n}","import * as React from 'react';\nimport {Grid, Badge, Text} from '@mantine/core';\nimport {Link} from \"react-router-dom\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonName: string\n completion: number\n isStarted?: boolean\n href: string\n}\n\n/**\n * StackData\n */\nexport type StackData = {\n items: Item[]\n}\n\n/**\n * StackProps\n */\nexport type StackProps = StackData\n\n/**\n * Stack\n * @constructor\n * @param props\n */\nexport function Stack(props: StackProps) {\n if(props.items.length === 0){\n return null\n }\n\n const rows = props.items.map((row) => (\n <>\n <Grid.Col span={6}>\n <Text<typeof Link> component={Link} to={row.href} color=\"dark.4\" weight=\"bold\" size=\"md\">\n {row.lessonName}\n </Text>\n </Grid.Col>\n <Grid.Col span={6}>\n {row.completion >= 1 && <Badge variant=\"filled\">Complete</Badge>}\n {row.completion === 0 && !row.isStarted && <Badge color=\"red\" variant=\"filled\">Not started</Badge>}\n {row.completion > 0 && row.completion < 1 && <Badge color=\"violet\" variant=\"filled\">{Math.round((row.completion + Number.EPSILON) * 100)}% Complete</Badge>}\n </Grid.Col>\n </>\n ));\n\n return <Grid grow gutter=\"lg\" sx={{ padding: 20, minWidth: 700 }}>\n {rows}\n </Grid>\n}","import {DataTable} from \"mantine-datatable\";\nimport * as React from 'react';\nimport {Avatar, Group, Text, ScrollArea, Badge} from '@mantine/core';\nimport {Link} from \"react-router-dom\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\nimport {Stack as LessonStack, Item as LessonItem} from \"./LessonStack\";\n\n/**\n * Item\n */\nexport interface Item {\n userId: string\n avatar: string\n name: string\n email: string\n isComplete?: boolean\n lessons: LessonItem[]\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No badges to display\"\n description=\"There has not been any badge progress just yet.\"\n loading={props.loading}\n icon=\"badges\"\n />\n }\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <DataTable\n verticalSpacing=\"sm\"\n sx={{ minWidth: 700 }}\n withBorder={false}\n borderRadius=\"sm\"\n withColumnBorders\n striped\n highlightOnHover\n records={props.items}\n idAccessor=\"userId\"\n columns={[{\n accessor: 'name',\n title: 'Student Name',\n render: (row: Item) => (\n <Group spacing=\"sm\">\n <Avatar size={40} src={row.avatar} radius={40}/>\n <div>\n <Text size=\"sm\" weight={500}>\n {row.name}\n </Text>\n <Text size=\"xs\" color=\"dimmed\">\n {row.email}\n </Text>\n </div>\n </Group>\n ),\n },{\n accessor: 'status',\n render: (row: Item) => (\n <>\n {!!row.isComplete && <Badge variant=\"filled\">Complete</Badge>}\n {!row.isComplete && <Badge color=\"red\" variant=\"filled\">Incomplete</Badge>}\n </>\n )\n }]}\n rowExpansion={{\n content: ({ record }: {record: Item}) => (\n <LessonStack items={record.lessons}/>\n ),\n }}\n />\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea, Text} from '@mantine/core';\nimport {Link} from \"react-router-dom\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonId: string\n lessonName: string\n percentageCompletion: number\n href: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No lessons to display\"\n description=\"There are not lessons in badge.\"\n loading={props.loading}\n icon=\"badges\"\n />\n }\n\n const rows = props.items.map((row) => {\n const percentageCompletion = Math.round((row.percentageCompletion + Number.EPSILON) * 100)\n return <tr key={row.lessonName}>\n <td>\n <Text<typeof Link> component={Link} to={row.href}>\n {row.lessonName}\n </Text>\n </td>\n <td>{percentageCompletion}%</td>\n </tr>\n });\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Lesson Name</th>\n <th>Lesson Completion</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import {IconArrowLeft, IconCategory2} from \"@tabler/icons\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport {\n createStyles,\n Badge as BadgeCore,\n Title,\n Text,\n Container, Stack, Grid,\n Select, ActionIcon, Group,\n LoadingOverlay,\n UnstyledButton,\n} from '@mantine/core';\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {Tabs} from \"../../components/navigation/Tabs/Tabs\";\nimport {SplitButton} from \"./SplitButton\";\nimport {Table, Item} from \"./Table\";\nimport {Table as LessonTable, Item as LessonItem} from \"./LessonTable\"\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n\n description: {\n maxWidth: 600,\n },\n}));\n\n/**\n * BadgeUserItem\n */\nexport type BadgeUserItem = Item\n\n/**\n * BadgeClass\n */\nexport type BadgeClass = {\n classId: string\n name: string\n active: boolean\n}\n\n/**\n * BadgeProps\n */\nexport type BadgeProps = {\n loading: boolean\n displayName: string,\n description: string\n classes: BadgeClass[]\n lessons: LessonItem[]\n classId: string\n students: BadgeUserItem[]\n href: string\n trial?: boolean\n\n onBackClick: () => void;\n onClassChange: (classId: string) => void;\n onCopyLinkClick: () => void;\n onExportDataClick: () => void;\n}\n\n/**\n * Badge\n * @param props\n * @constructor\n */\nexport const Badge = (props: BadgeProps) => {\n const { classes } = useStyles();\n const [tab, setTab] = useState(\"lessons\")\n\n const numberOfStudents = props.students.length\n const percentageOfBadgesEarned = numberOfStudents > 0 ? props.students.filter(u => u.isComplete).length / numberOfStudents : 0\n\n return (\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <UnstyledButton onClick={props.onBackClick}>\n <BadgeCore\n variant=\"filled\"\n leftSection={<ActionIcon color=\"blue\" size=\"xs\" radius=\"xl\" variant=\"filled\">\n <IconArrowLeft size={14} />\n </ActionIcon>}\n size=\"lg\">\n Go Back\n </BadgeCore>\n </UnstyledButton>\n <Group>\n <Stack spacing={0}>\n <Title order={2} className={classes.title} mt=\"md\">\n {props.displayName || \"Badge\"}\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n {props.description || \"No description\"}\n </Text>\n </Stack>\n\n <Stack ml=\"auto\">\n <SplitButton\n href={props.href}\n onCopyLinkClick={props.onCopyLinkClick}\n onExportDataClick={props.onExportDataClick}\n />\n </Stack>\n </Group>\n </Grid.Col>\n </Grid>\n <div>\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Stack>\n <StatsGroup data={[\n {\n title: \"BADGE COMPLETION\",\n value: percentageOfBadgesEarned,\n unit: '%',\n },\n ]}/>\n\n { !props.trial && <Select\n clearable\n clearButtonLabel=\"Clear class selection\"\n size=\"sm\"\n placeholder=\"Select a class\"\n nothingFound=\"No options\"\n value={props.classId}\n onChange={props.onClassChange}\n icon={<IconCategory2/>}\n data={props.classes.map(g => {return {value: g.classId, label: g.name}})}\n />}\n\n <Stack spacing={0}>\n { !props.trial && <Tabs\n value={tab}\n data={[\n {label: \"By lesson\", value: \"lessons\"},\n {label: \"By student\", value: \"students\"},\n ]}\n onChange={setTab}\n />}\n\n { (!!props.trial || tab === \"lessons\") && <LessonTable\n loading={props.loading}\n items={props.lessons}\n /> }\n\n { (!props.trial && tab === \"students\") && <Table\n loading={props.loading}\n items={props.students}\n />}\n </Stack>\n </Stack>\n </div>\n </div>\n </Stack>\n </Container>\n )\n}","import * as React from 'react';\nimport { Table as MantineTable, Group, Text, ScrollArea, UnstyledButton } from '@mantine/core';\nimport {Link} from \"react-router-dom\";\nimport {PlaceholderBanner} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n badgeId: string,\n name: string;\n description: string\n href: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[];\n}\n\n/**\n * TableProps\n */\nexport type TableProps = TableData\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No badges to display\"\n description=\"We don't have any badges to show you just yet.\"\n loading={props.loading}\n icon=\"badges\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.badgeId}>\n <td>\n <UnstyledButton<typeof Link> component={Link} to={row.href}\n sx={(theme) => ({\n display: 'block',\n width: '100%',\n padding: theme.spacing.md,\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.black,\n\n '&:hover': {\n backgroundColor:\n theme.colorScheme === 'dark' ? theme.colors.dark[8] : theme.colors.gray[1],\n },\n })}>\n <Group>\n <div>\n <Text size=\"sm\" weight={500}>\n {row.name}\n </Text>\n <Text size=\"xs\" color=\"dimmed\">\n {row.description}\n </Text>\n </div>\n </Group>\n </UnstyledButton>\n </td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable horizontalSpacing={0} verticalSpacing={0} sx={{ minWidth: 700 }}>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {\n createStyles,\n Badge as BadgeCore,\n Title,\n Text,\n Container, Stack, Grid, Autocomplete, LoadingOverlay,\n} from '@mantine/core';\nimport {Table, Item} from \"./Table\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n\n description: {\n maxWidth: 600,\n },\n}));\n\n/**\n * BadgeItem\n */\nexport type BadgeItem = Item\n\n/**\n * BadgesProps\n */\nexport type BadgesProps = {\n loading: boolean\n badges: BadgeItem[]\n\n onAutocompleteChange: (value: string) => void\n}\n\n/**\n * Badges\n * @param props\n * @constructor\n */\nexport const Badges = (props: BadgesProps) => {\n const { classes } = useStyles();\n return (\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <BadgeCore variant=\"filled\" size=\"lg\">\n Badges\n </BadgeCore>\n <Title order={2} className={classes.title} mt=\"md\">\n Badges and micro-credentials\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n Project-sized skills acquisition and standards alignment.\n </Text>\n </Grid.Col>\n </Grid>\n\n <Autocomplete\n placeholder=\"Search for a badge that fits your needs\"\n data={props.badges.map(item => item.name)}\n onChange={props.onAutocompleteChange}\n />\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Table\n loading={props.loading}\n items={props.badges}\n />\n </div>\n </Stack>\n </Container>\n )\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea, UnstyledButton} from '@mantine/core';\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n studentId: string\n studentName: string\n className: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n/**\n * TableMethods\n */\nexport type TableMethods = {\n onViewProfile: (item: Item) => void;\n}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData & TableMethods\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No students to display\"\n description=\"You don't have any students yet, add them and revisit.\"\n loading={props.loading}\n icon=\"groups\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.studentName}>\n <td><UnstyledButton onClick={() => props.onViewProfile(row)}>{row.studentName}</UnstyledButton></td>\n <td>{row.className}</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Student Name</th>\n <th>Class Name</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","// https://stackoverflow.com/questions/6108819/javascript-timestamp-to-relative-time\nconst units: {unit: Intl.RelativeTimeFormatUnit; ms: number}[] = [\n {unit: \"year\", ms: 31536000000},\n {unit: \"month\", ms: 2628000000},\n {unit: \"day\", ms: 86400000},\n {unit: \"hour\", ms: 3600000},\n {unit: \"minute\", ms: 60000},\n {unit: \"second\", ms: 1000},\n];\nconst rtf = new Intl.RelativeTimeFormat(\"en\", {numeric: \"auto\"});\n\n/**\n * Get language-sensitive relative time message from Dates.\n * @param relative - the relative dateTime, generally is in the past or future\n * @param pivot - the dateTime of reference, generally is the current time\n */\nexport function relativeTimeFromDates(relative: Date | null, pivot: Date = new Date()): string {\n if (!relative) return \"\";\n const elapsed = relative.getTime() - pivot.getTime();\n return relativeTimeFromElapsed(elapsed);\n}\n\n/**\n * Get language-sensitive relative time message from elapsed time.\n * @param elapsed - the elapsed time in milliseconds\n */\nexport function relativeTimeFromElapsed(elapsed: number): string {\n for (const {unit, ms} of units) {\n if (Math.abs(elapsed) >= ms || unit === \"second\") {\n return rtf.format(Math.round(elapsed / ms), unit);\n }\n }\n return \"\";\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea} from '@mantine/core';\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\nimport {relativeTimeFromDates} from \"../../utils/time\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonName: string\n studentName: string\n reflection: string\n updatedAt: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n/**\n * TableMethods\n */\nexport type TableMethods = {}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData & TableMethods\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No reflections to display\"\n description=\"There has not been any lesson progress just yet.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.studentName+row.lessonName}>\n <td>{row.studentName}</td>\n <td>{row.lessonName}</td>\n <td>{row.reflection}</td>\n <td>{relativeTimeFromDates(new Date(row.updatedAt))}</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Student Name</th>\n <th>Lesson Name</th>\n <th>Reflection</th>\n <th>Updated At</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea} from '@mantine/core';\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n studentName: string\n impactStatement: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n/**\n * TableMethods\n */\nexport type TableMethods = {}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData & TableMethods\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No impact statements to display\"\n description=\"There are no students with impact statements yet.\"\n loading={props.loading}\n icon=\"kindergarten\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.studentName}>\n <td>{row.studentName}</td>\n <td>{row.impactStatement}</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Student Name</th>\n <th>Impact Statement</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport { Table as MantineTable, Group, Text, ScrollArea, UnstyledButton } from '@mantine/core';\nimport {PlaceholderBanner} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n badgeId: string,\n name: string;\n description: string\n percentageCompletion: number\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[];\n}\n\n/**\n * TableMethods\n */\nexport type TableMethods = {\n onClick: (badge: Item) => void\n}\n\n/**\n * TableProps\n */\nexport type TableProps = TableData & TableMethods\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No badges to display\"\n description=\"We don't have any badges to show you just yet.\"\n loading={props.loading}\n icon=\"badges\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.badgeId}>\n <td>\n <UnstyledButton onClick={() => props.onClick && props.onClick(row)}>\n {row.name}\n </UnstyledButton>\n </td>\n <td>{row.description}</td>\n <td>{Math.round((row.percentageCompletion + Number.EPSILON) * 100)}%</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Badge Name</th>\n <th>Description</th>\n <th>Completion</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport { Table as MantineTable, Group, Text, ScrollArea, UnstyledButton } from '@mantine/core';\nimport {PlaceholderBanner} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonId: string,\n name: string;\n description: string\n percentageCompletion: number\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[];\n}\n\n/**\n * TableMethods\n */\nexport type TableMethods = {\n onClick: (badge: Item) => void\n}\n\n/**\n * TableProps\n */\nexport type TableProps = TableData & TableMethods\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No lessons to display\"\n description=\"We don't have any lessons to show you just yet.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.lessonId}>\n <td>\n <UnstyledButton onClick={() => props.onClick && props.onClick(row)}>\n {row.name}\n </UnstyledButton>\n </td>\n <td>{row.description}</td>\n <td>{Math.round((row.percentageCompletion + Number.EPSILON) * 100)}%</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Lesson Name</th>\n <th>Description</th>\n <th>Completion</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import {IconCategory2} from \"@tabler/icons\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport {Container, LoadingOverlay, Select, Stack, Text, Title} from '@mantine/core';\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {Tabs} from \"../../components/navigation/Tabs/Tabs\";\nimport {Item as StudentItem, Table as StudentTable} from \"./StudentTable\";\nimport {Table as ReflectionTable, Item as ReflectionItem} from \"./ReflectionTable\";\nimport {Item as ImpactItem, Table as ImpactTable} from \"./ImpactTable\";\nimport {Item as BadgeItem, Table as BadgeTable} from \"./BadgeTable\";\nimport {Item as LessonItem, Table as LessonTable} from \"./LessonTable\";\n\n/**\n * DashboardClass\n */\nexport type DashboardClass = {\n classId: string\n name: string\n}\n\n/**\n * DashboardProps\n */\nexport type DashboardProps = {\n loading: boolean\n students: StudentItem[]\n impacts: ImpactItem[]\n reflections: ReflectionItem[],\n classes: DashboardClass[],\n badges: BadgeItem[],\n lessons: LessonItem[],\n classId: string\n percentageOfAccountsCreated: number\n numberOfBadgesEarned: number\n numberOfLessonsCompleted: number\n\n onClassChange: (classId: string) => void;\n onViewStudentProfile: (student: StudentItem) => void\n onBadgeClick: (badge: BadgeItem) => void;\n onLessonClick: (lesson: LessonItem) => void;\n}\n\n/**\n * Dashboard\n * @param props\n * @constructor\n */\nexport const Dashboard = (props: DashboardProps) => {\n const [tab, setTab] = useState(\"students\")\n\n return <Container size=\"lg\" py=\"xl\">\n <Stack>\n <Stack spacing={0}>\n <Title size=\"h3\">Dashboard</Title>\n <Text color=\"dimmed\" size=\"sm\" mt=\"md\">\n Fast-track learning for your students.\n </Text>\n </Stack>\n <Stack>\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Stack spacing=\"sm\">\n <StatsGroup data={[\n {\n title: \"# OF STUDENTS\",\n value: props.students.length,\n },\n {\n title: \"ACCOUNT CREATION\",\n value: props.percentageOfAccountsCreated,\n unit: \"%\",\n },\n {\n title: \"BADGES EARNED\",\n value: props.numberOfBadgesEarned,\n },\n {\n title: \"LESSONS COMPLETED\",\n value: props.numberOfLessonsCompleted,\n },\n ]}/>\n\n <Select\n clearable\n clearButtonLabel=\"Clear class selection\"\n size=\"sm\"\n placeholder=\"Select a class\"\n nothingFound=\"No options\"\n value={props.classId}\n onChange={props.onClassChange}\n icon={<IconCategory2/>}\n data={props.classes.map(g => {return {value: g.classId, label: g.name}})}\n />\n\n <Stack spacing={0}>\n <Tabs\n value={tab}\n data={[\n {label: \"My students\", value: \"students\"},\n {label: \"Impact statements\", value: \"impact\"},\n {label: \"Reflections\", value: \"reflections\"},\n {label: \"Badges\", value: \"badges\"},\n {label: \"Lessons\", value: \"lessons\"},\n ]}\n onChange={setTab}\n />\n\n { tab === \"impact\" && <ImpactTable\n loading={props.loading}\n items={props.impacts}\n />}\n\n { tab === \"reflections\" && <ReflectionTable\n loading={props.loading}\n items={props.reflections}\n /> }\n\n { tab === \"badges\" && <BadgeTable\n loading={props.loading}\n items={props.badges}\n onClick={props.onBadgeClick}\n /> }\n\n { tab === \"lessons\" && <LessonTable\n loading={props.loading}\n items={props.lessons}\n onClick={props.onLessonClick}\n /> }\n\n { tab === \"students\" && <StudentTable\n loading={props.loading}\n items={props.students}\n onViewProfile={props.onViewStudentProfile}\n />}\n </Stack>\n </Stack>\n </div>\n </Stack>\n </Stack>\n </Container>\n}","import * as React from 'react'\nimport {Button, Stack} from '@mantine/core';\nimport {\n IconPlaylistAdd,\n IconClipboardCopy\n} from '@tabler/icons';\n\nexport type SplitButtonProps = {\n onAddMembersClick: () => void;\n onCopyClassLinkClick: () => void;\n}\n\nexport const SplitButton = (props: SplitButtonProps) => {\n return (\n <Stack spacing=\"sm\">\n <Button\n leftIcon={<IconPlaylistAdd size={14} />}\n onClick={props.onAddMembersClick}\n >\n Add students\n </Button>\n\n <Button\n leftIcon={<IconClipboardCopy size={14} />}\n onClick={props.onCopyClassLinkClick}\n >\n Copy class link\n </Button>\n </Stack>\n );\n}","import {openConfirmModal} from \"@mantine/modals\";\nimport * as React from 'react';\nimport {\n Avatar,\n Table as MantineTable,\n Group,\n Text,\n ActionIcon,\n UnstyledButton,\n ScrollArea,\n Select,\n Box\n} from '@mantine/core';\nimport {IconCheck, IconTrash} from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\nimport {relativeTimeFromDates} from \"../../utils/time\";\n\n/**\n * Item\n */\nexport type Item = {\n classId: string,\n userId: string,\n avatar: string,\n email: string,\n givenName: string,\n familyName: string,\n lastActivity: Date | null\n readonly: boolean\n hasAccount: boolean\n badgesEarned: number\n lessonsCompleted: number\n isAdmin: boolean\n href: string\n}\n\n/**\n * TableProps\n */\nexport interface TableProps {\n loading: boolean\n items: Item[];\n\n onDelete?: (member: Item) => void\n onRoleChange?: (user: Item, role: string | null) => void;\n}\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No members to display\"\n description=\"You have not rostered any students yet.\"\n loading={props.loading}\n icon=\"groups\"\n />\n }\n\n const openDeleteModal = (student: Item) => openConfirmModal({\n title: `Delete \"${student.givenName && student.familyName ? `${student.givenName} ${student.familyName}` : student.email}\"?`,\n centered: true,\n children: (\n <Text size=\"sm\">\n Are you sure you want to delete this person? This action is destructive and you will have\n to contact support to restore your data.\n </Text>\n ),\n labels: { confirm: 'Delete', cancel: \"No don't delete them\" },\n confirmProps: { color: 'red' },\n onConfirm: () => props.onDelete && props.onDelete(student),\n });\n\n const rows = props.items.map((row) => (\n <tr key={row.email}>\n <td>\n <UnstyledButton<typeof Link> component={Link} to={row.href}>\n <Group spacing=\"sm\">\n <Avatar size={40} src={row.avatar} radius={40} />\n <div>\n <Text size=\"sm\" weight={500}>\n {row.givenName && row.familyName ? `${row.givenName} ${row.familyName}` : row.email}\n </Text>\n <Text size=\"xs\" color=\"dimmed\">\n {row.email}\n </Text>\n </div>\n </Group>\n </UnstyledButton>\n </td>\n <td>\n <Box maw={150}>\n <Select\n size=\"sm\"\n value={row.isAdmin ? \"educator\" : \"student\"}\n onChange={(value) => props.onRoleChange && props.onRoleChange(row, value)}\n data={[{value: \"student\", label: \"Student\"}, {value: \"educator\", label: \"Educator\"}]}\n />\n </Box>\n </td>\n <td>{row.badgesEarned}</td>\n <td>{row.lessonsCompleted}</td>\n <td>{row.hasAccount && <IconCheck color=\"green\" />}</td>\n <td>{row.lastActivity ? relativeTimeFromDates(row.lastActivity) : \"\"}</td>\n <td>\n <Group noWrap spacing={0} position=\"right\">\n { !row.readonly && !!props.onDelete && <ActionIcon color=\"red\">\n <IconTrash onClick={() => openDeleteModal(row)} size={16} stroke={1.5} />\n </ActionIcon> }\n </Group>\n </td>\n </tr>\n ));\n\n return (\n <ScrollArea>\n <MantineTable verticalSpacing={20} sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Name</th>\n <th>Role</th>\n <th>Badges Earned</th>\n <th>Lessons Completed</th>\n <th>Account Created?</th>\n <th>Last Active</th>\n <th></th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea>\n );\n}","import {IconArrowLeft, IconCloudUpload, IconX, IconDownload} from \"@tabler/icons\";\nimport {ParseResult} from \"papaparse\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport {\n createStyles,\n Title,\n Text,\n Container, Stack, Grid,\n Drawer,\n Button, TextInput, Badge,\n ActionIcon,\n Group, Divider, LoadingOverlay,\n UnstyledButton,\n} from '@mantine/core';\nimport { Dropzone, MIME_TYPES } from '@mantine/dropzone';\nimport { useForm } from '@mantine/form';\nimport * as papa from 'papaparse'\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {SplitButton} from \"./SplitButton\";\nimport {Table, Item} from \"./Table\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n description: {\n maxWidth: 600,\n },\n autocomplete: {\n maxWidth: 400,\n },\n wrapper: {\n position: 'relative',\n marginBottom: 30,\n },\n\n dropzone: {\n borderWidth: 1,\n paddingBottom: 50,\n },\n\n icon: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[3] : theme.colors.gray[4],\n },\n\n control: {\n position: 'absolute',\n width: 250,\n left: 'calc(50% - 125px)',\n bottom: -20,\n },\n}));\n\n/**\n * MemberItem\n */\nexport type MemberItem = Item\n\n/**\n * ClassProps\n */\nexport type ClassProps = {\n loading: boolean\n displayName: string\n description: string\n members: MemberItem[]\n percentageOfAccountsCreated: number\n numberOfBadgesEarned: number\n numberOfLessonsCompleted: number\n\n onBackClick: () => void;\n onCreateMembers: (members: MemberItem[]) => void;\n onDeleteMember: (student: MemberItem) => void;\n onChangeUserRole: (user: MemberItem, role: string | null) => void;\n onCopyLinkClick: () => void;\n}\n\n/**\n * Class\n * @param props\n * @constructor\n */\nexport const Class = (props: ClassProps) => {\n const { classes } = useStyles();\n const form = useForm({\n initialValues: {\n classId: '',\n userId: '',\n email: '',\n givenName: '',\n familyName: '',\n avatar: '',\n role: '',\n readonly: false,\n lastActivity: null,\n hasAccount: false,\n lessonsCompleted: 0,\n badgesEarned: 0,\n href: \"\",\n isAdmin: false,\n },\n\n validate: {\n email: (value) => /^\\S+@\\S+$/.test(value) && props.members.filter(u => u.email === value).length === 0 ? null : 'Invalid email',\n },\n });\n const [opened, setOpened] = useState(false);\n return (\n <>\n <Drawer\n opened={opened}\n onClose={() => setOpened(false)}\n title={<Title size=\"h5\">Add students</Title>}\n padding=\"xl\"\n size=\"xl\"\n >\n <Stack spacing=\"md\">\n <DropzoneButton {...props} close={() => setOpened(false)} />\n\n <Divider label=\"or\" labelPosition=\"center\" my=\"md\" variant=\"dashed\"/>\n\n <form onSubmit={form.onSubmit(() => {\n const values = form.values\n form.reset()\n setOpened(false)\n props.onCreateMembers && props.onCreateMembers([values])\n })}>\n <Stack>\n <TextInput\n withAsterisk\n label=\"Email\"\n placeholder=\"Email\"\n {...form.getInputProps('email')}\n />\n <Group grow>\n <TextInput\n label=\"Given name\"\n placeholder=\"Given name\"\n {...form.getInputProps('givenName')}\n />\n <TextInput\n label=\"Family name\"\n placeholder=\"Family name\"\n {...form.getInputProps('familyName')}\n />\n </Group>\n <Button type=\"submit\" fullWidth mt=\"md\">\n Submit\n </Button>\n </Stack>\n </form>\n </Stack>\n </Drawer>\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <UnstyledButton onClick={props.onBackClick}>\n <Badge\n variant=\"filled\"\n leftSection={<ActionIcon color=\"blue\" size=\"xs\" radius=\"xl\" variant=\"filled\">\n <IconArrowLeft size={14} />\n </ActionIcon>}\n size=\"lg\">\n Go Back\n </Badge>\n </UnstyledButton>\n <Title order={2} className={classes.title} mt=\"md\">\n {props.displayName || \"Class\"}\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n {props.description || \"No description\"}\n </Text>\n </Grid.Col>\n <Grid.Col sm=\"content\">\n { !props.loading && <SplitButton\n onAddMembersClick={() => setOpened(true)}\n onCopyClassLinkClick={props.onCopyLinkClick}\n />}\n </Grid.Col>\n </Grid>\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n\n <Stack spacing=\"sm\">\n <StatsGroup data={[\n {\n title: \"# OF STUDENTS\",\n value: props.members.filter(a => !a.isAdmin).length,\n },\n {\n title: \"ACCOUNT CREATION\",\n value: props.percentageOfAccountsCreated,\n unit: \"%\",\n },\n {\n title: \"BADGES EARNED\",\n value: props.numberOfBadgesEarned,\n },\n {\n title: \"LESSONS COMPLETED\",\n value: props.numberOfLessonsCompleted,\n },\n ]}/>\n\n <Table\n loading={props.loading}\n items={props.members}\n onDelete={props.onDeleteMember}\n onRoleChange={props.onChangeUserRole}\n />\n </Stack>\n </div>\n </Stack>\n </Container>\n </>\n )\n}\n\nconst DropzoneButton = (props: ClassProps & {close: () => void}) => {\n const { classes, theme } = useStyles();\n const openRef = React.useRef<() => void>(null);\n const [loading, setLoading] = React.useState(false)\n const onDrop = React.useCallback((acceptedFiles: File[]) => {\n setLoading(true)\n acceptedFiles.forEach((file) => {\n papa.parse(file, {\n download: true,\n header: true,\n dynamicTyping: true,\n skipEmptyLines: true,\n worker: true,\n complete: function(results: ParseResult<MemberItem>) {\n const data = results.data\n .filter(v => /^\\S+@\\S+$/.test(v.email) && props.members.filter(u => u.email === v.email).length === 0)\n data.length > 0 && props.onCreateMembers && props.onCreateMembers(data)\n setLoading(false)\n props.close()\n }\n })\n })\n\n }, [])\n\n return (\n <div className={classes.wrapper}>\n <Dropzone\n loading={loading}\n openRef={openRef}\n onDrop={onDrop}\n className={classes.dropzone}\n radius=\"md\"\n accept={[MIME_TYPES.csv]}\n maxSize={5 * 1024 ** 2}\n >\n <div style={{ pointerEvents: 'none' }}>\n <Group position=\"center\">\n <Dropzone.Accept>\n <IconDownload size={50} color={theme.colors[theme.primaryColor][6]} stroke={1.5} />\n </Dropzone.Accept>\n <Dropzone.Reject>\n <IconX size={50} color={theme.colors.red[6]} stroke={1.5} />\n </Dropzone.Reject>\n <Dropzone.Idle>\n <IconCloudUpload\n size={50}\n color={theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.black}\n stroke={1.5}\n />\n </Dropzone.Idle>\n </Group>\n\n <Text align=\"center\" weight={700} size=\"lg\" mt=\"xl\">\n <Dropzone.Accept>Drop files here</Dropzone.Accept>\n <Dropzone.Reject>Csv file less than 5mb</Dropzone.Reject>\n <Dropzone.Idle>Upload multiple</Dropzone.Idle>\n </Text>\n <Text align=\"center\" size=\"sm\" mt=\"xs\" color=\"dimmed\">\n Drag&apos;n&apos;drop files here to upload. We can accept only <i>.csv</i> files that\n are less than 5mb in size.\n </Text>\n </div>\n </Dropzone>\n\n <Button className={classes.control} size=\"md\" radius=\"xl\" onClick={() => openRef.current?.()}>\n Select file\n </Button>\n </div>\n );\n}","import {openConfirmModal} from \"@mantine/modals\";\nimport * as React from 'react';\nimport {Table as MantineTable, Group, Text, ActionIcon, ScrollArea, UnstyledButton} from '@mantine/core';\nimport {\n IconTrash\n} from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\nimport {PlaceholderBanner} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport type Item = { href: string, classId: string, name: string; description: string, numberOfStudents: number }\n\n/**\n * TableProps\n */\nexport interface TableProps {\n loading: boolean\n items: Item[];\n\n onDeleteClass: (item: Item) => void\n}\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No classes to display\"\n description=\"You don't have any classes yet. Try creating one first...\"\n loading={props.loading}\n icon=\"groups\"\n />\n }\n\n const openDeleteModal = (group: Item) => openConfirmModal({\n title: `Delete \"${group.name}\"?`,\n centered: true,\n children: (\n <Text size=\"sm\">\n Are you sure you want to delete this class? This action is destructive and you will have\n to contact support to restore your data.\n </Text>\n ),\n labels: { confirm: 'Delete class', cancel: \"No don't delete it\" },\n confirmProps: { color: 'red' },\n onConfirm: () => props.onDeleteClass(group),\n });\n\n const rows = props.items.map((row) => (\n <tr key={row.classId}>\n <td>\n <UnstyledButton<typeof Link> component={Link} to={row.href}>\n <Text size={14}>{row.name}</Text>\n </UnstyledButton>\n </td>\n <td><Text size={14}>{row.description}</Text></td>\n <td><Text size={14}>{row.numberOfStudents||0}</Text></td>\n <td>\n <Group noWrap spacing={0} position=\"right\">\n <ActionIcon color=\"red\">\n <IconTrash onClick={() => openDeleteModal(row)} size={16} stroke={1.5} />\n </ActionIcon>\n </Group>\n </td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing={20} sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Class Name</th>\n <th>Description</th>\n <th># of Students</th>\n <th></th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import {IconInfoCircle, IconPlaylistAdd} from \"@tabler/icons\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport {\n createStyles,\n Badge,\n Title,\n Text,\n Container, Stack, Grid,\n Drawer,\n Button, TextInput, ActionIcon,\n Tooltip, Group, LoadingOverlay, Autocomplete,\n} from '@mantine/core';\nimport { useForm } from '@mantine/form';\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {Table, Item} from \"./Table\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n\n description: {\n maxWidth: 600,\n },\n}));\n\n/**\n * ClassItem\n */\nexport type ClassItem = Item\n\n/**\n * ClassesProps\n */\nexport type ClassesProps = {\n loading: boolean\n classes: ClassItem[]\n\n onCreateClass: (group: ClassItem) => void\n onDeleteClass: (group: ClassItem) => void\n onAutocompleteChange: (next: string) => void\n}\n\n/**\n * Classes\n * @param props\n * @constructor\n */\nexport const Classes = (props: ClassesProps) => {\n const { classes } = useStyles();\n const form = useForm({\n initialValues: {\n classId: '',\n name: '',\n description: '',\n href: '',\n numberOfStudents: 0,\n },\n\n validate: {\n name: (val) => (val.length <= 6 ? 'Name should include at least 6 characters' : null),\n },\n });\n const [opened, setOpened] = useState(false);\n return (\n <>\n <Drawer\n opened={opened}\n onClose={() => setOpened(false)}\n title={<Group spacing={0}>\n <Title size=\"h5\">Create a class</Title>\n <Tooltip label=\"Classes settings cannot be modified once created\">\n <ActionIcon>\n <IconInfoCircle color=\"#3b82f6\" size={14} />\n </ActionIcon>\n </Tooltip>\n </Group>}\n padding=\"xl\"\n size=\"xl\"\n >\n <form onSubmit={form.onSubmit(() => {\n const values = form.values\n form.reset()\n setOpened(false)\n props.onCreateClass && props.onCreateClass(values)\n })}>\n <Stack>\n <TextInput\n withAsterisk\n label=\"Name\"\n placeholder=\"Class name\"\n {...form.getInputProps('name')}\n />\n <TextInput\n label=\"Description\"\n placeholder=\"A class for my first period English students\"\n {...form.getInputProps('description')}\n />\n </Stack>\n <Button type=\"submit\" fullWidth mt=\"md\">\n Submit\n </Button>\n </form>\n </Drawer>\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <Badge variant=\"filled\" size=\"lg\">\n Classes\n </Badge>\n <Title order={2} className={classes.title} mt=\"md\">\n Organize people into classes\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n A class can be for a specific period of time, grade, team, or other cohorts.\n </Text>\n </Grid.Col>\n <Grid.Col sm=\"content\">\n { !props.loading && <Button\n onClick={() => setOpened(true)}\n leftIcon={<IconPlaylistAdd size={14} />}>\n Create class\n </Button> }\n </Grid.Col>\n </Grid>\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Stack spacing=\"sm\">\n <StatsGroup data={[\n {\n title: \"# OF CLASSES\",\n value: props.classes.length,\n },\n ]}/>\n\n <Autocomplete\n placeholder=\"Search for classes\"\n data={props.classes.map(item => item.name)}\n onChange={props.onAutocompleteChange}\n />\n\n <Table\n loading={props.loading}\n items={props.classes}\n onDeleteClass={props.onDeleteClass}\n />\n </Stack>\n </div>\n </Stack>\n </Container>\n </>\n )\n}","import * as React from 'react';\nimport {Avatar, Text, Paper, Blockquote, Title, createStyles, Stack} from '@mantine/core';\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n marginTop: 16,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n description: {\n maxWidth: 600,\n },\n}));\n\nexport type UserInfoProps = {\n variant?: \"compact\"\n name: string\n impactStatement: string\n}\n\n/**\n * UserInfo\n * @constructor\n * @param props\n */\nexport const UserInfo = (props: UserInfoProps) => {\n const { classes } = useStyles();\n return <>\n <Title className={classes.title}>\n {props.name}\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"xs\">\n {props.impactStatement}\n </Text>\n </>\n}","import {DataTable} from \"mantine-datatable\";\nimport * as React from 'react';\nimport {ScrollArea, Badge, Text} from '@mantine/core';\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n badgeId: string\n badgeName: string\n isComplete?: boolean\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No badges to display\"\n description=\"There has not been any badge progress just yet.\"\n loading={props.loading}\n icon=\"badges\"\n />\n }\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <DataTable\n verticalSpacing=\"sm\"\n sx={{ minWidth: 700 }}\n withBorder={false}\n borderRadius=\"sm\"\n withColumnBorders\n striped\n highlightOnHover\n records={props.items}\n idAccessor=\"badgeId\"\n columns={[{\n accessor: 'name',\n title: 'Badge Name',\n render: (row: Item) => (\n <>\n <Text>{row.badgeName}</Text>\n </>\n ),\n },{\n accessor: 'status',\n render: (row: Item) => (\n <>\n {!!row.isComplete && <Badge variant=\"filled\">Complete</Badge>}\n {!row.isComplete && <Badge color=\"red\" variant=\"filled\">Incomplete</Badge>}\n </>\n )\n }]}\n />\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea, Text} from '@mantine/core';\nimport {Link} from \"react-router-dom\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonId: string\n lessonName: string\n questionName: string\n answer: string[]\n href: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No answers to display\"\n description=\"There has not been any lesson progress just yet.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.questionName}>\n <td><Text<typeof Link> component={Link} to={row.href}>{row.lessonName}</Text></td>\n <td>{row.questionName}</td>\n <td>{row.answer.join(\",\")}</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Lesson Name</th>\n <th>Question</th>\n <th>Answer</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea, Text} from '@mantine/core';\nimport {Link} from \"react-router-dom\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonId: string\n lessonName: string\n reflection: string\n rating: number\n href: string\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No reflections to display\"\n description=\"There has not been any lesson progress just yet.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.lessonName}>\n <td><Text<typeof Link> component={Link} to={row.href}>{row.lessonName}</Text></td>\n <td>{row.reflection}</td>\n <td>{row.rating.toLocaleString()}</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Lesson Name</th>\n <th>Reflection</th>\n <th>Rating</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import {ActionIcon, Badge, Container, Grid, LoadingOverlay, Stack, UnstyledButton} from \"@mantine/core\";\nimport {IconArrowLeft} from \"@tabler/icons\";\nimport {useState} from \"react\";\nimport * as React from \"react\";\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {Tabs} from \"../../components/navigation/Tabs/Tabs\";\nimport {UserInfo} from \"../../components/users/UserInfo/UserInfo\";\nimport {Table as BadgeTable, Item as BadgeItem} from \"./BadgeTable\"\nimport {Table as AnswerTable, Item as AnswerItem} from \"./AnswerTable\"\nimport {Table as ReflectionTable, Item as ReflectionItem} from \"./ReflectionTable\"\n\n/**\n * StudentProps\n */\nexport type StudentProps = {\n loading: boolean\n name: string\n impactStatement: string\n numberOfProblemsSolved: number\n percentageOfLessonsCompleted: number\n badges: BadgeItem[],\n answers: AnswerItem[],\n reflections: ReflectionItem[],\n\n onBackClick: () => void\n}\n\nexport const Student = (props: StudentProps) => {\n const [tab, setTab] = useState(\"badges\")\n const numberOfBadges = props.badges.length\n const percentageOfBadgesEarned = numberOfBadges > 0 ? props.badges.filter(b => b.isComplete).length / numberOfBadges : 0\n\n return <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid gutter=\"md\">\n <Grid.Col sm=\"auto\">\n <UnstyledButton onClick={props.onBackClick}>\n <Badge\n variant=\"filled\"\n leftSection={<ActionIcon color=\"blue\" size=\"xs\" radius=\"xl\" variant=\"filled\">\n <IconArrowLeft size={14} />\n </ActionIcon>}\n size=\"lg\">\n Go Back\n </Badge>\n </UnstyledButton>\n\n <UserInfo\n variant=\"compact\"\n name={props.name}\n impactStatement={props.impactStatement}\n />\n </Grid.Col>\n </Grid>\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Stack spacing=\"lg\">\n <StatsGroup data={[\n {\n title: \"PROBLEMS SOLVED\",\n value: props.numberOfProblemsSolved,\n },\n {\n title: \"LESSON COMPLETION\",\n value: props.percentageOfLessonsCompleted,\n unit: \"%\"\n },\n {\n title: \"BADGE COMPLETION\",\n value: percentageOfBadgesEarned,\n unit: \"%\"\n },\n ]}/>\n\n <Stack spacing={0}>\n <Tabs\n value={tab}\n data={[\n {label: \"My badges\", value: \"badges\"},\n {label: \"My answers\", value: \"answers\"},\n {label: \"My reflections\", value: \"reflections\"},\n ]}\n onChange={setTab}\n />\n\n { tab === \"badges\" && <BadgeTable\n loading={props.loading}\n items={props.badges}\n /> }\n\n { tab === \"answers\" && <AnswerTable\n loading={props.loading}\n items={props.answers}\n /> }\n\n { tab === \"reflections\" && <ReflectionTable\n loading={props.loading}\n items={props.reflections}\n /> }\n </Stack>\n </Stack>\n </div>\n </Stack>\n </Container>\n}","import * as React from 'react';\nimport { createStyles, Paper, Text, ThemeIcon } from '@mantine/core';\nimport { IconColorSwatch } from '@tabler/icons';\n\nconst useStyles = createStyles((theme, props: CardGradientProps) => {\n const from = props.from || 'blue'\n const to = props.to || 'green'\n return {\n card: {\n position: 'relative',\n cursor: 'pointer',\n overflow: 'hidden',\n transition: 'transform 150ms ease, box-shadow 100ms ease',\n padding: theme.spacing.xl,\n paddingLeft: theme.spacing.xl * 2,\n\n '&:hover': {\n boxShadow: theme.shadows.md,\n transform: 'scale(1.02)',\n },\n\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n width: 6,\n backgroundImage: theme.fn.linearGradient(0, theme.colors[from][6], theme.colors[to][6]),\n },\n },\n }\n});\n\nexport type CardGradientProps = {\n title: string;\n description: string;\n onClick: () => void;\n icon?: React.ReactNode\n from?: string\n to?: string\n}\n\nexport function CardGradient(props: CardGradientProps) {\n const { classes } = useStyles(props);\n const from = props.from || 'blue'\n const to = props.to || 'green'\n const icon = props.icon || <IconColorSwatch size={28} stroke={1.5} />\n return (\n <Paper withBorder radius=\"md\" className={classes.card} onClick={props.onClick}>\n <ThemeIcon\n size=\"xl\"\n radius=\"md\"\n variant=\"gradient\"\n gradient={{ deg: 0, from, to }}\n >\n {icon}\n </ThemeIcon>\n <Text size=\"xl\" weight={500} mt=\"md\">\n {props.title}\n </Text>\n <Text size=\"sm\" mt=\"sm\" color=\"dimmed\">\n {props.description}\n </Text>\n </Paper>\n );\n}","import {Button, Card, CardProps, createStyles, Overlay, Text} from \"@mantine/core\";\nimport * as React from \"react\";\n\nconst useStyles = createStyles((theme) => ({\n card: {\n height: 240,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n whiteSpace: 'pre-line'\n },\n\n content: {\n position: 'absolute',\n padding: theme.spacing.xl,\n zIndex: 1,\n top: 0,\n bottom: 0,\n right: 0,\n left: 0,\n },\n\n action: {\n position: 'absolute',\n bottom: theme.spacing.xl,\n right: theme.spacing.xl,\n },\n\n title: {\n color: theme.white,\n marginBottom: theme.spacing.xs / 2,\n },\n\n description: {\n color: theme.white,\n maxWidth: 220,\n },\n}));\n\ninterface TenantBannerProps {\n title: string;\n description: string;\n image: string;\n action: {\n label: string;\n link: string;\n };\n}\n\n/**\n * TenantBanner\n * @param title\n * @param description\n * @param image\n * @param action\n * @param style\n * @param className\n * @param others\n * @constructor\n */\nexport const TenantBanner = ({\n title,\n description,\n image,\n action,\n style,\n className,\n ...others\n }: TenantBannerProps & Omit<CardProps, keyof TenantBannerProps | 'children'>) => {\n const { classes, cx, theme } = useStyles();\n\n return (\n <Card\n radius=\"md\"\n style={{ backgroundImage: `url(${image})`, ...style }}\n className={cx(classes.card, className)}\n {...others}\n >\n <Overlay\n gradient={`linear-gradient(105deg, ${theme.black} 20%, #312f2f 50%, ${theme.colors.gray[4]} 100%)`}\n opacity={0.55}\n zIndex={0}\n />\n\n <div className={classes.content}>\n <Text size=\"lg\" weight={700} className={classes.title}>\n {title}\n </Text>\n\n <Text size=\"sm\" className={classes.description}>\n {description}\n </Text>\n\n <Button\n className={classes.action}\n variant=\"white\"\n color=\"dark\"\n component=\"a\"\n size=\"xs\"\n href={action.link}\n target=\"_blank\"\n >\n {action.label}\n </Button>\n </div>\n </Card>\n );\n}","import * as React from 'react';\nimport {Container, Grid, Stack} from '@mantine/core';\nimport {CardGradient} from \"../../components/cards/CardGradient\";\nimport {UserInfo} from \"../../components/users/UserInfo/UserInfo\";\nimport {TenantBanner} from \"../../components/banners/TenantBanner/TenantBanner\";\n\n/**\n * HomeProps\n */\nexport type HomeProps = {\n loading: boolean\n avatarURL: string\n name: string\n impactStatement: string\n organization: {name: string, description: string, image: string, website: string}\n\n onDashboardClick: () => void;\n onClassesClick: () => void;\n onLessonsClick: () => void;\n onBadgesClick: () => void;\n}\n\n/**\n * Home\n * @param props\n * @constructor\n */\nexport const Home = (props: HomeProps) => {\n return <Container size=\"lg\">\n <Stack spacing=\"lg\">\n <Grid gutter=\"md\">\n <Grid.Col md={6}>\n <UserInfo\n variant=\"compact\"\n name={props.name}\n impactStatement={props.impactStatement}\n />\n </Grid.Col>\n <Grid.Col md={6}>\n <TenantBanner\n title={props.organization.name}\n description={props.organization.description}\n image={props.organization.image}\n action={\n {\n label: \"Visit website\",\n link: props.organization.website,\n }\n }\n />\n </Grid.Col>\n </Grid>\n\n <Grid gutter=\"md\">\n <Grid.Col>\n <CardGradient\n title=\"Dashboard\"\n description=\"Track class performance across core areas of focus.\"\n onClick={props.onDashboardClick}\n />\n </Grid.Col>\n <Grid.Col>\n <CardGradient\n title=\"Classes\"\n description=\"Organize people into classes.\"\n onClick={props.onClassesClick}\n />\n </Grid.Col>\n <Grid.Col>\n <CardGradient\n title=\"Lessons\"\n description=\"Explore units of instruction and/or see corresponding class progress.\"\n onClick={props.onLessonsClick}\n />\n </Grid.Col>\n <Grid.Col>\n <CardGradient\n title=\"Badges\"\n description=\"Project-sized skills acquisition and standards alignment.\"\n onClick={props.onBadgesClick}\n />\n </Grid.Col>\n </Grid>\n </Stack>\n </Container>\n}","import * as React from 'react';\nimport {Table as MantineTable, ScrollArea} from '@mantine/core';\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n studentName: string\n reflection: string\n rating: number\n}\n\n/**\n * TableData\n */\nexport type TableData = {\n loading: boolean\n items: Item[]\n}\n\n/**\n * TableMethods\n */\nexport type TableMethods = {}\n\n\n/**\n * TableProps\n */\nexport type TableProps = TableData & TableMethods\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No reflections to display\"\n description=\"There has not been any lesson progress just yet.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.studentName}>\n <td>{row.studentName}</td>\n <td>{row.reflection}</td>\n <td>{row.rating.toLocaleString()}</td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable verticalSpacing=\"sm\" sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Student Name</th>\n <th>Reflection</th>\n <th>Rating</th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react'\nimport { createStyles, Button, Menu, Group, ActionIcon } from '@mantine/core';\nimport {\n IconChevronDown,\n IconPlaylistAdd,\n IconClipboardCopy, IconTableExport\n} from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\n\nconst useStyles = createStyles((theme) => ({\n button: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n marginLeft: 0,\n marginRight: 0,\n },\n\n menuControl: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: 0,\n borderLeft: `1px solid ${theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white}`,\n },\n}));\n\nexport type SplitButtonProps = {\n href: string\n onCopyLinkClick: () => void;\n onExportDataClick: () => void;\n}\n\nexport const SplitButton = (props: SplitButtonProps) => {\n const { classes, theme } = useStyles();\n const menuIconColor = theme.colors[theme.primaryColor][theme.colorScheme === 'dark' ? 5 : 6];\n\n return (\n <Group noWrap spacing={0}>\n <Button<typeof Link> component={Link} to={props.href}\n className={classes.button}\n variant=\"gradient\"\n >\n Preview\n </Button>\n <Menu transition=\"pop\" position=\"bottom-end\">\n <Menu.Target>\n <ActionIcon\n variant=\"gradient\"\n color={theme.primaryColor}\n size={36}\n className={classes.menuControl}\n >\n <IconChevronDown size={16} stroke={1.5} />\n </ActionIcon>\n </Menu.Target>\n <Menu.Dropdown>\n <Menu.Item\n icon={<IconClipboardCopy size={16} stroke={1.5} color={menuIconColor} />}\n onClick={props.onCopyLinkClick}\n >\n Copy link\n </Menu.Item>\n <Menu.Item\n icon={<IconTableExport size={16} stroke={1.5} color={menuIconColor} />}\n onClick={props.onExportDataClick}\n >\n Export data (.csv)\n </Menu.Item>\n </Menu.Dropdown>\n </Menu>\n </Group>\n );\n}","import * as React from 'react';\nimport {Stack as MantineStack, UnstyledButton, ScrollArea, Title, Text} from '@mantine/core';\nimport { Link } from 'react-router-dom';\n\n/**\n * Item\n */\nexport interface Item {\n questionName: string\n answer: string[]\n}\n\n/**\n * StackData\n */\nexport type StackData = {\n href: string\n items: Item[]\n}\n\n/**\n * StackMethods\n */\nexport type StackMethods = {}\n\n/**\n * StackProps\n */\nexport type StackProps = StackData & StackMethods\n\n/**\n * Stack\n * @constructor\n * @param props\n */\nexport function Stack(props: StackProps) {\n if(props.items.length === 0){\n return null\n }\n\n const rows = props.items.map((row) => (\n <MantineStack spacing={0} key={row.questionName}>\n <Title color=\"dark.4\" size=\"lg\">{row.questionName}</Title>\n <Text>{row.answer.join(\",\") || \"No answer.\"}</Text>\n </MantineStack>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <UnstyledButton<typeof Link> component={Link} to={props.href}>\n <MantineStack spacing={24} sx={{ padding: 20, minWidth: 700 }}>\n {rows}\n </MantineStack>\n </UnstyledButton>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {\n Avatar,\n Badge,\n Group,\n Text,\n ScrollArea,\n UnstyledButton,\n} from '@mantine/core';\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\nimport {Stack as AnswerStack, Item as AnswerItem} from \"./AnswerStack\"\nimport {DataTable} from \"mantine-datatable\"\n\n/**\n * Item\n */\nexport interface Item {\n userId: string\n avatar: string\n name: string\n email: string\n answers: AnswerItem[]\n isStarted?: boolean\n isComplete?: boolean\n href: string\n}\n\n/**\n * TableProps\n */\nexport interface TableProps {\n loading: boolean\n items: Item[];\n}\n\n/**\n * Table\n * @constructor\n * @param props\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No students to display\"\n description=\"You don't have any student data yet for this lesson\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <DataTable\n verticalSpacing=\"sm\"\n sx={{ minWidth: 700 }}\n withBorder={false}\n borderRadius=\"sm\"\n withColumnBorders\n striped\n highlightOnHover\n idAccessor=\"userId\"\n records={props.items}\n columns={[{\n accessor: 'name',\n title: 'Student Name',\n render: (row: Item) => (\n <UnstyledButton>\n <Group spacing=\"sm\">\n <Avatar size={40} src={row.avatar} radius={40}/>\n <div>\n <Text size=\"sm\" weight={500}>\n {row.name}\n </Text>\n <Text size=\"xs\" color=\"dimmed\">\n {row.email}\n </Text>\n </div>\n </Group>\n </UnstyledButton>\n ),\n },{\n accessor: 'status',\n render: (row: Item) => (\n <>\n {!!row.isComplete && <Badge variant=\"filled\">Complete</Badge>}\n {!row.isComplete && !row.isStarted && <Badge color=\"red\" variant=\"filled\">Not started</Badge>}\n {!row.isComplete && !!row.isStarted && <Badge color=\"violet\" variant=\"filled\">In progress</Badge>}\n </>\n )\n }]}\n rowExpansion={{\n content: ({ record }: {record: Item}) => (\n <AnswerStack href={record.href} items={record.answers}/>\n ),\n }}\n />\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {Stack as MantineStack, ScrollArea, Title, Text, Card} from '@mantine/core';\nimport {Chart, AxisOptions} from \"react-charts\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n question: string\n answers: string[][]\n choices?: string[]\n chart?: boolean\n}\n\n/**\n * StackData\n */\nexport type StackData = {\n loading: boolean\n items: Item[]\n}\n\n\n/**\n * StackProps\n */\nexport type StackProps = StackData\n\n/**\n * Stack\n * @constructor\n * @param props\n */\nexport function Stack(props: StackProps) {\n const primaryAxis = React.useMemo<\n AxisOptions<{primary: string, secondary: string}>\n >(\n () => ({\n position: \"left\",\n getValue: (datum) => datum.primary,\n }),\n []\n );\n\n const secondaryAxes = React.useMemo<\n AxisOptions<{primary: string, secondary: string}>[]\n >(\n () => [\n {\n position: \"bottom\",\n getValue: (datum) => datum.secondary,\n },\n ],\n []\n );\n\n\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No questions to display\"\n description=\"There are no questions in this lesson.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => {\n if(row.chart){\n const labelMap: any = {}\n const choices = row.choices || []\n choices.forEach(c => {\n labelMap[c] = 0\n })\n\n row.answers.forEach(a => a.forEach(r => {\n if(r in labelMap){\n labelMap[r] = labelMap[r] ? labelMap[r] + 1 : 1\n }\n }))\n\n return <Card key={row.question} withBorder p=\"xl\" radius=\"md\">\n <MantineStack spacing={4}>\n <Title size=\"lg\">{row.question}</Title>\n <Text size=\"sm\">{row.answers.length} answers</Text>\n\n <div style={{ background: \"white\", height: \"300px\", width: \"100%\", position: 'relative' }}>\n <Chart\n options={{\n data: [{\n label: '',\n data: choices.map(k => {\n return {\n primary: truncateWithEllipses(k, 50),\n secondary: labelMap[k]\n }\n }),\n }],\n primaryAxis,\n secondaryAxes,\n }}\n />\n </div>\n </MantineStack>\n </Card>\n }\n\n return <Card key={row.question} withBorder p=\"xl\" radius=\"md\">\n <MantineStack spacing={4}>\n <Title size=\"lg\">{row.question}</Title>\n <Text size=\"sm\">{row.answers.length} answers</Text>\n\n <ScrollArea.Autosize maxHeight={600}>\n <MantineStack spacing={4}>\n {\n row.answers.map(a => {\n const answerText = a.join(\"\\n\")\n return <Card key={answerText} p={5} radius={0} bg=\"gray.0\">\n <Text>{answerText}</Text>\n </Card>\n })\n }\n </MantineStack>\n </ScrollArea.Autosize>\n </MantineStack>\n </Card>\n });\n\n\n return <MantineStack py={4} spacing={10} sx={{ minWidth: 700 }}>\n {rows}\n </MantineStack>\n}\n\nconst truncateWithEllipses = (text: string, max: number) => text.substr(0,max-1)+(text.length>max?'&hellip;':'')","import {IconArrowLeft, IconCategory2} from \"@tabler/icons\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport {\n createStyles,\n Badge,\n Title,\n Text,\n Container, Stack, Grid,\n Select, ActionIcon, Group,\n LoadingOverlay,\n UnstyledButton,\n} from '@mantine/core';\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {Tabs} from \"../../components/navigation/Tabs/Tabs\";\nimport {Item as ReflectionItem, Table as ReflectionTable} from \"./ReflectionTable\";\nimport {SplitButton} from \"./SplitButton\";\nimport {Table, Item} from \"./Table\";\nimport {Stack as QuestionStack, Item as QuestionItem} from \"./QuestionStack\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n\n description: {\n maxWidth: 600,\n },\n}));\n\n/**\n * LessonUserItem\n */\nexport type LessonUserItem = Item\n\n/**\n * LessonClass\n */\nexport type LessonClass = {\n classId: string\n name: string\n active: boolean\n}\n\n/**\n * LessonProps\n */\nexport type LessonProps = {\n loading: boolean\n displayName: string\n description: string\n href: string\n classId: string\n classes: LessonClass[]\n students: LessonUserItem[]\n reflections: ReflectionItem[],\n questions: QuestionItem[],\n trial?: boolean\n\n onBackClick: () => void;\n onClassChange: (classId: string) => void;\n onCopyLinkClick: () => void;\n onExportDataClick: () => void;\n}\n\n/**\n * Lesson\n * @param props\n * @constructor\n */\nexport const Lesson = (props: LessonProps) => {\n const { classes } = useStyles();\n const [tab, setTab] = useState(\"question\")\n\n const numberOfStudents = props.students.length\n const percentageOfLessonsCompleted = numberOfStudents > 0 ? props.students.filter(u => u.isComplete).length / numberOfStudents : 0\n\n return (\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <UnstyledButton onClick={props.onBackClick}>\n <Badge\n variant=\"filled\"\n leftSection={<ActionIcon color=\"blue\" size=\"xs\" radius=\"xl\" variant=\"filled\">\n <IconArrowLeft size={14} />\n </ActionIcon>}\n size=\"lg\">\n Go Back\n </Badge>\n </UnstyledButton>\n <Group>\n <Stack spacing={0}>\n <Title order={2} className={classes.title} mt=\"md\">\n {props.displayName || \"Lesson\"}\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n {props.description || \"No description\"}\n </Text>\n </Stack>\n\n <Stack ml=\"auto\">\n <SplitButton\n href={props.href}\n onCopyLinkClick={props.onCopyLinkClick}\n onExportDataClick={props.onExportDataClick}\n />\n </Stack>\n </Group>\n </Grid.Col>\n </Grid>\n <div>\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Stack>\n <StatsGroup data={[\n {\n title: \"LESSON COMPLETION\",\n value: percentageOfLessonsCompleted,\n unit: '%',\n },\n ]}/>\n\n {!props.trial && <Select\n clearable\n clearButtonLabel=\"Clear class selection\"\n size=\"sm\"\n placeholder=\"Select a class\"\n nothingFound=\"No options\"\n value={props.classId}\n onChange={props.onClassChange}\n icon={<IconCategory2/>}\n data={props.classes.map(g => {return {value: g.classId, label: g.name}})}\n />}\n\n <Stack spacing={0}>\n {!props.trial && <Tabs\n value={tab}\n data={[\n {label: \"By question\", value: \"question\"},\n {label: \"By student\", value: \"students\"},\n {label: \"By reflection\", value: \"reflections\"},\n ]}\n onChange={setTab}\n />}\n\n { (!!props.trial || tab === \"question\") && <QuestionStack\n loading={props.loading}\n items={props.questions}\n />}\n\n { (!props.trial && tab === \"reflections\") && <ReflectionTable\n loading={props.loading}\n items={props.reflections}\n /> }\n\n { (!props.trial && tab === \"students\") && <Table\n loading={props.loading}\n items={props.students}\n />}\n </Stack>\n </Stack>\n </div>\n </div>\n </Stack>\n </Container>\n )\n}","import * as React from 'react';\nimport { Table as MantineTable, Group, Text, ScrollArea, UnstyledButton } from '@mantine/core';\nimport {Link} from \"react-router-dom\";\nimport {PlaceholderBanner} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\n\n/**\n * Item\n */\nexport interface Item {\n lessonId: string,\n name: string;\n description: string\n href: string\n}\n\n/**\n * TableProps\n */\nexport interface TableProps {\n loading: boolean\n items: Item[];\n}\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No lessons to display\"\n description=\"We don't have any lessons to show you just yet.\"\n loading={props.loading}\n icon=\"lessons\"\n />\n }\n\n const rows = props.items.map((row) => (\n <tr key={row.lessonId}>\n <td>\n <UnstyledButton<typeof Link> component={Link} to={row.href}\n sx={(theme) => ({\n display: 'block',\n width: '100%',\n padding: theme.spacing.md,\n color: theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.black,\n\n '&:hover': {\n backgroundColor:\n theme.colorScheme === 'dark' ? theme.colors.dark[8] : theme.colors.gray[1],\n },\n })}>\n <Group>\n <div>\n <Text size=\"sm\" weight={500}>\n {row.name}\n </Text>\n <Text size=\"xs\" color=\"dimmed\">\n {row.description}\n </Text>\n </div>\n </Group>\n </UnstyledButton>\n </td>\n </tr>\n ));\n\n return (\n <ScrollArea.Autosize maxHeight={600}>\n <MantineTable horizontalSpacing={0} verticalSpacing={0} sx={{ minWidth: 700 }}>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea.Autosize>\n );\n}","import * as React from 'react';\nimport {\n createStyles,\n Badge,\n Title,\n Text,\n Container, Stack, Grid, Autocomplete, LoadingOverlay,\n} from '@mantine/core';\nimport {Table, Item} from \"./Table\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n\n description: {\n maxWidth: 600,\n },\n}));\n\n/**\n * LessonItem\n */\nexport type LessonItem = Item\n\n/**\n * LessonsProps\n */\nexport type LessonsProps = {\n loading: boolean\n lessons: LessonItem[]\n\n onAutocompleteChange: (next: string) => void\n}\n\n/**\n * Lessons\n * @param props\n * @constructor\n */\nexport const Lessons = (props: LessonsProps) => {\n const { classes } = useStyles();\n return (\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <Badge variant=\"filled\" size=\"lg\">\n Lessons\n </Badge>\n <Title order={2} className={classes.title} mt=\"md\">\n Lessons\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n Explore units of instruction and/or see corresponding class progress.\n </Text>\n </Grid.Col>\n </Grid>\n\n <Autocomplete\n placeholder=\"Search for a lesson that fits your needs\"\n data={props.lessons.map(item => item.name)}\n onChange={props.onAutocompleteChange}\n />\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n <Table\n loading={props.loading}\n items={props.lessons}\n />\n </div>\n </Stack>\n </Container>\n )\n}","import * as React from 'react';\nimport {\n createStyles,\n Paper,\n Title,\n Text,\n TextInput,\n Button,\n Container,\n Group,\n Anchor,\n Center,\n Box,\n} from '@mantine/core';\nimport {IconPointer} from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 22,\n fontWeight: 900,\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\n },\n\n controls: {\n [theme.fn.smallerThan('xs')]: {\n flexDirection: 'column-reverse',\n },\n },\n\n control: {\n [theme.fn.smallerThan('xs')]: {\n width: '100%',\n textAlign: 'center',\n },\n },\n}));\n\nexport type AccessCodeProps = {\n value: string\n peopleLink: string\n onCopyCode: () => void;\n}\n\nexport function AccessCode(props: AccessCodeProps) {\n const { classes } = useStyles();\n\n return (\n <Container mx=\"0\" px=\"0\" size={460} my={30}>\n <Title className={classes.title}>\n Access code\n </Title>\n <Text color=\"dimmed\" size=\"sm\">\n Grant access to join your organization\n </Text>\n\n <Paper withBorder shadow=\"md\" p={30} radius=\"md\" mt=\"xl\">\n <TextInput value={props.value} readOnly/>\n <Group position=\"apart\" mt=\"lg\" className={classes.controls}>\n <Anchor<typeof Link> component={Link} to={props.peopleLink}\n color=\"dimmed\" size=\"sm\" className={classes.control}>\n <Center inline>\n <IconPointer size={12} stroke={1.5} />\n <Box ml={5}>See people in my organization</Box>\n </Center>\n </Anchor>\n <Button onClick={props.onCopyCode} className={classes.control}>Copy code</Button>\n </Group>\n </Paper>\n </Container>\n );\n}","import {IconArrowLeft} from \"@tabler/icons\";\nimport * as React from 'react';\nimport {\n createStyles,\n Title,\n Text,\n Container, Stack, Grid,\n Badge,\n ActionIcon,\n LoadingOverlay,\n UnstyledButton,\n} from '@mantine/core';\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {AccessCode} from \"./AccessCode\";\n\nconst monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\n];\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n description: {\n maxWidth: 600,\n },\n wrapper: {\n position: 'relative',\n marginBottom: 30,\n },\n\n dropzone: {\n borderWidth: 1,\n paddingBottom: 50,\n },\n\n icon: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[3] : theme.colors.gray[4],\n },\n\n control: {\n position: 'absolute',\n width: 250,\n left: 'calc(50% - 125px)',\n bottom: -20,\n },\n}));\n\n/**\n * OrganizationProps\n */\nexport type OrganizationProps = {\n loading: boolean\n displayName: string\n description: string\n numberOfStudents: number\n numberOfEducators: number\n percentageOfAccountsActive: number\n accessCode: string\n peopleLink: string\n\n onBackClick: () => void;\n onCopyAccessCode: () => void;\n}\n\n/**\n * Organization\n * @param props\n * @constructor\n */\nexport const Organization = (props: OrganizationProps) => {\n const { classes } = useStyles();\n return (\n <>\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <UnstyledButton onClick={props.onBackClick}>\n <Badge\n variant=\"filled\"\n leftSection={<ActionIcon color=\"blue\" size=\"xs\" radius=\"xl\" variant=\"filled\">\n <IconArrowLeft size={14} />\n </ActionIcon>}\n size=\"lg\">\n Go Back\n </Badge>\n </UnstyledButton>\n <Title order={2} className={classes.title} mt=\"md\">\n {props.displayName || \"Overview\"}\n </Title>\n\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">\n {props.description || \"No description\"}\n </Text>\n </Grid.Col>\n </Grid>\n\n <AccessCode value={props.accessCode} onCopyCode={props.onCopyAccessCode} peopleLink={props.peopleLink} />\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n\n <Stack spacing=\"sm\">\n <StatsGroup data={[\n {\n title: \"# OF STUDENTS\",\n value: props.numberOfStudents || 0,\n },\n {\n title: \"# OF EDUCATORS\",\n value: props.numberOfEducators || 0,\n },\n {\n title: `ACTIVE USERS (${monthNames[(new Date()).getMonth()]})`,\n value: props.percentageOfAccountsActive,\n unit: \"%\",\n },\n ]}/>\n </Stack>\n </div>\n </Stack>\n </Container>\n </>\n )\n}","import * as React from 'react'\nimport { createStyles, Button, Menu, Group, ActionIcon } from '@mantine/core';\nimport {\n IconChevronDown,\n IconPlaylistAdd,\n IconClipboardCopy\n} from '@tabler/icons';\n\nconst useStyles = createStyles((theme) => ({\n button: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n marginLeft: 0,\n marginRight: 0,\n },\n\n menuControl: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n border: 0,\n borderLeft: `1px solid ${theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white}`,\n },\n}));\n\nexport type SplitButtonProps = {\n withOrganizationLink?: boolean\n onAddUsersClick: () => void;\n onCopyOrganizationLinkClick: () => void;\n}\n\nexport const SplitButton = (props: SplitButtonProps) => {\n const { classes, theme } = useStyles();\n const menuIconColor = theme.colors[theme.primaryColor][theme.colorScheme === 'dark' ? 5 : 6];\n\n const hasMenu = !!props.withOrganizationLink\n\n return (\n <Group noWrap spacing={0}>\n <Button\n className={hasMenu ? classes.button: \"\"}\n leftIcon={<IconPlaylistAdd size={14} />}\n onClick={props.onAddUsersClick}\n >\n Add members\n </Button>\n { hasMenu && <Menu transition=\"pop\" position=\"bottom-end\">\n <Menu.Target>\n <ActionIcon\n variant=\"filled\"\n color={theme.primaryColor}\n size={36}\n className={classes.menuControl}\n >\n <IconChevronDown size={16} stroke={1.5} />\n </ActionIcon>\n </Menu.Target>\n <Menu.Dropdown>\n { !!props.withOrganizationLink && <Menu.Item\n icon={<IconClipboardCopy size={16} stroke={1.5} color={menuIconColor} />}\n onClick={props.onCopyOrganizationLinkClick}\n >\n Copy organization link\n </Menu.Item> }\n </Menu.Dropdown>\n </Menu> }\n </Group>\n );\n}","import {openConfirmModal} from \"@mantine/modals\";\nimport * as React from 'react';\nimport {\n Avatar,\n Table as MantineTable,\n Group,\n Text,\n ActionIcon,\n UnstyledButton,\n ScrollArea,\n Select,\n Box\n} from '@mantine/core';\nimport {IconCheck, IconTrash} from '@tabler/icons';\nimport {Link} from \"react-router-dom\";\nimport {\n PlaceholderBanner\n} from \"../../components/banners/PlaceholderBanner/PlaceholderBanner\";\nimport {relativeTimeFromDates} from \"../../utils/time\";\n\n/**\n * Item\n */\nexport type Item = {\n userId: string,\n avatar: string,\n email: string,\n givenName: string,\n familyName: string,\n lastActivity: Date | null\n readonly: boolean\n hasAccount: boolean\n isAdmin: boolean\n isGroupAdmin: boolean\n numberOfClasses: number\n href: string\n}\n\n/**\n * TableProps\n */\nexport interface TableProps {\n loading: boolean\n items: Item[];\n\n onDelete?: (user: Item) => void\n onRoleChange?: (user: Item, role: string | null) => void;\n}\n\n/**\n * Table\n * @param props\n * @constructor\n */\nexport function Table(props: TableProps) {\n if(props.items.length === 0){\n return <PlaceholderBanner\n title=\"No people to display\"\n description=\"You have not rostered any people yet.\"\n loading={props.loading}\n icon=\"groups\"\n />\n }\n\n const openDeleteModal = (student: Item) => openConfirmModal({\n title: `Delete \"${student.givenName && student.familyName ? `${student.givenName} ${student.familyName}` : student.email}\"?`,\n centered: true,\n children: (\n <Text size=\"sm\">\n Are you sure you want to delete this person? This action is destructive and you will have\n to contact support to restore your data.\n </Text>\n ),\n labels: { confirm: 'Delete', cancel: \"No don't delete them\" },\n confirmProps: { color: 'red' },\n onConfirm: () => props.onDelete && props.onDelete(student),\n });\n\n const rows = props.items.map((row) => (\n <tr key={row.email}>\n <td>\n <UnstyledButton<typeof Link> component={Link} to={row.href}>\n <Group spacing=\"sm\">\n <Avatar size={40} src={row.avatar} radius={40} />\n <div>\n <Text size=\"sm\" weight={500}>\n {row.givenName && row.familyName ? `${row.givenName} ${row.familyName}` : row.email}\n </Text>\n <Text size=\"xs\" color=\"dimmed\">\n {row.email}\n </Text>\n </div>\n </Group>\n </UnstyledButton>\n </td>\n <td>\n <Box maw={150}>\n <Select\n size=\"sm\"\n value={row.isAdmin ? \"admin\" : row.isGroupAdmin ? \"educator\" : \"student\"}\n onChange={(value) => props.onRoleChange && props.onRoleChange(row, value)}\n data={[{value: \"student\", label: \"Student\"}, {value: \"educator\", label: \"Educator\"}, {value: \"admin\", label: \"Admin\"}]}\n />\n </Box>\n </td>\n <td>{row.hasAccount && <IconCheck color=\"green\" />}</td>\n <td>{row.numberOfClasses}</td>\n <td>{row.lastActivity ? relativeTimeFromDates(row.lastActivity) : \"\"}</td>\n <td>\n <Group noWrap spacing={0} position=\"right\">\n { !row.readonly && !!props.onDelete && <ActionIcon color=\"red\">\n <IconTrash onClick={() => openDeleteModal(row)} size={16} stroke={1.5} />\n </ActionIcon> }\n </Group>\n </td>\n </tr>\n ));\n\n return (\n <ScrollArea>\n <MantineTable verticalSpacing={20} sx={{ minWidth: 700 }} highlightOnHover striped>\n <thead>\n <tr>\n <th>Name</th>\n <th>Role</th>\n <th>Account Created?</th>\n <th># of Classes</th>\n <th>Last Active</th>\n <th></th>\n </tr>\n </thead>\n <tbody>{rows}</tbody>\n </MantineTable>\n </ScrollArea>\n );\n}","import {IconArrowLeft, IconCloudUpload, IconX, IconDownload} from \"@tabler/icons\";\nimport {ParseResult} from \"papaparse\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport {\n createStyles,\n Title,\n Text,\n Container, Stack, Grid,\n Drawer,\n Button, TextInput, Badge,\n ActionIcon,\n Group, Divider, LoadingOverlay, Autocomplete,\n UnstyledButton,\n} from '@mantine/core';\nimport { Dropzone, MIME_TYPES } from '@mantine/dropzone';\nimport { useForm } from '@mantine/form';\nimport * as papa from 'papaparse'\nimport {StatsGroup} from \"../../components/data/StatsGroup/StatsGroup\";\nimport {SplitButton} from \"./SplitButton\";\nimport {Table, Item} from \"./Table\";\n\nconst useStyles = createStyles((theme) => ({\n title: {\n fontSize: 34,\n fontWeight: 900,\n [theme.fn.smallerThan('sm')]: {\n fontSize: 24,\n },\n },\n description: {\n maxWidth: 600,\n },\n wrapper: {\n position: 'relative',\n marginBottom: 30,\n },\n\n dropzone: {\n borderWidth: 1,\n paddingBottom: 50,\n },\n\n icon: {\n color: theme.colorScheme === 'dark' ? theme.colors.dark[3] : theme.colors.gray[4],\n },\n\n control: {\n position: 'absolute',\n width: 250,\n left: 'calc(50% - 125px)',\n bottom: -20,\n },\n}));\n\n/**\n * UserItem\n */\nexport type UserItem = Item\n\n/**\n * PeopleProps\n */\nexport type PeopleProps = {\n loading: boolean\n users: UserItem[]\n percentageOfAccountsCreated: number\n percentageRostered: number\n withOrganizationLink?: boolean\n\n onBackClick: () => void;\n onCreateUsers: (users: UserItem[]) => void;\n onDeleteUser: (user: UserItem) => void;\n onChangeUserRole: (user: UserItem, role: string | null) => void;\n onCopyLinkClick: () => void;\n onAutocompleteChange: (next: string) => void\n}\n\n/**\n * Class\n * @param props\n * @constructor\n */\nexport const People = (props: PeopleProps) => {\n const { classes } = useStyles();\n const form = useForm({\n initialValues: {\n userId: '',\n email: '',\n givenName: '',\n familyName: '',\n avatar: '',\n role: '',\n readonly: false,\n lastActivity: null,\n hasAccount: false,\n numberOfClasses: 0,\n href: \"\",\n isAdmin: false,\n isGroupAdmin: false,\n },\n\n validate: {\n email: (value) => /^\\S+@\\S+$/.test(value) && props.users.filter(u => u.email === value).length === 0 ? null : 'Invalid email',\n },\n });\n const [opened, setOpened] = useState(false);\n return (\n <>\n <Drawer\n opened={opened}\n onClose={() => setOpened(false)}\n title={<Title size=\"h5\">Add members</Title>}\n padding=\"xl\"\n size=\"xl\"\n >\n <Stack spacing=\"md\">\n <DropzoneButton {...props} close={() => setOpened(false)} />\n\n <Divider label=\"or\" labelPosition=\"center\" my=\"md\" variant=\"dashed\"/>\n\n <form onSubmit={form.onSubmit(() => {\n const values = form.values\n form.reset()\n setOpened(false)\n props.onCreateUsers && props.onCreateUsers([values])\n })}>\n <Stack>\n <TextInput\n withAsterisk\n label=\"Email\"\n placeholder=\"Email\"\n {...form.getInputProps('email')}\n />\n <Group grow>\n <TextInput\n label=\"Given name\"\n placeholder=\"Given name\"\n {...form.getInputProps('givenName')}\n />\n <TextInput\n label=\"Family name\"\n placeholder=\"Family name\"\n {...form.getInputProps('familyName')}\n />\n </Group>\n <Button type=\"submit\" fullWidth mt=\"md\">\n Submit\n </Button>\n </Stack>\n </form>\n </Stack>\n </Drawer>\n <Container size=\"lg\" py=\"xl\">\n <Stack spacing=\"md\">\n <Grid>\n <Grid.Col sm=\"auto\">\n <UnstyledButton onClick={props.onBackClick}>\n <Badge\n variant=\"filled\"\n leftSection={<ActionIcon color=\"blue\" size=\"xs\" radius=\"xl\" variant=\"filled\">\n <IconArrowLeft size={14} />\n </ActionIcon>}\n size=\"lg\">\n Go Back\n </Badge>\n </UnstyledButton>\n <Title order={2} className={classes.title} mt=\"md\">People</Title>\n <Text color=\"dimmed\" className={classes.description} mt=\"sm\">Manage members of your organization</Text>\n </Grid.Col>\n <Grid.Col sm=\"content\">\n { !props.loading && <SplitButton\n withOrganizationLink={props.withOrganizationLink}\n onAddUsersClick={() => setOpened(true)}\n onCopyOrganizationLinkClick={props.onCopyLinkClick}\n />}\n </Grid.Col>\n </Grid>\n\n <div style={{ position: 'relative' }}>\n <LoadingOverlay visible={props.loading} overlayBlur={2} />\n\n <Stack spacing=\"sm\">\n <StatsGroup data={[\n {\n title: \"# OF PEOPLE\",\n value: props.users.length,\n },\n {\n title: \"ACCOUNT CREATION\",\n value: props.percentageOfAccountsCreated,\n unit: \"%\",\n },\n {\n title: \"PERCENTAGE ROSTERED\",\n unit: \"%\",\n value: props.percentageRostered,\n },\n ]}/>\n\n <Autocomplete\n placeholder=\"Search for a people in your organization\"\n data={props.users.map(item => item.email)}\n onChange={props.onAutocompleteChange}\n />\n\n <Table\n loading={props.loading}\n items={props.users}\n onDelete={props.onDeleteUser}\n onRoleChange={props.onChangeUserRole}\n />\n </Stack>\n </div>\n </Stack>\n </Container>\n </>\n )\n}\n\nconst DropzoneButton = (props: PeopleProps & {close: () => void}) => {\n const { classes, theme } = useStyles();\n const openRef = React.useRef<() => void>(null);\n const [loading, setLoading] = React.useState(false)\n const onDrop = React.useCallback((acceptedFiles: File[]) => {\n setLoading(true)\n acceptedFiles.forEach((file) => {\n papa.parse(file, {\n download: true,\n header: true,\n dynamicTyping: true,\n skipEmptyLines: true,\n worker: true,\n complete: function(results: ParseResult<UserItem>) {\n const data = results.data\n .filter(v => /^\\S+@\\S+$/.test(v.email) && props.users.filter(u => u.email === v.email).length === 0)\n data.length > 0 && props.onCreateUsers && props.onCreateUsers(data)\n setLoading(false)\n props.close()\n }\n })\n })\n\n }, [])\n\n return (\n <div className={classes.wrapper}>\n <Dropzone\n loading={loading}\n openRef={openRef}\n onDrop={onDrop}\n className={classes.dropzone}\n radius=\"md\"\n accept={[MIME_TYPES.csv]}\n maxSize={5 * 1024 ** 2}\n >\n <div style={{ pointerEvents: 'none' }}>\n <Group position=\"center\">\n <Dropzone.Accept>\n <IconDownload size={50} color={theme.colors[theme.primaryColor][6]} stroke={1.5} />\n </Dropzone.Accept>\n <Dropzone.Reject>\n <IconX size={50} color={theme.colors.red[6]} stroke={1.5} />\n </Dropzone.Reject>\n <Dropzone.Idle>\n <IconCloudUpload\n size={50}\n color={theme.colorScheme === 'dark' ? theme.colors.dark[0] : theme.black}\n stroke={1.5}\n />\n </Dropzone.Idle>\n </Group>\n\n <Text align=\"center\" weight={700} size=\"lg\" mt=\"xl\">\n <Dropzone.Accept>Drop files here</Dropzone.Accept>\n <Dropzone.Reject>Csv file less than 5mb</Dropzone.Reject>\n <Dropzone.Idle>Upload multiple</Dropzone.Idle>\n </Text>\n <Text align=\"center\" size=\"sm\" mt=\"xs\" color=\"dimmed\">\n Drag&apos;n&apos;drop files here to upload. We can accept only <i>.csv</i> files that\n are less than 5mb in size.\n </Text>\n </div>\n </Dropzone>\n\n <Button className={classes.control} size=\"md\" radius=\"xl\" onClick={() => openRef.current?.()}>\n Select file\n </Button>\n </div>\n );\n}","import * as React from \"react\";\nimport {\n createStyles,\n Text,\n Title,\n SimpleGrid,\n TextInput,\n Button,\n Group,\n} from '@mantine/core';\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n minHeight: 400,\n boxSizing: 'border-box',\n backgroundImage: `linear-gradient(-60deg, ${theme.colors[theme.primaryColor][4]} 0%, ${\n theme.colors[theme.primaryColor][7]\n } 100%)`,\n borderRadius: theme.radius.md,\n padding: theme.spacing.xl * 2.5,\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n padding: theme.spacing.xl * 1.5,\n },\n },\n\n title: {\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\n color: theme.white,\n lineHeight: 1,\n },\n\n description: {\n color: theme.colors[theme.primaryColor][0],\n maxWidth: 300,\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n maxWidth: '100%',\n },\n },\n\n form: {\n backgroundColor: theme.white,\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n boxShadow: theme.shadows.lg,\n },\n\n social: {\n color: theme.white,\n\n '&:hover': {\n color: theme.colors[theme.primaryColor][1],\n },\n },\n\n input: {\n backgroundColor: theme.white,\n borderColor: theme.colors.gray[4],\n color: theme.black,\n\n '&::placeholder': {\n color: theme.colors.gray[5],\n },\n },\n\n inputLabel: {\n color: theme.black,\n },\n\n control: {\n backgroundColor: theme.colors[theme.primaryColor][6],\n },\n}));\n\n/**\n * StartAnonymousLessonProps\n */\nexport type StartAnonymousLessonProps = {\n title: string\n description: string\n educatorName: string\n studentName?: string\n onStart: () => void;\n}\n\n/**\n * StartAnonymousLesson\n * @param props\n * @constructor\n */\nexport const StartAnonymousLesson = (props: StartAnonymousLessonProps) => {\n const { classes } = useStyles();\n\n return (\n <div className={classes.wrapper}>\n <SimpleGrid cols={2} spacing={50} breakpoints={[{ maxWidth: 'sm', cols: 1 }]}>\n <div>\n <Title className={classes.title}>{props.title}</Title>\n <Text weight=\"bold\" className={classes.description} mt=\"sm\" mb={30}>\n Instructor: {props.educatorName}\n </Text>\n <Text className={classes.description} mt=\"sm\" mb={30}>\n {props.description}\n </Text>\n </div>\n <div className={classes.form}>\n <TextInput\n label=\"Name\"\n placeholder=\"John Doe\"\n defaultValue={props.studentName}\n readOnly={!!props.studentName}\n required\n classNames={{ input: classes.input, label: classes.inputLabel }}\n />\n\n <Group position=\"right\" mt=\"md\">\n <Button onClick={props.onStart} className={classes.control}>{!props.studentName ? \"Start lesson\" : \"Continue lesson\"}</Button>\n </Group>\n </div>\n </SimpleGrid>\n </div>\n );\n}","import * as React from \"react\";\nimport {Card, Avatar, Text, Progress, Badge, Group, ActionIcon, SimpleGrid, ThemeIcon, UnstyledButton} from '@mantine/core';\nimport {IconBadge, IconCopy} from '@tabler/icons';\nimport AvatarInit from 'avatar-initials';\nimport {Link} from \"react-router-dom\";\n\n/**\n * BadgeGridProps\n */\nexport type BadgeGridProps = {\n badges: TaskCardProps[]\n}\n\n/**\n * BadgeGrid\n * @param props\n * @constructor\n */\nexport const BadgeGrid = (props: BadgeGridProps) => {\n const badges = props.badges.map(b => <TaskCard key={b.title} {...b}/>)\n return <SimpleGrid cols={3} breakpoints={[{ maxWidth: 'sm', cols: 1 }]}>\n {badges}\n </SimpleGrid>\n}\n\nexport type TaskCardProps = {\n title: string\n description: string\n lessonsCompleted: number\n lessonsTotal: number\n href: string\n users: {name: string}[]\n onCopy: () => void\n}\n\nexport function TaskCard(props: TaskCardProps) {\n const avatars = props.users.slice(0, 3).map((u, i) => {\n const fullName = u.name\n let initials = fullName.split(/[ -]/).map((n) => n.charAt(0)).join('');\n const src = AvatarInit.initialAvatar({\n background: '#f4f6f7',\n color: '#888888',\n fontFamily: \"'Lato', 'Lato-Regular', 'Helvetica Neue'\",\n fontSize: 10,\n fontWeight: 250,\n size: 30,\n initials: initials,\n })\n\n return <Avatar key={i} src={src} radius=\"xl\" />\n })\n\n const remainingUsers = props.users.slice(3).length\n const isComplete = props.lessonsCompleted >= props.lessonsTotal\n\n return (\n <Card withBorder radius=\"md\">\n <Group position=\"apart\">\n <ThemeIcon size=\"lg\" variant=\"gradient\" gradient={{ from: 'indigo', to: 'cyan' }}>\n <IconBadge size={20} />\n </ThemeIcon>\n {isComplete && <Badge variant=\"gradient\" gradient={{ from: 'indigo', to: 'cyan' }}>Complete</Badge>}\n {!isComplete && <Badge variant=\"filled\">Incomplete</Badge>}\n </Group>\n\n <UnstyledButton<typeof Link> to={props.href} mt=\"md\" sx={{\":hover\": {textDecoration: \"underline\"}}}>\n <Text size=\"lg\" weight={500}>\n {props.title}\n </Text>\n </UnstyledButton>\n <Text size=\"sm\" color=\"dimmed\" mt={5}>\n {props.description}\n </Text>\n\n <Text color=\"dimmed\" size=\"sm\" mt=\"md\">\n Lessons completed:{' '}\n <Text\n span\n weight={500}\n sx={(theme) => ({ color: theme.colorScheme === 'dark' ? theme.white : theme.black })}\n >\n {props.lessonsCompleted}/{props.lessonsTotal}\n </Text>\n </Text>\n\n <Progress value={(props.lessonsCompleted / props.lessonsTotal) * 100} mt={5} />\n\n <Group position=\"apart\" mt=\"md\">\n <Avatar.Group spacing=\"sm\">\n {avatars}\n {!!remainingUsers && <Avatar radius=\"xl\">+{remainingUsers}</Avatar> }\n </Avatar.Group>\n <ActionIcon onClick={props.onCopy} variant=\"default\">\n <IconCopy size={18} />\n </ActionIcon>\n </Group>\n </Card>\n );\n}","import * as React from 'react';\nimport {Badge, Container, Stack} from '@mantine/core';\nimport {BadgeGrid, BadgeGridProps} from \"../../components/grid/BadgeGrid/BadgeGrid\";\nimport {UserInfo} from \"../../components/users/UserInfo/UserInfo\";\nimport {TenantBanner} from \"../../components/banners/TenantBanner/TenantBanner\";\n\n/**\n * TrialHomeProps\n */\nexport type TrialHomeProps = BadgeGridProps & {\n loading: boolean\n name: string\n daysRemaining: number\n upgradeHref: string\n}\n\n/**\n * TrialHome\n * @param props\n * @constructor\n */\nexport const TrialHome = (props: TrialHomeProps) => {\n return <Container size=\"lg\">\n <Badge>{props.daysRemaining} day{props.daysRemaining !== 1 ? \"s\" : \"\"} left</Badge>\n <Stack spacing=\"sm\">\n <Stack spacing={0}>\n <UserInfo\n variant=\"compact\"\n name={props.name}\n impactStatement=\"\"\n />\n <TenantBanner\n title=\"Trial Account\"\n description=\"Welcome to Local Civics! You are currently interacting with our trial experience.\"\n image=\"https://cdn.localcivics.io/hub/landing.jpg\"\n action={\n {\n label: \"UPGRADE NOW\",\n link: props.upgradeHref,\n }\n }\n />\n </Stack>\n <BadgeGrid badges={props.badges}/>\n </Stack>\n </Container>\n}","import {TablerIcon} from \"@tabler/icons\";\nimport * as React from \"react\";\nimport {UnstyledButton, Checkbox, Text, SimpleGrid, createStyles, ThemeIcon} from '@mantine/core';\nimport { useUncontrolled } from '@mantine/hooks';\n\nconst useStyles = createStyles((theme, { checked }: { checked: boolean }) => ({\n button: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n transition: 'background-color 150ms ease, border-color 150ms ease',\n border: `1px solid ${\n checked\n ? theme.fn.variant({ variant: 'outline', color: theme.primaryColor }).border\n : theme.colorScheme === 'dark'\n ? theme.colors.dark[8]\n : theme.colors.gray[3]\n }`,\n borderRadius: theme.radius.sm,\n padding: theme.spacing.lg,\n backgroundColor: checked\n ? theme.fn.variant({ variant: 'light', color: theme.primaryColor }).background\n : theme.colorScheme === 'dark'\n ? theme.colors.dark[8]\n : theme.white,\n },\n\n body: {\n flex: 1,\n marginLeft: theme.spacing.md,\n },\n}));\n\ninterface ImageCheckboxProps {\n checked?: boolean;\n defaultChecked?: boolean;\n onChange?(checked: boolean): void;\n title: string;\n description: string;\n icon: TablerIcon;\n}\n\nexport function ImageCheckbox({\n checked,\n defaultChecked,\n onChange,\n title,\n description,\n className,\n icon: Icon,\n ...others\n }: ImageCheckboxProps & Omit<React.ComponentPropsWithoutRef<'button'>, keyof ImageCheckboxProps>) {\n const [value, handleChange] = useUncontrolled({\n value: checked,\n defaultValue: defaultChecked,\n finalValue: false,\n onChange,\n });\n\n const { classes, cx } = useStyles({ checked: value });\n\n return (\n <UnstyledButton\n {...others}\n onClick={() => handleChange(!value)}\n className={cx(classes.button, className)}\n >\n <ThemeIcon variant=\"light\" size=\"lg\" color=\"blue\">\n <Icon size={40}/>\n </ThemeIcon>\n\n <div className={classes.body}>\n <Text color=\"dimmed\" size=\"xs\" sx={{ lineHeight: 1 }} mb={5}>\n {description}\n </Text>\n <Text weight={500} size=\"sm\" sx={{ lineHeight: 1 }}>\n {title}\n </Text>\n </div>\n\n <Checkbox\n checked={value}\n onChange={() => {}}\n tabIndex={-1}\n styles={{ input: { cursor: 'pointer' } }}\n />\n </UnstyledButton>\n );\n}\n\nexport type SelectGridProps = {\n items: {description: string, title: string, icon: TablerIcon}[]\n onChange: (title: string, checked: boolean) => void;\n}\n\nexport function SelectGrid(props: SelectGridProps) {\n const items = props.items.map((item) => <ImageCheckbox\n {...item}\n key={item.title}\n onChange={(checked) => props.onChange(item.title, checked)}\n />);\n return (\n <SimpleGrid\n cols={3}\n breakpoints={[\n { maxWidth: 'md', cols: 2 },\n { maxWidth: 'sm', cols: 1 },\n ]}\n >\n {items}\n </SimpleGrid>\n );\n}","import * as React from \"react\";\nimport {\n createStyles,\n Text,\n Title,\n SimpleGrid,\n TextInput,\n Button,\n Group,\n Image,\n} from '@mantine/core';\nimport {\n IconPodium,\n IconHistory,\n IconLego, IconAffiliate, IconGrowth, IconTools, IconNews\n} from '@tabler/icons';\nimport {SelectGrid} from \"../../components/grid/SelectGrid/SelectGrid\";\n\nconst useStyles = createStyles((theme) => ({\n wrapper: {\n minHeight: 400,\n height: '100%',\n boxSizing: 'border-box',\n backgroundImage: `linear-gradient(-60deg, ${theme.colors[theme.primaryColor][4]} 0%, ${\n theme.colors[theme.primaryColor][7]\n } 100%)`,\n padding: theme.spacing.xl * 2.5,\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n padding: theme.spacing.xl * 1.5,\n },\n },\n\n title: {\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\n color: theme.white,\n lineHeight: 1,\n },\n\n description: {\n color: theme.colors[theme.primaryColor][0],\n maxWidth: 500,\n\n [`@media (max-width: ${theme.breakpoints.sm}px)`]: {\n maxWidth: '100%',\n },\n },\n\n form: {\n backgroundColor: theme.white,\n padding: theme.spacing.xl,\n borderRadius: theme.radius.md,\n boxShadow: theme.shadows.lg,\n },\n\n social: {\n color: theme.white,\n\n '&:hover': {\n color: theme.colors[theme.primaryColor][1],\n },\n },\n\n input: {\n backgroundColor: theme.white,\n borderColor: theme.colors.gray[4],\n color: theme.black,\n\n '&::placeholder': {\n color: theme.colors.gray[5],\n },\n },\n\n inputLabel: {\n color: theme.black,\n },\n\n control: {\n backgroundColor: theme.colors[theme.primaryColor][6],\n },\n}));\n\nconst OPTIONS = [{ description: 'high school', title: 'High school', icon: IconHistory},\n { description: 'k - 8th', title: 'K - 8th', icon: IconLego },\n { description: 'civics', title: 'Civics', icon: IconNews },\n { description: 'project-based learning', title: 'Project-based learning', icon: IconTools },\n { description: 'college', title: 'College', icon: IconPodium },\n { description: 'career', title: 'Career', icon: IconAffiliate },\n { description: 'student leadership', title: 'Student leadership', icon: IconGrowth },]\n\n/**\n * TrialRegistrationProps\n */\nexport type TrialRegistrationProps = {\n onBegin: (data: {firstName: string, lastName: string, interests: string[]}) => void\n}\n\n/**\n * TrialRegistration\n * @param props\n * @constructor\n */\nexport const TrialRegistration = (props: TrialRegistrationProps) => {\n const { classes } = useStyles();\n const [firstName, setFirstName] = React.useState(\"\")\n const [lastName, setLastName] = React.useState(\"\")\n const [interests, setInterests] = React.useState({})\n\n return (\n <div className={classes.wrapper}>\n <SimpleGrid maw={960} ml=\"auto\" mr=\"auto\" cols={1} spacing={15} breakpoints={[{ maxWidth: 'sm', cols: 1 }]}>\n <Group spacing=\"sm\">\n <Image\n height={100}\n width=\"auto\"\n fit=\"contain\"\n src=\"https://cdn.localcivics.io/brand/l.png\"\n />\n <div>\n <Title className={classes.title}>Trial Educator</Title>\n <Text className={classes.description} mt=\"sm\">\n Try out a few of the features we can bring to your classroom. No commitment required.\n </Text>\n </div>\n </Group>\n <div className={classes.form}>\n <Group mb=\"md\" spacing=\"md\" grow>\n <TextInput\n label=\"First Name\"\n placeholder=\"John\"\n required\n classNames={{ input: classes.input, label: classes.inputLabel }}\n onChange={(e) => setFirstName(e.target.value)}\n />\n <TextInput\n label=\"Last Name\"\n placeholder=\"Doe\"\n required\n classNames={{ input: classes.input, label: classes.inputLabel }}\n onChange={(e) => setLastName(e.target.value)}\n />\n </Group>\n\n <Text size={14} weight={500} mb=\"md\" mt=\"xl\">\n What are you interested in teaching?\n </Text>\n <SelectGrid\n items={OPTIONS}\n onChange={(e, checked) => setInterests({...interests, [e]: checked})}\n />\n\n <Group position=\"right\" mt=\"md\">\n <Button\n onClick={() => props.onBegin({firstName, lastName, interests: Object.keys(interests)})}\n className={classes.control}>Begin trial</Button>\n </Group>\n </div>\n </SimpleGrid>\n </div>\n );\n}","import * as React from 'react';\nimport {createEmotionCache, MantineProvider} from '@mantine/core';\nimport { ModalsProvider } from '@mantine/modals';\nimport {NotificationsProvider} from \"@mantine/notifications\";\n\nconst mycCache = createEmotionCache({\n key: 'mantine',\n prepend: false\n});\n\n/**\n * AdminProviderProps\n */\nexport interface AdminProviderProps {\n notificationLimit?: number\n children: React.ReactNode\n}\n\n/**\n * AdminProvider\n * @constructor\n * @param props\n */\nexport const AdminProvider = (props: AdminProviderProps) => {\n return <MantineProvider\n theme={{\n loader: \"bars\"\n }}\n withNormalizeCSS withGlobalStyles emotionCache={mycCache}>\n <NotificationsProvider limit={props.notificationLimit || 5}>\n <ModalsProvider>\n { props.children }\n </ModalsProvider>\n </NotificationsProvider>\n </MantineProvider>\n}","import {Loader, Center, ActionIcon, AppShell, Container, createStyles, Group, Image, Text, Title} from \"@mantine/core\";\nimport {IconBrandFacebook, IconBrandInstagram, IconBrandLinkedin} from \"@tabler/icons\";\nimport {useState} from \"react\";\nimport * as React from 'react';\nimport type {AccountItem} from \"../../components/users/SwitchAccount/SwitchAccount\";\nimport {SwitchAccount} from \"../../components/users/SwitchAccount/SwitchAccount\"\nimport {Navbar, NavbarProps} from \"../../components/navigation/Navbar/Navbar\";\n\nconst useStyles = createStyles((theme, props: AppProps) => ({\n footer: {\n paddingTop: theme.spacing.md,\n paddingBottom: theme.spacing.md,\n paddingLeft: props.navbar ? theme.spacing.md : 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[0],\n borderTop: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.colors.gray[2]\n }`,\n\n [theme.fn.largerThan('sm')]: {\n paddingTop: theme.spacing.xl * 2,\n paddingBottom: theme.spacing.xl * 2,\n paddingLeft: props.navbar ? theme.spacing.xl * 13 : 0,\n }\n },\n\n logo: {\n maxWidth: 200,\n\n [theme.fn.smallerThan('sm')]: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n },\n\n description: {\n marginTop: 5,\n\n [theme.fn.smallerThan('sm')]: {\n marginTop: theme.spacing.xs,\n textAlign: 'center',\n },\n },\n\n inner: {\n display: 'flex',\n justifyContent: 'space-between',\n\n [theme.fn.smallerThan('sm')]: {\n flexDirection: 'column',\n alignItems: 'center',\n },\n },\n\n groups: {\n display: 'flex',\n flexWrap: 'wrap',\n\n [theme.fn.smallerThan('sm')]: {\n display: 'none',\n },\n },\n\n wrapper: {\n width: 160,\n },\n\n link: {\n display: 'block',\n color: theme.colorScheme === 'dark' ? theme.colors.dark[1] : theme.colors.gray[6],\n fontSize: theme.fontSizes.sm,\n paddingTop: 3,\n paddingBottom: 3,\n\n '&:hover': {\n textDecoration: 'underline',\n },\n },\n\n title: {\n fontSize: theme.fontSizes.md,\n fontWeight: 700,\n fontFamily: `Greycliff CF, ${theme.fontFamily}`,\n marginBottom: theme.spacing.xs / 2,\n color: theme.colorScheme === 'dark' ? theme.white : theme.black,\n },\n\n afterFooter: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: theme.spacing.xl,\n paddingTop: theme.spacing.xl,\n paddingBottom: theme.spacing.xl,\n borderTop: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[2]\n }`,\n\n [theme.fn.smallerThan('sm')]: {\n flexDirection: 'column',\n },\n },\n\n social: {\n [theme.fn.smallerThan('sm')]: {\n marginTop: theme.spacing.xs,\n },\n },\n}));\n\n/**\n * AppProps\n */\nexport type AppProps = {\n loading?: boolean\n account?: string\n accounts?: AccountItem[]\n\n navbar?: React.ReactElement<NavbarProps>\n page: React.ReactNode\n onAccountChange?: (account: string) => Promise<void>;\n}\n\n/**\n * App\n * @param props\n * @constructor\n */\nexport const App = (props: AppProps) => {\n const { classes } = useStyles(props);\n const account = useAccount(props.account, props.accounts, props.onAccountChange)\n return <AppShell\n padding=\"xs\"\n navbar={props.navbar && <Navbar\n {...props.navbar.props}\n onSwitchAccounts={account.accounts && account.accounts.length > 1 ? () => account.setChangeModalOpen(true) : undefined}\n />}\n footer={<>{!account.opened && <footer className={classes.footer}>\n <Container className={classes.inner}>\n <div className={classes.logo}>\n <Group spacing=\"xs\">\n <div style={{ width: 15 }}>\n <Image fit=\"contain\" src=\"https://cdn.localcivics.io/brand/l.png\"/>\n </div>\n <Title color=\"dimmed\" size=\"h5\">Local Civics</Title>\n </Group>\n <Text size=\"xs\" color=\"dimmed\" className={classes.description}>\n We connect students to powerful civic learning experiences.\n </Text>\n </div>\n <div className={classes.groups}>\n <div className={classes.wrapper}>\n <Text\n className={classes.link}\n component=\"a\"\n href=\"https://www.localcivics.io\"\n target=\"_blank\"\n >\n About\n </Text>\n <Text\n className={classes.link}\n component=\"a\"\n href=\"https://www.localcivics.io/terms-of-service\"\n target=\"_blank\"\n >\n Terms\n </Text>\n <Text\n className={classes.link}\n component=\"a\"\n href=\"https://www.localcivics.io/privacy-policy\"\n target=\"_blank\"\n >\n Privacy\n </Text>\n <Text\n className={classes.link}\n component=\"a\"\n href=\"https://localcivics.notion.site/Help-Center-b52300f587b64fc0a61f512686e7626d\"\n target=\"_blank\"\n >\n Help Center\n </Text>\n </div>\n </div>\n </Container>\n <Container className={classes.afterFooter}>\n <Text color=\"dimmed\" size=\"sm\">\n © {new Date().getFullYear()} Local Civics. All rights reserved.\n </Text>\n\n <Group spacing={0} className={classes.social} position=\"right\" noWrap>\n <ActionIcon component=\"a\" target=\"_blank\" href=\"https://www.instagram.com/localcivics/\" size=\"lg\">\n <IconBrandInstagram size={18} stroke={1.5} />\n </ActionIcon>\n <ActionIcon component=\"a\" target=\"_blank\" href=\"https://www.linkedin.com/company/localcivics\" size=\"lg\">\n <IconBrandLinkedin size={18} stroke={1.5} />\n </ActionIcon>\n <ActionIcon component=\"a\" target=\"_blank\" href=\"https://www.facebook.com/localcivics/\" size=\"lg\">\n <IconBrandFacebook size={18} stroke={1.5} />\n </ActionIcon>\n </Group>\n </Container>\n </footer>}</>}\n styles={(theme) => ({\n main: { backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[8] : theme.colors.gray[0] },\n })}\n >\n <div style={{ position: 'relative' }}>\n { (props.loading || account.opened) && <Center style={{ height: 400 }}><Loader/></Center> }\n { (!props.loading && !account.opened) && props.page }\n </div>\n { !!account.accounts && !!account.account && <SwitchAccount\n opened={account.opened}\n loading={account.loading}\n account={account.account}\n accounts={account.accounts}\n onClick={account.onAccountChange}\n onClose={() => account.setChangeModalOpen(false)}\n />}\n </AppShell>\n}\n\nconst useAccount = (account?: string, accounts?: AccountItem[], onAccountChange?: (account: string) => Promise<void>) => {\n const accountsKey = JSON.stringify(accounts)\n const [changeModalOpen, setChangeModalOpen] = useState(false);\n const [active, setActive] = useState(account);\n const [loading, setLoading] = useState(false)\n\n React.useEffect(() => {\n setActive(account)\n }, [account, accountsKey])\n\n return {\n opened: changeModalOpen,\n account: active,\n accounts: accounts,\n loading,\n setChangeModalOpen,\n onAccountChange: (account: string) => {\n setLoading(true)\n if(!onAccountChange){\n return\n }\n\n onAccountChange(account).then(() => {\n setActive(account)\n setLoading(false)\n setChangeModalOpen(false)\n })\n }\n }\n}"],"names":["useStyles","createStyles","__objRest","Group","__spreadValues","React","Avatar","Text","useState","IconChevronRight","IconChevronLeft","Box","Link","Badge","ThemeIcon","Collapse","__spreadProps","IconHome2","IconGauge","IconCategory2","IconAlbum","IconLambda","IconBuilding","NavbarCore","Center","Image","Code","Burger","ScrollArea","IconSwitchHorizontal","IconLogout","UnstyledButton","Card","IconBatteryEco","IconBooks","IconBackpack","Modal","Loader","SimpleGrid","TabsCore","SplitButton","Button","Menu","ActionIcon","IconChevronDown","IconClipboardCopy","IconTableExport","Title","Stack","Grid","Table","DataTable","LessonStack","MantineTable","Container","BadgeCore","IconArrowLeft","LoadingOverlay","Select","LessonTable","Autocomplete","ImpactTable","ReflectionTable","BadgeTable","StudentTable","IconPlaylistAdd","openConfirmModal","IconCheck","IconTrash","form","useForm","Drawer","DropzoneButton","Divider","TextInput","papa","Dropzone","MIME_TYPES","IconDownload","IconX","IconCloudUpload","Tooltip","IconInfoCircle","AnswerTable","IconColorSwatch","Paper","Overlay","MantineStack","AnswerStack","Chart","QuestionStack","Anchor","IconPointer","IconBadge","Progress","IconCopy","useUncontrolled","Checkbox","IconHistory","IconLego","IconNews","IconTools","IconPodium","IconAffiliate","IconGrowth","createEmotionCache","MantineProvider","NotificationsProvider","ModalsProvider","AppShell","IconBrandInstagram","IconBrandLinkedin","IconBrandFacebook","account"],"mappings":"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"}