diff --git a/src/app.css b/src/app.css index 192b1c818..a1010c20b 100644 --- a/src/app.css +++ b/src/app.css @@ -22,3 +22,6 @@ U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } +html { + font-family: 'Nunito', sans-serif; +} diff --git a/src/modules/account/MainMenu.tsx b/src/modules/account/MainMenu.tsx index bb4ab8dcd..745ba1a08 100644 --- a/src/modules/account/MainMenu.tsx +++ b/src/modules/account/MainMenu.tsx @@ -1,7 +1,6 @@ import { useTranslation } from 'react-i18next'; -import { Stack } from '@mui/material'; -import List from '@mui/material/List'; +import { List, Stack } from '@mui/material'; import { DRAWER_WIDTH } from '@graasp/ui'; diff --git a/src/modules/account/settings/DeleteMemberDialogContent.tsx b/src/modules/account/settings/DeleteMemberDialogContent.tsx index 067d086a0..0fad343a1 100644 --- a/src/modules/account/settings/DeleteMemberDialogContent.tsx +++ b/src/modules/account/settings/DeleteMemberDialogContent.tsx @@ -1,11 +1,14 @@ import { useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { Stack, TextField } from '@mui/material'; -import DialogActions from '@mui/material/DialogActions'; -import DialogContent from '@mui/material/DialogContent'; -import DialogContentText from '@mui/material/DialogContentText'; -import DialogTitle from '@mui/material/DialogTitle'; +import { + DialogActions, + DialogContent, + DialogContentText, + DialogTitle, + Stack, + TextField, +} from '@mui/material'; import { Button } from '@graasp/ui'; diff --git a/src/modules/account/settings/password/CreatePassword.tsx b/src/modules/account/settings/password/CreatePassword.tsx index 3dae260c7..aa38904c8 100644 --- a/src/modules/account/settings/password/CreatePassword.tsx +++ b/src/modules/account/settings/password/CreatePassword.tsx @@ -2,8 +2,7 @@ import { FieldError, SubmitHandler, useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { LoadingButton } from '@mui/lab'; -import { Alert, Button, Stack } from '@mui/material'; -import Typography from '@mui/material/Typography'; +import { Alert, Button, Stack, Typography } from '@mui/material'; import { isPasswordStrong } from '@graasp/sdk'; import { FAILURE_MESSAGES } from '@graasp/translations'; diff --git a/src/modules/account/settings/password/EditPassword.tsx b/src/modules/account/settings/password/EditPassword.tsx index 35972fb9a..7fba578f3 100644 --- a/src/modules/account/settings/password/EditPassword.tsx +++ b/src/modules/account/settings/password/EditPassword.tsx @@ -2,8 +2,7 @@ import { SubmitHandler, useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { LoadingButton } from '@mui/lab'; -import { Alert, Box, Button, Stack } from '@mui/material'; -import Typography from '@mui/material/Typography'; +import { Alert, Box, Button, Stack, Typography } from '@mui/material'; import { isPasswordStrong } from '@graasp/sdk'; import { FAILURE_MESSAGES } from '@graasp/translations'; diff --git a/src/modules/analytics/charts-layout/ChartsAlerts.tsx b/src/modules/analytics/charts-layout/ChartsAlerts.tsx index 12927b8b6..46493c092 100644 --- a/src/modules/analytics/charts-layout/ChartsAlerts.tsx +++ b/src/modules/analytics/charts-layout/ChartsAlerts.tsx @@ -1,9 +1,8 @@ import { useContext } from 'react'; import { useTranslation } from 'react-i18next'; -import Info from '@mui/icons-material/Info'; -import Tooltip from '@mui/material/Tooltip'; -import { styled } from '@mui/material/styles'; +import { Info } from '@mui/icons-material'; +import { Tooltip, styled } from '@mui/material'; import { NS } from '@/config/constants'; diff --git a/src/modules/analytics/charts-layout/ItemsAnalytics.tsx b/src/modules/analytics/charts-layout/ItemsAnalytics.tsx index b1ec4e6dc..ba1ff6143 100644 --- a/src/modules/analytics/charts-layout/ItemsAnalytics.tsx +++ b/src/modules/analytics/charts-layout/ItemsAnalytics.tsx @@ -1,4 +1,4 @@ -import Grid from '@mui/material/Grid'; +import { Grid } from '@mui/material'; import ItemsByActionChart from '../charts/ItemsByActionChart'; import ItemsByUserChart from '../charts/ItemsByUserChart'; diff --git a/src/modules/analytics/charts/ActionsByVerbChart.tsx b/src/modules/analytics/charts/ActionsByVerbChart.tsx index 2d5de0f02..11984cd1c 100644 --- a/src/modules/analytics/charts/ActionsByVerbChart.tsx +++ b/src/modules/analytics/charts/ActionsByVerbChart.tsx @@ -1,8 +1,7 @@ import { useContext } from 'react'; import { useTranslation } from 'react-i18next'; -import Typography from '@mui/material/Typography'; -import { styled } from '@mui/material/styles'; +import { Typography, styled } from '@mui/material'; import { ActionTriggers } from '@graasp/sdk'; diff --git a/src/modules/analytics/charts/ActionsMap.tsx b/src/modules/analytics/charts/ActionsMap.tsx index 2942a3616..3e98f4ee2 100644 --- a/src/modules/analytics/charts/ActionsMap.tsx +++ b/src/modules/analytics/charts/ActionsMap.tsx @@ -1,7 +1,7 @@ import { useContext, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { useTheme } from '@mui/material/styles'; +import { useTheme } from '@mui/material'; import GoogleMapReact from 'google-map-react'; import useSupercluster from 'use-supercluster'; diff --git a/src/modules/analytics/common/ChartTitle.tsx b/src/modules/analytics/common/ChartTitle.tsx index 99041aeae..bbd4c572b 100644 --- a/src/modules/analytics/common/ChartTitle.tsx +++ b/src/modules/analytics/common/ChartTitle.tsx @@ -1,6 +1,8 @@ -import InfoIcon from '@mui/icons-material/Info'; -import { Stack, Tooltip } from '@mui/material'; -import Typography from '@mui/material/Typography'; +import { Stack, Tooltip, Typography } from '@mui/material'; + +import { useButtonColor } from '@graasp/ui'; + +import { Info } from 'lucide-react'; const ChartTitle = ({ title, @@ -8,21 +10,24 @@ const ChartTitle = ({ }: { title: string; description?: string; -}): JSX.Element => ( - - - {title} - - - - - -); +}): JSX.Element => { + const { color } = useButtonColor('primary'); + return ( + + + {title} + + + + + + ); +}; export default ChartTitle; diff --git a/src/modules/analytics/common/SectionTitle.tsx b/src/modules/analytics/common/SectionTitle.tsx index 74f2e4102..e8649ff75 100644 --- a/src/modules/analytics/common/SectionTitle.tsx +++ b/src/modules/analytics/common/SectionTitle.tsx @@ -1,5 +1,4 @@ -import { Stack } from '@mui/material'; -import Typography from '@mui/material/Typography'; +import { Stack, Typography } from '@mui/material'; const SectionTitle = ({ title, diff --git a/src/modules/analytics/functionality/ViewSelect.tsx b/src/modules/analytics/functionality/ViewSelect.tsx index a55f9a6a7..10f41e809 100644 --- a/src/modules/analytics/functionality/ViewSelect.tsx +++ b/src/modules/analytics/functionality/ViewSelect.tsx @@ -1,17 +1,19 @@ import { useContext } from 'react'; import { useTranslation } from 'react-i18next'; -import InfoIcon from '@mui/icons-material/Info'; import { FormControl, InputLabel, MenuItem, Select, Stack, + Tooltip, } from '@mui/material'; -import Tooltip from '@mui/material/Tooltip'; import { Context } from '@graasp/sdk'; +import { useButtonColor } from '@graasp/ui'; + +import { Info } from 'lucide-react'; import { NS } from '@/config/constants'; @@ -29,6 +31,7 @@ import { ViewDataContext } from '~analytics/context/ViewDataProvider'; const ViewSelect = (): JSX.Element => { const { t } = useTranslation(NS.Analytics); const { t: enumT } = useTranslation(NS.Enums); + const { color } = useButtonColor('primary'); const { view, setView } = useContext(ViewDataContext); @@ -92,7 +95,7 @@ const ViewSelect = (): JSX.Element => { - + ); diff --git a/src/modules/auth/components/common/StyledTextField.tsx b/src/modules/auth/components/common/StyledTextField.tsx index 9e5b28f6d..72ee101a7 100644 --- a/src/modules/auth/components/common/StyledTextField.tsx +++ b/src/modules/auth/components/common/StyledTextField.tsx @@ -1,5 +1,4 @@ -import { styled } from '@mui/material'; -import TextField from '@mui/material/TextField'; +import { TextField, styled } from '@mui/material'; const FORM_INPUT_MIN_WIDTH = 300; diff --git a/src/modules/landing/support/Faq.tsx b/src/modules/landing/support/Faq.tsx index 9d8786093..60bdb67b5 100644 --- a/src/modules/landing/support/Faq.tsx +++ b/src/modules/landing/support/Faq.tsx @@ -1,9 +1,13 @@ import { useTranslation } from 'react-i18next'; -import { Box, Stack, Typography } from '@mui/material'; -import Accordion from '@mui/material/Accordion'; -import AccordionDetails from '@mui/material/AccordionDetails'; -import AccordionSummary from '@mui/material/AccordionSummary'; +import { + Accordion, + AccordionDetails, + AccordionSummary, + Box, + Stack, + Typography, +} from '@mui/material'; import { ChevronDown } from 'lucide-react'; diff --git a/src/modules/player/.DS_Store b/src/modules/player/.DS_Store deleted file mode 100644 index 6344412e4..000000000 Binary files a/src/modules/player/.DS_Store and /dev/null differ diff --git a/src/modules/player/ItemNavigation.tsx b/src/modules/player/ItemNavigation.tsx index 3f633c28f..d2d4b54b7 100644 --- a/src/modules/player/ItemNavigation.tsx +++ b/src/modules/player/ItemNavigation.tsx @@ -12,9 +12,9 @@ import { NS } from '@/config/constants.ts'; import { axios, hooks } from '@/config/queryClient'; import { MAIN_MENU_ID, TREE_VIEW_ID } from '@/config/selectors'; -import { LoadingTree } from './tree/LoadingTree.tsx'; -import { TreeView } from './tree/TreeView.tsx'; -import { combineUuids, shuffleAllButLastItemInArray } from './utils/shuffle.ts'; +import { LoadingTree } from './tree/LoadingTree'; +import { TreeView } from './tree/TreeView'; +import { combineUuids, shuffleAllButLastItemInArray } from './utils/shuffle'; const { useItem, useDescendants } = hooks; const playerRoute = getRouteApi('/player/$rootId/$itemId'); diff --git a/src/modules/player/common/ItemCard.tsx b/src/modules/player/common/ItemCard.tsx index 9c96abd05..cff531c51 100644 --- a/src/modules/player/common/ItemCard.tsx +++ b/src/modules/player/common/ItemCard.tsx @@ -1,8 +1,6 @@ import { useTranslation } from 'react-i18next'; -import { Box, Stack } from '@mui/material'; -import Card from '@mui/material/Card'; -import Typography from '@mui/material/Typography'; +import { Box, Card, Stack, Typography } from '@mui/material'; import { PackedItem, formatDate } from '@graasp/sdk'; import { AnalyticsIcon, PlayIcon } from '@graasp/ui'; diff --git a/src/modules/player/rightPanel/SideContent.tsx b/src/modules/player/rightPanel/SideContent.tsx index 35e97e33d..9a50ef703 100644 --- a/src/modules/player/rightPanel/SideContent.tsx +++ b/src/modules/player/rightPanel/SideContent.tsx @@ -1,15 +1,13 @@ import Fullscreen from 'react-fullscreen-crossbrowser'; import { useTranslation } from 'react-i18next'; -import EnterFullscreenIcon from '@mui/icons-material/Fullscreen'; -import ExitFullscreenIcon from '@mui/icons-material/FullscreenExit'; -import { Stack, Tooltip, styled } from '@mui/material'; -import IconButton from '@mui/material/IconButton'; +import { IconButton, Stack, Tooltip, styled } from '@mui/material'; import { DiscriminatedItem } from '@graasp/sdk'; import { useMobileView } from '@graasp/ui'; import { useParams, useSearch } from '@tanstack/react-router'; +import { ExpandIcon, ShrinkIcon } from 'lucide-react'; import { NS } from '@/config/constants'; import { hooks } from '@/config/queryClient'; @@ -121,7 +119,7 @@ const SideContent = ({ content, item }: Props): JSX.Element | null => { } onClick={toggleFullscreen} > - {isFullscreen ? : } + {isFullscreen ? : } ); diff --git a/src/modules/player/tree/Node.tsx b/src/modules/player/tree/Node.tsx index fa36f434f..a8e762f9b 100644 --- a/src/modules/player/tree/Node.tsx +++ b/src/modules/player/tree/Node.tsx @@ -1,7 +1,6 @@ import type { IBranchProps, INode, LeafProps } from 'react-accessible-treeview'; -import { Box, IconButton, Typography } from '@mui/material'; -import { deepPurple } from '@mui/material/colors'; +import { Box, IconButton, Typography, colors } from '@mui/material'; import { UUID } from '@graasp/sdk'; import { ItemIcon } from '@graasp/ui'; @@ -41,7 +40,7 @@ export function TreeNode({ sx={{ width: '100%', pl: 1, - background: isSelected ? deepPurple[50] : 'none', + background: isSelected ? colors.deepPurple[50] : 'none', }} > {/* icon type for root level items */} diff --git a/src/modules/player/utils/shuffle.test.ts b/src/modules/player/utils/shuffle.test.ts index 02cc8b8f4..c983557d6 100644 --- a/src/modules/player/utils/shuffle.test.ts +++ b/src/modules/player/utils/shuffle.test.ts @@ -5,7 +5,7 @@ import { combineUuids, getRandomValue, shuffleAllButLastItemInArray, -} from './shuffle.ts'; +} from './shuffle'; describe('shuffleAllButLastItemInArray', () => { // check if the function shuffles all items except the last one with different UUID seeds diff --git a/src/routes/auth/reset-password.tsx b/src/routes/auth/reset-password.tsx index 81c990cd5..6ed10f878 100644 --- a/src/routes/auth/reset-password.tsx +++ b/src/routes/auth/reset-password.tsx @@ -9,8 +9,8 @@ import { FormControlLabel, Stack, TextField, + Typography, } from '@mui/material'; -import Typography from '@mui/material/Typography'; import { isPasswordStrong } from '@graasp/sdk';