Add burnup chart component (#401)

* feat: add chart to website WIP

* fix: minor improvements

* feat: add animation to areas on load

* feat: adds animation to rest of the chart elements

* feat: refact chart component

* feat: add loading state to chart component

* feat: add empty state and fixed some issues

* Set up website deployment (#391)

* env

* vercel.json

* turbo

* u

* root

* cwd

* use cwd option (#393)

* fix: remove border width from progress bar

* fix: changes from review

* fix: removes spacing with first tick in X Axis component

* update assertion

---------

Co-authored-by: Felicio Mununga <felicio@users.noreply.github.com>
Co-authored-by: Pavel Prichodko <14926950+prichodko@users.noreply.github.com>
This commit is contained in:
marcelines 2023-05-18 13:54:45 +01:00 committed by GitHub
parent fb7c06ed4a
commit 8a47bb4b02
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 1936 additions and 764 deletions

View File

@ -79,15 +79,3 @@ body,
display: none; display: none;
} }
} }
@keyframes gradient {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}

View File

@ -14,6 +14,7 @@
"dependencies": { "dependencies": {
"@radix-ui/react-dialog": "^1.0.3", "@radix-ui/react-dialog": "^1.0.3",
"@radix-ui/react-navigation-menu": "^1.1.2", "@radix-ui/react-navigation-menu": "^1.1.2",
"@react-spring/web": "^9.7.2",
"@scure/base": "^1.1.1", "@scure/base": "^1.1.1",
"@status-im/colors": "*", "@status-im/colors": "*",
"@status-im/components": "*", "@status-im/components": "*",
@ -21,6 +22,9 @@
"@status-im/js": "*", "@status-im/js": "*",
"@tamagui/next-theme": "1.11.1", "@tamagui/next-theme": "1.11.1",
"class-variance-authority": "^0.6.0", "class-variance-authority": "^0.6.0",
"@visx/visx": "^2.18.0",
"d3-array": "^3.2.3",
"d3-time-format": "^4.1.0",
"next": "13.2.4", "next": "13.2.4",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
@ -30,6 +34,8 @@
"devDependencies": { "devDependencies": {
"@achingbrain/ssdp": "^4.0.1", "@achingbrain/ssdp": "^4.0.1",
"@tamagui/next-plugin": "1.11.1", "@tamagui/next-plugin": "1.11.1",
"@types/d3-array": "^3.0.4",
"@types/d3-time-format": "^4.0.0",
"@types/node": "^18.11.11", "@types/node": "^18.11.11",
"@types/react": "^18.0.33", "@types/react": "^18.0.33",
"@types/react-dom": "^18.0.11", "@types/react-dom": "^18.0.11",

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -0,0 +1,47 @@
import { Stack } from '@tamagui/core'
import { ParentSize } from '@visx/responsive'
import { ChartComponent, Empty, Loading } from './components'
type DayType = {
date: string
open_issues: number
closed_issues: number
}
interface Props {
data: DayType[]
height?: number
isLoading?: boolean
}
const Chart = (props: Props) => {
const { data, isLoading, ...rest } = props
if (isLoading) {
return (
<Stack width="100%" height={rest.height}>
<Loading />
</Stack>
)
}
if (!data.length) {
return (
<Stack width="100%" height={rest.height}>
<Empty />
</Stack>
)
}
return (
<ParentSize style={{ maxHeight: 326 }}>
{({ width }) => {
return <ChartComponent {...rest} data={data} width={width} />
}}
</ParentSize>
)
}
export { Chart }
export type { Props as ChartProps, DayType }

View File

@ -0,0 +1,98 @@
import { animated } from '@react-spring/web'
import { curveMonotoneX } from '@visx/curve'
import { LinearGradient } from '@visx/gradient'
import { AreaClosed } from '@visx/shape'
import { colors } from './chart-component'
import type { SpringValue } from '@react-spring/web'
import type { ScaleLinear, ScaleTime } from 'd3-scale'
type Datum = {
date: Date
value: number
}
type Props = {
yScale: ScaleLinear<number, number, never>
xScale: ScaleTime<number, number, never>
totalIssuesData: Datum[]
closedIssuesData: Datum[]
clipPathAnimation: {
clipPath: SpringValue<string>
}
}
const AnimatedAreaClosed = animated(AreaClosed)
const Areas = (props: Props) => {
const {
clipPathAnimation,
closedIssuesData,
totalIssuesData,
xScale,
yScale,
} = props
return (
<>
<LinearGradient
id="gradient-columns"
from={'rgba(255, 255, 255, 1)'}
to={'rgba(255, 255, 255, 0)'}
fromOpacity={1}
toOpacity={0}
/>
<LinearGradient
id="gradient"
from={colors.total}
to={colors.background}
fromOpacity={0.1}
toOpacity={0}
/>
<LinearGradient
id="gradient-open"
from={colors.closed}
to={colors.background}
fromOpacity={0.1}
toOpacity={0}
/>
{/* Total issues area */}
<AnimatedAreaClosed
data={totalIssuesData}
x={d => {
const datum = d as Datum
return xScale(datum.date)
}}
y={d => {
const datum = d as Datum
return yScale(datum.value)
}}
yScale={yScale}
fill="url(#gradient)"
curve={curveMonotoneX}
style={{ ...clipPathAnimation, zIndex: 10 }}
/>
{/* Closed issues area */}
<AnimatedAreaClosed
data={closedIssuesData}
x={d => {
const datum = d as Datum
return xScale(datum.date)
}}
y={d => {
const datum = d as Datum
return yScale(datum.value)
}}
yScale={yScale}
fill="url(#gradient-open)"
curve={curveMonotoneX}
style={{ ...clipPathAnimation, zIndex: 10 }}
/>
</>
)
}
export { Areas }

View File

@ -0,0 +1,2 @@
export { LineA } from './line-a'
export { LineB } from './line-b'

View File

@ -0,0 +1,15 @@
const LineA = () => {
return (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1066 104" fill="none">
<path
stroke="#F5F6F8"
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth="2"
d="m1 103 48.375-3a533.063 533.063 0 0 0 95.371-14.666v0a533.09 533.09 0 0 1 100.856-14.978L291.182 68l96.727-16.5 96.727-6.5 96.728-12 96.727-6 96.727-6 96.727-8h96.728L1065 1"
/>
</svg>
)
}
export { LineA }

View File

@ -0,0 +1,15 @@
const LineB = () => {
return (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1066 154" fill="none">
<path
stroke="#F5F6F8"
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth="2"
d="m1 153 30.72-1.906a358.367 358.367 0 0 0 126.206-31.478v0a358.437 358.437 0 0 1 75.827-24.742l11.248-2.325A460.974 460.974 0 0 1 338.339 83h146.297l96.728-10v0a638.4 638.4 0 0 0 189.113-28.654L774.818 43l51.57-10.663A450.746 450.746 0 0 1 917.658 23v0c33.638 0 67.169-3.765 99.972-11.225L1065 1"
/>
</svg>
)
}
export { LineB }

View File

@ -0,0 +1,234 @@
import { useMemo } from 'react'
import { animated } from '@react-spring/web'
import { Axis } from '@visx/axis'
import { GridColumns } from '@visx/grid'
import { Group } from '@visx/group'
import { scaleLinear, scaleTime } from '@visx/scale'
import { extent, max } from 'd3-array'
import { getClosedIssues, getTotalIssues } from '../helpers/get-data'
import { useAnimations, useChartTooltip } from '../hooks/'
import { format } from '../utils/format-time'
import { Areas } from './areas'
import { ChartTooltip } from './chart-tooltip'
import { Lines } from './lines'
import { Markers } from './markers'
import type { DayType } from '../chart'
// defining colors
export const colors = {
total: '#E95460',
closed: '#23ADA0',
background: '#F0F2F5',
marker: '#09101C',
totalGradient: 'rgba(233, 84, 96, 0.3)',
closedGradient: 'rgba(35, 173, 160, 0.3)',
white: '#FFF',
} as const
interface Props {
data: DayType[]
height?: number
width?: number
}
const AnimatedGridColumns = animated(GridColumns)
const ChartComponent = (props: Props): JSX.Element => {
const { data, width: defaultWidth, height: defaultHeight } = props
// Extract dates, open issues, and closed issues from data
const dates = data.map(d => new Date(d.date))
// Define dimensions
const height = defaultHeight || 300
const width = defaultWidth || 300
const margin = { top: 20, right: 0, bottom: 30, left: 26 }
const innerWidth = (width || 0) - margin.left - margin.right
const innerHeight = height - margin.top - margin.bottom
const filteredDates = dates.filter(Boolean) // filters out undefined values
// Calculate total issues by summing open and closed issues
const totalIssues = data.map(d => d.open_issues + d.closed_issues)
const xDomain = extent(filteredDates) as [Date, Date]
const xScale = scaleTime({
domain: xDomain,
range: [0, innerWidth],
})
const numTicksBottom = Math.min(data.length, 12)
const yScale = scaleLinear({
domain: [0, max(totalIssues) || 0],
range: [innerHeight, 0],
nice: true,
})
const { tooltipData, updateTooltip, hideTooltip, tooltipOpen } =
useChartTooltip({
data,
margin,
dates,
innerWidth,
})
const {
circleSpringClosed,
circleSpringTotal,
clipPathAnimation,
drawingGridColumns,
drawingLineStyle,
opacityAnimation,
tooltipAnimation,
} = useAnimations({
data,
margin,
innerHeight,
tooltipData,
yScale,
xScale,
})
// Convert data to array of objects with `date` and `value` properties
const totalIssuesData = useMemo(
() =>
data.map(d => ({
date: new Date(d.date),
value: getTotalIssues(d),
})),
[data]
)
const closedIssuesData = useMemo(
() =>
data.map(d => ({
date: new Date(d.date),
value: getClosedIssues(d),
})),
[data]
)
return (
<div>
<svg width={width} height={height} overflow="visible">
<Group left={margin.left} top={margin.top}>
{/* x-axis */}
<Axis
top={innerHeight}
scale={xScale}
hideTicks
hideAxisLine
hideZero
numTicks={numTicksBottom}
tickLabelProps={(_, index) => {
const textAnchor =
index === 0
? 'start'
: index === data.length - 1
? 'end'
: 'middle'
return {
dy: '.33em',
fill: '#A1ABBD',
fontFamily: 'Inter, sans-serif',
fontSize: 11,
textAnchor,
}
}}
tickFormat={value => {
if (typeof value === 'number') {
return value.toString() // Handle number values
} else if (value instanceof Date) {
// Specify the desired date format
return format(value) // Handle date values
} else {
return ''
}
}}
/>
{/* y-axis */}
<Axis
orientation="left"
scale={yScale}
hideTicks
hideAxisLine
numTicks={6}
tickComponent={({ formattedValue, ...tickProps }) => (
<text
{...tickProps}
fill="#A1ABBD"
fontSize={11}
textAnchor="middle"
dx="-1em"
>
{formattedValue}
</text>
)}
/>
<AnimatedGridColumns
scale={xScale}
height={innerHeight}
style={drawingGridColumns}
numTicks={numTicksBottom}
/>
<rect
x={0}
y={0}
width={innerWidth}
height={innerHeight}
fill="url(#gradient-columns)"
/>
<Lines
closedIssuesData={closedIssuesData}
drawingLineStyle={drawingLineStyle}
totalIssuesData={totalIssuesData}
xScale={xScale}
yScale={yScale}
/>
<Areas
clipPathAnimation={clipPathAnimation}
closedIssuesData={closedIssuesData}
totalIssuesData={totalIssuesData}
xScale={xScale}
yScale={yScale}
/>
{tooltipOpen && (
<Markers
circleSpringClosed={circleSpringClosed}
circleSpringTotal={circleSpringTotal}
innerHeight={innerHeight}
opacityAnimation={opacityAnimation}
/>
)}
<rect
x={0}
y={0}
width={innerWidth}
height={innerHeight}
onTouchStart={updateTooltip}
fill="transparent"
onTouchMove={updateTooltip}
onMouseMove={updateTooltip}
onMouseLeave={() => hideTooltip()}
/>
</Group>
</svg>
{/* render a tooltip */}
{tooltipOpen && (
<ChartTooltip
tooltipAnimation={tooltipAnimation}
opacityAnimation={opacityAnimation}
tooltipData={tooltipData}
/>
)}
</div>
)
}
export { ChartComponent }

View File

@ -0,0 +1,115 @@
import { animated } from '@react-spring/web'
import { Text } from '@status-im/components'
import { DoneIcon, OpenIcon } from '@status-im/icons'
import { Stack } from '@tamagui/core'
import { defaultStyles, TooltipWithBounds } from '@visx/tooltip'
import type { TooltipData } from '../hooks/use-chart-tooltip'
import type { SpringValue } from '@react-spring/web'
const AnimatedTooltip = animated(TooltipWithBounds)
type Props = {
tooltipData: TooltipData
opacityAnimation: {
opacity: SpringValue<number>
}
tooltipAnimation: {
x: SpringValue<number>
y: SpringValue<number>
}
}
// defining tooltip styles
const tooltipStyles: React.CSSProperties = {
...defaultStyles,
minWidth: 272,
padding: 12,
backgroundColor: '#FFF',
border: '1px solid #F0F2F5',
boxShadow: '0px 2px 20px rgba(9, 16, 28, 0.04)',
borderRadius: 20,
marginLeft: 25,
}
const ChartTooltip = (props: Props) => {
const { tooltipData, opacityAnimation, tooltipAnimation } = props
return (
<AnimatedTooltip
top={tooltipAnimation.y}
left={tooltipAnimation.x}
style={{ ...tooltipStyles, opacity: opacityAnimation.opacity }}
className="rounded-2xl"
>
<Stack flexDirection="row" alignItems="center">
<Text size={19} weight="semibold">
{tooltipData.totalIssues}
</Text>
<Stack ml={3} alignItems="center">
<Text size={15} weight="medium">
issues
</Text>
</Stack>
</Stack>
<Stack pb={12}>
<Text size={13} weight="medium" color="$neutral-50">
{tooltipData.formattedDate}
</Text>
</Stack>
<Stack borderRadius="$8" backgroundColor="$danger-50-opa-10">
<Stack
animation="slow"
height={8}
backgroundColor="$success-50"
width={`${tooltipData.completedIssuesPercentage}%`}
borderRadius="$8"
/>
</Stack>
<Stack flexDirection="row" alignItems="center" pt={18}>
<OpenIcon size={16} color="$neutral-40" />
<Stack px={4}>
<Text size={13} weight="medium">
{tooltipData.openIssues} open
</Text>
</Stack>
<Stack
backgroundColor="$danger-50-opa-30"
borderRadius="$20"
px={6}
py={2}
minWidth={36}
justifyContent="center"
alignItems="center"
>
<Text size={11} weight="medium" color="$danger-50">
{`${tooltipData.openIssuesPercentage}%`}
</Text>
</Stack>
</Stack>
<Stack flexDirection="row" alignItems="center" pt={8}>
<DoneIcon size={16} color="$neutral-40" />
<Stack px={4}>
<Text size={13} weight="medium">
{tooltipData.closedIssues} closes
</Text>
</Stack>
<Stack
minWidth={36}
backgroundColor="$success-50-opa-30"
borderRadius="$20"
px={6}
py={2}
justifyContent="center"
alignItems="center"
>
<Text size={11} weight="medium" color="$success-50">
{`${tooltipData.completedIssuesPercentage}%`}
</Text>
</Stack>
</Stack>
</AnimatedTooltip>
)
}
export { ChartTooltip }

View File

@ -0,0 +1,48 @@
import { Image, Text } from '@status-im/components'
import { LineA, LineB } from './assets'
const Empty = () => {
return (
<div className="flex h-full w-full flex-col items-center justify-center">
<div className="relative flex h-full w-full items-center justify-center">
<div className="relative z-10 flex flex-col items-center justify-center">
<Image src={'/assets/chart/empty.png'} width={80} height={80} />
<div className="pb-3" />
<Text size={15} weight="semibold">
No results found
</Text>
<div className="pb-1" />
<Text size={13} color="$neutral-50">
Try adjusting your search or filter to find what youre looking for.
</Text>
</div>
<div className="left-50 absolute top-16 w-full opacity-60">
<LineA />
</div>
<div className="absolute left-0 top-28 w-full opacity-60">
<LineB />
</div>
<div
className="absolute left-0 top-0 h-24 w-full"
style={{
background: `linear-gradient(180deg, white, transparent)`,
}}
/>
<div className="absolute flex h-full w-full justify-between opacity-80">
{Array.from({ length: 12 }).map((_, i) => (
<div
className="h-full w-1"
style={{
borderLeft: '1px dashed #F0F2F5',
}}
key={i}
/>
))}
</div>
</div>
</div>
)
}
export { Empty }

View File

@ -0,0 +1,3 @@
export { ChartComponent } from './chart-component'
export { Empty } from './empty'
export { Loading } from './loading'

View File

@ -0,0 +1,73 @@
import { animated } from '@react-spring/web'
import { curveMonotoneX } from '@visx/curve'
import { LinePath } from '@visx/shape'
import { colors } from './chart-component'
import type { SpringValue } from '@react-spring/web'
import type { ScaleLinear, ScaleTime } from 'd3-scale'
type Datum = {
date: Date
value: number
}
type Props = {
yScale: ScaleLinear<number, number, never>
xScale: ScaleTime<number, number, never>
totalIssuesData: Datum[]
closedIssuesData: Datum[]
drawingLineStyle: {
strokeDasharray: SpringValue<string>
}
}
const AnimatedLinePath = animated(LinePath)
const Lines = (props: Props) => {
const {
closedIssuesData,
drawingLineStyle,
xScale,
yScale,
totalIssuesData,
} = props
return (
<>
{/* Total issues line */}
<AnimatedLinePath
data={totalIssuesData}
x={d => {
const datum = d as Datum
return xScale(datum.date)
}}
y={d => {
const datum = d as Datum
return yScale(datum.value)
}}
stroke={colors.total}
strokeWidth={2}
curve={curveMonotoneX}
style={drawingLineStyle}
/>
{/* Closed issues line */}
<AnimatedLinePath
data={closedIssuesData}
x={d => {
const datum = d as Datum
return xScale(datum.date)
}}
y={d => {
const datum = d as Datum
return yScale(datum.value)
}}
stroke={colors.closed}
strokeWidth={2}
curve={curveMonotoneX}
style={drawingLineStyle}
/>
</>
)
}
export { Lines }

View File

@ -0,0 +1,39 @@
import { Skeleton } from '@status-im/components'
const Loading = () => {
return (
<div className="flex h-full w-full flex-col items-center justify-center">
<div className="relative flex h-full w-full">
<div
className="absolute left-0 top-0 h-24 w-full"
style={{
background: `linear-gradient(180deg, white, transparent)`,
}}
/>
<div className="flex h-full w-10 flex-col justify-between ">
{Array.from({ length: 5 }).map((_, i) => (
<Skeleton key={i} width={20} height={12} />
))}
</div>
<div className="flex h-full w-full justify-between pb-4">
{Array.from({ length: 12 }).map((_, i) => (
<div
className="h-full w-1"
style={{
borderLeft: '1px dashed #F0F2F5',
}}
key={i}
/>
))}
</div>
</div>
<div className="flex w-full flex-row justify-between pl-9">
{Array.from({ length: 12 }).map((_, i) => (
<Skeleton key={i} width={32} height={12} />
))}
</div>
</div>
)
}
export { Loading }

View File

@ -0,0 +1,74 @@
import { animated } from '@react-spring/web'
import { GlyphCircle } from '@visx/glyph'
import { Group } from '@visx/group'
import { Line } from '@visx/shape'
import { colors } from './chart-component'
import type { SpringValue } from '@react-spring/web'
type Props = {
innerHeight: number
circleSpringTotal: {
x: SpringValue<number>
y: SpringValue<number>
}
opacityAnimation: {
opacity: SpringValue<number>
}
circleSpringClosed: {
x: SpringValue<number>
y: SpringValue<number>
}
}
const AnimatedCircle = animated(GlyphCircle)
const AnimatedLine = animated(Line)
const AnimatedGroup = animated(Group)
const Markers = (props: Props) => {
const {
innerHeight,
circleSpringTotal,
opacityAnimation,
circleSpringClosed,
} = props
return (
<>
<AnimatedGroup
top={0}
left={circleSpringTotal.x}
opacity={opacityAnimation.opacity}
>
<AnimatedLine
from={{ x: 0, y: innerHeight }}
to={{ x: 0, y: 0 }}
stroke={colors.marker}
strokeWidth={1}
pointerEvents="none"
/>
</AnimatedGroup>
<AnimatedCircle
size={90}
top={circleSpringTotal.y}
left={circleSpringTotal.x}
strokeWidth={1}
stroke={colors.background}
fill={colors.marker}
opacity={opacityAnimation.opacity}
/>
<AnimatedCircle
size={90}
top={circleSpringClosed.y}
left={circleSpringClosed.x}
strokeWidth={1}
stroke={colors.background}
fill={colors.marker}
opacity={opacityAnimation.opacity}
/>
</>
)
}
export { Markers }

View File

@ -0,0 +1,15 @@
import type { DayType } from '../chart'
/**
* Gets the total issues of a day
* @param d - the day to get the total issues
* @returns the total issues of a day
**/
export const getTotalIssues = (d: DayType) => d?.open_issues + d?.closed_issues
/**
* Gets the closed issues of a day
* @param d - the day to get the closes issues
* @returns the total issues of a day
**/
export const getClosedIssues = (d: DayType) => d?.closed_issues

View File

@ -0,0 +1,2 @@
export { useAnimations } from './use-animations'
export { useChartTooltip } from './use-chart-tooltip'

View File

@ -0,0 +1,99 @@
import { config, useSpring } from '@react-spring/web'
import type { DayType } from '../chart'
import type { TooltipData } from './use-chart-tooltip'
import type { ScaleLinear, ScaleTime } from 'd3-scale'
type Props = {
data: DayType[]
yScale: ScaleLinear<number, number, never>
xScale: ScaleTime<number, number, never>
margin: {
top: number
right: number
bottom: number
left: number
}
innerHeight: number
tooltipData: TooltipData
}
/**
* An custom hook that handles animations logic
* @param data - the data to be used in the chart
* @param margin - the margin of the chart
* @param dates - the dates of the chart
* @param innerHeight - the inner height of the chart
* @param xScale - the xScale of the chart
* @param yScale - the yScale of the chart
* @param tooltipData - the data to be used in the tooltip
* @returns circleSpringTotal - the spring animation for the total issues circle
* @returns circleSpringClosed - the spring animation for the closed issues circle
* @returns opacityAnimation - the spring animation for the some chart elements opacity
* @returns tooltipAnimation - the spring animation for the tooltip
* @returns drawingLineStyle - the spring animation for the drawing line style
* @returns drawingGridColumns - the spring animation for the drawing grid columns
* @returns clipPathAnimation - the spring animation for the clip path
**/
const useAnimations = (props: Props) => {
const { data, margin, innerHeight, tooltipData, xScale, yScale } = props
// Define spring for circle position
const circleSpringTotal = useSpring({
x: xScale(new Date(tooltipData?.date || '')),
y: yScale(tooltipData?.totalIssues),
config: config.gentle,
})
const circleSpringClosed = useSpring({
x: xScale(new Date(tooltipData?.date)),
y: yScale(tooltipData?.closedIssues),
config: config.gentle,
})
const opacityAnimation = useSpring({
opacity: data ? 1 : 0,
config: config.gentle,
delay: 200,
})
const tooltipAnimation = useSpring({
x: xScale(new Date(tooltipData?.date)),
y: innerHeight + margin.top + margin.bottom,
config: config.gentle,
})
const [drawingLineStyle] = useSpring(() => ({
from: { strokeDasharray: `${3000}, ${0}` },
to: { strokeDasharray: `${0}, ${3000}` },
reverse: true,
config: { duration: 2000 },
}))
const [drawingGridColumns] = useSpring(() => ({
from: { strokeDasharray: `0, 150` },
to: { strokeDasharray: '4,2' },
config: { duration: 250 },
}))
const [clipPathAnimation] = useSpring(() => ({
from: { clipPath: 'inset(0 100% 0 0)' },
to: { clipPath: 'inset(0 0 0 0)' },
config: { duration: 800 },
}))
return {
circleSpringTotal,
circleSpringClosed,
opacityAnimation,
tooltipAnimation,
drawingLineStyle,
drawingGridColumns,
clipPathAnimation,
}
}
export { useAnimations }

View File

@ -0,0 +1,129 @@
import { useCallback } from 'react'
import { localPoint } from '@visx/event'
import { scaleTime } from '@visx/scale'
import { useTooltip } from '@visx/tooltip'
import { bisector, extent } from 'd3-array'
import { getClosedIssues, getTotalIssues } from '../helpers/get-data'
import { formatDate } from '../utils/format-time'
import { getPercentage } from '../utils/get-percentage'
import type { DayType } from '../chart'
import type { EventType } from '@visx/event/lib/types'
type Props = {
data: DayType[]
dates: Date[]
innerWidth: number
margin: {
top: number
right: number
bottom: number
left: number
}
}
type TooltipData = {
date: string
completedIssuesPercentage: number
openIssuesPercentage: number
totalIssues: number
openIssues: number
closedIssues: number
formattedDate: string
}
/**
* An custom hook that handles the tooltip logic
* @param data - the data to be used in the chart
* @param margin - the margin of the chart
* @param dates - the dates of the chart
* @param innerWidth - the inner width of the chart
* @returns tooltipData - the data to be used in the tooltip
* @returns updateTooltip - a function that updates the tooltip
* @returns hideTooltip - a function that hides the tooltip
* @returns tooltipOpen - a boolean that indicates if the tooltip is open
**/
const useChartTooltip = (props: Props) => {
const { data, margin, dates, innerWidth } = props
// tooltip parameters
const { tooltipData, showTooltip, hideTooltip, tooltipOpen } =
useTooltip<TooltipData>({
tooltipData: {
date: '',
completedIssuesPercentage: 0,
openIssuesPercentage: 0,
totalIssues: 0,
openIssues: 0,
closedIssues: 0,
formattedDate: '',
},
})
const filteredDates = dates.filter(Boolean) // filters out undefined values
const getDate = useCallback((d: DayType) => new Date(d?.date), [])
const bisectDate = bisector((d: DayType) => new Date(d?.date)).left
const xDomain = extent(filteredDates) as [Date, Date]
const xScale = scaleTime({
domain: xDomain,
range: [0, innerWidth],
})
// Define tooltip handler
const updateTooltip = useCallback(
(event: EventType) => {
const { x } = localPoint(event) || { x: 0 }
const x0 = xScale.invert(x - margin.left)
const index = bisectDate(data, x0, 1)
const d0 = data[index - 1]
const d1 = data[index]
let d = d0
if (d1 && getDate(d1)) {
d =
x0.valueOf() - getDate(d0).valueOf() >
getDate(d1).valueOf() - x0.valueOf()
? d1
: d0
}
const closedIssues = getClosedIssues(d)
const totalIssues = getTotalIssues(d)
const openIssues = totalIssues - closedIssues
const completedIssuesPercentage = getPercentage(closedIssues, totalIssues)
const openIssuesPercentage = getPercentage(openIssues, totalIssues)
showTooltip({
tooltipData: {
date: d?.date,
formattedDate: formatDate(getDate(d)),
completedIssuesPercentage,
openIssuesPercentage,
closedIssues,
totalIssues,
openIssues,
},
})
},
[xScale, margin.left, bisectDate, data, getDate, showTooltip]
)
return {
tooltipData: tooltipData!,
hideTooltip,
updateTooltip,
tooltipOpen,
}
}
export { useChartTooltip }
export type { TooltipData, Props as UseChartTooltipProps }

View File

@ -0,0 +1,13 @@
import { timeFormat } from 'd3-time-format'
/**
* Util functions that formats a date
* formatDate @returns a string with the format 'MMM dd yyyy' - Ex: Jan 01 2021
**/
export const formatDate = timeFormat('%b %d %Y')
/**
* Util functions that formats a date
* format @returns a string with the format 'dd MMM' - Ex: 01 Jan
**/
export const format = timeFormat('%d %b')

View File

@ -0,0 +1,8 @@
/**
* An util function that gets the percentage of a value from a total
* @param value - the value to calculate the percentage
* @param total - the total value
**/
export const getPercentage = (value: number, total: number): number =>
Math.round((value / total) * 100)

View File

@ -1,6 +1,98 @@
import { useEffect, useState } from 'react'
import { Tag, Text } from '@status-im/components' import { Tag, Text } from '@status-im/components'
import { OpenIcon } from '@status-im/icons' import { OpenIcon } from '@status-im/icons'
import { Chart } from './chart/chart'
const DATA = [
{
date: '2022-01-25',
open_issues: 100,
closed_issues: 2,
},
{
date: '2022-01-26',
open_issues: 100,
closed_issues: 10,
},
{
date: '2022-01-27',
open_issues: 100,
closed_issues: 20,
},
{
date: '2022-01-28',
open_issues: 90,
closed_issues: 30,
},
{
date: '2022-01-29',
open_issues: 80,
closed_issues: 40,
},
{
date: '2022-01-30',
open_issues: 40,
closed_issues: 80,
},
{
date: '2022-01-31',
open_issues: 30,
closed_issues: 90,
},
{
date: '2022-02-01',
open_issues: 25,
closed_issues: 95,
},
{
date: '2022-02-02',
open_issues: 20,
closed_issues: 98,
},
{
date: '2022-02-03',
open_issues: 10,
closed_issues: 130,
},
{
date: '2022-02-04',
open_issues: 10,
closed_issues: 140,
},
{
date: '2022-02-05',
open_issues: 10,
closed_issues: 150,
},
{
date: '2022-02-06',
open_issues: 10,
closed_issues: 160,
},
{
date: '2022-02-07',
open_issues: 10,
closed_issues: 180,
},
{
date: '2022-02-08',
open_issues: 10,
closed_issues: 190,
},
{
date: '2022-02-09',
open_issues: 10,
closed_issues: 200,
},
{
date: '2022-02-10',
open_issues: 0,
closed_issues: 220,
},
]
type Props = { type Props = {
title: string title: string
description: string description: string
@ -10,8 +102,20 @@ type Props = {
export const EpicOverview = (props: Props) => { export const EpicOverview = (props: Props) => {
const { title, description, fullscreen } = props const { title, description, fullscreen } = props
// Simulating loading state
const [isLoading, setIsLoading] = useState(true)
useEffect(() => {
const timeout = setTimeout(() => {
setIsLoading(false)
}, 2000)
return () => {
clearTimeout(timeout)
}
}, [])
return ( return (
<div> <div style={{ position: 'relative' }}>
<div className="flex items-center gap-1"> <div className="flex items-center gap-1">
<Text size={fullscreen ? 27 : 19} weight="semibold"> <Text size={fullscreen ? 27 : 19} weight="semibold">
{title} {title}
@ -25,7 +129,7 @@ export const EpicOverview = (props: Props) => {
<Tag size={24} label="E:CommunitiesProtocol" /> <Tag size={24} label="E:CommunitiesProtocol" />
</div> </div>
<ChartPreview /> <Chart data={DATA} height={300} isLoading={isLoading} />
<div className="flex justify-between pt-3"> <div className="flex justify-between pt-3">
<div className="flex gap-1"> <div className="flex gap-1">
@ -41,750 +145,3 @@ export const EpicOverview = (props: Props) => {
</div> </div>
) )
} }
// USE https://airbnb.io/visx/areas
const ChartPreview = () => (
<svg
width="100%"
viewBox="0 0 1464 326"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<g clipPath="url(#clip0_492_131505)">
<g clipPath="url(#clip1_492_131505)">
<rect
width="1"
height="246"
transform="translate(64 16)"
fill="url(#paint0_linear_492_131505)"
/>
<mask
id="mask0_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="64"
y="16"
width="1"
height="246"
>
<rect
x="64"
y="16"
width="1"
height="246"
fill="url(#paint1_linear_492_131505)"
/>
</mask>
<g mask="url(#mask0_492_131505)">
<path d="M64.5 16V262" stroke="#F0F2F5" strokeDasharray="2 2" />
</g>
<path
d="M67.8047 290V298H66.5938V291.211H66.5469L64.6328 292.461V291.305L66.6289 290H67.8047ZM72.6839 289.891C73.0407 289.893 73.3922 289.958 73.7386 290.086C74.0849 290.214 74.3974 290.422 74.6761 290.711C74.9573 291 75.1813 291.391 75.348 291.883C75.5172 292.372 75.6032 292.982 75.6058 293.711C75.6058 294.411 75.5355 295.035 75.3948 295.582C75.2542 296.126 75.0524 296.586 74.7894 296.961C74.529 297.336 74.2126 297.621 73.8402 297.816C73.4678 298.012 73.0485 298.109 72.5823 298.109C72.1058 298.109 71.6826 298.016 71.3128 297.828C70.943 297.641 70.6422 297.382 70.4105 297.051C70.1787 296.717 70.0342 296.335 69.9769 295.902H71.1683C71.2464 296.246 71.4053 296.525 71.6448 296.738C71.887 296.949 72.1995 297.055 72.5823 297.055C73.1683 297.055 73.6253 296.799 73.9534 296.289C74.2816 295.776 74.4469 295.06 74.4495 294.141H74.387C74.2516 294.365 74.0823 294.557 73.8792 294.719C73.6787 294.88 73.4534 295.005 73.2034 295.094C72.9534 295.182 72.6865 295.227 72.4027 295.227C71.9417 295.227 71.5224 295.113 71.1448 294.887C70.7672 294.66 70.4665 294.349 70.2425 293.953C70.0185 293.557 69.9066 293.105 69.9066 292.598C69.9066 292.092 70.0211 291.634 70.2503 291.223C70.4821 290.811 70.805 290.486 71.2191 290.246C71.6357 290.004 72.124 289.885 72.6839 289.891ZM72.6878 290.906C72.3831 290.906 72.1084 290.982 71.8636 291.133C71.6214 291.281 71.43 291.483 71.2894 291.738C71.1487 291.991 71.0784 292.272 71.0784 292.582C71.0784 292.892 71.1461 293.173 71.2816 293.426C71.4196 293.676 71.6071 293.875 71.8441 294.023C72.0836 294.169 72.3571 294.242 72.6644 294.242C72.8935 294.242 73.1071 294.198 73.305 294.109C73.5029 294.021 73.6761 293.898 73.8245 293.742C73.973 293.583 74.0889 293.404 74.1722 293.203C74.2555 293.003 74.2972 292.792 74.2972 292.57C74.2972 292.276 74.2269 292.003 74.0863 291.75C73.9482 291.497 73.7581 291.294 73.5159 291.141C73.2737 290.984 72.9977 290.906 72.6878 290.906ZM82.7373 298H80.1474V290H82.8193C83.6032 290 84.2763 290.16 84.8388 290.48C85.4013 290.798 85.8323 291.255 86.1318 291.852C86.4339 292.445 86.5849 293.158 86.5849 293.988C86.5849 294.822 86.4326 295.538 86.1279 296.137C85.8258 296.736 85.3883 297.197 84.8154 297.52C84.2425 297.84 83.5498 298 82.7373 298ZM81.3545 296.945H82.6709C83.2802 296.945 83.7867 296.831 84.1904 296.602C84.594 296.37 84.8961 296.035 85.0966 295.598C85.2972 295.158 85.3974 294.621 85.3974 293.988C85.3974 293.361 85.2972 292.828 85.0966 292.391C84.8987 291.953 84.6032 291.621 84.2099 291.395C83.8167 291.168 83.3284 291.055 82.7451 291.055H81.3545V296.945ZM88.1409 298V290H93.1565V291.039H89.3479V293.477H92.8948V294.512H89.3479V296.961H93.2034V298H88.1409ZM101.468 292.602H100.25C100.203 292.341 100.115 292.112 99.9879 291.914C99.8603 291.716 99.704 291.548 99.5191 291.41C99.3342 291.272 99.1272 291.168 98.898 291.098C98.6715 291.027 98.4306 290.992 98.1754 290.992C97.7145 290.992 97.3017 291.108 96.9371 291.34C96.5751 291.572 96.2887 291.911 96.0777 292.359C95.8694 292.807 95.7652 293.354 95.7652 294C95.7652 294.651 95.8694 295.201 96.0777 295.648C96.2887 296.096 96.5764 296.435 96.941 296.664C97.3056 296.893 97.7158 297.008 98.1715 297.008C98.4241 297.008 98.6637 296.974 98.8902 296.906C99.1194 296.836 99.3264 296.733 99.5113 296.598C99.6962 296.462 99.8525 296.297 99.9801 296.102C100.11 295.904 100.2 295.677 100.25 295.422L101.468 295.426C101.403 295.819 101.277 296.181 101.089 296.512C100.905 296.84 100.666 297.124 100.375 297.363C100.086 297.6 99.7548 297.784 99.3824 297.914C99.01 298.044 98.6038 298.109 98.1637 298.109C97.471 298.109 96.8538 297.945 96.3121 297.617C95.7704 297.286 95.3434 296.814 95.0309 296.199C94.721 295.585 94.566 294.852 94.566 294C94.566 293.146 94.7223 292.413 95.0348 291.801C95.3473 291.186 95.7743 290.715 96.316 290.387C96.8577 290.056 97.4736 289.891 98.1637 289.891C98.5882 289.891 98.984 289.952 99.3512 290.074C99.721 290.194 100.053 290.371 100.347 290.605C100.642 290.837 100.885 291.121 101.078 291.457C101.27 291.79 101.401 292.172 101.468 292.602Z"
fill="#A1ABBD"
/>
<rect
width="1"
height="246"
transform="translate(200.818 16)"
fill="url(#paint2_linear_492_131505)"
/>
<mask
id="mask1_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="200"
y="16"
width="2"
height="246"
>
<rect
x="200.818"
y="16"
width="1"
height="246"
fill="url(#paint3_linear_492_131505)"
/>
</mask>
<g mask="url(#mask1_492_131505)">
<path d="M201.318 16V262" stroke="#F0F2F5" strokeDasharray="2 2" />
</g>
<path
d="M182.63 298V297.125L185.337 294.32C185.626 294.016 185.865 293.749 186.052 293.52C186.242 293.288 186.384 293.068 186.478 292.859C186.572 292.651 186.619 292.43 186.619 292.195C186.619 291.93 186.556 291.701 186.431 291.508C186.306 291.313 186.136 291.163 185.919 291.059C185.703 290.952 185.46 290.898 185.189 290.898C184.903 290.898 184.653 290.957 184.439 291.074C184.225 291.191 184.061 291.357 183.947 291.57C183.832 291.784 183.775 292.034 183.775 292.32H182.623C182.623 291.833 182.735 291.408 182.959 291.043C183.182 290.678 183.49 290.396 183.88 290.195C184.271 289.992 184.715 289.891 185.212 289.891C185.715 289.891 186.158 289.991 186.541 290.191C186.926 290.389 187.227 290.66 187.443 291.004C187.659 291.345 187.767 291.73 187.767 292.16C187.767 292.457 187.711 292.747 187.599 293.031C187.49 293.315 187.298 293.632 187.025 293.98C186.751 294.327 186.371 294.747 185.884 295.242L184.294 296.906V296.965H187.896V298H182.63ZM192.224 298.109C191.868 298.104 191.516 298.039 191.17 297.914C190.826 297.789 190.514 297.581 190.232 297.289C189.951 296.997 189.726 296.605 189.556 296.113C189.39 295.621 189.306 295.007 189.306 294.27C189.306 293.572 189.375 292.952 189.514 292.41C189.654 291.868 189.856 291.411 190.119 291.039C190.382 290.664 190.7 290.379 191.072 290.184C191.444 289.988 191.862 289.891 192.326 289.891C192.803 289.891 193.226 289.984 193.596 290.172C193.965 290.359 194.265 290.618 194.494 290.949C194.726 291.28 194.873 291.656 194.935 292.078H193.744C193.663 291.745 193.503 291.473 193.264 291.262C193.024 291.051 192.711 290.945 192.326 290.945C191.74 290.945 191.283 291.201 190.955 291.711C190.629 292.221 190.465 292.931 190.463 293.84H190.521C190.659 293.613 190.829 293.421 191.029 293.262C191.232 293.1 191.459 292.977 191.709 292.891C191.961 292.802 192.227 292.758 192.506 292.758C192.969 292.758 193.389 292.871 193.764 293.098C194.141 293.322 194.442 293.632 194.666 294.027C194.89 294.423 195.002 294.876 195.002 295.387C195.002 295.897 194.886 296.359 194.654 296.773C194.425 297.187 194.102 297.516 193.685 297.758C193.269 297.997 192.782 298.115 192.224 298.109ZM192.221 297.094C192.528 297.094 192.803 297.018 193.045 296.867C193.287 296.716 193.478 296.513 193.619 296.258C193.76 296.003 193.83 295.717 193.83 295.402C193.83 295.095 193.761 294.815 193.623 294.562C193.487 294.31 193.3 294.109 193.06 293.961C192.823 293.812 192.553 293.738 192.248 293.738C192.016 293.738 191.801 293.783 191.603 293.871C191.408 293.96 191.236 294.082 191.088 294.238C190.939 294.395 190.822 294.574 190.736 294.777C190.653 294.978 190.611 295.19 190.611 295.414C190.611 295.714 190.68 295.991 190.818 296.246C190.959 296.501 191.15 296.707 191.392 296.863C191.637 297.017 191.913 297.094 192.221 297.094ZM202.665 290H203.868V295.672C203.868 296.185 203.766 296.624 203.563 296.988C203.362 297.353 203.08 297.632 202.715 297.824C202.351 298.014 201.924 298.109 201.434 298.109C200.984 298.109 200.579 298.027 200.219 297.863C199.862 297.699 199.58 297.461 199.372 297.148C199.166 296.833 199.063 296.451 199.063 296H200.262C200.262 296.221 200.313 296.413 200.415 296.574C200.519 296.736 200.661 296.862 200.84 296.953C201.023 297.042 201.231 297.086 201.465 297.086C201.721 297.086 201.937 297.033 202.114 296.926C202.293 296.816 202.43 296.656 202.524 296.445C202.618 296.234 202.665 295.977 202.665 295.672V290ZM206.355 298H205.074L207.953 290H209.347L212.226 298H210.945L208.683 291.453H208.621L206.355 298ZM206.57 294.867H210.726V295.883H206.57V294.867ZM219.894 290V298H218.784L214.718 292.133H214.644V298H213.437V290H214.554L218.624 295.875H218.698V290H219.894Z"
fill="#A1ABBD"
/>
<rect
width="1"
height="246"
transform="translate(321.636 16)"
fill="url(#paint4_linear_492_131505)"
/>
<mask
id="mask2_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="321"
y="16"
width="2"
height="246"
>
<rect
x="321.636"
y="16"
width="1"
height="246"
fill="url(#paint5_linear_492_131505)"
/>
</mask>
<g mask="url(#mask2_492_131505)">
<path d="M322.136 16V262" stroke="#F0F2F5" strokeDasharray="2 2" />
</g>
<path
d="M307.371 290.836L307.918 291.219L304.953 297.168L304.438 296.742L307.371 290.836ZM306.18 298.129C305.563 298.129 305.035 297.967 304.598 297.645C304.16 297.319 303.826 296.849 303.594 296.234C303.362 295.617 303.246 294.872 303.246 294C303.246 293.133 303.362 292.393 303.594 291.781C303.828 291.167 304.164 290.698 304.602 290.375C305.042 290.049 305.568 289.887 306.18 289.887C306.792 289.887 307.317 290.049 307.754 290.375C308.192 290.698 308.526 291.167 308.758 291.781C308.993 292.393 309.11 293.133 309.11 294C309.11 294.872 308.994 295.617 308.762 296.234C308.53 296.849 308.196 297.319 307.758 297.645C307.321 297.967 306.795 298.129 306.18 298.129ZM306.18 297.086C306.722 297.086 307.145 296.823 307.45 296.297C307.757 295.768 307.91 295.003 307.91 294C307.91 293.336 307.84 292.775 307.7 292.316C307.562 291.855 307.362 291.507 307.102 291.27C306.844 291.033 306.537 290.914 306.18 290.914C305.641 290.914 305.218 291.18 304.91 291.711C304.603 292.242 304.448 293.005 304.446 294C304.446 294.667 304.515 295.23 304.653 295.691C304.793 296.15 304.993 296.497 305.25 296.734C305.508 296.969 305.818 297.086 306.18 297.086ZM310.55 298V297.125L313.257 294.32C313.547 294.016 313.785 293.749 313.972 293.52C314.162 293.288 314.304 293.068 314.398 292.859C314.492 292.651 314.539 292.43 314.539 292.195C314.539 291.93 314.476 291.701 314.351 291.508C314.226 291.313 314.056 291.163 313.839 291.059C313.623 290.952 313.38 290.898 313.109 290.898C312.823 290.898 312.573 290.957 312.359 291.074C312.145 291.191 311.981 291.357 311.867 291.57C311.752 291.784 311.695 292.034 311.695 292.32H310.543C310.543 291.833 310.655 291.408 310.879 291.043C311.103 290.678 311.41 290.396 311.8 290.195C312.191 289.992 312.635 289.891 313.132 289.891C313.635 289.891 314.078 289.991 314.461 290.191C314.846 290.389 315.147 290.66 315.363 291.004C315.579 291.345 315.687 291.73 315.687 292.16C315.687 292.457 315.631 292.747 315.519 293.031C315.41 293.315 315.218 293.632 314.945 293.98C314.672 294.327 314.291 294.747 313.804 295.242L312.214 296.906V296.965H315.816V298H310.55ZM323.536 290H324.74V295.672C324.74 296.185 324.638 296.624 324.435 296.988C324.234 297.353 323.952 297.632 323.587 297.824C323.223 298.014 322.796 298.109 322.306 298.109C321.855 298.109 321.45 298.027 321.091 297.863C320.734 297.699 320.452 297.461 320.243 297.148C320.038 296.833 319.935 296.451 319.935 296H321.134C321.134 296.221 321.185 296.413 321.286 296.574C321.391 296.736 321.533 296.862 321.712 296.953C321.894 297.042 322.103 297.086 322.337 297.086C322.592 297.086 322.809 297.033 322.986 296.926C323.165 296.816 323.302 296.656 323.396 296.445C323.49 296.234 323.536 295.977 323.536 295.672V290ZM327.227 298H325.946L328.825 290H330.219L333.098 298H331.817L329.555 291.453H329.493L327.227 298ZM327.442 294.867H331.598V295.883H327.442V294.867ZM340.766 290V298H339.656L335.59 292.133H335.516V298H334.309V290H335.426L339.496 295.875H339.57V290H340.766Z"
fill="#A1ABBD"
/>
<rect
width="1"
height="246"
transform="translate(442.455 16)"
fill="url(#paint6_linear_492_131505)"
/>
<mask
id="mask3_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="442"
y="16"
width="2"
height="246"
>
<rect
x="442.455"
y="16"
width="1"
height="246"
fill="url(#paint7_linear_492_131505)"
/>
</mask>
<g mask="url(#mask3_492_131505)">
<path d="M442.955 16V262" stroke="#F0F2F5" strokeDasharray="2 2" />
</g>
<path
d="M428.066 290.836L428.613 291.219L425.648 297.168L425.132 296.742L428.066 290.836ZM426.875 298.129C426.257 298.129 425.73 297.967 425.293 297.645C424.855 297.319 424.52 296.849 424.289 296.234C424.057 295.617 423.941 294.872 423.941 294C423.941 293.133 424.057 292.393 424.289 291.781C424.523 291.167 424.859 290.698 425.297 290.375C425.737 290.049 426.263 289.887 426.875 289.887C427.487 289.887 428.011 290.049 428.449 290.375C428.886 290.698 429.221 291.167 429.453 291.781C429.687 292.393 429.804 293.133 429.804 294C429.804 294.872 429.688 295.617 429.457 296.234C429.225 296.849 428.89 297.319 428.453 297.645C428.015 297.967 427.489 298.129 426.875 298.129ZM426.875 297.086C427.416 297.086 427.839 296.823 428.144 296.297C428.451 295.768 428.605 295.003 428.605 294C428.605 293.336 428.535 292.775 428.394 292.316C428.256 291.855 428.057 291.507 427.797 291.27C427.539 291.033 427.231 290.914 426.875 290.914C426.336 290.914 425.912 291.18 425.605 291.711C425.298 292.242 425.143 293.005 425.14 294C425.14 294.667 425.209 295.23 425.347 295.691C425.488 296.15 425.687 296.497 425.945 296.734C426.203 296.969 426.513 297.086 426.875 297.086ZM433.905 289.891C434.262 289.893 434.614 289.958 434.96 290.086C435.306 290.214 435.619 290.422 435.897 290.711C436.179 291 436.403 291.391 436.569 291.883C436.739 292.372 436.825 292.982 436.827 293.711C436.827 294.411 436.757 295.035 436.616 295.582C436.476 296.126 436.274 296.586 436.011 296.961C435.75 297.336 435.434 297.621 435.061 297.816C434.689 298.012 434.27 298.109 433.804 298.109C433.327 298.109 432.904 298.016 432.534 297.828C432.164 297.641 431.864 297.382 431.632 297.051C431.4 296.717 431.255 296.335 431.198 295.902H432.39C432.468 296.246 432.627 296.525 432.866 296.738C433.108 296.949 433.421 297.055 433.804 297.055C434.39 297.055 434.847 296.799 435.175 296.289C435.503 295.776 435.668 295.06 435.671 294.141H435.608C435.473 294.365 435.304 294.557 435.101 294.719C434.9 294.88 434.675 295.005 434.425 295.094C434.175 295.182 433.908 295.227 433.624 295.227C433.163 295.227 432.744 295.113 432.366 294.887C431.989 294.66 431.688 294.349 431.464 293.953C431.24 293.557 431.128 293.105 431.128 292.598C431.128 292.092 431.242 291.634 431.472 291.223C431.703 290.811 432.026 290.486 432.44 290.246C432.857 290.004 433.345 289.885 433.905 289.891ZM433.909 290.906C433.604 290.906 433.33 290.982 433.085 291.133C432.843 291.281 432.651 291.483 432.511 291.738C432.37 291.991 432.3 292.272 432.3 292.582C432.3 292.892 432.367 293.173 432.503 293.426C432.641 293.676 432.828 293.875 433.065 294.023C433.305 294.169 433.578 294.242 433.886 294.242C434.115 294.242 434.328 294.198 434.526 294.109C434.724 294.021 434.897 293.898 435.046 293.742C435.194 293.583 435.31 293.404 435.394 293.203C435.477 293.003 435.519 292.792 435.519 292.57C435.519 292.276 435.448 292.003 435.308 291.75C435.17 291.497 434.979 291.294 434.737 291.141C434.495 290.984 434.219 290.906 433.909 290.906ZM444.478 290H445.681V295.672C445.681 296.185 445.58 296.624 445.377 296.988C445.176 297.353 444.893 297.632 444.529 297.824C444.164 298.014 443.737 298.109 443.248 298.109C442.797 298.109 442.392 298.027 442.033 297.863C441.676 297.699 441.393 297.461 441.185 297.148C440.979 296.833 440.877 296.451 440.877 296H442.076C442.076 296.221 442.127 296.413 442.228 296.574C442.332 296.736 442.474 296.862 442.654 296.953C442.836 297.042 443.045 297.086 443.279 297.086C443.534 297.086 443.75 297.033 443.927 296.926C444.107 296.816 444.244 296.656 444.337 296.445C444.431 296.234 444.478 295.977 444.478 295.672V290ZM448.169 298H446.888L449.767 290H451.161L454.04 298H452.759L450.497 291.453H450.434L448.169 298ZM448.384 294.867H452.54V295.883H448.384V294.867ZM461.707 290V298H460.598L456.531 292.133H456.457V298H455.25V290H456.367L460.438 295.875H460.512V290H461.707Z"
fill="#A1ABBD"
/>
<rect
width="1"
height="246"
transform="translate(563.273 16)"
fill="url(#paint8_linear_492_131505)"
/>
<mask
id="mask4_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="563"
y="16"
width="2"
height="246"
>
<rect
x="563.273"
y="16"
width="1"
height="246"
fill="url(#paint9_linear_492_131505)"
/>
</mask>
<g mask="url(#mask4_492_131505)">
<path d="M563.773 16V262" stroke="#F0F2F5" strokeDasharray="2 2" />
</g>
<path
d="M548.894 290V298H547.683V291.211H547.636L545.722 292.461V291.305L547.718 290H548.894ZM553.906 298.109C553.549 298.104 553.197 298.039 552.851 297.914C552.507 297.789 552.195 297.581 551.913 297.289C551.632 296.997 551.407 296.605 551.238 296.113C551.071 295.621 550.988 295.007 550.988 294.27C550.988 293.572 551.057 292.952 551.195 292.41C551.335 291.868 551.537 291.411 551.8 291.039C552.063 290.664 552.381 290.379 552.753 290.184C553.126 289.988 553.544 289.891 554.007 289.891C554.484 289.891 554.907 289.984 555.277 290.172C555.646 290.359 555.946 290.618 556.175 290.949C556.407 291.28 556.554 291.656 556.616 292.078H555.425C555.344 291.745 555.184 291.473 554.945 291.262C554.705 291.051 554.393 290.945 554.007 290.945C553.421 290.945 552.964 291.201 552.636 291.711C552.31 292.221 552.146 292.931 552.144 293.84H552.202C552.34 293.613 552.51 293.421 552.71 293.262C552.913 293.1 553.14 292.977 553.39 292.891C553.643 292.802 553.908 292.758 554.187 292.758C554.65 292.758 555.07 292.871 555.445 293.098C555.822 293.322 556.123 293.632 556.347 294.027C556.571 294.423 556.683 294.876 556.683 295.387C556.683 295.897 556.567 296.359 556.335 296.773C556.106 297.187 555.783 297.516 555.366 297.758C554.95 297.997 554.463 298.115 553.906 298.109ZM553.902 297.094C554.209 297.094 554.484 297.018 554.726 296.867C554.968 296.716 555.159 296.513 555.3 296.258C555.441 296.003 555.511 295.717 555.511 295.402C555.511 295.095 555.442 294.815 555.304 294.562C555.169 294.31 554.981 294.109 554.741 293.961C554.504 293.812 554.234 293.738 553.929 293.738C553.697 293.738 553.482 293.783 553.284 293.871C553.089 293.96 552.917 294.082 552.769 294.238C552.62 294.395 552.503 294.574 552.417 294.777C552.334 294.978 552.292 295.19 552.292 295.414C552.292 295.714 552.361 295.991 552.499 296.246C552.64 296.501 552.831 296.707 553.074 296.863C553.318 297.017 553.594 297.094 553.902 297.094ZM564.346 290H565.549V295.672C565.549 296.185 565.447 296.624 565.244 296.988C565.044 297.353 564.761 297.632 564.396 297.824C564.032 298.014 563.605 298.109 563.115 298.109C562.665 298.109 562.26 298.027 561.9 297.863C561.544 297.699 561.261 297.461 561.053 297.148C560.847 296.833 560.744 296.451 560.744 296H561.943C561.943 296.221 561.994 296.413 562.096 296.574C562.2 296.736 562.342 296.862 562.521 296.953C562.704 297.042 562.912 297.086 563.146 297.086C563.402 297.086 563.618 297.033 563.795 296.926C563.975 296.816 564.111 296.656 564.205 296.445C564.299 296.234 564.346 295.977 564.346 295.672V290ZM568.036 298H566.755L569.634 290H571.029L573.907 298H572.626L570.364 291.453H570.302L568.036 298ZM568.251 294.867H572.407V295.883H568.251V294.867ZM581.575 290V298H580.465L576.399 292.133H576.325V298H575.118V290H576.235L580.305 295.875H580.379V290H581.575Z"
fill="#A1ABBD"
/>
<rect
width="1"
height="246"
transform="translate(684.091 16)"
fill="url(#paint10_linear_492_131505)"
/>
<mask
id="mask5_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="684"
y="16"
width="2"
height="246"
>
<rect
x="684.091"
y="16"
width="1"
height="246"
fill="url(#paint11_linear_492_131505)"
/>
</mask>
<g mask="url(#mask5_492_131505)">
<path d="M684.591 16V262" stroke="#F0F2F5" strokeDasharray="2 2" />
</g>
<path
d="M665.855 298V297.125L668.562 294.32C668.851 294.016 669.089 293.749 669.277 293.52C669.467 293.288 669.609 293.068 669.702 292.859C669.796 292.651 669.843 292.43 669.843 292.195C669.843 291.93 669.781 291.701 669.656 291.508C669.531 291.313 669.36 291.163 669.144 291.059C668.928 290.952 668.684 290.898 668.413 290.898C668.127 290.898 667.877 290.957 667.663 291.074C667.45 291.191 667.286 291.357 667.171 291.57C667.057 291.784 666.999 292.034 666.999 292.32H665.847C665.847 291.833 665.959 291.408 666.183 291.043C666.407 290.678 666.714 290.396 667.105 290.195C667.495 289.992 667.939 289.891 668.437 289.891C668.939 289.891 669.382 289.991 669.765 290.191C670.15 290.389 670.451 290.66 670.667 291.004C670.883 291.345 670.991 291.73 670.991 292.16C670.991 292.457 670.935 292.747 670.823 293.031C670.714 293.315 670.523 293.632 670.249 293.98C669.976 294.327 669.596 294.747 669.109 295.242L667.519 296.906V296.965H671.12V298H665.855ZM675.441 298.109C674.905 298.109 674.425 298.017 674.003 297.832C673.584 297.647 673.252 297.391 673.007 297.062C672.765 296.732 672.635 296.349 672.617 295.914H673.843C673.859 296.151 673.938 296.357 674.082 296.531C674.227 296.703 674.418 296.836 674.652 296.93C674.886 297.023 675.147 297.07 675.433 297.07C675.748 297.07 676.027 297.016 676.269 296.906C676.514 296.797 676.705 296.645 676.843 296.449C676.981 296.251 677.05 296.023 677.05 295.766C677.05 295.497 676.981 295.262 676.843 295.059C676.708 294.853 676.509 294.691 676.246 294.574C675.985 294.457 675.67 294.398 675.3 294.398H674.625V293.414H675.3C675.597 293.414 675.858 293.361 676.082 293.254C676.308 293.147 676.485 292.999 676.613 292.809C676.74 292.616 676.804 292.391 676.804 292.133C676.804 291.885 676.748 291.671 676.636 291.488C676.527 291.303 676.371 291.159 676.168 291.055C675.967 290.951 675.73 290.898 675.457 290.898C675.196 290.898 674.953 290.947 674.726 291.043C674.502 291.137 674.32 291.272 674.179 291.449C674.039 291.624 673.963 291.833 673.953 292.078H672.785C672.798 291.646 672.925 291.266 673.168 290.937C673.412 290.609 673.735 290.353 674.136 290.168C674.537 289.983 674.983 289.891 675.472 289.891C675.985 289.891 676.428 289.991 676.8 290.191C677.175 290.389 677.464 290.654 677.668 290.984C677.873 291.315 677.975 291.677 677.972 292.07C677.975 292.518 677.85 292.898 677.597 293.211C677.347 293.523 677.014 293.733 676.597 293.84V293.902C677.128 293.983 677.54 294.194 677.832 294.535C678.126 294.876 678.272 295.299 678.269 295.805C678.272 296.245 678.149 296.639 677.902 296.988C677.657 297.337 677.323 297.612 676.898 297.812C676.474 298.01 675.988 298.109 675.441 298.109ZM685.986 290H687.189V295.672C687.189 296.185 687.087 296.624 686.884 296.988C686.683 297.353 686.401 297.632 686.036 297.824C685.672 298.014 685.245 298.109 684.755 298.109C684.305 298.109 683.9 298.027 683.54 297.863C683.183 297.699 682.901 297.461 682.693 297.148C682.487 296.833 682.384 296.451 682.384 296H683.583C683.583 296.221 683.634 296.413 683.736 296.574C683.84 296.736 683.982 296.862 684.161 296.953C684.344 297.042 684.552 297.086 684.786 297.086C685.042 297.086 685.258 297.033 685.435 296.926C685.614 296.816 685.751 296.656 685.845 296.445C685.939 296.234 685.986 295.977 685.986 295.672V290ZM689.676 298H688.395L691.274 290H692.668L695.547 298H694.266L692.004 291.453H691.942L689.676 298ZM689.891 294.867H694.047V295.883H689.891V294.867ZM703.215 290V298H702.105L698.039 292.133H697.965V298H696.758V290H697.875L701.945 295.875H702.019V290H703.215Z"
fill="#A1ABBD"
/>
<rect
width="1"
height="246"
transform="translate(804.909 16)"
fill="url(#paint12_linear_492_131505)"
/>
<mask
id="mask6_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="804"
y="16"
width="2"
height="246"
>
<rect
x="804.909"
y="16"
width="1"
height="246"
fill="url(#paint13_linear_492_131505)"
/>
</mask>
<g mask="url(#mask6_492_131505)">
<path d="M805.409 16V262" stroke="#F0F2F5" strokeDasharray="2 2" />
</g>
<path
d="M789.281 298.109C788.744 298.109 788.265 298.017 787.843 297.832C787.424 297.647 787.092 297.391 786.847 297.062C786.605 296.732 786.475 296.349 786.457 295.914H787.683C787.699 296.151 787.778 296.357 787.921 296.531C788.067 296.703 788.257 296.836 788.492 296.93C788.726 297.023 788.987 297.07 789.273 297.07C789.588 297.07 789.867 297.016 790.109 296.906C790.354 296.797 790.545 296.645 790.683 296.449C790.821 296.251 790.89 296.023 790.89 295.766C790.89 295.497 790.821 295.262 790.683 295.059C790.548 294.853 790.349 294.691 790.086 294.574C789.825 294.457 789.51 294.398 789.14 294.398H788.464V293.414H789.14C789.437 293.414 789.698 293.361 789.921 293.254C790.148 293.147 790.325 292.999 790.453 292.809C790.58 292.616 790.644 292.391 790.644 292.133C790.644 291.885 790.588 291.671 790.476 291.488C790.367 291.303 790.211 291.159 790.007 291.055C789.807 290.951 789.57 290.898 789.296 290.898C789.036 290.898 788.793 290.947 788.566 291.043C788.342 291.137 788.16 291.272 788.019 291.449C787.878 291.624 787.803 291.833 787.793 292.078H786.625C786.638 291.646 786.765 291.266 787.007 290.937C787.252 290.609 787.575 290.353 787.976 290.168C788.377 289.983 788.823 289.891 789.312 289.891C789.825 289.891 790.268 289.991 790.64 290.191C791.015 290.389 791.304 290.654 791.507 290.984C791.713 291.315 791.815 291.677 791.812 292.07C791.815 292.518 791.69 292.898 791.437 293.211C791.187 293.523 790.854 293.733 790.437 293.84V293.902C790.968 293.983 791.38 294.194 791.671 294.535C791.966 294.876 792.112 295.299 792.109 295.805C792.112 296.245 791.989 296.639 791.742 296.988C791.497 297.337 791.162 297.612 790.738 297.812C790.313 298.01 789.828 298.109 789.281 298.109ZM797.617 290.836L798.164 291.219L795.199 297.168L794.683 296.742L797.617 290.836ZM796.426 298.129C795.808 298.129 795.281 297.967 794.844 297.645C794.406 297.319 794.072 296.849 793.84 296.234C793.608 295.617 793.492 294.872 793.492 294C793.492 293.133 793.608 292.393 793.84 291.781C794.074 291.167 794.41 290.698 794.848 290.375C795.288 290.049 795.814 289.887 796.426 289.887C797.038 289.887 797.562 290.049 798 290.375C798.437 290.698 798.772 291.167 799.004 291.781C799.238 292.393 799.355 293.133 799.355 294C799.355 294.872 799.239 295.617 799.008 296.234C798.776 296.849 798.441 297.319 798.004 297.645C797.566 297.967 797.04 298.129 796.426 298.129ZM796.426 297.086C796.967 297.086 797.391 296.823 797.695 296.297C798.003 295.768 798.156 295.003 798.156 294C798.156 293.336 798.086 292.775 797.945 292.316C797.807 291.855 797.608 291.507 797.348 291.27C797.09 291.033 796.782 290.914 796.426 290.914C795.887 290.914 795.463 291.18 795.156 291.711C794.849 292.242 794.694 293.005 794.691 294C794.691 294.667 794.76 295.23 794.898 295.691C795.039 296.15 795.238 296.497 795.496 296.734C795.754 296.969 796.064 297.086 796.426 297.086ZM806.981 290H808.184V295.672C808.184 296.185 808.083 296.624 807.879 296.988C807.679 297.353 807.396 297.632 807.032 297.824C806.667 298.014 806.24 298.109 805.751 298.109C805.3 298.109 804.895 298.027 804.536 297.863C804.179 297.699 803.896 297.461 803.688 297.148C803.482 296.833 803.379 296.451 803.379 296H804.579C804.579 296.221 804.629 296.413 804.731 296.574C804.835 296.736 804.977 296.862 805.157 296.953C805.339 297.042 805.547 297.086 805.782 297.086C806.037 297.086 806.253 297.033 806.43 296.926C806.61 296.816 806.747 296.656 806.84 296.445C806.934 296.234 806.981 295.977 806.981 295.672V290ZM810.672 298H809.39L812.269 290H813.664L816.543 298H815.262L813 291.453H812.937L810.672 298ZM810.887 294.867H815.043V295.883H810.887V294.867ZM824.21 290V298H823.101L819.034 292.133H818.96V298H817.753V290H818.87L822.941 295.875H823.015V290H824.21Z"
fill="#A1ABBD"
/>
<rect
width="1"
height="246"
transform="translate(925.727 16)"
fill="url(#paint14_linear_492_131505)"
/>
<mask
id="mask7_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="925"
y="16"
width="2"
height="246"
>
<rect
x="925.727"
y="16"
width="1"
height="246"
fill="url(#paint15_linear_492_131505)"
/>
</mask>
<g mask="url(#mask7_492_131505)">
<path d="M926.227 16V262" stroke="#F0F2F5" strokeDasharray="2 2" />
</g>
<path
d="M912.198 290.836L912.745 291.219L909.78 297.168L909.265 296.742L912.198 290.836ZM911.007 298.129C910.39 298.129 909.862 297.967 909.425 297.645C908.987 297.319 908.653 296.849 908.421 296.234C908.189 295.617 908.073 294.872 908.073 294C908.073 293.133 908.189 292.393 908.421 291.781C908.655 291.167 908.991 290.698 909.429 290.375C909.869 290.049 910.395 289.887 911.007 289.887C911.619 289.887 912.143 290.049 912.581 290.375C913.018 290.698 913.353 291.167 913.585 291.781C913.819 292.393 913.936 293.133 913.936 294C913.936 294.872 913.821 295.617 913.589 296.234C913.357 296.849 913.022 297.319 912.585 297.645C912.147 297.967 911.621 298.129 911.007 298.129ZM911.007 297.086C911.548 297.086 911.972 296.823 912.276 296.297C912.584 295.768 912.737 295.003 912.737 294C912.737 293.336 912.667 292.775 912.526 292.316C912.388 291.855 912.189 291.507 911.929 291.27C911.671 291.033 911.363 290.914 911.007 290.914C910.468 290.914 910.044 291.18 909.737 291.711C909.43 292.242 909.275 293.005 909.272 294C909.272 294.667 909.341 295.23 909.479 295.691C909.62 296.15 909.819 296.497 910.077 296.734C910.335 296.969 910.645 297.086 911.007 297.086ZM918.17 298.109C917.813 298.104 917.462 298.039 917.115 297.914C916.772 297.789 916.459 297.581 916.178 297.289C915.897 296.997 915.671 296.605 915.502 296.113C915.335 295.621 915.252 295.007 915.252 294.27C915.252 293.572 915.321 292.952 915.459 292.41C915.6 291.868 915.802 291.411 916.065 291.039C916.328 290.664 916.645 290.379 917.018 290.184C917.39 289.988 917.808 289.891 918.272 289.891C918.748 289.891 919.171 289.984 919.541 290.172C919.911 290.359 920.21 290.618 920.44 290.949C920.671 291.28 920.819 291.656 920.881 292.078H919.69C919.609 291.745 919.449 291.473 919.209 291.262C918.97 291.051 918.657 290.945 918.272 290.945C917.686 290.945 917.229 291.201 916.901 291.711C916.575 292.221 916.411 292.931 916.408 293.84H916.467C916.605 293.613 916.774 293.421 916.975 293.262C917.178 293.1 917.404 292.977 917.654 292.891C917.907 292.802 918.173 292.758 918.451 292.758C918.915 292.758 919.334 292.871 919.709 293.098C920.087 293.322 920.388 293.632 920.612 294.027C920.835 294.423 920.947 294.876 920.947 295.387C920.947 295.897 920.832 296.359 920.6 296.773C920.371 297.187 920.048 297.516 919.631 297.758C919.214 297.997 918.727 298.115 918.17 298.109ZM918.166 297.094C918.474 297.094 918.748 297.018 918.99 296.867C919.233 296.716 919.424 296.513 919.565 296.258C919.705 296.003 919.776 295.717 919.776 295.402C919.776 295.095 919.707 294.815 919.569 294.562C919.433 294.31 919.246 294.109 919.006 293.961C918.769 293.812 918.498 293.738 918.194 293.738C917.962 293.738 917.747 293.783 917.549 293.871C917.354 293.96 917.182 294.082 917.033 294.238C916.885 294.395 916.768 294.574 916.682 294.777C916.599 294.978 916.557 295.19 916.557 295.414C916.557 295.714 916.626 295.991 916.764 296.246C916.904 296.501 917.096 296.707 917.338 296.863C917.583 297.017 917.859 297.094 918.166 297.094ZM925.501 298V290H930.462V291.039H926.708V293.477H930.106V294.512H926.708V298H925.501ZM932.001 298V290H937.017V291.039H933.208V293.477H936.755V294.512H933.208V296.961H937.064V298H932.001ZM938.684 298V290H941.614C942.181 290 942.652 290.094 943.024 290.281C943.396 290.466 943.675 290.717 943.86 291.035C944.045 291.35 944.137 291.706 944.137 292.102C944.137 292.435 944.076 292.716 943.954 292.945C943.831 293.172 943.667 293.354 943.461 293.492C943.258 293.628 943.034 293.727 942.79 293.789V293.867C943.055 293.88 943.314 293.966 943.567 294.125C943.822 294.281 944.033 294.504 944.2 294.793C944.366 295.082 944.45 295.434 944.45 295.848C944.45 296.257 944.353 296.624 944.161 296.949C943.971 297.272 943.676 297.529 943.278 297.719C942.879 297.906 942.37 298 941.75 298H938.684ZM939.891 296.965H941.633C942.211 296.965 942.625 296.853 942.875 296.629C943.125 296.405 943.25 296.125 943.25 295.789C943.25 295.536 943.187 295.305 943.059 295.094C942.931 294.883 942.749 294.715 942.512 294.59C942.278 294.465 941.999 294.402 941.676 294.402H939.891V296.965ZM939.891 293.461H941.508C941.779 293.461 942.023 293.409 942.239 293.305C942.458 293.201 942.631 293.055 942.758 292.867C942.888 292.677 942.954 292.453 942.954 292.195C942.954 291.865 942.838 291.587 942.606 291.363C942.374 291.139 942.019 291.027 941.54 291.027H939.891V293.461Z"
fill="#A1ABBD"
/>
<rect
width="1"
height="246"
transform="translate(1046.55 16)"
fill="url(#paint16_linear_492_131505)"
/>
<mask
id="mask8_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="1046"
y="16"
width="2"
height="246"
>
<rect
x="1046.55"
y="16"
width="1"
height="246"
fill="url(#paint17_linear_492_131505)"
/>
</mask>
<g mask="url(#mask8_492_131505)">
<path d="M1047.05 16V262" stroke="#F0F2F5" strokeDasharray="2 2" />
</g>
<path
d="M1032.98 290V298H1031.77V291.211H1031.72L1029.81 292.461V291.305L1031.8 290H1032.98ZM1037.98 298.109C1037.45 298.109 1036.97 298.017 1036.54 297.832C1036.12 297.647 1035.79 297.391 1035.55 297.062C1035.31 296.732 1035.18 296.349 1035.16 295.914H1036.38C1036.4 296.151 1036.48 296.357 1036.62 296.531C1036.77 296.703 1036.96 296.836 1037.19 296.93C1037.43 297.023 1037.69 297.07 1037.97 297.07C1038.29 297.07 1038.57 297.016 1038.81 296.906C1039.05 296.797 1039.25 296.645 1039.38 296.449C1039.52 296.251 1039.59 296.023 1039.59 295.766C1039.59 295.497 1039.52 295.262 1039.38 295.059C1039.25 294.853 1039.05 294.691 1038.79 294.574C1038.53 294.457 1038.21 294.398 1037.84 294.398H1037.17V293.414H1037.84C1038.14 293.414 1038.4 293.361 1038.62 293.254C1038.85 293.147 1039.03 292.999 1039.15 292.809C1039.28 292.616 1039.34 292.391 1039.34 292.133C1039.34 291.885 1039.29 291.671 1039.18 291.488C1039.07 291.303 1038.91 291.159 1038.71 291.055C1038.51 290.951 1038.27 290.898 1038 290.898C1037.74 290.898 1037.49 290.947 1037.27 291.043C1037.04 291.137 1036.86 291.272 1036.72 291.449C1036.58 291.624 1036.5 291.833 1036.49 292.078H1035.33C1035.34 291.646 1035.47 291.266 1035.71 290.937C1035.95 290.609 1036.28 290.353 1036.68 290.168C1037.08 289.983 1037.52 289.891 1038.01 289.891C1038.53 289.891 1038.97 289.991 1039.34 290.191C1039.72 290.389 1040 290.654 1040.21 290.984C1040.41 291.315 1040.52 291.677 1040.51 292.07C1040.52 292.518 1040.39 292.898 1040.14 293.211C1039.89 293.523 1039.55 293.733 1039.14 293.84V293.902C1039.67 293.983 1040.08 294.194 1040.37 294.535C1040.67 294.876 1040.81 295.299 1040.81 295.805C1040.81 296.245 1040.69 296.639 1040.44 296.988C1040.2 297.337 1039.86 297.612 1039.44 297.812C1039.01 298.01 1038.53 298.109 1037.98 298.109ZM1045.42 298V290H1050.38V291.039H1046.62V293.477H1050.02V294.512H1046.62V298H1045.42ZM1051.92 298V290H1056.93V291.039H1053.12V293.477H1056.67V294.512H1053.12V296.961H1056.98V298H1051.92ZM1058.6 298V290H1061.53C1062.1 290 1062.57 290.094 1062.94 290.281C1063.31 290.466 1063.59 290.717 1063.78 291.035C1063.96 291.35 1064.05 291.706 1064.05 292.102C1064.05 292.435 1063.99 292.716 1063.87 292.945C1063.75 293.172 1063.58 293.354 1063.38 293.492C1063.17 293.628 1062.95 293.727 1062.71 293.789V293.867C1062.97 293.88 1063.23 293.966 1063.48 294.125C1063.74 294.281 1063.95 294.504 1064.12 294.793C1064.28 295.082 1064.37 295.434 1064.37 295.848C1064.37 296.257 1064.27 296.624 1064.08 296.949C1063.89 297.272 1063.59 297.529 1063.19 297.719C1062.8 297.906 1062.29 298 1061.67 298H1058.6ZM1059.81 296.965H1061.55C1062.13 296.965 1062.54 296.853 1062.79 296.629C1063.04 296.405 1063.17 296.125 1063.17 295.789C1063.17 295.536 1063.1 295.305 1062.97 295.094C1062.85 294.883 1062.67 294.715 1062.43 294.59C1062.19 294.465 1061.92 294.402 1061.59 294.402H1059.81V296.965ZM1059.81 293.461H1061.42C1061.69 293.461 1061.94 293.409 1062.15 293.305C1062.37 293.201 1062.55 293.055 1062.67 292.867C1062.8 292.677 1062.87 292.453 1062.87 292.195C1062.87 291.865 1062.75 291.587 1062.52 291.363C1062.29 291.139 1061.93 291.027 1061.46 291.027H1059.81V293.461Z"
fill="#A1ABBD"
/>
<rect
width="1"
height="246"
transform="translate(1167.36 16)"
fill="url(#paint18_linear_492_131505)"
/>
<mask
id="mask9_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="1167"
y="16"
width="2"
height="246"
>
<rect
x="1167.36"
y="16"
width="1"
height="246"
fill="url(#paint19_linear_492_131505)"
/>
</mask>
<g mask="url(#mask9_492_131505)">
<path d="M1167.86 16V262" stroke="#F0F2F5" strokeDasharray="2 2" />
</g>
<path
d="M1149.98 298V297.125L1152.69 294.32C1152.98 294.016 1153.22 293.749 1153.4 293.52C1153.59 293.288 1153.74 293.068 1153.83 292.859C1153.92 292.651 1153.97 292.43 1153.97 292.195C1153.97 291.93 1153.91 291.701 1153.78 291.508C1153.66 291.313 1153.49 291.163 1153.27 291.059C1153.05 290.952 1152.81 290.898 1152.54 290.898C1152.25 290.898 1152 290.957 1151.79 291.074C1151.58 291.191 1151.41 291.357 1151.3 291.57C1151.18 291.784 1151.13 292.034 1151.13 292.32H1149.97C1149.97 291.833 1150.09 291.408 1150.31 291.043C1150.53 290.678 1150.84 290.396 1151.23 290.195C1151.62 289.992 1152.07 289.891 1152.56 289.891C1153.07 289.891 1153.51 289.991 1153.89 290.191C1154.28 290.389 1154.58 290.66 1154.79 291.004C1155.01 291.345 1155.12 291.73 1155.12 292.16C1155.12 292.457 1155.06 292.747 1154.95 293.031C1154.84 293.315 1154.65 293.632 1154.38 293.98C1154.1 294.327 1153.72 294.747 1153.24 295.242L1151.65 296.906V296.965H1155.25V298H1149.98ZM1160.76 290.836L1161.31 291.219L1158.34 297.168L1157.83 296.742L1160.76 290.836ZM1159.57 298.129C1158.95 298.129 1158.42 297.967 1157.99 297.645C1157.55 297.319 1157.21 296.849 1156.98 296.234C1156.75 295.617 1156.63 294.872 1156.63 294C1156.63 293.133 1156.75 292.393 1156.98 291.781C1157.22 291.167 1157.55 290.698 1157.99 290.375C1158.43 290.049 1158.96 289.887 1159.57 289.887C1160.18 289.887 1160.7 290.049 1161.14 290.375C1161.58 290.698 1161.91 291.167 1162.15 291.781C1162.38 292.393 1162.5 293.133 1162.5 294C1162.5 294.872 1162.38 295.617 1162.15 296.234C1161.92 296.849 1161.58 297.319 1161.15 297.645C1160.71 297.967 1160.18 298.129 1159.57 298.129ZM1159.57 297.086C1160.11 297.086 1160.53 296.823 1160.84 296.297C1161.14 295.768 1161.3 295.003 1161.3 294C1161.3 293.336 1161.23 292.775 1161.09 292.316C1160.95 291.855 1160.75 291.507 1160.49 291.27C1160.23 291.033 1159.92 290.914 1159.57 290.914C1159.03 290.914 1158.61 291.18 1158.3 291.711C1157.99 292.242 1157.84 293.005 1157.83 294C1157.83 294.667 1157.9 295.23 1158.04 295.691C1158.18 296.15 1158.38 296.497 1158.64 296.734C1158.9 296.969 1159.21 297.086 1159.57 297.086ZM1167.01 298V290H1171.97V291.039H1168.22V293.477H1171.62V294.512H1168.22V298H1167.01ZM1173.51 298V290H1178.53V291.039H1174.72V293.477H1178.27V294.512H1174.72V296.961H1178.58V298H1173.51ZM1180.2 298V290H1183.13C1183.69 290 1184.16 290.094 1184.54 290.281C1184.91 290.466 1185.19 290.717 1185.37 291.035C1185.56 291.35 1185.65 291.706 1185.65 292.102C1185.65 292.435 1185.59 292.716 1185.47 292.945C1185.34 293.172 1185.18 293.354 1184.97 293.492C1184.77 293.628 1184.55 293.727 1184.3 293.789V293.867C1184.57 293.88 1184.83 293.966 1185.08 294.125C1185.33 294.281 1185.55 294.504 1185.71 294.793C1185.88 295.082 1185.96 295.434 1185.96 295.848C1185.96 296.257 1185.87 296.624 1185.67 296.949C1185.48 297.272 1185.19 297.529 1184.79 297.719C1184.39 297.906 1183.88 298 1183.26 298H1180.2ZM1181.4 296.965H1183.15C1183.72 296.965 1184.14 296.853 1184.39 296.629C1184.64 296.405 1184.76 296.125 1184.76 295.789C1184.76 295.536 1184.7 295.305 1184.57 295.094C1184.44 294.883 1184.26 294.715 1184.03 294.59C1183.79 294.465 1183.51 294.402 1183.19 294.402H1181.4V296.965ZM1181.4 293.461H1183.02C1183.29 293.461 1183.54 293.409 1183.75 293.305C1183.97 293.201 1184.14 293.055 1184.27 292.867C1184.4 292.677 1184.47 292.453 1184.47 292.195C1184.47 291.865 1184.35 291.587 1184.12 291.363C1183.89 291.139 1183.53 291.027 1183.05 291.027H1181.4V293.461Z"
fill="#A1ABBD"
/>
<rect
width="1"
height="246"
transform="translate(1292.68 16)"
fill="url(#paint20_linear_492_131505)"
/>
<mask
id="mask10_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="1292"
y="16"
width="2"
height="246"
>
<rect
x="1292.68"
y="16"
width="1"
height="246"
fill="url(#paint21_linear_492_131505)"
/>
</mask>
<g mask="url(#mask10_492_131505)">
<path d="M1293.18 16V262" stroke="#F0F2F5" strokeDasharray="2 2" />
</g>
<path
d="M1275.35 298V297.125L1278.06 294.32C1278.35 294.016 1278.59 293.749 1278.78 293.52C1278.97 293.288 1279.11 293.068 1279.2 292.859C1279.29 292.651 1279.34 292.43 1279.34 292.195C1279.34 291.93 1279.28 291.701 1279.15 291.508C1279.03 291.313 1278.86 291.163 1278.64 291.059C1278.43 290.952 1278.18 290.898 1277.91 290.898C1277.63 290.898 1277.38 290.957 1277.16 291.074C1276.95 291.191 1276.78 291.357 1276.67 291.57C1276.56 291.784 1276.5 292.034 1276.5 292.32H1275.35C1275.35 291.833 1275.46 291.408 1275.68 291.043C1275.91 290.678 1276.21 290.396 1276.6 290.195C1276.99 289.992 1277.44 289.891 1277.94 289.891C1278.44 289.891 1278.88 289.991 1279.26 290.191C1279.65 290.389 1279.95 290.66 1280.17 291.004C1280.38 291.345 1280.49 291.73 1280.49 292.16C1280.49 292.457 1280.43 292.747 1280.32 293.031C1280.21 293.315 1280.02 293.632 1279.75 293.98C1279.47 294.327 1279.09 294.747 1278.61 295.242L1277.02 296.906V296.965H1280.62V298H1275.35ZM1284.95 298.109C1284.59 298.104 1284.24 298.039 1283.89 297.914C1283.55 297.789 1283.24 297.581 1282.96 297.289C1282.67 296.997 1282.45 296.605 1282.28 296.113C1282.11 295.621 1282.03 295.007 1282.03 294.27C1282.03 293.572 1282.1 292.952 1282.24 292.41C1282.38 291.868 1282.58 291.411 1282.84 291.039C1283.11 290.664 1283.42 290.379 1283.8 290.184C1284.17 289.988 1284.59 289.891 1285.05 289.891C1285.53 289.891 1285.95 289.984 1286.32 290.172C1286.69 290.359 1286.99 290.618 1287.22 290.949C1287.45 291.28 1287.6 291.656 1287.66 292.078H1286.47C1286.39 291.745 1286.23 291.473 1285.99 291.262C1285.75 291.051 1285.43 290.945 1285.05 290.945C1284.46 290.945 1284.01 291.201 1283.68 291.711C1283.35 292.221 1283.19 292.931 1283.19 293.84H1283.24C1283.38 293.613 1283.55 293.421 1283.75 293.262C1283.96 293.1 1284.18 292.977 1284.43 292.891C1284.68 292.802 1284.95 292.758 1285.23 292.758C1285.69 292.758 1286.11 292.871 1286.49 293.098C1286.86 293.322 1287.16 293.632 1287.39 294.027C1287.61 294.423 1287.72 294.876 1287.72 295.387C1287.72 295.897 1287.61 296.359 1287.38 296.773C1287.15 297.187 1286.83 297.516 1286.41 297.758C1285.99 297.997 1285.5 298.115 1284.95 298.109ZM1284.94 297.094C1285.25 297.094 1285.53 297.018 1285.77 296.867C1286.01 296.716 1286.2 296.513 1286.34 296.258C1286.48 296.003 1286.55 295.717 1286.55 295.402C1286.55 295.095 1286.48 294.815 1286.35 294.562C1286.21 294.31 1286.02 294.109 1285.78 293.961C1285.55 293.812 1285.28 293.738 1284.97 293.738C1284.74 293.738 1284.52 293.783 1284.33 293.871C1284.13 293.96 1283.96 294.082 1283.81 294.238C1283.66 294.395 1283.55 294.574 1283.46 294.777C1283.38 294.978 1283.33 295.19 1283.33 295.414C1283.33 295.714 1283.4 295.991 1283.54 296.246C1283.68 296.501 1283.87 296.707 1284.12 296.863C1284.36 297.017 1284.64 297.094 1284.94 297.094ZM1292.28 298V290H1297.24V291.039H1293.49V293.477H1296.88V294.512H1293.49V298H1292.28ZM1298.78 298V290H1303.79V291.039H1299.99V293.477H1303.53V294.512H1299.99V296.961H1303.84V298H1298.78ZM1305.46 298V290H1308.39C1308.96 290 1309.43 290.094 1309.8 290.281C1310.17 290.466 1310.45 290.717 1310.64 291.035C1310.82 291.35 1310.91 291.706 1310.91 292.102C1310.91 292.435 1310.85 292.716 1310.73 292.945C1310.61 293.172 1310.44 293.354 1310.24 293.492C1310.04 293.628 1309.81 293.727 1309.57 293.789V293.867C1309.83 293.88 1310.09 293.966 1310.34 294.125C1310.6 294.281 1310.81 294.504 1310.98 294.793C1311.14 295.082 1311.23 295.434 1311.23 295.848C1311.23 296.257 1311.13 296.624 1310.94 296.949C1310.75 297.272 1310.45 297.529 1310.06 297.719C1309.66 297.906 1309.15 298 1308.53 298H1305.46ZM1306.67 296.965H1308.41C1308.99 296.965 1309.4 296.853 1309.65 296.629C1309.9 296.405 1310.03 296.125 1310.03 295.789C1310.03 295.536 1309.96 295.305 1309.84 295.094C1309.71 294.883 1309.53 294.715 1309.29 294.59C1309.06 294.465 1308.78 294.402 1308.45 294.402H1306.67V296.965ZM1306.67 293.461H1308.29C1308.56 293.461 1308.8 293.409 1309.02 293.305C1309.23 293.201 1309.41 293.055 1309.54 292.867C1309.67 292.677 1309.73 292.453 1309.73 292.195C1309.73 291.865 1309.62 291.587 1309.38 291.363C1309.15 291.139 1308.8 291.027 1308.32 291.027H1306.67V293.461Z"
fill="#A1ABBD"
/>
<rect
width="1"
height="246"
transform="translate(1443 16)"
fill="url(#paint22_linear_492_131505)"
/>
<mask
id="mask11_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="1443"
y="16"
width="2"
height="246"
>
<rect
x="1443"
y="16"
width="1"
height="246"
fill="url(#paint23_linear_492_131505)"
/>
</mask>
<g mask="url(#mask11_492_131505)">
<path d="M1443.5 16V262" stroke="#F0F2F5" strokeDasharray="2 2" />
</g>
<path
d="M1412.77 298.109C1412.42 298.104 1412.07 298.039 1411.72 297.914C1411.38 297.789 1411.06 297.581 1410.78 297.289C1410.5 296.997 1410.28 296.605 1410.11 296.113C1409.94 295.621 1409.86 295.007 1409.86 294.27C1409.86 293.572 1409.93 292.952 1410.06 292.41C1410.2 291.868 1410.41 291.411 1410.67 291.039C1410.93 290.664 1411.25 290.379 1411.62 290.184C1411.99 289.988 1412.41 289.891 1412.88 289.891C1413.35 289.891 1413.78 289.984 1414.15 290.172C1414.52 290.359 1414.81 290.618 1415.04 290.949C1415.28 291.28 1415.42 291.656 1415.49 292.078H1414.29C1414.21 291.745 1414.05 291.473 1413.81 291.262C1413.57 291.051 1413.26 290.945 1412.88 290.945C1412.29 290.945 1411.83 291.201 1411.5 291.711C1411.18 292.221 1411.02 292.931 1411.01 293.84H1411.07C1411.21 293.613 1411.38 293.421 1411.58 293.262C1411.78 293.1 1412.01 292.977 1412.26 292.891C1412.51 292.802 1412.78 292.758 1413.06 292.758C1413.52 292.758 1413.94 292.871 1414.31 293.098C1414.69 293.322 1414.99 293.632 1415.22 294.027C1415.44 294.423 1415.55 294.876 1415.55 295.387C1415.55 295.897 1415.44 296.359 1415.2 296.773C1414.97 297.187 1414.65 297.516 1414.24 297.758C1413.82 297.997 1413.33 298.115 1412.77 298.109ZM1412.77 297.094C1413.08 297.094 1413.35 297.018 1413.59 296.867C1413.84 296.716 1414.03 296.513 1414.17 296.258C1414.31 296.003 1414.38 295.717 1414.38 295.402C1414.38 295.095 1414.31 294.815 1414.17 294.562C1414.04 294.31 1413.85 294.109 1413.61 293.961C1413.37 293.812 1413.1 293.738 1412.8 293.738C1412.57 293.738 1412.35 293.783 1412.15 293.871C1411.96 293.96 1411.79 294.082 1411.64 294.238C1411.49 294.395 1411.37 294.574 1411.29 294.777C1411.2 294.978 1411.16 295.19 1411.16 295.414C1411.16 295.714 1411.23 295.991 1411.37 296.246C1411.51 296.501 1411.7 296.707 1411.94 296.863C1412.19 297.017 1412.46 297.094 1412.77 297.094ZM1420.1 290H1421.57L1424.12 296.219H1424.21L1426.76 290H1428.22V298H1427.07V292.211H1427L1424.64 297.988H1423.69L1421.33 292.207H1421.25V298H1420.1V290ZM1430.71 298H1429.43L1432.31 290H1433.7L1436.58 298H1435.3L1433.04 291.453H1432.97L1430.71 298ZM1430.92 294.867H1435.08V295.883H1430.92V294.867ZM1437.79 298V290H1440.64C1441.26 290 1441.77 290.107 1442.18 290.32C1442.6 290.534 1442.9 290.829 1443.11 291.207C1443.31 291.582 1443.41 292.016 1443.41 292.508C1443.41 292.997 1443.31 293.428 1443.1 293.801C1442.9 294.171 1442.59 294.458 1442.18 294.664C1441.77 294.87 1441.26 294.973 1440.64 294.973H1438.48V293.934H1440.53C1440.92 293.934 1441.24 293.878 1441.48 293.766C1441.73 293.654 1441.91 293.491 1442.02 293.277C1442.14 293.064 1442.2 292.807 1442.2 292.508C1442.2 292.206 1442.14 291.944 1442.02 291.723C1441.91 291.501 1441.72 291.332 1441.48 291.215C1441.23 291.095 1440.91 291.035 1440.51 291.035H1439V298H1437.79ZM1441.74 294.391L1443.71 298H1442.34L1440.4 294.391H1441.74Z"
fill="#A1ABBD"
/>
<path
d="M24.2943 20V28H23.0834V21.2109H23.0365L21.1224 22.4609V21.3047L23.1185 20H24.2943ZM30.4899 20.8359L31.0368 21.2187L28.072 27.168L27.5563 26.7422L30.4899 20.8359ZM29.2985 28.1289C28.6813 28.1289 28.154 27.9674 27.7165 27.6445C27.279 27.319 26.9443 26.849 26.7126 26.2344C26.4808 25.6172 26.3649 24.8724 26.3649 24C26.3649 23.1328 26.4808 22.3932 26.7126 21.7812C26.947 21.1667 27.2829 20.6979 27.7204 20.375C28.1605 20.0495 28.6865 19.8867 29.2985 19.8867C29.9105 19.8867 30.4352 20.0495 30.8727 20.375C31.3102 20.6979 31.6449 21.1667 31.8766 21.7812C32.111 22.3932 32.2282 23.1328 32.2282 24C32.2282 24.8724 32.1123 25.6172 31.8805 26.2344C31.6488 26.849 31.3141 27.319 30.8766 27.6445C30.4391 27.9674 29.9131 28.1289 29.2985 28.1289ZM29.2985 27.0859C29.8402 27.0859 30.2634 26.8229 30.568 26.2969C30.8753 25.7682 31.029 25.0026 31.029 24C31.029 23.3359 30.9587 22.7747 30.818 22.3164C30.68 21.8555 30.4808 21.5065 30.2204 21.2695C29.9626 21.0326 29.6553 20.9141 29.2985 20.9141C28.7595 20.9141 28.3363 21.1797 28.029 21.7109C27.7217 22.2422 27.5667 23.0052 27.5641 24C27.5641 24.6667 27.6332 25.2305 27.7712 25.6914C27.9118 26.1497 28.111 26.4974 28.3688 26.7344C28.6266 26.9687 28.9365 27.0859 29.2985 27.0859ZM37.6455 20.8359L38.1924 21.2187L35.2275 27.168L34.7119 26.7422L37.6455 20.8359ZM36.4541 28.1289C35.8369 28.1289 35.3096 27.9674 34.8721 27.6445C34.4346 27.319 34.0999 26.849 33.8682 26.2344C33.6364 25.6172 33.5205 24.8724 33.5205 24C33.5205 23.1328 33.6364 22.3932 33.8682 21.7812C34.1025 21.1667 34.4385 20.6979 34.876 20.375C35.3161 20.0495 35.8421 19.8867 36.4541 19.8867C37.0661 19.8867 37.5908 20.0495 38.0283 20.375C38.4658 20.6979 38.8005 21.1667 39.0322 21.7812C39.2666 22.3932 39.3838 23.1328 39.3838 24C39.3838 24.8724 39.2679 25.6172 39.0361 26.2344C38.8044 26.849 38.4697 27.319 38.0322 27.6445C37.5947 27.9674 37.0687 28.1289 36.4541 28.1289ZM36.4541 27.0859C36.9958 27.0859 37.4189 26.8229 37.7236 26.2969C38.0309 25.7682 38.1846 25.0026 38.1846 24C38.1846 23.3359 38.1143 22.7747 37.9736 22.3164C37.8356 21.8555 37.6364 21.5065 37.376 21.2695C37.1182 21.0326 36.8109 20.9141 36.4541 20.9141C35.915 20.9141 35.4919 21.1797 35.1846 21.7109C34.8773 22.2422 34.7223 23.0052 34.7197 24C34.7197 24.6667 34.7887 25.2305 34.9268 25.6914C35.0674 26.1497 35.2666 26.4974 35.5244 26.7344C35.7822 26.9687 36.0921 27.0859 36.4541 27.0859Z"
fill="#A1ABBD"
/>
<path
d="M29.3669 75.709C28.807 75.709 28.3122 75.6126 27.8825 75.4199C27.4554 75.2272 27.1208 74.9616 26.8786 74.623C26.6364 74.2845 26.5166 73.8991 26.5192 73.4668C26.5166 73.1283 26.5856 72.8171 26.7262 72.5332C26.8695 72.2467 27.0635 72.0085 27.3083 71.8184C27.5531 71.6257 27.8265 71.5033 28.1286 71.4512V71.4043C27.7302 71.3079 27.4111 71.0944 27.1716 70.7637C26.932 70.4329 26.8135 70.0527 26.8161 69.623C26.8135 69.2142 26.9216 68.8496 27.1403 68.5293C27.3617 68.2064 27.6651 67.9525 28.0505 67.7676C28.4359 67.5827 28.8747 67.4902 29.3669 67.4902C29.8539 67.4902 30.2887 67.584 30.6716 67.7715C31.057 67.9564 31.3604 68.2103 31.5817 68.5332C31.8031 68.8535 31.9151 69.2168 31.9177 69.623C31.9151 70.0527 31.7927 70.4329 31.5505 70.7637C31.3083 71.0944 30.9932 71.3079 30.6052 71.4043V71.4512C30.9046 71.5033 31.1742 71.6257 31.4137 71.8184C31.6559 72.0085 31.8486 72.2467 31.9919 72.5332C32.1377 72.8171 32.2119 73.1283 32.2145 73.4668C32.2119 73.8991 32.0895 74.2845 31.8473 74.623C31.6052 74.9616 31.2692 75.2272 30.8395 75.4199C30.4124 75.6126 29.9216 75.709 29.3669 75.709ZM29.3669 74.7207C29.6976 74.7207 29.9841 74.666 30.2262 74.5566C30.4684 74.4447 30.6559 74.2897 30.7887 74.0918C30.9216 73.8913 30.9893 73.6569 30.9919 73.3887C30.9893 73.11 30.9164 72.8639 30.7731 72.6504C30.6325 72.4368 30.4411 72.2689 30.1989 72.1465C29.9567 72.0241 29.6794 71.9629 29.3669 71.9629C29.0518 71.9629 28.7718 72.0241 28.527 72.1465C28.2822 72.2689 28.0895 72.4368 27.9489 72.6504C27.8083 72.8639 27.7393 73.11 27.7419 73.3887C27.7393 73.6569 27.8031 73.8913 27.9333 74.0918C28.0661 74.2897 28.2549 74.4447 28.4997 74.5566C28.7445 74.666 29.0335 74.7207 29.3669 74.7207ZM29.3669 70.998C29.6325 70.998 29.8682 70.9447 30.0739 70.8379C30.2796 70.7311 30.4411 70.5827 30.5583 70.3926C30.6781 70.2025 30.7393 69.9798 30.7419 69.7246C30.7393 69.4746 30.6794 69.2559 30.5622 69.0684C30.4476 68.8809 30.2874 68.7363 30.0817 68.6348C29.876 68.5306 29.6377 68.4785 29.3669 68.4785C29.0908 68.4785 28.8486 68.5306 28.6403 68.6348C28.4346 68.7363 28.2744 68.8809 28.1598 69.0684C28.0453 69.2559 27.9893 69.4746 27.9919 69.7246C27.9893 69.9798 28.0466 70.2025 28.1637 70.3926C28.2809 70.5827 28.4424 70.7311 28.6481 70.8379C28.8565 70.9447 29.096 70.998 29.3669 70.998ZM37.6455 68.4355L38.1924 68.8184L35.2275 74.7676L34.7119 74.3418L37.6455 68.4355ZM36.4541 75.7285C35.8369 75.7285 35.3096 75.5671 34.8721 75.2441C34.4346 74.9186 34.0999 74.4486 33.8682 73.834C33.6364 73.2168 33.5205 72.472 33.5205 71.5996C33.5205 70.7324 33.6364 69.9928 33.8682 69.3809C34.1025 68.7663 34.4385 68.2975 34.876 67.9746C35.3161 67.6491 35.8421 67.4863 36.4541 67.4863C37.0661 67.4863 37.5908 67.6491 38.0283 67.9746C38.4658 68.2975 38.8005 68.7663 39.0322 69.3809C39.2666 69.9928 39.3838 70.7324 39.3838 71.5996C39.3838 72.472 39.2679 73.2168 39.0361 73.834C38.8044 74.4486 38.4697 74.9186 38.0322 75.2441C37.5947 75.5671 37.0687 75.7285 36.4541 75.7285ZM36.4541 74.6855C36.9958 74.6855 37.4189 74.4225 37.7236 73.8965C38.0309 73.3678 38.1846 72.6022 38.1846 71.5996C38.1846 70.9355 38.1143 70.3743 37.9736 69.916C37.8356 69.4551 37.6364 69.1061 37.376 68.8691C37.1182 68.6322 36.8109 68.5137 36.4541 68.5137C35.915 68.5137 35.4919 68.7793 35.1846 69.3105C34.8773 69.8418 34.7223 70.6048 34.7197 71.5996C34.7197 72.2663 34.7887 72.8301 34.9268 73.291C35.0674 73.7493 35.2666 74.097 35.5244 74.334C35.7822 74.5684 36.0921 74.6855 36.4541 74.6855Z"
fill="#A1ABBD"
/>
<path
d="M29.4137 123.309C29.057 123.303 28.7054 123.238 28.3591 123.113C28.0153 122.988 27.7028 122.78 27.4216 122.488C27.1403 122.197 26.9151 121.805 26.7458 121.312C26.5791 120.82 26.4958 120.206 26.4958 119.469C26.4958 118.771 26.5648 118.151 26.7028 117.609C26.8434 117.068 27.0453 116.611 27.3083 116.238C27.5713 115.863 27.889 115.578 28.2614 115.383C28.6338 115.187 29.0518 115.09 29.5153 115.09C29.9919 115.09 30.4151 115.184 30.7848 115.371C31.1546 115.559 31.4541 115.818 31.6833 116.148C31.9151 116.479 32.0622 116.855 32.1247 117.277H30.9333C30.8526 116.944 30.6924 116.672 30.4528 116.461C30.2132 116.25 29.9007 116.145 29.5153 116.145C28.9294 116.145 28.4723 116.4 28.1442 116.91C27.8187 117.421 27.6546 118.13 27.652 119.039H27.7106C27.8486 118.812 28.0179 118.62 28.2184 118.461C28.4216 118.299 28.6481 118.176 28.8981 118.09C29.1507 118.001 29.4164 117.957 29.695 117.957C30.1585 117.957 30.5778 118.07 30.9528 118.297C31.3304 118.521 31.6312 118.831 31.8552 119.227C32.0791 119.622 32.1911 120.076 32.1911 120.586C32.1911 121.096 32.0752 121.559 31.8434 121.973C31.6143 122.387 31.2914 122.715 30.8747 122.957C30.458 123.197 29.971 123.314 29.4137 123.309ZM29.4098 122.293C29.7171 122.293 29.9919 122.217 30.2341 122.066C30.4762 121.915 30.6677 121.712 30.8083 121.457C30.9489 121.202 31.0192 120.917 31.0192 120.602C31.0192 120.294 30.9502 120.014 30.8122 119.762C30.6768 119.509 30.4893 119.309 30.2497 119.16C30.0127 119.012 29.7419 118.937 29.4372 118.937C29.2054 118.937 28.9906 118.982 28.7927 119.07C28.5973 119.159 28.4255 119.281 28.277 119.437C28.1286 119.594 28.0114 119.773 27.9255 119.977C27.8421 120.177 27.8005 120.389 27.8005 120.613C27.8005 120.913 27.8695 121.19 28.0075 121.445C28.1481 121.701 28.3395 121.906 28.5817 122.062C28.8265 122.216 29.1026 122.293 29.4098 122.293ZM37.6455 116.035L38.1924 116.418L35.2275 122.367L34.7119 121.941L37.6455 116.035ZM36.4541 123.328C35.8369 123.328 35.3096 123.167 34.8721 122.844C34.4346 122.518 34.0999 122.048 33.8682 121.434C33.6364 120.816 33.5205 120.072 33.5205 119.199C33.5205 118.332 33.6364 117.592 33.8682 116.98C34.1025 116.366 34.4385 115.897 34.876 115.574C35.3161 115.249 35.8421 115.086 36.4541 115.086C37.0661 115.086 37.5908 115.249 38.0283 115.574C38.4658 115.897 38.8005 116.366 39.0322 116.98C39.2666 117.592 39.3838 118.332 39.3838 119.199C39.3838 120.072 39.2679 120.816 39.0361 121.434C38.8044 122.048 38.4697 122.518 38.0322 122.844C37.5947 123.167 37.0687 123.328 36.4541 123.328ZM36.4541 122.285C36.9958 122.285 37.4189 122.022 37.7236 121.496C38.0309 120.967 38.1846 120.202 38.1846 119.199C38.1846 118.535 38.1143 117.974 37.9736 117.516C37.8356 117.055 37.6364 116.706 37.376 116.469C37.1182 116.232 36.8109 116.113 36.4541 116.113C35.915 116.113 35.4919 116.379 35.1846 116.91C34.8773 117.441 34.7223 118.204 34.7197 119.199C34.7197 119.866 34.7887 120.43 34.9268 120.891C35.0674 121.349 35.2666 121.697 35.5244 121.934C35.7822 122.168 36.0921 122.285 36.4541 122.285Z"
fill="#A1ABBD"
/>
<path
d="M26.2487 169.238V168.262L29.7057 162.801H30.4753V164.238H29.987L27.5143 168.152V168.215H32.2526V169.238H26.2487ZM30.0417 170.801V168.941L30.0495 168.496V162.801H31.194V170.801H30.0417ZM37.6455 163.637L38.1924 164.02L35.2275 169.969L34.7119 169.543L37.6455 163.637ZM36.4541 170.93C35.8369 170.93 35.3096 170.768 34.8721 170.445C34.4346 170.12 34.0999 169.65 33.8682 169.035C33.6364 168.418 33.5205 167.673 33.5205 166.801C33.5205 165.934 33.6364 165.194 33.8682 164.582C34.1025 163.967 34.4385 163.499 34.876 163.176C35.3161 162.85 35.8421 162.687 36.4541 162.687C37.0661 162.687 37.5908 162.85 38.0283 163.176C38.4658 163.499 38.8005 163.967 39.0322 164.582C39.2666 165.194 39.3838 165.934 39.3838 166.801C39.3838 167.673 39.2679 168.418 39.0361 169.035C38.8044 169.65 38.4697 170.12 38.0322 170.445C37.5947 170.768 37.0687 170.93 36.4541 170.93ZM36.4541 169.887C36.9958 169.887 37.4189 169.624 37.7236 169.098C38.0309 168.569 38.1846 167.803 38.1846 166.801C38.1846 166.137 38.1143 165.576 37.9736 165.117C37.8356 164.656 37.6364 164.307 37.376 164.07C37.1182 163.833 36.8109 163.715 36.4541 163.715C35.915 163.715 35.4919 163.98 35.1846 164.512C34.8773 165.043 34.7223 165.806 34.7197 166.801C34.7197 167.467 34.7887 168.031 34.9268 168.492C35.0674 168.951 35.2666 169.298 35.5244 169.535C35.7822 169.77 36.0921 169.887 36.4541 169.887Z"
fill="#A1ABBD"
/>
<path
d="M26.8679 218.4V217.525L29.5749 214.721C29.8639 214.416 30.1022 214.149 30.2897 213.92C30.4798 213.688 30.6218 213.468 30.7155 213.26C30.8093 213.051 30.8561 212.83 30.8561 212.596C30.8561 212.33 30.7936 212.101 30.6686 211.908C30.5436 211.713 30.3731 211.563 30.1569 211.459C29.9408 211.352 29.6973 211.299 29.4264 211.299C29.14 211.299 28.89 211.357 28.6764 211.475C28.4629 211.592 28.2988 211.757 28.1843 211.971C28.0697 212.184 28.0124 212.434 28.0124 212.721H26.86C26.86 212.234 26.972 211.808 27.196 211.443C27.4199 211.079 27.7272 210.796 28.1179 210.596C28.5085 210.393 28.9525 210.291 29.4499 210.291C29.9525 210.291 30.3952 210.391 30.778 210.592C31.1634 210.79 31.4642 211.061 31.6804 211.404C31.8965 211.745 32.0046 212.131 32.0046 212.561C32.0046 212.857 31.9486 213.148 31.8366 213.432C31.7272 213.715 31.5358 214.032 31.2624 214.381C30.9889 214.727 30.6087 215.148 30.1218 215.643L28.5319 217.307V217.365H32.1335V218.4H26.8679ZM37.6455 211.236L38.1924 211.619L35.2275 217.568L34.7119 217.143L37.6455 211.236ZM36.4541 218.529C35.8369 218.529 35.3096 218.368 34.8721 218.045C34.4346 217.719 34.0999 217.249 33.8682 216.635C33.6364 216.018 33.5205 215.273 33.5205 214.4C33.5205 213.533 33.6364 212.794 33.8682 212.182C34.1025 211.567 34.4385 211.098 34.876 210.775C35.3161 210.45 35.8421 210.287 36.4541 210.287C37.0661 210.287 37.5908 210.45 38.0283 210.775C38.4658 211.098 38.8005 211.567 39.0322 212.182C39.2666 212.794 39.3838 213.533 39.3838 214.4C39.3838 215.273 39.2679 216.018 39.0361 216.635C38.8044 217.249 38.4697 217.719 38.0322 218.045C37.5947 218.368 37.0687 218.529 36.4541 218.529ZM36.4541 217.486C36.9958 217.486 37.4189 217.223 37.7236 216.697C38.0309 216.169 38.1846 215.403 38.1846 214.4C38.1846 213.736 38.1143 213.175 37.9736 212.717C37.8356 212.256 37.6364 211.907 37.376 211.67C37.1182 211.433 36.8109 211.314 36.4541 211.314C35.915 211.314 35.4919 211.58 35.1846 212.111C34.8773 212.643 34.7223 213.406 34.7197 214.4C34.7197 215.067 34.7887 215.631 34.9268 216.092C35.0674 216.55 35.2666 216.898 35.5244 217.135C35.7822 217.369 36.0921 217.486 36.4541 217.486Z"
fill="#A1ABBD"
/>
<path
d="M37.6455 258.836L38.1924 259.219L35.2275 265.168L34.7119 264.742L37.6455 258.836ZM36.4541 266.129C35.8369 266.129 35.3096 265.967 34.8721 265.645C34.4346 265.319 34.0999 264.849 33.8682 264.234C33.6364 263.617 33.5205 262.872 33.5205 262C33.5205 261.133 33.6364 260.393 33.8682 259.781C34.1025 259.167 34.4385 258.698 34.876 258.375C35.3161 258.049 35.8421 257.887 36.4541 257.887C37.0661 257.887 37.5908 258.049 38.0283 258.375C38.4658 258.698 38.8005 259.167 39.0322 259.781C39.2666 260.393 39.3838 261.133 39.3838 262C39.3838 262.872 39.2679 263.617 39.0361 264.234C38.8044 264.849 38.4697 265.319 38.0322 265.645C37.5947 265.967 37.0687 266.129 36.4541 266.129ZM36.4541 265.086C36.9958 265.086 37.4189 264.823 37.7236 264.297C38.0309 263.768 38.1846 263.003 38.1846 262C38.1846 261.336 38.1143 260.775 37.9736 260.316C37.8356 259.855 37.6364 259.507 37.376 259.27C37.1182 259.033 36.8109 258.914 36.4541 258.914C35.915 258.914 35.4919 259.18 35.1846 259.711C34.8773 260.242 34.7223 261.005 34.7197 262C34.7197 262.667 34.7887 263.23 34.9268 263.691C35.0674 264.15 35.2666 264.497 35.5244 264.734C35.7822 264.969 36.0921 265.086 36.4541 265.086Z"
fill="#A1ABBD"
/>
</g>
<mask
id="mask12_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="57"
y="20"
width="1366"
height="242"
>
<path
d="M119.753 128.968L57 132V262H1423V20L1421.1 20.3373C1385.31 26.6774 1367.42 29.8474 1349.45 32.3615C1315.57 37.102 1281.47 40.0992 1247.28 41.3413C1229.15 42 1210.98 42 1174.64 42L1050.45 50L926.273 56L802.091 62L677.909 74L553.727 80.5L429.545 97L370.29 99.3858C327.067 101.126 284.037 106.122 241.565 114.33C201.361 122.1 160.653 126.992 119.753 128.968Z"
fill="url(#paint24_linear_492_131505)"
/>
</mask>
<g mask="url(#mask12_492_131505)">
<path
d="M119.753 128.968L57 132V262H1423V30L1298.82 42H1174.64L1050.45 50L926.273 56L802.091 62L677.909 74L553.727 80.5L429.545 97L370.29 99.3858C327.067 101.126 284.037 106.122 241.565 114.33C201.361 122.1 160.653 126.992 119.753 128.968Z"
fill="#E95460"
/>
</g>
<path
d="M57 132L119.753 128.968C160.653 126.992 201.361 122.1 241.565 114.33V114.33C284.037 106.122 327.067 101.126 370.29 99.3858L429.545 97L553.727 80.5L677.909 74L802.091 62L926.273 56L1050.45 50L1174.64 42H1298.82L1423 30"
stroke="#E95460"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
<mask
id="mask13_492_131505"
style={{ maskType: 'alpha' }}
maskUnits="userSpaceOnUse"
x="57"
y="70"
width="1366"
height="192"
>
<path
d="M108.809 218.331L57 220V262H1423V70L1362.83 80.6601C1320.24 88.2055 1277.07 92 1233.81 92C1194.42 92 1155.1 95.1464 1116.21 101.409L1050.45 112L1046.98 112.839C1041.91 114.063 1039.38 114.676 1036.85 115.273C963.321 132.632 888.061 141.593 812.513 141.986C809.913 142 807.306 142 802.091 142L677.909 152H553.727H429.545L368.164 156.943C326.583 160.291 285.841 170.489 247.586 187.124C203.714 206.202 156.624 216.791 108.809 218.331Z"
fill="url(#paint25_linear_492_131505)"
/>
</mask>
<g mask="url(#mask13_492_131505)">
<path
d="M98.0233 218.679L57 220V262H1423V70L1362.83 80.6601C1320.24 88.2055 1277.07 92 1233.81 92C1194.42 92 1155.1 95.1464 1116.21 101.409L1050.45 112L1046.98 112.839C1041.91 114.063 1039.38 114.676 1036.85 115.273C963.321 132.632 888.061 141.593 812.513 141.986C809.913 142 807.306 142 802.091 142L677.909 152H553.727H488.511C449.263 152 410.078 155.135 371.33 161.376L353.291 164.281C321.405 169.417 290.049 177.426 259.606 188.213C207.635 206.627 153.132 216.904 98.0233 218.679Z"
fill="#23ADA0"
/>
</g>
<path
d="M57 222L99.7536 219.934C153.748 217.325 207.07 206.827 258.024 188.773V188.773C289.519 177.614 321.959 169.327 354.948 164.014L371.33 161.376C410.078 155.135 449.263 152 488.511 152H553.727H677.909L802.091 142V142C807.306 142 809.913 142 812.513 141.986C888.061 141.593 963.321 132.632 1036.85 115.273C1039.38 114.676 1041.91 114.063 1046.98 112.839L1050.45 112L1116.21 101.409C1155.1 95.1464 1194.42 92 1233.81 92V92C1277.07 92 1320.24 88.2055 1362.83 80.6601L1423 70"
stroke="#23ADA0"
strokeWidth="2"
strokeLinecap="round"
strokeLinejoin="round"
/>
</g>
<defs>
<linearGradient
id="paint0_linear_492_131505"
x1="0"
y1="0"
x2="5.78332e-09"
y2="246"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" stopOpacity="0" />
</linearGradient>
<linearGradient
id="paint1_linear_492_131505"
x1="64.5"
y1="16"
x2="64.5"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" />
</linearGradient>
<linearGradient
id="paint2_linear_492_131505"
x1="0"
y1="0"
x2="5.78332e-09"
y2="246"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" stopOpacity="0" />
</linearGradient>
<linearGradient
id="paint3_linear_492_131505"
x1="201.318"
y1="16"
x2="201.318"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" />
</linearGradient>
<linearGradient
id="paint4_linear_492_131505"
x1="0"
y1="0"
x2="5.78332e-09"
y2="246"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" stopOpacity="0" />
</linearGradient>
<linearGradient
id="paint5_linear_492_131505"
x1="322.136"
y1="16"
x2="322.136"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" />
</linearGradient>
<linearGradient
id="paint6_linear_492_131505"
x1="0"
y1="0"
x2="5.78332e-09"
y2="246"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" stopOpacity="0" />
</linearGradient>
<linearGradient
id="paint7_linear_492_131505"
x1="442.955"
y1="16"
x2="442.955"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" />
</linearGradient>
<linearGradient
id="paint8_linear_492_131505"
x1="0"
y1="0"
x2="5.78332e-09"
y2="246"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" stopOpacity="0" />
</linearGradient>
<linearGradient
id="paint9_linear_492_131505"
x1="563.773"
y1="16"
x2="563.773"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" />
</linearGradient>
<linearGradient
id="paint10_linear_492_131505"
x1="0"
y1="0"
x2="5.78332e-09"
y2="246"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" stopOpacity="0" />
</linearGradient>
<linearGradient
id="paint11_linear_492_131505"
x1="684.591"
y1="16"
x2="684.591"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" />
</linearGradient>
<linearGradient
id="paint12_linear_492_131505"
x1="0"
y1="0"
x2="5.78332e-09"
y2="246"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" stopOpacity="0" />
</linearGradient>
<linearGradient
id="paint13_linear_492_131505"
x1="805.409"
y1="16"
x2="805.409"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" />
</linearGradient>
<linearGradient
id="paint14_linear_492_131505"
x1="0"
y1="0"
x2="5.78332e-09"
y2="246"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" stopOpacity="0" />
</linearGradient>
<linearGradient
id="paint15_linear_492_131505"
x1="926.227"
y1="16"
x2="926.227"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" />
</linearGradient>
<linearGradient
id="paint16_linear_492_131505"
x1="0"
y1="0"
x2="5.78332e-09"
y2="246"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" stopOpacity="0" />
</linearGradient>
<linearGradient
id="paint17_linear_492_131505"
x1="1047.05"
y1="16"
x2="1047.05"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" />
</linearGradient>
<linearGradient
id="paint18_linear_492_131505"
x1="0"
y1="0"
x2="5.78332e-09"
y2="246"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" stopOpacity="0" />
</linearGradient>
<linearGradient
id="paint19_linear_492_131505"
x1="1167.86"
y1="16"
x2="1167.86"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" />
</linearGradient>
<linearGradient
id="paint20_linear_492_131505"
x1="0"
y1="0"
x2="5.78332e-09"
y2="246"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" stopOpacity="0" />
</linearGradient>
<linearGradient
id="paint21_linear_492_131505"
x1="1293.18"
y1="16"
x2="1293.18"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" />
</linearGradient>
<linearGradient
id="paint22_linear_492_131505"
x1="0"
y1="0"
x2="5.78332e-09"
y2="246"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" stopOpacity="0" />
</linearGradient>
<linearGradient
id="paint23_linear_492_131505"
x1="1443.5"
y1="16"
x2="1443.5"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0" />
<stop offset="1" stopColor="white" />
</linearGradient>
<linearGradient
id="paint24_linear_492_131505"
x1="740"
y1="10"
x2="740"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0.08" />
<stop offset="0.84127" stopColor="white" stopOpacity="0" />
</linearGradient>
<linearGradient
id="paint25_linear_492_131505"
x1="740"
y1="62.0661"
x2="740"
y2="262"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="white" stopOpacity="0.08" />
<stop offset="0.84127" stopColor="white" stopOpacity="0" />
</linearGradient>
<clipPath id="clip0_492_131505">
<rect width="1464" height="326" fill="white" />
</clipPath>
<clipPath id="clip1_492_131505">
<rect width="1464" height="326" rx="6" fill="white" />
</clipPath>
</defs>
</svg>
)

View File

@ -0,0 +1,36 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
html,
body,
#__next {
height: 100%;
overscroll-behavior: none;
user-select: none;
color: #000;
}
*::selection {
color: #fff;
background: hsla(229, 71%, 57%, 1);
}
#app {
position: relative;
isolation: isolate;
height: 100%;
}
/* Animation for skeleton placeholder */
@keyframes gradient {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}

View File

@ -4,7 +4,6 @@ import type { Preview } from '@storybook/react'
import { Provider, ToastContainer } from '../src' import { Provider, ToastContainer } from '../src'
import './reset.css' import './reset.css'
import './components.css'
// export const parameters: Parameters = { // export const parameters: Parameters = {
// actions: { argTypesRegex: '^on[A-Z].*' }, // actions: { argTypesRegex: '^on[A-Z].*' },

View File

@ -1,3 +1,5 @@
import './skeleton.css'
import { Stack, useTheme } from '@tamagui/core' import { Stack, useTheme } from '@tamagui/core'
import type { RadiusTokens } from '../tokens' import type { RadiusTokens } from '../tokens'

759
yarn.lock
View File

@ -4437,6 +4437,52 @@
dependencies: dependencies:
nanoid "^3.1.23" nanoid "^3.1.23"
"@react-spring/animated@~9.7.2":
version "9.7.2"
resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.7.2.tgz#0119db8075e91d693ec45c42575541e01b104a70"
integrity sha512-ipvleJ99ipqlnHkz5qhSsgf/ny5aW0ZG8Q+/2Oj9cI7LCc7COdnrSO6V/v8MAX3JOoQNzfz6dye2s5Pt5jGaIA==
dependencies:
"@react-spring/shared" "~9.7.2"
"@react-spring/types" "~9.7.2"
"@react-spring/core@~9.7.2":
version "9.7.2"
resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.7.2.tgz#804ebadee45a6adff00886454d6f1c5d97ee219d"
integrity sha512-fF512edZT/gKVCA90ZRxfw1DmELeVwiL4OC2J6bMUlNr707C0h4QRoec6DjzG27uLX2MvS1CEatf9KRjwZR9/w==
dependencies:
"@react-spring/animated" "~9.7.2"
"@react-spring/rafz" "~9.7.2"
"@react-spring/shared" "~9.7.2"
"@react-spring/types" "~9.7.2"
"@react-spring/rafz@~9.7.2":
version "9.7.2"
resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.7.2.tgz#77e7088c215e05cf893851cd87ceb40d89f2a7d7"
integrity sha512-kDWMYDQto3+flkrX3vy6DU/l9pxQ4TVW91DglQEc11iDc7shF4+WVDRJvOVLX+xoMP7zyag1dMvlIgvQ+dvA/A==
"@react-spring/shared@~9.7.2":
version "9.7.2"
resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.7.2.tgz#b8485617bdcc9f6348b245922051fb534e07c566"
integrity sha512-6U9qkno+9DxlH5nSltnPs+kU6tYKf0bPLURX2te13aGel8YqgcpFYp5Av8DcN2x3sukinAsmzHUS/FRsdZMMBA==
dependencies:
"@react-spring/rafz" "~9.7.2"
"@react-spring/types" "~9.7.2"
"@react-spring/types@~9.7.2":
version "9.7.2"
resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.7.2.tgz#e04dd72755d88b0e3163ba143ecd8ba78b68a5b0"
integrity sha512-GEflx2Ex/TKVMHq5g5MxQDNNPNhqg+4Db9m7+vGTm8ttZiyga7YQUF24shgRNebKIjahqCuei16SZga8h1pe4g==
"@react-spring/web@^9.7.2":
version "9.7.2"
resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.7.2.tgz#76e53dd24033764c3062f9927f88b0f3194688d4"
integrity sha512-7qNc7/5KShu2D05x7o2Ols2nUE7mCKfKLaY2Ix70xPMfTle1sZisoQMBFgV9w/fSLZlHZHV9P0uWJqEXQnbV4Q==
dependencies:
"@react-spring/animated" "~9.7.2"
"@react-spring/core" "~9.7.2"
"@react-spring/shared" "~9.7.2"
"@react-spring/types" "~9.7.2"
"@rollup/plugin-babel@^6.0.3": "@rollup/plugin-babel@^6.0.3":
version "6.0.3" version "6.0.3"
resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-6.0.3.tgz#07ccde15de278c581673034ad6accdb4a153dfeb" resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-6.0.3.tgz#07ccde15de278c581673034ad6accdb4a153dfeb"
@ -6699,6 +6745,86 @@
dependencies: dependencies:
"@types/node" "*" "@types/node" "*"
"@types/d3-array@^3.0.4":
version "3.0.4"
resolved "https://registry.yarnpkg.com/@types/d3-array/-/d3-array-3.0.4.tgz#44eebe40be57476cad6a0cd6a85b0f57d54185a2"
integrity sha512-nwvEkG9vYOc0Ic7G7kwgviY4AQlTfYGIZ0fqB7CQHXGyYM6nO7kJh5EguSNA3jfh4rq7Sb7eMVq8isuvg2/miQ==
"@types/d3-cloud@1.2.5":
version "1.2.5"
resolved "https://registry.yarnpkg.com/@types/d3-cloud/-/d3-cloud-1.2.5.tgz#0300bedc826aacd505ae6c41c5f8c4ab75c45135"
integrity sha512-vEIER9DsEBUOdpRiwCh3n1qE+cV6h4e1LhxhY2sLt+m8LPNAIkOOhTlqk0JDiBwD+ZPM8ynFAOU3AuPuVYBFBA==
dependencies:
"@types/d3" "^3"
"@types/d3-color@^1":
version "1.4.2"
resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-1.4.2.tgz#944f281d04a0f06e134ea96adbb68303515b2784"
integrity sha512-fYtiVLBYy7VQX+Kx7wU/uOIkGQn8aAEY8oWMoyja3N4dLd8Yf6XgSIR/4yWvMuveNOH5VShnqCgRqqh/UNanBA==
"@types/d3-geo@^1.11.1":
version "1.12.4"
resolved "https://registry.yarnpkg.com/@types/d3-geo/-/d3-geo-1.12.4.tgz#7fbd90b6fdb25e34ce4f557c0de73360d662850f"
integrity sha512-lNDaAuOaML6w2d1XE0Txr5YOXLBQSF1q2IU6eXh/u1TTPQSm2Ah+TMIub1+CIMq8J/7DOzi5Cr8/yHqjNvqLKA==
dependencies:
"@types/geojson" "*"
"@types/d3-hierarchy@^1.1.6":
version "1.1.8"
resolved "https://registry.yarnpkg.com/@types/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz#50657f420d565a06c0b950a4b82eee0a369f2dea"
integrity sha512-AbStKxNyWiMDQPGDguG2Kuhlq1Sv539pZSxYbx4UZeYkutpPwXCcgyiRrlV4YH64nIOsKx7XVnOMy9O7rJsXkg==
"@types/d3-interpolate@^1.3.1":
version "1.4.2"
resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-1.4.2.tgz#88902a205f682773a517612299a44699285eed7b"
integrity sha512-ylycts6llFf8yAEs1tXzx2loxxzDZHseuhPokrqKprTQSTcD3JbJI1omZP1rphsELZO3Q+of3ff0ZS7+O6yVzg==
dependencies:
"@types/d3-color" "^1"
"@types/d3-path@^1", "@types/d3-path@^1.0.8":
version "1.0.9"
resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-1.0.9.tgz#73526b150d14cd96e701597cbf346cfd1fd4a58c"
integrity sha512-NaIeSIBiFgSC6IGUBjZWcscUJEq7vpVu7KthHN8eieTV9d9MqkSOZLH4chq1PmcKy06PNe3axLeKmRIyxJ+PZQ==
"@types/d3-random@^2.2.0":
version "2.2.1"
resolved "https://registry.yarnpkg.com/@types/d3-random/-/d3-random-2.2.1.tgz#551edbb71cb317dea2cf9c76ebe059d311eefacb"
integrity sha512-5vvxn6//poNeOxt1ZwC7QU//dG9QqABjy1T7fP/xmFHY95GnaOw3yABf29hiu5SR1Oo34XcpyHFbzod+vemQjA==
"@types/d3-scale@^3.3.0":
version "3.3.2"
resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-3.3.2.tgz#18c94e90f4f1c6b1ee14a70f14bfca2bd1c61d06"
integrity sha512-gGqr7x1ost9px3FvIfUMi5XA/F/yAf4UkUDtdQhpH92XCT0Oa7zkkRzY61gPVJq+DxpHn/btouw5ohWkbBsCzQ==
dependencies:
"@types/d3-time" "^2"
"@types/d3-shape@^1.3.1":
version "1.3.8"
resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-1.3.8.tgz#c3c15ec7436b4ce24e38de517586850f1fea8e89"
integrity sha512-gqfnMz6Fd5H6GOLYixOZP/xlrMtJms9BaS+6oWxTKHNqPGZ93BkWWupQSCYm6YHqx6h9wjRupuJb90bun6ZaYg==
dependencies:
"@types/d3-path" "^1"
"@types/d3-time-format@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-4.0.0.tgz#ee7b6e798f8deb2d9640675f8811d0253aaa1946"
integrity sha512-yjfBUe6DJBsDin2BMIulhSHmr5qNR5Pxs17+oW4DoVPyVIXZ+m6bs7j1UVKP08Emv6jRmYrYqxYzO63mQxy1rw==
"@types/d3-time@^2", "@types/d3-time@^2.0.0":
version "2.1.1"
resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-2.1.1.tgz#743fdc821c81f86537cbfece07093ac39b4bc342"
integrity sha512-9MVYlmIgmRR31C5b4FVSWtuMmBHh2mOWQYfl7XAYOa8dsnb7iEmUmRSWSFgXFtkjxO65d7hTUHQC+RhR/9IWFg==
"@types/d3-voronoi@^1.1.9":
version "1.1.9"
resolved "https://registry.yarnpkg.com/@types/d3-voronoi/-/d3-voronoi-1.1.9.tgz#7bbc210818a3a5c5e0bafb051420df206617c9e5"
integrity sha512-DExNQkaHd1F3dFPvGA/Aw2NGyjMln6E9QzsiqOcBgnE+VInYnFBHBBySbZQts6z6xD+5jTfKCP7M4OqMyVjdwQ==
"@types/d3@^3":
version "3.5.47"
resolved "https://registry.yarnpkg.com/@types/d3/-/d3-3.5.47.tgz#b81042fcb0195c583fc037bc857d161469a7d175"
integrity sha512-VkWIQoZXLFdcBGe5pdBKJmTU3fmpXvo/KV6ixvTzOMl1yJ2hbTXpfvsziag0kcaerPDwas2T0vxojwQG3YwivQ==
"@types/detect-port@^1.3.0": "@types/detect-port@^1.3.0":
version "1.3.2" version "1.3.2"
resolved "https://registry.yarnpkg.com/@types/detect-port/-/detect-port-1.3.2.tgz#8c06a975e472803b931ee73740aeebd0a2eb27ae" resolved "https://registry.yarnpkg.com/@types/detect-port/-/detect-port-1.3.2.tgz#8c06a975e472803b931ee73740aeebd0a2eb27ae"
@ -6768,6 +6894,11 @@
dependencies: dependencies:
"@types/node" "*" "@types/node" "*"
"@types/geojson@*":
version "7946.0.10"
resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.10.tgz#6dfbf5ea17142f7f9a043809f1cd4c448cb68249"
integrity sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==
"@types/glob@^7.1.3": "@types/glob@^7.1.3":
version "7.2.0" version "7.2.0"
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb"
@ -6849,6 +6980,11 @@
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa"
integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==
"@types/lodash@^4.14.172":
version "4.14.194"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.194.tgz#b71eb6f7a0ff11bff59fc987134a093029258a76"
integrity sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==
"@types/long@^4.0.1": "@types/long@^4.0.1":
version "4.0.1" version "4.0.1"
resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9"
@ -6952,7 +7088,7 @@
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
"@types/react-dom@18.0.11", "@types/react-dom@^18.0.11": "@types/react-dom@*", "@types/react-dom@18.0.11", "@types/react-dom@^18.0.11":
version "18.0.11" version "18.0.11"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33"
integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==
@ -7202,6 +7338,417 @@
"@urql/core" ">=2.3.1" "@urql/core" ">=2.3.1"
wonka "^4.0.14" wonka "^4.0.14"
"@use-gesture/core@10.2.26":
version "10.2.26"
resolved "https://registry.yarnpkg.com/@use-gesture/core/-/core-10.2.26.tgz#c2fc4aa7d36cee7319a98a898b0698c66b01663e"
integrity sha512-NyFpQ3iID9iFBROXyyvU1D0NK+t+dP+WAVByhCvqHUenpxLD2NlRLVRpoK3XGGwksr6mU3PvZ2Nm4q0q+gLJPA==
"@use-gesture/react@^10.0.0-beta.22":
version "10.2.26"
resolved "https://registry.yarnpkg.com/@use-gesture/react/-/react-10.2.26.tgz#593549fed30ebcac71cfd197993eaede0795c098"
integrity sha512-0QhaE5mhaQbFlip4MX7n1nwCX8gax6Da1LsP2fZ/BU6xW9zyEmV6NX7DPelDxq1rr2NiBJh30vx9RIp80YeA/A==
dependencies:
"@use-gesture/core" "10.2.26"
"@visx/annotation@2.18.0":
version "2.18.0"
resolved "https://registry.yarnpkg.com/@visx/annotation/-/annotation-2.18.0.tgz#6fe29e3bd33606d58fb63603d01c7a4a1bf36561"
integrity sha512-dEuZ4jlyJQ0dJ/tOhmP9bJP+GTw7/2EnmIKms1z/icoD3rCYA9bLjHq9J/3mNzvMkw/2+whTC/cxpBZyXUeLXA==
dependencies:
"@types/react" "*"
"@visx/drag" "2.17.0"
"@visx/group" "2.17.0"
"@visx/point" "2.17.0"
"@visx/shape" "2.18.0"
"@visx/text" "2.17.0"
classnames "^2.3.1"
prop-types "^15.5.10"
react-use-measure "^2.0.4"
"@visx/axis@2.18.0":
version "2.18.0"
resolved "https://registry.yarnpkg.com/@visx/axis/-/axis-2.18.0.tgz#9175e9d969df420592082b1ea64c16422377b389"
integrity sha512-iBMObSKHOHDZbuVXsdVLmAjLE5jCN1Ls3XI57v3yuf+qZ327mdPSliSOyOxhvRdaNDYPLSQj+P1nKan+04wJiQ==
dependencies:
"@types/react" "*"
"@visx/group" "2.17.0"
"@visx/point" "2.17.0"
"@visx/scale" "2.18.0"
"@visx/shape" "2.18.0"
"@visx/text" "2.17.0"
classnames "^2.3.1"
prop-types "^15.6.0"
"@visx/bounds@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/bounds/-/bounds-2.17.0.tgz#2585be71bc82032ad3e1456b34b2f2c17ad34e69"
integrity sha512-XsoyTAyCm+DZbrPgP3IZFZAcNqBmXFBLSep04TqnrEA3hf16GxIzcpaGe+hAVhPg5yzBdjc7tLk6s0h5F44niA==
dependencies:
"@types/react" "*"
"@types/react-dom" "*"
prop-types "^15.5.10"
"@visx/brush@2.18.0":
version "2.18.0"
resolved "https://registry.yarnpkg.com/@visx/brush/-/brush-2.18.0.tgz#847bab691166a0ced187d49c1459a80845925d28"
integrity sha512-9hTi2h/rq+wGtGW8ntkOjh52TWl5S8IngApcegWH2jljOY++1LLQOXBXj62MO1n/RSfH45EOPS4M+fBRU/JAZA==
dependencies:
"@visx/drag" "2.17.0"
"@visx/event" "2.17.0"
"@visx/group" "2.17.0"
"@visx/scale" "2.18.0"
"@visx/shape" "2.18.0"
classnames "^2.3.1"
prop-types "^15.6.1"
"@visx/clip-path@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/clip-path/-/clip-path-2.17.0.tgz#25156ec56d074635601c60b1f5dec45dc7e52e15"
integrity sha512-kxSWJEmycPDdM+Nj8ka9k1jy/fCs1DmmA6tVE0QmEnaKChqwTWvX8ugb2I+7Ijb349JzLjLYB1vRBGCv2L60pQ==
dependencies:
"@types/react" "*"
prop-types "^15.5.10"
"@visx/curve@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/curve/-/curve-2.17.0.tgz#9b4c87dd0d10a62a0f85d5a72e4c0400316df9bf"
integrity sha512-8Fw2ZalgYbpeoelLqTOmMs/wD8maSKsKS9rRIwmHZ0O0XxY8iG9oVYbD4CLWzf/uFWCY6+qofk4J1g9BWQSXJQ==
dependencies:
"@types/d3-shape" "^1.3.1"
d3-shape "^1.0.6"
"@visx/drag@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/drag/-/drag-2.17.0.tgz#22e8e06d7dfe9e9527e7e1d4dd5ceb0195898c2b"
integrity sha512-k6PNOmL9Q1jiz+sCzxiV+Ue41EOU597WBPEZQd9baL08OQlFsYLxT95OpqQvZwlU1aHHr3hXxg4W6LtUCcUrNQ==
dependencies:
"@types/react" "*"
"@visx/event" "2.17.0"
"@visx/point" "2.17.0"
prop-types "^15.5.10"
"@visx/event@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/event/-/event-2.17.0.tgz#220c7674505e0d7a55f36bce9575482a7fa7dc23"
integrity sha512-fg2UWo89RgKgWWnnqI+i7EF8Ry+3CdMHTND4lo4DyJvcZZUCOwhxCHMQ4/PHW0EAUfxI51nGadcE1BcEVR5zWw==
dependencies:
"@types/react" "*"
"@visx/point" "2.17.0"
"@visx/geo@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/geo/-/geo-2.17.0.tgz#69866342375364b53882d4f5114e3adfb6317c9c"
integrity sha512-/MXXXxy5XDmwGLuRQwHxazaL1k2iymayVjmHu32vi+P7G/wahGqvWfwkdbw5CKnOMuPeEeM40CvEWQY8H6VXxg==
dependencies:
"@types/d3-geo" "^1.11.1"
"@types/geojson" "*"
"@types/react" "*"
"@visx/group" "2.17.0"
classnames "^2.3.1"
d3-geo "^1.11.3"
prop-types "^15.5.10"
"@visx/glyph@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/glyph/-/glyph-2.17.0.tgz#1e10c2223db45d106b1526f744981431f895a2c4"
integrity sha512-/EnygQrlgxqH/dOV2jIAgis7mb18GOvnF2ZF/nPWvSKCetObqeQnQZFmjzYS3S2leW/nNpOFXj5dSWBU07LhjA==
dependencies:
"@types/d3-shape" "^1.3.1"
"@types/react" "*"
"@visx/group" "2.17.0"
classnames "^2.3.1"
d3-shape "^1.2.0"
prop-types "^15.6.2"
"@visx/gradient@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/gradient/-/gradient-2.17.0.tgz#8c1113f66703b48ee2d4fc064d7ff6dfc701094c"
integrity sha512-3vyMzSR5iSo8+nKOx+bQZpFXqFGVzCrRbuStxTH4Ag0KFATOYnjCsypjD+gc2DEVzkarVGy0V9kRfFIH09r8Fg==
dependencies:
"@types/react" "*"
prop-types "^15.5.7"
"@visx/grid@2.18.0":
version "2.18.0"
resolved "https://registry.yarnpkg.com/@visx/grid/-/grid-2.18.0.tgz#ae68e975d4b203a626ddba3a39d67a135816d6be"
integrity sha512-bmOowI5QA0R1KgNKxj5y+Belj5MbUz+RRW2BxTsXa7NbDV6IsA7H4l+kj3DDldRi7Q5SVm9zpfwWXNIBAhiFdA==
dependencies:
"@types/react" "*"
"@visx/curve" "2.17.0"
"@visx/group" "2.17.0"
"@visx/point" "2.17.0"
"@visx/scale" "2.18.0"
"@visx/shape" "2.18.0"
classnames "^2.3.1"
prop-types "^15.6.2"
"@visx/group@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/group/-/group-2.17.0.tgz#b349fd6507e56fcb43d0b067d728df4ab329ca2e"
integrity sha512-60Y2dIKRh3cp/Drpq//wM067ZNrnCcvFCXufPgIihv0Ix8O7oMsYxu3ch4XUMjks+U2IAZQr5Dnc+C9sTQFkhw==
dependencies:
"@types/react" "*"
classnames "^2.3.1"
prop-types "^15.6.2"
"@visx/heatmap@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/heatmap/-/heatmap-2.17.0.tgz#10ae00a48d37c3f1cdc9a224bd5caf5e285e5c31"
integrity sha512-BHQrd9hOIzoRLEk8DK3H2Vc4K7GjN6uHeJCghSW352OxhNga+5SpW4nHyoZxIdQLtl1m5bniGaypjQKlRcBCOQ==
dependencies:
"@types/react" "*"
"@visx/group" "2.17.0"
classnames "^2.3.1"
prop-types "^15.6.1"
"@visx/hierarchy@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/hierarchy/-/hierarchy-2.17.0.tgz#1ec1a4e236f13685a7c3dd76d04a3d8db7b83502"
integrity sha512-5JYrS0JHl66JnhkVPv1XMkBnl8vBakODSZqR8Tf2VxmcZitG2W4tEUNulApBznSqYHuT49YsNxlgAER/I8FZjg==
dependencies:
"@types/d3-hierarchy" "^1.1.6"
"@types/react" "*"
"@visx/group" "2.17.0"
classnames "^2.3.1"
d3-hierarchy "^1.1.4"
prop-types "^15.6.1"
"@visx/legend@2.18.0":
version "2.18.0"
resolved "https://registry.yarnpkg.com/@visx/legend/-/legend-2.18.0.tgz#1358ec29cb628ef9594ca5f34e91771536f9205b"
integrity sha512-x6RfW6NOV+I9bIx45MQlCIxDR89KdA0Y4rPrVFDdq9KSf+DICaIQw97ksGsixxQwEuiRfqGTtM6F/PXCfEx/zQ==
dependencies:
"@types/react" "*"
"@visx/group" "2.17.0"
"@visx/scale" "2.18.0"
classnames "^2.3.1"
prop-types "^15.5.10"
"@visx/marker@2.18.0":
version "2.18.0"
resolved "https://registry.yarnpkg.com/@visx/marker/-/marker-2.18.0.tgz#1be8216cd6412b88163713759712e782962a8c5d"
integrity sha512-29qEbw4SRbKD1HpKpHbou0lsu7Mfvl7a+K/M/U99/CSwLnKaLJ5zaZ1hG+sDZ5rW9efPKef1bFjqgWqgjZG46w==
dependencies:
"@types/react" "*"
"@visx/group" "2.17.0"
"@visx/shape" "2.18.0"
classnames "^2.3.1"
prop-types "^15.6.2"
"@visx/mock-data@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/mock-data/-/mock-data-2.17.0.tgz#55146962abfb388faf3a5d6775a67c45e83f6dbd"
integrity sha512-l+9tcJAZ+H5mtXaGbHUqgmo1b3Hcq+k6aIWmZt6VGgvPBFK3Rn68BORP8My+OA/CgMG3/ZNJBhJxLKxNN5Hkjw==
dependencies:
"@types/d3-random" "^2.2.0"
d3-random "^2.2.2"
"@visx/network@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/network/-/network-2.17.0.tgz#d5273ab303392860157067be9b3505baa9a3a527"
integrity sha512-TlUCeSnFaGetzai3CiCG5n3DULfTKMsle6Cx9EoX4o/Hz4LsUsCb1lyQLz/3oKwxOyN/787vuMBUXqg16ygBOQ==
dependencies:
"@types/react" "*"
"@visx/group" "2.17.0"
classnames "^2.3.1"
prop-types "^15.6.2"
"@visx/pattern@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/pattern/-/pattern-2.17.0.tgz#c00e7f80fa3d9100046d7480222679c8d92d9ae0"
integrity sha512-Mt1BXj3eQA+/6SeyxKEZvEUs43N4RHrnoISoQYctVJ+H8EcgfRyQZnxQRDqmY++YTW+VfXyJEGVU4Ix8Yzd1tA==
dependencies:
"@types/react" "*"
classnames "^2.3.1"
prop-types "^15.5.10"
"@visx/point@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/point/-/point-2.17.0.tgz#c11f1efee5241bcd612a29f3b3099cb435c9604e"
integrity sha512-fUdGQBLGaSVbFTbQ6k+1nPisbqYjTjAdo9FhlwLd3W3uyXN/39Sx2z3N2579sVNBDzmCKdYNQIU0HC+/3Vqo6w==
"@visx/react-spring@2.18.0":
version "2.18.0"
resolved "https://registry.yarnpkg.com/@visx/react-spring/-/react-spring-2.18.0.tgz#c19c8f64213dae9d62147ae1f99321f6c63c1c91"
integrity sha512-tTLqddFAlNZc7QvB7aWp4mC6z6NYbrTEU3/OyBplqNUwaI1W5S0se3fYf6xOxC88EbNoqCC7805ym2XoznknoQ==
dependencies:
"@types/react" "*"
"@visx/axis" "2.18.0"
"@visx/grid" "2.18.0"
"@visx/scale" "2.18.0"
"@visx/text" "2.17.0"
classnames "^2.3.1"
prop-types "^15.6.2"
"@visx/responsive@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/responsive/-/responsive-2.17.0.tgz#8a31f016a270234bfecf25fb066f30d19784ddc7"
integrity sha512-3dY2shGbQnoknIRv3Vfnwsy3ZA8Q5Q/rYnTLiokWChYRfNC8NMPoX9mprEeb/gMAxtKjaLn3zcCgd8R+eetxIQ==
dependencies:
"@juggle/resize-observer" "^3.3.1"
"@types/lodash" "^4.14.172"
"@types/react" "*"
lodash "^4.17.21"
prop-types "^15.6.1"
"@visx/scale@2.18.0":
version "2.18.0"
resolved "https://registry.yarnpkg.com/@visx/scale/-/scale-2.18.0.tgz#b78054e68ac8de49f0abeea0c60bb0bd14dec492"
integrity sha512-clH8HFblMlCuHvUjGRwenvbY1w9YXHU9fPl91Vbtd5bdM9xAN0Lo2+cgV46cvaX3YpnyVb4oNhlbPCBu3h6Rhw==
dependencies:
"@types/d3-interpolate" "^1.3.1"
"@types/d3-scale" "^3.3.0"
"@types/d3-time" "^2.0.0"
d3-interpolate "^1.4.0"
d3-scale "^3.3.0"
d3-time "^2.1.1"
"@visx/shape@2.18.0":
version "2.18.0"
resolved "https://registry.yarnpkg.com/@visx/shape/-/shape-2.18.0.tgz#0d7202ca9e722ed9360e1b76f6de7b2748511d2a"
integrity sha512-kVSEjnzswQMyFDa/IXE7K+WsAkl91xK6A4W6MbGfcUhfQn+AP0GorvotW7HZGjkIlbmuLl14+vRktDo5jqS/og==
dependencies:
"@types/d3-path" "^1.0.8"
"@types/d3-shape" "^1.3.1"
"@types/lodash" "^4.14.172"
"@types/react" "*"
"@visx/curve" "2.17.0"
"@visx/group" "2.17.0"
"@visx/scale" "2.18.0"
classnames "^2.3.1"
d3-path "^1.0.5"
d3-shape "^1.2.0"
lodash "^4.17.21"
prop-types "^15.5.10"
"@visx/text@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/text/-/text-2.17.0.tgz#e65aa8a202ce9cfdcbd898bb0afd6253ccea6a40"
integrity sha512-Eu6b8SMI+LU4O6H4l/QhCa7c4GtDTQO6jhSYuU70pdTST1Bm74nImPGekG2xDW3uxaLlkb8fDpvXag0Z7v+vlQ==
dependencies:
"@types/lodash" "^4.14.172"
"@types/react" "*"
classnames "^2.3.1"
lodash "^4.17.21"
prop-types "^15.7.2"
reduce-css-calc "^1.3.0"
"@visx/threshold@2.18.0":
version "2.18.0"
resolved "https://registry.yarnpkg.com/@visx/threshold/-/threshold-2.18.0.tgz#7c41e1c16fac845645fa547f1ca85e5f2136bc24"
integrity sha512-pD+7XQuh8ZwHQBEriMJD1xk9G86HokuJ6E34aYxfDLJgPuVxHYjtzRHc9lLDCMiexA4enY1FyQf9L2ruTkszmw==
dependencies:
"@types/react" "*"
"@visx/clip-path" "2.17.0"
"@visx/shape" "2.18.0"
classnames "^2.3.1"
prop-types "^15.5.10"
"@visx/tooltip@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/tooltip/-/tooltip-2.17.0.tgz#e5e39a62795d2f6c7d2a1472e7af092005374106"
integrity sha512-+dMHURP9NqSFZLomMUnoVYjRs+I2qcOw1yYvLtTp/4GUAFRMSUJoSJeuLwng1VBIgCEB95xuQ95NgGID4qzPxA==
dependencies:
"@types/react" "*"
"@visx/bounds" "2.17.0"
classnames "^2.3.1"
prop-types "^15.5.10"
react-use-measure "^2.0.4"
"@visx/visx@^2.18.0":
version "2.18.0"
resolved "https://registry.yarnpkg.com/@visx/visx/-/visx-2.18.0.tgz#a4b23a8883856470672edae023fc079e9f8410cb"
integrity sha512-PGpe1haqBXriEVnCHwnGhd0E0yinA3bKnMKf6PE/Ud8pOi3vpfeWxHO3jnrpZrC+mP+yG8JrsevBsgTCYaVG8A==
dependencies:
"@visx/annotation" "2.18.0"
"@visx/axis" "2.18.0"
"@visx/bounds" "2.17.0"
"@visx/brush" "2.18.0"
"@visx/clip-path" "2.17.0"
"@visx/curve" "2.17.0"
"@visx/drag" "2.17.0"
"@visx/event" "2.17.0"
"@visx/geo" "2.17.0"
"@visx/glyph" "2.17.0"
"@visx/gradient" "2.17.0"
"@visx/grid" "2.18.0"
"@visx/group" "2.17.0"
"@visx/heatmap" "2.17.0"
"@visx/hierarchy" "2.17.0"
"@visx/legend" "2.18.0"
"@visx/marker" "2.18.0"
"@visx/mock-data" "2.17.0"
"@visx/network" "2.17.0"
"@visx/pattern" "2.17.0"
"@visx/point" "2.17.0"
"@visx/responsive" "2.17.0"
"@visx/scale" "2.18.0"
"@visx/shape" "2.18.0"
"@visx/text" "2.17.0"
"@visx/threshold" "2.18.0"
"@visx/tooltip" "2.17.0"
"@visx/voronoi" "2.17.0"
"@visx/wordcloud" "2.17.0"
"@visx/xychart" "2.18.0"
"@visx/zoom" "2.17.0"
"@visx/voronoi@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/voronoi/-/voronoi-2.17.0.tgz#4c79cd200453654fd3d030a4fe599e84da9ea065"
integrity sha512-enwuidtUPntdEcMZ2PyGXaFFP87KX8YYd/pCXQ6TQ6hJfnkMe3hlwLs5skv8gijz1oHy9PkESVqgrFPb25IICA==
dependencies:
"@types/d3-voronoi" "^1.1.9"
"@types/react" "*"
classnames "^2.3.1"
d3-voronoi "^1.1.2"
prop-types "^15.6.1"
"@visx/wordcloud@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/wordcloud/-/wordcloud-2.17.0.tgz#5fe8e484baaf1abc944b5d4b93667e2e51cde4e7"
integrity sha512-HLatkmBlbHERC+ANuZMLMzP7PiGYtX1NPyQVzEjacsBMsQEruSFDG8P7c5xrsNTIQM1+k8KMkitADvN4iPxftw==
dependencies:
"@types/d3-cloud" "1.2.5"
"@visx/group" "2.17.0"
d3-cloud "^1.2.5"
"@visx/xychart@2.18.0":
version "2.18.0"
resolved "https://registry.yarnpkg.com/@visx/xychart/-/xychart-2.18.0.tgz#db87846d54f1537e4b8ddcd89a02970ae3a38642"
integrity sha512-IMCyuoZT4ky/CthtmJMyyB6nyLa1jdgW3XBx3UPCqWrQVkOH38tHNVFTHEgLkL0TyRKroK82F+JWD3yrc1B2Xw==
dependencies:
"@types/lodash" "^4.14.172"
"@types/react" "*"
"@visx/annotation" "2.18.0"
"@visx/axis" "2.18.0"
"@visx/event" "2.17.0"
"@visx/glyph" "2.17.0"
"@visx/grid" "2.18.0"
"@visx/react-spring" "2.18.0"
"@visx/responsive" "2.17.0"
"@visx/scale" "2.18.0"
"@visx/shape" "2.18.0"
"@visx/text" "2.17.0"
"@visx/tooltip" "2.17.0"
"@visx/voronoi" "2.17.0"
classnames "^2.3.1"
d3-array "^2.6.0"
d3-interpolate-path "2.2.1"
d3-shape "^2.0.0"
lodash "^4.17.21"
mitt "^2.1.0"
prop-types "^15.6.2"
"@visx/zoom@2.17.0":
version "2.17.0"
resolved "https://registry.yarnpkg.com/@visx/zoom/-/zoom-2.17.0.tgz#e7c0184ce372fca45825e71e472b5445de230468"
integrity sha512-C/FxGzzV3X05+1wgKoHnsfNma5wy17DwThEhUK3/wo8nc7Fsb7dtuQn3HOzVpuqa52LbscUBJFi2Rxv79VykQQ==
dependencies:
"@types/react" "*"
"@use-gesture/react" "^10.0.0-beta.22"
"@visx/event" "2.17.0"
prop-types "^15.6.2"
"@vitejs/plugin-react-swc@^3.2.0": "@vitejs/plugin-react-swc@^3.2.0":
version "3.2.0" version "3.2.0"
resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.2.0.tgz#7c4f6e116a296c27f680d05750f9dbf798cf7709" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.2.0.tgz#7c4f6e116a296c27f680d05750f9dbf798cf7709"
@ -7900,6 +8447,11 @@ babel-preset-fbjs@^3.4.0:
"@babel/plugin-transform-template-literals" "^7.0.0" "@babel/plugin-transform-template-literals" "^7.0.0"
babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0"
balanced-match@^0.4.2:
version "0.4.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
integrity sha512-STw03mQKnGUYtoNjmowo4F2cRmIIxYEGiMsjjwla/u5P1lxadj/05WkNaFjNiKTgJkj8KiXbgAiRTmcQRwQNtg==
balanced-match@^1.0.0: balanced-match@^1.0.0:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
@ -8427,6 +8979,11 @@ class-variance-authority@^0.6.0:
dependencies: dependencies:
clsx "1.2.1" clsx "1.2.1"
classnames@^2.3.1:
version "2.3.2"
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924"
integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==
clean-css@^5.2.2: clean-css@^5.2.2:
version "5.3.2" version "5.3.2"
resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.2.tgz#70ecc7d4d4114921f5d298349ff86a31a9975224"
@ -9013,6 +9570,156 @@ csv@^5.5.0:
csv-stringify "^5.6.5" csv-stringify "^5.6.5"
stream-transform "^2.1.3" stream-transform "^2.1.3"
d3-array@1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f"
integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==
d3-array@2, d3-array@^2.3.0, d3-array@^2.6.0:
version "2.12.1"
resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81"
integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==
dependencies:
internmap "^1.0.0"
"d3-array@2 - 3", d3-array@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.3.tgz#39f1f4954e4a09ff69ac597c2d61906b04e84740"
integrity sha512-JRHwbQQ84XuAESWhvIPaUV4/1UYTBOLiOPGWqgFDHZS1D5QN9c57FbH3QpEnQMYiOXNzKUQyGTZf+EVO7RT5TQ==
dependencies:
internmap "1 - 2"
d3-cloud@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/d3-cloud/-/d3-cloud-1.2.5.tgz#3e91564f2d27fba47fcc7d812eb5081ea24c603d"
integrity sha512-4s2hXZgvs0CoUIw31oBAGrHt9Kt/7P9Ik5HIVzISFiWkD0Ga2VLAuO/emO/z1tYIpE7KG2smB4PhMPfFMJpahw==
dependencies:
d3-dispatch "^1.0.3"
d3-color@1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a"
integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==
"d3-color@1 - 2":
version "2.0.0"
resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e"
integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==
d3-dispatch@^1.0.3:
version "1.0.6"
resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58"
integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==
"d3-format@1 - 2":
version "2.0.0"
resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-2.0.0.tgz#a10bcc0f986c372b729ba447382413aabf5b0767"
integrity sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==
d3-geo@^1.11.3:
version "1.12.1"
resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f"
integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==
dependencies:
d3-array "1"
d3-hierarchy@^1.1.4:
version "1.1.9"
resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83"
integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==
d3-interpolate-path@2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/d3-interpolate-path/-/d3-interpolate-path-2.2.1.tgz#fd8ff20a90aff3f380bcd1c15305e7b531e55d07"
integrity sha512-6qLLh/KJVzls0XtMsMpcxhqMhgVEN7VIbR/6YGZe2qlS8KDgyyVB20XcmGnDyB051HcefQXM/Tppa9vcANEA4Q==
"d3-interpolate@1.2.0 - 2":
version "2.0.1"
resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163"
integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==
dependencies:
d3-color "1 - 2"
d3-interpolate@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987"
integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==
dependencies:
d3-color "1"
d3-path@1, d3-path@^1.0.5:
version "1.0.9"
resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf"
integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==
"d3-path@1 - 2":
version "2.0.0"
resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-2.0.0.tgz#55d86ac131a0548adae241eebfb56b4582dd09d8"
integrity sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==
d3-random@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-2.2.2.tgz#5eebd209ef4e45a2b362b019c1fb21c2c98cbb6e"
integrity sha512-0D9P8TRj6qDAtHhRQn6EfdOtHMfsUWanl3yb/84C4DqpZ+VsgfI5iTVRNRbELCfNvRfpMr8OrqqUTQ6ANGCijw==
d3-scale@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.3.0.tgz#28c600b29f47e5b9cd2df9749c206727966203f3"
integrity sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==
dependencies:
d3-array "^2.3.0"
d3-format "1 - 2"
d3-interpolate "1.2.0 - 2"
d3-time "^2.1.1"
d3-time-format "2 - 3"
d3-shape@^1.0.6, d3-shape@^1.2.0:
version "1.3.7"
resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7"
integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==
dependencies:
d3-path "1"
d3-shape@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-2.1.0.tgz#3b6a82ccafbc45de55b57fcf956c584ded3b666f"
integrity sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==
dependencies:
d3-path "1 - 2"
"d3-time-format@2 - 3":
version "3.0.0"
resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-3.0.0.tgz#df8056c83659e01f20ac5da5fdeae7c08d5f1bb6"
integrity sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==
dependencies:
d3-time "1 - 2"
d3-time-format@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a"
integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==
dependencies:
d3-time "1 - 3"
"d3-time@1 - 2", d3-time@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.1.1.tgz#e9d8a8a88691f4548e68ca085e5ff956724a6682"
integrity sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==
dependencies:
d3-array "2"
"d3-time@1 - 3":
version "3.1.0"
resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7"
integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==
dependencies:
d3-array "2 - 3"
d3-voronoi@^1.1.2:
version "1.1.4"
resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297"
integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==
dag-map@~1.0.0: dag-map@~1.0.0:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/dag-map/-/dag-map-1.0.2.tgz#e8379f041000ed561fc515475c1ed2c85eece8d7" resolved "https://registry.yarnpkg.com/dag-map/-/dag-map-1.0.2.tgz#e8379f041000ed561fc515475c1ed2c85eece8d7"
@ -9051,6 +9758,11 @@ dayjs@^1.8.15:
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2"
integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==
debounce@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5"
integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
version "2.6.9" version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@ -11892,6 +12604,16 @@ internal-slot@^1.0.5:
has "^1.0.3" has "^1.0.3"
side-channel "^1.0.4" side-channel "^1.0.4"
"internmap@1 - 2":
version "2.0.3"
resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009"
integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==
internmap@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95"
integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==
interpret@^1.0.0: interpret@^1.0.0:
version "1.4.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
@ -13500,6 +14222,11 @@ markdown-to-jsx@^7.1.8:
resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.2.0.tgz#e7b46b65955f6a04d48a753acd55874a14bdda4b" resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.2.0.tgz#e7b46b65955f6a04d48a753acd55874a14bdda4b"
integrity sha512-3l4/Bigjm4bEqjCR6Xr+d4DtM1X6vvtGsMGSjJYyep8RjjIvcWtrXBS8Wbfe1/P+atKNMccpsraESIaWVplzVg== integrity sha512-3l4/Bigjm4bEqjCR6Xr+d4DtM1X6vvtGsMGSjJYyep8RjjIvcWtrXBS8Wbfe1/P+atKNMccpsraESIaWVplzVg==
math-expression-evaluator@^1.2.14:
version "1.4.0"
resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.4.0.tgz#3d66031117fbb7b9715ea6c9c68c2cd2eebd37e2"
integrity sha512-4vRUvPyxdO8cWULGTh9dZWL2tZK6LDBvj+OGHBER7poH9Qdt7kXEoj20wiz4lQUbUXQZFjPbe5mVDo9nutizCw==
md5-file@^3.2.3: md5-file@^3.2.3:
version "3.2.3" version "3.2.3"
resolved "https://registry.yarnpkg.com/md5-file/-/md5-file-3.2.3.tgz#f9bceb941eca2214a4c0727f5e700314e770f06f" resolved "https://registry.yarnpkg.com/md5-file/-/md5-file-3.2.3.tgz#f9bceb941eca2214a4c0727f5e700314e770f06f"
@ -14069,6 +14796,11 @@ minizlib@^2.1.1:
minipass "^3.0.0" minipass "^3.0.0"
yallist "^4.0.0" yallist "^4.0.0"
mitt@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mitt/-/mitt-2.1.0.tgz#f740577c23176c6205b121b2973514eade1b2230"
integrity sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==
mixin-deep@^1.2.0: mixin-deep@^1.2.0:
version "1.3.2" version "1.3.2"
resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
@ -15363,7 +16095,7 @@ prompts@^2.3.2, prompts@^2.4.0:
kleur "^3.0.3" kleur "^3.0.3"
sisteransi "^1.0.5" sisteransi "^1.0.5"
prop-types@^15.7.2, prop-types@^15.8.1: prop-types@^15.5.10, prop-types@^15.5.7, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1:
version "15.8.1" version "15.8.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
@ -15788,6 +16520,13 @@ react-style-singleton@^2.2.1:
invariant "^2.2.4" invariant "^2.2.4"
tslib "^2.0.0" tslib "^2.0.0"
react-use-measure@^2.0.4:
version "2.1.1"
resolved "https://registry.yarnpkg.com/react-use-measure/-/react-use-measure-2.1.1.tgz#5824537f4ee01c9469c45d5f7a8446177c6cc4ba"
integrity sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==
dependencies:
debounce "^1.2.1"
react@18.2.0, react@^18.2.0: react@18.2.0, react@^18.2.0:
version "18.2.0" version "18.2.0"
resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
@ -15940,6 +16679,22 @@ redent@^3.0.0:
indent-string "^4.0.0" indent-string "^4.0.0"
strip-indent "^3.0.0" strip-indent "^3.0.0"
reduce-css-calc@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716"
integrity sha512-0dVfwYVOlf/LBA2ec4OwQ6p3X9mYxn/wOl2xTcLwjnPYrkgEfPx3VI4eGCH3rQLlPISG5v9I9bkZosKsNRTRKA==
dependencies:
balanced-match "^0.4.2"
math-expression-evaluator "^1.2.14"
reduce-function-call "^1.0.1"
reduce-function-call@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.3.tgz#60350f7fb252c0a67eb10fd4694d16909971300f"
integrity sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==
dependencies:
balanced-match "^1.0.0"
reforest@^0.12.1: reforest@^0.12.1:
version "0.12.3" version "0.12.3"
resolved "https://registry.yarnpkg.com/reforest/-/reforest-0.12.3.tgz#1c2d9fb5fb2d6870ce077c75eccddb59c3a6bd36" resolved "https://registry.yarnpkg.com/reforest/-/reforest-0.12.3.tgz#1c2d9fb5fb2d6870ce077c75eccddb59c3a6bd36"