First pass at react conversion

This commit is contained in:
AtHeartEngineer
2022-05-20 13:49:18 -04:00
parent 805330e848
commit 33077736d8
34 changed files with 28598 additions and 19 deletions

24
.gitignore vendored Normal file
View File

@@ -0,0 +1,24 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
/.vscode
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

View File

@@ -1,3 +0,0 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.3536 21.3536C12.1583 21.5488 11.8417 21.5488 11.6464 21.3536L8.46447 18.1716C8.2692 17.9763 8.2692 17.6597 8.46447 17.4645C8.65973 17.2692 8.97631 17.2692 9.17157 17.4645L11.5 19.7929L11.5 3C11.5 2.72386 11.7239 2.5 12 2.5C12.2761 2.5 12.5 2.72386 12.5 3L12.5 19.7929L14.8284 17.4645C15.0237 17.2692 15.3403 17.2692 15.5355 17.4645C15.7308 17.6597 15.7308 17.9763 15.5355 18.1716L12.3536 21.3536Z" fill="#fff" />
</svg>

Before

Width:  |  Height:  |  Size: 604 B

View File

@@ -1,10 +0,0 @@
<svg width="71" height="55" viewBox="0 0 71 55" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)">
<path d="M60.1045 4.8978C55.5792 2.8214 50.7265 1.2916 45.6527 0.41542C45.5603 0.39851 45.468 0.440769 45.4204 0.525289C44.7963 1.6353 44.105 3.0834 43.6209 4.2216C38.1637 3.4046 32.7345 3.4046 27.3892 4.2216C26.905 3.0581 26.1886 1.6353 25.5617 0.525289C25.5141 0.443589 25.4218 0.40133 25.3294 0.41542C20.2584 1.2888 15.4057 2.8186 10.8776 4.8978C10.8384 4.9147 10.8048 4.9429 10.7825 4.9795C1.57795 18.7309 -0.943561 32.1443 0.293408 45.3914C0.299005 45.4562 0.335386 45.5182 0.385761 45.5576C6.45866 50.0174 12.3413 52.7249 18.1147 54.5195C18.2071 54.5477 18.305 54.5139 18.3638 54.4378C19.7295 52.5728 20.9469 50.6063 21.9907 48.5383C22.0523 48.4172 21.9935 48.2735 21.8676 48.2256C19.9366 47.4931 18.0979 46.6 16.3292 45.5858C16.1893 45.5041 16.1781 45.304 16.3068 45.2082C16.679 44.9293 17.0513 44.6391 17.4067 44.3461C17.471 44.2926 17.5606 44.2813 17.6362 44.3151C29.2558 49.6202 41.8354 49.6202 53.3179 44.3151C53.3935 44.2785 53.4831 44.2898 53.5502 44.3433C53.9057 44.6363 54.2779 44.9293 54.6529 45.2082C54.7816 45.304 54.7732 45.5041 54.6333 45.5858C52.8646 46.6197 51.0259 47.4931 49.0921 48.2228C48.9662 48.2707 48.9102 48.4172 48.9718 48.5383C50.038 50.6034 51.2554 52.5699 52.5959 54.435C52.6519 54.5139 52.7526 54.5477 52.845 54.5195C58.6464 52.7249 64.529 50.0174 70.6019 45.5576C70.6551 45.5182 70.6887 45.459 70.6943 45.3942C72.1747 30.0791 68.2147 16.7757 60.1968 4.9823C60.1772 4.9429 60.1437 4.9147 60.1045 4.8978ZM23.7259 37.3253C20.2276 37.3253 17.3451 34.1136 17.3451 30.1693C17.3451 26.225 20.1717 23.0133 23.7259 23.0133C27.308 23.0133 30.1626 26.2532 30.1066 30.1693C30.1066 34.1136 27.28 37.3253 23.7259 37.3253ZM47.3178 37.3253C43.8196 37.3253 40.9371 34.1136 40.9371 30.1693C40.9371 26.225 43.7636 23.0133 47.3178 23.0133C50.9 23.0133 53.7545 26.2532 53.6986 30.1693C53.6986 34.1136 50.9 37.3253 47.3178 37.3253Z" fill="#ffffff"/>
</g>
<defs>
<clipPath id="clip0">
<rect width="71" height="55" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -1 +0,0 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 835 B

View File

@@ -1,3 +0,0 @@
<svg width="128" height="128" style="enable-background:new 0 0 128 128;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<path d="M64,0.29C28.87,0.29,0.29,28.87,0.28,64l0,0C0.29,99.13,28.87,127.71,64,127.71 c35.13,0,63.71-28.59,63.71-63.71l0,0C127.71,28.87,99.13,0.29,64,0.29z M89.2,85.25c-6.24-1.85-13.4-3.09-21.59-3.38V67.61h24.18 C91.53,74.23,90.58,80.06,89.2,85.25z M38.75,42.74c6.26,1.86,13.43,3.11,21.64,3.4v14.25H36.16 C36.41,53.76,37.36,47.93,38.75,42.74z M36.22,67.61h24.17v14.25c-8.17,0.29-15.31,1.52-21.55,3.37 C37.44,80.04,36.48,74.22,36.22,67.61z M91.79,60.39H67.61V46.13c8.17-0.29,15.31-1.52,21.55-3.37 C90.56,47.96,91.53,53.78,91.79,60.39z M120.37,60.39h-21.3c-0.26-7.53-1.35-14.17-2.96-20.05c5.73-2.35,10.52-5.19,14.49-8.17 C116.18,40.31,119.7,49.96,120.37,60.39z M106.14,26.48c-3.39,2.51-7.44,4.93-12.28,6.96C89.56,22.2,83.32,14.38,77.76,9.21 C88.91,12.01,98.71,18.16,106.14,26.48z M86.92,35.88c-5.58,1.64-11.97,2.75-19.31,3.03V10.3C73.04,14.18,81.56,22.1,86.92,35.88z M60.39,10.22v28.69c-7.38-0.28-13.82-1.41-19.43-3.07C46.33,21.94,54.92,14.06,60.39,10.22z M50.24,9.21 c-5.55,5.17-11.79,12.99-16.09,24.23c-4.84-2.03-8.89-4.45-12.28-6.96C29.29,18.16,39.1,12.01,50.24,9.21z M17.41,32.17 c3.97,2.97,8.77,5.82,14.49,8.16c-1.61,5.88-2.7,12.52-2.96,20.05H7.64C8.3,49.96,11.83,40.31,17.41,32.17z M28.94,67.61 c0.26,7.53,1.36,14.17,2.96,20.06c-5.73,2.34-10.52,5.19-14.49,8.16c-5.58-8.14-9.11-17.79-9.78-28.22H28.94z M21.88,101.52 c3.38-2.51,7.43-4.92,12.28-6.96c4.3,11.23,10.53,19.06,16.09,24.23C39.1,115.99,29.29,109.84,21.88,101.52z M41.08,92.12 c5.58-1.64,11.97-2.75,19.3-3.03v28.62C54.97,113.83,46.45,105.9,41.08,92.12z M67.61,117.77V89.09c7.37,0.28,13.79,1.4,19.38,3.05 C81.63,106.04,73.08,113.93,67.61,117.77z M77.77,118.79c5.55-5.17,11.79-12.99,16.09-24.23c4.84,2.03,8.89,4.45,12.27,6.96 C98.71,109.84,88.91,115.99,77.77,118.79z M110.6,95.83c-3.97-2.97-8.77-5.82-14.49-8.16c1.61-5.89,2.7-12.52,2.96-20.06h21.3 C119.71,78.04,116.18,87.69,110.6,95.83z" style="fill:#fff;"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z" style="fill:#fff;"/></svg>

Before

Width:  |  Height:  |  Size: 626 B

28012
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

43
package.json Normal file
View File

@@ -0,0 +1,43 @@
{
"name": "pse-landingpage",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.2.0",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.1",
"@types/node": "^16.11.36",
"@types/react": "^18.0.9",
"@types/react-dom": "^18.0.4",
"react": "^18.1.0",
"react-dom": "^18.1.0",
"react-scripts": "5.0.1",
"typescript": "^4.6.4",
"web-vitals": "^2.1.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

50
public/index.html Normal file
View File

@@ -0,0 +1,50 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>Privacy and Scaling Exploration</title>
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>

3
public/robots.txt Normal file
View File

@@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

0
src/App.css Normal file
View File

9
src/App.test.tsx Normal file
View File

@@ -0,0 +1,9 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});

23
src/App.tsx Normal file
View File

@@ -0,0 +1,23 @@
import React from 'react';
import Starter from './Starter';
import Project from './Project';
import ProjectsData from './Projects.json';
import './App.css';
function App() {
const Projects = () => {
return ProjectsData.map((project) => {
return Project(project);
});
}
return (
<div className="App container-sm">
{Starter()}
{Projects()}
</div>
);
}
export default App;

34
src/Project.tsx Normal file
View File

@@ -0,0 +1,34 @@
import globe from './images/globe.svg';
import github from './images/github.svg';
type ProjectProps = {
name: string;
description: string;
website: string;
github: string;
};
function Project(props: ProjectProps) {
return (
<div className="row">
<div className="col-md-10">
<h2>{props.name}</h2>
<p>{props.description}</p>
</div>
<div className="col-md-1 link">
<a href={props.website}>
<img src={globe} alt="" className="icon" />
<div>Website</div>
</a>
</div>
<div className="col-md-1 link">
<a href={props.github}>
<img src={github} alt="" className="icon" />
<div>Github</div>
</a>
</div>
</div>
);
}
export default Project;

74
src/Projects.json Normal file
View File

@@ -0,0 +1,74 @@
[
{
"name": "Zkopru",
"description": "Zkopru is an optimistic rollup that uses zero knowledge proofs to enable private, low-cost transactions with ETH, ERC-20s and NFTs on layer 2.",
"website": "https://zkopru.network/",
"github": "https://github.com/zkopru-network"
},
{
"name": "BLS Wallet",
"description": "Reduce L2 gas costs using BLS signatures, transaction aggregation, and smart contract wallets.",
"website": "https://blswallet.org/",
"github": "https://github.com/jzaki/bls-wallet"
},
{
"name": "zkEVM",
"description": "A zk-rollup that can generate zk proofs for general EVM verification. This allows us to build a fully EVM-compatible zk-Rollup, which any existing Ethereum application can easily migrate to.",
"website": "https://hackmd.io/@yezhang/S1_KMMbGt",
"github": "https://github.com/appliedzkp/zkevm-specs"
},
{
"name": "MACI (Minimal Anti-Collusion Infrastructure)",
"description": "MACI uses zero knowledge proofs for collusion resistance in blockchain voting (such as quadratic funding mechanisms) by making it impossible for anyone other than the vote coordinator to verify how a specific user voted. MACI also ensures correct execution of the votes, allowing anyone to verify the results.",
"website": "",
"github": "https://github.com/appliedzkp/maci"
},
{
"name": "Unirep Social",
"description": "Use Unirep to make a private social network like reddit.",
"website": "https://unirep.social/",
"github": "https://github.com/unirep/unirep-social"
},
{
"name": "Semaphore",
"description": "Semaphore is a zero-knowledge gadget, designed to be a simple and generic privacy layer for Ethereum DApps. Ethereum users can prove membership of a set without revealing their original identity, as well as signal their endorsement of an arbitrary string.",
"website": "https://semaphore.appliedzkp.org/",
"github": "https://github.com/appliedzkp/semaphore/"
},
{
"name": "Interep",
"description": "Private reputation and identity system allowing services to verify that users belong to a certain group or meet certain reputation criteria without revealing their identities. Users can anonymously export reputation from platforms such as Twitter and Github.",
"website": "https://interep.link/",
"github": "https://github.com/interep-project"
},
{
"name": "Clr.fund for Everyone",
"description": "Infrastructure to make it easy for any community to run their own CLR round with clr.fund.",
"website": "https://clrfund-xdai.on.fleek.co/#/",
"github": "https://clrfund.gitbook.io/deployer/"
},
{
"name": "RLN",
"description": "RLN (Rate limiting nullfier) is a construct based on zero-knowledge proofs that enables spam prevention mechanism for decentralized, anonymous environments. In anonymous environments, the identity of the entities is unknown.",
"website": "https://ethresear.ch/t/semaphore-rln-rate-limiting-nullifier-for-spam-prevention-in-anonymous-p2p-setting/5009",
"github": "https://github.com/bdim1/rlnapp"
},
{
"name": "zk-chat",
"description": "Anonymous and private chat environments, using Interep for a privacy preserving registry and sybil resistance and RLN for spam protection.",
"website": "zkchat.org",
"github": "github.com/njofce/zk-chat"
},
{
"name": "COCO",
"description": "Collaborative content curation using a double-or-nothing challenge mechanism.",
"website": "https://www.cocoverse.club/",
"github": "https://github.com/Janmajayamall/meme-curator"
},
{
"name": "Trusted Setup",
"description": "Open source infrastructure for running a trusted setup ceremony, in which many people participate in generating entropy which will secure a cryptographic protocol.<br/>Perpetual Powers of Tau: A universal ceremony for the initial phase of a trusted setup. (github.com/weijiekoh/perpetualpowersoftau)<br/>MPC Phase 2 UI: UI for a CLI or browser-based ceremony for the second, circuit-specific phase. (github.com/glamperd/setup-mpc-ui)",
"website": "",
"github": ""
}
]

47
src/Starter.tsx Normal file
View File

@@ -0,0 +1,47 @@
import React from 'react';
import logo from './images/pse-logo.svg';
import arrow from './images/arrow.svg';
import discord from './images/discord.svg';
import twitter from './images/twitter.svg';
function Starter() {
return (
<div className="starter">
<img src={logo} alt="eth pse logo" className="ethlogo" />
<h1>
Welcome to
<br />
Privacy & Scaling Explorations
</h1>
<p>
A multidisciplinary team supported by the Ethereum Foundation. PSE explores new use cases
for zero knowledge proofs and other cryptographic primitives through research and
proof-of-concept implementation.
<br />
We facilitate the integration of ZK primitives into decentralized applications.
</p>
<div className="center">
<div className="link">
<a href="https://twitter.com/PrivacyScaling">
<img src={twitter} alt="" className="icon" />
<div>Twitter</div>
</a>
</div>
<div className="link">
<a href="https://discord.gg/g5YTV7HHbh">
<img src={discord} alt="" className="icon" />
<div>Discord</div>
</a>
</div>
</div>
<div className="col-md-12 arrow">
<img src={arrow} alt="" />
<div className="fst-italic" style={{ opacity: '75%', paddingTop: '1rem' }}>
more info below
</div>
</div>
</div>
);
}
export default Starter;

3
src/images/arrow.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.3537 21.3536C12.1584 21.5488 11.8418 21.5488 11.6465 21.3536L8.46457 18.1716C8.2693 17.9763 8.2693 17.6597 8.46457 17.4645C8.65983 17.2692 8.97641 17.2692 9.17167 17.4645L11.5001 19.7929V3C11.5001 2.72386 11.724 2.5 12.0001 2.5C12.2762 2.5 12.5001 2.72386 12.5001 3V19.7929L14.8285 17.4645C15.0238 17.2692 15.3404 17.2692 15.5356 17.4645C15.7309 17.6597 15.7309 17.9763 15.5356 18.1716L12.3537 21.3536Z" fill="#373A3E"/>
</svg>

After

Width:  |  Height:  |  Size: 577 B

10
src/images/discord.svg Normal file
View File

@@ -0,0 +1,10 @@
<svg width="71" height="55" viewBox="0 0 71 55" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_588_2154)">
<path d="M60.1045 4.8978C55.5792 2.8214 50.7265 1.2916 45.6527 0.415419C45.5603 0.398509 45.468 0.440768 45.4204 0.525288C44.7963 1.6353 44.105 3.0834 43.6209 4.2216C38.1637 3.4046 32.7345 3.4046 27.3892 4.2216C26.905 3.0581 26.1886 1.6353 25.5617 0.525288C25.5141 0.443588 25.4218 0.401329 25.3294 0.415419C20.2584 1.2888 15.4057 2.8186 10.8776 4.8978C10.8384 4.9147 10.8048 4.9429 10.7825 4.9795C1.57795 18.7309 -0.943561 32.1443 0.293408 45.3914C0.299005 45.4562 0.335386 45.5182 0.385761 45.5576C6.45866 50.0174 12.3413 52.7249 18.1147 54.5195C18.2071 54.5477 18.305 54.5139 18.3638 54.4378C19.7295 52.5728 20.9469 50.6063 21.9907 48.5383C22.0523 48.4172 21.9935 48.2735 21.8676 48.2256C19.9366 47.4931 18.0979 46.6 16.3292 45.5858C16.1893 45.5041 16.1781 45.304 16.3068 45.2082C16.679 44.9293 17.0513 44.6391 17.4067 44.3461C17.471 44.2926 17.5606 44.2813 17.6362 44.3151C29.2558 49.6202 41.8354 49.6202 53.3179 44.3151C53.3935 44.2785 53.4831 44.2898 53.5502 44.3433C53.9057 44.6363 54.2779 44.9293 54.6529 45.2082C54.7816 45.304 54.7732 45.5041 54.6333 45.5858C52.8646 46.6197 51.0259 47.4931 49.0921 48.2228C48.9662 48.2707 48.9102 48.4172 48.9718 48.5383C50.038 50.6034 51.2554 52.5699 52.5959 54.435C52.6519 54.5139 52.7526 54.5477 52.845 54.5195C58.6464 52.7249 64.529 50.0174 70.6019 45.5576C70.6551 45.5182 70.6887 45.459 70.6943 45.3942C72.1747 30.0791 68.2147 16.7757 60.1968 4.9823C60.1772 4.9429 60.1437 4.9147 60.1045 4.8978ZM23.7259 37.3253C20.2276 37.3253 17.3451 34.1136 17.3451 30.1693C17.3451 26.225 20.1717 23.0133 23.7259 23.0133C27.308 23.0133 30.1626 26.2532 30.1066 30.1693C30.1066 34.1136 27.28 37.3253 23.7259 37.3253ZM47.3178 37.3253C43.8196 37.3253 40.9371 34.1136 40.9371 30.1693C40.9371 26.225 43.7636 23.0133 47.3178 23.0133C50.9 23.0133 53.7545 26.2532 53.6986 30.1693C53.6986 34.1136 50.9 37.3253 47.3178 37.3253Z" fill="#373A3E"/>
</g>
<defs>
<clipPath id="clip0_588_2154">
<rect width="71" height="55" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

3
src/images/github.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 0.296997C5.37 0.296997 0 5.67 0 12.297C0 17.6 3.438 22.097 8.205 23.682C8.805 23.795 9.025 23.424 9.025 23.105C9.025 22.82 9.015 22.065 9.01 21.065C5.672 21.789 4.968 19.455 4.968 19.455C4.422 18.07 3.633 17.7 3.633 17.7C2.546 16.956 3.717 16.971 3.717 16.971C4.922 17.055 5.555 18.207 5.555 18.207C6.625 20.042 8.364 19.512 9.05 19.205C9.158 18.429 9.467 17.9 9.81 17.6C7.145 17.3 4.344 16.268 4.344 11.67C4.344 10.36 4.809 9.29 5.579 8.45C5.444 8.147 5.039 6.927 5.684 5.274C5.684 5.274 6.689 4.952 8.984 6.504C9.944 6.237 10.964 6.105 11.984 6.099C13.004 6.105 14.024 6.237 14.984 6.504C17.264 4.952 18.269 5.274 18.269 5.274C18.914 6.927 18.509 8.147 18.389 8.45C19.154 9.29 19.619 10.36 19.619 11.67C19.619 16.28 16.814 17.295 14.144 17.59C14.564 17.95 14.954 18.686 14.954 19.81C14.954 21.416 14.939 22.706 14.939 23.096C14.939 23.411 15.149 23.786 15.764 23.666C20.565 22.092 24 17.592 24 12.297C24 5.67 18.627 0.296997 12 0.296997" fill="#373A3E"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

3
src/images/globe.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M64 0.289993C28.87 0.289993 0.290029 28.87 0.280029 64C0.290029 99.13 28.87 127.71 64 127.71C99.13 127.71 127.71 99.12 127.71 64C127.71 28.87 99.13 0.289993 64 0.289993ZM89.2 85.25C82.96 83.4 75.8 82.16 67.61 81.87V67.61H91.79C91.53 74.23 90.58 80.06 89.2 85.25ZM38.75 42.74C45.01 44.6 52.18 45.85 60.39 46.14V60.39H36.16C36.41 53.76 37.36 47.93 38.75 42.74ZM36.22 67.61H60.39V81.86C52.22 82.15 45.08 83.38 38.84 85.23C37.44 80.04 36.48 74.22 36.22 67.61ZM91.79 60.39H67.61V46.13C75.78 45.84 82.92 44.61 89.16 42.76C90.56 47.96 91.53 53.78 91.79 60.39ZM120.37 60.39H99.07C98.81 52.86 97.72 46.22 96.11 40.34C101.84 37.99 106.63 35.15 110.6 32.17C116.18 40.31 119.7 49.96 120.37 60.39ZM106.14 26.48C102.75 28.99 98.7 31.41 93.86 33.44C89.56 22.2 83.32 14.38 77.76 9.20999C88.91 12.01 98.71 18.16 106.14 26.48ZM86.92 35.88C81.34 37.52 74.95 38.63 67.61 38.91V10.3C73.04 14.18 81.56 22.1 86.92 35.88ZM60.39 10.22V38.91C53.01 38.63 46.57 37.5 40.96 35.84C46.33 21.94 54.92 14.06 60.39 10.22ZM50.24 9.20999C44.69 14.38 38.45 22.2 34.15 33.44C29.31 31.41 25.26 28.99 21.87 26.48C29.29 18.16 39.1 12.01 50.24 9.20999ZM17.41 32.17C21.38 35.14 26.18 37.99 31.9 40.33C30.29 46.21 29.2 52.85 28.94 60.38H7.64003C8.30003 49.96 11.83 40.31 17.41 32.17ZM28.94 67.61C29.2 75.14 30.3 81.78 31.9 87.67C26.17 90.01 21.38 92.86 17.41 95.83C11.83 87.69 8.30003 78.04 7.63003 67.61H28.94ZM21.88 101.52C25.26 99.01 29.31 96.6 34.16 94.56C38.46 105.79 44.69 113.62 50.25 118.79C39.1 115.99 29.29 109.84 21.88 101.52ZM41.08 92.12C46.66 90.48 53.05 89.37 60.38 89.09V117.71C54.97 113.83 46.45 105.9 41.08 92.12ZM67.61 117.77V89.09C74.98 89.37 81.4 90.49 86.99 92.14C81.63 106.04 73.08 113.93 67.61 117.77ZM77.77 118.79C83.32 113.62 89.56 105.8 93.86 94.56C98.7 96.59 102.75 99.01 106.13 101.52C98.71 109.84 88.91 115.99 77.77 118.79ZM110.6 95.83C106.63 92.86 101.83 90.01 96.11 87.67C97.72 81.78 98.81 75.15 99.07 67.61H120.37C119.71 78.04 116.18 87.69 110.6 95.83Z" fill="#373A3E"/>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

9
src/images/pse-logo.svg Normal file
View File

@@ -0,0 +1,9 @@
<svg width="240" height="240" viewBox="0 0 240 240" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="120" cy="120" r="115" fill="#C3B5FA" stroke="#282A2D" stroke-width="10"/>
<path d="M140.989 74.8062C140.753 74.5215 140.427 74.3253 140.066 74.2495C139.704 74.1738 139.327 74.2228 138.997 74.3888L120.069 83.8803L101.142 74.3888C100.812 74.2229 100.435 74.1737 100.074 74.2491C99.7124 74.3246 99.3869 74.5203 99.1502 74.8044C98.9135 75.0886 98.7795 75.4447 98.7698 75.8148C98.7601 76.185 98.8754 76.5476 99.0969 76.8438L118.759 103.136C118.778 103.162 118.811 103.172 118.834 103.199C118.943 103.328 119.073 103.439 119.217 103.527C119.269 103.568 119.324 103.604 119.381 103.636C119.595 103.744 119.83 103.8 120.069 103.8C120.308 103.8 120.544 103.744 120.757 103.636C120.815 103.604 120.87 103.568 120.921 103.527C121.066 103.439 121.195 103.328 121.305 103.199C121.328 103.172 121.36 103.162 121.38 103.136L141.042 76.8438C141.263 76.5478 141.378 76.1856 141.369 75.8158C141.359 75.4461 141.226 75.0903 140.989 74.8062ZM118.431 86.733V97.2204L105.883 80.459L118.431 86.733ZM121.708 97.2204V86.733L134.255 80.459L121.708 97.2204Z" fill="#151616"/>
<path d="M98.8151 69.4753C98.8135 69.5655 98.8201 69.6557 98.8348 69.7448C98.8511 69.7973 98.8905 69.8368 98.9101 69.8861C98.918 69.9317 98.9289 69.9767 98.9429 70.0208C98.9626 70.0636 99.0117 70.08 99.0347 70.1194C99.1444 70.3018 99.2892 70.4604 99.4607 70.5861C99.5164 70.6256 99.5557 70.6716 99.6114 70.7044C99.6671 70.7373 99.6507 70.7439 99.6737 70.7537L119.335 80.6134H119.381C119.595 80.7192 119.831 80.7742 120.069 80.7742C120.308 80.7742 120.543 80.7192 120.758 80.6134H120.803L140.465 70.7537C140.513 70.7204 140.559 70.6842 140.603 70.6453C140.705 70.581 140.8 70.5049 140.885 70.4185C140.957 70.3442 141.022 70.2627 141.078 70.1753C141.12 70.126 141.159 70.0745 141.196 70.0208C141.219 69.9715 141.216 69.9222 141.235 69.8762C141.261 69.8338 141.284 69.7899 141.304 69.7448C141.309 69.6857 141.309 69.6263 141.304 69.5673C141.327 69.4538 141.336 69.3379 141.33 69.2222C141.327 69.126 141.315 69.0303 141.294 68.9363C141.267 68.8226 141.228 68.7124 141.176 68.6076C141.162 68.555 141.145 68.5034 141.124 68.4531L121.462 35.5877C121.439 35.5515 121.397 35.5384 121.374 35.5055C121.23 35.2886 121.035 35.1106 120.807 34.9875C120.578 34.8644 120.322 34.8 120.063 34.8C119.803 34.8 119.548 34.8644 119.319 34.9875C119.09 35.1106 118.896 35.2886 118.752 35.5055C118.729 35.5384 118.687 35.5515 118.664 35.5877L99.0019 68.4531C98.8711 68.6864 98.7991 68.9481 98.7922 69.2156C98.7922 69.2452 98.7692 69.2682 98.7692 69.2978C98.7808 69.3579 98.7961 69.4171 98.8151 69.4753V69.4753ZM118.431 76.4855L104.071 69.2846L118.431 62.0838V76.4855ZM121.708 62.0838L136.067 69.2846L121.708 76.4855V62.0838ZM121.708 58.4095V42.3514L135.428 65.2882L121.708 58.4095ZM118.431 58.4095L104.707 65.2915L118.431 42.3514V58.4095Z" fill="#151616"/>
<path d="M55.3846 128.132L61.9846 119.132L87.7846 119.132C97.9846 119.432 102.485 125.732 103.385 126.932C107.585 120.032 125.885 113.732 138.185 123.332V119.132H180.185V140.432H178.985V152.132H180.185V173.132L173.585 182.132H131.585V178.532C110.885 190.232 93.1846 176.732 92.5846 165.932C91.1446 167.372 87.1846 168.532 85.3846 168.932V173.132L78.7846 182.132H55.3846V128.132Z" fill="#282A2D"/>
<path d="M66.7846 166.894V125.004H84.8664C87.9755 125.004 90.696 125.617 93.0278 126.844C95.3596 128.072 97.1732 129.797 98.4687 132.019C99.7642 134.242 100.412 136.84 100.412 139.813C100.412 142.813 99.7437 145.41 98.4073 147.606C97.0846 149.801 95.2232 151.492 92.8232 152.679C90.4369 153.865 87.6482 154.458 84.4573 154.458H78.1573V145.622H82.1664C83.5028 145.622 84.6414 145.39 85.5823 144.926C86.5369 144.449 87.2664 143.774 87.771 142.901C88.2892 142.029 88.5482 140.999 88.5482 139.813C88.5482 138.613 88.2892 137.59 87.771 136.744C87.2664 135.885 86.5369 135.231 85.5823 134.781C84.6414 134.317 83.5028 134.085 82.1664 134.085H78.1573V166.894H66.7846Z" fill="#FCFCFC"/>
<path d="M127.166 138.094C127.057 136.731 126.546 135.667 125.632 134.904C124.732 134.14 123.362 133.758 121.521 133.758C120.348 133.758 119.387 133.901 118.637 134.188C117.901 134.46 117.355 134.835 117.001 135.313C116.646 135.79 116.462 136.335 116.448 136.949C116.421 137.454 116.51 137.91 116.714 138.319C116.932 138.715 117.273 139.076 117.737 139.404C118.201 139.717 118.794 140.004 119.516 140.263C120.239 140.522 121.098 140.754 122.094 140.958L125.53 141.694C127.848 142.185 129.832 142.833 131.482 143.638C133.132 144.442 134.482 145.39 135.532 146.481C136.582 147.558 137.353 148.772 137.844 150.122C138.348 151.472 138.607 152.944 138.621 154.54C138.607 157.294 137.919 159.626 136.555 161.535C135.191 163.444 133.241 164.897 130.705 165.892C128.182 166.888 125.148 167.385 121.603 167.385C117.962 167.385 114.785 166.847 112.071 165.769C109.371 164.692 107.271 163.035 105.771 160.799C104.285 158.549 103.535 155.672 103.521 152.167H114.321C114.389 153.449 114.71 154.526 115.282 155.399C115.855 156.272 116.66 156.933 117.696 157.383C118.746 157.833 119.994 158.058 121.439 158.058C122.653 158.058 123.669 157.908 124.487 157.608C125.305 157.308 125.926 156.892 126.348 156.36C126.771 155.829 126.989 155.222 127.003 154.54C126.989 153.899 126.778 153.34 126.369 152.863C125.973 152.372 125.319 151.935 124.405 151.554C123.491 151.158 122.257 150.79 120.703 150.449L116.53 149.549C112.821 148.744 109.896 147.401 107.755 145.519C105.628 143.624 104.571 141.04 104.585 137.767C104.571 135.108 105.28 132.783 106.712 130.792C108.157 128.788 110.155 127.226 112.705 126.108C115.269 124.99 118.207 124.431 121.521 124.431C124.903 124.431 127.828 124.997 130.296 126.129C132.764 127.26 134.666 128.856 136.003 130.915C137.353 132.96 138.035 135.354 138.048 138.094H127.166Z" fill="#FCFCFC"/>
<path d="M142.947 166.894V125.004H173.138V134.167H154.32V141.367H171.583V150.531H154.32V157.731H173.056V166.894H142.947Z" fill="#FCFCFC"/>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

10
src/images/twitter.svg Normal file
View File

@@ -0,0 +1,10 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_588_2159)">
<path d="M24 4.55699C23.117 4.94899 22.168 5.21299 21.172 5.33199C22.189 4.72299 22.97 3.75799 23.337 2.60799C22.386 3.17199 21.332 3.58199 20.21 3.80299C19.313 2.84599 18.032 2.24799 16.616 2.24799C13.437 2.24799 11.101 5.21399 11.819 8.29299C7.728 8.08799 4.1 6.12799 1.671 3.14899C0.381 5.36199 1.002 8.25699 3.194 9.72299C2.388 9.69699 1.628 9.47599 0.965 9.10699C0.911 11.388 2.546 13.522 4.914 13.997C4.221 14.185 3.462 14.229 2.69 14.081C3.316 16.037 5.134 17.46 7.29 17.5C5.22 19.123 2.612 19.848 0 19.54C2.179 20.937 4.768 21.752 7.548 21.752C16.69 21.752 21.855 14.031 21.543 7.10599C22.505 6.41099 23.34 5.54399 24 4.55699V4.55699Z" fill="#373A3E"/>
</g>
<defs>
<clipPath id="clip0_588_2159">
<rect width="24" height="24" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 908 B

112
src/index.css Normal file
View File

@@ -0,0 +1,112 @@
body {
color: black;
background: rgb(195,181,250);
background: linear-gradient(180deg, rgba(219,211,252,1) 0%, rgba(219,211,252,1) 100%);
background-attachment: fixed;
height: 100vh;
font-family: 'Inter', sans-serif;
}
.starter {
min-height: 100vh;
display: flex;
flex-direction: column;
justify-content: center;
padding-block: 5rem;
gap: 5rem;
}
.starter > * {
margin: 0 auto;
text-align: center;
}
.ending{
min-height: 30vh;
display: flex;
flex-direction: column;
justify-content: center;
}
.row {
padding-bottom: 1.5rem;
}
.title {
margin: 1rem auto;
text-align: center;
max-width: 42rem;
}
.ethlogo {
max-height: 16rem;
}
.arrow {
margin: 1rem auto;
text-align: center;
}
.arrow img {
height: auto;
width: 48px;
}
.center {
display: flex;
align-items: center;
justify-content: center;
gap: 5rem;
}
.link a{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
a {
text-decoration: none;
color: black !important;
}
a:hover {
text-decoration: underline;
}
.icon {
height: 2.75rem;
padding-bottom: .5rem;
}
a[href=""], a[href="#"], a[href=""]:hover, a[href="#"]:hover {
opacity: 25%;
cursor: default;
text-decoration: none;
}
@media screen and (max-width: 800px) {
.starter {
padding-block: 1rem;
gap: 1rem;
}
.icon {
height: 2rem;
}
.row {
border-bottom: 1px solid rgba(255,255,255,.25);
padding-block: 2rem;
padding-inline: 1rem;
}
.row > .link {
width: auto
}
.center {
gap: 2rem;
}
}

19
src/index.tsx Normal file
View File

@@ -0,0 +1,19 @@
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
const root = ReactDOM.createRoot(
document.getElementById('root') as HTMLElement
);
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

1
src/react-app-env.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
/// <reference types="react-scripts" />

15
src/reportWebVitals.ts Normal file
View File

@@ -0,0 +1,15 @@
import { ReportHandler } from 'web-vitals';
const reportWebVitals = (onPerfEntry?: ReportHandler) => {
if (onPerfEntry && onPerfEntry instanceof Function) {
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
getCLS(onPerfEntry);
getFID(onPerfEntry);
getFCP(onPerfEntry);
getLCP(onPerfEntry);
getTTFB(onPerfEntry);
});
}
};
export default reportWebVitals;

5
src/setupTests.ts Normal file
View File

@@ -0,0 +1,5 @@
// jest-dom adds custom jest matchers for asserting on DOM nodes.
// allows you to do things like:
// expect(element).toHaveTextContent(/react/i)
// learn more: https://github.com/testing-library/jest-dom
import '@testing-library/jest-dom';

63
src/site-footer.svg Normal file
View File

@@ -0,0 +1,63 @@
<svg width="1326" height="571" viewBox="0 0 1326 571" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_588_2165)">
<g filter="url(#filter0_d_588_2165)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M454.743 628.037C534.016 628.037 598.279 563.774 598.279 484.501C598.279 405.228 534.016 340.965 454.743 340.965C375.47 340.965 311.207 405.228 311.207 484.501C311.207 563.774 375.47 628.037 454.743 628.037ZM454.742 557.755C495.199 557.755 527.997 524.958 527.997 484.501C527.997 444.044 495.199 411.247 454.742 411.247C414.285 411.247 381.488 444.044 381.488 484.501C381.488 524.958 414.285 557.755 454.742 557.755Z" fill="#53D3E0"/>
<path d="M592.279 484.501C592.279 560.46 530.702 622.037 454.743 622.037V634.037C537.33 634.037 604.279 567.087 604.279 484.501H592.279ZM454.743 346.965C530.702 346.965 592.279 408.542 592.279 484.501H604.279C604.279 401.914 537.33 334.965 454.743 334.965V346.965ZM317.207 484.501C317.207 408.542 378.784 346.965 454.743 346.965V334.965C372.157 334.965 305.207 401.914 305.207 484.501H317.207ZM454.743 622.037C378.784 622.037 317.207 560.46 317.207 484.501H305.207C305.207 567.087 372.157 634.037 454.743 634.037V622.037ZM521.997 484.501C521.997 521.644 491.886 551.755 454.742 551.755V563.755C498.513 563.755 533.997 528.272 533.997 484.501H521.997ZM454.742 417.247C491.886 417.247 521.997 447.357 521.997 484.501H533.997C533.997 440.73 498.513 405.247 454.742 405.247V417.247ZM387.488 484.501C387.488 447.357 417.599 417.247 454.742 417.247V405.247C410.971 405.247 375.488 440.73 375.488 484.501H387.488ZM454.742 551.755C417.599 551.755 387.488 521.644 387.488 484.501H375.488C375.488 528.272 410.971 563.755 454.742 563.755V551.755Z" fill="#282A2D"/>
<path d="M311.207 484.831C311.207 432.94 341.48 383.175 395.366 346.483C448.071 310.596 519.142 290.089 593.536 289.207C596.3 289.175 598.543 291.419 598.543 294.183L598.543 484.831L311.207 484.831Z" fill="#CBF2F6"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M305 491.038L305 484.831C305 430.357 336.779 378.867 391.872 341.353C445.748 304.667 518.059 283.895 593.463 283.001C599.728 282.927 604.751 288.007 604.751 294.183L604.751 491.038L305 491.038ZM317.566 478.624L592.336 478.624L592.336 295.431C519.417 296.519 450.095 316.727 398.859 351.614C348.394 385.977 319.873 431.509 317.566 478.624Z" fill="#282A2D"/>
</g>
<g filter="url(#filter1_d_588_2165)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M953 491C874.023 491 810 426.977 810 348C810 269.023 874.023 205 953 205C1031.98 205 1096 269.023 1096 348C1096 426.977 1031.98 491 953 491ZM910.371 328.222C910.371 342.954 917.827 355.943 929.167 363.609V428.951C929.167 431.241 931.023 433.097 933.312 433.097H972.688C974.978 433.097 976.834 431.241 976.834 428.951V363.582C988.151 355.912 995.589 342.937 995.589 328.222C995.589 304.658 976.513 285.555 952.98 285.555C929.448 285.555 910.371 304.658 910.371 328.222Z" fill="#A6E275"/>
<path d="M929.167 363.609L932.528 358.639L935.167 360.423V363.609H929.167ZM976.834 363.582H970.834V360.401L973.467 358.615L976.834 363.582ZM816 348C816 423.663 877.337 485 953 485V497C870.71 497 804 430.29 804 348H816ZM953 211C877.337 211 816 272.337 816 348H804C804 265.71 870.71 199 953 199V211ZM1090 348C1090 272.337 1028.66 211 953 211V199C1035.29 199 1102 265.71 1102 348H1090ZM953 485C1028.66 485 1090 423.663 1090 348H1102C1102 430.29 1035.29 497 953 497V485ZM925.806 368.58C912.885 359.844 904.371 345.028 904.371 328.222H916.371C916.371 340.881 922.77 352.042 932.528 358.639L925.806 368.58ZM923.167 428.951V363.609H935.167V428.951H923.167ZM933.312 439.097C927.709 439.097 923.167 434.554 923.167 428.951H935.167C935.167 427.927 934.337 427.097 933.312 427.097V439.097ZM972.688 439.097H933.312V427.097H972.688V439.097ZM982.834 428.951C982.834 434.554 978.291 439.097 972.688 439.097V427.097C971.664 427.097 970.834 427.927 970.834 428.951H982.834ZM982.834 363.582V428.951H970.834V363.582H982.834ZM1001.59 328.222C1001.59 345.008 993.096 359.809 980.2 368.549L973.467 358.615C983.206 352.015 989.589 340.866 989.589 328.222H1001.59ZM952.98 279.555C979.834 279.555 1001.59 301.352 1001.59 328.222H989.589C989.589 307.964 973.191 291.555 952.98 291.555V279.555ZM904.371 328.222C904.371 301.352 926.126 279.555 952.98 279.555V291.555C932.769 291.555 916.371 307.964 916.371 328.222H904.371Z" fill="#282A2D"/>
</g>
<g filter="url(#filter2_d_588_2165)">
<path d="M440.297 262.832C434.213 257.646 434.668 248.11 441.219 243.527L672.745 81.5711C679.04 77.1674 687.789 79.5996 690.909 86.6204L947.905 665.023C953.184 676.904 938.713 687.713 928.818 679.278L440.297 262.832Z" fill="#FF9C92"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M683.183 90.0533C682.222 87.8919 679.529 87.1431 677.591 88.4988L446.065 250.455C444.048 251.866 443.908 254.801 445.781 256.398L934.303 672.844C935.244 673.646 936.045 673.829 936.676 673.826C937.4 673.822 938.235 673.561 938.992 672.995C939.749 672.43 940.237 671.704 940.446 671.01C940.628 670.406 940.681 669.586 940.179 668.456L683.183 90.0533ZM667.899 74.6434C678.551 67.1918 693.356 71.3073 698.635 83.1876L955.631 661.59C964.564 681.695 940.076 699.985 923.333 685.712L434.812 269.266C424.517 260.49 425.288 244.354 436.373 236.6L667.899 74.6434Z" fill="#282A2D"/>
<g filter="url(#filter3_d_588_2165)">
<path d="M781.12 174.726C781.534 171.108 778.711 167.934 775.07 167.923L653.208 167.569C648.781 167.556 645.812 172.11 647.609 176.156L744.513 394.25C747.039 399.934 755.453 398.645 756.162 392.465L781.12 174.726Z" fill="#FFE1DE"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M656.806 176.034L772.421 176.37L748.743 382.948L656.806 176.034ZM653.233 159.114C642.678 159.084 635.597 169.943 639.883 179.589L736.787 397.682C742.809 411.236 762.872 408.163 764.561 393.428L789.519 175.689C790.508 167.063 783.776 159.494 775.094 159.469L653.233 159.114Z" fill="#282A2D"/>
</g>
<defs>
<filter id="filter0_d_588_2165" x="251.777" y="283" width="352.973" height="380.067" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="-53.2226" dy="29.0305"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.156863 0 0 0 0 0.164706 0 0 0 0 0.176471 0 0 0 1 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_588_2165"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_588_2165" result="shape"/>
</filter>
<filter id="filter1_d_588_2165" x="758.401" y="199" width="343.599" height="322.872" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="-45.5992" dy="24.8723"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.156863 0 0 0 0 0.164706 0 0 0 0 0.176471 0 0 0 1 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_588_2165"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_588_2165" result="shape"/>
</filter>
<filter id="filter2_d_588_2165" x="388.328" y="79.3617" width="560.702" height="628.925" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="-47.6781" dy="26.0062"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.156863 0 0 0 0 0.164706 0 0 0 0 0.176471 0 0 0 1 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_588_2165"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_588_2165" result="shape"/>
</filter>
<filter id="filter3_d_588_2165" x="599.398" y="167.569" width="181.762" height="256.318" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dx="-47.6781" dy="26.0062"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.156863 0 0 0 0 0.164706 0 0 0 0 0.176471 0 0 0 1 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_588_2165"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_588_2165" result="shape"/>
</filter>
<clipPath id="clip0_588_2165">
<rect width="1326" height="571" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 8.6 KiB

26
tsconfig.json Normal file
View File

@@ -0,0 +1,26 @@
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx"
},
"include": [
"src"
]
}