\fix: conflicts

This commit is contained in:
IlyaDoronin 2024-02-13 18:56:21 +03:00
commit 6fc34d7069
240 changed files with 556 additions and 4406 deletions

@ -1,4 +1,5 @@
/dist
/dist-package
/widget
Makefile
README.md

3
.gitignore vendored

@ -9,6 +9,7 @@ lerna-debug.log*
node_modules
dist
dist-package
dist-ssr
widget
*.local
@ -22,4 +23,4 @@ widget
*.ntvs*
*.njsproj
*.sln
*.sw?
*.sw?

52
README.md Normal file

@ -0,0 +1,52 @@
## Виджет
### Сборка
```bash
yarn build:widget
```
### Использование
```html
<script type="module">
import widget from "https://s.hbpn.link/export/pub.js";
widget.create({
selector: "widget-container",
quizId: "...",
})
</script>
```
## Npm-пакет
### Перед использованием и публикацией
```bash
npm config set //penahub.gitlab.yandexcloud.net/api/v4/packages/npm/:_authToken=INSTANCE_TOKEN
npm config set //penahub.gitlab.yandexcloud.net/api/v4/projects/43/packages/npm/:_authToken=PROJECT_TOKEN
```
### Публикация
1. Инкрементировать версию в package.json
2.
```bash
yarn publish
```
3. Нажать enter при запросе версии
### Установка
Добавить в корень проекта файл .yarnrc с содержимым
```
"@frontend:registry" "https://penahub.gitlab.yandexcloud.net/api/v4/packages/npm/"
```
```bash
yarn add @frontend/squzanswerer
```
Peer dependencies:
```bash
yarn add @emoji-mart/data @emoji-mart/react @emotion/react @emotion/styled @mui/icons-material @mui/material @mui/x-date-pickers axios emoji-mart immer moment nanoid notistack react-dom react-error-boundary react-router-dom react swr use-debounce zustand
```
### Использование
```ts
import { QuizView } from "@frontend/squzanswerer";
export default function Component() {
// ...
return (
<QuizView quizId={quizId} />
}
}
```

@ -10,8 +10,8 @@ import { SnackbarProvider } from 'notistack';
import { Suspense } from "react";
import { ErrorBoundary } from "react-error-boundary";
import { SWRConfig } from "swr";
import ViewPublicationPage from "./pages/ViewPublicationPage/ViewPublicationPage";
import lightTheme from "./utils/themes/light";
import ViewPublicationPage from "./ViewPublicationPage/ViewPublicationPage";
import lightTheme from "@utils/themes/light";
moment.locale("ru");

@ -1,18 +1,22 @@
import { Box } from "@mui/material";
import { startTransition, useEffect, useRef, useState } from "react";
import { startTransition, useEffect, useLayoutEffect, useRef, useState } from "react";
import { QuizIdContext } from "@contexts/QuizIdContext";
import { RootContainerWidthContext } from "@contexts/RootContainerWidthContext";
import QuizAnswerer from "./QuizAnswerer";
import { QuizIdContext } from "./contexts/QuizIdContext";
import { RootContainerWidthContext } from "./contexts/RootContainerWidthContext";
interface Props {
quizId: string;
}
export default function WidgetApp({ quizId }: Props) {
export default function QuizView({ quizId }: Props) {
const [rootContainerSize, setRootContainerSize] = useState<number>(() => window.innerWidth);
const rootContainerRef = useRef<HTMLDivElement>(null);
useLayoutEffect(() => {
if (rootContainerRef.current) setRootContainerSize(rootContainerRef.current.clientWidth);
}, []);
useEffect(() => {
const handleWindowResize = () => {
startTransition(() => {

@ -8,11 +8,11 @@ import {
import { NameplateLogo } from "@icons/NameplateLogo";
import YoutubeEmbedIframe from "./tools/YoutubeEmbedIframe";
import { setCurrentQuizStep } from "@stores/quizView/store";
import { useQuizData } from "@utils/hooks/useQuizData";
import { quizThemes } from "@utils/themes/Publication/themePublication";
import { useRootContainerSize } from "../../contexts/RootContainerWidthContext";
import type { QuizQuestionResult } from "../../model/questionTypes/result";
import { setCurrentQuizStep } from "@stores/quizView";
type ResultFormProps = {
@ -132,6 +132,7 @@ export const ResultForm = ({ resultQuestion }: ResultFormProps) => {
mt: "15px",
gap: "10px",
textDecoration: "none",
mb: "5px"
}}
>
<NameplateLogo
@ -160,14 +161,19 @@ export const ResultForm = ({ resultQuestion }: ResultFormProps) => {
display: "flex",
justifyContent: "center",
alignItems: "center",
p: settings.cfg.resultInfo.showResultForm === "before" ||
p:
(
settings.cfg.resultInfo.showResultForm === "before" &&
!Boolean(settings.cfg.score)
) ||
(
settings.cfg.resultInfo.showResultForm === "after" &&
resultQuestion.content.redirect
) ? "20px" : "0",
)
? "20px" : "0",
}}
>
{settings.cfg.resultInfo.showResultForm === "before" && (
{settings.cfg.resultInfo.showResultForm === "before" && !Boolean(settings.cfg.score) && (
<Button
onClick={() => setCurrentQuizStep("contactform")}
variant="contained"

@ -8,7 +8,7 @@ import { QuizStartpageAlignType, QuizStartpageType } from "@model/settingsData";
import { useQuizData } from "@utils/hooks/useQuizData";
import { quizThemes } from "@utils/themes/Publication/themePublication";
import { useRootContainerSize } from "../../contexts/RootContainerWidthContext";
import { setCurrentQuizStep } from "@stores/quizView/store";
import { setCurrentQuizStep } from "@stores/quizView";
export const StartPageViewPublication = () => {

@ -1,5 +1,5 @@
import { Button, ThemeProvider } from "@mui/material";
import { useQuizViewStore } from "@stores/quizView/store";
import { useQuizViewStore } from "@stores/quizView";
import { useQuestionFlowControl } from "@utils/hooks/useQuestionFlowControl";
import { useQuizData } from "@utils/hooks/useQuizData";
import { notReachable } from "@utils/notReachable";

@ -2,7 +2,7 @@ import moment from "moment";
import { DatePicker } from "@mui/x-date-pickers";
import { Box, Typography, useTheme } from "@mui/material";
import { useQuizViewStore, updateAnswer } from "@stores/quizView/store";
import { useQuizViewStore, updateAnswer } from "@stores/quizView";
import type { QuizQuestionDate } from "../../../model/questionTypes/date";
import CalendarIcon from "@icons/CalendarIcon";

@ -8,7 +8,7 @@ import {
useTheme
} from "@mui/material";
import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView/store";
import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView";
import RadioCheck from "@ui_kit/RadioCheck";
import RadioIcon from "@ui_kit/RadioIcon";

@ -6,7 +6,7 @@ import {
Typography,
useTheme
} from "@mui/material";
import { updateAnswer, useQuizViewStore } from "@stores/quizView/store";
import { updateAnswer, useQuizViewStore } from "@stores/quizView";
import CloseBold from "@icons/CloseBold";
import UploadIcon from "@icons/UploadIcon";

@ -7,7 +7,7 @@ import {
useTheme
} from "@mui/material";
import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView/store";
import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView";
import RadioCheck from "@ui_kit/RadioCheck";
import RadioIcon from "@ui_kit/RadioIcon";

@ -5,16 +5,16 @@ import { useDebouncedCallback } from "use-debounce";
import { CustomSlider } from "@ui_kit/CustomSlider";
import CustomTextField from "@ui_kit/CustomTextField";
import { updateAnswer, useQuizViewStore } from "@stores/quizView/store";
import { updateAnswer, useQuizViewStore } from "@stores/quizView";
import { sendAnswer } from "@api/quizRelase";
import { enqueueSnackbar } from "notistack";
import type { QuizQuestionNumber } from "../../../model/questionTypes/number";
import type { QuizQuestionNumber } from "@model/questionTypes/number";
import { useQuizData } from "@utils/hooks/useQuizData";
import { quizThemes } from "@utils/themes/Publication/themePublication";
import { useQuizId } from "../../../contexts/QuizIdContext";
import { useRootContainerSize } from "../../../contexts/RootContainerWidthContext";
import { useQuizId } from "@contexts/QuizIdContext";
import { useRootContainerSize } from "@contexts/RootContainerWidthContext";
import type { ChangeEvent, SyntheticEvent } from "react";

@ -5,7 +5,7 @@ import {
useTheme
} from "@mui/material";
import { updateAnswer, useQuizViewStore } from "@stores/quizView/store";
import { updateAnswer, useQuizViewStore } from "@stores/quizView";
import FlagIcon from "@icons/questionsPage/FlagIcon";
import StarIconMini from "@icons/questionsPage/StarIconMini";

@ -2,7 +2,7 @@ import { Box, Typography, useTheme } from "@mui/material";
import { Select as SelectComponent } from "../tools//Select";
import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView/store";
import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView";
import { sendAnswer } from "@api/quizRelase";
import { enqueueSnackbar } from "notistack";

@ -2,7 +2,7 @@ import { Box, Typography, useTheme } from "@mui/material";
import CustomTextField from "@ui_kit/CustomTextField";
import { updateAnswer, useQuizViewStore } from "@stores/quizView/store";
import { updateAnswer, useQuizViewStore } from "@stores/quizView";
import { sendAnswer } from "@api/quizRelase";
import { enqueueSnackbar } from "notistack";

@ -17,7 +17,7 @@ import {
updateAnswer,
updateOwnVariant,
useQuizViewStore
} from "@stores/quizView/store";
} from "@stores/quizView";
import { CheckboxIcon } from "@icons/Checkbox";
import RadioCheck from "@ui_kit/RadioCheck";

@ -6,7 +6,7 @@ import {
Typography,
useTheme
} from "@mui/material";
import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView/store";
import { deleteAnswer, updateAnswer, useQuizViewStore } from "@stores/quizView";
import RadioCheck from "@ui_kit/RadioCheck";
import RadioIcon from "@ui_kit/RadioIcon";

3
lib/index.ts Normal file

@ -0,0 +1,3 @@
import QuizView from "./components/QuizView";
export { QuizView };

@ -1,7 +1,7 @@
import { AnyTypedQuizQuestion } from "@model/questionTypes/shared";
import { setCurrentQuizStep, useQuizViewStore } from "@stores/quizView/store";
import { setCurrentQuizStep, useQuizViewStore } from "@stores/quizView";
import { useCallback, useDebugValue, useMemo, useState } from "react";
import { isResultQuestionEmpty } from "../../pages/ViewPublicationPage/tools/checkEmptyData";
import { isResultQuestionEmpty } from "../../components/ViewPublicationPage/tools/checkEmptyData";
import { useQuizData } from "./useQuizData";
import moment from "moment";

@ -3,7 +3,7 @@ import { parseQuizData } from "@model/api/getQuizData";
import { QuizSettings } from "@model/settingsData";
import useSWR from "swr";
import { useQuizId } from "../../contexts/QuizIdContext";
import { replaceSpacesToEmptyLines } from "../../pages/ViewPublicationPage/tools/replaceSpacesToEmptyLines";
import { replaceSpacesToEmptyLines } from "../../components/ViewPublicationPage/tools/replaceSpacesToEmptyLines";
export function useQuizData() {

0
src/utils/themes/dark.ts → lib/utils/themes/dark.ts Executable file → Normal file

@ -1,52 +1,87 @@
{
"name": "squzanswerer",
"version": "0.1.0",
"private": true,
"name": "@frontend/squzanswerer",
"version": "1.0.0",
"type": "module",
"main": "./dist-package/index.js",
"module": "./dist-package/index.js",
"types": "./dist-package/index.d.ts",
"license": "MIT",
"files": [
"dist-package"
],
"exports": {
".": {
"import": "./dist-package/index.js"
}
},
"publishConfig": {
"registry": "https://penahub.gitlab.yandexcloud.net/api/v4/projects/43/packages/npm/"
},
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"build:widget": "tsc && vite build --config vite.config.widget.ts",
"build:package": "tsc && vite build --config vite.config.package.ts",
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview",
"cypress:open": "cypress open"
"cypress:open": "cypress open",
"prepublishOnly": "npm run build:package"
},
"dependencies": {
"devDependencies": {
"@emoji-mart/data": "^1.1.2",
"@emoji-mart/react": "^1.1.1",
"@emotion/react": "^11.10.5",
"@emotion/styled": "^11.10.5",
"@frontend/kitui": "^1.0.54",
"@mui/icons-material": "^5.10.14",
"@mui/material": "^5.10.14",
"@mui/x-date-pickers": "^6.16.1",
"@types/node": "^16.7.13",
"@types/react-dom": "^18.2.17",
"@types/react": "^18.2.43",
"@typescript-eslint/eslint-plugin": "^6.14.0",
"@typescript-eslint/parser": "^6.14.0",
"@vitejs/plugin-react": "^4.2.1",
"axios": "^1.5.1",
"cypress": "^13.6.1",
"emoji-mart": "^5.5.2",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.5",
"eslint": "^8.55.0",
"immer": "^10.0.3",
"moment": "^2.30.1",
"nanoid": "^5.0.3",
"notistack": "^3.0.1",
"react-dom": "^18.2.0",
"react-error-boundary": "^4.0.12",
"react-router-dom": "^6.21.3",
"react": "^18.2.0",
"swr": "^2.2.4",
"typescript": "^5.2.2",
"use-debounce": "^9.0.4",
"vite-plugin-dts": "^3.7.2",
"vite": "^5.0.8",
"zustand": "^4.3.8"
},
"peerDependencies": {
"@emoji-mart/data": "^1.1.2",
"@emoji-mart/react": "^1.1.1",
"@emotion/react": "^11.10.5",
"@emotion/styled": "^11.10.5",
"@mui/icons-material": "^5.10.14",
"@mui/material": "^5.10.14",
"@mui/x-date-pickers": "^6.16.1",
"axios": "^1.5.1",
"emoji-mart": "^5.5.2",
"immer": "^10.0.3",
"moment": "^2.30.1",
"nanoid": "^5.0.3",
"notistack": "^3.0.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-error-boundary": "^4.0.12",
"react-router-dom": "^6.21.3",
"react": "^18.2.0",
"swr": "^2.2.4",
"typescript": "^5.2.2",
"use-debounce": "^9.0.4",
"zustand": "^4.3.8"
},
"devDependencies": {
"@emoji-mart/data": "^1.1.2",
"@emoji-mart/react": "^1.1.1",
"@types/react": "^18.2.43",
"@types/react-dom": "^18.2.17",
"@typescript-eslint/eslint-plugin": "^6.14.0",
"@typescript-eslint/parser": "^6.14.0",
"@vitejs/plugin-react": "^4.2.1",
"cypress": "^13.6.1",
"eslint": "^8.55.0",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.5",
"typescript": "^5.2.2",
"vite": "^5.0.8"
}
}

@ -1,9 +1,9 @@
import { Box } from "@mui/material";
import { startTransition, useEffect, useState } from "react";
import { useParams } from "react-router-dom";
import QuizAnswerer from "./QuizAnswerer";
import { QuizIdContext } from "./contexts/QuizIdContext";
import { RootContainerWidthContext } from "./contexts/RootContainerWidthContext";
import { QuizIdContext } from "@contexts/QuizIdContext";
import { RootContainerWidthContext } from "@contexts/RootContainerWidthContext";
import QuizAnswerer from "../lib/components/QuizAnswerer";
const defaultQuizId = "ad7f5a87-b833-4f5b-854e-453706ed655c"; // branching
//const defaultQuizId = "ad7f5a87-b833-4f5b-854e-453706ed655c"; //looooong header

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

@ -1,8 +0,0 @@
<svg width="204" height="134" viewBox="0 0 204 134" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="1.25" y="1.25" width="201.5" height="131.5" rx="6.75" stroke="#7E2AEA" strokeWidth="1.5"/>
<rect x="7.5" y="62.5" width="49" height="64" rx="3.5" fill="#7E2AEA" stroke="#7E2AEA"/>
<path d="M202 14.75H202.75V14V8C202.75 4.27208 199.728 1.25 196 1.25H8C4.27208 1.25 1.25 4.27208 1.25 8V14V14.75H2H202Z" fill="#F2F3F7" stroke="#7E2AEA" strokeWidth="1.5"/>
<circle cx="169.5" cy="8" r="2.5" fill="#7E2AEA"/>
<circle cx="177.5" cy="8" r="2.5" fill="#7E2AEA"/>
<circle cx="185.5" cy="8" r="2.5" fill="#7E2AEA"/>
</svg>

Before

Width:  |  Height:  |  Size: 622 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

@ -1,81 +0,0 @@
import { Box } from "@mui/material";
interface Props {
color?: string;
}
export default function CalendarIcon({ color }: Props) {
return (
<Box
sx={{
height: "36px",
width: "36px",
display: "flex",
alignItems: "center",
justifyContent: "center",
}}
>
<svg
width="36"
height="36"
viewBox="0 0 36 36"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g id="Group 22">
<rect id="Border" width="36" height="36" rx="6" fill="#7E2AEA" />
<g id="Group 21">
<path
id="Vector"
d="M25.5 9.75H10.5C10.0858 9.75 9.75 10.0858 9.75 10.5V25.5C9.75 25.9142 10.0858 26.25 10.5 26.25H25.5C25.9142 26.25 26.25 25.9142 26.25 25.5V10.5C26.25 10.0858 25.9142 9.75 25.5 9.75Z"
stroke="white"
strokeWidth="1.5"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
id="Vector_2"
d="M22.5 8.25V11.25"
stroke="white"
strokeWidth="1.5"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
id="Vector_3"
d="M13.5 8.25V11.25"
stroke="white"
strokeWidth="1.5"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
id="Vector_4"
d="M9.75 14.25H26.25"
stroke="white"
strokeWidth="1.5"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
id="Vector_5"
d="M14.625 18H17.25L15.75 19.875C15.9969 19.8746 16.24 19.9351 16.4579 20.0512C16.6757 20.1672 16.8616 20.3353 16.999 20.5404C17.1363 20.7455 17.2209 20.9814 17.2453 21.2271C17.2696 21.4727 17.2329 21.7206 17.1385 21.9487C17.0441 22.1768 16.8949 22.378 16.704 22.5346C16.5132 22.6912 16.2866 22.7983 16.0445 22.8463C15.8024 22.8944 15.5521 22.8819 15.3159 22.81C15.0798 22.7382 14.865 22.6091 14.6906 22.4344"
stroke="white"
strokeWidth="1.5"
strokeLinecap="round"
strokeLinejoin="round"
/>
<path
id="Vector_6"
d="M19.5 19.125L21 18V22.875"
stroke="white"
strokeWidth="1.5"
strokeLinecap="round"
strokeLinejoin="round"
/>
</g>
</g>
</svg>
</Box>
);
}

@ -1,535 +0,0 @@
import { Box } from "@mui/material";
interface Props {
color?: string;
}
export default function Notebook({ color }: Props) {
return (
<Box
sx={{
height: "171px",
width: "279px",
display: "flex",
alignItems: "center",
justifyContent: "center",
}}
>
<svg
width="279"
height="171"
viewBox="0 0 279 171"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M123.717 1.39258V3.94582L126.959 3.94582C127.348 3.94582 127.663 4.26075 127.663 4.64924V6.96329C127.663 7.60426 128.182 8.12386 128.823 8.12386L150.642 8.12386C151.283 8.12386 151.802 7.60426 151.802 6.96329V4.64924C151.802 4.26075 152.117 3.94582 152.506 3.94582L155.284 3.94582V1.39258L123.717 1.39258Z"
fill="black"
/>
<circle
cx="139.409"
cy="4.55077"
r="1.06935"
transform="rotate(-180 139.409 4.55077)"
fill="url(#paint0_linear_3_590)"
/>
<circle
cx="139.385"
cy="4.52608"
r="0.580283"
fill="url(#paint1_radial_3_590)"
/>
<g filter="url(#filter0_f_3_590)">
<path
d="M139.383 4.17799C139.291 4.17799 139.202 4.2269 139.137 4.31396C139.072 4.40102 139.035 4.5191 139.035 4.64222C139.035 4.76534 139.072 4.88342 139.137 4.97048C139.202 5.05754 139.291 5.10645 139.383 5.10645L139.383 4.64222L139.383 4.17799Z"
fill="url(#paint2_linear_3_590)"
/>
</g>
<g filter="url(#filter1_f_3_590)">
<circle cx="139.384" cy="4.29403" r="0.116057" fill="#50326D" />
</g>
<g filter="url(#filter2_f_3_590)">
<path
d="M139.501 5.10643C139.624 5.10643 139.742 5.05752 139.829 4.97046C139.916 4.8834 139.965 4.76533 139.965 4.6422C139.965 4.51908 139.916 4.40101 139.829 4.31395C139.742 4.22689 139.624 4.17798 139.501 4.17798L139.501 4.6422L139.501 5.10643Z"
fill="url(#paint3_linear_3_590)"
/>
</g>
<g filter="url(#filter3_f_3_590)">
<ellipse
cx="139.5"
cy="4.75815"
rx="0.232113"
ry="0.116057"
fill="url(#paint4_linear_3_590)"
/>
</g>
<path
d="M117.914 159.462H139.501V162.711H121.164C119.369 162.711 117.914 161.257 117.914 159.462Z"
fill="url(#paint5_radial_3_590)"
/>
<path
d="M117.914 159.462H139.501V162.711H121.164C119.369 162.711 117.914 161.257 117.914 159.462Z"
fill="url(#paint6_linear_3_590)"
/>
<path
d="M161.088 159.462H139.501V162.712H157.838C159.633 162.712 161.088 161.257 161.088 159.462Z"
fill="url(#paint7_radial_3_590)"
/>
<path
d="M161.088 159.462H139.501V162.712H157.838C159.633 162.712 161.088 161.257 161.088 159.462Z"
fill="url(#paint8_linear_3_590)"
/>
<path
d="M249.523 169.443L248.826 168.747H264.958L264.262 169.443H249.523Z"
fill="url(#paint9_linear_3_590)"
/>
<rect
x="249.521"
y="169.443"
width="14.8552"
height="0.232113"
rx="0.116057"
fill="#2A2A2A"
/>
<path
d="M249.754 169.675H264.145L263.813 170.165C263.725 170.294 263.58 170.371 263.424 170.371H250.474C250.319 170.371 250.173 170.294 250.086 170.165L249.754 169.675Z"
fill="url(#paint10_linear_3_590)"
/>
<path
d="M14.6241 169.443L13.9277 168.747H30.0596L29.3633 169.443H14.6241Z"
fill="url(#paint11_linear_3_590)"
/>
<rect
x="14.625"
y="169.443"
width="14.6231"
height="0.232113"
rx="0.116057"
fill="#2A2A2A"
/>
<path
d="M14.8555 169.675H29.0144L28.6894 170.162C28.6024 170.293 28.456 170.371 28.2992 170.371H15.5707C15.4139 170.371 15.2675 170.293 15.1805 170.162L14.8555 169.675Z"
fill="url(#paint12_linear_3_590)"
/>
<path
d="M21.9376 6.79972C21.9376 3.23858 24.8245 0.35171 28.3857 0.35171L250.613 0.35171C254.174 0.35171 257.061 3.23858 257.061 6.79973V159.11L21.9376 159.11L21.9376 6.79972Z"
stroke="url(#paint13_linear_3_590)"
strokeWidth="0.70342"
/>
<path
d="M22.633 6.79261C22.633 3.61996 25.2049 1.048 28.3776 1.048L250.619 1.048C253.792 1.048 256.364 3.61994 256.364 6.7926V159.11L22.633 159.11L22.633 6.79261Z"
fill="black"
stroke="#2D2E31"
strokeWidth="0.70342"
/>
<rect
x="22.9805"
y="153.891"
width="233.042"
height="5.57072"
fill="url(#paint14_linear_3_590)"
/>
<g filter="url(#filter4_iii_3_590)">
<path
d="M0 159.462L279 159.462V164.057C279 166.647 276.9 168.746 274.311 168.746L4.68946 168.746C2.09954 168.746 0 166.647 0 164.057L0 159.462Z"
fill="#D1D2D4"
/>
<path
d="M0 159.462L279 159.462V164.057C279 166.647 276.9 168.746 274.311 168.746L4.68946 168.746C2.09954 168.746 0 166.647 0 164.057L0 159.462Z"
fill="url(#paint15_linear_3_590)"
/>
</g>
<mask
id="mask0_3_590"
// style="mask-type:alpha"
maskUnits="userSpaceOnUse"
x="26"
y="10"
width="227"
height="144"
>
<rect
x="26.0039"
y="10.0527"
width="226.184"
height="143.839"
fill="#D9D9D9"
/>
</mask>
<g mask="url(#mask0_3_590)">
<rect
x="26.0039"
y="10.0525"
width="226.184"
height="143.839"
fill="#F0F1F6"
/>
</g>
<defs>
<filter
id="filter0_f_3_590"
x="138.709"
y="3.85232"
width="0.998971"
height="1.57978"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="BackgroundImageFix"
result="shape"
/>
<feGaussianBlur
stdDeviation="0.162829"
result="effect1_foregroundBlur_3_590"
/>
</filter>
<filter
id="filter1_f_3_590"
x="138.125"
y="3.0356"
width="2.51719"
height="2.51694"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="BackgroundImageFix"
result="shape"
/>
<feGaussianBlur
stdDeviation="0.571191"
result="effect1_foregroundBlur_3_590"
/>
</filter>
<filter
id="filter2_f_3_590"
x="139.174"
y="3.85232"
width="1.11616"
height="1.57978"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="BackgroundImageFix"
result="shape"
/>
<feGaussianBlur
stdDeviation="0.162829"
result="effect1_foregroundBlur_3_590"
/>
</filter>
<filter
id="filter3_f_3_590"
x="138.887"
y="4.2613"
width="1.22643"
height="0.993766"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="BackgroundImageFix"
result="shape"
/>
<feGaussianBlur
stdDeviation="0.190397"
result="effect1_foregroundBlur_3_590"
/>
</filter>
<filter
id="filter4_iii_3_590"
x="0"
y="156.648"
width="279"
height="12.0981"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feBlend
mode="normal"
in="SourceGraphic"
in2="BackgroundImageFix"
result="shape"
/>
<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"
/>
<feOffset dy="-3.98605" />
<feGaussianBlur stdDeviation="1.40684" />
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1" />
<feColorMatrix
type="matrix"
values="0 0 0 0 0.502066 0 0 0 0 0.502766 0 0 0 0 0.504167 0 0 0 1 0"
/>
<feBlend
mode="normal"
in2="shape"
result="effect1_innerShadow_3_590"
/>
<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"
/>
<feOffset dy="-1.40684" />
<feGaussianBlur stdDeviation="0.586183" />
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1" />
<feColorMatrix
type="matrix"
values="0 0 0 0 0.900764 0 0 0 0 0.904549 0 0 0 0 0.908333 0 0 0 1 0"
/>
<feBlend
mode="normal"
in2="effect1_innerShadow_3_590"
result="effect2_innerShadow_3_590"
/>
<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"
/>
<feOffset dy="-0.234473" />
<feGaussianBlur stdDeviation="0.35171" />
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1" />
<feColorMatrix
type="matrix"
values="0 0 0 0 0.616667 0 0 0 0 0.616667 0 0 0 0 0.616667 0 0 0 1 0"
/>
<feBlend
mode="normal"
in2="effect2_innerShadow_3_590"
result="effect3_innerShadow_3_590"
/>
</filter>
<linearGradient
id="paint0_linear_3_590"
x1="138.529"
y1="3.98464"
x2="140.227"
y2="4.99109"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#222222" />
<stop offset="1" stop-color="#0B0B0B" />
</linearGradient>
<radialGradient
id="paint1_radial_3_590"
cx="0"
cy="0"
r="1"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(139.385 4.47333) rotate(37.875) scale(0.601477 0.605921)"
>
<stop stop-color="#152457" />
<stop offset="1" />
</radialGradient>
<linearGradient
id="paint2_linear_3_590"
x1="139.122"
y1="4.28115"
x2="139.417"
y2="5.07777"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#20569B" />
<stop offset="0.677083" stop-color="#061127" />
</linearGradient>
<linearGradient
id="paint3_linear_3_590"
x1="139.849"
y1="5.00327"
x2="139.615"
y2="4.16228"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#3D6495" />
<stop offset="0.71875" stop-color="#061127" />
</linearGradient>
<linearGradient
id="paint4_linear_3_590"
x1="139.809"
y1="4.83552"
x2="139.7"
y2="4.56205"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#3291AF" />
<stop offset="1" stop-color="#3291AF" stop-opacity="0" />
</linearGradient>
<radialGradient
id="paint5_radial_3_590"
cx="0"
cy="0"
r="1"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(128.707 159.462) rotate(90) scale(4.52621 30.0669)"
>
<stop stop-color="white" />
<stop offset="1" stop-color="#D9D9D9" />
</radialGradient>
<linearGradient
id="paint6_linear_3_590"
x1="118.32"
y1="161.551"
x2="122.556"
y2="159.462"
gradientUnits="userSpaceOnUse"
>
<stop offset="0.00209588" stop-color="#242424" />
<stop offset="0.34936" stop-color="#EFEFEF" />
</linearGradient>
<radialGradient
id="paint7_radial_3_590"
cx="0"
cy="0"
r="1"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(150.295 159.462) rotate(90) scale(4.52621 30.0669)"
>
<stop stop-color="white" />
<stop offset="1" stop-color="#D9D9D9" />
</radialGradient>
<linearGradient
id="paint8_linear_3_590"
x1="160.682"
y1="161.551"
x2="156.446"
y2="159.462"
gradientUnits="userSpaceOnUse"
>
<stop offset="0.00209588" stop-color="#242424" />
<stop offset="0.34936" stop-color="#EFEFEF" />
</linearGradient>
<linearGradient
id="paint9_linear_3_590"
x1="248.826"
y1="168.863"
x2="264.842"
y2="168.863"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#D1D2D4" />
<stop offset="0.063237" stop-color="#818181" />
<stop offset="0.507008" stop-color="#D0D0D0" />
<stop offset="0.864583" stop-color="#818181" />
<stop offset="1" stop-color="#D1D2D4" />
</linearGradient>
<linearGradient
id="paint10_linear_3_590"
x1="249.99"
y1="169.907"
x2="264.145"
y2="169.907"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#4D4D4D" />
<stop offset="0.156699" stop-color="#292929" />
<stop offset="0.501829" stop-color="#6A6A6A" />
<stop offset="0.884758" stop-color="#2E2D2D" />
<stop offset="1" stop-color="#4D4D4D" />
</linearGradient>
<linearGradient
id="paint11_linear_3_590"
x1="13.9277"
y1="168.863"
x2="29.9435"
y2="168.863"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#D1D2D4" />
<stop offset="0.063237" stop-color="#818181" />
<stop offset="0.507008" stop-color="#D0D0D0" />
<stop offset="0.864583" stop-color="#818181" />
<stop offset="1" stop-color="#D1D2D4" />
</linearGradient>
<linearGradient
id="paint12_linear_3_590"
x1="15.0876"
y1="169.907"
x2="29.0144"
y2="169.907"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#4D4D4D" />
<stop offset="0.156699" stop-color="#292929" />
<stop offset="0.501829" stop-color="#6A6A6A" />
<stop offset="0.884758" stop-color="#2E2D2D" />
<stop offset="1" stop-color="#4D4D4D" />
</linearGradient>
<linearGradient
id="paint13_linear_3_590"
x1="16.9437"
y1="-2.17555e-06"
x2="77.177"
y2="59.8852"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#A8A8A8" />
<stop offset="1" stop-color="#737475" />
</linearGradient>
<linearGradient
id="paint14_linear_3_590"
x1="139.501"
y1="153.891"
x2="139.501"
y2="159.462"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#2D2D2D" />
<stop offset="1" />
</linearGradient>
<linearGradient
id="paint15_linear_3_590"
x1="0"
y1="164.104"
x2="279"
y2="164.104"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#A9AAAC" />
<stop
offset="0.0205416"
stop-color="#F2F2F2"
stop-opacity="0.921875"
/>
<stop offset="0.0339099" stop-color="#787879" />
<stop
offset="0.124814"
stop-color="#D6D6D6"
stop-opacity="0.606575"
/>
<stop offset="0.515625" stop-color="#E4E4E4" stop-opacity="0" />
<stop
offset="0.864583"
stop-color="#D7D7D7"
stop-opacity="0.666378"
/>
<stop offset="0.973923" stop-color="#848484" />
<stop offset="0.992314" stop-color="#F4F4F4" />
<stop offset="1" stop-color="#BFBFBF" />
</linearGradient>
</defs>
</svg>
</Box>
);
}

@ -1,25 +0,0 @@
import { Box } from "@mui/material";
interface Props {
color?: string;
}
export default function TitleIcon({color}:Props) {
return (
<Box
sx={{
height: "30px",
width: "33px",
display: "flex",
alignItems: "center",
justifyContent: "center",
}}
>
<svg width="33" height="30" viewBox="0 0 33 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path id="Title" d="M33 0V5.11111C31.3704 5.40741 30.037 6.14815 29 7.33334C28.037 8.44445 27.2963 9.85185 26.7778 11.5556C26.3333 13.2593 26.1111 15.1111 26.1111 17.1111H32V30H19.6667V18.3333C19.6667 14.037 20.2963 10.6296 21.5556 8.11111C22.8889 5.5926 24.5556 3.70371 26.5556 2.44445C28.6296 1.18518 30.7778 0.37037 33 0ZM13.3333 0V5.11111C11.7037 5.40741 10.3704 6.14815 9.33333 7.33334C8.37037 8.44445 7.62963 9.85185 7.11111 11.5556C6.66667 13.2593 6.44444 15.1111 6.44444 17.1111H12.3333V30H0V18.3333C0 14.037 0.629629 10.6296 1.88889 8.11111C3.22222 5.5926 4.88889 3.70371 6.88889 2.44445C8.96296 1.18518 11.1111 0.37037 13.3333 0Z" fill="#7E2AEA"/>
</svg>
</Box>
);
}

Some files were not shown because too many files have changed in this diff Show More