@nualang/nualang-ui-components 0.1.1400 → 0.1.1401

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.
@@ -7,23 +7,10 @@ import EditIcon from "@mui/icons-material/Create";
7
7
  import Share from "@mui/icons-material/Share";
8
8
  import MoreVertIcon from "@mui/icons-material/MoreVert";
9
9
  import { makeStyles } from "tss-react/mui";
10
- import { withStyles } from "tss-react/mui";
11
10
  import { alpha } from "@mui/material/styles";
12
11
  import VoiceSpeedSelector from "../../../Misc/VoiceSpeed/VoiceSpeed";
13
12
  import ReportProblem from "../../../Misc/ReportProblem/ReportProblem";
14
13
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
15
- const RoundedLinearProgress = withStyles(LinearProgress, theme => ({
16
- root: {
17
- height: 12,
18
- borderRadius: 4
19
- },
20
- colorPrimary: {
21
- backgroundColor: alpha(theme.palette.success.light, 0.25)
22
- },
23
- barColorPrimary: {
24
- backgroundColor: theme.palette.success.main
25
- }
26
- }));
27
14
  const useStyles = makeStyles()((theme, _params, classes) => ({
28
15
  label: {
29
16
  color: "#fff"
@@ -238,13 +225,21 @@ const TopBarActions = ({
238
225
  children: roleplayHasStarted || isRoleplayPreview ? /*#__PURE__*/_jsxs(_Fragment, {
239
226
  children: [!isRoleplayPreview && /*#__PURE__*/_jsx("div", {
240
227
  className: classes.progress,
241
- children: /*#__PURE__*/_jsx(RoundedLinearProgress, {
228
+ children: /*#__PURE__*/_jsx(LinearProgress, {
242
229
  variant: "determinate",
243
230
  value: currentMessages.length / roleplay.script.length * 100,
244
231
  "aria-label": t("exercise"),
245
232
  "aria-valuemin": 0,
246
233
  "aria-valuemax": 100,
247
- "aria-valuenow": currentMessages.length / roleplay.script.length * 100
234
+ "aria-valuenow": currentMessages.length / roleplay.script.length * 100,
235
+ sx: {
236
+ height: 12,
237
+ borderRadius: 4,
238
+ backgroundColor: theme => alpha(theme.palette.success.light, 0.25),
239
+ "& .MuiLinearProgress-bar": {
240
+ backgroundColor: theme => theme.palette.success.main
241
+ }
242
+ }
248
243
  })
249
244
  }), hiddenDown ? null : /*#__PURE__*/_jsxs(_Fragment, {
250
245
  children: [/*#__PURE__*/_jsx(VoiceSpeedSelector, {
@@ -1,9 +1,8 @@
1
1
  import { useEffect, useState, memo } from "react";
2
2
  import { Joyride, STATUS } from "react-joyride";
3
3
  import { useTheme, alpha } from "@mui/material/styles";
4
- import { withStyles } from "tss-react/mui";
5
4
  import { makeStyles } from "tss-react/mui";
6
- import { Grid, Slide, IconButton, Button, ButtonBase, Avatar, Dialog, Typography, Box, Divider, Tooltip, LinearProgress, useMediaQuery } from "@mui/material";
5
+ import { Grid, Slide, IconButton, Button, ButtonBase, Avatar, Dialog, Typography, Box, Divider, Tooltip, useMediaQuery, LinearProgress } from "@mui/material";
7
6
  import Alert from "@mui/material/Alert";
8
7
  import Menu from "@mui/material/Menu";
9
8
  import MenuItem from "@mui/material/MenuItem";
@@ -31,18 +30,6 @@ import ReportProblem from "../../Misc/ReportProblem/ReportProblem";
31
30
  import { removeExtraWhiteSpaces } from "../../utils";
32
31
  import DefaultButton from "../../Misc/DefaultColourButton/DefaultColourButton";
33
32
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
34
- const RoundedLinearProgress = withStyles(LinearProgress, theme => ({
35
- root: {
36
- height: 12,
37
- borderRadius: 4
38
- },
39
- colorPrimary: {
40
- backgroundColor: alpha(theme.palette.success.light, 0.25)
41
- },
42
- barColorPrimary: {
43
- backgroundColor: theme.palette.success.main
44
- }
45
- }));
46
33
  const useStyles = makeStyles()((theme, {
47
34
  isActorOne
48
35
  }, classes) => ({
@@ -629,9 +616,17 @@ function Roleplay({
629
616
  children: roleplayHasStarted ? /*#__PURE__*/_jsxs(_Fragment, {
630
617
  children: [/*#__PURE__*/_jsx("div", {
631
618
  className: classes.progress,
632
- children: /*#__PURE__*/_jsx(RoundedLinearProgress, {
619
+ children: /*#__PURE__*/_jsx(LinearProgress, {
633
620
  variant: "determinate",
634
- value: currentMessages.length / roleplay.script.length * 100
621
+ value: currentMessages.length / roleplay.script.length * 100,
622
+ sx: {
623
+ height: 12,
624
+ borderRadius: 4,
625
+ backgroundColor: theme => alpha(theme.palette.success.light, 0.25),
626
+ "& .MuiLinearProgress-bar": {
627
+ backgroundColor: theme => theme.palette.success.main
628
+ }
629
+ }
635
630
  })
636
631
  }), hiddenDown ? null : /*#__PURE__*/_jsxs(_Fragment, {
637
632
  children: [/*#__PURE__*/_jsxs(Button, {
@@ -27,7 +27,8 @@ function Exercise({
27
27
  sectionId,
28
28
  topicId,
29
29
  setIsExerciseSelected,
30
- phrases
30
+ phrases,
31
+ topicName
31
32
  }) {
32
33
  const noRoleplays = name.toLowerCase() === "roleplays" && roleplays.length === 0;
33
34
  const noPhrases = name.toLowerCase() === "phrases" && !phrases?.length && !getPhraseLists;
@@ -96,7 +97,8 @@ function Exercise({
96
97
  isExerciseSelected: isExerciseSelected,
97
98
  setIsExerciseSelected: setIsExerciseSelected,
98
99
  isExpanded: phraseListsOpen,
99
- onPhraseListsLoaded: handlePhraseListsLoaded
100
+ onPhraseListsLoaded: handlePhraseListsLoaded,
101
+ topicName: topicName
100
102
  })
101
103
  })
102
104
  }), name.toLowerCase() === "roleplays" && /*#__PURE__*/_jsx(Collapse, {
@@ -114,7 +116,8 @@ function Exercise({
114
116
  t: t,
115
117
  isExerciseSelected: isExerciseSelected,
116
118
  handleSelectExercise: handleSelectExercise,
117
- useCase: useCase
119
+ useCase: useCase,
120
+ topicName: topicName
118
121
  })
119
122
  })
120
123
  })]
@@ -340,6 +343,7 @@ function Topic({
340
343
  handleStartExercise: handleStartExercise,
341
344
  isCreator: isCreator,
342
345
  getPhraseLists: getPhraseLists,
346
+ topicName: topicName,
343
347
  ...otherProps
344
348
  })
345
349
  })]
@@ -15,7 +15,8 @@ import { searchStringToObj, objToSearchString } from "../../utils";
15
15
  import FlashOnIcon from "@mui/icons-material/FlashOn";
16
16
  import FlashOffIcon from "@mui/icons-material/FlashOff";
17
17
  import MenuBookIcon from "@mui/icons-material/MenuBook";
18
- import { Collapse, ListItemText, ListItemIcon, List, ListItemAvatar, IconButton, Badge, Tooltip, Box, Chip, LinearProgress } from "@mui/material";
18
+ import { Collapse, ListItemText, ListItemIcon, List, ListItemAvatar, IconButton, Badge, Tooltip, Box, Chip } from "@mui/material";
19
+ import ColorLinearProgress from "../../Misc/ColorLinearProgress/ColorLinearProgress";
19
20
  import Add from "@mui/icons-material/Add";
20
21
  import Face from "@mui/icons-material/Face";
21
22
  import ForumIcon from "@mui/icons-material/Forum";
@@ -181,13 +182,9 @@ function ItemProgressBar({
181
182
  sx: {
182
183
  width: 160
183
184
  },
184
- children: /*#__PURE__*/_jsx(LinearProgress, {
185
+ children: /*#__PURE__*/_jsx(ColorLinearProgress, {
185
186
  variant: "determinate",
186
- value: pct,
187
- sx: {
188
- height: 6,
189
- borderRadius: 3
190
- }
187
+ value: pct
191
188
  })
192
189
  }), /*#__PURE__*/_jsx(Typography, {
193
190
  variant: "caption",
@@ -18,7 +18,8 @@ function PhraseList({
18
18
  setIsPhraseListSelected,
19
19
  t,
20
20
  isExerciseSelected,
21
- setIsExerciseSelected
21
+ setIsExerciseSelected,
22
+ topicName
22
23
  }) {
23
24
  const [open, setOpen] = useState(false);
24
25
  const isTranslationHidden = phraseList?.hiddenPhraseGroupGames?.translation;
@@ -37,7 +38,8 @@ function PhraseList({
37
38
  timer: 30,
38
39
  answerOption: 0,
39
40
  phraseListId: phraseList.phraseListId,
40
- phrases: phraseList.phrases || []
41
+ phrases: phraseList.phrases || [],
42
+ topicName: topicName ?? ""
41
43
  });
42
44
  };
43
45
  return /*#__PURE__*/_jsxs("div", {
@@ -162,7 +164,8 @@ function PhraseListSelection({
162
164
  isExerciseSelected,
163
165
  isExpanded,
164
166
  setIsExerciseSelected,
165
- onPhraseListsLoaded
167
+ onPhraseListsLoaded,
168
+ topicName
166
169
  }) {
167
170
  const [isPhraseListSelected, setIsPhraseListSelected] = useState(false);
168
171
  const phraseListsQuery = courseQuerys.useCourseSectionTopicPhraseLists(async (cId, sId, tId, filters) => getPhraseLists(cId, sId, tId, filters), {
@@ -232,7 +235,8 @@ function PhraseListSelection({
232
235
  setIsPhraseListSelected: setIsPhraseListSelected,
233
236
  t: t,
234
237
  isExerciseSelected: isExerciseSelected,
235
- setIsExerciseSelected: setIsExerciseSelected
238
+ setIsExerciseSelected: setIsExerciseSelected,
239
+ topicName: topicName
236
240
  }, phraseList.phraseListId || index));
237
241
  }
238
242
  export default PhraseListSelection;
@@ -15,7 +15,8 @@ function Roleplay({
15
15
  setIsRoleplaySelected,
16
16
  t,
17
17
  isExerciseSelected,
18
- handleSelectExercise = null
18
+ handleSelectExercise = null,
19
+ topicName
19
20
  }) {
20
21
  const [open, setOpen] = useState(false);
21
22
  const games = ["roleplay-story", "roleplay-fill-in-the-blanks", "roleplay-act-it-out", "roleplay-act-it-out-listening", "roleplay-act-it-out-speaking", "roleplay-act-it-out-listening-speaking"];
@@ -26,7 +27,8 @@ function Roleplay({
26
27
  exercise: exerciseName,
27
28
  timer: 30,
28
29
  answerOption: 0,
29
- roleplayId: roleplay.roleplayId
30
+ roleplayId: roleplay.roleplayId,
31
+ topicName: topicName ?? ""
30
32
  });
31
33
  };
32
34
  const isRoleplayEmpty = roleplay?.script?.length === 0 || !roleplay?.script?.some(line => line.text !== undefined);
@@ -174,7 +176,8 @@ function RoleplaySelection({
174
176
  t,
175
177
  isExerciseSelected,
176
178
  handleSelectExercise,
177
- useCase
179
+ useCase,
180
+ topicName
178
181
  }) {
179
182
  const [isRoleplaySelected, setIsRoleplaySelected] = useState(false);
180
183
  return roleplays.map((roleplay, index) => /*#__PURE__*/_jsx(Roleplay, {
@@ -186,7 +189,8 @@ function RoleplaySelection({
186
189
  t: t,
187
190
  isExerciseSelected: isExerciseSelected,
188
191
  handleSelectExercise: handleSelectExercise,
189
- useCase: useCase
192
+ useCase: useCase,
193
+ topicName: topicName
190
194
  }, index));
191
195
  }
192
196
  export default RoleplaySelection;
@@ -0,0 +1,62 @@
1
+ import { Typography } from "@mui/material";
2
+ import { makeStyles } from "tss-react/mui";
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ const useStyles = makeStyles()((theme, {
5
+ height,
6
+ backgroundImage
7
+ }) => ({
8
+ banner: {
9
+ backgroundColor: theme.palette.secondary.main,
10
+ backgroundImage: backgroundImage ? `linear-gradient(to right, ${theme.palette.secondary.main} 50%, transparent 100%), url(${backgroundImage})` : undefined,
11
+ backgroundSize: "100% 100%, auto 100%",
12
+ backgroundPosition: "0 0, right center",
13
+ backgroundRepeat: "no-repeat",
14
+ minHeight: height,
15
+ display: "flex",
16
+ alignItems: "stretch",
17
+ borderRadius: 12,
18
+ marginBottom: theme.spacing(4)
19
+ },
20
+ text: {
21
+ display: "flex",
22
+ flexDirection: "column",
23
+ justifyContent: "center",
24
+ padding: theme.spacing(3, 4),
25
+ flex: 1
26
+ }
27
+ }));
28
+ export default function AchievementsBanner({
29
+ title,
30
+ description,
31
+ backgroundImage,
32
+ height = 140
33
+ }) {
34
+ const {
35
+ classes
36
+ } = useStyles({
37
+ height,
38
+ backgroundImage
39
+ });
40
+ return /*#__PURE__*/_jsx("div", {
41
+ className: classes.banner,
42
+ children: /*#__PURE__*/_jsxs("div", {
43
+ className: classes.text,
44
+ children: [/*#__PURE__*/_jsx(Typography, {
45
+ variant: "h5",
46
+ sx: {
47
+ color: "white",
48
+ fontWeight: "bold",
49
+ mb: 1
50
+ },
51
+ children: title
52
+ }), /*#__PURE__*/_jsx(Typography, {
53
+ variant: "body2",
54
+ sx: {
55
+ color: "rgba(255,255,255,0.85)",
56
+ fontWeight: "bold"
57
+ },
58
+ children: description
59
+ })]
60
+ })
61
+ });
62
+ }
@@ -1,28 +1,25 @@
1
1
  import React from "react";
2
2
  import { LinearProgress } from "@mui/material";
3
- import { withStyles } from "tss-react/mui";
4
3
  import { alpha } from "@mui/system";
5
4
  import { jsx as _jsx } from "react/jsx-runtime";
6
- const ProgressBar = withStyles(LinearProgress, theme => ({
7
- root: {
8
- height: 8,
9
- borderRadius: 4,
10
- border: `1px solid ${theme.palette.success.main}`
11
- },
12
- colorPrimary: {
13
- backgroundColor: alpha(theme.palette.success.light, 0.25)
14
- },
15
- barColorPrimary: {
16
- backgroundColor: theme.palette.success.main
17
- }
18
- }));
19
5
  function ColorLinearProgress({
20
6
  value,
21
- variant
7
+ variant,
8
+ ...rest
22
9
  }) {
23
- return /*#__PURE__*/_jsx(ProgressBar, {
10
+ return /*#__PURE__*/_jsx(LinearProgress, {
24
11
  variant: variant,
25
- value: value
12
+ value: value,
13
+ ...rest,
14
+ sx: {
15
+ height: 8,
16
+ borderRadius: 4,
17
+ border: theme => `1px solid ${theme.palette.success.main}`,
18
+ backgroundColor: theme => alpha(theme.palette.success.light, 0.25),
19
+ "& .MuiLinearProgress-bar": {
20
+ backgroundColor: theme => theme.palette.success.main
21
+ }
22
+ }
26
23
  });
27
24
  }
28
25
  export default ColorLinearProgress;
@@ -1,21 +1,7 @@
1
1
  import { alpha } from "@mui/material/styles";
2
- import { withStyles } from "tss-react/mui";
3
2
  import LinearProgress from "@mui/material/LinearProgress";
4
- //import Tooltip from '@mui/material/Tooltip';
5
3
  import { Box, Typography } from "@mui/material";
6
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
- const RoundedLinearProgress = withStyles(LinearProgress, theme => ({
8
- root: {
9
- height: 12,
10
- borderRadius: 4
11
- },
12
- colorPrimary: {
13
- backgroundColor: alpha(theme.palette.success.light, 0.25)
14
- },
15
- barColorPrimary: {
16
- backgroundColor: theme.palette.success.main
17
- }
18
- }));
19
5
  function ExerciseProgressBar(props) {
20
6
  const {
21
7
  classes = {},
@@ -43,11 +29,19 @@ function ExerciseProgressBar(props) {
43
29
  flexGrow: 1,
44
30
  mx: 2
45
31
  },
46
- children: /*#__PURE__*/_jsx(RoundedLinearProgress, {
32
+ children: /*#__PURE__*/_jsx(LinearProgress, {
47
33
  "aria-label": `${exercise}: ${numOfCorrectAnswers} / ${numOfQuestions}`,
48
34
  variant: "determinate",
49
35
  value: completed,
50
- className: classes.progressBar
36
+ className: classes.progressBar,
37
+ sx: {
38
+ height: 12,
39
+ borderRadius: 4,
40
+ backgroundColor: theme => alpha(theme.palette.success.light, 0.25),
41
+ "& .MuiLinearProgress-bar": {
42
+ backgroundColor: theme => theme.palette.success.main
43
+ }
44
+ }
51
45
  })
52
46
  })]
53
47
  })
@@ -0,0 +1,98 @@
1
+ import { Typography, Box, Divider } from "@mui/material";
2
+ import { makeStyles } from "tss-react/mui";
3
+ import MedalSelector from "../MedalSelector/MedalSelector";
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ const useStyles = makeStyles()(theme => ({
6
+ slot: {
7
+ display: "flex",
8
+ flexDirection: "column",
9
+ alignItems: "center",
10
+ textAlign: "center",
11
+ flex: 1
12
+ },
13
+ info: {
14
+ marginTop: theme.spacing(1)
15
+ }
16
+ }));
17
+ export default function MedalCard({
18
+ medal,
19
+ mascot
20
+ }) {
21
+ const {
22
+ classes
23
+ } = useStyles();
24
+ return /*#__PURE__*/_jsxs("div", {
25
+ className: classes.slot,
26
+ children: [/*#__PURE__*/_jsxs("div", {
27
+ style: {
28
+ position: "relative"
29
+ },
30
+ children: [mascot && /*#__PURE__*/_jsx("div", {
31
+ style: {
32
+ position: "absolute",
33
+ bottom: "36%",
34
+ left: "50%",
35
+ transform: "translateX(-50%)",
36
+ zIndex: 0,
37
+ pointerEvents: "none"
38
+ },
39
+ children: mascot
40
+ }), /*#__PURE__*/_jsx("div", {
41
+ style: mascot ? {
42
+ position: "relative",
43
+ zIndex: 1
44
+ } : undefined,
45
+ children: /*#__PURE__*/_jsx(MedalSelector, {
46
+ color: medal ? medal.color : "placeholder",
47
+ width: "120px",
48
+ sx: medal ? {
49
+ filter: "drop-shadow(0px 4px 4px rgba(0,0,0,0.25))"
50
+ } : undefined
51
+ })
52
+ })]
53
+ }), medal && /*#__PURE__*/_jsxs(Box, {
54
+ className: classes.info,
55
+ sx: {
56
+ display: "flex",
57
+ flexDirection: "column",
58
+ flex: 1,
59
+ width: "100%"
60
+ },
61
+ children: [/*#__PURE__*/_jsxs(Box, {
62
+ sx: {
63
+ flex: 1
64
+ },
65
+ children: [/*#__PURE__*/_jsx(Typography, {
66
+ variant: "body2",
67
+ sx: {
68
+ fontWeight: "bold"
69
+ },
70
+ children: medal.gameType
71
+ }), Array.isArray(medal.topicName) ? medal.topicName.map((line, i) => /*#__PURE__*/_jsx(Typography, {
72
+ variant: "body2",
73
+ children: line
74
+ }, i)) : /*#__PURE__*/_jsx(Typography, {
75
+ variant: "body2",
76
+ children: medal.topicName
77
+ }), /*#__PURE__*/_jsx(Typography, {
78
+ variant: "body2",
79
+ color: "textSecondary",
80
+ sx: {
81
+ fontWeight: 500
82
+ },
83
+ children: medal.courseName
84
+ })]
85
+ }), /*#__PURE__*/_jsx(Divider, {
86
+ sx: {
87
+ my: 0.75,
88
+ width: 40,
89
+ mx: "auto"
90
+ }
91
+ }), /*#__PURE__*/_jsx(Typography, {
92
+ variant: "caption",
93
+ color: "textSecondary",
94
+ children: medal.date
95
+ })]
96
+ })]
97
+ });
98
+ }
@@ -3,6 +3,7 @@ import { Box } from "@mui/material";
3
3
  import GoldMedal from "./GoldMedal";
4
4
  import SilverMedal from "./SilverMedal";
5
5
  import BronzeMedal from "./BronzeMedal";
6
+ import PlaceholderMedal from "./PlaceholderMedal";
6
7
  import "./styles.css";
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  export default function MedalSelector({
@@ -24,6 +25,9 @@ export default function MedalSelector({
24
25
  case "bronze":
25
26
  badge = /*#__PURE__*/_jsx(BronzeMedal, {});
26
27
  break;
28
+ case "placeholder":
29
+ badge = /*#__PURE__*/_jsx(PlaceholderMedal, {});
30
+ break;
27
31
  default:
28
32
  badge = null;
29
33
  }
@@ -0,0 +1,96 @@
1
+ import { useId } from 'react';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ const PlaceholderMedal = props => {
4
+ const uid = useId();
5
+ const filterId = `filter0_i_placeholder_${uid}`;
6
+ const mask0Id = `mask0_placeholder_${uid}`;
7
+ const mask1Id = `mask1_placeholder_${uid}`;
8
+ return /*#__PURE__*/_jsxs("svg", {
9
+ viewBox: "0 0 128 128",
10
+ fill: "none",
11
+ xmlns: "http://www.w3.org/2000/svg",
12
+ ...props,
13
+ children: [/*#__PURE__*/_jsxs("g", {
14
+ filter: `url(#${filterId})`,
15
+ children: [/*#__PURE__*/_jsx("mask", {
16
+ id: mask0Id,
17
+ style: {
18
+ maskType: 'luminance'
19
+ },
20
+ maskUnits: "userSpaceOnUse",
21
+ x: "0",
22
+ y: "0",
23
+ width: "128",
24
+ height: "129",
25
+ children: /*#__PURE__*/_jsx("path", {
26
+ d: "M0 0H128V128.001H0V0Z",
27
+ fill: "white"
28
+ })
29
+ }), /*#__PURE__*/_jsxs("g", {
30
+ mask: `url(#${mask0Id})`,
31
+ children: [/*#__PURE__*/_jsx("mask", {
32
+ id: mask1Id,
33
+ style: {
34
+ maskType: 'luminance'
35
+ },
36
+ maskUnits: "userSpaceOnUse",
37
+ x: "0",
38
+ y: "0",
39
+ width: "128",
40
+ height: "129",
41
+ children: /*#__PURE__*/_jsx("path", {
42
+ d: "M64 0L73.0104 7.10949L83.7772 3.13275L90.1503 12.6778L101.619 12.2228L104.73 23.2709L115.777 26.3823L115.322 37.8508L124.868 44.2228L120.892 54.9896L128 64L120.892 73.0116L124.868 83.7772L115.322 90.1503L115.777 101.619L104.73 104.73L101.619 115.778L90.1503 115.323L83.7772 124.868L73.0104 120.892L64 128.001L54.9896 120.892L44.2228 124.868L37.8497 115.323L26.3812 115.778L23.2698 104.73L12.2228 101.619L12.6778 90.1503L3.13163 83.7772L7.10837 73.0116L0 64L7.10837 54.9896L3.13163 44.2228L12.6778 37.8508L12.2228 26.3823L23.2698 23.2709L26.3812 12.2228L37.8497 12.6778L44.2228 3.13275L54.9896 7.10949L64 0Z",
43
+ fill: "white"
44
+ })
45
+ }), /*#__PURE__*/_jsx("g", {
46
+ mask: `url(#${mask1Id})`,
47
+ children: /*#__PURE__*/_jsx("path", {
48
+ d: "M0 0V128.001H128V0H0Z",
49
+ fill: "#DCD9D9"
50
+ })
51
+ })]
52
+ })]
53
+ }), /*#__PURE__*/_jsx("defs", {
54
+ children: /*#__PURE__*/_jsxs("filter", {
55
+ id: filterId,
56
+ x: "0",
57
+ y: "-4",
58
+ width: "128",
59
+ height: "132.001",
60
+ filterUnits: "userSpaceOnUse",
61
+ colorInterpolationFilters: "sRGB",
62
+ children: [/*#__PURE__*/_jsx("feFlood", {
63
+ floodOpacity: "0",
64
+ result: "BackgroundImageFix"
65
+ }), /*#__PURE__*/_jsx("feBlend", {
66
+ mode: "normal",
67
+ in: "SourceGraphic",
68
+ in2: "BackgroundImageFix",
69
+ result: "shape"
70
+ }), /*#__PURE__*/_jsx("feColorMatrix", {
71
+ in: "SourceAlpha",
72
+ type: "matrix",
73
+ values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",
74
+ result: "hardAlpha"
75
+ }), /*#__PURE__*/_jsx("feOffset", {
76
+ dy: "-4"
77
+ }), /*#__PURE__*/_jsx("feGaussianBlur", {
78
+ stdDeviation: "2"
79
+ }), /*#__PURE__*/_jsx("feComposite", {
80
+ in2: "hardAlpha",
81
+ operator: "arithmetic",
82
+ k2: "-1",
83
+ k3: "1"
84
+ }), /*#__PURE__*/_jsx("feColorMatrix", {
85
+ type: "matrix",
86
+ values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"
87
+ }), /*#__PURE__*/_jsx("feBlend", {
88
+ mode: "normal",
89
+ in2: "shape",
90
+ result: "effect1_innerShadow_placeholder"
91
+ })]
92
+ })
93
+ })]
94
+ });
95
+ };
96
+ export default PlaceholderMedal;
@@ -0,0 +1,27 @@
1
+ <svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g filter="url(#filter0_i_504_34002)">
3
+ <mask id="mask0_504_34002" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="128" height="129">
4
+ <path d="M0 0H128V128.001H0V0Z" fill="white"/>
5
+ </mask>
6
+ <g mask="url(#mask0_504_34002)">
7
+ <mask id="mask1_504_34002" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="128" height="129">
8
+ <path d="M64 0L73.0104 7.10949L83.7772 3.13275L90.1503 12.6778L101.619 12.2228L104.73 23.2709L115.777 26.3823L115.322 37.8508L124.868 44.2228L120.892 54.9896L128 64L120.892 73.0116L124.868 83.7772L115.322 90.1503L115.777 101.619L104.73 104.73L101.619 115.778L90.1503 115.323L83.7772 124.868L73.0104 120.892L64 128.001L54.9896 120.892L44.2228 124.868L37.8497 115.323L26.3812 115.778L23.2698 104.73L12.2228 101.619L12.6778 90.1503L3.13163 83.7772L7.10837 73.0116L0 64L7.10837 54.9896L3.13163 44.2228L12.6778 37.8508L12.2228 26.3823L23.2698 23.2709L26.3812 12.2228L37.8497 12.6778L44.2228 3.13275L54.9896 7.10949L64 0Z" fill="white"/>
9
+ </mask>
10
+ <g mask="url(#mask1_504_34002)">
11
+ <path d="M0 0V128.001H128V0H0Z" fill="#DCD9D9"/>
12
+ </g>
13
+ </g>
14
+ </g>
15
+ <defs>
16
+ <filter id="filter0_i_504_34002" x="0" y="-4" width="128" height="132.001" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
17
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
18
+ <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
19
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
20
+ <feOffset dy="-4"/>
21
+ <feGaussianBlur stdDeviation="2"/>
22
+ <feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
23
+ <feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
24
+ <feBlend mode="normal" in2="shape" result="effect1_innerShadow_504_34002"/>
25
+ </filter>
26
+ </defs>
27
+ </svg>