feat: finish my pages overview page according to wireframe

This commit is contained in:
Simon Emanuelsson
2024-04-02 10:26:12 +02:00
parent d902a5a704
commit 8c8fa2d02c
48 changed files with 1161 additions and 91 deletions

View File

@@ -0,0 +1,78 @@
export const challenges = {
journeys: [
{
tag: "After work queen",
title: "Try 3 Hotel Bars, Pocket 200 Points",
},
{
tag: "Dine & Shine",
title: "Visit 3 scandic Restaurants, Earn 150 Points",
},
],
victories: [
{
tag: "Capital Explorer",
title: "Stay in 3 scandic hotels, in three Capitals, Gain 2000 Points",
},
{
tag: "Friends Feast",
title: "Dine with 3 Buddies, Snag a Free Breakfast",
},
{
tag: "Eco Warrior",
title: "Choose Green, Get 500 Points",
},
],
}
export const shortcuts = [
{
href: "#",
title: "Scandic Friends shop",
},
{
href: "#",
title: "Fire and safety",
},
{
href: "#",
title: "Our sustainability work",
},
{
href: "#",
title: "How you earn points",
},
{
href: "#",
title: "How you use points",
},
{
href: "#",
title: "Missing points",
},
{
href: "#",
title: "Our term and conditions",
},
]
export const stays = [
{
dateArrive: new Date("04 27 2024"),
dateDepart: new Date("04 28 2024"),
guests: 2,
hotel: "Scandic Helsinki Hub",
},
{
dateArrive: new Date("05 27 2024"),
dateDepart: new Date("05 28 2024"),
guests: 2,
hotel: "Scandic Örebro Central",
},
{
dateArrive: new Date("06 27 2024"),
dateDepart: new Date("06 28 2024"),
guests: 2,
hotel: "Scandic Oslo City",
},
]

View File

@@ -1,5 +1,6 @@
import { firaSans } from "@/app/[lang]/(live)/fonts"
import { firaMono, firaSans } from "@/app/[lang]/(live)/fonts"
import Breadcrumbs from "@/components/MyPages/Header/Breadcrumbs"
import Header from "@/components/MyPages/Header"
import Sidebar from "@/components/MyPages/Sidebar"
@@ -12,7 +13,9 @@ export default function MyPagesLayout({
params,
}: React.PropsWithChildren<LayoutArgs<LangParams>>) {
return (
<section className={`${firaSans.variable} ${styles.page}`}>
<section
className={`${firaMono.variable} ${firaSans.variable} ${styles.page}`}
>
<Header lang={params.lang} />
<section className={styles.content}>
<Sidebar />

View File

@@ -1,8 +1,3 @@
.container {
display: grid;
gap: 2.2rem;
}
.blocks {
display: grid;
gap: 4.2rem;
@@ -10,18 +5,10 @@
padding-right: 2rem;
}
.header {
display: none;
}
@media screen and (min-width: 950px) {
.blocks {
gap: 6.4rem;
padding-left: 0;
padding-right: 0;
}
.header {
display: block;
}
}

View File

@@ -1,8 +1,10 @@
import { serverClient } from "@/lib/trpc/server"
import { challenges, shortcuts, stays } from "./_constants"
import Challenges from "@/components/MyPages/Blocks/Challenges"
import Overview from "@/components/MyPages/Blocks/Overview"
import OverviewMobile from "@/components/MyPages/Blocks/Overview/Mobile"
import Title from "@/components/MyPages/Title"
import Shortcuts from "@/components/MyPages/Blocks/Shortcuts"
import UpcomingStays from "@/components/MyPages/Blocks/UpcomingStays"
import styles from "./page.module.css"
@@ -11,16 +13,24 @@ import type { LangParams, PageArgs } from "@/types/params"
export default async function MyPage({ params }: PageArgs<LangParams>) {
const data = await serverClient().user.get()
const user = {
...data,
journeys: challenges.journeys,
membershipId: 30812404844732,
nights: 14,
points: 20720,
qualifyingPoints: 5000,
shortcuts,
stays,
victories: challenges.victories,
}
return (
<section className={styles.container}>
<header className={styles.header}>
<Title uppercase>Good morning {data.name}</Title>
</header>
<section className={styles.blocks}>
<Overview />
<OverviewMobile />
<UpcomingStays lang={params.lang} />
</section>
<section className={styles.blocks}>
<Overview user={user} />
<UpcomingStays lang={params.lang} stays={user.stays} />
{/* Deals You Can't Miss - TBD */}
<Challenges journeys={user.journeys} victories={user.victories} />
<Shortcuts shortcuts={user.shortcuts} />
</section>
)
}

View File

@@ -1,4 +1,10 @@
import { Fira_Sans } from "next/font/google"
import { Fira_Mono, Fira_Sans } from "next/font/google"
export const firaMono = Fira_Mono({
subsets: ["latin"],
weight: ["400", "500", "700"],
variable: "--ff-fira-mono",
})
export const firaSans = Fira_Sans({
subsets: ["latin"],

View File

@@ -0,0 +1,157 @@
.challenges {
--card-height: 23.6rem;
--gap: 0.4rem;
--radius: 0.4rem;
display: grid;
gap: 1.6rem;
grid-template-areas:
"header"
"section"
"aside";
max-width: var(--max-width);
}
.header {
grid-area: header;
}
.subtitle {
color: var(--some-black-color, #000);
/* font-family: var(--ff-biro-script-plus); */
font-size: 1.6rem;
font-weight: 400;
line-height: 1.8rem;
margin: 0;
}
.title {
color: var(--some-black-color, #000);
/* font-family: var(--ff-brandon-text); */
font-size: 1.6rem;
font-weight: 900;
inline-size: 18rem;
line-height: 1.8rem;
margin: 0;
overflow-wrap: break-word;
padding: 0;
text-align: center;
text-transform: uppercase;
}
.section {
display: grid;
gap: 0.8rem;
grid-area: section;
}
.journeys {
display: grid;
gap: var(--gap);
grid-template-columns: 1fr 1fr;
}
.journey {
align-content: center;
background-color: var(--some-grey-color, rgba(0, 0, 0, 0.2));
border-radius: var(--radius);
display: grid;
gap: 1.2rem;
height: var(--card-height);
justify-items: center;
}
.journey:first-of-type {
background-color: var(--some-grey-color, rgba(0, 0, 0, 0.1));
}
.aside {
display: grid;
gap: 0.8rem;
grid-area: aside;
grid-template-rows: auto 1fr;
}
.victories {
display: grid;
gap: var(--gap);
grid-template-columns: 1fr 1fr;
grid-template-rows: repeat(2, minmax(11.6rem, 1fr));
}
.victory {
align-content: center;
background-color: var(--some-grey-color, rgba(0, 0, 0, 0.1));
border-radius: var(--radius);
display: grid;
gap: 0.6rem;
height: 100%;
justify-items: center;
}
.victory:first-of-type {
background-color: var(--some-grey-color, rgba(3, 3, 3, 0.3));
}
.victory:last-of-type {
background-color: var(--some-grey-color, rgba(0, 0, 0, 0.2));
}
.circle {
display: none;
}
@media screen and (max-width: 950px) {
.victory:first-of-type {
grid-row: 1 / -1;
}
}
@media screen and (min-width: 950px) {
.challenges {
gap: 2.6rem 1.5rem;
grid-template-areas:
"header header"
"section aside";
grid-template-columns: 1fr 16.6rem;
}
.journeys {
grid-template-columns: 1fr;
}
.journey .subtitle {
font-size: 2.6rem;
line-height: 3.2rem;
}
.journey .title {
font-size: 2.6rem;
inline-size: 25rem;
line-height: 3.2rem;
}
.victories {
grid-template-columns: 1fr;
grid-template-rows: var(--card-height) 1fr 1fr;
}
.circle {
align-items: center;
background-color: var(--some-white-color, #fff);
border-radius: 50%;
display: flex;
height: 2rem;
justify-content: center;
width: 2rem;
}
.victory .subtitle {
font-size: 1.3rem;
line-height: 1.6rem;
}
.victory .title {
inline-size: 13rem;
}
}

View File

@@ -0,0 +1,52 @@
import Image from "@/components/Image"
import Title from "@/components/MyPages/Title"
import styles from "./challenges.module.css"
import type { ChallengesProps } from "@/types/components/myPages/challenges"
export default function Challenges({ journeys, victories }: ChallengesProps) {
return (
<section className={styles.challenges}>
<header className={styles.header}>
<Title level="h2" uppercase>
Your Challenges Conquer & Earn!
</Title>
</header>
<section className={styles.section}>
<header>
<Title level="h3">On your journey</Title>
</header>
<section className={styles.journeys}>
{journeys.map((journey) => (
<article className={styles.journey} key={journey.title}>
<p className={styles.subtitle}>{journey.tag}</p>
<h4 className={styles.title}>{journey.title}</h4>
</article>
))}
</section>
</section>
<aside className={styles.aside}>
<header>
<Title level="h3">Previous victories</Title>
</header>
<section className={styles.victories}>
{victories.map((victory) => (
<article className={styles.victory} key={victory.title}>
<div className={styles.circle}>
<Image
alt="Checkmark Icon"
height={9}
src="/check.svg"
width={12}
/>
</div>
<p className={styles.subtitle}>{victory.tag}</p>
<h4 className={styles.title}>{victory.title}</h4>
</article>
))}
</section>
</aside>
</section>
)
}

View File

@@ -0,0 +1,20 @@
"use client"
import Button from "@/components/TempDesignSystem/Button"
import Image from "@/components/Image"
import type { User } from "@/types/user"
export default function CopyButton({
membershipId,
}: Pick<User, "membershipId">) {
function handleCopy() {
console.log(`COPIED! (${membershipId})`)
}
return (
<Button onClick={handleCopy} type="button" variant="icon">
<Image alt="Copy Icon" height={20} src="/copy.svg" width={20} />
</Button>
)
}

View File

@@ -0,0 +1,22 @@
"use client"
import Button from "@/components/TempDesignSystem/Button"
import Image from "@/components/Image"
import styles from "./btn.module.css"
export default function MembershipCardButton() {
function handleShowMembershipCard() {
console.log(`Showing membership card`)
}
return (
<Button
className={styles.membershipBtn}
onClick={handleShowMembershipCard}
type="button"
>
<span>Membership Card</span>
<Image alt="QR icon" height={20} src="/qr.svg" width={20} />
</Button>
)
}

View File

@@ -1,7 +1,7 @@
import Breadcrumbs from "@/components/MyPages/Header/Breadcrumbs"
import Title from "@/components/MyPages/Title"
import styles from "./overview.module.css"
import styles from "./mobile.module.css"
export default function OverviewMobile() {
return (

View File

@@ -0,0 +1,16 @@
.overviewMobile {
background-color: var(--some-grey-color, #f2f2f2);
left: 50%;
margin-left: -50vw;
margin-right: -50vw;
padding: 3.5rem 2rem 2rem;
position: relative;
right: 50%;
width: 100dvw;
}
@media screen and (min-width: 950px) {
.overviewMobile {
display: none;
}
}

View File

@@ -0,0 +1,5 @@
@media screen and (max-width: 950px) {
.membershipBtn {
display: none;
}
}

View File

@@ -1,5 +1,84 @@
import CopyButton from "./CopyButton"
import Divider from "@/components/TempDesignSystem/Divider"
import Image from "@/components/Image"
import MembershipCardButton from "./MembershipCardButton"
import ProgressBar from "@/components/TempDesignSystem/ProgressBar"
import Title from "@/components/MyPages/Title"
import styles from "./overview.module.css"
export default function Overview() {
return <section className={styles.overview}></section>
import type { OverviewProps } from "@/types/components/myPages/overview"
import Link from "next/link"
export default function Overview({ user }: OverviewProps) {
return (
<section className={styles.container}>
<header className={styles.header}>
<Title uppercase>Good morning {user.name}</Title>
</header>
<section className={styles.overview}>
<section className={styles.friend}>
<p className={styles.level}>Current level:</p>
<Image
alt="Good Friend"
height={70}
src="/good-friend.svg"
width={228}
/>
<h3 className={styles.name}>{user.name}</h3>
<div className={styles.membershipContainer}>
<p className={styles.membershipId}>{user.membershipId}</p>
<CopyButton membershipId={user.membershipId} />
</div>
<MembershipCardButton />
</section>
<section className={styles.stats}>
<div>
<h4 className={styles.pointsTitle}>Total Points</h4>
<Divider variant="dotted" />
<p className={styles.points}>{user.points}</p>
</div>
<div className={styles.qualifyingPoints}>
<h4 className={styles.pointsTitle}>Progress</h4>
<Divider variant="dotted" />
<div className={styles.pointsContainer}>
<div className={styles.pointsProgress}>
<Image
alt="Arrow Up Icon"
height={24}
src="/arrow_upward.svg"
width={24}
/>
<p className={styles.point}>{user.qualifyingPoints}</p>
<h5 className={styles.pointsProgressTitle}>
Qualifying points
</h5>
</div>
<div className={styles.pointsProgress}>
<Image
alt="Arrow Up Icon"
height={24}
src="/arrow_upward.svg"
width={24}
/>
<p className={styles.point}>{user.nights}</p>
<h5 className={styles.pointsProgressTitle}>Nights</h5>
</div>
</div>
</div>
<div className={styles.progress}>
<ProgressBar className={styles.progressbar} progress={70} />
<h4 className={styles.progressTitle}>Progress</h4>
<p className={styles.pointsRemaining}>
14 680 points until next level
</p>
<p className={styles.target}>Close friend</p>
</div>
</section>
<Link className={styles.link} href="#">
Go to my points
</Link>
</section>
</section>
)
}

View File

@@ -1,34 +1,294 @@
.container {
background-color: var(--some-grey-color, #f2f2f2);
}
.overview {
display: grid;
}
.friend {
align-items: center;
display: flex;
flex-direction: column;
}
.level {
color: var(--some-black-color, #000);
/* font-family: var(--ff-biro-script-plus); */
font-size: 2.1rem;
font-weight: 400;
letter-spacing: 4%;
line-height: 3.6rem;
margin-bottom: 0;
margin-top: 0;
}
.name {
color: var(--some-black-color, #111);
/* font-family: var(--ff-brandon-text); */
font-size: 2.8rem;
font-weight: 900;
letter-spacing: -3%;
line-height: 2.8rem;
margin: 1.6rem 0 1.8rem;
text-transform: uppercase;
}
.membershipContainer {
align-items: center;
display: flex;
gap: 0.8rem;
margin-bottom: 2.2rem;
}
.membershipId {
color: var(--some-black-color, #1e1e1e);
font-family: var(--ff-fira-mono);
font-size: 1.5rem;
font-weight: 500;
letter-spacing: 6%;
line-height: 1.8rem;
margin: 0;
}
.qualifyingPoints {
display: none;
}
.overviewMobile {
background-color: var(--some-grey-color, #f2f2f2);
left: 50%;
margin-left: -50vw;
margin-right: -50vw;
padding: 3.5rem 2rem 2rem;
position: relative;
right: 50%;
width: 100dvw;
.pointsTitle {
color: var(--some-grey-color, #000);
/* font-family: var(--ff-brandon-text); */
font-size: 1.5rem;
font-weight: 500;
letter-spacing: 0.6%;
line-height: 1.7rem;
margin: 0 0 0.7rem;
}
.points {
color: var(--some-black-color, #111);
/* font-family: var(--ff-brandon-text); */
font-size: 3.7rem;
font-weight: 900;
letter-spacing: -3%;
line-height: 3.7rem;
margin: 1.4rem 0;
}
.progressTitle {
color: var(--some-black-color, #000);
/* font-family: var(--ff-brandon-text); */
font-size: 1.5rem;
font-weight: 500;
letter-spacing: 0.6%;
line-height: 1.7rem;
margin: 0;
}
.pointsRemaining {
color: var(--some-grey-color, #4f4f4f);
/* font-family: var(--ff-brandon-text); */
font-size: 1.5rem;
font-weight: 500;
letter-spacing: 0.6%;
line-height: 1.7rem;
margin: 1rem 0 0;
}
.link {
color: var(--some-black-color, #111);
font-family: var(--ff-fira-sans);
font-size: 1.4rem;
font-weight: 600;
justify-self: flex-end;
letter-spacing: 1.2%;
line-height: 2rem;
margin-top: 2.8rem;
text-decoration: none;
}
.target {
color: var(--some-black-color, #000);
/* font-family: var(--ff-biro-script-plus); */
font-size: 1.8rem;
font-weight: 400;
letter-spacing: 4%;
line-height: 3rem;
margin: 0;
text-align: right;
}
@media screen and (max-width: 950px) {
.container {
/* Full-width override styling */
left: 50%;
margin-left: -50vw;
margin-right: -50vw;
padding: 0 2rem 2rem;
position: relative;
right: 50%;
width: 100dvw;
}
.header {
margin-bottom: 1rem;
}
.level {
margin-bottom: 1rem;
transform: translate(-60%, 40%) rotate(-20deg);
}
.progress {
display: flex;
flex-direction: column;
}
.progressTitle {
order: 0;
}
.pointsRemaining {
margin-bottom: 0.8rem;
margin-top: 0.6rem;
order: 1;
}
.progressbar {
order: 2;
}
.target {
position: absolute;
right: 2rem;
transform: rotate(-15deg) translateY(-50%);
}
}
@media screen and (min-width: 950px) {
.container {
background-color: var(--some-white-color, #fff);
display: grid;
gap: 2.2rem;
}
.overview {
background-color: var(--some-grey-color, #f2f2f2);
border-radius: 0.8rem;
display: block;
height: 35rem;
gap: 4rem;
grid-template-columns: 1fr 1fr;
justify-content: center;
left: unset;
margin-left: unset;
margin-right: unset;
max-width: var(--max-width);
padding: 3.5rem 2rem;
position: static;
right: unset;
width: 100%;
}
.overviewMobile {
.friend {
justify-self: flex-end;
}
.level {
margin-bottom: 2.4rem;
}
.name {
margin: 3rem 0 1.8rem;
}
.membershipContainer {
margin-bottom: 4rem;
}
.stats {
display: flex;
flex-direction: column;
gap: 3rem;
max-width: 32rem;
}
.qualifyingPoints {
display: block;
}
.pointsTitle {
color: var(--some-grey-color, #4f4f4f);
font-size: 1.2rem;
}
.points {
margin: 1.4rem 0 0;
}
.pointsContainer {
display: grid;
gap: 3.8rem;
grid-template-columns: auto 1fr;
margin-top: 1.5rem;
}
.pointsProgress {
align-items: center;
display: grid;
gap: 1rem;
grid-template-columns: auto 1fr;
}
.point {
/* font-family: var(--ff-brandon-text); */
font-size: 2.7rem;
font-weight: 900;
line-height: 2.7rem;
margin: 0;
}
.pointsProgressTitle {
font-family: var(--ff-fira-sans);
font-size: 1.2rem;
font-weight: 400;
letter-spacing: 0.6%;
line-height: 1.4rem;
grid-column: 1/-1;
margin: 0;
}
.progressTitle {
display: none;
}
.pointsRemaining {
font-size: 1.2rem;
}
.target {
position: relative;
}
.target::after {
--height: 3.2rem;
--width: 4.5rem;
background-image: url("/arrow_biro.svg");
background-repeat: no-repeat;
content: " ";
display: inline-block;
height: var(--height);
position: relative;
top: calc(var(--height) - var(--width));
width: var(--width);
}
.link {
display: none;
}
}
@media screen and (min-width: 1100px) {
.overview {
gap: 10rem;
}
}

View File

@@ -0,0 +1,37 @@
import Image from "@/components/Image"
import Link from "next/link"
import Title from "@/components/MyPages/Title"
import styles from "./shortcuts.module.css"
import type { ShortcutsProps } from "@/types/components/myPages/shortcuts"
export default function Shortcuts({ shortcuts }: ShortcutsProps) {
return (
<section className={styles.shortcuts}>
<header className={styles.header}>
<Title level="h2" uppercase>
Handy Shortcuts
</Title>
<p className={styles.subtitle}>The community at your fingertips</p>
</header>
<section className={styles.links}>
{shortcuts.map((shortcut) => (
<Link
className={styles.link}
href={shortcut.href}
key={shortcut.title}
>
<span>{shortcut.title}</span>
<Image
alt="Chevron Icon"
height={20}
src="/chevron.svg"
width={20}
/>
</Link>
))}
</section>
</section>
)
}

View File

@@ -0,0 +1,39 @@
.shortcuts {
display: grid;
gap: 2rem;
max-width: var(--max-width);
}
.header {
display: grid;
gap: 2rem;
}
.subtitle {
font-family: var(--ff-fira-sans);
font-size: 1.8rem;
font-weight: 400;
line-height: 2.2rem;
margin: 0;
}
.links {
display: grid;
gap: 0.8rem;
}
.link {
align-items: center;
border: 0.1rem solid var(--some-grey-color, #d9d9d9);
border-radius: 0.4rem;
color: var(--some-black-color, #000);
display: flex;
font-family: var(--ff-fira-sans);
font-size: 1.6rem;
font-weight: 700;
gap: 0.4rem;
justify-content: space-between;
line-height: 2.2rem;
padding: 1.4rem 2rem;
text-decoration: none;
}

View File

@@ -6,7 +6,7 @@ import Title from "@/components/MyPages/Title"
import styles from "./stay.module.css"
import type { LangParams } from "@/types/params"
import type { StayProps } from "@/types/components/myPages/stay"
import type { StayProps } from "@/types/components/myPages/stays"
export default function Stay({
dateArrive,
@@ -36,7 +36,7 @@ export default function Stay({
/>
</div>
<footer className={styles.footer}>
<Title level="h3" uppercase>
<Title as="h4" level="h3" uppercase>
{hotel}
</Title>
<section className={styles.container}>

View File

@@ -4,34 +4,19 @@ import Title from "@/components/MyPages/Title"
import styles from "./upcoming.module.css"
import type { LangParams } from "@/types/params"
import type { StaysProps } from "@/types/components/myPages/stays"
const stays = [
{
dateArrive: new Date("04 27 2024"),
dateDepart: new Date("04 28 2024"),
guests: 2,
hotel: "Scandic Helsinki Hub",
},
{
dateArrive: new Date("05 27 2024"),
dateDepart: new Date("05 28 2024"),
guests: 2,
hotel: "Scandic Örebro Central",
},
{
dateArrive: new Date("06 27 2024"),
dateDepart: new Date("06 28 2024"),
guests: 2,
hotel: "Scandic Oslo City",
},
]
export default function UpcomingStays({ lang }: LangParams) {
export default function UpcomingStays({
lang,
stays,
}: StaysProps & LangParams) {
return (
<section className={styles.container}>
<Title level="h2" uppercase>
Your upcoming stays
</Title>
<header>
<Title level="h2" uppercase>
Your upcoming stays
</Title>
</header>
<section className={styles.stays}>
{stays.map((stay) => (
<Stay key={stay.hotel} {...stay} lang={lang} />

View File

@@ -1,6 +1,7 @@
.container {
position: sticky;
top: 0;
z-index: 999;
}
.header {
@@ -15,7 +16,9 @@
}
.breadcrumbs {
display: none;
background-color: var(--some-grey-color, #f2f2f2);
display: block;
padding-left: 2rem;
}
@media screen and (min-width: 950px) {
@@ -30,7 +33,7 @@
}
.breadcrumbs {
display: block;
background-color: var(--some-white-color, #fff);
padding-left: 2.4rem;
}
}

View File

@@ -28,13 +28,15 @@ const headingStyles = cva(styles.heading, config)
export default function Title({
as,
children,
className = "",
level = "h1",
uppercase = false,
}: HeadingProps) {
const Hx = level
const className = headingStyles({
const classNames = headingStyles({
className,
text: uppercase ? "uppercase" : undefined,
type: as ?? level,
})
return <Hx className={className}>{children}</Hx>
return <Hx className={classNames}>{children}</Hx>
}

View File

@@ -19,16 +19,17 @@
}
.h3 {
font-size: 1.8rem;
line-height: 2.2rem;
}
.h4 {
font-size: 1.6rem;
line-height: 1.8rem;
}
.h4 {
font-size: 1.4rem;
}
.h5 {
font-size: 1.2rem;
font-size: 1.3rem;
}
.h6 {

View File

@@ -0,0 +1,26 @@
.btn {
background: none;
border: none;
cursor: pointer;
margin: 0;
padding: 0;
}
.default {
align-items: center;
background-color: var(--some-white-color, #fff);
border-radius: 4rem;
color: var(--some-grey-color, #111);
display: flex;
font-family: var(--ff-fira-sans);
font-size: 1.8rem;
font-weight: 600;
gap: 1.6rem;
letter-spacing: 1%;
line-height: 2.2rem;
padding: 1.3rem 3rem;
}
.icon {
font-size: 1.8rem;
}

View File

@@ -0,0 +1,9 @@
import { buttonVariants } from "./variants"
import type { VariantProps } from "class-variance-authority"
export interface ButtonProps
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
VariantProps<typeof buttonVariants> {
asChild?: boolean
}

View File

@@ -0,0 +1,17 @@
"use client"
import { Slot } from "@radix-ui/react-slot"
import { buttonVariants } from "./variants"
import type { ButtonProps } from "./button"
export default function Button({
asChild = false,
className,
variant,
...props
}: ButtonProps) {
const Comp = asChild ? Slot : "button"
return <Comp className={buttonVariants({ className, variant })} {...props} />
}

View File

@@ -0,0 +1,15 @@
import { cva } from "class-variance-authority"
import styles from "./button.module.css"
export const buttonVariants = cva(styles.btn, {
variants: {
variant: {
default: styles.default,
icon: styles.icon,
},
},
defaultVariants: {
variant: "default",
},
})

View File

@@ -0,0 +1,9 @@
.divider {
border-bottom-color: var(--some-grey-color, #111);
border-bottom-style: solid;
border-bottom-width: 1px;
}
.dotted {
border-bottom-style: dotted;
}

View File

@@ -0,0 +1,7 @@
import { dividerVariants } from "./variants"
import type { VariantProps } from "class-variance-authority"
export interface DividerProps
extends React.HTMLAttributes<HTMLDivElement>,
VariantProps<typeof dividerVariants> {}

View File

@@ -0,0 +1,7 @@
import { dividerVariants } from "./variants"
import type { DividerProps } from "./divider"
export default function Divider({ variant }: DividerProps) {
return <div className={dividerVariants({ variant })} />
}

View File

@@ -0,0 +1,15 @@
import { cva } from "class-variance-authority"
import styles from "./divider.module.css"
export const dividerVariants = cva(styles.divider, {
variants: {
variant: {
default: styles.default,
dotted: styles.dotted,
},
},
defaultVariants: {
variant: "default",
},
})

View File

@@ -0,0 +1,12 @@
import styles from "./progressbar.module.css"
import type { ProgressbarProps } from "./progressbar"
export default function ProgressBar({ className, progress }: ProgressbarProps) {
className = className ?? ""
return (
<div className={`${className} ${styles.bar}`}>
<div className={styles.progress} style={{ width: `${progress}%` }} />
</div>
)
}

View File

@@ -0,0 +1,12 @@
.bar {
background-color: var(--some-white-color, #fff);
border-radius: 4rem;
height: 2rem;
width: 100%;
}
.progress {
background-color: var(--some-black-color, #1f1f1f);
border-radius: 4rem;
height: 2rem;
}

View File

@@ -0,0 +1,3 @@
export interface ProgressbarProps extends React.HTMLAttributes<HTMLDivElement> {
progress: number
}

View File

@@ -12,6 +12,9 @@ function initializeTrpcClient() {
links: [
httpBatchLink({
transformer,
/**
* This is locally in Next.js
*/
url: "http://localhost:3000/api/trpc",
}),
],

48
package-lock.json generated
View File

@@ -11,6 +11,7 @@
"dependencies": {
"@contentstack/live-preview-utils": "^1.4.0",
"@netlify/plugin-nextjs": "^5.0.0-beta.9",
"@radix-ui/react-slot": "^1.0.2",
"@scandic-hotels/design-system": "git+https://x-token-auth:$DESIGN_SYSTEM_ACCESS_TOKEN@bitbucket.org/scandic-swap/design-system.git#v0.1.0-rc.2",
"@t3-oss/env-nextjs": "^0.9.2",
"@tanstack/react-query": "^5.28.6",
@@ -94,7 +95,6 @@
"version": "7.23.8",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz",
"integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==",
"dev": true,
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -681,6 +681,41 @@
"node": ">=14"
}
},
"node_modules/@radix-ui/react-compose-refs": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz",
"integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==",
"dependencies": {
"@babel/runtime": "^7.13.10"
},
"peerDependencies": {
"@types/react": "*",
"react": "^16.8 || ^17.0 || ^18.0"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
}
},
"node_modules/@radix-ui/react-slot": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz",
"integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==",
"dependencies": {
"@babel/runtime": "^7.13.10",
"@radix-ui/react-compose-refs": "1.0.1"
},
"peerDependencies": {
"@types/react": "*",
"react": "^16.8 || ^17.0 || ^18.0"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
}
}
},
"node_modules/@react-aria/breadcrumbs": {
"version": "3.5.11",
"resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.11.tgz",
@@ -2411,13 +2446,13 @@
"version": "15.7.11",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz",
"integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==",
"dev": true
"devOptional": true
},
"node_modules/@types/react": {
"version": "18.2.47",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.47.tgz",
"integrity": "sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==",
"dev": true,
"devOptional": true,
"dependencies": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@@ -2446,7 +2481,7 @@
"version": "0.16.8",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz",
"integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==",
"dev": true
"devOptional": true
},
"node_modules/@types/sinonjs__fake-timers": {
"version": "8.1.1",
@@ -3883,7 +3918,7 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"dev": true
"devOptional": true
},
"node_modules/cypress": {
"version": "13.6.6",
@@ -8996,8 +9031,7 @@
"node_modules/regenerator-runtime": {
"version": "0.14.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
"dev": true
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
"node_modules/regexp.prototype.flags": {
"version": "1.5.1",

View File

@@ -19,6 +19,7 @@
"dependencies": {
"@contentstack/live-preview-utils": "^1.4.0",
"@netlify/plugin-nextjs": "^5.0.0-beta.9",
"@radix-ui/react-slot": "^1.0.2",
"@scandic-hotels/design-system": "git+https://x-token-auth:$DESIGN_SYSTEM_ACCESS_TOKEN@bitbucket.org/scandic-swap/design-system.git#v0.1.0-rc.2",
"@t3-oss/env-nextjs": "^0.9.2",
"@tanstack/react-query": "^5.28.6",

5
public/arrow_biro.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

8
public/arrow_upward.svg Normal file
View File

@@ -0,0 +1,8 @@
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0_1572_5258" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="25" height="25">
<rect x="0.958984" y="0.5" width="24" height="24" fill="#D9D9D9"/>
</mask>
<g mask="url(#mask0_1572_5258)">
<path d="M11.959 20.5V8.325L6.35898 13.925L4.95898 12.5L12.959 4.5L20.959 12.5L19.559 13.925L13.959 8.325V20.5H11.959Z" fill="#1C1B1F"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 467 B

3
public/check.svg Normal file
View File

@@ -0,0 +1,3 @@
<svg width="12" height="9" viewBox="0 0 12 9" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.00016 8.6884L0.355957 5.0442L1.40016 4L4.00016 6.6L10.6002 0L11.6444 1.0442L4.00016 8.6884Z" fill="#1C1B1F"/>
</svg>

After

Width:  |  Height:  |  Size: 223 B

8
public/chevron.svg Normal file
View File

@@ -0,0 +1,8 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0_1572_4486" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="20">
<rect width="20" height="20" fill="#D9D9D9"/>
</mask>
<g mask="url(#mask0_1572_4486)">
<path d="M5.99175 17.7111L4.87158 16.591L11.4629 9.99961L4.87158 3.40825L5.99175 2.28809L13.7033 9.99961L5.99175 17.7111Z" fill="#1C1B1F"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 449 B

8
public/copy.svg Normal file
View File

@@ -0,0 +1,8 @@
<svg width="20" height="21" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0_1572_4523" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="21">
<rect y="0.890625" width="20" height="20" fill="#D9D9D9"/>
</mask>
<g mask="url(#mask0_1572_4523)">
<path d="M7.54804 15.4742C7.17293 15.4742 6.85587 15.3447 6.59685 15.0857C6.33783 14.8267 6.20831 14.5096 6.20831 14.1345V4.64737C6.20831 4.27226 6.33783 3.95519 6.59685 3.69616C6.85587 3.43713 7.17293 3.30762 7.54804 3.30762H15.0352C15.4103 3.30762 15.7273 3.43713 15.9864 3.69616C16.2454 3.95519 16.3749 4.27226 16.3749 4.64737V14.1345C16.3749 14.5096 16.2454 14.8267 15.9864 15.0857C15.7273 15.3447 15.4103 15.4742 15.0352 15.4742H7.54804ZM7.54804 14.3909H15.0352C15.0993 14.3909 15.158 14.3642 15.2115 14.3108C15.2649 14.2574 15.2916 14.1986 15.2916 14.1345V4.64737C15.2916 4.58326 15.2649 4.52449 15.2115 4.47106C15.158 4.41764 15.0993 4.39093 15.0352 4.39093H7.54804C7.48393 4.39093 7.42517 4.41764 7.37175 4.47106C7.31832 4.52449 7.2916 4.58326 7.2916 4.64737V14.1345C7.2916 14.1986 7.31832 14.2574 7.37175 14.3108C7.42517 14.3642 7.48393 14.3909 7.54804 14.3909ZM4.96473 18.0575C4.58963 18.0575 4.27257 17.928 4.01354 17.669C3.75451 17.41 3.625 17.0929 3.625 16.7178V6.68901C3.625 6.53528 3.67642 6.40657 3.77927 6.30289C3.8821 6.19921 4.00977 6.14737 4.16227 6.14737C4.31476 6.14737 4.44389 6.19921 4.54967 6.30289C4.65543 6.40657 4.70831 6.53528 4.70831 6.68901V16.7178C4.70831 16.7819 4.73502 16.8407 4.78844 16.8941C4.84187 16.9475 4.90063 16.9742 4.96473 16.9742H12.9935C13.1473 16.9742 13.276 17.0257 13.3796 17.1285C13.4833 17.2313 13.5352 17.359 13.5352 17.5115C13.5352 17.664 13.4833 17.7931 13.3796 17.8989C13.276 18.0047 13.1473 18.0575 12.9935 18.0575H4.96473Z" fill="#060606"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

45
public/good-friend.svg Normal file
View File

@@ -0,0 +1,45 @@
<svg width="228" height="71" viewBox="0 0 228 71" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1572_4526)">
<path d="M63.7031 41.1195C63.6856 41.1021 63.6681 41.0847 63.6506 41.0673C63.6332 41.0499 63.6157 41.0325 63.5982 41.0151C63.5807 40.9977 63.5633 40.9803 63.5458 40.9629C63.5283 40.9456 63.5108 40.9282 63.4934 40.9108C63.4759 40.8934 63.4584 40.876 63.4409 40.8586C63.4235 40.8412 63.406 40.8238 63.3885 40.8064C63.371 40.789 63.3536 40.7716 63.3361 40.7542C63.3186 40.7368 63.3011 40.7194 63.2837 40.702C63.2662 40.6847 63.2487 40.6673 63.2312 40.6499C63.2138 40.6325 63.1963 40.6151 63.1788 40.5977C63.1613 40.5803 63.1439 40.5629 63.1264 40.5455C63.1089 40.5281 63.0914 40.5107 63.074 40.4933C63.0565 40.4759 63.039 40.4585 63.0215 40.4412C63.0041 40.4238 62.9866 40.4064 62.9691 40.389C62.9516 40.3716 62.9342 40.3542 62.9167 40.3368C62.8992 40.3194 62.8817 40.302 62.8643 40.2846C62.8468 40.2672 62.8293 40.2498 62.8118 40.2324C62.7944 40.215 62.7769 40.1977 62.7594 40.1803C62.7419 40.1629 62.7245 40.1455 62.707 40.1281C62.6895 40.1107 62.672 40.0933 62.6546 40.0759C62.6371 40.0585 62.6196 40.0411 62.6021 40.0237C62.5847 40.0063 62.5672 39.9889 62.5497 39.9715C62.5322 39.9542 62.5148 39.9368 62.4973 39.9194C62.4798 39.902 62.4623 39.8846 62.4449 39.8672C62.5882 40.0168 62.6825 40.215 62.6825 40.4272V45.0677C62.6825 45.492 62.34 45.8782 61.8717 45.8782H50.0234V50.5429H51.3551V47.2035H63.2033C63.6716 47.2035 64.0141 46.8209 64.0141 46.393V41.7526C64.0141 41.5265 63.9128 41.3178 63.752 41.1647C63.7345 41.1473 63.7171 41.1299 63.6996 41.1125L63.7031 41.1195Z" fill="#ED2027"/>
<path d="M61.5929 53.5092C61.5754 53.4918 61.5579 53.4744 61.5404 53.457C61.523 53.4396 61.5055 53.4222 61.488 53.4048C61.4705 53.3874 61.4531 53.37 61.4356 53.3527C61.4181 53.3353 61.4006 53.3179 61.3832 53.3005C61.3657 53.2831 61.3482 53.2657 61.3307 53.2483C61.3133 53.2309 61.2958 53.2135 61.2783 53.1961C61.2608 53.1787 61.2434 53.1613 61.2259 53.1439C61.2084 53.1265 61.1909 53.1092 61.1735 53.0918C61.156 53.0744 61.1385 53.057 61.121 53.0396C61.1036 53.0222 61.0861 53.0048 61.0686 52.9874C61.0511 52.97 61.0337 52.9526 61.0162 52.9352C60.9987 52.9178 60.9812 52.9004 60.9637 52.883C60.9463 52.8656 60.9288 52.8483 60.9113 52.8309C60.8938 52.8135 60.8764 52.7961 60.8589 52.7787C60.8414 52.7613 60.8239 52.7439 60.8065 52.7265C60.789 52.7091 60.7715 52.6917 60.754 52.6743C60.7366 52.6569 60.7191 52.6395 60.7016 52.6221C60.6841 52.6048 60.6667 52.5874 60.6492 52.57C60.6317 52.5526 60.6142 52.5352 60.5968 52.5178C60.5793 52.5004 60.5618 52.483 60.5443 52.4656C60.5269 52.4482 60.5094 52.4308 60.4919 52.4134C60.4744 52.396 60.457 52.3786 60.4395 52.3613C60.422 52.3439 60.4045 52.3265 60.3871 52.3091C60.3766 52.2986 60.3661 52.2882 60.3591 52.2812C60.4954 52.4274 60.5863 52.6152 60.5863 52.8169V57.4574C60.5863 57.8818 60.2018 58.2644 59.7719 58.2644H50.0207V68.6097C50.0207 69.0341 49.6363 69.4167 49.2099 69.4167H44.163C43.9289 69.4167 43.7331 69.3193 43.5898 69.1697C43.6073 69.1871 43.6213 69.2045 43.6388 69.2185C43.6562 69.2358 43.6737 69.2532 43.6912 69.2706C43.7087 69.288 43.7262 69.3054 43.7436 69.3228C43.7611 69.3402 43.7786 69.3576 43.7961 69.375C43.8135 69.3924 43.831 69.4098 43.8485 69.4272C43.866 69.4446 43.8834 69.462 43.9009 69.4793C43.9184 69.4967 43.9359 69.5141 43.9533 69.5315C43.9708 69.5489 43.9883 69.5663 44.0058 69.5837C44.0232 69.6011 44.0407 69.6185 44.0582 69.6359C44.0757 69.6533 44.0931 69.6707 44.1106 69.6881C44.1281 69.7055 44.1456 69.7228 44.163 69.7402C44.1805 69.7576 44.198 69.775 44.2155 69.7924C44.2329 69.8098 44.2504 69.8272 44.2679 69.8446C44.2854 69.862 44.3028 69.8794 44.3203 69.8968C44.3378 69.9142 44.3553 69.9316 44.3727 69.949C44.3902 69.9663 44.4077 69.9837 44.4252 70.0011C44.4426 70.0185 44.4601 70.0359 44.4776 70.0533C44.4951 70.0707 44.5125 70.0881 44.53 70.1055C44.5475 70.1229 44.565 70.1403 44.5824 70.1577C44.5999 70.1751 44.6174 70.1925 44.6349 70.2098C44.6523 70.2272 44.6698 70.2446 44.6873 70.262C44.7048 70.2794 44.7222 70.2968 44.7397 70.3142C44.7572 70.3316 44.7747 70.349 44.7921 70.3664C44.8096 70.3838 44.8271 70.4012 44.8446 70.4186C44.862 70.436 44.8795 70.4534 44.897 70.4707C45.0438 70.6342 45.25 70.7455 45.4981 70.7455H50.545C50.9714 70.7455 51.3559 70.3629 51.3559 69.9385V59.5932H61.107C61.5334 59.5932 61.9214 59.2106 61.9214 58.7862V54.1458C61.9214 53.9197 61.8096 53.7109 61.6453 53.5614C61.6278 53.544 61.6103 53.5266 61.5929 53.5092Z" fill="#ED2027"/>
<path d="M73.2951 57.7617V68.6184C73.2951 69.0427 72.9106 69.4254 72.4842 69.4254H67.3955C67.1613 69.4254 66.9656 69.3245 66.8223 69.1784C66.8397 69.1958 66.8537 69.2132 66.8747 69.2306C66.8922 69.248 66.9096 69.2654 66.9271 69.2828C66.9446 69.3002 66.9621 69.3176 66.9795 69.3349C66.997 69.3523 67.0145 69.3697 67.032 69.3871C67.0494 69.4045 67.0669 69.4219 67.0844 69.4393C67.1019 69.4567 67.1193 69.4741 67.1368 69.4915C67.1543 69.5089 67.1718 69.5263 67.1892 69.5437C67.2067 69.5611 67.2242 69.5784 67.2417 69.5958C67.2591 69.6132 67.2766 69.6306 67.2941 69.648C67.3116 69.6654 67.329 69.6828 67.3465 69.7002C67.364 69.7176 67.3815 69.735 67.3989 69.7524C67.4164 69.7698 67.4339 69.7872 67.4514 69.8046C67.4689 69.8219 67.4863 69.8393 67.5038 69.8567C67.5213 69.8741 67.5387 69.8915 67.5562 69.9089C67.5737 69.9263 67.5912 69.9437 67.6087 69.9611C67.6261 69.9785 67.6436 69.9959 67.6611 70.0133C67.6786 70.0307 67.696 70.0481 67.7135 70.0655C67.731 70.0828 67.7485 70.1002 67.7659 70.1176C67.7834 70.135 67.8009 70.1524 67.8184 70.1698C67.8358 70.1872 67.8533 70.2046 67.8708 70.222C67.8883 70.2394 67.9057 70.2568 67.9232 70.2742C67.9407 70.2916 67.9582 70.309 67.9756 70.3263C67.9931 70.3437 68.0106 70.3611 68.0281 70.3785C68.0455 70.3959 68.063 70.4133 68.0805 70.4307C68.098 70.4481 68.1154 70.4655 68.1329 70.4829C68.2797 70.6464 68.4859 70.7577 68.7341 70.7577H73.8229C74.2493 70.7577 74.6372 70.375 74.6372 69.9507V59.094H76.1016L75.4341 57.7687H73.3056L73.2951 57.7617Z" fill="#ED2027"/>
<path d="M90.8362 50.1456C90.8362 47.5993 89.7772 45.293 88.0751 43.6267C88.0576 43.6093 88.0402 43.5919 88.0227 43.5746C88.0052 43.5572 87.9877 43.5398 87.9703 43.5224C87.9528 43.505 87.9353 43.4876 87.9178 43.4702C87.9004 43.4528 87.8829 43.4354 87.8654 43.418C87.8479 43.4006 87.8305 43.3832 87.813 43.3658C87.7955 43.3484 87.778 43.3311 87.7606 43.3137C87.7431 43.2963 87.7256 43.2789 87.7081 43.2615C87.6907 43.2441 87.6732 43.2267 87.6557 43.2093C87.6382 43.1919 87.6208 43.1745 87.6033 43.1571C87.5858 43.1397 87.5683 43.1223 87.5509 43.1049C87.5334 43.0876 87.5159 43.0702 87.4984 43.0528C87.481 43.0354 87.4635 43.018 87.446 43.0006C87.4285 42.9832 87.4111 42.9658 87.3936 42.9484C87.3761 42.931 87.3586 42.9136 87.3412 42.8962C87.3237 42.8788 87.3062 42.8614 87.2887 42.8441C87.2713 42.8267 87.2538 42.8093 87.2363 42.7919C87.2188 42.7745 87.2014 42.7571 87.1839 42.7397C87.1664 42.7223 87.1489 42.7049 87.1315 42.6875C87.114 42.6701 87.0965 42.6527 87.079 42.6353C87.0616 42.6179 87.0441 42.6006 87.0266 42.5832C87.0091 42.5658 86.9917 42.5484 86.9742 42.531C86.9567 42.5136 86.9392 42.4962 86.9218 42.4788C86.9043 42.4614 86.8868 42.444 86.8693 42.4266C86.8519 42.4092 86.8344 42.3918 86.8169 42.3744C86.7994 42.3571 86.782 42.3397 86.7645 42.3223C88.4526 43.9885 89.5011 46.2844 89.5011 48.8168C89.5011 52.7337 86.8903 55.8818 83.1716 57.3741L89.0328 68.1855C89.3333 68.7386 89.0328 69.4204 88.3058 69.4204H82.6159C82.3747 69.4204 82.1825 69.3126 82.0566 69.1908C82.0671 69.2012 82.0776 69.2117 82.0881 69.2221C82.1021 69.2395 82.123 69.2569 82.1405 69.2743C82.1545 69.2917 82.1755 69.3091 82.1929 69.3265C82.2069 69.3439 82.2279 69.3613 82.2454 69.3787C82.2594 69.396 82.2803 69.4134 82.2978 69.4308C82.3118 69.4482 82.3327 69.4656 82.3502 69.483C82.3642 69.5004 82.3852 69.5178 82.4027 69.5352C82.4166 69.5526 82.4376 69.57 82.4551 69.5874C82.4691 69.6048 82.49 69.6222 82.5075 69.6395C82.5215 69.6569 82.5425 69.6743 82.5599 69.6917C82.5739 69.7091 82.5949 69.7265 82.6124 69.7439C82.6263 69.7613 82.6473 69.7787 82.6648 69.7961C82.6788 69.8135 82.6997 69.8309 82.7172 69.8483C82.7312 69.8657 82.7522 69.883 82.7696 69.9004C82.7836 69.9178 82.8046 69.9352 82.8221 69.9526C82.836 69.97 82.857 69.9874 82.8745 70.0048C82.8885 70.0222 82.9094 70.0396 82.9269 70.057C82.9409 70.0744 82.9619 70.0918 82.9793 70.1092C82.9933 70.1266 83.0143 70.1439 83.0318 70.1613C83.0457 70.1787 83.0667 70.1961 83.0842 70.2135C83.0982 70.2309 83.1191 70.2483 83.1366 70.2657C83.1506 70.2831 83.1716 70.3005 83.189 70.3179C83.203 70.3353 83.224 70.3527 83.2415 70.3701C83.2554 70.3874 83.2764 70.4048 83.2939 70.4222C83.3079 70.4396 83.3288 70.457 83.3463 70.4744C83.4686 70.6135 83.6818 70.7492 83.951 70.7492H89.6409C90.3679 70.7492 90.6685 70.0674 90.3679 69.5143L84.5067 58.7029C88.2289 57.2141 90.8362 54.0625 90.8362 50.1456Z" fill="#ED2027"/>
<path d="M80.9565 47.0402C81.0893 47.0402 81.2186 47.0541 81.3479 47.075C81.2745 46.6923 81.1312 46.3375 80.9285 46.014C80.5266 45.8296 80.0897 45.7148 79.6284 45.7148H73.2988V50.8875H74.6304V47.0367H80.96L80.9565 47.0402Z" fill="#ED2027"/>
<path d="M102.144 41.1225C102.126 41.1051 102.109 41.0877 102.091 41.0703C102.074 41.0529 102.056 41.0355 102.039 41.0181C102.021 41.0007 102.004 40.9833 101.987 40.9659C101.969 40.9485 101.952 40.9312 101.934 40.9138C101.917 40.8964 101.899 40.879 101.882 40.8616C101.864 40.8442 101.847 40.8268 101.829 40.8094C101.812 40.792 101.794 40.7746 101.777 40.7572C101.759 40.7398 101.742 40.7224 101.724 40.705C101.707 40.6876 101.689 40.6703 101.672 40.6529C101.654 40.6355 101.637 40.6181 101.62 40.6007C101.602 40.5833 101.585 40.5659 101.567 40.5485C101.55 40.5311 101.532 40.5137 101.515 40.4963C101.497 40.4789 101.48 40.4615 101.462 40.4441C101.445 40.4268 101.427 40.4094 101.41 40.392C101.392 40.3746 101.375 40.3572 101.357 40.3398C101.34 40.3224 101.322 40.305 101.305 40.2876C101.287 40.2702 101.27 40.2528 101.253 40.2354C101.235 40.218 101.218 40.2006 101.2 40.1833C101.183 40.1659 101.165 40.1485 101.148 40.1311C101.13 40.1137 101.113 40.0963 101.095 40.0789C101.078 40.0615 101.06 40.0441 101.043 40.0267C101.025 40.0093 101.008 39.9919 100.99 39.9745C100.973 39.9571 100.955 39.9398 100.938 39.9224C100.928 39.9119 100.917 39.9015 100.91 39.8945C101.046 40.0406 101.137 40.2285 101.137 40.4302V68.6102C101.137 69.0346 100.753 69.4172 100.323 69.4172H95.1886C94.9859 69.4172 94.7972 69.3268 94.6504 69.1911C94.6609 69.2016 94.6679 69.212 94.6784 69.219C94.6958 69.2363 94.7133 69.2537 94.7308 69.2711C94.7483 69.2885 94.7657 69.3059 94.7832 69.3233C94.8007 69.3407 94.8182 69.3581 94.8356 69.3755C94.8531 69.3929 94.8706 69.4103 94.8881 69.4277C94.9055 69.4451 94.923 69.4625 94.9405 69.4798C94.958 69.4972 94.9754 69.5146 94.9929 69.532C95.0104 69.5494 95.0279 69.5668 95.0453 69.5842C95.0628 69.6016 95.0803 69.619 95.0978 69.6364C95.1152 69.6538 95.1327 69.6712 95.1502 69.6886C95.1677 69.706 95.1851 69.7233 95.2026 69.7407C95.2201 69.7581 95.2376 69.7755 95.255 69.7929C95.2725 69.8103 95.29 69.8277 95.3075 69.8451C95.3249 69.8625 95.3424 69.8799 95.3599 69.8973C95.3774 69.9147 95.3948 69.9321 95.4123 69.9495C95.4298 69.9668 95.4473 69.9842 95.4647 70.0016C95.4822 70.019 95.4997 70.0364 95.5172 70.0538C95.5346 70.0712 95.5521 70.0886 95.5696 70.106C95.5871 70.1234 95.6045 70.1408 95.622 70.1582C95.6395 70.1756 95.657 70.193 95.6744 70.2104C95.6919 70.2277 95.7094 70.2451 95.7269 70.2625C95.7443 70.2799 95.7618 70.2973 95.7793 70.3147C95.7968 70.3321 95.8142 70.3495 95.8317 70.3669C95.8492 70.3843 95.8667 70.4017 95.8841 70.4191C95.9016 70.4365 95.9191 70.4538 95.9366 70.4712C96.0869 70.6347 96.2966 70.746 96.5237 70.746H101.658C102.084 70.746 102.472 70.3634 102.472 69.939V41.759C102.472 41.5329 102.36 41.3242 102.196 41.1747C102.179 41.1573 102.161 41.1399 102.144 41.1225Z" fill="#ED2027"/>
<path d="M127.989 64.6609C127.972 64.6435 127.954 64.6261 127.937 64.6087C127.92 64.5913 127.902 64.574 127.885 64.5566C127.867 64.5392 127.85 64.5218 127.832 64.5044C127.815 64.487 127.797 64.4696 127.78 64.4522C127.762 64.4348 127.745 64.4174 127.727 64.4C127.71 64.3826 127.692 64.3652 127.675 64.3478C127.657 64.3305 127.64 64.3131 127.622 64.2957C127.605 64.2783 127.588 64.2609 127.57 64.2435C127.553 64.2261 127.535 64.2087 127.518 64.1913C127.5 64.1739 127.483 64.1565 127.465 64.1391C127.448 64.1217 127.43 64.1043 127.413 64.087C127.395 64.0696 127.378 64.0522 127.36 64.0348C127.343 64.0174 127.325 64 127.308 63.9826C127.29 63.9652 127.273 63.9478 127.255 63.9304C127.238 63.913 127.221 63.8956 127.203 63.8782C127.186 63.8608 127.168 63.8435 127.151 63.8261C127.133 63.8087 127.116 63.7913 127.098 63.7739C127.081 63.7565 127.063 63.7391 127.046 63.7217C127.028 63.7043 127.011 63.6869 126.993 63.6695C126.976 63.6521 126.958 63.6347 126.941 63.6173C126.923 63.6 126.906 63.5826 126.888 63.5652C126.871 63.5478 126.854 63.5304 126.836 63.513C126.819 63.4956 126.801 63.4782 126.784 63.4608C126.77 63.4434 126.752 63.426 126.735 63.4121C126.878 63.5617 126.969 63.76 126.969 63.9722V68.6126C126.969 69.037 126.626 69.4196 126.158 69.4196H108.452C108.218 69.4196 108.022 69.3222 107.879 69.1726C107.893 69.19 107.91 69.2074 107.928 69.2213C107.945 69.2387 107.963 69.2561 107.98 69.2735C107.998 69.2909 108.015 69.3083 108.033 69.3257C108.05 69.3431 108.068 69.3605 108.085 69.3779C108.103 69.3953 108.12 69.4127 108.138 69.43C108.155 69.4474 108.172 69.4648 108.19 69.4822C108.207 69.4996 108.225 69.517 108.242 69.5344C108.26 69.5518 108.277 69.5692 108.295 69.5866C108.312 69.604 108.33 69.6214 108.347 69.6388C108.365 69.6562 108.382 69.6735 108.4 69.6909C108.417 69.7083 108.435 69.7257 108.452 69.7431C108.47 69.7605 108.487 69.7779 108.505 69.7953C108.522 69.8127 108.539 69.8301 108.557 69.8475C108.574 69.8649 108.592 69.8823 108.609 69.8997C108.627 69.917 108.644 69.9344 108.662 69.9518C108.679 69.9692 108.697 69.9866 108.714 70.004C108.732 70.0214 108.749 70.0388 108.767 70.0562C108.784 70.0736 108.802 70.091 108.819 70.1084C108.837 70.1258 108.854 70.1432 108.871 70.1606C108.889 70.1779 108.906 70.1953 108.924 70.2127C108.941 70.2301 108.959 70.2475 108.976 70.2649C108.994 70.2823 109.011 70.2997 109.029 70.3171C109.046 70.3345 109.064 70.3519 109.081 70.3693C109.099 70.3867 109.116 70.4041 109.134 70.4214C109.151 70.4388 109.169 70.4562 109.186 70.4736C109.333 70.6371 109.539 70.7484 109.787 70.7484H127.493C127.961 70.7484 128.304 70.3658 128.304 69.9414V65.301C128.304 65.0749 128.203 64.8662 128.042 64.7131C128.024 64.6957 128.007 64.6783 127.989 64.6609Z" fill="#ED2027"/>
<path d="M115.646 58.7451H125.397C125.823 58.7451 126.211 58.4042 126.211 57.9346V53.2942C126.211 53.0681 126.099 52.8594 125.935 52.7098C125.918 52.6924 125.9 52.675 125.883 52.6576C125.865 52.6402 125.848 52.6228 125.83 52.6054C125.813 52.5881 125.795 52.5707 125.778 52.5533C125.76 52.5359 125.743 52.5185 125.725 52.5011C125.708 52.4837 125.69 52.4663 125.673 52.4489C125.655 52.4315 125.638 52.4141 125.621 52.3967C125.603 52.3793 125.586 52.3619 125.568 52.3446C125.551 52.3272 125.533 52.3098 125.516 52.2924C125.498 52.275 125.481 52.2576 125.463 52.2402C125.446 52.2228 125.428 52.2054 125.411 52.188C125.393 52.1706 125.376 52.1532 125.358 52.1358C125.341 52.1184 125.323 52.101 125.306 52.0837C125.289 52.0663 125.271 52.0489 125.254 52.0315C125.236 52.0141 125.219 51.9967 125.201 51.9793C125.184 51.9619 125.166 51.9445 125.149 51.9271C125.131 51.9097 125.114 51.8923 125.096 51.8749C125.079 51.8576 125.061 51.8402 125.044 51.8228C125.026 51.8054 125.009 51.788 124.991 51.7706C124.974 51.7532 124.956 51.7358 124.939 51.7184C124.922 51.701 124.904 51.6836 124.887 51.6662C124.869 51.6488 124.852 51.6314 124.834 51.6141C124.817 51.5967 124.799 51.5793 124.782 51.5619C124.764 51.5445 124.747 51.5271 124.729 51.5097C124.712 51.4923 124.694 51.4749 124.677 51.4575C124.666 51.4471 124.656 51.4366 124.649 51.4297C124.785 51.5758 124.876 51.7636 124.876 51.9654V56.6058C124.876 57.0754 124.492 57.4163 124.062 57.4163H114.311V61.695H115.642V58.7417L115.646 58.7451Z" fill="#ED2027"/>
<path d="M127.99 41.1199C127.973 41.1025 127.955 41.0851 127.938 41.0677C127.92 41.0503 127.903 41.0329 127.885 41.0155C127.868 40.9982 127.85 40.9808 127.833 40.9634C127.815 40.946 127.798 40.9286 127.78 40.9112C127.763 40.8938 127.746 40.8764 127.728 40.859C127.711 40.8416 127.693 40.8242 127.676 40.8068C127.658 40.7894 127.641 40.772 127.623 40.7547C127.606 40.7373 127.588 40.7199 127.571 40.7025C127.553 40.6851 127.536 40.6677 127.518 40.6503C127.501 40.6329 127.483 40.6155 127.466 40.5981C127.448 40.5807 127.431 40.5633 127.413 40.5459C127.396 40.5285 127.379 40.5111 127.361 40.4938C127.344 40.4764 127.326 40.459 127.309 40.4416C127.291 40.4242 127.274 40.4068 127.256 40.3894C127.239 40.372 127.221 40.3546 127.204 40.3372C127.186 40.3198 127.169 40.3024 127.151 40.285C127.134 40.2676 127.116 40.2503 127.099 40.2329C127.081 40.2155 127.064 40.1981 127.047 40.1807C127.029 40.1633 127.012 40.1459 126.994 40.1285C126.977 40.1111 126.959 40.0937 126.942 40.0763C126.924 40.0589 126.907 40.0415 126.889 40.0241C126.872 40.0068 126.854 39.9894 126.837 39.972C126.819 39.9546 126.802 39.9372 126.784 39.9198C126.77 39.9024 126.753 39.885 126.735 39.8711C126.879 40.0207 126.97 40.2189 126.97 40.4311V45.0716C126.97 45.496 126.627 45.8821 126.159 45.8821H114.311V49.6946H115.642V47.2074H127.49C127.959 47.2074 128.301 46.8248 128.301 46.3969V41.7565C128.301 41.5304 128.2 41.3217 128.039 41.1686C128.022 41.1512 128.004 41.1338 127.987 41.1164L127.99 41.1199Z" fill="#ED2027"/>
<path d="M158.558 41.122C158.54 41.1046 158.523 41.0873 158.505 41.0699C158.488 41.0525 158.47 41.0351 158.453 41.0177C158.435 41.0003 158.418 40.9829 158.4 40.9655C158.383 40.9481 158.366 40.9307 158.348 40.9133C158.331 40.8959 158.313 40.8785 158.296 40.8611C158.278 40.8438 158.261 40.8264 158.243 40.809C158.226 40.7916 158.208 40.7742 158.191 40.7568C158.173 40.7394 158.156 40.722 158.138 40.7046C158.121 40.6872 158.103 40.6698 158.086 40.6524C158.068 40.635 158.051 40.6176 158.034 40.6003C158.016 40.5829 157.999 40.5655 157.981 40.5481C157.964 40.5307 157.946 40.5133 157.929 40.4959C157.911 40.4785 157.894 40.4611 157.876 40.4437C157.859 40.4263 157.841 40.4089 157.824 40.3915C157.806 40.3741 157.789 40.3568 157.771 40.3394C157.754 40.322 157.736 40.3046 157.719 40.2872C157.701 40.2698 157.684 40.2524 157.667 40.235C157.649 40.2176 157.632 40.2002 157.614 40.1828C157.597 40.1654 157.579 40.148 157.562 40.1306C157.544 40.1133 157.527 40.0959 157.509 40.0785C157.492 40.0611 157.474 40.0437 157.457 40.0263C157.439 40.0089 157.422 39.9915 157.404 39.9741C157.387 39.9567 157.369 39.9393 157.352 39.9219C157.341 39.9115 157.331 39.9011 157.321 39.8906C157.457 40.0367 157.548 40.2246 157.548 40.4298V69.0794C157.548 69.5038 157.163 69.8447 156.737 69.8447H156.052C155.922 69.8447 155.583 69.716 155.496 69.6325L155.521 69.6568L155.573 69.709L155.625 69.7612L155.678 69.8134L155.73 69.8655L155.783 69.9177L155.835 69.9699L155.888 70.0221L155.94 70.0743L155.992 70.1264L156.045 70.1786L156.097 70.2308L156.15 70.283L156.202 70.3351L156.255 70.3873L156.307 70.4395L156.359 70.4917L156.412 70.5439L156.464 70.596L156.517 70.6482L156.569 70.7004L156.622 70.7526L156.674 70.8048L156.726 70.8569L156.779 70.9091L156.831 70.9613C156.915 71.0448 157.258 71.1735 157.387 71.1735H158.072C158.498 71.1735 158.883 70.8326 158.883 70.4082V41.7586C158.883 41.5325 158.771 41.3238 158.607 41.1742C158.589 41.1568 158.572 41.1394 158.554 41.122H158.558Z" fill="#ED2027"/>
<path d="M138.566 68.6155C138.566 69.0399 138.224 69.4225 137.756 69.4225H132.667C132.464 69.4225 132.272 69.3321 132.125 69.193C132.135 69.2034 132.146 69.2138 132.156 69.2243C132.174 69.2417 132.191 69.259 132.209 69.2764C132.226 69.2938 132.244 69.3112 132.261 69.3286C132.279 69.346 132.296 69.3634 132.314 69.3808C132.331 69.3982 132.349 69.4156 132.366 69.433C132.384 69.4504 132.401 69.4678 132.419 69.4852C132.436 69.5025 132.454 69.5199 132.471 69.5373C132.488 69.5547 132.506 69.5721 132.523 69.5895C132.541 69.6069 132.558 69.6243 132.576 69.6417C132.593 69.6591 132.611 69.6765 132.628 69.6939C132.646 69.7113 132.663 69.7287 132.681 69.746C132.698 69.7634 132.716 69.7808 132.733 69.7982C132.751 69.8156 132.768 69.833 132.786 69.8504C132.803 69.8678 132.821 69.8852 132.838 69.9026C132.855 69.92 132.873 69.9374 132.89 69.9548C132.908 69.9722 132.925 69.9895 132.943 70.0069C132.96 70.0243 132.978 70.0417 132.995 70.0591C133.013 70.0765 133.03 70.0939 133.048 70.1113C133.065 70.1287 133.083 70.1461 133.1 70.1635C133.118 70.1809 133.135 70.1983 133.153 70.2157C133.17 70.2331 133.187 70.2504 133.205 70.2678C133.222 70.2852 133.24 70.3026 133.257 70.32C133.275 70.3374 133.292 70.3548 133.31 70.3722C133.327 70.3896 133.345 70.407 133.362 70.4244C133.38 70.4418 133.397 70.4592 133.415 70.4766C133.565 70.64 133.775 70.7514 134.002 70.7514H139.091C139.562 70.7514 139.901 70.3687 139.901 69.9443V54.2385L138.57 52.9062V68.619L138.566 68.6155Z" fill="#ED2027"/>
<path d="M187.121 45.241C187.104 45.2236 187.086 45.2062 187.069 45.1888C187.051 45.1715 187.034 45.1541 187.016 45.1367C186.999 45.1193 186.981 45.1019 186.964 45.0845C186.946 45.0671 186.929 45.0497 186.911 45.0323C186.894 45.0149 186.876 44.9975 186.859 44.9801C186.842 44.9627 186.824 44.9453 186.807 44.928C186.789 44.9106 186.772 44.8932 186.754 44.8758C186.737 44.8584 186.719 44.841 186.702 44.8236C186.684 44.8062 186.667 44.7888 186.649 44.7714C186.632 44.754 186.614 44.7366 186.597 44.7192C186.579 44.7018 186.562 44.6845 186.544 44.6671C186.527 44.6497 186.509 44.6323 186.492 44.6149C186.475 44.5975 186.457 44.5801 186.44 44.5627C186.422 44.5453 186.405 44.5279 186.387 44.5105C186.37 44.4931 186.352 44.4757 186.335 44.4583C186.317 44.441 186.3 44.4236 186.282 44.4062C186.265 44.3888 186.247 44.3714 186.23 44.354C186.212 44.3366 186.195 44.3192 186.177 44.3018C186.16 44.2844 186.142 44.267 186.125 44.2496C186.115 44.2392 186.101 44.2253 186.09 44.2148C186.101 44.2288 186.108 44.2392 186.118 44.2531C188.687 46.9212 190.274 50.525 190.274 54.4801C190.274 62.7383 183.514 69.4206 175.262 69.4206H164.826C164.616 69.4206 164.431 69.3232 164.295 69.1771C164.309 69.1945 164.326 69.2084 164.344 69.2258C164.361 69.2432 164.379 69.2606 164.396 69.278C164.414 69.2954 164.431 69.3128 164.449 69.3302C164.466 69.3476 164.484 69.365 164.501 69.3824C164.519 69.3998 164.536 69.4172 164.554 69.4345C164.571 69.4519 164.589 69.4693 164.606 69.4867C164.623 69.5041 164.641 69.5215 164.658 69.5389C164.676 69.5563 164.693 69.5737 164.711 69.5911C164.728 69.612 164.746 69.6259 164.763 69.6433C164.781 69.6607 164.798 69.678 164.816 69.6954C164.833 69.7128 164.851 69.7302 164.868 69.7476C164.886 69.765 164.903 69.7824 164.921 69.7998C164.938 69.8172 164.955 69.8346 164.973 69.852C164.99 69.8729 165.008 69.8868 165.025 69.9042C165.043 69.9215 165.06 69.9389 165.078 69.9563C165.095 69.9737 165.113 69.9911 165.13 70.0085C165.148 70.0294 165.165 70.0433 165.183 70.0607C165.2 70.0781 165.218 70.0955 165.235 70.1129C165.253 70.1303 165.27 70.1477 165.288 70.165C165.305 70.1859 165.322 70.1998 165.34 70.2172C165.357 70.2346 165.375 70.252 165.392 70.2694C165.41 70.2903 165.427 70.3042 165.445 70.3216C165.462 70.339 165.48 70.3564 165.497 70.3738C165.515 70.3912 165.532 70.4086 165.55 70.4259C165.567 70.4433 165.585 70.4607 165.602 70.4781C165.742 70.6416 165.941 70.7494 166.165 70.7494H176.601C184.856 70.7494 191.612 64.0671 191.612 55.809C191.612 51.7112 189.914 47.9856 187.177 45.2932C187.16 45.2758 187.142 45.2584 187.125 45.241H187.121Z" fill="#ED2027"/>
<path d="M174.837 45.8848H170.73V61.6601H172.062V47.2101H176.169C177.696 47.2101 179.087 47.5997 180.279 48.2711C180.048 47.9232 179.793 47.5962 179.514 47.2936C178.203 46.4066 176.613 45.8848 174.837 45.8848Z" fill="#ED2027"/>
<path d="M72.2082 22.4757H70.9884C70.7507 22.4757 70.555 22.3852 70.4082 22.2461C70.4257 22.2635 70.4397 22.2809 70.4606 22.2983C70.4781 22.3157 70.4956 22.3331 70.5131 22.3505C70.5305 22.3678 70.548 22.3852 70.5655 22.4026C70.583 22.42 70.5969 22.4374 70.6179 22.4548C70.6354 22.4722 70.6494 22.4896 70.6703 22.507C70.6878 22.5244 70.7053 22.5418 70.7228 22.5592C70.7402 22.5766 70.7577 22.594 70.7752 22.6113C70.7927 22.6287 70.8101 22.6461 70.8276 22.6635C70.8451 22.6809 70.8591 22.6983 70.88 22.7157C70.8975 22.7331 70.9115 22.7505 70.9325 22.7679C70.9499 22.7853 70.9674 22.8027 70.9849 22.8201C71.0024 22.8375 71.0198 22.8548 71.0373 22.8722C71.0548 22.8896 71.0723 22.907 71.0897 22.9244C71.1072 22.9418 71.1247 22.9592 71.1422 22.9766C71.1596 22.994 71.1771 23.0114 71.1946 23.0288C71.2121 23.0462 71.226 23.0636 71.247 23.081C71.2645 23.0983 71.282 23.1157 71.2994 23.1331C71.3169 23.1505 71.3344 23.1679 71.3519 23.1853C71.3693 23.2027 71.3868 23.2201 71.4043 23.2375C71.4218 23.2549 71.4392 23.2723 71.4567 23.2897C71.4742 23.3071 71.4882 23.3245 71.5091 23.3418C71.5266 23.3592 71.5406 23.3766 71.5616 23.394C71.579 23.4114 71.5965 23.4288 71.614 23.4462C71.6315 23.4636 71.6489 23.481 71.6664 23.4984C71.6839 23.5158 71.7014 23.5332 71.7188 23.5506C71.7573 23.5923 71.7992 23.6306 71.8447 23.6619C71.9705 23.6201 72.0928 23.5784 72.2151 23.5297V22.4826L72.2082 22.4757Z" fill="#ED2027"/>
<path d="M62.7351 18.4791C62.7351 13.7969 66.4993 9.88001 71.1617 9.88001C73.2587 9.88001 75.139 10.4331 76.7642 11.9219C77.1067 12.1759 77.5751 12.1759 77.9176 11.8802L81.2973 8.30422C81.6398 7.96332 81.5944 7.45197 81.2099 7.15629C81.2029 7.14933 81.196 7.14585 81.189 7.13889C81.1785 7.12846 81.1715 7.11454 81.1575 7.10411C81.1505 7.09715 81.1435 7.09367 81.1365 7.08672C81.1261 7.07628 81.1191 7.06237 81.1051 7.05193C81.0981 7.04497 81.0911 7.04149 81.0841 7.03454C81.0736 7.0241 81.0666 7.01019 81.0527 6.99975C81.0457 6.99279 81.0387 6.98931 81.0317 6.98236C81.0212 6.97192 81.0142 6.95801 81.0002 6.94757C80.9932 6.94061 80.9863 6.93714 80.9793 6.93018C80.9688 6.91974 80.9618 6.90583 80.9478 6.89539C80.9408 6.88844 80.9338 6.88496 80.9268 6.878C80.9164 6.86757 80.9094 6.85365 80.8954 6.84321C80.8884 6.83626 80.8814 6.83278 80.8744 6.82582C80.8604 6.81539 80.8569 6.80147 80.843 6.79104C80.836 6.78408 80.829 6.7806 80.822 6.77364C80.8115 6.76321 80.8045 6.74929 80.7905 6.73886C80.7835 6.7319 80.7766 6.72842 80.7696 6.72146C80.7591 6.71103 80.7521 6.69711 80.7381 6.68668C80.7311 6.67972 80.7241 6.67624 80.7171 6.66928C80.7066 6.65885 80.6997 6.64494 80.6857 6.6345C80.6787 6.62754 80.6717 6.62407 80.6647 6.61711C80.6542 6.60667 80.6472 6.59276 80.6333 6.58232C80.6263 6.57536 80.6193 6.57189 80.6123 6.56493C80.6018 6.55449 80.5948 6.54058 80.5808 6.53014C80.5738 6.52319 80.5668 6.51971 80.5599 6.51275C80.5494 6.50231 80.5424 6.4884 80.5284 6.47796C80.5214 6.47101 80.5144 6.46753 80.5074 6.46057C80.497 6.45013 80.49 6.43622 80.476 6.42579C80.469 6.41883 80.462 6.41535 80.455 6.40839C80.4445 6.39796 80.4375 6.38404 80.4236 6.37361C80.4166 6.36665 80.4096 6.36317 80.4026 6.35621C80.3921 6.34578 80.3851 6.33186 80.3711 6.32143C80.3641 6.31447 80.3571 6.31099 80.3502 6.30404C80.3397 6.2936 80.3327 6.27969 80.3187 6.26925C80.3117 6.26229 80.3047 6.25881 80.2977 6.25186C80.2872 6.24142 80.2803 6.22751 80.2663 6.21707C80.2593 6.21011 80.2523 6.20663 80.2453 6.19968C80.2313 6.18924 80.2278 6.17533 80.2138 6.16489C80.2069 6.15793 80.1999 6.15445 80.1929 6.1475C80.1824 6.13706 80.1754 6.12315 80.1614 6.11271C80.1544 6.10576 80.1474 6.10228 80.1405 6.09532C80.1265 6.08489 80.123 6.07097 80.109 6.06053C80.102 6.05358 80.095 6.0501 80.088 6.04314C80.0775 6.03271 80.0706 6.01879 80.0566 6.00836C80.0496 6.0014 80.0426 5.99792 80.0356 5.99096C80.0251 5.98053 80.0181 5.96661 80.0041 5.95618C80.0041 5.95618 79.9972 5.9527 79.9972 5.94922C80.2593 6.25186 80.2593 6.67624 79.9587 6.9754L76.579 10.5514C76.2365 10.8505 75.7681 10.8505 75.4256 10.5931C73.8004 9.10429 71.9201 8.5512 69.8231 8.5512C65.1607 8.5512 61.3965 12.4681 61.3965 17.1502C61.3965 18.9382 61.9662 20.6045 62.9273 21.9785C63.2349 22.2603 63.5634 22.5177 63.9094 22.7473C63.165 21.488 62.7246 20.0305 62.7246 18.4721L62.7351 18.4791Z" fill="#ED2027"/>
<path d="M79.8984 5.85156C79.8984 5.85156 79.9124 5.86896 79.9229 5.87591C79.9194 5.86896 79.9159 5.86548 79.9089 5.85852C79.9089 5.85852 79.9019 5.85156 79.8984 5.85156Z" fill="#ED2027"/>
<path d="M79.9907 5.94734C79.9907 5.94734 80.0015 5.95453 80.0051 5.95812C79.9943 5.94734 79.9835 5.93656 79.9727 5.92578C79.9799 5.93297 79.9835 5.94015 79.9907 5.94734Z" fill="#ED2027"/>
<path d="M79.9512 5.90625C79.9512 5.90625 79.9662 5.92122 79.9737 5.92871C79.97 5.92497 79.9662 5.91748 79.9624 5.91374C79.9624 5.91374 79.9549 5.90999 79.9512 5.90625Z" fill="#ED2027"/>
<path d="M79.9385 5.8972C79.9385 5.8972 79.9458 5.90451 79.9531 5.90817C79.9421 5.8972 79.9348 5.88622 79.9238 5.87891C79.9275 5.88622 79.9348 5.89354 79.9421 5.8972H79.9385Z" fill="#ED2027"/>
<path d="M58.731 28.1227C58.731 28.1227 58.7659 28.1574 58.7834 28.1748C58.8009 28.1922 58.8184 28.2096 58.8358 28.227C58.8533 28.2444 58.8708 28.2618 58.8883 28.2792C58.9057 28.2966 58.9232 28.314 58.9407 28.3314C58.9582 28.3488 58.9756 28.3662 58.9931 28.3836C59.0106 28.4009 59.0281 28.4183 59.0455 28.4357C59.063 28.4531 59.0805 28.4705 59.098 28.4879C59.1154 28.5053 59.1329 28.5227 59.1504 28.5401C59.1679 28.5575 59.1853 28.5749 59.2028 28.5923C59.2203 28.6097 59.2378 28.6271 59.2552 28.6444C59.2727 28.6618 59.2902 28.6792 59.3077 28.6966C59.3251 28.714 59.3426 28.7314 59.3601 28.7488C59.3776 28.7662 59.395 28.7836 59.4125 28.801C59.43 28.8184 59.4475 28.8358 59.4649 28.8532C59.4824 28.8706 59.4999 28.8879 59.5174 28.9053C59.5348 28.9227 59.5523 28.9401 59.5698 28.9575C59.5873 28.9749 59.6047 28.9923 59.6222 29.0097C59.6397 29.0271 59.6572 29.0445 59.6746 29.0619C59.6921 29.0793 59.7096 29.0967 59.7271 29.1141C59.7445 29.1314 59.762 29.1488 59.7795 29.1662C59.797 29.1836 59.8144 29.201 59.8319 29.2184C59.8494 29.2358 59.8669 29.2532 59.8843 29.2706C62.6629 32.0326 66.511 33.7267 70.7819 33.7267C76.9821 33.7267 81.3894 30.9612 81.3894 30.9612C81.5607 30.8325 81.7319 30.4916 81.7319 30.2794L81.69 18.8279C81.69 18.5983 81.5886 18.3896 81.4314 18.2365C81.4139 18.2191 81.3964 18.2017 81.3789 18.1844C81.3614 18.167 81.344 18.1496 81.3265 18.1322C81.309 18.1148 81.2915 18.0974 81.2741 18.08C81.2566 18.0626 81.2391 18.0452 81.2216 18.0278C81.2042 18.0104 81.1867 17.993 81.1692 17.9756C81.1517 17.9583 81.1343 17.9409 81.1168 17.9235C81.0993 17.9061 81.0818 17.8887 81.0644 17.8713C81.0469 17.8539 81.0294 17.8365 81.0119 17.8191C80.9945 17.8017 80.977 17.7843 80.9595 17.7669C80.942 17.7495 80.9246 17.7321 80.9071 17.7148C80.8896 17.6974 80.8721 17.68 80.8547 17.6626C80.8372 17.6452 80.8197 17.6278 80.8022 17.6104C80.7848 17.5895 80.7673 17.5756 80.7498 17.5582C80.7323 17.5408 80.7149 17.5234 80.6974 17.506C80.6799 17.4886 80.6624 17.4712 80.645 17.4539C80.6275 17.4365 80.61 17.4191 80.5925 17.4017C80.5751 17.3843 80.5576 17.3669 80.5401 17.3495C80.5226 17.3286 80.5052 17.3147 80.4877 17.2973C80.4702 17.2799 80.4527 17.2625 80.4353 17.2451C80.4178 17.2277 80.4003 17.2104 80.3828 17.193C80.3654 17.1721 80.3479 17.1582 80.3304 17.1408C80.3129 17.1234 80.2955 17.106 80.278 17.0886C80.2605 17.0712 80.243 17.0538 80.2256 17.0364C80.2081 17.0156 80.1906 17.0016 80.1731 16.9842C80.1591 16.9669 80.1417 16.9495 80.1242 16.9355C80.264 17.0851 80.3549 17.2834 80.3549 17.4991L80.3968 28.9506C80.3968 29.1628 80.2256 29.5037 80.0543 29.6324C80.0543 29.6324 75.6505 32.3978 69.4468 32.3978C65.2597 32.3978 61.4781 30.7664 58.717 28.1018C58.7065 28.0948 58.696 28.0844 58.6855 28.0774C58.6995 28.0913 58.717 28.1087 58.731 28.1227Z" fill="#ED2027"/>
<path d="M120.738 28.1472C120.738 28.1472 120.773 28.182 120.791 28.1994C120.808 28.2167 120.826 28.2341 120.843 28.2515C120.861 28.2689 120.878 28.2863 120.895 28.3037C120.913 28.3211 120.93 28.3385 120.948 28.3559C120.965 28.3733 120.983 28.3907 121 28.4081C121.018 28.4255 121.035 28.4429 121.053 28.4602C121.07 28.4776 121.088 28.495 121.105 28.5124C121.123 28.5298 121.14 28.5472 121.158 28.5646C121.175 28.582 121.193 28.5994 121.21 28.6168C121.227 28.6342 121.245 28.6516 121.262 28.669C121.28 28.6863 121.297 28.7037 121.315 28.7211C121.332 28.7385 121.35 28.7559 121.367 28.7733C121.385 28.7907 121.402 28.8081 121.42 28.8255C121.437 28.8429 121.455 28.8603 121.472 28.8777C121.49 28.8951 121.507 28.9125 121.525 28.9298C121.542 28.9472 121.56 28.9646 121.577 28.982C121.594 28.9994 121.612 29.0168 121.629 29.0342C121.647 29.0516 121.664 29.069 121.682 29.0864C121.699 29.1038 121.717 29.1212 121.734 29.1386C121.752 29.156 121.769 29.1734 121.787 29.1907C121.804 29.2081 121.822 29.2255 121.839 29.2429C121.857 29.2603 121.874 29.2777 121.892 29.2951C124.663 32.0675 128.511 33.7686 132.803 33.7686C141.355 33.7686 148.199 26.9992 148.199 18.4872C148.199 14.2155 146.476 10.3647 143.68 7.58181C143.662 7.56442 143.645 7.54702 143.627 7.52963C143.61 7.51224 143.592 7.49485 143.575 7.47745C143.557 7.46006 143.54 7.44267 143.522 7.42528C143.505 7.40788 143.487 7.39049 143.47 7.3731C143.453 7.3557 143.435 7.33831 143.418 7.32092C143.4 7.30352 143.383 7.28613 143.365 7.26874C143.348 7.25135 143.33 7.23395 143.313 7.21656C143.295 7.19917 143.278 7.18178 143.26 7.16438C143.243 7.14699 143.225 7.1296 143.208 7.1122C143.19 7.09481 143.173 7.07742 143.155 7.06002C143.138 7.04263 143.12 7.02524 143.103 7.00784C143.086 6.99045 143.068 6.97306 143.051 6.95567C143.033 6.93827 143.016 6.92088 142.998 6.90349C142.981 6.8861 142.963 6.8687 142.946 6.85131C142.928 6.83392 142.911 6.81652 142.893 6.79913C142.876 6.78174 142.858 6.76434 142.841 6.74695C142.823 6.72956 142.806 6.71217 142.788 6.69477C142.771 6.67738 142.754 6.65999 142.736 6.6426C142.719 6.6252 142.701 6.60781 142.684 6.59042C142.666 6.57302 142.649 6.55563 142.631 6.53824C142.614 6.52084 142.596 6.50345 142.579 6.48606C142.561 6.46867 142.544 6.45127 142.526 6.43388C142.509 6.41649 142.491 6.3991 142.474 6.3817C142.456 6.36431 142.439 6.34692 142.421 6.32952C142.404 6.31213 142.387 6.29474 142.369 6.27734C145.151 9.05673 146.864 12.8971 146.864 17.1583C146.864 25.6739 140.02 32.4397 131.468 32.4397C127.281 32.4397 123.513 30.8152 120.759 28.1576C120.745 28.1472 120.735 28.1367 120.721 28.1298C120.728 28.1367 120.731 28.1402 120.738 28.1472Z" fill="#ED2027"/>
<path d="M90.066 17.1589C90.066 18.9503 90.6427 20.6166 91.6143 21.9906C91.9184 22.2654 92.2434 22.5194 92.5859 22.7489C91.838 21.4897 91.3941 20.0357 91.3941 18.4842C91.3941 13.802 95.2422 9.9269 99.9046 9.9269C101.47 9.9269 102.935 10.3687 104.203 11.1131C103.969 10.7687 103.711 10.4417 103.428 10.1356C102.047 9.17205 100.376 8.60156 98.573 8.60156C93.9106 8.60156 90.0625 12.4767 90.0625 17.1589H90.066Z" fill="#ED2027"/>
<path d="M87.8441 28.1476C87.8441 28.1476 87.879 28.1824 87.8965 28.1998C87.914 28.2172 87.9314 28.2346 87.9489 28.252C87.9664 28.2693 87.9839 28.2867 88.0013 28.3041C88.0188 28.3215 88.0363 28.3389 88.0538 28.3563C88.0712 28.3737 88.0887 28.3911 88.1062 28.4085C88.1237 28.4259 88.1411 28.4433 88.1586 28.4607C88.1761 28.4781 88.1936 28.4955 88.211 28.5128C88.2285 28.5302 88.246 28.5476 88.2635 28.565C88.2809 28.5824 88.2984 28.5998 88.3159 28.6172C88.3334 28.6346 88.3508 28.652 88.3683 28.6694C88.3858 28.6868 88.4033 28.7042 88.4207 28.7216C88.4382 28.739 88.4557 28.7563 88.4732 28.7737C88.4906 28.7911 88.5081 28.8085 88.5256 28.8259C88.5431 28.8433 88.5605 28.8607 88.578 28.8781C88.5955 28.8955 88.613 28.9129 88.6304 28.9303C88.6479 28.9477 88.6654 28.9651 88.6829 28.9825C88.7003 28.9998 88.7178 29.0172 88.7353 29.0346C88.7528 29.052 88.7702 29.0694 88.7877 29.0868C88.8052 29.1042 88.8227 29.1216 88.8401 29.139C88.8576 29.1564 88.8751 29.1738 88.8926 29.1912C88.91 29.2086 88.9275 29.226 88.945 29.2434C88.9625 29.2607 88.9799 29.2781 88.9974 29.2955C91.769 32.068 95.617 33.7725 99.909 33.7725C107.93 33.7725 114.438 27.8206 115.217 20.0599C114.84 18.7067 114.641 17.291 114.641 15.8404C114.641 15.3082 114.669 14.7829 114.721 14.2576C113.994 11.6939 112.624 9.40849 110.789 7.58572C110.772 7.56832 110.754 7.55093 110.737 7.53354C110.719 7.51614 110.702 7.49875 110.684 7.48136C110.667 7.46397 110.649 7.44657 110.632 7.42918C110.614 7.41179 110.597 7.3944 110.579 7.377C110.562 7.35961 110.544 7.34222 110.527 7.32482C110.509 7.30743 110.492 7.29004 110.475 7.27264C110.457 7.25525 110.44 7.23786 110.422 7.22047C110.405 7.20307 110.387 7.18568 110.37 7.16829C110.352 7.15089 110.335 7.1335 110.317 7.11611C110.3 7.09872 110.282 7.08132 110.265 7.06393C110.247 7.04654 110.23 7.02914 110.212 7.01175C110.195 6.99436 110.177 6.97696 110.16 6.95957C110.142 6.94218 110.125 6.92479 110.108 6.90739C110.09 6.89 110.073 6.87261 110.055 6.85522C110.038 6.83782 110.02 6.82043 110.003 6.80304C109.985 6.78564 109.968 6.76825 109.95 6.75086C109.933 6.73346 109.915 6.71607 109.898 6.69868C109.88 6.68129 109.863 6.66389 109.845 6.6465C109.828 6.62911 109.81 6.61172 109.793 6.59432C109.776 6.57693 109.758 6.55954 109.741 6.54214C109.723 6.52475 109.706 6.50736 109.688 6.48996C109.671 6.47257 109.653 6.45518 109.636 6.43778C109.618 6.42039 109.601 6.403 109.583 6.38561C109.566 6.36821 109.548 6.35082 109.531 6.33343C109.513 6.31604 109.496 6.29864 109.478 6.28125C112.26 9.05716 113.973 12.901 113.973 17.1588C113.973 25.6743 107.13 32.4402 98.5774 32.4402C94.3903 32.4402 90.6226 30.8157 87.8685 28.158C87.8545 28.1476 87.8441 28.1372 87.8301 28.1302C87.8371 28.1372 87.8406 28.1406 87.8476 28.1476H87.8441Z" fill="#ED2027"/>
<path d="M122.953 17.1589C122.953 18.9503 123.529 20.6166 124.501 21.9906C124.805 22.2654 125.13 22.5194 125.473 22.7489C124.725 21.4897 124.281 20.0357 124.281 18.4842C124.281 13.802 128.129 9.9269 132.791 9.9269C134.357 9.9269 135.825 10.3687 137.09 11.1131C136.856 10.7687 136.597 10.4417 136.314 10.1356C134.934 9.17205 133.26 8.60156 131.46 8.60156C126.797 8.60156 122.949 12.4767 122.949 17.1589H122.953Z" fill="#ED2027"/>
<path d="M177.402 17.0715C177.402 25.3296 170.643 32.012 162.391 32.012H151.955C151.745 32.012 151.56 31.9146 151.42 31.7685C151.434 31.7859 151.451 31.8033 151.469 31.8172C151.486 31.8346 151.504 31.852 151.521 31.8694C151.539 31.8902 151.556 31.9042 151.574 31.9216C151.591 31.9389 151.609 31.9563 151.626 31.9737C151.644 31.9911 151.661 32.0085 151.679 32.0259C151.696 32.0433 151.714 32.0607 151.731 32.0781C151.748 32.099 151.766 32.1129 151.783 32.1303C151.801 32.1511 151.818 32.1651 151.836 32.1824C151.853 32.2033 151.871 32.2172 151.888 32.2346C151.906 32.252 151.923 32.2694 151.941 32.2868C151.958 32.3042 151.976 32.3216 151.993 32.339C152.011 32.3564 152.028 32.3738 152.046 32.3912C152.063 32.412 152.08 32.4259 152.098 32.4433C152.115 32.4607 152.133 32.4781 152.15 32.4955C152.168 32.5164 152.185 32.5303 152.203 32.5477C152.22 32.5651 152.238 32.5825 152.255 32.5999C152.273 32.6173 152.29 32.6347 152.308 32.6521C152.325 32.6694 152.343 32.6868 152.36 32.7042C152.378 32.7216 152.395 32.739 152.413 32.7564C152.43 32.7738 152.447 32.7912 152.465 32.8086C152.482 32.8295 152.5 32.8434 152.517 32.8608C152.535 32.8782 152.552 32.8956 152.57 32.913C152.587 32.9303 152.605 32.9477 152.622 32.9651C152.64 32.986 152.657 32.9999 152.675 33.0173C152.692 33.0347 152.71 33.0521 152.727 33.0695C152.867 33.233 153.063 33.3408 153.29 33.3408H163.726C171.981 33.3408 178.737 26.6585 178.737 18.4003C178.737 14.3026 177.039 10.577 174.302 7.88457C174.285 7.86718 174.267 7.84979 174.25 7.83239C174.232 7.815 174.215 7.79761 174.197 7.78021C174.18 7.76282 174.162 7.74543 174.145 7.72803C174.127 7.71064 174.11 7.69325 174.092 7.67586C174.075 7.65846 174.057 7.64107 174.04 7.62368C174.022 7.60629 174.005 7.58889 173.987 7.5715C173.97 7.55411 173.953 7.53671 173.935 7.51932C173.918 7.50193 173.9 7.48453 173.883 7.46714C173.865 7.44975 173.848 7.43236 173.83 7.41496C173.813 7.39757 173.795 7.38018 173.778 7.36279C173.76 7.34539 173.743 7.328 173.725 7.31061C173.708 7.29321 173.69 7.27582 173.673 7.25843C173.655 7.24103 173.638 7.22364 173.621 7.20625C173.603 7.18886 173.586 7.17146 173.568 7.15407C173.551 7.13668 173.533 7.11929 173.516 7.10189C173.498 7.0845 173.481 7.06711 173.463 7.04971C173.446 7.03232 173.428 7.01493 173.411 6.99753C173.393 6.98014 173.376 6.96275 173.358 6.94535C173.341 6.92796 173.323 6.91057 173.306 6.89318C173.288 6.87578 173.271 6.85839 173.254 6.841C173.243 6.82708 173.229 6.81665 173.215 6.80273C173.226 6.81665 173.233 6.82708 173.243 6.841C175.812 9.50907 177.399 13.1129 177.399 17.068L177.402 17.0715Z" fill="#ED2027"/>
<path d="M163.292 9.79799C164.819 9.79799 166.207 10.1876 167.402 10.859C167.171 10.5111 166.916 10.1841 166.637 9.88148C165.329 8.99444 163.736 8.47266 161.96 8.47266H157.854V24.248H159.185V9.79799H163.292Z" fill="#ED2027"/>
<path d="M68.1152 30.929C74.2001 30.929 78.6038 28.2123 78.6458 28.1844C78.7716 28.0905 78.9219 27.7914 78.9219 27.6244L78.8799 16.1729C78.8799 15.8111 78.5933 15.505 78.2543 15.505H69.6565C69.2616 15.505 68.9854 15.7798 68.9854 16.1729V20.3855C68.9854 20.7403 69.272 21.0081 69.6565 21.0081H72.4945V23.7145L72.4036 23.7493C71.2363 24.2154 69.9745 24.4415 68.5451 24.4415C63.7953 24.4415 59.9333 20.5768 59.9333 15.8285C59.9333 11.0803 63.7778 7.08686 68.5031 7.08686C70.8099 7.08686 72.6762 7.76866 74.2036 9.16705C74.4936 9.38272 74.8851 9.36881 75.1682 9.12183L78.5374 5.55629C78.6737 5.42062 78.7401 5.25365 78.7296 5.0832C78.7192 4.90579 78.6248 4.73882 78.4675 4.61707C75.5841 2.12989 71.7186 0.644531 68.1187 0.644531C64.0364 0.644531 60.2129 2.21685 57.3504 5.07276C54.4845 7.93216 52.9082 11.7516 52.9082 15.8285C52.9082 19.9054 54.488 23.704 57.3504 26.5391C60.2094 29.3672 64.033 30.9256 68.1187 30.9256L68.1152 30.929Z" fill="#ED2027"/>
<path d="M97.2433 30.9715C101.346 30.9715 105.184 29.4062 108.05 26.5642C110.919 23.7187 112.499 19.9096 112.499 15.8293C112.499 7.43545 105.656 0.603516 97.2433 0.603516C93.1506 0.603516 89.32 2.18279 86.4575 5.05262C83.6021 7.91549 82.0293 11.7454 82.0293 15.8293C82.0293 19.9131 83.6021 23.7222 86.4575 26.5642C89.313 29.4062 93.1436 30.9715 97.2433 30.9715ZM97.2433 7.13281C102.038 7.13281 105.939 11.0358 105.939 15.8327C105.939 20.6297 102.038 24.4457 97.2433 24.4457C92.4481 24.4457 88.5895 20.581 88.5895 15.8327C88.5895 11.0845 92.4725 7.13281 97.2433 7.13281Z" fill="#ED2027"/>
<path d="M130.136 30.9715C134.239 30.9715 138.077 29.4062 140.943 26.5642C143.812 23.7187 145.392 19.9096 145.392 15.8293C145.392 7.43545 138.548 0.603516 130.136 0.603516C126.043 0.603516 122.213 2.18279 119.35 5.05262C116.495 7.91549 114.922 11.7454 114.922 15.8293C114.922 19.9131 116.495 23.7222 119.35 26.5642C122.206 29.4062 126.036 30.9715 130.136 30.9715ZM130.136 7.13281C134.931 7.13281 138.832 11.0358 138.832 15.8327C138.832 20.6297 134.931 24.4457 130.136 24.4457C125.341 24.4457 121.482 20.581 121.482 15.8327C121.482 11.0845 125.365 7.13281 130.136 7.13281Z" fill="#ED2027"/>
<path d="M150.622 30.547H161.058C169.257 30.547 175.926 23.9064 175.926 15.7456C175.926 7.58489 169.254 1.03125 161.058 1.03125H150.622C150.283 1.03125 149.996 1.33736 149.996 1.69914V29.8791C149.996 30.2409 150.283 30.547 150.622 30.547ZM156.382 7.00397H160.632C165.469 7.00397 169.114 10.7608 169.114 15.7456C169.114 20.7304 165.469 24.5291 160.632 24.5291H156.382V7.00397Z" fill="#ED2027"/>
<path d="M48.5534 44.4176H60.545C60.9154 44.4176 61.216 44.1184 61.216 43.7497V39.1093C61.216 38.7406 60.9154 38.4414 60.545 38.4414H42.839C42.4685 38.4414 42.168 38.7406 42.168 39.1093V67.2893C42.168 67.658 42.4685 67.9571 42.839 67.9571H47.8859C48.2354 67.9571 48.5569 67.6406 48.5569 67.2893V56.8013H58.4514C58.8009 56.8013 59.1225 56.4848 59.1225 56.1335V51.493C59.1225 51.1452 58.8044 50.8251 58.4514 50.8251H48.5569V44.4106L48.5534 44.4176Z" fill="#ED2027"/>
<path d="M81.2881 67.9567H86.978C87.2506 67.9567 87.4673 67.8489 87.5862 67.6471C87.7085 67.4419 87.7085 67.1671 87.5792 66.9305L81.6446 55.9765L81.7914 55.9174C85.6394 54.3764 88.0335 51.1482 88.0335 47.4922C88.0335 42.5005 83.9164 38.4375 78.852 38.4375H66.0636C65.6932 38.4375 65.3926 38.7367 65.3926 39.1054V67.2854C65.3926 67.6541 65.6932 67.9532 66.0636 67.9532H71.1524C71.5019 67.9532 71.8235 67.6367 71.8235 67.2854V56.2861H75.004L80.7324 67.6437C80.7918 67.7619 80.9945 67.9498 81.2881 67.9498V67.9567ZM78.2963 51.1726H71.8235V44.2467H78.2963C80.1347 44.2467 81.69 45.7947 81.69 47.6244C81.69 49.4542 80.1033 51.1726 78.2963 51.1726Z" fill="#ED2027"/>
<path d="M93.862 38.4453H98.9928C99.3633 38.4453 99.6638 38.7445 99.6638 39.1132V67.2966C99.6638 67.6654 99.3633 67.9645 98.9928 67.9645H93.8585C93.4881 67.9645 93.1875 67.6654 93.1875 67.2966V39.1167C93.1875 38.7479 93.4881 38.4488 93.8585 38.4488L93.862 38.4453Z" fill="#ED2027"/>
<path d="M112.841 44.4176H124.832C125.203 44.4176 125.503 44.1184 125.503 43.7497V39.1093C125.503 38.7406 125.203 38.4414 124.832 38.4414H107.126C106.756 38.4414 106.455 38.7406 106.455 39.1093V67.2893C106.455 67.658 106.756 67.9571 107.126 67.9571H124.832C125.203 67.9571 125.503 67.658 125.503 67.2893V62.6488C125.503 62.2801 125.203 61.9809 124.832 61.9809H112.841V55.9491H122.735C123.106 55.9491 123.406 55.6499 123.406 55.2812V50.6408C123.406 50.2929 123.088 49.9729 122.735 49.9729H112.841V44.4106V44.4176Z" fill="#ED2027"/>
<path d="M155.411 38.4439H150.277C149.906 38.4439 149.606 38.7431 149.606 39.1118V54.3654H149.365L132.298 38.0195H131.288C130.925 38.0195 130.617 38.3048 130.617 38.6422L130.659 67.2918C130.659 67.6396 130.977 67.9597 131.33 67.9597H136.419C136.789 67.9597 137.09 67.6605 137.09 67.2918V51.2694H137.335L137.377 51.3112L154.272 68.2101C154.328 68.2658 154.635 68.3806 154.726 68.3806H155.411C155.775 68.3806 156.082 68.0953 156.082 67.7579V39.1083C156.082 38.7605 155.764 38.4404 155.411 38.4404V38.4439Z" fill="#ED2027"/>
<path d="M173.936 38.4453H163.5C163.161 38.4453 162.871 38.7514 162.871 39.1132V67.2932C162.871 67.6549 163.158 67.9611 163.5 67.9611H173.936C182.136 67.9611 188.808 61.3204 188.808 53.1597C188.808 44.999 182.136 38.4453 173.936 38.4453ZM173.507 61.9431H169.257V44.418H173.507C178.344 44.418 181.989 48.1749 181.989 53.1597C181.989 58.1445 178.344 61.9431 173.507 61.9431Z" fill="#ED2027"/>
</g>
<defs>
<clipPath id="clip0_1572_4526">
<rect width="228" height="70" fill="white" transform="translate(0 0.890625)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 45 KiB

8
public/qr.svg Normal file
View File

@@ -0,0 +1,8 @@
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0_1572_4576" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="20">
<rect width="20" height="20" fill="#D9D9D9"/>
</mask>
<g mask="url(#mask0_1572_4576)">
<path d="M2.35899 5.45864C2.16155 5.45864 1.99685 5.39209 1.86491 5.25899C1.73296 5.1259 1.66699 4.96097 1.66699 4.7642V2.36143C1.66699 2.16468 1.73354 1.99975 1.86664 1.86664C1.99975 1.73354 2.16468 1.66699 2.36143 1.66699H4.7642C4.96096 1.66699 5.1259 1.73378 5.25899 1.86735C5.39209 2.00092 5.45864 2.16642 5.45864 2.36387C5.45864 2.56131 5.39209 2.72601 5.25899 2.85795C5.1259 2.9899 4.96096 3.05587 4.7642 3.05587H3.05587V4.7642C3.05587 4.96097 2.98908 5.1259 2.85551 5.25899C2.72194 5.39209 2.55644 5.45864 2.35899 5.45864ZM2.36143 18.3337C2.16468 18.3337 1.99975 18.2671 1.86664 18.134C1.73354 18.0009 1.66699 17.836 1.66699 17.6392V15.2365C1.66699 15.0397 1.73378 14.8748 1.86735 14.7417C2.00092 14.6086 2.16642 14.542 2.36387 14.542C2.56131 14.542 2.72601 14.6086 2.85795 14.7417C2.9899 14.8748 3.05587 15.0397 3.05587 15.2365V16.9448H4.7642C4.96096 16.9448 5.1259 17.0116 5.25899 17.1451C5.39209 17.2787 5.45864 17.4442 5.45864 17.6417C5.45864 17.8391 5.39209 18.0038 5.25899 18.1357C5.1259 18.2677 4.96096 18.3337 4.7642 18.3337H2.36143ZM15.2365 18.3337C15.0397 18.3337 14.8748 18.2669 14.7417 18.1333C14.6086 17.9997 14.542 17.8342 14.542 17.6368C14.542 17.4393 14.6086 17.2746 14.7417 17.1427C14.8748 17.0108 15.0397 16.9448 15.2365 16.9448H16.9448V15.2365C16.9448 15.0397 17.0116 14.8748 17.1451 14.7417C17.2787 14.6086 17.4442 14.542 17.6417 14.542C17.8391 14.542 18.0038 14.6086 18.1357 14.7417C18.2677 14.8748 18.3337 15.0397 18.3337 15.2365V17.6392C18.3337 17.836 18.2671 18.0009 18.134 18.134C18.0009 18.2671 17.836 18.3337 17.6392 18.3337H15.2365ZM17.6368 5.45864C17.4393 5.45864 17.2746 5.39209 17.1427 5.25899C17.0108 5.1259 16.9448 4.96097 16.9448 4.7642V3.05587H15.2365C15.0397 3.05587 14.8748 2.98908 14.7417 2.85551C14.6086 2.72194 14.542 2.55644 14.542 2.35899C14.542 2.16155 14.6086 1.99685 14.7417 1.86491C14.8748 1.73296 15.0397 1.66699 15.2365 1.66699H17.6392C17.836 1.66699 18.0009 1.73354 18.134 1.86664C18.2671 1.99975 18.3337 2.16468 18.3337 2.36143V4.7642C18.3337 4.96097 18.2669 5.1259 18.1333 5.25899C17.9997 5.39209 17.8342 5.45864 17.6368 5.45864ZM14.6948 16.0003V14.7087H15.9865V16.0003H14.6948ZM14.6948 13.417V12.1253H15.9865V13.417H14.6948ZM13.4031 14.7087V13.417H14.6948V14.7087H13.4031ZM12.1114 16.0003V14.7087H13.4031V16.0003H12.1114ZM10.8198 14.7087V13.417H12.1114V14.7087H10.8198ZM13.4031 12.1253V10.8337H14.6948V12.1253H13.4031ZM12.1114 13.417V12.1253H13.4031V13.417H12.1114ZM10.8198 12.1253V10.8337H12.1114V12.1253H10.8198ZM11.5142 9.16699C11.3175 9.16699 11.1525 9.10044 11.0194 8.96735C10.8863 8.83424 10.8198 8.66931 10.8198 8.47256V4.69476C10.8198 4.498 10.8863 4.33307 11.0194 4.19997C11.1525 4.06687 11.3175 4.00033 11.5142 4.00033H15.292C15.4888 4.00033 15.6537 4.06687 15.7868 4.19997C15.9199 4.33307 15.9865 4.498 15.9865 4.69476V8.47256C15.9865 8.66931 15.9199 8.83424 15.7868 8.96735C15.6537 9.10044 15.4888 9.16699 15.292 9.16699H11.5142ZM4.69476 16.0003C4.498 16.0003 4.33307 15.9338 4.19997 15.8007C4.06687 15.6676 4.00033 15.5027 4.00033 15.3059V11.5281C4.00033 11.3313 4.06687 11.1664 4.19997 11.0333C4.33307 10.9002 4.498 10.8337 4.69476 10.8337H8.47256C8.66931 10.8337 8.83424 10.9002 8.96735 11.0333C9.10044 11.1664 9.16699 11.3313 9.16699 11.5281V15.3059C9.16699 15.5027 9.10044 15.6676 8.96735 15.8007C8.83424 15.9338 8.66931 16.0003 8.47256 16.0003H4.69476ZM4.69476 9.16699C4.498 9.16699 4.33307 9.10044 4.19997 8.96735C4.06687 8.83424 4.00033 8.66931 4.00033 8.47256V4.69476C4.00033 4.498 4.06687 4.33307 4.19997 4.19997C4.33307 4.06687 4.498 4.00033 4.69476 4.00033H8.47256C8.66931 4.00033 8.83424 4.06687 8.96735 4.19997C9.10044 4.33307 9.16699 4.498 9.16699 4.69476V8.47256C9.16699 8.66931 9.10044 8.83424 8.96735 8.96735C8.83424 9.10044 8.66931 9.16699 8.47256 9.16699H4.69476ZM5.11143 14.8892H8.05589V11.9448H5.11143V14.8892ZM5.11143 8.05589H8.05589V5.11143H5.11143V8.05589ZM11.9309 8.05589H14.8753V5.11143H11.9309V8.05589Z" fill="black"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -0,0 +1,6 @@
import type { User } from "@/types/user"
export type ChallengesProps = {
journeys: User["journeys"]
victories: User["victories"]
}

View File

@@ -0,0 +1,5 @@
import type { User } from "@/types/user"
export type OverviewProps = {
user: User
}

View File

@@ -0,0 +1,5 @@
import type { User } from "@/types/user"
export type ShortcutsProps = {
shortcuts: User["shortcuts"]
}

View File

@@ -1,6 +0,0 @@
export type StayProps = {
dateArrive: Date
dateDepart: Date
guests: number
hotel: string
}

View File

@@ -0,0 +1,7 @@
import type { Stay, User } from "@/types/user"
export type StaysProps = {
stays: User["stays"]
}
export type StayProps = Stay

36
types/user.ts Normal file
View File

@@ -0,0 +1,36 @@
import { z } from "zod"
import { getUserSchema } from "@/server/routers/user/output"
type Journey = {
tag: string
title: string
}
type ShortcutLink = {
href: string
title: string
}
export type Stay = {
dateArrive: Date
dateDepart: Date
guests: number
hotel: string
}
type Victory = {
tag: string
title: string
}
export interface User extends z.infer<typeof getUserSchema> {
journeys: Journey[]
membershipId: number
nights: number
points: number
qualifyingPoints: number
shortcuts: ShortcutLink[]
stays: Stay[]
victories: Victory[]
}