@nualang/nualang-ui-components 0.1.1138 → 0.1.1139

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.
@@ -161,8 +161,8 @@ function GenerateRoleplayDialog({
161
161
  setGeneratedRoleplay([]);
162
162
  setErrorMessage("");
163
163
  let response;
164
- const prompt = usePdfContext ? `Create an informative conversation between 2 people ${values?.actor1?.name && values?.actor2?.name ? `'${values.actor1.name}' and '${values.actor2.name}' ` : ""} about the topic '${values.roleplayTopic}' in the language ${learnLang}.${values.roleplayDifficulty ? ` The conversation should be ${i18nLanguage === "en-US" ? "ACTFL" : "CEFR"} level '${t(values.roleplayDifficulty)}.'` : ""} Return the conversation inside an array, each text in the conversation should be inside an object in the array. Each object should have the keys actor and text. If the text belongs to person 1 then the key actor should equal to 1 else it should equal to 2. The key text should equal to the text in the conversation. Your response should be in JSON.` : `Create a conversation between 2 people ${values?.actor1?.name && values?.actor2?.name ? `'${values.actor1.name}' and '${values.actor2.name}' ` : ""}about the topic '${values.roleplayTopic}' in the language ${learnLang}.${values.roleplayDifficulty ? ` The conversation should be ${i18nLanguage === "en-US" ? "ACTFL" : "CEFR"} level '${t(values.roleplayDifficulty)}.'` : ""} Return the conversation inside an array, each text in the conversation should be inside an object in the array. Each object should have the keys actor and text. If the text belongs to person 1 then the key actor should equal to 1 else it should equal to 2. The key text should equal to the text in the conversation. Your response should be in JSON`;
165
- const promptWithQuestions = usePdfContext ? `Create an informative conversation between 2 people ${values?.actor1?.name && values?.actor2?.name ? `'${values.actor1.name}' and '${values.actor2.name}' ` : ""} about the topic '${values.roleplayTopic}' in the language ${learnLang}.${values.roleplayDifficulty ? ` The conversation should be ${i18nLanguage === "en-US" ? "ACTFL" : "CEFR"} level '${t(values.roleplayDifficulty)}.'` : ""} The conversation should be returned inside a single array along with three comprehension questions related to the conversation. Each piece of dialogue and each question should be represented as an object in the array. For dialogue, the objects should have the keys 'actor' and 'text'. The 'actor' key should be set to 1 if the dialogue is spoken by the first actor, and 2 if it is spoken by the second actor. The 'text' key should be set to the dialogue text spoken by that actor. For questions, the objects should have the keys 'question' and 'answers'. The 'question' key should be set to the text of the question being asked. The 'answers' key should be an array of three objects, each representing a different answer to the question where only one is correct and two are incorrect. The objects in the 'answers' array should have the keys 'text', 'correct' and 'type'. The 'text' key should contain the answer text, 'correct' should be true for the correct answer and false for incorrect ones, and 'type' should always be equal to 'multichoice'. The entire output must be in a single JSON array without separating the dialogue and questions into different arrays.` : `Create a conversation between 2 people ${values?.actor1?.name && values?.actor2?.name ? `'${values.actor1.name}' and '${values.actor2.name}' ` : ""}about the topic '${values.roleplayTopic}' in the language ${learnLang}.${values.roleplayDifficulty ? ` The conversation should be ${i18nLanguage === "en-US" ? "ACTFL" : "CEFR"} level '${t(values.roleplayDifficulty)}.'` : ""} The conversation should be returned inside a single array along with three comprehension questions related to the conversation. Each piece of dialogue and each question should be represented as an object in the array. For dialogue, the objects should have the keys 'actor' and 'text'. The 'actor' key should be set to 1 if the dialogue is spoken by the first actor, and 2 if it is spoken by the second actor. The 'text' key should be set to the dialogue text spoken by that actor. For questions, the objects should have the keys 'question' and 'answers'. The 'question' key should be set to the text of the question being asked. The 'answers' key should be an array of three objects, each representing a different answer to the question where only one is correct and two are incorrect. The objects in the 'answers' array should have the keys 'text', 'correct' and 'type'. The 'text' key should contain the answer text, 'correct' should be true for the correct answer and false for incorrect ones, and 'type' should always be equal to 'multichoice'. The entire output must be in a single JSON array without separating the dialogue and questions into different arrays.`;
164
+ const prompt = usePdfContext ? `Create an informative conversation between 2 people ${values?.actor1?.name && values?.actor2?.name ? `'${values.actor1.name}' and '${values.actor2.name}' ` : ""} about the topic '${values.roleplayTopic}' in the language ${learnLang}.${values.roleplayDifficulty ? ` The conversation should be ${i18nLanguage === "en-US" ? "ACTFL" : "CEFR"} level '${t(values.roleplayDifficulty)}.'` : ""} Return the conversation inside an array that is ${values.roleplayLengthNumber} objects in length , each text in the conversation should be inside an object in the array. Each object should have the keys actor and text. If the text belongs to person 1 then the key actor should equal to 1 else it should equal to 2. The key text should equal to the text in the conversation. Your response should be in JSON.` : `Create a conversation between 2 people ${values?.actor1?.name && values?.actor2?.name ? `'${values.actor1.name}' and '${values.actor2.name}' ` : ""}about the topic '${values.roleplayTopic}' in the language ${learnLang}.${values.roleplayDifficulty ? ` The conversation should be ${i18nLanguage === "en-US" ? "ACTFL" : "CEFR"} level '${t(values.roleplayDifficulty)}.'` : ""} Return the conversation inside an array that is ${values.roleplayLengthNumber} objects in length , each text in the conversation should be inside an object in the array. Each object should have the keys actor and text. If the text belongs to person 1 then the key actor should equal to 1 else it should equal to 2. The key text should equal to the text in the conversation. Your response should be in JSON`;
165
+ const promptWithQuestions = usePdfContext ? `Create an informative conversation between 2 people ${values?.actor1?.name && values?.actor2?.name ? `'${values.actor1.name}' and '${values.actor2.name}' ` : ""} about the topic '${values.roleplayTopic}' in the language ${learnLang}.${values.roleplayDifficulty ? ` The conversation should be ${i18nLanguage === "en-US" ? "ACTFL" : "CEFR"} level '${t(values.roleplayDifficulty)}.'` : ""} The conversation should be returned inside a single array that is ${values.roleplayLengthNumber} objects in length along with ${values?.questionsAmount} comprehension questions related to the conversation. Each piece of dialogue and each question should be represented as an object in the array. For dialogue, the objects should have the keys 'actor' and 'text'. The 'actor' key should be set to 1 if the dialogue is spoken by the first actor, and 2 if it is spoken by the second actor. The 'text' key should be set to the dialogue text spoken by that actor. For questions, the objects should have the keys 'question' and 'answers'. The 'question' key should be set to the text of the question being asked. The 'answers' key should be an array of three objects, each representing a different answer to the question where only one is correct and two are incorrect. The objects in the 'answers' array should have the keys 'text', 'correct' and 'type'. The 'text' key should contain the answer text, 'correct' should be true for the correct answer and false for incorrect ones, and 'type' should always be equal to 'multichoice'. The entire output must be in a single JSON array without separating the dialogue and questions into different arrays.` : `Create a conversation between 2 people ${values?.actor1?.name && values?.actor2?.name ? `'${values.actor1.name}' and '${values.actor2.name}' ` : ""}about the topic '${values.roleplayTopic}' in the language ${learnLang}.${values.roleplayDifficulty ? ` The conversation should be ${i18nLanguage === "en-US" ? "ACTFL" : "CEFR"} level '${t(values.roleplayDifficulty)}.'` : ""} The conversation should be returned inside a single array that is ${values.roleplayLengthNumber} objects in length along with ${values?.questionsAmount} comprehension questions related to the conversation. Each piece of dialogue and each question should be represented as an object in the array. For dialogue, the objects should have the keys 'actor' and 'text'. The 'actor' key should be set to 1 if the dialogue is spoken by the first actor, and 2 if it is spoken by the second actor. The 'text' key should be set to the dialogue text spoken by that actor. For questions, the objects should have the keys 'question' and 'answers'. The 'question' key should be set to the text of the question being asked. The 'answers' key should be an array of three objects, each representing a different answer to the question where only one is correct and two are incorrect. The objects in the 'answers' array should have the keys 'text', 'correct' and 'type'. The 'text' key should contain the answer text, 'correct' should be true for the correct answer and false for incorrect ones, and 'type' should always be equal to 'multichoice'. The entire output must be in a single JSON array without separating the dialogue and questions into different arrays.`;
166
166
  const roleplayTemplate = {
167
167
  roleplayId: (0, _utils.randomId)(),
168
168
  roleplayName: values.roleplayTopic,
@@ -194,10 +194,22 @@ function GenerateRoleplayDialog({
194
194
  } = responseObject[responseKey][0];
195
195
  response = (0, _jsonrepair.jsonrepair)(text);
196
196
  } else {
197
- const chatGptResponse = await makeChatGptApiRequest({
197
+ let chatGptResponse = await makeChatGptApiRequest({
198
198
  model: "gpt-3.5-turbo",
199
199
  prompt: activePrompt
200
200
  });
201
+ let isComplete = false;
202
+ while (!isComplete) {
203
+ if (chatGptResponse.endsWith("...") || chatGptResponse.trim().endsWith(",")) {
204
+ const continuationResponse = await makeChatGptApiRequest({
205
+ model: "gpt-3.5-turbo",
206
+ prompt: "Continue: " + chatGptResponse
207
+ });
208
+ chatGptResponse += continuationResponse;
209
+ } else {
210
+ isComplete = true;
211
+ }
212
+ }
201
213
  response = chatGptResponse;
202
214
  }
203
215
  const jsonResponse = removeExtraTextFromChatGptResponse(response);
@@ -249,8 +261,21 @@ function GenerateRoleplayDialog({
249
261
  if (autoSelect) {
250
262
  isSubmitDisabled = !values.roleplayTopic || isRoleplayGenerating;
251
263
  } else {
252
- isSubmitDisabled = !(generatedRoleplay !== [] && !isRoleplayGenerating && previewMessages.length > 1);
264
+ isSubmitDisabled = !(generatedRoleplay.length !== 0 && !isRoleplayGenerating && previewMessages.length > 1);
253
265
  }
266
+ (0, _react.useEffect)(() => {
267
+ if (!generateQuestions) {
268
+ setValues(prevValues => ({
269
+ ...prevValues,
270
+ questionsAmount: 0
271
+ }));
272
+ } else {
273
+ setValues(prevValues => ({
274
+ ...prevValues,
275
+ questionsAmount: prevValues.questionsAmount || Math.floor(prevValues.roleplayLengthNumber / 2)
276
+ }));
277
+ }
278
+ }, [generateQuestions]);
254
279
  return /*#__PURE__*/_react.default.createElement(_ResponsiveDialog.default, {
255
280
  open: isGenerateRoleplayDialogOpen,
256
281
  handleClose: handleCloseDialog,
@@ -317,7 +342,8 @@ function GenerateRoleplayDialog({
317
342
  rows: 3
318
343
  }))), !hideRoleplayDifficultyOptions && !isRoleplayGenerating && /*#__PURE__*/_react.default.createElement(_material.Grid, {
319
344
  item: true,
320
- xs: 12
345
+ xs: 12,
346
+ marginBottom: 1
321
347
  }, /*#__PURE__*/_react.default.createElement(_material.TextField, {
322
348
  select: true,
323
349
  id: "roleplayDifficulty",
@@ -357,15 +383,58 @@ function GenerateRoleplayDialog({
357
383
  margin: "normal",
358
384
  variant: "outlined",
359
385
  fullWidth: true
360
- }, roleplayLengthOptions)), !isRoleplayGenerating && /*#__PURE__*/_react.default.createElement(_material.FormGroup, null, /*#__PURE__*/_react.default.createElement(_material.Grid, {
386
+ }, roleplayLengthOptions)), !isRoleplayGenerating && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.Grid, {
361
387
  item: true,
362
388
  xs: 12
389
+ }, /*#__PURE__*/_react.default.createElement(_material.Typography, {
390
+ id: "input-slider",
391
+ gutterBottom: true
392
+ }, t("number_of_interactions") + ": " + values.roleplayLengthNumber), /*#__PURE__*/_react.default.createElement(_material.Slider, {
393
+ "aria-label": "Number of Interactions",
394
+ defaultValue: 8,
395
+ valueLabelDisplay: "auto",
396
+ value: values.roleplayLengthNumber,
397
+ onChange: (e, newValue) => {
398
+ const maxQuestions = Math.floor(newValue / 2);
399
+ setValues(prevValues => ({
400
+ ...prevValues,
401
+ roleplayLengthNumber: newValue,
402
+ questionsAmount: Math.min(prevValues.questionsAmount, maxQuestions)
403
+ }));
404
+ },
405
+ step: 2,
406
+ marks: true,
407
+ min: 4,
408
+ max: 12
409
+ })), /*#__PURE__*/_react.default.createElement(_material.FormGroup, null, /*#__PURE__*/_react.default.createElement(_material.Grid, {
410
+ item: true,
411
+ xs: 12,
412
+ marginBottom: 1
363
413
  }, /*#__PURE__*/_react.default.createElement(_material.FormControlLabel, {
364
414
  control: /*#__PURE__*/_react.default.createElement(_material.Checkbox, {
365
415
  checked: generateQuestions,
366
416
  onChange: e => setGenerateQuestions(e.target.checked)
367
417
  }),
368
418
  label: "Generate Questions"
419
+ }))), generateQuestions && /*#__PURE__*/_react.default.createElement(_material.Grid, {
420
+ item: true,
421
+ xs: 12
422
+ }, /*#__PURE__*/_react.default.createElement(_material.Typography, {
423
+ id: "input-slider",
424
+ gutterBottom: true
425
+ }, t("number_of_questions") + ": " + values.questionsAmount), /*#__PURE__*/_react.default.createElement(_material.Slider, {
426
+ "aria-label": "Number of Questions",
427
+ defaultValue: Math.floor(values?.roleplayLengthNumber / 2),
428
+ valueLabelDisplay: "auto",
429
+ value: values?.questionsAmount,
430
+ onChange: (e, newValue) => setValues({
431
+ ...values,
432
+ questionsAmount: newValue
433
+ }),
434
+ step: 1,
435
+ marks: true,
436
+ min: 1,
437
+ max: Math.floor(values?.roleplayLengthNumber / 2)
369
438
  }))), process.env.REACT_APP_STAGE === "dev" && !isRoleplayGenerating && pdfDetails && pdfVectorStoreCreationStatus === "CREATION_COMPLETE" && /*#__PURE__*/_react.default.createElement(_material.Grid, {
370
439
  item: true,
371
440
  xs: 12
@@ -404,7 +473,7 @@ function GenerateRoleplayDialog({
404
473
  loading: isRoleplayGenerating,
405
474
  loadingPosition: "start",
406
475
  startIcon: /*#__PURE__*/_react.default.createElement(_AutoFixHigh.default, null)
407
- }, t("generate_roleplay"))), !autoSelect && generatedRoleplay !== [] && !isRoleplayGenerating && previewMessages.length > 1 && /*#__PURE__*/_react.default.createElement(_material.Grid, {
476
+ }, t("generate_roleplay"))), !autoSelect && generatedRoleplay.length !== 0 && !isRoleplayGenerating && previewMessages.length > 1 && /*#__PURE__*/_react.default.createElement(_material.Grid, {
408
477
  item: true,
409
478
  xs: 12,
410
479
  mt: 2
@@ -441,6 +510,8 @@ GenerateRoleplayDialog.defaultProps = {
441
510
  initialValues: {
442
511
  roleplayTopic: "",
443
512
  roleplayDifficulty: "",
513
+ roleplayLengthNumber: 8,
514
+ questionsAmount: 0,
444
515
  roleplayLength: "",
445
516
  actor1: {
446
517
  name: "Carla",
@@ -17,7 +17,8 @@ const useStyles = (0, _mui.makeStyles)()(() => ({
17
17
  function ModeratedDialog({
18
18
  t,
19
19
  open,
20
- handleClose
20
+ handleClose,
21
+ moderationReason
21
22
  }) {
22
23
  const {
23
24
  classes
@@ -27,7 +28,9 @@ function ModeratedDialog({
27
28
  handleClose: handleClose,
28
29
  dialogTitle: t("moderate_title"),
29
30
  className: classes.zIndex
30
- }, /*#__PURE__*/_react.default.createElement(_DialogContentText.default, null, /*#__PURE__*/_react.default.createElement("p", null, t("moderated_image_dialog"))));
31
+ }, /*#__PURE__*/_react.default.createElement(_DialogContentText.default, null, /*#__PURE__*/_react.default.createElement("p", null, t("moderated_image_dialog")), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("p", null, t("moderation_reason", {
32
+ moderationReason: moderationReason
33
+ }))));
31
34
  }
32
35
  ModeratedDialog.defaultProps = {
33
36
  t: text => text
@@ -632,7 +632,7 @@ function Roleplay({
632
632
  run,
633
633
  steps
634
634
  } = joyrideState;
635
- const topBarActions = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, subscription?.isPaidUser && /*#__PURE__*/_react.default.createElement(_material.Button, {
635
+ const topBarActions = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.Box, null, subscription?.isPaidUser && /*#__PURE__*/_react.default.createElement(_material.Button, {
636
636
  sx: {
637
637
  marginRight: 1
638
638
  },
@@ -656,7 +656,7 @@ function Roleplay({
656
656
  open: uploadRoleplayScript,
657
657
  handleClose: () => setUploadRoleplayScript(false),
658
658
  onSubmit: onSubmit
659
- }));
659
+ })));
660
660
  return /*#__PURE__*/_react.default.createElement(_material.Dialog, {
661
661
  fullScreen: true,
662
662
  open: open,
@@ -838,6 +838,8 @@ function Roleplay({
838
838
  roleplayTopic: roleplay.roleplayName,
839
839
  roleplayDifficulty: roleplay.difficulty,
840
840
  roleplayLength: "",
841
+ questionsAmount: 0,
842
+ roleplayLengthNumber: 8,
841
843
  actor1: roleplay.actor1,
842
844
  actor2: roleplay.actor2
843
845
  },
@@ -127,19 +127,11 @@ function VideoUploader({
127
127
  isDragAccept,
128
128
  isDragReject
129
129
  });
130
- const inputRef = _react.default.useRef();
131
- const handleFileChange = event => {
132
- const file = event.target.files[0];
133
- const url = URL.createObjectURL(file);
134
- setFile(url);
135
- };
136
130
  return /*#__PURE__*/_react.default.createElement("section", {
137
131
  className: "container"
138
132
  }, !file && /*#__PURE__*/_react.default.createElement("div", getRootProps({
139
133
  className: classes.dropzoneContainer
140
134
  }), /*#__PURE__*/_react.default.createElement("input", _extends({}, getInputProps(), {
141
- onChange: handleFileChange,
142
- ref: inputRef,
143
135
  accept: ".mov,.mp4"
144
136
  })), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("img", {
145
137
  className: classes.selectFileImage,
@@ -11,7 +11,7 @@ var _CourseOutline = _interopRequireDefault(require("./CourseOutline"));
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  const Template = args => /*#__PURE__*/_react.default.createElement(_CourseOutline.default, args);
13
13
  const props = exports.props = {
14
- isMember: false,
14
+ isMember: true,
15
15
  isCreator: false,
16
16
  courseId: "123",
17
17
  sections: _Course.props.course.sections,
@@ -312,6 +312,7 @@ function Course({
312
312
  setIsSubmitting(false);
313
313
  console.error(error);
314
314
  }
315
+ handleCloseMenu();
315
316
  };
316
317
  const handleCLickOpenUpload = () => {
317
318
  setIsUploadPdfOpen(true);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nualang/nualang-ui-components",
3
- "version": "0.1.1138",
3
+ "version": "0.1.1139",
4
4
  "main": "dist/index.js",
5
5
  "files": [
6
6
  "dist",
@@ -15,46 +15,46 @@
15
15
  "@emoji-mart/react": "^1.1.1",
16
16
  "@emotion/react": "^11.10.8",
17
17
  "@emotion/styled": "^11.10.8",
18
- "@hookform/resolvers": "^3.3.4",
18
+ "@nualang/videochat-ui-components": "^0.0.168",
19
+ "@hookform/resolvers": "^3.6.0",
19
20
  "@json2csv/plainjs": "^7.0.1",
20
- "@mui/icons-material": "^5.14.1",
21
+ "@mui/icons-material": "^5.15.20",
21
22
  "@mui/lab": "^5.0.0-alpha.137",
22
- "@mui/material": "^5.14.2",
23
- "@mui/system": "^5.14.1",
24
- "@mui/x-date-pickers": "^6.10.1",
25
- "@nualang/videochat-ui-components": "^0.0.168",
26
- "@storybook/theming": "^7.6.17",
23
+ "@mui/material": "^5.15.20",
24
+ "@mui/system": "^5.15.20",
25
+ "@mui/x-date-pickers": "^7.7.0",
26
+ "@storybook/theming": "^8.1.10",
27
27
  "@stripe/react-stripe-js": "^2.1.1",
28
28
  "@stripe/stripe-js": "^1.54.2",
29
29
  "ajv-keywords": "^3.5.2",
30
30
  "avataaars": "^2.0.0",
31
31
  "base64-arraybuffer": "^1.0.2",
32
- "chart.js": "^4.3.2",
32
+ "chart.js": "^4.4.3",
33
33
  "chartjs-plugin-datalabels": "^2.2.0",
34
34
  "classnames": "^2.3.1",
35
35
  "codegen": "^0.1.0",
36
36
  "codemirror": "^5.61.1",
37
- "date-fns": "3.3.1",
37
+ "date-fns": "3.6.0",
38
38
  "deep-equal": "^2.2.2",
39
39
  "easymde": "2.18.0",
40
40
  "emoji-mart": "5.5.2",
41
- "export-to-csv": "^0.2.1",
41
+ "export-to-csv": "^1.3.0",
42
42
  "formik": "^2.2.9",
43
43
  "fs": "^0.0.1-security",
44
44
  "immutability-helper": "^3.0",
45
45
  "jaro-winkler": "^0.2",
46
- "json-2-csv": "^4.0.0",
46
+ "json-2-csv": "^5.5.1",
47
47
  "jsonlint": "^1.6.3",
48
48
  "jsonrepair": "^3.6.0",
49
49
  "luxon": "^3.3.0",
50
50
  "moment": "^2.29.4",
51
- "n2words": "^1.19.1",
51
+ "n2words": "^1.21.0",
52
52
  "pixabay-api": "^1.0.4",
53
53
  "pre-commit": "^1.2.2",
54
54
  "rdndmb-html5-to-touch": "^8.0.0",
55
55
  "react-beautiful-dnd": "^13.1.1",
56
56
  "react-chartjs-2": "^5.2.0",
57
- "react-codemirror2": "^7.2.1",
57
+ "react-codemirror2": "^8.0.0",
58
58
  "react-copy-to-clipboard": "^5.0",
59
59
  "react-countdown-circle-timer": "^3.2.1",
60
60
  "react-csv": "^2.2.2",
@@ -65,16 +65,17 @@
65
65
  "react-feather": "^2.0",
66
66
  "react-flip-move": "^3.0.5",
67
67
  "react-flip-toolkit": "^7.1.0",
68
- "react-hook-form": "^7.51.3",
69
- "react-i18next": "^14.0.5",
68
+ "react-hook-form": "^7.52.0",
69
+ "react-i18next": "^14.1.2",
70
70
  "react-infinite-scroll-component": "^6.1.0",
71
71
  "react-infinite-scroller": "^1.2.6",
72
- "react-intersection-observer": "^9.5.2",
73
- "react-joyride": "^2.5.5",
72
+ "react-intersection-observer": "9.10.3",
73
+ "react-joyride": "^2.8.2",
74
74
  "react-markdown": "^8.0.7",
75
75
  "react-modal-promise": "^1.0.2",
76
76
  "react-papaparse": "^4.1.0",
77
77
  "react-pdf": "^7.7.1",
78
+ "react-refresh": "^0.14.2",
78
79
  "react-player": "^2.16.0",
79
80
  "react-qrcode-logo": "^3.0.0",
80
81
  "react-router-dom": "^6.22.1",
@@ -90,33 +91,30 @@
90
91
  "styled-components": "^6.1.0",
91
92
  "tss-react": "^4.9.3",
92
93
  "uifx": "^2.0",
93
- "wavesurfer.js": "^7.7.3",
94
+ "wavesurfer.js": "^7.7.15",
94
95
  "xlsx": "^0.18.5",
95
96
  "yup": "^1.4.0"
96
97
  },
97
98
  "_COMMENT_": "// Please note that peer dependencies are also included as dev dependencies to make development easier",
98
99
  "devDependencies": {
99
- "@babel/cli": "^7.22.9",
100
- "@babel/plugin-proposal-private-property-in-object": "^7.18.6",
101
- "@babel/preset-env": "^7.21.5",
102
- "@babel/preset-react": "^7.14.5",
100
+ "@babel/cli": "^7.24.7",
101
+ "@babel/plugin-proposal-private-property-in-object": "7.18.6",
102
+ "@babel/preset-env": "^7.24.7",
103
+ "@babel/preset-react": "^7.24.7",
103
104
  "@react-theming/storybook-addon": "^1.1.10",
104
- "@storybook/addon-actions": "^7.6.17",
105
- "@storybook/addon-essentials": "^7.6.17",
106
- "@storybook/addon-links": "^7.6.17",
107
- "@storybook/addon-mdx-gfm": "^7.6.17",
108
- "@storybook/addon-storyshots": "^7.6.17",
109
- "@storybook/addon-viewport": "^7.6.17",
110
- "@storybook/addons": "^7.6.17",
111
- "@storybook/node-logger": "^7.6.17",
112
- "@storybook/preset-create-react-app": "^7.6.17",
113
- "@storybook/react": "^7.6.17",
114
- "@storybook/react-webpack5": "^7.6.17",
115
- "@tanstack/react-query": "5.22.2",
116
- "@tanstack/react-query-devtools": "5.24.0",
117
- "@tanstack/react-query-persist-client": "5.22.2",
105
+ "@storybook/addon-actions": "^8.1.10",
106
+ "@storybook/addon-essentials": "^8.1.10",
107
+ "@storybook/addon-links": "^8.1.10",
108
+ "@storybook/addon-mdx-gfm": "^8.1.10",
109
+ "@storybook/addon-viewport": "^8.1.10",
110
+ "@storybook/node-logger": "^8.1.10",
111
+ "@storybook/preset-create-react-app": "^8.1.10",
112
+ "@storybook/react": "^8.1.10",
113
+ "@storybook/react-webpack5": "^8.1.10",
114
+ "@tanstack/react-query": "5.45.1",
115
+ "@tanstack/react-query-devtools": "5.45.1",
116
+ "@tanstack/react-query-persist-client": "5.45.1",
118
117
  "babel-plugin-macros": "^3.1.0",
119
- "chromatic": "^6.20.0",
120
118
  "clsx": "^2.0.0",
121
119
  "cross-env": "^7.0.3",
122
120
  "eslint-plugin-jsx-a11y": "^6.8.0",
@@ -128,14 +126,14 @@
128
126
  "react": "^18.2.0",
129
127
  "react-dom": "^18.2.0",
130
128
  "react-scripts": "^5.0.1",
131
- "storybook": "^7.6.17"
129
+ "storybook": "^8.1.10"
132
130
  },
133
131
  "scripts": {
134
132
  "postinstall": "patch-package",
135
133
  "start": "npm run storybook",
136
134
  "build": "react-scripts build",
137
- "test": "react-scripts test --testPathIgnorePatterns=src/storybook.test.js --transformIgnorePatterns \"node_modules/(?!@codemirror)/\"",
138
- "test:unit": "cross-env CI=true react-scripts test ./ --ci --testPathIgnorePatterns=src/storybook.test.js --transformIgnorePatterns \"node_modules/(?!@codemirror)/\"",
135
+ "test": "react-scripts test --transformIgnorePatterns \"node_modules/(?!@codemirror)/\"",
136
+ "test:unit": "cross-env CI=true react-scripts test ./ --ci --transformIgnorePatterns \"node_modules/(?!@codemirror)/\"",
139
137
  "storybook": "storybook dev -p 9009",
140
138
  "build-storybook": "storybook build",
141
139
  "clean": "rimraf dist",
@@ -144,7 +142,6 @@
144
142
  "postversion": "npm publish && git push && git push --tags",
145
143
  "localpack": "npm run compile && npm pack",
146
144
  "lint": "eslint --ext .js,.jsx --ignore-pattern dist src",
147
- "chromatic": "npx chromatic --project-token=a2273931692a --exit-zero-on-changes",
148
145
  "prettier": "npx prettier ./src --write"
149
146
  },
150
147
  "pre-commit": [