@nualang/nualang-ui-components 0.1.1329 → 0.1.1331

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.
Files changed (64) hide show
  1. package/dist/Assignments/AssignmentBotSelection/AssignmentBotSelection.js +1 -1
  2. package/dist/Assignments/AssignmentExerciseSelection/AssignmentExerciseSelection.js +1 -1
  3. package/dist/Assignments/AssignmentRoleplaySelection/AssignmentRoleplaySelection.js +1 -1
  4. package/dist/Cards/SubscriptionPlan/SubscriptionPlan.js +8 -6
  5. package/dist/Containers/App/App.js +3 -3
  6. package/dist/Dialogs/BotPreview/BotPreview.js +4 -2
  7. package/dist/Dialogs/CourseOutline/CourseOutline.test.js +1 -1
  8. package/dist/Dialogs/ExerciseMenu/Menus/CloseExercise/CloseExercise.js +1 -1
  9. package/dist/Dialogs/ExerciseMenu/Menus/CompletedExcercise/CompletedExcercise.js +1 -1
  10. package/dist/Dialogs/ExerciseMenu/Menus/InProgressExercise/InProgressExercise.js +1 -1
  11. package/dist/Dialogs/GenerateBot/GenerateBot.js +1 -1
  12. package/dist/Dialogs/GenerateDiscussion/GenerateDiscussion.js +1 -1
  13. package/dist/Dialogs/GeneratePhrases/GeneratePhrases.js +1 -1
  14. package/dist/Dialogs/GenerateQuestion/GenerateQuestion.js +1 -1
  15. package/dist/Dialogs/GenerateRoleplay/GenerateRoleplay.js +1 -1
  16. package/dist/Dialogs/SelectClassroom/SelectClassroom.js +1 -1
  17. package/dist/Editors/Bot/Bot.js +4 -2
  18. package/dist/Exercises/Bot/Bot.js +5 -3
  19. package/dist/Exercises/Bot/Bot.test.js +1 -1
  20. package/dist/Exercises/Listener/Listener.js +1 -1
  21. package/dist/Exercises/Listener/Listener.test.js +1 -1
  22. package/dist/Exercises/Pronouncer/Pronouncer.js +1 -1
  23. package/dist/Exercises/Pronouncer/Pronouncer.test.js +1 -1
  24. package/dist/Exercises/Roleplay/Games/StoryGame/StoryGame.js +1 -1
  25. package/dist/Exercises/Roleplay/Roleplay.js +1 -1
  26. package/dist/Exercises/Roleplay/Roleplay.test.js +1 -1
  27. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGame/RoleplayGame.test.js +1 -1
  28. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGames.test.js +1 -1
  29. package/dist/Exercises/Roleplay/RoleplayInfo/RoleplayInfo.test.js +1 -1
  30. package/dist/Exercises/Translator/Translator.js +1 -1
  31. package/dist/Exercises/Translator/Translator.test.js +1 -1
  32. package/dist/Forms/CreateBot/Steps/Confirmation/Confirmation.js +5 -3
  33. package/dist/Forms/CreateGroup/Steps/Confirmation/Confirmation.js +5 -3
  34. package/dist/Forms/CreateMeetingMultiStepForm/MeetingForm.js +46 -24
  35. package/dist/Forms/MarkdownEditor/MarkdownEditor.js +4 -2
  36. package/dist/Lists/Bots/Bots.test.js +1 -1
  37. package/dist/Lists/CourseOutline/CourseOutline.js +1 -1
  38. package/dist/Lists/CourseOutline/CourseOutline.test.js +1 -1
  39. package/dist/Lists/Exercises/Exercises.js +1 -1
  40. package/dist/Lists/Exercises/Exercises.test.js +1 -1
  41. package/dist/Lists/Phrases/Phrases.test.js +1 -1
  42. package/dist/Lists/Roleplays/Roleplays.test.js +1 -1
  43. package/dist/Misc/HoverText/HoverText.js +25 -24
  44. package/dist/Misc/SignOut/SignOut.js +1 -1
  45. package/dist/Misc/WhatsNew/WhatsNew.js +5 -3
  46. package/dist/Navigation/BottomBar/BottomBar.js +1 -1
  47. package/dist/Navigation/Breadcrumbs/Breadcrumbs.js +2 -2
  48. package/dist/Navigation/Breadcrumbs/Breadcrumbs.test.js +1 -1
  49. package/dist/Navigation/ResponsiveDrawer/ResponsiveDrawer.js +1 -1
  50. package/dist/Navigation/ResponsiveDrawer/ResponsiveDrawer.test.js +1 -1
  51. package/dist/Navigation/ResponsiveTabs/ResponsiveTabs.js +1 -1
  52. package/dist/Screens/Classrooms/ViewClassroom/ViewClassroom.js +1 -1
  53. package/dist/Screens/Courses/ViewCourse/ViewCourse.js +1 -1
  54. package/dist/Screens/Courses/ViewCourse/ViewTopic/ViewTopic.js +1 -1
  55. package/dist/Screens/Library/Library.js +1 -1
  56. package/dist/Screens/Search/Search.js +1 -1
  57. package/dist/Tables/MeetingPrompstList/MeetingPromptsList.js +1 -1
  58. package/dist/Tables/Progress/ProgressList.js +1 -1
  59. package/dist/Tables/Progress/ProgressTable.js +1 -1
  60. package/dist/Tables/TrialUsers/TrialUsers.js +1 -1
  61. package/dist/Tables/Users/UsersTable.js +1 -1
  62. package/dist/hooks/useExerciseState.js +1 -1
  63. package/dist/hooks/useUrlQueryParam.js +1 -1
  64. package/package.json +24 -23
@@ -2,7 +2,7 @@ import { useState, useEffect, Fragment } from "react";
2
2
  import { Box, ListItemText, ListItemButton, Avatar, Checkbox, ListItemIcon, Badge, IconButton, Chip, Typography } from "@mui/material";
3
3
  import ClearIcon from "@mui/icons-material/Clear";
4
4
  import { Done, Timelapse } from "@mui/icons-material";
5
- import { useNavigate, useParams } from "react-router-dom";
5
+ import { useNavigate, useParams } from "react-router";
6
6
  import HtmlTooltipComponent from "../../Misc/HtmlTooltipComponent/HtmlTooltipComponent";
7
7
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  const sxGreenColor = theme => ({
@@ -16,7 +16,7 @@ import AssignmentRoleplaySelection from "../AssignmentRoleplaySelection/Assignme
16
16
  import { CardInfoSectionItem } from "../../Cards/CardElements";
17
17
  import { getCourseSectionTopicProgress } from "@nualang/nualang-api-and-queries/APIs/Progress";
18
18
  import { progress as progressQuerys } from "@nualang/nualang-api-and-queries/Queries";
19
- import { useNavigate, useParams } from "react-router-dom";
19
+ import { useNavigate, useParams } from "react-router";
20
20
  import { ProgressBadge, InProgressBadge } from "../../Lists/Exercises/Exercises";
21
21
  import ColorLinearProgress from "../../Misc/ColorLinearProgress/ColorLinearProgress";
22
22
  import { calcCompletions } from "../../utils";
@@ -11,7 +11,7 @@ import HeadphonesIcon from "@mui/icons-material/Headphones";
11
11
  import RecordVoiceOverIcon from "@mui/icons-material/RecordVoiceOver";
12
12
  import SpaceBarIcon from "@mui/icons-material/SpaceBar";
13
13
  import { Clear, Done, Timelapse } from "@mui/icons-material";
14
- import { useNavigate, useParams } from "react-router-dom";
14
+ import { useNavigate, useParams } from "react-router";
15
15
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
16
16
  const sxGreenColor = theme => ({
17
17
  color: theme.palette.success ? theme.palette.success.dark : ""
@@ -226,9 +226,9 @@ function SubscriptionPlan({
226
226
  },
227
227
  children: [displayPlan.badge ? /*#__PURE__*/_jsx(HtmlTooltip, {
228
228
  interactive: true,
229
- title: /*#__PURE__*/_jsx(_Fragment, {
229
+ title: /*#__PURE__*/_jsx("div", {
230
+ className: classes.planFeaturesListItemTooltipContent,
230
231
  children: /*#__PURE__*/_jsx(ReactMarkdown, {
231
- className: classes.planFeaturesListItemTooltipContent,
232
232
  children: t(displayPlan.footnote)
233
233
  })
234
234
  }),
@@ -267,9 +267,9 @@ function SubscriptionPlan({
267
267
  color: displayPlan.bgPrimary ? "grey.100" : "grey.400"
268
268
  }
269
269
  }), feature.description && /*#__PURE__*/_jsx(HtmlTooltip, {
270
- title: /*#__PURE__*/_jsx(_Fragment, {
270
+ title: /*#__PURE__*/_jsx("div", {
271
+ className: classes.planFeaturesListItemTooltipContent,
271
272
  children: /*#__PURE__*/_jsx(ReactMarkdown, {
272
- className: classes.planFeaturesListItemTooltipContent,
273
273
  children: t(feature.description)
274
274
  })
275
275
  }),
@@ -368,9 +368,11 @@ function SubscriptionPlan({
368
368
  bgPrimary: displayPlan.bgPrimary,
369
369
  children: t(displayPlan.buyButton.buttonText)
370
370
  })]
371
- }), /*#__PURE__*/_jsx(ReactMarkdown, {
371
+ }), /*#__PURE__*/_jsx("div", {
372
372
  className: classes.planFootnote,
373
- children: t(displayPlan.footnote)
373
+ children: /*#__PURE__*/_jsx(ReactMarkdown, {
374
+ children: t(displayPlan.footnote)
375
+ })
374
376
  })]
375
377
  })
376
378
  }), displayPlan && displayPlan.nuala && /*#__PURE__*/_jsx(Nuala, {
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useState, useCallback } from "react";
2
- import { Link as RouterLink } from "react-router-dom";
2
+ import { Link as RouterLink } from "react-router";
3
3
  import DefaultButton from "../../Misc/DefaultColourButton/DefaultColourButton";
4
4
  import { useTheme } from "@mui/material/styles";
5
5
  import { makeStyles } from "tss-react/mui";
@@ -9,7 +9,7 @@ import { styled, alpha } from "@mui/material/styles";
9
9
  import InputBase from "@mui/material/InputBase";
10
10
  import InputAdornment from "@mui/material/InputAdornment";
11
11
  import { debounce } from "lodash";
12
- import { useLocation } from "react-router-dom";
12
+ import { useLocation } from "react-router";
13
13
 
14
14
  // components
15
15
  import Header from "../../Navigation/Header/Header";
@@ -31,7 +31,7 @@ import UpgradeSubscription from "../../Dialogs/UpgradeSubscription/UpgradeSubscr
31
31
  // nav config
32
32
  import navigationImport from "../../Navigation/_nav";
33
33
  import { IconButton, ListItemIcon, ListItemText, Menu, MenuItem, Tooltip, Button, Box } from "@mui/material";
34
- import { useNavigate } from "react-router-dom";
34
+ import { useNavigate } from "react-router";
35
35
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
36
36
  const drawerWidth = 256;
37
37
  const drawerCollapsedWidth = 74;
@@ -314,9 +314,11 @@ function BotPreview({
314
314
  open: instructionDialogOpen,
315
315
  handleClose: handleCloseInstructions,
316
316
  dialogTitle: t("instruction_message"),
317
- children: /*#__PURE__*/_jsx(ReactMarkdown, {
317
+ children: /*#__PURE__*/_jsx("div", {
318
318
  className: "content",
319
- children: bot.studentInstructions
319
+ children: /*#__PURE__*/_jsx(ReactMarkdown, {
320
+ children: bot.studentInstructions
321
+ })
320
322
  })
321
323
  }), /*#__PURE__*/_jsx(CompletedExcercise, {
322
324
  open: isCompletionModalOpen,
@@ -1,4 +1,4 @@
1
- import { MemoryRouter } from "react-router-dom";
1
+ import { MemoryRouter } from "react-router";
2
2
  import { createTheme, ThemeProvider } from "@mui/material/styles";
3
3
  import CourseOutline from "./CourseOutline";
4
4
  import { props } from "./CourseOutline.stories";
@@ -1,5 +1,5 @@
1
1
  import ExerciseMenu from "../../ExerciseMenu";
2
- import { useLocation } from "react-router-dom";
2
+ import { useLocation } from "react-router";
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
4
  function CloseExerciseMenu({
5
5
  open,
@@ -1,5 +1,5 @@
1
1
  import ExerciseMenu from "../../ExerciseMenu";
2
- import { useLocation } from "react-router-dom";
2
+ import { useLocation } from "react-router";
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
4
  function CompletedExerciseMenu({
5
5
  open,
@@ -1,5 +1,5 @@
1
1
  import ExerciseMenu from "../../ExerciseMenu";
2
- import { useLocation } from "react-router-dom";
2
+ import { useLocation } from "react-router";
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
4
  function InProgressExercise({
5
5
  open,
@@ -3,7 +3,7 @@ import { Grid, Box, FormControlLabel, Switch, Typography, Slider, TextField, Inp
3
3
  import InfoIcon from "@mui/icons-material/Info";
4
4
  import Alert from "@mui/material/Alert";
5
5
  import LinearProgress from "@mui/material/LinearProgress";
6
- import { Link } from "react-router-dom";
6
+ import { Link } from "react-router";
7
7
  //components
8
8
  import NualaCreating from "../../Misc/NualaCreating/NualaCreating";
9
9
  import ResponsiveDialog from "../ResponsiveDialog/ResponsiveDialog";
@@ -1,7 +1,7 @@
1
1
  import { useState, useEffect } from "react";
2
2
  import { Grid, Typography, TextField, InputAdornment, Tooltip, Alert, LinearProgress, MenuItem } from "@mui/material";
3
3
  import InfoIcon from "@mui/icons-material/Info";
4
- import { Link } from "react-router-dom";
4
+ import { Link } from "react-router";
5
5
  // components
6
6
  import NualaCreating from "../../Misc/NualaCreating/NualaCreating";
7
7
  import ResponsiveDialog from "../ResponsiveDialog/ResponsiveDialog";
@@ -3,7 +3,7 @@ import ResponsiveDialog from "../ResponsiveDialog/ResponsiveDialog";
3
3
  import { AutoFixHigh } from "@mui/icons-material";
4
4
  import { Alert, Grid, InputAdornment, LinearProgress, MenuItem, Slider, TextField, Tooltip, Typography, ListItem, ListItemText, useMediaQuery } from "@mui/material";
5
5
  import { useTheme } from "@mui/material/styles";
6
- import { Link } from "react-router-dom";
6
+ import { Link } from "react-router";
7
7
  import InfoIcon from "@mui/icons-material/Info";
8
8
  import NualaCreating from "../../Misc/NualaCreating/NualaCreating";
9
9
  import InputHelper from "../../Forms/InputHelper/InputHelper";
@@ -1,6 +1,6 @@
1
1
  import { useState } from "react";
2
2
  import { Alert, Grid, LinearProgress, MenuItem, TextField } from "@mui/material";
3
- import { Link } from "react-router-dom";
3
+ import { Link } from "react-router";
4
4
  import { AutoFixHigh } from "@mui/icons-material";
5
5
 
6
6
  // Components
@@ -1,5 +1,5 @@
1
1
  import { useState, useEffect } from "react";
2
- import { Link } from "react-router-dom";
2
+ import { Link } from "react-router";
3
3
  import { jsonrepair } from "jsonrepair";
4
4
  import RemoveRedEyeOutlinedIcon from "@mui/icons-material/RemoveRedEyeOutlined";
5
5
  import AutoFixHighIcon from "@mui/icons-material/AutoFixHigh";
@@ -7,7 +7,7 @@ import ListItemAvatar from "@mui/material/ListItemAvatar";
7
7
  import Avatar from "@mui/material/Avatar";
8
8
  import ImageIcon from "@mui/icons-material/Image";
9
9
  import Typography from "@mui/material/Typography";
10
- import { Link as RouterLink } from "react-router-dom";
10
+ import { Link as RouterLink } from "react-router";
11
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
12
  function SelectClassroom({
13
13
  open,
@@ -785,9 +785,11 @@ function Bot({
785
785
  open: creatorInstructionsDialogOpen,
786
786
  handleClose: handleCloseCreatorInstructions,
787
787
  dialogTitle: t("instruction_message"),
788
- children: /*#__PURE__*/_jsx(ReactMarkdown, {
788
+ children: /*#__PURE__*/_jsx("div", {
789
789
  className: "content",
790
- children: bot.creatorInstructions
790
+ children: /*#__PURE__*/_jsx(ReactMarkdown, {
791
+ children: bot.creatorInstructions
792
+ })
791
793
  })
792
794
  }), /*#__PURE__*/_jsx(ResponsiveDialog, {
793
795
  open: isHelpOpen,
@@ -23,7 +23,7 @@ import ReportProblem from "../../Misc/ReportProblem/ReportProblem";
23
23
  import NualaSignInImage from "../../img/nuala_sign_in.svg";
24
24
  import { useTheme } from "@mui/material/styles";
25
25
  import config from "../../config";
26
- import { useNavigate } from "react-router-dom";
26
+ import { useNavigate } from "react-router";
27
27
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
28
28
  const useStyles = makeStyles()(theme => ({
29
29
  descriptionWrapper: {
@@ -646,9 +646,11 @@ function Bot({
646
646
  open: instructionDialogOpen,
647
647
  handleClose: handleCloseInstructions,
648
648
  dialogTitle: t("instruction_message"),
649
- children: /*#__PURE__*/_jsx(ReactMarkdown, {
649
+ children: /*#__PURE__*/_jsx("div", {
650
650
  className: "content",
651
- children: bot.studentInstructions
651
+ children: /*#__PURE__*/_jsx(ReactMarkdown, {
652
+ children: bot.studentInstructions
653
+ })
652
654
  })
653
655
  }), /*#__PURE__*/_jsx(CompletedExcercise, {
654
656
  open: isCompletionModalOpen,
@@ -1,6 +1,6 @@
1
1
  import { render } from "@testing-library/react";
2
2
  import { describe, it } from "vitest";
3
- import { MemoryRouter } from "react-router-dom";
3
+ import { MemoryRouter } from "react-router";
4
4
  import { ThemeProvider, createTheme } from "@mui/material/styles";
5
5
  import Bot from "./Bot";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -23,7 +23,7 @@ import ReportProblem from "../../Misc/ReportProblem/ReportProblem";
23
23
  import DefaultButton from "../../Misc/DefaultColourButton/DefaultColourButton";
24
24
  import WaveFormLite from "../../Misc/WaveFormLite/WaveFormLite";
25
25
  import { useTheme } from "@mui/material/styles";
26
- import { useNavigate } from "react-router-dom";
26
+ import { useNavigate } from "react-router";
27
27
  import { arrayMove } from "@dnd-kit/sortable";
28
28
  import { Sortable, SortableGridDndContextWrapper } from "../../utils/dragAndDrop/dragAndDrop";
29
29
 
@@ -1,6 +1,6 @@
1
1
  import { render } from "@testing-library/react";
2
2
  import { describe, it } from "vitest";
3
- import { MemoryRouter } from "react-router-dom";
3
+ import { MemoryRouter } from "react-router";
4
4
  import { createTheme, ThemeProvider } from "@mui/material/styles";
5
5
  import Listener from "./Listener";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -28,7 +28,7 @@ import ChatBubble from "../../Misc/ChatBubble/ChatBubble";
28
28
  import WaveFormLite from "../../Misc/WaveFormLite/WaveFormLite";
29
29
  import { removeExtraWhiteSpaces, removeAllSymbols } from "../../utils";
30
30
  import getVoiceImages from "../../utils/voiceImages";
31
- import { useNavigate } from "react-router-dom";
31
+ import { useNavigate } from "react-router";
32
32
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
33
33
  const useStyles = makeStyles()(theme => ({
34
34
  appBar: {
@@ -1,6 +1,6 @@
1
1
  import { render } from "@testing-library/react";
2
2
  import { describe, it } from "vitest";
3
- import { MemoryRouter } from "react-router-dom";
3
+ import { MemoryRouter } from "react-router";
4
4
  import { ThemeProvider, createTheme } from "@mui/material/styles";
5
5
  import Pronouncer from "./Pronouncer";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -1,6 +1,6 @@
1
1
  import { useState, useEffect, useRef } from "react";
2
2
  import { Box, Button, Dialog } from "@mui/material";
3
- import { useLocation } from "react-router-dom";
3
+ import { useLocation } from "react-router";
4
4
  import AutoStoriesIcon from "@mui/icons-material/AutoStories";
5
5
  import useRecognition from "../../../../hooks/useRecognition";
6
6
  import useExerciseState from "../../../../hooks/useExerciseState";
@@ -1,6 +1,6 @@
1
1
  import { useEffect, useState, memo } from "react";
2
2
  import Joyride, { STATUS } from "react-joyride";
3
- import { useLocation, useNavigate, useParams } from "react-router-dom";
3
+ import { useLocation, useNavigate, useParams } from "react-router";
4
4
  import { useTheme } from "@mui/material/styles";
5
5
  import { Slide, IconButton, Dialog, Box, Divider, Tooltip } from "@mui/material";
6
6
  import useMediaQuery from "@mui/material/useMediaQuery";
@@ -1,6 +1,6 @@
1
1
  import { render } from "@testing-library/react";
2
2
  import { describe, it } from "vitest";
3
- import { MemoryRouter } from "react-router-dom";
3
+ import { MemoryRouter } from "react-router";
4
4
  import { createTheme, ThemeProvider } from "@mui/material/styles";
5
5
  import Roleplay from "./Roleplay";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -1,6 +1,6 @@
1
1
  import { render } from "@testing-library/react";
2
2
  import { describe, it } from "vitest";
3
- import { MemoryRouter } from "react-router-dom";
3
+ import { MemoryRouter } from "react-router";
4
4
  import { createTheme, ThemeProvider } from "@mui/material/styles";
5
5
  import RoleplayGame from "./RoleplayGame";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -1,6 +1,6 @@
1
1
  import { render } from "@testing-library/react";
2
2
  import { describe, it } from "vitest";
3
- import { MemoryRouter } from "react-router-dom";
3
+ import { MemoryRouter } from "react-router";
4
4
  import { createTheme, ThemeProvider } from "@mui/material/styles";
5
5
  import RoleplayGames from "./RoleplayGames";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -1,6 +1,6 @@
1
1
  import { render } from "@testing-library/react";
2
2
  import { describe, it } from "vitest";
3
- import { MemoryRouter } from "react-router-dom";
3
+ import { MemoryRouter } from "react-router";
4
4
  import { createTheme, ThemeProvider } from "@mui/material/styles";
5
5
  import RoleplayInfo from "./RoleplayInfo";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -28,7 +28,7 @@ import { useTheme } from "@mui/material/styles";
28
28
  import getVoiceImages from "../../utils/voiceImages";
29
29
  import { arrayMove } from "@dnd-kit/sortable";
30
30
  import { SortableGridDndContextWrapper, Sortable } from "../../utils/dragAndDrop/dragAndDrop";
31
- import { useNavigate } from "react-router-dom";
31
+ import { useNavigate } from "react-router";
32
32
 
33
33
  // utils
34
34
  import { capitalize, removeExtraWhiteSpaces, removeAllSymbols } from "../../utils/index";
@@ -1,6 +1,6 @@
1
1
  import { render } from "@testing-library/react";
2
2
  import { describe, it } from "vitest";
3
- import { MemoryRouter } from "react-router-dom";
3
+ import { MemoryRouter } from "react-router";
4
4
  import { ThemeProvider, createTheme } from "@mui/material/styles";
5
5
  import Translator from "./Translator";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -215,9 +215,11 @@ function Confirmation({
215
215
  open: open,
216
216
  handleClose: () => setOpen(false),
217
217
  dialogTitle: t("instruction_message"),
218
- children: /*#__PURE__*/_jsx(ReactMarkdown, {
219
- source: studentInstructions,
220
- className: "content"
218
+ children: /*#__PURE__*/_jsx("div", {
219
+ className: "content",
220
+ children: /*#__PURE__*/_jsx(ReactMarkdown, {
221
+ source: studentInstructions
222
+ })
221
223
  })
222
224
  })]
223
225
  });
@@ -154,9 +154,11 @@ function Confirmation({
154
154
  open: open,
155
155
  handleClose: () => setOpen(false),
156
156
  dialogTitle: t("instruction_message"),
157
- children: /*#__PURE__*/_jsx(ReactMarkdown, {
158
- source: studentInstructions,
159
- className: "content"
157
+ children: /*#__PURE__*/_jsx("div", {
158
+ className: "content",
159
+ children: /*#__PURE__*/_jsx(ReactMarkdown, {
160
+ source: studentInstructions
161
+ })
160
162
  })
161
163
  })]
162
164
  });
@@ -47,11 +47,6 @@ function MeetingForm({
47
47
  meetingDate,
48
48
  level
49
49
  } = values;
50
- const currentDateTime = dayjs();
51
- let defaultMeetingDate = currentDateTime.add(1, "day").format("MM/DD/YYYY");
52
- const defaultMeetingTime = currentDateTime.format("h:mm A");
53
- const [newMeetingDate, setNewMeetingDate] = useState(defaultMeetingDate);
54
- const [newMeetingTime, setNewMeetingTime] = useState(defaultMeetingTime);
55
50
  const [initialBackgroundImages, setInitialBackgroundImages] = useState([]);
56
51
  const [initialMeetingImages, setInitialMeetingImages] = useState([]);
57
52
  const [openDialog, setOpenDialog] = useState(false);
@@ -92,20 +87,6 @@ function MeetingForm({
92
87
  setInitialMeetingImages(editMeetingImages);
93
88
  }
94
89
  }, [editMeetingImages, editBackgroundImages]);
95
- useEffect(() => {
96
- handleChange({
97
- target: {
98
- name: "meetingDate",
99
- value: newMeetingDate
100
- }
101
- });
102
- handleChange({
103
- target: {
104
- name: "meetingTime",
105
- value: newMeetingTime
106
- }
107
- });
108
- }, [newMeetingDate, newMeetingTime, handleChange]);
109
90
  const onChange = event => {
110
91
  handleChange({
111
92
  target: {
@@ -148,7 +129,40 @@ function MeetingForm({
148
129
  });
149
130
  }
150
131
  }, [level]);
151
- const dateTimePlaceholder = meetingTime && meetingDate ? dayjs(meetingDate + " " + meetingTime) : dayjs(defaultMeetingDate + " " + defaultMeetingTime);
132
+ useEffect(() => {
133
+ // Initialize date/time if not set or invalid
134
+ const currentDateTime = dayjs();
135
+ const defaultDateTime = currentDateTime.add(1, "day");
136
+ const isDateValid = meetingDate && dayjs(meetingDate, "MM/DD/YYYY", true).isValid();
137
+ const isTimeValid = meetingTime && dayjs(meetingTime, "h:mm A", true).isValid();
138
+ if (!isDateValid) {
139
+ handleChange({
140
+ target: {
141
+ name: "meetingDate",
142
+ value: defaultDateTime.format("MM/DD/YYYY")
143
+ }
144
+ });
145
+ }
146
+ if (!isTimeValid) {
147
+ handleChange({
148
+ target: {
149
+ name: "meetingTime",
150
+ value: defaultDateTime.format("h:mm A")
151
+ }
152
+ });
153
+ }
154
+ }, [meetingDate, meetingTime]);
155
+
156
+ // Update the dateTimePlaceholder calculation
157
+ const dateTimePlaceholder = (() => {
158
+ if (meetingTime && meetingDate) {
159
+ const parsed = dayjs(`${meetingDate} ${meetingTime}`, "MM/DD/YYYY h:mm A", true);
160
+ if (parsed.isValid()) {
161
+ return parsed;
162
+ }
163
+ }
164
+ return dayjs().add(1, "day");
165
+ })();
152
166
  return /*#__PURE__*/_jsxs(Grid, {
153
167
  container: true,
154
168
  sx: {
@@ -417,10 +431,18 @@ function MeetingForm({
417
431
  value: dateTimePlaceholder,
418
432
  onChange: newValue => {
419
433
  const datePickerValue = dayjs(newValue);
420
- const date = datePickerValue.format("MM/DD/YYYY");
421
- const time = datePickerValue.format("h:mm A");
422
- setNewMeetingDate(date);
423
- setNewMeetingTime(time);
434
+ handleChange({
435
+ target: {
436
+ name: "meetingDate",
437
+ value: datePickerValue.format("MM/DD/YYYY")
438
+ }
439
+ });
440
+ handleChange({
441
+ target: {
442
+ name: "meetingTime",
443
+ value: datePickerValue.format("h:mm A")
444
+ }
445
+ });
424
446
  }
425
447
  })
426
448
  })
@@ -61,9 +61,11 @@ export default function MarkdownEditor({
61
61
  }), /*#__PURE__*/_jsx(ResponsiveDialog, {
62
62
  open: openPreviewDialog,
63
63
  handleClose: handleClose,
64
- children: /*#__PURE__*/_jsx(ReactMarkdown, {
64
+ children: /*#__PURE__*/_jsx("div", {
65
65
  className: "content",
66
- children: value
66
+ children: /*#__PURE__*/_jsx(ReactMarkdown, {
67
+ children: value
68
+ })
67
69
  })
68
70
  })]
69
71
  });
@@ -4,7 +4,7 @@ import { ThemeProvider, createTheme } from "@mui/material/styles";
4
4
  import "intersection-observer";
5
5
  import Bots from "./Bots";
6
6
  import { props } from "./Bots.stories";
7
- import { MemoryRouter } from "react-router-dom";
7
+ import { MemoryRouter } from "react-router";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  describe("Bots", () => {
10
10
  it("renders without crashing", () => {
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useState, useCallback, useRef } from "react";
2
- import { Link as RouterLink, useNavigate, useParams } from "react-router-dom";
2
+ import { Link as RouterLink, useNavigate, useParams } from "react-router";
3
3
  import { ListSubheader, List, ListItem, ListItemIcon, ListItemText, ListItemAvatar, ListItemSecondaryAction, IconButton, Button, Collapse, Typography, Box, Tooltip, Menu, MenuItem, Avatar } from "@mui/material";
4
4
  import { useTheme } from "@mui/material/styles";
5
5
  import { makeStyles } from "tss-react/mui";
@@ -4,7 +4,7 @@ import CourseOutline from "./CourseOutline";
4
4
  import { props } from "./CourseOutline.stories";
5
5
  import { DndProvider } from "react-dnd";
6
6
  import { TestBackend } from "react-dnd-test-backend";
7
- import { MemoryRouter } from "react-router-dom";
7
+ import { MemoryRouter } from "react-router";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  describe("CourseOutline", () => {
10
10
  it("renders without crashing", () => {
@@ -1,5 +1,5 @@
1
1
  import { useState, useEffect, useRef, useCallback, Fragment } from "react";
2
- import { Link as RouterLink, useLocation, useNavigate, useParams } from "react-router-dom";
2
+ import { Link as RouterLink, useLocation, useNavigate, useParams } from "react-router";
3
3
  import WordBankOnIcon from "@mui/icons-material/AccountBalance";
4
4
  import WordBankOffIcon from "../../icons/AccountBalanceOff";
5
5
  import CopyIcon from "@mui/icons-material/FileCopy";
@@ -1,6 +1,6 @@
1
1
  import { render } from "@testing-library/react";
2
2
  import { describe, it } from "vitest";
3
- import { MemoryRouter } from "react-router-dom";
3
+ import { MemoryRouter } from "react-router";
4
4
  import { createTheme, ThemeProvider } from "@mui/material/styles";
5
5
  import { Exercises } from "./Exercises";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -5,7 +5,7 @@ import Phrases from "./Phrases";
5
5
  import { props } from "./Phrases.stories";
6
6
  import { DndProvider } from "react-dnd";
7
7
  import { TestBackend } from "react-dnd-test-backend";
8
- import { MemoryRouter } from "react-router-dom";
8
+ import { MemoryRouter } from "react-router";
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  describe("Phrases", () => {
11
11
  it("renders without crashing", () => {
@@ -1,6 +1,6 @@
1
1
  import { render } from "@testing-library/react";
2
2
  import { describe, it } from "vitest";
3
- import { MemoryRouter } from "react-router-dom";
3
+ import { MemoryRouter } from "react-router";
4
4
  import { ThemeProvider, createTheme } from "@mui/material/styles";
5
5
  import "intersection-observer";
6
6
  import Roleplays from "./Roleplays";
@@ -145,32 +145,33 @@ function HoverText({
145
145
  }
146
146
  }
147
147
  const words = props => {
148
- const childrenArray = props.children ? [props.children] : [];
149
- return childrenArray.map(child => child.map(childElement => {
150
- if (childElement && typeof childElement === "string") {
151
- return removeExtraWhiteSpaces(childElement).split(" ").map((word, index) => {
152
- if (word && typeof word === "string") {
153
- return /*#__PURE__*/_jsx(WordText, {
154
- value: `${word} `,
155
- disableTranslation: disableTranslation,
156
- handleTranslate: handleTranslate,
157
- handleSpeak: handleSpeak,
158
- learnLang: learnLang,
159
- forLang: forLang,
160
- voice: voice,
161
- voicePitch: voicePitch,
162
- voiceSpeed: voiceSpeed,
163
- muteSound: muteSound,
164
- disableHover: disableHover
165
- }, index);
166
- } else {
148
+ const childrenArray = Array.isArray(props.children) ? props.children : [props.children];
149
+ return childrenArray.map(child => {
150
+ const childArray = Array.isArray(child) ? child : [child];
151
+ return childArray.map(childElement => {
152
+ if (childElement && typeof childElement === "string") {
153
+ return removeExtraWhiteSpaces(childElement).split(" ").map((word, index) => {
154
+ if (word && typeof word === "string") {
155
+ return /*#__PURE__*/_jsx(WordText, {
156
+ value: `${word} `,
157
+ disableTranslation: disableTranslation,
158
+ handleTranslate: handleTranslate,
159
+ handleSpeak: handleSpeak,
160
+ learnLang: learnLang,
161
+ forLang: forLang,
162
+ voice: voice,
163
+ voicePitch: voicePitch,
164
+ voiceSpeed: voiceSpeed,
165
+ muteSound: muteSound,
166
+ disableHover: disableHover
167
+ }, index);
168
+ }
167
169
  return word;
168
- }
169
- });
170
- } else {
170
+ });
171
+ }
171
172
  return childElement;
172
- }
173
- }));
173
+ });
174
+ });
174
175
  };
175
176
  const components = {
176
177
  p: ({
@@ -1,7 +1,7 @@
1
1
  import { useState } from "react";
2
2
  import IconButton from "@mui/material/IconButton";
3
3
  import { Menu, MenuItem, Avatar, ListItemIcon, Typography, Box } from "@mui/material";
4
- import { useNavigate } from "react-router-dom";
4
+ import { useNavigate } from "react-router";
5
5
  import Person from "@mui/icons-material/Person";
6
6
  import LogoutIcon from "@mui/icons-material/Logout";
7
7
  import MenuBook from "@mui/icons-material/MenuBook";
@@ -92,10 +92,12 @@ export default function WhatsNew({
92
92
  sx: {
93
93
  maxWidth: "700px"
94
94
  },
95
- children: /*#__PURE__*/_jsx(ReactMarkdown, {
96
- rehypePlugins: rehypeRaw,
95
+ children: /*#__PURE__*/_jsx("div", {
97
96
  className: `${classes.markdown} content`,
98
- children: whatsNewMarkdown
97
+ children: /*#__PURE__*/_jsx(ReactMarkdown, {
98
+ rehypePlugins: rehypeRaw,
99
+ children: whatsNewMarkdown
100
+ })
99
101
  })
100
102
  })]
101
103
  })]
@@ -3,7 +3,7 @@ import { makeStyles } from "tss-react/mui";
3
3
  import PropTypes from "prop-types";
4
4
  import BottomNavigation from "@mui/material/BottomNavigation";
5
5
  import BottomNavigationAction from "@mui/material/BottomNavigationAction";
6
- import { useNavigate, useLocation } from "react-router-dom";
6
+ import { useNavigate, useLocation } from "react-router";
7
7
  import navigationImport from "../_nav";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  const useStyles = makeStyles()(theme => ({
@@ -1,4 +1,4 @@
1
- import { Link as RouterLink, matchPath, useLocation } from "react-router-dom";
1
+ import { Link as RouterLink, matchPath, useLocation } from "react-router";
2
2
  import { makeStyles } from "tss-react/mui";
3
3
  import Paper from "@mui/material/Paper";
4
4
  import Typography from "@mui/material/Typography";
@@ -35,7 +35,7 @@ const getPaths = pathname => {
35
35
  const findRouteName = url => {
36
36
  const aroute = routes.find(route => matchPath({
37
37
  path: route.path,
38
- exact: route.exact
38
+ end: route.exact
39
39
  }, url));
40
40
  return aroute && aroute.name ? aroute.name : null;
41
41
  };
@@ -3,7 +3,7 @@ import { describe, it } from "vitest";
3
3
  import "intersection-observer";
4
4
  import { ThemeProvider, createTheme } from "@mui/material/styles";
5
5
  import Breadcrumbs from "./Breadcrumbs";
6
- import { MemoryRouter } from "react-router-dom";
6
+ import { MemoryRouter } from "react-router";
7
7
  import { props } from "./Breadcrumbs.stories";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  describe("Breadcrumbs", () => {
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useState } from "react";
2
- import { Link as RouterLink, useLocation } from "react-router-dom";
2
+ import { Link as RouterLink, useLocation } from "react-router";
3
3
  import PropTypes from "prop-types";
4
4
  import { Tooltip, Divider, Drawer, Typography, useMediaQuery, List, ListItem, ListItemButton, ListItemIcon, ListItemText, ListItemSecondaryAction, IconButton, Avatar, Collapse, Box } from "@mui/material";
5
5
  import { makeStyles } from "tss-react/mui";
@@ -1,6 +1,6 @@
1
1
  import { render } from "@testing-library/react";
2
2
  import { describe, it } from "vitest";
3
- import { MemoryRouter } from "react-router-dom";
3
+ import { MemoryRouter } from "react-router";
4
4
  import { ThemeProvider, createTheme } from "@mui/material/styles";
5
5
  import ResponsiveDrawer from "./ResponsiveDrawer";
6
6
  import { props } from "./ResponsiveDrawer.stories";
@@ -1,6 +1,6 @@
1
1
  import { useEffect, useState } from "react";
2
2
  import PropTypes from "prop-types";
3
- import { Link } from "react-router-dom";
3
+ import { Link } from "react-router";
4
4
  import SwipeableViews from "react-swipeable-views";
5
5
  import AppBar from "@mui/material/AppBar";
6
6
  import Tooltip from "@mui/material/Tooltip";
@@ -1,5 +1,5 @@
1
1
  import { useState, useEffect, useRef, useMemo } from "react";
2
- import { Link as RouterLink, useNavigate, useLocation } from "react-router-dom";
2
+ import { Link as RouterLink, useNavigate, useLocation } from "react-router";
3
3
  import Joyride, { STATUS } from "react-joyride";
4
4
  import { Typography, Button, Box, Menu, MenuItem, IconButton, Tooltip } from "@mui/material";
5
5
  import { useTheme } from "@mui/material/styles";
@@ -1,5 +1,5 @@
1
1
  import { useState, useEffect } from "react";
2
- import { Link as RouterLink } from "react-router-dom";
2
+ import { Link as RouterLink } from "react-router";
3
3
  import { Typography, Menu, MenuItem, Button, Box, Card, CardContent } from "@mui/material";
4
4
  import { makeStyles } from "tss-react/mui";
5
5
  import { useTheme } from "@mui/material/styles";
@@ -3,7 +3,7 @@ import "regenerator-runtime/runtime";
3
3
  import useMediaQuery from "@mui/material/useMediaQuery";
4
4
  import { useTheme } from "@mui/material/styles";
5
5
  import { makeStyles } from "tss-react/mui";
6
- import { Link as RouterLink, useParams, useNavigate } from "react-router-dom";
6
+ import { Link as RouterLink, useParams, useNavigate } from "react-router";
7
7
  import { Typography, Avatar, Box, Menu, MenuItem, Button, Paper, Tooltip, Card, Grid, CardActionArea, CardContent } from "@mui/material";
8
8
  import LiveTvIcon from "@mui/icons-material/LiveTv";
9
9
  import Skeleton from "@mui/material/Skeleton";
@@ -1,6 +1,6 @@
1
1
  import PropTypes from "prop-types";
2
2
  import { makeStyles } from "tss-react/mui";
3
- import { Link as RouterLink } from "react-router-dom";
3
+ import { Link as RouterLink } from "react-router";
4
4
  import List from "@mui/material/List";
5
5
  import ListItem from "@mui/material/ListItem";
6
6
  import ListItemIcon from "@mui/material/ListItemIcon";
@@ -7,7 +7,7 @@ import LanguageSelector from "../../Forms/LanguageSelector/LanguageSelector";
7
7
  import HideOnScroll from "../../Misc/HideOnScroll/HideOnScroll";
8
8
  import SortBySelector from "../../Forms/SortBySelector/SortBySelector";
9
9
  import useDebounce from "../../hooks/useDebounce";
10
- import { useLocation } from "react-router-dom";
10
+ import { useLocation } from "react-router";
11
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
12
  const useStyles = makeStyles()((theme, {
13
13
  disablePadding
@@ -1,7 +1,7 @@
1
1
  import { useState, useEffect, Fragment } from "react";
2
2
  import PropTypes from "prop-types";
3
3
  import { withStyles } from "tss-react/mui";
4
- import { useNavigate, useLocation } from "react-router-dom";
4
+ import { useNavigate, useLocation } from "react-router";
5
5
  import { Typography, Box, List, Dialog, DialogContent, Card, CardActionArea, Button, Select, FormControl, InputLabel, IconButton, Tooltip, CircularProgress, Divider, MenuItem } from "@mui/material";
6
6
  import { red, orange, green, grey } from "@mui/material/colors";
7
7
  import Styles from "../../utils/Styles";
@@ -1,6 +1,6 @@
1
1
  import { useState } from "react";
2
2
  import PropTypes from "prop-types";
3
- import { Link as RouterLink } from "react-router-dom";
3
+ import { Link as RouterLink } from "react-router";
4
4
  import { ReactQuery } from "@nualang/nualang-api-and-queries/Queries";
5
5
  import TimelineIcon from "@mui/icons-material/Timeline";
6
6
  import ArrowBackIcon from "@mui/icons-material/ArrowBack";
@@ -1,5 +1,5 @@
1
1
  import { useState, useEffect, useRef, Fragment, useMemo } from "react";
2
- import { Link as RouterLink } from "react-router-dom";
2
+ import { Link as RouterLink } from "react-router";
3
3
  import { DateTime } from "luxon";
4
4
  import { ReactQuery } from "@nualang/nualang-api-and-queries/Queries";
5
5
  import TimelineIcon from "@mui/icons-material/Timeline";
@@ -2,7 +2,7 @@ import { useState } from "react";
2
2
  import { withStyles } from "tss-react/mui";
3
3
  import CircularProgress from "@mui/material/CircularProgress";
4
4
  import Styles from "../../utils/Styles";
5
- import { Link } from "react-router-dom";
5
+ import { Link } from "react-router";
6
6
 
7
7
  // Components
8
8
  import { Table, TableBody, TableCell, TableHead, TableRow, TablePagination, Paper, Button, Toolbar, Typography, IconButton } from "@mui/material";
@@ -2,7 +2,7 @@ import { useState } from "react";
2
2
  import { withStyles } from "tss-react/mui";
3
3
  import CircularProgress from "@mui/material/CircularProgress";
4
4
  import Styles from "../../utils/Styles";
5
- import { Link } from "react-router-dom";
5
+ import { Link } from "react-router";
6
6
 
7
7
  // Components
8
8
  import { Table, TableBody, TableCell, TableHead, TableRow, TableFooter, TablePagination, Paper, Button, Toolbar, Typography, IconButton } from "@mui/material";
@@ -1,5 +1,5 @@
1
1
  import { useState, useEffect } from "react";
2
- import { useNavigate } from "react-router-dom";
2
+ import { useNavigate } from "react-router";
3
3
  import distance from "jaro-winkler";
4
4
  import n2words from "n2words";
5
5
  import { shuffle, removeAllSymbols, removeAllSymbolsFillInBlanks, formatMarkdownNewlines, localeCompare, localeCompareCase, removeExtraWhiteSpaces } from "../utils/index";
@@ -1,5 +1,5 @@
1
1
  import { useCallback } from "react";
2
- import { useLocation, useNavigate } from "react-router-dom";
2
+ import { useLocation, useNavigate } from "react-router";
3
3
  export function useUrlQueryParam(name, {
4
4
  hash
5
5
  }) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nualang/nualang-ui-components",
3
- "version": "0.1.1329",
3
+ "version": "0.1.1331",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -43,13 +43,13 @@
43
43
  "jaro-winkler": "^0.2",
44
44
  "json-2-csv": "^5.5.10",
45
45
  "jsonlint": "^1.6.3",
46
- "jsonrepair": "^3.6.0",
46
+ "jsonrepair": "^3.13.2",
47
47
  "jszip": "^3.10.1",
48
48
  "luxon": "^3.6.1",
49
49
  "moment": "^2.29.4",
50
50
  "n2words": "^1.23.1",
51
51
  "patch-package": "^8.0.0",
52
- "pino": "^10.1.0",
52
+ "pino": "^10.2.1",
53
53
  "pixabay-api": "^1.0.4",
54
54
  "pre-commit": "^1.2.2",
55
55
  "rdndmb-html5-to-touch": "^9.0.0",
@@ -64,24 +64,24 @@
64
64
  "react-easy-crop": "^5.0.0",
65
65
  "react-feather": "^2.0",
66
66
  "react-flip-toolkit": "^7.1.0",
67
- "react-hook-form": "^7.65.0",
68
- "react-i18next": "^15.4.1",
67
+ "react-hook-form": "^7.71.1",
68
+ "react-i18next": "^16.5.3",
69
69
  "react-infinite-scroll-component": "^6.1.0",
70
70
  "react-infinite-scroller": "^1.2.6",
71
- "react-intersection-observer": "9.16.0",
71
+ "react-intersection-observer": "10.0.2",
72
72
  "react-joyride": "^2.8.2",
73
- "react-markdown": "^8.0.7",
73
+ "react-markdown": "^10.1.0",
74
74
  "react-modal-promise": "^1.0.2",
75
75
  "react-papaparse": "^4.1.0",
76
76
  "react-player": "^3.3.2",
77
- "react-qrcode-logo": "^3.0.0",
78
- "react-refresh": "^0.17.0",
77
+ "react-qrcode-logo": "^4.0.0",
78
+ "react-refresh": "^0.18.0",
79
79
  "react-simplemde-editor": "5.2.0",
80
80
  "react-spreadsheet-grid": "^1.4.3",
81
81
  "react-swipeable-views": "^0.14.0",
82
- "rehype-raw": "^6.1.0",
82
+ "rehype-raw": "^7.0.0",
83
83
  "socket.io-client": "^4.7.1",
84
- "styled-components": "^6.1.17",
84
+ "styled-components": "^6.3.8",
85
85
  "tss-react": "^4.9.16",
86
86
  "uifx": "^2.0",
87
87
  "wavesurfer.js": "^7.11.1",
@@ -91,11 +91,11 @@
91
91
  "_COMMENT_": "// Please note that peer dependencies are also included as dev dependencies to make development easier",
92
92
  "devDependencies": {
93
93
  "@babel/cli": "^7.27.0",
94
- "@babel/preset-env": "^7.28.5",
94
+ "@babel/preset-env": "^7.28.6",
95
95
  "@babel/preset-react": "^7.28.5",
96
96
  "@eslint/compat": "^1.2.8",
97
97
  "@mui/icons-material": "^7.0.2",
98
- "@mui/lab": "^7.0.0-beta.11",
98
+ "@mui/lab": "^7.0.1-beta.21",
99
99
  "@mui/material": "^7.0.2",
100
100
  "@mui/system": "^7.0.2",
101
101
  "@mui/x-date-pickers": "^7.28.3",
@@ -106,11 +106,11 @@
106
106
  "@storybook/addon-links": "^10.0.2",
107
107
  "@storybook/builder-vite": "^10.0.2",
108
108
  "@storybook/react-vite": "^10.0.2",
109
- "@tanstack/react-query": "5.74.4",
110
- "@tanstack/react-query-devtools": "5.74.4",
111
- "@tanstack/react-query-persist-client": "5.74.4",
109
+ "@tanstack/react-query": "5.90.19",
110
+ "@tanstack/react-query-devtools": "5.91.2",
111
+ "@tanstack/react-query-persist-client": "5.90.21",
112
112
  "@testing-library/dom": "^10.4.0",
113
- "@testing-library/react": "^16.3.0",
113
+ "@testing-library/react": "^16.3.2",
114
114
  "@vitejs/plugin-react": "^5.1.0",
115
115
  "babel-plugin-macros": "^3.1.0",
116
116
  "chalk": "^5.4.1",
@@ -121,19 +121,20 @@
121
121
  "eslint-plugin-react-hooks": "^5.1.0",
122
122
  "eslint-plugin-storybook": "9.1.3",
123
123
  "glob": "^11.0.2",
124
- "globals": "^16.0.0",
124
+ "globals": "^17.0.0",
125
+ "i18next": "^25.8.0",
125
126
  "intersection-observer": "^0.12.0",
126
127
  "jsdom": "^27.1.0",
127
128
  "msw": "^2.11.6",
128
129
  "msw-storybook-addon": "^2.0.6",
129
- "prettier": "^3.2.5",
130
- "react": "19.2.0",
131
- "react-dom": "19.2.0",
130
+ "prettier": "^3.8.0",
131
+ "react": "19.2.3",
132
+ "react-dom": "19.2.3",
132
133
  "react-pdf": "^10.2.0",
133
- "react-router-dom": "^6.30.0",
134
+ "react-router": "^7.12.0",
134
135
  "rimraf": "^6.1.0",
135
136
  "storybook": "^10.0.2",
136
- "vitest": "^3.1.1",
137
+ "vitest": "^4.0.17",
137
138
  "zx": "^8.8.5"
138
139
  },
139
140
  "scripts": {