first commit

This commit is contained in:
2023-11-17 19:04:17 +05:00
commit 48c06b8390
65 changed files with 6735 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
VITE_API_URL=http://localhost:3000
+18
View File
@@ -0,0 +1,18 @@
module.exports = {
root: true,
env: { browser: true, es2020: true },
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:react-hooks/recommended',
],
ignorePatterns: ['dist', '.eslintrc.cjs'],
parser: '@typescript-eslint/parser',
plugins: ['react-refresh'],
rules: {
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
},
}
+24
View File
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
+27
View File
@@ -0,0 +1,27 @@
# React + TypeScript + Vite
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
## Expanding the ESLint configuration
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
- Configure the top-level `parserOptions` property like this:
```js
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
project: ['./tsconfig.json', './tsconfig.node.json'],
tsconfigRootDir: __dirname,
},
```
- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked`
- Optionally add `plugin:@typescript-eslint/stylistic-type-checked`
- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list
+13
View File
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + React + TS</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
+38
View File
@@ -0,0 +1,38 @@
{
"name": "client",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview"
},
"dependencies": {
"date-fns": "^2.30.0",
"framer-motion": "^10.16.5",
"prop-types": "^15.8.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-rangeslider": "^2.2.0",
"react-router-dom": "^6.18.0",
"usehooks-ts": "^2.9.1"
},
"devDependencies": {
"@types/react": "^18.2.15",
"@types/react-dom": "^18.2.7",
"@types/react-rangeslider": "^2.2.7",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"@vitejs/plugin-react-swc": "^3.3.2",
"autoprefixer": "^10.4.16",
"eslint": "^8.45.0",
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.3",
"postcss": "^8.4.31",
"tailwindcss": "^3.3.5",
"typescript": "^5.0.2",
"vite": "^4.4.5"
}
}
+6
View File
@@ -0,0 +1,6 @@
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
+5
View File
@@ -0,0 +1,5 @@
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Icon/Estate/Aivaz">
<path id="Vector" d="M44.3166 33.0614L43.578 30.2264C42.4441 30.5279 41.3165 30.8476 40.195 31.1854C39.6433 29.2884 39.0453 27.4081 38.4011 25.5446C35.2587 16.5177 30.9909 7.93354 25.7011 0L23.2989 1.63948C28.4524 9.36755 32.609 17.7303 35.6679 26.5245C36.3038 28.3545 36.8907 30.2006 37.4286 32.0627C32.5308 33.6768 27.7506 35.6358 23.123 37.9254L31.0745 21.782L28.484 20.4755L18.7593 40.2034C16.3495 41.5309 13.9853 42.9505 11.6665 44.4622L13.2369 46.9267C14.2922 46.2385 15.3584 45.5692 16.4357 44.9187L12.7693 52.358L15.3619 53.6667L20.9484 42.3412C26.476 39.3541 32.2507 36.8606 38.2066 34.8893C39.8083 41.0399 40.8779 47.32 41.4033 53.6583L44.3001 53.4091C43.7575 46.8595 42.6497 40.3705 40.9895 34.0162C42.093 33.684 43.2076 33.3685 44.3332 33.0698" fill="#F2F2F2"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 909 B

+10
View File
@@ -0,0 +1,10 @@
<svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Icon/Estate/Residence">
<path id="Vector" d="M51.2882 4.86063V4.66699H50.9336H28.4287H5.11788H4.73097H4.6665V51.3337H4.73097H27.9774H28.0096H28.3965H51.256V5.28018V5.24791C51.3527 5.11881 51.3527 4.98972 51.2882 4.86063ZM5.53702 6.76473L9.24483 14.1552C7.6005 16.4143 6.31082 18.9639 5.53702 21.7071V6.76473ZM5.53702 26.5158C5.8272 22.2235 7.31032 18.2862 9.63174 14.9943L27.3648 50.5268C15.7255 50.2041 6.27859 41.0386 5.50478 29.4849V26.5158H5.53702ZM27.6549 49.2359L10.1799 14.2521C14.2423 8.99157 20.5295 5.57063 27.6549 5.47382V49.2359ZM28.4287 49.2359V5.47382C35.5219 5.60291 41.8091 9.05611 45.8393 14.3166L28.4287 49.2359ZM46.3875 15.0589C48.9668 18.7057 50.4822 23.1917 50.4822 28.0003C50.4822 40.1672 40.7774 50.1396 28.6867 50.4946L46.3875 15.0589ZM34.0388 5.47382H50.2887L46.2585 13.542C43.1955 9.6693 38.9396 6.79701 34.0388 5.47382ZM21.9159 5.47382C17.0474 6.79701 12.8237 9.63702 9.76071 13.4775L5.79497 5.47382H21.9159ZM5.53702 50.5268V34.2613C7.72947 42.1681 14.0166 48.3645 21.9159 50.5268H5.53702ZM50.4822 50.5268H34.0388C42.0348 48.3645 48.322 42.0713 50.4822 34.0676V50.5268ZM50.4822 21.933C49.7406 19.1253 48.4509 16.5434 46.8066 14.2521L50.4822 6.86155V21.933Z" fill="#F2F2F2"/>
<path id="Vector_2" d="M4.6665 51.3337V32.667C7.16519 41.7411 14.3305 48.8522 23.3332 51.3337H4.6665Z" fill="#F2F2F2"/>
<path id="Vector_3" d="M51.3335 51.333H30.3335C42.146 48.708 48.7085 40.833 51.3335 30.333V51.333Z" fill="#F2F2F2"/>
<path id="Vector_4" d="M23.3332 4.66699C17.7052 6.18719 12.8113 9.54578 9.28072 14.0003L4.6665 4.66699H23.3332Z" fill="#F2F2F2"/>
<path id="Vector_5" d="M27.9998 4.66699C15.0826 4.73366 4.6665 15.167 4.6665 28.0003C4.6665 40.8337 15.1168 51.267 27.9998 51.3337V4.66699Z" fill="#F2F2F2"/>
<path id="Vector_6" d="M27.9998 4.66699H4.6665V51.3337H27.9998V4.66699Z" fill="#F2F2F2"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File
+608
View File
@@ -0,0 +1,608 @@
/* eslint-disable no-irregular-whitespace */
import "./App.css";
import LogoIcon from "./components/icons/LogoIcon";
import showreelImage from "./assets/images/showreel.jpg";
import Blending1 from "./components/blendings/Blending1";
import FeatureItem from "./components/FeatureItem";
import BlendVR from "./components/blendings/BlendVR";
import BlendStream from "./components/blendings/BlendStream";
import StreamButton from "./components/StreamButton";
import CalcSelect from "./components/CalcSelect";
import ArrowRightIcon from "./components/icons/ArrowRightIcon";
import Slider from "react-rangeslider";
import "react-rangeslider/lib/index.css";
import "./components/RangeSlider.css";
import { useState } from "react";
import ProjectCard from "./components/ProjectCard";
import MoreProjectButton from "./components/MoreProjectButton";
import ExampleCard from "./components/ExampleCard";
import FeatureVideoViewBox from "./components/FeatureVideoViewBox";
import Button from "./components/Button";
import regionsData from "./assets/regionsData2.json";
function App() {
const [inPersonConsultations, setInPersonConsultations] =
useState<number>(100);
const [selectedVideo, setSelectedVideo] = useState<string>(
"https://graff.estate/videos/features/virtual_tour.mp4"
);
return (
<div className="min-h-screen text-white px-10">
<div className="relative conatiner mx-auto 2xl:max-w-screen-2xl">
<div className="flex justify-between py-6 mb-28">
<div>
<LogoIcon />
</div>
<div className="flex gap-8">
<Button>Оставить заявку</Button>
<div className="flex gap-1">
<button className="px-3 border-gradient rounded-full font-gilroy font-medium h-10 flex items-center justify-center w-12">
<span className="absolute">RU</span>
</button>
<button className="px-3 rounded-full font-gilroy font-medium leading-none h-10 flex items-center justify-center w-12">
<span className="absolute">EN</span>
</button>
</div>
</div>
</div>
<div className="flex flex-col gap-14 mb-[120px]">
<h1 className="max-w-[1255px] font-gilroy text-8xl leading-none text-gradient font-medium">
Интерактивный инструмент продаж{" "}
<span style={{ WebkitTextFillColor: "#fff" }}>
для застройщиков
</span>
</h1>
<p className="text-xl font-gilroy max-w-[650px] font-medium leading-[120%]">
Помогаем девелоперам эффективно демонстрировать свой объект.
Продавать больше и быстрее.
</p>
<div className="absolute -z-10 top-0 right-0 opacity-90 blur-[10px]">
<Blending1 />
</div>
</div>
<div className="mb-40">
<img src={showreelImage} alt="" className="aspect-video" />
</div>
<div className="flex flex-col gap-16 mb-40">
<div className="grid grid-cols-4">
<h2 className="font-gilroy text-[64px] leading-none max-w-[780px] font-medium text-gradient col-span-3">
Помогаем продавать{" "}
<span style={{ WebkitTextFillColor: "#fff" }}>
проще и{" "}
<span
className="text-[#52587A] line-through font-light"
style={{ WebkitTextFillColor: "#52587A" }}
>
быстрее
</span>
дороже
</span>
</h2>
<p>
Мы собрали статистику за 10 лет работы
<br />
с застройщиками, реализовав 31 проект
</p>
</div>
<div className="grid grid-cols-4">
<div className="px-8 py-4 flex flex-col gap-4 border-l border-[#3D425C]">
<p>На</p>
<p className="text-8xl font-gilroy font-medium">
18<span className="text-2xl ml-1 font-semibold">%</span>
</p>
<p>увеличивает конверсию из консультации в бронирование</p>
</div>
<div className="px-8 py-4 flex flex-col gap-4 border-l border-[#3D425C]">
<p>На</p>
<p className="text-8xl font-gilroy font-medium">
12<span className="text-2xl ml-1 font-semibold">%</span>
</p>
<p>увеличивает конверсию из бронирования в продажу</p>
</div>
<div className="px-8 py-4 flex flex-col gap-4 border-l border-[#3D425C]">
<p>До</p>
<p className="text-8xl font-gilroy font-medium">
2<span className="text-2xl ml-1 font-semibold">раз</span>
</p>
<p>
сокращает время
<br />
реализации проекта
</p>
</div>
<div className="px-8 py-4 flex flex-col gap-4 border-l border-[#3D425C]">
<p>До</p>
<p className="text-8xl font-gilroy font-medium">
4<span className="text-2xl ml-1 font-semibold">раз</span>
</p>
<p>сокращает время на подготовку рекламных материалов</p>
</div>
</div>
</div>
<div className="grid grid-cols-2 gap-x-8 mb-40">
<div className="mt-[220px]">
<ExampleCard
title="ЖК «Life Резиденция»"
company="ГК Паритет Девелопмент"
image="/images/Aivaz1.jpg"
/>
<ExampleCard
title="ЖК «Айвазовский City»"
company="ЭНКО"
image="/images/Aivaz3.jpg"
/>
</div>
<div>
<ExampleCard
title="Авторский квартал Машаров"
company="Сибинтел Девелопмент"
image="/images/Aivaz2.jpg"
/>
<ExampleCard
title="ЖК «Сюжеты»"
company="Fortis Development"
image="/images/Aivaz4.jpg"
/>
</div>
</div>
<div className="grid grid-cols-2 gap-4 mb-40">
<div className="flex flex-col gap-20">
<div className="flex flex-col gap-8">
<h2 className="font-gilroy text-[64px] text-gradient leading-none font-medium">
Функциональные
<br />
<span style={{ WebkitTextFillColor: "#fff" }}>возможности</span>
</h2>
<p className="w-2/3">
Интерактивная презентация увлекает покупателей и предоставляет
актуальную информацию о жилом комплексе, отвечая на все вопросы
и показывая важные особенности и преимущества объекта
</p>
</div>
<div className="pr-6">
<FeatureItem
title="Виртуальный тур по жилому комплексу"
desc="Клиент лично оценит угол инсоляции, малые архитектурные формы и ландшафт, перемещаясь по комплексу с помощью тапа."
video="https://graff.estate/videos/features/virtual_tour.mp4"
handleHoverStart={(video) => setSelectedVideo(video)}
/>
<FeatureItem
title="Вся инфрастуктура на одном экране"
desc="Возможность оценить инфраструктуру района покажет важные для клиента точки интереса и время, за которое он сможет до них дойти."
video="https://graff.estate/videos/features/nks_infra.mp4"
handleHoverStart={(video) => setSelectedVideo(video)}
/>
<FeatureItem
title="Конфигуратор интерьера"
desc="Клиент может свободно выбирать мебель и дизайн с помощью конфигуратора интерьера. Возможно выбрать стиль всей квартиры или изменить отдельные детали."
video="https://graff.estate/videos/features/uralsky.mp4"
handleHoverStart={(video) => setSelectedVideo(video)}
/>
<FeatureItem
title="Параметрический поиск квартир"
desc="Фильтр позволит отметить конкретные преимущества, определить количество комнат, желаемый этаж, цену, и получить выборку подходящих вариантов."
video="https://graff.estate/videos/features/parametric.mp4"
handleHoverStart={(video) => setSelectedVideo(video)}
/>
<FeatureItem
title="Любой рендер за несколько секунд"
desc="Когда для рекламы вам понадобится любой объект с любого ракурса, просто сделайте фотографию внутри презентации."
video="https://graff.estate/videos/features/render.mp4"
handleHoverStart={(video) => setSelectedVideo(video)}
/>
<FeatureItem
title="Формирование вишлиста"
desc="Фильтр позволит отметить конкретные преимущества, определить количество комнат, желаемый этаж, цену, и получить выборку подходящих вариантов."
video="https://graff.estate/videos/features/wish.mp4"
handleHoverStart={(video) => setSelectedVideo(video)}
/>
<FeatureItem
title="Интеграция с CRM-системой"
desc="Приложение передает информацию о клиенте в CRM-систему застройщика и получает актуальную информацию по ценам и статусам квартир."
video="https://graff.estate/videos/features/integra_crm.mp4"
handleHoverStart={(video) => setSelectedVideo(video)}
/>
<FeatureItem
title="Отправка коммерческого предложения"
desc="Коммерческое предложение с выбранными квартирами может быть отправлено клиенту на почту или распечатано и отдано лично в руки."
video="https://graff.estate/videos/features/send.mp4"
handleHoverStart={(video) => setSelectedVideo(video)}
/>
<FeatureItem
title="Интерактивная инсоляция"
desc="Функция позволяет в режиме реального времени увидеть уровень освещенности выбранной квартиры, а если вы изучаете экстерьер жилого комплекса – функция покажет архитектурную подсветку."
video=""
/>
<FeatureItem
title="Подбор квартир на генплане"
desc="Сделать генплан удобным инструментом выбора квартиры поможет подсветка выбранных квартир прямо на фасаде Жилого комплекса."
video=""
/>
</div>
</div>
<div className="aspect-video sticky top-[25%]">
<FeatureVideoViewBox video={selectedVideo} />
</div>
</div>
<div className="relative grid grid-cols-4 gap-4 mb-40">
<div className="col-span-2 flex flex-col gap-16">
<h2 className="font-gilroy text-[64px] leading-none max-w-[780px] font-medium text-gradient">
Экскурсия{" "}
<span style={{ WebkitTextFillColor: "#fff" }}>
в виртуальной реальности
</span>
</h2>
{/* <button className="group relative px-6 py-2 rounded-full bg-gradient flex justify-between items-center overflow-hidden w-fit">
<span className="group-hover:opacity-10 opacity-0 bg-black transition-opacity absolute top-0 left-0 w-full h-full"></span>
<span className="relative font-gilroy font-medium">
Записаться в шоу-рум
</span>
</button> */}
<Button>Записаться в шоу-рум</Button>
</div>
<p className="">
Клиенту достаточно надеть шлем виртуальной реальности, чтобы
прогуляться, оценить и ощутить пространство{" "}
</p>
<div className="flex flex-col gap-4">
<p>
Он полностью погружается в воссозданную реальность, чувствует
удобство и уровень комфорта
</p>
<video
src="https://graff.estate/videos/vr.mp4"
muted
autoPlay
loop
playsInline
/>
</div>
<div className="col-span-4 flex justify-center mb-16">
<img src="/images/VRHeadset.png" alt="" className="w-4/5" />
</div>
<div className="absolute top-[50%] left-[50%] -translate-x-[50%] -translate-y-[50%] blur-[22px] -z-10">
<BlendVR />
</div>
</div>
<div className="grid grid-cols-2 gap-4 mb-40">
<div>
<div className="flex flex-col gap-8 mb-[204px]">
<h2 className="font-gilroy text-[64px] text-gradient leading-none font-medium">
Анализируем
<br />
<span style={{ WebkitTextFillColor: "#fff" }}>
поведение пользователей
</span>
</h2>
<p className="w-2/3">
Система внутренней аналитики программы собирает информацию о
поведении пользователя и эффективности работы менеджеров для
создания отчета, содержащего необходимые метрики
</p>
</div>
<div className="pb-8 border-b border-[#3D425C] -mt-0.5">
<p className="w-4/5 text-xl font-gilroy font-medium">
Полученный отчет позволяет сделать процесс демонстрации
жилого комплекса еще эффективнее
</p>
</div>
</div>
<img src="/images/Analysis.jpg" alt="" className="w-full" />
</div>
<div className="relative grid grid-cols-4 gap-4 mb-16">
<div className="col-span-2 flex flex-col justify-between">
<h2 className="font-gilroy text-[64px] text-gradient leading-none font-medium">
Graff.estate stream
<br />
<span style={{ WebkitTextFillColor: "#fff" }}>
удаленная демонстрация
<br />
жилого комплекса
</span>
</h2>
<Button>Узнать больше</Button>
</div>
<div className="flex flex-col gap-12">
<p>
Высокий уровень графики и полное погружение покупателя в процесс
выбора квартиры
</p>
<img src="/images/Stream.jpg" alt="" />
</div>
<div>
<p>
Местоположение и устройство значения не имеют. Нужен только
интернет
</p>
</div>
<div className="absolute top-[50%] -translate-y-[50%] left-0 -z-10 blur-[30px]">
<BlendStream />
</div>
</div>
<div className="mb-40">
<StreamButton
icon="/icons/Revolution.svg"
title="МФК «Re:volution towers»"
location="Россия, Екатеринбург"
background="/images/stream/nks.jpg"
link="https://stream.graff.tech/?build=nksJukovaDev&location=a1"
/>
<StreamButton
icon="/icons/Residence.svg"
title="ЖК «Life Резиденция»"
location="Россия, Тюмень"
background="/images/stream/liferes.jpg"
link="https://stream.graff.tech/?build=lifeResidence&location=a1"
/>
<StreamButton
icon="/icons/Aivaz.svg"
title="ЖК «Айвазовский City»"
location="Россия, Тюмень"
background="/images/stream/aivaz.jpg"
link="https://stream.graff.tech/?build=Ivazowsky&location=a1"
/>
</div>
<div className="flex flex-col gap-16 mb-40">
<div className="flex flex-col gap-8">
<h2 className="font-gilroy text-[64px] text-gradient leading-none font-medium">
Оцените эффективность интерактивного
<br />
<span style={{ WebkitTextFillColor: "#fff" }}>
инструмента продаж
</span>
</h2>
<div className="grid grid-cols-2 gap-4">
<p className="w-2/3">
Мы изучили отраслевую аналитику на рынке продаж новых квартир и
на основе данных собрали калькулятор эффективности продукта
</p>
<p className="w-2/3">
При использовании проектного финансирования, главное это
время. Быстрее наполняются эскроу-счета меньше процент за
использование заемных денег
</p>
</div>
</div>
<div className="grid grid-cols-4">
<div className="">
<CalcSelect
label="Регион"
placeholder="Выберите регион"
options={regionsData.map((regionItem) => regionItem.name)}
handleSelect={(option) => console.log(option)}
/>
<div className="border border-t-0 border-[#3D425C] p-6">
<p className="text-[#52587A] text-xs">
Установлены усредненные показатели по региону.
<br />
Источник:{" "}
<a
href="https://наш.дом.рф"
target="_blank"
className="text-[#798FFF]"
>
наш.дом.рф
</a>
</p>
</div>
</div>
<div className="px-6 py-8 flex flex-col justify-between border border-l-0 border-[#3D425C]">
<p className="text-sm">
Средняя площадь
<br />
жилья в комплексе, м2
</p>
<p className="text-5xl font-gilroy font-medium">1 500</p>
</div>
<div className="px-6 py-8 flex flex-col justify-between border border-l-0 border-[#3D425C]">
<p className="text-sm">
Средняя площадь
<br />
квартиры, м2
</p>
<p className="text-5xl font-gilroy font-medium">100</p>
</div>
<div className="px-6 py-8 flex flex-col justify-between border border-l-0 border-[#3D425C]">
<p className="text-sm">
Средняя стоимость
<br />
одного м2, тыс. руб.
</p>
<p className="text-5xl font-gilroy font-medium">137</p>
</div>
</div>
<div className="grid grid-cols-4">
<div className="flex flex-col gap-6 mr-8 border-b border-[#3D425C]">
<div className="flex justify-between">
<p className="font-gilroy font-medium">
Очных консультаций в месяц
</p>
<p className="font-gilroy font-medium text-[#798FFF]">
{inPersonConsultations}
</p>
</div>
<div className="py-[9px]">
<Slider
min={10}
max={1000}
step={10}
value={inPersonConsultations}
onChange={(value) => setInPersonConsultations(value)}
tooltip={false}
/>
</div>
<Button icon={<ArrowRightIcon />} className="px-6 py-4 w-full">
Включить инструмент
</Button>
</div>
<div className="col-span-3 grid grid-cols-2">
<div>
<div className="px-8 py-6 border border-[#3D425C] flex flex-col gap-4">
<p className="text-sm">Срок реализации</p>
<div className="grid grid-cols-2">
<p className="text-5xl font-gilroy font-medium flex items-end gap-1.5">
<span className="text-gradient">12</span>
<span className="text-gradient text-2xl">месяцев</span>
</p>
<p className="text-xs">
На <span className="text-[#798FFF]">24 месяца</span> вы
сократили срок
<br />
реализации проекта
</p>
</div>
</div>
<div className="px-8 py-6 border border-t-0 border-[#3D425C] flex flex-col gap-4">
<p className="text-sm">Месячный доход</p>
<div className="grid grid-cols-2">
<p className="text-5xl font-gilroy font-medium flex items-end gap-1.5">
<span className="text-gradient">480,2</span>
<span className="text-gradient text-2xl">млн руб.</span>
</p>
<p className="text-xs">
На <span className="text-[#798FFF]">200 млн руб.</span> в
месяц вы заработали больше
</p>
</div>
</div>
</div>
<div className="px-8 py-6 border border-l-0 border-[#3D425C] flex flex-col gap-4">
<p className="text-sm">Статистика продаж</p>
<div className="flex flex-col gap-3">
<div className="flex items-center gap-4">
<p className="w-[36px] text-sm">100%</p>
<div className="w-[284px] bg-[#212431] rounded-full flex justify-center">
<div className="p-3.5 bg-gradient rounded-full w-full">
<p className="text-center">100</p>
</div>
</div>
<p className="text-sm text-[#8088A7]">
Консультаций в офисе
</p>
</div>
<div className="flex items-center gap-4">
<p className="w-[36px] text-sm">48%</p>
<div className="w-[284px] bg-[#212431] rounded-full flex justify-center">
<div className="p-3.5 bg-gradient rounded-full w-[50%]">
<p className="text-center">30</p>
</div>
</div>
<p className="text-sm text-[#8088A7]">Бронь квартиры</p>
</div>
<div className="flex items-center gap-4">
<p className="w-[36px] text-sm">32%</p>
<div className="w-[284px] bg-[#212431] rounded-full flex justify-center">
<div className="p-3.5 bg-gradient rounded-full w-[22%]">
<p className="text-center">10</p>
</div>
</div>
<p className="text-sm text-[#8088A7]">Продажа</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div className="flex flex-col gap-16 mb-40">
<h2 className="font-gilroy text-[64px] text-gradient leading-none font-medium w-fit">
Проекты
</h2>
<div className="grid grid-cols-3 gap-8">
<ProjectCard
title="ЖК «Август»"
company="Родина Девелопмент, Тюмень"
image="/images/ViewBox.jpg"
releaseDate="23.11.2023"
/>
<ProjectCard
title="ЖК «Upside Towers»"
company="Upside Development, Москва"
image="/images/ViewBox.jpg"
releaseDate="22.11.2023"
/>
<ProjectCard
title="ЖК «Мираполис»"
company="ГК Основа, Москва"
image="/images/ViewBox.jpg"
releaseDate="21.11.2023"
/>
<ProjectCard
title="ЖК «Life Резиденция»"
company="Paritet Pro Development, Тюмень"
image="/images/ViewBox.jpg"
releaseDate="20.11.2023"
/>
<ProjectCard
title="МФК «Re:volution towers»"
company="НКС Девелопмент, Екатеринбург"
image="/images/ViewBox.jpg"
releaseDate="15.11.2023"
stream
/>
<ProjectCard
title="ЖК «Новатор»"
company="ГК СБК, Тюмень"
image="/images/ViewBox.jpg"
releaseDate="15.11.2023"
/>
<ProjectCard
title="ЖК «Айвазовский City»"
company="ГК ЭНКО, Тюмень"
image="/images/ViewBox.jpg"
releaseDate="15.11.2023"
stream
/>
<ProjectCard
title="ЖК «Ориент»"
company="СК+, Хабаровск"
image="/images/ViewBox.jpg"
releaseDate="15.11.2023"
stream
/>
<MoreProjectButton />
</div>
</div>
<div className="mb-40 flex flex-col gap-16">
<h2 className="font-gilroy text-[64px] text-gradient leading-none font-medium">
Наши клиенты{" "}
<span style={{ WebkitTextFillColor: "#fff" }}>в девелопменте</span>
</h2>
<img src="/images/ClientsLogos.png" alt="" />
</div>
</div>
</div>
);
}
export default App;
Binary file not shown.

After

Width:  |  Height:  |  Size: 516 KiB

+650
View File
@@ -0,0 +1,650 @@
[
{
"id": 1,
"totalArea": 328326.4,
"flatCount": 7433,
"priceAvg": 71655,
"objSquareLivingAmt": 328326.36,
"objCnt": 49
},
{
"id": 2,
"totalArea": 2667309.0,
"flatCount": 55441,
"priceAvg": 98441,
"objSquareLivingAmt": 2667646.9,
"objCnt": 247
},
{
"id": 3,
"totalArea": 384171.1,
"flatCount": 6932,
"priceAvg": 70582,
"objSquareLivingAmt": 384171.07,
"objCnt": 62
},
{
"id": 4,
"totalArea": 51068.6,
"flatCount": 1132,
"priceAvg": 89784,
"objSquareLivingAmt": 51068.63,
"objCnt": 11
},
{
"id": 5,
"totalArea": 283714.4,
"flatCount": 4571,
"priceAvg": 34194,
"objSquareLivingAmt": 283714.37,
"objCnt": 33
},
{
"id": 7,
"totalArea": 302164.8,
"flatCount": 4254,
"priceAvg": 62048,
"objSquareLivingAmt": 302164.81,
"objCnt": 69
},
{
"id": 8,
"totalArea": 40553.1,
"flatCount": 676,
"priceAvg": 52949,
"objSquareLivingAmt": 40553.11,
"objCnt": 9
},
{
"id": 9,
"totalArea": 66177.7,
"flatCount": 1025,
"priceAvg": 73179,
"objSquareLivingAmt": 66177.73,
"objCnt": 6
},
{
"id": 10,
"totalArea": 169525.7,
"flatCount": 3441,
"priceAvg": 107511,
"objSquareLivingAmt": 169525.71,
"objCnt": 26
},
{
"id": 11,
"totalArea": 83689.5,
"flatCount": 2005,
"priceAvg": 80559,
"objSquareLivingAmt": 83689.47,
"objCnt": 9
},
{
"id": 12,
"totalArea": 313555.9,
"flatCount": 5252,
"priceAvg": 62782,
"objSquareLivingAmt": 313555.87,
"objCnt": 51
},
{
"id": 13,
"totalArea": 187186.1,
"flatCount": 3609,
"priceAvg": 72793,
"objSquareLivingAmt": 187186.12,
"objCnt": 25
},
{
"id": 14,
"totalArea": 395419.9,
"flatCount": 7983,
"priceAvg": 120368,
"objSquareLivingAmt": 395419.87,
"objCnt": 55
},
{
"id": 15,
"totalArea": 314864.7,
"flatCount": 4873,
"priceAvg": 71655,
"objSquareLivingAmt": 314864.74,
"objCnt": 50
},
{
"id": 16,
"totalArea": 2270183.8,
"flatCount": 44495,
"priceAvg": 135012,
"objSquareLivingAmt": 2270183.83,
"objCnt": 234
},
{
"id": 17,
"totalArea": 92368.1,
"flatCount": 2082,
"priceAvg": 123219,
"objSquareLivingAmt": 92368.12,
"objCnt": 29
},
{
"id": 18,
"totalArea": 1515583.9,
"flatCount": 30624,
"priceAvg": 82633,
"objSquareLivingAmt": 328326.36,
"objCnt": 49
},
{
"id": 19,
"totalArea": 272158.0,
"flatCount": 5265,
"priceAvg": 67283,
"objSquareLivingAmt": 272157.99,
"objCnt": 50
},
{
"id": 20,
"totalArea": 244186.6,
"flatCount": 3465,
"priceAvg": 57603,
"objSquareLivingAmt": 244186.6,
"objCnt": 12
},
{
"id": 21,
"totalArea": 727391.5,
"flatCount": 12551,
"priceAvg": 74907,
"objSquareLivingAmt": 727391.49,
"objCnt": 94
},
{
"id": 22,
"totalArea": 595249.9,
"flatCount": 11996,
"priceAvg": 82778,
"objSquareLivingAmt": 595249.94,
"objCnt": 71
},
{
"id": 23,
"totalArea": 8316302.2,
"flatCount": 184301,
"priceAvg": 118376,
"objSquareLivingAmt": 8316302.17,
"objCnt": 735
},
{
"id": 24,
"totalArea": 1548047.8,
"flatCount": 28193,
"priceAvg": 98763,
"objSquareLivingAmt": 1548047.81,
"objCnt": 108
},
{
"id": 25,
"totalArea": 2191066.9,
"flatCount": 43965,
"priceAvg": 133366,
"objSquareLivingAmt": 2191066.88,
"objCnt": 284
},
{
"id": 26,
"totalArea": 1303948.2,
"flatCount": 24103,
"priceAvg": 79643,
"objSquareLivingAmt": 1303948.21,
"objCnt": 168
},
{
"id": 27,
"totalArea": 894343.7,
"flatCount": 16806,
"priceAvg": 109923,
"objSquareLivingAmt": 894343.67,
"objCnt": 107
},
{
"id": 28,
"totalArea": 268490.4,
"flatCount": 5627,
"priceAvg": 130501,
"objSquareLivingAmt": 268490.39,
"objCnt": 46
},
{
"id": 29,
"totalArea": 485896.2,
"flatCount": 11015,
"priceAvg": 101319,
"objSquareLivingAmt": 485896.18,
"objCnt": 74
},
{
"id": 30,
"totalArea": 521433.7,
"flatCount": 10353,
"priceAvg": 95551,
"objSquareLivingAmt": 521433.67,
"objCnt": 44
},
{
"id": 31,
"totalArea": 301602.6,
"flatCount": 5916,
"priceAvg": 86137,
"objSquareLivingAmt": 301602.61,
"objCnt": 66
},
{
"id": 32,
"totalArea": 410642.1,
"flatCount": 7010,
"priceAvg": 59869,
"objSquareLivingAmt": 410642.1,
"objCnt": 56
},
{
"id": 33,
"totalArea": 728408.1,
"flatCount": 13023,
"priceAvg": 54047,
"objSquareLivingAmt": 728408.08,
"objCnt": 97
},
{
"id": 34,
"totalArea": 929572.5,
"flatCount": 18003,
"priceAvg": 76183,
"objSquareLivingAmt": 929572.53,
"objCnt": 126
},
{
"id": 35,
"totalArea": 623014.5,
"flatCount": 12220,
"priceAvg": 54415,
"objSquareLivingAmt": 623014.54,
"objCnt": 119
},
{
"id": 36,
"totalArea": 1937243.4,
"flatCount": 40193,
"priceAvg": 76931,
"objSquareLivingAmt": 1937243.38,
"objCnt": 149
},
{
"id": 37,
"totalArea": 316507.6,
"flatCount": 5442,
"priceAvg": 59796,
"objSquareLivingAmt": 316507.64,
"objCnt": 48
},
{
"id": 38,
"totalArea": 785409.3,
"flatCount": 15338,
"priceAvg": 102540,
"objSquareLivingAmt": 785409.27,
"objCnt": 155
},
{
"id": 39,
"totalArea": 1203847.6,
"flatCount": 21650,
"priceAvg": 87364,
"objSquareLivingAmt": 1203847.68,
"objCnt": 167
},
{
"id": 40,
"totalArea": 415127.4,
"flatCount": 7503,
"priceAvg": 87725,
"objSquareLivingAmt": 415127.41,
"objCnt": 53
},
{
"id": 42,
"totalArea": 573204.1,
"flatCount": 11113,
"priceAvg": 71425,
"objSquareLivingAmt": 573204.09,
"objCnt": 79
},
{
"id": 43,
"totalArea": 337445.1,
"flatCount": 6655,
"priceAvg": 80492,
"objSquareLivingAmt": 337445.09,
"objCnt": 54
},
{
"id": 44,
"totalArea": 163623.3,
"flatCount": 2953,
"priceAvg": 67385,
"objSquareLivingAmt": 163623.29,
"objCnt": 58
},
{
"id": 45,
"totalArea": 233679.6,
"flatCount": 4447,
"priceAvg": 62972,
"objSquareLivingAmt": 233679.61,
"objCnt": 43
},
{
"id": 46,
"totalArea": 295893.8,
"flatCount": 5469,
"priceAvg": 89784,
"objSquareLivingAmt": 295893.85,
"objCnt": 42
},
{
"id": 47,
"totalArea": 3294300.7,
"flatCount": 82121,
"priceAvg": 133977,
"objSquareLivingAmt": 3294300.7,
"objCnt": 266
},
{
"id": 48,
"totalArea": 454826.8,
"flatCount": 7783,
"priceAvg": 69140,
"objSquareLivingAmt": 454826.77,
"objCnt": 73
},
{
"id": 49,
"totalArea": 3186.8,
"flatCount": 58,
"priceAvg": 85363,
"objSquareLivingAmt": 3186.83,
"objCnt": 1
},
{
"id": 50,
"totalArea": 8218500.2,
"flatCount": 178738,
"priceAvg": 148558,
"objSquareLivingAmt": 8218500.37,
"objCnt": 622
},
{
"id": 51,
"totalArea": 5271.4,
"flatCount": 100,
"priceAvg": 70602,
"objSquareLivingAmt": 5271.4,
"objCnt": 1
},
{
"id": 52,
"totalArea": 1147532.2,
"flatCount": 21682,
"priceAvg": 106487,
"objSquareLivingAmt": 1147532.16,
"objCnt": 131
},
{
"id": 53,
"totalArea": 77383.8,
"flatCount": 1450,
"priceAvg": 71014,
"objSquareLivingAmt": 77383.75,
"objCnt": 13
},
{
"id": 54,
"totalArea": 3465916.9,
"flatCount": 68169,
"priceAvg": 106530,
"objSquareLivingAmt": 3468482.46,
"objCnt": 514
},
{
"id": 55,
"totalArea": 552013.5,
"flatCount": 10068,
"priceAvg": 84691,
"objSquareLivingAmt": 552013.51,
"objCnt": 64
},
{
"id": 56,
"totalArea": 438084.8,
"flatCount": 8975,
"priceAvg": 66808,
"objSquareLivingAmt": 438085.17,
"objCnt": 57
},
{
"id": 57,
"totalArea": 311673.4,
"flatCount": 5381,
"priceAvg": 34194,
"objSquareLivingAmt": 311673.43,
"objCnt": 27
},
{
"id": 58,
"totalArea": 1257497.0,
"flatCount": 23172,
"priceAvg": 74291,
"objSquareLivingAmt": 1257497.04,
"objCnt": 98
},
{
"id": 59,
"totalArea": 1656401.4,
"flatCount": 33743,
"priceAvg": 101629,
"objSquareLivingAmt": 1656401.38,
"objCnt": 140
},
{
"id": 60,
"totalArea": 218481.0,
"flatCount": 4233,
"priceAvg": 59133,
"objSquareLivingAmt": 218481.01,
"objCnt": 38
},
{
"id": 61,
"totalArea": 2790815.6,
"flatCount": 57789,
"priceAvg": 94335,
"objSquareLivingAmt": 2790815.55,
"objCnt": 254
},
{
"id": 62,
"totalArea": 1122750.6,
"flatCount": 22772,
"priceAvg": 76168,
"objSquareLivingAmt": 1122750.59,
"objCnt": 77
},
{
"id": 63,
"totalArea": 2082471.7,
"flatCount": 37726,
"priceAvg": 82324,
"objSquareLivingAmt": 2082471.74,
"objCnt": 197
},
{
"id": 64,
"totalArea": 638664.9,
"flatCount": 11982,
"priceAvg": 59320,
"objSquareLivingAmt": 638664.92,
"objCnt": 82
},
{
"id": 65,
"totalArea": 277718.5,
"flatCount": 5418,
"priceAvg": 153297,
"objSquareLivingAmt": 277718.51,
"objCnt": 49
},
{
"id": 66,
"totalArea": 4051855.4,
"flatCount": 85142,
"priceAvg": 110720,
"objSquareLivingAmt": 4051855.37,
"objCnt": 325
},
{
"id": 67,
"totalArea": 325201.7,
"flatCount": 5895,
"priceAvg": 53924,
"objSquareLivingAmt": 325201.67,
"objCnt": 59
},
{
"id": 68,
"totalArea": 305018.1,
"flatCount": 5691,
"priceAvg": 61498,
"objSquareLivingAmt": 305018.06,
"objCnt": 46
},
{
"id": 69,
"totalArea": 467081.2,
"flatCount": 8962,
"priceAvg": 79237,
"objSquareLivingAmt": 467081.17,
"objCnt": 82
},
{
"id": 70,
"totalArea": 281391.0,
"flatCount": 5551,
"priceAvg": 104611,
"objSquareLivingAmt": 281391.03,
"objCnt": 64
},
{
"id": 71,
"totalArea": 992802.1,
"flatCount": 20633,
"priceAvg": 89967,
"objSquareLivingAmt": 992802.07,
"objCnt": 129
},
{
"id": 72,
"totalArea": 3115076.8,
"flatCount": 60096,
"priceAvg": 100219,
"objSquareLivingAmt": 3115076.85,
"objCnt": 275
},
{
"id": 73,
"totalArea": 437822.7,
"flatCount": 9120,
"priceAvg": 75329,
"objSquareLivingAmt": 437822.72,
"objCnt": 61
},
{
"id": 74,
"totalArea": 1044332.8,
"flatCount": 20379,
"priceAvg": 78438,
"objSquareLivingAmt": 1044332.82,
"objCnt": 121
},
{
"id": 75,
"totalArea": 163028.2,
"flatCount": 3388,
"priceAvg": 129153,
"objSquareLivingAmt": 163028.15,
"objCnt": 23
},
{
"id": 76,
"totalArea": 656699.4,
"flatCount": 12248,
"priceAvg": 77390,
"objSquareLivingAmt": 656699.39,
"objCnt": 101
},
{
"id": 77,
"totalArea": 16322256.6,
"flatCount": 309477,
"priceAvg": 295872,
"objSquareLivingAmt": 1.632225665e7,
"objCnt": 703
},
{
"id": 78,
"totalArea": 7370217.2,
"flatCount": 170718,
"priceAvg": 202300,
"objSquareLivingAmt": 7370217.18,
"objCnt": 436
},
{
"id": 79,
"totalArea": 2146.0,
"flatCount": 50,
"priceAvg": 62048,
"objSquareLivingAmt": 2145.95,
"objCnt": 1
},
{
"id": 86,
"totalArea": 439174.3,
"flatCount": 7860,
"priceAvg": 109173,
"objSquareLivingAmt": 439174.26,
"objCnt": 48
},
{
"id": 89,
"totalArea": 152761.8,
"flatCount": 3062,
"priceAvg": 144671,
"objSquareLivingAmt": 152761.83,
"objCnt": 38
},
{
"id": 91,
"totalArea": 882872.1,
"flatCount": 18151,
"priceAvg": 95417,
"objSquareLivingAmt": 882872.05,
"objCnt": 163
},
{
"id": 92,
"totalArea": 112259.8,
"flatCount": 2367,
"priceAvg": 135839,
"objSquareLivingAmt": 112259.82,
"objCnt": 19
}
]
+30
View File
@@ -0,0 +1,30 @@
[
{
"id": 1,
"name": "Алтайский край",
"areaInComplex": 8384,
"areaApartment": 50,
"costPerSquare": 83
},
{
"id": 2,
"name": "Амурская область",
"areaInComplex": 5837,
"areaApartment": 48,
"costPerSquare": 131
},
{
"id": 3,
"name": "Архангельская область",
"areaInComplex": 6566,
"areaApartment": 44,
"costPerSquare": 101
},
{
"id": 4,
"name": "Астраханская область",
"areaInComplex": 11851,
"areaApartment": 50,
"costPerSquare": 96
}
]
+21
View File
@@ -0,0 +1,21 @@
import { ReactNode } from "react";
interface ButtonProps {
children: ReactNode;
icon?: JSX.Element;
className?: string;
}
function Button({ children, icon, className }: ButtonProps) {
return (
<button
className={`group relative px-6 py-2 rounded-full bg-gradient flex justify-between items-center overflow-hidden w-fit ${className}`}
>
<span className="group-hover:opacity-10 opacity-0 bg-black transition-opacity absolute top-0 left-0 w-full h-full"></span>
<span className="relative font-gilroy font-medium">{children}</span>
{icon}
</button>
);
}
export default Button;
+17
View File
@@ -0,0 +1,17 @@
.range-slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 14px;
height: 14px;
border-radius: 50%;
background: #798fff;
cursor: pointer;
}
.range-slider::-moz-range-thumb {
width: 14px;
height: 14px;
border-radius: 50%;
background: #798fff;
cursor: pointer;
}
+26
View File
@@ -0,0 +1,26 @@
import { useState } from "react";
import "./CalcRangeSlider.css";
interface CalcRangeSliderProps {
defaultValue: number;
min: number;
max: number;
handleChange?: (value: number) => void;
}
function CalcRangeSlider({ defaultValue, min, max }: CalcRangeSliderProps) {
const [value, setvalue] = useState<number>(defaultValue);
return (
<input
type="range"
min={min}
max={max}
className="transition-all w-full h-0.5 bg-[#798FFF] range-slider"
value={value}
onChange={(e) => setvalue(+e.target.value)}
/>
);
}
export default CalcRangeSlider;
+74
View File
@@ -0,0 +1,74 @@
import { useRef, useState } from "react";
import ChevronDown from "./icons/ChevronDown";
import CheckIcon from "./icons/CheckIcon";
import { useOnClickOutside } from "usehooks-ts";
interface CalcSelectProps {
label: string;
placeholder: string;
options: string[];
handleSelect: (option: string) => void;
}
function CalcSelect({
label,
placeholder,
options,
handleSelect,
}: CalcSelectProps) {
const [selectedOption, setSelectedOption] = useState<string>("");
const [isShow, setIsShow] = useState<boolean>(false);
const ref = useRef<HTMLDivElement>(null);
useOnClickOutside(ref, () => setIsShow(false));
function handleClick(option: string) {
setSelectedOption(option);
setIsShow(false);
handleSelect(option);
}
return (
<div ref={ref} className="relative z-10">
<div
className={`border ${
isShow ? "border-[#798FFF]" : "border-[#3D425C]"
} p-6 pr-8 flex flex-col justify-center h-24 cursor-pointer transition-colors`}
onClick={() => setIsShow((prev) => !prev)}
>
<div className="relative h-full cursor-pointer">
<div className="flex flex-col justify-between h-full ">
<label className="opacity-50 font-gilroy font-medium leading-none cursor-pointer">
{label}
</label>
<input
readOnly
type="text"
placeholder={placeholder}
className="w-full bg-transparent outline-none cursor-pointer"
value={selectedOption}
/>
</div>
</div>
<span className="absolute self-end">
<ChevronDown />
</span>
</div>
{isShow && (
<div className="absolute max-h-[411.5px] overflow-y-auto flex flex-col border border-[#3D425C] w-full py-2 backdrop-blur-[14px] bg-[#14161F] bg-opacity-50">
{options.map((option, index) => (
<button
key={index}
className="px-6 py-3 pr-8 hover:bg-white hover:bg-opacity-10 transition-colors w-full text-left flex justify-between"
onClick={() => handleClick(option)}
>
<span>{option}</span>
{option === selectedOption && <CheckIcon />}
</button>
))}
</div>
)}
</div>
);
}
export default CalcSelect;
+34
View File
@@ -0,0 +1,34 @@
import { motion } from "framer-motion";
interface ExampleCardProps {
title: string;
company: string;
image: string;
}
function ExampleCard({ title, company, image }: ExampleCardProps) {
return (
<div className="mb-16 flex flex-col gap-4">
<motion.div
initial={{ opacity: 0, translateY: 64 }}
whileInView={{ opacity: 1, translateY: 0 }}
viewport={{ once: true, margin: "-200px" }}
transition={{ duration: 1, ease: [0.58, 0.12, 0.27, 0.98] }}
className="aspect-video bg-cover bg-center bg-no-repeat"
style={{ backgroundImage: `url('${image}')` }}
></motion.div>
<motion.div
initial={{ opacity: 0, translateY: 64 }}
whileInView={{ opacity: 1, translateY: 0 }}
viewport={{ once: true, margin: "-100px" }}
transition={{ duration: 1, ease: [0.58, 0.12, 0.27, 0.98], delay: 0.2 }}
className="flex flex-col gap-1"
>
<p className="font-medium text-xl font-gilroy">{title}</p>
<p className="text-sm">{company}</p>
</motion.div>
</div>
);
}
export default ExampleCard;
+47
View File
@@ -0,0 +1,47 @@
import BlendingFeatures from "./blendings/BlendingFeatures";
import ArrowIcon from "./icons/ArrowIcon";
interface FeatureItemProps {
title: string;
desc: string;
video: string;
handleHoverStart?: (video: string) => void;
handleHoverEnd?: () => void;
}
function FeatureItem({
title,
desc,
video,
handleHoverStart,
handleHoverEnd,
}: FeatureItemProps) {
return (
<div
className="group relative"
onMouseEnter={() => handleHoverStart && handleHoverStart(video)}
onMouseLeave={() => handleHoverEnd && handleHoverEnd()}
>
<div className="relative border-b border-[#3D425C] py-16 flex justify-between items-center h-36 cursor-default overflow-hidden ">
<div className="overflow-hidden py-2">
<p className="group-hover:opacity-0 group-hover:-translate-y-[125%] transition-all text-[32px] font-gilroy font-medium leading-none duration-300">
{title}
</p>
</div>
<p className="group-hover:opacity-100 group-hover:translate-y-0 opacity-0 translate-y-[100%] absolute transition-all w-4/5 duration-300">
{desc}
</p>
<span className="group-hover:opacity-100 opacity-0 blur-[10px] absolute left-[50%] -translate-x-[50%] transition-opacity duration-300">
<BlendingFeatures />
</span>
</div>
<div className="group-hover:opacity-0 group-hover:translate-x-[100%] transition-all absolute top-[50%] right-0 -translate-y-[50%] mt-0.5 duration-300">
<ArrowIcon />
</div>
</div>
);
}
export default FeatureItem;
@@ -0,0 +1,51 @@
import { useEffect, useRef } from "react";
interface FeatureVideoViewBoxProps {
video: string;
}
function FeatureVideoViewBox({ video }: FeatureVideoViewBoxProps) {
// const videoRef = useRef<HTMLVideoElement>(null);
const videoContainerRef = useRef<HTMLDivElement>(null);
useEffect(() => {
if (!video || !videoContainerRef.current) return;
const videoEl = document.createElement("video");
videoEl.src = video;
videoEl.muted = true;
videoEl.autoplay = true;
videoEl.loop = true;
videoEl.playsInline = true;
videoEl.preload = "metadata";
videoEl.onloadeddata = () => console.log("onloadeddata");
videoEl.classList.add("absolute", "h-fit");
videoContainerRef.current.appendChild(videoEl);
if (videoContainerRef.current.childElementCount > 1) {
setTimeout(() => {
videoContainerRef.current?.firstElementChild?.remove();
}, 5000);
}
}, [video]);
return (
<div ref={videoContainerRef} className="relative h-fit">
{/* {videos.map((videoSrc, index) => (
<video
key={index}
src={videoSrc}
muted
autoPlay
playsInline
loop
onLoadedData={handleLoadedData}
className="absolute"
/>
))} */}
</div>
);
}
export default FeatureVideoViewBox;
@@ -0,0 +1,19 @@
import { motion } from "framer-motion";
import PlusIcon from "./icons/PlusIcon";
function MoreProjectButton() {
return (
<motion.button
initial={{ opacity: 0 }}
whileInView={{ opacity: 1 }}
viewport={{ once: true, margin: "-100px" }}
transition={{ duration: 1, ease: [0.58, 0.12, 0.27, 0.98], delay: 0.2 }}
className="aspect-[4/3] border border-[#3D425C] rounded-[48px] flex flex-col justify-center items-center gap-2"
>
<PlusIcon />
<p className="font-gilroy font-medium leading-none">Показать еще</p>
</motion.button>
);
}
export default MoreProjectButton;
+63
View File
@@ -0,0 +1,63 @@
import { isAfter, parse } from "date-fns";
import { motion } from "framer-motion";
interface ProjectCardProps {
title: string;
company: string;
image: string;
releaseDate: string;
stream?: boolean;
}
function ProjectCard({
title,
company,
image,
releaseDate,
stream,
}: ProjectCardProps) {
return (
<motion.div
initial={{ opacity: 0 }}
whileInView={{ opacity: 1 }}
viewport={{ once: true, margin: "-100px" }}
transition={{ duration: 1, ease: [0.58, 0.12, 0.27, 0.98], delay: 0.2 }}
className="aspect-[4/3] p-6 bg-cover bg-center bg-no-repeat flex items-end"
style={{
background: `linear-gradient(180deg, rgba(20, 22, 31, 0.00) 0%, rgba(20, 22, 31, 0.60) 100%), url('${image}'), lightgray 50% / cover no-repeat`,
}}
>
<div className="flex flex-col gap-4">
<div>
<p className="text-2xl font-gilroy font-medium">{title}</p>
<p className="text-sm">{company}</p>
</div>
<div className="flex gap-2">
{isAfter(parse(releaseDate, "dd.MM.yyyy", new Date()), new Date()) ? (
<div className="bg-[#14161F] px-4 py-2.5 rounded-full w-fit">
<p className="font-gilroy font-medium leading-none">
Релиз {releaseDate}
</p>
</div>
) : (
<div className="bg-gradient px-4 py-2.5 rounded-full w-fit">
<p className="font-gilroy font-medium leading-none">Сдан</p>
</div>
)}
{stream && (
<div className="bg-[#14161F] px-4 py-2.5 rounded-full w-fit flex items-center gap-2">
<div className="w-2 h-2 bg-gradient rounded-full"></div>
<p className="font-gilroy font-semibold leading-none text-gradient">
Stream
</p>
</div>
)}
</div>
</div>
</motion.div>
);
}
export default ProjectCard;
+39
View File
@@ -0,0 +1,39 @@
.rangeslider {
margin: 10px 0;
box-shadow: none !important;
height: 2px !important;
background-color: #3d425c !important;
}
.rangeslider__fill {
box-shadow: none !important;
background-color: #798fff !important;
}
.rangeslider__handle {
box-shadow: none !important;
background-color: #798fff !important;
width: 24px !important;
height: 24px !important;
border: none !important;
border-radius: 50% !important;
}
.rangeslider__handle::after {
opacity: 0;
background-color: rgba(121, 143, 255, 0.5) !important;
width: 24px !important;
height: 24px !important;
top: 0 !important;
left: 0 !important;
box-shadow: none !important;
transition: all 0.2s;
}
.rangeslider__handle:hover.rangeslider__handle::after {
opacity: 1;
width: 40px !important;
height: 40px !important;
top: calc(-50% + 4px) !important;
left: calc(-50% + 4px) !important;
}
+24
View File
@@ -0,0 +1,24 @@
import Slider from "react-rangeslider";
import "react-rangeslider/lib/index.css";
import "./RangeSlider.css";
import { useState } from "react";
interface RangeSliderProps {
defaultValue: number;
}
function RangeSlider({ defaultValue }: RangeSliderProps) {
const [value, setValue] = useState<number>(defaultValue);
return (
<Slider
min={1}
max={200}
value={value}
onChange={(value) => setValue(value)}
tooltip={false}
/>
);
}
export default RangeSlider;
+50
View File
@@ -0,0 +1,50 @@
import ArrowIcon from "./icons/ArrowIcon";
interface StreamButton {
icon: string;
title: string;
location: string;
background: string;
link: string;
}
function StreamButton({
icon,
title,
location,
background,
link,
}: StreamButton) {
return (
<a
href={link}
target="_blank"
className="group relative grid grid-cols-4 gap-4 h-36 border-b border-[#3D425C] cursor-pointer"
>
<div className="col-span-2 flex items-center gap-12">
<img src={icon} alt="" />
<p className="text-2xl font-gilroy font-medium">{title}</p>
</div>
<div className="flex items-center">
<p>{location}</p>
</div>
<div className="flex items-center justify-between">
<p>Демоверсия</p>
<ArrowIcon />
</div>
<div
className="group-hover:opacity-100 opacity-0 transition-opacity duration-300 absolute top-0 left-0 w-full h-full bg-cover bg-center bg-no-repeat"
style={{ backgroundImage: `url(${background})` }}
>
<div className="w-full h-full bg-black bg-opacity-40 flex flex-col gap-2 justify-center items-center">
<p className="text-2xl font-gilroy font-medium">
начать демонстрацию
</p>
<p>{title}</p>
</div>
</div>
</a>
);
}
export default StreamButton;
@@ -0,0 +1,850 @@
function BlendStream() {
return (
<svg
width="718"
height="720"
viewBox="0 0 718 720"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g opacity="0.34">
<path
opacity="0.5"
d="M11.6371 316.326C-11.5415 270.489 6.529 214.392 51.992 191.027L401.163 11.5825C446.626 -11.7817 502.273 6.43091 525.451 52.2683L703.45 404.275C726.629 450.112 708.559 506.209 663.096 529.573L313.925 709.018C268.462 732.383 212.815 714.17 189.636 668.333L11.6371 316.326Z"
stroke="url(#paint0_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M455.413 582.737C419.478 605.595 371.968 594.758 349.294 558.531L264.067 422.363C241.392 386.133 252.143 338.231 288.081 315.372L423.152 229.453C459.087 206.595 506.597 217.432 529.271 253.659L614.497 389.827C637.173 426.057 626.422 473.959 590.484 496.818L455.413 582.737Z"
stroke="url(#paint1_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M55.2259 198.222C10.5658 222.835 -5.84675 279.285 18.5676 324.308L201.931 667.26C226.345 712.283 282.341 728.829 327.001 704.216L667.19 519.364C711.851 494.751 728.263 438.301 703.849 393.278L520.486 50.3258C496.071 5.30296 440.075 -11.2428 395.415 13.3697L55.2259 198.222Z"
stroke="url(#paint2_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M58.7737 205.897C15.1886 231.601 0.525256 288.058 26.0223 331.997L214.494 665.814C239.991 709.754 295.993 724.536 339.578 698.832L670.706 508.83C714.291 483.126 728.955 426.669 703.458 382.73L514.986 48.9125C489.489 4.97332 433.487 -9.80907 389.902 15.895L58.7737 205.897Z"
stroke="url(#paint3_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M62.415 213.606C19.9286 240.372 7.00963 296.791 33.5596 339.623L226.882 664.232C253.432 707.063 309.397 720.087 351.883 693.321L673.877 498.429C716.363 471.664 729.282 415.244 702.732 372.413L509.41 47.804C482.86 4.97266 426.895 -8.05125 384.409 18.7143L62.415 213.606Z"
stroke="url(#paint4_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M66.1491 221.348C24.7847 249.144 13.6042 305.482 41.1768 347.183L239.092 662.515C266.664 704.216 322.549 715.487 363.913 687.691L676.705 488.168C718.07 460.372 729.25 404.034 701.678 362.333L503.763 47.0007C476.19 5.30034 420.306 -5.97099 378.942 21.8255L66.1491 221.348Z"
stroke="url(#paint5_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M69.9753 229.115C29.7553 257.911 20.3064 314.125 48.8707 354.671L251.119 660.666C279.684 701.213 335.444 710.738 375.664 681.942L679.194 478.051C719.414 449.255 728.863 393.041 700.299 352.495L498.05 46.4997C469.486 5.95303 413.725 -3.57257 373.505 25.2237L69.9753 229.115Z"
stroke="url(#paint6_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M73.8985 236.909C34.8445 266.674 27.1195 322.72 56.6443 362.091L262.967 658.693C292.492 698.064 348.086 705.851 387.14 676.087L681.352 468.089C720.406 438.324 728.131 382.279 698.607 342.907L492.284 46.3056C462.759 6.93439 407.165 -0.853312 368.111 28.9112L73.8985 236.909Z"
stroke="url(#paint7_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M77.9178 244.723C40.0507 275.424 34.0409 331.258 64.4944 369.433L274.631 656.593C305.084 694.767 360.469 700.826 398.336 670.125L683.183 458.282C721.05 427.581 727.06 371.747 696.606 333.572L486.47 46.4122C456.016 8.23768 400.631 2.17903 362.764 32.8799L77.9178 244.723Z"
stroke="url(#paint8_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M82.0322 252.556C45.3723 284.16 41.0679 339.741 72.418 376.699L286.108 654.374C317.458 691.331 372.591 695.671 409.25 664.066L684.689 448.641C721.348 417.036 725.653 361.456 694.303 324.498L480.613 46.8231C449.263 9.86547 394.13 5.52607 357.47 37.1307L82.0322 252.556Z"
stroke="url(#paint9_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M86.2465 260.405C50.8132 292.881 48.2036 348.165 80.4176 383.886L297.399 652.039C329.613 687.76 384.452 690.391 419.886 657.916L685.879 439.172C721.312 406.696 723.922 351.412 691.708 315.691L474.726 47.5373C442.512 11.8162 387.673 9.18535 352.24 41.6611L86.2465 260.405Z"
stroke="url(#paint10_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M90.5596 268.264C56.3715 301.578 55.445 356.523 88.4901 390.989L308.503 649.591C341.548 684.056 396.051 684.99 430.239 651.677L686.758 429.878C720.946 396.564 721.872 341.618 688.827 307.153L468.814 48.551C435.769 14.0853 381.266 13.1513 347.078 46.4647L90.5596 268.264Z"
stroke="url(#paint11_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M94.9701 276.133C62.0452 310.251 62.7894 364.816 96.6321 398.008L319.414 647.034C353.257 680.226 407.383 679.476 440.308 645.359L687.328 420.767C720.253 386.649 719.508 332.084 685.666 298.892L462.883 49.866C429.041 16.6738 374.915 17.4239 341.99 51.5415L94.9701 276.133Z"
stroke="url(#paint12_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M99.4826 284.007C67.8381 318.894 70.2393 373.038 104.846 404.939L330.137 644.371C364.744 676.273 418.451 673.852 450.096 638.964L687.599 411.844C719.243 376.956 716.842 322.813 682.235 290.911L456.944 51.4791C422.338 19.5775 368.63 21.9983 336.986 56.886L99.4826 284.007Z"
stroke="url(#paint13_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M104.096 291.886C73.7477 327.51 77.7917 381.19 113.128 411.784L340.667 641.611C376.004 672.205 429.251 668.129 459.599 632.505L687.575 403.118C717.923 367.495 713.878 313.815 678.542 283.22L451.003 53.3936C415.667 22.7992 362.419 26.8761 332.071 62.4996L104.096 291.886Z"
stroke="url(#paint14_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M108.808 299.761C79.7721 336.085 85.4436 389.262 121.476 418.533L351.002 638.749C387.034 668.021 439.782 662.303 468.817 625.978L687.259 394.588C716.295 358.264 710.623 305.087 674.591 275.816L445.065 55.6001C409.033 26.3285 356.285 32.046 327.25 68.3706L108.808 299.761Z"
stroke="url(#paint15_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M113.623 307.631C85.9145 344.621 93.1973 397.253 129.89 425.187L361.143 635.793C397.836 663.727 450.044 656.385 477.753 619.394L686.662 386.263C714.371 349.272 707.088 296.64 670.395 268.706L439.142 58.1005C402.449 30.1666 350.241 37.5085 322.532 74.4992L113.623 307.631Z"
stroke="url(#paint16_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M118.541 315.496C92.1725 353.117 101.049 405.164 138.368 431.747L371.089 632.749C408.408 659.331 460.036 650.382 486.404 612.761L685.787 378.149C712.155 340.528 703.278 288.481 665.96 261.898L433.238 60.896C395.92 34.3137 344.292 43.2628 317.924 80.8842L118.541 315.496Z"
stroke="url(#paint17_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M123.558 323.346C98.5437 361.563 108.997 412.986 146.906 438.203L380.836 629.615C418.745 654.833 469.754 644.295 494.769 606.078L684.639 370.248C709.653 332.031 699.2 280.607 661.291 255.39L427.36 63.9781C389.451 38.7608 338.442 49.2988 313.428 87.5154L123.558 323.346Z"
stroke="url(#paint18_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M128.679 331.183C105.031 369.959 117.041 420.72 155.505 444.56L390.387 626.401C428.851 650.241 479.202 638.133 502.85 599.357L683.226 362.567C706.874 323.791 694.864 273.03 656.4 249.19L421.518 67.3495C383.054 43.5095 332.703 55.6174 309.055 94.3934L128.679 331.183Z"
stroke="url(#paint19_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M133.902 339.001C111.631 378.301 125.179 428.359 164.162 450.81L399.74 623.105C438.722 645.556 488.378 631.898 510.648 592.599L681.555 355.108C703.825 315.809 690.277 265.751 651.294 243.299L415.717 71.0046C376.734 48.5535 327.079 62.2116 304.809 101.511L133.902 339.001Z"
stroke="url(#paint20_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M139.224 346.797C118.343 386.583 133.408 435.901 172.873 456.953L408.89 619.733C448.356 640.785 497.277 625.597 518.159 585.811L679.628 347.877C700.51 308.091 685.445 258.772 645.98 237.721L409.962 74.9407C370.497 53.8892 321.575 69.0766 300.693 108.863L139.224 346.797Z"
stroke="url(#paint21_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M144.651 354.568C125.167 394.805 141.728 443.346 181.64 462.988L417.843 616.291C457.755 635.933 505.905 619.238 525.389 579.001L677.457 340.88C696.941 300.644 680.38 252.103 640.468 232.461L404.265 79.1577C364.353 59.5157 316.202 76.2108 296.719 116.447L144.651 354.568Z"
stroke="url(#paint22_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M150.178 362.309C132.101 402.959 150.135 450.686 190.458 468.909L426.594 612.778C466.916 631.001 514.258 612.821 532.335 572.171L675.045 334.117C693.121 293.467 675.087 245.741 634.765 227.517L398.629 83.6487C358.307 65.4252 310.965 83.6056 292.888 124.256L150.178 362.309Z"
stroke="url(#paint23_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M155.804 370.019C139.143 411.046 158.627 457.921 199.324 474.718L435.141 609.202C475.837 625.998 522.335 606.356 538.996 565.329L672.397 327.597C689.058 286.57 669.574 239.695 628.877 222.898L393.06 88.4143C352.364 71.6176 305.866 91.26 289.205 132.287L155.804 370.019Z"
stroke="url(#paint24_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M161.533 377.69C146.294 419.057 167.205 465.045 208.238 480.407L443.487 605.561C484.52 620.924 530.138 599.844 545.377 558.477L669.523 321.317C684.762 279.951 663.851 233.963 622.818 218.6L387.568 93.4462C346.535 78.0836 300.918 99.1639 285.679 140.53L161.533 377.69Z"
stroke="url(#paint25_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M167.361 385.325C153.551 426.994 175.863 472.059 217.197 485.981L451.63 601.866C492.964 615.788 537.666 593.295 551.476 551.626L666.428 315.288C680.237 273.619 657.925 228.554 616.592 214.632L382.158 98.7466C340.825 84.8246 296.123 107.318 282.313 148.987L167.361 385.325Z"
stroke="url(#paint26_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M173.286 392.915C160.911 434.849 184.599 478.957 226.195 491.432L459.568 598.116C501.164 610.591 544.917 586.711 557.292 544.777L663.116 309.509C675.491 267.575 651.803 223.467 610.206 210.991L376.834 104.308C335.238 91.8322 291.485 115.713 279.11 157.647L173.286 392.915Z"
stroke="url(#paint27_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M179.311 400.459C168.375 442.621 193.413 485.737 235.235 496.762L467.303 594.316C509.125 605.34 551.894 580.099 562.83 537.937L659.598 303.985C670.534 261.823 645.495 218.707 603.673 207.682L371.605 110.128C329.783 99.1035 287.014 124.345 276.079 166.507L179.311 400.459Z"
stroke="url(#paint28_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M185.432 407.952C175.94 450.304 202.301 492.395 244.312 501.965L474.833 590.468C516.844 600.037 558.596 573.462 568.088 531.11L655.878 298.717C665.37 256.365 639.009 214.274 596.998 204.704L366.477 116.202C324.466 106.632 282.715 133.207 273.222 175.559L185.432 407.952Z"
stroke="url(#paint29_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M191.648 415.391C183.602 457.895 211.258 498.928 253.42 507.04L482.156 586.575C524.318 594.687 565.02 566.806 573.067 524.301L651.961 293.708C660.007 251.203 632.351 210.171 590.189 202.059L361.453 122.524C319.291 114.412 278.589 142.293 270.542 184.798L191.648 415.391Z"
stroke="url(#paint30_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M197.96 422.774C191.362 465.393 220.285 505.336 262.562 511.987L489.275 582.645C531.551 589.296 571.172 560.138 577.77 517.518L647.858 288.964C654.456 246.344 625.533 206.402 583.256 199.751L356.543 129.093C314.267 122.442 274.646 151.6 268.048 194.219L197.96 422.774Z"
stroke="url(#paint31_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M204.365 430.095C199.217 472.792 229.378 511.612 271.731 516.802L496.187 578.677C538.541 583.867 577.048 553.461 582.196 510.764L643.573 284.485C648.721 241.788 618.56 202.967 576.207 197.778L351.75 135.903C309.397 130.713 270.89 161.118 265.742 203.816L204.365 430.095Z"
stroke="url(#paint32_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M210.86 437.351C207.163 480.088 238.531 517.755 280.924 521.483L502.892 574.675C545.285 578.403 582.648 546.78 586.346 504.043L639.11 280.272C642.808 237.535 611.44 199.868 569.047 196.14L347.079 142.948C304.686 139.22 267.322 170.843 263.625 213.58L210.86 437.351Z"
stroke="url(#paint33_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M217.447 444.542C215.199 487.281 247.745 523.765 290.14 526.031L509.391 570.648C551.786 572.914 587.976 540.104 590.224 497.365L634.481 276.333C636.729 233.594 604.183 197.11 561.789 194.844L342.537 150.227C300.142 147.961 263.952 180.771 261.704 223.51L217.447 444.542Z"
stroke="url(#paint34_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M224.123 451.659C223.324 494.363 257.015 529.634 299.374 530.44L515.683 566.591C558.043 567.397 593.03 533.432 593.829 490.729L629.69 272.663C630.489 229.96 596.797 194.688 554.438 193.883L338.129 157.731C295.77 156.925 260.782 190.89 259.983 233.594L224.123 451.659Z"
stroke="url(#paint35_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M230.883 458.702C231.53 501.333 266.336 535.363 308.623 534.71L521.766 562.513C564.053 561.861 597.809 526.773 597.161 484.142L624.741 269.268C624.093 226.637 589.288 192.608 547.001 193.26L333.858 165.457C291.571 166.11 257.815 201.197 258.462 243.828L230.883 458.702Z"
stroke="url(#paint36_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M237.73 465.67C239.821 508.19 275.707 540.951 317.885 538.843L527.643 558.419C569.82 556.311 602.317 520.133 600.226 477.613L619.645 266.152C617.554 223.632 581.667 190.871 539.49 192.979L329.731 173.403C287.554 175.511 255.058 211.689 257.149 254.209L237.73 465.67Z"
stroke="url(#paint37_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M244.659 472.555C248.19 514.927 285.124 546.39 327.155 542.831L533.312 554.308C575.342 550.748 606.552 513.513 603.022 471.141L614.406 263.311C610.875 220.939 573.941 189.475 531.91 193.035L325.753 181.557C283.723 185.117 252.512 222.352 256.043 264.724L244.659 472.555Z"
stroke="url(#paint38_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M251.668 479.356C256.634 521.542 294.584 551.683 336.43 546.676L538.772 550.186C580.619 545.179 610.517 506.922 605.551 464.735L609.032 260.75C604.066 218.563 566.116 188.423 524.27 193.429L321.928 189.92C280.081 194.926 250.183 233.184 255.149 275.371L251.668 479.356Z"
stroke="url(#paint39_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M258.754 486.07C265.149 528.035 304.079 556.826 345.705 550.379L544.023 546.057C585.649 539.609 614.209 500.364 607.813 458.4L603.526 258.472C597.13 216.507 558.201 187.716 516.575 194.163L318.257 198.485C276.631 204.932 248.071 244.178 254.467 286.142L258.754 486.07Z"
stroke="url(#paint40_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M265.917 492.694C273.736 534.399 313.61 561.817 354.979 553.934L549.066 541.924C590.435 534.041 617.632 493.842 609.813 452.138L597.899 256.474C590.08 214.77 550.205 187.352 508.837 195.234L314.75 207.245C273.381 215.127 246.184 255.326 254.003 297.031L265.917 492.694Z"
stroke="url(#paint41_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M273.15 499.225C282.386 540.633 323.17 566.654 364.245 557.343L553.899 537.79C594.974 528.48 620.785 487.364 611.549 445.956L592.154 254.762C582.919 213.354 542.134 187.333 501.06 196.644L311.405 216.196C270.331 225.507 244.52 266.622 253.755 308.03L273.15 499.225Z"
stroke="url(#paint42_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M280.456 505.656C291.1 546.731 332.758 571.331 373.502 560.6L558.525 533.657C599.269 522.927 623.671 480.93 613.027 439.855L586.3 253.33C575.657 212.255 533.999 187.655 493.254 198.385L308.232 225.329C267.487 236.059 243.086 278.055 253.73 319.131L280.456 505.656Z"
stroke="url(#paint43_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M287.83 511.993C299.873 552.698 342.368 575.854 382.746 563.714L562.942 529.535C603.32 517.394 626.29 474.554 614.247 433.848L580.343 252.188C568.3 211.483 525.805 188.326 485.427 200.467L305.231 234.646C264.853 246.787 241.884 289.627 253.927 330.333L287.83 511.993Z"
stroke="url(#paint44_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M295.266 518.225C308.699 558.524 351.994 580.216 391.969 566.674L567.149 525.42C607.124 511.879 628.64 468.232 615.207 427.932L574.286 251.33C560.854 211.031 517.558 189.339 477.584 202.881L302.404 244.134C262.429 257.676 240.913 301.323 254.345 341.623L295.266 518.225Z"
stroke="url(#paint45_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M302.766 524.355C317.578 564.213 361.636 584.418 401.172 569.486L571.148 521.323C610.684 506.391 630.727 461.975 615.915 422.118L568.141 250.762C553.329 210.904 509.271 190.699 469.734 205.631L299.759 253.794C260.222 268.726 240.179 313.142 254.991 352.999L302.766 524.355Z"
stroke="url(#paint46_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M310.324 530.376C326.504 569.755 371.286 588.456 410.349 572.145L574.938 517.241C614 500.93 632.55 455.784 616.37 416.404L561.91 250.478C545.73 211.099 500.947 192.398 461.885 208.71L297.296 263.613C258.233 279.924 239.683 325.07 255.863 364.45L310.324 530.376Z"
stroke="url(#paint47_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M317.935 536.287C335.471 575.153 380.94 592.329 419.493 574.651L578.517 513.181C617.07 495.503 634.108 449.665 616.573 410.799L555.598 250.483C538.063 211.617 492.594 194.441 454.041 212.119L295.016 273.588C256.463 291.266 239.425 337.104 256.961 375.97L317.935 536.287Z"
stroke="url(#paint48_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M325.6 542.089C344.479 580.406 390.595 596.04 428.604 577.008L581.89 509.15C619.898 490.118 635.407 443.627 616.528 405.31L549.216 250.779C530.338 212.462 484.222 196.828 446.213 215.859L292.927 283.718C254.918 302.75 239.41 349.24 258.289 387.558L325.6 542.089Z"
stroke="url(#paint49_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M333.314 547.774C353.522 585.507 400.246 599.582 437.675 579.21L585.054 505.145C622.483 484.773 636.444 437.669 616.237 399.936L542.768 251.361C522.56 213.627 475.836 199.553 438.407 219.924L291.028 293.99C253.599 314.362 239.638 361.465 259.845 399.199L333.314 547.774Z"
stroke="url(#paint50_linear_1218_8391)"
/>
<path
opacity="0.5"
d="M341.071 553.343C362.593 590.459 409.885 602.957 446.702 581.261L588.007 501.174C624.823 479.477 637.221 431.8 615.699 394.685L536.257 252.233C514.735 215.117 467.443 202.618 430.626 224.315L289.321 304.402C252.505 326.099 240.107 373.776 261.629 410.891L341.071 553.343Z"
stroke="url(#paint51_linear_1218_8391)"
/>
</g>
<defs>
<linearGradient
id="paint0_linear_1218_8391"
x1="212.424"
y1="748.743"
x2="478.406"
y2="-96.7911"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint1_linear_1218_8391"
x1="573.318"
y1="643.942"
x2="254.666"
y2="155.523"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint2_linear_1218_8391"
x1="223.87"
y1="746.487"
x2="473.136"
y2="-96.617"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint3_linear_1218_8391"
x1="235.109"
y1="744.172"
x2="467.829"
y2="-96.2125"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint4_linear_1218_8391"
x1="246.145"
y1="741.808"
x2="462.497"
y2="-95.5749"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint5_linear_1218_8391"
x1="256.978"
y1="739.399"
x2="457.142"
y2="-94.7059"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint6_linear_1218_8391"
x1="267.606"
y1="736.947"
x2="451.767"
y2="-93.6094"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint7_linear_1218_8391"
x1="278.034"
y1="734.461"
x2="446.383"
y2="-92.2827"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint8_linear_1218_8391"
x1="288.262"
y1="731.941"
x2="440.991"
y2="-90.7334"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint9_linear_1218_8391"
x1="298.289"
y1="729.395"
x2="435.596"
y2="-88.9595"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint10_linear_1218_8391"
x1="308.121"
y1="726.827"
x2="430.206"
y2="-86.9631"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint11_linear_1218_8391"
x1="317.756"
y1="724.24"
x2="424.824"
y2="-84.7496"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint12_linear_1218_8391"
x1="327.195"
y1="721.639"
x2="419.452"
y2="-82.3183"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint13_linear_1218_8391"
x1="336.444"
y1="719.028"
x2="414.101"
y2="-79.6737"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint14_linear_1218_8391"
x1="345.502"
y1="716.415"
x2="408.772"
y2="-76.8135"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint15_linear_1218_8391"
x1="354.369"
y1="713.797"
x2="403.467"
y2="-73.7484"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint16_linear_1218_8391"
x1="363.051"
y1="711.182"
x2="398.196"
y2="-70.4772"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint17_linear_1218_8391"
x1="371.549"
y1="708.577"
x2="392.96"
y2="-66.9999"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint18_linear_1218_8391"
x1="379.863"
y1="705.979"
x2="387.762"
y2="-63.3256"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint19_linear_1218_8391"
x1="387.999"
y1="703.398"
x2="382.608"
y2="-59.4525"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint20_linear_1218_8391"
x1="395.957"
y1="700.833"
x2="377.503"
y2="-55.3867"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint21_linear_1218_8391"
x1="403.738"
y1="698.289"
x2="372.446"
y2="-51.1316"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint22_linear_1218_8391"
x1="411.349"
y1="695.772"
x2="367.447"
y2="-46.6877"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint23_linear_1218_8391"
x1="418.79"
y1="693.281"
x2="362.505"
y2="-42.0623"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint24_linear_1218_8391"
x1="426.061"
y1="690.823"
x2="357.622"
y2="-37.255"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint25_linear_1218_8391"
x1="433.17"
y1="688.396"
x2="352.806"
y2="-32.2744"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint26_linear_1218_8391"
x1="440.118"
y1="686.01"
x2="348.058"
y2="-27.1182"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint27_linear_1218_8391"
x1="446.904"
y1="683.663"
x2="343.378"
y2="-21.794"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint28_linear_1218_8391"
x1="453.536"
y1="681.36"
x2="338.773"
y2="-16.3035"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint29_linear_1218_8391"
x1="460.015"
y1="679.101"
x2="334.244"
y2="-10.6523"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint30_linear_1218_8391"
x1="466.342"
y1="676.889"
x2="329.791"
y2="-4.84444"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint31_linear_1218_8391"
x1="472.523"
y1="674.73"
x2="325.42"
y2="1.11948"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint32_linear_1218_8391"
x1="478.559"
y1="672.622"
x2="321.131"
y2="7.2327"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint33_linear_1218_8391"
x1="484.452"
y1="670.568"
x2="316.925"
y2="13.4915"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint34_linear_1218_8391"
x1="490.208"
y1="668.573"
x2="312.807"
y2="19.8959"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint35_linear_1218_8391"
x1="495.829"
y1="666.635"
x2="308.777"
y2="26.4364"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint36_linear_1218_8391"
x1="501.315"
y1="664.756"
x2="304.834"
y2="33.1123"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint37_linear_1218_8391"
x1="506.673"
y1="662.942"
x2="300.983"
y2="39.9228"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint38_linear_1218_8391"
x1="511.904"
y1="661.189"
x2="297.225"
y2="46.8583"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint39_linear_1218_8391"
x1="517.011"
y1="659.502"
x2="293.56"
y2="53.9193"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint40_linear_1218_8391"
x1="521.995"
y1="657.882"
x2="289.987"
y2="61.1022"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint41_linear_1218_8391"
x1="526.862"
y1="656.329"
x2="286.511"
y2="68.4016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint42_linear_1218_8391"
x1="531.611"
y1="654.845"
x2="283.128"
y2="75.8159"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint43_linear_1218_8391"
x1="536.25"
y1="653.426"
x2="279.844"
y2="83.337"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint44_linear_1218_8391"
x1="540.777"
y1="652.083"
x2="276.656"
y2="90.9704"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint45_linear_1218_8391"
x1="545.195"
y1="650.809"
x2="273.564"
y2="98.7051"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint46_linear_1218_8391"
x1="549.51"
y1="649.609"
x2="270.571"
y2="106.544"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint47_linear_1218_8391"
x1="553.722"
y1="648.479"
x2="267.676"
y2="114.478"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint48_linear_1218_8391"
x1="557.832"
y1="647.422"
x2="264.877"
y2="122.507"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint49_linear_1218_8391"
x1="561.845"
y1="646.442"
x2="262.178"
y2="130.631"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint50_linear_1218_8391"
x1="565.763"
y1="645.533"
x2="259.577"
y2="138.841"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint51_linear_1218_8391"
x1="569.585"
y1="644.7"
x2="257.071"
y2="147.14"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
</defs>
</svg>
);
}
export default BlendStream;
+353
View File
@@ -0,0 +1,353 @@
function BlendVR() {
return (
<svg
width="1035"
height="847"
viewBox="0 0 1035 847"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g opacity="0.3" clipPath="url(#clip0_1218_8313)">
<path
d="M1.57054 335.346L276.225 610.595C276.568 610.939 276.615 611.479 276.336 611.876L160.505 776.945C160.101 777.521 160.402 778.323 161.085 778.491L435.106 845.874C435.427 845.953 435.765 845.869 436.011 845.649L1033.72 311.945C1034.16 311.553 1034.17 310.866 1033.74 310.466L826.228 118.318C826.102 118.202 825.948 118.119 825.78 118.079L334.595 0.864746C334.257 0.783997 333.901 0.884888 333.655 1.1311L1.57054 333.934C1.18103 334.324 1.18103 334.956 1.57054 335.346Z"
stroke="url(#paint0_linear_1218_8313)"
strokeLinecap="round"
/>
<path
d="M211.836 542.927L472.376 602.631C472.85 602.739 473.176 603.173 473.151 603.659L465.844 741.818C465.807 742.522 466.488 743.042 467.155 742.82L651.317 681.745C651.63 681.642 651.871 681.391 651.963 681.074L805.995 150.592C806.16 150.024 805.8 149.438 805.22 149.329L614.149 113.432C613.98 113.401 613.806 113.413 613.644 113.468L284.027 225.297C283.698 225.409 283.45 225.683 283.373 226.022L211.086 541.729C210.962 542.268 211.298 542.804 211.836 542.927Z"
stroke="url(#paint1_linear_1218_8313)"
strokeLinecap="round"
/>
<path
d="M6.90212 342.858L285.681 607.58L174.779 774.856L448.09 834.336L1023.42 292.632L813.187 108.233L326.004 5.70595L6.90212 342.858Z"
stroke="url(#paint2_linear_1218_8313)"
/>
<path
d="M12.7607 350.696L294.23 604.037L189.423 771.66L460.114 823.049L1012.39 274.544L800.534 98.4938L318.115 10.3344L12.7607 350.696Z"
stroke="url(#paint3_linear_1218_8313)"
/>
<path
d="M19.0958 358.858L302.819 600.837L204.027 768.616L471.854 812.069L1001.19 257.53L788.021 89.8048L310.795 15.7377L19.0958 358.858Z"
stroke="url(#paint4_linear_1218_8313)"
/>
<path
d="M25.8322 367.338L311.423 598.03L218.589 765.759L483.33 801.479L989.779 241.773L775.574 82.3053L303.935 21.9628L25.8322 367.338Z"
stroke="url(#paint5_linear_1218_8313)"
/>
<path
d="M33.002 376.114L320.065 595.596L233.114 763.076L494.551 791.26L978.218 227.21L763.265 75.9333L297.598 28.9636L33.002 376.114Z"
stroke="url(#paint6_linear_1218_8313)"
/>
<path
d="M40.6145 385.169L328.759 593.528L247.611 760.567L505.533 781.417L966.554 213.834L751.133 70.6739L291.81 36.7143L40.6145 385.169Z"
stroke="url(#paint7_linear_1218_8313)"
/>
<path
d="M48.6779 394.489L337.519 591.825L262.087 758.234L516.294 771.958L954.829 201.646L739.218 66.5173L286.595 45.195L48.6779 394.489Z"
stroke="url(#paint8_linear_1218_8313)"
/>
<path
d="M57.1941 404.052L346.354 590.479L276.546 756.073L526.844 762.886L943.081 190.634L727.551 63.4441L281.97 54.3768L57.1941 404.052Z"
stroke="url(#paint9_linear_1218_8313)"
/>
<path
d="M66.1727 413.845L355.278 589.489L290.997 754.088L537.203 754.207L931.355 180.796L716.173 61.4421L277.958 64.2381L66.1727 413.845Z"
stroke="url(#paint10_linear_1218_8313)"
/>
<path
d="M75.6137 423.849L364.3 588.847L305.442 752.276L547.379 745.925L919.687 172.119L705.115 60.4917L274.575 74.7509L75.6137 423.849Z"
stroke="url(#paint11_linear_1218_8313)"
/>
<path
d="M85.5255 434.043L373.436 588.545L319.891 750.633L557.394 738.04L908.121 164.593L694.414 60.5722L271.844 85.8867L85.5255 434.043Z"
stroke="url(#paint12_linear_1218_8313)"
/>
<path
d="M95.9077 444.415L382.691 588.581L334.347 749.162L567.258 730.56L896.692 158.209L684.1 61.668L269.776 97.6224L95.9077 444.415Z"
stroke="url(#paint13_linear_1218_8313)"
/>
<path
d="M106.764 454.944L392.079 588.947L348.817 747.86L576.987 723.485L885.441 152.952L674.208 63.7564L268.391 109.928L106.764 454.944Z"
stroke="url(#paint14_linear_1218_8313)"
/>
<path
d="M118.101 465.612L401.614 589.634L363.308 746.726L586.6 716.817L874.409 148.808L664.772 66.8155L267.706 122.777L118.101 465.612Z"
stroke="url(#paint15_linear_1218_8313)"
/>
<path
d="M129.914 476.402L411.3 590.637L377.823 745.756L596.107 710.557L863.629 145.762L655.818 70.8227L267.73 136.139L129.914 476.402Z"
stroke="url(#paint16_linear_1218_8313)"
/>
<path
d="M142.206 487.296L421.15 591.947L392.37 744.95L605.525 704.706L853.139 143.798L647.378 75.7544L268.48 149.987L142.206 487.296Z"
stroke="url(#paint17_linear_1218_8313)"
/>
<path
d="M154.981 498.276L431.176 593.557L406.955 744.305L614.872 699.265L842.979 142.897L639.485 81.5857L269.969 164.291L154.981 498.276Z"
stroke="url(#paint18_linear_1218_8313)"
/>
<path
d="M168.234 509.325L441.383 595.457L421.581 743.818L624.158 694.232L833.18 143.041L632.161 88.2914L272.204 179.022L168.234 509.325Z"
stroke="url(#paint19_linear_1218_8313)"
/>
<path
d="M181.968 520.422L451.784 597.639L436.256 743.486L633.402 689.607L823.78 144.207L625.439 95.8429L275.199 194.148L181.968 520.422Z"
stroke="url(#paint20_linear_1218_8313)"
/>
<path
d="M196.177 531.555L462.385 600.096L450.982 743.308L642.616 685.39L814.809 146.379L619.34 104.217L278.961 209.644L196.177 531.555Z"
stroke="url(#paint21_linear_1218_8313)"
/>
</g>
<defs>
<linearGradient
id="paint0_linear_1218_8313"
x1="-26.7325"
y1="17.5441"
x2="851.113"
y2="1116.03"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint1_linear_1218_8313"
x1="78.8276"
y1="367.744"
x2="992.791"
y2="688.13"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint2_linear_1218_8313"
x1="-28.5618"
y1="31.7261"
x2="863.492"
y2="1089.42"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint3_linear_1218_8313"
x1="-30.3389"
y1="45.2674"
x2="875.83"
y2="1063.34"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint4_linear_1218_8313"
x1="-31.3261"
y1="59.316"
x2="887.408"
y2="1037.64"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint5_linear_1218_8313"
x1="-31.6474"
y1="73.8533"
x2="898.226"
y2="1012.57"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint6_linear_1218_8313"
x1="-31.249"
y1="88.8484"
x2="908.315"
y2="988.076"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint7_linear_1218_8313"
x1="-30.1186"
y1="104.271"
x2="917.701"
y2="964.173"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint8_linear_1218_8313"
x1="-28.2446"
y1="120.098"
x2="926.412"
y2="940.886"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint9_linear_1218_8313"
x1="-25.6224"
y1="136.295"
x2="934.471"
y2="918.231"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint10_linear_1218_8313"
x1="-22.2403"
y1="152.839"
x2="941.908"
y2="896.229"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint11_linear_1218_8313"
x1="-18.0961"
y1="169.699"
x2="948.746"
y2="874.895"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint12_linear_1218_8313"
x1="-13.1802"
y1="186.844"
x2="955.017"
y2="854.244"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint13_linear_1218_8313"
x1="-7.49144"
y1="204.249"
x2="960.746"
y2="834.293"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint14_linear_1218_8313"
x1="-1.02534"
y1="221.883"
x2="965.963"
y2="815.056"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint15_linear_1218_8313"
x1="6.22393"
y1="239.718"
x2="970.698"
y2="796.544"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint16_linear_1218_8313"
x1="14.2532"
y1="257.723"
x2="974.978"
y2="778.769"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint17_linear_1218_8313"
x1="23.0654"
y1="275.871"
x2="978.833"
y2="761.743"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint18_linear_1218_8313"
x1="32.6623"
y1="294.133"
x2="982.296"
y2="745.474"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint19_linear_1218_8313"
x1="43.0381"
y1="312.479"
x2="985.392"
y2="729.972"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint20_linear_1218_8313"
x1="54.1947"
y1="330.881"
x2="988.154"
y2="715.241"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint21_linear_1218_8313"
x1="66.1254"
y1="349.312"
x2="990.61"
y2="701.293"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<clipPath id="clip0_1218_8313">
<rect width="1035" height="847" fill="white" />
</clipPath>
</defs>
</svg>
);
}
export default BlendVR;
@@ -0,0 +1,374 @@
function Blending1() {
return (
<svg
width="672"
height="793"
viewBox="0 0 672 793"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g opacity="0.3">
<path
fillRule="evenodd"
clipRule="evenodd"
d="M604.411 582.908C582.499 619.216 554.555 651.844 519.129 675.115C483.978 698.206 441.853 704.259 401.533 716.178C356.047 729.624 308.951 768.51 265.201 750.177C220.059 731.261 227.025 657.281 188.592 626.951C145.315 592.797 52.0948 621.931 35.8814 569.201C18.9263 514.058 115.356 480.849 126.249 424.193C135.364 376.786 78.4873 332.546 90.3783 285.76C101.863 240.572 152.567 218.602 186.593 186.765C225.534 150.33 253.965 73.7343 306.323 83.7128C369.256 95.7068 366.402 205.766 424.789 232.162C472.618 253.784 531.119 183.261 578.138 206.596C620.193 227.467 619.771 289.583 631.945 334.971C643.241 377.084 651.796 419.927 646.983 463.265C642.251 505.876 626.557 546.213 604.411 582.908Z"
stroke="url(#paint0_linear_1101_41937)"
strokeWidth="2"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M353.62 760.462C329.864 773.569 303.94 782.703 276.861 784.252C249.99 785.789 224.701 775.646 198.537 769.333C169.021 762.21 130.48 768.676 112.086 744.493C93.1062 719.539 120.62 680.757 109.01 651.626C95.9361 618.822 34.9405 605.101 42.81 570.671C51.0395 534.667 115.117 547.158 139.269 519.238C159.479 495.877 142.09 453.124 163.64 430.997C184.454 409.625 219.588 413.693 248.63 406.947C281.868 399.226 322.118 365.873 347.955 388.183C379.01 415 342.242 475.102 366.173 508.447C385.776 535.762 440.756 515.411 459.363 543.416C476.005 568.464 455.912 602.766 448.151 631.83C440.95 658.797 431.995 685.291 415.472 707.775C399.226 729.882 377.629 747.215 353.62 760.462Z"
stroke="url(#paint1_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M503.321 679.444C538.698 657.448 566.953 626.075 589.372 590.937C612.03 555.426 628.437 516.177 634.13 474.425C639.919 431.961 632.562 389.655 622.494 348C611.643 303.105 613.578 242.083 572.767 220.543C527.14 196.462 467.932 264.32 421.467 241.901C364.744 214.533 370.242 106.464 308.7 93.1349C257.5 82.046 227.69 156.609 188.536 191.453C154.324 221.899 103.967 242.243 91.5769 286.361C78.7483 332.039 133.55 376.903 123.434 423.259C111.344 478.66 15.7838 508.924 31.0937 563.521C45.7338 615.73 138.041 589.39 179.728 624.01C216.748 654.755 208.093 727.274 251.985 746.967C294.523 766.053 341.749 729.002 386.77 716.906C426.68 706.184 468.217 701.27 503.321 679.444Z"
stroke="url(#paint2_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M487.97 683.769C523.258 663.031 551.78 632.907 574.661 598.943C597.785 564.617 614.862 526.467 621.475 485.595C628.201 444.027 622.009 402.29 613.139 361.127C603.579 316.762 606.972 256.87 567.413 234.712C523.183 209.939 463.366 275.141 418.274 251.98C363.226 223.706 371.271 117.689 311.147 103.087C261.126 90.9391 230.021 163.448 190.709 196.714C156.359 225.781 106.398 244.529 93.148 287.561C79.4294 332.114 132.161 377.526 121.09 422.811C107.86 476.934 13.2541 504.317 26.9566 558.321C40.0596 609.962 131.374 586.354 171.474 621.382C207.085 652.49 196.809 723.51 239.441 743.93C280.758 763.721 328.052 728.485 372.571 717.708C412.035 708.155 452.956 704.347 487.97 683.769Z"
stroke="url(#paint3_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M473.075 688.106C508.233 668.607 536.977 639.726 560.275 606.936C583.822 573.797 601.524 536.754 609.017 496.782C616.638 456.129 611.579 414.994 603.875 374.356C595.573 330.557 600.37 271.829 562.067 249.101C519.242 223.691 458.909 286.249 415.197 262.401C361.835 233.288 372.327 129.381 313.646 113.569C264.825 100.414 232.507 170.851 193.092 202.553C158.651 230.253 109.133 247.438 95.0693 289.368C80.5086 332.781 131.178 378.666 119.199 422.863C104.884 475.684 11.3159 500.253 23.4502 553.619C35.0536 604.65 125.297 583.706 163.817 619.085C198.025 650.504 186.197 719.991 227.56 741.088C267.646 761.535 314.949 728.094 358.928 718.603C397.913 710.19 438.189 707.454 473.075 688.106Z"
stroke="url(#paint4_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M458.631 692.469C493.62 674.19 522.542 646.545 546.214 614.927C570.139 582.974 588.421 547.046 596.754 507.992C605.229 468.272 601.268 427.769 594.7 387.688C587.621 344.491 593.766 286.959 556.722 263.71C515.305 237.716 454.551 297.647 412.225 273.165C360.555 243.279 373.395 141.538 316.178 124.578C268.576 110.468 235.13 178.819 195.663 208.973C161.178 235.32 112.149 250.975 97.3184 291.791C81.9636 334.049 130.58 380.333 117.741 423.425C102.397 474.925 9.94707 496.749 20.5536 549.432C30.6962 599.81 119.794 581.463 156.741 617.137C189.552 648.817 176.243 716.737 216.33 738.461C255.181 759.514 302.432 727.847 345.835 719.609C384.31 712.306 423.913 710.607 458.631 692.469Z"
stroke="url(#paint5_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M444.635 696.874C479.416 679.794 508.473 653.374 532.476 622.928C556.734 592.158 575.552 557.35 584.684 519.23C593.971 480.461 591.075 440.618 585.609 401.126C579.718 358.563 587.155 302.258 551.372 278.536C511.364 252.013 450.282 309.335 409.346 284.274C359.373 253.681 374.46 154.157 318.727 136.112C272.36 121.1 237.868 187.354 198.403 215.976C163.918 240.986 115.424 255.147 99.8731 294.835C83.7726 335.928 130.349 382.537 116.696 424.509C100.38 474.669 9.12596 493.821 18.2465 545.778C26.968 595.462 114.848 579.642 150.232 615.553C181.655 647.445 166.935 713.769 205.741 736.068C243.351 757.68 290.493 727.763 333.285 720.742C371.219 714.518 410.123 713.821 444.635 696.874Z"
stroke="url(#paint6_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M431.083 701.333C465.62 685.43 494.769 660.225 519.058 630.947C543.606 601.357 562.916 567.673 572.805 530.503C582.863 492.699 580.996 453.544 576.599 414.671C571.86 372.774 580.531 317.723 546.009 293.576C507.412 266.579 446.092 321.313 406.548 295.727C358.274 264.492 375.505 167.233 321.275 148.167C276.158 132.305 240.705 196.452 201.291 223.563C166.852 247.252 118.936 259.955 102.711 298.507C85.9134 338.422 130.464 385.285 116.046 426.123C98.8146 474.928 8.83053 491.48 16.5078 542.671C23.8492 591.623 110.442 578.256 144.275 614.35C174.32 646.404 158.259 711.104 195.782 733.93C232.147 756.051 279.122 727.858 321.271 722.019C358.634 716.843 396.814 717.112 431.083 701.333Z"
stroke="url(#paint7_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M417.968 705.862C452.223 691.114 481.422 667.111 505.955 638.996C530.749 610.582 550.508 578.023 561.113 541.817C571.899 504.993 571.024 466.552 567.662 428.325C564.039 387.125 573.886 333.355 540.623 308.831C503.435 281.413 441.968 333.584 403.816 307.526C357.242 275.715 376.514 180.765 323.802 160.741C279.948 144.082 243.615 206.117 204.304 231.737C169.955 254.123 122.658 265.406 105.807 302.813C88.36 341.542 130.901 388.587 115.766 428.279C97.6766 475.716 9.03428 489.743 15.3122 540.129C21.3155 588.31 106.555 577.323 138.849 613.545C167.529 645.713 150.199 708.765 186.436 732.066C221.555 754.648 268.308 728.152 309.782 723.459C346.546 719.298 383.979 720.496 417.968 705.862Z"
stroke="url(#paint8_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M405.29 710.479C439.228 696.86 468.435 674.047 493.17 647.088C518.167 619.843 538.33 588.412 549.61 553.181C561.081 517.349 561.162 479.647 558.8 442.094C556.254 401.62 567.22 349.154 535.214 324.301C499.43 296.515 437.905 346.15 401.143 319.673C356.267 287.352 377.477 194.751 326.296 173.833C283.715 156.43 246.587 216.349 207.428 240.5C173.212 261.602 126.574 271.505 109.143 307.76C91.0953 345.296 131.647 392.452 115.841 430.988C96.9518 477.044 9.71995 488.625 14.6435 538.168C19.3517 585.544 103.174 576.86 133.945 613.156C161.272 645.39 142.746 706.77 177.697 730.497C211.57 753.493 258.045 728.665 298.813 725.079C334.953 721.901 371.615 723.992 405.29 710.479Z"
stroke="url(#paint9_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M393.037 715.192C426.623 702.679 455.798 681.04 480.692 655.23C505.851 629.145 526.374 598.841 538.286 564.596C550.401 529.768 551.4 492.828 550.002 455.974C548.496 416.254 560.521 365.114 529.766 339.979C495.382 311.878 433.886 359.006 398.512 332.164C355.329 299.397 378.372 209.182 328.733 187.433C287.436 169.34 249.594 227.142 210.635 249.848C176.593 269.688 130.654 278.25 112.69 313.348C94.0899 349.686 132.673 396.882 116.245 434.256C96.6128 478.921 10.857 488.134 14.4721 536.799C17.9291 583.334 100.273 576.876 129.538 613.193C155.527 645.446 135.876 705.135 169.544 729.239C202.173 752.6 248.317 729.41 288.351 726.894C323.839 724.663 359.712 727.609 393.037 715.192Z"
stroke="url(#paint10_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M381.21 720.02C414.41 708.585 443.514 688.105 468.525 663.434C493.803 638.501 514.644 609.322 527.146 576.073C539.862 542.257 541.742 506.101 541.272 469.971C540.765 431.031 553.79 381.236 524.282 355.866C491.29 327.502 429.909 372.157 395.917 345.002C354.422 311.853 379.191 224.057 331.104 201.541C291.097 182.81 252.623 238.498 213.911 259.784C180.086 278.384 134.883 285.647 116.431 319.583C97.3274 354.719 133.965 401.889 116.964 438.091C96.6455 481.358 12.4284 488.284 14.782 536.037C17.0326 581.7 97.8407 577.389 125.618 613.675C150.286 645.899 129.583 703.881 161.97 728.313C193.358 751.991 239.119 730.406 278.391 728.921C313.204 727.604 348.267 731.366 381.21 720.02Z"
stroke="url(#paint11_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M369.795 724.973C402.578 714.589 431.57 695.25 456.658 671.709C482.014 647.916 503.129 619.859 516.18 587.613C529.453 554.818 532.175 519.466 532.596 484.083C533.05 445.947 547.016 397.516 518.745 371.957C487.138 343.382 425.955 385.6 393.339 358.184C353.523 324.715 379.914 239.367 333.384 216.148C294.674 196.832 255.649 250.411 217.231 270.305C183.661 287.687 139.23 293.693 120.338 326.466C100.778 360.398 135.497 407.473 117.969 442.501C97.022 484.363 14.4032 489.085 15.5428 535.893C16.6326 580.653 95.8503 578.408 122.16 614.611C145.525 646.763 123.842 703.022 154.954 727.732C185.106 751.681 230.433 731.668 268.917 731.173C303.031 730.735 337.267 735.276 369.795 724.973Z"
stroke="url(#paint12_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M358.792 730.066C391.125 720.706 419.968 702.489 445.093 680.065C470.485 657.402 491.831 630.462 505.389 599.225C519.177 567.456 522.703 532.929 523.977 498.313C525.351 461.006 540.198 413.953 513.156 388.251C482.922 359.515 422.021 399.334 390.772 371.708C352.624 337.984 380.53 255.108 335.563 231.25C298.153 211.402 258.658 262.88 220.578 281.409C187.304 297.599 143.677 302.39 124.391 333.999C104.423 366.727 137.251 413.642 119.245 447.491C97.7259 487.945 16.7616 490.547 16.7359 536.381C16.7113 580.209 94.287 579.946 119.15 616.017C141.231 648.051 118.641 702.575 148.485 727.517C177.407 751.689 222.251 733.212 259.923 733.669C293.317 734.073 326.709 739.353 358.792 730.066Z"
stroke="url(#paint13_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M348.19 735.311C380.044 726.945 408.7 709.832 433.821 688.512C459.21 666.964 480.746 641.135 494.768 610.913C509.029 580.176 513.319 546.489 515.409 512.662C517.661 476.204 533.33 430.544 507.506 404.743C478.633 375.898 418.094 413.358 388.202 385.574C351.71 351.655 381.025 271.274 337.623 246.84C301.515 226.512 261.629 275.899 223.93 293.093C190.99 308.116 148.201 311.737 128.566 342.184C108.238 373.708 139.205 420.399 120.768 453.067C98.734 492.111 19.4772 492.679 18.3354 537.509C17.2435 580.378 93.1287 582.016 116.569 617.905C137.387 649.777 113.963 702.557 142.545 727.682C170.246 752.032 214.559 735.054 251.396 736.421C284.05 737.632 316.583 743.612 348.19 735.311Z"
stroke="url(#paint14_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M337.983 740.723C369.329 733.321 397.761 717.29 422.84 697.059C448.186 676.613 469.87 651.887 484.315 622.682C499.005 592.98 504.019 560.152 506.886 527.132C509.976 491.544 526.407 447.286 501.788 421.432C474.263 392.526 414.165 427.672 385.617 399.778C350.767 365.727 381.384 287.858 339.547 262.911C304.741 242.156 264.545 289.466 227.269 305.355C194.699 319.238 152.778 321.734 132.841 351.021C112.199 381.344 141.337 427.747 122.517 459.236C100.025 496.869 22.5253 495.49 20.3173 539.29C18.2059 581.174 92.3552 584.627 114.398 620.287C133.974 651.955 109.788 702.983 137.12 728.244C163.609 752.726 207.345 737.209 243.325 739.445C275.22 741.426 306.88 748.066 337.983 740.723Z"
stroke="url(#paint15_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M328.162 746.312C358.972 739.845 387.145 724.873 412.143 705.717C437.408 686.356 459.198 662.724 474.024 634.539C489.102 605.874 494.801 573.918 498.406 541.722C502.291 507.022 519.424 464.177 495.997 438.313C469.804 409.396 410.224 442.272 383.007 414.32C349.782 380.196 381.595 304.853 341.321 279.455C307.815 258.325 267.385 303.573 230.575 318.19C198.411 330.961 157.387 332.377 137.193 360.509C116.284 389.636 143.627 435.689 124.47 466C101.576 502.224 25.8806 498.986 22.6569 541.731C19.5742 582.607 91.9454 587.791 112.617 623.173C130.974 654.595 106.099 703.868 132.192 729.218C157.48 753.787 200.594 739.692 235.698 742.754C266.816 745.468 297.591 752.729 328.162 746.312Z"
stroke="url(#paint16_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M318.721 752.09C348.968 746.525 376.846 732.59 401.727 714.491C426.873 696.199 448.728 673.65 463.893 646.485C479.316 618.857 485.659 587.787 489.963 556.431C494.602 522.637 512.377 481.211 490.126 455.38C465.249 426.5 406.261 457.155 380.36 429.192C348.742 395.056 381.644 322.249 342.929 296.462C310.72 275.009 270.134 318.214 233.828 331.592C202.105 343.28 162.006 343.663 141.599 370.645C120.47 398.581 146.053 444.225 126.607 473.36C103.366 508.18 29.5188 503.171 25.3305 544.84C21.3255 584.685 91.8796 591.512 111.207 626.572C128.371 657.707 102.879 705.222 127.745 730.617C151.844 755.228 194.294 742.514 228.504 746.36C258.828 749.77 288.708 757.611 318.721 752.09Z"
stroke="url(#paint17_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M309.647 758.072C339.307 753.377 366.857 740.455 391.583 723.395C416.572 706.153 438.454 684.676 453.916 658.53C469.642 631.939 476.589 601.766 481.553 571.265C486.902 538.393 505.259 498.39 484.169 472.634C460.589 443.838 402.266 472.323 377.664 444.398C347.631 410.307 381.517 340.043 344.355 313.929C313.438 292.204 272.772 333.387 237.009 345.56C205.76 356.196 166.61 355.592 146.035 381.431C124.732 408.185 148.594 453.361 128.904 481.325C105.373 514.746 33.4125 508.058 28.3113 548.627C23.4333 587.422 92.1343 595.806 110.147 630.498C126.144 661.308 100.106 707.065 123.76 732.458C146.685 757.068 188.429 745.693 221.727 750.281C251.243 754.348 280.218 762.73 309.647 758.072Z"
stroke="url(#paint18_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M300.934 764.268C329.982 760.411 357.172 748.476 381.707 732.436C406.503 716.225 428.371 695.806 444.09 670.678C460.077 645.12 467.587 615.855 473.171 586.222C479.188 554.284 498.068 515.708 478.119 490.069C455.816 461.404 398.229 487.771 374.908 459.93C346.439 425.942 381.202 358.224 345.585 331.844C315.952 309.898 275.281 349.082 240.098 360.086C209.355 369.701 171.178 368.158 150.479 392.864C129.048 418.443 151.228 463.095 131.341 489.895C107.573 521.924 37.5369 513.647 31.5748 553.099C25.8735 590.825 92.689 600.677 109.418 634.959C124.275 665.403 97.7619 709.406 120.22 734.754C141.986 759.32 182.984 749.239 215.355 754.526C244.051 759.213 272.112 768.096 300.934 764.268Z"
stroke="url(#paint19_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M292.572 770.69C320.985 767.637 347.783 756.663 372.092 741.622C396.66 726.421 418.475 707.047 434.41 682.932C450.617 658.405 458.65 630.056 464.812 601.302C471.455 570.312 490.797 533.162 471.972 507.681C450.924 479.192 394.141 503.496 372.081 475.785C345.151 441.958 380.688 376.784 346.604 350.199C318.247 328.081 277.645 365.293 243.077 375.164C212.872 383.789 175.69 381.356 154.91 404.938C133.395 429.354 153.934 473.426 133.895 499.07C109.945 529.717 41.8667 519.943 35.096 558.261C28.6215 594.902 93.5221 606.133 108.999 639.962C122.744 670.005 95.8274 712.259 117.107 737.517C137.73 761.997 177.945 753.167 209.376 759.109C237.238 764.377 264.379 773.72 292.572 770.69Z"
stroke="url(#paint20_linear_1101_41937)"
strokeWidth="2"
/>
<path
d="M284.551 777.348C312.307 775.064 338.683 765.024 362.732 750.962C387.037 736.749 408.762 718.404 424.873 695.296C441.258 671.794 449.772 644.369 456.474 616.505C463.698 586.473 483.445 550.749 465.722 525.465C445.907 497.196 389.993 519.494 369.173 491.959C343.756 458.346 379.961 395.712 347.398 368.982C320.308 346.743 279.846 382.011 245.927 390.787C216.289 398.456 180.122 395.181 159.304 417.651C137.75 440.916 156.691 484.354 136.545 508.851C112.467 538.128 46.3761 526.949 38.8495 564.117C31.6523 599.659 94.6118 612.18 108.87 645.515C121.532 675.12 94.2822 715.633 114.402 740.76C133.9 765.112 173.296 757.487 203.775 764.041C230.792 769.851 257.009 779.614 284.551 777.348Z"
stroke="url(#paint21_linear_1101_41937)"
strokeWidth="2"
/>
</g>
<defs>
<linearGradient
id="paint0_linear_1101_41937"
x1="262.811"
y1="4.81882"
x2="536.921"
y2="895.002"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint1_linear_1101_41937"
x1="349.054"
y1="330.501"
x2="215.74"
y2="911.701"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint2_linear_1101_41937"
x1="267.878"
y1="14.5494"
x2="515.376"
y2="895.944"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint3_linear_1101_41937"
x1="272.971"
y1="24.8943"
x2="494.47"
y2="896.736"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint4_linear_1101_41937"
x1="278.072"
y1="35.8513"
x2="474.202"
y2="897.399"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint5_linear_1101_41937"
x1="283.158"
y1="47.416"
x2="454.574"
y2="897.955"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint6_linear_1101_41937"
x1="288.21"
y1="59.5842"
x2="435.584"
y2="898.426"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint7_linear_1101_41937"
x1="293.21"
y1="72.3493"
x2="417.234"
y2="898.832"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint8_linear_1101_41937"
x1="298.133"
y1="85.7074"
x2="399.517"
y2="899.196"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint9_linear_1101_41937"
x1="302.966"
y1="99.6546"
x2="382.437"
y2="899.542"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint10_linear_1101_41937"
x1="307.684"
y1="114.18"
x2="365.984"
y2="899.888"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint11_linear_1101_41937"
x1="312.275"
y1="129.279"
x2="350.162"
y2="900.258"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint12_linear_1101_41937"
x1="316.713"
y1="144.942"
x2="334.959"
y2="900.672"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint13_linear_1101_41937"
x1="320.985"
y1="161.162"
x2="320.375"
y2="901.15"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint14_linear_1101_41937"
x1="325.071"
y1="177.929"
x2="306.403"
y2="901.714"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint15_linear_1101_41937"
x1="328.954"
y1="195.233"
x2="293.036"
y2="902.384"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint16_linear_1101_41937"
x1="332.617"
y1="213.066"
x2="280.267"
y2="903.18"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint17_linear_1101_41937"
x1="336.043"
y1="231.412"
x2="268.089"
y2="904.12"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint18_linear_1101_41937"
x1="339.215"
y1="250.267"
x2="256.493"
y2="905.229"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint19_linear_1101_41937"
x1="342.118"
y1="269.615"
x2="245.47"
y2="906.522"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint20_linear_1101_41937"
x1="344.735"
y1="289.446"
x2="235.01"
y2="908.02"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint21_linear_1101_41937"
x1="347.052"
y1="309.745"
x2="225.104"
y2="909.741"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.598958" stopColor="#798FFF" />
</linearGradient>
</defs>
</svg>
);
}
export default Blending1;
@@ -0,0 +1,798 @@
function BlendingFeatures() {
return (
<svg
width="651"
height="572"
viewBox="0 0 651 572"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g opacity="0.3">
<path
d="M309.013 284.476L308.94 284.971L309.189 285.007L309.367 284.83C368.186 226.011 417.96 169.286 453.029 127.266C470.564 106.256 484.424 88.9217 493.9 76.8392C498.637 70.7979 502.28 66.0695 504.738 62.8512C505.967 61.242 506.9 60.0103 507.525 59.1807C507.773 58.8523 507.973 58.5868 508.124 58.386C624.899 175.602 624.576 365.478 507.296 482.759C389.879 600.175 199.698 600.362 82.5146 483.179C48.4668 449.131 26.5007 420.513 14.1066 396.504C1.71249 372.495 -1.08691 353.141 3.1152 337.586C7.31562 322.037 18.5404 310.18 34.4194 301.22C50.303 292.258 70.806 286.217 93.473 282.298C138.805 274.459 192.665 275.124 235.212 277.753C256.481 279.067 274.915 280.872 288.032 282.348C294.59 283.086 299.818 283.742 303.406 284.213C305.2 284.449 306.584 284.638 307.52 284.769C307.987 284.834 308.343 284.885 308.581 284.919L308.85 284.958L308.918 284.967L308.935 284.97C308.938 284.971 308.94 284.971 309.013 284.476Z"
stroke="url(#paint0_linear_1214_8274)"
/>
<path
d="M256.137 190.952L255.646 190.857L255.599 191.104L255.768 191.29C290.163 228.924 323.525 260.962 348.289 283.591C360.671 294.905 370.904 303.868 378.042 310.003C381.611 313.07 384.406 315.43 386.309 317.024C387.261 317.821 387.99 318.426 388.481 318.833C388.592 318.925 388.692 319.007 388.779 319.079C313.825 387.142 197.791 381.7 129.343 306.804C60.7652 231.766 65.9242 115.428 140.864 46.956C162.653 27.0471 180.773 14.3951 195.795 7.47527C210.818 0.555448 222.696 -0.611457 232.043 2.36803C241.384 5.34556 248.3 12.4971 253.332 22.4363C258.366 32.3803 261.492 45.0762 263.262 59.0526C266.802 87.0033 264.901 119.948 262.111 145.925C260.716 158.909 259.099 170.144 257.832 178.133C257.198 182.127 256.651 185.309 256.263 187.492C256.069 188.584 255.915 189.426 255.809 189.994C255.756 190.279 255.716 190.495 255.688 190.64L255.657 190.803L255.649 190.844L255.647 190.854C255.647 190.856 255.646 190.857 256.137 190.952Z"
stroke="url(#paint1_linear_1214_8274)"
/>
<path
d="M519.879 60.1942C519.879 60.1942 435.97 165.692 315.996 278.286C315.996 278.286 -176.365 189.042 85.4132 467.934C198.161 588.052 386.82 594.152 506.794 481.558C626.768 368.964 632.627 180.313 519.879 60.1942Z"
stroke="url(#paint2_linear_1214_8274)"
/>
<path
d="M531.972 62.248C531.972 62.248 445.424 164.247 322.88 272.15C322.88 272.15 -162.694 168.158 88.2001 453.001C196.26 575.683 383.202 587.664 505.746 479.76C628.29 371.856 640.032 184.93 531.972 62.248Z"
stroke="url(#paint3_linear_1214_8274)"
/>
<path
d="M543.515 64.7967C543.515 64.7967 454.466 163.236 329.528 266.401C329.528 266.401 -148.824 148 91.0737 438.388C194.398 563.458 379.441 581.215 504.379 478.051C629.317 374.887 646.839 189.866 543.515 64.7967Z"
stroke="url(#paint4_linear_1214_8274)"
/>
<path
d="M554.497 67.8173C554.497 67.8173 463.085 162.643 335.928 261.025C335.928 261.025 -134.778 128.571 94.024 424.093C192.569 551.375 375.536 574.802 502.692 476.419C629.849 378.036 653.042 195.099 554.497 67.8173Z"
stroke="url(#paint5_linear_1214_8274)"
/>
<path
d="M564.908 71.286C564.908 71.286 471.27 162.447 342.073 256.013C342.073 256.013 -120.582 109.869 97.0416 410.117C190.772 539.434 371.491 568.416 500.689 474.85C629.886 381.285 658.639 200.603 564.908 71.286Z"
stroke="url(#paint6_linear_1214_8274)"
/>
<path
d="M574.732 75.1821C574.732 75.1821 479.008 162.634 347.945 251.353C347.945 251.353 -106.265 91.8979 100.111 396.461C188.997 527.637 367.3 562.055 498.363 473.336C629.426 384.617 663.618 206.358 574.732 75.1821Z"
stroke="url(#paint7_linear_1214_8274)"
/>
<path
d="M583.959 79.48C583.959 79.48 486.29 163.183 353.538 247.032C353.538 247.032 -91.8523 74.6536 103.221 383.124C187.239 515.982 362.966 555.712 495.718 471.863C628.47 388.014 667.977 212.338 583.959 79.48Z"
stroke="url(#paint8_linear_1214_8274)"
/>
<path
d="M592.583 84.1571C592.583 84.1571 493.109 164.077 358.844 243.04C358.844 243.04 -77.3659 58.1358 106.366 370.104C185.499 504.469 358.492 549.382 492.758 470.42C627.023 391.458 671.717 218.522 592.583 84.1571Z"
stroke="url(#paint9_linear_1214_8274)"
/>
<path
d="M600.591 89.1913C600.591 89.1913 499.453 165.299 363.849 239.364C363.849 239.364 -62.8366 42.343 109.528 357.403C183.765 493.1 353.875 543.062 489.478 468.997C625.081 394.933 674.829 224.888 600.591 89.1913Z"
stroke="url(#paint10_linear_1214_8274)"
/>
<path
d="M607.977 94.5574C607.977 94.5574 505.315 166.828 368.547 235.991C368.547 235.991 -48.2874 27.2706 112.699 345.018C182.036 481.872 349.116 536.746 485.883 467.583C622.651 398.42 677.314 231.411 607.977 94.5574Z"
stroke="url(#paint11_linear_1214_8274)"
/>
<path
d="M614.732 100.232C614.732 100.232 510.687 168.647 372.929 232.909C372.929 232.909 -33.7442 12.914 115.867 332.946C180.305 470.784 344.217 530.429 481.974 466.166C619.732 401.904 679.17 238.069 614.732 100.232Z"
stroke="url(#paint12_linear_1214_8274)"
/>
<path
d="M620.854 106.189C620.854 106.189 515.566 170.733 376.989 230.103C376.989 230.103 -19.2294 -0.733083 119.024 321.185C178.57 459.835 339.18 524.104 477.756 464.734C616.333 405.365 680.4 244.838 620.854 106.189Z"
stroke="url(#paint13_linear_1214_8274)"
/>
<path
d="M626.332 112.407C626.332 112.407 519.941 173.072 380.716 227.563C380.716 227.563 -4.77159 -13.6735 122.155 309.734C176.823 449.025 334.003 517.77 473.228 463.28C612.452 408.79 680.999 251.699 626.332 112.407Z"
stroke="url(#paint14_linear_1214_8274)"
/>
<path
d="M631.166 118.858C631.166 118.858 523.811 175.64 384.107 225.27C384.107 225.27 9.60863 -25.9195 125.253 298.586C175.061 438.35 328.691 511.418 468.395 461.788C608.099 412.157 680.974 258.623 631.166 118.858Z"
stroke="url(#paint15_linear_1214_8274)"
/>
<path
d="M635.347 125.522C635.347 125.522 527.166 178.42 387.15 223.216C387.15 223.216 23.8828 -37.4746 128.303 287.741C173.277 427.811 323.241 505.046 463.257 460.251C603.273 415.455 680.32 265.592 635.347 125.522Z"
stroke="url(#paint16_linear_1214_8274)"
/>
<path
d="M638.876 132.373C638.876 132.373 530.007 181.394 389.843 221.385C389.843 221.385 38.0315 -48.3477 131.298 277.195C171.468 417.407 317.658 498.651 457.821 458.659C597.985 418.668 679.046 272.584 638.876 132.373Z"
stroke="url(#paint17_linear_1214_8274)"
/>
<path
d="M641.752 139.387C641.752 139.387 532.331 184.54 392.182 219.764C392.182 219.764 52.0311 -58.5492 134.229 266.944C169.631 407.134 311.943 492.226 452.092 457.002C592.241 421.778 677.154 279.577 641.752 139.387Z"
stroke="url(#paint18_linear_1214_8274)"
/>
<path
d="M643.974 146.538C643.974 146.538 534.135 187.839 394.162 218.337C394.162 218.337 65.8605 -68.09 137.085 256.982C167.761 396.99 306.101 485.766 446.074 455.267C586.047 424.769 674.65 286.546 643.974 146.538Z"
stroke="url(#paint19_linear_1214_8274)"
/>
<path
d="M645.539 153.805C645.539 153.805 535.416 191.273 395.775 217.092C395.775 217.092 79.4942 -76.979 139.855 247.306C165.852 386.975 300.128 479.268 439.769 453.449C579.41 427.63 671.536 293.474 645.539 153.805Z"
stroke="url(#paint20_linear_1214_8274)"
/>
<path
d="M646.449 161.163C646.449 161.163 536.173 194.821 397.02 216.014C397.02 216.014 92.9125 -85.2292 142.53 237.909C163.901 377.085 294.031 472.729 433.184 451.536C572.337 430.343 667.819 300.338 646.449 161.163Z"
stroke="url(#paint21_linear_1214_8274)"
/>
<path
d="M646.708 168.586C646.708 168.586 536.409 198.464 397.895 215.088C397.895 215.088 106.096 -92.8534 145.104 228.787C161.905 367.317 287.812 466.142 426.326 449.518C564.84 432.894 663.509 307.116 646.708 168.586Z"
stroke="url(#paint22_linear_1214_8274)"
/>
<path
d="M646.314 176.055C646.314 176.055 536.121 202.186 398.394 214.303C398.394 214.303 119.022 -99.8619 147.564 219.935C159.857 357.672 281.471 459.506 419.198 447.389C556.924 435.272 658.607 313.791 646.314 176.055Z"
stroke="url(#paint23_linear_1214_8274)"
/>
<path
d="M645.274 183.543C645.274 183.543 535.311 205.963 398.518 213.641C398.518 213.641 131.671 -106.272 149.902 211.345C157.754 348.143 275.013 452.815 411.806 445.138C548.599 437.46 653.126 320.34 645.274 183.543Z"
stroke="url(#paint24_linear_1214_8274)"
/>
<path
d="M643.59 191.024C643.59 191.024 533.981 209.776 398.263 213.086C398.263 213.086 144.024 -112.098 152.111 203.009C155.594 338.726 268.439 446.063 404.158 442.754C539.876 439.444 647.074 326.741 643.59 191.024Z"
stroke="url(#paint25_linear_1214_8274)"
/>
<path
d="M641.268 198.483C641.268 198.483 532.134 213.612 397.629 212.63C397.629 212.63 156.063 -117.351 154.182 194.926C153.372 329.424 261.753 439.252 396.258 440.235C530.763 441.217 640.458 332.981 641.268 198.483Z"
stroke="url(#paint26_linear_1214_8274)"
/>
<path
d="M638.313 205.894C638.313 205.894 529.773 217.448 396.616 212.255C396.616 212.255 167.77 -122.048 156.108 187.087C151.085 320.231 254.959 432.376 388.116 437.57C521.273 442.763 633.29 339.039 638.313 205.894Z"
stroke="url(#paint27_linear_1214_8274)"
/>
<path
d="M634.732 213.236C634.732 213.236 526.902 221.269 395.223 211.949C395.223 211.949 179.128 -126.205 157.881 179.485C148.73 311.145 248.058 425.432 379.737 434.753C511.416 444.073 625.581 344.896 634.732 213.236Z"
stroke="url(#paint28_linear_1214_8274)"
/>
<path
d="M630.534 220.483C630.534 220.483 523.526 225.052 393.452 211.694C393.452 211.694 190.121 -129.841 159.495 172.11C146.304 302.16 241.056 418.415 371.13 431.773C501.204 445.131 617.343 350.533 630.534 220.483Z"
stroke="url(#paint29_linear_1214_8274)"
/>
<path
d="M625.722 227.618C625.722 227.618 519.648 228.784 391.302 211.48C391.302 211.48 200.731 -132.97 160.94 164.957C143.802 293.274 233.954 411.323 362.3 428.626C490.646 445.93 608.584 355.935 625.722 227.618Z"
stroke="url(#paint30_linear_1214_8274)"
/>
<path
d="M620.309 234.619C620.309 234.619 515.275 232.445 388.774 211.292C388.774 211.292 210.944 -135.611 162.211 158.019C141.221 284.485 226.755 404.153 353.255 425.306C479.755 446.458 599.319 361.085 620.309 234.619Z"
stroke="url(#paint31_linear_1214_8274)"
/>
<path
d="M614.302 241.464C614.302 241.464 510.413 236.018 385.872 211.116C385.872 211.116 220.745 -137.781 163.301 151.286C138.56 275.788 219.464 396.903 344.004 421.805C468.545 446.707 589.561 365.966 614.302 241.464Z"
stroke="url(#paint32_linear_1214_8274)"
/>
<path
d="M607.715 248.134C607.715 248.134 505.071 239.486 382.6 210.938C382.6 210.938 230.124 -139.501 164.208 144.751C135.818 267.178 212.086 389.568 334.557 418.116C457.028 446.665 579.325 370.561 607.715 248.134Z"
stroke="url(#paint33_linear_1214_8274)"
/>
<path
d="M600.553 254.609C600.553 254.609 499.252 242.833 378.955 210.745C378.955 210.745 239.061 -140.787 164.919 138.405C132.986 258.653 204.619 382.147 324.916 414.236C445.213 446.325 568.62 374.857 600.553 254.609Z"
stroke="url(#paint34_linear_1214_8274)"
/>
<path
d="M592.833 260.87C592.833 260.87 492.969 246.043 374.947 210.523C374.947 210.523 247.551 -141.661 165.436 132.24C130.069 250.209 197.075 374.637 315.097 410.157C433.12 445.677 557.466 378.839 592.833 260.87Z"
stroke="url(#paint35_linear_1214_8274)"
/>
<path
d="M584.562 266.902C584.562 266.902 486.227 249.102 370.575 210.263C370.575 210.263 255.577 -142.137 165.749 126.251C127.06 241.845 189.451 367.038 305.103 405.878C420.755 444.718 545.873 382.496 584.562 266.902Z"
stroke="url(#paint36_linear_1214_8274)"
/>
<path
d="M575.756 272.682C575.756 272.682 479.036 251.993 365.845 209.948C365.845 209.948 263.132 -142.239 165.855 120.425C123.959 233.554 181.754 359.347 294.945 401.391C408.136 443.436 533.859 385.811 575.756 272.682Z"
stroke="url(#paint37_linear_1214_8274)"
/>
<path
d="M566.427 278.195C566.427 278.195 471.406 254.7 360.762 209.567C360.762 209.567 270.204 -141.986 165.75 114.754C120.762 225.332 173.987 351.56 284.631 396.693C395.274 441.827 521.439 388.773 566.427 278.195Z"
stroke="url(#paint38_linear_1214_8274)"
/>
<path
d="M556.591 283.423C556.591 283.423 463.349 257.209 355.333 209.107C355.333 209.107 276.787 -141.4 165.432 109.229C117.471 217.174 166.156 343.676 274.171 391.779C382.187 439.882 508.631 391.369 556.591 283.423Z"
stroke="url(#paint39_linear_1214_8274)"
/>
<path
d="M546.259 288.352C546.259 288.352 454.871 259.508 349.56 208.557C349.56 208.557 282.869 -140.499 164.893 103.842C114.081 209.08 158.261 335.696 263.573 386.647C368.884 437.598 495.447 393.59 546.259 288.352Z"
stroke="url(#paint40_linear_1214_8274)"
/>
<path
d="M535.447 292.965C535.447 292.965 445.986 261.583 343.45 207.906C343.45 207.906 288.443 -139.304 164.132 98.5846C110.591 201.043 150.309 327.616 252.845 381.293C355.381 434.97 481.906 395.424 535.447 292.965Z"
stroke="url(#paint41_linear_1214_8274)"
/>
<path
d="M524.171 297.244C524.171 297.244 436.705 263.416 337.011 207.138C337.011 207.138 293.505 -137.841 163.146 93.4429C107 193.057 142.303 319.432 241.998 375.71C341.692 431.988 468.026 396.858 524.171 297.244Z"
stroke="url(#paint42_linear_1214_8274)"
/>
<path
d="M512.447 301.181C512.447 301.181 427.04 265.002 330.248 206.248C330.248 206.248 298.047 -136.123 161.932 88.4142C103.308 185.122 134.248 311.149 231.04 369.903C327.832 428.657 453.822 397.889 512.447 301.181Z"
stroke="url(#paint43_linear_1214_8274)"
/>
<path
d="M500.291 304.758C500.291 304.758 417.005 266.324 323.171 205.221C323.171 205.221 302.067 -134.175 160.491 83.4855C99.5139 177.232 126.149 302.762 219.983 363.865C313.816 424.967 439.315 398.504 500.291 304.758Z"
stroke="url(#paint44_linear_1214_8274)"
/>
<path
d="M487.719 307.964C487.719 307.964 406.608 267.373 315.784 204.05C315.784 204.05 305.556 -132.018 158.816 78.6496C95.6146 169.384 118.007 294.272 208.831 357.596C299.656 420.919 424.518 398.698 487.719 307.964Z"
stroke="url(#paint45_linear_1214_8274)"
/>
<path
d="M474.747 310.786C474.747 310.786 395.865 268.137 308.096 202.722C308.096 202.722 308.513 -129.672 156.908 73.8961C91.611 161.573 109.829 285.678 197.598 351.093C285.367 416.509 409.451 398.463 474.747 310.786Z"
stroke="url(#paint46_linear_1214_8274)"
/>
<path
d="M461.394 313.213C461.394 313.213 384.789 268.606 300.116 201.228C300.116 201.228 310.936 -127.159 154.765 69.2157C87.5025 153.794 101.617 276.979 186.29 344.357C270.963 411.735 394.132 397.791 461.394 313.213Z"
stroke="url(#paint47_linear_1214_8274)"
/>
<path
d="M447.68 315.232C447.68 315.232 373.395 268.769 291.853 199.558C291.853 199.558 312.824 -124.501 152.39 64.5984C83.2906 146.043 93.3778 268.174 174.92 337.384C256.462 406.595 378.581 396.677 447.68 315.232Z"
stroke="url(#paint48_linear_1214_8274)"
/>
<path
d="M433.618 316.837C433.618 316.837 361.695 268.618 283.314 197.705C283.314 197.705 314.173 -121.717 149.777 60.0368C78.9719 138.318 85.113 259.264 163.494 330.177C241.874 401.091 362.813 395.118 433.618 316.837Z"
stroke="url(#paint49_linear_1214_8274)"
/>
<path
d="M419.227 318.014C419.227 318.014 349.701 268.144 274.507 195.658C274.507 195.658 314.983 -118.83 146.927 55.5198C74.5461 130.612 76.8258 250.248 152.019 322.733C227.213 395.219 346.846 393.106 419.227 318.014Z"
stroke="url(#paint50_linear_1214_8274)"
/>
<path
d="M404.53 318.757C404.53 318.757 337.433 267.338 265.446 193.409C265.446 193.409 315.258 -115.86 143.845 51.0392C70.0174 122.922 68.5248 241.126 140.511 315.054C212.497 388.983 330.703 390.641 404.53 318.757Z"
stroke="url(#paint51_linear_1214_8274)"
/>
</g>
<defs>
<linearGradient
id="paint0_linear_1214_8274"
x1="720.949"
y1="287.443"
x2="-70.9137"
y2="196.129"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint1_linear_1214_8274"
x1="242.887"
y1="443.116"
x2="320.504"
y2="-39.3162"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint2_linear_1214_8274"
x1="723.854"
y1="294.817"
x2="-57.9812"
y2="180.717"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint3_linear_1214_8274"
x1="726.922"
y1="301.367"
x2="-45.0023"
y2="163.601"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint4_linear_1214_8274"
x1="729.361"
y1="308.077"
x2="-31.9417"
y2="147.156"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint5_linear_1214_8274"
x1="731.172"
y1="314.924"
x2="-18.8216"
y2="131.379"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint6_linear_1214_8274"
x1="732.357"
y1="321.884"
x2="-5.66297"
y2="116.268"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint7_linear_1214_8274"
x1="732.911"
y1="328.936"
x2="7.50686"
y2="101.822"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint8_linear_1214_8274"
x1="732.836"
y1="336.056"
x2="20.6656"
y2="88.0335"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint9_linear_1214_8274"
x1="732.14"
y1="343.223"
x2="33.7954"
y2="74.8993"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint10_linear_1214_8274"
x1="730.819"
y1="350.416"
x2="46.8681"
y2="62.4158"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint11_linear_1214_8274"
x1="728.88"
y1="357.611"
x2="59.8645"
y2="50.575"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint12_linear_1214_8274"
x1="726.325"
y1="364.788"
x2="72.7616"
y2="39.3705"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint13_linear_1214_8274"
x1="723.163"
y1="371.924"
x2="85.5404"
y2="28.7934"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint14_linear_1214_8274"
x1="719.395"
y1="379.001"
x2="98.1762"
y2="18.8384"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint15_linear_1214_8274"
x1="715.031"
y1="385.994"
x2="110.652"
y2="9.49125"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint16_linear_1214_8274"
x1="710.073"
y1="392.886"
x2="122.942"
y2="0.746413"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint17_linear_1214_8274"
x1="704.533"
y1="399.657"
x2="135.031"
y2="-7.40669"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint18_linear_1214_8274"
x1="698.419"
y1="406.287"
x2="146.898"
y2="-14.9805"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint19_linear_1214_8274"
x1="691.742"
y1="412.756"
x2="158.527"
y2="-21.9873"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint20_linear_1214_8274"
x1="684.507"
y1="419.047"
x2="169.896"
y2="-28.4375"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint21_linear_1214_8274"
x1="676.727"
y1="425.14"
x2="180.987"
y2="-34.3455"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint22_linear_1214_8274"
x1="668.415"
y1="431.018"
x2="191.787"
y2="-39.7256"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint23_linear_1214_8274"
x1="659.578"
y1="436.665"
x2="202.274"
y2="-44.5888"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint24_linear_1214_8274"
x1="650.23"
y1="442.062"
x2="212.435"
y2="-48.9532"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint25_linear_1214_8274"
x1="640.385"
y1="447.192"
x2="222.254"
y2="-52.8353"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint26_linear_1214_8274"
x1="630.054"
y1="452.043"
x2="231.715"
y2="-56.2453"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint27_linear_1214_8274"
x1="619.252"
y1="456.598"
x2="240.805"
y2="-59.2022"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint28_linear_1214_8274"
x1="607.992"
y1="460.844"
x2="249.511"
y2="-61.7215"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint29_linear_1214_8274"
x1="596.292"
y1="464.764"
x2="257.82"
y2="-63.8234"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint30_linear_1214_8274"
x1="584.161"
y1="468.347"
x2="265.718"
y2="-65.5219"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint31_linear_1214_8274"
x1="571.618"
y1="471.58"
x2="273.194"
y2="-66.836"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint32_linear_1214_8274"
x1="558.678"
y1="474.45"
x2="280.238"
y2="-67.7838"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint33_linear_1214_8274"
x1="545.359"
y1="476.946"
x2="286.842"
y2="-68.3846"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint34_linear_1214_8274"
x1="531.672"
y1="479.057"
x2="292.991"
y2="-68.6561"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint35_linear_1214_8274"
x1="517.64"
y1="480.773"
x2="298.684"
y2="-68.6179"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint36_linear_1214_8274"
x1="503.276"
y1="482.087"
x2="303.907"
y2="-68.2855"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint37_linear_1214_8274"
x1="488.597"
y1="482.988"
x2="308.656"
y2="-67.6819"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint38_linear_1214_8274"
x1="473.623"
y1="483.468"
x2="312.923"
y2="-66.8259"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint39_linear_1214_8274"
x1="458.371"
y1="483.519"
x2="316.706"
y2="-65.7377"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint40_linear_1214_8274"
x1="442.856"
y1="483.135"
x2="319.996"
y2="-64.4352"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint41_linear_1214_8274"
x1="427.098"
y1="482.312"
x2="322.791"
y2="-62.938"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint42_linear_1214_8274"
x1="411.115"
y1="481.039"
x2="325.088"
y2="-61.2707"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint43_linear_1214_8274"
x1="394.924"
y1="479.318"
x2="326.884"
y2="-59.4464"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint44_linear_1214_8274"
x1="378.546"
y1="477.14"
x2="328.18"
y2="-57.4886"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint45_linear_1214_8274"
x1="361.996"
y1="474.506"
x2="328.971"
y2="-55.415"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint46_linear_1214_8274"
x1="345.293"
y1="471.412"
x2="329.258"
y2="-53.2463"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint47_linear_1214_8274"
x1="328.456"
y1="467.855"
x2="329.043"
y2="-51.0019"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint48_linear_1214_8274"
x1="311.504"
y1="463.833"
x2="328.329"
y2="-48.702"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint49_linear_1214_8274"
x1="294.452"
y1="459.349"
x2="327.114"
y2="-46.3638"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint50_linear_1214_8274"
x1="277.319"
y1="454.4"
x2="325.401"
y2="-44.0084"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
<linearGradient
id="paint51_linear_1214_8274"
x1="260.126"
y1="448.988"
x2="323.197"
y2="-41.6535"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#D375FF" />
<stop offset="0.708333" stopColor="#798FFF" />
</linearGradient>
</defs>
</svg>
);
}
export default BlendingFeatures;
+20
View File
@@ -0,0 +1,20 @@
function ArrowIcon() {
return (
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M5 12C5 12.5523 5.44771 13 6 13L15.4817 13L10.9504 17.2724C10.5485 17.6513 10.5299 18.2842 10.9088 18.686C11.2876 19.0879 11.9205 19.1065 12.3224 18.7276L18.686 12.7276C18.8864 12.5387 19 12.2754 19 12C19 11.7246 18.8864 11.4614 18.686 11.2724L12.3224 5.27241C11.9205 4.89354 11.2876 4.91215 10.9088 5.31399C10.5299 5.71583 10.5485 6.34872 10.9504 6.72759L15.4817 11L6 11C5.44772 11 5 11.4477 5 12Z"
fill="white"
/>
</svg>
);
}
export default ArrowIcon;
@@ -0,0 +1,20 @@
function ArrowRightIcon() {
return (
<svg
width="32"
height="32"
viewBox="0 0 32 32"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M6.66667 16.0003C6.66667 16.7367 7.26363 17.3337 8 17.3337L20.6423 17.3337L14.6005 23.0302C14.0647 23.5354 14.0399 24.3792 14.545 24.915C15.0502 25.4508 15.8941 25.4756 16.4298 24.9704L24.9147 16.9705C25.1819 16.7185 25.3333 16.3676 25.3333 16.0003C25.3333 15.6331 25.1819 15.2821 24.9147 15.0302L16.4298 7.03021C15.8941 6.52504 15.0502 6.54986 14.545 7.08565C14.0399 7.62143 14.0647 8.46528 14.6005 8.97045L20.6423 14.667L8 14.667C7.26363 14.667 6.66667 15.264 6.66667 16.0003Z"
fill="white"
/>
</svg>
);
}
export default ArrowRightIcon;
+20
View File
@@ -0,0 +1,20 @@
function CheckIcon() {
return (
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M19.7474 7.33565C20.1143 7.74843 20.0771 8.3805 19.6644 8.74742L10.6644 16.7474C10.2686 17.0992 9.66729 17.0815 9.29289 16.7071L4.29289 11.7071C3.90237 11.3166 3.90237 10.6834 4.29289 10.2929C4.68342 9.90238 5.31658 9.90238 5.70711 10.2929L10.0404 14.6262L18.3356 7.2526C18.7484 6.88568 19.3805 6.92286 19.7474 7.33565Z"
fill="white"
/>
</svg>
);
}
export default CheckIcon;
@@ -0,0 +1,22 @@
function ChevronDown() {
return (
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g opacity="0.8">
<path
fillRule="evenodd"
clipRule="evenodd"
d="M11.2929 16.7071C11.6834 17.0976 12.3166 17.0976 12.7071 16.7071L19.7071 9.70713C20.0976 9.31661 20.0976 8.68344 19.7071 8.29292C19.3165 7.90239 18.6834 7.90239 18.2928 8.29292L12 14.5858L5.70711 8.29292C5.31658 7.90239 4.68342 7.90239 4.29289 8.29292C3.90237 8.68344 3.90237 9.31661 4.29289 9.70713L11.2929 16.7071Z"
fill="white"
/>
</g>
</svg>
);
}
export default ChevronDown;
File diff suppressed because one or more lines are too long
+21
View File
@@ -0,0 +1,21 @@
function PlusIcon() {
return (
<svg
width="25"
height="24"
viewBox="0 0 25 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M12.6668 11.9998H18.6668M12.6668 11.9998L12.6668 6M12.6668 11.9998L12.6669 18M12.6668 11.9998H6.66675"
stroke="white"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
</svg>
);
}
export default PlusIcon;
+58
View File
@@ -0,0 +1,58 @@
@import url("https://fonts.googleapis.com/css2?family=Inter&display=swap");
@import url("https://gistcdn.githack.com/mfd/09b70eb47474836f25a21660282ce0fd/raw/e06a670afcb2b861ed2ac4a1ef752d062ef6b46b/Gilroy.css");
@tailwind base;
@tailwind components;
@tailwind utilities;
body {
font-family: "Inter", sans-serif;
background-color: #14161f;
}
.font-gilroy {
font-family: "Gilroy", sans-serif;
}
.text-gradient {
background: linear-gradient(87deg, #798fff 15%, #d375ff 100%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.bg-gradient {
background: linear-gradient(87deg, #798fff 15%, #d375ff 100%);
}
.border-gradient {
position: relative;
background: linear-gradient(87deg, #798fff 15%, #d375ff 100%);
}
.border-gradient::before {
content: "";
position: absolute;
top: 1px;
left: 1px;
width: calc(100% - 2px);
height: calc(100% - 2px);
background: #14161f;
border-radius: 9999px;
}
/* Scrollbar */
*::-webkit-scrollbar {
width: 4px;
}
*::-webkit-scrollbar-thumb {
background-color: #798fff;
/* border: 3.5px solid transparent; */
border-radius: 4px;
}
*::-webkit-scrollbar-thumb:hover {
border-width: 2px;
}
+15
View File
@@ -0,0 +1,15 @@
import ReactDOM from "react-dom/client";
import { createBrowserRouter, RouterProvider } from "react-router-dom";
import App from "./App.tsx";
import "./index.css";
const router = createBrowserRouter([
{
path: "/",
element: <App />,
},
]);
ReactDOM.createRoot(document.getElementById("root")!).render(
<RouterProvider router={router} />
);
+10
View File
@@ -0,0 +1,10 @@
/// <reference types="vite/client" />
interface ImportMetaEnv {
readonly VITE_API_URL: string;
// more env variables...
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}
+12
View File
@@ -0,0 +1,12 @@
/** @type {import('tailwindcss').Config} */
export default {
content: [
"./index.html",
"./src/**/*.{js,ts,jsx,tsx}",
],
theme: {
extend: {},
},
plugins: [],
}
+25
View File
@@ -0,0 +1,25 @@
{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"module": "ESNext",
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx",
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
},
"include": ["src"],
"references": [{ "path": "./tsconfig.node.json" }]
}
+10
View File
@@ -0,0 +1,10 @@
{
"compilerOptions": {
"composite": true,
"skipLibCheck": true,
"module": "ESNext",
"moduleResolution": "bundler",
"allowSyntheticDefaultImports": true
},
"include": ["vite.config.ts"]
}
+7
View File
@@ -0,0 +1,7 @@
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react-swc'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
})
+1734
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
PORT=3000
+24
View File
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
+25
View File
@@ -0,0 +1,25 @@
{
"name": "server",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "nodemon --exec node --no-warnings=ExperimentalWarning --loader=ts-node/esm src/index.ts",
"build": "npx tsc",
"start": "node dist/index.js"
},
"dependencies": {
"cors": "^2.8.5",
"dotenv": "^16.3.1",
"express": "^4.18.2"
},
"devDependencies": {
"@types/cors": "^2.8.15",
"@types/express": "^4.17.20",
"@types/node": "^20.8.10",
"nodemon": "^3.0.1",
"ts-node": "^10.9.1",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.2.2"
}
}
+62
View File
@@ -0,0 +1,62 @@
const db = {
products: [
{
id: 1,
name: "Смартфон POCO C51 64 ГБ",
price: 6499,
image:
"https://c.dns-shop.ru/thumb/st1/fit/500/500/256e8ece17c46e683dbe0facd94c5e69/5c108f7da6e5886d4d32d723d0e24ad0151bd790d7941374c56d9d8e9718d9f6.jpg.webp",
colors: ["black", "blue", "green"],
popularity: 3,
desc: `Смартфон POCO C51 64 ГБ предлагает функции, необходимые для разговоров по мобильной связи, общения в социальных сетях и мультимедийных развлечений. Он выполнен в компактном пластиковом корпусе с обтекаемыми гранями и тыловой панелью голубого цвета. Экран IPS диагональю 6.52 дюйма обеспечивает интуитивное управление и реалистичное изображение.
Высокая производительность системы достигается благодаря 8-ядерному процессору MediaTek Helio G36 и 2 ГБ оперативной памяти. На тыловой панели установлена сдвоенная камера 8+0.3 Мп с автофокусом и светодиодной вспышкой для реалистичной съемки фотографий и видео. Фронтальная камера 5 Мп позволяет делать селфи и общаться по видеосвязи. Встроенный сканер отпечатков пальцев гарантирует простую и безопасную разблокировку устройства. За автономность смартфона POCO C51 отвечает аккумуляторная батарея емкостью 5000 мА*ч.`,
},
{
id: 2,
name: "Смартфон realme C30s 64 ГБ",
price: 6999,
image:
"https://c.dns-shop.ru/thumb/st1/fit/500/500/774bc3d792cbcab34769a178c61686f2/cb157601cb15ceac4756053ed94ff8a9b2598f461f86084ca57090724cd9214e.jpg.webp",
colors: ["black", "blue"],
popularity: 3,
desc: `Смартфон realme C30S имеет тонкий корпус черного цвета и вес 186 г, что облегчает эксплуатацию. Для разграничения звонков можно установить две SIM-карты. Модель оснащена мощным производительным 8-ядерным процессором, который обеспечивает бесперебойную и быструю работу. Широкий экран диагональю 6.5 дюймов обеспечивает комфортную игру и просмотр фильмов. IPS-дисплей поддерживает насыщенную и яркую цветопередачу.
Смартфон realme C30S имеет 64 ГБ памяти, чего достаточно для хранения необходимой информации. Батарея емкостью 5000 мА*ч позволяет долгое время играть или смотреть видео без подзарядки. Даже при остатке 5% можно включить режим энергосбережения, чтобы оставаться на связи. Для быстрой разблокировки экрана на боковой стороне корпуса есть сканер отпечатка пальцев.`,
},
{
id: 3,
name: "Смартфон Xiaomi Redmi A2+ 64 ГБ",
price: 7499,
image:
"https://c.dns-shop.ru/thumb/st1/fit/500/500/43aa8e3640bdc253df179db3eecd9cd3/b5926e67b994494fd67cdf8b75d9db0bad7bc5f4bc9839937ffc3daf7053abdc.jpg.webp",
colors: ["black", "blue", "green"],
popularity: 5,
desc: `Смартфон Xiaomi Redmi A2+ в голубом цвете корпуса поддерживает установку двух SIM-карт, чтобы вы могли разграничить личные и деловые звонки. Экран обладает диагональю 6.52” и разрешением 1600x720 для комфортного просмотра любого контента. Закаленное стекло способствует защите дисплея от мелких повреждений: потертостей и царапин. 8-ядерный процессор MediaTek Helio G36 вместе с 3 ГБ оперативной памяти обеспечивает достаточный уровень производительности для запуска мобильных приложений и работы в режиме многозадачности.
Смартфон Xiaomi Redmi A2+ имеет 64 ГБ встроенной памяти и предусматривает отдельный слот, в который можно установить карту памяти емкостью до 1 ТБ. Тыловая камера представлена двумя модулями 8+0.3 Мп для съемки детализированных и красочных снимков. Двойная светодиодная вспышка позволит проводить фотосъемку в условиях плохой освещенности. Для создания селфи предусмотрена 5-мегапиксельная фронтальная камера. Литий-полимерный аккумулятор емкостью 5000 мАч позволит устройству проработать в режиме разговора до 28 ч.`,
},
{
id: 4,
name: "Смартфон Infinix SMART 7 HD 64 ГБ",
price: 6999,
image:
"https://c.dns-shop.ru/thumb/st1/fit/500/500/746f2653ecd116f0b3f5bc3e1ce6040f/8a0c3b832d57c5ea8faae411b3afd708403516a91e448da83efb13ef5d6696bd.jpg.webp",
colors: ["white", "black", "blue"],
popularity: 2,
desc: `Смартфон Infinix Smart 7 HD 64 ГБ выполнен в корпусе белого цвета и оснащен дисплеем 6.6 дюйма. Панель IPS (1612x720 пикселей) воспроизводит реалистичное изображение с насыщенными и яркими цветами. Плавная и бесперебойная работа аппаратной платформы при выполнении различных задач обеспечивается благодаря процессору Unisoc SC9863A и 2 ГБ оперативной памяти.
Infinix Smart 7 HD оснащен слотами для установки двух карт SIM и карты памяти microSD. Основная камера 8+0.3 Мп предназначена для создания детализированных фотографий и видео. На передней стороне в каплевидном вырезе расположена камера 5 Мп, которая позволяет общаться по видеосвязи и делать селфи. В устройстве реализованы беспроводные интерфейсы Wi-Fi и Bluetooth. Аккумулятор 5000 мА*ч гарантирует до 32 часов работы смартфона без подзарядки в режиме просмотра видео.`,
},
{
id: 5,
name: "Смартфон Tecno POP 7 64 ГБ",
price: 8499,
image:
"https://c.dns-shop.ru/thumb/st4/fit/500/500/8278fc2e0c767175a1bc3fe505284ca7/88c242ac48d30b2977c1802c8ad41f63484c9e2bb3a0976befc7d0bb7caa6c6e.jpg.webp",
colors: ["black", "blue", "purple"],
popularity: 4,
desc: `Смартфон Tecno POP 7 в пластиковом корпусе голубого цвета обладает многоуровневой биометрической защитой. Она запускает идентификацию личности по отпечатку и чертам лица. Процессор с 8 ядрами и 2 ГБ оперативной памяти выступают гарантом быстрого запуска приложений и отклика на пожелания пользователя. Энергия аккумулятора емкостью 5000 мАч рассчитана на длительное использование функционала.
Смартфон Tecno POP 7 оснащен основной камерой с разрешением матрицы 8 Мп и светодиодной вспышкой. Кадры получатся насыщенными даже в условиях слабого освещения. В 6.6-дюймовый экран интегрирован датчик, который анализирует уровень внешнего освещения. Он автоматически уменьшает или повышает яркость для комфортного просмотра контента.`,
},
],
};
export default db;
+17
View File
@@ -0,0 +1,17 @@
import "dotenv/config";
import express, { json } from "express";
import cors from "cors";
const app = express();
const port = process.env.PORT || 3000;
app.use(json());
app.use(cors());
app.get("/", (_req, res) => {
res.json({ ok: 1 });
});
app.listen(port, () => {
console.log(`Server is listening on port ${port}`);
});
+114
View File
@@ -0,0 +1,114 @@
{
"compilerOptions": {
/* Visit https://aka.ms/tsconfig to read more about this file */
/* Projects */
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
/* Language and Environment */
"target": "ES2020" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
// "jsx": "preserve", /* Specify what JSX code is generated. */
// "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
// "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
/* Modules */
"module": "ESNext" /* Specify what module code is generated. */,
// "rootDir": "./", /* Specify the root folder within your source files. */
"moduleResolution": "Node" /* Specify how TypeScript looks up a file from a given module specifier. */,
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
// "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
// "types": [], /* Specify type package names to be included without being referenced in a source file. */
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
// "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */
// "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
// "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
// "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
// "resolveJsonModule": true, /* Enable importing .json files. */
// "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
/* JavaScript Support */
// "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
/* Emit */
// "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
"outDir": "./dist" /* Specify an output folder for all emitted files. */,
// "removeComments": true, /* Disable emitting comments. */
// "noEmit": true, /* Disable emitting files from a compilation. */
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
// "newLine": "crlf", /* Set the newline character for emitting files. */
// "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
// "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
// "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
// "declarationDir": "./", /* Specify the output directory for generated declaration files. */
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
/* Interop Constraints */
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
// "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
"esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
"forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
/* Type Checking */
"strict": true /* Enable all strict type-checking options. */,
// "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
// "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
// "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
// "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
// "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
"noUnusedLocals": true /* Enable error reporting when local variables aren't read. */,
"noUnusedParameters": true /* Raise an error when a function parameter isn't read. */,
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
"noFallthroughCasesInSwitch": true /* Enable error reporting for fallthrough cases in switch statements. */,
// "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
/* Completeness */
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
"skipLibCheck": true /* Skip type checking all .d.ts files. */
},
"ts-node": {
"esm": true,
"experimentalSpecifierResolution": "node",
"transpileOnly": true
}
}